135321153805438437694006210779669366568080251258698428544316924402136377923869390305390619972740362645718517273991713363811866562004775284058492477721931058317319103453513880635672123165826122880110217634455942581240351010123860928011028560114147231914111031662822691702174012055182876236307046805337408839738973014496624498231341734539708403690681062854288102699941768801039137343405971880979968224133206590245920841903100580987455654247555019756636620230717318076204882721713541696398783276592191034964530776682688974583115385547556084546044546649320866837008265198075712185048639511980785249061836005672938337629056963828511564115157231613663097951937816177184398548234161415177810340079213284111122553011390168107702515802876919331251655760014843404822147352371608457057388866162922496993871631533936153827625194286449249054824853152311825677950313213034304112422214526177657134373986547322900489467663061081583520223491886379733237212764933767978012426581929968182017579449141663225075143303410183971137751249323057325087850465232251724447367547376025004260121960921093209145020732746087161153706160576653403412790770325866331276139368480180082855047836263393017372657309447292240002307919479229726817503055817789210198987701490717109491569460891456861728821717573856646067840751456580920467249077577761471662635557972075902458495906033009345666070512891264896132594669333922260758078559164010105243111984654500539531697373727758464366749274557085574312245265148119704359826301740405272967336258492162992592568477086829668956384770571199812188693986993125722373448500570588512932591573939995980016534228353237530843900919839666386512063511685923929158543084354301617043518478542679742383149501547127311881134070639385990940304442196119870002236803201974963846343505602885173209130688022623414615480664138593920967212686584698295860085778116035694433067681459369720659514479713297970322300396643991421168302590051155568027185086444157547847949184594855146654188219384751477406596134341453576799432907717491717268026763031949346408852826054802155740678169726482281871983394057070980747620849651549252694230821990544476309891332934607887157923322719777236658607229356649049476712103192667039661694690401652251610579841850723489116453093613524724638261926914965375742511724405422436339784071243029007467107199047217422677899165979381838477605268650318647860953901183619029110731212627341964225602632751894647763489952776402572890899682780826108026668740160798589112403798198401761072582495515265795013431241105112814696272049765612926086773544346870085979227232350959265614525361777283160449241052691633435146396444548363810734558056629034227306070268623998880791641413234921208777097300936677004695731758822702968372253148613594146577797740921278404431499936936647533795439117973463728616878970522669542847226643308111452237896321711030642764082324745255572429749838749948464008000825780324143092737310841698394760251611759408507266717864344144710389299085685315473602501299862918584922229961271945617498545489955598202829109525942956137109514390864782922554280021013099577481105034299589620274013160086290059968825440702372158366307147727420352590643208284922340845867067127209758365874745457160992579959273080583002803234914081479068331581977320758235955146760942873613184631307012666253962656718458211121175767029317824685933215668860659637052124399282863118581958875662297256588463761134823404284267056426153468873609310605621999030860206718187593463089173386121260441419916885782170029777706263844724746460863377866980261349630220617812164750863078747469710909966358170901923773074086267448862914965048267436370799242513273524578757263477015329833640866857101621739362998423520154633881011051537781551710182788856771420074849175104608619774121461541934235856582379584022463645617314628622831226332620626219873799955842553521015532969391882488146362380777114076457424635994267396369981582769173323287222274494131637038158471416333745178609450858848517239818199641247719062292916689866496296843155763002277001430132918290366786642984427178805851745986971910965819591130463581724257952972898968679068903902302443672954398222557558861152244568903873443721466531601758548066269997476155186959209966929059147955573259055952926482234717929464299652871897160898933009037158332409371263587280885347813551310539323071817429985648934356923606563304145843562673834774159862115740865144281954606902805852234089716640114682645951312792059178695990731924773064990029865984925017533466679946932269783477313123807955573797631130019494071101292266325864228510952914563712669256487143060840417083122050671529331673542461054573954986718081352312225399936708813813171912125368423357450991207956431823057573663383991590811257958592659746925878482165673225577729319870301791022292441172987986922582735095418480350529759038884081059967367182518963548839074101439884309350404294856097095295755585831199070375846792759412759972793333761858712998560111555376669018585531233852109420375889328507042085753091907794535320002734430719016002597658997665696113900634050770239951240646966275135068172671520957341022895389818642529826430653831580986082213732159349875639290509342138717145530129313115934484027121615034423831574821339521753038036204524757069083361565470192957223538227795071944244071449137832088881681250865571823299119449794326884980465925799104458225869549393582394435488409488898061567278365906250308096055812046119128454949491173304427223033352430248290101727699681602597277076318493215946785211354688174312921001219849850798042740680647119784853720537608612990749146650192173113021301553420110949005973458476133556633331666865473177743833913091421837495241812368455372004203062405888365308128371295868391183068221579573343279881378908671080699275236966074293719669059074609984673679340253610815307328771369739038273544961695147385209327359746733632791987068508446430840539250157340788462150826269752626233984196588228054467550924381247544772402330514866260946222559131989377882190954376396277878200094526233617948747227171190570340723382361665140761080452634009591921777119391093608244948057709823892502535921405881904356657491365747267404214732809571826354782554169192190204132402678822509145223215428760012604078870259012977908582213979326638239898585399653599418807202788548988335379089895066197794944571671759455580892383650417444349886280540100376603395703758444870434257433787884673091243913410877180649532284386795100289604274384395045444287757574247444049372164246434800741433973466464068528008454875714518600120178609818128782847032231941751631268399741817212584393636931688364524689392959938408733484295459788231099104078377519831902118656057013766063485768702278358834924262889708611370707019805737947477252901880700502808370766029697633942972658243949144337770962749324775134466895012052417718894649593394653630217445435455039815675624589042879295540906112616644393003396790142096340362516586182164696511411903974065684150294249454415640074286882780189247407487309535464890505360558699803915320241217964518971138235176372978782072705080787701690277154847652874571388263860175352643085663253171928061245984154533937164794541579428383571171947011661594412916266959544177897258115427858016587136075586623806981773962854439638122134591631898070870604823775985881864149314231135221714535843407204558910017345792117806948807604291197446922122838633640821806447704200518785732532197593442664364016662522791272929655238355111406992796527535711932397001099321188079970359033691865324971318479681686621123942128053130170207290406761689462692579218188591845786186323040621943522106661169619894207281755223655386016420691832472412130174967905076513386297474500680027693833916549905010056640031526213218962001972482147449583604493625698357529058116627166043724698247752189032866587989258245456824321282663369157624113285204785723298651939731022172966332230776548176741509265282954401838699672190914825551769471409880645996534433296026187209508929910566741907732293747523482344759229732731263982498248834014385849091206838230977625369569045018952110453052217214198687517525252437339098857237481964578175065182661617241784775981784544633685870455535354257777500745268116979892386992462159421412093538849086525606760741311061572804147500053384515367070601140471485136561750849165917111636799507834734755695523668293411284382532395006643146926071422439306771210234031515496245672848918848896555541023373599265729460845825812169833856790136905678513437077750301587080165520281882399672486305997286606829037202951069367362098682098173538755219574631961359706663971320809313225826577464252294422404838139077231494365489729833908720102860731983142068308656606924837142677089267355484975670427506122732378929801448437039710597363976088845801953790474135726782317679011447865517561827009543442479986325014987441958714772987831320982851070509124627265504379142304166950789320254828973906007452973578442460676344087322823463341560207166692838611597750211467217724175511553786440387235896637187812857158745357019067190185924247935731376294051257676134123608530512142803107183339460323895375988595839790489282694517131625829388949391168994102775270722043056627509151710541966085968179161915891299375693920845936275822252442912966447770753557688586081501401264735386671362081003401733379414506141048492509197989804916938992915887322955352198691703849207052831312635440174021866068425652362477115007116043252178223115131157694566616965273918757549798964882040500184088207833985690603909651360127361864236738967553498005817946369087295653987219031977205595997251363234827169782305674755447296401820837022226903054041523136868364043991772973008005712951601575154216337772941079660426417730184863434398802666024956590859364790396351489949229016318172568276920813617204559945293786451010675640125342005250787940871988485953100152579975877239970867995988698454848388058334627111636696239840481688085817789821326969908307675069981191947572114348066679497927271380562731077750688182692377553917244633363703756918531394460298187480676583379763515314897292093908683217186317389812318035102842404596929094221288321801434572615695843559812506587526977890457412929105762848979463144131448981788958500743613218009608116936444319860735922091339051152497795972166868197874083046543152621278721315532435867376767364297875375581147212524835144225893742465126707117940333982819483507127481217332844055618928493225490147535331591377537635371169244048899323817486915849859186335073556662562808977279259568737514241424424711163539044962909735483904656268392765730535907090722384566960646036777952473506768526115175195633346425265689366256135249787841649981514436973877657643005845549342902786955220100910287384384408514468372177266836366609845978940127051021519803252282261925144232200173902919169736094210947054154917180082161216860046622416255224515960017118855924119599885077559049751381418779095323818977455597172246590135674586233630737305337943111843910275573688980993274276105490234212213589058055833714805459250764174300191126333825795314591890985960457779952871975904510975886263829186610746145430239297881037574892869789835225537981423288167357247048807325698785045973447820119035877402441002247370467150616203209864587616373351157409859290568124543233101232175482839700939799583578890449593475837699982476106395536566580651749072852024532796301368998182342847381275101084389793489526931495690768013855229150171697802743064916025052692921421058501106304237078483861399383288058027376017347950777270822789582240517294507631996044197460169986045813302007824990470355492739784207621286266384260635390710153554807346457481034764038421377871527923344377459119647574634538636621804292176049471741524325118857349347604252221403158145551178522653861356231662785073481166095392823727970124053372515092995865587521141698006372752408000219241874828673584939767048731837084267512409754482370920117135723312298934242820327095071503008229748885604805627752561300634557464568617086088618545684354955455106096231830365150605098920454153877254599285271440050160181191176676617225686298480019536626109003431888350462717301014326754755121850625910799183677822197752459796244177027678493452579807916108446046380927764320743632037596607987524644368956249708543773369757393808355210987987845698871027381322200003479335029250978726573034410854083760565451752096517222044461924198930828765391018438380748328695700006555025670091634415054381704339890617304319033507479709412846109589272182983019875050598475581016763202809860057114467036874201789756253390334856931462126060550782340359234991990770996218180440577999390859089563749324841328869153899252897481133898962818316493867237277142986468643227138772319742178870610122639151655958322219020085692283559918840990337446286798546708617379981447962739158748760591352953600130636475264567888639947481342546778319721066188102221520190196236832618702224271057913061996611407098301568271804797188499710593571298538684913959263079132819230887553449474266003354652368244060707173377621928064031015888493078907960395212159209310900502375351801162414196683229601507805586530241326727250156235189047501413128130577542122363920812894733537574411259191306915985294322761992244671861512131562507410063421764116905440899423204005800167573328314321701070295076322301572245089945800394285449053758298822036409647632639502862401043797393177305153658865759379563548993995916890751242385847568181352564864190681927874804771182699055946147695464669472296676988577620570740215864153198528290024938876957780189608756861787261384201159871843686551397029736156574942391813725199340309997442733375362660622427359958510937019555282670650373406569999213012709543265594540732289578614819689322084081899684147411256506725961719025647454873308511422906226096947895720579810569643278543477880195494810327230162505751854043234067385698176535207303717570237081490489829955457437553699123881348587999575913241429237036962338987857410904518019426731625635116686332772278202979357942817744268036795793253430363606052011652915243623464819826706137187341751948366144629895988373877368033332338369256176634332291402682434826555637137625078359953211258667646198057011538612232639892829187234647550884847428286397255370775435059943579738554206504779777386595975717491463948074921764315571520319463615929060794138210183170645847634920031976712919749928691959005706981867480056903825400134727088067771482173544682385386871205767049263669988607043867401076105697616272696486555297749665364555185726573288435419641912571488078250690429498749571867586693635360217753212990047503399183343661033783361002576537586822708854024831928381451145641132751147647049949711214358925397664440003932723531440758101606302939762359796858965745937456291324026528578403656687841924722004990861433262282037300197487389883685601414949119883090889209508789618170081160924569125998074660166818870865016779260000282226938395750373167168172031720550880433479885276369168454023869954432418256031420180446401210478576393741838934344980201950485284630597485158617071717225599849794673743058260191588744781818632105191312887724533500427119665690990723044352587992781331733949144621205125224072463833021833791168946988962537914289324413396074274308077036190034448643840203671017362908790493858820123656766281662737191920183013977578031032070179892413150176402460761362076086743816583836560896944835877012588064652373487404108473117664755091908153295322366643613075943650788812528721644800021538211620887328130998011109811829776682871557007423274644797751099228116259815910496071449250999268978847180838883000075437030943981315760631809243600906146776273542196098930253797399859508745866296839379169173456633632652345359013962252274294412159940448539823708847801797669216424332932116340989019107473848462792941762220497401271518677251449301698743469661738686094813471853970473495559302308060477652163669019259549226333674712604831315025480591154587970126635723358310369845339298770657014852792129058356715612133324852495563965509401885696878491488410541983689733929755352789041702215467354199456580977114797737515701179246947286258835465340185242591895624709655330600822036918025135261052505559571109972884046637459389548073593267939392803573167561555527220523824587323160478741673320795000557606800073110759338888171876319751698284643061735489971776320304945623080671703478786271880385236578579809139829998705079119808505492247116598860491818067206292453399983393971640187935740183697618226606455654665940903838126814687394113729644109724851879056996644749977809191286996013345774441064969566238710065069847622384245869663978796647328907118882513866669534969198281583373023219170111972782035670099117263323242391394074247077612394056998594851299678687355581037435676712045677805298165327715619330112712362306683658097870318486933498719253558456050208441317930625669426002258149607479065204254323247125039220974403740880432153634758604988586543831183612699188394593228263775664333825325024934680290302177170068431202284638224083349613149868831670779990703796506010739192145004446194135356549038879359340421958486424002329500284672107494322382021360917846000184532086836277505010634708122116683644733209667950571285742235674921645424036186744304588968848382111897490167861992694747126142817043988296325135428512692497261935017276210667708228583348844585288791020529980997769355167516383823056174932866842727262317739270801530051367848349548432790993386801732735387105947526877509698257375454705319992691486466840586064136338006161968382444398611064106854361163556265231898399899229226393246346422696982661536436100394491957834404388370509326255111008883499313825793231390874112595844354704357569877610542647249868392259192718330901045966567810652093065327702708637581445423262890894395973914088091053356138964295857383202926528715643251718723486500929742775760246698341792065402102098862671517177938441343014480788732990154998444236846081129084107327925623020608645407188356593229056611514485766122601060628272728179349996325359103610553704094644093072930505687223451317987084070417828348938253927594681362224419025997435978730329887664650631227198195393745803723059787400507410080489708672248636378984492838431638252655586855960558522625590266618269219652218598131990737259812943466438216869432581244626006018105981007411783438653070652231693931281167136922992015790364194829830080180757221151702323857149577152800921991026447096785264070198774104511945889959527091448797926329152291041122196710970223213237094333651134456178342281420707014718925748788974072989610445435463980999196820468797367459020236560602553786346333205708470158356600815790560843255633116292966834003102479061079988128333230901860047101005738384109579189950444392645078040513260934029973207398535298730169266304275990969262485797663181912786159660493249500780843510138007020897567397220491560680488424449358030349065402982459213838314382502512784678648612669285848480708168886809788654565090391082722968747150104335615462494565635681908062769021416855213751005400590610879861297751073101520992444330742391050026756447095091880487741075901923733984683651487933117069514474759009814919041617772726934833021412842003446200963168113236182434183853543691586863472051407298004820707885342864028495278045321612337250290305426052885304242400449213407370531719443057823573588850641679292365977952248220651307053863159797114899905431551274500294774500617998734799686682464479674146848072184204169280049927730822965937533461528265175078440014166984044558847102148277583122779487602137727386414241310303328946102448200682955887616715272946976961078512779537517594495111369393168193729383891867294719197820037534588177300447009617068779505130273910669085066596837513087346826821780924472015870707449175448766512072171118196158085180600712497502838043431713188428630354552416767158470853317103674143947027440127994989191643138965366686784948376880881103954549346197066841073084799724227390790381847041592497687142974769406646214541962530144626326831273120578269211281720168539871607132329594299391130245539280529923958224709275312999658527261903594954383848372368335801836704912656921158577708657802920127271870675926551204840712835044804046852783006196575174263830523802259828498694221247044280985772564670543835278934419140623338250699608546315566709280506026935190455683294361903679512071519637637582068036164473267758461045420856870514746761183701635231719866153450844791008406049287953403502806177630458478894616194569264710085605254015755087168728679667190754687420374587762457108031005115855460586031116720250149331895657728899385204790683374282191381695313542010763013281151324769158027847384505067358754106160043961947627483503238653387711589260863266972481162518502068704455989291656060300042118525824906703163026539160065703256456227705225352595678439003684912470173821451319732587551704060913811348633184775955821247307461048991441470113945574057501512481315554517000903643840873880816720143783161441091904081833732918056103898860553520831887173905147060488235795638426109962192700799910995236740280438121102772514524009386711653879265778734135356484747292028684937907780397362378022551564873522937938887328872259879545600706152588007793439286330278021300189994333843622390874322207955761957762804793866902845700891063684505962674963851732094647248640647910305305863515376582284530858131469279987687611648243655087722148291097067105870097001643867020005199197336682236498633183904615973176783576231654092022312157595300854828307062705726463994428122041358104129149914137228600004166887715009597434254909466358330792975040969005726093220570137808611991726777420715982074340674173155439048980491856074074000523990415544786934097482760379147198548228507376970739567962103162312668053541004882980920099478111950703044929119720190582811475515933113608438109025212033721630004518241145455029178825651280483922447565572549333482973727796136646401350915111494238492703025571135838718166587894866729641595218885013456643923091383214126541452113430780055436105605484461074745239205640676777159296786523435349785421095700178614048819638833791633315324023448231646047496129819107893288572435458898013066032505720531896446288280999145277265693488410961913360171763360400087621373983725305482081144300824079729065460909600650468173798658247795350159283499128298013978865603491249957490225923121348874511716976971137728840890124475833305843038058464977926051761104051828633405831258799654481528945368237209116502033248655547198554226450513384369192206936927260004533089448541732796661645786755181292878757879737677461738486719704116422783651237580765892839813051045435709267916292976837679801629647024963845750997384157439495869632125038832748910403893268549045541678628055570167285135411715176193463045916477527097042344763972564327801593370501497584542278959823954268988315434251779931925439487422207134367751027228133731920801491842615840102149140186054446901695629897353700040947868682298043824019949033532631842211432051744503554812809880569286732946552595609660676103126960383220546342333024464263630506462516257410067309651894083167348732763875322504323745340548889367083465364592173036163211545632532916861362331169119626544173158424106433648169208643803061498775122290563383236340473672824019795576593271370712955652005825399109356147053006915218973932153162000674914588453976274449323859860852304679191861701351714173591493775768807044559117070827935381612883057763302251743020749214859031969525215964504276502892900135819575518764065191304440613543320421051000414202550209727141710110259107186796634851445210492050826625062100785793599454943386373781551874228929826061594968237206506578394050326264638522092817959036440830062177993674525507497535682335647838526394201702368198593724135412881028638514398943310825848835455703138278958529677622006449610505441279301426865625132033853812109569802925981728912112050538685302366814284446366363568258373902281108802398510396360210971646471309788462386931474857151091539162707127320265126924084430557524570231159964463137916348040673911573015451726413342988775180830021990228456386446806785648942558376288190752385081775764292464098394853466442431506734148051196641540444737641666024479168772979081463537673322991249861561565903939212468785817340542733517061899586635406205051439304776321539559477349295641024944824969274997278130755477442159373421262541525851330147833706118199863469324460981738868134713070158639156686414252195520445544169078320927801044525458762337255869018076743301400168053094071556802670105170825665185804243422713943025521464332299176761931345176076941772829655138861825498257179335053260540581210381574927067314065211906706859594441490451236412831406796192695570452158500433914501270077810254111733471776676577175677248872626781615824828380101311187224809463037835322308586300888239237232170529783862523948710251202509225099453231691983639347531138189674155125002612765221310137607682691354611787520909662952671177725408800286126360688989076342762854687183275116663999792213173774748407991663328864724773048452128356836495025755413347319935473157449263026860884347929944435850068231300147799118005958183854077951544787883384925082560578240026354505078035452032018542771490557504360051663515710258544635133138643017871848416817252051592901666422471438217567903844525007046738952054567996283211162241271816890475756252156119261791944146246316484854735334093721032971318298626098276074183528975072060934599617053987827031938866348186844414382270329348070096227960844170903146681864710042997562846637357364842208466609032482178416460077856648723615169463630810075235502128159415129376858258827618093066290779102538323976676153235552783541222581850691419152813686106393203255502095635394901771394383559088895691711883451654247139358232481959010271430140502653416409583984630352336470448210047951576151554126376513388573171952716023180960441205652047977652989948136252589844983286509081553598503559515374401908904357219615006542408303410938608057054602447497544066765172735926282098256727295760834696719181999336446724368927497816701404296458305354105987011833190052036483586185447234215700227539783060173231568574742018083651917159070511189440726159476297596842273242327892424497765357462311617821314367368957273763751340723903967034285240477268458578775715960640752381656250966838076779258953739106082347821921175891901665206240433816677600069864797791004476630117582281137117869832618698652037348935040250234069119393167925808604960385738359122720774277285661664148373428177800073425981812190326150969309239855691924629377323964238140036729995691761944803809576644053601717200625033278068892062483111878420030395184403277270391077905132110224032819755188919812299491863572352988550014630412995528795146243280748034339056870543852370194700454207475998871865658695116181004816386168663990819783313755033142182283017390937874696368629733648376918938061804796000677817782037184941092143802141290274198815694205349335663664507087366374499234879847932398259531871137033624164284358694350673612523027724049001010467372447369528394167360275786152401145249184916510554247964814863353085909383667832980049105741791323288489415350299222512067802492659006481404423622722430255723550467919701913055295129129791693741925497613774277010843500419954305320752995661255723701674529917317220625835417008685276427460363284744088010625340721791187793275508648938242674027131415742558307053907895637739720945261525939898290267679345749292728214188323193202422333187669599545188604678868053081808519644667404248769530663306978944928966813748264596624218088810598414528798912387131291075622314718096600462808570322932967596778428840069460173637011078244619687368852813789794288391499926674795575257445403018353658989116985648147970234152926462666863871302835617747634937822153808646414561430747898047697982537450237105612133100178991547137443436284409930070530536544192993703882757355308389235590888670353010469349270179824533614293909676123648801594435873472897920836173647549015856248694448119831744552928620069852183391977233254643919668093811633823595827434406297554549996360466419959252976930329011400227195408228362587961060442582389476211262732981472545675823976943698724548668595828554164545743421969113212418530557133612117450878334599233919290980193700579585785971606973236538373040997239706679027337206224520194647423836890478202844768271263418215703345900142428950599745857516304703249613626938265178871253214108550946096103360700878945518022828903455913821248564650283383160026862708653376630532308026510221710227260820264215883207989715471611338611564550792619435619733889247526887350611171969515885284525415690354588037552419277227467181020971769487645711925837738356991444851601763398500753901553765395680645324330404705299018041601989346929051697268920056321468474750444290732381076338010829946353504430215026635492073540286110658859939807661839992435201828749116671866673901574892960995053663769752934362951005648178879209572168792404182400832210750428173179737517134982467464110343170632453357139691450412000924952540726962274345325150088356849340584162530372501408862620211015023280863470405847506547652263510296018593102589372028771672099173069025105849457038214635781783089136258766960182594605278366445319936015327943746018440618799384478366384524091958981337350825612675544401243990231621662204585224855668794149763609496452702079337450661778759962197682160521507661850450504456245680305200244176452793683763591794458275806800249033169876408344811796867542084953352500008535864828445640454580820645184581357526350684660591027111806649036547780089323840130032837506862602301938229459108654628409660243956149314309587232106731525147439659923902974257537226992069440583089923997185741081925591327337245396162078378649216346943253426036653880206233449780828818134677514972401453297215528464492172548609485316668408995328605610968608220308020250470130923684518854867927219724324872037005546529174173624233286688190879398468228256677487412271609818429998286285094828446261921151301914635436893144978740346751211194897785332897660350144372068962151218630859001375072713001188267599944358605414084674428519651568057864694559769235487547473538526312924522840063051832212990817522779851095487175066597203306065308419577056420072511705730365213317404737658010881952664298252050887423452176644772486136683186916390250754456481134244570470592388678229066335583781305756916633073202241357832433877253493071409745438045822630426362823912813634937537006923090799682998847959382232830955206104193597630097928717798766854438002706148787342780177631862635930996502163774501525229721560996483357911560803258639861803984732683462049976866408070479021961959359551380404700217323432218175970794625156524519331127601963907396707723559933457176901665027098063862051067237219769027101029270364030214192049059941448993166682695218196131112612239949492857457604778941166090359066781622396250331222989834952631500350925835491959656188460522817552490493247297355001748554116272622875742684742677797250129847332524883326460777995252899900089369958058067996438922725863344772495587413313611462719263488818678520741363757478027327645399024282721077205420511731822262450463693105162926972492945004747577256942427900319042980522736804757069633081496035629232926162248756835539415908017762638211330107738829830174164921530909649617669036034171653546818319796929649213695442794426483751903451378659738404166797943123158995120236749541853807324096437552688334930736318178982888184290900658147971854402254980394445807343694736423614764715685335087971105881815949304121850886557386212672667748049640588201047969639845356470632571202013101470479303770018087781985679028939110632362857581192964647285854175884547747447776795704716603378849638575524786233953097343233931165578518521507137577394006768278062808809351401943001292815495647118360883272002526903155698603576534400747368684594836608718043285013021228209972736018245847637699816907175094976159839799448567534978237477416493322989337495224775032054524672604732866402907764145746791116296466047448303159158062073009079852621609210264186613199886660347649135718961937419831416556161775853555575895095076306237343012630022659291532755272256342699414009969416967329834614615823892765305234105817788536047839708268393409121457794691402186067443498016758583064437506159980230554481292509208784990284882294006493726681686132304242681962208719687824074235622984522016525964125797432618128344499218606874176423725891257531567671789844857877715824661181112115740377265385666176734500020062810169281124328548169451005165854656306257111023373371933072475645077541316981486957405118979817060120622906325980881094892975596854605640955894325395305681770579834959343621103993521122713378839724670616093377735360910736984991924366193375772729964207240238144480941734639793456494968382340919820481200447980353503719037161690713296476355917538167228633886891405825113088981576711953371878990319507492721001270028845227688982646699308938545418098858188293434277792346701577594575625068649920720180987649582185477067207384554981629215230599793930752044208665442979616658691083548694515854319175372722211821362188829471977142957363688719224384256244075935825681736240406650417113435187009606858288469173848030889167072930583449816718209976489421695751555158643721196366865615461095476202485285690186432058373124118240681020976937089281360715363283476031290008833751833541827282178100787744465472899639069902997141097089368356158956903744223472592172743405752262401657025569231045030681243209073546323680756024261099971999711754038999728899775483119134252623774555939651762905308069303243562914746080573301783069753401294508192261163706636180879098246905212995469206951270846677639584308895017576626394839615693640685627501839920379755064739932786626019621099715126083061367034041047230683739856673713796843835610984195259344306947906812799304330439744748350427807620323127415707338211937624616696344725483466611455688235540224703526357281903579204996982284657970706775825811761894282461272295372926784516782444998503940863911417373383058727507117266537876137524570147264831674700509012613737956360401633534592212594078458120877638624063188214382128032485762155339045356924590570421473264713431036902721256164525098689966270563351271243958321260620265550136614365806911558720626487893125348863028866175339468294553358173278847995197392812470126581448067516404379912136974261498091779327534778128815493369432008306430077457944699806986926524303297842068423358447466865021953161220534901509748847087795827270324110861938369394837102249553598387818546711632941504569969101011406084046904235265336893927261573209948465462002379970223524192807455045868420577445376346569623746478943325618721397947573080944105402538381399261778972201487869673023319233958575427187386908155017632255871569540826643868193479525868735657419640480776167628785610153262863714521921924819850641509769735345807754927741864881800519332455461250793061859995660937640758974699219888410230142946612417068896603586144818233757656312739977496012379545525433313345385011379625937841842033308373771659174089255345273984321123400692180562327366940125663350454972156270708889491587163771546794176977547261742376930170503711535853029326231159768359279402566961426253259570634931636613121466836770968642636864834006463811156339552941824933444003676534720266586246718831854979796658566016045735986881645479323063505290710672137466621730446243865882062525924898958255321740475378071277152144607152467251630647043351857507503748857715368010498780602046091626388475832730348405485520299344479968333749563493629050636262316695617336945518700088788196447793743859111577988081271410832769007408504855367326578552859160487182893968251369835034415232672198018699525084620003638352721279379679227144505273116251158274655246107395329682780556400141523813173959971967014937215271742233307212620481714501157011159118274655448393236574650790340875938487958294641128040508399597694756895053085438709987980990336790649907571057350926645727929753994046468355092669117200576708561237019385060119516463512259634233363679464301054332239807236070989641759017464160137225994353053223140254985176180650961019081710888099783613455638024881819258355341238135582755849061086471618701099164807901330016084275205575523181172394707795336951418121707556660854362854046525795150698929611993042514447922265478254699926913977312034989242934365680089500019886708525230278378684280724566830833212395283383900173966273340449047300294304790010659447256521805630463877935870819952822933845493047207900686649196442970181047825567213971629101711779237166424266288654773781756151248462581550191810696723255462682154471593598622178987470302483312161273243661126809048620151943207210259695404844612156252801421384033461227374653942863925101652123145283865057262126577622505313872106005079315346061343273552587299510402867114378063527677027966765654193129384922553674798626565967595060490988145718497812696398753398184111977864784448866175496700049284446583642151038286245464497234203515961359827096060612091565817086769794047147775099522515556664806881397283638961688742505681450450330808766678563894195096313329277426862707637729252760760412370875373120486572755700485048009755342839614903896836933345535794424658820203853247007559048655631843407299027610275974007918876910527890752723640732403792944044653573741753123638649208970880289289421121912910965868304890418863917447772129331185481968653970757104034225504901156880525907616165011982295056795940512697404577421412484504691793563872539680682879049603571265595705759008663850240856280098602936225114849181715291437684801458538687410502597568658944770642920480355712042544207905224399423328505368963214503413833717772442080907457423623160811519783082547523772100923082948638420913413905146192097968582270245972597531113465399027364972174262537562526731442028108951150325003424998612744389805650541967366106690039286493228338287633374925475969793348634202974821808777867297313437813357113885359911662423450974008574095351854570434941793100338488721802421949949151732674294780982344470337584773829685112986011388094679974271998786426182186070364837888916291389522781461084866167470524068427573082966940772883774828547525279605540746969834305193999033803415415266593557692245259237903530601716529402162237385645653299769424979773313676223648208386891258868588162162099497408712448589979873657113275360069905683197082409717450634054253259764813404023859430666680008130597650225625384208719354642176495703498433378567784923858045443334072779324863840622244202636946305732850197277315397891285587708558028804447440829856239510749895878555185634144211654964047444195594432289328076696932161496332680989444821966025966583582989101011431335622790300571986818740941477298803475287749975118976160075231600345792647320806664599190665150219556712559961274199815228479991407347062172017335260157492638031565837384581974354348218922248730977069663078174505581068707081174272347980189293152342759112312019111897322821639873275324687686684140452789513240336496477556888659877566545008163542337878592762688476685150184140228906549307156979097117746703808948825719831106366862471842459200379677331339139389681075478700006234498776796276725839669007045723826330970690563717675580154284479665657840467526641966148357941082579860583286727905237892420738620673189513298171117045334912876229391789019256882875731440179627597960476575685305597926369327460804542475239170235705169162235167708164733716083327321879547832943688286777404535907997731677450622901365565576842085457590914325217667018304967446127294593756587533730288012979060137781477574255130202383204418704775948029817510161539963293829689695778480059967745925857974994612634392634842275279001892094098750112592908511142760823704790731059899702324646142739952616048444833512475433532281641264465966913877614393892665222939734028830134347780029491289915573941772188643653729245629816845406269514079487243092053503341453879449686258150278606512805723039625607935474455154487523750261755564419737173980735434129749164947833715417055808772622897574098378237208563809852245734261358625070650277742919633631132455546380096749954546377485404485536746930889385908225065701914802364179481310097656215558476475210931960552463073347452177552262144486681871113300117214444475364539609577891011712725665672335915706500192019209902424673554929597454089219038125350330159925500314981971123986179068301510400294696768354493483498432660156743524140956293024751034393943592242203255103113309563540905933050464584209824046634933471953223964544128679742581798880862162852797655576483710063473368555528397607323116383402028053698073883656895850025788046141443958895774479841166256518846455745647252304912777057660028519385635058496569789717391658474743295621333653912196268060395130904687215673137396715973260273901267524709351142261908591753132713156781346452592780724278384703106914212271573736352781821378483146291675298890595607822058287604658256597754679152247843421771870855073913155090637806851801328485328895005587650992078166269313407092212074274471362968424290598029894544851737871588096936803303302952008827865880896473033326607727841295202641290979919319217796927884348979094385370939868432102437635875389427053946516359166443855891061707817792214673230152886709221363864484598897716805282592755485293639615402898075123204991497775876633269468355841262896957917813172863667975846109502868810066584175145137432129742024307019322383950190409902054727728670822266916018267430230787539194994151426457227580941695491669284034272163159096403232137549884291177148603000808011074717751019271894101868090907327763584449929261159497421639840995586701041317057124647061559532241741966357262373662081647008502987714427750897673591769104313822052290869470639322517087472480863232627651441328648372982069820533208230079515247474951451295103045350677966108252395094965785099828004998448744160397868834656225354424796343023364618542974755224919145056735212202837882316845543425197990329225651600738046259396605826880625140275436455426224355051575565745813571132207416222343443973887486828378804930099799131429996961151617098298139483985139432212906508118509773412766994371747283821338126523559872842160631424796992906804568295769620923451320070558152237748483867193324107828457980081590070397906744263385345365881334871941227518823026417620382816581858086635691340526306633014556864980543980564941599530927624418866550401734550431773237985253458318588441693087249173176645575825422276162148150095742000603665613395346242415963638299548989879253834042404171563503666068800615105385977406063204838126605010648243285905645040745513080314712119221359328437808513040957632568034192601839360750116452553483550326114252442034589228364244918848952708146063942864646810681259202623893047011200081903695626130695732064491788956489918731783323760713148480599910253109346088196619689475440899051542743080579327162240791003909808628904091097043299861026932117110458731632893314503447444335232311109164826390789250749682960181644163638274091994857240722089230513511205115270644203445513544028216846953304907152242892821662093329832018699351483242180979325008985757403318333600134685767186633264320751292369185916225185920184193774341436419778590758349202638043088596422211155992261487621594587532286716551892526406650702301684481361147832653968260608826831629427344357869691310630331777687611669043338456873512513372640371915161522807758487774558577484265213447381672315976687323304109867478114573688331952807709787083422348131639938287267778319012620710561230167146332520898833952565782311745526909677750328190022264025749672598093438166478868836358692863682740603835778023740574670376298728953433369539297432630031551785739998880493197609565465318341042793653550049790954924920983575534639230084016770811740262979047165500632110800722449240449170025572605833585776603319737904272116780041719047266040312235772707821365960236279664622985418014652074621137111198219716631952219518443866145266292625454439121002371915471294936801565114660083457968635945021191633586031708354345101325351212296312863764973654105419575439474207463139298713468924865551559675676609501897478377091449310501867492364789144815891732521505760831080194471211895924148602060287479492963980537545437989527893135495202131893751007671937800899094462495925260785761251755663235672351602385624662747996827496378281357492476769800666745740131817514964268856599168932104283505401872983183697080388183950015512505273791094878551810675490731345211575323382875793910299532512165255290466574439673352947788747861945295038945756498873407698263102693443638463321751444369920844636340887358858523402938222997471161177425260872356574345825552892024306830550751214913757019183895069257190887943498800295995432545147375608910677835337414878382837000041681959942873688750894755041558768979909706964546011879457923619715182588606481433504638695581582748931657135070775646004967546349724487931088498779918814843024566693376811706489507495662208717573308393891143918723237598707495769735604762349364683046395639495478876375040295059459757353285228141381012358207725469119184504017972963871555695405158114547118032799799782483866303327162079718502855999842947134425771105530047384391898321851587574636751631106479068595882799082271748022907877243921272918850550915274100377776791660473132920483266061107253291142911989085806167033468145957173165237458492571028960611852824743451940718640009910834049232012751600933232780493998505355350284572557814291839469990551709830117569542188000776692036527677432918255910794395087906338018647757852049367995833933923783799990109551757932395864438236894086788411364325168680967031638420359082583696222460101926261138486907083049903207159389171189261867487185554602871865385043365992397071756399765394754546132989337462892819690751048583368287972277774194549617535244203792272647422258731531956337729061121177477126200622986198497446829193167498584871544146532192014137770776027109104688842928437506606555152359036923853568244314289988968138413333196605383547669908726855483257224405736302340090925574319328178768787647812641457350661012956690637063095596951492345426086003651365459756668349973065340836567143663658699152879270238838305888346060090762999736430517301611061662621442963893707695683284995651225859193332812570218499189771943754472242653507006986486489715089546159838237081746833773888401726917308722015706231519285244168800061171920832081010909052082353736550416196865282846956523898225847535596601432704549474224662516125357661553194655531549799727735848389161989608271430376024733880003645190058361105954618704189547764656924482884207719828429688489091821635840654757216974010093111278697403874349775998248939983350344028521148721000542651342959165665507572164927535500982590015789208976760619500896497666440779983926707823585210521998455371498921178770415748148127149543304426755573722809688844401898325079339301050808032638369813229281857965035811372784082900767225707509201790094082456841888350717137140688740484265097920775416833945300881788179837265569613054240404512642655542992098935680600019262257656835025182682803799466592317937562369753792849212315609034752625730333788268557311658752737725124652886822709419159699559217208148572408716068685990423981175152126705781283064402217120114405140161560392413442845215820760160310432242644112312275359120513169409979654463297634766199503782052625245742705319543517344716126207881936499817188632196553680217376494296076464947204383145679477373536403274078609052433915614667506871768813224617152223864560554326243436612401702749908007611279943709183173813392291694413564711274952300052056883233708470600436114578730106302421251123194413953834760626415748481686560090435179409935371587926940385927924206063940716700040769450133290668178477353333480956748997914666118343340550900220327742685577430967723148272079679694798566218339581697805057555087938171321874773756867581162155891089515424920273478405266953118451930998512277246151153123039114942773257606871042638526223418281820734764280059197545544528418281223094097380692929499973276811102228601127213599516935866114893749834154056690786029851033505335791474725426065442210827855393893596486452277320501387259946923748387684263818903194438815959837987224412383461475815829770124038023192270593356257105838451172757620023653263192964360180831037304278568368557213851848045742247876337587754798588209518855633158749541706070088250378957362008181938718569148182526653878380367736017942017276894343854618938849599640887003543556059409940351007706401579449877747023446369177815618874582811461080590487270975109715902142463393469079068652077652772535285028103643281282498120065253303105721653495288929523288234036218689668648623181827264800973416878194108930393816822660331019736902474654275513578578507734309783400767798269254937578525394921187214779627930956518577127483284255211803150617402097285251626452301904168594105807229436707920983466201175751092795352448786221951972291135011736957307230707118502654926797050636327782953680726411115236587811642842538106831987322202329860943280703588073745186421269475317676109660101814915594274019666452275355903184065709284718374474685479457786372078937298124969730068645448044742709913069877751348692639758370191570940975207601956828380623411696954258459085363916989528799279630467268770197325738819454660786583793886939488945884352282534137757707091784912158175132512857315256992585163654295432131010112515923033034969840753080111599649186270941296622938738953807903590755236043922628739051873267094145064270469290667888852808756125930217804316552943019365712100574848540996204481611426658765462242309433881756095570008933891286669541496612319766642918432785637190595022020222642554388883381226947572935242271112683794814703242271636934851596448906988023297630284945472125590997107689241338183812803311543959935243111121242612652243339920334540296747062022639813660059653183245683816727418783161873706688435371803438566247992675426804465571425073682357644558606477241699851362412901504698984198624221157351876201630988109236365129437906696949526923166044338378230667700596194130692471116309217499144197268528047158797579251020768475122010898987887811105667199424323490310376375562033156031772600973631398194664719694117158496197577400522550109554022335464169349187792877357366671576359401860104169482980297712807788181715637809916981041897800790706978014734380458690470295625433466939062425559321491867241561331514872996745173057752748591535103447343529386375015459323590318278656369334091123141144405879810196963308293421647833637507917095115884812385108557788323656623507112490828279442058279258271958894429762039653255964009126498916872969879582278595924325437868155780985665074918807333577686003589300612333584748635145384161882988869942757334091153771959550961224864645281068789141431652109944145449507871950573278056164818919480025543212611814917094943031021097800217666139650531595844359478115810988212460157835515210326175103530413386772971494253965673023009104594389147880606285311446431375738387563343491721215890935004862264463683193675474421591200304903074438971167999616728617015596276395226927979274100224615267010060463531769311517888589061654350837411616938690401783106028935563676051737326852292015102684745638417410696246312443028872092711985095786914994271416476458406361938304441666266379457894592495923452770297351608039988559714466455997470759405624779370695901964703085374527486652614652151469485921404558767675067037679276233729719686164886911676521016932562965444354888419149652185679683282512492556415419679461479601814855903483286033348206807837784468313443782757483080299185060266606354239236882439870931724828745476376508404671141830885397547842948508484309891353361085885608103745818548282133036039659170096551549740027947756580210997026910922426433360124224179632917978516253296720265410247896888423624630995204131187045123117556909619605045745556917139941536235871027700839986475717638414068599503030354290832151199816842122957961165909898600375899753670814762078496620185412273005158362412098420326046751916264851693471056102242811645145258637146778674001198446564884001829555723963781787231284967403075234055720906904429683919085705546494355944590571032184394797086103135516195597530685741528869206103003121565359372330203280241574573797815625979376872904933063532546301790423968311601671199354688664974347729157729051961236280776750566377513250838158947140773951613795572798420711328309086311695914811333728512614352750318752909036539800050505990397617562627629406578141042118011317113175457353117931911520212533526044171867016408435374908640606690047062167213731745794090022645342793901456418433793967606228463772039975251122286048559479057635339055427385008188439046524863199663977053810282258017552656536117721940643437896443651724860747498350458347180980431881915712796114850071644475531052151076611359834456181543258003257530710195624456420429068252956047943021976746683933654001137107324323763371576233178987138270043309985090243690413501085216715714314981789846472989546739341671749832118771707569589099932849545016654011612954470229221649634877113078587977323144828278930575518822005095153864230705865898103456642820662015186578987826442219650189320834600396317877212291577206539886541784639502380725257872714828078878679809028954907028913125354416255974608743990492672506134332016205258401471750144868155857799870008618280169188389769307219147829343818800870545345904511576374921445860155804158574920726003778445348587436747594808184104572312317955509551490135124955812776388776240519331903383614723041678640224670717213294324263396063742899628237012201154079826237045145132929874316780340882511525892774919131973208840987584700111656464864892467358044207259368065082865616832320022633080933388653604487111099952999507050636732353819754145415145366993080540782110764286471561157491500225888256582914232375895275461163025763012414416157685764092110975322576298320530222838594552796336195537664452416554305059636407320439487913317325136259689028469760062795246195058908685650217978165386486826894746792299399792684114666427938121000467156382042288604026687039268088347249904131655446359784744754392521686242712640797918829663376184048774085211032236925724679580573285754098582718449413990453189071199596752129528856582947628725612378259915439537838741480997336443619448637239352960693182149952197684705897751049280892691937587400388992914942742738104249748810802744800219740440593944084989754556116510322070558892943399067558730446526419563329636186513127166080458845792279098106058302580912947650464810752935730707565408723371027892620927088379113866823470985750502777554170334074612363138759337785510753945928854058254458196749942925369622270787250105130576911497817666025977119763303488115639231333125646735525643408523608646316944747461063897056325473800573344879232936794786071569594082609038201278478887127673336199909278700709534644174170757767155853952077932900258737935022800322867976526250073649194603913807448955516295441193607071269149960607812928438194276109014969970634246180751765314407764806637404589117128620403369840128084304438239308613993688294649327533208594521070097411293911638809267513191419838358375310803429795290382486616459853746380110696593439466929892416319444487234604911221812437791911092304322003059516634378943530580114091615801203300652243958088956381104519732726814013525518569645040003747755028662117247076020954093100937686261383565408948401957825342985058717473389510111181655849403998844006275333743026483230414764985633635868978893071874431782190929176791131108218638501073557822723716030131424070386204172741860590048015151019077429762788446578690848514942399814814983123931373680092258358899354004572203420911506603750875951772345962448049108855791084223546211776453966033434080905888074816729058798837718714579534539573777753821461679557733914622671270956952788939293071300163623964850719932981539834641883490502926159528674488329642702999514612215617373857213230540309080648803321137941670635010059444011703072937516866549951269453002695088639612665168006132047096733723880246595491320152747067426390093084618502441295752022505512257268713641765720532684234860719713038648329998405932231008958672973952084278187131055006538689897345259893030039246494150382197494597108838876729089614086263528590380644324378213728314566045952178463831350874726022427592727680552062114571454675688642706808271779340191005275305903890339058600114684995800213009997555755126977500382833816571982429175867759460012103617050757505378504168026695340687530922398254663892662010890189463394118245127966127936622863336507733079623966401386237324732385742947088442194969606852471973740494766039469096259337431582199654458828914877304457498757743780252564761115343808015578607781925558234275678848546641878458409887079973878369231643521238538711661822167593190342198159952577826193491227267089743293330865213708939186145426770997890313192393744164001590941411201123308537684777048028203945714658730798781552069474791873121949105970919652632534958836179294830418699517188009333502434975550062995711505302826345204349004719516133529976623408226028888692704177696382145973856364538983051508000838285760733341433597790957391678612225139701698336785011940061260864661712018308661457489028519665597285400197618881040800930016738546396841629437495597382754637858432358986126080797230970502661014313269372016831797983265612569106582943205200651916574809202995999006464654151117271857617174374833252839734936036042660435320263795946841800308196673081582645344887525150580249737478376671252135395420948118045775289468358050261003148154944232420943821469534050069993697575645199800848628799471604705055420513602871093142413057658688974768479055874964120816240470363637450592068889405460975342938719226029161095090095225512048761361176635236113310620716131575522303840568216510828168714849303728203735177436441692877717333647434248327209274697600310939605584746391542968658100832160255405039185455154338024387207535804225259483315164841534390127221813589283020961387191987427333123478526490522133824475481519778540372815202432876832366268051790124106791258546227040616650072723596418218810728394713596476252207043342507835892704179292948604632136149843527236969310569181258790689142423344639856604518449462279558074048782460651457300797494534204428328116353581731664758735667364794487790256692554327942562446193221790296719171484365593360660746759846840833507954654552063817344111472209823430914393782976211855814321187384918845167820640018126033157186340195053342094033683323179622715752924683154603924932386607729610038629333790162100965330233465692267148895778813392348821560589808923136145412852135997070366150100625338195909641216733233270737254736502418747980122221300167962655622771694482225478954144894678443937990140673741246666176859958875995177237878359800807615321715745357223502812566895395738595217042112187720258578478799462919106517091567191993630981711616666622805113176072200717049982828668630114038969344352903253120183141779142583085554837664509851884389337688249086665620458878404259859925117483432264491705058988366731860916791107802169699336932646343252832070042660064007567100885652395697200425548709030521840265218345940876942728610072337686915477616656386847058433679627631278568804423925629955625171178372078930974901208863610177957185300939905110580599139915234643556978005956258381074965254340940841040005886188980811829092127882840701618944468836418178406972272597471993933721171703220460560738547414417828463735542527811581305920980972009297899668778557793191750666525991024897842948477354186818651474203828568475516967211149023665495437762275182008277258164520436516095029804306899830207779450045809218631815333493292622470440063329216181072718973434070476839119359968154125154590615787161149492017313079484631904447454516120438501078104501911327505123150852080515554755116113504201521870192628394221365321619286103459702809961261429381822457569274180084273585096872533739043290245336791183053451176361939085368369406241603742331288194580069070339803746695361014499974501814108376162533144721978392316728000558336721499043805938629384801563290830244018060170856979475760464386718263239507841811275520839728605937744471843305360935921473899602769535458407679095626477144451603696507457417737756980607427601248620493107910680204280258536768903507434055558512943605125388418034129937471118929583079989338728102211662002592085561644045379870798934795230617199625419161133834897513169114586785945852348409430813826097440450390134399344190193907645802091811701773100971874596667347903695432065456770735877143963802718514854224850020141379490718133259509752020984168420364272204773151939387824766069036548052535987816912000635599808435542911863932206586336790296540056670859147156530743452447496393956424831937154146585129884045803282810629844890050985320430229695443842751329982311612117658885745815415865756800818488415359837930829157583881449257588958357013572742641545786524073334207527765426813367842657231114301779285139669185030723525139885637268124736970947572075916758967370536387431269630966968819451649355799188396255882460240251106004071705525778299842850856131812666668906989847821439270082766127850905563217451335716642848858888970639321412794689379297124662572795172690633210309527503662138350123573409666815180002001289916848542568111972053809338871174439830614659218602793938340132921862320973816239467781931042665111289295138607831255928630767416596920237627207547236328616756757237643582645875878579486469256908401897800723644923406280845909162223983299682958567706923486835247890564673007838770839486614538621678286141190904434126122979354042139111361612398248772361196899453091365775659326804418101021852325457536780995293371036473648460667137933781168412635384384961093349164355740037448715586572654027497746447674261192476795280497016198516133227273640967628922704493036678876730414521575913521696444773228598981176089711808194390196492381227737005787081709673670709109647811249657528338940140149464152040683856787733900362030212672149909823893988468368366918312941959841478873504742433548815341668397921655132949447290295548701022604664503330676296615202173279464721575018648444824640175620113234975915649211202758230282075288728776820034764163785225123197961673163011915919375425050272686074833461251930126556680070095907114942682867394991148011329741018748120532329788363028186979631501098178265115206760518465214074447159497950760774371972556992756855847965852740461436424497790091117938319635518486810965460246329358907572528709700487677736861236715036742320011564988929319448840075665305689812953615383128226936233056536759184429642467087356306810601158342012795257502941938050487121208151544093112036535463572007501146414777117767024550386523330797177064461898081287500155549078306880142735328512112123485937771963741505710179027307253574858053403708968311172713899612210862069492853101307123645624368192605410258103949123740508799939897563934010804655165757234731334254602377867383950058846597689237637031838686229117211065293903386800432938586562771148772483092811001538737816817929107851512272543941583655114208607246044098868960324415436152239591758659746119800136749340966701696060826472976390462032903458538832580815547473696198857048629001392392655539816583194534724974465394460696639984221665703811252036630604670212402176869531189828460466941236971948927875055946202271782630299713138289622969979436815021917620832565811905930315564326717110847878818690191206772134435396645223222725677911754269114241044184438153682211387591933523325774481647944095380804948694474200859578444799073692762579461961833419338237667851876935581186635557296292698774237149247953877245375033225717470012296217754723294421678196064702130777404201545162717802889720090088013387912378074697131437844848561628178066541754916765797313666376384368075925660370844889754010911087624617619849686190254359948965218047212728462860628349070938525337364411047938220804220380220811209266039470517288178082177724243573652839016023146938354255988037740561172982418219214030837689323374197128611439553364987382116970320150527452914138416829761396236914214185215230395326649763316295030460098614119568888281506784180075889878735010867351019511736332621313473732138226924105744615601340286750291224637759623434692551338021122229891819651862158916219841794172904201766955888414855966287216986658317754671697946795503345127769982317513103617192825199388755396300894517247738186717440155370762216333993399150314089359893377295772041180152875500228009058713163352838316219172468044561423609918763492281360870106621675788053948857380618605697419163765634236930819248600676531429405970826737183934533221231820766879153354500718265948279368874488145411689654340177789384150435323038044653969610174815723555738657778223067749076671650701803598411294846011632121512250963996772761329195296747047430156176031391803343929327526451823836343362989681194908469399590190915418404307175463212072663210791680605199976772192222220543575809444125346084611610468563182627194450458142603430934998729972126910632975647857601345785699237932105360972263276561041105386388573842821311332797143985903856528642838580981070878488958024056537843571487985851246856065083918931659673615432946077359609754140078535883703489460280215593061807774322661138266855369721696482583575916387422383334900952372503146763529908152498934972813307331412439879425048822391501514092889175180525891163678161268076506810713496974868144136871677214402568062167886770229225489222222850159266368776513005157441508223896259288558843580871787843658713552970428818692870681557618520812666160318813954526033364759276528033622652963601686422748631308552698213743660829786110204784219897049223874473090800234497868032011739191349556826086355254270694115184116367220871013594697690064698549347840916793076325612068247456056867188440934848821396918921326469352755723853181011146451476342344116056083417225314902656273882064896635680777001387510526384013750332600196704798647250932225380942489863630385086709031723767873529444854844361651824434448146147427636015057946403627104521774343629611376566238250678729631222824899742547354726256884086023452028480716858362978076001111661168509946057410443651615803445350817748901463569154599659303918285018670668784443545353358186408840846348187087683618978670202003405934007594211406106448306041926402816187415283889802346297805687295168806369519526264311896405805872282377569378539177417927448187771420552011162826570328924521971898567626667076755950762400204506503611426001959486147289613690487665120908577325356999802801253280712193505572359073055444404762317131431873132064244950520574878962887110852406557927063302643072853544661936376559925626582875620866597065400670505858790966636737730589228350303415278988948553182646620971283274348614012453012434531199112574243179572986425731783677024597291388092718914086847858950163432219339153584064323395034563205125563468569637664025747011524596245716411805587310430255859215208389425706934676083197938595254846682191167574568623377663218322929528924011308878163037463271214853582366676807651451180460555373069497813028955503336146870877041392447192746813780432715899643373959678458571046918294534087675777568774197947040434538422521215140973111722745045548834962741704270183835304114614947316670737204974180142227028180303113905916597510763736300397376666043160066489362234021946436575181241872367945641533451758822693554371489538185312548992217524378508933009479080416313360509070626296029672919387653144842160046920720647775629460252161867477421575143217942258676539577545767365438764785094301580993739820338173813299437753448839297644040406952796562248653290213661669883574480611897837026454972940685779559024419637912617469662603670692597928983320855068571723086752771293872285366619701382550609851495276588733184760656328555541466877818115136272903756497789076235849414236791135619046634679650611286133916596741819893821079763944356463692260984060178244453251094738271287241293903894487201050905470179717236355709425539145946204422523256268741183777074884652100222882739184006639854900823197536394448349999606680444567370951798836984935747613024553599282672642217246407207566921237064721461330749259082701945459802895637098642308201759228409827504744014060963749109091284747242215756615401274182862655601703890264031406396361005920353398491650759353742202257466558969104438188705042782170160513028066629950372154083581022555607756834953566142648978608285568344741897491381174421728123350636929050628064208702115931174192366216590873567774997856364533851638751806807183265077974711555046591050602237994342893203181190974549190049753262977265533217094945170855047764838142499097407734972566263401512492929891754143674114867293284071357270145230351496311077705926365142576490748709856090565856887461296960308390625326889788845695233225257417897784820849637005922402807027513756142800765150252659914448029952261878486766459000374992657327278869110155822165913806195640047223135010617050552670157185755321381578724166443652402020309341662668652827103778793764602062333970989998317058823902344109197259436916979575640146533298370169131043936057336108356177648447191547678034192158882808450788901448262341611548632480996195546255495285198746217305989705050099315294252160244727548998518065161644634267412144119117500182121342681153394730511876088986515460671540069013785306318068685215166313296733509490199230912351291335149647843551543559625276263703742878469392255644173325045394520391126882861309033540538809132789679688685313537517929320265836038093096837456090916990550326292985599728065987285942282051526448719951364566114329304508917606436383865030897075946214091758061099345035550265435931340089818111076882897251844323338990689675111049357287696867799648293296129683428279281934498060598743446166064319611598567947217893819123239833957678112328609374925880126683168547501165018121807830046234099101844066532696337267389322978262478647360188109877804166265461351421528788636731627622871780610285635976088314221985726660740795523913372589593827222641682388352799392814169283252340623789414624902229751272914015273595727230651895381737929910486671458681162209947625665480078568961569016137684293038840809747378419993591919817186273338720855344998001966682220886968710140967343278341469110419649678764956507232646660507205586259494015409279169839414686325664817502033096798190402339493385574528526185556082813325380891178721478847373587228443677861668777718318233417067869035198815272894780012735223909054923648957308108305972751165090760681675287911691226192515238787732881630491407843958200491260446329936257867273570653143178109120563554437798790817237424272233039566232237442822440336913770823151500768202069725165379239646907649954157439147083926547591598917344738892263983249961473859105953145411918941181389540576768770883146247273565775153464190471629140952684731520553788767500065214020251711703998613268869114021532440167451433237626796326462166320716055736022159363877276870106840773357683616229099503435346330007577984221712583869777922431821548017810223660954548007656827468378534536327819549085774421290423113031005486403409888830609884777617667832749647537103566260609683208431285036002738156113725829941069738622982226939679797733801262863385142767088430071235791834197422406821006060383265812414819930910583462666103107911297438305529687772383315339588262722727984076082471128067601230425266972446615406937722552113045434370517335304933321541437076807036350526787825412234104900874502947946247596414671713864205699772675587898915159497270734121163157678513119081706272267333980322139615613522311847484311338557352834689953952190233183096560787173371282482440877373675000610054678754272553319357226120850125499929804196137384075543469486149069828103012241379363280889184312658529977112674831612080962568461628426750288085508065269955432643006008454012145116211060182174943513197968377643946964823947786505252379476583685376168504422861809426598640836283029014916333117038759289199334705407160855001299450890754396395040650913095367149530453450698736521868864814370765052252331024659170419237032569947497178080767674325022522105152940784532563080200200239652033627699101158206129663849072506083807263635544919072174764443941559981411765634657810825020693868155809103008323548326186939374233097425909167062689474934174133782340850778466856458831290993207804692703028773148388393025984408282718578216042042083206627424571047861593040340688706404604420226145932968165549512765134343111930989027964127526897830434793551766893202651160329910152737855569849579507681229168561244720127128727225166144998021794772042339167612828837269987320147196953578426692750852470506342394928747389485678630112459327588801921418312337460079515864814405231744346597936704225896485658502167454241831239646991755361087022637079121458386318508741873240183628344244767384658844659921369885107442102357741541756924312262542865479522078242766481327641468026831847669581239214086848595071288347898426449034519698855673051909529564407401764499478667248658574202553464245829339732333402235134082536688916152836115686762236648709870277741214842479073339477878579543850888105612419398586302753989419922229244004999545810050677248951622660952202710021082613230705655050242319943751464950898347935033815359029606386521084416053392330050631000656518120038743650755272745758406913851240464413420379754297544464409266898058259133594834721105462650604031326879418707589448615700785094559008562810860963195151481973022850578997335484158467034072367547800860715900350934223326023426693605744139477494244694946044838471712046915798128602844936559355203437566964010722481523813140122275230792074511479655651131748004290182183293762436810412633946047236486672868022460882271656397363940606195703841743202731990681182986954798248127848597015521404769206195843247901697699315811566440319230009430490664251179881453699375125531571747282990655059542952614197300154466806774527621523827626224825582111554099694129914481283780067694984634288342925064523788814817822772002828672758013861855692998715013654519018390097073572718973187035202997513559731322031563904417868092936196935870112106899240107858228427557422035961032393652983055518991028079287118806106359180181152673887070757280065823481965190002621087955065359761150065961818225099839541795394978773804742119468587705306557030069218380478312840052582918197045410677661159871880194690125545345765274957214556507398880935681912908840034354177578081331432715331590903181549233289798113413924203757445126784202907854989605398934262774589921803024254406157860907433185870032402606081280322772308223993874662705027021253842979733940109364303971646063794921475394828225279778415580112188076174556599438624713945562841049368717473351074293921362783664742466474433553390767870814297509221145976309462925235349265493853489061452661234893780651835328896539449931717191195740474216529110800548338478898948385412813117874851860362402038429804052514459683092633734717471187204174123524255939024112664310630257356573445750902649439703142296841689256619966565872460288567827988543623987923331698269880096686896832239094804465841511712837795624227532393827877281307517239411752028512523957831700375074403261321562787443212238379648268332847162613488163797390333523175986648236368988879863060453679361217798889287799756365234044710671146794225700561959091890311281507317922467156367752361411533597351269179550509144236967027934395707194971965818319981981065960339613081749485382430271950680686285921366629107274585006249392047641944389888865554280841674651274921647534400775246227439966692290333340337309529736030597312841539876362520121595503571450423170157422078269692835048133845829553928181489653719207609253431295709112357790232604379899377146717999636246341000983227674405580175615769242892629755774524108398593777537525914474219426248412728643870231718661644473882169237408857269057982711923169147568058421590589185699292214845481214342844545690976627414812464645223382681991489461617792362486568626654807409502069503762830192875650474581659835701725055503040939340119248003315138944890240265348239687636685351910438531120281589204465316426472005870648817307670670607767643927734353891080380141706372616145362690903144651781127680277066227253319117853244806280032117446989946628408784947524110385235344841619619998712449847977158569786612951331522640879776604567399897093110554625921555198662949049196730251592328322797003854666227028895206045026050968153924728732188717005108918455252387248293098860517675805799586938557365518525672452199567239732472078958143202391104601844430423038551338252265437338580866457525026838678142708146787955719634258836723987591193799049757072868764598772626610351185280996058693041159081871330246251334597271504188023218218918143383586913848063694924979652887240595492062123070493768091953679529854252010554227871691650974527392704585383550315693857746092419649712756258865236123305538508674177186251377015645504321605734618118678222921282043820924320872897808101794416411783779832711568736209513496226751769673120656724872380827490613180414934019368414998596901375701855930049808179511886973785713104145252079700527027378453173276654186071813882399242898000438459893100702132285892330428132338379595239170757985052348137652980247404559088107526212155841822926206367385017482873796446232368326228572749913214911653100605572315149337838911063148852332329533111898725438860711799041528694931105197268150110545893752949594827071207057304315406847682977054304395274135309697863128210413692184997263185932664303634239491830991550423177795979729189821109838214849369294473404270286677575847640651690672325265288807128428846696017142640336950475539206829409007282625179312573921782023481362943600232502529105271242527785777235482532719927749552233270800879960829571639460208519560736269037695978813354991824787055073304975907398182470709595864559210874962081416986645107801879540192559065062525597218923651021685991486028397533135868706538438034132036955507533476425878504749644509251231644180765712295357412052945477394283004473697016141866465656412048030539351192807177725632334131207422857719863807812822019367052147317120318903613581484628893122806328578158338998128856509699051814800261891660783033823249283753939430043517862289072516260910355590153985498380272454209441874752384236379792200579190295756357271544396443239594611380094809608379663491064383172909169163898194641785226692654737812627675096834565242910335244847427316495275939286744973449944746363220421876036930006817505517476028126867052676372293999416618007834696147518057727484752382311640429335972963730900909298615765387738691013055664784067974882181167965262088480783410552401216856279961746071217982514120310558329930943342254945523103222533110999953505557360669711580821216421062236520267428641356640079521837326101523461762854246267086512437510851103427165211984506697475002190966194082103906531835573610143895237768043216483028899376624692321446082381599506893687092148794933308661063818591301173690954613116677162257607176679258858258433187116061995725708001807187336900306366837454791720898288630299168347256819493384499288992928094359636460596815852550711341143407151100561934644865678841418348065113997791654869772678531657651160087818064714007506266092081039540604899459841811981139970680518736700123826445508372220928586905450442693714578996398959429850540050524124729832216772649349250297148496462695358391109012309883324434415193212767591595904946877801912170070249590364301556735517875631793474496527340001812309967020408971754833701680101481052909321478616216773233535291120224085883159685059937093909719845099451100731932324603950799170366322676176808747605092280833519613683254694962763892562116838672094349577659211677028690456453340038736113140184881833896748019248528218144108346709453030506436450234382715870229367298661691999276878821147341287298141969230883672569112484794580784356542108933494445369932418546218343688465171738961360646462680605549199508762411175277136541769105185707391717898094582994294125997855372914270929445672457019730607404166131814199138646463467904056766794694980858873577701093556274033132147537512934557360367736640449239513643081620080177181303206901512376681687042170065929605678420878291211033327011678752834909516101662376629472430871895092883340160754192647943142118823640972927175507701792322145251254065175741853955686825766468043747613168342750267955601453640028278236433109228597554143317360537185020842034189121475037104002393217950881986532590408249530700511035570655297305382473966092427640311198231916673520778103221253294490200703578784560844266905955691292364175719710119677887253414273769663146529986014023297144432368058261296625547545768479834561628317359179504614951730310149241234808834358488879315905526232883772180221049625663146256125149242930883050632520523284797754549301058634342453524680771373488028077866635589079171817612767861660986803339899758142382556197487460966510344576334547109737908389623098900136454584968320196559073399285548819679542129589101828142980548221239811841145271665194432047311497384388335014978349011060047127366793033477410303779102247018707759273487563336185225589130809745303197339925508048941907467908435720044180263365485408679150464124426493816751357081451491963639193539184656013432468372153828824086086033611596156597071830129648732684285767066878560747991281438819148092404653075191270139257277967717371392698960011503760986701099857480668386276545771156977010142118443890176582933529682397403839925177780398855970848552389117087834592137545917080118429539780058967440951728154767394192388077897679455692077196308955829666812858177001787283219538793533245249168763104371268161023003496154178498161130895033940182240953280214237587692272803404905208493265885679526620735824928476627011848597628672706816783392642828502799305910035745693091461892977693649452950929363459001596832347525943090408996586407169233385321796576426527999504438837717613770016325556487688936346271052086392236015349085243262613973236706098926703248684695582875004266632225064165931390356129677045913250633322407436452684203283542887237000845930163408473634042267588979349099659107959686748343149176192408258076837390095541045868516291169005746995778086274064627386948356686712507539844992435779905383776446537020648225714273365119341223824604591688506848372761662372847177430762099853302123483283828041811018910850409225954872748227884912921037119742077799291557743995131802077313869299482416966074393481405257669060466695690481968078861345679850834563673166519576835392035257305078080089046185103146112302202272589422422935685590156130518792753146285999396137120911121027000362297074621519826525707028282582169695597537941847612398103119869595770083587386834950997958259236698351581857957321223402332468464265803840573008308322341632057465621093347453839316470336928856109632779677725318062599784859210837211204093985280345818740455234510449886844809234648082732088396098134330733020137819783769140570491247420666513465310474529948780775905709270476829404563601292518752705049714746710761833824426754975040190665981560510414551805344861243972307456590567803487973658411984348469240363823111851836067241673378094930294399915897460360851138792097030036474833795543529960335789543785080509768488377448305842565549614603424283183717497419303939671659590600124348191479556549048186478696160926765433510908056529663257432813575656340133247884186465751370560117129502777850601593269031615311256122249109862213427486555006793697815644572063994048844983584336156275726761348470032692458522925410523219977294807605235145033689012426782864452378904744731994334989266823347125218124919441072425641446029413412903410218004874868477490694132949814460465649427606957426900228261527769097728093884117509882829519344668487976579103860638438618792288689734234520521959621650667268086272498605022490855106434617158084249299134574120764309491796263152750755635446252231931179892515587803374139974591185009293398000640928762707835082136349562050378212510128997270715686206110624342034891334346188222004370271751452219794087981143816004681789609990482411967551422114447384535984228859838865187955406067563070042771662520630338466337246813292999358900048455789096947317686343292095693697097754584136864659513529553088875293452615833151088603312798222182542839609888371027118221169916542733982778584565101245881093253964808853533197075937576242676599676872240577698770538205335869230601524758591023121113535962228139281106447295503235404852352272223788628038793219529164755972529239065838685798867404391571334614793948186686890811173906061026957922485013818193935942355918293766280546438906540820320360596472301770564595394763006426898371478836084079085672232866497202726694521994025653285558562279208477177350640904047635670695016615001799974730244557928479524534019662235340967133379294198995366897685087489552233985360741993931956514639455497455941060222913158718301500551504988214585676021631157784149750753623346395913062201401842771419715758632624515789527330698728891265148528952804731649124195404178250894750922250673575620206552834942585026965453745266632149337344286589664146738073272649331227231009551008903124957844032652400404413846593490195293730175169373383370219321001859468699076801351124244641728709666114213856246728916723617126004301841065672519952723863643438756803315708274386946252889031061046138582450441410731083917941331478239951071630868326321975362271404034258900752853065781099970148578593047197739734966967726355417820360692829317280618899090537671369544879052150182710400598507712023124302576925313312576292435544354745718238546834592340345513595418557333855516579850425619434149192590962998566466405611265383908572005251582357784445870991913450782373668910953589058579461671425785256389736649524480103354664071405053211349578231636680164025278268702971324111918379210673586998988382751596193054326642941698453238333002623938586396614882483704723561873636692310354537279520376514277129180986325494398409493186897873749596899705656009818722993828206074987492190494645879194717388207388155011729759265174789207516347819465308217167701254342367598064813807971635994451316982720434326292833022396023860167081233518724301402800304244230130991712705218063712964916411226476125021785383926162751200689814084874276072455618236091294190667677774963250296434066818602704620233291245008414382969691317384491499450812534325960632282808284015333991625605599263201864106196143033871191533960367676815141991606339934707632135078237700038371687435572040837691365556635431128094084932016164134988294552852940360717866584111219648391485878337287900693779028158859069132714281298313551059156241718271393537113220659006952299791634506313253536037201706259964367847471868333240156303721241124156353900091610764604039588778367914909145985020843293919063796938637771188733432026323833703951854731023815830663369510030587198660398213963138504721812310034441914696176790445995465234688769583667138969108634174826053133963410948342059671525732186661493727710997591583768692329236869451444987408654547888317642708579025655943291321944499596196721247282244957132318669830405822357545647179587091339134928611973525440041959708049439852302800297519533131318462199577789653720976515868181788934476821584337510060952507811430271088921913476929623061875141693931536281960852222823437930120177204132479325247755007018670174374682059142852516913512725581992570400225716312487506298846962448366861488663994767030306804653989260278927018154099766113906784263025775084566407408076479164014415368289763160377553816312863264471820669137362298141879949767365742621776101360851127549818215742638901175152779186236259025467008077293246449234787002128119521900779927229063787287480425950483456321758920753198793097406331156135114023704453889040150568049959830364994296844006812489720607482183600312886009818703626161147845662830111922571955500344911609524120032510177930714294442069796689931552601389895633475273285664955070637741601306238122098283902345303409952238607249411398581401835558059209180496292531358423035112503253545929251240990167771879197520954020333939662513787571758994834745410243779786193660522308801448265989129724181556323276444745392651102458853393725910594541648015143678121837713491397784297633571412675164082867405889764720684088772623313357846168285990395851827817242760237549547822075823678805022137915687555802431025929056086631267475491729305844002886486679014286875449971263563011969355426602684205191182950632842422904662519877612879342320043562474430473192465866479901213990379066473183695912299034034387954658443698131247871458300180025998515676736086770468017484148113496971896203852395067485447056564874030796077079360328171604880086887846867946546392482099282997763108715509718198790022194689124728982149571829391701187304174838158168953982813658552174306541745148972232773982105834912772572027987647769364898467768760269523919250412320047741545422551465808413732352923552800399153801375752864734727572749094876478618337585756141830024645080393380532400868197228127170813110546454504725975726599462779044689898643431736939568544892316847710225601323491832968961966282713462131173067967822996483488188308158386996937254831024659875034258833175674483155667706222298837864547066540957453255310816813754855098564778438801651143472739553115775507017086402305127541059085980828396365305486151222856617279326294681272659304407057747416900667401120875314860119316621197730261993161512303571645310547173737515275879446826088667621543085157662786014850402164910964425490883454353612405291687141570956772890728576374964762247970142294407185576948201251171449058587417861138892592707878565438692740392511627667335002570823715913633566005470839309729520996164591829585606423488001735846917629203673774134994020765270622661253472641784367014495356450601928387130192653798249730717813630222616542879164729287885624409878258166394086655054569005881465546976300749270213001657213491644106497566559548910936787498690668369854420776909281731914314194775104462693620152248886804215198432651583295554286369897773704788214645756575398718187213896633982492601823057407608609262079840819773090408074424872958378607611543113407987676925939156453108965347121335211498676681074213003538198625594783451755399661726842627193794754346175203423950032440384511263616396820445006573373126809407938002251123629448414455930050138073818084822500072310671863519843244202889714712074238057818778893484573659724342832369246371109320858288493096089180411233323942262534369079138420247098943755212813366213595592110443834262946339652932639397595995488253676052021390352811189721482211568788135275482126868420746151177627370867762277265485386665087406979193026657095658990237989378548523279728832802152414984479257015049433573900722589213469107428945068834061753127800969186054522084446490311619732845560933127627643962831415344395299877734634999054081996357857206724995161597679995128508585143290852425546385490521145260506342016404904558606901288467592527536093833330805514818581343174666802881130119055005141621662749173374433856100638610516210680122313106040580238757768098987694973858943016229023301593943273114834964247033015413784539581178535574438023333154216735178478138016312015353831163683073997535962279130278839090442601786338446252938867336588508705227795364021198546049856897267511191764658128440440122279669842511861668867919553530308059664190435007840571313570892942481990350106853651850604804036245190941644740086664983151743043892805677379870065747636325290838195896694933069983871454944140318805511122889425935988880076236024626550126108541087863222408359200321833544481494083571705663270532220019518754705699737759603139465816265093106621367851628995116309766555563457947714569994790769961008083319504049867224477870622269366290655008496764589181088347710062577624236414250108858832658763153595479564008416465980611859861566037079263732930062057692473501167011979778486066169185138944761151888291290094095823779938153079058156928125581502088571977529395589122679440275215991558111631104108821441446193317931768471188280697463606739348491850136018687363355959871325457506099842797799618257966521756062137898840545889298393237742403028897090532837709853050424254056532071355316752594535033134378802247386421967841835819163136106382198852658556825630227038356767115631425219613823694972101836423173903997760743360028726609658739901191492834860520111739055796377810010976877240135442760547014317193207486688550447603081558745085093427750570019171086313168304674197144638615479741516735600910021710698911837214399865958007555498259786257497891705173877152249954775275557159497649663482847469954299209190268039337727072069203602480056092397107447396346773610526987466144215979216789965952240816414514815709111399697228007742932581452996340293729242653322511526773838699364650694430883756235877853229620324634655329171771299492373200949135380035324968776145080445388497317085866907354705111412782238632214958872103118167000460046252838424178902924823071038062651238487438893292967297323449854083045799734122288751804953013206013770220127081065381101704453824351953686035807118120411179604210990058209859480629963478772261784236767283350524662715654822845668737688238976558966351271597685135044718907250097280403270068576002001361506080749736813698297646993636488409225039588901196115504999461140535070085637176816383797831648198574899918274413320277675695848403967133966517981231751915047649277477472352067399575161801794481445815773680511174144630150777945843693435238770797777187677414411069162367458767083484880228053882269456447482649612491921465554048501089501982808440533883618687223807093866443384643748372253831736594097002491070103528703615312776254988128979020238406897162551713151224489103608610444839465511202737823995224145080529990225635957615212653307926124498261280522905812263400382411564852376444955453883584015339494836696257423684734488331763595744656393190582018728773876319602946460164576459539406423566712114858529406923037478771231005839681349189065056609126265829716315589541704310296380863861741842114130169044018563123276515390978729212088058766916172523073672785271507889760262003158700996556824767776645586556513651154424716171030391886832456682433648151579323594545810500260349714060081898476662504014527869771082376936998366456007359391348051086819822583553060224459122547822526858086463172109483957080292611810567021219473426595312163325139409565855566775625647593205954887467679708554774046136584728972673883664591806314685220862320818444531812632533447452168877549874112232660009192783210023828630776864314131206341669580641908849050543605414295890888540056591235675933174416924088932102792232068337646754827243347852536388497716709684396159871866770760041534654079040176971489772447874234457562914850172386576551387236389643282299367467463847585128553517257574806106579283013609192064671012884783214121580003587906637493869290264197177603704054238226462621102847265545152116033675861790057253045616009096755422709517106050813892820450963145548195866478379701761548582045037545092247456042671904497534450767384760080818432839011484363464694507077785917578680091259475348751959865886752368536024588125628919832164758704167861227609484942911281318485774463627969977732618213797749684079662619851669298747700357098501975527027328969656866657566967776102961921068184705940070342028834926844984228130732131976366469200004529614141062381730782206277717480765358127128875536907637644533719248141348346667239990764718875054066442394810517288304792868626200110136663361356846771757586426171767063008220675913955609201396955569734294110576081570351627684555303647336795274142696581049424576081904738641888640632454809100677835483673528865407638471609591396943021070100948202765936749989451837266487121466272501448189234020406038281894849390412151717443564066065400902665945866714866564261709169257616203705382231990919631012007590302520247011382130117217720967169516304860078155305613035269941358271989531184031393267531614491573971539399370639026024037249344737501844714161218451207172641989693465630513912466205460784355980496799628769652474688794471654675240946298289341181401533371141271806885085737728559266439647496850831097561806727268494949508425317857274139913587485460480635250130973598264810308561208934245602185352608201591312012465275341233431201417350881431976681624265676142767085625317315933618302532086163805672322347575364555144561973776858008146590720267601160784267397005158242008520028710089273745875416266814729910905571075466977244087537582086227880835149671795286833121351550881124413488723190685944291938620047649431364398406865851279233397171187550086528597048737810303947995180745078887980826134916388839058988285187329420241287906547081556453905727162346524149969583784664289931181241548862476999719108200228686173912041367180761790197355996325894035988678774484188928799136050076893748051654600922523382307813902034653674864647146856689045173696563569736367169545418438123236201814239131657328797488971157379772662351708802952332954938685385414243020596646131786073502803506404454316006121458250036263133853604196943607997313852729083902605481607023576693337373162287224769623286111505198029198075187419088416526616350919303506813066892971341227191077397520814745337331669718771522169232508193770448552736173542529649249688968699138034110420567153091146382209307488085640911569824608348507919654483581502464780257406171500609780824699903685100620258052387707287809803891235074591737184986235617877877663716668621035097975273953160220234061928460519718650046835610852008672608065582548432750396303504908831868955948714776727557812950836176318226785663247557204545205586675733314842931109482662649058160787739876716448930896697211491627033753031612192792821648036625405508310222708983162751641030603532138433339298736907498413807973249764613102984721637496888239224628572726718560087054106589527028754695691598031484663688673238253044065225748618065280109856674391148512344562113647702171186452038426833118707381757307277549800922674252016562359779552781250672494679841262296724896230998573003258436079953560058911600702261669313493027066163298565245996211476118521483480644947571620892506536782898446631312326030663700513951098015208435813372737472119228085127057199928103228119840956103214494660477759000694088739565257602572411805009315171368664699039601293931384073209709826629575605351178565054655058973937546236633717715624595152104224464072895682324105906795662056229582789604217569873347828133974013722709376810721735302465879425569528325280156843072251767010546026812768070231819260339940275887308988615946709445417066440383624975178210870716656939555447946811022008034366612477407646924693082740782526460503410313804220141002639007049738072931758921080744203609843209924339820918391724912014873059601412615726763708407506243483564180982619351098342616726655286376122047089530229480435074685163115812720248228611503038904854202688359204798814754485851149780696047099740482372099440138888769767528438132357618089122456800557276750680301506837390881318030862219881454986705718411688254566280772611789990830908881226673108659088821272958010932543249546799400743401097129233246359671611228507692382333819741166556408829550785833034485970864835218131871809979842855073328404756644439671797668280434423593687140011503070607950862760794903431397882441512595220869861773637222308773155087782426191495865408580741371215162253939472022046701927456467412982291560737476833594320404671946026995602182625000535062820899080596121239014504343174168173775544559158226459266626281776848386571180967994913368429145715327292421553427725235557643317530283085274683183919997649881031604810479769200918353912749911429676383275521570360434919572601313598726570395183780365380380601808647787046687879825045862899404720049498414236615038094820497839062450071479567222348271433365814304965617399704026638161900761433928892977833316738530801239235326305655116820868690634951710172458983852529763689485366513250325080695869258823625447697765807271142563140584784977429294755029427845977066330737735409235219422086971508379614864894819793700884251364894611396009080234456647783511471411971525494456393237679689901572246299728732570418158963997561500825407054799075045331709884319411476266457782365460483828246133387292976963866681514667212326264470407157763444408005073902717593520539318833233388280412533676095466722371077662056404953646594308268004344863298865740112456888501651815953674619268321895569217229991347792464025849203304377514762921334346843257197142947745050717242795155955315695330808928300607330533874985352809682062880555098291733029641853022091700759267485021562176279756154945223941237491746725497163764707261733710894476372113827928427488279599247325945169666822027768995323003681423013206677721344437395024889956303620157654435576292943727418060165888966843200009047351245277975658021594470827482774607129926402541120346172572152357207001813564537118496457906287922129731411777726392032867428182468219747679221877660485233563818601638541620855566142975533327900978309613894036246349530510566365730099231457576461317562807840782080020993701338168260124631907249733542927579026673126915301240642779172020661849434507755818073569620104653796000477408974311689601357776029054556870182627604618387009819987981714361261920060720702703535426382255496614855031018923738864699019186573408443847983455206326811442308933372076905966139463803357227887466238902692425768262017520280130888874450690191519152895878239536983002250892430058021448373201192761385366220941274243523044726523481788984778096380053726744428718451290461500148294024207001155754431535873551742228640899364681261692240934168018035654760123816372120946490902123409866090840887784597923652540234623553275969867271797095638809906277340323083657112132761182700304197933715799834816573051893907002489324601480065515189594502985772121598169670275695356291013236748564726283046109601008353830944259678988442473434353670323242391742802585691327593344775697334735019943818230672540216586652563503783449193261346739195737345711792536198673500657673958540384448537928216739078569380756294001636835024482690654735277514184644678962904177699995408541187285215533977218219161861003283668668667280044740967141914677510160589251083914778545267608710620076828091358439062003933675379010673020335956268785104887709683871859994562080417853067023809942799474538653649499641524169421361762300709600647486261057926052409829272792894773246376230376459360131571684186138122134180167214100536105736834160489219298819807270748087837385897515317040890918346401932950199900359589983901007381184620499118604057657621859274450732378427421003625459977214842043950732202341309854660072310738332754288991695559804334510254688623206337163144636009346758843480846044887816354479778091755644128532940891915784113244351081033478208626519543259385359817688477206891278299938950943103325866634726711784825405990026327457228285439448189342838164175594077319994231689442745294221585389989676086543248765074126069505432612224085537818487286184967743642989761459787021129595846283977565976654752818710928773988136292665591990118978879298235092041279082599968059647952398733032625384315104285406100241748298480867454286111126478652387603415910824675162389779039007990082717367519000152233426652319834128020542234176556775381083003332521967270575162014845408016488212701966902408164479682437205180476117073978087272268299261779838266447896000178923148585488964849531711372235542045449416875780047562909635445084206829473218954317101823243417882868413762676048949721040860241071630233735469414574617460068816669343415015981601630358308121942056570205981402615745163249339642315616638824462045266669542697024389234204103701218469427873760937505694636875158733626212345555783433406046398989395699015672166613080920103339666722722163490114017452912672882483811808991518774165604685110862061363750508517665936535352747430652258119227737865930101463868401073927029468400238859190884405501117967148552860843349446642240490101907509622004140012934495145860442316495049245144838888168452073123881409791635039327406751715889620476648956891848980565239053483401734586371942102792569707227675599280649150811372184172510341521626841527328785366048430659729814155174831711583568532088664277172185101677441169812871021595875223223227173324880267109725955739483820464694553458599970757863538226219354501773514666903361189617875991699354972089959326156916633336112321256456058228488912775652198584441150593714445827814734899409173421799835236572488669115367747482596008632440090517507461891685854675593791387785367012838266764751721192046764625842125046129859532880478518289861601494340812611853274547864386275473395496030423238283114824256571118201576766138973076814765601872451631677448420309056790752347204380992442357456499295687146425005683575612554730358562013162007458857913000710955300107375003441757518739882035327874779116110409609901713042718354258288108221710888085149492111249373378095537968027625310464782110303556637628166833961958973736104029516177173222340272918714569412474369080667973760150217639739430197438195584203900989017581393803129725513648467642671352142345510791982450959698803702891411253671164924162540082494661607533272831607771677913872818754875795437666050620822336617398135880297064076605277661043435307179410984363627047423388797264752310800367647606625963419465732460946561794839368369194853601977490622585634327332318726451538342730159210483085946578050932658546992578232186526743226244058747008947688167975906786634043457141131527514196490640911225209793522788693816401900132505498563484881690289817869547877156855056184540925736528661488289760069413666362335522090851488824198626656344606061793216272796162154226346460575359134819938059733339428678074525017596405877503663704297280842505864716468025834646795495887907274535038526015972130873900460607477046226468687222332547907576694899751429749982629142540608096587907623459160666903789350566197914451415478534098610323018055484131964600874172308773938965902594312571970731194584731509968548319949052260724964531384036294155688408500187112103875673229355173498771010106424322789942705988568766819732524780312268706267155697212277863167887220494347598282441955806652175560891454849016091433069028802858665402389823544937960593270066780676871082611939834924759363391718316603753560115078297026062643473362670333825369331027282896977195800986214717792920371980080804317467224887771469477400570733589652131842301502176397947375553696148949493513551354102839997031026157529918295725255773278470329877939399352989442914849921401113546608271243158482312202565734538448921328721677567412171397412452185203236276967538753054916195196030450594261739447164667661540185364678032385734670372935838837480745819860984065942066149761332573013357641595300979008643856328569691223014396538127186140723685442263887617795212506553514995798919301941325974691504398040220456717743378022602465777008613796945039431280869209932472154196654796313755329886613914234671445800262414761504696000657626913382740077632222624293569420050980101131680646244860750448229824506378827996479759960379165711722549238177783156664128504647758484399911923264480657179699346919953336995288008986673585514526597357569748221712441063703865450637159852556032868343202593485206313327802946947947296695237877685714620747608117408218292137776155205088620420691343575462883862813891097495332278147807005135841586786547126693995358504709975914238123726238919982832333855662663498093921382696411820129005396834408687612643450954012320005199010746239904156192781322574781668861087841286774523866238748705498773505772102812830053042972177110494140622592272629724582228150835847052997655925776489571006944801728366056706600145698195076645028479321046150263412313534905602771007076818593732185680237991967336038912724705968698508779283191693798816249080821454829529109347522519474452729340094356706911300740611413346832810358970974850865051301525659705133195764015607462446763378499909446126117391583169065925197005374346813073236081404043510085691810052351542661745160271352453468099190606441547335555843486352831301757300412352414031889200506345429232116986368739701782063287599036654408177818368556592463147720599519654704645443125624166740950010799229501053186223222832025151675542528844014239262370744237255246267722206465798061533317417093282370661764506294848451074045596739269533342365953088256381985217673111938445526085174256543510147743398686776224363446485801516533611104990095078567285318722496732390274646269119564447462651754515818082541148971936940863483040425477762350385522204886810670014455414573069166934768885619443221832251516033018694315770343653196782652494601187475503180400475046934725347593320080009806621955727204462449580028960759430555428678431130965055196848498740099815612599921746589063147423083361681643441704364815556525831653334822938255726000669322782085875974361064096590121020333570771091336029792086331588431830841243488192822606157961400680040594445871573693451467907162277595067908037724816612591858215038920437642001704091500975711527449964675983428478640433971750346725636644597039976930158193406818110088728123203766744175999954959419315848057263440875523467568892563060414746371036991557002652459210530538724410434030464815833579885440457783565304827677588025587915839477481649593072161507728283247922211512865752107790882687967289197432133651510881091796772333436828510331504805452922993336844068733109773166277142286200735990438016569660504157720334234895061277672597320115152479692009084527748033701815079143393359792552360300887016153026741096572454773247467169736360596868488648875510542068420344364900223003174718111397312186837041869595729251893984489750150439821543418689794259998303211187480062086460850661916690896611341961592465135598876775150921845615796685771514242943192765455562318292039334412939564691810982349128047347020608118725881229673401148826055724518341480665126842408378820492976699170721392736335097700330327060599425591249824006696231765332905261773170987139963234157081488467915171187754574916582848659866125318098068556791817585247539146891894194152682005395924033393730022053123537021713144710107932656926412260914095741112159465654384488294137832552354708185761414104335067547411244686690081628657862256437959654483756068990781924582290379621236195280676940186649080381061778681799127190654280484701561216405802822999037919482248808074576028027102792142502094985936185268110952167791857010055922301485047649158356042429399214680910053440710644500490438550799699262359788663006147865198770713600218364893073682544706644402132155345149259652680007641645421296948857089702452631904773709325752666172581312001492051130963391064460597102723174221762260636761373397792726154614083113810400298993327795009980494986509581657956210944759484792240772420927199566549246656639247765254235219680761275083359252652001387666568296336784576594499650489963906856042536639510234749809348178872313035145168580967490031700625816928306233123193382364766765145532286718890098240132692148234662624603179501379616815554911035401258251056379654666802215168299136776755102828557109446993102230242115865325793512874827606978260500867694169928775818862380029779537739320207580733281257293589658569424366736955847773042784419170779096800857947862692649477446992863388141330182429501973596795927619896856785300219343283153514296789717496840007424447024006526548537583301936004995669562796450720852470158254286864380067854103448103584866627515027868309877813359415169875386638942597307021558330327851698256013807152444657207962771144276555344908757737415018433476698562623165536834836918376707052759757844895177805965672685309589026614555012846447129872381722075751023389153453873422713662677184761198692165661500968139777439118348165434780874958398897987938323146009821394424945405596413407907503088882757331104073350531421436614324106559591704134269634000309263024319963757899854480008274047720835529703921576511757806295177630704275834213344901880870829957405875621459092961784194803928856640087783723630545551122165439241244342027734089580770790723049530067089168162331602583019220529937572340737096761128588687729659221489587931078503817202667325886661812446480097311909288055462500554465355530518793647987254830792153491132408359506823992315149720946423636309842282568352325109181156867220525575622877525764391572576474617505169632606473687171232674459242932936952432097122037482475062679336909129124479534808818510908631592378056906194983411018007888686413696687398386837792239759674904896268495786967252950124537819286817924133806593293969797751252569049132516156369501580406035818079748570829882507005472097567380058012137354355214889337482228279987563775691684985959712881371706128060093984734817650720268766916913274859118337689515026716222117132789486302391065802917914995575120425319586153925406511460669827109075733199378049703323428616300372273305026848502246927157386806436362578760206645818729377871810588959788804150999302106171928540050706077606779522692750573437468079412107016309822825897377192927138273324297376724256262905121088595260946247473908933291066257386699232452003172516022346810801324157552593687100261156692903734282989633196947830406374979199508187137239679583610005778575625827342658235185998487687519295355543642667135409872398620523177007833242120415337812741783933907161026321769638324780636309265769634922198283428221166680655376339019170804747315970202203612729525321476192339634307745024312714490700638663189895986303525949357481099775716034171046942929695979934272099114134856416314324545000739034424484991324924219785645056131031040622993709528572506724377085941972995816018132725989494121214618114270947331740799095014089293031700729371314990080916579647356173270571623969735328939047996035477952021514521243759699877357780169960915138692142236714371353549827302270107041487176938904138852215027370500833058451518546004702490526447884115634684371587094244183639668702530747131300362381888078356025945076972409431441959104358646345011973916326256171795245216137433533104321942764403272996983237294919835498650870546670490176653606344880959542754828072073166132422698798588877639195990098396219186096832571761679120941969631077508944438756514227589978975560787239517047275876019260339110673364455443871193820931378626924411011660021319040382185649811232508462624103047857699656939086113833369970443655101400987406666596630944376913436737489163352437166091406098210510731498384469158773075395589055027764463128242709521377547130539198684827771230650451640654661976575811654230000275156292506745468986454693485533814322514943534654152828254545113449203086925252463906905897326367246468528535242963492337764877675258657622483734513716827422088821731384007104342021453783592548181379147651295173681895701861236789703768619737192137216695421850302693580731491077440345819507653339111579019457174513430268009895875585818314875583640906708066215969885041016689157890151167648284501208268823982044262474828357303890922414737443420563730377047324682142930670115225902653944956425013625617208693296512568272806498126151807421941617633033523434492389907082293480489623496678816953629892650132136824795467891949416181652781779064007365543682984886034464002013605080343361689422561524142868785789199610647184041145085675802193751233766436821908973908512469944851008137957684213229550497035644938706816050243830556274860143650833643440961378271136861231274600801578393697755039002456163637464474800294362846437361691442290837573998363768879134933810542826466583444603096954597059758382980627774470386418115006546695024009763332409663498190635936330432807492190610183160689623313064445917102428351580356037756822803643841326276770395000082128870031811478293234464464329678021719822674358882666881719281806787717801731238860698978281552306067821941560472726411487407886195511527289529092918780785420435944592770041755194004093918580013908888894630644598436968696223809240145628119052257951031029096573556912274501328720522942053572238679869212298294839548029203121584066857524844464885867044780651954890856601987417493132696359421798103527897353515600469321252175363430056126687690981347681367794084552790880768611400349282321068708522893943004085637483460916154155457897830154377381662620548210456707089678242451148956652802530485940835938398646065517962771781252530350537547309813864086725907617487282429902367244639489057558875203733836291946683610680091692765265578063108205973766674947923667989120359699881961766078711989352390426535993685088229639050982392780432285570720639576686200569003153120787235052122060235360830704538874271108640761762162081410978935816738665857459651985617509847277307872749350578448786375528906001915793337712194748320141015126796920057653563421965209904877776538969619375579899195633410419232030827624657457093906072268269940712758984953895268968810141486515018493191057727831866317550940536812222397131329916352600674029956126109754658871250632454504799879448727184590043535906534937923733530571147751856726926942419163389165175537349827794375748410170831484272860334185426585792037069121738716001855145029155550198178928171653885927540142320790970193634955264837356548974357847767738580541872920074722541136142544972144166429797997235950089226576447710175480375494894245415171354021834160334118086703072693466873185983571945458302498981267116001599878534405223226335474811848966733390099202980269884312609259007705636625571862981561428127247118959803910205043610667249481572845453259466227467735819368320995584882232525333921416895769890795365716120128435139785151511909807890607340530567096219268333256218080822452543133010652163364882042565800544021087124457365795703212306068991403707127534614304527519919447153009981896103400006640508927819226902060012007245783991866035590285691131808892720398660024736850909372118771015028399958966997535273199830163464829232399989056788351241798671018054937503891413847189893092293275022530672684144694883333009100042101729188568586378998298752878923090606589405803052180049324652199961332223072670224730859183780036117774171004559739435428770993039384135448845347536152575682010513425484910308897811876150323830418917750706205258168567907499135204890759213467539102383194256879784858842372884833482728867218855226187299176119588766362031579517873338772097925328711186740183697014916940649091434857313808085793934192193904276124239634016681908385610360494230731473925113878060065377139049573869315823348041457324250980092885157660029062377313526739455212700942853378504753849922926696722587675995493676291049367015977481493672432892135727652290391451387671192134753729362081800530609209882306480036411380976953170654894784018412743785089941503935801904385364199545503840820894373570664093187876528583444467311864495272976949513970859368324133254989750293841822461842402144403314118409638884418986456312841524453187519953302889261706042610515206262255776084968388379422599136921792837620943612414403532982654251779434303641414211859187366141135716751173933892173068983180589584464984218491753519734126914270300613162057684352592801952681564604133487161205823496034707783624411098121249234632626502651828924614717788568058320435628956775753487580529698258871091100396804817501306681461453623307211679349569355172145942456264369136071214114052541651155710122812467515769898038218789943706568173193907395860932632229926735613020690910533648984462368876099064236321849008820330240689270064305576535138345388330884886792359990000254061079077059308704236090779735806830494404537478825854290422657973475650426119035012191019951305289265003729797806335795520370622242517224347515410876951813925474229324022222273425794052282084992525433306095061674513518305394527494038881797872075624664775060109758912341395780498393509918665429470576266147435885045167419585845660960552598033695838086458303376751681147569690512690320132188678223039313835030711661411389371634910434567846786855779804998577788497427240177832366857222695459565989790400818054700147601679190754965894207779573408228599504500827006087603746343022506182858993911939274570449149249301387030257143631356735691845087999606643411495466885171542884587782028978163886770742839216436516449319535723094984152927091829375987816062236061848769470307556645218193923764931593849511872164085731535031757413636664040767775498616518454919468255480452167814243349121172719715032486703902755751290935839140818013156366809491264974387803108435538920273928830007505074007139496460241466193733301430711784207192329571567838126270321817930541763662959129368655314762757529109842789975760591204317676431477956234356204297229897384555052850250635154480973651680986203851083461684934463444927851590588604063417284221168864718708566935264465257752964329366772006569653038223025213461888498491419586419969240075694240045061133225913764667135009292360285730091142707224225400430470265327543204452745277898130482146293901748866145629008363369456534169552609327577826346887425353375363805258597221264833034773653011947010516089184435513935184251780739779996341956975060224665458345492540732757572989600210076842397255419270165856012212973957372313263660455355032471443612499994311263504996566646416739079863232301100078776266943441050903332962159505769205795534976604270020488207291375752867373584357302892929971900522156787368699890376506233605422736354612913183424626742596586950741405638193485398709890229600160588261336122202748863488263349981267271940754791164477294886405738301299798463502315156226084810987149536345648774303516295654841789992495942260788985285595551595341777909967520798229162722139136363251342641844340857730181334609536825857478194018653542010181399836770299666524852585964153092077839045837268620763488538039277525953502117721593538797592341334874694664018072458206549265651201506881185871076980700928424403083787234308717038511952750583031556086524636941550170778308461929656959852305452155519829338829894759061432149462201882539681788455471585036699207617603039539002979348116810958699648305802639323491220245955940764838833592410589446267279951296623490591091410374824185732261782525707292490180737002858996851384861511999270884111670967927341743771279181270255033776329902461077441260329025012172517905884281795507391893204428803781705869630079999008893279748759335457477535857106647576667405285550581185852483639508918536024880610335708487330195650941082468433373378738350267882077076361915998671269277588655386320791334436762731276885809038296336033800406218355805185228195740985440127267374027171012590190683976823794766488295004084904942477520984883468030733191139730614266628438404013658678987467204601395458856057333485414782749484963756335109406945317280985764899222632365277221247777954155944808870016913127205479885127552224211851705551935086769216920875639185874672983588150217343242692958147908578057498301174252137023330857785295505123176053746270085856847078188658745518263480467457695281932257418425220939185075265098323273093011191651139517493002576094822455337095616160049335576452411247047832596207864201979422755170816004912230731719624320072964951803205853681634618008542668143062136403143652123080140767218242707231577987179233944571136305905770321763849381249457072877939662492656393877903903966353326840675492770234213495487516836129490585168095757975364223854077721406412372729087236653943371647814140975073847919305896550492336431284902534750765227048534337282698508632073851741212427823253597439214088099270216027816850055608597364945984792234890580959865538960824939049517386412703486957122224016479452206898121326143082254247851754996983369467989883611621781654873186101386985424973813262766088074866229073111675048974152784096955968713844674755487437641490708604564610656677414333139692992417798977447753916055988421496812483472021328334583224522096856391576556971452257325159802658896870992934420678169201016666899145433161517567001649930114645805142312441450578437868122974237642845449668221951816574329110347974580686847392312659766062421419003744721583195952784357813399066311576876228289451119040120383520063967771803426010066013287462328959483590952304883697821957675156020624897590543563013154239749494280679559789064282058030495845510001080053007424430876115455229091944978580487522033534600391929649199955927764215759421392019639952940714228892332408547279421118063177113917697956568546882335217452295020880654257571048431494124223543233757017960448036782781390116640967399358705723947858761901109298731737863332725513034472197307615060017998144037650931434132337264845706934417890499993731493151711865097338679064563413559987505008336409422190620392695479153934609948674962833709149430551310613272973144176731131554532711175832919490327553136079730332768955213449157379105135214214189312280090514214361164191098890304377606768183278263085372019978148755441089687511001827227191367657832884556013643310964661707286302276121780085118859919914993109425493120147683248309603522373422235230218621939069116515243967794829644024745843984855477292459899072698320188473176636368186825488961967881941494961728710566541070158291744980381277366262443364101290373021208506499257000398604315673068327870849451273848726916168604904207628132961131824818028057802934502964939530722609183479637783688828300149623716442083077705466491844417820380795904552291615310169067294339900414573488490144328120982394508681050029690783570770546062025149317650530063738835322429050819471837771346814189046044852341261702397111654503906516940026942598583130636420734760510833327703735057463494486336886214943608832696237443096917188956928069081676696670978719764395963910646486409170055727554211078185892789384438370483262701098052193071230086865982384446812596543738374820065797610400879888584947723580044202699717268912186622504630170697064025074898373741591207405506366604389620290275317833988649660881659679447878544595080543454440100292927886376377742393687315850867712291146766496532890545655721968209881325942705544862700759880965638496946176134601168982087828907757688989185391902274226437830352810230971581538515503798153580272263891505023374755307841635257765314274245400486569689257235789271639483528300172623395359920996920427355875260436598075594284972249608435842803431356634457135850613020845715501953437186118171877866588177985569402506367282567528584468106459173123151491763126291762259690356661664746044917807485175038102144294467173763494056639926414531417151634368749281440104058658181785788051758286291567403913258615454725484624227526193815557439823858963064319896513825827510824545278867625598923259106237582932667204291354108904597244867115075095653554695977230267818759758824050919493065324653812873473013979434671788770141356853882721093143613861943304907027513567497771844957421002321263740987559820807430849476419950830953233616672507948294166016459395479682302928368998108730872061509045762011424425975438907738533927686949736734331933756403443868631962769587450993742389506498518872079512251038802732189516300419424902990284166188842688270024119588081790414877396052851344419008305855676013021454901030134620791439861175375585770610155506251358289473437740284044043234940789858148466035179106024364631974248242543733848322199956915009784694086733595086446412100090234959307837255025198990198552843714358639697439657586578767133867528555143758073130453520412335208116833154842894405105879429262703920336687943234322298245721581895522272998688829984771217225792032590619798496544484491191316335789572068906529917578751933284041104168219967586908536709982357440517134116737080367491518684288189751560723729238959903807656808956495026283252685097959724115585436614869530094196851464455815631281248733841266955063882087348238771779654612685412303108940850981657481351814184330394753700802336862943892912957425075926639117986143750377511368718214019315065467549128218261805140305858285105508298093810491558602117565489798547117779384771627525863247153644092012960921617576157513168822449435406432514305064646211889341473052116199549109364628947392707925818084329822807717029094798047340229678846419173883467065407978348993140873260905035379607189028050908880179184762342917866975661828526638810345274375674552985914009202271038388124531880850143611610372724358143015525648402685877125159090398102436870909089640427940268588744957912763426261886965546809518157427777098864588284371682735473730059852220415796763444965452529026034190871107904890218952885635633000808567635164859219252185976627611010323972749585036879599574226900992539340158502882729963381285223216581142386643920039961921550764045459046336826698822699131625202967271977596344198435905481304114859991561296276006767387299895191179484500444169176655566786600467157587338224736280105274645427035183382095238483094181079167225856957842427077071209318597254802971745917952591715453052517818224441730750863292433757092316936438882774061451315988676099424635710249588603965202488591345989279144329942449801312085279977945066817630628824852976779900343413436958320921489445881048346927883404287520489846033864353304343753835590249028558466530760692760387392194185632964183906205917691773392030323104273482753147240355397148946551332859073702394782081098744266560302995872948373360906764370039467132527926060221149048960160206429136894841667240123630745846911405264870561615928366765830760689997084721987747230554873275583754229371497651021231424276951783611725341833280397935110526340269410601447847343692054142570906847246759810385374689092968948693897122419476130805188860253855923997829126136009482829318663773182968838975228761014612172655612693283475048441460784150171390158586261341210592757726287258716098669462885893367297447008349356001538147162664723221421835369600291622610618300402499010783577608095405534600078828045792596134878798030216102937483502772001321684883624887484572206239720034127064775478598068416210829663069756357738227397222675105196462460057736398663958104266632965665772271239098435112900445563659225516983742241878840630287313717519093143024522208902555153860680749385735610694782791513295321897700533776939091587840686511536432910174838374092924525001468653853010663031237225573959041055021541896609289437382341039114592352893925153890646563087313454573554893367528003822446754675297388264174210865870758546058518091963936370970014610969238829157220580014312403442507089505297023263030311403816619510343414698223906124032601391990498392114956318057615229415660530338007312823653339189328313182828893517410840680447661419594153253570340024322124795094628944225532460884087614308114035818771440110063738008699920120458598180539521167042320189723438549654870165531813499335209217360518822372343236804647210418794490106600067296300708447735277897073195797831296416900227402246920067661956022862493591802425268760725326657801067985570781441835383952265967458597538709428931538270860661757519122232947779627518075924141496941401125854867660656950382844188827475169370532352392863176094482062071900898697548188252105208750903612791191881706047192947158763950263612039709211018611629532508127516255332248839387245042101114191831738441569008885946917287446015697378671708736090351802331739575341325895445723516442438908131524275286491343823826992323820090655797003355536631397250649262539327706137104732654396794631286799100264388241562246081498267746651696830220270598528975554847235513045044371498910205823833950628207640340695448918489160541680837431545516727498515168456056835274877563459779219642906804703651059940418781034037953232549238068752047179501663523299498920981271820545627706883923797256837372351920773326676381362068523404900806066021826672032788142788217361661842287060092618310916843568944819772616595137651009922395122661783632550414564712008005907442960501373077722195089340947844635919680747818169445682466682530000973094671272069907536443965424904693697874086967141459107230175502272901317778088460349910361013965240848490530337959286218780754642232692559715343665731471639280298316873145758802524305588452202625490859743570789621725726879752017440108237459336078589192558634943732911418354686753920692024033807439867410557836859038197682444539271655405844039577918826585467548012439313172350704364090107575737995409213205795695905108575704920210104643309898964154516348239846784705226003768610298602742070894045525344088522347658580716969606477734953123507220585857471248946464673059013882126132046817035678028966603244229049839289129246395808010284641252382246039409049561291557882793196337136958947777168367354863566543200638134610998207570958280973263119160443545584933459302669797518938417011423369008417284439411417613363883744846364757833555219873224718569630004039276015395013931523208652781300268848726055541139786151651226790368520074487818812850179081496522198250433867457949563038222199064604447608476328618561214035506519547585390132645556649372138127200655042706019191866423349567480081795768259183624099187836356360750597540004585798267010567157875746379082677854705876710645211760291880796995221301152145260117435370690585624966830696026153450742981912757750291592930650121477959409799437587194062674787383479030184922135801917735673098240165563206218035126387475319669455956661046236293107520795296616077590438152691890470917853559462574769166691941368817073848971175251622788865279479816097351891240895192777540277723350611172516265412364413988406795151479160160229856815698875107005838185789155270655944697013123636229895954752582192023656573708919214070030503971690933016172199685786173407204243563717971347421241600947515398481515334505639318400724339847460350048359363143140980369508162127836915522805414265703619248379589432180553474950539580231974752046937092102837372258424575446091481512104827782405281036465511080661077273301098518253033407900074146430199751147141550920742957464847830251156180525569826374558247814915363635452052607752396724660083325027781974714487959182609459846150845023805480297357563554262329602583175550567977658261485223098662817033734421367925447187072602353880405665125100445784972475511010355202504783840848487619744270276116744851786677657606558762004700323696722094490954824761690526805626510327374099705851953641924038385244926748035661255183354999916564420016108821845735310340323967310097018082222507402543378669495810516686898798962274004900571382046362416481560899478597942350705867708955250212518634665993234921722666023758472181438897569929099450221835026123427322662418965148739517506219560226850028289067899787953934473672018254068151444932989038222489139934112183918515951515067955336099440345906597887949273236990549507619430098514682239205952859413808137713162025283160138071721481961148457178483025394760513605991094257832027921187975349368173016390554761393080518837033097951586097413284982375635209475086545245797400075035925348724292632393767788064060903494177397680601003909648265113863872098971799466596320845346182456050079495796100489477427913890585570027762829221765328291582963633043479482708207764271881708663617549314848611720785927891575961837370113269595739530671923049004827802138935833182344262841302377996815094543956611632347068521446631825605739351964237611978539157099577855420372530044361355372715773212238018127544649237352377000103245249153688965791796205128716750319137167198487885226854328614215512937535047718948926956218670790439990731609532412126424021212804185366004753988436448623116435534911731629272570597571218154981419531505686600295926775234375221532396543386603266664206998267232373382133932402409995727292550668571414448351067932182005043675024328846511588631114641739748171030256458224916036277463492587004728547980052682054995125574586425016867315672645988180445251918687731606646316431194011543972112329821929201717465554894359989577471548606347437631581435148365488467775419661600903288754600781835651862880453697287418502609012091720273174785779786093935142994896966151529253745256907538627818768653473515271497275015096376615727727809175694626684766200559979805289264985790341573943191559724054176474768180647305544376832273649675471342525875515996767936925068965955903339353996243301533663332724279082097923444446054621163602357585114825060575639961116085185613041931726349232637466830695222706203444918281095043705614695555969805890185230620288895838584335621112014742171989512960459338458791200372851685617774582960145954926182763390128440757578979291606915368231422622715169364960631417156582870141207470404746698252477308910132463035077964980346202889352550860011837861661106701257442829096218977374643287261385614204860294312389888653296122095485076149676616974883065662513355480360903953452226680548560664798004534618826175220768776810623901700761587972140556845536993974151393180255481183258658207893287982635732506841934358030462629920300545187922425593636853233161180044249623773380992039519942458608335093738854751990092289939263336157208538733633545200631810933235871932812677780053003614436466387404567853636523736313172737591869860152917855848911409847639162744896002825415015309298104430376763267204750032936088694519334933991697154481055295310083626093277371478431889081667106266668961014811411950696001383425741045056060900602019354257481457269009858352968442994948680307443716622851918100697008144361935952128060707173261768654028323702240617912806358304409747207440437781569759199954764330720416942418361064477508835396342275807895457980567524802475470784511496306096219190259361358169634929380521415605020934795997038421478309558015487297521028998684258859544155775130134746232879561384517584167914651910844540749151560141581199116529700771925685371908168247634501153981838358348828925810060163570837563355657179241271652284613960653315035475078192912443407048858189665826719435188941247306706108894918893912394970867758419764700314884550758311215215032642471307834616649130990990491930890425103401425043384316470087215262513107454651562548815332953541674525777392887581566521950593313181376488556921626250729230942018666898245390323205875680299303828129175059404998486970701531786665700206091637561736399141907139400618670789240419176750424373087962450080186638102814613504859057144350713307771002393741843438446998145927555006536189425442821352441743500896236808501685509420180872130055947297415614364473969320104979135945075862525037708387294243966979854587329581169465151777151501748123779162251424265777786474524724088364528048893421019120859711763118845299033557349183526595700480422590081999985917684716989718349869272488961673691264928834571181056528355056923285258982228584192617856935186026771276984529006065580893022665404828448119990951604239318888002580212449476861319107685514354093443598773588597113474051489870998625347240508853362966793735162905180691023947536950360140951781789436474782972244569147172832565247995246582959457621791104822806728890243959691088445516027434627968206403879054929259661627135659129740629119130598255524590573565679613500825935091592452860571370866633430562592183605527440265208536203572453197859362891825319454977044176890335730772870966984301405287044070645577484595753997402196764194631258320805334156464597132147472790145685672903004906693699927096565851298021235683778345775643346033711285745558623088379193838397354972274713781569615498345391048589912943455744900447296971778164006812429200644505664056895001593898328177396855216856946532100999970653052979346422718035006505120274326697417918317410463569807968613604084569267767293576994036115841166982811233750226382995061791338537584654748294991790203975321135889267608386001525949119566967917808189851686924979499541387529660725352782192882731136190158017531035389583643846033368639577355121639020431161600653802414259253960090670462264003015634111143276308781312481612541726643598702313399678195889067011636101322488237034370264382003369727931332297784714569589048434310618982732639574990913303799832053026401794393182862767508198491598022669563721308593005483302080921018098653704978782406941222825195942664282982175443970571411212000852263134038191707776664200734424780832514128859361537143805140316657417076289310552254046292020214081073526589690107045718411853719679473511493842501339880415402527355137182543722284067491421698039051252162486946486965443589991192259057717414472694421384182596291566139245019172934607381596547792773029411683067929258906111256419680479363724450190418586942282140335883778990948762971307117103010782997982113798445896440867806165175754328352187057947287666951569674689573395337417319492756569529063605590670857795842361044795962196109452304745807052169698449322321058747507054165125604474952017687726388646744869775462575661266393146501939053265199386998249377131999691319490755768682782495904849793566772751157495824861969804627358170086537562450043721207846234396109126838279220026808509674938301421847497443256480569486260890316246595998208797563676999101841329907369185318738834473213479345399449523814833815866535443562550165068648732988299542687086005186088536528167264006039199380207464797569168872691061688863316492025014478891270539921317123022082752341741268527796423127662418704994622507220215636391816319196916062186533956715754428411837295639546622196501541012803372021080961050047631379519226412124087819653647911923738172778513538629200112390796957668832933661633745784370624421689542167529965235204437495839727910987566500494901166091285127384402758272523598875226253911130941870813714376110776542711790950539057477852960668322909231521284004172578145750065576804940235857941185650560595993918931284447767232297982393252299309981654779160267553138028189210097466122987867174076860550727928971428591721809490380914866287381266603355700731080167411134032726349317586623974938239070633562875369002300607761904386040602171008076738519394535876114754297985189691233410969078513915080819366483845437125862054035467099653508335242987188493163184043537460869510565007163937684517094850044225644766850269762351133935078865882886218259631484186159032821198789025150318915677835707328867869301918559123781542719324905812063822161515516191884864714588279196395760068202910365980413443744860901385500224501249808769542224070858789058644315471021443158113253903910875111465278087908129152000580164988220926476979680718397678036219012119630203369789699033395176831441859728481174181789765744525175682787443654769122990021349112672827180466898741203472620784059851942422704414832770252844871094794860962556599333392791574756227299433147120369549187710560803114282293913852714868553715778373987741740820431992267067934781171958288524296665218978856518961344399374719712156668530694947806600685776073317828545359078250021462162957478171199949886830514548908266128232406143956390465594303713626924038563946635189084817406974196116935370549739713614067174428823684478862436084241068613782283688981723550980256862982694740774694375303201588065179051934372054021330888763884526614502719927568384675521050651181019869881154140104183011440033101456842472793734421004927093315926876517332282675517229953553285456539832347049888887900315937466249235979742381239645999524892172829253405532300057781726892671379607377479610106309512526879930085705718647041767898351286061480051532506981577965226371686066828977176686038039932263694835971530425430211175617327501261663489672539947878739535549601668558114863592150408770860634306341858694802653234104250846473015990476593908465210403089248068494027813560890661590132489120647571175945678060859143801367323182119361741303152970295056017554619404778371785761292864285678515254750172511242203127747820386609107084806472958697339638792349735628937359583239858451244870686146054483182864789676267410622929991665492484969268645769482138675661558388981762219201846856257880100051112620666162481173238620368964674051454380418953145410867239727490984234021083295700338074095776862687923199247912520732582572501862776502773446755555579939600419028119260515924073680117012792654706201570228305123518237434682836114020869970967200913128596801442772058818096777089246015711519809701618929100046601296841045629609000481979238621831984054407634118553807091609721276402423331053130528967381054712862667649636027891923971055320085800948414440320527557471653546085475176309502305219895204222704912204513711925523408914526023875970132131926980555225607735702982294103986888273507777773679977304380030654926139989955394582383562244994670222315711113295881605007613212999230840834176029486901049802308748960239995319860596672362246457786600905571113731687356838094914833017883690150983915729799930325198894468428116225134918773066425137802647679226843722039298850324609981747839064380961606206538589029850722255411546305716151433694835779434384100718575765736292930257191856751802815557009914178413203378071029785012152115605200435574695782403018448921691111531395021444123102219064306834761427975601458447310190343043814865570867616311127173264277731032626710587138878158043471113643778837945060152876230015629738749445989698920223120283692858593095898824155846560806577778658853619156154644862252629711005213460141862469970164377424932253251905351887658458119058230606521540491379682525550025426766919835340938897321542392103092135833405173880333572428903702555519014307682476264928545150084217971903871523130557858876145935256402772990777361036455174443378514958960351577324225828896995441246371187317373700567262781230394607647920837583090683433548177009690860942098234895606336077704632018338086455610087712391992321718858149859641693246584025221383965402772685759994401598796853203226146066587047405237785183750402359490505159156667401006956589790085991552065270772305276868288309669326806234328103016593076850770583216489652007689017676971927059650672615461014285449965397525057802337414748095157662495877616601683863221063741289832984175081461021014658655208206288135620418444794124194560089734330874641585905528557526791327882228268651729803452019192231823468214697601575547776717067253069103368815113837972559638664139847853728230350224966372431179057406940312297766113108887804984212894835963163629874454599237220755314568635839143475022086317301975566297340590331870286652627536305024290659893143195334614789902417058402228463238956564080879806875018214878410376873292472247213657949302191314508517881646642308113469617217762110270674723223116730940630391276309597770600943179476713997395755786448327032262683536499663357539210349217911810718225063412055020355617884064417552375933642730587929603906336429471321785074538721867518062084593909807750805571482201574659009873621294986223235810558655172168188695872921158481552834625541142623891540418693631440049419976294116605023581745694555838356871983544358540832400014995172629086086470551835282944604198380263694690126263151571857258520894907960963303229233210113098078690665937141881849882697292079480935616933210369084465916431274598477766965027337348371928453200971187243265208733018412642736213043962508371319678602336465574457991375045512208637022524812313522985770241979388078369954137335065256331571171790149696204806517584390148405093761245591114151689143527308988897692293687736116161154599053853207412720224261335833397137391340341674547996764030338136522691510490616982871876409779270537400969006918077106889924636841893921931661872176350411181827779555506929719100513243980624978810462536354108576098347968020226624694396389669773614146263216990372929683885849349884650547985648912109345353938002502682394824756004337466709264080120417967993010650495978993623567204832588562309942283348511496030656631254534186874547587242068925664639208357425425257051477061050011632178141091306700289025029295257797232020607870714136576214745584075025565608158124763569928243405958537194556124544246196404690353099276477322004105530022070087381970526787719396200472226207997446442312120854693477142087955129167811615824455304250346014441581171105420638460108901927172046962683488180792174551726210739833884385083421675732233435325835176605844246080668391805467731464687091774444339796489387764557656177745977656609827224545195943599066205776178577151128535480377187083120572871196501098426806163292123948498176290518021192462349873423112577299750508067135037487452822726511459862930498418737125148786860874681570661882301371143609686041026559417411413099646918280501919200112408952109237427310076001441312745309032099927240062163558560077845382353226468377824024679474737528625286780465707145662040062273807845996457552925912128464274833250238625879465934289198744101201866958451210868820175961445198277747999087595301980573405533874775430438169854409846375126581947401273280362498976769001883541737781791198887741303771401194502974430295773762167147958925037732772622437668603948652176195287281304746762843594147339205734412824069888319872015025455146573741178520296142021852445485001301970714115356225885576135375848361981952330730597618324227724336088402548542721991096802719034075042001909707866030949446059484930773846022804512421281426015725386949583373156995679721833100663998233842645735453345305049756289183230182396920165808712232109637809723576741809537127135587443165798023920139972933252598994604640015831937864663591729352147281266091352919593635346737421809390159799209688186448160561172324099352794849410871164272483548433561944617373507394247577223967866466744819067804688854079688939049985111444576202826610716790779738970370062629145901940569952376534318433633327111277368404868807687721266148102438621161631568758022136063966981676318977367080666963938798689823678175587694593447978946550869868706449039905732935112972710076707270781211176843744098850096272346743016715132478748993584621670548864200349519139528281853704095328297047944522176849661301184056526532775302054327835585532838726076560366915274621180717370710038453615315176801141391204949432203454571907808549939215079782759062830709118551045356691510741279721603963996240002765919748122851038720629343564218101055770634000384596684321773829298560200105526769556190850423871524510119895500193526446108142991295387817888292124810545951934861307293353426090183816780808567753842767705343516139340801691318755327748079040711197223283381480881274497587992707342816413799216290374663207528954468269075401893620825503159527088012903042953772358170406648245531865264285342659682706551980133809901107077799669801612798150970724051946939244659532495125988898595135334794708933146410915084670654304067754596118991501908646591020455011533850415274145680967970550032335506648014754603973862769661826647955869658065808238592813358164321213017818962087578417201337645765220565054243675145864751165905848942202841706006727002530201001840224972065223806372422728863164606698570855707527830380697232404134254185331963984766190687110571402673519868316616424326573380020526225798680069714801482467978330141726732691521506472777211002861042850454949102860983915914672889017735751077525280468605115791842460642275938821324346358064537398712099914788215630275682940593911073076948044790672841430154558260915076246651184975055769276374363595387009007919615813806453520931331226317406606007854606760448694772368966181308014176391075420619477347365906056714263044571292775842172526933485633167448603739915315341131723542470538899540130244419977536906487087587251759894005657428926900986535700852319821811684802087990976155620261437660736665574329596656994729718325830954682097118579732641947674153497823340406810731781381223680764432714381519543270116195979178062748904897241507127144453001814229751392293809437587929284124833541479576566710862267753678150778607329930080680684827714291270613898772612106539272569302935876263797986906677599408921400395987966163328758008801187416631196157419429641502508366087794426776427781825829292263872658400769333230989159326251110744289497531803798674917195753283030815074346598361376432569496187724872974163953982697657407769844607087276376298771661418928726493896247062128057820606266029337721646001882425486289385887593460122814034229601291211378315850680687437817448215791855855462784865117603378016961617809141202441397715159172977467431441283030153408709849433049227791009060851053763640383927228775722026409262671003275384679480515286688067653040884491533581623680660351878549263360264800012666388633336482287255605019193824391662919043767633447408374473754089359562012122623654366090337418536736360592853776239710819915237551604267234177797598352076661934798753676867374540315599764953143387692075456922432648357940737976865765880824701551247171434404230524912999131744432620730416853954924875079429725506683646248049987874771643408457003106604609826776663453075693612914984894946564348035590054444297036200279917480249176203161721925279361507888867990742507908994904588898307042419889206149387902700666456753898723788574506994752826417838462011498104741198595503930180931871857747461771791784399067162532718662684579378505188362510215664495520921301997717597914780368412232354535156936039131384907236807334221913456786903580149172786619697200267346176812487610531465719390176589359081781289551175702684800181024804258104209615030720826110294621824181915796932996880567386308771912326453431594746220648567228704345871258759419273365242929658652357862552760525238873615365649550598106275525265819269707084014762484698507742086846043462538730588147510009759414887928009686811804872862820626677047604598384205524403638898217583017541273273090403460455796525708493726728176206399419214898208993346828323903478873087419110952532034801447451198026607663241855454538470782552582578150972468439503413941112190788875776484114828138737410048919360076239353980423515858423225455505480987152003213389138608234744293401310467993400871152989045050886834740910666930383790844142757215845037623932484436096103222767200118971575730615624524593674763345248123362613719346920757597175326401098820486361317609499561694122218086855719022248200382366986544708945944409856362981140646202718586398137853062386373612201520622091054631367570587252742091965379037729697006202145308443803609512405178133472198941775072722748079187530381368412371661823774817102209499804153047249472463000092683375065814287250658389027345048232941491580729151573654644165229403957349131507919742693505880232319602782374384137633595873078496770558216612822737557867857596301154212466032805937746980882917251984078719534796485633688110157846739223597915618244152488675760963800950631996725110804401072368993810522498836994663990366960059150758337655975038799966947611762409156484715395533355376504593026082653407638189569131052671539416044953598162097770915393930847045705201339719467605725094489168638622095413720062527872986916782693701782794113626222413856324142437681136497120085096001538497578334703681127775023686894978821061338277189380924383021803066636662041619931566514823991680635874515583809577790299480201326707687804034123357745127325565844570935082501175386110329767026619989768269548442990208069902174009956464568319606767774213687161468025135315911138004410881427743518896579288442112868306919202210151104180496300041721389544502520313111397798372249414597245395998144253579919307977643462184514587377318060833351708226369014857659603438430081294576372428726031962512585207773177441810217087733151084593539193750651443408080960986476948052697495961352021302979705656482929673359597237826211154472553614393661149906898976893520211351154012409413382057707639122796141134695367315269974403411191879447188528708469065519520745741141051674282553022858637970133348857647645633718849126925085815641448711884124489140921835854924509618291107857055808722635538446221423786883255731490572937627892983734368573359748162135759452053632847158109842877924118005858714813290603534181754146456469943538261784470043866834663841638074143128388128367137462449612507566006922741458328500718248540579754050006916912102805977954111217597749002503728515979279587292520865873772977608908333201513154969341460909490607250317561324251499280080795560534884432887783628351166410964381955060149056974913471180604395814373197678675551909434679431564746608314314928233613312677305503147593838339273242521924795448112578031659015201178892889785389977597445631169035960203762397952733242878506840804841016089570259035394192263984959917083209703333934540652038561459129817350078104456902011279934619914562361003682831155015699650114872308425529469324195640755985540689040574756044531717695012356232173886659524580426468781702050444154403455769891907210921081823639261171049526802560202114100905944652479590874814957591875831648627721962914108397059308490807133186179760589633081610996144209313976372215907208335558561387799199726024765358194089201642960632670402501251269480414495427644170882525426078341012511077009932809269112858683081171714510708475801816260518379217749927030976231636214943648879941444711041034768717850023790952206207524805109988328428052761655789803022584583784964927322243817374727738737007427953761797834715911564573748918828347539886336430602386252208627284798650192101685492591798115036643862277962258445701362952027266929826673869366654697369700120028929665133063951477656296548475147422455502633786722036254506399295210943305685356964018252198169824215891162842264266860107160359949461462712736622009764934716590605061842528818084003734914493853816748866584767081124871364120555431321910142788190465944170776030966988743214287893655124801281747087122195871646751147806629305637283768309801025693936514168253432547305204557753030319343046214531090813703771039133137353697191304926743003160997950264999865806181644890427147761027604641926681152824221104404598426282526483287255020465846432093100432578852525996248829271756795832074043269882867783770181726728513131927070708049773513137425283914987534263763185657321160733583557894635642531613529907630426221209032694443070032225883361075684952662552614727490904237857657681294527344344029064057191915811556256867988243208790833588082314408970346315025437986737643578007387630890990123748858118015254001680878843165861233885521516652300145578906430686602502707083012164616725704767332986381920548710315211462544022536862555551145634817497913779871151479786643435626693076799375643197416112874142799998517223700549951044195917670378266529258720418167252231584458759142910708712240573290260006824545150415641900655972614734401179989226114476363026544502181591007393932485648205246551500576808783586446550704203070045458729637026075738819038386409315122551812421107601702512998798012460336996821375386689139446711951150829622536365885994853855203329126787516184979508284894927656193049472054938762412757377167428982683835397375403068973712115512213860081737781672583329294859252740134879876053526574349065403319444455488164845745217302044339010116052008301572222015229308930003254074358333868940137382728835841495886030787065207161165607552721423285933607435341940716162023517754679508317566339144359648144706699583651755721461054685122336083936267567688516558469819276737871506911095346572999646558209183588620550173065525451247472917769309767580429444351161553389577208781611272685253123041767491037883359944684489247014267856147978644357708113141869739717718802434025253105604570073596445414177621748819320653608243063809184908050236947810234330759522217787465940868122802241822974489065982420299779642575435512510780831557905682371978477108829734418031809464225327984382265907288784873747893046294589889462099448621030224625948653357175164759534335014522077451583856149114145521265758960794387269859281362304703173430227945762717892881139466480794678674604004788100007787201622346011648355367488436261019947514735103972475695557864321435313553604134049059164228419177366793040545470945253206022058608419286394379000670420666628477595429607571669708948261369984457469883977465149433031970569347025539323431836815133921515791816933405559112861418744603711216302040169347965949315149505285865320682282357833601697563511654278907483672428873819032304489608233053735608243064002792831259297062100119625709084350324850612569828529668028943177047283656944712841018833903464846860529250853843082468532657810356990369764559706263590510915634866946817784126271617664372891240743594328382346271110409629093747116593322165567608177757328296954122099859911303465335715315373720849796626722816238463475624239748430679987148836939750041278350038336455499363666080217252651364985266491898524762435255200188963955935433722089918510028114587062843843076318696028847161921210880004676821941299203934090353070550835993088221326182825209829773869994976219716384367382676274943464869867325836758495602737002361802346945057169615019191262558719929375854781122835888090384245985309764629571374697309134606324789502598156484854591668435544104239716240646472436538448792422597384824802960757409680081456934448729190128223248869213764921481810423819524452005863054466034263193316927250790409707859722973493508992555105393905850729470829620300211826744953105112370033465541082186817330461127766825248529712108259773301686330080003439149428509925852525389840144017656447901348977874429458187497927709595527765312680409429082291939516359499660318668104400134228085747429754927438755488341250518924180720045820640946934804555421396082743222374813508149769730705783990093388741443647444669649105295513605560978515830406027250110028785486584879964400108065918949444435630737493022786050735615336519326697584700425721442589604996437532806028764877720590151267322774031496691403241977672879324288943861021887891285594394838791132845812995051426782649194207790131624113023814452588362851797461464087057849046958947922442545270558571345339103073404370674774822313639599121185823385846876469355927431135917532380149313073669460146640847132239052348925915472234782487096014053066688525626308931300186155047550142510110989362944458294868978886980532850191518958703708775929761671407313165484874378829169856192989741795256290967622686874621827964294339356021201299649989448160580447700389835121449933081248214972020823161208568114905763394346363878886435288736662374347418649580483733860702428789646462871968002997476915464414070225213012941637863057030446039689871127165373220685172164575911713506033439048967046988885950673260921164512958001704978191776493715832893338540848715527459746385474234971471653861719005460873248796580655206550616511092299466575585700741769747485604105874957628599315045250345814583243940105175256282675347073781299530223721099326935932046608463053183983288076692053195776166063145822802185371917833263927965704388479498500900887082462762791505891169768605419664600170013160750220120275725202072263539311165932830762619571068932646355546570977466131102131580347893750866411089252857319682826020282345803463487124061439997996616201027739829853670209591554327312126621953818410827305062457750018861891335650607667408632742238349405243431584877816904689445470135194410547238411710651327039451189260176449349907689242423833096084862552502375414739197222717320006318355466065684545288247003965462185099345417002637141700000643546743737954031475585004926981180075521160750038129537647196010358742484519540202692528846872394612455300756303229815762686145091588139255462048064039354523674076016867210973900229594446411246592509382532013978476595980538896546489241859182400192719257406981047384231107307031742822467840230297483548536767926812589438255527212101126845536272492476266374683222711905102131251617260038136636092852253004712122756843368692436594364393167147262425074323324772489766207501814772818696713407337801595950273926555409325279416667103771246213530856545332604562603755889742763749549518001481468761627650293032714250568266014421687047934512561443978825354680664278416828598727514773282564047524773290966738983925573717628389672698211955284836898335905119007408458805279718829573262459240667117507537811588392589048317546114861149392692320554777014604207240034502027160396033015826401423963533090936707034044876090727284688189149459253344902074933120503973747547806215986018588906151300968691743308926635501363986993270942717119406115787375515032131754825778172812035603891986288397915536449012342069176812092164487752749657119564127424864902251948984953720945421337861749103670740719086507183072069917024849075659961798908424059422112257663212127491492144031699895240708407205144033974030744549222329035364718107768212676379140710501955176429823930205055446477661391692012264259084056535661375700072537704228367026574756081503823373822274585025717899902521188687037901007487554530761731287879224251332525483266293953489068376723439018802565216508946699371576966698254376083909309206349569339459840055396466593408530499920085310805710299699637910796213777396786972309403796358088832657137990856321289447698688422704663537181399373318244365002894390720653614881289848626879966149070868912223736800813421187448877486528040009699940656107178341301650242780417918584442388546404559586819148924584972196534427663420386103662079797388159797084423137547708988339276699640940381042923130659728331084315201181278969631602894582496805115815857164435767707676079705364194547338213872391248591020239504041081644451199554667915537616682690546341487319341098991086896862401294807501250165705036201898906107710730756521920523454447244432389395728644430863716403241863329602164122586781802534325156632273121345369399896116144289895960496217256616433522288365295125018412757251156292032885619091183267370287620170872434250111022187183508816039763721031333730341683142901926336944534324119047567879499235473646915390364945950368891300045767927426460281116402744002312277043589401502270035936382324466046212069571924060299919319930150652877782489410472689178578602778182361620924857855901212554154940641165406523580133591976141039666505391116731525315766486767404183829021916281131766839162748793654633960797537765885802348594830383956106281240687436800498064666658485896687803424162731978149242064530780433463454784079882860948717912363736709774041938486874869765010641424220078483372991754390195826510932987296323227587363336018894281796430732389477003852850706691808900913974619058509168383369572060736599265937194289704276171568160099154339477097780048520430079077746095945262555405579355392204403278848793690024969805155447715843632718814633159404414140698059986633960108042740305008047971569785753603659797558445125782995425855095155780770446652250113465842059773679077823567518096099843269869030842085577246586802571230194685812618418365939300437146393528313138878026587252360461703489123039386586400801880059917168172995591173462848419302477490826152547712486586303814623369078814859585390338600433704008993261923339529909691873235989761207868327656345773651103553424796935975283344342024241338653759812721575581610361756954411429041282908226951010112240112842050622355922452979824733883732049964459961290437062947925979603716698142992130537851101826255936913821097486165324289106703961762888784859130272961913896777765302282859569829157741934202471955854299855930014645751557350442651178088515434793268912435300596851805337609412509528531622898869686722422011585714152111894413789660772040730311917840661263953945245338492575349240263161932954203594266794571093531810297377821089477403658650302641781745366413662051969042141424932726857921139130586624458227942452052894542740215454105055064499853084427819538790130856487110909835579422805336975076856792104705530738352437521939296118755083859740635578303532846034131432404981423909110015725221229565780803170882442118500558610653089130807846360950083716704335338155921836755074734769097442169735668444067678781049032121167018801551546337908882831941888230015085837521968688527346111542690303374475714019325723608431123919334913706067294077723166338814414373145573119607476117965860747582207501078325580734661594901906714527945391709398726590452041223789437087256764973325317096422646792632845648100520202373617578346805792710814837259440184592534128261990652982951862967774783216366102670490130756852914205853260369448380820735177811779158578101995080186524409855904451862397418922531219932084714347686778052880541935610243381592993660421830568699312070158346866584638930388036436723871110652915705564266856781811886314299944705372675464020483492017418544009903766970586979651851246984127892725155550420595271191352209506145658618890039228107410282308850497182641601588888029279140296739651845288867228062047758321595642396214992293818828279809353240234114919129321419298617923413650095272259809014368072442168018924741790300718262834424836904405004343917483756469063389005040148874899112693972952468834046264916729749386631174510843260007486816598946727318515550226656584881020149878380011356010609075533867539802999919690045610957094058260334756993280882916803399449651621427998317832455688990755212032512063914319409673421940513383101040514156769982609901185525408344155334278297942973670838467541417516647883390349533267933422930350991978790847022056034091481798199109036772927582793018594655487471481372039748522387341964401540576815498606800171503401625936681528666585280582705056473489979620431537354866928793790968921317043051523549596344691134592911955212436837880814162897244173152617493177979669298442953267572104229312730055121057356264343639883869155623307275624259506639939213303867880015771408820849169074461383034962326911132123191436051081087210088412335562989035721681905173442243099125134600943015422536674102668651201464917333762128646090446347296837319921784172294854014435034237498166084293447901169114674802697022351991070548773496309953284781758391003107562244118571435769913880665412437881850040249477063876215777704718733057382069187485383056925365428592569500702465966123633592367426564510135191675846850584981545295366722731932870874014743951204299201531372013235636115711983194977143511010394534159473210460714667398170196369786870554274204539884972889125465412853383564955231354398787624965603763434412318534097901118681774552351165778249693331943333642685679352539652004591711071761311381324505141695787191159070395737978138129221995229589134278095135169623482923759090758433377821875100135245177262458613825061768029142001803475180448320023988545981947927764015797629598948781606464775849018971590043365259689725551659953514757598794845302051029359533473161163565720680351025143938714302758763705832289065648421211254776938436044538248503731108704530150185131406227369533120980868097563067931683125316696545221906380666231243348189661349943093358639313179867779937990004360931717001778658756716902717056659411362311417967052415973927136626296785184870275406779561040099293271936204992676499588389716275240290333373632410577986798285223779092902214096706259352636393823085127548977592310230704730329447312344611878052696054009430846600286084816839073536942066126877099396161216118936161085095696532849449229777398771362910151263010218950047728665181166611593019112413246234764792946887834683313974962163944488741412341524114587595085282816367071124485679250418252910679238346506851288691587340158660885830366670944114210546995246320267191166316692205837575523465385783140823987593932775839969805785869231178058106436993244817683862735730733322753249781694940064052087693265725155328306575693721216102339892019246270059080697221904733770315730081815566500718064222492968827257076432314131685536565462880262947264454252672831708969850144445611782112282443028159785464666215774658188956503458201139934851759365888805448529175629586861795927863361520374687578524801254777669251059872803371756099037295111967245728460150651800978867951940047413541633281491697413795083489044501824812311808860433899404803006763238432412037263943986941695227023779486814715134505928239102559964494200133131660264819000154424623882161716743534407610718697292656005257788071594325186851002385869751829337540303215638399782306325346329966481420728788618732688494271097605276258728931373292439453414819838155974265031129264167297640203083729208701150310807858781609655985796654822489771058816780736113692160699043425452157938878618395360696329433391505352485289359361077990823486541057348483168142951339357717864200143366550844589090456835436017965902978912966589957860443604368632885602428930860249713774677303490710522568559789029540726391463006972032900055245411325463951735814461261856703531268771773248885712283797110586217965151285185816781879170053058027413074332144464808696566180286048165738078006155275189194554988807616458884142025533061416143809764060170693385333874633896977168016635192095333975803610387238283997085835892680315298700831484604505153338606331101606889082842343881549287040884994148192931043457876251189319098949292330887155800624352326688839763436165562934543419792208130946211627991803594250155583154859336651743089118330570286933739212475019717556954806834910728903212118974979786179102745781285415628614889682563669556538347677076068229385145525130992168606636824163264683047041472495350154310773336318194138542611541244065996347687635995535799382667817900998551746747712646427316476368473087765631016022784682244580523626156514312627958652080470163842942656265830696675920151659254000347511137543042294975531528025586092327468457818390493519516824233578906617016077372870189268912993436348101654692846809145055092116422285902503834322099007211290232616345103799443157751426857054336614457292350078811676520837133700065357726565501939017855131081653780565890027029436195914856591924428930365976757956773696254385557585102466673751349655504927035980868247720024904942752614836470615946840514914078000025791321927296554393958054667492547219064879629382396205794562990460448797627639272870188333528797045691127446228230161281424697693378995304490486944200887679476334079643774240555925691444382584538879027016140329547947881065468791398549263285993535313361034160517949834416688509582621210712874654852518939376647788722056258300453412651421544965205105483419139725237430058634781949172260679100282093101554847546797088149998522905871959343405847637778055440232028757586753473508369666801613587483442743810927395373689208571660595753868198546583100013131894868332075833738339806743489605702702511632430416885431434815024234619958734500978880967654654514566118438356213325653686722725079192029858048495861775111259140532808889650839517830694855397794830446570209560319213960649392782335593605737510958446718103397935962788330504559255005163410106926005398035768115461640724621749761200069751061910210750330316773321341698238277150840218349100334613387589986939105962149536397174389429724174965172301786253621146015707191971107221051848932495130446618201195275829957189255587765583330078339226789263742474391946465598829811622553740146668066604155433360904309825405025562821729995922488368664089177028296772495600528844005433864906522528276404187003570557590822907741330319154977842999612562379560229424326332104955648133607567051809416848911610322646697665539146539153171156824455680674373216588798432790314478673687757165001333825858673060882595159609406287571829212773427195434370722983647203053990065720142974355973200870487335225524646169588290542721878742618977143675608797299767048544627314530227620421236363162426707237965311771492512225421834523247132557728788997958272184170842679105471903075574623090517573046816925694922362616519769589767715726751112187494294380471262389066885661263163575424370938213493664434664353966706193124197903087028181662828307656845623215845027087135746797395602755809892304686106246152684688163101331121006664470453483866104448002625452767154143932745930392673747073528771120647663942194356170251922862023224282043749941045363182501633686312408275634114070269122254604974003381372937924117412935841539480333813278172645090152672222385853036972765372533810790587063638305493360183729145300802221052926893847564784158194992461291918100615590531443235726770431049290231031408138954522271155492689783101244600083723044513608568558942832391727806009620599030500778596261594357129377237862250063317305932365084630628863821351966116263405472680007913638331316266407210459720905218200024074468506819772973870345484603807774033862673912302683088566319908811325376060814840642030754270336303819179143353481934552505431887065109797134239371177770515364950362133446515466759847817589183588285886305877090963319416486555199786867719130060448148178220695818761725521570311487983114695068851936307394474570039914717179576917694325134474779677988594262085831973704380510203563046092047590964166525737803411263801991611411962785189371682649008306760171117524978896332429659239624172871330439822235556266092477761267649354848212731964706349081884973381497545971990093866797001943074285234091801943127235703896468041274148795714270645280546300324611200640022857550382264198398510867154715086627042742179826884243141305236594170446100057866641665033767643617899348093810432041826537801667604553657597621671499216550919881148723391610382724408225342480004610297286125309656480133724020307784974465965576115213376496135994126604630808787880529292791604693545474187781679216915046536952665533523397911157138725165717264139316241410768474561886565902806965048843068478892582977256832024999945221389784917315599699322860966413221985829651045084543306877489075832353175432238462854625347360095424046887513279573326808255080205665683838948114772404987300427870881042002692556052887978802739602793070957054051410224887533055322029337765742768398089425217582701488824672315677808461859538808412836812092099358714721590681123412353302118801715158433518769812041773320803308182115875592525318994682018472122813034434122872154433875432445584229137637986944585153397647786125370607452403327912099509912145790686226530027930745255058922968582608649828495073935367130162674898544553568522675977644281016136797076251767300047250660500858164257148140461472707094615077416840482064573259830888190407402968023108147226823987712921110521700905681159789149643753305689907940904528604893756148432746569658315625640598075003223761035935345002380824277833816563175539682013782703072444343491816052714888353055580881802833587052000078571820144225215738261420716552144238009236897114514276786872842478928224478856439369335481857851967167196521381724524085375219648320700756258731665935015035423434870722026713434079303825135257325206991749652360696031451331583462168988768874030594502883745767875453977792079373809221039269930314242385264497254247064396851065006150095955252382149474962805294081317390031321167022354991010059469684293249815202307808201192360351150734546957377743070812024346706530885576035076499567056685412707363098575382491650925394401996874988357289123532720188599164113728935330995704887672284937533469531989479275491433726073825295724610206299602189693183516301347997159418480356751576905841754586469106208043893559676635232861531683374987016327836925444850119266358828554359744655848527897761475343984418444121504226802644524442959066292892940132285550353726966022614348396151547473802672942266112088351450344369905064602081998573534969877691220727381998721766486504634537468787811158686576360994545373392939191943406975455850915028246617308165100185505691594835573802541508959287049912094517851152401624984647317792888975890469932082605151529354507185791598883193818664593984665471938864869459175950506343529567847587807221833512289578229483975282155196411720480516422897739493520725241877771172407715120689373042058921182809263363906285248494898775585242766536977482666570795891080750666256496390254083765381061408783000089361773448732934861806066087347167401372678002965721704439472066954126809822503817047958916813654036836576498093408474970929066111932847761006230863646286611801467869520744186838387270572979038579957902255542847213483276215625873594905861441728059902207320409354009242328465211814662232694680817777463754720770517162299799048712709743316832382202311505024291533201810561840495031790861040144959038696516417592183474904196221472601409165090943283681749318673442650635512978217111797086865809436420226649567801351924809807556678972649583446299634138269906069200001482416894496246252639110391119519306806755464377734768262387763984305179125187516521325169717347408361741045767770827256119750759537804397393604230652695577516489385993983778185524160326231124078957895353475823031460662356922362600117479217452790640832078453372527966092923829730573470561324305739415735393963583964848024886790454498458839393586912477396763541249730330685851009499084818297547972222585200623935543526932009578531065267725745915295194945692910506619397801510818141705369982401522753703199770509651936900164862666966095584657112835371292640805566119294552341190447242994582422876002775593527272117290782783262061423885979421580799398024908747497199307144309239617127028415621272990204677010441333627268323228670998391374735857544642848092738381885809174288531148662025810364574457315033610787836676011528200606950260387724960789015748615284810489761650013529843311188783386988694013084978683118236418949871001382507356522273716709085619898244015765188344366598449869644990248640963752981769433388805991676526200906719039466354184154687893581474880147080946317206470988496140490096959042575650664916184593041379134141113072650842387204776557372976824014867750341946792408568953082572915085376998972337084633641150076172483849046695552210065381731575840601024264787110737646641131143063334051289842944905420681909765116818328532414848071409189696893026167589600059845319243644775991829831873653995287372802133854214436544759299059114436136001459996774982033958771615342067859364636689662923605533206439551063591754862434636821711948181160089563191048715898086913428572976946995203992517549342521419539438442394016681826704961953903523033465890295605856691098931095865736366871359192917456181074479197968478017406555253428263435050705203127001715768259055165976681689211170513341823422034584284882964031981659643067455579931981660386121949584257996011182301273931677687492714799609375993244638541339692231748376102554749463806144702126004016827141313264491506582777718684928031882518824998492136870195788588740883599913280696310245966977064539285540815008751712810463354010839221451396863644231721917470388488691307385297282576794359084753254837754579585902625686852759894010338485697049624163304258766211091135824816867196918748924353689618870134400803479256333251499990276821604271111817437547129719405494992962686014181362247263157901749946840766738871007810572106250780042138468303377257174842029297857945084748230688828209645870188385883815133997720369476886146005161975972531455571433578864102814951287434466958335131898049788008575700721227305918122172956113881879050827873003740105997940497786187992393021869642062890210299131445822914132372797679405997827811869281403238984751112132444691932353904476934645860013604180397290642046438929715688115584242805633692732630772335141948261259102654507112491821106072522364881043259631623450400250864125055997129277869366879025837819275384976733839995716093246103757731866933467554168275663676764055474645439065727360359513891479442454065349829091288989454856510552078246709580793795037884839280999848898175631785604528388454138984410416559364741753039251936787814466143631493859436408847486038449477248212200437191147741720336686076341124359135672115817008891729504346770432740976030365414686008599638939260255571199520467542720691826622868258865351868218681217080481926091644317700128471874263605060265184485395924541953399313100424721206693616903543847195864466724194132656953693852910661009218617158924354744755986337949497397181978000353631565552388677326931236715003587599565611443078748729630921971297234451792693099146127133381597846763528317116619634285507970214332770301165501833036911220363982411917944815486581353338942436453094461403785032285474875991762860166806550915923931313847684330588321666423984826378161990067923984617085523055934342351573376363417363179108951428833716321751147557504148868714466175510287183343163113675021749976008951268366542121298451286834915480735572439408063911774158016247858333162285525619885812034103874816784731779249311245595538487995088118888368228434332177876381396536978521720310176581222080131787657140924127432903000239095018258208105710085067703448039588286421216646067309659300736174030138143108535345607870330011585019751782985781029208352464065004723232077087719578317362334984627800072885290251294379601278597871297020718735790917562924440936311531100772387424396268202269276852496888001949396275396526070029272212379380267895155466746674596126300392235485472902265874857348033955148917116458296242139723066947039475273865686750119448351960717908940771484693259858668448312446109192645684151424821220199175377801597123659045521328804075343315871645674859802225195998818586072240775513946953438591565581652381699754775180359653135802282702086151175681289823769079580887485439982146488971688495460338997267966200208590869837041929507559965168032664414707417420240455493610299859878784600239270726094313254317571686087726349288581188965918619715445263696762317231145416723423580383628252816772184583022097247455745340160939676490304579340078429184815662554320607887545989135686665811011920887555038474370924852922488720765349770833094872807993945933298529176755400354720778153601757848644217426254315780706368950570523851709380539413466541872551982218195588591978257366467395068809775405628319122826279411176450623442334863102523894625191199027692746092354337100374241177891760171021376058444205687848151327382938269725634539527997276249236177300197969480421810442997453824253624147650071917253373328155911295016553602415609813185827106597062773488358435805872046393602262726918954034365882588122345078212548665061195654647606394472849472893188842812307464534466420179066853525319361526837206781244246982334446300453181270013484158992002433240023153463953553370825478346503585809149155159780435130579247822061674968092705575584822475386991353042515648490318364734988543123502340396995432689545206464397861405320846572922219101771805520608065174198929749728459200893067385964031182496111898720455323344792611476879182610538122556529726292092715334311446516318676048576370457097489640708955423783749997642024708154021147112691616353824903339354333223194503610471183048649725553723866211823879534564880317398202316443430572025253346850747690250323096013258660165987425509414336608155098731442530568961687189228368175365159776514322651199027128057671293614057337716020757827651990417052649595387444531274132120170522260823635609943624690141832357918209796432752795240140952226534097733583778678077737146951613887404441115963887902996417650588476675201975510057845334835565437628105338514561686649755345808544617584378046050364643769277614356712964145774080170434093005428490814164893978547532037528346670103357949130643786921317134917094753104916604566193400079814400152204821277450589852763590729025705463461250990858381103406470230810527329526380949128238525853274986434783863038807176831487565861767251290196859372001378727556528635539280231331498136760334382016263392343796392021514944357615476185239395876783927114296402711669002636899885171765851370303320268994484306163101800592020690005869846841426599863964456000682869338482723705001983743984543191013870344684937477082892079226008544806311825193556804821914609962704631890789291197772959643814615276808696946739746967179495525838999494205965280609633527141459006473075806905673374287448740748233779481385601626398427963434847320989333342890491980175541188208029348038312832553524290670622418322492229592926128303877992334793782411907125108115049250696828884265180875917219278273823121796384408777008076956629541250266162602740229694656512251339624592771426824375997416056274554867869013506753562116594597398637968492698319179032311231446360289469027534923152121566121054351317624133020462428119041723022239378530690139284075363924132946261202851089904107772114518660763245673499782759949159421214258507132672993486556393012378120080897883068249192580478667058323052557565049122960903800862415409975911174781675866054082553575023325633894633883759079297864636917514578509239455873495285110531333623160770211202224006983734130833013000480845799647388182121980448837861072628199151667752280266304351523517900756128372549710670095350033002062564266989961551429248560339914640369373040378901252748030857589866415188691091144881948899652995923718249696432394288421293627095173076460348374059878225808070621348419486326135407102417598975180979274006492501533326341440957732938549150830108179761502969311284295763469546828047215968650192653442923295022333449333081481944679859673746680391417381911983869264269589310656824465004921751788894560253492800131610500788648106704496428656927495176083348520081469409570713871971593234683059859120961869288049290105450464639507258441969707615046788725172324398490575280649389150549260737518644802673271448070881129363231030947522389679802167158019269052281436727715789159028338965905084797129951670947040316414805507298065071907212687944272012547566726627388314046145288050201859015931623737297823237894112727777794580017146616747146337715626139647985689313748428069550275100742115285458440893483539345345000698431631708370516044120453172409581401673167262484482374952805048655902268751927069395697561762603502982205368504656715589295977370004064188643392478896627363714738841294066520747986012830847228847777075239326263042402901895180011361192374032581662150253229640138810336265420611682635977682992137637691019983841021890637952455753621639780410889284410297096295601455434040087499757603424887417473710294627466761948457128175111069647799500965832489846695208453475995291013090025347237552968032881716591857895332092428850560997960474421354206009982137012928489283113446050528390102709746303661726873403000063189173845567962712386082987085936186886676902323787176622928223493975227350532802225747283752836701482641347634598205898968825503192643406580134041604024152800928108161083371557991480314002073885882376741415946544363431252731009971013631972168728280199496277056979843064914091087053867549717859087104696700692815088904277230957214376499173871859874470174131496737299656750151623962878936001785192969458230206082293568546897880354023881525404944920533843933476414966069514699958143614980781837352487081858611961277520281404926220873454713129584143503505717691261393690810979662714192931501269703877041850121529538912801050259541806608708700612072712070105813169146569868204098221684220308151073193854750784794684792946207932552114624442901270919062645979140382832087077808431465558943595205248479655707352541547416071940303675117919267868270658914397118540745477382526700620507342884305964612548386960581123472727271561435529471902451470461931700416207835736463938387180886800958890721352704365867849976226319839250209293334405019839214542833486418755631411221804629210022807382906047383271490613931367041988236024894796494555524635431849624568853844891462761348900707115798882484264621292279357211692383483423759465520632441023426003698735838322344703354129680298425241944574959278037903205321795998474793806871415989680807558896099047604399375631532414696851787389059287575381627522776839122610210205488752589675747429084943839087053318656667537263426608439986302365550803030580275581991475029687346558131089260713215515386757869985839983739986975678251661023609440463381985845664173164374567039234237223117888065237495191365794538900339718823031513082481949549040221307354378783704894763224110816203272988334213321116400232792642496333386120961521075726013906769692501895347450114383052844268421576453716212074869904291031363763841305067227115047451724946903727561768867315837211759069563855848883825980669384247512196968523245043784636053599057716350161231699016527547325519729528159613413285340441332615049588780723877803527079230335245028725396220757762639512913174801823105952379449336879712705233802255918215697369530454889536901442707850428758315848004670928867686955382731154060149035968074521174282863839272185210523417769896410958852149408826923050758603739957170685967437641550932397566898706447574938285412879541660057362783770078601449166386422751161539701693876307112803309435041504360512534964253516049836096548613838181504748953266179584910967043065501321783122446718224180788279734319726428773991802463671240295605749592902048100105760514883296694003036357549171991201903298479315816533151987310886370716561177419767508652724159118982853037846478688788270404787413318809799639168005767154685076729183416810076308394441895389775089752382044646333201414952554234463025298542492504705036498011961770320324038036986886934408153316372963843090837316179965850022796680663034565671669739034424584951750986340646544249616193466472905953116236506225125481928175202583673247780306071914505041985433892266564359328698776694871069283141287314293632930738082171350423412713381145777994389452308645081584505896275472083461061681273649812388315340450976769402956502289026329605039740265601351862694339661942442272771168269841537226424580818253936945014578589304033582573968430123462402084925989781150001593253613877043659333175784999278748502954724071667712305573379336863018286289575846495903866314621343619703990542704265993768049268963079238421536264024260759601064526537643715889373983082496651897125757076145519177958487637083361101049090170381177173839690967590339367912109075419982565277211292536901145309354065397937072314899047332117535302219762585051653242178548217512241968646870898008645150661540596371424233406926247654723454331098081783462388703426220592893106738325885037283820567204012687877844433697127177412122222716438269065195589453502143211737417007705825019311808536130475415665829551259414502625312714060413377790046163071068412966427079279550742270375940764225487700656739189411410618308282190854255953308600647402268388684585775316912906489597643953843211529012619062493044968284992534422852725873449352407058400823060925596250914461402284708883879348086578572955961619072145045596097563627036682682734738949731223921272970741765278614472515874690318560820942269927684794852845407452997604650333206202779401158700491900512704848014261613247918315439045064027696507341020025804532845563983963651092818176402271298102702998089684582910201190520840602941572545010982166485403780528822788093614521099617258865763718140768979224364503576017832564620890982837939595705274431015008017837774998889418581377265064435256692188293929595678620256329645170455648323070160342158486072960197664346262297019486189085207459230703910771994993633959588112314603446478929658919683321095969899775492270387033338196161206826021853266414748349961349831306589104274974274073144364949841034148415685030729235609975743310395352464540018809628037647567241354940153554907615551123502944802322507015890437565905128062816656199730419647772600569294695290313152289752026714619029391669620033672985231630977415426694772673085972078475420872350862162251143254246315442333594766206211945606305213335084821875220491256055423104272502607131227070574572221083882956218978152612858915464777547053761802397431045007135955673554087617305130154325519490615779955729057002509923613585802622221445339722803110407415365557833462858741724111890210633393586762947559875603080884287836828462862550124079940299558991300910288758534530536084384727610287893234950707069529252743444326856926544316861307333605799998756595159920102023115219996077276081898091739079996597532079660037359184540858771966713047016250412289349868058263936097233017213430177723925062239352634770014128355213357657214551244250141218885966644380107030892771278423189422044023027393309936310701943951625427748792328312952183260917761277724322996730814556464258692421746009384913764728712479236941273901146233016524431597416344831328914092965833338785366321678205465817267030877421665667763231688569389528375472166338654015033705112664272897240360500889319548966674098722899776211235780835954535571938188307670408347014755708426707069760191572531837932524431172009673115576586848534507120691906831660310424892697310625129532350654966458539099817831215313184885210634961983588168423350111165235257727962949913721172943296853530935520452149132482954299919939416969866846147708033993596217298953453534579614602381635084432970029243096815322462976998159340855293459128937274935347920979897611010375822285589295879530995214405321201217004171073159046436627813499132046309417187747467133393527967138014832239392550271843331755628191228965733734953057401146959592725303758031916762726949730572620338599439866749783837219309460517911836441806581662522427829151564882096542520793728468009245559905252235105778428039554494563922987590081844591581701292365222399093905598307948961090724175966734404991308436279150848548093489237038598994091908636557772360330814777145798747379126464665986320951023339766413455281401303379463563421570672803521093019828784936703461474337071273202235293862581724870835219974276789523179689748707744758830040164258337506081322981807477533422942717630245495789352071976452331497293227615783080314256989662468888963087112590694021925360300551430175397353540668815549775311113408077620056325189427655844994148692034224277655102728604842703002627699613775115891671453306424406979121413016346177267328263249280604625824016948426224043743337380334901614717195248109141821915213474629682937672911667227514387464321822831091054309828551766445028162714094326414115989171972622611447225846290910923414294519370309449592107879424187025976268522809895641849286152511785140415207480538247966663088645505355537926214234336108112485293779373844726214142732553319183016074526712091402488700259823334570889055174004542677136468395607259564003343166315838600472093109035933246920159197543056475154306313162019652730737175081772520776483519735934372992020490548023564337407229136819905639145253234814522967254444869216279616799555041244385299786382068745043329929218127305937808048925498096232772305640103671140992042510640485361939569634750840384132313491369156644999146474946236376968533785577258148919499031545707089642012246257520210864580645614549283858097250643959603256929128190738287361243575517877952077278099752166508919112931074937971705544290031751554077898209345199820667493949211588371371854839516488192524084721822369333173126353411490152221983911119226586128005089152045911689885377485085865125889636851130988952619357451682640832636725908254207026827208545277991587482456883421580386130811964037852445524111714654369735001685086095655200441381220932103215270414650835998890776242773340946905237917515276604792538054069332928533420170815807512321249924268403612332474202569483702994297801747571277253343359626712023910364409201369772628377044190633152861602454634279015894277680221383709463533667470471898466387467325331034938137076760589562056269110900446386754308779738164686032021629968900792842789792650771362001772393981409364396282104563460643204132287619103193312435756089502705172800093085270174109110102334208307342830804664409319737942637769605791249440125964732475662073108728441740580310525437134333060930452184496889225933766382162926424979035554160806034022151735216792896504791980223508075349777354669212466960743660945661287453709015932870648806704034940954127167344679363271124187970453959060368011569156186258215316959791462360438152820668042627144769801925546198000266413909044571227882763681968801445412538910565071383604301780728009379351966527649969187650253049618891451330586888863646823953667222199734088222416854210259235216170065172660999754610700207994834493329836822204515604863083994486867562448391289809875122286972631738251162761657840006973970609658881668114224270914505696930965578582063098941321254122250688553579259806209564539881276226295820687902450038421741809759532644568662148201945456465114078616706197171808860581210654701780504313007392723932807195260449598409028183107391765981357328537945003854380751535169776524377571298660012902383277803553891191632181616540253761121584592717415311721801673211532665091797590786938010735474059811420197637913734322896752474358852540029762638106845329271663469651553490720455310453209050542411061419061407870753538221575007421664198063276157651201598882514470118549467846563732189992990375335207592946520256807198176923140917751165714956147821070870255053452949237696145820769799800714905551267570237382671742414561095400307518964508052247421413500371111682608030109679953633725585338665391227615053533077680856912946942033602444959163909294857029888758052749729500170145551380381427582914870870075372446596506150503193539540849381451070545937406999482052575527048882100262060064393791203723297516842192420734440307075955583053634836233090699900833503175663734263869126530330718298697390605946478089879836849227489944570544517220283608876478705178072379333177240860080428686649541864382896973229368371929050686203677428134092618058301632005499952251095923090549054612200369507896029241718792821117758725436394672490493632666556420734192561021598505829651701551670224958342711155159358562234584176962920324113248843620113400673675806453228618871332399464481192481302394802295954836467584669398785780221445351562787855115995190777960432185201043602068121940049233646600760580630750681409841684562460694887256281742497907808848712585056814761397458876632861878884338232015165494879471235497661078450009635973176060054093386193670372511488170517561930952271537088126704322973856857630465866702932374810407071297417579497868769507595943212744359726094697481193846622072328696797784008475096865740392902721367797055124747002242298679610934344977974217101395068935052811414138477377034959567804985222644628342977541340127249973727789101497172334951590247100370865351237908055689729888788826803959569682271817416359798310362520228359564423155279485222540814406180953698274415840318350955697194206202286237260613644795784339872700320494934399902916906685182762893557499406844953265475599042587834564011770213093286819617696817229175190097877930971215626545271673698332028392124815191705978459647730755261579298463199571798399313824478150463443850960348397582141845349659811886144323538200218059864520932298611210971336344743510593683764333821466072546439981974608964742542699590264217964264465140828501332056480191266535894348222530984467538713011143595345199452855101389572382921998825952697878582910202390568110567066549051304934864074762290207744070866623532848593863461577305110359547431443811386135809815272350665171943444441586572724450545974095018714975075372371982024344915309182129170039362409842474849389284874243201639415106496662823569914619410264233811216669521487592066797122085333435983836553474125562570659992730057854894145950804069639318253260386161319878788927954475496669754411743949653657429200313617484405573796886560166516646074463047337681468787063852373389182455387943549809294518795618382241874969902909780245701667614414838520725690937283642896580404403266605206912197262469273907589691816518428124769202296872499513707297972148261783204573253718776398204037927266288432597078381249917762155982919626559315593658761645596245642459305883900465559097955536110610123380007781954597968997492353183528674155824987934407504676132082810013752012395236586066300912691204821207917997307724240388985553895524194425864554287553988751034078773900945682889117010260827450135860185262444156234942438197093626303511331351286588005156584851057724452113570983627546396044772959237798517124146725172686520620889393792613448922071175056290767540494935395114366351442275080208274040770425186915851895911545396811893822133052985385069128164215558748231674155982507129789523339176815327684393819827806249569073580801389494676018681658042663834398313748869977399955271087585767977263765506087631693342070558711381046374395067798475295471308004371553673222183288360642143149243632842792572173050199850875533262366733167693963407164119623270550971961008120545358063690821648555698709454901392807344004353046821649172427732269900024790225195888103107054437431698044173025404919535236636449456013551212786003598089899920982410273243823394383294958723512809855487484497138760833857867567392366032373474770036361868846542841929239882639375855342932018803399816968044948981435548944817587486030627974234716551103087665621247188699627595197834088424370361401007361775859626641221305676874887742112330706462729819023909225023058003224566208124634471967795832209704272019984949344760833753981538553304809587363887854441421647932549692120107600071981175616128473764324120448816100945385422018163786239548262913367128654832939272199710342433019389743971461271125925866809775521719583101880830501059992350281600161095955571826401804269476340226304477764682420524046858017021709063711265283168528945073129407135987151204753023796794374672337433066229794883073322817984644917246337939799741867889131121864477577919064581673558674023105217456285545019206253269034057481740602203144307289639484120021223887990779222577835420991604075110962313357998608982262893718840098247183475623422054663423915215253984151675166483495800264995922836473217138938390622844883100959933171387225584609421766575836869598536181839837680724420641727068165306123815175117795711877680093214670704706108776309165074225863518147184935414759280228199965448622739512578702859485056719307841049132456152835519239209317304767372070098574736705065089170742316003340536441754423039619469184242270753850017801459822667897329933437858140670226863859519660661118465429556591539539391778107028904827063319829553364692334886249408616766534197537439106551172450002649812573143316471824689884421503276048083440214292514572017905795413331438408726946154526390105123209486540496439075073270652789064970303940764703622009175057785868289707786563815996145754940296436530332284139108422140979006353183325966857540842688761858860021660753815842216906945041772332456057947129322258026570818566627751078211666420042664173764306081906551713091636478341707823750021214018154187276744491779668084050233652950756734199475532419393826138301645086364756788337082890302447701054672476110562342097606777803606245757214943610195632965526391017118842992880642970398968256112515255629962341661114974492211750546320087803345111928776415086737109368237323167782377691657785001334368099355152617529562677090128419789853688015935876289806931374885484974982362268590152898352906017403881163009077847676704045680259853846484618681186665604334649924733846615530798009072081933088014076989118082774604667856410255219011272930875801972098513134442365559629543870615618385725447483402737971698920507172130176590258577327981091427512700140540436091575350297685857266068857909218939476189686217240092615725399112434854913275696245560098932778910948490049732513998750013975772729703178377749447189899066719255364893474692185051622678378963499618120539259039960612341178169659998977277781755823035422675519250705969274071197887894413367148336811208861238725561339918963222966604609341217682895476892084361165937597737069957137746267217714320914844054504217199244743415894579293680109949379699382695989673573740135352156076362880488989351918511448618423802483824460278080827423450671983851089971243264418164390728113628558285320628441755247676697148841164284733863093982096013319513881692336957587344260764166344380565872142563537472426210521908077342214533628305089316606971800399561119684586401952555133535677976310538196197135541636718995457761202233972130118465516234445058167419258947814714769277890779390922220579690906592113227410644011738834128833401919001788517118261856118115258518305081518201615047835900597121241075352952264471309347573202535445904757709507030391198971983289465192891714396164649200546494549465009359569241831215544361025365058715797543910973833436621758362434566598456705542055309801359998055011676048818327430254253546519898055012698425948119967619974752126881207064038408906458579101618237917508978026578926930606130187654835602139205497463704147723666661320223470131984233863204098681095757281473955650784946968622254662486861280845696615229718432877439041324190870786455424892537618973366580407936024122083016805703174067904977585103675319454313284351816503516223325722702905131940623293014717254417476154464456583694607790693920046632244813225260752865585589387509704161948496295648007459720789909817927607613432267834490175673598919136110155148600080055656117660019730385303070418218700162267291941138506030743472458172716906247802614689111309994150042167116314788366745939808165321440322134960674797849945367759137821622208971314785501381011410402822518795092658313715176969540819251350437378241790945823450997008332201913633110662410301500820033358228958426299740693340138037835078707602228803841995062257232013018909866022456575273643051146794569120760091597395220686578875783260074912951900593881303468150386477507819901303617537727455909236478748984827118294263978848464630319565423174674085922637033070814432367768860199130762700224429607148981122847092364780653946635218100107770425682429616901057434820803837021664977196062776109129271925175087735158300882219380531727342922298898997516863770279759335419224056294365065363510201773394209680559681837059084375029863800142173690002446225433082988153660802937327259710207068714379482394763760977305127845924867908818077279657842691622907235405862496209461118446182890920495099742820994857538720107442550142628767742557580839676942270757212178851431114794672321723928277902073963948861590032854757551730769270532688496366781809776678961691148192618668828654910197136980279540976365581744071799459473936639910682556037876055451609429513913061989361994047129813356808838669129219840394231567435987644673367626759802852783518534061180172474578648228583684271198305962722559713527740446649557944474860381521502014129946099691332305151937479356991906863990304651785406185307152178226503821529250701349679739434774384372890506077084647568571612762200726904482613859907144177032023684632021475044510837133117051290869894823840300927722028270063181707398195288859047399192323221291778139101630641886061738020797376269007965606345780118231797935478940499055740422114161482866522631729957112303177600383401849054330158375605840254389841501537814667136269115617790943755562441238741486416189768183109690379321239290881807901319588080219346400642874144591408771758542440277351991896506719692631873063547351175841148069238066377393052591164012152679670081680007174393058553022546756419600520029251648650211398063962720909840044877595903087453729841036675489616114476343482911826093171467612375728889928094512165455321866372891756989217161007537586377429923638734203567157429155944940016246979596976199867956141276475853758933279078015198532801658137666238917650454114948582632906454761177520441220119316850942828717613838851121647633603188374590977536891425987414976874814526860508516549382860977060411022342847358234476480039062102278515151169986203305787639501823783189236442411720471906503538458300580864633725801597226827211171657461794744030060805821471783485742878236642877919664626445230641395046263842934328184980526873751104507213255947400842576012090027869632731241596088427300846704387039473573774575608437785182674593656038318577320379330863300587278061463340077843780377043983971682295070759846026189874986188971086195029749490035814983517834133308482225967463782818109830124676712601583714633189054689453039532922585060018539363798019812911219228138944712915904287627233081475641005524252847933832936110557442228710048273217025190125970241418919760853771145503144118929851505957501644590015052431020987251823083157416082276684918102548521279787302859083647452628754057647875636692524115851584394487354745467861177940863396615747360467100229558507655239461461653806539674681834336160258192378048626710238597204301483462136547590584944792230389809513477126404099376809358172514145438749492281834143093980467798260331502013317866291899876187261892094819115181623856504048737945546694263974750858634993551410173927595886022978027023245203126873716585420673506473929754186459386787188919791773736362607612761402899411232855814151463238111671917818894144953255839912461497959760202375768396222510518770091443859807652285237466377834541902694333847633150757572460582441597527211973910821199682087616289208398119203979816926135411453166887835163584747933154037663620795668905307764713757970500391722888970419739462565407645401609121591370911680552979032447172970994872178088901917158583191523827844232662156903653889192429913214783239952416799767930445667999862936723971260958321435051766111447444150093662968008005536886837848224114440581598095249557783426662720090170341058302310825960641799807136038818844014321726137004745970785196661839295668458102371425268743043862605784538439464973432874638371147957419690127283025750770738560647420958335263922075455915112986150349905266320763986791718991669856939613971273782563526829226563056063191692772820428216614212382943477586668057289898338044826386440809474359748629932514587726968293445148033362916219244295780311712828282645939112896119944795650381337282733232714611311900280671370835521088640878145708941267232702892300981396846474642329963906645578603847320519900815582708190719287561137117826767334167477868994466816032473919316084656019344175020122511634262611102489838271776816833574680319382415109810227685294831025117079230475737494010191574179907824849939787291130638484993918481914100266902337225315882138014831330493096350732169022401028521798797073912930286361768961327334259677947464743751207628003592419270072382809841667830996171673518064780048306605505043994526508551962943935078465165267324898927652363052730493638821942205109203550291616184691336230019713841423176330586688815171546292380416360775711421465850001821159705700688419913861941159137271824330517428601920154133558440035351838879505216591073170864845736357451497851361117547476074561621618245895920796207129229100351776886691040799470843643932709461009087536638242586982536211526593326384146009433825313211973673703178133056997754259265774947673982776997167016667101234192434595397672294946613883233752850201233683732420975623798953337503565719990188437456987432635242132353158433749963306275667838349411205403902500781438808336707444458803865557503836237493903073304666787981544899145510290400586567136656465708807600841198235714757260165801878553460913334615103837320011055479520653768562513302860100461875087994198717815528868101022958729118572135518427640808055293410227449150609175947275143311394876758469902949725557168546935080240637660733527986081027289088091688974349188803015262781740217918398844922068031940738274623937078228038200163782408670051943443932541872621834448273158238118127652628658215693610773357538607029811220956022159086724898131874249944755402012536823707280641006541535447737334037672164082673013280775310516089566618760348344559072311870714732290712538534937541591531653395889007474587474309601248845356330241848662310729459861441940152029121296254797280390260156288448007615644380589208205969606439425043182404290095363347382059872982354243501536968718482384610593023330888474397000309172397130760383806027586540862719620870215761998446668759792165504175607732028118304511206817648916598626825281514971299790256732656459097150227190053289241471477786129994813629840426879558990064336482020699507101367332253188722836561386389920188153521235913833011863671775050753723962298731948614275963398251656936128480314566861994242140069520363350433858154470672571454432744117132046947015703600837150981835311634010816583589542982449587842873771825997580377144603246761809955951889976229589469053369031255525820167073053124981253657648171188524901238454730134667515158253169934095674764570265505376613283176263317769222077882307027230738613748819502609407233533091447978014865902252817232684137568093130948890696476379914115200516427596130655512669262879568429153306587231149577622273617183358196453057218110752269847565821264433239982146655961468725405442385869812589521192770677237596668544853519619088728695280503876615463987711370860062176675942378183018637951064652608882137534345683049934925035998715304193013516818026026505445993700657798890493734246827265360125771185705774845274107275335872243568659416548651188970390056872952605603456589146715145779020195736994152683350831344987276313858947064267155364508076954894347651341083171194344338793312030709518405929110963132952689829153698325832843735830582217116914369469363464577873774661338474644442556160763348688266314110756989912881419449315326523153039978223540097519034318757967883288201263429771026919991257424020156461407605128256733828045205754131203653061193528417337098099155935070290394761881677414246272657790560061339875319094852530803669601343012314548531661516040631317404534451438546360397983495909767831345663179930797628156409730905682593668622802236136922928129535250800242839429589545481539034549718579391168913464686965441196001803474866044348608665371620642614838404173832586406826433847191878535403472498189164989960085820801447313633174405500014320452821544453688464786576722052366989850891412180830323984019918679647276437790546296334956024222852326136670729570356092608742221883108534081934413598750242123261298040164125322696660996024245080196609915904724655583971844420854945763507594861520929591045026392715668930648514334646090244469582416097864652212340478369134398351712751480003689430625322289548664877524254669936730092409346386494633350429574615949739515796634376797047978958335278098995362435171593660277341686896446260462449596414616121823864615022882362367928713732667120810494673172533652159818290418223093242801573231406644564422423815124327842354311550503388987292158815889724293470305572191867098072587409699666588236179116379856637782340450032043496744581642542133703699051434893274277471321700705909059369758119959415543754523176537906448125564837504449633280380021324369081986140012504148195541620273994164483628990606644028901311423574886118305499775312785604029867080566813201126509671592011932008735532492080860727685239939479993393302267912530855865906363546741086547410595031363560136372917790678861588336474031412079091245411225446671408933299607800113944833446801068432841641743110664434086214746664627876429317588311544150371125441529792932902476308528548804029572394901911500690367493709857846613747377142197498921116909055224847160627660416147404797557243671914492966945283912081979904426738149053059744391104658738982997546340476362688461050277714509439955655275061779951255856756711565786504589965706111837965889798784162697306320057837276963819675296306064543625711441702855221143825015831104395710072336702516008022892313054702409223944812614350045971415547270099114816395629657986886228614464014667111200113798379110409722383086031070937896932374861908146652153743821768897545958944820931407630932534679043563530731215197177207708104130928744187370389823291894857116874707239674289529870378840396977498960951969484129673204261771678768972868096521311855703766502143858097094261990811207016396870821036039874222079439870726197245181216363310325400529219873847724803841486587372260371346137425544898585427804834755119205858169483113412467396003281235535253100405133101968457698725269680068966436387754673803460755476229497712145363679836337816849842637212358184183330773239912090033159779812434850972302447845258029697144689013946397304702736466684830024008633693840212455902507162532828038599255713635000800581616960858794284803437854030782377399628181269597815100057683068998759750889053066024220921685904105485854930434825288946150914535538739871222785113816966864049717269761309553293826461638270373840840951154834875989075430021722741462008342905857440404858959314795066165965608264361653218804940852724648404053741661511503079309148592702016987284179491930189972854984667376996533534759022419974705071161760441070730499145385035030457992030627399541770095358897122023832339057538832444098189922835511930960968377668325441217223517098547674945475855938308992103407649096892562343187858537464106491589265904432679405303183109483052663210509458297510162491061358511952463954635283592205716981597262684287953202306160141249716851493102202465364880789799636939398007849469875538920645526688724147903965179614012448118206505163326392470406518736484627751176683040506258640243233162665103492544765782585032513806667717906580485330541524630284276404957647043802309289788648318931185862933883967763167141733866818172121047252120243452239378913262829861274176234778273654056082950221662294167399043922147468858679057798820963830317396027615333427658479604885756509320821247490605743993464606876761384199750992311641082744905987844666606067547521224297245465542269883277972515821102867172310387575675748457968070401203268309708825230030440067400677481968512575185306053094772849068970391203423346176401105447130777970804265130192676535778798489977881617359960255605677343283985491124892583744037888357882985740408384821164850253955507414575128152020273376304607952399200459672799055449910762929897588824815131007711859011317132054781702455538596818634173781902883972532062353655544220452835712009291200669213029042581453260029731061426104391176559717364704754657745386170956135219016946106247078161233075321034996935934010002214554753938079158562464124920544705725262731042282401515215249201469164714897711701800946459389040121209720119355999665871392898331101521123068039832912285282018438397835576073198789809210304193221903524918987746250100876489915302689087195546717364056102904441651282037592722723291264789320154506142479387199280883691273106737896127318526532277512720659507875401508245658848814408894736484243191900273007600236895064891335026818508204290036882794724047864134477480579581979632138051079237423611361109515915162054939635540313520522707135043102343372658020339995488030599854008432108972947000904658890392422993824594033175225876987333122202963463901694433567631254139412694079171857522404305067919712881658250842586649409355008082056577089993131249765652153161250827275271219998671656744748654056310562651411914136026360232316892243446746037759515474975317855610026894358670927297236699831524588546017148199053186707849629379909078540656425519588895822431429298799600772500156619524372527811396303822787834643665340666396766696370155948370519961374841265227848291057073144133212243178461392296869973527100252208919865342097802625705137639309928773581028962095158983033140252453569344799051778216264944256525873942448659190137101889972353312739334458837419685295379802927030058340374197635012973841955600816697926580304988916355453616016739217436763991138697398687240603492949977980014658043106359547607219934115113142259853255556915808071889005745749438597252030225853802703615699742778316442572203821712574015296538395622525976689941270696528384121244144547514980482128280809630263547663427583435699207911143562256659607975448009818098044334124096950555365174271313388917270125241930762112644311220880836894262796419025954509045727422454028860346837335374227491477482231843308637720934443504697963392649685853185175215225012551880280755740171142982463157392467409959532509130270676545434877679610071376211698038868237722723407352807414425894829880989300406450422766426074316153126900924227181636727723897780490388478070914838907850411670018821858431493499900618824081685979692465389837882270727358583912447499277743844993566737130314505023509204551336143760295962316853417328183427103225645861026662246635009382271608870948187730191658278694879539118486554779556970221813496226236712617408557118948315385863982372472408120163051854967995556299731768111636009261894144073156868457333648496944414286035982569189231518551474373639986369857898233849225662307403283924024028000910904081099354623720726633213126308272526359263836312369058253464509014778416510507563054089256211222813726569163430887401410758589893500318182616144230540003450546400056979554133141022283266766812227366266715610383503964721343480955570082598761531571033749598831859332929382851388036730470439693459717998613886425228622915017903977873057520894637844892602736887488480320389004612198029813344592486458052655160218594683183227788261203215391384961533075645499562777050386278168232421515146379972133337015054189629359218889809255124152866918240418112247886879873441028088641243145071181185531209420997312473147917065268076235165440238921887235174163840673025464576528984216198219099894514505078023733777073176201609124803818393746340885985794086398531548680141642197882973076160707400375254570937168884879139590136927417601919609458415219415661072124820389499343454588683720005295292508213780919925479543562346171320320838429511799343269157333408242968289434537151054484471715337986471515399971978770762804275624544775465558536840383742165996558586155996820838659899539746345686217401314167801792445930597451967851057881703989666486071258449814258525176050377720132210176889224343789763812610854699995918641849250063429127766223652006373212748419334683489293527887881215838500924241450189766918876159112988247162202917931164346765821574599700278931257930955772095276245496529544134142357192242482662572479613386792508084402446541750370890673643126042659308269075201037470375016951003268681789887097074799048474626285172455541339965057571598146924487618199171378594788926725215715070033779069699605414854765256255058878703637199564917037675710745153329889237410196018074581896382181732643278870371153514763601326495457261999450445120047851235376507003684730949604744573036715620655590272596019475210436306654488545041810574826877375587711296539251340693998025169587239772938284083475797270987608751598440028960747666915437386674220178764120498089028367364261186484131281294216068436537181286430058722378088345806605211438715647693869856994205848659312142400977530844696197385497845940689595428569235528940988560024476919638787283763369255526762517678677173994664566713864926139343947069299879283254223837987089485602415072471837619728293093038121264650285069701296588368207597701283487981097718151821450538538469821569814296633661205091981304456799838858004248324719289128127705769172689163150381999789680685721197214775640501640663654888060887018163249342512604172039707613395643692241913230865079387904652069473099477949539788133951503109484605382204878304245477389517085450057669991748993319477326613450484874351627857050417419856117999759116787432376008033659931772307270303842068208198027293747946585952869424451917983173346384879264774791419190966535123644917601373349086197827264940300284719077948483406394877393087924180830353650970701029631483952846025891545462283979579152519843245364106759307975337949661486019383181155655229075249712815162968300704568480521057566391045630274255751280150265634753676780501405077754226842173543630459961936994385812392405730715456406749441464793071736307716280721567709125755320622352888942015988673169257090329892125099130351098056000008078200120158540059683725755584194095982263286515116302231384987298842126027510923846881651530447899737320611330143396586899894973293782760161614245464086511121134980518870405595028107504525185706557273778741227135255991893625172998192427487679239354413836766529665415669445915934381448937502617995021229160832959654048723790386780826243276869828787225614632293653214594717905997719003778938629942978872923438434060388480815293980692206699791244050662524440441155571411053572042998982498428481746977895335736502668304620385253501439968102823026178413518904485268141132438202950470944028273688631320201327128013191232120987690629368115687904170885553128814483906542481403838254463267319747963970592785648445988266017888967678434544185788666249700800640334390062700287567543837700275902471162537306768257548198646552259223025127750317489487258725396964324110054744698214016291440489235249435265311100349667807163705416840161563450016748560996300263119525601781122647876252602385247001800796580311643413422409676187456106480289857901103123934744508595369686205756276076841587974200662042881221177102316162742046483073530786336293691952227314567797046181036244315211108774872744135232571740508201523616987389769262484294415231233153937410951642781346065475554949820739514944271506344433721906232146920051264906638905684141499940477543940896233060194873494135600347178949204468141594916562131726100282159918058614515915168740311492200285340285824469513536254477085217276604797723920692336369194678682223414203075584305403035465698022574702462617905988763997994454702490571835241880162491810771591788382695353107674459286586306206343616897184386581022046640629509637136644295894768946095169031052914177451217787647450543203014260226281400968393327227569343727603064455589642134325745779848261661041715819462992996808298224015017973835953067201924307104093234906972055844623094048927403784580224440859464474756050791069429165188262061886930416060636674719164358189272735220593804004621663195076032431446559246698827633680084817025215696870076308092680176148415651402606726007153542205075474274432973975962235819350494009402864415381443321698256393630028323277865640801637400755524812220919686716451732508914852239556931441295176561520154301065465653845291360716168991705466405219228561370214209809334698852417679697184716605965188934161116483613926816366452964148409680757304054888969076838973223532892167537898971444154292997256390772491911675447015646943904764383403226878453591628126508366954059054828851152016855639271967432966587473746815976674944418674402979539317666805279777060281121381506693014274043741849585624356453242774406409886342321862032964582544570693989903945043052941919903308754729423655778524802978404417111499461883857402265687042478637481122708647346156642954228278233843661857587642989884506511582045561387410244379681617320283007337615168494599720183165117743402879596157294667609226083695184091670536056712061983775828596407442840776221518566328464623438071480062433025945180000192326420468181585844292961796168946012742993774273880552280301437660495512058451850628392388551871360066298220779780228241672193688931709484191212182246334879465933221348371358099474511663823187000050679582877121105463328307229927542193907058620018527217296342169501670102411498693020508527938887844381597780173091913611142334468006866050308078666506302698426392877579482313890591582356027954406036087751144386604397009680152266151995841124441638776415793203953373871887722390859467326431619587778558012148009904738723771409463794373082371824516003098735083540968215351386079540202308054958738821231045023794264802769106919671799971031047405158392155555799428862829240607639532525825060665732487523347163133442694427098172024169640577395837108578072088855786385220936885111230702049087518602152396187219049121122646269355939592309733793547070883179679312640843115098878212132674992062805405949033923391562072019008966385408542722370529936708444713658801550951959812333672033651687606542247339109468543438387400785910455774294579272975283654220408889276046913638197206218350762437252968845250397181009513276650410363369586330711975533784710480077228787622990194078049246306793691047422902219173692940385238590348739704117623335935220130837938459664066644423032862415489111297077159062888057451519538214771578509173163795662727163081283841994088886802043713928783667023218921966409264239014347146255852338576530680981257146709430122280708726111949514378027266736355977826806821291335671022980683598910580749369819073325090316987831680651895518953039265961681867276414529079337084033443905420758891591497461272631250207640822558243598150129759639788873328168742082630223059678636212468055336865393947098063492366111281508021910905910880046711845987992362159242782052803257861680466109841107574659931090319556369604416246233374225982714286238242308376683174596177034283571294624786695388832670731037994218992482761995637186783431327071966002191284413739256926304574265426762775173704566501473408080264695289745701547278762409888943101164201878567465902472087595292538016429996174349893178481683792076067595410236069856275017257896039612102101967629759860220185570045247157539920424348328317092305251710228076900217166307806938340526263604790520862212115623623493037430973169452267222111617063489111006491563749123292072777506182788359443046665315080098165245726177193591978137071064430807517775862858170253949812953123366749934800016526104295063901251907140407424611715079944628218098919704441698641837948788703293991632959157422633992878390033492404853068809735867289512770998415564411620148889780420200054938367708778941174825924554468376902844587083672159826097274115786294635396292497696105301938368775278549084250440577429290353530958711615111680330194176233401976652202825895787202571733167370312681739409035797031499579794426717103194661187727687102141807656457296019824918790107107019659232330692477154084026170905474178307500155983058483319650800979847063112045795371793512517624816084802649850584466882337399927394413638948898446357804947008410551823914650046515794758554611914911371367974734981135964495349489579286007440169552852833509543412777915185662528784822779229981542263880376741091194915367004228666437906535040510895843988320111245491415749835546986289664274371254267847870715962186593152460728385392657766362172628241772367445433448545203194528038801704811021470045496938429033376461374510256001725430600523031211789336571507898615766179715757590831619987637900491728811816622976238079945071818527228949550228553219092780635962224655448678631815500406450102284457993858685008796880035698810027539683087355525198026928709005973213869597006442344839039185678276629144254807204953368598839356402686963556954728015889731050691847870742606898394627292084962767569451889562135989119704436238337034762166051211126200753861167525701707584614993664101221216321590944252733238670509599880556979251907860831936046233293628385300528881429329194208450645334306867836456200637927700952396147097909549727968574555699435986899733690981306204923220209403585090991454478405239865702193475972678435256092462470716768122243195432071643511349509904920075381362222683675856632896135199320710357790455944751747927336431806218406596378285462507785456098445578066086967785175730140913166765415505959039851481326422399148841336478688137909658674353784104264750094357937469904901799224018315318369496438963007771863898092202184997386503286288590240479219132035005446076817982872682227962293272220496681292428873715059046451569740694084857083399260790554955278688244138154281239316744417154252566431713295534229060722644938497158866406629533389691256924757696886434385847213104337925177339306141774578901657570879309354064173978029121569210686939363809760339788107491115707193014918974371135866681152294221450340982773646884230123930877364236420600460985234714494553128046555793773226384670754290218233314339018702890049747188471613984208138359711269891714540537872320744073875718215910189684123405089799635691122031458491014918742781051088037024712918761931674299368523225449457225364514240596476161298616312972333655714835001074943068567700062824236580202867765209664719993295623897557634035879382636283692827619925685564992840818398800289259377118278278160832234286889746448306791211623458488641782172354575154133297810884519573063881902251948606875831713877522032964080235353538858294213830927019519128468114235538063173305334780960709132709158580440153320499420546428443937842295337659838486067377825109942387409487392368542410563550280220645499304863282687116332731878440044143312492865264387214111703685987605727662256820028595315308061742954541761326202017641845321162819001146016476829367345461939375418151174005179812957090084153449488212854962860270516893147720706648381573711913741672341492482793543529184346152099982532706177576466577852927494766599204319570747330709751139181619350070309747173079273830827199442767628922331051234267612414049267552598552777036419222444110982006047350032488579446207202469813463776731219369942899351581294642446434273138005261264450254115265183237633409146070022567391515400713143758857209091416531889196528951144329488417307607320520710875603883032755856740683025665722108087942373702307047554851467411832813593856037665727277491332070844724874221201211638530143302696207063503959020745447208544546382517603894619895290177523637226771084233192246594462260763263289673610214817822714910296502055519695632651875894166691837156668527264913261763164635965191079292056963790250336338896655467573141142140108136418039406921603274176644092390544167262419106493369870132388125130979017603509685288475214318602093804428422444737028365951488514180989513713713776211017948315929321928071894982676970226128905845929322619433292901431471351558465062815624536063827143670529997350487696070424184311949988987952907442411817472930972050606050284953901859360415127170594552196482403890059067542017872783868064354002747098410130820976826260872390207331026197222700744524230799931160916179538842475371060119550933891435876593748658444305157732029191244557661604854573619168794667943559729064936704384341888776311523368923572594460855285405229791910147994972739531441841849357322776767778275912742191454445149926428998605225527308453951239382691843057476945535546685209520475709904848984594171848626657140215132570902415006610010212327038996786170551764050359314659200185038210455833014080767481309341854086903411268529896243582176554272374656049501298077179535505284196351859871861156352055651581867985413433846306497957436789913592949622427949696704544007805031877428065695727875468510066107893368061560349094081507626591786201894231792380621312668906946700169266332103408430898371435505746999133526763648526950792679610761185991910610047601849205510292527498731343138479333969633531649106881896915626267253776127310695710032038731602378053384927036524824725773423223531433795959340167190058109436833398828843609897712991153426625533017534263743167716071675806050012078394738856443651470529355728178171975904679858243571457490826902063348864500447424228282984743069479073955397964863038372387516422106295247308333876982342996493836937378391971033113534735640742808437294093909481982304919673135597671490205276334730738768346037860635786566707064376274181687921814608735556951505564125717660442681375070128128718962160119966061252627325643213477144661889702781943934067833334090635140372567714085764629011024717753289275637357774274409764127022109969509370059074692608461483631105479799445341704839285648500621637610863068568973513516528299844510859435082151871040762342159805279262099081119925783308037939132982211623865035645270843274136455796370607194296170409085554424045397360865106401134248043599889568246113276612586541071893962435486929992706514928482801461698312938857723854005869274299671112622442960844744299850997719008063113933816348764741678531998242967403977773481245047640518160857337804953151249960403023262667518048418426679841867903103181633261597937451952647066403630089494776133829316559439138064018849340706543784430680437619088485167106360881081285247749900956610354977630769042357692804213956737235047316416013631827165436190798779250870927370217287369153763023039627640290161393502844465187786353961607361994182821235717507386933831756159050381731371422651940623614460092185767164937776461841003191450559247501179164916846005820975049744819474177522846180715241657739753477233910402524046040426570045445167185657903303586540115168645347996733514202963281913588453152456078272262269467640873255974853853580481637848772861504481603032937478829920890745346632782114071368342160172561622418168910660543650885354229922354388997379208328335777274292882099557606593133609984208332826146419736757401610524915593647658116251843751145269909958549101398028772474505330012874367852602110911745858706869346033862944273654610000427879808491489195251978717724048434794693639172088734657817352648246102822153110699133623732278677462814101725289373825985600089737456474570044344236186896153565610366795923730281153517935713993033585785145565345528256731014412395084423792951054293296392126618837127543515843781645609589849487578126619130751137049946098401053679772238144555745952430671308415688322320077035556548738894914522311959828122245531054623791765028107441006474643845429212477557001944605370355986958999649285175230392492897727194973163502549910368822298018762304126488953548824138789375866728966888493186910360817422625308603460821186274641878054111400166369824838741969200649804089145209416692472854561219202525834977093506498259855726587889886386880531139731122175403919846650448479252266914321964671765986216139180044044476429908925692610469231643641902837449223575743992163100241228992540794266800447141864522798025679477297289855512938526479481777359514394944026359671950778511175840516234274184817333287769826789471192315886968501640963313944581495881734010169725619917115567018187449200684957946274847618265170464603179686371497610842027578325664398975312028247658272475727402578152608457551031870587896694490930300472007967446798478141463493615742087445489086559857823716118336349751450282842688250774221327995362535201100046213637406780955068734317234364365488329628948017017905088394249237355148521652266534996233173367999399839236576682864673988983167443448966675354136507677172139667081797796284251595427418287396974337128115952153200770458321035110961371431971213709043889292783619649133465254740612917968511481204157008764770375600646105173033535227159105894509027108652454122433992895502226775050404013618081086869889698582908899430003713780624237041845234563004830938342840113803529579298323282661384618014363442172869137523696019512254757331647254676351665324293102973257131273967132746189520636971392379931209863401229225590742735406215587646077242305379975018533978964226084747995031439705583034890241743962133343505000128275502395906776468521550393386516363945622163692355725394533723101958164597284111632210893388571304090945316538568113411608830253810802578317044927109395931070197990377179290245213031913350527250479378530684029037715726679643284654460783011321595576309781911964374843844657026746689798333918407947779763160066330909624834406855075097321418982663989053109502679282537569118129645213549285648295068644213522161277889101086460063115288635656899576021506996605032431790094519381694484129704187486577335453741288794707455829392719392296262314938955570828510618566270394033838203656579178887332236164399521099149398127975832168834173528523669701394822277617051487281439579586663166708355866147402253883833251479623035273822526003626188079056460549867457311605202338777685305480572191281766946147469687515108327287775382062923410711367813900833627525685381360376938837644516777727186704616772651897221037248725793472349212856132645013131703372378296209403862253069179346406744101430936092125884887396948293066611496673046710622475005602337402773324728204106248361056939983306042370958588941487954414703250227555004102822936768210644935010013343419388559202644878518624468678032629930386688856058237203316626405905493256715427236097469582174034346978076059655242368144500286531860011421831749786558712999583039455494489336956140469999572794339317824396318522979735102774912624055656318408028132640657434753201752897695921961195036098435962826424293046664291599692227452110046514236819329661571638194573560096523567583074450684826571664970303807389506616839858191761628967913544829927711694932882433948066739092652675698149109614597418450297245523149052407514862371447987985990444703953059682449281111431887716469601931234892729623044310787779709928837495982049930436672862983317344054308716336783235848145185805752993551892607190378452119569055182977358673244974193106725248397928095114587259052264944048225884919363442865769909134217527191728125278196255667492583077039383022110567416995977667889035167416044901759665708786449547596354015662201139394516375833896622796378360813028402142483393792201470723160743105225802439029131015616407248625962367292033442537786219557793565094584018181855567037338542875197764375926717780687560910853150695315174445322737165181798646683500469408819138740298958208776255861609664993979024609117140299186231077730113222757674440394646252559046353363863225874458764533602253305462869023729493385567862495904785526710061756561090972926898620142957224582545403201225122491903979967959187043732870894460131797031993650355005347925850210416127286584815957211157952023439547609399614713080654750078186186651594047415288111368974224092762787289681409929511309813119312812507639913637301675603066054535883330720260642241668884975891069056285814094134771268564138754264731310434087166299322792519607605997003204485887769711314799360395261631301459324432030588032224365129684017096863369130745075499287142437229108791356377716866549401134272705624915930273686736260178979814687286838999423803748400372471428476632304648460267564111339039885804161139697703298554240220350977647692928647475480630751253721191725132961293649252708038332414145849919150289905167676297824354676574770471263371184789106225179408154564717053955655634258635084362214843102815520471708398697244838932130374280600664046696963310694163893211295949455119593102815384504443461499256277139988913611807931393842012268274967855043419281545005235235771660008544461427650516276271597690230878287853467865179643039440492664978107591344165859712995588462955267523992506896664875742075519084517654607359122437457812662355926477922651666747420328103610904800740120579251796117740562092203322441155545543871234987232824975639323616377367910856210974620286776459259887024051809925791124854399253103877447356007878235938307073127716873516411301984973388892635720104769036637396069945568291092907064472389995400514993050295048332714877160794127131821947808397317028755650296165447619469844570478722433144244468937809102349521672967453600177392267512051060059986773154032914022020426439433361529524085180866109090768030319216777413559176143933506378208870340579802420144737597913581232629561583373616943321289203020889493488395924623294937341346726978586540880414258926038204299419169664760885177975792126265646460548813780414389007503156306596562081532801100752480163530520603213239487838923429943154404726352260689804504117373093201480235493774360935622147683950143143848203227774567342207556346324403940711583434325552829600588630147396589987621953037036573306824637673700685437449466101380217007858719987985400298317011153056629293910680814979022652380409986134519580252890429748284651770030314104905915598632435008334728295251110708779965273189935688021257820986166505330512222645146726323536973814194855825754662688679080216115844013028066485945874759731252800063426908880566842813889821635073891521690388048733488239501087273455008048309405456834172520225736726152003280180056072180263348064615822471176773411948180813859735722565293714608159434344280877984680039660757206477121027990607971208369953276627078444362722339885823722698538005401833193586009660518651101106759796599522248451564569530971028784182190995375553923720204278422503072957435728898004193025346221049600456037728511555265348546535170391301333707363170323128281235000702657203950403454418076869513114151874427423872820006075558073353561608063617333866451011272317188487332555231175663422621521447260600146904726604610772132146903498219814684440788687388277006294487769584890563902660935745293545142926876940069068155386043641412507731056345325243016056516251925596549169754725667817829452031775532410159836357651078002112232014399336730198443019912918727341165686055674996026547730044507080819110115216892295509274827920130506634563423728378707616308315035452114281371846147489181644536226281986522432989616051680490161793897379225390074479799459326485855115686300584062599583606763430031206242867238359474105507345203098344336230818995183633845770537780044505666754532057982238046919131206727070139440620127621593562462450983650635357722542760854102112919653849924288988719050478701503546754113097113090383928841632709628196536605976822788057407528808190173442785644543034667580964809441043505664649499526589172549718008593738984300732203046337247619800469804196332464775371491797741193712729030009169844139689904971382012767379711939268165498498905566839949603627484083910229680564815333085424352790619073881506046482745742026737612359321786770562451530103512994204032381066882780012044087675089349107507139356238032283686280281129051182939427884636749481476325565964172307914274848752599846851258992609835077930296151180943213156819729894693074161589322617041577154783170118169206856015046902310037575644491970785876997055963567563296331303078488263205579675580515515651623582304074100123355943072460168136235680575767636239918956349856989746570387350124727287579726008064634468337898385632782413006603708167810987886241471734159456202978038133369484420158542645395135064289939178151358123105072261318091708621193849210852877534977158787330090162052434500780015747356437379190910060105253105321003145207719034125084471297747248109884234618016501198828694114984926484673765396350902120124218209699421183987959360531139127454299493931359262422577033211188593642639287652659446269244981775260995232645087920938721637007696378125912047016352558168735407417812970581676868046206337765973141633618358683718723602984166703058818156059548118321481410942172407372854650912247303531010570407228095995063243225075105215206074680096716632712409145296711871436091361671445567391974125077256784918253761383239478982429447208347117070138887521260289930548652433508560070965159716785180668999934658778955104532366328839181601366778626511850023328731528373611388182144115064566031613790014647726896750596702301484374960325490502776268595716443821319598357836109820879149867079105573046913421459371605808001638509514834019466088035099679824930511356964227369180613998076535021745627409760897893996791831462079217989687085241673706279021796840388742608230467098255841834669154608407062392567782447613825217278652555842017843984849340212859507419871284471832674617595512963835216641463793246447018944811605226225513915710271535225477169303347564976834731765484218618090628216416950140989448532370635708264473207033717041451476378276336870975780813356019435492167984490946676482558377450240385701479991380668317812224194097639828810632717532465077242124334190930911133725712947878551177670897423258083584479075967186577958656715587741727535905015794629862656600654075626441370345889579396344772980643349189618050718934157696008491069248820458591861939702150665997259731272904810536604489861138822688399411787910784785317723477707451388582839581088055601675199398365647876458309693414419243217901715815654334339748497785027056639784112626667460185074048108194768348828761493758050338188054204217446628115951903743980280580114611687389951988128045222396477927573303746668248282684016314180425040640004635398060909779806712634413166760627909367747926333521182324660945630424445853430688316170202807049102971461941538722048532605680741494880423775846273639967036538313013717210226127797859315485386529953692823497657880220908796500533859292008439799717933373114393648829878477359330069068011945369596080744680328194527452900976030638341614076854396923511632090996866755503516077151934002415153756898512088011697206715923144571810828605881579762659709393811045364562089029083166933249030377730003953366270255124290596374862161586374306071338226647104404283849356421419458280716288915811610383026950870604405135891501330223246069182191920406007225093670864533383233911623029159189112982806341223357270927190279793259872508367272722900731927314037229838263334705487536775764975267387380745491780446187530183521534859486869968621495297152844574545824669714668245173388219341317656772114553455871312817022270129929298054973579879791745876900879316020368757138610854877229358277028978716614688741503013795937144621119399270351011124021417490186483284764556795655623104447487332120339936064624144862387358330760477722441868713550432205195617106244187708433409246309829805643402721467020526484809443619476261422595133770778918735315645533128889313128977009989610917554764436618844314609805022171085114909353306034149692259799323994049549774219323690160754776145140072120460527171466394828333712768600027031096746397850797497768962046733985396923527659239086064087650688488922665352615477278969011337344669558796956786155006402941327716114952333946922807053930455840639706028116288596401258122234557369396399981211697143219542226772412290198814512535774748982029140989329082984556491485740513996181586001505957486931593711021705829726628896552004903336356848991660271257363080571803168617193550550517541733866775061765640634406295977635704450717876309623468271493012225761800512725456381916489649360913272643486213471993810798330566572807162468851244293007775271420285731644529049490423326228972894173521064122046960334242909726848842761784765356810645507679087017182025564460652965072990625830315281691194622160951121876270651526002486584393145794721497665031706441226792973709526977166911039056520925511357077714829975807545940781719440690339917024604880413236001007798876408790795281714081846769459661075256691943630623889123428397849414709120591233422670608169392336893981454759282535366630399790087672640852100740625969257668804535698051932376569926578126393131232154086640731427046888414257652895502751843207507290117380815826700744982677900707107988428439260879883199699356185937147212047021151372712064654225855851341151938346538401943897977990147515116253300231717055667418538946324273316111503914494914343735492248786427742161543075022771619198872162015760165139822243749730538187742873927211053722557264494551086160122170305655004900620251628554291268592257227190752098479300249205528366457040017352194022890618185690746521713286154476019302054259246969028369002327591663936701961786528557076111745152234765411364767680655752481920152025220006549722385935354097247996300180620382761131281995595112467902522010106455807379369772682449173157391249302138325546359445468465532198608968302220424752618379595478663274962622383225190840751091096859641799625622537297928773163738453785720023205874093986591917851386016672767472410643652275029439806823608196505970424583579378019126934613986684244955794517270629251613722771197454633656675786754475302615024930511206152101192127899312677790549559063202563018720730449024564237583817733753694391289996339019547042329801390518604904899864372794065784268577503541400456353425637041383603216786121507032273421241066479968237574156084731447131492133303872698603553214162803320056804784603064513899539320674453946693307505545925217888370709232962206994045327423035088816899045902566944783540894604565029929420408518964384433338699626408231699263878544690934208019566348757140351869150494723285390104893009694910573438654697345159594404790190798533134163903831208444748730801911349228309209783957551811380416976832835763181534180562255964052393763296360696389117124782576560934193731547195194148474684095534556350263161940354916082585199986874038176461873809973485875038157072548518756623657779786640235306748193489039324001285667411098899538876295157372956638047988219376117686005822697018632024197616673574003744769272492559647055947966255772820129427610316629667631803036084180946078150587344467790001296576337898575473684943209078074420117505908398628364370542680155507574810200447934874384052467677383774123405685942844532164727595966546338822117763242796529582503042617242538469055522079097447516293333125136283037376201354940057762592855013102176191525975259742656913424222005848784897617595748606433568227057049490342567208878371334476559277943966155855486449980749398241963440260186761641499149473929962694396236175332664725844681638146973818365025625620912702056378046156782224278007645833259800122294224404539960303610193272543865532158221135937418446027406058203193647244969184816342873969065441666425514530171263279570884812327314622360049463572005039319346985039516686070790326831853161674612518896105906267578393810773672194909974154499386183896228650139653156360638230307105233397073447152300015040710620175395862744310159048945086274477224446419367538838969640716672997343650675816579775781942470361039411290633312107925524623791838332104990917188594403959735702759515325604798847518613226514979787547675322149460025551658101666380554087656922989496697420417703091800923504986682856213983349513974200080040273302791446574494060035928920546762631293603867217466838080586024762766359665682525360471102569287073780357671849050196295459657799196819465508942525233928999442024410147051773427625385025804121915693256394631131264717174916909058178208886336646064083974253186141922112711829774662598682285024073353436122647459542127403027798069895211714763200966877622686101504244184328724416356425424876551251584411561741749477876724252413171842338889846569168399849224337896553860299685125815731749481613633740850202495783993927436821888753939030534017244681752360988666744105080679550898821531582602316472957404807343874164431780048161032770384203630283087535814139643633175309079342243612391264356433067979361250651367138022076763238798937908889032896725155359091786433234260292708566674480295800444660927110662252278183757612241277571904027016847997609945307853720070159470652257603125068222993315198581573156996666929694350903625520467327872918096431312786593517289488639762923439384217586737097543437642118350328845804435071058994870638401929504215840433824675570055065556044881722491631991270096184483913081292200263529632235253418727094498540519572331633247844802379711760340557667141222256307383071678223996066416497646022814696002394473825168486424683104979377118990532305120599254319660731549945826248901625307765986425607108719469253036489603032121947369975229091291808355988613249626460326296085498535591186040336567349338525403613672514618096636330027547891115830052883710106883108125749776407859029082853960979385118389109453102807071643070787380078189934297834940348296228154665830084176713630590391080873392620010034369911562437372461271036464605091572555027504430910199357333543823454921678006378436571631185706847442425543220869179366524226886306609442201750794571394053013913852940354425657552157593813043369715392759082524340132132069729280609297268445283783936866363282111040413934820426883982098216299771812113713351922493364722204453655033883691105502020994777545876545331055700298676328189240551269927655520064262653175462556001930329875895262763678791120870905797799486212581978012555143810868610524918692436258749063371823687222638709617769585817117796407469820110978853130929324455448585868251678288086893902175768549958285825585133186263179422354655945656109623677016187248079635777304803380752277828179830614148203990334245845572803936652723769364133297939759910286658077085199512186124846722636475614852327340490705177561054595679022617917384396546056075026750457911514020653694251059998641520114322152643834856224478636480641783307620816932569752952277374385358036038316539472278365105441559618712932884557316260245774357224416974294606850670828939355654638724031926421093960279022009766848199847925815488126458038544043061949522893495744268749216239345936195287197349360410117833500605491004235116589737518440682763314735498123521771318516457191646111865701881509886315712769803413128390456829727256757478831836968777181135588939472046571092566012215226720780356003377205705274713140733910317270296674587534063478909701011434182035962572425921331759410402546357749206031397585604392665295441569870831409096757919886783986941338024735863962983079150428466879957906769096352782726269432384526330516454851293856467823871898058861124550900793513742287301895248956990999228471169290203315258935599723658229653565538633552636103848462299507965068836652302909581467849051702653911285361230165342170628634153005378668087058660266271744835345337173353134030421923943423600539170361784761308162055166581395783789912786535207180769566243589427143487175230162610623342953443479229762251801669899329251397501549337652908082102569469461899625936610883453476933556904263486726426368402309714592933786467279423704202766363686336464843327400382946261770715882976975433152765814490904865442405100823990937370854925322024569603843466944158095218645321823736307271617305125094147213893222336917904419926194980064129526190636544867919969481384794687586232820794899448681757938081450513330862428549957388331985286653518939191688650892103116778198524758314908796335448361663219568205735633202064130182693912373858728653050229393831228559754150776253579643420072945117656261876164042747506892426438493750464597506112857413561271748154797585298657197838218052574179955769709278569905953721352843370204571665790819480351723216708159953653554397610164903230117185784984051737045483363293854298962266198529302896232071579512823051380264950008565345848238169303920409575250067674793941870523129053753276496180322945026524838573580249319251737956471444107677666145788287005186871388641147962505591663567167512148765077450445914544887460771557823683552181963149769859249637444224357226337092809956251215595209959900471285597903795355021305115992351730348605380006068361580378185573486158439288487371452301066161659899468943621196571681556713974525949957644580014131897655785413481842493056899491730236254787565832581894693726822638785552565698570982932306885400658106282327051532435427280218388985316750452010812709975591769189710726088011555026071690829853784795965720082044742714057002954883804934807786881130163541079427697646193090400518788747589012261426392124231288315329999623545586517356434679494574782065792095985072515195351266294697285833694801814463265456874412848636160836325468114969187509543889756100874751326788296137143481059714283477452377144533382757823795336183249812086805557419504398293185281746511320482890698434731690892491529712306703589001605755580554175938606421300873033929014054211625244672256837749902460830093772210358911694580044282877629678948651248021393871192965504986221322934399213340943388144061639636786490414106686551732808458366368789078328050654248496203532740736287460931937491365574928705539339987948720086051293224648145558574572539729503156221406393176620647227520862140958490434430539821605709306116955601479601130735732388289239065975717825089534350653599263601385254465842902271100284828027243036627012673251360128934880499493519748789578348698643425510506144052691225559710981771751450520940833521745549715421379979299037598686820455232891405384303946911840397162299605803216595709404155952031985957650188979572394584955726425480254529336035377043796765856453797396801448226170095215977766925156492257273496278603793751463838025511175649749905261043099994068290139428571100509455545054463523751274737042882835468150787721653110294142702719663266916248052965284383645033228801919823923908269238675999896101594170749622919400074513156309998902129672062492340483273369521378063926293681860743830358707228094410454492031928165114141439281813975205934619312217672028097021821188126722495498681061220721772828453877456246505556765884122665440399700759327229805143524499402101758334598838925565352683937976086868852893980000127357133497912286114760984783763191436992642384287322945461088842110203796585040008993341190586281047028421189971627484951825200733646322321898457375073987931012293097514383393279497802264067657784142326711146803514255792914276244310881798665246070867858269026810477791537578510278300622128991046094706095049611899708031174765436503323163047904618440853229662114990790932439748686729164195718509548357800364517283725922783191527092304692586921184520135465592936878114620755127843420239577162200297923187561668187663192514573110210693348246930825914905293618129684950802927628631605565714689801369486502934433424658401905105853079571841049449533402893271377719152757519165708656410654108185016062572001714284504329597429501677076009803832172421737046223135463288669540994608488930133771481378629147042772186415742209328302771372557709214138175873709695851870832058130935241316072241022795380091333977584622343888252811850630722286190899168823248643287235766391076647247144955624448573952274143238818653747328873149648464787231385238688793923175913567187940647141398082523228297587508756327226934320829330910730836652101471537610223913317338581574331083738843167235232415358720358626374998171286062999362826758049382698686193724446529037519383130543870764388642908101488560288628873683697848402530494105615157520324226617318426881270906255861604976526529940394076517522832976145212547811504774723050428057532297246315915797658272629497731776791470894006536273187841520169758680518487459480425560337240029646539619920891205390663912807151007008400654009484787999689405631009310296036975542562347189782481239982213566572288543877458099547895882799183826463019601422798426099536807656578331265789794306163110825610167190517476592008451661432285490124841698214092425057113488300448491438527096898606745452690895377608639828224025807600641173324497804511499976555328542665643914117524536202782615578989186330289938667040980700690118451364756185058974946256032822806006030086588097593684881518008588903823715278133432893852183280961906687997326894607795440916254640257047329191421206304476402102835848950746719559093665914784183829779224764877584840273816536962040785015635959680412518342456365026494736917764595252443906941312765679042100624419966674459912469235355073455457186817720900613802505285539874965698523129729512616897778961986004092905416373748970338869651380722530425382502674417713008371292848820499496979239145763970787419709555805594029718365533132095893092356823278787643716314020269154293237313343090859960184229764602330566889566034490684413287345132927004987673616237916149366542328613188378234724455647578798221803359889859196744290001175274629930302683321090848894647335189314978916752279405191278607314891301458201295026165875106074186494895609333875625458561620871702438116209626841083700467100955327031926892979636458385435766070650696406899748755900130313512716469838935902481484770062913408326563543384683586412871077860246600571787210379120431737847262096514015136354248572366283241226965844961765521791948738935945774951056030843036317314943193754756360255046611724992755368502797059326676693484789342115643082508289668436257811362941022342176031564775231897728193078856567451478137312877658516978255401228665900741361031056508260142889438812164361868581900841244316041535920197932777430486092063514539609728360917961648004707458110853191880332802980048887174316519703207867451775733349497569252915758711107861651328424735664738194080244390547670691706926671044832754111521563314905253370419973463085632601170255233684390067667123338958317674663944063248946272314610288272535317345705990528365884608022430066928838361067402801358498780650610960959325188266088569148107126333293942894869400515594542245939236690525371886070830024489804506817887249576134807184834877773205807770770503865849939169910385250399017163324518199746767824761870585835289452106307685784342836130141068744304395493286050376125976672155964275104373224804701392477668520144501539758332563210931665756453151118093915313687579140638080914204176574671567048236580277840718605531733238098908642792811004791384985986079662798550212280096259401857739114715488985247173263452150445301021259130837542645614295741789615970333430301866664877088053324691037196352393749180775928437619557037353775474604283184085977925814269800627366739256535581297390171838827533730957253212789296597962417837628628303458262336888452730508435833317063074589599114307143025710453381794031821181297572642886052791390184915353986921319311953981296018778097047081624122492688879915236710564379392164915673435095647919998495531810629825299671257476126381084167929983735168911858677900767598655085535811264797990665254806992965284866489531827418369884418396423408786406541419604288041771799161014437841783430136010037541018382721434420244744851341116484886932473223401178994400507283458711330851324866077312018085210982177386263304784150128210082229266627017136311326608912565106480774342810092710946944877057341762857350964851535164138411860091396367628974219150599649290695101963829950066675717304356603310335180941373291202038312234640849610379310781251207113842280634040666220793109761848026013318110288619384714297159002201287080540290650900722998805690705252228741056235924441893124101604716190982169939934666910629629386825934622177605756904533634308718163806660615921396323346693193338478008505111471664714197810934347895892467822168316751899328172361565856851299756576036599734263251097398342300107540159525398715394593967848372726501569119209004555792179020339257219889403614436269728129347291485591284687576024066135425204096213841660039619768597663332211309460437155917161505268409719207705340475199568185175550786671958573874512592965340322267721197355422582141032515358086692403573941438404495061573680807070298543219569585547472434641917193018426127709602854440081072538098354823830379143326964187589869432126207846254576692050349981677924883166544730161535386279229013898988510715223369251348248227850890320504920486981071169450357216741831306932196503846033934041163291721549956610391053428802061761720995389962626380329904950741025785663150925104850646746510674964720426011812297257433702466649404899452193844975759638981765990730548983044091751505803787880810314160761637259701634354605153608050300036376028767718468717093663483256367716029581498518680532865541319270865089201722784953972694303197706342345092119850428776685381721366279105038870441560285880468875501753468032414879924049516434788692472782519544977378228733694609958527523775418594308801396505437816066129381730273107164015475211858081607282982691919238158766162237535780539689202238433262080906963279812311216840097778705500529766214914326244393521063950714271702988313498126917308327124022798181031074417380721861638044255957995118628175301159473262174695828640267280021540536274967725834149896542058630049204713060758216080063391427346361411707030558502963644494066515846660001270624212155851104331275137834403914857104483575511765834042831054722095962148162995959461973693753660345821295171340240205768131080087056129460603040319715871879952324019998396797659291685029172490971802429385897081094753489322776153072372547076303815318389225407456448900993927530412909310001928790572839399408619848175263655225915148630606334155780839368679207113591272743907725171575950219100365172605588612534242286507048563510150576682448224530456910666854775824773225527934817207079046849373696207561979142273904425869942147382002532264872535628242602192736399527323944810394706362545132974107204640102871442868367671511267068944689920323797657460064218053503871919367341120444838491742297961837030894543099792167958716985698508213776534571939551028750863582839732395262228991828516272084533827021546007690277083129059567152907316095183958436977790136637308288854876904003409859502230815775884163854614687428598327533488303249700163058184133975285887499394422965691031143907495344407772086369172027708460333073883959637398355106413676080181348163680129322216491913143053297283699864768019372733411163434264122342856694581687943862600198140720683419264292347980919738757844190142784780593979191465048375546835907508447737415176475576347695303770218003687981232298319904468401320439648629737417125486264869293394145817638516342491352060675787387857629388378431175910354815647802589207193387981102056895662278841821361961309631064458627008957177339770204169179968650972891114933908009014911428193958524313442918933301545760164067821084609482258640638311118115036989232792128836740399101552565305632744090474558417410449378019112484537471144553027123907904311014778155526211989108691185092874228370481875340618653421300703705364047912140062338332475139206141409824274503772918194305493200856132071458648467382785410693008339138591704635677175251566280077898123544197193834302008999267896245226018155622850173483177751427697050424295160273964482361380406085410888935511161706634507934797238833563425383992177081034311369293001248694871136465399119219459974780473857729824038969155369084211905243323487160852740116933337562817059387364738334405787571110809614760797495801850329751437484115097434179596969644047165249526265995746386856986335983009400144461240759345410108781254392658413430037484036511125335702140404334941021049001698187589753892857712552363180043704143844246611721908384309953519531127070388114130450676529528661466293251874322444942096203224759176667420772045299050338790721581486102394341825429764942694786786171882934396462017027088556649584789560877518005671422733834851394309156110558599413393216410965295230879799478828290267344090872219942345076472325150947511710775731654582083684596820902672521074000110217217726708569695986660581443450378745267974079789767751161635313893283334146891942939530408198383469840068466862451090968122432293897249072780709560945014159598308640817454703218617261473003859211224009078947538119501282575862461434760995750729182166128788029006093285209538311587780779395107371921831689535395038843577564204706492503312641328541145995831932803917783845297782914910075607426061283301807931724934064372873347591413687319125057331848180108526336257363475489172090560384092160518530053397465218767834166775513194675781632427218966215976937082371523334997554225870883470506584268382137613438085297448061416188260805732600959745966233041896416187427934636978018935310097083543092622471581045330927535566077146196552913065753427761195043308580688447821601544532724391932849304534500620759854968525709808116193825432050132276169353380433350904225613567535719866165743911031346938861456892788932103798986105284704858835727599570022726963545333972579334747211195157297241782525950706272144363198813868556825000510998407476620320794432042517351404557798472481414598172544248126673159325804079476237972295000108164946679575570449109865291102213178472992304267776762490445617230743260343114437491199226488009843193345718509647273336050950315184104295806766778842247811199087066382065509595402442705834686751771504945819490603721920514627307790299547314547856208034658858612954092062690301004015869416280738592872372257575092349249654139076784998598787626923945448258353726637065203689296286429421666524188664904867420667607694379707026283360297376187452470535953563367168020211547540292482106759069033006521457015623621580649768317273810669811586221651676520851497927527859612083111211850718096934248834237278038341904476570483249657632317235118994223022210922573958714497283081541408741020946726401548335709456048499005519165116949218743087292894967146909216185852338753708204945159236134936103646337422504123371700961287065736972514670617121714534574086011842176955042063908627383908165064818005522226266742400005208525874935826190548070437512555492311624411019421644049743310855491041357490424246718321446916710608428786605184554356692972166051558758332033533399362551807451583774165108547442755008362461125881377790823285864149326546531822246302706633192733784571970848675336378822966311171402192865409650873579657357859750152172349478023483076102527751743214928162406609033220983771553699520235270123284377008092632070391857605920284699519776122938668816997998573577620101753211263987219638591885867027717217387993725546018596147953711405991891942910199260402185750545130679396146093058420348349833587306029461197446389908481040077685463480630810134621719093567445081038156448185553840298368187618369704774489141747376653371499679916405174833745162119878672058908388021483343342211065589417266706724111481470791858185997645393587130747778214805671552622902514640566649232910706683497559585054088066333643095080230434865538150233737571075022504909002879615144433516237372729024735380640740391768015649599397501830635830835202104856814995243658313777198339173583867781940589597165423360776450229861153588447823109985489541947280325398057587437191090513217670040946748765353107453403944927160540333902651974609532229812762821793238054973671205120705226044216806479953895144589504152969060200780715443621506633898325352305780598614584683779437739400897305649525134020198376231433894199086373120232008086146488598179908437472112090119484611591552159147668752430828428980070474195466587531233630427863594951642357474195381522843154887832239228452727517386092131031460998892290576789932498763703653122053758054859298292452717831522464358770305988806265204742395903420464317511259449918132790929339738211584687272273092590030965067823583799444656695307331583798851725689517160979242760086158121675683361576277807090192578840443201531856361162760390710955618458519495814392307953155512130242473366596232640681134302453166810074852798557751236070793706541050061222189919696984459159754349444078653645623158483740804668853539559322778904139751218544321980559696504487222005954743509786539101850303166958994141170051197263159092186517825307373276271388836422605858213867429395611754541947281177537254343702390611250681422108672900582482319553149079299618976863749568362124903287386049239070031513947637358362891345881380534503262678422284894960458925266355751260357268681954961269709422247539132139507591099079709982555100076524303932257391940828618572305586050518363088771620605589612188942038374507543126490460139148686640093437677489102866203550416334625855788407134302333078115111122908342025862002285932328200342179393750806044139970561400791354456162927790650756673689255330082688470809247748989748979677282432205748190317122919209748659194148779202066262305135633367333844216440709147057742081439353885002068654335660316243911523741806807349392654367034729833909542498273421406477899769262119120944523160251167245749780903539380449832716391379792865561883354135987380613980206645665556410009293774393371309608337291549536068022431451710924654654361900667141491784062559392143565549318763790885149241368476250567700737635944941764841999188398884423314914204296618396483463438060558164376863596996599486250685995112915296835187189950334140960186925587927981004662553628494122734984250491599414551467474863762557877119955157352620936613187756744670737814975265834655454387044345536667522675516075028199661011338520795441944279530257339452248930105720259903307358302729278192595621059650782978369483016055408674044866355534318436496678434928007341563205454231903889440570830189641167335694249994779774236861808651398128081823442531151611342797646190166838587220250204010404402841937572483733276101307216288240325855658551965812356332797332438932210914093311743546316432968055342379206364599169690418039183227595466376865403599929556945440086370463216157489306937950022474669600177709258752874443391140168588390919728349415503775407743576924919800644389171859699247949970398908065029145647661855087825243482305641881643174772732075781590457786408280283866458832920693571180975667673122077622202706804152471708354645031955698330528825144264425163198122772160150918317237597269315799754502247663505826226566054366934091727058982366666962959501338857482060903241787202026414474759934320589857802856094670675270594223158918374377894996237022943589210560473771379333961945852857425870453804051172636725548647124506974132722368901921196329674925007782752451406189292052274230992550994975433341345685703840422375737200166773550867003279963104565277406781839930681836013768568780394917481245365566148460088925666211550817282111322996010577645287302081618547606900509062439330618887813680578114041286980667807990220875935014204827719377716885266796310901472605533715162417568944446831359006686968929768644240049235630986307750647174680870845429216741867234474997720301901219597796724637416771173363120640738931363938296445087613327062937890757705005346324161291552171368910866526153733088108256176618403438960525607908088565755997392387310128317250776762507996087976384583782665416918382043580687513877267057004242198069118222483388486753200552530046634977166558377400120001088087364361725132140194186160908497978151799647098015645347229006348223754993635745668887007436853842018556589114154930058285888074609945596507957544380055370100010175203796251471807488640654167938206475858382893468987546792919948685514927146150109111499667682551760395900140719221217312110858597726397818214035098790823123087619555498594351992608340109168498706407682714711387404061991978228384608240729102940281483840221848561494296025491168754746424799018874858191906878337540117695263393393455780681284539644732531060053504545027894168488146378900489102569316737472495944810216862883658875798167365779474233411314383597082805648420192502636404417739864367519622789383856064910252631995128749057446158964582546217881783015672501827081117410330833834258375373452100966829317859025512190356735335095996447720714468586277458656442415550387525624519935377571599178853456734606298229496304935508143842187760599213758996476261611182304976916353328243249552164698844390791055820627332123404469924227435022877444934393710692782997282657441316351427617114808176238230033412556460499885248213999730629338542848823087584876355171294749779799623861109233410749356181980273542781290774113626893316239685109078303595404305048070781874947927247280184859504985268553666477123326427659043587781046341112960180675396810942215556897366337361390219089684626018060041611061330816418547099501249316475082748930449215784393809697149573924874309381874912280367882007939891493866223077182431424884258406123671094863182629219619770980382990153501668143862821153284519928156547726087716144737652455259057244364673504011415158226162581133525932601935481086577485009978165235074593265740493379572769258036018021045671503928085542947837665924529584490498462118372150629618894903705642683262602659533498624633194120981973473979748705913844935628909583098000886824210160507450731705886970181319356166330643474430106280082834774233878542121819502138768717406387160784632718823139575195357641527590848845104290008910174621649099792135144130769302045000422510290414910020608489325580168984821710884857578995025545943669961660981110790333694257541282593154044358496192967230261464857463035260212429817928596509478811120121192682617406445830786737833373077025521789382117731416173383535410802515864909097726515263526873487601619200909830872645372162210260106349339796764714864057140491901406355907466627061239490152452494544461425858001095223839999619071903379107357162507990390942577849895466888943693340060976995369641693143374197075182971626287382725253840361105170197527372424680960695423598259557767010177115755612059732660258733530796970245099561662592995009233568636176346977789929549183427610417009477641108831580394049158268665729813282803675395587385864210999631211122919008063686503658318859553773818316552715347766254323021870686178047593055537346488506491797799146245784056151043143546985805773046490479634161325079708405829684063092019096516335123435020243472835586988561337150888845924552559538635430865106388186742742469545612822381395880830719194670227172872637691498159923435442528623079847713141666322252700624566856332796839744308797440895019651603768491212130517104622912038481550626437044429413922454325967896054453428312623447409185877270816238763160595299249479412839221139204709353479506517676400018431486634792007766933421628998580483595577917666038407261233521368255066818048529386912584038363049490957257244601220906220977502925502311882453234852848374529122818599786212737875737540777367838370699279637303877558430353014764740294114135795041441845269699886047902009012259202628143719082105051857665036538015668878303964716194141182961394461107070491033079349687822655579188398189787510995332891061369197415093006056911443793916127136277746216617809709199739087659673200700357102825927529897325974733591662948091161646387592518846337415373361457363172525680661543658271759710480075688033545692662080467637267812812273358989102756142297669934064575093621978424952161266624565275770192469380824513897471616553425702340133073849234683416715693984981795228149829642486385292701698654261424984111404432490767340525074738835147713047133722880348343772974005694582926531879499851670544752527387589204751239249434519723153462930842689335680704673511309281720995012577904839433325172498976848174506810959855555324394670387160408944296080649306051125470126004098292451877161286139280727755523743362010425164671766744204788372658109577736913476379332082935889759705258699451410717558909159606609252739597172902701228943927522594757441744270298056920649545067448443549303658456146966781753244484354337860101005729268306164128210912558923111241068564933152312655107459637303932083166659286884839946203290704647888921643996243265781632557631174754475449952101360221878217229646411336134381821830755474510536927201119018554157127377766886037460845144001896724284004117332481341019839384091985187831152294191714781221887387486100024526823343248465201624765521850974956049493307584334663997537656049335252853486625435202227027462314813064377127636541546387839803672944374914362968166740505391024287659368081088199626742197976349373722364223133314750803103283792991689603103155957269903316091625109063475534338975012228434297768807517515288819734971061074103269096048772029276920455652119415608678758727330688526342950072379495726972716348798668505876970237731465659007296176295836090714467288687875731001977969163272061518326275829086261258630578675487618819608556818622582347165223600201157707297840811256406553966385271178733562119300249094514418531004939185115875326457375597901762935643245414471757936523817417212458599460673447379982499671999491683742041163201379451257140991398314048644869532164284286565967371523210174978639256387126411179793637362616384376027552726888499911462243925164656692161985050817555087089327353693049819560653672412294163101614244262501705008007811470705633104919557797355225132862114884119925778500332141449158145486310408446263051088654215413814751428369762011320714725753558101372079009457808257346327980100796446536059576223341775862354950423441533623993455731587671423256681123168687156719541232673878106462001252994098360325776402999806523764033576180613854211316843690877347851158291053647474693398521223281602080423612417411226524119054120369984735640545309584902995495270463107116871438823084003718192070241036964818170092735286590282062751904679065768483139568169626371856973874376307309371283130010320614895070398535335431512461351264341759711229789141243972373289846372069482890301364750509703406641374673822260663746725175859554424333532596848443703532135976798725387923476884444477587892000494633328804934799458128059351382213219969484971103560089732071617748568108284643348868716458406993544501677171857425262736045291728334551974949824213150600992625123586827388797316559974827456146838193522516530459520846894948138240325418110524727313024367566264030112386198394136497513480030352624575517150642223906515620797206788157063796976311322444685201768379400541894254919004376694615898818976070597313128742402705868225067707915099627586742984509607084391931283499523049280700579839708786705271883020327199052619112093046693931122871131831216582150913927060529254308836109501710921290292508618167878660524655875113794284807721632623355643855430815471673219597111505089404110586727567066336667919921277012473906763266033935231467005201079020530428181391031005778097988076296149169929542579854077473288190016354524875212991798900554963737630350772047160637962997807189386300886347778937986455366394587768835770727291325204055882703550800849832163414075308982424673011672537166068963580865664090419826580067171193927394877569011674179077134381295933386244374189663469980797076666154280346184914700520699525463427334801970444279280840627416981759960241152183646021344099516021529536412052149808467032327911286401570211189226467851060210281436508869169965264578926224383780604502108270795368416859029847738244487999516245641578321241100015795622826809612966429834003476705527387835990964446440927169244258702528488634104478753305110301299159517852544825363446314451125243165257420205638605366084064862281124837912312123102464710209968338661400904054776795038532187124933970966549804324992721422591800393304595917213436100111849141521733125402740023247944858952558371363630376853435809849529547797266110081307838420633506091706924557321005480111823956081669003861193683563833773698350331274270060881208479095896583095878848901876399592937793854342576345984295419817014185175970502653257042088213579732946489615197026261768036220047311124509307943125147307889185090395714085086412540763244245204315301241509974109221782500923885202399807037524070157784664806535401367134284409274188862225547732358168815891633784147742859982313091435060954163328437234459435959169664858632101194950689427719189991005166019394460773927178573758822151304733612809469130254809035324574285048065354444700563865726502180349441494154983436351946201403529119496072370953054707720952792069665928067093853430997126634780298032462489549624723115084478716337971494025640514909315429879289207848037311662630265716959479587680149830421727461778700234881279925977552378743733073973945510652929375039539478884794972945367572697630968617571669981368871041865005115327480421174667305945393957621335988190470024575048046812586934829751352723140405473090538432358954783094831207854675912119629970686170160004066953504522007019389572437289725316787988052982353300329648077871719167880160930331334178378856862518688024732574662840749985772315186120689781478507156265380174993930657432536272637838856232984040393904582737447976872202042846523753132309454156101484730235748364964512946055412339059742142877158719645668659996588408032746421849948249536848778769946280900722931479988721183267403493843474222212527971678222842108454925883689578045592053480703378036630876006677347337314908154131080499037008608208592721583235395391198565834508765701294117090540613862554720994897173967051945374940652999133655066416222318057356186390204128596995027423533977390407818142876520540654224712191865918997661427979142427054216200170109990036270623841607556871061595250288870413447013256374148182521392835534980622979433425301584181144332830965430087218013426506461997661914391795094796605377025881005336265686602583398062193223695408974525691556229589758647471057761577320153560782770259005868123428024773899105397703292487873889306551750663799303974424121399260937006863960648500723934411124748433937763208433776395719702475320080351826413351815734414912253473878626805989650466331992751744882131153697390990069115012887399115559637153048036963039829106669061901707260977066342695282309320411169649562900923390183872498957042659971227866253263924705470730117452945778823496853832055520486967638395555059992894532669361095727248135975607802905285437004779039757142656566527480688233901011144047425022308932411722179084335077293891703233366964119107716008719996318582881986366586563493861210090756341983001798552551744970180318041701898238834729084731732567657462903918228027284288296210910615548047282962579465572404816772003743567268163639383537192714372234586317415218482153548563727308501377498672730338355085807335200684959101047663440357939985932178093085509507243893235747668785591411651558708410710385976867264065604810801197036313983197152573015168461979955658779731437021357235333910270504863520157505615317436778165289935449780960239643428779650037905325224435992292159190290908703528967260554579609897187343595346547951306643255737491064819518274475960262875954325210331257287488972835946992145747715005374173266902551505421719903769626718990004299962812096575208107431624148145253219736930328712196896136025627066997689260928648702438877886014874390160512455447184171892398523245929049474844266770003225822779934501523184570031904064349478089636561678735982957607505536385102012270946237707110745594030896879168848120349365785301532880764802605836601561438833323420412280675057192930892278140683466105906778795335254819799570536502158887219921596374598385136602642736819011127445099142963445436857113674095823361899054565391108002001941213474556548627831866734274133382938877563909189880634718225018890810383838708289255138533991231358384422737000256160868838157007655528459180699478479881436930195908727233527075286266715576592156069988034332673583511589641615754085584672222365260271270538994170366295551451855543909453161119841485921994226033527761612878511342053893288568133771367498134025074225850830389358131081747930713707891903660576080663427084519268742307131332863286295662255381830460770524303077750547398929072589388674338382954515490806090957225153848053082809838127047628856600999121410650765847772099140291317286687119277164466904368830985399760506963393534791388115347985261370027464088900458716906806149924722434899625303675827346475936506945579659579525827175545263744170305926639107475734215666830230557624871018663618920245284308576042780856788051245726672228585062342764941098928052044247458650082002924962884756282529473631596449102514480657008725716770141139933118944443320435912922400286651631268592729764638490149399774180998419192342332904942062964437708788487337486808378949680948833578589360816230626321165810098178188770883084003134366644054585873429675245949988652805664683012555579988957442258694991477196364678140987513012862346628152569604611661517534742640619096757644472805177131934464733529117586969373993989166280623505236150587528245380571896996486724736321977296043069482340526360922484538106041343876628428905274400713475737411414482855486425442858459993226242021590446284359062881054058327460602311524524464675666074590039451959863254878889641119355482569840827520453766264525025789849612884284220061196732463462318084254959871068943177774944267147242095890515849292567989272783622862969203864668276184153958802497495811667209174622522242423181884303096514150734323199830440803554906158672576965328412309073162150551697810603265812903451654001564303642745906986706041571989368136622133808146417011522360372597592764890593649421102682152401980725332597044346670562958993663676826052701996724497077345763357408301020611113467105461143957152186326705806234104364206456548265777476089971189675168975427484719875475156001092335701009180823845026990733512170080695927679128373941825690585534186203717015644896589615427285106046956702841305666209415239954784619307902929949889196798546369565293576169128927948150709029661575713550084447903149584109806177840345206305444853007938293798499495672090052363536669779433648451292704272190164570650878854507108031929246211511723369193303488297026192453166625533444342557009555872703925798499223595103616953743086721262834393507601358833042773421817149169380601465594665266438729793623664176034171656063531410175492116034448369066956017312084025831803232564741714037973473212147041816759591340424482354683707783993406330117409155806617717179049843679681129699409618569063799482913887594888576570437674322899571943729849075334803653075612702707097532630408086897089663018106604100599886322184487789103549071409605191264860067879602566770512510566154945005488081126722321762482982741395351681367324347748438089855947680281619928259519498073344782341423498047589446873969625759652492268472025290724691003920719329087097424105377376824842589194789875551959977575561510196851680794597018083014628179238924460608717210179177248964562448475985854254869769728897721742097206610079776684567250634904374940134069165738515291772223308472894125906318489391316050872564410134645296673864735810291749838572100002806061531956278362354911379137378615244993701520157889501531338977344789938800438483431672738740292089341059521247546954288227651069341274345763436557707688338842588185422502070526056322850666869471200272173178136536005929032170810486304759502060752443280870114749192923118834071616844990496914139459031394953147575337506888012381548218089971225780583910283327806986224194884369383964550128367894399612638788244878427771272824196656346053229478239832773175193037560026732553663667524480290873872401487251341544248683397039847800530112094592392662828655108557210002204193781725758873495519378091681525875440893072308977522479153248560540445324107944275734227568813743446918189298521489713421346429589559978001657029983148638779827494118444032242578822441728996048238388895221729208572596035464251335089625942194481696995848748842073188898383534560139318306771983602703004117119875805032510296042277408728205616381990179716727765049420518821558380737001212511316015515047733333927200770033006365908500456603337933983721078149113463023913342579891826405926221567054518975585589438902769032808509132541628756765766046132394203546259037798177203132436654812765735444220293604167930746718601356763647793968404764385952591762101372479320211056282545655856268482172194004902535623914284699785291112402237000636272831615441774171090925313293329809771140137007187842712920776413190640246559922833603762071873821776997085606318669255390891401362155274437765755486294989125797753063387965824236682470943151982057879317343904735338159374054963015298855100226472012579439993006339620220766652224979134420905636027147099406499742101541726010770099928705567449608067707618636607195344525280749884672502680898175465472223679802604780961474593866720080204023165634195731247480609212441330348353956522690907607023192580486370813454772908355615585840326857706586421431928488695310094793840318030823846729472808843259104137557446676313561900929695111776295504629208643931586550389188828726095193580748604266665928494067605516286768768899474783599788245869742731009728221848138499220601914158792386267266829163525929423311215775885419604966228846597598097982041079128039503711518820229242628378444407793856385132253669539292620062084711862912700051093762339677302967368816084793749149585177879317665304635485362707521189392671375558366911676150602906062215764408274128235801414423651873658846166647657366870079701986726535324648306534491654236180001394131572753672326609443521849385465204794119370295211453423989876762721062462384249146105263194962385859064064237516290381028895147076159781491919877857455397872106495704386017727696149464764057403391309003348111200805828098876884403656240322359709412951089930277726924185046626481805075487490560313026916065588032056495678592322694222439010284795755838482668223765352411034034598387497207273481392528672987603834869542024172336282300702777061277037997062036416810835766695468176375961109393235543098870386167520259957243362052287478556649350475342468761521342052464494151572963617377577101371958213116082594305256064549872485152981064523318698903964896034273240150390033296093386032155650774057456691510625176694800313784159626235089264538220470741410880885525828073722486232872915562985615231767969849645804350059929850934815356402177236178458235516877318547445589177172194621481471603051679267061544194236516577962239101972194460811274710569908395811399465862807422582014263327149197618097764819152584150152385414062024475298592058716844894700973083108519131348643953319182182266966047713702344371167573232267883702284572231531360750143301680192898018292170459063173528771509974023152667911666318919942345119781765067899736606662046901406458086095137853789256108799181221026643695202965188060307470459394134104747936727683780422307315212283986715983705778197318904618958850342516074581337112515256941060431500372419337173294533668624702847340367630866050852598306132665748707458308564542331539304694524571844105468656905409504219181986493575270514126549284157302823726309000832356562435919253982358707069228544431873612184310820709292353804125577119935785576973512469551253481890345658321553533938430268575366072148497728544472039278539497456665038322032795580122681943766217099579837636552593359290379496464627077811731304904161550559455091498394930406491988807478801481496217352550769284621208275136204526145261240907197378149829607115002861704369341009460601658355869712640719633375283869443346965060877843267423085141687883360825574412038993397828536174328554963623494076945046690534005058520185099675654199655408102326984948362440881692338601762797869141556240735421655739914885043562805527353652719812832409066320798452431727245584571748557450165258223265252431012324510500339889822649045978429967240982140269776946542992701825781604549021266543993979358151884708180812575191251001409786823699548191588640402307666032692237058305271221802861763813215476154543345727070567587418126288019625768773479307320149847874261446113018657961707199518642389347117647291123100942124109216954654432810486013927471461152573281317909475216159798381523292562401223932377763638852681747909447354994128153949199610375883623767281836683930954177245853971783822106840257367174905345248483303748627292535538133490258348541558069342919282136815860116263783543518195520752773840773929691165957720419828700726477572214351536730194754057219128736140342313885869572887219037143846498370504216725191962664385817253405989351220870313579461999996964814901193464860772523485787166645360422723427051069904907115971839142312893072184474882929499530102306374147036142971895489041312151584634404575874157506393666475878159699155956903157892336503326526201860959236079536194800675825786560809549057186456533076947411753759191865623794005438922957452802620002501410026830211905303380338238885810898156389596127890205015990126467278642815596559789301339212620818517609754121279438450821911354768878853926220590818956658229456091873191977132122845343084009260690302868821077737112920600426510768466568070958524338416277902353455247245177998637874954968708186599415173907409916208321679444086997424683014351481433327506837069036264422637434320966235011857964652049196124950381441753994229888643296762818346365884006175278467149824062444749254736525661611909275990012627400648971216588869617673828692318456847587230777460617872425393509970974997999713309979756513831021719130469502440002103280051676038248132088965907828755613961591893691828591817593102792208685878813504194608665866479655057649043717288109302159016559803134376417344698728265910495920683707741433302604305194433013997659127101776458624952925135847765635595291708393458337878142685693059753026389496250962258747481401257820523466875181212692209435119347207264733550639219609001648158418541453671002698779092402390892779736506625196927860992447277889576282170804689255688647945604270910975526013676994188286793697264132233930533346452805026188332624087674271093080747663414791014604598938208446799512769890849320617702639800085830642318750015989856691189956764209245644619760411270678787523692063575922096215758677055752004860729127336186910169795335309918012439823683395807709247230105277522493501245837198780529194463170324916883051489569752479833047996004626596004771448981863901096656469497746947838483066926675802521037916826011049864429296595200678368436281750561483650522431270060519710032440014879039051454435295928754735235156096953016159240566020019223676296745441166964821681482562709826559535163251749992157058883634795543945084644231799891782091390749050483563952014577777746973881509489683811960262065081111644871907834475159255634641739069350670410669430233499138220030166346963718546696306049041929469042918462808799754645381246476973528048210885794520454265070339290027484847823493591978339345238444960963535762729867928526851186219778988082663414738243882617777655078557360568718687674928114655952777110600490545137456057400672547194356187931037891600375631018809573098255427711642376652501054658758329124147295044439828544270334647906049356314259580526130539639777031670081044608527154256751095776294434032117513134420819984209381727308264904303968709692515376172414069383598599815552980449905570848997939744998240587762049468664154570762004351113992427909388026150948617901838269113565221119096926310797669171896877668984949103983269079463518226424505039895603064956777126203275754795519798759813612832697450139070075668763076300024271273620919808433828391319806740982989806767889933625266547727154314025711007090249156832127133367686023083215326880777537980542833432695170675460917205793889823750659061795562810941040087026956609278497423488794177296428073698058603494743541094985162066963014356522516535817186252948630336965871374539008049069521635611510775558341155170555803762475598380919735224755687763412746085900101884808754337414964058634333884926831909746509875808653834021873960325643798388119506848093762311123871065409913754896886377882460894492641460748055948527487210224462637135062384742422525386882080429277717295994877892709086481420589099912417007300665640979343714282489316720673422116199458348581450422726487956861873006682876711519400827073932037033863476347627158937139148130284164757577036423926398229411946616734311950371914857262008916787061604377926351770429181099789646581760274197275078880653852005584686232715404848638509032337328436412973659520996403347883331426855813314614999258067720146823094264839202470495647765632189663224279426775877337696532848547843120123631660322746573256583563236213443593331448368429986980679557383021814222422568001254307136600232324772562818057840237169256271561305656158950371977596195721202591957352130005167147162434260209468422784063258308918061270793162730329669201420595310050372369138335693824801992284931793174942510340432065711094263160548323841749017522088362915746954994131238081008177283987818685603864951803712399114961008420814370760422219016857107927029775489964760729941634193217784435825123582876784548675045008233618208684794814880366616636034225813498283862702833010407963982297617172083106106343512908934758659622198235564486376525680842654660063297626631918297527676444671484057255746148070779872506783126755840456131996481171887906221996884841059238852566394485472615118424689161916608889279274419115203793898221498366434386941621076501470304148474512040820053702725956355836858599427511149514346736629072401566120019459865293254896977937923738978004236009415040209434139622982977317051499991836893426864841545260186557119340655680353322360743941068167022533090108001372254975126437347703728867373618023788748550170305840749554027925117560196180731211402708757672279720511442359911864906176392426621565686158075987888913066732161341961940652342739547865271027188563855987524501469081436953032671873457276445652203425159092423672652494739431316402440483177047525798444848386239934704110828901542039183798485722758893038564424538996820546493131031437005023574746834960980257308785592396244299206387775199180109468096042596473693902985781925776882369624331364393824723621511859935166390051770626984362507117952178688978820828450246487302921521360954308240394897829992533574669174474244064055677958737037102571837631071035067019204761192348093850340968469572931079138977702999866008750130517615948688021273099205625487325085956576413452180242189259083745328652681961975456419505267563051348612722898039538823524635996226937177545036853951940345040632213543618601385689100499358886520263053006834467307895837805706409208765153126769236161719214194782881465203534315479466380752463663528906937858663010542859241914290104726010429470343660461288386106012795956273597530283665247618785351203746168415549684114934042529339061317671225074352555443801435636982543250588226020657711562406144995872361717486460495856990855628497338749667130985977492981038605290313509321858580751084604794948977027761416993475630670056304742454329317316950456731629645624649232769948734565620756348387429210933467619452977763034038004060937076011632816148104069357201666689647660907878567812323225273391918306396812806475214406284670289103485172982305923214294949943076982286381075993895350909597092473043794327060329535603947688790928358903131321583173838941985304503221902071890111216613869393200769332206445359794262314043715313590083266063946242270020527995760422810278958774779710683890376311261482778728479995719274788644868617301415209865147037605084748351769040192192258095800366180019171206165355339031385566546632772881576258882248175961503538918136628811452160922044086130299193630913672037345296745234020087387317229443132625545718128031045842042430672868838856064305514564138961689584093522735158852072710515964686499702236105028012152133372602500572890613453031762857916122286934170428312480690659710151666227301274017059156291524165308714690965425902044743599780396326615332061003684469453102707315375540400624321217573757935541558477223585364729653559782323551958503455083720187331644290611725649289302435113581085308376567937422751809778028839529356061846235076296674007445960532149362854540389095894828303659678401045673800030504236682074091979361078806547685245167621472139407605526791221661618423836151491364768986854020428946696017404163941080197508526314625381767043127878090161927489750363220045531278988531210164965912923426219867662535535467013526161809844693753359905890937901640716561228429703194837094314858992745582818656828938616912062892328355326038196752611505616679152579844012818999339553066710316559394498221455412871284042913732080111873252367553100736879994741252657827932099233043100994723794636120478748339715453444974454409089413781920492712701468892111685504559641544485680854782702326194516074414797160592315531928970602597192186976024647921401334059414379203655547740787980682507900336759421668716986678429968052205296263559903939208917987964989413840183619367809237452931857184152724908487500655626720395010906145708188708258623691696837873268517834394625770921673260729447331363131679985528752126053730778729629167433790338339987660910629801626060552728995069992451856858640851906906988676048515954645668591737265619956522941318257767914634625997918805698214455333322351239647878938375211212864453016273148230137917125118614617765436700572671184284975825490040546775038148476819814547523667996433825993146861881402036263424874162210363930563460956483436085532845550243408665792902274161720320183421879701957580465715839677446755870841778042631970355341562566004239872329752690572482179094010844009941680757368261295939872908146543303104240708243663358260087851725470577120973800192988997330628223006331270671132048598862832649831342853696518927736650661564024348656675827843866191956312147473938298875235499322081634635969145961793750631037939958253837980131759021589596376491184528758172529763376294422797887413158429343033987548434648925372328010332012823651316007183147422856577809908105025128360824181211195665588161019147238987763376964754150804878395773217901637593824998083644347007716891886281531650660401466585625471890692153466933675359371976653164838692057765349207344529085111514593241327193379832572279957078672386799700251018251771292684872438048753694389248257817203286486213534423113973419405546028707749897375483636174306694725920722925478053315179128799764136858764764813921620612486048031984509749481945690719051980092740692464899526963318507373401872435296765026280915756311614625093748092072395822355612158685118726939932879332896208918610561237051059877438617649931190445752817801873142666189825148152627110166275423459787768191565234215854388905783680146696760345000278640469735872086391176504707115225242739598993277695637759979410988138721760648277234724502325873866633254188164743876372568794012523215759880685955065097368808873336264062415764360680830471812387064323332113290336503062286402630480289678691542364700399110543313024927931945453719373971240067402085493638973410158167986246427707472067640999853315671119123427980771982950319332948107881749989891090073920241998367904864442422875970441387818846621292206246222998483014681223208565438146193558497884486951404971182046075090843732717804336749786394399162190154472512193803541371303503652924686084495479714653760903639379660297383488981829636126443014439954448166754445065504892411894445967728199515287096700028712688419264173798387648336012647167307068570959753344598522062309526782439085776130044651514903876254478816894564013384453837228306103017199840974254421877824470755274286072262427262665795061525873529309465480270976359997967755684857056517794515378719457184071902069744327187899889772231041564423158931188629780798218822865504480485906072742872966107676912015389712852698760093481212130293853083160649613494321430658533290761006649459442913106568048770680018809409187335164518627529105367383037473216792851502657591077686930715594910301256163031428345523502488426981913244395065047117694149985926724970111649836744994835282829392763523486037795846768894143169725011163419944292480506088781336234054919788859036150661595694402724816725092266180430805412269902468007384165909816150171260160884167127149062771766886152780962558045675091301358297482936566573959307283366185046757348345096445542660977645844811145650308639027596433195979172136989874786007574340861237553071144010174411070438568295905695255165903691868514675290532170379790527464796288039421680444418010928667746688257955271458229610601593836679617268302894105321512564692256778790067319460902621500153975996944396744991500314970761277466110039144924097741785812681512055798831397749014812941460327682556009301490358501989383494621522050321163309966371556213259910879363071091775136007222059505100175349785249207858813355769597364928334121662649396327313948090925527289689459646481201738464371476158064982763274451054189125448496328562808314301930921870908455873832210245661103772479981286404786363978149966449729447411278536212374788949952386602919698702985215160233511799698113335039493907051894976211415134301680762728982950599145532419446128158296017111907867135708306071689374002986303301129983734133084711007348359724034259275685516217616227134846377345575770744449546432647431094609629359918278787818248804139135282730308443177863399932921970595011091004868123155454024391811720003131197280480942985330037761793037493442461818594895329512446634709774502775059877961206504533446446990459956792185693742355196445644781431566859814967355874361028865720121162002101506982122088530175104478510917449545856583200759151824747056896849655960481799416597087646444288893405307145577420601554112285077124252884141738384235553740618928242779217149799187657355971164391577086165275971131127803657994438766415163978095231261795434064106845096103801017798068123983684816898190649418741161209597534597171926667783682850146946355325545555098226135710498692244934679143092590275791609286898336371531004396869199419550784921007093048082827184540219928667376362687874078126704439692897422264798478920329263265301955722360044427047320975697357905916853488284548573846434909033216855241784095372242345479142000347499379590716436401964533566651946334627513162653959315555444788307049259951912070259515075514073329081787195971235228587200094492197904864249432387278928760854743681595689626593288269970283961814482924029795924091266858577351892539930754946407958590791488200366781884991995131471759187872179793729622970791658116074816815239623803029734340839614746466018573534972621569226151857355907847085051441381256801269528428089396400262264564623896947186733477720102167889913286170200217173906340989415753638787919156016207323607949736818325560452372072837859797452154968793349474784195356361729687613879988077052780511926343679209136941223882422502687272402347880867768013749910469475042825010217389906643100620034336323314805994722467095320392658163735745988827364452156566211661751738749276590942796956855718806849263450208008142059276924534076155370987201104247169878770323248786451933511545664008656630290360238503629816275242536341448477638800414245317865117418979868640444880755390408794376730688729234909968664604425098908303366841068211558694814902398135057310848649028886219825271458280908279027171055903502389202737612286337115654941423062541546543690114419615145917791852375920580779911610435102182188026499929757619219293471672249937338616456097880333466676171705493565249161498267922912201378628095491153021603889910388349640680701356250687272944536021195949015653225372729504880287277246948630587237094928236263747022552973234846758124070636500185539530800260260642892547109131121256541891201110889602395741669180192185984238791984432350664624927329254553552188868113543049177031890699320151331141269904656120400233165301038614401101242607554905091028907665009300906961066314549407203819121652737549729685567248746903055260837381019055798579460686243843611092670166702516955175787709106774906407641903859260413217195918015546699670094417288521116455092190904512454597023119222149516355094641271999482441324312615994642297349308967608872791695956991382541454056684111361238416030584575722950964946452066758831916504029659029196000380705389302900936711518716911258362139025668939795382211453704180027869626724000781517546450046490231676824817761836422774096023404694163247596299852899401279571735983642410821056245629935733392504510044486275158594046016761155497711475049878631880714560267127425189720518617842340713622619977870153020310222463751482869808471854089499621429117190893227990793091233309022214505329844149809614209595033829349295495087830060713500957255365699961145975948248070791222328344572883694760805144362830885058974367229957548563332165166237379809450455918156951722263299738623763115816600168086703870996621086454678416682309241186944211264908107272126476161673659769297788491772493727824227569604152659848065554356983098286565812160822313284670458306910440925279081059995837709293027004546979553247951387361964763476375096403181336978633807445074636077856029664146298438448879930934307647293647448774721482185246550948415955987082732700710003723555600297682646884853407801970205120080302086377999127098690735128341090016319469643068708449048260696571805771859727721707868696033853623230683664897180651595270386917055753031997644921296660451077501555619906334818269961358429687385105714152651716240537105954355637091865931799315355871301296127674452890975828112951843471228850588280844357783751830411239643363113836408553943797537645526177989501833094274657981223475894331939417417855902497561414790643467354737718880887944777104267824197742330792321779752295674353820828077375285268016848608778474691430914221626867982722555792869431713340789291593965246034825925685657257884865115580931054062165473901181487953296938440563912810895231404612746564764800990054104000155761754884126612563945767674425012725060562587538722503102560991423800645995129507682529166007334203672027307182872438212975565136276007926739942356059898428755922400994908745974546312811401203714399400055019242400230908311865260606526784515398640814255774410410087837281313464357382150315537316657754166025442528661389173954513550553918421077831694925610096061690844724112756767889030218921846966379716727960319708071256336627325876713016878316463961437303553503189229437487190748805699626894438450401722507344944171746568309424825907744760299254690884499080082909935459269419929050562316488493188426713836234881590854635756887110313048164835690120157219526274514733519906516864790597622640529622354873000662708282325456853988138096770862032467758608831392946080559370523084558102564469001959894167620701677430152503636338668236701151450661407070866029960670447255109655071821305494947425600123285862683150835197717550178534457066547099196844221162567911472821915306696237057190211907050604425235765093208514095354941972849191548212185478136635555534632771892165220564253943930246937421312645898929516074318062764961498853264849078473213826840967783642056494884871731442537377023338946839978573815957420301529595428076685404513085415661610601208875951216617432870928764279288828890624820289839216843356381844704027295327146381665590074374128116871798739582066862262826957515477376594310226272823935096388096068308544266840359370511323492458563339334623239192743075371991031724518025700093492342438528511072140213422647759853426268201263541721815795510742512849047160744748340092891143106441078665378758188798184777488386671604399207829241776687228318878213527291113554068284397079740196052271915864528593759575399243681532619169989022493276974413045436441754988384459615711477393723473506929329353831492999082650003857001891259001986399393009583085411224844453638961049698636166174504892236220727013542075879068848978398344735547560951149133258854284390397814104246014690703919377950127191743780848982721173639732669113514406235506801960954228967720069980542705649984446245233275148298398488576113260917182319728491078039132806736069788335312424701265994717803586917445530774471101637294457928295037602427421869903115395772387336746871404036632698965004987041909729140456451524384565413741359490913645565620471817560122763903289223839474323776103761503297932092809591405898754047061728737644603366745489851746004147848732729154330194289111587715248997841311824686972957798480934203097215243058694712261779202494438764546411272123278686890197837492816979793538037270113097731360929854605738921990282082468683500870450875967032895799097880432108985747744786465462515862893659966296134541949631427712090625940766355851841661462954756317610999682954515230982713614628237979450510655119805357622848217851079086016009104098406965272588987632313936802339150845759740789314394118533832981363264072400226794017708247246421726994076299634001080747735945018888062115261265204308479396837421375171138744993961831209525941192047181264932250494835059942441108102744097679238893760708770622160040315740924691839532222940923589128759960427339695524746567008060862742751274259828723966954092004217529520344509202815566608944192650836363518478502652258336612527188829594004879530955031183384537099727461875650736727692387498279879300885061865584276931516616356049325115930025216305215841397825730649743721174688939010166913431394962907994384449528034480120560246686947398408394032777828138379284855410434074585043491558015273739482142394361992665467313306695140263370103937371512377953515171393659661843285206013241388035153892995507379274356677098382745564754958409606658477785875599987105534349019609057439407504614984589244997790360173237114184559151013826746460547942848981602369631779968743194811148334611197635681635869856075690413699567768500394920413666857733659763949491243232056866741721000581879700616148638028774678103844925437132709468657172719299872731064935362344133266820458509185454675083073901088311398875902087175497070508852069684069941804205151620627424527763124526453465606703889065416837705285613537503409396378631361055981262841149276794664531549984129912529632419427220324047991644812887394504419057728064469952092136936652742314600315197415826275906739454315937448086239939325599142704749360269017349713637164201404569385385269342918710323109187248848612383843948703831214794817781671429288542311232717685235632632638530713808677996083674788633263813292058930054830695120507994956930135679480965692261458918254702781251719239645870421438719269011105058785617121381432709630887358197906982290739304237619412190481506272496329068779103071603099748724100098675097902351764939438098231704510902669363021739381732861480374661015481492293333824645419612335138211157623283150048220302907054542602269564182086910296808118966936168922447724195282031069209248015398746967070119208666448186331413810854343367354515795781333528800380351485667393854920636544689868042642861181263201667540209081561244228429903487619512945908890570089534386841755438856749444078902058308120311940131260435172722533984464805816838182260267798495122408717145690719052255423768497312630890894137027763222151785986184780234076602896605539398953617126158075200876057876559966992487754265648300784285292435350702209541500804825408244706242282626176433843453758026564728130925840152491972536466325185340706885697300537447469909898659812837578730399774295234213576811704833769585702757997718814251482740795987309759365238749414865649190054816367250502567744915677961861728134939951141568036841634404658690749105567487576557588538309675992165872683795037734792916512921204781566660695112660585341841607815356788577151277173298781571947091900095557637910133722862794569772443426039329175188158241136335819129665385074928434088779472254083264276685746293376747157225436958152324737953983143348170851585511927422763872414829736086732428558800303581792550298719786421340072417531184184457602347683488609221397256209637490804489632432029091590410717172843455132767723847128129516123095987435313162112860187787339901158571108616650417851365247703937991607176369786881770341459316033521398381218538964684431027188391455730475310944576384462694127390371707874335943687989139092088287528591577740214597284318124402936488632173038706391093939317714780725763089610996614376085713100684424721111600758072814817563195910047489873354138444280211613824573529357272364438014883268291203434211320075184601029264994247551293152628288553229025290730956385696095322414831800591520155294365677759094154313105394005915152527886784180449543627686754462326521740405089986322619788126716207601560894701156815710154283147804719780673386087267486655076419847746480825865902173893467695122370490497836009398394941191512030395328517147244385272660124338242592112830302154822509414464836498557154381849294290665789974818054542789603631600687568143651522495080325814481837201453510582383888523952459088736848576905208157735614480157421938314417556016542382289215552439892459258803949662690823871305326743543284383197093027319505704204870618409876890735303566006900294904123940628731671104583973414371974881055263710145037898406601130487425331228134834724354771893833984588475476009776017367342938403517553717041561129194969207161912620671280311680925323186421506599450022817941048970404672899876052678773746526141201766064503744905495884339021108932163199909574485782343427009511426286275061354202498106177710202534688002733804147590526485121454292846449267638449369858703380008469140011970920862326251690420324094003824805810530175580172595767217169798609819110555388866679084727794795626467414120800564236473027004852058335819745271903377786969049495516142746903613624933487596279334751516585870966469387185886776887106529286151882089071797670232320462824072654069278592645987259970006927840390144147480405725372253806356490180880769099335131212085264967414466613419921179744085128538566955175711367428386486756662855700383550643406517458154198959426361850696612192921257463539364210375574977302352313843051447922972052814537895738761418130397741510505980626184154377795319904504549588761000927491340236164397555001248446846797996367206097537624828117277568198808863153358241175454940637400710273466247699932349054203516529076716068893775672248810180183082848658636262140464313858252068550626863395838916956576927063244734623742322915293546418230358739170322814707208909037746168227994309641468799829878375853194040935373799624575127377430821306573670325774307276762075403786307699378658258456788266427091681989121037157578871733084665265547820645368383639063572501769908165314931105732530060691902358113521715557687313173511205074541519715688337466222286315787555063281063322973732804853512532001424353398239430722678609354123565792335899338165189961008321193133930815784464647583145283193423506644540185932997529101699605605273772477421027320566280272095600301353471543556257803647206397150428318812237727013808901297537222522931549088674945802403914501880392871128240885429292757135279488542445658087302348716081834361750138661665808450747929703881031787361501875606393905858374322594467214648766475317644179030376405985997572819818969578189221117172397844186475588249086085443088371151519998147197893569142317641136120215569629414838837350190727802162060781106771915814702330450845104996622885131788754808443431610513460812362436990239995156538851552315609370943884126951658934265550487704891412001135035647166606546499774260594384401183682419230728066054978926709205060138092368181062384828547264705959513300822751477851796820276675159867449902355938066160003099736906668319849925050605788243589349179741626272619635712155850333164522533284326957396700110282905652211485254286169236239773671094635787653372176929871608382025480596140072000503525675485580037058834135662785429687249315020538060360949959550386571167040736246307711504434766622440893150071034235784649897511482933508873129104339796808006392601822910527122840283390915731205444862538028680431862843951267124433899711998113996631994708141461275273634634297080083594583065559586144730138325295067541959757024241990097520661074379475902411800763661356193080968487135158702254942232320156468924480038534343029825901285764510210227334707951548207144708798882492566939943563106229892111150245797768166963847023647152364969632921214262720865607819601182344098012578349365260315038080358815159754524680233384277515508806806120301911709629893174534555964244032313327083165017181264254748000787225995523179747928305888046682630267243075337032506391205835756161136306935386918300259794752893521791975551415183485437650163698055929351511148543647206268961327948923016295123789355164666049750417675580108305140810059786414396993689722331366426494066720829071365449170540381555996743912519244438033370490215006851127963029430241947174341660131165085214053237551796439046131614586966593561182259120099915557726830793360990722982770011364606993100588449931301748578353945960711194553974215865254318840939583168898159451140686066599213538013757641662695627357356057123144828275826012155840071638693830856222067849213058476455259313275056550301896482039663855127875827964521842681751983681401337153139993634573690839783558432336441674268308781771330657857666819852720997915878721926760065852337673995863289009164691549583280132376401599803889797937902500307493191973481433903926447353715086995653675720959856158528092870055236948010283303079034813438209853102902061016999611827368048225047854023574389991480621963502904483428409841180703579119736257275970894495566564637986820336194794704787681706091578464973012753889996301480389823684783938633591126810672784974066758426873690715944009495200897529655302830268811551783078639425514996307260916409763070770633045841312132737574845402410165649996825059738606093848086566973297791227067979914818816377429213741786293933627244666571020818424466337221375290013744389283578574171288788620299659597242785313299660368296100465534026812484303606681559998423926669267113227660313374328342045605273562732777798394912239127980697213918889054042529245442969097786029924054459192134612519079794398867403775273394031512868504532889395619386929228229547124764462937554798878471339277099296179488960766326554291381185698202317524931192448329305240096165198372520884019819736388279615203233766311342070007013334050144092306114797799646111093281935450032377603593669695127408254877313843587916766114209026115513316310316708904602984346447224749899658729386330383320339344757072654004589419330026471173134085321350307650133019270262478114103122375249169579322629349446256431884951241258088664215228116654241901298396157632970047226166300753899789347251990018386565932909028935668897870991226100995240771053197555886781893666930128276151527595666506504580894647619051925378302029409863061886048755420384590668037163837699500692528398887958251119863229428410019343465398351210186720085788421236334996688475528922222919314233191567874835936655770719075250785230205453696454874095701466660172332158859243543642278797091210241817213641986665683524697824709933677186196651715017974782236791379116042982391597506978674005488545881554373367346648790246316862904090778726739068105371770709205649237325726427504824792166107080708724025950355391352455041676498244890609473299077490086868060085405951063068463787211621717985077442854439923368795953456773177414026703715000091020776383580041119017718840779304093273766916976883590676823579275470322194822677435018322322376826947595097336551197818167693005431253908146875109325657949476439643349888323951969512856097694112439031043297107145458340440151548624471444875744365925152099262102771557088796836965454830164295343611778576843994965747208359449754865143903795120967357664010438438694780661704957037672794173398719681067127711387978173220987976839276808172691859243068410122663512595306203906766019600177545655902480901138206943403802918272730960897229112933957388109191123339127904090245510562096553095400521489832132624331964231187690398745405917020397524581917140643512946915130854204838213628908848862854463270348099765647723123560487501268837180229482821598321895389897544204054966222710853209589601508692010404082810633047333183673090894316634758826236007693929032661404757215844459033150991860618625280058582522074048792963395981575077084767612170407704037409837952458462376160036540259483699846585876438644013607027615500663142122447743061586192400753986438431941055939677605614533633053273992888477556152971238229630196181687003427367029545906284099236277765859867897127316215417344408791107018504150818060983735983464760259633928407072681457837040160225181468868915973878897749538277878104206384854169724320007005573485955178848395783453557746580584250915520725921158969360414435874037982252010954897724082465350458637814858813198372129679553428459350750091844458723034529521764140405605916113132993062958779164662158593507402743821172321145473129798396417036692380392877278958673663004385565762641002531681646824788131245260379518909759280599730437114167021851324873358531877029876262919151332855827283860040323579389151303057361040154610318201505906795982037107192136178792396686623011934616622146420941443656230040195848652957459002457422329339397723776244085852084550194313684362177527201481088499649202890667209566749709052544270180673661908478955119010013699654455436743799077145508269087932105890101505818404876036053672986915079726325386536550252630249132805076887379769734225341907724246714885783428864218357597214914936060263806921858063955512690786968451363656115718205701674062309898508639784705691323325277937886416336688154766718220760798600185471010878761122168323678310601513238011624936865749270977336477963192532000195960128400539871533928183546968950436204298898347915904470414977633077917008630208531923704849092817723585238063003488194366182479103500126783774188669884184907681786913577671528820073744035226558799547069971854287439821112068969746863557206971660804538242633052636401868377671713058908931881772693233552981754210259556327569482966720784761913067726671767396871381025784191988658797142625662041963028406618633969784022905860453792842140690725163393554279469722792272488723774688084353449272571895645369837886118578544829877442590789905594529273257789790764299063593635842666183569900006105929999911762719477448445264752919766398679698048279706473685351251341023825092233239609077395490404231793914580291991937517338711534785415693143496095755177058449151653974791766727698169198935435967223112957141623740996096669343356778624514085499515230853867973951194916599299548665992129523569981838187271669145052273202290791906747633210724603743021142979081421990797645886585731419659847968071545752284797675095596523095252775952649420414795113344432064629882677218709549057501131683671670026186687930240489930605468608539416989412297290930379926376275861215838800585234212419715334665153646253592791274333199147255195847174133378764443670266979764588638350323040758106838678771782036310374578935420192778726916377469655467748693344165828199201742140576597330728543319807092151268563132732237483539103669275841355305202798887370927411211780001099437600074422730975838958855138039848424431140689107579078688534546461730307262447428482394028915904727325112890126572669184422599639333270029171154383018476131332255567467482260063775287799119401371949109954659967529235454579119473205832938695242638322622548114593202477117231067658196919601552085775075318370621172597943401153604216778104779651797261183534302899143062290222262718258265502718853876261361425131419716262589814013924011743098525936045965690411977626817945360297616298052136541098476369266984755768535363852380148679677696629649492293267249929104561294920680129726529206513931633418285493657357098885810716578290983683919230472741149335757445341823549175451118850697476211092803470887949094639756012505758647673037711383331318637779078446566848304246823641259153210951458784524661188944745621366306232666863045918823689074679292252003943851190100128388441319396836288981144712780179204217898769597312687224748564432387080633259434658169744851666987163943545992324685003467522772438164113922395350974754625254127240583520108219345489723400489562560451376128566421101208936787528817175804110865809452460568874009060649686154519309342104367169799092363312601258352082888991566956740471894842279275950682283927344138702266957341300619341447272545326636753462802953941896991131169494386886817744708960900080794914457119635875460252968419459293533443385010689338376909357346852767939830752186306104094532519696116091261954603700297837868070674611244503970455333815353350420737516287305458085649128602813765861510795877350286181645416545376561604706975322784062806798400510063098024264530447943470994283691216377033979819278626244123792187062884424723477554786488135438243488096107245366155746022557342054383915516070806731130363133433148155080100377237527037259115574632968804828219928591975031648490709805525253168971608430717126818232038688210118984875523372159968338636591517625779226424111969043125766898665953344437082368553935868556716518215749557504151175170824672280248612659938233436410090080848096527361907079409278584592575765326345584884398779066294878952602257580750905582302641609192975433539608585330889633600011828300504543571498474766473772077468584849584542109990497883794713292744105286546633778762210772443853602262604348854572770166090198328933851608171995053392415718594923253406183320042345893742549405741108684695152130319900741397018464551156204544520375807435400184475297681297750442982231189032925069542132995310710322402942374935087450172244117193417258024608090015525830523478364559578702510010209920406786415426802299663527255512043332567787144136453171819152039975186277482997647269388553297537891863785670522861590958444199587777205242176604163994799285751263096542312558191315023090630935225198656657180952646483958316096616997413299158520058959404211097029953328746172305575433321381430858081761179125627188805794290355777147957191083644557529572924872502163140300847786142562009607800270059546856412137036073423474310189376770195537804171109931315642438707612551251423305780306923863085727598748554324754489006889803941145102614485567845912498888204958633509658579668200763707535556034291945237839830363822217396183845998800045414919738247358290314196509789589932475393243472910516649095990581145115998652130510564194573589180868434765052285308559131841640679353154627119210290357583929116350745727275344861332931287882690694848051140599528565074544009595240196157285563201349853889896309864105779187301273714635558164586284711330872956493548776813547179787475606006021464630338033293785759122291946786532617723779296708522204857578645273508609739699585506994574507511311632352713050234764234254875626299521923873087523755812118652892039777046990166110285764011921816029833794858421926699142411815746574488323385785526265091889843288915109952023044813488044449542424458994411408977308180666181421464997468290309730482605976212665904438809926101978835009983120191157443177635168507912824615205456155688486937317879458878963923271019716868632566760532216680738978423739982240590229783938614788651857253023025891893144469562286601422702876648222510762812635681225960174005163610090820813495902560842294208283213400045316178279771594055411524451463511845503760208700872243400824764843266249267247460995249777037145751342056349198662673307890943288995525684278387338934820588491302333512639390031635176351278843114560454900120536421474407665172271401747650296801738700871723955962015700010814627508399711683887109453810211474876062530008173604747330951383578801563286967443962529158531074422094031222482447210032486986189252411353981908315539179132239201489501770323801238309843462129507261877647364790787537126512914102314847428656588248706611946858905339881884087900595221364561399866467320950737857027559409242649850972726618545146916958687954166951906257826766540049394187586194544372847664539778247863279497677016379914415810590256910231915501998795223682381895526687033117323552329770687787160674562271055427090960479766409360535615159284010092596938108686024317597111236043545313598929010144125693739870208468286436474911256676090663338104717362213384064839967508394140788477580138099575365595250799589809817789836208951690007298539709617666145550778591776388844388668231336335825840617125982501815414761118312060527800995339888325024477548398411437890090899778124307008631256369865266182939661517449904423994930893105145880794984859948365364259213891913239229120836006098792798290107022104612362074269629982336177208194116894066748020356702434242418938920878758970222760492687320033534068881796959277505374752769374092195070665270132016991167159869913166890106197612217781376202294053458007337540623453397624389476492171332007637065439670486765904328346797998014314313994273220048433859851420247610104576591588177978933811032519158397311055224218431076958856571847271546027384586223275815602945444996114680375287955928706473671943968341315693091185298136405162261856010047028052773989087331718900077324254211753414357239163492580472425392833717189315715164746684955473360551851863040438966864648113568075195712670314366010281305576371643403692761114724845525554138470314243195234052290628974667966466573677369139518758576260184667684695394549994272262417241451292075245096917169615993428228051158799039443418869502557553795056653582956601045176302525856704759647906562611239236861857407621170705042123965233177357559085698353019350466648755359108921283878654634493443219393352042544380760533468949853374114554204147485963175885416411812966961167249249835355189900005506755420305009149229555816926548691133998483572178396163401824880570281214926972551838259636356425196991261859422767984699015171959523242504578111644984550332311935954101985122062576624628561593208436452108287607808898769045227652324274668323263426573477765295592639200181683136525531658785851943057058066821729941761669727685696265298595674560929883288414872963247896453844073262605665092317259286755060570959708735846256465631927554359363112096616943110799895629415621754157381995032600195295314744621170803825501370358097283633237091662397883093261631447624455278353479002265020962196938472696897116726664597364662884069954604438444473882182600303828700490351635237418970839887749123284673620596076804525417859481546751075689880981743410861179972698264876418802701316633912715424046209007893686521263707496569359395761931699221710364750125744604591931999496850438005158605645522422696814424405614065778697598761741934559873533976433586707157296378277461362587612587865148667953263634332319752558891804910021339561905425400305347017115971688935872063878941739240529867984278149425862458041354634195346945199225971638088274529508638349294722711334695196696652402147842073912558463803501739097927127113485127549571352255052163509035922754440474539706629083301123224045529905050863994934562386550612007638062825461095010504659829012976028519210602768529269125377119826337633973384723139328297206105230874754603472618435257850292189707240461139848005420823517671552656846909964619187722812912792006114628498943310220550696823700185231639188511006884782786845466384462473163151839244979352252883724135102442955226764987671617570196058974523264836878623571955116287765886761029681643299917001046704989359765221929591159956352188522741347040519721982439832329665001243217523949680831090332735116129573007112121558366759457357566645482633723520648137309809743639148787459816429273508878172212298982849190609376685199957745935091548073062555771386998694413162556319208291650759612610823798826470023346776673547261360264168716283642197373390965365153057878307497463028139611648053184276592443259242152190372744069525792539216746374786044702576152567467737947402807785510896593371218407474232430086396849590558782845371178534078923305735714027363771810687588328168897690098111504223225610478771035860408408460791964392333611946531418350792408458776042954958004643701246730288534030752189629778421231323796338023385473234843891087068222863854223253464681452422843377772018613471063611756477856284382878739562620582774456566834799433349267501396851142327048518768860895526328789266425119829645990614276952433305290495040931200891292642149930602799524937175356738957347929938944463747418250031711774956552773093574750764359249820249648954026386757220848713382073579916099104249362774077521461118109262708127460101779794077130305669375263615122700500036734425762016329363810286077922356189244744912750945064298989272513152770297806573813330413291433583303355422863126330919072263820668514649956961841127472392317973927512673801413076626062607685917109807550469512828117586823322090655767414365242148853351991697012662039533623439143261633811059011697854490962456761109996189041261831076616896391350015447786927199578806765949148723409550099359691481562261544482714802088147597961716594985535397596670178176117889813666892263274517454522026666469903134436834728999914641945825529675948412778864688443978021986184423768556678792504025393061786853238779437334246783905872883309681942875342445533619638911031097529015699106180575421056189595273431644563819972455328367235877441321886572944930741757361019788797871311247917438505259412145828376250241116295161013643304727704652829547213596078696782554018530545860774036401991100335042471116809662353011494581932986881093355202809340211489599996823449800946927161305178585846806143985387917114243535228155353213116040203913355797485276824767804861519144844069757045091151801853997248076458063474423275018969305962827331674512024413107424304041202550015679351100132696440898673077493501026302318852035588017061142891828264114514197432348926516066127117696182541785930498437856173968721979648842089596309685624596547897037430989630089259889707155779636604519596300540024772184866358671576564623902887300106103328659546283070308256952799024017495267816747893596275727660170505389375291502286966083113164338905515156850899146806346441946384245548966836233697986111683047776576740239559994004319655463770703763342500811171970398335655733094496956875416886814642849855169583930712314672302579094118459701353628666140275686429267193671196076616333450684435655269688085822600506102219475292939961413426844429311059682548155629183409808560740163409175455613757874006123894595994839132037196557978284186603243565581365097150924512428931987051824431413543909741765747934707988888096036971995364777678578003806531719647346258913758946441676027095307749638800114248978001242775766611560481060805959636477260144633718439046296849003715404890272952136507730923617491999325412188010012401372139734749815904144769054770272490389711599634514297453507011095243467921928813369824421231432832436218375501252938932336738849101392162097903997605974565538000022709765280106750528123016827715416510241663717881558993344901692883299251212285203416230429694690844466040231199288349240005828628306373134165638238177883070515020365073162379781283933522517314121241198373725924009333078534118020496862073144879114740558283340567488531605086778943475923824938564779438963365498901267948538554761727342452692120847888505058003478536306111933110133708833227548760833700152994958080796997143070685344612040781385493699114925201300086657309801342099381151845348256100767394341426933723776442709924276548371440951010261250372063579881430884716190005000199907515530351705578919778395057604410838168035164847212579822034094241422818842396474895962832699608674967872600359264446713349842823968782609539853597217619462634871243480966878986829332495213224296299344254762513802665139929750839991311722915949014502085808285567500326086214963561174585666967708203532743857021339093513540672265769706218696682792575990852698120566066334745442540048638324424378557572313640696415791845292491172525525738772719099805969282735422029743134576313709501247009280845146281695682478549124944624826045197690659627209020815571748937274592033613474282128527474899294450206723892048971222025341508536509680188404094206777596888099124685547108061635184269039718569271919226983517986678645836115032415490100327846947368451170794638885514478397226870828496183344146404491868179277408131140265535460266016434198306205448806159703674712951945433033017323728331532780257577692960906168310607267807038502364938775400003371480997499392220487720208446107227913963321536206057757265850412278051847776767881141536492764248655513307582895119290762412251990995810545396117233580407266894591970106666277862969886720648101644300077990434810534538125465157604434263570239678772220978509396003443455266989601060191634064436496516241199287952898631463107521865968660865730231643637418946662625073729879379928818069266108497016456686102611204329690622654817167554296803143718855874698803512235176959268131361952651893990341315456475315120124622471705034532645911721473728043301313445219768272936117210527992723925485019122153188414019279929092628936829502404509715170301725444023801419155274784093093550403787545707974570832346336795472392061011630839360734863864854563108971005546948716335454270737478139221564921875064807274084869126897551330326925579108859095406791030935333741925203976001481771677529902728523177514107014924827972511668614956107960250088575638740601217646585954038238202139837003273180701799032366094970924228512992468057421480129014595657593099967115026755230940397299599357122936493267372186080778743213989535451731051332758702097970598269355591167339490483207134369172609791106703419700429250038605396218395525790884223476613374166359651501365075796988784547852880243592319143254381248978647619510440290557215615550842308259593511408055707115769154135835281157015044182417727494309604417021130188243659698503092564709230846801191928764855348901970211426771943327059605755957151139659648636787615737154023644586569540583166415753212010883770607258431327020673812729594538681682644759362832926188074096395630399149142729479012738980576647759885312444917663530598325260439616017765998832221105456466125209066266587289352239103004089074775903236531801080150017659888789207735479135534522861413984837680802315181961871049281488217000163494930260820104935740126102683120056878861534453156325461387011390175706780268743369465865448462261796117322490400355867737384460992693665245151625463078647926396864117934672749309030529468397979640472361710421781627298585709242889990404831668005336220751868067648623672025482008326815454018119758626804907985005115878282282971785579889476785078006118280043721884773024606322139308264974501355983543337351490350859818215942424140119124232197484759323731831551171407358381676398754794715342215359714007963898359213698966697776308486717759600045904350881549846496001082562100108756232437937225219365817631634345360774076967876087340559474160463304221867680826037823945163658099332355584975417587385714800956869923187245360940579103899868901384130578071143205316124009679241390075529112241489346067414950584555297525184161895212334991362520781651766676927039443158628423220975324005528336442012539735125558286252255033087490413629715626102103257171055862462113913370936207366958992947140001082278667012864554726584764090909999460727175200381902937074734041738570107830043164641693184127657500159441238055533732231949254168540910916001854883810609611988514361463168243557702439611620997337826160602894465880987626837083966691576773146177596153486809555601051605901964807130918037480050156591422549402589432326443099612481783867941708793299595439593534352505701280273841446335720461262399477217058090608716304034264445369926505797510892808262097185551598882730228610888576901333723950578571135753366337921281677011592260498958409106740747269535132207213563380316254787314999208040897597410055164584582980990512338796584209794731522026639539718579289981858433484765163092460785906291872531579643785499555960625784090713138673270998204367838795108936290104873012478175301972259516237477674300855077092109514618539245866092393677332411473603767519194806636521744140572927729383926628144733083550665325305500914935258217021667650222555776677504631987759190702913281198791862241211760729462022692645543428377473980622869656940223999418846435125630047906333933300836752344606282324481402550384359005013736736626866320315254898719545957823602181724516246668096202192073206144786122712667568783353220700737356432588793098168669680156832346003961134606455093854193512852486136254079239785302731971862051312883905628489758935133004050383466348348805278647016415539411055105547763337755500789023082350937043104221498003251481871550391922181982480665481620643306572421873508328050773571942238604821269976840226786377912155725101685570434369523725029031734780856168100746180819947454110856249383551173351664973999819875888413343292149294914448781042629509891639016084778316213487097331929676710761464043956978170971864835096505567928466650939831257785034938196429911988206366583246537210389277444699187480690162159525240249465988039434212152283498192472045826805108584424519849512272247601159375289460391844730631986461469635397019694750699932680828290863754274531879886475868326035985513614225935001919455917784782960470129236134826867072584691302294847200664737935834554566353610966240278697640772703536264284385379824853491649649517843509040400187816719746121289471282759063828600769404084496037676477431345907056277524514314766508226173048653156840244825227245185013621378020658104229192289525587343765599986357550242180154800322872973234590492277953411383416567720911812074993866205021786230875226374244595918468635934080218081605492773303996003701757166146063190168942166222573868623764707632179116912609361042885451060148889382974408942530768498685278464939418374209723271401133581398436582416318596225305827619504013010302506893919232154447761123576782765475779708172424590840560927393505965790829846691302324125976571775032704194432239056512900034371435109913596392591524933486326046054466923049170517047555889379070351778998642586258872226559080664611548091213773117749686356176095058200905718517770450014550604435614818268080280134958858055000935672147134619311439858414673868507134964629537302951214089188780903005848573210775167835600873582466327953122582706112296433036956284157530847126827003514329288555439566307051361246976485378704549634115410219233584477994057167949444160129604481608313578249580587095792750365284906331378191509049512909736166719896168925138449154667962148026158533153431784807076514201856381271322820282083349772691161146006257110403436947003158990541746527114612084250691106824484549580259420282592970147288619142896333405007783761134376015338283957388216629221777763661002773160288758791652382283834929562035248116903809368979203125281973065697862247259128202429239503596812579986695339283454248754753162155688659339118126146231792638855121639384576512108233981230815033985897161317803336410102539655899040796104994190875350595858318484552103146983196848630870752656245198695007419541131810183717500522655249929872816929737556278204340979693001690944693294356258570548311839274870163950689761307530847023150583455704636234521139207429991306528920563820254224983490703043547770760118562024307144204792822803082478013384223865993763694688653086425114160151607066703839988812611593479415971242839176570937786477790653758961902308800877909690980851358784922721438555431826026451637028254831384211626093416396140470596700672535752940721581290165589969445435707480282477070957115733510112681977076040242419034803507744717816665443787207417442539043182825711224813658006623214136819620951699762613027182776178959122432704260513030963407659511252136987458362647436137447203089988438554727173321689256279114104545894221522786851905158845361140997476022007382989268982956562194096473645431851377650597250479351158260200982851071587453307834934600604159391167290479028973238825727613432169852774554071455146916557329843181530153337501674073741077222943919351963975928520565963509639492863346640806276463564104536359763868140517376035585340626961205086638965227455068900922618824734456368980304561594322614514912138971752206943023440126062595954135545316510454677075091967604187948260558032547368477770018912992069245924979659621649177111364513764886029965119349649284936328976718025621201727476366738112127904729247377020180218801667826289482589617768182284627010017346650776544955595459028120937217925846310666023325886775068387952661433524587264735921585279452297288593670327229139272893336965799329698651625364528408417103739159827238882308485944957191169295648394689419756921135525769476083157762344007188144862754463932565754207369129549093204730411112147654332279273471602084644241738593529922837376539128298229302310498487388687960094936125280357186379597867531683422483306522505206766691193590105415431701206936377068492823641248055673664382555996268356785960037598218243180066472351073468641979084552079681839359859073834724476155581219191916494767159948791672990146764767762443970306890522959236315417824344386639893213758784006913564963397177013355517959071484410974606970639713202782029507251051942937876849521478504329375322846153974635242184309681974628488931085407125899714945581335690467133922265861379767196526384119627581993922112127435459218540569983773962423582008058612234125420293089862966383256353795545870647747187051691220451793254632152678530046834638904460074023655460149928997847673298919644055764110509365941909248288798075279215265013390502911721977113758083591975986331175037664880561287438208685155007974056239120860936325872500498860160550654408864466705396455951878129268906657398453521106098044912356312769543517164937970502600715585860137744658170100233360591020824363786840266527544306441583356283362317616455755745114517559348105482342717723176758250884121090364278640777118153121101931688490715096846216495719225356827518073917834809477181454523435276042568360122114690126991057197714460860482515576526593506854423998534011276816538321159879491727896075200958729807066904718829381102993376312066077861327539622534615960789440508379017661109484268970600285883890460396389230022104359147477159127310938396875327353784689265485151778860527005400649955452742065472646532412835429534094388555386547306791979813641749024058941313250085710160234816247637638294667704495089534256497018963800552158879579592781175052506366148819694516382059872632894146887858492172977618440714840368968244819763951974282862679012882104557775749542420527330410522076299202459470309255791375261580327251426693141246410415807013907961364660856934205289369468633357963653891497735901241045605559123446510896517580879188930275396172703173055565224595991718353458976494274539766958867824445278270644135337422246669404778386692411617918515536239743539592520772160416388491015556208087235478697610235455319900623094009617698944653924891225740827323160906375118390093714154780975766458381231485114017580468971623932716449073257937351114500356618824547639654830494204089378953176029738021456759008215124645603785529722250711461334111712773004223461584772558566534364619415504769414322474226520445272502915706044700039371279385687428946794412050195396066452300412534086344626508271373265432504125069425755170644445259188063106786709457967322242218501512978824189626385966634985686086721795553116793418617406056589127720853652342982361585594041046885145309040402483811906411917213703947831128048550736857822976285395896813178300108316274960682310796070368181298653238196314201082282816042680201862869221596005090911379303752802271889383878353905369714214577208822354591590464994788078377745407158290810076806681346039091402416602308013679285997560684025902527252749509796603190513302648014026897415305548695699304144021871808227675484264173338025392960112594317682740848783733541359209503979537251138654603058872417614369177629497497534813745129782964916399246647486203649095500196252928962461977443930543542123126538324735914848807803144376908681277867198459882590019163400133497334047361541617982910626656259113912380244323306109174448436225760198571031372190271929492219192358241571434210219363855937914624139795004435902158291249811026177254858597312696968236502312717537738989384757977694457544797630183550274564620039798159680303121092232660304187966739290703868837049972696984070254071832933865436540825962956940298347323699323640816640129302367084347342646926464178205034059343125403479170349912416475184622665797997380272510621750665818679995316023289042376769503450111643581315031835694455904896978297093905899254735678125638255708166607363285307525693484625609426920062839479878878482074187134647953404537748843279326632225959990619469920093345711708174802643305837677745388272416967948939602701251604423909044158242602026108914392917025052881732900295461902354890216858094156158959655670187516345494161413023425049157728427783585782962678168088868015326580798284416852074530765069570155416782545107844161710978524935572301781651944656805426025539798991904971199432231506596621723736853854288159119231649956923499529939829713618497639191061830848152090992247159089252487201563848757180545669558624807333832845310088764915267358592146027997572443703817241982725114079254577155742590614172779538196181888509458810252696282689911460832565174217631987377403528596553461793936093394976393640172444703699573228409081462722555769416129330163464083173223718996945117443484549718193287076809842537232459296352943370178008257188926457041945132498754326840503180669793773342104467876315931296750485573846847967190787616042223788619228595232661978133374309714299974759194929930212031273038896748640465962351299712107112401036816053355630184564819935606199973469363653092114592494481335755196277275950729789903705791203877704724930218587818426277590528375298846947482854868838064242622890192517807544670664503595623544718323430432865778303931031068166413652933876389974863749500003664725602105679512764353579432127500517487309209834737321637545847597709348554182313045918262232615365808691053537918674954775123273222014351067313618827258567384039708012498198378586577722614275869369102336510680941212522746895689358001352029782684725077317776268277720768161521264878212812364962121922596646348499532669333676481880238000517039480313586250291619097571962672987048644891057516212476448366706633990984179363451623083498233795022477356329791786672589689172002879047983427064541548319115103413699079632766804330559153235608002397977164480144620137938141548931941715983163511473091260078813918822123992818764706303675568273346497999414373233750769284740611560504470156568535501319673951252772525223301556388911339555189606954143469312768953632855645723669297773537142425445506573108460376231621259771539984280479673604763701186176100560757004725678449023368179534340531199875962858193663451405748504283569969103647234993694019335970173912717281936660969901059091783684128597079936159172120027488227860154143948151918173006109895614801521655983592531341815201782858849355654648510415836133168198707024864373095762941345347542276925073980683872705759997091867210238778054575262773596217950370428701804786918172352993837477899905242869677266017694280682731206054667474681194542671852730533970613273994581230916361053356565820330302080695213311635173017343401221968276491086028993628370892521764125273351864560097734561264801559695381126974169405981625057621004884606746704184372533154658829636342707172762322572477447119624071221586988142100993189080126682052519446535809224719347544892385903550125732004282983836496299878850165916336772955393224744802565550034114363214474383336799199779994698882665812520362285820046367668193298108444924148965079040810562511510916117248893893835715470463491431967318309817907032835235072999489084327495597472315614447711149352404719458581981176481807823985613616885359004798825714030822796823663927710895076791134637944349550622011343322110346217044982691348825956317071076192463538761053745186451063956044464685926604778928508660018060891105030577812021392929502554929164857608498232186684925231165428766161910938836223879393287159776033038292605646975980068536686877741732164326132381704120621442408701785756551401489439435097099120903108760115339643819717478805351323209437879953503897213756611014196578199677895071528470005773165202376726040257996585294666936021877088284567394471936838133723377888182608247798942971980298543948484044495362684294315013373316042103579265130655922107261851575693514449599411973963674407670813960671670616283434476622082491451250053335739259580391609378171411914884082167598206132037270815090809222110172058312955566241159714765943266456124847175618376584875019306457336675374833703633734536199517639430342269054656700814776791157004127124055218409029542359282339158635030509846158271460103209492487868210232408710417327189105618709944604197258797043147262888200662202224271094864488473127319542146831278413603383706058144207605709711778333974621622492463817454985478294033705563388683363506381594246076633828972149341145134988399764663308642168021763151837113613342599696036788657017306441696823866269910845129730228584306611178714836557952392670386696513093974402931443779875391970227410996652886623610320414770900051311482609094747982796319420035418467307082243392507283682145195975557773863484266521423658279042707370606178737065716300491158232937081658363105713552510975850678133751607074371640246642205252935786991763184734422097721181984589579487584212268804444779488893596043063139359344275529742648134229791002668439672672033774222473405732291546471659539804037816098504571438772908165894959053043899254082209117699524132506262814491384053453212473248448405549344653944097815286483683287843275358102599743404715105418187080957505849860220009194116567525997225400270075536638124930938282889394000908072535558584473041806965406563978354916697350716203557469350465228282514223864981140015389748520894385782204102919066224013219899927772988892526827977687262488287516068266557176713231231814828404812381570124089046456431211623582598415046520000120857259351316057530188792831792724219448052521010075930435623563564907332150583237650516921073445731952593799549097064305312446620137270578610698855460691595814422535986464038799087040031541132678799394147985255609488967087839923939131307580955545402032431985898914026764205919435626636076692301170873985679721784807155889139165196244212457896122274945625960481398811965493832245497228725044790782568493085115024426970849966792494642391816204374503401159586971162864032369321160901788994246221312725871017621610714372124360958019468169807724113882779386150963620658228999933057216070816018410567867064221933559317284500593396822343464241158243774076031650451597942247381723655715732350020653913106161567157942289476821180127114296428989974347329492757856644170251866730641447435379130354080309096611409964037644112569690082413991227492254620508423437779385688240294693663304423889055762935706065356856550061305041352984170191638174564984003385872719127318850339277170569096615891338105539409063629086129094836587513729794488272921449068679062080724784768398322082921888430932360086591860285639867320447819811333486681392100439846549751601640811951053062206950568556999988733975936343256038886903860103304264805190892374782000848962885486809795982979130433571975114773719761201001966462226937796526475150775515910353463317900824440801654225781984578631555616144454198861772813283659763819669334950282563469925562922618887680641293150790025330308515705939863612434815372278335820338195227615513337502468616359348099492146774594929939482529672296995683703265162932971921662453591869724757965182601018511216750676472765904789109095331183213486089858134581751598375801867597546128559875539749656067591899865599955906288280138221155568234791336699281486401584201434457310996725301876266517352300016007117805318080392349855143158435034281577660237092816077909118174725844089326469454708264761420635096274297290674784308403741055425569994036864342823213455989951450986052557731871278572530208102169511048976092472277347824830134337708433588522631344081262002100989916991775962936978508757341978440910806390465432417042748561715421248451964792092379027715285465192871800765165147330049933929386606840676217010838798121759917863072005406001838902479184462940483290490992202984346785540009564271995480703547010397846355895475410119716435281970111266790541009281193595759009972494010350172606942844738641134296658428993670162772206109167391782050424635012491652301634234362553572158068769363956749182610855326928005282037942061944883191019092149861115355827781869402273955462151639378486620576972340404864544424863530046176394029465993809936968138994521122819152862276757658782650501202100965356284708834662257377948254458883348221775773340109814550007048453643276857018829857153643262905871073469920653670781963384033993771480815422514696807394687410995323614463179810725910449289796821326760255455051045866683723927756508598628359194757880499597258605726066554172484995050084010153488731432892041214092791086008114259510002098849050179591251686415414909888025271211623243591186622759438726364336564100564279232553824523582381881592843770409273180160900792155629228323281431998424856389149045391253485496667812318887027240015891855345602560787222212542220128258999903191854262995295559475087349306426409061744142288340491556417535655163800883311590180208517225005691319203426236226718318475988858417434120369385174748026166155526218166444129126815533721273702967203542230039246737598052576467320272993513408943100182585920301390724721362236502449386987828572028873363250938515368167709108072851817359368661195000865021727071591089202144472233194134780309486083920155836528513325866735105649669050254626690458483635420209735945743225690621879139050113898287682236032184807215109169553115066562475104827122485798291549102853820522650324343036701305151132333248482579406613746459963040055220187448198914090116882559766696981106746463830438947546506494815739478230830147765566810982600485990792515164925138857316015313549558755019664617851612515712299386678205755263083281435538353309418160590124874114350845163342523391316002961205677434544198497386328677812039350894283573662780150009595759006467699366263337856673821939310014452113198247484737546806893843819511214749728804946208845869838149691317871228290239931205555743176711609766274386781031542987650889543593364234476266125976520520477140453989241511113243864201738510246681154879654049139769577747249846087747320773686324738626865692160017459359816469142872082569621251044260161386508067236374869737290892509190938333949671702794217879148620298990800041014902192699225178166122702964475961863495143274151580415678892432906466238760112750078956634315150635966903420132597698467213619265026411233067806420003212598335957515136798689767409123454861560312031352569143907100362018720762690050067303009368436701199284729422527348339850329337418331421155427668075924948544692561161235309694142302945703386173992435421881925629145601618068433710593345189182687063239398569673439908583485565069320170642831959856092743462206779042526906267329894617114970209487580799934234316355851167660997853187712358194931676066173109893419253017258264003033846129103617774834807748405939608640513284032170678946840150895530643265277832746564204685832409659796612747313971926621183664563378909865198399685063990753425168834548945079408526413762530633654084237175293630937507705759299491080786221296927253882600022433543353803899227587575949906672731601060834235123798635339326512013577852236104425189521339202123812788960931960565350865894419087727893247803258322418455852962741936516719744606094318054169017905781746336157027842788432520500978838072381582853014664176387090092385669598649405105421994405729901613217742800519629511259910392632671941113406656016679598421495939541201995647735847650739103192732677941727349604248031757201434592130987192649536382700828397474297904817218062883524449208500044865552536877397095774461027851950426243650804159215892782871204907285037199350565296624820758045741615930001119562308170373969021259423041329647730644758225900135707561064178048539382779969991131452368121760552397392481202109409892341774800652911225202699679049229703446928528758611436979317939228697170335565400369519317333481162913389379254616326672140476510402200040179259778570567498316579268271932399533685156457558522609478709091550581572242069869167751852460539494001574065911664315143000598148074524390234941537640069597701014423033404076366944024965939675371744412683376751860288480018744048417149924031322682848833283416403222052566746162207532624294593893070247272292671204585127642651314105357233929472415277279948738363951216925840502161608254383118498517826602410715659841876292139346908145547915242001395839496577266485907037122569227636611009049737574846647482767839043103401941871739986349143687367317295007711440031610472762123251885531699732742461138804791761134400821594347907902504062788669503049227660029364153654572013792184537182699653030555147603047313806897642653824245945078646438569438146542971471296791244705687262652504124141429156790742425899119129700657626960830221506151365236701991874488997164897334493838076321352714174296697934788129564871004400434726625335051160022273188312335545626015338074575953404682971360238067449759604366585717103740076108455450970361676093022120731514921653980242818968675878490750651034121140970875161669252257615073244724028676078389433506386671839243462139875047309342247317466918782567900910668829777629632649257568363917665088734762362823033688558380413628923620360967185975851816536560985680200424875110011441177312605053191812282850869193049006516588114605496271233927035671239654126986755224569998324610195044816232561967263572878747896719235247504854532361509404355709888417695312657161953375574223206026760192061281369086513800083678943581583779700338810767716153649728792090165235307719059920533061245514565929534260998009948937773456951807989211477790612769923878815963877742551953583716041260722217618778108291229509285506446338273477041202037242820329223300505170901609807444301499151639557648247901401522983345822557205169147037289563196141242572420444086978317884757861689600367137851617672001090229888562631640843579730766916770062524779797630745016530540663999235356957517531906069980021227218414903032402129804806247972604298175921720464004220640107882482521250164947886470322489719132433245651058916459499439416910403125904873052613512056632614834804399206101596175359183750665962736017152894436777883212683201966323891125218036810123896508284313501638663957734003981988950934212209094715481111444380846302204625382625876095418714139886608595576439924322444381621759327089199533375120212696274773290861258953595644028810671971534292701510247436936276767021381322154843490098705202892057241203969514141675393780673445931135114452370208901699328306780624582405952429107248384326343932034894483006034964429448712717768174570406437277519328823177173844342087934904914302127077102581034717256926658470769522858725517974157034458262634806595569466881291834696107561506988151693418219396919277356221697145997056972125730805220672298938138763816847992714911294576970310224035274957381110494876525421791205204461680155008459521761503375254415601010536793443838399997861765826859688968151787991229046978346084553481800320708359483412552524939635822843793905624935881322462023737007899452448596357245635298431510445801817696462935591535065829251302007574589687270199244391566764101855651637950617544783052927339858219485671794584731644093730601949683664483180847423918124465048799541707109399528633300940523232229472971282128813483819435002756242870346106857825180602133294434520030446545439107725612852306657528778778331472947442060180355533738549932470169791453291384927777314112694792167410549097739678683140787399720590995900817379494753911486651083030187022955212435485769051762212247031846555709298041345286253722036938105791315142355085516286139481012563233358404054442343459701226249204949187658830256435339429484870439088858415026118971766128295088163060518644526364975046161838745219483090976809554846290299785564579366621401731371434839901424385738763007824209044275397299595219613163265792667394075644704383131329576401907183626074090327037294213197890456758834903327279194346277933097051440788576895139930481015547565307768949912485013407602222303826312370517524634006302185416917361814483913902690523270586910286831786935756220207356663659365406731226739164778819748733632455802432689001681993921400506493306201457929122838926237242286492748143534294807821219541363092581363253772272914259227854891589373613595592225052349001176743785112419571127766620266241166648306777284196448654501434504604967603593270729966508170760457301334324823994967235426244952443712255322108155153657009285921209373034298937961964087560356325543574457835272151920548911487350607273382612580443846513722199757902050592988860918690860530732910313229766510513799714625843649091926885142929017862936722806485725604238833983846360213524117972185893628677167883122446931765964434707331948004483564503146412254285252030492903369114609009720147738602642220580526163633656297687327329550552841432652156002401463767651008369869465412546726116983554783199579360339734523078107397169019075822541551657117936851730377047554145354109679896880504019697720452363641523677180680774840497878377225695340055710939951664181433500239519037185964578763244788238839147492571020208953904828187764689317935197144579841965355731497157037028493521932217560065941992161153562116862102273258309737768915165437155276365820116998476735107984529164262382645035986319980276057486377083728834729327199036575856427462117764381103822161698912798655800117238601231847963432731738200562754183926223552033054310665374608959090142649609040196910188338795172521865633137049365880694443982727962576178983262772028818490789174149813026717040071031829876030250375232717421672785766237500659443067181868308845206004533281389423590337427318832894317777550521804991652062245221379929331006188635552063602088297366659247618183646691674668277960010585068186759927490655883019757605128202018092437679508032241564568207820292059590707547865157467091168324008534931951964539217277731706252396011826069509224622698404907848120417652482211640595191920344734753130992302451856497571329493747401901013121604795307651438781970387908280393735209814023952982387588146478207924326254865949591790882129487480590058524102446380406466141777501525932977680880426268509004290044341988855083006161303565434268092764184518908714424209923144841668890794579667250083884277249142941290380065115185683906585814803753180564506253629758066561907841466220586528034067255273770653727924583865191591490932814224167420593536852797150865981831827605486079914287621824160094078990950670333627019453130593935347938163929520415934469288879658782981644065058266595376679065795151857034681713400616115373945265896597953111822166680822696340411783118271083232419644237224208930151884427043613976767304290747161099575165968171753406264613227767474369732114802388392973895592016280819260782747691541253353508276192160748517980839108403576500221505648124679725241459961747126612510139024863694532743986014504674934555384546211396554738615500953251794244017213076919000563808796608556038038441668657158481474889550205933924017517758752692532246020470568998055486933333780786660105280163363866475673226613721434977692157361059020634312823143668118990174888411690345448951610256027142299635823720512878683944683266239242741408571714486125375565473517486804388828551546890000472129662336661851655272504794097919767953492622913831213308084986062014710566497645908048697264422721144447063276806266556898939883563622039222517098204475479950747961110353747511860870939116715020778370354733478263138430612627231187824982529888993139199392109910468833345587456657645958043255754680088336353936148327803006460636708100038647912662652607073712793965154727807292269629890940791904018180330158500682519047542811458398179263232620280776650517332983208110040762458486370121554185030654749720008616899045342381712271489175297269957432284965910106245409433020502359408623638677479245717038096274936845364970798382044118045022117530345283334687217114027617644450048630254827523193264003359775046121600493899512495801846398949654089669966689613663613689005265050500267126113754557761221514860318180006935040631916413896745883155157750727544681971253727207198039266034729169297056946703006803158051868048591339177701047994721340327103865283853514107017820954191404954411210920440431250190838352426100601321349144357140987584061717069910415576786001825906283898715767041714148295778097782208893029320559783354798572061660466699630023834676926663100491879060680631844936806700528354550345185999823786008512572043751585214170811884130005120424938740153423882467516316211784859872981336699586557354974082140837439354273148960707682028674826082971226835175369427522608887406061115313408964101008908943017774035141627105580900084397746263722083241712304103773570293782788954550369057614347059154631594529452909400564583376693811515239248843221992933729155962966888985055319133292808753696917532350945714638840195504057799568701143546487107425605064191761398284091451621861208288912368343916988793043420797772167422323027720971518623274898563470170055961131714481922362837591287085430463078477889898605537610933550178989907149597959877155501688349300353536653597041892532363834650170081896919340456579457963743807047875774820913464513848088620122695205957148688345886272931485237383422693174793375584266334000702495543811060007888062413259623569086007239725082474908031576460627237655254425743541338930187245293452284925262888546968048300897773151592448653993807762635539567295164871535082980275138700772970748837673895330523429145994873165279779769505405729737864720931266566038497216720876505658780476232960040013517894460273570703819858125783296975082518026351685657393516727015292913629636340253739983733559060730974600868330328012613001436152249440752117368786729691712409805229774970128217193783736201648468586738469866413632879561569690183639961215862920440583901033055118617020724069632304269227975564208203689029307132481888431232988794241282907158268403481282776009185586351711781033619641503682532477274178996876048791638184897988591126093165981527987122595239901521873850652978623531007254691994093607040213143297057052567844783549896827057297462262133704773453661387723073485907907884319924028052279470403031186978816227656269827627199474906815540806591538757846595879010468405009825017154667686011818958048652979270350212695312082577043435689243106599802929617121816692307435443611388535186007951345986951054952763187685669642072328016234344510333348147745234505980261342249398364162227819925240338524264920566623200183674455725877447173367476004821979924184206946413983757237487976903257192144522786683149964496092922919757714381780280348612319677440223941373892248097040321140040993545547033060880048862449652530691436652523163901377194573446672420565070936767676776067829123679786440716260112047544764661758129341821203584164288250018471204764569451639971662905612174368670969705938853212816880960513035802687551233704871216734738814236950648663899186652788828981931034496029984321415384069539323312584276450293338407596936282248945419252475739877545013205368650691370605364020709886792786459923283022011118009004240842549045421530564759563570057647127795921627033408000009211083977149513898571236391755121182567701126465070062770413980277608582804053215622348612719161869541973167274627456442166032916583772937298673288396011670001202648358992148892345058129167216089536568245477570582977229242370334684271455173900529423420469304635737398749201480633263031994401023508636611516329014136766529611726306614854358380182300738102537023382760311733963006056075352546499553396871399468412457768402201347185429537020826119869967926674040103272322393636073125529868846598881453130829483408790430257989261130029077023303622640505540861082232674009587130311711724739317556643838845550708029374265377385406550447742695324284303000509859902565054790944073807754220878320050105596157807659183817408459474770858835670767126842875095533871390455918401648530021485185789964759486081510643850610875398596440978398974097925030192122026050335759541253513939630504602399252794383963674619276748201165201145512284877455094750953483376782364489231431861009911579934931715099373643357616783342012908000938314444569399824158093678158091702435436196105704913534501219358465891318007480076748524936951695041946516080656982695177179100334743842305596594393552253435513282218349007304451762776730479988850186878219172665486159514703908962233347750198257880642510762434483788157306100498292690314856423131056431755354462407874993758125964182889639069126098294210958195945133483684096534063873033226007888171668547567032486588326071373886673176488640475850651671939080811209001625971257863183937840310770455086078739245297370731624569764421635681255867800238848506646112920357581967487224785443084173977815311969421749187643583977268519688753240247597751865225078873209342879457195083890162983908734412273809193553156329303756186609184392269338885972331144815942592923095407904420581431336749699320396848049306467606539859885581352335441646196421225406569325809161196639841424578103059103526080748588770318338817142975351289179700995984417208216304888093210436123325113027509030652453286678650241041774762395518628835277672673318252451600594740203637439134934616740782363210710375475402881018622412234562477173402799975926850014109026052702124095911791771443844742668173084770799943025735887400484907805788960032994681990036387948394005963227741020848740683882165887641349336285337598873079341593846321465937211435177899435591770643461056594624377557754243677848265050855462522607382127249694254052951896084186501670402668996144490336662345159416445797154196515668337341048445212187974447697203443195108547405075650937170912265635138683293196876049738011793085652763630300487073312660910508090172104083845270315113062370378253983911048683493250110976424682293554905971458026220175991939566602993973689201947978029202105938346769629445520789719254013296411649575234488032192935323456403229437030150809502258903568444325372046773432743972619291308679956648463104551091175695421019108707705053355363889145122316127196133923877293413996583956694108843431947297505628105661831803405565727364221583762693182011444832518177509632500520081632568290769533684397757130831952225419954717499755984343140463171758588801138583737560394441288572844823553753231030965723371753716384740638443001985026117126046568183589380907619578854469782835166722719118136808188702365632540834075346498141738163006015123332835166614082633775526496759327110732116625807798818054313052993549060331821758549209881752639064651358880727885416042880872088216921950379350833343164289779019021216906903381197985600202240826945752361390833788522374496572281640219165708709113532567907119396984311367860051284625899299976144351031299366587670144811810125637135356573452198133643526966162808680374355381002315286631559818827629574812981750668811361658292323174707250777614779845572097643776333882163091346478349432012101545694428226771859571127664447810604968379500927742152916061459987872334206561050924900182234353489809185072433976501291795058663993905903365866278917589954327113637972490935328401949243666078932174429803186821812597395136980326897350817997200218986164910877263158563957593962370736276270792601279420151612611192064866882334997386181813513575595642214891065646419778828884653238187313695568416208311621971236158215345517234255200726067232460374396261839923112378652286957158591988715921399744744247834496065672169838082725187314818053385477162494824769994698285196095672609413940692291990271543436356372056762920403528721785943555495246259292703131855627068619156338939510398182900333630843733991238875468489235648967300237909308095702323679539992938394954304164887193297295808774376126827854590642337019482091703640314141292411013568616895993017935392642222400077510669425122577843223759800199092042143871155335352916446034326225349152100559503251806189296218330771767662550377794471353277865340985793543193778461361951015240739698277570496432804888813790522340901142524391896459901570405464657475930320968859604647549252101356437409691444364172940926241663613004581792537518002697748639669742702906741490904970593050483358372108470258563935291617824751093303088469939010208032252940493495188383337383440557819471576287995325273508243230822498855786940201837832034916142182641218586373003973251523286242344083049318435408443020234168290180246907276369888402324809817558201459793271485498144415870593544311718172387801133048698003196036450203394057490170297155140572123681082305263913136161343031893150476647219772920502606269365531377605281861446373960347138054832222773833713198840655963895994913398702214005985269910331536137991751359506763728162763219795691192508490290267302307533838875164487098434048620069675152531461027419870930151687119933348168573210997401423062942708045024672264811059143513882101707837253597188111074192496464844605631043104426042536148338466043417900579929110848166652484399459811898244469261008973547407970051109731357445847887732144878237829204429828617968001817598526985563940754911960588460700129251408078988019129547680035428553847669418374243562624462574642144743164295298948539912399734283622080789924088480482983556980160583309058147175574843520872692207663220838331027837626707663813470824104521887806461012175602039733450427622385456988795512233793182161780445108204056688121613543533198209009818456634639496573356326653233074756619405479257558202087726076214670911005059873756037355770942209704476792048835265955747711840337622226816837476734993416655788699850776795954252639489606701010407524023815327891829487958433481111789978511517848351106893104429073434114000127743836648711125425130004640469698383661344171179586827714979215393981524970832957011631438788300430075617726095593609924340083238930863725205139732354267763007084671596829428424093887544107031625372854327070535467305112033601033986278858889235021833215229517327366227179822104080067646640518265552073358075881574570741601560167757369440294783415132851515248985734975742882197432611336853476348078660629966189765184260874240023274375536002636143632946379322665276530707387471132854653818522431179785151273383910983379646694106734572605987655022410250988523748014960848672775013036292558845538004056132587087114572956025639283475850196016555710370599730714312880686426984859659573407408916930753133711019507545076333050500969264962123602766571664424271312844942336640732707000740544886829566378409051844935581924795297565401250236752115745338969366465829796420984530837416919266393717046515226402607548774532192903603678877715310796371470260905847904180395122304125247544586036149064988648935621832547981101045222945407190918788671564342803157140555068234220224410344380973569805479234263451201209021157598138412242109873884273307209391706518052886080784958649490944117152805094580531035197310190739648051019052244611946431086894240989398465594089504206527543875275983480407388149557268116303749299605553629798817330048292417189384488571385448851647349678775418780404680168584665925649376091939779266098860731489031784017855101626045055880513744434801751435341358784468501512013824481539847121978610384672245743171916824932568557249110636567959289301405762930546599006079725587876540868086950381436811745151787356794170126115505791517423734589344732802773700531961791983496256306723378301176580652541541607688785492500633157417092025165649266764883617343590418650330801276485726931166757133403953293280755176302595173761298429631269102320199574949975790233547679671692034637636598179484340809919334082814601220181664480983016303072569082186920548890508033834010485143731656312175760156458191762653297955908109801310302637997823309814584180536582084921272091980231907252831608487226571426322689785320798100173874803344688778550088762674145134199726158801869303552285852067251726099380064222042022876777890571021387937249286073533614484319710646054320516819329900455156955095280854681743122116625671793941467512382946288277800781343542818173141068101584261709798607229670243183898363887050499955599884930249064618157521232014869283664684313972923309244742507346948085997168404899071338395344976117363910623660718142083269325688548925703180416956400512439569970563960068403919664443380823215546390533411222698131765764536514235311042286511832862128338272695168680508096318665390466650366150583231927089354950031472252911408630117702347559916718854191575773289843130091252212113114431620917651613626008464265660435037080721816669238271353787057031164287186924615896648364631780852936140867419038460672205561116976554129151975555114419562067230852079105295971638612300785770362785313987991246325640268127261151137130498917010929273625378706663913476673211851181798269905571845468446135694325335442355754705149187625771960473867887630373146984838953344496781391489378397945419925894224120154908626106906459077775015002767076936108136904030969332395209680452198636354583741411275564158448437742471288858524350921414785625758324294397270525310213731829345980366052388031892907765226718889637492619012813212039767477797316024545459295148400752812243892068034004555637469130147892623356356820686892531280325111289573079712799731334581391210137668702900481974759058311148952723005044781859778988405002777692949117336232091271435867222450702576670818435052680614714233426420149619633382741059455238104700614561921920835599041049971184059206073732556629055052528221853383888381147181022883070473104616217849491973543744309516963022748774859816331650104394794759394486879335260873942169017321536712251932000940809983055777071599371182184605422638102861282118932222262138902917580936943703844354321286059082622602065171080223134185375239530714664365268980598074236520479767612152492816449794413144273082758536131364747683020332701818979435971211751779089540490591855176213571225425250788471725058285380458491811444959587335241468642406939968116475859314836386689264844506350619176262319978599161472178767801227491042349295347947108690644263410934277730497989816516251975415278817982480820849371811858870599939788005165433874837340602510628728334694838707354156923622413581893509258228417674487720345742214200612255569558841695884649568324571552825755138125213268986089780288505266629228103839196963985774552703272667939919492319483492221979966832530497915214375592013270990195526892449972986331410518142970657590452918135666736708811572285164278610000926647525802229127519624062171499834658561381149938198553079334576152928212515211256330246191005499071874928290042392157562847170558840959443037083666990878939998597379588538822545650274861465768002555371297464386133467946430433231365621392183027109949505059504298555603492786360480954196536532766128729397290832855739285980987347295484989707664745104740000528414949838182038444255918596657076354850593474949345960935737767101570429189533295292149346053721711414864096966643561282050898741011995224883978143946853625492032045355860382016712907590373369286420020101536333408373192458164310681039894237512177144068261585833982872717679161271944764315628839327176459212438179697451767117739395168642754490741793083213891017236545996638348488058987580774476377916256036037577287273091474364173901907048370461808245030979239589588841579281331349333127535673975394942865147051122678843316587141827135817304282966033454190686166982124862326217383960767373974284844736089167594229443313576611585524397064582639349119253587835542797251713686297775187425062583368296055494867958155083102262589576452050207644999779620758751849734575599027851465539247543553585068087295625173386487900718496843257019106734943136992309922806575451365851414953811691189384920236991741819199531913424822775298024423958222185210726703288129497662250276246768066272889748263439794010818178847560065393497610883914514351644033849039918345993175400429151342022988532987062993085753004754321900874835659004858619412657644612128500867168817370185360141954907818294853637617531414459023765585708374372854734368745457276907140408666130221788925102709886936045309229882421558262550568623717207717584728003753352893677517696134960049337593415613483603500958507769670453542796715194007737920752817222632915653881749805068331025337802995312932791080972886600825382212328428855794027077252066195230081874489078966065948816978707537983672547352865319035677511946106551600331647219822533097704733548966054739250119370971131320617729782411517226977368012388122933652668634158423792780664362215636301687323558230697932744329264547289379420858081288943866576832274529241544678971160930354528492535124710674297077546318184706804186600897789777080105242737480242729869040232488363618718004122125321498212152874228299145359226444838211096320721356764790663634023861349176761840762965466626386951303148186119984437150457480249648605886894411686983169177391782554011880476786087229221812957910055701870294672246554435922948093389957369623959640997358459205936445174150289083351762669190733750637446610472525330862904410017671803728807992868014743530574610498826036055417698962671754658675392554065804490851426956938698564884681658853022373602718643876980299554260535591111309498158234432828795887606344375255496967888164046354819307592451103788511982251362437602091447374001701361435257803529793984643322032461423561384441763042253796634906722453341923997000853075660540721093262477608902473966761822117311548342552012868457212249858261867795087585609308560119837793526493508625257780567082507813631331445257771471482932772315751299756511803515385403041394864535857914256723717243448238898663177044634740822906861371918618630109057882729627525274563768930746214108562800287708312708056366359365084093273360919516297613524721939160909699806413151001751795537494631783073392705061436683376830214798788436453921373503824417406806177445615031426683025586967247274042496569634596875819804930552596959474210312483855415529936316605487265789751283372496378393697694662519084410062214629393182691086661916276157445392217525487088724750027901474165174542296154497752235927879512374171350572953657066876137492533818411079385014319498047371548329522447316211545893725053000424376984922831604182482324232192756892937207808838985214534901056192446739943049777154106216872195584513352132707104633415244354439676819895109822851408105469945245872557904874424320536356101369270383118655631992983134660945819564822960701269717517440769025751919121409689473564413273676231571338537414598432792453747141270629884155965651474154941128320164168010569211349942866878948285072624124435552196705104394621499095036268638438135830828388881575241861939265661615832506489413652256664173198788623392646105871105457813320269850695250048785860264742895339638396420503699454723928485003945981146764532491713056248623789169709687869431576613642983038235133112448378789824724643406413144658293839963549507870375614397878165447821595595692882857494905334138762904152838935427917605392756021552851913721436707955217342473344796723522653701637427599443687222509773102641023995879733839617017719688631701792698074576347078208499875698318083959664608128930435059771874025522957129256246619244321790179542176485452770643822925375496123397812684860518753259605905321066214419377925614553347254637940684378696356472776331739770064494359856029007697345529723527002314623458393312857994777283143504406401904656751124100925204344440668334307529036366994327578670768361559746598581251483605533637347504281289573851566077507208684099731333555600112972837465567299615207139319312584493726611004772237831170025928285042997138712647028850525149610397765406261701028479512486621666926454903309997437782186499205381061851196688305288332089399458436757866822939124257492927988405412164372199287052855078271837661279413418239717313527763398430077756112848238884528215241819434731589727674518435721404136891872297359339765152397002706903850064130711231095619400116125572157818092211726234547180994574198029541699528075130459824494648480633029249726663639094095986430745829605084445544009809480444915119086790511130808061933123283084074470217066086022422633103994264847856645271433209847059162734611644105013803043927208597713590533204852050603759174165266698117101235272228359912992445366303042564573844431109961363874651976583392628987974121793352874263562120440384841181612969792197210931363346846341694298854948731158869564330644691863064709046791577083501156238056548697475265579984740256683281546838613472531738054810742313842977826209244770766906811951967352942843112297154928749919058768683926518365193878568871739934845057345303618426213980619894445603370511131802005585817218060956741046329519285331663318731709830636991670740569247342407159959848133468031852942875164309740228084699475351431174189474445560748041325264973452182071105562936825831824722495080079370532258195679784916592673875482554538256518153295675207102150904527038822634860698023287584004394629870773358769670756661985822643283481339241972063091265791161199968800790043563226076333561637508046477175720490252693674588099817721611262896659604849896541447649906030989085020222885091359084001991215065337074316656681492175411904324364342915953690322175793673122864674045355935939287398403787765610520993211167849791821928790635486824656892582700869148379734742020375011793499734569854541702996322372762796275235120276182692947060321973270036375793974491599638657420310132913272977324216446901197608604325556595235975575604100059131280590574596839599358739265718557571650595154840063700583176555221005760114902737626625412767347951057625963281228057662995254137352455590470549509226837471661999632460726452443861943669345897515801308092940195119453437695823432930917362332417694190945961746592013822708071369088206005776760609243275921416459128717244470703906379202209490917303227891266929898885203605364486445251599296913170951451550112894705236869060403771273325471799315262035860254794369304815450949967546417333023186266556381728172926393285980981998904912394410243992370241315023461885071120055475064977125064288230555430451836819601503322897593837058499228697306005709188722490998458654176822586508347287965170742956051653428646841127402706273860668864279513499690521202368986486530428830116137092370353244731440627760745105755438817039746397657415736547473222759707175412655863006451887949676971600751332113302114448631036826526523265059759755360127067885341525108011185479307394610738524737081618377420186169950826398697186272520287048642489454172466515261305005636006892468429376846788884579326836461291959392648527761564567706346338100612169878056121053742024683241656463238676656188902260425127947399936821391722260133342514533938328772134185871307526989807973187939848949583119197848064834203396098967929123973432565461074601708590404302361615304457125099366252486931617874349837353744992857654278109523875534058385556434867495287937763716472021415721681635225072811306301878824445402093778761936440925752869957333154287844897176789144491959690444790250629515256593290205255860977326688946273746716660047175176071103565363384990145820320823351228142324199198904596468352699399355151259237038526183373512120948053509273483035348721221871346368099269353608991614200231595243199988523821137345776940853290502006322415634603927140207089790393096781981698946343413473368114735660730097137477833444075367468115803892273070618771284907450321777916982671532824333321794383025284047119159603394347191003135344524657228938334657914849921352324730276278597560746348896957602021962106274482198386248625045434544774574606250157467115839632748216598201402934406870533490907824881168227031168404213729559950600780283469826394897279471804839919642573739397306494084770404687301860113882020006806557305058817368015824817319749780573526037350870250784483603060934833798442947003558233769085394702317428282847251107535698732376888610669625628700691818952748890626343012867410384013474076010472689638075502211159607801970907399755918352993504624212276819404309649804382752606107716318401365554917525945121535650647537830918169111287504083880841908799698632775176355371936473589872846869309478586170697790402701412626836739545269117503231503643054860759387643816716566474891446086547255269264929943499663498364181280472504402512529718983118870782044651758229031678940723451758052348610234810153061475164460195951069943769809679772969112382291341544411012421889108614588186886155996163055057860370417998635964339052984089402771414576289351332015759675819586991580836964379440649060930402802601777945818723132121308267531875739442762980049086241534904207770146436430874289321095867302895567183132009716604014350162223697187856877258236880851338958403612249625564331179209714631733741310297057279117972101345145078031350695537973484882704553710630265799869411867401892746486876514541579554932581545705079374762181578583507643453614816311846814815022488193864642034360617472095027603078143379540288118875200953767699584153635578533891037026870643061483484248020825737689419526260865750091885107690497542064584288460949792614891663698369970819531814476713529748052755037246722351833413084480128846399380424867794450361702302713610064970031939757661353787404279127326061488316656899951186200024990992566608291372647010023311051481684379750993659747071499269461173518508581017591265748299038553058691594837067168800181151580166076320436971798174482827540756403106889841492287069654578372309427012271209539483659155467373604818228169171040059447813916634717865306031816695913502109259998503785755691074128767246909421284469153539999031538000823264769634791191208490723937742194337955087081798830943338408572347213899947123632061766256596318806110256048458231507054013675260135696957806661797080370064000608970038291179268674368263435232200548048443323668471894343289447894327820621298957982768921056016818179317217978643770074498246146453229467319347769352208786398760677076080128774522090838091693376525896608765424945948900618825677474208527718262579433972979776332898884397735882878516315980079701625791609540261967868232927370117761663616510999119514692111761924714077496394100596979609978149999150299748275580842168786053048030668326417800610181673335218178804654027211449029036110338055234630309822781735890406635678365440575661755690358666400866398583780429329580272578313811987488812207463358480576150779401798880517130559292868855883512327642060829092328031303080802984498286112316541230164840914045953098586862296035348728807350049040502697754616378706589505759928738867211909411108008047869067226636985308126436887732950271856649082184496880482685233602577748705479395360605615443909290570300122146259070527641381367522549809488675761701247105848196885976676740865067102537508862424073254123525188904794416115131266597019952168131866370492384019963155881585691418665141209590782865615090972670431870418910134833653820518941692408547816013480843074082543041808304049032773640543848345244209980978616427631363393954989702664296652842095739561170257487691396896385758610700042376196040676085984086558593987445511440089083300453202980191847088814340051966306561666310263877150383867909177416894603785966357983061735070522775839876012590386518360043588734911430416427517483100324368329079834860026996820063219080238295851909762250266479451282477627989441516365364179230798574921614854521140505689621644266603881491995708990109936140016251431136917278412226091636082259552082112206941132033856131439753898683386929604556773873508639768976296851120316606673325413400670474702305887109948529969484403741747857441436542229851626120338846876552857597039502223972702846739913664479516376550589613103596418367275148854038992375866324209440990945372003416320172839462296023869402720357238543041287022764419304773923599101256974472702690399995167115991900873139850506835848176001309533432239144356005081056459423908649872468986799966696936115532601475254328856759225087342164180551555455962654046833067618985550254508311987520285899128661090805563210822635310954266792956868956715229830022351851833970107027459843291256043864967169580812307335000099127057921599780704092924520020118549479890680193878845395764320151751522291159599075861788500637596307219315916921980950347035448793233491372259935558269196289011551075082354664500451672177262907461504281572311006409774870332654168794931061925887394887608239599010523855506457177307667084409551872063362579272029460872135472320127860761300374729434305593525229894169259247286557147136773502152930872577732468025329796415635143942304417004830536947391958532122161203381388616852925256944642033539635933200124249007200167968213431685296201828240472498016908230820915405571591991254165169772592809930394290833753079782019866011556768816651256637116639073739748696128480838131223340766850989285718282526986731720182805730938806790813019762736373534326487566270495536844812376439768596264214302663296379982674177018174556419370050350059934244805973771417065360002889517857557021418722749829953620841574279612127115050443227232831922318331924281910239000646986213440053864691382989388262158324144598605884551384635360291164383552889564242435579536028551651125203344817019129025493544742699431095388325735874840936759907494145294864392984047437006480371583500955834517230272966570679613654226553121203049624805840293605338040640223339102643604027797865463612448851733074864950092063195009133297114492451140197213847131750460143411827156898234566765674579346323246987227656374965676267566160802384280481113971449110079707512477001625106236257066881115983048351262000782247855339871663344179755215248252088998661743087261619022677279440603006900298744787220877112089418851688470266014039139805950649789127611047036869241246264450891400497313403606527448742142354285109290091586607444684597610477178771654143011081623411421008357580007729138692998898342729646174934207772588555373522151562891689568817872776245951985672634435391816717157751068642300510991493988057665970695059169409763961577110459869438884357365810833608089866143828821915300798659194967703933012484439531876502736084150020092289270873116334409581341918520631583707643861572718367620544294444765271403481198618646457346532633654515927712718757400505501378737508745227123070361478011641287396892167833173167960461058058060563699645501089096621616088183587616136139438364476537536908698292785859025774428647537027280297947782104487167601897663212891040934502090987498613803350377512216808577344870701289858123563908878552284662788259120835060008461795680803566493618564903689628269840189748592774767799784917293070791196867425471551382095016977525596318179587019294547159084852015284224984680391832311888863319998768332638166688320716692518288762493148526390242095127100578725589950884751268262328453759570403853474579724382367700125936786436902274177346156361019312461756443603464120429169922716902900677306680186399564885740600831772700039325717823764463816976894827597812646422080027936969701777563122962017861393871659709732114422104619134474397101316668561119600945981242227964416278940950162347734042179258667488866765471477184470077018898104302883875565721848054845017623812752472521298742670325321472053063574635222015741745010299484335894749677570013176742750675507481289623397405384816907280852722580567423697488164309891253665801500088050518087905742793870444622139574845881795209093729554288965268511776005776744371012285839909045719314413620135938410695752211996164316475054617200069559707085803739972770079062106388371944320047419080356357686934550473342798402086708134187110033939070447870292383762537882585105107229680996622473235415280114274333269185578676538576772681343333629568362107388478611250510459895041153447195323337173189617034964622116214238769191484220323924046997348251000378946372015031753544062792478369736401282481410541626517984012502796549972784703149114085535965770246271919573151561401907197714168722447760970246653665455126884702473992466779795510043347149568879459384732776368152383437858455749220165365611798040167444698251835062568490002456430632907582093348320317958705739696948002421843664011284022936853767808767175672700961406403380399241289825879299284172473661587818175436183081315373066116716753322233370996289846471853150550874592792965683567668472698849787162125652987580563376980367625417501019692876723203353924720431524269252798249105389744669951264606954156396867313579974155203967020452655030039695144815979581951816477120257033690085665964119558082632789343573007571138784531012574924120675048078411156662591266771511746531468542413808215200939596900546997209681689033530516439641839477278592398745308669755926028304354337397940899115864613975930117449674621414889475283587249230981505904435471542619689662095509390504031896412209360733174181111024563029456685613638946040385210937381452945334687165426402391578609192544177352954255337321374650013795083900525146796444622298233195820614238853067582426392113323372071396165434942993127634487333500870399720826251699276516049916697841939325289118628284144987991790479438892417055806850586854261876320323400833140717375970927447557091009829912524336949002766263005239122296487196565867996994315920097631157562983892821484299452570138968469255201668284270304956121451928286702430444369851377262778850960431498640739137568796515859793963814669876555069194295052985669937874532605302474996659501677519968055089590802100106844435287858935346542203497777964416300550841369654797008927879302317201679479484911387435115365605682536529028993822979531250014433555298645308449218875572138680816783350849632128780141755879640393885081659561020944303870258506786583079902496440568596593439753184401374767519038620535277553714002077351187974689889317873632469825956299266209925949393436869501563835229157277827405853642319551223827673153834817130116119524182519384340960044658690610049632148545081927263990079374886360426166377791652672210682371920663603109468861980224637753668581217978579244400834210337312883174356465268460811261579799978939033849029440890717782238876669497303976143402202145534752803232977030876977346339797065352602016935688075193442997572347763979071585699313285395146518388007956598967665021605544042899209236266185949966055061479305429939037867118167610246399138854948963089057731056877208000552595952275666053427615994622078843812707811106240186693672279059196688158695640939154639991813792112044994442700128320921332170170257980716040017022795247210006732167050515075244472647138089616869003884835437102803641867859526017499199131137583168202782562847899555550917935089875122346476135344335538102090368068950939006926672737432929949670609779025200982228355826985293038880471241310777163602851268362231452144153249806759562643211748116050106377837138656967975645994214623805441550640533827629648679362276869951533784038309065604690635802095846095617231398588047543752687999039197971223804437781884332954095445543580958333337380185303127583897733701167053770731920054856122731265726659298519518682873138010858450463329035752519901798495417813186283429043173275666380668843759051126305197050982208958922847273609322026829502842277540468831446226213468161064473547509971142471218704042864137879756859440630991433392493034543363014430138651723116265195767879570765781286247843809180470250616913407260028745459259390939449341171160344828404280374282819566354192252247566036172352521888805196783943605575048884407034088712629502485069821990647974029476746256793909444421810861767140353590236795851178313735966081235273313310972200505489982496562294572712699341435343397871019609674876049116891237410631451563374514338219597850316323157653665983010450654026101870346074691830608147254008089991764734640366393247671065341394808469905846920138736507757280054156354789688104663735921519754868667164560222542533656464308000824296135631424782181390256232578278881530817643656736517245393616611298808013254277607290096850833094453131432356645331341528955476575565693705441058233478390510247182750157862588218198190995377575290795260540379284219287783029449591589680792944230500958612956735014639049740063030555441365675514717110518576792691000381064171098084155588320142747010804983643656310110587995294366220893989441032805600219849875958441545133360437149624286936279787430947435002361378059415954527231564244168488487349901299265080355255984092331266742495532719423370574894904135657756944655215995027567833605449991352980535379077261323777408602180244488248958932735499737888311970706457990819971662123858741313239551963366650845011018222956588961971237619073264706318194824544551118465418631098560252086645861505230267903467076858575461734791565128772564779063639897531322950292514447589510078417737123897290328632545651172244869223069201148902374917380074940691154677082653893238603337013229848919943541894907298184213940228918466626763059795278225186898470756275968070726745286603446865482044455270461689486550492521709625411306089501818566847990312594116853295268396552210138063936433099519611025362389925450692764318394765537029806240640615539454899452597512622482477528185265503067500663051195724900453985215233251061151637770603276252090164658747556530092239074735572885240958491677693325096089366731946164249737718556173735568543287326349506785213249258262717087603101547826934903557216691674900275083935677868074685234932650633145595751634435351008232066933846410536975860969240720355176656692253195685098231052032584233737879577822114504758412057980276656917329715423233641615494012536687195110216863467600676618767316899918815770325568045156603492939904180527632939827401516896944876993510347214403513887911177129487182210051208913216968329435766254168711549891530029984789503750660732358515518276099786852125084651265708626547733481542756226015026387287956835730086999615560651643776576981298273423508798678703251807029640035487742085492385768482877267576166950451100469785664751426398439595516351292096936918664889700715707736342454527586874675494357087999317088761429949184611500407874826402878925541603740947834383065174285974401738415365163637132455722249114857260586266886177948180872263856796025348863280744637031998403214611863040762807571855343294828645773513834196260667924187125822167718942963680226606302371552266627311433568574534836807570050375047728759670964151856016850620427113149057353858751050220351481971682333964624849865286669860067767565594494239102166526146900574453952968076219789067620664520916637224517494878267487877869896681432741279526128785974054397841880895604085138617823358618472974593054217207598063312708976853197771188053652409081659341480859566332414922922070181783800563795609757865393235197778832541684425888481841005207059656832696568848084819023205395340122936862376786836108874702187708748955267157509385411074389119526844573375511240282765056552255666869478241750624015173744588006957233879897361283401999491974160968274728204680186637292002476300559978605227879962818079525818922325831637353072388739856817729017157588802339873291383243760968088709816803960603564942267424930748601781075574806590065249964717692486256099967862049091765126558616024749951262710297397931582754983774868786430667080697097949854086479120858934730463515998715986138812966953766224655588486722292144164127498664953369889516813972097023025352973179962873891282185731716893784291041638093208117872160174987023771460950585993760778361924414405673899692224814956168072907689140500676914834433359554177533825353372163810267425140996549536074739996863555774159768462874973504739797210322501637456454408452349624378742974857282689732146484980780293255268007711506686436370285652836990348662812379664624801600898879366709175459173538416810076935361490916675203964346183646150067299158056872724549250051792427151333485792050878588520914551523332428553611743634112930039640244688224973414889424855955854059910365320186830542883926612839642315971431351141227704111667196441411606090569349623815428388169543385291385089666040935280779696240014529970338393259160517923927078663556308345895048771115162790645186800492346204858243466389115157414360620130580767128736491831823424996618033537762994198860956984813912956722463394470815914163774677511311968029820217675593479232945760607724462866776757146851813696490759114420293453106956063413891941428659355147092531474998514537983975833051672380176190630809300771769068968440689246910887427806707154168867313081938914781119179929786925926141341746068597173118114195070466906952544489323763463133931238605215119487278782844590356957938235363093445199762860423013862322268889708009315306247316030675218449257107615169884495226459412365810839997657135758444220258053940851740895091093383572091278251610940229411421718884048683761554500766618287488766295934930961684466888433739192575269322057415226765019864086314826308032647345909193709759599388511377413339049578981713659923364612094817260750821103182653372195446407536447417471713565994752798859507090056469994003522639064689775324256821020012368295839803918424743670415142902514142316783467443878393314747817610829005299488559196988176757045962478735927176003131744403733872608512564348655966453167372900862715336330256922989354395205914824161588542988980227850049429803420816313101685934242151770260897282856580202771973777280108728443759995979702737842403938686260784410389845273623990106530521023979653165654303261920136715517521557627536333388461466850588165492283649518917415190870422508176552795742767762083341546897236972144979439650516586766556783491603654064773732254362384042681104375672277471231881232601957152593464726704593460976899068170155325739095147350809439772005863423313701719664105502643955948753303259232572739803224872581142536230886845796811539366521689730161961007319686568559493667279146047138686335341207761795941026530920917849015946200901491710872608513803502613285944921039085631197851318188756276424467656604783884207176403489113038577547639545513423003796636629258631225677563640052645202092486408905671593565400569026621963436504516263472399081866110337014624133507501042211813149666672233519893523730351902141083640469807083150943667815654287754194067024038424876756830788614388042235708600664024774125475520908462779605926555747128543902090461160677534845309162993051278906420014827303136605178850642973938867782819393609919968254100496645896760804866768610291024950009504580729313525351575136214675829891407671197788221630200663318040327565236991636078622922904609635304798311196202097674642089826450554951138034595958768269780318365164908806611660019644026557686289983693658603131825453160053675473898795842951902365945334763678231647533237034987782170337471470913268556767529205640157970163411818012894857424773860751480841041123412340900485434781303068052816113732213767230979643134528057050476891612206871628540247413621163951253341979768848996187972833644095813958412406158085024208980584373422821664258299118747636984671808597889225344130938915798215961675037504552971753415008909557772225650580326593309370721872005344757247675725512138321818827051462570726733711875042321651989503856879788355132247868447716812214375282978642303224625284073707876361285649177316271612349094037342114401863723245291404171731026003075847539895778468645870119155753660073443806808356222522321030280400418654824074974195856149478196292160990234517459104112861164868718397929674217385524326046457616956588245013731511891339528811828407664914964168499484929737570087343027737824112175272336087817366574068036212015959491369592971265397904943720101653865294014357849443844232020329713497978991986984358145806806612436264354389100922437065630261146758150234773881324950742430187825758047760968540238367791142816513914814741087600935252584797770590555464058172049249790296526055818467950269161063287096585318288612680288704584787790744499158185963475320501877335265360037970976563618546631596041070828038481331978205904830912055935820414936429313669687233945396554649829456368859532969901559034936446522914371092130855910282216799934928305776716601154419719255943649957643592651105060326147748442300565423617263131661314431840140931733170969806975652449108221664175180613103717317470784086026815645206934059928923033963221245951302283931137445022515735014291607073569175441570322749909959364802264860377910733819995833760077252382961627560850329564863605267501546985892409821153813543715780092600352984654251989577125511564869603702883940365635718463726834947929542521939313648879315423464046719395613065429284567422219155300668092094285059083490733024001896270531821647128601347538867625329955394853273606511198617398685650484204827394123253915799186145740072547690386604076680421179424637821278246778503222097374692821470406821350614382246938579094538531051902605234663921810578454454312103818611700638984844102333948587999158621757994998409320879126313535657104941717644376454620057800418950141683405534719716716940217051481397362759496859897055099542373930092125015493737697135661023056412725648266377516393800235972863628249314432964718341376891541863247347892065420865159726185904498981739943720974364357730708647823431909180626280678041727934162831203916725554305937388556604824562989536247158574058700144507582453014862399731396603327594810544567890116372610515207931424190034478309357402231238163925863850672383056995778974251377094905218232085411037058528919651681365060037060732846858472052026519370269797532374384398891437735553620173837469723817363885790734177286944495295064349862422619520256332208259795147194559822560241781154560684059300629828205672605031153891710123991404857652616698999658092714148866615446335471711247028738955729490286162334837886236272855473333018272524414418660285992657281888630978633259643185033494752775591581093131568839657929519906228505943301156310420526621186627313684341654077691446936099573411612046092569297148890059074050560884390299373800278074167665662120205752369679791963500459364672119792455676629365210528765424334891357630658539297693894033151293297675830071150186904313804212687867736691122300145308301206776712440290885945730198397043745759893578228384770676162495203484561415778188177456236685888887990506084533585745340311050539538126016230783182326251810452565393757645571237940791257580596105153787092932230735716060336465655190157250241119358285519885294041603788016779855656919928730593766298414902548614607340666079435023739001496236929274292190564437617112195301643591564147370544305332298138508530953212506795005159900233805692335204682584680642002548928660077104391178172449246431564170591874294925578720412286867595756962261191937626765660411151143129703900258435972331296007035101065013513714065588679963857566853514753267670142246454763440792240170554933538201704696609744259911330652488645550719189602666135394595942466161178023297916466476744905470656803730656118570621638176073274686944042644858901632394994367751866089536088762671531126201264238254994972536060963885012331346516478531847606671866269265969849068319997088699072931863179024870357194886894874489442267474532850176208769346740537705061151202898040476807077834760638925634886035179576854168146342402760037009416076839418624491903007734531547424464320772783288436321099707029480738716224945314896804085466114646843808672324769256283429368521009771562703036724812702423077480945108852090416020126339641446100237566166112900608021464800823647041329485619922321454322250640931650102026695863144943200784251314852543542824646892645244076954777516545538366058596982315964757000739162578471495682995111008337970543313935167069284657296471479983722961787591692859750873702108961161012352633664455186298945052954732851034220709308259739543992004025769779657649229023792589577592990671307653808209084736310743549542310784348013933672342609449760943330358216946052749615176755987059069112808113232577520655144789082759404371325826038656396690980844726685777097064095743356294659183534338411886345115746453439094718950635269168529532627959769649378009421392995953289657502022129871396411579709467459827624193765805597297623246014387926376007482622792804860383639231691521462029602586056694369331173183674412354311056367804115580006239195745201782573451888382132090107920706445787982635840333554192866467913037582205860195770009281002250733437697134741163252617171604066230735588259810206603070390082248727158028226150512049903230389329842185807412750806606359724968488074044835678305447133599301038058766228793531916036583069035126087051135137375030966823504834307816079625953548311783119374267010089014446407224166668606671622193576350312182744165945425196869861212767938843827767614538876294686671387476222749073039896200746028706266354457601200549630732778786678555807583578447694115669928691330556632755965903913394030242150561827834428547604414707611258186543280697961566135498728384046310830353986382397752427235328485334570509005632790625258094518783067855695115973381208937990144293668336684041972414359419122538626701516716898400179807466413448971310714649068089449438254499287113362582461454571663693765006335685459445362910142604045801090288690499606269281004603379182148153729428964942263368026628795437943357670546935393313704880216667021202172130933666733302732812164243691835109885076741094489062890283061483270477905881677811025163894153282974645757350136848615581585141481667250959033473221674343689788126073013670426447596249685860885797371348448159116578851732284869212827436827102033726009704231118017067020315185225361511251240823931659905177501654394358526970282980113158308992415578124386940763469042786682148419889766954085400820852243226984219495731794201199473320077039047268010846382644600783353865036990336751049160569045540408529473910587094093644103669971961670513280962776552500101250591487267469801829035606135240821465323409472901459653014843760124005300735144830367142872196175951486725059031150946272835743549628110098989561534318720797779155309317768332943974145545864035213208493369946466780272908779012113521586567815449590289714901785216411290127914577038194014446718430875208291658367905281272418675739373365060416321726357049823446835555775669604054129966223548109389078928523856645878256551330907851784001091749859209731229207172070542988320859540525211165986078469491752473401648103757782395951607793798574437410228431592761314223083840076918847364213821265728726013034692123677804939076265088377756056974630282524528010136204398995954665537793501863042536609861777348140683418564373579402915448021302793431604537982651146848382492409486303865828407625251370468081541040214034887841788133011184209407491189066467387401429920001924318606187992968147081663063768120179494501261954202247181400682939218753765546500294737631744728968528974523280192368141748254833945861103938248186628686130981866532761097940329440500231018703843216122420285024039862609850731775287564618674849024723480350422776515968417765877023149529208890501398211265730399787547934469740299530674327619837853314417328726010807043475373068053991581768830016289109279548247275327222906015385315062822583240528296739983234669391805893476664700930951600040680051106896583448207502075490343799771894765772551110967165009129791141219831934310872227843935429542451753164459924496434946154482237263377016204086085586127003852731890014586757971763902147143874039665624100325145730590783191124933906638795419579682355592649725608199930677669223566747479529206495957270912465384973681731453480288610271282476537974372355383276915589140112538000665560431675897406688402330796735870523132376283562575947931558354744527259198037574482331997970671550144494564257617992422123160372804803280715986965493930276505516951046641336293985490219265781514512401155355298757609734360477890060009530473993383079133285739507882790186732574189053949158768264025671360936888079120513765033421528000441214151368493820642248314492466843232281121024658920537018621062726649841670480250110641739627233547457689745737737029835794433363856351706434893946393189716384558651829803564396803004324252774693433186307883047416386663324247140357183686498853818972111245772894153145635472924733382787681810016557325958514427412066693578932307997105395177378241442887806025323986837482296936219427150715938851674425839616214745346595531411962295270792148722988713889496997173070414676045025408164049961655307838673872093535351841714884861299904227152676458943630248225001485146298331814016084352463565494602946448807592567942404731753708344772145988636385364662503538748778116372303697183424979140594181730144009588373659664742473518568719572927584335116759685363295235041709557719728458779739351152537048949530150784061736971047369270920330766610277297918650557192581268674030215367364837523029491580873955671363322524238904123219682181905685862745398940568364790276533334320366750076650948609691150114994447674064161842123466123117944848410100726789671293363523489417898449716800527153818582444654010861458756314649786348459023010821610468509455761157511953402530046559358278901414900949290667504706237342766049288095128562421583769384304575426536838205805617116336496251350400256118214842596222509027761964427156032446457445083329023843640963225344123260466201130160398738085722728559259056790195617427218306685618805201893517663962081885604652330526692688519307302244564385370991916864067407482581307379680861274637144213937953861444271176129485308241746436849754415874419045369260603552606742174747839303381198386223488268163903147331392432465710951039739870368084166360674454243851332378219198572779098429546780717340635232939231920399481758125339805876466461044153310203551561246909525388096476994408133771564852834437312553516733629901640971431824986242402849527232337112973194731096245884841289629405941445390558875517657220851485645462021507901461097604679523612510674355898309353544986194849688917642225456935110694164442081806596898742182555535806914821234682136823942359652055754118087958555145219180026659747015448367067621048809862110892725015782273801249053138790565965417806779727200251223679201514064970932856472587256458570026618810667381208245827428701978326000178964283479717499662435763283980544291879633115052791488907632680727016100284196529264469697205297201430332108165976314602293569881324415154359266048807279420610394479454769510143502116659891740794450805439219764716350009023698758552151768339075716640094968641783722373055429668608524068891747339749016503852341635601793021911347810054589498158317996394769506625075850874907576764613361619128718955521712801199232462184053819946283105348778003996168819587640140125379123568288672782688790780640565942368898921103510426859610968826341831559086747991181447186661520190493274368180254196587887443051500096376932950558608566400959025457349041042945743716631217881211963748320383893967518825114878570468979461274420739905839526796117265641218255788481826648547409957640199788474486426242903589808909206744083932171665207393142403705242654978780103313316225238073170817245000505086972940107120405949902431189291847191174426119327546174359176880724954003836079084015127561913383630805300117364133190557813849084017615282214055576716465235303793950004226943613146482736519402556782702533757923007126173305486684573839037289527352197163275415258190911516915406699011767964396685052978607507275504343170975872356502538317716645777327231534804472816107930413351847180051266095801654303247399867722605289165631281382216925001243976132404716846680253793830355724336111316834785207484821409741122144345485021936754639120538641302838142072526035762779591359494132016796591807475609777488321610687025369038090201811197962857415772591905400836452266851973890185269351039811126177039318080357194668616172748577661453751008429311047928438089094194357680514064147089256912852717703373435639007542099659543902291034195195041365454760597042421878067569754358144137807128827481091268606809391685416068694954121078979752471946498254188005921459816128549930027679480029731634742279792995053211808879996057796347292706597345380969125396011090319062347180026378065296570190052425623400976855125981455723566198719889667538846740333080425316508704174313394457927175522760590992469230218073047682729281202170063882644546394534838588882555941381842984826883047245599264710548108738738660263714816116104248741576448922365068966062608117844075148475790104092223453741938168321333826849011877830466507304443702839226091646957297092066004677454774338316362024885510666829610937020933269071336342141111876204317295124494810340026590403007179507298213003008082819211421079957445648725297907380125767388723302792187057188827488582378606475327299261054804986858103342329909728968488460622807820301326237297069654521918342689240387507123796625946943499882991285148084804913178895124778891846246350845570488338248603902155873718128913331316876630521127209738072797112073262213362363062015508328601267606927799400885579604648951377734182491450351772273371237912396435683311174129840637956409713443194348454040198172830750039271394551541210784415204371163574376145183556928846308576560620574526046642187376704407833712384002672074539964858305341409617318425607849436856235487021891010861408667442541995533882187843957680888381859743258299506289987034915514809169268460998723768809830213687579066807614225132161763351259969235931173825265303261346748287819558893728570520073702630869403075877482046572910064378223430047578509933590903774342507554026623958255340174833372592439093781833071080804403245329769409059319194261244477660924471760930218382593116171482206220519944125921940020359086365159381597689760892597950727133670213869070320230788075826773898679429375963234870169888735229868523787614181798364203912863907773923451416914685353014663356474878666753459958071120093379120175019328213693995233884981372346910314094943030693780909017752622779605974785420819053744860239043873175491829851499501417912117488399518420809742583706523470608421421589914526789442931170933184451135890306192346605292212177076840581240281271398145222936706380961297052106742987485396728797398536153182627481884861963410125339992597572048832223933122852429506990823339133249462800009333046188906030174896238781336967755587821790591007241771198580127953786633766015630502338871079538004798732052870009465410876924410956868380831839402549000562605774054306468598666778035616519041294193212310580420905231697637017425378725422004367585110127133619464360390423505906510472578224052581423350240710482189735465935543025677191295773108817858700577333105102184593636030868361594750894913052222529651403176051774807655619439412046946572060890585691477359941840780412683992489924162645632525960451662524659540680920410013916245702014550325721285361232320818745835212269595797392079392924743389942942575816417279934697282939779680133600150113298730770996184497217267585017367885611019641129104623353976492377520503460832684317032119099281509730616775994207435929924872026216734586926116236939332035614719873732937435662654692152993505983282223616822508544080844771710340422050095100597621256214064439617182822192741966440295217364010529625048060858239942163604016455714883871707919215150119012124687307993674592771609249401117996247367696055993665272169642957467234090741264668332002867908479851681509910887451060555493171564257409784267026241810222244527441599053665644228949613516718127463086441554737535761352147695746210178431599848336882503947429601222085807175534823924629435677264640941138704488844054931015327249456996899358984711543440738230322739641073470003145013964884073028422811447830664380187928125895908133267996079828473103691342584335434293204460712146667223140243863630528767880687130191660729232472392139925465311683849125304079818705723803682717299468686195469622368459231681771482513309684968083312144654331677337470927403496048651050417200590849232154673818610091138043261914571940694635044813243608933010425161968542603587520786339109516519056882360320242019223584639561839827161938996259714714241117286826658234403028602080280679623467157809774695446821777309791985903314280289438018451305749910540514739762401348393845582484411082352919404376339153313045772265055303566519013615034630387598864508583989442124091040170335876397371642589262933486444704259722132112537723819802332578028803105318997024218538977179734296879401811892256692489491841370568625105935009795458645581193362354401256203583857653603258379348600406297083245129211971466812210722484631726739496694477707368256818116879953104757098902926863023300664297843904670030530233145123954427631349998525278913426700865819262212336476194210881537244988195768975952593626578525795495622149961203693642674500636581638914344886850279725353587273918164514332820509030199069454299886040974523399285012926503335586141961858485917733502487400095312808997751068458978547712960700289789974922680865552986659992854274206786054396036928790465249859429825488069373252085910152773179523457738818380822891204689864097795205202123915809457080233698849721185318217380718028599178024042455407508525779941590963669680853546173082493119931838767507200110592728461388167604914062647470160881544142575762204077031113696780425476649591504748013540461011207516080215972572407857926222354660700766170610025826478156578448995825755581641112466690442816499595803426978168347206091325995473765287064040012201732086000271867093893081649461833542643585450089633084677165942997952394221460141929242475382326428327964909985095688158111977823246905063972208777130276629408114402571730586619641219117064780083027311633704655727433801987837754411143012861690586338001924026232292921330371482170947800922143175877936027323837095721324872207461270614560595043993419700751229162957410136486171837872075861761863206805404511012582362770586346408509774873537545719505432212175197311763891826180090459734301027398803831504917403024246142971863758944587778012854378219737300933092641245642074720694591770141337099088318164297933500277134064528445025675592651958826867374238898445057828928363337202912798373499588798006460078068597638248739239694440119993301354978600167008039958192341024403529539659735796737909688734790819981708871075809868347193912265728199224831804840915985803536487908414717292439141737063571948923745614907168427717669389040964839737694912725751293430395662499428286539276902549315987773204733651016042036459866390281136115798668106164187284180296260298572480492878941325730214612429425734726018516672265902966766796468680943778533619036396677968122186402259495112467090599389751109033435603040989438701252173005325618636863344305940518581337740760077327297279683399612444070247155256901971528678445078599030747773424666235100205758974378689432614591868808132523364572366717460240417768297962402336291802001711496811402690563581707387214763530518844474032030871166483407812270007741023611562354973813135894089143561995342316276808497798480565479950983163369662211072704437372395439900395375104538733576819915479694755381754872548179688698096209880630529289744647236539259430839778309982776168468634295926470137660676167940097340899620517987482405418474674444346753035516178286361586944540290696778011586328648242157085119328952857132710761052653373137035338340709337556845888662069798824214526846984171634707734507627415093714606112051835131767081550778654981260599881834468276812325087902910792414948153869350454525318698819278012282569283749991223968558624062978507975424240029754869295311739796272851816844619416293506293704062028713181797819275917141150479077679155441831931032104047571599497224700101377939368401394584199139011768584970954010877557238977364916179636508253183818936914987199803011393614768004171728139473928266725631909448544381355646015518533348481705837887695155624823146414059535732778190966358572371942286805627127234681688909914118739580394200531430749381411086746080792053255182620692929557822308490550071342511451009842894191153011880944463774744398322365126784828653344581031193038959972021869578922838149258421252015313526780553271934243006923450189178712057231911475946998327329767394765657225916583860943437182060030626048737488029448311201707595653528599238580076931239654170476671155556845995023596240272456894259322313431898021533780720476388268834975551267414898907690930313695571181293512852979441993237425361492066465775588717133137480002872152282876390663887625540280493775383777491799407856720823125699089456319521750226605962435056135580092820843446472403954467673388243180459617130878727436150800480390713519759743758473443387820224731521444311881480782661983250528336100970532427660060752081738050158903322806365543630277542143010529134563365881646565416311528568251425022370350555877638010745378831773904730947398122673120754096530395080170157822903315824892702643371542888392842422817315542834096898945999333350977497256085122844623741756782053873060763822463722317432349627494967309418738330024992036104144827012350143717891953196205463041432470391369088904928895908985331048867204300796223323593601282040847025744363591652410481848999581443402237903015482662370160316069891778782789186663312764603601774672119333195582258136162519864803685865384762314962588634748114327024509793133390062417054326544508914485263991168692679632804337503097116634103326122791274038270794065084069454819145155774040836988128650207540032658236735645957533485451022508859134859774550192408886690178078045391614345613042515152288604092414632943038008526572852189046088282970308791690984403459383623899058639706055208144505269647161047256595476692507039498621816997660350162630133049326053217657779130509410865843006617883599106280974555418056598183701727609614627997259517431116766402924306297207360482787482300261919593677523102828897919285867412368142999735360974952697177551419883494378068035058600032505393623153104261648892461522255674186217364116376601920387018215311941813193017856309466235730087405417428944665727363386421969481852734881443063953974763808289428202281181879821949209872313247426467632849774870219335785386311932380952388011525625095503102940298683049271958141151042841405065247520879726758425307563601390034911850460764572561262533358371810878695257381657128699623817982583234159617005651489921046319331701326263676365312266786262653948250890260596540272459096219619635434614902508744928750629250654236770734587233079737737247245440250616688178705826015190914299629760874457695087841859211821034824477965357304929054988876437114072259104802146241417454028394040076159198558746389721029359898770561261809774942760870645738185402707103553703588106163234494822683568818102938451665245326686590863536265385556200733069445333851917007170986486305271898901436707894113083224135715043092414587029456756844722468857251175537705908116222412528873003628964775897993271761812702919027561442088381859716964431459660618406949815734891632079478713609679175973578286689403080973794162380514017547393898436720350036728393058057846693056031246336483170303689626474823944243351642813643541296413203783633258731508222620617425713961453553158419887879943115300718304934616539998469121583900737879953317002133964573419487326603897120891511639534914487749152347418958043486981865422445240517523434460064008717681220827607869831720754140684332304882864956746518998190319201916554765707120986824809522033666616812665460106679271747789588126408594062554458146601474065332010880258674492297092277904364122048606870481925265578685709203652118810902293388526650690214713579959403399198286796348019583374358947536092700080583806636779189206429250741145085593217725283671414314450956162575343001125408127448857546518212684794738795183247232723061826355377026011523097815629391820273904386317368486427159186593906715292568993913021957304385307405936462128669789074543388113717136737568223591903063768635738726502773852644842948630487615965507852664263448910596102199141522978057596986099744339065068917746950997128694157374787472274471848380774943992530730514612246020123433449347575599521264718275252316612949494136845836215989607281334216580989411097394601387164294001131010274914289833153158272992250574954521251874227901706301482778771827139684172913651383211258432427608625410223058629810889275320562910008767299018374482588582332520742399561352554964212433670413039518077762952125851353901988749760278643343533968555665894989342206628065363244080204259145669604663587011868539095193966031529110313641873712533462073285114652041445443514835108080126871184907762239550603159076239828770702903953444328047662600957709780026056237766825987044571633962497504718088694684130098355217358706461078386373763359793485301386340438771397062768131848111861422120901428562009143620869404485875830932534652605828683536404275125014588862181021672019833208808021322104580543512435755304990674832689243248361920372265509922122233557665835483741675206129841784063861263762853972050029232409497446008784655168231421567132965770107334104550741049872649637536456390698942549405959709987471507895198158836088454575402888853180671633433102955355688756062362472515273615980139573625132437310070978548128522618795602538547618306826208828482153755715444837786254615869008780877817948930288202706760098424476474834974192076266419001010139218926355487916777981603527638194642669399132922010071741885122530232598754911301644063699515776696363157903749948583898564111188744396139103937551178468170603293658629593594915352533684157964788018254046977845624953070398821567702266943014335718905531448112294267135577157431577851095335672837157115798898206193479345109212405171416911816776078440237592121704554115655035640972448922258838243775815049977418380485304824329155376737311627062195311138600466438882863610146383481671630675979531797553735254550559989328493039894932521180708716012232290035446505932361388465497517644392272141955411580309249174433253345736789694896645028445330545380928188696076308187178394916303225614551212055223464856325804313267423092621593410772934377440012811588693103302290874000992652583019412362153322269054900834977491126186858233260245579042052125533842685859933721110720813595326600842853538112279706620688335489824401515284569547827485696245652565830020316241870211071875498039727731730656232072907068215218883955128156555107128015988277326989336932950639190558592688755147677975421843824876372474806880665994277002139647357172634578694270092960034740527823763785837528299140516954529454562515945256162213329186382595160363885713405999448398024610740429876910352508230637351297251035386113753486178260150291202298489676907272438873515724805789764265565448024692746683247673593020261285242991271558074083362622575738094487659801435690750160699986659793940949461769109507164464468341883277324517182753463692271505335441030035752999507399285945858328740910493873168123957781494914601529927219790220299155618515241163241553462964280740076321539384323169471525827678637422411647283177360140309709748550910003971001663122193695674703909678450299625116305517805444554160023915613088105780455086765436608881424009519956500374693302217649798548834588478829865402202702546226217593876145752866248361772942792701038660960276342732398427454052529918746307646886153542006883727210808569877962264905459127352001269135710126128939432092372146513885574139289094939968720734951812540833577017084567097882034722347794125072184454026741324658473906973423797886668045700923890383159155944355993960635326805546647042868725939745968674947701895150207854597252826173408443282414684000145669195044535853100415942245488818599309298386539719630202103910357977412662928060826287282337510831435896500779411256009509129253543209640642906464896912614289119327145226366335373418526216283687899707391549863277193486514480490986460250365839772679120476467425326769511301457748923372575069970458074288585443957039428719841862699588053365423093008230768902534968476489081507593143345061604427161941561478556303532877469707311340887119476496505302045796254613827039309911052038999433998413168345428707205386622682698253542912430634710883095479566337615333893261388882882058902339236599227399563497011496586697823450153877438735385270786563208681343217695542690270174202260487890458728417018596239863637239343951545841571492749830303221787117316179812759092259103204928584972468279950480732986245202133921563015485430109246472045994792808655963820782124377414097443224355557763030315411854484654900215640289590654158612810568515879216105589621587822305691032282438717689262728307829650146850040845445893442080649065798141504359650785452245216045335193048660891283419526524603655702900267473958923968080516755525409812594947578547633427922138298525943700255330894984944828245209592659970037210406115969528752771136605895750668395673182038272153050329595131812978551661119123897388052553230807199424751633803251295910444077316645447269968791107937914584513153979457614492475014015920161450353843995103421358038065957376846172377081964407327662691707729466869249235224256665975766479793326779863689625619556169363350406431526345632108280272955877964048364435113048132827320214772387605428936738118434658165696904031976375222025776784241679874327127448353849402974306873072839521915351269247433982762855142236400620525580104053906626788949159157652836606633498539179302660054318548968251859910028749806487517064141466027897678353541768196158352168883108488044513359945063945400418777490065864241835368830101746813617871416741103052269736638486270737304439381054772208533014699457848079361773478520057150322464709913995974142868049852816208117856403302979780047662133648495277991594838860712867388195567945803820628876922561629903306645359492216408874797606351034042482158164001485796362146136302907702238716329920219544625232859990979744354208011077523958091660275671228987224767536385306915816649447844193549137205192010677324210231569970466700833615443046201014168887743247117182155161522747187724057657690777464045922813591522438541632122288087996863275152223804515425196574305355548616353400902017261432449307171269786675206169480928003034948538932860506787922407674664434343172387613146071144378776764652263108860360268417282873305276348581223012519773072177369023998901258539533122785252955077393526391538535696455553008261731250053113202076655638714164186388640551469375106782193904007588604753114494000563994742684775815061654897181024779158712562478278769579562262552680280864059917718083977293122139937260735612233936306868170029160835901335616284820427564794158791576827536973300367084464019628805896256247239088161830353136659257194747237815376967247940838325694267803715282138893932439774783988144296796531989928757806339382194184976684406344513472122843023354899118337668260877490507463185516538325541544458938153962178921882293280029288971183711730901347933568771802415044047710126151241780402593018653981936190875293382710385515053155463493518591085854773923772908032625418469507537373498906993845507812671729843734252797846198027065661038584325671809828847721483544055350573679658133059583821747014553072387973137893941957116156488766961489034745230400274515790093560660297058619249562798040388590225539716354364804061912679809703732158564244502754187201708944102945782087103796544048881951194992439498779398711811878258782709473145727845290241790380725128270095979302904375943035531816319230432340239411634602996293690864631081726022111217402806226897841101322429802317853944725652703916520793380688575456787713587481272757675655802516595674872442575707814075337813036442491788859929456674572949800743424281045872993508274195740756281167976106435021661352173506953502659102754237714083067799618507020159173925117694160332776680615989735980657643989913830770641419611546454922628866280691583096479678593323313918678501275795462592332964071255426404638888181364313595095284462614140974837051438952905613965202380017021185249075150867499536059863886776521548719075177509715218509612210832600564994786002203352791496418169643096815290073790984116473338676589302952247597892618063493795100461772001176222436009070405659459868799990602766563858832237973901849110961834129985120480652527568674973248130679777863115503459045002703907448787565075832071799795891200111960025157896501152682983010845686393918719926456550778017803710023499626202732072760363745852296193565343847215497008046437340064797450192506040915428327514228856076961706522400961524491925178267098512933990752550692107333698042814116990031291371736426225062377124232980656580791786843571704096569379627806924791032204037092860430626791621564656861700886197500963023638938679983359342051707532316897354324169245343369057792781505028828220312417651228577018556886130780359505856471393668000507486390882622318835814282440499796137880406767853766351101889853299543308261196321115396935804481017752341514039475642562752790883600609697896692027087313629824312836263466141338907212043183886935215850958454553092458777942479408634388304517741040540005147192862733761118689044347943010917735765245842313982312200137559565061741379718469536072739394836557491071398244584156172777469638799342930553131574986949470670122405015746579082414793055523351184119367752203040160980765365174639366313382630094375088600484709041358773971153585662060473593549396490054341273056400087852520011293880132371507548318046824416897492693036412899382511071407590240703762558414193310722292854448939954330956536320077267608400913712622480432416202617875366319497944468062436748542216557678718720913511934298499217431309813707387062838407164268256108707423798837352158344542800227390922025342630028841467563156048446166592598736097428771443508124658742549733503363276194585681212349006802025673377495105163556465697283371092869784555206560946807239230519230182183497524934930965519153061893974575441528355391466674576362535730053706694765660873511280224932310747892680107802522747107105698320338143659478875841182099508211440885802427716805103311283754672621554984260988034887988168322889852219481856052611152589029126579095755927517234422570627576195312308637687411825665074050761965916446186068918241563095506052729961626413025943652696997400859212015728946464153889222417365446367770163240556074976298490019973224261151215315558395583360355399692924009867754581233394021095731478443320806541728772932398366330633622979673576434007633402136015476158164703234488776867276814366148772470361893357548061136869152850354615543803410172004240945683353665557115358207170861141245266065386694624853624852813540273918567467955459697765090511496171796047743748101450642286169611421001982183572869322116678057564162576492335464848203650129566056394141082534472788246762466502748260095171589669189820783288502469851062042905372993583931876072893434116471947562186622503837673757723834766263878918264770276944850463568096954202288135404180080881517671360212300206423384923131363424964732280092499196353313089874318160938605381754475110316701153420784772561314238062208694074093562057734513799012268017428067431730362225294562471725936084733509160426410525488567074743786173182486860940722619263329934556623270067100143336776778000156942974284900770044912604854172680322743754982821882913271604369984818351105126955622650709683140630764879865190614534376306258768314041059524064267806026172421041094338983841620370268999359188919264546382214646562542509228321968596876976381065342828977757172972697829268283779873658677801072478413074057196232883583404981820440086247716079925896167414482673684644509981576367633041929539712502473402868800229484602694579983551189574425808527399625237054572593046999616218804656582413485785580231622915583807418685176708218747310254246155348577399796954559992469678591995668938127389817301556596171487666772678793642664957353559767911348707200626510720611650371186989056432707841887598328897662015698600482733662112963935907658035484015168193002753758443974266465470219977595046277078377251263836300877038447312144891997105091084394476282056166630680615599083266694798614831348170960279440128950834755349236593361737966069430544885594127259478506264248329393637351621674896209162123865326111023991546698584939546476568235574450559103940806996428814181321728484071868177354143008753115431972271618542022251674196979223934611548434298948023385643008861420706463238112990160850778312158584233486576801091938017200649968349482210076132344345578012925472670228266599789672525599088944768233705229784542595215204303035906946293881493204102310977062730190010472059869190055171109073011622637782977307567744192067754594971826920278897895772905142275910490309379043028699104741607805517454250199450362292465275979513576871704019402036658619584936125044157633138946514191900874355225404714366662922678116717407095405940257228390726040605663725117055411025581315999836966709585319053737869717502284264878819913268199449927557108298656020005692767092675626582423555799457818731641541638995289393215321827976311067436709963279738512494326637022990009633744827509211052560630588620581249323185800721546681753950072952916664794440120532317583249426475467478200443059475965141442301807771260632614231051036726542026449311775102469707298946794613342313282640375855868487085507811310012163296820397372929667350099751069489399158625225825400056348394058193548816456128705192880687657901427589414424629255135959619736658649510483059941763292570462182604496079082379423457804589973163665056172654334461542985746649857400290784275174827909121702728469862471879866444359097630881558241716994338982384586883042613974232510456418735461014042368877852327193551871489235573755904933177281313777510643542206455950190871033085522220425334594162595032459564079928449956325001865647358322382306539704448697749823370213186840207949051843626562251091601635366582703141901387416543101591205119010603711006208636618228330654706447011284712383963653736049394808580416816041950150765528970308603914862450250305362868535027811193798246715002813134667431895597381038131576136240969034406165291600459988199050506734878523909422460882289575263765020215092716906250598894208092216874790956885418189992734162101568051319972939426500121771634360716669919605315594127654810362494555495082580505379144670340121521922215760578672054346928905360169874793267857084840824155747476811006400007293708452576286169522879965056248556211176243903520144929471061349089341327275976643604132573659970592026112980103349405558447673627544675991607060010258867265932564847045950168431569729395746794031477103260993323123224473057303270598890271220545380202862217369068166360016493487576439125980495986082096340828577459651184665806084656699491322849024615259563129350765494693715520082109357957731363066135194368314629734963687501481615625150098203024044129996538424067431964500551486998906602717151438582361274541921582464243683818872566898151667583907483070818126926434965966647302759910638756530389628618050776505228824327508950581333743520304943745753502957187967746324385016505657113995632588911578347145416304526864924799607474090698722109847549024034954203040809284250578339825379824262764837806305578346704065023894352653500151714870899746538897193058324680856695103877342519692412092681527371537902899613158045707810148435417950100882019206557714810467259334975725982363767657582385846662962611591676819633484614479505794104201172772689832931438770563341415561052571945815939122512511050632090541258717736086781696174819961654875699305503343802215521317769102659719740344407947002662136602635707677589213375533690486959569194339523520581499041948618037323620073457706292321773539988297707968032343746933047568913906923687783928320210008596277168539415529842840195193168826722375082077027257008765411860170884709749189363211665672186697913266126374863231980780730356798860500846689001092899971465302285109776312190571689906035535419268272349035583842613433783011885165546330894358600830983695581900545515289730815903508322615576394008986296710416375640376526481639170756680153165647038293363679278958373678099359446630881360435562408092768534747250403079889310912413338411740098161395420542902597231493183351141087036753607064895264854244266994913403272363816356467165167023842250485635258982872751251959160272735392335485712493928219786396352569150184822464321576989978650497013278319191008233799128182406498819086604584949396594456754198049519776860937298531912789917697961339601618912457515120162189361555325719276546705034160755860610591605949483472498890203214731609139358530836167042176532399322430771752377080894479411011445343248534664966952039869668809843806000067073241223663649211953420209248699213703209645166139095294499674585286637164111809040567818607128887727147024251001013300125271080886955564611855604663239190218015287397301668426337838056335022545016169035979800893168169997283466651299830815094108861324722219885367865277442672258403754216139363555765976373850554982500963441079960719277007451744102086427957612453178433538684577654837791751030875078220099269437179147484257200718406678897549217513809065260759620019302906954162936807427492161452662474287331821370476407854049909334250148202307520437243816463505541581648440394346006033734761340692493112900317025382071115679038365821505808172079595398349088681582196951481601501001316749835621659982775153710621594278370089237978023460635272712330191129074608798668946388228945819443542086469836105729272490905535836559516418737592666400030848570193120980137238009391725363260224355702034922687124828779669991653399558306576739250886148509949930519253298172233850291786192791627887921751905668574513786146044147348714411126335016951900365329101467430051082979154835709930889367203164004232336163088267223774056446799798954058711861634429078656638338587754938634021110196734199783711821167666855911927147425545374835030739214198952443561208314272459079254029615298755140174470746844339166412281781896924947001855266260475276570776885991228377415262941034830727106134804358144170052758387973967991376914280343479091158681955365842394235127582890868932855956968873598972721702805547904974978685831844116778288147077503327136631904128073014451218391166386520129662936448028586716369151822888547473356130836039540028671426734346576354410273702442529500138111672648354699412600760307735980046194322572059332511327759067162997366584231952226812344457373017257978819572393109308666360053787640463719493462774705882791068607738909620080654666799481037868714587190290542662991674557658606371263637929518157657079549249458043276234639612103320023843007876140012315545293764697474098067478747330347883268557561396324764295721286898439613135959422097661953383542179218286551118919059289285355929174307143660777817680729600860873592155890733663016194470570878211997797931338094133832487679726793462722322106985767968154829589987175561884977137617570877863455506985892545950809447088565732614930700048925201554961175817866873524637686889054480142410383029893099746565179046974503551093854054669804022543395962170052911151866465466202902976964677673990095038175433719402429956087920616184002074062898257221484681695462984026521469483942667685406771264704537975861570404760977091098247952077244303143366211843449021740992467448663091049875400249132137679921363054822741609880243217636130938717956094394169198486438581317105556699467600842017634979822983643242057983398122354772076103607500825546016870672436101739782737966946334983711132745785949458011435952789369247240908207989751126669545632096834734091570235106007846407481748560600196243962642230133099315066693662869153394010994684507587982631521161261677010440809970901166658760868409259667406948349574352771751837089936357833826033550230479927606484340765944568297749027223234499387926586563255849967644007837039640139796315230873637671591744847986883341440259955119972492338852582873893833638519639016591787872377179411127516757337023486814052273757145191250764298811242787455174221444393847427765875462983345053855372187055909715573977777780511500555126466058643847251963694617034047263391420485937091481221879438179170162008762421984120723105929597430470974421011769931987913413787559884876328440436108987622847897680840005141915403659103117468636400280882569137253396805897817096523627387306449557100632945258161077888867933517094503110015784703064962429113755249356214246940083127880290534315204723121550127166051071450510253985596441213423492170681670064995903185320532306829036395497511479857015299001173720747919030914136187281025265163347874457209375259849357384436633822334810951475310617888068856094869260617556410854724825463292691400634299565897110074057759623036570550996065308746985524970584536803435552894788997545689866106404566172993235773002136863569398720104287879586417176531978874346671935321803057872593390376684290976299536316434676932305753307790153654656441544097578128673941485166153567983612500314590963124606646844829284021035830637700733920608035682777119261986420530701086785049865392122140470444639436890970407927279076395301491623426293066614554827804286682616692642314893363100193337107668370237133271388980267235714255151926423391042340901021171514538598921134393316818392905976152443570454176549110317600146155748243378744347598413096129635477431524374495784620268704200428379449959738859490111215626769815850523067982379646357588390511430373619567362670734512526290960181715752170138220450464688736461960080068826022880300951675311154538892072525930315473250433191120403026229371544570737091850465070214775754257583831411266765865499186466515141355079023339661544050890839745215660316633340883198191353022971529760135247275520520850650668665334999534215474815905184319221756158396996201599578769311741031243515630467451006855980984577583303409749018687432691211818054591912750964743173475610344888099842314404937894467706456796676486612878188460454832783319138024882988775631774710281006079985551910343389879607199971702392794859517934841372125850186164060038128112869883035101803022366619065391530100985576318213149030908278971977546045251536509963875448870637454289741481004542798878092175764767628065773386334689502702378769423763795271384454518230567484497268421742979996045240469309860339862019526423977181085661523279152485975793318310085606621585549322579422076975239462133105889727808890619046510646354493045999919451185829143418741696991613973911517651570359507268871945897588402411102552514790308209524580051040520129407369200421397115416765021393093144420899127826341396721886272749012387702714918968878412844300695868789917357133231788859872216429890775635198003091101516731115413586809403124642854094974774653407771026159686821644106234287607306726643177067924329449400022484253241610789949080329464612817026716629793720316211143832112175326905537969249356332400762043107595311957838228823552282286785029290308378426884892078863004968352145102801299591860144927007775166847426715852179994394936114762712606207885106991527453087443295473205138210651641622012304967254938067332966989916257082535957672085528558751671631395924517339159337042336479759975521980994921841020880379929232297110591167940462646287470995446173982593493370917559743943786056482947446557543034312422700085192034140788859117941179913532847262097476551109349274031275476675657755771112986787522130936766053046617517196282471276718980183963752579537226713140115443494023460128928245532215922314656368520413694892669447092969010254731935165091590814549332294337298294978329000871309466695952205977783675916398130163142745721045604315209786500691172421391702427567366106790058368352028194037097378999171779963405132790629103803733747067108061602737062744033586124600949614072439960566395263288395619312104667617362241899755034891942298728106326650317440500792259213316484500575989032891684539671516534414148316417203742952091079838798455495816342948045557055677948672401575116241856468941244293773579534190640984937478900114571057661249598823685086602043137900756738405183382687384496044508346358614553391810308363655149391109841428454661620760432493057481541459424073971108003323655785267551827547666511514385826524766068112334707259011423734891185002133618732066878763824384100458330805671943964653665619476181591550025826202467442846069913970460563633755417298699370977132700556878177117642767946547652906682943496680449897403401152154477277351414391742476400830583375148871963505031282682899861188745108985038032625436918783001084754993201094642338273640710453037342777614556073855669609983498911784467043412773569445763994324716045903842127233728159760901851949963503804705547087587314922133989904256717582023346467686033197448666870198166823938567160012630771931422097596206695007567704403727120595420191550751323962754606138217709217845910507449756941896163799049067052938087483855498870428078741961234019082862186738779719101196955461001766989787697454109724765025706269369098667445482716822854554940418299584144544317358173130862784307808964495798098699285092686469003757968420100589076314145641011576602300861012277526092116854061051500214644172248065993963659817722992073074408754179592813751310125668841460557970151570971933581738779819666093114079952171506010638731149253011226395674312451715554746386118813458186859710588248345630544544396157259152051307912711348204924480622085867592248437529414850866152600712048447768133160977166150749194959899551517890914545683252962051983853484686492226798045513921423442414917787538237740663998290047482646771973039144728178186775412717887854681173869171366297528598800959687393126266510055551726284166384113034968530189389586934730366109945779415000384206134410161088542596499063736533003887756410582190937012241768069813475617840137165574461460301005166812276173251882297998369899369744205668086378382494327351108178982267141804261596034374545796068276296712685880123662121358858744962721587307051689609860842483194478943016910735407661799594953250933709258505919793084515770855367946944936315423405901496346669917972511844358183705351548563542614723813212565807138130981332488732750572464889789355424339825348643557629553946669461026220794078029849313399200397938133532011976304318122273331384343329318660812786554433481782767941719906712254977990495220273215786338252988942243845036050872774631459057925063901940609581418149510134047899150052061560804026084141701303427352442774494463799412143782746873649086445699985850693563256968639306860185788114988099042321063503855193440353242661370272051193022318137400511242482189643706853152581831224554140174038331014236734541938620912913875375876987844479260874732092527673778344707828002810050383596016712816180063530995787031417159644612565667479659832924829660458811374846671454524613211033641742252615694284485057688725114150609004460782752695705251886624335247720797152205317934314576971949393921914486799003923950815941819058319712981600858802883637108370053853793114884681266725672754609874604547988406633496599450555373554278277238981441637453818363900627935252528603937675553658773194351516673992591078128445192777982261158770996701500095542561886847471378991606031066983314757152113896381064676960239241530252861624474817980436538586295459703498245546852786936589901385338869719206611334613600245281133459020955681275199153460695679595007853375835423186295378659197824371831086699050307906955401045928844741244736477447036883912357218839065597288577948525587080588519238504990034971731585980209064499694248595708749146058987404814027069933677198770217072047787136804503325214745335142413893350921166890935154839893950979630022104656655820793473381730712277855034382303799514224624627750369392906062526644831855812591504574938861988969847093865763933773777408203265061839297728236693612098874134013756191931193192984790133984797711912824877912344211922415132983186451901025613490277356972907762313466815725835941690320117899992466393431635034126503189905991157123076210754019872930623122634687068664384176182288067833552924283823291704738993527208223177879999524112944004803774162625353528359934003801850914235303374971704964156698356071452714666083681631510289654206063631674402224395777737281312677103595515932616760845575539231504075778825582377860073214366020376530114848921483659222063530429261314119478322342534568138880600761765175306114993178988699978707884229633240826639655238766690639740385838287296860858430912180014167436890234386881517054714129013096993048187350315372150528057578007916497429792963907884873739684875804990463793774789154351799165530650769399270534462652294866576523356382389181588480042715523707713826801194926631783853947046323529427135110305303520237648542852978986283317553471157066171749209458763735198695132702847150451560268132326866903982932056194480844403229424598767105109848099034658696493817850310268363499630749527200461783707655237988036508765450328477730722731408516944967658432010142019472176398725022937801620448950708986925958246822642848870567300299559187782719759042965078192682576124145550877525461841889901847466773590120213850334442078238679767698946158622841663108752790911362952543205677218979807903343154976434779780189172192893208568435764228447071263183672977347108402775865590982489142977459125295244444756713984535122437905705782934532112723760403123980502961985211446875756002023991907924212958056543879898566421927619798084315389059279251505838687516969649195850858711406032974447751944138910471271110771752609677406662819160329876373883233630845933678992010242418313618877521077512982913404008350249561053050579764825703898556961849520900391810674202738788015477175916832740244312928342167049159631633295537907604310112585424615030552068574120787933055996764024957837691325460050781697276101341077442948551981173346030186773340870048378956464136397053370210812458103674912453340333624079650692277525531413509022269701383559434665518075558475968193484803221327133966095588094921143196062720910200090618091997752619954892677224284792091844425328097625005078392870927239409902207784891550136094263861494983296106027777804454977108634877631508242372490820921325699142896887729835310810827613255663848696391245387394503441577642177398366946824868943646439131280001601050588288243219672998798750911447539622728316110673659826726231547015594214307567194886203971213318893769286460925207039946430105928992558388831626437429909939401785615851807567728362820035306970460405694658357690079294627874494030954396319853908443112940496943074995462480196366650934352692146049524650259851723152891065933828481204801418119032213474732031454198567871470826288316356982160998211303521527565564575589378206163177353526125013701780458721468019175033068265529718428996501965211147313633087502848094541657951292076768668923350767630626177478348613289349048769220444261711343968234182955362148271267678389354761508239788521200647394936305566781614692143692702079063588522411163530436785007830404405668768147756738879006828886910581763968387799982970494055346898323031613455032922904306179780856183114812678247000618132911314398012631789984515974803736371982426431207526923697207563381708004177287480624423019629582895328198951263466733201088647386965001662199579042719427342689438545775077363169563976694639939994135354879633014386987713788295023450039967620977497179407471431503243821294271581766049459724773365569840371254930971190809173455971821758974265131616361613413925104987905069957787777288365048380089878288942036623771476001865099716907008062156797586598990903411022825331730067100998911334554484129131495954125363024814892169996505886005256242195714143972245839860451023520707383639673397108487562967844898366594709773821986021060513937409009500535073800414920910296715380197690886946601587915773372035125656211328343295242602467461457708910024488407917862447590357162196775797794345726141838489373366391548373113656365523784460502968118333872274790876573375762821756850962144050377560537815358852710741213202965461380084679107508204254060251062658465550444930180662549616662040056289311143521328484048840930808780329600967849099081894977722738969576389796120799983030742105994860700123092955455516074085431196990177144527543344721124508020026789755691971822907821914741375665206893995450499415984923206995491059615830997749494412166442255197800591637541501387950399744913242736861459343373328252674778802013765919724664184610928845495262846720047165997516152761490102349612698259285586324819301437806786869251274069927337464961123471555729220298460419449039489258627356448428793232536500818878606155771153317722374647615062913913452189928412245838925031843043182466901233381968587704797327213189462801399601750909947412523508113786019266806595975815242285354877842773439430894030589986579882668145578366791468421920225785501389587753597832130893184945687247440939320154462680199696788764850112400911090292718967805615053077349900055316689895780618625883681585188055866894731075580177523972678998677839037412711062817587162884326671170409251691008919474945031819286298248644357987554925016044848381721097353581099858561001960043376008914107729282879428047877778135703744840841605420183307988990471125056989519383511126644357083093542029992313591973751502704012287146191432977733718169089747011394196779099893644725557112099708743300841224621382456280436223913591400771673077809729194682222373510574125263637144671598283578503249673978604472502270635280533024304981608448243114383301852249892036588543949204667894639710114821897950120036396569772879044818030417184713508812696619493017857181945113831729606823903773402576292456540883125889541433831656734394297166598731152351011659054959225927590786964253507521660503661123805019936524795968482941909816530974772893411347257257374754194610652978309812868604949371057297280706839599792089137467824035349192319845721487327118986355803881372923660514880765013827406272962886820668757835301803649866444398760232043325080213361784150821440324574373491568556499218161924206798922548242411017167003038839826825920621427007697684414691680388871117493332125747139886651824632901371746225363334690055717666944140897673253411317004485091144571160252513854137249571041599761948883684846231816982243577802465443478785494301806883846709086895813330343212457905282011383750258895297385398017027743083033285177939486073944174877978874450440624308285474255506098020628292434649610325672305899079734929673163029912383832824146900643294065537356038317001959955509545208839772109079251824399620991069667728984592470756601402374666373997954369169190723093667361704802508876255289474124862717334548981959351433177422227592575235218107385868117499447213923032960810472878591695881179777209844296322778334619470407665091298993233357750540302517651386388850647981851080896122462041582280139367147910403294329018474433900586393190675798625395062240901536047749475921082693481763256160306120061591001992463432305953190166370659308755213739046195550304647566686242320283459926136205890809010009410466533256311406695763055081547102579215773335961056634601902443592289269644217671182481472523452495368373404542401911240913902066319203053670032884379314121934889778808987883718832890365466763529556130414310774403647881744039071636136255455712735098624737028643752977051388444640601973426025598663994924746591856307681397194515815376819401269850090907361127019690388938054190617714059821549787478182778969624364236977509372248376483787163273150756323563778761233498277449798423310884436563133697207163971234215163686937345648134888437756273935240874363363143045378328067144047597143665063013771096881996216867318305577283700505477117758620288080213526761029845088164914791648149939773469549377958674269716976956391403238283702165099213513834621410122385881850397981329886126393238328377097349659530573607671312730282301583118551637690960122579451913048094435888755680920369076964212729099337515112833409702882076039818186578552970633171497234384234506422568847659255037774746770912182507645370833367425837912253567788536194960283505312700866363475714269997666784003301053754317555112631404310408481832468828547904808624699650429503345842077302364069978842484889365157405423892898152179267655591172616234803009540137116656131434731987860204341479760839903766493353602783636353327519051000610488512403767199046892878662512222053849631880021654093430334980101527482018654365235383540086439662920638232383723460266622459388229635501383236744494975958837253499039833837163508013048056681684524166140883397327427391052284720157572241549800316527760916436421608582502083731874788242269814355105151541114650358418034369347734332498266578479867829695707282419674199545927539065909430413059353440503095701574580969839532231032589225779678197975888874113054126759370568453554991626886461371102838966095213361303715012035110864529442061217019166919649637735426462306088409767538883670405270028500846371858085021525704402342283756113405808860654532443593919783543165085857655432078564171934796270663258211788044429246725033751297985434318735728255092935552723693302359975932768243200636702117580732630905642634925376912491030002116344308811503175372868830442628886167200569071297573907862166666380012203759294900868856417441225552400697037261751347664898213731250875666906045341935275772597572733264598457505785354604363692685231874786312609752672630507163175349299066457851370020438061822137360086017500368411930661874581534738367771657111108264371355365620002072807681895269073998290605061631164592811908708636121224666353297294442945408034142611140256309508076638521096751749473858877882368109256894757261904692529762034598209896220318032712335671394803346247387473251466628299516181311501763165297471277508557419152346685811701656312666488929083362933712199279836614961931378177327032668839867216364158423871726999195224013342218741924536356227063005636900927590631162900692833313782894801852347040298585657063580088374225786914162966224300852625033023061982460306207212622580704627364056447957191089780795995460641948507501099885804463177498260211187215314981310702830023592792373173941464152115605274847168307602304708288476485018755448567664737322326935992227953160606110100408359957279005308288458682083299445802024589886939095619291138297690871576656656646923637296490393265498647113340900192272712076194006309631065483381672211513712918802390306670668793472609172586238735575425138261634511536903072917430525559002081513484467909419356248386056053645470897316372691002845720363610802661463120119242400107411967325203322190797460324580887749813626025769762689637633446473728061503013309451356266824856823712677263066722166112248927486719519137573523961510020028456379667891646250360931436510929804128626644495470724566951698065619568698090345290996149870095738634454799769339632569873143756435015693263447121195750462802729202692862878972029880566849880388045260939101736122914471702239823407225327417901428529024836579233572821229896837824219708322479524016952137400813980756465760317511130903365009480200130744639016148177378516148309910482082950885800216392659483253073914102527852595017786722928461313519828840526755281949055949338679573900066880414713433646335294544412708552414717654344613317107864573918967315207835589669582223240914004243724050671358589802602468009401797077336178113625273129398068821378821046982672971500386045948364394546662375477636917459658219480065871413363702829851380742788892833953161713431069590453576406601411603235388977634202222894659369338366416279788580463473984092193782902026751164431681232865267942243605972725153744717591278309154080630954824002064544341997689227816441293054960949444247809248674582706269121941401534984662683632442077175253860946141015749350983176052063026245425745268274709238544654197355786219900488130024217856813579393585811950471918250211193373175633560643787127508507957505787085361828365265702809387247090818910971630480623708928409225299057133450268074275804160368074398053518945258408430243154527118329574561188684887551694396737336733172281474563028836332347497472915130331589680720650072350111193857875083645700483866849068453277550930726257975308353092727019570904291098980665413773330379095626648440787500245884657952273601659250950963293014875569336984403207452371144202713080020347643574967570132339601532922214649887572424657788002486697090956454023495107747309566840907822044896171157467096967046009155260009006238093488994550339462510172803269377805134480525702983462781268742107333996512513979810303787304930818102832759744869285098270718479917419124209981424349806402815892144967204330979575555419850789047132597941071192519469474198033826508945176251728423618554100961851151568557087679349899260898492520240641552345600088450886242554366205161684358962996256273133111963284644995287572851662827413281588494969582339129359518953185412486888266258353076741699676287896594026812205072694846920833042484055020372973621519937315201758797968066531799998814021468904913256698940829667008416209960714355821556627064458610344029684209220036221105828405599302938774342249382797701545251969519643991310470376978060526652057784935479316562857099019058160332722278466036736787111201732958587570367581592563310469461903613281625030076083211587548775389949776958047788695540217268512115199117758228977483045053314827792291058229384613025118624138259780063326136732024434642205871460868664607482086287537637302564629884664003736864110175633100549612174040117316583574791840733897777455379974490271801809437170613335561989570064524040713410986904505311076714092494623280069707055092189926960191819780928217910229697533214303192021470340989165718571240987727358212305765586637060666312577311530454680561253859830388947772120131448141279946300460841144843691622164976937480315299884103849080548860993805712933506396296519112157133682621232580755008857909253414871620632082565619847351856388697035355138680474812304067685203925587772530367395597133409163793847918966702794195291225115412334100394715336941421179598912286628215436944477255740826911915037783152723222003737078844891401441400173306452921026514936667232444495760730833052384331863365643836998484804158606071383160720056817622855710492306114720666167310605026578808855242445655412325131310199106800489236058173955722364086913137311254007343342244190036110071886761500919601761618662417270560382987627882063653631510074377872050063786762883143532523919882151629165471435710929467237998515393715455917535238670478302488558354203872355473857082533811448455695815240720009340779770600853392416089443706850640808627615385802904417416254902981598679642338263779085479620048892271059804157363589045574006488633671659514306901215933527553732582442767932645315565809192972699771634606997992052039684927910170571282692806524851992588355132948667549820638062714863255553591736549879787443418860792960006811703595288435595551300000658053334234581797646457371813162510322885252998813167919836291148033640473141958312883295420723529326909821935130027471386090034241616313333459743442713392943013080421072317798975353207083446505144533010892636557700996063561950474326279969948077636290870609366827425522273497658935022750472837414473630697690214092753532827950374945511260833931327291460320149299366054038762697907223370944061934460204496566238205897768419236827810083039161825805172917820488945265823192966131213482489419907708347613970155817238507931031553172911655000777041204331672151720208133236947159720690197964129188886830547230761686181733044812490398722411534936560272641975281567889148111395672134112744904189209197250326900869686733660434005558944251319652961474056843253961579845033512720641887399121405650255351141548661225467082919393602904788547380548457562192101202176958862041001883033190471898055767552454218078869397970086931305101889681811716712380256486586571377482508469606194874802314347770192282268693173623862494004614396985961400943907197705601531293293949804814661581705756707505766961869319058251209702532710610837620592558424614591135617265992772078544009054353202234898199684718847474117180744992821932211310164205018832920550645809993343339954223718117691974542684150329618293409371479542050265835405965840922474363109567288507320113599310942000176051157889298042384724414242633330272773017485548943245147758206836139567377380723876100177204932814396928549235613419383029900872632791304833401093247423563393956353157458842900605963928294824458720085025389378930762519642281993695067591825557894076918876195716972709431376339970947491995487221774313102580167301149433413290914868751926661164286238674565523062754859504074222762789868671564613584121657870228109093754574229797482913279979347958677160912932372758213799153564044321142821205476017963939342470158439659490643772600084304605785660618715035161976282171300436257348254651464879538736560820532138945437646102028124444772858902268146340219184883089344991049376486735175402654693779955024155153300510475297603255053985530048115230784626431448250318706281676438203790294648910127565706619068356023033836518313655886589449701451065453833953995287567329231477929753308671868172591617284336453512037619301110458391480635505864703158160704975485345539599798459655698635759918049707879731031284108433075402127008291674348747264057871041371169797535165267890187256048536204903178735364363167250877679901983633356505466604702695301973537145042043616430382079020650950609057925541421265289726652802545937252902392254330627256594116440207796713736692776198440018008666833023701917527462387966970431973202173607762557422608564837566950431651988626631331628237753209232852739892238570343366517561276050293764863171834503820396695786720168422507071079565116841506138164927167189524160686090900954430658703941546538200741968276396473252098493940278646341330141946305522991446744939637768711004396809977826683387831153341585221481803051955519976717477165408666157386512616567938249243952302313203130762686804860910724346270338214655284520512701047613420595919293393491200727477019131002751273364565380322032011712317618777853627929059389365424533689868571177849327454777753121391341659225182435472732293132662391996845243839948094021552074590886996918778659098519396838435337880132234952738626885490477467466791067203195186152498130068635020246322350734531937844484136463604906308199756389652806756455724207996828731088753891181878464524174571253388545448593776218168336614030842495864861849297731295996002135246931187413449067321458964883121039259620348880660600326525082765249907313688967409464733645139589546313815429824802707529113629764000509345492863254253283923974196641312492175161829404229369828769485813106055432983643784810157389499407777111353581691234834580717174847845385700576308085666285845615769087806870889689618610594586979433741607381189863601037433500143990037701295653492184720239480808507799691479200281094029564209636594595747334397460381773095558428790355714195403210138820168595992418628490298936569008290806186984685309548930393827150855170628986560971515075562135511727892637669500281987355567220869665629550629836712233813763172668380534443236784279697066499027887665118498454134623291311709049988348573728113990120097435356071623772279510266474253171606859434776544227484700423231009971459115781971763131673033316244937407418023980825708233186690467566664948567686069549686241457717997896103277540765969471093655267310724306709482279756464952421233628311851140037292321871118358264876781069473569204987715128546070292814509000591494549153402532372586859659947140093101931763006380777833314430103915039756796497689121828641423613999012947997438413065459778957019158785463681613684748188231550342655018425784657853003254812215491399328073100582569334649025484136612935209217610215693916164174213486781375395826821862530844622999336201808584522722214009366503737478396061979293822457765960970901844262870095315074846943782071794870681196851426536077272742153829333554333936982265731656355458997695191801685257907474385817269286443311058503573341741121827381192163177876073911519057125948072123666285611112172710445133931744005098771385174689788835463995766680885719945206404684162385885686459850415166482069405119795070553294770230180993370209722616891261861666351355272756071291499624672143329355023612098768748900611661392387247582080265398481300764625288952415518971797300311655395421439705204547575417592264757735541325312328048395804725011746334218097454813095001064479059289059555361142734008981527653884943272482830019003262332865921244074672078181854870369109260803248550297076999614126391515203698137367454381839667410767083523688669747210688664188025023289992650526145911379769810784104081979258876647112528036086809317438871388308094552407022161552062960182724834391502007990807616542709012971468150066991654990745766618998971037926239895655929415753442332610579733175469717284268622448738109506928863389097461446057822981911997422723320052274772046736275602506666955193041714123397623660951402379840222525985678823123644684072766636240035947131354627004898592936935874821510333486004401057735177303979841123173350884737103569003722793313074039017347726725652093910482952282272175912004554875215587219222328008387289831543803356244579767691711721273399508117622213039172053472077518563104376971014285614773309774653337134018794955631617119502694177465616383335226019932373485750490867724280067228613145823781142701129380869322147122432623626500065538741544294188289154632671890807829091558674334096973689507678507992735877471645850674221727598202188745768031292240879821466201355710043697324031833282705695292948642491864181388092127859583363367717657621655275962844119208105109450436925367902644978479529599992691400930529861357526114317462884727440242643665401565480803297019467071726811653102869157873480416901978364807845638588314962722612709649471159661153037562988915459929919506235177578498080857920741968328967978470480044445913474211127260309656599879530296309144046493587039436410960434463086835035535456199247766536089190039188424593392446954012093449654830742131139791179336205140741095968364905474855241867442437309207634927662078954213849363753083289245074945958830795265360970511246326756196246987537845509395331307013337305527017939041594910474043603744824846736487328702256865033579225092872412522255723865117069264760717512425004635246932657772398590847255325579219083214762476517648695983115868440621626247841839783746332296257509840915186577883084387946065364238565070211444277712229024895809213872738898957435718995703503675642834768528850678929407898744914799896310668041281209931875554320950204453043787776467386770222835590817993909162141081839560760488876325178264042884362209816655305662284459597472555369406623176434282916961972545589024143775692752960553055155123137288598458602480861663403736710800737643276161394349507181412713287688700588091171401923016252896734467973813003145064980033514769908846013659303526475783209112245982344213506576090415593999561057118529015986033814176006416146290655420423540861194523524772893285454536783080677263870400352805340653857077449298266721983077706397575436288590190287853796156057690619348691522899937881235500446475757419771106052990557299042071434131027905994182692903300936324740863888346439323709115066297264997605999313318243307955494216546055055060675614306907282229382911873690966437653480151787373900713990244464628468316153669730185448970732744056661191637167158833699133775726909170989396190542046918008162159009271466403250961007845222164838639279637463933815058769237139574869191197523364575888386245071037648954569628214705745898910481250916345235994800919025848975591724078896828737156832956544859187372493453155425815596779303257105041200188279581323645789189143282842990823048207077125344014160987150185071073449714357663952191871974068339796229361239938603472775089662246758215772409254734531171819223969497565049718597847831614994115000081268318917560879190623229287855317340320438601335169056113630450447012818438767344340445545021505422604780561103053839450832159613134557893493024001211070288970637925433173952118596440586942298069295421083028942443650800018243494077280688747868975203985704440123320440708442359667408092057050675675168217046237209665515171182723347389061979238022187401209625167616216520367284396501513075381809824503453796117927698411244060158068972694210322760006092722222078872152169918897846373435369001224535869716780305991157593811194918838577004500499606860010811963512732328588490545913056152168187442681628626906988927436125444637372745260797890070066618722139909180898152358003235322408030020052637464846860056585273970250047526622054204223330148074442377675983363124796575204893337589428467899223078645833652897427669294277560057154078626931020565917552521934340790140077556065726590128615481740869437006921344517874262428043401217590031337955920853607189812915216560143804553361463834911901219430410233487392541216486526753627907442962593806119977680590091369350359056510288493536998841699344899152311029605743882060772622814142320297766500000360975356620102324500618212513886707063993631583770713438811350649731314830254822676467120906012812491367530181974517145259973570303162315614897350502088180645840394017769269163953847507339168256218807954396635624442317258489906699430433466964258401793582211566395770636101511197496566843622418037491446018199021613057967518568575978830832127131461866739855732739408461657315907565112288138790816282751332154552924736607490211078913939513449787931237241473002659335370750121565575271232665071081424864468334971484462363989555228564078044647874367082897197745826362750108868132551795183151079196363314831102789021022259540167212536990451965435129825558055907962102089876435570958498775547341957417717970099156378178405934809607493586997248511704075583378417293581477064636115310630058397201834003164004179039138959664377210261474604964276914941811906394030346348218925146576928070129135660409550716680987002742917468574948448545476308577707876339212248156526401347747438136349171670798498521243213802407621404631488243704050574365707527366710023855888769560370418213372130862808339865196213632541029415075116832159715104619168356271928957844863957225921682956773741704706004791890430512494468472966065913114475919540842531613805725012861276062312800771103356841369260427840516306301994344226830413078721682736917621361573060292346346536617559058259891739939802661411863984575861471342147745566823834279689904340428331974094687812618386517362991717273106182897853780722791521455707734132111073955417952834430874006432740540293790932213371493997631431016706490269107275888496099888321194252504091195531227431263523965811447809137768454480854188214536092848665288950799368596630330288041504062171957796231767830071025563837187156204843956519549206761916544876750544236513981788103555897286983397661599966744061647654658069829243308138451009245106930084621719073660041761558128738410438337046229697356272791380136964523164098822828802213179606298909438170339165528061027052777631719232084668632077571892603529598930188292782207939599281163599445513079254201274876246672553569024471611256950645708245620941037446902943039930308548846485393351991933980551915224229056621373154905824501453856741861159385636756504733666420429604021315974680157491164129073248340831179980120924583050146827904193123376777093540675567180707472563274645186806072331723800416547061897734122882324580553918849283117095729321167392100941549884579031095587065849349242514039500985950692095651208862167718805792453607874432052801100663875588333290442505725632392265812987370166280904334280100382190700783873643902358201977974480860139360000431561712173594368625251169959734744588754253677349605388382429176988304682793481264644203482637177089496493247220663809437719574150951438661477845660679910487844691622242867216750295780521133446077010085304727528751436613298486077245491082744997808418580191001392400062601246087545318915391282520925929215499809620182033956811408739694153579022033193401110638884941448874484219844256142756054610274014607697433350581623053304566647439934208285466849484922078160116993946894418524997625158173685332819539850865069156049989755010306729747328455645060123490850109847389979999712875928838892873409991500184973474008148828925091466897074296981842376155566816457617118344676013226219843931283900541589209714885934029141454108082923660577744737159257702079449510212160139626012117393480784670366776547757086340972933745175540273457266776637894738894897224285875977083863689244687576766223748271549287842593007911343269732028825043410505908357731600239568549302028623919427569688747311978332383323550725066059226797007641610529997688320699982591712363754586406799485250443387912218485111066458996386945591195646890928668815152454010939917097899522755519247103003205614438877365884967555043347270318326197512858980398745537419646393245690281711875075323571139277011742283520273638411810760662323369960112475198401974894657073555863761859826757658226915043254917583172668956702823997970904654501259276588422249592902280871149994603354574882897477889896946516306576097310397823566688423366190559647236947647437299638506581640210585254605930296880558797235220202897264822334898617705332982734850777536053713830206016508693715964116714650620090426064016783733351520471681593325033269607079608913159242834707716584612884148423250797902802864193012139066136214561155294385707265804430427495674337190190750572347403411432171720870020306665115359435108445660293694905225840472450709957320961274767545090129457171759885731611570057728038656799751674051695671900851037301196790905315333310609241271526074723229953112402689725903541954301802898515228398916914101950545312150601491168064418378133239903519064170672189668700386573100781634968899365499392042483857317310846557795223826922198819495966814799023745019887309612001296770515702748196439871163580535236876617237154586919220294901769880991169010335549532768248204807054169811936587411086333904923421970817531435574474498994010951539300800346464824768752547015230102724318105904353975140746920895496918120119593023804238213999237373572877026639557246867466928767761983520510194147059069638294384094660025521982796216051502604627648262529259576149618040452835604277794953075672430273064518247307354683544666456181795780278884842901408738981479207808183429426648275412015761710827443918602804184597597302405909740053314673336818465767285298358136155097442735714513035824758065210120920870541887255416572614427152872315858528419639774514123608065065845869537630147104765510792019710242742347976164988550633898289562689401918853672763109581123240987702182836507782995042380276363122837126871111009102455760495892689920949606482935082318473504069819689141972466955168428533852458490838887824559572051264003746983886108596370634593737731268093624506529102198879701803515784241037076762542954017490329969160198148303404257023946697322346005882899475966324687530249784842506221257056185637155927439486138875755580722167163071391168514371286281767701753047202315581974230689745051653631641326648473485623783556577567040315527539859426395088671394936549507389465826066464773947655443421706496769514389016872870878863768229085392642663706484936648593207330158362137497200693815852231897717572209516943739786764515643296907938740457705363147487906503079012675168771738509076904354800393978502538668652695300632107083706612162682160997371380946408516761677045470895297863732272391907834879619062689606802487407062435347679596928427422287986026506269407608176918944083885274733141278005197056841942547365311535449009489639910687362179351865833682855615664079371386946245147783074229862551517445749033889155558177800114116056782077082008591773741232870312198290467679470568782579107413660707254465991080911471122030814159882965438552632698161600702211069048198702828838969849097943189592994182944375534739537326444505385329281412501567220016345579832651158050282448029940178592585564224122592792724560309430556134251121339685030016197111255045764894395430936680812711950595259202447202688038866629245234931371414230575229244003998039447954765450745069808633574565965441803362011619953247380701021303292825302279396140044162293313857468223937518693594692975057651481728711383309635383345163992988756973677649290265090438643655644228106889963138537312082451598479967541442501105895854573256463225906938792301913119914123587076149059341423909233701547847714398702319481888037810111211561832350276733201434327889353151173656399871821880374249362369844476510483866748495103499956013686459733710500547601833318344421437169072045609241894278197417392421855334251286785909876128456394990350465429163705398451252104721277302161143088313365370493041109060689138186856275574628603752018730649569160068323119972134502244522395218117531363218334738273368651950565323938296772705255760745621850687132866233333976460681267379108622423894314778074656257002325084683494596525545911418447259350002277511962270010356766035379949784375946276847151430680774152929681255804728752787886795155545262465590236445485425273559511834868041823702478898711689794534305760096104001516673994254152581329920976551349882402839405603105515953144177738031791488142122382608655920286230538968980006686442080963839156680010751372803804217739326434728378086858475186900595809609436969447368976036278436128545745050932681435879128815114303812683998404052848468312861038160428640691313806447881941027166061421130764473113308025645241093985482197476788052925093171219459068134966362850717764733826013667709515991392051687799613383475175089705983532351036061469632093049047789836592877499879624671645101409023170878459240364948235794715608219212387417720730457496447473971716268857079240043354137042302539162590865398849262315973566561814025775519302350068324684176173766372860796718550270036807470928523498622782900504349862401119602223008722096429179105224631487486514693061729826457070024611768687076651215858702716616744425488954897302262064821085269615808627690428091037113776060702559165076350268916328107232084568800158369224579751657946844173596298139125646062308781522407134430690272108708794147129690926068277455271708682307436357006352533584135709105410178885378019857085671339894957266244900108223888337101194624339319448238091714874858488769649478513913289431096970030163778759140092904043265501820156641911441572040348446776589586974652725589147722716489384378029990685509401154551692142677768922432582539234316256796273802623069955774003785730528900620214264222761901971331051830141232976519227268425089734138507362232942873728783652907656350889246453551947770762722230505915691242782954554391348983412377628926593671217940720134449484069241208502540663629999089903958698842121508133333919194618263517470837762342676708295005534274777127863083007067953615887796221541160715813723399459321644854718596702953389770612326381346870059224400818198774126788637250745883740135041672468112339950188087848582585105162568106700342835240219494556916208479920096297363858515758362516510487217486540114675419855476367986178242468787221168075459315938719492919368220590944499582489585111516789467372963482203802176602422314772810941138022012063548293010943635527327468302907031693235358511866607785281689828044830274406205940158246190700848964656067949542560284633756822467439589220435356968675911645712466384111086586561027008114394839048631904858067297574629798996115605380287758655808893672773637622812658536840263992443202475244401674017688427377412510502606321400961700725428772655246776265442654028478088903786744209556056184304038391836344590569175003374342190907303337561672593547527689483714676972064325971140173112669398052882547408380090844465155257854557526909984481635727523756086650739123471991418085335914443284843166518544012283654714619893603238408149774444637964316919604809400262108478234863507577922792500775709909861053541456020471200374608705279913427523505757704834977227472658939305226191865641833049635090002377653867491754049270228249320538643850813254693710972219164399947083969775066287858142862767980453631443334443735501306103128209892602186108976573615737351221262042492726034938656275315360531158452547171641837597785027122109785060812521122232670464523513321304052066801559756259012403948946294245343810976528436610937090226047397701598526314718106301556183928471573804117322526359837130424928317738751300392848556985381790802269429677890183762050827450797871665374773854173574091398559158150077038801753165067547128516885179220798715257816720175570947088896816266626065694336643717333781846797538318608181138645742454776435709987572203380120160777705678094165312003496295537412183633348689679992610242961199792848807399029975927162047346599140809014288516307306149865437970111713940112031858776068065266852729151556061429502091747623478366794451033409718414486622781192456374534821046391526466250902533370314273041456649527955300083820623624724713446646827047831807564656335831265880960434768661681247299733577146182695075557324823004505337767971210178920841678726225559377252454737350670878546407672391411231506869384039406264856283771560062268779818463845563637085223908016504109149547996036228707623642363095434067895046339373171545884620246467311912963939339702806102403389995177084742025420131031864678886747234991472651789055630385327374109130827850648099132029975892382957602129682146265343088619308484016041885812297062562699442617668186239946168921689839893143756638300858338941569821875041057274983147606471772621429859012843932404552022707612459031856135977353933753587370409372358051514101478855999002062060792289002831854641029328829734641677500207477958411175960500484142833520936318665165701286405320049681811294423862966206526976369942396869312625964195739302230283757296583847003343627057862532301859053265585846324997190272448823949420596103346916548444507827646971243741568694904053661434248770857588546152516763227267321538111875984672452651601391326973858263413923366938371722181206860393585567430228784486304820262525271102660209186425824345909968583734666622002267938627729366287055770666087517403072551766169204249989130669468758764399970418564990352179699612089315834839799015253078714729303706923738316231380760858469823097511598924914256149615290399616924648484178877541595261967769249715857405416203079158988833046765025101585911852361548329116494134960277745207274944741132485119202608522814628933959687060698637809260613271395047231389037046011888370682603720743090864996741171349474445372434967675181175321187974488090288339024973607351570624838442893410044544993774172808327341991432712790394141138740872908117119257404625628668904213833471761683988892489077805458652989881164200625888882949762624510996379562781772086584140896872998321616529691920531263234901216563149920007740856277997335459974208840179834726693599829908742742099757241195347840477514325227197911708859594644991403987189665584246493211681147465861423832686137037857596905996116437296531052666634029476719085625510102970523063897817846457589954083353752006373512294471851202903400495925046746200076960396427479419901236879426795087951129121423949101708760143455581424048584052727083417757968119941268753671770884675720723776031633638063221876555918728992895463691808356552027719238568380669765634357116458298206949274981405562654776130669979284701611511331786860925582534786956481671440975662086722116954222886384300002472278357212586019365676923634368180912243827750888145982545616206175628033005674102643885102571242991896849429911197148552073016461829324352253957715349937791082011407696700507395839392455433339729899844476742416769702501100020626695376263100834771425557098207451350564831588930742107665761689142628851759329445521778324956805794773993612198675467683185642135164549138799973827193450327290041898514168134451222568858987887258162190784400583304183808518221836979015943721746884715747758762183610611902679491094692669984169670192610992541551780644019274342592040516365267134888847074944856708116108985068569058335311136490751998953248493574831918879239842047969952263988557156268850003346302438613684607752076933595553906982562226700986114143285765659020070076374745688599226521526411596545982570023141584639892968804605493645627598533850468338008225302408602847959108180785050382594450839656518953022997210360225687057363943428349359192808061681636420850241457254121202839255483736296111094883276588987498374261373404316196250940998203169968885680897728798237753581929375148418331208941145349050255157696370289131033317537658404947973764116202604481131534331072307423911931217172423911966078458341995719797037956456287059862692913050293162355856097856974794987699810910292731331912973551287913519172153540516688085582699319612626911515447493417040902322997612903857123196519811974232604325321863174159028465016293702945181595222766189776684157338243158732066235736486953751272922914914555694419220114450148079960945579847934368318765991428749854679997284540464250558082376738097252447497638872491395392790501741979653947796754991561363423720668931212621704703198354528404880674528146953091643505530512089352828104467774393403291318026153345352232529417486133165509661607459691924119582540234844532790019884701332500478704746606822833171487739400802411198007358591115593596212997904523278629795718509333993208105754885872244803009655356645405209106111425062784139450413499628775708821002680574775943447884717324271711460322394574289107392688402243269458095701634033447063505531092237409610998428682620517547548358605611741329878915940228342161962860016117282381139564036166325582616630828972681950059371222780111262865437971818931636490466837714542068216695768529249065011039173599371308173632264972969783169846747604253108324904234426777111239947070748581928948705001225107021150335565657800046243952809746044177030641403533149242688373470555230212730469017583314823022802623539790677212043791314081780990054333352158536612160867212479505818034734046603594032175558854369972733141111881680160982707328438208178098330061707182961752847479992128067645514738458037256108911772287080615697648637808194339365731601127578648955858160127210857115505013230319763240933363821054285606711925969615615160975605678326425946608306040016697316109837172483474482882013285511061186452190626731842564419987573795019662795517843006486140194325550783885396645770988707537259596118172766768522374869366404287658408202304422380861867605794803588116856057786366286541987216105859658244031210790378662565197830556928953527793708361110224736470096620118748215586844592656236183258139915745148128273956833350927028669822858962196778144199811632152619253935048958284014893326681597230457955285685712634524500691134345807488728078265870788781049506121970823952829058892195028450513747719753049638538856506039606151101664372457728892406619810424682140948548936490003008223375348786169694475710460614426202146923819528713575069407771821861307904312801872972154788595143487400165331494607812644084853697397859959629253900353147007583221287772867380937750751736994827176305928351498500934470475461332840661364839446389084544630958591924787538370062409581132864139736573720322643206357952913634642256181879215271306314029627146101218978529287105130074005696003793946356330794726800388059864162525083420359395079114618122473483398449247688040203167739563414046908093447895740086324571491330142402079611855468764518496051573424847442421176939513163591062532450034846066613543051171569012703964154844600495123073078343224307404349335767406230539323960722092211706702756172359372438305084867497447976822486931349859430204625320090891984447932515339573132434226279417925840089150180969206659731540893965314622768019548681298816529078448696825888859421873341939820544522589969688939298429850916068544945185400110511603405395680774420744533624203528411406764529949630192071651538751800024012115986753319467235457205741478231978867683735138977765831640484904246534748737127392168745816900953517540949481067053096225995661629376948011994063722962561275979483601430214394594554155475137049507998443393975512045986538323884016141157832210391665115010709475749271277024931820179490781549037277360531215090852582423996522475529603767128305535865007868033452874987905296914494767887016799651826669674415917593732961025612865883329757573313232091400266803763091334166749436648968414309869416446849822366913633191258817358547810873477820916569678809081968072455061442759894796920611913712459729219880199368312381120508345143005655069497809672755814470289000184559076603810849114279920899695780347055485561789844980823503904851406253601548041908969139813958634150905774123342914230714006067869866585526107859203971809755841624432270368891459170016403372752775901481698545251295785589909930784938667365636268652293436773111239191541366080538945999657161750492517980633802393622417687754851228671854125823125322185538122007519210419212898092927409360508965236637979466355487456686943325237256965552552266200946325794176490954942578808313360320750243149700660740561304692355508109163682002984368498410333355282415648558233001375785069319854665216292502746653265042022952863045112634299853770533598296389224046658830928804873035799378061111247801734332283854180245977473830396445933521193899185262680145853324097602219189091561759409282909700897778480277786758677520346207653708376867171396748390218444246376750462777543831515367342338098085857584815315905978896614981045571641703906506649289249517869764082552110025192440516502976963092739271221160111667949171280344665509576081897678554526925345083422209293362204215170235772469600913300111887594951573562426328073161582860920372823828910957846643056396651290740812784974174898228884086725461368093395404439198110770367552910633228599057948394977715221757482154686891145258810761525966214028460154974639477689257315937779120678039158263119255036446662499534749342919166976309628732657855229812024525148157525623665120279348671151358195177250065588433604060704859131175470205417815964764556281983151290240601232553382600582484372234948509866130716246940466955060709871303830995524809704852106322319987030931084076496629379483572880736193235811344394193102315075242330544993234171055394257042323564299118994670251816365787345758335669662263316763768209993928797307076965272200776517293174515124446887669220103784646449329745174156317892369350536863156363133990793698990348946304056470117036518274754200358637520434992147760155641808574717105598633387378900755805926200021291165780103372910946606101308517793815081967324331928641959468786306749149528587129947300275059922794044545791618833660961049693777104727399248356244344478523076764256346060902279561227629511854639795803850107591947412383084001233231943393675204563362890772994719453759516313920642913397081267332314155904666106195980773896948821781416610118534497884375221304524601757154042265069880171796567018123214821788477007731633722023009386760776240437624742923102931426876834409630977189722199685537122010328603062128611166610199954535505596443140286427244861144992849616707522817831986946024353957975326438122121650378227125739594630807838735232823218471301111709058905677886187649048701276135348411078272976795203664758819515047654314954472855939982227609790138455724784022447162194934435567574905551357443842429740637363070319414206798814841966892597233544260933549672660569899620384081394448126422762009834847214258517483493318751607307956506982260928829161714152943374359853198176237631120689459991210728034220058828822719324371520034993545323862934561348540612288987470535275572385360894716251751257566547265515841379082569055394947728793065030397345947239121248198021809576442476132290248417580441267747074447127450502673409206619217536932084031657218498430625815985782887524081928971142497445227927697707618293042316121784240566853203855485658225288515969462382502404843728603248142034135549574749962709109802126635751636937148204378782204623968724333104626159252099921889962357905493361220700795102581480971767425260051788682065662072905334153234369496853915560488417358841784340105534982802124500327829227490133326945875322689400815084191117216653040491354127557461515567697240654609049948825515379475080518361871303334776396833551573629695327409606965188785917319115314379303604524127394503054223594314862533101330989090683239426999824361061690792828505987507237302696997893643075329562869805638806020113051000827008629719631214760609606132223578731263096486620483357395684250990201354170124052155133300495130262365402765019785393905281277610135200898479465634596070309949385246138269956493326752083634166613144500350895480653946071793886587815655021503439538912573270239699548055208047748287104472371083162821393088140452924469513402820122946816101460275750059273336755899517525274312027659466726984645165460596763306151376263072884295584397141111318735457132513442746222228664617198974462990324939205270785311908933371348804881860808805726580572638324252205034436302777053183720035909154179767142594011219256429993527601221315899066566382593331450726787461466373371606980853372686224092454438480361725167902260882012046048160169084498006616254872634308238934052549746592406508466412587384980091050180227810786924166173618692764196761049323657013764555773979334589776479869837612005672553128284983740380072876767826515215977428619532127132200344319308669201031796521831962340475091894828601754962152377661451069594067151828734821842381746462646070689190687026161096699671429485564031822702427828649271214027587932297093585515095956902484211378515005856234118726723402747294711109880588111326164477248890937228749764932450166443106450856080852468963939693690966508305354387800293687927573747099063350252275163768838039930455484910041131135308384465437072676179822899565413426020384862195010543437112780379275258874241136167156899547733996852169181651267276029708515712115928053134632466883856828036196472027517205077426566729191487332891273723293814280417720445981867451595760873447042841919991275916079220534344605002131732096626806811881455930141943886835825439090777196316231426663868526119643858566464503301455220154148198843022528682468757320062875428858862164596296191893334940430173170972619477034411727134861842474383171883262274540316465599349960341017725442261575258609554976396845600038250739303007881513201299760876504120756873459149971243834591978368966349776943817771050668730244745370849782196001468002430063349298987510767223058058321442640346226057437703737348613722268832024138479195284351150849584233494087021462324335885908714131675869587361753110234262720988574108624892040948601479215509421648225618868097937057724529737738890358536024613539528907526579458988580857529653887444505564450291241201987460414557553190848401765221551874025823483959905860434482396617502590731025705664852630729294150024641793267078850389735395425310133548603775436007928030106458841488515391597578002660145447941642697434535528062202083991200394931397304791787250009023639248045880259742884104634218781906581510755335400421129750457249401006692231214120375556693885404810194879185475792993176275831360138199419946950677353175800029159171568675820319865341411829690136876035917686011787614064459013553650973852561034131676539246093350721417764042092871929699486315363165978075384279378793374607161870363212783700785545612901946564761162629786565925999116571601396668168930785061380418150005617612291970614599982986722667005927907668596842913074741798785034680395433628356025873072404861319794605375368470163365457385398904370483177975645568029536493265740463393125231667951020902157557289887944685102893873213383253888355291245151269425588026049208101644809858261772992257122034315500286749051371310447087775675499909395484130597493063659515853969050011428982309400473364788230295269974780482955104823308860842725141538512047651143208426235698241266549538408970524800755854618570425039871274818637200768641279315995166684864185098585826204634636771340528318885028118263617811268611127176844960962944007097491971366522984475162702058634049090430780047422818710749385917728459544279836533536833325445135187232376654511654299494109395830166672820962723659033595609947097937156419817658582315947637593544683983434993244398059876712434271337351379087874296456822390315281667943957308600516193185361685522938499403601785877529992413723056284526965963605516421524067297461213890244532286105848715571962948531993683336066330628737045818001884424978392032063163980563377247393987057433537818176161240271358826514215763299797642356857832985014807895509405385430210428149216567324926269062005766882812077991125364735697220581649837180147767864599991124000674718523340572219614228904281760466811774565565543679546107696282422369044841261513842850584013649862949661130484516524361731380438665762749473874558428901856580541742627472857511534288122102546735404143006964616217586458785237251925717978490070800313787354550987998529364849902409046401608730286871646886813147295953720008995618863132698336006670537281079933673593311710079439152318968668339626806208385522181188130220574114217354208754664100510597978612042658836119890290259578866311114447017998789545472469128133522999496426196897724213609647106687692195679928633503192872435738269928229453667981343428068322976782845845600571768454609129068476072206549688061513119575180022290982489535143067528569497946126563440221263212612589544114740143567379093951588075737279560692467016787498672716263468949095963218048716151294432491182555000250130662792037215130417544332519470221130389833560113749735860940707608242356342388268111930033705032588092938991064911078278247115708315906253613856209344037461272967267362663786150609998470518536314373278264083599070983116467359065718982903960407163485775351418844025222840367897964858637731083549821493345684607795436087791823731705376572502674965170773687105496481221730868241833294420449897495570199777852650046597747625029640419792448694141486321662509240382739845712228810249119022779696612473654089217345046206297844668798933766406479923371937317041402422210231216484943848422274151469591564979369503244144781935609348027311907788501130478811618302743184301149137729607431817556324772535477742568420728249806511844741055250869754960488171194620319920948153963821864765493599076477358288913891974028118829879411059570072652229681728875297581338498295910324649899633047600994789165973495248858748422452300192005216770731570555481753350421994055628389176805225256001555856957374078149476132088131287721104281890297826055521270997308649148912672180878158234017903200879274998970655382509779052153385166990815925103684174852913981199736434531206489117298833711313618020922439213284811150071398766268868370427654943023865311573460307180269267244914814688248361098283127659725770537384608704033468173536298083172387460776233421746815201458512259766964679591094647774666095876114330651075466664748949068260970686495011730078576285576681128236400292832008081470793509258522518881121354088210013409229426517446440387894545171550126495593786126498272023570153373581850101108501624149199562886473913570985499323888076963547494695152130068207159681995195235105672958780592712209530917504786229544917598323682665308157503823047551987266258913981775459398429491123255533405165073484618400113150233166485205042509418625404036590902098709969742915885997790086939401553310017210011268315279978261401771347310982757325962264493962581415130724912622851660953884306956091513881568808515046426018661480598006513580540838815495539144045493542643530835614951831995725878832615169192957328513619508443112276677448187371783790478637048858644939224327607614165985368169787403713721103214695891941865420302837017511430708344983667224254247136210236633823127395119723152458442405653237882711178056683580367535037840886573380023447245363352446397701055331924755260677842286247622093068714357682573756736560440055697391692597139149488375713819884723085493533132590827229740535815991067393137553280278781424357404646270494834494025320296315053326500912322766898433049286860640043796910873234449851388020626122113631539369578631651954643260228647277433895180136749273547407718864531101292556810868000465593576937787617193808603187625835998666587733544580188363311105982992767038555094904213529167590499073698935340843020790288529300125821574049894280191967447655486690816106933285340121598143663012178256356158046776303633174560578882077799128185816823243552967485306065521065213209200076994394153846901276085865298863997281472162729098145142108385364229264564408405773064971199140200705569672856869047718705622003175079225147496696461644853505711698274026711726762773836704351013370444781434661762381442355930124696462514489906330725177893985414608343048711416704000723457246691972806368270301817269848868859891131409270339499478220160781168141219468074659003678927345139860873091835666320147104182842655643973556300975968053950343148681377730277633003067852660303910205955736986936623533280784135544277327656612757360914222543864861982141089509501685962965851937714552688956626045205601108426433006351435082922041071577959359927165128080364036787302131995746996284735871959866887783455260164752487255679549710015011694286635144091271412339676349465661879450080294577904770493242711533718657248086626445877952847820590372951417612046827508516800380983924960454046289581689514239598870385292763581153629334700418827291321689554893570060621397153875172909925511093165081962892097313325443894545012270346950597616876912190182936714296918123990366475217329218251276268557332455013456561630828173649738864290402007962848343152396334032144409952082928597157947442059195416500126504748215971354461664809076099503282070460805710391804749294583077975490740401314305821021836481211808638876187200689511375579465645143673112197115352041081506405553439247138897793230319668815501058756770721381112235800673915150833607557313397945332285063081289657064021083170002078364639395903247111383329517856585140820158650746606258870202418750147683788375327754736090248058314376843628870269511680442544158982687593115188432605782219641701853839048775879904181583149441187051377581886809520997064960069379017829834231754561827674683968417671732895502186090919257410119237029681330661079062965700189665835378000565333243762574713183205536434352572252610381125182981945381705291644775179433455162749470190052534892596993204032527359473739099954654231217315211278300366518118629600758207294636010431106707619757062025911284395157012827961704565621441758865675590237991198828189202688677321001109193055518764390659292558737963832207082860998659146436699465309301146215429543415982964340457261101385432122593565359580430325190278943340721177797462972382611304936778254750106908940117935248940341474611290717617886869272321141831272305139510601541124660473167893335414799893921601694470297118655294933383785961437314027289844602569299898183226820002254476794263955759245592413868657268692180752698761830323941478259261104488469173771234011602024850436186306663413165480408039756177628076032541353688280637136547446976279110886725804523629741847459351491087072336923461278529715658473039853434962343471962087450286511354244451616300675139843541301546958671208463030721401627203443783326208001843689587475979309117259734181087632942459920420206286581844165030932356568747413717235341114616720337904770944013951162835265729497303616014737163691252046339759653591512147123780456531724886719341712750020012119432729672908868818484474102877162725955510914461730037310194092423705148647233790243934999936316673875451885380773194012608864730239880686879430126703454778823804004847674579286315711780431833459975154133400205063911167691683690663259248743525354623140406844582448104377724970328649038462457049216406910432760026358970664160841282492496670092630271551530093482609646905231788929107887294020370971891159191888179522578799758533572484257946728300021478438959998222517014293930604876787258094886139468033185477264648226883559149395802687412766202819737162813597697862506035473613418558993145505236643988018923762737764468488030450905285840710549888952029575292865016565842930319338260925380493741401590996197708262703640007597244826585355246288395703913974537958122156376998786706574772395425414344811591849553565836660375181189189233738011024755617286682679771319683804892461332456176237594037279451229381360312901403885749361415171996534375484010006771929093702164853826160386665972851429117557994590185675098832039934606755812623224917488746778886160387117433620882816968090166668538437228220566909289051925587423265915532481747868415989596354246805998545228898857738042683616696636428183521548089975910348908536390569313859298639904323964107815219400750915238885877704881644239041749459114179431658818440960360737584216521800648128604858349321819366925956247963123958893037179246428912664301880297602860985459939592653117543819069094890517110453697341168781638144255573018726348189983454238087298790899433008634999211214544083082111111513643137431970423453020302838817923494870193557051407071815722242746527188961194140040032102562261916662332645284104830191493829621204153524046417752435057291563932097174314346141560283152082929107586719523939343774039099164764681532628367685974325412514105882321750296531809706498974222123376446197906662469721904182135908966831255922247859844116657428805715867625361524987653070928460851847560718364733283651318714286626080600461930463453647376319439610726960047420970884092990771582839902709817336543770223074204647203444738919819727724429020189912554427436828776367290200472521739780833658786085544484731346321328136125596775429577177431132049873327266746046525659513200836001935820438636475510886821585657808427256517688940841044333191307866914526229641876958082472487845149126888718067537041954264970268862204505025971291418955276504656974721852105130378722737569033624018099398928401879522975267072777431487802933351879357036364823253652051587384038257663637369614702602261910378818437615369582155021146158241815785910297661499894690988384341822765023534263970892929575787474070204253131566944377009425306137014423063409629698254683965236517557370612209514543076727260642680269875649979549679678665085152809823797324308024767096362250033841563945873096481283969487309693361485605263321143158066303052468484513432468205467791031138661294650699321460188001847520428002668542598337233355991188171360358404116708450443781770970625282715014364509621420058637470773841203816507956739290005786391254825424717252649460539328497469463603770327935111677685003059818894177868874717835623929821878093823714114328510821468179515811813409728621388979508246163387188481478986738397305820696536901316864145663314978842627472950101007012071969473798115153290452085267864423764311041795344142811787057623152647769950110657372900410958368521930654880380914200859960737534487897341230555830307344557897974357327687628906278242149562919199861444653791454501412354765423140144081321997849429955792946921835592514156624735711861697968635617755402955674958123231470223447473459115889932394351676232563297819005270155476548080837420779588502351531432307711383052783854779187380624216139546012314690749329415796208577867120751760652065795461648704380727651081960705588422729181482337582184497817074589101927026313669528276693884197320640001850627772886728093598071654924717887069920784712177453979399477368672929752909823560737030564901571612016828482330846818715208670028432830799577049375445029665282024669708559979847153654767099612547972060536682083379700561213249306210174464982243620927378210376571662002161103043414027718821513564836400110252035645922779774713243763117941605942127766215694039466838698780890536357714946245118092023125277366310020047631548697065808578447812445127506771577789143367999397007969635042761193850389832048452870345225763216637120514309890870453479751185692781634708212010062884586130361430260842800526318053524125897621158069265471996953996597286910523008590574055975934601471839178338861283153848246003623195882273045008024965320931427875910175101085244233654187256220465828879715841602374970182027379949537038061161493719222601590535913853588920148901517463000802790360493184716259104775533735876714980001246045111336982921787033406763392815968972654478811531851052388903615128434706870556213591002237108188831045690765734498930813024980949244399043734798930807669111067659804399115588791588131597205043813003575473973451118596161510311760273587216275957818402359886072119143913094887955103061604274826208677951650220876230607776295535573757511779978910212366983953766804886488246992195208030468134583640309310780440238794769911090543997020393310561861494517771402952526949755828722341025061566085283117467877836409752471431696295424732301843793428453597925396320651730530904459071777002481933276056746615115432383749236378324426457730802914707919111459671748523912959195426069686573083102970976796966135152206017965719207941507447919943337883185024345527200249579249434796000655643793701732253077855476182916709449202931841479637115918238420253210149704726109486737749445247991712100622882773078348836454064975016678294982287284660561315051737854677896549592002493661253729164153130759080383985908528190571402816246000936527913508953717166844096471345473714987987728536121925998510515249581747863404870760463307685789441104653178641259451186304783396340069116345128062172646164060860034467323209300803221871235980807496699023543571707209032437484856936067065965552263877760287046479818241726214989281019321977146308124987117053918930215155815685291291637165365338706414943127073563254260054421264889389801966918031671147538179154854617435845170608494921999152837810091199617691390895227602542986357948377712960126601475846775595550071457954320960617656305827247189063953618004916438245987397403851224234451982925538739554230191843358576302570090729517443139724404599956373773143564333311765972706440255136532948024951439931447822671287220855950089021777716781020720002065921324067870743222690431015557714152383437191095201122951485408590180247655473174346774479722772516524143814615347740693655987874390910579098872644425703392184931729112885471923335763219864036167184646541036461132432893590581322385784962237853712722624266628798196090314010185676480173152380297045636455250177598824859276967042702010255363715914153595227554017148838922919631779988380725135448049616679017208586633397913620184353481931310595237382197500321145900725006815548494021186616578978929618304873795138604649069316161435932429015319661975055791488412995635723550706960664153611732942304135239508664241993971415078652975233052379771998470957942469557536500445502011163593051613880876810077211963860430481442264459319333986456389637711366516009277071582969213175934734226224504868307766971422457312337495899962429240760131674297193933883611723712145317563877619717928243462072979362182433484036354125462977241418302007956622115510149834497053812267925390595336155651405387953139550134221598050316083733350587533344439717160316639622888914614925737173510456217726680550477036758818087092203344312762164757399517130238173949827007185842794913510341250409831571521195403440541643053108971187194512512184443017395780466830438362316030584100309660053809709780679026023093931021097720169776736755719877413333750072981748043490693557510721122635524317499298549845699513411548097340275669095145813175785714211975905732361893056385677977626716722649955328514915882000051081404185718076690141606939179364122184918603818407697279669679466093608929048088769892425816860480433304777033874256331170827518462894830671830685535390253152116201785810831800415853517783593276963566243606735980708733914614701924220161568998633665770826046032245565247421609716095017703174451444112177030296494928562815764992521793566295163511847080769454667687684786351152626052584413347638396129519421498416984351478901021671624979400424327533036121818206144589698609934021621278636639028065704471566458977569202007500279327943777999870902930081833966463514422641285999175004782478706216368845360025244193836000956198313443337905508819178613402216032429773993122551011220454775339590570642632449631440696525123044315356806368988284841835036315548983521015615962115417167970986145962809842599431563172793902551347839618159412762543039862156068697667717535316969010984237591094527164864314757219535599837745189318266033848786546773770401250464313669653984487773006869321092321408278674964942844635605224344105903646249279810640727026753223036268154969866179501863245477851867180606602992917129186694271842568093681139349983562504733003383194123306709960209041711716593192691496327091809043990177788129184248901699038817768375026370158229996447985030214638908801488485752155994087913346035677767519169298416519312009096441627959430173577805120690012840632559080953472460364998949371527118223220586570301045294818710591763687596726352227556304612166909101232232007639724690280849007520735582242349337014210760143350348309011972006453438155152219899867276771046756616458176809760479813315717018713053383476571208596614219566006961578831751767867395241019695031689065009399288836815552237335663453257737390451087124255770537965129964247039988993616109354729763336600677134912178954586278215299963274508766241968024543857358940883017201024008309671482867182089853838319768841467882310324018424677302647929481763634870037722794328808882851857510924921489369205277362288397976114913405098407432304573656146179776224499661998333801757826826461284129672348581016075823837159245036352797275881628251728412302481882730452603773409993743510125905688833872189181353183195556090490287693002123630588363808211576195528133390395430496113979125065860317410292056840570064954750409782269757419771382662837138635941975026946684017493653699104472750733315606981849694093585514912989579409407746744951718797920782963739097385274175190428341539921806377345574992616736846241858415459232191490131174284293775552014432629611933244216413231374800963909375096864841708860342408575673635447442168859773459348197514819560322645789137266566697719218184197527217177314091335670743486572506979411803426464612900059535869174493750724973194582429368893801130827865675408278925245877257516426415044186135289841499098642757432024267643356792553334118694160793953059011628360684710301510321664846823328540372972806980938083485543534719371808906395967387347897172265876095735770535895483387126855065110792156984086113898477997752878308632024657506961300064177550251382935748492753003294151019734844056936822811448403695812014189670182495480747377066367180618797270019956424561655672839267263657087659599324427463194059587104652001416304042068739918993138708500259568603564840016751782036284048887363181228152197483511746040164877342507075680400048578613002785333101442547114964064764022621036988197635751323536982632434072202618488038231243225192693839996890611041905549535651168896069801761269729919000563111348949246413201558233356031050284817843982421496570885537117157443247494131454355545633763187151331519249739356142153501008182411315445488735072513276912980064410254419453461146352382278442579819422904075017615848919607680554473208383989293753461509001460579409008837005650227744713098930799222323335011425134076743238010201742222925253176343720831254910049211497061047869271833271359214039452828807631191969103499171632934881024622845239938416028172444519437459227374364429267138115106296842025702899542257125222453638137667055062456233590425336904694081006494612872387765301142829408980855568308586247108464494850266466978192900342841880893454469235557371632389051671792381013641160127952954512177499129490005583179996655676003664811024726727317157004746688724913195280350265541280444947546828616955093846223493800307547371425044623066574295538474198009081253807523382374275039345521912085826993212897526214129627025250039229096835841995956751270503531242214477915657650778772762490384294767836920401062501375806304683474036018540944537476265701195456810209102957923889359925334688881358034290700199389710563620366215910166374360968806446541307762379625834371899213621285930928453250050922406653727717848856837692115848192888623250719704748922783813779119446050928325659807063268410758123861884853430374065200501889426857461406147806659723132689448426402288767062544601043299774973391738282008955407234413404115906004568862601686740440007171921427721988693250436958009822534607819650337511834357653531182876683984494527331684953857244235633372709701347676072451960803554174287457085073035778405091128672994540356139333481201737051499714806975916101619061720437433651415292708356386308559419515499698391149685263226313058006198721909190300082893402925942151167448487764160509007057177450200321590457046882950515032348748865536537979988064963866092619161745783315124608157626452531540258910741010011674508893202802142744842173196161330431974080751878562466687881052573179315275590789627343500609471072713413806681214742348820952444132126027269944193377093303104467038719294832542721719658694224038675183334939295059451249475239532411050459480238111474892329677044828090015422460912798597865445493102479405584849267352784167184912477763168602869458293820912546783631119711622156379989996978281594467808845903986813654230214093452682786796427010473787335001478082649347109909331000378327132254007934245949343084209569188937151064571159365121252110908755153647857005663042060967284049574262451840467662181313727208244091396962665874354014565503948647097202623119143096480184313172348026164144348664297837994835111101003954745369301965752966283602967794963999156275703967120031745317430117042553924090212828091901475837983575282433391799190146384222407987191564881224363561535945228974046335956137183650812873566465460149391763032052542457739591339588715375905960184882199678734511672527363211679554505726297215801724048608461955592939403308496267066940467382127794116374657332407070093417917881461083253577921779542569833558426660564406302359778388692998633271367971064331333314035006269437095138401351533209216305780633235717986278650805133742868556008058863766342073265281663681273399034682066351776580690598805960776130216011105726489587136534248260238028149802675656047652125063958008656492828710750037559360596184063149845170115017604386594475126641359690139991710936978329869372604937312091577348729886242046601648703933156105988275760926093984651812739336979269967968929646439622113246115980094333106049678197670038733538615208996549295881874439288564372587199636716342385944327774485950407577451872804489260986764234046359037129270782756468168783548432740547009458321138391387344528644515708809509348246437159950016539689724305214333022994098970284459154560597443236093289604825875192316286738986674193597888669875951187026778085729121523440867846703798937257386624973939791657528590952997572124513605083962936456342807347560570939202394468304294164621897148735219286176838106543601163369173825445396089814549102893457213168495421884856751798326353784537562554767546248621619833509471246621047599921907756818215768746761870905331343223511736758434165539862253086271875677681732591121991372984841842526313811079389226854716291169537457998046465587902397532281873668716519785325865415774105752797868374188276964171233497972770329281590897647612344746844449417237931767438922232027644059506241405016770025709275029066191563840697108330924372743109637260988172645896236250048756993432122649353985215486427468593913195475728847617844466800854372310284895444879674294234516637526253207554153750474220625438478146426724179334233337587006726297489418813455357102963054214502985693553940002601841314059631798381662976300031255093115337334705550312592113892907106628519405569663515214772521266865907104135103000924278166738383761322137881819290979128873584112788897123501337876909152447595679061075454839403393085396240842321008499441004501616199165933856992895458531341392075830824987649362300716988252777761349901003939687443735816499387327277564301141558192498292569450868142529408090012622766678961592942989710919056049263810328347726821376582782047433952892839916004726312754002568092202073808300070700980000903481573172011078585845592212920337667498939642175739805958753958860988907406575031299178286273621428765829255681785047130618129175554123018069774096161486750711897985801623240406116361165351566244191489521255178366557295448057880439532038548598388840332942181891005610051967719154608365703996881757547092266156671831914524001741343481553774743057098275648746351242679074680850556078747754250305409905581918032613578523224287949253250952322362668787066959327593733696667395730733843924058577266895539938134385439100548072540191786795200514759904783171755348208773772611786472115113594408724752330799714893871550330078660230660224546173769997192264230734534226515805159330132784779050935898799810214670061884560776275490867624881487367817525516113232312875206840257119815467593725348622772582651579427511648226757663593309551344714344913163987736802238040281409743475913996007744699925458743146993690957361290724642443046023441975955414102188481863350231978033894440454346284031438327149443668976183925360296856970865337592761508115804315285094303376191594753694355587169417750071025570852252179716601793579606335008697478321864170639645970994022394198135869856090382669079622246945166783308853264408844459103778666576114985819881357227098311623218268961013572065797461165629595822887300090300002096875408160785757457223026813330415065441584019578948910383246375350052918143848200181939235400820448309439069447231086589281108812185369417326581555628603182712217680767679229533363329822546370783124772046757832063560117941307444020367788849837093702011837508278898900769937790164680314432527290326404823098080753809777134897316160317704455167849951125237828163829136195964358356074286020270374265807470546202414185718729938114181076778418453869745501163057205733293068976440427283709199073729961724531843974630566447614419239020372346576100420977953842615964641220575370982586974085997259804646345359307355513338577631336231490651266227570039312033650706088809225158154727187825494967499688407531301284483947533029952999371641421904949509091631863008606668367384452771632666982968285559297683884119754019322631402325232488613473503651953014850482740414220260109006454533334700198911224827488919585881734053657137951747769944680534799706632858475742345405489084088317184139541895998927688854302232221089942683727063604717526644379692413989177545019085872502218016939670582812597936287533316614547265794624865537992566883828997627791618828376977443833403906322964555442442405339397013528144312706516835752870769475216891578190134845441021581156341650826741688308207572730169122250120711703403426174123958452287603652841837634485972693368717706423746087527883820070414866170128905985195621128325145938570333734512211725363940430833510671013456518238624368794263623720123183799725594754146281625613006577779120119866807189928303788287701785293827693534344786972796752799533377827031016939438092902620106512420750483459892070433715829813731661927973555318667864419359960565651598375083187076945373306710054122538634538484879438674506955322538206570687805475157027583633633645507834475483473861832349126706260759392273692349660043434986504172528814718473277301113879908389838275394014403201089992353180001614254473282167359042363774649658652571464955282269378915216971408578482586559452585662609414425367542363238812174700167407766093206965495598786463775077061992455872839219883055335819815256923149292283112172491085969123313885613469036275177962413495434760951184641543532183903069007205608498490054296555769805335184255460222216766069199265325345008472400018358449055723891912317035097136389330890371443400125033212522693747283289935644865817923567824026542098515640210152675030400755356128702580581630085195698079197772607713946546659399624894465981752351847102876152204654310114063963643136568376853950429673710704655844317698454011714797583862248860472700729556257003617612566977740578621835442947833003776757004907734645865550398473365492046574343112295440115421589120432400034184825967973037052661038122714673099649232052413711396448382168241175836087021776354126540138017922739098846434229181018158312268760759477422842327676764595779617041673110593190724793496902592750753187025226548090242564917956614873576289649916903413910487021094392421762318530010704756759069949192847344921978885212568774150219269615510770829911391329770535124115020823000913939524113083046982391819834827190115511279159489189279751187982370573899588551651263037418668160628175068960399231107558263111753044874134606924842182683132955276310386617458143506337226714478572762647797642117022747680629299214120241637581632612235866276904202478350002845098016450177552707041933040427331029693089268277440708694724686995096156187831277794168594546689646005019563552157641995184651410513481708922657737467839087415014800607943751769391143512559312521120081744713259924731057739168603828203380189609059455228691088642012782122824403864999798591724967345479822738102954963881642264940458015237092362550486650247637743918756646122430075859403018638654868184928655499320812084347392789423280313737337777358351824203796770058346048491625439506634266595227000658090929464154184348465444745504133480094967102733195812620391360929303447649773414960675462121058092538486220631864335175416500579026243205763090106949600423727813771945875976936991950234623407144173022477273889231024960414088127886632577140369533898442213113318858422174919467528071579255079659075230660111651900547410416083011898993819074349783057333304903894841053698547395610456151473678823679268057992698344603099627238335783093463942001059108208520859128946167054187646453854084750417782185098985369227530665954839308825109208959735940832746923742960448905717605783348815970226615012294314260239825056858034364277157911967589614543811941554488102505833412901937939113449295886894167855236698211751159364090518228048850882911209242006437834876863537499829108102501407678165585396525449848719280914755100908034160187698478695310888973716362343191663595463892578899139098912480550393424367133381920364858386642682070504223878148456717501308372011800632063650113095612610409569438203406119992006482049036691909965593663002813236701409168250760008973447215631856072047053370906827187198868116165036092903824230308970991688045665017835182420094506766620533750441192051131400468589733753749912842676931652581408890225946913970911681867244427952641183389358135562994059259234578627534834746409512447902793913801038568519025660261399491568253604794943523852971047839567222989505062384141718539149604458985187029135614295409505866525203074382457367267020121187060657037108609329753016423033285567999326731376205349938911679239202523960958001584978735188098059312115258567804381000595473010665801143207532515404517086087269080390825393807629459810741651028427775907546050804725906774547487590005127573159118080900125319156051767794530886649570519083080920962165640791279182140210376773822648786166030120767948008043090480449468774657849758363365775835652213968579487983482289967386217371221306181703912036270487187677223771013213590352016379449804226622012869301512931529827433755456700148173252726123349975518895595493571661782560577168058464862766324364719280576293358447970051169952077506378243444957340582234320717665363709692132969087544372280766690213432938893382884121049117547748182140508562153126710983984175864575355524530086016735614012983909825270112026151464729765158103751281033256764345628739783692907729898692598399971435802552325929290072770304910047564509949583232294102752693057926540652046823456218761334010347370673644363452699305058431429090029245431113481534991375497325637098377332874508092091848836219536308699925467798839573845046694691968105913269247779660679498980057464467986480379663727783089794593360793977695350855080931391826503863215914308626854018106962111969136826241214836052129102571325973855295921738655236231197061711665767572740968127228505897502797185083385421214010833432327702342619035780220126149050646191902443225493415771530245315918004021003789017188069449439814693776933280647931319909620151122038651468618096943227200497900840019490656545091931969875596449426906163921285365606743419352166992206027834760129142996147958285118270775374299679891644470976232293965361940060980691297541392472533993383506996162911369355587522397026162172894572747379238477716955143342557835507944641834009896963511193391044484003688048287212800909719478338138906746960163471638613146562694573248288723315130519361198924743673551068207172185529367798849543612136490603456213965713589464398573450551382660961027850108166893748060051544912591059224996195260128017009811188170990990294267778619641401745033614581802382112515040981950767800677219376864083817733363270174216336863025512045581593175444128296200829522823843684339835378648854389139487306481179974071991040002783935549944572160712722002098791068465689717371277298937496449021667636864936348419502323525169617544905018074580777455458427547782938642615492217095592816918210992199323249734832017328411586136093906919062733620128769824939109575569923661960920649278057796641882774236868764404562895496015656060964606891342204971935105628142333256132960462233401478463091568056977078651831445358527965929016761060807324931607874514165120644976975419281901119558922907461482192135096858145389227545410191453632440141386134547475440690981384809779386674269186574389805212853020892015950233058325717701153508170041614707156870922789082785622386410663685830788185121440566213661324111568256386060458457014212335396270560954981195222117848769166556936329844632112865423248051566243263265671842323648229014762934513211266771102552795316504129487555561743450160450883660508172726971535373207181222950721406197820903448802624367000355060435649024438579964534525629588114255357758883344072475088602576402922054189370989572268824564455088304748770497838383334808830859494270975810015524424316714040561962310016218410075712474970133294691935128175324239312075724331276717498527361240196590320921911039949743211683086834316139517053896230248849910599106454184357125862757289964978650431933142756504071745982069403570526062281036086148508261251132832470453595066966793610863412237523684002620470919591889091849802457850933310972177450850445387990570815484865112488456765970536907019905909895120865867950174466326483419982018585485509831530899234783744691119766836427800771911059752042198889279093628827986975640867574469035420189831480161762600010027352372935415239407856626485553253727395426489560552485909598091682610699263596660854588310502316352915140810452406139238361893591268764232238630209473769815739820629467816028987627259232730844470542724441934807796097891482156562571151032931498963417200576939994769963263659174368385494037275190722918506617131926881658564952353222873792393875783925825263544026438938508854681950856493695148008699450138079814467674203539944258622958484217771215956357357230038872983607565542472204124978210022549286750147817749046898466625041212594604800157919193324066472511616148548066318886794138112414273451596732691342514697298838645453014171101037546201069958001452430797084832990190173981955956289296016547870646949370847904937363899276154760365686333375084939753393634570505088787462612010922136180879436822752479591349507246036755415808556656107235427190247839016597987350113135583943084670857342696683578918349705544122240499690566714922165796371475200395630684789976784603171762681437510393130762590428875258241119111916934273949492241610881228853037423257805375354860491188891463925630213215728205059331418085636798750663207103686550111917270736638038138719906586962171060857747233776750521113117448085382536210374855976119310393097415499788226816650421193487363069664929307454314688364827218953436185498611338558903414518885026139684448839194920986160852521541895402708040723452218073958671205901456750215688769427156783517996739895411342721200409606678788965391235266259223055561664299512657421940753165902612647948500492863464368594719049929883172506421618632521787242190343607032475888250113271943978605177096585569337603715754687389535706316554967461957475761660596846304598552018434736541294857501600519580411864708458543657033976463408223996098620020909477556506037857892630044558579344065353420713968411768072438944635200505046631519909246702283375103027921805035732706252275951901573457061329111328713377903102466715447509647451823921199831803184322303724303477952408073126020695408960970853070679817872209026314184902766257194624811683067310355963506093441351579157275782717088936708850892579628405625688197996384793950478701986818496775844162930325010403221932984070062229686364851421013337778976386435883213297351368898635189258225845488274176959683693164814329491319876606011900299535489299139036411151946211675969203862224171462532121717966929848077554602765142744262855128234444850274074724619041007632148576708724648628475734813869118261254312750281067060480849994789524996034991319852043046789911476898643613128681489883084399088374724413282534009530234483390562217758316286451594214338606646792726677693001222129283280125555737353780331393268825068150049217072001360812041635822180967125327061531302038833175671600418019989505636148484711025266626426099379255981471225305108131517566876039339011474371669684147534977582725729933008827330551079617597698553002740497853025185795121638085189453323886974857129522278153543408053897899599102133708862484322890390396775721137522455254621927548663055355754571160017519655609108615285242260217835633090211304476197108971165378097309197928510117257597967522185518376065256081800986154232751063149299403410864664053528867567260702891979910613231768099347466439582315939639686604295019515252431010287429674581187340662445983151574001543198453901954153741070807771821072089355838565920101825162172530567731519493594492393177409569969863952204863268495316522972799001111252872660571262680321360236340957149421351985655166414068008285977089710410141049600232552354668351177500701646476494018915496386347059761618936286792690460590509742183465562706661465785955492817271980436370638222107895013334711389468999822669808182821879697087878817233714659021243485868602998032626535449957269054945920009662976470902032572856172461648125312643386295974326999613194869140596914560388508096707017064710818180267794982126553904878734271778694770182723364153015772697667237436798248672734758992208420467109606957520357283384613810343879655519439960508093174027483138378056485106479654018088956500347992689585060127734301524282955481361059678222928870856147564721783319092354840664310348201729961472546915579821353088116853161918004625382365931937627719065072455217532040080302663530272617791783897747283604052011905720022006525350360858947336796739114968126044094536833536254273330147103331691594594858818760351113149101167323104090791172312970966803170320556790105185950178394983820337938810884948743435084635995530056390157207058551175753278499650737084463717657930359400978613657505543639255594158141829201985237066400742945734327940459835912404594329172904240544097283215109468750591925148360848912782462301082814126444280776631233564088586141772737817510158299369701500631411158635281757751373567039645428840719853097252845431828214818133023131201627003305247255125689552565515047846403796888676394383931997389748142227321100197334870439159169185161541271794626025686959221836548465870266663699501483672279972669225254953955143489442325358861816271271754137467778217063101646705811348275750512027987786835060066698907281543567617983662671190220676393987517483664148590885300985793048604773626877858622537285680998885970154276296350470036226473124944822183038471421370955366428981078697157085796267352826122070636958956703641891396647137972388649391665570335486056237383151580938988962503490856735120957056902147933449290402676959011662225435533411652116364488832635441701674163462248318182452423194609133259410382622937880086525538019513237815219905382599372855232955176213926029261992296124969516850269519422347741147210860782916662048026287445888094013289684245699460376486789473555010107102383519146241268191436488702613697678428371011114697419637796490666665011837538022404339950743683881701204035724633097162499334523419589791739058729813914318166863537245518270540440391412898592433166213823717124015593876032028055464662788092343201419793269683662584438553722295433831460993633320300514869183944733032483065593677490209136175034367462530263560937250490761793076945369859239701717283753237339993222758493404403085493297164819591463472019651866601556763825060266740799819318022718592087762486292446707094858362755040944458099762444654786952355063371159199773363305075496214621933657805527650615661129665882945974511122546840530604413050826448816935359354461119988001806595803339334250148910688149169475031811460826857981253222298573769323011019577543389248257612180381192810254932201134036084706732159822896853787893427334513383151363864662024357203366868305538702024256022400546874455727299946283683743219683166025238895639827476740003600379651025275186026886216538529680770572297920300758644648060850695017383937661943927312693703174409729893047426190268018599539623824355030074618427845739424619732611620708260106932051913176326702801300761530735588509552744398044607642503468676706352453332455491526950835381415171056574284374075130366633332104489154136742808102088089730796096571567012336808112171614145771259073590932305625462234898339541830698751827108639264984996093263123785563052976174876208884247830613212311858877468546568369131340632206947829239058632203581944857490904694567322852019945557563276101331642006566227797369493561385189655703460659860017068487018636024197465470084536345959092092091952851229365054184568265936211433486297737309952921182872435145526174425577520597813018575318099843395580602086729972275610128138407892584238384452876697476245187933374120454489279753726089936700072314503806095122676968874749130241894747424747953296677800797328930081270660405944573272859301515558410827465547148997207213160880896492545779164395279085313591771113314621716112366149730311751651907875809507422888918329534498010334524976976548325274513551402223348839126104736112278253974777486850785047102022617779686386007324663968554999644456535574833328318873918631262791131225531404983098595125185042652913684787674323302370022193247876546430996125456490230536078984185322153185093417303806684795620428403729808297246968365600624118013432697803857188842465403308870480492528964380521577143033002939183140919102046625681226643030699664782346413202356054999712725709289480154862185772087192506447707173323799337415008650765185503278846755429449920443805683719027730519105470205678069361428059698311021434993662997445782175646579162342427832743165697773346175164900162619711594673640196868411882745415118687529053059961367911585192067028065038997167060943686112685229013334632314319290427003457978968463901482079950045505259607429892333721891356674940439843444600023298820384815000300587236135424628062582439831879170138818093459373866504068048711182101596560918489635342166345785204883947454840361323160829933391728953045656761810584935709618076961523631851343008311375357948373633725135946712986956083668487537329536276850450592934373034852570337697704209384107868628672503771627730009507072418302412333464798330367214310517543188372481213096185398301950408688312447650674602637794933275665306367609542550784995499796600043692772008736420102337625658769206440738038731745055959135753763184944198957469707452254035845458262085366774364748536895472474651521668821410506775244481283314703914342385159442247762536308612299230440637188405770690870350936884446195792602862693940154013195124079653554977626929497995045366300853917244829970999355339979126583448996707531676512539126198332867539424617445269198709641059245231385213985833345125314037861527133767621796952874933457093832309915847564386249697891509476641171668880475991425390297717662605933103540963943470147484677752381225842267159720796067664957133059745065283970485847471474974771360747828470324504095258460182069892792246861767728934945655107105089201901872438349924750801701004756485180860049833142030883555550821483313837460566069157604029416877971277477787084422348176042630131937712390361384550154280750449230502774156115779342446877936329025043040265994107573925896478946721922759596480819813870601465353163537077521057710025111925140879744303702011103731999666669991143623070727393439580923267129761622901709890179825000818133092602070962196111508473881306824943845899367252095423187872899869617477052090431167341876424633763296759876293787553720963899576546428366391734340226335008791932699219258140520576631946924223143852291260076712535385745548560867219599471015128841951564648817761751685146148026630546217051877400533715499636744242237119391661042221845994877302422246748670300880057983427614473944337576278543356643572134142247470496812421669319017055748449602283866476197009312621624954819253420504909295129857271644454732358617785831675503490288691331228531828675552492142315452954885715853867417437570049374857546747670222968869499118698875515246181144306184861888006418032286032835622278975586015582339408273928223803480443461269051959094889184227805605834859200469197227328273271742329465047210417440524305817231448567365131036549184283028956407400421823812145194677014078720001508052224038996070088659409726523349561276572360499786711597494864251514183770279944329051232259965215052837183309423038670439471977695481289789163327274864943867168836839736361363465992374457273006594111636594787349349158384670909237824894338156548319539007627546440059503375074263716625825151658398260936214380964760421605391351799712305203567394831532661058620978446040735376331625832110899950611542867982260628883650357776322396936055344818713859338703580717002238677409013160817679184779011120360816271593011970278188809472811380449217658283599133878221058694493848203258031147748149746720232980039194321637997501331642539501163571983931055402943397593474152036120852875551594411366019876875238583715470864760080757874040659470183643676732189897715825070980441907912242769144566625639637279048250616838258682463037707994135005024483458976688437365100989131663517473676468244372281435833340683899698729426354474915569215099925358488143796902015658955545192358007284351631351026057446625132612778765529360374724159820540294390940001022126961622896494344803972864056511006452974612857336476240043326553577896035146618726070335475866959262488443039239119025502375370638263377698394078943346979021368425253883879898330891299995935880231359255759310543523286768561359409325543993622932980512794556840146852165281764544351799227324896694282874594975043313027426470262401740206943877514032201268566148847012711193601639191101414967959172046045530260074402548447283764816803308381782639376212455312120571705498299695227334202560919895095031701497895280663639430692201432111890443983361046839040783490947403065034826041250932308183728319915437038054625327906574532313162378826306711705939994029818837469825899258856238844254148508325253383121474123852088366551575237305477364687733047614129035504021384500485311478543463387685589920112418673889629674325789026497337366391656876781148878869865514095141327534199288576091747275580596757543511598055168697997936255298517903350128827162499099901256065450226102661238412116573460439378715607586620280797213256280789786659995616640620666349975543672865847314378887274707481594906904681824608038193220919831746160464354394037419171805181556696269616554125955234635678377601301255949661369060952462027966836534324538639810530429341799488810674363854600973196062284070979988502514832265769027275844285148900435803947797135565029000891906713327019798515846161877784806959392808272594076764359581177117830177138254337781093635693979824254115474571694208816206555394952283285860264003075368333017809603905972123464827967407475581340380887583671874945709626633616926624486754152600893037907048834966505457692503175114306749581616391200149493661987251454929162877631552389424536946865037141765286387302444164155910714298599953819855741093989519142978926446275236456364200629781755195603928897714383843024058970125475199969289021700175420285083017338272422776548407685404652162920111882434851268243013352939823654726344397980321381749302643262538457867148089937641402499673053507215223448704010854946160327535482597887596344251267096414786754224081155560582299766176422639787808853041410202599565834884653497739260847976161010583116859804284594211341488881322990081571816177560717021741128291424963473512797292941171913002389989169560308308193789100872243742611302068148453297672628470963202838517212655048810239674186847983143527842475412893159731634444150912061608290824946441317411199137702587495786144789714650453493411199624144811830143995597781448541462910836718536455795846636688940563873895977364192710240769771731916449321183666005084270352929496416586958366520767610020319949471930128843879794326159832931793131655910087381328012532733157255485240320636795446177059183922090888787160883562063232630701595477240434889829281278363542658611283378905227935419087957415085138893016224108833774474845849219452452011161078580566375379174805088455745602446453484917717388761100299379825175984451442644824936576203886762686106987378267816296473948014318850979132763931623965221111602139828350245066188580399246872592053859460659292196852087713766859472129818899818109329060062687514507473037341192460174963737380911048316318367635750036584685852714090459833113726734805035741367829224512763197711198282970782590421615814686849460106636104418835636589052939417606102265694066398758915744616023496469021268368016910617817425982948567757950280912749635592159500784531334457805616057627166647624147683463539771126425599301357546119259139921400814335414393660648916576101172113507986278181391117599303185776974738232199979854848673491991050449223882359335618259516566968561083574820252535440178156122121648805976790363091290730638820363277960642699918001892694983629068880047927192901496310740421741619543089267891898299921523625658023495772662831429864326340302793566367856312165748087492158788376835909600611572431777120533632953208984114000147013432410098559564850473255319684036273555743411622169243009432071800881527263699067644501801741798390558123101098890202186691862685104150146478308839726880705497501904309071821947227369674986503315889347464097374391649255504514407272485718558678431127987070381526788729370849684840518878534008844419225817926485419277884888809003210777897138491373688345728819621530569981492163499461544635506633100911347892263041359356344148138516055450423858693801163006583988645850918256570035539080169523501203179492910890676457311625794148126289274551973064660959036067139119175261727230856571332383752913920865424868229944796219903287477178556233428097610053284514320426052862928093706122989305542264868323965332590702312499775308701250419601351748619021639782789382976527259739214452096398583213820171071128795172898818571021888733749129334835201738995546243224474441595194696136121550409597672216258439981533795190111122842090686070874116196005109413946241666015174291554593819384305675405451599030245772702153720233628988887863126951060590967700961796990462576568483370050041977565634449139246872269916848884835872979641957750105659704719146706671336795169976871537129900160441956872629863891760919256057235791938957305817017514497877718675221134746707761225051421467332715239915950913736055205164506248034132403006947607296387413391302905803440882417219635817153525100405078966594166858756658169649616921067079554122348808784096904941070234618422752039512672294340059628633122571437509527167247840772996021656409271721467096206379569812954568699003639264516157557307762694148305808763453355697670626409750407988633279799494852405641974320122044046136550578352691523568421727443468806469148074227278388805110794915574941171877780697713415834639136085923134670227045817117856378708810172811544291908708034704707738449402238104410992137444461465233863221034355407824419652208202386088491392310376874974184898130941795342497103948513043401636791831879647365886995683564024287712148092025012795535787580951811353572012941549993923042849147372082861359824038830340563099123744537242578637736996222320005652715253947817163207714662982874167670961241110694029148546914209438365321511528904233125097865206185189483099101937405227833488223579306030846128067116765818514788786180291861275086881906558762784557637253705705509912423480879273439034844592544521737416579433528165970895345519642534148953800814154680625547069799714985428955202198101222066417179663421196485690206012990229579316492393422303340828589506982418806739788938667026607390188147236528679559753441199007969622115412464100757775516660416766445300491274535404793521220290788711775562887032781135771582630168857080852332802782030061125093620686862083990636622430744944189392972894912732917926595045857903191209158923672782248179305013641507750280589751807407649730944321952447851441043338757730362777384812167168706722440366149265146823861778300179758350617249413030201152955721999705784380469879065486513093638481053443281434796919642575532729607529536421452665216221199470930229506367167517493520278763351482731603313055826971686008889028525358042812694137380262045604056083474919487027920928701661470020999624558229062212976027860807597715827665651382018383610961050321835294811336383878272709576771857437453880780917958834423324456772407873322047966600638407545150233898000442200771909739846241686975057130410406682021052269792643634330765260037995574613403435569836936548790803222871518596442288279214113202002124463894552997114607473156016672044224765066164907308600935179190831554347045169176694962166699059580701060321057068856540886986254287074034373572010350990604706165501409733304413898078477473147865187109759137594104443510555364946047319655476853389771207600327363602002143093834004497043667560766595108467837271552678613491263327281332069801206273750252752799734532029437861403653071779880169999811456992956646950705319469692049999045218856805589327341482940579298237846796236269861837398507094266770959464968391379455810285822511897251647313081267725612319875498498362721716202137099138843749851111001881759842208311357071812148313212015261510666435169988402139261242140538560950837983341272634210204873349124080861571479604573233834093348320261809308196212931804593432159373389581503256716017971842905510040860979944965607188934784884894152049725470283369331719099705416892093837730071594183955928618908713337021204974739429008824254480086440701381089913446993972817782129743685647541233854819305111829343564715809530500527950538236891004137185329292770236459215842728262145904909354052044296558769447159365744289948623629016927779646933246572212175897754749919726228588238824132510546388710855644884415748860013149622939254477713798925183928552276895518240627156147871798536719685560160492337392281446867732379072479782072913163934629990797234247578319055520010047669310003578162320526674161545707216352909555250349765816416265525645710592821928877964760130544169935698427092101765113353359684368309992769203935126098952545597776904493652093179826449639274198336945752722880222344995503876403421594563029067495339029004525954507212236422886248974577255914352799020876466903397293271893569808142257653987088830051896446189947630795642355763091922678605219022076729490436569423482989896443778916295750043547308398658340270507734831099941904456014099745675588410491391400893066991535673187572576180201604030117706190340945896844560548822137701019017855859034659261345975639786358885767781468561199239624450551509092567467069707359015935043279905757537328061228883806172542065395368305027163176773480915352813928539226402127327504954896785522418020633682667013116079316197890215681844738582730095371822920620646158860129639970659842816483707868798889871071566234909905156238589611889805297283870951072828548581552416732006566673966850530384838761757916968091172244271511753898067906628065772513490292975975916614377502726382006175360006810566400269838589897857357713532718766273340429278565706284917199783170269705092610278139727751709006274235670931520200519712915086352637675346726540165684926965053079459678107964131232711628260511392776845707234646092088269093225614939547581245492351478844203409935196946907225454435395537874467236477818483285279274461681435875526894000569959700670624268991811537650895486971097707840574288624209420729154807829660582168532963396205204155038207953316171145474324594064559450753472851062646543226781979936743697038139048310517092087943457728495814425781757430870244869775122519557828230129103497386403907719259858802718953235369309998813484373835452366542756113043602948482345916351059415442504989299946888770840131704472138205845227448326858480040618988429941629822738797366308887857418399721972838277084040837756245681240270399566829351305218316862889661085516643641371038823250685828145004392909226692397710031571959809636866916557736347560364384177990389352612858298186210172573384441786531269856179641105324394060109031340357331700062713435331073434524845126460097119494282447288032494568518424024692857134819692829222624218305287696529389965792875627042776908427455758850336151537042607227111562603456058863571991467224314603054734798377884995174477920748866135710937111308423466000370202554819492069870619137746842178926567281796845954525127767292172360253547781061153811697029915165093231498728085924867799576811592019613850996121771377611783531727977566326494394648659954790625433672815324987381688310417283046311899575000886165597056399544544136699719088056448673474815124184125116803806907505945187771798134188722482829577840349430179179755289523591956693448383986334236218005319442767298205186465789990536635179946598971411335421576790480911731925034836102813539779845280447531837428809731978840316247330611364388105011146160048005598025924219202742870002769081473781089909732629487933650261509528464766860952011411388079170517851479275370023014023178827019338835675608119728618468481497902380148301244683506615329580539046917237531908979519387864942103417403364538161266040872556306762331406669624166245772369956364468702207099472491573281770904807264783606064064317603189275656344264092458641933144278678786697884634744494706564131998941439856902481880051322405632929037870595019984943127441685439860505880453138348775053746943057000823303278846886807171593346615758595534803905379241455419449170481447136618595652354797452377344829515000676535934276341988140238568437136290000360371509521647317344652787326964485479736016086909571467430289822256103125053280994712600895397997014286762267036394162604249251862333839995743461242409932595663188591010236475102760458062641946069288339666797950127270298945177611865384078972691869109670468811656088835495355794808544290113054765455669795002469242224459671758488306787041311045531961853053031454848767049104230624256567076831874683963042413690544321641645523831789097702563128027780636711383485003424169788514299273478154925034675754225963155212459687481941609308660603170648689488338628564026921295667615445885988898324162655949761801668855588640873243630186916404398677216004580155117461673912598455845910003085859218514773366566603764591857036879030221220936361732813366723014630870983606455020735011576288379318426277171603734928149647923333373218699490191132492446795955800153406793158828875915952720249068976072794994937979326997825370447080059969797974788379442756518783534729676328707197780199986086472324917961133644697654635482131849697596212490952398410663290647929007285861694914192133589623378055302331807650295745196569926055063734269246479635964261318550206156894186155229369197043900664107581073891084317219385784833583582125273511541391095180889227957242220036970405400527616219041936617856563248732925919800355615479837780367822343255089554127881978511066722565307856969234707148918089171630452898145864707891639166581560948720785337409023166642795180719800173749690394790042530649689519592649552719509145360058493320060990690310869409561930438623783724007361301931879695749182834198246155826084570726960796393462276568227282523422525257388921674657005218520096751414364276717727942649692699703443603410984245295715389598656139554443389943211729285708335680773680110610243224978147547596755277675399313143121564747865910838978328258291282553765348510129577834556609807956707464797905616716889001788117651633596963949717818174661783237299858582009057238008242641900087275978351785379210883534090654647705727202226784007863503630774834509580585578474698584083605737950007730731776671088903440424604067367271837543113242679284515743029365456638497254067665272905850623161864493238942528760581265521513564404829520180905994348963409366323287294261172401103731924117943843749482315831047351995575867407961872827346657272554875947538477480920440831528850897048939745927538532993357151514945272165744968924683243836510410817207807520763260728005649915426585842548494150505073970339432704336379258567353625552712724123577789914263847729092183087867008885185527652909887475049533581328750918123112790448809295004140676517847627880257881561131150538050124022064793955942463871835013862728858869471007909361943095872613867034047647268493388763542944027202989006102268717322695886176314327548004034256742784556559296842296052177604952508478537490760343198087875332841743171927734973133511540145336930190860763601461236922928556718523490636244970923686084468515300003842637238991923153564067059461644889231465891671529464951133694716784359462267413520193685559190115363438237901386704966559265251496941866743710543408766794140819775077712095493436826925900621895051567448651810656614559276327748746988603987317996660174414606358421680477166014727418726159972495466627683457521409223323204705811590913260754722430954403247269243011508376236517542098629543331644902153137246462406018441023855738822699057757278877357040718730719063382837400548262687652056281840096023691144762851580167075198622821839585868711171584017812076445023387663353667094392221567535127882662852944162976482869781771691137692399073395847392818755758407646157442039026088850424285084979482611635568666835503750436676995133889758535645430869206812124201101337678982393860432620189415380114352521255784101861021795817091092510762089424634559800970243665461701767197337711952454469589804084649903065936299847467592550212007476550278960341525604333757274098390721632994103392795968032130628017932848238596351389223107876165090259998850082960999379309175959004959014774962440895746004746093745363357232473125791756379477575474810291793295131945177428747603730233202872725946950993147653349048812814179201146129440211596852974085137112341415989361439949954345742594363630820032217784872200983523179468187222697194214534077377725124729318424372347076175217556649813766573751600433644078861324677607656855480612194736031935318363128040531295138612185204444140128861365447077886860083229002319553142896415538182259552029079471681651959136728694351295695117563966948094367638996949547965724791821031004838030298651577361489086975970339512378259810348828088754610244898428056089880984579743246462878924196009857660559723487589644302611724161842970732568745079251142708406571148778703665936039317424495258187216055591653060089015542903936711270246810955130674435985980813653723297727867742976958613529807069168438815449838548979293318068729287688003524645976079734736482638260164484058302145951546399924523597431726906918590134458772615403171064763619456292340349424450473309534238168711710044692213420647668826795475654615510492376663232487861439008998185153327630992368685797672824062081501739878300708930784418508074949803422401079806625015987938169686746005620353857398927948216477986060637275238415120896327208504645051458785127846401363750839525689394450397452860411244949670900160654606922576544595823103272933772811055752253261921858896075130820078164661231420217103049333745130480050686534239270142459874082338186332125105732155616098180608532830264652201669168254432330643331997447643965680177055535612717756220997270654966980443293194956979883302631258371262232991152656013461184257874973050534527995959750068921092190443668119663324942375721746513685270639317861068700877518060123545625824678565149707408012023652199575035889170148202559068356292854975842754009142100285561486890613053233464479675117221651560438402004798147353655571640155488814644642680424105053250726428077593098457676613861126847497034877183653040596620099325031470951658901271819709497951342652981051772775217024501595831391972661153558357533521732674755584740916487202731312434659956339754897967886986998114558761607224318908293828261784083285595343796023057215473485217824595716113207037275879056007705720045728004763009613582599212176532295973067096171296502047226671764046342016112723594805387870254590989933009158393299140149938256897078741262496942299839318953161365510880385599292802525786108428351647504698851069094151663834263713341835311071045971526495486484151641931039021749051826104023940643549682257581894020027433169647509609846605504630559611688253476395023324345960011796913265859857009160537721696503761691791279096980600309101046680328050669123594870803452819353040989420121006552682707171967059978518612818175302291120844740450802651946750244100419753015896578649334309369583904234262435656231659237293374410234531842743739592865835669535278214956708971135384939127769628800106847337707217282876325268343639438129837850560176874793274751143164088050074952079178279118526969881512040883137329121519024138433277294379638829066117622773355355829019519988399956426952916841525539649218653167253287143254431302748654330796066409689010574662727918399272187306093592321857295875767252684475478461255322604281644952686365544649396988112641564311216172700139266572602106463361806335066263670093706007669370020630047418792403397331643651277230096918351468231728488717548365635416051291543552447189509769265006038721597354933611172344184945907366920988507720852719608386727071824922758262949031009611776755600453235149510337690511934863079760716759093068763948652854837377012532113312255355748600153146343937326083667951138616675579788014749976780980684578787827176361216290368650659358153935723515075054631408576680792004793255081642653700769846949879878593432224902727251583415643143124880793231648695474190185543717156395156171182382255836931201538625789445535902536233885028722895284472938047749586793642230581107749318721809433883576253772515468198127108990627899091130026505284983831040185148315568539763005656214836803870272096965498198968412986655044871767854985636998786974841079380569652453184206255902453858510317905457229930569490155673107247833604605712758642071706054769622318916380495087975462405784482877714417064296438162473616943742576241827037915408427486442478198588939076916916520638236251605266320064611157479169192141127409907746679933423002737145087611524003476381175519273262763934502540711321505090979558655314385565551494669134931450495673065604109904648789698166433115932418406882774154981244661629429968783951652979952586971772753143601192958222016729643134019555528136206031455495534376166271034003227404484992042918410394579175971328491704342840526797721321935857918748812502118561014863680164765616801884119926253236519795476148490965096354947786642329075473757309183153991277853748756417454137916604853378084506968693937869483493601314304242963818517157405774233347428516519791637141301585057451829323456255852928365914049925481617682293285658931150599909479467641336575484254973167475659657814765365986640278294658515348336073072562797165791413204110030365950118547645233611401340139222333659246839805902604692035388973659950631519123782674358621246153555336215286019117681631196320805456788574853846110268711580429530142336949781937282628022772281740075179396903721905373753598585482631183725431695338067820698516554523117679745530927438825334626078821895750053513333227150504693406668609156002317478267533654045274499993779482036296755878630691363421137496146977941340458568012027639853131921554473764724418436352642591459201855240317136862845399529536496706237322885062384985543590744669384099093247876229233933119784278882562578515959472922515914814340973462726707772921605377905076420236017313965661815058918412671123231123713918029912228335842531266081903361769242403481076656512570832073590338029235901598407610570243806061137894888184204969208361009712333290212584370765177493822161377865410234665146808381295819567519402942671439215658947190267160826982337652146764459163279269756121406868400056977337811151142955071629774115792671807397871944544843740131744163940445516520394791984701561161429888255596013929629949571079155653145135388588615571242410542181009818821322637386341377303694194815676485896034984452178038865637168928647549439575989766573084140074653419532711872614354767220067155793081845939112935079151771939627773115046596242237648609557987223593846254018952464319831167399610741516154187198466238956224376893474588676439915777193420787788117736762890803209371133570662271606234151825007390333377143305654178078314978726146784023986599954643276968580056881358646201579615209809370840892237332454391588403156966402839278319439106425152464597812066173280889945173826987548310874064532020874005205467297446144359647170565765549252225700086529976695219331517618082795674970433803916857669266287059332146297950681565666339651990901006532071404380473651964195156865322439016290863866858825853959192590673987625801195451145765063777029101187085150149086106037279305328515119063381352146124359745707684364213388929046256058756265945478102582895615729121905237036957445260087098283339746377969573191204459028366430994742724893512587985213260008293781377546747461847160425204347536212184760192050187638360097690420433266341589878177135785159561702079663014526566540052592919369014534603737838629470529205841759689552749642267849557800920793274361191368823502445865030119903631301690059354370403320520394702591689827950775051367730455390975507617908198061847603174281849044256773452940335641323187293094803459940155917109190100601647777531594303023916408026623249036804610851646545610302397267930024318379502993454507578909546083156047964558803269774577970924947668439905781694383129373782430133111271429132879305331453297462624710016814064581652094083874295954887348385357274774144069363571682262162487914272141709656627200489477313099326644548052658173282167602407251147284334027435052199070871473296804741093557664666873602495150124354963672651376253060354568247908954272863969177751989580232447339491251396816788028747631372308045338300683289266021515443490719629810368406822396406425345245488532058386849381938937868055151943717641797757225281288169143076362809343363207459867104444629350286146627297338731475398628935517542942812800790766027584200373639351210150991590507549800257009012770190437414267642785524038764475475322843377987023804994670714031799912635458552498608302012581307240691614448951011397883226113847131568991981677964024892683409282778543039535081811148959662167205111749390309173032941276508282899105556975963912185505964377786219365554911344645600657946779266225519311478599445670527159484851289107020078458918014465950225595801202856708375697241202237360471764373754836331133100645447073433629823323588971623201867523508147288050689870173392220233777908813535327603028667013038827217778595768106396499092932286703995475612084065004270013521529233108138138457590602711256267800814048953525526276951208695342861380551890627068085173510041132806919318193592996925218626628967190486578511339470928860393247005436165982290683359633656731204543198399969920385641128792896924103101554855180534729796648887149971480878709493291939012150394329195384506666504311742933810048006714269302616143086894098439515850162679750750366313280645028621783656735529833484102054911088559839881746592632401182151916586581909176671435191839945037117341885603333810493476473908454624759109727876812271490226753967802135663809138606872280656205550151340271904225396936253691292578066346162238291371581706695830430419742954831921451984373911138804816032112332748702466567908189814595639272110171541764693182565204961637621549464079691470365497792734407100645993820507791261429863713680235437908107915328533720024017768030639151796286062458772699191873394820665781835257818236177973983436623169381394602809583068563728273359349139566808774158013467080106833645426863095606071066626962853756224901236358500177553978778867594159558131884629583350668256760841543529550542021921793951690533624897510511907037170223564423668315812421028038668336760119375491349564171189842608753354877934545742034752196657859817599363549441025703253515543452428834000901031054861115016153875450041532876766237875774632461546709689720238707680984084340256155089451379437788964889356850327891140338197530038677487551174579437082068537979255492749696574210011559789408827247898295275572572709009335672007461774712533513564299679544492789894427827451827650690665142999245193986350855737528010031992119332872805692916119318376638759612998298867645599222120645081186660452633235733118942853101050592125494638998323826779610301582138934684628465530791625311559625170711019313517257216451030150062252890470847423888198391135038208830921940976005814948312113714884922709720898032737337892525754286480932593278269637996257659472928309189827516382199072040471641158235987239736564778257516258014932318749055468329812071771583641066320651822417180547935414673847463328598921542610999717463991592934799188387867666465238084199573493788629547462722059517498917606565669335483301615746098600138276719905647559481132025423430308605546908686525939792970910183407820409048040844870862015368871782697364673316807242978661886734153904387608491377393640640016764624202853022133304632226707443087460518286509183897262467330420919438984134945280825432128655704968883043312890359889241646884622596214599252873637914497275897627587188026286653305803739396857136781316916678882931212663475766409777523987319621678002776310373106934733586752904189778992995202424053560129301990383286287165884828751279195363642143773116305719183356478556614355073602288398062768684513354827549893417630577085369628593844999084926264348462395818786030399736978135045429437306180061898135653650542784499598475865992880154205145240190581968262778934066528519565350778697742002220659178531966294191433849967309979240322039254895663485974331638600951305577477198988043282848258553053145480279138009780749978697427506973453912783863175583174563955510247786911752227670008878628201211133300129006158953225412325398829136890059193255421349070091303711473647568058695381380559256184962941884336942588438829552686085363612569251285989305540858445268645971353205045013084297155604410046107256948422357636491735217289728960380749748627372033190794420574116276705224446525525679977753854828442586193479387795243302705144657666324372073517374108879759200559140652605417951640007048016619874182464349654998465865910705321959845058924310427052543992000624060269823265411652414511513723650310636261333471524402890267681586391469415958281230189231783492942783166730247362368128608599561531611954932461432340206822689451157561048831478810570736671079318486104609204957660845206581163269058860765973123807551834928665302196840122310396948970331097734204782400805658256960563537658394152386065409564713608724717432209249310224911661555104492937917363890518281933532702643726075275401668385550897944321153273395182874820157436572038006123853081518300528145193035828049738330180846165666211097856287642042954804595003437986459233108610357828667546825090745318967003411539168470209343564113100202309500727350204041903424823434226943475128825450630675830216204002861446534442588899390441076103592934681070696114799285387032554354983113057555192155449732047297764410576656832204649912829054573318509884942680040035224204988625798143452443252879289286035139482415855804917162438419777498937168967639037698502022921844934951082948423730956181784926715068955443522955368238552980136080515650709387651408371236726027971206828387931927794174598819075712007508445759186189744174290483927329299792512266269311912617511451839453594527279329641183722120794668360161273673207078191997161722137920122169549059327763742126341171572981375018575054323616570038986691586176068039624849633263462004183118277596570807855775601675043883779320425010793853997899995473832703026341039271852681891157328053305016764405304049853634647973267568876311340228373963155427502467916225370272029909314232411107972714841558745335542814235244224427405570956960894061703253178863436369166267442393209089900666993218561197456474594799064337036847677735827113284695952875363470657162524203407565133861650641463900194112886202824500547391323592389761727110406784596200510798802124505706569568567127320628609726721200024880956161652543443242327023348779111244322549822898417569383225185649471253245539549266128304697966530563474812963589309772465767266327416305226478657356355368144606058407627315293312927195042617827768641897305834924833623892097919583284406214812894343560380057372304484464943615489343397198049804836512496500036622420756401410551261880933351055712266098510591352446701394330658947295076597259955244802270482693920034596859357096342578269836993354123573571464161001598235129162392190006106818019614926859287076938474182420209590775719026109893058107378412175261355093109263926870548320081633905436034585536146244245880037798518066648672484941976182256775282867516948927499173572894825876663084653559330595699392749368219428127262292165032360778184405107236568522077711242717690839470908396046901112223453541789304572048620547560064596695143683250631214140336101472535398030261946688718467235395582577597887977396416877052888069653182206868699711551228998121469570830631280996305577162446380967394460703094993953000303581947798974806321996047169361464302792423224186311928133120049047407780419765525761914258864710172678248659929699977821241503492467367272934133765534760620519305790436032061810425766240142096106315134126824742577391026469644365488676145070801895921462071560113341736996478978011899552722549379166871502890820614916193442547052066721912690087598885576492288188256210101624363216466096214616237371048191428112889473820818899078126847675892240300371045086917354671790620603915727157783543701669204512507869964157568759046455471372424952727793733265059761362252482632467089528874088698315892350286823190646201418049965921090600171950342667530795162032072367308823040171679033848257872651916614999519753939678045503417030266749452598166277592279076314296267457874608228788373506689524501940772575445586239352744622256248942890694195679953833365188238532806712562859821536705798255751450693891405630727914863249722287824929585914414286258137114820522449699165379486170045327008740528927005120246790388635132375850400438620613222708693995309686622270653163099472209632197767486653145263529618372408715829546692295245222162917800793409794461173786782981310853701136570815387645731279480387634890511100671832376815308512044674935613780888730551838191578508356232836578714140099493693513092421780602524885840224925967618641551726976337812343250815346349581443842596803331370422981295271632841108397913677966634823143481762016368467558334249631074690942690789347701927826009644048439426151370057019815693404837037811667339289600753257046172214722413701599472566966077321265414959162832864375782520998900026772374255481145009586460429194396116242496288134178817189047513774544361777034144587218677574925810695693690919472080286760783938941962316517823644458428982434609624625761087142838379257568190063001798663197313166103940859851115122479632353777418575853230493416025580665273796926832463877394212892955812090151181948683734627761694845950996087914150520732444444924822122453225496010730534015203645638742514646428257928662534054954458609048988769688923035675076931890409419541782663769704949924500627294266209170802551137914274658015703082916979349912785861506244005818126554252844038998936092243682550341197782671785241614525964692563783449944634998460190768089265445111312032258484091210170021348963960968117263966238336975464972674856417494203226897168251391543376848323440596816487139040607193668274661270758724521480526342634914898215523557223911226830821238654358609693779188804460535040803858406977360774045100016692522912967667560551446005496905984393113035867462686105218954330533376427809786337343451012629653023077500515706129605523196768092485625699768170004819852638346282194717570873008110842853309044109851054958768300349597373845353297736099454796758051073472648942511667510097285491813165584623847958845703215544005564011591188692551504748027494649854820842606353515801452610224489479924255627349128404427257501737130954971225510632036615720468795922628758994566131486110069879843374256715860637869625358446059884023536587282898018750447050448011001827895063595931881362211603749357083099381078502143349944697258657539576970525638928154143579077288070502026720203215118324610454704616292560860030774259147270482906367268787177358424011232716542634301449491365309972450267396447347147567339904318876796976225032270834579583820096200654318109632915221041623223634350986608487891325942394636444909618242138256431340510728377093012423449940816740793884833428151669394195616216850401408269331768947650025026314474738682800088114729886160370592875860104401660178538585414855739267766436335645846085030968356477350046725503866925019039759108150046172561835388661988116502596961829950411790783902303152067718941955796693529261449422126627914712067022716408724834530915420765674266802869727756016220009233119108122288850806757701276022743111873459502130678552853211508964711664032430927825519338984166866211205260842207517920557503378010396528828314532704471575094978288342442338288712645460772586004517244774783466905721235999535035226027261793438680259951582590170846733583956933185099263064887763845357017172300707467796477337406731808308855566279133075697952252058772644315825668577982310202204122857990467308949055977093599470425884132038259115042239395085823396229448315322743718870304394737734448466772387729905863166165420215872067727045990443559261554328711184477666513147407438291600272032961114038533005742466018736658829695301478368284268210673740770641402007352866006649475994482195435219590676230232444270636457522391372062371812308525808858219385018489544205327713716954433592919074159737781899215076871296522920749866171732819840733603995057616064373976282985009967053727361380328614160057057090484507519196636344131107529137131911675015175058142415212904949656129568419333775748393330430229398306045544370345229476845100438062624287191874209197348690779050761195833305481349611869078823108025707825252234926715989338997941356290437329968968433305946018922784177360844941336936792281271358888292269526355235858875910501608994522405139584689015023678150191313835935484356508020315786093454449262471383611544805812478515863465795333108706797214369285621729038468639114008099063615046352843563563314002133874980519787010540108625405295831648302952948163355097371671020509234158343611658338787881454131734832900241462623877204343089010996989228624100411703217409557167420257191944515843922339749934656997353897101912851165875901400198810309800803831254324318612315622348403242894098794205246350023966335654770692210465563333849912590205841158612542537318321111695505709232824922503972016159526520959937670692745781327676080011207807399620646064072001514063765221656845277150218433326077417122290347934370563005405117115462788968821143659055746523629815607382942391977509873947341481934791422704169712701723337219211083623984377149435465077072677906605547958109800623219750703553686307239003475685820613308485357405904647945397282613116050758429185713346531572707058755249009497748349016037662085424566926822170612937924000573966344130657719829834787359962308135376900783700691738696807293680989457625892830130360279765411102313477774554810482624014227404206079601250892319349915499853012370679997679703936570128285033209913426416737581201084072679334279587823619324836816472798420926812275153791325694187933075899043802115153327470221896143522796624009927237653793873379522489419393975343404613683185597191858140401147057339668675711474891222892933885733190613261059814874602592672934874389950568156277721630630489057370784351575800391967998200419680364076579719596817545164106562538769125341108559128128641137788703744592712008972132119625629552917942412236432837137282505175733401999478156523120742733811329947958009634487444485549168915081545147550259269928248247638455465733492997632738218795190620834419042220686048138048764719772123455829515368664764591118777623219729295331949997383386312682850030959970119412753975017098819943752868220167155269711742226916941487066037758636785330436681528661997296348097134303262069870117065502880042726653951861538175832530202702234105613421203223550362398034524222423463644649947343044352004201333697135145411338131323476763488965997398831729367109494232750977016858695797166642095668270954807936599126627652061839664437590862836783885808357866414673632830509715382686324430479845090042902903072197413720726065250424155404369836520407388246195754578156322551552074317131961006472354221398010168577949663021642797421366485640708089101228238458949485575470679090075194040326844948546218957765718480155375077707282982338500317940420230787701570934267048392491471166156026899480874396284467720671421256129668846526430971102789144596451932247093313648869853711400833878618844049290209688659877282928951842622987286717714012837833432576794822563411109743252187809045769869782269375334139950789992238762309403635121876626815032162796454125989952753949675142752207399853526552983284130392513513151689938463057188353426434435135833268237905523795782796002491359450445466318652143429286658827121422518005972389451611653382066959985501261893437048368756607692033249336781091645788731465723409427829945926762863657477166588302212062626236912143480776776129203185704263193244623087952089100853401264988273864211940127237185981710873260493941763981188210474280523700244525242506112116582761587651551159543543560656543843430314445982900920494594099130816981821288951575513093447738428600463287155795398292222226060940525950421600246665618303961868135406106218039608976319733701540436873625097602330825858220918868775074098427943959177401499980111802118916303966937382572025720496537884602050306588868417902107068268022372373717754299186940772950268378734624356656583633120113680278417952983061535141551611730074644520056929327729935207033089413788565991320653077100234610399169226585243526510447085024401222005155962573891824981296824501386962713819485148132882458985066275379066534463126376622131880759538520127254532391989969237084348701791652252621703950340563689119008738198001591471976225038869371533717780948705106504522999353813784032734743829524904490608195251307941661459915777204622676009068521589115161005979419360546225012580048292514793078447010882975499719065291833639427399406200285069134562232274403758776764607090379336594038066486707592573487264562885480289898244107269018583001945651491403874908232080272689021023713598087358777438602168124218378526357512848421113284265329082836691860682888949662086871436068304173040974548132040816050464599953036655793723644371224561744549715670289772714860246780586808092713499513851000635813578974370025613935628274501367970706064665627438495635240637003275802238385683713619963161952004871628115541838499857993740984779924563176519071613652294126618327721198601021012708795364999281175350958215046650725185100005657181050534118593518966600966950478206146530721452833223334750199854538968496008267907083279516431391392992186563763077933383028399497303340766737899764770445768577536640079661164915925067782718896037046522673081844427863288374562159708266623028694149096974282081350966316267250188494740487794525307137270110758383391688398171040808374758956271579009944108883403714410865855148332679887492357701729541963446291693888077899729036407356137868463881230684513818581526517347152557574745087781429181597107543090434748348396330048180007596333351457398463581100235756336138204688824991812537129417567284626469549052023529277624918768159735792256175661415940782372890625411561387350684488683884953319544027141911357406868433483150858428886100761902038343684122470505509495481515032647505506761939924124417657566486040686843061894415881952229337575596590244231966478985552416514059388350120172810153191330367336575941480946778111032622167269415440638639026573888294468833974728715428155838412202596440612815913288101554678077584417288418775142980972778966835564421547256280962231561480018270799987957978342354365011391164935934820407864876619635790504913477651429541856913049786894219991871096272311045694937418136831699375109753369726089504459198492816377761166759181772120004712033462033141900590827585678566982683865675833238617100652968574035317623926492360048872374543269627482787166325588077645015810351144995428611909525717843997592293824108932894757428070332484908475303091038594663846318090949219174102439254251042344850524090706359552034099570824812231841951458916091919883611083451451562052121501717120093612464708942148947598264216938982866999133364800928729152778414425497209189922250553783389623657355293885765740992363325020810211937111985749207928210227582753908244906772158896172846590086157889598370676267357806564001414755741254912157519007483225420355740392040884858944893949731626476500691197516663196916546556474234842752246397502624866682911096352690655624792135539825685933150058001974446561636959315797822056576857593986086768591918429972168755492043194637941213568081415389456843872636660902429436013637346802848854445924646048773130694127314180823172127945466853054854196578973612695656767778945942990993516598781739180519666077621125481425889752844258936664855398739013414341345706637231790029895479999273473550847666506497976038239777453569258762873552893638533268214782072468970477118994458094716472152013926447080243696951216081858836734065543031316171010611866345839466124581800037050429453092041938292982438547084726131573716723182472196080754670953584110605615438440824833675620596773551771650752618601120292296868433243527656756759668957681421253779807821008919370250919761256616796043977861765017227503865247482002209641891663670327690908492624661768416029716678754076693577271278927950033872272057385480999925899640612877111492308194016326334733664202539530250726747348701018814889761307102357096523203832786677010344149833884114186319149268416263381658763661010616359056452081810330918241571422546086565668744013764884361118750181398226603001813189483187419839068645140204924913243179552680200650643632912345762474083143436170639192690005667346901999965926175137005023578556859848520074200521164238632942215702265016582212325529438743354694190983651008003065122542939885247858562128074480377204502998465392215522382242482654559191446854294743408931677757099433081254974258817001167454158595519650193858367442310980105310896195645426552059663709689874200145062548225046365060827116283189083914889501441902991305350383427414075088971887093473032712119743855845505876314690799828767278301589444180557738636479539705243016338441033731479820546906866309628630556909635068318564708007335048262451153482607386946373659264695066337388224785575625814814805730866461117579862307978752900861606396908641590048349690958707622483735097521044528983879567081551397975777994049036036230160947538734402598725125265472598966762061803798499612282509224725462110676145720395829144730221301857842732888762764112677115720394458126930694607117124161642962111692984861960220704474685544015548316647943733218063043461699625986789678135493324024018712334238545472198285938813096907371125186492842776309126645920581004821762348557090212592713386077058465773175072380025467251786605300431560697307418157150542355449369937044412071451290927292309026979852390541212402131709090656609375593504502940525751524145731128532753664641712508994352996366134853808468953424112321054111813004890438024698195856363416347124307180727482082816420550372080737527921580199468460488859040928862062973348482087938503539951414711301434734605868833934658490963709938812527932024246221690950906540471547728005038403504342824367529120104027173635290364663671609178498356448706127535826031351770640187278777922135476696460840934444452385817999214818789198443787655049930257129802854485603854243203456264813702803827419119888833612626988766802238195271215536660955501471300713724680635172349183013807486279689529045998648653337724704459810059118303320266513827634311503051598913626305351472071394558943540796354499889787880228275571829597022185195860914485424711261205218485841286124682610621146423469340340014736638562072747579716812252154730347855537587219076067035206118895847686344161145497152524020651211319197690152632447008940736106187757617711135377971869351265540429545072801887114276904178458774042540002287709244055981867088650527756463290554837117927153843259662154293130286560270107588984219157079495961399269584231868881798993685868037432467049443319131575730845598876861393390003830391178217691216180629278332820887878503144254743481846353252023731158463638863222788635957316592794933087705536413502438211151276512287009853578960083023859005674494141074129553042944174338937695669318749612938980440388545930342507552673499888769813157368583868549566781874493437395203804502769320018715473922276227962951892012483866006754633242203906516701127406939590201039565853957556583207696487715301160907591734400601562749914434437020147079385985606884304044260051734823240466364556958926168771382570465561588517259422036221620371474340311514897626892467282222329251099527591338766948973123300043381822260291211875877268322261126958709639927535364608005951241977605820782139630931057108230614764759084029343471897580488274245100088843122472980206586401792432501825952975920078087498683385596426829182303461973636328398181768974058855073105449194741039135338805978450380519632250047781208801580391906973017515041166964897975005993304190511950652766521805473124624260304252179221466045636945139722957179738370595829023189330251426752640602586657293358573029583439341556298221229947923926250740274968270656990576455542381113933691783956948904836793806082816856637014747290950779837088626211278803158234624571705774646471225419990423991336251567567153913563168553878009449141594763315109214323443992886734305407142567888605608755745521877879422858698795905411452413452518232980832346529565815020243452668299463572187908866629048564809155132308610047372465243240649901125210646291711184570310174525144711616575147581469123473661820485417866584188897822252230784981838435295469622269510944374807261829273864458029769319141165255931440798776380247607939693881560898646986889388030436157928249737038184058141708661637913158548324158595547130445538084429600660661029449657624508865688311612341992294293898603266780252866114774170955978596120080372747536706119714000242195739911960729079487240055019740321493496597568867853890032677579075653123553517668610433842079597910278074738587059017342096660565026217390735253078556625054815096562688324437548477739201077790559709181906756463539712690630868967843530551278808037186206895642170528409297665505234317337091458130516774462311729291705668409232051442168905759902862898842393235370148674571368408888356525931072809198153517623371399289139563911022140901798248269201800132716796408162259610248228160556092319782875853417101146973908211316005715975510342067238931847734903868781648834263420542184551494579497316807532615023627009891674521743436183338679294504671487383465209559455016753405870756865512373695674536071404722645694975225931491680199590261889051444129815513868345653553400338893448984312665897490458642690940286799162391314319964033638857445839631907555550675861610469897746442606718367943730508422492619781538941758876252433189655808903296065592981080334458970230166960320289770412890942126444876152826863522861494204529998976126576914065426928703959898362230583031862832068986761708127679435812417134701225016919658093544974655380580049825373689965665610731797034006514360030113350960194478807481522617414147368701485322865216680747846073165355978334001443183853608745582589511261068627108217516630234127145119819401503145841481508906104559568396550753127310546049936368411852380522503398010445431911038047473316234133587080461128276830430076014175664890445169422379784130749390338501382553608724742737033890279260209823767320793061622352751136655826080490931637186591818125662319180235496717428463189267846398012242177896871408189510266348894724140912535149700020819198669642198912821686597100082626256233413180738551942704897034439246773581182585351987951164502697998535826114633546469519146590266850061755015470973614192470401505391066760657646723232939876249507158676636173083950646889833914745334765059190543033989373628029311657990765117482959476533990390352561314735148391067082288537263193294512771858260496021624441211709884664331689945930882335362669958923342676332691857274660996073802918943928760045740972048754003165864398820244058239070025823421361435573887604100856824530504504494444038623583044222293851051596672841107457607072195938555896745773739097428283949270371248824400297398192095412755937266977408976575089307708696613427714998703420452171240652414438962796819115760878369040886264809264752801651119836803019347376024213407023522213658341589237543002009883498251128242570923869434062684284093455194288525295566432466884139581855261557205274038383301472227499848188719530100957776581893702550641775156964711376730452552248401542367319506067432225563230244061428549230451546551407768009331766320032046620348340275451768999972401329183005928833674168376612320417647969364257550314873074149195223484609191746676323005737161906697680803242126240739081847051881526470303379498573750058270374510192916353932334262020471961814483475373237550170895660592640474335479012530255731116719277430330207557566160348428095149808749271935390075235288418569415998424656639959319647017046607514794450228067841197671789881469208902616857550396535750559386731793282095026940360779931047039815689791438868501422835064059839775874177393699603259588774417970000438817663823687844067361370406268840604277588927683279972896666081991257997872015355433737226735407182130760637909140321961561363211358420359003455177837116262360772976388698957555742450175647627539442441549365980321143241016110297904316526567843087331453559178537952870183732342545224906901558089555638888841240187931442017270704952976633042080593057846352916864955944263717000827159992839077759802900910033439657817069790074981962730744527771124361047839719133069997067295669661455354005742576988583357143250996938419993054290671639099068673843140020361736270715315434835360204686485806626338792995412803218668680289998918332367103454549019099736586913092542956779626672979187815724600962651844597862588338582563316007519053934164204263938870715616011472430192413049867940585459012042822015093314088766116516792399375186021803698574295814781506226274847053039283901212495554463030808304162688747163177395811663018285644395928119000298946274273018254776621631514029275800909284945206986608814784677989388183709442523482667396473646867368662339482343063555513132449423642042408834752770601057726944483405848477674997681205819609850811365860964585687761850517623915322260143694136919012854253363762849597908730905557128780801024412657138743546934827305894781602001233460957234179364372919643829713624918467832445376473675365625099350727420541732766985018955431626078961290659690611983666050282278636661578927253245442424308224954923422097267719613484397317104488087880645381598118787100194973843407257298840479292824391331295438373182094237758741650304197137751944521549820448248659944955931131444812953159857158926476358568466801751615183485658237027038628747605831662486955322579506693186873874800286874497351199312104111822635882819435937760307676103336989953021079967136171355804512310500632067761475062006600389063910802390636544259094376025049449668361841011806375277804249390219626916586759220505401956791133706783449938364175713691185261736290641532295198219004018237355162499885120064348595867140538080343995247213366377106223357769630565819532853551997094602885221381278427038113908947984554498662377688818087878257600349983449165606200441984123247951068873525512648370368957398627947410540194441749105064367975870529090993088856873272014800205047216929708877452193860374396588893033384861436740634176378053035900342650426160809762471066212497423785198433191582557035745088839686573209324418752151439509263852914521959788537248831861048982342978724007248966171839125047115714781944928014269749265211589900269801717845179872679211363484897831141262497249766161537951661307066391334961143689189303428644016349495748657322674340324797895056459355539976190253534807623555310183444608223177687951710596637472971955658520006713706093205360053464613866167181207016156465685003061087943976703576659439350170778236312283544758264344111390433365485968803166611989865176158411395654666172244152518043176214365176547094701661819216847471693938271919870068371008127174501936264235913168371980964360121668791455298180120300328274649508113910514233630754529487092226281411738962556030570875151912338651061422718989092793929990755888162693026710835969485880230244613753648796257503875264498182952438818058202493553876218357425800942222224500755424721287091978566231266019885766314970846410980686455969951986729277433866771123148899311544028956618894014994104895386725159110079994820206854734239514149322444960409367958446640415043135560764558358208589174116812196078699472884551192383959279680880301245088335885739435868611908923679915995860972521161570826412184747385871905279256591969596068038461934331448162405775487676814882151396045560131457225067214783940988648264912027912525765676312750470933547310120692160902536192356713788787158880383184112551340093641280262144487718301893623987712561764771074323409479633974156886521761973318853488700932029318732570765539385083673439133237664456255709056276948415408214167671196703879038416575525360567998844349709959394391873755120739045121777856809119764436233642666194416792290407767824160871442612360964077439413988812816233723649031228620336576112929237946557853467226552975884665937114533145217095650244367970066169655377619544272093467442042007375843951339888333915053741783279680299332932609739873375783067687937892556230565530376673802732583973540158824741317569336733442115812125656360222927176640541101613558042108531348935322213903741113068494707905116842651832420724870683997368743524141004805435729785211586954946589128600285807594968299877850408188698568074359526066228178779000068848904687956044950372667095906208958200300679095340665596362442063945777261943772526741015394732005033695928168387545961236523460792229321294623938680462189723689521914258912311416827890724934580043856917538052821917666961929834527964966260114018657683434494337846553407807047420732086139917738062900860904568185719102379524051988676390899450803948959922455256962642602658291880989162972594214147643188721068145594199101053622829239945983289862946214988879054900658463562881676456558477854029905339229676238064798117803022976228201118882426204651652287872422201370569342300525715924249664304455842979716474513329283728251463824205205656587097465848641783606467967600948196967614884010360213005476723533143308354640461744111668144905605238980289613634769162104186493446497394585771572736882621301922804358711580384725516696950475148383512304045265523870648374710283682496875902571762213556007002362732535611012350401475516416025512018420323386211473597270718393595858124852039839921651202274824284568706937393099862295036643512402720494299616005395126281898879768915249933320405805587740605822636866895112763463478576544848812529307523194795704820619879262652720136413086040489556673406427619690430963997108416443666069159575019096321308947639749543662121394371284475140793967200381626336893081476537442196832378077140570426755486804395036605141837012714761238268669706942021943806843168635336467632123070406284937769949732508442884046234508144870354710562293931412309603698469497016911525889879464855634190597264104818152536741304439428129493179931053258081547555440797733113115128658757429607585973344744156724292224554139849491116498432912508338642269877551791280103081606789550669617508775442026321480981062103081603755749057569107266898106789700605743331275938764799895838273003814603501647231261943309202581830899510352048500876920831709006967048753533414231782092265452931213398375639419138725103757891286093202308217431806930925729678701196396916850854287952053089972777907801001849828023431232346587665710998989857580828605183244703477894504703979977569978747943133020458549175528521168639191825250801188853668651428804704388118175710099890023579282930706383716038034540817354041176232089665823458543472480902305452420715517922695090357732120017550687160464771918818488948738430773547710656455219542402861437273414087852796398543260834525388964425811287151010945541272046357687342580488822105665985650347029814429255158118636342708253271037944736315981541049212654375722947394010616917232254223943553531367747436860777728349029538917666250502820477989206542176501636724782635412586117591866307385466027390410246519374756243542936758080184535874461323311842147149791471728456116391867520191704424198647184729127092851946394181137782398978711162632723068866151096535353026212639475415404906933468289191738922345937378808180754059789161045138013475099992965319602397884362339930845076015229230441125748672141205087030315894877412787674682011385054292600962707603630589835462640702518548071756326600682707101412883775851769013216460999471316651029243783243954977583361650530780083069575467578360604752069536459207286975756130071900300668249312052832517775492650989100188987794612882941784612315057088211376705722222016341919608390085069757278801218550652140269368003096925265761656228236480583248533039347393529015810638869613419547889410333224999547708801169695004358040984801130373865565416438587272323491271362072609513357753295427631141997773672760134653622959426278301593318206990336158209634769943284578757265209154714706040941613471489977613553689030993704906592837296491878273757141184198937134625825710780499475082573180015214032085222366868022620037126541942227104986141556838414203591716976658074279438698010193691312862568599285532965533664712663712969596610448812112411376331247679584838823011494454251463216032938790635029742587243874490882041877141252540427670106150566333072546904875550766586240068403422369341256434976162370189697862695102372712372746232331824856313561356905367403049410902518148036027471647879693966808549265631867570603397723455814767415269350214137686900339772089633239933572086499281749480986919602981321512860945053656286633120535451058568189181116388228704462944447297425508722650872544696473609348527086829511088811492829623525108554884585704053808399505183827434230736989774477148844836802081224367074871941765509891431986302161166794940781335175249174487639440167275865104690388042074940375128113980265611486394730008855597267569431128859238642237072313985647089806360765803115865143089434050741202562752247072953327051233719166077363417162070390986734047258921550107983522745468830963324291586899223387863472080028041310416805903660859355518906357779974280851882880887699684868587007309340071893047712438483395192647612947653157188816942415739355395097087929567398973257704812496563805367251360638275639655871908731760419259921801763863140077560838129370450476417089984336549957958398606144885483343885660070254148768274699018474885064092461969317664023870568290418647810118040970321000758419047317873232504905470764501525323937288082000267696551094583216506550940008548300881520717288269661727263991588349477861843556045329244351169988466378847709229063693407396606929400092789002620657017676360350968006332561016079241495022719215739553938030673162355381472875075481788386988852193200097261467661793046442148232066572501728229105636285967087316387767297661230719188742544870841803342771209743117021278494456965115697852139183477430014605817347830219218533385933403121639802922966016612246323314217124561657727289207050629415046446490841332473278804671116905091796474384272022846427904459950947142622893925884505746563917370224908738275980137023691104696165452919422275893359916333443949397121212122678632420113526667036822921904962412716282756319446534955909529625207180761593126493896680792054252796312375998347376632447743763914297757124376626776437702260586020713243910199291282444456627805130365693908841601936823891221805037055966736963222990230290814804203787826345913298266525697690724487892960987452307971545156384236602307859506430323010293419872314879511666454586610227177534937588206736824276939983181771484061308282475612232918753726364488533451141694507433778189356515035107388104557050044175074496356730503505807067407478289840144786422359364179357001417371281208890319346181196280773553875285238336204421600140413706007623796955862191817198540956912267707526401679622345155573691338611329777924345802682211878178444969913432846570078492478428276955899066314422398155619351472684170039526553635244781725430628744663163459161363270332397122217544104122207727509066297626752188770414240454741838774066375883422377089384450831901504742528931448378830625976685043894631931871614117550195716105062823996411154525587147044286529710078419237078003565581217594660315569267502649407789441568555800442014994402626727597643027592599328916097251218079835509759115790863442921316184184832626628448645122923377090640561816277417072955999349082827566843403671751023849864947421832350283127112814427463047587315035177337262684857581611080305753299606482367426115107488365922538066521755434962485258862332287854765183892477915797393834085019688782312854197742456890171019371865820362111434381660347474368077736001888566571673932500615308977050994711486657430557398791699165024475620917784833989450141186032061839127938481471373922185022720959826355104858289236440327587618272057538248084547972764563142993784055401659654094732621787182388583489684295400921124269699464218714593744141847059048836943844647511559517819625027236665269010372360769211164735611980008902567944445199273364952260321870203701751798175744025057971125570244153755704022616600908479596310000800468798082155072079684390833004807498594876657463878094077676957160420818295396677893691501922605587561674982305493958249248018662330732963802614420744727983741216394447654371620025756805099607320051026982385265089243170278960016117783513710640436398326524861601012356584772336531147613125077765650778540076474930553263750649039868419514179176246573687932633992403404866707386296479829155345171172466399304683378510051454654900113830822400737251172321386527371200238800568732650549651968234198922311847283205195224496515509994857644713819622112166138678442473468446134763846260077444419663919647363120240685577147130589359533322818667137883138707375913197786876771961182220173248295161851728524322750278072747088030053543556589582175828928929591199112048193399995171490409698862638427913581227208615454896101848220567055651662172411755058633849035485487445898727587726700008613235323509650087790652153387639161615066247181185166668489275006523849916979981053261197936839393435667470834680978084304672912670268131040905890822924788484900512778255909638671987237402261995630593207275479044305590337441019444092900053742334195123360463530738522460146510836440354695876087026823571168042615007940657283632571839648187032499724037062464712399015216584592112647255943600331638990440343124341301934348415171083323359615625798314785844235247118603641969007997866650330326969380421542168425417912090846113663247242260626622369222567751203997076027556276025563884822716201908372157475392011940318126835379302348233696879723443302247938336587410288138320738023035965110157681727884192448750441193062592052768980867006725291347885407050638847688618167732268157517776441437508258069885769778245291280078879482240317976138660852056088589049159035082703204129502334084141763529425818458714655561552923885959974345032771725657696728797152341687906280586013010448935529782194747961367572066678580695517661897187587438416687770112033331458329125827925725983331453042368988061546127859265914700095381055961876916651243064415436614537772840537534613623123203735707291820035093103724801025181069588208783430589820188209778818344138006519387147174690873550639773575103893185095416584645400705686737402548003225342367749572319311054163441333163274984972382978742770188698821082028441572157501179201056180666956794516432805048426935219129955466446706287378913269870741459226114418322659745089349687399044049714388291593918180771126566344442363581779900238667525550814559062899389694805605005502885518826457299271472266356575273645984081405812293391410642141635024627200046592767001065467740096046769219939988250014430067477029088155275635073165585288196478139278059785414503716699385940054142307847954810754197697726900334230141115576808584879976988446676363967394023784636607673273145240212484657911426904974952433299921900394266192052428686967885967145955890615426507656062146731455977024351032266567205598041123119322613199332751790489334710119281128169997735706331360395983656986238291242025319514435687798708454692737387624165855288742846790660679227548494219084123778957281852874350374338699419811855810448066900453579531783516340862671301733370375263310730144793517333544889122044448120256347434186376844463246999473651844873216224809915904207918387549801115897999929320757348398151509180559081385235808091252328548866966719903536565937994099299224532167857414824357006908494365953740148797373560989794803096000330676346435114423134101937459377554148251034933797993296579307509114092442224500471633052465039029097006922953223655257000830205757332801500372971426519178387661497559533737482153768929962178365348460035317527391206724411159716345599052710069760796739308757177311133433291671094185621045150760144081134733055508875665177154690086448495539761384567802984291449453338383300261858438361311657643675335134198223246462241017839425074064660749865754587274823725800251536699412371854504782825852140893766726601662689809126420243141702717455005284388258011071142175690616353660464907331270082391739888362851361953978242409255218045613404490952307561246994809188726938052098465454805478467275740634064135785095723720741222329909528507687594848382989120828976122518510557195150209634392494946769636229536768567470979320672180661551718925766146504351468318174702787090553803115381845111801690711638057047444090300791917222365305260320545132538908398604284872993007995379957913861486205969752276436783662166995750897182398469793813638039229797955583432346458282468526373655007883759352848732878279828831137607153297008883348382466155914552362732956825024521584538323399847015019983472895872986984306678880775008244634805624360094553683207201448670590113245281997205259809010996531134886563932357321319672521772216767633345938301250828837839595029921396671188191844921860776252633248565259112113534647806308911175152987285709589340156794405866465985684106721745599799325147433194177662138428142681746328174820495675601982059432885806500587591565276948702628077201067805065075317455388896363962326990649617645867387519696653244685555047277966316656687522778667774737041401320459458605844223331959764052835328615791714926873610864656012220087867884286761200182013973423945253954591700379781174012638152249170615679374035801819983886656987935673911720166405952089494349372281581679750750803709041232961660862617239585291672416856186769671183173970181865538528578757558571917456159125408163444554290938821459044255372827029830721031627493777688563723947843555600273640685477062079786579200381984629298715085334821458356537693870214192370633359234390054862226206366658044094160892607246491903064683679706467901525942010917572635353431458078370447112070623448774479290122083808906502067352125901092559110089714047581610474039645257658154552340691395511819082441478740036603940289548555233514396114397745699653577596837245244633304304266076279194995061923354222931305923017989627119727792037685820912838961442200433215432215718794086242314583884200466916569181286448543803393056324068316390640716409643301094892794972075962326544742023215399742490993896040872830421943145341294905119160264276799774035603589666821746991695526779942859455802601617814942716007946217252782416403071068632963387433073307040319881877142775161091869050258201897475300884695833900024103408531710505547734309054401121923468926107597560753048473311888620267421210807647685627489222266337798609027224621995489705368713246503029969052964038418390401760848544422955009889085766359107960899600551790558592790367124889197721172590810261056869622128403601187128932988820236802524529390764884332069622182140663510089573914505218076247330945731441759882202484147647505642306198333963433770340871799531421003673697031432086574771032845499054805130798146193446607248024633066480819138106280542603390664980633122128610786857867222727196975691657869992657525592618564001283990730841086200425162831874536663882819803341779397821575482762889733052038796672974947403538084844332870313486438954696789125109345516920856772787947668672076650333917371706341910137422564032974750947754243669620094445042831580323757460214968000410309105798918698734696016743110665080015925665251158174604831907460988069830962868476859816274814053185289922552482473486379211137433001395354612941301957876967775487307276794872747366740721892058212561107715560235135029420481092758309244026006987890637122737593799461081744786763440090131133751347075030166790181255028296750215591526469751150908596477811103533749351445450796619421025016474627176998675934255588770291241980519717299622242145922918351124659001274825006942462574877454737169823118498446367073480032015906128514215801479758784925736267224442046670459099216813208598112268869316628706249749643476249859538772024187429444140262360484326602960517832993721150184957969787812989704969158250008527787032488364075547937385080134330368632877167549280915813525944138686569026476061073472400368143747606376652686607564362692278289315346710897827385044165915737634025880101756808756963109123626586571221779540520511344060440587000910115090469227487477095394029653187735837796009917449216031981898813902631150479708815069127662250031771703268352297421398130102788623826156063414398064203223533521994871365786943435146663283305527850902880606076531983409928896425596706612817577863747164066925505607307803663710204030584467117618293197258256812889596417486741920461317440629563548542167178336204999533419654355284211936732704385075676080898648472533319631537076401726904871249343776284943184909370586242654717530362968434218253653172662170374287921806600122583243636800195148016932562298111974578482933668607776474941597547124782473707700707172355082192470136681623813869278933347559576857551622760713050481041814019911173513052505449968970143553504554931919443194845808872480364498114864767964676026303701544629999499877130563507206330561227543029740966068282634753969060171251145397935046143003961226035730327133575304554895789009870047180998659141860280225728855033420903722810325828481144030330779399002527529192660595292809885274690175043758437942894379719246772135765477146011404228981517662050192237436277811372045052782067714588580953425147341370303150700244412428227233606727920782115651136892946240372080619471818387671699925943167460620944586870258013479899796825039896297269349418609659081442409530197038987728700757239823087033547769256397444120858230014420250369577059221147143374652922241517599180502875080688343794792604408089789127857764700444068171203665720459575703479875325775058601731853978670369017705485194193902615077126529356753956252460067364847441365031979093377994497321321272956019088216684536442333867440301446506022223921134077445556753331395849970702565771624401801423463391969426444180645738404812255602332141616596994137008882038170195921558564129648923724958702543992116744157508749374686902363906486363746886667832731728590283458572538273542264402504101412590572153871865743040483664544676478223595009281240415860318784105597920112851215719741117837972229143466327985328407569343965809587745826005563690774023029893507603631293620086142303014882102220164893229076806704251582099579397623945454451045277612391947696871802757318144254453159754071318986848679734277836588314463949793585301087309488984091802585090048809069462857935323940467571659654460872566362423090954966344299347559212289670720664661117552546600858158657595315229319238785443543626842011689899652280688608480608778052449800195307985047683588280498374491453583415835037310631801822306495968340233755385267393783449338077483304275218848479025257500875395334277780050594274425196959402292236955337551820118245140021839005020916013533071311495599126562803433994087721961212041966193637430180960482449674025021485687222130569529126432061233169458267286969524121798951016333915348087800708841308453486982033905059821925382500439078950802311550017652448917811533040926246289367825871429774539209628721225514188313249130958483743023974368120742973160999550159726811788420083490938797976623969912744283443441730425844217867942090122751757644076642241948900840662206624632563687205904933596522295222051581050743042380869730141806598731274384621567893419583306934008889484216414621347643039334503390160050107812947278830638531027498412461172924661448261709362278603230948694757384660316523730942396982817095862007945834866283219153212379486784566722826339856502907268676677272330539220831834274233594071163901622152952781546856237532847431285314320722014362956966852284901817883841232948079720132056929198688546996015889293825681539083381296146407167871521660985398021823047590752105140566719866811120410888128313684214418825079955785830786786959166777393272424223433014100648584755956437637112008640947428625361342391239330391926407615266072165784406527593564484394526260528389356689816230123099790795283299638488918148955825468884821882376247347119235235157376059061372879979625912607979613547590203054626674016244559921605165294007549953588564411375694458019235447316804052952546526648372649050711357444229304461907481933252335538241321233057785133685578299199951786068109525969202366832360238103544767843571652139151519277415323602061092122236384851590714936860923864399233999234941021241244041042017454099999363521841859730312709292425446982328631274888666294900433995708917478139221588075187521031795493055640778517994368828222810284919722350862165145369791835558909567931707710813777572648706935222610180546740595011177303449123045450505139805364178696892576537960563653447674960043143556192905305820480716640459752079889720221448983013515967489852937916855147545341591764102814505225147614448705308340803923947264701432953423902080108144285414540963434217418308634327226965251614415649680138006316415766159792338604992120185907154436228579227576376676255264370964720564198390011846845113530253229658142604878042034958117712026665307485779785731828676490181049465759936574212732354105005225796089214577748774972651525018163681745877782922231351279119920132936422657916825687697240600843175813238294439902108704858776604281691282170813677195499238356003389865102816213236379988329660187132390268847069697297292526574653261802479963496428899678642339991614139710387281254726326989935027704939003546108533699319635399661101979001046712421553054506670571216001229337725198453642685715273774936548085883768543061544950062657157655475326310392261353132895709279068732295975237770765211371406690516256328478523477939772387888583089081494858126935462981761255527730205276782616248719238040541156535158571798776787753425565685939164778216165020473720216495640006744171827393319048547855157439487557565847073220766041051558665709461913337816018861417503443540965465026097971634144888056093024971136482525295199727940504527155942604601736095450975587378998721859518025700370048632504173922290451001232624039311072587828898559242041039152671398324232929827062899271016621809855243103394773991129628478317053621756462297894112918642625745872843210151344247495182484868534635816642545528701498603979278536843770510837893378675797159845970284881502176354349003652116593577884749901587820861145295887352432503094081333820196289115033357745135777142839576318025308737551668453497370355466807472329248052390116084492586011290067659329744527104022391214585005144285161709334928952921699699459784790688643818614531560589979157567123286289224655737539379923148488282958306356194851379937740279983290055180343600840038317832779657861956825732533103237738772518860791226201661452050951819765039788510114200149128431200965312607098054432871039210582025960671501551793738415174588345134361925587712102548951250368799205347489790198622671053241035742419751310616144383265134594331968210113925779085594471494621286665172904432680637514617196394837075402432838752708552717141775333064461797820026088660248846282228553083079143436477197349667562324752030222027930726219530450899725820309200328000646307467771818457820228380268941267860081145058288045585027258686007653547072230560127748826694035223688149471701851233116124228755250753397096750243621044480534495815571866711465933271920087228240633017208913798736785319470714588499112041921826755756462626978873600285026724933554561260244777926942627124863012393891255996745501827881221722385795676319919893513473633248516255498493064842279931225062967924088677305545140334740126835792165294479498393990788838570176086319522754860379103574934518815629113166020222710081236108658619182059656299653136208253789818084117769658391842722905081024707841550405230290639135579813795127379436767402386016340758053614823405269627196474591260679049158609550109031931556256631283289996702572223508203368188511250693090483840229654843759601765262622364929501941112393640347305351738959446366760351664448706211212516152185740881418136157950440599748624714420390678665632851649468770462045463108731831191424678896187965072144989862000523196816851238491336283697939502770321048391452476668989911904412703621914596695272809117214190403683152659736219100846049492500931741058849015587061670701327970524514505173082887186296977621843834509186019262473182840622587264159834837394829761174179269559578393529559113516117346089627999538040737025607595126404092321791281815406328366175244811271421673951715092288046595762536054893482059983781927850923218526937982347186327526376108118867153974794040543195251947887693040947122286996963777021018219183911974629474895045564813438394300418004242258387507387195767155618331201444876201239395011467251253735088291101354152230350392103369592607514799362900712510437489246408099938925472526439237681466937395009637281537186925243893158325328201554462343432241118082475898397451393145994342424994524064814358897893388094328123244837678603742479720442756272479505797030339816661699886146456248554652427542503766746378310667600504503280224537289295757948627762075523390286963537471632291680244272520233137005279171139234019756634667775696719806389427508442555348379552306298953667976803094886150697542801303879030886234967842456909804495828550243338167326630716778975403627579066525672281425911322204964857345171179530673697850328864574024786076916196248688684390411197383249284377418280038321562714373199944899943677583595208265795453756822406034931770861574356002864269882060123318793823009854558686889960952147078010320418793722438171717427201660679096109920575969778270191388243177182398300280707339059771884224883693219384111766466219224533047303732533827915459306019964259589470598210409068223719693586944162054367729750521782721312312519529820419554242448207976579420153188293734809369273962765553398786737436573215658279815958570043814422938895534480654474595615401698304617678812264130378725990724956611444480769046474671719397831973365399375512691350787854339335821492553250013634031500881500115601782124007355164087146718393593642791829968745016111191006767702293671962434545675254952775931391635472940929389193900711522430092734179314390424486806583111665955249085384271068365551807063982621567078467098766090005879100200267770343507686117756196978118004552389629393094407153750987437723297091066593322939427270977147476403314776653757798303503783181817434283558782358908029582762141621488849455858039148368323358091885919444787658569458750621233806468012324526880507205162027724990960524545228870401338718891325178302008398090263336461769046952388494359185992633519893882716477384734732412051802356769299947288686361412124716024108376344608544791872281599225387848746315166557979704522396884934482646010287376648804807307177487467287677004768345549491897735797553278434198502730607957108706133015278324281777097832412069491498998096683246728441972232379500151960410987304613949937723425374557909154763571611440285399774429003846095280696659813092274879112121398120013361848668935094210890200124792972695264338613853399337246158855497385829431176403208361200210349120051593124190522744055070092647387176468585176260963280733155493538280411294531305253050013541160653136463751288230192741177486711502801841547272095119583055943905802509587348325000465366705630966555486780925524647437571247263676142233128131191551631436902237698927130574851566903148936256638902312647411217524700841237860127864934240800569729081252595515156521165044647808892606456554850337000577262430268735349632510716796881285111730978485066973853942541808577765181126363478655543729338268892776999202347720063369983009438028881295108641772537892149372075600325224229981718307718085146423002822189650456140188374036110123859758978621145007045700481222510131511431866193297838964366030371460748933867790929596272801593797571449880043555628134450828931767609926926953214980311754998911917269824148478826105102307657483397929237575003899015703045721291746556020572558343531711632673675064397750563298583251038871530417820296810208220853055929402282403304055244880872273705827907557790029936770334470831860048653325400967652837758039318585124569004954061868048196920991060352953081944119066013321717082049887150181257635799962560382691188413520651632638930664434447854942244755640288375260479199373186700118668319688132809264364371497865523657099624162529536077923231708322496833394824499798539590338335662349806042250928590022491149286586033878103036657295608118438305518339203065412440163542958015607229534293028368948221896862150581866513672851640475128133617680055680710545878511134489245041173133122034267567101637217594716282809306104281957108959909146999125032607900764927464969838000552085690835570465430776021717662085875957052681563921032192880685759445738521581557368370437280009989419070999075780951817093953758255054782863148134582524107741515556969608151847701784900464511363603209710575111308528150965189297735303362430206288272562211387153337907648999609590456016111318861581790825306758975099860180729718868659235704335822352146239674030834143268292023775627851771781117720125417062806706035001565597421110248524354312093541559494293612479577425930116694521018608458902228538043400715403179114952263724799406672319542164531323715150834915869401718147292185141551429184346800209344243940492660739070838765806243996053045763796592536908358364465209346533195943745819518801780860181044854606799459386471071887194798229427588236797492034832988721551381743564614808544863713880414072456165076673626137763802806357540498543722348619400626761220032510417967560277348299290980784585075388038913069793824549969681859538242198716707541909620656278195624497437434172147206911096885433372723340583730418122381279460963465261908367542608120849468962912138430853509698579113240704678249373982738807346924730436705619803688789900011993014031542898848510511088381624073062375446167904800034780168200980165154054523266200482247640273928493983887857763039897836642502286009405033233081339830494743750996107639222243655819345024121196723519375253607694200639584509897496440891529725713385262004483223766443687343683601169849515166453681644179902865225723135252086997711506665585515361829696566358128349571446676781504144073935056371619946997479759496245253211843103275104592915093951187897702912259277205953878455530707253857252039666672341299555231634612807860081485454870069424971996679842379637913207156492031379624378730898746895117600640699704575047810721282738817444011647906091259987521016308982205169480078789865049350451072986948820194603618230634836493520202916734974256043299408969910780780121035953003079158865137734161978113317352655119189586270742603835168487116138307502550487173744217470775084120483989581752727805805279881230770239969664186807978712208094277194778185714389816833976055693381036344114787990386369414270916582905573581677398132323364523648765415353515543376254657281352079408327258773622173132420991475926571213767809210221376147208297136127671408914788171134964532944871348120404867852806427033721278610825749782980339249983632872685541173636938582776183392225502546443083127835713076699121061968835252556692358950391683223826214293363184837332289408480300154864298283471672197648505835975491021534622327344150759308130481840246733041400770055932269771101530921390245205934399002299660838414829110020612078018488704370797459435118919930787767264110867700621238247448238438111343914333768281840042403793064449842955505100997124698659125283350234759615741225738066364070200687805336873046555329745030701598930576091427392643379934159490530114772667475905913620836816004170503198067008451534387920729953168631179988739033917115737986822562691572357813137075580118652045829506696076754043537869475936512033633319310864429035132438903745103346152968660821866943961056869373953864237144920970492220432016799819343537448479749990362653983158699255233421702964856211904020953998972828127242754679587177116869009934073402828942541462495360672778150372897713995367913741210976692882421181271978439536196686686826726049339521178066686319305263108882007777590439484013309045955362738011209712701661373112620731766257445963433593643683929308231633151828344492380892831006546211901830986319712100513598359265024559712135405230970468501563246073327055279897074458593756156445606317330170854259275850612516860287895247710273735461322877048267229029731440170454878065930795349062108741034710764912815370053596231497914860837060186917148547826035996563332920854145999545243623497977288460345565962596943914911369022147487814316607777292342541347712925157431755489932360603586458784801019221811338966503222706477335611915096342652941926243662163051768998420737818585188575794416015412891137058181778337024351894511645002359477387519256805822649075861051406016953513719846047297106961330516916327232675438283658586243978908715128429987651126241090681715560968840638992196726824054612461347862157093014172932602294585332327579794226181156027961947003341775306320789220063172896355889145116871355855453658124525569725492281757255289561634921540106263987991979280289882250468974625646322206309095563590963394579883109049148109287157621383898797539366746920958371007954400670178593872869043042073500035202736334313163409064917173999912932596316938932268044179685465669193679536796421481207364451741347971406601842929516691856509168940273494930608149658409662031947088712147454356470544627419887074572378470429576619884836802889746955669627635059979431855257224959748932973875409595298031208239004210702605490781365329505717847012967246227019676836949939685422347807697551511108712351051341500018569356190779168600198355988665860990830434721367007340645010620298219107024707577050689615558204446830446740125453065409439551286131170620196456199167837835356808686436084135936840358209923221013325849239892764946636640235560276781580146354907627977551568149920214337379036406503753856482157522442185304100868911008559289397274316383658081355838332444650985265675732862024587209147244584862054518682849262832570588026976993208519504943115201219289953337609021874094385655404557194511208741593988137167694976768641960188272585222855620722865915891391931550565174944315027208837492440890576877487836165782058130335986725109323407880235521642690602711293759474940518905493786831999267025377922971396504826654548487232987473115278331054829788363191397850657775151010352924081737583617511884897381750717093469606628196548723615417707322678063364624822420150911310476443997873730804606342481955249687809904866993702843931848850892733324752592017827778735828948137785179013089930615630936099370439679971080681859498066464131586793374182237671033331469599636366885044741722672470528262389641863592025446792441218949732270940864179146326797140064532080140528682768349923310880727681708493578326049937514168221883605090066664984644121386758183384444390934956073958513312451642987176320891995931282372666590799460915868875089795776183193622620266739675626961470158314128683368520117952560218814678180939772433875135639637911443727999595713793026042877686760497290807059447277752051555915818879520092380900363796604247019344797616003018489907949422746203118537657237333748802599183403134819920973550565578537862886749984450090497106468804470320334138360034289791073577171404880796109630028896575618703526012837256636034179158355328574075137592557201488005822987772484186659479856396097836930424453639526366409523983124551014094517530616120483931557172147953262968646682036116337926505291150512493699881224953718892197085404583226341596966048946663723526541397721693140032068028611639442248534809273397365829935902282651636215441004634379071070765315600784928878043288056734290603947074377552791076143919770415566044978412936456099901705911555796619667129938121561700456382794720531471172600333563279733969389967235562827013864733769867711198585442958867537376845247545070142104592941756287360912805433322900963722498944979213736459126571727544021858973885182661303446712449866328814646117348378346953355324934853692668130751223795590171678503658356480857001791517775819283374286945240580248415287332232625867186830658173540251578578786854889416602679416539011538334994433096772323661986382152664385517785063808365180651642965671952731387263599709620792128638273266499988511884906067817462639757875646120547567785687220709617291093606539146174139009777215680593167664152352201507288266744061990980506790241208194067464318547038867123987023293424424945247916525717236422457823257194383735501141379821965745867421724038245437859752887921814149059047610497920757995271843931553804616841018632079053856143306807383915931583265479689549851450619858550440719875828102747687631754838350675861393341051599027095786346948884738499269994262667804519913877100231724833554283925645757246481473113371911474666626178691775568357214595881075569342922352638162490499786639583630742999845074602021712136808031371275985488561887071342429017693996397684873426497425836351959619475728466618770673916988855135920328347148958988320936203740599709320815277271179536781130753360530871669439547148677050657515391151441623077444101529868413528825603386583271178530963787426256166001118866103127904880965607669576695427799585288932379967299707727216398877985521264678934127797257818432874482090304756424220058632766933549212709062525999007723685283161914147515565974667782623821497566367456751138675076127502510504192382897010911250295823276132689348959569413590879400237570602635082970823694114838872061029534910574745799470879730576742304642891706290968802686773302241513526331151009833389438948905277478819797875759751895133575120418309978242790291918626912183767356371103599560675112670790699313263263906402089080222467785965283601618831743251101431443748627801637123299921862523878751167805284211432974262263522235288125797591485900477382869849664624473455497162175658045642374937904079170273416809954013045905273676338730769147197747442615100340189789764284177769378637263807760406262962113256956536023245091969669554118859161304846227310778185367343514704585490357363188336924474291402932395475074908303614966978953009608013997369130230183830181890896530077757608195616143379413748678008700179637701096507804270134112397537099256254703558097194565416163238898293657636158148565469605682363410863536776046784197111626062799802138425647867835558270054791241309161829400546820933124612161783490732095533533132720920136522739248425297354467295844830749810032872052191592501900937476405280628468584459301845526812845234830145929065440338063625884492001653677778682131691320422001419285511553670738727816661393185688578947646684068475790627446308213098108693411407275299502635656312080641985883034496586417031696846893026266059479112258749053453447482997294444404226545944471454686753161186250625712880752012300358962157311268193025632477741741285459212697770383933153486644108613874438278606050253019064202233221633007323202712074373552932035154253239608774208807940248932456513811779027739823139473746410344459128045779059807744426795205129410190814551921223896563927750139213676585561942410435484276890147746870955461541180352593888594580686081712258936075535427355563350554725125021899882860134177653035595537070950681618157319562214029550321338655637431682132650958075728575114578728808051785666412966642921406005046902537344690439553409826152675803640977114793956251673171993271291150110013138937494993487092888241489344433618417330963102800281658948200705377247674865017083379206817452280773008360279262301036367064744282373949547238304103090439262546663622750785007609751081339304879422490776579978455601945376211083565985942461070993067664042396088415428531454412850436142550403181766957954544158972300392443784788736505013539913116821769971116369846984071100595518971209563844617915347391188643492158400594614628913407941679259930866090423333133570191696623137583391119092321996934912671120692597439768368986287317028592504849076325542619334478934387068622461579702599459576085527656342792434667455989163590540991721150185261477264375750339309829107365373789723771068625132589500896825024867082900910517557303108879161014023019607873705151384408232347280457926290023964680738468919671556006535595486379582405942411232531339226170156096288569666969624387597909822450572474862142993836860573863163121321053363398632187672469136725251344940137818252919990611835188331543553253708019632744993395366300826186422036866011236156676176567565604894664737770047070160444660840628462980634373882233329839011829291741718474084181067457988685722439933577026888771454223876766432402215971130574042821678489819699648597030447209938686537297901869931721601857699760658479110430104284267943631350972990508564469992719545179590663226447953290014195993159816510775380654439346461095794724701015843308831326668588299462418595128856602231440221771434642202499378594942822815171254235978717848113770509234130871870431259443676808289421935672243785529234814450436158290813604248577347381172638609023525364285891034908180751408112770674584468226846740115577273901044954147768703749085451923544825528745258657530453127216822925114034516700440862945590727800117777588707439241798912427737870865547401932079405593267094180648005916912326758589591530041037167484347368280956998982755778388107488481360073011388245552017578517230355729871531390569242231992945446619170047933383097525097080518703243923963135175448891675448239359425724478699798206233795827962355216848043936073623171834953415733278682052620377728555143168325870003348660499112835083783856043718720469238970279275511655541604540774796569493051089301461179089980992226589331180972562012087872333855016771776263003802282740631347213703404913425794146772039488928419856255547884290114998482484177902580098250073611138633144345673828982898098642867225429737022323318191911204963806331683156206832473003671049893878561013292277655102894441858777577430899154434075282678742674051439214479954612634646016166119515251426816716966200928428130548437244960458044349495799378254684658971567274030073228006728605338322982490608297740914476512276513982973619304163125723307404518421367978343434204716029279343800748895808917627803509810981623146769586112130273555565715989061980856825427118629905730188159194068523469675287707909789448929743718539649058752505385368925496397371206864162959968235758246743891063635586690745239984433754927773734253002634780033014382815386624352243429243005310082945811303477907968027444519501230111383108567694726469752141864580751590624547254723744254630950251281039772583176817883433207811823699968839608733051298671747859406900801658852046042233486577587036430991428973169630227520398566579264918070179485060181564596821703112229937201319543273722531087519333123318950713163105165440435429287199597217492545651090705604972335869245067714448955484108387791651712384658238634239292910514533935595589677684474098109576345782347137443604906949966592218324223863832215170574444290651807124212247834121487602522544623740905947345507833891918542924268270317992279642315073836037206292917244572311271235848823790412178110282308534710166019461670601170638596132315447476763656740947126038982648242197248661409599214466346233524012484887888317439816382217848044169483099992920994706356143825209019167288785440104688389161294933131122360638845761046215413169342497089276556940214857624945610394585530232761693195857752365429154915046142156170718228475727292312236295664168052040296102652931486542540588267827131643541649355032019265557590854332250433925288249655383081519942242515070973683898801594217159947086732093577625593252697659413532459565347401131524000725536924958741805844537192319592838626798533707011045084719669806069703182507703962879795927362672670092624280596538545572662187456343649604407171444738921151093749852903334412753704029292748471162507113336516786324787750666394754443526784943539208429213349620430491574499680328620236998316232430613641538524140227797763016266204846581712621577441102149051978231416115946855906194262795639323717391751463103536699295199558234352946612128928020335466616469453479553176595477812703968957286735436115206645186562455371830279282746672555298426521021531050625680343592805297319131688619694391670855823954581813876706402319579198606397469065489193893250706299834288450733693540429718673390262230388248234136400670200798261898719116859432327436792108878424703036418870334877065977446345728216943855194477264173373792394680798211425067958458809874455135184968872490393053913422303165982352945278888817001807515665866832488803554139401287951021231029930289184010483840197787555741793865522177537088094079943853447241525992950725946605046684128523441024776727747378773154137059134491319442525134309290410119423861563207833012747986867017049640747013465861409074647535552770249948333576759928353508288781107550820777932460996869968661237078653371606254843522050113139220128642835375484537664568699262463795139873407974710460796432627038596873072543379763371250580277769864794384818459598686141300989385958644366643828404483062883356911422457725913656971268981815341031639840748863601644497878982509056220116085727099450649464180234800290444327821160622095339424237553379892414287531626868825317894543656256924717928725907027703180788160908523542528214622628677073055351823152105902175377142933260572119509355091387487134843594615759543315591397785352067875821839910302575792739306653622612336623619287760970909636276365143030461597413335978202448818805781866014494799846722783967652617689011057877069285570698687827245463240526177217367693533515266702939322385570531607553563016316984024490203330256740391517099667239996200365175521492705393881496309928437348214818209190883097966091648119793294656547218272478574464055604679275298169114593690493139632402627719623786894546352205757868478207503244382694712130603818380685984299355170980365887846516039993149763586498705820693507928336125417001565999207234145852916577436871648029430693859598640118149659164508496664141803136130059445950423432732636372748580484508375768257366475068991271827891323367080032816460264712539216282789483361095650798667675100945486214531968572120053159274686259372058876644513676402674710944030664121066027965008874135237307590924170591205915624122148775352685521752504053824823634348018156947450155012658056911693264820192037912037817009548019309806404393404457501199893237596316168350490344477122390785354532207955759651938930020316163988544487299967878093348072113484783564565196194704912849094580971907497989904525984343740383687765699435612994520763583367880457293751720644101556251692392160222124438694927473494809264309512500894325530599043467138680018140352828670663166629514910960327637134269377730681850429531416656359026610774063567606570345330193867050021385272707797219580574138080284378778224458082796413656663546534008747007856196645188300111902386975924797022156529416331851839551600176393772056092859169384482785690932398276038693984386896551856679821433150155153956141920238710416969102096185753898536275618844992981320859759436001116481754216295336827213816895869474592548002465345485450395934228206515150741111637682993709161570846854687292064034665428573900978400090559957108701876843590993785977892908628570025002007993440039931447390027841121999446643644518056572294764756178333972604930427493039811654750139818229601965700554903039584810587641239661125451664927752460425047884528434995112325778266009699975085843421112799101868855192225373165045095687687501183119829786662774004586085794111663571508686676414048145085208945448350652893442320002321640324131585266977560628952611318277925483467263425291514740588787791485337233525390048283991412281843950581784818837518261775891372579719871971023685260729436608566813405669711855518953787807184010995396050833624586646842118328085970335172804992332157487244605745226150639883446958274543742323392848037543071659903780880044273283245304752426695947328955244621264602962740177558123273217239725097553707024903648625949964850072373078037768081343268869766878119004679715784450714526284636472430770252763024454141770457494558199268840333574437458779353430445735577657588228813296867217253996982048597443925326526603009934449650599213866274551350537063064241777793074100954092329374388015832118652587772924301742333252148874326786287114447441622212750622671034996397535149440539184965033235007206803086660500904619839792484012014260479645932920536255312854313977259719321855828053361593126029390966562483313031529582527148888939825213297026552051602238386967967198082884408486075997732806318864928531422199159351850012533133327192906207097737114833201708275946548646757915243230716760061724356799843118120708195494546408787745890716758435179093851973987352552179253160416543366023550974514533974073761715629376521883864595267881920103267184957651940843504594862468305570877430170885570060169187754604220570810504437564275109821286504437515925801232137434865894539042342924824275225682603770322656054590793368042183529150367780006553557597104268999903583544777856426856539213463147070534106664008140671853372739294116875276239259904425712739363172117210100847347250299830491924890353026734376758350938124996388608422801116686118876125370957723229394025527254633289129230199174709465307422859603383918591508714358796863892154661382926831783128779743983263471731836571362507398400773830246806104987074077268644174223808731722051110982418441744253840247447202842407008861215110523743808996226063817454028181109701596088204412194296849536678147122403445319907295568969258285391405380844293508932934204479367630366081268288255072309267433771106039916431758219557189148005444078457433556911485594477777106929714501696685799937294411928830619835862380392160975090863111482165211631000763291180606879028996006154608854020149435662789093820548562808233588903254903532283156725025823592552030827993063468091536437283446169873547327841908352552722520549429480547524172095288530678449878210386624121062414898630990616368597835045087210841190557767119147982874060465976960014360403809803345295692685038577095321437703041952240652245412593269684773342853786808284844262870526085620457263459081278034652881315478033195553072019056250955059249987515996580084883002153162763367626184637863011305347621324247373544716457745128199442302046081269060039251269171639418570672416836063733829283609179896209303143715873516086318659708014957907717473091581042809089806445321153085874586049819449951863133548204551662379002618865586789567073889013296522519276253836355659737134089565885336419283969968781671595916110390197446259954915571176281330460035193001363506937789267939470178289655169552055896110743719139447318616359190287491165846940494327987026387571108169792635152983213809082113518472836300989170514821923799931679011378316659389223903220340090580186207404418622889381206929840107231442988594606947521424284529849723153906058366835351235907107618339611568272129537675116926919674153276515572432926705998863351518437404619942726595515773245292043810900441026441802264150612573425884395506517224136781934338599180532609007761730720521711489872316876832580394086136757742207788490800747970053203756101244096504514626715522306280501904330813368098402336507725974682802831134086074572144227180950424449938157111306362965408642004567689957740486904296682319887089464660524920860214313962297228026122887143373740582731756395159414885825117668539917764388116112277915503560923282338507108608386013333680169141694255772430979218446446303588023582973762326078126201179200862287155639273984322190380347842479749208383811739759752872199963702402558046608288186373096397201968479439736262073397682653517526706973989502542400717448972663593687349664103246846711027930662133873859304054800313744879353581856058355161401014262601693041349165711195684401426767181727709790978783491666151307167254219443725626575481709897591276594297859872782407734218229651976768415776132816966031591707694400733961121587361927808099044828976187903509290156463306277200893362152316999494151058535355207987567155160415317270094369828259255321939411121732569258678177188947806964672519326816967405833217147728736958127438192890197917897790626906192473616732026836325346704203456684835518135745444036533129708963548995470503240040799691921832209889058037607368738349240119443969002718228225567378580974489061622934555919856760319698330467389146173796926978173395271110329891078711170445704635685367360601140259096062322720421022658176192858449955815155217864170318366502835367687119381431331355677662744652781810470002799987807916070211329148590998675617114417470957275326678766101245479074861440464128237595170511365365504766904422229759854159387944470798219664359800779472750581117562465145239123547334035732440202232266383588201730151286755823647198746384085390600872087139030710368727448001483182601398465501789728835492465071761182904769938091500168802033095550872529592458609606790312308387140432505674372607209402017987550018263792179407503293244610272536521291235273230493316641884637051994883212994401825026824793315231802983187024218402555798575285208038118405607589368710525791646468010027740634552585428269911096771201577196691354858153911239622434021726481616758524720815561807419685861004723859386467380476654196954429119388718541170684835524161090880328657570223028722036767596772131823261050218445008048454449768731209873128563650947121627854944484440496534074193414467136275830999255473594553098643374743244071601100151913186202174767719353633573491099864617488386676460006556816385488021944753447175290150255693423960755857357498171010113607426912345259769668168006191134908061761067151271718971152993828772953263023708776564567889079229364462263219130574435410054891940996325336939902062423965716198746948464961857644389980694840538131445796189961674348869745361680737135357915914672433438956007625639989745067303205159255798797119247684514893403767048743274605673642256934202829941689419007284663305714972404926960775361585923889616175992631383697018314552934190470170366221200012880593331556572904810187290949466462638354174607709509475534783358422969807690797756058924978615419207106493641473839948494803648510955308699589979766877349462567014572286805741748852749707793868923704343199400864853672233312468275514910546189914946399479548512503784759443743804914898348655025897168788529409052134412309452628769539603370667863451687494301879979426550640468723111278840229407068880814524563984338398622409309555041741165020595023387388319209681757642281730524114635112636279407532171457187160517619978644766787961059861007791561173755682311840472882856636915928324764527930484255664195649469535887052132647674756692635298083459850372687907187396102997965746087327617448559958707726951225884135177495447722639493773256783194846384530775155248978174556978523018338712546029891769104749094120676167806434010586923725435950282167328012420490638148833654208296963801868983720512467779320897274367716961632604268110865926235357678480204084728698180485477038321288339838243137513400644812285266633687037650059080327003487892033601256116858648934378774185527488210920803318183587939862035220069522036434125146416371236294589708487120149264376353210646360444507187714796764766588449143390978878065363453959118219918345981049189920089642986126144029392473943585945679599884673809737554642124880287067301095387971070714521762356580195639403090899136869410708319190470630155010411454033887026853997509013058807831526654022711905085828112035841279531203692867499971443607657815740628856146653533136278536517344973480130958376352941711548916557244502052696579028549563990246083901304749342186116542454051403952707553278661679393461117874709300723826513358478512538181388813349946157322255862920307463516159116212610467817166042127255404015624069878670574886238052801704680255753671122833266865447372121417550056178680095897007820837005722576738523476296358258131896855095213681025886945740721237557828615239675769319796753143179824567500368075221489830162167880838173576062454729953674357090171835267622290287743264583171769022988680790518185755437522261562620012764825727314103946093030664348894010388625070594070167065825100307142618122823537695848960336181602680836545350626832728337896538271790872850901668023870322479210605378342780972209946851080480171148565500168233504466075126126735556870747232881637050465948897278894048324388162735928782716491302441299511772859966411245850418982224031462890080449586632470448209472438213254844078731481282716629173569287479512580564373295121301773462249989874793910351054841104013301725059642755663331380254624295894274735033075779284520324676646663536705603955561104697800592110591724197022629972037632285450446280829329575059955332117282649804116934299450888745310712906258278965314244997483726834294624277640908285228979418070540963314328237440697093953489053799819037873863315369622163470690837978598953451939604990739045358493788598891514217489933529296421984628750438638104816209650559556566131394789640773586732497050172337961040939809699828322080784968269027791192233402515369780710649568603429783687347512652269185213170516486151433903748229454457737907522649215986371575942162439173180142730889860631340870432080952570999686635283865931594007685167626598728824106703069008130522022085226017109019080151009381979829579906133994259763060867083755868837905209095999780046899512139910289293484111671002279999129222956461458241088472239118000170847713799589018389331660302896806088949458236791808849322837154180020689549650748583726783499733298729612059369097212119289718974505616840173959972198444480301528083967420095739710996858626488625315710471745406241164319254438428981841156360159740279779096365820461864469789163080454803954322186930699274895509068122662235379971734288891010475493150882004675055695580335378660221074640275938147614289821761652684663992451418357210682065210202790032793158851477326205966411990823212559298431033910621246042520257616584288714183890073090816657673930493495756104976347987847467257083527753521005341388393320692828726351999685775267245831509587671345910014147760504155457746595598847029891532325969986019993033567973072438888920513440635932596407548296856843029097824638268345005616674689047606533063381853562722617375813534732134217828723240341376717451136104293889163402140509522722323620895672765689865925731520748673937082596046312215329445028004889861271424910275431456191935731414563600262291554691452931067211353847612389838085595094753759634373532518711893159817460448253190452567283956207002058781262182751269435126044912454467407458025940705681692800546730185315787990596543593676139919245655763190031670265974274179994296991422600022713340367709076096117920722666481087568778631272320332755101644231218841630765007966268960852433580545160268224808430570783057806252898441226743828908835481517854971573376405223843481042175377705950699109519073602039714842948617006023918745621304168482442251885825062567625785129383359582823605452461674203656827311931792020269317378912790387765788214616207549995391614966645271116574451582755735859495479156650342569979918996544316869903281868892962121689732480177050571149936145152806868886111987017756938660267761037648184882617062825067558421845018291172358412796220762801642646311209777687734593698865580802884764594835862272427630181137309890768721767385446613203959832956677189099558408491167313483253436897986612798617503668133142744293514616700221354346165557778481431490578413414931238849672734273138242153863531125064191041256975290262980695313988448093394698940371846467948108366161956275508299611022780682265025521005067531567932640343663995799257818739444471489944410275487806108231527858934456874842833919651994895492725240591284425374345891665972731968603876323996874008678703965057535484010185018537433306871523401318882158730408344841486173188632294096630786928142181281315931882911274056840818740588728127943344213963851483577447086271123682801058167840160637467547619993122396260663894713510231137640469312697906306897807264412603066506004897274405380066566757176958496329987878021589657496814945581412521754595307706175474330221420611492073041905237575091197969133761484461403419359322341387663891782605529684078992943988324128785923325116256055251712186630412550695173253134986535384956815589508501725155085374716809901480615861351811576972638347324029879399677523448394220078291140210595434232689866961951380319820665398222473827124603601265389575143473500258573379704200519956659323997129129821181623308788953077561617335493049961117547999108690724906200904441377180817529300266570935149558307655172155763604917889123199709374233995071693588307532621563108753897061769045653603138503843763086091464926134886090109287590415829128277346733192610936449063190203906295216481567977471110668648329128108154252142110225742752485658575728329694274083953981446316466546141239149526409632994535144645885900919703460870304508446366355025957608721985302211539339296489130033449169176028746809964078358553640303631340177524531975333141970360206448837722584510057085921478708195786668324589489682814119617399691191814294426100423659549914611904067430771983757317217113810662645144634830122152582820833270624975329074260390297244084993068684244677533914336428455337698172749352046142833879933487765429365248449763579283918299807085734117316207388349281078771975813619241134121094903559133058499527042045918810412024023121394810734722732291427447722376482866821091198710921754091524443825504305721304636217782756347163161515383344864741807217565363822906792208467899849516561002015743181656200068563783805492567766461224269019092200684178599901353934587972180323001226763688655311820938824282517217896734435815707859202397565082575098298187240149062798843972670082428961647462820119360870445343877714233468481999579148741519877938222188890660485734816800980736535338195360344788900541982820698708916334241374032644228211876604494944809632782268927465852139434140568832627609256438753290696843766625236825007612772293536365180959634330122817172073056985953979207240869394550814427199699286450665840890072952032109250947479320542719846424888540727221175704167934093398427254299972976259911476278587647497432912525726272926273769076510527055148079774402167620612138899118286436959094446970616625473133056747225976245063300377398135337402769966713275977646478175471959317291619679749400334419707172017665392865289289648371381781040417593734696069677278537711576716017573506058298020181873009749113215980036883271018645769234101355897601558396839560285443709998017540209803449273599202056629789870273997201151037460181363086152397946518953540732316742241852879276726409001223021513390496429614050817766915083045013180991752499267752474083238177428507241185215133826683852642774652452783896912181723828983735697521048338428642568635965603448268717244858363735947234500395536056639695295301618500682120724605194715539171571941264629932758782492311302138221064720464930947525180689045824773053538486143217669554961515168171297332939475966273186762502750469872823804886877299099613185231599025090283740966315659462802627804810042195495589487937087838408730250116004901956886061786551416932041987998210600865307119185935204596248856076699536655509816293864004553987354754065520442820925600215143348039885605278619607458597871349036733873223886321675941217234255569733941983723064018523045939754649357490460619053267534531139081058663934474905780346714342576461088525521394946177486301742339073411470392976267189404277705311812026414331009179390812227870464319764401723998183724783499065210653197644295333267897805719653368076135661028650846661265065173520807993982679353894271869354616393758755726308276671166655971183837841922683120147408319737783545539567581924500756330209128119638498588985855138439272712955588443178105453478336486526095809375780682835533357049076085426235019356023120811742292657842303763414021136700099146194532096351997172823883960437575933487670114021395333578542665103071720989910461835871682355149724110862253302955031191179243870977783426598366012174057523572629768186505522364703329821895535633740468298934071493775944592852265450099907868038830047091803761541055659664973443403695956122054867526523050703592989439711634376140484703692828751972706447321583046859605861420017124052829081537793755302985359877353545474881720725888270116305018293577514810863649857221916825763553001927690917261400923920835375708165293852235299389665185803783787803881907426226675781074047735200600692601198217534838942757823431975522750008398453262574136243011266928778891021313989445862289263577584453834499242444466790511820970653710739237983146967536194063320241818385033435429366672570265703812034082999264071157808820349164876995466528053989519458927889972530610693777455185561227448026815135675345804117393694089304605934440845971901420463290188261822438084209943003923922732549906472314310813477566073394303961579340741623810937605558977219134846130522471704896496249974639010189851751958926051474178493490925480182359975205492235378971153402608968653169718216024364015379066872846114685710024163244391144665754729935311777015415078526116248613163549597994703453290510400847768306505492182439785105525664283470066285936677632621670291782587954712688415811947049220985312447944750198466632749417829009561646839357756987886865414521877458177098626733968134331050112021496060823358589547492358929867674435956189560598001002773794179256955853775092655735348796976806869262171595828388088793500549779797510509418642422064181190227307818500215828572267133232066698006446538581249901411072204623992735399358745306342459449941562574249501011529504144988198618831304453495850053937769958765828548158469055815323512248788907529088023656891001226602488237527854874648855461976412130174608705358787631269498224631650242497203336518528782285879701059866161587529037567125310790534703873443356285269587153108457179290168247749605248493762151791568693497468107635404621048464778906387914694225034864679328376854246892902030284310839978842965462004247849768763919953271891392247988892878615191558057509673256713301210977922483474518651902377233836643099974727112913254347105671200739526131808374398820844786480366764182885863027166880741213775338755961139776392183426682987591404477885052171121768561680933093316887630143178983120153985276600195438336634160719248642308644985586743401721373454625868165135184109517439445062329501850538692441387618470964897368983659193223258389872879099190230923253323349278711817801193685269498363810227975666851355203417938953720157907013242170596720981460357205084109431043949304380151482391434414105845285604467877198033782490539809874296955221263959794811717643815177064279188166464475600621031180407494163146105344884879497164097593478323706546812610693118909362506180584908349203128483440040010094696033664461544620951605389552836001218068568122901966386268158856837597025032546980494737629120048658085373389953297175804382265665381869946972798312434366564406891390932212504918440344987607301470944253886364052167448422883109941578917139039895426352867295021890301280992204138000962356619699376467517812436328210386426630034993559168500459838948997258640464594850422026485131338775585937203334437468200186064539914786875441052081938221036534329605697988536660410208143108177705238780804437524668884039794423540987145683708261403829896041671433521731735754950800586273724988492313241366990074751890395426570339147329031801358912791996226416067574113040092779277308752105233785863613779778853561828643668295525622751912083625001968174038336114462487089050104000381364054598614647740390207444694225430724879777768413397108599421808789456961138225095003561174113548712964570430041215262290287052041503637239574364456771413472047872945291460181662476449002586537704802179084903078048088136366481145442637930723476321667577369431554296609471864693420148419471949494501486461148072066416001074390639157788196083135979348773007937999625900856580459552437367635602979494635551242724199411854065346991970929877231263079133080460274053881691067599593478906643755287663283668499778446512814973033940054464458346212726338702350558125436801883502490625723059347297897350334821953631444047705483350258524093564808790770076234460317225024558760743816819388675576813246432601993015179648401733804212061704414353401770818405381463640450020756638904390136436286141673131233567249741374078406416413311575796541265824804204959708892324493199276938612472814577488799589278386951619113044962613130263269618433195577169274116585813975322669606300525403970939884836864507543253679196803011461815381451888538559195816506554605035011991196868797893529474944197836833015363921814878644266853752650029034344560627058521547859872625071649784925020750041229212454548271080366964600845779385290197345410033779246690760586624874164068126628398220386291319469224040702043234169449094742598740281246129018028597052142363322691601816247392424801162289257225193139879817287421241830459190074856399022718694257803947797924840827676741868718699964849937291280540375551867536157032919629030303672463219597553072260280099949284392021736039331527794038810879016036187266245113255862933828980226325216620425451834127844004684480374520395261567837017111112318080606637237197408169295687356965424057483330755603908433911944015376616163727492701423207092353605996335378830953334185213440489504206018553292064166164694840924012470588678637513024013066686861782323750734071730578847529594978092753018690177880314242684595726002385444683897802749409359907356698033302789590424944402470707712178441061797410150304409130752323099633392657109872700138598264372429320933197080387099505673407288152566282796450593104241080860936880543570652467370891751351836431248572810415487580451012529747600764227931667475871211150455420649785883427109093163522228938494921590661660672467059365035734398163851341678341210271538069630103039093068378330764305276524569959785486851504857845781163635276901176335062389573303732112577025885258744900752201942834913111228023752257068462812217730940945041470791799251525194644739707173358294123373609515579144354044023179355229363618056756931928796983512765791441349049632728375630212320985463305747922739331688576879656234823809156103450686809774815061155967519475978727684154184129648558978018570300345670237867001120667535278567180993977930574506417447000741043668184536368205775845730773969561173025753528882567650431172654216250331316127392219388750493016796928276331355952840023048571932067842002503293904269328436392183923884758027194027864255462055822599844008100076241002711542986333216913149905330042283732981013184243396656144389700804824906179683334740570324794341716140755960403829929072303971822763045380532379512523534262100179990517577649069257917672416060034276522089500685506158803736798696033410400548515409429515500654463243183124832999293856004771163360086823719977795358756040204547154292555863495278014530379932365855581555399259741753125434799675421737315469244982250367075860020385163804709629669340957369184840336739314875824718269431872147684263546282398391652010805522824154084494820375416879882952339476539484938454014798391555854409117484548105497584189507136202030657923084198217748811837920791928567799174041782266727111050171395086984803984826425974888295929821208325718847012163454121334458568314695513896008145552568484936472512433291679787753874987555409573391661134246099290847748488841681725369330966577663362486098208502502746905771021296623538221583984834060758023731843944220673115789256118013390085727843991643348447185344646960595459186859777710891360072744442033016215569798807194554233743258222259837207546339107898482099654402757763606150154425806684094449369657586134735608342126154966219142647710599833737328952638955845050841425751770270237736806280030945018569777178304243629287091327760474624174661567168581376656072436718686420192487259985822891735481844506970225115664113890517682263991672732304463888472555019530773748754860575584152557065361080841897108434129002845886886764830947947529804667770595832743823544091286106247595417236062291145720666779129140146306243468442278283205509788433282349068207626705829066332312772215751841094833083342562036079222593933906223243945975793302835488787876197583675315515053598534388403820860897307464978213676175745193775213924266211500448516505473828269688946535691420641783047357641692791648591723508860917022485215768244740676932358863891183998177296074808483927742518773374387666650634648074608553309780261684256926601150483410287606359786903404723793706464719231386384742553166931489039487825315690329681252806332485041919389024704516031099638887165655260831393905001028288472209395848324621866482304136428988051790433402146407237042133435650450554443538436279618089456789539971968331707550920576677471122126695311174268744934929819135862866446357788791332384843282282859822764115960146930840563817686654331722656584209361845697044264148481242813370126676389515829933857013746521176677270036796761663351062371695569645417489495903140464745323363282840206926572186302636801991372326968932272194311416811539438131734691522026713771281035177930267483084492803913029985536126389758978097422356668217679589511180201369925870982467496280456205427356795751339714532907226195556384524761024049676173375684754022756946762696875316460388360914095450078935270582771359270698030608355825355240627477279538528300546857756249656467055738773723727489423386198786445970790391271673933461773785611685277780616332589053698929508981146163305298116422198367428627061523234453158113253789224854619683539340222258892687467968374824126828456153835717333490756670409002660730338392107327865956667113860154856324692692686377127149941664569255233269351582009341298181179332132524507946737290314619817177433221831116481027580866562913048341079723152347232453565998851374263621652835685195548355840509646702759136780190611277127535926222887607319335542306240136931033918066783999193402262460597886410716432078119094200589210940531551086709207177001462433855644942019273139709408419012396175874736591226144664865289365468135315682887441861767543722711860426797672322813470907548103520704742250610524608313093118865825136659006577518621961315168710249525702800939119125424219330396336650148464970013432372266071215353493165255307586561123433304852479146208030316436064857267358980516306655304130615630543358787647344645721347571960019006098129516778003777266049831980092667840670297807363801451367893699690741741867383229931197526414091577514122293446588502529175588731846813335039303733421868942596824385328178527474052801870593346299608269938949578051496479379096178584170753551700794659201502276954659404556630472873521675482356932758001909731462073517449412630330745259682188211936253384650449247515542794697943360081128736866148314474057108686493464585745346333031714574928431515605301705781591032112477444084474240063583847511899469414250137238117243584401868332457745527642919238825095194346907455221488466481570819196275755585568886128571957573666274874675970667070384010008618572775653458127974341417675099147783166059750934813402450153700487423251955531427062750524836809217970165765000865685555245238375453801455222118795171412153824901517588454005119667259532347515788319784395013279194578014001506048690914262395977530225690652547437469360017277159913230653816429863501085571258258460961594259078626644559218001509972432004010442945070165556844536024363162297229865605311909093329108796423742762878381156993527213491492839740629898746647358970522517233454236905421551771644399079923624302955104511303269814569750958125641394019958831306181103134021185220491792463771010588267893872898458676015410662852261234337629628457770844695399996352959776659741085101130977259091237171303197973617352691769119789452091823433222473233599280169010448038962508493798624035802772478902481624377368934058480220731420715547621867923361624888233864969456503254139336907439579325898890454038995862255939079619360380711893782823135918434489256130752082964034019533605783819355111944323914422152917536127537986016423036032739052124841529568529249310696726756380577487482568117098427136774621303421976518124249986504588088249354852733165353223567285206714899685457972759292018543013834124213685901682622212989820396600727379984023584005180083715423006992199745174753110186471614941947745503897462799114775607208417887043603466450442565001070797242346185221051949884973997664353758434799707640744017735647775207406869336593759059963040907319301829846025421096003321433523652327205395790742127669953183902892939153787844733990768918270866325929202464899554132898943636157107890312358030749788165463151946082544558797773306623462129668820847987033059004815873855244034210987941799870491175524009257786141813445831931558845380374912729125191059685275403282808825610640702726867541012975494216197785272830953938751826571429870849579640024209883161543265824806988119493295072384933943073189683934656743446786720779248339388549096210631043082165560420625352444862131091605217036297577662885983242019872046758140812350380463430968249715684356221605096322174006984838158911418451962909304071850820986810923181802996295152917258277728780132062734017112644919908620489305708707483318734273193412905313175216750773665785548178846831233175371685691034432713139644618570582791286202712099537837045089363894719789547036372679102613657068993250188998104846676437607226764110207640955123525056486647919749685514429529533755883685545071200882837528025299292671374815849744616385614222473946460997115698206152167063582883496272127433077158222839258730715032020451432196218524970610118972864409501875173735192493125329579491228987454365673492220971912837548721619086089233054756129988746395785326051952028596102161961767026006909423703822378755525739989988914020105316307930622140013419563414157789750058394116857675359174273651577945738947344636409201142043259587571616981330297994517917558411589012997488503948698837927234330339684076691778911023123154736449398036038706217447150064274067382018015768133794876561868204049031023148078787844019695266915277646325186096636797411470894627254916993040470071143712709756381866536343854514736023926539118072056128433934215030100754022140147885175843674116609312669146771657511339689688808337982254984986232954327087339671086242256145037517230241600804661476065348940440458465503589533031502268493421720984974787165039232055413641700406039971830269697082166914134317569249373942088165221692596649585546472597249139593036723808952035543208039379839935713813271247672981032017001937794398496345699936433278565594852354738868527497060785091462555187197422512011227396983148840434115326692027658510818363208731172098892480050608931260736100599675776550002341583461006781387571903709962487039813494192475675190884306851676523772939277142410335239853260625747182141532631029375436348742234925843586852175732901306314428829203941363846718564738690463925517136325490751021869919089517957100209062477947821566649076262075231080324234000630497382275032055312653897704947327720858757025308544761143928996698886070000244721381363096757171529814760782639957417163429371849975216568129537961982663459157549586544464249115624816653108877002878585325117023798243353937800842881065413479887488608375582193810902816279529987965281613283645685962973964068785019913824042546250043127799511363867237747228618008570964804551178795433205444499739637651919661917751542793705695511771492364876049386755360653576849626447930358630363479743825424162289865111415296434092672263434735846573466249966997991711734475435643382292710585072567549555654993995328505771671999632176799529068696765727144813964140844060985340710815367094900425202852948251995400084631302062150261282305198911034703312058400979256721922302007120223134550871418822828379869757198239480506045863582551445129540963030545563145323649386254473204872320339783397075766804847772591103149904264240067558199453246747697833772264063433724784658503196316415740424585583874923716985676643018666301055021076409515885870566940741984160871294516552921764048940020728585297793405766494937177553604448955923643831882951111594319657555097613540009820269500489593929046896333268734270774825663470080745586651221521230583734462596989089062489875473479460441685183291071942788015131435515416374025273443865802509743918711382164162600346977895270881062413121347816861615224460031451072281218828806276701204366046009815969423580949369954466656132133632597829630783790507156847915373432371224598900041336806631423460903454646897743482875187795547075026349600920905049473520128917378405036974789412501327497987851085277074188828117274589283402360606416189123821211293075870982280586114934634136335035679002270402567199241959613419625802783780559716930511004712441250004824082053213594012222112612628317040992895202401807345354516117759500704642533453364509901234357763832582471671228964179606386395272851694551141222745420809363648540845319533047204359549058937528779451109279613334398526510324130638834341036999556693652260192023114009386487904371055515788594296848579216048950772462381500910375699906260754411733394979837212622042794792788441561719338500125810639626169596680734963658787745137894212725382027934943963663933919515174271375537519808792979783476515644994618374570905180617639406261723289753401063344229818800840777838741622310619756159847243831046877508603231912820202021838093711960521202159639768442777342352392970366022742232677747179828551637693052174837154420688450579444415888238708477112434468833270543659723329941258600658183611595370512337557275235679297363682336578848579724309671884669358191990872963988040855473952639450268322023564428825540574592988012029531678501751112653997497001279597692479725395396878546320013399535120697601098792305901242293237127530649277334096000046024430430232773476155702001454015320480246990383739859673569579057527161840748371881709973876495150191664785553982899395627956736347639008044808472823602139806125346746479866939596023462874018213974918709895920111967047668390729808683627484626986154424862541011693831942725141814487174428579014486252943833417494560658845163633809272345739336988255392150524911460851070044118973754188293190746473175467883487704589909879884156098475502724638792637891551385630294963059527816827533145235613386174918517647398461511179883044927064647296201997475738231989052823004989772029227502384887595890857817838724487627646775738082117479181672514451983493572311714903432677561550386922157921867563134082830156834271213554883014943319926099911992011966057798364341737688417643964673795856933912636499129034383783959695170208003600822250921494292476975468591818720776112853528410917365439377682967422312863243094322812710021416992333785040508340830517501673661428691965149993883539434177826705195560167456774871052591971166839622852746264249573453905211910022329144017978451392886713906140046412545185553245999229995007801213177310537089886533050867603999326390585566550922099350164519331580481161834304224301416533518919388443232689216839503399549780648459629044219712005577067977920597150322738765618359637683581340274128289914455978910813864018951488336111036695906687745601277324256509974596858983925907618684961525658621372820172380228214568477064260447450320459966365774793389277654109824843115913525056754376653678061094460474543888472821211905223771128874343310215578980227714849021879459948597746921009780345490198460809978393554147023445172460365567989895106635942613737249233578737460939662829761464150863356360892931757551542239924791839655571165088719596683245961658145139424826511170493892695637884500358708391946793404510426962563509400487395962977022725122220487160216901671928270683194188490733238272357449644590182661194979138271509584733151072601403807959444411379962393785471607505603526698184176231286670954813438629891187927191240927955796304095632006740458497895039207252385870042234994707187203466597897869227287334261139222503884754307229718605002144065636485111833325938069692491195879494402593879646497308463834486901958929550767199774753783904903300384907926026849952052482047995246424067895127110427220970425910455786120342883165538534553315917083408840314277945693951645525364434807999512587676064379551382478092138239505438198135444524637156589167910658792928021281548795817479781824138450908913335673542075910218000878177131226984044237438378576328271856968704514027282877500344573936489938649988954237586860229018832846817346067037184271271484759810961801701272554156424980448507276705550242519291790828043781479533236754854664704512115766985104322819924308083640030676974557947086741553884776682212516988204827780480525331956967231849665177546672818884379125058164295841339492795198239400982663294624191472702310612218223469606077507663914017445541166930621610396093914601254422297425468610284351442538526452193836268078533452685601044406499216845731478053043909238422656894949483873165669523311044381649549071755024718453712988084512863319406966075676955660725588088689629365338217474008120183944453520525181087783690137785753437647794912440109250996831863302201622773035983668889668570139426431392194249508194311618725565439703998533301006829581015233508027933455707510483653881710601164198801736565953962018150317291821932956753115792600603870631652466216672806144216180908217923518280399027973331922674671997920705964745365835540783818133776593179651544498361612584244594768795686096797991366243473440139414643349015861170410872465348367241173961830351729505940098613086121730892401168500994179796684865757654710050671501787659962867402969488972646850514517529344375009930354651317364761104732966465414530737336381144982728298455513289413368065167153070616326543105904660584582032981603370975013520891789974944693979107729763460380357537255427234438815516171527062920020451810214089857826522663152500026001895593698756832088627400825578368944714657602454606968758534607964382452758276247005468877906186223820282687024236469947888050710988660252346926534536664781267297106281053684347133948004565014564046496386428454440312561320575640816692744552618181760313385842616502418610007635951631028953498949929800918991690796025681894247445344424924009264386104672337205080873052893248904952687597425598471520561763601945284676070219926388918233379729628279764687509482900542284399856594055938426386247322886919612342244923178299984459197830049870028716710799972902967569696579806723922218875400356049386234128821203846593254287528440329535270939539957379392038911473463061029702325112601091107611341076446068139502365662309538599366768838923038452407942377857374279637456067958398648410851115545419924373359858450554625203087120109390875793847146069478307625107199875720270443061939622950205739639751053277812470435929657999261902485645795911516766624134176442587378417350184000168485614450956459342014132507457261097664832469421240213763932131527377489164789114082226122370613992412409153192956993865210461572986405040371890936554764766009416569220847471856928874746347842539288264748407003077214822543851308454207129553564625397432830681443300224367982953600429110621583696047198913736141221928427421969062452986111172764176131836536201995484296263819082064035431266004991022247629733611473286408020493608430605100671247613107325143583967015835521537246333025418383576798331750429696970714937772321467805963778662512700730727249735521446973304394561222619289400150367706009081963109617494852770682633312937961670669145073960603414137365306432038163829525436594064667951673924715511567575106085156113417457388407742113005649587319915394312438552155251206745285086412129964273948932378696997706138323725277604893339783295653834407967185897410467250728150178493140782472169500140002157116120438635976479809224908739213994821273503129997176469034922425830055870480474142483949396326299420799030191415985844503871141309154910923302997320037099101024290866729196116974539624358066390257672205565715600289524284838255245042484875357268707207415409535059032899488100887959344729793624651153808230937746869343525521760308331103638002568844986885545323676687614979222537977852695423180378154369768777516047246363799948991521271479148721515913291156858749535720874825258907958084773653163363306737675857081838593422645150474313536654613012091257377657966209892482724236372712809440129063137552781911655660568951795544921970000935386961431791436774592714517565461151073240063520367321969176493430686698790341848054473753396175633264980379236336687215591691238709714121267208086749474058089983696662661074157897750798914223635661608511367747282966956452320677191695455163065440963178524497663662477400827257920494133863866243746795438496427565212862949965304435548200083911288327831462617948813465001972386167704326070069244281618403071740843308520039523836443728039143471598973511452104956844922686860973001690053742361637436975158142386781908513763171575296646615810839387642186312865943357378490371376507545517673975166825372239579983804698887257900463574894033339924234610747589930001206658823472854783072223382137912310764961358418532240637414122993737434710531208868186844619751615583496131006087984866943693913000009817269794993434367585947840253578831184924487189580702487584355209052901588124198196792074589470138619944467137714680360414221463982486901023859671948700618678234515299106780260165341301640308645458284566750953182170443590621432693682224295952536707144860164589340457027735753948204758866098049837900532075349038456043123595980688026799676613074539861372594031270883444740066742672840880119506189615680351728796749588920041493565329931938302794509221578684608161984352540618270650594454742929632363752440041075176840824226036758561117137776214358632734645481717157436784307495449045091085812838265230916441262223730071814419004168954861238700806419802142130984681553799414782257130345905884143231425738868396608557040357275850219503310697803145179193557578721510980862032327088683333048940449732790521802806799358507452077322367047407486453434130414857927535199074809370839554012353873577753093209859576383874497643596361345481719018713842455385647262234821318533618255944859940775710832752707709595514696386208661654796651512642748101354200941326158414474014375867900409834907743935118155578187424916711195663657316708462773963877286022966830709787955313987828296113824479170411246847113394710889395184240136272459234460218973054282095625172219441617103146733249316580270023164817903921369181569718580227035815605088815714078876725025995284212057777487109913783761891488231906189238470127521366891522586575868327190440663165600297490624992735734439360899998668845563746641759143018884030050860307680039029098762109965106500445142067595485222262508627531655076030782554373292738443516916318249940604066669072887917738449164902990911688304062636627420991995798265838668613997485613572724415461883664020074744821663998300083133468887750693881202529996168290865229851089889130148194291513227212951284461051125516967382288864469606315202806281357129635343396276689535524654241927637678699946614857691002858785513692134560928676281131632467207726197079844085847369300710714152392956594009462741759186973034894851369499967642910858617789925930813273009271542472080961805165538031705467016234458998834245975794818322117871742156424590559648100076177256034734479144699486188371757011027720504910968987525316422937534010671607381176410774329701706270695370356943138026362202993787799761374574822314160327260238033309284112120960974065247176789356806522995913428928622078025994226646674207070485964475348317035441912728814013557415939665315770295940230665345793830202290206102641543978680754861056212735237301416092620921020209448263085190612068118980973284048207861902438447910641314183693213631270470551051865826758121482091212538253119828560222760586815848610291316224037451857012646654249532385396167890273328363137649303484949989895223862978106852430782845695187632638671872428893047391490272489355102841603667142892091792807911466718464859847348639386900808418744327233078981298701893442664032063599148660553621198989303208638462071748327252047677662218659864329875267055176523239367620752047983672393327205055332032069819424665667456729964849652298916745714915358147621728874169959339779917840334482289541119384775923819533511955148594843993470778456481346044593890864910252356305133062943722017729029665370990253425929043944469287692731555599330523108044113953503433389547857537844550620249356584434561399507179885354082118319569316266561016758164735047627343787810022300079383942949962482066752218077640065430470100180000025595973392882416210985738510463229445037078247896759801101975419330124820947567554859682956607558490416089957217811994816145622891569409096155280463929203743448472907595689190324898253636371991797857134305382292466505216884500078146490488122381132905915901328887264660374056009551202827769995411624548660917157012514141194550844436115457753839617679253965070219863374692807933815288476751675508863288998526155874788382937990532604114829371153520160195399921137865265752019723147421367030881775501469755216710151902490610701583793914219925930777317531457230303296372410001916237652130487938964791994976681728160243280822843947019684788323865899922774642891774360305404481934868389707242673709768131397989256896786416431673610434924643135734517155336655283460899265810118246000758752316351454138137019203900858097218115180288516515495458713738391366619612858594205087340729918995120643225937147063861667560796707955742354941043535550875116989364548190820178919813678872288646880472520696153502570857910614137276383867441782316552667235254404383026972023349070052046881598151075503576181949616336094733188248634775757492964128497808559317940644692321802032353755262766080182386098377567306735600076841200251015533955813843532393318008386045445386304697066652341996870709420190477812009597223729223149068827682549448844770046517755242201946576695072735872536604225565399761318046866009610722362731924503271745244601096427815739908948015240260398847321860781587138309383665915728378587194957123780363776984684765368276774334616812467675868121479307659134108013298642526032148554165071749414447979304473034295053907522714628023448358238834490095928989336550046964936666630630788145770518126674600044684663910375245211324914286490636469606751458561114787201504171976721927067029867916704015442911265186487069326907103158569257840762815999522512242387273445607862798796071580987854212466383101579457588751268586025639429846631450820439231097796781956834964352136830603432465104264702461237243955736145455021658351660310679231762082779523623186246125499957522967360736630597835922364582456388909621940614601385343242580924433049582553938529845205000961199424918699919746711414585872866831113314250030549362366353347184528591791406113447654308136207946437748739387032945055773440659115231061386953234060081490883045251762403554997756050899242518775335874356977196075966737571856658775173431037822783584056463100924947915342115723600397665627203244258022077148025267626799683557297415937820448900171465680617929403505318924186171972344702420067811082133382352163370597802901576927059415449836697950112833117827976904263037719243701913602603684084171914559150537225121036467344924788155950659255026962765113183338649899338286511357372984192290901479445253839624330729908032956449368891949162202036208425217257675027533609150950867510624315258488526591062377927486552682322906040657372928187444292161610707457682738595471224756516871548726592593967054056741349473858683764171853350203586536414405344370000858301823278698005820115044908656890796190452142983369557251660423539452080746836574702892553526242323667277614409021643001660010907297180416837623592675066387290523872025374932396433864412057003509951810186821575151882991074008157821570786496120058470511801548016917486607029300862125705096455405880574903916276286052476737288041689577577378235336979513965778838416556840531745434581029986391066247226891224378380719726780975306256818513225199079373296466632958694584816517605176008444152790852323508352153895727603334811547862556584053139749916630983749983085354303481449494806417220335055962359667476990341437645283116416717996393398708186941165093737712501616043218670108434273982165941834768060896696695763810628892835536427238543475144596353807568891479125014898540101116864774453074927269340933375216309768085115108391203422836532621408227843539285107490699759228068592332396159130811426900185980647728535083400182845984911773756380298319406569081321739316374765110532839066064493797890354326364468818950389571541504184891533492874554807729190919054331333629710368731816889430247641029939303279677819856823026748604703786605627027295214326983273275755963365299019926136855555362730158836232264724548900597004332032955768228557485750326558503987908756470326950341911572428495267730713861779667622209125571458832268132732285093509874750543530093107035767496279222961085534515941096934080560352830106790299303041713290885082141780899073487426980773037751238397820653774896971759808918557766051249003834505948036456503810587886610628672829185859818202300190685991102315738346782548281862825369621945683209850192496097694961268049989268764221070362515496664063897905754606011191717783553187571314431753701540669575631390412587881011566046312458606897949263810203836421058034564343837341396654955700053747798478884179962056605685870162146117331993860037565216996739861132505048438852337435797024429036168472541133669336697072642716200848015500455310791131109804209471089522285782444706829396061541359653074469033744862810105768329836195163527192753462332482683209480281512503109203807634638838088203607690247164624226054532142922488354272017175155614010714142150069293739293504907217751041632842919761210494626562988374786443192018669988824779278262352101556873104402830288439394008824304903245355814788175289086562877614886322048230475438172596428841275721826932290049764450651337365076770077335680797308544133433359504691059444878675442085570537604626795737262634027138539100215690842663469142023145616916742124309212318838821910777776201790063223184416152872478225736529220099194131389609241850166838765989774541696116047843189703520642221927515970484409199535204242977677578304257266460499676142355528049584246178062572435165550001857899456909788383631760500440394050958659696872993225784077070729488356673250692793799748778037506139422049359909422506413545397067052587023637648263534599077292493801888630203205769604342969931715297347336678764910201627424894035643711456228168067062944966402643064092647550447882018523096092357863546985381125955478269623594117903768587228969868806005340378486946039430489404395357924085753031711155521930051005745087168511853994108482732467361679132498266493985847791321890440930688368010405333362687198290264151214083781541535739058633563178804689653617661691342231256849803983577073495582954535518071555513892169977865774720694204960038524133256990341911512453175305915568491985309897894960157043994314135252718681805439171630587773137997278906949479373193783237329761600235166058712452556054977885588698354249477795575807875845707431305594044059341300337399642989400917036222797105925900643573027419449837893841891454308868481680662999280526831054820747095161571356814079328442182426523653456254604208630180340051608388602316171699203297147952010601560542008394476311373490468737826540580686653091136790267959053696753912941788952938518948779735870029196382319301179595090185865876628507250221419053040979566526282812012301690836521176691676118043085792722901193902397549377809858749821488776780894050974630086832313192435407238306751684756632526337664979627537319211770493449233739567950140643800686356024665212183333626409419681907823597719311740820136755175309222614345273969436158531989527335278725832230744119810287002167012054931163935029804084435242028219025071542099561530560925474928893436906045832254756199133614015813456177418511236736206922142099467931526081781726581082981976044962832197915669029264275452452250999785592495060132999973410711511594246923171018359551044165806027120832297714871602208901985288735533502062147505763317727735636344267427912099899488101733054410215683119126918428525980355557975938110897389190612189772566721722130541561618182562169564913037109796198569535826420740951137054329683257355118109059740975519652697176593360101574797483855259763806921517116815812731438336466187381408734639038550250163302191694701556528706604972615041385853515416785709443020153913670292319445674665960697128301426281633682593974652814255448081323704663040293515049397388292799344855121648861633762412768089567935507611571172524103969662011522354462187981519899407666698221136802123722317152775182632151800640615003154472993843978864749223899341712814017960734165453864228327325853663793980036986454950698295593476677696343559003178074749001622681468793211130893858819606001995398229785847791056015826987394676186821596237227601708279037205685536802703787392770262196062112644594762599114010452651175625391050837132307272882568710351635626003749750880425086321700981705023379804462196124874344737652933234744085365334858799134877931847883815249498957890645790616329621489915743073979711547952465145587219486223068678316529250705185847733533482255199946819825811709445957952054152710485748547609962035592701571119273007886785940793660031909528429980417513140484977389736065625140412399019623838806959914317962425500005405693610492435885447731295248746040537197894081704425956767632805057697715578556072987552389158596987640744524883985689304735172494604723523316343971096465649311110814237752603796875316456494310958293310329909441890124594645411799883964580495152711489450348646040110668564525541786038966215437615963013322752716868517259618466998097476936162082110602923104948951871700216174681090725614150313994822788862197419386890916956242773032062851957966786490518000186903984538640402161647132912990509510786494036284587657146726280245510457843799783740716660806535368282572656941814353745768749516920673706246516311685859108146810851723720313997419572408042059311997259150100092071386671409915211137701250607744134878662881845311625624778165047301768038486123346555788408287767108284552370670158739956135425113702711921686566865846359949452716928866664226662860453139558217288448159925247810445879714363531092374781755086689640992587501842485451150147374812599674851135335726209240132010636501708281499229955455029909026310660181688591508736192788133470143925826315786512972077675684691290787351294626292539787554713238644655667172606305070238594956389586874523976048892183893436818378158601446506158851502114734198554978633914717026289398484164925750886159290996980991492901408267390598330836310685157216488081495553453575219352564599674821967989184313996482545190446016246746587163951765090153896795632012595248801394659369414471709819336107375014381845211427244890849478512745594232508440109807863379811340854161248724513834853149418118481403130997547524463022467541411500518157516434207966839333288387412336402723832837563291265370105178990486280664619533548807378295093007862130103399761347477405720423360244865767288821918562507992046302153821619491545039548734868194811890024322999382232488745544764158573816734276156646774106503688353164700870762057578913895520033902237198075221786335737562495779318138700973777310304077164174181290425265204407184978109488898137136686022577600368133178662571139051603510766453382989038883826745951957355093014090706598743350302108956952562454904223003210125588601322224312694438212710597312739244370133006199827002751053589723812171732741239463718869890696733878715531682781950722974671600242100256310104823167112563833141796497158200735702718425560690020196288353083575284749024983677246490775511751999325600684263613448176950563148277580967158057992704374341024324661460407810448810946957788007757943984092588862896961039327173699580932356171800050400745927675405060133029988545874287963544499253668649404678269247033077594484294578153919879462619411043665670932585196254005212955507769873624742728778425927714067331655769628230434743374279493732279662218166089985144608882390118319647802396274956730744063988611823710928025742459090531015442566053416974623420905274513392091493142039007682280040532835343282536433302601775383152209854617545907708743002274848742886425187676654941686164350748273993021657065121201930722610637585365881982241672480925683688958754697677227885051976849033647376576122622001812895768532436129962548910756676638956758675616867900777285855864954045597319792563872041181544114728068035339991589958500264931693832557330280315070145198125062233098392877233286694817117059124236646252559549247344012248357510281484840095749685989510139673655657078693025046388898718856114328733027329704601674277973514081446105065784636771153593928209214228077587896825816335623534953176901479899574754582044160325038555813676586893771031186408261116492510403127410002810487724664706652871474462475075793549477611570362952663039695311486940129743164957606125878184847721456792983099949506604943271382503116600626088727720325462345686925131500961584452271972317679919027479899659100474108681054112418443955380473736902950149394688408171723241710952914299845126299079427642168856313869266103460800910956741722028770047519629056685181174062824047792978277313547990749087728435226279473458945745809130552415345286421916391126965698764282640730719314974031226660019652350780373514115008815535263990603493355848435115432249365321896100001639329240378216470850401237508634367888271567392894074550171391052621646793115726240448573893019508842998881380480888297424864403236633319494007513787966137789293771917684836698085388740184639036354930229454895753856796331657475823743809423136632547160193353292205243059609468065474363351873930859946162465058776696554686559384286347682162855852536729348625370410780170505183730551899442130842508536643314090229441117585370888273746439602531074125602489940497396417584861034220366742437394209173903139409483219366498341934954936506365523016517014102968659631125036173904205345027283703800403371243465166178808993829083618332940023369269533013407130790987396212485505525545188991061871123907447512373146390571314897046721349282555571643095236324979734767107107613278571010191856774371816255384533721738977555902808850152534461604881145314497089420449984670432325307923316721174544642253017116840491361378468258262602927700005239659222561583461380380204231922660450660215566222466372988803669504562381211598325694167353248773190220154715859150054039308674714535036403036436921419029674372297467526898855674580500112224039473163540450611954321616475125352084208328091560953617501050726418643536610376158624009068369725274561177508377494211167586969465649931255478653569816117043263471690702225274920483890503412296979085017185762650070570336622501253719270062808407270434721613953184928103787721763196456474812376529874517537329852783873667877293749944139903307897653161226312384707353390128178063364421931010905577334144705003448865986793584090970967123610064924244147575499529586442568127755452853525096266803481338018559720223620417273356359117342060554178089424014303677857120893189653385413938823718949431066532678984700064499756243241274239313627055583976132500719833426077968578870664882712993806534529786817431632756552921407406116079042904725442182840305566692519638914542839948135489208008494964375208633431406739534526162258923306254416264825540905157966557904923575000968347781282111313914602256719336734027928615426636027709907146100083415068505721638847541761270111804468250798814339585212407158864282975616944434537157355461722105318751586068751582919770464901960371423901215112905156668967624434290146723548361356731419677315976719905962268782358400591824827106131463292214441570715975274965240468837789695994751576568900116233894743902712407624391566315695734642509773382155281692947154213822171721891817112339059900795650215846120013102355548166292662674367027848148917078841151792340680586822209136643268018251427006177775235860925127410196335278267693378100555282776774626274074258540327634226463819147547138038403576703608355804014608029596748665462255845701148134734665700791676829475686155527911862254355653948264887072419952627930396351017981403182269569548976544434867693353609218042192046159868098224903319365421883981672564418034330055977571185563896847980604924619634585882724568351796420122734917592296649763780138231679380163436903508945588289869955288567388144530671352153961320684615581724338151583781499180053669201083447735917807707296351250250527045947402717662021266325703791262228545377967962295381729716669057986003307314361550239835368027758312399146237061879994482551976606515088373235882557912402563013890896054545343990935589751635093296947520261298729109025654658420707504516128170576691890115155799364499082796558706188762733296753108009698663743397144508618622060201778433200349117746719846562675856891140431035013696270412230810238525531446526490368602733244312751550718759651281065418303661599489976814060238799414203745380162123284137356126321728325797346704170734387148897571433210074786301356985715518328821330704338392643717999569399630851545801208195806240362333270589429483311309828780772842096771212522344403825780801866664838565465875561069384530451513029061553915255258047545490315683451283563375832069470268272995919405133380035636867737450649929129017465445409819022705336826616621073235122839193139210006578263021353288185993470599972918506118836626872971526668235454738634173532346608743755863424660331887976766752433823454680983360520780987198184273940046095577808689722669643075281660746655500998869225276051347185173728453622066680733861617789324557631110920812017204659054273658523041926402820587281071264819959258213019729035541361134524187904932273870511322104925558901586585266442722219489577077654796142553580133877307176830187456082965270131710264268076503898172326320021738916331178605915186554803529319942113887351848206001325193140366015952609324904364537795556384676013993123216526462597948510537319968714962767639178067591027997050015078679514564852238597567998442807486283252131484193969090822658583613846062448750293794897292403666183099743630438538562271703069000915813332916562333080692997904974369532135615514231111888327978927391372530221861212278944847032869971940183696254656569655340070106168904463277319667003369435972035871325616137262144027972230550167116118843669383109262624198607620336116381380192043044700392509985441018988876769085188314268203109023695903221592028793989773242496003064530399795567614887045442632159273031931618695871700092421785092171207173256502756391371733596042447036499439590727521966235181642958537136528836903354882602821820181962805344973337226025882663645134856528072275869492610906889363350386036721514526709336364273359015595305445903888909847088685495591306002378904171200184154341884831299937230348090456001583272833418283991960312549406281115777890996643259356421716235487363799552441562783079656075772302942940019818657958372146662611434658106451961621665494416462211194332469060207371042943662019382159365313809475528286071634510976198757088993901580907444965332096047967376318287643446489165525463316098635562900036823147081053202788153765722557531434856237106656954243169261337068601146018016210361086285346340578769517005437639454658285802471250444702883789596165700426189853165604705817977794939098510579298117781687524530864712987322651278632901839493765572315572836635458685526352842381615291227057702567018257374207265217519578651127033654699748657220837357775106271918846069983576622864648736365780090879991946037035231869964422203340592117896518220898698096562914813018159419664132482218951230806594225732559670390290014101023305950907869973479052310072874481204431088789945018119504992258048549194148533596251629846162009934371055364779043648090540134627300642987802951843523958148088710431772617741424123642281958664437949284397849593627398681276372928938256809751054639573411518187859478967705008441462930231916916937591147930811527346095282793508739895975700191060433119396117355466973615576592780442893481813705368712244706090566054838735549565271360157654108391652310688760152216322296396354510192937111559514780451503432999924974554255321054429841568836619360459953615868610819609075371914772168468823023040419000798927962832469293754023042421168209644260228337702705988049127911168246462317678221783203497640575079930343981942311379890621802601240557872882860971276597844818821459272259815771939413051587557799882974856492309292413027165820613788831017698232432566199471292711008978354129296609388434967325158640336473403477158916353425293259092442087703034827535803328015152263335914361792597919120823294798946591140479555051330683104880898649178398363300436663079309370098196320927823399403574592932433778728342799395454899294607446852439938693009898672716222102164083256624468478276701622622358053652396881594689875735385344747954249540676947722485673491266153896573787089297457961951564355680168746379011693039333478630571069165143171972082646860888295468541705371838019254892893762049428633713530814036098427748542882493326547273651436830124714248970744340315764313888418963792344038322002320873776252420674725295940855021577452874369844934572911359876852457825849742604952026156935307420276383773075285291484105532509194033153203833164846768592012498464509420987331894879799798707407752470937951564315169108904266196213558550160754707856307408839411222439432253120147740653409337046675600114937784714455773483146281295415171805567509843868374092553463100124896685116544092332618660661912564123867721325238524820552666803905578653270184380900950568939113089809625652431646529614202343404003280213318675077288220070251513144874674644846191549116385835415156789676896194552912018055652789780626998501867875825515632688137973499781803917125533878058853377809534290638179871045917040545744896176693173494233540229228698670901332460254576782834215280072459138760900021625319602934969171591767114238041918056437217460958854798631656503309858110175110613796879119988929041507991564530126918205807760733166662194330927238436318085742512369656505864216979392315197354601914529337672362554652752847294878222984031552181010448883235603612697278599678531197036535396523341757078350398074040203749919750449287271091569532821618656451409282536796648972085552581749959480496250302714699315537771521131442088204811474892956680585071310851863445510736915368574909086209622687847801735971760324184771584672367689864777024404786283432864920619880787481815648449024783737949813385804812358958911332738686958920117572276642315176154041208246800708319267184320073762417631930764620377924007216490245581837444914634794619093273018721729282256364618255267884306558981366644609984329046339965090002611021389528323605601359377638084982523862988977347313818611481799307227488337470004117662461741346064090855192258153422839251473307437939879383729117519964790671628156352310623282253413718556869075075232665326450742113583929111310671371883188194793751651895834862230800761193701500269524176684291929449455934698484606667835213652236439165882129641024122190612300874356274871825925721725918650400162126822618931471654320471423819504644025183503060541578820291132616636005334533758726281178673313259957243305682191099972913303100256627300477851733467450418690145132220005045710296077140361963807674472276616872151225849645234312186180690497334498612572592738474119808239104863426950811309110694794349199296632146029876646827757311021341415270636747099424206766466922347978904356243180880574236655184535052419241129848251723657932263785501699567662522626420725540409301663064345774410863068513103732868560949061631668288544386925450324172904680924519733544752634408250486660070791843845127677906166789074624650370925150745718165919584536933783296470254054992493555110756059281272326138086081149669729796717088782823216969939860081543644583643563980683664318080036692222077850718911236949957013633551949095288018643334906450736649323528239109800111592748201343820046088316433163206071932014347399318949046298388118515729949144389249233564063952762942688839144507250223571691658208516161441233254018158777493751712091696048154219369290312442428344128841116972889894382860640515780428396954363147539991771990699689984824811851793542817407444132337171631197446198451331362967395908079783194434915997175559570332369163422165967523151114539342054033155625085458259395203260879076346311101775157742709800642818305813011301047619115142165599906053318847005994700009730393556905027751564070552298216494781850111901993675812674762524898506280495786919535066597824851472042582631587078343861536930397443909615225063861687481788184569001724245529448792113406582239380840766790378854684767694321088924810714614001725139540774864604334907120154047977057813178910323868395652735307459255990261031896372023343744589674033685128374382621517945827028329346930656390247492760740178241349754493424921034073074305255963971341230708692891993943769542382903005059424545997822242348273796181269102333137371797766965807703644317024343277906772420566248310193149471174574769456354687277730337059676979104228301051786431531720960850277977477623235587038984325895384746617353500105537608220614185362644609504674336741846453535972777854866641090284479123525997098316085883547276768068375255097250499144831500012801674110417289605448080435469021292666733419016433339148434630934622010660231409306127831586434944884162941944172313975084589032875236507844404828908340713444802080730865587535228381095758261904752777601671609034725156211722868971819427676258322096787367893492372280988143196260667901480015881054904424091048309149381316585839759304561241657679784083190286931297626103032488115751730312716219496412333579744559523025381359088790938940920190941567906425736778862351787379859438407297791949179222067516131921596362490204103885628178939247615581745649991704961605463529380802655804683197782420413081169960934046901642610162153281526967678393686362501565170494734664924407124256425277749293016934025644644679327246827034166355392699426016696548597243606855825955170116364789659602411807058821531631900011345210592973292523536892129883317361324076624250603675139083574472378418869411004782596604212868657508389220487625202521120238537845059865339939457981820795594597396258321946891037677209223554894526454253872387460242458094751740643971902781034005433512221173703486445174650487786513131165722239367461347614220511434780639294731707275449851082517991699465179233970352876361460452262841392435802432805598776695896008785409067322901540718733322634722386384893186906110213811853444862200917375009567979619939483661125160699584101866562520632644970011694366626858981507957640016603993831679103390545253878603966757658932729286271672132252355768342285980572867251287384019623715462988966287547742352015622734617586268755194318404597458004735633025939429501517111292529608156807145557911663673855940339550928994261197023340548762318381648713897667114513702054819163224273032968506775372250862018534388096334930454029251228840670875519122119977638014351281268183455619138599888549096924866611188242778901313567448381900436870957033269732144238356895862907651163848647534436067313489280206718464681044561157078175240515847645812023926142887308573594238176178565630529324007706384729599376552597156453940503981993509621106011995203101342875720001770583899809131282813758216225273714633185101281826280358309229401871113079880960972610416418314227655033630983687690828192154532448583238879994892539912500421732448033178971322366930533261643936149567441246220851458754634577529950835379373165164938156871327327706780088012118351489003139220488778189381721887151724253646168864977520828808780679422147546802351365313179605155867270499523058490628846679249198685971675647688088182951327376698538952135743382317567744462778098696178294309671900001020470149371911320609926155127544923809656255972298663378726627719375222124366395606298134201751361919808351445607632028977152544931238585364873830898622743063408112846393869002446243914469944102611232774119690942351797852582132446484974444307461767813554431879074540973533067481377352257693541923272315180667693209883841787019577066547142512620443122509700195169519680056455952284741900300770089225791618079003878764856460824166117661311807609398272445612731365177143263136223892053643883199633947076465645859134176009012595165305709125689631636549822784529827542579300845880656240834927968295954957024345853215760066823941720322944671183446668162540759304779453597175871026565433693030591943412332666818109585942465913602228203688614420241262754555072147565924039701915045770229488067251818280414899878430587814717853299942734272427580443436286417382420996258034833411603686708860084087925147378388207995471623523008211490646041354408747990687227287923153544158153996141783459072964713967010877117426024356496352891627613918164288886475850130281562228466607882604155740190693070103903859801885439965451083470833907031249842014520333902433878538511895624331533121197472774662987866803456478839264902497801302576601633612484072644830126737333826043330111060526944513283187303060379688768466494235245426730772597649608695348818082281302650782137880742240805601839965612370731686357728368986180607524124602777657092459628084474109518014348581191792215333440051753148593115100194795662917739911900109532497638375427207806743991252625548114926094447723077184069276799961235743057509148661859940183920946902460368107563077613736648395944026365141067635046397111849838608778890843209975131627931092113928666239347791799751437322337785337052968966680235891554831723072682350777024088043487701098807232065558474265181781530624070129144795495778502933210705149724273308722601749876872600239426767848853865010235471750050855580786385713516493485291542139979799483788226760198383012218531062397195687096778762210067719675098318444937912501480886720297182127517465256659646334847580514585131430565233923894560696182923495839572877707185525881611841879914944514810838928156236946462254231150122485824496682841628269568031917858168036534635468044112271222007545812100925365735174634337085064825978566721446498973288886411299348852326207645365950752809625680250694687103210855715814318066526689602230699667032433017391539885045892614137608223972060804541013246136692234085089651279960158853665673699169991207711811562035567029447664566135298923983086378293601257909814444760550891128090575699757769065609098014999086934857934594421720646705321170077492451809858937231203564318970842520930975653414902803518474892991779877699868271977890672716455807641379659285131656949938919486833530395038396156932403415042663050227929957878518737578961161461825845805078454503009102255486780226691977745065691077221899447538413431156545423627917197912356415026607592967508092455497443165085486816956239625937415495484744351732659360222176389447672900890684795068505993500569524316712960913376156398613348599604101495607193788714096314630769179450727003024423701886440121401154655067386139600512762014717309588449269162112162259897555669011507813029772245331554838802228355012024460323470268966442571897841269905848594432940278544645631326159767873555995385358868786335484598673504284452735589149147465364570404883391917741288138871508588542114946979681205250314751974912514975434196321498378710436896845462063333549202632884407431518018185804189132206511138984992595959660532128963057214253105715148350842512524874776508404522235448052545841662580276948908811533093452141337023972815727570490970641484701432260005679866838582320757093107902033005007799552673518249719161671859085056190457716665977957141011616921407465516576640636337098479238097605515055345066406003335263659781973596968478211059952071204671685907155927766409681340142451980100934409040268838138107863833334171240141981904974342934270330065742982224485646578071640305176879417913306759150524700305474137091847982416219351260794094663251161116657079312189355020985286995719666385603822516620641473568019375052066515765922376467574759127777871334173165142908575168703954026188721029999330348730582992377083789652855487083400723053320293277445790776166735083780639513136397328789257311399148817480515383183776197560892701172066600619055149442300267695685089301759307334234936669967771031589832046951727980672430987619756241451317688048653572460272497823197617742489715323194644920643392099587821535144350161174163721845431550309881414134398512144337705557887110248164937531688356572862450546948823782217493303764921016069816108336353487471077747799861201741895404733466568517119106437491904501722788579276335035028081768955271185221990023358185276770016895351543969370177520258887145370094830236314446801726549547649127440397455412188268913789681194208975764680665556093190492399533622011212760113271320436180382303782761209605036311838362502892899720827961711119577631279953281871841482140580396191277566785382421276657127406672830216900464669161016710147273680684282780053847783722792379731273394233009409313787792287949566525521516043111631660716488458718746121957136544237151226067627866290383943275769225675863381074499436984147391383046946348004550095511039694479949389365663618168009402237015984325706915671479484861467358425582281570871156249370435645085918795564065065471998123874902653740861645339474528313994450870939892138161178965926641171622366072630283448838745930939660416288574149740122187876927186948133364086912545961521147826175117396325068448504969682351610097559221009021773557018692611896685636646131194113131233256878814251662252124730281980993819656759784969902749434844786615591219043304814562897005422397756409869536132595667541168324754857965761501254740796859574938087695348395735804495020294790979601839815772835718483619578544299839567084521684288768049903577891152496969240857138127687771248554220931065618640237964172565581167241605503188767891681702203683197487013522463730279018978141209113034437052171402324224392483791217960712406549833793862142557565248367691831336367543201661484924719621407550328045024475068053566674363694885783260055900431432719459068295006145878185183274101430025558160372564124801127698428464008069727428513272604791834578897600034977537714816919743358604354724264441073899681308587427425716048185075775195397198950540877094376325965621357676204773533611355835352387751708994822379632507072222724139148883086607413546965445730374095418066368108296377424680228525126093649158438194178131274717455698805200099539299348019837564435636182429738235789356887982618501288944720571431434253030555595939495985602027796395647018746191351860277942156114356212045239042324146426556113277948242598566516288302465071607673397750530080320866293622893475914397665481913068292255218585743347830656715315266368710274532872310536218670996073336832798394245952541662500691903699519696629018195169732815130552601216288951832767381469686352706239000391857175706741330609593691583274310970061121561053391781949931894216810639333680503579749177542321454036623910714136725120415280296886645425799313417696597832045710357785457082613925755003777185693670898787701920609395189363201913089575258907689980504990486618538577684617078041338972942574918214228412364168269514378416010349708956527814455552405631670924336502842556427253479570631687080280284917482792148324319874385868746966154792747698348101846432731541988983432103675522220023962114970988847902699412859676346692602178441897249110105093276988870750499520753895699450051255077439063957804403868781941955855021470921844628517734162696643122874432701446833906918059013213598704055248185006481909679619086205056592432467404161432307379446953357788081026591629090755372335313438381701161106015236099812043444787643132952222764086040428692618226874694909114815277554187223042095878749207664867291763373294323527346136667086757450578649408190230971328046064059487541750901758279831948817168195262157347223478301262605703923988760975655876098130766015033150926498258962556344131435200283035023353296144556220342391020853507536900810068724087406333659152095539568846133072098706932541890736136774210478116113531064094872967001431286037745393787835649928065240045116178123884405280976319614798908111070140870436716217433479491548813364549296287171424219879014293700877682114454916796972246831786471426887109272283459541613161243075608413381828420873877887446705030552624186967598831963703519517403541120643329222471042212697770769881961099187617951560347939529826205349538185840494851765691520978436840745445748774091842796243565005309890220372714282611828882170193409348593634559550460225053952343142022301515159348887958608009562718025783012733309409171068829589570882695803633624397583652839478796218711401859657262646228214750879604195688192545288158743518224068221968980911126278498386266956312936345644796876257913243179699290960591275212956781117721174790408499935961993778423119789898301793375337795253272144668425236652047229699222337776465177501060490052043553225098803230114983893132125114306974417720254163915343227786827226421849084077512022591108919221377129465706653804783527970613883093253570565512979263679448141928903598999048896821274387472631758155127269863086892975280784026378157652669227870408114819093303458537378300917705270956175217222005316902570472138805283311282850711068566888967723253378223317878337537273283685058296650563464116088697624823085056164567774085670554481632551430246126545123113564790380784208305068583599304435304815118337800403320853186508937288840948034092849907727164914385342835320452126768882279413966879337279348433465255035838856644517947105737292420778124595341210879984006067774872066578009766967341560458847243478471413954668256535146574296499158758118606310045840042283612713550111673021193576531694478996903765367575159033425170939135526328771029654348672191748036625010191967767116563606392702654225435767447197594188127613914961306635900739059302351633703283853730367206747015242952087820641795789602105217424313375918313200671161665305666558160354675614663773072440813143452829709739916640195362462409505806076530081312184656440381992528655667071743894809472660652330886006584272521093564075879102546444472803799964053081183819824618406552776268520327643970094898288684350637046795672632248280654028903159856048696686573100416347233251792021506016552439050642066759372846287930820405087482224716050081409968408435466878197094611329857841279197579152520900196546337074882033123737377923220687746341151906933817279508238651022088878908442679567974436729092937205593848349856888254708471237262209776687696185975773468438113537773263052458529510196257363424459671148904858105444076379715524348282119705701696332513262675992904624077071905445963907094333658126599058329716745529468274823374168723767772017520744753849287013141541422023626944746653919555418550196121718542677661090107808321020983814949819186441522622610151211138900494663050241119186446477183309154773778904756242426382973153299521420020935456976478928399261164779980660477555469868305799916608300059161071053023052583009576465551185523476970261516047996634585209097315821577755706663467287520637259042641709651655300124995185754025969378663723420478215297890253896665885697898141522544165044331556549562661381696285115431968332670342340249077580932841951174186650566632567645578705083245179998661263456516586727905209107455113295523319469597806994010078229888576541595003581526989359786573366899975015482139712586085932230566334127196088692978046860706561351362939238988586623247699079149522254051983389764726459982012605154217245944273422746446622187478989658611585486209322326120577922518490488044460333089414096969796619168145596727152334013312231451369272396400165122177802911674041947512645483166784957515946735349157729459462156183574380812306000206679917212302621806824194669546538591215796487680741042116457571930551525740343611445875228437836614824666260386008043486574780827949115528301359623273329838275530511650907844634196625921145772186358158863791577809385721149021077444656278121074899691382656271916899271908713529249909380223874994806992945895389057030638207320041675698681328416250301274664212049343488524733834384945547148228020718492660992988816746373212039837666487718103955357545525798165336039256012600500825577879530365229689563662792275434067956293192715868351738440956207411726009187835182511882322275964837003429634795748682357384654286418024448036993608887788009854517082432336685741822002550035250812915689269013380627589596119684499345481688219220709739407452605185455690320874527599308443654522119387724844036459320331752652809090536769500210289890080461672597758490107231730259200687156889682815462050493615154431421044514950829624979722395041728762167402420916539519975810332219231552394489199248057448553882904276346846584624871613903693235460248521377846009790983183035290833902289290444720642632341911142280960718242326250759577362360563677065982700251250040639411205883164517481184484870137990536785410086991113418183124288832091093977405522426506655693744655090504876005145455707307784220424434049495970372913646832231244227626293960731270061322119076302652648144684110457046161520445574456213798621066268887648055656850663976739796313561455927764037544881392600477193231601970070034845120373059607686259079202683897102317221012603089153056752018452486480499651670723362814702689059220042450637840005639472924849364098360326291748247212518724501316683252265405898132549796791027293624206296459810520140278689451626153508578345134453862925521027995711385621347611068471380074419845956999681074890706374030104260273479276466021854913546759182004891506801648101124692627781949684580606980054222829425802432027351844198140980552937125438039154618473018640200761163012389890274675277707034373366641053833776205897226898641373800766885580214040307247177466922827027788761473297578433772511913591698885750275997047646340363718355933313631187019441230864729576092857212048641077673884639919081473488120496161581695082419626070937524807844508427033641664975478508482796557138393205879697487070698898184742135589222309258397467548825787465301499948000507504818191526904064569021354317279557894547700599553335350876655803487946498216991958079526725965002410006867974013005204668402004525393935343474333676028159547691137121432539421041294309880411579908229148937668793834481970635771679402890261181245662692131333530678204812742201950520247443082645424099783769454306875011411286501109191537965590840641183753115607018139483681192313711160882049714367565307843236964280367186230786116929437220569406923492594740035141502048857863004567105947626288904638588617864276920475480156139035435966891570149531781169950966248222696015379086080203159543961272697805992438767884405502366855060416277677796130840772068280420533465823369300247207212411380965520376813711792492020979406031343347558069314634601425650893826781568358256470590929387282567704251044352120292322981530599257871509109560046188855555583178267615054435990504811761560768516895208114228204972004153338510894412656759482107772936835685500306522937227659721286667132621476553196662558399118904076789151360622715714926392078910526094297994284915858887784665185320401312694520866990288368288043943389731153223994756592631302057322235663239380762476756958038171420684386590891454671901441432179228947808130564208074778725865263566091862266310555119189240588795474628634203920254846709176929768363424561557193205179113356228050919693823056757134645552810169430287113856738077767457167013356116624351120584510060494649684261274782571827531646283077549860390066073447995142621453228908526425159693677728594943994166211351853674229242671078820038696057529714773786958163573413748479880840968974976013061267444918607308101607015249450049986608725582751908899658101680721590435257999422335622959182485797352395709431367115005852842203982522256004894114658028913941630652826678085318382896091909117616323453845428115449324010813522426781821268577925118926142668772342909992831212243249019652987252498104529126197123564291943073765877034010767957481359203382134207243556949952073442226943244931811015406305979769565280096188812863594991802308045429689848981810421566931789671293605127253393466152256630408197470823358540206918678345199088401388359921243794732915161682980996293420663487354745895822024794574382764961155972937696813353390408524853749453715016182379726248319094378367981773173895725642431918664901833093541759277258378022682324093075869482375942290241829250684149947557600536695714524950926999053825836665236980726722644298860922216840500900140757651235076002651991406513126624028297408351195577100141202784671853497589807679795085132631370538519662958353963680719607944058772947653617886133909485502652319609373008672075401939165221717379462476194835156972824054891994653639287884995575023440896834908206165722288671046364221177271208724070244815880672769142966110995638555187043158892783902489071181315904501570659503725210398488809913479086082411527725288921884441430879826367479323857124727959213500815108070734271251822077050239750985480285003713190589359669809288454339886041506856332298400180267194437742843855112012257007753160515956137617146082563677524279017129199735322931416434284880807214451968163660520204709053380908606828962130443929559520683096097629248423449755337038519377339487445829173043840567532683634230033310898144025352274599168015159595587514737644860185633948477083990520027325763233103606235024762920497726618227789427972151926169123847270994880271655750389974282974558979397782449562332957139222814678603480326028299998770633056271418310144330937248808293654954666189347236490668662899684371275189153867297525779047695123583819548212153235311968589320844540340478014954037181584451229278550103484468219972433037951050591951564805615964352613888636097063821392480762051559116389473482454384213569504494897221544660874829438878367150451332061136670015569196145510950822544821324220888787436188804996779244465729149544927947715340513272473056866687895415616462089778752496164721699909691564902105146388334651410511107767704915978040028456633136042334781906415427665367878665376909985615514332618634589624224733148207635585279217902783899946320050781323071155149972403957148665552231810168987905022209323425079820143881966258840280695490880927794486552544984767912949072450737575123191722368014741514129532036336427185168268043288904432422110699504758050633257663018351107747008688448345074769364553329391860275499464350622670375684256298302453073365107966197712475026321575311988162961864271517037753282664769632813063528690352550446763376158443542711399883197473156709552324271591792365295523861783589746261435968210810873367114125959017112638081992474010952009818578287658884873917072623387786827590923790401053663003426946324838455534618699320442881422167060138235938900757264956467529073280420126535377791279615822195022553274631983668022063204846802788843629392450681789676977482285642968331969737948970270625964798375451301715374059175426930706628800954852764011874675206448347760890764075925333120089546688196026994108164966261554999586006743795998303002768273525112623695843130158245326332292988198338698572049889001308167893762988816734590991619173406463796385562234096795496242252216964832929532046287848481466577708110435646332477413227737020716611552744151635299867652056839349398103435279315595180879108639173174087751290622306031398697883353463014042461201320436768277170998470527185228912274705681299361688395248020608246219421914779209320587332813552853265393256629892259990408151770472098507816812891163001419919929084320449503343262022732570663831019964702929995350731274399672260537682600086261654784381107826848835419333469590767764440660476441953884391473854452541377240694007133263611862507557546763308792390528496414926867015454103290071558358497520036337746221436488621962968818422165223640313594324448950632463818608948636445931589424058898361317013664341083825288070540762937009990057736235641628164482076963781834968456278634352337166402208653076848647759477026409620401610741695163455207270623059397555173007149304159777308748347355783014204173042978189785771150681020140710295876442481234188727902493528765321199662650114104291430673626704241965308141121977568459379927956191919578089093718970626083952205982257973022796191880342004280356072885042589522107954062153146337136030097982775017481005672877935406241200106268286327862346843723219148897171461283605354368000201963751523214345833541881067931390495703139593339793479760202669547404404287506990587718187967718430555610907052962167906650481640469092246186610824896229727822593948115711657105344780723078650570752349286310489629767801413446127399205841948259777068026031159262007255125399976384459163371866327669153566145033159886198012486787483257224785734146736222404438977406458460092908999441790930286094297132772218076623308095977440652084059916638705125682264242014814627375616742600210193287283498907072954505503697981924119860140800529320649706611779507789327491300543580460941844588166985215962378215336925709171290363882207604954369210311112597991911913696420762796677371634884326626090437805954789555192035598505732162889316917225053738455703246552851696091468614456329570480619781744608134821033383315702031111097182293299339860627981894741190633639576314589204116311682653412126559085220737988489769992571607981105143556948575862211207359875420075120873216386165841391122309507508304056937459750929158627898387777602621913905678277573957076298372275925536593226184060804619054971251179243013621516759501021333666068305110368188455710711413297549872601302503355356456886032376056552390265607403959017476404978636587437409415345170402021257597017203866983873911796908750554691689364079950481518809977551270111944763597747533218060208823558454118685485781101433315505026265728835995013619881273924919692968999328550520223609435579891539518292504453294309462237157364123133099086992636291890102022131866674541541956710627030583209222038497454446797041543190048262867957394992870649865919366414377940854957100784987125338809111137265108612159860506208731704754764147614152939545096761935144656397628549178989882787180590381584939942603080616737858064408949060448077808480738294958350103815739306758829130906359978282304358660622668744996308105818176978423713569481581724802708343001465848859545566720938447367203541577691874717070526606777693648861114485343354369014698520885059071194462410462805839986307427259521852613755243597219006281185482029200322171411675004495359975930004983836162531621397649791101423924261817579033522444659641153096403710723117652933633806119724404728087654334411333394365035445958886714615790389527150204899557298987482998807354666754295957550629439134497534530199120827480533669967477218274078532356045980647261720661682881504808453219934225955597284434446356366750096091266758906388184113651060213150657487548327403465192818109739676237434869851228367533045198648357791625313429923852515546344703650485054579429580884412540792901647004679294343053702234872861256044678283726726340237258458220047876301960812224043961177635833561699430554992384916727665176707488889482063886992104058125620713281029529891999167242506480464512152805255652086617450989627782585803868662267604960010386650111074114334001874238876904956370810665901347504225537116454742180669304189866774953094018624484029834736877511786773901072457862564123929687018005107453525893620751708556796260192440539291041379407970703599815409139809403657165580797881206133384676950187678379620256974907294255811913341252532878799778752292146066965547342804299106729465939502433690239215968354333189486073369150478161433691464348407219762576517961390095767313855095753327328207454738884131923407932811569850925088912209173122016270352296948493463066879996686228328368083241849865648905594569520340164129110486270506079506725388507594849918567177979462379998453086650053066651784890676316658236816075313508430487432077356460501142098633561549411792959544771754961845632098997923387648963430575320012121834131656249208191681964932645442672659661577452587631020621919144543685840495853888755569394856916440607490491029286086191677809926502329641404076614738878935885485037081982119420155566013914940023844085309279204815471213922086438653160074794005708039749749237977786065186430467777936477127832096758345130712444708246305667753907802888152879174497531169314874104514012716011532302843891093509428650600457091719045274719749247779941173264788829441307111918507934770126791281523362845272739414313789273165214139328988756411174451970641698275833856537252351303059745933551842991544384835545620178704954044448649747509431888218330435341456767350224228525235940967850296175887820809869833393440325177184591170325212173115033620916140077536551645588243489264734731078054799599045217378653452471091332595630410679371561782618742985982491864796970432693327927123416123772339717680713088637624904425450839234632565715471668999737169150792199413496265242241358078803665392158184698997430607178343057987410804755057589224237851969082446147058577880814869046244612168630505756280309990279879673743814033853131790231412434683890444800814839266027217431809660391212134294041704731386985897168028266014765299299642323886148771429158578050394035833240806358979852010001342642557743671057583192311090372146516243854915488260778376238305882304806880669575848420699589475317779233399702987378470319291000724947208943212251051302405162559582912302028677853744822465290044451239933283066022900474414283486286455623502367793507793117786886047305848353577158310653363809541767886962166455472217293836490052848092997637883128417222693064705677637342098150716082866119535930874153521443909944032604305997300118712944080906351232173576876905369300897812401623547114515513055847889449386817226916429339936783355296412891401836628020445013533427741444147069569621603985172106217974983678940369286318236529085768788142503977242750049244814123995105760535599049768592440489978198723577823447189822503329636822702158008979104182774432674227826005347781132260138346399511038170794449166649092777457559497567658246694935680039670911528946026653238884228663442314681484696430412532918173120631736087955243675567759127080655494155571891083995897673394940741087474000753988009255072516553967108259538546110364121034943758192426846289711217502179786527361299279857716176825868422364499986213172623975212559013603335973258327524113247354863033926389589120703170787380740184870031841037301279112703398998859933638029970455223711753819071300704193482808073216043894037622720184568733314828530899045686667339712441573270781884421954828424614095559709126135748862086626398175547343972460974042019254917474771862603369801878534971688588057343232560771940780802004370000296740658782242754152867373971693503605942075841037026755968989864689282535649687323252352962747145496197019937444233171139389142763947541169754098801113221420582902935951631932806425649847520923478577253606277743794925297920678860316431706766837866568781821672300923984727851830143689944277848802329773851792535782640823843007398627463175375502796649411419846121316201772752177004024131976825603665919593119541228931664508722966364258156224878495320459753596258688103664504980579857741567873611565627497210925450826306507778917577569400012230509668787303622711492456841429494563608488667751661766542877609040205457889482743708040873217479571470256251379810506555078129319262271025370758672226396811289886092268151016958039702517915101774357128623718129897137372020565578368675736016878093959774956241193261077311078504789232588778068170667735854315678636690329603511625555520644831912396231984895896401152021787789109834541016642784816810270658803590978803440426795047805173503053099442578832750884720749794261506839844135246356819998290842121183087175059635555449603100047294978586107610079049605524487852596804277143049470004280003660379514938982753743280423870980548609081873777625275396739654784861943069508041704503948241706450456077516373386485791063449048936754455365215526638378471036682929833608810541711562596611502680521042977480145153585929504377933858008609087501477257021632037115565863500642680183019138058886104388933435579131378626362850307883724964883093241788517919584932187754081993667535162576997407762811676877303684939845106122164547331782547216836355780932676538102323765690942281533991488107096349166741436385303018444027006346831149152406771356386161543469752276897758189863585712815778920998214112324788089267014535067141938272143097809369481484840456390827874369656741392666558479162175274316788068712502239462669157784573099676535317687210215631303765075698512143213600040545651649975379145874871282396446823135984877249331767957235749403265593940191694007398392490384783616663804475870046047965566926772427552789139645632002942387437492970323726269152437734459289110310188440187909865884434702218313167195536078151968063178708933449253942194190210597214887180142386521383447286598085617613005539734917212118360723056309728952684317324941332693818313740310915520357767822170887105769151329738926737760011882047109213724950920524929020601982176444043321383333639193180100555014216301661475667038197442909056971363612244141580488418497583909223481616508643859620537563600492108922036501918888447542341941614083510703183732694588547043013751075224103492701301937915669918154878180810638442607101478328701904768925945647529047588147324305157420033838388736228214516274926862883778397302054636111999948023350529116020928397889019773742250448528553773368611598141974986093166316949248939487231897900428381251210323820826528263343226076801946468839007271946960129917266408351516108444775006616435894384019047529359184946854527645637718180503703493353700213384537072842887702833461603660477059178239205309833003621141276382090714969175391912954868483134078443619941126899644564581684864849805253672250760324192933988822413334955821468885630033839556597131640038071265281116659068867187739561775282929332552901397129256150388442819897410753778649670573474251485295606241121497872007158805758804005406558245239907016334716369975781994929552818073816480300997875520868591006791044670891702448068713960505385045219446674347123047537316689008007599297361225976269148515775066507977892503277030052659145924579100412471183129848831635864719702244920150481677614297356229707136769591092057599170632677269973720612836470072265363620952871883532020111122010024585412300443437784843867112346588809564516299130949976796830149098608498500644148060751210745270214158041108090183272710669895828636109405207353557400867109838715877623556403665322299859621393894865057079402652365090802083628969680837026366808543830338597144565602250721192701459840626881368349715733138552021887152898770808940272005342584709162123999106209192889068156347810371769908304149929479315402670308738757869274518533473561377730113781423757384112578688102432787794167600366947268102127921789510773436371676020562599309656538852900784322558799565568648513560566373430134041993479093420228191242907264263331478526746834424837557412385397507091855495950902656285875618946199683099783462770765726722780866255199939740646560014176307895728913520641969879813276984114297217172417497349664703432586831885765474476256399047554266437009870409960633470708810993761848586195591071498542429085795778943547496951137757268920363041160852395412280486920630635956578125945902001092435223101026049410534201587391383958928462895860258839373866104916858520790917191804304388157073893057105592022524635027244166088094219263839611159951208389145672509831983025618272465508324546347339635726142350657981562198740193118364223833537997624814959358640097706203745492147216864684658679967324782139002027036197023999348052107220463519448222792993612659236278423315242175757986730509295503349783065894193960823228401277971960299486706366957520657280287310377964082968678187646548264722306166018879504996024772361849641010121114552104941582122770360198642595981106775393683422922212993802673297126426483682253629408544182111176966858811622662527072954970445887001987665515157520946892595197062599245796786009191780018428426784373370902861497407030843106183360405770123656501000032635200436455446679528236410527503369421337563809985734621863116349976620350177779591839946421069250838914278417891451231400603221251484338514208372382517114232157503388026619253991368345637286486217121281483774245468116830442315332199183438153321454977401981212302346324879486766437418361227749160442634792666596931959107137675388326443560693093767891757716276293516024189032589736376427561083233118277006622000593105947302279600342550819283296355225199071874180858322831155595516271708659641529323981709216959284576158511098200035469363466000516510651747306131163765856951883845863293030282826123498725439173869598944008608409444447991051525319894583115149874922461760841309318680470786371111439772106308357993627663946400753676201380080708804985551293188781998661824725307298644794291017637235915674511857544408564352360418832431267617140668623659822858783936455421888416235980039567266064924964349839803512065920395472820521544757968689363976558100472548638519291730735069293618798482010130721606853883976382330517165296322010583127176680654977175466473264432579999261736826251887700416434165955669349342526759356097055636906698507411808968108279173032060574513638947397798322721390171866991459425827033660656304337834393798502556526907937048173365270428576352824572402720824685575020615635007542065160103830339671671335433915308054181001473816082272953143924064097323109851048597162084715733222010920423762049536099328940244250195479116103268164761474829408764567847241057105853402712509514893774057266718810019410644834620094845993600532032312461602736412608399552156852871192481534143012149925429656309440631358509127308276221417275133490535926990254727663677695791897210391041942484120853385542344619275078076631211502650966680423786769828781223847797799190107471583985026584694514950381728113825074585955049536440735929598733656596664418021059554402455763534110173829580140209789048357140480648537670254905543770556758436269511437136255740371985481112840898028948548659396221814630797798732167827599519117712504709205571236770087706229225185788799308556019336904253752124337638350306528305846139560536629962504683038636973052805034138600525070484481240883667120458003826410217296491611882000057261794496506422165880167635538038089824607952265420818601167753960932211031510652188344452574214540132586586802657145334627388649159023848349334254118913162219535067585361017022948855385531602604757835148244719669981147952599921538791780376601572422308652226905098056641215479099320653145570583984640664353045739062754732618756666129667009405765927371872973884078411009558117472138429564807117865967335148526447217827437876086053874783240020570588163376092798314421977695477526245353026578824388032803528751188013785908682031666182209100704564846442368646703829755893021527131754659135614687174430257276432363584778933962726081155639879092269065909348494531632672448703826368340405633676419683289487393925310888870671631051909550451649653751217050313631881036459003598002652231844058011888585461421337283038886057988425712989795029681725440775070105503289424710620380351776985364254314533897377260929954696588435388822426336162733241688377219769872868874133330866228882594042742080917541354352706608117420801592127063652918402088413969079750862127617957052973366756596486691505705112595023985097277513395899088216860942970514166560812981639874987075352519702467417992425900482769114044617363082357486589687937135801398829901729455088709596822578328637994958504992556506075816103418860582265058768912261770582496119089127034564162982294282605685838782899004324331964219013905376793652264555442317655266290898669406614811333305435263167938325488901317177743884889847244621339039003435073896993197888740173159950662696824853999781609421181486736090540498102422051101620435299236443464109421152625279791187456932911981669569730889558704500179647768297559221569554638255043795219647649287454736178754171750308483071461394717768412018563595360398887766077861162849984456031672961310347319641694695898081237261465547831972172661204821331915829736536832370440335518231199777548311957927282101967616410910426860629305220766348779701685860814329447806586644169296727820996765688389186176839509825104822891935955381449448944928086971425020121962407966608540411962922423483107703442492863455311755492256020754546232149077701749058821288690925421713370165151896366326768860402389029194324912396971503609915468394899650418025885120448266481447764598152789269058024719453624754100071266597367025874021316318557125067671020950344915165221771289547912767809151526069706065107521844432713072132572069326029817513001970051102630687561531663877190063293307130203898859293534440203828045116342331824290299591100659160554999089848690847068074649307854701704745656605411759274076534250320946719783839077139678950228001374507112342115009873021634489538673694814943284856689696078827088510356554176538895054803309112542503368901345888155257575484362395581865106973285836807914829823684641536579423029378924195663155260172402580516372904298204180265099276015569636401733645198433448822539362863909070170619319129305633595311708525429489371989444093575020495917659937315336484244772785916423117399651186734329222299642514253219129995217346749671930190213862617928756503947782542780238324801035581105140867664839385489834990260511636979584765134297026797697247064468800833225170520485823436985766001968571992696129979757475627492716967430824373577299830860357992205568902825551725200821532586197177544773569856328373338134515860150383754728982300129821946520491954269307251152794703455260912528900784114442368982792303553662807860705801207397042977159253442701893019713235606309493544634540305736450688435609557905456706044693183673978097460893362418423450728378148234027960972439846195936786695708356726611824548424553487451349783686028736055796581598128288604727261265493990647548747922987636486789906083198776806588874591623733678348855478244556183974224251830192124040148602019423527783358200883421383625913052233189283610939777673941782146205349803931594283423384192630247257016003607151283049483223494674414411486047293440849542924318446898241933096079339205434052292630729175286817687351245266597651883765779338947263539971478998060870944488918166156107826872194814918833700512639144638862960217316850566249674683346984176732600786664966670893301710280921930217617969376274816186092473861153645998500449402528067770303002830015751461106756689741137328215724191181444156871595868264388623229095644012469411594678121151426077575755699566754832537663119336577250879030784414279592835420634482106847998072584672968695579898046132366853781193733968495178097585944415964930354218896623713298816364929638993605484182012092318394324384741175077754285094786628879621497767885879846747949836211509323769529391504797693408922576268287501276765681401300821506871021514652502000207833582479330869475162182151571856475145067657533867318184673943542975409162024637699117649963128640123081093446555030366767688133992824431717743406641426607385669172869083035025115794111924384314333333450420080772596200304341344807288650315238743825833188465723572261314717752043072895577356846376731785740240519469026324575785262973681975252059771742647953258508330303679863086736194579153107873407838982475360522789664953100097405303243929296480696791829219033599577243006301366805877432349100690798948665141985511920233977191356289506065892952073417741091196212445610634329182281942429674081858933585541795155972449641569398609826858603075514731206556515501109139222415448809489796468725762170508095893962273354520695288398116598485928246655381968151046640752826237573645489813852843692309958976811600490232052564078564055482485989298572794077479505975050124108744437722181416819381273131092452237863109786836082635448647135010711207280366929781513194446936923735364102107850861951388767118251819064447657054103447453027739983640461865690277818430047483479103226167155660633474395917182626125820234737353672102171546345892801646583192971429735859281774599928443245436016611200909922843273274990683970127400288867313433117735233702888515515123651820990932756171945159763981440086382376416764609457024106255003555922539590689017433782383297244291621569812210367328385223764636042326196954289589397785205098092814347888866807910580306877289422725430722521565760137600110396388869807807109113875818235158026479123527097321227599178502938613061447593052513989852443361009687915756443330985482102785931896876860660103065740990105331043270298764185298566055417668945743038929877116681318083911675020364343146175831029719518886549222339114545425690208288024275801151253617949274191355731548707750185274063903330480044111551334633792971755651433430706546479805620958074023237213486062279046919831838194444556727035778452732071706114885027730985259708196972437022144928220489112535377675939681118751308476234848720272824705799161447971120662196764253437418095566646973091002280639209107971897570569753611999949203144479461412459433857845324601730593657694287143141245033621969253033698162681058582343620964620162548918075750759173390198282886587371280513845740991437654338115526248913965843949915694634616090555599010053086200940845087525325568654079047203606514748081360672882323206829937104398033559814483951087509053319512418489271924652760283470212055926088213737536617902106244118643125526366744550046119014113416209960848113710535692749441677285058673080140482050945851085737109691140954801858738189595831913184621495936142286447328376519540010663482309649779324687796151224050679965754841491074352838026151082854792893925415164526945813486973374578036705942372396214688672327873911384919037150494387473641168729492002882274992514663792141346753042832896416947880932786798209301373345943273441534347419141511145019311436215825208706334761776605446481610025992709263496129263677773508252653036768435341769326310293164414172940134705431757495127458847320498068096509612960920352882664115441901863763219091881724352097661039549080848670013347667037423344710822686007986006380709368351898006406500715608227555150801563724493578698470608615672891951682283650570590331880756727496671332543528369914141106741550267608621761267692542381516027243643208873300182620303487324024847802783396152283580113791677780891436052203852855830292398240191703185216288072815875219845582882664439629692141043632625388780182033002944510025637740221804185028126959993028460474472103580609158428696457813954969050678770898770381734209512173022295289515392855888642184906425634963918952813020223307107709697884820538967427542655635881626193818645703396206052105071296413064976105780232755660006974961629898179461283921910969130829376116193225069280746681693004004944115847549946151126532218593594322475021476205940138446961815862948684559126213523567015306575557872026073788953359703780115710709376952771871893605021363344503264072375968849161691118520252263767653025323858188137102142233966930858926361164612354441257193507702208030058051044886607518412840753879573007014816144637606272842608035374594641381353125355077016485556506937886430769470948941729362246527733263990041480813252223272621759664922183434580585118063948490599978455023955907454922347608440683622782120527380405321223532525488553294724794482260278661938444810513765504552907024111845224457836525390700120508529448689748734316250997052214003666259857428140037186410991295572114565873595388509070340619357843396108201720606160767364591660741333080015406123830957070115853584540942578921352813237553841872556742129768794111892141557996502251183756487328232599848846201321224453308794917400810920892362520853562403862397753638248231448214771683102910237227242452640441728720401606061761533915662651415735494088859535014603649052524676367490121671843313690515995428235828290247033255929423891489460498420126801747990524201241791578930751325039855486998028720246732825050384145979030194924149194233390040642400682011041599566443743252101802282671075512008779368684275368543121378150449152385387933609715542276001569933186462623233339041912894101687186610331655880739146315309710588918973288114401666485855797109370514895676332728723490126156928143158785013766980707182387776228732027527001446283278673053412817762852803558389807437348881965663190396368891366143535018573208649225858313632394232892857355157915140269010206259639220892405854033521391909918885652934963218548820337658530971543882189460051557127153106926800465196447432307250385708019069322995570743608150590178369468642096750703706733183488326151557740311895580462996026850858109933706725781609384181591832079459683191978253664269111847926267900745368700184388490828693478484922218901915204752775293517028355874288669393205672858206687652390501407244626179715119541791462207945453259385927664967532979650293721760855128156338940551793433211661393765370907453826850176753060716214485234605663380768566728533518569715910984750590842894114343889317526505457383447389823302093244478196753885611618202874121484541078066092740918262180952956890616388612570510421167033544660656905384657484208750474191484917784463546110897613564538333478696189021346499095297965441879449789329770019661016109647670082365860929032122912766094691829336874113045936732162333306435293953701466826234684169008593743411857806911990853956766355582495368297076395775739259739544027170108544722412249053647998550961240622628871755530217011594380211901607821593636168027172580194682249718839264845970429053293529378712659568102818333009269944976148810243722523614144210974678773691762856828361452222175270833049514180148213691533042983439729476195057973073806321975566898617124684864481296026484531329668745366048558738204541381698868888116115233134238597857235126166722976969132675365686020207031237399060730530186189483101217983722859009906010649685361896215112541732661821928180064064570838785273365845529757031913678566612235029730043696849810450842382981495209263430265567281097577114253873650686765850298549024852893236899600497108272222023070631668001551277189507711356948275930026694264449118968598332805462066091822979432568791154031981877525598022492548587177773734988167528006749715606666242083345990018988033847355391376335345584212707311761120821713918972135147603067378546526257736707574148724855017942088838822680946291628104672292840114694179155310265562788988541208212124315330692785933305956273585302819309223657185822692567873854185863503504105157081901433662891214631061489217050216805787854362491560936608040719551978668792227037586584274105579756089079467449605303856871248965252878203162014862516010538224622630825550731563330839788180028270985734969305126566802341403370982120664513670825364928009152109242036964702999981734361151978916562751630440582934800965507382849659848463946151835258214146622013806653000355726871445259983448347738759584786992200447497403890535063369971812329671840860810751452471132087029353005347957567551250344665586134949845402995061066173282714948422363790330093141765653132027012686405144887604386035889857790070469961393991155261491613188126015083724322890986044831049992391331614089875640235334278355613822869153313891500048218380311999018434589072563290808042460813164942173922609320598091778365847031970620415090069273818343240597112446898158779170043784753943301105798814643559784525660341103138405169587525205528097041205097914342444844874408299879600726744925941830997452393763681572449696054409509116214943743102986604812641270113649289186183771772568187872473903638827099572365391835906752020613771766938080558755146031601581482407911955028736885968852954124419596089371477449816231602251104771719717581563449000413590246390606915653180263867098490045066953738379911079889450400300969452918579465776685521394837165858667729977916429095717564294645058145479775213871930411972393239208148783436227292437001265218956956958500590565902697903407246407479651375415398774755812657954307092497563497422177458652709142895679073693341890724053965217580480610470233860685640089285888415850902507497144708565684341882133615258633930324405408334608307441834566783067616025584817355056837694792668276132848419675861434333570518520778080229036145564689425169820345994945262483523476953576012270232879363336942278917855277260890171248614316022574015710569800257360750718864586519254771864284583453220843343264699498819700862171500972639309223071365399012187773782522105607856466791573549348736092770701744502573367970716473813122805868694466302412358730893953489883887907545164194838197296295003678627259582308227602843446317591611743639145195050749398247835272971990040857773546344372246165183109370478664009578974675911853637937932619333168718774843859789638975775534458164994793776620309553977666382094575659954898705742922820436690885570986560345754003541056858659711702300711946095353091294093119988056835445296148842065528997461908893260176937365884188125961461976789151912837415412377879192511002789195433631632071242070781605844896445439810501342667035512854574991251883727311913893374514039445707271266643035691181560795838850812607535149771460542994326889691465492934185978950216466820234521911866249392325961628951184573576568900085475016071522126740517675892720109289420621108003472402960088041681597445179057508153969949909077417645109952327427230580130355602059382107867280149591385806217515608386601581951342626052471162180778921287840920709016994445423928856466040408518132295324571901755805467659010039917053308389596150767752130810731934239492652272767766243922134341357306207662696384202667611533419008250537140206515142899885728731079171087514962481274570300887874826683818808319714843654794628488229748501632970018820010206850344454222957272726692793712939849098869713872151839208670504962367038025543078671358727244163042603193090050919405304849762759026563615870674398210734357589362822243343145802625405098010716517040083582057026271194346519406596894497436079407924781163256452149447974646777746548120548988197617184809703867979337557451555857249202902887008008019788392988242903887891372635978473904747670802603611908541300558543841901860375731786637142630056632419233852489218076463183121892740040190349719242111653212904179382060127301364392586955510997984148704430914686121604921535679016416930808777185932677973258451413977311550338490480334551711612127767482074971477774326542194087223883146644259802144756029393455684537748320701733999271117382984656173514992432703158202468999694220672949521228286848675161870190489028871246835369664308320698877707090375035408457191499598080946998210801221153214502407475690964350256009240826582035698132617444295701345091863339906123581342642699815601380054621913324587424999496538628815382313979533827484756034666409652925384549394704159434826690065102965821397782572483863093390007076523593515849481186360187176690632452553231260645888053942693944623693916086118597453542853030718025748177443041625398241198386862298859096472790405499853598663643056937455386817637434243302943946012344308798058438673223621814595550724130173831253151740042737415192781094374336001094698516362585533973361576654851997584454676778889436995727586409785973559131390042598861521707994109144299156719976927920967687756692878015914001662621704911967114755806723812825251232549456921882109761908878204049742411612012633579059585997919666048807999152855174223747375977923504404909161831916898797529718245468309180914364763807980930792123388506400914979998554803087908046015040292698434504488471100051626265773348268161765937884673510991925045854926121510766901067817000829589502697927962614892210949232726916176670888185628829175719174688036775821834803462000733739963948798173402683734456093830100443663080386028414390691192907021766184789916230554847136046680162091231384486322841487743833644309973441836175476661219737492165182819008421876966003726873363139422903249121120143040650738609630424384650539265331746385957312677145547696667812027526581446972319169391543280616650728412283004817572376990969966479482112881325261794935174350906967240984486905664611608621233940100264516090617340743586098640674848602370951620981686013662541679659515786553348694030198495462880092996412931227720868750607276924169157701587084544295281988713277676587364911488637219617950477866835186317519610714138481001959903183158454718845347211459882514941301807143061890664060394906486346358090410754718922971489372458186482958443225577613071844493031123243340255129481685888952873354876218770760723651088706403586957612876138557233011502374288206639216218442338696058352081417348318163966986130389005952867052304872977682766869709362266748793451269209454245306229212933848158670190186449133144547781620563065222266816482461015825626844599950135758501008677900327164300444745009464460262067360858631188569421672062588278967431304898956571543872442238442388528717493947893442869984924933585232517246112813215188890928879895477169005228727160826321076196917347418146803833671395545122982899048130187533659153965884844708342315556877799198756588497519839834344110435286634044274385616683638620990549017141467993602826185149159354493927689638066377473650441338178339445413070196227067794066854393051828391896058778244467818278332672942559912484172440840429729625570867499574140365151576528289606518287554454037913117736592276777771650339327747607459201222602039702556511167923226914073987983571034518945998712175757018787575481282157729287383083750832100658897339748456038530868839621800482076787971320766993530189318402816768746644898623793180610410313809580615349190468841011006092758723885736382092613042454704068662774685082391712356335119101125956987737633612546213802678806703855143275720191338863509253826910328562921869021427423244011397667773299262022482076315276294417918107740787492988540476459023732774785871646185689770649838956484473128468101300611043486906266944915949299965223606141360131502687074343891196963277471395024895222360790577103993164630252169895070679091341020778618949935241926459374395498056949353692337206814638931087428419212893971847362083221072990125525694917241556930953214075638792352047773731647467006269320180662744788235546589504781401991623365791056425670745755951054805592090169798579619850581591788761995151493686514527538478593363187667825580618204197113168637822541023247080020833939200398314994525050848013392623552478051030058936067470217556648772864405904748387224214242852435782745806223031207390510288449288238776890585206973754477064671522926207468798076479194014229425954270306789900786379460722355317471924827519681448846341442881592288478146730658124615398559022658138001773252853148554572274265075879916046253232829684648223241866896921313384671124984147121583348231913668376854594120662962399790701756222569826844168621914001660290669864615683891067369638921649570452960097047818962199487573874847151087783252757644247791281161650320647770036254612225863527848350239222832647818351799604613974014536333126499647312622567988737279034173950870179811562679633471777565347388343328609914192888597580371941878533603353467778021653884123179229786349979360641960779824078129321210112427526928260644665906713746590046964122720825434975322431158743257998574549149595221165916499162082169995723443148229200786211068703024478844368766407817122522427992423605866583212341293316746134807602682708361780408979773721200394368635330254414427555514404444940249958913351784806797875234932687034511297800272319667810656997709647926186570613112707345669933660283956903602563574825697833130535522117774043927766823086476327241238671659392127171890057574099518445499228300750758476659043613436343400025115176440564340193304447191933620831505046729188011420852873887220139026105444569781456811204953658157377524183181936095568401602187482950928300451503642204147248830900635691242770816299763213471877259621847058973472550422026174969943928955945670994034847808798551410949830381820297063859218154129657172608668430936982026723192780131884002308440896364327413356998949115746411100558680461387743561073791059181529370444056522907032885102497771404106995611373825324979358986208685431449582882656980824797380438973660651974667345471050468408821096812093978417432377544267972320676560097699409652683976579269390862960793665400421073937491530626590988645062083302071769969412349755490383769361864436708168081738487578318193730521729793385734163647879912699809595045361005660767991903391507884247863542029817612041969252034372487991521018103928877195156414432415560834968652564737704801968157253935130499859874941016849644941219748394755453843821266346808489378790721127070081425346863859120065121035486925983521851817183034105485720745542049868253823270555942094111716058418674156009215889764148821572398211494449491763570726830879777191974538266305367658783665685612339273903838342628621583468855013467754812557710408682270402489184721138527772266107203468351182533092946196088132452088104794212473031289881051105198479030013873760412404705911748203663459818112435963576191317468494829279916098854554510116489190647357287032748967674359713813445982969131506407107354148979217965896523368687656403264144779255759111628245764277869808701725501540593618505266609932975416652444520520350798823552472260008307891062007068593556048034314063486279245261438707867242967956191647259655595822283749733575621512879853574227930491087967783336374322747971617697195047521125042415737017575597064722806147835414099942469942788325625614836005504716327444640720106284662844296686463965662021437340553814757524598737047762164519419126799521102753345843910438102558501994894877264972186665296368141347325421481468941412577043632378433806254967779849722769497972573649256222958574218409848063644673273675892535438660352828923209799774851436329918142719697404548120207267223087745958709883740467807631999536782208868180321341937727359679150534254090364211059041956227801872275122190085315300631528126590834563576702311155239139682661446374671215080395559626597365160802391340470015744674602679098391142151150497124138854190228382083879757887699945922374906932954777246010275553869585573698843376094150101817295819400831510702805701797599535060432631295023084680968288603412487599595243112518825593315992840643357045099941328366818702274729656724225918288675044294515910108556840802604679158523404597383840129264749941335147056750549561884969128594494149568081353806223196709732561508011324179559612497022401830059323825679081436203055040278490376384672963891317304073738224392371322878544962597463727706435758892358823405447728977814464104420703876712773105647680202978171169293112879642759529660788165217315974465325188923665128399820924275530543380885978158573761868225820403694915046672680315589693627107465614929179471797208688752562984513588412768714904175228227965418458759366815742592000149644628365764494321227156266180910742894308400413502768793906162145102448037062385023758671413815285054637467417677948116901262496716030280075151361642980806187906830180238434210602016462646768158016924058103202606101390875932255936192034349495665487150918039185323023460802544499139392672152391842688976636490598380671632034173946276693309442609837456010173525808258147827272904102302117549104490618395485878774647816943439660814488244364665669571427298974868836538141882545877860167178088036090072060845080155053381223231027324996182672430477325982641102249792725259722056752885622740081672570230700787705206143924489693647320158741838969209731856337933720907693596161140608019036822246902343716882435046617744158089024813353523893086600948213625731766204044737480271442116909414126945939474629254015982221894558056731860550001879449726261327629836494405509649629210481639826439615636855925184301900167124916852481254775484516435100261058118237149362652924688498397022389478455388231481649977444356524709633274089468926288631885138984256075076791740282685078061269972501206089465368621607886469690518495519131114060062282598530972257216119693091752325056701325081424758159715500644223838931238611971849987328586748159330149659693552469737512343669337058841348399667957329261475287144185800714307760229291493036188252840174132778655198964241047928115235051526305122215702567240099241460456739252052777434616813726613235005722231713624996120322746505632833083514602474144114488478339534446349065556332031379199997114196287210768021530272165009028206855735581180792240785274583091208756584692154389190756181177834102737667897102954750966138228996976446718460571399688213729121321184740566183783829580687557443899516078792336556841558336503362516440158000305324774452108860791491453794021226758681193461695847389369133300704604984147899633847310011515407885910919619245165404640540095115234095887732099776808644741918851641422441969394980115551478014064708892154106094243844193047856184650907541512766131328812625730722867778082518956381508724030451157775932448346825427155970351342213498842939760008438367851566623133656335803394269277203110951075590653190800823780391089698378577793607134889239070445860520942214959432249940695281255823305838245235598881802425965541321457385230938292137666564092879973994284745836627321426486562014981848648066018056241717567419811455984936910949967008426114897211639862972944422730629573439437184524666925505682158271216970313402535894062449310131237350808148637385070701055488721967709188130546025106863927403403027842514728430847548704389674984525137981584235348918236010434062702713325432705474162775062624739307814137565353473586493842918361404970089338818314386619614300277239774237962319044088081797041493348343753692512958601953904506620354865798438525828184977885010275938782154512584533530037972547231448030324434509520673164796819235166908104108799139253332073614430884631481750497048924461484847353420519227129233500833555380362570569615123889846232200955942238802505806447909321815498254474317873450718108652586296839823515583697995872558875568126948129628503694765232209141880746332874293551454949536741507199928379792159035780337616342031685793750994173549114719724831555314471088325215738147916875563982385719226625948612857690966548281015540177267615477465543504956496378801135288730661618807964661234759052852009466412179872548678207370416706570112762424335204664369513748306530683081769248965820002285428862113708538858558406129114005560274383049951196315534228455229576543312488625862311192341578424495789561684791520487563084925065926953314067476796133804055060460080354059104166290438559930290607702711121898189430105632662991954353691497097639205936900914300852064221048790512866189406004841749030802449070793132184766752450314782835607254129338754707391878228237414724412888496678424862087782040894299244373053980469706946652793942002959132343154494838481592279938926672338913515966501046666806736824568801675054046291551427637018386037721000039034417427299245316253305383441856901764987619262047479365379456747034466249132788669913534490951452519957596267361034209810084686588190173328727920649632169556929447516448503235070112079662904248417029256152842928830718881793722937316604266795804294202868111611153046066862821109381578061028780396025087276090515252226697827195154812802138754054139449852985358028988909277835327396598255685762458981668847722675976632680773576288169563813906066166026508485680825362336376028560947036290123346220655237217756493766045244642395519253041811949124010815019998399237752334622946629185085501367220743499551008760225040081647027079870960674219746073308115809818481802818375521439210791667746206969770863400291337883343975111467850099224890162466163876574548752205861987024384038076798960850580103223935050686415330993553692866773127716634753293994228628559192690082732243076000112137827242097770360754341232375195630452938526476348208668906344561098402560375857880041491246786356036808122097745770212979898147174654930312005955631296645951964937548797060713814923176716757035129806657604685940647124210113057511263058416544662580780727827006107342840279679442037406835517624530718871090971569265280905774380462719399246397867198993583228615918066272029419010455642140840018578100152948865232380529075754062064935973178666445309974533709952956366672164358805122021158097307061739373455543719987737725601267797982391490938879919088408546403635635272829123270421244933864693823516752979169652507544806779012900806695937491672306765522987836864946234764845237499085498567924069372599181092624130832630689732198960485776251629485100268767763981670817987539598793550055790250916144303401108665441779860727002784266547337849928174278614275933463759029184092700523315690462578858194543286131368426181245229357138595864993328555840715712339909962529763920364008675796235314673322693795708172246875442651863387713315912099719470231920073119977325869825526881048394531683618762884573881971464131843188917718939953273718480749589820902218919707459821511774415898130431387009232344217506004754086457442163742634033442978091858130965204475954827378146413465289894075762668360691850526585261919832312125437485976925691906561820290456043123277769712609366781228323508719576063080811040041542306065053128716022147467499310905935949294743324556286324501218504942363333913662419017450071794988193310573972699216930128507497388348672877329902386164081885795396532314325527214454896263562502223406605544264467776627212096565123962733238197510669100054055247070823422584315461489228234098584214643594290139934194499544644749756430893995756022222195391631941063587936898386355936028445314991433165990144411398706403157615974011336874501870613133990400300043345057790159995016446542680503301027540143959694293953965176708359265668988314921369428227209967349148220809031610082328308105575945348200545342081584286780893362355076148177137227816875456005644011721795814054306087052493706247859122080501834064884748806880097715109520457382964649213896922636133467763263517877301911567041175246391682273751334784292779557531173288330477129681144828176330703338690592960753568768856505554871849138018276434090688966276279118192391774541957686182621992564720351621959070076096648730593386183747596371425464758436466414387116261653523600820240227579769978756397810110486387438501504118671402752823516132692191354972512676236899039286483685724738970779681482929657637238717086137733010307959108259725949888446879370385884238938803214506029616492368003382937237945539415189650848770522614134082925180056926766753451863816886984144509066378401282672595520280856148482247747449718032052072432162872933678316601231308920189638013764020763615242463555285625414383181573885772732768100295447706236888837484255123787540575789542516633125353594186134706056519001439196479116336672550961132901370985456870083651672765445562030668138422843450226478608346406038553594850678544992116529523795097366892903392046480607519477793862320083318087199738225103098682745428910851004418825655549479358003357770681033217727102554868067179594955889379851907243317129690720420428121132098168107382591116340601286224185183878372877526564521052203678208039132068671026019556323115520142139614717195024809670204761856662527218304136389000388232811036526884862417548987601174322924359864553338533586520501061335042715501159620324990114758251534385387530906828808597704351905270231506244494652631005968992141739416736554084350305246314071975161259140335725104192073755608663123827386209509046849591320576813241828947698576248897301354591226332845846876818450479949625121974684076956125625762806713419760187842829344969546458411854580472760272338225470636448030975917708603484463297369932105332023926484125279433326175947665669182970901179504425538440065951016497177831791742569420218086419956932434020966979826033824913126811861464758655293266592242779314621670514291596012745354346431129387626452330507118720629383899648575893649469884583672836071481238647904808159259836807378985036159210842697985143969704163435202257463687698653013883628040260045431620349018007174247618002873658064916635805489931618654611608471178834671556547002550060625683553812338653721954994469452369323990209670513438242145025273873356134988065950814204092638295410192661770177274167797867231332369560991741278910793454716300251196522774211591400669254062932458398946173288263109874781942470281655808164662505576255608099586880421912813721344651449189296250155964154124723194055270876596655008905620241953519850059304074179360406026809308982558298270786427673846980106212807653081884896913658316432562041224726349233851058121323964387457223023307652510071517125239195917694654657808265076128095344226829622208513948535616938994821806438292031254750973144943552493017603735976842030758713887434582385951852925134742941841580233280628933338109890638776009531620067325439048594969811604640507661940440054970733011158405679572505148497554550001971860731181778420544923569454409072286890058666198913750599879300020613197536876608975744733047197299556619719726983004649572477186035555852547735364502759912097895395573885701107080255281820528353718691038148512610599283709322325503060184892462255151833121521923657917806728059660518356965228035098951727910786273090484962709903449889329164166865233904449820919952819561123245601803396175595828268240821361870796916020052944850155592702377736211799426993752420521365075060225657223878144693516352803532888235297947728507374665704653745984362528054058444686636602496233653140684467123497874046639193558482942930094199539774603663620731739046108184373186420410735994627897083045922121449326810726628497232142275200070506249256754808632944172190848519664058123581560043648806158690295566544609447777632692328032262294413913880758893426365608850574475351733297555634092127353182868402952577774785340037457245347809184923994659072830585102159172827943368671591994051554917221854870297742453789630525115922961986185066314154374265760567314361527418408696956438171912913499703220465872097184452952436984030341632112523841480601977914117876502419452063604087902474083325917656288821447257091030433372091639676409585395275899543606718155800410427393026938501246612393953166981958848907605144393522525031319635821288239380162764660785922049111973354654613793454584387906370271652482083563318453986358592384646511511058579408505514544555898096431827479948374136850974473640832271064719200140162024527850786806107631344179878292687240281324765426536203283414624227695890895994884897167485983346893967393974217179018385749850731659614767094979328957854825778261129263274016367927732802918983593729769067163094764402232550199873657532104973337611756189633738937077855323756722579020210432200204013854224542264937135026219305714047437870501786423951063526346064252411505915092188965976035708488721724877151906863916298482332090118853018207534374736452874003340533182538354479324479946403816019226417377556551034503985147553045657635720182782951003776617723680133008998835740175863947811076694120044129355401141076581565450313390514338848202798329897362167767456768606768961391475328265471641806339406675542004194177119035044901596738401221283683107127252076564487212684986499260661451870548389657369214697717630547495919085136613646622038981387253201511814905405117952054398497450770890333605376104372182752275567961866310785968873911743284716688360994915203832899025621273954940174193778533332934306032285283213574168620252538224360979405697945201691576815383667718326993418269895129362238488078930127241597506771369531708958626699554516877135250219089426282460580539610121956866820093784667406958955856201656534465837934993082758411096496928873169263738500406506811706317282384267625824778655857339828318142889463285822355148758461181764327902034890301593387310243412938446011780858964671772336385085961618613776043770230205006600454559150698674065091945053036116438718387639859849399596377097344336279497972753871223816745052372799593436887010244293761512426753111291866946136048184003404998014179531496075343492535221090958494119641304207048756577008499810770681088239764407355715066583560785256290497157193907307023118608832207968997010882064399847102505578042930052544328128113154725537416731679954040113911701768846480248632662454829827284222318767127341195664465190436500783708570076545070910169261103377029581130110438574512370297789449222401329401970691545726094114872955169778408657666189192591136597338698302892953519335952337933628202733734772394193767425430841348760137411130590537296563317913645800312767130575288432503383786969202472810201276726346568833477316186915065664218269605787569882669474425469947369316842814724804126836644355097870630346114302730518010247750958947497034835888711051390422760223297188756491475796601548761991108604398565710706600250889450856431922377673603771262279360685976659382435367015549744589817296994177462129391959945327440145488873524465528121910012429914548590530338598805834206130377975784431695207856784763626832979691216323323135092094827148409415175634028325481417545833856875373077890205242659229428755660931677517765019104979557039208113420510552416831011712750110243133039700998849320900259865552050170771523086030602073144825008752740124339730069205117069702973685506826917306026403002517383297310041839748466770507260312948077881445437402341620807881887139911343647076767995614644765248394417616469383410590055639744291905874001286228068064378448424594040063500648274153186195233948072294706610600725918634556138454433764472917063601097361393743735747599381752155449155059460134772190228836149635387338702552971839859549810739076024207713126883116368934198809504915152042540665111588539223882796848058034241105737216839855438385564469297065057821476480465470976216315700475003927516814078460701262432042493298851924382378807487143055122012260031703982446170276078176929730384794167133294626603062194700227461663021498777503373604444124653951454033098417556423235284448591560097086285948714595731329787266993522411137887003894687893336561314477766993802636256279388508170158642611129465163499836113733583845621982057430334532511382110664404624674288446377514067038525300731881178285787532847777130986508127475620592639425002388982420755456089178954980874813001750305483734880552654308876307476589515424504707632814266249672016428085321018138099834689182075006464719739178780370743633671019732641665055442231054975359347545869043053373434437983433929301053471575769506527917891265529854948561626057538220375554214452730153667783041125448841285911372119415101830920196520160507299915901634015615751162316175139850597402366106701301945048905849890698700018651576121214680792023173063074229757409513269596076807733152895819161798049010932263656640710477327332017888018709626223125660168294309805304614871957055150969317369375218743155701779936809352592916491948378102031248690472054227357035893653758895646805205563241361313012430602155824734087881309645621801232458180707386167319086696425787495942084550657018490624416425857504847085576461270560607855910104498283967194060869211468301744972219444624221655567190905198369662488021978880890374619335512140970949505226388729110219894718646446601037733703631371990671433582836178738070108599781939154503222917576021664395592366239268902496127483425227620487151069347415334191379574333087509226642792479470812011605186276464195046930705542380451524525121080329598158375899403203343784067031505072972710734749938860410092938157223210119428955362518964891850325693226990117701296907142623527849245380116666770743649836737156533615206409295864460100500815898563363859024076257629838749001035953361540537631011316083930341388568723228871278128556002215312382192738589852933837351173557787570481912588660236724326617996159101901608732470803334725178310154970882943164253689127663010437576803578059320371269303418866653146590112946569923465541739637184095482625862071155660739022677414407470661315954048867343345006003065918021535447788050869117512662681124729257043893111864749809264291708110959458992758847223460956050620515166154522493513167587391295617734097837780962860583633187528369656816620570867593564372997526915171045501669810052416828059196096460871467632837453377076502594622881232997009671215439941162843674170543795089668144494941201051082782996145134233955933103270230951209543205331878580463949353805642548494687133211545965718670886040257582443357582709861065070112997978759663779999032357227191577758383434778400963657339626087667471226750173578547497119655132361551483823240715950959930130647361933544200067521202668617947891619016650974761267783612511200530761784684031610409621293539365510952078883564780480734995547060335148458988836807006604761705175101302687038844434330857193563030687709880598272954592649226499787259413950302300801935796415185415388753212382652760244249582763354941948985522222263312037829274354332092037752648435621415643319709038333459649288916574158443851969882937666140256885879928819519119095418061908189861449598199965006976360134115405691961342062863706252231589242306096536356333613451998839171968738424079528690369701101816948885828614825828520722076615902091358526049814482845923175069006587032300681609220732474255480028832947583576441420396190348921972359955684957686092184878375706114114521298652338128448912222254931663121349616666661217311285010792837138860658099365096441856897781841236524266413027484578145604982419817430707941777104180024791787108116462176389861657845538285661712229914651957849680839346509149144976877798832322866054934070222906192756359605969884057272703461302191913707185832470473621842482631821523549311541219099331287626560675979835067049787552280082082042173533594330896707374710932005314108469650773676248928409423872135871700122110296704605599559864661998687208791750855982064716046474297138817810695058908468212840983750171193566110890896779733977131430310566199379707544027510955655304345105144195153095655035453460412566484675587458205903129104167455282709701656282408972257926341758205129567510801855175041192682394293092016510998927697274547017104618512658346643547765511638785675144906985939837129863908485041977796413973221049086093686917446441813180935718890428559261880790983289298180390091584599941451203000978428704354976533431833818945229629841686211466888240910230182448628292741892642459259077117375694931156169182035537395134855323342895514648642965238866511083714872778158483445844846395676543136700461559356280910713142736282473661674269854519384395604539497805257550170416811190724239665245231777061531020951044009745395693453499282776257145293314060312651963110216378324806264671189674080586318889508292958041013932943446442199216222722816017887134420410803372856757414806598168504830070983317805504204728457452301741131813043961111558461936999923818587380409379838478552685843037211839261084583501576149718359145979435071535371313506626737810037480886341446222216838014709165939616836498932404089324879566891760977069647833556774456244556652509409673413735873485807828309703592276781951365495955767390242332811432320483103694679478799940622973215317761914957595146678878323902213224593452248215942500758437884883937700976073391504789231354949023441336003473853171323825149002391157199072567468942374105928781453038060366752474100784046775994483749574591338625866124965338833804531956810196629951136648683813250192697003453260320704234203965657577632205760727167350284818373209852797064470700427590061956946975866230135824097956373246209579789263985312965372653679422431074753968084909216291452035291416058385228593727700543300882536789079286104308121538868221975891069578986275789346905185082203194332196808249135398628001367460990867359767131713586757315873921171082324433656573948801881067031666259378286401645232955149108717965216976968865920551285461507421278854889147681712911874909917454595533506840813236111617099903452149715464138738763293931445778878652214114909446914907052972601719039288717346272830495654280599598690749589408529595239681064764120630269130338071516183269658868819508118250927801738133801540969168591430595964595568583015746235495702966686703578934814883818624666022232817306158591368442017549486621359807981550248226067523405251010358690760555565137296442006147482538785402151238903926449439227611179368281189669683066900388234497770279581893555248329764728413795871872685329195802434641187708314731412458217412550887894870714162653905929254060694929422841280063293054881360173807026320799004213920231772702983172008330653934970586013290222427484666749030265537851421405206475928726265706197971280830487888582453986733475743747353253756938847892951239716459272361648808609126883345600051253536374040449687833300159086028167922767570508407606857358526572457526310992762363662063493941621205327766383658967951225224347129483247729108362504097878800782643006378335122174210952890565669616071039739406547024322460459936519955220820059941991839803032458052664249186328302318875183675707937668666886218490300185502125477028153079091125663604536625205759178279877402552727294592182986587656601444365397732581680308167627903797194682725999763660396725501924601285845844477117736302309356410109575483908690318757432567129308049810330344050902819946303050221575794778325838075205709542321770934257864383761657790987936998478817596237199864542036120458478506553816687183807697641184804632075375394898808019133199315799862665025734826497056257114473564963290019488572245099984289066716249141218621658217220417221344900879849474292903876242919682333437309641035291124094745554429344946224896158588147564917214858529517891339320927601054956064195587390882389051222859020344800219111722645045531876426203107354006036663843712451933947158962260434890313741695163675292813370404973635682399294347499465550466049573144448942494913462680437413489526734040900798709743860918117556646913221206889058661753076153318128778149975564986820216515506753329658815908843390453609686029383820465034780084055121719780278394883402641558141525573616642446426867231295145362505441351462056931369964906802874401976284328380134885501883009536869354835217552617753453844407825446879004438646971855618001625067936024396462268882511978481120957913544765089300945431530833129168994304007064812464053852708774673463610203071771929000821282720900976941387898039749438357093936652241314124220300315008034050650765673674826817716030014915196096768841177532919260809498040382716431176038519318765497630524996846805754674310604250810460975730809149626964332271956577422038633874352401769944480946566050354881513216423094573734818115900537880329981094486729290343392146816367439948077764125461169330624098704894040590200924816657336404549154700201999866188415515566064407873289953566747502654312105524203134364578876997792498739580160001187871225051707414402496872648442579174576294103711509159766061254806846688702662888330325839510325572955168163191246910831515266516517773392360388391863340118349774848718018077371394923505211843738401671610239384833804500222293029020392886862191628177642552354053912337995470954633292414312461194220954198951339423662212595607372099368228868410484377721047576066636437139555053036630124496740919314775830792738752716745765945517748746084361976827693762494169654284650210709559908819277582567222717870886599021101029170525581368902679051905220547631029539914731677752236620016615517161087161057928506461222412781460578084738503833526233676415676554267240873726041724645912260944852704593849170492953158569263448647816079270871674655784974603109175419686705707652394202591488519755465919103802253845633069318959507634079976276561333767300871830928713296323693438561916130412033677334626274679192682416307915837429045661848378210567418210617270644364609212193729210561475864041019141767581185523204655905476923123295010656860183825345633928542468251509141020228687501094665764388120038496076026085426822947791505221196320854142389821491863607988029120662120131254694229899985565421763182682724121206629062025791524342193945297925532980317564371424196364789639669316391900488111182788295695909751150699605481259586821981007288300600068722389366151249812870987573223574384703868975221693989911046043188779688680174900831384368768070286206548926761717407074935244865298934885498534847993810039200778981780974153498465828941012659006084406219852132488844439613695808773689390536375461345248052296317726297716917627220351343268141793785480918587348644431187654777949716457831301795133745223172180404124005683932194984320660568610827842170676012554168452756135256078520338136552245875766478225771740736122025810044807814629846477579244428910456707550022870093824680402081405176073056388243341687287201842873955548572521410452323398054028789466432574777300556140026931367638614832922666752777386139792185943493431347903470408271750906092150775973199667648166054711873085868539643279987237120950774069369663896059527540442354311080873837458342993607185760579413008540572259196775035113729528038256738111805312440413696663630509491641053469921892623207494754972235265928996750564637157731083041250201207092695396902173584556622239910082008621611978875903636668745715957806299652951131247520432276080961386862558605848663716818221165988542181300854592311122206417604456520966821910326862465221382753409522693624853296164876725594740867464044547708258919332868879695066609354915283066815044317236869523783188234458122120175067840105387299568431351171737445819892312564916775898740287581051628546028934191074094602694592455121201098078650061367253372138579493884385403149349702181886765121378741578063295743856365933857886768693698162617217721433019603180048111737595529040226782685829603320643166522724780343109524019953294795047403223436827856922067946804365184707629359901766410764296988808033640403029562538245109307764605890763828460752085652323049376419597286764399889768414227528749469723061126797257932538601092002693034136561962329612817812549987077324296009497759712326546797876850709770836036453490924566695888264739196114795285579716829073142517521757625292412078737404175594147141079674239139420688749321428566081408341952790371182513222545617230872687434005614354152284249843960455533838720019857563859655879106205948763213048636709849386483511711826031488195203399684609208821192411528118351188500780801659691506267713208664028981600624473334063417458748871196499274923623042621092610485939322474159173044158612953360214170763950567094467348186462616950193309549082306387161301191439572171506361020838561438951422892532763323911389983936809626340012242248068236269723408358065251804128695466742178652421799784138415045340739415392929303994389432220924720664845919203744081284070279501706600718864597110369780978679134743431074502832076209498845568626951181192546871052897115203508353789899151410679692757847705833697242654336829196527777116114316112833919547196647064851350574207830794472462693788015944487076598757442783793287623648220262642064142238878143741540451365221011963609134424010433734709870555879858156741065517455192819844794194705832903135750235927586685505693445218207173973487417252211086714902510395687152384139936836704489913447520815930138319829049071799602335935453880656667381040211695107874883802539787505270336811965635562328491239863796906307843578869098403302885358019230472542610583339410111008713834488350173194019560990682167888159589438390182440961181502094726805721813606226852103611111190519079773081497341508587060367812084660581160484149481102522424797690775334444545361051015698158498405812680781688536515699378165387932322036544429348389943427904412257130208678858629463103343349811518750346941374610679174924087907861615605939293927807341623867905451523379031428078976394455732917950597053949961291536207629810699212763217768109448640519318355676276957328700667867836601994666468474205817555656778002871012243588369217339278246879292780390370478385339535332249333559193546656981144472464603225087699302101506834367285696805109346048506034433621231711544575716651552510146735361661183789012044400374394938171755504095411173367649215508870562572837494221562704158657762087797298122676645913194341057622882810100143607869846700487297722668739984499781590542638254593886210936531689724352797987287641900700743120329754766390286162931922311753522722312850762240540132308532438777338614055039377232545086378883460440109217284700808803420077623866333843375689235659276207266195329590792518352666085392949528154328205751725886144867468810829065376236121689984320081875071838557664335640830615991944058400107750416448483554627705717720553128774642800359150130665121732714801052437159687811329421582195856324097090904906579270246094874284133187038912313670746105202468618549226350523333895482449573460669327634292325838388788294069274977429725130373307745771506254492911743106007416702911508961799195268070807083809814476771229959430476837477835124020806858118122942977817467092235551793644758608424558724502971987017584498277546912266279683474229085706155616938899344253971989311389203232262932911587043718602260561233840240896367003764561195863612079616371303133142407354116764751971825467338388350481016751178369590969212968059742922583772676508882151170093461279093858902683973085435255104576640250724226406220260543316540340959764185344899970257359141888275973669857977984942932583466736814912549486037134823715500326640244386081509988440747053184077238761675751375239570449093485731370425723109368046515979505717602096295059310415763494812331621700628734473438202670459358984416990391161757991389062565986144229290403703785188719574435423819202589734397827091614188052213688122445554924052436280422622473133182693585328016578382118033378122776037241428735940916716058500428343056253799940554165962345244392080821966297643404287487597303801417272670089613096082032557641468516614034497161076670955112145324237785350939484179634401934130026989067527126891932240584588915901860026973502055981136521304105598058400091581898847950681861913128965480541028062980836514910584770126652963135260286499296475301338735499293127002218100455805306403910326456682061241910706634148286894327674839435178830059855079548235455680086521922925661280543094987560228634207299794004354446556705684006900145622829590606164265784795556262849071865442191647152701320672286812431181793606761893502673948062345052160519429288422999182207941543830354417423257067711784331441061054843647449793487011279275441980143301477379902371427807944228488382655923364894503161494378840294913735452292453199186556984004719806261226446333900829866045071760544335994795494618967257946958256971300370973816436708202576113566098770715916321203107278474063029266112381202680424447261869668793409126473519655778081860149369828987734510229018166368286506152373876244257911464766721430641079439374163614502649999612548420387198577453107433388131950326504720600627749118960957429579015368553079986963655983876432883782794628567400988757627420346899469594768268613041864788386894009273712557401921700387866365964694543912676943262568884143800361739767466313974324087253065677963794714803585562173835599657096327534382641776019696367200359515251217184948026154814689496906810148531299113340378297159527514847904057436502577664803535794513349659555733375869517528037061606431657800752226585146019365434208471837289452793483423614493095604052918543105062101181147270566787436348668275310254096212805404243488807645169526932488504854299251741891563322902101747255095959204016282801748992862955073353246723080463191965718354002214233881238694099907962862516429649129575813051765896548942657716629205664633283985090859244730107316516474074151393436555845319986283566769055491485089765386787039164940658681177194720225181935760630666405380696622142982007395159197752832820205426545663769622871754303250402518937332849777980987411419619139282583823322080446880306187441054972589437290146768150176192838405654919349196797776357974280615433649004594995425518367249282228894517674591146526507601539409552355641899895723482229056036522720160220942386387904426523018049563639759757642882993421324905069158485107553704256561173428358051200341549670183463687323235578923669477760294235873450487981618753118386428694173265031015565004364164589148259292763281120865072309720891273942023400639145603208626713275001571297333902324825565550330472621225183690251802883725494699107234046730969128946665293136679166016962763639893747798390136722457424562157150615454027876825455549333100719916730577181338844547278161970241895137551064865596800537068864934908221051598041598892857490470355562921801107524579537128506577317067228630065027314527860261766289477302815189717533376501801961820395612339004861021433547138007528145840017093038139614502287044388913138311827945591349518751917098683974327659392574696181773827228023124739565506658961801315612665305348543596440387503341246336639640718967928518683668901804057739567084146700658493841933036648735599492839090942118303458311425548349423769526384703257683002406775778553792841234977428983702583749195768080404777630015978706295264619007689222271049753222806625023690818644264812994002215947533893098706550616951105529783403608196783697229622805871393274613105922046863038290395375534728539425072857896017774145794949086441067577444720759416207606991964091036491143190502647562226985637372911208509792407639399654581825257856773488530078464714820938527834750428157455251316543867255771409733190576356926340026486359774314617128740625626670703107779738082821609853424398835688356348044014301918216910642002111562410512975366503724505969148582928889436689916873077482849595153995646865085374061202405566277937437657638339514185262390453825525535778335398070458442990730807324426778352387209396399219437983606722594477016028426928695470354493482315081744711165923809012904284510367294758441951303114511181317808832294710250083173803857324110050330522467475935158356626699720696208334195385909300331211756660480823815476821782097547718394464425308808215309542960726097973905894999903429180329692233444762341698245101539879835442860275402475332198668987643849722111816858310584562512568629286052101552386794868450900265329033461654259340573106943252972380769160622297929636038126109223245936836540008912288274705127821316792037725842564848170602315448489721227358397905688206573891570059889795250499730879239691576282426007707687219124735459305427550259504327921307592797710031716430855451696597349466861865794282907868801656838313289043505789109029088347477740142639119200937366408475080311257659263783899315734187425372000401740806479894476219781621414441697151689874224181576538717040599827300651198175445642963114123940620559633882166602632215692996023667143488470846019954454329800832452989454468201756281081172877877343626763572432394491045355903342760525964110731569508770686672138278216783236919093671470719396669884256965668566675099964822087332038438762507266278697438484486956077818320431754653805773429429246197113198283385831242537937781573299816696977647599293315256481671680109897301497327542026079251656296513900804315537247609612968026175859794985973896143057993135361860543102848378998965542878083525129554069108831829334964692268113671720907612957948836159070724392853359337969769669025721178443936900074459442750812562321498091924156894714037136658938142842856277951205038224661306182961804229427993822553274204572604742167571818758121382429554757569975883684900343570698226698686720615914568178798369320549849434443790036633933883137864130150963931712952633854288011883971816913897487654630205304236628504768202690470532885264334512502514854275612430981218276039409295337379860102261313743540390710623134945540722762487643346374650160288456632399558119349209686311881032748716188936670552627284454978029703098818494213579618126403480872321109903195168718886207647237846844254979314898599298479241170769580023787296807366062928578993012600748831041415865880471441790020066935953717936703472183211783504396385759216180583670414465348951670124623954878953038424848173158454808982269099539601021482273005434490595562315187846087623967428654478197433899353241038009121053329441311126644376310091289188139868790863627941648543614176501069869207766942709118521733319991249042686778867149204988034579186440878825969359150672787560303666342348811993441605901533061724775462474635644765780927581626857392873443479173328507084384986731612081376148105917380189647432358220828764977488968067386832009007262431153560670028229726799099288765206648148597754331617726161774295364314202262323414220028373786194377829362333089399386706187682429909032717438764915726744856946137821419075102155183644521126229757528339437848767525300440572405494887224187989699296772719143722608471940059658548997273687596834547417576189842619103676851673025812608611325284643011028042838627027234324564179170229776224130640349253923172811905894619126546828835689690397624300747257694068308792613844973263354000584708775506231233658917765429836399943038324022051060041964754147221697143083307793019149418529585406280349909330301204377596190774862210250231895256178245053058372386985048399120623182707619494992442640168854706982112773262562667346291687948018246099773111701564655623089189626605694203040932253221969303753926020981801242816701091378516144645597468354637930496657993358649352049723573319345244091189097974571082470840678909166418629971450759187798960895514629159084067809773651236619011258387907108310675857879148966215368051994291197577432497631713651839499207507502043649082311521420528625467734730748320038807546017260799418400929920175343922703500381477875657296890743624712595596088426169695481756461401980541174302846328403254805630537459770287885687135382805427459528266073107588736844411202454390456619883387495246509197656518787675839024425738670302093505801293194634277913674159034516672108155318457000504081010896305951086262604584232800349826461466229142822548671995501578107563360645912869207313937583586038149295922491682754348079208569390396226432827395320086022584384840597478604239865398174725645342025064525749872163668936871454435007731042937421979184111520065159727052472426631644009393531005601556622424532579228176926319050257851720468095719541103715267413682179904846977653441155822758611693591295478112548224684889333669627715351084040239611996703605112834505554910303162745504656965591928127881193716239258464025560087349395770679775015863534625106885421316698565331446214228891012756004776286001898483346321598599939044676038753972964853605791464319706244803958859329933419697535550134309598634343690008235168035885631272479082208222848826010956901813505881334140866852156209434305279165199178368008206158126880212770559413721753046417996154480648819648616538741793256356882224821112832022215695089484941193000869034136575710272647889599042142403651582749189827336174018566209898454941541576870496236561183239633317058569081993196835098121993563673067299689998477060091294190341536340462564507440950033916356683925942178037057489324462734614075893528021492046127808612352203459484065090365959966999475984475896988963544809794862985296783326986828834305732112649669421639995364657897489152755198778936978346051317084688829698548557558822386014335516935389173026398410719285801205811672818173180736428076813656598137819967971555765270771489164439692744323651488533990481894130420471461132304886714214554831509498397935349217708997069504064298835546396196012914535597119228266796154332865232253013925309253494363545320630174658088189288189964590758097293475170284178421321302739573080837912801946989235398852674629298789392216687521350491395727026155024014945173743838146626643685000710534827579044100013454033731843036019640704759125332562922333570071207829595189822806502671104586009679412165907939588587918200516861231763889430211838312290814542567134068974521332094609253225615311869926473828144961258762283080620871422685107135293618920652177815963687475178891416695456644581670041734931349374670087630594024973869435495253438827727560005337273022615550531642876254756440625086902271665690324324363803683206887730904821967803005546386309922609961690968062805382473694941672306845645684049406037768803113216834259696464191363225549589494468529237598511212274435541290041104251971984845321822589627922370598521801920010496114775166349006010251051739308567782374178657006713144453689462627877732150053060035780468905819454271206586460076391299764187553109945274774594857343017033988556693064045953335409067092568379700253486158210335212435330916217345677759300182831681732974609217962281876476385358332215814873542632839311333425471432180563927431468114660892929334376746762548262636819591394026219629369292111215114779847905470676424538695595907284865391122559358972267408351940675269824786855822590693387021136079484011873592774667435071473638516788581672383236426387253445057817976582008803622301393618221390462904127407532695856681480822759955615860092394319106094539528225686367098899457405689002283713295831670727365738798865428513205252845321666811613727372553767444708680088230939495360624256969580400909529063093300333928356421623646742903558784299742803248915888140327019163971384826482545573071050570032967802064472257220396338657463077093135015028668962536318592681715093600289931869106003643391988946624999917648322457646964875757585003390244001679168193110434687961906940450155233717733166830662013616565346779363543207304193763811124099412240689579326801188520964743164989513022110920063365846011058284541759120585671466006780092513469640734972241143087280329719503499857550768744776403935810925969523535076233955645388380329512014587316906649205837377700874172341106311323571910425979228946857897233487290118178097677621440233238355189364293974283863177991023006802078477724229480314838429004836535180677767598358149270271033382744355331938944935133207542123558677514353597542395550553361791765493160390858733840925593496049918904405777343038698055385185060786292596674408912963996420855893967582153683005663979697938257094366917925579982696730930502008507905980416746542748574111155821795634423034880948041751917021172975498108005636334025449397028366499132431776808783344077898296751518322908254229200385462587084827932128629573826575739828266733275088757196830000235454683947894309666453324546996411780477195674629059383663845582626322368875936894259351664039263619038984989565837069201461630114011787766469536559626550324629572231854172685301821946056725836173230802209730987363768870931699680140705836272016421959413655118974968340822949432795837184023370547041213637944742620731768127730703719143828337812040670862594455553479297591420417788692238918396589318544390885210967247592764659334939378921199869293998173379419375866189636843974939748465157250416916021021740203915166032320872518348438374356258644976673235822113021731528717403810232368332998384598488542916105054372613185825525866972230495093412134483120236691085864781757803986072187726191735673817000410747733424416539983577328390732773019238561312921283659598257691449626993971956797717703263489028540821207005370053606054384665368313323326108531013997436635465832534257382994947098362542011496488375314432395862902685334557689866402201320266951786398149359376206152481382951605397342620119381552029131490980370154742429178519942562532083433572647640621327881532621942775952240754957896535415027259892777389299226024435972442530273959408963865045182275651299186465175527946835296535116744647782677069849882348831610729964112187146454610394195206009059680076267791826401587724739381246796776504553288657192337192321025820855447220193652626868998725003235570324752795912501964472230759888300439365330100697784505937883748857176637737951804121982321120775805256345730926339754616316240131562453760492078930764081313347960301785374995386534522238212833240365105724836412504810836552341974919195732368094147126832390091278972273003772299230411530873353177364889205535634772716406264020792311564539494562184128187520806388772419305760227618311646455767686243348423560732260884753647299158458929971693583471639295530200305630323471324192625654757349683326715091205312826476908901832675569670324569511799005176236013704900601689456660848646684837736964525886300597495803206130933865523230742350538942493210316153560439956475649300657983784612845732744448080000994225013518519885657612955202440887539167101126581550248307590154756449767220863520214020311575699959663857883230911929429079978649056392081908108586378946610924247134058697720983998747220532736519305746740378850247372844595945939359670162367904780516764608709127141215282843799554682871519135402160256819913153753471084825481034911631852469142024509740576281453818581639802448467476485692164943556527831769728172400954389559304140687567219050607396674880612474118500356371922847790714187622533686851546914550274567575219293224945056059448962993745465562110803341372484823694536340934722638580802665415168264924363012178248529270618669142309567279452700996344052233840163151603977042605924939848372714566425553396091879644747660934804835703557032048632389310790433864170474728217357710077840943201442956584534690554178008235899299600372527064470695028719184496710315671726366150912257056397898557467758410105337286034661470148568192999705539755855939629648935553476728079468094345920058971925628403590053338141415336861334730150601963847674206680960415428829901204810605167339285347327870376772004621531800156092451801786422988249969576607498651763618291191529205452238775749285303724479646777643718992613989914220574237850837060946811501486230756484715899842188742746780176894283607602217205279789418960004800650826263554397597323396753124234254295017269007283221937725980261477228666289594733919918306155621236029116119646145275397899917051003425303951523148488473703929163556144821965137420283128098707969454922885447815247202293906294158524320957571428251537220227754637614189817707856471339987786711843504087242325695641087436481848694716766467753117623763936981435226100190543899662896719063229990817513698190842461564478690718099612406371797218554532609571378184744520693808287572262596552547553522822660233972850348833157308427358415741148894649425576726262184665067868250413617798198750135463792207280906057134430517976091918948478944927737604623147366568747209287733667707915293873535792676113250497047022852703926926423944342974664562003956412718623017343116651929577367566905103760796413483665327578792249001255569075958193481065190378782526949792632539434645005923947186971597484362481139457723181435983298279786274388176916807398434318473099372514612990701996937012051681108452887445979800056621053181099561382739877488629097208382862294345012008929511591514155175255954579023941630052561697340698786309293090459411921691580497093495863446823555701583612490373089327865447239250295008001092059815175086207354554488555783779499050946591733856027456451817374452640010492415509812811341179734326909775559547194048549815108482354838900419732617511610434221513865901284493987423206235254657553651032078999690263376877152551858811997477138449985710902537893665213651434008134320651944677807703263312271989926040388585879998213105513298061611431787564543016210678213121223602708925591622286303186219943990084038271894043161491901032737330557967617767539641943847984331918819159139896536954402468068638985338516355190354122042098625986955163141369726507520197364397913220974479338225753785595571211846179732893361115593230206491110439737775300268635979616518670712136292889900951182397662232726142796299148796238013900554539476634492992174258044691217267491093548954685754846192907923818076251785137418983766226859120895197393303020635227693108729829310301269340407967706872775662672704103372098537164545147996166693459266466521213731611162921801799174313205236627248237762646395194849654837153096749218618068730563953731882789857070922851974516385505666909500712704136370339964621951596656551867201285910394297969488481374406019870699723570929399582455669089546566338231469697997118109795378496743982466231950898416332062361413204787977537673497474976089471119528708220406359243152060884562839269709237434749299463641866355144825212228052409148957860599239418877313909296030566471496387046650276396984461994290953205728731818481754911062324755669299000886587104137673813143890433166903679017514193152240411615017696700118082709829302230436699927565511451771904512813568889722759921918789638722585850810745974030609559928797523400438088027697671956052786578735685082041249909040678866892583826387175299281123115138044337729113842327440506491953971820997229167958506441381473294617898721273865202885102814892931169416294586755475115167817753127735671374017868661091020242909679814604945429376161282353625323607143311842281784827529902275107095515241436144410980344418513943148538363343325543557901129080110388019262386016304956054026806071589281899120739192461251790241359896024236492941845739521506165239116779540545300330055927916095165823488520536263227906349174266625798288539470543790830381352162217749265548133341317557005211819002521614785123005431999251099023534801920617578481499251306304998920484419956971476529343441105851356736037742569417258930974943456907559845703079010867943258417881873919914690508554829095666316975475584125172244463144521602577302863326982409351710385337098198210765848318565004593340388020580068916217057072373854914878236436868506333447954337895870779641849766511155401106940649690587522132870373539367155015282447545943929299771654526867440348894659152757123946056230480680842176256688185671876416874095358676090157984493807389682437713454895793852945336521269109514930054778925145636284237869524583796056726681612645642344363895219562068089289757814716888627121834237250288451452988749535053213939109346137575429374183902580931281266982504399880199300911693774024970966230962308615492295793124089517636729292599698367181733310091367071733892282922314251410537303679084149309331404702431808983848232992900718444590492985984998987668229508928200730235214921903256541420812595511474491116987613867307850380901764164769938966590563961915290395624898349640602455676978484081267869859448745922915728195237952287831289650219660501435595583955440039424311889629477357697350555793105344138597544165444148681202475092667030082015881275867019431560358636048464423879630782157595947037108318397897341334722075015254704503519790232239808297486044929998114236714666624804000808794676003383722535934360065385896901534552461006788883489710322018269389203029485791148562937026586355339396948735393146021412570366282735533119849777693372001480018990607454910593750045232484877138162957208215294961057951172019826067504460734187939908853479986118586318192335117844506456552310276389088044684956408141095930885640383829394759688195717763924471738644826502146738902755816584752230445917317602650001249327136013501617149406856951512126900803306388440998667806729386832316348716659402652719439659452184726350442620135779881545388415607084464215888585303460570021445395512415353980669131569097692602849717098101480721466139298063509831942035435417778970396265242936808273012430552597343467057860363254254692009698307263742266788110897998153685378347833593988034924837378921467678230184480883538800556834217868351293123373695257317461601857357452611506892170818588674409243407101262430437809586548631024194243281379425475145994694082026019068569561718452424112912228859629770878308632051645581658392552098416205309581648587333074123023968989218363104808171761511035786451623586164291833267374730715462991304498746032017098749972682573584282090159411224948643872086805092290636926241057528211752624028691918562823650912656559281193913354616850772394739701948342350753770487446761748912834388134097421293854452657715448665071019618741346964886722839542816541781877686606289388894432191637434277430072373500869995374453025504763992702547068222892813717186753865110720243642439558287175157707363332697205727492011524340903246042654174574487257833760883406940602067008938476609570761482621121480846999032188887620250922947488103174222066299594070862281955978443501949716262226947212731940770425572256674732735677066830151225133453823727201247542859087431471805647679347256800666435041395917919988222887713399817895516875054157064870486589953201062093099180399533164757014317601076984551186466618361533117187061126078624933138600369049108216617972121534841230208829378699917275254569870494196597577040033994203341265941853727396985684947425464223886502285546382229352838746481423326480234936518143858534453775522134931816800832460386519655463516721731399972029662482797771020268093803032337172998561804389440590006400558797572152600903442580041750115555466044204578930701424890008758797750781062922837163079473028368243268456220118547839220591918428739882520718935694609607706000001529130786344453216318411146773625164212583554969950736881171919641120248478922237527403731238143790823486475419414868882094682898325022044788070102471322603584973255687700126144572166214832973482297831514711459686891876521054641546563960339716539155477983252103016115560274211557654484779294217834331410425202387195597023570619714007035949616131821086153268394583804023008621371233171092087462837910093858995123704093931529762919438459767817137115935335135284197382208692644748529049242253143361795290541644863470521164061580704035146480532395039776343090764027513595384698536672169754286217615641783649802047345741515298701401535008396037892283331300634551406975856701084430466487310268765085592487662393335938917189846574570609818942034658090378344864919805117343736067256121127489717282407871748110783255030181444693239788814131703105898745794716211532377358561888064228048386095338828976193533838320456710276032357971050940824794245196815594266431340825970769795542853859520427778699140395574795582778985396182407198159477512964305978499028414860351956810776272861417939259735375452606871692837155552004208986855447164189950720660870056934044527677348082375704689419320204546735228874916759363768715459286599358570325141435551992878218038169184474324053901543298046759028031073025035727039407719428483679371687991083793236669764877824859312970557385513260873340350735535810188246989881993650863508986723515216839760303562473791117261267967891699720260183066616084797009978420062590915533348257677876190531653664450144775260685513871536479191455654073241135453197701347922719879959345812669823372586776395550009956197706864920361547415280033580181600321987889840825081413071897410246060358243686936888513448736944767120425956311006382647613873126677586001334317603570787450057221146850913217004222842296717013190374821315860414236018231036910736227504414656921920273648211110525815371764812688744614617487045384302775104176470649089183941161451407695550987847374304667231337257149702116605397670119550211397574705224218590857070457057071611711465165001681738358905503634415711304838547232069894434812760409182327764895774999594801857567266139105785702970278743993084889871167375299910037848689450719248927362963370002192769641587234695375737810541415024495341383824991049400600665406715595336084729497517283702990729736606276261399166524300268768671856839422175104176565015555268558121188973834019943986898447943021359924824495539920941370713913188317123367430752780967017846785204035632055640900536703527806374046354181015273025739691741439925779405553908343429005557885180694186468001433022240504845172711618854052710358321860829646146339825696139630775080330831429485536396140085683696200531225009793607365395199921022652941660036273892890237341431069875848618433044876844651618817897337602563568586521262291042009720041050357373081861158678747391253200319610519521574793592222884365848518466213206529223165580054773450862947072964442545389908124187388132888346897070446663457433596675322367453510697554171420327727735373168521942950118255828006059001703668686614445969426800000407263565271738053816620560081378668172880672327564116354803620746822500509130552777976360757084733391343950666561247151576600707197327571766725874418223953003973618267549468495036291051707272615150480969631422151236553853574720219239064867063983595837417481245749383175329978128039882375093473719715708856524766377506033495738718813558725138576156977667289113181034879369706952468727248710035536254607674777718350255256683110650671352981012752035530815218676431634149629024706542869615369094486886148293110899055290899518042235626935320416625273799551256870874371718148242018015033448826422404370375933980783130291946355189421716033048126124579119635309657885596378149194926696394735545344353626710146291516181323132930791984881451696867806913061038825828269739943881956749395392235241165686206631934073458503442766409093834239531310029760674677275423305866623943240344857791590432989602536990942044243040159349380614001011808328093305070282236917172628061677361227741530018472958592603352344263347981661504302086105448024226673153980897825654709209119968728066715280091141191558170667647795935185456496011807964596694980490994988427649775809612133239852084113659233578275510335039760290569111076768287977118162052037652970327627697673946403801247286037945005380390012299753509668364574282066197211242277963825532099922253994065872883592114123583526375276201957663771725829763464539512298879699819345531646675512188676094458672969553807285288395293711421956952117228696113196271146597821326049328428437061427139916603302293032961338838279177417959781038907506270991481836269930017835199266049014123222064996820984690141475728073906025227345975791528366564601071211701487100053627677869392527481937946610304134933883955714937174574899615170112712549699468768927425747624576454864584134319023141566396825594094066632349158979407554398985627054414677174763402888637980679105239995836677278819115097079135346966292551011773776552527451746238456611378817356138859650100269387271680340570777116154214223856920587103648552088625259362099428335618340460888194762977296512097706547669726132546288349784029527296409594389730639066629933479867088844879917258926884296147025155224690582285936053914050428459073557212320360592130034316284754426219711130946460508136270366524148338714199880447965853669464187816883831969292246143855006249468706264998282470687291385287927075640134590437733031198176677931200704721526933573376522938476759319363258012567952807247428377770519429575694779747487431471868434083813459962773551080676806346731050031616016343502396484689856621851081249306192652994888595413615847582782974284485234617570328229581255047056235591512564284294739492119372118544636978352068825041314297123408262407713584128342492735681350323692655959696899972832836465141926761776897327390704206811548746027113817304796785553387799399138348874119752165266314195309451138153204167061798391677134165617220981703292800234383576164771473804333925144886549567817510688036111759518727453328079256098378119609691257327282033162660868348803303170776450456502576887025032623606872433053105870713784124164652294741814220318256697930803739704005540411144952501342508857820391432152933168199310229944743836396866093895805088559296099169495921366808742425989033661059793097308048809365988208927668254276368476870493079950129183044105643305722871167545478092981546833700133426629316349831399593610137187649852574237534338549273599115502759674908074717328966573288389178526263939639199959005831307012642651375742870401863028159370322128839680294205361557029705803344776599937943387023355006901335080886773971992080521622846472600779755285485803356338533769147377639590276485629443809496855825754115265027619683280668898549773848352925667046217448957017812888269770564394143882697789750393359257135689284732667762260190118048300589662446829329916665868766164896844064019464461430063778817112121571310857176340863627361646682606273464264586126995128204959934486607119085467314999748410466825582425048109964033029062753547236616453650376395765764626576399182065195310989627249923277635129641805851094986372020235817506893567178516436455051259768062097941449276944985184573654478429570764520368914218526571305454917137444309906446478222911064980877023849349716372002537764940741720906859148686610822056105689190553453010298459384758016389433379596413225858787101629208359932546759291971906686285564708275921980115346042699130432531883388422174298869114108162734344300673802004414511841808336177436444775035834476074639367933054315875055778682740901293728850493706028024482374992347233248923935965702736723840841840364296045705645748609172608596200761951062696624764239950807651574540163466118121888018715710286815923958037821852858311735109539977161769624745834856346264621644089935444780779831807205145580623066282120137584644663962241484879946061104126765001022425794420106746322366780365981654410063630495171176337804656489066667947198424767233014793330270348111203185210254759161742904344056974464177797075834358916085887400133625469104197953658656657378872372705997366901609713332654734048585155024659999821291863186185206087640457793798644684765260477178987608820876728187268723809143036180384622350932666008029612289552647134749129097826575813208665646864664155032893820758822067620943140968890649226411769386683072825250078367399025624382058025632756001347646857598169019399005826783017011872749663891837967662291295963246956679120083200083106176474976327549698527146922248005292732065495348563064775855158574598868162493417789703592742984370174837920134301465360929790245424299026535617316922193746502541765844361157052325102458991178164206757405836155312776173174273213492730064818938275508248802240828137425310291704755976536441112424820374618299311897579991348459630419590446329605110024118886784164384304019860603318190119646931082971304717019264857775057286063816325852536833544501702867474484740437109616495394078518499823872977061802555582906235420133969341098944553012605970014581792452677569270021855181886380686264558307685796743907550735898130503110092654779247203889986709383353783631758552520231896621161272859154882690922971283169321868114180804217241240929956003622234186513514281496840498984834549579262966153582012744402609742205987543136378188913375379623570589130041342028456185360558525279941938256274312479234889286836511583733839970938855216681425135074079616042108841092008203199974243852021151191178791899074424860666887212673430754249808079128189258706576439842209138441577969404955588571600309423143658210209510904102318897813138266265603341851838064593286814999690721115162183831649691560114136244636281106084470743301707179754941138011285700432835357957639325728486466240588408624151382981457442468242688887343635613510615321341590750392476395220321119515554841262447686599874156576881057115429858836734729517770331788489521437739018209799512429530396123993190859924944719658941235876201280639051448314331904807069333302871326950536856961842023803641951468527104649550826046315137143694458640116005061216955070723397192843589162270247576068127534339437191819782373819478823185398365736808772021281625089465357969879183494031787950164278196193051641088442284210903309970826450758868587962325113657549692027032413222038559329296866780799844227081035998284901346481220059027587619633822523150327804830571338902142287022949309305285200703036802798364200349137240804081764825854943386369642246834973129826933782821907748457596747159861974112776592655300734059449118376260117598138287169947154387162738197175983060100373225216645618828562187886050748278184422555228747802282492974234815913767344412089355328080223448746304729179508510896957208868821590525840554379834247674840395498405872524121123575703878209208441000990032338864859827180493568055784198179653054733148634975083974948213175878682156685021427333625872658627403924666975343445003321476073209398626068633463712061043760622989113394759436783521960319326932564541392345612346117394287440335550311289826709956568554883794518788514014803160754684713026128392572015917185665905962510042283339057488908044084282547549307629496191277446349365768601989662440102958364722183137924377959639271371642464968076350506249515633712974528139872718100755551465976972738472946717391375763351684274281005614826007426454135944027670391268477437851839750680030896743252520203160417732938498665752907012733660625169042990743294778845376157991152399412385506022231948641923666789430865709329030470026687354290789860744626094853140184917622300924162044952845215209417628332879200948615260312392867769302373307465937657457488490038087740962777656211717679138725688270969847238980101235460271634881550807405826426399681714895938884073045527313524350124605296912820019161847705211952061309900245122265028014421361651066035831748880716812333955494886800471421803774330920320743152374853397157180658629630285601719281027812761105811614500697938913104996130428036085097419169934331374059644119299227054005310193695958287923935095559855907567391072342763272259657876584804860045836954353227736365108168237166315762710734955173115491020896562145884195225710561626879630218287302121636420039354315951759523879301332480798364781822560775101905731518921983439683020268554566169776781826798030107663586052924212615224880708533834113627253382862165806337093807520072357510611298759676898340419668075166511615648682676629439363181952503779213119110560585942927349088196455867344953935473240463854304393439363891882059610011270774683460581490065197695998436551123202578887310235354671645899948574504711595023139945481954446339619332625339617247743968279266189970852319337573349298910138735217854035778674152662191347576054522477423697137478335465911794766197074612418306188587550972103623202998002596880589372695231857292830122792198792895061355513955985188510498225132899188025286127288436796617214793517722036166042268053401708314702220499840044767228382126465364915607915716346963206987068112063331396405818552476733979966188044727194915096856706367119994068337453528110504416829488077717760205958206383129673307762305252223147865381084627718383554795460652478205176664428455126791913828925728428142861386652435677273015306737683617134162720280559940955186230810808350694161536739686306826150353252773014016592302632201392320877331708516280728312493598755994214566417623677903320157592902630678115440556285914793724686034569155757870564267651700893503167760023117385752108948322286279993914477731727312614331200505629850102830803517228002471887978531586589091601579114244783297657696311009582371426972433395195685695073792711419852469881852718265337228903316137320132539770143676066403858734289704337263613355610256848983376058508440742511074286268734630327354358919798761594493777944492405616010315692467847597347342187190929904361362767206941308436819536429873537502863377207319243210819192503240225575944755591297079096978708195554758377450972086038541890477760716492910479180715292847608743127632209909301282924140984540110111194981284848347428916828891835252065848521033193896045644687765186191023186024578118163133468441178907891747086582750284171309584628483085238715843622868988235392493190503779247063322922244277992669178474925334278167740692374887991193499904912837550887973993714117647389930305444804246445467002945688761965962085425722968023445733915491163298478515903409171662701693857630702153080117922547758681934199332361872732941521065149839622511293249457546444675403353116089187991598693461301123529841644203156793221145724885320562455069792257315235375805884465410561967613204405671482647109446718413532470417427923896554321228532349159626713848184991753686991273842328022210245448370083614172118931438307629239728680905003591098723922368003701007374124150626432036165621176522567066712854994877484698753090691559985431251994017861554679079811820309637367611762027717951968574335862972923564751774659304586583267122998572624480158343676399318870128768621461151656832821660250821734003236455540815537261097854106080732674331444817074248389488034124915354900608196236042101583249952208731572202487675698140099804549845963383042751616204990503794477971053364516952762317787908364454801153537558068387010356588964864409338005090821127653333285005020145276242455033598992000204239475911538795167438366198596530451820150562718380160456017650322889775190126350052425698465065001103088083340134276564554167032823363328329338701835043320750649173277779283692869170746580281339087139716385059676941138023697888636045943443301729554014010866424235146339233057086389089118357201688438659863797298216383113233475697893177080404608660024791302848971591894953539180628767954773057134571847465568462686318357798809322205686878474888797195172982443227425372621963139037120017806996749622966911300751589932182688561829253475204598361820694682136443004202437918839525113613526228035714843822713671780319975260698128806510302444894532493618320827985494184770141591687370747207379347232715656848951708276306554078118427183414368923345807327963445324101187279969510024204977752119380586753077371332018580318008785043338583324903489239807832596890841364458029123118535353175409579049614141159075808407299059604251295903949599968572455684379445873181391632109270044509451563029049827035068810541910149116601458700912168313739484550472692131083367041528166887280436087226609010663739245686345100791761987439704849864023890414465668631790788472880053469438086143818317474735846520336699983292268005523858628481537595436887943664833689761006009522744069865261366349059588854948181690157567482656315979911917698253043101324424978548018949035368318250135308963352529305546447787908413557092773529061357573132858845192905408286527700273480644415394719599122798275851404316900007896072257167686121837044804721948347437892778981897162550110848779968854994981731930144751076483106199107981387629641176465297323552291087645661130745112927353742722927121398239604490568507083588415111321801269932155800874470240719342452234089973910512207133303310643122255409481981523932616153307577078680812567733362755986923587014059299566819150116946288414713276905311633742242004216260876595925206971613632851724438628686181567156652299160043272736647168702267524672805373466072342186581310394277424712732793590693821278014059633484163030141999697474380556613358566333452598750391908110592823482006763712083233025605320334905523820897898477175226724473193307887094485922751896064037941960885784769952806973218023825909871804152814240349890703253542638759027687381674343177674288675124894531294682135710576808126031813797876045901741609788052467734322977204494900139913412321793415860132929354154798458860643469107101280513227568542974870874221056130792001300972132660137095156448532422730184958085039546274932486236012074971292773825010784446556022856880903476358412282921264187039123406116616354564256045953185602047003626365461488071054129610262279857514405371915054739255228656016794871157748189004013346105686171277837786228672669374341719691389053628263574980865399015105909508258468161076174474280948267659610319765904391403972514054834092328413324824428651148228492271220134687770988699227156646201957654181987070484216328924105006349003992259197098684044297689284654720076469901951884402964359841066167330797212604023881430992651491497377458551689562875484289422037590039430207751515348565376144212051658067293597214899564369358550492955418167274710255668407687699836055817219331327170097391758355784298924245238884161645773173855288392367997388427650427944306957042272111917151611783761827404796652547403676959725350311736594714525348449793001178678536301066156564743105811049552647563625490267595080564120079314380688015833160052106895617808222521978667359045651045099952578868134218296686749027159593966222951218827077831522387287696966874046049475951913856320682821310835680233261362046941608730236786440799006194273392436730623893807088521014812283906761432151600760544162961180115044448951602040643194895293717704871179785720829373515854384110449768257950455548053590661112646761388486009537885724415639316205928307770810895310783096680940017899830489448845085110682057126687987440944756568241453954350273417820325539484718308315201750461039895631573114632260297167185777539160476103217770778570540269154330542411520104471678710919861915779122097939792326320547698632434013958540744141251321350832635662940538759865066728551984011179726495368824293506873001598342574588928563706044430557167190149038735448193301744067260486105510822108218847472564932261763463293876554362824577275644168534625203954503435491646910358645870333391726623609513184427336335715643495521766712273613552258241047782690771926768624502793836589478770878513201145764432849102991805681066792973161499439441326550470730066733150947198192656637849787406617707764159994893133981203334537655879949907623411792306579601412418395872157763484718763708376803232438427684199084582616142521559893585411549889945751588484279040505873903147079668375418823614796005515149072411287503316696277788580477314342864430806981068368844020646318074488424766318929098411775568599479332483231376718325284663665747601550637617026286176582395442143728458168396406287620792224538845769860706577517663571042388388896893881818451633580427864232884623215379603897218099048464801785817582598942289786480334477364662629651402735483050267558180557602706735029590632570735587039871770157702594472204921383855257104202643073386421921554859719938685318806881740533276522790465492739398706210914785771886280257615392268851034404294914023069252526649194922169845761232819663486232486987649435317895915404563766348629096020939005350075816666254986888606785081511699341080849339587702298286912390345032666818416719353339431525184366520157251995253877255369526946992470487131642339483822503343592472397828362379532786056291979628559301348607356170858187487836447040088550822801905555023327144919089651036333165806779403142962759462328001599294629222394987970914621404690102239208266529190985494607425382218840214913276616554282852070534034202159451327761266063717478512761736153671066727437184157684996180137920149457876598582177314800755872137763770047173759776392098029932571882992103609324424303467449100498910937498578237435167584945674763855681811992668237087621997558777527889327411516423741261513533072234203783718761157212733166170193638972908281439345867606281433466678087018980674698345174711524980994765098037786960071197724886584696754124307601483944344022374746850038023613199119690742178425183799404227127095930972316414732233395623337019251108758096278676603844664130469368053281079589415435640480951901024378913836908133890576984982425796137832367872684425433210960468039060149606131931595435090620842719145805813242685849017135919373800543307412777467823800914454301042279310175950583156967282073706457810833095672188383585262505473936384472680536272232848081666177943689623639099827887438494118860466238633191085178168712610874442199786300393069307120404903769325724469801101809719610470028649354761830727934310322018406167462397293792695624778714729666630140708202044304797137176473194713217720191139458706379039001694807933230838446277732026569828932670674820256608593511285228711922300631699349053817265335735260639360193405726494325881011097767026961181766733774711428692533477826447635919639386679875466508242510330280703790213520502580608533371753147850704155087725803969507534517486418705466012594603038344237266531043487802633645808260212201636494773683515532095160188333945288967387547443257358957284702023884437505940749462690308300747350193638359377768615533805276734396182261729708038726427253926570121138914183217796696141932058216519327521042775078101810599070271124429458023385970647351558153792514248891499671528934055276042327030022875141278275571714857472921691827712229300195826648055856361270383967094597104658241283820572663572284550422969747185495873848641358203380285325961959848733096744688112729944095791624773331865961805900071424099299031987469363207526938407234887416418664592246197858315145974287588040289697548440661493637323252692480445871398848272393796352122565068124562143606979388633634981904524654660859473163529877433805310552162372754818573742946325300880060800952775878796488793112495544418755491266073239128467808625188135313438647980204156368755608584305297217774806977733450174509676068414412747886927100295546128521864472273702262797370472634648982683479280389633478596743601945084684876158605427431463611539782789284305660439572825257292558231960813850560237490217651706967062005316101965609765763215314489078152187297849506028088712804473449290749953736587974420748865386671105246833272191338062630151434987972929797812000552720366403011261729575938570367213161027272705399668642230215506753976277384545252214490513904022086186215128777421810813919119601731881642580556829942406161626114352819376131254804919382241885879599886822973206039910819908963979345952261657292012195967771337157580263446097970575887945102160738730952570316759413028967084704183913251475896155732889482776245710287800190748427134242478364506463917901235664296164082048807713852012678605853020957355331007262566184179161520066926143253695272581015606627439098556774445800652812296367899834048161054447143426272895787319288522149482207254455543519001205348817057808034352177055664702210444247751251997118141927782253034649868367953568635905166425872813989696537547929583721815378938706177659864266014565401521661037321343291483031986012929306430018662752594729059633516859485284360492247457236619108510024279366554990739150936317566854233001059084417596719173223012249056684691960915100526296624194433711477550562777681867909924321368900626700034694154951392377166359872015671733416604517095743153681100818271786378687485895428045260041506050299200723294697268617774931239078957369909520480460277243164692024848247110552941221917064035443860745929527905561236265221831464824214243732902928623185032381712082632394578489959311319587748912507657498744796043539489229994950206983102029786401409331767558610655446210262389212216267226621701933480586174410734544407871783312750527567927115283854980691122488101451376020603632426710296517038677436906114318773144758090138007626969600024133092139130337272396303974497280133843722725817833259457319789268853080032122651068296204733675523450532760287826339382919040711628234888665567467529664271805677502277237610448727855661547033755238317371938237174400814591302833279343300630101210724130554216530484390484923290984831767175970473443246025138109627537674657454635868046708820607866568182386459103185926203137997887754786809791673567534800740632991244370389055060881186066373832515465990112688559116327446546023306582261483528430366806248063450172254281453513664797696853605143477863751033433764631905447603450642763479292486415205145322831662617327211196546673347188142721040533434891346370374225094224388525995462721927298659317085436552682820715646042473752546558831814030322630318451560961094181838260856742887459654254742010732921573100195285330273607294878668121812075432017927938368028755701735676262113097264723923853488032358128764170736424513017848528455883987979765668256695679965751612864774633113283480285254461986200836143475653641345399343331259807020999640916207018666727881102890563807178587375792743056235379125054373488809250270744988494928760295932803256270646709764401112813628912799270582802075884227987891006322245372801805571319628815154820398659685883307696947917703605946523998866967233780575329684730830209867361858591759350250596767657815999318779430437063762457047202296202787779052222339981159831714831178342713555557337551904369146943940012482214410308474624202499002729302879152294273348953198710946661083765233809711697622303539662208805502556262330644590676894519655761632727933433957520365933047761215048339485515503918104305904572870898763152592113626099479906994231952688647640180647415253357492152437575339509763132901342111917628554066941843386673530068950555684204564006975611481330013389863813828519417195270566001657858903004933071701411121609092074749585547313162266164624185826668673289843868261085385119654879036495744849263799643196022181819024185657615429948794500166214787932064917894458060288785317786055387498340492254514884456052964446685357601756788934172036987988386787182647488919502063816959242200119659239929968127016872471323931424473882863392879629400521689992159518016321248684386892206498936646583433767398171453808546663288551927343165610154988118973840821808007970550919555948053830213933433627147018805413320607434972588771444584618542254015355190783533295073874662744973107151894979297272573864236197827000638104712194315612188490635057458723891565045928555680860619237920046628170596942572658824893996524167693249188620418799584602432869867930321539173020731512463812435209112482015079082923290212233265281505149527583147390910867256525199449230349228725034929695370085110529983974565267427383008755817726767089700087498111749785218425209475401443122444901203728149054156650211423641017807168027723683949163528930237878243315061116371967720335130548711763037602968985790100199522532680801347844016411255996849433563119628968128250800867042394046810899555765893208465944464222474992616328481410417797465365478984378211210455780789577926360648025636180785419582834104726706153384085218432064445857344164884148627979223219297984675783364659944143580864419579351639095586590863726140618343471910729445118133141902781068469675863137114387353450490879514202589679656294266911559804735993094179035050555567173821980927519307753475684540920822092071978614967512896675366715524946195219774877069092907955652245165971108872914241220139562774208487813320608997174670171821568094043726636284904796073067957447206443754941333449436096875970679700790632228725549987993397402228564222869432506361661449812403640748606582870058297781155664248242302050932402753333577368788753653043871424586506323987229045258124812424078863843640849361548738480575538516663239582157407566128601298220269874018373009435634151567952022855841526253998091331503925183457803973472039496807209118534690585259530612493118324392865855124263543709969876780502411422517864924234563034854556022336322117857440613931494148732801862122044927268958254264750080550995151733719270607921021932720124638603225947363619829930942887354348368259952344837432096803699391239644193321431087453021260486159509721992387849782162009478436754075033784536222721030225250277280272441810140274610978933289561545604706783512817662424960550440681483861901894669923183483106560375631104472893964285892036340159450793751760623117235569636090237864311038984704313602298167673008382238720970516587248880573226222448987162968074539136173168575648312084426325332274089074542660932310960996797991855518588433068313368189572207155372812711940844835126105618024347862295638305269179855054543216376942773870374401015699495029441067760488454818716649213179419452080684458891332248739179926672246372304909355227376668132091526960329080553409032859731891720813818717824906816833080136866643693661725002946604715508141214280598551235084880792612617212470703925901143073668059510052653371681994514745396675797880887012594683397382949732741386815842292060355918893138370371910122856154949430356185060975126683879319033169927857512600988916735681076604908151052204371982668967483919283922137340653876147913486276507737540315332077343510942253875948430083797918920389718921495005328331098885968541938670098117443149032601129052783241836867039762032196286045997554735769474678165705033232612988055230621713692301138848504275590868359226840125040081684318935694674072189608598772627062344899408186474421598952654910317405065525789724501713444968632696742721814582268063172014853365236940420007981561671075465733265263368617628410914645026320484123707302587003402134183341829534742990294384359104199448999676814002298260622855771549214334793761602726114179886985596310879986540319210249611341757844941861154329775721546865989610045405657081080138648814633750615950947606672534095300807110183684109320560025880687767324253511914962778100409164510261450324354629866661747556576152526466133229950611476202968538987344183468729452349595053177023956851503578846648519703465871695734195670327500861046714398739360475872497759486048836065944975601248458367605332127685232631907078241217489132659515481219800835047904923970163451940727834869934353491868956762498016847050984761241206991020373718307013440167286191403387950917740215924013485802226083762260036190546008062046280281586683294300040772434374530398202960239743292353241243655823194370809253495222116214122619860756750442107925724496850465357090496208167106062891831259734081101815283364065578604562280444604202138714766085320206314138314832420355398850461315573396434198088651922072893205096607242124492818405025696275432457460256894902193583109072316530540711273169798757146873803609071890555128390917399784322791679110732813187247527047679441242440947634591210993853146888589184434850209268248141216362332719492937393480882562585854738523015188547306955667884767688621368414658728508019004222560782485567436128093713267150545258567445221414584074607398116085828320391078507538681123998953556916447615001209758121598896969740477269524798185781402392873900191385268505277665562487166939469088425038786843808150376470497862818387192754039006326721831692217930444957900348252269861654631972145848982330323962284564287378993083993846292596451962682906953192904081406935720948995063331794620648410056036662434517134377358751522143704278062511077217656748765975708905010503663630602266980840543725235356454616664699283442897860229408538210462599493165725722137453070840159603109091734142451630676513527928373157377728613470156615243875056411112246869866998455613882862767607428396886590191562766973425403917384800910810845148735491580358368434041427826180176696015682729827132366834704027088977574186243649765602818281528322624171753770153903023626038554393753120827147823037457806224156493675384044918805285888978201389456845521824382358833222065134462335684621629764165331837064235732557592748118398783684244586125842155524815676136008644120901495204572180951472952197413820536207218888170710957745535318683905008562503462932865210431488646251835410211889487883505590403903773650914585547532768476723591714849425799258460643157398642830838499100116777660481487172207057598277672417609051229101825269590450122744552842874392970670458949099232669669964708536041258304627874050252225849007762410125047214323842943931485258908931741683237782306677323438265444796811182090484082249739166393900506332897972565677365741573968899973606717177518700141411750366076821988846495542663098861449821054731655528289538425241465804857757732960241979221889631216410086960451070536913084510101793896946106770842128595689320032170487839154861953957442806292166337942616407789553510017484583102018694221469794258778126489459665904240922306991996889170501879479532699899334399191782382802355032363861487291221963287692180751127925530619042259110847005866662279425077771698473194943443080549110222371162001008730170287493250737063742848470377087066304849084111171209317783011027310863206990863291552188460216371296988053704170876191569571980552979833643173337695480278326534592464537415627456201595226119255183346771340357727630214746594624280386742956517868957517911152062521947443965890981645328481218760012498850325543331303026903041314406225890103141900278744409743981743333353848133225142858341476428669433304790979792151517384131095148865302995480608561973788287615734804753550485292776978949049194971723522093706825739037645623273060506534338447938783361571710423058015974740802499088115320732215773070152344803473110811988701926598073329264268479423347661499141423740279176800105283288375418375261327077829034657682310284490149663452084000864520407128349626290010763408478753098864444324823749527333285687494547211269485562694993685666084528297431205295195636859165074420175311406830641113849693067095760912393456557925536495769811704006076461303013341411548891542140433391301510277928609804781031351510782479091983013770213253762871697202310449518249680804473584179990037690327127990416922948056136760542529359715995918323839106646340284716453504284120785761457662369891860960358694140466025862509289521538800205974008905808053191445631646144874883459953475738096328751120807236272931376241752024329848391932210570879759407820747166045775041861513026593564580625881764222732871895671562339929535109918363926625459749355009010867670276313120173484265949507356430132813272265657129913695461205395998474862109044578859398175875871783906873931075778405648135106307649845017864087281937918771270531472149509905200149792001586407923171907671593921541529079943246418334082660087794630109597147334466606235364957882964190671312776090943956085904169438996115655442065863280256269648087430556927849311111060614842435799119711874136697544080086608868257288306199717444876108422815851877183334834305745535718893134781628077011502521582133345861109609644531547275638891451793435182345300218230299056508874298308534220665053252918632688398360993967153513824327403645758409653858840276251483331042368317734710818924081546668140322657358592406752857364769875129769268214957817209079509005922216260047399682533553589190484131786040109317794707402379589491805421762384026876337821670382671742698554605940945453542494560119228870829065049746787682366245846704123617367457323097604156648090760591164513900084770693279328034245589238619398371154923019214414886599752240764733975948461647062010944926801608290911450867957860856929594060722860176534747707467654098407909374140815631769445936996647691025324714773652104704636801640346021631580283335626318261168651725620741037328108501914370537122540143323592272655063233062784333952906333270315389242931414922835992723464668260851356925189274469161228684765026943768896970108440422854931194085891119784507641990475728509752382152764729623394619934858735711299845643508417169802057605579356608988958015047286763906369019338895987804877264733839873515118918131738566297013285201649658141931070050602846254516539283047717781377688097361398827081084694428312766225560364075057156949041872749047812147896916401649552164475404497356588819033292745652395838854067459110476300765774664669990691795206102513099986367079530342805384157629720029156708979542935092558409017367198891100845044457268238782953727723029939063798908767401636269596770983651314348171345820517547170488020012300377373170576092467012418465034208995395800925588640981556782912128566872457413261413467155927429652041535621498436260116772883989832594485126822525254265632872167078601543186408056057119563093683618732119616544558715561163893453378907801445818986812961309917298314596662731397036600090801302361573116270920307783577469929610348489518856553262837699865929380672233374280904172654059523703684591988480628719476928873050273300216297267291549285305171031359263159332115297402020510639346578270974506926551358562053243268773196117845633734044173149819664209977763178195886567893335437678651015628093183704731758202739946625783225832953690855851284065715802399830471848482420809844263601645070550608339826617360256072714499094650404939255559998942996593413231596262735740166786683464758686153881712709586642165983067073520957149119391895110351097688934801482699045537452719367773647454622339641905663547280060648663508876901594515146298435381501071602320802451504065430939036103088573454122663744236508926380518758713090557348519751479841440691397887071566549881731285355807699182311499460382539059676281837960687187068501268567361871145258447834250002886270606020782693226522400667723988386956968113168493697198101422726701817166003334078454336971268189988285805696277481792060683363047144571462083891516538512284966674756073870803108264007174009768961866029948492360972262395464966551460271614527588209884154162989349951435385497383907362714853291536026922329077500697798296841367896184671084452744490291835992233319164434309140218751030812071161023923039877537809670593237804537793621071526654329371694273854800345599333370062092191411634605368615804255728672641009819259151125651971849566495158732492911528617333358743655168994157245842569009954369823049309609729026733884374082579636635502237841778475225904122070817288373919247478840480561244815973366217211814463466511226352045465523605644838188887935043170448139006335691604338250518252531289736880775117830030415314156439592156383454949399357083915144653544625615898635024527549748993544225573632005638394131695680155294308756255636199255897260532096282632836588527904969582370252494440741615464998803742510423404591201760378814565832598217647099101512200610874704640934973622994920146696202257164222123970783703302199852965799522117322156124343642399127562080335260996826536637063435545624094688371927032150551912579237524036264388195326100322208394126893918326676408735663868417628026487556239660972352110895508025754209749583934076725784421140274978378692521229897576563898602128744434585074506998933654586079950525415868568176687870716910503998444441263841782879308628644993930776063469384352790349703311250810780334575812678135245095665965882308162380847048392372325788005894272706990969455589511786525949383462477459810717957215436550663352799259699027101020467738707643310595364939030188344821975255210224232607149537868978666209435103109597379666421846168015891977569302261704497879307216659209783102911536524593106942906404020627650524480522553963229048994299079780745279390020267795673784716406421524010547381079186544101291092655553529592323332946335635374109927976151808467895489646194677701148083842394683818445107830989793395944216337048954791446248683561283189297316155257448122105252674495705084159153641770726689812024994914282595439638871137623374446799401716974467062952179594744945145789669111771713671247131639876356166665093199521045010260376724269365702097864245835498081764886920830224407122062661012653638231048032983379366660666866377216061818950516181958740699377020572894565221512153519614030093734677505844092606899168339404286774004638960573745873518368649746455985340012840836249383895880687523464376656524457200409201612899346285845304110645858893300218039402842433104502666702193869034443522649937711439025089464213927087019294612122916352876394370333991853580227292285362806517658136702897095190979054951444831199326518760478734381326309424811568453230519089886743476491402030916302820145616097906209885520267698430412393994215846912325765931621845214691568582131390081685542309321819188894373956414464587841590942308044869554987942019649351753721696825156058944254193062918396497451912986148650960475091403343744018455421671224185775045023389221327901008665637359526085380023816722706694960498191538868163816657627635025357078723054730429224894910792311155133407107372539546248551157643328832281509135730489514216810158532471584041188765221686532623891598625960526255306295751334292160332002165517855721953928088375996383182513227433488727801105180449007305100248979887913317403346686155674938663395363895746914101784913217694169206365101865035129062601267666913376343196364264183460154546552182026751274859669963664091390319489779448689219835631582001455220417720386183325796656610151701006966637224853514658795383655136057710547230190886757157650762732739588297717966877860373607476017075245461674865402711743232100537989500843467302165931326714159708536424811367740481674207755091004038574868390513350301484675810549719382795183662713380812038373469648498888346603726358122006421735885286765115900246111554481799494454636322233623017829790832806946993711636883125682553767317759513299290615951877811325760716754643505670716709516757272155087509926342062294892037230203538494752915356503173073230844194346202525027327005077082832697169109293425357323105223106858619369294195030202970724692913905792574035391995875677381717061470200729366937228157848234141046715089319242070724539532917518422402047228662903633901817592028458615887313842344084589071107371610681919404163930672449724004914090716889740255817050555522657370479377568648928166270387707858254342100417295713760247170070652706456876184789449315590596785750173953140577716617201552960557750501091340211093263226456255021787978195372454176703412362536731406428866334357600726901835476158673532396238323019941052795408779188456425656941597480322765140339117021869301713600698633467882066938150920464260462879941901847841581494556451074583295535090660359486951125784582391017671574344592846765868928310385028548240839803510688173287436576907908746661267256754290115820124088427814426235422354763658176521428478313189994524680779572811064740080020214772460497692382496741399106365602159520987814712316796219085365504892328799377778748707726198276918411602165849556460472747538816512765030349602949530403060989668248573497205047966210733604840039264845413161895594064823071672017794211800701929922751864277473009412566184690381279678623012053222443511134861096542242386259526584007827424095545720209833278962891214955200188081707271539307910193077959900883816204437903002634322392721960520096422375500157301633625971180507496225370901059673926019253176049449653049254584900856997161133801582050624353538484857026777846325575185992827905081065953829680012122319202171659547836538678757558349515108651875013582845813130913353967723818572833167517563326890399912004978423298450107994152624670424498780911583597223307867293154406894189485249640658867504009734243612755300451588389442212502632864155798649572555877531480250521449796647964147382055910744149939821690266296103360417855175668643317692484518613785118222979934341600619909087837435335195314643366043227993611855386559856823321264890816269794425169443404412598956693109875889215799002217223673278428424967435141454547357879605582855588521620984550822935829336132162246101529199201112728561782940233760635353124469319402826327554075857323556896407713107523340963520787633139544135285977343587847025718753166437723463764465226246737452050890882581693870263953789532237015496943380537226529070245003690284816526479493711472877900594454609213078058279953036387558873974128486216113286576986910232930785711923589940921745601356318068209442521268352063458871212121009108169580175975525172821325821872712329674444946754757638319749947362365749165769170351933502465111872818809372795448551905100990313472470558023977051154474735476213967226288152634481233202511471553541476933051537415575779318109975392335762821100532279517899633004290522890709914825011038756872255293537925422427805682725893222635404216624766530494957948783773635523159103104435025986050922069531577059598142917550060122531717193566632285848696776313680809010656975494298399817570903884413540200266659810367574296684032163010337599424042473352525465399424984658991908205653626063630191364670046078517744794324547485452804907314325239781088777417468232460580526901436784690599322629585899133131622206121222761947155020812726440634732616001948220827509858830247961151682979388727879315418702486775245633963608399304570887636752913820657104769734900428486677012097176867618535865982378560501125099398307924926250855451288778665114859549647294006338749197087245462635155270967537093742717455061557099823072585616556618996934893945613858637921705687569192357082649124245596287460164691568657570169979323273263085442166344447843017955233283763519129876390096051568386524998806942543618747507311479761977628785850167118202855622282012088803202239989949996130340837393775165389507473607713699947317591793332251953449849650768572614590301913348876810667262139508134699526055362445777791739612752624580017139064564067600139488335006590662456116356974959610612992985837370248008456557911799226112146473565841215169907915271161429231051587457757009241625596851319495131010618186187935194397178767317820175994846060241649323029485574188846623685131633447335922507367396690579219803052391635628034472023894896620634575402990824947543302791183723357845324958284941825340843615457467217157558222082711279459184742033102067273128780955983626647396981521565603177444724848338685168670262219122688074698488091830865063192023264246791255187073123117823405965677830029159155151697745514444294465824849040220010878967690302959745211573728203312869063417667438745529729532538105965792600931299843185181043401566296073036842742849036593867959320800744917516695012001061368640059014713986606292871823809081017824375421633956924498156992791214441854974564803918734253828207801731495757368888871950720573734241167966909647695134976598969028518255062353503532097928047203147646525654796879584777678029367050080425751177715886376962949418863648572977461305413413481428557133197351882599860226444023372552286342383022585142710344429622928936186949955759570930269319797347069961266802729679029409790945880384531811408650805446885996801987682281730738210844099390564876264740801036730547146675919157285938623998908870680297148261268600238771837936386113077402255377665244682225988319256012666066665742742605169309075321205008027545569205628811880199165909020089589274672596463554230915151330469584856784042506903229712853999641193936736247065921634902585058011308771643186523548663925403449877996690716456576238411982474983786020161732231718674437830179017461360397595087705544355377531862485482638888364654725203359878303223097324431924411815102576725485261708825902196389662744606032401496019009492766897221243493073431273457532136681940903832463406622472832458087879024155095802098782250674581796942017860028532310023197847894331247140794976861902977244562809703488334130824836788969012776725440185358553917940165423801126714536197164494541630685448999737718759471500706219142054273639004214700673146527671129261179205714298135213240349547173240994947089633934957203775287132777387031881134489246682212255436487594591640237419775387104558353532611695755687709713180564958201329160508294811964165133574613804888413838357601889039337875677219756892545423643701622116131074911890531711796309450677492740935654793739485309476448399873174132760805028532634837423027073789511300107418024331408274204516697660609492253199128596118202267602818802833331419106890055145129399150833764265916168575701664194882587638667582365097396016114603197813391011280843584501989491691143306392431076468486914677202386149792501199989834030567257625124833726668347157530069140860056216261808536779557242163184151170817967034858575531653058776723028421055587589102416002741091672384327807272994824450058852964506153949797802197851884814090904324485508312100191746428034446459808562893193289130289821211298817095638599447180833602663999236015139091507211552899277269196748424896498535562172523935797180501668312336647584693778323889099185637289534662363118772572355907911083609482331530160261085969050707813273701741274013543661081813488357370195378962736242927201697575472518958669805026654706021948866302153792011309012181509047468617775465473109771437804477626744565868146805730198509031186517093919530239990781736954645476990071421823836858144005241250642130324427173218881194275739318270714715276372976405248029564463588386765897213367176271762307913029012399207916731056685297620183333652467573671423788364378811606237853368723756157067958875252307585881268628584098513859698925398142933659880513817150698681452173209433740650868469728717790457052826072255946916085324105767208352880080655157242909099986679189805783914209970454986785269459443271886438585712249981442610791830513154627734939177927646016988390894377040345651079734816907396767611645233611558177873193717250741636108046267131834334060998918754700929275752531766983090056016242470623443219046163989420999996414615517958328955791961917810630907168387895281495608632466004726285538335873085840064780866080487421471200174348100297539458781434167106889693429464229112661512323987876793090937794233527354033180072584608840260751574267339887266241890333918729951354463586820578121463280282724424661502683894218914046019116314073672551599960558657109948463099216327826698560480276593280382107528944646530957258658362762636160709254661822671122499003344765864710439963459795359265718638335226958901570063380041122229233176578385712622175019247862624282536491535265385981562781410206590185687711553404839260424731248130427716861614580654610644859207863057333238179337396049470912791274971122181772825543570505713969171403604799637832149142499130621548607412539860674845536408782046205163940731968180972368601595251781262021657446680016497854330684538563222468540370200930675064064637413572007731090132990237683486249246527065721751772153902740932591528086373773374539790677229391156567713862184729701060127153171924467296131636227507901412117525168527281123759236021023788470526552448875731094426456324444632545186265710594007165835501116161854698314967862619832041101674652271878639708849151746998534773995067765236993494082622121075495880659658479374365599859454396937397207741177165455072708657326057503897067531486173027744212274401371062402140288736397557943312906923605831581637704441926230048390318053325311088617701445598760788858743370785448775896138487659396906518766533171151902790560818318402116422240135623090920571112859277934109758565034199431666706871502453117933158566661259585949738848257693141786738325038714044723862847247923325803271652580232555839031366907513960498969071082057990164423250718062275135617216004435471061417848203097558549750979054572990432903802971157923354183539636649564853705798637177694719266311151834590545747520045801504931089060618026970010167308959710210056444738594838739526634952151837427723637016394022779358040331102739846127513277281447359670931471525386013138588338153366031542319004145009945512073526735902537348998188963643518360890917905213037429801827931420752548021866217564273498575744323065420566367601558741058899341978530349178402438307011223191233268390238840172485674788347804825704833967463320369638114759155045780708008082206855227700598869884436495797253983964685051355514655451612694584399046100863093208043908811676412839689779773971112991096994006526731039961038360301212295653803203880922763186459558099632171678915920545335645751866124332223752751116270675084513046617602593048179400197866728675882772826561847744608212922279412505988790471308382808854370306677146543513956832008766836707295100055032931218777391442001846146952300311854307970778965049692988455157237933668768470700121989252412080130512410197387963806771622096544899066976128759008081212420834349022565154108221728935566041206272765189867678130455599438568982932038472631248873790675932919913040683194592834818671236005712214779438830495039185748073400498367130109068123220525571634197262952329763857843673731394182703770236357527668553780732974745400367261397720438028791007171232052191414633272007878998755212639844750059202189839789285957889049705672813437006721950012689498086941018125221751324616312490898300393258323731506106646551257385973935910204654917167866569307490842282368830087662479487495426691450267701747646528740418036528037303635931243310558997511871221354696906779557988081068278542498608470015672804455061533862886175938097624941842423941331268090076280140664558394187614289882108926672246092374044655432325687690222386059654729395593391298285591424785178396474171549808293838971152619033704212576103140413481812377084454697734062407996592944457306682377523321667964766767762333732742852020319372800987043108672567659379086113801255597936115409198464463106114544704025290369714949045285390313808032647295411668271665955527440887260699143094561185303590039934305900006220225451119884975338170139091556383172010946396327188165559076444059449559345208779178726930707541849707246987175570004976392797093094505543293640622393509790771858857578542052214372942553969327935576603531238635669710412983111617385577718528334335171405599228400288952168187113217112298603210990337557082727654174975721553714537358933257168413740590318000483088144314252740058905471900328367144524723412516793926748812934146942312805151516580090204553575769540832533418493525358284767242093056721583996243454332444904835308850996847566684513169962080828368954112638717250472219616406732144813891375733249492926950520625828856745022918693385544084306596847064197588329961201703913600990146629172081295428044165185969454580263393952255438511975264497583803626103708210217062102540349502095572780232401488855309303346965096968302964306823510040756462639090391616235902526422174927917621965404597540021693589790699006307966505827288042469647118908990192911786996489633654876126009410617591380382647451267342419471028604167755806584201202037567832275324320989084772600124436565075255758692580954265550050815259944859600915521273890096541064507481297133120313133209374485156081155432759896032756800907578153966058680391554303946258615259265893155776553623364099930116594106011408764909027973451525236018168868574420625851957191327510819886106334941328028655496598068130480066754869191982986938008638461446282620126918487364372494938416026145894533493780126578339200018991740020442180989644283370756221453942354018498042302859247160210491492375324103715771114637732709528222767434243203991579982025675655118438688382983838290348083882108504459804154094729999415584549803617534797590095993656065665178038399764115703239981374972618760946107569839982648268255847642110857078048733861521704562887745447456640558507650557623842542362973873916118347936783069431351333281392366800654040868013287833212293280700297318428951918644885159212727874312838102580075386537391114740071264474697496420887553913225426971311736610310418474377703909303116787837835798790189235367226235268749241012710486341888709618668907786561169405319916060044365684372871818655168981734418148802531969578296670684784206945541145921194778049252231851226831958740887758216284387896542313355130217722051051747303521114266522791179318761138308125847401441734710156041134717167282280569736907822950424207652567994550028880825622834861996254060019879174178202944244712044585201101446509016395561098516542108192153712419173983649151481186979444122177670121908318162354973217405073321415330693606039160964746404744057168007968156615335086348985584185944746398337941875177086265245897909193714214449344938132469823559198118886231210133766566649860572442581401610693255071903699127982273295540103170587944760103187674851108711539357035268334993874075841660958002860597796747244833639947739010123759001610003150852375885669558875458598639408173813048422515826460944625104278387560955889646842092931593894463579760168707916891625743176821143381570077429347791077726160628999492694742476102489090911831432311761000181272392197973289766782019392888126544357088634794896043249426955817115284338803750259359312761666803664398672147797761078636213971165293634145948278059714698897959596364784108985557900423000885322804266317508428493415127691652388009843763493656836136091651755833612490039756340802626551024883030619161831892328805845663866383513302146673880149100974080302359394066239006982759619911027964064374606719365935964524532768294337216087362912933636194805888756580481078940256621145767728456303083588622511485654956847139079575320950816837815984904507578486905939701056194422546377526359925728280080867211751725061614201606769390959380745676565851616047378895361433478107633422525481406126315040762071187245534933897981167998225055546097044820026687219141453259203983341823705666995848861187907084555125209680267872801878310687425747286100350112568782892776147921281739418457031187892874044274673165251504327952977037202487407893888517543301249815969263510226772417504733715816412845679583395109700595717454705232224262341462319643470394910739288455510276997436110194686469727952580757563022840449127410079354898902020017580591677515263281375487624625258571724297815712755408692327060387940748147052966099453733800302960174373058431606258742043201895976289489354549219457953574084979022696565230747725227209883468844509710081078462507820528081586573378700250063710048748957116260173938115801540167943753602219140761306252742431890301603558238242969489566164108283671476032876118943888924713495785334167487717938157027110717031059325926321300317298359601255706143160932443557396715974211890676173877553899582268488440335456653668619983254675247413476417129785052824994329047863831660949776109999716987962614508096996025348402036024227865381530416811543107262416651349657420468360753438422207666621874205633808383515165353015724213364018523342765102601945544891083828087330801246863005413279573412073635478937316728984281320550225735851616521480753888601663620413200355173438925660588974815977233826432383953468092964409248860363110219766889095189902897474969017754971965839512067367531114371348574301701661560042330732128481573747893743819470793299762096334370709290500085704991220226278649585738563351457546908756230643932768536837474877522722084205347408151107102623105362586914150562943352160343960849371283456568838360069855373386133903215193602785256818707310593339781163479469372379741883002678330979787666529742255693547392912942946931129421431943206685983343149033581694491064428362870477155123786557434218969292352665799979832066291029623928250948430029473370538715343771064613521602336596429057318944001747054091342999539848647251265520180429422750881861326814412369765810611418741804835145784059921828080844535264828818714590900443943896425552677396136415005418556861783470437134703137062754836656302397442114314218200403703246487063080364953920119929772518093735676393646144514441219247941299877307772481986458866074619937630619837615806401732165343882904260910914427574559984322254988878493527984242356846027056280313019253681550405140898538437860038827337549443605478746560304353240521761723820766372847350820283685416399548813036707643747156975462484381076479968190942015126031353194218675553898354348701384672878091597573576163317483474113263726801775259777211644805130304097545530675778453879934582039015483518878847203544097229833027483484210707836956726856971458732888820635789957071455660566031559968338691489399768614296863903190291751064889184106957179611691438307024790903071097957260058902466229400385368304190409811190065561926090955427095636210285859899409233619976179748596002980278804731318782552698218639266344366996978110115337042937222834019252620331774251119901471334527484897565952158477320055567372402087085890132182540915269352214953227763457962487865892916147896011310832303614630708372363171236060751707304462560220063366325966570981980373214617780085478644016483233563869690265135497905749119382453586186731348085622146467025993463504956635251238390198054831705150221162639753964690472894876881354544807009642901325792573922274211190793642494483499068094486639679894925006991340153147878846610615625237170580801752892142971147826830636668679589716384606007895021807241629323655225879748224297629389448508620014383809622926277279160927639754687532182380606733021180490572757191844922574329244686849969895359109484976330657540579558086378851782578453597572597468547854818279102344388626538326820110697362266270738631017546141820561028410117593761452843810718245812973371150875097739625911972246466733785106057118493529711005287370427546818794163754522054959976832279049760828475939599165057918391826761973205542542313981223084038386519427186285496152056331893746058869378537016650404094959601505476925266701526727724175430108621225544693870893307573005541939554781546636238017961301473803675872524258754693521269361600942067043719896438107584930084879668638468749396010666388775385456065069868335668268035579997064407518577218059496948558558742275616130451108388324831366108753197588004520496654761278040227122591043941861461189192525561881522238569685885757564103772088394014253437817115162723852794333392594705373568942844177295585151388392391846439636734774328356294437915518812598899555292407232838498878273795163960341573733048859750792856309538683870710379338746898475160778335857065723835528952944463553133815557171316371148447215935970440720594424052115367673399671226313109083451651669781252062808816710602517487413321697458745310029078265891110666618358507121258199724450575689907254707136928930210401465448475208886199576418600443514348354330964759255729257086413367140838645505653724933137420034344155789449222083158472766799623637079030224846946388826665704631020518349378144629404794415710837224795143690577545395102296656193500435011163329198205962781171463710883547648332800754852067573525538763878687183703546339903919035950563895278848306867011470152156281299823678766809117015062878713945449966311047641157801301470279886490201445414208848516637019695034233204624944671600169336702486752986509790836288024858263576903651782002931754636392701138983957706713921981716476570192277332360534609189396453259483027827276612969225246013746339103971321075050987810720936679202954091752577303122671479409848829858960971399256536730979686967300559225087675916688213228863711833621041191430678741791415184443786455504866000103930945927375758484803321550866561236641923430163961602983531694301622320009957833920572772660479985961547410289683253275951222017778403738713397001338803764133358628873117893618592091073321127012443821192832619942408519470238817569457405165638645129787977825752078848514782795674889220509749147152687276998202124848455775678060081754745723185937118490285492508557311773366465368800967064008444830024279810148820774770589926490596701022394744579362371033377729426067279383652689416600551475559197297757321981559796830972791248257358230434977658225415624855708472976756558940376467054256810189586406121728574950834514556363408942104036050025860427072440340738819488673602312886625349099472291928725563305925770746768306646212789948331838236376874125615837245338070700805690427832641169337555467942577011535679261902097025611347210018514691573498466719835620195583046829994108781562255017787759796035644365597845262833000585199142374645946400420008066024016734651019794715040160148120217512472616022639962676542808458081595669667005352965459881903788502392713576765747469832267915306052952723384126406737853799742550262118450691236412599221547366810689258729169285193055896137085473603754279980781259071885239448308502215172634843467299881238379711942433392780567212752696609215812704490378903070832257971404974680491960101139341101383683098451355118710373870004253333552233753850049553481661755754437206446691242613431482698390976183158153886879121493098063451807226915192474754806114112489556265147020502462746777789553763734838981427975195554295503247799434111214989309018858644809048559675159984202554033903230323570832100130739926177646314417949576987903728324816432042704299376619849868667415742970418876029985587902976730329457013465420590595244907029409486898619665901702235437305140084680438742914482610989669489186230400292194777255194178451411362506026624863805789400765067205383294500783139187377855684149974149138335530682626826999078013579122730094550981349359670558713669882948180186437166288615538385078296283443207168152884415243438727634935090481261679365785582122509736725472032774586864191506974649531342243826808119219444261292185425504384671346695822907711015334226239486447775408676787838729932071114157477798076410226268076653296357005150823627081581625458021526461343374386726498088705544286675351371239939532830719025280641797954537980678260147468921227300489818801309067595669168946815269041417811072838234231273581735610165724344284774830442914853236928882034357113016001037182063018055962622036313656866962342657376216179510036324094023512415532162518742282414576035925088719242732236542410465221495635929312422187924292349968655528492784735435278086372910741638156449308504743187102008036095998309477862592087046253905616742172890064615584288443301759415742814876174434473459807746185912890028682202227981262198966660812154532398926239138956240102712823444831027529221770252454293980043512039052295210628252024755015795089278477556049995309611525481413921915912194875066818355553934074001652027818587032265171447278743500785682633599946851337794347349786242817765083288796697179261276131386273863642668394259022128476992785036098304163553131371066837406278870942708271895009395540595920488602827134266014575982306485031487734678948531905086671878448103555009081681490025812393618722346253979861898992601091051278597610810998975399786361408018549934748756603689425931792914089062422608099580134576393444916887176898579871047320162650221671203134085335272189353590144130729815920620950060961060046971031497053473193570678910931096393602338432150873733197340913870150358544665567502337216627780574086908361761437394739372467364159255899274665872419238732187416932264918926677745480508781395639437393527716474995343845702435258371232875426278664932804595236527855703475364063034852165803758832695093910795683935610462055704265067031388765045791623346167515562219060588419452339422323587225507540822083324876316828619042879333912650235586978891512279804373973145995798291155409206644727012346048948506624298981224926470145309383827636039940893603724963860812579493140628017923111009405233424065502275066672626057571221525865080718844237526656554442275651249922082826271321071962529083741726286274573116453874745898101838705810355838355210081916087290633818402179935589927957036632565974418798604025639221619808647487346089508248725988748726458050985032380416482821171213874634367522639739307032501765114268731552527715482139823574511793374965044658018074918857836773852746382403574782318942172983538008544926724949855342925766434181831030231125265609465585000351022264545093653088297656261098590503596208530090470669148801553702877891146330314906891836052127210503675610580984954174984255463601992586916534609011361201673268619087025935114942473344134082577057847006119257356401873300109053278738176297951022656573142769417535184148030969495733242158032920210062094344759402599932006795277345202843058739016641760414228693082876892836928175250286492937744428323394192391313226017772790788649411938286543219357583076201019829923728925735785959189381275790517630043245480963274485025534612936075047371028506355051298749333873099653550793949179579655900454468914479047136001991433803492799851427280367474376382196214112121298560192856898609796861208614524670491606063910844770478727636335178015717084962164806403847236208101147251379199357641840940092746883716027392683354702257272983597990391537788240389075497768389612680954651332485943373535123521033787090191523152769257272962430373289970598342666312275343912061118747386070884427199476944095359404334658582624847370607475705589105662718668796223041309012508027100483640331876928439157569225068539488206509938100732178251354682814354393623686743536165798095538579506724043593996694334003061989632077154183166607369928677095052129640171396406420764678605312956775607456578284842107358428680124960393844048362134525023393265933593372789206739082797382874299133411955671137350171230408850517091028563238820714252062989696192690688541558476414531527246821755973416508190152879230825869372006313490347599750713992203295604121734867819637703778220533465294961952869963629464585943184259691803702020870976491653140207106463284283414407773562172707921909848553134280844554183802078308404207523050443502063560177838759236145520030211503025436764886371432742618261010587164803591746608341101615189651613701762846689802959194509814596547055346271540050477327994212325159419318362874748582741740256639944193750740436380013331243952223589170891964915299378297520390084191870104875277143126976962065429642398515859348303999166164559738524280530013503902585854755346939584775859190638703589612973246151902950020503429983121096743142744612083913127857622522351687700899650044876612600796718760864323990301950810456926060570667883338665704090984774869233706186383524852281162571727231680778189269933870618474881965368183993458501901690321489290661359212322783982274235946839018126778243086593531970557931419697385233794014980660167411053042904401243194640306124081602984774236499303220484878090306899948504288476302483515966829747396661153605977696235093832428894344690024054854656666237857225671091852766792864855749908527412848445352961860327231278937736183492313521655631146105465842521429142508581948289078867213346666426505712186305502704118467962891837214563638065965856972522810933616210842434054285808411192995808164730115624896872020217373718043784625426822099384810116561761090803587586900030809845916501689141059402663420462314754523056628336045189214082727695712302184965956021467965361990622517192295282630599232465438469355158955872228714267697164680282593461692095145776330598480430012529670199169468786344983674581190808148241022179431845061665127457851767122378077207741726328701677027103116187537592991807446503366269164619827459947254836657250498513826644850850283068749477009093906104583805887078443254028651024414910448330126413761829973691283045896803947417252922880872431227937893910924769217581973180933176393790116669516343685822710872762018055416733158614135308242984918650818609741403233220435148699134732497670239154973300421289348858237762291410829689200145353119043277524758990619337381561184806275508229863823025762199910165308520020496345352910750993960599455222309957339239487184417161358497881749715317767052943372700730296421772829885734009651297900907921090130221181975263394962844940485908761887145882024425182280068975795393607684522079571920386826341798353463894202981577488353720502765768879628074667618551224095769269389527153428370441944476710238684152249946646845650144557068643562054692239851565447472689541735791049509529050418407445594841826867856944012855181182931751292337942050121684252635393516941674635441361479920667317117219550234694965815263957366754846422233577802988537033568380604313525132364216172554642613428942837671415714280959576169779179153619564231482420176397057341124780915341018816039423511969332484631068715222043153130997832531534895570466381086390402404363676486416613595521519692139802636326534775891681673595539057332326430256777380105945112711842967469633849797405721800888250471159940738145784878018766457480719738487432959033377173664273072773450516250109378039891754920075480656613072881095078475492768306404915578023407632708153804376353802985977335203093148231764754301379047082361757412644332306239142311711364867508211115858444706901716050756049367131332786095957992241594382526958714158086609632949535046578424482459031207116675504099051831677562831106384878037150309962817916538089129029811564452820803627508423187625905302606105878303139296410192401317515539001520068762175154532273051733861229814899144926748670004690966169366840488008426514465055954635298169424656266147679180034544214442072728874588006847129997513796870616361372663882808546435082999587061725754006937703397248689494824204801589877574594251150856075971351477992724773447979217311458226867126529994467327510636595282288160275450322142178817431576088318279489245334102105058940344873515118700628806265844895785871826105764395437647889482166556317193378600632147562250424827849087847693605263904729834636082670396590067387513442481901986274475933142156876147536926801275012297047267790540762117101690615253338428350808405745974061525311977049959031841515038339709638138621200323771965393268248137205863379484030146188641289224219233357892130351886167074812101255291457445592097892687288770186050191164895724908436926153192696663463052576566768312527730319868582069178017993005998848151060071021837529587396207016959239284051365966654636597807416826121452878122815502132956844096746588872608869910045065523298702657516367228046961702634752900508453141657814981582899568279370287754358742016984453548077457599082396481280770114712671808459595595430326190147216610165341772647113135146648058920015522209388103961792050861957440154508088793417561700506963242481755303164909171886149497783349924593789529803414763479854350214396672851845335586180050797064149626343556949776780721242860623595254047401046069862076628328148654186578380473503134979410358880824709247053166913482402479831289638637481112014306842170610993076323094821154769446108521456379960674163339390440031470180928434203622957910275529116088514586889852845093491540944356581825448191006187651267140522768621540269125406929630286852847470898794349705367447453472898595537157904175496690050653610546061953258101301422503870572651465833809400683172382282418151973106211545674581929595798215948512809419108495169568657471954577641439378686319193380489629400020510800756810593809720147525903084169467936839002838768808055573875311795131595059867492111443541237487068821984357034089158053922003955531040962213473926627974004727763805378691104559245962792066722054579135631123468784481129344624076467979671513436122549700667047111782941899970087893924454377882993023008316586496602772816277820866389876307523642385414312296908239407099736237515567553852181933407043674411709005889508155024872886054075871684716297256894189157044977823928139070328346370270930541044517349341234903068828565710597509305810435186123895344009956640691599322178127619631684138889982537881538974940572612340296966902642686671227491967399929808747996299198602103480065838025974701578461490601649976504736672453791203442247506451980039948864996224646756291061299917938348529467712657130242451049988419776724165484598407937188264980715544290583097799818812804551256293010445090242184425761845534530599353952363236067849909744864997672248589168811251915873898672500655552836875322569572454370318309168745352088583455948399569107322622108583547286200307176965066123830955633725675209314933250108929805025797270637771392608812719791418075088769244635919307348360102003200471154404146800923309858053340776110179952507507667701468897399106958937350635441359461101861097132448046111056514791898759552296396278976905440066989934532915638834015156211788617276384502255006324050689464952098251050981093991295812641852035131812541947044624626488248486178508731446269889963318084450238308674887737816305961844141633605858348171005717356116484733703068585603435835349235935740413390031841104979214557274659484997993179160011632998865705761675088661266651016882701657248791830707139005017338889069034488658744414418509331181544865190443681563876078061509373256976132615439070051837017207264739349721543775312192910097269004139352914346830846784181346765944622132354844650071937074262360783918673592262452296276026268444577170135710359119376314343612139703844699194733701077989626957737217730766663447964082269226920737776222869763219846403282585063502175222157665622774639134642689083894923824227569122101528128930670684001836292647437320594740472316470384567920830382264109934619778348646274530252745206418277146588189725995951878509516127660514339154637190663023129301371915199689548592625941823165588769267211941443924310023926022824049619008529339584948255548515507197518261591258027448723547694918720992416280313390164552330695613025440500799933169019010258739085647252196163955025443213711025946135300122975857560684369766255917181745926633811853683411807461769081965297583120123323138128564560815286125474347922224649308577059925925835646736354647772806998941474581369329751194335656516904904264455818200745863019566865783582348994993413428694596180484806814247407023869334488577942307246540158443455049189926305873752988429708604160786339243519996516573979765709089705613109226026018416562584908647710488425603611636640256310436862681888930280832883093613116024460380829457317651112983368379545195807248221379588365547603175205285452238690723257472921831305809615950999750133208267506333825737375052851761707237361475370907593427449215975250614041072546149303110650495781679156731654582830622873831957307648731934222852546907150222532145654819236453939679999912842954929193522986571893640890080300907041994761725637216856430867010145910631870309538130727656828213928480204346399896267863564171782357863891653133021389425476565274867538194846765488503700984564476126757282491033799624461824276768249735001479646270553144431470909949859176391241397979980990029970116906496632037208818023108378762951770832835670356599909966088795135809922438974347258941621560508425919865993210469501712236126222730720368970718733684584499696408869515100923228338247928392755403373594278163184676414018952533006111562036086933531551111251257811126406082696400926673644970405339679262980652744396510852702865353565864552301402820257777816028017047764442260492846805251543596979095772883950998867551767473066751099993398168899973621654956303011715743542099384083467432683465779334970676691681321351871326727730573457687801550759733108975968182013475740711006048485559993737149645528126271907204604959380634403451026546624284647155237862554592893403090492745758399515630273364806170967685056745369956371647984918070807397264492590203463064951026756924387310764630470475328224774976421599944169577537915467271832622404483440419456941595834000984026872001960644096685110945313965716801844693077943465959223739797596064556345057358799281057414880074559552810500700319072250974178166697583432792598733368779365958130654441606448192889300628436693937710590323820926556959426304993737960287968300380324182229444181703556783827637997013256386600062384576744828983290571744556148248191056141653582728985562664959325531620501552144898320108570291493857294757769909815882972749812005641533459635150997157198620365649112523699857598921671455693597501151422907565209838991245540647358895411696710128882895559519032529769025606604633231615842992484429998665671763330567093207731039716168873297389339341643376392280996659564849976927787715585908018411153739767864970150153352443303834567214766724961200676527502297977917291527655929349242157593382523958783453743179449121074287026329764314258611536078426411413237088873930783032688200324133220455207062200363389568286337429433481518588622315387263693151116407831839289281405129086382749228336178623065286398274214681315320605258629310472524377631907496254309633707657719136895258677093754945659679768075682281954646996340137195841286112685350377667890873397939585212626810899238478937672240538084344718622396104421503334047493799006822029402132024085834151325408831096763385691631460932390674674641702730504865020966511181517466829831584649105400647619274204500441103707615187222935762583870476285308358488961922767320954666193656703639650566645499297780608274666799609917767658669881598271761230001947902430917871873850423415582629013210123545179522605669177642783998479894566713680368238289933909124273154651229940103519358295488435041286467799744772837743227367270139564449910517884111254059658705496769254626806100722635706172399414797828944319330628880733822335917159139453716939295287569230223491371075308356745177719679229584583661352879477828102693885049046797909162892625855555465439711933002923615603542915082788348698557745497805783120788783304530502307582003465279748308912055347858484942611542427373708796210900526102399838574294053939465454685794053348231219821239927068539589102586552771587919100922019755368586356767603371172414199580130547478668550241757326003072226768121751804426686634068567354200695118922423470774752161015619373233568495698892232530985994502811845799325490455705345569800908694422323876171772527189206374388361232333136538469168774793095890596528153753590019981440181624222726183022931788352542101237246263772982046195770581618536441357598710732966438994528861423460174300749552953143173426274419197339329255510262729083047096513577056706555797079347566544820106608719013127010464416662854746005181147928934529245234287759767572439630523646064887559870212060990134504021264890467689551641847080401139213652391338860880823689604819806690050544047752959851527856649228080692712612784391872908323578185453280036097831145066245379939229160843369186033341315808291791518829320240609679931219619570595107754446071770247504608366633489745524139417127113839542162238585419440421999689881209393113430408959994447395317759928835154505670281473056173889135406537169600596165607847160736757474845685893109856855432622067967665580833548387507328902592934735942583424088652867654315542286034441807638547765125902443258739196717596760089401853706017628328171974831516042798452256999719751783688025140798752290815327070248121610823238315492401239864479133007188883089189510512608757010645860493384636351536215237704670646160023011482108794487276696298841768279165259316764334870434720392875938539648842442282594972346995444598203840389539348102228065129200862201073127062529164068134839955555344769993615828498567126736735368526177566063328175850494488682616293529322582772933717880918953837370919173336383018792399871831479163760230604699757985629420964280537003929900834216009126947887341586975942874297372174917395504820129537289341951776301424328453948953534158788887570967107865622864408917594233944313125868015012281661723032601383471488592741560111178453920262066932116052090946459373797587458576997416012711203973137359325227666987005010749033154647860366782355643743508941399162209431813124819327630677056742862845867204512674949992875714990691065540727352654013651138130408624106633160756878502468207090365202602504493406266987044593226113859800755775914550762382468737231822242897073286062815251640914167283236439012072025415657534420614941079435184604873350623743618501661886738815460876440833609543992495610777724098936222452744733691518901201319486243477980923046121615214370825250724341200734205118235727588321183781768414646090524070486999841353412786254187913208554979185534817990182025699554229403595819338558476075563018896998795286301085019297572011742570568410783486234371755736884675731107528197318665640484168670990762897590391780015369953532369017688256499594574543221097653807056445127327986990395779971396328846614208439920541085398557695218901110930953469790925462319335151228609883684501428492131241936684824055970333534708852871261719232456634634968193476796193522434124915089384200877208432478026611486189999092143018437769187721739867017859128789137120044963144481401644896523637463877435596522935037773637926655449534802497539522340695377413363771145797849558117783522396812595150529689704313594819467570731404620689340192961293887452663341196404463476357523827824805402174775576479339439535930334047896365669115566399198211752101780120055660252116425403203191216225055804044953975925085477333163812779240238117186961184556631674357860786087645364399666447094740056615281250945101409645195275449579244558996550778924851673073386030698354456313259867070071183668586152234098337524946654912995529380912386376578195964369117034240413356663722523891365866725086422575504938238622271746174089839981373452416343681159163666401052670690967990569626263998096667207769811058077597718915633955384682181670164861906400026295594648710574256634600002228686720798543822680880180645127709869626694528125082739436148218102334350702193030116144891952170267958729445826124540065898496484658135454758816280499733746442128166489998560415913500168847652818484524676011679611613762364701628791332688507388253434931003471148354613554372813455132115848690073512952239050693784209293903814713875524308155678723612966110165944197054704059109437200901644285649424098816696690369056178134586409941645882975866419020401508599749339950781183460311126806071127235435592148809216603552676542305432544597632111343532755819113579655076647679848704252028574310551575586723957631489549234763916153869425334516865629417846459703456409159250918324933691067624523250937071277818849762358054399774592408169301394394467397288119415694924244230993445065372663100307218886682250338087565403583706871776902019593773171314387357714146335334911010050383681725383844982897219121747539273048940221594256030208312309401156994286458618530335234966970746586439102082340756384830263622489162296595759355455471505256384884658109526989178442093289206257515628366836834455409414078267730622768124493411175404635263205870607513891529503648141902865632635927839269028793527355316785872563669231508502800999140299011988678555355522784880072749415581761238199204732284027898527909614685101622980171901410260000298644902871896463591621274254724213936894462982652331807336698439563352604391250638490956672700761435946470259352482733323284489117918178754392072502617724651552747333134143713895094713500823410134011680499207773585524008101896809399925397143774252843745335030289368834570603249640028258627251525418673318870083189287615719194511046970541658514027145614920540179002038305489856928606896386848422427634910532049616610109543518501003024302299393783457728830727043468738966041392248127964291407491925965816287744913445823470147376632853651789793791554678837210306026184614350706947368926517792558387168679960578170565635416477279084686135162162914727346622585364345433778934922249896369579516613904119631504292678408781412886425459703832230900168280254146932360106940783864327843328318980116056652736523288323076905373866789935872334056549341033658665423561449096004723467196398172183390817868638433091528300772538863080253204688040368365207260854574376789842464284338520369685161357341609137090401158230800495146476480138360896292303235460446197920836824493661600626536351816607139882850223442286246542197718724708379804544362469041527642142543310167693553497239076468293890224222279955015396311334411143400561273600242366538807818799464133551462767280877080546937667540074423371496180026859925752638693074873129978643340061792273491737191416113827249940933963744072021110850263910261011795818794529637270042221766227039989056244287830589156037894937516626711847561798721126294658150797660054006291260513229859802625386561550563069651349272998578350077296482120086707082907675561354558121133453233288255667816546429221609170129569696233932107009506556800807505057053833142845221536977537501865955083105814126500084170069640752256325297472231526435504090297040193680935313084098051365752210429137128279430906450181005620304273567993447885050292754638383160799494412180787770107565296437888985547166788478964155721492328363968472132100515208058469373703756946005413001157653081951132345197571934286246879766638494895631688554062343404235644283782110169693809250763335724345933503132820722909366052299901079240589312362879653801887167114229981392452042009430460974269484562115551159432750230356154657978857441629032589709949561212345171015663698843441568743760497127436074543239157839538415475071910623705212938320488588618161775742403106907612670405186371275202763970351745325566534236629676503547078441409730172321534792073543298182140803377773388409372492558290942339680172136722865386217037246213719058601815740745008318140170110979575080847452640660264201881906539974282499921640568354284249113514319447315354715651709217606732374545730844809270974765956638213458822951041637033877358536745947702014305124721885276538217294566993044594500579285153538467634243738344831345220435539684969143419365349442944978834906397243970578995289105134736385943776939180383936803291141611865417329191081215307853431740047170189109351640908356023029124488083757664046695233090636135740451719748516844194600149234227670294572833490257634257312447238168766988097891151618560251820928934652028710587935625168829959878705724858000069037754004682890444248758507747691748374007703481657696979957401085081217442229996489023668188141048835383334437986039558649386740864972719292176423028943917762214032763883854650515471690683754042386429855855904610177447309214055823252528074224273642334063666663187794524836982118270648606369649962791632878802758588360493758514371416309816220520075254042847426955491868873314846623245855318341139832565820534831432398124117504545151634526111627990665982387799533993689342255937919057546474542489008931318858206905217497441409874004849133395763340024727753993173895753843223763339172711644847411361632745574343199302273030666242093418518646591672846656914664838362283917442633280214040572175863614621907359503592613904747389339661937196496906897686418336584826979840291543518221806225542438787868080720964889493571097608824857285955493908571925942161195551386764524645727122489414654616046512253768497535798767158816714336870086371251494729249488293867623954112452919550268014953656013137058558947864468100654171992300095349526650328384362882226022047693262220561701735890222798191366756597268623171705630090730656327466740789140880795624258540176986117909820539741549016130940239430789736791270921968161758704144296487732608726793389443673347626932909350013246588193643190823105404031192164761878845690176292061018085915543521510989808540006008811693788728983790011735564757839829062430887456632674618569900254415647418947514239998465781377943418969393728689284178327670261901532356827168314448124521586551564682483590000816354182759145041773915596269859818770846961768938191831205342760385250094191816670249293091802708277281215264545543555468359383089427085061746318167200743989211851578727685839828667683548659115975325953877142766884816632425990305217831790912593077021939691129796147011224589624829975740925239547431781865760445573342730366966264531409785513456914454558206808353021038227231689396840946828532034318730559444199135714528230039421093140401406656981098144358862483717873347485828230618570642953593036106886630681939195870163814985110012935229617869764136043374497524799464989851392372312003007851459740647039799876771873998325284482423911830587698270339689425184575238014894298215527245869831177263069882036211461448373129623412429284958338495480245133021268995354566081916212926707793762381601039445525462672590893330999572814638373317759942648981215442796422781639182773167263308108112001593482246364181066768619110605471751089859115982830140901142860947657642942094443566209217636565207487899623441592262176780307407080327003189904125352623948832864114065256588434977806598459451393765385355357049903242229892541355178306115874792559321194698625359241561293774328763975670572641830253935732102935204779911408580473596053242879358161846172689555321516028209291481909957235726171856341361766229775407474837293434881487970859472383381918416114324002654177627673168102555132918940595617209281218958213982517644024122612603954330152240048563313936706185301306875703353089496593443198573776860811926918806050206798197768284919498489177253311917885500580312912218364542936441438340706413487101739904379195251180401774240342910955518883524655816406706650980538626103973294638982660017950914633515248203615055051325994169518040559952495499214439929557639861658031416861792963558843927584617307414953640987572365725301010075967015380396255698206344558063807419530037084221955183553633126779621516073602597642825315838950889920864243930728536542587338554175567732624996378959017120786862635412896442460776031011289288949729887448224342964695236856408476703570552354480808447228190740794642465511497943283148983698903176305594293005908555708453666198088270703954720185828266569840149644463913373047618576945868889401180476170586945383642992889926849334722099554697129684521595337287449498957322573222171114024716974009916442947347310157665109683876206574755533790837214167993755363040273507166318470461600299566369099093778283137130279880436091991370073790359504856410324257830585685402106871183578396198780597120794298311787982725436193420598182894588110603553769188860918105599466081493857922036491191064444096353381605124979875901092248973375193772134786740987192199514123527792983922231927551161021395610354461619354347362588260695121333392344141874611144431792692753861214396012722461983699086637839847942171344583589034513352833299233120037818051619039157991505522591510890263096258899388952075199468595525345168154388261035833230316882014929669774407385281083122601992996060644235632805249363665059520474008258991558608410500953223660146612170863197936545505076228632772684019613780308762112383671556496536452472712543666211154668885355623818509338762486815501229584266892451966937479417274278909849645142093681645563280429486112680416994640525599154305509748527788112262724800413002736641245152968792983922300490870915964572462173976159590809485401070742632542109511068363488784150118237397579356735349430594638856833920288889130504515843161146292119304519542127020268351994813416726483739935796208544544459130731054116220469167320243622396290170997411136340414616980611021990383341924534488999446359264516070140918241992063538876661537448962826066374372170794952601345938764239008811798862511822674369356229277758953216725462009155656667570330640507732250119744057454011137810036221780821563733912595019658322808953474885871151771213670732677318370424903408954007508928779353493737498769127428187944987418102510554441949600311149198995570771790947244137073640438544594304110755492779019693860573526032507822485317873572696761581128981106088894171150262333232605687971618169226489495316251484123884429670252179031482192857934387556055394961404045367318213143416830407444798087708636888867468042706761487373220454731754877009837897090672144957291946407472834912376215548481823709534013785388609930714948079884676498773581408736146170157243983156126816731320789742596050366573472939662556629227435124686624159990293218946725087969291633765115836677531298377244553790143743291286067074452122639864469106399248804503068198029615481989777426692204504372902285137546085254239740536196867336819892303422106318773239203956173280942679841066385654078913226274646760509984885396810475534770505613613476877088604684820766088597777004654704102154559549174746703062873012628894192987601229213582647051803918179327382203585610070911251239868039853709981603608778617874964298460988592971035998573116385020273892562497687028702151424080884751517160960917759646159807657847579557978982648420643731707395748940140713138379582231694546898141988392027096070283879110415190578724438856449681731283908950310780196146606957459417439909966682007722417322771989756956472128760234715653161296603409880838884728693547267072157199520856242938383871857971080728156999749669687983588623112472132052661457412027864012838043659147211044143314628233739138483117643343783715791490026344885915830950905781560759365715465034897501485399973498213191052630386448051663697842860191344762586830412587222207345288311886541278927938015630510602961937994029466154487219762969973521529153612746987883877385030316804237619241579035483789049837965126474665284424441892483051424604959910686820619226918791843109584452973714222773356954541991712244872219157591221979876713746217721577303115155200044218134293876256846420358589292084645842668513869482632122952370837190430952590797632847064385265035544366526563190475152442431372498596844276624126829249127516261406174777380756972393921825150455870692960110882883086331045413295199764657845050463455558785200442519974855189700907505577519968392326607353937400355706538091221370168703438968303556807044463305185750809786895422004114035944402768804945063713247167318681317123176086978428118847115869553099939927780269611578290378937467774245832515706273300121495231189146740558054671240925556657510419746280389508808153594488139671411561864038380654313708525156385088267449757904881763240847865246174204408832833388245774216916721689698716219728744140407735937475142006789791609454566070916052825920153480998776239985387473111033659873223952525857088209847643946338270167200755334828035951921015504328022436020600041423056040128683693653185874730158034794461728304732928889887963803064627704214574909360625958873592812007852270015654259644599397745004198165889749184569923346388027534333313956776751412500333204008873565509717525492838457023928163231235838550171751806397858960785324963871512109211736732660465373041575663327350900281327664037118331983539210909490875280200339924791820461104614119790745176825017407360189358662423062590171253100148140274310817913609523455660375616137955756721104615537587877417574238408675352277203255123289633314079008397674385902804639564666514584639255440951035058057305508246922779919067381976676291908921646809731286113633630867500464708790523115294177065027005370360829414735868648583151788273797476917542084533440649690148441863887375079409045491017672047055782351268105837440581487757240138374895208574684359988020278663131859953723094911336236529025804688482310809611362176098825185264177858787728024197061499664197534105816284609638882028663764570347762631508479423722317846884596288007464972458373696592673596829599043358037569298431870114266535173766223406400371591040815108248334379129113140825211107623187708405452440927538354584353222197114247743729336592092646225307880740408031569782251292610427356311922371035872011548254647459420225621079925017967612727900419674802940772041762759780925139838367968979134845303576766687595945910441309623760626454387122839222836841344895797176548860911011963131970045069539596196508511627333523286891183807136235646332943452719346476714855685410410871392710800273390656594372022263477990016317428368485455041484532529321872202907349994170558282175124363367290071389762137304153456822742769359604624348922208879348999011061480695735517470999873037293294016740043329528724928383949840960358679063308968769267085403699575890874479484174696121344982477376115025592696688962554587393632730413569170424182804167168623191887464492057365846488241203097263706951220597855839742938475474299681214834935073085154212258849662592346135116356063023907278957362477934028102956274722797336998200817112312690869998186819573047635744653829848265880012647626861136536563438350574761905594643781012425636525296060394907314303699381833139316232163318809390448821753835333093957195748681941519611207336420304639768276759210870267307208270560072059554343775514212527956396109021186914254549191407526828928330957705588599263468712143657238362300944314762970085055745925713840298749328203165954735313697236501911950579904796074800590221286319210505061133402864269302214172573797870506123394232836264440952462265031838383292250818019598796380290050003745718808789514628504523197673529962525761639568393107857330348333900951308341170364842792627403767753666764736045838268833197700546281055270493446315720610315219328389390345460202708729322751678109986426854676536560095603556178310556173337060091804587113685336160584485623419667334652576095680142537487998927265191579853134443599407078074312335153886587124126555001268092757867674990934270298343117135533070296346391932953647721630853922829482338552805596479633850560477994963834603072748783038140301606120168460778533590085593597822222134809085911508240637904621927169798013105977383606526481212395962756439433769227358533783433394692506316355934357863527335720739504106867372596973265364529067382208747986014971333943681673163684469985978118021448995140293425130286006144126772907365771556894407240907931193009429795560134240615463440984098427369382922542411155957046251114824208571832462040419645808441967339082300272211574602235938920869750059738455958028085999586848360546615382388061313689597106637859413447691493628054843266774231454568232592413992218450178414155523056238345855368667880333694852365027321203334280985519243431604061089893925205077400108063657608055080428098074749746873131070390050982836954237600242048206029370121380142847359202466897317791922660493256157175448482020728518594122154637011235701169396918931955506238436946801614453715605347108784070255230842471905346257359652386817214410241125559559485946361135341260321161235186415205170908981398804428403193294771947956695949334247145259565538157126411647823546137695069984767239405874356573148013062596101777295328029305075456488954676028177055078246650516665409537031442429171898793710109015546705912388463189113316124030848115954305009473000008742476945988199422425395583584512781532868681844787532876369000961091645220946549519722299304098474515133265114875522753642874214151764917276647855575283045420915109698693199886822967456496644423621429040191026997072089877742142196634858735501218682991673149757221058370111538251297958623411368093951141403751425379003950017974010121695270742839439210222388826926951172906922977399214027018330117530505296343362302657448321625804972983262752526605410550117823047705553895081737710360285458785086942726380027132404920014396604286008017015023215291760834719144649534550569985682886521399293645948876351692535672154055509956937574384032101834145140077259119062337127308991850899914563620238206867945991523721653774215357849601938580991718829445881452153138339231017140436447207228014485157619445277882472551742754882140302102927987971280325783008652986584913092263198031748520422833702414640774065990040580166958257640001024958100868435037089393684848657319907061845336651750382124727442902270653582717784053311053233973859141793536161139649116766651597964092618667048155994254960094341350380398143055158252217697654177410507122453345442049380002308555929106607441536465952362084502581714745058111626823894078719883046827026154704843313399055407508669027725156534938639925282305868509982143307667087387788382175000249446703324244825378721767271620798314114754554201279829500888436660408443638110159162657613112050325970569761077522697247371663756205622811611419611833918448734354753024655419560987786776027634731557594169531305216318496746471066041283921919820841198173800658634359048364983279157601749287908982656177102979095842612371625453958174071709297268996408349483052071426927420128992194789072280949888791147801560611704277681954475768243202356073170583105567644858579693051018430320642977863538571765352563403070982335323224203110027379677065358056861279996388028867464251071011375908784933564201594467209927141162529034024834976339214377280223362905722875711910737166823980325980062155179408597267147641594207474228931257669880386440491192727986619626808842998958858910442586422684667130961228808218623843155938236373182280424728161869948070271219969218768872837783761357651103384167509372630631523255692153181297822730220000842142760673630470465879308195187635805514587653883264860762434471650729940476493594315151988619972280940318171171571407638121508821337738614781502957224924475526256470669028974840423348668332769548478327798338472746508848842502287923364562935281527530547880437531523723750587911702839356835925561186477959145580303192072436810267811818940093556712059547467333048301142221081772904274220505611362995978760076922655364586953804027699183014055977829971717343624830440439580424819232083860804914565956037824407048127202584577058809934813938826890820557690861079484497442887098420530269555500609927251356852046699758816302663946157631466758664151498645583859719072516788177976791807877931871946661300591566899973432518785072571073818010244803133364623440240341129024092446774374917073863621663184081391506215002072026301850620729250489847052700461598218523122758908053582660251363906894786391423588578340803853235860825816476876367041428666398508192122646903860363856077776822209113150765199245357989750898950069548373534583562117512612052319068753255974271644576136061061192456596752915754656591113431268495759285471882759956861077901060198313505258142459551663868758775309180803733079000855968393712115890275331386598720406986088263661278508982952688644025042071561918469013926742003507250464883640605363111788550822271332641572737504080838862026149622289411805371893123929866018667485851722219590843676197988981186254417225007030622411851294264934482568443466997345167246861487899561436374845825118730888415872442067890968355978644002089167402366366150691167309759332717312110117063202717293799239545851486455883166812893971626852011151189645174105816670112468006715846704829415065166099145281624373826062091473842680082242375321629810127776967640600567331598374014428769393304045689705016104622491389885172733896353066705875547128431757250963252057707835756630908524991933944052438159032435486807072364141540684114483978680432722736661510851879480384416537148022242270242825320680233747895230074086265302424170562697953059284296327815234476572505707703677269512346051102646403899927524397077020158078975875474878136600284441158279344752087635813674826897848214524821564829453772005226520366891833957133275138379243241088917475078928441099607943601431590511414678856717572860165765205916728819225175382362545346999561274492779701016082217125526974017173395826153282338531412965780010046594794567137499159319899018568468462312616690906286750423285480137902865118944355601292123884257738142770566211161947621326448354892749284205976959789092203848464363905562537383312533916722682816331011581869997734883740853967350186137473919090000893784842392754419135553433866558234716868390096799703832327436827781065284616420925947163550771438014956731304013382529721347604421198875323850801156143903990167487922302726905456700692213865878035325501567548106459432295326331305132013826203520881392543479736295034967372907949507564437126008167936873424227786358578021151849654693155060974143445816279825712355425257797124959386563784565221009070156313694110966313399904984087118156725478103526473604275474544206724425013214382376513588786585434879867778166995953965210316219358027932479399442591592684777332873879367358652630687773623307215089654887359455017517282000424612391005874817810415668302629213292662121281462348610935302560818498479020927155623120600549602987688008283979396547362178308516540594050577854482741495574521292344466150489156079778234851052442692533603847159603255798466778501363328325582003570944694228991560672537743376920608310942320548564019839972304072993519528737987902025414069190774663096716271337086863055531821712452543780621662724301867404184143267710125271896912051969077072455399319661884876444585721572073747179002340167119751024361713939967607788189385995764992152367647711854083045049872390763181439942662538077009474582005161718404917986858822936970964668571238823700889061508248546879670578123949134467277312821017306334788337872737344876363978969431968874789983343212154423189037448072055805601427819235676494031907789417068054399570824559356574907527129603327603476401389051248714145311230116935950451692275240262127457250213978989709082095057980896441301890422205744919083095615784722886733325057203985231950497745528171618871788683249265238091042980127960173600821456791598324636071701669828239433957872315093694879022627308391935939696483484273579483762372750833005587480864177473374637710701904563167115808212709420314495504870674575958963615803940176191203503298236588152370124428195923322787920718875386264494692906253688311366475810777267405642905911143339064511842150510868581714770241062164365384344913765469670273304441359887062589137733739777522095790882043526426960403418716078960225437876769467409945183806792666168201663101355147174326956147609768355603816610929335449692986128980196937610556803842943983865295930636363181853136240434866406460459667086064726634432775267406494370899053278582562012532524176694091054351234412332971225313966462076143136144218544205058321686827001145240560402237982949279555015748566387871429351821864967768897159242384448609549333825616491339600612973874503287024190284730491375265264435906483693437545418833574072031204489229838240294701152511370929652574057881575905835585413905234017476253931405758390812597167028437269890604176151792797163365204706583123560061705096817780709283194598594606281040482479380513390957084349920243465139067062814532945580770372221108063323761972098614299726575372051147035954965912831205905009051315981003148487410993466001484704043856444702057919556282676854685641966116938784224331487256374192975818094178218730700260043385252955978834544993259616705292063023204747662555114748965166122559435114300505651923440874804584996978130492292380975538886984382854490804275848169602060407296584952792285819861979538336761180139395522740441929084636175095429715999774598926918723941214677945887193571007849085394986206693634361692913382761587674287913083865331157686169971203280110438402012607783901693580492508327897308868739327401821860415263131717604195935971598281165539550902371900045485661535786158996448828784569747393687576778376107248407414985518809830144439669663530449220715102356331552526260595842624254474019151760349380849918071861093361826971868126323531273877547322342828145887965096424584127467802670313019420614742825173276028261347183975696693687418357876185192311139456820309369328154055373881437461355163657145241002191781707879686269851190567717682088047584347729879851556574522540826517095269487231721379532222324810249593915449306926364306176060803209035567247103682068469371274815908321774089119503128223226137262121223870120144977105777628912628159359620975990082707208936211024594595275473729502979500665870092578721678218224481733163000725694051606608181643709393459291376101272906391647027524618589776332167550190870092262745730011083222162398520571463418426002215376088124325720709241197673666652461392022470927561374384483210414895699979511380188687884835927218109345937450195514050529197103967363063809356618822435280705061263280119340851516749697461018284004440414353614257554841448985342619662579922434235893819493679248829403928893644655667493794402500144529633232501116827145801716318740934219972308983747355581644931906561780464289379020034042783839364978251057104414155297356065257315837011227701985297190715662710620003418978102379489002752161552073237535983628783201463379104980852333791027930095365950423486894835148909470368785680711597037782220133184063513245488102821336959755734050437230086403229205965988571996992527558632168731727612666929841664488857580522754004038706603960375410835987841203886104912623106456343910788662971774896225716866146331876882727144266846990947067088129063843878663024714174686020529509295357603174755145082760070417232315186705701209533907906134462897624351476566155619685637881922740550080950446937730103709214602347534526340685632996847411881210692229232622956429069462933286004398998468857448346192357895743395406059716181600815633021946320773362428108805725160015844027351731799589467000600554881274911465679589546608528864016287595787966691498235858325648295516062290986511951794891157175550871751801713763984176287916734903813385379339024531324559990170107540875450278421039387192125096468311967605778481811699761374615423347070699597644962599399810502289888453623003060538228469978276068881778428845386189630876265324184086362854003875972524779823087964018015233214092935773790679199875097315287299223946412071521794635542385351131178412378034679784820523924265510183248429314004346886351125500513769645895134981131334691076482814276144329900106134213682663106188830333485056857143530182399236789127088556934461280377882632639319318654350517475776802419179210857133161242048902042629921192467186273876008356196082210477469877761831675871749559145806166074304926226575254475469400117620340118309270286923212213030551783091717249558658577476043347223228971580972196623363474619920484917877228982357305507525457395339700231330678689042841145907211894965264911882307588020515627709532664304095827396013195891956913616212008052718549510187086013610047414515395359024531041211795352299342083317486049459689193367287625496497809572822901916902099366198662537654029699622419218608359522569997860388051180620612444965267243133328618581049527012275371075532564806248350139646216231014429156404178669966331130282393599064580880892871922258071890928605084563531355283392195660797132431910454314329374484856275751748384293371617131595962008759184937317483066839102849122048665700023132707801439676731898858254342567070768547130586924721141681369857863910411275401994868571096615058899215331117551317370499148322265343440019715856472916567302384312310522497617347580720457488925931490340415813214657282114974751944246509305446718271115163893304001378011725342109228686181112298626868744292037760637569400862533739116346490680035781614081313636512818741344287750151281238833110552634576990954718415240997202756219801899713384983201346024970748817159185066382614602968654871073869747492787136218445427967676486755363858192104808067639195951814938262081374782640677430285024200325164553056635980711829542454025903809936751281159799867211417252628024185691759111078209040630144886060524431582125935481069363345358656275005714512845428967242333082023818281105967554830492090099339763785541536334999985867542529478116452126678464806094944687785351977346183599574752058853833948627722577222604218196508725938369639776087538213285459541901992617821502775694982837322414545631871106019355424412794680075033047244270578692269368484704901602122739452875298724717186880687962403003503173571207045855628509202236688797695165809341277949536088034396877396230623559772366806018238871269248996057439890225308008528916227577921374586947558943083629111437825007286599616542464001694256378819292962690474676794375710044280985896257992050065780162566000522863476091611082598712943918564329201017846882088957867894653739834695544843359810980939065903114344231466477086833908533393187121694243010190601764940368737206248784505527103185582525411787467916474861422534435899914964077779912127836163103073384795058009202850163119237309818165732253348025260374096421399269400643316169440303317532551599959849930093081458806087689736882894560849764263514978203836961395447441266650725469505420380852350625491409258986385481950818329227126571512711184779567092137673775053944049247177528002711823523172257353664123153919851656463230181173744429106726637878992006681505078990855568312231464626418767035255379069011247453105989401123733651558480065122137986825330660682302157477840183977615679145824708150475953358486595243924388305282859554029362296092394045897486629953811506520305710688409557658492171995438979000658597538533977917103256829595865393372102453333588712016669397735275494909131122510508705708626137630407411220725346200573002242733884813463734961359416969686415006265657247953101376273007706773222304340825052871630086434758581679635500310499634351110055522182334769346381741815944649930080869831407356397530762474033008457654940474977981798552346509296765209912597643001966521408248694534777549820588765188371500478818259993525765925604883831422965646294930086142298013679033360647305542572509242025646504540351606156758082424005428848511925905067427181170297374443536799123821053548034094560367262657844535278515455104719039246714609605079410689527770008213129316827664430460484790358430401218139321630577994638983770875351251148962433644517001288764032140084360702949034157041811601936095011022423346839964141019401662257833227377312385582967624891025003425428751468163711054623388826706402128703010798853976399215286765736387650626831404723253431194784625975126583491366669842288499695864729277614800201600581993333116309441814891016158057308221078468328593952832186845174053469509060207712265645245504090615082402615197649738795594211222820193880584025074573786241508064447369529409641973352118320221482807304759167611595896838483117334867230630312879479851281236514665135208947769299427046990030889625368944423635716876525811344559052599875516358691282268213652154544513995092594251006500844792301184147480630182420072085657818650496712443164045811532558277674087499182134575830450527227602427097017867514822373403962129965265942700142435172723880963592304950187064992949583569586995129788579313203915080918760033074465380389529351074261197012485381469484714909555977612637983641324384077518685187245418053243179883517537636361032033755362115845356287411599933006283562125354989538446760709164699915174148898843840364244570807653025642289289775384849952774816006054530567338416623411884979899600958985797253088676884268375218646168027805604089900578442993773764386856606318012346215201886736408638214259136431117075458828833906144189426525874709452296503218111809763599448646317276117072506478140930567382758557749357138818454129818282402258312764519029801881112426093808090509911753741760237211771323846374829256431970316569227174517043901272280112784766156940720897643310390760308137601702695773610960192053782708487587248833104787489568961897469678907850095901247647329656054466422967525905970427593494978520401374465844983242822658685375867709954744738705490516737627160505774531619688552689331296529685881623831970161100273728420704384378306068367588070615075367374933008785629087895589089591098003032231750973476271434590630019649653635719941576338791142099794424041053696672886493284504452629781471021462737461571398154336861133202093412729948897798533846768609662277692783326048421367081356642916125244889921913675119353678629451409912168663341959763042361356286643642104785343774750861879152622159654504482221878244251599645391225129861281943265000645632854650796673291476451212657267025631344833543463826950789604019218106644649407071578764476378411837475694601273515914417728088644516633306539718178639528461218606349317164507485478265175104276106303080575178938155466510489703647366311555416693778188907390037575417860835244750741638797109403716656753854779342942527602107491276957545749777136835679898116560147169367498928195609895147789152191851759438559058564189962255919744648064436986956771383254011646191706481548697293854116520724001032232810442498303383244005313988941732618060287377300081198734686872892877228433465070774659939025963795675657675213065843212792638587841218070578480388703955279523917949511382869625133988064736614892357602248706314389287534901042106539699740065054847407061042989435572430394299210513038678208676860988331402022036464793495775609331113405982019400455748282842430169904934626686985495922833438260290226409584284957258843303755955721051567927495091087870856330860059753407298391033012146626606160447722213279423692264340596968847785441683764772261397835548114867733510810306312698803559936091693078339221408586308287339623859198061236570408373796647819195823108778434662852399011075411800231333855419084799157714683471180594906440074996907311029425078862722720740893129883328636262141758445867065106049549766475648796964737893355299483196248210380565140935708809096366463700313588151412008766450010542943576432671154774232692361579081289920388312982525929646198091822447524248446378291348604864858154335431390080178251234584231203684827235230261038599394139143847680819297139291216295870401083705921054068513272636881145367771062102480519209209157721684382326009912044877470186796183302622230055147482804603924424812393756373947271001475713878840398771819791668289966334499639953494756887185079209284010098951369335465015350496910837523039859421079670287373982247942787731296061491508390115280675342555452418280935953591729307038268353601636475568825933337933670697297543161988367122485021244749341748201808274768159858441531044629005589705844953509275573928522532406146267241446928746972796417874513066870043627890426292974536826447408872431511843359371184544764714436443493801276568212438711653849951687304943813030515014711291460666811288101760589373053852112419435113932313882879336276513672152996073077246743467200128320857174738729879928462742840316575499401075520136401153210826744337158791514780297862296800584375237066381560079082172153549799453588079626365654644765364907855017904539253931049500661587449937975388529671067178968922002942223287984996569552524101769830215852950744566236144469779864824281666611249542179681643964658964409348378125607684834139758634089950739827418212398346599333909238997230091402040086949111663305764501927565767105645680845405611009566246467318962031185533596875429891983641098388498312274148342625338526295314525482765518977344796596804157500357740348507070947894790685782368249767140249188572108523168195901682924422489369398553289199476326435710526881905805288669233509180524834825075678792963092833506039013346314821083982324533152115481739975365488285628232940665710978283625172380921112087817087809779422971151123437599486676941992317700246505202709477719503273515298681947004630077713519164998318026244862407477570044679365277669676225458979506036143193381391894225202238411893764560311725649857388759353338931845504727858988333671368334879768447814299305804531325746644546499889593709304918279705483320011995798125648702936322721701208459012675668748581190201613613303246377865225570681177516630168649331160920505850474576187485940041509442420230272190356039129560199513998199823241598644187240546161346250654035422613655504480603221428917582916656223106041552054828531577568065947247597834984995944966926175925187878657195771733647686814028602650284602934396225996722167157083882464158495993620846059776020392737248383596914553508422739890594827138973499163722377998275958637640242770772073608597110814004191394643433364407425074880743818608019257809818016792230090119722990637713597528029399446827110533176991559393579066741640099235234448497766958589294167614210727029679548651164789284523857055485321023672593368858663296015733956962750004265845288770217967742968221618751456833164614129437827896191973898147979795736239187535539681159600057548904381351159053632472152695142221149226612972927701029276225689381504282461032653795283042579075548089640453265254300774451813975688484681477224199346022968919060959923722205984163192746859553909894000996093058901449496820611026867635755387950740330020083410770136055381811642664462780318090006845525251245597050758585801670484819233524476995632908319615686981316792900166360048279899581416709212072147135264453945266085295994613743803144448164608787635180745860489553247579545208651133868003360194473758446252088976614864357785530875017211079483205811388066178427302643354523415767256185404324265892701324794881331171109669793082405744817581763346937869162065510490945376135453875822327021290273502653163900155529748838183205689526611701161916945472290886026848598719941721061657428905373829391012495952481746689616285488052576236846726220190849945107595194499460890938937853765767523324202087040475235425553616383051747383217879477147875783216164255827075207697433991788825280830964822275556536518156122642692410548280547684317968464187001000748964674699074783199210259542610483820630703115006765812595623331320113361403001438111247277062652204971519914557780653672703660966180090634278572738591564443110343809229322944716545972237729840523857554743830967809849555444176458432130244997385253886101643616291744535513934099186460067748832098962425225442918506586585184967075959492241075067165141242595087340810102575462696834652587997819569054131168735478561593586556955735395340447936915463462270214098489658863462597872787685353271122880279602118140832706115028489869682393220753950063050696693935918738207572643417526708959415705035966877985519779499100895471582803418562929159698764685746837817106092713771293977588637000818803342409305426608345137391540293938743526816752775747097634083767608426178463881802069751302847637446996776275035042802355600845523765213447018871176659268082595997877875995418810193465524235281816439805987925481011129459073625427135950687749776823180623962952404464759830587235502702727749119059554991758952346733330708394462928204502093024167268508467734454512308793836762545543838739299680036310861676444546561783096434026360340996681154690854323755218539360468906721963256849905183444804451865837741073741336525058404617621239327152659457357937313288161766095942367493419187766974630353528006411230949326846437981141707726207647317788678590557365204480949949051943286000934625520918280882370823623103577932305775875040511310688895609485864720256371251610064957296792119398836578171022336364471138228443662150723711800602820801459855118059044011370853834117495228597781533289744077723445690136900064583980274908328692963782710650013566760822860109514702917141804381700281453401694830402686128198401031682704618280931100326213100373286015537224765481208357552233908728167387878527468370708154167357261849001044756763933108560930164302998157544579953031237060485496726770612674403093088469448559170446640527895973004556815118170008149784314186842141413826846079572444764256427775096256733733126279091837160034745127914452816158214705375404191475054571816120385542048231335849152312257414766314851170332482653230349884443063575984189399716154068903679135522298937769184379176916585801001046191298796185967639123711145479567476929005874259909297622962801270447840743082816083545310275379613710557082005805360012568874109487408996803379240828862526139854308255276371916677989633778891583392427922581311375020764303401125610484880848259086940593657261331706389351770835204809770911248860583180616263991547908956540034438072456717830454366179000556045314474720229150908640073254475421406927320195899175375136991444551349731261222518124798068847235164795527025835447871934769567937680214352507741701133965083770413150627570644884311774886687696460531978147087122008912527063519042087909816830874453118754575714840688638351050242343693762395626739798831812250021852297439262313351354196006330066293023278070726726672489570241713990568902356924509934864928121149809356045108440882837328390496583895701626506537077168682829968477518573096400162618025096913700500789664850193692072637814196744061817002693332134538013434777066109302725362358416584076284136972198305414236009198742478020018300572232428589645241730786150779559422761307032409072860746430347467839396460651733145745985529264102677926002664120799679862294357998600832775437859500545500997138124300312637088411969737739987496387746408965833493051890905092835856755226022184361243648130288267449952399871814878493431792434258957725513786016167910936981267002025284821544710699655499362708492103797479102308665657949522346446387222410842418754556535294949487684460020311100085456812453155235055122749397653898552538345039606754460410707166133767520144282153735244729850009749744696272736128764497614032411804329378328598440730251026376953384830091598453508804731175946090352607822949315631313402446579575222978807066912535813367844169658817460915766815046895752996377633247636869465818507892494360048481518262808776291906701433221095216736315830696494551416552319947730131815747144747052815042044951164298197291202176425712632096835532707992647071037717295188825865486169778452807683484710628284369371351890562800777880107269207845842846145787000232121672591271449636201855165925201100789277391804868798867799801068952202983073489719334749426131552015598928762261672618957344044569729028953380811624756858087535213061167259426742775342443276700103360143416341454959263060004635568048799381050537952965460547364985083032602075749502372626412295515616975105168747206549585042160261747327128591274335596817710353832197410519916289750867031117084435103507653718069315254388820262295964566323408376683834340869743915346030455912760189456668499311006389293103913895135750928723866068662959016086636937520339233591811269663561797892878929005991735069275731769321012357463797897434783796738516011136343203595399946172015739875294994219996265063402627577573202152736190799233631677447156678475151759729941854464782366421093186066354684078522601506575605126544198321223381477715425352862436336184696999573413699693045169656418826179889361971341864046072396041983809651935261124802670329910667766516504787147642227988054037942133308965868929052239583977307924312045036911471793635972493073226706640552467304189656271848294633033347231699319944987936511716226835175069879862085209182768294801623572841616482471682160937062488857787459567866304963959055437519851674575531279995418308807415865354134009138275558232022271408686221872098094152605027984190281313197684188297730645985667594397448219177806639746182346929122469803977017656512078781429775336604382848280392838634623646681109723829041090745305437156132187600670217781771570941683246292214625683736263372752466541799452675153283751357459675090134695625599702643230362348483973141135863951403965796773525320736763453430611712061192632847588751349634109343111504216836008894029592783834854552178892404328266484958272343591120881129388647240552889557647952188664895438221897539754002260638750700518008176407676519084620218941776796884675862451274832190598761193290702309347640786056898179120299188941273237333281384882062021076292973338389020175651615257206342674041757707653506278614492911622321486168587017010461361299700900082362597118287990276928386315279972322210310972006964749630643157376003733501102325799717979515971814026686614015086734318826688209666185105573435675137070738699912555748429731908860089767242130293864898715788501267731582511471462516746662221676606457611557754685994971062275139405431794343140662447076691406335198006444124244553353887723410423375283651481162319422342273616956460716572185093659625037438494968788393006116836607924781332652164330303575691247393318131793053938631499503036919224184742941885122955306048130277011083989493200703787921694280394360787429415273733206356373297617761215859418359475030858296403186679372445445010428315668588372539756333730515836609669543472697059526165099240040328066314220350812184733293446124710492098778853245576629681812802447673121918875689596514723471606072773070770835098487647352109644224018067312435408853853861024754562996166210643153921026216339352409319854511803464719875641424297086157434422039296302711761804320160362591241903282899564019060347727191463717324663859494076115608687988094663259205547055666648572039684175991301075738825110531858743557052431923506289544386945840081759308116566936087549791096106607404661650359334724049971608398404782555907993665271870902431465296353177612160517113753517551485543859003497579784669158853264958422391269805578947682789831497038980795027397214913393616838899642853922943722944189157069237607072126239555365238727509886046236674861504031161822117185898209768621920463964088451808978940443105462900634542574160503106457229996749000100595451555948764844294898190560128651964899133859682432774245407259137083110805148316214730709334727163799908481159358460440434982437750152084094457623973121100925208901456509927131014183687086460084479540817622518490225977823627060281694938941678338466382952362018575011510988084506209519546143509804696399706354728923032302305102375076476747817958463259167998244064695088925757119581013132781851020049036822210147667902594392022859942574017115142322195489192681650723680616310322060708127983182828959025735814885904686072891700594619928402850515903799625397365323809033965756534729856550672540307441204194851248825419617295955383359894061331274193017528813760546855865403412264447947475085366892441643525419399052996765222081953153839670590635026858477089775599769104381847383900287429563516259746266437564769000272441216254409486543100977778441472184690667567281817159200424055976150109811126112346305439372817357523976694864678083113196577743814091648262810619499541890665377100634561494695388627763130425839183387740658254764280718018231373902206930351786213561320088567336030384369761372143883751044700191528218782227090459196581779498833999710503973175870822148051447700905886523055332246405909286587999263056986102956828192787867497341643923954075302996286250584870068523354877277152252492605421020042781402803143282296906022055175724991730583676397997603906526379826863290366486557606767035752237949540786486687909193280081785974692898236470953890887075562636346723495598985403590600107895056641727973909821119370311047783087532700817403837108749782024078144304285686481007851069173264474400660719493681704227846674613190076699846744140087877380254698088111500392732902630073780337325429145002813159945929521882155281261059443896391110634755066999379054539620558595899804341227424815527166534130414844495490813667376569958422248100571301917228017549131925423908778745725912250401689992379201394002320071842343863210641617547823034608484898234771132849155666197963247897110808583779762308793888493450418547545222064108623908421816032776637936110857710802309770618271198881718267296294984881464070036026233514809090098761122579583413561576553290946481664476580427767443882944912013890751620804802901118367620092522960619869343165739169220515782193248590197204228698569805949274041175729913129815780526980874808684459237505514861916386377246881801868510193133835767656224702330322938799801551687972959856144137708642850780529259611033543659006935985561382565395800538885179740769275364279420375136940466673929937999267728320699896265031046784037926559311291232482543155848010305495185566540890857944020175549425874386658420086348877517158283950249469590131752367844005146777425949269959346988467746400970874778719895459244926219836228701248842811297256812939418193581099340785782267282218681991785452433442347535552401562862610042289586636124068490887089423570798973278496630189235679824180279923700732127200973554212818594552939686550937704239712423966809957072145918144037826261185192261819072678056681922631037187493382986411010622238909976932971383170253801441919557079298000076749103251369819357387196991494158729619065890239114793756729958169356322432863567580269510414385490276664911563605040733549418801841822860440018255948115161485387496773209406569545734890947911195058590431609484247456397037553084289650670937565758814733716780983720470263202978047050626364591215883762156566151000613844545795274489358659536880501049098450824030057020539189998970194772821623847837754552133001295967523271126474020624091824954844506485347266696459727760397550654586538194510224418129309072571818012126169497995090119705948137876048402493999202722227676860467676491567184800336560078989248598929836718860392765049135549796157812521993148576490436791281518015425372510469770150273313371094401414894819779910560152922467593240000416056756226786496155054957111313734331526668742753006486445289222941987207869418847909334640703208921984206839968231207205672950703561723894041456552567969570263705095337565357162110623381196404245711857590375846447281147487077039589486895104996350544751145402479818323874705254018875754115463125230191471768472268090482454938840064203279678687583478424601235650284869187725553552781419685061471792420464771765231289179910770317218798660387167426260915372752757538970394173486636076114756015969584721310651038324986142761029322682291082431765593745518976269325179216448753831252428926499773711953753027941710839219500756550514291940686091357206567939667882592481731999214069583953282149193157627958693645284918336276585053717009572621266665161399578232446404078115765640837601070922695878653871029492973995137804729248099105176884213593108645649755903463420004942001435312109209501292200438024079852185280351645757257695917638069489040586211746080923741931363445549406669632487217503197169727806993884739731936287882947727520185245958401291762648230309195250967642234562935558350905439734592022948924867541049189576392514190346347101754609683784866967502305085744467008471234856237295868151386458384806338509624860164779884480005897701764863302636193213575038494897794248195642971630497215361174893870076408556825305509261865346509437613978035721822938104631065351419528302445740152810719277801221150033329110190795672149806066337722200181079757086191367251057337741074143690797827967298138058195829657258244221430141780127517375428024500171789420504206193787275730030580364130804789185591546343344588912600369857316776885716893285078863808113192361002737868651221554231285129355623271810587816403510046323655870441809647728775555046406559835145855670692190134380401445015834483250988903095568464434040578432211494732502881431333865968056975111963011955305184758287366222024579216738297082123624975336488640754407650025166164183491125432616965815080107144320956568979640961988742122924495833528582212161153411894336341510435681967736784988021342122581840766985267826066552090489527450878681219465169784135408120866333689711848794041615777882883835719272895627812590221722329416619066596869477878580924915233230355321089721379615803508473306120794818537214999366942733485916557802727639079299145046080243870688861018201877648300477611699642477749962995974950031587399200441354396997057774013376138022025326780206706678736305726198325782435958213667033824429856147041830082784149146694864804171615601453403637150082348525718787629369969340728716621823224219078959275662083142031067769422300971982564398964098500410648294300189911297518317140414512555626975256404615650630585284519395817703573395513101635698195469542647898267536588892908240681729624960705814372840104897539799652559503357579274524037687049332376941485049103024919224754200227653472199538266751354735249260205127057042322569487769256822177865680740428255262539930912759302616218101854419301398498761755286541824790269627847611805220765606139691861789055859462525146746574178693132617246391604256907673703058234543477110143688100298650939720059597423593921123237050542404399088879287999810003006490031506098585204668815591864706307647567718465607701614880907109198461869918910808876675749825073532752772164499548008063163862079827762308289063251628385384286952120852243182903981419200109522220893203264046690605624669400235324029610673345834898713959485239987342424055722668102901615585361795305770086175997588105536925623967084490657119574351605768017461074579043567938409557816061197275570959406460101530023240193595321909794136166112212326114760111861428011932472392764200112145654721810247361034128527816340842724143101928813053751008253454211539531391863377940853093782681406698748158753154393587294974261677781835859214642682365912909573927458050226404731321226545879482294592248141141262230603753713500288271076046399086054605558004670872503250200160871731835154138293912673597403182763653894236162256970041259713325486608542870910652545123652788270873073100481139681890503316029721320967670711324109006296414356233090178587087192050215858556099119255602922825869361488542741678372820972886452783933611251509726869578571646880201812456136616263328154470584580952391653813813392517186638826113687808695502532973495591390291465137948074604524177406805958783457012922309385754083660119986989971010168525292425137485710326859297231572058860607695752298116161492408970729353841002488979633177885576494644281666083512949842017015098299938796926877215638935247691334554824999966027567500171437679284643742042548095817055564376924122573972622921216579378509462163430464103720748587866546805649314497597312731305238293910952421632471451675581572945012910001104898560869511104400030005664933517307308643383292343197142356690170571894613198456839035599681964748769126015055228956810640798651820393016489622731720247692220503832673183485689796619426672487515152979694294181263624570816806388513898214793095566866007106812895478535170274018793501492108668340398816192060420725404307071047581726375459692449228286954930763535316231942154217836603947433395127212333508522582220950301489673203827995083212951129967218869703096963829954985670023325934190871630645420157453811592731407010560741354680390212927476853394284708722747907842871761246063650285322492239089926150811752028493202933509384578395923022611196306770334517358996978084452322925131183447369971169623774278241270633771001024119778335641779175709701855720532651895087262295430208098010980047001642720403029784069129803242907861070032695618527340064857216792167515233298320561832628047091184984369774664282922019037459759429274641129546255717877445360341209714179222429768647055878047566686957270416000699753479124738585825392517179713276539510245392846140928492449579778580985074743469264364453754428590769551877586176458402076265251464505063281089307776338045673805243697692875394592209727901630435793609853464822541736256081018002295441185490121997894668601016075383240426664496372434830258674918928021700126525979315502503262144914969703348631940850686034752152076706459110624970510250354823505567204601556617941779301548777248661669057723512039726357878022621163497395262808940321730833903776135608403181201134695592714849421470761430665044767161800666524422081866584150347513389637839618569057453752347460983122626783520838129167230340563492575903268280545016040335708791128637752934680027418249133053004752716529220915818715083759620953928749505741930150042357749720182976230381273411316141001637741420774414290485236386300011294428394159566503181548225402746798948242557119882688201961380284329686943906064697777616617114200333889640969188288211297567737420499208381024228461166759618578553535601521180518758219934612246099708233397635485546871621096713787610533416966126358667788654439665853393322766947065867912693688230146029990125300591507501207094288192436238688318542899976670408990744278683717251565653950201750213729353792302023810003232140491544438511135461397275021422565760733360172939357581710258330046072876162482457247569422302542535916685964997353064355123174249998867108617974113677951043981257730304254439536374695158473779293932476879094144541043633629340777113393972058622409529054922619644999805505226635920700863454917833901849620299958129841716240575819267416598424283025558245257300717138055000525333805002028638249651245701849207063733357804563158055325056200218441804583362197413200520645729808216601850592908502810358226890451575427422211861795113195668220258645039990839048446069102795833183284171092567162887747551493648513193167603182822229127680381304781354182044850779692945546682116639263178623903331549965731286420617681260177227548057935661191271839006052015522469594860154591314570307059634176346745170553160741723602479395018342380042352963084657151038155274004510698939393169788464214100988703188003312505045962414260273672847316854945509031816986244189905674217039125692164461183878689866262442808342629939190708466822968011287464619960709189662506738347927814520813708160569604779890168765941263876432363411333043303847626172918054863313248711064684363261099981859639027465805808413650547280777242157310469428255660335152622925871491182795003829887136263150301692524075633541329796191567898073708977611846820203908617793354344908301490116334096989407529662371158105091257254577782339934762384604151159411673675252445912297920988142510448889195598055284435951479449637501630299451585796661155463188768023091793927885400436217695537351471490975073009998796923418605018961961574426400565035439541690693486859438312410089968258502847603592676555658310044977057408445731919680012049328597595556285608794423235589238360658154225420050325083280730857134497698235598793037316899220576351663101887887331667166964397343135235401841658243749857872069586000284524505721057350422261916676852063250165591821103687927162794347484822996952558511469393415327465972479312043778050238266379358759990119251659073621405728970143556782479923484754394878369721036182940326096794889827706260048567385816574638930782129790448382492056541971685610456719015206282835812017201071615601860722753766908136045641243329462303452951172713271627862069366426246984753208635154166537062807322748303894456843940801893687121781123023608784832993192391214601747170025508501028119461285472038081526560332293207639155768513107141034694576154434607316640647269302933680394948661423780947013918159334151115108351809796212054482928346126004757615491687650670207166855383063753270699159607084811861904002519661850100080459474317070231330756886178622942971037452143816874013067620333408092116475257146537610046098251602885642561862790764425767653698121194010382244345767226848470006935372333660279682089764982260922488610073930827035511818686013228952745991243606737485366537460753359756700266393298057595907096198321997884610378660399976455603999096054309045965918910981361532139053757297430137527080548245574814492001602330481724891729381222419506149623741256143146309590870757494506731449146255148995087198272139819728357950391273219902029199628026955306751456272207982797777286985204772502337876744625097600670415916301962158326365395848927410072439711153841734359509006094338133879791898455304510475555075083151590533058033289808179112011280123731615010665670461163612023471974311115780043812980622716701229597440864646476266371613286304645549333491564783400349241182160986320843403643751535730071653507942285806198294521905582272944349108721670214557826513258609690220055593278483615144004758931163895847905422822762454006511584976043534675404619466441883353675419364550781519279740528365044115340749899317749228322074671590753421687536950503534600020679402271447652831973067564803219209214035480179299918572028581226966763844497583738899168600974683067824494291996122903055131674550037012954684585538033393381753556976563718069355738289029784640511383348428754970404388991387190382738614487895389701096031619370503948122002031079470063650107809894178380546466150766947280665778993176146995177949984239896653043774527432874960892556008723333609385299303284415231618008658334371087358847909404336402079197062782928408909510033228055902275491499276759090245175413229909479225563572004213776968711557878790688740679204517800978829999305522594701634846949200460908633738925435317088360720433226571625342259525681060377954110752376539492263813053519748766764099662812552468934623756054129678640249320430387575867267415092502404038113093846231923777931724992295534534360549453112354019782675924684707703309852334689480126510887680697985310940049764772544071995175375094337846576227390438893167364717431468286874366775459538701140843629360547345906203650612112970367470846997090266867941643906544986452821150032798876417689993695727314485113882192502187612589212854389148727824075806361191953975680099256579533014058162504657407737032207821186235062904735309889282405701359011812470031881747710467331640017142754731274425005813619467021715768185749393556396214762015212169157787080982392267657774341395415259925680048301053884143997389788834868308093233161599759889328152478215384131346321572728439859180674894624508029179900000348667985901502524492271215309691716430839471243222472831419827885111303414316425542634013250214547636110203176089423720049457511747499567979369683754462074874663452125837005486358708147741437306932323737441002845344122674607412044723453165808102021219377206532423221628151737191902463610191565657664239274000035151031621355874058504301245443529451049171334013858112484325968940483028366212363257973647845554900631056308408095152017094544924785222491882352868005528939464236250467885028823920596049062275126051484381117004400052195821609328767747337264170581449074049567415357186197895121307159705965339310513752861361771619185692892627963277004846474145095110018260349090940231823630607491330695547839707042256167727427275705401892790770671632272886978249579680550542657676431646677796345774722674066549452020269987990871718865715539013577661095760173525264296891574412047713057471611634616812340462317662139516982647215133631334733465552417152556527054385991860982589539094718694960547018855517673564215624616101355082635390749195282984054785420048930127744782018857490325034529756771771205210152010629644509732480762420929918757682480403797626995050874810447548720943991562998691980188598102446940326041636655901260510683430712828871250600521659467587475274671025977033463209959519632161686303553969211603044225416186096201246037836500373464552629527045091537082029014003727055009256658340437310426338929929091397096298252436580400679769168761461212140357756931305488612880325103119101977568375684591192713888492484501692792422774833042422249105280662750333574493588930390232450118974864104228002575461464930918979753389068989541622803150000622606449490345686725487291587772853471224422637953142229980033564120176818987902907796366115962432445363875434521928041838767299053581325241455905823332778398189612613594134886276363432850914864801114640811451439832361441330661711974039714172852211236227858665554374677217442586897876252678945603405721140015690389512190010636400475037284349386620370011158248685353469444014468605321876521003033857150583574636189897083454393458786446397427922040923390729729860219554754262979339568442325100923488829543308210124858219201876535663719431790757509387951713460010350068903970387750028000856934758497754968467348289744792992212979901211538539988342249478134056114829752658555059433357230366513955443126939762784652886952844777100167569349580925087713891183053157607027911076625876060396630061230694815037320020197002220074286485697984826119114134247428769565400295151959517975881605767480681078493033273570810821930556376034591140924464758205777902737945745226139748703688356961480159359358062381472168264986923219593886489109105722844082636301287395504596418759476782526684424016252826372342096587609059792204911745848548919725981407181301385891487925399939410846711806628975921067229037391938983449648254662507590167557339143164907988540257179696428401036838109608458161649003589276766455241887197306063312982596041799083386668899016004208818903207284106512768854640275669985674229778247796845008499494120070471571935483177930824906401202529040918579553408308380776253493550421988234660229562511448398532064245110405749689638832243118346617747095751310189378122799054654481459061774512431837751848275250173547585825994480691359213852867443520846348366996910582184435687856084597550008523150056156163196373790266232600601944542078504814405967863654118525895453327121968443498268978235918485261200281735251563253605322490935484855147552143286187511685185032601056845154631695716519048695587189429037598142825101070175129702302137578526430918904149532070685804958967666946727933656563549487620043344989780013342849168656346862754553172745006086009293737401539285549494195577693526017361294600870744550386224721927698175791023627539556258707869403953360434333156885689260057566307806781652247074917777156093801784920450219002238058116085383410811889751916836649678030942900982029894207313800093697526507551890899937729294273282319875449487361049404851740846152222910871797867904824608915702259547790738192710157535087164688966203379014298918591028405405023830149331286288427786915480558790313610641579140879664802564242010983986229671167388590296319592734191015829756676250930560290874636394873394051813196916663237748257362695748781063708134346824936422428356487282134374831868895211196247544774258888085031800927901488949672017208172428076379257915526437946171901760072054451286771053715947661938843465790510474213369886208545144405148274952594602198396695168342228381549002280673434943114475642655112244117660485217046578473228279245925488658851269868616444019126751112935834211712738733828144202010899973014264610869987535007749810677327437617086810597439314480191924025125713787879548293393443587275747967906844728958782939426513227714043487504878375051210456723514336232844167780201638298127695816250293330624326385238047758781680171482004491872863798471731111875863530850521944288482498869812081762494867223267945432872706883213280160027930993806776721767482833636282318148573684855367854414465498077912073971367643824253700212599809403487984581266081276171467532511554307565450906563018356743619386534209398916529579790695603582188241697983427229106049900970212976090836232936230476051674614884780876124986574810182884730252222835806436252730921143896658058561166978007841649214727605770510476753890381027561191119718961628125692379637866002775595080648877570508669658410943390128729910263061391140641361186789978352397418637172765110455526621258107883948624671336794911469241193800183521772343861824705328223300660680728698454946047864892702957143136603095264191882459174681309180470739038986383502160817208291171530977514451864839932999322902941044865334683829949529116183086182361009128800687899505039160334295741230308984611494315274588194727143866051890683796986853397803583123438425234899945269357010182123160450332556443092039828702991885604224842033760262843370694581862080704134541571384112972424281764645355170099034111951235394623045702071024255859077746144668518213506267184073401809998273560333810299985720581354773166581062394884570249532785001154760488752195540588620706700417136329935740581763126540911318183838547932282364308286482549635066169717998517045932080821654373855388666328320598210924917824501934292849949590246114591609328059313439061831188630091972361623799231829925545726980761137483266636792065464650837637053088319148246785623144855030445319130029654166226332124026389132140213831297951748208354047140092536383595595675617650221533250610201981793450862219754362679304580058326815495818373867929098103839359203415598880349507348852425902734115862910041768629074706978914703585050356514008062776715444269907206088247534346637980278579699867709730288842437050738373817828548331572293263113355727645940530668560806787889203388082036821639841205437483074919088331795569180624778708157518775893596663318451693907895358085894218595715074588052531638675364877883882081004247592303967025615192568023439071013877662895679123052523859405142779946705424808656043189924651463229383539839395435395722293301721274771403332467618279935472207348181889724315820912260452232100583514837079869320731844682478075424292601970525547432344736090970952054340711050680831378575116314092067681762803381962918665993199731363895201567081991905816035763903665642291503774812207316086834025130752506300622679504709502505573361979971065578284055005850113069157627951472987828815386616681736811373149907155569279592332855018315030806183820907194349936158037390480033858623577176945771630568393659678773709039483191741382110760903957873459366397575517628021879687753589957930949251546201248525120423261876504607364374190106968093293570645883897577265603838863545719670922873766073027764562093177984700133895485499236788826405551174351029417183010466465653908883097602500137283647503209555016604018150629285406148706047249676611208948398051330857331173357421349489770761605074791597600200815769054986123151223328073168672684780074007153105523471498637027964587075482454548154433098911080037198499178280888094066780707038147615581971659990823572006559644842842412745411474127663053271819889833011897053680092799871398401858614677305274519933895090281394230287957820828037843417371256833996545057323505081786232337816107477558228565157833019583730629272225111575231143484917446842008554183598571189710600772198623521468697286182319107220793215018043389470969006571525063404569832814788913483856049182384132342375318705407645459813571574352887126970166557921214438721725919285349752934335724360753853241187591324789552884504568689803468089205760293014416203887527617408001121234338890689664528665109837513996922106698620373803938390852742076848059437885487087782046143277861873008716579140606313739448820944917892319922031313111945566822964706677535482705028222373945711838792193526354699113303679212678398098854560799968368567720603165241358585052830047199518774959528599780552545821768047213728275350506772051453798564750731684770020685429487795604381145030123864963103603263416209165775645067192952074628170199580983678225979125892811547451006311423859369459046898079788198446097198238277635179462313682349597250211055898494260002016051263167171904565979342552582963196166249747545060440570467369216438741985764502515624742919951125102385242391789488226089197772286278630144556122381051553067737778553719466004880462981236259691967063297438892472168761535794005867334722801657619477573891688047212498457342903798080912649584674604409288978674296199731274856382976533030653152083520294760707680663077874763652345541128978462729635166225740049766264626838311052482715673956132060997876255218418354307432880583718105098471731630826144071810177746631067199155526763811179353361287088424270195261153329742584520473250716879823613882929675726256674760612118297601632818631344766285237064808990521415616119453425715219798260382708387555300976993008361746140086339251737980094171993708927980857482035653541607514178664797532607925176224753356021712376026627507965380150101323679951839328622761000366742288604079062439787773352996662119761457729258013403822005026809821063049479658414054784254192965528340236519935785339371819868789175627147742746304677778160917531739744475075419715320133462396582754264079866165850618688849259552191256156462947562324196740275539932834994514149878117757442801040614256518522463909812703840629885574989295828273374206561770641543987966919578388706360267090946670382669532140044595211078012176072498095397985034067185076768564823753590720807569119215969539451708234882256939022778179496621137622327502847939909540737920691035446997025455513932217488760787614211281013478970683023969722931259418600181985355430709810693806360190623145794653757335807748717420857999246838691328958849294321936759629783293752800471421559579245232521424049322290446327573741456320057761896799408773717111528002779943517788135672866952804669047354168938438206278132148124952296704994643325759999614108359923285280644594602335969988864414418452293211205725944075326218319498669287242886212936628875510784819465596977853293950994798042776663480604106329969225833068719263307309621489776575857806821404248363950091764137662653707324136080948634997109721433336267921131767257319722979794490277327240389611655577141131680971645133484151980549036652246835813892457945712085261407880310395514259494340256143869361401755661706792126953786564227246630021383024025727999528768257572356851251012451643812194821794866815526184399702569496239573930934457125677335729934796902561169889865570324306201867747267604398639473235900797272960271077687625401825164021025541075535584486007287307001086401785471509265690494190321435618573344747177612939928042693084520633778938609604996479887094392718061411768556905913553650532699939169576206222984014447686353574836838412878519757096755970011304623984559167858883145146922332731235213046012046698329354960293791890686002496082541213965466136321394629213935683465297591449712857470291844754464192329002803188683332013190949712714977248952097207864979237999769926176239526227497894415106933851223562156510836640466810516185249783421812997787001524575048648397860015248536931615040363373016209390297204332015634659479403504129678149083472009327568661897572634553620071079755364855253899061921594381388349116460363888546796544128390061548382797307621838256075697315137547775460196249942864557344340015703270073185987989644704736802708555980537676954491102230282132656113525624507320464473279550757437634658277304063006273459312766220449057938254607486342682070941097685661508130678411877406319117100180529268753765242775553985810124910761761788550673582455702389277997459461508207278544633814125740323054476630433013388302954275689930499364273420039335312376714883405959597025520676741355596863534984102568445360734097012036893050800264516358306993638109651731371355681256995030579972781428103445806543338689711036244246192563286247913378012923651625597614133337276634476684225491462639481150729912659039080117756826740844016057550746922919639151054738238358315941788869587503898208786522905296110291263373158332042087106895752924237447147473527929383342095843901328913360672609027625592193913699953178326623794277623326777940409371329590213299396177748901119383444820792116594904881592130894064234175377702554131871728333579234908016002693699399226256160773611248019832772420659411706618010825103427681064293538526866314897742116848102745613358483151277533613830621610563505315002859671866344481441069258989941935381898397224124236184902566895055556306997852271719362090794154337090220774813247454393626732047299670152878771059927306172312642495001583440665003723787065309267930054613814104230668420010994978850311645423081287474997364140469346886551556164004850305518963619345364442944270048980988611161218631019241944962921806506187412269787984020392018238318142084460087077192838625396129511913851827516219167186792945386466135655971160511968359493169423388333312576476527584879677254668521159978743570085776387918427079914973089774896719480781739270713064460177236434825643570798986069607145761770340278530487565089138075612617207103878174075858588783202567119755508064522846926287403683347779651641705272618564860443395369517018510594232316774855524293086041088912886865351862598617537328887523333648036716655840603733284484008808725418325173935823447994854765783568396338271793116611772233130050773912775473313751021311831633578314840578170978066690703242733124336842647989407193363454756672465234577314205921952491655014524497745953663809624839040596554101858536352290999649608677859244299138210849567368973495221711873322824246497483160253425244416112966569268783163828248327869812712514181536909134005925658716110286077854937174108665452919803202054779686413579610753867475902324322453194919651927102084309420773268901832010136966434751198945374896991162014990152762803182135928523943968450411454822335274009985071592251711085356872000171098881297608081788663121691050712208080701358221647223573208672393383657237489046121444730335022461166492472579855552200124609312778980129771902577066009481651471307115641586163132190348770028023559246145381727534642092709392488919458906907985832298342889860625121937225455499339980507362209638956873952189712826890473408279062136926114713759681035592945969625616978820293388339927292855795597627220428531166235413947082996080862944082633506310211529941505167978035520818817916979650279664078089584682020089830067170244371708873072239375685102357124952308261395646164063821638500655388733268208416225650707648943731376925837542307738675501606511758402928103303741770011438240268027180383677384882945305331043806707459843097127308138860754384163527321024666825604103309079496376342823473277774099608311993177552789547303524652990971486536088569428877616245400168289555621764029692034929955292925334894438364147663796449574966958232228172997783599610813793452216645596496127294867728557920969891873446487304443327755859312850860725012338681831161331486123601920174502450040213434735513072894085571242242254282349138785783013604865090519867966545408609545662064981177409855892168031943620322721218486414958664673464317727041451904893271782369631739170160141376921827842924807400938212075380224922938426939598352289312765715697343564382379007600854342713100518805380669699827337929441289098438860454936153510988320184312554141257582524149522269875142212518168747332911647245846859108794321858060477097311484471694903582055972516269110783680216215374834019752642525252695502631143748036702364538390140378244682035104862217840195642411324172030448437253052176680929105299755475733060530837043885406036099458640868949671973605529480346270827940388420205313576849993265891766148169675445629907643634599489261914023960231090783262006466571864683369797892758029251125365930865723004855699533445746286757110174301203167313826423963507330151256392321204901760088943901753415069494465607687667559077148039719352904728841062605308967247877645881227134006418772245867126236942442359638804153942794308311170559259955875087413178454633117315825391412644163829115261707365431228636560079017737372949662273999257123293921670296086686050226685780346103645925351468440331547388399396328342351393647867163399654523196836867721854831008388464538548564390028234409278817207132484095177714181556791474788443537979264803866151085886785992382437636129251594723134914979662048306716804481355344874317986426299256968088112444833915865324278262088338610486205203443945992485077005715598422043548926729732485150444987760798564265212423293012290783091670998415704783078528151983481205599984331093120715155802520512438900479829798242024691147368036948276982424667662696246338212772548741543034752854410723783439161078194051835331049564538502097605778284555927126217324570827319440858699160118167247818893374710117428574287899946034217926318991325180784269654268152326773764793287145269236437237527092675599113371975153147940680957354808639912306264689963240628826255390038044308936045556711463935776027600241611727263399043612291949799046213587994606709531604005004755188932366163697953481048570146650093104361504654532803568442581113749742089679516316067532393794355718080686415537850535866718965422802401424019314810135316527921286167722736713653454136298810879120350786505519124853363359422892686258452021140702815660313006608821485045018773673990967864032186025370860318029764878309748431090350769105590518017436990998830568556665575524603840938200476157555132196579250322655601801369569654686270064441503306343225752858021261043635122855420425803363778704128779064942210226521580375220253883405613068819018524549089022090007806017975206441036271324526665669947650663682509152108302057789754162554145620753666447861295124182270951819241711156279697593068390973731128825677653735532544475025313353027099940167349569719470854379596807266745985283557167259360376788254141820261335598359457179871403295446991791356427238882066151882487815481100845335529979518208027810793168741198001160173455312923043294043562445615862785139260038345275064816093553000050240904646090868322683175450958510410346635878362812452415866105441847239034722473217651492290928331609697375620264379869981569545036060895666626440076236264044099109378045298012328132962490495859777297340422216585854314188961075080504805474311918129774269331278357549930966296137053449281889121117595913937746747332865278782435867163235984479850149212984333903308917784154742587428048781757678267996004129742137100981157641262608721439736224638317612174885621819641113342588853743675330867910057131061891882117128268058987516056598206243451713762636696870396156608720113417994910450545103135265356571890170979511022157621104309440989793197577926688650977307494025940457299844456151876627916057213466059592378745300287520819347192240081670829574409858671565170078853118917661674082790150099762495004266495330978409455805445096706142955067053829948197829577499975313123691211651161312187730928677432349162515329147047189493637773066896406014180392117008333629406275430275856464434159866344539898451995350769902347262132787197211711290934471824605306231344886164384303580276007413658387744164802059262636398109397880105562973000330602534560722060085839177209660605070593616128183622417371371838987372599692371762418709683416671393655407149596056231049365672613828108840256717694058002363281366402207799191244017894896914888158546438355894271171747966272800111521186177088530452774458779117435432357429368710998814563337294141250641015014457126432600287888086121491308527452099489723911148355966260544101482213175152921947113214150539503962173694655264920302700958152724793832987504614474086897975554795406117153558027277677440917234343999297487212348967393785825370824325227028077549062909863013549128035441198743610214507176050670524920245285237170903375985487172344963866253926065723996847446472695041387698253249349307100153607835070741213020457780819960062018387080783157692131537471481063077267421836106027918932212701885388913076802453729342936928469461434200166467445089460391328293435851108049698710662722313572972099789499264918839765057307103876328197223511876260520060453665838347868090128911932987642789325379117386282503328204564815743519925954618329787411152731501146244386158811632295358254110832111194467279538103248233554713462478625953745111864903501805129434770086147200395048994155824644135397606082368096542704333621418882443636779156781018346018543000863912692522021099863726221413246538693293531499966674943674285612802923366479808515304941831262140179309803113228391537558208194787674479557075699001206149110221955803283379382604185561072741567511142374261639405276068328672188531542297497629493059515640704247847331425139757432908655826913079097833199258863522563893962010635543016165799372166697332108933080053147161708049205067222157036231756988844416272576608093410418173607434940938455413130121542120712837152777359561329642560193029638199055570954978998927291199403673799924026994197756718884179907577054193423045942037778965622352174263390788488298914945090109228388735961406781944594026369205081582247867150180183253577677176175428525379244436298985954592039235326957663080834223960613673794767817054172089411297600994035316924131583869058812319875106713637754852034172845122055777553465225621117890615685206612940272015557925250466181222210366259078256674612017282984147401950035154037341449533786527274775851080382514618647250793667321606933325161856128366982529851692276175657643125675188388594128125877051737179334544221864062767352184011350161501590210641487696627264640517312896618642411928371885283015777863750097634434106775858584747685408036258158853285408829065293601463595682932268800564357811955624690811357808480368194387756752745651778195245783223193599768530701357325085010584241877437115016721316873484517771948137054115526964846477975955354262079738421238386399902325353583635110314424573085334450912423444965527060010648540427738582897301614876259270623295932771664552675325863278651931243170848287147340017063904930486282588355686931329474862421587320703504775424666931386859191744296350449853408341746746577690090400086846457033809595066921111776711313812364965627174727309532404771086541859666054015091549637270865456750535206808259995252190327156340843340542577365573427066917198984192895371282897875428947287753212167547158954975178514528160858331521820010007414896009889620716744613985571436740188039138239618796651472283602655189424332840531532905733810742079330188861388277037880722075163125425284766156461373579537484785086056676504732382862665986819915980799907530718170206964865031632175277632044047278394588792219248513079638207248982608161888442637482956637726613137801523823942798318435930149229967769121503695559751015175838665711917515290504328539343876774649653238126920438459918016457503683218515876064422927491901000429206158046711155854991837696887765104319817416531341419703172979382341213298382463603527947674264932003182532785429036877694467113913009978864081331761605598045448655960575457879164010733191319508733424529465245036276628947957283059784997095388873919977780877471686548736837762893292929287832326473688524816043268825387639028780314397738874375617536501347931047921131951889528646028701786340851700173294466506793045938083091924589316903813094213444159211081043300938542719810994562098528290078254152048975343753228651939725766431375158037717701858384356959517945812657684917175719374922041330319383990533504158653127391432208020385370934456686824465270767003215124149464124350676102187645891067394123761532887060785078643359047963218120010130603493177483216072604663785289406356123294036238930916999479718830708257232000385110936410039960264183814226083629360249375728053237495510560007219501850617860867336385972333153609366870333924075565048087342556640834797710377235450695892474892197945343007019210746072396305638894219923460949605587568052163811537668821509452442221834730708116051813129162709101995517698249531677396957737823172831085741825241274778283534254430054494423521977740675629470314162481854300560381370665296915515672647095436463799824399832901390931731492722835440839993118636266644689470942527913274296411656002588088028353602471292299447041760145351453342503275391997282902868160040322198024087162910494413439490103462749575610262699884775902037092784164943863621485098151483563159474101993197082629597926578997812514106069488852961457543800635337949350027984670663169480876132878989191749810624270833445446738161437425893237840988697015640009753961713708236653888494442287207914416946080426821865648988456074000670711170971331889554171279993053892048700712974426093040586293853406178491374473982013282963298341771396304781060410671286629410522912056344638215149202444487291073735881486731685167918818527661410558159016493884497452368998391132469836317282622846689607776356460301931408859295613372803042532287079029394508594303713221297282387263480389463240528996933298076909410569704407849021734316096999197182047919446660001519412679325516384932483018418898954581127921120264387857208778347096181742976619917077362551178169486981125720439373919678076277923427652503945393040289733452837380115295172210048053926343708481339527372284578888684498070351696174049219832871322145014362124006938262123599577963970512869814335192564060973029812314413767834788240883892950675964328018925770484924701547739352638520330845887663879115967195019501887423964504619641183693595848483943886459966533403412695600333170241756472205540868971750316135555012872117722463927497057845352949556942876426151538305935015384303392412533961388143632746340418994351243306438985250740442835108003419601197885749738419395386542288365512569401951900370737225423256844628284663856257561889340400370132175838425258687868150768562362695654637394492589544758083929521844321017932366708941826161694272600597540581454538467803877264869139870926719781083858606181240387647810310296600304358515947174933435223451433964699810228936883790179582967622965481682976178616639169187687046829800569438592678168430053455631619061297325806206230224811115122193377815590775657291330892178091023251967638212036689111341885329195734493807485291591036838180015414303622946496788051404107538309887411426377242807399894301821050207438382891255774444139728414319801476535464235529120628717127357894669685543425367952403260335950967264128309613989368694966907144972489324250739285562987195632460892376063195517183033542324177939063850877524222592481334188093842873231850383461793727894172812898809000714248667589379510860838473071474444995281160331082169770388293393162905621270491554561772777568138474783322083430924326315646369464898829004451551525641713178119697846973380663384942816182232529418898937466023370260135680793676387958401673418072845212131182096380145140713107013150412956945628914133215625328638242934586122002548510578822025301403064262056653762709954071370878185630688039953785606669270402782414320522845672726977623142260822144417037096744442061218302113895425661954513259656244865749321140446105530350271173223161515564868190198448547312680636222041867641935512682091109233207072529405532974607087200809740538114126641748443595636609296060070468128514681004616038607652683558098272839773380876673778247805614859129806381861060412192289822821833458975228782021058339295001586054005500538828726886974492333591254481831464346712953643304350021178302195230505870354357242153274658993790477989724163410163512789402221359067190401802965709898207580635946147071472735359665588453178653531044035086270160822790487992884993724156287829877966675782145637202748224622683993161675420780749882025476364408213456639846149612333519465315807359487458454747682513522703855149222419625132245947241661263531240712827680706680759965606124624457016208651539346039730283315095305838815073356748604586858795566735739172721412093120486608879276609600092862910660357574487534110046085100723362296452173203175504620506252865569999824945833822770606057755676648300972236868469849481799624312641630986283406567708274350538820160197165540807469207222801730321324353541712379220843629599037944234309505147954522607371507706227014444340066997806570817454950643091575964268283783912202284087388916171671294265800520648306986278622139232081666267346461878138646974274417144258132097352684329349958179628153007478200870978225612581540487408177856924282551770755104222081126926114302179089973046422831007100557047180085177835021582813792883739944939950836804019397019455144924482239880283393399971068399932689335115777427533203227487272555244597300323631781367733585142122239254935901461980856812897307086793626365682405529797043114145669914722624928001425919945778730062083891083372187210487331491372079082267403622062074295566694308068672036438666333706068570285327566348391002642775647741953162505303238016981624404959705716135335876480482676526213071462255439749430400083111086729417502318650653329731556606147762860882886535144729333540552937663229549441158333724439267006911414888857363283656568981830070509703931248717596802883113121575626931301007590400198118447467541190909548935047713978606802421844339045643836653577841977009623787163699310832771677018322275189579262178789937356983199633076179959697051355173474140541378151941555488622931214288693091295570584208245358660050695897746687572736711350651479140996143362242723146144035569149180648222063051715746739928346230002765074403397716364793604059672857354844896288126730966276637861012172300954869711714002671826406804905961161413732161920825544360187666178024860244025107124623361412000531861266357616780305846726016820425414959926328840789893969281909894386656878407535679623918274643855507712727861635299202591845137730999020973411004776264121145202507345752816062135062305043298406703623701778950359985029337053991963425447309147056828486882103306088890751298794706444034737690132788185137942848905467177614364245466298098624688416274139088308712273124334604052848306700485438468522608539564152314955980748100002319243021350628196258433805393197577039553342210341994678523049027237928473642785687859409062664253209072205301816439911019191841616769310819390273774031036979488390743483916387277261122828937547076703854019927565422978730329743669063166214525906183768718673713429493463129353364379921753833549880421048027636609842037842115450475748966925867467431515503347034767687143628495651742902398702222918497666145255782701952834427720588164630510295855111266629359845267008043581644441654364263552443489397505535758070093605272345596767083434685003141254321136861232132018392395113540390281732256006849311987570253340447020410023428160087411718485571899030409211066010566910106715404627573118548788511517232155839375627171063948464444938196997096367621305389156490091533779869659891573890317917697737768320144449938936129326495017488461350587688297761775891882875768652057813762281119125770893925309105668734741348042581392460100562111681109388844272014311963055619157543560159116256206591684388512454171577870036359289752910826942330108049353792991727424012411728199087582944333725265831319298809864955898096857951435132267370647113414462275942974796114924501227231905110337603708896891720079512077768622268990909864105344372923101912604740449197392251534505905952023500152578498982372677495259249110985462956272390502572735534887994016112871321160784892797390306396784016639453207272562146104373715389149608124422408971508316789290942038171042976342096067405933298981266279674583074022878128907729626166474784233367061434507002408881318664491077874410968565039149395610088602319436917925989330126218824805458152849148753090868795389461197673525784129935557281469259767763227796393126846965276777462818547025001094253704622319825499876808816723562214064288069875316641503921229645619304216850930134164586163218319968072288627737353305840887196036907575703251197316381074668198472384310124154841013701124482984371664187075913868128708839681954802145304828692039107060328943342724432483120594139786840437927175986438430607347444641721209641455051318356350184619636076711732837561596271668405324076656880366807483840648396733412771064726039683240623294225277466629310950095430552156305896299999608297571655570306408163588463075958611414729524525062063010608880641647559073153124340953475897120671876171562881426688538795175276596604327855157435371967425064635218465088594640789302102624248168300014860776348539720234162699090134607536850136869164652297423561379971623705488613053716472279009803182942750755349879671681233221959417477088716407812069596910401305454584707661302749306171909191729506046215760299876031116880959051258877038749338638542931713886358611858621999422725203717148286699927600964006475786797684809844014669561240604112369149948324076627682025219532914158594112439639981903463539762746470335013867730175823119726716571877009172527229197910444104187321676734853246186608323158875983974492952729317440174322910062772812540839229626323717991546812860172141245622393921144496069695178833449396179015997488961015164706927135794228152058197360393544926385833122118450596193704585502362349120707635111606111330021016179855237954198946720652335024093349147180950639061510861673911585566997944419142960088684253602918899053480962608645656790932392840401872822525132811949458828140746894589480174853594793241523908118569632350461917825513938551291747289149077129979402156281313945012692658743839164772377944348956363247810698645673738019022415465788960271440684180102117508791711868603508111824520790851691325855362964959173951107154359547211252723970687740160993843956834101191760187159408741200698482091686763948800249657903160477590658301833835529185139600881174516606375276367667519426930746664833647268041814611364188148183041840203078204922635796363328320647126123672001942564924220954069633171313820174170988473449097286691472638423853448382009198812393595461818858182123986718828762039680405754976644857249466387566939625065846475163297129570728134720162927718019009189005367650121109332122126570441070871214665232817859792583994107513602791090664428397509743419815973726873394804108491378542420494608282766852714450947268290905459938401184060859181137688303514130908207382472997585463585909773385777648780896500683524741795370115946187586504291348662950190751943009467234961050778866505551498483036449480292088138830567310915143508156078046959376002735391936113040839561507408617592499485622505166085175779470549121226914073192607396321447468797034239829527622311541314724631567239086477313932478109830416639791720777857492912080398928079709999922237024548300582157226885684649638492246569351446551822013106669585318188700959182294835581972215110603352158871272706868468643340937768916085992634232620324692297758079066276784155447894225775511210812670087651905543462849790101216981869876638622985732451931707954492570654998623401145360730663557725781000443559819721014274313655864203078811207812464893655403101326646122442635686463545504235533281824048911632193191872899498127886880782009657857037377610387759184932272755854445885371943165330942335989010186390370522601382186285291644804624826215782040015895983010754823579146606658814772063883809611698105609890294268846733712241652382703610057865662629058178519543966937656425063813177634750649244482517146830208863488226246558406916288684445894523168075496024877720160973686419196716795218451519584897773231052267717722966152288390468461071241983269154561095074353088854412560779917649674051195099908448761362335851939986398558098726283436412260000833397643832127337549794297784766304935600148137536738777637598363110248633882422258043577443240081697660158886141446759490812860553370820281146118893387856541961027354708575425355942605148301121574765110355011703550078219077232948437220505610095510045804984352415698141089495335965918767344527053675173537208294519116061272441400058448512967013663358049172060831816791744671207020529512249185258199510895653565463232870106335208664319413177452953218853910134648227743422667454695892538573904289432448195447443318269271204326809889596613295226422074238553361848750114351030026038552030088405605035739030535678025670918807048937392392738444107614588532669690458384036065292620408879376991625855851454495024276567089996465737657258409644996915016553689747442663781869510388479191921080980363567734921894902249887070575230201673237018492324243687806747688843740746732128226679838464150100019723099570872188725357009923635620673165062460747913588625591634472859115588342712274680853500015320671234501403393621157612849427827614031692088801564091426746171505759088832313503693233943222459816011585322589022524729381075358627046034025293548533367235202034811271674941440506301286450695229105328227959707535596001562749716070733445564419421126983760018500339740396639223341642422381752264945796369205542679270360107399884021293876458222714013989528456252263945883192441625697977847387991369303048203978846493589354919085711728333227545824938301182494887822754702167995321418116636130475128332733708209116539103160842704002061981808880271161946067020693145512934943610438194964360239576000245557272115409386699087487730261971707321015158047026770406386292885755499587874745582594400378452588736448391581881382729555837936917908111653321442053639138939734227857089713897073694813240320307086524109362819168223091102588134921246055889722584708658659807095150811833554749493892397019521899196781426510550295167990647566711848540804939427893372644751734067490951580809374579748605277565214578063576439037912230371409154014783965022415175679967834680854169456278273409949768689332609125423675292762845537631305376607147789757464881323096243548636947540522591304399814403753119314570181745225716110427348913721593448805441147728310414676169934439089423322769765500665060597695765712098358147708951865985499210809305389102157614964426016859777173301634686082624358396367702631708599808108328208420737283917576589622220240207741662160127764184139570554510076189457570797344265575453711437719805193044578402794490323807451435193490664396374914607172669880109022750324760210744140256055949973609053019001236615364751845387437272867270509369461598025858213178664574078770908226478906567895576953977065689501776295476898059943851942009985172079895669055700547994363390446540197269988281885740969387829590430089238881875847344764067628467889107984643225636770910179453279825758169912698407768365994832841713998557163072460748241911036808671983062708617676140708387017532875955863639343112564531133347456263722732794507383694518513608029320225937256115920649616966281658596755927605328575208357424668368006516282439238792254454172410385818026492483788289688999148970607317963472935304445643436253681561854937993438487161558734597446460708479271483697427139444629673456887740892534068265625780809366064993469458909200055589774133200079693925737952240363453700618347929431977198008412529070765857588851583144067672571927022793815345572075919270965274934060081838661273501536246632695693518706058138039259914010903874183780218960450111637813813685574026621293876027555878790047655226163639325010820123584083641747980011242479983571878523723367304850436845487427009764728092375575226676484726365050833729990543073312303709976309832535527638892211671433438285256721183900159133655708570394217250541122424962440539979177810767717647071133302092848536202448186034470035532337834611631289959960386082858979855099830906908314089914369852201669720748646897026437110690622222619226657960278652888336458546595103204965349792425065281688197170472462920019722166965945701905118970564927840463162652167919358281115683813471638980038634544746010314948281524286250251310277668975876290578023973881037085533959656639377314036360086961907297753599521464629578784133334030748388275395283429534845853133045456425452238285975219916027068461200497863897448615851680310247047412168736104138397017712936609413396561226026846765109986362309755544927165849629124102929360691853333900429963353851659518990327114694754688494077000475534686296699572412806212995450046309178850548325977722744619288121648711737562691534288841219204255165625480647378812316564921355158607742513629195608989919639204603005508960755244650590364252389346563240727057327554490611660808814881753717078038601814433976159007424713724550228357732593193807294291590021578314162225731602463650503032359751711463853840509111496539510639471078163432547231425489913514292360190174192129679600831177834373285058426623131264165230891879302893560784084677111020994917050451062307570343431661652986838866710165371600712205673342172188162105269907058708695090311729528320084662327500065845588728476331407066849564209917849923624915517677272815641008032729653508538065097533811920695765938642532774116373600732882211217480581127013609702854576763035854074694967964329730615371704412535821676700252902414508640064425019929849811061827947357771733995451480996545798458328663536229582496296828997451338992179131370199625530261761603958876731765357041505057843411040620075595264526714579864463446887766426835139407911772621317953776330296935537210847415896832460927411320176892111331683884596254254192562511169109090452545463067038843458356286105211437829952683238866487730358816657968947688530803992286173262678970149185779695669979326093687496853670035072919567853837623404109875016801178359391076476685548782722861512355442996790031084856780366704712344161668724361497984736940913942817210036586371297826692026675331529692525933106308316695763433879248587303831999418513933974208948856961119941266304187432660336300883467920298082829057010071257605444867758546087365071742464585051819217889300960316977538968214876669995810474792963230140144957014883873181865286254332748750317852778600932204648375302717614238714205166701284134758667011458524581902715116642579954262952618152449604303126065876713993089250871494087533417931243872934247289178831000920632218210371244707971518156520638516019120615231909405946487878169007863123154921004718457909620297132511354366049862243771581342471952670942020275602154570219500513144240827866200522027151651865717855212040705704891350854282620499378518075076442234351832065485781716690617198741839793851560233041841920472429417017345020802035947334804936233592109862180168646131890365974627409085724823221464705793823041182317562972252111701148745841244406196912395872324662763172959698535960804040048507699466194821588911505369164007847955213572048786313200761073955664793071383645477497812152543404176403613625319917315203405838105453173458387344666793531630593743161969197506325125098864119628928670261830459374784043627008129631273346337500963074878448106669724919076875458450293279453581103262188242431264947495579056404233066617025686435194694472807780020840902106446228517943932028892032097493756491699565122980919830026447180840665225946705002459459256755356052905310680599403862218225705201011631483429753093611707063904707146658052007477549629986036607754171184901767204977307241054830423625322757170501856795975237208374765119989485708215037553777168568720042259219745985614937255666048699142702390593067393242309072874541046792687328763984668472084443118531748054232792907852198675570024953206040549014489251243786043664001190557417794118931568898616648451020301307179054719856796840454191707336221875706286353315276099485933316455061810821187214763862033164761457222416663846246660253829970312425512999959424839647648080120022872382879219688007309718178411295173196950784082198520689807150610565150318275328535815982283598434411999670291034641092072914175393510919981029614593653651826815208552653734614888846882317341998362859559339255272744294974754741395518431685853951316947573256860949567020410185416762002673185701324326209817450071432000806848494572602528670765702778878967713694269702855137056398853451378476611790515845259273762817273938597287102047014060046598622621287548229875556513135100079035059464084127382237304298373279999525627549154141681129416177712527756808544383583566807272995183048786203619767958526059314140747682798133061335523745691513195254109327337492394240057024701537293774812009511888437785865926994764689996177217144849548224012817352157434462899042454979862453297626769553727172978589019935344534815728881163074126968266018955478085938158225167845392676683084320255362114225107254370031558397132682059356769232912951339601024892479352270524198352275925108574634661606643834755179559634453146504536876435729001598244782673826835199324564309057536887622102780185222642921411616989015176525672822186916184583333330439863128384592878118408371428141844778757004822795009331387850741672584189076459079682692613712793713190491507079114544728857546934586273749793055808269446086677051017917473794614552943072141899938030859808325730451577555544492914157088522741343179116271390821282769542619580404798391929759218665601648702836318228893221520848537894210902282142254536866021828476325709162083518069286940584246730422648525767460664861817164995675247229270697155588307070006015460623954995291962422364227998997274041377879342098248936159371901489957318945820609963504922196983769641790611141476260551130242388799674756295304507977526981287383328196517805150492202252884002599719992848985801466209004908294144352725019972034865359690265825097467757855934303016197718036737308034513712753202692952796345521269722835400631522836431832693770526315095901432458375299887738709681246980992013941738453126085477142870514627730172445404806005635694515533661996794067852992700160869594803468492316458265025631561912615054475882501337698282993185715566182875987225243739256692924910997251571617783172845358415157125742068493705187533214212877799621558522926233756645059373288299805767983747887670862059162643627970054174140677107132994054207135459959347763899365149789551193711204143317794976939877442747733985574886689435803257224656161922822326407512639635802813500944632934903168672618113114043766888370782774243008325592320863415595023897275058478151994045797475278592763985742882922651962830297437783800054453158736679767335376569304490040514273392077902893081736557593626547611039345145660810670330981726206413698899021831831789302637295613352254617749506219824855667000103918721917650007885853111744856027536053884226975504716709608635149954429509110772002516919560717007088235440262747930281741372903261160783326747061285433395237833163521031489697923251568291459852968721469687516258512813483093624524064678417290374980155393955909074009806807992400616474553154370172837560666191046702985850466551121167217568376468774140056629574331875270729478953413264888751804801617133060553204046009676890558550544938718302328726100329019504174818905038023819546775330903384921133231044513323648609341307985564720415128733262646859680088281079329492816956263634045515017166863489167502089346912418406250577115588132071125678065986749763888475759884509906161125559296313843584846077990521482712191355216168946616938630200077080998438709579250266678581953011380247948344239692978377208759124576073171223471371725532547812196560899241250261021119824785918809711006440435519029735653064207959163045902633488386949485353689149917024004783195552904545518541966076273440531044624861045669912152252046451415423213638979925934462775464080518162012175273966012295069082055536617575245067939017730003602613129561657287098286729746558538273719483523320315454598480926919619383805014698262932498515935031644909610384986030851592918278092195458036944264273704028676657415735585163420889645206418109468696266270977555078151834437073686140788283471139764089124510676284873506281308323460320351382521981820030242219369665694428205941073916979450351249501167513987368172617531383673626590977811534880787098205595264501917606681232002921394894642086802837318740773634541723844263640195433036649478883971694613769049629974071775718602879078121090625494818181835566302022355879032198444564340567419016631779111511915640907811403363278150828736486359379702276408034241318819735664148236252453128916322236762378382188971719719318701289376587700394506973945350735238433562670701638670320343566954388800151735440710936754411386460489368883152431362449508483748245045483219383635496889193871915117069818143771187959969509904713205532021975624615385959576693830100629775359392141865105268936370638755204816267265183562333004661815848308442583311342030532575254492389338251111694880640670543495633858533560221928182501129950972391477061839732046115523803332282968607234295651029834108511069593014332811515357810896022071152041369824641951481080255913123466102033113300428509258703885464535547644018964740966430327702718876731039957029865106722548601494250397381306910867792717806251680335849921879394392890234617404738827886888641675674337844718124329958444748191495523810012522573729365649476145817207433163398579834885539693239368949462249572028418003193625380460294336026547138482785077226475175492947100488471599217834581160879138326203625035604386783767825645761857811091298091059328851363123443846859315612751881536423747261069710085932662191833611319481642891919637461704048616735830929174886610159416940169656352876499383287176989156542260769836219550203988955154020747891922480650748331184079071048584174131409519527172708726492302549490787144148195407661037363877126687882913386127783894113812932260567059441272248950242265340374207651177783503177026125341075370652152539150933111398840561964878318932660359674321884636949681660926686859453299913884564968843166640813812060274456517318192296683929910745020761523469821886975056227574565088822344089749112995462374114325260932713693158721509897887087957060366958608671762919728903825893899699687224799555406051471338312787217311480934369707787192145704823604004789679333381816152657842666751991596507275840180426072001079681366626292129998483157115574592985640155060131253882274323714707346235772301953764585309506815081418167378453270714729459963631595004235849069547130545460557048062294180421619799808484786499902928414277301527870640316814537454648377730923515584382703926729410434416851180424841787622232376981169749421109615584775584114680405204507447834886216821234865531252352572389335865509691084748187302091121565966837635274275876749190350133567760377694034897107900564936186784461743948445024376277914489675097108855488876752138760548387037478497938892597414651536121015607026732244586463145070194675616334945669664679606465853553346316323064873293323514990985785724944772115673614769112659479626807955390560217816349020937468218528910546091607751417775324472081487617043537699170527384027583033558148145497401338926708410789607665144753635511739032368620244952271500783165589463797793013734593886569590480928309641762816502280727836111202263704191383909301478347697073311050594373356678142664765785196610371292400897005433110559268260953191597968757493553562916188523212416779103471894894076523367128538320708618824693273442570848517931601014972446581750799004463436326713615085156818331755400383537292772429719943697156904095631442363672116893247306994542794429816350315544629930795126956593944642435051820632493568984850281427279460465525016776459028668485618895373439574993092572371612424193053547239045783658086319813055095799966498180386447383302251053273076280829795812218458382471317898692072906531170512495828651895846784294139792806553220271626419974413227629224390196427648822452864821553374901634307396969195514988123345710369451705239088934352164932395063806326685391236675280310409878482321196443761443297366280857962921825550886316598055188723844643356228065891936403094400773910386960585641504561641536189547046553097040906913385783817459599939841844021730420404171414296616185259557109087319101421767115195681805878537823110461004989863138341090856262469984403804011711587709994159863191095022104199568758654222459739680417704050508383906685227944130279943965902964811328967801917730337063499504991709002039825026386389350392611899664189110424121736356309857839814837644863806728459107687194277888227526659567364877257381346279299075997171341613947550440066479274734049574209615671277186727044637285403701789197399707196391164747602899482643779950369194762752204005761883343301995690043991000802944612884251451688194947785913093702112674202057002553130022505891205805891343224777411815194448035977345935649431989468682100056638819049965445141089387481342901579818126364692442340691867752305702631622751771820839189154282410110991857302645671380797527330363930380970965375765891603599292245351767806602899714115097309045613265502477105489455450015518124962153724520414935761688698206622634714875570841624048748090104246602211557904199279189275596959968721551083041457341557989278393111859931535610476839373648178285007817161320019723711627507444069677922569471584700507510330666025209282568142220621905105893706886654191575912800781369262376887509480870705242664215090472563033227661224346339661699641534868788806991173855168984322045748722062914538090077046815072704857635662018041721637258505415832837548695206766277505172106874961843112873616697209059454881270426896561670827791205618071577744631520761845911906002106068745150644013096407016549518198455524033953849276553413149273353498768055847421144183963806470076281936879947537063486727792507780060744969745316850116457246763494985207830258472902209583264632946186202343266294712881192457555509384576421874006198113899902487437255121502486604943061827029062125098134434723591775497556831965543300774290467994053047929365567649598815956110722232487065602872204767821993030311745905524472022894878426650953053382421542028111576676670069077652257391198522985838163129307180839087993297172736478925336253472259559455042282915101650932388942796444602745324754093889285729757566655068243129525355986272282728771206509671674636992223963206387336614538997763999616790031089886540305307843377862884164051676227837604965578700404953919942610193995422471539439953778028209755919092555505546564926470950454659044901344635707123265579177827592304468393844000206261204466685022446142852226022165544321422539707494009039832241699940926268838817920174142429643657994267130053623945154249691385295940442888464574028741422166980557941645566267095739531855388938994904758500062726454742702145740508673506584752353484148975670220058680001756412749595777021192963653993125092730192138554749214404309942158405940440564296090420423405643691154977224345501808746899271542348056095610609393726335179877333738313267727062168945342719617521292720589607337691729725397645284862121136055763115931738270746180187100263281914365040656644834638731182139132376693084197464303666350902399805124683945680528825830528591195678832551307760776776566103412011406552221687137375938142895274769432995745633154090922713696381804352505881397995529319107277260975476044299662403384243051804425058874552040788715537416008643333748440873788338337393555578192622900282719129886462831880568101220484625807478379127955335329534259424620136640101045014345629458270123750723179606469257027276898438762889783630348867516398059937206236794942571165147729129463666052610168801702879273284054528851125650724784344134970911839759627508739503058917513739128357883830340298595768566061546504177926796343032703986699874978270063362663152297030849012483438957133282518749686415725419051150462341809417760024477738185942887571943718779124175176909392939535832927116389123143228407093224290716426332195905786828329743388650766780788923917477809320633030172691650413875066565321331614448501230397356923909370185152349037352347664864965476044191841358815277864844593144727704071033418799171782431990547572751000855499563145990975390098787660105390294371119187686125372500945571005197210557037612218886604114019674577189205053628820327223479353460615211326284942542382693093090923355021906089627770916554502658162584323924253637315585974496852465966651177380672208400568912614467323299484865761297758372164724589669193755145786297009793199446980746712982610286288860746078365456807885788140916928853320459167155761959694105222442566671569388047822165677188228844720193313790259033770555394391296421513343728716038821642490091738284666884363278787291571943671800457065220389840602738008846766357742973467762952939340775337475096449237708824925249251071175109202084308372496960768513315002708114242765652030478339050700491158097511837795885669221744107473578060259516309423612953762995544124662312612897620318826367773988055844459870350824069038082034403569914436927681932323959269031836313550942054327142944223985804219659082942950120646927669888202899170765960225298259709807740622672703258984432073408359797503831271110482309579093268766010084174147247674911975770806081056637033636787769649093876327484059884329594442036139537965379510959830903512561961358288455319604966089752056740423932693403396787439227067354482362209192682456311955851432037456837550189839446751022975724817554181148057461327936309464953260118481159463058925073177834886676839769788220561988229144453316154112856682243458327997047347510198958152326550476031115415069059968266624800187367413574575874285379178598253165784235266347047176511721573882857797145989531361960127142991797524387885886892025288139351704484577023752852519395376556529629205398444847627473649126298692049439036177249748824129079219664657904250349648320200201302746809568735488989924896123009883462100661987810940563375222034186986094243224281270188882137984986134402700941905077688456878542524238495275860152657835212284065798832648673199224130406342268764313648474336470378730158897588033551381641306353308502272578608824574719985382925716925335450302390148143780238976095664944149356518653241649411187354880669664501831344871329008702793431313432977999880793694792010007001438497121066217783542854424729721421296841604338028905373159040370923267399788387071736332262784918810006174744363688778426611808619563093475056979453416408033792029303241581895452488643644936206299015704865151444700396321870241123059257417613533170099255129702377641352430484283640209534844797661873169565743796868216433623947493089541445783243520882807765554157646590026710282992838712684472167297736985027289913522789833782193721029482739371341733924970721169795590858194183892861001842646935742296174762372155338728801148111339237209508185229755736239606901831537369329869334940596354769798979213821803928805343870908104946975303796541339321899205257707839216530451864540889448444013820838671762193318722972592636338699747648300772639969972550336848664307445845661174400479762562409069299795491929468701939076443394667043277625410871124729567409697502239779520630118436512379607994542764467243456428533568326189966548415203545971572493469071605616512241014650245839969025146474952078005155152368829279885964966303525889733663362462030263593023439507378630322886400605437350822990348636410955636592575916244180471709548014897097765964955060596474644026831734169540013346751008739101389151556137119389361239423592861804959206641544500586136314943225029715148610931498037971595336984943845550061569273318482194151636381024496954361668604436698333890734160282121954743949972177948927455366985951971476575822537191629267618916438467399346801813368438642896974164948784785806259223440599444342857082781462392752691096053206375523339472690600171025434626972082990110742974715630923334062834130060322250216391971190234487105146051589148163307033999846725155473872361240202149184879416246405072165549604306796279462815681364356892831860086560174327162428965012240001452385221336033815727242896947694566236118120888326632768315041151626433515180789271985119637096530176590535251455616675490971877134922920454811157579709913664177820873123169580175795626713671333623936048616129130921960046084260444530484229750416228147590874355527979539121245225730806122719882354904244114024336626474867198627670766538754156556390307117182127234904761448009975871525995148097668198177470114466336776980192576739092276405676980973122538143352734934476912570317301345600224255097255249430289463163182646454852721940979088460094929615700011949751344617776032792180073198539330756113146977000113182927376171114973316222031197727985297504713761441311639141245156269792024256415337751161112757989451031388945141774576412635983082460188983732175016348391839948195040698275301010302316310473523065645990258586895422888718994430872563222071754622306692434998968002736613707128093313897719792703758060358673742156887320955286980834244910832938211588574762611944033103936438587485551887802047933917944984806446320761763295793300001452144106469767417873620046418761648740961185996472972655677862489983341779300042073920261810180566874915696494248572981927740506394236053025917523456920792335379399170703025827427890647375117674209359956669396260275661176233920489674609022840537401048211729468205143919640061623988671665875460755672086922981579852479199405673643975728622343095363254840903521419845991881034930001136461552130958635071767503290903380955999928983452676420436891377460210531847963473545506252781978182327908742094368193324803251019869015350739323948390461135399446589975368224477761589619167974719579179154595437187147027858354560101638389476935801431207516096141731378172228338911190728358403915853535078869660568226753458554298048750397704731476975396223420483340380962661545235730952063912914007290907321518801329458185386687618583935971101222223131261767094995400520816986615016206670545156399693617043648725896190407740980963193617934276175945529002309426988342103921754030813380858495271262095453949428568781254200442101655112395008954795134051972291034636988562941828992609476193472474677729495885143732129359151356277102689432388471491734594471132561159475367051139810283910944177973293825919961993480810328728792871404371717486471677169591420002550366651454984915925642053177099868685394844710007109488176027767786743983294380751490899595104790142578930855959844556729437897459361890814185724668617614062623672451570937763225593429356255912469210947495409436642513588351524643335164473891850211503229758015930621527108848578459395607112348119794743558915808586229755634177444669685721020675567730142237596599284313679439023640020036755044966940581758454712996484635882457957205315021303968155534305537184901913853254804912196840867510155916742780133896269623004763351355982896205298624734207162292952298835909961397436367772445259016640613956154000008551845531154112163869610533885551014305712593403877067223639792426070703919879699597769476353595418839860300940690688397979373845116034375923055404563464978302121357351452259499483219370655599472361157596928246715242517760249683475018734701519870332276195160099942109805709976685952284649231068636904646909695570500083736896918541178897618930410853154962202138295062338710623165402099138874291343718000475830218920812570381705337155239759179223891397105910407679493132466249719208463967331435549840469016173870156324178140664278868854132069013308565845390598199563410491594706713073015081423159728812254943632497852450357869154889279954298829589499224303177008967253411452366030318452438598940677736463074886690131446236044692660099223962923770343086324066021396651297163345489629686731986332766190839629354992402425019498906466392950865553465806187111116800731421918647212494500380092318155119837611768728683693339419969083789065231225872584027121322394139657230886879387437399891360244402503303804676374170902550188636723198364822200670340034956731291343969575213247612130814996451747838118121235841483590694112355564585792690228174431707932354420251362418847473944851760546944279538699414946995985576233747007102780099915912782743032119818438390727243183365069132907098000502281835954486179862671070167320025211766877148985961675846325915857806372339579466673912796864574172574457354169330570275776392045380928994962669488163337617927741474588643228174913179145849665824150119811365436335973040291788765272969277948786697186641540336071618159474012283950824095454147889997096773639399194199192869307546909179201243056550641263774644471062044168232979907618382557119107343554604184698265443734608625969174876063063266842319933830080346548266541564188756486593268332778067613820607021398304082763604442930003471298343578013469669433052511934206364554513917876292652354465141699264124397897229817793563612623351427216852831391697908940095506905984227778774205801130026087907495061121404066538537376256348807103135705237819979535500000526493612932672651522903815364399628671305188228171044018706689836077225827391066704345906811365227076461383171308050677111260851836069557168232375962656031809731718682061570987344274714011252416527024581463414720146759887041314658887178342071086019301608266605977959023639405133199551712106663136051308667071523661449519875171724721460638948342583970119043705956692714700533686704226704128835488467088197542797262235550987348298314274414244030386864967168590912223772452541480590606829454306581636260636567799596332957930117026102823711120138327626212194060332587884914204027944230729546571682951723403648593463125442185411302387793357779567927584117588690771907496280577182880660791353617205072312035351521468781605258908555580451207314446228169026934382164323333825992735390809202258145543349797504316402610627702065563092195784242570847979688302353201066162461711610468384792456842390574393202264807255411888989614283180657236847532394573961971873083590263914383520540458357495997650304311409969419676421145335109724271680988817543474687191533847493664011062743808917600445320272498420628554801521937961654136693917519943430557826015814578583482513564706361061234521378650085192647749417444616517682035322442091741875174727017817232852639547128388383142730143088874241493428285016533908955873667029266569692026635685398358259060244744369901264816587522734361413605747209015477300212499725772712739155989787635313101918771678157953943265360399483507805494702061718974438698794653618371857612071197061318748390111809923209247691604171674931149885382088851053186323438090744701595771575678266316244836517805066617700178565529874975848677628070142450926414645462185458865512713405067270893182839553816262650201668940405385310581302557362394695355211053785330878294628265796881747634882108673631171452730021071679409450400758952106228759535978577066621912547163118608742632108274198836593668558796524007830176528783538278996865763063373172328907957292822000665151835161707256321485834001091841978101097734073129101782005997516783448028196225942215262704688027540066495880875121699919798318866527948115574797191123416217359602557958187542977666254888637330800824065423744953784832945681466890465853261453156124922411046341343171919733179794366233090328936587215913800413334675781919922367492001539372576274427736049912842725414171747960989632922608040562314262454172765039911487030004501089272650859908366635917497362931168683085320360150156279418888849418382178159030271376306372724414908685375243195799035720758822872145543239654111696296754811139363100625593593121284550399123716238459449071129103320977184374988518528420628245402669204663085471709487679886464503599148030905936630714377839964047569554333679781686055164325582178241102409155048325937622155317126853424298417953755509709955677070085570103363826433754090096374728581177402875320335761779476028797830177012327706584078438491343596581676669280580161304730198261599109201276047425918569522365446844720542438245922718475312379529069343113514286622461716837577947446139290896486945865730662031343295489568189174521028233795922636803746892097237259931672535079558671316159984787455316929352956482017289651972490842442864359397802607683179007417115642983661545142506058582350969624829958743068550153454829936310369609582548961706686641738083414658074673109677129958493365597393682921997130052896234825315346725569195321772121016614528752310952181240028286659238670098495533272246102751829036617254866117211086575250770430027128678662353039927694006590979892262673483366175367436139260945163732920721200625031368439480039057731501561902738650346727154649413266254346647630104178020149905702820278598525332466975809102260795785406996764199071219493082442093950186322073566053259607989546395148139782548422120187411211256758273415987835219933466868716039183969419300916574214506396419238550558974102947755368025626309400288584373445856325393840661414601355050499641185068569802689391967165954165563546436307446198006523577246816111421849425698980245520628198190901246971775530779621339900417044210093690715205626328434415600704850203087581664040234996249715499120476688704455583525023976416634808373987668791289247942372217247307854813075714568411328946417321505621837492432433499542152298431793768116184045059750515403782806480621866269765613158701719751166584771761634230601138049120985391002865339162808563323705213236767947951474818701437311173680474729417330646676022952598492981117288426133604022783694883582347878319773219418623263431225749450676708501540452447372058710603500457368549052413396830809227050225531897944646306332900382111265547534167988852381208495672299438401247401602918917538610540685982122735890515952226624615262057117548624506065944174361035357688484756093446847540753740354813142541051414474118461422746572693669933203346634977583208793885037314946255100785031125758723137948166613282335768796682279254842917119200376025881611954030552853618740489792414731825368850733596929692818459409657702705035936743216631204116900727059792989265330362051810655552851635361068156595172659057605021128737433303613008702951339387152397096165095604126792902083704269364136964041011025394485671358625182934404644353670789859026742071996820186429072344335153481998226649040210923358917429377990514596373273984292580684251716413120861483226772534664507232307143556643410514712295475387616621802061029054664555810390718004904153442396794194689737296127195693617169516160867254042219962366210449519890683151655219531072123897737963026621218118946509482226323719312783405327209254706927619966532451789881233823198340331494336144064923193200729084111572027204292535461973098518448120216711741445543854298973366318369200061543049220341526767532968364008583377897944335253691186708056435317146162702879431458398388647631868771800901092302915931627419644437289968867838547794680271409114594288853357130172648046318304920467605156057587081945569902446682738549594371181046963487041948474097299537168667530461573779858712942692262042172867972551041826654689942762862360786221081159645273660196569884971485958466312343008512554992593101164028083662761293025030751108127618217282749178137988824271345872406099679958669817078623593657861822594828198876701901767267481202128613916890629282070308759709467426560812722136660830231357628396402674349725100558272731615293620752803803649902408878962903942333331152293106681943043772657627824917466474643842357093422517740491370444031779065261078579896130621980255809748205672587811114553525850988983034509651521488542214743881993655478735246107140462931937982639791789765246437362788691534809680380320741034194197484661234334396809328690768284759116879957918881223678780323214306172006962261962630844434591058164057398457257077129992440899509190441298655927712722308919546014082467590624299507763820869215040713761378746965254571411969741924975698000188565997277917885943991760477407997709392916340418264849072820680627055579364103181385928948454134547297847279015320280846782304388650121001744244698626800741176304409311063140725164180733580138712313693876502544001591448432500658752194839064167188652558503915191704299634811775070668025895551320975398714728730788229723953024967765989974281528192345149047579942223017265677015337633443003968820307966342469651921142748813741279357831050026991871100892363687683829519421110918366299607629686936838882038717434327835495878787085623571920894771112960571260753551390027410408506383587712018178262397267525690291113629106798699658665078263987518455620092774516942226895639357181798916890917752194686262265745628359682262524310266125716882339822854130876431110900819346571552111117782947404637039575569746672047033089992987526822290623603051835878160332610988763923232764068489176059795337007945491968351874877418058791559457192437365761571793327762140877667011563493254325066920859878713344268701278466303251908859312209880168332119581224097933012025007100401923805310591654153124861814571310201655596050848562592026108862908828146450586769161035819158228149841739763603647785447631586641395839719640871198837015124710336870263778252745358619079259446704319409181180081344857616230853126957239582043858331153696331181952924014169712044574872405133967611363724665132487339715226887106392889212595132412578999279541122220894562603522157763401602555554688537970381465507229840119100864633225020427408215174365572157399510990305232374270607057317986947786498514996012754065748056657031690096388996976194364381827167822156664262464154865413393968462565332943230834658259075985714618831290626084666266216242684078832088565379234566231132161594348689191379364769065506825740262189030954438648006739853313133633592571290069313389448366830380771423540963128069458459306058577926725311832724948729025036325952426232958906777805305041459005752551044296437155835004509480596118021133422104785824003596965762412387341769909084591857680103286125755503842866884583926641814055079129458363277005682952111684836569377647626327429318421017679537473697460000094616032023556738911342563789933380875242855681844276647960449580089834007666740436928990445215825084209449976850387470412478243804860897669432361067200510781043970989192565719429881589362759177201440602361522611510836054614673800956705563400008937380073932901070198199902282457653707427951115664059298876256658900473629498970439200313870276261445366923407368701704319674537412476085797048884935455526833832460464861592922114355781750340248337147761516690635959214694368277386846435802549511437101101473509414657845997805067232184864229193366275499324774298670918410507281939383420016845875558789149531208704713815305950578866913081771446576386168416956642956953067152552515531289278593978292736380872321731951356921679959067920448034873278688864474394507898486404892932569765176756392914437876854863778567983462594138614213513139722368231635733647143642948930629515108224949399154256370463842965187368847505400715320358045558294826984599876501958100188243752190009598470504601777886544134386862443867285777701003412075807353907180156932500737504844922312070977983784874942066707420675090514551599608868056711812113934105208090183674521194808668549754898067188560885350231600559864266909918067329227627231574177645488570052251423183886996157271179635418613014210397702471282688245741745796685423179743835108609807449059004549662054318353322114532073598411887600517742379505996657511549515291849277825219842914873975077475133304983112802704337435296682250584409208329554312862346897777475675039878490466277619790195635394179340060188239490333389170812499782971886851211279802168351656893882642758364071329054652671159556623991117325739675162772222027129107422676224627523768411258048570921373184361745444150973814034712447867363745131645097222136727247460213594398088445797813866297484169983606903225338889241523466487058791982596432643625215971353321021404163719486879119778180963253779606209518689834499525445423060387760356199014321509772748251924906358111663335478717544138416228867229135025717601368669248509926225044256828292784824136467985659453561155271007563781743592601182530509181410216247244354809754750474472289649079056003445777181567550747598496446853038456255126363770593610974606927236795008566318243843706759715593170811013349454725231702069244346848039666504521552140081130035271654614234412709719253935018805654538434503936016764238028632107177393412897288809762127172164814191287347430112017838931017678136782186484142126451819022450332635312685333425536860237966265515436839119471600168803054430526152922934237812329199929866777719770960691859219691178366423781574832181690470146523469960310104486720491869266831800055357611263559121301964378600883671942854296654918490679770178902347240547742928917032049076161558437020320783500480587197311961825928852113084718220781060780694311853512610310577981030619106861990995970732696003961988062858240679120616626595187090845221368719983390680465913052954314494739352390396990461778581347240474317023535180428177441019068402295749334541690162787538610228627259378341287129104316310935432069247024409850192333465655877225466731684189149744323617869896739924113489247086044189811026531351633479778805356997243977427021872524510207657956801554492983053465294016484402914469177000991211964749475196010955490088213817692177621234013846524529379519239934856076188707014644167177841771711115885201699388526524148745409046523468240353314365987154414272982628812573761460911607768042858457972336701327756656403779158319241769553621214391002356962587763329718914193418030725379654768144211068426583824088885645759874623509303432634957322546883433034941922376066973416576944916653495766861846244552509331662479998390791511267538599984882474321916154802608898268789911680087544823187769032728089976098221221637973243715749705937502037534026883345958800618065072670273892122690102737177754731990559476871637513761479941456030441874297204692191372224268943247519515690666797613803023843697269612311580882782965743086423721311232372634079367367073577283034017848662762785874122317830816982580912617814197493486968075442463334772452044285974176214099256742425073926486694712709142218069004214704762289340577827815436391766636381173959347858343531351481481941010917296205990978822225128840231265433258038641002851767892181192311158412429112174683827330564470251296020252223542977640074895163761707756068711480403391466158272888212969685479483099237701184722727756776857337785338255609041023180996218859395491729899202485270231319348683823332210584330988347532152702100182251727065267445509176358514930600978964971984479162701889482431741190249594905010252717420371283676438335703635811167991629399306333214710440324669164002777172072066965602567269273134914350145693468511648842689274165776596322283442029255255973155046760528125943404560165323034293456119105832657995909494818654165712965298320216164890380102339572360538566267446829913761158517934391872892269859714967102907266247677728780325110909767551186221226197059566407282337447761097096909203267459831810410700945924099080811201741234426929330604312985777557948525700396305988948279318975979524475309823216590475867385633129484070201989138069742984652550818662240091728477975016694684067572044129855842558559424610482810049616266117128312263156174686581927781501100562132147332284815010944987210037731577250867554167209176559288786175966174128830837814620648240645800457549214705323597356525899092278742494453843657116011683211601516280941696692607061793848087149848773172171629961535476453408094300496589704432374007549128562612608930074724330278569689808050981873465563113299991281370168717743714921849610118635860213921951079243101409272081786122735147308312583887006314468907010666139504146936786149232219579807325158215024558555789371779209569386263347053406610048666450629724134812418166740173519108849102865575230525214776579028071929970173178083698390008021251082251940705155404393311996638786348178400375802905613289966233054551944373396626948500569729048090434892402041131745955751521919282224481637657332562145665933686090473279041760555591891002403269954075988603987996712625508645559715937908678767454545098458261471457193951735829625419366625370069276539753320172347619819955415173759813631776862246856957015183304002803260965404392151566341387958970486081608442395116442052136787917709895846218041761264612131443082672480264130633363781064164932059312767373607769513220610037878100259631155970285333150286173558855042929564721368951248393239350738336650264345104244943178252505293645883457414928637950165242784950357867097331298436050905661049093422672919790604612573537766145916333865177582993972484232821330197089526727954721553223026886724109597418812155465770879696634348188949212445113538941531398442487471063446849058728203653646425107858031836663325729099511962348479794918272320861213561130393630389740147642574172180497690532343291229253861597610445462515210384727849148748562381325955489637445153937360723962624753483191605906847292899418062141591259521858895773057430609322045862317085731353201906954996976786125225830597844130447626644420488595469928328545405128710162419977513246155913922466645560279372573211194842892960756563179202581376008123454851673332009623933283054169986634830096188679491153225053397872179180688040845226891809210137225299508729117757834740375894003906721518615507624865859749379160566468891914847692821278586727886661818705048690600204533970598375620782785357538155219645834010502567836620907696448638543302387725715989968777376565659419591043708816486158482045812273953093934014987410657069987257645985352242535845189687632801616192174494339277922024253253224492668859050437451550908507699460574261051731906614587553822802793540049989719431269083107454583899398378687988328642668259423443938546262656695670969860321914645914668787461350611861194097897429846316970223634307509621748970098820333268704029765731426030735921385047455409188106037822461215510482866254464028491396197711437848589867914221949966727411366946960291806934736000374115220295073879309896096577115969884031172209106222913739241636687991063293922044118796308855918126608654160253696008973657153911577427880266967638362206365754086222863866474104810721064752567474336952946690835501370438803160885911763121994497701499219882847173473016401656383138254454335640006469658238603784148814387422249653526325597230022588574200985784208612814105662916194891939289029677824061633191760427070223718981872482014189147309629878256598165785619260822170795837246675717532478407042530259385408849535181886281647105850736710443325509088596703619885203277073515868783544273065636684687720677836433464927445601240300888355966100047960812978935030706216140798280532342945298405756019737553048514070556082921667630787152608246697706735218744339276729754362156862956241357273867173463842545363568549985072459269048384570912530195030578092587243381483876260220308860873996439910777132164342568642242643272002395424507929762443705445033149747288509715192011956100745353980849614328991313802845273645552781878486333204883029474664425431336294667174710440275497143774419590644945378579323049980780811088431670001365819254569973865892450146699498745443841438989756192121389481501825575907742870763103577081361073039400806743825531602019635714269057660921181744802488811585889773132650017469972393848764928097935502897464200537482306230129819445271637210405985368762139632479810130635522993412153740261939771204476170087662203313764955557862926581073216400090855785588057107802895681237717017950399534308943042429502757946110198162721518328429070564832317669108782495164472558522490430986750642883167968321346538533034112376926373659839658153890802401027899238240071552692439820855456030197605899161002959994331315395157160612146396337862874087247987482306761683319004847270732761462353981940180322343476202621330649711097213190064461132842867966535502686596208682874061269195489822906587420413822120803768899441461611656617346201870548448493076147483948124025222211198990200598047076975676571215535257531505128846392380729728258949901149648179378727158360575857835930462206260243154443882526691140801257516662475812455607162554752879578521951507796640954998115280253184467244867733130775750224615263543509949759234774267270330079115635780571235983977790551437031477904630039209837067776162459066324434274246706282763365172135675851282941260113003781132056029200301326133160454909363182937673904962359144394147997447885133844899507596517804524130972266899298653121372358399959611396524265676205480795748257092518882905404378204993043585380671433107860132292794383323332088933098191131148798507567628103577165392674824581748314346940131773990864231171562229620047777496303904360613571016673057991623499757388242410485148470983902450322433817001786301707106884175228283665899796180979246020303263501461470430755876783396131125758352277838596312339974893600654661592469084929403577041261308324672376165150666539901372271450604674906136870667340096278334166193018193579632620321783737146847231942891495688984196692062262026822044440938846959341634070681642937516277473258382290658015747630612459872232053146219939761420064331646584213673502591817523201944765214831263872168003432285811099950510920011526588311190913001144053022185748051573604966070769988102551940195933454355267863331522781000483635334603254132787762465743407189701413743412571528538167978943536512375791872421999948473597123363743394984038350701104852634745151875020935018528552596037980103698640784735777033629435648892736405698102246655469075688974979012014682985313359681402077743421312285975309445801503031325988014237077077525314539835060592723440455476653886371758119352383378223321508766410744586545087553518238942518144990265549741085977446786824909269809850367658631305008212934778938469960053977248099284123575923662832711635382301207091859982890043151395572928650230804076597838149627692313008618942340118169275567300087805558857050344420742353886432894935185850324759804530783459246906698736367184000216094456192762047879545890628589518727156322528157562509758470384628641759375705615580316194359488703035199828502806003087551507182404410741428264293336408728881664354902132291063393864399381704937867080003157339498842405799673259661783716695126855510242765788737022840117256513931098305324838575879040245057508391481180053708310702258818625889422237194089511377256013381357246165142451229030614900485263683916739478845606588204893924259783580013320708674985346867348105548639344476074140973505739342085750454965428518713099791661133341606726424054148803764648038327985255046345251310259642034949227773894444249992636255211557794708105376791414849896202535293149804459953808964404068330638369102771092085001805155394331521177921504604460938244571135283001180562922702302086303552204316657726655796729595616606013034254115515977453497925097760471933610779704692716564267618734891449106707451214029059276817780848121329202565317653227488606462253475706612945894276602204085769726320985460480862123932291056756470719121097244379363545396948654793164323180274276340631512148699215130582011749854159646896391524274581792087945752331952885695450251856830422913987505115296074777410784320878865753309770503007912504963876737170628506759743189008932809423758340425061224768615608564195751041943400874289178192504393670990540636673965434987232430116046321016929584363028744935742415552045218310561115508949756156087694898702388085284988389888959547599858109316987542715555161009553827549426245925516045968570903575383819753615006206129267905976092292182270594178672463088123139061785795656775516597090653751201839933685171596311696036630545511513674764434207006128662024286597341469910520364840061808224199634608792222848087628761588606248119258938704873959008490964829788301647212973745403519231357099016502424509713546732030081812717282607909588208913602109024421894711176572547327952031263356264802887209363720416597388001437608621660863249707516727768153876096182276153593326275114681364544540801343141786996718259450113623043266821857238958759554999589119489597574523230873063343689092191269987562863443451915940698666758658586663687951126603934503628024250547328133548663972124244638347529618637491524230030446190286319731551024806283056569817664781775108059582091496383410309848722362852362301576574894415674215394612024130467004245626172840605177221195774847685336994715268784275262446588091844875164923008476882063663575203680406425007657732248716269007976994769612653539912039218114007246883120910776203943035739766498083063323585324159473846563768452523880798978077273117082322345753632401638438266371122296237211574928640089734218294603197744647594066913604321712467406659936985338380708043312640522291733502383037291358032354357931726372188437873920165189575978843187524801407049735288845905513163671884288126394844824291264579101292877239302868407854453581093196173961513643698868301411051302893140964959437114894221104083929567561878973967411836070980198400217020151165459070369680373981978585881319745764311197757495457793489479037215044410687616399668216864992797912870511071155105347651101959005223833934748389282393169834819774765993929861611970379847017003444457707381134625013257680869110686030694150387489478287364130331743010412753957440854710248457341267696427769763114513865689316920451778654948041286392526750046012352731910848930326810592780563436447269827567696432337171306679336494092474373737469710620019919908923938873701745412222005928473085531297119062461788769460036423556926703177059360798739233334002084179042166447425111380861213474542216205798615377395189798602237925209887026786876403002772340849084344164715717301398580467422880977107125151339162352680285808843547493039706040357466229248186476359556449925791442569997114243200312420718964225898204456936429894350009914130872558669343950296969673833570815171591516221090738654956761919880753078809666691937240440238190042150060239599633868266788570801629309340202352726588679184716671732852336110680498796513024136477983181541135165740969255563751610845088740595896571640088173314101238055640756492689912054944164654287897837148056640932274615564428365072871149460362350025447454865401100799842823127784540594234012963499074050208924235530124982920820090362424160581298609446641532699640623008815904442174311342075263982115402020451259512789754573145937530059089667646364625431449540530329669372203168793466677090371411139938605212503902729621633911869507051538448999837055191608910946732883370963454677027522810391032965465120405986337401599499413816824329749028884062766316036483296773015698757295348686073638906297047547781664066436260464324246758597371077971669758479013924213374471214974184316004484047169861789595783236394154946778842379003082238457363497190668809956304307700771126243602482807797980226178442482314117845646713899785641346362242215020639744064875177984972952807095982489440220818529126180008360487240982638493792438415984888482310769453307243075763825771446644558360249539821097412532739513293215877151645753288529909679390293583250960959039462562553525941127308080616074624303132188710338907275676907193961504916533860127334531432768420752533635577530782460189888072889471096919276781779862474322770990263550406407251071094988386485315761084186153487480619360112595382794761490355620477560245995781571684229615985887518567309585244854636247445104333486363279910542012547032407691767474631037282562526847225788073309591324995795548105768286008662638623803893906420613070324815420433480778520885821275329852004730874332708160805911377818390900447961727196304231664260140308705698193190844897305954234284467920364963546600677052180460234091104788328068582506801774648104251323031149446583168394486036817144661581388315916189181385482906226085331073320284112392318582688326464274139902902926348733310503900756178063995766841876101731629895728551509378606025363057738191875970590794112530616495338814166159771508279718315289493624649384356882691037608882867737626840948109933887047186547752695899329676608788331359847729517582616478624606802620205307689238454097486031609955848425928393323035704586572889150861548860259554875972885792908332156761007053758958490456809596796027231431287882940129745211720647794126094636700435864943540160034321710466464234074163332532195038549915913309784751243771153220523021851225146659833961307246271178795239967680313857905328810186388207402719138017570694501276188305721376728619287131768208509016633272705488578693160889386763726829935766050862894249225454541847402920712017216584891722067517820208145139396925382166614661875873075001321017723742977078681165870189524942039542453129985422257583103717306774694630585652670904477189115370185707823450548209422468343770710055711537563862773706976303916611228970775369261998862798942161718257903617471760575724260112160713722402632331411915460629091618218593605511077432273373813166957349574176196269195247522699228572402860687613217551646256082953592197605313153408520729918040493719616723626690447947573344403328446681762256418296993536393374782112106038138010558392426916848513348502185905763723449493611268157161967057425847784885145955350371457267236761952344693796069274213361733796845909034039806422949564160871759259914104741192957330163036343283173793681040220158108328245166894365962694745839754013040599909505699715708633989050351316384855543472547141456329610873107373644852127916012106303574736502964114111928918542534260500370417670786378761352216386939915020738567212664771022078946478863537274960641003646527851167486114453270036594119242218656271347310699896779131814681301807208621866499302773970322994447862927330529471094558340006768542919237142663793871319660797334119409645312636751738085467185713997855092751332496763539112252090161686836749494386544054781759005835511947935986157689035690029919772159289617765101217817018934514092465859895896503943999713316359409093974666595146147742747937550609657259876371198515779542642256730453116266364583902970898395443852371851724250600682751589456925791877077012628563577481481709471713053549558292187553651500792212996702021857637530414305905422167191053518820201840891990504219173616233368616929087102478265934196105489392729428003947455135855518007095325936861525803312518854210366862072918891939872403277206252835616967510120405364022572975556663363946852942543318906888287177354311459432101475717841461698952356110414273215694990546223332308607189235766501473244895425965315662250392404757821019513473937141352946796555168117276784924736409232550078948065990348830902485315785101818588379991283348195182659272441940838059421555294096404935928274848764581468503967145219107800022930866415159574164766899441625380987993209754891513889196461921037838420214369321329990358739048422894777831799046991728465383449767792893936387820476461778688240862469407692045512222612429897002193762097629137083966914508610526111988382597441234496685167691602978820758065519667676236064065468117535055712267122672391579217627420629406926949581929853078963770762052223443824773380882749313625423707278411333184485034354278920247398854173050729799987705124733229088648120317308831887044988172501137416052556001087180200679629136666635500532483614143941989645448842733710133638959098326148928426040675581210471072021297567016228181328341455775687273072472874555990048466795672983324298618833661806627254678808604520215776352473971236822548835783185373462077317230263794308880870073722591060674674319613751240932687908142995554416811839909341836981393713938917142721779417509032972901455196924213754056924543696274920938186782647437318731688581024656247923611136100894803591418001094197854652762839816322392468023921491668102974661323842565009737448795944212765670025632161769904582591929849736601252997557901545014548020028501856709731951139788354641540082756554008005919572031755842045754519642985339406705403936074046945325795808770241413232584853822305017407084675609047063702396397777373771593958320499880194094155317634080465976815355728691053108485138151219739695965857986245684369891375521006411971919659075872871427172775295022661676966448892832169151597510040914527581689662739691110625826733108368990824058836997814778430847119458073255705584639504369634066675104794641450044811540662682221273488849568079099777092776514627668020699041558052769646053211383098028620167212204192970328158093642526412895567940097493166492181699885511540103003605764229503027187943292492976428942440075553283488678505909139125051696998161094356977122952625591217557917395419286881669610161847915804222904153299112979061314369104911841012686237935369092964897241976302789773506044337046636616192854230997842935181078023307247824408625303065225472854565642893904931167108823571015504429391648795629148089359765188171785465907991009758451572144482992007924104984824963733025122387666176150370977641443483891778738771152839955259846568829513730701078189165758608193319187743438454851078838790372812046104281450731194295992239434347699029381575020414852073567707521869703784444081940501207609307650793524379462104898508838374041605057441315333343135580550053936173445424015195759502849952548112053009678239934278026701276429767433113113066410624769986555871702251799326926019209890017486966211070655153115786885932836566028559850123744228422999076983535954324240943654139603751596606355432336963173937417129204894483610025336740893880600693222871484356233233248556326173676795035937080894025843092349501682860226265305905584170780368215265948899512883325858149477128471633737463432305055846809067476635547279449202640774787924137587211993501825140322923202468810723848238834262171171138182584866115071830665263488938828094513089836634699703238935898354151049544895676372829542160140605574573423111729687102862029722035764540111811058483281303140904981530769627776691455762802801742278118135921460928807820802423418444461790815810917319380443729032441990360624270751388279827905532375071721196023037499657117310819751843088373293834633836075614538628500069121363004355768059077326346102075410194713425662329136377713425619689589343701567633998551780602231491233680086197683692496117098719071953758256269357804285942722117006667078873445778663153854770489700918774772896625721089578421220440297707112283612246068893313159867829442563213477766288689897838101890256691676201897020429252088606889572680027217493319855839859959879827151822193992963679540235376109553520788955416406020955956748505720430230839078949515040776450970737005789136342109872005149296027511991805617165859570225875022518854833194381484411045725034910447189082040083522740048240563897321879780360883136269024518244940366280735764288346081547649307008365360475756398809252180131468688966520420796485680852990552471028246311205990809847040005519884893977663804056996328215860861620842507132470317051385352707078155442681696734343463706945445653185837389901625592030629073277146168236804520571571719078528997596456999628431192514920972749957085505798838092769008333367862726544922986008864380131611786214384678269021884224150507892381734663921386566182254647219395345241505548014376593833117822827456649003740518288304510648740510486760217843731787478368555898040984331573647503779640891604431379510430870221508436391810836381113192777514031099489153185705538414201731003833249217085171441232489345466706257877579917785625844536101719203934660149622855800481436062824107066891060071563862984854845572370646377005324964806015654262223299600381384024511563543118238472495791926493270784505992734050815420747169899039314015942451610954625971661710912302572704032362451168529877379533784806589446396571839388476641549355329902391389364424281570931096254607056741513616240133662417384798890599873169783616674664223389098654979115345618023109260294299736929387163158065619312618950126869114561778496513960636663652573237417994917584429085218019269422670703083586590023440690771370925884818487456643124135903039929062114983872105574627177053437365468856734501904745927942398530517412620816712909957978795383480803873714147185474775736427329917759592269980921377189934496711964644522299004996295531794707141628071954860492394006113555803212857662801916184428811201355008026697804000845130056472431507207766782940017192570511150854311706919138246875813365005738876129181122308548425826733680839602680119521237075862218622975438857462753734891258301416763018774340802958512323351782009857043642204423583770772220537650064507961581915094635246048368270182028079978909970207217003465206483080269304037109202845653192927664839416865050163432471481773307768485116730112942263416449365411918101292845903302380150798024764543641561122214688313672541588031984358237035419766173740170958517267666487071786323754576632361507753746567909301941992311670819574732260814419545856268154613328049780792690472688192244063987837790727393736397688080679130318848561541416920887853010024415138441431938868523565821451052743769220547545626790237075521502019856509588349701685975978839242152997260818290664737321312135534914333815288798084501101040748252586079247511091403130730217489806994631451781582505718456190652111833502928960973029056738534199881697338401423499670585099235555642771873519471089027516651959330729469837524430196386000157067981190921538999837760555210810709324309500643898572556685926163054671658584606328006597883482637233149466810595566895960288894036776748420261473990755858920939034330129328354677385539087908285034148868264053727800494881581334154999366917036102526319402348218313665724555945632758182563693346586254873443268775866240968251429490259764005344460866639617011456319896828955770494597559646474422573067722021313127937560646462153139718696521195208187562665933154931347272251172474840594028334822970329042489650216314091258174554089189124634804709589647568385996980835970853866951688535974145555797750395148100185121337288840697966374535871956970196702249368643931074201250405370055563884064490880363393881859166686878872268602587694031245424693831458465897469285330254200493140649520829541153408803878017698297573021170412316138951102161874299156529336874171949476653176851528647470367291526798777761002453568749146483134833196960665440840487015883142123164067862535563461788259838613141615048279820537153724387623323740842470553475574092101596705919989180422615481888228225410124351487165836902370314123019463627726478904916389956213821229632878929071269654633661399980368004160444061925236272303815148874894090740079329108920162933570713404826708847718452049053688015545196518460925679199220374702255825228783399416813012821571094545255828413002188218831240916054012096909832181161121135845165864460083873701159346483952137542873648316281804992617434614371360844935292403721490965050618111074209298863246187180978292866092798831119492182977663114367598516138011426610525189906750236300912726706084450366496563230306843983981299832209858299187307241717021455280656674879294293120626597124140938963342186712835134307449947283208822214116430125637189716461393742916629251720294077205631195899511531211275623889187792343399217130608721208572283529095056323568293360842491387644940208380794469684368780546464233407056555927576296197049873419020632788157000688723764645334407135401961088196560339543871234029398741877027449422885961639129099233256412560763097913225623146149043406947038696869838569265783461383782097662366383277370323694215602796424845033082457299322852066003478895679377333370369092229766841674277593761629802483883577057621618537671248265818668769611140384683916782210765062209932510442961009326827044851883699726287143916539605089166359021996796310274460451364436372446257786418370201843869994378485029187047535827692393042929888624023963503479209134343817792993572087822097533974135200457139079216706655556919263012531720119628697310155749791328180475319517409955019862578702739543404507830387150280086936105685163420939219288430482122937569540629649093952389919251377887412385704500103588743204162391821664518819542024340895959644869687089371293108465679934182325913741281161213793301715356180563129813664246384836122583183781710737858905159261094852979071370218333634119667473222280585285787229908412701924126801372810550392971341507425699590857517129222350651157536120220430593292633172098065999924621072649383626842245756081595846170087200241242297663470453264378760165020285565864090916179277535237930502925563058624806986110587012003501857936019747752123319850291533303112815094205845809631895911867534180282722099254577219627272660777236998555625069721826371741127796207936410399997490145735486425904967656463445861464865520276596254292463430355003635083283730872008599749535530840894888551316099405202706832443665775927150265458868450067544944312857361502575460603981399731107611327096348563373002339196684202222640813166123632525019330956412624715612029129514951264485466781511877641987809330475269382149841031714539133501204505333526425405833547213091930549631371162745215001840032719465645238531171877886482542630692660813521286170234295721781082400915293330580438136027165376204902686094343518117124171447229411739630895870103244871072706713073255192302369979234078353617148956843873097345986788598308584508300806823288358564793398497224133133021152145224050512674556161766396130561584732822140052139814228288702238163696388633897419202103588617867054818982640501985683554930045756776526204688440437446850819780336538233126628094235951075950742917649082576899743230344169905189529491473701959856442617539504178010144107445981864861270419422344105691119566091890235269907683524759892444822964833051506821685989064692561010179335660112240236413139036929260384773093954987118472859728123627882512069995142044520206318971626547187950734825791700218733465164895666424938137249379690792376477996192434768902170878060274951792828899351546222793033807806867920915350780379861000401718179678209321559475206348141984349576473779427281306251817390608494845263670375537078439964728426921648308373319897034160937274584819519066740221892210734026341022935604366565688527965472140612146667853442654760393964618694746914025556262270979312614630243325295655798350465700617453605689735412411076597722832684842461262220922180730135064233484562883130293107123052171493490498785768418313324986322090023060996745362294811183280568959075353781092282917492533832192436768629398693012674457350206718717801319823963079424900573874347042460458715498641037528353040207999602052731012871679852362808980074364798885527757976070976153099081864153845379763563765705316471843100866764931561362811228263544958483558730767632676469442700390436276651143714852442750411205452239063646804776299928094487664722771055659382149506931429448239531924081255085300792917823759742345397436116024536229887507445050128175339589881721666569094038176525282498847580842312389830879694478125894304487569367228486220560743687377240682425981496025621657352866759277547480061839053893210933399077531189772805500587062328062449282666336013972568578852976660738183039208390332455379391568886127539231676291898773786933333842170019426116219676292788590968680696071675707856589893832921569659394296402363962691781658521492670461015165816490699948557090219148464775825966125406276188193225405095238974443370271538634588030144316066319194817168138914538777209701385633863697383302567696012063235060368967440922324716104460397791713167367688343758122344424478731821609130696877959284275202456624747792818138475905656111688747452889545901522831553760951339095796888125953845396521558436918434506684024508700963698697867226241385387625369012050619729683809403427923524775110845785884628128890179843239088687393747328183832690823153704930836791394306597273395789678580864980610874339072889945315169231195270316305860071548335519720484838145444349679827524310548884263309936889504986966721700324344840356275244612216575963092503665196125619259143212529033065472829196191083996705089752557244336467973477593716395769670920923597220073533948615669878956450670221127516346746229706178270001342087036446507123610140270478388875346790707729383903062647959783370808036514423934550821549338493162751957082329928328298901517296331789561227704106988937669492018467073912121526325339229124013665579922678072286572699227149322954035623355180510832931557658692408124547678303252896456542277372987650981081079239589847174150164315348924720122492534490192896065347681185530787485493203558875297883609602144217041026378839138813098077876375310443957909210650907611772991887287242243668974489696160014667370618385009091558569513050841854665265314560283006791174451258231022678121877265489920616856471845286549411717510636230492131454249094298047995734662654125677011815440617503273620904822903635135846773124337926838712699356882055449042757251413410131275754897110291814640179505773911033832848834133577085802925727757672077633748654711551099047101347909463440440133166489349701847354737859366850155659564562774419929383083087864416413908639169826278493835987553861151900269861577948438295187408074079119895605430971861990931967472481389550916426860694973504899875790550993530100082559564215153653296685188837032574882077092960214314960774560002019049110845093424147299425793276937560390459001493373024122163189236061637542559234262145359456302750204842066464143050355943045947902421812642473182774509317886076506332267545418133931111373100074387818672022758455682049756104825621366692436397535159830951646629640050680470885791960426078714867011948465438415427803093310635899345023765156671826292525406603204835887173008804170318415870513237086610032543139964043127133209378814455126568418836199216260925775284781948458534801219986308426235389370530550156946806531988976480615251695743045665668151616456150077928030296176075961852186227824054669781304117769727606382495086397012587527416807429882981051242655553938704967442314950998846649198667814127116742112412220396311766461784586685073990360293361564245646446843813095922139299613220379330609179647497843585841677300159932858083059768352696162531902663456815447350281803571571527822563009125544850870728343964180567268014782396792125211304069266029246232309144909290835660654950572943302310433587288618850060917086555692253915116726353664776613464019028299517501906596190509841772214319206107028665106833968732322688120355640618186565919499807401775218192193641130985152352251936179078041067455406691910257517747553466526071412837936964132703392333904286249525303196806065735283301752768488799275860317097184331985908400551899297985579800484661408669434243959978750792439632695462904471351580098689230430751922548444332426080283144456129666545831426633491345544376128367814009526698522534717145910570287295300744341809735149124540782665404976276573872951463658642606177673965222512801113003286054528133761654477776292939322754980285019822275041822428151832560368771109639982439401232105656779292086526997399369031335886362318852903517792087168092838451769924225418678620428196775852678920734863451305297157369979637495820314569897975901354025986585459829843046739207958070983281128111754360482330732796544459936500672480830763853410393200884525859095078613713937544743863485599837205718494549479856979895521319958828395741715078421818829102779595032236070638072286019379258063891208802699074338101554729437155076044996243051538460623354256262235117496646787012659252480989339544994605799469351221626451975275864340987556360221651292660326156112986962357534405377670775084792034296133940906692639429702689341141737729038700933953544819699068509036617021671982557107236646576096345660371348030453544950593999188096722075965461794160378610283764980558368872134660015253286472702169977247458478889410835021444124801114645969863953291693829394688073931553754781967023065486109444297242407348044192817703279141195850604501308198742863369368557525411610371638176032591341480983490002930674386261167289338335310566458673282562622013437476468898033542298378433767460342817787639980242529707352165248551657450530474901148555687785131380245710567970082938355432555755237061547511126487855561374749718740807976866287514086032672394925310593658012012983959787645948959437691878266051478286711645835646517806614816553371660902199317607567324771967923797421461208842611489750740904080682888938189094369244757792600603587115856309670322266718400034272854231043239193989450279617605327803430068620391934395178748917702673556586843196289491801861105395764429562996476392149652358397277373967389103136850161918278021040177409969167237899918653248561104785310313536098063723598626615268125167570492184653482589100741019918593946037772128262678088501916542298762341459464711740507058168491012225620262922952284177434395125235613033602363467125809605760895542320992385001805576963293470462720954416648714989414081423247338737835389682219674878757364988070656831969319000844787809287484283121319113270143615124845467533341089844358885555698432979653566995523854996218763086527221891999997592448989827163279071987655616743895228230079484245873672511770836979774433164192158852788871222491442235863516936832316568817342417533032331301994405615022103405420434002053565550728817293725927359026888922670068909790399281226225971204466736975569889230684605826888795100287073735946678581254768209914014115708442620889219668888931560177971037813030772811940943706732598100784401026650864781981633557105211370117254524658303943569469967570235449201344590908506917330118371710291393183388698832734218230977750349237163556603291202786187409046006907161847871498054610720815016326519515989047283243148918359386127797027201844715439178291116352499163594693253336050183954506756066860067930550782227227768577413929540005700054086866480507379380604833587521807320906310063893731182272403158131867788552720427790390410821586744059793541022594244889731757462492868712756593222855216385302245622859733480618368410306937043651757984309213203582139117417498643644805799840044139801541927746853938729150608179175043284886148825482842029655900790759427883375264906839730105261287521348158457660448827901610071892173790796402225118436480918117040044258535550532659645366791272449426980161876831987752452690049987715950837460194707542154829041340013087867575315172621978677663282298241392510280877980289027606119327430934339974410669849075954524716344640041928066591931195468699036072545960730420464839869704010005974672906253697655144709819563939243128533079396305742939743051817313990001348985214810840686368842647962355482859008094666857682069610502821460757258971508740572013478810672826239719667316897662389071593671957360526948872394276957198788512782477052966526180785224189663476965395234474499359450481909230866331574680308405864570599176063893018610579889720396257746198297886209069111748901942793801880265192978252509065747624819654448778006371777967831020360915130852220395625075924958437499419703721478792496385029221537121480603593412972474890671729769489583855590786296489931588513285620000394539351191375962793713864545318932611437085901731558681226673265479257406739398175155408488732843913111244015925417556576017913381699278334324688742425869067196363927128802948041629375617438077252719472006486724463014692912472927169069858283719911022815576780305366697328094792822450006262850489886910642892163528772553012027154696279149729356126999313775198384234541277679891385757182457826256462747047728350385603158733537718993301145653456647499768496557435778329726425256509585444778991330055072210851816489028531812761878531895669763237529754094578685023230028797560222028464888675902696364111049444175163213372098701204670217311739745730738973346464890889409493782630796180358359818975297362923398303496731927884775064654794420140562943331871149148682297349213359490965653676029932316763709216554777540806311675583851989668410057643168689801026392870595578190209353463745434485527749784553825224990343047266447250312275030686276806353289081466872519266418062174267329845832696019727686756751047333364151566686385591162461738548635425118953014848696194530622784415856595014717604668207240890134489035504688457674366847796422473506850365983218859188650481684555741558498799656529283267461715287981931813274752117697503455862382593698186686890169277695965550106714425103783639275582162877459514705179337446750129415274071762868270014951219726510241176149450494836649412968367979596052534159340539172570973061753327829171708304642999520052201949011867177586684089512437069848906999824815325850419592797875254330389013650910941167938302398500761724528988456044768103422266148525362103332315194547060782200123408088607969222493870154044302218549516378117884646800684891499668397900299281073411107221764911874402769638272283724188328573446517369946517095629359111002090678322643286399132473275816678959191189748447727615256632117836840785153923254986422500345740492864827205285932420818490269127976112932697288426673402293934918026012224451801624827899546409276506240289541676089040705464568817805009298791707145858505142326351538050518470267713601182086542512939185039557530498337570786707190586609088833538615063030074422491353027820980956415885854948752153539282532801864629635290165829495591362971124388596147594257818699439199164573257618667177907286584868662777470212425503114178025799567279897782047355504705406736366998697425607313731742331360546973899332794384401936363814043654265763295327678236255094150380190221532255694025196899461092006459776204999974373257912262209975946202457370421369080316356159183564327299592923108690894612042903868615737328046504308639694262927515698580204565553420038383218654424786482937872466103787473216474709367379029290471899109134661592607280649068016602049529386542285217083828048259350973526945479776882836368076153899534241919954705190260251744389539085661297578642362345979486904862646160298970554883365690163110778253491904370616822799049746672591394282975170181382968450334840729519622329332282096749544782397470392016691249755748530397063487787470489159823850309059420483623800916962311068952997901157664145340531020486101873733901143888552214696015303087910553812516957642300881420539607700320877736351415614978520424386110479001433618614249114577815648623570148573042916910238411887481141616433707684376025066199932385381502893815695567277342985679486273510861704258400863984013608998875763970813806109738173322045483103892081873583734031513339214725020793634077496695743003048969726543335812768985068306942101983966244700010224214707704851168707017388237875937239738047914527101218992107652070947919439613148086461695610357624912966755068722951278923135493838037547426257203484376225213164247255022661380157013455100196572351956596722881856741974314089597373119014899141639494433505271268195342542117080010037252586158500366429832567159693894150817131827776855411691789082872443386608980653620477458850599840710590507416641385319137114394574768997152843787965745904602937200353320613809583010735478866747796495081473436278971683964070871771518405499215633524327138282152419742372017476000763671819781151799421616960238151024086406796604105522374342442314787526816279619902366955115428014457853858252332027536819841370786689718138129338235672934752357671834626756845419783869500118027903331838532948927162782219939488534655281146921513780211084080695868781276453614976956359233703570121231017801500438666961239643732316564553813687294577401368650482355797614448840387906111613269238956537123903567742275691944033711740657491869276182374847359487538759985932044618427779377218074225300756540576191688839206764917992221608393565447536372737887715800396770315068567107194123405299673110892681321056165652986603479750807880624414287329909976745460675943876694114891917936521143148191030545361002733690498425312158278859750061650853823069332417318542479850764756550040084342851672591268487300774016887205894916631904267010199613677234553105548491109304646353561066279395473855793673698843444849747461294563209227637990144627568228067887449389957467099052700953313033696430216180122480280727746619131587647620317599926368574262175001493967698343720240046378188979314411182571957317666164056350154081945399980190837739917759356711297361224610381149653991301593080280469640264308200248283711584819965386991203670788376232693128793191336999760822488032166298350934013523684036717061533010958204017304340840295602289289823805598423815056129668933846822483396055169092670646855389047187426940064861100115516727732485868932154335591172469453526655801811036417849074433364043546563201286348268248797741520118228284073586413279257789339012516669924878040852482929367079877000553550442965060380624433391975610741745481239745807733240448184334545117735672080030214612438794854926439903857746551302025819766415590754169122239830052471682229055291571201222123505637582162199277427014973134008688377943824545825736191039532927880819496189053359497791428340419211262482229677421958422491008641981377785556028497364158727423885341904650156810352237760329958271910158681647346605479687031999709780014392186243541335260946574847272221809676927570293399521479796455773409833555302801726602269402257926073285608262882522668456886496344617061516460147415120232962415661302367168302097513572576246878980737839734275198960703000299923535897266155940374883567067500963316415673035362566094898913658011308636735577239757775610966719972918053645225966657067682786509223115148878740055799983409895053890435635628033394770557775372300564357331925784260361841118044456674795736054436881047748260195297308258176164049935257831952084401285976454788152530934672133837954439966204089655303474703083533547826526083189257032464764443872030179105082708031250765286413280063200000166522740082899565276797918012402285068917117458279719360504374956304444096869327368968776969219530487655566127707529362047068393594612105122703489846744108031695532571167301308571768013889463786063349260177486800475490143002895986630755835720012473789840933503921194936002505250817465873687202095041987295085389117384689095419170659088050626912176240119261953049023913219121567738515366649589247199566905897725490788745438292551554459515753899294343631460829278514098342826043203478276449956810523074417683333779825761944329683078709621148267619301945472342362021027819006723797119071900782810097835693940358582837399313772697323317228106975882519820774459755493768448433714357539678081040361268298157359403734510772088635633697375862928822464004396732023318721908427441979971097290013973241238250230840879727041723535074155462084738508730403807599605274416469467744851629847544884851538617320605900138478698401771163458987511720824538422894600251209989471484247537798677019638658215921417149263168453493232252808459803130493913330640086793210439781562813469262035516622541425848320870614619384180715355492526558920634882993777646808949012209320378881344867018405065302673981954771631263914196181156004651712752985872691345815493391613931467818332690806242310946771506518582805685050150090380059718903364170037827913985880916388223491703383857376069070140145983134554677355196165261527142283281154598403492940230919948424566447455522006189666406203874666566088219375178342133393220216326416308872251534018501009274316650702498014577126087092478026502800228810443516006074049747509486453578402187458569536133481158575231003492949446254308816902918015076164767727294024987854797080042163520230850792694016640125582114121299311464151884825334184722309880126965414810634803520501504000875201794324793500417441040806388757901091238097390402209756017548183756504122169342952516637604749559932808791983725826638283733597440702652580465095545990681532737300844760095099530364298770901133679626381059669279087606939650867965867196533937927771461300497666902926536342638532703203505078351307986780302808040271081398230528991625988676657596894070594165798515462593968666242669359063976218697182076257563329521155395344867460280149665309189365304778648787690876009942045430972020732151430421150550868773904644692210718392357348835760365502486606918368566455888218078536978709410206565739922688192457342996781257628039704026359879434096836355012681695985446375428302157626462176285535932030516947230821945045438130733694051186864377004480708682193819711780723352347103335559977267324689529860599833195843096461469412474122131407402683177151600020014329500733497815479201290120741876797160566597035784946288500958138338399192678763769153458555938164315872728592269684231338740559055470724732164214081214179989340120978272124766911605584452058880695851510999235885621602604257980546752198532629821562307238894566394015069401008692001214405614901541539292016701046883268320819058616349634068443951354858344851155236812307896563553516788385568305861217150459531055290315214232968414224173231872790779424017794497686346014209814932747602468167176037308877254937840783177786000679561500478255388841259361865345460954161606382800169663115397649132267289252411878336909356221024560843606465369603703742086762723538897734802470889790110269274285775402130247718815418314738179460876395105573933618169772700573167976502821474525940966206569890713767123656337748088400642383217293561832059821000172344367938914465810002021517444470829742397077837660571636987609203914865987898350356521925179694395380765419449866079252937578576876076408971866627648820794680882784550301526708698294005542949698792807113874550458563066207333977085339739872761766818734297850576938931533805138785257203947794066155214273385148700252330090333687779563623755303481835030322895100680294498892741311508875149752200284884855716966691443650828360658037948666436503537868876024284655745494438069888435010663167211986749255352629994903392630431679349270041878340133159127298893872038806696214450081412332509840633477064455356622276647259721348475615707073453849826032516338512556430613370072512986530573017924821051563148995922936919752027153313849917910077798054575804757964890951485332132499794195789680383993543473631572468257055608926826835914618517619479029228313543519441835181255122626741064355500282456090658061232879087323093943682185601119785940396646719624216491035178336676309138885641845094398212811387149589862974326316634415280932614539408419245695911547492535760006191738767458887731931147018174833968482376574296414749004555605240504442196804878513976700200265427867736520028912321664447958074182379403371144859783074730517148163452371609213630101586558238160942237909423811310894535599126928268139100321144784857283800989227813826297172333799223779827391705925622215994213233323546199923001753996201000054891037994934479309911407788707073232122767244990014288647607317275347807624927644503775160251902701657449257446295884908325948559109665984350409063151955409262243770893443043504184710807855914275484759594208109085009969530096456084208260689117958063991971306976654353780669188778255952268444982988798154073231708977086051756414757854385461581440686560238414472918881341492939076453850606919691000651517237226490127055889548346621576776926514608214853552370053923933993483140926861439561923108011237133150524021366665997285493260015099086733122119953059149751958816755420051605913326231747546065366676133673002594604879933924803713675045447542092667747823804845649934736219083763755245127026741881215423035541961569319809620361408946120162376674554599969542829297704083145708506913055545760945268388076497475378187816947816306745318877119117013733534407763467773005422236206069385160258937759330716974593911442719246176361772510822963218129282873676324701852845162088544619385544865880958553849803095842238213349533479458047034727851526616951358365554228921546061995799095307594966757465936445373754728651336901811038016332859383133641754048218988810091305644123000728047058378212909386842811848558249637501167354184220297507630796258242510479738674160336686176535897790609643164196128591044374062316536482717612489834515208786625327433774055735811066581799882909101709697433478180895831429083976993443016283893353431160433818167757906336011593459900724521119384813689232876652585796063367690788353561553582203767022916741599604524960610181982825184558044288403931656384115373585852432514009964541615468659056357867146934313088715817944541009516636952068963856510552084049360427715754236753836768347555891347379476694791949802751107445188049906777782872454589770301965410447932496502732233735805234285507623320967409227354291777518381247255400048789499056026691554108345666735952628605437252124215839908459427930268155854524452325280643723607881933603563749546551045736039410921748440773026722703529111516954928972989023025912006817074805501886336874007333193325250171804849114968650342867518997066385206045456621667291479239229558128110633999328453887329396741800215975725056680521708295927904672253036642019570362561672761884838329993813641916018488876031747354310218968130820536121372417637144219666785645899209372722300800804015364183579749834882540175197265061559886131618588637222519516305560763902452318046243363074439440960158425704669191066223147848684025953485725498581222006073979306511234045967276586841035015328001239636165136073006375345049306329930424477069188518624700684382136773690197791058966918243429010384941387120935678774488663598795952899474650724796447803469433711978465453832130972108776674880777106486183321677790742266715187708574126170830220663451900219763059800305135766869650177367418705393436527096531288298005948739863813398699287906792234112482128212454657613765972370760991996270722420393671299888318078409344844193363476015850753403654879990287444474234457621743662437399219484960399220589617551881435737011127391486985351503665124619571164214887516249379058294945852735046468129888831405126947281542649040717982910401321704154965984122481467576560231948300576263038681372987721199313999366863460171161501524610978941612213715694677540377009477264349116752283278086116332071771470309041067139323220616065723799641202415410238708627232419776975854306347402290559883124520679242143372019187434018696324676236808566176674968372519862991712263399583959627452140125383729281636637515015343167153548545083369787952336990551693373789410911929975262627892867755076124165982646723803381239097021616921127842951056136568425613104558669291252076181371431220703316465281529073863458417432291632677662161523310875818186041150429328378314747420458014422284183458146038968136352933078678269182926095062306312522403492613859633973933365029532687008173644207885647531586956637145919530002359817296192439187739284404640814508169164052707739945955262093187679868613465835585420394222316821008482354958939773197050684293776024011055057645269419345471621494524342053235344046836979635717482078520943602560836990924629067330279444261782140092895458156067234648950601043402803110166134598832581965907760955823064456629418930175222130088656202106245604994070424807196158291726268719031699784451250115378059687340164920483901797129217023420099850740945173461502345032700823109939801313890629903449664818243834721821821718513844525446755241496779267532915334009055807545080504349888806992708569492089853094029231165332963651455640887739041979411407348499850763620016365393118064387360560568635780786059760091387897062505361157668623379395253729679377728414048534811246166562891225848054490660963317713454368658529509223901536473843792598099105264853836264470390051605306490718276432583122735355975809213372496439132372834578165537606892057809544312119251381072672014239388885792429894222521844513943705351359821716135099883636662309803291853478975659930185897862401523506602440491896107241522741416682016471725859802641439626130274938994174957154985737215675278503669792314626393786008708841420621446131279591188668304227972268178370623956848175361500584333453875211329267290770840106259333114302989273330894857526306763974513618397760851203313860862450754023864324715181608343138335127660342619298337695529650063159452281233165533653439653617144311848549318475480768875829849189972132849120716094125633323126556504712392042805144567178873657239441794911754530904452445701059297283857512900277262869618096154257176130638965774661205609380233475455552232531531425493850296307385224035146076553332972365384596955733905422305227589178029915026439113685960178091280052222411775814107309072107638414264655472605006441103917431634372155361308483850472875674205910991256880025530094906241092521909263893907077493085999922089983045930923160376183083616123405246730786462066245366450249640749295944503001494297615459063733176304069815274367838850683626692837544574658026121140869086268841900695186557261568030107241978226837767316461987252131801523805364675699495887163653987252542535710346730055959639461857483851685699061454609042593560357451464339047234047396815514742894858015865199526429427398121588970597687070978622680673264871794260667968200360227252408951811291260446474732385507690082994738042740043452035754136769625597389427469228047242468655470667900080661389974685209234131949979648458948023383084233490046267432247215025023172363777539793818636179350398922187325039204694945234971776078214162330722998709972282072751521370884800599220572885453403321113910575909718919568911039117192273718270367192551638263548660171368571740490503749253584793283545496758426693120651400947684856592596593455512057885572226274177081276728415754330381271806756435427509788172467998615936346348783949059183775628546581440825515981625317477911435828940648939111228909503576777788533091692554661354056004373289393912427701702136227513316858213372319147072847226561366997178490833605573860690294003529532382370673607929831735966095636984744231891594599451759132405682302989396168668510098667051266854857056947776692063062415353270775167654939823164083945720347782103644225646558382475577004394629240136868717647207900339311141703633257767116509806977903644072681949286274722845987458512745281994981649097049266827262166652427058286390987912436370299422918322273556917160398230323439672538653662019407442467873579903391671446155293384911553756086570338436331456327524798819379191142308942786535033702509460264910887182073725472207326718588570516057198652018554919351845053309350137140155746196790501547366055231010144478569539168135257437082340531737463836467102518954802262416527373953600672888109629198938578879543281609496974006838910199198080702524001159156538224619519403407369499309938929898079870658959830835638577165687571802567553373457326945175665695609939551666531819229958027630963010509714473524942542432558428846943044814947282052450694157470640586764451133005007612924136385970781312501614085648546960774237070596395770494070636391183491777925306791697871776904775576444603427609206398871576564816181382410964053765374017616326111193335654298279100957034458276695974867327104191362254736349409848859601159701894590143343775250742905462655767025078516733223794607310936942326131358276689356724181283469789112766061294776301985383298683119278939160504456315281144469738320653762804009784059431406124967997348646315763431162600168413683458600008577596072655788376928593506960842090728656016307061032556274742116432997191440630955548127501852080092807463980426451173811784176524127960791503289130742266226731227453087712540626919964993566172361019045028284800011265620166407270602717908874473905521435318012623688639264485117801278441604535927208420139576302196998989962922358186822541860938718194376186899556809811270330971727962797245550293061170141077847338702185416339003354390665867472038959059739523182843581631386331850124844149351204973143854763071803095206701184428967976283158251021026946746098704568695666956388650769957711649322192298293347575751254164180066780379786775197379630374772224681226284793747913761226252288657739511480238870902397814803497955500537147229825511638436760397352260615862970104258152661036340551181703650025920449572713335140713451389672945075019387534512614367737075718159852510188412151555201044070053505869431674183588142517459829297299631580361638822129698686430005455200026555878096051105784358784220516944425795370507482337823190044135556240738418003292689911730487014202965207404934443612983141412332091724743238379378142311182935624011681385617646017259882814643499725033122830699153317910404365978452935832798809483308777667404583514384048780630402596555359717919318798412447017388215351293335970693100106111328425345007314635507266853963022696444245250912864136873184544103433383582631880265676414561911702797362988745867697114970598174944523243227201277092400832351455582583627417339988834108387150692206652873834371148995934795333937985892792917968602907375420804800916357494343283573800684104038888149068952518435824810173245041942023478366672247323482348425154866862329632900926809444424040939486429348387247999325494201095007325763726003768365206936236496699036171097884080210150470024924147464845130501158334968875851612940408764073254505268298345126735381701326420569350893290253394692732096029557914741983414320664006250046795164972344122837794833022522228817578409921110796921863595320365706540001922968035085780782713589001027728267053831903578880893588439074497509153869394869518746002581070368494601881244323146886090039214024645000155326089517587342635113944424482107397952029657269908919206352195163851427420561713427113188649262572947425535998163168234917566366416076630196533366517359103186275695672271796532448426954138896952918827624681061190597711263101681518780199043200717323710731409849006272890895941605204427270217625446599745964860108605430538231230176032207710750972949654457230704041349147991665739978688994414960783669369591492232461077020501640732912465120733675200765727879583369713006333342777300106311681308119486768834818953271950947961741097543939865026467903252690574220794847073299705799780623336652690266647221747541091556293687357782944324705207487649867191052769502562113922829718791932875858745196205990976432661166100758471595738466459139003564580211856946418090344064972028559666973542036504228019707414383713912197407333433456319504816624642058831368440835800565173940461439369350157846638287354872617137760536778727270237090196487883506194411759354391483511068561757500326385625223655096426345775508807352499915964376116532383995771862690765629747593214905058184142306821091922152380827385000378357325846171623089445184810765909574370442453426047944940229250524785204093275251398951800436381051384510188725171022193374127745848768772566826270264188573761618507599151122890198062842703483066622610581992389709022659874876567508446867091272193525180120228030206281723252733399262841353907258837421654084386911730570638692060821595693252265663048283961506976546089077819693474049905157812509466860101104653347945141433073365401395269148158232741534042953988349224547079205184533167133029158804486832528147181688877468937545409802242433717891550171677852440444619555595941580567016183737991923253129567634427279347267029774765858266884669806902567437077936306439271467860512413259127847819689902673199282897793577962118079436056211522608962796871362633655117258478965762031943849651943525676945003891193781509337091591757730634764193827367380367353337413495350652882687848704814474776399005923070468115628216471707708782624142067987889472456902650136898440398162681131030566795094734638978883178341864001606637901915540717805293313793536210063508946707412611454871020597666677950680312472018866868223128471018107802409200313769467018213469962478974307882542284410257754755487625077858123283468966717031546663379725280363068602016155568589002673805166556966296665855885176518587421437222509402699148426911952015607083115665227983023256431294621611337326216095461118175525568405340758988198089881170827266063776822390474485493191610204058714733332138634275846311042366500149819089209278552442773524111561688550934994295843993901763642037804330298006590295652416972182050452059416491912704734919715209660088209401636084311222788726913472652734341675916368137272980168475032294247924856604644839799389098273938722890846209241257151536634366858279805448053051745902549904557754646216555177560787163280758528051876773131999093858495246778030742959093204973776842970703768748557774541323335649250672514510067383023366595921592795711008506224346110699906462636349742047300449367801298256371919564501825567914572560013757785023123171579605577642414566791789697163683207112332944121958417241812914150843379376155484486872282779190707163982167834036180791586249129018062921706278253003582771832238487416345931346776879374981262042421099895442370375505293304530520465159533023732138059450688817879408868902357239739429999111456259455309434883199532268897284759178976275151788697687856350482235162684161402523120650951668642578930379657851541300516995500787524030820900308486914046857226802948779778754426150981943978157771021933544856081680169860910454484316120908120369143318898013331780439423733943516538293036109218026323842812053338238068581411321408749563180288792274379081786109686897135740383344828092487068291740438736203592870126992026615430360023586374885792658040026189602661109886795314709276552741889696070454515112361718418143977906434913191581861426681274966179472168536424305022031482214884419041948352365013423643296556723357253882400054007210378340802905187170346147557855832728696026535085363079004016005520629059069561659211099752090613481742065243183790136153508994638625222224827365373403803615609745418646809085896749003104177453796549282622762458407473188773047900890244218598779910466620033454806449029961071951188278630649240682724143724952790979906801544414886408096739556500923341787526504653688847558411288593145441822347496914011790262330211840039041335970625862226590260892692343654052801984317621692336060489502693252829503661708629049291930850535361341720498578022518742371694828864909084011972620100327170672278318168067193097941067150474544278033892935111938930891527912135199874072798772266916687083341248682185726006016952954170027961109271124511520490195835192933822771912353981917410829649135163035772617691938115882339799663972653471110522777452989048933508223360950316710248016907883403623852581161599914804355123335425444677724488309457349536207543319098571492084768675102802486735627787480719132396521184654532482390339335258915060703009259179081722717299575705847151044151680626388449586798355927020411603774700073423805194546333960668583924232002025504237987636414546822396514221754016132472933285361118909924335650247087655357656093956444742001604094473728020722296063045645993959132218681469915025430036468592612937699053257842530492308349047474575125056163161038420160768167721391932525844737129024654668517861414308335566650464847798635227641170794971076848495514076613338571937030167102361786830830427697431874487463226454486933108916661328078795097361897204934566836451057464392464478215834887438161612275733935114102073023623441980111054954335674049411009500067886561902527407144806210611296731581057720974615359262863445107839345955349809622638169679865731984675762402480645333974388378111413975957333649356660422615078713671774064510602849676690658057219427974442910101627740453455543689319916224288082355562266872108712335300853344270242059213309783507816298124271062548989250734889988380541316355349790910730234884137130411178574789043899706000339104257033875696993078263166371579674498821925451190752349216452443076735781937956698313789003536642962900289747356497064314995545121180544449213699567079212660182141687451885592887567242813448377380459982382732470802602234836561398243222871670113301905769677037925772174096998966714686315023234733383003258522732595542824020727886996620081784932430785330995036217512584656467854371617832793396816505192693765610507268317335004477114689195316478464691074655082644534517176419732674766718642074888970547548059691332171510164550572539642674632621563913960717441774543553740459410311269621805138062094807686838754175652916477602990829729968649126047068713704661638043736921790785820612344145247787619579350315584737105470555643454613587652422203918187018336445956341325545119241594795214973428461953573157053567877328302347622809952984103004592861217658548485885916449972981039800431681893660470909690478411765922152732157514271993786314480367552832436528381725420048386811062804806716632193665204681602187513164680826911907520356613698032301550645913588398587105221281935437277133814032879320399651549854036843967472177086020912049474082106774909397324159874843270306354718615465441964361872530929001340616994042560072865941225030692638534456666148407647570507512385428958381744991181191224709984523057683763652241897966574050203258470292235090950640927135105951978863813891616871486373375849263912964720178835517848517106925293626288411474081403850377112135289845232321906868523955302578089862613644117574341252570898062286263688001969493186315664145720119132538077416285419368325353898995360298293195093058900765281224753210945826065529039104043599431865961513778335877247359003850504166859073106856929884659372046277914758308894139583169989539426611078913923597736247505328806268714761493291720482974334430116558556655695610722581469422859513622312944526083830848485478229166344997640006836306635336658553254970762981870619525056242261525721654357088076258315968536576480997167633006736712368812234263675774755190533186731530925472565928486262858188441154160579520201884867685122828591092741118780054083502778314210335033211955326221597469557695691915702513575509864879637954502440023316855181351715236376575653378835373912957469777020066317773750233303624617427390384970716584851309178378435656027985848496836573485034559439204773321875264959458366642602798239478809866588215501268305417159589653022896986577112363698421457248079993237015302395395947335776230548308570659899680854130654075678433503556559977557675379515584353109011739898734640055194907181242335653346765841526161299167254371969585038659534176000927380365596754859261703971850361613140771472542551936439955740515932853014583429447985667857464587537392063710013846521330546698177473960378788558123269323623035541630952077368638921720834377293822558503926361922494975487169632415338943883528382901070099636334215073682987510395634144570722081007875157682647942885971480056769730156589670800912678855955125269603865837501171910608317978387757451216774123820675648278639226744781164456042725531122966429498343255566039808628833345982647374117960697907095790398572707502891121338622344121569611575920361991434195094162031672865093723526583526591137185333349233180765589526251491580835038160090022737243801486289726525430704353374685914943707052832580073138372453233771610221022892199694727921272535466772780568288878127989637954105358333665336449336743769932446879791438063258697771088419080282023076945855396511857900259853907251122888032763035454957933538969909601544817779036355591476825690859358270129717717502460874377805795404518799142283094484628438855520061636428231459271049577588300506073866818437855547520775137876309349424725861635937716137785705800721017806284576937832415780930214217315536763066487325276524496166317861863064563973632589992562860463051198164856596955812089226525711861394826699588836416213648396118027956777748547367569507750820317478652470295843963518370568057120934893557590616501600469743547942921877437162710802287606669560400303432967429437944255324275990926298255123046520871329676771805120604724881571671378818429796441902687859973422650333395865739092554406650796091549701455714950022865332345093982695045983349545802542492664171724191725291983891539325999242604651011652422648153010188460067340285689469392466227072088943829180719659249558715570926701934391199786453668106498818211987501874783046874336843678914200743014002136888223249570284781888918421067514334421770895767036575213055821380037478030642356165556805387800860415345709548759460022300688793893180204391749188966128754232229266651515657935053547026891305880365105448805201695892199664634071241052347207686405801429482162345110711548241776153028558492811086688307159631234540003227882580113361172496744148707695682894453789800664378390579527697204882875455741042720879185422975306475599330379076000116232838554227923853730823277722721434128151737816265260750698610724331207744521012915875990428233096806727265835986028850693307735025499143661805733871035959239637251781188477624722856195657124362504696439284978277628714051805074741473458759159085147399096364380175645260656817263274801150291238514444891800021037018859343745043431062500998441015097824189097620418951803017059890655667828978472950229132659089237670825668170225637778881143369847073412076252582023204945044835664962152788152032821763320231171137069622763355977981891140037960584453912636328693092201065082701288719440482884598724578830668009819214079976533232422929761819918649579503967955385991865841058607555057143529935472642867455031883795781660505519711143618615086802438556314149043739292335809854979880101627153449884969390169192373858520999838958605431985398178656455209428364087642456845797156476703266061509112767570494666389345946771046476482317112450474824818476847462376555434026012308459554373579752858769380743297342227193387199545836078126286983336098915849324593795959577099713906803748897343238792399445535552484929552487104420049748632291540419209626857105726576056782998165287809967912398592118397238661474997352726537869266940251683651213653516017690226618871913927013643732911295545749103300160084682526970745969648370179236427237585473293819408038415234905191805070425481638318356681438898778504455128728527154362043664870680659960382049301664826636033961118030325923140168940429492271746343395411377577019067428715269964077047436315852001251029204101943244874095856793218792051402515330404668330033493533565455838333879258655140988499748474472383748909481017516818453159893703809600721329874157608877517467707291773457572688972023647154270663639083952083127820065324965019209942718019112455478292234183955243090753915033375307897288696931793160326892132534592967021232784301825001806091748716307112764589345193258820906183399234938736143133159445106485511151067594244594974676971473055038232107671284930392838380383316783294120751327794425759977410122277585008854023476145138480562325360465936418073609041825987673730827334732374263287884759630971533838718016578465390133674760170125495575852006157581689808099408709269001553041253942524691736968525092663158318476432335963474377148184256787222325847889451528479617222131665838225206873703782097110358590981990057653885020636893641152213832141551557270309032832768869126931628270648210253234839849488140505979665538611051769834635291217781687678665575529049456496265188831579062724203656224337279862544923141088618159338654276865106156244055929296100724839844323980809474866398720544112457210736572692950328374587303539039668320175842778699667703739025459478383495701377696899309742753614767978841308893985327199461699585114389447373153615917198644306509066847838757442260164623429871278631219172079813012998548611488484204325179899375375721766128153345396220567898834321954685481355044936319353966134818212958344243701570562714058509841661908047044921189943857736086370939302016509421506425621110888540876473816803769246381218303539571537588604515285728011279276552477433891268404063635703264817411616271423911821000726431170899100141596107678096110557440095063862591524835315788605669661390936755833204672502957795273743135467194778806963002506676444780103834686992436464212773014837632541434158876328694012710046051451349337099590627011015027314229507331673635793904421578766114198204526929096887657785723302271754677828200102063081396419478463288582805330670447368282238288052837196037039016969666918601453149834361152871880592974637714982808250519289982776544252395588818147929492795207601906564602094826916708623728629773795185694832334293076893419250869518932499617128164696049755219023916626016187063292863488597297885407398292202645351602908045009921901421552484506188207964948229021148671568453893676821078052997159521434839521895374120334198121093910609014105953037961499644699815100331229443239675917910734826184046236112218063130978173748211065262227156763103601178318742136045975346959737125479286317293578474686664094090570537121511684428161431968272728592814000105773386331330328230029001199248111130571919156343343490254911366361941045173711216844882822320633280350331331482873766196735896429566963147385733423314975290596046057999905792121808975185572559090494603692688579545657674861268076491517802723510054040027191941274852473055632637782676152642360141559148697400725362401527592668758365810582235148529355764616585998037743052106807729900748210663646589445120289370415686784100383051143837629203414036184278771978079795829472347719897605192217085072478062040750367850940987877049234444823583632509446032585098112273592928327747378534252607457057705321168665332390813672662162784800509590165075484855638149274634621028519031282844027663473074570344184052235666263668846607133690632283018366971050415641772785458231305381962416058277224693782018626804729618946299400191937410330639996343693983761544656442744739699930064652357820321453662647269710684642817997290636369087725859266820062386904017490883152762264493279801017635020740006714166575626911358841432840941168311656176926563107477553997011998014077658184838649269420940603293090433550650889489790767355123084362643135798548140017931960111998051999521079673595559751474642975226186063935074173030424574808730597792282417303100876696914125288497657008900296189470050709409570834052522780372481541208831398030781095174409419166740399647150126166138940226530703475953901707172460943749288340790246014643574690588670555268941576747908398920423785379231034060688958262614506428769777826350200978385102134740301801597480721290137525219429728161939664950380393852078007688899443530467633842336650912351731901083416225374735881627804471826207759259509840601896336423483604951228618753714939838519340256238536687111289450797307219308376479352635688795653353997345499448403258764017129616396576461231269642739668385205128781813848781503375864103010360827621987053418958903477185668305547104682548030662372660458852789761515584948505258138835454897838479201454245480383782088216317012044564698342645990050384735875710315206042182774803706245158792061895145595132802575711591316173418361237870573823382051487040645415459195129227466817232280339699181267550807178232758124840166383985312157814129675523788514021679985177086944201520503240416475944606606456556447617966817181633210559786431339943386588672851142743035565997816692335807283522140998675003701609144697501095873264855546776236396850035296172433003339051781299886002089320392020626162505861162005748649909086921862283139288093544840362873929973787697898533559870448337212081543361753105531321511507615035733479732758304989841267002608017846308263450437478090636534195874041584256684202184301922177477837681763548860564339718373930176096740304826801635906267101572348902590761253558838739688396628496279792684696197470121107842980908747003356504426534896555284672901015682877055520508372680065131182099985475777346883851138043753446185756483720863220287428822267795834966335162782496963520222488698309011011784043845034359453641232504177124672956748235838663923985403177401343894013411199722339045914112442312958046584101851095888896921433589878794249293892260621690599549470154135553709875962404508449742666637798392659953127485274234151336864055441603913231486383071099095270883016557313602559582908857511567008029362631504690056892588424008960545579309923920766662870645276506003033600601329538143516379302203721963852350055030294147863921146846794984440537755846857568476255978443294017022190208975810208495924578324195759565457475105963830650013955348008226414392579822876217354463585559621991708335017653719198080111595036934757946045314358850936188659499539571151788853879622015510264682852598027875618370282047055282316200720021974246386431984521982062726940413956419714427646137389598847652939506554924872143554639848563105447142464450723048924897941171829414519151175136563392593660166050408160668664410920648803872302614514700059082666818610787982648843294721540987881300759253330054479261129744938727700764109229229119141989834198376205731551869386941914818098251080129054551745344999060172804747635823034882241035601940068134431729329765363666795272694466377464672106710915778125463473196593301051459105328542389987574504289112833051119374980737109742441378306950775779422046887427338110507808389099167507097214616248138501828494536604718845602901721120975536299645705563413516502000420894723522729764527745911045147663792955804058008548437324623223805860507343758972241459686563148550246610739960198623501089325019997303324757128311997043672161709732421580285147807675367772967837415343594784505772994988885583863798126720615677950177213713002490381524583639544397630878350847550908082065957738638402390835535373765015921152764213800473666995634943430790114190139546155192702469073052886495879740616777601669421535019654215291344061718972624583344618700201546971052441208547724517036503447288864024550261592275063924581808026356797152822430637136594369554107480935669419201775449306679451905379824523411533733583248123451208104301832907507481530929572225234605543752097326730002038470033805902384598221544923798646040982019995917827711931204315446660159520192319640056101064740701460080739677026290914820263969790244675301917895622597798408902841038842036286623830688355396831285385567340472092943705293707254445836461539737987332426096362351976984982715519165431105595821687318929054076408522814162100121349501646489132009120376791808257937057792860391266489543449427151059252254950234990772312655043910021674677083453898963690322168688207926074284364330554376631509330149575326891269615209489171307049101180012085764391832936742983777218639254013771247024549972889145684130951905085796857670782248298094645080283093692014382397745604691656667074526711972686404280138191663076996539452913573741724767009847430424270542200581755709485000344145977729296838983384727597420937437590684004576919562055666465306637128133489681053083372451775854426264412427760470721374626762691116235078475994771972688681552077502850368218066218125272055544815791912686425740672053802245014202112925196336384075627405233916728564801019349190900492332893920924113376839234195556726026890676225126867447424681233296996562129581968453051000303143010347900157891306728158494447606851275759437835991144845886018096214932001728153083856537225260979204960610176693885708170811019140167199751035270435444386251372829626113907911502549232491004530690145546351634626584483341832443683573190511932192976716129042063901739122522347005398839016765704887088378153257919538951256981907650776910023925443093475124141896032431488235416113452635213317457688450435118208604111774812346862964921044429643840272269418450529612912840489241071658863438781839283064252808128253124107419154887403923760008166150123831777477081237684851495683719121662159077118675511261060112121135733827919473385515730077436120676305964883580919227487893778776120215432820461916201292525796294441907251504386308115442102440712659896658530707516851033902415599974806331154292973023690990733237342379645867211921373751966418470130459800293663553348674725961420310420143813605926798809893404099963632669049351048323646570545735957113787054994182958953909921076836320679271352755470289392599620840188844175942615668976918772080311781247071590362706420042479721846617949257967917743449851018998428124778210131791355950609651725796742836119271120702734625251615573543916626598548409140876813665588716199096765581018884171609501336044596345999943629894031515552435516498712745913110744281684208036875982621348321540879968584767730597985423998446751145509110728556323428589228069294631769900277228631788114814323479862835740687383745974587988543482965263359777244554791277389043706142618954363360866224732686289230125960006660323818593809208900823297185705960731041206217403946402425428098647117741550335577912264579859190095342826645403685136240279912267316635804794469100022616463299274832219640947454041116342089882959665999764779077358323920031655529374309294569170102984662280856189759513447386786956035070999237372626395152199188339675780769623054545999408285509036692903575898660616125792196770993264609044187705403213282435754918380305259415068421822524312214552439062179211585042739592772752253167354632486235240885329675497613419471831714460805076704667040837146598637756783276537672906573347563907974000644497339105699165800050606594307626825355825322262752553222738733720869280720995906910424569301400573248479811823616289467641431752137204633649553855681077063130492848718020481009085544929928377354729161515600344880253099875936173040148060965532059447786837862846670136009625244450460380268132824688560090597977389576158012980014097230575615316830574966504952142507770762171900526475777242151754766581950205912638441428030664470134595280668899419124479128445118447143881237780515395111716998642324458727154985702678309707630339913071623665103475366586052015330789324021389540377474479360532455221095335730756978397571885651104028040108347901056688984599649307006448412612419772665641726774743976205288831174024173001821746665385143910497220358743219234116622430592106503108408475518776339126727182697913627706446072035331450542144962276184348090771880632706930348427931809254806419984430161566869355038977932673203280788901920922318144041669414274752677611853561867838344247487536978522526026517948593142677666133970288501102031821596697900594211291886169728266407673958892125251968226993303452361628897107018579323814283614811749051309523597372987976491384778623964441855777570582674112224504669921765136786705394611589054929897036861783032424265556020491089095136572059140519380912536208503112235093742877630650022458277612294222324475281619298592079674110285076639471872299074844474997525827227798052062095718481372692204115645328940765137645608204152474274139667499755932903293262485630644612327034403696894389474383815558731802390920280376211919655482758111256535791435345910339088422518813716132876002718438501666364031092066669917508626479974391837676030611492645726719125616105331676662272390611459977913452671285036832865494047416061549815500487915092572207961640601456854719146245784328608871897848300126131391573903733149843104185191219834512141218519297020031686146079760892433172736918656759031864344069255507660976573095558537336029852310711814931683854258143728878815280282258669640700716359534658660082618628653544032592723470361036076819898388767965798767291785837977917495960876134694342094604872410670606180327238802846847607116474638757573416599175822474621859779766584081137992868473826372259081641633436180590189901592366486307834540547882363909425435934234537631865809504702549588437908543184693598812485005996475271698431076983824688280339293877096451767705428136423410104429140031723454744332799496355701611264138647901658109853531386922409886775871830392709270029371351423742948185324230988840516789427586525469858533597532625638762611270124937428516791892149089143129510109775628530995635994527263018528888711124432471824602110554907613926110428861055101095340962890757405976799594178589650103596749079161869527927528853829618298780603532292853658467523396887015220035167280370172685454441642974716867241144986069137510408726537301879085727838542140857571724622907838104079342053794963528885512131319253030896142387321732181482653063498221088934422947717134129393241446767841041635063842289151594762363967945938912323296864091567991567528827052763388400170371707902257359711821605196559305714835856075102947566211211046429950039421111176399080369075419146130551646082102522213435579418393623299477303102689424234318976083169258129462202815394547095214254877633614946963456513875224206107598556463164645308385448654253624519716571300786520153981644436025724082073530850593927613825866793374181829758444944740733753831281117054171343068515416339098788869668093428480698603742427723636120553520323917123235756376026098011703592904431768666436746438569111341810698415830590915506401262153307827344636969554829233987120549252503093883067747269312916765223368205749216830458140093307680120193887463870365959511817587616333064207441512109306199174628090034188506480292064970694101214636639455262280633234223464582301454579915334805835553557350328106014108991675389306851158484042660229483171297003723536853400968553068807905746838153495985568441467139168429297153917215043381830612765925000172546311922747188155908061212352622235000025575333289948214845057260867423861511412254021901240840630009987938608361314447988323990893630606671289827296714043737825936657631748693426457429511187290478484369368538661773321339133355237342751135390407315650929741023794042363156810295107706987052574788973014640889872508172204187656702472438406816565339577767880037911250278708992217389440912967390904446005074317961311962986295808447178234725244877552764367844133874010965259806442390711449949477529584663036001355037765005065659176486537633321597082890838134215689109067158688090723668381067927963540769896219536536765845154030287435382745349403425852214864087751963538565079431975249320866312625075549891291729642516763503533867954659124906433741667832982881881629332242598024419803999663076273272402132358516241800644944893247689593633330664496164135355947512669002344428190402295740015942618110101529278799169146205331581277250113319847451344771651787261925430973256524318312951843727446817960333237861143695012131560689154437976442557842453968842188275577537738834950247738275914338655805685360864944348483440697910895202238644571256447862916874200612517601756456178492583720822417297839860216972845334576826890051519633963042359841459579973648563511414968958154364524584327558800696161623385451555234932954855721892573794764122173134594556294818500116594383771449498467342019079711164275664555685790636253947598770060434507072015139995469376915731880539973716493054179651256736305760005455316975969019544683844416239840784880423816255218907514140928944072411072118200396381371080656523525226121810766939585758827358564393884127605274827542393399799850147246607121730600874236832575657259702530692865903937485562057168827011148100650491351849220631442506961237228400581326576230247919575258511420672504349757068726994779031070962968475850282403904093176433914076622714337187051881813439554217758203564505356424002776788422014801187190643985213519822288585354160745240521532596037213906801424838215375262929845587196934540071938544960747476173324259844215102177529691769371436181164244150223821717220503397851864031142198041023230152733569222597379899126895986718490764888999836215575254074815200034290781961359818099050281466676627004328491792045202734224684113790551799476093950974288735104493061927347245582401942353184920306337920175526044505624393353462101040433207874731501789704253135408356089045481466700601539638916497520224126095428051352194208331932556681142029436791573685601492102363930261423480239893942470273279468698838250853063455431230449634764199096069505628091758687439864883320543194908507047439183825907780925468244194817937717154700232403311506365773810010541847344261609161915807943605592339523736392519757050267581782298135998407726723666749287333873942526999580034027275550496620195673935983904958104467935052325773196061342369194054016586555045921246202389711525530159167661426079309867549018002471399586984281108025425731546867406884019304429151659505452783020929124236714624668322103786959443621198562949838295866023439967099791877663636705721747596022058225159592793503004960195980161633933363721637857008359209845521023554068538158270818065182354200483225556027557144729203674336859598343690308785499744196643751857506087669067569718375873654763770421703608772976247067823428736281298201711515131312187639196190685533692526209188064599036360027270342055104433308192716147204910588103494166908989251373261747746225138250679064320958164230333945711446355345937024939007394631211575588038301384100495794893273469174954738232622349614497803591645118487485367679317301646456744925558246918425886357944870417328370090745216213598216274204619940623877018287970914556763634366770188551623350374931679938680219220795144338520006628752341714374760217348838260402748653164890836705812670404107560859568547068377518274287449761935333374682595082302747692531641936296605315581872172904453777495166939462863327588224468687762077174446833237229449612815634368419295324284826671091109325452009052097308642570120819532159801153530845908404312010262103792432079714838472238766538139714707149064277776206138917323405908060879648748357069418508359506856922869966338372597926847527468758393919470472399737636512067064442322423608635488879433464753385162587604215093971210950702265978799324306950172261527833395925793007123140703181475559936827421827518048916679209629470855555801578513268383703097452565087925079592596536885000954643015438129643940741048852922497368491113913619329263448303363108411360317307320119746699085882655593528185455572092188436503087674158960687687544964123450980059277579322648929180527889285664874901963542949633538307074086135317909626951295112876788944372426926281514189123233699787636851954061624185286743585097298369003678317243912199712252713420792787876753947436731344084012994050473970289183506202957034517185198224235012052026267049738747567952622495084443524058072178604115027257026696405942053571071096913786328474353885750499628083206986299314970064445527793616122450373438894623778502504078623351231118184715597136732795352773616859543640907683980060517239843534569286956578202048847851729631564768274841173132272854200833801153180029273380680795127879605630154136544764230075040623295309578102211923378300626211928215201231234429858417434380726982038147597515343175129770053014318632472817405913273573675833046721419597759752168647490848399300573127144406321561569350883323192800933680216180269322429210226533155465082235189111441614621266745814493783662910064673976987313837711922880172418820058438726627796270007468568253638896516043830998591529332105844508253310691126991667122475640406839897483029477735711902571590892651204198815413315409830204345960539411499188737632960749186942015313636406828703107209044772665674881155717338276483900075237415162476887850851884466310222102148783275838351622295533868667021855418690852258871241476706845980084404508570180334915194744442277921105911206710818437866884227158693768593568162576438642745537527309825314246010869433305360216254932347635302764271388482211028488604201695838949558108346801628646268200316115861222310375401579436248803638868486990766657813149238249467471081289133790314700350591621552768303777753598658905326594471284215526947105463809728005330109194400733998259321892364575439350552788717660361634164115170312648532396928161955793820113079227180648028931816576174791815101847202939362119525673767254014812964976947844489207864514812531251341545630543019448435798478600220906462014510384297313039695735857860978995020826102189810983008193277401722916575858755088753917540422952149718163721180199311636686785332783404398605769671679639054514491088267052422303749368896054981655410983387233339320559796200582628254808219627198118988716221131716026129346085658115335366478928064886163697045767433574640035162410406625707745193812577234103203357971266265594504141765428099279462223456535615427705812148921581555725700291119284051728034932671066818750724548376482408529975310209877006307085443050453052761665227310974990640077206678061767548668058778213639318088106009742294298224385356049011371416828938570790711322657640209650319162361340478508239345657754269676412425235493138180770491282320533721774990330803980189341735859807643493918972317453783889568277766285023138227638415210647247989286006703301008067483324298747339059245126786105734765303540144343274397890874569828123729862185603052615459578457577649020102351370488079866788502433146177438411621026633194646533680835273153748377894307273749831980999943361087739708802204854575694062948287634435873235341729056838572837086057676351947479254013418634509190268406234760534233399517865897796410539473309978843454653503977949433759527922761213978083192750828114287660337917775220336841102925219458743463346065943691908607987625163589266237371691548283751972662055008518600255267868854384835109798467074727129075610398381941253180065690313337702930160866729862173340982130569809959876737547436051523381510977638362807560929265275031320288482721710437383303672606357372629556214233029674132031715210476793663264204027070973240183726569290005023415011161534940608448774400075696149198859030453952260219082398247501735748376927451143619753967078938916793974403508501514870503825886692861027642659717875567825788065460609929645055980010165178028086423972231241593922736006261273129515589372549374646751845540038382299427609610301529849594736345933170067508150332988772477016948323682949577118987764951847949643422002520950164276315576446646257345820336417921197125308648319495995951222576384080912070191554022352102333734484685169513076997778945409989028331337827075834278116483383279054638764254285200182637421718647261515759875664596913736166201061653461630359305252919826151814919011624656574280081383990536117631038063885114068662111324085597261555536546678249124976358281485433607757915625722450413913637506603717605003147138970613729129005230488481065559280832217047480428236555392942867888486999052076857236744164554141067345090663643168157592395791665715674220652074450151974902684097512324730748040601026557239452152471001987726299899295151077189506649434272013341382285652659440794627168603896737275700637843618225525907431681250645877763972789621091491463092300635526596958827142822883503795347137800928235153693568896122468070584304683337450876933902925792755104734964415824104180070940752302998716954568343333609142193759756190208346828994136044272861289330258013455421517159582920626763621557982476051477694274711779039956508466325621959238870358266115246143150467671674909852811984120792293702828165869432425105134400280905504106088236547624191752901269370326419967230305603794124241292634762979794070699373001219066945338642750252433609793163289427972157810159703506113544260851946511993770640446981957807148193813560263502113038761309412903196594239503475018269401502027164538768405669411802374252206532298475410922085553175410176767797147606491949033285041125797517065341922395137725873262036522515046510143703823110621951508773074646997087370146612435164139231271465928186274193426596602210347649679411136867872202902774502687552365800224074567999706999844948658557870691622321003139579760095250919513173941556148058292472506957742578872729120141457903612798007988252978790252089399933107202265115963254160868147141048629656683711255242220310835407602587253780860776143399773529997046467701976175526173024698651872876022097090146912753001742601720388893412505000061451102264593563962818455127574730593975760918838374329172095100531766696640513038033047443684684550578373674483081653561517633566422688359119382222707322192787786699327773794349747079998450716528778971826202402675633192161789783105048188277372570832926668351585866251586184949535329407978182694848995817853352165365457144769526488790878296379963746963709681665034375130234229698319949497953236423307555160376870908993953625240419637659906469386049428748485234251223739651379794083033026437262233023523003700703420611730172303304638211268893785802609543674780393915317442944149746431532607783917888238078928113006340512052351846924296652603577975497275540143117429479586902077414002241603700350788431919009542125991870740906680766993835315077152278736438080288980409052086274778651419032299914552711909289260165955934506053838811724358860002494962222227622909987126572017794792172505843752807752057296511223190224587495326081283597403469554766314136978819790905034154436736730255405582238418189321542766316288916591297717734438110540105059201448448256553318071687174808035545959604107121217632748507328022562594264639629892191636955957026719104202073524561491180484168396174670813758123111767737010046314811537373620141536594062299794525454714182764741912362581999962270320487663952766053048820359050586343502389740438031787098160268035591989783483861898287784763873377964399589935262763643903183925102342745775809781689820500642296601254371411171662557048392530396950703368307464453270544942935089048864092151110723569296677193008370600457080210596847938308577550888863670361550986111034460652694781218428607497238754160260350524516158079393005706889691887255309170246439950640291361078181457025961355753083431653710530377339780622478737530351861142122173952346915903945733949629928230156574901233162193359730992063065400614028683073578627895316160470242887333445422503665416182303948815909526026669053704356344102338196365882784505967284032898840364906075178779485012404111726061098421581071967324104453730015958147573087645795059673245693074037769826549706516076279848334841952788060746528834910459954277933840011684889153961431923969179883152971034552337572477541952641909109426252001804979325254454447576847837028911492303662124200550694295571840240581828524329721070860424969877339526886217748634012989714321881282642922601878975298415811881374169035082233105088424013203484936355908897492372101734362131936212164469680019124477944407542723973301064721242662683403539656372464911732462666984668523656891498180248867986316298944639687581668494234687556715184422241419928990018647874355479762656658020615420662621956261762792235921677013294987526348113449731165150467330988372902516664037492989189890755840867568338569145707585290874113255309484284604202546763832431960586511845086527147621358433883883235020397641102776400093098865425825120427160670756957495968104065210007591600471349586338166391043839847596204858897731559282664705255665759018542070217717000932465762964670741072459598029946502041977306924681050920580315492379787734718540669793757997533702788113231333576176489181911804431193942433747370733191445167659238564852818576843321568921535484235005411443790844476014463321644528794359752817629363037900998785486834970782957616750959216230240767340618294552225832269180437817987995517503478510469197400208103952087427051276322041189504628243105289365992553039210808947026845094951184315550578475057608471103753352915235316561125734301912214980748620373502532999400126059184820596063589023659477627775044925680586329971220089855775917951995451402060034230752828944803974898278829919065656377309754066894799898152756487110743897714905109134118326599613198148977866483052579134429389682037023097880025891499579099812124641763992632027454426309841339052703631697503078042866337229421442423605032688709374303853461909737986680588412712675148464009753072016061459032024916228321925180276593559767734701498696459960083171963442309162191070857182202767214056225545700886541904981807679612349458703785424239366533138214178548421904284636268795871399522538261838717213182261640026370540020549242823391223340495245495740049761275790655379210594402310691983595110864569280080698851295900840495333419119212557316638778408185065661294852459358232914474708763446128038387340844495091550180800401883137035446715243388425040466715723129707570064262410099216712607996350296282200740918997172469936079215603798886899146833308504981072650281890234746542972175306930908460643063212917481709188430250464571649332319849007458642865856338268948442042358595781844263967086517145032614215753904595721273131778623712840769137014307801997546193392732003486492581283755568381250511473575650708937748732755353815168509909023459277888376729166365077933485031316826112019936467029083858431677186247429688800572330302347812716350145630717764906387113292827569955101900102729321273700112659910651370690582269978592384860798943750192556412225854943262424754177458171701548829627352245343925167490628183537118825336907741746051561664400008364577060848471436089682546566010186045589905688607468953404020325913188044154806326373823418041708791285460449362596383055531503760213383353318398275958744321328464613084526515999576153654938195380262848634873371013284622780891132994779282057267995114525713019665697067216455443980823087144824847720516725454364587207869544822704761633321073307770804246890830625895255848138127938480921086552930038326514054641566628970131592170536869043571599702067225790860877082101818806646136586102651742936350727893401945896095323799708593927570592125193217701971003007709315857006574747431682982166128835020439836035746590761471718510516015567920926260840722218995399788467699961408655716901906975174463078056600227330103951881063717706650755347023467749944520975579352944521124353881347500216326157077037773058955252720768300317532543246984589736339298464562180606737794669875187708011651330066181946128529064321923073739527867381839081116686142234545258690795111409198487032462199520082126071664015982353328168474869915521378273350440844118608719055076855316811345428436301168856960416564557959532186393749720483853101160765291263910919349792900254533924861698409416755448327350809380012108778784388322019281951803706769031600164426044925210381057480716035848729762680261741982431730395608423282318579903702805766023637920959090878494052512771674303349159103238960919474503422362857244874198090100526439455675862689750313274240960578663623525932909567746290181889129699423998018487294949459985946437668689978215066328382694266184172322577879415798349945819055630198565833945819605043826074347219729085366665946389052001131911849200660183615284466999182775176105850002483676304371465908176099813410250522757245025869034377121498399575611114857410629480516724122419250138221168839027533269753884992842848241623048993713303982988451712767378510326821784985571966729185941690362131571602894976580579739611083488186228934984687071131515897597060558754351936240641511267787174409664777844295859028903201361781970530504266994892101793890336047757802153397854989211953551601899196638732020575894733640405031734449940569166912682949820575934710865810728542306776795687828349747288942184178171846420898859639927916478774647383525469535732759906313076302338855287924792800169877141780180439532346637965993783966861931456358559961497559156935617951080966670243336869430540421952296578398003995213007063206186323088812921401581982294069972309581388533759476493293392632561901254186790040617724066329094171271502229309372997812123926998463362642470410596256088706874395468524732291587582261911059995098086943762253295558652923425874817272268673100996062014471452787933768092666399239578848940655499449301980556641036300784089173267044867831092302381748467201922319855701613479897646812689370702049492124490792742865507585773992121097783762630109795340820122792932472361723172242476865050595044623539712218606658772110694734090968985766740044001241780515368840667598139282031371735940012011808466243521437895331316963288210515597540493930858467613499599329582627790023024911345977253290390135358808122729947975428906240527416597422174536169977203152719041752158653846482868974226121855207043067476277245918495125035925197559754775924891591194570737982187208016456644315966582057552142661941200638502938137348242972209946029482080120668605401092606982049910218857570284879204791658047426474134924859155156239266384758894767393046896767187128842157298950448002223153907477810978571033220677808946285247972593751285161882826706996541561610902139572147827759984053696466065169506634590646864295516327113705668532307720485889704270676978060967888331879589111873254159507472099150945195365774425409192700554495946606230888402511351384068216858357492699431860190702544588308414487101182004574372397522351160027526441384694921171866571528584494715750864155888925330950486943042316222729439492197843909908171529039534764307331696999437248971521785377770843172171523819491728370790856182861406298693905140742765430867630799999208817794531918396962125449633007715907792537299161295631083921951684083329500367359764129954777030556442273289103651398924181137929249290110438111824761400792067411625330547971741704072692277605054014497151236990656984065018195287530453532275425320293081478550086984407571413597527468612261463663967749846045076135087565745065640509463284760966847722860789606303586289889454366053644024798198722500459509412833644511679888938421009465863041606894235662533203259594535664497509840488375438720089122078163736437448772014058381512433907521794926524812725492336077497344338393215202979898227953197010418584613140485605709451720222713844217801360151810242619640056938040781608922454781484123059621739179623615693715796938516181082376775625973345919692023216173507928400555327436818894789503449685968870956940875188776256240149558200680033607644923829837423279193718297738910101598028753895690761751807627876767341532653757821835598288422313074431070469365457695340281957281347020154217339311508076317344361211254040381435765983014986320158043672132053233144049856390783444871254600840508369138286643449035510025770549579939199292131884218835820801261326955810832921334951297874421048800921342038979286276236936929280590505817648535967015112998099784761426200734103518822902990661174225733786239151439347511304305016586818734511655936473151315726320120318928437252639973786888866572989520738137586643603227143061263045792558564194120145415905532146320333541849055523713219159590386349572920779104863549824661028985127264370426532653813513443431772697383603660699198725893267307507651439592214953852481876644938165746995936882516264963859299342709370670758032173909399058548836703152599378347908862178811694825743723584362329701324836364253497100271469644924218808251214804833413920330844398232447648184571793369333620560434470581624698404217934545240097339022222197985586914922129540438281851627202793502355401474921772451817350114281951470591245843819808689365308405105120884317837346394151990739735446867463216776359247408684104674481623312597312357585852543050071621408453421204068001456225450821954676910536258611611516741745687260393695792520353568617124869422732685715851966714436583721288960311286844036739371166357911025747704210091088821097467595471350077153698165880815158780162036980892229438906605619230064585178790680602799876250179864969816596656340781221947714479391443845617236101750613539044166852316042076741134872815421726527720547131866951523573506006890640464356426239552261352961109300529764858622974755940157230417873363126820777086456703157973123985259032033680738775531742674588903017356385410265929234918288636888184172940123286302966077869927822082956564865288967466098449645879367952579553912955785081229731936537751630767318515003730039385383081684803728493010875041122382004726486230110815567790396277898981440866223190691730975685832883980500928757537162473328819296645218291046912934242587720784238843792711107289833256215119476777430213434134394929204848632164327800980675593468749615673976409585592008119067316878973978634656143240991921676422269318149057646617279091897126711127994342754855615099740037930436503732644313673894629742919033199655698991796601477753956854569381904174853420982173697427409585854105915357233182341886793895543454611046440214372650708054158368984283896004286122639068593170297111067560794882584454220287525609864007748861301422338400002361352620263413566372496717052336348483078901514008621923722739511840034447582951546542535595652330520100549884840187325141370982653126975489077601602288524412912671866369674923103121535257390723735052617672021932753580767425209493128974609051820444442089245159857486550443826985798279233712865536605277436469326822353025429274738826855024971023889520508565297682070394450597916766514799308743663897194452478189073133212530486776534231372637528275199473154244344464063056281963380794169439927997184963725356619410614591998604723729449125641255967851382597380031680551687048414731349800132153065236832222802200852509743124308793278617818278544735589952934308718465489435386668748848068643061458934560008820062359980320028117577177496363450439222485000147222639161559776520369066893832026008115660223098387979858699844513838110683633367988328647937704215749602832023584940491921917412744896225044009895012670111845840534013255764761654676351375585883690798506309085673958503590814238601427089720322657870915640463955691642868178125244861859706215187521655059138643129936610858389359288405353304251130014719007721894672031986286720662271417938062360809383429119223114668600816594739868394563746589678458584982815960900856373554805489532286352717302294862347548131534474342343062974961897953783891440701211567535836875260166613868514556221492683556938647076847774654939791073126408242046695032094125787149891016220167524081510871390337018848528931795814554725951265977301246296379459069486545370138013862958217183575190635942613719412579388841095161323781553608210226282317992680187673569392671054046974181831874704014051383771774783798782562597736211000909831639340310697624860389559164810319208292639819767016069762108768388211929208624066717032297770982173580237828550928800172972053317928990816380020508638542822693509674323238449778484475498866405059611105389429328780761907728011345302524653329394651609501640354847884218891390601277112963248343914174610566775068087575891323947336740127109381352216172756419983821080364714288558846803199033646288998058016390840464771627012263363104084203494473640520034116334193738824887679571901280218249868879199446611183361721781174224033918283397446780640938045652020857111496008316290651565137526380873572738699683173432240076376535742233288683409362725114593753976000847032326116439265766702917742821000472783855362177681900658132215675172781113333616101083886494924998735872981080721847933078106186975606085354222749836506492187223460743800488626514056281471777560648562873960609428968918634699064419331956390949554003384757823757999076253147211848063391772108434132505469098841039226206973128422446958535529897348827709624490032218379095291021050586121916840652610443511517815910602682277632879454545209060183603032217301069676662795621078303293196341601794913335324124226623555088772133759685707498502768901033564491796175848414350007036120690510374796261233324245281695523059909505327904634105595096205611390802605650821953240169494694658333287217036427854664894417348101557902169617879828315331976064237988052669308954649510540489782064579025935921260464589734931377021314589163148455929817594960731500491593336008967401904028961106871774936008881661996423910795546275565112132629422378877303549663906886735674428636622747996046585457097792048799423014233505163906117056303305819254966804976476953000053485940328171569781575006841765859446828768365528364983732030843931996188859832357551720075947082549662212419833895177641539205687123280610789135817699352353888591689769714867488473463292458733007945553900693841494667998969430226644852909561736685352312332675569898550255139101809820422722216602501608821996414671593679798567404112942810379776791937726294049971053776698546252421077153519353844372874098314001413401760994046841992097919678463880195368296865626546139051204560013324607633328268943480098759670447596305016379763282166478154148036170790999177248937704980007651446898940595189671514843826419645088068942786131860886002636343224846556750861803842416635156149653386997284508144149011692126806200401711918018289603795252864678295614651320221706695184324759621130501223657721982186369259381654963206847200258121616473593683236962550289009362668902344889273546755542962418670040296270619395186874395355261264479816211177685012323465707544500143900520973298641042135570435513744540736389098008583335529240665362766970426380788813912328983809359434370440008034688847186443458324682908003345575327278345120127491866110155966981178944852128731694730827764528627818170825043718352191092160008047606424037786622245532315882039604348277557339848893566674191484053751726905185880268259530638733244445793256146854040608984696877765610177899430643060607291532774434945497479370113426339984627797775053360918235986526794271521464156480131491812820846488048798554357956896979039302466077399040073118193930339558456059579467833830495087552133025992235273782293932759746372502732189404143421243865383881094415491218730637263234248818462553854522800640784519561120752691286545951386298912182666980941459957983839558105144921262728008938654921254471391315612378623437637413481805642044072651867865405536393823692250715456366584267605010464618679765897215539669990369975107820847370583869547549494169203072369484871862213589710041684243988823723815364444555438081296038718262970815788048654544421030904149565972063497743321825531399196706346828380906051711595404029386404809469267629747628135768521104753693847490893269232832241452699858893542156507815783667769906663514017958255666196461789029654299662881130342828466567800034052583215840767449651036738696223076656721017026379779164534053024771705652805940083891231243372326701578389272053137450668179129134613258742716427340207394968684844350892204546565030107935251473621151546368275152669927008331948502336149389962804489666018754569107265422262905291013791351881610162235625346501295417220203769785152902174682933644238525397071863277720183068612714164354153006334632979950171358947287067918008633821839791167453808545087528451898545130477928927408582477731021970935763893901545437228904427859974272515722482692133415957621617821987532972854173964695409087971481078297488899841180958107711746748899782599456548004867193727325168459264287172789834364160437775218797698899667155591717075723062523815227516691301446295260770966882053714454351061873931223616078823622169016486802711188704287635043034795026036078599011499248768607282456247086486588861544981876256258398750995185283125001032463737444181625728586081339576191460122429765289932039627466721189112206885399665114971066974267771705129806735547591763087113415099830732060134425887955310764640888178735584357185257005392220977866722703453447046095659450068730884966196779165463089008088888890452781982566245688445028481971990285422552054429834085438854036732289682561054732358600658957733124949022919772419299559419681965123254161634108728211719418342569432765788862874409811558839391088044735845058914089262697021742570494792419479805770677032291681747077902658516929053612542217470666447218827171764348676724591982044530459911434387238327320754850635382279834648643237761525045200126463829473179103911359678731744768639570042659905237397435244455541241202761792582545504466963174377444638633553228458638235403623012001506818103721982323511334534371950507660620730315736400694097136311971927277921008071738653902505534835906519265963007489242913730970283093353446752577195117939631306388482298922888528270178897811604466711783616333012476637277923600073754476860882924698709982759230181580823523016138124703635362142543171737114625658639529604102896246178916436291461766623025842970595658234644446488226948447431817057421334859424210012424154506045278491235124247861900492536917065555212069459590766309347912395030158520571957486290337927546448985120936354768472825266317765862019402051239715927155195727075113385704948380239682802829250309093705456282835242381850984433701747715235365736579663613185091068075340525760528900378123146133309902426574035917638356483893610271153509486747922287504638714970013670664309265046794072955284303689450060921833071179541862486893189436536538230966511575605160307778728958059553417834939486480703476789510780145092626987128996072248496804720710706550445811531050224571500983919927220958619625461161882770447775465602311001227631166397964420192163681976548251879375161671412748119761849207237066578163945541378882306960219914349199620399186685373811579217288455162414568268715211283598400846919741464944752816168967409639452142796380893825750523802427051832206608296162559131823139208364387768033885605400264104184263730740076076673747004731549415548466383508739784827418379583151969512331799925073167920614177705211442219143771428526274036267322398560080275176898941275915658600835118658924525427472135332619759554243300894060032306780191843663676272759161844874119191872599347146684087333146942450954478695744269104429153122312509209450659182216007101908042173930469519120301271184257823175986772604046397128516223376666211852908947955138343047508844472180360114032313925201605822999746035286043684166668085779118411337075183269230639652100735637853380873467483049921839313063183785068449729617955826480746860174696532078647451454532857206730086500497008625457437409001515718171928559935819449131224382876524511520788231363891941792695402119379960425126488694429783161135121493197994005513124124576759542697220465669324069801633471784054986999625192474228250511294175728174126697830988344456117206420796964206946478977759606790772187664431111163198022877748995088003301904055763141642684869357599523746104492829153512972021504066534405312929877762307407614084411315986350908282730330830213200792270822363932502738013941593851838709627641366172259316482218124452917767778028848541336028023714071212861181446349338811912622135559165798282260037625273342484442685201403245460176787323751507670166191801710984788175274027202964092604074602563890338578072363261401689696833445971903030561284088922309502511419748786232450486828040038650123445628426282640559546769775489623376861841948877934253819480185509412583703491195590280620616394968472058439659375964271486655261724234196531608260000444203980804437458106798321288389028171801352201939011555788543365360186465177026051801147858422481376226535869429787201998358526984839099282775866296758165612508154263909526025881022134850634860570627309400698208264526327340811885504255308921045823435491645894061579831540553530802061422897441485220564371746938099873430216541009825623679604259795298825365028311804001457034199212429710836756593900482987100412908362124125155378032895678561065212080224169716501327089754350676712579140164259988190526598949825504719880704416146288579897827583996548227030027565601648587621800231015995215221053350260849917245263287844261668854390743649576165353439471895424256656395950171051803762680084292831908095622558231957495983876740867946058096377438374986593771429145642523198508629336191746725635004330749353078052442531920660494591625212623913266906526023097888010728434280713951920397222402644915797556265727514916048100571196348963330872720319364351399562535888595505650651276246553339105544955367114343192714303904962097148728731140537117550759572748074717126248113665396216943102325739789891316070713174103601848405984842198898935638961048344312498471171058974626534449668774812349724536153831952342522473903993257690187203150878874462863499760275596278457399242695681549843055075684870828580784686742843224967035747781995716842141480176076565227775661916314463866075115960329850643022608622263622956116561746947628185138059346693849341599414633673944413358196621157027056575157299540552664078259596285122664742725868036810779589059195963647889937867618408011118185905060936722158279162000956390984719193571458785149540366772113557480513562623357291367887427242123846495221773092487777432053172564816772354150027101405698065085947437166665583400335362960605063316826389047431970417251505511234981322187324429498784670384112453006119531396565700283829660269927928908372269742176427198160751761928189318507975519784571011690448920619808073065068712761686343344689227807375503919432408082801979308578314248805233565728517011024467818773833943038969815774113360563869171876458857068912515335315214303513413523196919174172258805105308274769445154134041343020202223361543296311705295894273119265407542878101360754231909301110521859521228546063025096289962006529958726702422284051344077818265394949369084182943603249495712118582221423519954055982730056550343976204905969261503196337814700766738945647490921485796628334386759583514568202659805436741779391488623374362898221836481081756799491356146217304264437497259585147177377041819101095413963682238746325568262442045843757379713113202228140282864425384355397480417916263632009014488221282157751487853949696749509643377451079862661763687498680947702456481690134928688346604483692725585780366947005090443902688538224397227627821731204690466603436147887305447908910294423445458631589420112487717439094042964770274197049157423185759632148864454154414034050151152401244204649972512310227466759538610869114328191599345529295788722782234027045630612414798557072639422459030233181176718384815055959390137296641252478742358019254936977740447370083522423471701535323574603535492381331355079253144323348407605954718461044585422204661120390767505575535075546599067038182043354505020372143021369253693343570256336247705051262930493022232529400928671086488223745571776883640404644789925860433993243428567477836513687094979143033199370323189932775541517308558404159756927588821443120954114748428453189762189474457525987996110821642374798232880766768351077697001524719124410968392289696626130546606022163005433482446295348889825517422223985294496174642490811171508288898120291621727797886363892284355158067968046062406081214605252754037894121636929558773164295390390766230189625880771636655847719120477662318170902168962173247413272193790328585646750352684877698871638847277917052672483269419660487598737390955913221784197276940391600544629987663073760249479949842691664129350478124371602962936450758244020945026644003347319896099110497000398281992393347037938917979999087318013425987148318500942995927507764346108670618869844185370977872058139291399039335282428924502419446708229602366910635002871276294299013846137238429083901526831156998540320016974859089899552480032682290454040883883539295000333780588165203185688336327394362351781794276975843456632041856103282893766209357992616954162788636606418956943515148417967132094936731469401426891521164447642711838770593451849303509565051400010919800551704140395842469509577833488424474656625865885015910949824124257820001354968201925023338893318107498007297372489719718707025879669388404714801246633456673972448885030764008421211119306805671894425252979403722390758531925108128423143234076284533998541464528988508233445486228620289901332382358381698986564916595226845641859561696469064312236618022189232227328307783735222241760495466682515660558421510322184403907972559901182201709396722509215694794421129610632994487634679102110072861813631528502972795511218851898350687986302719467267829886093713928616851080127251041894888597983012623228476427470502482041688623924973876839694906424551358276376052579434329760927232715146754509317649028977091404479647717477376984094033923512960338861799677544406687878542747450475656582753186813532492940768088487119979058280092591908102216810854103008911191365100718049257001355760342046402515321837929482565399087216440191733359866525433689844706035342294207840347100900692796189017051045727627290700136278714553817245170997257629098742322827883205078868518494371160154126597891852116604571714966558794490866916646419637117890656723243137723373845538219560581915838722184869199324017330161987312206717236133852217979493743710500490649585158174726999157659258816689723627052438553595516223490808363382759833387049795034363394974914223600405888295376971456911123494198225472626604461589290198799481196550250865977711625326527269501690656199801494365831242742874888901316944462259013901979595329044728295211675257411481138663610690374183834377956097276555710263699944729826067634788135870830886053313658137123520281112905459523822679368282897061804038385867962985893130378122622318044168838337162846846826145120181380717236162589335675687455212062633587696949738800562747107243760796493904993362234153545237961071492012061321182342469635162054819328101013671123932423760309079853357693409478444302678368325337705225356763737527720509031235304981713280875187489192645193070752288352215655860088261656634808561247028700228909711887971711356339337367413609862424305002998538146706225905575244909554508468503047611663385342520549571313398099946317362904779732041333164572782399822556255858253402429192345207921989733206233022071538910923898714541286975297835906126115178239327928913979932152092832726779204139853694728127760787013947010354959688017149587949428680613828172051521342116788268031310765827275208759676311782360561424726172963467380271866336666056002659979184715147062491908464564201543757041682261101493858690261572743687801065184581613278231364363069146284208822847875610218572872911053715760602073511746680616700341723723839591553972213027686106712107204674480925106976513618369514199070676828543109037027234427579845241826610371019897115232412356215604768547550278248410616950312932982702547579504687948350342627896009545401353742246630016211929724952326268620394977924651156104010172215390041658626568586163557816257666432485839471934884391746035221874130609793366874131143042569976433161934444249865071370029854945820869490782831905620824505533123247802615679215406848851078976059274711860811655275061606220722376951556012751822004765124558394852638869507770429178787166383444106543995088135839928027580151122224457377727730101150937774890498779514697784267578930582492936049152039662377359628868162927077825443330964921428582503888117959903413370385184029034867299888418050177730743397424826583842036582303447375754072533491096889757960211727257232279079592349808384592290691055378760526867787615077133422127229313757985820998742662108861418111955123941841566056249697316374608191297296599838855068274873042783075577680199743131585407202821414840545362934147285126733661996929720138233837341199687647473136162824353586020268850778388449912270278605504894188441163548783854517596943601202160061828903963060254400045422167976558328221939512126671914841381791235323535789698868406876072775240588758331669734679960677821180885356992559415246163955311428449064808223262976842402657296860153298673150791284162056047948512804347785710026641606354297210309912221405984178528878596061810330141012695044259260519219507903686527759372210033217534660410210838459070446606458450424746795384113867095492332766193225331746554539685572766639464192514464899375858962908649746831382898359982326971603346456871144986234596947836794924004539830485775959532384654513323825457016660142846922160096811844830900587387569671616041018455461881602032665076503194009985733730788854689886438600732487515745059207257049738421431223938620314555505900521419386089521075135841335580039584203005003626362867909883526224590665720868703794854428397721565196755619698954255092418775027778473491672848670808319062145885998224765036081356227852089192381746656204063830513916356396916953592951365932448702498597770472277449525797695643763105918686116460925726300789946069476108553435866042044520844071550477040799940357713634915538044085342414212338612502221182993055581289316681683744318424978145035510884115671715602290554531477769564382497178128089227181191586984738901068051946731906350888828690695822016103288821126484525565518210263902924358606525384927050736550261745344517760349678101251288469266886820026906652597595775804797155904491232844657200854044865962277698643135137094177425518538581797249448445678217855124482069745018576970001735068048962682769269649744959804557006004316321812554935818886668567781680155004511769083831392121880202318657637376922851003264866160320572054543456297093094532590244978175688487665129057025645554824961078456949351228467330446766211210612651048698249093318766260406652963534409982963406907071547833983574834698761412891647850603795698195040687165080883919379548249446707326714336680618872789869747271196338753376149648856291269708199344732885556309725963236472773893905589214105470225196085494157978345323409302985425607049095255102963132369784136204996006755128124944489654621008723160255186772806801459494360444021423754284082531798410794574961036591368290406985450879355303254412225656561829354630316712189677720736968271429567329973438464705371964246550119878412407078556839333838669500560420868305957183067413391650068744410434559325132584621673649570576757974874049081977686002178341067534837372803813120328709485084171627806438098024190292236295099421449969206942961184755249133493111559363120948834573858419357395127604806083400113771359671838788538234407967155224559205967126251148083909397262494020886629339695290013367188735070129731278823079700555650199698035344636147046780412032174520206125671565395371248690873417181997019293163516826776183043836585134681472385749861873403532873445548243424098545861809950996029049205513141181880757933255110105734959118800924652576467279535215915230511902615019286957472578254725565844564804034126598442587233925158025985696112259640911602207371570285004900978521142078688508003369637919728848905983010374886315337474133789844810931421883202962546090556246902537496164637695230091982820330980631087732248719899449988516970670505020166177725763172396379767705516719298976442043247980907588336087156677754180855979716204921968606712399242105760856397139471622925351591009890223288208410059698590763366312616907841736719780947300079817266466351685462868083044177206354888743227189066213839865691164927321500920533429625396651429853651081286723702239113113890294658754666903725165274330652690668119264006390675918017052444190901214017947521716742968859771859792413161310944927617953087192897991930021749167023612816787458871910655782883603340101488114895687522128618456518665385153425803981716157217461174359538034428485826701984890336663683722334989312612166301801178364776953294416857297823568784264312320151833245474803958361717526699563458412352970126766057843272458575430926890098728761691904681135025340445103557150137667533816666313579872069113622647725671141066310066945681314530565025885646130524901294105193272860242653271381570125358564883561045409498095980684469975823591058690069052285880512211733432893833946444886424219784332756851640281580955204113309122121201159778700063253195829149591931840943913321946272424048919811744259651382811639598156337448175788445548427394218621991230445664858840287955227992430748398909548371380731992342771412726766621727608577609952026827444002879543789036169769035121789966264948527457803239084966939131692552634693198542438616842815543869378748995100910241058721890705784830525095048884662527728618107906552140756213452209701738926716426613632495467554022683202366352703319447447305827476514971363099969186355923588619037411325079097058873677426493771575669276842325067092245256998609527586583828044184116445760264761284977893642420445754820672624794083379076143462135763486752236857923756653656147609044444919739689478619635627880694577331968010402293608955974098674614574190797471403686809259490005307934402181463402187824663982193813754518040391098770360076972119485928288686052066127501289626801824195115491858850893469887986137880611015940547484431821276764978452429930258625087184762870951734002351899243292479909917105374681863050330072855568927535750547626731887723393427696516576054383573797591783941818704095649550738175315629670900357184696983420944786929761076336652976682157681683159867110469814020056563965766695541294110290013549194300435450303575838576745859761194510611261995240093985004620475023656989010653011631597712590012286728749370017658827261700451316263812943722456575673882081833805069851176056215016405327099840495169764794312420321991142480367288847930734611316030162191675309280230406118350713201555750959781280163677469353341959708324233293100457689367799414008020477253072545140568099246162960362207157097383535178871410711253619338472423165409193739365437333219250413702812711399274075495110306546685643107121357306375512177162088003045280356686729325332702254593111102935739162298683140741118737587625937273481732778053120523881910497004527515544963269043208968920682935480734248417975895601898895258456339124804607401458661417838526050152639809673221560007497690045599731156217503555254779029876349261662866662175262276104283985567071101553980587418197253042078075662656418684008491984684695801906976412686163214434753774047787557712346104149733232701194160961994178152272345835008156277288734016682035071102130153587220271737814220497460479247591460965531548283359839733875026137815870632502100643010158542349425557475175501893594842509124462159155609548537400403228412022098586529099128960563850014612085797346800008006489041499027045041027804187410643347115227628067270010066942704932276227272858118228851988216023880701828719509292265673531781336768242598696988519034372779225493903507556917762061806365984962087974288411491080831067839815643862534697484692127159509739806268770186686223587619558308298770495769560307257110696801595978243494763026984701508379345099305187935656548479596210505468697892150951544696827738167604660677504979259516636282395908712607727996447140147134548656259406679751117578205055816183388104082827453271898085940822402444587437105408466568501926197568212509262440571111098871847849844105361913398969842291153456374988416991547489264913126185323744303074321949022349890365158506619933047037085630521857388377722864396862279757775481647363411627990619299830300086293421889502551203255454952040983317611223979289001249238665525933457666189531104653923934463678064237863796509996201907078150288262157743668227301772577798989986815078318397880754631990748929534280602298495053556165847775557675589783721756535874899449734536079804221479480926019245245789764236679431744261490044207519700787445977723233337907976852952861187971476141944009159893911180668346501015595722458375169828467836466541472399803442864700456205557040112850540214472784414285414594164591365135119242434668965573772361032340087833769682371787734827775260219305989016632371476972165904961529652839155230101739865560715015848126351916018030701852310877925403103869506886449255547056562191422992547889572106147510544218089390344305515677240682652841844996789815237188971933863193611899139493568382752786515648629427994777012296154933663919022959436843585696343949592016699001077405075481694697488156936896880896041267655758629957508250261014293833672085418201663122049723839993230887844554943525233473301078307074073333994012670846170327207265898604293787714668600855441546935908089198062471727317491790370170688673542364851411728070906793468547341152020172574023345789747832702633630406277699889572552873300060313505475608926793059273304586758791847710981704638173089452432533693194649898688878817643350561516398612070405790827654242475724309441348595190147990769319900175619096898874812314874483368072856999404230566523777460824956161622881991863594401172836966521800711577485228683339820543313798794798034832951452967625455828065874410761880474457525226904044867129882092167294014430158814039801699500448324729648110801152493232883533765219615026172554082594990951098137961708605617554684904337906900609204270533724268089928496508172984956230539988372978968995311007407562290792097156703666942078908676065245739355093122813468955768791726192572376715141582607894804011001768650524451474384809754793848837664788808464528530675338901054698673111738107521374252436530984076962406216972547576986367529777740595244003732776891505236426223458637190287113696497341628751892557188868362403973933186719858231141397612929498018389426059469216703357587303185155821647069784523466411238026174543461773820471895460742852107110882596650740092788791755399430006729120318000045346785064860837204806777989087815125549823856623561306896339975752243815841762465569500979957405726106318618904434454883846489163277045866605625365232045867296302804304364094424708786492467253971824241263678366415642058174563207441243916282057369571205688895743182619684839173361599683399380851114948146265776082961375957273829626754051250372879331542067996665614191500888492522843570599514266275764461285790538021062623550146257999682974824755298451077440470416369935378373372626506825624220133037694582314478561528923820613051909564859882035710380526389549101447225784206244406367792375289305743593679210923522436702649941226292739480522337106088802318113443278654507648646428332848478666122239916492294032031172855800318353364246280260349159134714152106888666571150026170155134676000702807932408229996828428976449965528038579910988694584534104074132682147123804814546454677892624316740211465730595784701082144246956721312621647608781671223639090992422422630272710143322939860650538869527364874161805246678229462020667499200631083795883681045981706363226807852791659664083145987155912729842214386405955751692612202306219515297560926202416844594136724322702036737508075544387590292728602145455954333801480742072903459947623366645288743634493999458367548043825635622624954918697263708683698076860582602730752151525347763153442867320193842206759578398288013254660303754534792246861051717443164140042128359902766221485370725196397816448204408823376296274017847367145617486050030605376600182373340747919652125380257945888737504067216045167245918921868473513449531018839122405774415015287700572957297031229425656550303050669282092196985622472234482848984804053316530156648691817654744919979788253019829575922870139400346501533060450632172534733317995875821031885445470866433360673990003071516470974602703119222942408173104089829296773107605225721966959903357497746262672254038146211183890809870279014276978593690560531160471778569682356686603036292045702252218354362995965518795284351303382289293759320739489165658884876830817325611354918486698280660730307160310994520906434943254648467970764067092294889128974981489098172565623984834272990883760753881456948777945552613125109606522203594684528630815887541475778267671296106983414218058377556225690840825996405784488513155450658954416818194995455887619385864999368414182573472354390648418049339587223599630591133073286818361569609263857839401893609465999272816611435194540284224034070069244549508907820627167064355906274990743023259530377985408154672716610265825119517807881728897050075311293894896931294915079717703681632504074350694644162725622478722730991242680439461573926197591918380123352234268056424019550769914864237021815751716926003470215441695079509742435773354534714535118896757810179027268782290993589495292197166444130047756807478330172874722870076008675665318044366427397163324496764432685936932289477367227304750077010532651897345485931427605442579836572971060852344772148767561175672186070957455922035106554353280107002642174825512651860183230509807026343109249557333479170049004288831229556248149817386102852114733041149582141819938034812576072077623862120661950059136882994222435891912145304702902823125782103973057992484017458928366971206620871917673020650877220963806988571736572784579130460354151548712172681156551704833804476476751513776943018804769480835868296414892845914911319266789051061624917973549188582931963546327796193388102383022348546148402165846147712199998037063325492258709948028473420412958362061974267644311739127475559384854927554354402420417534106879060316024246419526393094276236276332873328711000931454064468252778833536406192933770766568365180309304376527920109717279729313259445176642560481003083699190885349229650133642293805052784623470961326116272041524534804333465643967213718780910646799646085003190240110580745404556989537697786075953836898398201323657599656755185434355781222001145131188377471664568129225425977900775611668954230084989975209401475681633475008760130958796427029005303205082819172462684851522836959804136079339941246460330572357888017619547686123957236919716671177598060323735023203278238615845480495072650641246472385509051556754247334375474711455211784350033433004464567790285638336202745761137175556674854698493385985093966670428152794620650616095998847047325617681839572751425502791511659415372223563701767769504522980055941635031564930615971274431373576011577457250128851504555212095468593485031322580796521050826237080672191017532643997700792134743998802498582523824139159231020094128941894365598352149861919377997119772098548525454339573761473882945862562985053357142237527048279985918088132093092424087409068540169128651957999898392735349038660705207343979578769344512286880230034735168530690604654740242557089353778092673514930415663170701695074535266556352630470637861151143320327803698617235353313153696641063190558060859495045121127725635704823289085908812722631144643862765292307790706217716148024037911598316366096627676389055783276401522494506707461767945144728905530745565754186017063180513822802484134454227172269125297554988491903763484570058553341632924918964751719868975255463595054213245318575893477651621003658161507604098044316362101238315833346895208535426342101541216688259585180025199856615542968902052620609909954227388005051690313475894582865985467896446485729386813602289330270930553648880310725931832149965603709982926380641873702286903749030595173071948987314000114479285242224777415451273409960028796072315116501784087290433647977636747179659334763488026773262560487185289401770670731515208000621140218467241472293602813462692826737931272574884060486680891133562569252718372858747236058047052529895050949140257827588488914917326176426873464848905785857645773138941284673308640698910886329249474159071290568638175661512194544435248506570105146809131021525436401696698313914561258496753850015099805481193527902443109545233471064022755325886331824068756401605292490393322584568846961677300160300553469198449314707507208491289285418721972560807282830802921946131622908281092358570074135329823854480613555650421715304713945998736391067205510175423023912619259428245883494545151650554830944938037830424585371515977233214866186565413253793475600505224394678558474428837647204248828798539143560766039773613682652756414299838520212305435537317058549902837236870744063704101971777745557088762343802541420500992829373370252827555047896912951893619955054537827873538755401096688944328172573125138232440831164085018030907162667416917155099031993339102904188858123868884410451050569376143734765753451903719021527375943203658531779337016166840727332267178992868726385004681647611017744048428587691434451904358993836285122251733639528506082978738215740654904504969847985094348495756550422666216945048344427765318569134262185047026458775800392938411368069014533872781824177837514611895788339630397600732679211310776007447596000735766892389353680531667411309172436833509583590270497378150560973025300341219683663061793802609307889763216019550436895601598251539735849119971609217821152576173235137770280558964759292434836452348814372592999453832428803494787233627984338130349085862149779270197986826629600859925563788270023829560797567146051169407118437308309125747452030764101924190246344352599117129891435326557011936912099968600968600038516632772239286449666390031138058272530206799897393715166503946539392774633359717457189041066430002357301665494555339484173983390468745760352025342110584896191979299779723416379357709932133315429288758338797838501951727425474257517709309324343635576914893854490382090622823871839814909161490088091973819454068734444461169011641707207595066548859971811544584662920922483981857879175211278811017534120440731689088978587627460201586099609876521351610570617562985751867404522719136150638888082273618316012193517911398712925556053541927219114648350929108587580303618593013360202874328272227444566377969705510366405645417699604189572424163554207598019628120980303381963559779436953077200627447998323114351707994713558004989498570886871408106126143345615496239910936854048024816420582133625837271360098039026490022005911100485884019548131513420298702770533440568984526113033775883129326124477260033460972084462392378000387551983263416615742412828335357111219974473472568530376237632672763085116772948988474486695697254510233578323855973958934811001700532304079825026343398019658031041351323321083228568054947729935240118265319400878788022870874963540066379337539074709707933344536496737595562013625603253701398033112247004075411030921952905636495361495140291877608229537561723486370397032108180357046616295626188180971783591979531764358335569594638040407880813883359769654439312854898150051250355452442875785463686334530762962991749242824653465085963464312879913539143752357627856543362566919048395044355939472844999737562569136842799002620490952159849738754798263922199312388797469373789611396953877876975093502659661123810254000321663612456564917984005753604235056339311394172421172949453517103439258839784019838574177295898862787600677169482817356507894336607387038065292125297093862879680949387878220687803453921095008909247291088380397287866064866020950477868736204886038819875201506471532937924532689236410992259790577159808792783858838184410382544044834529058498656483858584764468976873190832293593596476126459503733587812687326674648978435919018850005897763462788572617225503044254195442602209567768263351832258428496418959258050922712273988535816143123238490136310716750856973246562242227442261797964211790316145562536394209546839247037067366439199716665643681137520179946657293628885203470130187389107557832177449123569250416079256797808215127225253891274386006439594496450573503643757194198071605840416441964050553543673095482752404727799117713009425882639675645375749285264679521635312911324615490510310629595718611183517701855187589558548368137714510207490930894197754445748646280160814439246149753277929690721480461639082076615343409135124636134090946967069683154015452027718637666275763175613960247816982748946896595648561944425112302230565907635915974949066043400100696473489719332754557306855665532781591404405508738166514225358088674233373351339089817594115674803371576820332710454350107187480259006860394301227224067901421304396884715555197995654992270402475856399219479696132210928068457525410634065570136609158988919704313207320018805881836643583947048860146044074287947393249440879949475663569230357664523579794001258938739567136555658928215745100766378889334025227612849811405175190746835452132430679269692297566754397522011894199007622798304386536696450143454041742016144327868104651134093276697943552803416351659430049501919410392500742280337878412517016732653339507362891873572199841148293072262817781640087836811940136864178319860963957868611470267139858495948967407836669475799609347999896818382975743946095202711838087010923543089661061002943635848727004698554048417783585460381315293972417719521915314609871534642396954411838648800772873360390752838393360690022145182278755550805409818987949240505867945459264385645684315609864960003932749693920868084682215349311689756520850372851396934510151699049514922946350552191499295456102679951755325538351915471948839665471146589937945228332790391454999859330473398094793052030973612030258587202676551149264773798324668407176229657821884149475726191347513525588535788484002845968013700317091357210264853455942498628291450428427240366042575994313686191568669379925081351918819765413499879372391455565914676280096301973281710230284396025126853336308044181881432228776669408704150881271248581849730834603229712400348668284614282209947350379730195025384643064437019237652906099561828696941364653909556480652808138456888535425062507934041089431954101862609809721915004320982694343165434287470215827490196837620680983797053341125846837167557278180268272203908907353524397078570056048083967748691746056347117542172450078675904696441889375326461358423568754318781668186553406045741659135223484004392797093442019942111867745340685527081193491066962104053934112203219108112272197522034098419212110133543450331026602686352758208098262856046948883210960682540962109061403817096921750991710422240542894675111935256197976019015357713464052086489498975342151133182734008164842217462557350356759434776133089129872195074172573177324193484912385410214503406183194580709768081391266564248162672610249200231410593418279155954789259944927252484652129998185088352940747563601923259488571214273057697470095177908048131749527439572152705496343210666738971406831993517086387518249099716333504820516492074993028474551173898327392168688450854039665991695545549004790284614585610389705757873826336666592658347898319215724315134316373541874020698562923495928312212485686739619492057801712216424368592090038381772050996722869949373622155009514716838682124433237074567760780740872826100069190807479328447468693784725063317173241461499881393713377526072736295648131314709736883300780180490224158063275349689161637756470530384000492074431156298497048603573139583106755082111471829837071225695826893715177872903582289044608896023243129701214923810187751219463887972102656834839303565167186077543181327843645267507906471636717595696641349490887447300646626387620747023752147189846202313208067935810251821758707386509670067720244917982804001905112254703089900758363821071934138681195393239784443843357560488544057648787078287991920496454230243109111782783305744051369845804627373624317449980329638848018941403594219583978504926848118909790849968320863565473715230797544295248730417991772261832942328364756216227039756868235705744985160438225931651565937865592915443305664208770672107016801897601755577854353126206133516475469959592931725283672060420174227446378084454386882479177519859676642497905364758627674330884213738708480290995644593236565387732055400870317968484348204218771400045412720890219791059807522507242567634224552481651631088142312168740626673706329087050823212601660083721806361901129713289388697399970095415471612122875845828616631943549903195953936625765739862988999047552386705555943768455516671233906503156858715887306187892957516682616576631411405432194285423097886824316130636599143196483717985235975145856811973856838405448229181603348776930816686826503055614500227567025454614927614029779621450628570907674220461670982310664206599777282975968980088760760346730613097780080194228504260956173032443603714929405613540699441053713173261029263345809060937473239175942966494463504711531130118166072241667027795546554637751211605460856994085812239498153006994773226920668190733814645212408992995679356814167692459117842068096457222109318601914189600665672228378282752323423589754769707495553020040071509419948510980449306993998031284566102714943384182498364467928642002977509118375874070110204507567507800785577872653042701010669489765877015224170984556404286013918474486445624329922518514117121270588843421185541353154582008716623544262052145704857937261322255450925595800195670318350219021520325669918356159742397393238109568231136633626143774079925075980536524741034032620343872757940729427630779118368659460290317234373418099529603871580541983308713969072908468577809893901577517759036474029591760982121842873550220919597289353565714676102335213453446292676460181442117633346651311593863026811526995941666686431520891294069794841966336103824558403676686533051705811464021083064911204239297306879759560831994955497972453091163306710016199874958808105354567176271333713424075521046889672023997912204357625197090653311427126876912883333213211804499765457386901783724194066659516882743814509818778217601109511114179323869728203262205761234173302898066146073551295766401104418857465860358094164607328015378458315004831506600494805171491782569948168534581387789595820329129661559990037355600145897079172695418393389661953797636631776328574474020989632935934248367962211743824355200151436152103185976655765693283746311976505127024526410615875765999566832369159617550983601347392887311643922883358778746243098984696963106896328568056726005124291555920070187420827833381298278629125885677161564794109795270585506869081181344225580766119778468157073238499744289655534506428829183286821245236779809859548340477219477788409334514544362451923682039920091453795713381880608545045529862010558340144568027233127233707671652506590906851201398637446439384409895857511429007088322484664734585181031450618350662341677167223280682996589271570826940371522095549555101404627842975700063691619848249628428248119201288296881286829585242994087924144697308379775447429823458015482728212415556583211809807440449091832160081433574810577691048424161765077378419883807412429398564270619401064444546930027592045362775872278188638839992357138137842999600463575920829742655956726235968230879852278388059364718387925960235514575800002642143439507415463143810717522985088025056402656908652762532964081600432321498202648248909944939432859504929178776502995626548451525993897988323830845002477233774320536040089758130481275097307080964760381503019430017439847187586055519526734291960945210293957769723742323680669357706767157362734821064784267010335597182073714814809103789282949879711684315499605465745126330011774079002838079591477588848746571272080468252423775638428794242311386262732234951820353739155103238342891479451722717324990400422182051217485096273777297026578931922413107016819134739334025019804370317153305780276883153607107335632849228554795486951107257321166223984762383643468203264262085791645277311170995848640269513012243503002617371511253098490200526513899659290884791009468842031989388550353443790115456815308310393579545625145629250386289950941053470969501797329020591717219392215227589330431224072466645111848387177100129453614990327674154336242899423858191922597462735525449386037585689249457083134698938263213227115514609970103156962575088417425395697782121125603716652508607536192769033459718942769601161029529119177636486677726158706631409099649037224442883863479304557516958336973044713734234027740830921631579952256093986822185791383162324774041490420313637730598930132532450555334768562356978224859025841935224041155309967534576577621404008721545608672039294160378953436681128834901302912383922580742643011234949391904582814477375977668842396285499086888349650839865381677165208591401712160239486015022057144025919919131473458361968510291296202508574356370981749729716577280693227138502522951584257147114422319522316872866306767229969230706417280388793067638657636910049754102265578248980966025302409555760411730915303151079353165420843675298811813768996068860033424550297471963144778579671992941116466241116292338945656033454287654077870022528269747016503838519670849123296597642847638674513279005566796898278673065457435468912470154062902138804128154393512629717019827714036844149316008920434834469220730834035512104450453223947196617094805358624327647253805939014703615643995723581393684203943939619190891602230259809483231187686828346683688474502105778870504815846174015329196998605060453216552378323676624228224612264599300292634072633528757794594770658720674358450601377829249487848796173323434229765191744632920300534545365543983155570018457589635951131498764509877986214809646994341406959565962293266902946030449893842867598174668255206527144951350363079986416575724961044010605127713007012165142957960630369934596435284969440482573268264813088265052012531957879196686808047951903731134500260481803311152795928947867598463859787013525856497828418313159215499307241824186663347455379199619650099684908912393297854636084011820579289464543607123103299925525251895828586480399439949091957733040236736288846291241810724895830834656562706661689474631787205466522986339232802176848397990237973976856179319426832204835036099634072618241107166723401639005161084802839515481599746545056861431995505101128563025907087451852180009433506796376826232611394571171274738525244714095571925703306917428394880969236381495645308751578380872843006971967261212437842757229699951878811398758362162868393516031139196195358192936651183118492555734665809558299631804475519535623695496115991910816267293671379317547495371017810443082031064338314503824654757032539019706648835368493331319444971031359774051617115405207035592653949075897464374958006318341299110264071418220872441673912474568794116577395628537852600502531026133513631148764935960017091297525619996855666896677173556467818459275806217741481460356735933718301982237276651163312262756579811831878582710397671680137681693120300253609808311141738615940845514068146588304355300408432902675910697933312116783995718435769711345272729082739997820313887402613538144264453133500777925441464400035676078679285156790690599491981442668932671211066164040759334312109616168727954747757776021267350179794894748454374551484196609792031994281243528721113341973107954995359800168736365594513558357293251436913454118524637035376145483260201693904370620153311091496763842675456171719094940821593357058875314337529723751063856292997167943436376578436617064300657305869434299449715814250060445300513174245906571531192284361971322752596621804698022489436265025278737611222533786396592311634384443842775446605915743428515541979951869496830770271131497795706386759701691226995400145396753360565201290339317591372116479435508321137135825432642988524968186042393495059680228379228162253860189294278586296307166516800443105114102457077383151636458527199733594931761151449755054634687885632668016318646635321956561564060031479577905886664221904023600047889782107115617282654611176892771707980238859203385372415032694930836051816380725479368779903538568510255154989774050663932307397766316688698078940518425370645157243299743226357446398699437019457694010308464432027258555227584200382349912000862054566386263692516842479090966337565439415678747501901602816755162727917395424059340290472718363630098774077051231154167291679447671098649129272672501509174204536944474550048317077213079041757948392749973876177150880006972612121665102293656252249104226634852698834281936408325521354241936036750866950545185252668973699709240899404915972613239772156986185709989971344698255103904504955116029425632686336756195924370804410256481843506541832537126394930731850883792725313290778033369856393248775073976916898856120900853104688095727635160126787272058772006081044717556651271462634447793383846110317421711253134788036211220145512398886919024184742483055458799335781703338949597332377848723510356332899128165851857733273558655080723087632882288815856808002298437859559778740048414465172352611065201548525330208680416489383363161373946389671033280070725036783632457198551787653797380993230510219335092688390979321766862260360227062942895439148941463914647513008508530280395995926303297910502973702540851188643735352966941002902420035191954547046299714017787193746459787101795855516192675743762289909413909601988539391512769823323457562008498252608102193303654508756045894045804829765857926336627805672366299660928771365741956715551399391707239231422665326189604709156663064170878806867631452086520248222661934358896501332546009796468227877543549971265247055406485943247101202680325373293244951370714447011586833894296321815547159368018070304068195723908094692714471539273780991420154856098037093220287305107030113579503456736587460932940962891096051188426638768782978941904505597457930817461910365330147379189593365650579104460591089795721545130367995199216202767695159223572043785101910062412797105659241883983234759695900989551705175809290320972487409148157694788204282013191840528183379084532334482878277838267870805097099362589933654450386230642285584791392034190899968858347433909663271223094417361113513522071292604897217086019442278609183850678697354754245981621100130461797840048176216633811101338009320292149302366741424060247266079347246547901152270712596285854077581518112288534908390910101660969256244487776570602283778142602276938290841356833495369025983501753502671287890149891944253473991703227367125350694357690862296560334753315773364107433263715125243666746574028827602783681093876371002455092556070768610244307950734311850937075396926302977454455882200091006990692111991394085174540979951615740239727670407054927423521420386038301990497920826193682427957576957778959847824197757512934748483259263249323689482527862273387375749415884099324191358557903323263708265234998480952818406557866873080613480121949563656822188268222031966513675067635555474507382213024063663657256512731672253629358758978064526985681255204015748037772370299309105889295280997777532642316973167296232444495608675518611591694432711547655580375001355703878755405815031678337650605572204693160880991061764666320306863868900150026217986149036705584133936506739311064915009363338900429219792708497369115964917796414526340469117845513851784454872251111629956872784849936527204555863944528108975989111262320871861298082898099149461118471472184528177140146317843881406700338907335143318019671093312158012115307937122905741195318818259273998750195625051736897676808972736369595572246863869126077042805436431216040281275895999096674848897809464839889900650232873772816924977584762661474575252097214762305110618423832238718528723530470391789262600110579324308176995848340651630276646440684816848636690526035624097929834741676640380904820459514218514012223695812176021408261885839785889189876373288595914066211289615259693750775069338957944595490996711509041222139073870021371782199140117900371125235045973338313743989303125552592464142675106196478533775675000497305946915427963209487934385980738723923834906377342442645532763162789835872633644441898184297502449565160271387427664755902086660934196716314036058592126095004541579340611107380564616860379637789887044543942279622736468436814608194320181351490509620188695685351448327016383671038011377653301525924047720667476229994506557411425984998502383847823481537576069938289772083022917377068480834503585323341118407455834809669563247268028842435866935752947780371185535517935920436252115162469142512953978420249111973020908455167144212615194376682678150849191575547694006232742163924045671163249609011505864520299120395848066947289209259636742662383859331205764512454225306809569724460361115775561486161491304206707093889321772162802972501158835370282476454463751860939620547226096420041728494293009901310695483557048193225826418884774290548411533809727690367469829280056270776172274180206324955955578415594574516496414273802338647953225758818537403120567895354595187717073743181630562982444012451257655031494154343317217658450586360849918851330001057294517815050125590423081756233447306974197510125504311604562248017802562426808120134800183935280290330907603557733285530080141584948858409268108542052795304071264664144703673564476576251190589315772051785538806105057438867617926490720857490393528241716016275042240098126356292276944253291701536740536016334154253272510261581484934383764857613842883424754729235985694594678070555198384329274609309795153841768189698174043959286531102687332365107986179993575436027846089128936982245962442178094621942480405631585889238568428136721935337110557251785587621157028834194629341795561734951319454050249123776345081862099143758460904032699939048365454399207256413852984871462632205312654616985396136544639504607118750844537611620746176372965059501047253635351101552545025720009012251354446688489725566532532340696559998683767508267954380901899608599686838159776056706577026253055802407799536980628966405163575651879228643131572919600037313931290994831046269856240594404673793234508603240571075571446783692843235594804557987790417101585824146510210698466042354698553648022224256312456137633129654910344089374458068267171991538253542189693785352103033464753276461424449078051231679307771414520627480235352422298668477359065018395956093697053435717851384169445209324115699211404286056485565069067864823086335690881357263268228435345835964911353696963193161589859837902538747634313136031629208142159605515614111607428032199784820003382735536815431770012045551028237513603960415189567494217817095433329777405055292033168613118133904107001127484559723250026517433906976894312585126131575748172567913401662863778880301457663613894589046517567696231287199204794906829059883334677522937176782533550493873669832254180249663199613052372512781854512116383406078739945154935105717638880813033966286959167818843663677321479698280609920897484474627860478983669753184095097271564882680805357597400246338111485760363372237182557447796009208971475907830820797007300443606599352470173771248540331639541771880544956120830430804950590149235434129861222381402263861803483186532077409748241511305081254948555503681778055651672512222256203704791665604451133879655453706871201495213011045286182798726751778834458578869886602879586097976290732632970675992848420499722640924202198126859777928266113468643602916170076375035949133067660552497091206126941757441002662382551782132353448105810190954912531303096549126927937034657072635293072939834293446147621863865967504235280738572344697078194603941909875567634222978913258768105777683232369229543699896897674552610523308761457038722880004786491784267885444682621604859932098805236714171206718656714768982157471082812826888473109107697560460755638746938967088813585158340948452206508255172907637334099601950528757112984183588506221975020213309467640642140796011161340121500711972335192195578602606347351287317393536590837106819965520448457271264947132843880484561851201241953145177491227902471013380857332511221766948053810655075709771906036718743446958100234715530719948666066377884523750499786785298793029187658558873929242244930647946648628120600170241984238059152740198623414414808134039924265675756777435274038577044986051874104671865674642642231405036029334898429455236933423280413353451625814195501641019892355512052919505472467006887921560352962499914356456119824542853273616509473989232673667701792706991437329194995523634869549516719262979650548531160468375370061209652167245649116128086449047275707321486767254370749971800946899101264954732863778349031407872190501865953461304871943802396936112540446840380053818434123622096633786060496893917676445579233749155822430218903833404384074388027305290837634898971484953739451357032845979241191211600781075666503517140771346311486910020790430116069984274899937390399410877351767888591021796431581755373475093789586507868560259327644160067702754886450357768428202135183360155831243395307787885878974684142461447120097115390937923621182602361437642974719105336668699566410129178218323748349606953000989370507693268883538027823880619326852496822572654947992069255005864508877805008015599074081817597041846286846225638966714313975866600978216712775677067607380688571242886655467114863325513126342794146253224430837254870182983577012876657624410603052521306685204436966580653663368098338034989133952427604982990334912454996395613951278927926283833270436539809291572107162027112579161611777295631606398101140531845260782663138293124076723341083514580524288832169759309912521110819101169847618186067647761929117773688074677534975398553723825123922291088751602775951980739098703833756075570980728461689687946861988877831550850614294197523251552213550699709207866849575405981911619435801632010772642845250241568843571546376956356644226259140265220463664032285032347202313582004729363403339646559093032862233910744597135578067096712875661696635370108549927160080529223981412363358749253842387683603529581418444432295896454168343172510780011314249262036730561575749015664456570923425038365793031381665646029389502372300181149565869936972076367282527274133107966776780890655926715873354052413025539696151871306343219158222140623687963972857649686851158454039478730725240930009777218647597274152045681204084702749243649921302781044026574488690297368191523264808479277317702958434084212206178674632594228611357947850447947167987916741881262113114151463447062307574721932090840817456614927021780539126451542860761276598099530520023244771270838639149997563896997529827042861104316040771556392396625289440401496091566841828351496158541865247090084622704246638085091259664430397329851000883978056043514603558044783716621125901773025844566367858184854664102369303652685267084800134552956460150317828412112325135131907235077000353804827951650985673281308141302926098556684697638277260976375275806109256420977070252343363154709038044315872291663687517646552924761909150851880339758736455858374154119785368060157456366621781970139745442797331290517607458886613954260224682432382175638868589902514392615799616328585935551125764095178287456670870155139048332076809348080840481478607769055512570081323191908089658696553131307813021657185503555464043767098421084579675308127634002030381714256036649482034306288383709946097092230160393784085923066665118268159002013588446141892399160398555819985057064839533779755128737572846736619428850850260515470887153720387931260375628761860975690001610723219996159976544364861888937769477609748277464476585050914539868826965904554455758845635946293026891393772077908660772774952732846264943203072927626207558067137234200086928297035582683261627804537354272805192454133339012338836029989404016250644726147232583374094951698946371276596311104693157486384117949557966920958039392426919985170444880679998794870651987356154183614648758123362858459600939016471329093390835645895504457108349102520401874227815890922477233134104348102233296217258763339709021196876006235615472268258685570185631789924432338080522505143195644552024139844254776246478138303322911307462304092800355777364973547393757701457945094894039723792019858173812516915761275605694682463888756414428109609420628545375249269300917951412176059423306584514718232062035547845739640451494842242795807819622487013185155102352097520347854520348263473887967607109509099632614435698434427644235303687835058707140936468065141402223303640127204365954891433290419022539329306029436053530629763635651412348108311457710504886420444871306149722852952568233678884367975153748891252640980329856930299792005164107218865195603810720300645664674174136765412855273090245397279235470913191812622276506653582599981420643864627243238160683665111628797708666049615942663970580059940191208527448389775837672258957444928570002583650649296174515009548307130726125432872848271227417064864165781020494023708952648826106596815610614973629794806707241069816110874768375475294128273957323296547236060863934989151649651722876763247917868286764435980616200725869197157643562484338710516414046054960852510579110317515583004040724944357480703538160030379053313005118262547432695415536785651270375345282080361154035273378128928643539527402771821590258391860449169256290938664476974822815393862739749307907662567494666902359755230904385483198006962599891363318218931439290199793432276900657224565223937200731695412470501540700670720149830724932291391239405887570813516376815636280260256797930325452946980250034426778077527111445715620174499359552196185587367813631232778210308914472377593066654259767246570683935610031983102512344422449518996840778473110878822331019068234250785681674712296707154005412938808364152261155352841356867059532128659041025818047766808942761463687167638757313495877633581979032389504027905796064573380955710208766878694071867516301642379885045494336701839816370274374166058697103900936851053394895157939701242896620413727907003459267815102044545892625739911415055958122348477238783802674939730489117544260738588590900617028764483129300825298937365829451147743081525631697111231243217287913225894281778870932693769813646726374315664611732379218046197443768221633499950931521168132400899301558308006143561931794046426727770218730662534380293115328610615333491229447955555925593875783676712809763298227832343173863212991761388465643626422598806447401017763511904959793757488298001392999696602599623542924597453846684949189851058744119181589703777511005839371936812195982783605764098740789169037895616394478473835340142746603743775396629578908883838177816424406133210087501503328190971708121223386940734633655593752334603567006578730269002312640474233722532749445503366100503282726758506538838841221647679398506635151785549708498416028462791212294948197661529573267158187578823069100833818285299027638065861825071522500618649902317393962508768544170480700033311550191251195797744514343766967926140354043497662729234950226264254270193761220851867355510168022096805662024891266454999756716712008977823175727701783809928762274538589413900293068100424792020418675530142518096424601098828905284205433405046430725044281393901426306561866598172581714550605240050723848707878327816362101501566044652092455273990067182591301183978152578770548168300770846747247609629064631776633598463578126188909128359655963389563143233664399360128785210981370515503030706173899198855984798702016421285989941659247431637375494043331468791036012591522027374655027268269358723044065828607940688230856719322074863096147991203967114259200217585171199492504583578548261348065049633583224765995414246756512828419070475184762678056685573862196690462976245625281402035285656844995413248112382028223901660707547538404112746435262660559342674128025836621128510196747568258355123079982274501638486542209667923363462116388467490281513262751561776041666824895460080058709292398301776322034313823333889488372888244940981961073142924206677468825931927345045634550471420877599285447022150938765715305848278853681252938291142370634276590955415756055501457952229514040246640395709315161939390092669757030710855821144242820359430495944087520360227636558784260273400706174941006074506302624124919100816432765986114015040051649752398812412081661657577457841158285009551113054528238831815020588663718140771129936677231787080501142860755197937515681340477037937534893831608398350630043712826299443848189432097330567875067295092400414171122891724136697854514256468938840356457445529488393036360736426438063595301019003366802143243550763810841855756927936638213198180394668499864146495362000628824836372557360802608079599271046256454328963923692945898143099780391897109809614819555649898819233086545176492538578240965504457324777003807187431225691340554439505138851785289150608094772385958010476857769557695032778862196057894881584988300961273626008906425184967635846351286387544879699296808570096039351239990467172385868143644332701725599478831623098555800738098889908496078747784684974305416945891973412138767319648517686409670805838139203519972552235461143703408493567882487960686552515805493619762848370295804059587960076113039985274094728916445683423691087933891974022819297447808505864977736676643667665812382973774393209325689338724890765334176592903957333207427769117075629697792131873596741972833574300150675241717456656053384759369033944362385963568928554781906334823659860502396963347720647893402407847374775589581848498800713944154319520467846873805979097790847919371305303397706468003183368766825065621120012517055392618094283675589157983339739154097437899131763786951997398786785708905562601848135327178290486590535190465560065253760693721331485376528752477602703398172148949136150274453465796556952780959704392447793949017846947461993492346181834985648680244228592880402003680711753515624098089821479786696704308320207763466500776044877446957905817153862951337669173604066842864091223595951215786880968725318613654814835384298126313263454350574196629615520528165974109684231911520843967145234590550609458874914434581050084573402707699688771308757549742886165727322724823107374397285440940156775548594870658020314576659620240321422109737160174063331235234184039433643053146839864622409270165121562162976557572463266115976926453780257466622945903434432457757207940102055267541973805855319659848134398607799160261836754101157810922231721314380628119500162912073911114527495404540292009492914532669421667781954214621074440524584547108578641264114496150853184187362384209997930928525923929523114779336396970288578945705862892655080863847829152427895696720788762715303009515145166185788759616127063482923466158186791229374817935319581755785588006175743247967947261904022849848363000772347205839167153917779553240279594067196984341544730775956100183417366496941430930585526888641538457717446925681436775997932885034215103800637975470340172341767509131148234881463518806769958829052987399895017286776089859454083358133722474924733169514350766544934425870811213606508040207956113389696133617841894016146696563210979679078015477165104927341297943524255052410782997133443194890777186515782188481639517631133399314105698006790876481187003741524711952049945890536151146391340157778072365728461334493141776242834544010670699347823178217030257997842700957600296985497739560928224301448986669322634952451965133310735633589650806587529421207240878197037493332240338231398957009631847879132393598934624314803548927721706812246125665689181449902088681601834256725493411659995183977331768676131555449355485481584428173041928831127451627152909246083264969152879424924055301388911374508168237715160287720884587754384266273344870853026774018507808681090966509431572649997505491983828493669317652608562859048685967185493064638572839933270110355382227830879032292460631431015603347268308206856092168703112377765982215887000127126927605772560468189563660787543530719918583000291687343905269978836225771900988623122045934330099008264931415883895905922088850508061941163376288845824086154313452736060868045317396143505794194309155405711528716399358244479934169871617585067124346164476648794085941681972383555335597049792329940865163127258073200732501521986829076857170831962836057931254258923090562614203065062591105420227296700079127011538461229149740235959425873419647252655994550249890027121574042433219395902949493971574022600744225964249486373119896966944439842210338130230861459910301025428054950044284595422569554560323150497393492995140448759781478628592468938797988794831606797116707783319551991046108211402887662840302055560016851538438181239343920836479855839523212742013514557808451359312440747393842966856223503821239478074082747495566651385012146237209820468430164900811334082229094262186116138301729902674554312129771900081906491605348128842184691679186735764105855985105591107803971555914395415120411805208114118516349841694436517992198656590168444099379904428982498977867024316603160500726458351066975990276293630466362101343904527083502988002158916136600385130883383180613839213727503978417997584174971178099664700404389952004911347982702332563620497627266902825040245301022732888292000190280376800630958939179748822826329044367937392094897006522905649840447759835920333378472987041748780266168204826096761257380813012047715561388166769268628071123377757308385961785022315528444580730367645278205406352081430664144560059934428778905960396585227931159905158444531112391490030087244644584425318265941418782840863524730107090797705285842021265651599406106543006935295716417443819836227742919954630415948295177009055188551139928836823261348980591265361914289724460184304078074032183093998509397501743300860578325460592317529580559739713238129652247315397365247483169528293740986300534083406032682855230522013116256249268125802019561245228318570840582137626302170599072957031851763690588577692625739768160154383276598509353925446484708787939078261215815600532223794046743715342021038324399840830924685404330634879857619782791351492825646757803331208426373826807775597790483304444041785453067347498394454267639825953894773915391098777407880880947073342078598181361192344879031404302156885498077021237324415321863870041945214340217201741900586437055704807420780085999184877946225795596744066975860768499248564933204136473167402129022122059024881691683566165014794016820211679289137927723619425035398094213499212022293009004363914163608184756802153876037594450108535252661879621668268410949825346912389812045900088824812731807130926766750124158017975415356066772756240079672434249946689945398765954777384603597836690590821230361660581791039967429202753445273076101263854643574723259162729232384595071402241040108908265852373025869516297484159285760358109333585600389813898204895835367050932389358442502909456682144288045398247221964297305781740983342890172475997257322731751117513335270793166468438332965642356450897222280815147135526383037725089321350076910920347471774555544994474672187734476594645499885729557594575779706177669044736993527798891687568067142445874223035084174008051115476886997240615160785227215865337328018366665412120870526715363480510986448117207029693790424801828730143431404972793535711219592691721258417206515959097957883568195564989627788392796780109627778167840416835490432717308446812035860986001171749702017323054383015753090187071759588751814098481278248186764757374239166540910673034836402168385671405657655906054493945244197815791443183917666249243969847667301503610275609943056235998232122081251474184348549733102710816218120269827002542037440003787865096801973932348824401560803786634485160487168209212461030362729446457305672329632659046883973302900361421358323784703659588672248518331558228662643022354518099462114506980652759179545251211378257956593509394062704805038394496144508614127844127336116000028969435767184601680093263815733583667990736459099990334839599589052156184691525651604334812355874127653000198612732805350020219325934005057457570965429381053082644207191254053706871950363611544023846642242689874448758245726877914274176199647689449805521403020900207979914562679011555941631633601638798542359137714061872177668406263246774033620585674027955132529133319649144342967154436177111669333041853506581459616839049395529254009360689034093982959798290888672008024319701871953233952000134364177029148521194994387348891779811016563968166454527664933281233686615863414793348401831666626204156683695423725432209807576567170653206019603521766558955011518893024328913605429337431322956970429487910034386496083550623520102148420864681565352868172555281473328908167393561105962168126603443793697471855993655679911802006542620834381423956964652582687414554771778989253471849771218957778917799100074387277035805982508129813293228951452396975364820292549056490907532379212799742847740473803383703633827096206162080517464938786604072248129135546332274693887748884060054641019822129063744008000400879251704558037238375461075285904706159828075586826724588843324197699024674997697234340321357477400280189641050175725137462802608277445063575156735335668158284586450588899753556264720737241641310860261947661223366243537693452934296519420613598519930794416964324524136419541022784286704668212232026668160713510248578586942740875293992381827033033338901333369120587230736554523134577422431389244994166841920282378983105560349858154884543865727591307906870577272223763280073147747202914877610676432316068561740436535646796455864817775619423244424918512321519659177286176951738381026740015220030156811778588467291103203280688662185998133057142569211972629254902640665748709813048339674235983251414249782340853478609014511640640133384286542695191659839138496103184125602435107093863902378723767067459072271826524786442026006081510650965990341871339474404341840287855389643437483327075352191875590443706059186839254132221230732785042623211897417636959957746747774329536279340525127584275789612513103552404838086444894902050947155636047648475418598313792259147271474092185246428640393078231814339454120837637087246081360181383985526953941238194447763672677514391716526787818735350346303661861899555263143120378693670240274177622819908917799214098082238548871358595137317274821372950617268738819391880149502976458371542824407144719782191041313137961779418880009000172721274917384195439670307748444849404042722717985142802813756983885289572829350345747836498838446279977448931035638784669230075010341762641487558969631021975920831161415324758644382640521899795237432336055904668170436495139690933305679324235771438970722852435967246666242201679894395797963857635018674624733925610218415778185864612241328986430730644156763459075925458938108163190262573540229626024329832456603621975905903953710306617915733256406301513520232576787757735638447834037042980431182603070064139001559278023957680825093326345002017743786361520643284341335289545481828827313262484155618767822905016168884734702457397496207199992974562674656969289255944273806734282628171424624993572430639547621299106771108438088775983010785039037100411517993005743924056670184239371018710637101601849721663860560010783526682176333550302469244274856183146682829113779959038562107093822950161663944011071129572331192759583200960012616785261834282466047528330409659097578346232569965880729995608332822776809767039995661247887364589006169879710096447270176788384337234884170697086717896564513880496352325627587775038890003253077147857845997715630428929505797352952645956148927981620198203275539203737605916467362856361994496074289322426901427640964848481335992076652425494323808701778886498482969485529287358271327280041538352826844062927954314387909373309388292684956858853602598155293531307888824860621078951702008101546052178174260691072211361913650754425903799114151178606708472240688457667308370858284398288457611859155043431774719297902524099070959627632379226151198479684781848891631263279602228025177186443205628822645552460723214964848048339213830154627458061580802446905410181037218292924037952170520453268457345816810112846564142122632376102408050617974010303311283993831469238429707638077696878498157084919219550053987901492436075339051142319467523362487626503734787279169301761547738072607400197025423902159384315229967988223315456220270657143899783295424956259701493540894188817539727795730385696336443045943813930949837989753545431677655929165442938695477422098811770134708971215940187485414178931945010275941154473305772008966874219917856392228803462953345623340435768433050077611585808123888206774661762265969227979859197491948100221111172712743815692660582973727896480969033345567250554541988304745663734667775037568607104166236557298333955767711366755030330531409561557982760321942329243434343218854403467316228169555886556818441236749088860359611631740920515501087654988812022204668936989952895635298687345071365127447628327001247406537874007923029754161386536097193812892738926721497764094140191497580774201479688466098186541601754853180761698680155150156736232267129888417861689780817580197646817713813267078132585091789398181113053912742967206298461790151924816160593614993780758824524783215946448754452731438213925206895143875087682615756629430038910949524562080305488782872848854194407372616087841910985249941803619825068546314823591216502816135389906875980593480164633459551932568843093042487030932072515001909278083268079354818541943348304830400792464178810323769014683205337853745475721227945835807517534666844272411936204973945716704661356275305257771458208547019963245677783772798482186597369997187365585468574156762583111227824341164359729131764749068325821130860279323266613521570291015717644849906534518526484007814358865811876438141347669261748334466670527974025245015076890351441037044841725264857855089873801568093653913644903734013153515192703308821873460454403125780799781962801766040622658039394175268655041141971128989477894439883234024942218540858871413810891929631808234799051730238034286493983193629126451193502523304867140995453533221781464423505782952963685033438440928486876781045124224719245264897060316810134664746277497628539589704174665142004094625462671429904136357450669186597235112584471909266785477467300480348046329521783148829233145168458001377733455357625808931279151063464070437738348547024146048004705735917805192352868260765893988428665820436015491700560677523696547061449060363173443578453865977536270243620426827400759254108192158593317584290787945962556926035556194518011731853394060113229202902762445416703547141079321731294862417332166131947267661169671771051500016283353127024305095517898147278936020622955234775199991571398279984365834055568862119299408139496322527402548937585088284247477516037517400523196495451554323116460269789424252151154716461802213551579842415914595862074139216313924051746477427953492370115419452749694244628415966208632196589451728061417983051362599416687621788702102711715510177317156674034434257528766605435908334900868421046632905100502258486134078616031728670355496266837745118833991171434615038192555071995065528601708305712111051688725499062508485401114874024972650497884202677880831724310920809317082017758166199363129860611474106942650615431391932071703602651244406081208254329349013452052275863068570860461329489922904851813985543285638597549485190610373962771752901661521992688405668259511230844294350301936602189327469876286936215564783457368116454415012358397880892439669249118853048118329859469310013833162880446981047659981998463372883140067630177212791843369169715833908544880828603654490185730496335537708086817645027261841783869442774311564044384646126684860985807122166255190014894887370939557508021273960227227314724066095565083397063665966428286676360885728962152406252473280635470694418867326197643177339102272082212833324284694293088743575433015134404535968586299481141413867978742327823119270213667865714717490721221579823799507264868795082562277177425815987701459319085335171360621648405026955116530570407645051556253721194175692834730012067296854055381953222745781863022236148962525203411569535888541473773082756245933812611255887502788167831756184861447660926960270711255659385887349087803080157656940742820376369915845324466595788318241046718715336405741986474654894077114540153220423111616302004173280355385227840440012366951315417834784050131631781044480300126139465610495114777128734169634909119741671824380533677767012007247829437590518804286201943776173344712231516552132914387003124497782040748467919013505011898029273858256068877814531740136802160063021239187378009907272663962857527687490410891821502874335563018580418018860348380547138753229081266521585437953532973928595516280662946733765166940166203712695947480402607889047768382094152752377179538322738406672367645254439108308489293119457668655372398816930680481184401757980118932783397238782823951928345046040959791716611068727253581328562946253749731240224810948393778758848374598444201835989594392543788657069354109896181697438586762871945260249741738356621279620947288072463859883264774312233683507757286665387905447550816135615283725436919720589798910046712361693025022003963454949687512436539439366044568556412280988447400679066928641550310883290223119364106803122598233812936704378209457850738802431645271319097529999371462832798933053139173582033348776231879095088517281502050388593559583159255370244566099225069813658454994706506987506148374040873347489062225974861907276257075955132705142089125068261236394522282969875086244788831774683104339709158217209782300842199873208425319547053130780088246809929150682659993001358892403539694455883884933168374721736276040542668945074371119765750253530869592851382795044892127890692129561909303389873067092376419061479808699763318737047921127314816791930878289230937870274531264758028398516036032810679881753886301772625274793194407410866990221306721016500915405703449856499413596082161334083010288564497911853146073362700727998462997133763912953772359718945231927651882073641090040089416953934430529879140697784835336167597831671271396026385718389234166757276439118999794008393020925452248154935694924633906407760797415569566395615606448602921221779347916960456445057798330794922377898422878130405434688288259181122056185808331703519164442705479585926431251350485471534299514852905883896748737928335170544124919569071926044849027281370396162444518309525518019139342788933172937108803143407161547530488092923018217428870778698183178483491960181378375956816490816526635135942853865712856067791233340821962492102959992325970897369553539645736371403321899760226967335887203415494998984119206615773695693896957050576393653915363882390915977831407711127871025255316820348769995418378979415348352425982368803105711045263218221304989277027534323475011402882447963004238802662170543497455984915054190175216242844572952673898019470131528012051910617448708457627191050811884509863371053968436915452847985915282164419859923187764991882641189228593278521321063085052766622689370570859635648366454373354678332790630663065227192383755128523374255551926090890164398073684381486849408698142200720020854130867828443773232466468974719565016736500621814329636782576009967475476791464404794975239948113950520004651253461965260386487813093939335274153419462396077447457968184922774466547212664217685076968830674277592867961523748530973987348744302018704549801042116070974960918341351374215657648146296361238570712209626363147262214904969138938467765335609229144302296045432138897696491096440594268936544350943616895267881833650851930305596037796440977931812757225930813067339366425715664964912700324690263467618041949147749711211503996088287676081142506173276294802885548475367220262848241029237577846613318445251926735938964288033771387275388666563217322326885849613631334789504484914624953668596350646403785151826718611045047547332137342162642269367366136181492138578747015850909744630687042802116796102132294112573062085335272876142844546020085280503517430761052315552264945690525518260582728562630566322843720753511349030165764318324301519655613198537157607990819194666410076324037210984531360759730958188938069651255413643353338135807000936375342764514152360395730471295827873359650533023787609237713941649159704276475289363755482314088340493566739473492939946339327836469054316944223659296474409380632125404269358947293180073038006389518494518807745638293258133103663074897861119943982500062959763751096491545519349746312732958170238239262393948678963266731773814305093563325218368833216753099729970931990585287455432871965067909392726447505482659776619427452343605323106103800962973910825601407587831589134210671603549147230518783675320350539165221165823127077783283033143964318099778169360801687476719285230162377095612644352675587702564484351883804684104022130233004990343762381627651454563835019591827637436087914278156878844746476032588407804685524325279026370600910802917670691904860004990936527945498769258854678650352842196162602141095123163538469866978818414494104779046527403104028263554642739598510447221623208376966063216591471237772404708776446681318535212006517548173503392513134545321293018216798922013397171943522530369537542800305096428170385697954491973888787219660384253576179695716763710848102104574103328276619068484429717169738248063182166354768398135810085777354181263440936638466821596708074882672223444130830412696764100153908833446440186949441011637188892750480325733769546854334321369114994194173846009025987119187142233477693648649087034877729752425681570149005020099979876415334946842947389267344484049885436442967411560507525130552451393549475808335083241933471243763077122214774166377445520238511517348281310289581940100004458303657159000375133862433034769701637893723502369446121422742826961745307547536999932943759264929989498214439558551833505614669799804751711766655578397463844666658835606365821410172931482361415224553489394423158921327705484580101214799164641068651792080307931835539409687365048913904067763546418444260137657021471424389451869528999392171253602074613778698762307727753693964313686254854348379636327425582537462093939667746160770352096398165520683358705014583399136875073403809540043471454219022305873386379189064169248456575756816858609043387790023268325469295201555033700858379995495778599810496769064625219289633892264788672902556237444963886269736122652926743945941997337450609367846446536663947932323924207263968165036713590328225170200261506385689332005945407369258250136614647546656249483805290520028617625835048468901415229987197127000372878277090523743433128048295558534386140087028927871004206688796762183916437147189841191317485260490127290729920395544507564859911367008931080633396393648539979386789680181421543622903962990806062361820102719696463414784818696262427807810573566512721839991913867063794787964877895532833706715527473667933783484812746378916819369814682881263841943227421710964579889913859151681727665164335769120225076837093858199756021072954410915524134865306668576248008563940339723365427230318867903729570226533763880366429381332835595483220713734703844464510843494007773032183161094131375978450539274935195340022677634700740447977582282135243311607986165339236004226495041407597337202360587573502078633628590075881125455049730186780108025370924271164341586104852389248296706657359999344406947508426116410413111650310156556910928979043417650480863571025851313872920171749754172410740858821639328294972678424614947110500522604115069178660038966118553844276656347093695485816278596037314280422205437518361756659753623262111861670291768791718517591038416897707084178109831241749472235728505480800242140592456951822265342112322158985260343042188789473444677236074584230841319683765263421910347617745562869864612511733812958420763525286966297286492072253138148480447542683198012837412052629550404787010028622806729522957719949902459682214483220503616492143604568656156373783574632305036658021697413855605499288473332535941658987685366762662473068884928027033018629241240634696622678243054287620164398579514707369932521161021003403595352407922559962791730447420325399485490311826542151085490566699230174524252049379716585030955800656773673996427405907252972725619396041923244819025057901766277893484946892106756618716610852027359098144689417133717344785854701954088986914732809365923592647353334030295234596352543038268206492650432941163198536473453192236368506078910187722380314653517309488461729122849966352018499216647852936980401035622037502980651038190835736747836276125327997131047456347266708488289886491699838126236364277595265093500459019176013820652598528969525522076445274679793620799864111441153722372197992125247676272955303066550113135235915862579301107827226318706847318478693475531114148261448959101201152123342088437354727383199460321982562513088923730950208669647886571467862721526707359016433460760554602356319177705140397197619133995809533161673307333156282462323970447521914184905403644915712145025209385748918746602051809987993266905251839025131103269805968080670637835397998077613896419594064455690932125621239442480858829798219476217717850547939890763551734959087675568737535442826258122328293864612428862650185089336999704573810798920537494951123954610532893296325471675686806201428385715167767668435506094829479711771402397582167708282247803788843908600697257402336559678401276597714474321376101900357244063783851128701419134288095960602896346809801883441013523362029989561708133435819123498896815701357268904051933576997895693219523944176962883277684046288420856568779438429325804386931083360524463169359274477236422643640047375278570138509151059758839561492348043860123584740423054458818084978845669554760556675386484949469669155582408471232952142905765245533587439889128026972405786886539257661414025835318247112030411223978702177086089350916650190652060533611816117552763907780067723824995045872655280692695085199385616116520732462300601990864312698553732190183089068990481130107516045292916304847050582437124142459932227442825072093019637885575888302297869830528636552970422173095014707962097797026056652161824882635055799859070551415235902333934473611780779219263535682822065111850160319459790005181385512135306172846586260333969090313261797218151262751145618426057547151873801421433377973028585578847033001051850710235796451735793143662130541728797310186630163866522288171965907412604582016391761697957009226634282433889605380954818420119431141725183553659585423971646920540828713173840541294946078158166275235026366568091466594010890399289968773533176759139105694498934176282924481417766086927187497227838206806858166903789127911751864603132197209445332126370713223103427245010168861288342867931861318642460775846089537877261321974428470661310695205502445772911531823796587842600056450216237330704308920603336028708112391432517500827939882231161322908290661024586206408309660947822332453377555160679258850678580196771720733010296113713550987546210437879247128098703795316907062289616692959533680737221794951622847322714768616751176049502039339235512064511072052422829023804756337688842978255367362431243058102752502591135445260887002283125295148338141134933331490751559436771379730818868122083834394676553855063801164535618735160201214140747099241641602491831444709876578712709209258604349924758288588269331697471167209768180439153521818399574255980874107209776096912838153027990765488963834756164230182202486503987737960039468217941860807605075412460470307162082800099854392659052879351880919011872449627551366862997819169820019859776823150417316504133639550525808050537005421673156961624986842349016892169654155715004253191883545327909288885941140907543385514229729386093252412454342903120763813484968218057375474909228737242477400726246166243647344072349055061902055906862270924151021355285162886930090704766844572464914972303534642348048144120941352574851170881499393828295355473651904775467747492949224270575747505674364337248495098065475981435920108008358039720188796928652352026460477837402942717771968572955318895832112004943275219522218769773246805923213588586255186015373341984638632840231789052902301064348255045125493262134483233217932956789662451580056161834117157937752731455633225760974104495101230706809866085150838559947640299238288956923658493307654589687676811763100002070434121516722464312241684087680869013788282941783946168412290550848334898684541713497251963621453550872936061615836840433516720426042456476487581315481103593473118936020841150210258138487985576823154551591245785468156049529230671929319143018741184211377978028283553804598523890690309257994642134690068821965727932578869988969076684507123164390442547816908031683060435026241175920193868746773885267205708870264490379631582988948532720888679289399416825184689045963260217015429484760303805151932025424241055168482480681915270855117469388789581254374337722566086269961572176212466709070946648892934268625854360377275438576364024156541181801291703583317800002472578796455722768609824176015866252080019969163173296438639079286919830401327442723746623443035846154517627500798661196047865603545786511835541484407015270498933825273437268754479078738312612876916863855856364429407215453320794288885422990435161686237120958227117768087425294679258472335352965446381831773195110233080056169043457627484122952688978633943003069342686674939405963939824922428919134433585294598749019729756732543985118820219865668597493658926334108017360245575583731529313684571072483231318729816692661863774524224006768471855137575352210207978904012420938923086107379478022083355223131663128535261269176063136937124314115267387428539321747528947349385010382104271830692767827479718939719597522736646057393325471951846567616819047936688786781455674246031016610437660972600000741875549580688627776687512303073342511854530991600992453567071576669664098490920830967019034640733916790878455930674101731835259903440370503761721969336630940021064782793006228709375134566748587807041907897282086663822254164032340055401618304491027141547062554322179506930834952055618003111918781664064428920331799644797401093065756941942078914740360961033530283377042969541124708625277583490572414046441818059063928709314466541511538205619886669881531552313003499472556251385350150878225871764018723361883136625175932361819607745213166509010908666621367572345219110650309625815569566929572768261979720982095697879818011189368105122672535712593734854953916604895392371259424363181981640469639641909799738761404850089269425269524627600123971551228550115076799958469018980017702429156601086172854726443138868697240283240467274566559035260930262366929803666228988376092895998590573951369206340943458664442907842409834387561269108447001968026421870168513891624362690055953654553519041891758145545949050717965863271754026403310408490306761534657240980424139853881155351682348806711441764775410899715119034542677604447658318185627300530167161454458812299937948510727601694722095951019194607097257482744147118040190200211447190946506915627095416424225975033586738646071262586321450413135423321455990505362297557927857611799605671371720196867608787234158546083939159427068498953434019822551706244996493211269069980150828408512683512078406848919587282138657836978418969035874881011769961209957380678433416659596661351020790494259346192519036892969584289062640755037604253742590044152880631611476524862060312159154579017318611848317533599407158767389795511279576480393624342043979768098994897977182434332619359110819580428664708003091971178205387178265969321454085488284408743190622216713512417573776003682385139216142336583066777941137811592726804667849718000649373945847537485834023889984732037501550329273766529892397285656962377809638571397056086132604566582544562260516628583402973843610596171652144595430166605855636422677490633601362691411099683900757583483372306989039257991478109714089949933164164557044131968459879031303140889270357822921809175340065181580296013639481852815135284299827645625545077104986443205725499013373315873721768096666353683711219903008007059754608592545494525143467276166495717584474194504243018299698650794089598426537983249124431695426518997755362054566426715105281046863441983914441150873231902595996450307898554877766876400763360622619206364005407596750792786050961927512285013513884640331344502244674326015014653233806835528443804570446176934305934390440768388104752325621044674495409405929216369481917270714543980845352737503807972035094056124223435808953861643727089571817088813135879883311743787599383827587494693434948328469563634599485902259450102151704467719949139446273297351565769409941348897496844098986608827838451378114896592037806874164887743802627774263645936011875685967438294182289567876207921328987054644892887299775010883001212534427104024360462414334854909174162054945152684464938530221780986659838761655503657142361477959760925923600993016367130222774229197399218389328739949753405148667154615798376557979793285339619957336111676961042632663666806595116983593948536821201850067598014888905402801774612265553453727600895286111685759466537789004538682606500523050519490995575421772410747879404445666368508005738240726907569418555765433343745391112188576614661847426200196467413007482941313192705075525717895055897721542765522013989399125471700996167271694401568545137290912150123774939756444663108956874806778872983285912121153867451559756080924860791471993583879123883628954497918244736297023742878231020136301022676337764979655488760552517719300504405279702711265103243152986355339668588509161726599341793530286508148026658626665433482152051943393158354153461326519441182548238441027877757679790366949523965327485415988524611430222917729462715473180136741926075200064320167429179173469911728547601253943332256760560612176572180406927076453296728091985737238046006599288427173919561104609661797481311629966324596975439770709124503704873600387924339508533390300918883187148289507053197785607537561897506511646473222352359057290288359498861988129417230512966504685215997786012480838770704008833626660931278486282557405972287564028693946058347586588611552709577698448220213089970139085990234388316811027302817863275071312740895863576764983345101630564022937076080741075279765411441722441263579835444716806565952313382541757889908333281358411924386855330811659949055099737151518344121051806891772580906834902810521917556013858694836590098147660014467929125302823429359561755313703326987705493939791265674726315979189497323226732203622807709307954119490766806351829773351920076530361528792931673051810125720803404288445019660392063108756460146026845989948230290139543370336456265059711877374788998488991205724530496679611417992303688782842175903758325637283576750169110379922318333218932662773725574500780043344404046607800883259556340055920074341578715384993073989064310026451536207237219321549073254165584908525000859416210984416420867352827744517352287898364096538025213839559648381251945053573771460332632642325693013786613832584276170946656044844174865616430291215916231863301823918058823323824639383862722603455486210479757406088543566174684420204759270192959582743492515647377305612661456896706573412504946400334991042115138907525476466489256577711256777254109296603336791452601407844272981438684234790016053138067157126953401561897541503587218515331114365657549673448968500139409098482940916424130477898452693631586079929555972252456079063376322643754521243664111413651962076771153761064696371891386452288158037334312879163104933538392855219670094876278513210354785747213534019301765249325399221194802769224883194257745125764856980457200466743037667632787250879226493829809567617877465037880746984786494768222763136695114814744172827094677020618318295698465378554710870895173670791944456097493237300970086669917065315899399107231262099665396071630754685264414975254211450184132438096354858787774671034802984379577104153180730594896174929425561025893575543485388761171145548472437042257420558425052635956703085089364860914043898995321698930711238584547763484862648504181277504029626978649308697373696925463439413079409465652287605581543947187314840842074284634575068552448828424526997005118234876225269375649073611792854794205275782395509956033957395079934449749632406452830943124556009687869217854240076192487843447965619309472045217744130410266604703051805915487832494740002810162484317625089609828763237639441821727219204340304754326666082684488462888668631552983426207210664970527834017093330476789285120421867031917411434268872821755327730876388685365461318391248468965498237058417827138369637398804625392312757451307746551059190462944512662987161213039281245201654087966874106417207691288408023079505923547266615726751465491066303672633273354973999863592486038380613596549612112505206957369856620719003207250752055652824022817595997985801442197429757003843262116607930966148206215762806722375505409557720178687201386995327575123864168013523780336853750085672917077477799619297641291222730949327241408755216424554893296976408470527524338508782137049460065378471866587327689269728704880074885287818232604563670146222678348759655254979901141229500118512564797640587213051582801274516331190703087547245352531807275131039767758919378375265008078388059634064823584795188256080810158831674975233875437659686962608467570023908881695267414800534455756208077061519173522239372642045288529009987305177679142763628604638456199607478405450674371183205052044783284767662194034870266629570110993709333708992088618006724392515957485145875104856544655308314023709041505037459782481341501048709953256278075581977779441344141770331759115559696489748915484753403677943746478457664037068783763279721958101434147578496326734239117468117207875479799280049988208326284763538775925421216323092577524060592758017037075985555562501263282318598797321947844665746558339662144005343199445674955676543550730713163179994502599638940734374658531626186513628360091841417997680961482998798029207516605520967951007706476948627797538076917941876869951308975225399560924580794384035051022663355160791663105837643584488833034697904405139419203036932035303204295911006536717162421696216993844234288290945931871667018663334354378932906829073062843030191603626612752307243283536225127079689328422553634551819064411474331236398022461079850907982837672134205871878664840007615875015918574274183791105759314199063287659094757935318370349006681980890398377114536122756286892990059467962974112125718951853651291159396682948529432912508860027888353186818160825203376788419751296396596963008442020889262482396551718581977921947117675700282125040573816870130026742473266648013492999659285091862926433105128947916314082193579470140004772475670356808710834482119411668588839132648329853169144692812390778487694915666946960621252146120293523159359659793506075690737197699992818264768026183833027522698810999906640559700784839036917946293363982044586914687840762489271657809267503154838119327013100941125666282039682868378790034260412453145961652322839773839147773579025385262837253475975671089726639989981861214740329778544070919097810438481678672425076207474007172764299677288239433776136163442367044469798411409837946259646767995703019712799167703901828901145644261245175645533115758578117896665619087882409592063938980220976930484100141673713552194742390402680339097094231079198819612859280614181382203932884888659368295156234099938799566638401733241850114034435959829325152268587807046098245708761180790352251115725437513487506622973710145374240533106431047146587926032847603659430879938456420110531522849626418187389549561947179153251628381975921870255791488969075192434365808570252771789336647560976579719422472388394208738989975039185776384331865344437853901632902321154160092599384481192090323976378755367648185558667253979537741794752961597001214382304220852145449575940803171604334386577781418413184696521151188759283563323783636907272680846581054893559243277255988132655025141737082346437326129325200223710602873694217960552376410671449002090108211276581707759261974474024985188506770544988249104312742015459429884556944271523734059061936957170042693908824950064286687642835334385421885513408226455536722209788874101858605513022353687152124326509986098808393393454098767707017974841025770656967088566774104504401648253804961853918346410840333684598227676995362444306281659345197247370740299278958753215545509817927455651151973544622211356763741023703156020774025423006082029235920335609059695030502168318724181528901719529494165841965730608709284930214920092909664742587260026990942335437686911202221713308547477527445767740152182839791035309957792776977664181528672184357680898150206270863170688038954606210793104636376396785736296011899916696215248092888120760600227070197519363158607244240229685509083895057154584795667491492880937520200985286435121599672130102598170282428090875421458909279368805615467664501071548720362520852884373454713418184039096242184710357373834689441841950905650514267443229541709080568155283622321563712999701988541536150873794756908991131410727228890219876341337821110467786751289938453875313419577184163672211059536145233815050272665410861178312482758346200959075459561939812174225444732999153075725557644284107918725989996582410858985369686236824695505541176966781226727468337627880299953155179278235891691771801817600161614999427565257162952117309175274882971038317659549096096213435228544776887536943350564837125248538350684856915443761748655600906722815584070551183667659196456927706083290497573888312095452862782654243453734531238873220087523556305889706753312408245245199967464130564060290051908716732407668700966220115475018770833459745491914804906382980175909500682276949439580497554019815400317190582903996449205980262883935597861854594734247123888133591142978869234562995585369921571366169635883620673760646794045174943595004900878560927622988953929196198148962817240194380815453210378125843261480930399804581002713729538806652769130286454848041704639465209251731071768174358793184207424416659328097476828643122649105220651728954635103077632618753557925871880570491063019169773298828041132040163971756195092200595311246522084334891262948106664443891409695530220168898373046738270915045569577190663990026350457878559652058947369691271837714018741646475689951105354254963690248945496375109445052740485594041335927302657524532636342115975031486458059092513550039891327093122991055656037228751000414859028269503972009112569470094044943334984421460367752272274655608121482822210115167472390673848476695170444229356202998317985894559514191660835278454402599895376143671568241600872928186134325834973009351626816558083166314890440960440710107741945960336761822394428238116542799271462198925886642663098753172273777928099964358456077569942633892727854480811479562939849895171292716617787671519865971344749545895635872416369353665919283681972554965612246998085761698373875552636856972333836704371766933632325800945644936123959775090311527670181275037957080181996976737777450640559003050331357368336162778330646567233452141890133714922761947316646902193385190083966926521029458752365607578333534899306264181294334282738188845887511293382839981483528377571603570497823758963397212308032397001403649237635820083707659861300265938128276572018889644688030493341031071302734462989819117056578157417673220417607043202126771598385280042352730774944796452267951330806384494868914875848523507647080846072213106408653161535864958389991523466141724132496483981536960317778818554191295413448348422904475959169331409938170798370828644929034596355302173149685061089700061431537987419826864565200955251942551221332431671965701273712702830754878126888293622385044540709358296347404199806890876106949472528886573096746126694933769423345598681155905944486802803726136764375015555684527857984048838286148051635409434229599867077863431002095405421284612051818068624553000118648320172404388753225414588598694528572524891854337359014512937238483757358530533460771888345222571654265090579531133761971120330964474624936821327987626579910421734283961039790953939750715200396204580772877759474528268718678644363247512453988192992339978072449061739218266323441239926050703477758402461017185413502448722112714947009096039744986188090549288112667080025462791979695980385346843507236082163564072084518079059223445357581426332989230086470889565471904436901219403562910953046825717445643345065510309633321658658273161380683643062775581436895534373122450550840976630115812304924492960278556520741530642716899113322769440034038595318703570687447620890516287742027458011213069589128596288428208059108807244135020810202068948745634616883043079922361449852033410923205983997726218501050850084648904048417078057901420315899949651623017938432617362180231388240345975416083177606205317122079772989469552672189736678300601698790886685810078310905698291255454958286445705622823266171818236227865278321503565829010135939131644622573687370154607103346703085317652176623519333445587928646442540497923402597341746057117027237694269538803810949357279413955564088835367631900802101081555325131695755825558386772811772370533784202691974001526928139377685552044224874743866609686538764500218627672645884489976313966459228385069852759394713598726593738606107737722649739913294588948521740698746673555301232676818517764286763757455595421115448055592074753044180070136106139550018518481316539156759474232668060729928597768187152990497251823354956218172361190021431326547030380745100169175538168836260226645936483155180560723684330602994941571832396812764013824958432201061969231764543809754195549585971425459152076266003295747788915187767650146522569397581453873843127647986286201950926165953716963090678872841068059796751652182002162534781768560906006153207127663518252277372762324488156694999265334002521080051610031947093394534148867772057742695779438722218470153371769082231592780917510714752416542947824845911549269994384197335513102010416666369651617066059387262188251274723645630564072192051845420541173410602265795457773006201364582114807384037973306276332783078814014847171569584372076756575000490457259011154377341937026280857828365193580240909912442838651834124399950219599511457486421658104914446406163507950411686652092362561815702549300922939855708234439573828946551458603119770050065231893402360171619853617092734171307406516621339917331232719371754140119453692098845721965437763630278462739201532902623096999871230304057943686076557393490844777360980011413058790271407568409508582360698486983268796412456728048975893769020318443093665902218904314644354507110540513777757627521354246414844184739268355079854375923293033839830493139876189158755084513880981737256910512640759776054621311154391165915379991988718614236963069297084222026748602485278152879174799890519499890368018326270277176360949860768060415129937097544203085150975873206527083940964258207132736266506898783303429413350090698595968211170405768095749163983034335777713355229680919202700430432001759553581714724668103101505709342188353863421240787288370904322267627221044710644645432613758952795801325774330906743414341118833741528253829756229778801777342053286967550506372598270631561054379644448590285408944380872930650613878997598742411766705239416868456673931470495752931127164712384614132462018894194604612438159601439568046040538412182934567656542619054269142133211643944585987341930561268168875356604549538683233232025933241848256446154501808722685717473992729602957138075246809836270935679402889908411066742743212727682681817732817925646401246133194483238751803992498034994246028155663010947630876786213589469983429074217767121649205968406726146638384345140058723036847196688254284113878228224093580982199939809194664312351529975314138614914495918624812195357954591881481249530652131605491939707411757155728786154379102370965170469145928930380993557139604289376825699882714699855273667853250313700077119408911528909906292587855689165747997040201942289249573038467262975492368597997789628331505656527470657504181660575925846686344963095428148693698159629581090085721363237110816455208868372068823117062433219417524588953220940158142289692460562096075213488768662586683311712500440244920625121843600627823580078349430805439786255469172597651192403886334999319630282311736066696704891798591231191207606340532547706798801185175887645330020132995409376061076664866268340167640182271012825278675160632152561239776538688990920127652108404380050047762693610103719188343300345288754602372186010748088694413323949502215660585293418381917688113030791718818600990397447631668986114012331560668478642340791797137020197521941786940229736943482039170914922015903523453071297057360384085951557308424781420101490193420572400205695568641070025837205385666913978278934937652014221858710851016904610903283119862683763567694630410833632915779957002642229251220231887063282498986535835051219747940186704656700330458693356016163777272199872791810978619633543486014988269993730195684921237932465135764927848748746673523690713398731461164517252297005484522746663904462292394304405278384090180759539213952616177013016199028863258933767792717386425384025730132047780536156073310042895149396254829027117097448585799091123908720923424085108859881690934736697807476921709736752990206740061281456445367777477752090132932426086823425327415787935836853196827335352193776503285410547412376571570413007744254287130318208203774586156243643760215546478641823689107205125217255224767533741172443556260706260718042463764499217894541309143564841018729330186961907604044855589560503733513440134941251244543711403197074751076840723853302782436333428416141896823486838597001403467167091615494541681915054728133675632015915549836182839468448417026271699613050738187879856057070833777587122506920936419795215668329188060383862440242035929227890429054796980311543044836361156646463748544133542719060918805489566104773950483687071770828038672110460523648079004298316253736292252356736417686997524129397730151474617507319806923569868529907948941135815484824619870187843849995898831511145700826577471626588719133307899647428966667318354242297724311228194922817047433831824527606180763744333729951921535494437950905629095728391032297316560160650286844043241553817456668587920896141687023847430973434284047109032322122526624397127855111979070666700646709792984510630533819089196749532487716139150452743987333720589340346060671618791647554856513158213032144906629539741300638244067121373063845244037115704849381862986250046981963632433278531411532912130197842607887178949981985444986347127033376847922172604227707952927961912359655159785093763328693473009833791667024864879271408805242882445583381245145237071801446664134393550193257380550880002997170803075645111208456959839735797680340623839194457068335639665456984313189851344853088700640172370454734665399747523392591978450559529853513706850068746047174419129385681818158279461803841371365920860353297379823265940598064468814932521161550375832544140701273233433049267823892425956404361112301459101439097787839459035395110323332193447995212648812303637659803299631304946646258074732755816790732051412544020619343782980876323649312262946346809855125011325899129210509008805960244828202470548485777628339288920007977530171307236120750876667630180976253845051786347054676662082673071285956608574572050208492938170777234927960962533108200399211086511957222725017580323681561711399010073917666877157021774793382427648918602259241870428222133671226374936726066319779209495240721067185456475530993308420589798661791780558855419985288318703950123193135769528108361114649381912916035122489828076297110388633211833140746266342923917198685386037829982986371865513045534084200284409080988257466810806857781321853335146567543134959518103542616310121324594239796806567121353431621324089097509059775789619502420557498477510449680889574955246630369562433038261562544515002686873970930286424619816323534224591207416507487892330685423399810851146803390475157534726818546523552526697346467539021755619059059102379827053946275262088458548972285064185728699760842569552115223429601199781344838153486911634557851251472746622669617607364613428684839245226328729012047274773092762831146364483714544103638801635140081156339534893256856730560183313837077091908276813669089044129315073403361649427075470955380805602420356829468801028687977915492823171096030870072182499042297816393174400888419467763850191523664656900062421060654137841019067971359904554932065072176239767430780626293695408135143402103996346787935408271491377688629374749104453804446553400550977849685412092221171605405219579813655701940410676175295600546382754442464465519533218296860740360755531369338985395944521799111413404695846121012279463273399010564628190389742073448393482225147646163952479940311334068669894260998170514705691851966993352087465062251650891213344861210928374489583984838512824990032433415413944013722068609205333205870161485512278133958547758126894856787189172510493675814926764995468454020383548116592553306664742661050189912132507379365904949496239661272417762345639013492858752446633965970247497269840785400092920746880384790663968027200121924326902124520669927461143959651832378344076817203275318334849507019077931507103805827634570856314418627277048005800280740898026975151325679794696441604305351684211505255469406694044824003875115026720911970960007245331663770314020472422522811249789818825366281969495571096555561450344707109904473818183574521727061158363125843310419450146644891753352264663928905187611840566984127476992330489938071751259690778555403709603237657695370761745501008449543504536528434695234349636202893592797943866765765683142193300312124154233199921224063591361744275305150794075726873391662900457185849956681448824799944890032850516254979762913900465450115656550664465096189280580721389998895612616270678126938506424469843443694990368323424196752589815607631147301535685221908341964713402045493031101767064508154007119625719768525125281483363560759043406581392889509948042529046067204197953558677941853028424370431114381602641005181032414375374735390586373100905775787895261985214084104629572828374685014580865158161122782326602155990712620188748200337478429495342560465626614581046823828149518572174632324139677679276551813893519445482083595026811880636566035121855217757245713792977171195267266162865156839077954962753239224671117526372899229247431485719080283998036071382316138505516508977302578042050154554255549686910747562721401891190087067467135497255508729031366673839916619710294928541571248231171595921930792832836933388954617794423299214177814184955841709128285705558930726738915390358818522694565975778509458123688156681212106070306787409664847755591754083162890546490465897837714141247771095632850274134944517518422529241587305122666930393785380297548030798404536304995326475569203038123755430197813413512459625596305575371808465868741877237752710008989910453737811097445519244969450572042423073960857126397963184074858789067192598881678746715566892133426903522562589492679039424085498856099443313847278676809866317259362999715563997875716033917932011017800693827996546266284770885074805259053306137898158539234045027762869271528215492191826198904104812938080832972193603496771773133457768499011167999285613809746616905048138635640269642528672161035972502579351249292051693975236605734874785246131991155857679792339673705055587412543843047896862363625848630916925466104752864486602356998531004681822196246441446361120041015343674871010043945271368986885856875114210773476325876621778287494646661364065548242934442987547049561692573692302430202219835452344930180651031628332905503896696077996611712542563530377271466896510100863220720323543850499177268721048282682093616450878175963604702596999019543446230271747539930421172417487008978746889859253723179555891175478953657245586876960909371010187461812589340473694951110688249041959258624089411860911817546174482646749387088547265618483877907802367032223252601103392476019008674405045852844308715678587262161672371318579540804512126800813408893145525496735920862807280012995601105072677606597692444939741720349272226874623800187914325461171059679263046759534140199363902949556666419767038040220100479721679503431172033883754478575371473551093334148052611418185849378312708241299397698235622953721095362898387798806843972702252974973557791339119088423028220245920749443195979714675987168591277126610962246356961673465816652754294360352851846316538284476173841965150755740139937376639981502479673306813467542020635043437336710211647500450005438065693870880691657869389463475387043521379549044168247562448670732320082242696428691480853932568756727031724495185352648927331691253647654336293034219810199418995425179917803322808888235935955159777424189355157806647237670859290499328594846569466064281081267291725936965890861876396409336912035542958040808826748886070838309043752429717192904765272984292199099434108787545752541220192638277764496050683865624816733986427048775017842884939765153528841685757090128455919604831750163231710818007900389045870987336795246580092221506018530001637092521246183457797232562192195118006143062406654727056399494585043528330662049782178819237011246072780387432245698060749202076528934522690114054465775155343886410751666404335192252172078027180880547961831988971747343377087227665786116070086363566324425857763195187060150765525028752755030771194925793796085256635476107845505779780280161269085265358758820054766897124254711878868779647858028327078483681433567584264274852585472509343144112653348480090909766696385047695619360036482553107654688299784267442366424041975248245458640222393218623040907762750144397643436253187721808163247744895357455019807732736018267534081172956239724212054649259028937253797829543378098114576294497053323960227761219381717164318839710822746504063482727397933559367529043301639293347535952122612453910842422256521057259540595506130165370016069182702503636545203681150632733589136192244634603891166609885011521377645540272085347426347119612909649162167908656977501911088373132443194035975876049053426955629516496258251018134268876672125503688891848189604909876432412555837657221186162760967001210121230046921786740077266322435205098530372904288156283668615272470013589093110581795387102768183842079549785231179379117089371144223521737730169995181393374821951233092707471969474571293318564973936653751108498758325104909709877163972327583229428271454728233816720374577149079946438724256022574535244501130182236430923846672998741533707347112132845877182034611493120178112394855197370491045923283988795475662348336774330001899183721585469129219631579324467945066263500797494755780838619696779423141273725891336894181878535040346382704089499663744905971569748915545036818724037217569673571332120850234409057233625591391321728317130012556239898308471925419627763185417670540549141206338113609551691508700648858902627292527580898789243244846667860685329890553784126785908354135214019729996577488969774233295045658381063033432015058392575783416898317119391212666555742261018968329386900535571771240671676402683542329696325466656624070604388877666289328595635129647548167415742957803699699020711738904460650670005157126381183596579101751299532132286514426677472201885290407575918507521139941796423036797863721481310113852757232330732015906975372624762239277211770579092812777430855359040910617990836540682029251952209398892693290517015526273778589329083955636016980050212545005245740917027067089097128265785219457267047264759855088449674013055482048140456966383278305937464125300130670693214259810275706293069459709998000549297681827550120421448715312399234821690949002472662500191044665061004845582368205959200789156225169191217280594745637454475960758336260726387496746346612937189312398596250618955336140193454198643424269238309255911717517491536336170362795909852501895017582505480142727732173422320712942478059051500718648793104553669445855425958553493736876274165207988008256701728385429188628136882967323157736863585670247345471407072178882399040814910607302559391777278799062531592347838214784749571557548674236284534629878355199421031845932550046983830394580694745580487641626077215156038184961173604475596683791540373553439850921234212620117586492757660937038681585380592153029296965925120436008727411631817926424532445028478408727853249797478423952772466761580509419808818545842531681809572499373505405844414175337567380976100360157776397151235379456295350636874173638018743407379438517990740577807464529995949160466163830658444343098536630774461450116204068710270285628885008974582624944615429310161641679676226424046213126897762973063131182568965062234142623019257427385901899888058884559647536891342619784898479233207716597864886124843669138536883017941252079859071925751953767291823118004114486894176539858891121391772944513077781984815931742913359880577016901183521517946246054815604667363898511282126229979653458832254969997727070218975146219381371006903934101853351941611861937904971925730835378866158506540468176137895265593358484105807149583158597890085746600514674148404267889505375795928599207765534862891391902940158069054787155918500775452153605913422874719113286923824684173108179974604819600957081094899079453570770954467362087606514909029610207640537305050899410275456304873242361194271913008906873405058540344504839818685201921406649754923918932053974915072035889775253011548182527592277206497619330038916789233507619709210399402932130902794185855581045810900456509534310329248106026112362586714484170744699743287450522823929847277370002474421880855661051911366271630238498341330997548158669316511542257712714479867018972247199125677875782242317473325821921830135527278272044462477445615165372415706518196254148400393558724312575081768291748362039989992381664782375666335703390472699899875831250158244358318670527000865852404045550274321859878891567833467823180259685413715656614524360595954279041028360079859579164296761963022716574424447531068160050610579157802508272483811841611566080025368240219882916225198150031447080986325123379361416007332071310937192141751958611214639152672126527961279247146640197033619933977326540623168157189086051056189502098177564911101369869336449602098911467152261304041912992461089846646433139807203866177409957098628010323266587801301526915433160434256110547134900418649259615030862703311629907274696028377850694131804740007017179442367466971852052563156046532270577968855044816941387857655220620921114711695628407766249134867530907274421396681237702405712542573036901588162792094963121535448041147650867536178650849111140524851629819135290275576835853564807523490536347908151874021113534930422279106346075635108970409594586816769124228321086596897600735683708167595303643648020633111751681845133389359331126863014691073100531729015389720897466287051035547802224001764494755395427529303442259426546359542521411702535587784875718236831900083074022021335087934859635092023273390436104906963260834119757681784666614145782177257615184612799405805281172786520509373804849788179539890936040886691698948763529214741744371579015653983654296153394901196955998186076550538520517691951169518637617222322740156415471670929037287211185079380306068836034932434854495398780103615994624179814486815336927084934441276402604485945378395816779391013110379609176531442154770946500506646747560255016616899110899291407093804770017918386834058169996242541517626328991528597832435908822693041387763457173416508150252422008324242689388682424289736929864736129901779999010271815036315939715131453272450132306229144812581232025681940825531916216955659466969625776300938450431902309665574992978813510396158420343399661906626939388309412148819764628898492809632885953668984599047650792214091695961040719421415187407115671945308362382399327190868764046139308368481842345315296803322503530608172982000635772309440607380437273773832142434147063308118829329361835162342633902652362682296287741962197289265520827243663643672663353316634510658305594404888553809752937741049349964461405153802258032066228164676748850462334763668617574178739718387883803508501163057363157815791668075062333192290280046000201808155637323177891926104410046871561448979796952491612242259547035724911435325755846213005216481896854194946080947990181564589030045347819957581170703374543563773961060959893872044949160566140631602991865284208894278107037032507825473727857575290073055565487146743746067662224042373717517905582494568291286312029809662020860487052437099656448570491134754219308270927179883750546800874973434870393607643905800146150901237192140534919059281804993326213166710499174523764155149520975319822379558921798166551953439009329825410435490945619767028428334983678899587382497791708123515033753424644948881707249919486806920960123049236589994092215897682631128457946421981281304854548161262670441466946118573166794533568648565191035345677922844652199486377095576210874953392992915073762502856456263330772547039257609194299649268206092091012367273831829078607285956267933135383930685484138045392567968904450692259182471550138113825050851199679426592107901597556455730701925956979889753284461103763404327854838239090478041198931758347126633857057817109507603798888285618067003068705408351806214474430472381111182285005994921083458756580773344534489670119690193449003031640952447445564419827786902205283220680107103130324723271754608773756308137326499152969774483714437891234583521128818379289468921234706551022480860814644641024487183245822641276266305143873058310183240101170914838463886661504295894598126711622876136466802235536158200618567024505377736045685064138963882696142728712399188691045415590912715478890437924439162148766959634808245653698052523126609893802822157306239573530650062018419755966983482400035266526271079700121439767787573491454336514182193191356607057819475873905805755446210888218448994124013408807899867291778189960735411792885332444764767852186098948982707285355149091915547517519572678389005546613214376513151846572727706280172355532571275112174434545955150194531481844105475813938796370158893101487039721129053270237911469019339515675488266059464528602380980871897836248217866309323255850583160723812929163314039745340260819070617822207720853055379716365424638924925751926802136715818955386183297767409823842780622008015216915147347194978215993990521858150362282349148467551632083868467583600777224230219021089663475918835752845176712852360500540491118306092091576035085260393436237426693728284520714837976628356159189360047190959307051456383697368914599948172605544245855465822872941866361016475757969226995237544249872916427504444441651630017252838965066497173943219575099081953796852014552613086995062869623676209615589211129279557158049876062177481925723345104730074412670670903786780187899672441817154891552086018554236615705121970819679269683991743163939306741816787736474263096228477776100991441998082259098849048122613691328898659691820160030251243709964499007938034291985709910465166260470546027505324814656012031757558936581597449602564451364836826244387625222115466970770030360922766743724349808458891192539586637134088787061633772560998636729860991023263455764254763607245322964994880894330592532622142569045585083080246877512445698827268335175497891291407330341256294138623371493806391996547142189548799848167850273441305879965513466625854856439436731483346565689774588278787798283160510654559115351601897398344015992653805509385022387898234316975731569862898789284204316742645084941180633866263241086385734574036311481799652499246950682700780826698489768851785607965293941878082936565841869893311815125936506476848723246299462079755042061529581503919558451260250688337137430192195237719574742244600084498578853604272773491446605117998736834815528630428681526940702942655629712424416289277834966248309833965153010382253301581576252070976981683754599329686928190385605944280131943287929629474994228901331217414862998927245241128470353683995744298158903343551791374216771849426692894074435776325479726440933992589584229681835354804997710362409883375546631218564794366140596819737719018279188100214211539683367123675113916663655759135034181047350783011967570045713514763217952122143513819620782375140347031329150523398152836709175467171966916345423510693020684957665726380432134820269936792938189398548449122006090558034342668498103321045560709528262091979517846128662447153398899783407578474133350403126204725338706477537580285933942815280242273024408647100263780799987979299508876375047321165746552768674087323981254725332534110293451785292488199458639077388338294964668791307234017099994462683116912448283204060626756511135130524328426188125117159046142870271063874874908413533584015575915211017047038010080196325616466282880644593824985322505524719164315763391842509461811932748158529053870823335602426072167429238231796286687142771338665580881183781625961211882199522693109824387947450055461714131216590235977687446841071310487488496278288255064548611891802326646886819908817472593122839078799128164479204155224743591666592834088028312651907405401668205670712943877509574201675400530200662235506015356999033220550976512400596347790471954301226721912705772087531757132570672277148477132756171379397518221945485934882168556385020814794565836604803370485148793681671892241548685040212128015557992844541447716317531782832212127770605104186631155981581660141475425635249967662477004592421653612882685845704280773293571459706504910381779820907873636189556330956764836784358349168849263954202052147327888018710858584473484526997623049474187363602371152627579603867619751907135205692956961004338637376411137690829316635649438550660218367090229766298405886592776874625814973131093866114378893060545662017689780955304214530583839132640160813665083100707569141509156117047528334624285402844083890900671917080415826775705872106866850548647033433390477936219579743310663751288045304747385663949441690592248596138143865234545076442943696309706162540765029065969109093676974413539012137849829787584859958641014282302665082009857669535265610582530972399786991996933238861390763123610442584039179183939252664122090123843922347290876647491255808877156497456889783551996482331422499532276770392551697953101166178696361375821023656052190277454334762163016225218863458401473616275063692788765095206991060781247780853660851543862213929834719909466184547998977439308346000867836423546076181718989051970968130478484665620407108836439092022933652643959964181626031060549801233383270715245405558512464737092621357990146944363015592927370336438968333549007221993637459898492888951118447423121864660061665117296997171288943323682412898953357114465800564567622781758335079618260157483599908489446666303737309976454746690423410026655803990272529546271348223533863516038286884658118193381059908099006014400304094527609338536107349194783933741416394602288041154141898075860151248263739331855071724352947645398428188560569114475465499420440617022953401192654936939165333901930556359058552920389982437836805010637507423655521173133829347419077646735876051146819018659773090381456679831503615273084744219571467180913908561961778008659752974104627321539512411412714069166884485678332476387438273570471880015849159803405370428198493732240232342524799529704522876125732825473168197374319101585614299727416437899117992982941496319119815408242143071515301365929643050985144688382825159552747312064025344696023119022159809035307947453593154694940955020955938675837409392617678590713967198297386949702297230479720325043965465646866374785376252627155886290519560716205030813771556574379021256764871147614525098485608561170648337124332185132999712993704483784076315522327405000865672951560415884198402455693552122963604658132629441406996722585472816410635942937812864757356465143321641302605887677576094342771623606641872802989533244401188870631008365241274592410631400268329675026592865789711347945378801185643002328846952172005667585511429689186175354042680337095271394312109320521049207034077964643269861469718993351598563344425096361895891433127733155160343925082897421337081997717643542851636265208641921209559995181687676992620884681697321970917462371242495126693295899238275329724662981117924424583297252782525436934889187589207160791153824899067773607758020579215717713203563694951739374128787949016017566487450539445740408273196086776420152184643499475878968076257841050942230653336191992676850679717771328678152031322282633208675555827972738130121020064221714418408270164704232039348214304208772029104802825001918158903225748487946878794267408691414662633421594893508431831131729840322136753517571191263735896991313961981053264093722675628173688908067084448863617971474391198767023311381678208613548391463354227734100750373677042246805929753579294081203722828769284239726003556995470298252526185521601859621416524759957838605008369382359741100119033766019059864816149410387498962096679538142496148079839473709555745719526833162659219549550300673286196006833715000167464044985322701155576465472687844413566192717498158633933407808883793051753468801192614983307364732907385201037752862236970619750517604992395636616174902029985169289471803211930788526418250581593625089872149854753404205701443759707770616184504295382124939779346719477164960831788833026818845409544938333510853028382051129949999293508389479585689351049978801226104745258417685236416543116598544830116349024610550215016017971026031092878617652503441196281015020888788699793438783555653882281139345683952194132690726956691688706327941032676959011528563204277573630107286947643503277838841982792601595985348616430548822306721320203819543644888757622193138544701866373084846013370817870812220172717331304668431159175692889224057322813217394895373418228665507140843196845339232945971176230010911800840401832739728961410281420700431855504246006084276354842871036497301097209451301832653719251457025978143234958745007927016667210514700983100317953441098097354972604730245505278246011347865778734381778564975173871461655663119650785772500974484569875528648357091663715486919876357166128994339177649733418654335254535500524032475693905527233067332550445553209345434819869669388076577917481650524630373136459272137349943844186595093212944154199910852524395241651541273690681966095168040586846505496116472771912112982024520962167252449155411984439815136384828409126553017904285458297249224839076597563397786057828087068085654163630609478738031387059878198568827437155156387531808896252351050093785807349954923163567759568954420200068981525724241218183338115385248678602145912173924949137640353892886010790697091372376572818063131813366049572230212642475582873839283057295209103931683526459701879859563909239614573475255261002344536622118526207349031697349409249635147766023899190959156779198898425638446131554937046944671925510227529024946264399465692327051300973337155042307175852553951590534583406059509603154988829201108056841783072322617614417010815064782615593896718543921938447180025795537989366329247999707945615176036360824860238556559155174335952838891380588645776041565842185907862550849548718529347244226114976170914055259339640967970954977407369682637369101031558555052019872877963102061605672522537032958813296102339783004818781032001327637529274858268574324722284323664363475962204006006347953844189182749704551498378074724994957957112744198402837372235034732359552023133579007325191651927955057019620426636302797912124554879995054332518144551602669021414760479853603514770414498933810738496988152088224419179523098650341537316861775631871760698679807584948818087492980870132908879337198297936502237863417323012577202636129121345954501849030968871555615935030333213123677403745238257448316913397813717170044413002650951557835485008835688539798732599372299666230925148984937539620775622724188028849633153633548228740299360294254659787995948880574031716869229538922138349946617501421759708117318209303092149402358539852871117881236764997945852906193677964159276556617266867340677070550732392564484542295852660168058904201186321014226552136878550320490222891231189036327812708970489167175369830299016936575189818732661366219923655241354432291510982249360163171526846537117182957281950626374715211536914367793969964466821042229681707732301962492293060015599433545940432120947657048088871308906797830566981752088570351634989527243379455461399628539961187118325398717561238725199325535625428546581868549619373466701694749538237392424686568210893595918887921612131595684997814935945962622993086736994053841253692550626973563722112369379955051409989591409277830702553906406405525869567498100586489519104551505658573729562321947659833832441270907335254675836356647817387864508914048799136204215154840735121692222700434647883445683518782498177998702899889197690037648000185490594725798285987952042270378353076799882455394838194156980654267547491415526641525071563344799267052769238474322763776094625372842294615283993251670864642158481755954828044861238570319352415029530023143374909330227766544479785572033306109852820225323546431129524922242422374519084410872888777866218257283874099774463748748463719931696740509807829227017242521107747261589333900585074037718484932043790624307942249053120987697750194216665627636973810285136719915671575656681824112982190538589061954366370258854579215786541762481690352220222276997819402269303338941788235136935407870101948750192627252308225237756324027997541354925707897816268731459049608003305663436638059420348845220987177282252801596669910949641068118209204705798377059066813825102737793444655781205740408588575079146856922752544682811789166772387343582754159098093488835244329732687340970527049247485871145989238084236951267088122430450000670322418413046970947681119402153952787716231012141119741177882999496342942675592906362684537649182177342118400233308462851080248140892561454308341337541591925052462453155561270939672177117725572967035617932764108275974604378833780951156026205815424335043055574349628161818383625733487993732552363069476630329782243837947163688134543141725798154363112425449324428224515736145743501296195621666909096878023760969411530558671593125720194834853697356109627455275820984823888492340074431981955876249768032881873076036150745514919197493110208829221718530342878509312193477594928965602755372726117531687369878237618362544271812870891934721153222796295749902768465500554751547000788220216029253716912912465127212417049792373216629027982293914178190986917212855605321896654019904583664598906855298008411186433920596424490526466162008829648201950794894197230601765907872672189936882529287275238485181577888056703054307998587844677244380795817326623944377911063157857005100777356983108252602045425850031937775458207353457869550472783757124997576424849047762223382705634685162883366737439461272638040582389707726947182130140426254302459135829440695030366776251942227062974433415720009808768003191683720479273848742019446473113831230592053161330203611089639327232318253245914707016178332724838759039161504859705098426440401662867849990271148367996664766534908398954657178592728884605102758148925855255789878626337374499047082087809608806482511936991744228984629724403573327487964655487725748261015614437266105974485880901685726380275368619681216953094521573482315516184072636548292460784638244991651351348968257327211068965532987451008732852169473890868995586134334326397973701244206703746915992615296784115499159846602842822892070342929897189076574631531572053838836762479381327937150515618069013959656312985738894667525510925453879256411442320463435118671136432252840734112068042314078865285037546044881707157900467864670020004143718175798860545721421266538077118359492515072683338922629308842680893970876177179018003798145056010338068766079139880807257499371725865571992853862241519150891628226110671925066458867148622728427680538030448259042244346040001560917055538849767071876341397665231484225082208376195765629012551849297555257723956305093029532471679422037740130831529524932052962750311971879637182910864370259652792025902556934680227023515981139528041404576731019868470756714649026962863678622368129566199564605065227337411850318402984930958955320061223210025012669883503925330187929112390173701721813587604355373991160069485061573604988304897247502942487063967730454578290625407802160789776508761592844323646311413370594867091091732867094308903108947427945050280924659107021811058195581642955663712912036066387654058156751972674101821509515664452491510681775915518760455649226943596214439809774873429401167305792492355977273406153866202181066872324215307763053945379755123183184412365880604783590747117725593388310354562000957555696254360463722656965078151230532227920522431856650054119518845331993888495308738527012895470847846621326815212828135418386308107669081012097400766979318457294828762836746824666607984022098472996160354372373128267532305768621963089967963970193108224876108786256522420995813765184416353610559298887575034685594956962029095679306563052759025239418297160366092183329792979202314513380071208157590343504594909616720078027614320065922362324499548758874250263459743198234140237971019722527116373534608197532551258236249596376666513088589762721420322769025822178562651312637519541594258009018520372358332727794055805602791580126573142037520970340666910386197264118594883085284710536276300226546182622875068661416659437128522550230833016641450257536710193580882217901750982212177062112252970355544337471736747808636258066919354306885762011752556360317978376441578282056124482274364048764944489051139861298198672998012536996328403232753962185074750500996787778938147752355452327433274903614758937823245129494598746295581487480912682458353127007529954482244387871228107084683883659788967621872371417360046720855488785838252898395670347249799926130057654294731249972603457457928990722498955689616048086577856924803011957108732828867553421607066373633060592904185127119699790356602294071230322626843952880958405607830279198025695980706177381435958574938944436494779165509792012871219762782394854558964367335468880338087068250477398637923578100371381811008103483860263191011320652221128829224745010373430464726187014265297958829591485525065122173383594830345697887640197885104695818452374127405032696890749908772964333656069950271552029268108485178137607790293693766531680194629954139312615121383720753227999525742079986308217888426652208223597517424992347006441389829360071453166581509383181958037743566275093433463107015029896730437702692831051214714096123750930705599610352570084954170103909985271896827101258604723073766054763169178019919095043823037457667026592378440320118353166936563508001399173319524282906230840177851839836224048522435430613597241054182074678077111409018459997338702100785616102999283731084540870089735774746892716178687236331068483398169593925169218260234302058947708788481902779394726955264832960695946718488417372493439571757832898919162380279805058954259941144051068973087886797048450285604457675097211070228405512964231871100924952748194667636135550624584736308290626613421853418040720781008667650072528464270386922919004910511957953240260164296439588500819237861829010380775385567398010554348348386735986607390187698661039202145803659993232131975154030288874636721335156229156234665195010856808808596123154546514767042084255044430090420702030231444597871004671784442592640900109227962089605841040354704057359440111143087217487014243800766496246859745715584778599311412343529609223362968310958510653042449911587967252588938568801002927471872392173685460686643549928159170719932718686069256484525974030425580867853327918434788755842338013795018089590545425993434573340866727057208945736187320627037428483736940428028653069492242577234382594995384976166488142593517938323411085290355447208725518917539484833330964108076800534603005557832073762268474998820405564907336140236334743672069262615184775931063739177410935476428133348769035852614787457257356952375153555578589390538958079602956757461877274480262419355979473914241929892058093178140639161692652729777379093616645582291000640446888884492472215879586798290451093656099024070464285216142966790574842002979512500341271638463825942859306303463525998893162391307012560358100351865717768346507168649279163649586808509410592654472933071885167098432621601287533995175383233753271141446376409934390321120113519625862537632700543061403315972666557601479120906531609560847799831309628237084595602719937209666381485942355572167345358583175881052290652556629481918076923361322565553504299325249385025199083287642084243850861081191211787973793924957748698124720216749692304990515755780588199705673292894412115272257764338704097324389943480002092761046849197165792248785305084470544701767248308316483299634541901651613977240773405795546733996194265134658113111893199059463318678478132380306187075695811874760221813451033371490005741334854010332747265674027997893709083688595692719835200624108193891895438233935388447234700221107225559680163348969035824391671068462856292092296801075081603146221056400535118171551696532799971359658510297229159705842481006000021170470731365881980706871161635676873737006483576550225558775505066524463718792619008042261796161689139289260553059484407959372141460785811841445806965061767723136437365314943279616081403314413749096209941643811473227051517783025936719798499800311011500199796975172797893516262015353849677983131844493750445618635144950842687474513780618539360721796049100160724045935117709599922934254117995721406073914479648990894679402133146646572498143634410666417691323624217440874999679336135894699278835509725715400509964963921839450888493220624318790703729322918537138432103626302708172835555348683360091958375113528240253719262754985383511090063702632004435833803657686582035429163300478152584571107313153835804848555419896546389025043364675055272340591901611983849852340547120230835871967264106347163185900500520359607238067368434306211795479755684264335733701835981115714775536097651412308465340122173384357168427955759006788948511963710234561825290588909006076321194065842803718315653013200481168489058079017890955464609854845682183738255132971234672409236308087112313468909964797921875329680685394295861988995657575366449684314822947484535931524898642730574628781165711378158044922149836515958073125893545104141488339844297028188709392827098511906810306927838595028689296848537040261257538230106293236106045427347849287179214429931515929547030152526910017684137052045791215598042113492325866755176193107633938690973789146677892499746606966678817360449045077286988762801001909666179432668339946839626248198487721479810447448225061617934380621574928272769872199051884150077008780288019326996865791260502587511941821011157651976852558330856637582804710235004943276522470749271071548946533273147352253544787974675415510144253439758769364780164422550489682110074327002443206626529515278741195086259108331408512410591571109832782141437412105350758461967677413969679046107486707741988639935719749457060522676946097667834668341543063983962934485149318932969005825351389518345078292982292182023406134253191574766006663205177108709495582226143565734069944520579617868457943373980034896846114690060396670497852593010470849746945725178748591714296992759907371561073680677375135652081081785049657873447968475684188165459706202570802758381673610110972419940713323874100684865032385687265840714932728388536611822552032011095272591421735376647854743727432262326734536429336384212179454380467050280473091989569346865193078548738476643372289964625108873435363768295888752166635237243396483135579817808858525142819998285257374667170276142663517387629135360958957624525413822410449887479413556874949737193976953688734940256639092837660775373613041556545265792313905193472494775547872653219412266001352063706939649309657973514181669640113305223122735738530970452417187387251446680602818680517848691606153974995905946831305322296066578571479414791053485825953085089227874372145761934822410579185695017675995599815296573961424982218533266515408601570464348665073828472688539483714823449283686613544381591899309432493731904334067787455345360306536021976283251057849842949043234858304348327933613349411533352589351832023169681542934303093926149233999662704600642307376332831871930275525193537423505265755272830856205065512792378607372831794096398568254307519961240664762631092457422534845520606205112411685345977387687165714772627500363767048522841780895699567442360179253218908896316537913680865565051129369581254341120990123203768821311415106016538046254502819115443767211436952995195806912901120712806251989190026578714089579865144448740391965951239755244876821787384927448342042285931228058337892978645291915313003428674224978284565194501806782568781225308136809480116792222895171145144479963428811943901887560280309915616950526308084697176064837271312683472844224464213522906523558156841867152483445544116037369969940578365285373641630011486954940461719356273654208791799553853177654044513276219355310363279036571808129644603765498636764021341911900660607948310350717562584741151597082365474987096876140484599447051381238949964471229177169246664745092589047831691476647314105555632702574941016522792582483601372683447094062479795213285942601878325712737776701853013446511477453068205946925887793443081473582214188790725709415230177432377301797775149763296579466557514549417456398803989470837841314861871657670616156393602380096102933750786808433854624731113626045666712953073366160656952286976743013545163499479952953162181865256957495217946861759232842645117294602546954094669808347297075944290811291702555637031768567243569827901373568623215750177499223032456440135956155165434962122047514945622217718954468965542494732383996326019714362842108547407713922464881573267104304837548679669727325415840936445040547612602982654921059523893630548349835387350796331805861760582703593860677241954767444933637880921276954505538864752137896295439282837495926755671152483310332995320440278266138476499445740228866411149136118492762990517683947508412838246944521452831070841201299083410135505890402097253389944405820312322414791401753591760419153890933606140715082028044508585442780898593640163218059159561731708894851340385826257989195078272183633693899619390747376202577045672674312790350745093363642903286892974970786105269888631988839903323873549192175950167224053506601496140564735296799180137134663293166428555216705643072119481159015717569637784017117778449057949281785028012214619323219047708435123595846829077945193916215362601842105895391308074496921841566815932165005719599586813429541464319128792874607483234048087478187043901224195900109489221881865055530493420972423711989939642996776888580808045040627769689361710162020012267258604626787250599541962958585639750889679138388914690332985173143890270092961584590450286355778395798457314161297189441753710725570187599893041736696445236674163427913371097510485625093804955426908612607160250337110529227638935881173671026672974862325761966845572618485544065436567954791377815410693584224968588345499620967226191310988078082842371003628859861266846841633430510276630064571654381238882713724746131868779706911657470834488887241106946146517788928337499210548225810977963779259209795009893869892328138323913507007113231094215000120228114522707652395252176203505624048437494787136045792739786879360674384279615508036553214238942087647784333767419200076784393715141358626406172914632121001109995687609678756102356522868410741709385481380129702365761555554261242951092038431562768640307087322014012233646296030953908884377589407206789317106023743273767525639458126302826446905137143415875248888491007615933986908062131883913065176782536851864253838949663603304511362456912363341176717637574159946116075256563398488974154772025527146721200789039568259121146219380103235736758893508406325225057085160479796084865302069345410128393849959857292927944142790715699977788895542212802414442571949237313530762829798656760896347307661365672645108213515165452231907699374238231125478321199899171790174361460318060140892217230525704566541244388955289041152088313578132577441868927852235897447417378321635505772625484968963078905505533311409618699415336830886838635610797586270719221356532674616868677596337098376405727213232592381299661071979686689802975737198819194995336697114267852212708612728969169475018030679195960005012546798880768554573758453931001203241636782847696979634428957218182940826079490548682557042572015964021311111356455311849318314794076921239439422353774079912455365557994522737246185006453664955735864243386753881229913996026609437631344689653434271548149671583746703305449463262452647661150162654630112482220673355635252104622153683440672875052854200130093702460201928613834144380771698796604139926104783263246569280190278453549879814532122062962299852332041770975529458965394269214032167631702111685749105650292270448051265244514419140812064707163723849663422195134379900466434012043354228058220791493883800094965798984528636603023552691216367897398998085379185027146452358530542203645602081001761178515371902467174847356710961435537139059746222106484922339093300884485180400334450770478533260772005955944109095897748354999324046102633352325276321156997795744966484640437050147362883089164344591898564392832199559234652432950475887684101761039134136102696429325375081489889800587825941325597219457247681368031344259653029464167898029172867458868733921065733041404397871321006011507357276810249749625132577759591985809672591267267276464417998625652309968660223008151642551479040187775914607360975010870871316669241875524997788013268317689205235717453625566210977204862927970331039576384016795941103653132008720321756381363679273510679796648113544244095213058501624603147041077096448206615894777691432135756161815521804375828694429616818773512140568323661811999743522421871933168260260569634215647373388656229323025052354114214651823612914675773046508795446513432383847728822145556419404796943364954724759478806725968975859095507764258692801868861449125567926157885140625836016498486241981460748474585843358582321353004007102206497302559447194343276026899310408348214774073929947643280540475886901696771397895849228764036886625217911806422912375015515880213801906170302167789883626948926548090496732580378187468268560338946198797859609887201087425821277738105108715742225197168124430684210116807912394723446637112293558527635148831967678837631856753289041174348303368988954138390013062145185156910003919325498056082934752489324689512463839175517439203840120740978372050078670697579522116035660453534144481003078510490070945407406364910696938100229935012304576287358155791253357701542727881796491957070729703388627974264920337654619694535128765441193908739580733514371095056653387042431131198768816518090243950093291629942566061787175443622898041814626121395024223759491027823227102740576874630006628789690266866380008315490574683752555618221558365915314685935022869098242326173439554171145213460869724073838485625159020431674446184652007665327266521773020774721431364050208609930432524073406451599833108089598941574020899631664018261739166344942105187868750432715765002013833638754597636033530768586631112934034544067632206181242638156016786852862883072376306024517221511827980486052059633298490079112167507196058456389362440249181738837727711068466386111728816871476979445441886095493003840928073707076547074175144578327415425322273095323706428090948197525940676769211820101317494127440784906463806218469722752102073979636973839209158699535795891943649658854285765067666835917637837066021711014765563454022877858143083163075403703996866146002676126313355962543387473031004513989029214784045027726277993995739922151286468842239686329353814828186471572252621475271316529712275143231499379219924826675099457687949452349819422642869010856571166896901422547039810868932571586298257253943314785326296451947245807640379463593915993807034387233583333706922463608159609666524253657296908778961149569084678816814284040477738826920714646692095652772257144753391774730503444461960373941577769865324332875181866712914429773998349484598408884311941578228984377139224497233456486221052746256556792553225978001060643422847062192413900226126959353088342337600599488528352522544808391518217638972960379522756477073815402365810295702689838038087755737516675037192780119481792033904385309301841595248970791392089432678272152744474177381559765829032303355413010091275483746143626749576852914979130906602082230275103002831379434695091488484554747495956485265122605198183381268349900016067443559805199850089872130667471701359670072110421603093337942007207028499214813155247030736926091838541107048222570402715249844465644116327282262681056343337307825886690578428297455575856005558308308798093707397519036785694485487702667264630118508006989784027562758831852415627443189866686374611615946008428256291473461772552418847194552238313008401197735710011991671757075212924739975758305366976287595076732338545806235195927566826457966298406784733624013270037696999314493427578909448430012712710459870996093774938856765055883584070018808956545752194231107148408973368867627568125230247677754775182089497502067980330372092677651757183441512531062555694925702966786842988850497950112119544873856286153352026249856396467083979299084155790973317882536361692226995036211696989367262663449611177732958523658011931927846161262222563529298922966852934844674217984754635964022504416187390216643114749412131103496938785760788445386636532298586339762915056589949975426129295428043829189170769205225526331941217970508108336356228124963304099701242813470424504442550389782100947504309985269219983875306188624916292607926087389470755726075561871794339339609358584638540183592773619804581667638133227084471041220151349545502193470481634527506436584360866138140324240495679807749593860679509933236812174063775556900615257754478956118175430650620042059267280313634808422704653848724517255343380486121614078458480665961793123210251072427247833232709639135290230666834264690522353750000062260445277003485422625577529794911441247996494220756673710981571121469776829625982500274648008638372963565858588688000632829828184591983287719122014780116939999386257988486791184212947807039689955232449541764912024139272920715888313795758009282737625701905216866685028165546864125239403017577073428388979312331884214871082613672998346326701725933928937141171027679414540758694256782464386177273802390772191814369787455763573850200605896042653785302072895545585519010959967655354418534308902527081119923759530123367152070112388579135535118212615778909395424209697749225501234500727361164660780869277574463281225212417146247270633987052453708464609979530677192379773360203001016646673984614032910979584550841281799869905944559392626554878640331489369395013261989021605717703251424320575931944362838399553855394556741894769685338210215562407340364455264483167974465440300981686280107984367273159447352849841673571544589487807760859759109495398412554371053204254885841293067672010698130641187562030233582337394502158532847118398548585988671460541972223229641747402386051519798632721818532195624238971525745192156622853730525904003975208320525792243884877652386944635813357993256664075002560105910048682003669156393792542193649855956575903265550137259673413967717910458256294341519840906606900530071544336918920663958340660282763930763746942122939891418504234106496700472626302868721311687243139164703793302906594146292738868001417308764357427733808089867298540842132262774560256364699620582717790804167516787436179197059217506120158289802562982776284233393952594613778654762642198711696757594544428007820970813659880646829596145479545248493068971075407576613880079882931121400269482327089649471121465432054230466348812249881758000647831721448771912950828097035728785520769140636318468506476224817802232093307121032656630909075540576545011785288744189686081055140418444232088672686215683999027185098676231318133434019955538435762780177198198328638924850472752058787764373442573487075272128112207577834690258977641842270247349116953475772844851899283332441857495897306862888476759547439938224162105905837955026835109409391842457061300012892553724146554237656502262699149409443507817136464783063908118334778037956527609871077931652293332552880138433661999266308936305826512978076257917376050392727764835796522689377411087364301197707552923814776197920408166230889037822413518557939562423487580963247127529195458550660388426392469131286744262829354503155092891786270581787095785591547405404058944681901803983153056247866146098605699546663135308395771562455520962583827466446315880021379212215987621254308641234250810584191473616137356643084000457340510159705542704438991272294486464311343689234467963661622855244754842050582109639546000845805731354597872274090114127601908016437369918702791279466460089211750978078629249099677861774801767256201360857666349160024149335033417444660973335527185034279394213630319642134190375495316487946513997119203911237011710469559748404803677041389645661653252824803722143458550321314005872847762213215378887754308270862578949705718320125975303252110231440446936011506220248216097368976694763960435691841516201103244447786329025197279095627272629469675291819297896713302740993920367700137631562952584265101102281620377700522194357213913453870419347661543702706085965369715411942958596239194541032005035230574931428931324117823522677847962111422723734187818456608730462534055844330400671169259535551603261188429856941053298432414711892936514194690962619652167370680754018755145199992831979441235823839455720269262223843602426849645916928279234395191615279658227535361723873509817520250993842420002311778134567601761417341630104224455543178488303212993782680081918636150332119496633383677490749906313182252686165438720482671666183333578561729699380292501956188379101726724247559011907100373492724209316701814545942521415882870625137419393869285426923802524321676064615253613915690476935856430145173664098633902121770478596510027693260886951023293261919283212266642634816890003501089416358322571264319961411671796105041927013007921095575280402331149846383262292128630238119826640645305989066688131241788502885058351102482111630632463037911349554460009491422068658958549768286510688056995704800709482495621652104068631382375040505548032645311786819461268463745194495146596654799404098121476777528400384429022155168708124035159178337125973896722977656271776550600214293365320699007878774003688621358241108646229554283187011331971287243557859146107918635913193801666996839579307616589388178255007278324472936636286787103811470192689180031406533048646305299676193319683531727238816827571767383153378389438513435760133660564192657213327186928848007902394865608737874524158361215855036779715588007531807100304440234567400446266216595507710030484369710550637016520880639377510450389543843653903131761965206210198355632776122618584773112342073394537452697109997314477725245350697595630170956822679315701139391088350732201662323015837023971795798502975324894812939475989800147244621668508174855787352081177187123820350127183830355859193047544008621191463403209026888409643167536875135880015326565774603149548078690103837731274968040607078967559354707653013007274256040215761733675687708338248631301625495896749937552441405290959963057053607574004756636613398962608949026915721629299547257315491587908634456982811921575784007358625669548541726360327057510902507350279192545889949016754721677140438559882435955079683780298326850995636100667736260953961802650799732499420286787441757216534724492626121496735082109486768849318310191251789494689387039094819557215566103194825951285636896776358913870827704161072903445715649483011426938749784799771154217873699078527118943690670163008069606173028639831569787585118240074860702118041678572149562068357752193990712167191038693332298024212303357174359334330137678735143900040688134469262362423656294541314735696587716307709563325001890641696554361045432475051644060680930284813718441305554642831930632001261530663447252952816071242005359938892135708545649932339567403018988436960159915859340944000611990251410755051855523201306160888844480426584683123481433274581043377399615663953446302378942268796357616299486925203667258701856146628567881703901323373753613208461524707253627814637922211812736331306478391373902465588260121951814603354306786332047988039537289313797480578356214519749262630077970076665869034595646285497897733821413410169494834661079617843824201021975426597131321286070074498725861499729676188628188118886858568529604504959844952250944390495900660751951700359902795520646902407688631983292417741702583088931462929258627997454025792022640890057814989804784079481245350221992896385154897331068602759768646298397705189025395135720518065347315836011772671357451434008774608914470824292343275355739771073409450754504795937136563737256673111445158359344067894042859600717121648165417584597290639164938272267445774026895988869485319392228723028830867694151759606788704869403798766210738136510423683875843708496213052133110573993135598512299926232935579524109512971109625620415727457196714716887891927947935189697201290344278930638967109399540636653504521715238307400999092081290591275545988964242557078357398438734744088980415255658401045257870227910970243885958958421017928922945976343738586602504927579797337682565771772113443766115838822073076686377205347877417621380220325988683376778094291716106653323156617821178745321829292400385207998027008319649384351975491930026611713390055274715007148692420729794212265438756690187252861515014604516116762719824220554936967845273987483034550122131745757307562011761780575321985992211782525414672029239239913018653305362205089800009454053664281739658018895633107647319488820992873558994262494961993721094063786011569169100571776716743825381551930147405835711653626165017700203079085591520502665208497007863733489268438696448677407047619081831431677219790425159095216936769928907527950677089695846724951382474404210588420744163719721152509093390098776212267972647692239337154934524033089496016999613097142838710082895233304836431857787747847389504816650862827244238189020378517472062734628458545765966001461317265999069308321379928156104833729183585960284367875134024355708618063312292925486397770393255437861357381722120866067716252774250422699502703526853979218479257716590770513828276236400804585180589630397305065247573007353126057028969310564885768930271969738779619072243998933694917010218305196800037266440955311800212462082517467506735375333302820112188974095943487449283231075295956144541824629191443049254670879340352562140186145051444798193726682383783758077495684714200310252434764237629341673886296158528299010155073853068704834043302349408717310865370413980731880260797068724042512616157514399065511896532606362408082366563775830448974598702730116163170824359425223440196410177840663213148233882301526909744376393300223178250606352349211576876678569374500975366936274400675482485768500998140620711875606469037579181045084009392543040760262287459444921693432630153458282677435546009963363022289427053681733608620944501460680453192271433557548097494435287082553154279062854090519471894572850936752679781543630328416752020717060824660429752117714489033860656365843435846394581582467658789628070701061118064000497727396078563725820603522419148068823763352544648051656292347161820287535685930175303918792393063826045295684914249986680510054975779052983115163058875313687372861011126560371604900008976594602575904886296630518280028903106484154935033259416544964708184894400439585270340904302966299922073672323869893159086228729448262052061976720994089471743984360265673881292464543585541940816228620194130211381239410868225303234046412113891462418905728612186777199309771803916797908187204908959817450256994805069877897717459095318009222596778885481167226613543596857379883802521139148403336308770051441967495985982521551610275619692776231514231353353559103298994125176491560392901580232365294113471902891951880715453420336873262493296047220389702091823143608088827445874898026948318271049374217976692769659430536415123310267485197867254222099028222785762956463101978907313047392982914282157172112969378506133002693499671689284209187882548767015874407875938880509713207360114220392566827388058087963355805418868201397146208932179865815466279422969272320321324229532871676722606981070957805571797115609211679361946071312190544216090195841008459450495834119056913094801568162072081148585147935017551689249971904180806565668494960785050370455613935449705544053147247514396796491117099496083341073068637674212386731284692271043015753717231886815883910828532000642796619036895442498458166309442749616346429305411283964327505454897573001862563286560788453207419253162710446159994721572738449903619002813488754137280855165379342156928775320425295964121252114265300617660234968344396263928778976852702493738832320665349432832964131274236958532053677712644638009667096769133915589778409896076449514563144614044061370095832732958023180096518470496882902749268539084563339609761496196798838428735975248317118564372491979407168493498597902499545343268577603981317185576810351712360492440225620040319719323228680204025574631601607492081877609032820107827286775702011043166005730644006422174447533377184950724201291168706789563837948501745728260411940885390012040615661060931128301677207822279865633387841201805118553068378254946642512310263101994145168460044819233576270670054225486656926305373514884185416727199612604703492939699982736977012185275602277170762542199523147234574461633347950812918909487259148220610704298413268522837864942184613620326888291566133151575466003251311672522932882348373897412593348211052519935192335511303539411153355751454780489536197863205058127282835485547784667317653514611012667544520453795084035787581791153045979862889762120600781390443864255902353512422857450060814296950817253193780025253988955941841650736643776177170642283255744868991062029761629295087714556036378509015032874316636790079981029259136277128843849926384380924963409275558813999295162524392270501311290344049824025954823984291096210452755918606073830810475909176227925393420565472599976380606255815992743852772340851279995248993344413049538640162655076409513613179284079160213770297369249081260260352173899091005496554690226404330731925368664198997609310167593440207977523059117920369498278606058096078594039563479663747895955531251897783153954992655692423853191579922730024333593432667907249914095624655908919696199155790739896287915029160052096910273252318282864799443380070295095535763570752550547367847334540207686773496824509233041796195249635450958245395916347148553448981025430066586986402742431431375007582396145903057390731979874447950359054178767630325965815645445441041234890049208369752137669668033110530848289463410896837694229471361049958498197271912936388378983807520338779729599083262404611432839470372200482626506666475216326428179344725963947476278450562294157150751296404868846419168526430623137273443295000907311843643313987548186632789501199656696389847973112127180388439095114293648767096022707393897958738305486851993018621629335833941664904963086842082443600641337572611875063005088719444392624209253997886194214979273399702970648339572129190674259601213073514630930203628631200159739207603303440419129105627540934135228030384273044405961964937310205085545164894992510769369285394949184320685691540096739953102707569421284812871742053793233031439393053036803986543187018786104209275433847782256208069144965827097521967282399870956543086366044303087302808512495001837415672300756551568247880190619970798925141329811241201412061978497536007481351315172373388896721664776369607029778243131322744187083694626727649424958987899652796120226492393531538447162428518303619845788513652124437148121365903601982784152234424412154750041217943624859736449133909004056435980844622653526118485578881260793153120211319912840131463794999173556524947508482716560482628686152660511750722563781804019010786086978350105226344715883670297283423746288999237403863685398230765702131104206282229996582302182506294999365556238626454355120228595132493546163358870897133607722260168077200759489926311971935366522392252592281992120667269148244999453046519176100588795085742149846816890327664062455602182686590380016898664430617750378326939270409934314657768745599722889568587451037141822157581539146274853538253227958475764306453452657211200363757594761502803019772984113080188229276928311910270970113625209731295050587309535892639876565066244326346024708980713497751053747837325977497717300145620382461889433197304175221877856213555584295020938747291071918535320297589010627107651918210553569350294404800531050245709107976660916745567343476194630308608930298036850936327588793029627879037932755686902094324917522926025353149313762488670681489782091869364656782635550437666709025812824790720173608627187823066294691136209465108239459555205750492724557244627594339118635398729357615777251198917015082361026741288222759743880379801101229083817094473133907707546720186596227764057680966153154230489910131982273665815918533741130083412408969857020199966337208328851913929954441060470100629251034832715483576591593029597057375779290700439255343590426565293725505655985536257281002751416109234359472004078637847902356776213706082890748731566417201346808764159656090132911870988168237555869526440704052378759610399174738437286572143594139023798622676858953264099063048963428745654482356281881212136949887424400337271463226464263581676983937489196448012319431156993608494696332537287014464358469438436617050427060348328246278971178497299394727248698151722258961230739306097703218855159437178685995353213423868864739354437092700767124274270089516445191419753872118063326506218846713801624935924371790833449229420545689594801270766717510399163632117934612727665190180302730628125960130801320820160127474625573090099706511789536523139384908743613504459028188071680315566754613926692349519466501846033416894573301642292795291870702864941476641364851422913201162711727436832014202221284453502355815973467128408522098015912825042709530801205231287665596170521869604733760948815983540709270795009024627359169572987887502213087538180682010521140820529584012874261720021205677888042785580350342868370576123013329016333482519082116059101094567958557652937664786147879537934568220919890899236982042960260404478177718035573588890534615264106239789012079765090418134996107166115925796425403035478586090484441921555236119519628388206732559615142484320042588010304273734004818925902731131074241276970890764211361711499060915921547257468447620988510461025447979210397670796484108687057781993847369813442952786454795318109779003172470658290653427498859200417096373686189353055897775972551274162497380322371649930456520453830550280759368847804158151046594232756957219506405787770227944939295710471314114730326866287497023645178198448585756745155642966006498406111941417371914818283259157609062114649866629910510149727751747053475866909127344258359491252647501538156107256874926770908039835851250434829703660049285941227623256335724641128931340906948723108664117462563139631108794241486550057776766508200859732826343707723200049243684261707026768488008065067520489372321542840528220904013146530606176342980301464904432882931047164055989569561301258867297421715892910390773239111956376867403065317313146599087828612147754115396039449333774584957607313851573337733472590510018734134148420029282429633402101038764552004579536576685489994621662540423976637317147950780101165562658990668431713640290340702692030880178917951638245676258654628181434412104632542928490167546442431811903353588742557477699001251916759192467046235799222808866026747388225233438748538441739707102526746738472666650564846821182280430814409506252389091496272321466703103173764540651870955473745908513925944569883555160801929211254782110980884839626082751023342191188798845243331117136100805632018337471163749829232428417330675223272935366437972209037997682833608614040348717868504612741290502708061247087689113760021719524970450872244932041807542372311426830413029874979431384353191341062497182328336729255000703971954828417360726376217879116582451913029740472153818874087703057274074065496893012344402239036321903281560317883837798470867529160905261224975201095649518615869610461243151025681338775613847880358795389381218588866334179460051929225384742382950523753393884788842023589255002382809369305603066330948733931821875329219698194819542866342028445148606729376450287774913614426705561884675196277794603332668942980873575961361191267769072932720555803116983137332268442887633221409312793810452529436001948966031956545440192391573382565908722253044607152633957228171962245199525713693110341201405239422582495566663792745344894428396552416028915063242680863764696753916748297219587255877099163457009900112211975507726156877250859486908502597172624791982865341911992179021376787892943095747950426569077085734756357489513743047777429817858724198157550418263651482323636491665665428587158550625153008580829340060757834621960960093324086128514377320096405856286556459162494413491868205054051814902560526463037847874353088433139156845199313526620206511695094366501156474636179126074786621056276916880514396848746223129447660480904973149643991552925624427970019092316960052169730324869640649546558232590667666104249960914639858864161620693694548131158513976003810412864329176437173855775715289517360109828252653178218236826119558164549588192476274766370118979609171452624437624023325687742262335621176992717719136125766399640225178885662940780393886626228974215632970510013764343770127005365671295489423959552364876563831890250944354610428967539749203224687104532811071496985335793172200886600285012935209699177752315353884978214506611953736438974829037954507233640006886382445559747544626746427165368031499737997755127342599152859105719336684859191665740723842575129804449442156700622799925348191118708396049169275887166684468377428449238212677625727888480204752558731194196039486646766865765034458172730814655175458723896652961578696790297559635374701274760836785099059459527556443366455525541275675718073737495772024781130093541407015795237562436671857189162841849320387644178022344764860110211104286138603644205531328607273668908051088663719669788372629328536683902790138559811365340393230261283620725098458424045812179425239903074691133610190288011234045781489438483752829490414850498871863876427992088184353209059406058176581717981926468613820050285485890994491765627643159969849128913090064681717807723864877862926683232473649991581356167126128496854110682027525939502180054422092111866952091412215737057411643940899801258493895644670513098011091969463418744010832281508402277074373493843367493662623693817822605001637689691405889635545559237844639366997195639441316237283395092638858069944018796930788515330843516613654808209936226153840626112686660892864247111586270803677408884016747390122639629938810610717641795968231530678074343742598577899310068840864992800436260495262502170185007784048195420779218632158562483585180944690030039578993507098717188721093332905831598140267248502877897183320637158128584190539684568496850941969992608758633425517036683528609230154327783139856140585641335615153021438999581683032058459028137703128140863588563581574137439731317907506294732503691210565240554177333606127215337386747516043558537699644405481889035941104299784888904945923934393885704208671555609299913176965782292906430513723121398420370021179102432910476137914849415998579133076255567206790572478494894294703872388748623122204970751013717921371228369079879559356499097010675025502882238220177303437181306388113791243203788018677930992827875339260904087439568441236917676680394029810953474535971482289454076071613229684279424986410474647458994451999965635644174449852678308326795613425200013736634814596092745220585611634281361801567559679889725209882584663922111783643212108688561120244278466318618539851270047819491554829220118351772516297345602270276508147385635551706275392584318418480048255138644870580282531671265208851482648459841913600623527107361188459830261607641855681913382566106804071641972027491537514209553073490313189825053038863409895685625621928870027677141600722887097111966555345203253596270689345875888915882921896964777977234495284286316371524076914222631484525526900521376695548006213715446806325362714042703603999090841777199317240694092498184749138437747416341719133547806249990231167445806552530006860075488382786517999998008036992122149871699705424045000019203986519518396258322745629182892175097964292705150416836086015188491183220340948881996528076728706474672047059858463773372860094046580903330946695869532205194793094732856025663978743601850833460806421105166042172338387802048466771097154082017074645736405187406298506715225272980521274998552794841897884981589226815031179571864223018505217877980708297665179419589648178581068075761460347507529789232661728025337732287775121848452068818935463237578169109990617152724536687547746001394632057401345539389637377401826775390913142469287065705497026240478751334995200866404351099324832759174059386117960044715675624669899803824312951526849681037540608344003335263334660982496453914720979643225371641277377575933055522672725290290720214727771709321409839193131435526378612191306193471926256342984456437001402336807231822272879206246493707781800446368462729460180502707000244690366469046538077924916762739383061622333757935255100263845678197442204521453211917942793783567670102702247751088364006314900835726079777278525727940418671647149890308295595542422293527812329453967941841432621916142558752139746578590952641405650170538995130063088644577217809783000520482661800759590206460483330336736590335116391591486986424030950805457655030865963279970514256867240109143737551016772204425520238741244689885248411371650681785552066232694179791146423764515193368805899715592411601413939401713101456667558736606458984518294109444615575090420921198791118094433258075090911718529101366835818561365326883610127410285199823237755043665009281132283451687833987253161909227740353896525156207203749014766916498941961982579437021708312766157639193452757647564234066831941857523077329567146268329008027517088731810102035707335841344125799687117449884918223054719072251598356352096173483439399397169496439915313389246499682284738303134688797249213941125841021282778890561185917898243424394680036098109265747520576696589289928573087371096048366104401827287366877829909131211967878741447741143691606491107709170016777776124490683599960814045344143275675001967431447070671546566077808142160239555155794625510892723742373805804683858805652667344235875304490680664219420279060180176934009181908162749626749790386337644357813360362492491726401186549333678600666683311673011744546988377364137881963161705675210201418987009939780919954925023806199260497588603767609975850905198715310312751737037910490810484839615475692755603083582547284496473208736348515899228691685830811131137268567096512832226006731839945637822191966458726285707200385790735196307962399108846030033571838370790103133755668680765024985824438330326714869864593209785765322043883184355770742382636333361327827298242150262277253739046695605930179154758768087166982493982686886382626391747734183138148350834228559023472156325660721301549903464764936270256671117667056819526124799003044883340030920961277108658551266506498504714577177938762248661548167898886045367468414285986288299536060364776650825472858080500623062216255917549336262835615304580214305995516226354045948593563209513193074922590914820745230867714886661590571510513766938961037571874701421588174703200349985227081192867174266297586309937520485405037212155373586470519707976619555428005745718657845533303499771983343319469392096019242021730134137848744597621778262945841105526491674482224406919656365459066788584206345699655070342897058544217173672911122634912587403819264567839425974202034935784419972312263188449545508514606265836876777976195727785974649452083902770677387436914128591526795040723876706133208278915412963036312284087057275321723186424977242090380560804649704687889328492217232645678820275464104459271561655695192878622798261642071729736903764532308073698273784114151659723482879647684152727471867201701305963456183340185602483310557370438668022525084970491134139709340083273565811315742681972266860760124435770730704078527524102841326702264964945436107849325737353095382945221939440721646149800088939931256780666993905425129466528966252406100725585644252100669559069333737854486873515856183292146532267330209993250170639342834787302599070253332494435624022053101689549320788935891930910930301034551989686311549190014205100240580649489201460022990574446728077619204121386158519753906647498064497341027887235783171635357104108516044755051823181302552539472524329420037964198292236947263941230327080349580361216263970844588876452959432324037848306829040199492182950902627528807188888984914267823313573341316726610611590828952704901770140057244213182898379928011048756955521933302954860029779422993350244022817585135122128282441144069219567500623741344626175913278518769905679133992462501678192461763764047516978175058005455741936403297368804469573294242802608546548712974324626832433592530305566887041264691335466791339135292566694827022973750206234091143736243545271339275428295992608840999632769307935552447069485205552545430125154675556637589428757885608147544278757483255843178449979810606043747279663686411793996936222840735964799277880282482535496196236077602107433009628040425547611801261904599368945079650377583138969206410401436561777954767973038609214659252973378428230381403058589339261657485120907666617751202994246088087418740336959193431358655247308897397438217016891770376890060606436941010921947778269322078327003538605256411627984362328999241211439855467395274169365208571723805702566798795609265854360383340590323774110395112147841143870521571618891304175398435209111754098355391209008537110683484964551353066191537626311400673036221640057643892292762685850948242751514730876234502471279289317345565158281390669535174469161328034922294286908735804202939025321641366172108348098018343348945176468605092718983603083300559191519821827097688227459090657959918030119833684361665766418467467936642350041789507112033113519324670767018064420575476177264456776291203158909810563901677138461334507722081789185459986330527105048358630409267789429451471666850861191455197121434469739762091752375902903793590710217623014137053754835614390460325924049272602573034611320851153877386584307090056858430815656875029525949860679949454837101743403479648260960073987653535691812876814135752090031135424223994162025251884446473226829796358332822700185948173305409407610484102895657089984140893023214660612164420318190591359430146361905462529172627368116556183032784366801663714981560458653555256339912363352512753620259177243394264005612714650079128218754892679361057389493207435873203432631749373967025870823780725359970330228638627249526069712954888880867336740231249301967341397099996001807532482166307366182849356655365843483966865916756662895928669864058718679636603125418760786611639326917146341676807101999974517861091744487232530553310420953453888817885479978070625563275982787671009103719608700524673343007299864283579393222786093566305363820296425533763627338130878438751137902754592827453526277873933376533738452348366582961778498241456159128893225651029155822563749911295626492383067243605344990175004608144322491255494598626949516086412154664274890192331656487673807774641533481965132321633087114980626394409792188892977180181389576950335778630640014073692656517398222880443576009306339498782567864886917925769152323225825451359501289940104223136847300094206666277115673250797673023994283699843544486853288365341751936336945484906390514627745786470466491050716856888247851893268745052411375930640294561538258958347002992659372148881779671881666276279500472942952987070728114527327977775582300372811523120464255548394505004173198522975811544681374607610820472965654676909460664515526940419317536578675371838154008581106145863632412294705749104788734392116006235723671667496952280296780549904833284720058890450456252960406972376882216738449338901883133558746836582110158757070898185036440553855767159815581110707542085490822793884759047306075896167794057908541301564470815508975168880423383767999359165511449540510026776499708719485458471655601165517908089392472013286131873357370158144272784602849793690599414093028215267859472461358545464942925626440625069303893552076154429369863014771762588150916284067972203916013716278098774445530287927440130372406689050166579061903741403800722053350439399318354585830681250893013352953410323912544530854489227752166893338251198194346617283250269383697309841391891387792140090824026056823973669823891361027010519734156838074289861021531740871034340470221938810475384303046749678887625087213296638245020192744561212501231081297898927313088106450517089553452718628832063886107965930846598234485539745814895596650100491074599230933634016202491985419278987231335350037169033345431397546179206799872039129909953985438391942047584144420362864664254387318402037403059658804064113651406500761964764027799185193188261499797070621100846836212170717171853306763446087381728526352013558026665859125707748506118577087161894410098107065253840528513530506597276682475730300677919339627074012229281995966064784443111105799893463975412400556462796572167347843012799841900058502964769783761102263398690608057698652658600299036978835072704577544703842848867921232453424080348688002433259455710964239601347198325246695250350532476840359137587034504181533300057043914139648161891650680484423754129450538378841354832539060950157311738883695073270897595607225384562779692328855922210297319034028880673917506244272435504518912535037689923184741576626385252968609333992864582187632505110124321460352687811087976745474323562230548672104268888536733879251477101945117484423229974238557173672969241375260471283812600529585802414410584095069151459934434507350234999479400881137706491570018772559647238339319051986855312845812086397816682464361143885428348410877939492429501704315890488218168993670747608533558431205291390520278762601192455769689070088271647883262505988933551165863596224276755768682523833544943505207749920968120666739575496460489921568553709500979939807436372202829270936938006167935297431199480986829342929105725967550931904709391502467979382232160888659756474076272210655442626326697960021293348064596888925674005707013105581649859711303824612982970844209538696465641095086409325747804720358334752180951437932202054067843092169017281395963929062722129926403287957510383271155740997733194067905262886759070347744843682282846103926792913506852600723541742090035848347164697447074901490813584605125465079248711748044782075459847040236059159080102873590401934240754172468619217162403444021913629180888176255387833117059291942072126264536812811828962464722875673776695199298328013665452080634092343701927893876948923367982528548908553778299969341034006172629770404290312296484204966066646588648327334115071259759441524336698096480864594302481313626808995692206180138852001217358463513024335280368127581247888223088034794420965676855175378786044443458118007728238817884879330037437223094356909212359537087892338706540251593523795097902656560235072625145710172136426144909429913070142326368609858225868979884209591688407910485251136759078754943008726527902621735786110559175433239775600461338848899464654454676443901520417060081541645786432259176844724674896655657784308240599358219926420522755788128012080287506584666764609397379398917737768157286827167057772208519035369971146034869123546414749640694093784460550310820125039721174797198926262663596108334609224015243299770651892077327613758267910721401837613315499188613146896235271352834662251765611472121106630526201509063343474370723558921703127872945253333527338102855895663922180639758316207569314428076103798416570464260850985233680114275586477001606706763712058948831251762773486672484440560468155026909272992037565808429139191314369612416335519191934246007396750235087237207275097314095963765534891645257636262148479591730605268861935531119428705586136475846107077385752017451155239661666528129216235287136513417612514364903741793224194210609457823248900237929502605183304192686066584286154760316302947375214893938168332314219920197188937021821907298840785890091642575802167383758073147177608216782477892381983907981535811879017407262594935166333005856115804109524788625645473543428462825764469516665584690799050831755048294194624014873714465659507742398290181643921384516807271765159242511115089146059770818615385959141321865737220655676455566211039635010369590357581337692492601762811409577459025841956166411563067536897210977012366776134538421202361538707394189383129155566708891739038768230020546038625374923032313374692689173492582520849506040715951574019175248722911891115001266084508199887670983178436439602879243438747576313969072838945059881269225976172896639117403120177076697602084019649697905543603014085170338838435663657353650467719348767859063724149053032853597342580889928571309405542430755602995707040802078862726402783402848535889469194913168483199782378065693328692244630538423856843514832385583087497344722606806392253172665568365667857688383593663048516823101944487742385685296249370471997341406768957521901218996760059919111953388867607353239948268946074498913321926080537604428060579077036073629356339945544796012437017709338157022545858052834563438478564414664594838525075633547446029173487640768303979673355956694674988277433900393865273732993454711979014986904641867999312563274355813258836142441676196992623162690084762306277234535651523171030981867613377848128955511538512071166733994431564905329412595254132602682149256385506130753650846291007544743754648133601007835888345177167407326199811806392647570649235860567682961356878317870924081727048289836183385624430665606994372680409543381377348413477756157962989365356755712988477640766752493973065963678748245678943299540344950713791116996073731267245294871384132568321577224716456693439734954462560602696494202120647000679265841579647196203452559770332488577237564423978123130543007790725176822299054505666078958388785440009888595403570132309200264308809399690542749747504182678299103409194741675267601690171787532045439953375589228333914532481667772771564136123944081962301827720169228608396003606182516272790356543288690737237263446207290197410414756962691086999773979099647632667088999822727077579189900456864024873472920517573475258218009953385058477450317790815034511392154174153353423416512279949318277146719578804340892411995641173189154828990656945436637769064712823382080448339775160498640214557277771436611368806607147891807521613087522475613181945714923670368529838143645168538309348978620790431656355190944901586445914509746216378151135559603584559818905998429580416929183172588918342032679079818646521422155615958560567148043196117812192575830154748642957462914050648522646422532848576314938792536375208873120908735264800265889204517824317962094608470925590479266897447493895885206563408628920590411350159169759687236405367502190366767173742779105782731605680005562144389447773468963166273837915644420002981704464823936536120699031957720993614964801455542538466074390817915814657624887131972552781993540391748101223247788090485993193523731373717947932021725514887262505215507476665127888181178125091633749930597145202556828497058785840415809438954614880537458085568372801615787761639611192091731017514502404913635580861373170793438037039626137654906819333502631356548328155663641072642008387880695154785037632949634229914034899917027266687677666744291488447006441675651538029272841916661196052959093445361812827020281382787208780664559550765098062731052319594935431372883598959324855800647320060306661995338475103155710429181128391049449035236818932539898441027010266920288062379947894407925523691690532419663943411970485196362649024360709934419178800135219793232944040969201494996138762020021810878940366250507299547097093213016720611513106893871578424676815077800384264933625756496861364242352928534473694811462925410123155070482752735165061560113078467846389236328109216455782535318646812920855762976527599362030088062856604455765151049084581189182278174612580634970274037087218448023456678465352300319481396078343594872414683411194584455678584637632139396768636007853682541700985655723837059587115300897956898494021460708781839305899615309229582833484975901577800435233676292747668900574910977884604498965446554466966063390613435370835662917463362570425411854460224676035402837334944269336973879187529593893503105195569164561339394075140024437704458272975854885901941608953831054105716571807361317451500591647408891708075399148769172344267391000930190777983088130159578243950914240113096036723309821015588059021826141534440300200128034640994583355617603573499380833418696058901667726801750757827145329255389188288349300986436666421528818205532081750827913368999677537483492474133992933088664635071562212445376033812701248255600275266525519149875077239526820645712242142153670473205097483087442223047952379173716187643456322877995548597636080292607067013033385224233690195179138835040319421987833666358664771129368158062374756199095188442049272407962230942861453844325165605478339663023413807127821187579362034834713213671832304201224518117173203596415426857548610777802295138621527882517798532955708669633835061469332929930112451514242301373085787971402310920713535964604230330176174383034858098903301149991593160553507936838149273909984643708182466798173316797363190385291789277863704407448634484178296297542897484473745257699697240499774118522196779494633586696094991823707399979268639860414347311230706033950775001565913142270608378097591545862726585333039188040194743529060296503115697071292959113850569212215027683301162512529894049767159967573463330360359508951921093308988934982139060102013245241383209466948814825344463617545943957982222128341027425845726634687585203952063260869831927451548038147977608378155099647488740508491791855826721739265753941715700774817839202286137693088256060366338781903853864244767813137921866778718823731312463764069976929984486811245820203585578889321639059488064159546812416988478516607932686332966287735924771308273994841055822257082208683836130978462117158704274638743043590124745303970212602178830993384919313656277079189000178061376767449346030334286843921898785424545030274324439942743278261653536220481247191682506213486074844188486308264247269060936405640124649973928853478678393649012779723707879026086905131117576023229874507868368557335999861880862225135222113817003500941628799484293888693305189290403879982971456638794961106013974380758512066461474830914316376116592406168834227516218324121181262532326711534043103680469338110705906595994413616176936308635264428509843133438927827688575804762713477858256470037685971922378329643960160769882721579053236219609836419379445446728095458669363583435834357104948080645429636246023928765856161860305494311205256658727889326521395993820586489634976669867589131982397990022727316196249596418384934233510618782769588988069016897063393711252575274562668826813009487037329873363649417465400367129094300636461556527627657017055798910391656916641074754814899498583457562355498042518606918296407208215483836419129622248209328134025937707931551418203718532991863556602988675944253215972727861752269508061385093754456392095347579028116644457571137982083872241486190163963999816815136679246506703285422418235770145424492046426612757050706794995640520835192128828910027195280336616274068464659663001888715667210936652014515191801449120239205116740510599556397005259925244276425145703347182725897645269007163358983348065825630037746828475035162608332763477099874119792034291518804289522662362344528128377848236403562226345248039395827677670395887316265892738110624786729111580838987379709207755231704899080212969917014831277076856952287962098166444159701381271646020161363185755667333797728542845176116036533662017611111327916650396808257954372933274927359841902231627785874193603383044279587500874530666999247698783812324088746052393512388494436332763636856241878065123979606941943108802225836868768586002306634666876580701376370951245576431015363463078537361553533470572877880333829670082796082604225989568205277468918193461039094400921992087563946396362288730177729510637933807087147043253431488342354522440785416509972414232400805977007824647299067958603569074125677501679841407419980964343323221045033872043390125299283181130127478781984315195248632398336484158521350032547746420241448731066208979156761306795929480698633946687059679337793312106292751055953353658889125298754062462886541606865150937323271100604073804924714864866257708383768422919692897831045689306303628766764678598458336192732693791240032154526436685866542828343998331742482175842641815381284060101301001845077017615474155926066820226330318719892976870422008455110760136593084961722517508205669469991889408098303250443596683163836014672396586306677226359633678064593570336153885466006770737179454250418064177974793337382369830089579814974837348590928701009434455892299886697727466353505286745864918689311244047600472139281203357397449896768754904070509405478268770984375481088295704213450310943974191480508341399886457203679140113697207851252901024904518752297347508645108013709394100418423835225038840846149177136580698050241546551706957212430081260600286296846098489128034465639261198386146618051770319053194330604100524026282853250846959273914220928124029443635701805189927758492337598834752264834877394559272034151627686356270105662783852582534750016673004623367188332674875338666414134141814645792086882112239466172338016922033348044623755735795826414190152105673800039997534056595469951952915804204405237303371215852933620665275947203499851535357021543731882241343136415695927416453785279314256229181176161270116345380156000470901125963250589641800692040265953402778378671678445941824125462396485645696043053181761487310303339019732758209938505202231204383251001807712878420344024185953596465871217476448004947109150245926320128787786852601268735663978448460013746467919995486688403099617504980851283785247480124004471037804923867923709976739029675970020627195656741001969435403399084364669753657290393015552535766497421910445617061490288609224103080142145847883730814933351730813008243342330476071679644654414245325272586083826672919812936847835429410557124412874079989533900586774800274931140793884291632357381954743217665440461247576981556052852636249544479331054001431038028146099784504612195109217883526601651986191377557612713473972888738814378879904960365602182697977042156755868751061079104366752620727289660381656624298395242223961202861190061474734026659436063347165910369383045693350021606342771046402731391209937371726287330405880112480450494166730715651508332845068232227354927744289439800717201702297611990125305819014606300381914231925538961796752797943363507936286538794965802153100381207768925582788668326678788418570981521898746786547977858155378831253125771000051650371661682541454717874599585993445953919479750347028173947974398475958348527809533803446898213803095124060061870994957743845193623763614612731676878630228229416712373846690703702902252549413805709393519403241438318010788427187311849204480827779701238667669461974720049709969018298916557765368505842415461764905676145674520809069157959754025367563905048985122119543749379114142203753183083674615705075770437359159430561283140899752052551310705850787202945027690598233293184074003436184003913687803088040244121525777343656395938884268221447680677076715562950261326163516015903466080447970652702885942701446145041810521967349680998110570467251822450584844362626643033073453390897399313448493648391738569906157644775321260890641639898724493042315373346333442304262551127729847429296910788784025730450236769794928340748513494868621325134873970907946834507864006137985307157477625843265383417138659315491604705601732372653086446653207989141405824099605816218138478803082282370871360255954661470052256943216454521670743290241537106833488805785448376967158582796894288188452036820438498428571590979874122883353856739008976895123818070575872004585547312506675097553712455875241951739438305343779965457582105400913699487455851083501993386428152408214608082350014467578448243573253664776589538213961398557655811294296847527773212591063501335056096273421945251382886190950755877516468367453650019093625430456441551374754654939259213709129047612803138012388914004071226837075678241804616237268235042984460061951637796135993943661735977997357367328588565449177084040928911986873816668470001563675912694807849417513429198682871408939914328904306876469879136113664172094191443325950146960691489764465199954057417992761073754933010277106379801820049992992409019091814616457105865536807758730274086832883512741464569645014767030666001930125886941875283958259959038319117337833299740573733566579827701632904298833663093264577375289669509305965751464596630475574294069371393889649348989550116952216049371442308905685237280646596341519018343322567396611433871834527000472900881492149870094306722090745274574449958339760020875152578140372808457807590427740159369147789717216690458499493281503309282493336638846369298066443950658801863284120686609240554438013364326053939327232697654457705390720766112658434245309686893781493530537008028982115896196580414405555682459921697287341621827552451643086274676318444295963942652412564441807563901961183031173007221733760906044138796009761142566918713683513749522935984063505343408588103639000587149082208210095030119959800382026839699274897931327478579326587934249323149611829752106371057265998351294120309692904261350871045080294575057873497602303566723905084216360535347611611161390773887274537101373966032414915191872643208153676363453379609459881350379495187345900357403089405848289425394092902713090070713969455384040613654357632762380941071562018395336488389352451589310372099602715708103197390302143406438943976056634255716691573229718053740034840349520347863035827594415568549279093371709131779934129527564198493129619739997044137253305960408092403150940322899505223427938242320159165126055642788319306308604860670942566272239693599059879294965070963793878586888774728040124325513498672783509545987185138876520088708560045969290392512680240257148562696563625988469314883099458575287280432809416992644819383319749703352222304676032710075832799100952865032544984316441419569081518101646459865216084241683447510469163008364649963031955996060240228570166580069306102313931226489893457769408788262882285710873213403853359206538400682693635129549205249222459833589545653888405080035848544372463972837079866678790934346595785214143301830642927446408556368292768311301448985163443443906306611174537170297724005273260501876022002357578003723782393119007909835798167842899480999283268245162315404470869097192414157499611000901443080435837566181308114425351253646859904227882569165144615546616970014396663580957216275044822689092972288935080890472844182705476573779761203963224610616679831735550491567063990452922795187002098902933440799418014137418161044790949160805838801085248713453155621773353719375587023998031213550270432583247549418742466919673170242324166847517182595505522898520066433572222958586283494669414234513604181988948176321855708371841247846127696181756718889249648115236432125089423234222137048556043978679033814658691061018481086570672954688651043660506255639871556507926602555298732503758888697683768380739071877009552879044233401886885103358408998142502538695236754682109491322905398800454937408489958090399066575026028508218063121618286610538663544697037476992744116558961520405411984109190780000716313528620975611615525149406159438064015985854729491784967511663156197700176183744684590580739465962565409958557423919908301633164747706945006472274817735735744214282381454513615885523614938087022212955218921220414985446510773712198935279799616251757112671916055898907463547431353681789254540284569370008754598901872220458786396794628774895755414592439161814716769539048759483234085587532762430483001044863202230563076019275638405747416390523948468521298162630760362735914940809661911467028310122997221303159697324935987868279716826937841288079526686636557758613963434892196021977018885681112607241369715966652877540339695990741739474105239440105050305419353091246247207232475819085650907325240373573312196256124539495031610901200564452793696296948647605445358898468861883728480846723241132944946167869043069285341529471988420063093981920697898174822601744579810616717773884125334045730147768643103486588748769508325638279572386161212313818124102640835949672172919126533837798935646657563805360980403878114498842614244587692849734571100716257240245627168688458428262279680269074158722296060230595898407284520193246829090233969171980507910096526938650416268353883273802796761333912122985037013368354945252242634774346684845781384062820308679811085855245692156414725537071040069701142892547900721354170977233266912276824954928027733866865038681446260809990452419933430722359471542226057218326557056367411400226331479026769336437615273014674381634119799528735578730768917606621852260446478631281284866986156411659535730921761319429070939598013698706473659123590278146777480670803532693973229761362561004435405144264050638617762255292901356946673794462274650139103238160819429581612648569042946961321039018411052141443171465922039104113892616098082935514443863537580878348689613840118142748251687245628474145426423860370512244312597224522977783492973275778933807714444062632596642978593504463926715836753103915868316463435474602374955434691004157990886125621785026456879008365619799368240422192088335849862187498469251553653626137807090615188131565795463999023467168240184656325707326743458529791617308856056759717323820509213521505503469885232165459557927161034456621208124960435523814367910255619660026321135830444293942166947364527820049850830947039934999093245589214597321133740675159147673630238080538927315790167525455944080439448829244870228712954180988950848274603711479639951251745977850691909269057992261428259813713336984256478955721069958673422334624275713656085715916334759584142401965743090231566140611553659119560556408603711690800720698078452150229886857803335236348834899869906423210216861189904199795951641164285305832055023636637274783854829695084414441064707090505670279228424149040348647583338509774472369811632365535836129342195881876813461624554442274211357349632789213254672898952375771893613791295394418451848502318887086705948864731312400202148791437204795855855171606687931908119636476239048480123812431637073199442239781225527004293115789846593043796387081215331244923825175311819736379674638451975830382516657914244915289203635556062074346234300565438193149254524462695129324041719897455710392731559895375526345152982600412952609127047731009842040823605190611490784970602394815573734950478870887463158883081606354628253844478614292672195966047044923045065869853664565724416214436260745729623155847643785020204347542178906020821705509267194481220461961830533012092065775996338303438777437074920909797987725045940492890700720221387263677837914809865647114472246008155834421955761003343242861406349527949028289700225272275612830833586823562952384775740894808974434747326755210491201640611109747559451221081387553978465957733576775998762941709285233734275028631151705988212774502227127547003741617123732917117772426045730800286485832548453523554897106304558560869132074072947132338395056019186508899616635316949450202265595045529757516738864861959199523378988656292876898805793757557329725991254571797780637990856952247438136415885829699094339727851267689361056803647428373752658662613297991945407313294653846605424188041415641542195329952226836354983573203468071992097983265641089789051528806943642088153792885834513802895467970184249235855369429838860187018120945454917634703868572015732811455318165734172049974056204392599123508972954780565618753995117870885741495201581188949721790038245266803377446738126601423089734436523580436765380981058029574198200983608627485905896788962180520845289229355744534475263768542944535747511500871497437015162460746357901471648800656791690058667505296591029418593481351249964814992432009489635951522877223772011283679788560081538008347419099233140843144375177257803043985422387216319610218356508437672251328593918884057309028851816703032312806005561342125096328111526406532881572480670541109895389620607949377563158256926731622504736035905840913162730014550399588195622036353245642517082525184613088175696940584430514498226488125379297568819109682577827473958713142211172694937185576397327590116209638599411560540177444038947027142587377917093791445565699314526186066743448696962714518238571960786816020320734057973848300196429838302448975395228290080305329615106146743967914372119464032203785320805682686108560888370249332164411605819357272966706779095025363323635304232161705065741764504053185782661952639793141980405966879715711400726127959141832686182121945450258771359793326459430783348354989323095585360615457050959584726469087735139863683481074531857115907029492441085155866692240748426976547618970062855151597953444502570946705610443543389343231864344778363212060095137343613448038506269792016567205933449600212249867418211925910084872714352274243618756747162933769179885412033274434416643995064116136519089760753490558875540932215455089271659640449013996699763574094183696455306694986326483912205272363296130534519597457175493093372124545307524774788680355670386860063295337836753709987203989845097674909667138214587362994251874904167186539139196971899526396190337555609340300945159405082062663968291045789346867547093898798742134342121784514750359323489378873541582894175579909913011872300642122408019218621056129362994203902760903728976198230026496575022862646887351427869283316637548628339510784108134739307839459639852684166151092139086487198808514067385526645685086836667877128962209455594497430719492034652094416214546032468485103912509331847637076076452469263438582683019141310288133083379272446096288468671010394186258848130165948103547836215060389915427659330805561594226825254247379289411326540690832407233196645351450339511202624164235438001890359640267475838628895465469666745937774410054479515107616917233715493978880866471452310978377585158453140290272713415117846574267725256901780102632819539742721115110292634542735087458075615286208420424489381812657233936814691850447472255839936727005625700767024843507687524622306686339304308400703003269290419664799928433423782846393563632616576427095056766284551811526813521449595013043161026727539159952271480769909995534355899456024438743148895625327754917094813240430600782908787097553462925265664214450675868304761473033700511152774647640227392672899115621646300570402845469846168822757179232369975867546543065786648924139072869414175112229317140165180795103299803228892662769609330430123540102995739027136899693231611478109721931721986201910464904085818202746716812175801986607416189937192851457497414933173585243120171231330101499514310272353221614377280637610792076879363376761269621460221157938080343700274253757228093449612316744524194095576904778977118948800076299539483458279884014253914791597141217881064878019960394577749823335409970532765959412957269612883295043504452387739758349732714070665381635356742720331817957722461900858609830495828795198393275220923262142079586890164708336819218903818126418173069198863010632728958150892854376535559596420257954494325029080561004757239673912732973266733337985221794400149324193900791051338154208510870623651003950605560959240148044512986621653354708691437356471506254003808131581632565756646356099891854880181690596138191813231029088402124998016836148002286862900105599004225058725596608917706269487474426887172292817226405031033488175210794514056836385247160266772948219544236501021570186570807679327069194059788082118332118505982365791521617555028707547738321893083693254703896303528477809872638616108398450763530813511171791167922899630503591349781832984395063913647669228553784423615892468264163845672008182755211466667586380515449895890128723676032038789866988157473401284808804350012004803045839205965380564978536949691915892320902666655318787656686815044824261197504050883272956604565238799354166760682443906362563230883255499206719994919215899581713048845277493258368043304077998556322776612870719929535157772479131715163280441444695073791293873665896107182588601703931773414973337607474689782514563474852542984841188653535717434318505367441716231119851730882833983392333496346646355003391725757431012236171246963031315293374623096219283383055746650064441274545113949350511095532845302708204295273731761739806626861280871752001751803608819091301030076837998119499882252598161914354330206282262448330661685335606062634889918280180351551880387128369322101131675983765770807458516864802114579319964228853987317689510458298224301648441426358960254920428698058209875487000234665713962705317872797810456797370903384261578514186892484925369001504130706168127252387876916301342311138927585619765850372224286267181837717719694262732312481109079528050937700507668734030090003839743325641337169512044039012460517581300860998562149113999664980796558005606592359866713835054207790291259871340792010838784296489538727758387772863376187085614218524807228632608927785423855092867112942968456891305360149925551022252727207646014157341345426765780228468944600172178027521336734347810187409514116064798383595535636771434012121716399826149302995877532601522423820536798417912321913777288398118415734050657035709754115206503052457220409142242077273605344464918938518495240990584949556172342482341204081311752042089220734280440083307064616748454640752178911873415407766606692950899594813842645880683259506698360962550302943391350070677692509874845977772283420876303643108924371716906442179913191085366609043551272927944729519903230529019973817281810716485895207580845518188015758063514803465865525189428777350751922679663530443621466617402190794266593181491797925622050966079050967799527753932885137675666393075235013218128604649382607245996456517842440493049569017841902623401870709095007622228796230690671718976159628974519829734424835972053552198872087887066543597255178395080810430386810499595979730952495012861577546480917451545776559052881516122786115686711141027172400934819543529083501366327698085351498024581851670090168837101599084623894889928997486309702729608816535597917374234073423593072812167919727961844117216216745502913443064787864511746255803534248175417812490494510668928735924819647786175639238355615211185281733156794722504659792586004228072199149567943427408233234689559788866273880539933854042276965889010345949457840843395425003731168799883454249432899466379355722669614682459329427798809338528615408386066514659827979700856793458620881874574982313859693792077068916726102265856544801225473889014510144836785687716527998711940337553163615200426724440850342514616074072127870138391289349578587032502510983857856285547827896929774029462182429212819363120178904892088689427910233192913630712292132708187638776481285565201126774522059678835533042520196412508142913495480068909297117806271026386444116358568584741922104688494770101923903630502504624116970533818708177079008709789081930749598799430749310151033741557153194162645393828003171552426640377549060521937031838046748617184102658070025292004792386004154406712724701511616761817326344572912683277619135495594526959368185399530687202922548101343993512584984961937169146222736246719367952539156601818095535837514712162222344541600920783746278807036133285770542278296240795000140088649505762697258331019921268990181338567055759990923603049914479909286599350197238461288168329814490774137886715401997647594446358791152087398395962166630629771665508023389308071266041001396833550384255925019396954340126806078873004526848217891301439288245014340904086046760535860074803285355499231336482029387059671179272074999251091154602401429408828403704719118098375390834379624785090602929917782324736106453387142227514370776335687597540565487289651967100062533797419604202135565525895263374445724142907908387887945446499225603947164328278395778892501013399231273329339396347570328777038985007722995641611299495920543122117992205364712297811696805574158670332319590171860804824729711027332884002181546373306627106833726863672765034336344250955289481873598712659663420329102677643231838100046773048714267048943444095502875049478508346720829894028043965779390761259191010130121611371680138696351437666519154878012361889301297067619744318408556922317341224668864783709896018782408913645641279481248776820870102955636492465503428395188520889989924362410832946630077163139048542918884183339777098600029454420772733597257734604032894371806337093877402395788939052138475624460501354766374323319766187694436698064245538859696751702338569709972078281518214608918887346219518744286250057843364005635651589464259092857836600036294482817822698143372062923290719516159870280815912336196607948465556379776922033558879658121005862834825945903831418130542149307216468138026008907040646882699614558476913479083167415186566334983021488864036371031797271556373748053177748802337081492308375146860003733359038867544830190478512329717450831962837277699917906813892672931828387477679561642841211744108239531917121498719822854945806158970301827154188369385363649526600820204620799249291021977019258827217724090094707209924533577391082522554019137549114074149892353385223941619198855765186790830090160842395363549790831746617807464490499795799530452735592026158338189252839640238221326433876376689206707647985422701481671121474662891497127290968239784444945061215726612488455909547337571169734442229474004699985822925970864584616963794110711306323765401203658924350232384730997771931619133610272477091889544070086468531464459468802345153572256147449608001787247096183799290780397676247376747946395249876671381182006205333503389453534333304010649597103565969273154321607734066536158422553175483258226093651149674712857451362243668772475959072677105916336274384032498283176454150007388902256088923483173758128335088891275001047172966595568517218628562603400666965387092255281168249552903948697497815575885482271133858950561616013870785047129214820865903260916824297753929485769274407966126928844282189800919029727835427045438587113408624315603481675212843895496604191888227283113900579623886536218920718036863679017669793813633057528092839957137511084534839956527393247851617781728442643995932280948221709852510105488055151483968456586861874976310582717389463843229302924906087742725495709512808083736225086123888577034162425424267559686364877294561015103179887925182299003881965102213933069466965007962664881600774938911811190696928635871406470777167844801785906737726407681281112774188282769574973353430542533978914699006276437623933877077509646007734772183528593143063637898654361143719609825503192096935717261360794329431146283595706442055087413797247610571789625910712667815160977232715413206460278941040586069571651912922557893937179821012249771070626785399380137770450496100839467594667158323166429130246534719600902590155746676598449130015805157093973744977610690875520521476141927980502063838941376280426078909065468443390302003396278899102720141185716969943564232014546966731354174375571669397782124372595851453959616381911933192514676428943957451077245611417012880019316555457767295935642205729736612109840666649373564497544326487962963462998843288251795280173116448279261130684009055036838357043501437714861826516418036257502641551983774503387328133520094119680200356835674009352760413595346137314162479350777884448953657701535651750518284927414152700821914252604411064535828595896126167109525232653413636274652628721804244031243950042783587628135319901865188111128663158863950125894161645690606773316187985386691689084550157326879986664363130964609425886518839155599631886712749302299057605103617320891916290073540482345123953717267422457853581176479425131757514970304291607497633955785229357413889801006692552222857494865655077969991742537202694988878127542985415282937977170307213791067369919884553248610590579628842057281164719771549742498490938622317997321685316993628690335134632915426901852901451701307997993164289397862092651345532949042461804336851593618801998649523826559179204022270721407029696491418887882163669463048833751602824532066872364439209574312722992474789056149679628648317792922026890282216739238494452735767593505562768937144101879834148995989740696735137491947351805856310497470871205212991927551956338371698252560852956216504411537931393448050385089071590198122171456757316944761285344338109556457036669837648630604902280884808252265238282347130333785238606096219966919335407244061388411907422982710797438496853840848860822051882333039495387622965681522152644271346762669706200882098949226626364758864904110788568857596602230731653627880344312876007209939611498881614984148130055254764952437925655208795228632421602540345664624871343109973187815415461284165840475674753897042258881642789988198352453550140058622082044250582817103954979786121679814494549403106589351170206658873992382517511837904407431990401786388994446148912900373730844025975077606552584940767287478372519440096219243537705831389936238268048272097213657520831931095942768757436704034390162031917648218083928809831081560168346139086454085568675794795295506477389360926641584485450964937778538209810690201751483776604119966301481280961748675426595132939900312925668578701688043402168116225003252682045490029689427685143880166001712530504813308180537888961823654448070284796247048675265782245836877306311579988792016799951003534344232412560822728760935578433993265619574972689826582601690812419383974157183558271185030544221507155577186669091937184606189058263085843692633857435742694978657277812663854216091365381255929297214202026108774547170617996278400909622105287769737782078399118123814212456753222248111689182738270319801896783346667941333624363849638239263517002219375483634873581772223742597050107428069302251466350345075850546184420127927805768362521225944620749535310356763553248257353027552688222533824710391565582890018056633751872312693864468155683218700865952023268144748614714410016250173854976217818443582513612696872626654276124271205073771677683904064099191883411579959079886808594252071037982926760622008717937622785053822006364657002223309280321174726811457958170327759169653514541977134943545798765278388315876317265002562420477009654109253366335727289939058615538244605210331785795883768154371100198423063079933158533795728956128333327608283881115753152133115785299973438251900931960146631262274903486445303298138303076779309594875287025829467777983216025183342618061909039003760449794256556063829554059142492010951065945332074495585413903856034220469751019744844592529126445390277649493189960210263521213854080133624184704180577407365545817563225163600712956969637912892989838035131598883370262170546875659536182649765990762716893043973628955061318391524010103536381541489459023634940317023796306637115564309136298310454692281220290942455914309058030145471482236444121692521902603755151999252857106860649575700450646512439080847447457124055422635780301302655129021159108067276553429912005827148380284665465039934875599434360289078149772859331462211084162240196505872776682351199935090355383193187259640562116753931227251311803545190950591030085530775696428945564761522742042314551007024459850185159551502908452379862365982919802223688067425188562823571409116678291038233127242148327454369593913663506311879061205160217663768881494002442816245644731378850488162024460915973141781548154314035745093403151566157589610613575568016025679509106744422916963913402915255566772848862074768610181871702609501511373929288804263404579724679297465415828099568164197180409997743116584304009959711232081563157139672786030536736196078060339231335456425792390088938403425682044966356265982761287206801277198246740009518085991487680768200934993891879737730810236297011655798347025026370058879265849562186486355630189019329649804856466371653242502500903742605486761969642414466963590909979887078129305157442185588754872645033461857641766057832406201991572114887515157729110575776204611973979601000636974189100247879030866984318182237824728035099221584791431513856493491099929731522400795313669313456176569085584040953712320308096455934020827062946742464972928106381866635616888655123122193902121416664303368507294051924369880491889449993839196906845237690436269541622203365069801782546544879087178117731917801531607390637573967220134327951263248925598531931765751343872273674150351748998609627297507123750855286338317832435095373274704784051716532595940118616927344721979833014153603728795770267832203149796323272507265494352751209044629195804458773686154997015133782886551288102150692418468742721342112715082487107567711945083757834605269748468812188933967752752526524432769252549680191616627128927833650136544746148965457528621062983406798477269793293857149862847401108624706363204608260901427904588194024847958562797945952500742540223193737873251024656501191261131915431458183056820462288469375995421619275825703479743850345722409452619495271527677463125900907455714729195461374159681571232197273913460457284345026537560118497172521868711808511658656749115858761166620493722364741604897224427122730369776173847720892560723507149923831568055945347244332478559752146586481597540770148204722138808655591159772450362653073158835391642945820667501373825813981568221195022536714987116477783356259638813590726678230312710669313345350821417668748654338914145022880883470295452595486090340265666590119855467196215252443006721944467431201367825141708118983633079981557138646679831201802084570102014334309781863681551403435517698850857030873580258319776487935473806313420215804498202440774188729232657125181761681856006015571842167740735317879954857945950953254407212412680673240731921830939580279307387839275427594266191627237125484676838569951473544147789728068744573662975005317185414669278154705371307941356654003737158386052826697316162315983148678273429596121155435557609124918741855691967425547617077814159168991674132843321197144428527608570534263046743462606056765141163543618349582734261225696452647046571212372306962838215139297701652527966751103644966355173236763206970353154191505818425826713930905334506340634244572992763450562198171823114132836423702687222389235775852155711953857626405560790031394410122231208593728040829582719254935904361748995366423915524608278265573684755685083484538415542658285814069843476906854748700495976242507332670668951765344748802187177057239083198801975036143956907105687236715176092112298060873236690641291827745614324812385082839030756613416263824554659813077788808951843516502000847353269176333176233913554896159879617615313278142441991059818994078570355943922771383265862489975579197897859210626541126820265132767890507985384212857504934454086775435157542364165852964787091202145037867920376597422942863185795521133117906046665759816590087460264538159630653834419705285987238143644598660646521638719439505618356896556038128682440791870525541764182180727080734322932981373704644538341510559641382676352517777954718048012610738065689936202164353799622112779710374638646540118590728498473733311572602587006186031367667188060707315581758408353534367865894794015544892142998839852547881011553531452189260388541995452491116450667121776028974068260502043127817749560976468024326774973698869455520906097579452985385744676329383871489838769548799290016324573616059186286564271993353145471200773524058615540334965103527662275732087175932679332168166363091471093578959065171408095019674286127835121930082258030962543713678150290231981888804321729679712574834563102194039410614666249758638080420292859930711152160176720065171856572300494828212710726649972758494799512912703450164184215555189248104984224346055822599629280209594861337232894502243333263108219345819052678860707478921446111093873742014364932589417531345295857007203608208143566724206522631004076674907741851095386975535962113516730556370717481113354610013057720548057960469943335352693128797352742020697663523729302006679139111240319637722131204479556329987520575505811929205576094082711588289051364663271713824175966015904793417799598716118705611648741814402900439705666332679111430316362451756259121149705562085564016574144367440315296997579509409547741175756337766606079552032546478815600312480396250153903883048135233690158957375179081226086166662188836241569847050969498343826684235803333949471900688522587663824747348902208828032537413849355571580292679670407828466939116163884179758814673303756221742252308341082551645112956986716335040066154419183608896776839362677200844659160971886910322575906552443431790884406566938501619450486545852362423995305295243761029816782438915433746346695930722468672181283092041862071540971283919170477361482597525595028615915558109178400130676657369732552161104011730727350659807239177500474804936603259502355392782808008455155604972756169573995503356274558370952778261807551472627238357725488925744191954833920767684634669277965054360767326915591171990929695082714524715086768210794315751676023161907963627711404936008177117358069690099821435235346388207723993587617705739166600103127030972520955610025583990928954686982488470232390021579330155974528990915307335936775015802278092108762975862366654909731041710520074865804448727413246908146552142461677933284192435263981422936051404331416309389947125444862931997339306602266702012719859090806824333425705744212323170542210673598408651577949646849029993693047423518682385657745318522700925044711441809967288396217880009573900798333355997180252661428001908228372341624405842112926671317666713778531509819423517078874313750772474678016327662888596788164482572049906499265321351628036496771209846854236195366635362569618812114058045099368472280322245711543094770165367000662500285368953828779071983345212696173455173547320024148048574125885331473003425456725369437563613009351199092098090719960735837614244833183335133275745062789583261431653171949093026738579888374800049655384780818406594100509433034718225410257497707743698260512878483215955166063317044862881488541097632152785493710411641577939316393430491051450581264582131512615720876712147989341088226832134935364686956846103861996122768645820783847857134890792500284080195381241418211435213127609494543852860145982612197966087581596781238539051042426714808352732137022702967052810432826778970684027580480229368721170141047390504068224629827075528797954251777379539517070188048393898856209540398087495065582815394328544012415433371355794876839706552158070980220460881486683928799892907132003659013450889927801327554956704203365642438728692340789191450588879212824131733472293376630814057243908465347175453786749867870297437074576236914792486448283291650584499210402837991216933724108555944858020532893827983180525845229389199894567829739194400875326606170590165932348253183280934130870253359851111815286268162193396558114794454097666969494547858782405127703075968508322845775975033287899443467838922348697899724515522720647351909744552653095166087279287007638579960832465764331207816682898012047957148390879784319980191762895588537509035766809501750229722866866908929973548010620535577601400821908038615235935361932925102204747731479445160003487316850426767070734241152779886220732301311173623094306383972015533958940486918590350252017223295353694117417639357856919235884992250972387495835820692872916748096119942402825626380706719340879180561420312237336686367839688803024867915696783142635588018801240683735451687011572786179723014449612813711775069394283210494195568150449418227144557554027267193709446636032176243578756286239367483983223064357823131207986556128613559249633957450863700860266131311443933192071810097868219163556910604670537320704399410070662367129424905940418012007395990813832434600752030786265402103737288873789171394141914831039138420796382979841077935441470792205627646050201554382486642872541396709360914041875756569097863450419984760289401699488754111387994500134418833108626036130124873369323183735402722527786281156408888232295728834562394798235844453098091115758782302387398011518877224115047247008210495637820294759700482455760616481269020914325641735804729302039025920350556304294258597213636169638282286130232113631466766477357768351372882504275525229151434223761691376695180644452596452288932522144840249664325281752133852351860229226352252995058009565170414433712890184157545556486663932821334599544262053841212174630142208612115815782411857844344447439033317114962775929559124982839350387677136788953375703055751283108614670793513148414958085178560352517520689644764624603979870188736778826594812723562143169038816391287320147943724874671950444797400957631240919779701125294218142895542667275808504929595691805818867367495451962037474305153926020999666630727466061464651724376017012120317559698418351883306223159770957126017872703708078253914645265761332675463139615230022280396158675585461193404625034442235467884493048786570086644947924333911334632596709735190362724772307628562848939497191806723284961336735709396151575755136264833544526729819035801094768197850179192615574505347529869252761815993642533217246682718604688075932323718328616932380232971561882532534013981309417024398086645015121817815460538563524893281523384634650966789239892572106724610193952697568260004308773386407481118182628765161021663409140453506803071169680033455128526562131167979519964583773251154473023114315717700072381444795482540232375354187464791941528898045859561056399011410955626407801883765992908405791865689537972648783662386419327550143387819638172766195060439695542855424350521704655147904754630339810586194511762917185375343227749796282719727672592336883712037080329147642143897574434518890744850278553571998824070493826917983611018930027971366921427470140443900046309754956859918289084237380061563606090145272683550956808424388720266419773856280741230718327335641988173663776718347998320188513960586919799315138105875685581166173849425755399301689496403174123076376863282484516360767180821340640857120870750340591502785560089026196873807034127729159823494837904231245469297779345877213789935076851734325075105161643711372667910907840486480707736041774330026725755284347707238218366309844216733445265595109707708501901266447592076298430111630598700483523388305727884023063946544454358761214255557308586183845993204159357225906009999438262052502186983491619532091654845424085771704128548506106522219671253410485349656591223985878503284213528711908686221058658970708227869536940164405396159489610225767459373705124449324950716540014650362498745529174438836734339916459086108179757986836095881941980973297133706705140355652992353165350851409715212937686134176190511700466227023357209551466759968370094554427770255058693313508078315870905575995631176381236888927623081436832263183673387972997064665051069398692563765114742423873386431099961249429655986877647204901686468234943695881874557251239785748365562580706496099525877647182742010265140024117636155489106886708037404375316623276063777067358159966638633043733480558844442924519840284528833254123320359573403892682108678498600528431641131042387286729015527683436582941710715759628718208231512450781402260953232867203520768587199465606810054773682190285542169786971041880182760295116519515155287436705262983595765327311449570117814947760579602861280970318912357112272261394779655429354175852820163415552789126367436580042952994763405532630828212232230124686674588724861859993078948738439237842800872740824349001431996559706055761156658689825899760239562296291567734709174331866263119524240615074803462677390054247485026868536244148709174682372353180365259703523669580540637698783916825586950761629970330104887760342590038583356253125076625080247143701375806045922712276253601148754977415220544276913962241137530056287332783884631061750070692654693125977518890317783616114677772118485129022097387587850410724051766448152104222130255088595524318791035317048323588166946328022217400575367482832240892563552384472758500789164300761725292838340143780756229505641657781521366085982970434954594506596617218889778042266928467504442989435039080938966594633686573805536355644231265326511796845161217040235706887927026359474459920468327882785415974392387368704544007523084384686464778968219798298453721518580790928165424060196554765204695745031756012563242600042314704861520532577984979174348111658212376552672185505598504907494817840923077184156769587890606110882290879013300195747710018375391079219106557828825882549504315930927431159953274865992699538831339686794355669040519743990994866871220630750513973865803134695878939957832807792844528598970527986307676640749709499191592921282933092182825807715756690962554753388515807085100881493741014112527451946295776007515076027098655908609065929391510777619750460183286632524452123701043167365720501783814891110329608914031728404672247238389045147115448202675208311191448352605114471996728541396626859751879841192398022984598713697251532590455359938440576879111453651125989625880159475291955608416219724117934781889943341904152701757518918804311161605028350409719724228255280967461460729467239913398147691100525935970703241344185281382694648811112006928266082600764620358178590341644598582995405606526503594373031818398916024437576306469137277999282874806870346766099232091933785632627731074765626090581050569178688836878766435402603719949554427974054942917944377581603489446378913333344122209467324196181657916154095980007985170500890502321062403134299851203512105095039057976104307389118404975727352529457292727752490857229629978250663384043654477011344405468459885892883656900602658740698249107019507386439270355208481543101041206087313559249226575763919645088988489785075846781805374634995192378582852658309000597975763698396034430597611328195825682616149461513107788482744733434509100088496735276492257075622660034497886715879686370703702117089873065116696405997772829948921473843804413079627653013453918009910877634701965998726120101855731704602398695690882164172188095742990162323215402275567760173822217112711352432502231577881725409285943700116777523283578851693533831400653009074452932501901762641621751936474197005986452868007533566190648514827797332983929780800991864125299603618291458616559257391972935944197669832739303178244642416121653587482795758920591934256198416796253355249505771622993248081563638722044010007741733613477108239032277183940147171987314845287415002448927889928498751312200658005108912977299630931058032210769643026128093082576879891284608990923384288835106240691486217113642786699262901745500389407481840966724375149225793904348681387805373236692734826847879836806164026037509582728835279682627771570369390746713391725876888897158767813190308597266767413001948170197189929908260455748667964291186968777772435753880421429155856547746098566589968601360251369176213048073214426580147144581865902742881994736794949335935792002931114774720693299016837141486918073526544555479327098545495256167219823198670097710799168816949938619777925214501100310580747895928194382030598015351727240804053701189373596056026227839511519794659954923896380389610876431585003582558179602192216703028063110789151950744987432969094706659816568277423094638480532483501301276052571740416749219334144435543273753551686721699906352862689571141594167735400562874783073992676824371965887776741133219175075664293205631704753675793588514749888770646973297180741267927271930742175620634419508368654366323151453407631386216249992287405033415784844875969519780511071085810216510186285691998808531911663259703587474564520381998382122456510546723303071515216497598049083156400584113798299877669295724879028067007112083332233217487664326110271453602012904650389208043375218662211403063108281131912828915203322907235066367794072341424330776799359070185918167539304541348499881603799370429812683738903802481136979458537437116050510710051074617249489463940603981915122917136372709699439525974230073476063536467050939548573320885711372630701724964734377826284256706246591751407324030740967607647756610806107239380663707795992772723638176846691555449649684593409205619797427024262791329771917248819180451500997129448089478388249883700697076457584175415461162635520598896893569349282542539621063535609288020768870579980507912719496458473363870443225782230531223576715440717153658478771488087629680354184693172440240938067807790163534208741295327440322045443186207542287398920460730953783327439857533718834799845644032320857544866848152254227026344954804721239128189699266260878453849688545016000203083204036525051517954072551092390076884586449474795769896910360949638980664954702726811567220725265468685871956395440760976063574133056871782216694825296285098940655422926597455852194996698230247732360656682037032608678760704428102393388994883524337717960065119300835140750015019809207350056300053635316053790625057954168158573325510879070125620358713753524599323208849503986114543718197391851555636804187913494464226830095986808454756243983328359380465081374852904986694222578414835880009083820265501406752204825007624387230871643294573470449230289341481825560112286963950695751212121805485245361305146913319941759390002396146039906402163754887295968482781830518994258415446515581560475253825500530786751475149327117644359445532509087646840887594818310824835037692419310652245350475184158857660785765795622992675449066213704638187485159713843697575552566987673167358528524721094835910390300757542550541226564486756055818993567524680023180570737720024764134843105707992175695210972257395134457151394540725655937899781489523423961174263793095879184450274541667304157500607854179073915529588687213633155794826265640390479202385241862218868218007684296170896040737402543138225091978130718094351051352355659969589535129482377360851126775796404547630514763625383079137802388593148517888574977968141138147502852309939099751786269893297486374890473750937739566189648999273813547772943079434632188519679296694587764706029996619117758523195467287704279357809133743930663999541060775847244371532045373854389311059493104609427868599928015613496746309294486541858196629525868549280785314446176871109657639891086139638193243343207390762005313172872616894886935372749490242758612755101020523948991701095680616788354806933479382820677822789541749564970126816165722747150697160627013273615492804800160448983123833280053465555159418883663275506519196079998485726168865457236200138966129427506728132161915579231266166866763409306697655170124406485321743916339618154342392642287777623830264868294759531911980238855958770263389626391362873721784873087988141551795156129463116014040730512911379903194839231002290375531729357122595133938006696921359771845246268662367356635994593769459342104859531584560956386923517551472571204828092283417222682969138502119785766566644444123045777617468823122160264890290182235712686629328714141141125366304735367844314445220424655760232569388657007635396067455386976372065296397360335656252421608783881168866716768570042992787664951049904986844665729835141333002577508530783190033641855684868419212140443313835923349407766534125941723851402077479780077013625742387397772646175789484242419629182198859776190405671186597962869860708770319673544247440858707320094137122756351333309865513584511853593216451518105917787143278016374148704115886773053482740127558874824626124940136183887026061334747330934852118107826707369232199956099786696480190517313171023039576166387099668228359037396224519638279015666267637882299460971015835799567529767609330968149335089881313049169658719772796002580467416189307944235719287843021277481473077741599423086800511761167853924239863617470556916098647552885717070095782406220727243433836154401968077165821800354856142296720786085643796563902953418552328292530055052477812665872243962884647443487118302066692731734690649986986221165461023484708892693374622463171494345169795581904478490321675633620455244385480233443326361257142965355740837628297429404823565186919419411794432661905637989066079202576498290975826065946202886742178922524932746397810288939429071379693098198238670046528867909684198980928969350208740365603526496224960654852996701528390266084416698299642829712211151493391870213088445362739912407115055158969444760797690037152891209504012204776409643159147442569847840184760238259302878093139474571838141543185430570101724879942140059518472087974671954893407059092178443854948482402694124804619897029924607393738945045756763582432573664030850952111771245057390719697353210336674888768370560729215758264797669481926358735127709238617698330607342432014417528301091278913511953578909434080215901380771561079363252264628980557028267973139622413864086197707950282282947413387466244913678200973593883282274115603276630082428459730638388490757405668386220774256201891936765592994950008782016825955147587159333532621568669482765553894490669388404030216075408866347949544313175637655583761173100704534755224187761665518828192394819565839947744962924414941894991760851450422652056950687346533804756424339640526594019044980442830189887846956549413297958112485695475759541988748936467015172794858475920865853240013168811814872674212919530827896627443277152904028282783299735336008342068074281420670091664526841691092554649481560313424131311741432981971636853341290210392250847713620866936974610735537668128121212320317959615669484893555261055076816507426099314693122994530471245487515679373867904694249777903937608976263062565782950844907348498556196026944933502880409900335874581301171062456945820252921009303207432017827583837383403852832153776224101909579131889269191836167637181475749004425983737118977493299238343219542886073433886354800323656649563027810252222627741245808075187822244694906149466037116816912884745952152116767879521558620428414269549884726532569574203120982355695002434737288415461575483478808441634949505070250132619080475463349353058761165107894726593568785117172023902503930825510101887601828410137294183530258066135717082099689391657188248675810838542226614913064475487357335774573204887427837484569780172917895145692394255889283615161375480231363708837277043797900622383211361286870523267100440783466319638168577743694243779867190509108020026004478269687886309173110212960966943573934939602664373595933855169205702066635431073403898379972140819229807807927647498131460071822721156001010180998347747721246371347787453769070314256897578378047200822079026582389068184644425365011159468726349139270625798830252299719246616816429072152164568197609929742984089819174271804359757191442310891416300236546503523174323152572989635784737559228859350919495919043269525472422978858522452051679188973897794753983085422831147498143798647594343908247569781770770938017464085008979591801531420976523916423117115235837276071610325124805515151435740316140407445022987167160737734266718324657682079310259949177421948080777677744582168219247620650572788709525653183004913143019570772362038844209079464121710365152331299625953190287158051908590347130484519746208759072176576880655519314062263783852320454517925537185141503788928583783003824268664213887349401351772892141088532088013643994796871706212437543473700070884027594608970316976863104190120875445099579050299071334933768248917264596927376109067227544782257227147446837465209429046686317545517067258288344942645256055410833007116850338862984761342103416539260884688958138769576540459057682470717552029641490238497972047193491702709057831544173255646954201739466901929789853891461656270455229135409057631023111053178671634934266273126219602173468496967997139275343815554768153575242617349141922236555725053232387026324690331918269471665798922115285066144477917735324275421432264109208999170690992364384542672614214262712592830785391463171984447024259912235483248396166927691968525017979125387355921314265923223150542056577870121158468774913762252798814842329632465815346448487673006018932989252196856663766260245226833209135067094004160049777875701832412729364827936697648114737978451368351247276542281506872234732505351350334107070120375340836468771872965341370010659612417017135989305439926122471083145579753782652271173804921792432475025407760142461751023646597089561194150760000944383851069823398515451900282491494608000308735619609041225044310307317703847258599208597595933938910727065459517240833628103528963034377955193140726044936317456890343526546161025554743247208144171279501224907944620927903268325200098407538690282106704809789431648474072365727909586675975760405773313342416781707547808601016349066261969588643561270829686891487999904974401353535880071934629257963307144481747515973980140113740090734233172084158455753085062167796097612716234893305328480314879665225736337333767783813015034224327524108139223592363139145881628273389570942613638060641151365439742726677943843448811214073536076993879969762438085172079207651086895820534558205332399291093819217103892613175052101505450221551609272780387101463366730131683937374314970998818613885982393933548197679049753353951637713213638822288021228858089732918379716743181901858733572860500924225563522029224429359310843485312079380790147633445464952154446362343408359053808676646468852624022843493953001351464591709189741840011324634544401901951334795276160139225058488642275507932431515633301497523775335317254427074747080761682341318811949400440056905109273870303001734230554827404898252448667839323744025452385785411883156725417211325393585098001106170267682094754961958645477539245686871800647905292105606768661078243607314437093430106193219436503109658525104665700010011124441797500453135762117629535994351032809855509050142385998360231974981746677031262090415743597137578880599323584872588944004225863784529115295531154647017794123860403671469395202147782892563797597153458074425559022310021556634292340681763906570163414053279364292612071600836173280626340105669591272699053182615302328076869480215409671637178980280652647011412509937203580459720450683339617633484466608736351024862356640946243017909879567472932601420315088886526037146786537426649557269912362493943243584806755378665663659711232235030435191287501416107044782192906393202501688124570858537753769889618402496041359844717472277323832664627539545460795708749199170127908873636057479840614013880472210239255268869191858857419202313379277578577232466503658012664374870403474176346162943223364717569512957186906189491548229719817208469683082425760291536855806434782338405140146762705012640527819162044823494795925942069929288103867864439736848848233749492932855842288152074511130629593525637879066730161132371589031744959096531360314107668486696859434676703024382058425865865909584915677938283287128528394406809691093733574935653558032928627362525383456077631002919383965801517009267298052138693112540381221752311107278600490793087964789432223312691313128951091320220565780642170685215495663165569027876799428964129579932294076082753895196353908517869667391561633210249226050326795188104247895228740461772531237690536748048250924299483203525169702079262073990433676770104890318730129408802055998127910283730198423336728709871661797733233710981784340247230348435580507500209771957675062525221747678858475085684812059671182222547029220279676418688701208860372663224385042619014843876929660372364923527386694268491007418400430269387061853783208872594562356818277473954512495708589540018655533881830411643611711870281087156468907448527078880948471744254753521396512351531152624780503019860180491515742511958307830198724233574520354696322692025266004637789106628929653726905779861781414683827413816603094081259214818531130631682822316754945082773028125142621629899506027968856728215154408645665638390991448038911006930342319183859254618910086324181980289371789842169036029204184820455478379548227674582227733732346564542490580723173659993536406094573964483945614485713173054782823207509984638358709938734421608092194487646088931968244413920970135643513074675425022976772649397353900585324120954074838301476833344028432517336534907606305699451422036982153064789168426390863542267201386410018391434077231911711678549673740599632119672639078678782317265437238692813777781643971345150265710545220026820230363057192221481659642295715494309929524672292048493272909540069775282911486723565742037250248083602427265774061265886950871677167464053486322941925624873047081868582697148516475259102309767018352793038360282354733500200390761608727420871130282423382186103867994277576607968869879777147095332047079285777631679324612701280631166742775866906497487864943339197602589728415993740033003098536149032383581447743932114124762102681514832847851160310847927076302508881406041367211731903947896648577924082798356913993200742043542106497042543729973769063594790659842071905309271610441291611780124534450126060303311335372435299386750145944455330212451857612768534421139433222233679103671116508439490302501400010714912349061239020487682089885948331029550296518236756770486626738742760152731419339856065458223775857202889264636781875675012624011006948850097141742610175832991828529764011716405189139290700559128932957337296530159057734774455789552484283836601893935581636994088934366232528138027629543771137354369916606962045199473949188062540214013198445904652355412251260172189080683316517315690602940956414263315305413035356841027345099709699550133063523435109139631793792654491563390505360842893934309661524076469242603946051068434005855008377183643934105587919792948275429502711208656161388922427472122946876904545946183173552997269509148706769331850520184392292809238659934888112148665566044851002288942116438892606221027729646543174965506383326533551222433725237813578355514003263813415423686899243866317629023315768910028702415411362904464385901271996254924130565752469052585880492973256694924883207526641433736496425023190422338678055833543521086513238514231235396998077253292855613896268213701122299254422032460166991340502049075478020763216302041438847157706331469297319197893150044916670623775279693441444701020920446191119695701616312245727130617723342198121575321119961895051269863133102133365501696901852053298556450999259706975013136196947387894877615772483536237854308994629693089429056880259580091173421022434825343565612054353411606264170077967734809573298918105083338521752013800187284646455428117476159038680470120152887497796301496444852986958590000318545555478052287548939182336260890582761789251537374696189207580282817743758661672310015054579823724118868717195859929688543804317686041091493279494313624159349742209720784428792449653666400692518487544504802921943457349412187512327368083524514575637892657121517866673632338952949070362860448600598450344658776290220971892515179646608195608825542081569146153696609289103828734183885601403409349631540828680089089195037982125990226580770450207508505462894818567463522131203234883300684625731611810758300826752587279663366971425651174731062148414013814979012252276526105586923195595566310794559756805703746902300047555555162093227731226055306869905510786252954239599786626891961707685791113103384347155845578008325311507303622754344150649747347839900781421946490342883927104667921110148642954622737068257030512515688777940822248870917350223762913245409184547740017011743940045815218120498883262860092066306765175403512559371936061520528272357395081975533854324059460508591166679245675736830757377877765447280808313303753634799856908153966899036693589632888573356090702246104462229640718262651536691250806258402865448819920557339997080271598109886137593811959256052475202330785135774286230693638831740620883628055096084822524724530199988733863999395846164313024934470751695892018250873537810424680694538616723282962343172508399293497690428038625241377948007130579006357806270131292399828691854847537573238125742520644821000274551071420958810055095596674727702731701865611248452480815360967504665288577423698169303903440407961869776863664723501555636509362637132429127458545348897518077240836169293937278429132008048664561742056223313957637602820959193056907999585169048135478256176934027990370656830424315747116666488671451414129375979691527524242525258982684667919736146747300502915870211521990353580510026564540008644318276143887216874475533471632185472249743842184692138938866330094832987078229854634334718366979555792188518651352965190044929084838632613358119216330350001157013835409917004685057005392392226648630762058631024348422456570017829662738902551966098659315183946086690521409705586947462716847772320642623226870222399931605139473419862116759295510295814066007711161560843912715815964689921150035870612502388460428414383350178583316293026390751462479721804219626984035718945148582933572445130113130829908243201354512060350091836781480952607459263919405585572925554941172150132774734727979436749088835710375879133915393208521378055590605200153875039138972011181485327663245747401289819297171946295314873484456496297155160964297538894437794514104100991774205102953182944611405180227004787765369125225946154905981652694863924920378344161510900528149477381978443291959947440290561732529455687878210165422689133947365606277116355757663960320009186803011781042004954867266979119250686356489923843851583993824016197183885682964400445328742171559511461535099131084273680199595324929544815256317156177922027639524097058091140297037341222745890899134468888923298347085540851867212156511730652703248963554556458389793510011044829736023405011352311736619340859780778124006847928591029263455360450468594126657474225314018622732794963152848055901746586407791198883287111553297856430904077067579872724702592919571237957813845608166023493622273100000320305949292011639273384441626279893696696037818959141303435723311396309640190760269977121031833045508155593626395511051929633949409500954694422404795567020292741176504435463548770574025242345009751406116076740470094572852951411124550612104344157501523229068922371862049647738773521354063868494463123340352515025099741804437433140310635946242626758753346565272100622550530699419222249665121891459746068207356127942682365498132626363564190331251533525094040520340383725738881565357272745625614671706585298922146372272581482276099279310189772823081063755055097514612004309645006055033378111468870112012452630270935056323809685636967597189424083169941993653843911426014139869137280275168907729640548684106084173931499611184355235405460879807128175023105312826292000963699339110971173295033374250214057609460322235863309273874652878247520503201472613166984002194420273272280494758157305686825322900977498592306086927651012227682599301649730567182704910789786792947218805231852664240077620627840111534639047996829252767544648897148118021497120021127508900525717724351754681300813030844501170460711334660888887121252495348582131238688712704271712312562496677123656124586786022327488688994674146633986801794076543635004169758154409549760758176232468958578814023070042601055608728712728717665313378918371384869342077083025845358964733481548507398189679169541382891312190683377248660841741453340812050931830168778843414269635479099262482725576265281587866118278375703951305209984885361367136368687683932278929382514375733242786394815366919825695093346249676107095484421899425547677160961520202905080612135455083584222846639710461716924961007856631642306554929944745562840672455771148250975781231949453698444152594408744504257006148849830175508298482736802109900665122174088032406720687484797981355431458267552773792203218173558001409364763362161228505798311427408450492285136589696706908116822425178375382313896976099786225456046330489147247915048087529680985688757677874796941813875961202668449588243931129962167083744495012460267130720846373959712632970150516653206190543518282698422710589220550334406926842568520950575806415573855825153758648486931433531221131562774088387217574904708915915057590318782063561844763590403076403237825948060968412900232536732658887291551952575867600608067585302220460407797184279935692851124138557928487499434377634656916355087746037588925064797779559473780338756257626638862187365202321295591973372117863055772660304465635102318067116464965368411342171182733522921794164121328176451294529650533069970491145607562722370857318127735323505865860582025515535854982082156764894841542121379331211518684509674119044290823724205922729982528403185166461250875876764514855616917523124999760407651391133705851126980788936652428578499479621933014608983188011149589138867624328461406991804560417497166395710288799148562509744687365650007575975601948752974343906049340758005183363838052774571662959439732429652882034649001158469614130108042821532232558562946260587883377017211652265912756230875414000704849990815116711676332733382359703318405510628679433678099035788685857855770227400025124809350040873493237191669314790880039129772701599298120620106482332921050214752211914208630329918281618805965092017666939444424885068892804799173409525507408856363085849186774568835639754354991971055646537930890857231775328656532555170434244148687105181163474820886954845476375325710717755743452886131476869531828966263874337845084978763640408935251684749265183473190481118821676761450107749678221512830743584848339536900107616437774738165013232043077779208351096719131672557688477429023184292597601337146176787587769434568419034876868988345418910524182569180180097939784140669467633349538044099315932359764296791255316276977938229617374729397954209947310744030196142619596423856221875887258546356812301011998199006822979018872867763849358029507348621263225559160788593996704087491669755056262314224641850802744444263735523767334256574940894723426889692636006378974184455817210736981832908459694299881730078152083809927481140398872099123039415071212820834572019591953528475200691443647221339697779401313160558919051030806003776686219166110067539535769584982728670562241198845916042713241101427492057061636732126812923757290074522000757909994524813423732479024388719180166086305496043473713571253745000541317346331641645531185196125948626154658649804126561618389425431912563276849143986365340112053052481945739490446429871180726194305492364490226398209302413931956885139223385310497489282395283893908836749801107232913371498381789075056666438279287372113193960632882594254867901692769026570615832499066201525889832706464021554597553980328995478543173232814728497319448678795192712942145120724018666964674295261188932632527379711690039530631647287498601601381956713111469548608103414722910050954459225309986025164055766559609594035286374784950085334757126947044246171299886091999933958213963330669238411420890481962871675535142068635277795282662560823034272658863441641886862579251233417882184028882597121975974833840337534846266590307544238919601767022296806527572576381138508322267878561522150535595497333014158533975230317326893840546375177687597644626154366038050893579445445388740897747365644528655539046074729239847016595719865007260879070365686044247801193901569738565410628604659337472531782984710033432262402157822385791505990641231052380904817499324921897639484707350971274081198242954194611279889203788045458994678284488173460583360809737549662370795237248927343988213489498484246938775470309532593994044551507549073305400184589661842728472821450186171928896354569815985714733108638490456415576752993482925244793818064053266850621113120139368519215397302478764814317926453279222885506627572585439872352836207539278150131018779060231363841642206159545875791663886150301175798610131912719568185180349550186608631401991396765566955561727726704018982309236179698716513151872621020368832551527529179514283292356239766477714186492260692082797888542623997071692781415091363495872226731139123160477803529341619651416114123773187864828333451389717936521973952256980532604929468944743222522097255971463572096098741293184373213219833760286257049237934981311940819482366965257509501761573095724166555582566619219849432828027442362212399276023347909491051344517077159458942106816713794986353563364379852144146502124907090932727429196607998693713616509007843128479826003402472576885260096139328166911796703097982212674800426380568286920346699082914393406149841543429861975286322232161915367331884355227618303351650544004477380267301501366950870194356201891971061438493647283950679785950774466074379854531117435375004317501047671197857941789110397165118524502296152090609134874655426328731859174165716014447602144358702498966779553799778448116806755617488188784611417456920385883674419629695182572549222687913227499682951798472941859456241189229720932615864347029834021457351248261761200428910108846642100216414585693079267708756088884992834558047120082650258509043107617574706705253282529764720804406195693786948842081697659733832091098721046624473297735385655262698114294901826968868080079238202910935885614396040726539959126141509502569367960428119942988208508167315280378343004517497818117256399485941987334811024978421675599175375444328693573904122897852558623176664597601385338915274628606304523243820326216670712953381450908511480761220936136437939133023672613699305649309478866486490674570518273602920278547231697254102434868558851611445957883025414000859726853119536099606915393691444081396483569565702158308866686249765120584909714384896406133740893220279617281649166506384816086873269714291821360903739743263879145074927554951711476534591320085220313815799834588829012635877521638266567672582519853201660428107882382747969701671162307400584526882998923812601075415982529151112508237291503231580508927986918527329903086928579567586229997474488581069131832027200688510233765219591785769095330735162894826349304480944832593001636437755216640785310365007346608788141095247598356345609011267015611314752840777690900626460514962346613877943172864769893181743643375614185703246421740654443965834089269867458967598747385598213311434198893146754851883356933446707238717693539978713175543183373041987285834132705100322136913230593815878348571038930675710656507558400430035788830661862072781453630935666907963448540944052021429837241753608494433526868509257648126592164348592231067365464561110082055892147812653815614171401522449406161841331380794332244873099594282035566186083689029712805855873896679340027619412215328608525487181628995400099664355483961147763753078103810944594121629770093800523753447078188280384813319288194449679551720059940461942866492759638560917909992747996903792846707524550711455405680816471115545208441274531653075116260428644172411582314967520451701660652496439865847040416642038366477217487678965074537234667242740414291055360164223898762977031260261966250033292288705892485782166334199679912789920188933800815264224525506680535915516381448466967855626703889310968634866960332467250083604927691257868531557106342159943486146859992649045309740051566453331437422439557940902347774296734217768307939571874190661986267583468739325433313016732476266708138178182001215989758240496533351930717026561469819657655431598933535859401562253035237754743812234498535642277658404289135878738436830713684131441425122425583653207024780678420685003342302284810440690629004262702598579686187166316473217291763748593466854987541846209159770400960039803095000527625363242028431970277952461363729969031439636511781941178987241613882207008634994833469370661564677915497271456148235311807826653754352021889527200122350349236278073170376661897199061907633552303275478192137262103347785886908030886577497218707135544590460255265434337490238418908442245671043942925990442245225803408147298877267070243946214364903588660521423714389615411499173953939019719535264096131825604006976402017150466992061631096424373126592077885286200788330023908700189496705252760658216871973422865219318185573119934496664542563495723156171924266716544918126893093200488923226613569301880562233582757758314112147049045277605948702621203480831235089093545057290877141844675892603080714490074689023760085660621506545017715606599697420590813199579441307527219302683394205075417490415359228430664037905420718807266346009906845390797361311711676189804333665644261740320355545486145187396933236041209263582720622884603133024555693635251357995328063886063549250942048656646019641807554886911929344787851903897679069858556914173223385555758840130626843789791371512665382868287373308559476292038683349456732461686494310643264241428788480696979021379888787396950404378148966143674077993071137328631730709427850881715276559849196339050151087237753743656868106779945616369411560406118342841756417778221585378858933050456381373382052275241202257708663214277559319970109472421207267799374236046501143035926031903400789622013332542899042676906812301107528015106103584449955754501722582587985884600108131076653906298610355249244957926448352814392085344920790099136931168859853327600143656484580094038115263215543022608287406400906065037436436151876529961289465877924551841363606957188012571985542090535315460674495338918450742688038285572528574249192775446807315899266582109667363579252746965867927696232358902972135746369079200650174643645183371013081530103504550822006849672554396379622045589075781774082045588924258827942537717372990766359281643966813208155593727735839413767641093393346995318446277284968967141442475954259041053267711323048719144863279115919020774096869776378225531121443607358841563677103332837651485787168238278931546685655159856055516177437297804186055172302528176243999185588338768490311971981980797819314316314445769039566010076341252955544608922203845945468738240145193668977412112423748882706362216065865336697574922781997490988601938499499953989403284120670808244050426476907463757173926691120765945375832291845176047581283859971920635028826359555537193077765945937109461823535137966243007319375471446662435032480189808829422676595842865342179024686965292563792256834859377102879936373427062115152516552640520243281582882501888957837253943733075945050606819152631346974797948546130620990514765981686497608831526479842401637053747772888302898256677119840045063875149015464527913972100860140180985563988625290425663672562125485375574578947221938476911897181034234871606735825177139245930567669656428631749842841402007805719876909649518336601662348342180544784409943372014855297501417026905489987640485100913518847848636310547967628895874852340855012209698426750478147258732871468786465240381195824022245791634714597257545274581456456408682784349038878610896142371479560833597247528564438080566623759392814897050468072980967663162583890351151847559054289689152252745873852675967029353152544388550627932801070201434601883198558165924136304464522215791579649457438757875435974400984445361359053336600473036701883226087120629950036850210400680876357275785504539349028313152900828800246882271420091636845849742410637293907376637464154526070534449531151455219829432763062652666886100747563791538645995646768729595509695764612610977895849092192364861596857880166972750420757397476705368036664006305463157098333577423267034659698667350377742627352093285883023701222739320325556432383156814790485263305215499327658810805916107028543598700679808303170434772177109183371322399625322242420530931402979765534696833310565432094033313005905095845656198927041811508978286257933349370754185179060694763343337827862105594131393818951721321007496931811167934327842550567355765528713130516743579065605135681948284644096367085703218525081277669885704926248329425860776351414206066528364359925920892420067257427136686512919108853535683337160323788692557799012660544932513333476465863403019712740248841574147506661023587526979719786706673945251530774203623078155646528531321461414854006534896879328400939917278107531555011442829653176075743376560366978820008869303056392902847191578042810880642957774471499697515739676994869311104618462735545779066499839425504972538879243816794568394074373276627713391729091423169316447757264794249773307134936352099776724775870347064821938898744271748417734336336662235156260935282627953029901540189942816591786428622304101968351447723696936578396590171420133145516367605348405447334171907476780316201033186569305664400758013419878187633385966462340428284866450829121351690813716311868386859763258285371077018848058763345880290740957998095225047290012701672656719983542236090785900599158915735178353477220031506675501321958093123069125508674575760714578412623549583422274790079535161795152409862467920903695866657306052734091522203001329735465566798032423506513379964153039016363186906468274887496043474823668319279482134242042252930874533754490304954017780892904077094103548762880874857724500967094510532642349495547507461377134844009539371489547206039298836142963665617940077387674368385943149087722861829407217030991089773543144006345675045705369534412263905787956122523447790753808120359806454058347134362025605429313322611917292089626912178791434350503416389734766899077573837156868996404368863402399314379840327958328224499666569896113047002790207839240152794995268581394458952805709362478972514306329014725220490250700945055926260844930367950871721317418655896593564395412926146059216306409143887585959953052438258200361658473957118624389364842688334817999143656768093953072354980755307578911517178332078489868138171871458328329164880522642406605141905104869919690823909843207409843173760617083972497322148864082571077340020415925511142158793115381836046459359707451804454976869937119409418658846593104554290355602015202789253744636111196144022107202964705944054562918278820366595527136313848203448265537595328344709586318932523682694911949163191716363124608102944706408175712233462182376544942212602688657079758835764485462289687324505768014373333932798673963577153407070773960731705020426395280303646952481642344724688567333230451619391542925972605044200271375600617935316428936041713520597590339308585628938775805276995149858202977556824912210750390157690390065207264064817251262243850751728630912981442339614511296462536828969414163713849520771248720524264099371465163216145866968218501434602965975088724492903702628205563193325602815810796985946958794774848306750685958464966461169200133061154241534897192816406574380928896227090823004283287751752565590693739155224549010703220597157657925435578587141315322137960792877716950912894402126635315199168014315151213295376197557659454083721521595527806510446483370434978219246944808649396123722436484350632385092182636953405208824959585454821038054999071681371361570414640745869561240902887696823700808056998212722698903210759714520202672134365455227017862497540867599054471097989185155657170398984279844372174319774802602985125641371431850584903873886641809747645131884445243718046354440442533488403066586236140762902920506050608851624634370029142376939162902046048374377956582009479593702416782279581350402834626144420272393384185444104951865059393594159943463481902274010653860807940943034736415341775258268911591183748120974133136374243376789338834932373221682103681083220873365683990958083210112815995471986442152140809734600791863047823563450761590228970782832713025004968247552594816022238448140865966312136763635315326719280740288047063231737066365087864033972273538996690053068357006514804618089200934446827890336531012903586577407943371152720194667094335773958310731067358960085853052656661968415509427262892740558228211925099319205633961507613211498376328404667662073180865515786728588714460984640341603611252458849159051427288082573685907883382389582055332129892638734360641881002573161137670728228550404833771354610866340473800489086548757011570030588531543358864432049876046622832222490351157240429577043946552190191655976719658458601593325547478408197338826412178194899783922666623019585141175070415194312711780738459406948057635503904332578879556113531302726322665138685544498176972070395744367059386928705059281465726100241913321761289187920999343721291547126853531523138759404817740543593577252157167134599894447404597927002246443884296131189047918389538972692114574401830114679808972032601023038237433877701486768135433276278632810741835034781197982429408453993739050270197362920467649511298609429550254138827189972897824410024321090026882198600565306384102823710829099487555487010455085580070439010577152288978067714763287960994552448160755799864561955671923485350033548755762154244202175101244477633498805985735639209503816690190047684901528272271096427182337504903732337447146160742490693456369863430868249566036577609784968372316746330223756976179094636521735341133608669308908279506009005526672792838102673644043528647203587963392246613789103468565330547163207846697012476519254894524400162363841501901583765061924254189602799537698435101538282112711872392891136934939564554862150236999558354505545049965551440974171149457248346662963980187627883696475784767391991279350003400364774291453505660992708261878637145001420100135357110082848530940435205189845359992369717201065985888955399054485948516827366154082839010101982407164669871839150391521133681677303851447489652946756500774941025808629622590512964601881663948562700377441255704906107710742991857495664366457049291683854940771723714264580762305041276647601160104184312124958065988471039829139391527568342267997672843846004941179402977566790224707440494295013115214779531081531817773477909586447263309005464569833071884519520770599806638879801945807048844273445108566366371411384416582142143917158486905379564322750264496899779601847668772977930939728158554212066450010217189584881298990505527564954534396596404836069477603131014408736568104357370855603152006415697677731327215203980978619154715358950939387741481471984820402668546488188256464111967756323582198673010917542922862037431897454266900217395237932589414961104355606500857512591517966693332564160669438034515730107667041020705042456795002186379103116658630648496775379931601525294776889078128841285319061976724509625823036424703349988386385065378932250539460547596145476491301527355101805110242994632919168483312714122979228190281383728746479991795136576146698204835391204655377852047345771979914956183918755470971315860927886048911163928972734205595120021120828003091565332977291380988278687396264433352011553796099054827340694066278404737371399297179703195726243387787584693178069758931016450522953945420301152374577839671513833553634369225705686606193609072764054385882248816475929406985084645227908745431699372986279351323414389352194113678453393448363024923537459565663818755127381579579074827395049015550865091638606262463895148642747444781569370439995039761970533871857292078613073391501221106061535793629306062647909747606362259989967303032393126244276893258523832618086495067181747122386216343250647738507341399478643718695622880463720807595828720658980200253514306121629096407699702280958093692558504571055645660421193479347010954059959169239116375642376465496979064953810314573694986561914722062027502382966443199811394075772332151666176068588633235679547812927051094765255776793048212386589714968335632281211279906323199677380736583154649846027725957726197227335410145598298989190019856155152771158335186425755501117168855529078371947609680055038497939124473095968755133285852332889736324628649414899114302025289553548292906702305453082186598649310701809709243084071150671850428842522177319578122854728902790532719440414510515521201970422126948705454187051439890296651092536175886110540061140616752036764402961074107455047867647312427614869566119016424902516994967570619966337674215125094156093538112921237343202099538301086120522696377339182466933742589196819150258363538181591984793716297562837163072832725181332554356598920060996845244742691470904164739223392004204174841766320524291667413689956889926897650916543465147238284973457255286353206664830458533748285882938956449219569803971467014037661405696006663031233392446600279739360666538415471402145842803734979545070598983255836973888777447129297640347121730957680056598889288085027475745198836685197287536019391599328331855800535235891042141185048316577071346435405714158187706249798577900670878591823418205521711835923807321591732421736842267840854230186204906754834222929251093016251188275090455646199009768537871056550598649707033302439718027330154423383284450936687274183814162940051579483870678270044295688344863785315959408929361070286830332432089922677558567641712286533117382473149609504568857626613623240138136206533313804804874792127303226467379689547461551629518650755074596687605893069359105340356210905323282210702217974164256393110870110919053764121210509268861261711161960421308305695722734820227984754461163399432476001241977336835064672945961901962445992730583810169192294819513639742937156876917688693751921968335942174128311232132247429561276371929751623498799050559362379044884890830106475910711631083876703599869585293151959660079335241067405191671663889112355031725399602864010765331457596068831036583987619054188202633479149239595223290279712113914250361809900142466470837293124756176507270741385154215839856209783184378869740054789441944166603948644686948755801815880831500912380257946900098489559707362216835916131537004255351484459254213634110462273893242280145288509935574152853558996692796725521670800488100071018217155312930352210141150379070565383097235298549506569196769173950759035228362578597493885639315365798833649561967757424321448567643981232090858772838086360823174754385853047396106928107232811660074016868054759688104030743373757980722582559587581788072618785406449099449968821456973910885186272372064300971410221982630170986251326185450513640928401716884197241693929822449591653820815592860879685299958894612403321941535690065150648951160228811367807666491366436109804639789401397007778655173542558448138538773300637135935007743308586229813662623309926254981068689820492464061377455723055374702282802114155807931910836216551967160167321063098618404548030386422232103884327722980878910484879099705734418562801381167688439494848250976162559567304177768887303945747002742603012395096125766441755432251944865656474467956249942057770010058416877991606157340657309021096102393623312826107283033861130392672279362786926856546859228156926872289523582521601679140267433937821832061756322249541871593784978323493338168768721675476072924789210409701198802335801825441045326454321818999476112080727162179762311711566611161034500524219479187743858076656821096233645503518055171806687881041792521548625678013824891910388189101991904923457100462919215134439626377734780761322056796004786286731918574305454489703455518690365198230254487696366589905915395373202183755335665047840125305984343010529671111678295160190777735251474718577072339284654735674149301952931998284151498606855291179816785202605293664187134175256281712790036121464897289530307299177593858915932807877219560732753790065047897064276915886625745739732247675810135300707010643501070758696642919157732428943572293999493785652675324118940219750320608751654256748804295832602397807807080036643824024535523673227016263337872669423181513343240654960569478369150229822555367085511584590676020046240055728593708969831069089776829259166880883955088305856017283394723284911078723669577782391114777877148430925652282296068159784719134415795744131169257254502688197318991903048845198560664313325293025469026756313629714125901268108848518800831175068463856611350472735639611912820053598050305807025648888268240540547046100034981755849021889266284495960876140475419613096791551132587272398492493450192828738672948533661787163215440887114485531230474651173248701945841907822586263911434867830138797359996891328223147129325132933684013655842492547624548163273682158532324684235047453703318732571440805966109220464893074746349677310594548840390611865869814880125629361365608937900520805506464397362399926110946633590143278560877507796770896964237704845042792245103421672564844950703725429795714167935351074805078798629111321323003786380152994031300264327145610808093472624038165306534242050477264485236040088319579697277272086632338817277197641574668826631722503442361299935629863215918460497396778005350760635083179081560049344566645818001665664363421028741682569757596412110958725822034656717072427335022111332606055479817015079152675258071370397449259858384404768419638992008259793974382890771245991375759344088552877136470648978860575766449746279897013614627208443753443301932887023346992398771607051073051267174155028486804670891320298357358363145237893219766889365658511470255875876311893378942750201245714607611493453866877256998460047697954490881488989154107847157098124127888959291887490914077655944658804079847847102368774768129137985883440814864309177595954548941070347865740191580394183683894828394141102472900758058297184631472033790864890346662166085299494509672890492908161927464532714626007861771218697337428102194986850177573507281920819877460885932614040283632845847217182795396994446793522069872296870205479524982389384007955259610128820797987111940447194070554068698854599166505774864568946686930594058121159814447391537174579222338680805445785879537650604299086681171645690756843776810007925963002890283703868007283740719099745627847735687666158371589862245424015135233557570503257573246240933925007650991062777265973004242708569228223761852875724657271530669710270893998579733342941266348955881698563253562591374620731488073158258386149484268040596281343029917819314824005246449772476394050831017796350792044242208511113941610621835965513520329238172250541503139532562217962837338910196640863930605891933038060740644123573006313246380906310205169743955319187308582791311076148498863788607552136248476795589312995321666897825636739166667083979935441125211772593006564701982552691566440109275378677386067290652226700914781255671849989430651825601642782771063597116009558613066493035782955710666508144256571396115078130358867997582146905357059490657016476757176438577510438200523923179543429714823053756768410578647637533891457931018065964336553753371093913745717603566829112276229342905882375634243222593208795084366134205795703861009603995516637664044611144043882414209796282654857945580604637961557998188347137523227611745020597409708981662272428976442605314214121020537937601831871582509010835498199888691064860269736275442438107051431473547365320191512086484266413020221387918566779714828342266350669004074160584841452486059322287690801446219766947598330209283463934390081262982239822666664301682827184624294342253403604317167886878058234513381793611476183545036433954078113605569092431664631982386488824604728665493438719074128674750439128583375592332888131709184627145253710549286372177580590226016130516354849815694825976484564770059937120724776724912072233261924840420899065877944518013864196345936929214515096018970730976147850791246047731721074876758691968639287292443435409130733370692047091786308451328192084719133720811814580129768930013011121966909410446967047264956637862373416148645008110388666802038143544681424175527719016351939735792799405327270215707916061127432846467902967709114321123670026923642338566288039622480186122440856191279629921778072878696079115719395673276241177850384722728008693656450968106857535456717751694839231039803457101506803658596962864167487254412005433895163914822174300559324854321037814581198802174864961842141962229750307667792910014613029909194418624523577912140019067863965575107271089608263602137049467167288227996587418830645714406068014566352128910241146336569828929176080144391135750600667482009202686981593564408055464782193130996145720759859766936783334427654723203772178664478721623417632309297646001995296357271343719479121744506354922542653748044836182085241081486059533580087734268305332867374931010586809557460342431365399498422352410538125904583236921820012957855815154391910135895012286594642414260391112140898212382259032829271656610048358153828707285798431843733049576666717610941341906318155495842110394744931556872243840525386311768557672253282102488514058951881549796958278890011124396603274660799730431541895243061642156981215999137822568592589907778830102692128023194321821723241589954443373961222904798631728626971673130244363250953150262564700953421860630779915869490689400322602659218153070310764519241487627488960493240630377891803668492527941020130553680462633631263389455310205442902201732684876415402378095255378829571025488827469927619908270029276431071351090092703676906288063893691663496040466148585965287786787616176341393203779747427660451853310803528305915898743146597446899590710906876717716802385269972211383919746366716255569501356457389902015799671645807068097185233135667301764694216327718873014521673147047291495529934316972064129156430751346143170207996367852044287888782757607186680016185376790151067981757249139377120687737266950563744985005089683086447413930454527580088545374707902215032802899558000280738191814552915519836886134061546990104603408763128278753415904519495930540442677139977719624939292615100788807141812692443009035563913718345125172738197213192712165108907235007858638636567568662855600050632040475703150152619134099719195194015235324804072794671030979235008207962622238198966434451946601453838631508457273373735705972339962675577656539434982629727170557724487070681958792124310383484267762707012076894812914744319696795927078128287669282356628267794802557298416744463939077548666711248464044329577830750078381800908907284742493366643649614800697012967971503719169380277387742193776077422775627241168629204617177432751024934734920698203811312548846723790897998157384473991335330847956428993563491159433447386687851722540304269593205754970232247639842054011138441874209076035990411149066653725351495092886651377202521336370641435594533495896284119489165912969626029750213225814198518870466751655183634055686562986468348535687387468049188273071270985579789449968121608791227497879065470848866582493739095523213975471276199167143595899420298494486031609743686108675746110761987635224206875888904462522724488081273913181566064241952237363720667946872660738541962616805601639211049404123781865275741284162815261003034261664185551838048713828620979164413879731736081043120489107967563943839943168250013268091784639806096930881614156990725163178075881091146442788502288769196073236524913200769663986581732744240010572535241769816420915267068856817065249424429103876478556798456504500834200458316991646533859217811521085989862966759781142692512295880924348643202743835525135078779881062267104133122650620076287470063124864870971244339101616807538073253985402981260253913793434608490744023757309971176318235912715150333060373909630400895532526751998173746189993990123249264229358854477561489206281740057276706394791203581138456015969047600937183929670266219146282811039938587791817446456759160374229924535803429009367420653733592845693639674944082685663815678344073569093581873366341552116653551522957139137477180101889525038910077777422685420203834492236332130702049204485715933146855197365593017300789039479633169208193148969122666675453088249204973639753658420118633890116656747680773292958439995871706133478964436827340934518076838915160695116859988945002499563636080826307115563939336094062062760971660442852300081969069297561678871438044006519046563539794091501246610794121787970336190254985184140612589234523477013881928926725239284873322636890164313676696147935525898310565441691504971354281141462640738431822040397273822614519736332112568959806496312474701022994026110065589552721078573481183908693217175482306725680967548839443062011962638721862191093954811098006845567912836842972882384097450873846664816183040201746813840273562028238044177835804874159429375679033974515538461093657092992521247613455746219396272919887460834570749896503743872222228580278867042684798215974505787183805451035153695792400242987696568692161327793934101526205406550948903848780000699795522605564014604431678460024586445555127073139701211268283293755433269762507929172106455605365710425561194790579867041270193217401839041608965292608537183029265259165377047174734456584605023759833161230737818418993513783071835740978220442062869117134966558218933709929001894201718725879019083032120501218105726945175383239515364512813309150544773336692017240370714871755544187254099947723196047773877649044559595297069860977811922251822437560172465238216648368499068275166732982838152770445760612162679634110276714731494857537769552994341805111684463222732023070494180416291323655882639100150522454454179456776722552088112199470938557127637610834253478496282053282861407754029100699507802966099731741941901484765070274886596609183419409192103970229507227721766383997068078598827815360484801699461050936332191066251754853186302628145483792661150918814126231382159638092104777985924512936329112797588219600743046337865439519198129817323856527790984726996417345946960718825301997264878017398613315174788240993380042326596512381150976878776377937360634227643371305440183727586193980752074561268389432813734944389603997189118935597181605263272483129509356072323449464098981567287219783527557155523642370212445730947286895613874425378963208827897626408020358539772720775540535208255404994364855235613555733580925121482054681439002779881003505282878544566032453875843278646111460449943035241303256420044681552905827598709585093948921188367546307896222945345219658633208459614510818105993121996233772271806014131965670939970904493284086513463328265816531027249618327472830610149515397225430960692346469786952906434481176190976538911312360135626540132940751328410161593392489085571454745880313499770004127699503510019055191129966718950433416148970567546771624453698146508913085137015535942662765417096810099739905431534293048406150630959831241012507275907345925162376040638589563505249477934033452593089070826290058168559119426974705708215489090827271194623398026182522075456790494670838174199896980336807233696773470881182261562639967475753283849516955828842863277707780287419139374679396879032790023228036207165089874173718082614070378439918459554777805321244493087522895875876351003907113705721818957850906172354892066451723381770321520540331330444320949205190107816484253027088179733460340316612727410357667740718402477304179315847799855366121913884794195297983021145986166446463279736075233205062669568017078922203609608042175216824972907300878925119531299266177781185840847940760905474293653951225154330073427813686534845727544526132815685441219841341646663297671457348182738214021015948115561987456329466270459629929082761908761959527704675876364813553658125123434578493611561328263618278729836405747133733609917242612039358953443683670844908470041888703099599621286518269469340599779765313982493356408001888822900136725289207643649100296333477203407000042172983421249518203837655500737265703473078866945592476885801238366631104506269651046594107370961717086123681651430888704433718190915025517712987270864965401930572927637733676550585097974594117832728452901363794729287785279117423877223274461869227796266640060433759492083754155487319938782993423356397354038188714808817982502225807759938004025903778225290887980184068843138953998081504468743349191725571504566927663316446259869007779828383114784531226654954357343102566232134571088232449176612681986984135694232514307609288816330779330530038192208127527494255077932222800623407436277867984340699257563836776272990726040185163576331927733447903036409896819822150717308606328450129994677794785523856974741727384112434803993123400200466618894137456561798123805167069531326719632546159073297761868662040241442886320900722919682873756010373186018061266445201889311500362517220189253077812015352204980943577308999850196166777046448452944663109361114130563508415646601975526201379860594076511407326168937764907396734936064792724295457706478482266199111542017907830201113647561914656962175874985681983216963253268450689212923422847360915322824592153204391958981595362001316840853539136718870488859343654961677734614266269446439459412396197646054304693298142563177746512569241824250955408768420861855473167476981453413982810833477291657069565425552043805963433968569144406441562781659385488266602932445894609680090053982767309814200323108130612843479187005780250911977095120441320977992583865211097281965501421125668490324489860317238814658870241407926297401103183718517205253294639738432858225375449646382821879326948485738938632023992069356573133406824002992875982550637852400678496078187550064535787395606412204361935033719204904844540376656302958378359083949737602093558591923037784301238017525287359303053280675146386553140985696428574457155079567515262523827722627561071030556912806670092575033338875581424333433942832213610909342319039806714560681486054579815346470576986298649556520570851942942231012736386552545388493645978682263436188294742640141587798144650695166941386680876933307375249456740860539213880732565388809424064291410369768558704009735620754045707744627467857901368655795362059117188030882926008612174921201283575453134929098481486723701952272707375753573523131177331862858206124115748855333991080942251327875113221035573719438848796049993292237345169328006784512224978369193577016344453946874830283548847503322088638500290353550516831795942126392219751668978163977505888511478573034341407163497467198575697792969401856199378384210313359276022410901419190336663480800537558430643562248526017396207168129827671382200070755572768825191179456288436046384459707581979727107418743616083208506740303583051920292518352164681367832295807065951303463779229502720339048354146841557016456626223871731697239625454810978152390369131627970148436105612452667108335017281380832583504066111845874417777368765864501330286648338092441051661948104099729995923996674983278101195637920282271388644636531167693424003138492589461611635177002954134347952374689032887080213605405947196012579385177089408657053394013891057258011098097716029066455051160736202352083317736401378105174555760799183842320876149244419893252025194620425510969278450410584357867585043686930474270458382742659603045361003744179920509773713809957859786098762045941412331041471869377316138198228190599538746441145849274464131826689554711670857324495448618328464216528042228315528336419248319814398802404478344972568384390719489914382317334535030923548374978941502907755521469523136285617200950999248064460722228476946186634983727035195467613330030299108389313897931302233861136916064858856391049190281676758567235224093750603497897985999014500497291909871219210585946295707373923252859114539897049875585573900036245477723401528809558650540583199041104150048269976103903901728870662586125422737234984201156264088436016660431531197274932781111838339071388149539096954311619333913382920152451029766853447667819886537053845079762257746424018813305573826304981038812308724700751608065750960812724300812152947024268142618344790346873414306566399979247870217682762293932922114027749709180935284526665097412141488515094776330421213425544313104038233915953345337983607508219011190448913595159979875421313939916378001444175300288266644018700623383579043453667302281681957564456332496876825845741487565413387621526293348833012284573187657769874053028556882701328711727663572387049384400361566352269350664301112076501945616005155881956886741804087667554594975102792849524148815659568256743145360161245084194800668831067748566055145176147274739408600969969300797679902866595762298980462637197726302297931488168346013769569364779317238037298654797444540047672937340446920260976208357081830543691382052884840533895178627925992061592818459732162640541687891917690902924870656952150484201436251065762954929113899210199601967150652312053514584719009708924631022251394654265307236220368873970805066547152550154765850524415854369868945501064353190456690947663078287951231357089217256324505022742481016976864289401184258654948884943788628755526978768118373292109871227568859960871250435851444395973058377570264721068999161180390315889381936883951693619063866533852953388460023982720957094552868960603410557599746175318498844054406301851512215425383075603939674972312252547779168463815329391045057433072039459419701502073929218555845856387739229575939552526639547382191615339312527055867354230210700277978924209957771037171122993665784248414969345789049910983663684710925483565568686288838602522881104090858762334895081006709352066663905342617486415714379548741075412264689286293699904871469471440618504480060647756747416287923852524540243374350928380974840051031870675025736824998602144662824747155831417652817070938094449935430723633523822581692310462674792330651035324352923168652324314966715594155310013420452302257351732604750701870510963660042402444339900530952505591058896705540041474339855618035913676577338484321871643498380707944582228091303286032673163584910909068253671663677458116959378623276211788253167585907708237784869135367845125697746638091921090126848107843997472262118171300119999593800170119304032971096073943682934872433756683710989025666891468211818830953952468789506155791563953109546799007633900779080747037179889568291657173885023586370573633417614438596943358855125247567099879011394265616170988597335329479317818429614038991909020339240813888488289209780884708668048685811894138399452190276105384786640534687494310371552210881961173585930204199443430910723461913334716146002249646754293411860692724554854988842944348792529643670713251999057901178559509868923655842950487824612851951385797291312903343797988821022417321290538362250742994187271779506425781899849609538905778834972320570621913318540671226579022343097053894950337745096309474157573391050554964286318278998430070654797799701733877832223226786255592151301338925508955861819653833711623834777824179649617009800271888262082701741510284723740755953607660206567770657606180663391858954569735830434109690701726485864346862817757303774606787359013808900341705026040262661022188248955447200910440337866923273164066166973521723355674125547378772466260772294541836450126983516428283724539582010604292385450285883502904471526919561628058363024231664467676007057454578879615906271342117837945585517511042411819723716593312421568481352488212803829305123410188871467615097179486278831359487718395118058201708668082128079762758449203715922388125970887682726780147928514455827856956888279998565359407925091615739371012866667134945127842616497300260314518768301813486132874504176160364498277456695976933538178666333151368852193672072572942762450406734048798078590073662954260249010628045667250824611871388981806285324281342992727090150311751262520283221671933796788976130589461679628496612650110887399577044950581441482218554364728845920863236244500193768675413748888998793829900844796376667502052158550124424075219692916343045884716910450037870110912359216075982745734576303699015251689577587575963368511998568007881965255641505496187776900749748217407696123072498515376793536146522070437608065465195076815082930129166118575072348390385638028400527355401628854543952653729727420572544804899318606354708404061753557415248826113423450707402111515395408963722930111525649666737829504759887306085792784964327827519619674668254515903988920380993000559389393478196437024402329508656579342906445818474307406740188387021119516180152875313942898901356688397349178181520305901256355540174548696175575092890664628840169263200016355566341494174137116530543635649622916161636713399636746734508503860865404608799814636869231203705201213144938303161022436656536788095906574257410923281769758325133885787025275990914183365959965522878869447170142226686425879185345535132291618556507897669756431156060570678551818094816297575485203366884533662455431012067889502957241339574665948386705696485358568218864033970262183321628716916728285711350059392978341580548278621496969786322601114205880161398433861810836784275922058705107269967299988331485414822927229519261836885827992582409818818627103045151285833660099609300311553494055410693015181815227089853416722519177380254555883296606975811505772863461116309324086569065454818886098983664693900497201265283475674066148613317966006649856382895611589704688726559819214906832516302833573228202894428251931026592626368923154876490346361975358966054905045782336261996094145898986960063091998199320598592144826209807309101724789843589642069925863429439887704779902653009292486876337064357839578365412105102892822904573451490352325875400583152305684443399787060307368176359812151556567798600320971496946450648951828723167210998251380455908619580462394164744487828393226590082538316704348597641870214899561209944331623579196063140706091118985818715026641641670834922777487682405623797038360293408240350193344191038552275248049912737155513760477093326814288113891671205767850049757835861386105223943842960087645955049773667059183531651361773422673085111614084110311155944240291891074881248873780869743513226989097716198684254705815369347447843864157323110554673264199479203768729830298144796306828658766987248990698549055459018209457283492934557226157767974257043408876653068497042466164364237137483353779410083166441269001561835176022291898873086838786532267358246642607749843663111845603682302839314411401336869298236479355559061094799550205916586119011965428275000552587092731355988136973869990125560925739704108208241750664147300065010839961404855453671949449336011356424238690761645616586187650834968387369646485734293422025683233708332604304140552447181423530141147523511918474536105668117637283940521906269646148742195281732112627948096176758836178314357200028825586327466445301964346675220378504545440806027664019747236082852464084435134526372681592776505578352885655420318002880948165415480347900306191347939528958341421466628559858624655042682353469699483740240132504173476919060626220759816685441891239757876974492960073461445894440265546944681765247670736389619390539042262585257158812097093883120800560890475813092428497497045463730581404043095059409173366525891675623434189419232132622666505646185672089808822282486605977447086164738280555148380079783103661383556761592663684043091876741822160069726667355145622875892753933244087779983573266376101464215000018048499190752410053946172126953722016110007457136985162654935434194199244319893124929919134609376087710818536050755091822444754127579982895492921141869806853722780862246098518088332617251750661673177819444703034711060228430219562901802090897674309657963773892448625099588164178293022622866509363734977414702515769272086773718205485165576047929339065346307284950367898146204600094188018807196296878095007074788592426412766799717349158517927141554398177292063028637873781336930854945735566344166500479676365993871896529330357528322074369422655527159977675155741972061859824197749768785061673198318458615099480223150759959285306718386373966537310193752888965203360723374171518057599652028192118700123763951725925954684931117562037080897027700081321754147466782767618824360069426775895904342787169618633155085689076479570701372316958052726475668980899412661664039071244407408378611139669715377066530996251577084646927850605916370635439769346523745713512790257814013975846734438445889844398926112268886895145034433937951629148345492238783859906056401121561275994043119819140688870912136129596927308010121189498260518679779869753420641983479366761835109941410701614476779817449507919852249876188740353093118529005423816740998644462570697264504715900399130959487365529056322511516485153685559883390141071598819555775472874427997683314398489137353599235918585823381597151744930230939400406098733885089842386684785953921342090457216951791768675045372497069256602498478329873699367295171075073242389625039311666489734538696414545675688701930541462737013228865571175621049306821734014082193486739651561727563237284794568765621883455729146217644735592308044144485793424010362323233991689793361598734376343016865166265151994871049443615982382386417889615657328463407586844311584218753395956740123731333528597835776799193686527981931761421542790127850949338474459941038241120699193849624462305451577683228376536134479094742837138614993003321229290902968653743850152888566473468494837066208679327449260889515344466046595245021835905827074488307602566439366828134986027039068501137257079455747538690381924368416143593595358414735683897187718980292002152386106895167367679182439857226498502516573658469882415549065858616801186289720753397335539462079001036307830566072156345774714684500237883963830536535194451217677185755954365085432486052187793368495429757276087409442291050741800079536421768010688042379723389179897560001830561130865246035922633370035484312612342312495649540956482542093487987901936013321259478472050481119955852948140181601828620590329691746735697648281337355104725282305840078107440648992877960836141245787309517737231078395991149189676739903484534638031021002647118458089492671978721871729626967383134687732139954834830463786111367946888125178023821430449781334384737327488786680543751407431696729973442769737411146398494330173274562193332253567115366913324543884897695321901658782724926286207875924925345632522901713978570663590705917418010521198183166315193655545935135656141462624456449662717683576190991986638168289045689108634084128758893516244816249363097648214034410313195049738613516509104704097700536851036735518647618156892411556987990082720908042772232510702689510559159482365875928320875770010484974910584232854718969394545684105845330826230971152535593990750317882314908435255963716312454514929716634251167115982332480237285739188390872660223878836971047156042615979827739133432560778666641795085178873557876327482674561115314576395461398013660512677597937713784305157405844281670955216522308873614607246911359030409723097088628139072660144576003659439378308696463041870681915362479255028544050429016164294675638187100218272275880273020916130618386677797748101266541004310210449803359831328696472749595105049419306639856476411575700583662225602804689726887287827279940677980778635357533746779631146728072869659926699443240009187188601465940285027273449297837486670448604099874348622981120733021093026182608194537309421555103718427994225680699767852312520524881226366662665122305195351668137192800830778903033686629430347226204438749520390851065453141507084070773874003894721364100278900619088390427426918961787052996055336610659159709505041546394730242163597839251532231910085613390559587450073282656672960414446331405710101393939668826411251117272373275730437277261342622859710469309129229110585729117739100519610050520206385270282787539265911542601620920433951954001108700496553430502096076385207727313772087595560023198123175429372865646689690925290684616018652608470293589281831242559929048265206138014211868492720198029394289860946233428624856433231057840845938045849208682297682771685075049475957585923365697047499101552491117352769488036520125605082648222527645140393096315544865432622895024599811138223707176837001114850392406135721538486711334160836414779971075629356410988557247590071647237927819608738467277402760110696806265058012727502096539172719222056507076292233917084968828438745709783813360476119668175001208421895237642352546262799080440707759111492106960543674111786187409498823705085348290691251400381603001195579564463380470771400019267974761905728164102168726289677553778749539747058730974869002165898350617779845273181435900080717852934418526416903911463121045175683753898914302244560651857993796806157176286023481564730613969800973394738270384556219247817465898739278819515977094648846894220552799792235754500950914920098023845660415400879119375109860861299530006472937363691924367784753368575039080371445477737055944242411324736654139911411154948282092177405003640992183660337826878122469164507656802945249699953096179153246983006328409581097464852140516254584352301033745848713371833861065304727715129856539612031662261883835264040329304847413821884965267861486247754899548846665454596434715708131261478758282227291071878059390870816764470768830139701774577574824580588374507604439879886429177484414807608094924899902722778253677399612960365859722120932325223492616229187547956574716349285853965111636279479532164713881195360277300763516601455312116362984724498641670885902620972685868448081279052852557251407208299640085327963702996627270950500518627262249431683479481709597852797053756349493302981279975694048471905978431947184279193160561551513476499741713058104476902653506650577421154649702177872765984424054098544177824444424405108614884453177132518441414288279239229404249966656206312653820122060882575008308642923883140011175586069335134396674335462228515815178926823629877927099720732159582516907997417725930235880196991110370704890706851922582636914520664508806691776785321223148225513169424226191363380661512583065005303037130166853402809210914998450103384038396508566674486867963648935271052555562648025677357270192773599814758229670129078957107803579280514344344944447960620580199191766965213392828234424791181056341266330756599831921069606242873066853594102724775576130662581323547248060311681392754649257072796675234209399300249853432922882953186032346291669520627615086831251852335616714208581255791849405650798276918821076084901594851245453595636208797479052022642346101157195663897621887581257282363182556258620461093758660613360974294541914627620171706249990915268378744567057725492531604307829690425433813428226638527880292095019615323438752743783903902968665057125813196981431429247412792408614565346067100730699644340013495998516261593452288613587706256112907099555517273564685616203343632996261625799109581883848731013836537102968499934557504103877897507517693374933889034101279446521655182313642639702480081116366799532199394123366326519562489946849330283054683307173112244462609439779780468227370870284152999320589907569673241289909185247380654238679088360177816176633214572942587170742575015614412872095292064322097026491281244649565735431746428476847663814211086238300987710134280786204453629404033148393476416534392972498490058325458296451621377782129917246844663575038256976831394454844471066289335890272431865690316107642562516800482512963558437667925818119897462767742278976005454342298879336948206077932779087071472702745891113203272489811277389227303667843502105197844090944491236698289489991446640205231574323815628607159926395097428552237517391624525797644075262015303112177409929453305336130365732140629747956325063195981418330781945551229560366369317633505242264761429451937811970749255874008917165434944129609736577858339191256810417718511718438445033676940871743780018570121475212877722398858733731252116854553785984293546729785756102846671616122313676664086397187998791853872729969578578752834617070800381267989490742988373974155011913160524570546245510115029930070504378591099569732893211884897409124791654460628381480922449466143328424133563022224808861775532224557801075875250655459990718025309070948735304565629179648498009841722431204231785233942624330267668271322306906674879458305245745382329147515297892491034968279816425824749747787767641689640863506180073823922664848125964656915259505652366333867004422563600374154671785692862892689143905709495676834992323413110897666471458984200309805072039190350454604450094777286525660896570007792802392779230179206614841185733722981110382329750993799745477255364144655262820739751189207228073940515381221791233633860815073595319893265613906090501753274203595753143166792695491829602976847682769372042301803880907636471432782917750233181161422456998743423026587018964585387341099381324021248749018093068403462728377810111853207208930045661085979320043192595876299196184324875645056609563819949163149268707061210842630767563216497117051254488438177803310275489484386730922327820925742083597675529173258893214344070907083192583815705960017195174622901888184821419949127988479099778030361007235160132220440803289225716341074570604791164888993385784666917256894895639015350145055262331637482123391722080753729860149133495824532553324427076323425951681592130878353517613017186903377641447609192534507629762635275580216093454078955592585493686893519135541344764996495967321480970632781478700320497181659612287925841927973843972904627782976539620410326229170233074368181888696796260749737993826713240122445857938718910093016909991883395336384634087652517283753861706198034180142787628581271533712476552348992592620632325091821160091101011768909887061171552695773697073382230937771476366326444396208437111744858873645540117304066402411144607344465517114664733151808697634887865395662577139644190515178217683724133677836419594783637382131839732043648652090624951251986394275512790888358716074479890833582010166483801335086022716266770322467106782638672588650246950086722269333445195448335603375940982473981706387891854503166178980144804041692405189286247317651069943686631133677144281917246082671397172655084389690486012218286663327287053473762035680737425013412964260047321203716161441139030430444460299466117811306043471902751636205804349485580113007285490034141240224302909843834882396881845797135525128378201723351508842172370005467643399624899155030804543224139357119044844218069624213934916403279513620284272574426692999143970450815987411614613984297709433919712666527379946626447468423145790333026282687193528308571236700136421878516828274276923447989774886929200315408739440033593076462266446297227534432887127763621805031132256578172256075335110257929471210323917705956825460000024855647858343895537170425488765172106739371526458008178099903734581855797026397209488158952785607992523040391541593742020998862228143789234815065205569428854049638633619557833143541631991501480582425113247680005597230232834900278814796995936480207265028529681229325965333395997724670012807658036377880956667421283711022423888965264020056469123120330420945662681162275984138061709485643770009041931188933869926991710029628652736783995522012588426384411741727539335527848175936766998756454144856075285128763944627905042119621100498161068608062618430251137173835467297384588992429126074298578415053802273201582494178107624760437508459771318950166854215833069693266997494469313959360606934013187309767031944858397976791910655898612604231107202965404708287622004586339502049117958529446412266045184769276392967649712595381659688143285101108635177919011729533634898488689008093949002514969842752927143880627054367910337982067265249311033993803933744510313574592959510498925998139356878642893740194951467525023181646225412255006960111940918184168758741496666082109112681489962725371518385699804318594876349093744955687196568981489268324244900321256757941151685141403600596897777880536735870852404479039231390367143821185998591883255754885800493647022021856725362657297135934118573566595795188352401569487964426707120571597087406288271775229908221912607671162180684989345357074672649928539122226124457176183438005050083517928194536966006820574300844581489666084504487254828004447274841658426251778475720780190565606299607271770855556703163458823975272089537530392808886790143705642582902116744341407416934501123891757963601694721163373439118145915791524385675572081300506823445840475666632984396859276379604992993315257210048745468807200311611959203833754450642655963255933073135343824556649220222210303322306054542007318287771243925656946759851555063128785864973617382657176991499044713540223814741271006316619894623732933491976278307140752021568959015205139509783143185799060764151943433880191070932192609366378781286332696458893311253896714544207643280496816475045871200169490377302111136214684956296359488635688464921415628714226311360717343735720157858664143281265338453267811848749954770684313658543477968205338060838098335357054490893069956963478905770690879730977415259093380012163342120026227575886152578001896470675916841179541269362619949352667216068500456798898905378893939030146180924306639777125642762560756874914621252999483553459712538002360244923486531116214752371190401288877176914363516554089433794165676512631173339041043266802647561921190196806154556710803136435297303287604546148085825654273530785013479287247788357811442285932150223526948921741463835499926249610412537587269577166001677145795723887320060232335262249297869096634796388755932785683346313025160367748991800648207953611661854116891497055248258582005385883521985217954298537166584766736425545597775572043061185062030894426697495548212984194054511514067480162786896508911671661061991831717466900322541802281121749954844832506967606012876722671432372111335610151850072101312979773444842355170377670320840071693485636563983904258195270987762346754820011444074913852423366695004769150087944901186572728991678539536844294652860845244727169906339837816579374153056147947380207568309279237784991835575036384081952570266347601112810377547613436985604097424390035471265110393793472407886712575682270005601248240989656114152068805621839733778118285135886967099348601085535172176943763269570336927859799917683948636172796196008765919943869456489045668700578892375778209996939654832947397580933677613912265316612823345677930411820048804799233817516110897833070119842904581411297235142151730908324399727361617317552476590191612517074860993935978315656599051945434075387804687553852112354718566433675150193872644981140403311114298132661657964509125552120361170792405106493556942672676330693256396905393709723477293362975169694319745912242877744075928105854646034845296714145391461581363363288811998455706973273505161466563701930262672918429703767634515165366708708027578657835267144399672917872262527431326654192352944655042540996287272106295788237941069276208711312169585336264396732915173926890893634629872985338408288697046949051644481301286727739176868361465435505789027669773550386724069828205382247728555017985926729360652744763541330034541188286452707061414221115007866187935398669003242647651109014822448020956403457228762256778703180397543496912595959258505775318787262521190351528848431549069698714305763453405293762962022797919008527567275242828697631142677686093754026145786789590449628967614758172456953023996033498508507754798899565354108241898293898163364288046517296648076599858973381490602413098295316153027955751357381795265996443244980844442875297095502268589861941814213867265363007069700253731044928364037607872593127256805417716777165895168303294302495195433903227290103277848133950341796208922616568280804231108256679091123572387254916358572133944308155329111251716137986978686232925539503895712442956307663490938233348250808373832834780180354490626093720761482965225704779058357244947678262545612564225694539468584473222822442719614295131080510678088604671415452662167150888994414364089475748442970597252705582955257501265665660540737357722898504832443807318182459459201468309836383165218998621768893763747964943786904174853309845330415269374042012104285573618396929073484954186007041774936833987298644038197972449161977228096347409578053139878742669724108789352952767325619214818978079662977316721300172866097131575201481292869623863585092724052644920663385856585026493808491561578220842953018334817516072574581458569784247188401188170494514305571248258249258245317155215328828651660482324119595971113615483320172569950289780208814321510713037243883805188514784170331815170693084163779734869359063271545973696574443733213196930546992993109830631600043888731686971857344385800568578018733817905067218560447409803235998458260336643076289475987150673490737653298738800215647973843011961900826690277399800039295448700939046313137031262229481007622161750518794006453463557094241719452530681492661643570517682937655729829917514385485771769008723637967143720187758915407995217315639124000534390394262364562000515929314151642741940142167566707951970496446445956162137128180871627455956917266124476170145629145184948890353720260013257233204086345515493702636809381928441003472519100208038679541242895963486265874092175161693964634984463778631342320651081690473433005198550924922782723921167333559227604526510407574756556728800062959128805003800518952841803649132837795650304449042751494686831057968606678286545503117226151655483289915269027238435196242223982047129200173608322254067476042358440726919581380237599455092196772777949976848420707931934047395462673789745745996215680500336299021998396549929605786903645648767604552214714264392488484631039034383338270075505063135358631769659128639340205773683601322248552697776592480252611967663944382753013256241210912610949825965028946765538798018507900574246698046049377059206890327943410006582877120427680688282628434877028500512883776812296909496216618480739221192913560035712021035567692934239678369847640152818250710581618787380729579554787548345217029395471246874575048334302641936229208011880425541892763311127993417634787109411821936991115903250374277375183082928400455015929261595707770401666141375404641315046338171926143875091058117446431173669990922107918178510301230533052970914394427341104534001217317812615373881449453944895012901512928896731860485495846541196760371012915246045469594658024228230585790141822324890482180331971906625261530627188977788770762829093626160068938390992712212544318583246108833354488832655851748048937681171650092644780526306777536056474161816497910344225069527525959036850503683154170851028083864750891697368312330429741572245889258978422650049117818252859589222878869524053154593053184223009748504781505401440400602799147430546498594701722329066796382166484612636014345612022057968390937902163564011820060926238894996579750495043932223529304398523030382948789092015647026887539100005563792616003918109676582169422872083089645447485069620247048023863672658228007238712376959900073998470581760399822613606277633612696491439930785833585879382574431521530293366528192709526967721781105338435262311019875105960942036162227864345840718518190243908417796608651140114788946541185648136779213973846661906265444284476334207430290268366685461765383241273207336322550559501109291767384834632782606725032212482557657061941470321945502764156096381979922911925955842966877601809853191336372114061261990404873659183778709801661998573623135901499996766791204850626276557242845843623476682379111212166593982615449301640532942727515169905378724037799882634835902233991626722250124530251934189614335435745723558845548698738122632539241402971427538849869564031843353987852512964824005139754748900148738838744342933385716039960750479158132928440005898474773549482845670260019672895710209592588941104806263570642422490998155255585332235298016473089207531568971321388697252568563822420847017545387505368866304130003167753297071468340256780159951405680135219022627459591956483858189923151656339704473579315374303756686795732779350784367735896368273846202221724162718995720208841890968740585356653491537900331502317600256079125662053867287419217169270812829416882992026531930337800069839303257108717580951058134232017054306299397245884405471268779282436602629520761146989425654233732172300311332741852301088544209290725898094491077979407907886055146994643700583903085066649543052042207340485621344608558400138409533216427141560318316922288042487423586304068851730230634056918847048165720255274908197017374103036895101721390415734935015360414110457335956671627380719248389954662928942387641860500011330087526355092231541924995220307411688437252210884315762843182831844703145099437167963965323183992847000435542520649037312539126698674632966045503039328784040295449764414924793033205065246265792060885670934790799376334775825983787526671537729058757292557004448100835285465810756788475398458000619910585625448895677791643660427401707484297736174229264539047075776965643216460103465705733304857104338552255245531807138332657901215708903456863539109614690292091173043788263057510783669075402371160214724505010786890177648379913142537194073585518590207570669453283670551287551720862049376234020803316415895776814645272817739404366791194164653998808210018808552900169885551834791509207083057148657164652465049980671955077229963178113216583772036221823312577506661998009018291271760070609777838336398630250225803489253559251661764293910914173614530480575607891648082060526253931652355969930150642779462669559876097385698128459906281076804461409234460386201219332314602080815342212757786685785461388524130752515129175124389199352051310794518681497933650813272984914191796779799829347881904362566281098941021613473026753778905030579591740638870330205187959266948080087434453405205039970775700772997509160159397036287876127105989231254709922852585414900794005159932656215546940363774277781528411219983602947253969909250429797409669155048209895037096861833258416085592895207048694641705478250022374540580818538727002928535544989476204357030169866178401706989932129803381085659587509979635077281128627283460690008360186322504610810441663919480720151131265597277067334714704415297999660577387813888867714089977250307881813394353975096878382097810235962825280334166640414721601771493996772429513841667930133729914999526320119268795139936052495294038413049380258918879089738188740665470746880735498307486778048990833630047164499686101138536873971281458428058642638888127195628963798820330805949324248829220803411117370495809217455162920794560574710260983376391242578611426905267410871123275058297711752140034077711098256863002246628138528039485441018714615428203721441851769751205415815749870512209225561766302269314142047712394215843422867657849487458756459630847261804735054589964653780753046250091637256840378533873197155168638836653521872530294492355307670741982562308289789995567099865408819016106187810831534740095424527152374559909365086730318351675962430298947166656453425814185622730272742530364058310799231141161947907366482326894970257335839090319547470088731864424732983020791000195880447306100652824235406020045686023842611622715511968187329706145372895003763063322309806181893185041256292752472224880091152382827019782718088938672680176584769707415758604424703694453314498825885623753682982124376786665894615037799288896737283542792225133345446410690434025545757243114322388920816975935546173202824913974112417144944452666148639935881881343545821128616018833954657850054487606292593454378505043274800698714493156416192106092270136501582634378617527387688971341491964583493727167608618504229529051587493767172242517769072449767973428886746567706300726559308509676260799349476965920706202725791375977934011423506008851866565054529604592673982130891554719269550809100915657232749856475568929729795377446071708292775692200877973300005117619581015064785272337304368922043894125929717217800625833477082798575908850679806549171637673623904566330731441928636788033176667731874522025126873823732378380036461869563846107723239288314701618117994906047673509580090924636394122861980694443092129874054961168489570067898150053311076966244019183459476926116104865892594688502476471541013058642216266789677224872138152842449367804193941559528983540690658907447752974478346724077909198097786511324850086943601821601379719813113316652978092981685378833463910146351020968545897772201540056771800971846497036987960940777011931083441551461996665016049657176128432133221196277696586256741730804183068942714227129487346441920994609441093304594232495666514800389905130934356591291048594692559369488840429914155664694214368632800151258069718300608514397090859808410680893639534063329554096659390285033724543881198828081940233498583887081335938780665344706392309449507390787859519451897180110339281546928968374468885643008595641012785797643290799810602720599870379013621133319463568766521764474656916081847502479666216294262990027187072316627260157884142420043999593421926499816361027807954734022053425685349019479462221480826129983282049372644580514761169954893639174495771784465481617942558719657067469033434821967381232971156230267776864507391017105587970074747559479714224705765993666211593056483541006249772913757424206623866304863623496985598782527875173037207601750636448414526690009700260218312626171303350677082084661214790587817196257054196215598687721239296577686195517827556144933186264442714538777853385253592032427400998338700857655394503081938020336584377072108342383300764483973830886787003759512115213323143604346888853747821422476882006598435751109437945323460150526281219588842090008545815741128171308415199911414600469999442108896911648574090494922790917175707438730849650881792026673839270452705348345529409627911126098836082711795418193474716423803286704137183157797593594599302547777991488345997975827556289230806982125646842913786618631849656256967757022909236360160240378799011389264679776294546856228420257422634715175790835689087654801039738009765171111019336859156523257689115019358842798956683073354874862468663188052742946124556214041194854039873393574169734850269534159034488400313975093321009031907893972529487803520537490890634311383227994132173147703364448123984909583133896871454332464997138019363555651351118129702753471263831608060849190088014706136097685604453903125838115006104976083745813436411202751708460658117975781259217540345242067161982602741554318560621141828747056884521431332545435796807248892221669996629884747615625528931468009234833354498531561583343210853997613510002707752362411999329375700460350697951192693864307023499146605422026540517868897044346367469023674529614595668113423069367289553258386021936157794154737222872918480516439331976978854766336320858554983011057945816307694528496854575411570448317369775385517637552814322610995364816027655725264346307615852519962680237437541336405444622523893167423846710932401241080069419911034759183446343157329436342983646172200384453592495536079854042251199129829946053974549682548578358057639432871684689658683037882568526874348391297712541121635411626817542992330018962180585709029219131157748072538613633212507846323883612389575334077321286045539471978136752379475696820880133182714315850822910447922707566465072879965202540456246280231776962144858648925557173119774153005980139894295010798579456627884248094068203184883383244157054675438783324752265262734335745255416582035104857436633378309314714104134647194323327366880877811090069199223522448837249134860894672270420279234956451335638040081602422907963123031104797043117593253665582264334590562696320143149241714818149620915330756085360983844434862664233193067689873267708906116982265124735433468424304289210697165854825338570256731991075829538790999839917760002925407034370744353337504662022742142096916975836842342284788944777513439174519365184822647031208044428114681946033862693086191592825880476576595246612017416496321492081115689615945907785993300154777475306888779216114226213669073840423582390426569071698137698457901729608570248852534430863326331995887199554457879697982303399545967043864444023743989247440412646338659036966450443006569225143683478686293953953490791360402855504158848901907851563585417220736442567353052382305503899914409825453366337721339953669564081979721632516206689448363639963877889348358314180795800509615104370873767054615199351597349905629241641096229097457190093983699851132138642228312938594979979158826087826930222940782717467437685549462745978948471694859225994272771028552916833116114489886397747362304249938858682222671137676965958729391229696722277876427090230703072131969567323964666432693055931285050644455662583362071482180617869786148664719041882065388470007112284518618150489109817708529005041966259805215674898084794312929483942059017331827051544225045744618135328479719494208393773040281561643810669179771649916280202065649060105926602202366297473563782904370264003493425381107192907771160719769488468798463415118033242994330391829999528290084766622500957713305098566197353858135317064627504769106514751814978910313057435604355795013964557626026676747689346892637266838127564490152403084033964915665406545822766950653445504683062065488136851789842654015196061375413131434330442102051602482715505553385868216094265792113255919553971871836597650563098721038613685906849357699208545897054176491329253886620974680748337728586990745960077479332341478044593130974363395447204805377374452155584857093505722687560966600158812171815587415175287924030415961802566367783810444209495796545577017365726971679495978032085045619028225725604220573272665095435569441342209647796025008932658629254817162506298324220361462251381378567143013418614734558560332791956322210534247863592349011186154587514620424765613326381293242241439496661789417180943263985279338317701833741594190098577445571703142306118137105483959281827704598068032644411078754568431422009033302517589793711339706358285855097630764045274645237955559040844287327002833674831244627636112926715136096120727191449963682673412719557459365739239301982640830949677820941394995109690061341961535177439813045824353213386531416248204812116362504294034689737922661983267452462525564489777274207440835223529736643351777784326361466785853499022161546775588104758353517995100148490867125472118311588049167586650545413184001373614572230980356046187925218261003387096242095609723023679683103925842293571961061887734685718880050629645880327233399914993215111235940230643376471957180386831678621135631523246973465839936733631022696850492783600456128536291594394018331978170321579398519045379081415348557188221068935689672039560955914802814809683046430680905043129272916411642207233770427451988668246974749987197301177609734311197988660935674091093379168532877699848928035883140145583773762761094979452756604435793257957166405888953774228865302332940581257732808356987155371225899451464996077287045249561321771515175699358277912017869636932061561984063880909950950491530914052155626682754081863431017999867048517237858248504654145693997252505618282382690329056992370451552739026402806061770881187709429902984269019202138769518519677264400477713640590292049478754344237825999420292419154919783653027230896215601451006484810757220488535707824364659503457555747523655740437875758340128640834360672790114808289526343765312945420508286315714352271544089955905981737314539463006680031572574550142866422178015663967299109837160700958221427704650257078049600669120183418127114828906941393291073118362304802174659556622200606343537334076296476481192273616773420315731566749920298984833199836208986873889329704904214819703460137065046545386241656528166133331972598166403996695191520594601713479029608034989281506848234650117125091776182876194680987295487217243619474301944336740174115167807744249731144392540731081217512360875154171118120868159768370919074005036322392264345014915798009650440869391735670473165052076684845226801847180834319620805427022175668835917123602470821833897153521536954823659562535535726287816032474700173907672218066645264847930592106344632879006343741037327456463324035808276679444861422045542477828954543743317584246700567152921717949614973292376387277703630868314709722761393895938315432686366714473478741802656592740801730305199436943013287794350952352212131955137991001663998473914409930959389876820381187311127528496887581023068858383346600368646216359059680856654637410682016385024461837070702988808918569052198673840193979438479486152000198611659529250337143785860772317036237254980609748569951622612530184660864529224307363746751317255505487923687389315326235888540238704800685793258316979819116141059635650311832676026478724754824901287580786872002000041537103144702094811531923814310107548142278154867514529504894381396905779353045701517595968324755352168935625386098177062424137609923731707599215489753133452769524610435608917514207544668072953271098379297450235250397289360160396327745141951725173294820091281572526976127912983165514773729750926199594905399392366858992546553956328924918361601196145849688389372348143100161023167850399044836444513754469043171568810920724196370829622495703002272340231209038715832806853039582629038652282353305827597001964287264821360283406606467659438962596601567967214709460647528851636232464343903779213139778952391747249288243919915925816786423551281855917101525430466100295424809327732526590589267456776093364254300864082485898158519177950274985103889413711869229654445050996408047443120122101719055353029161505633342629113559485899361172891249185684506421906904984656319681996730270077088608219992372943257426446177318374384864103054648899666579450909127511829318557872477286764070061684196463652980178893948650002970761853331984700309859264802816639846878468373090919401090499754634254925753238543586437630395873899693908237599181418564160294863361738929799015837033595774071648842145508030713786786363267266267202101707417179504375503755183806924242336744035147584773227660728064454699534735229545309937631123578552039497674902302625748280200358777065506438602680004571103996433980248224237128478753040213916118898048858615530283508248218988143254011859711431103998697946873155939341683188103780294408800565060550299636047540948806662994848949078992769052732198283312196850499123693789002003992821743714297872876296179708515638252474949186167950010979123593485880498975141302674024572548177613290142291244905994729239419226135274055750579078859599756799246965667367382247732548690106492592505554625253201037026264140745371670198983485076928565575096075290553977029065871455481978742735694139457065126017065109018422875805077966993225585181100870409785146829458498458536212479024538505650189767878637897618656237975671685831148775165189178035566663471680186330847181087917224142914779087084675504970182291920438610583538319573553218431748894993936409010286359213505954225246342628477429472148529830423935252916701222681603133741306381436389296456214163067373689205289693189082699203765386323940908346280775932349984305829610604119486819974578323185768887913271022857301906051170701129064777823762096591113582002454456297424959777025257158576819145670014657428482580072983679318996257474484583992404637834674727959562771978990046335383383054041276792203015203652039675372923053460090066559608131607391649972136405293725110984097094522312854297950184452755371525437249718073732717689539192167413504727794421639445522693553039265467284583606593846181595635305372485979377331302642114188862038844869765606023421371947285442396287004727262640313205170631396861719398162378858477749948302539476398508674266355157875750924538352011071118473964092142766734364274537336097237972537149153190796479339911574656108936500634665670056744374085649245278160783003715443783102618043439131649226917989086808529535854226442601656875493024022437933469015546713577010985052388284923093902720642800848023373453794403837338515883572826600962327323705270870828218946668048589328156262516182081495545343079750618013707234971246785325300637609882563361204482289823312527878018482489595673211292767263987279705100345545943290026198194083074526953304640248557701649876701017113420141402611322162753112494295794474262083839327628748187165625646320977271715817869255593347281425368227956476391954227982047371093572923770046577686802600438734624299152354322368066679037834003659563806416545436546913480213282458951974110711307017142864693684596905408658365942403736559744783146605553215265336865540632787055497550500109323973671644798502156344618190772190791406664022027403041512334864595332739392784947501638440491167465748049656621291070543371181377297179068267779565822438656866876617106800511654431009158636343715294015246984995384931705150860109095887402334063588800969589804690038541747159017726676096167286378003646892689673361630043928146488675113497414915624175079863449657820441557216304498745016139546303755227516705684957689704855463986968000543956627255974126706538074091891606082972801571474913019739609498740431839524783511411313016596857963499147542727946431368686167540273843101062946039271245362614385302777141509168081700775965612288750075945011811420888219149720379059717248762465730119434322682155734556706070873182616032279361418513080464750140389684417742570094607638214753086118355483746251060618878325651969611337902270140560053290500352691977507858710155849169762254131407143610936612460114652298659100670980623755096084343695975603130202817132848436880017129179121090295958312437451395792704986618519091927458179479402226490907495685057164179802641501021216291117835154429805404971267459975008546559030595828276155815178271964517587566446747484746487461882695304761481536598185940443092809095991321468500441389207021900291210417220926074883394068550743202847497674246709073053754460907925765324935535707254630905579249611689635133024335547860758842432773240524360494695811903877393616916695954785940492842126035881898264867420290478489046344799016517049607954639251520825451210359677832325256947986829444549252552186933046593849549985503088687074777057529676881129767372394998417828591730899852950600606344323159408219209443652142467157989504130098941691193521977576652920312026586508235820723913869935981752443181045126902983115508833401067890337721600356071536009970424880497334924119687266024076548700320007655252510114806036709611951618525081201441850070425998024927721090132584102785717847218422601795557449508412360550715992058475254166362595117745869751073238340077062857300068479950866652713527883703959592402164294526170526278935806758494279474965357285340290563425909355566763612244278856549044140797765832515202146882875423443242818931636431239536089036181186326668332882529576038113848540625429841349959280859720755783451711484802005037365797266229972710580881591114750149001400669322450555346209330458940772673043583725484852326063008472695037625235148062992716414086049827569184137662097146852826727388358257617386612298458711450016729211326954665157159452043948126195529175500782142326655426862788555177896056049366502213661923358210829088296266897943742377041150187327955684382075039865724317820822861738359773092670126362604639153857205244459081231175839746405534897335972662954363504799592276968407597922525950888887175424768454344198421680427067214899170657910890265075382510534641464068531659474383873114090755923189801573087932790921108875544403744678596117615358210695162072797421660309585885946245548669098893675892409303702748960953211478052824097665372792017424252318681897389323478891234041146060819294539665329042086145670520071729511710154193619807900244382062863880216215486278187924945672901023178889619332448526582216242012370067390430309473134238364237962810373266840025566810777808728682021236291564130952143613304298849185351003534869142825905336915833668965966176486358306689457698974797767509616584632991677127258635718619715753039728720135368994431028334316902587458311979325104741891784564869591867786587155006408179255290409314188001039673959154966468478927765411568255107316620692707232595132171342562700099023407737892296535443965722635875397780906773484202751611954984309833521114262007562313147240204747542017309951787653920494968151000573986917802379165205754733415455918768818456771592878599345140207754671640821507592458205715940260778759897370231943251295657065482269862102077533344546193656026735002023033558449526371329290638750183627967553300444276183698278252080835542207928161655042152537109492674950234066773962632140976059535494628668610309824482518937309575509047876561998818737386290263546937684065872321997260876238889721056339933468178311159205792344796026845122742089964997435222180734864597942876686798020288218649245897373873906011182766503196703749690487067890586027545733173286739054566073297029661489681588310041103640136882351406884152239524636778759882738307313671043770495264460948372446896740546799725718687190291892219572631448833012936714122390302142932536934219123013808922761920851984102669800450850920839558922458533244003095064384315061222519229775776802172114762423657734181965445836240338151281896824951845546827740062673966716178443489787081949576114636751336687923615005569329645952115259761233294775137413394301891318204400980366449928026818721266641683213981780169540718193970201512446106617370994952991793074392137139086153023126320470506087640541525079747473055428551182575085272661202728060174245782965151389232550803511869285355582359222945392125989547794101521973378671170707625442490878983413006217129343187658444318360242016406580096905056670702723539897897909350999363092049719142043378272343336128512041329508285195814444575508480438709108880059337521598576215203958544116675374288651043437977043601393313049971174973352626937540987071637613190012326481928038569982624896950909881548640686376316204341221134794847506033330645535458361839516624036478645244468625630452063285613487834204415434218111044470468973199600066221751136944335256388623747438479125169026436356395891881149558252149241008563255565182399469692922279664170523090784010581466078604622650489237128148109210834911989434530732864088634218224933188405391781087220698786170664951085271385419967238021675526739977622651077817703445940268043499575115824117149195702984507171390862936554845348350595339310907832162540322848969140584737349844511711043037117136161463571799783900634362656579205488121527271631409547524695838637260763550185899424832448913281907403890029095992021096706443324941047888973024027880662021226785464251205195551810223688417508988986436912407039564943146064234864128253321414080540825343628672540309047808830756295725773136822378923810474826959430635030460043856890073667957483166424364434373379940618640324115872386668527795050324420861716738820363994291590415394915128343395503531972176690163028721030586871143933286095211412512463417874055746211578114747318781469507530299665514451779118571956119986230410077893343432334335690179465604802348305860961493883717854042213711833601325469160301555311444238522218784010764359006692048333477777119462637954155979505278184123706854459888750387602544769616640235658414248296705617355824129821771499548773458310932254336114757661001299613517276411654475964063212827828954240202383440491326024642616226151274925677880295840155759853438687427049663961481690498011506641849315269475584433543328811781944496304438159001814110138179709622144771788373060425088180061183558344571774469645162388144965526457594682686701687897543444494855034826067083132634141156601479902384374577258625562370385287664585167078083272828708618295187871334039038666983924792097882806984885518201769049732634463275799576922250869958225510318173044074385560505578205290698566850454748264175537970214846663711592534485747624726715360285501214777036235171122763800213249551545964713846182040864231068389666159608514207438105962421007258126781881344700505058836120849682182359504519016199503343471691374086992664304045937994948572663561692118305903954132630701972090856457796848058942936689277646970982689617072950910376335054037652623105847214461934768466137957425255061198309862752496954853386227058465470724090582565233709830019806038572653855288485761788438456405904604865200988369225276732851091048675301167652070698516684261396815010838909820967068522065315635703970514231911891895594926345229938371920771432403285082680672559668930610509016818799042397096012257948826811389743236247837360755250274414490016635980640625145196940178729853087452758075841200891947220190964575835947324245456581042521220187819020811579357421493224171746210665449262590585833430661876427480930163552331937485618008823040742577182748122739493304922723412903635610702764982460677215199798269483799120456551414414986682927117580060970578013698766390889459756295979536829222781119084107262955901763019345731172739455318012408516010368675174176458085478056360509345833972938986793935565155549733818093173555848569012041386083722590709316452759685263922453061659621127100531918938185223163207023647832756234435703527302119336587827927587559415905984503226108101895486336372217476117390108070955169249326006540167804830242389990101790823452051090271000550793613766107285550286814880970415947783829454430885905171510633198567862148185038226180181993563979650817200109579759737017664453319660802310717096193167689226248531151374984517706477169661103471405882667459733564899199504186447844241125361151940295297346900674136178346409056323977551703830682856228096200065460367204801148527239670681845596221104135032809996269718950986980120640037548726496986724820779588595130034897275343837056528543588795957839817233864596122682307502055852816945646814178846825050044564847746269081877785652669955098652321634691370901880790726880570068067462071544364662351778374265245858152730840548003006160323184283807152588376455116951047796299554929475197782606857806390676298607515978661992229843629750948560658054727367694036342854181069923554119834343707413876348854169053506068861774714775365355925015533568440759094472840725775756732444791801735110656746705218358191900650190921580228650141918375986716882090516193373786466844777801321159901831696038770877205523546928930361358543420304888705737561039457198904937673474217247571247070660538652471181685206344213926116064262845685343122598594258987845889369287342567954248113803176982572854965786730046254696868761317186186572550825052329808294817879914652185992757378850670018734067951989468970851717619343572181347290715021105260564873213339324019854404328620449169913138890544277183242639038445082982848232997939944899739859706796764539918496619607924187276490543321417416117819756415346210421872261430245972907637402776941278906721669069310663035416893124306801293297558083558803440165705596025338790248707414127332873854623592497209954126915980381985944296911759552028167379181824349957591126256910932289053960739875435942539578962285735266749508349470587790845808396819216251339099075057812938646865695622147059856137359914341988742669393806991350873234972544503390422254035561129091277559017225266167286721886813298313968927182294628775897301520562630005369837013373136663237921484459796394981955621539383413050363677464863390740465062446785048619152708210212278894692959856715217506889557444704062157992894094415060813844630568918379983597436218806650139657461597430835399023194205927761532934534451329813367415984294829462541402255443819250700628260640813332836075416402822284573015283926439199685955837193204509255271572872670932611215199999972498787130708617683339962933464901608758766918976531356913099998871080887049744947424023233529627003831889926757993849583434207151705467610652323164262145334605431650347132542510953938755841952573320425259559754401316988403903513141476728398867815279461922072762284958950890104666185958680127585453981657773995714693758438831581735185573845611158188085062079042553025590036055558064286921122939434932378589868005200511769524392833382764642670561794884509222664330424096260926752357862740833421617473750006253196783389266124293880395405649556917738468933462289750761155467644827997433240041374885261999631551822744157480638092310551645194323069169448726710900092565844640255033929918312973965344343310077088620072556418174546042263466058552097943076154657964565036806582876254028968649008085038896774532895008577632538408313930477816782309422055708037139541423145229113929152099749831692183951142112804346299924620533350776784098813176320481875000497992018173805350231229420793159202705766085352685473577094981723567494312125239306622148955374624418589506707104077016409257255337606232170271052596388709778934954588643812972110641067925851592000939515220097376921508641959046257307449214698353861390991958592226028332030780773188289730309849869567841673875247978510118309782735928722628579788714903143085818490783035339501294225917144705851965161476617426272160201518812690019228193325255063677360980899952220570838934796499575281438941595097805872920010669154614518226698248697996030334974191666194254330647700661870596982183704867389163782196733116590787272058419439868421160188739327323838433581813784169222855380524068724716870279614824390082742558158741330855053580498720818706361916914619507527086282166828445638874800650267331222944981002540565843422750957846037789111535276472428992622962990991715540190341170297698297721100495002857270318885807637101244513362958424804077040558660889230592224616665751547768254624852847765818486504403283756920307164142901655572115534704277279412445950844457832333299789229821520301333507420987591018235512473302401363454782109038635178513023870210512967708401290428642389472647828766025936542856875304069803585847901622947226890001575971963548526994607384918532599406833391366777900097991930933225299335393953788721627067318548242873193625432837721516281300470648667082362802086882289224604580403972147605254066346897329767541623541100728212524153937664071720084627866595584259729976431152212268221961611624179906037174682802432398071830255762079157295955414399138252606078662796933814863393932147569138351022023233303454028295191013258278604238141081996797871646264684490684824010166689360040206529022833930246749339232811275112184798551647997078309272965181637037783497807312289123096338236461822752959549091910456680418835391950962030101077105313322386749634309482192242626210608552349475605637186928205910849174125258571316694181420638938735138312703630019327179355065999485934095488208684521617929604071741170860753389532508168988839722440946549333573615753696031775079282376977061649850750518212660896447078255181957573442905526179210943590878967457219751009718092903722657957543049271830855125225688278767848030131422186853354922521784117878162573813164971450296389491332745500584994486457996560781112703998765933163456574765077625188114570319441464694940733129142659319505323628917337023790829859083320702669867439151954316596689738462372067547447851833808813664426671279454433168715730512833627040649320807241415424240696376383950838299704265567859475225388663974059890387039476410312361806147549350231162757830655981787195724658909781426838280312702657869752421541917983617791185173952463402700453897202011062201830390121034459127504784285960369870008213802918799943042895538825484292686313967234851238289124768970412164708246635457415966821263143748601267118365544055739838025555002812121307930535909944010515894347849869670153651695049720086554362868391858476310946686900481105567833521050393376594375339082527390688314580189956746329831870293940633730325651879298775177480775725825364897932192572315460876766276991353318450990994034868407497013561966415099805423896997106685916692525894706666944473742958700813223654434084307698614069831799294140723147554383890778721789529219726206313090347565556717313416663631243926856823624555404886908876370990595813829515768854460211756930765007870449033010395911555749986788926930419761249883945423608232097674041662898054398570980889283122642331658583307065404834761358331443621211396813952739362982597717303234973012821580699810634192434282094854535302816334901936277499510846958795066271011523917821059536405530610442504993537281939423652387505780312164835944074163174017906390127657508974647020114816033509305009400982353209979245309507699765429629763306106596624291495154938589964760213468424923146974514540374807659882110633416010648530992596671293592958175169277087017299655526998304929656552131010540533488217185836681389375992509976329848923413050473970720665676231401161453589000936877446430750257989415957123173594189201158717076785099959207580450475559434957422962235376777904795985469020439621899319000917826002056407596596200562652211436962962754012687390931459681629596596913209393875741370029198307469700911481392127190486798312345273785223075369092784932132167801450080722204900136852073691267514234121458433553597541315669623517819975366687938984680296269956260201632809303628127948828865153240780171904827469068919638171744842843157402864619084254380097597927215600207083013798738579437016487289897426996726400537937539122944409796978660159529482505524745659356768688469471271055073810898168028929139389979650956772105283933776620484217078405216192313934199258537527067312647564551702333340123169646311234285659444577928578340712134464639716565639910907399709218473308307884310621682967688931503435049356260537396191402730672231564385696909888256163730511481753723922370113079565876571747534010549618712067558238874472959207438801995384608115472062847748980653396140398083703948977439094735353817337005019953435021250624044460723036566766549824737534083803438549024760444137497385381545105453284666276708661126686450344334588226392832899728230010153291851993909606521011103163484385768199617632583259873115076692066976180915554799758449045589591590461890836717479216911290209320563585528206032301677445403143920763306985771760765486106721157123173655234213967892364636257507114997239426383262647350859518122108396662966181938535144185489721611092798545294623033022554578010053207932854341779211291052265742973237277857701224071915490097665894006036401603151289995841242165835105600279414768658057965637413876154215877705440701500106613398353090416218019542777567376516214977720943289838976657073951774348954510479794841100576220077951321965360080215260169404096458172656319176020392772434810681961910217962456917062101213044771012725110166434003357504568761182690424518853632615416455347941025474566960455891117791734249209866288356538586226302118644972949427414453885332614458709143635168336077560999222804624595041237079272291078050892518795092706702072092149389131910709878257269986181892770110995517928614587219296660920383971148472541775803553302714186564897260883851267371043269448731015631258973554883067706474261194812238741569129247925950535279408225736157518234908156439576987308696319456842087119570716020585339845667952743862103587678011143994422054850093165781895073540313888288388971148611694038936582954658522267881056292236551841665069307359550322714734659728849921014619201569694924480531681581255376787437447453630458936155688339031680282425230753548041218770280635441704547586545024158162195104974270665749281922646378181653543712394739219577184341390064456330803743556146158247574353954155361983271707231227695193347505269368677967034200788893019829392612440918509091952378284556972470428756932638966849943492013565744169618236379080661355997723129766732605557243087504044771721489933728837770005003766576963828956505894376588656136820129798583258912485694009095495927733627128822749734397436655645947124774133302964190377601643703020050868016118161243984369256766855541283216091790438704262892868462257947355834194999342482678002362007146431741715040845503440132000117140742692278892229758821456998780066974125805888636379155218136565230902029349619324665760216707505861291706745724542112179125346664875846558886866921303940337036268685392985690769340245925990244759368209937058618660436300672135204536111862122313797100440165429212540985166189149070074392009466457930385775193758287666506320205575552886054867590085637004276132240447747612113712425556667306149460352606055343071418454811659078914298333098115309480001523523800807545405169507693988343395587312368815275332048888431278493601769667904505344102469632972050181664894178283743533869567648472518824827226187635570842607472027868069305385478897493302689019595273560103009944236573623219426134464527569330582054948835525170597438177937857679359858189905113836049209848612130407446011726234366386947471831531582989151327521102232688495165158119588093685601677720489875918272092314022492897379191802162657592838673683065682870148383379583889808689582134850933249104782213501894478321455035106605362727632730521834916218774226915839516029101968541491271350499337730894902563687685223252488835088183932921757343646081324591838639121447062920415182374831094710884882061407845690119398991884222588446941220779586051415894997924301550132917657841618572103872155187094561188020947818930391121470115621420803980843528190072921653949377079295438871346218561561347727952488456656570887952155028856307127198397659449095584047390873558662905679169987021394486330799484742993288091240279602818431115880463977160597605481359546592692036549655063124302006016600621193421265556560652874308970331210058339047287579978250300137065412035158671735643009706840430511212551638820015948409271749663752366671706682860826840980261087180804971080762789879396751384586857161059283655961518317355645299505205852169940320242355734732572910411390400988659529423528535794174162751462194321226177966459103264975296315121592325802410592873578665379529260810080846746833849155168375088911336332814635746728945088342940387523671874825785947785372046588457137667570711823823711196296028843752537309682669729460033493021417316076287256589779368130603279414734758551640922496155680092820090975571177504163776320207823153033721560076538961476470093503319034099722411939572672601605520056740653295551344312343804544314356671727109590520596050355385749104913541431648038242050802585450822838585305792005008315362315480954808994987184131767394327991221555256425980302925056821751666563751764134541144172958544374292717410385654256679315230016256355878456993810332938992915408712034197982203946461515718666492706712543087332575477253713006096806627871865374445815472717675674304488950740002458873772170049550681613979151481670561718489605722424294591240402312508548798756314561951430914930959469033424152962506765378253687709182126746045554694129937739571767564117179611248254358885968030758786788663579439657378532566461579318592213701861798334836860040846875384618173753253198224993938882634246280504248476872336752549621434745185410883751387714233641570519256359785105950417214146702840954583733745940691552993327779554831973212841723871847852807876262245521316978453577409413619355601403263901010083669372974703877739579008384611718366832891409989465102614120203956094543398574844835515513227628300179153410295992576698197951469590651991722125541499225667208947095992878077046608142831645230461537311899627066647219870302146131438460108345973822810966413165334329152712286987325928023064762029864509789147663867911988173705488563054326977267596667252450557232372226273985231717282875076840202427649215576794504919980076625230192241171191366338632201095947556138696487533329308067707954160880485765135052821197631476087681004167391588883802307841873072899226514758607385569357537868211836855421792160995159782513358103451004419649904586022049400592956488537261838020212075746380873601226833503961349306190720551330227447613413828799005678749935044207705426504529860164026199229880964683505874619103459976722093254979738740313513648394147603378199876208239180883568642894712796443034407510342320081626754881327312292524233353546784663829588409466102800523181923501723775488864572419960152102852357035363230030534629133851996368067968441034819246236802587447696561686715681845465642366180596552586196137466824200910375149560301044224938215745530862021522464061714967113090393983327467491403912507130554230049538731409326863620435560284171116801640362028761360978997318313085150243153371321360417762618318593750626944109427499775771648487727105380513488124858011949926274066236205700282724977270646017384910371640023004678699548171381856404480313254187804805741459462736343082191097263797594903389043992848339805423546523117008767664546878351394674552358346139464865171647351389878528649812293144063652431799306334292011509791976987814274621031221915183956154358608289635156748491024790723666742690254994123608411382786816749638814689118121406976257509644048031444729994265698375824509802514430493565459951910194368433873051225289561691115459274144734250689134899146131133952753797108834607250539802836117044480137399954699042513039961348648653341888848433007350904636884953223981176110279831162223939232941568599967858150463135824851182971330643592792399280861250677416821787531432247578415112653397917930240891342669807187949992690673056165410689862951732150670098304890819837667261581647937951466972947713482928672951663884011428080897050933769162139371304382190493143402167212216006956200752934318023318125064707268883021428510331452218704620766818380159287764839954747986838596073399076527726039377127400498204145775653625397104374602711148835364156011960057900720837250469459924243430525857276730305169996814307503878844462163828366009680447794211431889758062165390690734234913011365553374914432985210834041484144439266729391209172900375106608957889277089622890110888872397713098699960779491232556751663041212105066435849531728455052567106251687354344425644689363272847112999696980954972214093889655817540182966518239509413797789216821735999037265226255012577618422469324739804193225143504987880338244066137964849290512767549052866645459007001314987403872436491266193160301992901060624322877062208878862472521055873552040961407143467949814563406027536021378561588419342914679009705946438083784793142262319175535589886370453021186636071876535182687403375274399731000224629765801509590488206306819880125124049173628726547175471132499246189198715496457872195691540998730312061660604702636801014649320559429950905006483816949478670639723225595819805170668018810531950034376882457212822574184590112310365624316365506591020155882253277002043717927885655972392769527108609327379812661681596320360430888883771103561588373431260777879385628354348396808606015014692937718863941418789917163453950136766695797142359089812683834885796870454106115402637490713468837304350569947584480200394896275727942143284465605012202163709384376927594753429346419961629943399183566956274954513122086139281019595492307705853006216204370126830952351878826672587633243082537668806879245502233372176334148993507874689273346213473421595142846859803616332509111919201947854030521979542624667986118883881887362522101825256375290566570948911772277536035138108639718163964173888547705908182262222672741707333739732963374641125886958943337439446137343381360392957393743738905302746810497456705990335585206041986224118295756760942630292567872598022446214955501989563534607115256791711924048839099492042277693197638553845167251098801487940070752254968318656053443986347678933630989223840094289976985924313061583187386567662680459220051898668711413760295892045894222276264131597647115140560837657176765131305374989612942714625040964824331892710094793901294887916980095731145435188154619513277525891838714888887367351913709126906015082031544870928187777514262719943216719121592024170885108996488093461298872249449712717963120906646765461932306352975003155700821465796301006707779097928585264149092872407910570613456986508014475760109531922956371198760522824232894757992615831472037733581715185580758660817592490651593230302012948209843254522534064911896654849945870399040549150836438147232552355568341066802467463943651074008391227218380428950596823607585999378452423253801888355174803398426978969773776028972618931974466894150999994242957342618602325596001193317432250504902808024536287096245590933954799334735424175276916739909070935391901678743817504599196481322377012384438204690901422858069863956260081054406458091187011195382720954358772459731607764443833867815355096417211597682273906187230924908052770752810654113643446966808433565882061730391720067049026862372710488384100567355859188374891228167614978806806929027755581990203906679913930451089739981336346769398943441918102211075849617595296515013386465994429777590159603166415034743649995001173607434801229959616550360259942657377320723694496842211116825677962080253918297547578900189511410058445952797699536078033226250782018017135726502853905593858252859368435941556955336795265746677416911459001346466333934296971059661624138978647191807567792496286953880666745894894948358141005273441969913343747327298426852083974718309480130936389036262214457463670926371605647721877805209615944334958143463651395047944239061154807543485602133193278253906995875951043412837730623575730773120290557544196378173782091359316473630818868250589685444241769167354940397459267686618216813203165095941465142930288548597284425366455556893761342590086085675276314995882030842877099122067985750100104983776105088054036457199270383603377914919291452998835581047084338821279402077457959213134072386827424901752945407969489949713052864705181550078022132144815891897253285095858296342007170405455438947873579661648400610859997650964894570747036716740835774297152878259361305263840017757642408541885331789420591872682058670258268297456041524839633257643849940087268820517323955209240232104281664129393432435382232544084534362996531011227545636399773011318828064204803218110041659316877651097546823222480839741823189939839082765148910529128663936259793092060524371159220180808917527986914723082440065887958033112838453271559078011377334256622968284560508575992898801202608352582308979610338956905837216912726693277808325640573823635235205600503275627480040479426336597882751388561593627167128409180072314606230261790167105330517329587326861425218884670248257676089565160673723678203066819677320480741753481532268063074097272854908091177387947010578334807452355892095032930035936258680666673867203067029932335014372687897049181067962718568359535510413714489996674864441309531325587009194361413572320072216246238654097258338709766692903273719428544880556834422697780699002730505667862661145802680391957684631758930524914166596804076326505905138834603384995119250062340026133370639085622072152411118141295498830650711329475574875158165518521044528727787002585922634288921789961738986730202691789177145939590372376383791611354671802320372139692101130740472820656942818251839409180711073340263640201592444786947217004481857951366715927721355083553544943895395526146237874550112811041122118895880193900945468262927794204616100586320710442333025107526495708586138557727865443155989709520711341473201194953858961209043655757908353746393679612936784332213938684930787875598998631511223656451477856038317500061694806765959778738496123447042705576781971066352628801586969958682053838415165248504515776071474535553850962948282365793414794097339359670881659942632483109495449615988807811443983325954600592650643953242009547836682167882525756937674743286168899003035179211099144454901869635785986229760449049482129528124727260093289520228838122645559221675761291768278283072040497742165411379635469433198012878187475717778993846510154634274186352802802274833286161692574860992499835149177398432570411474346318345387364413779495249498727909754066783004032600015765182491798395043594278254848037157002745200077324690761597089541701978293580843771997327027920416045095296078598190137917717255021744765889470852352022824431515716146736084156023657333575394312068687039798176308051827893048213074925843574246538409547667132537229321662741943712771665476683954699684931315586083294180941442205568252879340891843446564588834598379411575991159059629026100454135178898617103368943394684173124286120820689635492402777762571500882356633041507846473736416916440974890001916770143829085307663483362663103551750982269141565401353993568592551022997013382104800754496766600426799177652257485089471321965212423603488260863756125818198087747539472534985889712773932549407892192081800548764344680619270868376190431765572377046589948108871190010819880291871594624417508164643607250986947939211165226796895396722750338921915598501721787511363312307352080451407746492310844593732049249857986789398081822012097666034367653071657037927943658662685158130752311591295056726967844571508158314727874626511742700400685688936637763891177252493018228386282507423878623243353256158978277040543457160197535811274731443412276303476809494800872869002838219296451989954406636969631705204531870243123017950257317802665635705478825547844724412673761060349904020407999388486229658138286218564746173013244224872134703178546154276500693325145693061239791196938121916205602891053937056905827306732048091015864066224634338767202668905101778591176637923412777006542472425821259679762583467620371722868332839738588804507776129047930163195924956924694171442524107072680321923223351070488343771249699307544965911150530777684365000930464100258674998681407573747058581552321811027630459551189692323420601504210590990845745015008154686506719609439028299570079703981786396182909996596559849948571713010153909500390910030562774101932460556832585987355217216630565650639320955288596576737126750639717927826939612133032522268342884359004554068958858869339359715160301132420638475281758092847419400275514967891142095337900242326903663813311782038036126849465454732651006976050666663714908664273871095312617480124725871440199466860954221888433471246794489670071261586407556824407142039171108818425752977262439251658451763083709807107442165425652276320727696212160747812800115100509089104128323133852545158835864680235738649110501903745884585291652079883236471632171521829465845413653187676315393888667751818317669381326206713658506616405114097090920433287437861451790089151129530186677423493366786768164345774294501444622833912388419427059873147232187925982733156404497771732436500224083588011139425330509363935289585118448692111685574687475234002965615309948479901471248496955026084748247102012698448838115735196508987090772211993681869895476353521146129716221705422212229581592141149661822252250417136163910376114333905508753295808701181320241171925228597980170723365522927256691542483251737219148273033473500316328280186516988078201237300879544566073426364908574498623287514739856533669488415413872522730987091071688483163825441154573499416599345603024663250713436355799564967217042659195033269543569882829471802094793196726540235645726395071469062534200250148500190360677792882724811418539579246782255917263841643015176363124627488567503583315583472178498088629099445622715563803833558102993980910932716997275272136412034374879114698427927951661824339689561615437687719140488829198100852726808225089887683315283825041236931958695590450407478830904511961478552050635327651247448033303103330846480760044235007549446829111433229056498312669067924275331293021186433665370990534873001600214323373181271787068542523130053375015185128638948683280639041959234574747621667047295621563452654580602917946099556511940218139666575042090200902063498914243510870509934004356413635439999213630441168301235251446343756303978253491291397736033117710558663385826433937621061696854738328771695707233801893274714574612925468895630223755396711922806523540157569256789879230486798224775070553567396035735995116303437738915866926315688832234359722029016250186533287621820003411133655195512085578702446244662252302030092361183361702779101712343309543987126123885554507067184120790008086354025408755388421253094946964436552105036284971901425078315612850601519969360524557915342215872959265306871236007248425562659192923551225077818565263652138862260240184637403836421458556995035712162025240934181855409892630852075134006100639623445508822834118872672055659123587414560032707003210085174241259594031068073856563351558543391193906456285195111056551074708380558450297531508761498285513601985781348337634934234767067554481764603102480869078241645942911465290721493579962306511530679558037292726061419132438044725441011759130066992616636451999625108685391617054980525048761794320359098578722110256677358428979723417033632977330751153758511432335584191606012678169772948375644470635125029824540559633794828639617610575896694494993968846250191091859365289526539857051494850721528930395809063001017306661488004040722237346186642835786055780935006612777735907083661790528717790978849116094419694861878901089712902907866002657019794142329596762084199579153206579540514273878867011060322975848751487337530208119628667532089414816851511487172517884111753115846084613420047086478032010040542716486917743377422915057787640799038198921943868444186571506404086187233130601584859119900804510077368976234295264027893399308623761367165502221313086373620018649630021489187759573486542535834567581713591204533074098449281328560536916605267569533430098368118768025292349014429568664903953723838809168279797923177409923736914845622548571912731506324408613388562579025981046685358676028510935442728897931439176114632567619891815453872962995042890198303894636109457638099419430227088001330290341411075784548514311034519474558977398440188809038912881835077204340093113439699605937409811454404607528574580732111714674701636705984073712372876597491065150336891879032254389337825248933573224298387318598889028726623751989037181950504164437487614546278802539296169995927444415802175720916067742532801708105220244644258063756941769180840943501492244783745772539013174184141775552395907563429864867747905766023984949600724183346506070204773279370555211575818193921201716058942124757463191699555167781465471233933447084981786176788559997112710052181581212677125747863092374968018594835631110797548539549508903141239206254786725695025501626872506316100565363833671483318258135145697314632162706864798656987531296635436478430576493320574027854339754866862585395829626830876062936854013130622174446491939584846760148848726095013533464955549881575390357048616873199018766998601013070356491588872400436751800319294360507624607840517064264398832151366281062029842336213988298964727001179485860433910485133936233854089422985259972298657780976538016223632975190655042295044003486640479027472041057043744232787540462634084641281978115431249743844549500248413291560292778936660183413300271757668330192719144253157249393913971009750504203142924121339613365987759440362294428461163831794978377874831911753066892580833821037488315547086578642572056913607919065432924842287514177065001534683189794541221252063396964816688985696173534773030957675014026975984754941206848515295667429629811979773516510265157848648049312867866330932495908266500136465281679618809074720083780638403516539919365871940076264645525279743825089551843719964522953137630693844790383136025162270698871251686563061993831522686912935448451976235406097897220135728232149996229080898610449482885271101286619319781855095284881140969164207434337803772607954116433819165063366659879238168248065001961803220653128330889007034853294186664804191625815180825609388153379267108271211899553009466274727818303295380857738937996669086878264647474369880072694127038119344205102174063479116930297318840387522454521302961888198099480900142380664187205146663472530789877162026695782641384421220622626328974044841325688343317851752757777178466610644950526583063177023994764702969335834884477691927444052617243976763438872176118358387346050381731630301425648765861050341501052399734946806840075941067395033304362786460407207916566924118247041832473040072127435698144147283985360295685303378175478157442671794820349910797816711977211922637629220276278871312846468558233849483327773363776658010277278604077361417794091192461419244290953431226190339659073313786363311844043806383734975787023175562374867590368102724288906395169787110360332334551953258800696922395732763369293216863231318179141894792781721221132338680649053805515488425953949071592559060042279949635960456262729257981871429790076872964268597516806215592753390795397124678647543213563683078202246607843405708887503273842994340332842498896796818289268562329088311846941166712325707158041130794406573940875617966695333078339055669657026388888167629144098758850970104457136825592570136226326814385671954815538830319503217528422259858532374289948762509347121709548304629535396129178938935875491461241665223455508000263230583784214088362003802239575044866022322956232319103690911097974721078581711080325715965152756742399336251914828484677685070996061318260264260754599837280213325868626699137980662762850036231559285008931957171451163128391203777097762528291163828629423835558731419848779119986583996949211592043995048520369448029247247955498414752076035814829542700964168487187418370079211811832808687161464792483786370878126333518844289884939331162185269809768663736337223774026199460660493104247586895808819139661247124191956644918834525641429760869454860790823439894883837089970631368822203399836609086416406882447029728032199209004068689230555929246790990529866105873879610015331343360743646107319877890471241588430163931555219378647308919307311271365884423821233274096808635736172570515497528913344410468978983088714180597281836771608403453428304012409132293886644847360397549421482197587153186532667221191643261109898512779259270557299892409368215656463712733016534054698115547377599124563652308799161754857080953294405797932127637352272923566453645478139323695437513379840647852218596552284771066958305429802978642518390618459930397757590020163934005166193347438511590242000870447766908430456903192958694840851438339261696753486784551422297477749943291513010221591751629654063871695483474878656125635062706458965672624624023757723118862355825208079473835513291198859794989735301273916289734607007019300614596692233863864916373433816767071628607204437118126188662750218631586842446268377057580999864374043191767277776413050279085823526292307334979433820602465618071980984347432865203136799516487807488514419734097718686541230486072389076130930526473281866577970879614593490099640385146375974829452958523007149678452071860723399384892141050682145878181594308577023652028027701422646389456384185797236612171711118548803588798278658712881092180122171814138448245975265761881125286770717067599478457146922269869973441047095800408527697743617707178337841207312486961273297267430253541120743952699188933709038394348908580274999185190142186181855121874260653676011796589908389611295123178160500569049700916080984571074044382321057367747276868389042672031325915828801772234791323108536208924609887715728929909809860730167724423031937757771922389039902147945735521714291583067773885602475403033244450985007566510955853927611498463664554985261168827625250467206641497350192878536538222932871749057236182500000673040922440925755165074874346268528974891872041271549977775966075856209356837960999906805740182270012745808617227906747677700039223605691849765517796533835242491620737330751048435296215281930929296794249001565646497865790640395725382810860374686082104541934128668247061743809692317386099151274212937461001244056257381372060330278601272723029499925841458481485909379824932993942033557186686735655410936308376967234916662449622571447201193382204405749111504803789152215206480636646904181557473259750397499500356062166470779612497525077256708115375880834306901753048107145081187256854645759711240553363852146004344664087463621580517136659931894405950248952412502659369908248409343259014412847426972910902242864622579228855780700869153067466370275033850289450370791613933994401721827383990497009984449298574019363239547236425437185764658165456752475236164440449097594953701566789503934034621933740095364316618086140040539714996488053056363981944541994113369825026373511750703837406290849736647360587780200829506394425425346570845926040363033566913184677767451314980740213883846978753613986328209001821117962882941134387255117669931445315787097328483962670806716203746468877302963821836583476838943533483902872133032442808069605700302359681930512728838995089098302128943722054681085342929059022307837475826933535107502702318024802761355461680318944266343638681885734863752882520598833334189152030871609222068961097991345587580700556047497550855464040637478163940814846549337766547588635079458552578019275895915881340503807449599735408822045627206298264207060516945667138053469551977468521735917845810736129604324054889402501509778330420055061206393630813540526165514609903180143642813567936022782026416039661759842896907592929027028534710132114056770039880408983345760328588123117137681861768981685925266133057189653073611433129425779646061275147829652870866420551182160355452783854775043557829091636347985036958597806049379991942078140159482568094864768717372601700872882602119087775386239636298265109380917583687845594655625290615622181896456701217920321238460899758691119570228883871480440348169382754238182518226283609059506923505666334377306772545114152473672656111504884207008253432188676836636760687002318104788572545693440949327984215150174966746447665416958002448500719314321986182434877227461137433300039843284401385057069779975625594326320796328168473224913124502842526096438484876792222618440639094670588388974956769325035488773957423746947605336385806639863295732955168397875987587752019719334287073614854595359272570783767251276642126871009972567015559043460310588979123585056501345937150353265647460066634468838666307110251640485373694159654885433253225563525179439245640749056543164362256897864870959135124827417846305647116462877444475989090509949497603234334132398732910559711454278922685384962584728746033174574939716111920004439741653874447653000720392098587591947037965503952875927854808000247045897815628112410132356239548233912753085949280476314199917410848644787634296461276958455364376496426222832090880446504864383727013597131772832014637704919457234279548489001356799225861164835204555281585183799651868297777515991593761954282405752832997275252546451979606262558642739975772645406971773312222642093248264543934356645973466947964647629265402287163354302793755563387598727807063202525357457496724865524695843214705339748937807602647338654156645188627668395690208067131512453033655253695742452808217900592231963458163438652122449265021601836342873052696163601327024528216919811471403927299855507797835600750663166014374705991013142951204666841144423723016398684455944799246156896327411251158897378162779258508100418922926912734262875928419795994327522663083684751560690172905259838231425040243552061774898924690503907000133980738985958956806262944622414129733747280308501142059426425410986413820870256311211309619944126302093431004338958683509310250497430514683816325023487897655773995279522956826231140408047489094779129944598619221393093805021493668777320717653471418937366596269454159886055190333855656941313524308088020456866002835644538270708510469362172222816342286647122616848803351163041717756400626759049263978041731402073275194332401611130137655045167722189926930913176488370632551666031367254047403034910035442519428812743137933635941592573771851245444407163008112804654175624403395883951261201030843104816165787204756792322992781790277578595674110124619430837858873994995577768090016565733267785803052945585461020577594840392775960785598504463744943827971354696399130333729790080909176671456593539553182506743111312138624802537317119962309203164779413231938382445707716527137438188955907213002149539244619551389013609880557715262260137494048958764743337542722228686258855444882336273829255066380195283407082788446707924999322951328140172821391530216218206163765432885420006410251299511549233439148679168409906440284489029468164246090220915968147299007342714847139555652111097804744238724526391414722540941876888070627203644233657612706796353276202077527076260296780276536599093391775307439412880014369864945169772255368981583718731329806811923384564130061336391716694946845963618071896909952456940146768734034852544780126220122991361279937344886726320782261037224803435483349520317355162327638412648476468752059119345902109532356346412210739033356201877560401138476304976125731884297292681642584155142901892594774823237790827050363693565279824192146187850319362933797618432136317458202332290242094489061992757252178382160532461966301143504287027451363615600647765399580509636282413238065733124699601368918138708474329535143805054766419328274735721354951662548142640170763329180266873608169430792479773871498707134502965014862601846237241246826017324452163015754279484621123829664267726086123815421316794352747045073329392268430322647982700685998845022157454073701610715984132330266309928914173850290873074146124576733960584334665382896260899540848429282363554376903834183536535052086998453944462665266746894222201106909635165439478845279890031646874155556829384143899880704722409622822335666236919276736240714124079734825840471372905325619546085385464975869986339481912019128858710565726996812515554569282860673494053371728774898340357154312088651836451156529399555812468041291127927242909035443300963542406783894940727301108214155006640700325336798422476787435782065198309061369415586603769729928097454089568260347153372591450053704308845208458149751111389268652961632337896904509264646995860191685480024025582177920105294426221049993594885784616482895708348236808723578393908694843823954904474918155612729436432639122068561411321812567663394720539517062106124271873442925132380022251475777998761850527730786872772326283312627891195195679051877212108786792630373318651058313159425643128782013369400029905268529179863598023943373671429073436943832723925496471881853309716243458762550622632543372745595385175269370143237667255761109617071263100270661850905213523489142859019037028910412169771579802297376136057759522475082073464421342884443713636172069853655908576646002734468199317295315374601545539457410968705246626100576134655182958203822334013203218800765743657421934678079632512407406233460982681344090167861486069599321351640195437914577395385394987997821266182417832880892487588660220343157382868023110963114449442125765560119032383281099789616491443213859710393671366398323736505618284167334610906875581887863402347593340531282200367102202584163141120322331090954820653069581597763261029183422871250016185559833963481304814163186532916079762493021523764722513957594391784048675973602717699030549487230157004232274748198802367859490015370737166866854711523849542827487182163146409298579965869864028602702242020770157525341190854404117874469393457952915193110128339632808613430394479120348522643745804652608109490746181160545843737017525697973585777998257817717589965740061231503540224762416021381458791259438085090985022155041227838798866141190109025527420762899600348678411553795797112611677123573588792947616596394152009933575590570835940123571036819379700860617513550594951807544083811786557820861847165523541880862410627192040510314611517872641410488055700645402095121033603689630460069623928463514509514338222083249738283711675330933580341125020018103826825103021390163228822361118439624253651559851488812924913303397757581675115125662256449630604665104559752310520709700171301768041713454429870938218774304037331875436261431617638345892934364724157922856145952606960535052142893285505144283902706404489615278747770638567400079427613284837612860455276143747911930312832730540557455191859731544151085380672116384068027163338224780005277932922297460423790949234367453100071108018436067772287523746628032752042818534786509754226295184768358171508725772097122064234023993590495352819324675349120159701136636954789410676738788238369116391094359195881639472528564914420450382829508389202694842173526508771214996246021516883067516822039755040159552006827643631552299921474286619953188841770165173447597610978061851562372160569167053319481729840173546877201693729484412119918065669251804759407902072071478539402749583320921748044950838709829585172843198561119226086582689192799538341848717905848707876887046733483546565174907275019715376243019459434429275410865717965089569647760289011049462328743749777983322932896898806141914553329180963462894317491782417023606196348478680529551279060328317745638733966074374888483510675620963495760371184060041158673179570708436742638665409849991679665111380323434798981256554437014433514786747417757043571141910388528698063413336462507630528874705730302437579014820141479897475964070308637709069646339635660188420171252424800643270969538082787516841276489907890755397026305498601765431398084064344761930796771334373662537408922042984218477316455116977224989350208992219943526722992927971251473498768030075222530514591852198429664133410332407709934625025188079024227158118354899651023312701567459665202511502624664103344728335016854645149577126032334538275429006511625492252096927172066862839864321054428581150958748610107330260706675800032058428261085939285189437597775520986899875704739006590258751576121606777013368306716855785220863771961880814345952543592325888871025832551452153333259932171658519986757819259504775751541118154229648920983684841011164378558674089714448545111189975497653250117939088727414590958068869831920576376678817441603807588353591662533943891123300067768609681424180823153171555046971008616912747611430251566023386313156456292711862496357268533200455571041645665902278497411462933500932373272023556415636094533279646160380927094010593586202780746922660708807763930802056842254191412900111720258123252930054664318738216502638981205959467480577248497680440081866867015003851869046855244828250350306641564800603056950234922186821745117565342853688356110755935876278219023729466456534322491754211682358850700669076576414275603605050914588540340926474908443666969720737311142393567877066921953168944439119693792557239524548199035030744592631453551115176261919714120243901332299361044846159336955087647581097077016031747455357879529771565710709584861629060402688278976531817918649768931342409148181601219923576684478464518756027009411905200579902343386433755136433224747265166924343647483203074641967445146244612834136859068593757322612221696751624607550791944212961167891347343969620817234028434798695517902521325564802613814938288176583583469293000456535401613354603024749645460452044838538441455538176317784271724170793444306547321732520090036901991381483412187803408532005982800897093110400028341481335518049019344114858515008930299294378751751391425494067030720053589643044099248180616281013378950547389564689517260867585027759296222884658228237309507600213008275094180087371810178573824970063968956495509140325729132374510378998136947559251327181724029604018750476241681140982083315574531830585661270695804418571951129782283566242222745902317104551008633592967912031701109302379161841986606467805626113536416034342364331156354173638938957084191263311233171379428062807942325313839856696924925931664267810514782586282593432337156203353025422527711982700327278282574119899011541053508520705989296845737284677420641036207067172007350513923425267677549787067522906701734373803496495406692861761262291462663617920190650389349622272980039684899130933508389218784595684626799828603872485391937991189661621448591264547089417392250026016470413104981377445251381621616114387833476973760874929155969760562870521842853312905396069258241687038271553240736762635941424673060054976774111430667230941972837815784829991685660509821155385723037461032691148529673274148945923989461132171857292407365505449360540673653867716003000042502960177780957275773297185910609638602637893486331989110437010533549219503780107640959166682348647874104411988639497607957583003566050435175150938520995014735590186759855690494336915734228144801193622497856268470185979264363517520221525354843670092867310343472147680913112516324735171636866892860497957622164261704432024987404550513534238460928076839207790274403674421370118650541049341655153124763715542901366541955427581684681350545524723238529903348034359206431672515685521958327241086484810624292515701897966357791200487124367603036523503066100481002338443589517491694377928513844696822977304568007751025421019610609492589583285960443290731764357625222360904896385341624356565331332992179588043031098750721774258237071848402622926067346885210272126451214121463065263818486618560661558503719161906066591554714027108562350175824992275181160011949068076415698074043260905217551491905428396652271535979082543042842483876608462829913375757798900645433020851692757166111001436630822305492604618493879923562894949301560295837649638109235893167638673062290771914836181249320901259756792936340471493242228240542355267921140463669604747281311515536408297322422936319495626169706375537315444625585590347571264358448031839922583075699497213829656256702993471144358539116606328367384035152261874080492687333120277738417795497543698468303401279506588901363114165091768568085535843085920913106806643311766039567221308504032709914778793102139552730118056330237670567311648548390959545487447795889966893020098711175712278647606837205450929057596132269246049583436261032821339287086740312627983012437192554184643942661174203304081249221088794866565260800897681839928750196825975654663007431834613800706965256703407599179100356720087632229437252648187554670380000035696670112101264115145702832133151351678016133762111830911919003321747075201157848909188579256767997539449915580955018753573052833349330560103580353802911910365214852736230622265089887029639883146988330334370782314476075145900150753049130781860708797120240481830682991006829197011358638943554060807638679373636562857641938240264276397674369241138513260081069883767761037261019274021405975072811311646367417522389048840356406626313107178179704605855218541502852845158766961462052405895956372388222930731345200553510122413786320669153719624112251897808188533761371488117832671563767356790476974734651627276855878984049649834184020414728489804203839042493212781130528693748714570377992089731299766656754014109172349994358721101485397468547453813922157777263562319698142362650429880292981548595723014534626783136615323768399624831280012748230960129685821223829502531142352009510507192071492828873365004802344643583908095886848537840947465795098178383182134766511777169512771067725638189061825218676622177393804575110959653033576180705684636294972027271432139113890464806477038441988552958352720623687938576515754202231648060923795425036874511030939021683623209524756849135063257142257460135331808022601016134396096626638602278507176891701651687027838596854272926527696805423383480692230350646056141737375883882478508966290265477997177372880095976192563464242887451507230048195535638181063968687184019656831121135767306626102142308050630815243701235689417143292568844946126507495445050404386898773544570033166014657722645443105939045777707722379814861212777147052734766552666915303826188527551035409804079267580724301600725789245254831552910034305889095520850244187657062491763739368648048452813722430934440983239603929652360158782904573360281305716063017640590412911318598489914302769653190632144834465180305854583406678779973642067531328407385474175451183888330110783269912911755958402198556157174150069294252293430893157130123135614734970420007830434657454283373565147001318326099863627050327150419149298762848008701939036885429238999250961405478065311833326167294288142599270561821029449452046003169873493598959017102622460866261502140783214453227094916326565209375728553938054806037310586886989481865839574245808572409150172491986967203863741126762943295985614301411896837127996413102341846169107140396197183074168157085061789649264688910174647035695850328979928634093546327107392797764835031189832947026783679066457428981298693585691496059239380404603913401182673944305821379883136022075836616836433764922774814344391522182354252258938163541455732835897749734790645457855448241360405960663764957758858612602518150209036749057436489227572007509617035810030841517309295575939822766175961523372560668866264854640275520676195704456292520833542724419407776398150378021924672868460444939648489854045110722848139920061062806297073215716716602662294480705288904643962731147984025416752475282073083128738017538218203128917583031834679869998932075592768083437340896901132139412436138156724878422616211919512166542491617110907952560028907960414913146169098116839880399196158700309850528028033213645521555844607755844216151106489994128772672956108448012057015161668404161331765032598836277647976497550425123967681630253700223504628417484649891486452272694585838061811930129104670274359068492501553106840312966150335982420994070571422564149091453465476459810773864977811817464319452071370984276186293551248075069023613205114626523230583107902085818276879401683914998712773514618403233397644532978232774916770731919662557907036447494246997188973591748961934451604997657639720454209864029401116813369701721368853129269475020692525065017749074370075321127313511006219458072137663590374273880132926215541443835264296438372714554201758383255808242229950975493569114850941407128477827012760957802782876447926701264503254768104573138801073006618340255803534594840878294782577834116889422588322718308443444889800602566062988310372649388850409899196853291510814212055503505343765650685300159958649035358934197909425949814679060848084597952568739949778819822815384936732437490703686786844077081424288856530027376383281984093117007215940054528130935314772768432627461980013306560850162581383775265683727406183005778019557823655349884792990328857766115504678184177380293943199856638676716817734926163372031366455743960590641871236678963435759795631643858615919289282333116710408023502844033955806787225629546933718466536070404965029306273806913652588641575861217134703982638525555998198849765252079501697980847305021736730927924311066097805766470667364628520104470516427183358959934058485853344363994535722387065100007679147943296507433699010889785956638848756502354432219636183528232326899036671053353813682599641805206233746568228789156347527078461474623484698897828671207042752645877395603003835406568650022695051341873852148874324219780698035334134894909572210616212460406544926084241927403227142840291109912887933480844940425659629301095420119840076526497963870794066675422764237542384814692988203880912830344784107665065153910645636659262454517129176585729299490838215448338178721975055216276196014540420239676353935115071710513090066964954948447933685484988289406867949174534366108964804500936628991906740060344510630128688647523720147547848311174063402119058213286946540934166995315628476006636755387177772947560597121294630434302659792534579225109220532522853452190803491920165751366737014142950622234780859789058065858329281155416496356108418831017360781384227968979705906008657829358582949910159216481818635642072168283187046032658711099130120438303152635222411632439080805863875806503816872581076488412401772349172435752318700225671702996698147889646718579426373551709207832374258970161829576713542700123402299879503345901735510747045084481216153904525489511221181527998354218139469154098392116348034496582288650936957884861503510657328654077576803520678745166713422144036680897054000568796367746476278506189268752585853160190922147570726904781381093537218121956009640190829600623529414276413311470929007572395918235877057508993172319612367512194221086803566906854110146090208099635612072041884466397761935437307387632904247580156429209903539080934058204367038324680013077643009461228004588175009439301511453066347103640937935012311601082475703173118936609727006770260450554741401677465916917894686938474488218433525977043698692094938042838704928404494123556127548511266295567007581182194048313403702198450326688614552090697246686025954053139242502993802419368788852927410232462017321302829151221084440836718219139330525028427891859230339969394397641582681443551162387601682646554585368487059256208970651042018315601092638436489181532874795083540332849914126427889940121427673822665996547331240529283955787644138562989005656882102026555149099448366492803201606413777866798372473183809185577340308971073627706135341484599487767944988363679517210727271473858218143884544110350634927008412513002574048602340118885271850555552419823090546110488296038947388408308325456262260154013230524283101934699470033652038183725572652646483880631224964834360984078983446834136433689807442599339543592257460234044758281410147706860187716384963458923456254918022575415578642887939892069334489861245178279998097471002705631324563230393761733968971497978719992782652099224464850622612100066112405983578928457039531191665425643649231669500297358138199882518066172736942350822123727746045169293123867987969521205594835959952200513721857093044948182504968799457948692096661351930406059967689184293865616832173474858461456361731657894364928058645353193690718794974313293344294722646416656242609559132795364799188999527905330602115100885920470494870720581426226634526693467329686715585613550601695352977235351179411818217320248647259842544591226254404084862032113126623528411715505649320569921944192956266625011154987610907113734955171470680988997351706407294387842223851317555542540199403970593512470731577449238978396334823442102582821807228433024967140282881024375824549373253369792666548023902516824827966471987518268981402116494966420292452243330626160772666973016039549585109511096007978597162671722650797989075208081633043137903039293002393929768015617093586545378248880548615444039454849504622189318298996231479754933059232446735693214590696155664776687504029097719291328066588835818139001698048325792009587205932523101055983060656462408850110791854231165401133387526895188662165040720503031707551992246747697141792742559987069409818813675785798923457551399139625347275948738737720777454020260963366450693510619689638204837501718448838196899091802961835012490723903743116251106787075913094424547081163379342369812440011660268457452958569219702519930113538436404186243604248177345202895564214180767939268400750965261435038538232839787769734621604036658408948534863536080931694684264097355846529528061762836199138156915347367707389999908959456146257042975488150065870409994278490492032172153871641216888853152305753745218304528063740435536015650358883149315041446243631434209397556061403664400113321418555961561246262525868499411478779150507888121383729421158239374073271530352605442293635420875605087860830649765070324185312665127994153388059642086559173161627761432706979671494776292114093938968134118259909921179325964790714215784069574808142343916107515471810480541455685154557702032527279620534167732229714033999097340080522550563040784649359260760237597938685488289100984534371578398999826710560894714870557068674963208673396784375834103561758922608639998177233204613229173454996057660021897964838989646475970488317033015074451547767903412018756355085982287078264087120698558913327862444144771307964601676835536928589826462325861981330120322657795897680616828142367175906673504697631994988049542217790641191156199064521367147911924775127157847064743849217947869807492866558553060922880581164654538957462747131708258203043138731466219532609443831589662155292530399920562876153223613775961813482295008530633366199637987862895499415950174091763022913119558540108750144391671369359939798041765855846479330760672961850368432878116681023982912771494203359665955835604040055626719530439889698802917517381123040213965474004536455527113196932493206602601369065601044701758188488818112683932868023212844534701952670783456003528290937397053855426121013156116089367543274149955039634848902792022384025892204160087438846659656656744328121427289561410112281882612752372382935487134583754942189516058379569418678810402304343351780787765671029564649685670557562791832832362506008144524044218859508984814001622799230627429049042930788183116972912964765843269540976891585283068120180426952471009507052267064672526583265093746867127038682301805651219304420560734747767805843132125844377690001793949300003588474028004208589670571574867957159487202616688565701020115310465339872132359384535145665347773557113796678047945479249951638999585240938520044171841183934830337675171771327848859692317677938320041951188733517856094460569902846593577119902723176869569055009815816128216754007874514194037262915462386418592424394029244796191298460109112839524710196060100189083849152270026083605361883328561266074145854926091520077239300820752613730212336010039026558038004973570531688161669328940796453924361096201431573159423629508926339988391865475300355036307769973456194754386041558542006847662493514052580401346033054074400450759666053201368743029357813453921389196911462163339302614913957212290694891631322876751839607391048909260028563631448813025530044795081234167425082515758585024834971446300472126825426966443921869677486013135366537571240219219315585137040721126599056945160043545462069195093809189903736907231750062882211193824104935499709379723244315798529252664312223927427402294762829873441994770972123125518072864179702192884242536832769258057749290923858992622643401038960726581449888697285733066037566373485695309520039662372739218094746115115044729788290433290291487635013978150744931436421614359103731718926445372848027100035550705299838809128127017007103013418547750835049559084202799451811386437338943743029221925103602272249809098542056073734487421634676041176984805049443657717435943770568540138156149508748029495794357914825428463211520024773356586954495073958703959905169464139587489826120271244201616828580054762566952589827984829203197404644173774479653491855407861110203377383601172448571756054650664126102305361176802084015760954916167333742481798332302584930840929495542300466003781818094024861233879446525006549680562008376337971868302445901055079879248058960019022521813811023773916784704152478798650273607190608529168989060275293494249044255894258531294511066672594690992879642414453661479697811892551844644640203024566580758682133269434450417384620364503901887065932232993747878666028124592868555484676362463865091683980552152210813719497884876200080448811244303055288391531860519501907348908269092137745556094993823015676978444969934077850104724366938212548331745032048441176751847878391413087859279666571700919164093140721052251853048444458913722172317112789091800036887842047223469695245647012919455711970537692690690284374168669841419916962793285895359680750385362464468364732949098941293546984135024389332356468474832624549946135105262141543343909136255294213884395641788273506640328807716330384162020450902779235092709746985013233190128930009257160276611790028294519121398358483102263062328116014166756883565013968722087910528998646167889915722813227399402205370489372380087593279882893702440608520491103715851029181606403580715024704075372791583461378767968099033029240928317573667573691118450099229413116846475741893605400949397303203660878241243140745531757167619351380664656127083714042137226250310806707175694088032144898664294662413879291104557753157703529550158593572177638908273568050744912879157131746207907336011627514937017600009268489910463289220926478915418766554779087261617328341226396729974732603239003793626227056669989038061665486308441172395014240957646637965458435946884574977249006691927453624840964312977620549956738857339568223946248596026754553673148700929013842335979081981818890730827190444301315375220103258748698059454668009133107097940013908441407799108274279561429354647522596961677961743016426847359369816639498696458125218893409929835877228025407401397341497666975464830498587630937125847761851153612889298183209903507471332298970852813320577968008446345296408525450457894301880164250234784755580171182635476351290883009845444891092578169698155476932132152091841124934506087913362416586083604768673409455194246165171822801676364722611383464776863246566378811520373951960992814484178292344204154049183107963422238935274431257193959364080019210240266930786325814167078683973325524398756156140712175799444890860050741537810951481258950675448181221503761695735811950273574314504812110554800985067722501124804992558135140783517175845021204320112757075044924739761802106511684318407797487418878677498566156025974039117079292429935403121646594079100899478129885649505550981181523562000604237029680864066760298248231467096849588560347073887790400208037910828305006106068406983247261852310730695910784763055545124667920222223417163285550042843808279125258408241711963249701085078236685801014259668503783791495925215652648593731966957807695971858992737452239416635708902040626496714104706068477594898005907833919346481419387700566392371270697232365741926252767149259662971839198857360636183929758481202683910714033352255110673202541019373346949002985148061232917403975341752267490324843957994710940725521893082167519562068084906312676886920252036948619445389890948586520068806974324907449884819382506426749776571972320674986920589764222289343799184273547545824639887256852350933415045962341345138941562791697065218191749613579716075535727806000198377176572517196054456999771064884466771019308172707441467366287632147595136235501469335542737438134584400674386239274795852741529959345361822109010004814552797499128363331328005989823287679377714765432784006684950387971481647727066786266690181146080111757965611788824128905473844216310698499124729913981795675569654730607119608220855723399119813133555441601586488190822255627439948715711314523808120166060449600288130237419181610135013467209684001023877101656923711325908994509342166971946954729072951037400704164784122404014516845227247119715996524301665056856218226789420831249867384105314833051571167050406479466229234466029527730018701915426466705372845326222151492149533268984515524741825332102184493167822097521885280228178688437476441178832054148315372508981799035429632607571260103573647609608691832437887889040811208483128993380109220513342075907721871358408638184767747617492687771767488701459003361442883461476716241662379103405537093423919273254001871224127218768618078067432174388135652986979886938428423365800157800537659027214298705353720271697158434249774438496557637555185250879043455922024755361362443127879237118023574365665214974995875768186301654816407421290128943695645398171631846877753154768236871750399590890688439534010268111115151418874564776101809704528140176967286986501417703355205969170153258609366397387545304246707949470847099764200719325156794585146025424703025776729340844626575297623340459792595097823707750682462148422942797491290923487841349605217587414099479172619465629917327722469421306264302413837463612320996166877240852058214456414333916310009577740531630230946980761863407731381553593506843003042433746846714336450386449306746089285397967164173459771477425454301432002213585688475716500303261913542401539851970367201396977514921379881331930684769930088276216063529619618681325327892808840608388670240217755736867469734388264673097267762835707917389571136940454492457502067629424150320324591736756640404988382937631417232788534932068505490981231668648742346748713140272452713063002104311829452484089765505363055269470773287506651267716562570320009838603050893727658409249392485591619685286700301354905756221214223716289382758758981687140669831083165957012564986075042427535443080427416252190832509324659164941895012070695718205651656170057648279755066949387007589331023763188171739030206137289400447132076597826313728982247437308074126535092661378867538334837234054574635376391512106485238778586404863944148748413346178167060071824140191813867475529507706953078351790879459780612143381478697848509329620799914804497028809768813162878841244059308672587113511977444089356638393800635082515681877505125556701827090024278203292941519769178559371549636224991844363210128832263011235617101084578741179440383040359677304895969571796104609601991971884895173593402264202336709595391354149408647270073595983946035121216739830879031718105683578849566897772601423561136825217814753431888606415192037154193742643493437594699896951752112117859166418139888465183593206500793691696274076453201509267690220528164328225236647051242664134133605634756832072330661044116989991582248380292863673518870126269532712750766672833914769571598769476927174024290753678018148347757606533673868834354448567442831785038923819281723331684584668374599276347204415277426382326958013416454818743643100782019582323399608500787563822043644484793661183684320629585891678183274643999668200079589246449830019536169660425024685233217137690597507702666671055611973688542273138054528937252741361970494160699819355225504952846662212912040405298038089179711937535964582071981032761760612389028975372617408039065611503329118276504766188296998959127836199285786426804337003288562698855706085272637603244092398995857936452956897817238504807827223564923175527450476695938092767609000223536617180577044645265088608968361043132288076498454687302069692150040366183955963957835775393510835136039258576157447132713651715624032791765686834999377654195183959577244741376614543315222745257712752354559244281846047394763426681278493653120294614535632050461959518434293704825409641959519746650065651634748495306356708236758988684554821551184594237436617416854087360884265424976992537610672657907897168489265929241194311161501876401090207152954014710753559190677801262940422587836054821716898947240304960618951607169237833796796996221278162699084067109126784324757766865092907604172798508213949112938346253160559744213541022048221942760377575938964875370870843091590202596669434265351211325613543169764312658372371637869590384976639768080374352361957218854579736767331692057567865499554260162909521728091203306351500326120225285772749941076202404924627984174963445753796438591170546992448691542862228760904488461276190346721438243143883903329367543994138948572638032786119395885621088552642509152977982797084963785813515635510943138341561375630288619102411621715322058859950623806310077340082524223263697680381735137565086952009243268703894055179373178578541981971811782274526807292578040610761774286334399426341219963495896096238721018224425549207866240560762548570372999295724394292941012667202401723777566094827252064571262579034206311895641383017924611262079294376112786556535270830291432628962807721868500703951264280629704937411689854641033788452158099473035875157490722976800205210582527457585833620710549849628433963234161791882099018200279125898516793250160113927574885384503109265250635120780422082117180537579401372540410282818240571782237281790373172909305071769902604487470232055993367544309925137161696894703996606365770837218586606425518814599507586543813738105491944560903599329435444153752901801749127795767742183964186956844442577820514829726036659895534468512575436185868418516114778476403501549496918229662772292052595611093183691097473867453363567364234028073339581828661985121120292004298861565689585485557909119868908876997238261726276504656284563829059958073991796040921984162743341339909320862095961568776614770330567309509542486496854666853821451169824007546718453309050991343749617463460690188899697956167694680437837923568586103957673752694904359980895635871270708852336502246263400806632589525705560045180554206276295127811599864274416212768203301109644727749656557318063786274846272149014415321458810078516018349887020262045771680210564250851208011376454725374455226553926951748472728239602206183846839507288648198899608745568665207511292594548484149865453835784116389357852823124541048655542123043486598726808924312258663996338557867977762858200234437752784010448487327354291465128678699846474505230721669132298138252271034063766347541027728228719381108641037100375998716568328064633759515695814402957135480419643451963403993476355183774783154031308812979589813801660320666444372322324940046282274831016590529223628682850960410870290029692602479456814165151155089584905991676854325132039102359963521329897770283671771105952792845977122483962445956385390721451481589776697719394696568806452108857481089261110470811858623815877301186173311899407020709744590244633707855876963669082754148090748679664755788093404804949913673014993511544493162969018778883177415419273376656935136255524467393225650927990779807273055709879834990525564782707982145742348792423111674083340815408003855464978117006528153189187157779504780973416510527407971111984918415689868028267636222061141609112493887161294049196974332080430919227836843492908483036894451585051423473198805225337860377046323875390996256181507820362553073744378757299983687716328016207417158251300192721717001442546948699270507590155035714463328271474843463534926799579853912030751047777774821764071286237861527790577193982362494365275694859658361697695578833782324075376528061523784417918112900982879465458401054392203703604859722539225303595512909938129650548665867247163263364817840515388295945892213323316404806996974991138074279467924082280018467666212714309608254339391809321394674934089400167066967977988859757322385213644536087885313062011635198406847602704253659805968164801963573978534741062528587202205516476356514285011060939994750420463171902554818619020930316127516686022515786006600238077299384063837077499889086931294258706527467172745107402971188602667639336619167708507231552360189936840505706830228972110265536830075577007928671303363730976464025207736494591932852948801682800165905826835507081618868741317148353452496309048825127377806898155251759874275429565533146941206245215890979088910606849247529701365436003764696422482842119039412478254811897767961607514593792830039328112270184157708440100258577580555992771354003175444003854145916439235388754028653525017304365788363122965418408702516432731501309044458687214447820112156691077324375284320561459491034055002392960312839672461648354258912046885821897159326533869217663219673167514091955177109995083683454564219588695878009558458731979132471289623851697282936819566748317004585403219282736276297258616570117327773099819288447140446587115183508742270114995764837965243712792360028353192920091700856266023031802465879416997849588235623060400478191388245304634932004956713040620098657420830190428050237327133903308648123939409722141754587554574359073630573098329060262650120377058917783045828642303984680112099657027823612044914078894371126393091446035034460079413151838298419102034757182389805319828754629886827002644749149908481715918035207914246764314354638712453887418050306421517555625974813440647090433553677844109778479398983963720214787833621408560883352373640332813057709651974806109621456463805940148456334507244051896680829438034184409772576087433709785223626453573484305853172800834466669225186728908058163221953109127299420268759898424040724093027450175966561264543068462658102819620970668761212371786397504943080751797636721411071982220732456305654745873891373322980363339375105753995733288327723018068442194570350418607006142777797559891590992154604941114091995278396488670604720262558308334842675501570909328807074134010654961716486650318917383967139653684252176710207313127060959614479755991628818132104398240522043940979801887165321561453901335311699628345103582462422704981235469376707876106263872447564245196948405224387608290236058163681872888041828451586392907147377765437471183448961019149301668512939884766209594146685840965496830489275032081641644982574331083056117922169755457346037110517382872600673343103248840529829350266908450652091367280062414405499509420185286001310585925473153234932640103954383770048941450369719860970484474541552499843535265613546515173206719824089185577688266968030694214846260485725317847086846587842592836618232135583926907705682962840268023113600481000726859805054686292976664687535491600680604691180729223296866970596832180532123581753830946257516856426135767155998754377378445685187663434901021071690209349588425365491251940631519673452260532920472163359990431898300728275865435893719737828472266411824134617331308929164361863069932163003399680210786914374809961748665603062715341680952285345858852065085303265527923203939198582411073030932972908268759596603331535382458209796303106419418723482872090960053750858450090742878588663150178898281838874441127746948553386209104485985902328089582800955188000655761931693842304891678317232850580820143720128545366435613563119408543785796730392989768348784665971347527068607000019155102469333261724335806318654119272747043074216179361930714004365651516904093185531121070487464344582046774573942435947413316895313497851437666811588131772620177693706845408433968622041174187111769999111095899839156369161256835695046545941125378286325683694609029563155539873988852570888523993256897449444127594276530843399918214845531946752994972425890033141113750416478799114642335063576390060931202612785669081079883672359929899959573164048247613594138814920901576904137223037205078135226565383492389313600504015093537256739944842081275047630633516076719782515223020309049228695739685761196090159594632210365443345806184184996302163742500721905191932822433448810233956941185321219103030835562673786920651208396556880509911227140241068934017842553363058302791231552873894069782822741385196537285911615351282057012017286591717723454717030280975095550784395048612931053605483103407829002846361723585152657386692236133074998637601246931567590568046543208949701093556039020870652132819925821037535650162953376405025467553829670566173766147831290046825639327980302911011756769059666745681885402753910504810368874716729416564494006441049080715098714053166444854689745088799949471051782004760031524551011632126606099953283263299758586512451376856112168007158447127743390845086385567938053028678809167935826162573328042157547750180644350557643047199465989954605254173026615548509798092800717673885759911635487464513875406655464760882218347519671459424136975563720362167837070206602259296052233191458174836873616908847378443654216467317615739222399150271610113067559975273023359977293286402021080538467408976010505960330467599598393321734441792345140637694733107509667431638151716082765590093441628577991095954480315706313110249537919648574382396812691128655007873927830222113279545008424788166540392195523479082816234787679510205444110728957267157618391178305103279637700274794186017985436333103584010902795767789573676251394669809653568448610901214398224549103004327457980206142505556460279490274690738253290021733225177919592132564762287809174408540324109141228580859954594666853994530982243311503450944016977235952403245253032143324691046193116760749076907696246314865378490202140201606209087373224951601605143513249377763559175203160797318050773992485080752152330834793838614611183163193780811682821497681041474001660393179823021311584034123710540648440363776084485292805777050590389427506975096872954360474880845501099477929847816004477017982976662547646155459970735869185968260411967941991397762543328768198278922356463160199215085643581662699999721980564751500001932707199788302905403560857169128768554556980227986665258743407972763678629116366028650247971515763878023973586471640984782910458871048110330908212649999652997644434662457994583207587477042326983677623980621502960170691174548277599967419982574006006357969778262111629789967664584122854214673544967969804012911283060688917621823926005398738040954810970911880339215795384320837256402495584948033628058966641778050446732512536990494389707283242094440094807572937165854027993973262827169164979591829667072873458506984199932089161177626430667672049402454200548850413105715675375665085287556732439832624463476002741662509114157435697959794304569495120969648011768736143275386298358557962432390119973346191498378963673139252600636162929922300464287388339076603333234957402530662604448430360328157114994585692396384378721825094273095441478709310850944437036176157689334299838535983309916813128008373222638813446374822806501870021855511620539912576769028043264220468412198876222259278427227256843950540231346327169103770688559250808877417470914847644416904420340248372792204925475037770244579005277249348096609179458506993314186808285501492344434942983411480764091697589193313026092790409290518481741891660106851131022447773626531534003565139576753580041211361436456913006805552398766212582404432756632882999136749436844814830131315815948770212751459835799028645237198546894942556143067293806720545218772886801803312548684486548797891199837679906883945507789737177479506776992273459417164014056089371497689278998402009868562111424195977387312002799697642557626512066265286779887967425946364676806130821688481222752254791943372665544938409576553062419590682948441649508923029697123370535641737742982638115916479484692237631229242920397291455252734552224417151195409046544838079127954443004599343422389773944420995702551621623351242689501549355652364127485220536854301864987939682604591449695654964241773049860946798835105679102657831932514206599684029614965366968638563814343240859166377342603005608819352134970182011635078850910914780755220798964735556661371398794749278876915812967289298166306688860186419294857957952960306677810986253792788419348061973997138669937931864091726473052327566702740541303766803862202056307417608182572648069581347316957887181870842929205496451265852413148753924687232866376421084481896636208279279786689933950890580940912685382428564352246851204429464620023321360290924086608678985524291539057441102807156940457729458014423404121795482510475385597404320778571361317391344122383670178241749793292879928631707912093839674770109802487248178183875370130434412988939142169644250484932765163947381321336513519090599593975119105736948434157007898358701971521611456303586410027728412620952025381206689469878003557575511678266058797261144913278813714752649826095126825488400360012236978708481795874977845031428201926771141645267802638524582058719063066824785095778822886957121677344825118643259702407384027655415845406782925227329871421019762062640132942793244664964747940748765588760110864669769621811657470024609818717553947421257935545228072465365993894187933165567595682634263795356422645874826113127570050700270574228523220537408303669137212703172286541933118586043914835267714182588281791268191563795887729411000569320122778460866613842943979991006045775465462120291501719509159744240024214418446218987406806601678660745880459928302642911586490422673965210814703287794355116608928969228038295845354116632158051397471257465865420511553307004188399754517085096172614131991242226046938483800812349569367167666810958033884971217152232301943390893317870040218954440121806386323297173675777579709196663019957598265309475017302541671228516151928480240803148253683657265963173165916219745293580571886409436760529807230349686261673604496141724199939409560093218102628691557145610537477523668764885137521420772226851355040341254925625867548746178640853361411936300534811669690753085641669381072946488007144189460086260026397008841769448402739541806271317489144824040937364837631988115597922364768495037526835615354652789707531462128892922034303101762882168766420547584952542136390522127821550664240828902536334404096615525566875862078735518873671904774367315834075911622940898060184803105503399892811365105922330021227881675220653930437845870542841537228160072068807138852250891127360830877233922190713472222174825991354494581067046734027896030303838987216544384470715192648120208886969524226478464599003049889554858277207227828422550706837492853817186384748036452259707109030946148054095678105139395465522240655709705589078862946925580193852436375313531889083859112249079405137458837611698380096220513128095529941437238814250054259215181041307897017144281948215382501784762698800007450470922552040868750674256944803901991899691848910590384682441008642140703415725026814578051025249314482136471511720326793491804614167815558032547567483538670963065614756967890419960668333818258396266135663078002793975520588136326376827153623987279549077005099173592546408455914902809989285517990299463146201164243581594836525337303814528174016478983990406999506743872248849605092910128172067660303298045480254506132537611485429804237071126856384403161128262578545242640520242242897617364808439967185734068321496593475957183193262470658208921372284230705553121738118363053954337193570505867777548335896438457402591874799483935624046506539523675237285680434594047319766144858607312901371907896605996232575267335251931764975513527005662115765316056995755129026900004702827204261222404773839284365229699426993022329389493024884731906545247492669097829548672583632558580983793241950519341143358775256592342540812022680352543164328194433427171618604367057228761468761091814076522409244302005772921796474929239286510869239416242467272139392914838970881058958587474597116443670427694774231824788780206883300047451073555279531164716562809577437400951583802481689103258585309807627555900591719033637391250746612936254458167180980595439580284280694429523284091125428686110074167166003357313566591769844671180914311347083744281961954090372622967660364028031478320123299719508405455919776469918760259378589771924441664124239092156994474626593657902421957821538276384839824884719497011385747553494632395474466596996072428024605702274502755947747681662158571564358014103705559008566424583262210397762587339766774906395185115615283678277668042425115746925622042617891332320170946901981145192436037379160154514510096716596177102863353271814841024547692053876627741241772905328387852690945803143410592040956221134351783839436950082767518210086570727052058910121499434575831817532644847127856791907358057260118240289986908017673154890369685580067346793091548859129039098226714978963282970514482036283393437869109773992565221587855238237416877380367846391676572806581134848764277844568572388207449682971680028185943860540445858108568355231624293474405402383268900946885672915479759273937453446197756919509078814017301523339914836018690790156252605513424242885725862447470352080424837124301818655451630932397282101967344804946129409923772945630312236365550478876099924986461245204980847870660289792565669602052026500453728076572708886840049136108050852984112522125994051748709678833199989516434697982002508231919285997557833665429525265708802558307660169795035008111737581430165283652195911061748116176273189157220851727491997278720573860311712696139928183717186243848009058574115094217062233922846559014474948919726964770149545250498582409242573974419498152645268583515552871246487321470674914052954070310135001270042965104861772216522846159204194319265175991511345890690069120667504601405811267391804086983996133945084210097543223766776303549024744311427817626389810202577147670278459220262453387395151665593367255140242955263961269867357157133145761509681411469519606757119027119738435645565914574820418952135921395829726645543237561241195613549978680497052679625168837206713863296177666550919200886277665725465286604955844242241805295967323692532170223754391426730405533343913315715728283230067377435881985820173114641839099327255240252821527408820821261380415321370055318702379839267976128672320317861727682408394692740594899454156843877595326224235347052425935876164208717164048809415651496080317522058957491867699619912697986167578991580645353009741047364486118915650520385921634827531799784754085537668995013460438732686343576179412191088188433703902548161295132168593335830728099969878661017823442045658685909638778895143630189412964928539893534317899269332878143251050688221638538487481402249378018739917790294743466294617846487957977114814511822383771486624498470326864425237947926835688083912829823081658412802652451712658060526367005651999474923765280656220089744077828379918899902817702193820901684683558449679465267548805522944275747124814499995188227631771416126930789150301592881278734604633018673084701273818075202268105606396271862802975080452172217559188772116648896798164489432628444604688838559656963356283096548045958740496922186253239200178488565693423179532350154333033232828292068025220216895806779049355915184713124955774483518577103497754952828058095169870269057422464788333844728007378102251060540548783736915451610235188354760062952816688035085734989224704516148953917753146557384532045950070585540529476424114675030702174948549712191941813664465751715415372335213650052861943310995957191800404824486548795480604176352361844801898521360567894039227145752347598482875813280933308971458834981288633331798449698841814962556295912740192661095104365358932893702492268866499027931271423855453812108605412349969161811856514432517083487948719045185644310057332539811809551596132222938438241516514588217324596953687373486094671891431520927352193869040121527436443975445015937186612635290597390974483280640024716008531309984603708631838762511384437712364515547218412947855768018384037132217461168704085000448539001018852364364042317429014849974298105953639014510844341472392339447609722898775115444914130747644052029127438196614019412090577752766411214231834272807077670377246863643295109052550062646927684645357235242261198039902925821831308800237696823356520462779573994161727168616501948785396782354185662636202502431808249491524828224285228877042849435156569503085923270359096848034350431293806716441422527179474020800776636686166257308569060560281277426097766308742227477895810793496978295734057800514968013462036747649802890957389800168891611810191769020341855567802959292386780138720070885843500456826501301061509880491324900994888704098264988374380130539529944648772709777457845484170081138615892876690128982255402657669346878069247812410817483836251588857261166414391734537417581555829891129670485560609325308409047241907565463030429395993314006992464527788317187021500169656211666025115875967642743768976415772185272944167473729969649107710118120086854109852229086674984316251463184811241658790791390420905475705414938145390773852018048810790325341545682462613236863150312792970350579500644949185430451683338813167778259675925730536287430181628961193186326943572685059676118552866558174202516928781520150879971720106886982360170524422467659618247670654368232904267972988160042774826797144886313950180044119706634634593447822585562041024460556867814880586069312220756134100099827452858745875677090953918755534138380266001963133406965099889617212985346176256666886712599185890562292647500658609929925767347096606140200552390355444581071403690843827059471285068750745955720720664131435852086209794327441827830438924558223790116083041598164838588840188582754386958898148436074515640965020855208320932535217935679437224174601996722072877434242904086381315411709721734992101563123794510970459008291596231459689238890831933471869029585876421465777327246268370617821682132279533319460828351801139182376977553202892935056325938781849689573316338311899932996724055888916747332661257708743952533067596942535994604263135608978442984009969848809117961434513809020947193461104177353309449652524536697787311179260753816590186298539995115889949135583638621171266751316544053841073990654813886590092283028205260694613331928512104891462466015535291498207103051967434683167951677290520885051871291514717927172151008790383964836885712698172769872603843183494239201289442711250610599033122996965393976648716260217642789399807411280289920115552010350490716562394855722960608668365032242247315575906947078353977666905885628919219749922772171750550441758108551951864359432936121971753507019622204232633211301473752720006117019781187062058632526020012432924400369618797910053304977371132267208776524321155029533658781864934754133574177274616029301806942490866817414968962482934175473455334870689398197061072727746547686777928198024246432320232917050919948107673000479468690218608620013565399617933524048749267151027472225786181710262801988892795123418408954088970119652919599836439607219991790982814090791304866506609137609200655947893545091644969140315522195552869288984494521271158067818327149650271060970112400045856439078245777390833401017432409490506589800477958481828515764638161696406273662806063172003707970782816965635398973191704753131931235738848761674220700800292408445119764571596725905990783516877034155864856869951624200885283854133158164776611472413351492907569912189749971257034810409158565751300626554996581368471853127103620412291414871713838154654230807988318080984098834650847295830766865560364379582345306122053073204621502537039211003328075599460458354435422995327354209372829404269721990489873277929106498005230468397825191795302382386514908120961245682495580664714731367904525156101122837132677079904543450080157437954314100938416212116666622809873901845309060633461021932897287136486730089099310613533124533539307467873264545105352726022873921317116127464201930420756720654830998509347170005665807530636279418923039336287539426892809099391568205793068516770776966500560065847522489440147005822197189919556749257452485965083415067589857496448882774276111827136117941021615220883963721752697291767218577291310155230455479913525982357884670344885950970246536800248279690664003324409214319133096116040067973307288945704532401712939983862702636115826170711601860083230597305679088912302961687807944738498812117753245128385741175734387548848177324184994624945654529970584004100269432560760181959574951256145497574744914141861376358044236435505672520053862847086309957226605923697952498590887990400983823945811050378460500491848801889882968708727076877217096208311821061627041643032540070677275057372741257038481737870419030948510745244731441600703508823345443679827708010833014521982028542005050276062298832150912424980480053771844822522060251850117774464321933868085221586009007168797953184458262340811289614879142246890841121875509933343696625394238130787594753875652304775325899544261049369438260744777754668391214864069669104103856290193076912042804331178889946969862329304197440853021370765651333905496671571345062003177701204761657746023032266940175670602471836524219616971641051529276518147589689879498350799037490953014675425527068422821431378992823557633540667213829604349216466607836337331044147351895228797734124138160104592650948571959081245891875467062683433965512229470198096369351639041979986273906112990803547618970458669755720896686698806965382845556852212158857586849910634103140047723982138600834638510523208609175414842280925779680060618898951766840939779633560438348693109415926150269612131784533370629664374693398608607709772960837458189952911611730310539663320447462314235743228959103580798166990700720490187352076313221502321475076657954209634664290539381279918004153078980931173312313397140684770281287461391384283625410975335789281984876777250397199795885857132440795420565113140568586689732837792749106281318376933136864672642690978809416548425152559691660129873978926198721859295338008237833504061026534791917487999750347641325629336117209459984847716782367062164431268909744750762928557208852404526768107518876763270803328336709874271036002306398887854077665007992910949934420300409851381607859452745793330999557401726777148187186985002500345663709593804866037953716327203473372733104236026014033765400346792824237681193413758935600939757882506880885718166270759990394452776123176634687743780336552621343275304536423198727063973782349670092995242976724507009819238254136332871655671334994805258105226993008104984371195094397074692588242882620772345076225262182524676075649586440624430026601503097857129985040969054478822745885122857551244480101103739210849575326051230910219544983149161884921908168224767657926900226970589356874305206837048887182026027113045993904194512778962913445190587193836122335296318855988042348339893155850730792303030159283181464088618634068582642644561688505227207543355863903611669887865925989836544634757707901176360740848127016810134941962881350867763625286715477878447602930787513338830870269224372795081742213196767787028206873819857049379359438997226592978511581211963019696380195993398228993161428349925257286290429482540814554648230103149088458664959076112251940787353752817097906512203967754341349101498186470767064575961656446364321483636039406150602404270070795565669337473236983823211965313678560254358683436141165757203914116623156864558237997384664696837735392219970125850360596109867882383951367070701199581014332928833976651624432236794338761977282289667929253772532269271491110555284210351261597729337053247724351067499149205588724276750551165050451433369676298205607002230658548976611683774407272678101106195010863359707771516531268773371170368076830653352313695094159004535412935695843602919152477377786917669753227013721373397184073128758278230246157593342916660244062580092401673735622287873379711512735912308804893341221807022499175467133618373336217957111957174876905232591520135918638627148584867211355161606271945769987322693089206878280123170548772624337185747758980980731314855516499058531300865748072609471633550571930500188184298166997259978515904957853939784250650847826901466852677884723907590956314000191547939060730383828701884382464414000783838661845396749323053781540228546224787719546334002766088743515932985535987133393151762463064902290899986441396130324380177275183114531646817888208806491345551806793435325980895280727832672269474166051244407082915648284521019419988546506489012390179529275988509745772117054837241904981109583170336364312423778368737856595172243009949834288362114839285534027221588905113345002396353071544229714898070706888310686089125841307725435395556847922615958655403514823799237865076284457505875568023018308945251138848344607622413366706449006354353303332605764956685070579279694209406543384648614918904924145905673035315343421513788588149797117055662691020793549716558920761300682765950643286536248350868128100270708867492991957837018731802760457352614511576609184011544050505803995007788775733132857629749369289094161523614103565466410927871727198232799484847817331495220268865716652219471366929628725388827285501669415479682849698636391027784324416751938749099316610926374927214481041671238970925602265668937537129024028900170121590699880107233798919168988431964369632669935393200537257269178511785741662066255700847744404213871839924511481409387281528878898856635269015713013110030135436556856462102223396760584378289212122925446577706124221559945590558605467389964820053343179485164746939411900650356073944183431105289354147337117154665972988218678787324695924397823355999098168139670802696243194920319773223876414342733384001239351062995359510668371867356585945992194272126929709535767040635291445350234658740012819975648572483975787964555665216793967198013480399506877347098517016363724075421567897632170882355493161575452657571536779919619459946024633486273856305080463253015294068130745168223405293251013208124231861706425275929587185401457209073370446173012420525784191566475731920218668370075368944988694569347882491793318119118432525001381917738436833380863883713458043910785356530930010838288366471560503920688537649755555916033111299271853387949651664492329084696960904939252172793257899843697372555134358157447210328385095257288979014560269066375686734853298802101262559609050590346311949683687852346048352037674156744307964482009897452869095244853453561925330721420436528950147033945330772899650827577345630706124511132134474174616237693081780152665230204633635453816525135453751732861967723245612875495445727793309686548103112164076467760945759798820241731896966304152219925009867627125328892202451164046397548052899594867169765722258818774417843715574400665424518758411110054193186318919695787211696620655947286882034244110031318801024356458458636008156425470065730451152961789275228486355489087103797350991645661268632682257292025751600169459702211713157413157284632765068092842719949392321243165267442389656196297977277045717332190345288957817928491685852797977998989611304169002075007088918830667608989487631424425875967836157177637797175421438712762186240442054399910826854207188807948551897273803068871548987842549662742392447350147121552610085005236931820316222167079547833592063378439563399222719761362934878502361705025868877770053445908421609882386505249565430731688300941863979271330201883254448072915173048344230179163285997108072102455952742467224650040634725366752891789031476231133985584029282099600859884436079805098328140934344447573124947110124915430458059507714726796402471241192166148649892792772788246184024989522480027189282214914601754674044019601774254017394426379297166500806001708299140851444151673930025037268439426901209102312740342126312561768555940456134951736519133910769352432920562501938528806681666099621488650032936744017005933350312334535867245815682020573071809459953886662337627578979953553356688814812751805053183393159018990315657836792940347585053917486921075698470620167738595573243120738504320281350240261079385915614217301255090565604449829380129372783461078187461054796581905696380417170590087809954953694697169924199081223259924162867491407651338429380172685567251684273241964128209204918758160294147610606106205997860930483152366752640620863275981765128726474874304506812976847959941843724870355769760415803805249700025213601673671004232836409171050400107241524319399203834470607980203265400706008946000765539648756752183385380443491757416327133115808984390447941598998100433217723033676141182845272054300691053095903107417006850941524226470881343413832201972001053240437878604733938262247220457605972451252624033023262392572390994156997346413074194093525353278221854582888643206968764291969467238440067032508659820691354873687410099323987667853735831802338835862544208146181272053836149748265668453089062046651878284601555178268747045641832682404999353299800339347573326467896520967332316088863669276188887606458013013276553202168453264476461766618084628831559907539139555441703455218910829192100403984492856788104946938097276532045784469174015351742893760767183250956524659465404064776158844278377260111924390703124243262882917156283995440829236535374858092657830771975450886000875645665614237399996352457087490065761478242720550109894140040866619682142454482359146533089434509305375472887219719947645336645971247331439802382112474626600819250287439885594587018088183843659893521239603189654543294291970127103553365236571653967981636702039995542479795406583675847032339098780283262242314268502785097247670645238198448494512058056666867347801316312083330823119610070437326758899345156780573750510943634380863809649063581922821840169666252215772198157604275289553128380423514071008343509350265431806509731080183883592324675729019791179078201700281970268494267876961069016155925891854343373954118728810488307995248768421060565620192787429322454426617582277144771787639283629392759318846375445063074400536631946279016561753993967328280079756873250423921915690149638899670986037408611033234382930227019638314253022410465049300114424643367561293589910066223651193293922408633806712907334660180879110650838214168101896887911439554876635217883991695018716293833370630396628734115287635297756180326411313756341381301692262160484854956278983314086455001203365225602898802474910687271155511435107137555928879957194853837913689717755805054031629945309645254404996668759918021257737787046417302783248443531317177372188529199885823920621805436676964058823546922852013969751918345946021006471094382309787720302335068039098873239413623914212681242868115061869289426985773895134916110065004766501482243189818280591480130349206343171307260333333089407298851525902412973445885105090805429065036599754765292508649460203266712951263036941762533827939951639960810707422590981451742012423538542166225131670354117206621308481626106673851679138353292184291642418560773591284348682321586813763794129122897833462041493560769622629095484874744302258961304590784947079952110185295133410602437374601410709234581032213549693211815771636446634852437996091770337935365345227758858685329230676978665944957013563901330788042448682625430387842400365511530615861810299697979685195492951413490814948867302256342933797131497933448331035716361268265424182345823475364445175264757567398545374952624558792721023921784986670763067136731246229433943119585782172576214402029519072779734563835509922526149126697883878788527331734210568119342575010828933938461280987898176742009098231544850161490255366335761814672554399353373424225270347134383782804934844942447078652390326613789036237715544204117522202284411132884359390999431086903310094165542491782069157593430503532754025148409234011410641327084857939550232561790161407983379255403202285748090564749565047871137668343808165569579323165039035137726324615961696718626365226637830207287181485994702702743353617240781551879782942254446348424688718740401533451909240021254721850296050183738934332760675637875098495421221607714829568077549684048116502631148068507003264010579583450599160568650417916924092692191737120500637560431286415590481125826136672027867651250868034079732722979910980686855495043166415628630320164369742615099929289586619824467200810603838248672008088559314397169514542562466824938945991503785977276949983953005629027479222064726460904359604790493280209646142848132220814210355156606753982895933013525732132387952173733901947050861182847703659923183638709540119486461835338163005659651400848847272465136703734975574335463308128129369821771511226159489250088106803492655430317438243112990182235015344045001308090011835153472844097156120192297602938717054099715923710954830141181016828196371860931053756900386072417279793371368813568246493334396979210014054698519370454504920494660008454432359543153706729819450275436429010271002288302966387860696201267506447895375554723108850968743860172760713272030650705117911541246047354486308099711842065429784838564130835792235794941586762163108608946709867251738308792150226291602444377952136215281678555515283917653316604298651263619700528251682803788672731338345155747692602533864546245740216869961455258614491970274271350646186863443793264251856310235246268930846489904595930201359565735304408246340274836635268814339174237248264604288913989300612173508895521501771509041100909234515728538525011373584245279684308309419731598892546613336842348384328337133902287299026727402601372475780069209071733965807626250900959542110066053517226859065742604327243344633863076620659464574238026851911786529497698862823380584323467050547909533939705267263077041708613432694295861734042097125285091717022396255746114762235132177507131731046612538072162454728086848188227170666301121591671471209449644073675767498137882161339252685827423795995279566698359078391887954596318116818469224498728557601182603889962799873946769374056085493783466688872108740728096580389016751162388290098754277673132342799582190574020518577283537130881926137214835828454424703446744281167331283856475077945481337810921216368339371079747214662551821504354932241690929921848140047147264175873067706998754540973167621769311926569755383522191265745975252855170537974785026635550367374425786386353614539926367948151530056260478939448003051914135816938705000431614174493199519655810223176132002090471434716178615225638091546648569232812843320414123905032262683663048599007094195020068483004643672811484419424328018526628783866267554615045098682158856753263519105069183119320268865820175637081778291528923301482409930477471572513174467243596614137545375343417463102913452737615950833616979875200723376024592900097393746714885745130369274859450402843180651855667084028669943238368483349178030028389370664857358668596568175058322954189406036036452465881744432209205476858814220972250505019573535832429429793849585694048667370419863482865116101931587643701863903002179038212975527398363706199782367183637873356346462908809614923171223507544036700148750036860092073573914415817864331197610172659299325888798446879267261364374420291240966616062503425262691977961258477534618468990485247467109995958887770615598787811076618853635540290549300468528599289660077923976500713783503199875356724900974204202573914343251331136433090838251680592802617774626266426847899166245017477751276139451303201833850655086067958817496170326986358757797596290043716331233545114265922477389033287798762291411865849548470935244457145029176653441353214252525305922065517926566190494786494535556036066479344672498195784361509744150409134379330680559289442090575443246601028774569316852651778178319456238359000237166427770564923687882851830943646585639730172411908049667202268232679065562543345866915086354010407359567887735016754216129319140370142663797369587713820965160094967218101272705413740875865439014404278482656659138867304145332994492533656686066201334012986649744062163485133340694903008694349540456884364906936416635779338065739887720018115903592677901603255012240711764094908472303631727317219243944427945479380405158522710771034864196622450735672183753453691270365925473800414656516339872030131560577187455000939058098285934016984808452782056129464426706479222909721152707716025977545264105689387290441897962633075553035967337041654175257431197936676593740603529812942977805824667931143981483437014710390526109172566578053993314804224726925589780447710554784786643631510917022300092211065703352917273302188344315118416674487252734883492286288021424511644278561915600394103070931783001511840162562623641122973586714300122665657873872685631828993173902576561185239347712901220062309781558120605616277162379569312661219132392745185740105984439683474000320564013740435266532690440906446334038305789602833384878142595030588275258828686121428769394437368818413674269050603828868722274438508855709900462525037499618530117871303757770684426798973000736220199225085839552259157246722629614120520011237476022104012253251921282135971970656520726427765979647012998389899254014060273968980257487548252855323933772007923523594557581868187407160277161535212471848059684158537993606532430931540858502712250890942596382150170187615349321180061801238266863764481901188626974344760905804140499722302574699507083893025759029111252617079691120939682279658472093212255435278506429449515275673735182337414472662031014572775975640647645506445866819025593413581587977209247624300546300520378123403428384275677709544510360418110525519865390476966684952076401402442768397506356776242128250152644039317784008637090504981006385060361330553456586682556551832230098819335334335209342256723639442555032773264700281071306560251083082790970154902644882025619241016309976401928161948216812023773546433567079164972531996374642311662231616189758973482472469186049238225318268581881799544757441512042029842214213867039413198356066370543118903370224573466403821271338281081707201582959943057110917655038885736811819450480351143948097943927044879134863653822748811200631902387428721436984169430691090198461447563233704112607734709909375798662520970166006114493822129202001815566014762767028863118297386398039481114144940358033346609831973451102628872853728077921835513924330933546546612535554450159094401675755167312109112361413807702319746455920533481121002462893085271407611771450010924116422660391811465711381830339539960094596030425666757187030134423347724194066819873305982620128561486764350250699511045355808831469837038924077596328416586603136773054002289185993346129430905527528234371398213360189999663764676513474441272515974174015135977227655671619842683617269665643912775762737706479896658943417112258402605007371260559457806740349896883757973877437898971379647698515171647746272416996807602019841143184895583338857200334089121408156223490434680560072503891549920671818752258676709058736439983580550691697936216835122843723154059135601122466588021447107037004346923298631894413936040558644466843239611434776695987008644013392967193660052150516574646712494719147213650329952611073555666980025960060887022111326151770659115275678890323788004747608510621842422897305118064643050141953684582213145867444926462873189610644184376966440626031460738434179140130651654770882410043509391954571536917179222554966574842102038412033730797523206768500769147530796919827277102773815174974469103027041510158985572190169296356235630623004113100352291859047499943899204436239442878255113821225088202865362063095677270322391196709277861457459804235840305692072925603203648143869626350838528586878834340357014682771042444508168999550086250256456877798156383243872462484283310240036127832983841388420664732838259126917202129206520670663975299306943319469101129738719474426635740418330736692841210556273107156888770407408336266668647780518258047312126478569468942158938833510625714216544492647947977832181647307818049041770236343338285355110867808859336791751305086188520061801751085324621222015817219706013097673474938983465959199698778619583315406976032891208306058478398999091283882476532144047781209811587679586048049969218104038932964821082030165618728649787637046900189966064323490064643601220849719264714716554294860870757127484458417521252497097559887304840713326316431676812567955487627467315674033330641826372589821460115547700730981984846171794553884385647386456060781572322789863432950637851347587789984555236798662736984270540278671779706697672831472114093282649245487480046435037598354701112970147405095344685246017591035774114383048385638189745552854625072377312222462381199520822257713282763754209829313675635911732188355949556896919224610043255615256596117716829553159810141983719721994661420330268663423221819530847929225787992784041757364263935062355535501699249779973262109825497527121344370438930873689542767315058688851287621662547921979805694329730941529793429215597110039408887557355320431204086066776385509806311820859269938065662518420798598205423448661404191827859236632494861459919070343005365210517304424848242866219160517757165587654824076515466260003587482390689728915063130875939265497827891716221169209530554887078017079683599771548494384525248324697848843012853460633400495133147545529505557105137257790843211025396379285136100471059490695326380888245572404372021703702820699796439419555413062275770663974495643673642940758415813765854231594846611122236943803442375227971288771258572557914972739223034587612503228720839732147828878489349161963454258886824211017277418601911316214436386997094151489476768505580769248110811044325963218028699393144205426287607750033774858135367044789564439552811456530066876471137278881216849183220996347475750773772386192778381927997017930291819932415458516930312805828209228260401913399316813363524930486280009219672030713049788549259654401471722141702354512200803037050638750670366203534883002840134806431820795990647660091922531191262401910211457373151832639223054296948659668032885627193680663601324015628940089699296727786061962330573402248155772793816303921267109788513632621008821643244307470834556529835197529669226891553161163383691858499366789965414159019674136827014062095298860319304117874965251069518446092009382309171520138994607051197841837612920594643864379632908400914779210185896834379702391908146505255946600167204375385174146161756467413210230181006812077720298997187714339306054153202065911288262894016569820883916711442523231045752386325576775702404477188265439632873066367842068514533967364377761593240139239293661939945203721925889600414603278244285950508050307146033409982770749197961289795593773637749723846906166572665610286068053209458515659496407698302652976717550047118785918787190288399801162662722839835840507589761537435138624104259685157647241175123513604794320436304939001219144544340222269273974078394880870695715770622022765276624963088171342610233556495419894145617432259581274478876101582638271802070152788508411533096770277200612567166098589730915304785195678747577479253122208284641765148211174208682837723463951956647516714400665884086715288590443066341373812522699428805423115899782224603160678327449525260722762275331817968007350960165189579557426434331787903774901451416022412997094051258785376684758881859341695958003754730405840067252208674249127324862101902348485628194668570332506414373232760987301009361196658079181838100852655590254828980364751042100362396534935068862612047629445673142485558685118017619610668776335874938323845592285210978586849128508389677343710980537319091465310578651143930972633538759614178321469761337935870921457061469905683847598364760934098381899857696789398105175216773832443375393120089957865485335263975245228673631098091178135050910390845325671441783136681346432752802676646603543282070580574361324190624232382552854908396244211066438317603973247220908508508613313618839725805748502989987360982188535527062879106955296516724184572225834785555427845703569100369871223559592547985736798049507966509017218248137617676942025121104024365061707166473402465526011223393590313248842437266117592542520164321173683340801529887669832599704326269399498118892158884332978574741546656878320592968900545408982573860747504816997748997949042665829062823750444965621578975865748582201517624925700368451657269016118115953921666417961620455234129714473682103067964605029605820826243178309670959278257249541770237443469689984409184064050798352629425693494680506454172716003919504327255003085259572403231860579775549237161924517703522168001714108090524768389028202050796567102462762942723217469468825817883386468396867962404540656988346729863979177542961856797241002209366670231625412549938505240996732650043282962516760162673779388737576817974106680986179621745847563457761790786952872321496508827093114461832575279076966650222095179054509843860520258213438379550215030324271975743418574209743253672890425162054073973492631655920622941780077611886371450003545293274283176943402080953499960055898003470515783785662726931111906345726474073701546361808285737955727719402543388837462903516162285467723123939615605134372895662277843781404327290941107045863558057424655096876881799071137738529672059672325241527878995696388208436157770899056170302589146069821781738144043908927197020104216952271832734487136409713159317346577069892483145094435249031703984102654782313642637367085519227941180325246181873712279192446784712257231279360236160517952845127268263720037110043315117154852069356507498463736273180402060031485966878071056962666991509450276913919859899644417561966539235818678096243753304844426346316959775143222397931224298783496230131500649832626719716969300991986141607714208921921257268484064648667363005204398863389959332460390750570030669922460890373283473983369002693133009135163325008178461983549548863570135375288409088423464493886287602067582718282411218752240683010600099600246365413441539541076629004016892816619491417963712517135643644737448946430218230300992953821200342131040645439531452225810651877959491891027153349897932814901708427160929741129128676181188450056945576083400820579244257809670583085850697795966970556389801987530042431034847069174660430002417936169905140216311695478366743256052008774349840607024055221883632178577563053476727113810178329916342872843293820774257021480609280252035552903929450037333756378082594895427932324220920941856780040920785841592935877431832613861797620112124987634770084527615609836363047232316003857289824456041673458853061496354569092550065601642068795573377534151700948151911649589377984568709409835176734396984508947580726312042063113359792422894570898959304766505914351309414907739347839116514699121782506511569162854616904234631574819943633834976194367392189758234811459411612121125739397391966591502337782149447492802992103340526104621951262662349330419965872879826771865388237249997903364630580961631188568032362189313112749019147586950874859235239386496176389454904902963777878807580558743398778830863272139018204481840779926384672443420404938603280642588056490636690670504814308810468325574329035382702366365054944284096293327600047224401622849654612664589382899188112565660347414923772286378852835598806998024039867578523140228577226428547531520947121743929027041303378929148396405049142961273015869358391566092325981555957147411063221960405456183373945761202157777164927015710654576440409240397106564175788599071715984328048710126477028372678863843653978867253413490166775104492974117618145797706454201782667249119427975996744387822986888638796418069549601436695485107573750311545533420664564255307092422165333024333930873306050604900524055148175734912573316277846826419548474585324292569847306331052741305125946402193518000431224286210416043347351167029384367338050475211743171239953849864161974813844387867801128875134592223727704111201463190083470792476946186380783291034572165137387820247040940836986604552402482095191133977285315551448999457218818977817353374458400051789839573843486530892056020677088938167842073887399403381741201074154743712853261560754645503276622500256532160556862620701509859078571828458328133533770974102278241497887142475948491020987837249699838660842396399090775368989100940768374092221716791190210642217936087401348323302739092014504448055509954670160458431978105314123927191240879505174945826241718697012631284522079027858162560512169750839321424413699307333172967129301501795361037142862745516068531836722307084149536872483725689542510048459239853326886926532877849548959807591762391072908306981641217236344326468554669539863054751383704943331952173636481872850474407312838435151493568181986206972598423502060912901640283042686684791375991608940241800935813725295044841287295705424284686324147674323360544266135124564007796719808703776678263765524565700839223033177372537201955901199195277694110624937845854263990570023320497217236091803448210391234600296891882058515439054800850613570850639264483853543398756972847447628965320624075577272643132223413300596146485268442966171115505218559174843963179405055443073659880490850606800786270967099628735204726477753575635565688783323178004886046279151141414045923277673968399916483514721341103432329248600771883471789944900950645595301107380139919678171790399186450960482664674502052827667742264316341969310447725061611138836849859363350382510189099842331063123265156897231996903568134645276933443012733144364964145747058038010605169558132956322390330971069094506093836071189308043731973075139781488367853358964373777533996248136512218752231785677249412371564713138976582718345486978655460211602889397270511243607637038105108659910290057352219892369108519353539817405079547772097773038978788365698605221527672663212106456642192332692539446337121726994302264934787078650147691600169180125496559163849626369462901018328659109516275402661441444883067139868255341244017330216857174931945305910750252782510622721025752558732615889992183922977548824742383397888785918696431879621598487316048925297082856330139557373563942430338560552723246615263306903530065350901352929280418573270365622662205231529878326863135686062876971627120794993534104439639989532458550886878695351310898720076833433279751560766276105363831753225559283009627552274935226480321684665661037122266592079275249235484360315845130793153132842925300520695694367842624594246499824631102523229099268315974320697788363533103649118329477004540414800926195904080672450056763774683404042901408436486892732198471412986685748649762909175670393434055969523662174587451149048728204627802895157654787643970879245097714758669256184925982982339064705695621754356260121086271542724981605173108954192043714067892247725049285726564822070396053160062306781786568392816248177082298466677007721064060759302890555361738503635991992232189939841793888373360372458188889574365554418335194066767897667856186764170034007467544070092840961914510783501582982827563846477628201338111344262582506659845703826082590275983394948638020411684010237373070806583904011660481515386979898930014710463450443721770498241142544095745009148936032075650816135530568981571538424296156542447807666520885492539645758639058674084243453313677352483413087782400301304570423315146349461619610888800655458302672151252056173308210183580012538729885633179888886328645102636744926102156899401996357008934683821322091466455029928333314849170637519538670118620017100395654056838818757882814677120218702351160610854402369898058876378490742316289155550996240978793854746254854219884968450220760391118764752680951168798222276280428091345864010262180607425415457146378618807825795209095876882423042177716086630150085197845699372055963882047886892680929939393623052367993495023929249949541793487382014528338190285881671504481100272140895629157644193686461169796612276021620157881280998160905294479098859610955952124129118115213710433606544244830404799480551910597113352710569163532512114381479312867351791977414586522663637266114429407414719735459121867879942016246675325762597689311337831045804200864826259718229734027021533956408020997181948184804401772736232422328143755148022590198179084950711908835893590674572099239840833478446712810406575839690602013987391934570676454925307351437951397653892535077556689673793224455502751980974478351627612423093668201467038662298190718558404627621303228907397177804440124005994465916407591921840310939107392692827617821236249795300332280133300926426560451957186527219372375875558065616771875139600330843235585352066267359083135787511311118471500566299512310190612422290511972021998833167696474892584818511582973345795628126417250191505756510661617372087717485138755457525546393352382257129555903306519066559324069521792535617414230441879380039997854104634015000946647017150795916273251040946723490853565827750378976716426185264237295332854430069287443824336214607659098588918384829271836459166586506801188709888906329175916081571439153713908698502208970243108470817078737094712258552558346505913916928959728397545731844403041119471799883668958939604169395066332325454282735878702012633612214093416168175245909245060756114633297498423405811512085556183612800999297461273856162072089782390536004439527507117532603070879753711138085071071029920258926405006309735995060945517900201172724746442883641709849726616118189571991237081340165240191476406072363780797596216533546208544722069621571808395979705174981830758414239261162485205146287526447771739403695212229228528294074789242634276294281865668993082028205256901170614131720470465602559135423812294895014227501809521864040157210225178656705945877157815669838523070579289182619576329302245736582074804016312922174806441271834955994346925262292766157729966761977914376194444589011315230655943327689437524905738652612299110661737417527356236639523566885808991203801936261510130648173025335906484718323573287792947442494292403404803486211100123254240691023626400430015654253459785475347600578215037432385273667024603908436022573868759326930720941315073376333817240583070684665137162496065852541000719597642829015967296212982002206328801346102848244536038273075986383538566552508821648416178246695507357136585975918082115635234477836640690547482314646618201103144637290880774837118096328444826614614164914066142749620085816672334313620804522947192573636383198010403558005248392357284661733690012156342338213842969822777872840980502850427731602795189397282896839604221188463285147897929521360364969797881005960764894674302609096562008510990913113458866663624873501582985755654875312548424293967174418925276329189065494317266185720562145997732815765666457945288912245707867454689879970109296485552853872267343523006651301666928292418097388038311035761764537715404900676249094000048780899205112156569317625308220605551873090511996625274900373729609785760294262451428678909696674616812360981410991721655934383516496807972218148908171015863975056978670331154465476291736113694341511502903705862711822576407623457131134685010312253453280171386893776205575061110888249360400667911662696467812976846564290269589038751081887507329554534727031470896168552127049082861748387895056527927359937626610709005039975676323660454550238545673948207870213829422402046370511025302144683634831131280158920283770112128150734050147361412209128573954988752160304767352726046252455492512418908361095825681251466473738805252663987484918029768264908577738918701615966860978215477161656753487619805347652698195201339389730570339895913169935173496445588244082163273194638336613850643706240729081640502652027975404645354092331697172659284297809798513207183917029714401103831988864661421048832051866510011650006376501254118880936950898243529210192536628983247576169052341134779977143255121734566057011946119884218701021133824200553053014084523603088748287380594485871153041756685796192961685132505372021610644504984788938626392519901307337828970225917947479815727169991246769308850864544082247417293528975710004799763916372509657072417524926430663695330150891235847738779490511116011513776968293616324978112003900009982680901134182289818737470293239266086933908723662953874844234219157222512168472743502010222333147151831644944330292956230953331249060692255498909205520400427093449032853801973246620386073003068292204364258416649464287484669227949387316823211326525309833790351112039624775936525309454957309887298078350094556030890549821839867335996782912223563643693028600371274061679061615411303492483625330395734805759070882736988665269038290113083791033429736624877758252343582930763581816624730903431070269910741181148925605989241950554029047971120009903554060907606116764179886589938906122518792453210207919136379150801486738178985437050698615856435677156166434870509115965450319840780773910625871281412360792224264929704773164220819727752175038447382735819746682615647319349266356106264854579214182572794559826809577641925044967724628272221453314798469808163620545760667959881194842546076521723176301099893465898191351999003921395366810148685768396817342436302977689880349173387905849384053081571736197094683082753427913762564603623866058868233730172155002854524165717787949171417235407189620678746452976735327501338337703657324471693386774410466301677186762109103751943698126045860733756446677669518176666240163154150786120308079468331215820380045778573428728472684418151513232287117378719059014911523635147771448055654888342669444428976547479793442988416818813783341619756998540349180196521667128916036113371256207558093505519735731329582781501737660066868683964181861205564481589939505668388399773028592340699032963605761803666460731309410503058581558838844831990398437139051258508143076513039721875693600112049567366158676634279355981251854309683404068303801459620439821074573217841823777604060618490129568029101536686620359641960396078366893049340748415207320811780025203772218940128460919760562802249917580962796364636907007850700121242635678739219526548142518495824895953757395884197656595829224099619333478020336032412957587258375018297513027395250700017634075846430409765905109427762881869801899998923384410056551764383854671889815966359595580743727465110900183581026335459476205645626891292399017787973673095798014982348638401156438118107708399180979551086736378726540453639543593565199445148902944663080757779397431926482491761830590506831520646303080418117909167198374873312988948537106038865895072879602472765082403326071900193135499736032633687842252148856729311995191823746052171256731176050823295333904040754636460003607087363459017500301152082634056752648145162011962700902531152134771282606283213699395135255366846444089331047903590125657024180009945612307601339076952151193801775366788561578402524112560765030555991486761687013892788710828854607277615548880558743031074952508049315286001243458573981808322693889056596531085154759659995116456397709928085722830208203510843995062407847841800645589988833315411556374850496845957196817376638690702292915668485912411326381536964654197686052906380178920875098575948801333491047815978514332235050823825317600281792238226393432448495808577560187378462108297436757303307663365570613269322771591989878683971989209659884616175337903625514241057529320836726847525330999643659828246226532872954551047515316919301310526245414274074387227007311341770218381390371279096682223211966176057011621543514084515367020948578236928608146864267554964039830844451413098837982474537306892141941210038519738066228662918209084658902759263464381767023153560505260791243969708645787563882487838431647260406603985591065219363697162893641720925376075123019784138069871024723502517941591431446125648383720089420184954411240384157798431594244545191044226342484801794287258884144465976288967642449569548764422023273425573349937880706527997147364985631657881890392996148556352245689516291257830402820445070882338565995146129658466191876813436424601880428008921857869604218429267565626302431936968643509180718708617808292822569462654993794781228111386365571519504752074931324893258513524155258772979358312515296226934163695809705477427096102089891591988317232430683638326089409594140652271353476211734071168086461044883438670417805257165241144139402398427343177026488535104913349898080576949648493476676905875091797850204915717937735367056537719834040566812322423479550871559933348332229401584182385373648716600944075733026994393277064639711758033872909603983081073756423756940035584871895154414282956406941411657200720923429802088266036803290048337391846227685194139702871684782825455900764744351400849065205927364548083646861261700575476227852067141609010119974979792908330324491858912701264681544365508198066256380010633736584210801903126516380732708702302569391280996781126613203643447909613777568630322650808382127431346581346390982154678816610883676083754133021611945169831290666273722422209524875491954870223449064292245707970284598448662599227199242863760738212258700350719349203673370288673666588823828328760596786421994879721589199364804110102660374074990840799943726435747105222784347920373989389076968103314790538749797669460089284486321221861794417841110600237557630179619648871893076300271315168533275325915116502376196851703595625080759764272902280277028488559586098483334486532682175760390963839097928532781101056678019503271934654392855556839343097578396215159199743336669269730805874129279256366691668150985576262026668131186589173120226859168626802049023652327193921884290719474114215555031691124919205758082856801501677540152253181582334359644302122574548676328011734233228771986533177623004635267989102294679900221858209527833229718045804254012120471634989667640562581385936664513324697111178549836677373505504362221622111433052971668471812290996538939495624851952453485472323762854067567326833089898795535217346123840280869056795955702897288324115476109120272096206963779407901652963979553498827462080526492595895497673536424727890913967311822615673154674548725107136339331464845696640008218084663090349301732079699985670021827699265119406816634820799029386423853974103805485294424394296760644067155637249979607781691033071312277027103800002428015475754510693876449239105893850385604190876533468220239821544350296662000703204154955884127409036616392989519188830613030910219852586201135747076442059514907294768834806128003827268968080533284736067753691832596712053558860279652519875918096839488575912223306158644655036915791119983364808610800702477495840933271766212751205532040106609623326687744714876774710785865312747770278564423153137123052668660655697539990802646942639713736344159363708951914007840603327181250604454279614353477530132660713132936824313201217243492194105255463097357030357336032991164078615688011335943407591964564394854606141741098480834931432434559302076223471443314621884314472955610416432235258491260710585603528053876072746510955364147488227268744443863742970693768100614423605973347767178013243825620707900568681493771037790925351093674681694003338730160689684911451365343628718726473442920104706914344990283943366105412203307709389099936600796497044797213201295478449279852855732313149294862157397679813949846787763411695105437421564407882808937169592078958900225475831102684275459023984063147763181979206588554842564529111568158553550171762884240525263082798311055404940027949542131843775038538564877578667932166663744699836276810999986735285876285583837827320556380713113546780300598013936575420965863436034872914343758299688152014538986689264264466199386798912138407864012043218626723494058746521598077331226295241228062240304141317752446497567790405076787505552012386509578133453054945761471459916252715508385643828469550646001158970564452126427204470942207567650851038332745156012098296135101570356412579047983575605540365793708976061887343124654431456033547292748217109078915440370427151320596784482585551309691678203390343377629554050387133808187272085036069391005959164310945364154279195699773670387678168327059801516437994844113285855913275898416914216392240786151351413871380102813277871273174122482157399547076262299129952610615826267851866866970952857933282395824190020605073493633420294449012312079030142143655645523805804902601575921460399392978380342877651820699504302630098802648591459813470544154624125805218971742526102171060988966978404186698827212909861375918654154700261064750557407559929180615261514730754922663976781383622394479733287486243101365941562849623974402608042605815393408723129174168407010194852374564380197265448651990715700179647948284112123919287846875271752479832208802509776989349322071629197328982939793743872576715592617610506532364879139035889333344148287658544149999314296792802445066408432732148841568002252513128526112408469822743497090933486303033240563530818236208637431144285321964856987695812015912263928524735567320035001919579743640374810914210820890694865943801097433606590491043459505450605961709190820068698695398430346565507352549132244801724279883548087757116850406599354891819332814809322736953041416850308796981975110709581818306533649987224333597577199621967397826271410980421233082840360085848371247200453509670244226108470182600653220642723695334656096679289843915131977969148586178670643434248007382020729630887246205984631892938572589918876253532714469467951189700520797047241760981933140546069677820417273728552258930527173426070910809214807378873113691764713584145675140444508337196970060968404714097036247254490801892584770225744877925429755287668670956873783733812228858623076819885369456505595227190131959579725283551521472358338299576353664272122668168699760955945565790279820757849387628826908044829060137864373442103770031864933984687271875368486205322254342388820593459202738186000043133025845923268221282091126835681496764817770933345096898427183606351972708767960743553271958134112963086563387723868113957309272572958024347946486297507279290205782151791084495857578418134015964232885190469265743301758600836664874836108554073410541822469462646153586451535591787166426283399607082249043585654399364701959719547729598291678340067160389830509878248484492048066481353513800822761056722336726026305893818444097653154320893040210946065159992730120870336233972562399655242423911729747466905064597687122755261552507335267056773571110121240510345373433139980184350072467017605858036701263827624855273000589979000475474801793118991913794148427729673349639199575310506648595184177529973988504812387176277773474698885008792675460818185108459213627229618713063742323076240269636834944569072402192219551734281433498053975648406088833911700612919179527873911972281297652287305206405683563340749301454010054129219737784998145918930136519357703315365330529471878430234697418602358175298166722188179281776447273857469640892155877787528107250608918982179187482595993065699621785561996470392259316396328263169868083220981476162029746556896023176266940470935989994294467065159685725770189783646907042498492399542787768330781101059895209006109766771331714684849993044190680651072068324386457627987770396560259098018442807941292093110566920255925697730325928842111594789122359643876873244044207042578600386753191498771672445251977299543962444884082141780048951610628943129904792319292990822298671818356682310532937254368080648143260164856019512540674543212633381392314696158967505329536559896712193785044965557491097160315696672622222725262033070350880554527798671592177786687395657813935182587002380254782401840028879979084040008969623169091943467706137624025845073163657051162082948921369324071662190026449716709144851807278635361662741807356821636871613867989379515294272341315092512098791628849296695449521450280854761852990189213693250446344733565264019176721320873262734030685395365257334694898202228059389266781466151888566808254360177684233075373800351981343285155495417337314579703486688449614446575071296318202780132425438301867726519025158934536410148458348419197559244759235721676168355190337954392621804384786693771077856533337655292078199220539794856266655539501150465320561092934515749421857392506840809572357780165780847831492911885670137871944933959012957775304868177589495745555556121212295856172390948046525754076247596722411209545095011363133711024752955524314405182897305703121120833041030063510073846104943750849457956851085106199450912586224445209268620700938121760524011767570286529675660302844783787456155344668294666000433983012432844293370510422370118088971653961688632661839477934860307349567027315812465539804847528769689844141592483695616227803870055446098452277582096181360897215164800613888507837661082396833929023812401813608455295502396105152668300416731859779431709651717803392737009493033190907147853398054551636683992806720226499146829660402243382360991566498752852597671606155920336286710130901058803078417015574511327090403344574478258075562897943375048355293830215170924377255232574348303601837084599936159363220793809417019342803419070302276344506424803377028163840430181611732577353999039476598069363872915139739614772586170113426190816167340778654977236708405097345323505790896699939490584057845219977506496726446847810597355919794046953290081393611092740795607861886178011585618465137020084997865775410036252099784370739695190177675582959791766718173964286739856780811545272699674875635173129069505642105627191054175829374126454006040590700371305934879269657994405749633733704437942246575181885504398082264157772417142597073506359384845241047658469418173619176204514111500857698128099026508376807821591705382346119575300481327979810554417257802902875647514380898243306479956592060747390823317539918690748107533674003586149997498160524366189631378649080772580916519423938359001045812419255497103420966107309803220956560976291706909997857607283132023969731044276232916422924939127200016262587640709782573530659259989651053057362116283261199356108921661705318606163061325769025904687010246043021932020586553816655058560150083220194316494452592823893371355875653801145210033991575656039837505955198001442276916620031946816305525968568319921089990345374160111127244995689602143859704439261557315545299473416347662086927944986626468385494158139723373856851199774721985603301612467692919519764028253576549668167099551380781920527019944582684592496505077603514624761430680243378466882271493141632511094585647269900174735895649147138445977017154721701565218625049321440025002949051320856659935903259378797571528157313062606967880351433826354180647150512004931950249196833722216073609059486244926394130973269396911439288907566413383764118365588064835633365439005841900150202274531235346580715448118504745135285702501589131159185880212360811347877942861489449848733764889903809331037059609119497124794117005782220367348026287857964909197953767832257738719896633842334571703161131330099790426055881479489969286010778396229161194987095943213128177714571311470386660896544899805478000793781300496803317414747440399884492302385863078311026971193197500902405506217399123870972275615861064325605033203156999012529077136884819987531940616258000227426399954718825480593028341170316332876431869439041562414815706635592862317002550617547972927504697117971829006877601119742963591921639719737672413753677760577420464887840585389649091607838959944494998130969908884738299264718856853844747685979323053651043503539855657208827623546230466698154769174165595633116452362193577775462005374425898277118459490735964946251382190398108389315727215229471555766095580390324577255092670692881148627685578837829944546192811369861950461502319826798867409421695951638470777382717351049691126527587288410659710550329445563190221867047787115996660272922427057320951320198841741386057895903145117635004473071562319941781457411354057640606754617448012643641567062421159692118357402110405044100462827528698632417722237218078630287519965652145845815579470932433215425941137002969354959364256823668151066543084437186645697451586620607749045564722542336197807108918147708906461399336057957457783791381187313126420595628890203498871641506392897434653139546519326145709434850234579919596535573998281010806504024844336017276478370998495865796908444453268750457201058270874056257108403088048272811226299715897199011265005702504314685709947443286790933671776363446256426838143528936398720496391626486847016670039915636458055431777603292189947555711843364995015185638429335539001260307483323806726954161446268229575544540980984261266767525997098262664837709387018771136376700231958728926727850111890997031015256803497303761625575836974317839780732131148253276178623176001780041836454614786573580164958203735456889862808900986628223310788293642083324495024635828880462103674626709123253856033219445657339591561212060671456131536661371451483913507140067533956273255506352765320653897745580912411708734501212644284136620815076022530390856590032114584318892607442265430691051126860079858977391747125346949667187006800099148829106173727640670449609102630459664689717965250645570420221159112548204419736348143152581909182513606391181250725016586309235801135626469170582353702920487473239249017378624559221358455252520046723864714454523549500568445501908094788276970221351870633178900944644870961062033079514691073266582067116153034781416935788730288154246928889558493891408169165197516559189779394041967674945405553462838499682314395306218736415989446991691600292793208399944382385576572682263881948367397175293148258717455369722171494773476639344540507959974398242673815556990313486507026114067919445172569805304400483855575772653321179002706480867979420520048047196244849368433864249963081756413393241566849353723131195044520542985774406355248620385068917560529420709020004794653752501990118774374823742269197663066048554965466632325791756574133311729615584355560015725479838513766608536924138520118034065499983124488529045720542918407214350126578447711136346892344072135119134567449382824367104954325140311480581559514910104882778971770713265885110390270352110740374935407200051583381905324764028883279755565107771592431646402923393957526625567381880260411642601841327989833291232172545862174857189266036493775136339667221961381512704514024763386976340541219382906632676595017587577842058392676870200850602405751103687979216859652945352153581591877025775208937135361090663486157295502797893143232570770382691885953782302562915972547307277606139874100213003698559696548699585763167846469112605725551479652294782421511517378515183249430680828323119291861180920007155165939899648834725679943843959990315990296728929907137618130326666984757784065319615319226951106063110703937458616111896952398733071565058261493014437246591849154684153241545093771463871217669301859748006616008687686232117290921392035532619937157638107412787364446850764523493169873478770575908819453549792527150854805309601422433454636258890958859909411317028155333155810223121031044787759364624882720577150210473762761754262012471319428138555918115147910622791025532505671642904817219048754320486459651778249248857977485965221443071909574792298335660462189705023724338892198111817299892872956651601884335348785430990607130835049667686147727668751333398435609188088657124308339809064321841004094543331829316453503706306013641209711789808437224362644320587021972789534043764161790863596731372763683170383882872071475207358519628206043458225261437586063318077701154505255341640746312525648198885633157332668757432116929701066267268936265610067957698670890396383229468656268308297268961152568155969833920712339959932101521950872218439674446058358676235238119843191395937247544868045680572676634542905894003220947873483188283533936266806153379876663322695940084187470089390520387474206765408531764782695946203133383844395628673687270748321178178910840607179784298170538672598512018057028416316589669178703494104389325215433273221010740177217790485689300998250448432600605517474497787494195034093015996330010680759290896989453303350214552847070133639737299551470408961922339231138526964789198093147408887107747562363203220969615105802717444458963850445493833178742062811212636632272506702663083409486922314123206618435277345788088601194645474664401160553951923767051422676977398147914493609600038010185294714558153166217766027492445938380895854731503618112989926734900761725140089803356572431697179734809750703756609298130775377547858596297538667283003958089239546290662465593513441055998039784774592130304832326423832962315431588761284773994032682021693484720748646527838719149310684747029270268012858422124976937228855409124463349439367629490425578137171103160133379373753581403945685079202953788185148435870487706913573216092751931374077970588843543583039744004387709467978120709411219168095308970552362760298238530879046738583777982292838196229286985632904258929614471279778872883321924738764468539608249673018029129290184104127447625708010527297249588917891253053780203028843812311226902357562140226908976290957796239993445859014543888585337830997711131822153192325124155348550853718936730835682878474742720189793366107936286083932640970590826887880694100992339081228363228258496303534421979159526146151779643987876446711512493786959531151107543658040054078016589967907840301839272634560582057447285052219221399471907739042714311875597290223825183067873262455927365383987639783481745781103085068252056858829364093992256775135850676251377766309641988100317402064258918677520879607875350648281228568092926682091433517285053736611313200791312022185107835665152965713813239388213149224793215557209342890308549530634462711618804391346792292446138561077667575457231424461667591810013266461086429820271123390418800546657805247149870147609239507191967215611804254435901026012901067136426467531704087676962467040221211393075007690659006767865407183440758182217956464836848132375596690982465984497289771656078973658653485177429069245370390287263413019699288070204558422327578286121311647826795334804467646281466365789547446192925863025698549141124806486663378780602119510204024289695827286188446148394035855522140665583125111058623299923678986316639544305711830090880490089616515724193907173297401469104343595614648554131759064240832580846286583431004825497559584875903038354444066689927807514777931223964068750862141185690396978262433350306969160391452063576815629801527422215169540604516832853217878235509543034225603892649625574433535851450912799789459562846994149918373140086347905765162427089496717059758606573325875084679518484897685408012553727241846021091890281121041515605259501063929772295372775660641422326840647097266131713809408509170122943281225510555331006707897511016623547208375889361624431288259030914110688348452600236199154695009510586228913480359868281269582502687245724597580413377159779562218926942554227394661960002432508962214135660188575362595543091478417786853298349491449432033406266477057996440225788473737545332969795719121403286330168560053018879792941677291758963420253677383784340564746880247593338092895915240888573700477473927828196339210477607285870319990870458064031777487159882980010941642994651622028328934685762162872872854364708505824935831060488639966591859093571901290843935568282070804777938626900771229755580840138058078192201381411374046995940973600368701845951928008676347662510213321817144269496351299060234495344475283343658847495535705531377639024744260561423286517925977754447254235969000072818323440273873586014938449153523638012967552205402867024788096809951266206194345079580975248179131992790883589482803121007342256229606417381297753178939266034473908254784808034714049451876982122652174169267954130245853492416862467750926823320148287043917460739068804640048325965628883104503038107439877944081562604280216921906495239265478115593751154219699791885073628652375975322987303494227775658005873803558977433098042348172113210721314149610600166320638545182293263601091567439798668254129316061979501055365252724061261819666364286460572991509210884172285630139669305530378232387495572185557832306312720656005679760174791194821802987297240659468053929025315131004789168321544935140745888539801593441594352623058225145083509775335858602244053453531867768174263564525059772045593771784283858788397199839205646249662854645164621185140989208624086365665136904672759249001432978066302170895144754730423841452867901426934441672734824585734075540694620966458136002506269729668208793460199220138471208594191327029247947781978640684600992585982908980788578573392638553409866832195774018760872335014576699167581488796792455221204629311690480158314413576115663611292197183641301534572483694836236569731235488860725829551859177696456246467844322354549168477787641052231906860579499161947692961799718752580062093368512348194036675672325195643527208173700606228877163581155040580875179470086694029956591367720047550671972575953808174767549650968468688889507536318190809439040764426696896120624730553369939551013735728724929424964519062324203337719456079645149137493827530406581644336450279435768949058631987235594527313133169291882248627405800014436105954420221089221680987528757153064762585700075756254617252786624854132537200567159877778975773647322378265230442072014118805765378451285923715134581749920304565074181688599088681699755809994030415264652485454963028852514635523911000982917876183923913716038168144016464520593728109478940559055536742962741535716414112684499313779408658435529501915724363958717762334132506433642161229518519138856490163108539016393855030585163730621070430382381587737031610875839781447722602141139813902043693210499426445358591946704140570772541944322493724575445982947171294229825815762216433486423609729058483417822750847459262262339336157981297180122235062901738867961113872609655679334076540169848119545138671622700712454329608256302881836338910511083660652948082304263192567704022222839888458495097138502536110731144955087237219669133948579896233514218319108766739484893296578480907594390737795190171160437695617382150716832538658005643899104960725173104335586562275408126464495395173431280267215273505230323128019530836493495001556163589746922870666504772803203574826817015727016593528520970025806687725859083508546405565312803586110914840935844697250747753787534956511849551586962903969103438239372127869303320045292856549415338757428855168952016822796385080338166440249495702297212141853412723254118617178321179485458654573836084576165207406275867357681408241768294948894072966946421516004659850802971482278172282249346289596633115675206731907511465986815788327667119271115940326051314955528825738391582288505921925147745309645651136828433808361147618195893626939861802092012152177308718894041473343581445935160226257837088743177334717117276129073532657948643157695953743973866745441265600180460006817150028395804287914470962073190742682204459592179986154346778531078595242919240988870044004746197134924158769680910470256410403818647004745778348706942394607498425004386893851945633546900244169731703663021306369622278239239665546785972758371385510092972473413922567126549391710340047696369847251069741967586268861835210529847469855750597364563508304948660506947899724009299414677001652975485226801157649580900154328528083367497590328780580346854893549442002691611988454486701225665352675691294414976154813718702114084232584974976775500121191106302700039569458855559378999477982459900506938948434624756412618020021719211554097587547069138879255561057261277597557035117251328805807596417985010728994999877641243232440741582105096411247010531811247802443538679288207479010451511319884519776417931530260253144986609409924410760041223176049814087046183993721009782625602673412316567888800748271358127883527520762665743770824266956833252683212494171543867715524208712411746974900786814846765416984703247235509664103373058435110960610802108297980892747310169873070048173004796112873649525586764987972033286518711226292915141191939980323680570250868498370071404368414325212024106592138041827616855849174471400960989886385518033463532091445922908972333315796185527581719818467063139381083162989290173123615734713052300471174394918555908845881579142476605076227085377741249487883735672359286179212295249879672106059696173225223078744334969451901878370821444973533437253509818524693229768440281039068203172491690991673673288437839432131734970804167195601120223786753697378108919025888996059629235512514620291757586039365391218848478178246937349107223504514171941310162578385591519076045649627553478207896691629827926013778732105162619300425446109607220180113846625963099036947891384477038443146974823773372337171679801677455853194413567385091462299770155973939545056499836134156585774814451370790145978405398282855197016796528767665770137764853223244073298987002741759603126928892881715747451178380346975070368525218489319819263688386304963464458224308578313298604174087325879094338945144119106584360687989197032864546625998417195060817181207867270305181372705893819461745294323597322810138449567416612392429990770341027798548805361962303245229185596866031530467451393419791155378743464505189230651479146040115914495444723208512437654317021881565518218227442342333838426339972375207488043362768417714870723278543397656607494566667407085222706950637689828120506688360618110113551055619345324088996887498688146729748058659797365562176219994638664754553815440558802577117859563870233713557103089924720814985262922061049402295590797292337967942290229402025310967212628720208874361565663598714453036402920428268391471801393864424455295103122135734206265143131864734999474210096986828984200649194205072170637655580152629612010876346990473899206788365371386191426728878935357227926573881806542613544388930366656948015911010033775526628062004307414346772948685745281719739814804435170429454534623117874029803951136408217044828686739191273715908835132164091528831443503896529519009717518939507099098640765927250076076498282039950869922732397208266956450795886922323235124806576071751977301141347492416230475497710167318921114885370911530907468979457800535921356533387706801824718476108715886518920515908992463804687352650105118807351517376586876506278255814288822695734381941305183485025861307032599795264271830701490354213511888135442298717499003787217886613274964463294655282074427220584133404834172745569750544038002772719848002673725863675467719265902647011755027050644253620831772707750292026143123348343187750937529115421041982873978200004789628781800653690883994083746227810285497235159443483296552014506002856454663473981203353401658906259320538711785121952630057000876981400313267848408316486897303753292425783855065575965387525688832104016952141640397404499826714756077567870277330120369837234706714466723602598576569038978520520762131297062528536170824385765512728299854389636867438204461730758555859831307987536435558898762875440302965322242339806130468778717047864892064798481180314992244263035186279400150850318364556528438456743005302294967270709622298305973369060669918315487293880854467824883060327536030112396687074094473713145137778374534622238440817872117781361367181726859234728361776278964543835234342455296524158462899903032836163975724042641438323527867723369279684929016855085495385253458383809806586281359028882568259754143560048645874839593045697515549654588801521981523870704384666006613842836576445194250509342299853676662195573902569255257223797036322387777615972114687086796144223012503667088534463933204902860793224061053935795022145628122744843200619709701950543494568152401636257812067358670845998905005904517886217452791589308554627954212510266287205054493846833661995033527208351146814844548071570661293899858168620044749752305728627406439519436627617138865086975332355328939346809830100432837988800199208159627395937804268030472481897525231786485837347422852396282521526243815341053703464080701951937294258289256653519724190848420647689291554425066155650617117104531151449460043035424456983565837148150071153818639665080184915087517602518768752380385524567711616288172533266863765861918290431060353246749019950903655072780743275449965018908839331539860985658876758322981358706353074249967907408196744013356133285058943280964052021293874068459370798743753904940379350732656831108486293037674289256955081743280179219286796365608421667418240220258448454609526269425450574741460469939156759136491009421241604028066890413712639225139243139346211431000537407981328310090210147035555246068465902713677343570322809897540660332784931428138062420958505498490535452942411789711661398370641517962474616357880961041004871041529869729167535094818595054669901426617621596547315453870190690959386299258201233993113141858144619876574006872204650723873979062606446185213176708414992273521204401469075851590675018932427027712255599968227392069670494171164276423873196745617107740770395797025238126568414779511615077368040900711941483294939013945882534112461520610499509699976319329852334484766390955672770880298436197827438934866577104656702076029171253161244309971230250197015993501336841872767853163049022911501566177776829398070311699806415593592163423544452938738497123258485891724524505825478633326817060370260706709146363002135684147606792611709622303917972908629765860912246050822498596224894960787508420531977669876639427813920292493698547939898570514691396849007077789392358328157474328021697987239962064069836179095753541378565982010324212174752464135655913295413002842002983486720448350222364202725419908737352472797113370912778289439728588560284859354300838900820983394127564033237546334252004595385512079399173004576512989392863978219244198624552239160270959324165367265325787552576961111408046342889197286713951473479005575785985187021951842037983017211560335652712644019534521114858831387325446476021691231848816354582046695384244592532471124358189706680996469327435607403240916020356425696855491663882153948835987560937985029065425676981601898274622423696194531383110504684899978633357104042329812662817124906733817346326861405505474348490500994603723882869733909117554461175227053517816109666922584376873980524482283878365626336134374102297257886653701939701902003523053091231007629614026490601191839270973017486784418045525972743604563957157664709819605588064100119340121300301770842271598391893723609468207254602784693077709093576597060879118067764227313972555211609296237585994517185744894665796124454019837632357739775195992250838132853987450387571971066614427970900638388704945589089311389921893224460204539887285067379617130487141524940011898338571586422927028583748282253199060035523477702739026304674231611875526710891896168107387070005996162973004981116809157136596684522300869807005751979469152204321203545135656883510881030157174048470797395033530500765610053333015642653449564407974765624309445783353829271047331381275207286710000138044027887200314597000513835410583292749771740843118569559354310745229186412052468635913143571384987019565061161194797334304884268084033028974964565337913063524392922913408318627233804718759428519716879909636293983634625526977735603265647995754562822004109314192078817795191005602271808121586971142237775235998955022586440490411646690554894645304002436884051492781872017383583623201259856416293769743033379092294499272440598478540454028561654623521985495741294409331097105065436476410253727171700179977849164340411396760886312243340417470505296952267861339324921267646445586292242038831111990730483859857259750438873060085426878815064569317752689133153212677945595083601819942429145050581244955597501246256461934472192686466690778455534968663912424671933553483792904859949269318432213736022157464873623621175192139198697217692395525703874437852127257695912972669594331985576932652990479362480999005435961634007572471814330905223328435129969764395175472481661667087944670973972744047053314780735281171258166475794606970166409755584786874051651315067338264571324400794599588457313304563365356243880824697999178577655165672477762935462746563710119019900813612168742241089829960591601776541691825798858861996240578866483942189858383327466671404495988114567051644169138185217257246537322030327641395734503892580693088841923068867782805224503319028493043778241601670729004545223423310673554995965547900071638360708978320368379118053769443769487147149905042148777450615389322907994604492704301721101022267908558985412944216856536281618246957933593903949761423929340624906190453252989062224804675623347635195598742388232787464116283033627201099145998555469187737862709297009407992627853573511005821275945323995444563877809971834908408123362710584373053089255241879215152714378684843323236795318581338121451420222343913898286249912301644285719364890050039680119681085938217172546149113906893891207120366183910034001082615170855074201796130392004021286039507573509383472016973340097952243224190874740168831361474652826860669920574219578916282435323340605050114843350700935699589815604086514038427380754214813330921295894795956592629895710225733242842467722335294316002075815911230352022022205912924041767048731399895822103522592325876280180894843044473562560261027738926438614587672964442367190345544675037132459721587812930649585172520816357319969582993300008953374723334647757807626955911163958454910601500113122334292030084055178330497121590253177538260554061813085155490540800700550534641873424052240298091322437141877359497118253995170050486322029977308804953536200164825447632358268431115581502011518170941991470449768714256437596315962138753806578710293358578076554490232673303861386246666156796012683779345720945584497189028455856441704873564787064425078352297136982294603700909069344381517351434146869070777311874141847392140169288494317366835117203085879107851663912590823128594913612178240550057947950898849193479675837316825949853001994068588115340807290506468892469337148418250486264604910394637872100673601139007283918839799221490036391930637171891364453582405440637064986728018771628736484370789345306848975926408883724948568714958241575930510415805785832469430509255544548221030975170568120086065919003067553307911799750769228604528910630856580557773256350532510920469628513955889795289317645259267389137940838714748232735135433592091284444487788602188324707197522468942719582239360791331625074587515859784094931977520992368597786093551914238024219234299826348380233569657866616077733320904300592812840162470269111551973552147135688670492876018865847186194451840614813457652705184854405139366598542624945646902756033752117354107477513904277400461348731020637828149945744336723914841160951687601699635688757064820543885706929199266738782336751937681601134065382643981576519084608566992721386160844097884445273438313932073380176630423028642146998430221303170171567378629139129494813931183724247871575307589523546963439317568336760736762466432208060736014386676375468048582373956253449770284832268231360143840684399120572045461917976848310008393105935023288790298021091670828107477989333503951186672426241275192571351481778973998419233171024383867460146040927851320632531512376463588517637940236031530511339707016704697917804114419285350635943821528133146988778843235304582062298062626782143280892626831574300344247704653273486172134089828755314265549038903896327671102960757860205657232478892345864836672349473297346821338672930025868018535088851866282535853756905078100962828734230674997310217162153093171053397361992333684761087532767544137660990349520780866349520803908896836743054597560826064841692502021490596816213806795159117676753181701159578453244324318565276952070635921851159976069597276301825749239512431217274591457035082845859823290597988539333857651479688248847861367147907253983558994524070287021773139934999688849052518921386056093862694029797004000347279103372730522902046353403406611023935269015790425919763063998905325853954767948158897297983299254873788563147126769993380667061092091144661131599863249164813480143537943893692542131474016495956044444891600769546987400800734765430505863806850049525610838995549093825942535802333248583309906565430632880497169410064937172993431239894308090786976017027758694498182035957244065009763140870526122510570937392008558137679478490240396189878494746984281208670086108683246419759869728764508669535598399384057549922817408077497873047076583732905302083660568860619576467163267938752232393887347313917121103748834331722891740754466556078111095149302126089210075120629505756081474933206872781055253308395548697636047021862921205796362860869903223057959634049702532237727693996139859663436722536513212064281343408494957272558131737427977318117455955172324568013880059820022660497127625289522865959449579663618953628515135606847241033023207227451489827787722175889624598755971735384621565335693656362231584581913321681960333889332907995100467382723206004004422328067565723063724115992380782383461281356756281013104176564443576698218991847578756261717932970639628955172912863238108105199638776584240221407558373863356321026939830589853731920581702653342321587386817118213094883264094600004706907009141559466632410237206239527554546379501438573228107859466636574752403183221776372634922148277883149353894349026227518651579359298030846240243635080598808404714790655477575998444027886004781660894518363348959999438405531749100887899720675150952293025286639081445739386756604296086317657788123575070633865243849655026110165618808582307894215014107144725927623629910063265159266255318533065779296877172508739630264459611943588037214528252145640499356237643863375517666257722310153415612237797443938707942121988666455410646914027075387570867060889631943308526474851194108854867521340061725769214200315183556448836913339149968734229338122104803760975692792699714723490538538040778007098771638854606380211202920568852855199984055049021116554997215203322957215369601807197622149648158729469180712571506841977013860950959905057665489811011317160216029211244808072737147166170180093405126179302616354097505625169219210741564896218610806588375529986081445506863312563077965000236264702848181557315334340556051597594186072676316202823503925473296165647899178120030000345809498466761660254365839025088585893635568292941515959375402047171411903916952383830373981239259723560466324499046214942572208179221776775029238511220405541473342962223699797242843303703663463994034467983211500792017333136895230742876914820777150550686493419477680167759134087681506345692634385372608652487583848229966520579973789446515368701805081102991477655113136906719636115225413474529589889492788620532934471109357899825980731998599820059221288578646652886445930552490168392712627131586889068290243671747386466501196908057439707647872047650422885282482061599189341651758065653568018819396471474109574664342666626724279150822236946076866780616770845417495770216250397200551971226963926833235306487003581042500771453932350707166764042966131491857550677009577588862661635694318753645904850861460805591886973812235020118148126743137317421276341961203938209577303036720223005685856049973171024618314026348232437984831822092801498484569851763343926210331603617042298552858392828031797642731142078745748492825171293643367818000734035759363298400120146322056767774249953024270726114061554417693690803745739532779308329166723285688636166664202898872644371360220017634599453899976064213859621087575281652074636777200056088602754753648179600245396503859668935577229175656153992230366162476815045653117558280571054783360138747651643797959996193349606292059251873093996915381575890403629736421994619600337201725693067154528437068044224578755724084551079469186051772689253952040850873702140586714887722380255102255001453342887228932488490289563637955578997326470154122135107722477107946356826396785054605116151214262772076125206380485854652914163544436702141535753862750018503760002043164319138343742103711415336249183391262802362289940317911571031320632226319862971252960526091189045655254467758850510224745376826605684884732240739494662358964775265892964497311531699891956554675368007121187703766335880575311809158401661794506093099516753703811218386981210725577961693984614309758583434835466746117670832920450665163338129030682111305918240966442957666120067529020296745089805631281799646505246725097004568729091574099462396776025031540029492068798738207537078546865580824494413619754714866503259727698869762579997490447629041594735008470895868086717032614964821643804666354049739363041487861653783385890897361788463372780317973546809183080926224145959943189206042457159018776028390540770853508456065328541210433520477532491678796844498677605495030401585594045741504532769605116857136889885688543593541748553143608153750574797951839537250337163358991665224844273495821370273576469308727237559622816632731498421601738429743514308017849185744912396197972536585292986159274759314782068444160882692430891445751019496457408963323249031178502788079185079394615515482538022836884116577739260935657632584256459492202335694398385799742898512130661974403020160490309191084108268007490125114002549226103337186781768357182364247961727448278244853955577642515849425481859679253821779682394870961975083358604477996671753243869355994404232280394278140664122214398424889329201925077133492063545068582566048067556359095207640069783821942380003499510512942803375449048963280782431544540464044157581694122447316699881793867384135476753297210652501089544919055517069037318572056360799208122022807452297414129908913171843970553300680349322678832493887954706265294558381466260854938211579715109664264705058294087163156594752365183076753906761843178077020320798052094321087751000193853679014001624708653051784518700361262657664936042345305222608318715201498813993268314828775045574857014885840223246126512746095424353227594467250866450070220485459981389299509098174667743913551067200173759083001346639932919288473995809989383313052186999801832674915158923858079583568846152713056789340104856354226517480322755632175598961283735223326438298989561800008382031636565869015729673163163401496566379173378690530732089859683919940047360331936370391919759917983356989830418524857379824403436381912639108415034554262378233908178300197226964062433755912613894436625881860811827222012140025043813526917973017906981821970117392649298573027003612500431750014846923242061584304780068575093404615935736503511041089602089917665466395850086560731767318198779818042664329902404857816344187626857792421029510271418098509178624564494431070890604624083909706032585037758586890762966984410542355070138484442644988645193305495037895072731020685635707332403918439856447390460392755182313257933550152845767333761138069722349109008735167953757572161229538940551133557720863685033893224994478912548088716137407899270787821949724596890302709504177084590096168497330378393306339130066267129328436651555560216836180320250388993944992686268407596601074903306133626715544306347545384158034708196199005464512294046773834595956050300246353634209473462266725584427640507011426166669288042112493699931035014572876601689853189487963801723002093291605859501411518673075534465398735444744067512212516868626770410732570510222007126807017645738486185225421497819728408350932204855313727925876551090666270120842733720774650949383371236234313233349743100355285899943767996326184171374915962380396103575596051345362816745790148069476959923873896334794485447909642161962209642633365340277291522290873018165774443471898851276052969168368745255529103823486907871410614718432951684788277671918210452083031955842621067510767954309548373595674612771345266993382704754991409057091178043738243779129217508609700399671886661925408597812847221528116575070582718783581677230415111278467326523072174047527823698164964170205609788888113477905164010276908210079333655507414403881458201779013537008442314285599219828203551382334279018299121902680118620591916716666206911555939847663996828607528093336134211458475379295067623010533934751655433591858944315354894538261010944521415718948452900736275826809453391428117008407677228050052284788223423015820089261181481783178560386541475786020982336385599415132276320103256828553794904213574924217997977638202810815697855423641544426502382159671373986819697405947802866475440389824948157562627364230339111901598062026911009694760770731595887438047277590437248716748396333734368932666968777954686960131574423611507047189946803009219797508512211176326866156474797295708006106064301861874581525499708315553518600807274859986723230939952165687208686039384505044334702593945090487597367522795436666988011796194188822423414292871179735141694537225587707380266358093372245776097139031864163491723100215157431585796654596641964929733521302333929690267163287909327590254605762598868610565450799693999612085755772634039156144124272130347912282141110628933331713110820088938493962928372721558747087118192033381310593477086049471519982435168887355973930752998977159833256055280509360518422746721867404392597267162256488226377287448036869954882126727665007518690274977525620853628029240745148646942544948096311255185727254369538109419502721285214996375041197856205418234062047977371136584931534823341658823055864059603685561016689317198889995951403156867251113309998529237608700068636363577427978976863223229447678678277749849477148683026020879454890559769689823714046454443293227988160083873524979558597876843549367410566270138712945443936455395048592306440341884044743699922216561117664531243742434589538055056802532121941103080401684509930164971886484864465817300303014266324239428464546187841323268331935061465197037049546979293233289938853013209806062447284900139801510853594736673343503927537108491273635361963807776400181088423666205854624223655753278229271781774412260679268842727949218688945538239517433050191605520316070516987046779414618549503318795488093358196690955324543056505275468111428200640740757393554066047365591536527687615053369337573251488725613322791597384036058906922322138778415786311977841698671633504390946716222142022568046949335203611327818401298460307895615827587541441236108239586758725779489188104084503781779788891983139706101282952649225730009736237715169950159146458528876364542409713080475109853261555840592075847010903988925750944151742529309587986380755320070185663023984196495496330267752817403393721897741814432707862042353358364918447779300948210322643346289432270612676541874233853724356007041791981636468694352746755687454673062248231678399421302967465794970319712201938657195908554788532671920546977690884390085013622028408555413745934147461862467184576899672816372453881328310996106915710521392180866918792809706160046350000136136886554816923887033637052661340254244455524967956491439789528264340229635876903379537302712100905426223220268776548570753150105517809681341976284608981595035482869885275139591211737486014358818814546877845973037300313701730755166228806202024228116946018614174256911774042628885198071356984796481579898287385614180975568911999058484074850375679369868405068840339203736611146827419687655306774126037459140893884764246406906869077632104924597025997952259421565703143617765505731658269236811112495817548478067810093163316346839632488523660518945816948405474771930875239987116373244357610914657965414685240968445642415619248890343277951560152837082015048988948773738714752855985067681100029333608654350255168430598279572678879138214000113332739882197438319506703005749071691883880643941231488245977064090954054592472802217249946677776300531653150426418714243938664862482242701589773808766673459682724632294805954518558339829681527765220913530908007388244073448417181465113871288716141746200236911947348890768797412852917729343942227358982386577954730754854594113201636075814452679313039859302470657756090519724601446273791172456391971048647183752446467322761124027394738595900479206119335943268811574041289491662845047145085961785247390554078912150634641669224084642607801733385164869233010484989119865633531845390001452435519044912120208128609659414388371890957167892026917702530682380150768116392558353828613618362646156660126570894340364566753034377112125672756284061156151130524652727857542659435845054683575154321351082979070620793769231699565167487665427510529594714010912412245161343435761497930494729964576655080634905251653809133230425529558506699606953870441264735066784002969576957317701360001069864222380499087694787763159477927644287084086366889002522184551932919888040261267338034413714269307817350812521748805164578035705538065946476219282143805828802898597032581880667992491948820813964352557713245489166224275922053248968401615605557763342207541494909050104863336804863137928099240746983253160319148663493592196528676749046866650035775275709220709462684492012192125053747648123102971644790641756847397617309547225320961050239882547374894998321552446127808396920948871040630368694990479516876395225889186054347827075013973400902113568801679543726880827403775858512563847433237145861721169497359502026417915076998586975869011639872002005115519077305987514678043146700792375368810378947725800412814034711919032734651282431738012738961900683225105210736916957835445217669095965347066376527528176676421279335018961752740947264738177630065624044347731015583942993413548708757272279323489604991984631497455313101298008986184704010574158639989931284747663251705785240831937594461423254858058973270672438461174612443200408890471562284661597568202363999840287421834152025703362184646520674667904964310124508453603141461750473482568781659500029573256963004460555746817840297007511808889873870938295394492855176006501328162642025040060313799269639193794027470367278943578335590718202157696583971201724897085863180699888618651572654170818480436535419775600031102853701059622020983054751605640787107220908456454158898674252278116719820930527139040978346316546992018517304987550420207220951302935268498137507830675182275730053842135570204404249766093986604766677757258429652520780706077870483635060240211380964144654867781372671749264425564497024582534303468827825075123824405313409117672914835593700331600114366254512461316434347781146741890994611048593852714414263939049045953573171704635539652666922536928585179297375133539620405231677383152736098631696652671473815155076430067106089389452712647538667355724785273319072073126786510741009208111578232393782197891251017628100488464279178411191087823360655266114614833533140090390101436848177180169830780500984102175174083419054051268755236438120408849758722260421343686457940580100729461494195774513009304132585320988162969750116136767588241830122518362235336380814836327389227989496386534957208276321985086273881757388464555234799259469788566272946381683426057296102293601700436381067306663100525540783061198550925202576921349331714214359737762216878506826329189767634426042233965851971798523041220524618998806926550167066129148915469901538566990115426565580307539146548171747679501041623427344300972652552002903859687727570487988823323350468097483205065413987041068894818176582438972308048322709825850527696301389813455996195165333164053172264536760402596771479185407276774437904914034510445204662235489080507493589267296972194273461101026887570426165886992742304081533231385054718790643289364880664180663402714307041120508849951380396355511402345459198377728494576322695849128090567225493607414324702106840494598007638021601571610924823920936491554344321853416057614065073082626288085992727869657532652582712090227707503126709790976438820311929334775667774197816890861012380159981482407124403461804631531201011575196857057106642341462451997869442973332212166833837909787611175948428377920866415531370130943685861070404105936440346360268222618660031033569427518330094776350874820393236028881255082526313599127897152477756054197912864927975837947081948869918911123583306064411339481169749346084072222936174171425701225123503068627404928917820508501386164622329420006253534080018600992307426775742050046494233725375845224517097931608414911260712346465531233415886120138423729633116042710863702368785102645806367875903817779630764543276367341078705417047725866827098049643142381778804861081342150171171296337626761191200781762069589528864414370955354548373145007821111442217378688203964516218454007415675478587274531315102174751193737288288832139188820193953353294899296338546870399347214498847344806268625205620539331604910416842411343866181863534196907732745294285877057226244443894841950112356173028858816903345672889181985281605577841612613867870304904161025865535598970810527783158908752455934608873169658101310903221149049612800221963737313149887431011537667494624415350382182002205134124382600911945466334982861073813484198211221723190556132929015872895854420296296686812528422762023666894650071673617167141467040886276727411860034056859475105829446518075956298739218867306149241387098011665645817696869921938311910975421114288994176926248886870658920045359606485943108935858295624925558621605776043540125270858480158037430865590369878118958256078804877247638248254240979268210620383713587438109380405299677278074920813315463593622694306399369181937502227351773486150098067207287590706240612932292643666667620327500192276623835644042411809774248282117855570241432036094460753322524463138235495502890008818775429812306333565863297153656294437361856572281176556808620183332327259633036478452024152778381229691817649674278390469679034827407040061413956948231424337782743692887317585747305545862621837067803926509539921170602598079371617692952035962967154082907906113069205796668324615841205759501695175760655925853362516162093403841654462856894651591237812953055337677668732193185578921560017551636617518294848297547201352883432489073781245212083775033461201739597812110260632558550122658044937821018745621865051195493470544107026734358120847910799070558453387230106848051174732333665916722732442789961942216343390767709001359382221771762705263265206644241147333682203244735770041144527102478878449463210330661294633864787953507685609925552846216492555661093855851615718366323544569732218910143735101805617151551344454945590286754435296259187051710371713016725881777778335746860582865546668242065603894622793013383641828338836946628910499583514245839726584909406041734661456027753745182434836924066875476021288459515305993444155074378109770509083932815851477679768649672754157040819102982213302803733431383837453479538838617147976341692115326169076226444190745840593399324251404599872189794909129507573756842711227323947965832280406474430696645392902997655562107720309395291070558689915236184823908524204786829279074054108353458403762062176907201623674116438035968570788378423495713166053317881658754188173515110350558748060417534767350409911072968279310381440065576050380204092141248252997069404589872999797362761191685649296120353745769693888693769839607428511370909420778823764062382826434152907851555906146438171225145022219808752727184481175196682893443272756911404323262683514331366579890306721687839014165200181055015745771303535813744078703342333122540695626748960721611975182771862522365128973313296177695732274625261975926766101797519589726075864392748702638636280201959313148166427397427167443759370429287770155177712305116814445161477169001807980584746133969101204058243255132053355127367872261122744967405830070980580871558296637514858851688471792906213652649542003532217814958181371546941634235591022266459084133350432583914787832285644801478853754223937615411413477465766804538084308520601989515820175684677371145789055720291158713548878065364080926524605721013795118736576542008796718411859849638547887911367943608428188754160776532864615798668720509472088981968321254209441704929825553273568529954720577858184303824943312571534090597378362113076415405117200877573302638756301659211886301658067602640957223521724391113386907635867033147547454909467316576623085116522715706332115636517345969739022728019338048704869846557194495825657919600476272874293880761548915173335006532627008162626898705927619941732796255747525717061953740233260243525715343189821927030632524211959188314124119331748730262442619497852121658712957752318069719167689711447423371967626183847882758438924026371162866549384926475465503560682395037546732701493856462047613355450308294074173667807919322622554869404682531376419381659196074636949896227801619302994903694623247074533342677705655042928935724706178776010647860204846723412391529011885505877453822215899802618883354132377954776342654424596276347547877650934164611414899146980676373541412827745304353754914756294457009746865734847845025667297958695804324149300056233254465939550305157114907882257104909830456876313325461230435710758834269400660919389792467792037872305031117427149995629996518181410306494886495230167077737004999662240988799845835566475628969655300221529759561730360417310151194343707745929215836838966486237620139496807749063839262006759769798443296797176201349934079354809934710539692710063869981054956068461357857405047047980964395490853084449952431510436002026206031633719740880863445896758496585090250973847986893779302587712530203938045780802890082169027190995222522176892684922978788783174569269412712775053994482990933272756179975618898233699785229422387931602187565040191583687610143412293305771478957452290441967295143663292799020822978002385071276932453490097690774285918840879701851631082731234348614861834861218508175584954888176086611974955313796924989395409251451459926338783045593387185517163991405937924899796541061579128138453516029534125311163907528125301992428071531454245714203242156245830613987082578259758110056549931880283478595192135427931254994382822244799138435591507199667514628664365455818507901285611938174784994849464018769004399303726273904989416449888214169367458709841818625517930279308803084441909099181376090486824926624481407199613987833753163715026631066030331124829406565214908088403524640853827108518789392573255398402186541577470851709913375305327832849449590904435459196073699219948968044277106456663855037127160525258307317001479337858096760083587840734671161822827729457789835627803624001463935699148386025463048754786138092482432816392056032876197511666763215499169050141529079261210108229198005521883300511072877392977060617656193705158834140603414120278446240282684608627480045569652641553047775517019493054377043528913704997874546924445475764415101866405852273974653065045843424477673627750378639090185747178419854370857353829547332129610641933466489135231514173613137981154087067959294047011721912161085941099691660947451638235600153186397047338330887547929523122638376066678715242007693074762120867434437831466893708211484702054704105596527571281331958820380714885344423616466568924522024132352365631361501281795524414009538556272605814113134388759664083657632659746293422305052724026312133486422582750457661170836667233488813978492884262602037037345256019847085846888149149921888610135951604267892142300078576740882855869944021189785681590456061636077420814805890138004406167721418003426259235202291141844781113571975405642325491693162731141923886881941771715205883998790552822030324486014559201534890604401421664185364594242481311335041803308244210970947581801189539029243809462530587712578094356484624441790036229687867265841066124510118886643438220897388340980435712894121104892495553107272439124792347123520280306785214908856474483485012131175450446525112882057424585633724057007527187415181280631645609770878492449760509857683157360025950347549389266271332293993706128942278839735232051329360873962783891846815770663336327650127153042880597280308903743574424486567932287691414286376370212610140053421835240101186358682119024283105224742711452738592442488107391137569238121847683556749464110286755020713925044405888131698733932251111971995027079105084690525373129508549774899169676929761380819145792662822771192287617082234353147481276902493351232790493781933162464250362284766470458326567047365061649531188420874184275395678671151981305892907768133253813821100844303983976458635588106250182080767588313988309457163995297982777508365712603316632602392326214674371493820887301117317924514079065657900541362306101570959401171804245988695609980542793659723318812189735194496448401566200707744705476162212912964281699435909331222077393447536014689361905631009506430731872111558899995213177796182393958676614805976852916903188521379626336491740766826065887824538078653091304165958738374273078865394351234480570532003926046167192174695281090975612752136773992983708146690636812956616668601840084275453463450281871316945690536238191041546182547304545019772303093102309665057251347048351295415399721692162609808806282996679104766777079648233644013487726885515743211543675556724859514388701577733827637375742811945748583342475858619096302261628916914823322083723169006781028705766277276828034552954002333784816304367112764937254874832133963434909612301861232798665139504428097883502045046470345964091100820566751024565264453113143704512392684615419035276506461913258562043282697518520825230607838590640671302487717112346410471873424845906895483134410470343052126589589204923666376694628543574847939923227757799130070827643037226155280500266895693031785415126430766861071876672138855050820469499412096812237577544442447995870205838096902908494351331368770534976789631998718290874066434534611199365379426622544202259043446921882743147279908058733416924401166660187450757005118826848754241741233485797357221492332089647612405192197714551997525925338940126171336213519739015860583413587636450957914257104747916469298983720671657527339896713474532127405875765622089529583673344829690238405433934631945784966198983630607376043204062887739190828516505988039247022159591060635830596576401747527358188705221725657485187260069830532357496052454477895322254706573905496878998084485980769064631023310151255875894391261255079798480814947616826649914726257434405996549892046470852563342460694085188330718862741116078988403064108787157909629916840235313095130400183723920793767730321980299708405564465000421462057374197620421087864956820716043147808441440002161761027658550227355893868613587589891496889146137133846962480187621968237895054062129638338481340226669557332020045406432178763016492367240072061799015447268236743350343769987233452287621528079416177314217179513745241187879648752258246657715448542587608505878667857506766601503891556099381430805786075880205710483470819761749505008673319876492764015936128615944100070220475539981124058901707853203751936178575921338319102843590098772608915124626067416496036739244003507057429675659514130017244854704079623722847117541939735179878561152642350321599058526367085527061023535932249994683246762080551889704279806778558913617081877242548972229093168875831620693590329780830637781684441861161396244433563258661835585023436641286077004879142301655160068246829255469988880236651904741334541823157345000019048071785924558154641735778751117989628769245674495214800749567406304182143002305305107610175217428053670919919389261927493713895717157702595652795656560204752640063710004421973823838660964585020474123230505025590923901421091256526652799535969614880120402266565930727591739725943314613829783212343054547523153500595239679664478915934526664398700953009678518034810830019586552109511418042152794921692230144631798110645024782772386767092685958455383090544478826665125494278353518022087595136906224801404435100074828035411471195839963218898634890070530902264514406407283478102217978125593716052505228328871175458634900553035030238596431950332974526060367667367247255637681494373939867351407281337677839993520029102693069071555653124825388770965361688302826120831901432854002603118838741861158379086638628944762909516655661278808142531393746614466536364994478726688371207513194640176213347655854781063864934243420884192567968482648081234711095261013044830444875576494784928021319464565720444221296674866820976504541129584103673806198350065983103693951548889409318518988886580421540487077266048045430376168764780360852457328763735581912631894633414022073939316696504947959991924100868948931966612779078990553748197738636423518698819258114130957377573757979299288875371116901705830132682319515129153703518178922725799918655770458744738380387686555738700729955324004693809115795171764238373085991383273337541440744477230494205352583806243090498023589044892719006992753176702649514783253787767476357123220132522082994389523869476587266111759998620791851039797489345911296467222905539716986775778919944669062757908692059050775291677158463454584131129994159375693422748461744473680327162158558032789418670762779029996447995890317490044309469173897326445554981734663577750494851797538287137120319316811945314158852077203222022574261168845615059226865761664110879279042531686829063998584959888127854229875522645140286268404033865949217402770353920162556500579090358048380782004069334696264099948676593882672357986297544747522348648123789366054825781791837173660479142688802993585619229650570395377477108293756336956762291012667764375692504084386807527835414548025601354741436779968009945927638902485743525876240480503947252928610536168501373976622438905497106484787042898482960953470005417264213540536140247360205005192651536980593682488488723365194290625262263927948538040195731988617696688665273622506993376704101484016418719202816712779516223390562076175419580219597764704378390476255541110781205896446886866293924329780768103460282756294567088887824748569303088151939010652045604580104058238553545088269708526557297727495697347426981262563867812958199947861068074283216856344344785668234692033839418963963508501063797196831573942779786711093779847632485723561525709091835824636074561287781765168073902187439361900964671732861891830545031339491006593785579317517816379545356869343613554923471457384736411392455487765068858823325449146477204691098460588522711401115880502153790685601571111800755009560613598172875889395904246917401547037503147156504241067954144882421872414395390736817988449097443088927559754890624624080354951719127078602217484190629873813448695195938816510083710967875976424731134499758001169209583730746278426476365031721659777746769675974322371884203830911724574425941479816696450553276707160714816794255691316975541811448311280587990360874159271042976265407067119939142493330003289844517841431210874499997569373306077906125915325439480311130736203149698694083051113038159488942086584246625907590239745287576563571994714738514320662906444120364860349265955806791527885892496430717702600277227427197267417158479933620998288984672167881503992851521852032606500422364069568403842783431776756816486684303552845651500076339088509972765969140404831664587087673288853849976817978473468420217176146559138794671886147532960722876322820758606842126857010414439117417557203919917759627560399529961569448800187588163574592701921674210941634698817019395842428999760298998893618565208883450945227265589123618126444133476893348345945364412814020216029443543635108214045080991910890028399197680312633267968188626174989463288777850237589864632310050820747255730828830573489342894866235659670035200044435930056279373947654146659467903455730775898203695094375792912230496409544245746064544890330914307952284607717274075041421340768395200790300592432967180531037686245529200089236588157368840908603560763479141659581098208752688920433955814479179835080289582153633969325779841187760785376209171192792476962957097891282805755711793799828471467220171590352040774891391607809401533037273722782029554023248657050010830343630639465764302218234247622050967992995609317657552215910153723308552967657923071908449589229213176728466649559276572313441043258064437454862424076364517868681814566997875363686829756276340515564184412895511508942867243630010487285060629835452899450504904092760260134818654783651974296372092873951889450679547145766510151549203463918389190804074062011672891460349752661976379588187049426455555463420934261499268392404737879385956628323063863249569256315758754899658995745682695921805059419457991488276169775622994164746632406434312574540481555440265161338997379722914624903139453375769137052350679063172809440225314753216493478028059428038742384826262726781317199829204155964118758045802492859057927967241573573060694240484675338861445467178281328421293072380019122499793397580132993728522894187145867123269433702370672563354685238828482671152582020362443272324874156831247168814957852044585122974351090998597278305879110800087904379406026712806023163983654807812980388868824276608922089486343765755828632178914398827425923519871610553236277795910996534163936937005493836311517342858533288904615104294690093428750881687011423459127485405000577939287295052688684339670488182291799035751980372846809210334951431866599971374270795354146344965392826197431012393050641622763534073178153686493322313079107643112735229233275577629004313770047312395076538110927078720675619572948713036006990458197992196356928988465707356061447128837196864483143970680852685183068050433184276654940692810221959060938617432508188783631918557467691643529856232291840172589340308260063779840250935878663522601784162923696432747243154153966283518028831297639210589482236381684561027840323890328935611491154215343474630888007997641497254870526292330164742007897299917344205959235491832003362925089787501588809160931072753438663356242827426453312962537154228088955547765829876352970387585090165859723734634817882643117418775348273413395869743825820307587580454425884514286276685289570968300790518535320739533054309731680795178779372868679569460894649857552738317597517098143244392078844137571716735001385364119920089705845268041378236799768550594212925158832273384924769357829884335745220432224036693518049822806133758941399453644357115059404627410881905666797236516666822461672763232228908379951941423864470424483511342608454167595062114900141572263863200819762974670537595977022185233147575415707535505620506115673732482204481415370681013490085938105739952388012004515412479126550487235446976911729804771045086425714400624523907555263741411601782904965428571423891881132885646706345069664525459828304232793662548178512986945155099571497753015358445729498586979077080524696098946753769970629674589266475524813319917505372901212508885026495101529161604599861579641044377606110459751220551246618813234594907683057019577724311632198306169232067934578920775790509071273030773084351129749679441498366567919473561794562246177457306054238340226821049502641020966937873045071814868788334209537161746838378484355691708155006628980602450488138226542174507258575026793150117148299935765339558335406659269459338127747700249984598483550458392750792065906063944430166940219350162091487737122986966824268127057941717588793848925702816842619977408288896542059432210603116914824955319884768276948243949434971457523728128360605713318436937159470542884784353915058385465257834989469309871647580623717574457901507059155503640908534867395004751720422898120461374149769030529395398429312426500704823949475918346620009833049325720238917352875681551532872297506553778186187429031002043096898532062210895218031965678147105984999510363122128778260878638391040292926626518230372191657168174871710733169560208755403746491815656747082001900137084513571265955849089530462893102554584565670107731156255098792133434460461990211005401985828946926727701072794394380365629310514615854049399459224760433142654713682944249563120831636604033478667742096530621018423306574654616340565909854975164153313725576943348217004321122177790283713724772137914216611025174894476505956727680532808185286468251502600193814911298584229305008243406768730916053962663814998517634177992306441333885245859147929362800721236341681296940551457387226675438890792147862867937950883919867558186521935847460458922727323027822980126484608503602284701541141554188586461319646160015565783201699388391301796317435093769585815093080206876152725815674179131219969734400381498054098770761278104580039241422893973586423463176261249045264035966540744653999738331781894359946807848957375190565189174171648953437090270925510067986995470673202240410729087385010795233648034610042692764605736565901596554520458042156478518696695284053662003704109202782004347457739602759035456570274588257242335942819045452770860773115939842193400529681174569342068402503793247248625332913004010566312456235198802586966630075255867958214593631007760207900177382624854999345475267776705200361346563935111550108969112471114541898593278245239059442917232504119750421813154327210610918101585449166828608797576328194484623909088731096996184640176319485831425703987833915506606379280012930401841857396347235150751863313438432755809899602383078382362910029276893924458835757146838677070509341723661755636610578526513119507405399927663196162319571404645145346220398753659525607542417565818758096883713353014045850360888548663293196006409143627239734345542722663443367738562091346655585826893531381273651029122936374018569993227984202849402569331815019843963894486519990547088091917099340632819596022766712574269657328948717893167616966071274679056215318874164663429940198969101831472702668147710433588407857696478383636543983525359324900153010861040668500299788238637153285727921417989853669943689535814807361675484250054584934893459782551379879366363252320508069464324156163042617244992596224939403957703559349694522508998432399140541973101488370367169083325487876851846469793786126314372204276339729930095882547046946126992068838332708186341290456728000271469266639516333276577269082120865602016867058070174589807781649770076074760305810754358546910963846976391952489872133583195048842481207999481997275266742779796838534778882744441528651123787980181577542558394152524843996864873522278228179324008824337441597749450675256691360299163421733639154023739886186902452805480579575132709772116787671691744138462527800008822174233245939023410443749630136256826729468512940541867378901557551136328300156179727361084391420319736093328808023645073556628302200609941638045270894462583742482241982304404414552020333987303343693952281365263811453981654074599712429823420496633738175457307376401104683869281721924561722702281265098190746814003193990493010675112385792049063472452452640929714234926976995355857989562359014938215033729358816608619398073053952509968881018612578370163386247754748253665771700945519312149541276908896484853638616824339416116700921151005324729836807848118422520537432615241542093225419993720708928745562052153258006146338880573139337455498208264760245257130281385425259016408385144027246674391816175099227068646826537258274513744677075955091305680944920449221106757784532172583611232172264233523650714921804233687672234706261802510056532965977458191412536946391016297271240278899557184849288131759882421210863823038392598473682861900011110545432065355640064812574640065969390372783211635720086504216252977893242404568462039555136763072114241553844933800067238016115445446044279044867793908529208364811998579287338936802403725642146252921059562130329720062141077861311978059437370126050931742433307737655280042982971339488452702900813372707631183300929020972366652326020580596298693259260008958205129532501051685531088145778903628435103483971819089058358643405243812521518438510657928904935078405334703983491725358623723569296544100511163968915048665601364618231760694670461129863333994365876502605599618986639410056961980296616171779356789954729281576900737441203918065807650594930536769073330099331887828365545618835026901488593535598795339907588731045338995110961860976622516512160274867377510155140952696238318781054905145947803891309347434954184717952978468648127681119878525446431874579493881615200097551347257706120433094224448859213963019554481926692706493888705697208926553816441710894569313320768690654160065854853435156591267701892941373264285926948250455030857054638560664216754433185346986761214652431142943855640594285787317829420893941556466858105952017441464884252591155942160361589176654394373538939214476894857403060553097700282145734837873881038683850469341467761684282628047975765775335864287928548491503728759909943244797499940762900099796743811042218503815458456489907398602295205426455993322947377766839095650640025520027946369553289034527190852112359996849095838681054053599390715282254701518037632344717981004291608309451393861895950155188681601521777514504120346436087139827740737868187618654469038995460382912512809166538907813640643680037742620054787542788894479836579726908725588953707269091220034386446678252534137391604521810713244486694719405910000727171593199525683205848509204914555108592219111428543529866556405605206086883412547658271730934505927139419222845933721137571468709296461957449375488530719556624038694155629072801132633512094959367730707381611527199420593114113902484868019377466451020363997458435811194952115673398270059240796008311638682861655487866594820079802116371721480366121196787122256004448740807194813246392082252795976296193171438508642970166332400532738988721628895316161693902694377327249859433672850063532992965230845362078362206056583646607956221818908865193511176890762454513391056550446646806772903969083613435824228135368907006355523864216738270481803427133621030075835917175072458144030610414090598779134610067731765935642025690904768614597457556362643141734513253669643306589375413034618117582029417062831171028188205165415700806169326531708317107018780858885589210061668688501630949100859330207946109671145522828515208875670969638750259709684428338583259001811020774562680541962848515501084924999831244332824038103040730072206189173967310049067247736597346554076914250623984783191876827362154918647542135700335133241862020313166888707477326881746187586216423745106616556356968441351684859664633256516060887297777785761615256276434528463727170954424927939738576825627660467101385767120758855828360216030501141515172204216270044771891671304745767853448228624473325711796483859609275240313605293739052347257974309413169565299921840636229625091112564477576861889912779059517203558625131036844399315533609294306666372744792194075439147365453173259886547090087983012817533504165059967841439279148551746040690246778457879988202444820788008018232778933874793879905132949382464148540412286969711063845354633180414509676128632381320903916926625486485387794189999406857414008300051165551727510375428239758562363629724785497217068855730252463189585778619780898718529588823642261720165631221957228825668462192644610989481251377859564720735785375224474268599657873395978351052689183453283266290170160730346733657146716972111980804510347522679583587021212560013943787301221980863765998731236383047808067908357989415064686847649238108409744499976489283798167315121645908414044274378445417436814322981013451339473504039122635975719980822010880101769897531412277616125346044648106303886196447707867325018408260392956717945120026097124325228626185682372073820193078209306513272930929390905933121945931349188870248298143303876737716714956717705522029655605782135410776013970285559804024194609355080641339671511039663845444973173843031992340109061636388504889648299948318678342244374825390214989245884088196612567793600868927583759688235756465162106642642557726831461039143743548667914071131961863326465278715911831805101820410505125497006665787560336752254016102358569289218745920869552320777499663983751763128787729398329072806705035599748158420245519753749384645622158119483560838320126987788733704588014237384366234434965686250999348397593087373906987940288271654025262875999178939643460370315580223206237088143910359625866542021814172702517485751694682985306204801238575636375948734642421049922852722308751219394237162456348249581009053381075061542375243470875745127932815157259842157030041810606500447653212678839393448978666389551067208256591887781807518470932664555157532868896249107502300328900206213711948380080303907928974848300694058878741546056975934085465958822554299446686227230717776340913193097135369442735433741362836512782355550805841455934324692176631833746140920778914778870696256118958123733089085043871495017943375889395126371955582623064420608549185139420914427583761823226529600660280390784474698056780700782974324514348268374610293993566159643884033024243208893136702449241652664117556169062318973636453589728998024973486476383920390397530616556614937272333216831562921343772117986949122818560346665620331286351512093016199208397128232355330593412995066227984184147830250009166859797359887413586355285432820109558080064134417631297530966408276084753404917763025783624726141535791072554965548876920151211291695571844194495291707750359611970928110555667039287742623953268278709434748401868886437297011494321150784310989858547351704313896814019266981374116075160314285552101704540879183515818028395824299591747873288144545863051407578754960275010363053342004472518145600852410748363519856298337469708747447356366908338010590443502006249784529564146167432888993451154568745751745575433092823776341947481958527487242702612833508518141019240699872575881957796629357512366544688962801666005681739104191477092870348712602931343431976415929510241536937460331548645871902943691318115517243494640213039869790437440859620565439717939574775140781044235558458270894529171528904992145701510305969877881579025061336002701505942632637533161197524965350178229412238392345690147721377287608963737916722276208753403517282387676025444269730225603323174649542213683896001332136281992056200198418979746530530774419836648561701376611739717946544782786360433712257010118813676565489554190665322655262184636843437530279688430795898499196080150676627889828038491273764002419731460488145313251836429633986627734513030943863557515586567281027340421453112972285546705735058039620236925123931654460965903181403722486458014399552801460423588481088755880850427500324705258960442874362578249850507325893501246565369951910093696967594938292373144974616436663033032950672914699993230234712708449263178554523070740531295407444460884180578981279959601907477418010583279308791887038535266181432583161054325341448555540809834329064417305094880091908403415609693885563344000405446566294311261998167989397184995279542553472875530809104789236392129596612498838605727314047210342739917024782945363461765181580989624037505493190277827569429629090018411191811019448488065868218715865336545185154737672658608857646749964037310955053547442670846237148771089520374900659238513968006800587098868469600941401879046469809854276194692235489113588090184682130586727579766868471684487251161749143810285494811055247643875817312647461901788098279298509614091159048184213915520340839448305935209124055871093378553697501007161469899856427660045058269741919977031550511929238014818203238000708304880497377074734055824625127055226613409987168782272414911977868085864214100472283702106468463350798033984104075014723451820333074077359528084945513547970033388974029601338638960196876471617534732758808140103793136125113411667128271770834705433488404180318427387968262460447200534076660217147503051830469499225503651457613612863144740994283416675671138530401509589696991038336672003702887686483021412061890063635713913274103643533222431188744386376683265472414169189813409060095574757838949029898135364644930946630332858123111664557657527665132585201072968462335693976293104089212619072033980224791417573581213691060228279643916291976097010722487286343079664683185916040973302433499189301104730029374133989614589696810680702066553487777365710096713269909423238658115345717938314515224699796534280404670148628567498931420812301398949801952759430585318678862203734658302806990437739900659402594979417286166089128066413930620007702630835963821063193353567285030885812991797427010802986206070151519442506853485053355346474640114100883970737236506271247197185039857043861795815383211099806630670811371710192284128139147386838939860871798077489459700155822348452275578219662469704679407215032854772567137182033800249155451673023437133002253513266123551763539260476152994472556856032130659444767977848304785265846803523750160865488778253621543413703527465905173792719869114075056919418435050038054011826686567927426805438248401364948752842040698096832096447249918959427716714733858866501291157499704698575019208758968131911684172334847499765593097034688423373308566599556449788433600750429317423709401371958695170027517053990759509001014568843056123842120480626713774828600300030774958724556153318874959917718070586117070396355559041989900014676547595775470195749155013684128884324820781346878934091945832397669331842961602130003629495932526170738938552627013349752115813973397784852235799362216339939824427258127473377554974821414747584389188923768211994496372839733277038767499301017149713659708057333111023773359011980548510722042795410052869231174471057633156337630727359180859144914846687390055658467767642740884612980917298322656245904821767218038968865174878096048709378005923570622911349881488550319666582387426034692427695139447877374119447719117992861545339313732008329141519100228691661039003196342871258002625308663626293065359346773828183418669432567184459366969315147990364065381775622657474909452591951749735707650298031858388915110390019581634136251036374820682304374431584992941764030479824296224818276763545906437467770715608276167293729492308591781252322278355897022381108220028374002672045252497470108208733554865205063118299933919926323558492853730643985550833722103458789977422341703910469035806044720228057289448432678635698201108765759281665437749171600434319347321384378944659369253686795374814921583715156095947267884515106343231534511908456347859681269639292835775536618722502481318904976381463056269939514045823810761178195850883833427873608483184593866178103512175525755074074219549769803222188056679182554175874809835061088448636773189421640036479558386650656306950713369955660660807567608958916044751004165590131025378273987839145786617582595162962521650458503589582610616660216800573962701628415582730370913244385007680885961516136168128656839669022566406330355985074864789762239065166857622834828638884754042379411077487690058062213187394176576779402591122101542143515050557514203189930925659302895113996402493480367149596287326993314769088457672957097677477848184574573884112791210150519689596448282038158121819901182841251503316634188030124712268873545996855349902281956436755587809877517817748856006641174060612560622068722071833219881006060291232642597836586290550079287354363064937991614651131253487569521198014281898575439053329300598320122341935134437810281317558424635929617458335199415180321467833127878043013434400195341961729079330831013855397649725691556469389199073472391639789533215813126282742495564781076431726467306712110240511631296772967150305651759187324617452712365196165098535750768799508968353055419112159133034883657862728529714316607268471492746100144870521778492760422562639387506295606693838057824070097041913156070940984709038186156696072759955455855254098403173335628817946519737744479918685234716720163591675431521667176710668433326006863507190572110832164757237478671147240392747364988492376073013229200434854658253921728111224781305384923030818067663681576260245332599706661867613131274750919065899115120728770786388419579791821419528103560140499250104214462839306961449373392038675739779597021103765865055693914431447443051588593225940588601492256412966834363648759112611162473340779491694649087619707442535559991971758320906155209671290773712193903872049400230751168158450488526672972205920145003443813190457226673395298392905044367754372670264170943354231001772401906188425632818401014038501627857172086779067096238550607654168174316562829519126885939345925268968354233445901557932719921531829843183111375963597904044245621563274194032140802504894123215803618371877099803468066577379337094027273998565513884056625156452193925552190271039719460902989111470174018489775240422311705421039969573783510449091169460770122514375239255762733826066112509871347947625368131336987063848897904914409572040432642303711039326582979095791978046956293721002046356759621231385111715600019496869730404602420556639550690227050702715310467793161936047414468767611607692618185925610010252690931787806497027489661340806104696454896159458150782524567362963128527210894525772339833419514062406931069900701832859806524849588841510217830021482460109181946237255627547756854780334285703725638187225354222594187964624786618544658929653199090408287185764725210259023751492258487396283484029607793082314295871922591967113533641006944241305265440810749585631464524379750941537040352275008269286818162132584625545204980593144551463536774820148841777194383701758656747283811248567786059885872744801815174168058873728569760530968549165097224196031125261508413934535175932621505650783751925734431784199126741004109743893576473317585229202800646326204243917155996679860751169920695383371297707252383812036818600262424905272009845226386930846716136373243639234905120475674599728309262909727441793453669987140176104784770655612789568980292795383693249561818758293072546673753695071844311891625370587831546849781326233488876972392528355820074973808068431626615439432101671851625789211170847260341273797241719113365134129796141211233699278540358436801821756311016174136972421188668288529402691081436232915962974360304179320742374282081562492926337374809427181785020723320542663269636600537054953615339130379727061703574329799580943341752944018106095453977803974335089420817021317631620481975225688244725724912225513559961261559552197313991762999016169829377700451433580230499068559026282232314836596573792322491011782317431108382715655326149180800580670625658223315091488797232176636289887827145202481579545988338658882919826469962174849145039981941023698716454285766840341638525637658273038056276408267642192561100944289685658598601979802613931477730659960490025081088013639535005396215940024850196697213520293549240666784998938333802325485834869180477122828090116795758853028570199245886204651116920749663870325764994885606204044167872438406526502249128917332721671417348894472173052960795998313732536543324435503214787779357120816201129603621604446682278301473026781020132999203347587481111270781890902592085553959927848985536788971835220665735519963259145046072305321678467522206171233872646419230811837132919163923776097047511796680887414955892093981146862218932246335372466477904792895770286398663107486062542547912632558844122250835962796503712960120357485874848959369219942411943067272018844487962348916867206397039481782442352308810602357105317926376194553426759951119760480291035777314846808637437426744628594918824010367389382110987184390257487301726566408985908423488279344409163264659534085219052323529213847587517854462253475548523247807903833745020815759715825800212211796391066037724080413274691082075910104695104435860753535501672835195132141129754840359734648590530528112856054070012386580433823360064202833520660594074172301628400300539274090753349833385358638609875275689722458711960268669792950043070719343804512135805364777509876290024057124669447801495331441332657727022795380921646103138698930528915186262242461611391527077954639304123012104980149889474470345169768704555041130375262610152859104093016509598757793967359063263878414840815497608558255131990359139536691861866863144470893357109530336958465757364405266713250902870036252569987072025289820425429745866212158718120721888164174573943988673985257004696581753675339836653715418808424085596243062769360824442578880403183772483434870466119884976031598952234830088714702830288649125831588939767877047574328697635622352887372359025261300036639273749002076798846423100746318656887912059965432298683325765737061802652572222201871419056453640008019663998261886200603303610552419380196228923527499871232463175823590551389844794943246676803216776497266446153770283707483643803939760531050470356338741621612847808802660647108868966049943121676090231083229093129657264254737460446964785341835067848049152985219351520069465386931806279358747019445865135107268034482507136225230028223130857894628771348374698393932973854267458881076904462197174885750076370555154811088613228076533219513315790272172462093862763699515531874941084889743393604854778214632097829350396801789512550932756405194125678339862750807231620005175235331998336366015043422592911423158729033683231219434688213116779808243782093829483313096590044825016145573973030506929407497416424620649252591252955855482626768995001785200072825134443968845377204896712502063195016687139956693949700581976728099609091840460868816220201612429336628392516482113481416682778280492892104788833329629196864175822063519876121312606200626876790531206067056309518690472790101989942551204539228795169726815606214638315856312212274878188089441794247858519884272758850299503087517958256739427407373591840786710173673452639086680730881585371611592899372162195612952557000882039900952978120378745604055040422531575812085577575558893389260333934676490342935349082878245699697227323367135084208516311962288061242271481240303799355565780669445233511815739798168155046113874262052406149780952994675685809904270258140959270940935866265713968718460743525765044474929654054619714541948355950096674141584810986178108734820254420800527866410851359161040710804028854740251111408931092496006753929420124517715328919461338094269385355830652178849784094242390263567411364459636803271535553474203958008283180818066739390223276616108786781704618906423557080054042349884435717066235063410143713621609043853651021595000073119940967653533307275424372168320413180106602967070507335123868031343366436652872987253145466829753780295152968632423041928501797331736753205337321749021658482761576114426769286749139570991640091869900865529462927042252240285201592236348809471356364645510604981066787930753701175581015303750840572385573907912219314645763185993436019134878230397329257429663706047099730374565826453170241757944967673158522466644343487054493405373895235100076311376532720861578678159982614692818440400505419212633726791890897436495252062435588169120433406978935629574463450481959327931887798489148602543462480819825375780074288955418045764482228226706169184187706417676405121295174541179071621046491509261637329631385110545731368062758393889965708828455045421859200539145716232750131910255667009541142986745472693486319903483943537969812091111370212744927563290496019678891221851021565820726634739902954430011933405701251114905485570655010880592306018719709754450576801349714708821772630845550966521209680958491547872668873096817780926455822862491283918404356245361537999642854112546757424970854673829947241779361265416219439616358000627441599229942715232355604421059549240159500852265480386252699574509853747483485555938449789377395816753787642511352977657791023512522709390164029134011615021108936056190339788541965478806376724306040838161895668130133040189993428534229528072422861652099460828168339926075012744110060341857921752265102161298966006331326972935015790205584672544052377651060430938669553526651379977421457392010216553640787994516429412687873884093172698785371835195610475857197482042551060541348153749857875196947851842055081221767207500633406170082327513916030142601479864612956256894347581154859628076939744265538554516404226249348948558695966933859795866605956079200318023846517475743490669602413319692775905480260746368922496046821109253528190815930506722546049178904166088964648417411511284136790520443094658695783455870383358838737366401087199507086733697979155484451267377283959577734194829274536681062015762950230128143370259680542250574759700141640368395853178188938462490549626951558394672919161250953255317330284052835178456255754522556478816748188950223833587651781537849821526452056818010173235081984307554503730420529427795814462983002812856992585524451449368546610725843275657942548851483543403066497015110204543647328201845131950202616297366076044936718284483775216414921204772832359934357026902065146303655808587279124956104092617040963647660261878798418646105881744871485386120060668752866327048464211943870715687202416326828153297808669907421255110374518832194523894949451668340604979707888950951394091038714377342214555860175621376445487468320380071502463345520651663432815556110534222606907831502127923978688981819182526792252654899460081313859504284672097219933549213458996452345640643590474947293522717630740014509166596394231425165522627452685298687956314868756222383741184232187447137692112828713422161997595448527289340666252508145985997350727459694296856985525204518790235329534445341350070384531701989241461237300696270409121504943773624656292620144733200622075810810391890650354460830501892709424270385745010121051199526130300392536815828282745134341029770569963346277503807079448208657413615068582474899256403002559637282924342048514484120633444678367632099519800718641960744524956394434906019280380747499965450235377256368607500482814972186838610993018373336382251366782124102866796916134125429227974561065338609282527510618575122742949960422124378987094505909166064378031637876064646173846074074760100442730486939029310291722044473367038038603328168183570824398694203076068664982317747155595418652207927551279317548420446451591662238521913916641098819066116348093556751514532791500926916588463054868507774731609183500253576071969615111819600145645429309422557805980726677523290256393590927246351658157178237064122041443108350202429821046687708166964857940042587334389090431779254534910151560195820556822063348631755238134132553383431536447379836005829820541392203184488724764870590337331820925087227996135970156209730624087958643922855500777222599233055347682497182563958075945790036757287148054035810726765388574962678198303641104215597749106393998737148623711467234469048970818899944669854247445653030318602111536815888832588374432559452121852135008412512254981464758141380425555566202149671278608637291388548193477747649286155921453109565449143897753525668547859810082710075321966111336903861603898004661447626678438285044046985719974234445540912217670779617074947376406564533157588644040133016398418358181976488890243347383396818122461082521758931856709242436245357899224548026045707833120437637951001061878663936103625667330909816251150110591357082253876649283314674201058008471458767248372295964221029581440171859186222997089595933145735980205733668506763687771876596189250702016185890796893908918213383650027858966919267829732817200223433892118868656227420876145850147195256043637115956299885246043936505905355403578653140533174055152675732935934539500264015069327253702496680371376285637680218387380162859782527015352123140855955642220445899435919794978420711240804572309430515482922855281953013956475016696533370281175216444638342815852288370148406568566228270677360003592915357697320641276325971920752433194826065217542098263089838413216693939434279233352163128823253871600021955085820342546911898285172471523493722530518558952461196127473861171128156718421402601782485523731309861849864886792212430900672835840328959356371533084036458951282249125965066246767302803095985088189827928397034516825317182634533796286698111588779796787192346946340366717270218734814119654677479543236922436513011804182906258444394535330871649358006120551167076009672729842552955386033451119591663147288509412325207709652143263090192815134815548927785220191620972030879405858301616128888896213670024237834153627931104297029969706258771517371064040287234227810725388275945526807628606475607674115486622113024056379488403479289258708365151104383823962360684872782811755928367242943156261474029497085767741843461166025316694788753001255649908159320847310723398047003514625814161873602473896164067103549243971186229964860790469080908641261917982742565789474684365404138286962268388275094566596089055427686157567461038310083413576531524173617970000259268104323008082433686634684863190898668710104210886576044607197402183954145432724457911814356375286928558907840393049169077612538869099529129096832524540043481558149274804416988466403990481361486130075224814408890829808583382269285456431844420855601336277678970884707932954456230897656906202234763173218565433787106841232490640841702998920997918753090157638994485001230334503460030976041799119406713353696065586660038142288965009802974121086601845406873707488450162454894935451328596151666016376132860315532576819179316322903630310698922598194182406098474510579399378898267552246091226798041449400833620808108584775438320469741702574356688555224459897571413607186245730200069812450217653622083696108693198433254697159711914138954155587550433237719221976112292611945953851530511715061865399511251321136821522693290989014725423108284307030594200061783062996619479125995227880865502266823724782685136685380595639231958029025255934436085370071615720287348886703121408638722507472559140899906956826005189264600475565167425131315250555837288632062063075241241903249588412328315267181919021667117519916279439777505150707365759707322689933535235984641429960368469259767075426307546317528440058436137638851724845024380929708846599707832054892076567009565263013523981147359960507559248649348128036700340540419793516801162450611777449707354331341247236675992786607308271693278314875061436104465838769156847866229214861907442098106532755166226835534475258432986912073680685364730756366258435851357587772729485903114419754173472726299425249088213627402490676662444086189384652727298632016089250208588109956320518100953820991612070468481219086859872357902762163915884266661643656887536395700152363038212139814566423228256038208167794279225803503440755544994708096448242615402120703903343556919658678433632005264248293133761809641098518116515771216263106772910035210544334588398397064688449652668103920082487490504943682949907068873673255073953018675977757571265513902236827008122859763941617292481652627298745129977792869041885525993259407987847748331029463944653589484932879185221770447975938548561051533020799399065666367940394018926488809718439047732260472634335376312889915195283594482874330852465896330554884460840059192614511007773511693832591419496657138528577140686013771431240139033335671234074573882319319587976863184861255658100852678858896197982777985708212789391107472794825333920044447992098483344181882603622821584415481006879139223284560749995100338986434683329066673673592141897971638399903888181879871937099358304276343406611625050826367093822233533842042315309560978469798558657723605704768780923475086578374285829087986367973656061236534596998247374254495394566342791410976236579269905643207368855095446985531010842330960574908612053859055394460142775141259788159330604644783893172239192118708175046847797073778852672576983646204135867630510750854312321939379051863909850270283399350492166853881578598046500791480282435227823224341041322101321420584475084026076405538838425633003685037641268203296649246921032140304075957142433950256507312817297571438267761070436990515597480328283736758829129596406697849490267572501933789711401584050335099038949460133612281823888817804093975310314239108061278001870532983306322807023047556666670327502191499033114508227831321686584897532553462583659515684013256397551506541565056901762449659990277989583466655233949107566173979561517349665498856448377693536320112883796661401862291465601483365655325302845538871006675225999008272511071936882506677812000277610659308383753265585724218985855208818753877969839154857454193011922499121073673509182785037920939393671589896864193706156814069847341923229569735931977739524024240122858195945321269661537965501240854070263943845293609654074049618232871997710929031701632393625197590686829360185480175726935805626203073866451285040389301545552865437437499177356318313779938406865774232738512787544872687470678007661322472521583083600039649373400235044400425751741219851656853818016500945782501228626362815876583110014070727845451018393019138595661228867880095953998694860562621300930662430308959929469556973900786943601098226918038587576703439584831663253633508560565073432057596927579023961646998874683183212922211564455057856087236345851802912904736061512079692928539070569372326084366231098302089903123414625381776681463716609354699369694661841438782676508613332980248806822015962139866426683051381066575064929742052974514176378807262210544447113693133555837262769198126313005561105848067555836306055698153330133294283756856174566227496626930287069396646516585232367314821574764794132410720638341436101635762240737506674367288963577536413835139659430483907869487365391569180304491472612612877155120326575558922313770129391886367706222204240899427070350819190216510051308371651130087883597577590279252102893470450358460377244849420679553735933579051031887884854403319797931635743094286608827654476588644018637188139769787927185908780760172759413223536241847095192661664394295720665651814017406863836990116326566481262651325441317441009470018291005766720054618928171398704188284871181112311649475253818042861532152120499543093492036567624316158558104443623305703755537962657058071623639479400231942472114429689529860928042561949413374465961085771313534987297659941252218937376079138606598533078455234149594970679624601182699762506754117254948310296997331660550712922304612024698869195389047908618196674947312815263205572760586850377178195542842559082431941310542129599418684093280641240482634137871201648228025809458706083867652872598676569351255702764726985206581198064526291209873212098326899599135624332487135253412623265677339945971065581013878425835558641574443449888468898115197564498274937733097081110628317817317459739902514250150948698077843876522675583226581768380417427835503978960960599219327410350860766509046901210457980942402086557464611393944424055598817945856069035807117195347564594854467855902573425163694060162475143654033161144033466794673894819403225646046735749507207032083821115560956716371138382048550536568711802154284341577687240088128055157060909467468578699499047941940367551463368954180382300890890244966388779391465603357297784841819722153277184629334094077118832552080947213586323499638165545602113245377143680485981165610534152541010543504088149240323709773002055155816705945786621973856450624365692863708093428846368497685132655638270868490444924441374575371249624542782395539142662120705135146419576552604803432700626569304747878420554324058346727411308226377112678778453435440765992321626666206319270660407591709156396762355943027437208103236283095151438799537925036183104902374298326667212507030244858259195137957521101443726909431784639113520779214479201362958597314342403367808424520129493387375251840729977468675555111379217733373607204941833910493479362204606589684263410803504520706460866542287293783567715963353421506683539847105413035363469222165061306531024590352151633585595055731805221871311406372291411947124019366186356691172990542826443058519513789127906783702731474345372731026397697806313009415072482705904035009941725179230457668352467128358130539980926721990738088642698308038693510113600566834127216987968704264359877420529655841501525851898619175566911907539259871274052534441757279775589542512826963980888215834189484513150496981214144121809807602442841270632676897819097112949390782628392268061306231197253291689437260229245745303088785491314615946560376372531306271900776617549257973894554656464821862438787236803522404212369226829048012379211284287897760442487112182385722325128282268217867923624959175003651935756093113750041112112280827439245194936846045229924842621235709360991418277129146040672913684311657555833015413847587104146612464258232294513428517828558399407572768005687522367435939951723108153132071325798162846837269239785215579587997171521364627600683637706938862845710227522833702348750104850121566302326955830554284766797808149318477584124060324520091203765792835325017862545048078266473042194966828713261730266712956801938496977277243275268944722516926925969998272667531157138700472499294038460447834834834613147206331833030635028284914714591708021940283841052077904599157489895379175142744218655553211150417585460249433173826983008068280546974151313508666760889529702894660134624576283443260156225318870246744455107312728021420088412753993368597630206466034334662068214427177810945161740812519814489049005797707835805125039434628991211458484254797632647452893649347661734069923624289368620319900325890569875862063523808172047980635928803790786451316842174913838905957534942911936194218490871896170210855575010060917314736188445622484743955735788752903580652230968431300771762245405291207340615014445939307582132695633056304731883693752049045607344218766573895872962920737280760149131425444807291810873798665586718063304883916917859320441800805259400536598390345890283503343645003033138867435676392550504975913487997892966474233917618780897071886057121752111265392495805034555288398896885323889999357402800319019203691501566487917914211563560886617131534917130870822228340035689776285699806749103672325720039913507594458153820868124827976526364353923462010293360603017693959591107684540914904929261898260468022958121315450185853925889133594762872920835450027467588536416552098843292582975718257910101100234327394056751197737295970449310843620722794387851549017507305649549390428790046024340306986599429810377603253184872437403386994581766242973087930496751865539426669483067275448148957409110480202284694310133196489489140612684282781798266243208463521006002482206406106111497502905977386180092301855462123201104459332515294491131502534546512106383933674530752624757277975169132171819051532583823471915660245821449968362060517244495607380496210814206941809005474866066276095051888407353480808967823491932272094255244013252203403123729321771215306924124862849186606103670056417891726193294729656687406358530766853162621426822133668969053425947093779698535202347115124842012370720913614326414948607333855108106755476965794844052499270342639234821177345211991397387913392711069817643451393010698406293483741942698389481676006448037288291047546964699782141735128264025744533859418252205622447114270418362517859992165211361755290496847234675181693750431805822851205477024397291964546329137388598758300024276178453411803595118870458187958519222839395785846347464871456941459001783017903189138827934516244614217194524411713502132033455059655350779777929538310169975572430142223668443803275934447924472724807049281372845794214657274451605319055014627386842435625778813460441445248593408172553152084035682460785471863347783632200789450817800415495077963516650938515085995686901779958486531681439185447109418364398643579503268743679148443448227236700537554675577060744997708185621174609428531037660839453232163134704757274488534403806556006647996393219781792140419164397296244617435567033502409319093686522228032811519702552254678481920263178557622437389052959603172452571773308889667593494523872112226480197816547773838810600408933607507502739630219047409096149855962362830215501925314912116820288749739150429277060269652722414036937626793977827255226380477204395779996004654599896019170315616324138496896069882818299929684192683088922884479584870767294347036248577210537901073865574459071888639873311893423934839534590037045707448472096632361191997814862902220670714865333949519981127518457810333081508760463116950347983576267286565308740209558984481377844689010702368018594062667863455720958283142345415926064462505874712098230403648666732546693918180823431911225070677689642494851993326229466714674819506065232767051931061221137025314071222185426425638578588381258953360637082776084485562032888828138095775731750822191840691270387980362901717533555488193614235119092059573405678813553818754843416815671559060686705748829230874346281343411984156646568971360062487140851215815564211197666766572709651334545401090701033950765271211901179509084039879277948830311006303347829533577067988562804911875440729003264606060705854220522171387487197987286161576310463594872995088839574657693871581686579660192413116727206604873625952070660218921052508737943783732438749336345914347906137378666335331672424932018176929636242632141525157763981816853797347424153458370455130370895347910439055160133579280339907282894689080065688088420168153408913786061230017766128471468290943721002214662409534056565448606113029696582934015465255367522731287658247029042480776754950023783833105915074089715127340398214816621328513332143890154995767864671103053656741022957023750642694522343676769465408611019916003910481561572227955696231214228914660184754731200322162356732678747100354124841174204077154124302097379850857621940445209600165375342960797689761338390943068500878981494932285248822771069208293334270566353742048706418618510039337311923722760292610889764138810859349289550351173024809915948059561195853800059753478616340245840331853898037075028588692254039764834527043947068113334015876475447733685348156818267030207789629031944435768798154602589920769420380080381449373268835746172847902010338667571389754669288903432110529471928927947149658037644734513548858509856217457021120537797660033647710479413909166544949338759655451348229674644697558732556481639740976233907930675355828559633401981523639710558769276967229037440555404199363416139668088651508479593443624827270532300147365333314250855652557903395618942406608279147703327934614839281116532547922259210717822421266956164577543891605018041965597051193155750833084605605839170908271413797832663548269191715272306229364835248992784209821225068059864607140192487346873605685827079515645039547645122790430914233924290096323380172037168579095960416074578285255095441129408575770509332531470529253829133537337508397631181063694495847279084109543695446343149782122828727992063561953655704313312436626973306735596392975403131504724723660136772070205465425184534126208260181028314381885975685292702925102705732236759482301540214394469418555328491935923740231088274584227140053769320922721122802640459398869988123799775606563609746553766096584195840755431187944319903698124983217130086664478399325724675336915882860120409379374215899874996561265144065591625128808434507314504303252542207154070388113955789335490422508554014490393676879025026133077280377499493873777267321733950400213966803724834319128643229994934687583184899821318850318887466590106710653407000510857427488459511642523418155873187995285568471162781100123562730851699242974499080667684853681776509615841249188994850484289397680383798664483346571954905552548762702573274160132060296232032109921791024812400506891257427460306213857287884639749093434463538461546688717002513778849222574266180444697517127292700818286736303451985101766875093475579647511832971547267073640470713302425141389150119545281167979227846937851612489232222161349314617176249142468996106514016030970668987600113056352394922570834691974664790667268269928430173252596280659560430021916001795930365791319595514291365809030004358882234802176122861559465223973972842098819073965467515625558081502976698195340942147351256553551487361718627366481859372345300434725740410293321441211020309086194618585351676507185521589636668698350608319387195548536534539988049786598839990893398099494822982432581937393113828760971141724623601923180491274892784237942912455725772608635987314343208722163699481233337395308840408260920787454949688829249843905383431533287213018763129272378868138087477537234252684441911358299652911933776515865096451855517335543051306945316520491123266715828179583254397885421248685249045451245067433034101216031761519101798521967602025523619806903276187906117756688198320569069453471641306319988254320274279976575024360855517016505308253308303857883754802270470546065783883064047461336864235499581047566080987396784902929820992265628197962297642641946211532676499440407717802424170311701338983692024248917268650939959402736158688527846615309460286590065357783167784047132297540323974247103767688770601640217101637100995266161958150517444783298892569239154236063215475412286937849882773135589737874080973415111530536925515500837661303815853257363839778521576386554754168132719529444444937281691211195297767599647458236306232089475717032388123786671129612443388604020116578528267007426029764726304455488078830985297475511039453326559638434394481641423123895207596837000251650692579833454401806414490328539732735588170519844819711971859182948785008101651445678703348615555206725133087099118190111160029501517733265101363999433433777564230336525886454440758384228199514477586503162478878714978850182755374500152739782349150479595687351870751796994282819756847752742322207207058307795611168309941355297555522377582976969802040608029463429654267353714836588773773299148159436565299151562091579804335347868350691580861698108301954143322086690350000016227159874338178949986062243001527235728389399938812528379995231749817604041179962695168730688730159354329330885208981810995998320454436702770229661643818687262772435743470541525030873120679263106994629474164305131538406354592818036093124766540169919591445569983224011084210323599410675453909407929416424923977075120544511172862268796585716068390622504617155069517776776614492474753770206812538297221239788048207401412259273153034974898056184218871624039159098335096487146100969419954546587969556076713271474565155576269163841206760041938897923592847548889921959978432142267348339659777838559368679662140274099607257177955896304531889095547368509562494482870851433042936248639824504262688417671660114299726207491588501718338144667185132646686630199217963924958698677696977042380874024435656603280097764161660437970613850058755206188966035248188041384336504394177511994838935688830203799047611261206727318176462507303086874065378902746455779344313423688550183214592797724888415929604964165266606675747891610032230665139413575241546154226875334008720756023286594583063092282734823107772402363041239860537399714392156568362547426766932302386582433063869230836135878485898808695231542861410472681119426569672898140233432146142481883498660704394767242713313685486242132351587611957366185364048392128160767655711507237364335900519894133056564523130949749482866240973578699963506175623389179178741242494973151931640657869899024906266340626338176964069641148772533383746207315125543530281438669601015893946459180764443539205600935714477155386813950488058138629289355990330360381117180753467502005754728656506454304972883116786073830482498736560087385085932537483073185807966041088750598158389585164928064807296586760839770801730632155305784650738953913247265202040579036034236664032562005748434621380270944324545083562015995215155362970231337729819571126518002775942385032370077004551018316384883148972114331590866843063554107799711870789426920120155053674526761517301485787137572831494505288759759437312926766015085393539209737122995017860570836623231069591855505016605580384521406450875410576915414828336401881708553108667063005570480117259624318848644972076544540917101445966756846858789277086563322479577934295344110478652384269781372007449292641738439584697512486742339639985716747462798214143562360889537840352708425629666539249159454729227473713282393938814630653476950518200605230258333078488268976886402022571167051480047478047389983785048254284371301738730746621853275818315638853502176328136549207848929191236959559471325118624297799863310539166874807913232682638597639411573744412069775116169074391504466317257277028517314363100277405524805456231066550061050231854058026261920298867994698601781866677065441053455468120030089697786314477579924964404613450592064580176984867405811338163054393249870999087207043741106556526219134302918749440208006341071057643435787380596983651060445219591259289056082135227064904882477164790395725297536632051732186700291885533475020602588330115227922318488250559651246090948580453358871245639352616692856335764783010889764996791530783986105326436701131788497224768525623266898774897641361667708552254653847606123952738846399663435480061416406444088854549559512517141501901211955157075771322185621607806907312830803677470842198086871918725924850972359753450566618329876152579861532515292327722708870044099947677458469114926707131575452102721440289117864617409921150739801615586800556789661265102333773347604339370795869563523165618995620697989467821343602305504764977080152923960650057199559930493754404720478773522106017258714743675953130931297257305981397806391142649333570388000400532076153547661261896725083309386026576688545479415150806988794636416580652870640035858719078643911612347875540584554026378848542582124849356813425558086792288791171082717674613428382419808137394893528947560956273604906895513860753598916803946586493289447247957597868230177246763573695294000083161189771335949590591934862807319764115444592596748695187529794659687883689884405005026580505409199898041197483672516389618864907025602436070321388515890481433993266010746364122660541874648600182453313643195017587802677148089874835063193026037793070265177932345769203496678947405944199230560552610381456577297424013530045344062845406204107232352542744820244191648402237629382318584360932495089548995251969851363163526870568120735343144955083885016242527254872675019764136184534338088004534156899441100494497380972013128720247836255140358689892088384678560825338741524390335648894434831588544559392513327345200289538498966999432757285745528577076477146840381662992706780543265541991227926809090213788231351129636142199740285217464876636157105729242419461095015067709068349106918417590568914687791119408180649225814696864141838021367177397922424297650385612378488711560773544870636855857261618073771298311463229622868545147127031681420960518010070063933854822707373644860930339890829707354676536565808813064331186751691729046578084661727032374255565079405898847847026536914702921858833724872249453176170876558497053994579273789467851248033612722544271802027207087452471130539769347792213079960213776759842947397679170564095892020352728981267346966801707174511336706603496727907816299232794272569794895718782307299292392456859057748417229243979772081076982015780753978216606819776453387722874072698901321934550772932424590215900778019167046103009509896387846886460822626975693260269205183907524138915450120493281869749853832058244132497854611250392124300927593665832723459345919605553356347258543706287066662312949499139704992986186665590173689208972821841677610234852508908354427887396848811121129875150634910455907432693881094353851553575351169523733463208903710035173171547871232789455083783673481401260175584186820413975864747557847796732054102174443628380604287636043155055687484476590795276865541608445318088726745435885094295885648835921788814395687983666128384392507928688318371313245484261918898789725474023042810379651037029274247309586498498103464551453684451036797414507168537635491405017915224168745114888862555744250016370923065005601947117923570282026998629508833164401023051276677892038926907070485931379515129087642574384325901605889304234897022277042697117296741385210859356808671910096267588703520264935463281827016215102288900099929593105160068646459220046342099956348857119123378525850962793686588294087826183760341077605880438539020129228537911701147011437107719312390920244798612371416109412128802110834674245477841006617850863859979420887703333582345332486487024850808727636045974752542766382045373684483579856259978568508615351171631189078207979139740000052874641648670180266269826722005706773955113148952026851291195072238718257122200020273758114614839061977281504209613931888304440563013559022349761674249366643653374253113583687915027311841604028137005793740274703756565756839959323052941400608419156162892685038352318745291205866822673738095871003398819941829191213292079462263927419947687186080899806430892164313687748449908055519563052232001088751152505400232820319808437534407815193395613474834773524900836080855651754233855526371126003180801066256359945981739975117415415568614255677018480004079136823934178075509679921932821572335336411775157750415546113655623399772984977899458254189546432425437318268236577728192717608264672020945340851727836956877813841429994867082415432623519313399144906749469334294202618992970938141065687227101197730036590515498484587386943045102907610777685505691707868896540253243434086926636383155036149057365790717121755040137912943759823628345744462938468345433842286965112787371920823040382885086822959634855652388641654330501770251380849508269630790112846119089947950780186144896763322326305230750531835892113741388293893073726786877895742079725909111589471148851119334990501569627809691847611421702075371750920398032065307348293496811795215494945477165216250056491334016590111990322561546194720042575235982265250217118412833306264915387847919374263448260485486047923740466589355451852488700733195856441814145109716272825849185911085693155234821414567547978197177566514757001415364897171233028177749509069467478230943558924437683951455143577114633959557651100102728651731212803051402110251060467706431004786732370527315190276984987548408564461348720193505166575585459087867522291746997439886891212103390897490967540465970388899516138073591787984789832641133655252287244803156833743300259074124262347177939257441604709316399980498563607429528282110782966060006742923525336116466596658371629855803591887036374944849851023807043615796936223818382031527157043503966233414892392750685838321686606404737332101508060985342539293973519551295111598381020262994731984887619257807964506416364142653868839580059307521054017925281919643368027610330310086552081632821532566724805694649179025496758325565621441802189064305923668274396096663964798847954497288378206805588369013850262595037788181939630270992811581344354876073307600058758033035936313893201940475674916446404859331005765277983632783335577255811029260679181686393372178985127480034906239447552266169011955305881563960634779453216498522745330081320125017528073458046941575289423328883167699559245950875909035189441887945176576757879245802941333782091482278160557503130217995671945987832730141299153711591994999802372384171728446439034559662519448012473714828338595512757528459718797175284122799927310032218256320533102769835407422183240798101538985424618812326624634595113529535801018756058754356741453216623960313268265442284031518982430127887276230634165083428534299271385531976761822688998853749625575955972227910690579115493366707752167995705265968935974671401000572743568335798889479687842166127920523950222404963939812026232794550591466017358588299050068209833728190044535018756412343500694228683977383961858561328388745666799826722600854095720819139597396462699338932551230574585242877885142095529198257171655178974999890662311592315955420298850801154334930683887811212139507319820193907507506816226798308117809318067922508439102294164896926385665617992393676518356405159228222479353499975475636064996363024755333393349116810509965315357111711523073740229931163226857784215649389121994100399134255315666831715936226543309425333313692585588972374581926924311718294611532380845804646865788307695374233441108242028513962868429640091991039487522816033640785761448226806764498813841581321489844663070344351885879126343357251647536489076714370417226305257583773646796930360161972963519620493357061083364984519390098986265091363349572354289903747122953297871844226641146792058635788614953731642733454925969576430199485901831681239963238034377304963043941202370993903390689278207900099660413382314598309171829298923793795001269063090467256891779588900604138636865168163864615896387630139382506620905685011007687254268508696957162802497607783381235627615533603680335097689283674391334938995532992126742780009288459479186169217077176650219903486996166925404781924674193136027525989314597228917710838203475036516564859544636010211291318324198636230919946609446022735869979150517590249686486187897279883349467473315863230013185873944729481440968555471983922837689006003876484203579467083345149762253596057739141511240579292728213529355141981893401970450153766764993914007287276430349416357757721705791930500558315521834521240146205826161175719999488652855127726549733814289675997999268278402376726903774214731241853104655504312582082706430013152543398272532081931707076311525119759068688483213052026280416526089988392692064692757712475971451056742134510506492945250433230784443746498869315658858305032967086850757660544628234424552483079815573256628702326079835533072820396119402151547054631998993662606779703333446759942434825000083096935590817846242480971067980417968642647951585851560081320051328495773039410501493089607259649145749289944741571168624224911367101065203542100949133685461448473436030861752085390251517409565654711264415228409399125273295628627840335734095856646421307414517618106715017025922552467229678280988591243324519605759971238762187223993186443445156590791267190206015983711077349634221308741021610159285113096404845211855446318470481085625803775189482926230434961195040976866971496841678258641265526287987349007973120017099513326846282601950136274359028535101810951198441937764493485437164081390686803753213196670581691349192294087074649409598296365365298192689496883064804469839556710828180718313948821046973999936348726268672271931209035228351782282894194339407374701283850852738900491320276000576260810787442913668508140196242734106168859525309144769832148253751623611463364912088822013577140839021954675722662273843503843955630224337772415210144341799394242810885287764454026967281939463673677817723046757537707538526122210266162102009354020829468812284837521107373857235333711404970420802584976264497436072779132540816159562213954942698802341867387850198026008406450254683650763976325838829964515210556754914768458661707299978503006445760208086046820727886820976487646745591717317971643089503223641816468273870073416830668061682229596746972085010564283551399750719457966774701997211556986721590877951235213459405855628917880563828638697168190939920392053661788102485025977163362850744483623340948529970238416946709379489396724299176491139781899102399484313969689537795755564458952462245920154610087770456273094520119957301653099155269227075760561842720638650970608311437910335120713755864315081293078898973943674755180183584257643255960033954481564771853955052387367478231515531503468744819391266354344845400867655680972553275322449965867449710300499898312561125162894676724926706192911122501106837583734278605759594083257848384689921143930414239382847544579542668431253043731543996435392592613759338195136405578795479666265165081231836798807970235125624496532654808387065680158473770784313963330828739664398594290258233903470116910101988606814522776513264490219531880735788169960366744344889411285679396705693247980317968934041633178088968056285905961604280943805407722770036274698438709325173965342830100601094385766663845010688489586490989614458925204313098434641287565677327898754268032193959731369468842337857640467960031187821450807050050900177233912167288773986876349890795176521202456440216234540069807734752432942113169187940757881205080020276980337538690405405202994593080755532597077579087198938886828927670112486796813907822967598108537210525757487136426268628548035461776483800678473999863849198902435640683586222389266319698317230394986378668746250636119430251520604638014123775063262432012659814116775318256498720041558979828972704460366142573929017635262676661802458430759877141120490892201544124789137765270640328940639417114551999110237968824180133739420602119195017076539022195197826974743931690055746431777698232357920349845115028137056833384981190368771312530121605780844732422329104746997687657462422372128639611361104998433590704954423204230641336015819612770727073302352366543836849461173525170545480622701049505197260569658070381829770446721121604863806240826334708944589579618260158288924440183669679261718871989226290307385494480749503884851074481129046224699970749289638111281987569338163717627380544076346265068377739598250430684805772086383127002653411367036088507526181642033444837224643229444354795112207595233790905727500929266870657794608007094039366087867328910812972741882119763016732188026750858532714348231233444904157506404279422060483058633978796925929195416656108890741276368847377140420404222205257115109156481484166191337737626361454092254971565135167866909866559982878575363897691148009611342269580432930876194931671224133559942131611174328327012941021199651800640743866844138348908560907274770127061901173872180915946907517254003791560264210836091787906289873659206339371788561262781839007752006354490217114672508504055646740237062928250290169575649232821271743180711608611416912628271919870859599279739758658512243249017737736201354886732202473919035640743478278054525730177055218913912841891127216509908508974873251347121218112628094756886921318736170037672539557858432438712839003810735622777099125021796750050027590720188998868866508865703189564180788382690657488112703306978053971735217917372033903698502449797135880225500369896668195827381277231307588084264476978770021395990917943900530525956710583076639605674911776545140677164254174695695175543737640981660975340522777437302570657007808328757635359386617859876163695167460390965170363024204745265892813228241120190541125120556152833786612450127643473289786646962083733241659672738977994368108414286050022508499294253507959955098201316854162750991272254033277108370740029888150395951193037979390146510991904681181518850504489401242066638105948104641791054896061267650261891643284421739297257591123680625454899400434216982551222137126047170806176539749166453429751872655946531322374441728431105247104798993144018993196496538496707507904478866939221907301860969287893189247307369406732819595906487192911354568430946814853933961758857322340692396928991136423554764573822824631465569127313299973364152858643193208988139357441079745651731702728178869068121816881014197620415296003486364223961115367858255871975257597991180528441903343133371792441947995079789406519734838056368508969658790628398240593689968500563290511366685103692237965203208000524142984716987136368506559853848659274917111187257340891679717132409717373167624567212290181682929598724394383976875260748647637381735438342929847619107251060015121651599953348381334963773955127351039585772260369141737799730539566400835012827045202044678207845641679548077442541588371250316544783116000651047130457701395848776382788076578176904780948658669797319017386696898879115509162787149846002339982642336496196100169309138117521615449723725467022127323814481048667335823097903533846121934195541726032940378484981395648227486018062169792448715523824283004601171533209891075025761920155369660638782881978426643740526877419502443471814974109941357042020956896753616159851378107079704225919171868176590487677179518230018891594509776484142221545911708560669393204803541625177978609894929567409748899588058384408324850302144378056911338900797396303519715450334296013085184072729491464980333825241685838294142819688448251614056162522558635470178915484277286748300940471888340107170552542512245967623487084637873420311750683842238016656076399046329260281197460537032015254501103655782019176579886422790105162762701922897509465140821680322296049716638041199457147271853634486699957363088455286849748996572014016925663410899180860120056583986686101051016885725655143432525482588619897990063431805625020362284295256500454992696905133325476598996632803928022182972047891972190345976185193455826531976787096471118955792846995705696552034407258170453846237674634407291581955659030601112068623833657362460429701185024563920697042944470403780301218440152810981011028630177065212604802384697191620846608632601989996148278443488438147645039225861547081188861660926103862642964580670813017286074022822406742473551659373064132015838019596693956378392551693058561691786560018956739352914437646713539595428958923697189908977484061467081329369800711879210109675380409918087080407232240132789631923154757081994085038270010036762445261953312480399543422682093839580981810521814250993317163826547255834338384084820634702202909596482906174419673454857292672645228427284074784827431823935424792670305790940877927663669928971384243673012012241980474443283532512341988577270604428916520784463355321271667275138650282825086096119170495415510632639190082214723926724252233138427605002705135601272388970808501657615727417344268603764965310609808011591836604755904403896131182388213262593718456204139811753079051163684642823759820787289732550613918702380849157617837461406656055290932178210840719423416126663934592481670793428119244494717942084755413261469883597185120895882176823752776550460638520195631306641818997593146702442773483401785008325544131027522733637283173892928014002284736142878011414226910522580566525922253802939721521207149605817998634810339944713816311173390832715685406490959358450238217094207117422483198073259998230242583995521362465710652609269155353273737399282172272391441189370736278637782287373794679411703278722133095785179338817870953088595641625692817573935602223311359265683364947123605240883835827444404315803652819471663942552770467158758839970060339538001282720994865544057485255332047034464602549764281149159802768732766393823999419190102681244953585306075539497189357235021606771075974349404240982941189109265252122904833718945317840249086631790074062425747150847006310566322321275635732748432190396975135218589259299230129213919852175824391537008408318917182713289481641422957289452636897609424439455102161709718768413641570002345020147540541793720597823893819679911807861333911460416648065400405736988933396536854607855946182234834515400435625740603026567262455771005400256363555293562134424841589784437748463370755955555363092545225159590741507039698759445631926474004004748028142793388145900590671120587213372284965061501611634146697235604562633481898094591783889974477236599553951037830240041830801734503383917499550479160800411830386761985227809030137170381567388855891762179121978004224229536946611089373894676641918058267688196998036362873536002336882387213636641062082090256502277467840092073481843786847016095339873481031153973729613034442072956574749214029946018856369449881283247621009793830149156825338066525655917682909352464678296431830611790626074621343189364838174266500366457765134528357460922068842015352089616686860895139761799510246329569828570154432402769210205228387391892414243491264693978155419442139621952878030542204690208741474546520331994715990306961493440836579651504526926458806644833245232307119522015369004539262972380363039205933832367914060666628829611519690842875343798491023145490338453151293342247193286848619175984195085068997519777876163358405824368624611055866444033604626031658046310238580069651166848258990206366775781346831816055738515295222278226466889887254684486951134949267309935040891065010600067564317891904653197225819570585898750656854825699673552430471182481364467070866369192794362998309088775326937733067239941319288537539759001740536867969652124717330643177194560450447734362395353839176977039173267693110684108586624361342252877964647550928637894517298775619825796874242583724266553287285896759235109597462985165392398046510070810198867588643947015477856230791824692840596090231869763435218150584876952603905734091528392959925758389566503309261882433807985511794026412363965777584870548136990416582389854888689908581562778661604207741313995533224911271451743812697863308483656396727094890884270295067575608037193339567349177716566929933452270200839110970815490592678988343640533459956939778947564927084958330054075859662084387798412426761377449530757439769698238245797112146821126626266491866470171752162058975654773135662575370608376076945913018711481421248317251199167207212795566083878756752338612126812692150373947660418574996612749703816408706390300240343615485200465520727254285620236172287316513957193383280778023225676199882771525064537506320716995930669633385528595087058319697168602368108279769872747253667994460220400151870280580422113234658894411233611081659019880135215930280930269386149081145633352546954325794204878536784933314888881105909927714633864438672683463532651849762577212837071863400960515554965221632085435695733390293733745464387084033630994497615639640749534510336826141107081287699734955812587280397472174660714134530015212130846387487761835878095556336382569730849982143010878262558368074285528485726904784766847397036164601459140592331250924517472950192703946995517157600782861098201987513949428863993777053112543819465591698713568300511928663480421974752545947216911874630361775688925025551370701151230568410234076388263955709469750141972447350918387596616234709902346168512631408822033126416739845487214349537520588030068859555581187033945425637183143629596918547106594037687990353988363089805157241689800122785980884467298603968217467686994955376878085249924572948569726814446748089522360210372745281990045294665197743440604685553213298956312309261914909195928321254342132290490518994263303550545050719862371229107754938336699759705463704787955960904676309178272805812880422831250211172210971353061903133609661329229494796329532462840654700840011576348456678178981384903485893321099569806392741292787559018687210266509465900961220642801266047829123362342003230962638349717677993730278665358096237486594819695709138186506616290723773682251968244690953667898666751705114457753242006631558178585780426154454100958204392572228796834833745506199554886714850746503442139028768568117996612976970282526761151779529691627245308347819685379538141357343317057564302310433003376528846854005921331358623108806921568118690424025663093883873684154995455709474294197732246845515600611853997466095486973661490344831774509863456310861915139337454759612709443485906870901255198715382376846717843487080036838257869563472826389072380762513955375187863932541790077273771704968693025804429351485316153500477108923552948130779323297960440744812363962531578730521279400745371111671180317281065339154417993148472948769923868713579202010867339415665509049837707696737078650683528783420942346092415827703469016004763703371532510230608159066522860617134871343347485027121518569911438008520116200980993477649441437625495770004253273988597688884027695614069554995959040039170386292770003865095218330880467682413334344433139522097482241227902459068609535806076930140481108454890014612466900505152080323243960546352104778763732937958804964797419476381560983065013149013814223770665350662295860020276485729008513256614315124525487580622312362897152099858866893751555890801215827024952817684001663939388110376818951659390208143401657540160373563909030298737446345897033234933100937895224268505582037129572355978072965111247123700851457256276394512695968029277839569264521735941448834146825617514682317740917161765625054719670001398347173954979242088977779258903899138685987854110071866571301970872235293296978230372369241527021843895071588717297990509159642256635477333712821226293815557706798224603036962266949155930694399073529882498786831991616247860153009290663127694085228929319449268457649584217557540396265444328165098513456040406123729592645603681977685659264315015653804874781761898075175828027070219623040505530736973245647163705624350000420860284841649005196435619298763397451388970807417849714290157800388053055490456347081534139462974462072921538977273568386870042803381321762403469193482398849359809465389553335055652243648192858040124451424651902868696792546895077015748708410569308197691271164269368785036621394317631706444368902762523529117453318533195910390632746393685526132552800755243450983208209078317708846983845478197194171393341792786689116101993306897121805825789779170212960353510689375701545219616802159036450601037737175682442257450429871733168158888865032695333745438274992166625318338083114249528852086428276947093482014615527467251945267467604639471333996032203032371202502960885123315842482318226830984869262023297792105885070830861395642070361311391080939458212705412246289853600288043920689894138277172898017076310446107180727415845195850812669813399352516949718992227824670908760752628171298939303341809812549171568931579616306291153011385602071149420379519614761037676343060996674935588634182147602063031038548129525326493432803006347341881476157059820957728109082810507434235175432920714997446565004329698105105890767125364995048334930863652062660697563158066737459683844882073303307066268087475047128129148143530374275508332716846247760805320038444584366862081544228334566456754036589486012800806433088220157568863926008362664536522336547330371488310658083474815615747858193767396041499376517516502220761980247563540325200309094537097581346633027968997224876951223609025607360206395247442416365997723362669257129900722658962554596957852752942850174789868348627913399591746339660473759312229969971599138364940142048288355368308420141924397917682915990855174593948872550531874784695942802049821289466630876135539815972760006713928280808808181518093483923556547460188878093488012280087850393359905277828736514217470646725317738191152950616987433282072411946991098251567432530829097052029917420918860043964820349602539831307855307655349793078367049827664053946987847833688260411237225264547687219185817220568027062315592106809721726943372740594533822544663979664574648952071341881852958749013982140309130562761187849336077218451570847045168708501254020204023238964617023384813072450298738202960998432667514625661937404886233191219975436788339089030543479457062256494914417882833103346385001617810611595521342653129661932878708951974582729880958320928496685863645902132740283418046989249739769935480373628310327932023836748883897609474258522386628450754592910603621547404755073460621412330650692763868950502301510051297428463482918224443457443490398823668007318276230271979186409372043533028845613781915620919341040556155248863539542140007587439373718793114712402494584505975990010315158072781796228618056472248579327324028491821183053989794944077572397740471675189062155853117078285500818025430392879169762897495372788789959855873825033181019028862871691934339025846441927512307932611773974519130578146216831414349787095581804934498056625214480002417577501825575963762411509714627190588504461853575959622354039078035889481959830338576916388771216478496588429327063066540015363669506043285644768076193589917175585952244948575351674879864607423011377371832972684374574825287397951891230192031188766655077674793094968933999216014811914035816421252552219470465336446224157023364628522035172195774323434164765498166706655442903322220572495440586367231167724201556995678561846209826474855473349953388861695279627778362142888184071901238743763956034373078100979983903904863732135299631596087184940878324066601516052636231640603365572115220859106465870009889380716110270597429115735694641835564333011138290319950404848483476232968169754176449999338191412228710872832775108411877438502055535945563791952302358487441660898938071506825412924373198335476310443634960889914273470169785285181499289148435897322817158261170981009382528913174944663821193185100086127483976581375989245418131196299427232507568089764747734451800854294894661195381079725128354889976243563250935986165210342166777233975283628032262175653664793005118750575425255584968582259705263823077702416912091351695024527026636964567537126835512498946699947334896049770366526225886561780256880552168383748929007842336465935603449001831783931178876710266408144762518317597997811619756298902432021694319470251674512968198099219951110771031856713002705622123709280435097032392047575201318239972363555443474478841547725866181967297308714167935675419152769131915573955198438101746881096439716805360059448947305006642989506828373073768845602389859906836335188229514032348859809170656436406519398944334421450045032834444556749317797068807843603229537854974103381079394467653344128989540103390000117906395659317731231071326514505883985005356424246547802497823645910304380535384268992440263697863377195514740694595575787639123309540573780746460157759772283270488052629664171879851550500762636591147074344625722928367827876287707219865338795383884665938821578916346795899615515124402762390790819884795373551327871871565508155482861876679451807182466526937537967786297006355281599497794618015622898167783718727706329663030896836165051261616038696456359323432155888813882206556259344834631292502618275527650365437133517799750608257321208958211449833699482245709457955461693114876136364641040307030735418969723340921202347412572590212167053513225858055090995215687056038641709577289580195836735622794415014000987981013145960283468034709687785140275897285427319518607538216244755242226477533140468971051152006941020460192758748528616837457780874276378226446635157090488572799509833355844810059301140884939001390373949178532351191870833693633441936600598555850041897236481519283723913943790949820756294293625163034160219828949228141935595856815670870973328768888610793056741475692897515604727478865397763080292131439665046869978740456883048415160054858371523484736171014342478742538725066677510260875900349370106980244153345917621827241308467713382956026671877504929709600040628557018784240627381098153065682856543986111856768790433666864280893483338561943670219939783225066994782250569076697026114629177281187594359915876132459548680661504337127018610996538588436274675172855791660004793306180999568531101239635505809364026090354555600501773732612165629556139085363329358500021473072282827682347267371322822069408025396158761255015055790833448492687909573141685661173927362387248510853563147668765551939030235694461989035039314783736404246732675708886677855671752809395589785070734800608071295757247366562676281825285042652342072356575673133728353142713365942861354697080783576137725386076239112297549668840320904968966432061799706631373023451988013476316476395342754530620437257427259877369444744622906523663226085743951569012531318454826082895293153617061586148775339902732460222952757984702426239163123042639084977993603834292674792564996952149926332229024990220077754768681485865114847356214362055318947254751305143438626186403536715646102021884593742467598981010495651329577061774092461551989944252869722369015770955894079339942671001686418617417511034284788522271378436098861203885570305832440440750989078423419630118395407779601477341376230603440680228258534120583022652262737750717595033027783757273767768728757210649608647045823471245285090924262063022708567423001008492825256779179710478391663421902678427680141779280628133213718944089833405384978949872898057512596401771036926163859764222253415685790350238650252154573692696812801979374509251091632427254152974399732590861572679033573622816337905190720493367293675556025125105452851910245380422747459136897147099254446847229252231378510672772977465147464245657373316038183952575212427087155092268066301707916994109546738146766187987811697078137669526205256942805761713119659568616607662094568213755101277119480115125264436383131381646523273887503604580217171809505652861527683083212861847671389602775160986190693243937562978639598190260690793051696522466876044817012578218138448439479420771523159003308152767010526962992124994928525579126158445471938784998733142156521121699467543479736111978081953291385988642038308937444527803829347374311272428087581377528530935888385476292202194791222392185060261316242180332140025669528297560918956725278985093581424547081598975011425623666505984023878542663123548154221832322287277631063244928706605436594760000048006937952874267124808031593655688765299582437507362036882494125785439222593808777271650172450765976026272744636154386958012053201365285665998390983520141572583772109650389805257245775031208126412941117779784054516224679207818123318777057571729423846248919243541715174834546538918289709265403749427372907089891314285997558427959342719290419817958170648244569550182962769340318910775847214081754071108145022878289768054344583262285422521462031216491165205162166047259007532442774807469214909819412073071399253584983086859737233811597577103510478702406275315399311561947448333970640035031264834744498191397533010961265546192842512875050293838683344592614237683810079562532842883880558319989540331599513417400209151771616004886511950801449980872938015046441947390870228452577638302812446922657709308585123389884742679936847092976005171234083479789956372754297974434307398689248340063239822891096070182972529832844501442924166106988680716609601161977532185108552259034656004421742578689438029361099113893916364069443554585327650048460547422185332967544414238354643031617662184854753208250419909092472297357712454156318024053714746043666703986011839662592898640229549100111057646148531954904736627256535303658786225910929691251638848557942515189313581216506974724136243025031384468525311938873881723812556713491565070764723454836474844708806532000347439441337083561845500797880620835089680183158420818334952134573657751319649258849031535436247735224913657204313608904779676248686113506309029627719138530680528203628016177868804374226395017155551059654000440756846143611182487430870534771726853375909790466233666964059756491612093953876145444928232449607613552728650981106198211810996074696306651214835128496538075003834004502868078906134096577620488655315376009029349873033710021067687458243897532769834792339585265061134948544243581574474703360650726775093741505345844478491047334807052992147998333089560401542590424607163913118084956769414636345630477556465513826911555463873937264259951992954702759547906585761624171890503957212491344405334107921729294362320848726816711182612257350973271369882556502453081974519354994395581106760386905912625899639743900444207385301806792587933246583387490789202076179942221666077730752516436860826261298469215531021939128162838479527316321397813373987663094963058604765279518034638030239237014373222959719955632815864773100541608899173344121192408705153024634767725971982361630065722198969889915867803736380366675061279324008867996020569487025347387976463154401427072495654736822708300144063519955299463525377545799473413972726401733990615412201159245463771043434627962440447857297498297900886593643431105155841799168772386272528235686543670083601191976574212206241129560199083199240923680378797197139447865931427727073767560451701203997379419874336166669833948964126297030307604488463019141227293019821757942004569224918019474942648191178253038947354784638035658481658471700754953742249724069057694870698812495034701582399321777663568600257681291607489090598469918117853864560844508410099746368475695755794489157872263792998490724495046039925077032395391122108645108543118359414189229256789384853071891792085847248758849001942853632140984053395248514530169746414726097225042433403582410257038322464831916782843019603139860184770059088488268630370850157390075214839931571238913836040641534915548753101395808404000056791299481681814550178263684564617384630021608062491380093097474416954291036264052163572337531782472746209524727731887850305391806083074381272699055347122175161031423564346241421129907745770009160534111856657502574516083055181558816323344367941782945520588194176473142881143828173779740202322358073336021592941530422876520696062229146464027710285363423988305196770030809285114872843340211613237019246836839257744714692779087937172210019392321767147647451763358434387958315334655078684661662729482251406240651979888424790311274234037589868565135375876520467014767360671507768790617426609714285496363469312530336912999645426943831264006761449788627469869348076568143384560892464399217131883813536275326989930966675646258225363888073755348724645848761074122963509089535007437006906019964615111322606777682136699166673095390933702859504172489786351758447878206629726357264638101856984201562158730631077549612328207495548172392301418331251527290661620570599554481435426624573572774432873405571715234845946929478347480232148760561883750149991342544874089252834481633638954682772276999461908340845581975765882463080643038995454617879923284548256457488417849143788270086980311221593464493204123767772626108283797613497597347173505334099626495865726359435546206888371706494603107162599576038374519670688547571751260612854180085700959414080713615118989221241659352016507394140723897542509897004139045941560425110934886642726673560323375763697578673684237598967282932699445804756766851757232278555452967652898688914933882942092829509821145422453467198553905870668895544014699476441541659999241950179492117802215776067922334558385699882414519517950253831943556664042653129974232508924257203355659645381426101459105566488575042083509515590845647997067516664581924172757453842420063388214892705460533153436606290458835716134401483141523975865356775119845990577044393297754909621014373552711707792696367760180092274356994681331529855380050588129365933195165988866795133522301667285599400233863624425079579631867522271372369397904623689850493788333655546225578491858239652273407967479062702348999665399328684158206171576967366635747586585026876160871564678070000283607650597824214826446980074752940222630406596185927652834732799337579444853914402353801667128692968346749757218235064564910704567944556351055355700371045920627714124855817569927358002050664094882535449022434809186733726442349484921530797004449806281418497973253458921923132346382446976110656072848347712035902522228694724939898833470177008840889979636185661818782819517507410831047141681804360904290162464756377030222927765584109439179298937464459509842915582154518028604462248911392572472881067311502137944526629858828270596115127488440153546109624879789168860574843307286587921070388934289704081650584161332529333475464430182943650401864276378860088122434852142242066071272069281986846854956990500334735272664562150777121576632375494959621885515125707749282395003319760747891338829584918510372294873705584594399622384440611160036728591708253610718238167475036900044374533726045901544441680325859261233251452654074142932317401775009339374699282414139861410861103732383721328622532727448235263331921304812921791749131661007077175622402541011997246299754095751167408134539981415893838052298252959543683202417521890773329334655099855177782506691598814274500851826512645141824619909682523786547201662317674856800588690564611904308633783532116198209279778482240466039392097086161756548036152030240749706728057555248408925550516322455202041364900219522602127293397167108581239958549339431180810555200981942901316230594793665555326447044208385042594417394776680969635561462441070528000131377748231471384880384096675063495258472784243656305017292872774476103324582435429293407624477586655617803148956477093241536912700747880971173520858810973454026912914892594001857317212847678587382619035171742768594304879142619014388526708358831705818298902452899906372609211002972949979590938201217554023798639098196030799317868493317164691996465532090044471415324055189521438982460922815798067940558310958189356565327180638222318355148452594949903676319358555847965873431363247269326389072548360476321677712775946102041024596507731211730222524633023436690904092926118182777140972398327574974515346535472724734957421364626493110232658847709421307198078028944207633806616582532789439161357977249566861176766735975967876210923832362236075702374544416381146602847061021625969592391123319403025408298552861880175902729746240649059628582990874552338306909262434395542527854987545872139047068415560754907469053077095795024231173244247105012329124242132713995764906567517816148833979704347554462521851285671354152249815195920226863597205422970661864663698368854657204069091778472171444871765678699282851991508121020586195938385625110292794324813320891460795089915527614144916366151455868773615783034583006519266195811478386977011137160329655523087217609999816221915269483779170819708727268654652885622825956731279132358484323322272005364832875673601090639250929802790912563548674462369163239672889472281828779249600710853544113060807861889244301466105451210453667668359838625210477533792176983434207699034982283976322142633623508148313312200394402373923717583032216932294471724127849012393426115399761352490127646414283435220269231851345436623507589368497343687222573818093438490559854727281547059097188655849659274094124334941426920428869902906236934616782550867637991939971257453823237438971036608120493988663968242529047635252880620707071134866393890910105124021786711304309526404992850112839778693355323455135977127695508133961295496266911991166894688932438956402394558821922407225174478233809922919186907767604143899774684593324986374683844976556149120688142555563571452844008235378753470292135439265357909101320106249418719293793933579884022991796898534025460883510256709317069717355224090832866638132281854694761322966560043826044653240913618833026209629937078304594264592056486447109545865354991094100575779155818206505884153294789291978861560133304591902007663495375323957768559082709668707061694694493677393276264777785390535374143773882660863953294411695733306462867021548876694889939113107543451489098887539289221521284402497071566962489807458474680390977038046122218698669538701144077189008940585014783885306449550158722742129408070854335046268809252226604989864440270887770532935085678393973647479647220613706994198589926647760758535949759304232460973442488367792682779220417268337315455708061870235032711690040520502206249707537149632050033859135387816538522609016710985939309869846769888844130049701494845630846049448124215915461010594425698783534792989773922688241120860409704321378822429957252122647783783087156126492818730078967499584687249728155893850870420215736137236528488444228231169763772251119389630617825448237022089034387525106930155050485158346759134983160806406345025596672285950217825315533480182530932745249714624147631076413765271309177870951146089226330551081649347968488195012019986503975960266857066617749614691932754826154637939930822310179686060205795058254712447774832954345955605165856919644476656727334311710687740727815227764834888402175116321350421069450041980554762671910761575809742906463269548781186548747226932070329353454289274401322235148867682612266451718452782899864033459254616929179867128347285440148235649670666664235132177510318508003676529934184698064097482540675291609144503450458777685599978479581276083138728531207282374381277486490527518895721503083373746170334917322613534268238375578523195330116739586502435564342352289458957897160491142078759777630278886615072260336129385267019721129237452077548736039195677606755579306597494354569905278513349694886681015055554642772079171731621126903720282428360054771253901195357040250104277158114426596608516925952998487472615812461909817282438159798695257992212267257746619430659467859632272350214932115485752261274453469903910513519611252196381179626064941589632816965910236438765966842748893890225291041870390832322050418002447771519598440191132853807649314573302342265823642491318699545314438930806569739961770547304470391470901891401657543671106040474932019439393718752951575004956758299040954457961874246307706639631730428011017940017630772456323058282378303380195839901256474219662938931033656688467603390604587683186708448414306418325112994318339989073150442050959582246553377129575563583254251073330520946627156954523910859180716103184335763634768280255559777079073888992788254793095513576260029387273720864707890010563041633188116978947325528302488668671804614402015791296331351711751399403603743105112809872743744791864053576692179711415942457085198557787604446537946958199090906634516198847105197904554443998552699987886530469135479784949683300550242062969390845036118969541924989642378696261551790723194179695717748051849882251968923236923841234336234749015333529547613738001510616880267836450108599724088349666218054993854572987534823050244642255073666550088260093271527142665236154826418212693932109883821148163920086464827254124407583395884619400278489964825743616575156746092979723702818530454388632028307777934416452892215714660365778828489576225240477369226960732822975951874428205825752769871832795833885630224709362980688149370359325875494342354160578307015024972360338382885970408552991391123457354461993612008662187429461023379981596373781219254486249624825633463544758179708444501453468843153495574742169083445512897751782545089877949244933884931555502300259225925576967823054639606466576564224229559846867200997783190427162181054452395338143316979115957024270828720154220800193590465499680616518358825835912316716866213313610000268051914574875623986116118127170929546949742366751612081928303978717554036448493223811089043333216481494090448882537482931595258853093957243680956524509017956267051475812861761650299838596455267143329666249178054799241115800423045706301323590809865639217053634179268464853830961433184595864886065086269463857560214556763032607867627489247049849007284391908881242984200100970833153242682757058008555805886521663943437159507903815957304851012453902185743116431654436569902067703399084889967080653240283154239190051983352716427284372914327010082917460566866517279301526335691122659541073661372052762341512416818079546824718460583305615812708628335119310093172184831581802852844629067589197328228695342636550936128111727624242017157324713938846570657714320718943551854997176587516487578226856393028092301633039372918056354220582931059602838820762416842735016455604819459717379201465085609973419981679148470917035737298485706996485146827443334970474694955392850649000011673964754580743057179705002841503642956152847662716700956966074083576977051308909985990425686053774778918784149287867741946690120050103177706024300761786924354916433889506901258402447453899122293197598444166612952146242548454930128685634179825002796522781615592176552781681686120342678126999621890403025783906292310994754510899860779804424511365774169788408194678518038005962821903750149879367547751907518068629665883460466831852200102129428026405802264305436000492510538215503593506817644849870587460915647424310674482864254400396544768996726559866482151198173797078689469571398258588825880144133462485910152372017044059148369022689458678004640578442431199997776173142615011182347654256215127728071226277199309117942222343428633561981268127506624908673483517891293294135853295918254344323589305909101687725665502903066956588076470106401835890176687799770293866790960152956710493092398911903979741491643503295885654972667763085425245804950235340608228854834062645634131581346089721142078576535849841191038316439468933154002583161243616206768762257203180585643264374260864724900735900443672625970107310473005859416664886265222535789898635444981093775783359865075893597930839367844123297858491019445829233590237493225392326311255319358519188025367782653132124869665161483936501212967495043587222239136993381048484779071055646280495061899372701286286033088204706190715023642348789746236926000196377343904834974417875780122925849028704892460413442801037151324754936240469441280322759253610142396133758597660831713024389931244715296256095532724564688108390029364346771222728957501610101238320907993358767440034382544176446605140945560900614851214081880460484814418104919531966535041701836230723086516348335817292665328145786446107103856305954590700655560921883119010468581497982562785330346122782715607572952481787822302467751124068413694169448003220152444418247865288139894221563920593124518007160996896389057267858374560249222734425313664549903202107572668154740248841618224533877664093501954964386788142769478766065197641699847883324964941243197997795658206970000319551442033186716498798739154974435719000248207086707106302688148624964430839429443106243294681449770268005636328186676433809425430166907660178062908437473604438900299350092745159367390854296619533526267320147094418875642369996802978374732409393647163929829789212373539200146541072675595225556934647920419423606448055553144581853525492225561601569159274449969222746775923257744587554012796125056800239764512614235772668671609469100159555671689197800364744932624322899003650665909595789920889525574499746467404877865742757805906307383322732427173847629722233300240874460809547835173671155336952933356900770031926964708737102099291045638676228977961624677191930876047568349555787754785074521011019929980367740622088407613764031462922609147223959691554547890528970306900788811262815985973272065312642876659432113561808159522022303946268083483311979288379856397216919506677163309671602020519234306599799918523306488059100140036054937710693670590733066921790863415360499762619666140370370622124311797367417497264303799515761879994451490056345576798226432023859268322239057109905176129071603957556328506115298435229947490720110613477212040958162151032440116076758558420794586149151427846256189124157896981104957788591111215425158010836070557707267762314956814155029664676319559691468214903224210878064643289351344206527527542622494620525669174816761040141111825012797192509515646309706627108389201710448318300524677270077386318642512713907648508311716019088646712788326201937620732238091259836881492387288453921404967987911772651302914849554268291322881060679306632018991770065985092508364041059217141165406841884142187747402998846164566581166094593191681292676310648785055402763576233858325863488120442479132820517002338605847860502496217023350727206401815838906086907305140970889957499184779608836423634078955765016441126262777186887131097143783568811243858506655811319192251410372436061588048419244537833111928583016498181479342089325086117400243830205328265964136264905115988953770773104212565537373891591242307730363363495001004342021698332584913326531355621887750764602052396835523804725336041842098728447953120392953493335214488492960543124634043268691071535169612597381893781390549967493606832712028589521826880705495700353078834256865561907990971359473774224844340165739611457896882108581156704733455067703416593984906567777788637528985849438564342982802814109901570867033444250066132032751974270248097971197646129168183137301085844526114556853956393711920781526099671021074973357763837356687398146659984278105681875408387334303866136755091167875106499545403602224736126348559595943085689663406440551084365709566296921780309515410340932340597116125930262310436852698321775916110742155220695074969905856039686094695040841806759927637607937445189607347691020851278856315393070099479991301887875806175249382649249385666487269075970567921318299176634033652435882716976517448753798053792436451401968855553344706788419802317273711134708153369788894858463960785959586607299677028825990782077399177227573323945072350093648974250447721171195210361605806845741945440226050499809586751543748299201694569153574397526419631110550433138208964824761779008113932543878648567006052180163924513529196577783367962295403874122475809564835926747093742355199384325501465708534239627626214007524291034800552958493611924652012622102644078076743640974430885947125991895470405983859772489068961591042253448860883376171543732339085901872413793995516762060390757192093606109571148960621295740402417519498773834560570306724796227082014102057029307107513699472867989750980903385262926034352447871600393566406951473663097884276093701602325581415743264578476333412129421992480522572979696780912828407198535103900483775542124621126729101870125416356696089482939435367552397960948576460043291712999526688170688503270106871267325773828715333241714609976895809917687468146040294282451867138114673799499241140532827028109269926233369006814255674119784479725375152104858184313631989801943782545760185357215461468389648879917046545402803556466016252435601529976869020632187664043885945381474256233614332467059070547075188961198154751739228071088982428152060047252380680980256835043697453134769289990251130875147802954962944830714595385627995904508732426035291213312679638161579571440308047401073590437825709587254955380963527341809842382049611516911662360102489656734839791179111120052361565841500317006266277839932096811369581275773059518710808344571386403696637162729038401851942726132737462364035452272214639291581094594187472280344186721635677749393569639766909258028269591842456567449941921587275171543586811153430425353207652686507226924770865925894108965395694770121940899218672901591327089914726280723332825072939247857921395191236627810769900991259535181147126603080373542962928974876550611474448331506534109465665569005706610039487259230462762259865433108997407028443547844314262103410897036435885781016753626834986788113207854162793731885166218758946586672482678139901667401384088214870652595631371243488833511736072955170945730450983654712445441941601553445230071042967052653768419022546541436608186077255372257467970191394488991189514928950623460111597239613428190276653048543277364919650271786030760101726665524606306747363338333292155799973037697653060979445205263555793052465322996867480766702833987445177592891351037911742364691126937956952072711252622074375147164639942749943715875133022799285382573948303932364275146414421177036441804688782651534498567486667956231441626578070205716380709153178726948443920736754295025442439169458450858000156458839452919685131771889822649934873865127604163787244980810340319605117763927333408573759801643779252234751961296443634013492258273295969373064172968835858360898880222027460225430169384865254757439373496573227668466387866983212338406061468017572588755331086200948491970648481396494369555253574593475535853754139813565175907024601013596618327207863120598722763397672540151254954194290567798594608682785748504125435805437335447932143179321821593193266510991631645817493882179153955821531428167797393049345825402315873642897294318626823609721981315834642155570175402744721294193935966861169046932982136560416305628798818471799466815397455538248981859616092412201822376161945966866117275031583305492217531245618783208383152277679855572236126084789447194869033050864834637453400398009566918660090013641758089907287331669724502794819811135377401492865889823472224655071778516095717358796548526265912118725948845036745076227701026443125963982165213473310936237453427559788477079291494058588864949057080657943074299230507155950872490630902788625119736664894878518794017615572935053717174041358166361873157208630493431573014919616391872119504653547840271574538974257758752177682576424689801850557253683766704993716706298522563037893092756328716503802356464877764416975721237043824710921585919272070506316884009872167585580887545100257763826405676251133575579681293603468288171767137168549830793052277671964474442803224037691928523409364705367213388998899210837564160060937168455876520330493640214508724420288922549769264544851680874840738361073305494287171171048699714857524706645551936385610054341099133825387375527101296501567519474008001476728617989754133472431003446430026665623789199508349510337190217992417952207165815099063847290273325456439770332143940459353101742767248487732709845221599680559899163824369449437153285633620999577310096943916656204690617585886327125691390991121112746957383409020135363975891268887820132564881691700238188272055784432045262347368387520404925081102869261984759138255819795756056096320566877427603255481259425833379567992159215395095542213348535641943360947058161237604968637384116977749882126657787822712951075995625433262226418022483049653901830604725878240519868648910832574795346550678728112382242706233981509577634066476486798529912720667756674561837939051468064023301867169756054652850727486558660849496036244415248319932250697267419323956261321333034742489840070286975821138821104971563691607100123979309112791573944159118307985426396177282618098483013873880879460260771681814326676438156515240924887663127918827664017696580611975052035459508028609568588972181044852273626612200784089400015561036725826818858878219478491590070358527856448181831556247433677175013003982640073624063143251859034534778607359226386547698918123948792783489565761234248056471500251924818251086939683414557870447936608965361146264595753207594637324895656241030998757468809607088250107163354868225929410336199724539337616133373351364589241152530616537764532223511154265531400396781817752795620957229883462563444758768116127600687119022661070246998689807838511677862727263059853219342745858788719431855907346291298991506832536802373811780996136104434689792018512747035712630337900344224037837143547939863040996716345512328002913906602637391883845299428276577378266925882980970765145304426377751268854280426263112862091725571057098439808347756360175188758199101793006327478837304636568133837591359851636729723859418618357703822260347049774401077732444498806012011278906399777144476748534947411605411044955775212861127975240629214940152678419689608523523283889449591424245416116018726059423033787900524851807209291180039598775248077663138338077012265814700814192681156769429198615962435681458018267303954487375505181361193804016456573297190287382371435965461660292025587108147073034064816736840237608416270949990501724107632731422346305578811911005203622472831483553565661342247904261826497768429959864967796940761196870690816770863709339783455993292071009666163864850018634467480308700707970277231556783280949339331085645989368070159194224439137010212747443737214882842587331084692308564272574028893810728182171282694579700371726524693975552603418815874013790478261218346143848296582097308754751517183450778917419813699855550336238218877650136080095901343632829322966104327418071170905642600391418962892983723520799798596290756615966759144059638298687039528209232337696824639073714777723070749527450288259374294787646577887643813113135233647088326468190072903058090383630749232568885217929584177035450524078807948837124481834242983130245761705535774781922847765783733272358621757321332293003379366499783344196324127492874579299785035624333839275559673702253028690247577585105057358350493336997208581077122447331387235161113969141126110683405757471138458443563549573708539008407028139542978819622129300197062951426799226879663938776855038378264864042659159177056801831653022152752773010483703086150623409097337788271905422388816681731279167592683881197227998649210037750819770280655120949702577129059270415167621290172053507792454619468160532472041669225542990492875340658953486343209703975152170296917299412141821714045125222338550188028175408747333554775229357306831606776339494933547571606931569083513476585667368446665862088251813118224917056981401298752127161751235336137127961682686604475643172065361814816581759768910168633508004651873420558693025090531519872646237928261528531118047181241785845325732930181442778715524992188170596623856998041786873647914926537163329194497641001230753169656140526003131833806488726451529778433971379111908559755258707295921288844497794565556478404375520861457629117853934482668769729856571158631919090616777431309521442735185580174152452738948240739398167279515764814425258384157901157217114322483648275762776180378577358558725260337431438731087157182302518143006854289336084049766256245384048472736099684736762775595454536024556669108166188654050603724739591060230946317656415606803904379043523633646093683496332595704477691302163363550243732027439027314093590627861670628208277929526047893948446775846758931367568727301462864204621762452168764178152569362892749887666184795800288635633130504310198048858670929133519953934162361890859507632687776271155190584057175963470885588617270856259897352551010178362860055205601068483620488568391768641676231985540584907800597685878951803623497055499764546526875526209271564272608045160976819887472612053514819944268388468060445916339073783068106030314962744366138683100178992715319780793980238474330871454094856827614047245092196113257036720514182851937474542248387014374906848398314453363042300467603224313673510835956595722212018533042311693904186144762099838324599015445675959376091259438621037508952453398618126033222236767828155057326195345852615283803105514225940541912449238405213647205649683423784850122334143974298097159606332783469439867364660727274250718295971521111675479256962989092454380192170612014730475562951085636963066002356150540653818468572991830055307429477106488348689062122034988770681445762208952993079921925962318660058708817359311303820742149853441639131766227372983717500698966581975776303473068780180297554126797127636603034543249198924331493084665810113027549072671818913653590953769833052816698565388038893521224460651735588176331533276775343428044331154960799096085854483021438264594735060025726711287278144974316509462282542550237276244417381761819033071454337816232166230364323276067143224010556824045816138704555318708159463540995863975735281849761239657893229962434730036500108111024707224003041196852998559322126016009823929918187182094357143476626609817188888346274981816974576866791858959799412310299014268574184121548622749583129272287040243737499321352535941502814564479962122736309415036551697789261368033040527219641025720851544795436143417887468937535086973107824430880661899585209415405621352490649293755760671023460668491022224684907717909634598110680945372483527579817046066757677227801691216676505708770987458765552638079942458693483631909031589079009714029939332815840848708248903324557126171608706454323277616972546622531460813517905385726626655753580121546243433568259785815718378396107554537783323948856278948387268525439345101044102362154597936408536017153813126415532069776776446726248116362436172100713043539645190869335212767601727801673716217664092816227189704125778863964601253913545998751710416354754654789084357738430236781586376332050304338758507060069132332099144344306123107558419098302836472727147728168127428090459572198797476559463505559854380443102303868399354208165587775652012593924079076613809559712789595325298852828556196806245033603194407465414550685050669733353610301135117835948248533805333708816844677912769069044809064963144396178823198156100218286170493924171756639330386029875643052529754077974734912708491425236833176841985984383121942271797562257616952252277993100021083104471102615972336854489475433624032395418569450442975950644610199295183534928098657983731319651528619201897220716935061756044175042071540812645419745126127640685664918443478050277688152131279702858202754949389117469391637308021892224964023587170756709164642619550031660565054081848336435902299658160146467417898080672088978267721851992421399253495479648878850971099239940047739441365328814564560522807746480363720664820816275770431233586508574839882081511146905517164528077888897288528710907984580192730752942356794880336581262558563280377358244933688648242669858669788545664187283204516406366012654403627845379402834441556095262270311585525264424783221328907721263430263093102686186862648220602546591063323736714019349851246873679229482188937697199963085013686844634685876901476202285304455497055781735582072624895940160452162295085059199124419677867989627551494587908885700844042081734956618783516020356344816164603108556605342794890655746241514485134587384800016635336178812361026213053996882207570757613920900885075690740568799839134543682509873597570373828570545273410495466149405449772338773599430567392823221399207833965824631606274941572936601979718051093050253102476122694767729624285257744900133954461869623689802664439020137345244158909743844947285612867105430346834723850439896758000198369724352824599281416963133341341212020041571369831452587080998455952504666468444751092317189743264258741961046540581268374680263476929802597522105764736096069505059563562078486752634942421848835451374374394866450431151864578550666645573634893705264598538197890812392391484478445069160541901167203883584903318414864329540434458323281906494151987458324593524961554003927139532781962377841625890710091983193577925973478855419543327562579092859254316325702965973838681062079635226686060826375887168335632422534247721903417565529188335293081718555633041425467514467624919503446300960317285607485583142272331701262802107893290632144118142953467320391566824044077749113454770955690381166708902070589410625944802920421272008076741927944678853324104451854382876591634893691094830837665643480098272819260768503003265849749072920923196714127520435326276238188574577404789065237508703298154770957904330906611841422763268662378337809378004242827898124552704361095864930716864099646570482109930361096164068710172259697547692104086957532068310935088045437509684941648338807705511899851216178951030651040535445623427772119957590103606776538508828942421471945291520835899782945936313570401132748787432059987086595039594171152173576465150237044795932709949696911721104843658784164525122878218330134523601810982488753265965720566125280381840570398652286127638446507423463429637011642769850815647030109640735174139847152219516576134566699770470830563433695775005834846422782823096325624570065911266081123525101629936585942434973905303882677266133330465537578812837073975247251560246246075856534058540164153435112079491249984727457461128497276023992287151080344617474399831966747567979943089280596625637136258913815196506548655776564271004537254794279722971647908191307848136304220930227041745119473721652436412321795545965178356477966778046036738645258114260955835659557737578473738270165049631632131630044217685110228630954105257716691871698590475285718491332497671192847928360973885845017686015330429817992120408714671234394545306397292459276080871904524564981483381540317913399182281223687072128409395566157448755415682701026900772132871368927636820621851167798927183494097059640529477601515102627907254248373806058017108156326803073733697086729359696160334945990665885436950803237429615388365909392045722304783884847342403056986477029294024973346187626684570050741099004165686571316644624065612780924574970508319072477786618535901528716283195186666730876890050677648581837853002346286525753120900139441641253839305859655308296384948221002095782688955565510094962099721814020697923462642834914523283004974319245164726420669093727256452279920218367255321319772172474731122054028842080744897657749538208903304667262298936349575765595400375471971120088898489580466803640095425484883017928814967892068893591631929368197265894602043416510979404598315394749376227733287827623353750917012747099843703156079745268303401813035609092520850628658093735004284227410473844360889646788176086882232250186055121643603452722131517843673997903161917718644047263902819771772120702189490749934300308898103393017723317519347668006119613044139787617480072945927142528942515199081683139639317220789082014459856083953260281878084859605495913890588920651735476298474783879656212874125649562585237622491234502838604761169423537854036576732630118702754687963728386470532160342864424700498445187954750361509217522528560291999003178418076813936090841458903717277376514076667420803799484178620387902119378163321561823074311343075858472444269288339773245070683630219187791605642246867352666977830502008915794583834592820691003322438057016797507144808067021695411797231531443420341915947663214826776789514376475587530320529236593285172280177828051386725820380028071022185251945136250508431445211598510686668625027639786959009082285383796515021854415733410711427845541163657085627878972314706005962317999389187743572797465965100677192697915404837917411558632186218633016176607845077247460100027976577382965932646753511360491054201436747626370978271619961105938215009468021634753065284372242309370237334885063891578846706862817772003411715487251178989961861571307227686251144963057517010924085357833802147189903547343627603831336715037336378776651608632384238781765428726983600113860061707120089755937340861218714391978396376573537225827824071127262178322042870061985526820459778095137893004089912722052060032788050703229055881856121220967475795648629762438744661738719045909350757599855098856258626558547473398674669395224931569112775810958571612168290285161557068691610885805614909630653988919778238885093744724640870863517794013530227533378113483031176997748195205122580242298302178629095483960075935100264582532942544563178095029841215399954610993151899636282188740471979458275784892902929491410178605049649584652042549298525289777053001852095791294678509286404540691533266466403102021146558503878554781011944189750340055373775226323914889567759503434215352475417950150364280000898112481921670084248841943769710772829820955951309118494547776719175812081563822274606269192625760172469166916982484636786895923958854233301718952941540418535329835551409999576911915771969888931798479277995781557841192931012886875005717052711101075038856108572859278329227677724962914108750762900441569152614154930548188175070872481477962895812627429305645616368534065147508992874110046605432190594975732193628886949711028046901608031411264355666455752414802972825594872250465491326948352484099581202749732814555926634203479198443759927233941522207037863265513125935820147315861266081710570829774988578011294653186782230788949561871701213174221980522307967565338482766546480958738743959479240268072733150500365948901901157981381189837039486640089819689901928942082482612283612188424668957004136850313520920609748269484059949782961786997663830744467682643149017913998035011742733678386350175891584109275812147934912554077576128553118136392220597728817599131842497504479759506459459185179034428154843040578673280903826461247087106174816758598083019494326975245847757260036080585615888604224534139573265379051001317971295222004766658105739492304611294963711373807370190962606301576311951638121773240434537333159997344468738777283023717500553924716286801301000519814138062891042746809722624043865195554519612270812727368878571066988553601443971595104268055724604792453526490230933101926570573392165028835827041061036079997818763994896520222785470638669515063048341907511041014047288133484454879648111688092157480033924061509714273195904295317083166048703193433915683807018975966477127070909571178490982512799806083795376023449068434577306799236365254861170813567243228181536413475612043114933707995495743315888917052524258405972801067925971035789242261676489458135736085760969340352737411763341466475331064906940288149578071056046579689541898649929442405088456084664740723486019680973841202489420018890159518007070722016935448412760163843067057149810449905886526724091783487570921460862559631383996704115770226339332279196960181565312878264076527064100378118720763821496366045159213802672607475375531975951073002657401495649530111987609790105696749087579171250008338019623941641274081280539035626687755646761241804630733815279041981165819214249833177492549898888120115748315202635462037254045852685927605734251219364332686815232380662044229863708846779565937687423289774349836215491456106341953304779969239324343873855931434405860303447179657194350078848563052044549420459293290105371219772447131244735340236537279965686205684125958768151711394034773731503400147165059930902295906589037197757247757553395936171038276189164291530582125366250027006263084697579196259118042300504274971799571869614186059599451619883578727967602184246925264646082831770097969457190723610344426034724012133674512692716063299324060537907527046257202850112564483887039228476256818181633004308122643338631993715228835631749945496205741085944678536243617118313936675548279153289667125694643826942591065096651292372275418063182456852159317595683992237239344592404395242959665344357911078235714127884224732466767533588672851737635030149260471786888504640980506144248079575928444951235319184688915566498901800327600333996170340126648923799807882878788601759816399464953923042601930765830331156133370158080906293214925198148223889300084826023383666658270840829844354776339477414655560084690079340974157124086708565636503760196202047843247232988366596262113061679229901333545588456611197681572443979333952394091818899623919310702786251451403669273621913560954328350277074505612688443936036100427253129041404756458526429710421423705096412724490787371293440573366323413527807957008186351873602086321135642520951857477268176299615359451289282174754569389040021134686837995631386377007271160984546185437478110586678550854713015345378762698348241746482588465346761294213293408233475037134752902234121361262981420724550041905021127349830236290686291012231404009342214698984895317399093121741166436907215989637210475406465235538726198373002973490516965217500989726034518840315129979988564619482753264589867390912263935369037617421605024256446504151185144914995479595082246656291495432203222836092201011003256962621047478695064905894915967677340457972306559446664625459886048509441934459112015240072248782569874349234355934516781877257855682256455977329593804518185240501833224027920443426934301307683105513627867120680479802895155157090701917020241214476749672992904115035617471793935118087324107601913888149107143225484472738796932474245292703762080385021911115091130679007505632442851891667415842593320033592089233170375187495811926438782496523319949113760493238840046552387715540634106244036102580933357537855602014929478081034314695729261143160146732250578338126183142996474777399705773482419840375599474948153385369112223321637751027989677159805328550364182826484515831715816290255447279930209187101764328117447923234904012918321583754621929495645348419675263094998407687919765966688470127800527514036145519055068803461943928557298745168469708724706599672821192514185534628435063419485347680375191506802557038042613324362432157945071878841037236432184607289395429256688335781185287747162755063073244275921552730388511240678346850545311614083848539523447672515588588814020777646514371099989133294902873341930247831824267974512991097113992071309659195018084917716651567623556634259941453439411188789654670727092657557117804751978745030562773273442247573288001693539228314631274364290926151088502685604552809991715782856757488060223616682826354209144660707210433983618607592419441167394094755155806061359369428986255994016336771536154134522214954960778742734527651404957020908358179353680716940487411770372679369160825051751628051676646942333398607058570527580081621909274230894277656107177586109928362612541225445475013377195586153561368350304914595566926750545882727218093242635363613996427605463948207281760444800153087429342770815794088151869353024408291581601130399594228230042487892299444288397379693817079861716683545916602790905410410836498238387124643079248163447821407605029222084352238730149858637428932916217939175767968395349510536051059652701005901373934942207884107014017624762097214345728519124820402031040638945928846187497016509921473520485637093754664390843670956337728564508123452623578442791595619821876937765963096930642577659612274092406321502686784844578763538878676317225993251410390130811956638502992911945331555490610087466137839699050116533773101264402680873814832873708843110308499037467391464539898174128912181753548822391474180983281230785759242977229154744561887869316098664707820807875603116906899443575702494206919336421584166531276787044298943254876148283036922011603352097913417449614438168827346590347917588907369092351050327732432681966249073318373007494029918889978182598105359635067062072863220011816316153995910648443378042218330069962162774004626249807980760167541111307931840444389810713971072030116083659786464244730034996857946626238332681699605494571470330046914182561059058476896359478323049940425218716680776426971406003336320250154353444845624876276542859539765261620394969042811640553037656059059594096810331409758419563319925638390565679584335121547039348648497989344142355410952987977975668566295271917954734903035046370264738126058956910807369507737174549958243536765864868168808396748374967535217515626470419596583453272518245359944708429658351841789681268663056088286766846209118633184368854077615141772926272737011384335026081361989045106021826021462067753013602638850197553574313605737333084116546565093415192638290266286637736241486238988964645025923035995284603568070012056415083983374641449903811209186077161670696705140725975484557678682075118662413858832435167527915186096174308054523765307730496393748456727612612470946856804898181083860889922418646556402324284064657659092852769328958944440849527679035363850458061665343061839194533100122153059744837909558469800164518799185274428382054610422073029443839937893719830132557995748323488890524025943461624376573451006832959825036631374633188519001079767114725229857094760780801332986050914801463045495126165614621107182252304886448276231239168770472906120749756092117172305319230597037061023511438827267759408170223803699482347618437193851615019783988440756394165375703477554952994382196540295512149354836592551519450672455870168996776255839290049591377589566912464249659586453221280407883064938598842881104939025427488003751992190500511768780979748250660037622701079036100307034945485620665837173124882548527807821618955655923317807338384537205152805121647138748259576615243087918653789262834403214589895868216343390258290770438801775205756457826304610432385682610714223207657990834829274035744612699587774857840356130489872826848814682293339335878115022262135347412090411557477408816754583703398354049579999086000257177768509504620085008250379758627708462468403550015285732824657288670352584553811362169159739573864872317105462495669555052538504139722403247922093681541876357869745737499498479580860972552600882245918287757516389652200746419940321603690252696624886421805335781478850945240709802109320588775670964118377147757792153627470006299230280954427211921239133934636887318750147396180010810928634658573582140900152681007882846564981406979438661010518688707816102363321306790474201190028960097165569534344655776936700460244655784532114529023065756163039743058342611718909080000738675765970633754445525211335726618019946470638692519138327926743850304218140595185555862707191016922383183601554789390157114631808630985229815966526938641879945684054584395787198858419453525589585457777140179962119609029230104902967847738323428174737113477672460385175408263961274288709121798466181614068937907307697070024763230483786614518323506542529544498147952300626235255433019899267744606940060024927325175870122258878633971498994668715294229560044541660965238068301113482799822457259736590262385614112492648983510229093969182581813361751119944524560825478394285769300611979710431399546821279671219105727574213784074714329628552025603444453510498178103818453150741806434165443129485429376839688164068569425213668987284562247753273398117930053376553678384721810338417863909407034489104982918436554259314488193544153860331245682974473646958464728647144435104354148487220797267023652095523414445509137007753987728255413008856436515886288531121495244080751791856696764550061394794643629400961304247965628128806527535835564817109757521734314672679716637378173711095520028799137504988375537294920667956632943396874634454205298627269398259232212138074059268475595669051587299490220824255894648199365247427915469212255136110607204695032571376294586660066271929237017091180995874946346802013120563614374150686893471816089263437622732967234601054357180252017738659193600879099719989644509776369863338013637726818102693415428789779859342368513031854279065493657479188956939893913158880394041017285691292022982796610967421669533916619439215473298359540760016363081775247463505820857321276518061249645577364892194364277133117508658605794248974536097103911538451615169733755398014057640688195112622243499400059612548191792042015506527544730635038517503959588080302608126617384322714786287518528668778961213586967199864839717805828488115794472728000266103717327129882411901825535885793496158006921103146966061008378924882523622600023387953302496155927876317935369107033099315698633055444252763364475450046638158287168945473045762166820986404492995458805348663224118191182988207889263131504151294350188853883496671540581811322690313558544056883374396953398943582628226736928359783158751083772180953890322040181894917613095411878855257835925577785180466662077994418876155128391587925451478376301968910899403430556052781444121478439992146725108247759449882344809657405203634920114036615683464609807866935030554990448477615701184683792699331256229275225516680940122869715454679683271049106022816790286777720234935508035404582896505462853004067620953298805878305628442879801900008717995193712212010726512224643530568465695733719404119239481615605374844071623387761884257634813796862942573701055366695095612778481753624628000150388214825787159311071733983343815555381978340449942252505044554700403960467874837622917118801797902645371974286365282478099543514831484334604506112873949792384085995040910099131133853872206597798102416637999488422367170639555625394386681436031200206768310275300806040135260956585181209887986105135338915244858641827387872897561235941989513919234694877285993313341403455559594239872612958452772723831577059192094699842538490428582569762532934732581286462249362139142248602254889407986795534581808332744349410818711006803344898107689465997924411280263695740435472054098315087737738102962610248856129098941813594145487974631916368164470407189248647847645783534310102404616234372753225725832185184456239497393641455707851108965690693240196952492438727909434894822168907532945648450093025039451875973243677413894951261344380335311246751348060053381966461617688758728750228445654103457366288747711910081303817192149745349925466180300810668663295763352074629305544615993825066538694003458013653964028699256732243897238610056971137143937373486143330763765197222480923790089942093081455490054366066735368413147889275252082210086831156794190245206762968138280172411884529618503276353369885251695454909724038081690239200694794080730853252344591688483765491610992310647858415126285357803761895733981349081783962384006819411367491540542425847622204221706110948437248017855576115832741063743891582052252385849839912525795890647244887090555990731098053831340209099690562847343623031027253796526558188088935668623480960907578557287485159523692915227809625732467078219379068138771306193652893511747399695547215394688174150417769339886121304550111272097569510106239334648834449360069228521971423364420971753030411919952822574739403252440614402517548294838835601752271926790967346323090811061692500189758652864605613325003146273893406231555300527912057965147796803210972990825972752696555586831327374339760180201983095623141876729548101218085192809369302281402810799462079219544895163946852451239660973902326999941950087232903597930616217168094629002487125271925863735522132278564683596347434867928518210818135465079852392358199021512680069849482623657673629938295209110885565534226610427417662205448734731198022926319410735688270048197978272355590920089997432857920649537381969520587464341400673576243320893439836567431813993346902892741685630612629744984635946605951548889203256896087685595862064467638841108473661678993983664229702669160689418952398496505051507570790338694244385197246712954141972074333443557147816353687818297557397287446021094997067737124211953322017677071306817109501149468329017508512739678580879889705545422651426069583834537373715090131732818447819692127014286323637514195851262640667207975972398247116340075689102159081302760538750249307380003856209473460197776579632113442861783717685215601021813869230009132860297039708679396902798252996535819830028950521327713661763710643743265281223773189977590090103445670077281490792587295882028916917854826557434474704180186558150713154639945150933496855921756411660830609357494508619341319455495752963400853203777382959902644388974542782753306282184700056801079788973833673794047168275435494341091784394046670327834774976542811384660732026036567113043106764669125871878739115332301918780123935404256235422714619370348348550170295617958706576718292693178926224096065135253835323457185475592425862720822708801607978620768883710553286300334433679268267767330804082304961897464848641948495101530152366301262885111985685836947248878220404788646697702186015295296574859969042486620554449691837617220969602343517622776787718365157876539439096077332904557874806486580107944360397922567969230523366833749470554968018451754205325510572886447386763194086882249038875608583576870918104273712068358648989109300546066650954845235642379972736446377257710765107981682578985737743689369636645538109945379742623527212740141683341520513526445349392512018980496588982072699619290012719323511900878700258453186007906816471327286448226120434579662946829848165880042361588851452826569111274680309944483306265330843859614751089264512334156341095486478211414560043424876678253519199140923228337066507832321689191688511268854062251222480209218452921413822772388473649906200495303197597941054686887650261201251749449101683956389715441343114554059068280992588902750517125405990467755832022896965447118174717667736031972032193138554740150073595231236749271359207435736683726081960530981804774447957128454005218708716142347568505532869403394494241719970255588774090383382547345590383619203018033145307926404800392912607545369779974975737790138726623368715536312578409960781805209912673487984582192457896053607484891680836199089213575284205699188581455231618672190055413484822918670953853670900685518045194130787623358467387690104047971157203961372531883669937878322440410293437107144530966848508192029667556640453153711077991693529338239329316006843429017681727643875896202125769465587710059039719734808629596291988599133637593401415022752345460091476725955828206452084556901398721332023293600270935202457599363755895177997949284676267308035296945718693878994789627477654828269872219923839328136823481351174849425997794041261604398244972068556960270492410050855415247758256496166758639984373617274198144011634632237338891231195535990619747908646060451413136826486415866387012581916435737942771252688852681656001313954931916348845113712951335853753145055686014653029507914091872523329160560523664701300798145075417180421065178599671296963657609112467099046820714882816095937004768229125215955947236283259941614155697865736936155211205721424749247392744700406795195386211482425803320688412200231168735756171017121786934923130266392682565227975718187851212290189209610321753599519734971575557179415842608179143227309618169507570457963888104329923803020223062958712259139770955762450378462013623710457821703681259936756796997792782723466721173361312376699429717188241742856071926139477031752689286077895395317633159013188249518427063228335874534807294764641962559918344996520465905090167164223737535007036044489896326918504614576311576026856925585689768446039005811550352156157768003652829213402150358516520928097629056405439310710983047179638833536529024320020923285262407184690770047451626567438734828721580453379671341758799409806592262254162755920876766696156898226270144485366239127753025282369852751999551503860904301207354946127174791210368077720149176627378992510243706036005043315361700771511076518654730775518104256829203205790514673997344016279053602917647469391062199151463391403469757199860737154046457765760075572730918854400340360012517933638490899642252062619691083677484578340538502995683325491879417798158985108985777144459354624068569066120436722771644857007769546580110151682693621616693134013542072131827280401403408748133754417164947910393226928572102757165519283349266826151456241315532502750017703061206423033583596113736243837820852735228598015184638419613715386973271681510807091891505566080543916086074636321978236355361775828095266799852657550454668251788622841423632357044217209841051556165882096628920978276592158854096546578103044064939754487107344192406340945730701895391796163886025959884254788129752637289639731913237226959442148043938320294823464358193611510175295002288063971719299933671446641138113353727906919262928034666905973049737888237433368360603246375007499596688358441906407286290910498433625839738309587791056441279714706308777637219388292047526911515011861913081814413488388340421254108903159232544746227941946997045174780407091278894273249194174187220784051440541362532974728357001618090636520066376099130580385246493106111546611102470886103951694662747208733031751845349970535076195984194323013486513514170764683163874244988791414203945834767410384694508788738140328049705039010457669838415052467795840529687254920409956623363494677526579374226870785258117674706814374128566539406593602525447068679545678826899428220207434325061162283304047144436466834785299620973673902679694241995539976395950168002913957978718916438092791394707274014970675757726886232481540515043787890158573693791241621307961308294281312707963321306679629004417897187006209569159087084926920119273032596981736837053449930810076321759642926902284083665362494966273458905145614568930904064921816315803349791391097333893767211573916854975354163416857418461960439535702717664298510645961480849520091870651673143089926744611529499372165508271864516972077568074445373694486566391796012179194459548561208659911651400017672215050006668925813095127258026567445487946097980228478149026133236761536828726357129254702648622039776961621141097607339720721521617376778971708150601792010734977398315322841428455998850506000060504842137725706481315524378191596421040205951901340940265524633565153868285593887616077174308985348425738164093146437169962880428902750266148012949775300887149223118350717134970687803358421548849179981637391330369827589268963952735846607336268229968574177081764961725745826060807704313996168098504924158415866862237355347804288985231664021646610328640977450019962166675448730626787319911630479833682075202260893745423812033336445572200290833899001714999655595753797065230658058307967280880948930994111135847153645743542869108348294786600330498826005335539770396899943840004934787027987663403792801740051284989571746544255300636050703808490279097632356960805715151801676753936569912209852096463557529159137657918996074009393438079467996870209248846409798288177260747212863910035933086022546468156795876476794088306741353294171264907813944124566974674382494726286047077842424952904754558167006907554622056231223635112442822895690426995097177691678619835454969218069057572990583864975530006353217362777337510632442811643695283624197806567640231552171635214752964758306796111890026700936014609883352330418023169301180233555401419520378116105637253272193886817121709424553571511135961148697230018064185767089685810005795612380043791077193377362318096744513931950274301138422052602865457417544481720681546295229440836203287437902441873890579399312885127080490466540295814824526370785137184879240621849709797623536699401297975449220105663766977043272019454377341113695594966935638263288259944224402792583969531639213364718065651766503319501447603281518580853302278070030278513601802473642206438908399961657117173809548926767586510925495881115081119249126272155447842907642093506874407438221771400521626527151800934929842576880691313119038010070370306801382088119026789031509455853389916626131159323883804524500482042588324720943829532594331492529812362307491975817051174643482147951220238842717667059919424221972105281298374182223605224712709330939423484356968919022107582141610887305411923663357002810875234400168963140177903242969918019236922757893309564509030629671810358706176629192257310101405401259649339327744454474716788763286265111279169422264767513155598973086083250638262830804283066263989782235481259021084132282818115149403938706225547707034215106434613212495336929981177390126120473722743653765352482361908507239943730256669051002083559452719732067629411095617066370638157573738055127089077342427025485076602110474050751532123191148301164756242656529600178104797302709231006913733124243574994509625589541317161428711396540069222850261416647628861748634606444916924688996238938890944260663996131466758808032821969096526712795696505675460428397081824358556956558371678122547695775652217612427516668068598784953991670326966361869582155445023925039187845941132048097998873647439089461103608327644371354400593654758278502184943398466064231928557032359931383852018431197930127541121156250951842513974827428044612763159275127030379426626293772757920430784715703896337777414660517380191415720886844587366981270364796590455653349370309179240589826625633368063984497232635804968772951195774126919679908390587406589070662264867618982054498283793182189577808410420748200004960386846859877474066658181853698154701578485619099042058854803889707860604074932115500508965108681875694404412620210577952837489727717964579785381714708469720953318984359092850111403518703319907579003580030754173246883839598991693389082483279724365377567037808336983987919092745080182958684052945500510075148845341108334126101902462586988052481705203621523955217507043599474851790399569897451980685338326924518824468500432647274086842098101111139917950356839145042406318418216083084456104576337935061690216068154941410359102425979491065922843501683590770810114796767334235149259738144469976579461139542593774810420314340240821872219671859714231090944720739771643208296965204602516039587991879094974292805950063782156702874089413153596526726757871306944665245061338131170646354568169459370051562374330052585084364467905741466843099010960056582051131957991519788852726764734532141575322729551921197590829966123887672089724137056648407720858679604234926881551187014431944334771960067352405391168323459806684785504898626774025690674352769507526854497352865308663138759917362484560754399520088943233100717310953744819724580588448582913749689545064665396340410547616157595178065413206622000227344438585788223549061235818412448849082071578642553016263584059677570551127923539060677324562514487283527529857622244090385914130245111371064033734205123915829799195593653431139137682370652150882060033341799435144986004921711424467752108060537949181448895659252724830285553273366537841772056449510163354611614746861260854101870600251377450448329857819850690483267002226295463517960057383934485171584758607864602470187982622082958861828847700765855954503076162860650852525950029500819801084955079220006040759996830988588199416702409480927265050777962083322387443567274663129288359532057484184758668698734076085137917641522753839109157525585992800355953084932051451240599968017973680067271054107266498344443367991420056040354082574678784284016156054051896261333366784615732141837029633840193180162029595456954758435123066651616859850927879536658263469107778607437172259241588684108746597260196674698409089846702049528974405500140952525282807572205129451221080833170481355220332647109156011151303412391088904847253640634865561933572717884655056885667998046424815554367258001787374667554895420728193325889759157443649370053925365190265181234989735313244617119385501137044678585076755719565078722883317846339959937252874565415406852130705558063673709793049104941639940332226500949342788298583199479044972494939732751996901299129728438352734754294348789808955282089833664113132589066519238774903743208940538156364947073370742791752841371188983780425134448400361203847661779514517291938939061345891682011123335464702980840772412993596910293541931318928293057989365992324183521545905125722064366698102073145481921796299120656963144392467664099595614602937169730325478597137449077571642999370135407671396422863601411343577315032166657251496630379730852977487340335488070254336064909425926960786817080183426076256936983615343576475592433943727632375798004243662294536803491776634661689947659440360587469967022832164179942672135981647059104400888094686022689654880491466313533875620803708103747272333400544332309481285649945750586642210536201735287679902134744974466005075023123081047262578720809901418040649936531787098853416709433467529548362160662257472837823956899175541565603180920491620409860119154059459776946951422975040435697076511091400697445217840503857091544357874786678481883139518369780437026218535932592509117769392566235330649964662242078024127428330711796950126741257654121851527357580206524293117310053666623708892291954441826285244011961902477199262548275607202190357276327753812204760829453502744024138616032478603871606809302665825454011213870459696631990883509379441352868263350720529149126927390063617511365140205848334000912639254858103717992716697483131524795991322521622972828117032855846984006018569082041671734558578012559836029801522674998403674511283183253621794824302387370683938397766927314265110111236092835896215420492264260848670811467370373796066321779313152376319137879248795523203725148462448732792088033489579513866911846149471750317843821610240977329284102490199797183957588087151738563672582289228410939205402062733454719400212942861809006784581101515914638376586694899163895310733001699091886922310583526277810456961106517779437991342651876104286333654133599879370476943312192540528307292921965073855273514762448462261719295542881649446617654888176160532265838870999938919950748579832344047198477420209427640873559243545215612713088836271982666992365388287702174168915699289992918090099417419420977919828553858079358104564699876335350641141189976643033609401556419536777061120556064309142941889476330307485724137026082757104306317387041926905204901749562491885096973401966891787287907388589504855997465082132320230374735746168227639778593193181868200539177078768891473516969396527721678306570200269655502696712710471217202347756504012775347877940978079551197751168005030889008469909698012767269166402874459661726647892444632540973150459695254062833596132084640285072653342352019967421587241625290412855059438771121816504955716860406962205752553292280999805701327074250416010401415418499634822030600993405040279512644938311688410186494374505402839217176182087990361588021898193956620878583664536400254910722357154721292391587678629398007984272486958950186060562647939639851655084781523396748829865814468960200515954955105594809701418225894734500543565239895976902467414279424498874529155667956705853910925202278885343718584483100336724697015721247537373031396554477996298666064845639196914425789202288803764613318302512641043899629922332766626799659848607344632251440446032271633650366356449664661421152713339421680502965521556389169149028511367018182216476576761006374222611385971624612261864616602328711414721527606121373073407521618434521088689378175293117551183694087572777111442888250724223159899437507778288823304073665304765889752923705245154610276431846456503886283982109145429780332756554524619018953173503623444930377708456651154187918160913411190386846475374348825395617371451041436204547111314537522126541796304013451279215103655079969589261505653256022385617391966232454592549424114430729309418715490811017276192633007366409367178209823743342328548821837868621628558635689852621398136701410664905215617755984043672712014827659937094062059371724093907666539709305623981855441874658074573325693855350218326233571408354573046392847155980468218768334341655718304084808252775391037698184728433158439833595763398839005566510794105740129843037055212148304131614961575486848652193152658759375951301199952307254200274463563459806690837692022808887151666860691663426276153410822798775434585804517232212799948490627886643817583273351157813297194795876493763705419801884924189200055645604874718449373972760506964549694360499502911320695552021836834535421057416852290371912305580709439761220877909846010042044290185003655012543837262609315622278667056123742517415439538551240850252280212142946751533347366479267939256019539506428330360263515705412006675805579790882852392891895333880613967097927604237180420293851863718980566012962667728590444209628016380034908147494966476027946421915994694629076645526772899836096011721371307345653961052004208477237624539932874587723458821507534985300364305435176757959595887765778393423528361535576975500574316532230823619703156389344994578072924633496906048530877922978936711409595040115025500652422089625331368539019364476525093277174711209662773830004269178158007816036714541193453808307113679716888719200740354939432348666445326259887263252686529110812574448479190916226683718214400935297285236923581932045210158878061008213168007765703455793654837757437709655421100997133621035057274962308861096240508711688986351648007790657221432981398140458735566449888365509901106295191241587071218707970136688671047463651557771553555264146447209720446931402627927911701579332463937908269114233043264535119000572928172578733457133202276333566644597440195234806725985138442785077568545129504540213602321642740692251833471324138183076665220841649979789339704542359343010436320168052302045128481978285785205862439358847488218769336767869420251003115931414619616409942441451975115214704742758409815136170493590543543097116041113885093239952142577301635563063380502682027590883664428399429798556167435371758353885551610530048279247673688502179483125171584658358208831988414147915381393661406987323984597149469461798702656016021662099676012537197614674134808455642247163785117771214055657407890628571894820399287819777893114914289394924763052341232161827948033054960747671448827528672700230985527952077066671964274810629437775560277230257721427585397060117676436437988360041907740726651355308305762151657746165474017712860676469738966109787908625143618274473380870706601524101466901856691419030800623224700589391087182469180079261694523060534516237385562790419159353771186949022793142319378774973953277239211365484373109176737529787029283303333534432477043699755503176667775979724998316940269488441625510476305110550214055096158460050516744748882414591629703490078246623813259420009039581715241276517348286207232223146908275031780063802579460243910238427353830126735073281856796111569656922211510309149493041572057434037967714003533592272425916366654039275926122582636539567560673959928754348188632224363128262390581585311437547780416975439895472155435568462132369126081054547008777943209836304611453722752499465145063449432512871988990795398345595796052735241746131457317998194713344737180520896019445654047056638878527480872874925919639602074593289930292565726644675084186650059688786849241681980230480102197467750992258492567074507687808691192167839781853166146672315752403723871832627333366612855908943909965075236904257846197853835521082252430008335916547682773238397154214156456428699100614043177808403143726984775183066780650331516635506369439771218637990439413803843995255407602578576158025153716544742390930271712914462466616026152072737526458086065869785035263399354024361218072411329448493270684537916107695590619380577889785389672389553719200579794616882023619745901723807904662088320581548231563951914540740315121094241806316821520621590161708982891271365271096371895310623107606532682232827509706342940460035026267198214178372134301180647151250469420559266015222451760223843790247804393193044840456553539160517100337947357641007491595729629491722912394391607920737392832777329512176564483790369941587267449959720550597724295881413103453192513568477377293454597485204102523705553410496758861016447511026694897825284235470150858707129352084316736341107264491856732738921994788066730359521195516239411093491868667373643690627856006600418096818529772013871033534021217983940614326731768704306842088475106878421246619381180679814792309276153220989985776505692630785382636015295378043871376479851602742222312160668779133389738527508697454957605095291898305521307397178439184600856118305154413781261308393103918042886582663801908083711995184559039463874049559271500444887456499437727728715219028081717871472971195302617276915124359400346297910247027557746508093284587236103401341824483038117312518952806342518243757383849341671137298620436657323733833108286852238351977194201717740084439754929794335056328101158335793334157115033112917619245462461035766792028803113005738651508211074361815123789024812571653815193255799397742769704428307024393900939327971712930773737985665197790492282436518798997574712152919201396184239968533013559056680508523354921624684282392428158387247274595781961425695083353147296578085661482311042727850189270608456480915595205099217513449378886775187233932686207788824741030810698983877852956833086141461798311586800193464525515732815119910246279359802713629923849323919112570001628618242269620302838978357158975122756093877463084932786363049125041900720151441508505393859195296131987309123958855682022787460409864594884216085119482384508688755077563588962043189380660514631366049381766964594089193607562962948062218506475529179552049713957521029544533812774899390733122710307859401641072530180906981683992208847527293852439335292310166964668039387151788524496280688343303917477270688600819029234824376524827020910768350168819800283742153878878026958507378488874012702208255136456911714817485340357528370210474907425454798955596608421858636816252957900841398254848912188902902890996226506652062924470253456137373233716338166101360411097344674769575930825286212800810716996658945195825603992192537020543464177009384290302814390007221663125908388300313873179839895055434660270922562095138674162385627613498983734461197095519123482915064692391396793487821151178414230936964761160926574234337886349514093741406849681533356476875646760566301584558652179590646301858823366603024846700309815646321373328929966011131477787235204662811438318740321359780704435524340674076816389587129274687239957985414213588317653326641745096673705400840608385176275634513896816936582333513275594349207785044882037922610088372720668308165833847723358368989144623629678611848508905888926125966654183102128812579857661715850607066423281479293583542803629484533337390370172881627754935290268905773528349951573904981643726422475628067522833929589262283495141241987275797287674490886425457484642155307130491503444705358205994993334531676552811014093225796067176242093431817149232181134390856513887540723487620481268891107649001565544529077292814008052721599798133863468273757052422461289277876624148406633320136664037220561688732004265068958649240155043567147424229619077170040142941073870750188360264719818707539797075899013190041582080147419960247055188112579270456894647084338406128966260543055669199013250798041808027435024195207839131131589000150678876077509116312148035111746336729440141512511542479706563074192666598850805277263371212594986622871521273071903315435068150160703579537266253789746802294043483389538526473092096298876131892531433765820389462834481924793738320334137714560267154176983528368350825751598548932527875428022669273849573277576883869619342253876740953342214102710780920741098224155685376898834683586627414958363134883068273145219371536201667907371365069144215171573848751017111618549279915071747316914406605874416694799642342052461796753399213659434427700487619922669574101136514635883308437378018395508356157298059276298243041192959874238883978377149578300696006987267221090132530951841721031038433802971836162473746380924596959463574906292456245957166720919296810592990567005420953890724747622258587505938917753943691150811744859339556878240029817587430929381860771963038066778631349188909343484772655080320922856721273719264609028066373761016990438766596732808182339764743624359630564785066876873461277179617268998157285885325324787503127676716683434474230107845791137036959475651693749821238388291088982636090198852352241039800928181915758520339253479802947029525868096567237346913997577053784902031423678898566873557722487148267865528852589293256315215827481438974085293426820432830260286623668407669367877200009759874084572280692598895421822490404076235989148666923891687354510148244784452676362586324464858013453053887808768327572500174232563570659530631620987833817248159798027739494635356723613776744058779475672149812144843171713293022034725115604197917974844984921112848944804153301782226309410682453423709598464440409225699748376037640014769438805760238112133854916627942690753078666446714573395354563980819704218443990545008439508157012124557998476397853223266638821191525556371756168773572295894003473313240556114642064505081785122900746299612053438720019087940926485554795966143026855171338197011573717354777471481542079928051181706753892201558392758883705182442470759195011336202869110620244257038051051208468406035283402390858276848031830946773490714927430546472405195092253703604977761776848158963590924659920337505314667792183629475210493568404890456516268673848808668955721555012334016501722683437062186555384348641091554069544782691894021263844842852546027638230850889055110591756672049786116303647135614072852853382232240235391287245795223099397718040355972597147473648552232580381825571053301008178609281277854903743900898846058419228662385566112984556891695349389958013685380198963728105559730407692675072856164040922758931029712878742137242127574072097776471268291514971235804881260783103251213020583209285178166669796672206158596423206697788039740568628098990087583281672199020618410906180099795721744158246608329469308514970038390062081896949789607353558938443584036070703064107815960203734126133701940074841314837646929598803869570102481871454831871784192094602698931086704998955936946265722649772044547227863605182607651459930439752210446112959721911331893011800381883270229499453595935370062574492584231607193423563237052343944213532386793383241410212523605022642564072876786450517077647022806369351967149375685045009597144472241075899764677616890048136653125614422606723732889189112380773811994443016646513373312772736659715276751028447925016948585590926980360981292772229308405262759601008803446012806182960334471790736223652229274775127082550500302625601439411563586260598835442199874667541293398880155895212817947924212606143125776305969713001762977288603835736819486943429263311678910530036079960249416822310632054394352653304537376515926189405352131375687341536407333897103361224021076322180777218537635437055439955387694210925766757842347570602706559773186615922921974502929867641344880996735907466807961051851554172570021676121280094899256402912458212376117578396486878651242659732850593572452205392149088330325624678400194534439008765590901012426083839924888240578622333850270200105035407601992447332114176657646968035545761959166254293520058317227846195175156109831317938149080011872739769542845277531635926038957205825882896350410068277365301106565535611784681728178259314735385970851811437411593046642034843813250115984504576171928888361147005919669474400376663157900884304412877411888217986739296254822931625429258516205930047835629099837824263604149298590404300732225005932871625226027552221183801836237495165983318960293209289780688063176014082693671600134767030261507135296301337354900585503143653787242891071900804902112011456682653542173811001287724005982713171978362298936161259901142962466357725126470511616596586766374317111788252031905373994929843749201605196589436618734252015446216975575850568114227356769140278029848859878602278075299174732220978732745589139074194097242723035730024881577544951156075504191927314487360129330288447157138018905850874092029046836162115370918273823549713228098473893317719055117251722072897100566378169992937389166198484955982724629919187241089863982919181727039664541024643226889728661335045732097030921368369044541785278266694174419171628682181730565306971106764319361997130816178543465269610745468633834702202780642742496768840584082339138894194426263252234772038067387619624076067168598855017703713048446830452045359974481971230420764789364691718240685810205650180047053737319647958668999397147686431897743124430300901954429271676019697465997911594534072060031775117394545766312633841752083712680963344632650856087573073255464714379194346022917386569887775527067906329245299382572308402438406640401123054875500486191265701693723967232438763886284634529978398166807252160787483189603597929397596257463014096268526456388096325383590817506762179576535939431324859382102897346115016409372488242134006366158340954871860342706456148417105512049912383118054082465617689858064372454778116447762315290396857315461191184640707460147155954960473759468799364774840252693227032557048318672146575399971131166682597498291997908305944312162292426692229370589914979705057276150810019839543396294630614087254294834042561254324439320635183538961171923663092160175321612685166813767559716401651918629688826308125178641153535862659262017565901168038114912510915047642053215432191921358404513794809508386942326885774017258330500597812563174925905845757611466047190064316302381736312795691958667576633402311962693969487367707428160036939083064544519539806210631378915464142268104699393861872111355620160482441357745604260033033792463647419861867528020663157341569143687082339595512104612540798131848588519270397655485428557847289188128458100376583289383457135553157899886955428947992604947031605190212752486380882716467517689455214954396783975478658845313349794434301917052608489996641681406766501343303849057778125301772029182274128589583061684685153757080693817239132005983560100619242533316348456673989517050897064083226756598053772659606519746844177045659470351917746991232404296911618766398742420378761762895585823807452263633815030906050111248657988881229007879805456136724567731268936806210561824851026668258330896765287909406679640192006769743853456106780313287307229599651533167605875640761099139431067310358677588051795959771737728721738228332630481535043013553619683316485428419196175817770554476621303599892157878475615012739085420152837072537121350513594371349545773331983640524132882499250637643227416875503145277383802200984050471530775416409831418763270545972668488779833294037850892659591115002505192985255081492266825938706798964740796990070417009896143969015709783259068700580985422158153033295178132250713202398666895055753109000139445076782502298388796841059264704471791196058146565820970503549244867872112180009596471724651391536305363402212601876652704474380386108395446383595182364160305788540964715074118071022751915914752891942117374492813396809928868477491680625757557289809990659004983593330975592196534021524699661940542609686598158694767742447600125152079941629468827868464407384697445793496877736417797303423327789297871190625836940040843509452453295507886284220136626526592711461328391701365086181287234683390273767876078720051070869515079774049331465822057433949150894353707086480959080610679043778426771178824865597276993525718154041572116504262961175280271132979425423600999467682217251132821694105211906435009223439282920197064046703184970626493847169525414138066892649560181939693133106233711977323036471894395063479645434501993302893022423390210403306416789674675594559555133885450660411906478966018128680727660106998395785818713585304110412583915695760663502517018777031424263206151917594088486989080882120010891881053140077971418816013076398112504115466062620329202942626775288535577527025143898370246768965619899410900209236657145481185463235307888789338436387090266444123159349062729687878687028488485457813091962193079711928707218360741681145703310330362736881605029327679629804280546761430110090500623023827434566917404474943025384129528920226254863657194051881019452024739723521979294756086614813177523249178953907340261544682995136862569454368615512882056461569955677321051354813339328864237302968595810025127180420326939113344326472632160392642322041368610247533477997222018612197540092733217314903516542083206989557445063742184985261526139935122792059866626053438097588030353569128237916946552674010294790963577092073340209479356051661818455537074266400151187857712118813394108297142480814621301378667512871406226019301436665500198686079123412491759387692645067548956653564573677707673079398814697456894113285598154745213972723147154285924853625188809552973685892139857845954002335612429866176117689228499659389872282663614628395929427953864443548191386695868180171170925432602326009180810007776458810277014203735049316672192954866017458577081002595105168845099430480441611690308786871404585162455831415813648155018603418582732179956521128083458614886718610019081274515766627878840907587766896282391999477398893560269046107346584038844858845837323037268334831452346004965198317267041581643480992197631457281003181672295162252199311016854322559810991695917396924627585446269469799775043426404860577215419286675634138639284717644877996617517319138586373471282923899666514654600580579416894031176437088771329092498002607625956358205450271246221715216238346442177799982049311322384221413297978484080447593136969009839294042146239343125703940456256699413262307381083453213364982401750632518463660360219888601345046024780117238937259025231577527403322049355344587352787226367714650215718738536172557082156700123889013749297034958724428840135368188325722512497809506163839258346804197589985846227221418326702942631932644626337149090459060245724550663825811068817884985860820490792833685141472289192731844974426002740979517955190063073511231874020132008857176525646719356160382747934697444960652862814674802615535436031503812005794015657286821610525224772190275065200267564882491297591513298712443120922782870286126937137657467403084687748381179134169304318443143846791152727931573398937913362797327256103506971262509412117657137750249198596371062159342090064047475361326746150043819165541092763204660658732726642506114743378053884770873949552939132948839278006168948824606971944178240556116843568599263995040074804699362890685841679454163745279703994140298488647083327745430418716378861233788791094792935885033540646637368904157133026221070327172154440065991709480890041616768452999463098949594098866729166375943733257612886903036307010242731297812578298751634830958153441783073632047380022994036135511975319396394370545662736820918402414260323501046620354422334454208282803350638801456388923086920920826728431411582490597298959156611169293472569903295967428006312209100144482549230684847921940282420505635775124272001375394614002657248289084057884505027266265609354676127501579771073391464820516167156650242926648126291524613105696735646710507879420861052247276434862320631755454316812242580276007501295421545501420699047010454913552957926623585935298757111097921543833193617621586074199001117997106850017227099851987221655775788473946044365956421795352794000059189381608888321147409564794007411550540349438295668110027504053053894135587808105216543706563705543614130968753741786010151473525406959398949049358432160440717036999560476889753833589264383377248008789255088749331726024050616862796964231146541594702122122087397709394069307412545917722918599105796269119580567351228404726012985248032645587492636944226836612188348406750848972619263613851310191954298327293304496474847001686687771155637456224207538779554289037498511818552566256823647730762577783283569266519814942738085257269819894099551030032189477411420696548962766414525981124364767331661371868693863829998826079010742723309063454003120156600823409488328901697910125054352033317571634244000378447416336329818301445642990410497220337567246131334381636144825215345255481717013394776836349264470089456257145209338208571028245674221309309869272185355443911435917631682570325729132960821249826618890234272828461070187887779103648725082726401067199631227055550372640602612362634525288671886324663131378972998873286472167715593178167865798949934139442792981075362512357058893647899139972841899236822579476013604068760710059767789204620987355213745082331652163743423862180587500387754879713307601196049678888994880965835436977247777231883013460531706863866252482501908688115575230534185512322017585200016973772621644812746265054642626947252511654155021560051885055960490111420273580784541030755412367268202922096316882556991685208683207920984185702421949668952742250728597946274524765010312827417603870466455149321974026252872046358904501662132699900069435055595349728313127536796687770982441242735669746723856474345254571874090744246234702305629134947117508271271989850622405084639525054776020803582432718927694464085170002356336634040582210939933668425503372491769647468209971836113420219913841436623427664425209596062242760163695484688361779457669686728865331509568588328774952364110073631383656639344854043524300778751231925420605319449720524879280234341366506177510414114682487894561079399588582635240313675925179772345969123093909386689901871057977453977735701735933710210220508017892499747343638245162898187137456714910724615138509628764503911600647901920825408698987475078088706325790141930079912186507876774189960913281821423153718515409741487823166111166511977841321348778568529929787444466319366868331590470566723968918483270006736251503472186907857394960724723667183887118846220882540278552022858084682866076265973887491601326318504639481525454148736547600447956068675536256186377040590772952848098682960733093311985983395361525434378862995980778579799233606273819508595851033613534596333096292705443280758524551755662710969427009660244608625095381244350188514087901292207531387499506349929732814122649664898473658268524809394938357588288848297016950147192876084338716119773653933245941935765138380381318296575399935650555474795247230880535300723385284532837134461954065643298895179109643764424537086106402459073645121107808151274226565945357204007209018895774291791686864977106006688055207069225494917827925886814742632634281326462339817546351275428971201936654330722913126661955007785950984133443280498668229022428656481834756549948299032247798400991585685435003124633950377315417360387373257595969243567951458962004413427360566396514894724228185104499078177454197195735496894901964321327172665889102099798961094338078652616600561782502238301912699411019812011831729202304440273958832316370760768989135737491555841991661795611029696080167385331430922006995281755537999953436209414358117335402068446609863622101925564225457477360744433824151943652297789678276725192931410924056860515428949747335493845244986273330690815021035590211968071735526877928883574265660591285915520127366750296165668238552787938158958297553090294580595557081899236664774373780897798395577469277161019375602289358950579848900167516895840004042965711914946597699976230316244947591021348263478665842758486840000331402577594706789145094203909662217893195178441712524825834221221605522706109191627636734838861906881296016407321066059770602578262037832876379610538232209479548412410689784795408809093296326467113247069975850303110430525881079370232195450639676302062017009565622422527558304267606022752488513488489263200142591134735632319813914738307574495468523683880952196532596097944072672574447947097553035231493321881338155498721494306877629675476636878984056540818025806834646555186453548186896442946814889747800317632399077398942448530230314761509247505229126936782296799947112542076300892640657025838017702938636667414939599425418523987204679503093808609104482591612117385489461848804151087849672030409789159370487303220089803039873132444552293572156408028576218150308896631699815826731837012265622265048889621156263819549040701095957720806922813119976899528921187388241152733740113132956179233193965433808055187328492564554787134372733851100885641271260829656923736232770782285551303131082086509472078597159416008387283542351848216887251026779601012940838564832075198883339855971109997298964745336770226621389865568933249191285869226646411518329249813323887976253495441756553230172071761719353764240387821095984868624898769985088808508424155620137835691066769013231616708104294674809976272453186780003603776196872371235568927259918621344277035253021868332897903564169747797905071675854918838285070042856072756756529945432556651947719610846211137709623248451272984913240636677133998815642245724715836456257369620798834066290587775194214101753657058923603622362186300691500093882288766200751254718246976500000240335529535210540723482198652118203302345557928905854825961554701726561422293243582168083344412874799537103008863680991210809942234421475763295377596325178648063243900843971044703765420709848396938936921666736548750997107397887867212687017520397813847382762137378180039458768747705142869799157471679752492627070044330926562475125721953373306286886727166245885417654326163821469041313658739520008405163054986535943773095754267396834886710026341741187075298975147604125505522426176407331676243201258830435847457702340661662975834339286721136546245368314064446000845437469363126209999769228139616380862574179420856649239625049979491842050177027896509108789946132383772293828564770950233280536658868438082017813706676827150921871111695037070969945544794887438099149539258116478304613664026418279250823414030220228807472442187792954361799030321538378635239749469875683792805148712929173821909868164530360091166909366128064039897874655923719756229853141653733738826949283476204676568237787113493564077330352477676800738564850809891851152526750406993334497940581573187716770852547925177871416329313854228078256302567607421667303480712400292544292995603228475559546814786117538569309083167529690318532548167883745481390745315955147405596445841649960188902857645714724118060894230787718652840178819211025669795543253832557410915089496546784636916707265805729841368199768191994636876064064103815063107858717731304130198231311110617625030544586732448035666290743696722926855857510883359263008891521681951758222746595987226146710047252298236328640747395437447144214189133460530715889655343655208073451841911973324185081858219960456920588164449373781255467351148662201948925678422347819381593616429856088094589385873229245304691933544313909275407949657308391478897991952319852824434131843235717483533204240631563214505067230596541917220711967049303356367351741232908245004885483518969127931796728263340251912863383010760060414618012920415415371914190570744105358067684803378921453247442187280341570328502821348596164357192701081768959882859836181702681386005509177716764049658908188092851470707529952510186939094175912216085866593998249653954880653031386210425834813529558594820802980716218189205766697307359974020882239489994969671850650974486705444343592335747338606409809237680206957167687423863671362364618627055320734298016943206109450570633278941062320022560187224214638560041023242886878618104554115482996568077682056176485429399593292598693340374699119598201658708260565117903721040525415867909258473266759558820984003068802974747994151334826638763192021429504877365613696499887966793838531678244203000186055514843887707209002570365443513957852653905659455732883651366226827415250853419527912268302768473128471391390459098913600320813373999436402275552868870313357066261784497683927824526121811534469899599769966833928632130602173349674701793793809623658714258954314552718741689581589485220812722459001762921485550093924279696642633167648736084189282013232721332225690470942530539736306882277454670231680059512422690911603861162903828250472009253546032811663872200408893851319371123708484593577161572679974577880407901034205948519577588984642309804151323466882386150630270226995869562868214847439474513499710399067396545221540112584929266094411289582653962004794921484474789555584206856554933969985822381050045377681935389426429168114181321016696952545678507934071781398468994194494191243648906758583436269183662865545377191955947709667524760339982720416198303672438879383911366777129344575365204684912711938490156380371556185209631955635241570265081474389807897380061285667041149887345742614611292187850093920211010029441829041886674635868735594885413666409438566365559452622239122623822640043007086128127343356800944716397522187080042901882125590237652825256297084189384575536771338189040366770331225552206254997820058991929265036599658963244954617255105404807788736021662070030284151636880808040732152198043752382628864695331850467969162648498466186167551785676273355102619156584517888110207061292428817010404968848662779377818849550939315127149382751499401974126372751927841256926098155550292684524571791039906896384213794591469955729896091351812591206682702378509680589086095655751919744745785674735115371053827278129710787385179606318661583426596015320860779038386899059045629941883467039308120668004467457954611423332501579129265166669291249460749778215389019589917409406517739360668375207821370919876700168109238866259359902070208655591311885609616799376093434232101573516608348394675301134478930387874207799211996233057277192880314541095153981406906662153201725492585349499470741344386185380489964281040651303170156578086669080311822300767385893107815917258195454343927308582478286499035506026016195857253614185948209596671587851023778138536928246195586637550029294819840734856403429153251658569978095778295509677308951244723192975331988449649718872890301001967991146649796996101083145006910032483529490829751102395276821815082409523110080133754510928710134963810919755336418262632439660177060945435204398726744308239355456564119141734475190720292360840178532070409924204727650326715266485157183883282710145384837060575755145134483575131964901185430091171710254296168615397882371940574579486324165338541732732397056392628180777629727915389435303589068826976054746213579607503970344761444645025383861583030537217304906915996135298913006274400796324770497492253193389840990697553929970507549168355640815676252935079825407530082121545757866025755873405585953892983388475462149238505122478775796298692005803743651387391617972800258275483399120441998029678962549209679780453636124175817980674900110426225500970320073413453481686218644026778624801477056418009530044706032745619340437232015337736284860439849768954081386258261238195042102936876979001138164585957738206067020010099861882880211903435938774131783949081075708836755774562143053283699647927000660171834778839753513494496856541924789038899581614231274771774785427593852783615886298653727366489305899376611870107855619137945056827210564997412377532289964360422972880401019729899885250766983296249688947263538297607819843058733751065646588499425368702203818460631969472813088969589898354421380357449604352336316042192037284536241383504994715621085481924500659130915363383554507188694780987744923096520650384835238910592936809217274946488368765255475461956698506153600661960777048460456066323061117865972085561790178584304203874484242002393005346026754758954553489005811983067448217216171445166685528865107162047573138618134118890691894646933894402430617477087084209171653058555918736089212397668157600338323745809667613466791756064492721731335244647947750852557650642477019478124998963161937338620926131698021858370719516618083678742247122452552640383302573523928540137084557437953353771253802683459795194991260577465350340054821015051551026720749521952129819734212140290241751465479069534828093729836016136656213027133510813109683815322158874898006845405900167670676898366413113677585484054537808839811727478533433358904203875530914713949282579721267998470882185650521765905424463039560463250369059760058001248497982607907174514025668580730700137825914910218793823396312242665503890927407579739756538505243194985878591962357352323058950168262073441599346287354711357445516388194484375978375874048084477369533414185611068059902827475849363940154834645553879287392277406093404047038323510600023752209853513867354447937605889980530857423747493814957361400771380317147263501724676561246489995217804674322963909207537874123973698501000820857463308040288271053710098059939806707124684079985867826833530121030740209911101298431807061697341758216781705321881034735116134184123576834069583487346722842508297505538238941995100444237520513368436239707450143030510412429266743389399094102641083172812082244888911570895004630026140774896453753282541036721838242009279833505060766838698625471992484777685100072759878747713209380234925977513291567993988563674774358330939824712538857499339924529068118663648850891313426127145327139126799760361585073265687810863741935974070135271386786973263304807937224028211230825481166358571402767173628431599402526926921171426014812254092896243613955321931512633550026477168362134855515318190536222568052062122702794061480324139927420765733615246711568192402522400949242112691174508539168566239723533204911634660989453678403674723720939442864378369733069042911466449306863115024244788034878643868205554735325692454025129931575037633410375496451880932465682907971000550194087429229507989106057405739431124604103572715583405734708751881754669975937592123478645287854150926664471296978145021418298894628698249534050337228805480452551377736706344549561883650941258738808883497463165774659059997931700880288325361782740876223654074588672122038367855786882337372288083947800145307652032360662558686673690827145005629496923692894741446494768271787055223594805009712414458802812850295978712288354841504249443957976838316350191747299444485769036257075188675503408728124455250134305586490731267330760500523741558434868553141142210847775750218598498778236568076966765899898944541883966372076579220269183819710237034763312478064158469789623332794007141887078763271479168605787669099316912198955366132348290798352550677538978952571307030552093187043040522312804437342437427865188414782255708190381445552867764288841882066371596007817856787539106295936550338952553535964948567244045401017251581537441939304996375985662007280475854562246956158945846310392363435635131158027252619595868789476029293155116422008381955515725799652961537159135877391458277019635836223143913524082345355768905628578357692514079149504881334547333054415633326146866948423772886438653884031469676545837462438426354884322607713207056480739266343211614406790753527035944118105289414826576861520957434647414103116260078172977102781628236133025101314361484123714740827727077085072331898089627332625773604738733184165808531829890775610262016869946886597670925867753938747599276792373320428237633284092532653260697023114312885395005670220125416330576053103147979154831450687705886381844213423685987955577740870634386050153746393441459345043243574451111355688227333218120799845210249731295878161282346351436106195304621309752494581151822881588168542407606486011615135673572901249232275658630441175082178415865703035698492677993744994713307810999072474375248145072344132263104199685299249981271747388352287022128815918882896184700604050867228098548679030150160739256723921952294790688114922348148037467025750004945021049034224565786341888573452555337022164713574665685003816948432377009336506794332983543579768025688576123418915857271251392844787174889670285120895520668877151215441843315706281686944375680803853834095529278378380531774748718919489254811097254481772026142816017732281253315031325568461047828522966406870269807306802908166875362710077206483654367555075664694344782289059672232812595586379911863941810218901493301834990698128671871255161538031796195364076898476043232189436335538039025685864983433331106647973977264927129807678288430201429805203864073769821950238925552505321264833078595141413469857405269741426271519545583090844999434786371046626602886696980178267581819574906824921789264497002942052882739159019163394955183327084786138627631983077015271163619910923499328051290831822527536372838716298757653015701416777328723132638071294189480473317339781987496231694232101332397202284011053217283508376466915276151362149865554611168399796185468609313492807286883346781387266831313065400076697218557265887807838094952294145015801250108934327912210859781175253472829223081162465890387118867587934330117764428507433969952666827926053995131244278831943198708752818006112418111837984032959090593915580962010536200480515116984445716384739298802966635187752709506331924341948748611326162145142084539910646112666338614755993360631418153596978693924513330841168570370354526571772135416411134044145054952884848304005422939784914945701243260993322247593625464282546944564374712798683404594525449686169326674972526116484386654102572130353120535203422429070166323159150929470814237943859182460435624911107378287878358350629046074139687741695286716643888173516407395449377768793095547331751611270958374895269112102039336857831936076855061103001642403171096971947221677592965375526761137381126274654363230232766567451434624980227024075435414727190156774587296858424304557756082688581182821033540597037490548177008109439672060260156496950027155355595358061839844761191008845410025729485467757971050108513427884832983400795366757649124746993581691649801439078662371616274404745624977411016581398457917945904587059175696918847509127557682280537149462678442165165279026127089942525779358008631797395134687163799049367276809423899795172813916954931681118112173741160294714770187359105808672774212041875702439431235330385820259061157128390433968147311311609364661629441863163670201770490173894692608585369154852081911539218007698847395552684374472058997034614154776397567525618918610578210362288334994441193077097899638743423207209020227375983146766940761044179432086933322719858060376005070962749414158755512381445028654683558311127430300154839742439200700415747926927112260895535646924943097360341118381451720060090687175029165158742406575791313663537135592428223922913664544562697414421728749349464816284374557881714886550245838056913110484047307870202596331896977797331215611339644269792837233597040271608368307572416133300213006729709271777361595604879315375927183988114260389026558883303379507608738169009492443468029408938456202000885732087043368951395632853236757586488092431264102201522563120377675836094159541647268850397907950060619392105237116117441057795663732539027130235715096453056307368480905452498796844367201831683883884552440768699650582832216564680541830500939646315205194557585322249817517494440282141656460114484751225527327147927394736353039648003884465478176002920210952606618360949395689934572927773190840357586539163475889285787529417581059000785886251634431179855189205131828664834654753948071342797082289817528070197886566397139193221537690525927911447487390868056848501819623070721478984151981260373653092149231008709389094882977375010697693004122732444979333606959147814914117756021860946618928879486051536168358288652738009211564587659189433590479896391566574619778775329294580091585143157899579590791328335516494973662094119704383437825039267340406056601504822708050247407697960582580563531115817487675379547951712388026271981652516715353402833873346619945895977940270704250984229887050842891151189374910317168650738145473801498462170576282179690648988778050165599438458694560445787214812861568546512342024033266624313683983528524724356036071804800357860219917582769094692440332328563517795738869068585088970489712658793149534810569479093168086158509543984379515637791481677920996033068304116785901125857146174153499500072722150598392581518340985070490276657694733119559213385040553423694920947236776270578661690617357640036369202236207844982646400185939614533617941760944853492982664922074821084104809845712548091232597221825892308012321030307172827414183378117521597474208327990526673600385763146088779405472075307468871893272236302651071209082616682274181444265334878405550518008481260597525022215590201036884950377920074323918773837795093160160702395813651510418720280087619056510006366804744274295392924357027241792971162645842862826658007912317662215074416401063569534080452576813175046155310709749771721211864991676912978172049606644329712341851738081723199327101536907255489070908397744249367036482348045512989917925388031084083004529938930716170456204297286104060873945814918345975744701878382180791912139755974359710060512594933909246520645970374191217315957479616886811113739568133672936912659810900301194326711041484818849748876916385974409135470323442715218178540050836632183479120965723666794785729130829818153923392861909768575641677559826881317385797651300619523659194698137849670197411741549488868085457432237657603184016582035503765526545362958133122459721534815811097296891290560164603295814546593621050609774238723793424880273377846091981525916398728541205264976244407443660911468754045574241580510386620874496572966753632049253437518354019386917579127378162531616401712025122570662254958750031170520456859585895391034477871843257821434711540599720131250502795413818203437954424836045773459262423333912393003052847812408224838105910546297804759652214485752242055450888998546416873191487802805420891374021292216493915613824656812763148140353788325766782556056206254290562901199710061007232453750925973945585245367692678995109093400613413180842460520255970543958436200713969323723942643016017748647540644880628180738989758954901175841107063822337294033826449967198429895406079252860494608033858490443210526309234154497413126944562465112997385304372891284175615502076186427417518582962036367568862808704453247911367522247738700625194886798430511993221942626085966590226794462273827411195269811353197829279376392720433853252010779570588421485104258055889934317046632431516821768076994811518252519055647026345023674205096906074599295547705308962080189632295425929163628246714402742471974995090564808412253914130312851946130947215972744990432676250431476975866977860462131727887864780506592343282884122858653576740991843255500327691176090531124905590783218635348296715004830696761841155527432099868973475775600155884630676035084769264931341291064010357824670219423702069857775972262428442998312603411449574674299610542686888310749093873749884047935661103202320410527600526983210595299370100202228524859532592307149032721946635495916443803368149999870074014417672842019120584486687738024789308441816580690324073205802775918352339682626811559593908499813772938081672578659830114704562696644274578678870443715582783907068432761082561864356762126813551723045658927281563227930284673558640980762134683138024656804118750131584177921285832666596615421824694183328904449836988631024744291258155433552144377855309731601849656047383795698198530632794854058407682204171478319042293530816198780520966441865666445339000880624695771428388042204462426832638796634788791358119573373331611913477507287026177705123434330622889062989670743596330337683823794475366640381074197457860219587475129298824392456727159327997958744341169640777314126269731926538319459058948360923104086950909992858373488341112823633979222254437400448565266548438008038857644285176694449308815475104359161404002367548837179225363700096121595585948327322560508416656790291277877812726370953240709110488342890754823022019954577181027526776569424037597763722774662131597595626932309457510401517854744383380252390669671958663900309848236919093898740665021851342117492560620465233881287891053442396845363578602742981169278026074831589795129174746806923791027962216050081890010392476962129797775764082989342812340217461154929731507771422944869452242710215104042848662114369567730680643395948166164706787315059139475028179971734154152589694092232199066485741504718707495786993937400715972327482396694804233187895689835167339013244225516637684370155309978758795058736856252720507556638785846085999810749007915582476564772953019229477918356396999453242658980516350366100982932318452290997883485194219217180941676849367582212275945632596746410333662223240866231109815215854114807685215456818473002919585158147791260374541775289903603616609295947589538695479939259755883066979328042566834724795850964297396628910513704330707786469160037257268829738710166280393279709891583031090317929147746494405653975708077149352337572106318299108352532325463611799971775624069699032623142451930287764064238245081124642757507999608399872067522495745743621059412797533663601429969160445513082194513679246831487948058996047488432598695889422689926436160890575114892457524662426514555166353254914086307528672440258366872656065120773150851206066886232925103661810816620026588528271654244060879705080281408239615534531595736456037406229207725533332274288357857508477118432423914583132885002769327206356386756568209318835201032524310983150644939929549897743420783448196919603954579176801383376205288126109718059861302667577006752853410011331542393952365064940229249240902901527707971239722101709828354313535654310031086045140776335805418918056847792845064816187213365007080847261049748172192953522642321249558442531681862176161956658662993709535692366085908940966444903111412512434323342461442093313675122228052431480085556785812050007107658922659525652668187693346619897804449911004491563258119201814734233031706516867419928416519384562140510500102300735517859442811431475166115781422204266086724198748387106742101020091934764040890960365888930630717158253162325283031436952059064506487560109669946198650990093367958166656693747804871166485985668049993430405394936406459768223919802479833287643800102326048426783724351843118764817911459831833704879730504154256139749654881186747067734135076777077949001349433541250008350794250872314678722502770869906486237032599412408244732310138877481361096519810282109360560988421399702902766596003632715322466239052498569354805659327141421254927316587729229155607598806071206675984183862434523737676055589653543400636702936563362691900811681183360230585977875365242299416835018657942665157832514327024763499392593302931486721496606920301411702704641586766437355895616261763588869436976378518329143021874284316316307308009133961357981636074357700147767642375497866169479163378596183248268210152741558782599081201354349851661714063571063624119877668843086566830022733134393952663778236500231256967805944634528742660440465846149623752547889396596560806267608221170953925903870824045421288920110161636832731227585788236374081968310471069503822108480176958599660969720036226901193907916897427917724431752082872395329616356381723705882907176039583155314986449293499294180208617182481144854391117863412204274834588699222710645739118906852507684981947915311280650255389978354212271301701481573076217610789371039466218659706472164357977691353698606552732882416707283950347632252326673908117789386121589877478333305289014626578904266746480809350965642802349516247146662981114692249250070557061505981523358454530052021917118373086982790272346090208376614376715747690382896125189164605796623885071317437379597602309415087061020129380515398342937455717337781968423125089586741153508709458059980957742355541555782474984394224932640485795495661842116655739606559454958651248684567102879486825292240629734159590581925996749092698156914837180588637493630235623686819506789445615255616901564981942811886738440165010081804649617647880395327378574059491894057569431757432437366450619027491558269692105971291374363596444267210810298792707914354271203412839042258165964687571852189233166996520504263175147454968182566307945616216785093137646804417569918643196015054447530740002030253929265141262991627246329363670293943375615316327981695710418348812643651477342797839856688507566152280622824648646162209211523425402629290770787246349227480972728654961735437328274531418872570352121281069140776302170942465878449914876468758692494274259006394429500458180337431831248572796511620175217929796208475339127064076261129480151154441694096448350047858159444904342546046033165191186276379985359690556854336975088950247758890916687256854659925096413447906318373001075803061550255564416899551565368079297025298166454623332913436788995764412869176784803888840106649649226066218386952373357885231778696369677977048832265523590341846162452733657289622622487303235591558283616568565492276270096585079035615167018112911549961495878803081454109128121133255467577379395210708198164731032028206927587564949629886002611932711574308403344394289948865345235740739829952014453986176215961792289304322432248085840989329380415753029788978063605447351904425102512915921544426498347669517413902509673040324199177057188240274383946586600750025128395181739169572640668099162069884236277206878266922690980771052101578257133802597337633475575502511502865829009437717486112239655997897259682476659045263433477732039414411183194155694393932206773379767663634726263425425863941194869867753037679271535809784326064571009368943091297480703316060704688339002907812654033660111842417766179937896061668943037063448289041129597102237861149732810560927503204110512207400860121555180155143878451925675795408985306281220292742259062731961261979023986231662667019894360562859884102504919668931966296419338740264485246662094196562355402612478576229567617240675526386784812903735302997340278692903354081841504184271862241186744795567836354064990879322502790864198211397862413379968579994975857559460276465478586130320599423954238596069770087591707620067055429285517358252960772404812189438102455004504027880673916233601602984406292471582752561403725402138724953369681956809389972687666553240654931273211753099787541532135322623159585092892519959462137767178793670069444375628752471452568266306838375903598966850779852961543128390785323290707579161344035540816464773308183097880113892309670804574419200956053709263150297002549928205311674936295130342229094397549179935607521605163334509869571074996504589899291023791669957134417841536559427469699155034823171186546436129405904874474094752225712904717545992573316337994421309564362380379222592122245843753553113960852043193879505047224913845214031019673877610778157134541054711423045980030060298200566215678007819635789337915407573371972298654989848625774391998192561522770125194011385297056890136721694882885098320027711432824326880962314286714262063072036442033417563386215806190333699810118551957875291632117606468051405158704235561992446448049786524892491484571012831930294422126325573948535844932618353845961467789774730994506574102614348190176788555513550946687532888645131660863645630043956172539306477878839606678206472056888333600805701014386228472816350909879154737976937626564376073098759730634669294100745812560543255073973142690212972300058114865906545490078490758342494929267451945298819585714738989086329999098339721837973413504202064961398492824364428397185441135160339213682150342811596232603095164900655878123107037516138440719116358493623621495657578409332171392097136197138314534611110140800600400300739139438440443642507189278741375575857430139655492826781765943158738613413790719110763071728305054762082971182922195605128742375999224519071443390827166388974831764039755319564570105520676151257907297367522864746963323487733245957918720163664495691072361381585909143200933233279757268745377196357523176733850194692236135578741528739589392596752839247759998208555290305470316166930930620287259886526936737058241268799827911020423768890906257424258675479756563545947316179151069078224792825501330779614848559191136528936271016547018743249521033729032255284432946700263001874772554895734129545931675306721289288987548966393571685347290479081524033247267219837376475036183741244873188484126334798816709146318057160329899715807699127343762318604410800652749888549759277383948644114751223121093517920854359317048881912634988541654465791289381779295697712160432997198184671645563316530212973627315218782214802101762685946694601152152277268667779068411149221132471656939503120573512633495816722567643201584932415234203591846225864458168141636107717511439411841195462990187596204056687600398784343280741913952500485326910607080480127471540436268449720122482318198963189476405919159914375401252977074357232794650942835196509062018549910340806910644616316816975178402078825038320179615363610766057800173689067843412129018590047047171255336480498380232156142894421081358146283768693130315917672213667249434790245922369897760295029148484958583024228671998381920563929047293998600437923315032793191492714758911241501683301597491902640755047061065865665837173107613323033158759443548067289736283084525417864980106338762050152485628447744132963952025533971188796125352906680153511099855299447956251623971039733582198885822733363475424516245081137691171392553441236474914439753117971046936362059760192903571443275186676036195579614830717698413325267712184915405975798103654044630960072903314356476650987603581571746713920127240194968982482598453021627109883285040573524160567453718714862146954454635517515338283715899764641352482023428064200120084524551266962884859654439147259825039758272123275338517252880594267741351155253819121218253592732217316213714448282584014601395526718437335080581911507633699544994769149421469298469173715140282892686335137421490969522806073650129721275582158705938988036736299944300785547045398750473508526262652213085489129231783919275478203031507400634827905927135193744467071978122091969292846484896882622639720198233721132276516210893325235985665160639056168063134886171680565064367667557878337281078832743197791131985006524560397904555599049522296500896445231053792300608829411640875931910024006418928377632613124191481664710726832036183123462188402126856735915577974884919514299249228096717065501519392539192004468803262542810320179448474372832568775235806314289359257918068025449201188073389559280530560666720798198046835751031725362946531853704621124005202175133571628067509109268379823699717928024486673687406900774895111594931531879425633731380499680347396071651191387999503331229784106289783554510088437663139035187830003003404873150631962109081026886414687354223083739528327949817401754791639229053360127350304405204926802315621321260746611716516534259668387330546810225461001932619216574132850302309248396896115721839672694661743497645893233876688962855457578948279594701229320268651124942291181962785702932021579066482109202804980116891045083792646772682216440688270910621967846642557232125202180083386744474627703997218738990679365622089659899361353868180075638414040766058030433302773876408866149155126304415020998149013619907376334084356593378943667764427961801751459569680976628562389920654129316674109812449868760433250063252978427768133598391223877191858700088486735518416382297909837086610122783900000507611362000189112354989751614800157539243226121402017496212490904899411128851512609858581654076291587732401920087813748241701125686063491534865610764481442921100877337939037939019928190564254232185568931842112500392926604650738532193511628174618408021681045072728230045655408433744800497314170095750848548681726078929692549417858565782709363808516565948733644275338737541349578968890753188748266870480705238661368500724470068654388037848921350748517345616789721216760101998161279242806130708088288893319698082254357276648740457991989832154456234912209487464310531064028918595650823685594283317288044558771349188408294733200099859707220976176932131570976208424253138363382473461395394765459285208014604324701383920261302037144853059373025938965310698646950723948655484698485129907688014587468073830975032275103713376694544565046252202499489929500798423209251254524893882690533711995035005138905635260191514826272560310045941445587464427279418591501952940004951601397965753666693808837411705129274477149753876904076354504268461030883730890214593705803938641859884021392516464888389649677990670599420110745843999317638419868888260112557402061100953193551592129832427888468248322694703463020753406806363095623152237744097340876016913239331448624070046493795984893549259027830908514625091789991658608651382900926613456234203065894755186841375464825557922119816487782858989152741817364070807225637466781660281017442782670392155493701928215827082251074547588785120549316127989784934204008322400396584060112554613596301407635613791389004293580481496167371647921808024110278593588339501955969796841168041186427514134873056458330449627411372613552712391725487281247675649520602700560339267374239825748330554312172476820885102569711501391151467653721893774213316956275312011687930093543052340406612461880185369123917329604083020845281236189737525222885433642463780332294394391894694466839173982309334219029448386329654559409317980658098752222680677650731720335093041228553783594549030908559571030319238380535411769169488948903124719974665530334784235466428011567318599160949057183823236383543362538423936267839379224475410821391181650385310374583219229047904715634283870035068129458654559500127475070861832593441511716993678266860657072918574137009843990032849079854397599649651797171144421119343943019296108694949500368203541191482427387213579988599423325767324787961446400892663041921005558709431624097134636046480289798919038616134050577020991125239044855109156495670228408037322009606491741068958286460918577955727116143222195528707774860807348621550895131625965149245006119832428331074418114770904890791636745788635855215782508057127503695674329499196500205461578484233976001827579103147992972052768365605521069892189907642665945071810243778616588726194656447017314826119359120230074517374318128483957399304019906703311338801283764203365344979981904912928110131506662982274563262820691637088929566389482339791189707229450862295569730763994340464760227742929560857053636828921553374779992687964803049495136537492246553957925011973009717253445707127592303471778023037105015689183482890559517394290262879703880414868951504579044705765778464639493489396752907492381297566264953714120817164997281758465495543193623075382013143527924764241800365202842883000500837089325893528504733313035272474083660183237660502822066496481265673366411420426206233550676630883021144725412399415314244671221861984510915586284987981901195742435333923811274533475913739590571238536351614993780159209833637231347529126584305863972811636878654082558392798791064439252194374637364498330550942810839964697248393456332518941889037068516607017021184741275279673209606049056986045859071847053481126887792112429984198329623446483096807906612365397257788576964009375612846700849595114501092877787243134550075967959711999802587142345752947941680333265468445577460111797620418208232504770990101010051258650355705059953589134842792682275236114878780246789583478632666679690439807809146012166876833040060964161746247731758895618338517962007125274979205603666375387039672892168725671090657298541959393004141276524195493680585799691042190820953068856775326589638173902333071333947466784989655155696897378142686958862749547172341089684607263507814625793012932500314341065080622627895391457235875740271460646403793302822283466591943099848857502533090778870446795271546078925874407938264184793909757114060257390963748256276048834774023772711755287285224830690839157559822752331351895337646347894984157449260329982503550622219420165261479209945477731978949441221463331236508702858706257673613800326345936724963870396350697833324262303807190679618163215401491376482189967749191788914815531692973907350626828439724670946949144951555211648160505534848528137697895018076685051922366247281079115758181545390136506659272879347283758575754562115950646237097755416362079598336079127361877431964270140593555479425312822849573268707482910513421565909956751286456154292590541356426818160243825065878805105075656314492318125756784785129652179805727102504648937350285799262596243636779043861134624299084682996985557775270456943579251307288570897505991358158101387911675145547312627134055690936865347134676272396234797915822408081827828839220288436567002247723041508613063336879707352229123784459333834262966806929333782209756255151683037823079095025624152074053645319422211402540097241417840956738699337404775039399196158015568996357881404151132946722357266209237787141062367523013190581397225926321580954459283483816156752121296361699512966107605354466880137190881442690779075019458839795387888009375148301913595950094697910302653669293943863779483300776761566163443395375919605072017432252940168962951710448185524850132818508213875355412977597231267603623686305350370152834373131551278862038236372470162801395173584950926117483815230111285431773139367811365161603893361123992710181593599867073458264343704771543662372948068433611235353964923072245348961584050547426265768743211142917577656565984968376855928129234437497253462419113493607476268693401866507858630209571344837198172951003580682066251513477605861959951193702624901575793471843923935869833729267643776482447537155858084397000615729307300256974445431191313195231867305629795413533837667093792094880252092573587225190504079964276167746403315456895982788329988953259314109555815590403112761434058043662233729645963538898659364610908758023100152394696795730887860359320934110476639462596237700038767256908019902484766831411264841491852865468788789039155479644777692406757191106537987038363769619054748591481695488638283120135255361354864377885105118203373599612925654207681894822412179041731077044406453649624316625250242637861306454539297510178705869681291608484351178013999621026497364758127606856442427432577046061908957830423587673622706912472092110892213374994011272569579514968780872834664606105987028728059198025120453927610118800512985841779082604448574213239342885510112667409455457848867351278813972271885327753326898515786902238574694741638314798852190805382320929122826636393656728203854111793387090312996842826404373225549404054118733528567433272216681943584121581846943308821288299240243792574479718963668991931815268956864954055081991577282847531245039624029020879200540955847467526185433907399130427273484501028050156256538967167854925642413830168270676744674148772738524730650987581348062503490627433288319954792947825848270002764662852546127507876118484729276164070321226387696383552298084995073642683863859563211413880193878532107098004401089927841973633868263611773000023164965200504084669353896557565694272852354098605787549062457451817973824870755598772998791756666746913535575221472480232651558172281966831266521463388650540798855458145569283669911974091626561114112230030232693111619214208949107392923548852091663533080722119979343885760436743722544716368481881094110577571929129445498124705100763787903631041324125076854961982109779937545547647724108018363476487944872944118611569765875675303726585105325051959837433141686219524813352395145123957374137435163553055009527290427236203153256313339450591242164698146048359243402395977327879320580825954923357572812831985725903391750817296699654996498546970944650833173180566119771902087685085224777253595435274653123508403932625309909575145543936053058200808533656367317902899886034774492692563465894223686468704690970019322234880317967912164323409169958704260923504257016063317055649500582622283403905336624511658424619682625852364995993954811593892543564018503065580657054080364610144249196720011492355911500049036705689336618403262793264985156773984874643660567675041163817239575823409708577301040212514246442605162512080154745084976817005200428971789316621070575981331265222196118249810323685110026235990110402902364324149606238513741783617606890808789469897174793962253051292831948114608466210922377545963788892413726677621626542949517540716939327195859154605442761931193590771084226632534691758780331215002011674322777857439461237150346436028156051389919877807319582963955666035447843692437309510382399068010553009513115688211164774805627290006161043093294635699472537195273391602000922949038118617293492222145564145225911821769947448925090505571290284213750707507932922739874391644881117923448019931156078628309196037251719771589281667751896333239892398484787679684681672826807608057042576755934003291089347161900527796508150225683490169724599673976117713848617977016972680518040259020850781276460680493154163865919026201905970580536396413280813809071308947891615290540255667103226960618092781564923874455510026158771624191480981106945074317772763248868684441272260913539064402300171789353358558491404722651349140284109579294990451036096730974485377675277227557290412427704803786365258200893830396066061833584298115249955468353197092849917461352982206303445529623577729773421604977780619616646477735273113282166522627130914649141271539707570782678519828097221438868247689122842822954194109007158506814556008527757951012848589673269868857353570041409560054310024228417774124674459981785521982656414104280247022795153495404787195268619277758465317720996732732801906709681025790986639695649195797857591094980437233412735784796439004977612136143266181116789170243384178312429368172947047462705417451185778625016211396892376209117775933158896686783866169365641667226063600299714937176242998371270004379132339110217765562052646615199262239681449925705500850217185770630494049186279093790809557522389321238651455174495153056846634945328215295743614278360907889265570318810024663068151725963230992432076519381476482381127212051377222646509631348263786185797218465410907884713956115276571415202781620803053918795854439287351684558278730819195741260783175948324527686418804874205510388949985496197364979463343040177754157820596384395308828855406261009281833889633299603833914411423601325054382784485021922366754506115733567688678552253480462687830936638383888804170078676879981473554414661325809336238540989601826785711926756760387040550856877256478815356948435448641442270389613178005422244686100910997425214563478304208634400342518618877022319643320233767031445578456566646951313700261788288669735820391747934776749051550332231509122860379094391864883796444526927979064826819396489804211291685197615836132285997955309101469742798778285997693803237443249481158182193645091193189482910834064600884997413626164738220561951011307644292532922203273395754474669555246042465502416731779800403417544117200863095642936708391658815926544498674027051532677393658675676951392264458875680698823556675870181366182838971832299927896803365913395767196292526074166650543727196864938865252235276083244905177737283658412403287531227630205780131672822795903319266847954551166589895297474889341136430268602972783940084817012200395345318573646231267283020432285198300955971026957681838987341753243287496667559821595783254562421338007016879705502349683164875631708153941759535478382201127814540039168888202230918443344737859005627536029669761583536005994276811651193117410689338945379710155907527177049855865761625948454596459834651440035434077172756550412538719191837005005407234350994756764529386594932427098336835139535245178499123992296167454573709616502369666223570204628247045116396898604603844323820858095576070228207347656644342445963450698037362398918001873115035550391907387559527692627336561270347228533905196159107406645963465052009893372316152129343464066210738044136600766351021577231852446982715480618578582159301882547693968792839893698838913912308618779487904276680745735396564373304626683912050733942032518649790966402195996482376742860264607341525660782019061610653731711671426315401326574690455961408505095661794789729551681661481759247688625120985140265856083937649471353239688849905119717252892586615275524073839428277387513131903870513806267753562508586787839402429036411544066012300136332457198903945796847051234822667060697466599467805746075925600266077401130753672276241999442562163892678167924123534339567506869732556414017959872967895335288804201101291292451769657447235825395543905300714995185236459740374324262734738339525966961421020134684053380114998494728373667324943006737000407379142314449085707299799168682844262210606175295305310311030018036311844646241698980695304358681425796231313042867490391290930427475868722274492536855943172612839286511231812976509783872476366890094426453398496420996535015132234758211313567428764797877592515724158745265092649069765016121515247128567181685791007508652082150657077435903383856026442646088536808429258083421221665043282779399328044683208115493004326661644763968856683874884638242226161668445960080929044256640226317683415681227521397163773740456562821363527465991167168746948917099540299651028861821416268112671563890633683232501248635704303065518556558256136245048357718449202794123831661512423643998203392206746432881311238087114715869885162177176648777836033610094231088113180996890205460299650465995678172634588056230817940258118073818057405186627693229842154522697567340118513794370990552083104510840734349799907642459002134519053113745926878035051007195825736249621487399154382201075045240498739083361950911223885510207934192390669294753930318225155373573593282592100440001886214391918875142348666568855430524690609013426045671756920343305064771848886077201300691543138079173601889951065927530732011803377128934265421305795442513890002130187222129090660395740669668505447941359268861500579956882673499771918670689082330294439998688733013654220906795549372752549439710054541447020030799663328392382021784383694210222976885630471117403405562347983225433200438746693378120756557006513555971213212397069443021826602927572162574255654032316858948177440267917320531064752847037054014414125139592845326818415653528560390454136509107847295810499967699168987966744703380948068374339963813850319905935297675712867843535961880620367038727091469899200398075720430744235009339963257029544997982209903927327297707593009741458151304629015248487301980173969339509456198045191920075646298874169179006629562552617075023726932943046403503677842287493832651341300491558313637605672165955566486798803727925248705376194604656646194985433358472073021036092893300906463684248503765464608411930642694339840395820974937771794870488795085926349581227661450400906418650462382961969663569545512684789136005510349752125293828907110958338641665555812119521959739014480386050772472164270436686062984027001962302232001797540955480720469420236785404999311569089505537651393002813042469850522434724837427823516851761113740223543881808468277746586124898625189727136230888757983957431866360589264194984733118069484227408226752394480726734020187810938329965189905292928612249346872596492335340799003280000733896400782299195984515291418032683617210074402033718882802826167321627159303760429890445711272167802200335508921102714525943884317660384436701547635107280215131769249531357159989764979704623409922794310277410998084950972335245258207867173371553590141154693440803532376285238701425421026843635212633068521988519976969582166020251605702110468081914564962958259002427359477337999658711242283760735326514067468598388651775194208641871769643991113168366722335249162554659359442208404493264095328783175673191363267367266333727565103980459110063295739566749960273261817151344444561504020548627793173283327755084182524361090355756388428670579378132572331109573400430692072763019059782408859574586651687629599967940375534011548346037565847282696596379085316427134759579655439480266309664816714977824229476618828675518103680602485650824638921315941527900727997573047036719819451012355655383719777709812876585116023202370245109964592216171201092508419178077184915154794092642869981700174713265730853959879694692338423472363708129463300908329518650143801156982084505043031187870292033211282593102475004999501089524885724917738311916379118023687947200306247852646093326936718569110173703545191538262877868693255562662883236899579311908186100264974870412221806188631294850236123208805079556235309466756299126156275767079208205373726589929045704780043315892175376664026851933283917051419684214609873462573303383149683422649441393012106715601171174768079564582164971513082249657232894946482509173790562193913380050697185548263677232441599029408996737019239173497033492055326744932638911949866266304250206555587042489512503499244351006820445802416200527488568839710727227669516316442237294487069610856089494782099645399497768657710171500553148938939573795285154133765448545340166017193593567862607185684931546770753925178296843837471422042008631467137802851634871188220355261691048757884503084965082981013906094543150175698965621707406689533652349849450098490745948582410119948457563799258970661543669172800112015518165606036307758087137223640999559327858615190978923781240614413267128923702423790822622384659882764962484027889144535315423624297760640816349201132123183714467062037263293193823200005208993405025665313177383373154195708387967822375887438358538056212518433477542982832491225343281668723113796129408376305531265243459985153903214088272086490622358036110734923765077223038375088158603415316981083696208456823418470713022042209263074787089689096224810803213030270858992993292890031021557950859214640528558190472570991568990011198191961651190389431214300731334493795084054398476316972839384835481536491266980344210475857344162078397480492693053071632810659719916398209005805003946095924157773075018248698424974888831318974809714809776179964436124073727463741538077967221358880730338547377769099210750080000895663440596168175152703975914621905349977622298410303775344240074498957355799717706422751713095527701148233133946243072786876088479324880238216979537125528114988528100609020681212498177717303799833069259274096136896559120143438605450723682721970768025286813966525158601176175587937460191664660116543348616363405079145514624298779779990630462364620621231293216684596538747720622714695329547270148412568405546187182477968661491964980919340768999081753455106793678296713877284415518261546892129902783605361442596745025862602675075279663282936275331308210335482653622716846842600096028947309178150947264878290751114052520803994494054396637326139276016759636593673340037402349917030025468816586222467273290717744796129551745548714232749031212385045541057244838061413493914655100679616468524895458232323873328282362918583513005666240586352246793500807728074279984930281282839280716183162499901698083640460460188150770564623586829022124417265607860553531181429636447281032102543482557174561216142994824239107802308982663082689796128240648648772934134929850814142028117847191047397387122479494584765786743226461421268125375839508280746778729981093979729840935725460532922460878080745898973819707402019345399008708589657257044194416490571185284663611050404856008677772515444213176597561986896080849414001749061437703764765436831801604920312977350293721883316139619451455575167304420580722514441088872417658168893281474103463035284845694819738618319130272256851012605964964986049639058468501687991071312442043281673663224187604118516060713206126180478996153289446844496798759908668089652714097501485608298270299748020216198481735424923055463287921551403140245557158982852960169830062233483532817964939185221601717094615202582968793766430584743914601932931202737621111598853998963046267004013275356869212181602589045732933068763320684033668710270294378001271692216200268162939843269916242903676208618004585217294234911716751185097839880637157175612810620969998879395328509040313981294210491192454469626253338729537484778449067923797080585591017856527805482670626905757986639940409254655579093062898995058634283073780402349460732432924998640687924731705983251601624370384046291721656114891512749808228813700124606787411831066971934314803709160998338085598209283530177433375938636604432631865451290640588441969947755959087116191144293691623929907401217880143229124948246085498827873168606004038902107231026413383626699747087334975307445094657764262837962323690577173524298684318128480538030761174819236711301044024339726697623118938024828479470443194144990110723242319244068035510005030000420384988415034520008246181998121274146681553304932497183121411011326107832484776643276436258393843015481050532379531710294167707071772284968384170436717371143201992678193787968994431459234720041061146816959624165347414992215657657019203491735973692839269094054137895050243759257637622544533156231838327049818585416377334459919917733974208029171227120914683877019919652149627277102040455671575858995221017876293010976784013408820004117039398720563485060920942875610234792603603076702422086903497601049044033236547606578175768369998801802049062744538611268343848309195578067217769549086770482820513052482476154518885718033812463371883002000024974096881146173280023066311292164764516167349084890847910462610357553149905792311227852768433927803351007385357817912634154965627846108559706036431031074141922486484451532838860209024048024357163354444517988595157951779705169755464497046069484913598162691377713851128098888738321639957574533776215714735665069459959479486371214404792394716032295656997768756123472043205770373683584749326417260673622206559442795746029277741737698311262282001561793162844876132350697168411750697424406457535293761652101268561908340488428647614714926538654123762704361233016666059491997748180649209843509494095522595333746558972187978013688780557725890934252303645891354223562522350101788334086054616067775194725305973350756959329433899863194178542265093041445446256982121406647036391145282134938395252356701465521885095999462014574887353330701913080473470778176956919039981826350386118944347844111402065179641826553569431669580595656105377820179812241477516238758963730486675009204687727717170584102286272636152472671514680640803093799280065690879860794185632436565141466466748508109510935111063383311387863723760376948141967437628779764101765028034500862019604888449429607680039432701057606123846185611852474184415409083489220660688367248023026836310364202684094300893588635566151032566736417577069339741747455670373704134161105251343099031366535780747843564714018616832860450008813252573047720127016706484963766995252453630560210975460611546396549995045715079029270521101955727427125670556105551517878667866336324682209246103009783429010431711492330531869031264575669039436434140816020622736460550480131846191366574248487498220705814624590804245470163778555184253546990251706257282628660191339714891196637866415372625418151764782142188781257353447152710869400277672603424850079994587751924888155199998792275240672784842552569705576747498133069529113277583406543106001788875190190436977088090044865770721548737937125513465916260689612020681183655849302094867127021194079294508789908854590243433827821598963162919521531386093582352653857411343173020312323875395116702850891544820732977046206823161934250015717140992357599325094868366557180094777389670465939881132166159808345118352499710481066220876435742972569503787859343981970204022383699858307555288110205977867428331287688890557965754070437138041865279106493010493194161991174761436534208369694144207648846488397404382098309283297043193760037799189430373737197246750895839806826006405297786926159248039187846425888564412333311792088737648352007225286639836217144601175516718332678725376520906271616192569497730767374417003495037276986947243311699018556940061569523624722713829698215603951016521146058431472776487167377092522667180356143218965392670909135822022391016958506414874930167034241367234289884072623927213126108419825859578151905565062017293610285668030342300446311003323342388030130724790809146745026210037283059121321107283836080575439600349390866001345811075352822470545266850899194285398789577926961903154121839718706613130685149243290186371539430752478317197098633297442388747335105709464076202253914453156496240236907113114667350642633961760394503045364598709052073862444379154634599948084643445689324515305242193264212158154389373080241711681424617680255371347867451385480937736639753868171861943356322185669281937028036505143614871266176294557809920831243361273686444711351983911761574052175598634977418263797907438069425454990619933717886296542623777314036316149827496047216473732539437433559278827264709946968412785279209108612369719281090676649338382152315237356809224759701064833069157649908330514913021899376414151838360438284618849431385697812672935723615844256367621907659939665757160714495647646376856638486922895255367169600533666953751386719611351535519210855082102444301626338568071778515835461763917962279930125768609866689850926135720257810892435643359075483206916397652085904975366088259133938134250473928303035923469276823903656566513637511703188624949705197579898513026019286688490857478626281655585695486300275576808475771399093676425266063916994121920803362771415142150919999593463161898008492979285253973995315210355667430125973748932748793389643431333431169508278764739312410902409906287221673821624164005230610201154454233585098860683756331351435241261616257248463086895729391093594710790446029660249712263883975660081679515184101896006493555563355698921197506258123049213801680278921875891822084425012512578371032892784860517010007314070542155567951217581285140676975755203541804107653596932093189721435387081404070439239055836516418188167001138241401554052247913444441297753942741347589338943363230838799688451376082545671261936825172050648609159908969678185916333460510479954943955189537641113389574875588086662600480255726832756068517684091107889185335427725299775256266954884591602152369825481438892410180575936071318159396225061889580014741791715094550414984810309967828334084882204838019364976654627162743890869063026891250609428062018914396626292851585387199752161260061521466500000266758260673101695200677790608742602159746834537775851663867499328231363666183978913843555135387057572263793557588189797936464392210660475377850257124257192919894104877549830729483463255740620712427635277696905736052842478462833109064590465109963557965672349704267008465619598600506053698759727167270178749620514479900453323689565758283224718277550329092895929609153105185969206196034910902160434754815164275646316711220726547252947836704038900378470071756040633216225849318986250414868858405830367192315630445843894783169906364829564133334996266633634066127325254781389419197527515433113939501265278874763675920118929008242069667958234049212347627247735209443343052619045169679351799047113780444176495422845318809594394871002055756112758160380260700846469638818709960693515583316334713004894992990729829287714715623873338655300681570707167435048468133491412513688322085278142337350509375724957967612669819809287870368893075820502367076992779660305666058087420794801924193790350662778336927839174325668842654227837402268894549173172031627505190336769011382859549978638924362366702234015525063387639588611236496013358705682774564573181677509484589902860695008306896863307920546911932331857331600578142311295136865571640286783365830785657855026429655324524265058438340438391437147266372850959285606857905967967738387652299319259154356781968095880293240158659481956039257420570733246483643904763416646717517254344159697125299845091081256301264289370323111166543416463617634353901191217336516712661550567554458459919772894791235246736095902208970335484090330417528180992614616526330001802514344460312017885119518511555109793793418762855841899941922154611525262758539941632368965118147097445867458114943284435088921902555999728889390375803452835845884495945270820001886881962783914160870194429633952550047677731330471534330814650446977285007645557984406461309200674448651640010535078141394719888066241589331663252011814930396662074589955669764897706396561094197354199838220742640601366231067897448982335343184547121744725782281911027893689500822214422103827058059670978538932874186752984666585601892596994483147715476138997125902224830719303337763001065198299026787132329679783204845727723284624841816218293598830158753417072377816268641162806266252064930661278613888957629707825110833397705549110247553146525018272223015158693566589666928946533788072731659830311066611420716676370368325634688983668375824930683702322692445532914073305984524122697651677639743716771105744202986801104008227249916458281512918154050478845944345771382227922291902556068191219037418109970961310489418721998301206551161001645658120311888222673945065297862132211530396462775707694051427156246872452213709784567762326912224603791178793984468448880531060218356745646161053073760887412861184445184508201463609572184239918590163261780408069562100438922331581190741147088275480465399722693909363861781770400331602009273304107154094397681925351128883260571837034507719460267024480603518541592185907891377221534455970318995071166801617181958931838562735324314369899487205202595729671901440049752163261341544009480217629501012905188163384727689092621350338813937332864690325206445121783639458704621178251402326549681705976506257145503194521410656061531344424295095007707486863010272534701860628723729903336951701012156344020793036619097720894113040636675462146302784257263981245200456949667255504066731203067992477933878122036760207190781399216987068369999498551819918685541842656418278535680860091365081203985392262512397493293160839587941936905418246193353900370424138569517667646275104248492118028157649782340005450378274665125073061833376435888404501688932412230337145628663393760803386618702138472677256737578823827306325835439756399507680281254246696297068117172034581445556197025961336966148030305233400376415532498361656245014422808200786416184393358143456587083774070067322679713497185487692431995033059808589110037654245007406415047841284901773981427665312539424550877062501062308248588960015835018768303694074064792430941783311590702272002465394519460875709568738790520363289864466622076338159644417381155694082477713174682097959735954600507899797776570709327508757392129527484470366084049095896305366071023105466285182900667309269422743305189033818918401421724879814299360975895807054579033463957134604185018672583624386572372024948783049703891809432421248249830832891225103003080189303878886651834277794157682901201832773632718821685810048297222998653744160874195393717824449183075244909192756085441110395399965656929314923148981794481675580127605464497820279114516322119133071048054705311254318017469863308516925109738466859811005579541291511055985397882375621754150283154894634578892794412124827597584412620318455634327795617659031701620571062578027951765191046470628415330019070919660251239300478425179117222432872656746285643858023634561193822460607204164757148915505077491432783631658749564512314089153480877827369495574219705981684087050952940164465003254601276007845671840530038576451146673222755679739993681676953697220839192012531000188858273788235664307437433254487799075321293657586071011735013200251431139703312369329003304983459768663038212827704386339207007361617327606091742535044920847234113350814775205933177783225402933850980668942197868704436680032588105610654950790839146966316834313613676676033128985921297057308057354681603792350038646910076513981893536554855542349988197884373684202346736112784614854600578264156030051048898909102917500800680635354707029699283149226534944152138030950718398923650073708431054693126149352711782486248148713396058161529004847300263289756287981432371997413737810834819544907933401946551605778926539856940613634493565310044303312183505416580281301304142366703010226121711746072782993200021274191091877197702852225333758606805532196694754376398462750189502948892337031576394993392084998144012018155901744527786034125853974490308011227579807440940699661592652801278135956561039816708487744029153331795310370513648329754626177380724651231059000838784801698058395434495114941920090466657689848461408155742165193726031571924155645559890158820771541555084751094636452739420853666014413854021313769974373789078154147997086186934506015088726370377946455257299421426254428801514788568450227449349902666695056170148787530285170581837144985701971463646298750640860787065992381133372699491323429557570563745483865074740926045343924415145640329582498226859914000123789230970207200376626223681165360153064426650245339197598544124258197859016068646251726911223332409847300472692085281356567742154671950810347302501932850137031929191917223125693295643110429446973909159511327088396994764168915854073352406486213062699140559215484300545625583887425077111132824343255567004920153417886891065695811572615874984202231097856567709342598963116892430816222386592124269992815296383845132564350041722573854353235483769226407557938827349767110632162654833942403147849094745523952094206198171354153978594124020989048074334498004089621222058121928413266172214024383260638581407239207109576149559635614619487967821856888270116300219622633019801105767484821234513384934505307137484119923749245781982236750506363862105861861446237036714803485213738146938656418498767296563836056207320420739101400574477739953111093457171095533143157186673957809032622354043992223363734945461827368817104374308864046842047707478844519468191513212375474489554426079383908987199223357975996485210876902160912866713774983050982365811176376230437661095741579608458323276577226149994588808135584059702469478579677381648111121063032763945762867133002544227858379991288624371304462630348790465327971942421348759628337061083736736858587391636036527977274574704984741705685984538811476606161666142273896092122654652450731686217834012473461109940700941875690174684495148132217766146261750416242353881151440763872002063542201204985390289022771896086091244494115192908931717846822705366929693321477882635882612593596019942782041744031081289751930712818010155358378522031290363594480497737450685917900541256465091801201395556417604401513184064470883880173339490608040841349373124575858681433214026913881556295163650412816790469535807058565719779056306215103518763406605415988025156344464052796039926405551143267503418318400489118235895463332598991229259918462085828618926005235537467923125636820114252451197432309540348501457927762399930479737229797145090230935010892034442974146542476905622655834799857904624348984378104054172873789421561619311661590440712567253626502944778840513259733827946131763523664867665846998170866592932838015561489169395131784501815807165285912575463631545313750491590012208505042457800760398755053879674816805694419772624696116495874739737691038797318103514530051158517910854761700619454861050139932163974125798732450954356796553330867298285194254946406046255057973469723046937492641564253200823345443606446754805617492797010206612985437134463303068829734182963350221877592108059965105681421915957550967096038524053622781553580312495221561821510142002004436613445104101512961608455231221322309382897329983462036858211060591317482302297267323366332737425322631234757036342641756383882450219308334710473566897865697884140133497043329192321700736212206228149121255059821612802609084120125851238757097832976004299574848941181794206669521400700036542033261083742624239205299008428268289071303128723326751944130949892266087886243914020796191149697233254146098992594893500562505743954974851458541408591159065067021301605857246785252366595726520834281172787961656802240458089357147324224521681460038870177815440617805688969408154273345412842798570042402970148205293184971490140896388354902376011366702825195563156585658736006417715527395494151348327139042626442336422062451475322829738998948544081812907463555712826383039970603045388976452696362490876848943268470236926755007852573710529121994348866575327042814903631282863347541219628454857763857383497151799086555027955273231356852250280128080995042435870542793919968485471095809500167202013855715414084770427179192919719962788435396176214613286994592057274163180582624747809915680722131127945503715150251245456255675772620227080707535162263214303539038393763987394038625834636132120394293174064032669326557800059216241057058130460970857598344220681207475299997329654568445285658360893756015987299127534999682609081034981573648404271692236148038888210130154392687885054092952396060814858475487600628197885484530129736629999986972688345566203354538342915065010844674977040901117676996504858973497862016335511259855604920180037854665832883049649402916990571034396121067130151327282344044360517180108130136830718884821950967097902156519857333350467952145224773806642881298413256144734422990128207080981606274597090478193110652059820977378128615497217626158561591693726112379127598842817133288829449783925093800904427160922636106948790820444144978983536148627950319692413088880157390920635894633030633718295310480378842270972732772567529783682095947760319873581570427267275146406314035605032164513610460181106759264213445494361009081313492788098330935990758739784159929907895088807079428275682257999059003941749910579221592219396215353713414841588432438811460442814281074482558333964368247384158771730486980024780285376572260927322033150172590800847159570539959314763500482259871090415254370220139183398933313522350897189441854092419753176275179528122619177633691986915491749825456237290453100332239116831423198081451724228096257602742546986355992644594422412762663075946200393111821199675300519321944037682418802786356253389794101052467868278970086628448343412295096249055772458747620420306636241374330742698649086628138269331373587548402026596796068272492249020157211110794579320379356556964866582304638490787603562058430676143897185612043863600136528840888677966492477594639282182835536108267251900252182129120342353739228441630392580953319712262765088890187966493802431262533003178620600442632646097390892934537321617684887823687755632590473555513155359737648387796257587565406520914777143570167865863572095695604695631409715493973082056971806666030742448604791982574260847282227763911725976201229751374022330782397089280045467325171237826228636732280601638285186270282619911920364244028548814542900624366304004385581209027242648489753316941364500066769862066858219510432659394845106873474211755867983594843498883459055518685126129892308712403430168478316392912209004434091190337392046373418641812806660582360863907893107548899368608309951532377019451134837499841660378142780266027983197587306494694497471754108143563228792610196224523931261161045288510728908873700708990965738502276049975603964287857500105152304977816751725634556896596498083524239667496757470523058995723247856137682150548985662780756939993868095019594938410004888309604317753449977541525665253743127027191065081180503001450210835381538868570967452240299567508131111759931451450938442638152448066965078829017084168880275067958715316160407665132830188614127564071346645638927388638849780201903667073214708388442837101156510529387145857605145837071690284028441259689327192245531816897345279111818971585332270141381893428576217990698871381077682562194643780067350736473901696360773774753548319546043124440323651614548505075501184728946275245990907593727865015847675152938635740962823013611799742852725457549975961619316761379451791673095044827660660024569696187926382677842560391237548773402174481422860871187889968295431958150015877521523354321448255186324426521006459841934056015901882218393331805584806930845527058500092944693635614486508532588153742687893920337396881338003227245620996189141268339594520268856510927076055669322225270902046074773914638800961990428126863690498794955650174810465550324269542542448295186044979874382271684671075116610727386422503412433330694820353670581408984965119995952770314960776437844991273338498931200584802115330564444945187410680122995990082798989166760588489704716449515583862323428993044301135406958247011611758407028962455048543788239110069754380383752182529234957806476523504307709667351361702577525268634180881208754882265904763430952692498317980979801257890613632233499052863540175812577182624253516238739554539047609083935967968717789680876213694066199069363926686977202798821667391119471773259857516497390682258592387060056061646499454192751895814691735642901982756939223238363577706305981921648454210942594955878121021040732778975589171557382736684780635306746708421744936266754831557957434156016691852023324045315619172432829986649504173009482737088612200316488289772966417382912770612873556251805475954950543746460085160559373741455707746671673535204167819443635116810578474172931827707315281672862262256579429178611605009025246229348917345182236702169028977341480878901083880329882085116246463413639713644396869799355701221987127674999959195163615293398485947943233258297026165999234267439693342461684050706011500391673371164772271978926230422111753985989456441876341366633189679853794132238418583608822034329921418074178567569175296904703224266559247792018259897339197505581918898231264457901676042329028634384330689756999076585847230509928274479232137570770765080821928870291370668978403430341473215768340623438596972870400571413466719237088262480230510880911307346650179470103698497346237928022280074562265449725189129819989514817689509178630514938098909329680260001604341964280042769309871886307687087531374205315063820220042222380650057884127390169212445850416489899321288162642402674605066007515485884201660441061615514174412632225035954855006286282529941768330440212834952597913770953696175561531044825799265568694450624088851471748716728052362191816758739406017116603262134605461734071446002032319058757375948210079695066056185844059451402339773447148912562616376691787238803582571103331107360156745116905579732452292356882740524479695587234525954442195784152226101171106767163911575620967938346602929492472440250986954777616480418555570320587719453981366364490755118941748289369755607370946030251284641534810349817290852706649818033112308722652326521478116988264737638198544471883212842597475462844231339056854166792758339221144309018600766209096294830486813791995193359826290215309353889081946788681100610388420034634850918715179870755208221034457694770054592109971242609116197084026681941090010762212089341508612654511023764279794541838995379741433915237077663042246107869105215619348698258558646755204349973445711524320903121680295631415456380016247871135762869407387689663730384140230519890937421306811453534451029996015178385125806490535454993485084851088648319029989080720159693173922053795852999983785597799806630427849753740138611420988236735296540568534441696013301668602615690937362465837056973520216710502705228751230274734959123687722261589431212326857453072827296201607710210674182782948241124265935942923649603345309803209845789988335776339166142703058354076372668893975132805073944394073480126075071296752426562702062711881588719511599358118319262748668207810924127064993030694746960678555410793838668552294085560913379219879299701858321582025866814956830709681863332764493562308877573113053414842825864653807575438881010924511748606451360419415647188133060765366426622043053357941355480324981385035758790145658778900123563090674791406306446636385800520469453686676568286336078151498128567147784435845144000303515174123571908105134002122901471445139879090578018040431891411008003932265230061225222741835416447005674775854167806839531662923082734887425448692872406691106052837987991597530820467784965395175770291896144610546383693613089384061491329878651778719499261792906213933945029016808433370562128641181906972273942910854830586813818683355957171267917030294677068616902222581870802681510211624708526756029082917287292086382294922842138310289992481574977917038068768680021443402386069927792960151847851760326400800861651685042709243916679809374033346095307226959312450381820496221210553638724982411964835631346200697539457819529993767924217351800259980178921957661962002112178676489068307115561219641644138093632771254179167055931514659163789035269675026880014008108881346835646107238514081093889474004487002530401015008668252874517990411915520997145326883303570632778046015873462796761577503225554425777996653653235694289721647469725702600247184336653277039571278579887036305651339145302457265944250463000938333760536368345647733055065016248027100735415282800258775398700992983460104275437038557290684222651201834757746948269438686714648544385103937423144328452390203119345705524526571956387497978217767271156502779419087653451350611239243690789322454962039891768215060853485218151005305178730812897338887638024648236852399222469312138166190283370711036687045191500925589649079105459744702948840594657009213766174090912810570035722865052584046822176648687488141491195239974421640496158396503948694554482581457232588503141826651188347853969054180211188946888153729838491400815062953661673889863784708910334272003603415902978271106470057939576605487127563062471030319009743355753512248890601630332983993037553066765884495013294460639923606876033074811356580967351946892174830243424676140816728641906156691701212216581103014902997530652460670324688571076020353385616337380580330902706929566697530908551820881374881827531602194072833541474643834416799329395130636858696424451706197365933715566274910193768716652993447449123976490153001647543737150562180772964966963948912529065738942035041252907551622202153682150221473868468727867385574973726240794358194225680743618986297026881621287168372902294672071074691329985438800066076110320084080950131576504135355774625160806909057105879270091450076995366572334387879186832111515975782592937218026335997695388963992984718752374844160774395420813534648864077944008249972612667352598514209740234113365787618261484833884874365341698155130639609109529885397086375670529723455727297997368667330195987721697758705407583696854775132480121745756036818963937502999118877200186704134481475586445686818397642559615308155000044105105978771017080504955128519086827812787662794997718013625500954642096734876599036470799460145051779817135939416015171914762542131947252347471497017154171268888140266127513460873770013445846893447681046803974268892163846789062807976727454563298573946045220572136678577647969951499934595910664817435802478521856645336890346573094722919002616107303960651994545674051087792160775815025424341642189466655853754035492698424863029951464331872071680063398639798068671325350920673751166295334636368867706192100296598477616954921896971648103658792414522959782221972848494949313018818732008728663215535196121634394992160040746263912900566008058007755408609311045526029165682834040691108378643378925341842645557999928748734422624459986766941936809080505255154976743037437450438249605657370692230889874066210694975964565652988887719242643987307091723009377003452816436038336060210781427925080116366066175664775906013760010584406996294837634049448789702290577904647435095925331139989478896989562821624058962658190546448727923354752539982162631076449965133906561426579077820314152968654792697031085149144567923202186745770951876646346251841651825238028400419399141718778265854463885939684944482627931491474542306287007811350624296118523013516063065269890253067247216889378569217158051273245187805271825215180393863207040162362619149313695620770238394795639175430821731778910581371190420043232643123727347508431455875980899647004723746605383196510743605441887640583017247816171823020653356528586032062895067460478179388447272722702362861512229414156938680064388706407792917428552200191997295687213404860126061850075393921384147624948634812537704614391317618759647970412857324175446699537929902032883348062740202808070388336045200581104803271761483564218150549695812489498345115689310060040843958862931516983609516725067926301386334557618306227552531985780499104201437636743821022475344722606463418451707306632821101890239242792206938440717204118455618006837476338465597005780340497791378707875858324102524098947796287453316218769846165948318173320494631628362489964280882032594680131057039754685148948171795769225021440741446890265884765171527878289573049564710910637272750939015538749903993887940498366241612766728453479830986657697857745049179693470446333682845625760286533055695968179630389701404242895545399227110408345070689977720560826458705729348390406560806932066468751781613317423916837643218504587424528173152511394599477481512870663224670513921609446973504237145352646644732116390115004812680160328549339545490310176036611633031868964633163151312102836228677157821717244237080142046188922398237212074404342830692156215405891307223540803883266227070743327595954029811117548297727956050282721280736805929739103256222172703316626096615826823216203394401072751467025533584625235914156082454456663077902224215325239149169292061327115644577668822877043747573644068857047531712033703316132669659161404153849569785867819646316412938657707222600433664141559410498858980056280187671344139147777571352746130707738026450993250380400030935807459140124515442342372979332739651285270396610686457830552955344906484457568151398818777484695852969237131410335845207819599495697166627352129241383634896573658769079552189088235950549548468232279476601121421932220051900682695301258950181077645761654348484066483093065052207581167624396828700810591942428200020759972568868810853878366404350879709174373985587981233998656316715191481264404082233587950682784433869536860754090717280878313293363939788324499330983400466284207032019646614023566028576386644116445162441605893862118709202979396432207971422148109024731417523695147143612868027123441035808109962789094439315975608391691217812483229452473120046215069253038868900778366983460145211847591818445882824415694596970486320411337686733249299155630875350635845522893683306405011136024664677444353609013297384495399225771710412513515886522203461133442099958544492507449545843441874215404333987528002632840111779942191739091531877830243775342232156755762017669495675450390437612265279337607100826924106937352457342107597824622784948443857498536930224526565919096194138077399169146798955226572403253787605232472954187797392081647989886283841214189281944835936061237702849278628413942700178120877835853113996286455915129538273842899569859599587655145560952156824334028290450646021063177663998726201293062799690509627880038940405905520586995804262121238173913789431180187089834590285127997640192523545894397386276417695695981745849205733910689920462228264664771844897520023362500072061797612241808500190458359984620730645156212071726297301818927379780506683287411277039126494001258212179610287277557700585253641786343365768616472134480340902445802049267242009998702829968261800597481595971913259514811787545169993444507504867679114648592386463064798592719267403982186538182040063096101906946831452168577617900979909773908851090160046041577470353648473433296580296196382286247721285906797688389492917326327652204357172616099664077934668110473228898685342735010423319100285257544666958151009243120212513681711018581203571771483801464660383057064733001947629609905424887082019587373832258301258293686452824949245298823035547640085920142895467751114633659866482058664639114391626415388386883223551733588738651174920109669668308957645351415461062091804797765385316732448598753587045637391988829390323925787756776927133946241335744895155242724897031270086779272527495510074913898597799521245292111617940279479872756809132985737410038326227709266687593686581105683583720163247588910343300851130696517232686292388424827583729683393612797336309140502310305294679408413188283441626412787679068675371257997639727611047320377316326605095546213444315825660320838865891723147654014323748186864625603606978473532440892500562100750758368786015346428015098486175126243716493170776217063845389342281874100311389524845055693518162986662828159324571212648854836708709924427537399993808946624730878961693111836583852960259872899898431594024956244638784419667843894382436479289329684998994669400013334635581881852684260131994783911943233401996233480113716614875290424104253674595053055899462458421468327487224512533476809064027033222277772020112418037727766429856656135214057680149952116306910006621849051578112100940382571690368707371196568218762689910168237722399832140732738761037245986456738979417452865619994507641090371252692377709811465140137812807715999480206681864059790578758839661406712059422782800400348632279422374275868427131747107097247284521774485507376226323817278016063658299113458944774144562967718782771988663851377742777102804709047750261181809142872151899485197258250419408426912970115781803128989883946572431405628470958947185059322752077770150918396339139110431133315860248790295868575148351270068868728170331109901821727493520395737013261924393681948610224685326662497965588023797513950190508798488946736640748346705886618855209321720196337655276234673137094786298927863336779868230548819065298366210099577421339831826198536253606440315362256372885283955873840832818863806170858176235758695585313441449503525440714926453329209805418341173850647613088735408823823222378206909993445405913118800975766593333129635892438645409383069953880707747235276193386102456773283135260823558448155491815864434933544523453168847101549067650348273876986770240066626186417736478266451120865411616724128394942232673210847841759388432987755116207812340450908983447915499746696119541109181055500361972775958145860928360330953275628674149637997529304673171996106379653394003185752211308148328657515395690285487570154818894957008773774831270274108922352696750388728273146978928615123150695812017171994189519425459447659596006027550728784922082779040303260059742062091040736342876881869297020650773978190162071348892534415201909458719113267272462518089432452042288600094546805902702120826623109458166224199004504164846546411212897675160698033953203913684607293877684119427096380606982130784908838184375966358829808356714964325873783111371291831070638861584876313804194338058713148653341636692071907082076267986134491686246033002555222413218018834906078009634419028514394406494027452711632055921258748000802142145519549252331222864540340840347235342311302527844616810620944737766626148090469720961528920765667500986302114457166582887627795562684897733925267447987017674031130474261148956854054806374865875592590124852935321405490974539999140970229303505311989740978051675231258956580407161934850525179913377941738981975076401985795945055275818836294495795289357009115398217181176901027550962886621394985492823690731023086233638638521158305712061188367966520913937604456678359760385172863725019426472865112779955277985978601969521991675687475814549795979763436685526481422967227745600874177066323435615868331266527876201573578793136866919614237104867235758685019058627010719941927335773863681770535118183006955915746846398319175394692393908209883759608409067288050285758531495299522227836823596116941648342133020695857434609428737551057376065933729469904168545179611013571790225383830220235138392680659885882449751966339005929249534065820551893208946837002446422735990450426504053915825796694076034306262203261630553641854919845219244131323588162647569800084537012075272853657756469905910192390577280245740121417807049125876789703697656636916244058864336040317213515138830951065330078090972636432185989624578341082145456143564513200116885553769051903640162671096575954731663800287096811860649165783559220939627333182506391193484996750897006198287242001197164428088791468057766145079359448842416286329913457456175738343151445057484579413508575208790616103442329664449665248323557986549611340336547238400932858695270117417722079761652921746211823518640444831200264940056168381677258118155651157838971771901936802686025354083397737259277981360165422935088729694437107532373380382219745623977623072646608619007015033925424437049355816285476368503635877615497271622102939628026549243709870366186574946384871457567012362588602970961742626671798670791863786117462181774581162374724797937587788315566885463382312074343906261761052567965906435834539573830038519090546481444474996705242422674432099574823594624316788680807442394633481011756665936925966536025547611353615369874011232825919054719425716255400505479778700943483748499004895450014224672417808676064068297330780776771792709778658656737721664615455340015900175505090915689404706745959372938058680754450496739463737644098665898786160726620005818213266568056580559268711793103740932977755195312331819943196743491776380440010707543296746898823309008661286185717015360234639954255826478399263464495083821552182106405577252053349084117478065229949915210323754103071653193941376283615611914494765734512954220796271458909154763173367558866224296570180359021864003785407770380912954920223002918351111075679057241428355302488409627566200049763537717760702578027985760403678350114716814112827805413258209267234367207858190293076421592950192085723322718523190659847184797589397054331670393418531734317064694846093635566590951318739650494684174247495432651112768160417062291858622219306856566594853893477889426580816670265892530410704114318122197622839208271866395940497567872926402115603528697564414619825975489599287269864347039178729691638417430464053925251332885479469082080662177424215682366499460409357815775395410598114910364926898701079034315800288958640267864639388916127755225671919025821832574056657608599964469720089664474145582836512900573988851256039027003041308518803242930033734557625499040076899701126134673521364051740636558019049583093691895393579745710920895433991561945222441619519093851814762514675661102045503919682237538047831776348361331363142068951671670000447801885464092672620114826683978553735281274308478130503520658455799316771768605615507728919385803629367782344948971035618597225432297845115563718049423232482690435316452440259522236391136939736813501743155232167781188342528064041043728967911612424957951753928476464320080217860179316031988348500980786475740663311443235138253003879670667991209768302577009475501441854618207764537393271544543631883073412829790300655017123069133371209472696782931598848462351809652378533541040396904326293996510749311955827854932388636451646483601962554751704233284384903771199975379287009888488534655121674515486862447100017484701868922909458690703497051371832793677198518293762564388560546215123407772465408551487284563757731661078588947645775968816196558514779906024154667110421731006057727845435526590011561258199032812281346896372156098737551728935595065033909234464870412936700230042382984568420607738191642218985926066298768235887027224777012093859064647549276372449452470627753435193691409007411533635301614133220972674863141462689484321856968403743861571435994059819296366090738549295285309986068525970981624096942762389428078737129924545197841211924808485738980216913323133937999258482715036621495569064796373432855302697820189070338155851833381789178350015285257634143590901684433919615826945484496769220957225669946128697918253411517420007319142704353306658612978274010152471852876998074099001211397300576688586095219324787824331866492754313128675752286267133823578348388147799577720726206994464841360388412504268176511744222662740925999980498161611361189703562316325554619335679045724236318493550848035606587508038706097841904284012667651805279707545028101617581159962655714875528225428283938591076526848281567932407547452096069350947140719755909303503201079511329643104907288306007678146661593335075092231077973743222212273509392633201255326068612971191281926880478447961059436979678385144465189277261393393498631484609785959139620082355492772004701483024946914795345102451465584463282390736979244333317005435031456381026370655539123659920253066948462935685672173660092576592937946884321059451184548677486879669951003198317529399901804948440841376940189957091704578830660854800507883295068443171324931835287471166398122271462334724297492316683670053313912028953387177817809911595552013696940761257698370208747692016453396576343080091638404986732386123242554543404254487160745383086232644937140769967159799270251066353085378869690780467316806461543118262548268901224868381129851895176767001913843520609423436003005571943374627803947936326250063684875468138531554947635588475585171979194495665187111533918880682140728725537553763433721630805444763552037899769450643387770018667826701368402601703924204665504572857367204481056590512133413090388876065787588575172598836228544763098092310676672422725610030103055083642521730216563497151948250254979548824450170224609070010880409625521828607147002679347511671404492814147193680899150678140758050768704308195739714200838056512623183745561268309436238292546713163333896211665751762895708039259039417085063878759988999425525186933943009624164587140653460435567761143612794813677461083463276306088907728687992054989800803526335918748377848729807403366677275674410893634586927196976502476200603300108405622936058155157936874998517395354932219816264902336857428886945603279403845561587598803642061124966390211024627155140459580209169359585907924564958743310595194169987575944954584497869417485739044033141074113350150795089388821610046879370959648144611228595225437822181756372018323782794864734193758481285697185508838338139528557055515000550543023551884353635749465459041094172010946496773584335320844965821515466028338201728932671054923121542563521422429157207290171809061919456252643288959862238907081271394481945172241711339900135652162371618228224927153650933628176131807817185782867173323651829505426547164992229278268994253847838117879146140176776050679316902410376507268555962877798211216657417804916534839188925186584425852277378673746781695111910127466774254536282042505489221824753637286854000835382520210705185383785020679221810417302613132074339384636875031976690265225855470303051301272814920078566615440549906592191575104699025105915872009448305521301791091286886539912323480131627750460762830295302837256487937162659957181241091443293637328793468219378903573252179635381845881551290917946987253175464763123762431721246251359452197104934241466006016891683376651829147812010507779022220155801823651887225430852940296819847979518367591867244980539072682654360059705479569438463576408719441401928294854512886463061779450863622203376520212265742162089778072564783901456442836152239708664703746479321063510858308468367618787726717604633390279208871524147569686412276783482177665279794048612013737454423164505247905457826112804217547463525344678966755606979883582864815617134417587993541288334542370284359173406166883672451880733933533952167516275632758020299385193413691433985631732589988727557932604563601205066659049810224671317124513105220007874193866755757428311723961430163353670692016275735273265690446744860747183510525671114851946085555557314182851520754952641759132798551198416094247231853060572884302017966171390552539873556140724681576822578025619406256059664651364746473963366029008698650712048859599693710325272880508387951433293837304076138509112604771667071485134866378084683720840359660493577555742941072099836351089242247121040757140263505119481102433643158066020939089000754418480775780794687099365040008122355209414193491417881478140941916205762152044662808887443588232818056918322130187786523952251235104520601230816845865738144892980111082227223077418289178600871051096395366704137640724354517815001315539260944961711514624941218155632413488308065083500954168977554358268189584650408734020850847880144852545450742435356244242276262384900262095196849587368583114185462988152391111916536700083989210333579035473146727953834519908961000965331810580376398157840037196195210790961186709461279125629900330787169003518121755785460446778997360881676327082806840742093552756922150090558647403290620661207789788085183283162627977130673332542975841560979760505269483019747995653403709880998030052875043456934759703249592385279248018012301452909955764286851447792291074006980965344188259825468408017440531618843053661863817089778767008181641907689063665976545260038656055462453106265327742903004955212248183973473931816258987222783364016568607171476720415471605275032687334975280699270787743585508210583918329885540399570601150586169452178543435437136511099811306382961365496649032666559895135654227712814064854632883611530239334983326849009478905687973188553282856101593371367582458017704013213339323870346947225306631708923955604901063309969054796528075059785126892309825369398418975879160639426030265738801627570848979580308250193949305444149874233832815327761565812338923017784568305194784086546843993621507703846646364751057089178004657613264884292941786842253107048393185685737311865630175651642943486904077649505860137790333330853949974822893648519430319828907933715526452261689436083161714096922572120535225740427217005875630909223252089472298830251384857274327223490925514514913537365708519592148736497554665813697733351071272801581928956238063413008849529696490715375711364712878890513394208743326036567431147859398788777370061644609123428462193917035513841862332370086299849975573673952268625012479100633473262148082896078775380769767022601875328107731956769015528179694828838002370223780184239185979866627190044039026088481312912292373946173879106259910884401711731199040184354770023595197894426014951456244611640353924893009318346627313375165997459669760498348412336313148749291493379127566377892610394062814232560089450777797143660600750238425411100948937699999383134270337040065694926211695257546205885364975383937473352084194945452948209714024795805725027136048489396254670084915089898995132542918021242849466932819115939764801909080828978341212592812353348295306240557373606151150354721770089602945732078917899028384225171060255172671261572169702278933198460669014879963466501509568056131229029674613219374627181205917229132431539142700229807611549041368276195813214232067242026700207221995758302663419702455211718946402087983651035559707672470940453007694868008495026244814482762882700003912612418694225647852217083873901062802523400448669807394643496715755368847148716998252108283734338374184103327895281419077175822623570478768310249684542206523383143027175131750261091303002379185068693227259356481343220309933629754424161952921251542965447846592424837651479477329653875457281049145013699072448159478761415739289928866825764670561353837441484538780659039997906809527671268688705580044046114443239612993922607236149892881550108438399782017701513914336114690296966908470050925771543257289850205289280682275077178896508987765175276076289948779275797909709280017261102128261547661584467009214207522277686592565241349664512354843058553879384943041899348434717172816648753327692990422559069093665023614861391480208669857968605081829222889351572070192350732313317197270948436397203051528801659853573876130259537374194799861163173936987026246171288912561064395843332975075361847957980510643398586628342915001164007087707174320732476136333267255452962929063180892841611936708742596646149813034147509780822736413081649961201515070483167787330249966488032283222497530848254457348166980650725178512037481679109713997445150937321135896267537217192051953805775782189434034226394964343590911587188704735516331833214660715643414255760758088198687228366949408474789763619044414570694819788964630212731038773236497051324737160212678393591571293423445030471764303810134300576834187614133488255029598409475640888174865261719008683315199966782532228070931359688742558609572748810640813345499945896629741100366292990756186664190760872389150655737946553072530898548212878000569171727291841363329864289099509747246914281497892860588846496653775166488339092069393180348640949142637863693463753915069776827336961934829491597861235058345658186841376186055196359091818569669094027595477135912835759035545557039665648929747012385518674043472248846883758544093486657628727254173856928393074145493428895722704186799600205423880999427577117212182261631085444841206279839412787836669738487011039303717574217068322230248967228105005138363909479303892050501358128174472078668208667901906224447773964237122663407247306959544489780917092544351057631651379982380466190379627839357407490570844195934383092676573766101217883574816838894548253918577170003837850206225008014421038893991331784173653108481456068781263978598751439539245289861661773410806150532080240872202448350896438111149885511290357991025163995591483970361235932750461121158894790349994566648999356254780382496951203097762307107745125086949135950656463116002191505086964317416452779728177798489444294580479568525423362177638011112090683739245387917949544905393124895988481829638390231261067352998899460223162231832098391131253382374644479643113154798975874905883170375221660583677058768336844273278259308183775781823137111977353327789059718236119664120979621949926272448308024207609098000598148823169037261968468494872421372937344763787794073524894434042682582292893482807744307683165626015955679377970220309538962971525792496310672747263744305678718092437539948246315239022039433046725493329360423634271877149396337146232980550431315372132372350384034317128610874075317281400122313922398646096361573227303950896608323506496357092066663228271076857048963468303885309595991613420602463459279228849569351130554647055055078230283256890890642523049012866780719793432757299667072467153186157334162379743881848332830510801080561826392408719911975638068885004338343791371195692185134438085833597194190184572892138927035267020981377890292970011409162815227323211298870967429590167650775977313785839513421040251298539775579371380668054314753952030682568296760767612200427308337964842746350060477267798050471328489662258873782175508074059170562130469552446571239772317637391108124276326486789567165719849719614365862308941244396582362665694962720683437554220968032736369506014300667187856459785637094641970886615604853736271365192035334675014539276480420552447024449013975421938171444192731147141001591294878437571126332843927203423515132314352737971258313685720665513625904235650860194223736140971145402039207215887292093010901684526279424998065027834796081033698582972854134269881427328489884587171927641929964300601406094616929785409813874139547758680698575153854570253469852262848850641566535152693905348096303751654623244338216792418468554645441770919497153291758332285397102891073264298888644246245895955281827784395766981412192713763196930895431337010951622716291318651551315951763906266363589485503112703704936939996930319004403465734711020239785114974213794107863847333640642946844725582310892619125882696365322168143713752003960252007370338486566287634738085469202578262984894730620665918136801897455524262696526619294792188940245388578983790238250023709482638554777898548147009490265581075897962719508766863373855007910002064428826793245490869724760941015268658805733450516893062849409758168951099894811518401441087950630910664576562389907955929612232137381983820823731253103059868840063607652395271321600172525608736317471969616396352996840505411591448740668115073291726097730997440799801727564581322596767327550541900862510228668327344895745183513051796491687995785836302365630262109354564558491056588339624786944984351914479418919631595208454059446292479332355118689131351451007602054045709967128957126309981866256911313517164647287106233729770072519173190457716651023854135411858813378737643723454930527066554486766302313092747475110651198606767380880193816765847148117067065609262510100125828223528871237806580733252086120974127907595034171815722821510664030914997400190604271044582199695405259384173169606525569473615712976954231209815130093636275698382078360315118432297912284504625198152360549123498118405062961140870520174049820728818975724519185291823323759408082074832834804791129973071134843185064387371684728463762561725674305114647848543542918181185748953708716017461409497021436401757418356015899380860417633949982987902297595591582795322130259888743750288024938365097635976031471242486393939791878427708026573032741424583651884820162324546132583363962201106944413697872313501767845748418051770453458491970181755841888861404312563920267232513016824506100458434781635394369087907350465691256347444602599813973264188171548894891167507661860786572225322862123023323341161257962378013975389290065469677845999604888787477015711898590094427102997100985271050643166450531641389753912876152988656581955730229146005048029399652062267951067286749852340628397182142843108814291370102084432096996930573126467163379300297765247378029888014632270107522733707216231610681464926931660713229433415776969036491607543196585844089027711965310639940864309037820328938864015422698042332800039967829926159428774031116708812885117010382339701994501150043753544697293554396984765816836076564548838992886749021742260395151941172224275908338895569314116325389564425172632297315309560309124674272681221295897655849038949486495522942008612998150946255737498971132249354001913026080882841020954743712855313038524891500453568310888982590244992966333809669934015046423638370185297152404715424050294313921814643929337000889796591116108895907991439971653332219081534044782453240507674635620971519474400407713050358037829303632093355511577965670930715818709972895385250699985861413520173625062374364749977092239926299139055091386555276584494415212173831223338117217719555111284946529230615893591744936288817999305827691639741134498405001662115102566681420976147191485382810528231652617101219149604611783511707920166578426307331396279839021778964420259421397016261829767418876952973331545331043903313907744521460523870977157615496796411612337654797654445472979639655824634031858188872285606800927329709154430164827543542397959949527356640614656946759099702592495638988449090947596726012090083217717219477345694860135605778881922084953733180733115249950495024970786881520311050507525756195816408860118837850177011525460147259935792137388113486551458434435462046271406293996296227208764120490040371207112890206381544612199463598965438363786034300358305484668597545230506432378844237031773960774824428636649488707084879608392945529467489791942519014271947944174850733574036491460598857996136296029771375909421424902270386024269842213318067761952441050854881666380564518894628747539382000059785857513625725514287629686272087011888086645974430640753513413198074031751026476211439822638925227867637604170952652853362239627240781415905608687728863463470785261415311710225531752019130220965184850430532546516309719679994326019221265694919122277522442794203802242864729802578433669218094513752885639102921258737598856261184183018654630783870225290777643041043276863506652310479306340798115589392732151112947295661583852491187803651021836128125709167083557561133295692271697026955280126329731440389114258361006861363496649211315011979740194766614196138551771534843354933021007126251473038797310126629604104246627189183403460194755035437107296072168018178991004053463192255859447517211687767487139198538923046137851762549279377669852816669893881222692697573603291677806809610709955039170686167688610963794872861683799430200087603044701273008540853018008726401294978316623661225828945254187950275671398464784354373600956911794509299656815124039144340916237989235955494975734475200695908777148946093932045475737923257764472366757795210434946303559760798861171522787188485766377078268281650235547714373963732439349191202931693449623927863392849742860833897174281058370645500886573097016563573462383353842233483213642844323384770245982223833149218660955547655445878919817331277177222253052110539462748069667774805979945409693130549224842113772984280354721726412602375982178425230068347515790251778522324177418221964994456343427193529398229908353015642052290602886772726589658799857279691981521725722955946500167741771341153706089700395665244921293613560433310829764028521649082047290467914457458422658962310388573040473787158990626256361221719214187759378729483679867134409757587054465662812765861559309456147124026753239981697109280180942752508450582457564532718220333931973181692591770518510561029277573949945228219468485208496596440536750378067331964847926919939872203960470868307655585088467017590408307103454423769494647377901563852546537481362194460150080428511394780252629038983753120474932223189142746676391873380949994152096277889758546918652411682073405362726501633437443874265135655934941732297934282785401787737170580956065027836715133063668468990760189082969369592700716615180137535659365702990299663930079880428499118760030283102936834670350792540801574603789584712601051222956495229897135287730659945142330468219393598302185850788660942677740380952569898057932758527410266885306528332367527806885989175371679800596139569664838612645811818289373256026051350824238931231783750201682651038699595057136954669365829716832193040982979315671015358490037944189180595095044063201120696937801516838845500020400995235004716848331336240273041108141096347582202786298009021653885958468744892352738314422437507378517705211993536177193671854939517975842527167967361660440784057386678812167892999237839449492718965261460741732974518782206307997549964180517608423493642187450873050091122566633618656551059990190353237245664032337121023101025247877188933496999726326226306668143300816554030889674504699600617990433238040309781226212889609397556937484545252106930377240291618975584543240209679376638388846992650773764343003854082414316324705102167956411924372117947894268475588389618221436540344215652238558429881132316446578944318763647878960851827480968358272510420721099370018044519578558920650153369110770417692447655562701352007539654617886134993417675852913058378508416175804166669105976325487562287995714895651025459397415210439715207079199974246995250401384205510856460772005152528440280780813013086324485518646164380271401598929955250481020635819269731407865738068904016516404103172524459550995754211113608550102535493256418901825898278398610862708710718399450019733728840383925331306744974729577688724213481032627434421351753538544506145639587249185235018695368517527406223539278331019656114043730799744205506028001841043157972433574809268111244583526811133113662984641685466061864301967969209691109412644807422408660997229787399664208119855041091481534475130588590841583616160563754793095581081367294675137285344048231425930447199730136975677188767086345540424515755673166045154360893339622389798337281805833146082681899940170291244755247995775725669740831878848373168674065200103214002320500299111512379220395680912432424667780668030569877942004572550507508509597085016108855457449296153784979934501019265256763152271139359760127950161383445977367706665422603354556374640891552156267564606957996958024288987258487305906717031883427316403603118026299549845469781555681620117585787177214285739099072549436303057111277025437921060492534008998294194538338839241286021356104102744403569277269554853453349895656965445736437175971343033637093987066286544044605864929751276550266653456604138164049134972387055746887402663438007792968425250188189149047464096750241251286579376213290337669010395835676357619111044886929970652376477745887028917603125444896342984181028359616661117750446656458353447440456176932752952655290867412775919798472144535517887052428032692860012801406087190480250446051867911934762427270999112077076094941020657853410369784466628642087739938083063762769496311650988093748237947510962785950031130532518216303312456721137819106848745839629802195521134691402115251866287923881712491462344263987242619965625647224478408340578066793161432060416128729898512351805634239927068857741430311310676996913960438553148096004885071920424196978231687681608881489884835916159313141684045420086876079254647262995865156343515485687676530804788886697207667860940477179232065465589360795388606824039652816767881530145927376566509896072277279932095194357133024608489555462664880308828077241642685926547939390477603650754537715161480516569917380082908345138162882128858103425268723439100602772497899430327275624750730396953893193555611305349971395838882581206058660382228146336588782855815286180950630512325690648298152133538559873331685353800981249828674880454125460178566066300528839226114559420373030728701487786595370577955493945038932411399812937052443315081426251542778515765474539599683283944131169697334137458256908698194491847930820560735285394313947912324878028415972516565949830528093197632334190275720399283915080805831539851014077228706375454399039434694150060016291107680116462113154161411184223892536163870947945862579554014844289488318800698035215986882682721072293660098543021537745559508802651299973654983173157196221140222065978874760251203619955278095507735531863968804963002417987909203068681171166683883351097713917513638022285360812735096405154934967914792064241819255475595642411732875616531258227164722473359089371679434181690201537112913935743006780159117653841176873105224897069319476285408600572692188522780668815606765664416761964408115193843703741308072224839348841014617798134514543475391383041884807175131662389789613390557527757909064387688104882951777126299422026514412721348404036126390951265762071146196325307841833225201208278725818387816427378318563996830969991763511640757434678941491105715776229339676187545568061074029433874268930887697683584655951013136117609965860227945954413243075715013424073196882754506572876995049025165968408219818642691059998289564735445030571767575604166015396183471375572679884502470746104821726778745945423442619786723823071092686398684812452447569310011571161202558987483687279161150873474631849688816919837196825674485892791415147950925322803649214359812264143981816965488872848953798987475957145220452590206622176406081565853243067282253608859694718992247423205036869513911520459498993771861654437845006212449705607758930377920128303067533871834920327585125816195334960501238229744869369035161299541854940449686049968911378153593644246099173080546700162857552825497029377306058822511549795960132969862220386559021959229399968354214815265413440841247538278206200583941078637537645080411134575251679332686368212356678607329655484958152891981055240132305073906101639570743329056009366065400758651590450464409198596276593151353456020452130493801711846411823423816077976778965075931849416909289410801899455345403400575580984014459922538163720072156700210713170675469846747242908962208033301860402988786157351876300791739830945025313121411215263280642752536364946718286105218247549979729765956549229794573379819152976198327292243301546177851808219107989955685584996376201312202987326038802886347534555365700743400513631809643682019453155145356558549901361185324598012270473732132502788238558642321111269005155806591510084916321404642769659609501100292021603155166110412086145654689023895005547388843526674058534146057518588869857983678082002808174590015063643446495431705125523873937616818158714901389308995631563615518251253953994062696929754934163316109721443002828932672812045171535554972468077354998892625913508338414119792086895930530517192770368851030977967863129045945044366229991271115675368356478008093717345349958485240679530483806145613622283707609491246390073339082084086657907251731475215796120522867980402551189861982456475515122466735697771000071944409806236713173742975850618748072751277078393629867003483061447668787760840917546019945338956874139789053952946417525156319759721703200303474283907254242676705303926962876180610156448366068851810631254983047602523565138349686877890079912148062238179691095859094246580908021005081407918393448088269653624955634103134731100770274538414293733719915694096600406388257163349004124506864427046188079207059253005388826628289873682879449866298846438598640219955636231412096787409919795875615769952009714326604906234236408607180505020148884942787250203119516849562019453341270792461047795865026215141433181048512588167058913366514863127963247596301001047708433764346131599466134881827132923933699976522735936020594709248738399991666515874660400390125696547286936373910882263416495712730908897330928488770134771473030330072493402857843609148659535729968004339358260236810698300506821986942632908130721335259291651880641229717980001463925408566369174491146756441236863074707222865234751118675279056943751560064351920174934901304913150014102044990072249043910148420119362569805857417660955471928647729588132389167605249866588798653104943326648159228570421905364832932849540912490518571747284451080731276094108756219179209722027441269407806073143441759183616286613617592995968659037789859257341207619847654878766125470341488439625016365566935742346523298281080969035196231906147767950802034336657546817280509576513292122838238434230338854111511717390363838570072606929199598080680325484732527475644239431287942179853444094383383698347325133719009817900004962631779045303207465506009235641472261335184907296823528712537405137726874994916395410350219495413195357577153185996159736859595568335698957583037155708317014579098432917970414065954307773593688633152888632767957312526227101380162883348216801105685194046991990429292162399426565744291604560461084622615086234652283051051083518150043302123782348059720459041582022874466409447939717354822241449855593533752178438111181326620915167021714659135428974641179326217024496698023601464806425267283194224430191410316223427779976981946189758356620052612491378622556808391550326572286571281487661085861773405712180357928046259811382813054655972048754912350909495656509483800446221508091511566686417153507179822523386635348806670618842827408904883504370343568714611975180846160025715146583880546454981797573544175992877120126177527423180684738247854652975165059341599072188484359808683666197343511301888953835392824498645324379404526328602688863861106753135642689160435808887624084813267578992903593966580180666039935381619859001103927075926708598690236844338765034749045007590181087907294507478761645354651438092896755525287534838358446345870139232603371457578223113304361213332655019554127297141438184281412659529101841897646249179676164428737155757646013257363336102734236484548393676855269467498784929697862323595956976349572505254447446713805039902274396857408065940227910468050980719864346503284445529555885270297623038961245644136005896260384115610151209713876436674500257462651959418179168598086469425803989202216608645502051059797832520289534074728126823163832668746364944983892354868497318022790297625823872317600725957540530583007302656024001300319857811654776636220121539306688345514121030283094614933204345300379479932494961010393786174011489768547808718137757230542987975475568355955089468225234207973927519712828756492878779663649165500343735791471323870389050138857680674910119414526923060792164132785791396153525789759290871660366668346632539619328211493439181499973585874169226408529714203347046608335450126518379143277022602992095409660843594695835219610891983292640772836100806855818168117688276383723105954240755144736700077513780538623773273925719004559230713707717066509743333766830422235284829011060042918809457447079763632981964621974527051729590053069370646851373347640838886339101882789741113325893484972013899122667755384817168115357178729084765529056771389150910408698230720603686848376533642524201917022352643006469943203042837803875819425261698505490364756762539068430939261867827551910602504157747948093600865655064933984371975712143796986900625842890514201634981558594057313315086552179970575441763092263657368678262137573222065145307492737513998469000954281868740332732519707150468886196358621068877252934114391333747399762411000878458735628496246371960353520484982022376831189496811550739734492308163915314734539521321781141259143699385911897784804768179532869612981649109723247883616251659438227401695713914308932837214993051386327311406966404950069731402893074283787136172314387915531907383569212941507290144901494320046239224932103258246673542713353590916984350551560440574927650298597381361993294119238639216667208196604291224730914742235565054210255453383971988438774017189554762428329899103754675927449507509636961513048477961844328534388128450488124525798139323838458664740248950691497184170108541425978526290626568033699527883979739637688102810980229078405267566809116594629953808040094106802317757810895330603642295799499062336025762138141027329627572702349978051828513429023522679815406181665353603669631031097800246959912522309108379116192073488535488284580359061708483311032952242422274712225583251751407553412180113434844021054887695159095911181961693905382283770486024956287894330796662691919120091218217080436740231885621770944706163824912200646939639712834689029306454715923635862108985718585174929617099474217761271383049724948686245345790244949470363416187551048633014353621209621865305326428814816358098047938282644064448591989877957417162375384334157394350282090377673716589950438111044589307815708859773818744662486399308105196788363008019642569778458108874189483802189050178550147282341769135836638841602857318960727050955002585729741944580382081662024993368245189136710653040909212430590996722359056154681400971537469501593004659481473176129794310931069485739272205352093011371138409540945946245091446717178590797767059562732585641520246397319872328065553407413405832085161955953976709652964204697490765531876206137431653048695995918824691533144079216725664734320279518702071262946309681229410883342147144441566557518427024331430388621117406662982885994372534123482198137191932634522882750183989715424594846643603519050473006726469996233551356490237301667554895769693694794350162864374652825086261932552507179517918319837988055639405078560455712642654641423158274492493431622107370673439702093254834729438055449897423787851790149722368540210185897167925422670079332460093393469884859650123981471774720517482675058240871090916334171918529316446387289616616060584820851230990965239514170118114841796040294752645254036293301514147621140558279698792537187846097905983091791191639601058195504410857003730013456250522550986580977639217894360026424495706344298671441976604040229676604861052188014941207414928086094174715904883343904365642269470823207765273313232343685697278002325186856572406634261239080231139552785175378478899887219124401861449192653493057656217178018940055924342655172406077150915552270151596498927306762233119381293007070279706404567895274045373519874388674251297282174084511835955533347819428176884733055978739773347762298636821422753984378737896325074251886146322431404945718267085642706243812418032667798238155513816913859304203937476378453889185564611277616992016184687266310872699935145394697770599587163674394557557410218908736824175529598308679064696689447090423708290378751425354187499407493538628239051720403012474118586725802540955342052265261132422931613103503267899489938225374652170822087664971400220326433057342737481494058103702361848668272756106552447261544369907734346502858052866922280033444647749837661843470005560428039687647880728951999156879227159652676273877651256182325589145738827567493982362660458580419763166526390953690717309073957017530785673423156663393584368198984374668646710634845286074065308293577286675372191451616692403625895415587171038642401662409138058842052576882141648577111759562496716402946708851515776050872058395979581974380482361856945516827608242020902662308307313436532313491028367287303175665594168228780009841106460772858493347145996741034426300510731309375681650858599358362933820999176088789081333824702390688251929345685771962530624587223314346982626945476122925082832728155971703039843856055561659605308151618196651574084216464081938241225273225527521384713186100966992883061034219674929680143156852964726112037438812155586340325943673737423628221541009195526026762917593420758530673146654069229424551714669731559240732565549080416358359236944248356374322182002621657252939775969111207851382430761305158982970114931580351195094142052642658129041327066342966263340851666639065794905008344108349602750838278307416003469063449726979063108303901012132944379364846954011151828750004074788753408852227390548001056951603514021456112148882648490062606451675866379484145717419096117880429956043041892577457709788795729979707250194322439720931074186131095525121131141931414188631834767529570054208187444743923598984271579923617405918363616322576409793714578709502190742869364061129403994989319820700439196470432018422594026453164763668663136217050755248686488035382792017614053612998802440709298525803928409242730694342128066629695354844935581254623490101989862020789265576650563868408350415582837582435531089172664193846792023266870029064083276838967720161256423651255174452014288675128557610541459924698128606608474156578056441836454854476672926392692171379562510882096032230466098963634392394598623304165437802923574017773086879337808757701897795800423760526426936317973360659757976508449127405493736556040343620027998393023185294654666814376939782253225280199567615479314742324690323512985540531880363948424761582578091156917235269742483919094128682370877046195583543954779054336948752059281465579563953666735846320653316255682054372352757673920770240019209839855025288400870263157739331403930238922431468350269880748124857905599552268718631444475172557723079693233446861358064989225045123802734602084756889473925612147319316952471650870241952700990492000497031552470177198368798346720650551101353622933038922061136797471246482763522769412181074461974640099759190838392995733532213053403230157767403432515744198177350841770605200717532477124192954228212622556110502965844973040573136259802619031624223680921025177832608470535606824803274006595983103755526665349280800283965832113767111933926904233144122729053307354230734096908268603392752276940488938880770122861808738957870456153074462232137595842405533312355286393853796308274868095188360957215292842558090084706692340238202402503968252358282111212104123287452941371297025092256819752479905184885966629622603884577747448976238745562860275838641319612241943406282758301138004268803659258801127996119730682340208026601858536310831184752001297184843906945810759539967160230861108072775833583025058021322357440757185545878558020405293011019457692084609156121776211679357753447201727217078097200478108504778385628330377358427851021600786130549586745468533334659522906378092346093837427192055755982972990704895935972846971011757264275140437734514724926047462888037853535103238847073145265882968912216513328410893142243612826216272140672752083468815833518056140750921630461778859567152472602062075793030941919618020211152023554448231536140536908741444999340942452574051092545031949672494525186490274016840885935200901546110953026583029816686652480028661999955190430376946687787296339518656844815808180390944169831058525035392045652349359317129409823475895384118590384944333944454494153459413877924359412745693124551302846047570392175238500727571736176560216648276720071230239314823961294011998589410182868841016509992457140468743508841139769395036175334409124791394158321552205777526531274786477521806161657760279042089758031253997553549252137399717522265736405956424110069598832589333294830020971275245183866496798987390643902363694858921511830401110670545978299964407387445851162623874584924094312073865271276741282814981628257464349418792422806488827376077246906459891731704580527549988117601389669505804046386870758715266967958381147541174896283538848679846426991208523071747508398567406770573233927759620595787982423615514048424806977323618950792882597308943453866589867465890884321292655490219576553122268433633640193898841412246929703504056580582959216622985902349597162439615118634609967919961431041577803937310379212194007641599094461046363224789527681842929167108539445318110686005783441168866498694526131558754458919784491561024783294879589069133269074564894180150632675979865644512903985153525269939899052048262538879509784136974484621681222758057361100539331999500410260660457410306022947648130829255201211386602932763769481776214231159035224213650690381938256009128890352047862022313637455957855811792525673677007232135888057449260591933144346585866156342573047359715024345251088470308547065683533828793719318598710119168334610731842984664874732681896072395713439934592327404086435462233621406153713710652451745478857654354425143450914936541233943265536014468627172597753415750800922025490711842562712161537377209110049318461391392413322535128174451985887236342642756258078493775222321295064739944826481508443325586973586048227072703726690506158627447618919127486488234870709557860072725718298880204324439014863957130535619607720835716718338381183543038262908375318109265410563414980846085192212036667246338129637143148494405982395498801549045875194215982159587426997183469393776017267206461444220877416977853182843310654913631978152444639247077784867455832729039961155514970292389851814248563788608231679755378611602533347952844191391768071662104234474464086148831306756533276932789015505566388297215283432990834693500503819713392057222865173980186639459645723517598589112416784073399675075590603988713235796803432029205864595799079149761174199938687196113906340252378907794316802553604616016259899882751344264386561647594946211667324010424144546205075705350493135868664776078261509017068006442981104731494763783613035707122138610014544465572762156246543716211035694133289178419322142305197274511171508318053578216213605479455174439897861312751166278373143603574133969874590069896689338870228749312941533208933170247588976234275704422929535823529193229194001303160620837604865281521517509063891145113626029445067320218052047194911974231230848031492000199584238631505180786852321353535162972375595869892691222963430042490599463936073599519392018505925998202820670945058303872211092810918708105164144979380684119558632240455568711908726129862874462315332557909075593936566379193454235197019309879138483905327850662943346182982918500680930608483360017473013280319718481532340956325111279619365531294472288642829235277888064707145844142701989710931244643720525376070913911567382562161769963110251343779974547680108878389726872647146135834410083280993639517380112289330419154655313074424676526032123766588995822048207275691546205681968195859266764660137857422715097433510671868073991420906504690075837459195381976908458509083158489908356212936460080458992677385986738642414210090010738218269105045879974141533705760745681266133765871292604701968152736731235950658823067248953983800159308347079356909394822521995536332584553788045791739650721291173386213235563580631688036454124139970093295931484158915711680410681308475194354843250111157956729209810478189319154689609110200359127713578735516517564168141606684124532992883149936677566227284004762705661057616238240120223703198524124398542588590512852824970232202460042361959785433264582584003712653503720020037155186552217883045366715849636951296677547085458560193420264600597516888489376898688004074071500751819624368453754853316912708565073918581465988574948160588543648780042597377869344180733183528371282248649433979364758061112254916864113484889319399436901314714712579870454572735578621363269992839732870854901327676728899176151385614338849465381491794694175719645194436547879231483083296752751139517153034688130799787929867091801711941211978387724054153657251399316491268467215688766336304121675026296590688964200478464151255344663413694075158754879129291729054731896126199952529582145970255426139946018741464186038842243954289513961327702696862578279632267640736156911395178329434459048251197138492170706289453892384702612070132281717440764800126329792431081389980447502053552312963609380523331967458754256341788204252056553571025104651640747350586619590600267912617699759525599755977723449963331409703286805244050572439690394994318160552249785148600389709908304326170067950858783825635955384299308546263913408523140082761272785413898798764787253132720910325596109157788800588150351383942396766425716938491994293717173645252506676177641590486697458282108344293178712336014515600006619541052235372305822125423673282478322655074832884117904479642000152035627157764294976693617716358506715543922037102378759833522605695808489298685261911968032106087858867366419617256116729557333223103978608333916318933936506695242309197417008502878495189106006119046489690630502928023675359941476915877961994217069366624427043853356090695177362557665607855201620520140927593585483291880836530469022415820319491362466665361217412838389882852161801070311460647511319927367813793367040477859635795721818592357095278473018588632073083130548026458075621948676412359604195421875021004971324669236215818824540737136876885360098365901712650197122141796069673254045892834153093531085701361818981764765916234004829363575833711091907305704595857608334488929340199533877499276787703134943681323668487516872451614680614381410785152586464895507773012307999747506107747535683637559185125287696004878384218047428743260234860850326465756596928257160197812361766464637903804876840365456734892160317867817516267918736835610408192363951115587897320987658656894228982548949341749988390882907172610220219152540797753054951164657513784232811903197574880301567183553996717189631138966696432295850296516099922219614122519239407005645866170879489359914983232914227748730322316720400885631656565332092233246314007545342115470387256428811077697911400238908434821549313950575244586497619162378444981634327977016247811213142785968300602258499714628515436759679535966951079300415295288760121788081844981046698482043529744049808068407091476034812616039508921474530502345630297613716283562824535215226053684957527502736709004407159177261761094546089812253845522820746321442658543921344409013217892773789038706751580843052026549884623782559544320113689435612586570539559894198930552758548374630678262695574196284141704122202898286804164304533651048970452946529719447139157071709480824841100999167991941073820450704702627355037236467721101669772324772312471199920955960081211718813739012295108610675042344498790970892545425246493335487734728308614992072114085879499971346650504834750544691466093434963210819789372866176286542653439029452048215500463233391202118749064046925337973562651423665976857925929061392588845247595070464736121304254296954897596285729643113561833036617612789916467613928946756524480186669771487742183046282678486061782569202373617088213769561884001832353613424298572813890360302989438468256957442614786038636161148340384083274858622610586617834308220372800248689436134076349146579794475121230302071650899264748984308511109526361033820648221335880194143119935507498799655409174260501712528275839064232818173337492735706738399014747179249357874221536039307004952042861395058143493767559006859827180358594876524399167946232556127197450417727622435892496054819727308740192119334844844067899547818030228504796627756186716181008104762750059497400370424751786537672766171826641964937029593574547093576022945801584388577968366057834719264793340075757086692637319779244362832254973142509774696376334153578383748984432560426567396459848324228766371159082621941349922755400542549780171943530330491712199629203800772366026734861794752766094131791677002134058667285111712653718439609559916022382615744333464011222588725098115395226189882560417372059084608755158411260190255504022422786728133933568801497836888186544313792872231242267310498939917641204976937306681852413009866545169254014816200823554057653628037969788523147175437337006364096443600696526188561247222822493302823558443388298316537155818398523455783333385652050713770817403011614248386691336387518486830978514401909456521756813578852166114020110668647339882994479093455353593468731456377364142770857328362903335469725353246464338266387496829411970428686052943045242264850648598047482549560192122581850517587105383974804932698738278817297468017023163133082464921055918468178453668548244818623757620352123077513150472567425641085943016959232214810813633858543126112377548249270525555810865625107245658321598093286962106521052404689245822830525549895321955502896910406444969745463466359022439403661477192297104733959672897550548176225233392069725508732468106764173518290181746630600551525719896137601184056901078394556145176130190346703661171289627526888745942916859805798818291972403449277744495054009599697994216849278108117465240335645392662349428318577510274998240195242608809098624707110353426857433836232859067876436945021540387086512869123939784689674622392239190394931186438480766575480743561642736087223957557130042131056312012904953677040982427485183021915823465829666168139449960892890552667893015759338536146100243544222734025227925609794196791303649317090644647151326840396558571839435127272243464327394987476186640287028493748150767153255682573708621583344382273969147331854434062729354590807189903221416913593840138744813537442178100060251072437432512997449879224862253654944261413483954153429299168847967756506160059341591666672729175827876181313375282633749419110052355210958238501549796414488492802736785657697652084743400474694525622806383750727514857131386288257276896322416229260415903667281233937619500688383307949759703918327233650313430424404997370758347210711677765533913743728358166826406405550912213367476452754424838163548284322715791119649308758386587865023717463575456296787922784812849722366239585900358274176808407996413207782020920764370083175498012156656571642082995587662856456081565542655080655423064030930963221056317603750334649579607109899101169290892941734609765656209895655797010245074633840310172068013695156374246318171267549567069237520669709767174835440563705887131077523063150910358415776156330246711629638762364733343190771873345456999250817252642356979329210683850414100874782533588138335287164537781707843879835117076657601010432838369259089164179589944889695975521075820236083303562014520016907564461975560407479197732423108544462505854983792748873869394433436596837812100157032586350691489918831164051537250467467369660047316566000812341628242687993133842703683273681789004433295096740754442714891025919396461234702057822249769101117135646435489876411223867080001251817182581964852845434583122375403992884582439057040744694033174535739531096107137769178105705024757202285679026471596116085588799510288821017643093226854582971371943758722890647211463763359222823050263462590454770019543422957459734091653011399624414110766452645139652544734218884719747167938510429175463089078065523577260518013197252341554173784957053536064856849448531788039166270037387866261195512433500295435832572261627250462963971638633202390156369672984054736823596908592598190238158187080229962685625838590751339452611264843764525349205392788290662134977504054157266621066713408165778294216744675273670537161463651450472701981392307892424246569649579984480496101996801052627763554418523282824917484095102878412859998765957799144261974730204859181059826013736393937102708983606350122455848645868200611950666919757511663230239802113006286756942787458475344641982741602732906204546081390416554830891926263209389383350815960232382050721533158985386809022473526720746251713686029975561534472304338751272473067080955149232843528390138736248370714884338921036329550528944988562032298508623202848919517142937665615457510802594556662772595026208512170005028427944818137656486645491242716362351361537710975166026637724788384248829978666288330083235674856057215538264659060180511846699959764457162068095908215847260803442201463957071462932267151493595271342721912911165514152310294628298062938352740509703816650916471487080628241985740042183623453792372841880723174696672873538877744505151414579377629412869849482502846609904369256533263528502367951828955629087509114985112990777772527883961152751814857916565130934801041480996471565764554515796685425271826992322559358261801400763182361843089828238607853415498839029745600159148986637548443632816686529554245040371586396788871370594015779775695626624132222949524145117865679455633541239155971924313242758151461640283866495933045508642011119419773540920477274023109365429734501790934945948651168337539205496444809688785971038497977275088728248290313788931013819204870547700638515433160193089875583349564489897942835418782101369997661335594727241761911903768469886165688115673478428568405494942223746235252467971615358829067787684950355241473122224374733304049170511261230796292955543399496434895357500338933436384911670350514288575426984903627753206293538020723056688115248209182984312193207164072987155276530258834508044368355446795138378023929799249833281804958146149684902936491880199938931477579809435979742472155752854609742576364421871303857827216220131062600687913382112228880246237221105948447177860207004979419407825610585969568535654509821916149153086775937315081356097441217690336188229532204750672170046298274777956716264889777899895687815146535005336897590227530324653770595559244014304208303672647040150446844503497209127050589316759885661257239594176756058557094643397842174455049469862034604551787105838122470929386014032518446077355275450785887583770574920056058862150614120734104844467452995160577338773945327018727605804781369542606336283216473359587511895943344703232858998193551450636070051747357628776809333751236481959915391044117905075203435015560386172932300095906083441782448493574537527582626363948524828096979323039644935054809518614772680251794887233464112539904720378225020657019707712201480613561236877901846249955794005342165538231243476794449436165665070894786394147890938799465707681747435187114171743926354172484542799355964280096204848193039889417210207223857381418873367105442157963931697034996006035684716373302950344177928573642463565424556426458922704455137675946144859043892656687632116088956516485745947742944761902122029778068407799234107682159732358467749782143275034354658676410948946333981158746797347271978128369495740058210172555769522089903796074228021215082702715438227152817872751595605796648235700360568229541075889100894578285712042300740860608446988022926996522906770002377482264399994179524771249286263061336872736816255814526835427704441113837191242183474805932293687005658075090796444886425018635446949651391959355143104081769319077744942975627928292130789220433639874648978972884407033514109496952886417281459673770241659386047835946346550733751515097949428127102724229953873245368086298421377106039092578981598642133142040668986437607506375775366452834684005477765006013184641296969630439555359989799321092376614147786360133755582064168643195384758022681869453660291976370216097893203161832926505363961372666170574505779676701741813232171932374942447012392074029790393804769952706069447076247621921540832799002185840033336444024664891811756980465974372512638139629595356160784414856881530232991878504754184277148648960923386773699898399051696371365650859343668874127348783308842397802211943354634749162817822790988276731459391113560647434382581758007356016710957230373144752969426233361614581392668214719900135796480018006671842453882131122733212014689723232382507690910308499684694624789602201042954209159838086190628752771340180193816492166687242216098350589665542810902395539587734333535998329416927267662500344668522037735124019876075948159323601443245991140040292827311843581478353752952046170184788653198122036795102486324407892466215182932385693892275213155476417312410416160583070417339078096277903211359018404363457555486493687622358038116761545046901763499578302639760195176510662839429859210339006875315596359662363124469567978528256657201425490961941025445428811493028931279503343478259937209502879342937857796866851555468843886935665517873192377994782349678370422699027385271209119297989079143950762676797346923920592974526137177153968799447193243850647278931189408454751570012999199217338443031438856529641992333610170543902320184196143376209001074155663852135338609294420552984283731414933277907956502490227924246763199596048707764432481463617127177652252252342311678248481651917901154225899965287472682446960708182796255607759227120795061235440411239443753797179763349998337622959840061337950073106751612102991211255858365513303151249071026552293917125788481937652188446571821048263195306880494482091904875296321550372128315082647140969637283791522951586453571579374275666229237684426561235854051429048164087304143284656968174651122024005102764690526097167264986975046801435439778723176629659777156890143481825086235435457551586895868270478219488710836242368720944044005993159098195904616130991454166047178421193972510310245909133549549991892416335466977093893742306198206540875113747669134386039505300829844042119019590638229875793769087474217247570648366853169946604149018549087398899689121276559732593803848784595102213893938076664891656687679619942685219710999843817048191872243424561581097752502620057952131270852116085134257982764627480438132459452535004910362354686186049603313724886937155327538423466631257704588829232633421509215774683741198206077101485248281534041877204386603633136685698641612734683746569781426534860543789404703478473343872058204454758871147838455198461822382742385622496833720331860010891086226301692289081195988293964969821917878571104956210143254816329133502793024554548998435816757991162295961207127228414919560025431360342543376317698172754772778036732100473914166085488785116688472335349675733301180414421452791859791992438626647914953587837843820165957373217232914556882536068844479721687528791590874218828573429464194681003562782006143090361653373271048006148033515134977117528645917138098389051541792228166966917341236542533900114120017095017253279164148582962735890292420448435880034035101073681303869950777684861831375479331087352036247847525924351061660343275662315214023435496795671714532870412418488296157021610826500221693727754345745710497294727366561421887613653851108389739898434340796402695660354975029304786547785856077097820248406713368129492031204200702854185021426103019053294423858503203328172083305229146828590626878538227945914970503067262719731392423870511058893887949430659542992955556178907439809954117207092222310813619335323055491352545809204048443512000641044059309022439773385882640110816648417392744366298809411241401361587409531688357623417038720920360625749214612031133231618379373806396740781235779442961182195523653692925726974564579822471697026317322987601258851550813714771502173888091396840498609552971883918259905364961904177783849503628946653938109631860231501354368182595709693629611702339796974912403957954515909610499389996033836701165913399238821172291226314098476739454392484134569065367530365926802396754260500115716028187571563176091131025656111562234055262279795614647550846147076020782138932465888503838463275022130275417778190142708367758080557662703336143381278624725897978038835007924745263461642510658957461515555123381200548158938878224230533667522652612734833684084283940029164028814056310258391573530836227444044555933364898686521336132318619789257175417991745622787468902827272963037910841912645628430666766066688322494458501229772522271334650267712429177122683892460610865112336505773881978992883747488197078513993067876186726817539203651719028588835607312992447221115990617941333952505038505919228969818992178147783193057585967934300712062797461343627150379574769121184811331634098925888834766541554370326998262011681726265330260677001598278939632329173827665527106742706249480750773873710759469401944730698997038417746200717056112515255245950951299374923960197766815230086602115782062929956631402949435070150640277596055168334383020707325586677486785457739036134473319597513352652544197865434200879390884651662209829813767226317741554892515937719289723450838005068383434289791822175967403357665703813384028524136970313994001311225957096592740300867146088752085415304302665437723987937623400823807951403960294207181991537003610994528009413415734747291992652015376019241740504233391104433392031983244015938829594216434602986083747818217034587285786269614678177163351064343053366968916811626085717179835817481914373821066200457924670068436988011324515202417166418967884793138274074300186568257735410392072631162081183325184062815033837891133302745598156758193734988019812039849338883174739103178936053147070452574202530668926883680609340078316084552960165943538659597247211329337108725789490730428958627388424332517994275358833060840537352833355224136129426304769049850944289839764368371442187539316205926001866294748770886562532905900238970488884017149315946793317308360572070049443885630383223611323615567879337030769371511344836789768836531252681755142065235695094285994222122990352517820981599423718131009733907266534220607240853125994611788880435065111555354342312428332239389932135290762493518060756265282741752255527548925052372844484554746839390020975615357663315466172625403272745670429739855973269824437199829017988921966577827223148309754133329054945524556689037632105088835413061906472261094013407233063688644336983033234422340246606001900222819851896357148293510099206537690754206497236615492008086881932578730673430307537991010032237218918864413293984023589214176353203042337426752706354853488876870057514397240377932806967277090943616473502841875455080833434082605341485251909386727664530655693179332260803142911267157624807456856413593354407831540674182910702224088408162570839782867565201698595308360687470576582543281549394164534051314094156767492085555114382254238568523057916113696079415309548314172555979170816271359644901114471196993631892085932784346096900743812549676471908120429611361202636039773915978449986582927341897784414786310027710559759371106694026237444568355837462624617476031202880838095546266105009836366588012285164117274848273808850520395688729192510764278061731944003550477758665299061966682344636331002125318048314960443093159988038578499260510603143232351633760186266248252554420650368555932304422525893841662737592050302668323303328272553374205084170419508946681655326835428188922360034018026696620390066495649663758603140395387754730229450757699002669883855780835976990353678605289570460706843371695561340857990660746061893838158627795387777618393576683150394273261414080109670054394159218693400350630067519177513527546022067960633415368518832313619277734081361290182560764172725028928217326650181666339594991412056145599143818700311229244480572073357628060124679177194823999492117721688229101242279677244062988741138583737936815215398660058053936877189842404037677953283035887965067215644565066999539102018971366953812380482486073202409049869179494491286138246474703869364507371488546050268867870483439987386671101726059677994036380942410969357255186150583695977255386677100013799383735105178206095953969379374752901875000044352107457734484728095327863901960954842470643275330404922821721147805885161650151504938690866889917693600462353544711153443385634274481205989432948898864269085756171526958263560624925571710734424582337876418606229713634558709829999946118152765724811212492528632663842427823559449096745442241480707600180289649491675607183009998830840409903646761134592886525555259234676446163750736463026253799099055424873484300917969593841193919728921919139975054785930448905030110166836256358862384567531330650061423053425511564427707097876411275897017802187484290449764621084583685230203852053410221827251238527791533824144249862968568176120527885506489770951371479306132362978843864151688935715277545154656712563456051495081747366620451961463213564895633339196253794613081886692925623404122479819225700024715257057873434483230793955040643135414941430446130996998814408164689569920955405746495366544637881891818563301260582354187327050912449583061755139498469582775035613978678825885859200053773511018269159465238701255459252110356692853758371481267639479623167453442475807608206921872301302932523229040829560591345722958230682858272739353098340889250468124184109959015701854677222185819188408882775746362672678810251078542533795566185735093899747011056955955414970671842447138384075063467783421928463154356841372678206953554656959492501270241884533144690634854552545418263335004526871333482496176141407437063319929899850086191672065802675976651856487526955361896613989810675758735475465842265203646282530736885485203441206354561403453618793816909585108090692112161484076472287006486983844080829374207952850762038772046138901014134685860130642939561198662222303132980696817810734672485089158141364295095678308553604605085851120521454274951437888936796674440207312902689031145495183746269610980274172715842042046862612967640139057683480383725628476469841767440513341561809385973943351190191107702243277142144244775918144420845982098350430999354548510949074738510564100889864750403196561127139873147859525390508146665366762204239291755529367465590189254799782695460205524381929862123766763698217408293624532261497038684187119668381941768415289089515017866905954081707226940713184010509849525635732499979809061934646156500917844946029545040220240178871677556093113227006863102710335346741534061596367980283733408181053250376151961199773346590247235133055764859391886280616471638679385305045004709761496467453918857210601945789475014827149770235187430638468274491332452288236344584156420740217940304458745989807656894473994875286234245872738927889775317385504894325775257018747768767723548969656077284562307487367856990732818056644613282084193481649411802232772938334083426164613463696868137592072700960767622043816463345132449750945042206235959004560213049080744801401279399084522655117484762833564896989963043114978152343726613642851618443655502027771033394957757196900145386976248027326882604349069330641451564679944022859672346216863956831606120250117595404336950586957625002339993103893638564175364928885271327806680536023535494433248188965702698578764379821809738394000147561605979213877497739904968320675469827876269721668746862894696902980424212206440230054165076017046270967455533466674718622223686582659885509740669464693079775983756869108340210749625508779280678311903693736778097670055667548214515533623891518949999789582847854874752510589427097378306441835070712577374775518586985932601002651145626273249993182997508065823830300496413766534962151201315143039205909596572585999494284057147861876710500935783333812341674809850592141464223204171532645669273331727143193880224520552406379315767544425631462602441440697880081592248668441529969637164673658076655709981841545719124869855504218562910246206345711644750791507936316270642873282577280832138149828193557453988260533337390752694671966271169994945709645427878146833473299341489555474512563903798093004954787513485305998615826814365546043614550033785099189402576370956878100821706986633582761312075384786984659949640912081359257923065532995279021727419956973981765261547270684000412576518795977795955414318061564830834449290034637082095199920633771762892554981941572565157806562279667552126103388210260818768575242912222559750750782071448131212272937561454515228821228132730871079409591243333747851681997401444933232203899991329929638470711001525368519750469880788103494861536765739937040679873727467726306940211727273530677670135070100999067067297246628964811360365324442425241031584283818312697815739024569048478496915241834199399605727127666922953841715491370537947447451093312513152554701447209162039744038469721172836178460392278725226261975576334261090334596939686500362802915233306890209931783495798034345507448992762787662051121689735239518027004218258789961882979960594507963397057091231727777890007139665003152143783254885009660179678540218326227099151125369013827125444687724886630305986964348228760211668002865808285890878963557410692611850114120002530711247351734381612526351411796319417713441090169382232223864316124631008928473313835511082927094275398270073978431166819070025752970014322842754832343743409331829031099656972073242420059166090764986371133183714030809474653058802950045549495434943096649336825767925815927694699466005214209590568843576936512636742209267827349905147971913614118411745554371799695532112052844777219778034508683842085156689291836089049889240552473828398825584921509018272440015039339861553964151205731056084953244703444598547303107465708108657900864377496774142417557121419280534631417339239309578482062717263936577232952545529363293167339263907007725785331046755113322397886595016687107470166090423900074229313182471255981203889531009683399145083494782796071889511203937382711428240324813689022863307918729088217224721239999785896158730096377229643675515195277113837941446899063784314796991798701231880204187284083518466853076422995267059984824532774922735204519384249899730876451189461243333440323977276321377803497195032380969152711925568408484135012315110077370696108221358753687645072405095787000953166518494917375583750769012544447214431378799812466342043923516910202323173277562230946238917335138703956090739601488229692717334216004546270947427559926432699582643281406527775148016749374318983622338969393307522662510004715815257637679187191747052084983528766566601865764470918576877405331810137154308963191271092253137390510298832121693066705482188718087847035641135328555931928776158389855457322887533734109414203873760248548793278687628887789025455267012550487378716025891379166957114806933357675971032799693462374286165804025845420990882481353751651249420722638724857618327370843118291023107749430799211190033060191250580844920958825101509326607653807044566614563270661939902971672238966630972290801922939091833523238713761045987148862942245798665012607258072624987571989165165824806253976114664279973249451613049533539627734744462979074484113130548816930868103171860726035725953481113197973363200739661692601060042983896050133930300287846587006182963906208524319059795806252795931629398658329230213855942096580056361272171523038005900210785562217527106006822565806996314276732195811126362589249747735232199980247645048809431087606450516322236485172389670094072542250377986044905703677242149887190145471895248174942862278139817443694615899160418344630216971557194013308783887518149264956543579407636390595623600404031798444655173715497222034931083517413566122860144661338560028415414567324209376441854733119842475554179497396232078722025816751622724279622212580120979289756395906254947273581117900193581709580528876187358512835410108472165983918115035883529581076174473718477975000188540533492768019727109470674416436997481847501519412094474396913958752848551979519661882492008143285087833322751743335615496279496758750390914309208009063071690143068567072347051118262790564585774712084205449131642037483130238556336748109665408635525187385120372316738686076669807213237081144142111611641121615663489769765348526303250024220509349659711142575370977420956266995511472459501597219712669077523543338577214241871784150737917907049518158521800019763857448634559304777714833441070833286384320624230188153828967840123983994662487766242519821690849814655446765634814780885999082408126966776563288428467620350401051652396863126320217729595668502079571303403814275005517304376269844372627804094999255543713779172013386585426602594295003782087615668262664949293288676485578287549651282628118350983325829489831507574967979450876385733191861289615556182919925290400340121985107133239996169904754475699367433883556322006798594179247347346042746472322250902456219986542082752380540682145023336056266055211741501825528093910641463658204255863305710721045281601785051890512035518070344254387386801134696763834595383475092759486132295340843343554877220606110673872510041468705407916250747005751463297811168585506640143707455407594010544542312815629273873577629531583859595267051485312754640669780134397180108340233611456234732991667738255610062827196358297995602853560664853414093196550718886076876488824868973752632908522559501206450004251895459535734745677042770953156588641509903764595074379995544600343165067539664657090187641755443545868779983769032540508228945015515557034702388012852844625239331849255663272690155526628271531752124581349884559437755239888747904562243979688792543887785137556734096051579086450947056238823041477889474267385160459741184697660269696393422056659274875168023836207536852084624654045899311524429149374922590512321873044303629723794666732275083460526634771333989860001761026859357029179715121248271248470061199395512562048384851730690519304084813787951346824559053474752113902878292626690997234273552449134113552362712727668243111070971374970281071997667360170721140771479121771955100407033281092282087776059883910511287463585752688294285221597564950579021458375163906247282605624774585679699226450685109526031627599801140590200307529857032201484838831817939921718496536560376032064190421452064949139937465054517032716073237383589753545751473649464446451372763917473202821616020200967758981395465473140372406084669935622998021176630419669379178505821986317616139933731433716142583504176558504564877245713191002139756709318850505420064914850206431337483018517759264667187937123358410398821741095853336358395859889825429201850780825166243971113424338477303366516454705990756002940965698658312674698200141125632137564809723959938745902690260709242895757417393906735774951186909947878164013202792631753525044944862518244812935584557220873819863875492756351811404897168488775014795990517515210143553662703882658950263365290168986231693435874948434194758740528102919105568902605531241963392925346668688235143839369117748192026898962299871039681137815510189450532037701788103248010277368418231421513645933668376994198922658162064978214996308780448898057127999846199369387605782172569318417454647034853640614386898886296814391405191909064209387175168340393863987134551196601932821462823998816618159866108090674867159453265628058690757236627097356375873078440974382649003451957090560868339229060215095950895070787299977051104745429799925600264373845414911232381250551160602434552767685488071901262548188730512057533984293763648897277188769962336003214729112880807620294943372629046455228955479482034436923037561413539793979760017026030019240596963820978349644519374367665770854531159428802853735436300750100779944419349548202362744975345599234342786361359036023862440819283615005933484822404656361896871112767915232715142048773127283384932553110662625778532613230615715874946148761169232174612262554388308202596605588271625766273107720705631284323493652101360256605720432173079591965917739398835117983420132915024835336140616301386245085950926845261817801873143043427210793235678896493235627820486272073475231820373245188309220686721436638323322446242706754799562123076554554944770840719452231692783560120701781303159859457132569124487299349907040944416008639623961298472041084252801809059678168654288815272546258404857330427832625333122140901766168568033672812261478524388474623519492802601653780087467128154550934020137708331686136771103581294872942540133265304596161357345031992071081678062495646747410329979729450657055491645993456627356506390071660848920818353002183046527637013563172040704828243425319571328516526103258516301400836200675733654701933562117778455047813499466162469886413971423276612383113801722285888968646731160641422579081608384589254286265245727782350881819196002356566047616170093860300834283251970050323572321156784248507955625483422485733308780479115188391320887200951952610717313564956181320707670186734093482735591806552553409948198517570396699840509740767111733251807273972924933717259244159189701471911030134164367326041257565716227956170631066067338019054191645353537826652491960520786775011348975860986150612482196469122768465788887029035394086122552357207559744030088697141008492439321413459247116072657632683383449620569433303029890658548417054027717215326022418803247462249318745582044445406454426167067916712329420637613961873357182238598847670658827591439322118876044019056966230596940540317709153935071517579490756753928293810858436326613066653281148192009815919929715024538103435197514739732324922440359248678806412091518318973022126900167958739243490063907793743227831365258429494358608620403946190192587874721124212245999082819403847158387519110214810515840555514165671312996182648324099267831263461809115766527921102900056982661585589261752850224614604615926824943378813690415139966431605665118704985792327216804237324721561855915007928362002432962414505024136593517332862762779846893725488440017431743546835492490084693735519803704377952023797163948276848583428513719347396879905452261978021712286788946062349881313030439897521560962762515815091338502526498894137860158651083832698715371138817944083678199000661468908518321626833715469467243914985734191276779869455102374567397897199532482639294301650279090558328891631710822626675937301833247616006287702603191196108223820802240986588894739067650411993645445982176308366586218042972098922034983982868351461228431710489661486912453817686673042172661461132219995556114472054708653625560236252110260337677758940342052492463749555906599503195112313881701749023057619595997424588094645941836946736387032843707364590370266310739948211731700118027022864809389044313603647364612161206283008941409175420651131672195722529482179593295519016939417866707565256882195247809232795749356184397556458144305461681446737794742715133463258665214242564497169950069402336634868113566373069298241002389737394530364506277789392254812363767265495902298963848869961425810607521113881937459283422931594527215858388271451389656641825609654208592891749430234464254108534018659045707432196409075460432079063058146739947049745622795077046773250496700334844470804790504710691516770892874423117723175318770780975043000691534684237314434585174325067631418532346877219303750150749203580885625548873788480880186101697662921907334679717698888625910217171636253967550400257620149345652404978508929372652315252553799376420256022593142158592663703577548508492302335548746248220165637427800824785970636011683334135200902314095213448874414572853233210161748089870226976770433184173902862814588511429128157421035702030965411431989410422079156857923106064771628064725531497493443431404280741334802316161697006367417113572981188551485762404817528966986441091368545567315952724582528154219415663543837442663271380331581198378547039717728573288373992128725752295390864571870816667032631733276806033231220841352432983479230503818306206142249867032140510721672248175592560629354593498181026156663535471027026226962178906289763184050393173373354739907396188626461448800011237175793517659882200195881629671246187803947471353370754634384356879745456149881576440749034534220729714793702076055811617685617765912450679687788020150444796572030605609197380409720053319501924372222337915884194181743948029899313508649331255529469306566065307069551713929234789573850917468278199672649911503184122102856254314726518704952268244297923071362747449919176300431564002493424328988621620522029159636296126662654912603892074574220756055397902869339368620825462709195189797344329495457755555553704150657152696464103272678354016468209114694753897581464447826869284431934332289828854864138072747951633396847629258468964723200726753815344305901616617380356273772950624317037313375032065467374139731470745608839417373388408771483395751859590889836702626873688466893456372085877720815815160812797940924847345472508251159664891420763942831078464525415107324625918069454871903729815165661852827550701326302924363159261614173365721700000109010672975304623039725986709268917095613276820373430579337796821383784566389463057861775723771145653629767579417079957733671394710678547091850385264983793205922221113769592246583349648752368588111691924982179222965491280310271607492387612455444307126329098137732301855349361881418079715760744004393446247213291649278373340842162079424985314443913084364446164341729719854040204171088458138452377925144040730323303684504639612073978691402770880458510061362380193736012809472773259523169366920708022386132508953597515656611884095628685012120445159098467304416344070418178016476222549232577113635990355544135878382076380659821879280842999226862922040695046057800593275938944121985985537649631001333754692026235826283092715280812945237886606268284295405445424130658370507061216769387333661799689340256004123769950756825645062322234528005156730502823786485467226007504420659341028257189691942215037936851100054586610761290093784721212943706964799659822640511466188256638684092130953400798185842018984086717823271928756808672584006719290772413961528020534725458571519612315240401687986127101906590051058041434118099722084657660957034100270014603246397432655742378841890893050316783205746698528267636083781870713635621385747206616659147762241567889029963569786312766039583650916812397997000381743807630887609611716376656939272036888927521923731165830238218974321701800244648317322517145672195166081547908194455887978034974265299467121176135478735232766118852820236600313751032913948352128209991570189112833992746614013126407626709979441100381989911723875612447051067839505144715394587910111585944600125873134215334795063575881129498516058959502399073114146694755330927604830758520037746871741982608040357807094474812578135925906668257543022489585572599611550341844507655395684477582245886966950793384867252471401507431080514259794135296309248068364093545157743761767922800830892143681226196497220690391774356102194588220250496834447250505377740808974305689928573159569270206080082236594185450354425341894288239341894420255581369018791101071691080507038166989085028672318152089906309276542467472880000164019691152453823734758805208268173351527930958755394424893439482264722030241805385942444419460863961602832477269816060624081177354478050449156222520061778815280347783882457530895301587432175726066555476868278742926973031821546016241799587584839959957902936273947780661825178292545562846210651554163015009223269596772480882171624857435505429822074003475194237316876677885770487409540011272816204369895519494865313742961613582145443627737678345843720491748492740575086414802345561433669648770195953365003784366371663112616205571292988660392981326119557294403232766090822338315180301257686423123173193438075679271946575651970812001410192138926447253567566674646998759628018073430116586644677883590626505389315485615726156859658541876957899248429439624564105577423891253148932340554189098054315878038485011774568218867344439811665879709718982849966309176752569101133311147905684181815570915695809228762476318227466688358634304180559822712590388344395126808889566445269383263422185471472577570162011026306783129668652470961775391330640277729842214701379629354261246385877820016304632870928205151121394731349768784043570683895115972040781179518492373085012382266797568244340515661173752124692500353207531290615997567513766196849445412852254887463186464953981532389361427863237747646692829595421441818747332708017672835819250773827495569201183391961431713052484470558553973339412287190071823313741628963433950672543523024973843530104320358421945581970906538851121536022719036468301145749840273554979583244663439157193155957515056712532553702059214296034025755868645655789705087109915129021205916284174709505266210903889495422531529768665364452918691361563248225724427644148199531975411948627223889754908780033135548456964554243694373365676305820432428695106005823553072339840899030422584351919355665047700065644535230302822538506736088383491853522360965479100872656864818125588601291234772121240470399217078034635434167802730775062872079336557888629799800379712287172527318749224005187497767898624316567097608823926654922575531405359331387336983708842658158760770788721193884663491869594905046559786255284891827501000390863318351525263370754521573722274071898406499314037355517144441793867717464822123564896336984366878440824610607614329531051365447327236158429817763718515248232221549707342287253911510886461750499243294898229265066941812966815849573145631861108270212398287103831071104106676851024268326083083797096802117542960108924233700046220920923662167818883896470074440351645792208875754488594545675969120270581941676544906664388858475278430804743472763968565993142577536453276906255651768796540565696511038805995049672015046764742899538725093685415855821119113389318900999665807371359439393230116182198840180978773281042340388253666146895557460102473528534380668869811708026918990890904077395825963424036826116566356395338991008265516322864240209576365399721693070871301389561630708110707924385563603805184891587217396609097303717725104795275362707347879289442288110439535154965933757092902056960457786714170823789432624396410313801143416305729049291482812959800062308388996483517481031303819059682290825536158077263169438234390611155018533296681638873085493440535031882175035052926760468728455366734657865802139996426535496402947085334336847198478368763786346352071418305621714546378119659553318552775013375743944138363382432372721480190856992283778736390844466100911519848784545502691700800298689355461976516415343228658863319770074221198064565420358882383000646304084851912141664243064068681859680502595087548335591135396182351716184820519685571539089458784860186810522151030656917934499099799961387491529752250065560882951146822505405200120483814500916634869473879027515586202974258362011087216493566997010684281112232635109406300696510934397201432126406162745970580471486258665638192941155964848190205852559325313401574238606661507631708769566454276233065101829226534862778117372039098924013715485654881512740078257200794382852888705745060433787843769556011952891740221373976924304121614266715422164450108725700554427450826999419619448968188392827874310669285272154682226579398350366907184619614940631713396175923585582793643823143344453108747536970173649785473770847592832574504507271208814584769747960110206937200613974500335781277242901252207857203156743592979108432211977956373596947633624247539762193449313072554860626125310796243668595401850787281538385290063360181498059206575608487090253008622631223418938538974133669135925323220523465162282795035079177827018519172790517740486547233448995090149924886570210300922190582671563810801567939104061396539631753355919862121850493316627942915060460713028270413034037470913210956038834473740644380011393899936599610871858371993863229270869337488651223596501551756537886401960220649571134845064387699138663150074132805105006260818124066532779429069218542340115302118560395762280000081069750243600254292082375667463003501868092145907134089571690904334305577539170391517443636995413537144107290501544496239335090386790392609749165681062205705784254609148222084372261186733177891630277232415721799735832529127669480315165875880951544421970741421972805813301775426044193001549903932970988928313296730646301140051454675031958851059761559343954719666935800176894005893960921673304658529009681925938631282832880071148881367399422857587746522526434411608397921745568275505371777100725130030200341378039804886358459526785503337134783236421526592892602703913655431363263802739742269083057116185316333375389660633954480518296519489947149214312768927047423310121622230756208217061348973474627859403190122498537120487175597246955828346056189929207559557533362283348653100764001400869730827201277247814610845093155675992978867632766994006112666874886168845892459975049876018541490635391477463985451199412739571455704238023962044451177935608872781810769943008134392756069034988905194683219781640796715543413311032929221713048125826109667414869325456961031956820159341778403198682585065095017720922604000238535564966072282159430012621063714313588401335443551705376166779959154821763759738839827191421762019998390771713998891266127269680503231168212278310467952162696685716710615675364017348227523758081109987756136784092062152405600537116526237381205997951713824703756984558454887133850244947306298386003071310548222770627232592339038129744080248360679929304938942763363549996727962605809261192752960247647990366190171761379132575329560470660726185253932702820098739307443444573003721816456309236300948764197943811545331657284714968769830200045474003591735776181117702610311073966702216614290357031444354091914764624755076691325582355000118407460233068818394413298203606944654990737825041122771417248265419332107351041051653437424192129443287414273151016730505816631859736412709381517439264561174238188681355712951282032933101932725099039239716040780491701184255983650809570692373704337671060994564710548104130188582148703128675524451521732016661744449899863028078479371245211382104537729328636105174265558901887554547144704765948457785180955692335341902245970478786420433107778029858282436828542190187289958379617954500675500579078819354473426712357931449630761371997152524910808099349422620840985595681287667600394398105037464580948783653324984191720857469749575040502646257672634072395031487586141070533974668293713358985198986724245015141634209943588284016188966632400020433273789682759897473106945087096199320028230133596920001221788505490788564181345928687794802374269625834801677727846259947031236038933315777164840380788841743445071494090456585443160966038650821778638313964622500109545071265144669183569298259074292941152837376788602435786891279930364869527657359158024581274945491377241593821191244682142316579190218080273109440144782010956838397201892513607656730848951181254277057498502264331324089295387443719640674196018883440594596839326321364649333782219745488988175757667748464153134874374286853902021876231338983819351546662657432628147279984063907494754002576309063029393800265119503688415044122299124962725815282042481061286087863377246454738237891096075832200977798253240458699426544519238806881623385387812254642705239537151547298953328093840826480478144045999509872220041458213053101559005355160523838884414947521018710289364316028061756270784836100858508660491216237549584375120134430078967020971824097380243714185982461629534621907221065551547144782454581668910454423234931836889276326175384203411070185217598865826269756754737404337057628895772647916914924853229934621011776849503432813318385780888972604211427092782462922799208910009315854693290604121314602182610845782621523235827225225447877792204964137777008826891509795770959152031340864295981044598737272480464873190806266496560253765173288981420814290082605625876992330131888426579892111279917465128825443856623844099267580062941939243673264745390077953561943474891922145720065139430286016216375011393055706459459143524689916205519219483060216749571511470970170480501182829125548998281932476084114610802025325420120241756954973139040909768107364510081399622038038446196532011156994687999714383179693888242347884324026425255588240222636438032726953202499157645502756120673370189431355854819539806630057605446178593910177332816068215969866737326162120884024289925142843741895262728200447023203167014184454558363925900387982433850354066453026288323810351751781979490246301765214768370616693879109671456975974132552828083557259303447836115439578971237007267528830015658218554086028815375377629498992311886430632487372626264960518790030591547227138120554396830671657693318678007414921921213719536297007905453022749282507807463596875567377447029698707878426516224737382276867679708459887333669358642361222153076543186788747524825604743641184900580290532503206387944545595176629768821044312985683970455858311442462390923211805389389873705352415750867596526730702993730950939635176881278319537855217677185269293901077901397529552480880693565457389368505826115088713613147668241829870486997466849671963272741940860095996039484449404853137148861055723056259230151321944296111422322322129489184648263198310552531864349198351210533469430163773843632684336673941987747709848752508696343761311476816356646533038277500033343838399903802501587740274690472955209326732457608551025064570721062607374268590802243770401165501164275646689528112789880456443044593148158454502995131296155934159931596643270677593451093473670207877300366697270822051964600324106312902146146069638452762591175705501204073245338870969779829917745344945923507257247102212201949604648605367254363525053069546411139524421251617442734229401649553834372501487376148762791575842660086047690715683344209258149853926171584517319128594985985435862337065940520070012082748910106028222371746892945325709606338550715379735817054489561858678675284355098128247147395050312435095138654424913796626354675268080888888519322346351047967929774427169291602332151976049806137698214983744302522414945928811501543151309034183594728279062839905372652713797369346705720756833366108209073584921594584194832473454931054042625700147488781487825572665339757686189718667421390080590390352568406469584486341058786210676212587493719608363448794284832040958388759797554865657418247199935058366590837382836752810757051345723976845797450131515926051067752109919546820685981771298180995748674193351378303493970306360208371875086546866663002868941738097333220962477471782589709990099172670335832868584932387808384933751263322460864078417689489672057885904481693006665014108921767457117731559156846995650857964986859837268643564701808692292868997149333045857142269798041097026044837967243985715116650513420767992569879821378567773284244272832705892635209960970507436568977188843335707665063273118759626581938380889612258845496446003303177939968793417494204250256949049546698120655727709771762529737925363546008811239501148264379818931800570651451200612448643760950704397796656230235242729779223282885007319072585600086793690047002686719033504936684490770511448483341265536678306486009039845266517604040713298560282125266457408514977409697924339484407153674078579226121367787769951267862925701372538528686226818891992070850119512617542404146631216686318129874869216153125680667846748001962895216786076324737669173100410352032763493079752007138007445854381291271944622498709518682121206122678383371996191814805289402781466956913482680549534464788014099007851206277999559564664876363707210974772855217238791259863888332299208279166398652421751992577129314325856995577165000452853400576555418339327211426198333212406369155271939357539097764529922482536989125586227468164173783907266998429676095005801972683540553042163328418561385611275034308806245615677217385273607502729398745674177861378006278904008985442136974542359158290117317727396219183411168049624342362020215102625323284664535846433042782020475866534380339990219303368706819374808319768311693627694687906046842264274429310104493687020593296057441613917096969645761326080971590535387930048806086855286444956151625172418730169571227704970540167179894970504670370336523267785300008750745351057554222176974564289993706491355827856871065960043150140104741910259526445839364166459471568691025822231409017423632513167979586188932119902171755939990004579261441245137289718792739001523730535311051693399709429519648859224011606286507038930804967382524373906886989726184362113650044710189449496849666676580872411963748803036030674264675215330156534628980507899539133431251078748275114878339427086896274124837491812202514400137108319049194871109392190823122165405509569529880411375387762284255110214750658262211556232869480056372693554218572262382066314474147315335738111759120205666557827074237782698213098362193733234204952778983869144311482043057985724391618402492762739889841623491335603003943316865601824526323140146336593731380441338770065340366946080910825554746833662478598130868050659139338623958416946379339219638701734679074829042694690756637043890900407380718815985445978184882021949234756217697713847820546653140957837830764707280782253958914465154645556060192358979759002373388061967281690201538491906015796537697514257378485491379912633742553142253626204688954952642575930397508595762547298040646712976067198174154617012715739006115402114659541852947215801308817671894270739335449266667781472386126333742726100444658548909921278023187692467119429353103713443352552288043333523371896215952385177561716358643119042664555063772106228805315759759083677632041463212059642186476907612665649522508682047213914615388931187156343166299446207324831247629275962398509517355440765449261620717449655893205275432892890117442509966824557694924231904174038320035379577245262001400044650953730516006036423598700163164903546408183243909595130877956507040514011779978130285375679317815779596606818320740232866251779714730994810974722014328523233726952586510852301383843812340964185064357114216202020050997847148127666340637567434969463434730953172504153033821230431066785130968499841585253558201415041715014791562638642858028860802776003328566937854222026425923749512372142372134999109394632630479247601500901426457624103965074902839353161589286092813521791571883285094239141341926062583940142955817152811847773807659251476918045890750160683363279465195661427450951057427971548302516373060846348336888527699528461087970005129530803072889710156232764933099328622437708305045538393130912233814632816612005912156193503051653234490197692340893887881738399383569594523589455954187780986595114092488935899475610913556494623396382363631564191959753432363754366232149339614088396112985680864893233559631778667733713974727955375983518556298032752866774449473669923814878801799983350430418996584308421917775251408052601585275478580641233967862194477501662654676105150853389401545677510155398567848819409362761185088311121557584748001719648906271495520931849910733847649689841958248460307243267692706068432698258363883864131009377664038998066571402679708403271237494474709003438498348252683348669727576715251228498725691927141947541521769285533894991261227390509145852132300463314450991542843254289600972373494237271364128517557625708869207516123333715700802446279308089063416255945701271219934289163384255952312557100485468108430352714025730338389858740689099666000049782322156264669234271870065560094574748131411396229240145410321158441112739270724481695231141089325402771503993066722895803014214445437332459329056173869342653156629605042783186361871066894941855506308490433752714167940058697258606086832900095087349854694216088134096213199080285804586376887337489165335010574380907810855864673274858193883272203387932718302246344021329509663870550064206399588226994306069794972339306207034321591446009230119934404940855870822976962025841616079250335072164236722740635161914750293544487215777338488891585450432357640848796827276787851539488587463567466729480802559595398301415842582487157029483333119365601420423756247344501213905491384310683398408501570263860091105652176802121226855360281352628723845951957142243954631402442206428003565076315420225823584101876758523181547591816384526847494467982653334895083532846788079746210532421787483836510941750811005356565724975544210692823348568746209259551923366817562991871788956559430863579196440369944822234317777680491514233731766865471290004915561589514699595896197701407337024003131725174611412368400266738468724269516876914327952851592898788159494285153385981878435515331258650155157249164897585313087894963657647939755967687159126750904631479526413373666813273342662581727801251819835502982976255537592013962620241726580637762168317492956271807064576790562161722989786810427142000869526842480152276371537081790156574918615861384626269031133851494587449147271651885000047069100248842416368255492910827477903195971751837721338972612158637280876488913005828481609475291296468075333346125057737648869791708108891268951092727421580784514054655414331027187907112301627834711365213050575941820845460704805133511647666167630585261653198458023656006396948304095456031488292123799483985811064129799563186858145630001311757496209173720179440016494735952837612236472521015644297852469095631651219392213280814789061852498335969187995599363035204836047904413152627762623034105993352353958950198891505992430510509320217119408506868814609809999329005345879135229288583118347849823358651224085204812476689188599401799832843337412380054020960416341469528638122858750216287394666734165534138397095607715123840438116250712591348833579920439111604934173212908436673901517809595988425024125320444750180442216302614686322481747713612711610033006575805763613771468907425549092528195643760530412513065411642229386167239523025017331472000607178704307262846560685854214595725891288942437605754263820643579472307322980941686366394531751536030320910782816689919267645737270250339404884406950563955497639290274485356646729269568680196353991090399859540389407798056783678838460009713822292994258125335672712083009559931009253976620002572222853811237856627546451266194910429788035792340088795287110198872378800495839684885220538765818430296925991691652697486186784816591028261440877765093535536669018382130091705325321022716019151584204101874085546088617384333918685521081823988803494590544550463588863745615635517125959305596375942378005503798057989185331740314982749663461385018037144349811029543321754767925885841791250273144821246186153909149987088412354544551887840637778006914719228512404617587984630146639860588382933322243719180566793233320787357322297274087427008948626451400246773228163878759854775328529706809582551381133323060630639862375849183919651062136364304904487340952223909261012856023153973375462086556581424912940578354840861486828303645881369735933182735003909977556426334295812345539924602355425759206512063385551221302607264212495067341172377092180366986528154955643300591473116504587930656468889039712475326812449636950803568457428932542106979618365028416283472480017624781549003747665026848350280154012266103374549029863260233366562000145290952712176590111955522176912181611745472528147106364686672790127119865592870941732154894492306366964988365433201946495280951735994849782397919468322036686622458307786615197834675096769756236947682447555683705711905440811700405009560138729232778149092592014449724205282054875607950962187354829391051689956858234722071337376527275148295105186721444274977291645397100543342930595564275324770871655169961174640444644188976870843361042849644131538725545775314231899135705599522454375204680155253091227905208781910539293750358051456771192082514780931593684821191224464329770413339358620756111584955478556144696372159917196991624989977919010483890716826110790967128081800307318278115105881466308392857815895558785902446821093738385907337372468807908367977729946405828214710328578482040873067207989771486008016516764494532586100684145060783848949672560162971706505226626160976384204985521702269123788646441601574315560330919062604692458620470764224797060395877591561859739935071867734212411745892357754697900562705907368310765046671984824270392786059818146961500214534381460699187448434807646963912355612443344750985337062116414965852709799456240658718277936898888683836564256313994716549550319861310412920165193158964862827640061704836235585073169257550925317155268345663718049831473696086865742407801940144123116229183043667165698138828717773760877514908948738213867807959391323312942959212940667946005416929221461536916248924713847207929173158700795620677190594464455544152727936386906676797787076815394621204138479304179968274618790514139976274560021539571708170612011274946000963658736952363691207782058370518778187648871330225467507104849996474891938855441625132287066769818187875291472114697004364340768155960333642694558197050809936325994246997337685776764152057746825806315923595794942006211791639798045449171296522246171796669082411256890673926802375481141438899104326387284464668575331510191672776679224724277483332589547393569104775280156386572498511865929154193647081263313670752176320186418767143096958503735485592778694459091203107444580104514683370815070879272253165482012821620414133181925648773683270679642080938449408239144464565772735334088006775530886159313287749063896658883621697466486709635173209565357044900028287693416899103698417366202020302710914296776715599789201199226720853230437992634059524400734864364407999651841674413205567099127918620264688557430451601277962339279803107339552491163789104877901775485058774146705018774576279894398327623325692241213585750456237471908909060016968264757551697349056947984380925530710633131213951609293624298142154339894176008273715080506855456365496656969291403343429576960477003028999597506897574628334217446435851015580792664576862313372567414816231193844264107702100595630579116924937379364300316447285503229017331800952396872217550880126028725122697617696524129394610350229935512933877148827481982779755728760279029631382081473914911821780268237527118712781232197928203006453818230323507964666010240039540654198570453204578258520501081539358788160237925274677690135191941207254143234398930703929816941048312144606726994047522066861880580242087468956325492078475015012117997682141941453820022224492794880690019394683414745450496381395740728743964092451052844362970446995626662244577413125400172792583677038483154782427354072810244233512153013257318588909342072293788857118082864993239018888436568526165115818030736613383912006799870955116043444580855608122157740851922183469386220876246738443521638569654504289142673310157848225198953782784385391693164103450334389515189437397553414296265088039438537385795856696392570220560556426511498734592646377695527263946889457116248235611682925653645710522986304204694976152301455700848782605635377546006554844937307671647972161618830732464268230332798440735227525863612542055799175651367246436388990759127326743537816798427442340264409609237554311315824857788824711684921447283997490126333991941341685145997353766631965418511815854532429424891126922256129002277004786953272681065977832124754818276077432816514397589088156051800358359027331885996418235003816126593630282188854567751299818050580830831137913039997208579882413342844197522062465647211085552963191969698643208929521031660140088593230295155192468884845669777335782789467734068480601618706784126942370415939014652522530085178203351820452570425666609582450371142728445042536419904160492857031253735833423417255686642064530800074431721703439954441500952820254004811897293579890835093674748716828571035440721703958564494958726998198792588698529266269843741220186848661055672384634955093917092262697814229269953643373743361525829619048064886986220552511287044560204962077584156088238974349937100720934170776804875938504645191950342347354456032667536168503609604058085826458294897985333971886298111329019371163414410835620193789940364065671865822767525496006394050219812210353396428510417104553015134413556340087091917389285553888147569695142982161944716460274235270160930800443906765418878875680298247345028174249225380456424787362370265160714727679308306026815494030916368174781860280591276733801572742666566814171502237793736284792941592835707414065209604586939308867410406343812056517568047090857306640345860762580271624474606856081666888951412498272553802414744198717205117334458773067298900449791057915950131818093236295102294827864562799238543675245432369907471362068664157838504961392909684802843380534458201519676256453514221680443298642792462969768327086866270176405390126522725248581963352865289315114308273347822529833102120176584521087101118368598261173281581235113013348587153999731441963982848723579634337355442202913238828210529071262534823719911674524843084036222175218596489214945001890917380574400091083641103004992750143936970635845291108883172316310801086400865822297823522161057604835909578412833810742410884587028602353616145214660536498464843298048071544217397265723447508628972011665636140658790214341936850000334229920937035847060295838148539660252778787693029216656967188206249671238274074528051380366274561974895071767189223893632760929301686414155119455193068643858358649237314819351657208965571147213145551661619858146643310686792401519401749468329128706408852690570483964423941737011251424663215465984042374793857850367694013810055922924372585772245179203611647621246235646256697910307633343833407867473764022767232954486787793662516991381436287972835736924994039548902851092154978605160901441686997286326131999761749547878180894630161527853800221835829881213651085119501526595915087016221760733255398179869785252482789596621937236298925493969005603061908083914548208613489945470264728067528755216526695470609537213707765679928302214482265612730306419786577775349447319270175790696960209873280264568306618780527749661527533639921873937203027678510291292831351779066966434172171239602603208579211457486261740364122909293939936171387690508311024415109340862818625149690247930309175138390857199930813476749667631850594862055402568468250596104301254519257402845577136514036071967146577884769290938578639612048023707629608962871722913671107633354194854490699827865377305899628304790394585063975311981552156030086537424189108713766624728159460857626766691365909191452179735912129510747600746402580060294058157039364338687730762645825298568166909207912002327232636022710883511899132392133971804784003137178339424595982295307921372283921279709398181036720333821900388339752640029263554822995756590404794296612697712935104796109378943054937992566927390268102454641550870226947192106664336036070529982913720874749864921990737463013754347434495177279498958370389284911736721576610876371140820063865092238742947862287865633002765617065256455972288034156009713920596019984569741596821542531010440415511107559780015956111832208242699064207286779248963432667466974764553042981089704765858412153868955580521177143802534387554611259211904558017869366470802863190849097839354019380749480467962789505342084236381608095953048739021576431972326981976281869380856740432595986569544022582525876351821562878096808189908950300356108627797973126055878016971577025022356108209646582340446578291879568798295722328489888121440438151147072465799405268431154175700793448491538512691405698133461597050107647585713921201614629773016768972467980216487060258871386086702905513963408469231792765154002229948020095388178473917976956388186209589837206173114744610011636399610104563661657035238962903400423927717997943755768136213147803871279826514634707526245996477041374113122315470997649516056001828215498407544167324436293167246692657671609794085785781036466424867183164483316107025415671227652315306130190262324687992190844767071027527693946238043187774509203069316183730665682856142082340451377746528427808922393789778837491985510282562786374479902202696192497478616842144560411252212881794254006001314128595213404303371690797375280760681749100009859866995741033918734290018313519236312524464510260683818628064111400895305401116687432870820424066941591970589971458919226561441552354970553412894240102638258010538591189917866818051794721915461183157982822025855770876802478213935139149899719415291459417095819505214361902989326030745297251098786625454041682452557374675047328385136302992965717125302182052822406933114608038415272840604404070744522677175243811368471604666726852932600232120813165860993447385823372134605443928577007123762043139037830699807580500817854691197724330481835438904572717280434469481448626992881508753644988396355008523514908317989912419861390798041800409491221200860787349121592476879667446047310072155332551217376917708410275291860702742168618785311192995640827880525828637312342754248612216225787765860538991631853288417809794463194550531634462054304491442572195120006372718943391108726314302728079014978442820421890263286740207480991283571980302987575550204088976410740173242538986507980610879170820156916395911049753550061318214784548929187052758743333885932940866148171129839563475721736018543513149683216161696394207237393437065802438832337994045410074576570415777005740197950075189235783504375633715519747349615846998280290113162361435507353330094313173328106234389969689779224792004732464203295620120352551195935399522944259313833124979723380979893465521834476083581102302402117571881090713164989574328932426870631769099109375157728970335504290261643556266408323019869725225439555643414650269966538814313013961458346073868564609871077423643107246060799917942778972654180566051398626373096608325754783691160557976709036494309020407358792230188461670285933175648032699642931529398222478455887279671207830074884431557369454823237399768205814340942008341051591557440287486114223412527150544582263912960925550465269523049555865982734658843159424356721794275732673813086691044016116631443783818484996134365006132051075607853262654123391741209409913206634197004949269223393458545953855731174812983888046614260908007114301205477569993941271059272934702243620593061428147529153691764843394963346778809111828305188108461338987177153264668477552695443165739469600633644177395747880532414909101782868849323553799945419333206181303039740251935922149890924436708200862723486887552418789971971460161244153471298146511377129491043751330295070699220791144116416572127563449627782916629062899721818066814341209796026549019317448563522972289654453036498201366355079726496092311149554155985235441662480558004488248376719930599788911660128979711058942966044858402443674329567247427786188878976798599532513093897965195681692434790737612860442055551853054212131288450159789307841671881156484615213926906637007810124841044835306902125671485199092736307141734426317555378412315582186201556743302903396102570175432167108936358425593683914626331384568192322667725878768064961507754748127641094231303551550581748840541100261302588828500215714580083051150842820051071829070260656717422237168169987505104258293036563902138172913248234890231789578065304096765289078862383303309987836051852341708807497395786688534534568380347872651413455982637400583207600388367672245760187761510985596468148388852574668958656170539147631546802798344050184121964960726077324159091561955064578833109004644581912027368948354538003031883092586569266281976699948717793132866760232337538457426022295719364980955847134089903853745749353909781179261395700692190816197039636091174682856594345037059557920628622996080616722597950674833945851287056823622515180509863974776024995610528841869347544194976336910489138812640635414814247396155543785821670437828879122053684829653899040106459725516493403928147359369680467114183411996669812390492202762620219137196388409041830433321206620115697752087173013459219083243106950254609101260347987436555012543312328033097500839390541254500035162749765010246955023201588103073274453246237172842234032049061359842788083301319829671255307191335854418032849095590600148804222431843792461609300535288058148256293158579228879725617239020723848425826913302927143729129480761207985807442912850390041439790766582699120539056249621530715441269286522196625977450170872901060862732953235378903158040641412853644289037490008071277349671347749957405751909250488555162849190218615426009191092019361406242149615920690588926524940079849470796001990663554248262555329468097654878235780974792542028449093109580217826919957861821123932743957546302559930954470699720997034158181704906356114303403591306252289136326015087303822976856403502557900696441256282555691803049874907718713249224248431277551433545041720670939985830731206010140219905158502507112899917180189958948654593792202151006165218264590084010106679972134632065635474921875659575633269046509772003966759013618418961765472004818246308937392146169549419679160000867245330489092966353502677312752221636034264984165211246252512228601612205616163314830979298504420440110143916579721761438791663671387435912060994421495256055798624394018206724799681545053438700024322263990285539591292027167798243418303734764687979485173970234822504750613539595219065872289401344879755361111211629937632531008264573817617806552452490901781572819971677307644753856390278087795394921874300962817073049014568117705683747353618149171122871524971058794588274221332192188140734240212807381508879710250875799916623282709917071662766740977116834496909558388747880461273623431708338143550568219694596373014814811569780679564307439145243123167937626531773341149712389325473326615968377743927567167864427400503883067050944186551517248522299878561422154929996648780885864808148350946215455536770476180094720040056664961171900428272441996726158774343865331035995516026348919434750208144548542775160843196978691420277551992595383393606911684008795443431525472649995125119618330658853196977560032505982916528337558878187314394817798769487108390418727997455505366433727156638992529253820560653339485751890358425706416914552470655034274322172657702188933179080090316398534049849170963872146709839261400530544811501849306681312050931150482949407980716216883007881238700079622262070996400951149237832595948523753432319922385225920041661185081479869572290529305253400732770931890878917251139771077700358526785800829119170418914489653141570823452627425963339181135379757946056468382538998937961775402010602500737127468438248235115152046800626938518293829204186130038172428378549463531037599206041899380365318848886622018496910512337609585753045203608297735051665000145152412335628244788993585067527214805222685818211552294181797696830572365503340975322034987759756217126751205452141805617280217803421375036200918428882912942565908763264540220689975694208785894661438069223989125131670280442081259426434300887885821138441004381095370581344272312510046834495391207863098825879407843479651900174827039658779782523166974578760952036447103006661184815783382662051943601303385229771716397242507851070508919731048982131749067285323769228037947566176331871723036329143114538265637888265891012833098042994562442789913922414030194600248867127750625706975534030197868006897269290655854229444573596964935047291932617219698517049946044847417834783275853351072672705296453482832119368271850125722601285993622456571897538495879925908245765888741599588692886773549291338473128484232859852723052880806293440287717661335255660674699135010363631250593185064613252966703728032476212588311721477543596761179716669745931631322367359087258049793079564458564484752266019853971773287147551011610611376635601895877124696943380414309843175770111645090644608253891361680800787349785572653783582290912960054825247731980894250571039020243455088075377935374200936904911985300211019997385983816508741515558223811564735733777607578623196251869604305082956461139801846235798148969104552685664460375069488297456403501485451877904024168405358856706526301237771293319213777038536327852808680917018225763646688401862591490139510004858353889227624291371077717304888269532049958145084774897448775969898275973402468189107966923322906646145843990663381767690176784353129908311587820858894183888212301945319191589333750065705794176071410964247817108284418192331817826851341408004875611939602674681482744349655662935633415809838044091783749156640659102042973282064253886724907827727052614376061972781083924239101158958753327042047918147028422222302360163753432303822490405986688648614683231146934569974466323479977883194952989024281650280311772702895001118283716759496120837128639387455456487803473343601674212463491938479297976477904957140837424282610161016390790130124592402714915948339108644577747200107179630167817962019507977479227318514093433484508083721485980324501304204005198989264149696754760765499823070782689810759229853739049609996919308012190990093096225453157796939932913911961308686046974525480613324598017530160016649853660086665761282301313304560556415034796792449259644688960884390773684729922936325401604930463109719854345943997942139808232642208435177065246518753956799714518879324935328075723212485061291220906506316661909097149498956460461733228923783972818015304951199956979623316582610545056442394926626670692582407339954943951150597321712920197196510437843692291160270525099103737186512082562958899594999736555965070970779325686041906876450816980717801706979538401036368015214670304531581060743833814158129675478606665015360109743587327677411652278822498467522376115251721631769661111626002175711250240768176212816210088918255178384709787063037008615838720426919944280889085494432839958297607770858995813660125158130943629540620662251879563375424096969187092100309663449695125730090614545997673522698525430100513679484981783519089666335015806562570088002521758327610175174781020113492413944202858485978897848549456573956213998113765111815884636065657738961371316908518345905731553041217808212244523710649356554489636297945141869434763179054361327671309426615884204806555555869639280567013751957994180205272809136119031209991470733509777288571754018692516208192587075118772717637475946107917075086043572327210739557992973062380155663996634296157222252944352847770703788430848978634166888163350152979481176971589312930230563106106974323461233520153335953125706162762748447986776895196165209355165479600043299649340775319239680931155071108760251683224812508693766474078732437601422824334968825965228261867171892637283223442799160083775610850332359080580736955011944776478569384974668808239021417947329450425038755703369112610652224271925696497925412590090632174604224499867606566634528249283536793293998789550635243749834751522621779896051932550149921352597322564396789866410525253342982576188722022102196916323722579519856174409258833073413332330251432235097202410126598373496772174530250776770403663782430951092150780037574632327722690640791328465677702297169918492944070456898116547816020329859822722519515043794376954796386082377067137189437796858632489138214909790591042045366895311155496045272076283151239103326650104589563838309106189374149715918617322577351303656021085691613951188786025848278604956144115255308653212726814000431566900693763077807771857292321516843845476054182953961657414751558305378104762243707130538244972612655956730073789544603629944687016603095069878914838338414091900490023205468924271376626999715992260367515844816155567713478125344722017591512069828815850463594527017997218090810780175395467494913570412816301641415345646089515227663409696174015296437859638641722200012476411477420163037762553060480478176567109867929557501281357299233494377428598360451141714206925221245970735733575339949945318183235876463074201532033019895289895802565534910009377719350859400736360881074447214394625429602032924015400483617809753396289052399089570631009956583449683462209779327218789305199491652584340066506698401304093002682669915011791433308147837770389954008639108095510224072715262494994482324374603140158672232331733275671727507260316165145208683803587919873133361805530693247634104188541245137565167009727069518834856251916581128060541241121125189974734504708194932384064001803523692608403797433192685534537038549430916197566793553979160028667201966362311948494389455808408033866341582725950891134642854332814785489084149017100801243108174564025134482748371569804059102883287617804108054625592084837053289142428009391596744159230375969479814335589015576794834145609454275969587218917640280292271070008909982303475781796757397507418206362259660752814282148265015597688871302947816315651352502252223586449610771216258240250498337400103787123170055755457957178044245472719051904098411384302749758281023657518858470559810590849855225214528755001945394144188117242619093881037201981980867705602237851333664443300764557450418637141864218850685833234431339914046106279122883383776515864623290545472443581798599583157951105627105782306903350325887303512528104373708605399169427001116134395850740104645358123473028659239868392142101721603486305022605549844496825919284071373780700225489690262082486721302467819860921999758626392915863962816010307191693921395069846318095890587702246731376658611678752211326755341985869495509925713912284109435464208487770762132138910128719207909252453629983178200664935736500840771453866365826182243601843828063181563002082881127963186499563839343617513081680181911097686151095808115517927436288489688999170002080871112741541164099751987098184385114937671911248001886695705330393477473954453566120913669119169038685492101265719398693038186026749720149168373253828622715855280286413376189252006349277379636286439978499551277209252194742072845944927917629855652200076245488193067819566204171814089559645728262871887892571360864828880562520790532221091092558396570055325474885470423450103669224345034874888144282366050773456064706459931504459871416838864826640625053672138756619621495725266752459220340277101412169170024759543700288690808571265892976307531029516428556364658119561383973841068667830830017750771591425300208636639525346152768473016131900047038070786465043712335526905640092102800329348232415750452465706928754281030513979648600878032165186649891417654643682483930405087855179047667110254235491398776425211647551358727756638460456600654171933458617650163019158913606439830562457149136176624163206870270026359787364949283452140631322103421394127709377143034313453483110317047096565639315170955087607682863567388769680074405522996549486894178457563387814599075394692439060312041139066932874185744366164861053807108086972469911357682723247699701157256279944928080339273805021875195359967673081710261022498132590368415052176545361042907784025640817163651005294289432691193053644188909182166773719013564728259761794898980462114583732764559127249979274194416558962602502975582509509903252424938074366431849435610816524357021902270059679842442398637310230244095806280443571953776285054101848244614566545613492911766172431081673595312059811136893238331992216463661617937233862048531926441660048864404501420463624819989288142590867475194703618700197511912791344861632511567660525279440855079630274280546701861484546954742277091934820782999663811236970150446193893541085506074594264616768213289880187590113889187615950685810585120172725482602363943213226576136735367253913827575505646018397721731691658921726163273707143738189661336304014830254905080339742786594895521034815674848103311633699939034473197280526846522887462814849404496580961272738069936639346076846854151363096079181611639925168738159872393069092892539539640190706133942240499212835278786134360846661846238651937133511635043878152052747512339733667096036771090966329532606091064520871572921110313710757190129335566960137925373196826669047952364489852006201397949801137304192135908330487964686839254290806399474219379347010208442192782564810672098522015390785705172788807530456894597178670734596520935399637097434821178121756593736769287869533418086035342595468885830059118128106360379417432288885947176105594683896573237144651648635904246161398767627087114755854743687196311357176359809282734958039977109807330320151714662321372450570318700637726552027973747828875121404590770277357561774139092288815050095333767636437422799848516771352630503915138911891345693188418498820470022525945515755448833786677961998240667560049073223664883673926197726518423393594919914263356347431486375165506184327545497767963696028416368833179340232251322643716592325272992565569635220487724481500399619643848343262451951286833995802144340508133976887393548183671858609382103585779101822345317746475374160155129550324784794593766257888493332177269368135234331065603325902784377371560549980969384140138594435326389087758561786081623403345165960567088764528034048098377137123314622324940136866718501125552061899201957582430639317426903676031812859993046005293905677113670439713342289728142712361837944324346228106764150850512925839619802531285217989650515530758915248081766873801242231430089954042521385436175604067880458120654287445187315422386567549066437304895670204834931661388171396104610265883057726017082399011031480049194759116664091577666059837630403391831350607725321370866429772168844935164503942092321462368020780270312152426934054835080528769298737237992989690767748455135732494085856090453935272441123607403243951196711851220357940018082156367909726631258927218270126550334039543053426336958436037830222864380645826650369533676379246867397498552139102847020946964210596619795889811290937389289294141918913031524391097652822957650679582179417507259924032032225305569773488347584509363044459403968933581407510452259337474155028979572536927157090284323754464423924980123082068269480487112386840832036020478090965725573746122028158048500522222156501023452802526859397424356895183241325449095332549033090964475612443597559696549613026734347127262267016490438782235530028189049496145032837305627711435874905288125050653929288390302266541399266033365713620708864288771836318666052162902110634479135896464564191017720860565026478438872558192865253478120660329498443374102418257229238829326743672506635626334436917035472153745714917145088228976068819877563346594264893160272615525156667046015660863104430115757761213617121423128268344913672747501739300781915110921885012025906946022095392810282706288189893247795706682752023300965100197784900230675741034274539121802638383530311339975520177123367160346425183578193013197737813091783335054884415624268841220955741278857641396376448425619022634970897038830522811453782844763094608682481216929830523467376483133265500625237947137378567768632464297658305723335835707466094689560897956332543335961788506372107475825881516541802195051473802716509384677849744187553154934169641110734405643738525615775023107873788957082931819637908799471667361570598038278927328627540451694496492488024932515535074567510955116764223930779306595133435564637293176472677377713640219585135511775973378274059055348708654826208673664847779135595905289271784243388904364199573531850385753077669582358168337172989741519646921049681796300434355128034963398719194963534787445900190059911308887571190555637370229245055248770140933329304853629411708732351259998256820897516756722090746957412737350302496327099158315213093220778731618719260787909896071748031943615101279764581600969345455942642487843429709430630975003480250258932583294897754271925986427503366429568882057148924002584310423095204357261464261794046433605971260983304020541108470174135747583861433625322984687014267053026368027962583037363982926319661983285131824326829005070647484113289617928211398509431461348361327347977310651192962754178878593251726916205749080089915473522980367779285870972479313215570837345117704797133172188338547945262489261470527263227921852081279783747014755447592461040062883890666333993354369722884539589581578131551004281509077751958686552211070506678712470249245922534174510427454453421551133988530486533355433598763108978952769869855511581693971940310047178999495866223869654659856375489129750685251818726638064057948662506550416187151693192609240954806169775412423345194203150919525760846308350220646706305720783542420810599848659680618992203602578957440990345042921103830106270911168111381625464127545382448425595922274527919517237760937062162057438772654663028969634913250652362786414699588273929009716027941202043732649386176058901267236103341740042907000251722926303553248242339298485617136990418813954769135022711479835361743012099801940451270527863152561605566881429343556889866332106614211907507076931258898847273098710460499798292861249683305379886257606883238711457377140074550037371295033147002329121685530693416404023327459103167384482578486909877813969616323420216654066893566113752283073444256396132284081555893874354306305222867103467472009505303366483784207414704975900476999804697115005142232387351380743742333299043382865835427842111190000296765023101921192739345884693207620543286956120190342767305971933311518048249400886267464956896024556325571892089452369564002500930605216695253546783165345007963831520378081349779259560927962170949315071593656482627914959448557251647353466822799044829419033111517868488160944466121518103215632026954012614668334143326426183493874810600354407294361710310552728352590025339913435732453395831845748821264046406222175820527634835057399642256356384307010099586709884239418602606191590083491681864450863112462561358860449409512520356936915833070612941245718241354787283959007078957292396680235591054416184705336863052872723247298632831932680639657511128776033625817751053212080470128871566299130855801431360228514232420915951128876770106005921383136528447294854802297480342013842023860350490602762961156903103794263130800197386877367816523657041421333225365178951354246028316177283174459448334419356521696038334714032189251070100211012547791954098339797129462459816331147491295516081299314953783960256953278389731955328886491117783645310354199352544557063412514704113228058350665865156053927549157270201551131420127713142499599461140370421854562234346085748599585219886677647338873822770681228505706037028884941737643386538846289765480228953934211479792402614613141721627225467920140367283715647764929739332230335926394041492749395900989045829345221463823497871124664546332276260851850404440002309372404193058820534031696190594378276852248767944104909932975852193410963570719187916662881881811821839031251466301919900065174367541800357649115007463235205451318524240178941711290834483440566792225842522898594020540556695963085601215584797393333274361096445068722325143794274720753142956857643667835319917886931623688534935434870790040490558462367464046221998509101553542922369212998525446624383029960579609613067176372669005424593335044609808692920341049385441668471429079941289149776391121132731298713115846559229983390919410456271020129889055637034076027087402149840448855389432599489824014810787312394289601274417115562842160181909347103370382562641936084562737722757090388034437716401117116239023348456771822883422631842297786195712947165992723810143154875518266286548485402058818676255120759736636534177909766702987722122628017315386156991008042537034271924620810045778690500386094181522432889833975411431418517085847879018926093545875093464127186815898627059073939191008983893154289644615806522564172445089805978265684659171653708632063404806054611800411382504964742095217351823160106726375409883318257506546441131035746023172128991794276160530877786169318615565359305632578620629523559300298508196093836496603972833089345403006345439743619812439131177124659627766748872442897961745454872774854790992021459314856425799690486467923842020714796096924556228106746785645690324784406888164447917942687148884537214532848315642644450236546860594654437567220921249811219274482644200105713887211851967313970015034190360442644840459292638336977994249929445290538187536799745690112913449993303480392052548962120832879047151617065601528540134830126218510765547459020060835999772086972415990833907030202129272474961787037812759541097104375203719329783263674268604619609413381724492843156592981880118222661498470861469543152271047303740589859149898357039074422590319539133396852249368603949893069882388140293359835708435561228862777590113968192990043646068353021847085202184847248529756285986414534997493050428934604210722496199270293181776670841084442900026567530592173737863613925132245133467777413617559389104070895290053283771655759004514288752565085535860318933294081221902648761657915933711790369914715969454764886621105369716992551629801213373670105812525613727209722909973390960305398988182096872643310363075752149232573961078706882648263075835297529182838662874145283321872108069584642423189390962387360300701855932268166711482151122836013293514084483226915118074582741158723609297041154407834539114715273621874374733976564823953271850802293371913339735868356352440386917690190076291162859076680577854202777261526864056973838321013881939281440849089975912826648243742888179048394593692560189956032632647455067627100640873990785651987709586941350705742958790090287134158412645965282280531975133665835873836919336847634721804765822027930374534051329529488058516012444944112127207876559629654029314782757147411635744662450540812192042723025197630263611567766927487187975292209765900579278030727590069646748688170553178853247488878696501465390877998701422461729744544736446405680572848770102398506760289640367204054287829424515009339866450010424258467288047847106183545738072674696826946653594929402339694755771512384616465253876752700932143177063523255747750467623992863797128826352978302351304561703815360110800559621395217480863894413655158156993836838096728045190650250177584750859464607297873146922135732144889393646444066338507528507853657380184555840433749761071461340696345354989874161173372992922742777095444123148402634737992776024541009686503063200186043668875600827798293136808151613043209048282554023318689738644219210985857118022631972709163300541527287937187027036218563319625818432452157961095866786957301496279593124098215532252403094204974586983215759022524152818616642640620282737737131829815405347552751706147458387460950155594636824935438505071986667165484977098085889224356829702921607517040445574326164706822803165153534667344513794147830666155351737956355481898534269561833957590789634059419167735054760313579146026769240461393358395981186431058475517735239783475106154617318632706377118786406764228223386275519622901286331875184242436799681041093607800891806532168532085923137366537292673043012900458854242172630204580898279065871294682739643898279206375141590174219270726582579122318968589968749380411437614510855629360168052244574233149254733037242625245437879658659360663223887062480388546685080788405240555501227372420370864332263464483378315415873565502741171809190608791992675539404820221184502698701907731409988113659815461495836525026183076708729903239716990207564835409275906591294125604531973027759717658048534329857408364832758980956340446818848564702002084063895038917460821509245035688944603665540913295170011551077961417637636367963567831324058747277719445913393287952343660990935051512368067474426099057872271687386569474842787142257385306821833633414327321128800027052542096749557134827680778175029988715135966182875928517075668663287259386266933870152395138532556974626194419162916303180257753502045366143037924053566989035756258507301542100106394075865882773704709851069710816248654700264824229604683559182396238474906246737496693960176405239056045971330879559568703333978999441682679009409378174301044452761282341948044710502010048305131092509808748200847316386473740539420246811288762155503347050993412609371710693772005133521847981239369773215082294735570575162492152909901165764928493901953385475388198328708880954949764991409950012204166866790925301389416320295897251324102712239951464408540863862809742340528200030731393134831723987743152064101866732678356150140287290589847709606448708983045351090034633657021384425591315577512541314451497975774417553444062168962330415767768177768228982577241044469423990617170931271215297184888097793770828603517717530417840213980025006500022255986065412072512949630388715423548696814716136928079641449161177552041745689282575611093338890439931693824386925892770437819960769043686693419827825277749693672002035430978271632775082868237214114161880170390796333692550933110234053436687718568715351143526997938466334403035882559971616718860517422264999674069584442118777999096600384074015660097821927794636569330723952158113661904076969044846725776964150906542896185975216138894243156260611905477806661367090975376046365331619983146696563859306557602126358213677732928837935118519626640982309489417394010887024098474023724666110474147736246467004694102866224911925405255053245383882626187969535384558611469406398384315953659326099634501996621567799250776397381970947710666098820006145248650383590792112233891500926846869282167694444948898695224843869006937511673254823123498450679730397761666261743934603677249066685262692130150709951440257368843035498382389685333891431988972170584242525398723080809481668778058846178269619836924470624421181079506748401251388000133191001981959467869932959179452922459222914870994516187552168379074661782917593368409478782066849948213484727779819355047558184845896710644497237582290445685148534175220125244609019698056757360128657973361505947169011349574199724732332387729795138523110169529349224337177353148730171542208353620368349353246283575154246531809303285196553387075891502533031182497776759571724586576055757537619351460405075929395857994630746082086786931344700357882066248316179613800671137163864098160663492115128072720314068022911896289796197682999749458244985986489122592797027414587190078972486076371099902680758450602332140426922290438238361118533826667945603760305059029050684810544687376808315195751516127466522786721007748639931061300832620610428144143507952302623984073651893424794403471350874477015253593202504811252475683665926403198969909022424300633254298832689813731126187549457991763638418297031416453282115909756662261984324888029823189244349874935480538512248130705549120788894871765632450178504395349627775582471629315208967410630418483512058311015200271230557048761594147435365311769883248825659602137060849184516511928743645391183171131190824186118870679261123819120693189155570048044629097715353574973831530460229665979442486751302686935692196375892338728321139240216695175277641936753185939368741779895839874703723875605561474398731183961506670756087376970744632257581405634111291756456548249921632084378102451281095818420978041276811591845443828269220028819887391998898213305870715782931423371704837222239302524114047626249658953309742819448641551043708976794968165777302079772124683908553785536635338309519187618412783794199880516895372571698154710839697540532807142435600316119166516608541967062553930030109136392074503742973845136164216493120172665155645622644914336252534733232053466288467903352796886654739543157564376621940292471266966579845164007863798291866685396885572538105349847596686772089288914290885508225127332355680149298356425801711201466752339510724827757553530174317235966410048220700429826545402977146887729513925101136844166480890754667929205126592706372444250363923748957914293521911281277825503951059885217090091839366110311612807345751707635247589790944409184081931686999767977702099069602208740362545670473581809895345910793830324704354337052567288474146507705656553745860343421851258456311614216259115345150414589336632453994222905587361988575976836628783231917098193603764009973512129746478126755749592595673222424436039075787966898410604619475769107161341604772329098801192515918905127873537287050143704524091823601567748414557516962783084756175795364623735556572295332853498224627547117645819310222787451408242069952900149741492940881481652390558095288851268197745759712342429897771330016527286718715552184488517452325389111694839924754732154408591284889796159479317215750861006640488055951863371372367790915053421170316691064355941779658845702069367723694244442278201887138417711662396484017643543750547021492739411227846268255939963902174470789191959603014391099979029907623238685481137665634260327400497085246049447777987975450328513195483407134052464796887917747300557926842817238126775613240778191726641682877207617043054517367748173166901659686426355490102350825006387545218311868863828546198549227259876375605976864931687550621697544980350698519034695900251823462355910218131463767369963838115897683567248534881267145869265567884555378738820627065094689638400133173151683723984164472134845075880478127137806408048323996310981572988623826818929061208949409172123311754710657673323604383715486755765133990540210702330795708601902594251954128559781077463483442062284006422889808857073524851241178177408825254626136840220842026378109264280141147038819734593358405293031204443440830550432427615848097720267128036726381639331827029878836904932140549669223344334026067329142245595754322496138006512940306734619029932926667346687562971311324984856203811256598311942588742288566261676641139826168989372863593419236327414574929950795961594880628095827952480661652816474340173673692674482810940689108933739073876275845957125811896913434887261353363371348414131511670119709139971267944101181679539005163022479220623172279967202476720134108633155656012225481228871469737801178206400818626561047588998865004344217340352519319336645330249610560961987098750121990538566235970423571531571711300477764577965305387784001863751762013212477674199760703337467899099375073137317905960972211636360959430425247918382139254416328418926754408664509074411066650544893177469135094036302196312364940546579250734199197611267622551947847575491669936083666413695784412981255789166079693715754312577436525344828666346041875572720706838007856584299164223050868161228882359921671584795798171935081668166818672694179314206532153538807932374785334794612595992450296805059678296023542673077354562284402041115720315973269503816971389596164921523623270555111550551445521283984988602981558818713564597225740954926240846888900002992182470370942529920510368439161800957475216186393787329378917828691274827166557114789523290355721144960519844290369960111818088329555293085536187171221273840011104952577815508076290441663147560097461751278518576098709250094295751748758725931213618127042356803559385971460681202616993012317535705852993361232717670106577628585700960340356930919514443044316385618887724851581361324710300550617756817069425577393337294498052379728777253132520652213576557651768369307428478154371238808295618856713840556394647743914058476219083266030867530096788244720861817014616959396859560989650780828975383507314703552988365855084323345118436140790971173253659035065804277092575411063429724283479787799630850833806151611807617825712536777148405731699259559052138267405531967883216953660112028607091838121931784316171457626064211595139728626743972846418271963836764099926817260790074493664847683545450298816919542191272278648254641274325886187116371924406611672436482105588660444606943789180912158930224174933884849164007450985512808493856320477728111955364113266259092860826458767173153956138305543904463180282345383564881530852286133261280403889336716232854277735661330077722528004326071578816475678085077170474102633440971638636147758662166141496821847522436144338088839227290057786272444028588179376374494026070565564101442318068664910654778801411986377651472319388961960539381730991690095854252188114882174147076132080627398635939579228488446055282888139635324528483809824834974069972293443393764319992792357363262538617798154611114595629945084810638972344734703765009784318022359527748766021975003231537530994733263031456125068490961416476477275094093070145873233238866806255398151925858596829119758274009644952766651472667756483106731636071038470642150031190715544012453206763211650405267690098534803645046332954947892238413013961157624656821496999813038877978956136921344548864031353324606660618151248109607734605410005683975877938509522375283079583064026808211655709311425792630587820792892633742323010792062568587149227764206748923260890056919121562098160987402764185995337460485312086691457687090168122079659528693017463577025212718848623753180503907691137326618074890167901279624740477859573300878464176266444111680052330672055162035026443792803512347855184193533872442152217417935568191898754343482765071153980007596588173390739524464742559081835528399328301738008656507090053797152259234134128522284344550234808333839265437038907235027330010792797335614817204574804927099177635390380417100631663397692685110041930789086126221940459639649116906506088672775435361989168434073002443011534575095375634747865821905662909955912236513883261104612209581739596622055133138541703879042950798264017505654226143024721295648316711500312303413915551798769963144977877967482364673852708113758376608117077565991196475224076248471979217023014673771101850232372291570473965177468832294242006116873717196309445119669637518651171119152178644915769185673274665864901285464288310823684674773702629215888485910327722593021735865567402509596894610519212683110679680227475013038942466117366397201160306674597236497946681761685326977525938453129771845590462487252732433798378776780972287189938945086527404215121850388094033190005556824057587392304675175588134670155184875146642173150531044811378622853870577227868155501941854900379305012061366731848064707437649765413381682920094896833907942645525731300698053172140558245359731341604932433644843542398557995465900341383121412514104098172889431114221925244958307371846483641530572509823185143658321372643783050831315893161799508155212390988727318813252016167673503741645859990932021237316686677131877601340338965011716019632051972762218682925675076178323849482136739565183638093885411763768297959844346822369595003866556359872897994855630178703386894953782230649962101647383818067477056440648423807083295450688110381920467799824805639041579273092397698519593593513213420478358855503565940969443743873650332799853549707544834089014649142057001732126942653437107232244703310527159918725773570425492629272219646304667650698485946380157822453077890061209343642553242359026805818473277227910097639105377531028870343547679727613645487548851797457171574539347263024819588917449512163995724768309780245752406207306645064501123021236411505754817951324355171399203749038007836250271709587512257359471373152197398951755474704488218346595992732688677973278777589702701214510953353538638291450930469222327578812839548903211919490433094906521772339387963225898658560569891389380206441378685844809264386152377697676835536215986897001921139829830957280983561489427065880605500511876077558498260630375617398442727219040732508138564570767877357495586370509916969943660199792660268737979081206508136844248627942690790329834432855207118891251931298142118061179531045238420013854388764245083635610998800317093955973310912994296043934428182840029650214761119171776132725631067064530855568937927599370331701958686714989379865112466788634910687415766275176923010568494318817254461037831136453032734499984645875731715941675613272488529734702495244770474253178089618819814170153806831024144492336445775176472555602432733555327249311122853099589364357396335546335137775880414119568937146311727751976869982272824422247850168441812809851755056651904268550011248570293496791994154400211734639100173837757110584482640135508468381452138102733787673286576675008820480926387721712419930491465650561062194093497129967176206753080304626935403997445072754961577235785280264153423437549881319167299155071333389917547885690197510136600241747106954966797145314338893889658930576229296461771537998968566270847203863190358835354619770496931473148612172662692015571637551397479107263312039264423366253755113524664945171592763562650813814728711150537944160547847025104947315365302871203875642069729452375779813859723781227814134478681908884617417550375215545315509875886297449814997231526658445753368556092120316928045363039774468739142133273237485393176454494726165340953320392765401712226970039488678946600735365528216878528239388104195229946542455964856209924996137199870167705140742955791748728936672579980638872116885974103846694372030840905660016961351076891393468226547096208167834822487850716336806480628111075774141865177479795549798578825715580874901311445822466965437682686170873342367182586134791343727884791776507754947677997897911257859884457052284855460116311072183116210235361145471874764889120693226417623008839631427810303783473238507082756817768441012507042406460759229042269303332557476295149789321320040468436280434599401638483808457675557897048658506299261067802874959607572723059415796691594912582193829144226747845905708518775472661101658189313780054125239411558629208774693935947024022866787611738410624749811669669242386654576039910538314155159144053791606977887462619519995468911723355887664876240642645194838548090477889944920990806592603066310745809391919190688300901315385698640041537550202294313940538240744146995154525915346127019528720592093669871210959713546715202681817404000411732422036024939636640943384365492817751573403327808552333325678255259756444986519468406492136151590871520505580816791652841990407804724067940398619982160239119814065748226608947902744033564725582020315606961386331111343949249375462919786360846523749093190143418699424970310116080963417013671186208718466106931624027769519858065765989409526458709576482621795052409338118372942943252993241836866437961630394139962102729739264987246725162966061919131845241534608579113590277378618689993337748661726601956253846658778595592929417061135064774283380887028457879746066109618901818285394917366961637603227630339392687737168158508327000763219599147370403070088532177029690219966027838511734235416524649668904531722902135352030731621709919047992167116395391598567106289700095950140005441342616286668436554036799924403503541578377274040188846814438881282441443261271762184083939366028177067155572683004532408490399858909257663855322623071157959818532849786878003742401499679028802528187555922663183890753200635278806385800733145102610455815628188918961099213951012763297507561069705605494606986330682653901325029674582439186422267783756580878481127187295311294131681870354416656231603901012208566044004387891081143770421372716111151678306877828109354440456827879773562346563186781714506352434294235857254658665505848832730936118789904060623733700945101268656003080522433593862617200562125343726009616172952131308520429151668976067951317220465545577020235898513691389602976614454519034626470665360527625237570741813063858245268825825892025644505362492951000780611677678473240728338794235427656626226819851399152355111346799261828966631799850995515325842736872307794196169713195863573848192080242386662715981980616687667717401316817047741919004368291532862989885571270570445403278707724128154989744538138702754827631087173428920795011547087774093833375006827827339718934182291209612133315909529844896307702763910646233239966051641877319382527321524473679800732689507866674715063939298149804248393020173346120547510274651765166912240029257805141947592729594629684704178934889256585136455361228285577644956813551784747851536951386492616209687948255478840895745451530731148995961789088011174947088586127526661661390707782761654137548390409980593375344527934254715167937948555672196059551781445514416682649036699941563156115613017657925303960914872968066529839444614508747541446535825656829970257020336947198217914525058023321790229993646398445406769108062345441832200799174720042698902762185002269857444272330210765571710187177399832720107621844785115380073976103002752742180662310778288831994732828098161396176042548657861707169398175906365279929034785383036633499500867336467347498884566315052068426386043569861212271337906627766639724288153973613175161223506307460034926350952952291810072911301839229850331462489502749410672438669860353460665185836993111576707874124794605702633713485239370592759274484241011641938596017177858523736131160149824397021868376742438197635938895207037458959565041803933815466904757538668799755290630257689446335863179473854545050367819922743189737327119719577871279839829648550262212755388921890841712744055373987548588677426616833275438138375394517982357630487448628101278597383120639713663403786741937821330749650685004929102471676616751258600559968389352560000828305868279004928343838660464196503783483119305620564732605777062302793955613677126472391814426501744235454737947909137992912361265445839678171803532687974845155332054819715168767540194402497824623045962456058109732193436051207022708253585041192101566563368108770715437570280144265883956132841148190668697448694848468945376298142361847825680393334952600096074220860356344587582128368154915803511669354854172173568723774953136602056883422878230616428193784687329587919835639554710217193495652793634918865880802154425096029263671114402579696559978237487878335023554756082207290421721198045043223013628911298947667158277628752450687746719330409205381054160094913106399428203243993516289347429808405244170841829774280663181560615438080116532132983538246953073616885238721729201969892457222218592064387603815255006550430329395959649258727440432059935123294549565052763424335859334472201465869854651720907728451038541663643231483073715749228027947534418540833603485527673725619700149400789647587389811969910711374062422518940424628732262644199802979577525314603896558566621297575410576053406970925191074808570910776803954321066689588336498150157396484845034008024714215263756415629642574633924095705844436605628217992090501732582569921411598237864299237740284207910768760334815169432214914374981393662501517868043141929772873521452646040673754069895621389161201362793095394532032221516162700920923901163533336720613338652804232101438904952005232996333811919491542816657232800286366546970793586398207431971551511318271695190914620608984237188600233076235410248564073489953188909570352757455721255745398072559098645863299635271112188254106851895736443083949866333934937844310161959944365527384988442560343913822460529887902051636335513884866482990632648664013437311783218304522310151175635978930962485766129582295594711386232347573696230274549137993668806107589627977299080635846532050072320896208757006599886478251460944747648308718846826012436478160388556789947466440340206962808649579269527194115206203111922188139427171611950968985874352881929937226039344453016105493501941951363771134458650949217241164993153563764749571887338006048292965319142194969435346011007125525306968334160251976833243116808875599435149936111994978100599772599048507323468772297890842352024922393507678069154128438109584634133999408266845434577742715076573018886062217779441794368093751495924603961174961572435235276633795827377488795380548253447749109046997727144440770657612461789042702789167311796100675928478233922365656315870695321353604881601105005666413139618949387440547492764640488046529988416171386010163002342384329956426969434457546751060093019874670902809056224931958735595557504977112214957684126951801291937515310471728984387181848914023386777067705103911783068990862712953514577630684765777389203420892885410357601717454744396837180059034710747626345862040597714392990443884104204475083023730158526898543360255431271212935202021251696237162004560755248141598317545831784013813813003182471777925732620681098560357833431802849345564055193736161457288287042844865617463868265814851684956130873165251396952152976288856060197447500489150041872467680173958501600824997182289186148682470377319707028987342441879126557560833299945672114840256408835529237429035413146752578263189511201671855684934299357672836628467455117565136300626867141415959343860319012167806469122344866646130615108872256745294801698028720437639767231909071633894895953055316327520959300919463372212878528376940454847501767936795956302364927740603231823233340689704926346342805298174478516449063145787729475380975799612072828607288008210101251734990774954657820909945492579895162313094105517550029624680986093028607110378610792412212108167510152673660406048514955128173403180046419811485090731465743299779773321316634708812883734122235535766715167599513824407219868253983827365217850736060687667555389531470137411449464447836929330672681180412760039591378046097373678921357029096668545719646972098530311557933022477307081225466307517480521882887151753388372668075775481194648499488366721629083213728031973555855914367493372258383898989295568564835124417510183436603015577829881604245106674958561770861506055641532129236068996116543530112750437130072249777517323909130581639363381677129979698084791570789644106111106217478183382914500641114300302541358901128262328276986997577355087351686689881933505594356691681439392348323730071183425679190738913594787863755263660107379582361459120737869478217953529714514572415750775041395864971682491296522392260933633824459873734449774604462405705694097297177457308199381588440238867724855556106701425708112112306185415857167680863998693545399475207610806007337319842426191859019878304419915370709213893583219165262558912464189734787630036152111870897905582426474698800870609444149020752157115275885832005981060524752500654721146147880476255999986843082843318715060644952439853894619357373493233635706424261069653107983119240920380404112857666237698822521103851054999772701109647396069792316933915161533063963984211448701238378448402038582153669702006163970261519893605649232333439027882957629087710780972810726789331866103582201164523807185349811822066543387770733580924267508032407927413074867517856268854756996806545935885535423553964879936734873991060797876900635685110908229906834340369790836030042405070142064310110323609059248190998662021450359279054143024954155569135106659397091963263120771668695742511182327420419836687943775842099149894463796089842770533286137366920731875011543232814072452239105758846940789984089575413038604805075076953939961705238576727653418817228614837521010327719684395808704166999000862974272063946313507171311588277450097922243881079355143885759706826441370797614819532043386062835854108826686249057556787458139286088597307519825102319653126845974965929261599375510897161614328811986515880747989052350777310541270090271844512400614209695410941025285268740867660837750938842303077520062823683115566134563502659412532170220366286312504398147158742834423154115497069181400654156506928841961095085239838707392906174806217441443858153781481849648524034092686185301825483742021260564939910124916221762437102022648999718045568449676729913110220962994995771427468326690308549400586169172907846308072901026336234179454652023755696086445144807643798741689883984990878267189144980857451965599378787467296371194379952225226034834444407855695055726316170495001131688382653448661208113291399123207460921259550114523681379536897123132922053099337359795364267586048701144249243618961262526771534587678641807376210742185993372205772496772663957230890294668835267852721960452777938136906677640859800944413093278032364329726299620132676924764568574910258984753282740406529246562717085206658446501795175915941879825849540848743387993986571269513926896272753924850423431690296516830412020743075923908313888602052104031533594655191250194719147112778656196338947033661298974385131936842192274983995776251253040263554108817873742785744805605650759105035912372102465557490615401086803657631649907399283438171014268307157766190886267068175089973584127125740468441816014517413731986870377724466651036673691574880204171541985729443670104797283437399991198675162217741805514104713035960464660192521181423388579873290912124398606225951022397674613518841504140451535785859494723083745450134453891296279214555941905629042515470382529382340415890079271886084830889634819816846011393950912003697563590504796959795019600857156971921060981555465178025197571326138175141429893701386338890549678563521593629347310049853082919889545640941128609318242336950596973882278884548516078731606888445191119997069395095732459090283440111760118332198478172842679750962670140711249154533024189253965115281324802497013954904664266657422285937789201593275552490279304567940466234963821361114160810188954048577165713725743890568531941027214071871318435481699965369871483528868012858095736445711588116303150273804317084793041415256777067991430238805018855615744612462746738586487852075570174938438030489842250987012440334444231998732675797970717609649437140138051241601535971002860754494983427827790114208456086365653838287098279356494039072755043017709385735922117243455319930062485867772026566385602553438482497655580175651420196863260269726216000542058672247787105552863704609620270883387726910453250579543020381708742552812933067325711208977485099788106844107390635887425544161695896943326683345426145322342322836502570079533953553431497354624879993599747955371618050519610478456613480463185276391800812866181077037909857696338220245239331462410179871184656628299255602847948016251436622770951761938641628167587647041673406981774674400963974872276321462474776457437755712347491101177084652728593200251068890284823131193805895099993980202763735865454693842393399061315960535749223742931531951348222901406237122097438537499582998750243686704046045829066883503084969221977567662560063184322876945337801500185126498881241065108619691314375508704766662343645883269263887074786760499080570688750062894752625150356425547762117654297930801286799707986029892384332187105620112547047816716403229917888508885920574125935820960763555763081766696166546413913917367408157599329223697545769296879879799369656073480654540845295391163941400683828395994180850330162176917365977795638168459144235957356762625694416189102786295496936706693846342175855888093573731740063850554135852087688926493146426064240855450186096172052455374150906322619594222775470719346189979855002589072630565639173808155004124007995889269306481008471927430732387397905517317062739770418021001096217071610680163120924796732110996186871683578470667310194569732213979512550275196066672426208455176034130477106861326645363333865111562643876023994162373104538691795448387349372623379298439344973189240886707457112923018168592606631314021373009870408850184967101785637140317767039727286889578394172152575417591403162804571284836223300934791460604471699537569856116259204383501818612721597422996457195021225996649702319125715202213606339542188706656529836307848757458763067884045550310533157705957289505316521516729780616734960015026871116930793920159647068738224291940870462968460511268096553216661690079641883495639954392832867801359422982369143748631248000219308673792798343377253212774874619120402477503300407287020336312715979039855246273935191960585358162820522447418336750370006448294848157697804248933877626648842273289201733016370865266531328855155104968745075456339681287415856428716430762347106660413131557314384409801359358152016854472668278725350886858860675005166455582176224756327693013864665492233640054626500342282360671038840577820816224915919663549026843712201069503548562441247879414655280456949052295821063437702645005946331497564735693185164165717150334952714798765552828371891089344619252555213844277074237445636625598129131726869587845460023695551912359801457851320100315883048033625729506093644434946876486201562624856065544712299863754712720334029707833221631809512646144408703190260945802491226056656667378928081831979169915933620008558175313400696249918300508040655192566560716448564122025137810848226016226707111409011449370824261251352481723243841807510540362352529899282512002238940531212360116999337606447900762624692420720033022285685779479172063755675828730700280200299972765242297540636956982904734574294943940523805314375418170934307723365983429981928259980144366165024009428806750419309174731372811609609115400723776027984894501059828297998327056928684406849597057184407396130718167406656790319616629551079491466075525962303768295814702488280474233096471459120524491391126779744017365389093348477836016508850045361214421603502695126548704296628739618464818534795402177069900708670500173280670704337931259913718617957293638658187633177173484047059888401942952236458393765890663771790120864980864162137831484819947245656731220243723956908872486900777775497400790098186206892343532688499633449317352389172051193122462174226630799357310336803295912078064465388268636421700897870063352892838158874367715425972560240357382145096471404167619998252643603077104992674317092150984012226421966486674626008626104974846581596961724997067470917356104563620794203108726149965501481569625706720721776309625654338123521359660504528592035791162075347396596030440501043950053936882720894531095210056428399425034698902344689542160273221765720153286250677631464868940448463106620680118457291980425510334843013837147633365744427603800342001412900688798344154751887738565711866405710607227230470167252990156771081986879892724224257452590201454076439376037138355984852503756256497754565719775258103646989499123013027992042305673293225862489840343034830765814623805621877569465703897346838402220272662359227262591292559790083286806310226963945613476356473355100669957871259802379216070770209697848378773715371827311740789939097010778965281254078236195996957157256471634213193604433391665283987366711692420963501009677992936772404012246595888551352212830121858450245879557957887455138004547419613776218805064689592368268748297772981757961139116018029005654272220241509645408986596991668128052648239663609550976658197550144795897518341561801752249275142830206218112485111584046149962821438577553273334197674452869602994332454134649016280925365225593721684231412739672916331340909972652773823759780858334503331934635940160146448793227140476198944439432260326177229172798125873382356869411792884477977669662227828037894047550499786797481369379646948854626987147074411711497891863316570236576689569046428687310282715838848041339776346690010176374735564958235180871072849830989380650474560035303822930326035734347646265015008642779265457119433969357594771144248466011756249870791067032596136451469023176836264147155239458098085554906086750627127886406783574295544121058342165824838119894433721607687773610930898904479817547593151633242709090226121266760302930648045691165981745619547877376960939543246525733479608302836722017451652331015316464765432498041877440118873908596682097005650423522424178083720910386198917275968291241643438149799991238065515607885805357415998989456003311329504453172852198268789051420856912240766922007530910880631282180831500791248461537415189645503053665720478647215229173897876362615075040070988246412010451763254531898669069897401367005024595073807950968316231535238788524439233111360115541824765913963275096657096539130205900332423041552591798293782517942743578245424690022840793145541482313412512133816357571504614424224677222157558638168562029625426397089651345230885264035688258932192253415470009376914917856420309690880175798775103767403881602199818622479193037550530492955982459820196075998815470550777464611742014062495344070562995519836787475109894932680047217958953230137812267998858220696841688368598767988175943292745712904875291245684657514620469396745329754271345928246454549850106046663515247088653883262818058482315723817841043909773104623354895879876562687110100356052441280223466872440043053797873972135944770452360918513399818301769781264482117211825483336933436131554134285056278954526718799726334562569966133146060180482705494822730593708952846836347757703091146406198169207442705648743184655652883847930416874154060360838218644686679926659328542042407046179266706007471332447090597354912430823379640083521368607203001658631310347252578707982406985314943186523533277231890628636642718845128697280958987620421169810266936810122636708937980181935566161809477311644357631250041241931171996322005023115827948084201445067080685595484998259407599862198757928857455143218872239086360291920979364126418883087838786404371987594351011597256789244339499480921076390037008600376340592999750432933272590727596282240311830995684183883837558141727007050097771984982274779451026276341067059480947097865075247459214807572644656242865466160849123328242107804955262486766347105413564811422244974832995366219855578756180843075552709746531295294758236159170041596033117484195823396879089740055713623992581011305699362354032919883761349753712486895918457402837113435348394622668894882343559151145995139327856765697120629498642452259501892667212121434087344418714178083951697225682291704568262830484878138370269108973059659262066083889697332232123440217837744057522388340575152374499895102758664219833269368834654133174991821022148599674045626644787332755126906262319729758536538558110169359717151010692941789620995000472013139640034395286666386291022228776857462754474659002217466987512401511409583269424381416771078642213020719065799970176900688666757634064895528690767530063701334547658430069055771519909476285818955766130957595457004212005321680360185204464900770451597829829623010025477223651038125302449236525684657520544689634960727297139167883942933336149607064703743606573353407557460461434267661372001937944350184114261757128477492795542145903255282242988912402878198054537746196589219349251034051855672503195243135941403756387639409127266674417871477584869993878334148150506264797553508821714143741121052887834398966399834905969266216628159123456561412584336794462270379272381360685318100518991596250285143741183710949860899433649006959723844927518417148705846664068739672473061233319948326499166851169717478206080608435407616525757553596739919502497081885284480226869129331408809210684488369600386589380717432893972069790168671199048788253486851222382192782754627591623026139842934649668348777350430999955006183566616474425519825237087794720197345621500664275533570665977559888260918752751941816093644593556624020625001465712234126291978219657226567445526983354401344591093986204612234967584952209327879293672458082231570465704267665424401848819051828454490804550646451580078946040553933701610897449698925778780834312003790135150695742280015586828078552261393709147471965497666824329602249320521498669365821573275819309711959570256722418184886885139087113169077185467549590470917315408704587098776120799260300841191284747552967143850116500375044701441171768959069224339550610776782414801425539168708857243810909098108501004828217032804363477794437801930681733158811605262707079991964363813016678225821696392211279168559171655931203489752419405794055878060282225878658565230776178271728546490347810998307515140906516077676342395379502791408500446762162278962988625066118335330580124409475530618631131048165503759223387170627965027556862166850474769906500140401663496151904457669752257469043077051824159286649920326690060281284672097045064936122332505028767437096498537801869034387983079950856874674310214051767513256813227707252560530822337185662901273659179325552973213491891863177569788041571008493512490704265453601251612153668148538674532699604088236726553478915035628280989180204183384124936345435517302380943702452794870622924488114609813547417318404590446693212185579436409502903813960418817354392521860075713603640844277007906099501754754685216415787825993401253575817418334737153287353241717372236316013949168121369178045525345176105843244796571674992763542597234584615954215747993097493872512721145436287146962691784809952681998611666887479875603767744348007846433151573341666967833969946003558214748800483942095771655055622311473102505284561793625391629958302238866849506150931868215116647949056590196087054062233610285803784931705092756573405010196880432235099528214759088966576357195150292327366930621490746948929692933690365975621208342247945422697180417758156082183239222976928354788003265628010929914218589906261292934087425531178644605813967515528499375642716631650737431071122152372915247719490199538809202396951697063112839503333660722646980946052492897330537073564524401586475033715064595046602735298241654794762997303503315232101505108076617012847897926613325954875558506640143737794394147003629893251928900103175750501493382322172080009405169931241287071771398958683449987979208032160042517216729001147010858232951451414970153259480589317609245193901068977332685052626360390586380128396472385318546112396233364402869001601225066624246267828338957373502782016508190699493429313383737440718407620927033910889943968361956028020395411070914361762651464666520608248476324977414654624593149246751241940526217372457798804512571812752040760930990642373480960608947062326472993865338055538244284310629923590863768701886279366749857307276252268021835241049592849683526639601418363321032939096630149836464001396294635085041101437322743717757180796726040733492961661350089806200711531037173682990357857689492477471680469898600495071036650969201813954473076734590540807183655710495212452989888377658296732931597064936700375030981656453896924604420406812279725721535276000756279174498347280058201108559960475059572097070722967929694006501434945558011215202307186890615775605091589685427945623581189583102860914411374676797536660033038227289939978339372800492948704835291603671327322072166812289133146807133908836016620965069781112280752695644483058825521351622587098228059807109459872600652583163507494035829786393990597860917179824024269863452414835525094254874545595102716315940089427518207080111057141035782632866032470869051872851952526568364152076492798497818801786267330913937603543870935996002143558375498596796943952495647040030152277980219043318530074768401183447640429805809987316588417891752232279532671682111170493837302440067974119993736500285379114254971313088595995768687293396342122224102890465030183950469596237689094932684719151031666235320073370135114307217599042450671657757978873703019504031125642584996879277986867874537127290738270704615781440183430704732321876194846507419306692047290963548892847169376114833815216595751213867888639742917064764041223577255681402827398083127069820768110608432233129140336718604730435899662228898770480253844974495139680859695855049155526594648631565224010318237586693192139973720529719255643755112249035006012262467985629069629230700069459736691358231088641546341206939257792892844735368063805207770458981849577180218215873684080540180509820865925805145148438462002339185762336241538631427345407041543816962236613959111413317493410327546773460731892227254608731004016269280357159423003934728501440078166492441375025006560231786406632080310368580709384164652007464290094976917900640653019384455994127797902768351433152715711062502454185280140859004813487805077477052761506053626678076424254490496926757016937632644221553973548581357764697689494195095898591435654053798218140093213285272582019484852723785366041283717640663816260708728047932250599596869411860654241593423507218342751638022950603304666087046888023924830375940626940356925552802086549155829105720022761130613517912127399709708380013315215285545921917734449546305188007507576982756719600463169917132285754846295559930659993353123478339423635935385366179326166580647107800237936739842954891197782136566902239362852072595346911744010112002429882053100261376258186412659974876811716664059714426033843356887962158076410416052615084169945226986618793691573059197357851393227568682600042020131119856936576562654368116749127591960231172707617936884105817244071297717785680673420182378639812340452094650736456003872899806056113172528956070255227872860749244910854669226152850563884803190278619520505225994401739904454493645677611340157420418328018864383830584544943523664835787466967101448835356296239167912484607043411091766763568761074269696233154604906607241048063515165470284774693244659176892347042323502725952774367785175994428613763356493887088106234915241454109739606623908944605812009938482327328889541121352627809572793406175079146217489704554783322293591894151782563868043192558676118646526291102498074578283883591180806579526173764305642207712621675350634003538566744273183120341294671157794739275631140872554400173751317847522398273892156431224817751245486780417623757975977318309197007314056851851776122942071531483407237756778216404497769401511411140029688950857563999394681440830544922723225608073561927223184277898432258582034617993287190893627174275695198734112708526324753411134755958745669938027683357476443281309393748358359097456254036999303096710095485996442824840958007163919066174874720335829701704958284085122042254163407666892377282121654223616189259773150078495901296828708473347342133399741368320980753568846590066396564738779300852628600090214225724895859438846500406112263590929017557301882641444088977422552694887458822137662686573400019033338458820006295352651935780026802092871258949689173568481358052642819505339009631576393286655975718332395860595837173536089425596231806204646049344761552785891900142103224558913017802255078471076412868036168191632136238239252892710146640216180625276383208847473124622773246049338613952165658083349558783747547270530859532835745498466774868808821053020497013143616977555673316161200178122604490002221065428069436094179616161443544844757443562886730843627877497483893439344610146229531360898354550336644080951810791719269224346174046378117932301588418378710793487184796087740740238485827872387619559477598236785105127154920910831989298319886817010231626205093216545522795414787623605458622761287549345390302482421729554803866857521922822216916010044812421167159371031210071803282690471226548198812419031983920546847004219666828921711327041838963229444780231011311571988075737436341200658380560117130047812053946475101868742703443800959436235710952697579437808828448307357370401446586234943444278058222403908297844696078168234481713366006753142465886886114650348823843131602710355573534270378373943263667295004824120936055786283068384277600360070065555490618818920416011818221585553553143754878270875301001030152764890148577050653785445849957455505784657849360024296548827408326442881506278250277812525970143995393163961918462329003546117783983919185809561205914862784569055712325035616632551636998772293281254454961117208617647922962542369774309480338012869846081172222464524695684487859874705487197851257850422729912347672347730703839148260947618861045461131664542668270922983734808433962290077959775573224237453732991016864116844406769539844133535613017366227079423802826154705324125610495957543689385385191402861506034829137226772982830665972595066880129251696083574769995954761176496036194765071171402690000244182736099732137901746062302126304133963998478931856635725276934056882072586120104066795806785161752797996387516416173010774549230582294643955947144397717576512082776106499113155605050903059917122783690095185135099142063139353748999410374437739624679976404379018373861647442711199496132838485099191354710298502889200432028588579504782757657633429186099292154235965355560380170981118909113511814914065773238477372175326514821347661199699593161357360039075191958665001610569505074554735166678577944033467253634520516299190312204623989761445130156534551698161198296526742726524137691265922749445955793387557979720173342539463765460939902921494390951289804911423652844180449024296993920630687388910037518939687965993922251062201423025252660307270039155924245348805858578606616956767478373503042382426788866023912398936457022341625011396682300812033440598996919349901495506066124066589367634903896789571169480294866017148044725347934068765138716816588252933886613002184462747344637916692343701689006240643610029624423673951134541933350902979121982192135253635694213592761507784845857997664583919782499052447534328153468922715891120844949197201539741466657343296874079329032783891539328960944880490632450993674500654227293099932233299277565485294918204248051772499828334463395540924995849768900985190031311234598009902782732206621839139463010235734780322631918140381416117934831654540127162683370707124943170147426498577307627714316250924026178556995408461970034248154347479931345105590825648605195677658266794064187120101359506119060666893629271531834222408129850172739630217638478062042843338331789704255907182501377991831854175498960094023187691914696860180390850997742015178839245336036518746098580025333822460639693193783395586767697862235021662582302549864865926277398912607400170279134819288564755096570069339360646822512133642311752671080535017055477891875714262553613501580745238801922777821639841478257881228060183858184864255173632048302271186581144731146599068961547001212774092970181906271768473175056836862275354239915156161204311509976847542269146097140062838385514254482707876743184292893740839366541836889206755357988601661979516833591153914922678717395615486837572499022610694508894441980687491881882774672421892334509202416562580900717623648757542240653504832374181066498697714640951105597801140068721016516273540287501640019016163056956410196233080243881610536517133140404966443020403523374721696962984035404876622528263840333838411628808879423876483329487473009215502299827183482399762828888281158881731191726110896557003810468933362782624165928950695817245365954855100233518898008606432943328349612727150415830283968412458762488625043202285238218285370539680524979178279867980590261630000513697734130163927921486495457015281229575599722589942024384989782018991546856269669518384167401567975341547043384599587863756977469595848813397216864670535701441880841306217707312565667801434774057561691241739906912303364699022778845110750137190479813680497383393785319695253752933142241463998513124737319047869408056287429660419945228818139476801198181778975433077977630847679805859123115174575525278668093563348402959125596356667743377749251494152096940484437440718965172046001861344484870883771507452805242487393135770771809692635178990801885116026582719975666574575314407703467249729964128327509442893586720172392691004517692193791148411408923445946494700464723783284108642610265576206387493790007013171558769532608379758022486447914212008786962000737509910578391104385082986293408382049450421438878052521370129182414673194630170848899308721674224793728856218354528716707845022033111298191270906549582777627448843361959280732298468618027479651164948406177688161717464321754301795666069951093966907657993585792177282613595573106467846473730211680062728006244783696932049043471933810508001077363749478000450669242413564571780362226866495388035799611999860148230658932003760414628298817580128517355420121478315902069636552279679128689614659113871696967617271497452548137498715607472274250521705885426956996867820111679573024377478976904312873318769473089271255254294151703493241135168791474416986364783022325296658316027580540632986461943137699105408240201195130134918080787803584423517855845529545000709400794471180974437234534830467774837019086055279375816770492485001745132054825854471012839533461384485441719573367866669870360818148340925527751716918421734422925748532844385044243895729076187761280653830678575875624070763932926694490713839415829304847416799957618997348403022200723430861146017456427379777162809495754079528408081861105669305391390958297895810991694091294876731491091959868127870975211504456329954740140392236944123873599559990632641810698558789208965507826434067767004659257377301142325683932178017958300010281100648149156635154756738636674496763584772920249966070958794343950301049304749346565092113957026912962178654579631826866426868441700530332872693832313335831028004533966029829058449378435478059097456145391465472552625447755150531713320987082937237762763785836928062238740708204979522261607663183418138411933504229615639891520449519821665142599399550170873324444120451692264528905362804784136158961588176982284177397563544984039067984402253305355840648017405746153725057165966460528283625257491877112843808759738423986107880769832539395963116707557609989786019677780685911634811047876703437932035674982577961652820794810657521034578360281943241799334289957040495114567639702620028280850492161708636810787220801692941266839061247854937472331743602581503912749880328650307260307715165520330828601840494271163278125862200316449405766431769329788355951401125157536213406578888257963111828273211167000690077639911003192590038571169715023149035076120262875202442367664834297802762730454149636252418455931869314481738348255480844793554191089597145784499851551307795851824019006259528393736280026172974080815571611035674050597408629289700899442624699873416836034819352759605083514325084867678655322715920961530812292857058479887330678287022990761913416827639745379719200022606232230597531146761973130394549928821824138668796130597030994352853649331502415923641503572153192766987627550240872787133197701685890477660795618856820661263006922782407834222728461868220823894241051563014864195638563847386425213711183375075289975195563193914757926105635896951427685391112799456527174457005381616466061909176199966133354056815522280634898270966778088286389590705599645079953698906712488323910435874798805387065716248844311479295604649752099430332878871836736774837600128948393000430061889302768274073122454439705001259517463385623097519067276522617482877185342230056096895405751063416643458326271803608297885022317666658970334963999875012152680219163635662097196200989420802917319705646402654947513408345416972897132973069256316758434693113781358663016854746821731390099290332547505270030769657555127604927504135745489252207852016585951465236791270628863924265779252896578936741654820872826930204906564218328169499576512733284716632855898025123826968378556473280642591710338576013655270222820382610450829525529742384508256219658090089819892609988474091223812537643825319394131817408107506024017010060854428688390683752040538083045456161450368834884594190251466770324949777117431290281858053542676705233672478275862335617677807803753212069361607608159334847686887020772408071938298527969390832750564515458970122734845331453224749439896407939058533482379795113539179228781659117752498951124285747908130151315280078836201916841964586786098564645536072739776155449000227662036139805626045934701987426864420641052350683586564747624902730913807972536135466782746202612700423903589106877484060010705674323944540518824771208169294708368025067141220532315824413802042538747445890375033657520429845420237833909671057820060993777280827225169630113171639529672426100961265925648884169247565450735646662195678879140675794518641234534382222249270243339295183114627995210715209875793243893011295912660795350257974346942174621406490680506407878406068120297978218976529214397439325076156430683561670086749729275872750344277167655348883894295312341729942629429301229340685030100225688854746563498683242604462896335720028329611467340771216613151750352921937350698227733492789200557183942677166974216186843498142148468579746877674844691682712433313758275961586435434600323109087197041700482305699654550670505512634700897995303525820243870896658018816613192884622611189295689742084274381152994722267818850132707435080299050236137670313860109801113569244944287068989601806857732306497604566732456518108014480194197677289773750409549876113925341915122992385604745117653298802412709853063903515312368384225920592272829413501827541418254652730006410500469887224299558817718279367149162306569792446284104666693865923625015617867524922706937982078303030362542171611403225660016738228423601060179132728717374635069683143349286840198037543715021780807710751084551409268783788527079804819951932869154328854528777384611033823513406630704425116040020869982491510111604605381972589263974129274320914024311026955613229304870016725094294994590930174772854512925573150075163211719305356481163504183752774739527135828828665470581724746613240942410232454527622622211284649818112946740286499102538092405853042813282547723195559043900061274167843998188055068027899520160515140001973216548773693198002381299777216844127690936587635361717073737165881624089298953615336536467222906079381945156908441145009941549404658141996902277451053607374692199473694015559782759801612600273732587748013887049469817413029474117523371985024516952817353565495459208647228334027693373710673535444267972565437722957445820768666025420054132948390646708501623570572646950327715742369873589220159899761869092725604778643965171827705848030700357953624116114429017468613491831641182215523414583019003539540357749651696163787837505575899103244969869629676781573496968620347529573473104587167436383580417854035462786852043592817995398454559777009575632234274774617865457324854567075497559940007373958013511403892491882309863152541234091232246048747493482051253376600513419644579693195528038077666559640115589991063377680602725485652372374373654169857219327620160703322357321550488243638667909541959211994190940188063758174198385587044219617208979838012234222789009848755109907438191273077217410527974686896523818213315541377024033446547223770313121261522854080084759168332674263993644556255722343010242920909113160375430639919088199034401389717070760306658411033809720405617922683755968000901764884342395267650027317616715013526804685763538667446665290440348337648219384295289586075261142599674117300891241506720353699205391403498418770259162716034646039368562774372785796435838095312843146305319997968107583538044215451851001292456823482510037684369247101775017829658549892329005730026801447285641281324839824950626625605745340536004323283603971501876162610042525079818665629728646849123186164633433944441295216899566613055861885286901159364930070311391485080317512186891835527267136735816667035845708574571185726871707565596768574906535669666544213790038211578865187246759262451908422988236211802516508041464977899090963293254325545559612012917340297625412761720733944674045510378310428819146977558354262679226349507625939249866740792008917222735003236928647033284944641236205135352049069729958684682899340585530398048151599784506898712649032057622961975232873775020261166711869681117490654633583758095161593997437663814721089815102629668995332546271229476625650774169634723480420452873664817518242787801504386618234637092796886553260565947581519102369527932100580792884448212009639565559993542138866604885529030643835571827014225662261947171848096786406724142542432158492051852917007317710959863003207370880295776015785326920903896853791060122747603430733104748398532840390706318696970029313614799815188245751689675956325431023737811577299422721164212295753973173352348536895084782776803182345948442426576735610254876824381296495688353536909893112418714811400996899852044767480357629981042875135508347199786711456959344718354529189693418763161898884502261817658772180166719922374040598198539227174632153517119777975134269199262637871190864799616311402699360204615259000001161095514971308913522167750993601884923677220585510385505470852354389016434283451819284918919279163811287683139516302200764442945849814391172740925254308505303873019536700699409183281717181371251277679746976770540650414054295043017807948354900788947486111048266795719039894258785343437238244928938568604487087754846202016993574825585924799108344807374801492244185959806354299479914386863245450374948316769266926402041876488474624948134902444262736994040541800386785245251611671949585962843321000366647881910247519114354407758969740740185292833128108234003780263446866000379319634094425296950348066966525405862299964252100819004074404164121967906090035837733526332297567718853372675193208328961505681164950582543786210928117578843459282731720918629997234006587440220743510220527982564123619331567806975058917291330854417939616662684208617809654173976405385814553614569350822612575530987243463088568907550309287509622277908040290297053407234331891013596580947945950407121380226175095445700982133666240463441302254826233872972176826479322089862508952313941843500149011696643820255887226490035638745909101708169485442169718036383233219437820978301281020685488202674849313145967438266272752921751888506179912375964917655335430197814117920442543400546729428048812386063959325910582455338281540460181755489408330090024146329933920140442423323832017002262870870112714051470261568967571833971181950091816430948690961798733463389607600427777266358017029352080262105574390364770156519683920935848460886224300674217157856078233146042790669235164133338910909975639394087122354328458165116307531996551651321633368809008642713665124232771073215649498892771839918841045043384082156587460712031567849975418360985789178149101667408103364121995971308467829808131534459340011463516263248506634807869814672691020926960202506696818847509158940268695970417814621668453357712100167821891054181782090662043408088210285503034050435441591421748907601964095841676290167035700871449283212820009102484560832854350537286588979117271798380909494454243328645163589657945237824581802523175744456555227228830660148345994839148356256935572466385419336115177282268177827493698345607179588872065775135133376284341251107437386108372492493230042370918296237927253847403838695741687510126500884944116688047040367121667992629092272020736095399784280441590903447383157590263764333894479968595429865506337309016361634086719242749010826051247018291063156878441331171375480917769768227813634668917891499709074363382509915532801585005563900703935563921172764771450895863009195233999368389857219393663134807580917175654799494084100396736499642111002627453593255199247278760512374834171224820624057407831633247781219245527958087182024306422631993994587647832376528772222569204863415445986491731642033704507680945226713376821661367498673497327268188216157546709476660810550679338075491607044448075219834170113627105781077606531229009802494606986831588567600814357052450231786837772691553129896574782591363702027962313964462358500283344195295406862903608053273687409010381943242867559291504076387761842597934174084048620507664676966513948425953820087117438828982349404316651611391358865623315756809324872921117005801457354108612113099059961865538776892379499839060874172606729805056429080699121867599125009809838966814237321370845342629229068633336730411195568169712737644974357936180391963241916725645821458247820384820566123439601818756662238183645434795618100290636976823188818669258087377437127918162281601945699077343062050600468764008608008247085794824993393534307563751895735120983168822325794557821532138353386967880440245091538849576501079386952337003670881940353749745894971372891545876046850058617890356019515301216506244284500653063481184519467171962255744130679315480331306337389808972794328042236557228285523397558652068281592643715409462727157173238642696900516853162528313890967726764911454808175283616351977451253322977682481044797928913864761462229631176407715273742404788992390934047126153684220688346061461940566905033415697049572438421157089117927888522882163030950295137590787795481990559886583794584038017917629186296795766787805616380170412584203708568368720720511050431690233732856712968304289155148956954725093554643210091238247648161950489821366870811598015524003003494040165002400006642714058256788118657897762243308472061108375544277951106545787038221244586005993266026765727363751619905430871380614451497625841836313604963319104059478026751536489254121370075447472821596161953013858119124183464780256896392532760616281248228774358970066481709725035287871406187600479110315775471992618191339507420257071489885878795763862757152645744016379069495671775451280642467665862146795262294665339871802848293100958901544468794555768446389831575216140945115681975642870692947248143895317641542372148770046127381717833581074681723719266122192838175919079221888882007215269557678705717420591143369386069021101757140950605348375498085085198354133089529372401926358519410601205261842429055243197895705541597577741859857340929928563247046661962978324114928244002780482205414557270489641803083801428335698673351931916613296381074881043656861526043148765130148250287404407498670824356021501852785015643104005925212087704736757226362514012792413205709304097352275312135521196380471350941724428868225454685268452118468049881232701489833040800460778542610346109060141089059120390284414987908982391502378842182225317636186621256527672478433692483653105397277832694569251342378692508774133886038563480871798818439683787900030152767125011613232289347800556792191292925818294686044061953703499118393612756738544940054999203653460990286572381934543421462895449907108351401402808470214097604856298609176186127993984044352137846831379547685676609206450183074075170473479133252686524118570296171340324347772025170190392499443781300410258015583932823297082560095631620840499210817880945789035504542141800998527264429765628952177796234284462783496280981246568234965845741397327771068942554385841501669159078812888319343547473384046136726202827036020839487619743078995034535653820278775690149728377666641090109394882049896153902488258863576524937983737740059339280939590102255782070542382121384941963172310057152299789967708591545008043874236381636653062423773962739520667482207766623703659910783289813852552215442292862133302503763492460637500373917281264878969343045039954967587632215340067414545598952091228477392266712925788662332486487674154231687035496865127291596401187467626338923353269189203517125945454998854124063734291174859368875168830196887873132328107486015130992651871125406028738044686140724934868530134097758604255973311675026534005094555852449807564783678624437068219097235556348492873726275148098167438550815754291575494139981682082107719173253367927491138606153764059474336782281258239366787658668301229827985540762951772159865017971569177208598834601378881609561078440748473009216507820650611859852922413066075438698087912873601719341142462896975367947464239175311398435285606337719749006996868581028633290070141980936070460881719743903085996854325221023862826161163829469991775837841138089332141095669343646647818191653504916762249936378167996852496152031511259878236575099152205114172282140738702367345790273915416506117098964612789489486050034609326247114380731424646505049795197012285883268066548245696919520427566221056992126795559050914015472674402476438288464125532975604099330398957777810212416971035768954176967366804687109507901766541228697593885402270082349072908480114429133736168630241092259857200240916998277901782268051630983414991392063190574731262094104962595515378471448006535092110790826295123394097980539854145455341553486159536325596331306149595031458210915513235885462005495787786257445913900229940544668368433743340156900288590379940546643789693237282902375363655436846241532509669454744857438941816240276359922874892534871710532757796830800702556891796824521963020331048796303269620429001281966721271135214101890111388428496998839491871994978069606715306807481055731199184975128068820726449950572438358994076470051122500887992019606277920070300009616126876578875288376347800124925975877425976797173689636345963026194452249422800804522171961739633918360434374169790318730849867869929154396910492969798752814417956178225758627134551090163147980883458065672410642737785907422592148467609863976692528479121866823093638289672931212582196076613608336821883850775534419357473906278303642327793179939692814418148200875984673119823234290039789132253006969012397441963187857139294498170776892968123041117737020316268748213239830925314170344381786735760903317714112406289188338253678091684516711505139818051268652847078959825466215831755403262208210137296784889263215970534949339986121384117498096803680366646619332773777352144285153161415116767636975104268687009648327195011553743408489309475346634744039021090279718462823349015885678662429947902346787221190608847451008484943986085321884403353503801205166575335389499600881167627975789688708920674453040014530348490085968808665627069592381265112052346485520909481075174879247005527158161454815041840239724988856080966829363340971159963894820512510528320712867780288094749645972076113977731720262256988514782566925117795061290423726583671253428010260646373357965695778173272930395834635149883915800606059797375110750625888559060351945965907528527747880077710692862024328466575492395279596060595094973803654105126093535779268970059512204734475521425535325927409196415328945265879861784695890535137170050286057315000543467897842361585544620230875692155509895251188764724432440853648915016234046875163119742048549801707399688299692164659137752586994025422612740439296755009427484563234155231570371205867992953111823210159272788629844103196706672494591121487806519924776132875732400366761177545745877329942052172080806454793248778407765968541041170685825914138912121721488261338603140281773785297522999992669166959370243537132193834613124356592931527245265462004955042733956726573700475878371424851794659543053281879543734705232091876856470692393901990126581964050264681691480838935338760137523178514312787841837472521104243789993094284933127271293533107329642219480268704677506056260495519083715490401022686347856843530278762173195326167398197959740940311462473102718838184285410895645785354315403843737939418244280246749538013550519296955910033245927271760116592982118601768528726366295330891605168872263128453248248873199787487816424301506318298526079072977706461569313838225421965116989301370860866987311797467514912053303966235118490602298640508042456421353507454376378158865304204846759849981524647427460690072776570759810871103483208797908440670900752612777160736321527936832125807621731363430574259278633988071537253231015283427637535888759631815331318706005471355125094059582723793148253514656221586346690511202013064380250793351565244034620059301645554692513418854290486362475086971735691440007097321910804778858249465078658381558173000176056650899208933121372224063395106717971746678881873048877742977514014160306628466606573869830508244884778923867146550804360849423584641847721298547633621922764789844069018355285843206103208422336720925309128882158604535263700743216497377083508252189805870176708584765667725256465278824782910629618885703774581899012274259288264598826298197690847106702978696904280855761061436895327168384870405888305492009729500570755832948174333291846621157727850560794809929498027422016102399560032794464436332622131128254576765363728246553908916985463713651610729002604946911633970069707214585755553004555627823660270902734532953395896743661977977302445148643244414191743578280682275142640887042607390797922142502212751466754260595236916577537119403452879121398051965389467204144104427783141112283850918882810770820073164817239118952301623256872921002673947874175697750876797485735498271856756777610764860981387202757197684525392258194588058046053834151819845842253041122072994374822367623869108988883705647290600429121943957582254981996556480543756028564319651218617323171222598607743436584389573647517201611406189424571707535997199829782415251082246146895625997146954954905169250294641947421186337926569676622262692186181602907834621254700813866863036383708435957599589739261479981226464354057785771852971102204345341176120168239122333182440264212301677227629526823707931980130147480885469817124300689706967941400261901594981193322028456154943707847775735869421802357068513643976879793499587762430605384912919132914074226963249518390097415196491037911845439383722360894383936895294485215932919122417503829025168805913483179679042457026720284784903837233587659193202970031994189889595900673380339621456975885079420621003789027363657759022938035463883574614809319270680650719178370066397747325892091670841236877782458090648987671770977089789650592749024588043346391834961371363041645584688118313259191456126621589013618072297366854019469959222950103162480881607313125522373535178645051839476255673512871093586439059880423367199337542751222033581131004425651423879060064822907219976097710529837869460382764375849084569099067435386965448773060352273314947197278049350931235875505865564986415807984128625874775419803882418345039818128052847104562855861872283997512671266913542338337918017560024598750099396582516314959403657045462579561542619299365839522634177408735597676416452868759052850631488280888027981841484490838626259013184785532152318472772280374497202657960821776204591280155643226865520888765390180291767237536648681129456381040264711524591462578859151523431058142430054623977875558178545096464097679016152826668630380995021587548889394083715350968020619166060095248924559813144520023141050960646168824432446531697799301540439473901615978286207562912859451820804286990956665972319704718809270950324057616017744930890411593034894199622308926632541369828588188134066868434509578230808597570673145781467987445359314211767569002147844422002169799900202072336685289213756550665189718312816744440724236976467683431438687707283698168107166363282926524844995122966975237906106887716282866658123341053906942037412091269823268367076164010379179682496304719904111349099914288162056279156095145957138400114848997709398797517078708887738052009887348329279612334040757829006593961409154765085196629069878985883049190233980051689279540718357930068655848953724424653219734613528675752423021206708182631872097601962042852732566474413209971414817709945692876096820650709285308522454037070691975191577770130475528320537189291301132534878698761839249330732042823363276685836763254700937465117458489145036220559055592341594634344252766468881333640984530871829914922305521888636753426814155958748981840844218205137628154478635129438009498325394490837885616534868639250302776746709111675068233445467495256031954497792798825623579052140111884220457245730507471461396628680873565322878663496054048877797424978813520411514185495216350606552345705071754357237978329476500866379570561469945753122410750385118645523669207882421617083848772321634651731812523347008298759733372203398803735793436058642628008503337767302694550532116395876721899498305918236661852203429549705645998566181499320594983947621673620906200728830225131138162728020729405692360113906217302870215946336870842772966775200528709650920237685559797223365775589010249992325631215740066349483839418655089170583013515553064824077196407576030671101071092386187151588955268482027410669909810975708395346936750472109395081088225041748098582702452581034764496363028085929156672893058914964168675793181925747426159850550354958170061939563812315526736282309706325529896388153544026134043025054477470445351872503863253854523611954995057604281786694672177437212848766870199433315052248892691386486267068263520525601368773839781716795144675181827522980198492720916393218128043606727620191570210278518263409789556512432407091078363491420531498037668925597552873675256282468605939180914016717130540894078435074789767711779054576587330703748680989404668717181322801183665812907242841258247311062149242525189698019375247989783170802218262709212952958398720177977468625626097187141472420648647997090533325244416274753206125653779242979131651487308944255730842775425932115307784238023938406088023501296050409071068168328674597695371205568209036931108183728579801468216392377737477899116488158975335765660452121639632836429573653052393447286722832931362331076757141385885964571197576490152545573581630750621469311520585399781911943615177676386265137673548864646118694939167757476999848545243919539540452779351155332722625986765734075119101805625563636083527778671610861522458518387942049791917311318412221183330725933690007557797881578087020916714443014433508251114822337431827476033137536480077835884043860647711316763737616575004044873470010356133648857681966332682847117664495222308908586525292693218242627113268796191312287031709055425987841937406392282955197187548889308052846943888759618655114719418735697032046426771382444141218394666883621891139642243623506753477886230108036985608334994005023307629134221069081505752654436599301728166455118071214624498476424972559831895177596536097912361483671033307877963566524185679671539525494905165472281851744604871796191710383367391810411012556636197959779904884770801741335830884778980108363656509222633741140764610704725269440138092843335251387406134214231320314417900659742151965390516556479098736505919906356465914597936566605103137290127372213753779834059144596298970422370183846771748385445068944819185608305024063182799392514873227763970939761640535398188922451105427202630264521779164489377456530060693087228933189708187908621710276703189987295354383576378364258845237503388215741902404332759349080292195184104779896370024457849001354715138890291670434304239488021740509170258117475880526843233474505699288907560777099564076493069350196677058704095652063944316141693002854144420239430601924826568937982149662645929039549627929585816868347940104479738118209671181474076034181554658795714829950074548566036284619465547881038575987378663835680973551275806844834211830242519425652410901271958042568973052234802386705930831495021118663276353847790274061954265527201153335965248805604182098482978845534678949005767435527155101918471901167092556660203888635371751278569304851466835882755254605583353556554489251224134006944153543781460125352694636133084007413244045810921135053375585793112113580126625851512021051216802671168057985981408967357207641325523709739098524658980478756439615860393075345016677391806036335864585807774329516247297452993479905230461043574575010378976284507154435559819438688060761167297915070127757406137121406070629780208475156358308478466516149091165278313113229093714364738716772658668120425824941454955136136200931179043743892948207345401850584003654652670540639031599827155110806968516184175383004010869598851774837436552885053114458909407472744419229279371707137715500652942195186207671946994117192147941305753181888226000505616885580947691887819810691416632679237376878164884321892837327004404066807544112758071460372301855626935873834989824471336371181192485703797358077616320319149743292597333577665312547329662677516549334222561777603310785345111581658223324706590020137805638752796292882790385544707801565285862976649703995434420958003893213439876339958200809849777667948711496935392483660953707255444148322038938666485690164233973855995156370498775613524603706505441579850636354208925936984989463437703651737395361867238603653335159560195053786964470535168841438735985904053486908280929481468581231519834532957617374043009797933740530783837574776795467746583508178891991383637770863908892928330359976766510090118779179350375410958216875161452875812027269306323987936384755726483326246588377530380892178996453118439279660478376306830720170548336688629300967734441012385062237623265861673074187523786695254182306719367693543214108817893886992559499563182014469212453211693722672066084699971431111100480677227275266403191654321819833554922947003835646190592695949738774109715049134159339641607264285753615699790378862809914650143016207608697489231354601606770035850615081305922003803871012560687761919516767695029970543088722642294677549569162941588231678466042589367524034894968167544721190378945739374223366067335949092716470989103573615216164996257230926074689391175400838663678608502004699611941502897329954949492542078240236302125369689322046759581174376411979082319540593680655606685667252483703096622240891167714919903032662304511446862198892599835210035762266784906309137871940955782705238154775494369359131381723969670104493515239067514790807777533533232178322927467586346079848652842687787296582641427633192343716230524322228681821143162954579310864045220482865855622102877408688037784845473039874894518586538325805574871868457079600888111291961031572352035109913849728022979307231027783928139238732458937008274834589597862881998086224946044478610110750654824821633407992941694972348148866702517130998992698373063927839263105352615368396035315523580310480265453473535415361227891104011246354927482942833879414273364741373523388596907493225062865318319291668819426014716084272652079467222244217911676036125951627939978545826816092744926923399765166161796055479910904909814046132371977760625182530771205257353599859241940871822736770031529476537418498732675948649071963251460777328756995366337934385950564598058562445819578828078498718833206207414032719030343496789374332207594054639898068715200740118710973014668803648298908689374930612182759304133206015472526337695127553103864315568207014424947184453068858054033722437415732801359538113032567461550492731832079936727307216792301766723153049192218235783060734932598375044657710207298439466206351464610351401042492179833184196246378104397689439367118374196087960193809171273512148387530362485997123657690386138677494305877718683262546860808471346749230745293035314999315127770789213942711872746230150242882126795613885256421218830811717574128932416652575693659147368490154099748424845908575622964435880796849003370007494668105520502398535759809494219951701055591948870043616659781022636943947534246157983184560687073996675449306718809889639891275475360116260743619948992135785804265834940975651719956187991756242646079425551880564549310652789551338223351444165486918140971381926313014652773412921006707817056173208882819162748691853712327268845552419245575205544482553498225349365363146693963303487235856022117462543913703746267371957112985658773846396668917805261613141568257379339787163322535958522444240938961820899264080259799688624326775257105893744179983099541715129470295520419830068178140808919579944277779499613432649481223910446424826154245341106908947000138455843120480213230055878806791183545712766825620281681488933585877568629886878755930793847563359602111777709436906792896676876765897126112714029353807412818387165764129823026974244128396183137986489727738648860893227308104737945504713982374210816515148192542408425107892520576193846396463007720523995895218310563031768740059108238748153401443260324066926842067857223733073288576046196700975427293127839720041152014396314178064563332267696021349665483611383968239280267858664203164401021877857476882328226631209544137462641801052144760790695586207705484199901547554365594513438165949178096674605247285094790347355405492972618732478593295762210547651135031565903000969051538761438720184747932067662641172316175699124091710037155518656077511159416664002589728546867276623787602012805919360349121079456967861791919041831927730604609440341423175914571218834226740775680494969646206018239350941497731042874616721641813017449088738293742158419197645604310729011316846089072804448058799074478289826991314355482964660281746121111379072762680071220835919311920779146343185448029969844454551695332943514045155254505447564663147320144035941491400061503623799641061079923256802123624257259200734796806972921047698136105955190574241593932747028104617994927959148461977756138413334876133950396510709693280179199028012500206395219544429374303491699724219338965241424226283497370580001284049719697170226255314939185446150393802495041771507221726532947821289813046028798901696525405441974724035005375461257164601239928378778233362002359412602185901559256109526862349987793594425059907491749567858495103476011942339850371759108504708146437952475277597765788879673152201315178650609839521604304201748220620995937048731082078034888672001034410865650913605664260711681084423044442093426376040829680788663031214800367447903266473971404271719659382331932157598509624488332590532752090079570838727753070854306494642147235561176187547224389861976045419702123432181015031313607999567264876689342007443930324047641365360686988513751698106239378376441064582218689219937593510819585245247111050314544966738594326801440110745666801873552739104568663326746235461248559978385904798895222088003338255805179488976114269137634108052078078145524548691068438013863181864391152498477161724051863569029431916763536671250351537612840927880241807224620501639956142223686516267180817046309966128102189665456940583762107756502688301991860733724594346163446739401674369323781650412864628873154746407744630680433883614067357301890895874868377978929999092457046047251242145185437682530068350930012489091334092656082099120663638799993150510469228687088543002019234697583324973369253978522595383907330922868993603242930101711995890797033373332631665717973832472126970612673207859076507778095202308757965254029910130065355653922272432866264431886789803751571799932148080785298159534009803187854361807901978660312488572140106163553853396838128807107676448706348199219714931146648126887298844859940014846619904781566368210990835407493979519118684279773005175753435607730877477120230848999848601296023783701918379242741481198082130685192157631506346515953228634740730490646735475649694937885749279874064131665925287799430159007060776322517430073967881706753500998921055653785176787292690911257344869735937261411670001547128619372288743758734658139710901453619048041342401793213976839990599873880591247667744076165059120938680499377632077850794746835741256811861332051911542256609796488727561531463877192934955952318280817236205779173749068290597041186600090323142418486255977806682031375273313800604972861379051068885906132701986015816470617672805700978300033847310844471753978639500224517205422872777745081239638859232700674861641669649201605649125821112947547225186847675493632000706410209178597142405402958463982412042180187059938539466244764700185996454776469548120100354524984096562492473964998705952848209656883435906912681704348799943527946893733277016104273884891458923028468750644157329912799908165933154082565558483124142741794478464383591530201589073978512875189080076689075814271953383083796939436740612295239258249529863173764056498280265548440786125355244848464187174115441450395362028789860193847196400685675106806816457016673976851566515506989490573238336341350438591965619843847707606218788275841455697258750244010803726846507543680139042131728552195985486867591503075986869101434272421076996352406915278746413104907856625087233008216610225646101474006727387750645786416129907879518046676934849091830718733897592822412640739029614616528531007385545148173837331074897921572688429712552533040920429875956685468754660316515987681235206610240337190063027082763135666901883063157962517312730670894728589719010872189228750796352390046646941102210872870904530953868375064036443452345368052154006768596446193834330644068051963553197716635137937927717313344627024461466195389455897417052004396478512725487204746055412381568917349446632108676240459600585321054033355723312098594403908937620944921554820284515581266674051760308242234215291731834779111205580323417982111296621671096269829836602952732004131634386528590099989883873118227372778480975610878433260275592385732699829319970776450740347305267859030095088451452505739049680027055346333578423689747704152982546313513111626935084171407384277413368738658042901918661199826321052734638686949612574306426687116474366251727700265166020609284160526594349921562880480511121960495793428935500912977175695353825515386823880313161546639427685463402144547537515924217013455774100022330372441875151658585881019422493300207664411026624957355135871082429034963176636955398411551395725718045301979532827768310513437456948526650507913655325421080282054533690867277285696559256730888396734865051449944509929277914815046837385586108665488228885781189249305234464333391652818078200649251296003402172104518402564192421819379006660952520981754025516752976085710209878267724274823909755980647986310181281539135301134004523179630265781376306014712177338047232534131452155146051909441466498127094544610967771551039661945933333248161221314808368500334251938940495735615426387014029657330939227572831021666414138101662594224465280761412015192962005054132820073261829497052599427776528631969118218483890963765750210944482125176971130770624869685559531972612714300472484391403819892195191880938104907960182597779736438976739588510364290224766901201949601889830379817026127227744803967911923772178003544499208000427945294689219191961747405071168233584026590874951678516975350014331657046286975890190080502169526267214616886937457666000825042275141121296920436547828254731593077932175564300888539883918912636328160785661082666350537737113959002753007867836864707796859717263458749383168391150071867579834716116285470901953830126215090234685676332791306562617237572167559021147526747653179384194867284444731839692814234250996183526478068265063149187139787927838226068192298936903826651664316085340007664010630644016078319018937967780626040371927043961710836241611477491844365747623836258916401963175391460179152473028303623847847818401719199569467872598582026285698857975677973812200437341993054781258409544018162584141502809710155032613494802747652544547596944867553783402607260079882697011095714164263479503422355222225787616801995360265087282034067478564388464778236744799548669896710751233985295928804710724032175560827308767876487516833675532298452617210456235400101528361839143989387723123565988493643484800197160352016364569883326295475786669375689521524161394829765414810263621965516787824549192633797240307292627766968483742307237744478451008302571266753282440573891307344426270521172364085505568269135551746413011351916638321696589788731895711145180357342893572654241705429600707835346777700958446485756412973461709180563393652348034683676052940892762386144558030603551500822187887296231169546510727317163669253856949298356639383268194950960914106077838634641905139824893729473987458241467710299363232161689393523161555908145041275559016896419607641822410485812544403611624162282754479256826472394859604563257550763609604603972012877460686056501608793590433680464053495727227998692030910399452874757291580125141530481129063240976252285378001188287440975189490386967321049191378992456400537553783114742010920734593724095589473738718693518699128301461185401064340032306159519635996265645580825038842042730346443336770104522391413451837716650370009291069438095903261626260202547654213501179775098014091695135768676682961357377597501494205605333129189783146165337084585927057734913464163443915196977002502816623483569228188784730812333984080383134824692640289193977124709059509829856707472798818537323200815414418672130128305097395398463674383389921658505115797524819480363104000368065821658648372639551101548476925869550018859804208581249286496424874331042208323622141316249482864862038825359451934905656021917949186343671481572825571776222250111573788411518842520326688518679098110528303361887735713461230840528170612126419378166782935902647075872535982203073123284952185458109788942590794644112431038924126508794232407301346265954270558944704390045504379618179971792589470085253316878862036114520998305324545347803679557417416618444706071579763904244168565458782154805633481616321281491444687393927057100245309649236623321558883415496887629978713281437103590806633771543575104209909564256099634720835190071604948158996941194262629439451963983567272281993153159607447655434776422028401887963406842045349173531024343314972142285451222700881240836430719523935992273967659122428880996368488244587315488011451069968215827826513228221438912668271440352875600642390173471563671811233226558563626332953961347332451601056885930261650454485970001112669167226143718801198570820522652680807270647714330768676320160102393673247466448282263136557220065470428628347827563381665800061016613106375078277802152197012287825384180672774954577060580813502486568092053278159523513319295611384638832876437953012923703247779622605735766169812778906228201106232003474503321897022552349385241928894657010543513137011515301519605423070887227944550760921179417812641474682204854090953659983284670383335059143204645079806554822692570462525563954600117797583461465734855260324025681723617914548251000587362762795214107831155048836777454623045862035385920282871320988590288764931944042838642891352137192305359154095135455940556300377822550162417534020724881125689619447272330226175646643382075899302992657683968134773230797959278281666352179957367573504277632457874724287637654633735274288972910321051844306723834475811144630716370553263884860728013155057976355217855459492258068826012777117905861862657663932798121945775936320763647392189202084105268169658313103112708139498434019019409768824542329165243627150727109768634688763875194680870248852660303538771283843065155133070329488756215394277852569166803036422833714721676367667514487630135717502410620514002789426130529718715834585206057758855986644759425199383425906928652613483836752858974414261052199334361363235696902601331120341239436252969385654576483957194541533264121931315349751131130201838659296057318111074093344977353057325084683747147501560664711163293860021418432079426615492584015327249449719058550743533221209465819340534848134375710620286054306276502600983567109694175768716330954326210430903425686959170679851427789204014746438341345079732086671808076467208267634423670966511250143112181447718489918140769753538892872008259165954457264825871159586643350747853182965180926984627718440166776575807721992823430846212779588117556902782118451924939004909819816357151692369718163708660096742683546595184407374719257036418055072617072970007987423738314988149013490224517011630942261841640846042430387669471245418745485331162677874832092452624913046189001588792659099629220166309920673925211695498248841133740611709688279440465357281269743324982296188646529569110930350061029329491260210943769407915513008525675915539592884377385327337907271165046007192147950313457713273719454028540570968016502676926962745135861619350905294150434354273824214941929895303361291237969456367696471804139609473798595442435304046869336213351978774494432365924964366782029971028774858446200534157947116694737748766024745384052405119832528336374730180432451523489497335764439431129303228777817497741989563178478037055166629433034705006594498262255243388568206826499852518540851878629430790164632520144854982191320222508162301425983572508873417507221750591830040769554647179141926577970573410411733429200544512358517346769292451098759460308969370768826828758382860756778493121576999873102918352509894797027542534298847455411333822900099940457760064574569269029212457967641481389550186071649999363592996871685851818153353840952808279918235641865793433383724770448890296699936724610661054394563037601718906072302543682291185097867049826120925929662648872133740373180797099705368466728419439653360639363618048943827294938905240530376079519181056520773891917783480864444440231862773423553234236327884487176093878229197768241434555870604050307232268338372726985906188165116808850818725226376167607866449797475412733130987876945130615309144168089793871231368375035615637689498045392339903946924412016665748436164504648821736957085627514887574617180846292601715252473358047342747914537345312610534817786724331562651534211919962343182648955981244922695556285789161275533581027121028758353079200992306201998008569686678949422609514919538133047895606269335925814539673996496669570786893463007604624329463452243919331363665041159852550764128551992922905795788368759438999395780272425561867860694278257862481502996901647397299288254814890761114957471327912420260686359728498538785143674070563798630307853979664702027029109077932969269729196242930107191131221885987845171482754787542101247245552119086555024068023008664515027540814684870104232173104586925004885398293436406246826262709864406200045930848673159507084350519320137855273458131243225703913604196592372772736951608273428425267470931259914774207344510165470825623014622016841367480412045287575807720865858340857278523049478944168600813511001138697532918733804762103566171897103398777910364471996003371938428746765979934336339095368630524869078336798567074098224505848268344799238678725164736747062650395714396730540417982778548310864844908740189140741130843446186658788461942506879606697210658253095640021668650133391650777392387596806384342768834995191411787670214345550002971108790827912300967914582673746423618120236603297260323075220573944874125185094321456485509923562608643119383142609992738458478481695296515626109813508491939195245775302870657015537984516640393764861312336348053540385156478277192297710830085525322840309592977869852450220960667242463042550113324726833976663480651245682301156613063865173824575643547478240648689845724581821413359281209839971816889386406273003186805859195911627777663032599781750458243629332443190875145501660908634401356311856418219236155002455600886444509902246602274881642300674400421764082382326439567773038220162866781507729575833940358420027005921063638377702174120992458214455977531692206989195831105345958767199121295392450426172233439667856122843043716070964156723929765629262024062931589972957768267735817418682940565183857428109093826180627281182281588526079823930270948429761843835316555251025027172365226776807664161001335342530676706492639541658017408070483220506345939263722026435044094772929668295090777851369077898958172231160713054027115928515884368091693244783870558458571350461739615855052751345822159154776833067114437605099006318966340682525021153911547632233342597871931386635209256238285056850624511322778424435814949207585839844047693618282478699801804706708465308657134274897813774722237571078824361521658610390761665058859107277250622173768029327488891695441922843670295470329319785993748211751371413759469367999006313790497785562853086534031827904267507370861895671437372198755356853682639804570017717913640843475570390535349642878506613744788756361388085119124169865780770065598508083429782957907968135826754265658792510373818090382757879258439474890337177115219377666003358817331140208070541273995152477393804887490298347651576572385879474399451773695613960692118854424166077283407038416010441827705089297431054355029425058991411310252346440963671623645696740104043790400418239461802489343154305596923786715198383032460647126961767118197703463100509510887248597152856239847349088706035302038643158773086908945960634643930145810942841363045576090981698749778232420035880072712356210269353443196397963538888422849635105768773292822414647878580845765783747175293595615215914329795486712495671521856047694949167905960454739518583852329358691321420722460645691073142186644297680759850474909077252095321666313123362590906383910635265418989200441023101869568853244917335448305023055316508804790295047650675927794615300723857609121580881281339315334641667710387643902807766918101448819114114326358879749279425712283729204471539507261276066535259979818098149674610487094816565176442061928683445516403560415231473614480964425601107927639173996739703966125400619320247746116726505600943923602665883860697411767403991707886067477798353610184179906117124200909384573578227893261066514162552481065249946139280546200379021201977473249349682164904735385532712810872260719726158251697776270981873702795226187908833611708941861645113558704530692820744338450480255658912475681598623140309408752463046961217756606770749763018719653136695960743127507568740617769677884934853860355054844965442068965706801229469258391254427620328655703356570330642477287622160975334572520693818156894187224822710731258666636703437236046680245545914805211424716160030654477780414270674977338518318156009122831833514214257959843762996639967629154385083232724286374219229589863490882593684414809391995005050044331793688763518868965374840679011775088845249239636664625112850563527138775253077310948653629155789189002467196947752780611965746296604369537974227546922290778513521866135625925861575963324642499351756028971089275921584426087567273081131889539461752157089257893045112790729577829357426403453105681055509830338581680631498446912599663410708603281618369791722794269172924307932878782364629082508852711102998977593002691250597192146677284288558055509141149831535787904414322339479393922492281281604401056419779457548060682237654586050160204837338394605880451740569393581291792208705041392130302474228862075879629856811439600508521587583187980535842710557340775453671845531228819038520326123793988246578477343075608139442199083742214344645329540148391214951571057920474435894756686801547617828600590538669092185797091109539996070444117751260223456069556921526367384702370973986851355280769429080437105849173324393881967927056614005590408439943260042451633288535762268583558161701709391453978992048926640344420233459241214705581747208328767410152699999863937821007207358725295483800621084919804211827700590629934429602361988904185458294206739693423994894457924992031290897979575733799112202649117632250520798167148905797044231470305030086488748634338029942928340205130746564738705587627758520733392821460633131431665809366051997553154263551909441780207306404613984818812420782855157508248288417344810016235904043706206894637598833992466618975789624333596318894925523928724145831839980132085436606321751477964866021934315009329034794749388554435545123150656463914479082647555677608712483725751857616218851667400871274051043136324927342157745722654790204231505255943376934031266737547754089030365859592608604983801514935789628330780594876968160367021537846358339820371197592530610075646384209971082179860273935530534753209442622484310888098706199684172144116371371765141027990239881550173305642355013141296001132062938865148574758228947290413241225375853091133165824036366532647366877205520119310924223861612587753307450261044695466416878738756527504126641042170710869043336602651996088831021960064096003680440150282321790158537804014509655834740574635175047425634499290170729656363257654609015783455545315407961210362874579959473449216446250911504415495981347469603967879921802741938566477684615985729927122282756540383228982315969576125936294176142173524643005389004019405452741430410544889565347506331062596093993224549096153511701721010387122578307376482715016709136674143780388072581943343224242648081399588292901868840861774007412800563308542843826463180663389865598011910749606113882751198312883668686351325357455286745974608441531038651380680007860026361785930262273749193647962806356253515180797508508143909749369439155697646532202563735535902728220729400513712921453356037527820579304807675629877073288324150418113628716410540457108886448392153056898465516235811995747627192485163442383362281410773597855341641196753062350226900438451247294552983641874743802487581050928654894180361323910244379844625123720030069621568985503812609538951466700584151289463188671193311872813079966124079394271434483319871331866062518054609801493249067542903857668664405434189765795885768872392987661205334158100689339880585203996586160690702064500253422640792758601233901835018690785217838078657905612428728020424948427070047175793891311755434850585545511615255103023283007194512655228945892958227038063215621150822545436952736711219570120605607191552931902572917586494476884468549248537577099412729623713002680107587393760622318407962674258273361386326745609220391497982813665171452747441870495585649847217811267944175082962394039076893592368521443496627917980983414560009969170872748028504788732436981826614174779738671757493093526709500716912324122462848640783210064783621984488270789705311631356561373800216406815655242900543350839137631382591741054178903645605923337868289282836553994510120205229230185531417320091607755069912242880020761537112204828174604880075037339300912802852019099934794195528037984803051950058669109266347829984423632200748502999153660487127904283667043951313635574020866455765646476332097580034537716798541470112578826298756521276076568285122771255779273774229656882215903200986550871682065916844744825797199112287375626915082126627150689524059136664947366134070813807832331071712217700106576458769102463742837828561255371737314978405778517042107534986792242008290245778302407145472170083874206771193022947812924500153198454738174855357602680646665662701851187413464100456653041418877117184273367951253065964156876417293288390184042170367598284900237339063778435646615374592651016789930330781730560190683219810494558813606581777882595752729518012749444952814025645633400745022181717914298678763193052397968010180493467489338728690183753390411056744541250282753802301491194569041010443452716417579301423300461547281806614505930285645538798353460870569837613926329673011551902361730823350233383097658151539276760499418064574640265889010843676778131696234542222238560973616604420501486107000169370981966247676018158601860949421970887212498710956266601390742059439029315204631254704912644393021099181621275516507422485148830887798353343361926468741161037468920704278301038896840439825210083935224985043531995119692386776230076505480916646293596747526152516752644291246813501281785296736062353161932912340224570073521244709258354864267183397569495502188265480489339955506361874701878055585506927637739450161026546668548204546556163443007545386431681938780994203221442409726790349646865064061800923509910118206434433810853290659253104423701286413969654964292211061182391820553978692788845190500780977419660939170593249957787604704424980418681789383933844808878592721469353434739009254620935396567797228684099289407669303233381476924949441160245348234385636178951737081519689198285307786033971388682699175590248361168517190548206839174215880024689683998026677426432208010396262739492825470705719547748687481441418735086104014221053387933594668996488050463254736330018064988677130395648871459318781486014715031960585942373710937918009205016939158219548440155080324266234756472501745612635194856966279587213873318727553551108605108199388252727151148394092379343031811417173349855386358421408193835059457295014239743032699834999520364307186206661502342107934823655046217979618114969263951040648995241387411691289522964874743172367543036615014275960707272031421987653956863187563481175917765780352080816145115724599101338666503494735718386130654731716603481842161620572428948675047084240196425574123796436645903412629436335292656579144213078745322046467367606767562693434557806306501483535898124295441190814707911512081242940364534656246080627776109879020322256634166642395687129526722018961630631272119343002065394062552147865187406085301001417871317389551387993238778128560668870895231120764427152235467793831303104442152854703593266299825505592327224770891060123365667098988730587740622008777825487489618229150734255946427426247334516616610543667652649975257816628629266713553444065264043205000357700069427618218194922286876256875961443524699939178295936518993112365393313491315533219872118098287690571295533756967816219178317400362045087547057394110013097583899593366805187650954920751612978018490007792813649225554992556153859481045942995305314096719886439471836095331104010235012623706821052905356980571240543102755576346745859421512070433405599201241922378316566882421464701788177914014577914989664934128537053930532354715262228005030586769693836210295896377977619379178689435199121704438197559016966811194755872226615336482619355254480949159662518970039501665277219020887910512186533664503995189534179766656874200835794211577441752333713187160476934084360911741080937887760551188461661414516373289999102567435831751482066157911840898380763180442694318253103353654945526112239579106660934321203886853429696709285223691691227042123519456701502970209286951482648296029750803093746495762142405938036739848611172120966122029110636430493252338549756551212429887560315161802616120317814318031773732098833337267320421426895898316323402710216988967206377298766057062956961011754145699756471724881197709161257413220948650249218553381431623747841107793170325245355948465188184672250316506996928355658510716947351789286428332352257196635726389561879373042757490304980579652245654175896014090438413082639116880348099490293404501909195383935323102267393520125997118653213998799093524102482742936524300705191157491054292750750869667568500326427630393295100453853536647299789883464320515800189680198885894703542328107032933703006962072135916722916489160792236107402046272492903212779227927952088498581501709010610877885125928796565542842178373828441379523831851179485738157905887195639272011446529454093462069742417705554318526033473432553808409193067798952314460705211775927339873388255760567584179131312406208297043963535838614222781714521030664095923279444205343380025778062697621597367185787061407888846877054547235018811590167182416282089620155054600259856050393988073529710225484313128476826599717238007277957803260461067417800882274878300388236917531167269549215482813951686460040759607389341684421713521012851586154573856460890163908803608397802293093217546375687194840501896619514097098915636326038511258057523237149081556817632396535456735313292195590282433822950232188409407361284504802491383256659482517279480788271115090229964088475341100516421089829929059897738315402383301636539518656755684650386426305571734933129114357942290724467438334492665483451600626550764007141051984968435182494237655535937138866056354038648998865715398516907305332554419778139362539597160729283973387689376019731040108671655068789665808530162500021930684690874309003098209915755817865252693952079046698635913987035543482334112542890501547969409312610859138904065290197647393968626253410425257049251848349745385041111673416392174736246094595333559122701302981983924015464927135168463359117097971032324437137597790754726036581406449320998126140561504358869641551448761635725270667990030150775825040938925347836674894950832758736090770290676371532362529114965792940952711301446713789424687240068685308840476391092754994651298822774831195170556812696425710925566640606660856265350849673024828374218886841247505272836804174892991998050104670079712083874628483140862895472267588728734562433944356979793997426740884926733989151145776583103142212429390924268632431902662224301852003164644428058342304336878228728259951588246006511515550161126238077649149953002327926134903054599164493238704792838975712937629774028187490803151948418925465083379417929202916505212714921254192002630854441642924746531329073202974865549534181494913502546622349577514129859963797484405748234041503588032669768379163643809390983560450211651991471182556501886483277956902738230877941388834412749438075535230214756249547142259281572933058645677850489465120324289090781497876916056699374288736482582246918190695446459497441369526748751983984261272038863602706113080062736145755508724436714257129340261327511509850249714198650557200920202339389435173484189227777287790510468473240562835330487227895240959984289192573996452325721903224621657095486954826134212936676933195129789121193996001265422109363614083837662156100623408020018284817974165781454236520323656845415629843024719072383999086242412877200275972066746024740492990608130227310798077748869070126467913409886578882288821041230316821827847455720898106545425283894267454863496436051353438495103418580551451214313414969351257541920138191058216069054305819714502256214973793588075534900511352066938355472147226449985710159076428401929471308282664278613404616517281025982434991861897808584933471582964991504592037519907146992860984131952707567250871005713981899054050564515394252925247070522161476404819825195227441828110093493189724018593653980045497126987597095634032409937908588999364041931095082591065100639150035520364307425046528061062025752247391131408777074752686558306679439925234442948039485314111443376763235437989517260555557392422059208704317386496216079175917738320732293833463995996227590034912294978242571882565980445070249844836728960962417159828621838199249971508732883270583234140575650979965235737403071800768323592981446301538288634575593679461389199495661488754470898011064057119015201510604664945818804103087981109909256197968680987996798231816099084347309361708609113209400996397597493564542384837035033949891866486840609504716093053156151928730700537991702371114025223157275985684451247331092972289223669964189294794907163950449034979829347912784595782126709194002624708395035231307032713094532454468984189306304266789427916694323196381030921180983818936147174788644298633498661034758120814822336038573207260930581606564697886716560916856377826448892549692531916728526387603882312122666494216652046693836369053035425321080811426434561294319690518318906594707137255527845256990675403260312510454249939202479177260329132812791957955490384265299852572776042133832007368005326305302214388084461797310819210006106492824699978434249057886847610568186711898520185630823072659502159769600053904248244028915806099568788202958216011790533119130001023313306377081669366893605281952680634840844703732985807075583109126316997994272269453003029635015518846330302194867916946666252356750735619286381411198513931532741336510035999455797358688416122066361150806097353857887622358887331602078016155964834827762974382936292818961251270882374174363829937287264418268860300128081707316518547134857276119809041280279263336260631381990031448722007111469966021683572287788589592916240314217191450578761090277050349148287750959475984413997642572819453828036437938380426549232650754302528627374090385247853439543838564427244150997775751440565936529478405052841846374916890357739705898310531396126864041810586735098998234633013589914915003707225006818602885897781174635693092554632060567574492624054685535781041382222789441396731987655427293628766783199819096712468299173614617690135531967303472176366249685586370715345144775289594400404776958790678590300550421219461158260253712726607803392602300712742535870158658868487182497578906943857081005007629278651125650416778162890513335303717133789973997748572049618674038865186593669252653715472948117095272656906621519147828626604332086074516858148125557880902822194128254251784510545889424255754284848082407078114625528399836371123573527862632227117099280283835990822109283751663355478354541875998923126766092697357244779810781890288875178651687482553835458015443404914984566216081623874031055799841696728963670777422365157561099451601706992311067371741186962096816312956532368462625545647077849898940656425859646520056541234126930642603290026412127859511830427078942749538392472429859920974590053091676338466390130158395556856039607780409690835104745986420875898566477293554214782672103538769332990785744306079927979532262160656772919569410488333742487636421788374692817688838146292220707070728241799897113938967047383644409707274365147577162749566090597745875198635861256108875842648224098332309761285673220462500124140070641032631257838568086314607823607493584779350571324716003775945267735686972391421356675884996427942788199081593409866175348246989348274969316763487055286789206092939557262003905511455339743048582320006538807868312131053519460691207517783002850237347073959706984917347184867299132837945719138068691152659505625867207292492249132471764912744500856457707232638764033338894330081011472796106722025620817376544511464995438951719575062055838062332394398355546269949838433621243473601323108700459305815054172748735163450482713117277067374285562300836857461419905973209351676490359338690947830545357841749200229156984757550171026621148672972193184333143251982362454740963705870092805109485993907435559819847931202203086403030838903433006420362533704473112446178973385332685023372758237720278939250728924441140599512614557269658431629559363269005433476246294000292295110933446881047768738559621345278521580666228892787661105378197448923419962210641973888100689358037832803533771068808415486231745987071359146810117074866812506364210661618215138947843240357808389685519991818301413096684205846958896519529920589214618795003685197255867820766719994163039152983290784210507477896798461893261586757507329065512296624996091425563191203312405985916605800153354868538603377408660024039772712700974205405679487626621126481570213545844599389096178372568697853237922798327953138608744223812229428256248752449457789154053208021393311004919884096516618983510783243742750946377103473184248372820675930555470709089129318509653381450976876595144386520644123157236599800081769745184483497197962109836694538265131272141629901867884851816466885155108700857178950400999743837189345969531625868341261854527654403703999572492790521655584706133553206939024657123992739226662027388368287358788876861648911243895176825204337307309623878865835663363497857032055409760714619855883387541618987138453621054908356440391878544951261932505281260694805114991451014565543518476300879144364767888977818196475927621917179494770074593449352108187340486117075878889932740691589198784857983194005044161677921945649016738569130068094907853186404187416651906770522740204960807056834998329763106224009222136244933072284479590546941129658455908915296347804920854769903784951417612812934457534227435415685807433453743559490837471542557722916156525487339806123467856767840567546162524831615013588597180297571446354889032004453254473960444955112319321698857542041974868185512612013516167621285318966841429152390924525835065449942847292195299951373302413655115207828875130001109806519126934983852770353897471933627813908766500083729395988443939957777273166679532367619923724594750938790356938952919836025681910139711721201829781419790537964198229049327829112103781101806587202520338860300154614601543443610878345303882485741938354937586948514262481813046895164438565389576837862983342901699758324528539219271443244136589539978836220242018937726535666416096332769509535938499846881256953947189902589792007944666306307347733535837412700396826854357532804534162522074300274353425183844844442024280114621041286348189000355044099837755439308165688536648113972171440962827585965180154106826881592966843471938264233362929492694639286545929010890132009444263279828948967771531536358382104326565669160760511586021516931269253802321629330871073495606243425349303688197490103517232208256299704403738578372850838916506947089768311707393463998113447538232886684133303159067014550743736872816824683269693154412022810062836803413482246812804613976648811939748735314952575234445993152721326102107879765558420240494255638509850292278182516209941501522135244039341702632516297820511810398522913582915256043197046811616741567063689144331567824387244349506615241998960397209170402060543562742649206590233456891367150451946807088913211287615497257066538093700904324103319056289375795852725990871960978052394483303443444224174196669483595934930553276674438432491456627356886314783087189954653336349813380205468939876419937176015410622782399458546482259282576491159778977204435695051637331539706676779654287908889767789354085881899364746948172945485259816923833188471184806687187535102462293566732927712455665095714851617538337271108439010023384325086311736281617966637791749109381962599604551005916107590366985993564062047220216094296648368883020873529399430311636194667507210027373244763029630976567288254603437940296070630691186255892789082200645717388641042218262089930880275697391026691108074281306719261698040006792392376747479533139527606511047799089541722946231384187832970899831170446670870859117935943108145251835774335562536790145982254042655512926294920576032612107221481177823086076686532298583079209688118030005671964911082651659569832980509931511742692386504386100067434287862816644435502066822417337949651511092335831222984210760352114282159759771075799911732925892443324907776508532968151127435594558523013067504841691033616948587621390698542659928790353511381552283926439524317529558346195297923345778376726283766807731382727938679101239932900706471850303051029172105338393823726581934164881068816888679950310010809214720011733884931367531678470505763644699855290374957773992359305643541656930500142374899676448024644977118301607825519093814675586719298374338260463299052774477731011119993916717440927888915425505439304620558015307090808397466186406640143370300794988577705007699809954063952885870907143204576500936733022682936781630724262082699313034279016588693123913362612043069769555723613622578453170813207648427298287948031671833344438913988905432122747252593365606446731052351520546500609366391917022111220113564054000347443168300526425850752399438806671340254303126978573089628962453499748740473872403285660409285120154426007089929553630872370777717124052491362583861508691471117626621508373824608012693006724939413205395590297422935404530847942132814540186217009103391477368947780611307698520068771687769386972935194898117354979296619268473330355790513660561508909994765288756576426157226032776817420104786987376183652242617137244321073354395435033715699482640132693526525901177474359713146766019618221426722876738092322337786502684075124630025613616677325443082994509090948762681964053483953871956986277699722177474601095337269492871675657666482950372263584624353844821896435170946311822145932351398174302011390916115855615075444495448169808802321983638556800003414151366776767954279835972402504435345361672428180659524146208239279262672823617949449742947964411303465820223375539184539408205162263119853908821897509789918583147317507119706398900367432074917463869773015688865368846346828015136447233201758744654222746738961528284574595396121559661044093392907288544693489378994727700480239254374699778348172354024840290555572008703349129518253655490856036208632235016043596532452010379641470908111494698793338358972413169681000943746206134807265348127919364769735634639277433068365622396919274967628040561602329857674711738498134077091191135903540439462428836610392242804865385414548838690148167210027917467623250579416147244694612663877851946757335601804189380276988025392193800434754782742703997682182480162355567231867168222251604032361887431318640033711179832623266830801117289951185434914677276119880411822676347128555676598250420105753204291331856307916879699645849729667437851561967814162818716884526135141072523268163205378943569408916220687160318967786686046073344427811306950838439916498892518154036620574965289201662044887207662234847178507480660540222849622165914671550446177568854086445550246117898526767935545518019414495906044771161422050860602402668239079208574532308329806855805294532163591990757021616347661318595509297841323045853275201024085369311524232227547587142076609242915143205884741899822286012811908871211883277781232275601666560725252995497518068636113602561684453383731951859229493486690929345135709589376110163061342161383972631014386421901543003203870669017109585472249377952485207090375875221151091463802784190635659226443167746492734367327845072151046122423115006774111978840370268147549744735271781682074656187200743699400276058372439371105796729576149792128058831455187754266272579202715268828265323995619536739526599950685718025344693976637128651257682868732303330191792382276221262387880406786670479672765546679828241512479483686917320246326223309558922458824549802889519109767364124366665896511232043231037384786217335024170141040714636632582553992761451956291177338256635762294436732104597116111203647836196679941167953186563438618723077615472529185014200509308385864341363282660182936885580404347794306668177576030297436055044688180492293571538651701477823666693850789753735626165101508489052057266704797361287380268668116889190157150303553019877372575186543492169853721892565720159543460602790986067700488403991602075054708327057402056963600878020751029046282249073479116601163293344799857162307643030522977788164206349012770328995139945138720620729572070035771955983341240772087553675291758259905585244236128414319454265856573520744863499058459308479729358467638638336170502163216282353580471889276911040510046878983882066093309212904814646809577655167115090680592560857834343505408709616814632216993651425979919449026517143891854293187985653621332488306333257467516928525052640154584768879826081357998292520787150527047411734791323956464520417116657317095145496210205971901360178441762826276748003215359662625950554814561321919053361166323107953167080688398405612960265213126598621470365594664528691787980271024689460838264398677853411934582474164010196811877810622964359710670740395679846109888016573320207245769288194501290854901886458060907780396578193417083260184900104060252129490001728479107000220769737233045164837964343964573854813314758826104355794500693302111803391301005712867801240699641398349073895767518039417780194244331255051691817804378599277150092128316500302529820190807931198285717319176543316436920418546301091218749765929765897433318407960808635216806793499583185823836587406984446516633977429973857767318295981603540790244727356713660301610161743238948708754817281288076091385307222449844378725307566698555527853217963448717663483619380981529204219219218656272161710098023045722683414244839218539410603321665438884663286269558176088003539322317402972249205995406770953448322056265404309292276587089899474228690071273915050846300445033235622957826973784501716411762872549228619232730343760832572603764659164680031977879848831876633090246015013101476967421585511079663082824115124728347073171473277592446426302089592075983893492550608999222183643507641980995498172635437135184518303738937597762116464679010886119668835093538219159401793102236096627190543510326117215897193316439766412314576016277544752605481644626186729887956332360637484454911645498863878883151124056276555939702340431028655620148496099912812256928748576827729575250929095702746637912712042545408539053097578778146411850388027519620145812780867590980393755667146449699084688776780901329933045171352823185635074085632811998486504822900638318702462326203571414675034319077831431000173065684920862279677739266138386932065032092892991574393516548719177359477775982769701977902815257508416837435571063461274364933661694275098120231188557809611309918145149278339618518050867743299385118813376251614958148993627764333567813423133419729012838590422090911229320210976778781055221206933898891217032204824867534763197045678740771994072965395185288957538054023429500868391796895423671582454405287160336194761856711059558666030505119675060270979974906522949361704276088194338304488885532279608592377716566693768281530022155744979303086170621103502938516063767693606750712431963600885115635384444011718277847612709367468336028047808620931449670688499493915194162572667910179898891373985798248426173081920353808283601107527140106953015264573379726517516811977991708836600819745152285055468441549196880037683680710183445016052358851909052211503188237951273409891339026259065792342200692420184778634523447901257128803938708856563685111698869159886670909118778655426632882909902404131450028751876202953305274794986633785066932251871071596560474628034532838225880076536331994842565036072261895997989883936302049612390260588577935893375399403771823949367885527160352133039892848299450383249239880957632591332055349867919942719256323684492516374289874144591194857554663313596871865398127318108926031555119812341724725485131047426303717017887319647312833376594212793806333392534198813842670646686663510977531066678941097654336444466797463753409777429968237746940457001025308395195241383220172886271219528784050839039854099837079800966592630967547840294936672711263466529918893193725606070656864065002432818952235431430140216541545463367612282044387811069944460854379355691208600163157721595133705591355870836734280688012641930578575314365521972071598003601353599353387864744448032397861688580103041717619252534180205007362483012739119313276768065301431572606517172282298302833269315448445926580767006606838783532100360183983854963243735395798663783620203747513023279516182047028236902811181340354061921728466603488049457465761380956451999159359048627744164804504378365352534943930224505423703562501238110508222004925651874929960372163920254391317893778978197248518965397382017445635864764174034513249920376666141413775611375545381925402458632703577932771945745979378928270896079363700570552057171805831163744052308489213360832612339945904934207546839590266596516300668981618213488911075599310011202593813569129666010323906426507959857159429483552109658278036115453003722303523478571376473913655492087842128964484836474749909975834650026336242697540148899578089992811757574039285994846026313705742191592736407035567750081823860802374344839636458597978651793640763454937236837102178527086854657476799589176076604930752877489254539169314760004785080253892185904561111504711948166754305728129800391554524106316133006510302201600745200098842010907241956793956596476706140797398303516004661167267632060732020007234531840773309461233229525466011589546911689876126868358541753329910517225696812227630120867961688870809136422072901103181635853870922936792555045267738904969840651234085129597439519115112888296698217764628325997448610001114207360420179427714766487955385199479541168547435051044735608781521005469004262175789463923344224205867046110284592041283505340254354798140372278121182399967827065042205559398313940096270485026939651818414501300118628532585987278405017026403855880433674006442710643938143584321052640313643568344418000356279966333389470455963047954672272107348727744847414942721819499875042895697967318553132143203818035316444665236626324483603362026083394067804791207391675393732897274073426493411651802245730682843266853456637183198393593203094954773488450078248211675901070204302721476602442408971806279167685285812385414560839846206393821474806713429664789544654871609696302073011494783125938079903520344488616393555018921871283963471363116269952598350001951509107276151992594331830213545641546588655673972816593032824176169471620684359385062292233186238177357644296791470762557278809141786888200774375246060195151740450817458592145749760337640135105845102627328967093095234360156869087588565915633996075137756166076637628359906432428961009066770366113872614084639992310426698316542562048088754943534801485487452195111342955529758234270680734443740492280255335752031251138105817063444989635620093724108127162966723449651446392141285665705973957197443942178384238389114298782805050503709475076753317804247664594328358387675664961068058631324644292387607809059387174086829850370595578288428598768258086212131977609173240572560470619896839400011624099436266927143231225880670179080535813984821546260333157219131672831429329288018682861064096571287472967175782339180968585742918374976257038149272996306062209279290233239738915211546061337926869136668413595802419668780421000191314052305424115705059999320695684809897747926684005941815227980727502137245891211629213044151955015240363697486244362706239172992824804249093653529104422407183210086294392397212399154031547258017051459329501655371259821790135701611264933736273515312742429221154135274532616112727573377492639710790516667658649134153701716587504254785882492839280026108316431463305425950578267628459444679700401228596626231580321968873929605337573294335429671134762864317994366647313659305289597354271820480097921145137573203416894971623848657018562175296495022506329731100776886336021788336580672274267367386607889643404143605258505851369125499774045949357560536853730454114030118235723168071379651927567123710554758067708759224016616886103333902298548329143579317012893526037164855927462922689983328419633148090061854617881026989785356541381297641892052161895805747056031460416426342113582893029665991554502804964327652979084400547243731682290050999435230367509516126442199596764907346657883169165247069719203046681553106120287625686968925439037853377133563936541038473808778480909034649353621987409901340348913848391763722116636376207577198102057138167185331445527802255791148084129658505306400652887308008066380447483268779677377027011955728054686421413899451252274037796930613624529393361231983960581401815164647536832500780930039014364058772232915797183309104741715853255650805731576014618177882003280419065245900599166516675080112430992513505406662047437811813812774691632277327928240825518046850456762041646532298626800521683340532458417879499247213848535008783381387984717466422525684832711276436809695390968089294852561371116255740295999180222460515807792619490823008116550432544237628451703258246915788889728750816459366055451431897168382416300443677131793939429759117452105714851358503759850012049795870236324732245811136678371207773129312294702296604683818188162393146696257800229599295383639617471454202652099867206250590242862014484480378210583104244518512439789656887865478106328869300939957032539719899379536115777890535902812045926206382183558995896692144533703460838670124450842730361191501454232210270362827791646464445426205468368609907214126156955054080688425055847480984854795471033630623484482747221101162945444181287150098135058977815335132642843335034370587020508173014222461365829665106722328393591678802393292441289386223903086490402531291733955686741435061156150869701712231768833736271749210822489251942571895030308738357894851386015551750232019921534165691524447377743385611456176927400370065499036118485677022134435583429298144512348254514405739764207059435198792411471847692465201983627826475424997140696216567057010377327761563492050987910824863940561958918303509953813262916282568130150246662364313441358038013610313651650827399336278331642253575441377274821074603865119831217270509107643022160275264443408814823358435492567150438655152607934150560799559227056634373062529270179801161849068800777309345779743653368037037193586282947502667186935852166987200980370564055402252203348077037945361751503189653880861954101896192719271338972377554104528285485870451317184219577352731112854247891948321801828842239543469452206271991507462995305367849958926288997520382597563259970096544782542675118664781455977687170917554038663703617515673824986349600184495520208945474982606123767094712193853852368575583048154061196185848668167280164890953408459955743628178363015550459637159795601839498981964279349828977268381541729230938282587489262236191941358753310287908495468719483356592160057409477853951793316995209160924885777212934181674446666040329867381508657347478451372092555362564621000365055893807984659240868295221194115216671204106317406990764405134861444557587751755829507796538763209990878005923551661906463774489336043091442875307431193726950480501976287420659211396798782710063768050433220296800745881118117274780806109064641306141488674215671520438033060381945094569793134726658202433121748628029438836688064572145200713848183977562975140975404313925426572260598425529783284540789603699602973387050563403473463901705581007128801797163987064572381943867098029657520502312371712121551529814424868412211267636751647000393783610952233663149556263504680313614883144540345387832559106034460763446421269343416930953151065545000375472258050944592317171584964450059363442450816539600941396208743248711868221837480079282898590461162198973840204574867516410264184624505554473151007947102578428730112331308765399122284854456029196028277050247202033168463013535884680336814768684756711122257261647388825645807460086944711579281073649796577490666755038022709119537021400111034565100055464036946647486828387762271281395589555855678516567666890935940893412297757655711018734705883882686457638997468007920046268417900569536305789358969859143848406560668524721808087417861709635265499176962779916205227763667864718788716881585159396782927030514053857708673916067094622023410386889493882789242966500856568720265670729871091477527024780636070039206983673555701939653238398245466607299841165068769787090725546955591444921021128694686376258158512200601212943401807199036792078694313584452731012127377284926538735040878114816610541199631562288119237519562067056591794763213807063466705022673940677918112509372540041944079435260017699948464678449534710709733939507543952377569783916367505085694719022384278496482540872983741127986240829796985730700417414389362496841120012125762676335524578323298526255296942087531172765600419168286726033575099027098349671776352717461365307606242406897062325330004914036192527506857800954178204551127917590510039606444579299774260438104008632080837581078532929028835156102227432291365987504426340129486523128519049685433983050483433362381561791860306265515415849142358914537838757873500472506672898589968595386196788074786164656976855266899322075663675283573605967768157124308163588352436612446464493857321578852193825295533284498811558197175712676317644378623769954717312831352181903867451333986758301129416595546452821994403625817795410698040616690367758988643128476347493325762510320643691991092425076723701300295317991200506974253148195504610171688153246074272294871378976804405554374526021929697552165991544387037330594967640502495507924643577752195981651755282169688453642670068175664461911129695060788348568368313104767993055639273787261084387123091693152280638357006136540992042499248382159732427932398737542264072941591165475876523701475341080836319193333147481397705162363349379899758754136635378030206609509495652689112820816572655832733592098652003516538454334883407405699703190461653017584820141776757594729825103901426347111094099844185638409002840038436997383026279292943301878435044752817643321073768175610655013123604911785888366690374891512866474295995146619201927747655352700281491506919431173868801170898982897853321451486048277091895503811064643415195028719400248106407645723251034797136581088018870701872825462445122174913550743912650707873972427012881804402801179917612478863652728895281609754399909306384974959546730534961966995745849040263175034742673675524150722930147945204191790383085520451616028191868640910859285421590966139952664438150274841194511520906846753133461710868863474043114531628872882394100392771173157040390308395233819443062562721542421352726916549034647576159087810302523827118375305519903285990566883816340918993488274417779169362928581474663680469543819093858412776309946441026379736170839722300508336165860645530117461656968393116918864326202457353137694376762216338480708412153034047378273134135506683032677696320561708307790113151128118721837082873074371810066303151545166626962410262008334811074675708722348586304434077896296702738129248215603026564387127006095491958660206969891192711335191929868455638729818642215059789834388589302842590465261043172866325927858172677151392515799668443697914473698663708743186240051939897943819308881571455693149899968693382418291526921323991032197770763136814110191303183174251228026220181079773486063686178142320942811813129460362200247218481048560835724231067660865835191755445795111536289529686087225110736852557341032298384327789290149086058777179908559425708653949685414994397223972274738200053644065361172252121903738532315915094620568536608113111702614137984447213311710863183857497755048645624493601730032293731691512120948006384616525969137813232458263705354804097748811632516101993265845585471168147789165446384706923022966764296079706754420228646590953200410851216850798655955627370376451081725075466165435955395196145948363377755599975960784374238195078765567564988738606812964790545417408111785225560756937810965397660255316475031307232400100531310645797488446140253842054138977597630383996939631760729720385117380486720138976020648857755869076547800721688710726260169855366275800883527571626801445135393984598073814403736764847316784382737306419137075641445073626034178136424030334727061867774494286770949533886858487323279486909464975288450971408330412618220577104942026673052394582324205224356627060625747745833616936547320146510842307994113519243544189383178977266196837193405858823095468021743264629872506956353720351196735388099720694549104281076627331235710040568039204746674544346366250435997643608400512473623200723542523206594089806861107648815168508580842856696633917392968632928847446093756041754120344240576560242103872033149540022032671802172483252107260247456576108665318314935612571008920749621032453094774276154444200146566426003102480226651236702089708921544598287801280152200022314704142411475634714371666710485113142346356188109984428291873498313055901920224874150962480457678993718602783071882353748447387714244222893653309376201489347172077928952841294953744046851804336164189441171624425831511047231241014305436464459208951688032719114265555669511352260959958012810788288697453929528072916664849635814710510189110504883569068569493946454849942614928884860413912375244210494739208588962937014181241900240423868342156730788333647271386798902293044913459549471169190132297911947467750712742835748473236308856644902421685223380522381189614778444778868448893235145939715267798498868382233505412712486964813023854423195424336266929584544624186243341409876777045235567667023746289572517984359154523939639555012913678243058590817365234383492862264983170190596953427269474110305222285260827103091364022447022822478803328319424863280096414555734932630966858184633975820512880636278671633490525293386695795786159128863996248901826756003665855035337103505278745118513342085186234170910240908956100047362027772642108968084698849956127804721666338815756069635661729609749047757477110209831203365977147575066814946156582089453928459097621773896675874554112373433396019163040603024086832782205870224199522059247778675468694770913945988577257184567359016050654695260874484757037522946223428326324322044506790764872446544554446045515538271545450440530143503726218331163752022253382910378119785763377420083644324330313993941868674317564075552544994586694404245441639950117103028607134439204600484673897806211332514459750388527346242216683890151455934317801225491676521944450326718311881733709591553414871868903322711929784898216274419113366800381951464802028216697316113433290844111810937760580842290749708435573333614091986554677479162476344902717101177752694206724660346643092446792414479403750043654806173749215924222642610741189473756131957266917251201309497055291133859119923344373373693932211277018121017234250881174730193938211037660020035750159638799067699080067013652485585644461493460219012476496409666175085393949300136758427910170381718332691252736803018108920175010017722953341705398700654637357122422266652627541315531485542749004789378636759017613584630058648584245496826171394719222248737241529586976029259122598350442618343845398475650415316665640964254058120502017261039394967119634744568523479060367598558454571406085707199603930283283657412404817421731126603626984659456521782797103768222746322638946035960318340707961080313440943819411466974895261240004043381095777942808708652573023760300714123975326141382399676395709383694376722090339735768329250525594633402500324485376101031670638960326105950272182924365880823033896024553463995269392937275485587478078093819641221312121336570752756452309551480431053014800276777003997406480284195747944824539506558870820028056166163428401827098961146303882925381979120932912443205943390003385604863723260313617890719670665216937742603118008627998933146175462723141073446514981566079256400296680512104789821187098083929110082526527335516367438398027830753246019349676406318723349140437815771151011053842735797617620061360214302694627978636041680232941434529906067089601269572900079087066479120549611387198833181229429056211720528110376369320318750217440355713652871598365974094282028723280289379972763406487126025760791752634505285995282538919368520217595658055230326148671145003549948335127838746626072910929980625364951354341970060930631727833672724351570463375277898179130439233181681347212618652817302634126813176685399066377093105904062588672263645707121865258291425854724963792631575147148528882007320575737146462179304076353796223456777558052330170567780857507479631598635206052024429705514905807644589368720678210121965489041162701171148721225126573249541199346480567862394853017648549281309970489157491415106964681860479715144087493233811116031943024975028434924777016031809803489377849082908994623427195719875400661892650964545885985402808780438513833500414888717670144576991519200322892545270947329767082885253315180808416016227833548080517273140058777429360724698166870133594254341756950767182547117244871020941436039161942526266482671574113234704461955581639297063272537798554202988919007183408272916945492966545445263097800065432614984554767432783104680543729924281745376620042113346759543980623595439591508409894299209614475100614749109064037623407629211153217492037617692847255774948319893869124365725832148235705596451686863438303853716590512328774266302598022376309353461620894647815609386242227393620943308517341556780465122225326165869642358446085478056278586998371803284936808400342768561155682174899164029275033691726552571466023925315542313955784298494541547786333200770192402005684725408103371043965996381071718082074765495706894149119581576553276095855443943287854603161147783220942088843748651227764517629089861560094778195530102043726030538918347413289245840837764043082085299644571186814417918315458107623865134339808367535026834095778329783216511168682643738393836095229293212500213835543792379459508155113127518515227057295852421914069470023998555715107159212904424557244530613616453388222614494675169858056961242230410123389081378415769517072040246878264265516795735342790675627013410950723671726447396184590268075636733762631612242987674538107259273976021998280309686421574010596727242413356048228934627725310075854131372594101567373811505310443722821746233525957273524012675208753018438498170595409157225694751910804041795499539002798755414461156485448556951213474442341614890680178497391028456336347998830831862475863043495884399963271162812617868125727518734782329478230281389243900721300714900404807532474437621233363798709935384678943459897119418636855163080084259134317701518103933203485091533677589736728821427596857221991883507782148274353759561800140275953897454454035323469305762480649610092632050774485098919741261963269452044356490335811653871820385202431882938878535775422030144102104676147229171706241658796319820536183892907160538662580525549504774390089608666354977404619531205902211980462466246688421213280597007149184372788510146357775491773161575133368795164349924553330214402156345188474224495817377915076562502203241219030346411172977797059570565056987887416125743884958720528811895963287416298448809983568030022837040445991969123317119118616990610466919424791483468208009417807323965104596397871378835337445513346172520939879412250155891154126181043089963345429865360767512392970534717369612103739950466356936524347161945993092701351915400492544336105085617299387119086704978836842027439299463801207542277980159789943884161801991279444681041244711951144571922776996678683950992555190249957567350857810921789537597592189648555467175831137790894125281676915960306428728335859519532470262392334747414860917586659920321606429846248036781082309029169317292075393488746924567223294650489395356092245577011287860118361227889005425542845036225475870998775318541331150551086543666477278297512863783765029975742749444133354873461056906075913702356250993088049321984031969998605308428198916137884471373176835981963773555119010434686689494444243187367068950471402962573521508879064417681901730518032548670123990117257377104980322830496798430145336493876564268587548530485258243634182646921062572792283582926188721556048423310173469524336162950852690128347094495975424561526464330277074411534158034475256289151150123969723035706853447927031335448060787921253225083250611094431994139434297774117177684969053638208154728826938149239327497211008956679537304430664804046296777054786351345976076247190336716135006913727472513861066446305207224455510969736511549066719528410120932701040793267182331539482131775422815605826202478773189991190457228080523364147189868802821111368116094466099665081944837797190658875522254106743130346258013541561187732101692224295931715248433943906495372233506360655971226784074172154142062489921332899890617790540709469214686854881553359470944057568175194340542792194143130551441508687958599054987960271226534380898147974883692511884812588694783016790376890592695450384751079853788125844316885947387518100852459503200171896990717762501484861191046325237919806503008106717047766227166056665371971712801189181631695730154587400910259530879314748278912240785912814156767521662370952833137568505848396147382843013959941355478066685482875105269410171638492165246227353078958603556949237333988260210478848121046343554311245610296366889802855370899340862067478530083185129322771554872339137527651466556464732521360511309251147858377732560176393635158457471897099065728542481897178459228802165861521980180504199490609969980163061839829314120030796347383286231462353877286174317887851201355234274026067633497611235979780511025341631948235848933367691566543774565178144777761581273309945815385637699153636000250354526915366027454408720188686728566326725810585906960531126159156492677728184345907207503687057735751541974714534510936969504801148721010274688568133669672534925899530141022413508897952893998271959389091200614442350618711984557655125865204607705286821576220506738101650007742690043567108890658122171570760497338109372483438772531899521599737021613392063861400710644311143689648390610653451766662104836899890296514740342587393888294046336531970463383353999043479982954052015035845203999856307688036387079757169970140222947119633651009473287076550298504060061661819383578651948959356472154377398947927743203276107228941817697284324512445563593201559637480230314348929253542752849046732196035375820508391722665005617788135230974808870827289839902709903378046830938433363874280168919263719751958268700128069136965931018631708986991535328430095136448325361444643134111447367963938746207143881528385320978458598877475087490544758922507675869994733109465113811326947017374340086149941277640942133039867465845998401608185612299895789363772171243777714122720312917435522510175592020160657025809636889854602629146342237452915272312458117415270257058458632380833051994171749131326124308421853999533674050152037544620987371744815441952904851271959728970632743860970916408352522379868404501277033396264472800942076372098045750713342757813613053313205923303192010964257397646488802380604488444745734875957684535982744758166984644908247864451272735204000023816813685576619034967170900435606533561434391192980443260306774885274180807282208417522001947509863001895586657773023363017405451037955821313072465308253390270534678759259787893012220766126797434805792724883812538700368069881753304599724535092334323642051848803523393879609518462551850525229385680057007814878985008224829557480570554034204610943482258703852907002623142741914756836292370154767601890425594579647753969420436297312773294057350487278577157033987788958874551775209453998320314853678939195293912547335124410393477514535964158804270634464351211634579325951345032497479678734868008563958444124833887969822060720218351773165502717931529247215048997712154102163361906095294192550798423317291654286623917121662438334924390772362058696820113218026749903207313671937090623288080731800271101468243530634571853222977072393699766424264411410154872514576367917254293549303818158371693657434369963218232544663274866733328073558040237032639232559654877329333085177957178515916504897859859906040951616474156955560274144931213021977826406408891972003013036338152082595666599820732536266765296184729641436503496901447221699172613985706578208682208229757804492194725200931524366226762985221789895081612940891652136176821132303554183163455618928283646175531427476230437116038189607781978073055704059756274586551605255754481286646455549699482779017402105394716870164010796929097724489928925065004254819786267363227808767901655324360416947381951267582899459942401884589719757168515092198563479678547538969620538731804184772738110616074153022753433692653512980913393535778823298023106462367141626101942971784084006198482305526125791077636149591170927715271103699013921399164231116542465271914016833704297587107709942110136940774092041368976005378674834117109425119947531604435552560020428399936705429032003968637587830396933741514177087966267398094110777823035504502437278238217804807305764627294982311179077022060449578924619785442695589687683399935649122731415245248031373006184971322215090306194773551080135701041793693326994893207971037259673071961598972673067657441643464872890613156360897000095769103382977828528117662817973691808124308070700142791479167162136915801573111586447801182176289865210689109839334538384589306152943441866179454181459806654603359551409623854061745787043852038501126375325140698827469779061862984645998154920945910805606826940910808745762318329271405095841708341164634240915067762046271338899634911438278199133756190226959194249264661515036904468369373233683456436170095495853638480499677160408218284563565947319140521808470143024260391921012977694375013451536928217573579100909452036634284182588662359646822293484913971067655675652890121297661433290097421625755019619977614985324223197624644073100177177025016249895372540885039886920014276976969040071836508619414447887673488144000843986050676201420552741074963328650161176296784521933853644816608612850388941840015244300290052582014603132107595036747391818709138894286290243068736910092268503703964506902452307783166103084408188315811004555194933788844252648658963203353407550827208011915788137185183530952913911031673052608908677761844915875973929298766554153527022872702068470163452172460099647460986813224283016005696966510871932378742258591354981565670478646445354477298202434231116813055958520444297803498716709986625995238025222051909802596202166596248439877312004667283943260401795060220361828974020895203051817367385960931150450447474389357428847130381142709824603009441543216458038161196243962098388662563300600913539723787723803163034460692308000721923630708848852956475535836905498841145395726694195513435410238619745996682612120066797981641327016024863962851458925195632691193359231889350437093074521092415528776662571520113116422087260981398573305876308685719561602268808583356022193430425646690296479217767731228810483319304298819810383660390019199793598647981626443171710443376038329391854732591549435081887798187996411383326416572989180736517780828797880506656055879812308099092779830397273328291618233483469574590404089012627884955032975988295742929430279743218316244615836068830347405543513354677294550936132669449715706486256605331816351482393016358263132099484933926323902296462267027169521321529190415362089558704675481421975163192262041110401219066558585707920827363887501397502741109970818603516513909646040622110545436003038829752206644408114652914620269411578380056176510232059576099816260275059052433709517531540990821115066936399354053609908851406086782183741359380047684061914783154967124899613873680515407788983512386752089363434849828358809006633014663110901311964782660144008132242781978264351509929482456055243060249869359521093820177735318698144306663757314876142921506304931887553164492577408486540293722652215323416161081361864365508495170918892064242641009212801958315737523483404344498923254282747977350916818760521094729264021265953262089158669507352665822453524117761968965767776046365781962823037163636637234443881512367312740450185706164105083107452115892320378444410233458617747772675186916490328046031926443790909279475505345928325700423913814917181202602256607586334177996263866296967137251731032826357208988409927810022898018014934662129628844766177333020410323457124465974054831006700781131123374368422525431490777258636068513945173019116038184160485790344092151440095127763802214031617804066165005536465648495789300182964047534107716697748011473478803281326880649587987044818601155826281853993876236261368343194616074403396985693814601418139409561352532577164743321940081463778764757529254501188464838994771268423236294578855495464336361874517936707189976411787845132480520842202261952489176141181998776426229022573525956559311529885607099558981978187825230694822375554977024182101001474969436474739849532791078994502340308524723880624008686579642283670292879201584082768662911750006452995834932318635204598584647224966677391568871268613088520919126110339958442984995491779421889363851486749082857826090971834276783613647653578995243376662576965122326142093157718499995583101605595067004568102900180103202003978851195928839342866356356649542441210732676660560283142881193299793417689038026289933544189657377016130223365335453256817704818692369286656825338405866581504771076765361408908727975677239491534068531775119018610240655812674893368148031894117046990363537502125788934444109561123166003071887691187947233223613778726723444409400765754143250700161366139012520861340183968800735200106022854232466126093749425554582841691262198427472287279511900798380298082810196991098806002544267330724044873893704523715936079932991906957289245008313461075094826411196926378461359224688799370058590889311390604671075372218673596705573315838707600272263796060911778065578051529117049345050480687389213261773091304609842509847749528298950488423735263993906264952931169581876163661656282468161992033053313661255484884778389298446484606531405829681710897130221901786274659485591580049894114061408401817647616481808180541678825260128971969645078701456547839773563779825647581228384674456116586564018132244974752236101146316082976835252703118840953213157077497687018396935445792828606358506514579443925682227375071742230221631090874151170843470682892232855917520594128628821773222636018101967917993209840065843565996720536143151916506023662553359276852922919956786394183077904045298134979102212215310744106355615567774616711909008695322219053615502350584571687614579583568137633614961863604387924592461453823314102482151904344156963528124375029981068896187797352188932006162959770719355357644441859026593829165612213116315688992030805967803146599692887937042569798184963263286637377516373157961719956093455367475383924131942617825892152861760773329573415196819360779837178811004167146112499947362262373158858861924274709173828606344490762093886617430904947677618902400413391205936157453750018995076581482643820051820786181323800491012495627605854818381203771310249835644510025529122613093133403486226229090548924805538517602246313892387383922040519629397286228135284171189352994042925502879305115805765686665841725654590533131449544985921206750307699090118468153666581656509168196500758878076998772989265152522783663232856531483444327016411006751273763494252866511188134814235408356616858660811683057331017287284355201074025643736196879833000461511477599427536415129242585866505581716669539021913255304577624005776241158141433140259326875541879076175617031251810269013527502476318527733225205795201459964418010796823590373673036125891408747568641622704254254351420501059849693066019727573335452486613104779916943703794472734713745572822935058325930131257759584875037597634938996659219417384764683461488811865956531191001155187261461070869663294832584064117887295421737324370591571208976090100864180424535943907997031406729696964403458130827930924548801608493824139490860872280823900710868688279286611176377093234024331770700891022997392117478582205377926303828654944145912367220474510732017545612217908016385393734046113551485248204043621874012129542955204312376230937736961028787542053600833881085316618367108068041409079413044965733218581649366927789466562881443184496796717588017677666466423786469174095127888001434882428548261616858335682321227672477877106297224722370337933429340506344017612325224323459908895723994931559011871155052401456753769315447773302190550898806816082650416723858203079095663810455635735851769363274303025045961409362770144793459321072465072178709587832600850312125946842706630273013331050502009533342199128713601597234323271012836509932468144402581841772431728494501737344707655313351546708242886160644693618498953613121758247238974726237899769310602062368378527674165530795896558697463985065342556309928958534929721935244368606307408478517146374886907472697246934699895095003944755787778669204359938500382032582108061094364908657604100470012374340665302387838425754173382073467458783461445141973500922010802937815886685747491977618207799395694205169537896934049334285504708135024369859616237855207631023856211753102241213314751347998267725130837607341320467813013054623557799938329842593879669068832684479681785377789086878693417153521879666261172083285344391476102081047360844217769182302866560146942886573197682977783799527213264149619902663744969697875301282724177248670026847606823851106610503396480650027820747464147939951548327170606553043215568577668065500283427665197829741664829796352049773819284142581809350126399944755417153805537212026379228898125361282353465603216391432203221784516006812857182799186481171455446580335073301702697038853932582443935289108333051073143687357531890908980433564846792868419606745326955327818376061252814555616045339888532232748597294993188254681721418785321561316340500860332732942330432989510604615493066417497092218462213640513597124630215186020537145299187785167462187359700046452249967480752266924396444259986723243393067903100136185583264058839882650932861307476390351226231427932156967579853806142067088601338675463339847007434421043922660495910862839297713368164782586178507845986756799524045105836397356270350796981344573514728270758295589626760434647397393621147575072184255423476849023454951066243128784446373345000641680965659135432945849426536085973670448235562760349660458001123997290548340940566050709719694764768711781140132966930397480831475776481942079437470112713091398081948706809874272907813352005599831462735226074033082619492850023533473484463430750283604293609940750903693765866314768346723924655782951575292761030126513173745832744792501460981303061717195077819352965426514253293455880606553403456460441842627833473051520126674086582035387176885312930962128144547087161754653260556324792515013068620205775611560410614874256018933485065346189806962828387632254240691379518292084460531514689895929481598231832244335874369344808251311676914352925449544271217638948564490003943248794482946417565312788966052562112256539538329267829956439316246406138063630159212152989288015770143434519234482227108553981405435926437235768481644228189167023755774584790098073077739409488715703632926168196696457191858122376801010418286672867967943513645071638273086488498178543168633680086803382428480611111819319947595499890107558605792970370366860625936595454019536665810287490154161419088122617465655631618023160647841693023831162554485794244502631963159057407846973276647351079437328319363065916233602308455040841293840666845103609657268111138876209150208633956188495908200317881984144772406490057926220653817716197534158971644125325697514924960101983475077762867416396436091946072812182954916955545312761677420517177227483274509729024357139953921045938072024042787242579289246376005814735390280824134007648177212679189320370354830748071471321633253643776973615331229057552319641392083258979933549535731245318076299070289911600212126136421996465181122159525486643530656591069863444656987313794115544365427842158664935477653597978685968300697007128663551691644265110179272242193222650998633146300055726532807340125147218996876134745694599204202053688382484873545669825784388292122029562516049235954402268764216432249963628311249681718001978625959009848398216368902833995299235359709168676276958668703786313677326257428671597066440375258281224277799879145408505286571126792230168394570140406846045980072899031416837061575337652537002101999854307093452590837509664402555401925288556808721593587907199445919353004239712986693400087428899079723773162668227931982998155629912880423093347294141041815279004653838597734958155709401910161566391397153298743122664290926092808962952499686857277361890948161016029901824055368313156536165245547986614220979479352781137770023027972733205991826142302256317813735885916726691971152388706286593248220700898976581646450602054844315603268721352551010024182727816929557293331784699057682042436115876005728350284089418841986556198521563850390776626292132235365488249964383785025137398621275444870365238985719457982211158667906589314899740708115409208458231754162063267390680980164048610815431748615124720868042143769791206133605795097898303288564509582893881423831359960280777882132340823167450242602694331280288982899829318154622187871479736254212289527522024096367762838670327151171901033828806092234514216235501298033822309868550692987962748811545023290401447896162385491182728765253124895510673695528482212841438040754270727611186548819630257805959955107507837268085238786094715850287606236141952131679583718732312572700346695259299669087140058235644527748033281841299749550845162513139938554433960295989900417029046837372081222034973126802147847183931120017120778564192074683469912469632944406131658042001764116031509859864979999270032880680313381259913515842604702323307576660882607602803985563826523581740305807970782146267830423035227586461728652869166606434624603267061955552675112684469774074052938237362690380884854426579380839522107890888862694949961007409349801181315985963438162645560075302980825723435445719208954452069207020950418472479253599741548157063968283575272292432307162974067220669330914891941277776587719168633184189096604177118478867292208992285934269835526511556364284159873399227420700163109108857862088270383542587007190199804440439702586892256751330326151440891968147828225786973930922761216382269510678612799900650244619325725885894235326925374270834992797828681372653078957278853650504332154463345304297793912807430426477543646749701828272409071280708518337676798673548332280486707900341928689656822370909814987566033312899927656362046106951429390697274986522111007183053021925110663787670564890917619311021533367693561224625028192422388932582927299152430705569687527318938848945195274549582379920197616371856846754158691770382100466737300383349294987395388073894046943232904701685157437327343668270352440017248515161460954045309147810798465981335325103484378292768338436075282011315842600456001636320609337073813087657432283925740143371673682158362564095108224709314011963196329615225454744672237157254378287532112771186407245955045359323401026389506441658223861498874710427898770523988176263355832711355449342345647089241040144980103660483830102993747370721498808026142005077515029302834940099253808765532937455548561685752742344182396687296927826302667126265810322380426003623113969771319574510674938915063988223409078808027691252832856959336745283433742600206661015568422101173782929752108622383565242304755874834338452125453756745361758344417189322327382876922443527361700794928801583805773011147608992235700603305877285226165617747857742708201196479410085197081954226046087504189159747132856906970101419349022342896581982676189676176728188626013317665654404171335667954788925563867092864582896225274101662461917840444664740159524173249161656595040816031752083809494796567609814573366446957130300150318944145519442527100296020893279291981466875390548200619731720163757128662573986059152230356290989986037613407764466702624189845862818928190133260098844535901277944020108780215703949305712753251839597230820950254200566267171597305206423966139434015372593457717364300763773707012104210321297941309818761258737729637852969882717289453657864670971598169169849161441314771044885322447330244258764895597684899914710541366610421183970985550839106880753665298372146069089669858386565104729148958140378557590431044287880650296752590650638156630616148548511437858372541194615935353635447247192703437700105974214819220088986517056298552574661434603987511885885762908921007186918551560797748285413765181268231331353412094460846073850870571610841402767994272633295464202762920927715300075296099228970915098639251554946111472685827567506468637159334264515671331517123921265399706198302287959949761731512410387931799554513397707768388218719738771364240761543368714072613016212124231878823563289902210904756616099582366279678002028334303524020759259222359602195632012857020101784278311479424096454825453093712319998295967710539389457343601269910089811947436328203130652736203158750636055252666726588802798904713786394649288197349259239664460031802396497946045832439049024753206297849920544628514671619479759114210486748533457896618889534591594543897672331343512112913301873019253564610468964946780356371986654656606247188277941516490968955969815845734391582702052756776274766584308016231597375395057626153460087424561569226432227251117228186780496961787972600411137605435907758179772267967301426290417929499825719064343787012573113871567904932287361763243239249488475241248982757958527712742082623795834850716192213374271598071410420278984686360039988413911726529932437253769802387087160914115571228643094568597815900288299827058089268123120843127394479556335337887781687019007901916693419032375430440448727317005687186864155928600678534225202991186331403628855277744413755125978394750560666571717254123863905452361073467475027782869402787847151622169233187251606783698389816278870575483386107081469045938224694452539038166227336753469364547759208997733181788803372350358548960478372196250443563940462941393960405570288203083310945337448227797921431482544932781761670202381384424881062317977101714059354256433815741311775960227115946778415660076002643587789950924333396196539374991864287460248137041353679311380154630550852147000850905094252654400868381271004597261916094721392504385657586849845547136943435920568357084021644085654795354163783416023295569620590385136396490130120733743923742986401349293409906696574175840654846849573902928157071307370132767907650009662340958318100649768021563076228209823655657098631510435987167494711744050668285639480327955267096918207442575971204606942021362342933089760760199649601059676174776188841955967990338767385388645334020754851507459920763284108773339837391715739373124310422445284822837509154778863087554497084417959191883371949519866879620528656493954036508623833409082218599969619153619240651634673202342525759269985107524557426164699333013067256066835566744642480409948997632607511656428392898646764636374740340670823581553222613437953641438923572421900249459369764604147235912390288701745397249133416375541446637244492660609718641550583713498795359649389870748824609895736491542600073942792047499269961024115777764685745487691574928139465813458290815942439561356918744610912109759612654170012164431373898986796636836491996017480935796425877924991350192741907174602440205129163240379106044701174762634688271174359126481050005699399676301438513675246769784625241023389429865288772394125339420087995912087741873555162384646469211771505379914287466464218572140511789151815089025167180064440547098574036258548030904912725194278500383760284694191856932389064786066777859474274628644449801167443466370968136157933546683810348226228373571996443476336552665715580245079199068229079249414160142524330570108414261648304292064619509222464591400459393816544596349044508049959653677769199782962216580705533724142215244294249669801878482257907202063096874164131607468708170304352802361372076438514585612052143725795879169122807195974148165610033724808303217479332327899623699843205353740919327985806128614580213436996918211777096178626253502507811642812612828920615188080793330873893417065260383382556877529794244768336179503485469548404179169078746691408878010963405584310236206819128057873459945309359397380190161437496514125626618169685981760864351436051703505794733826484613694908952023461373832294118415276261468303487991452548892530660069121911870358815343826650793913211699527515169122787932108203972309859170192227897505982002434785791665264623801443838846149629570482800319604252900326262555575153395707343422269428480899629423432153237608929254733494178533081785816885005395964370859822223625405396103391687325665513169045990159862092250179911538619030561537868481973577897495485356190728241785839193838117750320487326286370715570652784203528793418501394506966430255391957754774443540021922939413300837163702976099467562344359161805497091790023620389472928710963302819700284598209923962770563786825161074895058546916109754326097527867138154188193273512381522190758475027490026035315841246823904020225006585569268001800147735413824674492445767017241406468041510713377082660609831556691601371921229133156027174022821433957357849950348382558795147997319719870541314609645655876701478318258199302706017077045054905668177655464071183456033294580464400275915174192616493213362078861523366187154325606810114924000150781357972944080848053198782502292574269196994366478712644891428165706730571925280256175812719980234364962027787187723932938361697816515414463979997665246177046505327378120725048562959663935188131530792849939767225043043191220268628418172743225697270141743083890322283999125878489167166018853945054989256920126416428610690100189274588655713773543541436922088310779516601581417033705336605729445711221745146593522176284414405101964689890037453571260005555854315609027845155625965713471210704192839818043136608884310665371294259505911368287748927027643981874018552498707371764706677438352781274930615506105641681306428009982096603108618483185140927883863265524223219421576337884436525359434523307853420773462818967814408360925134097416694569323165598542486572390759338561330685748587899342332676232096605650692076687542208400653563221601103648740663914639143340919773463165241912843079631417778084171211129154431113297866754376668859267383308391445580831929921814362894222513450149341701813345892589363551386978820905979416145987659501823475134179597726964174185637621653757432018584534549651212832479621580565954574916101279572749180556045801245274597426852492269592103563991366533254242554256830029213007899094677654817993873890335300557491797079608558362008339566302655802584592796839016938497825764708426837807602851539255887892622183498271085765030665303794755365408269805119632942442459986999817876106837304460710622977881097245477130148777247771594118792455260831178358598243887920712651085144433202646967291070894603568197568209624204571441776635646256220067490187764288634099385417409264074125934445312609934486473393438632719481726673379305149442319682242930083788551411685378702793263213826349463006268211695378037502930336723107913422697112217631896026077795788253319240582255817375331976801380707715235896497474306650610876775656053334462167265723269730748861859286053425431345584649814857709610135461095171629034150902311358039369732195860417337164161906201615433757854763157320826149506304758834452017717508319558543689376089238228181078358355011750836515661596053261343204559845723756834731579029772245674049796878767021055670487581787892686524033938463377961432683974140641677279085562805885457911478257999259836898986192845315047766199898789792384475461486194890697349821935906120974655127421592925498242879756790544816401004786799257793371882564877554108416366731573450630617802342022273083761734447712082629560351074157791466153180813437595260389419203097888784421650286100717087533869958391568378882407216922452937361815652827510331565481698477872475378729354025988655138555764363839761197144739873021377172915493548050204793889407916034185681566759485719210503336405672257233650259514719319805817888796234956793561152559838359339235006614614167757667144596137208608936326699031366213886199587087498587984152781354836589295846572361275003819148059442668865872944760002865880995740640173439978789671159310315461027715704874288917717755173464028361535280298386713615767933126746006569999604000296122301438506619814534763347660126280734230900344701269631406902580730434902154479576433715765642178460181521771134727866047624272164329704836998682100228040366647133113569423136954922946999770739867372737958253393947328818241469139115469867095095208340856160555822907085353795716416320778142380593017964734706371040100690684968877333200159488545376441322907194924916712498727474529457975507280760140623355207835269191619073481230888094245369782812024907005217018085723514156931944432978832917589419634362162775461252962389976838828135691504500503375864224572386857458402622586259396605506454996767506962167871955739082583625448811588511648943474703282446010858459200560404323801491627334057999079326990431794736958073579528009340793042694650128504424232807976545295045266979764873480984874497771405495273533107395902566613179487946140119354640654301609960080939285860512331031737815026165006938124170988437982027489719578499696853409498629549168892650895778608279606014933454389995690952789062341750695647815190813923604768173869211647939406809247183356198307640311799319308599428999596952197822286802333901818035558883977541918183795882643052965184278504269765958987204116506672136808315225829222402264533677907692431032265605017411818762546915135984988325978409268706347083084533018562000562810152833080416700382364221215492948430972973980435189414251880903148395985345750720585472190579056993744068665419351607914763097670314359885232719087449497803196387627561887322177518599061585048995268216350228781563184096541951407066520707780070163830914150893617033321335492538488232614253612515691059107949172248820860292812655018597628691103145606801037948270695863134671854184629638478277723778953940441438840404319555421345943676740134232291884179851747663455924345761459453942797377670635956051315177526204031667979552624556065237574078239608661930517742349754922434905513396673802414966852550684640071829190803380564932875221647959013833624174461017322418277445013001547935478913868327747794364673749453199571813446414105718761038463704338935162556890290346565160678344948985714801210794750987300961149084267053825097072811325300022296982906290741971074191308299817970332103785627251200525929219382284084220353915176566357731058176763066645920460327998350877084439889867562240500319897886005042757137076020031198009054370103147884819797282679611147534137271768731637434781188925220814206943246870714254033504273290420558833962831760559629334949249209662996411457707914486167483200982362509364433907410994378333635864292846894147132717297248252312522782736504648178681593242746764035022405369648475947239080703344867340087004933745464018417344920481403288509231320808244891825970515645470357226806817928344677533738674876853110063615516308172603390072961491102889730443916151746631977650792664805272858489415397840771416537483075633321580997153495086391275920178741796547107392089509711254793084412458374819327697221808407918778656312773067867676316494726123436514577390734050279213601475292054724244205505832538442064389929048480509878411743148818032200454191124850246829219905535212682310592952125528157368924243122596904259773793266578173624334044939189069295648044626164315500230492361539960550320160013232238097040006575428410704300608394673028062832918018401911061015194847995361010693649408076267799648702386854716547839883208852423752323772766608989134547163668192427081853897706765483999581582168790577062370299399338637059730454768869778736071702851454174853557986370211319289206105849740497424045535122424897221911994922572593553608482307672420100341050179350423911804038962857085081299839373054486905582812959968086102424123571174585332263373275394576955594044400624471745810884030769683728244195469258047754814075279271418562153260463019686910441540144056937876807926958806142079795560085195390577938190046952117811612231100592193377427854109007112109115498249690403379748689673095604853949499970309065792337746265075169876159857864989383383428530790650055412946958960787843602484985865241752959057822380357812115229530625772639078706681491473786229554649545643485465623605787375265174795453340716184760452364014040767248754469273295961673551357015460304076710136306304068583214771737555427618604813706066039002009241809204433725985783545217475020161843577687905172254906575430953583925836811024205766848475210736325348657900528993896240595422875703399476494900218573767698561232973143847406787451505197990502058484532823130392493306299284496994843670866549283549294694591196516944026810947952533558926744312112022271280158249204904504934739682128194580234448816678902145286278133999187207786886240192281072781993954806937289883405710890954563664839019562931748493674826246174557641183262360672583353640308014998925605252316807866715885782009554162624782413753902890869226518963951996836601336570995242586947200583779155157338611692420881615126593374159856670635877155395700501727385904380799185129895747183879045073099706917270742824248486000250042541473418553820034940836778998617584848455004894867756277133032836273211130730825403837419230266335227903474430398716869865507545507921702688267602622706635009990843668229231679726359403397559270472783269604260280534458347681708133035640429309713294148678742573286673877866490477202179183006203334279846177706100218972786105975301969406614429631944406106467004289910545630954794797350192819510594323073246358598353754819931219774699137190559406902456065141549634371227698795624835304615093868994173592209514889963242912960587363968814618850537201893889992944398901098234573615520756256502393771503732056075757496506607053268598194184008432754221419983769732560999590092186888039186350776823499382979560676520619512466785450046485828254381282158974549239666108349142467369224080403031825218767422856556114651534559981709159641036261283908728472855962913574974532582303773792448624197670881857734074400302080969975922475987453362347374128232825172371778459534302193349201852311083147396057049250229876820917275615362239942426285153486612983331095333718976802599761478580516579956731172842797407585529057395865503567101062958709572215650639379072085067838255117986279907873917330007940845229413518753010460109365862805867874386953782127933758769131074376853290453681269109815393714154868356379084574126067321090475864692979086954263252251360704953923651434048510196132963234492729548148742271212053158236877658143058137987687761661595701110822003230500793662084483636354828419745854899998257646116036693208245661332319470323342112005829175575229143800347810914125170276377181390293556498838198666013544241215474992464992255428432780314184623609636138369536398804926474219205293048292674379270831199063197723719891298597865426614821206894063818262649145456727142841660354527562679907292799731502322750295167353514840636583165197982981774073907826487101154632423946662829239706589319220194373215437604349503428105364954204008561236804693618176451683711068481437387974379535098595976074562212465061787819451520876602672073390528868107505265965801980780829547766299088760877904837859820283980020989958742061970034013551843471310431098200615307090613820086883458023522679247629307501756541723584247723108768524667844666437310685112123477162526471151915388955735823348917996772474107938361737501245309694251570936101959630506250426523204241170845593109219467110530093888068993070520938365521776104064771553771744070779588319786207370403248495308493767354242356376080508004016966966663339847659299721808437321688553279409832841691348740895250579212127318594805478559385429258396387186837043527179855671322596303243174029852949144782133909339121687792970091533285362948502711492736796868013951258331796551370217816542761583616660571533926669214454111806881981926164438749646713136243721597280662125039936771958578077250784782131809152093041973471100843091462988872756661351887572240454823254504282846119037911779800057979914522880933769159894666077095200290380107356325522834233054465054741624145724720819408681311179331391922517599259010788900970828085199086763189935117650649989034532739092301480320296376065005810604205478888147203872231483573034541103763728165978393381386065642587179521837499454778139470626285460440352741835051998197386079828604976971260016752348593331186135750279261234322370496183640538691600391599860555464281397553639312149630028952875669060202550629793142614150495598551732137593638686627967694151633297177809238057251010651071327588801237950728404843109869429284611719273106619036224825347090224003408047456432487553489736132386437171890942433778984976295362926432879515867328437476479604552678250775842772337868226994951093898103664138809223279016291967532550287221571302116365288150343305279920423335258733900667760023632300608295293560725161884031140306418993618727059476859993549433913438186134261032579292218858145413866077608322938091709793704659369534336261635458283072815926406331338328229860782197852751256616605358364357123535208332514206444612382352162292689397984918944879964588778662229379702464674143999752267596854079850742013927640081692791393167748207772188049387135319888088117560564452428798171994482422054175591852391296838022903174291136829227087202743102811054181023694152124701695210589781811791184909037527758473232884091166402324508057493111017225047988563371101079508229423244383445282918742809830909042932009480411561155756534312223283178974550886503671935955667101304594273755368978176014358613198962384300114140737972480072938904620117726067005492084573987330781888630414686525955804285508791367188237755776889670242836181520108705977927635408497284891809735409452766489830584540127274519689349524693242719837935553215755545397608677979462482635683333717560904118364566793730615307921831824189709329932274422666743349273823979726721787567740177724752106517957067793602060654175205624806273134512497699200507787967362135706913393077960389553302091516304749240335816243498055828704361552811381700796493836983320720496662308638112672145520458338237575878482374109165313044583530096967331044687507718826386676439574149977739914767874374502652083595661906390740912776153689039656536841699135731719394526122177788034868831429180903488319479450066938640114555647499273806350387290523901473090036138925646054299463685983763420799195250817468336949294649061836868107331415792873621157612213669069529069839308729834649216705169203464920827045484320287748984385747686436058784600259576112986663786898599188433283352239645685407674061385629905686818522459864256748588100169010417281434061636430557634205033178650888953821026283408763719403041486226494265646128217524360707499308810571124493926675111137319117534837517002168703162853112695667195980136404328207096830444584075190588764469711783120122731650126957683885454343623399969052774471816415723334456979017889926543428238230929747315998546616690935232230226232291808313327081553546542975269095232086864183340907638762846549860741547352085589004714552890333163021180280900350444889015317759376816103705370414655673099624207845738290133696104991454422855586256530860408218071825868797370090576828200714559192183596352397164026269742777500436836985015166184702728826546360581395562318907246829088981537935123235212988200444719853902417712764000648641771906107566515468613843804042633968492408559234849421907113959582784593703570765186919261550390579304842272164134847308807815670808127078008981166208064177421616686047517509347209622609210587569347100802927236643249993106051637528542493526171297964588423575886704195188575812084365740625391533755835275473246011767109220951836629720193808934619375470312188570988302136771697002346081459365338974551837406783259876914834048592624600666917955613822088612612361572634223082646860199307071684045356791874415932014467240745232454620643480075271672800309006559177881509064823685314444966868693786217825780642881509736320670508877932627374272980194206199023228104752338546833934823711197571866066734460372127202384440202331389738048160761230287640201243367891237208198207420309386498081652922104849075674335303963622322102469292874120808306296125209373807094755568691015242029103884451673637343179202018751151964071754395481505466257882457463176003710609924448791341755839486548843185706679703531863037895898822411670267242211190453775428704721187381203312605863302777232766724634944885185298077750901191494338273379563809894160013750127714757842625590572795613503113870112305188713539598621016708303156739916196875753104223112260262573228653169480920312000329031827144670683524119689616649942505649295720188668414743748888804290182276304669001122570401550224876298452039076680409985490213019439743633148947559814239284836645839890549359625051619530630750207350934730345876274979480639517621854445065061773534065792295076168984736728243850181503459781490552220312233897570779361444769933774232836762415186468200105431695054028420912003658420558653241570259911966373803395681860934053942718327469198615930306794312278047215371614724756274260798475914224795337209792322375213738887171883377926520146380376002896700051065436009485345756920835577690574964902877322267970909105154054274900224713838685583226731712585469255120142048427888220527323303847973281730678989353249625793505240619303989961814550865505424918865445959496948141063440617938407621889631147271803282745413151556327900174383783945306976431447119060677146017116805800188654301573559657713404733744117407787229728231160587713643463049311720214596542685110029948434764723901707220768930072779382043771690333685622792062148017319604515257074468048710625350202202698080524798114349646226725394806130654349727597300244316322497950509514218031027726155561682566678375572160519922365287773966319372288212168913775983375591229533527376553436491432875714259914813280396539110966870774134385259997856775160473430605695017254944646462376813335792511368694553821679575069842623133242607632167795750929818288155158527338312633528690138174283179754912259554123605026594273103573806095604003973918521631529018062319811509541597266907930748265565095325013143799335030268367281604480792385496514968004319417964311827374278239546190477191426603657204125553034377719982813063274260073415278771673699860320022353092636988525017945904215668289779850081009691596828285849879307318152268357425278503069096446327521485736638308505462307878254852546243966480949685752196171044994133114904970215942587069859515884685607228779862261712331085034239966899658374523730518755681535488999914855759987049365483643526727701907954307746107948301149336383510304517454521765738462591799597116578600518055349365912031675902805672691580661747407607083949653627171327944012637223297020460422349396108913668257015704439992117822851166674082401474326962354762276258888816361741576170459219482864157262457168656701656273779755146391988168816872428621570247711575184803739618192290122154401959779444814937833738526991116380768885705997173761165957168963814470263323537117691662835383727446658933912115894144430888456890665108301545424726514974337194446008443459090974768237093605674346682722611867577567116661401423413302579094665748336441460831922759313627678135403249222592942508887314192521436949535223541183872868566991751712925527123484860693865840886580470238768679120014869332478359934795927316035150093876670025246529668551263588012289960619687926629849153269809749113690042423668842813953743271147713122618186486957782052018443937561880205832307438017304037519546165637204697155046934804761111574539947787259921918817297131720713311046393295325421632438413145966695437296494868910932560807185482024906094707190606273872262972876722567926808997708751448302091788264475706486199620775684903460772421702442310176243055247326535823682048691670960704792330285972599086573236554855787635110884200401285089710537279234232845745675931008089298394044119356617647195025375307533537328619247064711361799459956503674900799741041335225753530381874632232952161400456625311395997139340846174740568620575189260406374123418711840026992168901272790430729989776757598557431159111863192914127826421490213743705528215714971023609464178767365113321550663150273610801348230370714046243998145056816689885911014858880791101706394115341461322298037453174732867458606906776743986935269869869151566251495736867481305872920943788239124350688982577380833809793187747453046345647318293793307597665833377593582022360784284101201346869590053368224961369734249258616863893085217203819980616917939715400051074993646982381164452901027663413912475364377186065488137754596657828667271953360250716930172154483079203569626022925200394122871124750081505117851875273655586543714106865697457909874141764262911690317087359841648496857528349723178449288759606900335851845887581867406979158559765558227661462765703664425413808624001637586955688596462384233254209830338566933328539971795787509516996137786569033031393829949666129429616627456796854359307683331961020422863368379196968386728754275163694726069852717956707721901687800978431712037688580166038037736823241128868810015943844646815718510983309830719232359969117178459709805692157785795413782337280203351061896343894016467830526244892423927445085810365447842919328460287659267542830135947502886990192058314609223658573250297809907646908743332688205701333509626592242447824499888300541063691609020384427723190250198587926204849873984887195730966267704818601163324560465273116186589867050311987923475724605038345745453573762289065251897698551587587127225842076462876584560109070951399487551675879261912229395558027088797751143129325785985565024535823818555221239865726960614727812958963514744019055073671972117764954746269585217444653776514621055558522883592146440391049054028727032839255051752480835144551366094984128994184641861759974179679621171490239241662212837756996906817687568355123060264167673059438869171589719554577037907787740998536821468307394837546907705935208593673598209411060919157519433843498618289006892199834444375503158699368741015415617188438187405879579746447084931141048562549884670491151113815268472620484872832474223465874777672351171185374728522435645677155632278521490395834208846984963744480552372977724192710082625154391597344616945688508819174860253024368681374354152744032199229557650120836601038647138709970228150602589623798999802624642405138990227319638808328992592718124267282456149165232444035600596013578884129831266351621116317470261483750269684422546015486118542326344049718776023276218241628499025622222805663563983266343752473521971296163667194038952562657781532628945201730302152141611341914212709159026198809172418859832050463325572152011104048297523441869090737098477858032976560824862227495479617164706556133698096271474380373448833344217702678478500685646737204241388902808742290090685681944471508243503751744417309817180127753147509535780889759031806501097016517156305470838914636557352054652321654636818198209779483550531331074762483790405001718935040703837313303372827172531730315090174294098400485890637075339143355136873426924823146681875362580264632864335308064243969576260130883072674229640894637459169841792969838937047232447371430502393253052944260166364671872145500059291781463081616053844070461750117954128344433627815947373311508951776227486375711841510987726803499647660068431214755676013953748218207295749451086787389552185629521231519862576389295819578831545788699755812028390740489934935877360024757046395459361785952255120742671413864246878719300158054202426379947392855491894788876602155344993022921207972777333831289722031631951035787234333742597431900994743660530216431619949836139338920168037602499492088663634459585509713567015335509782263842216766234799526321096554248314245360589998068871441063140046529656747942788348477764334987828615897397517356393295813732319508790625739685247990939140494187209065422374623421995306309042415222071207858994263819421244777135738092971918440770678256612908314727945199426684037582517727570283488836892276407478160886904947758690542715605695583833165158688315862929598207409994121332536946741521221015201412560847126941778009731739392674141484891172933034166470563631391647438951527209324695617628425882178054294357995359769448098324150018292362300918045078506450055523250894162440988352301369376077547023722266367635960401421930790474750653255610030774198029782812911975239025303706842806952282652077035439932455202915673666853215567223438682209809807010534362939252187236601198571148849076761129948327496586347666163992070753617977840837196930586486613162713356800375321977375260630281259554576881224088432406786829435724898223962537641492087424849334033907674853379673807204294344951373004998363738682081940877007804419085159294526320709374152569993435467736397727977985318961919836409341788874023431198707462221163978115287422937942689245527794064649902300790649251591596136751417173775499199123637546159630120124655741222581297713576653445292741805668137948864262102928537006521983546366439418228078550769098152537628648244488732667736601213081973185848527728707096856078230546072975223922786810564515114554701215732849409244123051541049895350794195625261597686406181482857532521542721300663574452113424801060569092978160798285174375034507152861765224129106364668581349198527190018587349057612469506274154790623967556170621234902064809361054180796236221253925699846446666703086953491151295370430258106002254337701127030226575138638274309774915375271814726016477468277989708527124528866272120102678554879611983143528078653361620859927931954249316968755177574011974905735972536923751995891014310960158315396716950105981633276302433094998594515559723346036005622375796868947718502945813170757431014717128983126586247709992070815989205051945009450218042581941421046778713391304710854904644035238077938599066447740691130388947310903355283023394504364793881943367024581722253334573183683053331658993307694092369809682350994786652667561152650104428310137305282460386836452517534059227677957862841405829011690148378656726310195669736204000625159988988702783608885223092096562617684044362663338825552318863599957859073587043220487792620831580428826823592539881188714355517188283462195408627510788791445719508122386138654209370927945848860106559434682330879731608878164990515481495332851677374372866867180913298062566934599130932150457417035460955204220990124402124067993588553124563984281445129397425757524459648174161964540853619454392382745283400293067537469921079692192082852376723329568728095242345442102690608774052537054611423585483788883327953443269657629051490615780069984000889161657583248854249225097599580311698370820673296302919553953947649346037990530250093278381252310860819586068156116960526959211085748881346582311805962911567568018670875057618193875173270642440916414337050913824603179229266855383617293927029753637028621482458294485622869930446331713873446485374891575792851569575140865471617414149028661224621597781032732745983606808137357559544263398803549666434560380896115198878277156985540695329531654877047784568139270718398036088215942033834143138850473227269023917542945996799254651630238552084900103421913908738315375577419002044886141792119335839739839258163479992777331472014962648540978531357215161219924380394052020048521599184959920397682295460372305073458693959315469038667564439695012192532720121290683716823959944806798768685890275883587724232321919160476072081269955326864014036516930138667983415918272178168512804123367245209033644846309573773853786928836252253370407423060262667200532238603987646564855088407047763177186954655694865122147373494115785233981865492729676925278651555422225393267754023575909616738658707846375243460417875588486444619519689597132892932052156634715648845794970960853509836936191260352186713762492618636484397513063437528855929768603300101403582433625787553346433139242889607862717345678234420948738791481136415379384006267895873127961457794982239819260340743113432577799313540347058042379392299295849387670802124205935031965680395828803797399095702873164697018380825717250730363828523053438308189776462268234342817212712769501607744849455106006526970388273146005184080364290300100388400960240732255794869810483551789879793518250417267942360609000283514716708977368048612636160653363602668719505179961641792965610075938677661551607016184411132007079256399147279601245344832809120154291430945406478052177691858732284662817720871245676926363453640208760946531490563697240116085482297742688521635829501318177515529069015230530896545342255385752421424007856201878504735283932512372358861324181237729988099818381955874959891686399642320958628590025060037603559683221951532918125046350717548526371365831238055239640777717233281803815218495025190738478927622396476087881290245255453842866781976439745151830803106182007991327529782989187161320967160664125330046632062076056966407827740980437372672393676037566694926508375469303671391002675676916004777969613556462997802970600865997338305370439155145531742449233683123476696308237726055583877245939234432870925839496781594478686505011847131589805026228187682489217500125734984028281062538370959816063052219804901286566234993809907099155385127332460044205642868729526940114647857347149819430776782868527754829255052273453667007917605064880707897991960711989374711770265510281101193536406529980324616031574851240402807756459241044779761051694163159561453467100148730215509691298533661756119772477901352770919019364460272099364352377341302499825723863215136835490649241483058973661290681613308619210262809093213441664811689754573076810331122191461078550680058502136328928446089934033498279503260692677764215674569557645516549247484901604175403872911105787821864623003332638893306827866680927445132729886090932644823130059678105762709367152224139241445046146243553411497189198799828214118297210578436996219079792630766418713016496322457225748067182570305837143254480558864475021248738136345061485835214946080452066977611154872374956957378291195979481739380835659658068241698215517549722433492108113022427481745192299606479304604177148174613617288926582474932145575520101850415019831025215745520326633844811065295555535504486848817206725593817008559967723771460997222116882737368880543632336481455063763761684909055588654139802611387127859641676791365484488204898017086520012939408508773046488376273876662537655808627402657616470776345577494706951865280770884605681146080970750185203307677779802659794725875768683411603822622699662319237018897981242668097430547643771824906677184660224708492909464942184621564940248761432010398262486392816783020012106465895995556670706009483470880476940558181386472661658399422046958696926951340610319126088428239446187910651330552758930053548684851691686134676960044643531061645082922802074938087296778158994334637593451042812571799256559869279380193259897437633260324364980414673612932491518869413012154600022150087696022654246098115673188066201296384845645471807714687961851435372994948387622699238549364091416389917198271675689789175312102852215906943351664337971082944681712519475000918557683976053896657067453115105767318822291362783011180468232474570892173904957758003540676475163290987936069619645471766969794868824653323347632971328535031394860454477624175088206030475930917250531496700841071347900884021029839825298921844435829874037718377140360638241442279070195860960922956212934457869055950835882342997892054630740898970681483440346286140415566613273541881761211209720180252673760579486761704140187792160211815740243092257397856425397873323107808930020020843277174511318808349847921690023140668659820233704231352186505114722814683284388847041549946950464171923604326132432673031983211287830079322932086942097745611503933509979775485858696596186224594263840045361110221853965713729222981330511394933297192302029855029733461861185301567743057757468311419715224803260339345168373315640772402461686269705461448051090562116138396751047684359434260136887950664235872186971118907483392117116480187528485021936123068495679587664177605024368873964042503566769751740306922766080769531920030240151490913103123380810184340399010928997430922186276337196309081599536369647212575758291885790729842830777973103029682120818453680826221511455496104716336230522428557595247527557276641007887340807481809319719473990659540579795188709978805725735897554049932687667562680321300261413328243535627621136707227735161928161819885203252363916413882856562436359075275070178473964720440525788504127978493427156364803940731723624013613496766982165375631375493563401965149540437537792598890393580749930431342037463773520037229476182759278924820292962989561947088024810577509637648581833253157312131781020535191685781538496631113561358081713111824449360595330575791610174853545362489929479177618832555588439905302368452134575645716648973870931308146695110019832294922578889126510776768566306791248851124159135564122211782740243474509379247110330915118579042792999259168847353711847246994229434050584525750488201996168080684150066413250221918528958927222247760235758552889376065097202738647878939848720992618723453408190495947261892413352072358886135378402369498156009734584766375532973161318288262847219649116311167643304644278710760958610601547988696662979407497806257926823162654876466026526727802325311386100216754954079504238762109111324657207744865649013368431893711695572613358263005059715862243709293361819153390486035604817730676261528654764201087219311699516846889171091413731168087918963879742463556783060445755856749174543282446613609756650611877448912762759035773612088721767135757058766140912957842008152726316088757950322682230141617249503796912641222467459852174681610185460084980952161998972312122529313491827419929952965552304131463014892701237047139275762716558333456136216595611564553397361259684215826596618312045380436833798432428631547261849233930890137592437066865665803990380259115185668863284887797170621486576526738202710221654291061599252973355520625689052562106251410205589157708357069192740474733933604689066249743168438358679582005809598420770430779643677126857086006129145332976189629680970855887424339258756560932127407352284599577037653681418047827450769283361173836206137420870180201879265776605833150446033979079538386358551497421092108086066634616580693159844821098507229634606764767651629457816487651566111878037425444374134180693561742318724539983954445687805350296821435879131459469622004739434004855543067579569826221265806392956426384005786646517880082115110336333524296143446438236912544253882324937143477024426972537840594422627738020172272973928154265206808015812152897755416167831723732858988644236486535428493805049935900633849305166972849231292479326584061168624733190276055499626227848248620341295490316363890988601866517209158686701729247895958299015409347814509412893143525882468689349573093966479165775518820772133757596929242619137544349275898211913512555896955375449986418268071948167789848156215756106087876415080104711567667309336296708290093552095994351096430746813270162460817865670319632518608273889649033706509625424795508900818471476043231878223421165743705022794522291394234663106309529537518506521594876264597398448170170694620772183283836464811208971848147933800229224555931641070388365311298669647811883933492671569177363739427666853485231858092346186288172996169744497845941868805043645358784269118934749173326908080845174079661598923583470786435437416255772069931663216198185852361364743194106867788442995671775587525974539485704208897155989104267912449589933662090496765594828531429112663771733968735566419801881575194629043018448692864588282137851847719552339302693789039972206350881475779658194422600151932892717777511146785319099225079267043301468345594736244450538733173395993881980140777299024775297482384455131551333963883041996478595627354812817024979791172928435080004724513795463926243819499718586124665493155847809181242905091733344031606985337769268543965998462317352420678650889342009263573219852484627829070835104686045127850126660200447711128230919358966859234043769527811143219501757466992393972079815630754663039944144872059462468919045938729918286143684159042856764594237595455281306194479635352544744106222756275090280132515496700262513052563343533221855486298382609665728696864198686092311501532850237545052775739852085459713606962455846550866627994575770528084607593270982090060899076675580041254697167312112522660023744944061313161587181840916588731409115589313800796342947239996809687816180267645797315742774260807685774182794041880943985218175213096997288227097677033031544141718334791542765228903355869265824933589981751597354085655593455622653746349275114627909797100183443161483500268996134663072904653802715929959212045139862592789432623212244328666454221179419219932957007143284667550019962251568967910522089078395733837272114989321801365299660689390959425113964753851444020425237177664411829526057763822487680226333816396619715494514803959857026889016614809550838780921155078729469284528164624591700986421278160842280874364634035440044468358804124047541163953128488492929279870972154240994290467753050101646982693258159346491703068432055172776652208132611839649725951216448772735239839542841606572159643546101362909139903024446522849692170527294364247555834369119979039907531376415042809036318198886728562061449685935427218392293382518716978080088012221729286627288766244296871991533863469908640608922371287046884479236007786753271058188918909147598541827514336220090555664866899064051384404462853676256856438369370415397367448130687728023501984723454250430318651492287855739175516707004665139227553919933790473068321202920063208219309667040336688933997384444613317974339850474759049961346585186037887999058847795241721095112344088605593618883960435055889642547153606886631928240193883159529433987164110417382503687587382944356985141457709778841214495010436369559354258767358308793798542369544193457886680646234436560459991625188749818777612461545040484600602492253250042539042531084084065995478893847486046941706257041961116881022336344785165628077951131550066234677346694168092429286692861310943243485637848353506611020950575064606898107862812151469545036440644228478637129007208804851183714681922368186854170702842331116960040614368505679304414268384129373245508844414502529296212225401571404324368975278493510497385585997302911435858523016036531424249697578118422365386861793171309077667783151929460205036626800945378819562134636255148479551782532212045295805385808760917190827151670961402612437262672295530941461386597425946934294839497418552421371465523747541537025282032122596309535674233518297485727879132476799471292195438919468566148013671333368211143253084087749124752047479706286320910191658275200388899321463132638708465089261020623911521651341843242241472825315747772709639484938055238372549274407349855788832587764014108687517135925281439354228561063755244146997496055073528471781202553238081435868799357710259809567005730839679628124861808379144128077403900975869991498888317848984078249898717026485784128587348372814552297153504182999619419514680957939542942979740582897723426129344939283517813793229218639482636091164997115090291123264354203670605409939543649919466514054129538843815447417330892208186504885491963077113328746269300630803524511291309591789618260372228083623343284998840703533383297785366070973074074501105981338526431440657527100046801482325025447308858689649360753129289482647341221304885350401909124572353577413145625111758841805750919949014652567432909864010354687884358997118452980449639092828886275015210606802956218270309883694291552710676844497558178885029570096346314480293736043725839326831148941540380277915639306951553611410203376753184813538223096990667995512708853814035830589832510754343256815345049803866095522123006574800135088641039217944250737428332949989641143766900503824763545805583386858622521535181096784759422322970710742169704984593595405382800299395836073555402209824268886370395543461057210063829054204001045587945627979485901467107281223738478859194353078696153733195235632677572634918355917619106460941850203667956388109847857159931491118184471972800259515865519048609947859403772245084387117846916152826530699728147480455748260286048675401321657300260376452468136459993761965522461109933022808428159659800178217939513352099302880033862806226871945293409045749219914214247857742649863151852292741999312593968214885191199766172850653112267135531616481790117982714563103355201947238841373827280602292394161755782704617778194525786652074782728108685850350286241935792355804598572045909910983301638891792113638602045140821849157349384363511709443650113202673317437043895980436936936342669746494303761110463422991111131523161989427319366705613533628175390417745528132183158516993020670025095642375698025107154735188906884528693183323621588251668969713308387362740531708279878869078658385300949645912497188130426932008050818109130954495640107550660658171017830517855230360741788853033427974995215798135542610403514747321892098205721358570640504528751611730103287964835725844806449489872160003621032281146210364823288251723233217624192746227423858114172683376003053391385580030429705008458448662437412602391643349111953398363405914493438649301686773720839809772749823502225045531269784705853463198137311560719990429554733887295644078258721591555456180081017357342148455232689459630273400649477833403584220976655240917663910148553868853060587871439911937133289985302438774035265226847580774313993718914412016973467236482474625152579773739319726667278001540737450377573364611869483747091358396813548237222252447409090148960217564312758489543349099851650436327186759579631765826938783295894946664103340167568464789992992812544935316753664948078213395937410194937537501873530890226674730624553051046157158302947750590500253493872357267377498565810756721300094780777765433235261462667361672751603256500997778812337374112808444458070384399096653211560190592541606150646193868952223351942430538036730789889381533026163384909957519709341130094078484687205478109760019107981010002297663393683999341224860633094298535668273400725691689134516622922868521190816750698383008801995602221934223158626158333513161581049888937732681079154736765204798235175712239319966591102604317670827398076635444771682662048401735399314233265188105054005629788033901113687995949361150590751023075633572754259762713195385424969567252448278304303999869371929529526872126772489696150078509925281679565111843760082150687496087951787003285350303910012926085941766710963356537336833725058906587761874730670436887359283153411417815530937411966491088752443675974868598855950154113418740431240097883221275690436560781230285637800749858921864908905794620416624396513627337502373650273637888566746126616640457766152144855056792367495478705759212707283893258994428084236413522970547381605732915859449688196232155630792898175002211792803745738154981997487366267577983227753464569876254394696920579558811563532424241986960904693644811649278685346267340941177269041206173526660694182064888824676472257905659257854877501387454145841280041692223212991246343813117531161164142948844924512401736020133716090960374876311899672524865046437827730418755924137268787380439158447983528590731430771175818485944584954990362878190256220237248182498790364673075191041889146753283939089323773565920777561702032974637130975038977760026381185589323060661922341850607520278430041729687395076838186198882114058503852555141728680924500274128205359786673134477077425464403074053444983068110970823296087350317764583245700176092629028914128610559405554951647712429669772235985334579057758454710754426606067241512850622512495386463102754902024071583291116405982936792885693980859910521741142252554478359353002160911277263366382757870467233483447251271373831993698038231806081982653722099940775749462034002443199955553728297989487567439237189575602504626872308483950828574909404158491711703271172725777019821615749916471458593003432140197485928699733602971587328485957108169008037976582572794366834507126752317329138184450462450533133011520476304178902887588811860453777696798033221409298001245595482556983819390776816714746941333489040752721589753699333564486143354314384095217714306713380724017023954816016354141444937805467602840726262154462677058393619769189703980363292906465459459293199452087898764959647517418473409284230593129765449214022074402137694765372224627583277410745745785930850784909287068745452903291884424453725448820499091567818577817117073960444327199210168663534840424032157135694166430199357917751834922125510077275370560027911418205712438244241234603119284335297819153563832275527746746719392421037795597103021920812992571239287662616685056278797415059301854079480999263820264416977849510212120315521532284875235452407228875091272222070413649689042710891814717222195649530521135504399226079616770590546152800834275947596966704535580694068119856261586439606830481049667275599185406323478668043315880743701904369004234110163916801185269499893529991147188973457333143580456456743065446984808330091261412854907293250640568514026734099482423576401374813866294400206927995974490377237385951029043321529506864087717373466577212928835392127751085595261243045684724010293156325092404547463794430681700049473871474965028554967713339845542836117656524867552524662485458134562099804168287911062881765802471569129319005166816314617667296130067723505965233592748997750234326946317757896372044122559951443683455584509245392670444864786613117801499729194337438240744834297104379068275453618638295502297289875462981449665747376840695696878462094708184288737931488002115894576094980610019993957999484727119134932665362750307845040280527484709068185564551031996448292968060898542182710865153016098242684699992618349739403420993143618069055201159825952778606748925256393956847711309412718759357665121523298366722061731784148376025645566278155896688439168420076352404233567344019858336445179440936918336300519317057642523598797767804171277309014847243406546513071337999514949909284985279768138539910507738532048845823597786256515002885180069233565047887462068974968174602893710888745149805448276607662871109527141575095685380843041891205483680142161350611366773057584388189515045883840089290457144643534422041708837921153825151528567102716381571832780434241076640619088464861859021847600905885208522292571271322581103480935964384212253576056427814328710955322467661494895312965613825371055592891239133865475824644296413419639401947196338650171522551884495421324737664844379083784916537736050049765475832406517465849228364806208758751532791979981080739454445433473195597082779994217145183977377560063170964971433307459716625380317491200571772032412914004714173109249979794238566965582021734447068764976629997244728099223954675860965744980775010995939943445912342930217373320878796919456612951996788360779655759052265623011287844503292491446193427313039064577734371219492611189932943235472422828971421453793147597352127360728173447919821212460360332700802582485540933103700012537338537501509206966110627957092987770537276222025585734336981622198278929591294726857684021109707788027085114259687603354228253882045059868419692811092240626143637504636017258406120484724220728292141524746002670787202683260727630003966083693257371227553366315477090303540376730062605951089506450866911021977209963869795140774309699213188214629510161569561719517212526165636214279291717608537330964080804513015473885629129123683407464586222041752476224188012573513747672929975776977164035260537276391253296008053516095732592608539680873834872550119882577235357125242601862566760819040360106658236503517780148737839656492385885246690378566416693292110184975912716351564088914538898116390944326397437623948343889646642294973438515843074243478861569154441746002398091319867369451563694337819836943485007563226606724370686883702391906499450444048088500563448340011056202660782796043353644630981746576085744031685406732981756542437994074172751276454688952445720340143563776369513271393051941206316898802245057438304596801829330674403920327070428805273397008867345311862736410133122152575778513719787494212675133269489189210708131502885169765906524334216307975337957836671436089987383315977580095989358301732695262557491581344260784202668787540442540323530533912105957419587206189282898978339589771111434824092313893330528697522914878517682062840405576548378511000145845170101202589731936219049064915670053669652950991621258527535488504362536590446453188830103812430759532920802817940230666291175634657285715112605813844742710975150098262198119601342549454845370317599720054756148833152469072072907716633427481984145039745026991176502190861797528125507259220737104214745176969371163376999748427962955810300136652234029107810039148503116900443509330033722936217854781322404024160801092101863667467104373419446569418728096220855165880378636419234690000868049191828677717794029187131229321335267417222859680199003641608828729388903725500331768113529314653132270892065432018001986678292389344598100100242576132617297496349296450841880965923070700354539824720651345612629088319042188946160748149699281831043379608618020491524156841092446370194353937007657963445583478517177731412325627647201200927349396004358763506574831763779218235037341093589715981744323159152915889485947764476080490452156215623205369842789184444119153600713430304445041516374637886820671553483995564377555125508487314313698677285238074790101986551103348422529147835500477458720941828967008859473021654940214319895818501210270743137765819465824578337878230161706310595542937231084111720333616570924147181774895071775736324941664987550041770841927684855938965427666792980468370736766443771566780434405415170606623146163861347356915882499216849352504987395768917165930791403830106223500322869775612158524998183063249112651606706056770464611006332138141065906255258052853572858763925814862425168038005161449711071785881292271881722769289663987022422412323561470166841086595859683716021719849411953864109463468665231366781123797684528300324058563298590220281209030280905286405887968093499248867145883702201096816054903170743687695892906736667749866769396174232474215505818705567644621534328384119007849090796078733372384734419624886482578667049741929833381247320386008210024670410574744008313598435848626292367876602348645296283677596718550643653758378858640798094067876068068414866373591130665656679285973543030385976469275971886160085424287317032445495558429054133265019928952650390503264310644085275647805054527493692630380333756206003769251369457734781134417598982916618395082129118741605393937948350923379328425485948436989693547261041006175015959688720385266792877546064696958012734092400724548832347084193291493336689718691086914212781067142848040631340263175769137980843379741073568210404099197817601474338164553166854726584747237296009523730799410575023788879613620259463144546885958287284857012730916573133797637881151900786305508091711684781826165693227641967751395215726264850475573209276253604292900012843011722450593654421823026934237564605456308232643264005738793173397690122021261169304896855266299846339631111169929157890117919339397911339512174331307796061167872027003478397444012493729043824065819168730371182062193975365817720724069395023971424301366099990180167400981651511462943333472671366620888116398668543660663609333089687128107986657884730169879465221759247924069427985182220710935800418113918909842969604847769434499823865422537411840449405405342504158010425048647015297086600070375019092362879376022093578770858064789601484760712007270048035142532900602898831075024161493396707933752526526713442303776959705038291008755930533440628179515389368925216466642185906514637854096073810519250333108379742524008250249810158673573953864099422702401256710858165621300862512656509700048224019748527590417555220479852044362789410944245863696720799693105374669007171802182135318867123040214017224265232226361445789047297729632415860327934825288557385667395276912864099863443780422372927325430960170289975816797052953272356074059742936369196090183671599255956168149162021239173886739773667292202693574947273748097282597722008383550747798108230870947593395775683220536421960821877336223079254151925787981872960760765928593828362680682487147372942721878343252640822048651897986177542814654943844839737101518683315277132420588931352332485560530539821877759126789491647856322426070226993296419587506536323275242022807949385143876832377423229437740799292057662146787535500219740528006040506403692354332060977534634536153628066061210103018243132775691933154019201719771093108086810591080163288801689970114799359697472325807797333805054444398869616501259393230866733061913588849361140263750769934782127454792477400466557493925120909548654436255526725710914211530247506641550205047571120705611325315847513607120681184675924325831604603832159171116220954015461209583313270404026561360319566967070974826773805172112088302298557730478072500810708909084124716349900935826010643169042190350123841713892147245764536936559267670373707816868717041521359038058717983939024357617668984125005778842073636851219845362612319570977279227371848446250886107871078761606370329671129597107685944216715536704086726632703336195495770352626557128274890234083899163869068335784425611071305036405018869780831491886609957103533996479023413181833798920149979213350688139339979118915394289393775812081856198602164688110808603346393211719362162932406748958793435109419052413773087896880478376322777935522031388882005289533970167202738781682049788120073779213167271337663700754340898223139835783197547634525860240070271062078025293944716673205196169615650719688258661803890992757659508523179979326737028018007293280489945997576434919795806772222174595673281096711548210760605952604305437404086038380242142838914881770053825355697768570757592028064883697995126416585575181230304011156733807695440259439953891114058032206273186009774743333415410223004863263668722921715377035025825508491804897923768310962826757770174781650747639382042630094303599703520058935754389548995708525815263266551173181469340457847651740760386869079500336110194814201240332762351081197070348087929615564160426485884172423239495845882719448825115220186420820417009220261785840106256403552848477612988111741171713538338800082308358562375509893819130082455642999177553207413314806990201010550570303555007793367015710628084506810529430083744106860368559488981384229090385937932703805252077196372575084729266155629638333833076344090286794962993013168185904748712356211059631421261257571827091488299815938691253928702573421079898346300520228998585601635449175808468267630485466970201238001521645153603485953073287184472465205808551053885589758752165333112647347329911235715467788391938838612682918561311565941979507580048192554080840814432557967562483051602379533245270050850998715859010793135473671714010058778806209598441743621724223346002378240653846913228967747664106749021559114110885106566817429651519917470534870010682597935918086811968686618403806020536909243231870899982439902413530322181824484107014346161687763937272004553569651398126497595702073439551593738135711374335501537908432412903073500402925032472245262636879700210909494918300850853460209486810349628236028652624819906463519672121121286142537588843656278727333777882705615935142284693487807074406001409795567601484572639341014679412740226298292549758373264425327901398065197642766588120493601177854063147085487353017951669950418743852301522432615288350131102507726549719993916990308345361983049423179610986770839448923376875504963221816707305406351055209236667674806038033893506082296531388875071393532287521695349577166178616293904513386795801542448029552734712501142514779595895408622623776927370273184616779684884111929256017020527539790624312671451238645390535362182292523652098684956407019175716781840965797316336724113606486044083624734608134799589249293847522785344703547386955696635633009914433858867627879375701324849607588917574704824293073475108684747134736833707345256124430094545670371365915271366706942626325165923827965589991548082897950014098829930363229605791019223315039186515737584265963758379522622807099095558241877950974224944848280451933511445789247292185927593263918437958125438640006226355732092018467544263997471458108621892303518436353209809782911801620651297399126757064031505511072894412788278046990037911951430707613873471788070178298847043627425187205039569099290691789727630058375580110517696649507526582539757846631977928063379080709757799204453010892427405410194083830591398607202608122543821734654845394766680953074790554635041057606340015785975211568776756193993349787933572293499623523992318135417460629365221635056741630329919981660242640486503582385658651377492134200630307837851919036548528695963162997378618861614958101764326138128182113759681986990726648110546190727112129302591083647614765167736135161589854793958535011908798591742497711303003916274221735463352810990258394239461345694346204155925540601953395305260714537403712335134980088156605153273021780901062591309575082375796384014402492693806881630824496488632725963166979361131219102536119888798513697628101774203213567347241917744905105727388844171830254520656878412797451006899733185896537100584289849874506691371432454706079970147750973392571905935292299583724088784339143288320099010025418327392441553355774324874139363759994654888650539633747273880256886518494888365502737512213046910793415957016199464876581191372078767340281962189080903065265615370346053574253973667691619239334837235071291253033004306557965080372075880059561336054389840557818226038786800920442945543703170360212153697149507070706869462521213031856294046823696537231606366148720940133483974131536799394995307246660522580914185656201834934519928995680348796534649377728395313328357075703752941230253798548106224766516963150370528981106705970532784775055623590546901631195303397433666970097418676753957641348666358613886058483706057217776590891394547651974079515142197805616470634996511523315389719038369753987373084539393098887519317371507594561752541621519622135954015856385211319858008423418412585623565576936803107251072096093976576920757492056721313883544605704764751917801505770756465150733029267230840721848135137563440700282545322762786609270808770333260877084739164982502526342633374333390210087956486391624147131704087209663491096575894384352552868077942932862150600415447757420394353777266990774831625675489521552323939849407568427922140476159906689834015321694124825163915070104405337894037485724557398303982836359915566618785375451128072389908826122445332305347041759112143185660807855698312459556090241481746393492409671057568153833610944787751807925309595437673269671510450572240713973337811419656371891845278680392213651605060484317844450085871499085164097588480044951121261789472009453928453448255479603585083040050651996254621925024103605663000719845783296049215446000086504230010054251709690946923647203788804711209239961754242636150240673366684584921953883648960298620939878509414697070910919391037055878676807649011659618059762642162803371693024928757824085188965499822291186357541172228027849848900408136593360329039803422629143247826760225920368525932775282642558908735454273489131409094155609633770702770596256722002825747726708596852378449029643623284797534291649616644473188889423408616794443208579969489434686476034536317891237458858051361613218008917196845447244199343532925039730770625850344760352444591507956383552444081195235120792670812820659434797901012547362410418268547163343600642047743422325184658955861381722474959218905149525314271822191686704994053126711592340697603848688947886055544694068880765136428318143181970947534814773274654800773082238969969227441607044392947481848534207620761146646833956524957943732153291195198896339843736727986907402927583772925458695605450017791771600257630652809769220203178163423488094517306312866832052553148456247911355177856371495932244632093624373652803075037024375888439638958818001720110233356592672819273689207147259318727839100952655172849450150486554071079046334306122385579578144558444130352185049501765712071061330217639232212512319929369877762490513118981664962403136568991505706647732802866594744519693814385710222950522676897106969557298275578066621369806434905282200887866928817427616391675603508858892755973521833155039039208176023296148705474440059674264085562065795440797486959575342204434274199074027809693635771015233927099908354631018691580121305050023548919909825488551542601774655083062534511339891004786030932756792686952303606056944752492034097958007552061051465059867723112345721685718899343458715399242028195160680422855386012401581269392344104450370301689913471850629670386753042320313715169352225533897301029785559222707356876596935073845395551014227008397203904087330884352766077556121375667558416099696866246269844313497142114596161880690001471417834582358251439546466678790213138150519805500740601401870314249157221061513061603199123654345250765361249096380191429764623084678011010734576260478514053658970695465750834317511680091956670096798848489120933775952622901474652241096916857616926430886630686087106564708717907838071458995772486929599931886941872606848376354148344639265704576985291493887867762449998728901649945561177585413746459002682727532959039297851939179601648311096774749508488687023104007588637666114781570667563017724308722564242516093663983483153786044975701927528239450221286177308133560407865392460266477792040742071013920494283604016075138345794902709043117589082221902002982005231661653223328030840972431157522286333533082184307605533971880182107577584460273044882031076518270894337152081771785336861890732048271244681547347037513927903430523245164424671809000636590405727719167588652776316150626867174820472358081151988974389031397577410292132721790172530011473216693139118028192704971049387652284460668991527305549450107189762572192640713100064245929989635825379355863675295634059259000516661517986817968484761320179280396362529463466004834270074724801348932358695778516951090447670625508656378404428535914506291712471008405852928183655930732408493144004644450239867935789859017003905087246344392489929176894068344373853832132037978651421949593122651591038367182878357955812551304882914621274397481970872584104471010982645547497196794066656651856828986765371712402022387228930740973351428471463575936393975910361635870396438415453296832801406213044375926259125706916684499759295121787563825792040170779112245859462243796160960369554517550442251173227681293883862882151454889538040496063084226353764064371860204242447897291098023880989329078825306182546862060304491395772821659253639443769325646634844411503448649414525901722099493832130082898850908753863994045840578157970738628431239137550088159263181620494362937132917324712018623757981659299670586657337891976356636691114081175344005710502027994696306854024706175066763225701861981236444151933979209186076328201805953896055258705913104324414361010725060277460273138137406639436668510606584423369792721896447065339379870830861345575444721160197890529189577764049580534406987490612719579785643502707920939210772466998135572061210848238484456929300692698708533184335953714973739231944338416515221306402536547720339821922751914122573681471355091565969972645879467550519097737969412262173108620062883861743851737299253477689034408696376831850305646126490980786251931638706044213943453409508677707522543304168797320161229422152645740817804376485160319184222367086689478930380949511015556700141788496860819285260054686317132073768589562166208468097759323606841465286910221142013690729466102259495046476749465811708825692105164582972779551775511889364889380571459191539534668216101112276030763489227480860505669540504598967848813006974299488508508608229143249468799041366021353077181025442438532479143995069297215350650105210572252416425809649161535067862873877505063053172083365824850502434448103924961926854241082727906884556873526149645175139676126300527866812276222057481653758586854804681384627273990988255103043677210978575281142239590193203503998763595038845991886104848184038500777757798385596484297929028285385693890733951859581925987949887166319228944263646723659665757337499522847034858091425510949963719162041778239972804448227602119002912260462620111929364429346416523320567531111188390671973149696272723571129968282285861574233984178449482998402844447700900799716954788671937079062397577398750626857912386764726758344602537045836331156007877877977524008100643072338697583855421009066604242485315131450003840552671138191987304151448018715512331394668249323620431508538836945779473217864604641000805179963376284831878848759925106490706663311515210077149080601539693436856657577617717977481635065800527126371786715525801384332798953043615756533939163700783558290047299479445807789164390167263413220301151224564018008796079029490823394623362190192952181614591271549640671727211350737300624594884325018686624421959925975299747593104832824111619720613379459464508740327924287224762070314180685151214604845315522975400803095166789947459885261335933695137027523457773641665850988237969473197722716876954365523519040125545129341367579577941513120107313378042872879847434968817739612580690309092044006552246439761140220458270786832885699589653847302663496423649165385912662581116027746952793807623104102045012169915629319995812239272822428564045948593235858361120708962050572593798832912656927637716511126900574465248879411269801407596533639817994014553891308705235397402582622205828299766028030228665893549355405364908823332022635797914778947097823583095438319961529447113963757887497577755327969717568688982179916700617191926332038049916513751082870005726814015816948344281315193788434266263880063425881465751704905008282155272929980649917833150065150436492926436188710907513281170606698818906562091850246380391902411175149095675320104699875252771787062411846152939794118762596815957979131693151747888984302497271747562606446083969983408802290065296106757455398358792293620122476416144491639388673167327969010426411968483073749038587653852484679863861067652661672346729505653702312731559185577212273519655147566428199848893255966170661073730680425913216869186569430217730542893858952453399411207549960030948357019340299511101670489892993432603181271064894801543124400219867837718419787086897642724424091800810425204697790290633800756585340765069784002945679875381567896192886258541770378560782183269096595896244450952829941090142650342708188309973071793319371641435253285163186514953010522840663447779475493575025524346899961009057375979608267587567559496129764898285868924604877379730981613245605007100703262041123272496271530996138082003395289229619741775253403244925568761463429541672591841304373661376764036821900950669718618646380138315390483400737788756493938283273421970558837798608845720951725011254056906297043196641957324489067944194918875442410704757559951382773912197196691008941047397288668279059141075244707780134532724723509367934686502409288320217307214811922015153763103150039627302827170925556346181699125737016923615688163735321936401635941068124385832836641432901327583030860556882771072124935387532590715978444814172154664430272973110825478766619018400790503930100075683395478602740869695893462994219004031429009435539496438095051584871684007941684812460719519366447278924902536721641028662125193721418738282798749430590469706763499684905195410198010628695531127893571431609089002943309801832020843482495009752499979756694836051921554375722356926969836478240119770530734612403536985265504668458851906215209591208252018493318047987887431994737495408216999343451882867665777093486293869288914818659790933304136080170093378924894590717203160211404561808440743101719480939838730689720147950045969191815295942559103454383943201922867838630942785804145802800682814454322220875220388333321253292856413823954999711118776201730553680007214309478422333763766585180150106561223978588300038738462754073156880951651218688226140013932965414661318402871172047580682394995224679371355858983882293886650510836535395529544065281002396764716596390096055586593432643925377042921304592809896449563527328044329465064778703584376391219838988594167707874251501370072197856199552549428429632434145485124476009873412086425807946337964480062439418339533906708331465763898511743581951860221876572526553737354893190001844096019836371473178341358370609972888669434814690457053890404153545072878200062892467871920113547252351674697642534643968659621300748757691284798841545313976600954445547573001060027589388593027888525952813614194159054726417831839898005914895011474109819667997513325027357553754410033548191896639381688561139490445224480716735117855165980063718162477844430572902822070055085965921587253171360439168468200481963651749451448085554953242600450785782683049633941353661309619497331408667452237302823831037281539801219960348109005153264205996272910571913927967364923534920021696545953010052127711313125133649845793887645573412159444841498304569281366872810055333592654863382903442004438188721641681959368411998981255330319290305834746429630705506549845430035730503513546636670015776403313061012773548389060598587198816346452962151585113953410678099446141818927369481994701713781117203731116825040850141126331865390217487760301170937142860948098162100924597092763669810828255722664940682874207496371688027881309316141527315551287722016071664596953789046313800966441512660660823421942872985754911496072672280094726938373035970674732868265394715206651887210312423623604027290157488916848020766654044812792137735860169843874952067477486652192313054974338314943975463000505383963733974414801076932590971403442452859887135031275264770465761633847727166050163695806380750193169941493125451861416903245823091287657188836268858508573725619518296573119449266022327370565078757603462356436739430384415776817033285213335572498048391542862156969737586745268348622346211161357233092331060180824238160575468152090339738891590509295712266680767121351100069397162994939223578464642686298987433281940961136136896741431500521935476093677688084533605926063319106497693767546860258354365423833704634906096055347432185351134392494629659493564213699191516448647087644739467743352603020034335568205006965350329586405280350464731603656460783781461943501034182081788807663444336970556871395072787728594797493252273329692400101240188003147540170589792046839618429466278101092827388713783764662956380030234639757775930878382014876985260221169055914804954552276942043428420335131804002983948945645741325380303878876593674126355944787966652478611873366058665114602179313607523879982845724322526307924842990892701883657352091042660460443926020589665254520320750486006725039954978031611088587023069874789853348132956138939511393004874308387899019085704343072637223185307210617965442549521200933046132942443205860992812966533877125851312131656376658144964558760229073312918290174733779482216620537647502362377738253303209700280261265625740937696237447458365083879599889228971197524552656122145465025650630888608539319250968686567918374838429591521235949383006703863053527749575032681482657220604699901509537126913132202848787024781183293566067977846989547368791025241579452714548620454925786977394861569629694852496539476486847929510831603224629064905283768290738478467769856055180314337832039585466255935406313435311575324516990409960714898707205886753751281924531474914430305272447931373963030431840562563634438672794336135091491905123826541711472022355664584259929383099297874974504069566650911994609903270363203042956982407845704944427876827349226216627041822629877585318655992901055262276278272918370970515102504602089680002065548242771473403418986004448009247045042850366261457318873764995469616655609122565749420735211321201083441922113845709734144879250264239378533417949560754804858773232338649263332739714503140176581243072616849538920071439229142003816271911515029935539839979758808262197731842043237445633060573342152901777514169690279223776333041836405319879394482902428885943285609717364638611502715227799602993881480728194683520726825484684395595271758722349612308266369087514200496323702985430322352856459048694772272698724862373858992611710885960710326911334784022629408196864744326907416709578588506477464682322376795688285020539572027313441010582802057071171550814625686481475531526583825248084907163661664366787761352483665489156646688167338969098405100096250417363782957769788780874362488346071559242980318126452915113153173982028284857006019565418171769314964400329834605723775498598610914646384496649182252908545803720305863483951710657421649614975814929851352957141204516581398658879830967514342231281522021944876889133175588217838101558827867248029173075327538896981847851617537344758333092283229036640680475718576445773187171689348865299611101746160578445384149628110437504279496695342329382620065226125155214712324244440170160235317152248181591974836619271610566231295199248518512208645904796162219154928857360797514420203677058900414991832582613904814376883673585644769705080999190292018973554968699531592222142565785511202321050306081754919965987141912629084884398935275401366609089063356954155875957231598568865856893717978341480229042685612184793451721176912453761087507478141447310884624792231392489740115038251093711479860139217020370344796968945238701941022705438340394180532067401591768730771919000743393071410634290541355988333244569727175768008474993834882665727218571268649507363574548493721923575821439276841170967022994719002854223720797455921282302036483139908204935835581875609047295417576435706212441192447441975441435080783255522163211511246920941016020853951857514568306059466223344233435503486490927575326249143411917444379982935615355001668809143182828461144390895517235850536932963277227462335878030616437043225952762375906909667554567640039913537882375697242356611434032760622779942398768591798499966335337779273171401663687932126239194544263160939520296221073624769127313969904749631111229580598924862762212372144789962977848917140079574062090412137860105598678749344178586093719000943842204150356737113159060503885634216935098337232105261678012763571767364290979047231375850908821674375619393361002454442724153734669884736774962245574304150279219722376458710429550912736591459730970276718284316786794359350382715343083418310624944345811057248830179694844826238860138904753806273545876958686712019636408737979472303114250379173552058967885278905106742046103266770239626820941909156367021284804072655309767369627494035547779060596571083734828552243043565777652915151771561506028959101480847905818599095280010431759870040594353555652493631691792995474730816965480716112644858565812902674333030789464112634234783663773809486202426813449512351795274837889599184739797633059008844610032692590410415505548182215127094805452509487855838830471793276247455558950593006134508494732798813193253685278277208609820817871282498979865484427535573668768488481689590522800108516701889689908277188523057423743707619054265809909281498683744655526468349408104366381867380652988728637651754400635825456291039924513705695528255977293791451273522544773142966889786180614720114993559705390609570646262633482243926548291553386073651115712883448875779842328029157632674007609602917183157877981677247284015043945749431454289859655977105585362515580651591530981703799636316717968387679620581758525946139612841298654501490442634014286753997089030477447581360650538154577097692785066416336699535713571552418726838751963377383318155952370003877606179635702028746039940362335114209463405028825934289662886139998300252975473241244214016390232104830576685405674032372402188797299062936200913572878466727684268267987824406589168500118815632371996629901132173880428744611947496771449178328417412183671830319928685421920078970392441391582567530512869325724557752321649929994728819186491485982363498171771700679447613131730886003201498565234001071747379994943588850497427151782682882009657768843630885958920602221929047307615439343027494055215894847341389426832121128943958450191718857501692895250825614920278116853909548536374227888657582787963691464894765847377877782442512884126230473486973887592245485939925940467441453229553218407735294506285743620550591692617774270140696800644387603977664470993197165194680654951587319636496656758515612214569140143902210994005239338472606356334267221334019188627632008315981674017221271298526205506632686574466120415249521118869009004486649516693887849697886908540734867487676333597130945374283260156580713775462285887139045477478431005026420052867667817308213687362262201307866732114872278496356594726973046191123387045688587380413906288901436430304456804132458610804446176827077393779932380129611638353991850512668236344152236116074954710801540654642270933435307175409009959840473368829203177615095939430689216260686204310498671306389562939375988181294259551257940366197385634030481436967318236549067448305109014336401434035136271216367215376046022116122153683665332153299308461903729391096560904128712511117431834253666559418934282934859422833121010422319432466967402448433053370374868957008575814957368809794631705332094913138501294376710441487956805971342977790882537040246355423730653085344220620341236214391186206136545662460114935981015331243405494913637445463181592367425571661159889659106717833378203874300729388472480517753709876441850517222110864982651881285153881873665661205464415235630674163459351535371506093902968052377101191446359870882826856101164767118731953937674031705083291035209035771981852980189834875663576492749252513177901670235252491229395401748139289170448312507287997737113367758506043646578459848046970951502298028260054431876758280628071995011523592294333803686000793197390465082480686664556857724198574889047562447824839596268823887882111276493310034709835087275733458228656636064315233848444675522013424081828983317921770877030204368911347461968590551264783104781250250157347681111771075215429985546271797730167536259693383856517528404328068919216955767913165626086899520488116541543786585126775958683932202283169854257738878830040183624303089879371459912303725923563738278070243857721375215879175919015912988170052872207125363300205716907890960775253038474621223681486677280204068645580111494760590877402254779304359253050207157191040538561783901467652709688909642073983559860712350120205794389775947659918053472719713739221243851326691335235099683185781565216523039589281832361012818475085200284749243162912236513598604907182212488554334313129680293095224067982515566651655088077655293157637031801618524408965744765834264194140871259596023844005911651964447327454978591761875693021110147901693771511775349268981072351858377175122186046861698792009292570744955491687178148335584957663519098416946771035137182122478163257613179479972008734439561442598671698931666583413578173504123307994583351217156355229305602866592224652446963238653841786437174162483012876511917668014185003527261502075381510094212057455349532639303925524046253606263420840298684458846149372684444568536534963170176524579335574209544205041526169845595595894622103065340203867133480565524123116582735964224510819459083790978927166741382031572546993972381094169728734960503175744817092629697133637678017543909030499023146860027327584774936429738799307765511022622797443624813259392326396256973650595895028492557252133267060907815565372831054845143559356825390139437197882087276776444532513431311929806535024283934625982084044576103706622122331897856875426908736842361304166601144925008056767339824927597400790328161974472088520655503520334650254418869584952890342820437957113442957963062316939619969291249696571578741599796064285367370388913013480415239080424312616577748200870088916462952935304011431109166842638891849065252538909718921252011936319291711713824467383054936220996575882710814216654041731321519573432112148858183644787883635674961380472874423758409591054626419859976929763211226467558862391303212933020932989315444401800990279602565563425247957743529294175351683513023900243574919690273629297524513013581384242118621684441788811576970369230024438867619105806291160164515914893788258333111516439069319299927424515769270852786999041634933696464495272793960672616142667888638422969242718218217180667260939903831279362653934819413670810775072266530551346493756651479122869794808327506565410638321668458655253565576196512143827852279708649450714688110299027222705046075954323849920246408387165288630710934707780514127430491255869262310551983172810190371452278544227152099238512903085989069853713584510773701480738532899538813530025479621546051939607910959945741087571199622265117872873418175282010045646308529837244775546020238964991344184185238492655120752687644549567855074016799155961577926025112792657482307322348437941165875847235359808873403133917116850493353910642781102407319970937027893180452476817227659976887499791133420933047182015711032857257750753337721695696365447928231041143645134867816851961707829937061302657951517096591868030564595915874635569482263778120024251655637916031522885894876330456183421672903523719841850094701797793960810099406318113203178941028573986392249539469320953172406565793550393732122677412285721442445913511217663036621834976559793461004261114992336836985527273716771924922680845386563226057077764349273348262561841450524074083455646990617395980186753729381782625296825686936592018335774706601336278711227257858455255277735034807821991995977048073024116367078909257083802268498605536151463890247085410733957588215954553658548403933829428949233145635043104064699239287192639771839829742573903295270500615427900126712936583010992761330439782035788744023103769698270768810097023913365541384800015678274298740923100795922864244632349534013828595201914138025740993107735231310199099626248250008968817001803123701633593904633232895463887366651933869549992707018388975298766792027401016743050338412384625459763549593761869022559819853315142113845134496094004359712709286896329184012956099874038716990377490925313937347820817588574152540037521375633547204222464129283613228042200916449744751970693764134805273534235279739221871510774771292695453291562343721753916294148124575916916137615499235861463157330196238980731443189830465158858952604782462063831322631544293009687189471067959017883463251437281974449360292634769714206158124316969203649059619172689349720022659724609055017208552699330651982679453288965117528661055577856492780649878795590872509809022388909304394740513885731666747804123789753379144510933360737386077601820213666902221975276270573169327238572137993277578326489114197210620239163841486201155534218005635937446594542116282203027909636459811467283294353351328671149587770864969246583388299174530592126974513372344616215427458144012733009769935631929452484963299443246350728777154167552114847028749150129164295813729135701024750333510730539422081882166083068902393461173752591594796039506012165747821289259341377556406525891737528985958074387050056977728346696655964978875164490004954481959469156313314221624654513082946099062847186456171404120418611635709767212986696314062232357435427534641620628246665550112993727135246162591667933442370037746827344065880007014677140770130684758708637798479434080297748231344711026632544803195157767174874898284474663557922172329189484820522012180437298785293026253120989278523721417862419428231011594596277563093471008489539437665845861941940745267341122703311163303903340047472035009614593780025373628097884716914811407576521287519901688588556527160318943660058410236307352444689861218970599515817492705885681811953925700002140486888660538184032496906765625212185625777048706209865780475663015204011992079332270829241289302651843328325327301427066156569026599832714382534940982800627408700945685894393604899402485893341271748133318140799047716263427463943914747583627771538163548863987753652429121947518505549946412585965435491853991250953591743042849910684887428560330434951571111469941342259812545670723233210065895841431493554458018316655272435643259202867322011902113470600723482421647605925233475623410289088297984496481784079926781145662033800990955363907535916073670844709844113268276347615114841028593383860564206479203097118664231756718645590225324131705657270781095639156734290007269726647012437585965621772590579420444925830317000390562181090151961400235504057343171554956781963456424233025877509984058680693814134704400002415232045327283222944956778746070940868267506540370124658731474906313804577617252226760339657474893011767811984170642853250055826301184006717756719102452875712831110121710040042875838498558550860851233999954462017271337769754192789263862806274173057542082586531824540945719370694715350128748044858656909625845826567008429233473391835605469449915437505291934055738400208894372614863208190426402167733743630501966076129372773723009470788335829603633336034902179765105750701133143348882770797726152698543287688573372622952961736990290546862781472933152514634035143690979841833150122973717600921951192673660320055055070614735518433628816433177985425396949584467473067282928593209365777794901549990108628134303525132797926360869344023539011874526454638419921314027161320877018534074104003849295418209762147258039539892297842745727180418716059381111990194904805731388965504899784206634907550752978044289895131181746974035265490494181800511852695084139101778612737793019431386473059243083133444393328894281097526918991052438652182414304558557570622437071568112453897476950224375258967994197863837384578088307674144971882973711813567575752697598101239804242182376729140214231367820958491743624647707163108430862604704179523929970281430025851541074316100588549201728913002830287787424603674812440868463007554655868134672393916858366329354704518249691944796744168169725155585913634828218672865690517401798553984000206257852549031868677512744642060052720745086486126352698184206942699866112161886504154440681895882473162565006108178266301134422752602326636373344511017455207748549878367183660249305403521381264011157062638168557845328595209312553078947447706384513132714885491713369164642685053142635594030733292503405093497785051096472317615331555145019234533223233793002907257450889539806959512885666180212209648889650542228887070690912572850662734209404315223448991161004711743788512764624772928851380882061559749031961515859678306781962919589292139431312856335344494914631388185282536011179601330352171895208821721073379742350283774456022771107528313586870628167753630437369628181906692765606385232433848659262337772024694519838404088029776934105585285821848869389302555516023613529499288921987168934864348184972142819097314951027061096000398999229031765004842213669569794635707378720867080280431740677175471833178691694264289348229041510357295315562503285474153397849766365898617270903367154553443257120967542146251970052800453798426780054737037581418922454614723637177786780366689650387854508144573113649758195362336263179839421777223640774127121634976541185354806641243712319081366383759601032099680552505308738789496896581995082256473136598116161738083265673786311605644433236983259784833822542127715853079996251299223480289347676238450820040355866516594608843724599322321294040435765891818038388766197489844941277938936888184341191940441852038651691737607959043724927058579364539211445834527848336303308667421073815422996061686651680118645065877845543402738134358944789943186525375864011844344401348135918990114993283025217432612780627347233326022549761770299316930767289846227816796281579265610868339502733697511291229962767939814694635121828800950489271089118855851718022935999842204921647858612941790266612811999021671567280757857141654812766709356701893955090195442948430710084169559581553278757119335328037644601360438149697603315710038542219970799611405267474466989916178958442224650775939571986520223747326217305739108422354505431681552590151332716338820273456277348064567234699368186164050406566475035675306342578690715955515713843795259289189690281677619436965814448538114457636883803088785344560928219656273948279478817372576887816506738139731481350902779807030417356520996064504214328552992277622954925838940933669875291010076888811798874193781389245110060633417879585771983879808171168974759223473535389713052353768026742013382615485419677561019057369700651778290854345013208095294764645109046442789920117261530211954053724839871422932726153062337923127025945424227828624446985137174232502926293477490843623355362144802232920386477662625484729842188049475625576533751669367739764247013427642965523879466784706092720168508885945116625409178611609195879243545214994802003127056397103487156199652368147998823444500741861874752705812239109444035469367992605896009425500282850877826877053328449938770307398782355195971911700644673493433596678766742309080302052884291111120333189244922222055078641286996650876437290607135363045282311433802332819914088307669336673485878674110709212586014432719428080215903712261404118700194921006531714269437042754755836996143669269892625645708401146906573983920343869251831179975801492697111122880517886081637056137127971106459363491017523693977673955664509041355463813199740901736895828684995198566710108104072330661481015062275805083218644035302007025240055553901380106391260894979089729357417878134187798234388761892664380671511740539832994200507754607745179369140825221360165520702974388982773899656757898089531544603359789246753083266089154451004608975235625731907484279729065006249548530599643141947045305382092585746088939741870443614838419713728833474623876373643126227979375475224615693291547132047215058256411240158366818753766413161976416014057425003793815543831474287868849763392296595985827850444034424342927695911969141865056850030894285897340776594986834189501345864218462926516348038807833078616720195171413257945742672474314087187218743574858562533905314101703929438730187053162700881354999137998806977083517810567593938713145012183722634921748134603638300411377403178853750902361574900629476246187180504861802333413996374175050440228362070143427500209543763838694765864291496051087817219287267273495285102299572038605537107688648140734810392450747451769803114212114486936251465220861649780025716437992075824400105585315621891057515920877082474787508632027885126742244981894718226186784679396320763352599071952934939669416656554174956719780714139317307772536707205020307137953479829042632608974293905097089289639085727344046606609954280442067437394689737019168918717884530121127265746291241349051771991702884628242217953201656905091005679154352124031859699006520710949921509276975174850856212784502631227734318212782562772727557793047473997145410064741491127733020649279400404863230432546426453258523264807785447055155694866014763407924909845787554056381328148351953243802817323756025114837646907880094421238905749666147122688335479827069238810532611070203368169637365775843563328072913899519082493733910079841692819763836752800580293839105034542109795148784559327473592368696177934317754519024262888703510813498736696428806158213999639286447942054437154101592883988585836824944752763607164861140763517082743732632214151464620572384958660712038406917418125334928756583028130558407199222866457314491682524991715504696168281416820093851802668275958711578192104542511494873482175498944847854686673884017637299772839385307739202163811313065047966364685584822655471675588383323586222272781543877438170178202601923583592925630531481359978155646646746144605046360366146728371043150038178015131275215305872308788249002436082601261984133031850406520497361282157693276625917923890051772621520257120929800303984925553571467467606705637739666276989313266423672404415969966973447168753833729795426281310736417550318944949374074378304771591742083095845413307321783493495329520057798235310065669588753954186688707168091065285936275116746976647854963791913152270624201707144620072792381946198643746761501132857013417922641984811021488432191251027098911776417414800316729912447558078244061518758726185897947032388129419145742327718349354515855819261529039675543238556053796487601879130600772192961581746097914467672827563642665163785784856467861748032888634752897814867623140900833454909040938714347911584251405978400747019954472689552985728337872066377985666494617729267066648055444546096732590721126581008707083025975178397115784846536753794070916004761650807841347231850631656549396063684372387469039983361257547970466774559002161180589248153420490816933870147432673598195916036744638382216635983469725973382374835327181197236671434323409371870540537190116257208588402327977845560420251883383869456268316530755562778703321447218449417778817664642892249735812523256551874299544960702976601942735077963471158003449248974229706099874305493270854976592609891491497873968617076043051986229668701995716176749783171802608110310111433109359447362786219331201145856400411644690655403398800785154268908334655006536722966975472320064819264186998124444236067070802818140037048500846503494472377986710176386121502714847925918779265736955380404504868660217189116124212001514974441037423180826989197283042944092033030988015152346272733142847272852043984454246147113081142887832586562738579523855244502780678196186234578055497391048375254120372073119686907732537908076402196721001681172268681072159219278488135593350297734407535885912266453622334976340404264533937037323433596156287554827385385515219775454529953805284865605312090907076891927930662749993756683228090007643662434383630826852102571146162778365196995684585014410712403287381727796665971461683727398165239642613554151436094210693384969347785794777184485833694644092195901775356576125470466238402442044687606412074973000658110661626235531028883247375995075966207414159969910546150345837823119631942163188466341571340747124894612893100664141179248455979357761580199688700250308687627341243242442925243294640523094973110007527852163672475163408582105082102678800227188756922208125459435587024393341169325414016069971177689142096296476448109810552778859600493794168564676405857768980927302788249055682770504634923062280336385427452889428919887820853426306989539254911404531438005979795685961642812986249630169970289424564586653194915895587010736667618509785322396938846199677980744532080249381600071195679831896393364054794512926631421433988360837864454408694646673784406038305722210984920924568688138396053665458390946049384065877268012907387569606647156093712678228133507527618840923047952682916012855700552119011875987948502074482623162220376692229750202001490090170134466663596727260221256013313704384412631106021273491010321955915637279351970275466142758502264917474275487651146945084550217830763129519330444993997007047200812813824974044802589966226400855073231412390966798132717953215268660023555586139055542605320239266122955108378250420300148937433207844483118527902646510292433200037613776306680475224248679091742807851396574457525080518653864273297650010572743588954513541749531692649333266790641498206856872093281541975401840495965865045855040909058209462235700393022577427151689302409161168054634110267468314051519813642703197368764113263746151571116014410728399053102613188738788989990457441534238509638636762137482059069827578686460386256779610149046390754699546864225928029210011878854535252254168576746258554149010883447861185524742928807093044941343205067573204070327290410904222235794125623343881742947273797096288346897338315998740486642682489968224091743248103485047707828309239823491402167818261075624282752767770238129544830426071201498452474251947601346745552317475610489841615105591585843161733118432370298720925632878599104826318494668697211261056972467077941961338886132186372289844850486742013051533742560684490932764288395737199457279344244238216032240616288359587731991394106584504320313154702814523152884535278864636953342979207903888766246752832785422337827392062500835187480187755394556181358451182654392474102311664061514847192282594103941015478994814622068362832939244904897330691845048295718579054063442294894706423420885372978402352095686532576190685409688738104472115160629930825970839296873357629629341494315647366439211322068529572739671944803112117089926874507793473032128975628943215380797924899797598160341870248991377717659477071663182178393917400339106709785634943629096951172883422358509458979539740789748257356661569028248523727878999586718241021783084954938591945731403577900152536420356158119581665460619448488866570767788545758074937295930967980706650667405807351119197108224269735224117710193534742712359017235761224841577937587353252854664300655778872226815254517621587429940552217119787257882118723566589698157677199028525809084073777594107365890405741402007564033012976338618069347908190236594177760151949653127144889411358366366529253531641082971058568818217022399450966621872489187328220609918242110794225320476520149473099397243844212060974316399938484343017729503091041256643860643912872117000771356439149586213216714567859635656809168977803357964489419079099361623862871055551342429937466653025001448695848057697559986019918096740811633419679792513078560464938797792686961560757567080751085853784533080903546157329676879933235419044023505897161323830817673425870257228973338982270000998690465698874610139015250155469199479106227796367227162953675573612860236770976945038880838760286488605867422652207373616438649184180837989549706228576292821185365475623471847824208886648597594360546577571107252531982631244769614344948288430768280911636351822596091242771727089225883872842527148984413860739418143484931978683126513003415299240908028488087246676160026338803053851196237036643191318450243795223084972832526430332063154177874180936187096107484922993315928557175232419611811588631373451259262530784756103934861710747643345228299205376384298057155954878132168855898952240317977851987413689444621877358362151078879782031254275980419439507741069829521857818441473499840852448163820270737475562820072504344533047341513311647031894439155157161458416447329155127955649089072982699571726001653773366115773869939654852089963848822919998006816828773835818996292161055623158152935965365062376288862853973446103463894871531186161896700314144321524519416822083459080244458734115120446556970144828402179373673364178264300419931146501960842696612330718954845220647742721405271689768703981089219679177458497812123487006437180990269382188190578270554982940778844625609780390314843851216512141481325195969525711464969669925941282307485801534850388967579109598503655998271449705269476313311518354952761272213543647831171123729701600918061599888941273680808287015439395779828642692197894623635596573613126438128541508654130326702095362272861362421101170351369479167109951717612063951163134710505734710953538513630452569135679340395916340318229870694507730676667628557468569345427866758329639005181550389429897958604118761836093260970728112045552785798163074119125778593650346411434230594376445555966840355678820875718815150299852443969240631506225252334332113761293758980016990441743157938595339436828387376741841227584693942242978369499128792886739440976380298244387759276462032140408186160455197242938678577374979144027233685299118702012342816913908099446529097758642921770315990287580756417650825885789510453297021360407825737357200847843615342048703033953760386283361140923670313700131652180187243436541189690063338306859541649272202349820845681890703163167912135417853719640101177550832735726757621980524955423792888982375747563365123826783904159142179487523602635784236040462633260267891578690243391629339813999291572870853841936767827502854549300774460831824617514849435371425311763925431476219014675776151265818689318795278270924068396279149876831415277876952568406223920884595055339024499663212919029369912481705728478995350516646077507905969949579660954967660735963268236225925954031387616348706637257522736076136178508484417308850830427583978160578662559238949093564747883767022905248358517413369699783697348026318116558395246100714098057319602734481919178974326174561309277437572843055877651885379228327655378777369577642899097840314521797778084540955017026547094636644199606088076377743568556212930400010246858288355794062683761656442366949431977021424205820516773685833583379285479497198348345334531550795523342474141421547469735253497492692187225108858041998205673406973472712905369538562653923915110109377697388804196873331419705245197414895621763911444829147336978443638486527799332574314941980416331876778686795412514126963250806845891766003748916440760736933667527270765511070226988378320232287369276081043674356303255232633535915251210848194055463151218360743297149867207503348013165147182038855301783319322973177321564102365021081017154272027001751186742847976235180412896630732769009693701440599258597578082094716248193636563300440083540238512310926741010174776877497374013748262493998804065177451046776862166692056346687565365419981323456561190316289513595045269252366527644308320923977923111861764088988638867595372094365440464936684039843292622641112577332065009373661582950106366078687700955121777490777893537749086010824602056475854869638356951319734057869043748009554722206606444987170651663774093707745175080482475934522679187102135504519967906775735640914790423065521604187132625472187577513203598542272419326584968621154982148167579508807923848027750021649789698273835056579331523190264257121856817671051212551204693984161318126259565273407485860832222325249644794709694917807630966171470158644397862405937651156508310851038984085937994132111923775932806842570401608153583583765718731104724864007567743906552405075230753516545883504208147473795954410618194181419238082184212334424394338857771285060705444168906232532494793958072716034497830519342030296454799573626584784776336051242153172216852011737284481577943743500012961388554985803838789505608959432145510845731314089194204962607158381656489153296788862878391407008249665434501684070678661841561068808814412890348174162046108428299060415263284154456010796284393892214226773824676671578428389607539812547955037735099171016073131963408280040500445331389041264599452183941945929956571229395414429683610056393362540700658700776943595137764056057070547966304115000104382365361075453476921088562851473288596034244797419668180590788211759208161694866734587697320483704067713952487933606113095406997029795379639384020821936976863365245333486449659760090840619086487652881436619719046160016873961933705335271615975783823728844216332503503095014957028098047528748971611468646794544551992957913212316724156591761666466592178657885655890983775363618813481551226184548876745122927186124127660888401849488148997113416838538004726052629615303361044981236886305999903942167098534281039171717595120239068756081758642375179907270574212366704134292916081018969796454355814973126923968609006952550482170488353814587054447932299279952544439766802047390088013355182967862833032045587661518669222001081818453765445569711136682439638835256219148135410703262771379069147738934529036168105545418966071392419663449901616495342186264605461632111376525195838117899060733151124936869063548119511442652456467435997471360304205235250470870097728945721862256928307658529132938580705587022858833329337259702286102298078108766601915840580517253434195511142945274659813648630227788172154523246560734398376080270680300258756167859304521262345151651989650833598076090070908609407315642426042392526101316625784405849152322094689890452198415504088480272236375682338145968187923199639169795974650842919003340930605182391241677675604513890296828918956055603989355898812877120315210735223011476775760657566843643237748451527867348489903958407801971899080974677929526754430217731974267453065960151520269401847679529178868554217803822968294613280486348743200241343362665244804149795243209958315183083441662280251929295420448730193100651305236961534330420730523986096367086270084811069224412801437754150584125203663915876325285375383493202069618772021569131354268737560508457424768646878343917818858685724825844553934208384352513244566364579762772795465693088563210331297699952674922364558349813335783111851079331331591662087323010508419670233186923092678790711686867701946469727374960981138528829582854774915568244763725229337359251367767676126871318254521378594850477330594955636668745354488171244213750926675188244863304949525703211693527625884050970789460759294132654873131476558512393473603294383657426563363817665765205022309766627202300981599288714485562770841661138452441259775297376122299699047543313484137214185641992288949342473174127671472640416889623150360427452292637361372478199596339971457356966813159008529624108143835394508955174465305092757291389119176079212311600889305305552671917225400757424730828567333777121749848243190314506153637043481681877023556389718770471460173870016330895251628468084126179668100377521023593553503795233700537370468086403632509873826115522747043306417939389844427477511137794276114266187877641934106708564768624513651810582798565544677277603777598671908439842775516701854769299247136230392029924482381016029206418183698585175547456959905952286957795712875930707286331371093772679553475175500652972627880603796475998612522575823024299307388747112514422341813114885870688729239689653889842183871779064248716523015840290973578141341643892060153356202843299051002406912694589715045429151289426406548055700156929183856966386858111089248539993105503060072983871133206982735994632629695864371393496403345500277041063667883074160352216064976063992727229159505074228410168078851811288300842416217232489380721741876425703336733552923748168742964326530278853016977570014205582744162964821218737954062370702956680718613622217566371792357365608770134827051337176672297066123184238239211179355775565790564411270720351556946211297364998902845644002220610649879551561742641496569723182988162927826389446425196468624098919009190147277079021238063194987064156508245516764980241442472804860241146996983076468359627917946348619221857986205789105861018494693758243858426167390526121691640570958802871036887535783520201718674148340564914527035071737038310792365015316854658541387334104460433891121434440156360214462746609605101584771111804653018718475808389559438663767299890109490441702570656422053663131720832528343977270258097031942598284698765286594922539799367368846554898425234201956321754708504613817161285284050867025388450970626661944687998863272215568821005002593459339617121923152926515613507007240847309622273493247042639872312679997912834377554072271385564021336597265196393482793299422671590833009563786572664583926250905806884772084290370870430415801378217377387552896234371465925140703033817316047112232174794652393973178579634350223290658205203610723821633907191433789096363166940247145536761692110769536520139135443216852681227378574309723327649055905585021106468595106318848311085053311393338291562725471142414295633559553179891949147716502757619125902714126562754509861939790638206695478381843713874998025604805448598096030246384779213956861122733926620940881981804028259072487024555159926616316295813070388051155654123492969975917041823703981751564351668919835497710442229791478837560625246465976491450230759040279703488806329498454525600128836067615990551614848284584835746420168827510902502623608875709192196802211257734999757149173101030522641366019394719289176311158476353063888580664978627055506695719382858141257450078790763601977381397056306561832242594252727370834991758986009489293249422633185772904104355522278745991905263473788518141144281661383317159457898477233590112540989409481144337931912453487466526257903121880017367688066351360166229880973435198323675457092612932957272336006431646850869870342640811715964797701021136000947588207113636485341508326791879196196806863145950813756402821223253115286082018965232743283444986934249873422836536365749619110615964696664707561170837390680116483442132228870226057477442922671321733879790934419077212070590035061743009217996106391076256798997394036816436430097525897744150737142373489881127492799528612637604451031440705789923324571987876906895586371545169861578259539881559958344640884654335468908279732474978701542761471599182116839922705338960015670562567662845749246574635911875329497863233995723289834300171899275336604426574087701139916211104151240576687801202165514639054020507226141436795506583428514787664525209463077189765399219575992366394451091076794778712636391398119600320788876045795223551777214906188802476019490512200964622156283257609275815445049772065851663003315505668727176238029351598330821676597424667468436220639944941155213687291694702517302526688096482959503138286500065156973683250988784959009629777079056197532448769942275494584255601711754066607132825052110289449446716751231688255290172650600924299794581319571715360923667976695013214765045493657918156878950559638228732810214290046005772327443424289316937397079797132553041944698666935040086174425390310883430122928761246004976565998879804743652387410314067086986388830384897361347537255743531062894540839376071913696636162205064022566507804112123309844931203875817460723662771628829035501670626786996027489505498675700133549108714439252226390625129303251516254849044636258120201631883013644056259476029867542286544949546426814195857581303377275169822789607764664064577770891597677630897207790105439223254092236222243609384944178451970058115623961226197614836376666576981387573036516433784494629219819329090101017799168118100125747064768936724674114225764640286289054850335371201409829665425546204657450900359355320853575741740972770434546272463530693811801383631567086078930905211412672731076549259037727462947576912127818749709632622246035415033839589581875239864769313921933704735027012748152571327427832794010209970800952319195257475150473099920521622107117298045595994966894915329634274626325481502511468711403977813545600043604847985387499856863170907574853104841209363747469470206280107190585381327793976135213040627300622801980822163673313815673998944258361932609150669200865790996428733127952976326959619919785330942027840798949925563254792471331663786244847548756960148973536595295069156463762131085628892232700855478998941877262917968740700719923979545220213859614341961370646831562424578132522033002379485394962389490587228885637375049988867357885393164642182565550474497330351470911141721175316876477133456069439439915972636740954760459826098449923596740374071430827322748544625456751078154619426488209826534289355344587277152250656564635552488108115221147246554541625646209326522795648113704011475388429570978345075049594579232987424873936718843809506488194438109035958649159086452865051607142685586503342804762656077183651283604385455546352076880617789893810479807695767164596912006881277323916045787187274481110547466088813266958598143968477313503180049511617995740887858211756286680336448304160160419292712664218215051748073000178898233599444669938094231949454747076118015191668694409525710192898314674236318845130630461887704028913317910797638609347125940442442537540638650081375743414128532528810939303550357663407964495644049894876696206980631355048551926699997452806253895161698188128794391225526637282393895665653964677065998264595824249422780502212296111829728797923486134558818970972344280160728128551029109435802585975191292918571009336347892614603830656718712598945432909404213355716957799642746648771787267895667729469580635742849068300743981804931064742710887299014401477337132590202627036587774317411978739899365893950053354015360360813766771124822407111715304140582710630426837097030484486760974561262397990834623553461290965538960967010211062632943187696126627123604770860131840037709110801034710634290295747295724082507339046086144856214282662375877014582909337556662011459242665037654045703149980074499697753035390635840635851747132988068276270405152288246490704111799513591468790675076500031060943645209497299333519395366426524577458271561945281027795487194983240730791797046562840943103154231997740262780265725280252657140560015210788394756902260681866372202547851178791263690521467284712325147168782018684494898856382328966241300921414020910831185236384572722650602292075650349795384183904172352498417822385700066573983930723797167036701827544545354607721405975898410514702156858382745522082433333347885439636776180036237379100285281556244109132910713758957560526519525513801375017032160061914784170708537783482439442039359514806933818630811322822716946261338395226882701024250326677464478404927485458807025921669234329936860466503372447744396101668379845833138070129841393288207561522240377071631983019153523061925635429127859864168425872621159228691878686155485638607545230792228991668260598191975990249249537423357662812366456894577890390162809826983490921650097228255379274403859391177706489483878943252447260356828868290461860567810860281615981345037992425811071727501599474626634212684608975316811094632504282468374816555288508248792672663877019740079184880980266610013943874790739625447199840456031894046067997685292809832839095231052329625139605252905397651432379242897136738320490346457155729860430305098462883748939116255780424077598158505020409754662572046200651406852870434903500757980953770141299685478281391539541152348566152741714826308674718724321828031506565572995839020812073615326109101211136732170109862212955830145007006326919006087575008868011628786177393411417848342496021500064402665483063244211655991937390057290542932760004924950644569736346167027526645209350300484127734141604491309753906734237549613835314504020476019059624688596681162795068871862854139733554301297894134675288978388417756021731270570733023876748808385068179135281718688108511193827665555876014784947028473793698126539530982844297812310794048779501638491777034893777642667792561755643698784890798179908223189827747080054040067597617847225517679705493997793802203363517359938194882867214253433813196242850429860665934174492078448089786656621178586775591330098798993847995176478734601129360500913617017388756538074042374339421802578126463233296759298437997386913896732651193961156696427036251459440499216896580675377615567058967741009819774376699897803776360306326757373091414261093655360175154966257005962769754759396859358537465482373552054944645164721581926073038191762018363107757181960651191532389274305936052924284872236503651249723595828370288267669848274230031076612656381492318869590873688499891880469917194205552586479378824822625168408466189003435909319521344175876550222736976510335166909400425926857599736909271993115092308473551189559378160221411553915537217067127330033304849518898787199264688791664019021791769895510293245423584119504212944440744358085915607346449076318651479290298982666441997395710816495673374783988129781601102520377754476635698794655925842700052823286796907785755820997970904782440628873575264534194676339122371105430379024412306201402946617037348701922950195324534745326976196534080141444077396172865620112692978527544641025067592579557380640001583271977709324498443546555204753085304678095925762966025525707383658141078912540331830176708919800896104016167855233523629325176747504252041605082917371842056317447537074618403761688169564746408315426744555440366586914551786445556397081430089232950632666511933925751477225308189939342750556990896308472653639485117974483481340081546379785883032260482360496038833636115105365505104104538801916122003547363292419311797985258461833847027501451495888804768041936299758941109330620213340715963585950138055613497176952344972660535654334787107837574612504127144114999276986497273885814684308164454759563650903743917194177403396889583237713046570296333721349138216443144941925172115455562175827274084705550404962019185367347361305477733654000205748922927095415183727024269534606752545151942969561015761924000712771263370746108518837480791657257263150367051782746803629612681875217803123568868518093031946344831629941918212965390500776876772092757541078091707607332183206228828492541092535112222461843230664705815069463129508912933693525669934200352996431016578738090493332218658562527328041477538256945711399846373554333120465171549832065410788401864013369818844556266874960735806646169730144743280128756913140686612420730411003489171718796102933050040284667433893018700321491882405479110173842563333574233853666449852034460261593635056588713821576676644110624575816823871064767482186615660662123413125943176509712298561756542419470912702059180719652303705708098167352253816169104037621380137954691598748736478269051262518139178161892915369101927456601714364547834044535598265124049486381612711850380031973774941551862534964447247988696759396296612934556764065150649598384914041212077247098353807314765402941091240123731856309734007346974800993601566367424527414924605467539385402666837836926002016371238971238473834179119888466566464931365822807566355350542681465802055519264512868789114314337765260081034465565931475401122540620806043578677648113563408239959538151107739048183884846527003135277218117220064913713027217059548431950228314102495741551814526432997726029482056156487483649948451905959185646106934201110410713454760715245786254424687922733074813070466165723284792556500878720811870109581284760570720896636884201315467590324525378094970060333310444291205583187506031001716703752101790172328120565838036936541769237653356373910496353417851386005940268389766664504563832783184416215978812932386909891173930042401887377421011219743720158452708093602101882294712840366601068049829930443972866634580852118668937337926176369252579720460831508810932708937386371447546258170980033135020982272423462715043612731023281741368160855225248447596176709653018466611160854136271122681025470191427370151462687665035437940174027404008200674440730567526027835609092451259119552286067645680578738364042049654848603572518213027404967882501542640152490594019879528823273903783782626555883410718539847012338660895927799129301266782515595036763448213774900757782983264854559481136487457614010192003307373758381989473298195024525216179620563682521910763604250240560664695670113069162845133077827838662324010450946675203157495548194502217139323129069316789786999103619591214552581755259691225458551322401721570680138062084323827718399691835501463031567295194926168282892854745047390577504475140660372635640055279174693627470575337390559161089063045375930284677799706479521956170734768204298528443971540692766022209345534947795340238491653031744089977457550108919540344652506814279730215377751861533313934188881995668255896614202366122829935138794478660937783044224833791723978107809249827166544254968987501302933149302658389645018105635085738404846120811128051370909453389433303858463624578988740082093491070160196666036867195801564151502180547193362088062250958693744847133561800048969558411615274687090424541899114879871954592699463790398435502674149269678977238244635596931965469167968955419038130963399090566227204580642561751479196350732988284593044097496755230926813338136614744453461123367727955958446503334043538610417128388558880141117312283724774659845266255008044206996310315035038225733222115573357083753701795220788980462483935333941656391308184617824091101663131430759029221884989006696348446858154638869700225793020842079826040857358406758773753517780760275430367615857519232876708853235436188341542585949943569200133610125128223653988766528007534393071904135286837606723783562488956772056448128907265101746414441795807910642610966536709536640356144379246871779496126185704453173883901012640187646492944864301151667596156324263785938496507748148100100803371570875604020359798998162285496609181321497832314173828346435159024319707448922762366245085165630419339115548339197179727224409949649151878117070103378690599178697067442189232332078855209247593616501201754354700933798235408848742159389343922701373549226452155618464925872479116243945183495851395652935357011480099467798686210540030296471993425477416862138717417635819892938786942536449127171386943735237440383503473216576234537658561584573626209175436426696611365307935997308424639177807413826744803988980299040503592222446233627074749839518724477368115665931539900828830677520487517436404569916757648387503501883805045509438398631817016861636452764790562715824111280582360140608033794123112099859138512923706008536712750875918970538399525485338056111361585432887915599853658831512417144938334312455075521568699306492854816582759931110327294561586603101659916961127142844678667588865197269447926544578799758929804768916294719157537704392897931516433241204943845594256901283610105492339012922572098583448397575220652239978338272016394084855905355582357224552736159399836811617376677705321715169347397142288407985857516661610608987873956780806434839430908227792353226019296413709625758065028395344787622064747425348221159752454101046312886731338870238157830184010467247331938312685944413757611600389579323714428944133509017192438642920020310698022374768917287597433314560424201574231099578223992330464105093635202965082047840197248988914393856742311074881614156073659715770818719958220145695375713715055502114089629273517364980017966267634413695494137606465353715368970317654993799614527647692250258756278819305296143439176276236734021271254861582933253657890392073993592656846459861197178346328741936030439335052496534642977048785980599403403406883267445726455970955456161617253451399861196933615583815139505351536878122423397203524891789612040386193877150961439076733232024677379684239095874766960689536687300998282464104726934407590888817083130922540598338744535621383611658790503663594736656555981433706391453825360277155894603879711520727365868756249098223690924967398599971056402836892900582409589186872986673611728237227279671121284887222899676516124475840114150017693621727436617331016280697727658303655540201918273739725243384872636253886464945929117969024939138217759016765715268216808492725679308167745260810027600206905714329769578012058726831347642581388707627319666465378519828084429888782901192462343548028767408865285835070268222275418308905628193528283337745042042635080573386501416622053634966205345385218888820374028990848468208755654931249009929165275918827239292730148836170078817342957393296705707138173150418355651753531046356644553489528816700324840513027314090846900630086769141243033992647346481562983862590294646162655602783691937605653978025113071667105000856131224627875281172125506816753674122375341038495272563424857430892420022621723219581468115379008976148073133653773132433506520720783913959587230352085367795198926650704557027935068022462090708651104197313572891720629301653666901326255688271209813855628358453110315656242776035208295794990426515569677300713701327903639142861501845065782057040770135188806446631104138449851881440682655681944722014921012719778506491103632607623138075971751708527161541421715941130045757774357271080999251296499900495463227084716981738700358512928323146737728301831971137842525175563512369991130238714463452226473499717272252748139222570009351756145976098423032064561029439391241881405946613807720088889147973490817024802517865508390913471179648100396275081979940016266373862537007835259502255139440420789024732848121333017081575766584327448198843367582811364491683163376422346529035748461782468677010471732057591595240589353769724203411842781330686932312628826388016138104774050497578099211418723410038538120374562364755324971216886205617937254068297753083275306577835195075233381414890577810383071751447820191630744643092853139605060426281378441582861860130311070701439987353926481080873553658262638316918905035430768978861531507789845249825898046012860848408313644926458694647094269173806632087807795999195018724461954116383082155692284736022524478826222421616732270071787871294136016843587104743308306116085953535945583642931253064469815753584264177859176405133123203369590035542419191736117717630707999818955686297039784703969340706693591288510047265601380714187769858909050610373123511769595156140055636376577760035897149141230826326496299384475676446961838472573204431968233495985860819524551620275934271647767130561146428034367771048854507546970212030669361916648405042460135909406207193773788624167853499119026811127920790153185794794302970464810689038625867717515306815609595508555779124447630428926352535725447597315195372045438080881064394115342294201513873028071295623203185804606036351942096773607912142431631662481095746038300598567246038158539524652127753807036221717278338329334109040405479912040726447279045154766555347135786860276233993320061520863754438838816785812162001224682411371568338469525182022101760470288635235699478434528872515411527848230002504511020139842214861985187629767965453690456772712457974984330008299494639289438792366551093530322596712876267055129982957263715848592317398781051282690695866445351638555882684047343444245777232620557822468822403499864833672453224649598345891135225692380716504902320529149666373649042529225186061051647537319870882323024519102215868897622300164773719671990408086720729339377978696562614718041037869146483216328170568618409692009199257482118034530036689053729366356297781031550015959793774052525487672135687815047283581272144763216788827712311172465592972659624400466454486022936213684102299984471730093232896300970023726552132764073706068835404874001266667970850739520295555684871373209027888440364744336582386644454625439771919714662099074233750096193982866503477582784712438524198974360818468676234537090167709054078349107213863091403863102537999216353682569379262681172873359986227779459640287971967278804295885629660693934607331709887722300593918326737577990292412762604400513070502738964594801211272558214963634386588974690054089938420946912335989285549441998068273357962183052779890197899404310876648358616312618892067310225837506669747585434312381261045964593297984354903633299757431774577258842129612470470608640206454120466515378791598214525664509035892055280219301078423017493486233610308356002255569258541850556445261778807009828503049645475915483941313857941162913539671321997555044542093761748958633812820272009687469869465931059007014879551455282548856673995871203322459355543900290253120202394631498224052840246625661158078406628830098224902268935564241140869750919083678969519150004161268464249183351082612863995924064818787208013312895224096659300037796078402416516193276329891965441462758447595180897965980165718611544937425226936957879137452226245333122632381490709853871638697435311610964939939245087549042238333483086383580123815127744011170948699037659089897397798018597493831970687077961401586673764168041728952771337829323601557419209764849756240642861931714856730901249373425156253664860168013308093095180448437403027457707033416263503689053574942966617876762863248992038732830216587049269188444837458131871973305872879154744886059338153292480797633323666886482667709133131892767902927110155681915102566736820624570943484792282729045699938912848804842987801830108387278702056462266075163611512384771460781677784992288367632417812879638568576936764639046656993931026158774649249219766930867395832087720419294445401995817233534207413124615519827582598361344330905884892544233171933525636001598785616965622480776674988464679497306501969117976534716730372136884293870855465453554328909569539368062519214997149728717517842115500722871252110869098215606070857230922496343439118982197188066621486593749402204888711560901211031706746955988497721391808781263491553768932884641782498318406252183568089042917328042239485242143709272754032571138938980336510443549313596018328220920258450055375973140343314283663982064889715759944912393035083704606229855429820371543551937066499686569678663490270013287256672872926250701686583695071205005267566761524222771239197594546492185195756211302913048993517898563227005396907886120627592116683956404580339730599584570446952434410854305775321089820899071003962296407274457446773421383611245024849341434675336937759746823568779342190969951961962110567932003460642283230744363720462921990377544906262802394581006340856415536016412206737063400843937656958813468246194312629009759196663453465934293722250781949406549750153430035831336308751824952758979253450174335474832566662092387135338848282063018606540324338871878995987612150242033495762923906500312537082533341703857961379034039980361524569891454479285317146595762462948189439803475430931550216189042493933938323210816315869576263368763710138257768983436860349883346194099483522892576799029503664632459386311262248110870436417474424979517234913435674833437126317937526058341865610520134443342040301065192162164722773122169504387992309832245889806358976620428437215529463967921855490687808088184963385569238381668315732580835847319562869315842099186064601047427730134711061453081175817747254127921163778635351518334235850942578862698430400833719842764978718740454141905091089108420458322458816832006918167255204884951344479321255209547309611058264372252024638392437372331359360600542961649070793028602841899888672911594803260275715866601398126197870942069552305875171122073754110093682344868905900033901131769236642698233149226953822411785741571210977407853191396700694167603756803893104179117075700460199958544301419671017317230968406852967108168635168230003873745092313185686287370476068014997963929134338987727698440602600987498339652843233924678093013074636923090333717054068135943614663908194138755662024539087585574030529268281496186041503568563578067040081137821250174109467847106840897927531575387698313644277871672264542648343069033634377049317405434119336455495879399568872725737860478439078847869891259064894058476811600112655997807557834385003241486829947314324821492924465985657824130105189599641457600095422211402510853646691439477075905920589615122129396920902668005091677433549362333568600336671099451356774214510196414646273858058902216160595353067956724419898983846167074545909304125897227231468235417103044173345923368984247366008077184048520646702063478962764653836413946450803610407245041124942628619585292058253919203782659749244904579051765643080408605209964345473455529030398476311616564030680381083404169435615254117135851213313283991047436024182648552674650820368540596331720443248771285681551636904537846143540759499371498318069560412993914655410119961962683730989769294953489810302114895960669088927288975504443211312919236490160589824457229517306030493628161666389166602470635187307185060897558488525715095631459142797236259098181897970902597755707019624776133960825786337301198709367477443158957607658506775756971649848623765370585239888715737014728825625603949633645312135953139443166950880629102014726141406428856680411753684083611800614393899144787768392042435153669858798359293871469846900714197822109547584819185053881924486422310347048330522544053690549533798856124346942339809574350346933389096438605840215057968805973164635990350792022866845913857150903856554103111588107275177135501941935150805330542251706155809909379352171932998426536160733811688937740493295657029152952919935051487413719070388001437891689066199264389648283318933985976456445598380108651191941652459132599332800357712780500558180345744372150793535590625064843876622703960883178132125540601871863267876485048239648447903660777660981799648695616586284114307971291601022838051326915214692681082911623929219967410995394233159808919956766783904467755753207588884989933633423069562693105879609703835063137216871486039975465368430620753950385652430328650916558023654959712584968166782291590397826065952293971072466964893222413469339368108253985037124326848642357520594413549980577727788513573398027939012598615285415450541774439425602575972268177342327516941674837572690717585054007016696836189918331718974000901504522674094645318168681915689697951862052077741372585083088084795658975759519484121222695121544016572036010438433282995459625150071203604249089135152107571978535230303637642911919684607500681524165741440332881922537327550382151929207127911844520948690655613692950874216646308873215697685618095336329681474147794042907183476315331848674050081422155030478953469029151067621838259450981282974545114611347784984200857779961966551670348150666772710397851448464724086068002481629016612270457674875766178566326689330455769692792548166613942619691032208551088290217784809092446118043863096429551664429647285682067091945024013105169776806479497055885980284077865508615770148976378322904766128398776900920005587279306618451428405247429045895416972203841271180247399318437610611796481115118791910294678986694760314509551006931533087407822239660047045669054731807809290547142913133175843532176749414246604380343080951506988887323739770539998138634835292955272954636500743739541873533029951066449930375802119877510004112311405612852166408810379904258332544964333676259314807295334677900733078732140471909238681310715086853946924351261139850324550971307135455572279099390402514321300254929940287976457436878865769534103215710237666291894337139942454023106334068320537698298619251806784583959408692828607422052298305304226093213076702689770650394330496498020467776729451827018426312175505357824432781664129241267664989380269020291770047299067737457827181007368018815982076529037764815120874721556921027984046116945693124231616053724628202087140243672760686978986341937537095970619446809674922970804582634902978494974687823771794290881205830382331073378343741367005636544028169578834377412828365101895959262441013042628739886757367020209683593296003593864674978713026621854917980022096305533635647414702769226780773798691910301886982805802302645196860047573710267496738870672615594468503301732242076641978445918547699077512790656494872632424115167526587307168863011721218506901101641292449106750608497725905128091819283472081294559637637768060085070203264369037285168100715567565061791297700009663865385328883397012478974210858343154928630244599836783044515838494180008696728980962776818151595353681348490879770195656386439119724589996207228443112632025047010248414692484604006951262151500926573217451394039080384448448721207929823050782884986490685367458192745231850784837416012478698909087528781781995168157419950552207503107731669586692707508079644066913562757777794713057047881367680619349893484038463818493705467521549597628254799254947504248334836244768293263368141341590639054458994408674042971331583238964165903157833130828615257021036560865113126240177720999952072139853145044879278379829704695526152338914386965505833733465803633651359120069122530280573303074091285397528407373523768540603310165699521547134782107430957691820341476633577536528958276804419274316740090132461541467370514591959670529977815887890365002578346074483035967181529142949595426263513589575495318541235129294145859951214017808412253376200382166197699553023150758761592238697233469868157551446474261409793691321152101515083751640441872041003936419014737069024840905218204040535360728689140911777764019766342483806065783631540338561528728151079619661954417550956932187382918575665465184872105561917962192134205233426868743294309907915518878272219159782732428285360675941699719894343825677179444081342863638774475329723190114307311919544075083236057413807099625095991816775454955212575826559403505521648123356880013273841134959709608069342938195516775548229948098635916109544156584106694590770850310594270155297017409594502318734247689254955011832715492600910439831830936352153363297572768044065530470622023620820687671775906944838000973634377904900662662170133429118648399485477748355924141521366199326304458773718359332526038102651794736059971953614937337451963921065693574477540510836582241319482166104770918129330713929117202694128556661458622242093171875677952900599802040951283263681835020317257058589366316868625802807137821585679213121870542166123657742834575216894021088102604143007700532650318066917078611238895408217118012870206137320776059367326692673185065077964320755374588113707593721279439790804589539327789554076130208796770165610464948096402640872167302920735756938611506817179593667351107963729136572981723147780496217847141139294219518782350136606872556171661522323650790522087924816994159293427454144027260618742358419641279249594324224688273768135419973734516705923300331984385840866735872797506611510254031923288589144930834586873384699089966228126740771508003184275558499978614954222674776533154438831287273852332329416641405118951684218764141046198080818280009320837201891225878262043621564397363463269749235602308726507275295566727747151190364387678031854998279354926158114176675781015479775306955231483798973911276669157649395279390969747753806304153833720132833945663513798877575921139314121789912843804762150083871501550366525010851394752038052742620557608601006529469123578253708558848675368947416283194607482224614925837897735000002624992761205640816895166347020954736152560676291250066073413823080580291103944208184033664724102571908305231061352350354767991495626385528688891202623124087401392177741972050110440175016744085915909834713120590222085488788021954555541094214018104039085875495726684829046102256553201389025074030880167188999050571719103428796574835745909311828463418037595809302469084523242336987788768562108759723008879339973533571946390217357523783614743595622649445941186020944644009153077813013657309638885604023288522238665293027157452301040176383164241615034236624652828290288352790542499522021483742079117460198718067841324254087586423732290287918437078928249101486875826479389564712694272800238092718361753433576096398545995865914386812065608606963586744079446594989004532598567113328714085456037006944414926984982667233976082828952161356128681419739994228034447091477246575796357300609161737652181590811762020756596772870692486754161161497645762245235915127139804240286214530709495834746953082503734910285385075755637611700214911147742223881789962661652199748752839150558849492509147373533944427675616442695905346749149134830238480554436160285673303068012027443944424760210123911768645266821354029121992224475391266496989895875742843835467810914209446284238294394407560275329356746166267064200125325295756212735013371376019814189422297560740829495464346078184556178980435071544244548359310285753782927538002286870689496829393678596978306613109151443568013097275338430100607206415785616818695080730387318858947212437110474663857121446476734256102903536189114812377665682088384100173614462597733183377311692994100471512959074160715590538220568700734947513510401016736864470399755082656049603146214586855108569043505086195441198129014800129665016914711750581967488238594022239266654501330778029306530686142669420744928174042175453033053395087326995760558603097040764316322875723862777865528228367164558052884822062872381483164838611292871750579633810411488152404798298587069186096354128051771803952291348680340194061774712722090740979379198171277533733917949782323454459838368702591038373709309225651445306047243862366408805796946768181188018571543781014026281316938968981633434429034655952513920104445441305088183948426551398547460765447945215183963961773882384643968901237965913319332362681409350992576600275776683284463155080241660309377282986428813264595253676901363830206204466418670851341452394411037541947118453563731496462267638009411139706238526704962224205480399555724715196977576943185614744129217188434708785607166735549641867826569886756727613934188384166674934020486243362783118748700794978515063035509566041496377817381433016462138644024162633077173347061084609331510425904888083716477111004287340372129283811263910246938174970924516560853125559333183378715264072234865972080375967154216923991950240921212483358390913227445056949671353754041347643573976958079212965041074420775325122047814800999234930964091158010917471959397478717614611475731907038923295655008995566956146672008024275238633769751530719499350442731347869010899739812124130360676418106476962459940810926541910124969292095077824187251111772889235075459862560463407784341916275065108011280767397844334362204193977613452750481225312692298252967978121447110677480477166678498450947283476010678213559899518777336754559064977796930818077098025337258241851789616317467276820226052122756421644044425974690714692606440161307121448905988403227081245972503260236361674052997100374522574870996590618846744099214900360270771608515872262531611126747370680292661038363899504776867402017191468055507208982272979741335652724093360276779786698064779649193178860836188814609853363308956819965674756499817652595795102473969596253868896486233706843343801163083548048296888703401013672568990103058360793821812918976443091228740131997832142936051601463469503272014157460094626975219254735934824783275929623082706444114800705930563465639478972240251207517703666549431128054325023894063729630482309567626537566585702081392949668019060870373529794096161065000488951483626531552681161740241506465017683371132708397684280684896658925414937636238269085715942284426964895437384868258644544500619565782741455304009131810955811811505422313024630260263897310770946133571864929542507424659568645033539067802491722769449424826935316554603980156223761511812407726812237426784321560683414033798373696375208509959931618981591420794491215873553285537652600086689844687712788894836314497280537622720136816372065910285236791106269761998469083021456859469813054648523421694767127388528539837860308677687993333707289085052995479144149698616204575339872086284485842836573590531990277293954251675853621539322955562797177280282356181373415418150631397471304412599054475904694870161799065859663339056507792336364578241322252473315324199118105182265777760657672662487347260420706856536855430305382323392097940746596056114407665505981757576145914971146274691643754899977707103424283262628163795215864039553467458108885427960301123889933986663494505521181744054721280347238006949330977561269971974571449766412849985168222658642594262059374479062287589003390380003497843815012951363464176403885772685081528314038541449958236065281748176043599216145989049936752617554419870134963753375801475958481595975120269857699040910242806040883479507035755986570467153407030204788924504067108986553699509232869299144034457043870631017015240702801084468548475337058245464149926765675106946210695285611914238146744882200772132471779357539500388850539658412599483233749606532596506553946758160337882923178515710161459877903291966611768344491477736322916658972004756833167491090589372731646890010429592868469907668229641233685639075191439354476123702742350683698779014361193537341921172466623470294592489238469858551519030286804598236822119316138008638212386916047119301598756127568615722282050485333678129010314460887606492051447073172667127358192111267708376827609999423677600247883702345199450295313611621161735762228537722846091368146938467325134482974367614631403968316695395015888794753376396339888061477131814615050575108016468758755199490329865214884852453480946199446742565550586513347737877796435531428378738852339099887282042429395001923996879998144154497451359472591234180745627289713695743290345897470938975603218452720282889325565215209704816815315527325474610587970588096296227596629380048744334146400875796725997761092644930151196482162648465780500345038847781151061495747000083590129232583148427084393757308273882464280424044189825861099813164875683222150901181980600360242868888725808827752604787007329789556926496591690539511722806906046917747148456544215781972342041969992564607699903428019341187012530977897647306346367598579953636504489492140128596166205882153519838120558170899600923624128546969198115631678886527246908617735315380593272458499742796964780424256048043544913156454557152347630136874113360121600871436659230684506563150953661177468503041450699715057266522232932170740065058773627624959547274459781306135346350542418786929388697410278793624999626772251116808236420203820293688533135393696014812557982609035346901810164424188878788417427297475851874094254017451661933596319376911940111878113661941655046649044694495364527102990795623235764896850352182736766737620789502585192334320526540180863455038778463109814309732186036554183776433760527744510484514475371244770671077223141496340372091945876067056986528844794828797773916444140044712106088869390088118361897974680235351860629330337262190837814861108034864840376884843461021783606874977353001054556492734215124961182218017348028111250386912905580926749368426688137743952617017343886124335137703748934336611752281385059376060550850837059536755237134961161417179980794895729857824811169842532658347731388253479023794039047017203125434938014246928918334427514329711225176847577535301367572992154302569894422322886617690348234170180628356745880573084563797690553457384593483892593229915187219331379987814739512370983110269807884276560763425322602165035554762689086599444522330962975383603678524150555622381414842754040684992809905391400229132521414106421757913297594981865145902802670276243274815215654171060746882117474404745911201066773808422454647454758437852456066411599403977534998243489893505220226578762509649436301979644403427646113498480356316354529336072322498698495671464392332004040390112352192842467733008300857303780523798113047826312342127821085095415893538672931352399038565122056824982868171247165032449171830564356030588481378308386875732351941278695180388101318554137913765982101613844627940417082169023940305681190665534721819069168978416425905864875780141371278387792603220246532396051134463726722607796282467384334670794390342917824576665676267175208884505607700887785475189294575919962366424148128810021596346414501773891026737155438277150923283193944753894672586139729312268620102758693998478847240923738830213687426081270138063543682091405130595140923169942822718590549882321091299008285925934056026609508297490264686833316429122255348822509114191396726874247205408473450077671523939412412190572337731205830818040137392970180030323064517020784102514930248505840421733880713401056708723385223398612948136323945075973095663237116861963689081334826962308477220300405979346780062021868219655475059335668692713142067985861782356269968585959611175081067363119006897272314396833334608731723252596633321242415305334608045620655558034868861485345241477993849625241014776793709066296637663210538286120184526853747474822634100675155912399310256678953862861449886332997526150603132328487416141651448783214493248953496099301193987878282399070087637403751652491886966305682997777925613113569884130341455517272126995314157215471038801782194455572379980896680417518452536881779973519860980680356921030267483697442681754093079056139008911245094148921118813661290674387057814726061525661266760234429436222802113154398771762605654270048757935625733743393683392235320765026514815881102246938625015482627428576024584324642104934022531930635610821461716492014908554175337736683954043202842802681522732727412746596539937654994171784623423542394373272938006778229070634851365188212054798655690123794454644993064018985054684768793087365037411895271607205609001416548279869796175444034372092116022697603841930713554179221550399590748766423014532959846046099936350957522163782359747545368723685744849349912412498526368915816677816730024799116531301851681813970364644245276172692227265549334806578867311114448928123095629519140772529268380971756071211780711863081265320997531439321392113142230245489178465210512126004219512820974677068160329368979248050384901644831618140398456464685312972043283110680276281644504775317153639772242314271686553870276520187592367015461992440958103628273030907043028242097473958496664656179411620549320377004653268482976152833536228723908128467408894478856590417140527091191643957435074174955128285735575384199882144346092254561424211381654723465168497888363748150616972064317887619161372571826531526783885778277794862780819452672877988923801420043776207739824329420025907104603323562274128967016197121584178924058438817107754277104694554785632585330418239196767484356230456223934403875635004389771319649933721144446511256653160529656733578823888816974095088802700127285007681716193325139605461452061352952793664260867262941606922190624206270728523533103518474014823801104948346169859037340112197792558383140081453276975311779084079130969922088654934034320345176162064194459998962665938542431060516693191967608474617234946847471846656844884161946996632834310069458157593894255080446087146688991699137587905357648643039191626494901972819599499078752788651448310717938759104874282830125657759754249991570385067297343316569745586085194317454632383691355049754749429174902643674957225157811678088022007609325611004223298771961319411028463946832461614332812623781615576689436015303966039299082968018470167167865657777832336764863262564216951591481984584582416521856091994145913727460071412332079304030145429352525711286383559090762932635055475480303047329473226023726406200752994860745341808410430520682252961842896085046165479749037005823102334812408359630723400365012077513630566970272102741170737801936942655817273700021856153592780618862855548826222858155084969752021781175484028243017409824015447824469942407946317791388571796645184100866769241973460544059208559883632011971690461996563581019218314461098573047552878477661948496758456294657256010619185413105179616211130583324986936816680292803736040198999067228359629142651560027875457457729942294614554069405696308224582298841205110331526901136273924396604067446863949421250557528645583521317597420548345066264978547128443460194639241701565878481767042576834033842465064625191584503929155426581392600121460566533428086848325090074657156948390292351667833283637866036655411016989320432233220701103522794142687953561265234168943264319765250906850574962772354800556734188212895749783208265777130679418155965216689206102222254860071611780583558113497364624118114486388750081568922082142572295707454117572324310290876388211837901098894790409045615725065928523951456489961850673507658268504941959408975627472687148697815287693848253532392738097199122740982045954066661484537022278533294675687461357473409738398814403700215194173940062874174341981835858335402261141120928653686417810064365855352585862045967071493739514460459187638296154282740949842826774821376704075333468390682991188507988070809723094717715840903495081845055381373736397219449592757878250197183727417618331304385163977610092725325983256520953102373912629118410465699434092920325818956603436624521740925170822148429972577882203734018237828149872912639612530876525811597835190701887092423977799303800697779879012965304537179768186673828141195491284646117905004426854005394473471543821235913133367142107173524701570807946474707449658407144331066305572605007001537539054866564067867325074025266578856580645774098458941379481382551354927439248338172016599114874784158790858893240242320031097946174198939468103737994640587866433657660555676039971980723103158704781264446845582587508827881714225995275868516916336941583041456446202101139900141884536977400207540597508449979021733338038400731416240193123879168133534165344256397935988391832241487970676994917766130431940485269315105664277776548440427069044597274666287415880061729556557327774093855832593761521387890818534535378176470215430699834496670647529001425454273155947441364880749743463361567571083571398940777079597834046811363003476378530825424713940066894053445688675613081611841444739633554190682039515130320417409369313688991012831099272462455851768639979647392780557931563853325342978804100746262562206143418872548566844679999426890692015962699297215680670284543253766415721794199723589768791277777046694907843026748209468674981185243733758538769736511510916018382251206771060598185817514648304795451083653806255863121590636517359018596693621987201249165501196776365512686828921706225999973748972557122197746876199178004165003917640763772900094705198637192195309952190034918491462491175085100072186182537897679900672544897080984439755816988069284765324224242800353479740375239647425555075104979907863324960485556990690274421103077657299118622971949145187909276415307917605100769161297460846437942563283156763033462437262415960201346947848196016373926554776172931880558534137086842268523245579372160207340344624567701591560813332099264074800823431021416341490589736101171278262394457391920348745742841802131595052986675520631817304630166011694628434665376641672883385536406561699519329301350192304576174469619445668489721489791991851506321059146788251891317254178293798276689848199092038751908478952965672856968604432436788068091541414698305000343924525616283605642673974543751405399763198766535805947741598479328477893544194719905496947679318858138327526533846077470781343484633081950538810474645134991449503089370126740000578260511110559222431834996672036042168047359280337445446034887958468005698525548102865601864257936119140855331043997660950894299704753224193514428642345364923436148735927633041941888661664491118385913946423555102222737853588329510320414700632578055024507227490364928884424824607182769753423696085919585192105054235184486707998964921397009124828603409352824102855095141727898732896322148979204985985656795490829398576478688748404589110461941606500866864830580864541170633248950265362080171357690995954117179763358484235509453766842317167399471357838806216533460828938253453912392917963894989222112909130039923695106570538408408509413306114755653804930151788433007343240052487976140944346799626209008476967768856917887377045728450098927936579069102633603324713979149938554492976249968254224266092988068764756461884863692961961735000799271926441533806384415103889030039175904651547851319711160859147189359063382140511620379648574253699706241624321457704752254763197924820257455585210299264950202692573557364692114988283988422573376341577128898928403920414149852006460484197136657869033771380848816960916852393484606860313805292966278337739233518528101997064609498132897990842015783212337567408079437679254713811667136654482642751176386971587175140080257049094340428777339983897254642660281173952163695923758089127093607490575061731276048125312491893147760860586712350915669187064761763150893078438146722746050025610320761380882933047179358988798570712557543225336244969083994855093155629721660291375573074525643548600957238535139155997223266150764039694322491690565100087813412389485093472230244748338197652688968743925295593361971351664090789210096201201437681901716795783450932398808100264438392312603475130635543997830795938884535474847114513191547315169908513761876540434470414013735535247533002025429766953395491023356682344509151747296017735285273671592761111115273457992267388708929084805973936335760581980002486734516806588857590364504995032344657299488333770570037457862262573443944114415893593061179354313474775800289578573104219113328079829677503107948539146660231563592459202534357812881978094296089257498981025110633179287859218590575023723857153942525265478477002517952711867597117841384167487397174161256715525005612583060754747503100895680758453676250123706623962467596202489554237141325767365443808838173972724116916027964211443070246435206838510191003539598939052962795959155707842960296997088709678108234436907088282109340011061912946732868879933433843718991409526399931454439299582831765041414949495606080625006047390610189422874589498015982916821160229144171710527621669647623899516538948682128842030351100578162165311376658859803826109784164594390018669156096217062481968012919805775067324542820777773154338703130517155074801102947332446612071274063686201541687758869166872336642018936614095372650137454338829306591604015587637200750564152523143533399729784389315280254194795514645615707476077208768369189210852803845270983600505803430491349664651330802650865116142462623578829798269228782267822112816409123181063358296107752626301537449991436823419422220268040553240136685650058258005791483579247875781368669479660213876539346374647106419581473652247229471446637554786761773914475102188473881730135137288715096764551473726066675065836466451687725339382362181576995781937537422673625146448622929541530272974587056974222771910737800005962826810972312552739664653527106346871009096717841267147316346733341191046922690899959999108731108701944510951518847817699009612992475002777338459756806086757774533499878578061775300710795452369622807075837457863680072233191965191841894786626181723663950590951843703920551650787326799369385609220390742128947849808589819330825639014154616270460820458459945240410257650183597608623339605012473605311890395308502543777237694461197822920252413301711321939842840854516572705874007428466837739045100201901532502271762548717803190603519755650362771223782410351141222114487034019907164706894239618775027208591853936794001399176783362839754267330560381823332811780463671699554144922377668287659485606013689730366920358266118743392655716758696957203649159977469927040446251395933439110863922026418158479240095478121486398294547614476602831025686439065014805470643530924065958075751052939817705964298854994005563125082436485936126907894974357541859223912735606114429530574834071476527494892047162169712991086941786040462613873865153812723334517599577791083009236141601874084248206541077908413143229997077631839517144845520495440071162569296471990885575468453735074168260743623523944132135614682508770569103196787334086510776526922198253824645789394524016592769372415996809981613158437154763906347410259854094587696956157469727946855858414914819888720644595440433582701153134810629048317077800420497757936491352631496854828245815210411358481686086081254588017824254208130828461131587672391020600492395656610279705251694145278979771219163727004312181835131370303106583225020982681815810608068894462267992904374568151694810202000783276726734107150260187937926793059943593487210016211996732319200263962814882281649260418978300335967898154448145037833786075842174265389696334946546571367892514858937412675421387897563781882507346421237446239741309577223370136320555303503227914513093645582186489220484063192222056908273486931574732443949446225767907952054997729530458676120684023018157477985190511877528916411546458508886764335130125387573087293678488112287072789864004989132597569148734829797108808750390331899844130440588514581930671104245081381248019102600958505567833376812550331013922525152072419488730323098209466959040210363721561848927464469968515140998590908681526320157697469000365679107947410054072004327374555068043222377634729284103526234056570045370278608606229952096927726229465193094886901992649956717033503222267722617509698935120758312254268520004958030668243215015945872418688661565807994279733160226914305598218946935016616032952750229061826946824036687972619195351270508100428028526651244392734353824046100180528009357632387482085188138484338561500261400096582838747908985702305442845926566988507362540212776495547361969546712656482808613107424149173537303226895031005332214590193606532630750083044951493037985835040054122018907945955084937421650766778609925032363060239703993118858895173074238177504692323317754672690622371932637069766196062799251872228057122962851658359057396737898706580202215680922379476718463743183112108093883355419458014265330991517431731289818644950216325927141300286860699010825088385181475680249626208663140670431473753511239765974744994492771656710204177192876616454127234185600058671942873379120977218014408140988399802283860089113745006226506819226671588010749616537307342419984374642293578399961104571973906703075748242391364055619566333489695597613482260117527020613078685182874071826870221844589092830428620845217678994203140075223128342995103450332461884892402950063473382970420602180552846208280984168678486379166134831441500590259780400898130615501417711158403154808401136609940365756784978399775095586785324269545126491356368543742722949751973191541698999769242467815734019547086286267367170745008416129101447224125932166752781662612185417862164476715194092235907563096556963447455743075635790024873974134144109201500514377331244663713349520247131478014855824337073743624449842109094221826340976250349166589898544584735660697876456047795931322243667825773955931789328633010071658082994175429566340693730429298987428195622586005234956572187930544899791517675864304841356224830609192706239383449618708176024006258699081499026021770061010420032836896949498691140377338553066791780921437360876101204056590282228431889971443155308533568937821627534292881670632695626795151705956407335616682867741198453940872330837674069905061945145661163118910548178459481840995454087370178495176845053283383704365020304740469101587215179438064815926968500728584586920831079650459119686614053632259595464130014688428579910258458237696078754965580192644375751174314182695912443326705469139500586160226480707080139643622542407504543294404433704679405703643776497944516997201163061073617942790141136694874438549395497507365862884426207638784457553390957992290871290201208684198681892331562466760451600269923015976037726452993802530069695390209023547507261224233071279888857994831438279218554083281577849215017810780921548664821538924154403673972714022587873018803331609444014384036716954658884927661525891880991748338554447591391044646629874653319959268554332836946470633805037878567386079544366552064631605485764488399342104717174515071544476358201580798167891658263011258733118836568016312041689069643076719541251672687852926645388332492241128960024705727643948257421203921964613515149853250391965696312129171159361218340390186691139483915091985218009884704872854359095843136258874864866178397835767055845134570650972304446549738503247571988514201544193769483279126839010238611002653487711787169050616567271890286269012177380940079690728217145139592772501770892811013020572661617876823820299671069617412000952216369493511032306447261761652108666025708619533702065105878575263531596651855441885111352834347394931039182594097266621920012172914886596724177063256601672265603941530148464395392012170344812889508299450375664442441862748723833480777969861361542585195284303968600476857354767552474157727441285209221662648347781034170237294541263901820984133612237206822036126332740842444127342741069908676704844405836807961876452247991902510620395953948318000455829098090142461922444777514357441132976518228948716346402182077142839677830317200864241971369074578454957382106708718619148917082532089208004487976233164166274232055178073030827297603284616738720384004388128902701958227930473143112792771770568835540426760792613439450664666154866736960832518965737973065931162193595148527585972483121329071426239604954310966505215212172429683639464919163052894194540270532818071807066623323107686541941572478098724246292770503779556146327979095301543212156099493740558658532489770310180680606698282801901675231981456686013180712987276103044131133586964839883406855650109634377415289329064499659191362886721697625425066357848974401246106908340270072986233774016990888888701989190421392168725988201767261972826308729198011313643440563431695439471057457241435492726231446004126169527089038671886883176267524825424627013609795479319828456368750950962472894069917529272090804938008258651080613878358189855178821926140273685421417154138759743628359360872684671693994265561421640920696649674055863979205101555427673702594490927714716593754417110750714701909198287791521004115111791436297389166661360259354601227643442715440377191401878628302631939878098289541901882756842752562580172401117075091179725725587265423694317101641016431944013103389891859245600722195340807913313995147537932547140374477527002566454737089943570107054265196877792591987380306392021879668048245547267880198924241695008309473396047716859557378558069164887835940918052875751417044322136976936045771662869927963917546717117767499344554877642263455945557681647033763311809857629553848950583610969425600346689674594168027221603527307297116771943903734564645116154852777531920450577944770572959081359134141029139006989867523083679603624937017454168625173431126077645805992950323403891923809203076560117908986624728238303666838617744406152447501996493488387309728895121608574931582290780585018387090373610290898986379248828188897183066513711051537262333089883225187960398297447744795698397167347622595352898801943132689559257735266751372027108659263692669560721888728285631986479365288450875185517058205491358877662303739393084459862691398127867946321570773446635073826552011845973710890859625658103832220409120724656271704086594322569722765833926086513477195466483652259796296253274624153775581761504854552110720355000451562232885331238713894438851112309399719642911759202949119985598710675379371159718525659570310940661980954634324418157302268651876190242793334903469237268515000071360275451561430060042292947141825288703352718727331063251083232025562600272537064584996216012395720257190172107279465845738092599076800880884236987938623223920731237619230138082949460181409056648471322784558451459850436483371312067284722899398176729540587475743718097394410612258439827274118063886383322993355539072994512260698781887741083427253208991798278335728208508037102993463000099912270066282691407371057534098818017362693908814042939171480865415100662288888501625389055444206414463800210970123831570827912153221766539790045508484822145388368117279014609598830395338488381261021505414495492439439178523845896327687078568924315503529810663358047734798635897801104126254293067097282706871216498319774896136757291179620063208036223000693081938044039497562268111928090118343369144617564027510675678501179723871249377560956916917480236851027208095957958008767781466637208911421478688444293591200288813592430250689105706778918335445705878484940618680820041504967525256496952146962217339118805725775266269170026392777990288047859815623332213115532195337539167685652206213633730400522563685168009002489863278771643827752323898033816482755812702121880519482311999052101612490269757639247619087121379148399800915550791838530060738271308970733638185077016399052501937892310493755662557969441731139436231700242171183202397535509237173757382718741230934078639249926455668556471426971773894481591490051281128119487019016313674792869065184931181505674462541015343414444466415503346736863108233156639936316771834386084458671424900681246780021790676038176621791359897199147040335495372903048725008426375847835517305505744954083518182139052210775475241222409959609629743613199176872094528786193575282158868224331498487976468085422601401838494314369750378002748606977008273944595545665500196039314555869440913544824350148642048115811928856339685771753039698824405591135496719799395476681823328812573208284334519677239522973948481080579049791195893436376017973336384527462213233609761195870652633981820105862856070260466488274986262336051553347640307384028977594506701848524355419075695032619134651219102114589840572110627731893640659647157342808104133015674116203613336304219913059590201467888045712648632558165413481576844965133189371369800026812076549656972845463276591497442212786791398717701023448074073781596789139432211760993012564821048538998965612113437088337973199323141774412488689752206940524246985753731605112743675383382346713582370956421864491951728092799363278441960394148942775721533318432543895934483168930191975316111541529634602839664485508637543068821068117054713681463731648289195826932125809036420911578346235264338151177800451390123332786699582402863680913105900556879953924112302114276779490947387907294930945955400875012407379396574321493767831409196834889085420105861000948392581746484034545314173502429961050455447052300822186584748025982857040314823556034982586966847981454718279095275224175237016471063322811723013192096001011181370668240919172592607079338519940130228869967967955887890803637755294550408071727977331223358721567140728174370238296311210654544561452162464471208112928939124667785548363945511630718344736137453511829869914937633349296024084563497303021261573020602881347188498708918215314207800854902298814641207827318304664654224302160134967055827355969169331937431583998123546318416249604338703017495669674786879255494633778300223602664397037383015442950963375304379999998962957743896794024597570806998180785785444868757470796133018368762199480048934674407314263601940441391502281445276684529583325393355450943880790842643405863811603845373400811048864348951209446513388295039673452452427641915490572601253307856948173630372324458994802088784332496665726334385260349286114271265228180698913624228672486780112669857369454962817613378620467499680234128911504211818407543727945290011052980863103837209944117499478936352022013595581607445699290505054809074470708493653003879967989656405318303283213592053694666227672147334027358364077415469438050874163871158252999340807150122441611527363724523413991176838584252445053527063887329436716742741625990546888300867123790531591468417919985687441032879553426173744857396176225344666395292164327344692855245141671601867700470331072574479392227904336538435407401500235108259298127902595908640791418650488039563354842252089134600872269191224865868220975053181924522196526865063370959865340904601267205797898362752614612183753950195063064250071331352971649596718915937223019758500121760660761718013198623788083627669924981944381771761833054044899554039550818865615015199968594924241856158040865685786952218434877616167356626616235744191837948430563791583464113053438005746583339196086600504357878644737134542867790469191056506193083337962635756106662004085530248541946166173013941532151870065761934677781609629220938420435073228165540167440464604208040444929967239286410892832133270707040398612931966120379340325419445960054480659287073082195765366997452923557551396945704610570561475984342442570472656248513538394744139507528540609902946708754898026014829884631038588625521995001959448315749951458706175101641638075902349986672323929431835918166743585748897289969054678808599035251315798596272233486714476936816838417997464520553467311131662276341539183578098113970975428055165835917019217508972073752167187312168923104624154886797410574646089307460145082927323523240879569857018430026768024347169491003882042204959494093334789722721903624555202057275265373802793374063097355594104159193607129946148279283928816886678912598080744843598129566201144509205230389803479285565869125251414738361815062089554532697794410342683552532106499879303860111884056213952781727329878844703458415520578756453004688464618674670571846973502848906103302600611865471924305284712703011225462825203330984891910936343819288880266464151228316775250596772243560283370415228928445621995217064268785410293313109333629007699752381666853938674465022349779559891994150245467485927838374823500953627097034222291723337919933319897878289388536726631104957316618633266258989447724405430937406646449695552796668284910748256153652335758596114377823876559005354396346215783532322535923593381342545586781305939115912163076014739869846691749324941221275662729799237168176513042737499134393615375727996190591055753967163095096299379712019072305013822465238089647977413019886454833199232015194522728549157182802758880094413848291200118507119887824698696252022458341107006821117408162087025810406948359163143600519308042657271910231530623927396488022752122046532434115779731712197663859569539030025148412025377547583504835225930008681133102116960214657585769954551134495174232276991711366359181094570176022928621847577288179438613507916975694157706567533888603186608254780059984491456999820133880224953159218861123145802032406664061607971594379473006936836918962442600998215420801010461912809804962773530456981289925516998658462443303611877433347317594292434628424539594178102376249341133491639445370536728503233986122713749321678420668571379781105225440363767112209524721585069352526920360749919150468234643125519742816140751717941054113457103294626011285129929314649904143400707254290395659542311157112521757011438285847801139189949206158621892441933709300341247639907497077323805625287188668650986603157349711223132148119210250533317039107958516761300617072027834304680314946421010138305393149473591761470440800355595916884420481388117361373434406152040902640439632270235401760353688060008033985906090963843610189526646134359644585621259525148034040016760950275107314593470631920121633109179565976574434568577084144620740727877374263357232827974197774801592023124936251267555531113749149352602220754024469698600543566752053322542673838045654453765113361089354725099415513145719684817128010159831920168666452906455004750428199373641382936815210825379332614294645968435284959099991653347407383873099531323904708553613527522633525022828765999123991530012962088135714441089616698147343368689944538820564202432795131226174493421485507940114063169422761503729030572150493380796802714634488891970416658475094366955633529489295043005662124156979279484533943787894914879863084228474365958191715606135251356073654174498366944571094171385303744701182891536533082286280272693748005873632627773182912720360255001137692988888588452060771708062163033013548474430436339917598916401034616923070547843886706638947033035150865727634806456062697055399629659622638565215300433895374327526256601923315489443996480438798749955865700867100331266286565194146883739383693594590633491455962432799947490456329404688724568254668863190607684957885722699319982773128438244283729661642784947350595356574680619595759703244557966517500713108613432779816527358105639077639407474627252480484783259554618907171861468157947082741220786812515175881651147391953705248197642568254906216029343911882147330665797590429112930669018007117691449024771816299971650986720113451060400304364874831430342724418769410369001919198502122780085556714222934654371456572649095236817275191002370372032377291094296303430921776713265283437043590938673358575163721554430426797264542024027049533334357337655239214581329284445098472491400382948733576611475801913718327426246107978402783991522025979778687255573182583509368048973276352469847627948292850396900256006974406815880840083231733702556419511964146632514385911443012187200504450005142731594881024016807532840509961335874959826671246140843572807182707508501047955810645720804110132744393878770227435044622658357226903021809742521954788061104766163255640947651983722981772912543702746146099484310840642940296397531323955873519336891437652012896893723711231690107481783533794452605761383990282719464685228828029534511797378329272032424145010183456922664326460550507768910633203479015928009572089357291075236450764734366600559269457573501804351306239033452459162867634597341191899070822008954445780496482337269648168402864296502017841497234488129729036716477531050916160299933216362813352124906278812583051415022246974708950930533882025506639695535961800869085153719006436273119680361285130048046912111669355370065058169901249026201367006238492679641764234282645979067111120790288279143884308818487763481007566663108254072150885312194460434847463575302768010062616904036002980016363990448096639624235986391824499918453351698308118738924831278819452140806027073582509109233900203865009263404070302559506494739158307173512841315028453240831365937054376141756736772646369748481709723929917865963739950911181204654364984409433140469622550596737232464277730388133392979065519331320518626465300537112349567513539973597452808218632859268096461839978278433776931315674752819944731370487313938378966467226844560423688758231944384484801788199432712595126926487239910020700372075756111558444905416733199152530908880471010129870166204864019116717376931186665486670263182919979797952523142029239758580882894855607302901890091675069525288229405592101357285831306251681371693835083677842428687243368702757948766677989222486394817168681871104891119032447948418899598929102739067622326155177129053182900314682919264340138751567156794472785618438962773988544711236009963051004635163788727335330008806307840312897513534913012267598436325204718171005310645677610974921743610082727349612394754027846646281530537260457208143500500713942588688071174310117074200971437248358892277439055322949158852252940044233926916731360042183807790960831420163707382947465219077767606952565987901756251968766900750534669582805157204342762349666946316259952989018579066330477002213189668807201029663503880077654152842930340775655022162734908605389935836790152486001906618669146150980257961814594291410314413507370968577033826053852702890670857230475009621810818601209858005867450711783191421876426256953976405516183383763879864566271781494174163915934356361588277079207334134851653264676868382710528055210125372191436414335768418204724571410609795497682125818254375123046967332828554995809063508752544081370157689198114652440282582713846572448484929434136816053998118668222531510289185987169262471670451543689672214959574487023656031300138437324695476633025685255206167170902058022438815113201561462926024561816022363827077692368686499747152695359687110482676085508875091915003080327233772730037293817467790925344714872492501042684705011924429229432712326619374393429903317109857334600631044975807380761218995128053834036219016262755443223527211209057137142314182581586263783439675657000839374662885957545520231477353733836257881526788643211670202888628691216341778270892433673144568948028599310370795727138641559847050836558051926763920097789183892026889341880208950958373840596143813548502446981834201221522694975891093793705224862358312357097814907223049801756861086401530981937088728981205415432225667208498950586540772882165043567880364804711606473583622465859415714956633574137689899566153097631697038972570101509830079293101546976917839830894850147561953835585323233170608385357435053002441940283032488634625375486668933843604784515604484353810402702325810285791943622859741403475089929052885775212590611642641209918348840298409905093565822362097975088248843437687212183317145251154450583708072298409251787157350336197674975574392522811161870614432993902771981047565408771230557232793521519861765979413378120258310001267553283256422009584059772764111237995920406307289838190147593507840001189320231005712934272727529594340218058689068214861680542578822316712748146404501047318680595350171930321923064742970446071743826487236071620980981683351920280060524547931374679358741143972322964092656576117186496240543450056354042236430318679021237604367994889545801969139763634695720726853084259425982159533251814119138222045984490286407623648448031160858597465982956271948243609235806970836369309845347216290105724272218947545541881210949518564950973890209734934042576377759707291873498274477788236693262960823608935299666252755365847977912872953271665420545840125169305182347527638662032818596249743438238266991102234098980457351454235665805773145101005431596532825390371742541191713141438516839463212011086843865524756274799852435811618233216370671575569377204259316386503080868440901545427724108022326114610245048392006516051841000498859614985936686681882967868498640949376713783321537014485243548197435855431672401167388833669086918615982308730024719949254909845223071175385202797170018932206911679799458512892255123393160619301562814377826624789251194836262532218233749345708902023571501854736300673119986149103496653001547823286667224733041651206591400465047621479633544066053472441412251004650137669688885589386431212997828660507828812235135020088689862805844179075942344163001122115330707342248843123929075682980429780147332845808010414147069057985845840896604437466985137643531100074916414997997910824049367324998899174741732730969773317047950225124191780602168398665790954040128347296072846028218606603780706783152024367615843466998828083331765536826734621609589089431410428114213765447532588067667535452626761446994917223213593954734792798086168769066826106741011314634571812526635233569403876622750595675805953152803794802302387582758198672144776409183663557299507918664486777959546702812697005658504636393147130526041624091102090629463935358779789966109917646355521464133953317133620611226658573276408124955238126645055372501088694862791869806589616985353723012634155448599458328670700081252070467606836832065391715285417321333785114600401410768960592647743880477217046483879911292532550720606403414466497712237066979719074032091960939491163450133125840601529817279972471759206734109152168286962044065113999691387589614003521799166558987426863384621698029867369070544191035987580031777443793089323889539662707139686548533182042592334738853104523388278543097822967726124000606190579965213822062613615117756428295438928608717020974859869066096074810033439944841550767214266906459616448971219748838633147687771667799618674635987338779029677634393610479855260800681032513996522517607498018107047627184662115258009555731515676808811348797910603032776042754960709066707806940193998306099250072388560230143029505961661079194140441120830058171176381315016394096806706062915480985036640382592624599792170409645232145120565317475030316050163723888567818618778761064386708643434155637949582664728401044310558774935460297362495979710133552876971701467943941000503979200429364576632638941209361123202541404386135064829558091621349112439128543102886017346770921276379651121860982404520398523267483789904465654015024611036733456885870965100420342956715074980189828846184354898513650430867721254776378164458105993941700538210348254244542298147185345300303040271487204160030467126000686143271188171600429689125292519937703754296366979255983158752881968799064899355586854560063731089304321229857794020695401787708832154114265732487973745378321509614845624539695474538622811657553361720108913622274050583294474191403210878118885258276022534320806063592210344640769669542379939274040589226514708846139285813851081608907206572452514271267709680866373837949423625986650207309061658357825762807352678425451958355701466751058410339163337834565179632626500174470616018576856998007520494624677345123388888526989091572450058315395281755307673924872823873722869903277814575952012952047692830198661607151189123797906202426483224947539666408320328130164136001959031816514302780942354504987618533146173122224201556491586347495483938939736217846351408272926924173657733200122840750993390311403797992391712236206172874638925455611393692393209182903156349363499380806956086930901494150393124487712467579337079116602525281308376014181297790872022360995182730979367141073655824223922578074966056200053088969120823367637153930255470783950069083311952719532083115399262764846818239475895161828551911681263882961821756216182413168315171667185145658578200435265196435319499760329565877399709958911753032247114973585879690934165733552725000040307955489913244552863637444038413386467855966296200993794029628743651095522596572990495638775517990628787634175661492095292046419646199408677167695642287554450488173344878939652533061819935736994001627974764524981217480002761958788155248349924835966281255360633420981472114985691120912640885540872167270094971040234272302404948024287392474622672027036324909332658092219360366337812910727897728670949777583213663796896018684972617434751336648838211472223685674006001625028324137525867448894701270634897564521501844392449440834145397015686805619288404192836894515305381788372581582127496246025650287736695674410746257031370039278167615303624362221398199881751007825232110652019787715958774274084417063041264102067697619045724738853501663385807502622986189319399790932929732451870049445630216648852741820428674676231047453981473737577134055255076819923165969184971323118770377985192047819183821777385827638778305821114800486267244802952901799089199009661879404147722712130396586205665461640695266683513449230880920923686713136465582713726736363515701790685486479183369287613492945401670428961347685839989470919779623107485552494267139760021282474398665608427701392848874709680957438008946303976248560761614914924298816491641631096491606305663316650278264097465106692136574685515631112148960670141134833606613581489703474421137315435267643591308511726904321970602737946281078999381499810530860831580325295653621954186569225421992993241726449890694174969166874596920772198079376219952851530534472503742942628784205149817517469348590487159337941813488502948829388938538514965812013546453392987894949875060108043796866305720127175159545929782349686935007090177951625519328004323337326425950635867067338087442735257572016566667679178949547605365152742346799612026535433406179862023087896043470856442965575385086601648017055915349098800049645243555864265036137045820929048517636377447223353035673897300936096560897306914073982626147472656935247276050553272814779082047203350783922674194262466795136523875424213006976962007253041446702625147752238111761450096712715443566272377619938643205772036273244366167956037670641557229855672497824261376145082974493744459049102420071261839506959772072437669242969628172843241712187395115668912462975234704703645234307310542226194671590979436255490303304423400950166803092529718875352088380079742125717211358171479229616244014195348958719342688745947583267681226659925152721930899658940700793766767198280182271803272129484697000343002289646477997353792105874243439166664852448189854470481786027861723291308069627208317458561003735720867835918532183085854049958229137978938206870625898768787435124009468572208602284543887102138741241071285242497592098995782976169512834936198653387958703474740643078656268464227488783417789680221984428782059509690956886931447934554366127655981630092568221297552396468082633205409750888234537138382573056032462416595791736783797083392415923343627232359304947098469293572053225733269343827163094089866070976986977390522407609947544073510285883076645044195099382418029049571675167322935670853406429845539847009258304198916838894831468032923274290421838901937585052956486984588319733116242976464139166750948712047975370550887031872504826837689414275384855220268554602527897696845402873445513546329524067398033303660058557447729253637349781003772625154174842367119423068106028174797253287845428096470878518125456208314209906049936260272301447089952054797501233950794579059037805787745030241074713122800018918894654283603698679916358357590124585251569025338850349006921949233772552306447521889717398675689457008105627448345907034903120053433887650218250404683530377456405715643910770546653097188351974641102097648395302105883449530922197549888582804353375713991224941257183589770763618417960893715009201511247841728457985980607286530802416630752448387003919535448499484604858603178690633828804897420896231460116311142140157049817396910077659057763132459073824493693361978511638870727626290269429005496098660649875991602936693295702095118647523336885946917431785956266525072270222191981798260043605168506836487008610024384613335275347093007250858118797826482689431245641570961012158516797320648413933151391221939061226155861893886002904437699567480277362805627029533728829435067750285469943833708666677545148912345323714481694797633692951630911852031059828844862622530379186940276276317479299451153203206836815062888792322025012414004957560063225042686175455094996689977499093957699605889132975857017443413237086457507292242849750954866490712615780840633303106569787193438850177800067368561166021926709602619592393901690164813173744682173232165670310248151531411065557109106306066724629894462425890041713570719024841314358245948732231704785177994875622038691578094507880030254026251862495415745243015664507077874673530063594340767376391748240931814166196592059137051497497179419921487627425207453038120893375698170461870643789298155720309589371653919784366562136891511190711561568815003378263231276734549216101135582527011391922093146729920858351909080482084378097896475575643467440861571100530500419922990169256766139762478123817124996425513804102892280766422902823501068171082381255593373309546975705908529598744428946722082993817378419512173666359862427839172611450456845582432018247271021471139018733890720897035907474243714169512369300448700848295334712240903024930822423899740476281864601723037459901302499120831855245474132582770969364828180861371115970836779360433988820760331440735259562440427492487985199379589068555561759531764741407927594543970198467246886543782929982787926735113140927081188877487706259810776366185899039041953421958488330731775447978594903510920097058521665396803320888491496651736905549559705404739451451315816541597234884502308562845996232796082209017741667554250226317794759498557138465506728160765276174225971410825063096232369065442680108871473526098549463857282184757547479779904287175758010069513558059381405470328320302895975088347949010879002628988674008624429554106705719433070431791366864260029493166972182550643121286428035497676106846680803463452898874479569596233088233446485399022924993279082095967685209030662507151846097828264329601301600839691342298022574703573153646955980179353394770882569038611791993580577548757629181146714152045157660728921178643257399839921357734658727048158841038991101363106135451961984273108716560105112473104560718411960592121009351444241186783314726163857035459449502797810694835601989664749464165966547150382030217141228405556984049705342144095129797076954737582606695779591414135271808905243231841579062383127118551730298021897789591488406579398414571597303540454968576053966779703541579247821138280495843158343933083403188853249980541911745292118802608575642849858230919704126491799625995671747803225532438120626791411223056139969661258434897769250437942715363450814738342380007706088629636238824035297964775224191492504283369348198040411904958420714756415255993307582669802103884006033701037764068198923760976591979710105538614600362748210719268321508953983389776430077735010098273402651924114686088861158863970729828830926435364012968783433097985662013285679636647610335954405162558271189281109719097339652925755785808463380196793840011641694852604376152358438377641607238300585049363445008134055278505355045988484992446096197422945502374989428986849335229032530713302895579295293313341929019844428238503814734234465781563524820762550992548692748679266589141275747265316127305021668098649381156905229261109430766406920132908604696089167662801983548825979269938115114685465907330512307377522671872018122151290084850545370104789428884766665151418887348284040141922011181777423101328326080358264409350908205460204741629588797401147057513220780557668264105471278874156843531550878923114839718296953962595390358205088475059835360667823352288589846641669918336455194538789399535191736528547453132378488068224411068371705364831814002988391208154226690244517026442625469949482781322579443628330728943788979065910605030490244351503378940724201369554853699654718165266071776009348942563583531076102544156003614161055692829026462592816695880660374222762430155764628820756222460244920288395735082981174302259063241517737987730926472045230600533641099492115323425496143123014959776688497337645768004162886997372576549050098812518241309332349273971463825008682756870906050042972731456939251124982503080509437083482990786538360233043918626476862682531416268263120062718994707968271611058444466453978970223284728937317607732240900458665682131070794224069871843545365580950271364266732357206418778408500413547530476476680297533905160624055049677131383837744479472909264411901887046432846190110477471838898417101446248708397869651011988233953646061827299900067616772950807582585105333288632665094714967808562025547662364079016220802740305397879726362539292616875050676008595210595523335177940600446360433380263940785073057845915214840259727332570325722761107492633073936376644967207858434960288500809943537074361640246879814120902359026683647093157407228683713466881366555779798105978439731313461111106465969454908054582747027951785522495240703884560827644804925746498663851421524883871891757851503215863469853175601938608996704739490881347525551644379646588791184043846301601353969623145511058403250064542639971978452001060665648442961223493503490623966861549670839659048375560351540168349539458953068837817587169124495159654744258330927294043298196359239384875689168417405520695342259410067864714767989653976064614914042311806549886857478007974212924081324051878948851256760449520645808938765877851635433845052810350223364208514042109228688405009349121335364873246643824086595298943789489424719979451140048537409109755071764562064699178484113810818483568395062913818413218350104563618295844364092418426241643740519594559521752571638047765153465216920531306793142777431356358973531783254617278456197943019123162033472495097470771614900429225118511319939606585635747203806602752882434933214549128547560005231184388329087342020018893592620468886522834406107116818867534174191976167439570055758646802901584662260632815585364849842766857629952515246472188791443649301202986190600808949996397489988249762626567110132817009653377117323179469158792552113365367721494755190855741866326923592543985446058462734278955176822824425903487276525682886062716640076943987687589747668476780040496316068050870429857314830972714275619368676229819345499286234488059983699936864125693775401737242316158270689877182701009958550917570207891316923640584106364857461965917414304577262813776709583280915589929975238638826915230560562697606342826615964846117648191370873262271409222671894623668522691713497922410133196083446743171916582581973307120999798923078277657575446968895670995448042541023350520942977379601912889192787202283502240360884549548476449286829804512350656057200467556688052517125666294265550583989438999233699887286966117599167091109245844433869054658832090437958474087859831810167647335470427487556828785678842687367379488251111730416735423611541101121327431498704164010473936183675336307069782007577395533020381046125339022408750893601877871394148330163547361871149755518517480766873741639217999011932303403789362929796942324195834192068043603527112531117671825981826976210778707555337995474212706806094389246205771734951024984374548220043013374475888596995718405737306866680744159707366230750535486071139666885317413537112055805721790407971021038080272339492017397343902108063233042958972459876482506196258252629987145672503160674241904576526240654392225541161193086974772136839777754026479069238150879846491588774952324481483942280460161346455804017885256113598264539114574619401451888890877244341069582763530566262390658634628835073658841224195703950640663595336081129564442001404926894318886842732167285831400373108291292191317237067628208731120821204270220512157236661766099790424246490479655130485133354237340621594189897106099802547671341485169762504395453576979883478219933485578725273085450239276238797532121234674236262628591151287368146942596200019996724613994372423461358904974291368077217972828560020869517723902195466120219438791762595449588789194121574243499078067642137992373947325962396193439523697408363285893801236091228669724719319521176151932750870280667384836187133673513935833515234182477937549496664651405469616982870480671886774797543871091912890952446682282518373066489426095126518871810918157360869968115081857433572671201349066362050948295473141532600459079107779332774986412688810584508543629502307040160067745320142033936355040958285509354033994242885000182081681678636956008852548835717775061586695787612373821740853526105391674437611912560444076417177435466794860981505371299081784641233903022867787037262907250773666018248999447243813387839137952905887551259433992745117375307739503626441567626444369687161673030379980328991257928051732796417117975965306219687879566161697160656148833349993391818019726308674942121660670453504404734692597662988899578624895901495724234709602930761879066163767666027319212848523664023832053136976439798551679052013196780471226973027200942231675297197395779359846744203277926254976696096179176049904684131436018124263524021385297648455639440366597794482518141822079370442019256680475377601212165202479453026594946885487927439822287785397730780892803833354579513971275584744450699784081871388018562277097218933485215990507158738268748053205156884237965787350822734154154714420039168539191085375939943316142804325895733642357330101927070115484438610433608814977296129869904341647464835804240997015475265649710456846458129966852975361087416560170536980552579841641920078233701451386211654077006111918265173091536443299658667004122722719256364398866734690138298896222600353569565760272522274398691214586999101694499600713607299135652568531143714331512571504804832665688019365757867260849976649924787614266081409362431572336880175913316395283549144608399742835085130976504128375802761536165195337822461543845647710361147039231382454098161990430936883022280617425012641715145425555396447244426656302404032711650456491886095129290080728973162715870110307073989904451773248324776077559470758260830175093641617552097462818043309630002273669862420556408724160414486850288749919197220209315456164191252128084091624814706214919796180069442289695335489892356916980392894690962436464457830390332343774359410316434060607989785553732758724297037119193700678198879805768773481107453227517324075870911619428429416791686564301890791888820441155934327590855718920250793074465225054099448785895060141577866046717173651635923856533930843664307933140785735833104127799793884091796339239266357754634027175708327915871444272925329199199997319051013017518375889880780166608005062943596342156411189104162515002449978734139035156507278240954496581195409518455930062522683544803353647368962542568639737458924076368204912937371490095527351553492599157292716338612117066827458614662442016830422700010933505568702334957926048261741858955900158676459431761172334965286152401590175897565619672743421907251215579580077316612261715791806794197800424983228866866229755001373280511949598730046335464310843754250735359185014263628750826898395127583088794884330569066010441723161376178670067617141639132224623427063057395090922487176479600760829590829656641961864592566268262707742660738835303160645723267349219522128931522527607609930111159625098883219334052511396599562292549768696552633475233422070239176628597971726001101044085329385965463686178937472257244935514512452808302260586700837015872605474360112897315552759168524377926876578952278804348836676004747918699506223764723837859759583521065155647126875917150190827500739744814488092724686657223844696321212522138502774103505011508845061105077111617581086114749719284266622365005097678004132294180891932752212388403048157244467999461344316550419435656111778636338945180547634391110338212570755081572285719958427939166462792587432935633894210527788374426849959741921210282449804538303142565081029054869181494867442157600274732154261411714893146122761239351867056464404863011535502197218859432112569341108768799341838342158772340408533665800776495656092993762384352168920501064469099575076016016350642161669454606443932742913269875335612289658258418617598621504108790314015969512204641728907787000888435443588098228890294383406917858928432921743651490981776119308598338911049704149732647055496542341592185257701073924913005209779199983257872341968226853402573503562560541650043145835107543445905237150588589890478659948339670790932368257936027508636330262777358039422444031934030909685294358787554941040366648812825593605231708684857069898188846136321419499574561547665740248260566864871529783074817506169701061236243578529322359680986443912854552990805988891967572248878257717923313305439861719471606136076795555655637199817584216057565165792528446707072418619388133737966627584819300492474827188733600571562887247117913372146095130122235556187965350547598590248696745556868053475343755769026112969438749681739854166974965484947060445372340278163459572977093362154271685102180318427805009553517398181339738086021178367604134991386210399548013733662227562978547002758823483175512667842775458745414628744562727455450696622474901716958421832466533825035893763861526091928273742699180761014355929300145442452186120917627078011837175763633411606729466820749963338124694792049893933929196049904860788398798616767446015158236726532945619782490545339403826559549524060388758692658419183768973536856809405624839656677718823229911579987259289886061794489350232716462506003342443454835142803105148716045633702788388887448075726329136881567446342898221105436713614070464007959117721224599829584705465723983129684344423123466750952830054664452227167943576282334759906717602563554005871364010463831987034724494433102229254946832499245945154301717207669439602989943661290837498346131640282657581621676869502912288901418244398110299880237353823963927258564004090959339381034756929657884756219861489453325147532643921451747662636958166178277592353910628908877409353858788560031000425289494579254417411232175581933677012834609949499041966678494079477060041632256495235168824909712673509084169236096447738207351733396369243422146556537421905000951585954736745348946403318041183130161030497192689587375676663413047288173314130078319786795160526755465013023985087222576331326431751460801904812334505981247518526566659506985061368390929401886213155970517567692591556007297581914528699477773513994420302459411052657559446246704594128560226642408415017252503022533481824617812468084583652025481242761720882816459299237501758838076711950046817692912781174408474501579001447700972879061105275126343024825413659499498201303215477619728197214427017036324645071763431615329120001594282178183227413447856257875637641699021267425049517627644942836124869326860828469945539343381899070922633066738910401936196289147421031787278375241975980071359112509491506073456899758566295425322869708218723350603487825165289850873363638570903417910096053040120536717316669437015351060941951316432253748091745521184787338684060428745728859830909404391950997512917664707398019932024734399185120883283319785054783907576854102114687610951226313139523460393212267796672764103279347593172704982916373822124625551974875088019733543783688427879838643866714673834218270633682165995269356220225859510764454154874181477930910335751780994889319563719556552688701107855259484796595852513453053120416387742335285140227690597154959308055348318329001023921328093766908786225186096436781428087341260122297236497285026107972457476632127732785797788248002680137576899884436240526490290008315348000404374763709849623802750914243031184162373680921691747610166681899704772613798303870699433472284906661922846010035797893440460300109938788342647794437768492707154817211905308060859525671963387847428475207291633541014561122745331011028392800504005941518525926058861235860912489477733853916352691349100872613966409976286773560144326812686266900119333626135542912757266294120829625967525269409750163671650391172182257407859074785103808577657297667312078265487199565050937868609496686933517034825129935637738677567886617998823457073585022302120612461263712655077734397502616874433759231911728490700787874129838138129592384491991477470320838382820509404972092277525246916570511099775407204431714675539744194965580502044697301868651569433252074998460858518916108770988373630769706431489350319623991892437222617037247911599353186904679949704662380140888344224300759880726495358984970492460518904263491052449346338246559242674400743512302920907120289390196295540483200963984086315831014292705133046026777798136685541336239824815173564885856856160799700088292155289571933971039967631642118271018657518231310854110618241921940909891481609623047025919949644889178773734745442089272669127293645304550131518196505451221150563865991703990248202052465967285775088759713896300251439084589299989475318781112245702360034277227100052406207912216307354100555720529821831730286034757919786392844439146295269022679881892927102231016889248841291526716901658228656171185006287595474652627318271208301769504550881029064966784682615950698117621000734219355467668142474244286156244854846166618775838926894997394138130297208087122398230868948228355868124353800324665645510821110072996918190743338281895281194231560559406513215926029339299818526307588140464960149863316176099945822923327167521170726179924442037682101596578165929196688485471056678857719005184585885689584897237269938255336251421350429491511295039229819514766085746721438498715563057351154226571351113041439867110796885614694260517280811608587640729932451585214977145542152112452958881896326720110746550545234892128620367668830602439797954933404228783049377455084100360782565216804966749222633969885496000063858835887762577737867692540117217447211561551825912316916446964479993997767037040536155804609519522829754017480246814638778215818330354242295216614824952923258253730838262912611796965542198541763970427281945081359566401091721416905252203505719878816694813775342241754128295187669845941245769303964331427607343652791762226388802624167148034754543919212768802814586162299013860300420496039688076527155888882676054872020026384804904046008533601273358055394721960970722325075435771244938766572522649143946928369959590323609173824594135084981180594309527348980073355252454265079925433064479476997260109563881339413236425721166351656579890120187087661746929036935283347294447916888382393038581895859096936402578995873755312238863648269252789499419346462167956884822725825437725057155049548194648328905460324680718982661049690457485158011906295264032680721300955603091029780202447352172396630239771606759068242932126985680721506386309067820075027304501821586948907404566290624461851465756169132049661465848569446390526496404614422884435102337316288058107743986873975776716110494452507767585240564064821814620073074887111893073952604623916191437350286719988340833180009903262395922842290070945871203356422678241546594499195681601310693585383544701877521288854799322892177626327957739004934300960570231705171123746530683392549275805403983885832120968487506490325244761021784289242405694823265245022016104814126374055569165580554949169442632866822276958571758905645245156981841203310433318717891771341349460144705528718283212139271052707365870812283101779948166492374090343836464160984257322058520005880100679255799982149343450125335446464935631403789906015238409302307108152090793706444576853638360572772938198876811038521858214540210566824121029525605319298246022285586530845861182375869155392172640247717322536064961170817615816903209592108434823612204509768041185938871447752531974354384890559854657842014235250357087705518236010404025843947175246375504055428016999134250701853382050584704821478596683179944518940218393372926796351291312755680141264350969370384391001289974969364317420691843983993143518443194663565050303466378390364896677941606712966556177066896060601130963334215043646456891592303240876509484099407597615882809116806999467945378863869522514161945052158198903320275421665494689778956805184863969127740065516262053599313629093165570813040753342624794323020886600299707433076046550703735203849558348275638192995521537139077498098868935618001941261817159564114381600621493170333361175387132668764037937517446512545287151550797431422221569372757691091079990593858316004414330837776763695386907895507200067300524029187992439706743803154229118019111210807671255019020184932921385358516377907250450203110923757496958956272104932106374565953449366645865521610658030979934068159631806609635888455728239332853586221109656235480808798460452826627940111927687236687781057033443283687463670415245592729932042161870530432981083220718807743080127754935130656069484969038003236560933911550390255248859907802664921008106733699034876378604626495179074671047725210892027240337952582928611658858381628138856106118086404561110064167394651953461966117473196752411107043981234974125908301644625807780734918757031653605236047490611555139540232183467515307010839170149667228956499022523319825914604792624704093315136647785807403837580511949551834162972829288236117705502131474473499849448442945593758522220288487746053662618059801453055043790077574742211782839686051345413429279459371318163659298950169263534070957176329280511325842657670727200309712752573527150782293079479425589228353057328610302281402861016801343989424324613714675903641658229838616943347241455800143234867852629763181156444446064143569130088398109824316713199043958696168897274972356366965932124523329606043450101281665847399832576095302176448492644821607212121669964379485308468512902127725007319624748111280367811513620499605860890315290957974896313452753752389421910977799835550959563002861809306597691295951076982235635272483037375948547145168949959447847240588135940678625613015407336930572084915544294815709220236507371440484952199065237771010683136736545689075963637043502555956479249984873217209217393599022423362502414001363898949805524559276335107436406256028214769846192687256160533411881488776788040371673099270351564108721618287290290211247119285075733953503586649546652422661058280812585237645954967597292033370573314905142885146213724405094127742003472788832091721628267593528605013829291600444768204063872112658642462790883767170167584686433651699711089447418909103584287082975673205190931529223088553404138071467706355875614381034189789805648974807264406999434272665125769634467414189544013585795775870876758519568880260404081540360992235604085198780166366708765133341355878914363276675629848708767779228569210851057075397156592844717571142608400100453436437897790298180386523644102369629528876010096508650572386652361418905052287855770414773109861641818450591301289552196561260336150230211120464251413237853869857118327980596700615282536883021325939341653505800442757297604081657981012411341134273725967011649065609768964231336705495176563072565786512495388304707344174895101494031804954354314989219427138460175127881907535530226235394368339177705545913595210220385590258313883532825738815926611493183036098471947130748988976289794280493708336717961479391867584535868605201483718527796002426548899673701481593528011755656763726301865462458893770014539543619660129655349614517760648062252392345543116472693022161602575297012593018676629082674117542424390799687159405325058139464689262998332727815635652581751617885057133571322565489984435615221520289436117732664259378023043172314804286166238469722372800098140495643967347026034655130057150418117240521377804645649994790678234052879487697327508521003296711141097709086014004952962373598636334563646937244604414944532010489468646688203196132918424697996510999096215849341051260049483448924797798211478773029855855482820862625556895177631902048594893836062124046825134834210195616846491699764721716444172481456296313424731922471368031449004901388492090040638858339640968957880803741012004007498489008766294306839055084063830819174471724052490607171397763480873672671001546385503023153537857583507344191284768489007702687290746665174334160426502654981299661513125277377553004990471362330860953440601949342687493137500582321745436040620882907774173251202897900563935321391620312058610216699598275629066167886109320425261774942454874479869530702516445371896614207821926426427742153113285637838554354317418030009208278458417996431374365245122274711920870589291523041929756997495949164017625274550403190931654769612669197877727939456655009032997453069594761772661503573809164472824915348151138576875833546485907195581540693809251441995096236583455239353217265881220425054264253128212165338915315468122417583736628268754758298901944775580107166972037278702191998624508752293530906218268838466591839932276680208073438965694504155590537953826331427028077626511037301018417519253125235302313702014480379304598583206463818950872608940478895364338466840825815626366613695072517098292865646970078207796379737507139473334717545892173707091906962129434431138149962287437102017430333865131073470569559703347967855055759605307018164515123041756326453251744910950969408336395416268602468523787063874130587436952347814925474632805766599516010615560337255574962576684152874403648501282811841907826647621889531658112977702990207377789804238167622513554222832524975694596374581791428202799362081173021838998602002881957292895407635121369274727966446294331013173402339432163775355530125379376360312020462323380169924268023874795542337881225061231102088624191633658098593109215715119202049447071089759377638493733954552645171242652159416607722240831271968240010906808380498334362203151634392093216706824092075463460322488470643810178012395971116723101192273240883786014806965707302614767261483083971004715228882745045003132340400990573498412529150250683729206316602428310391439255861687806320457646288033541618875000310974717286780060566754690457332861986211348317084441417739961909847854542511823781430301792554504749577412392373285725939868621606524542387924188410336005857660511886557424412660843480020915564750916825025754514551300914862715929995584002462525390873409418511522467771426793204046504057006294266543782677673782287649157446154416387237424870843918784976680971203129609676214262469664023459955113980413599704382112924951342778792429571980335440943691327995885342767850924504415884970884712321704658442302948973572509321457266523171457185522954750875156646725347640232555002137436083863444103378193120076408626406216149803815604343226411087721441255940666238479041510561777551802738031061793598119063881032907825671618482996858610944187766253266168515380216845348951219160357897676386736257738063990679735192033431972056375675321707412882333955440517585650226848766061777009981723672344686097965684982864549481306909790801360906590370089354278450632215799955985206372998702607072761231979093495807434021795884549926344111069980878598016728590318025733247662437310294820655920786150858001997345155789474339515819967702802886987068815400306478392524595353732446678228578691587511069129692920559488434265012059063903569303192499586202526405817715369491596003397291397311874214477424358196268699350477956291885300518807026616058366476240453647066722120553978160007631633307100780618036447738392565709737405509056909275481953559281202247188012830088264780852729374900520144252496119815991150434977158438776409624857358013393756611932833904743669985274468221716539087269799752358897456603671621739599532075805204233024123380072991615507888555263206705376160081200332238255164009572563329188950107119197516206384880996525664993501212581732071289192897837071467069121728413329939697001439561638726830240291585734769238087973295121677488550062123870286369057292057044244969395327821097555671026684263978829241164402145972629879349542418456481930112562877646548555429778533004057752685927770172551130675758336322361107710182456028915527597518231266212344130048205490662001787686585219708984822137953907061430192189529818612156326867950869365101744941400833472851552140733278370232438394161113304220400372374326226224218596909186411868450721804222929166460289570736342269425405674296238605251134913236747275994743208889759835747315443367578741135688065514854320452025787884024617430138791205078727374057330029048902524034135784883178462155277472398115891466714815826531364499531658599447280532274199171498196776773476196434334921748289882189018908081807487022983650864612008562408178010033014230844398186650503918382087488241230563869296003120229526885765588071271747508727704846330136458900138506706966402767178371563051730961411294160355046790723574256517556679415950880998346933833440795870152876359035140672432017649366808686549206545590625224432839026360373398376150230198816141361089699438644314655600259682998400738670363365117971365327030940736028893943192483007061622322685140375054999613043039313806505922237031703295377748441727205177666352862696336022673924116224480123034724278341850062516574343678207950941965879551836488886591381841883350342048265028121271307978421532214564123035432514571322930422865966333687632883768010641378502724521186223033922693507772703532309648656119842465224125860724567246361871371580199481673772574713741443273967434316137261728506726030756504749279129613137363789435086510812029911093788586729811544255094825820049830567694388629453454961204684345795725992684148715635671228890344611773382793879653518547179671004918617233702918837237745385608627188706189775345793064482649081872700126369487203725814590045669766171293881664987525000626458737464970156470116667047659267346463287819240051686259417148157088606010307807419293913616667419457779684552414854135729939601820004001312951637143447979742240282926348805269955003716577474260936615926951552738021060951447319606354005281239233537095431743487614526377641325518289730332201150660518573718541413914951244667073462829016415431145987178069680305584810480268758364019515878914277654003715085025766197717972768287217199430105365620530059631866476844836347549840499298917784284810834734821354675082347820920394607497123207541383985423878672396747955784362559869110836821689818199916961272550872605377735398220106377442550834190816458680081437356228557511405793334468401729643838485166438188318625690529390179042081747090221389638471640279990151548385973668479749148658451957782254622319866178507045797050867184856698126798813976489201477661395788048808990643533074032476468928706205615386682121834457345649260279628624301989679926675745759194172585103843760310241032517985698525935788490975078375527031421855800454559202854423747333945390361779965181910317923523519167814209211473275086154089716400761565576840636977665606664264633182232851518626602248723448709121067303442882020089032136738715318210750687523604805111762678483364187837643282325209743892438086138557169154348480292364124591485688889456603173480202609241227761024830959889474563658012218276593321789443572660932546337193016590207770004988480935496339982030170619772734724900659001251249459087022406763012540629265969052167189971509087665788213440539990443833188506770475208462685863584173801013409087781742903336930020618409540108321519399931394571370707057780586176998257989752916905343393741174058479370114558704844352983063548767261462318226098609338493245550316698587185259385804762940490335563646623950953314788905739640565207424539166732134499884228531204290172964233799531370900283723657091302819478254277746778018522748992692522317424086787748999193987611782322748619823420359050506978608899019244229162445863329864356196803869497205888712318056247768586329007049012611819894877214717954495880458849543029041349551733066556762577496135099223507667903390784352990962029710620667463217002965366244643475565756690083455826800006709725739345593768170968299314370237852859574327612433174909636740862087632582254404705860212465961303400628375453115231133605312858299356626759064277261680428022877305605170275623133796432264891550531554177212925442768467672094021812618184904998247097089275791253909148292152825922553195586806637813400200107134433829781459053721237480517481137268569097709891261989545629405714208389038332941741356293191871508766319968245549978538788750394142410921819785522498103898128491302993152122228282557023446921254891044027540227767716552996097582503623003489099731740334744870725858244521538468864253642598862145576713327434812682372962088630588219957704948188326445067191526137016584932326812877877669124350443222334250446386604057488944896034072620731286036742641823518666733014000960605120256458568333775160702268754409120404010720526530847263279516895093626996998425777113974223393500826022052502436781226998612887423459473262623243799836208867647266109850213773756672896544998899782796978697745036035323479586535267099062253340867727701064565199284966561392122994090763171363256339573817011742438863657145813448530739801427576533499226616357828261475471911955513951659509119846151704457544469990015475886079435526608257392999592550238728616453169307776530115335586521617866060289436740555434524519541690497218033179763375851131189783221927583453739004492692409273229898894191876123717027742521638464647804676130353095704554256322662905803495929817550386509720795511723850593524506768521379531797971834449286418683052055202280154715366563799575842132882657079643441046696414953587362960797070725974873550730446701218228604834854162491892198878558229374021660700106061007951303346126252516718036867672851008698630965788034575119675598076015662046466850123283624555254980811918193978407655880745077318649791021841418665060431739480969624611141065433314841787104576624281482037057641522247388897499702967230058414618748681608731850287987368487308008889542329371064933325780431171682043191669914531323718965873126310848173088981645699363281051746588302064769138568068512176228460595190882086483753512272537496817270550212656138780353581856602263426275489525819018211404076166328469933890360839158627106185437245086480593915704721660526657674932496563616052183135450676805378008350956146148082602189807926618914999813707948898770037386125327787390297289784422704960117199676585315141478028865167918898080501252249882119847334339883349043124950433990927640812445986625680736692846526722008902106095427444798968119717505836956252707747769748250737439476945180231675227776308505450706538165816222456634881778434577043008513838083552507168330916449916065404281167712971890310950820468887110321506815350191920351267346367098916331684443720304880836571827092103687743001029975312309662301491063053043562844699585471963742932757596402558799300537503085970094946375802070757448770116122991805661251156599846260697632025720762684024259423640349766139050264407378388913725548067055786114278828716242764834177428917754799996171510190183027874409660634167256900709998453458226854649542879345295479541346997095362066790002305152540831518685405461208702810929355294291438535783269777245901386591702719904299750359284247982603441497683821765913316369347277471990718557892950365915122476473836594888293231339730724973906384902361833786259269253245521492872710583731946808631321593762113991259908280277256911224668303876582307265061378076500842567294632583707113515653225271531985845792293482254899365233807230619246062484973554290231511796613404976175088212261524183560443635041648259295177112312558388856091243749994524527872796229657985813881784096770037743612703320874675373189415484310107908666033755750012951203949544407869455738304708134471465551109057977354541555740965752542649956216268022061316156383273107518999870452420932321967483399502078074609668505152847812334751755214524023885696839533038993394980338933011422136623864153448383965374127941079821913038264666737044728841746516519126002617757372440762767448793899183885478918242879181180512254146183947506828235977930020450581696393950020827091480348836142900344912701845613219515123058699660961555325416241371808529755013210808099371522259711880372448915097687062409386343898554426731681405462226874522055635131078892008632415333979619019915087780945440446326939383738173569062054439787780914492314696385958217262489314975809440373780075729586964296537075278425490571707936418357282607251388853238946020080848654613479553374051957096715669755689837881307655682287262137426392383249739746711985498120751643125832644910018895341506413380954040808816120013295775275052170938415268551132528233995590521984536470528710155659411710884405785579063038868222706769608523010308223130941756145034677200579562922818741752688491351366660465799155873000408292095446252635754332339086785233832810138973312158165649204279118684807172296361435975543625375102472113993491854048859343344696721467769734515929303710814725316242986494226856190340479539580350049911273534887239065057988453663146028371111928454605464946828784217899117224522175272239391156615307483224332686458509195642622972600565246965669024268275510722786347551726984549757301619389328277559428605357069614755581847206539601297997281866770311028065337588713662292026596415566517274179932940407732500650876689101175161297946954661373953099548462537639762752512345470536296897997437033575782252480076993918460448412009732743408294357799140830523145810264934404780539553576970633733094475884234294404369680567740595196195149910067668006707794173592718288265206226184143076596388838618623416131910142578498932957798099846507611340872662661119659858961316459674536980487744249734184973342087375222020358791817677871994535468696111395519629467026460375837226276263556525281349871848808636787730458527341299057906115850679768416010330570729379278145306790560756893663005050213712208904681773536108373577957849979846099385891845684562962505273732532676931996077814071231493183192348943180122381981266413667727911395178599854239639922954843966164084228841864041871753452603355980218400238236225414569945255741368764625672640888344896390502286913417594886658115635627539710897614701368488898831055117069145152171465624330697048452651804596804912135493362111975274154358135982932294011498678821336525437814593244127357160384617904463985564032839950636280914699636699425254366067387054899648401342284758285834188634451477009908967217789194070390064803511559474940721112563550205729828961587505376710234284547469317309139708950409712277988141824658993584721013804540882573462151397238610394305472105187193036083235207480275993191460592806941401622657712512634718008549810649509084447224111588927001814712041050134426514892739421350945810611052499466937938282627499860741411641774189042097783549006774366306443650727382618167148057140934573249857861725004675364762642899781215084860160251550194939907456664893564973287131593041173128608976225087517072966324814098945866814092093224805902295659050381452195994466456709025118616159948621798436590232444980770400856376559091627932461863394477878846826272508098166411593019729551406421932661560184471778044824578649873589375282723137826550366638691149505602266595510912587457464358128415329511037167064891286290002226927034893880236212479852904863599246526652654451475483437888528274723635934305420116672841099800772004685925204828123352871963660004246226329383071745431199529804247726562110544376915075535784985693963758642007054061744985214162609294865791186879327072077541957443309291755221809388521719925002753905075259169877307178602263892516944430100793042944135156465134130888119203968224176769295375054543887808589399351587358088687679521061719254624029390868060247282240495944036317044819238291935154939659993322623566704174875636249986005882684959976004644265406536845857270783921899070942745344787415265955297935369230055667928573391882982694726298068222882899668330544546846118299280419225228802372056645341877765608049926190794199335133646349446955250325866334901585416794007754577493624837098701183986078685428613653384245015328565136981169377527570033872311085276539219573651458928264667196609384204163951907055637950353727211964022272329731292754127873913670262641660316770307109589269665371481778615847034712935626462281635511367346235395155517202835315444242280614063035717710992111687347067505095848446442821794748579526539961106493448253217047586378013412417670374745382840038328846627856216661276605320255216000877113062990885254513445053191899924488563460849935751713589757828213848461570843408444225965218528761880177348997003721345872797873087478399525610215645006027577261814971921448280837019520905287489433958496056655641634966857625296041891757640590406623810997432405173279181766994626713839188245285774610821536593951269722254131844498702002983290452038528544142730610105385275394266648809661391838220554097600139690735536976400445686120701766731443293618224535015309631506471655320662651159400530925860794232286448561840636151388697491320383405880866533774626925070655043037635799538313085045692134154486125149868980767926126924239191846536443104347326590696182409162957624931105056463011325427038181734057937003104343136618163680423974043550810401475948297266893808351966655960842520801446148397294635439902852826786410116716971705199472210407381176957637653507704235501147455228055941481568660158935326403908590850392371169330380985498936339644116862050066884443199758689534767891635862214005659104191877673692494306297227011609633433661687171257456335370470386016769278984073833841961346439263703032691191362331296493393752626472828383104794346168564786794026638020077908610248377758002532339784782326927203718266695670317395254629781543833364847515140872217054497867431363215710488868138330341884619687517212157829451119131800201459913857535696820832454585383781975091597379849526731074033618042715398251681305046332227064785403834574945653961248721580421845546940718629846238816514709714512872182052108763416067642819241800305367564239522577903022098609485452801933524218508804345690026350231415399406154056836185807743506347962043992520921677176641597381659305391515659573083527237636714602910056236466928451840440595246442349799567665366505471098528316746953614519495898264812431601836440424622745528368488640525710371855037750328732344906494782590809525852124334604185193629138566138964536299320234659024693292685309023282662460224277879448542289135626826779504329328569088125182390932874392128339276242663332769296737208602637548454629735006110939658740741898543106934110745907170212913379340482894636072330259946242583695684356087559580158270063067016638666123115205258216211382555890647357187266780116797354169414568919829979686107277316293366410731777729697367429560914589101705369047895866598398057529805792879347766825034309391615148450948764286183364663766836170114472521387758626280361114589509115636185768614623389433194061179483569558741361959672232380490459828681097648246378179748879392424127255472163744139233106621573341828215553037040279480178686434201095329434767021165549414764478367925995717589256198640671322480692509853865105827292118503284889596904434432627081183278698609347202106074215014237915385826334607286497337108620696771834284157623782040941723854626604752692688688164870337858420601759496983597976394832598122461290563374270627977618944048669519481674442030465904590057618333007643155530856513496007672270537276192357772320205494253621021868284338760476676363678966233820358248622125018483766595463897160988502271829686979565139761892263055519906261055797454083151756932288855857930009689436298676163265583183486806946874065593501986798119584366133984584209889933243018138661676978803440136930993928521210581580616811457773134746720821062804355321606711128768649066880367746838424774728838493078623685661968120798311191633715358291888246910368403640292791972334790569466173753983644974452172632830787256405914576948144593778607634202161124346381940085237332032815683223676819361114021671676409893389601642714722010876300162336860857255381360935882770647673120268416613500958414683694881470521963507217639580189418548116745360786594322320106678257455715106815146924834556885115413533520673607202351730088884554015398607495576931551074858550003952999752151860122166850718554032227825749803714540229795210375168922654766244123411358276580198281703681069257445447293782013569754249643299787150401452641421455076783226208771253055530758908838902806814924085954657241785489057214462087824652656721915559169051679688306013761649195092875019377393427408648393724716371942412691575944056778121894832727069640780308391452772696536062852681949097691193702381969296336088475968576307123451453621920881102241753212021197909019045309048688066057408234209308148162567641894989630132604933984051340781029798209352512275612285516974017212744217247559051405321987352195406506578234252742477498365120662527816810640272028063498043759937537895134870283232180914689039688957814776073687399110007035102360696351803401263031560104919023233896143186354977485203261624837699973755448032924250104716970864551628288304299291189758884966457995340310668470682585668702538547377272534065483602606621849673647110674538625584781001396154006360849888743177242921494529511619770532875312122560906797706799045999211752316653339205999359012706834439293355009239328381273793256654101532501798998624131503775444706772589973817460676437251551522696103462343343382304260395598030362924110503360185133395851211342512901220071765710061986984465680352522446469617369417244021755592866419734146801646362816344039377223022204803440935089429168210479243370664716682924016939836230266179113815832860253003735122345118608400837694273640257687034660811198096006940806286447905350186545216143020167305892738897832083864713946115932221713368606878550406526891010824958534665996834399915804190366327875949368069392458144949510162440950126581776458460989406175356210861876204831625206600785511133286878438054025757675346747389939879993824678584264661720498189663754628017162397596339253065193282592800121552170174711809871222114514481756746463934650135445922265411899363012208961968797157826705677151765822901210114110708366995697991020776687985784610543562603750797711839100538355183595078353624786186536545232914952697741216361202195821324330150603907663046654969502303706384095501164315996704143817265406955892106189856214000449225435510396916021136030953478556259079272437384059023528493259245699258719210130569676929843304013264172883106867460919227381180740165450912100103373550242110300550322292628492928982547845030451501635355579424940977290160011883687392369762649851239796634424058284269557234086189996685809226754019811051782717276799183931295168878614498465740904454273072823003465825177545568606964377538327548561965006446129808492636243623118494264821133095269468344919112747395433861325716116589108348753485203411386996920573364831293126288235826641977731816937232075432798829794857314000178041097485119994323840610651939513127330114003529377081796554467048871327112361972753249156693562233952907500320876580771269953057852841677350427893658764682713515883497575750412608505771627828386408893562064738306901121501729657330360606510150814503320620015690572117243068203196066323491654765635743496193179399873280659826745196513363884763627907305686986468806513223243231366586640030620819535671056849111154533368110812522613880103633929410137664157664145351933745325666979593426723084175245187986523532556028829775107125971381382287514410339875663073059351175618223684947995311762810946360526715045061483357793651562583339313193055781853800734102054335663604639925341994894587934024262454551484103657696260670291287041990892856834057180795012917174968163014929776542021366520242689612962094505182268006714499167754051454644120183071933331383112133058936646975013832625223045230726998529205088768067783403705401793972558747168477025689101861729014442530709423326052279413875248475215855814031526024297061851328311659686888932117968091460457007334474124083725948461815627782990418351484541254708621868741262215555381630698853142500182805970431197438002435201521654472451656173949424439368420243034249091178318678400950700955837696276328780494935348737099302404994836162613664701577974249822139080721647788783554576115439011680524956510448347262093550386980367236943949253719562506442894614679800908529543918864385588995123817535939381323697575452330787561345747731706745468166299595580495939580769141808311681733306865632988961970060547902929366964225040335554767455975410993589083518879224367821283698381216101823713047003009623621085350973976510909048646294238651455702504541373417313208948947560294332001859045185668039119257017098616272346375614494264423496937233174079050119820427989836173974733523572939135244448556065462565956335323442175747708021868051029813230534310254879793983233902573405614549380054929475429284703145343100850032641816156504640030678501846403365329454983791364868898595766072552804114926362808040457601201668666855450138614701649896729311685212286484394704297681044144691201428764518171065677552284528268363839590999915031764984919479681248537981820058755730108550197023777692396095088224041179309434616671074722858827282768832502994295376393998827926799684383672828115930146847606209542136925097216531047837386895976798763105634687771443624717694878378313519923950286650075068152704994909576928963936214436824625640612314447757965717857445474213359493919501800021551296545226836849507218578747323227939435666905599080665363441820386572661147750265435625981119189068112649253585711368141184422503681081615900175539884918774603835756939433107356661365408414683256523001794007294760437653294538636020206467466269041431603806615009950287382786049309648673395247661553240133622591488050888034914288567784196400999312096589192804763070694594634951455991506128712278441742798512369933624800081909597632665950129102046629214221127115682316504336687329415869264155513155795402017859932078288401305475764525946479271873149557010308400856908446577391579443774433180865305618220880045689234619946996405165040973325063615984721591346739519250025984437358782351066983204147060920107514294180752108355548662099983875321631626403464184985338888649824011375668597560979152665113169174989741789516117331774791364334625191169287368413951980703796920165243823016216258794834765113584703607790026722464608622725952116585092515200021046608032748914654584357476309442163966458341886614890451210525947515420175351079120287743449046925644722945121214190852656464876465511472955945288015663042536591623890908090653725865666305456370289992139642378894952407394672493202544036264182752661017253826300821755246587072984443475054950195380076709175606359701148614430230314610791477780090806101942051225445595554003670728804829538264023127039962009589122743047187247167814943587569684757848387659704465083505582411865598586230815791018348969251790057218888277496725509173709389875523862307153868512645778765887038256253879988646884280408998961732146174959702973495124559091115640414680979597841434113454864593793418851478450256218417188635030075003209431279421953541621397797932311729872793408468538759705459950961111969972360424881900312397982934559432748249250021357310284815776487812383764775966021265930157418665830606605606843647777797278229660979819939861250583364126115290390766844218614146506053452535442102690440010942784416698621690707791718186090280638102658990782490984300958778541885586238126835706483095201023185164742245267806759580616051552508919806783829492514957874217194274818502592715842337452142913398276635941076378760484575059156813387241199914428235340277297832112668131886964699705096815529921289541641601804967130112631782939143571506334392931521656041060258257110108658201103039972312985624617756472399475132702045618829365940027591151366268265231144952608652992443109848986385763544206306347079503454436060431664514296424274632312065671013424476452525842093958183189176382193609835283379556323246960444217961295084816089803025012168078847572563521010309625578802900135022288157752194005427961714899945658471148889001836605997133086029844380712085741963154436533911092707560717584354563246828252660783196965922360103168987177949328085579874527296870687121759917949603339457537070033206601664497523202655549779978670575023172117287251645754929388993461957865836228374667113453348321943463157517564305579691656984524340355193011172463147036143299847549373464572802400620630824561462896077751171797044899935247268450714553742819715119335928129057458763529593897445069587909758542337105281095255787586609578605853392737571767778922739391055838373173349871723880899250976913357379737129553220642395768746434431202687506371781558235555588250331072675556346960857158138268386133714098966074595504045614243319062126003965768619117814093091296327950922844378323504666138483614455209269124389466160594904861444730533210730275582554561264585641917745445547049024264104077601857940238990205786019689736585247959593941791401501378900277966269627706191803237340559275482543437628450087508954583298662019511268357697369919123380234127589078667693576154204304133087058283954879201843344692604950164153424599920627431439787690621962826823757172906268204663649256959255083811834023809734353743528500754388133676491638191257417537494743123304827119708958267415099450142435171959763630831908136175608578814229063303686514751073492801852341925214771328361000819373480569850697739251885148917037665082809493482664630364818424350777180797353304114442084409900319256965389714609271212657315125029136792108634334389546154015155588478862374908265513694808460998583761990436301682129340585946927827906063951155987139918556244809578299442599120773650949988834897614890554961687532961599617418019694331774077825660023272297961722801476093370077255933942661815094974757788664367008763091508103924461733982940946081222586809898754527267561702646007937686416052930784588698902508858455060488604885844926722652769149560659298676181402999208319222018786554482030182376572124338125438166522432764296661584519432923125064262905923736301752432515636061910974296717381703121151682121077924788696441279476487236753758220285331093934806451956265995659188730034353765480668110388577326662287965160136900408753120094281106521962572832875164067756406937994075789903558449516782346151534828384393068617103249036235112142389056979309822661440719445488168601108342698297771390696758122368910557717624573700582114109146962588433742827669175924109447447749180529102245947461864498868550075442597671069030915561163185534783568011927272174862062588065881695921076733902665835494727142755613850456863928807756961095936535800070338307007440226196384779260538819654958443061487349601080732921635077916215616045481579983781911948322694308679569480755259164122765419190047050893746057850766958441321338932546309068907440482972036671632683282985432967897876520188850547039069482786138218715358925405753817569499020565569667888471879677300833084355677127675820723282771317118219869423519612944873046040718440336672738981585944541452814650294289734034235562097174795814601746765211386825553044310543922755364158863625222063301725036997857159672368743423255290189392715583034007199426946396980692416598383677471820463227867242205340618903301928131963611722060435808478990869755259100703149588219161780646645482153587643370874562094347824388665043950683118978423078426815301516795098511237961482652369300135932387367275193182481861703919498607829408890941106312685797212109176669883326859556346477706443445277308544676624491100208946068710975171458541879252563756278662548345583262587408942002581237881314533153795385454697636396453262037885118351814090834430388652691829377593993243136953989226490533889219700352077678503804528435569643272570963718025955321400501501946344979622416610987409831757007736497286791242628708512115205188249167496528046536470798296354807852286877629164457798011800789645870641699019232423757136090593073022468041680305102039525231375767519933100898999913176859697398748129749461285044986817227785390834366364048329069543828071007400361364883816350283915699897082581033733024628138653567917967790661931271456813480505937905477983829174424454640431703006358400246204157329322077763595710086305041980656118111699685633555634967109589421178327994140458654765306593005217587453291049951886496859400429271739941793426160896866919379711115842294080479790525000333568537023988754549978594773457155384222049707785836532107373334291105897434387986242209168308352035104275156977769075579383136087156744104944669759762725836655366204028894843312520642803179264863382379067557476804600209702245621626782675926049209841874404792151785025598175829795172103670119953140795280033131179272340140109505587851766127922348443632000517636813187942423177225839357375213596518227909489005654939937907539694724939950554409192911872400667152348783195449221203899488447395100142861208283428283927218779927371975235067346093413936204176038297605588967300603226776726264194305791712761874903214159889518599772694525492413026119947043343863595113794949110053320360309305852497978817009784209483109739200749704521688157883739894469301560655241455596846876737114712686096643972405652267087125951208388003191043536136805880585678000501007047830565471882109995110800845471117391737028450328472334997687091934327651337704846691337776084246974476543020902640411768290157225366515297718471326667706779580677744570448399599487461836421391485042001194502534313434758190659384892512788210307239751093208117822793161290397957911559427711216296927819176821668815171006794469570068165062867480177796948512342607037715019521226103417848410423194569803498052961638301033705047496779244259137245751731618227921407366230587652441924435748862782788910416949009443925456051552477772414506658150063156349474665611720385724762378581608694686151270997528449130619762622555228640749658856899818684182366223244914112446232623379716232846494451912919615951096005297996194920796175739666779421499663890595238507448559888347321069176907171828533188877259516854558044086042254824700014129339691827160517293421468979733496069588957221153032295518152637247759614217575148834699077089918382863470262606150914268571335952907412053360002944544218309569209575217010494730541573859582987005788060805899596775904770999203165184594409432980344548860360864280933088992358965686435768291713741182604424245285626764408228738723673715038099314320321276822644126139420613041027137549642371364397839502751420606203525886890568271203062703426418476515045100733421819333552393139945089980905776997735536892079307010099702330042352352869275064195506255836645820478131243641111371375445553947576150419514593894704321406893019304143441214997294569224243840582120678178796400655945088465447215187800821099146301922410563659739901606978503751962498834418806775314844666292846731498651629103419705493970140280553353010525485400390667769014710702098218404187242977179406405335364966411264313452484631393125561641798869546227788824694067808547687839252304635900165570626298299027117163084332877802000639804316975033884446770538561586772015914512910230313227600460149395877033368165974544933201478528808452695246210326482723415280541601932837435119076957916653218607399942151946191060253019542614107989573518593328750758525085658303297087777443716866370977650122401953277623840328240723856037878572125648135083046389500751562610158116079764265245920795931801051673766479007703978329565873473861809173550917571242654224492902822589879719360068000851993435461330442309418815445923834114878471698239679791946769561318955740213476108476161935738167589672335082058570066613460559372045052515273965829874865108065849632107313491937732215841455984978646429947442238956014675935972385046019805879986488357724036461843914373036164777990883855346286261618670077778354299268956640930932524260031854120467003400721105395292086774782330656241542732344865978628671477096303845980239590477547636310781427276866936001852525434173848802621338785250837060266273987854473939232567333634027069151877639755413654856695664184819078854889533730989529193311591442291362791613307659508021870463092597842762343375662068490761646067453544171271862430392378136585646107297587226015221164684779825635419710018185303756803319398388818302760092481241234842937024173395117155176039407488687936516262627682795839678703521196522515576895130390581891105976757354861341548016306293121538271522923449245833828633109761155512709816204810051251212959547191462593677557457197830534417739271001010399796350143526592661557132961359469392341553842974105561051167366248890238923567124149197260336905060702864252429574407195088484182865650305251164153034061199796090173032057458325613793662670855948755866434707616027736782672160520831805205416233392297584967535975125500897377666526125904916475576490977490005779797175725872229062172163689485705227268608588592696603186033052394242799350814514273747801025423807021413037745964733090398345547008922070805826934505967947025804884129708279207089398585318922725058070522593799255892586010585235239164439905497781914844743127725272829083394758037265546143249556981806877642624878676586119318806908569306333804373969071247477827303702628687198376076721163075401079720942569296390522874551446594816096479178598030325256989953653896455408319249653339199895757094561676889407553456133215314269927836440964364844130220544177779429420497091160163642686541911563771424518326706872614205050035335187547693658501368353383556961562959838342009242837491129029671017933368528815059545369477179352436603589071522738218060481125725623809237249553190463006974391996410754412465981217775454244206808910173811544177909946100731750812798959995051396614289104482707644692381469190579372111227265549522688603761641339179923981223705694156798601506641156973345595808708473491504314872264426346800653227450377412455966779419840687759857937775855677057022233197737049580968193732584594051535304199941749794492272101239520747052346829943012513828991976061459072100732866977116043348794238885275420981564380588161539540015271245499380352943661871234340940130354867492685665375426651453967246469368685955995973875790074311525104021238807831532858835145858085561754114108052307603999287825648668363083560630283337030257837962435728178244284270620069999698051545401143417233288142988512984179577621985544610967374053745693586865475078574290034841610190166978281330459463209902168733339885416137382113927840825954347122746254960629776740788726026255965794725330152867911442854190022547205814188007979109084565959229602286584241212072863072237057602976238126034696447911926466864787707130060916293546468878705300669658652085184580651774058590192379575241226903152763603838598883975503659651948319697921929023279367167041087268832676519532913095705512066741788585376118509889004283733648633194866105131048578186483712716760699425309860351041805769475015897663484295049486336879071433201269647556190132509248176545130349031396883462922361587040133984511156168210604187071295050958542539438351226625030881255596053528710696031865705725833175476233837989490300153944805956210535713505144462321956648537652596246186293274334956516021693651567119964867835318962034910422769840318741333548262739792629180313997937828242446524002787876351710031034262638025578428773081836163446872245413507304574512370665915989137842813725638093911962128742658744065708860795533975271576137117015121852587735036937760654287365527328575960913599620021742364308910165337704128799485633094346949241799330455688825496658567532392097799095894172080076701504478097059841584046989411152743332092620615476614414945610027716564244513227162781167707421484813040649690755605865839531702271198147616030929098277703704325228750325724624001771477795312889785335602495728731976311240588955642616371946260607421538986795297281066885881138148823420822958202799300382187949605266240144695763626592960272511742794748580735906069399480821518093768432144482246781548196996805157114860590409698916471331973698583265526706664175693491005279021602593870738507060242930165177500675619996877628147109417622466988833256301562548393567254507122635600516098983631685960442754238382901472367854894400656113056152713726261067358215192176888055933678770597276383223319198485066126121876654795576178669250724128251527852560156269938821726518271451341289790149387836403986442152262719633251177447273994976227527444991599919060554825780334023556911080782207284889372256293351239442483961245553266547481115958597073374830354289256576048633891197249738122043017309200484085183091708259117718595516621364617092139899006765792319173738237769480204098642911227446777130586106178524183822523266101281300544882138771838063277732944441806517608794137315954261430882007133405940164899906905535898641466255629154175549978533419377533186348951445019023112527518400881353094117552633694695073200329654890282233687990625773090270312184953901745501056801855347223332005224623369781300540326979581376990717174991725786791581192137898181973383515143143134293555057345660913510446058192492495055383329588504716346062380996701690136245386394606736623566253068461352694975601700731345404462805990327281319705328625665725816235271785179154476899238573973226832874208414908731106937686883338892919488096073099654158737626752335739464202182309976312631803000207730570668272190152494275804341031894760384494175091983739281754514868826694414509257197635642949087427693226790983083528632342118807323972012483225237272616975534066685155922589191430660314106778688054462671787198405391490912505146145458755312345134969275084516288602419213849491324063345788860283207741928945174479679892139537691417225753491672117587792083866105678771030717512228803638242019591092967227811294590007425543864451448450825578085952427581598656142848513044556764545360795380645124253791297346159457429762515054776391709737828612573063423548407616674549168658668700634105562662297215940223390124247726348286977694568618546374756857245476182640298875471367805070193658764739661570545928005206667734301114415223849151571243133784637038749604397337962041885111917519911385361758696943702751667642468234913622533567868011028212428614504720338015893100669879567096990436729746332723568483295526729366713771553488939932783537853696722843352475260001023012762347515209433872311461640295419959512666861436025894300998131064192710841431961550869568330333318896472539876217599415099882616825042909094053347097196938775119781438542742481392156976942681002444457051638843408257224923250873305853948276951238413522939584564464239533728719052990716502873630029325408612104365268179609983019565421425807743274676723190717259986706170413434446669513461862262364446476601439226198036417636784106965817873681314561737222644348724906673498364327606701304191719064355241259632495591637527685127883530339735593848015108796908566740519330339601025784315377328715850741449750568351630799848564755820290726741231062518913922887086520819743901350223684821383951095025885772462502922193197986460543185254234141463482032014557247150033037053891054994712683795911317339801054134216388843938179213982579529261157389617989871917364372381488990334554056104319306382041415167810326052084996563685077437997981499736707467847484774391181349105209049496530332308509448869076832252571297386831293691956125275225775968731118722165348707549994911913905807046973223911025724011866628723212218779355923196515911940325962848691704539940530784948635448250120337054022620966263037917649543597081486706264611498440478371107269050408779596645323341532157060803966383441150230365074436120797920411456846917541814118449074538436562768460902380931697407427533032420303278319471481572526471648424421960435797123096198850766031092547275892958612502622965493110473214515319740799881101912613532745038011272610723427234063625506425476536850757649179061458859506882331341298803209904388339461741063934843035560568419769416759918274658031164897623732323190682095771795622207307880524595555161403172125160341205114075143603884112538014143442112260191497758017769100798419401351782535206973354469976029910697680143785867865275780239537553372307596961757261654858725373718164912706561604931424722982884950835628066838516240564322816331178079378489910966106348145721143641503633096596706199136280408119070298569105529515242559272832087760691246001102782415396251364760546687458563927687789518593042843214791399312571724176725301527265496047332795741824354181257793980345464927947934778570680247110509740670194415349527875309642054995161216229395055426461721611162476760248499132343324024283157531326858212575592641223454142089447769184158318098931480311873536980664700786142917790613045514413857436276301383632323824112740697458289077809806564467349868282668874746657499234770082055071558842708958003477637342861259396347640883309546234114504467626691188145485619643831636891636802431433957822505887857094579358076653582773700035090155567908213399135034415316441626078870863047994080898075966843192907211001972599172524572400293537607068574465985879876672242839610046030134842070421668313178300070633694503144279318671374479591067098142687250951673477106791882760181197735030502311518856034649608865499981783742715780559207861706956073739873743021640606455357225043651357813920228465944994570121932369937870238344746578544496230942536006616169167858931630599745140696044629610341142555280704454734494389982908108115691880586241007707816328884811565707088459586036337378008089488317739300161476214839093701476536489222366158790244584962084867007529861841106741844698930294499576281672274671242798443911643672088893150777218416946915863396323157529592992281610943842510676548948766479248807676489356894344359809721387534875411679493454309573394033734976275167543661212020956019194949476449615908844195310558701020268472614432526249535700847583478090575064977524036270765963477118836192156089679107724377932971819201281156185941270711838362325257330706894630191238538397012629540524457942845916450790163102273144311278470109739124115152023390615069341989409613667399314088435658638204790258586132289896638090850242306338329674329127986374633865388220213496898599870378038315032101755347093030604905562755230463265318694093041093672744711399138179940173125682748888651084403052162431026591267995288779208007254883546389619884052420692472826048991681946969103152458822143644540922541380327559306516622579740573384855873017590516916882123790489629443311561206218453525126176011357432664050650412425911912955285871282218961891096434942815831954781231322473906783518102534452223873591558358046964643225645496351437856609286934048787989961542846839058463698386195637191767711120093414962500298831482338748422773028113072462218208829869045453149876615167756177226587749671838211061980296177308128416621032330044408085734064733377516284772683789149345600388633517673393236300778193412963367319271985164188064822161679390201892153389931703660187689275688039762893747343237845441241860850856656817930188120363182917740534290796227715936074487573703857313853235730036319289715599544140708262600850560288562573364280392530991484486274943862409790510576711311524496598252330485037814841466800304971460689002954414999085886490800055903108826686573982414313489968868580876732348478111405658188048995382687655683839879093037097359095328451231375871747480749688100030780563786658712775662586175954940743114742221491897799106950159054803645561532149581271493269903108975478498032896271454357579395505286901700803395252134568122499047756685466599504019284918451576336770006564729770979843425938226115357621181536564596577293540655845544373500962667641745332446082812785684397492685235545714580961164685208832578770954431295517059559052701816665937646553242216895298492238146592804029119715006094790195054732200060589408566705481842970297724474853583766068865714794771529371567928327988303948524300987348665770975259592441102923050354451288000503236856847440065267689376389057689312576216928999660899132919978933447288485801228324071582978335366573011569964395972091334186852245025001842349317766048354664680195306784931309401265811562395421927529868259622394605715073427328160941658134854184383410073135563509951762743264804301256713747307990561205300379377559518742492314309767457559744254972884584869862108422379886432540281188419007127060471928994687725904270667054070498603761553342260779427467371830625954139954290833230147383008228806397065774955619628732883639932683814176174175937597397014553680917823222651920005626407604266024897264125752563622449793314076748072834953680698507107967944455647503354693428232788410086830986780997195501852791092583524309796834840797716915028727624372905018674574792630579880033387566475580025208459849517656691078758834295605592538748901762031168064223037294548952925326645245468102902210480943552994578846094338601490514008585691563775761306419695767939241260096666659193037141164588073517449436508027716453163344945730554545427179357987920013853560613961849860902685829099568113109236988291786274532991997915511684117055369862667303318599845113978957950505649595376679505866530349385534310989622364561502841027899365335480682744328302005730623596450996700680449675703164846872283448015308528266820144589144200917138282575073431489663544482995619444034340511474548622035824155052785718881014422838933876184419935038669520005791692551177982872499566972281270225039279088460807752196966255624124631504150726102148391197335956447180448472880573807361096387849466810030602895340385435566619904412430043968997439972589042946205024047539974322372224951937916247936747025942383162482137777250480610833906214055924803517579975459320170343869688852688304314199923695251882070669404905962780073780947399473298419442995785944594225881871798218593643373842751811767270288066557405343197119846475620342968675477358502665375732292846491831341473629146497484723619031621518920819234767966145814838632055155125132121412693287780823468071716927343516519133268046863870868687950549441077413728632345037633945696000778565802367429363209251415564049733907038070109040436785671312379771707496924969703570288898213200401746215338832932065754266208149972277619598443018075011826763885423868434013708906395587968789222804546374127654649598718438080093084040768292098222443137622064306207327519036192416213076123766830510977119253093619532896688171906876441045307035016129765331697978063180865235676041515961254257997697838945647066990384834046824853089804932616188210239315583167040816159601926606964110912465964637243884296231598072272761171538876568508348736174284761622691007760766617532305887238569335188728746161142169695175225769293306800448507772486681554784632255671514958109706160100452822460889602003190624820976823316598263556233368469942571972729305391754656532990079512561011539750289266917524115215864560715792668336276177388937940369561315105499876044136450715113074691244554290169719789059437114866312605075456777533651636702613539665043537103669435468829959744191284889370415117359879091768583936426727775792804741559687187237549501974982136219228637927562753460511566054920608821685451461980155357141375720286819959166296008035311154840418241924323344928785926574706688172400275898724092740484632960721843997678588475936250149232943617856076969839880464310146505442332726020027130078303754238485581245737031589965983689807076846238252087975896277974758620707252207262459650936806918803125286729820317840812631772964930270239232380860300612525996548437133056073493505406756012728504031061664697026782322165688248552783738744918949773241256719323893540849733206795229339102236951516136153064532460163565188855263990995363195231588017630254839240177010538971159148299021087571769593280184381134789504528594792023788438320841096355623146335528251441793656527017553858955877116750010060604702182407620288124711121910968722143283504174291220348362751207474179676539602874601158582949203568228867369919822821695212126786621297640825650604446408343846419495927871927903312031219261323400303156837160502909031206240132663674955862678886773157396603905527339185293374477039997374876807274690788115586848109616618229021390507079508617336570822339838200345703825732039239988704866837709098152600416470623513783601091559241810927688016351132775445824527157171488045852293810466482420622690413455034370879477994711136247362991106968471003444819442930956114424154087753242104549851420706459454321944656630178558717324054296992012301175236528333815483405563936264973490402024724497004818626762455745352290076918731331283688415055268128684537337472837577419659009102010559333040259260887712291666390933040517037898865961653759482266912752574904650851793768136003037027994071324155945510212818333978297101904433442922748378114368628806414612188860608271535871412398942463449627676943252431942454670167205564476218341048025177316033830585767946503632390627695090310778155833236955851353561366403301908119699534024234835586981201047887783040902851116400546934292387833127481656977716398194397399932192173488458724585801560412390932771755527955028096922602750785878510546221067024090863848934546962734850019693450052129592885101915435730206047495439575517449375714628326055331486032615089341010758179677166408426165019819340505123747661708023935558881657473214015758609916791702466139903834507199306703900673489596928335596969442629675587913452220038462457384942845228077375763611460071276511156562081733365916929737022738358902496465591923753116605097964177288604128664928851245879535320432004299789965436488171451382470617598155065373206643783927671168298718269599021752233397554491411835985607647343690957339739561213581904517509992770037575060443946294873569254811666898899501241964938621418369696840997232526555769400633876381362460345356077475040220582469685946262356510935577748677937216679992787196478212584444413706856696594798314635935510390129036018309567591834601891609693144661904222855533511364760761444471112188046997998609015987294264818578518918057413506634162619804577147373017688466959981029079927490422173483837146386724762736761121412772714606987239510113251198823792081493670953335962860148657641941521884820201759184186786472262002706438806692266770349443232107204152667951766909282498502815314197101060479733273581868125350481639754165249158224946144188927126418555574102399779351181770405805533848029358376116922616998928642781579492163102288004358597589529697191867804319175283108193228654573590011991923389382971173818241517921101071161436637244757293821626408635768864089527822669988686566931507746514918761009629006115038334234884608638420779775655256519935102773542658182597549410935646931776973215295163583883872002296468130081438953865969939977887345489260629970327701470270411653134404307641229625051146540555933150831959955353361721177335490342864206390930721592660471760785834597329093580087151473778635317372252800019196931428409427920021846586400927929085339058233465571255154777314110789604926404321944162326825084429350870768813524447478012196233360005038751605540709039722273463977184912932611866322312607241271964404497379255818922071943529040764816374248723580555802211458044316150290036610380429538674363410202198792137949553291074894934560442314435534077831569506061390309351936384739750954646130645016601434101610535565287745245421847111739660401668157528844991038116177463738394995932421417198300970696664449037513659673966640254566046978613559397545549664008485988595444669358741824184088542201919852404150741365494162945244502762187362593819806878019244639397828058999745067519866680829999548330490976273708917332803459893928933451764542462916890662272785766671893103818024919674293909569325096194512901693489776633170726686753405303367665349859704733484513431830015107774349268231330999743435283547164901187539879626456186661595416844077842588027013363137893430461491166603775769073926584368425119728442978686261658536444629165667618266676065800638989940690555661506506109492381771198386034952641815199110801887306576168531616192677287221049538770517236539635433740209387382520529094545187124488408085521392095257185785543420182908022201543677600768721988196969975227856484925160789700685629275840346742579409236077932587341031433909779236014982167716756641575430381200325219487401368212792476741657738344894048178017536653328062781562996021612038869775251020900917102837241383293123182409915042121609004151116361425678185012409131658735252939499252825548828321742767303503007056804323615055257610812690938403064808876181064161220326664876228169001816060657638483583485296361461494833471853318084926852985621208759837841453252370579860146668690929619762531260327471000004591391496406776489263350434854106357613162501553046970445995538939843074485761818460492147452824746040809864459469872280529278347394816018234576282518241103359047916308441675022398512178749838298498407858855496216353967671503018268093112336921704480491358580802014430765898363649304992622380150518307516016770079542730960922905656695811398338412354131870263950869668486700524764657973652972911858075003601600278390681012950900219335731254771114623836186494390359951042060223662206671054301094788946742106470350101335201202673667058593822612446102754545191176092129018251272394796317922872506111226643127440995745825111889167036556631184374393961427433681054558431013597458207804151224047506259555240049366260843866851038689200082572175354628412880925363303059903570070819606120623426094052257267637812966919261045175636397415483292459867158397186066798713524668335648008270523670274079320031693458384997353868899501252541186320039608836327919488536763892225519050903400627188542379522011182319387375680791153830801317953878411415454623662344058056181195756289107393669481560900465091499297498322908768743277289331488316223758690237631933150189833401595909443683919488153353144708647847943922033076568941399564148397912353985158250631554684101140353634677427729524394501074375105623167118139969905168185355083846142022051982913917878084359562518199296302235862078785000915630656752436862140033975642886433535364827991324512462950699438086494336529717559710903805904595631971153105086736465245052012301595219396316833904017081673741474470110504409079743683274289054331266670271951011909548616683959645983041586469756669720635890766542472499842903106145803403368446045648194250022614751362779772413565743298976452503591241359731004266501967192148693511924802201469530080965809668293243839022574261206953147534092986682597726993108638209992510309139823679307404067681829121789378942022870797538863201943056700995124723448024281516850598645406742853943546210686982221154242722028510896663357743094940918771140700662648766424445072407522870534257693161462378943008191067251166226124656564742504995252962863530589646564226546018524991302088992030113248547463910815705415865621960819156281185753694783892513520363228190750480012458774473307831049626321064899409770804808513128577446524162927212057569342135947724273673356896526217393826635173165885565173126448442838911065433735747491041650225221010813085600641277412391076328057819870360093739728879728923727212983852151036125226851504636954537567189075308275520124128626015192529426896544597824921312937287140748586384033132150629046739817082367661384110903201722205231211054365520734086749450683418128877733193311630979417420107018384001844898034453836761277648163595768673705832747612069270102821149691348400420666784817070195143563746488866989269802879101951524790470178509227625842999901470704319830968072512966094713648104293820037915543693238053860359085523468453052708517863701397076483447029906524826435596417258876416840407695004510042660320112235573862855847897998492342600547557635087850912458363046439181814298423262612542105989818760870777743562252763681447696549002859014859942704932860459570345340644154764077128674623371926948987219973192842471634199556579749694528120077961951492019420873464264584531891837775548077745469844531864871165091685465964993628640757496196834841614820804773680280883028006085892687472875576401550162946307185559407878337393820565322452423206004078947647463489267923759014384230382196104260667971708262431702809165251931305561751872069780117871665338863946239783211767397206335728076017453345053364160636389218562873330565525238762753646663549452327408710153628457599683881519322469487416137516702031426367078837245155882958473026004640743045939381106471264463903136050845911953325814997120345034937722315987471572164473057405027504968844395801562100679311683268832737853174911377434631632686243189045441828333899471512655080978952388550506099688376095656994572249159448924919948423276607624469136690332949773591593506284740683748328001316230771905285122817053946312172247404668455343476330823354719839465861322715096194054508489416921901960800831911143275446616577659657225228843243751205587430029300290426237717670947748150125856026833279235742648046266193480042662334050754090779117353537682278204784297201770799883888428474096925493269244386640237718414112844991685172167445802198074745418578175118940122026116216288773357243078902765924036901554909731905722736725341055475791623049530984282982776990201725002010363429072524513263767318323093538172893106943228394476453203691658820886015150049905100357041543504154429373519590418455719210510707838926194527074211401637680733639243592600505321869289655201592439904668894742443429943841372265937227473019411676759203852145991629346694898660120332375579333852465590321594911168791338055495928865219039496734131208210462089510987207241149840420858738455002899005975967064436451349150222770758853291877426842111850614465383285986903320898355663190225966529803314006012825002730272047520722123646879318332247775709226679242787178548413575455781749278325973587556804057266034890670602564700395897302109537675311784017904603592368663906874154221507772257921995600174428660195248022674484323290929386411447056717203652016381104185338078101148273986280193895648006665262780210830613029910773960363374681536993389538303859185497044850785399162675600154949050774457895966015141553805779197848796405264076538397262392464753891379719813204871242090147541990570672805386302066251859262377138478564327491164007916965130996883726202942516748180998779035816706128464951929879524542078265036756252272286650199604544760512230508808840523995917057821368386443747797928333425086528068942130102782237127667793750185854271904687513332352837456714019783700852641159350576872423987258275911053390748359885977189415233405147246539083551948787097376400647282941270706150443448262532917706462286951197617244777957618872335767013441498473185645417982872893560098578121607759984802623110451317256738808353339656041331009242481070245953495007854306003795967291903219451352272916701153543180758262167841018899701882209039269981988400418150113642168766828789654477481617278292840932846425582045526280696724345038737617167023687499584959855075424880597762185208657003816044410413978010608585785142862946449286469378066900505754248859619182026498158072950037261554657697407625008288253426408184376029642415786139237049792788998076182147437290614979311777372728056958332335055344598297225892180832823804797338084147046021679908708701705276484894651355029637048880876410512784092899872051806490943844540632981966450103892765625090878112860302770745046399692027303719099048760425246880801307847097719266915019771939119458541597868000743788115177723956410884204915914093228971148772195927609288341552916459189240658465919835832924024012724234453672563372525781239985409802395653231979833387972553318226720210206419491000505480637693029608634169768743849135708479053437023641883787537189733051796630399835239463616167950585142798061067962538603626354983104000803154867255693411965015487038051968922976695962056249714905854469043415791621174182034920173114547956727579312055288219375646906035249531713268903813905300294763114655632878453961102500038453427467321700466859423603045766776114324604693187138013357930307006763367366040609739298838350048406864218178433648725123853916023971646504664856059037809396655501756005491682828069956904492594607739561383070326769247131551599184004280711991514926892483126554478763219918690887083432295678769697817510764038655381070453544729381774557598710132991016417963461817276378123973543715612930709284427185580340341133470412143815966596898649210967308334099346439673955868617769865096378922242984394455386135592539528679808769841466761268584974877394411632591183371357853103955708826201418727343514078964036603444499422494777529602448568499214668148056711668750183066091978082582357102720360168627141280082964136509694306185964785475250326963722836795628843514606441598283067588050391714036174851876889478727900658748298697786809244242427843423979078357963375345858261729860368266759594798812517499601717132182905210850338416046711090197031054113464756184930355828366576509842181326174168205367744091137033359039795419075618282966608044305391410433090565274751087495083011626713988365043908161296971158955115958331749302831500665064340954934711780669943817452235652460652881486891288137136600999989764336005433348245293634319113545009521248145609703294784807611452045120768723844640384475002999638269928338522926309343227379252528619285373791374239959356378478019098888103758869699283381152170393375889246179843117735700440710145371584542742338935144573104587757495067215145907434529475758058461290349450913153036665858116907294037895552012962156271552728328903495448740820558041777607914760545067884540173150994638594683459159733384061544356311534643648993871873256208675874388383883007074238512811830185414809941095900705492463864336855239911868264146354935053775591932513529312936998336197163671849400448758546132840033999869017591879831138904966516371890476850615357665837295087332950963311505844890614082398167388578553451992899146140696061165076938998174938281288750234199592697531946375581696755320177656323895840609014719343962952710338974515273796469327691483525827977310936510976786082431921538226214741548716347603396697045640492761742004027752423882185077940838541718704170986195437988322192610179340842741091797293608032582695572026347315054076997888871572679998902118038974288943753996126199121233291080612885133734722319471156527447710391297939037688943131062843059702412783277695432105212649380298586953381518678318877596064009979591703571105342479353218484904697073196244541520274862839249999108986876360103230548888652495244318041253339798198099949843223332624253117674850280480258417083975589836952220783859642619840303170683324873591506794833940608891454530470625530471417172045771936578991425743400962272158272883183301366199433396877620775734086194546127608053751469708643683757809007291154336006861878619840474400446139859485473665772080252168184966204782792856542443039111375976266106346439114016733152649895099771223323001414907888677604360135244402373183833490498505822921340188659576789253009471214222205646532319264512872214566186371970063974339573869564563139401854945129913807639432022956829250793091457317945314937565964364787268291940745995626832732825703082874273678606008269811999946279937573645348485497651271613503824040253689690691041300602754243203161295102376889862932720491046187016688949166690082115135131842537510701498113516584893629229493810511391955617678266232684543456201757938370518823289094659227144707817326529038041960719989710684674943925575886978403652872146886587966735210263543817400093188877312485150648058998435914100624873072814982290450494772037639749879792155496377847319376411306194415219483971678575699100914034257672079281718821897059444358378200589668343493864813240500112127770020778521852185048421921775435894562480087032622804417148181637086737910798985215991992089993678590207945527666163986991775979368754842902077287705038271526847669581088210157759118472010674031464533250620143952247266798179533041302744332882259731411827576698267273321466239949713295519623694824901112026015024493277242860277528165166706443803983285401170309179063713895269270781751389289858246372298153637390284386094909543096137464873339158727586674437897490967825123765640311460422932583788152003454630255007664712879975415955126999168860219331074165363224274276993361293252256762214849279045970530805670855990592849992934904566385446170445356788721692043923241107306005204816807244927007278475673094955737854435990609179226736030306124429582490378571690140613134973016985226436602518418733771623489475413169595717150909760327101102690488538421868600137136635016257396709823108780032817180927269489981001261952075855455968049130642085019420008524948897592928012057621066556742925066002492772795709773398781830355052408364087091378282809940107499158661749874287393371764344159141208766063929908812897084382530020621990886419517872119704998837860010916766229657916041378802138406845043065118330778351123579409851875204256643304926737004136746436264372079060810573984034430179981880928863070558767792163910158125264705128249399263774681706267106002855154682435535869432399264501122588671842691362736906719586581305814805286147444843453299215912434642149281826347249476790519782438964696864290561943310850271789616443319220570891421108601321011169356953355293560387962097786484801989719101589528972524876368678396699034175802157425822530713305184335464594835305372344005283866861719359948386616376172912108685433758490830764774785613188933243467451276489496063428603975106379690928251635672234924949258926363649931769509431005571990715013642017027840519883433624815406068405301971434633719337842120715633217955388788174441658488330263379808901375405353747585444330753317664884022436706089932819220420135611145807283504514960813631474703033325903047857436279581301118466776378883697379279991872943456615481486383932327200275468589131970189898879411628968023138707496205114256071401647500684221209536346815801544680232622142794669046941847385686027872643510546801049389124243696992037053880602621232954070639146303891097748959511474540578118461616429489143408287400721404477623207808810172228857016785212628405308445046643992634311715867913825158772139155047786429341906094952735720600701569623256832289005102095567729665247252077812406931071875380994426557871393082592831788005303433855608841783186880681406715414608792204471969225127549474761932751963204693500723589174096048325076381640857396863636552880848225129050813713333482697186760830681611983881017289210145838519929826586964223519095119616190459894912668881201773296884540400720793754905411939306204578104947500663818903877239361073172730332684860034224372185235773316279664664863487398283580935028209597945971728503332303519046497160134314512651089466452618021529132054206982475620713499254840142525944785443718502832232300345577741728500785470856809862659576940676959517298220894455944951639368735055534388326287230872023475865086173959901401682198116170969023367402394922970020173055537652875333110905050635367996818795279478814269000080062235623714112701056867132230287592216830150670538775211882468227301245920900856701611614135290881001793933208642076609075266140692037138633103238983719228482526224742235442571451453098632260322711737956373403326281839079878026479422505676239239228922498167932564913456321262650451269655637593886316687262742794730560044871917958350801115928590656276036720136073356961329058279991132367255237532055225706755478627303003637470439266068356736679327629446018584840679069575850081451903422154871380037049532192539549600074494844107667065728036090449868890937047415589902034655203009697541882841131901733209044925936053983527161007236220247520090625161099195948264114234014602302692143456224255804512732068418258469002891280503940288149629127747394414026045367083097458945655216573829217871407894543280360327840704051083082940336401729586228084771359272204218283815573432194740586007556507745576877526862402424423781493387277590036988326226847971871547246478725276377130680955206917071612787679046977694317683861673185615100709989493284820490673126713768719829516303819422412449461072763619073435989734077974240634109891809670322326151832129847465547835147305444168496398737970047749272020504117339926658740789397260356731906272569722008697479974746276741833691144044246259465247816629897812358651071003858302497147197937947454515128755346747961904977422421311005555507989413474817550461482713749480034196404726307349125421819673442055983232085363982582074567934068391327816554518788972338295799602589649771531932706728840120689613319041414072158624125433996019853102370915591812462410041599728344540990652315636028602181512724551800190233919068903983841008333644243574549319921364547161010778891915670417760350816122562497949678113693422286304537666927078715745871405773643460608851011207122772939581734306263549562251683828426387397400642000168318047425634423732708580539609620530302153596168883904883428513155236193938912334543819513780593654648362552504330036384564792816479933150682356735507590317089079294865368131639010930823637864158873681267200085098336398867477488973440247430538133406508891451801268577207482689747611909436234669745865415027119119549020073274698726084595255635323299568776605789454438051598389851455056792958803189709843110670704606531764473076619780923211680815464599463124125245060082673622794434439152004171841326052771427300770450392654948192519296062199080612247056846873934724122478059892974711620884924015863139916700099315140797329092520877801233484799744182062639551076576218293630074170412847681709793530998554256135226666507730756210248873387323555522209613137328705998139563376412374691441190237352740654169774607823555644644723382643333404204548650010120682369985627661429351410821605045734971804193005828234972109679543039624485592443950554620193614013553106460903611227535888781288071211149686300444318512386174034205841410647231820255674353398443764037627798810278579486403189890039892840695560727048246021655740285300772847462508574122525114490070157109395390487638461813980354438569986303203521005438837261870103029651114108793210232839829492335680616501298113254037495356187378023304861739152008032159027628714947509932822353218178400221796976586405744320940208544282369614121843268009947411757531624475596664716922709762883130964351887335073601660008224705386031854072700330697886927200066762833282202938373501684567363682758769340133548136256078282794160377904703923687351510857547359211295592666897156021328916163847485821621644982189383288522667077514369017723257916358164381538289181418632441651619466986173001103534852176796284063000497203574609317446269191975060462564846700706174555904931075265997559028519873106811154005495677675631814375303652011758262400649144037071638580700660011456061290845389887314031331893239544574283772131783622428954632709721701031489510856748718355679477817137461904484642239265071544618532107973987001189151263667867772045651545574383677380204247117933141525730998308688527175215803849858404178100888899892619088658956136272114596362488660920535033085702194755732036165990554764552598010596816070391453903544964347193917410180739839666469521521117036490638302050468932267256712123972538482036257170119331848390764912689659850343218575157947457266165344498881714187311927996421765376463457129925409097463290577229194748101079710959504985252886580773026658167514168981822494230442001331043285171895501902396741315728702539654439974470121820696049422107435302291076878892182451265763322769078178373963739221367979789661736511889412830886573453623794794823464532141294828038839638965024804851324103257527476921369954733639159461100520720895297229314032915938010825494669800190391959016761596213381996433603287701517173033688326218665194432403908016363056325707392071121982976236139804205909725673612766815434088763828510042422077310611844757938586579615741002150541783001975927693425529242425709199456834792488989338931135195274038465640953344647110614604234188625550389052340976590070783466558754067827757095147141653556822171285460560964191662517819067918182863601368966095512562744510796990926548584472331891750156358674587658333050450555946522144161072638005688818608529775183117509097218736762216097199807502246287464136447227077744412012159192049317847625755082711910866678533317611361106713319778604343691098690960142381952106455355971300928410220877477711063397759227970253900776959644897254761246553914855119130069291559237508053744865454561873993982716547093773186514217167116356246366073215617276422908716707410195844173018883020269757683804639378822225950236040777425640974709159815228769235970347763525714719683501888510068996397503199541866406848223740700903975030162052828588734155086498120369447367092780624749893318873913711352415281907693957654653243542780088004725972437818217964855269286638975679910208519348400048094592246954825642863522352676594553635660231873411737193191584793906209473580863899278848246710833930243915638982103383885868359794896961820816246649579860211110980763858812128567358680161279590517529847610919058640366921892659978601857810554772354412157160670636328419156719095212619704129447235407378748004202948232007567456129216317407877072518389165261828219672749194616470146226934297578081936102972256766353566609945405251245102400525387725483841131936352081319622761794815195245740183100894624109848410451162712437346835092844392824199083127093966939357809797580591742831362649137149140653556243678760396883025530766412018819181341786971521646496750821704558081931179606701777749302643950891077353961113308913812621324995167337295508005919841463476939621061943306035114137808695614422750924499463266470891691989286494326979531396428082622765971869099654154645238298162384374907071632191126416353623653379302131722820234756226504887907800722648496848719262662149212006495093615535779411977488399946834764984377507203722431963549854607972483906255580907374962591217374848703331625910911955593844418677604553385089657810103663287232832654312514066015147696150048590337876372170197224347535724532433295624145222296765045730644189456883915242989608232042195653623425937917519389948444606810443133246390096953604070118056849037251040815233802174959571657627228722115855835013528084809254820709656129818483622806987301915183139710263994867265796961511558059349937109470848968713394473501892428085863932047217427313492284263854659944033606368933040718538385232537195857812738589931798173086278931182650758578664103187928009155912430986930395695635964958931249989711050347571434294737555039126865306270452710003225784685166484563464090949284094745444364090881347380558996668290288870865358639133974812979653719189559867274088000817261115509875084032904803059878383567143421169054921414818745968160638719050976462273261887798148849509467947235626406694191866537767476134772826632546115419276518288612099848958795712869454906180792712559415497268827631445554060183679082987592303209669212914476092808642059646477904357659980944630737492073071275634769221094220186099405114030471098147412014367934977279550706409019419933396100360677290739276306608639782857668475145009363680943180969141310602579016897101018854985775700945042253675547074358475493850628621947954163751450190509306001325088906924554804547257215799683106330148184045044693002568195146762073038868427427071344500865034227861926264408694103195206489439788503892515788470443643201426917930132018989889202859983697221381876336225486615413819109071657746554241118940630146687060359300651128170781497543863466342640278308774180185972626317632713108547393050698799271424810774385429099122259871130423758033080756054769530483863787551679776211936320529255559624381022742359107480380738572500741854803678020197908401711735167277968974743224588370253541030980568642766930721239386373840703304769253620714743559813759338185955675461639269141025411387422746432642005956112795892065305639378420350531603104509993353394268824434357096755644229117178925458362954951397944647281849204920151434018600088705232645279127120765856285155383451957098022692478997746251230731866939129297258760860282996890740733049785798702514733448349654477839898557144293570511811942616525087800304753682943396403432797361883374127327660417759436321906501026539855728682622167642019272078247954093151917400603580924166429634645941467632724121062502138304287786770878581511965313853150165177016497755551739224776494402172843724683427797119732736106073450481742185429056935670472487472446352800317233720215232994718352177844166572899350292140327837004700328624701364023007003568355507642070146572544483795916353195363214611705721969899650270732901125371436179370323038686189891658805486386605674495101946096611453254927734820221522918431140441658100228378264278087795579503256201950161235991442314937298643990896601792003702818726799144312289361197622551707308557853288162855853149794888568505557782917416155286912002752220667234077679166334856391671059028214793245942370935711499847488165795508176158577450993852992757755847307185778637717451630048200679972115001431786582494833270615954006005636344669970784832275877820102845988754187381010168492582278666060311270308546244694892214227832311640861120692933575937719250152182018973970264143719115641081038508003364583594875314213085843382960394152310763866171996047656677063355946134628904121912412329688912414593625995309266991070109930488857671972079388697032012525446090821249465326502404230814322343727421139697927200973442369241981639662852601482530735329002808674148392662764986556223833921777746297191704231596488386958091526623648948129108333644309957430257550252409795996066930839123485916231163937654473157632818531931741732297405526492935136665804835095507886776174667360319493484517638164201453943870350152812689022800698188501696946138093463640301559559883890502652953132090030175235109283642182470727030841965572523030665914480016991776482638058560616164504622577467613466121878418020102232528349033332514917127262681190180704956697342568392951210812456669252052680164548190842503019383846221889741518431874715719019151772412307914025160189900819545472270659550704278707925914277380308656967106094960218375468691161614579165004450808156946960045435297275468461465768642993049209117167043192287890217529861021533091736897119380100515949141378452377667466970466394817700201062985305214440763199782086486910511217482441015170466807416541761723234112319437503877821612863984209452997025238641567444268845228671200889637350479894950317962577747837452654666894468867640552347315596162576800690744678513577889545643934043936869188373027781099290765681579399360901293004351790024337099313853806861311591039409093235626777041495599209486215185909373673710992074982119751270550976496844112902264730140540061002348692970455431820057240628456085348779740325205935130262911610937486797365468910881243258409511709590757468682714452319428060215371480132882879347512438527451587947176187023894907715173053226579046945694043973348544837716876374143939878598164447283160353263886580359790398380926706752953439556550494249503617945079429500167778350176294921231752090351608858314046852111799612543779500399463966457676271058163543642238237087832859813624382605799781555798192657962050025423659608729498402090875376512437224649169699731907942911144208000721139391449376601638255224826698791043721756763408223933473988981245179517113431086457303032576837803196601516602579295016694583698249114897283254454730155840147568335610106723189690668465065269314186206643727565993218843008336482198651939354544050358055515828066430418868215866866198005358281411757805276939826757502273808958928606723911555667913842377196111049407749275197261669156890712187060250290022838579404098633788538185983684024179823847965910146201540785305269659278812948995995873246832751425233890185021516799650648120035324866763573927644766979178003107254829346196769392461939354553899501119319445046626470262518011785135560348099514714444089156033953154183265743144446555245430046258135145217539787052733246096669354584612930800652676668399182700406325933928428962071122545644829499197670043966447472219536622045878503194289353238788712999414041505426311367528539815068612289651573937929497861430490852701037235481510651033980522949170031843849623093757393485712298141215647657995985508976875761646194193274882168217959173609492470745029097070778895347865582420393981800199210926704952587388863619442699855075104526909266851278948406018875665832799699387535969222579643322176980094466524449534172494531528030686602315782210870482367968422582186039115930476016358407093249015242139553067279787575200803524974112282261020970554971816321608798656688675419226930527694669308831704516576386393527642522862314891488819419409117477320564857753522660920056243771270051819730045314868599958182834010158888491549043977899576142762097242092168862840054668821334126253306928223613788916684540816061865614069495211623191468708389955616746455575623206638383377033107292720013075769405603468023225846632782578066361225561718088564832995110048537718563007661385918808511155462536889468195399560825937517573804358725464763041681627584281778269131281570203937273859701561341418739692488897961554477337683847358118175533139799929899855861917433011765277169041899893367877465801907478853701817177673376101277810517198673540247403523006041922787623958573972591773646705686702962145349693481408329708726476217746418198471742715953594999426983980099859339839624042225695911728973377183671443461538816602426703228040920315787714541752555460979519418842585121048178465289595049898298526219115957765121900431258863134122874293436214803717509394575605773982154617873419944470590282784536590451408228648038430572717226585576212956401411046425236386884660326671513258182051185420507761459170779969751650141616622383231958914752903184618929513315258988155318577947737492512969186166809724433815874111713636951991741655568941796259588335112259385542589985338698604585246611652194560732645919704822670322868507115427960358026036676822029852747699787941866435507975447245628300270451248293030087086034991198121053225577842474784378828965763078059861905862914911928425420153443625781707593281650405902614171016189066915907271259931613393968857953387258665046222342182279734517221202441569916181360373949579485521342207857616456813877489847076690362671278704986717030983922878921597988580907831942500572916796130191287921174240025299713806113909386839259414061003780030873393730074506040513579032326525065682253319254798357603496590114898079142359782075896395597329617988129300398377044452472765089458076976972050099895831821325195569640621332068545034963261877056763343639274629928342308900428981887793754961864956455332493180763860301519903869163802864765997759346967311685846219779885225185655683166991638418425674518282085027266702788074788559785033720076432256917439606124989185615339853422825829673488011639647358844712742245934475557476728391921112607073027471330942069384103064650297631844362618752968115620143382265516202258744866916032700034364608062238501407033800672424928876803015342695776579839471412821898790346884039497600577289361677005984482528237208989130130932205432358721118842199100420654093825408748371308912740612885423820686703740877559190358646265403366294270531269759583360114140204077315715896966849536711059536657022537709453308337215945890162596314457052719831667192251905767274295117521069652010127781593617651258558381277244894940407263764950516888020873915026686314855859628974351748755497834255779265246848302811029294649546803960807157509929533548005021723298966125825831853815134428388973766092983313104273817750777977941858754665925228983973121989698996200381811504480685083733835017330571378167954529024276725081584364275001475122301036020967765305938737967837996816265123437723897729239148639811537374107587454330180938133250829700126593798915069579219208412621594919043469201023584751088760305725490552268107797680380716126126646669322020982235833061485281185433745283220792707215841193688168961315527678835785761371385369691976336642190758676028607474935520911319040675447213987231240986042131411002727736821251832481689988948132609913827312106251194637304661750174915367452151574638612340587636874655610583540556192215793204857038500549731849959620551993136685376028613929032299289100883696646335874848352527916221716829792613744591383237802938390314669168403268320596621852344423372185213621432786446579815299588709912104554182601973177034431338785010378706631646905628743835477008319340749416009916710780133753931550761912200681161271806394881382052378463664492082659644323231714692317333830526547720705726199668104297686746232748452079088962725855338459994653128163656997643262546206576748142309143623188722455065372646543495447953640727359597912743556210906926619274390642499119341491512958961272876026649921494822209469520712754688425976585021327585718961456155574032386561297301342333215041676251933198509505469977851088292660020702233310563426882693931614439904275783302942526403183539513577317114426828391962467979301160013704416677066699934029785093342539344147233165610722019821481499537171670080011121182491260691777955689141205983770279458815829763523307405253224544447744704315249143429394314980983726576838842012917021323044996622544906451595033387506104904029154005123805911109640928550384479780549787677519496465255656827114142094011655913212719158571171163235339782219218464989066786301346080390974977002818988637450089670975240811313081552228019700955189454856686335254086098860547603742305158556632779985315893929206155844999713419668580295262078296666418678811731428951900247174812491047941676742753678651190935148478684687539070220198975422818244112894006237401529231770598219716462984738311019015499560575314253500115478933325507991648875172999771581807752520824290767006617743323564756620253290383785325277492561826151667775337416795724519971343535555181219444097623855569079782345174026880013298046768229561209036467456769965203700831650449802175124163302321638243794151758650592463517173126182786608729741349921770251593124763723932355012418506968050414893879034871324427321639724624456010995511891475808620851741196899879401491863789943788702058295106570532029724730405182571799557277936326515796990379439215900791809829450737608720470960317246973281065304004962952814682194381775335836954051945866186700336741145389662840516582675424494684939624746555323669616027323999401815739012092757426335931112488274373309853419119743438399532594513511490771898002742882793188821157577658095963449234780296074321259560444548327536891822216926792660138615547658397868257438488617225241948743917678562990023233116714530055342358622323110174419473099718578009857532338542898984789175470337105020725933788629741540569121575389356341343321300254772804332563028967042948207471582338521113341753962085031042448770291874771542326760882844617289190697076084122482478292429878199017763093358900933631406182190180081783037116369731903433390783169441516505808619191042195921856587008084861934274117967972779530985220872165094534625355827565997714278418424770980968974400727999855317349307402950968555837438567343082446357503768538447820998378216702809056012453255493972228978502558820801777383746650332185117139620024782990846072119005012250307026008009280836332368665065816217734101452151042182561344624583550709177018257566472722542589069353065044308767737412238712271542967672741134809793044716752205474834990978229494116331480205365309400827067470765476064662028101701773439260100740554131015779088955655190242186217991516505590427270334694204078481393184592018500847379028798545097964184024665953248357126239321213295331433402833307500391741644305077484783184026511866869897943581128554235169047145906568148919779575429212222985416522696068831010368653208429780408900243281897914678186346795750047644576404725580834229033052608447965418334884844966267558509075083627557828904520482642265481251219121283044411706490935371451297098280103110641245890043110265353373776871256731721028059591324446558597756901345474617357739796523611786683470635740556073608560728835002109683003258427591321772021168296412311338708812920736330460756334353703483756951221725956089880660807248133658434400738034518771359639968093764972129665929473110191352699018115493473184861211542353704639586634010989359705916499341543923371267796014299896690568260844878858442367150752350652155887656206646713331677796054195387590736188252257917236689696327245904966607513991819857148592203329284465684549843005062587779191149872187311304897660028228886335425982285004205670713748763464505743722634602611683840399890683659691333476689496832554090025431405420344299110840668885139709726539808011128778484404227173395580077514563012797807530653984181170911708777295357868292636483044645858413003612556089221775477892901042032928242478156385496455354001185812330342663073742205606153920938708865231765876290989481560469672434189963464083214341850141097432084185981121486040627339234898475943770393890225272250561292584245583650995781536771596992407992075674557526098624278166143222925079675625237701210798456325905882790948950813653954079727362489974609095743613356929127557934764295861698649844307543839578009956716091791711216571023355959813654810886569737847180510345578612357834564906805839203587357686099877263693947145324842381629704983158516968009959563293159908768004740136547549500932226698453792310907082919249355457352289331212772472026560491105558066845220548186883290579311128355421411192927105127032300609470032803365462677299000480626995002939480331577548919344912060969691897643392734821203505920802647575973321939847837060405119335421092151623317027967217124767942066020232149325024847210418536730127426706904200632830653405811212677491837070122233778242344133023981769527250835270085654097971961493496788174730280850337043726785844317945605261855615731110100259399502688680996134295326620888410982754016900825942024943414600611207142839665081801445906238253564405827999527962557362766250063863415688868925963404390610317787641556771833488512357382996759357382640828378404917927585617991009583845658518907171436861468134362850553446171782087746861654540059644572836172679249888721012858181474312154417063550940319744544712592394719870440026044002055480783369243346933241923895787108860816662648012083358905258188386792288387010418665228452596861163684441783685779570099634274140800505080931791835733409595750954414569962471204291539811232868614437138146709051576425226397393435938731792482870673826956685803237232533449095285841698515535291237668862652529491807464694156467909456366004877841265436515954858313668573798867485380077671455305494069103260516593550226849247602107924119414265374907177609278602424048339411042582467545819811496030929460083207174350596935006949758354143354270605618773707379318529202454279987652292359458142963172696324487065682843712806440202456434467944445223171402485443309983958110167568216869009232014194587017861478239629370916411782252375186112368637125968558595616312467333036185083638597792280142767018943542794631622919744791340274231100514597231546387052886494584117884900289660398110341478266509320330144583745166174030169624178970748876821182062072762234745234978730933345003677770078516294999605079201559008153954851156343552776693105679070732076097612455842318947734701068566882247158131593321442705244338093872526867224997263532587531995626483957842317436128595967286257029853814007138168077025233793172939192645635301507481650590980316285590133240019621939529431752869984839951286880251386629581204117281435479385970249101038622558227058557923184778348930816025906053146032662483844623914984538231066517009594441785217808413046605152273529804741984191960683847371598186068919741412318122410527092878384799008966960161891224334152120179301069404153787229212872721783799706145122246507823853589224990945725934069815901051415249719799896542829830132234125729591877696029059726455808671268685414031559053272352257484521223171609871236681545495585482381563323061309171102825901919540728819773912271362890440923917135206095357778223423238951381437557335706534348782654531856370416665940419070463509577061223064433095070860652743747088931227539390410300936893996823529230897726364829047801878662212779276041684013748966945534220665258904348943324976199631045751021632442456902158706666453630555230622723548853094983158439000104807912946334250133906107728472454542387071539895638222646269206853729992429145639626585650335730889255349305714303312491144446668952143955873068598829278255753717618913248607937824819420557230479439908869573625551924377823547244353949118679932985845078820430691802731665451036066254095314653630300841410266201846986118272713250391044037462931342295962939406321502780271192989145294470683918843319879365236176952202348126746914935508650973840622435359124408537206917820405502931863969667253510244152633492595851797109133252781384781667660646297460825291488296384107135880969339763452368687093687054419700388778316078180089343337086948862499023288788151407130936761683570831362428778345671375573410723940852030745635743206489087556648940162464506861964136810713874669517021510688178212688158421377231747606300158339278726475520993155761967800194186715378074470538170500426404062916485290767839962764827402091782192900653497648046720360193018399221624479447029576181836695897793564280746784543286738407874672102317577107383729572015267760834645043869416974818825042536612645276573913311598454696269118635545970717651342160061834893707024992059009914535491423525144585642998729499646005147310110685344762667428999480647681381081004621073836848829422092966972214380099118293254505476767455628821487160798998397103715683191993481384293059252282059549780609901586197771771840275860011184874917267681021031587114800691642773678495509460868265690385519950697026659608396725888405271902494990916479475163449513303280908287886069537335944078972501488504963511100855057235244456762138155363157699264378995946397225387258006586861082495042284422114995771522684012401905980897307203250508114785170668814214820591858796323557559751782560970519300932259929708830123424522394510435919775520488631821932768845922478627240359364744607480888837675453853553622893633868269579373515222074716542465696672520139772045628090135795644872453344860657689120582448307258920871124272939528608000228633475088233805253200634564455313721379820792387977525448275699150698356898846061889130203661293234302075109160257253424282071771771976234820181053428553125078532651956328660080426259444092403333450917498431671945569984354565294725816567051522552725236588059956418093251689000107415211911710471100012622362422354521261238145823123308136368922188265882733125229655833117070223060987145848670553976166172793327512129733257313120847167493278880891460335549209838018574387889437298567968461254083189772705071654999844934328558118649199953775131901533819423453757984763819561344382319910920904575074194498619742932137687949864248819299997200954577572820619937192890401378377138457221852014487541827173914524613910062179900947626409850748667183277216930122224145509297714060998195189812021480285163877140556335653501509412556129974592521728596252247269595978182599906052903778992023816116096018155003238316646375765802980653833066673550551716744016973495796617033614236884109664887827700644396805995063013729362293206382779661266085708069926978629298271387451584680616237096399697348802363100894795320036531756652501662572262283585652025785744341753578181410892627033111528980113317129632627255058140066372297890534628311753353652983666462900562742267794149571875922335781662433130596721825739012442574184138561860438594268195407698572388535323812499302308874912025243339714254000401809140248874788037180664482129058177834992309316520243129738863672081885421047498654581374834868581996382350928401552698370139196871468443927238677038090135089907630138729476758451372366607971878131861422280188941212315868893653177151858630067537707727220592501254938310693051575771843032127276203794294946596715219342101101975625438199053037102939052856655541546172158617309798375944894654228753209612706101319516550130903379270905445475961810785861789074945556612705395631154041399910864337966355701814209181610575992956846645999429945523057599505655717838351208526881351798959788478409800754853128478219033644920510299601164159363294343496521588455004690691863659072309720827766585415052022734093238240780591017221411246684332326020001354195916766283802158558149947021591101549394146835400169120827916493546587009253043556260202150281676789194583693690055644529887748456995638795984041842352429541865150568177200578975275544756829369376240671889265140917955429851409281467853271691521981720280630131278035808637606850942535284912302306703113059243438496591759803576796532173533273105324352087752144390750081366337911387969495729224540155878867657289429107712741875365844015167414904496249425315039066520004264436439596420956159953830599728878060284724366900224598384974454189502326991001586811222496389500470647247324174665768494532865791545961126816994873886072615818685592750520674992821245168778976998089687464863235737783535982858338668779640366552357741737920999668643272098600481702846413604418750228517957115642655898500313389369657945910641941343066478875778270462174338091553628388684175481996495491106934179561998385551201868708907134117329204962174146144154251480787247086239261275149567523308329384546421963500079219955302323137122579491063286061895471952443999795212353746721347689798624888422321498056486064484540303461414562004315914596178202442360726445257990377037540247922703803365892777239814568764486090937331293447930621077530381885796920241488443813468703423107760203309018300000511068114194012445372023599713653425515038285054658295157289582858125499747415162487950468706879930765381790433612564929266824373815864038258933228385639202301170504603399542051116860237452256629389956780884836239018876800687235051294548562019049556505746025239633919125018989965012868637021674816745279695493756092373569742242213191531977064918904351519398370574171239206280035478006294936149756981039522421648278331550352478369161242689994957322200413980578458916457800403778933758576669083409350930668290319687528799855826407450039711702420555682242824635967007191219310169957680573993704154239149447298507025886936842977746539931047253739823918791433250983687424018387171560400060166148652775883467098425145212387176574918551807733327803381696594516670888738090032553923853186900754940582815623510721471581440146138692532637046261347141826625449103777655644631587941767240244429815008370983831018867862762982558668341156527288385376602664323514163804253758398812555424834151108871592722385507532865822743792569184724576424182668548613501556661431840872102807217428094771640775674480502934129281810391965482185136432826878513576209639518087755753917156208452247634968251102090473262384421593628728134245097651865243623344650139488345424854106477180108611380370672376146214347180611398277451145398536028354912281708501609337072771630747150081103871211323588426896525654026951977806158883932998562278421732750897407412692789257216370301592623791811501991189067276453806219555745908994151763585576306048360517264415706311810433672421513178832884206378845316679863694583708585582398386438411390630760721782542938154677158176612018628011772242005984802812496135078608999731070227724853915718239991355559992857329757049084229144379999382113687199183141161946711929541634243946592346728389976300068690233923531848136464245244845325267061726772463238308677359092865102097700162253778809367104478044049587439765380908363251821859778984480722390579966866459636587494021336798839888940627479004952598882146097073739161508764887656768633454292394813310445319265794558334121665634157280834734567429136332433596608398215473772040466082505969468520035034255064393586603949438515515881706452655690252529394400709757877948723896574176277195450245075554767810805296701362765574863070078700152879455128946513435078074085494839626259659488785616874653498781524504360975725032998013096666508447124955839686373916819372808741272277768018614646219219916773264338408992599470713328139422604551994823452594129485457686759997356670305836554991973402889383601697318019586426275411270297574601573914971620545685064482136828130177705216599444918879804515347967582814408210714956519510506839658210184392430840755813902863984214172691571632017095366743598509468558430837529270447556283356396143060070583699654898589234603710318973740102543972846547288698951019778490014141782919408644599569083793398059593500091012021786304053822264067782446446174506922535372344890186829255170629969202927308850005378964337109750193431100253945524609821220554432879143350449430761204732892642709553902599717311125205098483302823373146094424325275122073727066860025496893242987464504792488786363592379734567519874594045020778051054442133472452544850762213783286924265569478373426821013185100147935956564777984190700162286079280514502630951579490512661426490857153909772583180207884022078058086690253373246991238278370662634172737824632794243518148513060895580917539414584025093315171341412513645835421825835806259151225324520040683848633881698313932831474967036124491788488896742558145656335048214420430792295238443815548767699694799527275184651345594265707459287337024843681210865600592218692219635405939304614040485957000202450593893461860013844351303316590487282806318532336325910949478307630859480715885576461416234813307161905356583398344497559786441065224529455852712384729462169652266395574310676129721095965910654977452718608828225243594827641530739088968217078727237716798261331005777217772219155228091737196820282081500078911383587131526323847017613104244061711948713596719200477314177173792511368635744572902469126597511924426653594952595234927482499661371974856748162381451863459275142772841976625217713472912880614857536593315754838201398327059895018267870651304905071767713393265476255560214300911582267768820046164228741605902558362706994704061091494196902156401275950405656552848543198709744444742807032362830267959104717865346176156310340378806961402020400624352755180250871566637857365047092508941619535790945087804695003663529768069021112071891269655284918650699181280358442049089503778737332893510813393968639067064458088857595572881811001822492217257547297103626457527508550124852526775324665020026381703595769672718824356898565937539731632452115371420797052958761685828304763386634705244355360597880425054355777273125290576403691188017863259305803436505484741385886860100315439897777713025648523939886323035133706457119384710806476647712421739636785933736506002083398404164121608206339281582461340912130296225109544405391539466613655600472072756391920686338204562392314149834393111632912205499465479133510612544349380220133943146904299873719639504798494299056914885753665482118709569679230853530580909386735125900622060431906579166090469105840277432649607770715920301118752640331423926603641966874489440296156458981339464132694891561946698746652789994110836128994081863619607792228591097230885207326834650849651166631545549212254946573126542413420111383624789814181478868617632367500076156628411832518112248955733244086646322960950565501952765296133703432520349630025769092088491579441136890047723174466022615047246440271027753474901841342737138489495138529121007869586049189400321086266640790901285023022057610369626390401162034073171253803228002022578761047617365023750872138638583974676030749399125267529296063174687487341365820346718838367956342094460751413724205779832526264138021365218013299951885302767939133714605068737921170860487878192900028631890251260918497875726712268285007637148025423488005680510467338790864312086472926280702548171363625863031313977839296250074930094523244188466907017972739314043146293191063986032576480839740549084898237464461929358604094039971535086512883860860480584749639584689930803794222381854020455819080404367755476942146763221603875630485899437632998757934655187602020231036484615858985508662266126452367150258458968320907444398546990354388746950415627533944286368645004844484043581563015136246929284818587570922029382279051357532996612313546073187840239790730093025180372921249652804705110617212041778652533942936558231793426832905603811182780079953851629068858466157027260240313591201497460022098652669955885624572060336046451935126865640061359171951432811026714241512860821627036648626071646009405180905725338252594349569800602191498824774114448372083671836739598673476222041929400611839163190398831935456571323149987499228157483149974277015796918842872433450353528931038804045345200980048460746675947621992090197345092347216758204175659679634622394735558834180726962755136325019591712047119083187364770137833695046944333425268340987877270212395052207640445568539704277435456771810482909339200306269799130471104377530642398908692440140081178428862130302229256341322193657025349785421489533651174671379428585356757084348983113283980922675014664248679487212936027553365981972028496218971060451855356906257924127204066289375446623255590220354536941712986508943062318280685869413395157667893845833005052785633405466510197540488126106881075938512941683250726515314616404928036229620906476540525779086530935364200242088385074694209343188955340018526824843621117475929114757781841295897884923123523746925254459087776838368954752992631048792689715055436704638453802848350613153481817803116299835533046954473913753664721275445927658959658771172567404701017917243141706053365172105660763321039840315322609467128306930017488894912928543290337872935708723838258346357276627804044522662896406166511811325494078527967346823461399123688544983362172279756510117986822889028136114726889191912119247566044284406225647299383672768691450303220356459152681661683299616442667661064583492414634573402927324158335531583839399994916595246703323445985134609516273998822048437600515057431359801140259269165471244219883928877172134856741036906681768444492042711527170294175209912938205628186035035576382026888068579132839566234062226049562556577207459625850988248994388787713266176932636977297488651957912528117837380897944241773772450230162421786489509072738113042858004006786821266155668187930344583789411864838014589440336529222328580005368291457938294820462004477348713636985569538251699207387250254256679085586604053266880759450441271923028360811791726954831794273292608364129829023444669844565930187418833637528319870870562187396613777862226406335462990259920036980408503525202992811610320943161387754640850697538285197565208480558364511312743008998509195054775878270961736446424573780003986678049032948546811214619733037558100925723874656799064858632779386423549248926131161703552184423836544656245892965925988835758956570873240599658700336815565612310961508836019199253404818689199696542853123581914126621655385882993947303585450995876851258539058428961171754436433923557031466289680758160729374353695584501188127242753213244077821017031919207665408025828758729722396897655998317049661183049816630004012191277792148634778548705980262717819298145748969915613924227434895570848862671111487540252965157491792296597225972049020299642449711699092117658220923748254079307866221627826219148488273437239802305329788986156750774117214305096717504434299428684678775167843912485818722286179250746342600737027957292853819791933115985421500409760236664823550706680311445309240210051870574169339547596443682354072961537074426410256993794658541721703784695111739303419993233564943254294758439867113152404268460527829687612612984997791453558545361263672057922196357664556801010889434614810529212337670076837365224314135023584962216596260193501406484657647771239471835257902708363237146990330591738565902637152532779964625664354820438597747143146204748227652423619049056228388719458929757010542501983320162869161261623192281085019541472004629495501390345953166780972552599085282670618086914729067920458893549542499683391139999178815353613178695651926416724945577887446204491870136205644479238520356097654253336283970860707168438448484901334978334448611499995892318472432812408418403776379676952073558163108070457920591527154018051621377016448384021877685710730152777840254392840586983229405672334095366653934448995763901365712087789065783162665904942532765237687018638574697208335006503285794622125874959013990070385664450614863135796145605419162958017006230812431969517670888424254458268986712443996341559388709961330923209786860229580220908745648310308332289823414042273799829553681427554515944452228106878721916114324292758799882756336760415154512152978768862883311876636561349686295212815340063562256510785449604438322977045665033317008317069226295087187874812920766492020350330339036804717211328609903433732210418533220436960269773921184691991044314571884764219668699391584824596445872553040085175748905704647251748676156676325364765719113612075134178646347331363545197592145780892782119655656783026333653600594251878773209122689559326202778439526640259317540112251742146399530572847835446112942176994098738590267678970403286331209161874557081322836312594981640962730885661066310924516488113176695523826936530451345662783574466919196357704760575992988344875098040701352320881789338163802688584055351994523013979866022532345128788161053738759415574709944695609574816737091160017171686354059818806042954453656474554546177442774196946206604697275103143396828540015261261837601567816911217627936786396216352453772527027079499734399005337079392989607165121172075294217075432701315406784437323339163456838100335397711738422510773169012919312763455044907377105652194632862289748336344209673124166970189344221033137724346811429002634461499946282606257433374615060721691225897840078311283921568642720174361293790030674508084578406516827654957602813048701677679476871624067279170444416996775203854829977271160251340278918225928679261684405560715244542760769655358275798565307800430445270909160508532980405774034690182156061714040653359121422319140889120552972941429893768493749695999412541548130570056480541417962088037252814327306750830657930417044348465631195324020822224858068346913751211396354243164394740615250002967688623043229871735991954435263631681257889713851651370076751978476503881413384289266157495238483028260480544990630495959632935288745844913475605567129999862416236698905078006300192208186162742179655162477028782266761099161062141041031095617721619987440601511678409228289835305557723101517828649553425969194393565143650381866641772326587370109424234077475470157123969347926967412507561531299702214595020929161644021900454949123906697400720470556664008347092820635264344118853125312583488719476943852717424356800605795479122467947410156575296766691015949961485903478977448644654038694989052985546735085973763663142385760698297402773500993003006469559202465643406728583480100829162528216043590455327255185723120295696733611061283182738411853287174089288511454375808264320419832344517735851219784899475115931223598055611173753836027430942993309447202568859894869970690818145166706284050700064472515767159808727591316615048478861893825691074925032485757957458018632078064690395283330217478897013052485293194503442079523723797981462179475641401771473952149625958361062633938720356162907416469695024134283053927643449315571800538692766506307993821362954461403354501259961229135447123589613323532889727546579305945177069402682818883084867199214350183798254653036617916910640862067480919618152452837865264293125843092118108224324537913006105091127475248189820112775863919388770051837382906364600709012689343433507163218620359554813967185247551209913640177021670862568435251428808377030541595364899296577720573232826486661443878619287992538096495352049291380165254410101887077523188011215753360086096980928243126583993703076363804525766551074708120894400555812264411881368608557258288614265810587493494403724174072027075204194114145953643500572277187886732975456017664637392423451319504301350948927241304034800477094694542995839794084859899152098350921503011152099036380564673171753692362115886156777782295588830658121490509558123427862677955336145672732678712365279493249734878498200518533709806281158210104924231790882537849039484723576565850541308884312987644605401625897560158986725208387213053921623679052394578248769712520174538860246731801764692045214673224409560558955185402770507612973305007123140720285570077711865270393786106832389692914588293474003785334600610775032209626525275577880644173088259579228935054593003196231778392601691629294177019900882186656696081653189513551186513332748250220904425597214484284117150649711439539153174188071560623597901386055464783299188015683492864014263828220423647000695047127959547345618965644519515107136218497236701009582540633111325365721577681199514085463985076401021665462133963178345987040944215409697667333061716245203207109278356463766964247423827295414864565792798855318847451348659067327883322918695538293245878213961877210200450393051225123954583658974833955092639590177312876629965693385079713252817185195353711376611297870598933420534069803851824567398019154267850778415595665392716229727208152561616786544897777665823878526746984854667454349495543310895243256969985339437348724506331714690475729975799313516130373760265490540162948432669731181066073931829617386430908301811381376253190986472294418452635905147105168044852483502769348661610277307126392872838361860165515375275441454884950375856218537899012573442911955411236570593060063415289395602764426052018878022692493390636767488419442142818233658605068504471582454472950165819712326564330040295484472978044076096790452247265688884918689027543039498902676649493139599578987180013034402404767229104829362482361395335104019285146330513247778160061250386741747466906668563800166101924602255632568086534169715409128185185807957642716255723852026551399149731420841854612497994480046271368198545792367063972670747569869056105099784891608972904490112134839671289095796700154303036853407336072408961024128170902321202897513740835219105252770967177942466219736653409517349591022912822639671037550017998472372856648206754035016538296142941474003473180610714372355668590960759084583443932043136257754658677219323355329296087266539027865414721786577965991727295482577639883803697536879157141053549474701109386753051436728736188222096946659950018810616824356413788518121332984572059571161024797410495969396593265588016412229219250982702805344711339306540466601766794555848128340806159046425120377458170346555969310266060184336478277184589698789785474544507242811606434571790111625182532059036501471282287259944024141443329647702185971343036961922315856294125560417055638822606392037734808821224624247908770241475542656137527981583324921914772759386687391536242712241517640640874647214614792474504651325356541023041118937266461697733201947747224314743669147888623082197217744067737275524322869444997251452556293655950765484989899332217984919345074951726409468276244385853072261416030844931108717608106702117811716788681027584994606911610638586661000255432290256418257921117866506295984990902023962341928791411616869910730535187862368579319688365256861803652389892860201405443786960627724204430109480096920548622094834490889720442358977749344253487542435260030551329274746323609508425236492534791031340485898239369968290020712282693064053245993333002557976191214289972356633345698748695286947904767310974786508850897607202133795382611701181175517388147504661495891438562312231578453580088174312236478579671585382428461196827878523629624923676053020937426621242846533663415703468147624566795388003563759740798633269925112272504574280013149344274072022982663603875263636833845270061580067147080174185439064096990532394538187420691885477085081241210250572165972964628750638891716187086518386138904590086564013801397181150372404496752200121201750198517016826286701080153991069515840605670920667484755943369045933794266817520195394421391328441697327147514381550672757469425655041386357978788003998743660637003611671860681045110518731277214447299889581337298513988998821732387376742253772638352965023160470673678302453829564331122643163268125159200273330342233144103350141584174584612706159358087531605102867047568714019525892841877638212710872867723980520693850318798244172540532179570797864251929184566785506291457103639892015752987610142802205246201158845073602480976778422211392811982487288223651522097039523182845730591495090151235325938266987144620119188757154287737953582634817736380074260977254823410936196313569660743347615610025869719212738424775451466742069143138135685508697785093232356577624050288546405177816636026698368769389827386358439745031388713543565771175831821434463232235160831417000095774148386298898075122657434662675871310284452964921921269870314453318888377840501582282625332017747452524604527659288581689954240260697920285586139163809257024051631782900902186978364761141614674302296268899924395616083149185906820361149161122625680279235721110346213540173857416497390796840823318212959088028832818443248074267148178295486443666833340687619245031724393432372926158446136416511765377937154134172439501403880479031672637595840297535316011973819104413297694551382093749331876782862584890236614161824417404615080709342445562504237484361468480154681014337457651167885149051808727728963818751729694073865988890043616311758811131016805712709557522381356846964631874163041409187884103874748148745494820564519869545906838213428825052650404650997135238447201647734318815694928088773751591722100711171310103847390566774943172540493041941872867574356447145361496660934257194655238810049484243071083923038941141075753934024208796305845623821587768809590482573247561237181684725365213315188050170612134651512212546406483001285782988923860404877865331351844664769620194884945475856242432349095668060516825224022909778647326798857892255277990364493134983565298105195845893371708433725925204864128301263069937208371915467600087824310683819811119962230442107889064681005500442117480837234003134659459764326555957002246452671925499490364451659489854602356709756279764229460738451930812271347204555045188280487526762408956783373227707677769689520335628436760053220368270357004075487637287221472107649401668960660766293906050781937077449298704309748065409040686611748715030289230880045810090881800395399946730327853915317573049375300756180280352886455673529656999016611980284008690261999135554043878412034737695788961298748208067960179292298310871661186711480010024595572117846864466751302914838270566295905325223821896562024923466290058548099437518525930104272859735831332290791523929138896608917957383292127061773475820365993196074528365811112640130042585545519857972841333472347605279455210208002227456079304793288268229982929230418950149805644729159162104858054204175321147239928607639039367718437081794806095846894186800494683517775395466703560837819482113165971794724993956848766401449829777388568077275775923253506460590122995411057725970287241591801397413981253622716979126246799011338119974865965542630479923133779492996469404845010856729012671095774178412060530656054277664237865822769739021174350605700822160188307514514577722347630543548482820331159890430778916497504909967546485000632998695869855559436370038588835502417791153711561235096983604125856823764582256002658690339726758246682567870695111860037844469932997386275625205076761030063973754814477639775582143208555797904721504678828845773250809988364683906107274001231795259707124018086069271944804903623544706369693393554036351868487271025499691217568424271075332313447893143752849856627311772992762635909194456430761489899236019153932375818751261114318024285993369493686094166478625242257756417090068706415049457401438128621951825751084893409252150217433676129019927660835976014786495468571998955899260676243801149378271269413871820622253476318161867186921157203318885527456974044514072903199033046503702309157382310123589670760491731533645924144182868941906935802662812681459322146345820512817896447911806620175389328742349575139838801827416923529883926171932707178253643544960079681876113971073743260682535661515716664187770316401492063710594910015742160541553427612596528990603254778018001210441783789550554507139991107569387302586966072724028846845412704565305076266543018728921817425526658373645921740014930852378172786974405621166417364204104550257953081834076755270920132771362859829007545712839827891730844417722132482104033406703522952113933280856454977732408212585387271054276529873588947838792175199555087486078067673173303501067333040387760342521821170982631376273489767130745369906969606130706456339973693735281622784024267519230967332439333788620802481767261688085500913699705376741394745838706139718971182079520951322200979039346242033974784990332657038291926070166071064946883187136583890197814540750030493117557029067578350429868297545387903708167435406055337692056416231711462521606142604239260079449698183174140107840539947852285956829732042097915236918552285113598940707832149214898863350072031868679900159975261893663983379453134352931998684106259269600967643372412057204221998934936557215344920025161684309686709490889071828898815647979753486330828493855445690046758884325955875822094231667067338555679564481529738703554105770717571686040974160493422696235870934649465046419342688379057577760637840514687114470755708771136921568787454672758891942253908201141360033352992892428063217062417347427281727977675338193556721823391749668840670510013613566418344574004758041879452190097681067413696930622617733621341119191404831032862366431612238334768560635019939718219878801869736864729877805323549369259232449826378119336163048403009269441135425652363776666409034170062647151840322188869277482699345952840407671038030108197995581620877708600287152654105045869344570665358695409971285113352344020708212892007665616771626765096599072716024037684746363203156184385049174802138827272479192230090168066160394394995506685514513387844493396886587894587621632788897497986831483755293347529457163815544262037356757978234555378666881351521509577625626890439338471058764426080332052822653089218927857834305936832572762676141718761434909814655546496172676981043283778577072148398949578309547969383674707276965401556908249226589950624787292874573420471895167474594834689329329868671487774892216114705838696369735738795667452940024025966085082729982615793974212872002680321624986641480437973049555891700234892471745471968763875097532880686292568524930171743262839401343927353920339289158797731789597520935456199741533253979269290934847142075401416043009581562687723013516974438426183422571105686940231928060783780168126515713145728703045472767832349976480711189918449234644676786301815774357605539060051563702708742626015233906875325100374762027343604974472820130816000406978531253635858284087754123191560952894933182064236065559080583680438188043093282356681987266780584685365613545168414845111242308850372429762272165188063280111075388248685032478603668858999823212795443267372996678637207444669845685776105949758057518557715898402586559818868067487961674942909246738050821342395653316890159198786282421720606875704871425285502973406070498638530594091437650157538433623636205675705365054515763683847051217843421066012561377423313087878629178368849286043382398361035567799574567845930967988411890933707399720419942542479968092055823177130958810315787501457179801724630203879521053055602953269156808063020485892475941607651789954945555052765935112171485262721314303916774919217912510743174254818684826748237333658449392270384403914840601469016091227595831822372284925767872227688306542016443422990827715517632149527441087914743875073357916627950456516301094100435007101853695870308497588242395928478832053615004690150595522677997486244484180519138079805372815125697966511985107079508267090227514699139730656094254595557872851209162243051075005906703072494239853050522400417246589589113068011886669512078446910606755105361044415006987225124158712710603063257057071819786208278930139917414988731272492487042619518351933366428945513670330191649214578190451036780062357920259610198210372220177828866656340293072923907430738274266700288715675170967559919887110655965051876587445608546049268829751702759125742596959577339795084457498420656752017461679534008775818215758242339171127130682778162154781373738714990288968004449741953820548360420420667403650738232523622280534169325614936361062691746833979748460722837567331156269001073567199345782172637370786344488309191610710882806133905283967695926734263377364460551295080780780721054059475486200211679595990017402303146798079538242732366020976669185929930425032608488094274177704950584332717437744772458973704282685572243830638924867028927598834230646725017515767741284218940770722653510234572042351229227266412384167188127859526038172682783360973019042299090408166975506079114318776463489547417642344711873891102119665103990692517453777060948926322784825130941644775162675450330509785273497820833475894710819833257505312913541767054514749130299548520883153661216480460462508454148578363285508385485179619967703044763202312523603924651029952156819054957041649087845212594694241418329642553056319097010813388500440376311868780039306204288889617760301173521424656755597188158601879510348388904050470324098991213539906251656163830225096380656027591481496241639437099740845296256686396122515162181644898120807200730953516710893578735384933457488718746407959443720765229689451497310280623986397157013116366433902430867712673673130268611288410082375206705834905048693579281122604130462051143229019398166072916464111457553409342046278802055908579726271159231113215332362761824770409231697536049890641097904238411609547952485615917569438106719074733291321641593043118934454741501586911930929176230889486275287598382446518982044002850131704413898874946777740877425898380393800926204188762182456394080414852150721912950503328273931346125624946629488499772225582081307343653500080828256748430606918481212021473554681053617296163522621140279888537973676837805004777840128810389554349867526821841488734392374093675409916502971795875933541457345890915307688695307263721948490558195867878617975060334546981158001266535039831086930062095087419721961930334722529181945593556101195390906234899216427000415169186976637746902011253078006259288174427489320027071075897271304411263583845591507403937226748442831081169856730783531622834316765301550796896236894577704129602456137794799590580425854533151527735272765023545700457118970446964390763703526859554496465983112727116592369557498077355989946639092317532289002005652791540376701843602141858009632519484612664722316192890603786223737278963295067288029217237775120809043855094502702244400574852739717976143491136035127824484407788565467971987102828916736765456803804982998502934268423138012369962986012077818400856513598683708381984466157757476509056495904546518207826254325809497896225846904330170695869748264321372010205701224910823900628874150721007708485630077756547217611815775472159433298488599765476037586864674612156317229627635489865694441921530662653228962222722940967109219613930737549980173800441637164803424238334843935795094190798898879355592187289861936707013942612685218019008597491474207358644487403483489270747766512768750939989335753226572350414564674695313040431295220380412970306073773439201273700425708814620305274807019757422235360287418438354765542818038599340385109844152103951590720618354969859219438086757594701852488935974815614308287180866709967786555015202404120573581008759714351834709524678996447711901507639865879527050151271186611356317205416809596301448664947024436467400249976509783999614622491946192318692855413125452732726987870472169216459695903559940780031787883123807961899166465981855233294361107363656118710058980611963381261886181468020073489033189480469325804098117229830859995227879242975671023214514251926110892527372686255217287740281391134730677910136510071538283360655696550336281718948533453736102775580053926364271491171409185677154669533243186485447581232183674299513246312845242231379913638643684390568630576400074458588376402528513340999516515361958498975684821536946902640969542196132819913775469965901245369747158769125477376280624820027334933781236573421630298764260293810124346081021978412238591843780575709915072574044352955861285499784257409398168209220968038888679069920498284020983948583133037358624618251275984470925701319919434391723904992035720482034863590973155021334627017340260110015324517899768576402486230930138238831862738911629963606334175209971760567166287309561891852278626055084419995008766748022568723790483138831261372834711461822736001070369717305868399447491004978256824590944219443206985327288198122167359221297567686233150656663338380204382816754576281133462587253233455350321602877027331689540558277630247567152381420294598098904819419882743943970735258435754200991612307771362197435822512333317422168908569211605270968602651291520097316365021254619650675274460220448654385459619019594015277176810780193961034556403795159682682303455686852377893849340278676977358374513684759114815834117777264136673461648903798897393636434423694570909849153506041612744300135254725247772764478786130108911366049321719678439832764561029907132252819938221702694858623040106631400516332065093275176242782326584908054799915583003772703436569826257883075473004440248800976541541340793449688393413902174449606022851767965584594482403944815519682925931537703647948182391552005593115399548853757201299936957051699191008188278641281123783757781077864274034185203894832977974254466029767653304906717004100343736181397681628814575618468813035287371174005035882019336722141278301915009243549818330120806940065640710140831732193075369459057678583746955386606125350201596609228239480887237389454811254101433025143298831355700502006988882087528891546284252205766426609942672373419485781787064382270478893955858380720089737222527474225473913014334105790653444039403889184991749991870584037714751421914449545145751310857550898568217244164853786067458358709092703240089883448213930641903005918555401433750597757323664250814796761596793076768936065385556044855473574129470854346940800104871138740258226918477322593421250895070316561654771070056772312340580334008356267823014366123013885004219606666182377219705918580944392334699398120984203766747379497401354481042579915979125534529658487132051458044500098740524034943811144826357857521026237203682016384890491059140234991177077687235264193501190367139101768702701453028826658151878372295275310770834794057579077504192584682480851280116957325748780028897727088242592054879036136710752017892549157379339433877343380903642648146633253649533745400043356865868336278532916017095407245037921534789601993297307222291391329500879823273545379393789124256442050854393750461463159505772089420766111919140957977291901734108360363991128002386136248069882786130166443886368128974113475412656723490554672058471430374491698209592647702366198219493677583128321811560797453125687029279089205863249378492948097380675162926669600706067035143082507606336990869858899058087942783857342495176729990810095062593059053688214903474217607830957753262795440241753517107252187055418375458811500458020512142523497841531221234943316165081690459562150737328623601493401875687106565151348729988738099616523393415427229358784666719956048582827644907131419516065282584196758906175474625767489311244494557185290695981358552914094386835311989386860745498993876484168329647652947459624511817607672088237783940892194626008077096152338609674641710873821471914718689761219001324647922210822007952933419367918484288117114761017186898172571975274580738364710374474402150329490817414271978877102317530649051845913368089415883734462300110708541955869209405941140915441835181118063510263205016890971666586130128211251893924230053727098851478365889515376723271550933886111396719988811381243392621840472206048095576514256930197807796833789460410129870240238323264644896721279932427482577512576613630887676848385645109181000037584974840746671494730578140773141891262854933657906484967957228073820146643286552269667681986167501099203654633748259642402775422597098419466867876269677799617225680225287687818023117826735987091290672374545147407512023260162298857898498423938108403332419658448989973606981561455021815462681025361023208599090273089354953243483104419751119885538459270781730683367305578205203921917501612855483413186387384543388738347687972627440546592055765661918832091311371796457940453905404812247370869294920764869601874919882980573102251412872711842182213387740087662256536836538765449241464294554323002425859249912188493652526736321028347462246950008250051875519049993568391577911317474553424832476514938967381494511251114034343499927055942859585740644908382276215102568660224517349018095194825663583908080751320203672483655700813132432401657458096570676740173426371570198881648376115923036007582216819084027810874474133151524002726861818609319207216045833597623954817690125116341501827958881297163441463318976127783981143566540121500238901330099409910320689781453078559643595958959633601091550539337842669258608451313588989497301447424728680984509678763326915625599642422373725866847387987541940719710303963915121547763991100602227342221559227990737813741241912881521210766037130543213640724043087518291572904355280971587693494641788619728447799515311565289725157126069022416264258376608244926204353481639520065469310603018540716429326269423559971286185274554938841983521349204830996347408577218762715470085873358635126025970315369482779140665157820176207974917167114619338457629657190078672549411899317619652792368766340924380960760017744371702494071719562149023326197275202759014635293043342340068175155447895473839804013977486724881398586267569057060419740381759929925312386768274655563108681750248685741137820358349189443671715308822163854028866390113417548715258318810578370012924028789958567886058819795158242208279955437436110972385227324773279881356890620524689401638778608007519151652220760789048908887226365796667553562860443410102980938963432452370274112086373902348497074713896883331990807860762479686777748303992778859487186616495092547826782009168988364089685929805755904255281558022213250409066120392218618500058742061216639561163311704985249095009114141989801684937274281801919211555703582190811939444287053748753352804829319714551679540796254096606534857209422865833287220133491787049997601045004619904778017790368338250083734464915786433500983477388541042406193584975750042548045625351488869324203692594814994215119275059721814295048745474275271947889833366067965289393382180160691841211858435234361365775728660773207702191917169025269159706525085526065581286482541857765977171785091687807570139782145013769067201475472631022875740288705266705790312176686554227530726753186021724592262597192142526508553945212526284974738977035001110320940126416572224390602690576684611279374056093906688222584208304151615902198916838223449294819164013603264251216820694288955861737048074611367935362932205102994290178643795225777549690641650885982506312087856969790274412063515241422625891367509667375677349862817586115641506743714803649887253585862538593134785343169781528918525396190544390112634694172240007713622608458895371704145833033818386361300239977578403801049265658133927183227950121248189371629812088040939562918338153883282700808325712108456832684896795286837146716773908099702509714548372334447040359657652927057925474754800292351572310008374537238630510657138915981382199657444060134911562616325077187375956343916886885748683212714453652401772066332860371053456804648816728039856208670513700982668877011255203780408633726758048727560390835959683305950564032967111492648749345358470876592287224607544169408087217083625205484622319601951862524228004662267704856074086835802682779260972295633152482973344915216989740772640371349295225478320364479902521151299035913616869418600829893070064769079152886967512510214005049258429489577355108852073750174841443482315309914693498452054312407701255459847049994037321420098183306676006312702578947484480640069300215148607502712230149315181196108286616836748894935360407564614345255097856885319483393718311437417728795375901316060654062793315167993287944253226408013668908775224683148608114862305517353006299909413129672972781889573644842769421209871338065561250490320029610718292958894013792534118393451302839633093034282333105883351874674900437731071844330111198868232802317815470839480858301683163785575069387147303763614116411473022143673496471828030960287063983923917923463652561153549129159675644377998904324227889367080703299493148637061050727143057338553224739954566968935808191058942216593420177029847676001622244984184930586619025114162047439854753213672406870548430436057303051060642679025390683681216704003518542743157095266836476639365109528189705470885778659161230747060661294957339794826405880735884454639262686739923523914105634227708375759904353685679615423593599142741591097059915051621992327659016412250240869527290019763873803887703730157344071037127280707401349456611467900861858076679814264605031968574596060742877712289479503434316301263418363257848844792524344674511143737953746772227247181572539495644009896373502380661420477850145401136106715927840776715675541198924831599568903592197055260270444680513598849197677716933391312091901572110395187087931446179119559760738567252329530526908164890990759835393172154666875402359930707710827730211662070573441801411103520992249239938556625200274763826276939628767770450297817894154904134309271765607321890930331804754375328764217957191033000709943509549005596338799550321263114811840919568757301147179080482225681988470621906726311566119590980438373902646082663134192435029366710413791185115485397498270817492784378900075523553125397302931965740303853291540867606346478558037222456963962166742150817969314089481024848958623901688437513805417094573356737469291251112866820659924306990136267642365424392965631187454921544840122873962912120076981766916856106784621760602620225758358713721074880768233825019735051388606876716905489180423310976369509836645777853783908619679131258442221752138480880697064085748555847870402434332712849346158352531443384291752333190074093723639526416705527628139911485517205412094961537488672479363293782493678286199726014875265796695063830575191548712460471438038896763163580660183170448432344573351245358117313186584838121590758570888100501523982144574296004787849571793216055319509784283147735546512879433090368724035670859296651391889333198845318140253088556189477478641249049932905285103096091892641762151402444443493533173259103702741181099156512430413947391066153183909077774825754440982347529989846156904243577784841276050819784700078735897327745212000197043089884515006394411541456050867012747376558268846967010095980691225852943753957359000354017962396907024100184792700896620780854654868649138463898611401661468629856102232663888455171266246250802408786824749030773633791458843142967229487012837708608964517885087979938485588355473736113693030880488401802359497688206150493596290843607287691993078774242583623486933802470743857645831748194445835285900272019039233029652491826669978249382846887988777095457146481190640439764697544847847973694275616993794226210560443593151328833631064628711000341709717771700734961374457708272202621764061546702415634608846140267344775548628000073715953293233469773924278233558931030414006253835739752100016670586100812016061309526086950596006018320291326423269487203081488232377819656877504471380541348181769344626375452825280096275184628299735248039675785515747708444699915593064217468968760880974654166363419063004336052822033476604987491792375456394699048733624536131092537813564967468772651172031683385249855491986146700097062752332245309706050743940935385387662441506868807633597275186629961386031094129729291876313139881987661741310466247728878000674757857529701864623838466126665322605061393036172784309110084772091772095000609605900607303590603430002087873344706379710146658319718183733342737443744243645565719212895126880505018564311018165082506572934467324223777525237205854465451136124431930488102446435531236060109250977349582051411920352214948459402358241714228204922999865617075441249676008946230722094115264413569523775285181689464376686000454201142928061407697302517514547126311172691425116530035683793486221275503471548230615194015589396487928194394307044689084519621650646495317011748446178276717869983091825122640718898667159669309993236812181333170429215319229691656471481167065058431177792308044371941802068837550659621639195330102393212059282071099470315721906532706257029673972085215431827627690510018984784672918368702927329276118613532465805646272350069199262358066193765793530489908888459013400179405172353149847098971700961925699420939938469184876238439279070615103931681486501739014232430890239671415167177446707161647553788513876101287699472986681506421202586683746441422497137431142246948253264932978755960203004245932344175880983142970902642357075373600017589890736669986061754226637399394653493828603194990160894850231921634255444991074443183553987341980639791502769366944151079950856899811860646084422636240237182873676838408137986160530208590059149899727958603300053051209278836280354161193791867161883662141072432891375097616262991931422075945945657654666289166326025559422635521367728837378674113552059630463578376380613477751009834021817409642386485249258622223021696326135367464232699413238777979314775815500703883530926248699957306293636218970904755313716286072683255729846166759433694920649416891253815799836710379778222010404234026289563546746770205619651446861233069666028512766067219672963491514033608187754032223511896702402129151886165347922697768275772497960635329652656599893166284063446096278952841669414125820358934602655485341144415640651735503294119950104292616194277544838142650087738486584617510091129098533797159447228715391982961649616210657944440004600342112572316176617419527926376228441113786287630606630760935756368180962901428053986344330034809174534990695048173878811245567548426981589306599607059187305916524355026461760078505608754063407205857697949432766454691138056926715634648994169548038950756047569463067006219718129473855001132263397245390947641218495343697935009626001629911309275053893365134377642081937381278084310706817419990989727040929305214564719555938401160117902832213318501055392971498898609622196112257672145182906289269245413536715880475208135076408501636747047389064635854316526062118060425112789719477078561742109082335724103303383766765200332011544474613012883922850364081853581540764737607055340386437206217612987332201579688117235918280272384269787454099238221078041238230410027048359479963657079907258920285770746121980477375781505799182896272900635932114531063054541903251008855444448983339407784103964979288506393368153347305500474349727432274922363121817432750088054892074287128915718091106659491729545711594611051207126818295083264630109674778641291800471951909959523041032862880727315289753665874906593459385294900231995817198412976856464495422058483172647053078463355294674157241911943592997367366839010474921711578846731522403037785002180642269487522496343842944418687309998480361270904824041788289611742700077280163931850566728199995330085171013471554488062619362790856517919179033283404596278845041777263156641423514137201889088560545157826068795242637293133513040675485914418519695599670620573900213993842972621402056624102215722045531814314762771595091649642646141128744775149311871873616088650359847416033405397022204640908459379129083264909228776811938135648700412421039721454983045043404437689796115050215911897459833438346984600038688354478186320813946685851900802161418728085425895066838275369102990561895873854494529398597077451564702151088264727961842555627487698480558583855254920688044674112581974821550411555879106012331665692203983613886692385397771453637240251955136191022273888286036838260169968962574106659987004978997533457016029423608531387723244264186730347841694573035581524905937779310313219916534730015265269372912514492013040737665925062184572746375947977571871780381091085914268543905858518622333933968507757263817718336764226391912239813418313933390721416447909750022655816963829633780761994797573995617203204404858196283867361586470419537621609590089371939311652441528982294570305167533149744314123940638269147233615728939339209595164644574812969844105644078313311444662106019638018681275822012665991296589598191924909442547371621605972100865770470598203161138460158992757079754623268007853916048387750807490992222707961175866268986761856436609638370608299474673726832540785911869539560403729791915728934719021304504307743607505713762171028254491925230471113285387229971340533569065845059096482181203221267480454840085720351488784546012689246580014095101461369726515821636792871140885490923901931309531861039241264137743066389929529319517233177188737755265562830309651414617430145370893378871715396663644928900725946730074323689611799782307708183673465324567140758020185780860876460233345407326819203878342051589529890808750986058688110269836878111755230949503293162158680580767956019876334519313384404327335444713862204812528714308442878978703667670717869707569042324038968307457201980013901176629912153851844764374762527550906848714073820027826495246709285407174284686071521802295987178818569033400318881959329355815096318308847763163841925329701039719485556698876976063415799945307674830915916378189141339015506558977016133853109486611857944769479842680622956269841582421354832161792423485032315652490673107434574100544889072717264889385456900049445368962977893041172475125654114015757436660272508573907884357626636779975247547497842043557532089950511621157810406415290602555011751953276044818800482793470646668209347968054788977459526280736535376350733106262787807791865927536603324205141433022551498591021382365323877676152805225476875823750023957667313351499527871533249147733222545687531297987081616401354529903287588401649239574790097836892419089513737008828940887398074142623470527461175275062635387057540323888334564571700617865898030688460353780557162479790257476153792854688456532124350766062339287444425968072107622674208222833279528369329563429986491928825328356689841888260445391133240795359525126996668360436454033748336305622540576325304108109343614965155255722606985634301528970339833538204240598395272323330695228370296270817314899006359402590265953492555302103677790924677335320395643951080524101883702303171935582692651597834150075832363394718554679302562561143158239201278512827687345271567185666297196509397737703692762258010540595030934921539915149230772427054152274600375681219021812504935301297008307291046866723280085756848376624924078841955271284507167981174108925771088327543841061093626009130626265160886910086346088948096632788822101523177658998479552534360357323009620752815506296886598981714574762144403774228546002815072982463942612225109739666132969218081907165161982587875320811291200599932383821476403816796635839170272572489582251914869061696455756464579044011868788201281958673229579324609242319928661850536589788942365829282431276228003834985012687648631384158571401668912889581876976734481346593686720136757360741365878999326531188316506868107725443826217373896170818232981649568883288472448804379674323526242358153024341032235543563716086096943985995798938252016663528991041769494900773752190834897653858250001502215510378321324794720601193050686749185349724815371755445124804842552255206416516396558462656014716466784296997037061130811929245905998531942177427066920235460225884979849211428815212411491264147678611749545077816269443507864169658936763033750765987874329776556312561157369985765529315809536313142688172677753107516166215792627195193454117102883817156658697951630444100042265582932079426662675628228457120190108450429945116226324190895676430923750363849041366513898549222975588133052938201074991558497173458432172804567531991996479411063047250967287052674832978306835687421978955326645464956579520187631411230043304940938565897155794190666834982338392776768548007125891366510580137879667981054537378671153905457044635735239180288033654265474361636064089102702341527446299389850834570422922630396089577422987274400250047405484143423584214952580427849880116752744024849830538941524849652125934933659388447548437021707122534224151770218466329425222256879909280093373889175041812298156926783355494333423897945154746289410900708243557104666401733317433099999743521660569590236623496823338190731910157606616930944762496004407279247402283284046765238549278443280117175430571199831128173533710335714313714893572154115869123459686823341814854376011077887747500737027000160294286431354268403560214924675440228602260366702338530704945268915682583700005314144272523295319343510968117480973725778486230539018045319525427081805286051691161465258492492152226475805357918726343487513002352298125163472255432995155144858424037081237430454143401053098160715651009430438197653997130245075596891853829909400982277822387842237648544751123321966013318105313460899879691513948026847751309755750967149282940218446888137461647512723382290656963559144747389153413840831127340871723553879244185035168758959345115480081741437143043006206880285180740122671284266429831667109051289272922346906234413418755097692327060301540783864579810194504708941302362101662557373029200585527175426681775598912170440802365747966847785810443955602009154094579927076557816305113047208738670889591470900442464606928717530055376069837651049654428170391302019700992010197475103279819794861235944227494824665040874668372001326462797723788267176442842794273962217213285556535650999076161135154096221334174024263615755070932818958689533233022701275391979935027970567971230983744954049162092600034174569534486560978550551871526240928453012889852336535120610563622806400617976024079929915569096904627688324394525003583984507430870130234050439753423819608755265516584369281424192116160957767838691003307409490500796280536976563794707133080324292009185858109991346330409771478525314850696046671525130346817871371625205753753570671455011041411641045174191115366223595260594939098951039473407226248712428317839688715045735111188556113929696308167232764543279253201290597276239386673193764396489358755519438897590362663293570502969267860704631431484644892835618491701254929682719078639756112158603554086936460351557220509395678640607361888626493068904206715062609307613120640773153472552646491036619233353110001061916292251730946457219900465176499710691057679908949439618495122617820264532722919373371265365695930876580451100945056028699990119314822963125526143673281526711890961831723036733760994242149474679122154473975688157483400857409061201785431610548079860891645166537114266342700989060055682817934086585237977849462821657353883627561795622963151855532361504783203227832124889645966194772468246351699971729533281852032526140332934091640773397967876544037334550293903569178871055821841277885598856962755841245349530565444351855659049162799433456460809296760686234476524757181959683119177523223116084403436094138622340706418802384225338772083668309099715635107864216541701020289415698415605801174514198039125440575423122689274267914303663585827988066528707447479867943609117980769268799874997069129220732104298106006302867815186648192990080134837121959547885932437480946108056076844599101103519910047931017006205383599420460136480834195509311372638932735410438086500877791663252873130131078342654584258095436865808242960847047729496946609465948733419642143226576388890380768821242662483472459944704957702287651354699409937731055064848932838895193498490183813552436795973580385210593410387757262790231145805047234606665104480275041113255036265837608471007322366964485207148603449149235711546234093650407169887680975621499905914428306270268969355722334016017967882965653040003003064538158242555011178084803671299807035761302940618256461357137602101473443204943001672351981931769913498132582034629199207252907701740741668434226762283457792197730946592830488446114228244645415501846788473001694444398727184310252018765017135731053835759433644800449071958643214223533531236550436787853565941248811360056195193503697274051197516314572554205653745773839671219584330109440905819947755558750095921378717233460049946986673063739398321361791663797029649486651641466744033006270028766972434747498440958949710608946952755757177757658124761640889117807916831221429819592010210819438577603302566800763426170601933790710203549503526964296217530214124043696912382736890590743478930500929472428316693380210895875275438963048401771294826755273724052675132271730070774015447796955805556697415243323470109441534253138777820230011684280761444067865371080674410072441908373830847078017401408181909704112639744606001934655910319441200322812845896758705708583769558031783398424229413525084062606540484245405270918013278008286918271939602639022201455210611853491487976722369701336613640263498120666155249994217824137290587719904004764373125375751485849521399983184094638061790624752790710874664955900459903077056908569277686594228163806231200649332418680810142133557976062798155132712356777471883503915303037666139873083805337739208140548097867710529186622765092196169195941589258748714647134659875786392471579846538303654335068109249403521853045599839316345055177475689021011714560779446947534074122130102729344314946910146275721723677182672212837876597021353620301606734752525132560789536236511545704488188851922825886168542885458388404617940073628633489634164317906238813670294745386294455494530858083124682668064581317401628014095368066742457119422285870018928508204959092464324344604113105044919930545338907052190565742749286389542177839726008639579542416138226002387072356975607788814124716611273794105554379531970119139413901466458863059291315440322696979893551942551686570201862829693277958857805081473438466332398705231999601265457963341986116618962490983706296932884768484756414172250851253834927470178790154961623817360691728576247367407067783859095755898054329075945105099725584161719606601984985420134818013336600866419444586207538224177789853813206990435952713043175317175205664063242797973739324249193771802736467886423184009741394936227879096149515793828434161444127719286668098859113648369895496723604359590325191986989929996180323758862297588396403439301033811426056398393377938532677170988186739257197081276587461714185691715657877539579878893974614422717200540909473665786745611734731598124953748166291412311904216250246491873976884127888494372079388009940988547238192782094320331565422407026652409519169927685978794734073288028769009442451473620526415927546628516632927906975193472976129339358657517510859806434232528805412619295896008633962972045743356599376217352594479876272981857212497986435205391845616949088611224332245488880935674030804627297822003132833374562215643003389192606312004111423922503408067781936231871810991180288964058721179437990336125356994892570629853482737604965659331095457770569985259110423626870341514237446321721505881975566291864701751908256884727076550925687218699653559430679835288922988400181356437983577583743183670129468115810018570586063146222843206483513325254985553183615811258516973433986516518441730902423553686565067772836708826919983467033997156913201841500955876562108663257237846987372702382948217150638137720574976802790144194267599918239196117819308797904158128512789637509734703182124871412388687762994311430812864768256812098793595163301860601900166365280274710152335501867166883398192902129774358325140243028449618117128954746099074238465351514879178276197440109311834716784573352395535121107337315895719158797263349853866799296476038666744033431640397195800129488716404022912130799813316040845440514255889764178706003538975247544768493348820281746456951769793893719078034297001972921245330283235866172605381454317730398899762411512058721447837218322859642657254261801982216376146751831932184454755860996244721513230461852582534679267990029372414756391615279776042274956707807001138788840706166527123793793810475994636097583103169820638719116808373202302469734656706932289169452566228583462998742110666824192380879642707744878018623782946492096164842771543785010162403890206519571618672917770070633461389511645051561963449491579857909239695632043041291036266505332464829500661201603917054857156567486054385968212579938877109067511471582189877310070656906044339116106754301121390160289034137552250328316911769840645567464497239650189042607435011444559659133161318198663678495595760795742794723667861396124515420359946426256785551157230395194348600211274583224223756188498099791898619558690640437558453898918342656021507534877677764014278952132243579542052262921249726314167719450293364182905658019361482527281202028370772407079797971056751205252237656132468499027293821230000924338965674606834071679405857230122005028494247761942545455278483728056697904855738631202387569180488355165249950051886012588537241231378169434463256772028178714958985868782337440026462403885672086705037935593424540247362824982621741708955323138491781227573508799459858788437143894755220176959318305510121636531811285010695234239360136008421566586099577926522763603855351423892722116444849599982190087059161674541477539640140483019254393939018250579928982361438546561344685036198894106930337619681084351359596233477070307653015444827870910036777158221079209274113195790194055593552294772768736877115663364911902256133599644378069789566477235289080940152012039902148559856576296456156264260488171640130490280796038093780094852328147589050822305706426214869667600965647024310201949030709030437315951647139718637805818719343289938911351053200469778761464802747200775757044109247683083229110425985394491839993267759580323883583824566519912331750673369038190959984384775131593417816659036741566895417693023124181021414201472881768991364809242473282922274722170124110787053449327460837931988958451664847109741062620524298370576613958527095167473676458735718309333120399079060491168674266429376224031248345948340833711685746031048867123205400721666863860971330721509940358704879942482863421407785817137210558283431492285886960470097698645715795041967374643747436727715307495638408261495520499076531220556138147067248138289757442823488149491781408457915549946798883755576953071212245924254034881736099858484215124004224161782788458698705042798883474896059396445766906564305334999767941064709963466733246845450766461238449092833506966067564176557306222015890240398141376466770842024292131618634552495800068488923315296496841208057034277392368690725134446115176105550010565917792289290127952955845917946419243574275344936470399712080711547172034094378267708817959461830612983242482756020268968607624935626902602198193218464237499865500987019696640089101065711158857985907039422824856780757099023904637016700067430882207064245432605534335939687414751615647825860139750918294697197160719617821082024087314841779092422770898660953076038064814837460802272563896621040827871261088914198278352143678604213043542436526512533769103040967874152733790776532344658770435814915767977973942050998090696699923534521005015376370045576702492689179747526572856310140427640752803142186370449880057223008419054325549224567651462563576665013490643180245105258832509332721851429381446390493049768483980586963154193328117583526079787684239350871436243189791621581286002746004092062503135046189247069670157617091119967225348591433876413134234020732087972162391560677410704692011869024586984738212318676102471783261705827779895666870517063519733077670740432015883911288518547834005125309910211794113204231223147990923349777683953717229592817503052855660210677834572211205219998857186512951959666356242108830439517200796732678601608864924782991194264501126778366293447212051507938922924857954852553964235440943466783277783834088463288560060477204598284860766546361194118596400041401437640978147664836422306999172568476549531449660501392984324685169618872531989154312960901357753671790910666697752983102804416979316023210755664465363581986487868336002820054127042394094514841986921387548037315544689605487540155322239603039450315970896684389310855622358479510920544859060719693805912303055632617465258385199534027208338939281060549639243367014565200134781983057603717421092960384942939589080272654679611107643270535512619898806693590021574416125610361048787494940276104091490225795128760413312929182110345819238082132772153761208494258051827622737713152276218426837164749680825371860916189313287677680365039430380932351568323678138326442628620480352342804206784142390516913643953955040967925987757249898041208533492188602178163847461835387902297463472926803908803252305100890682502498428111424937725976249319224532220382208002598854444277441372948416115053827905453040999244666969257939896513707462945025204793843541317297224801206024263003902281630045840623186105163472633654882499705636477734071609752980114364267594532576059417413339133378033906972665654947628944886577438725455593603913413148347709697791762824559155820173611468811168489524170933050640218332603006669775318166939868501113837550379497183146938111319536017652222945865653119312470048313549365951584721440369606137196487801640742740374809114828380438099942823980211790715658866742738615437342632393535130244223694994448182154153386370084787093108340633299062523892877314176529403821089470902432946758823582552611170156796411436738354619940046817441555650996716783332866473392993563749633091401974027855762247158400040359576071616936710665368476412025934962495008485498965522206035657369737988422021131884740914785945537033784020075231764899522358613787819399575603046438052758806158099616978426031828493250939291400658460667083993960396869228411560410702305735133544066677504880350804116858157006660220522160448720470974875396964898469197174724352661489747253058762206024407555424328132600251887190769221021796559366313990626160707958573532341436826361034736284261634519853327242400535629860731830184264765743911185977065241256524087105149985139303245805844206748135335244923935588521061451156015493094784695076936866776372224284865335264505273992940161755249350741456327998927241578042877400781208590017968419193354574160361985511692260904813875236019523154588265302554846704479270922717169124080847703116332834356045998720447040345065865623650929418500493567420494611063660359697777567738957929213829277508895442940612287371350408278420943642627770432953715199483659727924423737573992290179720913907905629072759691803755193236727385310234366879162874069127865067376720338007527616469631845327896428303552834760402312455826733714130725497407550842466147089272107318503423191196636498606669477719046807812349897623565964801084281479421560560084856287318413052997188255476912566501218636435104386546327965872380527343270905683568421157289252656840787891383203007407835373390215899373507025298324008101187301099265502145129897992738653737165272131100626283267979765386787853053829373801785377373547845154332069281823816713978275391347232879118679003515951234983910456879564404707153148251501187681304387505658318622020880510243040680611825219456492065984384214862590190645177528703376574698012652339645097749844555903821990080659217676047297143625136922660551339093534297482457763673699861418358437654830678783751518256561032690838941086728213593527317826384633435363188203108727465791681766966108184476042849222258031860349732223475626160361794395925239470684350410440681547078186233363653974275088416301460986802397612303065775432158647979888893090067841132057770721303688033546408545028545166295026794521196515010966040257149777493161094799270113611913973583940362608754547765781578919218895465067789566021889929850188764958357628340404165297395227933474504915752213609320858545311197411154194905047194369731183040806067483966932601421037365479416434662163729228469831820541906527716068134700343892847573650057353440117919844454991012770784657419009791991740477659091805652514985395764244411665375115289768709996673117765896436200290943557698777028635677118842155990924594907133490474735315665327608377150603002740351560463691336320662716928391630724021813305844181557203862014292603974939577703178723742264108568582851436724877044678216185357862536017045322920188130979801322487623349740146352716149698679819088910901377072575325358939069564513041681640470796073158010059590542855698319841914918315049645287864829959312466122102266282538741094737265949422185606045123519656837159493548267481581001661650223675919065342523642744538925298718929305382345172137152189992991087634602591986439854876715702160232554122786132099566097667429333996326428682440257265607663712060741936847524719974029251336268255362507475168092170736048736250703243724154781940315927807278476568512127235003098954679515211490983072905043115687821991682379090511191600592444755195691458806068737590466411097203399298584002633737696211257186342175744797746617981149189414561352903724030021229474033311381155437019253734277664226495448536406677463692430827760238375370660096278651738417759902506809625444655633842818785597431395602632033996100629611910239007324698734366418845051189813721470452568693507027949011295305434337505516134610290111906739197125854512287751962841855929085321316760162438929219023606886651793598223183738222632274949164631463813683578347349700616328368470127302281134723276244296847732414909894372927281537389637200039905090639109534736711204614828669295151206757568893892929788458772684030598211455101999560825937985055884861196827093866280245073988392252558902129168184854714090328122324752299795172656467708373929163538435207673310658926114122202186687445525775328313964305505667282722667484447666911610703419312907195523923122123740623830125939686775996567993610994434176134154960395344845485485565719600017431431208013882087386896570030219054809044168677462479439619519580082066668322465444437863101494205200350342499693927930282441633017016543940576037630316499647619656900762072610905728827893179932120962527420447686781798586076191027653551680641606255656633699906307629784418797839227525982433770517049995638749559677639640361637871274545715907522440844232346079684180139159474093941960428753801406378088554211708227149510441971595902269304996195789134247399751166828396071262881781095348999623888727722564346961437015855077589313192091598579625013596850972992269296268862436977718939102201153445044898578775514814170272539974127107319438567522890305224151194031791984783814774844373812542068702687277181649786814839767869472345230354526535791662428969474927670306612836961180162919023049135894051434613706175099143945369583464627135135457771273426211715964975341884472234507689996779617061745106765153391882963649357286871615867857421960207687521107339652064007979349967267096398552397866577329782897322400246157072866365896030898559236977197434292894061043698389646521333307241550812400854445397285955897376430468522213153684525998078114671908806446406958868416773389689554476873180045658324685410922554861000482729368164326847855200931507930051683994770501440871136618626146379906573625718599162180621145632015119787680226016680630128241573578830362009909034481294947994502250479198724260863803325754734596002307707075331025267589089229974413626506007710515873651947173696245320056001076359648092198484694520184407003926249964441833069356427635683163262784794705139081323614156360579756102523118132781453000555070372544360876292771544358424766247526266250710311642756169275396305653591632051413779089787598360842919874444177308015860704491788885433536609064356392165973605798600976154319689587774278762570889330205373648245511166543045366195364567456230087176945613869327251261232793905083923949761850475689556811765165156565293762524231355174378204374923644814866302931461351434672330229004606913986392327391426855228134793395673489343464371255666205868386248023024032031923286710405746719665821867448756455301011743542332599650965457187754529534869426710369306588475899718486728064112721833600385168324744910243521705312184156810375040343422322057803483937041462559339935559541359278483437495342073480586549526809138828572652466564300199986913330408575351991589669307191087193311756506187564789063294440878638829295110449413432824230990208253715845287477366119994786387373507866626277672456941105349413361800701559008858050207599106541973669659716625226846549844527194462254818741896781561109580615162069957657019761921319510995215773326080825063449718042997507757753146374538168305272952743401871588684143197239716747745214998750496305532708536511354801062790823626813366148687598536396249759946572475566327278491305742550510505128629482881786911855638604664660844420787199489583242848963227570169308348480856567759071637667647244039420960888201131618105128493678560741262094124848064524789233420889524925164986810234685814267087084152246911475682020594219678394326808613110192362570330287983466707926390093903649811622756211351429478200953200156565425492518099750625661771174560574953825315357834549414932418890808955979789245142301746306722809847170441072042333274081726001585785837473807085727866388202797318883113838569109606419354407612743606255051083939743954943623974382716838745249683001377479137809518759239440907248176623829631092731672085156767265787765106351012838790148559073747216704875385293060450066986952200092704112482256632218861347164094510619563413486878668590686198601815194913859149237872391893096739468106768498768420465033487044486322666587889100702530412932300114017251205240520693299561569426980614743151700229711128292933038738552769796611499002261147053031679670323681033214578934667187482686767536320476683791939304354937327490613904301656306677684193311664114022288323804859613804499865928660568268693655933637436456713244880825311744369684817863353260770547028458195811587561420235370954680291449754870622910506056122843566855230088795246796453992608004610268534268717314918609119241379481908851226530767079010051604540248056572130040629941932937318212242586935314860696828209111176999429029041568458980151294751540401263496278737955442276191576769457386165581685386854715159708034418157422220411803218442975088282023672464607192425784305354189976997708170325574758607053541250475117673111478793532781009258348163292254952053448076115541505693497103965133116101481134823252687955361491174659986815922540075910589422328247725452674651710186381166390574147104977934453881037813931882983754221875794943686993445276500832997721247766951709235105631070902886176890424790175670978479017098612556901636643216077182794344283024279485824712594229321569839451024926849111499019299679391634740619448358133667948620772996806548078219419168513363885547634945437365418853920742139609664869717216631227668114203730426856822261648046004527770614258099242717103741443772008714545042136471723482243910129433799643141310426818995848952715575753061795417585365193413778061282262610240660477975258710506878857778269339280354630497149744868606885204184318856261690689858637745953867273042932251068512345861282879954895586635015314463967341274524212061733760481209287582866987943841523872695794691451570357876454596582283877801447087849891565273054484098657304495802355594937706527652878187030271326021877785375640768720317176215418037679848784843872479142281096364503695910643482304678302085692319784163582271219954611327254004212433035188655986375038285971393436474618211645188175189553678911195147703917023198884274182223157906310338503447595809779033533840403651836316903625124717914496981514141625130219152857115729468295603677644863486964989789386726290813965668647399348216224570409249134462675398470202854197743724499211978188240552847076994514051259248640636799942875738426969569786970611300449659331694053826390172063206328056498649419803433896733094055127414043650873280829918894090769090113077899040614492398142020389228347868333947948300020501786038445147325867575574469544517122098606295065681453121302522573272446478935691065254085669296070447128930949720953071254083862448709500467500762586437231381188770536409646693901129662980448118083526969935867957799891625896575570834408971131888695725537711502396630227541802610891063405699402244859321894213883077891445214990257867399462884005684080758470841156599239890339837370023401125365940273383303695695071521921442359297676644012774851741493251949280301835562943628052446674941662512398853773994120025195621635533366171441432470134596123431997324530741219249586032999087132322424782150077350547847093520417697484272329829685009700343237477970950806483359796580297307480469667489610516275087623766091949387689381442145644774827149560955337169654221343508063941864146952397244447694718027210746162920065508192193147941974218333019536663261686420277319248060318831697028669936263112375588217868940491253889523464027042037907699666054541547572004366973539133484972980893845272155043680535666210771856101732397645016796568940836946941456967582637262769623715062758541723693872897642992777140373195357299517739918683717087049243841218729287283130280368917451484857670025153194455207347723327829077812194140580419453720495608372124161514700939183629519970884236401144626838897184003919460597960796031596772679327777812666670616175899868223777205884206164606096878589258175606273503460318922897947906693746700069466228879810525253833059679629259119532526497351719610129105399893074828770435023167931717545880059165660046459866306309164642567338887612510863369667726038331826083450983821192717206262798893033159513600500196972111578316080562514797447198998474766001145383362198617618358624836262039061056866268453785539538341937793117444571609907585500396239145895651907365538756941810918113275595521657687793070802179836015824412479217925170356640919547086833918218653361240239051284484173358006443145864828113532061334298076315563576324045897721611329880123765190686750396770730205082240510355841998339483306253304786725546915896052242846851878700632897162547801587072625417308367005153243717505165209904479554990912686781280745363565091634065259964939473044882121508735715009624144055386340919769210014349433987333096239812157113539612272291559564168323681704419509796182151281828120127793902313965976354654868583448020770121392364300461570878378383370696820591898067505938011808521615397910452229316361350789316174314700841830006017305376915187281030294691899097509864332634247613984527543321348347582884779389848021420221609177221724001253843405607764658278819488529629378497309353911714939292685703359491362363571839518326501219412210370782494175529824203346949228482738888675711930407706842524757151967074629932481022080897938250663407257230066891712132808361546915701489153695846025106526283913021728803347336051151868900598270833454523668761140045105450285410552640923675616534684334853828356857725007524168927025282087396231368521140509069768465598025867729603600101783505065146876012061726764165038870078785896517495869991574755532448778780777427435337758774063431158587333637725685822822126741814178152650430012415953373274247256776924970206039527485570945901033888457690016252180697194466976026524160809110725630845348381453009241360350511706323664750444669797798312888045460452114463467617996948736512729876035540632790031254276524103183817324475666805959449898740098689164740224735925289323975712789411170414552118368244800150618319534762323979616147994394340388110869970033274020616093652628854325570945650638066856765651017252952857790938400591060767326333653300694593373874166586340616739143192100615589805183324694956844853851495052049251532380513758527153882172067720721683314773041930007504817892433777266727867774885506656036897006717263028288177854222877157739772381144195290970062672232975832600413750087579405734530116416413357932699724637828752277798473013168718193949204209267709479124495922253098329965188733418621062785974849167229866354054385962735702704948860028798682258152721712559775856605980215211966909686245337121311577092329536808382163631344641382742251842781762841303727036483223995123274632461779452487065464155026175902866974995606865665621069549320633838907834156877956840968790502963332761658690678408262262029268318209240569441727261644514845218609587270456547151681397090406130901761507465183191403233858453539755313541189161604567343406161347229669143775110667600084195466037260014879550388320520533970298836498250793112218552938422130789760938308366861892554899552316254845464534713132904203050977637230011512066760015639029483519543456928515647548220474932581184095910238113358507406919926471309110662919780818027524715962798584958514662271466691952947138153021438985192512683659171822583123934058755416301413512347914425080012178805193097732299364354613172261266645523803119286568551337579834158812446258155199999618934558014542593146279174239219024506709453745681313507756432617223224343599268198609995301615942986543279710103810047096138758460662687110551158496715706843775319765262522650730171900045762157912204023072519309786452973318570195305355737279420388431282809465703466439497497086114029610028617718432685344792897036219540916648181268879132704428458381491184598974674700886675144667961529985500817170882879676289340095124893759017540294419412766792622645568532832275754494620417053132292855286405754826909815133539084191240374388206373481335663898048257047431255552265752123914420331678783837014021530463931157179332232400829500377927155039492152542788631599996225279579094822738761447063177268640475185957357532355676279654659241432559229734624753973067277318360628793131110119544101616480328880430596998063379615220974479949085008795509465219080886622031716367148824175918576112197698410279757717327742602419413373493514674212381974276108018873107157888261575364184765697551704332642495704935374780711277839445178134417509141727541915317291358742574282905629499701827844267928398815245766645984340970994508796123805981192821861562357771459728379416464942030324852959959345271257610710603214631115565568515822840549085377735714605734409915869751434122625422257300178729885029203849341031299191511156800630553106932730049399197872126418424016898075012064210241379757095657998287166561059073942836565240319819627698262112634791226901155081477933950559852250762591092835264705039224770822182242787114506044853681835789573803337417755470324659809964216612830809799361841129963761828360016986478151398510126221935543453620419158514084563118799072534533852688308467395050465575239136221231390761394168320163851944537058096063380434271604349984590744668469741932458649953501285358932047787249214140787040134781375351146548165148254154091965710344235960896645394948126855246541284091485791980174228753984314363776798135222924831843644961448958938697349936169194032426867139108669518610652263006056989052480577203615283670455569329052947431875694149751324023939709726136706269450829153025119748724996614395445411582426733128577848462769435233420803858745694854358050026938190811992955296314536876295723466519601809012484254248772061727376050691875363222633336145220943588649796619848151014752709211063967655695014888358710906443485165995426242747938601881291246346429176841281451278706945785820108171336432946081564215961952850353696840324609236993120508319781738499295168625553383631086753232256134115878469873162124598093433237721626528260070999690229934504587130060466619675914585963613274243782162127353309923245749658022921555101701936476646686585370590611223283680781837835204726844208835915054023057933336511926702723409285643100360020645216320457666085921660387853009292620373014629395354568788802550703228586238374225348418152927455990274509901110185411744769823684060155865999318475904343877209171510596359117199053497673244065953961323905093034318548206435960140853003599232148514676259016997497812224337182160045944744131477707084581150517647198266431386396959009722498442839561293234827921113650806733065197896741478377842421613734125852595636161670238582835439524862275020583349371846891459729410103819306895871619123072855240779652585924735308137922884114134402375367942773533337087129123461355130962599581703507947124727508401450286096869849321417212440864520535995330266905030087433713024830948436991749606568549951364036295608579653976797190405992604266771935598915178792271040758867982418345023704656841488563980921929769087597277842947445893333258888151402892277271021302457757620844656866199078966909115237548449042335039742956750913144967385769225587437694985310897653031965511505590646390497707677779896984439033816186876159055000397789412767302909896023210602367449664524849773316653773731228047319326193089599263435731667263355347863042042674516497217397478307113326638992934891693660603670926686369207893350819217728447623791879003634559609247448046768348504991915323587808648932044819134348121708604356178955747609990710484827765255818207466037998157909862387333381146468657618006177427598844459039485189675369015540270361921201949432534356823143772474632291944314922520036536558186596079754250956431868551930909949390504730362423042437282142956947191553920017481287419704731224992729408527448109663461099173647766629027361312724052260940625788769403386622899272133754969495893318987119338934098026068140726458724573768718511802476659730721391327441137377854346721951194568828468117960105913888296871597246306503462162623963529246601017201337494106729766622159090795950349575243407347909770608335776062377712073024271989397559389886250744993284630010615937008491596151396768880864979683227753542784275484022062418575948423841653152254651531919784368408491113935492188633416868295971622369301520264930442429151668664981549411876995246409911845724853644583203801871865577932792101863841529483629404199827389656095566047041710960546503536028675383707921602778776746865982973179211066459124869998016869460512595919836001561955195263063091404522292772958474740245255273115986861320972474392067711580097904453881569642710689495195605730252909271705831717999104163614769656933774079814912604077087548966288858466373554826490052057725106494404765118868295256039220172536721675006391652855424021511631030633942047755661408342931011997983701781499007708251691259016692750719320695888175228457057536055940832157613231894860242716699581407301820150976739933819960108765304856137112591318482066942330990965261974871195760987038874583748525085111363294175020653589480441852654400356547210275203449005723906075812223196997689239562247974311300896012009281370834211678473089710163519199307276392935488701272249062927912508759173856250203442889740180796151087152470054828675909502772780178257571295231243036775465886582121351597169837781641382479524375006414144533262592945249596825650844812169491694624746709005783273124103912418582447338774466085322144729066222343262051816181775603689704556384197934740342496218798860714183450018816800360327223254741912194530889320689465886021595905926909696371372315783138198774631525255301132563422986318333948593550574443095864349604859618013837697200396060279120046633790982945756380885556933579864457659397267263991479485450307605860717166945068172370232896176872192819765302177360457648654748626000879605935462275911433836321313755328539247143491930837831389079589722581775241755633755798365980649024076140754199267021504549745014884371462012350849129721693701935169516559216521809274953829406265425975249004837086926784869020694262361317080747678370226795193233571518661786265592949109909397467942307895246184215685714901421668025288890361288303518810108048657399947611935536012320133457736204767637504185242473767646855612412916243022785528496982736068399326353951630935341582295736023992871749880348218052979947688453081210477577681138937211435521901106645903667982669588502711403127424156090684429991816041217181437696680474468675867976384907043338700530062753360567963607471555015509795642494501001487649836724448782895318049144081395121756719640786252134124384588591593343534305014975619257268293824738896929408776183783849371262921190814020361560541349103996860993804710143031473370755821754688574826638077107927447854137548178535492536671175906396700783884706949129447931395462325834629354713626157913810023842829440487970389418536010684345223936405743650294102647706934082052531388743363833304984908094232778646775162868804894629892950542137895010438575073144794744869305017236058094140899050490336376441919047920900864580699738872390368199327867958458824063667181823608386203765649899318863724749583944490967947917925930427368756327515830282261243948143217341183389936020067446507577417324547399142364199346496084958221512501550536483488802351032334369517169540011473703388026137516494477312259121426463902217163814652934852053594870534228812393711135082413185659028792528757157953940114406255420479109795740019092921537970608011412016718139692836281316194981704084231136367079689732824149105075029134148333558631705321712105309711261776116290388089790071668265500820757906684567407881617088126150912072153806753795230393615823333202694756678606486962778410850216570306399793336480865494297349131201591084884095200821838861928479685853452402429120181915174385237634558201981077551827063523360418588699992194666510843526735091016551903056806529889713070257472284681351414990022696875501193035127620252544956648723262408651034209319804004870910925274667372666159867106007745002158612654616551920423816535019127987155436130853694517766340944687060067383037416390266304407505801809382905341203358040929507311607344523004168922847350876738326356052130819975840305226547080307395768970952259463620978077730477244061786768470072111912144321384208262403129933660011058569911972251250655176779909366654858577025079288798171032467512090386139208886917652272345407935799270450681500375778065197772712017032946134190216718545962495388304058738711297299301303219382896230419793679539016293699907136183063096066001585875859876077842840303776099134549386144089783354251676088711505728606257454231490937608078782828736425236025415445184991032273683081642546076471290557833731581832943487967564160583613815008314760726751290775595653302504746044021611518322659403889940307471631211875832577944122204055920894379558971585184538537714615388756492034040336883375166583309886749360474643687387499789493344905491794602210844073401425948610009411991073949528282668455900311118798621720323685468466218955730709497841109571145274817057914878429859978251913072992539479060375769238208741793497164745211809550042748440558833812475653252699045373877607718565036057698894420146588523664254333677773184244341966116241903591790048905213868976493185039898325397195175109946347201084786488745189429142453800689315541535683339440471929877875133224267457895387052337484688143299632223212887636296750477211818517878818394562703054744046383347804133012332342477405069507582313933897461300219866553749943304881291644843169347158087169608926322990847439250074464203525259274989845680636360325463135629217198971818775881656578597654502510437972239324644164192913544772443990014640498706486892534213877631285924123588373022819539988124145699200089389523824456836758647260921138836356434332088822765300945902618275702441870721725465533467595084924223281932595909522478181789330124785815398853449542836425294660630482175666899219163984305659021841237609386361370921501339170870384923793986678459188915044290601607505880164905810956008654872167923077352971536449372638750566642356857660787746892094056629792622736991697637670109949415517126903692690820230558085588632523279725148205577212568631657496145247876155624092735717616460277592692589506107155424330758980632269536063459073048606623264816161478850463837260629991183266529489166748328577008553790645926738813937646119370637438113745460112700631071286184095113829839799685711038842340499369030930763346574431846469867898795731881327617354796492258296778771396635394724811011973549683670565945921152634493617120555901153045192897048679524538226687885264560232366241125557169648537416009122290734896488333143324566530639791140766075782888169343301758332716376768106746940631473262483673626301580181453597855716311552735386901093657350049321051599227919465142146670733167085002600509615728715862512955556935452881360686609830838063125236486830117649958364700300009383527328138342599321584421588883744569806570202557750990465564499736125511185539948343856610829859821777287977029324777185479532356642258444702774657908444794282911317216196892222781203666779176168005027430984596075993941484201699807549807010468489258105099886023082905088684113498462483118611478217654112455277140402493522433199799548442687562716942776488678808168072950344795865579308312971694341531056631390549799752876828682210100198202313954353651926228851685406231276999623839879124721623158612415266471092769389066844784164719693656527369043047586898844450490638770017524400973484139156731253377997806387426624339627174941941329530103122632872648255233021278252051719692454771420091362724921842479068133191537933267677901523024090115211931497056222132218541992784511314227393796264767194098660170142964023743222129171182490316493808156058153166521308368328985626517541324432899989271689994992019421894383382438557693782252353453056428990249214629456701197245292221926624502572867734131199916350467212777419895696449289289898733054353482443995963447983608714921137271618379162227469917699216582509318994513535758239306742388690882122871087303056708232372238872407625786171415478285771010293295419694701816408605114086217627726612158843186290051388964228386884647017280780305700332285005700139259427760552997229551510114966424761869707645177752234857340212774907793938802683130570133593700688069651268630093153204503724420894805772532684473959745518415146492543007074716144943022117599447132580771099186765434879634798621863866302567125808725345281324243055484850442816859876888568782676489916109921138452543577745897989843896932772881625255369857685573359989147636748832905718575149691346396193610856578530588423207136390075029451314379488810288477824246442641014546880010857038466248405198233311594235673481373948673128094110488109426917660352794565848655295435657999636869153587942444683469341953469944097508422325294079317563882405782589217956736632474371476455783693345238284067451387544859858093684906527828490273302495759043400939980599366354473254575300876793461046911283666680285787261428051948169384487444213985756103427545274430033130066597974119232232261865999030658254229343670772990736263321249586845399597143476388955184509628212706187601033809436651994634789133559106450744617427381363668647663528639786147571160054617653873801146871850971523212451420668293164777381695951551697178908831918500848422994328417770348245932238196029806583399790922694410113322734845101358073670732582902234609729221707820922198953727999957152437366864419772504219339122455137049130019461179018962500337333503608914813182743074877817328873686681363033241050988045303215920747685180281950064505597793167146086607941321748816506915463134338315429318042294018850187190011911867290505467673922547488938994042233802098620147447182512141236634824781148661917889816834236417024951603632670338193447024304639463452480844235299680732896353193284316060398302646529966850756766383862063796270641093775320620462818953813373202379330061747440701187180509613576410373722495643323377752806197483911750099320131782422377117948624645247503043803966668932414832301723973753999273957948198585343171713906298279664128364096802654741444282941098017648485056241799790302915372962333497057090616003829135507407526958540472503817638568243127470584039656805314864184759043539955146679358718066070729982040446267673653045283211948521098751346269981248060511182343247883926703845276725002209373912836958011453789568579842534925459348086840651491199501332306650163079963426534374291906385909124025259515667434055192043145346227386179129915538440646719543388266997794823717869586148130373189240540868559039969092336333400436097355721704672587139232398977868542593142697608507931585923295960226758252167755725092361043339848032135191916505313644864778844067435374819281296761995458466035174744288040052306128538186936715202462265967497755154413955917731378567335997301079931844800460528699469860263630688529577383033140905577804975409399501582736402726786334105205369801654028852660611368532801999549960418943720864968839125296415461509244531416811774769664442592476522035206028406524882363385124958338264128162806811523817814573576261771405258986600570693484558796374428381342602964483775281044833121363687259442279669357814936815610268746812417357098674724570882356271939572884880867101618715449361050652288378114152433423410923140249202515553880198229440793997691162371599824156362413488198377029742195625583689341081294986144021717847841259915486548717097644900350328807267763444276137446924223622245228404721421240993564704145993923950218463869467964625025405482993678115201440836942112500925515725208814701303799985272838963291953790290786947927412847088549978214798658707245181914266463733104366723440079644456660590273832680018078819346864556542877281277763668986657678952845168464641118524109291427419742322202115393935613898495911468235876876798133582491397442936925054415525429289655688506120114334556237071380897981018375806182660378578616336804112789834146112553319892713918869169417340471742481932689631536327613071680767710905756376764073864919977813513873179667437836044484057394861399794350924430493793435989602340627554636163033323636075053617942374332357374629324124465167766877109239059732597944373111243460485233171402039008463898475189136100217100818158616812451124229894697444375547702688767091791712769795159467117089708144745364748005205987823105161803732886602907505725073176546456123409778739324588531094902549847336316933917215389690770613972181686171925784246874244660663028051667493913446405542891425199217836280921994638077343577744137156783387479545056494946620597856068201985487641972587750346215215037830047685857706642811638526586876364454432920029583156877654343915626086242116435764353715508889549642083330678524082311401885733962878740112077071437296524079660602710655133901360391586539234463418495649063752679755656335696773152713524418362026295745607698663236420417978583050338533449791957566884651222867819076449630593348638664735867293187249835918407000326506393273208149572308526847855498084906554392592487596582601123944329160490915518002434975647497005904692278320910840746431251034282670976332732481503698982259614875222040184688000388161943744832083250702038997785561943439781563604941789796589919305286777302216730900850043002729844603262415912902559854522430505084747619684716465114635579937358487701448655132887491019001396692514959106333698614029934562945041367145943136153269958655724467660633227280315309600189576952381818131032617486540838866828834292042763955713801233435500675206262282750379392017827229155283560522531585231182356938888547235726778135137209274468400004855514997736119756291413771553089366162936583071704698187190463742751643868916630166648040556742137455213486388542986750968558797585751987844940582371065232773461514827595396573854817854501767177868977833199553680334971716258282344033076075226343645413045717591965110821633369521536720310682827132529156060349776850352029834551082866415527704372887020263974502603735538281068589729966948204561613134494283404731489885251449863027879262833490842276157871153440624684794396987495157892820498412563184431158739061906066146712224801764834303814937605469167172525749641495529103991013638680000073399959113753410886291748651724248891365619334351500930971228414951820772001359217488469480920575696913841347654347045310390343421228021736505376224818332388006205875598181366752026549527775209782897745822532499803010827045509293251783872067654204540312594229209015390369180556403792847654931622476203430780879482724888886526220157130044083793978508053139941136416478224434871064234153446478038137117631386013502345097358204656561973667455004713763480986072011285450491886828270682346268329071198641021736126235374090671063128142307370131009145586578321819772457544998803749555144548237557845871014143588255318585359424358575072155054864172802428267277768973556697103849460217695797084945183760781704427215365262232103361027732110692398289231589286267963091976342044523316163397220847854949955245414088793275854875335183029089144685214492692055867278991887383894090376575427303976668680254252289977753192165299321337137899555269313553322958017469196107568883609348287225595609840790532989388704169848671409730824313185492462115192302873502570070629423611630593052407931963945927662666679994856776496431467890809307126154082942749314222619281841027564133716288540517192686252865751482156060941059714236983366956821815991612109316189525301148444403097718773684852015745709428461267260258012100421552289781223971207449989604979446439138344289506479102969813662528580631725680331523748957960407809116424140328357934377903169294841021426585508526600854719556426554444415852741178779122816987428717986935818802868789004879456081377399754982588090580097979244453774149649850181680524545890503082530125028770812147160446356760590649225097824660236840234010036166975484819513955099669288271590829043305348569035757327861897888380876133961103082874120442917830512279348377295963851290245816819341100965282838593935996371455296356742173284503127274293930990888981262224778389199229706185953967060245232892758991937317124064441677521711462904398002930287159012534722898809314740170434061213989555145721611696575628305182515548645930289760961911915407951518006103639312398613491940238027447739093250371135806346356713179095853984582550550148165897626636724267205635902581775903059970346736138071103557747532002059195461159409989303034254751912277498323036640109022496270965804443884635102310253631639154031529473729455060824269383707751727814672911476609289802082722757739446457357542904752515994949572805648115204343652589908577459555108954981958912557280998068265129854976576358092594334536585096191535540755770758599838374859173387640544194568749122336027139369984676197039514637412764364986225075597721646859621775406827624500999024605375657571963841569277170386909006141684113070987886000398301608045634862975572189032729394294862008328225467639436369348972793382271724898687105204570570423887341318147989939892920680031587528730564132566802785367101029106800038342072243901457075121879647404701060816590261557133820271470836275394237632660729539097168590505130794253048699641944784045906683858962727520311587464776018142277957955936349577518618333609031666367468755172207374597997378987869103293774334974418685444268835195908226504349879378723412800302596507428966221033538484022620239031891292261220650134878708798434958828917054255592967093207744537302960358366225944193139555908603460522152525895165582435282809973099951166899448721861950033014436518894974019270956970027358816224150500519183415249553811475407718140737860020535863582318333997031702064849610556383896250716209074464066073114074071888815837173802325496862706015700361503432390101865312998892612915911525875150428417122416624378449674837708278126730939387990943637033059823121317196904155777959662561494072142693928299275854953435843085832152654171387752810090464397552787885065818288340360202987586612998550448981851597069951876564604096253609999366560613874820640659193505044694070841526450904835717561213152689091227097643722912280906689333644035476224801076939457083686905749502976673159994380078363457852497094540478427041948045149756860419099208623247907689477533206830760449159866318960411695250334948591881138627359801201848816681659676499383515667280793993106024291589183198260251276328195613307558019914669541228483645758710137345251023192066018010647657442270260767218322687163404044118335180480219779222126035254038152735835422005205398970882135242622928175211674997535185223940459931350691844088383895315803656142108231482563899913096262778464768510582480556862704574980702337216893542129824416885739741373908935520026156109854626546918132518115379273584994413992241683303770181171561557763647470205263408361821220031417328554890275578209032124928406542176210140913950415597214968462205959614144825657574250683124877173479845443757289948505637677218232083474452061896946768895730461969842606041689653182583332276195138153213751220299386745775907889118916373242014211673972576605738742791212600883459567543211597083263406686181995109893623791481756131681006947344561684904734460768414844666004446160297804995487958311675255583701573217139283370297356427264344189839381530968874229444159224587355914605707067070709818697678982388493057971931495408887559541235730041876187120703305220308101661308620923896189322725903224195983645014635986957950294068949882566861898346110404568027981042698180778273008370559927343862659271925022600497437991430130346156202558418896880892408168529887729134101346970304618058897851516054271833821971275105803947110198160507224595955394017358598453572345362470072785170599374395320644308938737831012406035954975363151613008007697898099509712209885424387200543605031332200781272695820163012232563603070064989634682661211914743503151186613709935082538453584170545780073154622674452623442481723191172155069099063792329228333786664260781082054696886783922239821157163425102831168742677044361676333299108042553126746631930802192410157454157352390047217941316316454249431159688350206237356769385707949318636675814396565115391126851959643517578921636633253889591472963778800643088165658473560209912866826689984111841355586208929441484246191424117444701837809440790952682495727543653936732438320575944734278582507188064226771298320469524447691356343505956503317343921688091258533528272470697570720077389389346616505312053113446739159353517213128333037951276051797434043803307764515365627536731676249281903159822499842889427824938589938126485182041429314488667757376571116981014482812367254291006611781747532660225756733328425678933820018277534488818482359140571895995929893362818426338910437420357761467316092714055521390165847389893353657828967240378866487472710797743134075975760589053628435563675424003951332207655721434956642474091353207920819146003359822398318917991006419948803327674640931138324358408926831353074144621077239260890132671850464158697700722020506556758465344811510701420101460328914830434710816937982122710576915256202533183272300852407472059903535706797116782441073698085884137287866028430693062182466897845994524060267255328958483986697844664214518533535011636021873289604350762712483571951497036705335884752548358651632287891662423485224335559720988242755965706221839529897078371954504162391436280094432652260729962033317456534843034366102986478766469879782304896865662246614884762989678705930930077264882113388012229670299386330078220036508690247652844643630765584906608732356165285309452660565170169342372297082918555231861245080114677714601493145123209521437627844463246021512399791798922692129006601935418122145345551790386739964579790783328695858956872305412264822627264260190092573710029314057623603232519812597601012494185866658245323295260646071494558705540384689576055136708189321090591171118739756591456573924141121696257294256665238027096655658108317089051938564718407675715889153014164383690157688149148062253995670745132449437324169519904478144289187266287849651635175468531175490767693211767350124226205032062847665491587555591136408769090145207923244230836810222897528962659176430477315771721602602843528407019576775295696461673984720650470694679899210957235019257547689068326024788780727183621998024525480838327223047440467818755725187242642548154712559142118587032690465935044020336131242008981341616355764175347654811613408061013991834776276446787669394831626828834085033508537361299245438059600683964239916725479853006401198070413626590015789871234695639530262096186555110251674579023603417610090048641712531174565279153667866682788485838463550930298688658504164942035396802385133518882040293403451591273185538957813178163941438499187021792336070642379891822920426902792078809938502713408435922836050656306290678934369251658427416859898836237592094283871557712702094295879019919342062734180560097510038301369522728668598216626348444973350180232100293062952124430165664434316092247468584612098233009860439280237039624294305359410964957667797459929147966426489117852188616042933677193055947391370530099151616658830806258400788108568079819298915090913646403708143385451083082236194371511172149388464057599585677761367176198703206979810307028372853566625605546066431884522828943857515928026941851702885639954158382540000176437111937277622406460366175926472523834575199485688837704389205660676176808981906769007082513889425011277088894609166297450975721534352827078042013873045577762755804274480181528880330635500026123450675143644879155394719054840485495143509364097266467392983821201142142279146399121688891271212665473905070337136427581188535668407652067157409012772430824649820911479285051785799033472247452312954969667388778516350311624767219868325923358402369310728397162819672958396368794927455786972646194510365444267493249582580096003663911087863239928459494691591683384194098827383724369070789335881104663785507933257923736726741457134222235156887102009658382757935125252550228417010778678623823562679889148762124894564949406925961044680479566051391812524760048321526320212085354903693458773005323328409804344631447445106309247065013337404111158274154260233185326530277544168789714900612733478123478787320305651225012273716023406118083198442588131904477511255250405418240586014892793559430687103475134971042437790683708996127078431279541749449160723265954370424463921478459994477805393595924310963870559990437026508618447163381664451086746795116564940456721542769036688763355698462597247404510648026363961176321473922888279421810483994826029636233528995334216217426238800590858558562215147494341853402012253812448146878716317819694417221429523594170762202921945099049489602509339907498841921049959625420408653394268097475716816670313304881445102976512277369870936036151221375763866136032520659904973896729102470233105328766441675774650928977400739158775804115915793483348050888672153788304918738775318641757657239097696300353952868413725365894230104122381734259980849371690712659613230829357190770661296018381677711422149120551412305969543090751809499304485191205679224673882529644392307071292429696620401571439444522485419882900774653837192697370883596735825071860181928922894211095922181044287036678994090113232300108224058125388000918387400314550888005117858956678327569886878953955980859972246175003156556898919804516405172738869435510778752851560950603555434020765127801049468280281816942396668224635308587743210015287379237175225338095638327469826889284730219735656508314371844464167362049451856378532810211687808723695717784123471683063501459842832398495235659447246459608480500641967077621828866240614729584418967797423232715520438436515876305246221125316374630584360393615466205499825906795933908551380082604924932276561196876645903321108119765608400093784180354381326507352802550275648481699398920895613443417280982182248327612920860071079220527722085780574223398884663816598577223883912897496225304304230496251305715306911654933340036781746721090329673571061378045264519022992910125215934942491852351847063778481917075912276628333734016265960482972248050044302698274274186471777843811491018741949241962510356083326306091026055254143371428351863019478249842638124941392098518757592040592565820766635158543089598881022437074179863084320855559134974139525836465111564121838583773328755410799323819851203334198016378307910630323092277509660746714032004877478713025899153613583138957137154294628500487179498182053120429536383725132204283746625885303757621823685200384810619706929732367072368190163484696037719122951454098661849420287764896908575604939581533383173309536809150130723318540843587919294102434928964991898174630947236553973058911256968900896389524155771149833073462995837647595930027245261716912829526225854068641816589745496329448754220737777708029574737441300405704584701860831618841155415867884476285136679221947703537978918946320668741937206919828140732001198263991959299950778469418858023229909573474462909084001242114670881337942498155284133854760318181400716637731615909961065664324814562495951476814643670774264235893287470333833850634828386490171551872526919522705957175585342056147515968746684057308366259437024512540417725280247242670115278729774122174962380293386818297594892210529466172075908303643546758343532574998009107084356016998302786032264452299064905317579155165440915112107109909577834253807027034382019504541641386175170862303632493324269213362320066384020011605667041830392006019926252769967260614625245655965987736808119803960947309151389353803151022666330605054181442264557590017131117562407291386936623994784352368581971744968048455331192876424115433357199223605747384374909828703017413459141664068041044719895297571345311980658709977905021869031115189981185727705314908156391129892520698776874196101069333090529021744120714923691834126126825514316773170198462577834578432283911500702232018636953176549572078031196975800719340589371907277570045363612063553380209461217078198314864508161858435315727793120789976224945087861203694401365621131930081785134190356407575410228950712713308684154239632770686268098884670850391987077707903058308719756172073890028921277366149659456817002181041210074958843727147123629269137587538010014391862431247846162323672052692789553137163523156148396242376873578752276470999190815029563833713429606586268381395382983801406242145504315815403764380869598970534184339436609695318079802185955697823758173928034802384381371035811868478580012471565364767059601968989673308447486787318614201610336471986924431985564760311567160309828110786039603297852043332098406956337663828157214229663636713581758656509177016626407003229135256905638802881547276523276270350319958149135737750711821910341579347382024354960763879326793450415310407160064048672845882233204041109520684003755871910027420606018337779923200822712509954789118715516821854896031903945931569257605787704617098931396541044201787398257654749490482283622960391412618530465129350929844076429840939217330425880285663817280213438711188487570649467724875012962085668645678526841689687819146872288101818630399884061732354222198901796590763919686944549223324890018692804317865793851161480360179196373383906704288051248681016378648307206680354944869595559563232584457924386039931338674495393540624264362162835089987110782951038630191746023088934610224544500192036195297026290678830259182520684363728946019633978485198829010949484206869617395822698105512717632030730880806058605725862097668132286018746693937887730354769332715793145905577708821865450690334171860805516107188130861142429306752733655122783788439525197593357381562421755324189151548010814603558261161520064972794541942058408372734356281308440248818678311458830993072064646089708781885413947692062127393815997392403590275389020216326148925545432828793126145262074535861286907187425979976918858436704206644282815796371074973742230044470669565207389361019839004824865828853487281683711519224893133525224056648028615659029882035555822305665831200452172181058053329340343375298678718619880176422643837681937309875227175605290929216208791897279458237389000885960029779032689590952946545999384616805927163361659939030600443809083719124743577661475639610144529295062242291265501388179897166693521918924052518329302220878031679116984930465700247384887312006641303902158477234094100664769641817691653767660236149167765328033547853084792113999412649850222879704469006313546934009943161168363699282460008586103113186178497790158416012402206057040017629343663220776631807326805055103716439439236502112424136583541828408475047926829003558794747187303589257358425770111289062572586230963955909070741203993136243643342625275199527550371844077647470117107114014781707349403240252779781043001554256190607833509298627469725840874599571337478128291142387058020990887539624449303413901429483159543190964618296691861738827193579133523174624206879611535259140258219151604414376617803226793578612581060909462617596974003667396790669006395500927995636458914766736386637182630224830337075998072429882582793204894151303390494759695355390679372584820324036847547134710644565608958868186980813986304854261060237393548040659183735973747258120332587813752235802881985066582738792119268552006540368653137650859348032191714140608045979549376841330244647599042869674656363508342807472784935658641454254634853954476764903468857541907033575270047133608493240201878341466575052298947408865850230673506968026917384194936966894935707540858503341832437380463595611755496533750967539976424232522991415159009926210564299098110955371936316762358386138211957976952307849911457305945973750911316055257069833722540322525744113301359783058654340114931088597995309285392900392103572996109275022607475540273043942420299087317847144202011543803497499767008757050925575591559801336343363951720968280463580273982438302756263857335778142221591519102716621022653214591097313917720186172374631358892465193124250602949307245324009174561855514395615872751714296989347997702522976827384902963878357305256733545264646626254832943952893926398612896894035735908699523316219986238810900809105635558961366110674894546562704477973232992823744699280499814889368870590457762781178103306859262357828923180910015376833138915284969274478954831578852478856919061201532074877252743814257735009035723802561042489608582993461566970728797585053181845014849800040504921662194137845980997121443395187337684038603108031073600828110488139692000817608262293347558900365187815972325833913122635741039998776389883292581024609890555121143300311130187968173005767472449133492028500967579082773315789022932961476717569759831887090230544023476626424195355976373811246104692705958531138199035411350842848155910506332979244263997741683871461451551310080544070995788043641291988829931172130562358970991624075923259951931990492594682670867619521301136612813142872579856057408269172855950622217780081113809174983203024764802373143538077815403768595280055557292363380943573626953385403508051458736118573649060444640221918543483524423617609813426421847276435549942686621055587574807228045959509580192211347888835446329413684470389712501182256583747801674189347952105337705792746132461543478663418409731614716879559494620742258404713921449351450278294269010938624236585143959734441226654772336214017726486410993369253061159959020865759946768979379402815802126686242823889624460649995567518351313824615523071467361265615273986175005772552956445852756736534511762278271425634110150623392548688511657803167426180085409985599748550589953263967221653444609383932487642667558112638294741301782064419681067817153720118530766445874909142903803783263621281532976273454484438709793474322029988371557080872006399497163630676295016901730016616811428912098618023396228997289598142145480007857516210016338286620435114415557762121091551786202740055138575380232244518467998509115937228649305093214313566770367849431388545525874905343884925906445459145340612006292072760234725994835729125989679501883027891334421374995309548356702807296271193088744336603142349549017327487608051019607549236448479066140677187836317323618164201051034218430005604982973284172929839100795290278402571154687923984420118466034766062123877781426069945871885250051545077965509383250410064681564583236135767236264976855437080697030507295500089919200777550335969115270779391390982299824331133223833898392858424912857594033741749620955039807281588643483927730446186323076261038285681797244312935412015582437768493833071124143419309526397450273172989915561368634064028220037448023745912421806364242769814699927832986529001857303997896909853122695805583048746556502090206824071790411027809775494441329677693841962512249294975911177555210210309589287761399626454128597840729397288085624082528688026116292158405044024110884166921965584166985062372237448664163241083165649585717696868209823964843229586297307367029181907557076638867622113172712685574633377172419954477279384508320048941476367993456434714510907191283658202832486893866077409562986594430760566276241663455469620949231815166358781481890932268724797388075679522543848016018340036868249617986900855997269001074637811535160755518994127159925894342064113203130936071596995852175387684481193568260543105680189114445252072529152289935947362004990962090434467258414941747705015008953363112182646839514116913227585061234184828253956308998883468749294712880206989992702134304016539471002378585622169227910562721081405270553481368765322184144014719024663050006627477533062923289992615038477166937115631799571513019162256711714197175436330224753791673530035765190106129802303447938457599530923612095244839963264341327533273437585970067016731407781287116511974693966532104592596894137719523158361123033884441342699642204796351371415502501618481696575385940347504868436755942158033101671200318989757661159161662070846726377824768874632502905968415002192121656129012302785476362643214602741828943060033854152428199147841531993894544833171663094268748770885559723145779942865179214396431807856388105365975224708512936479158720682336347982328214933571459277008447346128885142992071944120713597880098867284903379561213594584186658054092385779298231422577192947178455445158284020022930204666983950174058042020169388530927656829352822721823255154999845054034081462087197309029445488610046556306791481654411770808724609443282144716722579769235516538651498800912172416042236333361603241218012630821319530841264950054550125668345940332134237306908437989861127522493066218532619185699140016959323067328890952416564518228885461794169947711921278391731606185684865830055700911907000384949692458382036061542066627802301796861597100026476607284409355585175297203866648461651504913076426436278640711366176183233866731522439052203992300973975432800413087358613710829075558960788270891107545730614017682278551143422795517107809728885485695727750312919346005791795075602756541519444909242893963984090513246274029774561708885212581647970521928588178558005923462081189106857273657882731944310939217314896048514684488110953866332078643389911299748301031537745456373800646228472002633773466792201077112783941100691944331182320614468056407007161319657865604018903918117778712886956762823341183751864112417778175550128220282700799822650464239630160521334179560258071319942139517088181210602540388003954360759753478858825064701611758134334139815079027421461400996428732870438026256434607349858708205221449926566747296145945294707630823308238206121685692199508557443682248661564850086074189867871632122595187032807000331168693622422319370259645108003514718407700301863018861542660676425020421992795895233019428495026730366786984420684747668406447694456924908711672927185277791647537894660254026761536592297072733858049360469084424122054138476737632726348272768162427263756016474784606535038022288147164431304916195534931950744866755960230919414556627413894536365668104451588865794098338050592275355513204680090216346461505090488827705853340450332365629642986695344352010216995737677314968063542709194887484757113627182114216407679151269756136328270182573707843730170583447289537832623188608981493131415231514781114424118576225203009586864546939027538211214010812011859707356473295647575204744066535172876668523299206871344005079132795668583560445390430189331396096514725229102466933002459442293237784413780315444888774546583677147693567008088642317944573993518632104142854751226102133050125847049850128078568827406078192324979712952209693604779685110017337308052562876470643349754950591391576285281664946045709435330803052909654521426186608499956402957716497582356020083258242084012726045793248213797837096374169424869862432228501425545496205541426947911747005434078778935513742110292002419379504404087773351472179351990955803098928889344764849929659103704875355352272267732692118726974413205204219485866033364948795827211281180271688889874282446874592710067336495333649617557347677100562492266656557096537062893773097480747266685817225113500895560629436542824136752518590333739308018954640451866187910062794157851105257141168621242000241964124365558197315769720961046304780744900629473509562331830883813924026588134831431091107909347754340765874677304747048412679075896580694196086727930158475423856004152132651832211216966553209555528898045412694782178430521798228102585040447070473405289102857637378008342312516617057839348028260971625826160157387106317138570967134585462518060874892266839540521678752551928565859252257107509271252858749363706402334428686867386510547874254645945252862309645716763887142390548944093387343799918785455933438110573072837156893450318280624079859652913458865955915623799002647085598495328983560137226955929243848845441421340179539642550100818463450098214859469855079479840502260018561675869036739400425897652921045014142223945619107028414937855243446459883991705563675679410737169575246456351079693614830057905625852849876773142124519961303754195936044851514244347482638141011142089182213081736629696368763600427944610183016198292688201582002983625611358968419534465298150118900692992231828556758511434800750846878937429338960540444547438979185062912737394459867915729979141402235571171570411622372373644524514540949137566831346243939091918313016781430932749832882990554720671607629889246811368996558487883020538407826526265665278644866303532923776857402149505710665518650708128740313119530356923711433058002791145186722107733082760912293012356506927958201873012557730556411090118691324238365176864387115673923259036343088672390611239634700697340023393522567410246166603491697284296593497599442260066635807580156161581410990209764741119457789248887740937291456644780196082135540749629562487621186520394901868473624896657613371778512643231533899722912750997582937403262355572702274924855070310813238750433582404627989909649830781891648205451011068889009270335248235981765169530475752495017605564995395688774782963772317305883955603197435788815201729138591930108733572254542385305042494210439706829172025264757866521498600367373997326042295545361475830579035950337736085770112490563686543907889974847779532141965589463761183486191395237996216188274793840939736953187295395650759791320553963115635348794585377354359233025347882018247798339657700079754851018843469435439445080212041318825849460566474068535372651023577562265196420572270428713508349173817309109660499967562744943225333687728031117043849433806901262725255561108993108489114132123672517831892725992887483888107157695082413798164776404604179272109278585271182285114068356760371339157266824923540423747813815400791209297652763823959847012737869774445792510569686956165382915069962914624932897218643910982570373913676033048017734869587571380242357147740713661157318267787637049593799183508765963939887106388610556644951723130688408463970852128641740752200462598829500704553274604406250523404547607695768510387198850447781322583481602486198713765913707309023556651825987311703688764831527143522200111547422395953561446932558047892485372745997383127816365018789706952298337062057300314958862512912115181957031394479853197177703366425046902009025671512414472983767856127538861931244121764029742368492236632456713741814277998259020820120462884213430893936486944517989088202147572911452197199600747463817683074247050400493086384506705368771557575441535480506398705205076145876044955289918586403399094328867834830066633008486009666410322159136389413342809958466231920600497853714255366388919206385504727184126078649198788847130852630848703125351572628466548092349234944249696556869001065735774526285784384788156172321368427114826738227842787887790007457655717543838530239334614182477286757578337045331121410487492268778663945979628612457965512455856513898438464784486812816746328495498477318187368611650992580515027566248854363285090930610224608648915582751086610898203224378558364370174708933641937329872732917505414756017750476720636699231107348102894922191427142686424429032167388466781401239063976176083409206765584046448635530251896522386891510654393497779947763176985342444631965127701485920956365010753560333675289092960672898275960980548534041182453538722558908228201333904280611944974106754914053620776447256033577913845567435552627071047830580206437676974261825688521247978591697868762205180217626114768001732842366766399873900168556860411403483625337595419441982309518710974053846766460017875102761057271507822099574759030276177346911986152649775341817162369572372155838402579233402198670976854903960188837877055710250080970916609865038716840174550313225145970903094662530699517966923348942524182894739301639702450302843356918185450348604393883634269825548140060056749556131421094920121222509916164976837045032825881186485782320423994293044164832793576713391122240008886586930737860640935759046865594008198993966036370299542531420600784740386956271381932972559396556102005146460980156512544356085236326271620892825612029844137456109610247112162724407323681182488820261970755977859807453133948094880282198245540894298947248139434761451709235885442338613130390683535649773002238094411254465816001142149909318432592511210534239905519747497881237496344082964633223130032668431837236454027738170222782741078740701281771922379354736019365231425277852869360358154804759094764537261431262351943569390645720729697648540607242171927752331870560250360658102771714788185422375621575902271516196901719746591027784763831349264401530317173554442794703950555204100804876557088916170969095786105153469080646416890206527216794443742740458966653123533610865337329655419039910809109361421868558592213905740325385614689827204041619490062047683016091657584438133711813384627293436103759778595671024284373757347717780402791368276086469628480297646843336770491002346781629146007933834151104001939962155548456962497590235358905466382691685535353346437490401442829126901682509593870635833914655014790942038408375253072521982335727451851843187063423477985587934052129815276673071828359517962416568017245366529424223231145641829152211194180375844001681736173486621042493309308982236196830326083007550078173014069900119679786084910864604786448236490375535312709594970439162745076633119332262059774620774413709746494465044843303215638794032491875156654558504951585760091654614475069259738441157013038631911561011406928080015722650242751778992466296075652427775388152384992519312030281108189075954366756717557019027370268890641557001712348576719544310457704163625132836761835453970313510974476638311692511202233841797277267267348116368408990612086341257201450370615390699640703303795338160596924318106168709908390987516241640717017697565905557896267389763025642100004856882494248537119427878837084567439336781784887399853098706961304544940156655831013457516875209584221109603832604978790640303238274858874396956564378547753141670333854611137178438065736131221552607247995769274274634518811786931932392858496992279768260252856614508749662191393935211355246534253415752529301633417428466473471589439990433503852731635286194888323250900254606571196384435591940513037502817938189161636290414103868667498837947907632184827113605127905931995615910034086300899359901938958386017867331147438667046239999052520404930008475352306040020905255946610939219155366098660809425762281101229952552150431591798979386836049713155586157023832592318547992764397435701082603900173299627686905316844054804515457678261061747444018130004815268331388324476824221161748020911021065799804452161080125451250772871612210404477501667403592310491593806498244110507948195972784952220750537699368142833650169622902553365016417338890401591600404177707464709928422886164979049604451891249469015555349930866176110217793423162909943075227865082239778905270916378251285176699806098229450901451853684609148493809790825174128631327373086945147436676427073665519921600783591004189411687494641487109759920342225496877001773199500359351886398033854295029946742874940577000828223196097625863278308634560839255623318460770331596428247161296021094371906259298814135013986343081480787891208490363251827621067238824092787771603291478389897829288906906573056738176744840022695550695169671464981402046846604296909406209636783937646284259037011635690049850399170214879327393101717514573422120846235111920151323970999052794334996582761822762474104724876010487881618363646104506940791036017067899975238689458598649471133487045386853438007719547854770027249443326583382658704529866915421464496377747269863661191749896577224232039948554310171468766605906520422438257861324551662593301617402546359437859805371189077506040625801643013370636798341058300174276776240928671329269285330289585187665330311170272008144047406694175954606272521592669027297558005809345757673841691288697065877687155444201166850639416758440986800474494123304459868127818258632366485275943879240355283284826690208288185502999189501930388990606952598184426048616625203444718167669591052073339479194582688389095927523293727598268914328188650406359179531730091222795293376793251736624743708029768096585441022606666438858355266491285054495060847930416425439793565488653156968262185701950626651676929762364337019950181485929620848281807930416100798840324291596318060175528804481567744374534080054150042335820047817035479593031202035667426442925462354807030047330079783039502169200734512068620031516295160929452856947757117277324760587070635003176517511530776996878698689870219133077078107163457697683690722256420578975145077391007060169364611704432748658135411307097011366889356249367294758886256704989504728266202577357831570743534537248592313862696989840272653956221870273956480054347169331244107141803548973679194832547962146959202793782270467559058445812561074542673012570081082035967388699515989738498260502841649040925349314572193627686027784688771325161488389194802299258620869675731647467204591990630901514019059364874932117604479066516198725809961428666244207901128069702171434642240291072987690585785748192701704991467085409112634102119899113316740246113696685431039621433293584049812643041723942662559914415811783853500060327930488646728920692129099786811429298321823905742764176497145452238405886477789041622997736960081687876564244880328837089337804766382716441938547963736233527113598341424596047282049779008568058024984854390485120509402484445245067442597805387403037376374370570434635011275133914904022097491622652345232811601802152187949657937191570112232537114987385590476611729097539062669922724484084505769110603785662247834800681065372345600471329435842332632823591984081558834299297694883026281034758763955642294822019144310275481113987599449270814577000890115568837579681986237081626824842039463912840106943736730958715536254099111808638224800312010719982599966175661098595437030624793642195076614616731688053101835288218272603464005953478282485588581277074919416912750584969324022157109503256523133703581252314458812207617183594577446089238159080101002513419262137691654596776187566629411897726917399409198343823079529510191333509510500962794244444850913695566732091711775976114576496664900081811792052115061682173661312067338754035895609131511030414822358483958349121853199280764096201583112797409627985593340660533656194325843687066617758285997125805561942675617910998189109533851912191618840637855514620479612494844120428906603403503228928540825564525077078550036180669736795571839953045899230704689388807317394998628558881395712906123194228906111066375867140649354513532237656300327754990615454657417321175460493232662691585181019960439570647435048235334909914832958397706263649474939754103434289761268926561360322964222286892687575818870854069902850487244554893194954248750369610229543794581001698394807131877347005467577349322954100479115686870052052053691097640885351126350291102589586039577066326092335583410299848648020718563190308905035010794504007514805324202759110776696686947115169111817575691204718399196739628473285161334333389223641310083539684542644782436954485803034861308390072267258670456280054267667678340062513007257631337859280732108289986685395379216196897236071392528826153024178652352712393417861331962668680691199485924761837327334994539241936359412218562951729109300413623989157125355193985144262136789549646050758336852766893091221570763946131295512338603537216915201714362212164006788212936914859574076580979435174852861470007708937943289489718764775067065694449837044512169744223637272192946303802745455454884248627205056506124717031509707933816352014804656450428410669856435702652285184879923224033922760312385652036637034898387308738528288377026139221751550445908632111591656515062634774065927511870110921492714867142667807453652973573244699125859073898162861182555270813044835299229684395601278277981857788414330903574509586713597872776400989761380577221890606553667115642547409982436267136858235822939072015408734229534168421423883879651414123017027130227247116840716155053035785940494052641181498258762724604310540494290318257557560763879821068117865710345789317892653660938340494054519350297456372309332482290818497913286767563048765625684333959985872012886938370390643592114331618561470898016351073827166202757193987176504488266085080482941911684207300215836765760280400300069186785577972401761217243448686826408676161272521773265816323882151076171814394936427123564531775308437108228178476150647933863695346354483346434567878648235453929908644279502290232827403590499564862722195501685455597063715370339552010026632179838422023463613822677708262375707705385124411590674145173096093624217429177093980656864943825579138926634584128002775875689122219848073109075593919992158575251047254674174685732704784272436935237423521829989615930306709589021458342661574073598508797141936163330918803722522094387967824160370067086449337320092662241850440882639755650985384673286329354130299465848548692562804452262161537232245344571433710296369834821605319051388384654213695779261994284183443686099634704731749057183016044321713049291041679222896310091214199754602949613265138767552417886927039773579303372755254186374440901086300119765097112657380485100059618502829907610748200285723320563730921609626772776105252271172345429556528198480862783207062396487003693077646006765083326040171940908765488490612892457241358030719405222838583018251274291325810665191050820497651403726254446109721717611329326943612101321043950463509272836683270835218307068331845412079092239916281567462709919286593976257903442128417441920278993020966401694041240098736345391526016694016875041720123015925534729112946128268798771367228245851798940483138974573602249623069733748355609727672153946564058890649174276282268867288861318245001566207272012614747611948917187773313267204137122951990552015241900405015740324792116409350201068584553746754159626032403265261412581606721026800594021442710121646199781648946107367727787172696418546499261669485052097257629227944374175965172726811895026669295376888612902931348811766057823157962741989531863955836810214430677693470752992438743197185562394026718797382900040338682816846645824699737730231521791056006610124232467886801575002067785947984505411296951992031973221448091386015132820197491761103893951156456795264657955216623066561848989865710062985690595571938952383961668779582156554883583018001872960513842119811912010077607025117990377964481833656190158864774550856951025335666590374128982714403683097837541909310003378199605451007781037474286013368571184412693773553949015331528709355999089089108128279412256707366187160426342869210087398691541731239637396391810498891485019407270646024214702924531058956911543782706752389773425073424722238845625850697302630883584536750345509585332340461070589286617252040263627599084442022828144457108907403413022542861480795530387691563937075359153624692398911626098176023497339601048258456674529680402879922897233186506708812935850580739307633729474458726838521642538810253131344438598720773265761868599396594621866429501077760499181631432001012308687911951569220365006759707806011534792758156411957905379684348091916681182244786644151614143807428110319276050867105378128434219229299838725294714530151049273111582114243367124641645733534448588205837258918068227360470119719604736211318685494089636798581612496682205550457451066532666815408626268671850479725978075111850620170723269006800166162643705851534311387754704564388187183278371685623156386786644280553646488550532768871484991675425935731896383786814207312203198868812293045924347296488600020979638081212707075813890812386554824451477502809920898706585808834935802448322547426350977478929129393940348994512135078856936460314694915888922481399261974104541377078593001511210780430703891232006730618981952169654533721129120552961986208138918459347347298238130156028642953350641830123358104476726422085908238376304888748426288023899699630262279230505037234988372883664331522278434917903670745172596617282461903672727967245732953798350286098599526807736213967519233839823687021501188186548818045375970071419916234786908861988591118370059778230248364696428418963440514366061195778664615291572113690362464001082148507047243971370233271586336319512646022391776282375891289449017788598643940867902323273196232246075552742811245067506405112871267806013306143672349511317666569270025208914272798713558188591600715621956138477619697566452762194567809387098076249728554063179390340371567437414491674800235006190411058191533055372198113049989915728673359371908857547473552097407032783943810419413452274402353828882584635387865044245012091052682403965064790409147906570194392107285397285828004926433711783936087866651597250215592629303947266787215181465720551546086722889993601363720488836336338564384546385731810532406827604532666506937919088801104042583819352895268610722916330732267912746439135576211414853197139480522533396090791399110930974662787406514676429811126361286032169609688402438246612972656377417635896799259217777784006259671107144594912166140891238454382335464572830161628334955502232859709103128217531707481697650021270819573406275120397139790001281279100863779634662098606380407966763605166396470213785973765887290022763472285260735823083559597858832998733664733896436649825769265682734311826080765363651665058611860286250607690720723620072939748896629772688557888171481746511766905871571091293806678275660073479350908211938436865834515395940531677912836672168843452806470411489466668427927131401869963422779689618400216824604352994286475239351838129949636156481961826736707035254163504979660833740364179362163912045515529829964030583100986894955259928411292376353013734773961167342748587076776580712141114028059149885828718806975505965605406180701983541718271964821026647892581216827084984365544238127955529956402599219399708777929553126713176581826868969650734865258776721567719664611549611744891857408955082962847962331521094696606027284967658388175623339761461814839099914420209080315376155034921622919337413996647660529904797733039214495890914303391460712423671387436157022755272812918634602142765144979754429608096215419064069287326710434881393809041961055963545884624720715141578564511902295098983278856190448180665354741537507834694819520489431526913807327083704076619509977047648411430882997790442096852645783473492054892558546490411289898211040366922294007086684198259570155885603042199838095006548895787588698668024379711025514337489236429091876612536534428260644013699653425092513923848100315933216979041071036889030041805223229515259262622248108794243602508569537829969099045696815509662663434169561131893991267245009441225389216274668090312011252654582775413466369426674048437209638497088478267762709156902017260249842189220601295911969518009032429467306448109792082562571125921902001589316837035063890860666521539570934900245917631252910120073542032316113119523423809015678182782601448198974488535938512591681123198019478023449934549835105156651151689032590093759463981530378229683010651653644983184984547072562102277545804702045797952407082464673907828790293338983732410192321496096887226099539723486286258120460327927452132042996905331549494372967959024190870030206723375070434214110595561528127905194779200083189560623006560887672267922620339929530196734128493239786774125709336990965737871184098408682790699709248029500589100053161444907834167481356978502554997212648954429752065862320040944635167381010134255730770996300267544278829772041209871994258736163713593287297381667422440325117142556686402754938534356344257265391694429585415067839150357801258877774217341736435761975295364842862081132434264443960763230544173804238049167536895580843876527923386883232672108188689993680696951542478125448417680443618619365226215925381010493254815489979870863373340322889776981949942658558224851171169191164221901701385986410505351348078233583483031128017489840380342174533836978380948491068000784157054697708432730937481502577452974043365922356191998118576263514392935697576244658607402410488647729381896148941638616279960440931856274398168834820677262608103866870577740471474152573934297236213574910908396276548866349981022930856809746500207652762147453128329003749575861204130355203245189606014130947079481518977582817905927099763644244265409739761737823047789849134208348143693540289706153861657401850235943693820502969984398303348227696227042242546011534154322712367869205060959652060812842816598260425329330971653864931414155015332920863906836379750566695192635128651093405635468542468490051930456301915396250589890489550096953593406300109794833902618509273447997569809233330502875800479836270590408494688639374377760154632528493212045316534821134568437327732571849174253556302840454348138105568166910416203908650593909942834603259659983410124002900180881567958672583495316231634515218630544820331350168423997471448100285291019057059886850113375395282925659082699195550681096708924747483320680983265237076934283059144026334147007908363833656618114917339766542321075590409232511246404613447468815704470028634698416249517768609423517621573080522752368194453517647215817759800007351741590708150458914121567160833581169907937391015425386625610527142474732712495206692761032850766053177842401758895352056455062746931532625289885837081719349574186254543852720837589506872957519679342028557836301262078406643086467783914623200997326959440083757086845665412351302515571215053070061828635532443650558225187073823176677777129408918526985493473300722209784363210971045493360900571666404060656230018049475545448412936403209301264678145430049860724202932199875294804298015481479872670157490454325734629598536063862359646146647136299922505097448482629120549812255652548402892659176226384741815502887284063971946212823996912789931413341402213428173816554819076623716920321084479958381392473691538320029285723437948500473209310503250181885008098408318814317234233404614973503448619852171562124643356462986309624623489062832326331520564068141079050484202880198977737908315768100878124131127797269218497598107442033716771321033865471357953267682111939244727441890676844424345337114314178098310923345369784186201026345653085799154530543457040899227345233763197101588754170835598582451415361756357503195694471456319512282633256984157311076997769904223854778776698636836990229082930877965749168965756621642827416503802167434212225249038370666311783289887955088994002876738150111713075391981894494944282857651101165685998341056773376209083866624631955553036784843308412743183071809731718782491017195247389082526949079803811348565748812386548737117983621748081921895226119491042450787810514174258935795381792115481287402019161122882690902125761404331595905123640924856988414797877468577250630714928496133754992041676110614684335440046756423748200024385323666693363826729669127241123478451183187096213169472435459912642749888485691614272474986167693511397500460801629295613774288497329977444241535442292631803461661549382837781896565332500322515885338043087878283175347936348759342277513379462427935860311551932175014641752674122288043862910344668276010471275782881985178649428425422060153455936082765069847056496899071929207867503583258191534074048117040992072408990441467831373213363112161821167709758319137538451305153066618581821086029736427391462153794087905644533373036105076774187251175852311473796567786854308557800367567620961642904633359784005619096829446008401472902561347090356232183120665656690148929576222144826436523102591867078886484477985806355100380034557041643856067727649301491953851622134549457292721028628178902214423254488449660570999424310554046243147654590944896119785576009847103740796350482682727482754600313850639644908234717468543780654577993295574867855509165480242148866799369814832030490257269784864588571448880777375454283433829999213037498122372507795827560392880838504224488403302780206326179575551327943594550777220855644804953232666862965609584134692206598276847440370298140054900298256763258372585820340401532931592003901302175272129577502585798373643585836659497947712291218443987937982577338997992116007952565121109407142013137394576081093289631153551044290736780759480319897078340754543679635683201705147261862775728262061099843334203545018288827392689599884810545446840799323083384577925679445743860109835912094777665323112011055434452771682934241211028339071707844100424493735210420466368224103275788714718762961718295655407566388003315980826529957090098738124529606917451504404100768837914014777599064927478260356095610354709264602645648515703946543039895297113764824220631400859983085570347659111782456893098004056258709731206837909039458951734944842001204969912567306744824453363522039313326069119455159573413183989267640029201859521142285668098720522968944318542844625708821711288456788413058340020912229457491753348045667207903414392233995331838241066781953554250476901332728943604110663529876786839265271313905663183727688255301568684239902197524781081349646967831598558642981226267297297117963527471017537827228827094796367060269646358760925487938253773060484094779227642104456208398040516138363610360045177053275189840434945479749899983470634350963298199359291682726162052910727134596398723916525006480219708976656736959638592927276729776454459091952583166666358563015261333766318980160978260824952941658444434684132870965456806880540500318430869094797342784507845512588319242530522768288998478476174419502253437580103984194407302127939949454519649283625881385914624718143197077807181230762945636403240624857746661487987500599375513838095805629160081248592628208810238103635809422422473546997114000147180655530956015055464748438208438624438012336217178722446259244797000373238788475002403000761177569880696936925385636284203322695272320797138720957889483761623885404940241573040815673426010091800282160577260504091176746880061755178896287172579839879858428210550640061538825475730950150668805513552802649108744552348663703585106310323329790171202506449398115258087539141032953659532930590715633877271526308737892231089463139416692836541310590023435658652855167975366291344957196588908518534658543909132350300871012914401814349697458815520405916731564265495737165958942013657039032827601568481256748713064901858382030127987495833080651818374371382874761499024243578764238889727664337279023450915281612460734685095502893794669325771445685360189961195502952672482827268529981025697243040687985625529935688157442987273451954168542032969808741226187673199085512334057890608005103172888424827730392147466551516360432251316445162113937466244861612486692927331405221696204245311664012077267150719792039007229303375947322932081803355690213970852886606591601283961594240959219784903026134107041627259378191286641189254799150644241990566676806094798582932510288536937693079966739521578802602253046946225038004696524260636144431106342499602103847365263950339805023891312197225798411394575223577931158091659131976375464624454491906187547291827301669902404691280596466656577113556610768700476973963873139501367955414439097866493947456707709841888102453582146906790211601994558229806699171106452950607153890468382378015605404418141467053121333486655956827803741057371185404293913312767101484562299505266756429727831502423550090761779348024676800197061834940846998235988572815204783905006378452147510742645168850262798908985716642361126716735058576296315606429620117145636984949752077252991748350600557102313644422992635767334053904368275454288967142779260130039278437269750609529948474506296043267888881052648796506651092232226139046042037445318575113326245327310192401114561944600038537617479102844802226982348310996105452376648103522936905952525622559924053845283965780296061348795004806595677524280470260605770675694580169256083585719847901635542785884733488955158348605765663210271841942581739286695699172971523174120545356294889260628036784288851250862610971147187115660330950264070059927280330687264657001734598023898778722988576850619214103058514050783045639100877501101666388272701060131924678179599906580261787255516812257926733517114409153732654140346257133876115116212914959402826241174838754482693079981438057990276787591310116605681848756981117773363197989611809865584113485314305108006521831062175740099482920641040048535105908175286714805794894119087392599313422028037042067625771187509496920391690631692595037876860403797572589660244543181130601831135693339994509688401770280359399422394744532730068747978547193376437377165690645958693466414320020254643739046626535740213031600018265176097186789343850225339774427877141213093519176800758464001537240989521092094790667987665945596618234007419687497199605104217120031309906613472947075982770031403402060957133181798903018125115836905797759609165081165912722025870003840590357823997329187458327705630725124128944706026763351823823132210063626560640351568327657416585252671866765346499422141234361680084666230810067670099271300851035206795829728046975208877182163092740780184498369279452269333124089901950830306350276711872980545089303688804278005608370549950929878135980644413903237657289935600349504335085739048883283507213325059840254161561801189759348296269770861752176233322107696849470953050075737909529378325907605997538710309356308571986022751062803396741271328573941071145951297142028869260498154043163342908118548354360797781296968213108835973522558189144742279984032871452965891389245217303607868384915379430567011875476604635962859499972946576649789725554747659959874216980332098719420755200275784129812100169630360088940281035442128308259431823616247032907903890714386369005949960902531529548810425118711141530280583205866495831584463644168797459557329555972180793600120961643676681478377458605892120905224029647855014542597497410577578166761726020896546634804902674100519788739674291329771137005925956926359255652231268043378740548508685362743976028790697984438903464816890220737182901495877348023143035004632484816932077844845286654019858263307512533104360134217009506076910901688104870859460779295753523643840554759115527306431830939042139661266756415283238153093001947567414306370951005054434529728544903772686744125879030423521248604905780816086413308576105384324334104771531077736528977299728370330884803256599881659354261591781346925215397036995689788139834716041033043634809916939112442645546286595097581369889074158686405065923797791304008534009822892607621451067771385219866100733693214356500840033202903482478948209468599903887417374848990108526634887792040775054580540172619654602416819303254559380406633348072052166120286005249688746118978408887402363676246661952597837722044799633095874367834782539006726715150426064809372031218823431351942443429522060226406719270070266546268937200753383769527069822927043375870109063992321293341650811651578228579236491863182439217389458992541679031016990745563964191736418529805783168591880849145418627589391257172088153231176949556616549644751919337769524744471192704083133068635147028096168135664007823307761979946351975708690484610619062273548983216053413573082794762220258078201328668491351463497044414148994951226964282598380076191224599295826214454400318237941144422635146486353813510285563932952003629035357072095000957178165831592019421159463904128082365898585276319129331113255986997295498942172105040080541305534871620425371457686910764127719881658192624101251474969502206978270957045566612997037511086777173990094886277840085912264806018057283567706597074433563905739461422245643876348009714290780022006243260252397338296525908581763328056272229225238896419439817968777484646953246643616946517500177315884152172501244619070223737548978557257220155804813464207969360657263712020775432213829758044226938137881940690199432953547940794750467404757355575498806346465093522686337562955549721136018973299409370810255467263936970845587058599476403996571772584648682270957670914449986864682869868413743534072969716825907244540721624173298945132577138413118507139021978641038955811947247670389585711077198089977126689904743361106677199844532046949717448951200856203868226569704998611386783086181119612243570086019452596753216372042103733180966371996569960274390478872242646531735210667979792821761317449214100742546789662133402922187386918166150801448161995304685223918727610905520290221113894461485742780788174946802085959595307154740463227724139959663492304582165426751264023017755155515532972183310729239560511755151450126323579759193457963468868843818389294899740081312691246979877019964418761413480067707753790294412854948094376368371767272888949361924079080172201406747249345486404045700273400391083383518598439351088941674460493703832272470824882973778020510093299604857136341469464163734866717203261744992345403429726316880009170500840884033117351296503989593529930571204957422619206720698493400572611246390239365129184300134053291378550703232153328355558199755119927775768365530549959867678667617990246378761091343684423969381575761996859268556888013893333731754979525400327017712903346100995963536400474508277914657076613092041354785339927044423038386471804541156970535685177594602339292155284662428545044423603632162518935825457866056701693594227789671983267596836357400374921427267209150036546812888887912162759059737097400795212498772640529405906301973349836317709096163885239678489280457571372898427098641026069051605470881891452340046271268656525667654999880779730907349189817774765433338200026523793673699082184871887602669774148572696995166432249382272484645360141749940114837420533848435290767140296861797586432373770412908580177808511342797198721531244524848165688112851930622999845210767844532129590742264806297849009305710585315699841316974326667113596796372592927978271906157304378668599818863117017480977812978101566921370297962963672974553365123089691840366007696132556303283860277764558304733366276474328296906921829435464134609893981411969017282798811355274026120549510907977830084844976629894741718381473057040466861914357298358027898391972957624334309177321943218923693386107025254234743599295821213705870235945493845642342649858150592271653836175140483448212689537141201680009947979256645427277082324352787958072528257876273766227576012330590400921988312712386457030440205853250151338410125576162527949004036199362595960572406712956822901406914364912172644788943649064134369230391230705522551602018816668390823946075275668688095489931282698818104292824448523652602787111283266287532814111814968205909877461580723523837431764002099768171870290541423571701891464142150604317655300412568138907321189613138127398631087332313481981149273348331483103588187577413364982704683639397441732096059477121272678951015901713129866174689373874571048906722014717024709424152519470940756203337918367376172552777969614237100031732899784428870020714125093571226366473119680943150522837789410865979807371227334839126893531706148232299696111509866013163413524261220139190873790415550470318183812599898743173277418500392405376697310911085090489726958773965431561805551192697259176650381773227447255103579482760278752665427303359105330878219194134558641409611424357377052293295058466889279487392961313707453416829484696539851680577359639321821613985470777548537507986236968319698948176703789996112750395433106777515322585424093565468051704625941208378920006932612083331303231210548920803244570676824033678519037928717350430993798763168918205142742094829174389957178076962228420089454002700092677633327700848623479582334904197384032870588509820174677121206481435822038777528250240603603722503402764616427600356640631641842313139508006153856304376341169449384058903549803938220166625553782432360193294132001635146134923610828827757535814015588100941136295454358060335420215159253888232363017285400949363712609954943502906024559006882533764213073083091987569066675420655829508791722850246449940107717569050184030154178743467304095311618790212049701812354438421018503812374350538278999577850252139429686462495885392361323221649229281433152471276585357200115207040528800227092089877812136689506357514922460429358193205329219720320669049324535726278926802521511214100399420783023762747947765204167828017364347498962303246994362869350374572089876858940960622292760208180398109545955372398510020571937248483352817227673097396396665271830649054526391436311821010041301696190205602386460766791451118414687040597560333845057204741484913925656025070929373190047893045176658232515261235087664497932771471767482020753820462424144993271049999144489326753675095855395558509631951441255756722018909592368224185221525603462346859278876930808876195009859904309579806503781395001084435631601298850531188334362304285557074923758506890778721560267381911697463556970197779256086694132182375738385125574312415745021519667094223099702677136612986621162956872739038869720187045725175653405424462620686926074920446290982800256403457826494029703738246719742716486755754386350932350417156500092902111704499884694904796634437368695437360587855567881390091939277256107786463362085382110668397907695131993487409729721243186825581709651504858456613984850184331877720040009535591529458218276587030234331144279128330936192751699709754526232468877881195915882553794714102347026398183309154000214300852188743437410677770922658234807668616755519150866458210523844062898655336009046572452108431141934917494371715421324883068943460790674656593845091945218123584790005811853499759564179960790016424537318157928152971964305239097056270106467141617206684230481592988327176604001029528693271553789988153564179227232814862664358880489504333193540141831648410854609217814481113153762592162756706245062811017065550756346793757420147525419864084768006326793202678167225351992340272110586067763804859056368108334043009927465987856421071424265620116054959938954198048279423443969573825208189826744318955205492066050826239009962789852995683631703085968270970753507158560826675101339372913498150758625824075238808300241863894363830172746139047054603890920864984086316617246537632913627740981289183435175274736091336851098011740904582474256883344104235189714429458177645706519205694079378977135962859453436038866064240893188899925901526690083288077034687071665148815392334870846758015119786342332676290452517612103333422691253936648329176292955916474419352131236233215447457075374170500071760192365182355920678775805952937643607048289193644525909692088893281073476307229403134712665395038523218197685705398949024908908533358471423241803191710135139781975780023611774943293716496422185795646162158219508863792038851938227545452946480244395077013945742799244340177559811645111323741709366795639904044034183804177108967260202444717503549712664018676987398080151065530109643583865537472082684018792221431379335872533188469600782466013888441151831618348536210372770696488865736992009876435334697614476487294773733890894773125251754939984422508199642951686993482435272751342274439469870573318742563422979010377870455369308160443704877783737798317604110396480324761806243804723096315607617358831656735796160856082158441708911843588480455501606486267724582699253876858916119862832222774997588001695635372217811579911678830247072565959655182281548453583595817840529096448943063351700036885104342030183923627735906562419505629191790208756310353307277517093525803011587185916166365723508674513747656939547310021371635780958951082889151312233990032341519647200147074837492379075747552159879836658356265836304556362701562027222766744771121684664042263495842609280507188658367125076127097230310706986098532408900734875279812789927236498064335514686854548575188475507104955615244052049278552431208597330937844773242676772031239041742010317354560439966197534317242450548505887433018945491829473268744499461338962247151180366957160371488564449119918241688379426542133529125091677624627329951705472158170931932947575366774217713461760845258670689694937399501148919594353931408760904332244298580339265789505785042663901963813242374760791398309544313156242172877995596456339684043662009416266551347037011994199620723986116051202409802374910333452718211192122535284111370411416856878973266497809182112402940716241314636495365073203898461093031913780267671471839091727511602926284172507500739352088373126793202517157837917278370571205479705119676987595452651319804347819611791255368631229535473308677705962154572090923739310185441688745296417498750608040713549241816275596605553713267568424798258945477614794407858615979296215252451039920583479086314687622913154692581894627672289050736763310711989631887205106522386335966152680732855149969398008682029819761963877063075522901780261689967755919103494147023416226681513973129305953568721556359852600140476935847961723219601104596196658142285167362407135707486636260962515341320051840775693506404317450979602825867087834893008380318878743143773932379005121921833735719028395253007307687416494332694327360976764523149784967049224427175169602924387169312791510675970337502176304837745420101864104762765997543998642080017542811144069262390076011815058777745269864800181084040449206185910202216142944917965150747094898180067380068430909087585264913097285041446247558806870095666673391914291796544629080663837566977489616156215579270033582981564088890774559261498519753257149444472693854087881645117021910074397579015988534871446341474783625813451492447315096288764461587117831344252625069080941745573746697335204580682647536552171573038600976224549990527177977281035220528633789773571700562682632739246735685874488504294546938380552224579503034033990037860023133620819654912082428366210742152456476120406653803087934597014386410617661010019597332477559127527825738379390666073836715401285053246082158600462927547851809005549296576642397798104804150345956010615820133830544068418131011273117890045774587437428278741635905766949844278148889634800936474006307238493740048498474777035027730719847752015825301017703282958626235271857906849207417156966476964854253638583101740928707884228420244575405114984039652089796442227886820405085905894202100947286953862349930771086521194289517360472710435440363851417194527172760752854603522026009817789942496758128036498532921421134585978113903089966902841181854558930687308637378654339444092522986855665429024257519523634228899437868637681993158591363990464892876013748404214477200949937578996079598572636055293476509537582719893805974087402772827431743797164415449244712080655362749026620982937339703867428028705963650928304671172286248981082134697224100466471513522481724660321580531300543241993606148941538467309153105371021804055512004338872997668593312000408384160802445190149333907394006285243463624798637762295990701786613383394530434029796821764528881014319747749086652392562936666093024046177772181194147830474240218362235509817688879657952679926086522844986414228259892601250914172250461519626463245943224224397954959105374910998811757895633254647983733365528363204145586151379708559711080495669690288073006631862212995162569084367278703679353821301511213262463239333834805327485450637450878529388864939017160478624636613357777455948218796254269390199902985836423993969736289501537442413838281276334307256765689204602063362082661249199016765410252358328660883927459763685392820373153187847124154413382537995595185931797330748712627062094165056050615866894568403510479842015463906807142736466831487177222457142836752038211547497825408723597006042160350872914953971860071578970087591302621136573497694676882916413010009841970246769359649600746910439143921927257179140649474749061935834925205128587936916443650299521602788856583386994142740982255268536769530947387123726377025551486365693143378944442955269522119496430466445810908511472648133703130381212378212464405385879907435899325385382186169796417944694056156256664359346595149822562423431730222048574894466393745756213724888642309786271191603009488440701827235164219329617549044925802411932336342842492996569325353469312842659740080724398830950656434498158822442347098719578245719456823615758188988682805930426250635741940331733121877111197232957014913463562882433616935100708504606152621900724279036865381518173948687422937484406491516564694911796785436769176355230623843247470822103146766178629787339085209168987491166487621769272160073585630844064942948882127088686953579204414427131192163084577768160425818232931620110093852099175191747238281500994785987482443665618924244661792788674192226137417475722596841161351418688382961583651433052743270949357783590785131685787092820621815808599128753379330002943243346449243715461699851041090905660915783521836439488922016996882819737405381837963325440006740162177526982723463281869159282249511324722686348820752852366063800554675818971506004662443178353952857645700636829664426811444080825937985879381982200459408867198402346633527529299425196518036203645019583655352027839619089764780410757244462872256158310277201099943351100261850084253046570752874720295820416385301135145478874252723757503033946386610850845670882222925345079632789549985245925339263864794048340210095909222135398955345829911484937961289802200212694490403867136818537318972342708083048251813612897413291327834603558467431184814306559501212873469344170334793522720531129168672945727801511256808138722067961196451936900280726970024311019889050458252315572434291118289680848821050356892517437970330251189133965290622569262321915765604789833059611974252621521956667755884797623990042443231066164808926178517726779543538458381780744776018595411666003996330610120373956445449594592858976833931455191891004619776420789355275528548955543552645148278534567482274298661077433413978497855590067227203093207353435201052234332310579740894119645382677525539068358884392315773954724037312661413009086723615571182687751247150616276668158190899527416323400225493068685622085164777088345317772350946382963972783467575770433632211653676439021804566205436488823655199087670850515559464699772073105676619859231576617461760649230524858732485996685560875465262110811103842744839149884096073976564827783780318668149654996141094221489715037377956939136303268280341073262038015833032336452093659896779135891234752438371324922503885568356452738911932176381056046657879651992783415740708452046006429117741811712839398514907488058173694903860794003809723789238992626239452077331711197032092719500613173803713351759527591325075847157908069868099399631802872733663394903272674373491383891631032972503188909967476972963668000527865647267637925485943964785763849862570759986016752336159847163171984425102632218294204364701640226526324404157557467301470790159405042213023771237074869087402555721577772621883500129777889125271721453840539463477394288925397535368190553189671021113060153009409289323803784913961531031714136648307968082733620140748011712073753469397147305785192602807741116557702451801929995433349068826839599808630831585390071465235765732508430024189185264054100263358018606129455363964011855607378135582335777436835635117226567948063667665430257010690071459513947874484234674348120841588778818056959164219653521259273379785329608394172238178949404568117244893842560430859046036870076257131364746608000138112329532404981419305362043542188286823816127979391576115814559650422090824966417365676291483915704283711354083718959251036290619216518039933986500892868163064263932585010869907833716418553196578154215828045933207196536101256294410644890525690957260321562771395457503369388903016559793632527414878214334610836776604925776357501852144410928017821303175467136720614816334857608878089514989113374288669988752369555460215462770203498919791953281739142474145698137597438790430461603572200232373643485944387393942707660537608218756132765567608229937172408181362205881413343774379044457129914847298966167890928940113825677069690013097037744112587589445957931890362765795241947761715644445387317142369538008397052525252627260759940622415501447526945664531753518708259918238264896753545352905593048911418397151534659135743282979445416509281265665108422590429716903072855009484188994936542743888332651482177541283156580054182697372905519193134023009924248216493321408744222238919607370617936658082961899825912718463601832789881067074444953992307147567789224466670725221048501516199415885224479331219423463579148115765117685602609386378528463992283167450298342040302263517955320497083809585616239710239096356597967026322683837799746268892068600714334528865677006156413921288095990744387845178382994528388368037358301429039570564584808612600436928343338688192850946472403183043937037620827634387137248960704868080300936282667723001311711762515493396608328852865498496059260922686930407204944174186820497303760213298778765841992416265026024976569790531170841143830253162055306239456288391156476776558477860420740999218613559899180475122646374742491825089159208730440881464417199172927701172690905794514063223233719351616718219858637869086791387187491490748748506525282688877703081841552598697693248523349731670020892481304748702272401822459792273379594907814736641322172293578949038941877977970661365083667022490022747074861577549063940085871415389543362864082297277094501561719012804565623921827224236000290357405460568544119300714356671181461832489192631504647934529284510414988338449405182102902265374953485755566275951404127934366917698683787610018945438996568435699855399302584363496606357708297536278758463635913345947000947227681439621970099414786429943242385753314868562113816869110808860165636837154907861991658321956844097007038311101253673772442800821138865094985358370640995667899357045464714082211908536908171941193207440053340473847638362229407979708199314795624003707694058182591523741883275506915959805213357442223435791090083862736676291762600186847290893948853121440531024117920950051915649089816504831539447215103633357864681778914425402564911837124210448040350529044853300479349193180995178254036650328640215597092527019888987138001345200044808320872752655005300229817450467918108171094946160140294211128696430125452233910629534846342148030020745761280115869858346030130708448969851210529935079858998668732658480771288586609937310618274274817042434990948765060530932988651639112713149588946266081895334397610858450126078235178094481656263684586770730211943169775206237107056906188798133654911227714400833485383069152164437178953594693607398387389961534361121702061528469675893266695023612565328821127780904415165140576321296398218879746460746608451989284579592207381487334942949890840052376678935174239105551926451639812426112996610021020558743300651448017012616511970199032239522434833821259503920875604220293511381053853630425477277050695392745458723081139406743082010475330900686102223689963829147819140485607912736614757523995786779416465978291183423324736900959226765155254868973493898861724232439859138047147112615056455395637570172122672562128497473525214368683141965629753807821085788321447256303385024870918893672386451565967104766711175998923698563243971039262703720668403759646641062973973466537093593399705545495300238221595401038064905231977625552054444146584362048500556686520363366860261872999436583673430953685019187588936549611683974999584006884536247312387562788438408978020582243395737782461619644461425062278607244248925037547255125000953086179804093975339640094476558998392625683021547535862615625868740614227526073519635146889104237953772897233842584223834810031102068141443976443011115460648023317819008251275867813543287967597825764738166600631164585067484028615988662487133553012102156116756539591414803568521753399539991699082920030468801968308206350879372788075054203505316197886109346588078175776953780837041041203388972392335508443305629239241439134990169962619981137810880508820173942521037567732408998880254030213352951449705639606818930015825852770457127020053963520520198189316836495814967692653978973344601535948458824493933780604513013584347110231784409982692056475737022261503461416030488868099369773022141037945961747713787690617142728755479985116470171946409282705783408824969608199814472743995378609392616596228512881976486504731495676078827153526587323703565266289502070756625504396884927520405045684201308825280042711183649200258409485819318350278602153974530145182395481146195639635144500206985548098419169644838922440537907032073405630804980949987795269870730532051795062653983734734311022384889485327808173031341521636697510723099913240612988861224712648589720570079053709256507548869216625949311937698849223164499415256025449314032233053918823550812838360388330297553711966064543750024098350235915023533325828160830195769453908653029137391636082846360794451912112628139405692095996735301671007163221867933728465295486732301411436989243580442533681904428028750079413737874027260384720623710030893483489134930693347856929142199866954608082945673954550364426921444416035181299121628866493060836794638699748822760633016515005943910775129862524050328027091961436618073022967074381242451052699756024096205755992809577746896294409917550373893575275117033780695090078727304364856473852544927006043592249102494981660859652537677075707836225680536737693388473876229000013397295196176853511878951981605649625233778992474221908383853237897360506133732624633659993048543083071701725573207089566192251064638855448194522873782133376564172074219539984382427958909185892058503121987461195506383920621314888917454425559400177584125026889964365922778227574686612845280900045231041296035166167343639340856372589158382755530015040035684409473055154426968675386751542045094748470992478933983209303798319012972248325244514730005694320812080815389403631855115953667547640208695390793160690634603899989527424882372867417177836868273589263653491508733061681828476925179762872476833133794613138749192274932178801691766894973077998718646831565621181827567408144933990650201264307882862572924516717231772532994004752679332654125420329950316712123102673741832345585973755937758817942585006406295296881450162549771274365501987478191523830733953993628313594976557231970506682238054148867361820192566362898684104535853997672788089510691334402582744814723965848415453689378559790375655268437358213655750164645442435678029934649853158050397683861982709355687183060640748138507626879137488666711529284332331236784331590031840591594494401380865095784964056522837746318833796212115458440263944402379176405461991687793109378483113352062151549110257529941468808603440157707588905262486209825734088604492652946361070055763644212486379756032005670518226953391145292354451433924214053195073656058608163198620311572848594781191167123139340718116449451020110639338483125990691022908321201345719253079645698398832480973568942989212778502022129791660233147307058496337151494598843086327810735200648620941837794922431002395540310946960925277166762898899839025347074337473707775776523927505876219692988724644796809421655807393772493911123781566201711299588230008058280038928783341618159510270960798367223569017589589516968175660325934170638136295632519743810095874992495919797017382815817392468349623233536467863998722620020306558896031454006249559574864214506729993104070326473855662267172505489786298403959165071761697026850331937962212398243947301569942470443990025127973264889720168425155857148656877978695201520638128792705756647903325032079929674345549809261219481165652209657126858205961837043129171691097121954745714847049577900780132205512125418914803264655740665300135578964221696332639456882722252911330882366762550744495817814015934480033290125042725819987471041617145418803836894477431680448232073446866706021620216286668718589554997293993912665634461020875121045106325430242113317506061966941200044001249155531465970129854499992048234810826541370565992532144095444052090164808217918631596219164747024400968677691066361283776613358612212269166810229762465842660841675404779747832974452037275208521717305173925842874783753810894426453344003173663932042748453258749102934738251100393251448624828054156948408802540632961586506624359496106193338136458240948017361350948143118776097883503891957377775964911256286380911102097186953367795580053521950047873636450630959164923570925233965156410673814477002249379638460323281872645285652453254525589609347385351522629984320611162746085711623830008289114819174866318375704919704210654291817814125950367891510742472108808392411957920763595090515917445718082008755858489470949178113686172611858861925132043286940605280006960998573680218991862429876144218194861491969934193102026604498003654127086152623099392151158112870237970990641479886637590969384822650725697632431111099605209769627956423207364752918941312103605461468310964449216369591296301347538461435015929953642579127302856739965030786924495931301414243367416883061287369442097321329764520851926143730531426602174824270850917513365789779039216777143565387065026791239130618519506744816497027597441891982990375315343051423435919091274931233733809178429725313947501396652105449545956341942266038848249724780067680477255933691086223491845210320291810804920884010542853230563420100839508601367724512114548803172668356369315436708543219574885404020585634817997571661901441714173089347368136080741455351176211017241173057273117298503129512324804238004089772827021867014446179015554730530731498059056264939064134259046440320732927347438155693465378247100642429775470663604309193657249087832609540114941821909326475719311534697882469916437003273552308376375920252301614623181607787348223226137742957466770060426245737745459124255175682509034997664432211733309524872204170772777250296930328928501221142796010674251400968143217656667888111181852768548250664937022643095162003933842198776989421930329861559188370028310281355535376655661320398613010866378517524372937032321221134456761200159305426583079708202087610273664813464007467715441163341520963655046418496079652379819503434940404874988427114934600406325055468142762148410845299265689781386893381885897340283283213999804825718893106213259255865204952852269918350623693107631727577419733415312202852387871476826843382430204642936530720327708093935549408975609802493801367929165520296328837925598227749073973984831981239496846849735635635431451198972717659578334048447317199773152239839174205162859946205232610575997264574552159448831639454913073489537089026156284760469034786227607658863562369315721565406673317848089061789541448748648488511337377964486247918608759933742713263660310893241904624567466656152794299321852492361161241175839992669697875159772217844176829939621490546485526189251644932684716220263970416461589059056436247914718589308472487911881832358648639350917779190908950509744448920769114288654675860926116314442268656751898989215601075893568994828213073621777677684447703776153661324060418015822975719725397528479639756139163336111223090144344724412631805375313547163195187015314529302041777781538077529789172227566489735752114049778525041951945452008760653766075684767776051212481704264018717759408454154777154655984021448560986311910386605608886149355870604238284947936076570082742428207517950051056628607478190262300226247184955648048737869399348803372639882922272227505446676513398515064133468439120571895298485406627783698616585837283523197487007530943481161145672720260207769589703420220739391395758602569892844568246821279162826238464870765667359036773756205192426045081308097581343161016300318876524309990549700905032761360049070964216266270920834426964691447860663837208545082754440899926772810377248649605228736928125094819799375031990463717171020068432824425333118323160954320516353376091784579446676949067906024333160642146012897587109005463029760608448921818718542571933676701940346604051695582842807840361881419811994769878699190280571443636779244997339316734916564484630708472494696707402449618229114567696335117828073860318543718786544379690225597820922958220700873794512474887228456255178319820978117739871028599101794773537944243720124498325762777989460598464961393557072720711620648706423031824254967985953087984616255268597785819344519660805576464927674546955099160378797229207757581997580639952029353738181754490789590010148666495702439073933631919009914612396940439766042158690353020107677273432544002476892387722775276396420748012793429673847016820947938780944004121321814373568931821650654602014309738649475952005513911852465504400638821266462888452595636658007879572665873429356087447508946785272642617915728904981074083994977868426061374563998345595324984488764435433237216654381393872132577218330409871704152823958458207943040733383162114774476991064773800658755933571282516306581038495652768328407481871470075846759542334310440942058428156356092629274721781178441832402689593067594210880703174983147249829882991580220400633751483419361791058610937099937362165328313668774704645799585003614941021240557967369345244153377038802824242980684506754305856963432645583244714349357870200398572814481904954357681337412891490589204555301276252077269466445347497813562668866803915635788289932708214956803977760601802495611943113831524733313526467639744955641501641240635632273840749702689649357994780568341690409671413424457744633915349058686836854160280585518823965528826141242912425983231744196088127946966470095202873286123486119764225639194305216918450146495931983022889125107827186613249662217799818061217511945067768970554056935455927934740478381862343654099092131608007779729829372667872757005552434475774842296606230100628290592856287156209470278215867274784908692166225102408231506959871923874096310318087018359611086261319784484996722819089955172431496241788841319538179244144423278385423095747921168052916435304897051703203956931575523014861313664429307554500671813581505098863844357653948774152552638154072089381503267250981967166663162278175031592522901176800189577844784010715547395649946047675300336711685578357927771194826931132870527817212675942025182657417938556927329850134288722650823417180609619348507902630158190501200014779473872936106240560824393267719204798901718972213681329526087494026836432129778011934635157552881063603359384828643586639598925209363085024854094945647744209593294913994552992368260600853495478088073992643041590614674437251706287512667585908635771325461595337633647456873838420106771973127128723784165764477408312669067834872175884709124934259876917283289311274191913204061600710580244853915435798793991427528422954332981799042001269997860042341319202079264515311192475130520443456663567805652704619052576640015800341383319123632199829753739085136277158611088644044192547377504496041628688855609416755071213116626256086264792179376397538725263719787819821357747826700157347054171735817350693984773839899891402419331879695021015092988059810639502640893944680282687740656721232615346654915337955302801288360692106945970423681276507017273529330561447094982088874274416727187658944196442437845125135367742681139171303504865299195453926286799645074615681593378931153299303665394751332045608557621663005936566313906943182575454960778713625865270731279521601608235293895214893706889303572975312068452915205551705902239054755064709462120481274252935535787526512066261854048057733285540048790824235148802246870043667610793916753565683224414833571899532021878405192569292953362822676618157266108135634858776264681849906070433065047533482314317947937098555967527156526637237458222956454083590229350385394735156537679412813507839460917518531366657579533017960433182995375799799251527340499656064664177055517183637768855888718937040242661309310296810303809096081045754968645212986670449429543636389556975092419626462180783450345243112431190794183353138152293873167677606342249533910336223191636903916900250115329377969523500907435144631937524239506436838934979460891346319297542814188004113691672316594010460829477907961816363765981863997083743216849637002079808055435403761809265366242483746313136248757606388343253954303087920625380959377920068711863958424952321456325944681299852793578053446424140733665889435516005440371271718967289535465788239686164042209530931205232280129234719072589493741156237561610186289678412039930188473465595485295527993977763889565126465805188859481430842713678356451109581375519311724093055004936403924654686645183016854033514442170996016124248743247056791057055505917699965454299641668394666060207457368796754873190821997201784204537921270827256000415626951396701077074832303890646928016410420545683999833171955106757734334146017046938803441272212073261254671343862466285506036911169142854421972556386427762437732390626409356792735987956285836171964875520370125798009950492293422876894278117806376253827734055293848853468894290257672959433735837312083601740638966848913123744300793310409816765500434802723275877079675697682342959104562935853556883466507881878950670053887506135711471328697057925465399609108089259013192323704982950360350463743744555766571904406507463683312690576874105119006810802603670719571544151904862128909744587579676398584551811729855711497452611203921960472516678644421323330426043171668237404583003336752371942441674938950163274236635366456458967878354228224347845592457210377580142473688676575155194518579704960680450245258750704813982424575145580219071341403752359967591976012937273351737227776441117288228121942002958796778328673749036234023337436723531653601492269272386504759340110562467271474240044480283264203707345656347035406393630600271314406085339765430084430391166062594422661506193140764346929276466785069204211243202024640739971898625100676499482818086522328840804768383019366571882126126549141965979710259011437501990065536347672993461088501477051870872302014454167971708849976742328910825056601856344179696001286854508987687671607437363945481031323410195073681509815046365913275205623284160126688825402565751154313226207379069451551324533155617806257305320154145787886723230352317362677562116771194712526338504913737187051010357450907868195783417395588814656905898031397995058158636918176977005746408411718257432314385924919007580048435778309319778868145731131960453269999395590174095117922770082326815586461525959872729806723223397319409490659247784850634730479865875466071738596305830816644484801760862801148912980345532393591069798456455660812049030569727164052404294330679621293278577056908531713758824939454991495226604575616321011342290685641629961935758147877576106682464668626197940120527327676595981992047363980165883041472417714564709005152145729606178210518833227993390835466731577973317942206587553973569812018220843321209517527836257110782213636022056229358838409806904156744495667651025104246020791023732932357443809924661479921481880618362558202669786102197326948835210095515835208981001700506602070125118839292847603192384040327066393585257181535522906515706391762616255931957723465154145598853722842875036441081453041654443937532992144731170140368569605651556272425293928075842183987809809807240245329018324857649278842843573932533625041417005141970889373812299627428727471724664737172154560090103813476576874098343972352764577966368390644020034196207449333925499321143442779375470267804226100789281072596282271522666713367202878247639048467806639801128369792392977101983790190069017761482075315667241485341353336196205939391148756579356146988919826820952282762775065662636027618099290751884580813085296301666735949426614828199872748956931839201017442478791804262874642971197483681668469535787286003874929805384020490655825136777324493753137629108239389306179330066702918232292643849729659157099503963173331606891110627876131960000861104387964188667659292029304775927493701957476049206100098316127250682782555838665861897271352811250937108706998318976805743099986424669004432476141240422535325377897487029774872687591416851166805711442093714058762286377898971674337213690623842655104766220997474003377055608544044930670507853362631410987900061860989012632568322852983074334921957323393175106992000831331154599995263055583079322494058108273257513042614046917532879118180081275731446809739141926028657703978136569145193491014410308380027748267417646096598809206524934086245354688633265813880346032083766033149895815664244347239395725622393898270956831785785260457122693637848149471133772038740865810428966696425074744171859709924403669899008089204308247066076961168165314019252904711973610672520311831779797858558761023426988883038137006045194825498159355746033834004196589503249971476239028503444783850973610801758293892224500847046878167010541165128185597587822413352677484217220570281652015900355817352457896283726855476554438570125286074640778844210487449376122408622605424779412102540388513004819463768963194774079081065011591656706143117860799233882807344397455014765435077757430118704485047921769570387580741834383097792744324282042723501347122980747373325272753018523213570053608080371715681600854214483830284553096688417687368704568265620796020206406163036082116282015577319748912223730465311853423396415772735261230850040903123532844484793665508360443164703738068060471635249144446503959767987068268054375010361916560904943960655146549914664677977044358327544300862216440660569901202053087295972854743007628332001674825808135111663636828265969189338602353864199573901389885852906899756212822044609593608339024574375899311098438530651293081471763852552754884429661400342296518906155772051410707457995805819251019812846333312108672498351945053811214180169498769394066891739776337230471364057116038418581994511092837646985718565620788046302583357971971836720847076112621532698178048133914512924815193099061868512855462247267254734337983771002715800878791128739790876830513941773993447451945053499595895007046431257376428802296544047685091984146221223732264843179936495628145706997164355948777794383890845632072258610077965697435444960023404003420248507134137705397120706914949168857519410773570915193399945950991191379885275271577829011632257524570950154078678223973803851344947565761744193091848977530516295490923024577643730506195180574288652580216250150590240114502386592921257941901161386924568329932724759385138279653124136964928380406721728185677194367530403511344443906273360591302865353570188859627656296522642227900274845171983179675296056074481608253594847656917575153934666395785234093590905083288614750628920191988677419972777151238513417965889454487692392307657774643356329631507120868113773203989313668579820153996379982943717799421669495830773035873107547099832396959089511684015832241322028517713101026092411582113116649838535771182316795456680537516824378786801876522004409717582589021134207479574300762665853057629529686310660570619982239897086487892805799733386045782455451088749972862701394731591976913334621949797432846114673765199706615993496030463092525077390289195320871937851448522389065332684228515016998114779830642848813576418503190038073102302606867570020334224391576497953809093377705809472493754933233498967789586950824738754923565393025918435890184272098431444346216028624176365163378446798256228848699145483123275352784944245049630387250042250951088764177881508252939228692613641759198221750552805683065880886287556020101180435595815699095540358565146109303200182341541919782106489960216648405731047013319874048465257729393542772527753104833760069768495490141127310677675926280038530370158999170639057776399961705101828993511674268115749935219731293051682268644410772440797939080672225688726139210409912815362673738683842300456439688179410608962269777081445869976515913621235270535928050855159528936799193081971717441358180653962282869741338970958294778890108540664548816311773106136390095994464621622405434832727382557904829231814614381726340099117042489709526576293526758670324773489104355949357115839943224654301031912333653184359875111738332104500343912985376309607698865940405014632077497018243683208255767477697366840293192919506360976838979257422372480655635321228523745488360141464377950003761296121425217111874747617806620927169914384432851446234126795381060905832290505937707269832252734957087628201644884899480255053538237459416617740863987103494794499789187041904106719040620870446126554961688742042508815227430288560134371882697721832784179041102320266347690460635641072203573886296756450469096454156603635943028646303557697213146364400988842353450383048709900769275544962153589038173694901879908811898119144305773111682214936340808458015296787091425655451845138580672872817662522382657746538032688672199081231778771092993605954592320903113740254310183731353000560131583217189885988140617106822572931986939145326987171350393559253439536726198715984291165490812100246730597484577496943445152039992624437469347270122925462497983188317483449085840456519240871195727011962248140673144854193107330502217663255253090397345147389522648213288943729155234990281429147776423712795057771747431126470533707226752465480915478165495453194423777512705965530019462483964296363014061898730989621267658583895096007012360534638076102193299525746155154236453964238034370013086752898318399631519772209553389640855756375128695595741898480359315732352725811645435537694055500693835851692432856509860197706115384276811259549202096988296975528770673240222439468470910298790802956802649690779499475184667936623764637695717908218422333114647344477317993986034563240463043273332051573729225575346464039704702082497915500927311556344638397186206143279678139569936371366615267023859610155083317381233300686350280775137744211789056140803511090182466418380542821433038114397936973291878519235790499916153450938706294242684596803002646454125434146812451895400203240930949194934030776249959779655746418012905107368981519091234569457451994095676325062585300526631857234924810169107977714517246793305298576451806360290437423887965585992130673034511462743039269214119169083738348775947120204551147837321704913899441717162740315071931005145102076787226468011773399304460020159082215586590483643482657943779102226542834027928130217798758007671801120239084705876475701958126710935408491116431858151104639502102441782614946215151390022618496675395859603499567328068089399736197829932487851779756955640943550774922668573162753740281109724963145947888092128136871160332199670806367406709585122672349594200949140821049384707182315156211341721041371445240984218017037732643642300272993224362810910127316741755742502606429134816848370075173456901353826163937897421367254883892186380714210550441721123661726863313110664925392527365359581736364593753810279202235024401265956759901020712477181285767233797319802433777683493555198378648141156535326089706786286238121123630023786412596640087847457902825497139301484790415024777376721444403479065660312224899046520132758921489539718039304912420522131296087321101170995021967643704801285984026049630148306005066473392050253619802245020079072171888855319081214281287843566680733763548253571154126449746485711314652763387617332140573666301244063752057225618403634056126423479004207817601754053757943958675485789416211672736450317331555469228696852330541954262699526149688879114538227721636867586803041940337923624098770348942982253359699890243012809138497776296699546544146444328817402545674472755397531853063303885800543642625754948624984917429159564492773785719930099202714456264346214801764804890813387188657630929132401172434708492484063820143163819227073333911872148104791825949088771518393856005087973800037715814546017131867051138131365587654939646642855450524510808145609528064734801031613748092737671994402544297573494331733649430541136356989924946572670729532847003048867478671268096623228090165547951076062561401590055824222037111012224396147829600990177400227483608309777529684599328544150425903350971464482045234195366240328149985251880842558583078912505637018771843678025706888897790789895908624733514497295365554971342775931672758152088466466050130755110930655798681878916964356480252822677431028926158768454152643501537626829689120737702797311800961548933836360758665597287375162259526676961461378691549386956677002260830535399797417869732948588512142128305891820098038381289636778486091582092135500989866920982889944364799522781568521047351388456339756409594238220666580277112262323093189184292756021292732048385797762904616904080490375555736900333828258467395595193877849112180400441479100606201777799579428262338194537847172874937266886681355470833475999387745497496591528960820536136923106946710403510220070309963097339577453047019780898671916438017886008521332691994439524394773669454437812399896128255812021257000708265727488881544358841243117050183969588810681068477812755913461151285632277599037565254884160376920807589951066314998274404860804801825314108139513720376884987982480891505924996919623310533143592377488761564713765307126105009183668420456108644254948508717608275303588587415711309779224405278227308616660840405674653278596032648662450407926979519264250121864084768886694135714354438112235039787021617346322851642701998357218022689624725279699142809086421639567608060011561797836806929991692044914931710159183479977831944445135591250165997409715066358376393485406860752981440771146976620053113109034006318245458787764381555273187247777961848990966895921973791570580925901960855513664277181883394642346165377351775961038117879702721472934602247328486259120401252558656159083098809314317117865967708280811600622547503525704280413642586626853012329291057588557176054294518738558167215158511378218409514949822533003776056799270263944755090257172541736151734329305832852328440579515210090158004104703495300302234896018570951304228532946929220936781435818897859159499554398776374578598527259341069178595868194763064507155864113105798879172492144301029914528747297700590326964809805662692328411879730009095764995841299813872153965375236114029611824617977560235111557189463289321817829207079994846161710091694230703296822923762576078733652270451395820469796441404858697946671561630767203007115457432145967650855033813868399275651193107894125900265438967843550956006558744987868567699590309856863292036567697779357194990393953230438554140740664890067543746348307970147221978929751237767725916366695059234081581782554876292071925039620791174635295788618104209457229723903669224019076158271460041823529283301164928703799348307345432916414301692505036963296263156432967311805673677581645335300661140425977799204263299686301289032107742589032014086693251850180042154692263453549844727927758986088573756431608315598756947841205731196209209583933887835123365731694484362326717059880494280736153112161023932368124352652027512857002834901354844024461643693342548951270945795704427945577936482073879048550429183295841687405698204760901874631406026840549757376245257498657454012149134228414014411255249123093271709266382239256414357674409599036127964721732305831714789697425920231960123043443421959098307939667141095815773393994925374557882242404381667812097096974985968390058836563372304906753658205116296965784660640123795531322034587970817913411688148309515475762601123077352440186946624567185070338986760247367977824252215068061151492982550369280762558464586423207283655523934319626956153592265615660932270324515073115214540467674528112997833101886607042107012928617817339333023674886004351832053085718900904367807632398535401793825297894752520377541571576632259841182137026129173878200179552911523968422293526765940894178486737587050844764158538339230294319443772649986908644162117259530691283564003154520198405752291281981008532222623376060632315981881413347090527870998779084435972053588031465587726049718319898150479516668682537167635397686205625403491763534965466414606716328212323172517401678583924057260567511779233088482104395865597907960072632166929427036033869405252218240041823640109388036627966097726478700691350928648216429350305086980451516109133003469695641805619013376750965580969514002675544025122437095135861123721818353888775947520749701215425802454847031664019178054544653258991134495447985715255838836091640544466802112790835376427471720911495460214010796178103726216846276290901725776512984562335738554408871471594061261982071452408583967090069967884978881360904956868678247570571251406725848989449480086320195027896370644762320761601468858354445317435415744128878898540125638856453742561741606827917742242266110858617479826926421250321085636951349617542029794632789266233295078448337571335435096367115738233996153824234894312561349126027496690715611615418582795265025273009372015258448450345312319666002109269778359871622538290140411211353590939512314577062231581978731650823795051260967811972999544444985587827832429031130634077315882679184621328385335750631768257008443483234024957077573832236418320645513644093754582777705324775376720704962341596011851026753499121364510211088998558626256662003405028204408384886035606680316926657549836454905623942375417182915177876776346341584325675467506750544812341255375682667962799704242764197401918344363393091078649267904135975026521558172789299444347344217734966498860619781646535069861604388890290912515374504160676095071248092699253381502365143570210087431248788615621195686127152248394184074258280749550900148124305600199135562546776348708747502834995492352680781788264548231991385223018661683733727017594345293946454861120930746733625380401781132538461109078332028676814518934972207725510856394313424283878648204910752317213665097530832544911971837008549611424278711334264649999948907400710573127353154624364273198854995957780177315842419288668285449205335989971423274971448119400893003208129900844690601557437227481151633969722766231629554486446477484600726723160594585877683712680186586445498605824620264496431349521002177111959843402464458221738839976442313383784181148202465865141785724976631627224080020954237282195031604173544999056819827701413438529477721386451884643182641953729502583872064668471300921062571120406940573775786363031255907832117821309553299268793590430097013046197118256433722368729401133700761205365760750988759281032337167433619747293116910131418183059035649870991421190617669913786533604366667542505982738667755192282646523338893303556737404700081789643568488784629494703999134224900086101034207802079088045509210227500814838205225667765059848565447226188469672596695006911095057695895627186070190494854012020643630741484719063367266327117336249062793954825160595418331409856954506223585441171972116770762952948685510847097655494011442700448629886336467395561035288578294750667001450073400873863102550666794026729118396367531481897904623420103106635034155019269469445748620435312066639865974270770616004916257065523666239827869954954864807079590372761887109255937580488608014148095319054826918658617840709994030377839944200037816923185905087119028818986622776532136591117787733056299196144331120061554650296930223018035185814060347907621511257296705857487884368328859324474366080848688887339011841465457492645359052512163566149340159455967458954737290380324563804086033401014957431160328113290144508191639938638864223549313126978250069978516170063279941820007724831849530119622689044534062246123286060115165977757653048973725562785296274764654755128311627071775303941015197959063467814224308257700017547371749469444105810371722702045056118222245859072739229460443991173504494024467720131454754047810528578087534594995791143406616158555363498119000745669121444401924545270237778598407255860352619976383789348613117801208593156752719874054007257338952223654162053151618189305060315551478502647004374842191426454340972079457230425782971669942624163524662790403594789267617579820549820235361575838062673867543003817893987370804401575974096187367471244923147202362365239808265058449678658433938510294369704172066073808870259434070707528377806974064720417324789613651889445916165723536280304363674373658768007552928257609229326881667158777079608131447751523431840796615034926812967072917234101337609398589824246289103961716534216755378471074297699649637143275310196385718907021095681335670660729095644710821891023791871640222090710080110712734773518247021601472139525492834110619408580283492066079684181222481646560383316491510671247385553732788822409207177190386136913364698396944899096412657322739844248377171281579000295725818972250952221701722185652952324875932703170871242219791312348340722387518385215746608272648146296369133141647892419480996272784333158256819500868572417813636298988030096885874642474194780320450182930245404925892622698620788007037152182054467032634719925574625575357771257187327337314082675918060414054331247634012350277555353522787924127806083497854809674099116222783213974384844025823015019284879792220903095654438627386515690548917718536607048714038320593141348174496466162801414492711323203771286960482973179481924908297482175269772380017692319810357261046519954382582172190950209260023745405194429569144256183852719898371374610130016300675542272528640514042673821558689821162435088555940131352318886024601917052747747422627103284867457635378481307750004654538225617340257935058049502432823754160351504669549527637527468062841775736282800912698548913740355333060676444578825785206492313810157364446377314871972792108492910901084138909265303371473295734180444705427028720771988071246973805388360878322812049683442383977267669456772118720301820542725330137288643454572533667358266028963964773710820812003798272702168498550806659259836646015673546760114037941694602602182298397827796221624725506901380631458287249484627262980411159929146532052925787748227653232146411801787185376082487089628601716123271200491454740426508687951363061378995205839153022665596760195183757605646781822156610676966807486106397969891597702443270503709924436334273619109038932199869848034599942903985979150500135544851319812990837808251633205862428621790965763024727366664463181546650896586811502463469447489908164020073132018805699532998820669399580365139930077036545865751125396862962781919228726203933205984675251107718514194256025265309493156707800448825285037718343837311928287085665833219659031517976278536679077244907723890658287947365886628726421326921787487335036562211224571337671741224668313513985205193916520608956509665829013528850246672615569179392643786515202450887901227817921668283918553232208822739553377849633202698635185162799619486531122326333668567920033240020698293080266301847393248291939797290871258366296716941998169559927882492908153682656392199635739101903676023358360530503562445289335571044504709531632794178808480741947916815336403289781734637496826086923581193069258050023129456191671066481376482973661256770069806711461629673977858539926435748492871866491011337255976030271466687348153696560811620168050522883072552162374691004263122751876833304582985241145374764891511445271456468997403641503629147660505798079542291981248975486160811825392989784263769872232259677630064800214821814177561725079500244873413192369877176978122460401043830976883144078911424730776019837034033866420249794426951338426803104049701990894812277780058582870081644322355762168810153677723354293260810222214973557135830768284954642408161398984477940279248501213185500672512355280610142550236997413965206699951578696643771143329007554081844206107871358480624806559419705964093411590571468914465242232448390917948574177941849151121662575119733158369668199329952533655459004440780174901003356400400015766075778642854026150856830319433169221096079145086953158452001954072765683282975753851362228899247277329942922958562487011747641012665241398538503616192471836110177637704025942786584189909203071691913027678579173843105383904432250926070876747077591440636908501929985838511504334820679087355970565131092642981318431061541106142806389761868134586189749092412082831821872599192365924300071475055547566596973955039107008760118587748892176065851851470059505025380411095065947410694667128887832246128337768421162037026501208047245214037122846261441811191444051419475713646723740625100662191556626454686433361635294864312944951407790731677070573478490900158706055805895265645479014388832590609791726578646265524997333613894963561568644636649470462790721500375786082077804840222938099696273199871613428322128675739215675179270317194380488777680919797028791738461326192841470453215348447742463504617546231691246158681581069145801847999019509420148081851295477129841171072001269817872032526117006324780715232953090648019820600609957117818960867742311926508797170004804881287238422246414705434420519333478567786779902527229438920707111441885136780832473967402498190197815765116571576316294548422992323173152840232523134725078535492128351252918205114562203050901811070801846585882182853409175529734736763340056921499432067127018533877063703108950733138271447519320626291165155463987767978559145795421287318069782280966528168560598254869172219120483223130419099307747987826986601010639775538390386001040508987341464514098809723187777830268318465113077919963965445849769577719791142064500274056221585285093902211752258521960161062445133409591635565772691466128483721265589867990119835304535062593939685674064812119929979760356790603754758413113776510227865790600152246933835239457269127573587945967860935193575041650745870705069542408673461763198496166634762537850799216469294920805302213066078219901338577431816104826924480983788790359234600241198411370652742886960653313275416365902658044048691103144436851727786758363646435993840134484304355531292800355565959842975519790222540270068724921249341198427346709965454570026851117850473092635524792110414187911211634981579436144887964371300114855155748822990634178281986945058014041457866743891384596106399450356194824910667728419159622477851517088757131730943202541729899468581305231392411800593041785370313445626447271985904179688072864842252398038961369654505845616957594700834372642313879691472550666466068692965490445540396651899408726721925366197529157956593513999528866969547879294615871677276933930841754287363367489720197984263452071787397508227857181405496548673735612095992459927201826360804775797097686782614196049189806920976146260645845449182156280810565879251162841982836609883879446813730898750302899159538722404524833775213990959197483322492213542143783856780067026322036949709838990411831245966833320210103431625097701948550731417394276782933756561769632406915618367447598693834653343340275158273008615177707140563703450480537164036995964229856732473876045024368899215102790982416044427071056820101310696111912789053551661401049716273924747177484185986077967372753261451106449089481412768841396995829953458913737815487878369326958558178978333033014018926421702268535837912285806012928832982777576833682303831559879395635617892053842354878335268775240889634096658993564714195669118688090874909848175641022577620863196640447194274105022206968416864063909487470503506515748033899877429908306425306517943351245589305291215254641451210304760452909766436016810837424073255503989543139712327120401027639760392194215887642257176125428998071406121729824344845296670002399171630492762316478473906831423092042087803877129515202799967539677117473662355695950301104739852762970706595753319989186670165209991556563653702370318500741931342235170894483803326278439161231520801691891670756509551847532606793630579216424377298927717261045285597113403858716246770972975757553496863530203995935918796370896596158447970045343014385734723848637461448360577553826457632550416065873226112442360990393381060318615842231249677599937985366284976330284810759779828121295522347467042867247786905721976330085742478680391210599874412020797761028326254826484954532475860092206092617565599809726907011825490015146870205486688583459991156255567909446078018172055131427542783425037563472728733837040274211919575372845697509988830005923197267174770004658524644860953254742917943340929170030326906104405317417379135795003543654195063157906918893104680641296800787442772815842615686771835029176471882933511445978106439636994844762303520530898461624397334579204130570328542008165199530379101050837901379089507429172612172084883729745697860432139341787657645897218901441444088180088327071638035290517046863244698961311123707221693681745039799886266597542341590885933641130170944627941108335691310387006331240659250639970149980553559093236161389510073757862364857801456485528664896542863279525844221347855570152325654920775696403656415109433225031253898862711667924971364141164016760383365186103766404452186466716236334387346901247264155140842681344485185200656338848351259360696753446275553646168316712535631014685324982403689462312095131259869565866712270336393501199237586175527761036003410781817966178422623522726788555637066462616698603293866336516717124755897918979337348202670842651331570025447617357214887380040022451300099598021571749446231423139387315185343818320782455398287502294303862399642996921203975037480723025999521148525001833757376686240004218718995676236681242788444099668586810113639344492006175767365142741900546551850458106025792337599946107736904055991127069921432207349420894858301979186983874364550688451396099399157641588166632190423662765514121161508193162532157550599761359883112668560211765144631502244214947072951100740761304816641154073861323691547490841847357187960385420204538067632158413219934173778345113014274605114632640368361177512893098215379625355089806927644945997065692307024610819029001326960857132215641976683362382436207368911508452559777729092366599999573880249391009812138257685824499796118290881069105229163085919730138507293754604653458189324343226642859174610037618281742014053315990195376736251056279762835192950930264047029299539684002747294530848973329243512469645486945454795740789506866785136210803626171746763147008303060671333162616007495243133484309587750599443630786697053634036545545891747543852824152731533792666312469115251668860378074089871198886575039089647368846861615890758367259329322465872169696174487318163004298041523661000121023663439587991694531946334063587209444486866069547925062717855881802951887116382131245597075645546371431772733934348127341899477698431749602525697350545740838039234163718190930665097707191646403069112051077083665607959699893805141511995766218989079799338666142507368619526957748193988421126391722414457152453058164205778684600026880078483511579394672258789356893739415879862851931307191738724301884319563256384210156398913984874698517873318294004191004426434206019965269588199844548334662731806439937042646230529703728734980839792008039198269249038040210331660223498887377882539546808664610188193578552938115761524043923527321112651631260968021908128474443901778103707319360968768736902172572622577539477622118846700456660220554564559113309368202363514976729278407231081609780853066499656009226109198123241803023885274869499703818522789058551346953020464702581694197488769916447791560375536928811900376950000137722995483771642993669687881913253200177683719981784451149932362625127071159635035037877298460753517502620920007201592818225020033951579669734849372371409552048174563489268199558207220714531482692053635772637893662213204416642832479171342226931388437090008942469812745522933876581378935376193431361039139592879445782095192275885761843819246532294723480963838501733420061757206689654797470597192145574496107392142715767019569112228357553458286770644612932850749550042164372624474798714593686352207095494244003264365794299806171193271701662741258132584787699745138901194480102844695440318897318436519416405047923652531252461828071098716187818342456292140143304531179847033718984732397826654558535183513202160164259544426048774321006853553181555332319002878319152864718959039171108752785103554361166542052815564493305232795600535524954613812873656388588209720776594641691006496816324972316998273897539515743989981252901490529262936918138033597881259201069652285508672708770000919054073492925624854449273520224181356633714210502591042173394244332616362413370156014811114885564757992058698539747647986406197186942275108547435389003186583301696383746786638535636425658444711715935546204000882603250969499912545302508072102720671232637431610125498071711253312314654594480271712179645979715526875034482323370906297734182301341192557572376831167593387572126439187042580205105777704406960787550473495451603131470800660821540656845703662014207910861563264862450922586692697120107851466123534784580930710246121057907346102206897621709338249461870029309717897434632536139725858913676917142920956678422447319608985349473143180742750368877372860299933952375389834388202474441067528461441112249228685898499479030291714495144431248205122503585289888542204969707546330309758761320135356280831688890324090847684934003105767402047000933044936331100795263869015352807384542110609646971734411243615904814406142559832395728667275336678270472626069172166442970711643061898529378181033391061301842967377273754490234313747647363860172043065043166144662489557580564588857079400612795991852256242714496822023764203683961728269886517888720359442752078560563903205051217085188250479687480804244690785434833452828208626070997630984452053118663841344293950694577502189203406249093593422475740692580324194183956477474492587118990057706747427606752149885165011267589498086073587563245549613531249861225826050700775442751937505702161070458790594598736414441868716077061492738345253180246125811341780836340655854719995826491262779261206825583008314767321894546835519582931121945145953405192391977505323772483384456032352776550773690339114163188640339716541848935982104216065051409703705489775518340822631542098213817423088139060397249528093925035688220996898978981590434809447515979181809877752907895942889745868198054220449384019275780797179052726022581186566979191770057763488321048531953360958070654844279612860053525944679474162546978138529873941394759178584223625258094310859803326703521667454845454260111259866573081816923377734679923259084937151590726650562114760491815582413083535498550194393317604922318144107503538717205348303241275691111730267195778858999585195509659885901966140924821960379580893961392963557060576200471610575560246334168301105613527253747867053994859644534854545302803684277980408520512547726926375695213736829872932682323683643720375694103235007116439434588807614995692750153537153250481570807278795385957843336357722380274476613798393531735083598062527651055592824131739031177560979937446966726157866862762302891675193859254905609606086816505839126031613106326155791840651416633610551327423613697255227045099460193608019915832019441646658871830124672236469867030733978736635244088020126862443637915154343946921272760578261599617643771989659547669635615370716927611279801047134121924149538641936356794371511126213225530110485477438742986747896318762437751106867360161302511241350213004624564997178824080076064027125905989013022061157173824143993568376682437825314270626374114511045617584074565669008233618612384920856794889442846442993050935051074382811690509292513006195160623087924987356459661009030392668090885956213770677624180166923422923323648983931615928505676132859301458714247843070665249790659715018881539331908317594039655013493988480347029177382006359415091309158935441237483417372936699252614000084469634988577128821264552652111155981683059981178742296378073810482494726885068530660533934917551229688819648497294482155661600626405922420999036351347609276007674816187937445712670187965562843855850905928880471789354260719184669848356416927208750660058716089560890230659969655471334389197183496784488174366467962629578172475155437659367176934950420393482125390398351534478978992736557198255070736033117439224780942904143601397132488472446120743964818843639470451289142483619546092894882820528617030858891090874994833018681897556330904622221806301139404864458700009055458547159876653451055492447928333955613890565373849799453230072541427146620854695414491406610535134386039044596625095018539023334623909749670819222816471488712938927313081514851685182926882950158898493178501173837463443324046422199878630822710187157754092128924711880702450534258631309398500961633644144736607598871323544755270308618338285448473426273580475035817946029450485222406135907902909901174342651891902648363754757975381644640800390214869692422527129326742862529282903065036068281517952788352928810518418011571138743088079311935089113259527020626798600873786344084129829894995886328202574099689012492097537211652684514636274942008525263884709553078508978351004384568677611463722675955442951897674215678451320389031605706423733582015457224855838436968556818758446246341747836863682670467586063216881055562407888956957156173773005531574294221864975096457289975689515917224067490083554999238339014593700590002775099975133803955007106563736457390320693182869594496207643337748219937085276153323551786808513399352446100405148168234515584851061277098179044659882739140564510977099087754202238837051471874611839517751482307963856415096542117383354265395865211595824368831411179775647880666527841926370131999186359937341707793277634419196168505812861542140540758830638256525621725590352853736584631365864614369929989157472483442732209940014096510189731569664173470636283029188320810752785743506339632294597649835149314935180311741356221846037025162749595880494179240409584292587330138586607585918715853959120347773510429726234470526284830542328634285059765652350025423020948606968487309414333260307942632469823685712628872489055403607506198514393422239281955004565451841494578129892237988832015949205857960823209993845269663965316359870681945212737749839918620688738133531249806596552482701947643978314938940265774886308620582559402566509854871098080472598245261191640574310193943000863637406628066170748232321918348025735509252062084554292467781632261699934752521858574676580263597342183136850015772141004491625079359917026601495116482096672040318114536286551808186463428787812348048024962258931006313852300816771465521338003018623905061304024549464959040042529427755273098072260165949755480326744981973902331282532082677562664484755323906565519393057953288289903295562133676136214302983179401070720186013668886007156976958363644090667760782191437298549966080223985138455323750001471137184758218355432094512865658031044339687789842048721878036830543414315043494667119116701151879466202666356685362214936071557866772912154308926533551108200563361370309301113356391128934464856907692564405736182501784372986318110247948041785545944714153070045659091957114466970043482054881732079076829141294223514458186882204236228867125407229237655059911241657243846488610634583350807407015510729070895596769441188214953088142359284070530216578915515151116225033163200894375017095355597057660269870368061460682969774626415580554828171584148334568891124435676624983535563527116430653247752043613762428028398452133051561619782729486303557261415019793580874650700968242306395944294964867591086735027225871298340875393672968635228274894932180839287253533419717633411632417758129301489167809976922020887840211568093402942421525180832854294855513255016676472276157800876368144913732306955911471926110477076399277806696815190757446687928308014619939146994290227242375972300544793595372518363421083640161581651040732817908490230182924003971949103771435397286851060321420412916714982487447507993763179237158313651837835514142934375683594114017520832808248908687674542299000871255190596186207007002278511542938167344713712969720961115981095255475121396464109558333550238215037327992810427982760834159059122234417370059163300573500076079739460042311051806334967885202884852948715953940223357940247140698236809415306067614926897488553066560357965448727911936925548702907480053810722849802516283678044577778083158583340529937132657068475023986250425233361835762478836619587126358855155533353680121612126857819967659850316777074645512092470680798299632002312385561424577056904315366339310032812644843361683702292187557311945269524740257938907299439110722930792961756630838234965831675792191831841254731472387293743962272811496484120134866163792229302978043821243904144391235393833963014386148379330529386654616370648945447604333212130921090068239273488826895700068331732253534941285278637260123350297961264097047449124201969531213087987282222457413752486131958872982747263040146114447425000725284287504722354045923989929371310374674185210133831317803438166486547528141481201919234824856019256705935538286455530639567868838719181534880792817859049419586211526426023429421835780898441787858690948044578027287811369203002554986075885416803516731448729830643822890824925203732257473545077794068962273248867089492245122585626320696450379391657500092196668989704384959756518066322598853248730536469197210060473219778971524347747988131325646569669048281635810584277973031445645312778593071978769401683695840053766028723529662838310665393511358817794799183902745466139816779139781720055127800221723171599523853824095141283817601458689031166192022484644943271048823432787216299720861495903667222366211369178027189767971678189887339549975992369088188386598472323477734484055741401084089606027644030176589674756111526417228879598615845967201105228322145480578861344825844483154369289883400977301527211978521979156200512415225054341766040428366009654951301087576069668125836279709905298790066171846233151838152889536026317805257560607892834212455324015945081823380727545943085240708020358232314987542113588694448006626975602947410509608743027192564324175965685159376113887115274878885258234215560476224804274120185429190525940797319221007727253655844902847341613817478292497349142220593811900794554368356351549738835892877188378684547804084525845176055397999667006346845730948194902418208778813769937695031931313486437363234570328729228457834852676704031805212565623426799076087966884040669384334670388429942189697545809578625283939263796351620968076707463998286111140849551431849108884871030345834241462361083835619599000396565432603096802940362898905458826210516667507353793920733356548322770318303183370190207808703118808555173481019054344602779828690752084448735630272993414161672630863232712948079083783511270728886221267150846974135708920870703984249582998783900684712665739486859485015749726499459888370697497162060188625366936416449666293567411749576887405031934049840613638725313137270775331227329458124196323801374993972898867852548036785407552083997823789065129973708721039651685474472337838777691107594160810079536958521813526268032510196584665027918336198368231234192778515071502437703711277493145043286110401450244149894221331150574406484697660478213331226909168364091864941012810692767806147418652448800845868761421259424443986948464901588974019579419044359678219850973376219136030432447984551087040986171059497202875378190729239004278770510726045022013093739275287898050828377628570633752836205435178201322171021747759105299059593604950327548313147661972768654271146255587006994325565651094865073761501838296394264225682123324567712745321685529803115708795130400959625084117464057949647499076408830124153782304543633768425376596498587249831334666983454526960667003797217338650939259893126184242444437422533399684356625053431472235483296063713888792521845660405209576739417891345837297611697338401182901251413840855819172144398796743773885364041144391728812617899062770937489922131049886765084291475409327111020975212204432019710018846479343525516030349350839193691252091137307696270091503366524246645488575515988842405957406131152513537628770336513993903717915171213997355051809395409138474906194469528624661372571480908368489498964733306606803759800914277130975724445929007027735069139380615745511500048707081000377984711604797117087104732803794444701086484233678294886925254961552225530026370537416953487707730089882108140881732273510092199880749777912484565399441772735109710130674062032941510196350974389866416515006119615008142190182634967727715778982413069309413040211409964122109867917034511769264165922698168987877978363162887828170237597665094671085164600772182528643715650094420071181340408792037515759136011665208042421977936954762754964075773256326125859833380423317385098277428786916577614376284329313034492169533445307173453049278736879462306918743806398001136482296298690417487088223037908067229789039690318192388648866434905080886930706731220851276491101759577526237737497574773949788154736487183217047664546480107871410858334597451968860306786152640101602603882557588526217421321414971342289603836951936985140035077509655694302532247755881295984779087749528068652451977122556043240225741689600794327022695560027348574583217341641125143438495439047835318187117359493791575976644859473760696115185096533126274667312809027175135175302456821110840509057254233552708533051616361195130620538470623523763449889172034997062739828212546896621372276781791544174008780184086174583766900608105517980710159614316739176883321290536753441902448203203685284260671111477363595240110147690875627988883227343090769907304786934161735923177920140405980258512420302390378365583449709584701780373381921974592643259507712685715676452033059000803230975261119531283103442321086432784854036565416718374699622015051414069831411827458668878130453485698460934111459176571739726980469369464388339874653743362410899860900713127517151412980496515705130787004167192204391301867481269276329276615210584800425851384912032799226722109471833538676609342081808238086450518880460888079200146852594428678616136955458648335636943525184327335619142189323466172731079168689642539290306090939431540097746571238613987762130730129688674990730912104677318264847903778741557229253867631030736543692417684127334154413303754426465919216186912525672467918753212023151066315371244238550459439681019785020933382775547873456692868531059262776679558226836721329553313809091798986013445219174688971676471587291137103904680761408493513699748432639578766377563970412589022930851997061397865145934842822863602982777093574013164532309678088074527846744908111542010132290753145921504610126489161694939815658037764228132571107135908608681015263866321054586942473144038416773033644790867299871856907172844595149783137989976657190698698118683038947533089465893508013914261179182582342887982425786095270941037593410101624635364257201945324669143284445976355213180334145897255452293682875374387948529780856408316776897384921594848931496279209964640921649628674717545395997656267114638759008289919381578912083968345141080615305798937215115679204144249171456033072654969773983681383075149438673179524336698067451412913193122086494371025883536358296409080914789841093927847167560303671937849650495189156094108654745910717366857807162860604409103934533973058311669270842909468259758616211182791137149028640516200071944104557062857536221832152946956684238746113910300618367979943865830338018302154553980169797725672446692384133511654107866242346599788833825252224507415294312495412375607643690862820248958883332491532618565215757932948945101154101742232419840378480049786186510514811224027316315826002948605924036168825375713486481896545457651767116866942533546593365527257312083172094273075861835084255197899554489021791668327738726121482464715308414375024102366815400402611680262218149555386081040823923559734413573117709945961502622934959088326358925741405071883091286636961073457046492301379003996865249971633601291495415339248930824709241167184118453137218397211522629713905116715965608541238814427646664897747238990734694474106150629527009211556834521628230509136318656258440433797311427510700261540711948224717309785236828956830046602979412554877849073028401753939062750591696098161200905286349071751852428825172271289138692883081243008847665719379221083871997044918409415842089029512849277539453584514959472875742860121631291557996011199614924645490222176781316111061611828202185436248563065608966501501142801583512353037839105435208681545848069127405214223358488943135694432559288484869050607375235049136745787765505857700436068610826986220179917081742990808705645706175919862471519046293907759391898551084898333870369506532654792270799592705909882435564101644843504080352738117580792206363948292077059620837202603085577909964572686599218967568074395352739931507924524234833043796912493150793037192229783277149940353517055658231644179735458938262612917763702633767948382792879014338212589131483738545312812562536375126870786221290662164119948888853840561596167778732508268287457417858721342225945403522331885632192212668234225250524455686533575817659237591943287508437871998921763096804100718552992753856487744439079452038332031964336225785518501634501527503999678245473153930671624644426016974938399337884466470525784242428005303971629163865666461345282009560336766690982243895923875823475789069631914732437570805287706048288305938994064220987328691756935553104549237189473937056253563044278647366398016273585861535739906525926030418492841272565625034692537176365431979902300548339729281720393074078542918718881008826432298578400165512978232584441609441848500885237519602822905061607355139114800351243665165758238929964525126083525525579293136369997293228557291775911384939958709527676112964860089139880713389862488541979115240692824714328134958398681891091564726237832118634869848343893584937744254666253075655298901703649743178876803820265742614254017438076424099969630468766706091827904287406049426951438163076433946352999479906870521195023291337678903717391202763333621775842575348515566033252656235227870897946124859068139893051204044323107707544790943290444882716988619689551384515644582903779576559681270514150944271052912710222192988502955465323697707136511919015378800917617048218371080217685619008918814028789610685598756149245390235833777155499598982980480119964788773216321258115112339562380538485098230257075275083173326297768583361152934004024266225270496727353926389836640032777610258374088831191074449876660320220652736191443136285766381865973470564837129382570421195692962393710268530531242506342046029606947252093995303357492781589967145434510442766630713981605170132581528340745163429775629433961004872089853709674723423176932157060673587686059166550929404609111142687653788008924769373090517544985752908259230325050543339933835629726339663814452118391797801030819338599742321701583999335937708416839183589398303838225761294796336452014326357534493542287242729406778098706502726406759313089364768465319318585031960657381404725149523950761044802459550930524009733643957901072527206465857384498476977390804566751227602913553928757088250407019684109413094207421089013026311737222573253865353965343587236514234263060997945525762193926317679672347388706590206820718463891210497318937559768622158627163494974634899828077396797785185972210350019031494113128641227218424906262603745482631439858788805761632684983764462190790833661814057102021374455606192247686264811119137864943826456835253503494179366232025649346910556225104944536639023531617402478232872188527009807876465396934624132678194840830430675317261847066095313267155897534401770839080276458413672410678381541258639899461397270419032606236383246784975528119349518323033040974153521565460403875938957636111787698033153579326120156917349408938219644298419602385989280134586439213956757923253619487958109491316073724499605407544142233869882006539292208549692950820855945950730125251688256243036636581250220431241298668195344164780459468255113198015230002258046665814226683000638211641812247035300701391114413233044818897055946381847475790276714155187945920618805987148013924424551927876031694730665377361535231159661684375418259323769522921294270617454938930218903060535469330579425036820904395044967906920839663613158139156975232962166513387352231016614429507941264135287493209315323761069835185466381948214159959944935925652884347062397281085901019114913704319486856636883942947018834263538864527120829990398078158186141016054680485376369705747528162675178749680232078803481552412094991743883088120363378089810435776590793834667445202573524744021194740882199894180263402092121926308580493496302762762528702640946062737687125248634320910243178815275742292071789894366833616662422414037803358316115657783906726164567763457147623816872739221630819973316475653205633924914610400008645462247208462949424432249934915392799458060431281753165729896779930052311704942771319557789325370335448914235686641474837721658804225185399614267358424544783566085498358559187159301325407631748024253234536263227317365267051433704524516943857505310395873959180882668834696200253608738338968327447910341223437543802746937614736832937590045226329368001830598303989381417246296090643169843722704916347382007630092627067001814897560678150895691049465522183724302198465919320462413217609048681032715496029100791933524247071038894653106891783825358227604189242223868248446285620804385392112643651167142936009116207861092657262401749763396541205074701052655354653482796922987993773333527312366195404768681240540283598277082337744506899925798483402592415481698456343300074795578908209613587387903595205895572158869085726109740205029858578390422439490538427485806293669551102225551775756626956354406659788716589591269278507432829387801718327008657729593495205032880174304312906549140646180675413366376917558773744910142807026478851144803634124661185482259941700809430641826506253397321373771896397078892058646097878486080086136118004782428851452787656000183728533891609872356299617160226371803333725901101042503117947898498687021919278189663278858389864625445860093423506405224516373999131113796875929028523789862061654151844308457132454700635844590910053065579984337270779793035759600471898522354340687112806649536513984059134719180939087020198271313937929332510638007622941962467140654591676280805696009053380575593465368084910559263322006726611864458840675169903215106255134502392619340294839373889852431830497245976778600688875775507587812117898921991710395110423973834223339253019673680679629830072153696096505429040640853102652366625913780380933165610465811534004442641231306293429973985017742409383734289863307145589746877122010400819393307223347276837812285119917593470233213002430670046631772146012765534541482069985983547440901981132111882235338679999930821949990556440956832449799758819714634008142811572172013160500596413327294684369554391300220066203605387825754797908919301100169180539911058300701986803348695406490471183079509031508613123037944576255122581212608744644835120959973585447734051230559992702692870545590398423932080591586969591983418752189953841624400723263717069612767878471501745483619584280394075877847542917969592662623942603182645534004198647981141118569985085408254466810293518611794439567679668829327451631314319998907182695199604599841470762144817930218168482395212449976344452790917474450897287774120009268874741780970771815649782648442356526509188772853449336029593219621077905509847249962142972953461719888516581699842903386718968883896563845327079944908567950893435764401694338853008290671870698959013409959973277258637393869399976042725455493005293330854367148596772828100016714361456379780115590866313279232823836712728520394655893809577438251881358783466550489825060327263746042231063044661479470746466121320273130399053223363611841611593264801813630051307797065033165896426641711753125099214416002417015095087382335491137952706233034243163606289288488441861280025422182318412919655004167439837689780604537053409769875782510479463315820478908178816251055653837411473118276411714099762544513127632773672091486941145580721097403340454079733848632810951888508621606360191987946306699149122984454143413092128499127290947307841863201641805087974665046357149006479537259211040279382211129068607272132611210519290843883436516450822204813219997136119757116127869003360487546107498762331856717769981586142057957097385643918226853642435045323355368982652368377655369863939556863194296787971392304820778480063068279809946188808439116525530030647488748832480725400800894052631528035523047674852394806977419450728329055690626731213147876056154501909913277891207590926507142412492698656215931277454880205622461596251353645003872490236412672385818587587617901527779760724281996734023378205569631704563464200692388919067472531788641906495723781966929633916845249205437360670264079096870607749539883249488992658577274893461791949283300451060230059136743289062543479656789930767764932185804852575330362423319460498773990550574268868046872578398109207514613167096539907632624229299397536636509087344968959052848913454787862580840204227997692947533874239529585860128125384807708317972054947331671142161202601364970998714458953970540316327721699251333820335715398047983121468271087318709390999768874815767644806546460101838981990054573705486106662503320782387454918008068865999921940425969610700164640490297988130455828128797311668660478900237196865980885662620468591527276024100065579326588846387766749071919915340159739110871754717903726764070751175993531599040123226634369006114208132181954808362551948366045526903066283475127618435564687026162323438429140989539711221634327029289205695065980286526211663132343586219365100644240633707114695066012208709290433392727523143922314730677513376309682558809224251606437864841496852158541344680807403348898146894308768459852978025340326281833795918215900355085512703258770802124181704694136227869952664106985903463682856690994679586553402243567583368312251557832931511314556909774310077221660810735831016450054061227256837557302641097595282087103822158629989891246175018617686402285818642639655862284764952557892527193484471916838253033470359418057658875810254398463487862241028669874995584673722370862727682475439230095064044200633136587884248778435268346022199947065612324914217937046267250133032107808125009729605259427697739638933142313378125634570155701651382637639264904753321065464639531969780491337905109146949952211273574265871036603373532152361100001588234439295738061575302372024104009544142306971099097331035278945274164707501429227462426954307045764374822265614959530676951261414812194034126785150137001806410300267615331788877521189216111054477059073552545248223491490467738686396553620097478151275187594716034774898957680548588393553862169022929954492003443243307707814777142565667367448291739343312638399631475615840603418770673694523334496468349519766460910151530622130269988740654790668749977574492181172737043314876442885258038872531640496816951729413871301580714147055675609504927178844339787861894112551058824332483811171622957490524564978093618351007882608342888253663114361055156794665431274324126312345380962838462574547243907492168392454175379981238137484217653534033208409980532940200211300503239491574411329990868842701845507033431936477312945482257288500856511316362227055883738527440196785114919021191023046917718728904387609127034874150240931339861468765405941999950077301534824630689685511220155821537740372558143104375169401633512671327078218354954174410758211451800010335329636026898814041418583782724372068043812267140013316323889453948667411270346283320562715351603189533236223455264144347676022306759162904518950480290998418625417765141794533530668096174753070037674453137569522753445413571869334922015472863472134874453703640983287169491550627640095115651362349628859476215510700506201536472474198593413258442937955149992531704046786249690551928220849324726559646466141047345289745843057883741389985822489352008340324770177325967955088776709867514880759518787220863633359765800543822014937255444939140402332222116775128589073837567975900067124244860762763984371558082997299139945373551376957646233849111213014050007746753877816439889391639529270088535559298024205555242144691988920390768625585271499574570292737657346981180482844836926907869482163864818486387867641633129607388466274499483842953895068195223461332656129691193908926903551652827420911132209652864883451136661261367047573656580418456679802120614167701990536841372029719162541238619425756171687236762095904323384666851028529651265127016062732746280291412265529880147138657419204081468828245020648849841475794572498131314578471881829930299600263040349352914140280201453627512525549926131385217614710004829582841223041202288919753528145972954089732628046977715484700161108029548248836602646683913533187794258694054368848787781732537036343574948276762067122578913786182107090614220597061278059502625929892712097036604090687399516396334527818605023973516660268813901309146754470702955242903904249664009543628771086548867554169271867044911191646644448540717990978462760752651135377707876194142972315592918830121370682548803457598063412432693050531807702082939475897380540601076271353221165835341374902347208008461630819057814812593374020551209776800536024238075014573723195798563544807324750668610802096390154823934836246273963905445783791263834520565566063024244490056736816634327231120622487649960163749814798445511979127031708353316746414453441364764245112844448379578354268199553098170854312306459784188421755820041910024157768141574618695073747719791344449820390632329478920709922686758726753535919577078078100938508291452080427328133734595138051017735993889684672037481887159569490017167846777967366479788133326772589756399008835703222239641731521725473709816484649509180684269457086442585439218071503673007228744011362637705373347872443324010562048881375086426261835001836497594814696329456686936751836978790639365808045658575965582470094469900217513196714592669365479026000368591075213260541953087525944241676961251690983682219362165751287138026784147471616219397407763359361961305599366775052596266784513481099584523889942101991077255204464760192176676305942822411891060446752420461202881712076076820598254777013893060843341552130096297095419576689097798911175344012559151533303674965996135690293942001535634137755438826347671953642462890377327839188820498428278853959083894807406878265471918650514578839045055689581467978706008628721393824684797276641386723924808917988877572564963929084393159220118990936130767576614614691059079098270260180820545749373202516359558969612610729362418436604095009335520689491043105253527422172326580056129351197490590046877765978733847410600368003436629836340449455312052987058279214717953712871497478790256407789914197212665475427393732172755510071761386909334960168400923564608440568735813759051955434958692878959475577107006747557595487171383500419853665987578059186343040599898780849271198843341344767482122984965284951805250458640144556838459889616452789573267739776570102074104301313470717368596780250096408613733758552292363576349497018625247891705236539793476858175469310397497560882284502820183589161689573009907028553561318526854677515324217433854910411659452383103905102482976655264293880926677293946499448286684501250790021180551979449229921748066859123948598997891020913144487804756754477032286782149634702174681257108817203207220580863187751536471864445657421148609917436300766240665543314260137896427892100682402632173273076446488078246785576238415229119221482020769048620222078139104709072847332375579276934762429012226212489298405906309872913330335326533332005367946529053262230715045309961768970213234272392873960115530794447607765766477044437311583654658735432386333921326771497473848433806309012348720931859023708298503123915839963419326416400018687784746592989872436796589889381228806542127181006926536792726803203878696421908941731617436248755977670341105809155781499250777387439810489439370870567780053882875511279849214987575780272278133764814435326363464417410587586731469446895644656869644154215119303906617285280048144611531529309489004173383025892202914045507462270298170666203471364187222351147183847587048932622298070517125593148231322288580413560054023835942702206657964416854126036392883960194696164048349470680267824828964741310935718528712575921754166821407807081916386361622745520994859771704615864890386261579660384773391955673616414198064531492039809352476661604261726856373574806980536114488209551390841623059901033987643967673395575010708742660953003983004792013127658879837610047758775585053408829767951736508456280648767411518384688076683383296978626766726427092882037866531340531042401259516804257439767539477473883242719234310143241854887136488847371782858909580479881384616629022099716967377565105241164458284276748457122494825554018498412958553686305190367005395810608417553812916540758051293944691628499064262730893855685521313658798581911179175560354734541556974609121183754572162086413144683580666474594027225799215195976682047545561049425984770352625243627411682484011884436452035568837705511138882412804861752126736039499779499958011861200012151894687300130431870188557455026040575505583411026363153584014526243422294223295717635843007300387486102394236130530080726014556795229957351182843755922114818509975393910941529733541906279784342430447999625493650426660662523733248663477832022341717442235196062592434368907795093779845651075858925293357809945076586789015979806467219988205220385054561884307271301811964110619852996021499604654818724120696231490723886075146029870369142059792929894021852530838402873302381988778462446549124578140250162179074697889762925222242571828810646520500003437298117065550989183854586732282836163156383288967991706395649195757267117588744360553394072324876626192348068450183326412413971110154280470688585192121535193486601993421103007042717000849370932677390723762879429236561421508917755834196228199278699840979438328828920811863951085691603083824284155427858859118639883613621716564194240144667614808548636185062978677429561447977546440894241884565433433164066191644348494887023173091791666355720682988214543659788369461536212581588726356951048605424707360715860557346509641991282183861969590916015178567178936934301571656349875028635960012094849637761699396505765833259881563946663289687998299444567502447460903817607161576211253294383715220170565174560362885844916783695791049835609693184083671572261697209102204428104295355396757589642093768246623199361797457454262842472515962664948909518053197818477488841311002302658081377715769534194442927803497182476094280988803252904238196390579858561240135758115301607329603393401069884142361441809286313039422592058845017642509558179944796789788452347821989388265668829764065243395591543390729107396576584780259416195422072826400382648703813824722608914210883167160063530809117066067446843318879058859859424725219236558305098760922986981443618867604379581110036248133223953811504769357317859631305074174199886484815542302992974499722346429208778442599284093555381992713605053043995046449818427367929921605559704400630913700291284978036353618640717905571980646212149258800944032858855617901657813743221498913544885700570879304512564656022903542132164961961898541111050407532673983874604622856616542346714951784975491716971956369913035414231211180011238767893397494302594617285381107790160399340214266764564812689729345042036079636023313445700751011523585475876188221098356999168110931963930005826014616555709653221488519351675869031861090549240749681206996271259808626996075986564144049576511997840317750546122890117813157554929132475323332994647817054567306265252077003055695945680438102363132997478351326916830321570091639865117199958748233269930015579098360897681291700472579510773858723811511855661747400053195406969732454228857015444032434441137035227045353533938659303177394671847702937456241262560242654109406038697309692238538705385234331157097941754362771518987341980291143028802431989281690403040119140988380481483746314703693675848953432286295181066077894497177148144194120490348877047353198176518596042484532106963905507953797616940481560772698453327673488164689659599225999356881999034589240570373215233974203583853100943243811414073266909677453105142267520429545084164872994198890038265015855048510990683664019519036831871151819864581541242051025068603597506140693890529758582384357706996206062773708536262453356196121165542774748191332558342584698072275699039056567207229249075956144816519701423879569255452469007898941125434525531108361476610416349975170272225636175643239360937634431556605158969641978691492803342300816100845376754504774214060477795983255912546777256924179372729394503488089445773923714032426801025660418112804972889561807885308015906905289015672823481488490795817139171321541643028201298521719053765624408360008537123985642944017564001869384149942193535618148269230176431077487638751653781112648194139057659233430300894954812195509057111354197430725251440976493506297058173134541228219164101606299602165707559951955551429121108622282306592029748367705194151810935766575607969314565204665183887207123630398281522591543293984195335836107252237783000133945560302704903001666552531337454525771292086814423551871370097744467736689332640138652695285549258179442050552072073988685538489187123445954301256614278067041500335037586827079350469841719453518186451517418664934761690527522717963775496135904320810388913226709829905065162507056621239906190097054383831908075180308871644978805474815112980201947035652586699474779332665276955928139463384112553582772143967879280281173989380385636146822948008909765704940849200870636959864350605226937336251811751505935226593911534195645442458513946754791998255977472880223837694810491541606117572831269177628968801918339813785032798688694485872441089700022281633833076842482630721323633511767913581274333786654582803051362909656600905851706011747767560654377665836360567640445628964758500933249770612051523611224764256145232269293508277336743732520247194178121839379443098019223971222391602988985016112719920592262211782187956132918144292817463551291691135762128974937301811569809322065144573180127881823194713427766975175266131493222842892449852430442054832816584872867839543537754976172935066393231320576689635178272766982696199812327515100645464494935786834641351989677588686911886322450783543769171086686665183482278337569889068560035427633315210211639411611701280437017493852453802413922900003573058516224778667044432513757321491794941729748315256618495544838982179252419166172554587558026901179527253632915680743268684996912866110332232015962230024249872222604306163916252829948597845264989768287335646312324619957112089120315211519572026101425660525266089684307387354214008499686994473552526963574699034509000109091555111985503971155528246361667318323576045414743397916211456471465943102047484047402177990024838817608079212151253777459615999639644030689711200851924134681265209925342399723317264888401313355846522575200043337002644419001104801866486034593183920954980529933546976209616378812692321864605843160497749769347485826519530126690466565555597783171393256437569583943415334637535458944604947681847423397998858582044281588188908788400660963787407987103531482920413829426723221965545689675091455325766641947862557442650424431335399472859123190511267691604606898775204617840180743643560125940053093394620440329827003524837962347407014720616301129329402476012654170178594022640078126463127181919363944346523020011265046144548554085296143171835738801687523143719524692934678868747680258310598515963444353352132405288538394600054848759103156129521412420942755787240876826607626922239755955133765076296294137070204925113059502206594674918301116716780526540664141754058953390442109696656744465048993007288171127342177676816800050172645697064830289308290324093709116742412964023708320433666012297475749230169339288007776998729305495722977254668460670978327196607229168074490522441284802443583521155929470619716203713151679870002263001955676668410550145142451352371176268746731286638790481646236112210877094780754334618262494684832235468367487170864149326315348979303310757343449943146388416039467892950533486413471307969732195328041578082244724238460082636509580912529222470980271378092431745385564649122803906220982946254427131307815000869326297172548541766757470909578930186840138549660938646657663768771924272709548919696881681454812975814645825080755372442627205237942173818071919396108817954524889924051294636273752706379718685977918511559895445611723330741436407421102420489710395683831557833251324954684876034096047602326792922972991989977129948438065955818456209275563803327761503589904373320381043396701186568644507441563395142663710498015148003071281949867748138607790344938081395783408472735116511542671312626070277922627137795680013795791877795484803657121410621381902796194927370161826827031374258550651546240352102459943423168540736022233771705798180070582028444971716498415479874467563009730184523423304244905340837064934211125807419731226764157336879877075794525626844367437192958680876357290809197300694249764331931000232101805930206549506639269823866525357320169789275339492189074050673685013567244890300795056060446695078634937262292624978277984363866402458611943110232149175559030028912412299373121059303459114005139884863668612563712624646755482206840839975612672814003017544850067049417550323750872226306279330294875247004987553103698694103555746447175248474382945558512408616650344621953741732094973113989893072185604704438525106405074714346213785135271535441674125035324586385473264541500686642473313021360445418574175690088667213680331677322289599092398232457294685559161090465871977369905527246977071056667659825889249331954781610206140172225725515396321511519517888102735660760403692971342071560968581013165169267407638954606629166790579239399587772689761385899601290298124041849851708528372250166577366869024109641644368685612683980416871149971006716122335708373439194313679187786364688483999163973314743520206139225838272416102366202805859024276436596595290115839153158046114616916152212868456889990543951530852284969675601599896032701151061809089959794096042861114066552137834157403396800869877563152273352683419095577530930705991101411351948078789438888850119610702865950353651742792839647929236042770042554588612957156433522203069735944329054623723128598589106275838494544618604423204948237310219726459021134012161058221715111137534895991135902770163459236667396348062599744652041044032105442579829832286596047776934454882581830498478448227235031959406965214435285993939067739369589257345966975943586815702786207330691906400617124338088484299340820462963523910978529599394673978542813256522003462757395629993340362854025637707112470901819352406134590117631208825081568784417944545411178878270279765911660565478665157097905722574754508306006155660195609286599222000889969762028017050060472914624408854401560895799115455445400775682532365993378193942257749787672368737977237059709578464163518729016999950824671614360974533322100603480229028939781855374653096021405013127603797610216764344034975163660307568600295514149583131222010996737048556884711525789117835935124113529096230895950617127683969620041533375638479171557930880892149757050125960943651164936660994896241752596726389960796989186570515392337036599318283213406237283437036522042237580395241709134034328515889897982350944316290466588152449907849944358120057089810243988162280555864277620239129631046762509460542307845920207910617715847627906027517758221522813186336567839025418888502209153461523784816401140775309548819145112784748273546705604451492722780965505120736361790080272027942457397167260429499642363527222846779669527587444841243677847807331349488724969603720992405065425239135313991663872678980719367579009581370329393834029867103752680978151586899451288626129335562561982845430064390363761731569704428510066755115876083797090056852473590156989581571858621578560216748136350385105389279217466814827036223911631999205270525215862461937343661277543217913857283710369450268104213324118959661073614594419597977517829882739408464214585321858324891874945642829148777750685581535370859970043801430575140532215628670436618951039123897952451634129620452166800745425217233942649499154393871468870540088624809275694592538898731768394347378122191646332143371364275457511516859625178017544187298017785259662257835849654284647111838071372870746135229724260887831319169504862394867967563733350518158855390222921788317931954895189177249414143679687896957948569886271663529808294509665254614875004780076083197732936606280751273880811138910443582540382432856688401141190791968711403727373830388794448786722178201818168849537491957003295576447452953022493102181419493731551310887085695222391210048380314387015284145522095690386722003376719333248379547311892334600068101498731302844840509758163353734214660538934398323964885850483956339556873860308563124731546230198065748105909339606225233930194895714031950687839290371811842337606838172345835861050167706687386283181460488347475687996255164555393503550474794962408716443166768902159116661408181315660531631566211564500784980491982073659006148957611704747768593604177104045472306239648041279331668818171936539229400245292402320761589815371494435151491653047044437114906380353411349530736650026287687194498279835914321198892371653433198418699829769274703444090537339056336768735565540780753183920132127748002738656572183014380952989186840122116632816237783975928667242474520512388232216593327347695346732006804183067865584578102233345599998987675408103257210843739660863010702603148519663505684508718846437711593858007507319781711009225019957649142187020016598615237210286696782429445324513238516321779214846130024733537877272018859328064516371800623549135746886042524036665067177439174802428841915276127881987674695697346714033796928059610337957197286602564662925819440323250181741051792997462401056170039023263955449804171882956628725220729030511169872123899953252990706063074199369121034479575060236526673634501134141890651744633526304443418262392329609356030906080956804986342715316163600200831546249975271624432370955327508295906441212355267266507647126729858248391779370027546988346446571914343204143820403669708656230584025870901513924255409620980297047979164331245016905049876027497192481555225718231488242221851144526235847169511960149292434465701742166442563797427918017836198117044859841448706457952157519990536022633076712062963925353819807284992037443820465622010388652583247866256025892994814511856228855876856726132728156199507488581105760504293212057161538279089807721393607482915323691224902720248365301863468853893667385393041063368152593773442761009363512535729093025677210458710750716938238221290826614422534284096282849629023594651997854814902424809426545893773391987593724083584039156986909950011779741605591521700416608632445098807736490130640908907974993255886495363408801724691365201996316643118313301912057949495996553070927575951713087365823370846485900645675165773026512125075128155374716510471237278296837980172605487353409943153187091341846570957319688382192101242169168902095506220073870806235688777367397089612676489296651422617108782848336355877640383193025008705285064753988735210525622473186059693873226642542262370009760559160589143980410739903086342418254877670868215258149437333120116310765491142525930823715568197202910607478762940564169566814785697833937486951080223004642764129773430109377628040086323219214038874921876377376010720229331231717733325836939764421502332817950309755817004035303394453317673438652869854742228097325137372788374774537971154899778266411335988548177130283472665745112491944213214437324388174543220010546474045792243242856446692484881389302487656120006046152713455156865840164017738728763664713050060748052738872214975310816236554269958989072136995915930616921968655991868037448260177106276890067044007673846143375356499260127215045722545390806658773554054922496675125566829274400661721446128929808095007434426760949674093402175120252347414305131597721020782856476780001267857855260686840512967131668205223919210594848542434455615680994276783398707632029332074798546351759132005500506686823879335336107315604093000078058371909455696212787575793256100220872146244844667934677222249765593678253766346465629036365944114318085917187489714096046215781216147590603250474903827989321449855302897830483412453034106576254914292464526882599424744862931171385395734530457298039050546530259144266582485550092245193372362746632641507728108770480216448980541665679532473054246174862588433953681092388800224489814205249682065001409729495878138139766329450066042513858800182078037879946654626294506230585098203842673816740917519313698761595823850426259955192157834912278292554873759933810745561824528801641140747108182418202345831675418665657743384594183136276709634955069192940200363872307926911116897355499984105090101788310511277316268298224215430880132111322746766386585446562843697305184493969788886010703070918811274812756671308854659055766779126320833460018280332147315985732115297623881806063340129010018418669471140000319192297608641012308054503937025177392715035422321100498364149660065201924340698643516105902911474346376988775566178164657830721317974113506928811715109523044401781125761497390246212279492423064490531301670124878842493809243637293490717444861183770930460604579911050016157556799259409624257403635807780970179548046297896500170814567598567980971091816806986697638664533345537624890171484340633694937564598297922311254290899122422954182655976855726045965946122531363086326193104703577018524399382297609250687505607292636152280390742943548771016237327642736966687269832307764357250181725267533272586826630878845307497141746615554577353280781425982614891382550448086306682852296518852777648131512795574239765020983247609583645386388323621875111572214820450344954457577434018170066011648296943251692269271786980351228912950324957161833176004034242239101575125393634108201150582051868095435059636597007564002770115232477563661789917425388225747954314990780467354279432101017671423575715329331717127918555513070668082458638259731746958583416066691422696506050363758955530579413584437449985812831296526207059665605031636302734194398598118981207561460391935882560515534806653664252670194875388909494593219701670487109298766828893787952686523165002488640435227837517690120331463030746078038299056575941444101889947704024579799358601250752852788191546918708801457215781241318640324495852426987604206778783465145517424017547766434424380013484904005380997767655270844372571232067287257077976396230742324310751818392006015536448926078155136171577133712712202105273169892336437206516871109857007050949094886531089670894717295498522050632565004818070156054284824393237070855539582394237464357763645127096848985841014258798445201891804968060360550296259454848533312433105667982542565569078126838412411709488940653377650994081873897529597085131405338689370229544036048528208951352582100531655505022329767355913746967057899515603618295791166625982810505310419596699909411882894380903197586233540839773412137247579047646267247624397199817673062067673057521919302182510914658093230632036843230803542118974262128800353611236432996066112360579947118520022131075741528826724234547816209428815576401188363502145634625154335261431272062838919000216511789549201342944594357644811555924444167265811058374590405622466663604060001258412236163039607954297871856364945444958863439532553966809303248884084725658501272734593402357595565653685695673452624755393905667642484229847218803190563727066256046541003611893917531503676128184592389118362270743565869565115209934877054076808113983262839434808174821950249344087925863055448843264360769756715421989499561892449694308335122509708127445715316233757272111948510937430204055971026349354520337332780734675713227120355479113862817738759526106464302922302597797260369443631811823061695686369913206814147243892267825749417287603425565735368127731596167723765830812300011061745810696208540782790297776568240343376040184069550631497972574120266701506459227995280814419268706036378182802118236351238465667588134132613688625782827106451564541750082020028862999567659243284638261414549137725738177866388740301977654073302681061845819543515523684995289864454250781691217325871768767272482299714966729805175065846142732674815153816900219202786710026875045796681748007772590398683037866443088354970096253658317881849579983648535909126772365709991140487973019720920108487505836820909300837268066453215818404316683074790403049513284047270307559431242340335922467564960429826675531132898742967217257891023641506570337693615896141714469975746446491062252666515280682795212889037258000257558881941436268142541536847472482081194644159152737029278874494968396495780440482470198073536252311948536235485872874229280331496357974995739595555386576047377561476233106403909146626825850181483027669749220723064767041791973813074362688198663934218230498852135637388389252206635948522606889911952530914705339342782236072410322074128443602910696810360762196022555967818873285305957751099164682783316436775261270920251977196188479100159332579183310248355945995398868329435114874474234062902238512721625562570732834281089356358478242020570044170762854089278923489969709778072822489095853290315669258151381750615015990008853354685464011285571741067632091269418417928060481372162548098993099609458432409782604988714172564200454963186799431972780975329737126140608956443155962869366475178295992812917503330627306808033991333073616134650500940884483616204010488611833989266706702063566690520971912891112209046250301193341926032565083761061075025827189493243259016694571444497836580282426788432858204999660740422293910489455110082610063524009682379298372438564197444499395270165124532366457496509165266781776759975958738506820498232412999739102711657450582384862670362877256440827474554670156338763006556604047096199577092430443259150465995463460165542283519647208197096480035317926503751035159192390053957834922684139613070451160561601428870121429912917517702877576249339050347724072617034749120677221283403083663759651007325644472549395497759649458602729784774122454220995534324571772730785551623135732620468693401355123172355888470590514401864152593941958381161612340824206378516256553989127817800379432722934266781244320004361068342172099932800145850084936580212335623594167771075840504846721282042891936081182797412641464788810469215307902811487183721118904649945255175082347392244689435847258227584352082431251226679019641740259817533076196811783612644148840086674835968022227942158696219022939106086983818407461858286466826128384272363031883184131081864679801294790558182906002711343521024094785097553696769914143863131331766959727451943619102399055879172365079937213376399617414874679775354029016178260061678099558126436032287866391243961338137911560804785958404265927415615147670079847583633012169015959780141009030966170038099554830623299587776431073604729752800967566630747304701099493469979730388194778268944966599808534682766914964544914399872054092960075576029339632668905289854632692509852672770650079630777845870827743097240858369816396755860894440856285122778531727821996375445803128387362762722711630523176790733873207467195404856083923132833741086625214646858315650621549699103009194858538437328000728901121795913110478463570778791309661005073214274703305840394832270017891400432678207554259404341891666543840912028163642454438425912707926101044271204426046693978145655329600251303870328606218926951509302959674127094660861336346251478473937655879710529940624194163184694344080739303136337478238284150803143327366915963738835906255865503608260749296482261149696795290076435011772047950506886377446999711896893310419822149514344650245910283206320235392684427592708127223642043542090643848400803908851705158453962247266209073574195532147590112633203782256813497128143734658035246955387174587695335872557274663409174246731744899725413172891674466570735607354080978883940434791394532247902321025764537711070249624697378878012288977929959307497427196693720537426326691300486238175251876144694614424996674992614742899849524785688411044786538213260506388271579412477292548370666640133551301048425328653325230856513728723695317216710627729572582434946536654203315301586125739455897503499148439010569257462151288873361309428963267186198300115095067744082438587178058291740651433785902098953230903707385029398942679162158163495727550683759318027651851980505575549740831950737298659705456639645428650980451227800051506549905971403830801474119108987945720842271533743362812052525294696270692651997309320319979244593187699948476679645701051116317608917167486598745160751275341374216038426962816251719538500763773014219678638901092758185701175707475643854891792440813410951246311382961161875034622150447218627720063223048402532618464984562831671489584664422820401864773665990728349107571136387243586915302129334926839358118028935730613764400040296642465229911846922856826552369100209875841202934635141954462212120562336721549446028324062430337690549793113530988601850820210930903867843791972869337859991067924871218666406011890905902067059765891404342755726651943899730437349780088077283911918569205414647149527827888390864670374320924249579125110457582156778643341137579546730421534665759377700555593020488265718275093724997716143094788993450446132878958569817635054295930773365316770784346096030117219068492334823279880356344782097631707565587771556061649939814721491269297002981897870420391351140091067545397859538826897909390932475386734337296156532763000456110415689905379296500326209813093451570935202433645460278574535116975019168420413050506726864690534316070114250984877297882791404515574786125283737383658159381148612904867340758648685467663118186885821176469110938779953697621704634470675202804790171069872575326927162475169410727958309126651591077254256408751038793685521736724086513552593083379491307884713500918628474709273089247693365447608351163496397263879102616006497599203540384456721452161956768733901709396138902590572523259028738781518955418791389668576382619029099299098960749752821042780351511165159960416418576164422169606624979790735324334993526932519904062009335061328305922466866478641275832562968264820582677297803842907453563414932547419162412877184469744871527746097175541695866817204335757746659228493384921101551795733777164357296003673554176975480092922464943372355627437552550455328371498611230740296712697488248801943231571561016024023169188876569619882283283810239265441833590467599254332365025705509792737796677210433810396784171183195790864052001586193872743015603389885932809720381969787517021625757800802677203636133162500709330373835003112862792587280793445935141021062472712080552365408324565012796684945713360317941901214567803289486316219090290686369513140851423696486074802165590128709191540620195896200321470549328395175660476056514580471054412460196516519073950216552466820818204601196871587229294471070817901284837125384297545582282317268988785694900770560223724861798651491126224721735492685476835838828409476895489889434319264970266780523000451835695423415287203655462366898932556702862310524784701903085445145232199679537788385074224372517435262495738631842186040791493974088732416415630936287433298138584054579292603884837792009925407152270099212801200976611939913389588356261042722426708790284126068507612690196005622247959298945348441869641869827846891254358468302108032141159305313865929495361752452825777999262860990395233559809861021498182728266768135005416826478894977093501913435755528118419678406972398263542979967866170380838187401832509684199441978008402036858857522338511606834807248152642019581186223125366098844771048158215390473510450089156390396975978791333626252730832046148395656257758818053274225549169029151199548203104947784510631150586234991892128065646822826343615274199902144541518666842345491173555356031588040810709120427973738330791557622781261035744149858334841990225194367545267142589268554290995822414346942209625351907414338103573731904151134201343814367353669381111714243787782778574200259016078956149341626994828393311885333387390270017250744205826885637755836312869388612353531327839072480305032371551617424871564047851891742654191297439615174280049443103060847088411287751968010354728356859591221497702692644891087598863941245067184700552871375492595178384334081080238527452127988715032621829447107587350810565096434203384008914093945051791514212886357269061101093006110198541968532409933961787289732735137060031718339643022550753223753667750234400329158430504468064711909831997367175688909424592505002570112096823365127347176519665904210169246519527001508114153238667168268146765563896059434383582570548399276478041709392778444746292807647159016674862755437078136654661290580946222630645429585448510833908847724566522906271976410352750296737156062305783017752856541134439414700329136792988832497537471458089472440453187402479011264073778887047544871737283468939236260421227454563850324845954046036496083520696264498991203195996910318388224971795101259847202912403507195820829045339015770451561871669048880860479298994253026996188108805037271833743231802214954226171868268586451898312406895583785470214367653064185027670863570523537179848148611236834341408168667185142696000311909131482605226034242969802250406775211678059268129498796351784537581498599470817344609347688321932887885620982721268840702054326268637700597968891108027405204240603579988745589371005435387916714333876949019221468081135264220050067067382693460454861984541071982691452733567958362655207339469263605761738881958594499512362570666789130082058761112955623788368241037792856461992269747812798918204688200021535217319704185731619072650726099180903568810936371825488005617169153368323271489016245873871192823756689928750334853591889306803088979037566543827963846953137883657057605267576283668316806151483982386742469286158150826042980429782448506859751987188351055563420665757448956086746181709592800778380009679831668442801796068573277808267161273357442367590606290894109049575108734058701785937207100524712305910365981334295200287948975824338159238984741806868741831659467855847590947985212822040957139916835224120777450747541460139374497257955663515907297537750917164629513385496760921084932653677042837610624550988789089158194462194586696008103382482329649994960144110081615565860312718121529936948423509735220146654119377802522735948146513054515731723323335603923035664964193726919222596739558243333498107502505228977700645317265326270476180222113554813233430706508199895001323284531594277209634529133154968426083141099664001116279045876153499722502843639644390990883120214439455727749661323861406631020846325658957546007450426612464216480910722867665934932565374449679490559479919010095980337880941588630258580701691892405255513137759862338508103618132558618020173073800082278432168594895733558531550021495874281471036131704212298247054000554823688197676609015467327390105399815047884153621005261068370578686353005607090250302026305326204931677951451670371628301269395486215988018267611031192916835078354708989150551842150216496760423618490296709648285469557195541217090931934025954608459224651291664110907044909699107115104869979159194195407519760463876379333018008553197806749113126134098090441291028047953644654034163975143084525079949751049582367274536472943585972582404881315000120382008943649805869602459859385853170299016392865635705075837618064909846439046240923872022028081315119030817060207424405919508169212799184660931485405798827281248046061842875126938151853294242352299158295875995353840456508876539346217368241918590378248847655866078797243934712500138854557830392047083168565413138047073349154613990589569721045595391455459728726594996326657733465984083046587271835712812027590195381436770819807594042970541152114308332830837651705460566428845842770724341753492640122584824096609419241723046339129351051001005466546113225422557751590643622418179241998182750892665639364296084340798318372258170838088672323465491070047563908630480686432919272006867655989350133389851264913784016541457459428371053335067074380850832384649675643222385573213868697928858316487276945108849650935350494070989534531179331601324580600253075451778123752637169225316429853524821606483697602539621995644210757660338849859446983830700251634321740112730260289937287817697539917929611718633608365848032451988959205880294557740971113468890370045462087099340993326624751070090503284663546909763875245589760108718852655961831864435518257317048748139399444209368604220945076496007334470498928924636776955844489235771616340535473805585968166965756942242842697592730960658586172092430454891385083543899461395379314288336136742781522861518295387810048303741198291447914186436051809282553549444977362947320433020556591950768815408578497793167799335725496314375192276158253777198500899388601247547643667841050354382342162165883836558008962093016215402121123446830684482041762892604909965672076936504269951508572001044774296468637330204401580627248036529622203591519232765492500353404243088039873062996075127744423144662950741488936037182382274982367169328451552745077650381257376835358267371406182043667356344703840830527888266519761625281313094078349752909552060357495159195624753465005144526207311036016044749745611785721399368904992336882815434566144242784657205221839719868021243164409201329973011203767112930693199001994729637735513997187262770836854105563438799538982063920062841833307967480552149346802143481472189265798105994072215840032698464744214120237223883132237150520789006674231841570051613133911977100693525105899284658785105812729694713529770388363016125276691987493914206678442609824087830275882138999814235329576912256953686020289973819687417771825316136458486524586554674101044352006205152677723547229028266148007808885210538273839717621152329659825166012975741397652841821507760275986137944882366512278108775414656366060552102165506324085718842395226680203094536273030938143311582968680162909559566453549285581757760256348154286750719631206569351471837652044315363141218274444321652595080418627019990189832689759414292042772626789681712975499862952516472637010275853511795052523068847193374227658381397631732351349289604543499727951533659363648850374210586778261168704273769675494339059087559585024315562215962936512037936109983206352898164910475979135795986796294449697532405257440469204068567235740962536860158252822578267282145245406959284926969868880674767225833139487954478969163936274664534195915347238400744717821201519364237215152656107364134082712731991288189132131111982967547527923889709715082185620506149858776373375802551399157061230529671675368959170037276753564007875380264395095309221680226932479202881093682907359435103445724389480465335058499579243028168841656026939686266790790675215590228214604175191220993396553913520543265676441436490674309981873345192531193961987390520124759698591760289594794741725233187137432085961260739773288683288844012371212074825006497442868353039949685209017407453928401856103072826577749312900147614517112414132139550021709129568325122306946483629185492973148255597280154260535693934582177197633499490747052429194262903330901911959873966457999660396584423997740113660859163676756335078774256926149174196932590233538647755075486354464926194536707186179189683391768128733518449299558335154399862882547134426095079270512178894138544026564389058207415503630622749884408498026118289704318832679002146168200071050387289129495078088309775622061559704931490622054656752073840642016069724636360641242982563098028790505386462697824052594466835900354722428288888432139585214480439963421827317316674901597856125423337698739500426281410961348645958519476633239029033366010716776204802016017636044889312127794088368448321594948354447480834163819437228611395124377757159903079164869395843978389949291272223584074073663937671506156583992931425798231112751638952328681417597166261071251058729600563030943166446194582439428669705795996478726205243584345826729584448731248802222967499867817760083842747310013473320443372644662509376484651209470917521721443297093715217523214518373931041493988893333098431695949886713844066963795118420729972783592959408166831131785479075590290504255715710161236074506061110295187707259890144175787999588275630969867290175836103469783371698847778335267114347334989860575630425146585890674785063334854712272077258129024830659402567135543858522474941267696220097967153571449908522712082838942467200180567605972872874712906433950131506325678731383557719763766969141078637926896257002046132177061717389643397642517672336143543207646751157919605772445149374411699109831070507192117341159061578329671264260935235451575274482775498804959068947430264450691310999750863005619608867394239631365195541591953069960221302638322668432700030928132728462285018245606129386670007768684002539007295388353873554608986216388134682252285317439121893183363363558204894523961103650489354430392665715814565513527058585508018797394389745649647259213782562528144984767482480358983296810496776316160489027747618758702349609250254503114243753149887131605446375694334369645433939769229658037206616185894279570162577765898873021157742510240162100615025358674669768106453114263366601454705532386060777647931665185643393387793822347973340087667744800054626455251886459228254199230651903694097293502657088920653584269505270054702859369127352878451059817634988217563660978314235129234533118871836458328382662072573392818914264003657878168779663730523175092066034530827369539811209361995269360900420826634790633323757400081644448682776115832823300879918254306200948472058318305560882815348081300185544837152577639081229622306352757410439249071467436099769570294780347947723935520471065166952121462810251460818598840973783917643417523094461885923184920119745713946915382410856478405903499488112674466046808968596616244931286145137702012497498482588445839674028916714623594152997593868098069035608749637454064194429194393213931657010673788914916279722332168371038900855568797642234493857378360632173833326253749225922202095260467308937981423030079479374358084004837210313554007296270749155135577769698120548451293912896026793689943595635487283034541508851428110257258017399890620704157806353745694160745622503085334517241040255498338311319123069569615626595518033191503116584630313173733943783795901510737054289624805735358160095682565445119349556985004533644979260501150673915715461445651663581940935453127778589205922805955789632304075836971069573705531351629294374862547442924590261719082636989501542206897615024073093039875274030805687496827934768063756304252137901705994572324400485596569448166099764408168913198429639403739766010692066704539860431700995390861620216647166674843874311006446068572407155096477552858335498787902555079193850970023342703522163093741086873181971825868322839851410234088320480664586471972383542947651012432563572981018171328970637905699901313515845984605552931957337487456190413121164649154815938234458105122117588122666107858805903484293493260475030328628162683292652483190835171877924987301078758167972994854205528513464692900040374929781868563218019596775324868483220257625292220064161818906399995390194840206499137327703383423284237316292325478404393985009360746387523872858519492247008465722661878494266780162848618658887046194156663916571884744466310740173291622595568916690031933433553107611777271904126249563330032818283011779388278648190380752351802707364154491675145198051716113840576447873891095238396025902399372620848588007390031447382409410923584035473006400421249371821041453143060303333785509026842707272960467418588404513126392659985282778284632772602913635355170886345063849334471381050585816185900838243557836922677280856524564555267734481490677163370742721214432671071202022536910251230384916001621293724293741888791020256472633136636641042811588565622815445773216309692096234481592107806482665779644238897787461019369386322978621408122440254240592286688222366987771637187610820401438483221675023470387007378503389455952142669252319935598534460271628230632352990155648351863585556893640421444988572789733204153976899931034442377745174966226220998427882558881234759067153094096763440893181009803852026302516595081179916925253774425609033185033258719212756221753696645211457751818773492827996408299098986049390457276065726117408225769377901263006716665362062728983004931857960366221419460002093082267429805629808111297035525557570058135737548547710644880498255543335064210740692745578784339019937830179141033222311763837652292705206646906482405925883942593094245929955833355518559066742886670174809551726460974356912250679006471145588678462784266651727484842851147066914542325567426788437089404156180739457026605046737976171586936898783176404326218970558215058751729660684186180363873325069213286057158622800846628737197034280782877051554548516605511907242313118765164622760249208256330657992230894425768635786198502371355183904984994045689858832001541782936555662166317451262769123556242498517704720717311012658440157274136819917547979259570202192371895750439368742271506640938855355576263590629631736648996701798824764795342367382973453227865341387705508241488486319897857615897118238501855260177203300537260056662077468239710462698747356794828071194383437960835638809201627402511899620385210021653029814091982514280643831849003872993154025369392559800575705456393943566663281142357367819646930329944024697693228596914239920669879591791530366169668394937615736875698803494568375341509747815455828591048573106646975748454730494108481159838924925365720412230570106314589191668989240001117648880531431362457061660685868113082131131290477640399762674507879153643490565648122265277768628837230094939678878793998789370139805859843779680275149744253420249619859690623639350361609518480345558187290055310750846476825104704432909440568318390319035350105803226490641163536677713054355272390582186852967483398225825688044824393971422859026604122335234976749278145625801444784343007890559903579900386439263329866427286603841665790515562144574191835318308405166978548673253640005533040554064192634893730312951909191845338980685149179303217663891262658347670274446890042611359452309996926544037708121051839403479718957424130423857855970487587763676342342721791863581268229124400198563391541232102305810121148822590350311012604926218704641707964375674213910961145639033058254919072126037063905119929697558873945736169750232410626298981022892373734242441996448390163633814962170412047123827484354954583026572988792706457792433544167111594122291635600796971533494989779317117433180306365651178423235582610856357026412459470095029389227352057543123051307783737703546921519993934612428245975652854770737300659249764751382000989742132127691159131593020063165267881364205223575168643717464083212128692272494879938111115294761937970703413336484995771258678152011770625412093642799015589443697602372453678001603969879370072102749634691333927798365903135639607973245446050308523182052603573960549451560369113124046023699977985640718869921990034792113570515923322819072118287987043140174524973442513664669181075305449203060333117012141835576489108673900645689537745103966268566804040739856920456381671300660211158659197121951609795729630927045782385918581552040627946573837548646147867906696275761450154148085387884597771805222513578897053225194557568262865589754268707917883584603123546192683480260739419149184947200403661041918624000000716613848809294214927873732854116670653367914946238810441984423488644722367801701161055750192337799454796151815083996914920563376975178225497191203519530276380448597652825339394782928852405885893593152379994746481835337382698274113591534062006968562266794679441039761096821343064830460444392282052337283978872497541773462189242020831412573159909706833298751390393561828890677827680862262185223116411919454844298325859458343922432128970001041840394077498062266829066325156749978716327680447511523260914088161308259625263473135295040890841890731608819892471195767791248880120187668741862248943995539736243906162979469763315998929034042313443455311614133675596474429022329551894553086389473205742803635420166143070805480671903004267844522966063628198071488952229770200281913952673964877888563381894065009359112528375140253251833070008449678967514080476304570351720883860043803531267341036972262289357623003093145769202923946079674359576918430940670500615678863881168279491609192091138712052330549656079615279594476299438910015522901088508656653117647673813570921803586203930329041560307273629539803699485531306973350246464375803991350436076641608871106549427475079182456022225762120218242633061885382234598050611489113226276037562426392395700150120782179505987878011876543501729432619187994990106390859151346804706704988712575561234898584983374198575752479102319915711455084543250248622486872942144712396952595676176260050822039274597971969754862951330491358942655704476374757693943980560179323894919970171362964551644588510941799439983673581516720875526337935886112896150413559849980448986585271688086972626155101271984411843136076556856515651121224693050165426855953365523221686268090634366646867540540489436409153354720445149084847868340230729926693077293544855494526561595797064905012733946568500806336634627225351232148796743673937534350943861063701588694388557741014370779532316907226942749349195250103541073654980631881316429716031207768383648051920745500914647838198349089649692916913260548666838276794163861479701234850034957022399294042711523997097695973040085571036544586717778187168507471859095090776864985501375072219058619121678277157738810388844240105053738853589464122628783693262800243636067235430307659240466571355670398258513037899445291533279343489669240175163159636977703986444693086311698996188288609721478402538803447140302375995318782905058150864579184830628483411916999838939674035058316570390711576967531864962434000656545834927125000577215234093240553922649443594279692132594427666478535577992241937358746906273477350362020766503812515199743906238547863646894653903790704765686093952712226039264841792514422664878746509436943791456273299022480105303986178669403422277854403077241803071880447586789842225663891262844373937823467145327535164897439942972820203113431834936640620986552100151042467422740443017469567957010571952891092685747336594023080854341068931021088893387787688938280269710671509293437377680199159069884366797246191913602018344426364826972533055520363505963317423807375223151118509667355583420479586079367258900104489599712940829189263935403511004477773205420892561488976061564966662807447647427998090311075093424137600032983323677215301085611930599331691586006726078700434827236547999450296780714937179759175680327748261487595719567529564548425936228527363345361169821076455772894307248373465921236570483173499985226075211425709774217521117537139406107044463185456297585564747246106231511531494878170992349001485319057300792598564910754561317178473754174661812634071361333012670178515738464705518759388789399692852689025537794305114058987513813805345369932319899893457981041871708906094192730716554168435694092036145855097807506024990227061123497951519048887655442229077220027432735128333259596875542014420277614356632192430222953701592905278150408979117141733218575087381024432735608712689007580343322125330595279593834259961397967293387713672245200577000491852663840369333390671580911487870954294998224358104607020855567355578453030389516179711533850566388530325154090042308215915801047311499938654969610859568126634325137645747680013911510820417242684151937604000372149026568568120429077426715417655127703665431349968748368739908550562916472726492458050113578430248470900622372132034026815522303438166762279669791959829311953685466692890590003360715267773096517201187416102985424050949513646589019635354207016708279507515291584638796934338444219794770844277713617188792450770259560797764549498619200207594490712660082451108052449572524959424095456565130506554643894183390947396918941834842953779732428470663132384829866559115619031694710004950243586774801411668190252152904408619103391847023425396223164102787286603066029316662488955408188061573171653828430925523679537815035860050984061454350712075801378309576823773401818197267140884929824092219120135551182082019336383811227653166501016721774995252918301294331988237649177349496678952226334029533062310577866209304840014719759616337314058959282029040838373465264868757207235108387839371681113267012260454191168720616614100584841530118833336348410662989697139962124956060207300024895028836718166546571829963224935684980591659546706104372102655430998328043452305274941633968071402449392876714995461553053046742601227934586650171133412179516361469241727290701412706273944342898614447510925314687402578155626758353766643548068323769376201810782668068621404105992171953757905379348543651522187841598384063919469763770721672629473823208896669478415539304568722217612575142763731297633823017683595427428390859062545534576985141509466179209322080993968857925490994141905929111663009932196176235261559120161485296439807001151167963512719951438221637418419144526475198008519344526812800486861596334133025090397767327109210330760500676258032172293149645218556980529786195641241596915475901392868985430701557380160993983537145675410331605165580776105577942414788969126905810833875857947654015561800564819608233709474128316137539651701278488705230483001252451855130805250217041045479328498642255197057205252188608566766821872064598605393674401869566681906604346041323942970358408162476857893869217906914581722148790531612586469800502425603130294046647996309860102495552376859765337078956372306269726339228289246641438987235362493754751823117229593113860828827743914942958975523414467768179321263793227488752589178098988136876281443740569477892367537456327616972895679930538042851565481563378934926745113261899148541631534873080506003871254615131002666925339039029759651504389207429631870755604578226930755941167125026414431608688965078511489930865954675332813392794117759369715678815008132158107334871470264304634924710238664914129193643418007705432257301951790939261173248576368182239688935755657984402791314394753593900061076501286559446568713649635640279453775584371426445435997596502811709603519040175149405848854701123021063089130300398647231959035436364870879914628899486428957040380472901017116018384824371887118554844410607755497867210845061039751509633335690358298217118256320702128131459873855412400917226847866766794744614372905757387279358380681896554725035420528214602110303799746836465639082267981620538786647732049035701387707073132974748558617437302433496010152173066940939336872293731359643098414347514414032839366966573718420356127327575554145268797168457352114666737890192626961478778072934653185228637715081906322051131220689915954548532382530982094841485817146193824570982480711908301500974459567934409236411660262404162971878857315170192884689220941898048540452607353167857629636108876963332382809582235157217879823633667385065714109147558977586750751737017860573026674026258052440757899340950053545498186036561961880814697376856913016750630461957487799182324621353190096015534481692006936446263957150804455997477098238629533817625334254999542933491194134610292075736893910393118304518872383959361499499228058147287792221317293882165807685414995711928461364759190744568212913831296040463899009358077298497421510607533508593512499896286202012708192637202404428151149283792817964248035382604022041843393854735229547036011174404936158436767018324038839624037563088523479555645888070681303607787609880590116125785880975157344304227840419859901973042758461359363053365747800476756824688941527050966147505696833689926519934537558015553249654888400330556598716204089434230951692462634156209359359599330753479150801703644924819773765085405264883012503966046258740512117010012215499209776146777017336359072241342425901063673484493267221483936500487391590728038171057438650892632055524024923954358041263313775509896396843899915171559324947752304207540012215382814405997700528345514485330296097848233021260446915566354521020884856487845724497428858812448608557261711243364136951956005275381009412579366091087823821666908873566046240839126090972813228370523021145421820846455534223463366846337985956399724613326712845179421514061673033229012170949312305813160763904215247513289126773021469892576458624912096096941022873344108866739538970703938366213390316967124035027089047668767506510376948880418935040204049340709664783870879382611971307030115213780118238274016024411344622855271513631906131488758548146511885312489656500277524773084186167461744946838066673250696096364796772526795860230585436268716460017712009145141212912457030614578937687718444086175893021633536196832130970372773949219760353899142954470661199726197428722622084317486083920436310978809621678646475905610205882015052761602169010782759386908851925586111495648203811732578707152692962813326117258349684667968005280569682478130386952361237149441505537345359846868812096181993215708663334353224488569376021511718810808019720670451004534206996015735145265573611823207015292393513726108822928263963356645146448585643569440870240840130293970661030437120125436017876378241439416386136013266476329818298602174582405664606158472227497198448749220484938456572244949153038544783062508274909120657886419502529629477761030274279455425524886826097264627979169902591960043768742083698437056042028568039324870853515941153656880376817373486294775119448791587661085201244258184293734333133914162266979066001644417391975372061643556453162525699379404119220971606138536798207461762227678999452153539726677877234512308005764534562874332714169115422736063260673426256961485475214029818197452003524242884997180529890455588551905256150612087955680151753120157821465038775536286922898209080689798958143470037945660533253353110596615608310628354025785360907800370221327422852770987591771415213408796821174071484600475161925707079401339266073780704263612051241105375891432498275584406398839155644552642167570421788363824887877287356490921951236153262037793538464254238513931445345238607962826288565546750581015742292930124603128896740432381151384340689146621082587970526786326760753745165279613939656276695111955725392578502661565242020087742936831988359020218436924503942280700027349326099693433462674042775408601699635943906515909195529100728623033582279298442524410160758961140415419965462314914478853562496894782620876730188721510644023808569853916647692429006280627238316569161816920162312472814146774018497734842680347781387211672353051677502210190236647229493856481453634428453266717968989562320494973418773901786893202468767656234293894075397220544167430627638967107782630483876046864103844702676932817088972243192199975452153679271902581972936446579894007277876763416584255067833418688863631283059137155069168740568435420051236015219659872380800548305624451847799169475252861753031513902647392043834352966019059486173061640455254278218249239363234049771838471754371509274376580359939626262640128805347210197889823474079416683165691616187732880801163709222247939198130040586826473912845745536212343365892046775695836432037112330428364010827803323301817698754156479522662210405413560574016152654813223837819728589007797224361681898183049969029240130993151646545508814836661992840509942614554229922623283929527514935547651625807357105694203259099126394837107202554946955434552064363194323044479319250271599488375687522364332136011521775033649808346409231184517431983099994282646239518811879154349975186119339403891485632210703605176949274468371254951725463483501398662493833373150570143681619156502033208774910424971927034228086897490198747272683492918701277033216265763772405179058247762498234527366332932562386121326802615765295958327174798685976085486820522180146063757926951742218211293906280048738080384647467327099226287233654028913988821069402829035005409690863308297699810450823628123837747704073697560287044637261903174540057882007836225865583137203362775997523915691892983022172856419009972560688643419749404596991410683726014564170018350862447200226330443841025611959860591040819120218208123157875276344441164600649660591622244579511802756632158204248805282145698093919801085247618224636570715633856592369522738560553718844815422477754156282581798118568571461701097414343700510478475040577864680171352626452888654385440195584271928905242214348296977950403428047202405666753844665742462191387462395283401286589440766048896525636400713468946684354219064429268930291222277692102792080300129339130436384759978902323986646602026867465387729169439796141387017689064116106927135282635602669759436698231325577844607836757679785019740737182135877323658532836206122187021973378975559248759841755853163046801491333448943045638765937629921348216938863194116350712854513622661647000796930062469942699585030359570607454896591355075719099155095411239224222395279415938347978473064811079559019904060627626615754872408857548180510178538176552290291831787717335552624744338595294815109809949867399846221805517774883985670358247639663673945725745671172762136641461585958658499521623472770481196595605962636456952521318639274086074385834245725758380757812643225683751473042444751495381171534356372927107479336823915937023244735324318209964408725508924965514518454916543762801959599922256128329321657287614364090072197439703682377389545664501832023338021839545347864444090006257156101805960919136566923049091022129739366573561079620308626779651621510242213512444061771413748913019685786853000910262064232293204962252038766048493559330955505235538355623869822882890666029155140411834296503627096205905819124278822450196880261316687020163291496986563564603020203306261578732593544917887767020807926064866304645676551688916976809566810630329053242381064228351221770122717248940771046412313581739735351013363204648205930674083987630786990230171130414307854667028875961945786202859350704193308520492084473161056115071325152246908351405650765052391444321594537176942625049020569396076228297700189795501080127224574744653704328426494651265527266294868844884313995732035732050473223813292571812109206213231641486934132828632514415183938122458184782466798898407102755793769657691436172288800375382492407132999187281288372598266168550990686795865302692981979944291091341221166466348096557401648356837724039128109987915985164853685119156815492451517625819032091679233385164346908810341191296216864085358938263888787207446693110200823341442804540786013052953657240965458372455575737435830222549671917732050749423229919599552848141662995011979306556406409958302169451664770841043315590745742490160812556295984985665017376224658922464018322360122450208912677585713633453769437285402280678058599702571245804823146223822881984174382983146654935288871803342237883793430778334170779707141192745502431793169154179348535906892342428429583486809236463405816295163047262475470822001805843642865483978213027171064306622491821099830878615845752554456744933212593365860624583032871233423724479640786767153387709505047278207035465112789288965133211550837907409971586338454325902048597445170517281454435315629471072599497788117269136267199878113930072581421157092701076343726807847672399090502116138773426884401182359660333755470213697391712469435276615403993950085267748428731425333920324402284416510348432720622949027794687183642105142706110612958171641260184328574614606178065524036518247114142505541922437072812748102059355423954770017451718568267434350675716190426055346492646323514002035593143398016897783994380820059990492173392698556095776247719114608948245017346366467337066069499367026411057760054619614565591218473487684747390210128119555092494601341768664442684163130525476624643350598947172619478082597362129733819946760139750058168968105399236452863637530534270290013058712671436542939320088330268296107893936795978529517272892484060412213434028985650811914260684493569237601284092699791718116367699435464586057355893234328834638097230857609787401026792797021273733451008068181975857253964716320202317832949147866428652352891638004434113726614420007932310834042333159399216771671666702016435107002556148782182244719201314220645237562236695043366293143268868784741770546340758421045918036293686356446348248849637049142573608196994085617240150217186488716428040378103462829809039580604463748010744221672241814246986364901845799841101852239683735486501934624579532264000524949957395251290643895097252143545969814444490832409563224092203575318809183750482141736077390849492488666994856741936853552155302524202359076472105354764220289461318413639861650611071117911695093704760881777750953683601810206391163284103066222866041166694919561641378977774832886941272569358089656664347197300943526827983195236120764681274703413760941916849498923991093755743001668514586145299344583991821369779764264474224912687810987496106518767915267796342092801034631332977449802571445184357015325530721306178609891061886381841356405077426667712059059224264549175200553075584185418229818560878096039182076138657550309447372379614074017272201560401314914842153850195808472307625360513737636678480926057644282607585951876150054210700095130403722043132522207833381691978380202066869964953406015666166744676349244074819143647769762535743745115006391013945457320544297539735938733571994761800284359851564860756572165870084316562430311203927749030185394713091757068345201022536765279919507417162191291608702712787329358216737216137270861261205203955798520172922936953353756786789162937881861729989896709657827249745245974457696902981630269677401047574743960451841250938079051512599134968026758204208713897445433859311124290706426960593392138849934232208661130402894286028818879939856202534131627132564258070837448890925131760412251795061378497254208050648477208326085347426639910551570547814714473137157658011333469702156328442427863140606355763324325577028459872049492905824563832484403272732132601524841909873389215482967171095198069615954093667286312283007401876735753185228325984510716699682902021870503006838483896369492196361357398472439905191381713709713201620083669930821587861497267790823257998066657483475942659781542984624430394610095436730359590905161282881469913516718871281576835055717047642846667532127969293881143838621957003904826072177085395686052071360370165107340764009869204030635967145719881817435739904504011229573258616389051297482116551771267326316781988061554791654248352292304653977618395968125846112751866132568538375961955214532909826517262635592171439940656976629727665645334621155015403427772315920567019306172235149064036333319824801389720395008610611872541496376900089000673134146070301531102362220933088978888253479829392328637240300241787900500438396735052695575637015623521561188266868770192496764165543624136644593025056505825351296966386023335311104709056080071327966750176236149063619749059603215073264037199928690335673608976013361443916487642082554492171299345537806174068132987470953696213924567818233882261587349185404158790802803449303586211298517118444706915836728087120063667151561755339753953174960261793975419548684493609450203795353036105970227162189210009267303854769693624210027237951365908559851091497408181523155782301232211811200894304683301386657418296064976590323920582150823801070571411090089424129722689175658496421169858673921471055575387150786199424451357445994924092461719576894005348195522379645246901196950770537880257065075932809579251239316928960774738437822304674206812091117202611875490118147323371574544698002136157580253720843278929913293324906615962784627536551871443122452276553103281546916125316421576275513012109829321401855328804876797876267598630768286320764095154098199365335355891045016124794555110066160078491991150356251912267859195146161073240966843344046365752257919841607560904094255798509182271343795237453163989517198763501778632220775833486068869112359715732610468769477858496448812192454305459805207675898799902165643497320883617719362516787475843238039531761187385318277642496595888830039939255472189055440290464553767987096719629783703053220817564958669156766996085291745445197909709216723303444558084788453020899336887287046326635526351324634405651682763450245882029836291377158566245430226852354556149907540972036749122305118002932415797063417465702365763239974558196762309904432787933285359928718182589603292506904233673927836455117442671765782410310900084298077741301323562509676504521831757170353578413900087228030164158527024559713115171852981996117808108677026141679857254273027634398708696575210539061431515528777037610209851877672190372648956512305354828435216712859930460054446904319825102765284534921191637575110668577581730814516790309076179635888897743188090573511712239034063350772909244704350036678842349879496110268609413918229664283449718396182375391319353916152012426737998021596190262849716794191359583090361906133307336343730594424147451032142830372797570462742528248368961527186812671923032966264906863432649739414329558881741638326830445856752832001466303035342406509707901780868952194437893035308897423289502779817380207028341167524547650087220449309461781142168759647913988210429956801447021635309018995929031568991863627460113652482503888820965786316571474216209598845514180621511989785980739844660456571381457982226365939646968339593240897599224112954111952886876608104050887469887949175817669385756994047306482579592816246671497752915130554058135960705411743272141726129073413711763032090012748293806018924358595632247358188583344737642830924503813376300834237305069972678424486452525028070096076618255235636775121329963812475554941593357233347696473459106995582355411085051908599471869776548838011930913503010516073722261361989041724364416640217361782996374053569303973807007844034103366971309612820238295458971766204153180303949159019150911170151547271626775675991266252554488062340439595227167087652838385375628804088739684527044704334456671862483061916247707950936096455138726643178799843169392066022573620941981853503296731064661158105888245140452481787876124346947686239675523501098091453641795989964414475065439563452916050967380574064006137465125092671501246505777503313707814245746816541860307427440376704337563827349405415137242950015629682566482897328925999904057736117559549505138257949969583722338561487237228507335206727576550054195778189759875394301405787906570901486468708366668924967157393014606875724895773419358096637400464598278903146283157088384753174656130427172580802568292352389608161446109892303489645068065878819963407123472948051376885338761915522308304268696599463381643070382795099666424657600813524530216405646173970439992980016977547293496274085571549717884647288795974234293237993075080877330227847257663367998678147160198201169107129771387587439908347421120487882742253029957236277182553578816780960137735340300651759811472358761851456492417308917856522477205455778125608513096825198298523494369394654412773367563707144128977068460005384005911850644292330701402096005912014860229172764308361418996111897087194512209085901978792694982341126366005048333851989830892701896601481326200508722763810795067812236281874201785262496060634151792517090397130259734830369201497759750127220861647146392972473531391134660612211208888879814127657455513863866310337838325864882106982988642986742028875400354079765593803578629109526100865786037533031253429125029806099463817884422594666725643352148815469557324578616646700599867325002969702874065070434445960901573388074914915385234510179105683288591391241138238738439807510129947825106382822397057351270995805585928201504844734537096828770325483322659254884154022304421883045045782888133586331162268320118357431816932445967962918440138724283831738308657660191240240823282513222583934347744830964622135531877337721018515110898709778510439256316693096425587043524123469872047711741350201060298267325128943149734528374410511253496846811188446820499965721706738980934448233391262972376800979812261582683549860322222216718084690551592645836586435343059472026358377327284648997538730469709360801949272025127579939907263900403159613059684147792052509289021945607845614554408408508218587594449581548926446436580939502044912617823737839661285478824652765935760660960213318956143135415304637531535212863170521742641650891988364086541485618851167827024999374209523215672936510798383157251893648574880893628817812298483327430955207657938376987767758496834730887129468194113549465995721772726064503996420946071117854551557297145073018311000712064070739442412102656013050645296185057473389179684833832583474281943251738397218090211554890496950198426144429510654397657208523775080226978784418605936626245694309077696550562300933720548920214185663403666068121887591170550172298636809524827679938061650587010087519494121764842996090031864175041412212004794438960852018084529102833913735029404349135026029015855107943954411677329198334349688389602051339299859941879345776887058379173243831322055211195753172170815466892795066301713051227056642878728482848779578023210440934849769683475730848499966243315492821500050987006744563909255455824694181339201272657015258057703033180871202753131653642838633751447267978208119220797405825256671301462034403647816057654405802937430944262379555319120756473216800962712404620100717116891404264705223928668785128322315716094616315167457812055985081764130548184350066397970661384117035589030142010992222665412526574508486372219892178613763848332026667318581736423875229339152444364882135785318843177503925449131356107175745922812538981554065222591791071462507472198969233754260435071014369270068362174544442256580089272034570508484488133584215241695298022243445487452759677955352234304421207215737490475806531352414744136822358051290422006090853665697631740352053090478681148489058568412717697171563357319606919914270245711787669603762136591835062229232457543427154357602501515761953024844949880897385383058273110177514301510132547048315167454757126831449276689689030066948506638267883128485497506481775649876235886646389107016347191173110581825941296623723261803820980179321402751358724593995947061246532681831102631344882850397208897455992055587254635810969396577655847505021239898938245389860801263195826233363873552323921018128880415239526518090258659528168773283883278175607390354762511121795440371323906261818167855670370109573318327199220627442897587475779012946471705321530492058900179377544464344049388147896502492998378435199878073760085981785209937635474685958224172014832583612874374116905818600085088627491409545857130459072907855141452255316463872588730930771081094288692402357447976322686235073094263782996665860421292246273946971888428035838851636791224728423652817842842921034198949321087431438881198292480913776460883436337910205163228314170962651777302220247879411488729313546440376277908364849338966912324545918991033923346349356341762829799947244251553156685402769467816531773304281209367133075831598100220726731249281270501221103741200999294048980791958051044960486248814144659542807012747000685990598014252008433509531603909198948763518087104790902725541425666815558937006930077554851215726335337301236882542213574659536259043221781412213179330201593306028887990411550936906932352887221770905579357870089448621458623678859825003475069572884907415201987886680542118935354970796952925104710279538025713544092130207734844553436818134321570427682808250435467480852821952045325789209835938370512415379757879976265702611618691904355558950586073179708408408996224314196791524927885965250973620319682916551064383751370814668354087308749940062355728946009507249828015795635260595711888694299898100649601381792608643469648808652859888133848409637150285251105822803070804084143998900694973149814063107774223292782216134366492675479748815021084651952383035492912599134251752134146839846267296506830457771182698820590899843195286809369582151046521342472692706000215005440893022198748738738294526506023860640230105766272368252450517175497447585833983337371337246465690461930356396815325158023757004260376013229838052547920732184717283179634789138918017847394675027167641660799459431697580950434194962172753988403499581125953936984610954619514821532773296096995347742223445790303849124814199650757406734268624348091669813583252019898838919687941941119809987573089656469439634573299262896720338334468773117233517217761482381604919299435527558576263930430200299008038399695656068409303524162998837387953638996146494100783440532248696598051068169804638625168632895443022537689350398879253332730270582720003741037698752818075875280006951803614644508241415799958909186550314150189512704096059741705642324750798686298282789225631451206640419454790622581952210067496179024393644777920192448248461488897414308529069192294125440876236073708752248816375236880687960800841170077253729876795598011442822738530367068682520837589217054327898399042805148067275613073744244215527682243355249984173745013371581071140117141030365844537591488737808878263626953908294645515600788807736419741820939098985440210185842216022043891916558180095229117431326043214683072245704125957627027422444539675081336623725402584089598110247420111569797374246157551132045015057678927850658952389808308661407026250215038160186447323325478555149685241697190434500275666206035016926627756334469317314353225133159157788244745114772082904439490503712465561944183373070217118189609975109184734003974153682373675816752713968940030872271219121900930668011874065279408444601899969730335509143337495832998207690199694943810075393615320603244910368083538703333825245922903511674433829163867407318003342276730157635655338882368114002202043204325550720555646160608362021789224349330727409692380438757861555713531738250377293724939635507640306532471773493893711423759164191274131036806355819349468903041453542777914752791718043670132274292027523303192299013198143763341059834969051094028161670785285496060621361142169625697090977064529475123398086465469565716881370134896205135974157434419561290835549079164563726864938382117126705312533008762628951339190139409102683967058929095994895161432062887565243095576104768548906223744942630255576681288659723125053156171222096805348545828358423508667114196188694206665496099731100692424542653208696146366595570496493289169796429949963847319508244617921352398958686107748961816978293391401868834048784365194326788751180265931560685643534214746260238677139153981812359788596272470964332265614074022506844798710676736474433242988272059116061469916080224428605542201897356071932033956605906852312087197292480596072915479458044703156616064569566046526040313147675235649686936754406631124134932982343169647252989868608596586177056694259460550484475223213640703619537207013704730616606469100653099300144030281119696544889063216424442014482499465089970705792228169292531346192437664552160205028980805892947928003352795050567758754181717914460651492520917385856490701554572651625888150688579962424777215091499742632771199640835713723463973621833153797178922183534551146204627881808378837357578191923079931831289531808204772345035330942250226127206723586177875585344655416248488742586503521204400906206520229723112101582450893793188669667427570087733708475973906647806485297831261122539576372633290943509034391333592942898513504957242113493824235881788361833179752294494209961026407222042586476320230445590547479023106518175868389182489512198915210249323428152397919191681722297930770995321506811896535452960771194474827972162314430840730120792431544855932141138581696932140836563901760565354866945156203066480835073149751545198604114702057549909895924570541003351747290663837933885465439758433626317320537086216916065033047575742246436910685003368411666101243435629162557379722408162352491611716214462587067095168692686292788420954371154477337290674111726399075090181827384275940728404360145007345182345043389714945916976848458711081700289546916854776770919579590133876819620242168299342825938087170469358722472911378749487126154808645146176195131092448917405258485314634319253945642609694596782093219328327755085560778875646544754150898943710052922115954680166389632093135851898939760124327731414242596281630714734418572486258084354259365869805771815695498111513163465343237233870577271550285199817712758670581481807988078800572742681361683509478602914497881648830196968835102581738480990665403318969212867748274581440231212863833616487661006510604703317057769872724240066714754077105239815988423863047871451960897187941102444195893280385160689169329387989507584216724980406693635222317119427821592559418827683319556522491575987753347166301064490408160105931961961031917899487979933655032590255780577967981532621170908947047318883827984308001204702289029526542164611392798764813227584221091063714760121510771601406483097458755098889642551980109177682318015479116745569532525191089372702146389184299644488859865788913912793732292182441943420269562567560944300867422755292818216409891651094382918212409567182896397551458678733892679732522268509296907411872861375364367138800914042622697056688886975053457221172694763894063101194952968572188309516863384872547798641308183405920740663698141254870316564620414103181144458878261773998748866406282356474323238961636295403133770205962904984105316996310265796187692975186040238592880237994101845224548463050721880918067144461151227374260471717778269717468596057222824391306719719738655107131577432295027490717780181533708642905744362883322328422288751131704694427343638992443576537960103741202209806904461328918559168704082638633333516785172089716998160679998658156214126011032924543972396209046071428073972285806443441366804859472600669391675930024430772378316049934966497790560293066178532578937093643385430416968620560266461337552991735431981333133247485701974381256485461890572173390294115726549500606093462265482610639346792021409834909106158223597490894720436971606260899407706138629068050504033480013989781490102088504273492965162984923248217021109023520852819827183968500312172981375368952769150716576524272905236474894768072929303713588100454587460595647571507347725086914058384881829990981618928904386613203592570216337388775538333935339285106072397769547319690606696510921064903107833433325787093393834306228167050339087224631774279231733796116458277827436828302837191089655388839283720615813446401543026651109948745427135015875465619185568887906833185436369545337345751631724648752369045440545407051542061036713479453729581307362549623215593886665031514230335425049653327973158553566088866269111646288641839233999727695086096010707916262662909332519896851281149623220793914779242328414701570741818864557638578635797121585014942484275688932255969865800417762748305544280891590543180209770848409183197250977144944008916766838017487887725964597793778538501968656474664889318774442137333491029209043055654182865290840917259872246368249089461915034141768015172636497837615620761075733602925761118586695181228644799175657574718897587264778195898821776008228643645311174694662861266455618664376384640343515909225676068540156077354778333474281921238748332100422425024053983106522384678371452649906115035882470240676301950833099020580886069648499826948613423208835653211251514231157608728156529608318869364378333570174981376442717456097740281064891284953168357391986235442287504902210034918581716979726179258497097117437839060394910700721830956673933165847350579737799771366129966391795337552417818199096714078451260976413572906851814016114769752555103940826839575190798945601199805579133118842728540744063130677221930581075034980773071553932785093427836549314018509772989832239066648922989588545155815114048763733524191735326073458784216624376015056652518139460496062126286417163912700177780544197971435990442563399864117607966605161218197528499974035975120877224310175301929192743684940415912333648301904771585416735481254645367516593605193406836190492526658504631828068954565573609784553485685858629088851834647562863126642317183694843318629230542072137642752399028276038876425117663855696516983214713358986896522523503697435261459799970612295899514921080054021025533707840027479532437928008425479905072412271173901934356101101670245766304302370570903500640175239562911306155036525831245716998684337557724290153487825095914053543838055992923881112695518394354628123062231286219564925786589909491351629222146427391585045859672547844112377522775358862270745121147331885124754940081092581904937012478187600232269422707852988044428526478412411371026274307477501777229917695768841674161909858807084763644360623567465818919021176305753210038027880160296278608330523901823715903484576980976981832976901322645648551435083300794219496397273982288992642542239704817817024686206259138006684398967754901723612056401647459798679169865874523818687785812741262742702741929812664249658120256769658017187115971756109874211131355110169216242355988444347424182472978466967221157956273956320105937034783539649698720012801392639725403212897835321579001768136062361740629299754207375873669394989606164168576744052411756959059610816166102635961169110362015908168245170919791023594308619476902651237910178792320476727419542160496066329651923471266802345725582266402787212912778816767279136290436412955414431088661238638705139722071890288396613402463730654071974128782423173836726120272116364190564178751746001521890790971634782219717680708206161439776813867408487446718870983135087943483770687034231361637949431040948279388483551701983726932779207812023596808363528848551170717121242447513296866650196839568078326668212950051258783488913154115574945790714797889901357089043471608043694857667499550544302923628423980680301122402293396188811595690183024798737726679531385728511669262553311720313821780755499898499672403686564259559467339848256795184508642413383333054792882619617429216156502649588034859178115930488657968249696429391022838248421225397716807765624952634988774160593994086050616976802514310075852099189716579015256691108448979386635976355396233125381030644892815666222218065040897866756633550143333765893343610042821792294735437080444588071044523410226499885789120934493925012908785141843213556323868994843235982868378327956982157012957122663754178260481584915098953162984833869089105352487842344010985665952637519233537414660140034231586435355403574290776125795222505359874356647176731291630439983298951551682793930563206691813964130512145327395763456520378661625497547728085496931702302622335894051923457776794171003996509349724672119961181946121361755263242656935233072976866684369555200874555660737077463950992953052400408997135924083681309347395391388073118687377452171652631829395028335393210635555559141825759121902785684898950573493133059526660129571961018368273290948617122562019269126176500652750067284132801263448719600075775217843081836313598301543392185971134286558112090495113666843331422895631502949457508044133835816090022386792741799181156993866719609449201066069291594654820447078182586435969245484617073978754209947773040754193062149243839453352479290480355117605827583966983225251239949646250144616474464664392717514780836151081553317410559775138523210368984988111766530604799502539194663522946585574240522434039581729390697257654166547965463434247679885778298009598835087305103634797269906871186550089369866019586642481494995090516812848006864747112927080643754761610781913670568408391031881121755561960370529216864736129598147831424425946307826761065501790407525698011697227598820123529101705426582650530369396510579493945006745289111141706861045631785702985402040821708354834062672859556373559627133396309890519196793540322701343063537085088149868607259971216170928043694278336798160811061774633107579553209840798927022874190634778256762414746393327948943966559098621689648818133165720456174863566430629049861666801649371168404583639813430660239106541047924254230176022217716325318267171492572425981315587567042386830176695946147987874525728339441393702570057447475452641687123238517858749211699263164070863677997291368653069645903073700377691823934764895060670306722067427457402827816914726199672788252622942794923784776016679948545240175593221888381288507514888854208243031675538392106961883236632869155400172003457997790499069733648266173102325696607564273007231168260949683186035362044261170461603856948527407320325331924623461451509594303854262087537020734148501957261499585052030837264114401152292921360830319084317665903331233564977143785215626509821325243324041860962736987268141648520461753728408039235133077992072117689372807905439795409638578725731671752646156956404707702340597447051850874408836984664296260725661404419826333963241513834700696267150865624983598435673227617909234599476114866197124242642070156062844984675636973458034695125017952836891744418563432954971056282205184727003459034218852781694787916867258595898746118078689226636600168610315633226241630874979413374733217953927024416763133215973736041904226573548959490442868956885479255404296418430117423905782170181414939066328660411961269725058774513065404410251759185629816608870086623658255132720658624896713540475166722399608223801325265296009390014510128416054755393564905370570877617173364009395514249820857076229201934059996304572052897541384969149545013296803657531481772596613027375916426339990694423189129651407487778742524319845254585673397416955500673505668366568945163997419827283865110035719514338431818980967463248780658180507995354481307000542411980535598993742270065297919189610692241197436041709845895343247765514576644710978687069136096212439028173262254451478899643674982391561482905746448880160730524456881599251281217416694117135533782856479998199777649319017063408017566152538868975631730921921802191871908111290170220103072004855059414097749561966749551475243921478671391241341836047322109437777756786327181629344649376853202096849401253375025535497384458318914291854777393524072583796708880254138313261009416083437978110925904112651938770079172899058469637405738044251541101841709096815390461450849541595312182431286387512059435621245837232622540945070992681731053251698851198950514769253875756477964894421866021209888473997448450488923658456782159979211988071331941823996232232322859946409012627630397902938936354302918272750526861889159519337987637272077106169407870458041220732889538554350179974905496923056458014993266452189291032648708369155220622025292312724298193626188031041476570529906135418968832519841416965881726217660325383885363901452828837895742671227987791687218869572020212960377549238733967173356075681829826029194951157173758905718810995499526607169004069271281423335047282318010220793172196440582064622453433993567247571254266115092570154279229619119697198881025325180995375857437741226610625924605612010217494374304398502706437771990337141631690428608736489059305284659105004496621943582767946475415283018474060442454582954908800964283010069836369585748775796944182958311136604327624316798984234280319945896422638654346123252751484084483161927676153553872191643025244746764147425159409614042022160511285264115103744207586730945791966553816862964381676092273831123737659232605855055351514757593979264420306683950572570923902654800803465590019619104806018582119649242112650366045612783413734448812299230520570603642340504375759121979962424337805791463110684906405411308830438333649987500373453529546538061360722509405477587998067110275526059370001198743215323199896448728091666277034070196614299482197703868661965313987579707748406252502250907898980636865609867502332531642203574573388206924769483253393082967803608379374302317289320768909440304811960995716754550042201150534847191005697749080188803724408831178372243253653632463753942791987031311331073737636817176876949869260209623666533666568145380941793395067127455685787679960294505378014692963682755343613153717174741315608589159882306368110677498536312147965119671459060182481925535567709190365177822652096567568609682757550491320638870953546424033463698079145730313583220901985182306128500201735347075763025864736687553659972243920198200587765126769797006784432365496057364241323069307758284562405816716626900700537718002591663745658708160795647475318979838856555761446478213644983375621213737785365556332477440828665966121201338579398563638517356303058320841269848270565720792173074281910760929356187937123238590019047485357499626607385434517827494993527420364158230037589101251204625995742441469553127821689436442776706276582141030057115533749694862633401595697447436905424240938610549221703545426250091069173573348041970530032323364199045591052356640880732548007091720966131667010310861108759558811824223198666661736630818617666678463443319269924639400763715742165384210156953779508283966504211862641658871901039036752952356212278450315543498992603904755502281783886090397296234455613015508099786292209808559770303397213921537832475718003512778697954077891883085184854206292662656611113573736902956713858114133418021084330379116006121495181421998098677176692282562205373759458518101459199940251362001780800434135847143369477994054123361031976669954469945960008848894455078013537354484057852012995345867679499592297191957762841590000709349740413403446857471915603855408049663740966803177362408194475450078727456040090273157492107906067861385714490642372202082955000499890853751563855662409091641465043147598867470633897960293434317216486229944919190508591847360703862913311248625409946954477091339639386017734825032767042224039284795962987446381104360031411586824637553781627017352174651561197900786137096409213106218094192147161968064391221637405550535685650471236526443346292667805252049724329137367122427539897271066590399793744835261964527694759739463864804966130369149020946298558548253064941234516221420723097977863885448343634622516903979448268164034606883140013593249919688553152022806384808188716463893899221193346995228586823918645045651727904596904742454352216534761711919005009958835167493159255322320314723506006269944742871374122822459751973170492333076012940837571637139116146011649272881611352442091706855892684967790996712372756065007827955208124885819136084882952569075848506184071295972803626386690209420377185677961694708024624160964383598284108266893073157749371804986402622967590339575626302233066045940703887970119306309785159277382175662222816080595865394636512092017279681052593690825437613611047217678068033519238779124311790313263774198999631511358355473120918387355000661627491499825444242901350767088157222661354974845605053943646285237370903373918097315872240295286738575354897959441337400049306113869043317263037838866144377963661716174081758788072202338027500647557238484723281377802568614134577219826422798817664524474645394619562954280173279189305557376778139326918399659662143363879510440983786696967385863555461241170331291208642590478124356990068239436387799876168507747693016362149380269332961669007000908513541839701980289339671825331546005140112146613579535469592574223608692429995530060804377689588568350131787353656979782240130387046692251474102265093387912355731591030982326683911366275651661196737083546223010625063997516485740771906758968528538880124127232955816793897768266741610047463509131741867330706875147446008947449587005949050752775839488432363058715614859860984228637543986259412269263166689488729660757227718709466015256554689688177469889562221079373464419930780000856187860255078095427785020241391837962461288017974194425597698194798526521880226322774679007302901421533297024532353646478126490845969054172744007512089479266057050750931690713525538159596025616249656722085057802592356661836421621634127591729996688476916826295009801348517641825124573753990725627405835151485505349924542647408657361021651673573444705672472421533981729770203461980344601569201978508355727040449630302822277066745751295422568550142749538685158330740051337543661436645601391041827088603339061634210365279600077897827078913375833355765360601492556711289451394188694752116602573177198544609796990361358011252239134649501059509908503129810176723047058051054505160904671527756522556478398727587895998206292846438745535272444547096590853593151650391562852230265164627355129178447020947827304262544033499035695654844656356994027936122715969170608225530589437617496177569374462546179814082531857818702248182915789823954642334572301880239062809937919269784698731531572386790627784332983544056448450118795090986250330168516907633055851110393806339988994154824724695942628094673702930118576028819051253629582400669605563649752652884712098806317489205294669544255828349954476944605169304729616398582207658434167522948444234043843598301846620538893260352292505429113649199555895683707587218164423579235102073436449673501804712238741314169412761779502586665586408756492344066485268051414554351691847512450275403268819372643878589169616617688582145027348491681725622737338642678998497949965873826654012947439534897462768712908840912204118751426132081422783525239431049067923947362769952962622656702214989590583166060121541230640738604110670003251373323335935116132756150852183304573960585699133238993094169199966664421434206433740003076243896423826732322200195468921452932065273227220067091231105242235019837395169267743133085244962421645695168740185742414257395890825605595379893356551495692416808704033436606588006262957119256467638572049965620876247835689602622894015842393097692456651275866054500107210234269128073509333405769435547919891245291699623698790591446590612581122715469750785655898534495968906591406961670938673845534897205332916990561540441804207375527567765806991109313718685071758888477561518174558408980028012511597272232262570414638592547712826108023101755071986525923640233438022801044774661093349485315405876870342233070044379338366984978940520441443794126529312542633544453023113498177352634187790879152653081023570273681549554125307205691389928743650760769347675720533590732268335105860798027949182712353620343220485534738919081954987357401992411840383461339781605627909282745747690314088934982903995549970926027418872880870982318718266535030316468215895597416879725198573896119383674439796693897789175257546795562599811771656012144267462593260605752222368050497278975671782457302235764800020642622494488174275308154414311888352898009850002135088600535407543611087176402439176188541243059815520495050953387661581027249548346851748319157715106004605202984278276828233314584960015883898023169016259203868149768235127135153370538281118892172125361747801919062670312810287572540207678251049534115400431570430837382153667207318619635218202791363214764152454218256012330098587938087252512039610143289901424856972684136174312947536415769634833749779519016589737759545731153081083980131190394107129862863878248126959656561150711081883610408555751731635074260777727440564449276802932535026104912870547083084047496449643229644742213584026756311444829846895181941049326363846966833655910967120301583507458341562232725539055288166946837164279629663496690733312368022917699833606378544137313860175905525992349144404017573191965304950753776201534992217225429112374492650101121966306016423250466796088430119972029713490244805307578715212757741682512709985449849407102973138499233665403911516976077034734374915837501703619549261984506153952100950474112729468408569630342088729326310136846767732970482405645554109551949842741009563538558150498717728890518378463277878055591785214876818797341913393837468759453019122716616528335539315502663541012838418556771177064223610776524615160861603698995519954379544476545045374563120151197292625399046824385711709987627747293017103073499750389113265425036147404590762986927284069663137770901402805815005394546868285400315099867315884144800181427965298706991128613313662818776038159143483094530913987901658705290169111957715996125076727073071094289026457680256799658823045481740301995267195073460570896756124796121907271249612865942048562102317931739730056281500603929573227088696571068542008215101126374612769511928125124085899482369300934030665595181365334562794099493782975409538999614371985670720162374978107849405179271036731286554127458990696138987590205908243540718487571820758106206023682216191287205824850529865708091824110383538210881437762438910097227917337320715591844647566953980225466865551000995921285431012596977080166955197264642033324495257860257433272377974105643661039919359686157730864319174211293612317580408880221051127654895427773688296749964455696809043203201250024916837147999961193402099676412458554189921639546325375127739005601877194431028349905592157804458375886988936033869112043396743811449273784513739184960796766912521441694510670787292604978090444837592723681569301623927108381116916206635062936053578256995173379408060399326789008329968721711853209199084824743904766530252117788883410399878812241324559371126061542347624927489144902004418694253992285272100256640008572118695104305717629847152914225852447779041878674473802987767845395816366028685313180468286021221675190364797749150666864073795727646365332307431018851059917954017693196953857990954170693352612790607886602009213083819785749621996740318775464570688820261581377999577414080693182746248426145593803057862689037316694858186185774273388959741376632106629100907268566772660024233174305327859575026150316025411176063377308316113286383042501341261594438084597856001155486235515904073079594594122155359563875296682009793425653920727514022084175878388754695883646625794749296781858073413138516490829761205605236445531013580380704297366411175531690418191130058054307758139145138596080612074782001304603517474614544970036055689777906539073407978955620520121953798702084107923411357101081278090920221580832010096262375708677143266889292138285809529125549121659114822743055217102397993809372523935473821669737294910758865692493462496350194054127050044403817819179766835106688350136209988390620595340123159712186262451596561065748507492180194730252805536830192379175120599855382275840322266842349653571878296853909952669217536086773735302657918202487438225849073131976240530759558809638943487204505549791867442391526085847066848916285598097817399144956166814234990257774876884311229084738915972470606075422361199322275186167489618696844331526365296058826428355841585798854153081412429756606558978708382758250058838099940691819396390779715178567844638759522219682586912012934740825527328490138373595948068176379473746970705891207483976124538235590385484340379459063917679300700939337662086495198196549296169207223220895297518578384552881076427419008217177636324927245328541896703980168572993320920015789568467137165953427642828214504576998059126796242448171689448219146343936234839563966589957452387242523535645758320996918649561750158515798527876040936329693652985693700734398957015669744053681202199802847706356462227714800167717147476239244855539032712930964817045199195153363102938568315075025850424107064039501501359616997322081250514335484727831509172559844773624395622501180122179414209467071785740593305190499241975226485758005422775380359703294797543451832502579037800760563194834633093218205382946393704058569175086518715946734361328188994851999447188621529123981144228008185283382124046973709128540187700990700125977469561831369430238999887289169666218940055841570206773167676533848804403022532610085718554825641551402802564257115022081792307311916098512259069680111777427350779510655565337408781016463585940844693481420890970056970316412415977116272422464168121099352712594785891876645310168528284921507211904851721638414342511288644682142420332884932916343980757058097540232041829901019132046398801777402922393123116423554997466196760821855379788389153907689736062275352805082568118020938123896567713751368887395443959438657555727180539601880575293007911899030424539378676887742089793571395750675215585638373689012894086415693745499111706136223300702365253297908970223933424123812187973759541096721556166850256988718076384912271132297370226658484181431503356860713603955886748212523001635733051396731752822259123096211254346246374701165942205161894758013123412034998451330271325449880429123855674384369146681426422974397641456619750345674121799949075876613204462441186330572760751674092458107762208079713528356331082786824262427836502942230048634277999491516007546441903000335169073113165941371071039742158642990334426395718664646767970559845399102441455167474144184486927934636897574028823456607456466003876609571289250156652511825644907991339902242799940560484533042719782097578141585397701741838984786717673997284204406296508417278685911483017068578258500343666376543948958106205951859730999509122896213079230072943119020429487047107461186332768337221981974003793141149921864297420946395424486808484887022556245198292475978692433177187550586141424111945770775767973511259827646870168311671589969473427719614096197681899368436769506922370650725855127148650715789766256263628416189658289260029655487694552356783861769949036789105661034290232885775592505292860778971168072281930026502595402954076957874770382016310180781014321358584204967617382082504982864762700742349516041002797348920657478752356374897642364409313202467864804328065682604036599865154480173913805024322350587822873763221381805864040073308634044383013402002873063039458479916258413175511353435296781425657104940272771952449774524892608960678921538173039122235904511816920188515076020525557257593002149087812852256273052881452342062010124699631770097491997495273137928827591131877639298042316593032618973907985702555235594632351073939929242844274101962138709707144182313360539199132065961346462929351084209719131656577095924529323720789017175450505916567008068452626118576856220005670989403509763733061591661534941570163067068679849051130658388225946520173748291012458597143510241917988221372097372433693707565076422219220531193750233024138691097429975106891767781513877027566423771273588580783212972834012825198585584916210386813759225117478301906583979725995384621059659347800122633562807860261594170914385110936642685515844576961548207334562665126014491338871978449613504421286758259708620854606042136079997494920192135929558352664851473121795080860130934044401185385187566531894636401355201771178678475578762540790489587426238671394062243341713676408395282874649419323597088193503711383103359359939175882381994875070777943053619240724160790764410295810428330225944034642737695926675934143688388853689621307444504161269870258651086165500236486899599660344372435244184004183836403318337517946950090225855292033525279326257239869982698460578837353806057153387668829242478230379754899796419545415505512905163584886140814068281842379064925474098050917907798260021125361459841493972083382605501915749827348908261419703209007763163134606785067471624581172075869979744931956335087760364447515449210630231980464039758389686511493277771981597575488402485637024830196372103768226617858343663335568214362324094999300066572764840280212133555082234599341387072154062442565326665624788409189057405407963575917712701545993314454763857749491946862508666286897070362753582274634502765956956472982582601109367712018544138918456088446476371981418355623154248929603428439161175375040755406485074965963538050603808761716614938806202661209386619122786634557576300270060038129649166610574084817679933188471172197627618505890999357917748326043756973852837750885575536850312869372492963105857955463942165742172706593716631481214124185031778220081800494307870030169468996441457338805569366401435429321492388525258584372575684660095684983825210262290670880045467399164440636634901419295838736983497964108965767629607818617895225466491968685339434262824292654756803850128961585766717819165557233647912715614837589821904465193034709202739511759468601002684509200977651018791954652538242036310701868121298495966609009640714553467035017988784292293367827163386709439551469307617948147631910948851102730809046460599364924682262273307095358202286005451032210529479891877338094177615020675976872893834871007871158364474539930547012118189522101346365509115087008178756252690633340370678225419568404370233785793628554530223765708488369818371156638728708198302940841507595674279240287295986674858983989959266212584171527488674060717462379684763115610365189716926785020353772002827510341313071148406615810997522804138072420290314811841990309212078587417648302836861331310391006685911616212915587749577093402596316406845751064814704255785306922197903699640984399340762039385257821177338414592633287835637202266332312375439883580272732901917991191236178684790393318710151922024801384280154924466004385624773897149024211504240721005050900779453879697634166362648045532711123869606976841467984616463505874243810520502808888710067171189094125237697482204221360744359585987447462436921861502477745013645762583636074524463511843558492685592766256434620311113923053920257825497571556543177883337423734851390492550257445879123936113144156627450388384261270376548582271791764709133010121712126293092308247961849397585948015557469752766675146444916842323275945152171638300350248985616671895908702670241071214114581265864957410881018573186074351706234457483636080258596958251282799494433604632597127465261917369672764928208270273534653594163775705947715544450534975778258136863520514363482571310786588513955458145699741829630311773897732750961035206878020957001072003842842818024254981127043402403666987331288840161203949242454766167424455336598008286265169932045406961090476842971154350111575245142072768860751713022368958519635572008999682071463285576623739591786885591230730757127043132129759586747237669411277482833868763713255773280933956768745498465734100699924749135540089525929826997802510041121754010389882574229849146833373151058765069237168433137609684386654503573630733466344674028426713175061121647129545633023649721861049733291673368050488640804331676629946540389250548695375021823757139540325404165643185070482116046012456221799224245156692040579588404745695572951910780671310356872420441451993716069875218606828161937890240503919211101335214664054280043627758592062291774452228606817660394327428580857418509670435995155734618322696959321538919156546641969939779188464575537853573910874670018637264307429694366161881434779505906961477684293181847823742976791116872414500047301625319541163229112519865897115236727581124917020060396194687561256691841052823636533315531190331091487615526997476414409130263298401996798432832024328994194903286961319541325885730602559915486819886783407517851452766484041744525512677659066923806488776812104435433330354580235642080010236015609382649510631734488541028150131128504415500257824259962743273024275697351225831413757034173802758338069809746181413713313213928161361432654297780946390642634265741939302240326443953964606096195199739553238260155442575074843745797164092883828233054823723982945752086343589911432512386253785729651094206516464407626447976589788246572960171078038189260710600290080167123045418196379065846982907870644635663847339168001179636371677829167601288178723540749735223862465730242681417735908576494648347246748049278588220534125160287443576273318043385226547390036746005352616295174199909420714202689977299238441873745914046463867394318804167204443327659547207852977467824147947780085627985845052364189699369162175182582354639440121733182983203055449378922220020844428185030368425192063813733458567007629684098804221287804649346116715396397468109640010200693299043182386269193488733667856645449441182760475422975291795787165958240237257897216385965756439798767313470887551517603006948484457140134876368564357165978603966329472930566387947440521848793862811099780043057321412695490120490493356699791956597573478228986381175930584943912703687998644609108729555646644212428326165581314960821898310146116229528772502301973415371753766927563470028857800720114140549644842194441497765864987352958894728672575208115475507440203037554363992899829567977701087577751817221663415907251922492339441287319219512644456975704051018604487414130918852231205855094831942084978184896185670649811358121784296042724190704616024161837549122337143861052553190612447707171719392372481200773781281377526678244999726278549014739063170011506273733004192155341143731301543109134183924291980148019226380304471340863054048006073456529780062627641280466557806384546069202415887163431637072180212281973045084503670301440899559064721180643938785854315709810883893122859675488047395751399923666756939219392295258706538812357064452926574848307445937092867598535624124412286495598259288861105852881270483041781755722175331468565559100377478019176340813668111756713562992889808091179988283712531166097555077566484002252931116407739429938013328673051118770628387188500163106039925188361821720858369046372849089157691606580529377141601109119679956462377900233248439528221061056169310235113784119413936399880948785663598718384578701725706080124351519290911677193303469211673901885915419814409204167404090683128834832825290195820213032472284612500916287391787324927089586343151049742293807470167452149630393283990048972549883410228846586870239051569471689031865783634835292437245823305467060542628421044886607315212581143771626019903726618123581196890767118045654602533824789447747752149127986238463650474102477335103883909007382116717257694310628759102002103291036427419153862464530630349921628874285092108997609456567888015308182264798674357070144048683683786839418469470852267573725475490945900836867615679975404645283465933295552642579607256775174516938513853219701361893390276658752563638672112034868201808259944438902397983004316804896268708477868485565597692665659739996570147332159714295325416198711530033411091656317781187808693278703143344702998561343313292645893447284410545112411299148241036502279541874383392100422791369212894474764766994385987471543291284102685176675331201381040249612982823700994872802999259462919554047094677218010757467400619972561072672808846781495775712874042627087145179042781966211660432979607732879854346603204261828207016707661810510076425040479894094713963396030019107963317486061243017750711271077188054102151089147500151094535360373058456225253628169288757836556120588471407614194635964765023057904440253427696545536759981449579193065474470562802193303585749086665237373386675911421796029076966769695494812022273217301324555462394899750822959472290158759236875786185146009952846323618842140001253614598908336205502904656846260936994329550833607685645034697749894447922304711692074233224204432731418814677930491460244413848142668442782746445575163972561043602212284186928030035609261379218862226249216875569072150703716618382442079693194913453751878370774989818672011008390124139318070558816598064672906426677234446317770820242732601432498686498560048522222168015965678284527632285397018270026531346785452797835987562475286939440881712100604456263922780971230266240857811420981658147469842073448425401789337233628175171211699729570081499860364752793891308534171012066254994559800449958984514979316816664461744455041462948430058064977863124695483593878377261659499722479552931904246079336001904432281063437193179919563699091454464180548060124066631205489111389445317863122223493777014016508497922587774216991167620124707195343052471531298633521691797448667625542740185774994318938015887357214266884152401367921915150187906049890118614389754892692906841690175625616420346932281150620284291067930269450494537486791029748198068377941471425273727584952169848254695297360982349484127643119036645161935101094425919753474531594907121299517871521107085124703374839180633762478307371905850415955266942580475045133905024665525446538720974930561568542053671753770611969640387694587178804180779895321864740255786902315359720489572771819941881171198403427476739211513346449788743832028873562588273092747658945206723120902644424748736595616674175104140758614356087070261839767345265575558044891723262655939950363046572826967134554773782526387530628871789193901023861212352584066851979700065432810711652373775228204450981298124318873078017042826000789027062721119786246217531233591006230871763052217218582387829011789800463756035094248460080930629546767226782917312850572535445553717201795571155933024938593822172470062460780826420085011334359124237064217288329579954395705662124132411128303868128809365940213752444175908131854413655337188479222815373508728069000012195045518614450771531859710869721751469283156893212930263885443074620280943359508620782313399025093356829130890614466449345724554449061329586661662748587019822422844992831011691127971741491524409262866235612317804298255985338612813072319640270265696705309083522819916052232869459883048935320468610424681729072217147875251462416879074693767541355254532848372282102011223168794168836793272020669973344192739984290435439004969079498406428705066557310580710908176987670844386406755310375387657312384442412915561482844636730641799810177416375578727194697654157410825353486465033634405283695947816084370948592915635084908328706192294337504190293702455427834674548733725138867155899102616830804954944591011606912952668744635445907222315939240140177465499592572567435248622588074218326084953159166386775729461854964455064294159425727437098372254720936931565501186951191006758448359253421174563050142685310267972874407395912712696153064316311278865720811814365691963206657257743465641363007906334413114979393475430365489486106592916542219842622534958713459907294679309801113628424366911057285843721005733420068551940297825326506191234180345435022065688431391033805708997094220267096165287583729537035952040879312113244431589053900021130408534982549012034988702878411163856521099764349840771623306239898139311458348812996557492167589855968084218405858276411141791929298715455305240825182696227003875324131599042690179876782614585031192569413931453736361691342144041249497316005481440798449726743029454036606730110056700368451810927746413723282044790466923740252874331406466363248936614321231742703285066991323872233045904302784348656920598267984112501182033741015199689316015277399657449780831942417769853064338732571757996418770880051961937213503771912189157449437895927956311755711865403172936691513692733436652994595182233557314011900616239415475038138684197837295768548713578836374832297259304409066994059102851481824370544609935189616268086867574282768237255804640578205265224363541253500338497733250039560981728934343757505470257073644865685561820191548133807352623557631311673410875145515313695427968188828392477439491334997209118748497877327747044732599534979358525324306397999379357618955041621118596506078430970413273475486683792803431477339749801092973488460847601918083944476580449270888784474601934289277928080398116195153870565948260152919603698584762277298751029409648871524723291825919280602696161549846005682863507497288735513471841195757356788766434123781191560578528866005452626665140006687829605655602240764007546828198828181891034003806715915885148601309175888269505018826154451765562399752370723879993164485354136201471168759223645395623773922985703556987150460123515142884878469596541822036147214982744082720951208542082055704966535913793309326162877799062475655754316736990015270789290993113982320539071794029589153915560534036328524160754140645892546411118345333902058007147347128988397642480530560882538222695387374687620638985445849973456079062555108799497885576241659714882058674036144379506130460761969027396427876337751589229446677002410989395994983738266271018329742711065463111173770600497110408032092711910402582975680077637769082609043442511773758539108602701297622030972402842300777434597466415940319969118412213178953298990991538607186071914681717313432119522121384384545706749580402573216619715896563620793879989634184733159178889557127480934877717719849052631415166107176062891714266062660052907723284986475019186154356368352613117318879003338280788502662781612243654838710630037578405132727089723573643350249723219739031751566810802991621111262030020773518279704485136460695674846596029958778339590823741280342692460545734080929884532510151592097962110280118989479566535375170843274743582381750280449735554707306474071257211833632716527287933981718035814766835252579491245190386950781658380983126518052625146275505202232765557093007288991089961510297264503564845598062700382797633306613576984493556343864713532281660557202696224968459549372753966588943222771129917928083071430401044728005906500479849374221746505094206138673773701092736322193220299193255497418101490010779678637494573576061448580812896504150443515938243945368276866895923510840750370372446306062359080030762513602704448440299549660898652409205865168223408375888155172808980227031724536567898167746526579787595486744940844709664326477331542828256247979346157708449650054059834986444746780498507461676521014417498482266520900608562467337652407360469272196145301635831604940369620685734835811736677012114906022810078142465019712276634250237326519529657290402522931073202018671567180406710356866975772881588126806286473519621377156204281607306458890353682342936709623112863025519307233752801786037201840618695401459176720906173743038243406259752436541865301109266960631760957343842028767294734985432481260095419962641418822347928171172250078728326355407378611069516619265530044823145120231374028727228356351041532322797686191544355551466939588033758200312764277331268821265577257257833166418559870239186778904285493681108482970259289178639337423606702452595071224746509177323717454422006461350980971302861974457170066334981723506404490968733436932689945889541209411443970512605425519383352307036528543171478705364581630167534616441392177805519131230987290722850073655269210727314761874822612818190096705447705345984493826098122397947775365003309752831524483693119302893215281969814988864359777145435960661793840408780941491323553411939367767211907791384937801772407903576826136575587704280106441847545856204894486175423815891538815127534963552570546529350473234567848802988838155629980841693215863677560477555556552347837313271635624998502215069238140686788925077356096301496582591863260934109837720155635233347682544604525750738925146774412413600014741148678394291158895260930537523616939086831001455558097977219942267874028201683907544738660154498348331486500344428163151058362266677161380315964324120645982344238300673189929560531313326082601848658965229188212769659642505146988791195776659135589286874475646348046733604916244004676119050523222400633008075383421539953510994150027939468899760863415751349633782558966188567536266615778636446315355731114005727592757305471552688054340519585437464206438661741177053526324310528059069875419419487691231600191326824114400046191809639153321326635569026650113995227929100814480235805728823158621047059123903210834968043614325687929581721273483806214788356092447178478036365102688531773024893149784074067882003040174002614329725513565755277660295627540539090930841090146483595666738737006609204944270098686462912470124616384082870443947752147178850393748904596368989023466446297022380392167498429209914986387362623361710789227472182571121953042614994469329506162409473868744998350743569210750938980827570813129392198816947771130676390507416838857982184975668772282570348491721804650221883641768717848820169844028553417679737905485303463206355437618870227429062719880623691625468223381105277866358647445589774813710906970005334142506028569636722759935152541295331342970200213995789778975873790557595814131479896441160425361883664103138629341957587575805623376984396979697439592444940198931571356633406941204629386192006891591273248199589619639299048231115434208665251562222287657820411513342662492854530682854766708621385976293279420829483676052255729681817803398955529559193267740646149792617799249659385505347843181167969233153967315304846072159572521502442190296004057893175989913352656098276397057140499007273366381356104639031202520487033762835085657494654909429065055195059219346003011457731193920061383461493833945169371340450413778699616034901188466655571547829099324920354561249476115886539458826105765412632927323473960468058240068909625783929480295416989030543720582883106827016976554848243577173893780359160982594512182399665211467217300128919825951893840976789433557751439707669127779870490905558076050666633909753116500367508169908580657430439264660915321430282642914703605605817104670280156434051186696318390887123812239812577944414286208939208368877171581853597154594258160176954519057787892310843915435835397790385153442320658003214781991493034770861874809277119438461344759064356714174986383182139739128098656705091625073823074653271304511144747013947593848718297109345190591214937130806466853743079901677190812510452471333154427758620975095445956619853591061371372247093427209788319677331819772486490172827939530562674135358547893149409487362850102225703332317072023449897329680656299573637124982029117041498501300112238905759211801240556067852585419359348705776049595021878258609955015572059807616460027999093004657975935171906505854677761920021190325374534291317913801559643352943120608787109770576758545771522670229368824419686964483322731266017735166976936732279177421104840097967564773501687235406541855747879491109091493382869047867588051757884221231073885998105900499762061050068613418710467650171831333230394616305296571148129697660790076716165194502450743242137035553726418345023728932695041856819390024715993534381679893172542952681758933161714607444624954602729711490509239396816499004668255378441831322622293665278840940857493329687249124194848378913939580632165169458406915841620120762479275473029625498106596831957580374765184552084215418138428275465167712095620155460382030594097862537017582434770885684092512758978836944273626442724478232236798466628686598427877752314128736126831613861345248775132111663974154095341834080331672921464172659189224546281514345768636604400690153937664108124383642403511791246961527714471478095567394361613517780237268712891507987306183353023623709303027887548831696729039142609319829369880433838371039811416351837179510329402538783295176572240074229378134223644078786593634325044288870774416342916951315495473969057993701153622929530354282712168612058046334657846422028781151461706636579521383766072480909259459779348299304621894213137661445186016420507115760753053266663783743607712989445794146170395798439209120825463414010749478501926102257024079649452676099407977260442365091225187282664598294948340074348891476292558359753001742277732685227456609076299079778390429706640798348819373290383731327163744594206824831453841839241441833361624495179136617371178003382957507541199425656026877558225111687843558771104749048417717582108125705167095230764553746748380307672815811076937181873472725775511629824844549926348078880605502560795923150193498562579910950206197823083460562773828575944705868994357318420949599793342128190382159759666472025794231667628092311255040202778753403082082396086678361605425501023379720453259796706964428770093372775618058239936945665083907484242367944335389383302056122881694109543594494102273255359781988185591840635572935941358151265626378103671434691542532175872786563997849933031201337819280655726763465382942479839941794747466190282288626683748941235439522702292592851583893871231319429362531751955579807631357660340675022444205859318393847699885216234431413635984690054372860059404839007277838456227995359033901429710257548377439744009219659965409021142788989018735397677374918108203827581074452694803236885088182056501562208936333914507258440966733668629922778784767314677138604983140416640236961807172767164040650472124028837084526021424675660036444951813334705679333544089586916901842884541280071000546082953460838142529772323997813071674544250458255456225707384431643848112086582393113514048046111350571379589550263400897632749785160939502383794352426845845652889507009386026180493354024299070320790262349227008430683988882055808460735861638336413765855439283418697083821798143738844586567092430432219926849361001307601558392407666506265967923410260580695262635890727113976648733915328114301466435274307353333514971876582179250415215382016276482534352473196493335609245615237860327701945987457256116776904852507407311122515057180287479238464517913109925437393932102583950308255657760584349063263527912601210794497083065088983593731482251989317292708725780038535219056180068270188248706622171531934701450297091189763983862416000049094567463123958519711106088423319008278435764757047420358461406946823219244188843832949313729002269397804135534717496576825913339568483299409272976518073393363039244168604783588789519484506055758470666894623136546784143747969689697905075125710718440891882254762900776442341208902836173462871865184839392260259634180984247730467108980323726577792342199626461316116815881028358980949114755224152600083118457341462564839971273571855118889382400490405860287700474385445954314021592702354942364913593245840677710333099989061835171410493078887068087467149931513947297763021701898934262628592870119912853986193487071927254837191272744029386579921149485343884674780658457015832617393309329344279262565037125438376917215519331218400442999455676766999486181888368017356507623241288827620321773995608721474829035969953860023061151050339120301305144610818919489927233163875229086270954737853054941186168129207483309285720568771383158993974360327096908376282165266326597335993187001943636787482260829653425758519407433659515125713424688515012281213012840944763376848267911259813537796942898947525434944806498427568504203613552499237964699120821076326761281413384178370692490312682045895449702147160529314857747291534057379106597567791368846899576951769042660069032376849796319157890384375688126891181081259269422518444459334143285740587747438317436921857873090728582742632954428239820146856991455625512212241374898279218643494607384049387472798155858838033939939403718026826485902217019855552163831619647546935623100623113256012476619760125691577675824111020892616196472593659158604588139285877842575714836815907655677914005243887651602121094561747781375910852742471852125086851141316735874099103307221372160080560406951308300897781659176322135448489220372394598149999740065172644825881352172611851564876450933053111742445610862298451451798908406411429999045654742212883437764075948726438384601704198041450220280060804304662097987990787698062453705787260291377543607903082005373410070503849126634167359246059310124049927936026723660305694674920336399818887850320695308744380638456288072640498108841517831929717754538796535209836865100410845915498395700525051142673386715394668777598373951821993684346069380935830380378252228595878485884310295289751851041249112754685145088400115540010958630445136888324048394505914521309959944717310491854290467369802120529392534066030710553938750588247432017327451910412338444471788355155078273740143054714994351111125117944051425256812265077770694409418787394348174351208564220624224097031624862154655889823993491492658141458810623874511778896504524128446171992494776266178724312566514986300749629312429451755757792507809631654748959672725533057939391749883955114922737682551296486673858715588843448949777199018108698675575710149849747156088082120122804718534992533872150237419552989333536806592189183833352978221361387999303553791288669025492571718743322695698501398356134750352982759850960204745890978504876707726058032889910394947105187507992956962242251093990053023901058939482905080363910738458156328578927367760156748378919317191037748495209545249457032377203254147028850230727861787271767245931437803975841134528537233825476464219276777095515651070366204592558316932905287907214860446827484245765140168388808807903528551812718707667887482646956695122267575037208872935235884937999998979151173500919036220069261175383001146261282175244138158167964037687061805011839458712983482429335646492968266755436118107296645631005800402433861901328448090813918536145619885938250299423134982154175752253866797959329652577379053541323371820356803950954836408455537963001347660424366825963028970129618657011577042320026356606663232868893302357405368855814956717941991678251047866368813101730413867098440714185532240976846631649911341782670099826601657907836191122168804773013377066900104804526866237776212866372667758055011194814788964540713066831973862823925679182641922752761166641085647160674799687099864961702989142090745706641056600576901764031729286515196105588534929971367891853987878989288870326612490801615546546322053331720545739168426819636150307740814417474281987844853634582840335253479987212610784321467232790905088442534622033241234613428015766966855093338547936539650975271757075441470418298616691184417757603464932536337981818025221030260372182148918257322974291011267256874152105697066974906814768779206665804405759929661756153666669596718045743059407134603605791486080221715310273630739985743391678997767335677370380929716419292618549391637199608491662029784772044812203749371400183534232954842864546779393807354030898214520150568305947792793639690464760379094471514585118759256356023683935320801470126595963083408074266002833432782761933730944520870889416124445420976379566673471913922215407120468452218990891775868057256714627599495400296043333199642229897882342615998062419279019951192035216852070189222281563876253592409218629084169241318368111418260579921436709028576200216258132924636364510307061657794155630334365432924292163424978771678400179315594262806077895447122633234739905066553790826391123203909167917231760257423496931415395626607533276762247711822697790105840524020877889272830431286093515569439012691723644946301552561564678071577665525131362112481498492649868888104866147407948568518053651153364377085867822505238922885994449570585870582005336983938845507435183785184943307045429130826952648243937861663742772472752184263691924534608226102942034426163390787682050043669152238962504631304539041508082186358786672366054455599328069353898620425932800687503612892056587685052184254302950844285245232477375967259868363171581686947214295229497178971517128372244543359821989862019386190928905517889977325602570895463682872401597281638485431552343284419421619076752849399522886726564444507056288745660384713887151765640148158628219459278753418691866930842827174405831553834341271998419769372901136543895239239645604487037347711987507497588867250258756674266648637949469689158500666475654964467771636853258358945266100990188493036256189703126536518371937459497167277531849878851391613269507086223092074367716232141528832511252367319951652086843344375015373360232548693847636595934107387834132752312961771700396062808140312804580768595439259990951274232848190345745204657214766827514430904760283942883826462965245750189753888771868704763501877517103429325564245629483878262534078475135580737227897662055674056676011798735889442920925910164249367800975071308822527715579018356948686728419973684354477237782901926475916733671628492170348673871672329134997956580955371290746489726517918570966385901984724306060346977320047759826311193132538719715442117522079122035394391461295632127824906480249436364945084346342236432790784020556376739888568468984281621241044668307368862774621980698552586571068217716765597098597637792323537037835327463315800478949341129221602562784940257301006937765720789156261023888750507175506689482256938929011898824270634166025591811186752847335477624756738151439595906194228457872428211024533800576277433455356154360817942367080430350650937223854909368275768154839250070901129134713785084293912972069067928742075784547423478936194082435396080057919460854760312255380110376627125042939671609434033316105094384306711398496015289322569499191623795471735314997304698031765907570817625240142199251643724933129753410354598660564367011067633173033208512122004749333703196989691884007997124840266054572141914920075229229218019875030370500297338828536101066474265699241168069506121650680904564702211877644735358011480566965300379554998561690083797050696500595081488071535887130621014815113764861857823239967759948949581444512773603938392760112362106515866230906557374275923007995469116794972543628429060330350313446489918365555457985368369398185637302499492788222732107293327449578831335175151428101862557445750989907383584094776903918745034601288871524153140190324306417485898877018298113573513399821837304626159138505190406312650697116282307838217898774825663080227444114324224420560494877786747229126298760970930487241591416419326382133338496518637407330812890501115087040951070589035553749757053919874317981128956673304979766525982780308761559992464787378147896032435320688862121546296292678764976004479310243594867581038076619220007816732059370869940790456615284233350694177144077968768076172505798045532627537820629519928319554876381220374741815906067120137172978966673005198363142011168964131549393455065427137555001761079880611083554691880468657817998360896787826648681917948400649806919823983682242016807931323826746162764380768886735194867793189359224252688959822068792624972442871739006381785752042738202361834654582689518734245866020271541405427929254492105661649524970323155315768600279151630206788794163921927941546390559905455079429982005893277886127100169763654528281905999387018104816121461213756849349709118337126935292509275603430334164918550675925368062763184155083611605073747500135390643579321738715850874709060970079375882292575255446130549357191739801793273161604642420070212264013811996729825091180771791477316703739797294113227816164192787619466793669873889509737107058374607790716871666520738012733022069036792812556883207250033797388179647628130528482353436458202411990578270122511419645245057896223602206001049071209240813203788130422553376544553928408573233108233156864385871227199807986606686519598970468122944854109105461308902929295960323319660707331374420026642769522584120898709940224243090459725328368344880897515393350186639637543476652639812862994593484766741956944621631260453002457869747984678891920391417850413446623836771619958672453538777377687186834375786286582288935408174822196498949118898768263818100114256925455938318734123600657659510786703999467579605710372900213172737970401582737618817945744598864295572032249205032630963461077490509483350888583780978153430571204968050743295165777212253683740179524388106200199265006500060297297372146696261154843886739995067347464212109749081563012052267440737781647933237200542501717294573473534080924043505767163799337557742315870592278985083665296467614461965307725711607865657337905301969402842408311039963848966704033055330154458595235637697006455125962786553055802091850341509574625311870569578867177075055778459424246690453574488309859236444763554045529499734034475369310632353038320552219074613361374776331385226639111122736537578764929074115666797872809547039773762639661916615180492598433894742239051520343125016551204070319434565533244897610075229972157937362716619622135064760025269911624495930063137306108250936714618625853742818163361493630494914862176862946095402195242793913742039551407849876019524397883718004612148832662785863369888884792612414958838456847748336422207330880119452379041716542614893553567111529352985678384888543732428991821963859044524432625563047781095879214962893312030171766501447174689159134125794438035553444451981342720652252802397734464484665171356734676571617133519728094322254579423672007398574941818697034189344167410298568075439140420142089689377526111909319658358803267568254402349099210508433638801686617911063295857738631612745009651481015319233063779209978181139994787346525805026947289293828891690005748225366452641853722404688368259778868598534333510610279384203795428270806698107207524620109541176858124757090345273265783881290426100823623046403239750678539041323687940832154038431646777670980303668643447401176696429793820254299806358636900472941649767653979470662915280342779865192809380313014174629632560347267110019069093573778239573973202970513891335950460173919471301397306206175003730252713884477945680367222831107606433338685072590390731110659357015793437675262863544649834578483359815535092896624759958024650673488707308533401364878657946636691472982245308954776972807059409308224566757547756901919593058023103007808539196332885304924180640074237915358919522998468550234447701404170633374303569190678048563352070929667935041122948038461608384931112956506016368944026310950462894875083236970186501153902601342727112359959277360617043623079076194780221938616536295591129782378316214884056176945729297771126976455201261574214262733862228602871754589315936139471797681078696897798665373302892540363533886577489438178851920602324695352910313761623958431350684445791406178826168243479013369061439195048116083344170952202830894355311897957932094727273545852469385907882346615767698406343541377141536952440588294095188232348590292302493839930474188387142277529007583982755965165666131681155483955180561638140679294795007915571354092575065606141651440460812621207849117701940237483610011492438771132842676800177988130117068756527612709379001953381363003984955392536583788282251811935752868218915022014763737225932412296350836615098181869081894756963283554730641947031088396341732329239470452069828514238766122478032496310194428579482587872042457147260843080488152419173009217502329759370234367496454047523111972330053642858399374060050583460942852200902600581694820402979315797238010602024955138599702847037003951579436854951341802108589865067857135564751879686197337068278071457436248521434018832803308925746509965306510112777659778453618632204361789918137178111683675790079100187162787296140022486721749077796625743829658564489095197434098587783225777132388536616897406926862315601218321322152161008429290972029547565024013559432712042850655110060987651205584229070118608160938753680871812182385495559461987733181438118073296469965775376151033912034042534792270183960031932459243063298503925196406863275248969650608148265071664827865860205617854924520924591898990548702887513693841575039443389236507790247937726715864527167933169435521967044522109628752467411566721248100612838082749013973578111854635053868202151029461897225227310414478535488931975552243432215667102458482239964338710737928485889808190368050155984393242093109440156893443446646558730194826014578101813299551771062492689281074036237813271763284059328283495686776903156688925849091264123600790798769075497588615978390231087323259255088464162438479309092426717963313386286492308166601721360069416433613543557215751815026237185573444921013040401672017716817021818660892185728858552481785762492479249027695613034568477502779376334913612218994259578309838279799277581716571211325218445488833600380973181853367007361972192934830140918936424401920839154053518374331219283909005257228559675809496899739375424674395377974366108551945060311343459961634964563861272301339088169086326360976304555007585359812976847425398474078558738027680279688325903410246000069521736771955230172496359547909350978320384723833155227637065678963028150810770102536658853752881553451532268617570965658617435587600870589713098124792507259387283599278573151809769801062205205198275033783275201942544723394858688088070341463941877598310912774644774590130693802031815462146767899038494066984777544950733177550222126602072679340638152545726953097335343773155911822448994805603935273064113388536169196935612142940266818464942160495715700182246243776009473921284207603890574286213066163940668204615699186535382303814120223412911841618292411569140905048397647745477112714532443066113792603930142266156187403487422940060070543915261023193372489769418256547605130922128594000927751304751377000000212256058121899235313404331041049126716635366162733913732645108633457280656290569725902942134168707097752256109480712295240908808267012867933245193156611963638971749782027292436311870946854036291943440287172953694471405392361257085716048742990099911722696855670302553777277537044634996165145615595654664862994039964188115739976829092438534384806052477611610296502127079053892407153746752306569893841795586117801544925165425773421580901729932679482784796612614440923389823426001531436418778709762791307208579398720787121012553815123378543393994828951463496516495455409597027815855536236002588915090712747309759996183269241171332600635276953130548012173353616543096990201483140284194743161439066871952348780389570251532587732024735205091395993351428341372039514105818532211531899795954497791326975689475547853870553345596322474801585683848735583720022228291137965042970980610244387460586527137812200890048743840813355529658363347815240483031594938784669645658087239802301175454196113751264036621309745941278974171932257838977761154202807083117225696797019906901614053235565266248421739919023892080905906722852792707198144963794351102077874681060781594715700044847793482400201456366428020819444482613821026607880533092884206280551582519143195537028474787422284121231539703927841688954544821082472785157686792664045631244881048907372046864167664887113696599319231671305421056158506810721137979159898635946825009388007959058175947435319658445439210246781486667777545421567377912150329258397690664318618950479919568453916995773283034826486054371237881030019751728790294505630671559118736268813975217691489123541890372445758821788203225525235729199079574294719145124719095301335546038105523397616064296274635002381117170879310040330560146843968421586159104572955664798395891834237612006737964941109053289208718459114490294488776423864885173066440146525671735644165591912153927658940824740538681344396139901407584855085860384548574965448471413020685603872101527392429673489143461041450574611942969184175981442266882791605865727243416341800471655891529989947879360311802769492267390465411273819418637281118432469314207946206333487275199598911047047447666663907289802455639108651065224165568707048704043591744625578908025040847625455288341643512338022280007751676943396422351675007477059077559681908235062849177398338550463205808946419934579806275015304021320521619441708867176448118776034007173206600346160714234382245916539346564632683133505884344663857292183125435061352087009371046060773495222549494491474443274381330711633289648934022743153194090981322364721607089606414944203144928001000132001890968871982701145426863594928620840375131858222678085123045264687171742537375764152610942238648575627579989257017643608739308726937241906620535211117150720181322214330292993621275099526421155797774039566080555710490044205753626939374326936987191195816707489729584305996467044661058762140231242715661510890799207309195783633551079575903866343915496972002696756415195034168932411076903664701559333783830273038943249020551357632376513669591614340925277063884235309951993934722306118449616767430057840209416999914263611232967160386531342550424531972196919495645210649643796278869726190065157948428517026450948356003646105286734986468601109734858535580917279881857033041087475934696264854132040555516960530860358647428135903473271686534707174757292676570848185294720297419549918034678055188863255905966261628546103137300584787910644519217988416729142766632706834974713197526675105971019506960002300653140930686056434460332691957367634795874793590897410670748539999392261495486450828460516411745404076761510112032275450867484366143598358145170770970076832356541706116085044410409207422441279956333290498970579325349746391367119997255243830974889429697021991832612103468719118673057431935333321435163806907670173967229760112170837511657623813245313301005041098637512913322291802592422678203572465318220414464040921762257357083164749255741172588464677164480835761477265420633394763074789742551835378804486912886529042101954803535934359752820113588750381953714118547102987241208056899171259773007661649999205390355351551655896274600908745193372320060114038440445578977033847692925075146946087751426520138662062453838777521782497023756335959929620653604848036001414201629238549573747399782564599445953575419796941475456873763208426473905233312576185369723317183956312559596464630366007372006726762396882607943680578212742805450653846401573442241735200057604062350345456881632609590684787699082327929787871648721941826726674305844074868466843477029648420315800407325663244592277826581791884282638410103818389676522597150794429961101240325294745039287859081764429311317626637465477902472784086974502843959464835116578785120358512181699609297813053783044622764872209182428133350280209813533179608332919881408252781612804876535310473574501253242688331340496390518549050369741000894761832711888091355792171193437101914865201548865260407542942006506010812847373729862077944026042093954942616988005945109437396164202321206502904771370873998908870870282306673763129342043314848241883519137280081309559457646956012825429370023541887580042910236584400412049817665772680126361968403945116002876983497160587404540284185597639307608337391011908705105076427432792050834166335885669171574786352167642783070375644186238951053056524671829267382626070022639372814309621306088469801701555831054638978530673859333263613453959282474152869302916407383985060478961366755021467798496867263929317448658613961871852737381672623068011576997589759497817758045306719313408465932753976007108816190243115034364044581265394114085098430396516058260479336523653207001491377750961680537886725218013008469442746617610465767133945886750786251638781077119163625778227566127441225364227252932022964145992698410150045430275835785625455337327543248064651480615562213735840092698608262559019942706348717253743010609267912291180347426213785987788985714768455878406300308562098820187261236016105534456013856483824304461780584610721350300575784440832191768305796454018768552662803621233789359229681964636068781638278973185116910841924229380392516856233652210231577687347903079616289539098563602527238335981777354633825711693663946834273568647266374353357201550271373306906870342979351463120456498605926160526232709810303126905949427521727143231142539727651562063927151999386421995410117897671342283070823083886377955505268050404297893119015923666154271355080881541695076832290198128418011202440752761457462777964676623375972772456219147559321461923187974833532148874934095320421101283352958056643783572976691619143052809331620484269958548236500692067151888381458802574805135943510150299533683982538529831327003464267077362679468464513994069341686079634741684497080882071546292062943261733025048606532430720652414192566464359684605901526109188705651488635768527387602875194086154039572468187656738975892286634109659174961869223190662434422745742974336283736961450586277256663241956213039263252556271833579509408060928908162224726962465175800427376723356767521510113944154893922351156076000966129103779484062909397182754312747981103907694170579059078476701720834703270917920106394635223430517291847255169023482518244124692242911411302708305438246583408494592923105411265247540350959900503702699156588696546023286308413582186989282363418218811527165429058835146351392617242784045734466402305734178627655755195471400917434827499878905369007788275349014076907327195965837356069925553537725349807757609253470545031610773108965942550734025885651661588552908762427750220182392765632497259472102077601195833773187343301883364088050067537862277423838204218846774688730158095026693673107819546134507877354054625091693365393674944765903012828710014610787659012666183725565138301754804154611556430703129140739607506552954972659683056691135477706512692239947250153521969465360445666106638408938797423576912144172836844561715768300904429322996028146335186030868622386646710499633990013306384934753535876762749692265704047621467099488991296542808390169758228633395922581297208275004857340572855916766225640584779510380301352541863361482334456279349653145850401792331180290939534487705358693830933359074913254979422410915925455211345021254864996296627591630039321042454034336305995032055985301057938704170105204459744091463912692746781920352205958841366873695614058206236994806595152505967541992459261772333785243387834554896301038689667581281527079915678986420334143845350504305355257826733119509421061232104794582053639948076141473822383371560599137669913969860800762637006951490356039997981410881354930195799006121559405498801232156332975410411700378879327819007214963444807649360795903540656785319490402524784671199690826603586062768199005257946503821484989896274122094332894156878877762452051340547120574901762596764798015348554095850621543063141874024076923955560579173008432442606875058376775873433850420375388914322679986740597250900399729622408142192040677467343319098258253294775133761842358541823959712442632002259226805215598180258438735218292553096479925628830639036095445967871205060044629532579352377891438721771616038099868048429419516641087109721813417993342020032020862689574197285709492501385811255729454066566440262192203424847064629979512613751843132923142202395658933898967535598341476477030933974633387669361313138662448695459588387540094912540149719399253763645119398131195204564274592036644960334092348879015574245225157421220213532636952204483030482892291795537050919191052367436154842591059085817329314341157013020050773819969322606860614196471329153821125301539377681614471627451886204526212660833804331392595435891729273451887530167995123382605004873064651520629323695404406192386884412704446760836017260599895840331339723565476198862323949865334960070297170433046450186558745667963448385580204274585322090470801490961169513260231032141981047988755961471928076270123459199796213794162824295212079086786186869504494192038010804439288648943074646469479706653497710545620396260920494878816029647037593417306571177575919460461828447968682638675824417165227833415608411842369033508883444445349383988324518288358231210795255924985097363505087170188824142349071684036366481322797420245329561090641000846531932040071535086127625007766431613822052254374458367446775528408731547263936586870044666548188212747058961074600390556327035466091442027395848991731229275334873522721319984942177243063278152886407791114576627196700547106147179663454459491272101707260524242721224798994727599689074485301794930591425112617845041660432391366132374377233460925540502410373723794985490660279829941545922796796889543024743856968770321180525137118455987911983370415871840632575481138028245207781269453959532017148191044899568587526367779008298264696577386749151377068502037823771502130470984390367760356333797923534981142751292565552567523214574304713991488168261323952170276658253187211601996068472728600783275696340243950321219333624705180808515452116091429827345415562104801237655451710107961460539964678647219332544080704036115255361690596983006129200057055972097273112977744607014553130345974870040278734071256857597026110239071367804947429198616695620211396679500500631865940609333513660232269373901662829475372168169347297060763607240048204135611874366660292952088916187843541835417114302638744130681387981625515369333648934507427441815759812869360453431049693867139020417058735047889900463174854598121644598952148975662744677261785366927439197321703010718202506658331038014943605275346988847451814288616202039774484275401545343527627119425954920209372833520664140544485664873475951666698023831676178967167856044942022621876930259012337298932558910334229002736533252205958565399794270769517745781870923292544533285421291638155447361475098830043613994461041733850302468852266420140846023597852326204367551309280513357451684762747258280135682383041718018151014874932297014258314659706079176868816477909111349618551364140017973208867678414661091939610918919359966832560367475911872172817646234831667407527040868484695425980935368387504207033868891216049360852624818640257180453181060166079551097220541260860589705004984508990832782121227298501427053091057767664893080497815042838340105235861222821191030714227463384054147160911384647690997641340623220607764459171471578143456986215191540311262729032334943514045549102829034639014172274681716406673371864807874796663034358331251414701520811168849312198646821121804351627510976911006034844704726891388218461962929229101804141785340294686850009263891254303753890268783239070741452800841177601051074795021481306862733212499474041031733734176148393650139419526892320103517271232371932685978332648558422172683916035449855842282292301027776945056229030450131656037026444665358064442015350768605065479449296376160037611433334909352302870756516261721582261645499446830010894991603590172039510012714491474786021337819594261851057192920858137317952803350200183468430286269577510339686342826087298387946665573414205313726357540964341748799837602889282936995664022595388353499799827628299942322138184419257672212160110758517495125572300969860260134942393889656191099852581013189968768119300822847982256165561608449431426579359112596330441587823552057021382450386092839165097423256902988809775656594406982010677531996602536167244594095786659618284048215172017925613183589585067730410005909523415484726977201180640927038828786662941751997242119472612219646215635793687787185349731028993815543261153203377715711681288967283035508244437774731216685179087973201831777808936592174670347739136484224742351957451057825996022113992977684031017929905986705995690262951611552222433414493492495534870590106525447046265034782038048393515342093789261792703998387295831647616441211584808210058385904498836014302926942638406129655567118248264099607418936129162412874156991408496224971590902677353398699097199804957481057008398530888759604494652718371840820154602658016489724228181506431459980242084806163900325671073629557194404960933131287442434587698112248056820402545069954084267836883166392986573522815222276216266603070771761231426643213041383569914098453755498964251846410219928560179452670308162805594756192315055108460451404631221068349170292612715726986518034092913635788026514160085225209369287856193948446526380154627597833526609624586581765049120496997790042842705623066638836662147142482947216710024918940309999798921512275064519583746237821491854057498252043356805476306012741321919107504416910505627483329540610738009594768515696420487693445306711459264131625390017074350242744002589671744524177023813214507164436086656701146946256781865838157392658266283013990795973897779883674440039732220213451715756827100548403776504706109391305189479075996191826656415718821189153666231371398920418456692114764125445247305993549148538591805497305941705571710856181761967457296377415697638092615339296775291936940105845972638750323336509438479634431216150371602560918110687821731086191753476526496126057959027618207392337298888608308686698818562386483683352384852034387453370183566954626771514274831819674911109193532885235563999735492430001332184420765054571752962440647150250698426923429015406076408507797740634353786483260433427097812330979468918649282743874772722109774610529165850934144972808338141385607062455357953362205234182216173782625736541668673448069393710325417911670629055860294115270336406115634483978752555965160083381871954420420464270430930296601245036988744056903381076769564452293629365250608365900959553868152538109509042022643828584071403939200259495938449450018100063270872120727151153334802510703422754548270771725116029152060580224679226118004615187884592780297667000559350395880889207377685574222222106001762962049438697852204815075895571467675215706786449470821541206809221439133912476910490374566354970387319177851998309517915822076717550690170555493526916733097604721353070949467580502088701350354182713808244461009111358332377300067391752703043766697644149731940758603105592037173883741335372205261766162630374076848078977240219517300956339504102899034228983431381234185297485053380056069162023975601571077816860416664253150386970749093750888617545191726635421236221614715800460320168348918182512909964602851247396413242689566372193040803330730974968744717162875120765597966338815053380253127668805339065290137767281567677492282826223502172929896383680617512503568525808433256366879441397982919905203947538269162454722933235648604037748385106040234113033736805028505043551102978527316867999654835955422807149170100569918112741509388220620263338196436017029601072559101792753466027247920005339104823699958727058563629445298909897067997387412855027973305429504961193439365697924451945839395644961641700048946580799123544960041306048947925537086743233302126777052379434083259607971011168159102317047418535773415263719208014792544606980752145283146051691333053784094355361292384463225263121945721078323564917571151044852268518295470956914672720520725912373519362997853798340131371746610186774528521923496773708314911495192645247856847283678131331473967440068486929807967773908597058566341516980298823932536773626464898396060130760345635060122314191110699441878252437108624268748929161612809618539421683601551845948826021926128227455138868114817473706276280043212623380276280389017544153492452708620335875496153630012617736439819560276698307223845469337657821792336521507197967694002828492729591740757943143574372207051760526679116373810607085239004464010240431303643266795200064502474836574406354504022001565617031578946099728955310276544268252653538802603058051552409523622539054487546894946010078522201336811142369394930403550011499236371779905357250374517809609207253574094827357413960210259204722324242728095211797059902564976508862902310735136256155299736947581324339061483138695990118673976013544118320409446242232673512733993125712768050821804137471565668729369107643206052076295061265409090723102118814956283577011456206043172027474967778794729617547931019020036229747717543408439966028495858875961452922844100365152645546530747816668141247389039876295623520725758067897635705663533106526793441842353856589530902821157554354625007834357861618220120547306219849364127262788457654296489081188155532231228630288400207505105010115968737610392786424364153711636416246778789104262787068469172105199273447103914152661350094124604237911516453851391826496145154922594602746205982379426029428607681742086318226181531403042574628781379879792385458408272973029488967478367186091477667303104508529927075188868030209286277267110655975474845171423047272215694092784012700478755536146965436460181970515826922758215592551708824802078396817565984625752602910772969786507144356136130515147518587538511398460465587596616279671645504286733864775675113135881076245532623990394667332967114559963537805087846731994318693032499462234742323248018906460390507441100426419241405116671488993970377991663030331939334931966619405712414367755857603991995319632061567513290498054887642735828532300774123108897744565554327515840761554357589328916609917178107888302874359133322992345272339265523235364606132147174984833630386125246262488010728103291124610921864225102343685399468706486115587505937360190690433375010476522267901918823329025276706024618771004310881022182487154917046931424070214493154911271930646113239285314965182186630818670610860144749415477306927922393283272140214144990609410336136557366544219068939483638608276224445800874034274744699431272721794161537972381833630582443352352302527925203350193477349687054546128050255781243211775529400526078876631160528883057287824851735525637120207782525428208441291043145077536779231781019295680998780870446625786569984943547416853714452472091855241064008568629710663113965279276937393323971573696711701666780260013966326147927474539795170206645337848690102526407377427382577891962591933399739625529576590285249463988431281142291386945878491514827847623928983207135197791715822861966849433457475409235794415865038729269663428793247380866502213248176609337993010552104442377556625221237097271392240734607516463906934280659334000606970801543969785478907364994365605146689180026369822315634524264307681678339066616104493253480373958307556594422389916170346230636918257583800259501145927160433603131126909284622969322789322810846082447732305445218431045397846675326324074580874034602804543800798077895700945846093969377339516557312494139477973435425473693378968961134497263691807350725464001219842004688794997532108578280215426031916770627137813058320465867761181099962814731342447059787961418372206328114983746464310736134196122363035825084674869560743896051397332382616061370543076695587109141554555055888508385274820849200906053968516170916456645686332566053208720048013766249212681490136422925545745674094082589155286736973804199543913458818207220252319097961986701527806130754251034111016594301804665398454656425487144717901901212295645227474634342779584527082593473447199393386355999763119649944778964067650455201915964571408858005627621023490337360768619818043595704729064423564184820818515753060359865221211928598722926615752693035108195729164422039926266166523788481561685360946335820469177237807331667909137998470353339823088774145105410331675285924205281251868813138355034600379561587445408104049834173060838235387869268935327670484884437532373730188739468996320818078474500072177875105647081561597085404487980820415129649138012400716461822030677832073521975635456600066761779130636540557042414690535547407258232801085707505905044590029302530254667398111387034392571648143669833155921738013082442971261751471040645517820352207460006950782346937037297490210656050152044593782309846803327474042985075925236041621321533166503167866390382396395581651613056580978477024770328576968926854363455115509532196332481661522388618627237564284696226106903252630757042874272788932790332431984317910165667398219947581412858432869002085700919738338833258458677902621401091295303222454442166763573940219607961430377083638892557332800733932514937865440213082919127204930585781885456787369993241825212293218808908861834087822247563281030589695869446476161672322329936364135863709020658443714453915683265539343548263119043949034225846211322414297682538976117026858815072869888822585891259910856282031730190307271132230792506641042126409657057906444266832187590421544591680273701385429484328400318671355118153796949903305551904346450491662077767382666865595964489706552327611014037623657651354690850198693818897026222181636638128577366048398775104667364690485891053291898728010966876825344784678174163674295035169499682213507112989418288174331775528462019975542130586075292387483359407182473861193783696528228824610967585406187313377913901108204474921051134937426065742535992445536008848852276176750259072623859585297793884078283409699596160932845493964246546654783473806773890287738054789365408750219934458289636466983786950624567433352240159329582733407177825157879740774342642633227387259242816548796552758707264576345234247883043560813712021085190450142951611302621440541086564184958124672398659064430381819781114592054346715443744066942471644032250914635516197365397707370405792917749896038427226501080801523815955384239181673319153975650000208118901309671367852424698734390027048246875241322224562106859359486699468662536033095906657465950774335660712752704698099189692008768814167495562540044847425235280238824816095218543213267495132882025628602198848145003731538959130774487291608647374143852604154791270417849026916370010821895641133736781275421144314875801534904544074810282238068674119411037561250151276698423195761658393528512611447726059955230314115235531585812415795689053154690439481494831772680383707950789631812377339683670087249094857600871042918708252970441905682110782649120496621238450853249337588455049403752298706937289327391732444818119453655053064803151458152938379889106634574490584519170063057403716033082664333205744806181930711934468765773415456964267213046431448637833606040151651049395464722751745079062031737254535256969646717325700798369450035179867202779639331048851730647975864763118533519651311812014952714480038224663496226482693906286833257594750360725741397823964753367955596186001540994016652690081786358199044736360566642641757443198787070928106603277595413398896431422427455004374944385066941671253081182699639873512225530417416801010606761470258511533659651901048849026051908618895252745230774273192754805379717873096289002549995744920772457206510581865411458860865504548169660124762048820740386317611367035656039483621587683525318644790683455782778881841883454857796947450775898385796151257427019026980900120640548036047380749711395515084530028424317051111989248349576054770374940610254563308309274132560020134866348510995380021917426147373512707110570651969274710328421736457252820745631485620342340542396246245658497660566586412235328712208881982839351292718526016451465170441216589150047470840209524949838036484599360630157947382244200217442564138781422040952460424209982666416751343941127629599122748104804138725834444271842341925009401161975868388700396305618253589036122621385095235958452141441878427805233354911996604571702411539158210674663146883145634717400482905071201331496508815442694353566478560420316089185993716721448922965900341001603226125148958423669687473659323955905991935207467252277812612790485557955360890331936775874065153990564863063456820022844488677395318132870046657809603717387445691475868308705226800309691157657372612940446030296346034722498362963903346276331245209707217565175370577918443895873153743381541554696380143816056653235542340465745791299814423010521664041144622291861015923335910792360828290327195164143775265993909322100792771434991244680480592385426283574434819765222233274311298096889191908451072522424540356613294651951993539816044013168545129914204611347082383251527993071661246156413078896709018203479330174326164830043095002994641002134828949709423829717706589772733240097520868551068142067243338921181497695036417468683911512690656727211410853322387229113541595646595367189699504903915160869462624506489307964751816352353550355242164145014613422955805416616448539904869550625356651985288121156321488662330711544287939237679272335009498035287275081589469734931154450845937234718914776689332005657104066650245016929424065259210896411386849775081869253940927146138898691960396708673455433035582056889775756560009481673541770007540092741784461063235617638637391115063655922821633410078071583199879914233346433482612927931092984864703768898002301811952090813828792538167317284383046555943354366825236060889793715724952764863886865503973331037580751567210243919686715484817711172701576844069870470418004838834602059703800850581133363758956856605676229805966206252279177480279729370251027331259170370885965351429421785883438888937752441951438762374570655297810002351088709273268774227051483561694561591382074711857167325612838608657921724901821781154431056255185906065095776666765967156068410783401992013660058895685831900638051624612013631268261053064349067732355610137661911765025942523157713184316124536741534316837554468231823131072139525734221370637328023669496235596312265581505102054930675632988386283390931792679433588700341175243739443678928017282185110311599675622441791470616269580663721922317115784816335045316476545311032474043770994014038802657285638525562515266183009417877816407914617261451308244599000505060039426570567577671361691971701749052408334963918154614275570804439572413234195236496009304309194318007934292385231249626992816251009304434371081126021821327754604679722271458530308537925328379065635848030461246944003003534262384218980261532913685830778385308191681175056655181164249623065253376155572837816383113780534774653258388038402906008362120519892216940246104702599564640518315031139144976215716441131565313004531663036361406264852902655137750720008149927032477265071466708231147411787805844852200649207516927576844361996520900467363672668458907140087105388237414758438777064144954560181863756426065606111232841354976736223234068498361673108589127091471630923243823023715536740856815322289442383252043891471929528297072115602477808474638630687413862630380345337511002775194459219032520376825349387084679030100249304504950945426542378629899563590603324521569328116605715633821394908048653893299823246432438292215751737013454018588317807424570484044448123855025862369407435912671935507909951842976066506038771832692109019979810089541807634251204787204148456635505673963187063810233018121658241550093584629136695546891906663010438842586399981786509130797053606923200749000358351789467409136480998498954754984389602323921133785056534252924365660223407122841546308405548474746282076438070010947050330540012742112885752488371108630219664025305999517419302142993951392623930631279922649666895159635144913050684731564467829240924482337550089217647679062372919073079417143492085405493082252930976082716799555621142489580062510041363107810173399462114725700856771829815761454693633444153936913832106462808471335067309544165027220036795797189488227543818988560419652564429186739596769334821830503485285953275510071341409466458596894856281283603180854339500365130478158070926705201996133227983411845135971125856337544157922037189755664035155123148378859695536119609145575097256962996345061995328867043365294539879600693132880478450413909581168765819540381720968997368448688733589837601382846421408232763788324054010661233316933221427437392875278453921136854092421744973217599835866418040717755494789187597711176295881586201668838709337135368036602509830104174150972201021078519930187180944186588666826775022281427123898949245898434524708994704284885136011145844087694538690735612669869919835852811119896657384400114010782096888574817518834426342829821834887456549735722723585870033161673088517768738572510361879060332546374714724250891734499491606650419380333307361017731444693576004885976500647182405271167968045906347368568835869895982323332600804676165294924177063940576223359337856626271164532079297560949646770165933015202336004896928958320561937354418784655538403498197924627531626440005607115530939242540204812519758555525555156764721198369917391778918816232652232296833670507609582944160231487963747061874620893767508451983475156651042652972680893902787283070417523077235726401181358877911290249794665201492896690216883139907488934967969905082668082128074970126963894346710497291329546566483931254648814566737717079470019210078134853425273596868432671863036662680704700613223645137979976692608185272097477743110545915720433844970515400002132838659206422190948229960480837502532086038232873788993298425001728292875762675433507746522570161705124115502974049575540303378531597711858031292047762831704546434286412766909981117058358056558031641766099038502004554046770756940146866334113095913428926789429090697386170483608697129773422596740347786607560386139768967839314111827918799577584768990891594936497222180628158111545039070140949197819527680350477661982734840908729363137475124800693919894845351108775309263198345624515425998260241286968868973097628361838063029465366917750661196825032623256115397782484665574683431930575753247651677601323812166955110221097734789411394529800016774221228844286894781690456951098680467018138038016730860739162063776847354866432619741687935332665723360383666759805264293072460096611049653634563670762791947542508696070104941970103798112695621861616371591024479758324253929798443347761120989778659894930942072817716439728139747920189714904438340409847113193220369555859132403233292392484586572633582425219031132274831525647299744524461094654115514412940097141716145440670277344221185469878047882406252627918458773939994766727380234452591895594897928809897378304874962770416883206030763734863235777110014956147297389296406402965067525192513327513939392315727000775168060038324818288245511647307979818557325695952082101641161240928434388052038031541236234313062744270216943469160957546495387424963413186088137305983812792124408007443494893373532510635966701702696781529080347467128591680158181559431247185195049850830549060103973619082841569377261885082537241706093043059909402157341263102047015040882207424068607709435212923516816175506033780381818670673807551510728045103045060923718067433290198813087987356068163208094357891690930103306438475587222517682951447181113864712284164704049021683441468853802116912128671306206940791861052691727296160951152484475776444715579847229859242466811902945838009070787654156007728732845474993262726860257664790053541645229467010863712359966252052064838531717692422321783763096977137441233332595785194347856265805798975627076913753932183053860955613394607470363392254322924824411428905061471518609787126290863979801261504517617247015497901162467732242590420088260947724089496059406402001445455407728071360728368883852629825356681667871946915738493726746915078302019364346450137641429793503057359519747528789177223117528041132828999703456459907420350315960981507107995162907807002492554741151289146364594310412219330257018844484723106054589561717806672089401097009829701495312356934325141505289986762266342664583580794829351166543129051536666049419070303716993195749250429766574445358819136972948327156485547684260593615646819576248327345008033172233336241486172965244911304932623550895294281305250807395052911447338217258448331759475309893918388775091970120281028809388432181859269614158374802877775578509148017037000181413280347907263208766154237833558288023595916470473541243151443914727854081458221503508466890625915955784563991269953592085799409088107785131913957028336057531945857095259179642451545456719663442497027702936639712450883942693418594627967413659182003207602935504828599634010481554389114578065455103745747478440036934317684414569107555499888767181771702612144902288745190745265087002976514652770688913515899801702089851105616893309472458740144964456391045693429723319872608280997390968220794975041541649531030780073601541893495380245953043654572604683321814600005470075293386702139154947589960385762310540743367105723713051066943459575671381438718329365023477906162751600893012352630019621978737105427379318681956486337064042676205956071584297806613457116604115997170428680738949473102945812389225472548507118084793738158019515342204967687563241541881283417710223859209279121881112210499509105858118333828779406096290897327455789858512970350048081070618500543241132060781684597695799768572534564323653759332101540578550898477101026488519992358281335166588433850273239298593278401746043037303897494660860990116964056110156316828708492592831220525066075048069949392170734716104747760338555903849293847396003696629143351451372721927253762546421553982467781268288129004384914822310195806017989135071795402699536529547017843239061884401207663248651444125428191943326647083945214685470978031923425465443413940093483334399951719926619132418730007286452012219922356840011069913627917864037900802607666680754090445720556492066732193838160849136153540558025180625162177792392486382536110370971099458408174460870110852690352931553314531788970377833394100915864425091692684544601312144960524830261290724401899067294058286344098756583053272873676139956202930733642344279723843045238335041879813553440613160078323875158532737116157820367633435406372609839461735422305574877650512021556180445484194211060836733041467711715748651697897333844328453381417222353005952783473745577348301639360703688406412128123637143976895606907994587150955024811849925487078061160572510888600212308893678718537843850046073900160164258567116317158570130162317782488120394251290989241371669731282769857390811318198765957835232263912814762853795969439658274173827144115728638026689226552188929932421976933668593925964550412653947750613694024681758713161790399427783188930635420647113651132013986973125317842402236108105050659093475860911731542584446193057532536186975107457298039291859327239625501158485140499252743572287685305422187799538025913580361014258185319596159804255919639304642750841351295075506252724172878543486838362882156003214320078772525542664912946060376259500793780189849759656750252498445646622061585914634314273595945210981815771819162707802806605437066408135250804610780737239515879503019199337625272569686670980148797799689267947995550799028508247175474351993199325636842716070238653256838378407790646351813911749313243384245753459452501001971702768058638211672446800255387942096725353944279583482081861429024945484060431363208924643918189867179277058108694258209791149276759084289452067659043693539229502516740232686366755435802504744373300811866090988335140215010320527793825624227075580917809013257475151910038533583221653186242186158930013070673118320504315757208122139654984511979330468005174594750288988871532250280952998105636781758186176909182846117255746760252955877835995129404116381559933767600417109929489087694739799053379253742843575228730741634007619117451379023069580156302400083892389678278107509591960176861585768844874053827614236455051071618869809438693194932217018145188856834906165566381958296292327377904859870687922214293437514013362840402771664603301120125202907911693805933845664854663871484712496982204138790455846268112089578104773636158456525106540699584425399973018002507059552081124274067048295630624057680231309152079453704200182385472264220271495276210103846875679305871035106333226223628115271391098256950966273430587647709425015379491905996077347899682131484671308759411815534177500484915153656525414689717527794212445763305814471655403471303488699598754432708553855848769492269040732658270362885215575699825501034956897852620575313821561210439918771750671669901363987533730920127145044020493982164058191686735455455414546552420579893614752591184360114346898519015422928984153539132437334870699344404009696291811315825736192134959304000494607545912241710950070855945045690799328115495571636776254009411900750472842002629066033935199494310237587455614297791879968601832468376062407015548001910128011026100758091489708274262847846368317811638777783133391082872814175424916712784405168711432789043140563150336732564939473193305876133575035650198925480904531649375364439451505332800118573492037011320313649251275471827889660775991305153686712271476983872045690445681489626257105459511801704268434404861038500338105393351616987585967393744401895746052709060067687850242377240961082035220804610328596690957366621679725497000650726320445874341301736627750487066049085984770645222165959216078002007654871900066917356659314169126259249385402697505797715492058882265107970149185422387828458093752647429066137999842191050353254020492162853212069117004959601809553724735747338945135218355061913922751353305219677029204697426437296783171805673552601058173984716587600435416733995673495229162555396555191933317325314698594633371990826386086862257388831451512703144330687668627061713948409123591108218103483819198091631089098034581474772074727043314243198630887791054874281889383667287863107359298566638905903290547190129248532812746420492460660243187849263348118359674372573124515293031923035588698969764367503912478977852676655944010610526471582528292895816030321912273455806146824660769929116628596889802988926709407826916808873638214217143505820603051134109420329460063181482713087770278021058344774951647866196014636395723200246217845768139984143997450229987667231502486319549306645206036171970666302062425781039697801953972428990027240428571646541016019731055000319710701046489366722826847413140558068327182519983762796678416336216004217262323620879989349684090806289841765494962900344452210009423173655037799742921890166877887621551278486780773755079378745218434349729855130132870765835240675170955878578151439677298417657882553304469885619813032066778047715393004968304334479915160308206360269934267477437123304098666352287883746892111742855368245697918569274351699677191134055661419510077704550224611460165593561728430357735237345119321440552564669448908170766368155528718555524126443297482355414008447037742753434179121791367645275284273542907170198962067540755776227305814055060597059310345627407512869540818040532428190220524079017822549627474408704848740194103952885823401809441855917282709899818529998967561347204206850076088199930599847299169449005563242304115149147428818005726288827365490130310113469889036752522367337667670931436622381980884507345524459319877905609139815890518051796541691897707664188121659743828326491026895046745475734644644925739301831585463199975602937596999309511835614811215517491154375032255106811391861821030040984701205268427559409811030595591339165278008910711596690457255639867294640195612625019903449237743656132362088074746734829387928295786009610479578950656598827151115770807173606666516476411571049197790714031213938057170957503035510064369721745591919487262292056044496258487749364594581812579855677203546557017987308020948361880272528114334498838913587571415036125022718347691622635757955468242850246218127909002244652717060201687792901406566574745072027181826172790708736665705483776359383661082128478473054490372739864376512895202370874429294343461183358599429732188385309778927494239644961067122672453464702560793506805435945625194463170777883013124373219606707564429196694631029811729420482355938062362638464898261770659467231847810500594943671017376350814283201040834908122431863238862516529881289038317487524463100373557141999851010440767151242697922077145952207637365522590744011201285113665668230294715512149003675616211041034141607963286996192674429704025613797722792646429448626819184172359237706408328025258351958561205177462766318451176624664953859646873260956569821700697960279695445905617172420455763655448477677687240591566167943532074295880074963324553506489709697915596866727164794902420779401939026472473323333054102692202047632070689354632703179868606317389139694050286950494827553044591945216508876995903117350739536084498301413089568511537947665292209889363125934335093607123267427225117630833902335883200777724360737152348390321857609361041725640798504105312574831138587767469135517020287944031481056015036334574231616067520377948728963461451377309882746096829215613223825904317687855922510617725533728431101562811985058344493197958354568991071497178788191401313615371967150714489970014339823418089446756448234029678047589643566918793947880132232004195673722356912207972529056029992947608250084610262655868509571746685533949377253684160562332130707118417196191270617347146572347520847471309569248873247821786652380585182402432180129859100954804123143913664640728518387845029681117104949085152077852364807768835327742156738009941316936264774538342748347088948340228073857460524081625612867830754015875892573572337878363721581291833093621952662745271237461142743987401786256411085829988069806056544961078525180478061267878117208449429596710586135489160534652939602228109697379385505673271732444461012859711868050768303279170838844313353228711058073103051241722273516076915680660890243429097767316962253741948210924204583275694560333920452990600629265887091154787560934387237923570967525478796212324487234158405563929427117455374966044632302349175698310770444302661795432852550351317252586640456084317988304980115885621254244259618036632647556350684410238938512709460060993649270391386996896710638507944523257416426197106251826556779116375326441346286584645288830661041804461807082147970316458755451578384733411807371505194595922327029522410108357918334845217017107429407380680491730728031696175898299468891764135448262013401994672057577638281236278016765361601967866432392846752990925362664718918645387174182962365417291220779286346030580375183469646331592396703164417458946678006047827631337238671666026573187418639426949248129871248776646635564381072344863123901687728500056751080062550765052508746680016812363678660737460474926984418058064165120102725377633555312097131892084903681265620158144422798028048215188089266985913572530585912307885665532849749851049729441340190436530722605955171074890397729323425257427956863964884183333829523323453987570019991778646522003420958061236482460194851760302373608528795075316016539105130398255577628714886718158441802981526705908524198305602218877633592470672966661380498742685538451443786125186079870837427724911257745499289004031965528534276467587769324381828789094195850227452184495572981912982198393115152863572398017755954375113168523968859025802183611215499230827406015271279201393409038837529644256094271790166191564271753910126038298319535586200763691449471274177859060319950517183295400250531087066570364206506493742268776339555872054924357698499410279152708543221494943346275409317301263099403574136477973569345729609567803690310524337864045000621511837778617432867364649101216956519335774647443684616972725958381067543704024348542418328299481224891874334764390419621088222001442088256471362264328752746008847991469733569447965464086304608612777264882642216780850947705091556843324160606528056818246014193042183296604787542691274126904854005090200874988658689924685632057370961807665321009018724734242273904673871151289792874688900521208387448666385788539970117640563938048845270041699344364124275297809480638122981825126068187767453051529137293744929016794064488745888312315546452399796775141937326066572090892096062306546408506711275749466815207511499802532132889628500319974063844314292546652320207292368237178157112525954623739823566950583501386826677114415720777471026993386000796481853251984598446167903661515813216962373663903156555187709866678440892575034089552870655855360747370632958430260278379086107607547727004186027722816282314265897641369954697281814578983303909060870400924067838330262608585987334768102721705706799253998850043791385729548491188042076972624942530194451740601224942239256534545576777549286179256951010369576847897266698963092004342452490981470777659688967103617466255311727309831961340986629235956831609793277993539912104502114838220976483506674204074004018469852467940190735048238275403399850054331293957129269255555064738628941356675478713711954356283833410801786552130323760750981128686171328028043661413473480241983435196865848518233614940569762619613819904957941529817990991823844663046320004751186135566914228363430041657332694853814678821974871498204937845709598799300302135673395012344554691486785076237016015625439172751007866924994492179605850230741918786008678784912414689680698192795110210093644355067283344557148079456169651713150127921203984561036754955809255775343206993142647430944603461388704244843891562304820540825027586381708622847693041313209817935853316341479527095826452825683379136090236273355918442965049857713327742498979238376026489695064489148636133250831467050301942542832328149937954835135852759397767934834221763661472064700104590937788965268634765278761805707634741761725007055119427908010673204456059745723714121568771698170746549731302079788597644367191107341669230900687367756100551328703005178030884832584344023265604779397601793636002657677738934356003113661206008641830357513493478333568607712165930109631117137128580468581473271751720707460941373139637683935258490946208664128324280212361818892282862701662862739241949968405387290270942175284625247909090345154317645018880075702203538167582998971393116939452141510611025493012527800897252574921686381938902574688278341148498418935939698132449710278838682010778303360408129746502116980854555158864543094621697218701996810715452295219778819121212749370135337058728654010118729402481403575194835154176823853368418597040521983231999479673334405227355048007791852964926581421017159338758120608207513451618627815292003037683985734750198434819223690496754065908436272157610127998735221680909187054261398080698314477774553826000248814896074987186525958918078291193873940676804894686754976300924255465494632570591873278602297307991955319781448155211890858201209158977905035516876344511758453819688844947689067600733518133275485379502697198511990915594710801879658331350654062376842062273064755658440968713353285472959363258908714970647214692239850005674164542942539164821194166753420023139123326828247896444052427729611100365320005163516302528797892566491657098803787590909441012349376294122334700174170653416152224106707230733993477529292479161310991931602444447400044363270402646101054517749204283584972608153206083981464040997823754745765457170937219930028910232937560831128403197203019605842825597297482954841459724440167232796480670676526905713865190899583524756747719399112903376807735731043939766879031588471365742156281085944819077440999771406556905930842599776685947497059287112795911131959021946622018583659209686446512311874065227158662354223257100446003758445460920883694332586035165428085603964353117601017437155541569616653238823421014981972990357652052552571625208053058352837306337329696150855831913081282523925883376564796448629550594104346578468838674102211486622752933450699017495185079687931316800128877431394452637687324919831959572417184632000915982122683873702972457778758910355893924062678639101283813893139180036230852301628068246799899408081157112778676908055093938773706108818582660313830563117565757566459516713334036975698491269388165984445516650134590171131095532316331469436199505653026279266218217706584372315627641393254624680468662190452448875898450978649885488441069214091425726177876626810003654305180024579672333776233767779006463375180356961450443870177285827326757057127219420138269094053636401698341622096187936493472964132672280059075543624450483714433685245862946584261805565086049239464714242467631400156043896475817611057565400814225496650352139609141531998257557871079616369991371837324410825979431226434950677067201198916728904172109501363597751967840672126586069186892313857176896809581846746579747292756338165945765769385118576596214593057262097756636877562763885089838202692799563755538750039531822185342193399588282506890182262829851060952833091719459520855901702445205850076623458892650358781646872252617670894313247371711724046228886352214992423947525913799653392712639406726549742958540857637075472995337492400524393398149014666728299758156720268921092223632232228648675661052140649095883942163055395522506258930000744330073629773374061875273296933857038302993355982967302662868104461775022114558208259807353902672451144051349434266391635196642421487487553016948240979906441251802674492513987958416256963154787265634146976168117020180890384641158716983318510292032684659387269886695384807976628840631138941759247320407687720155074512227695870152915704126293436425667118358663541869217160644296368603444697980312940288109444729596141297315402909854415570340389172135462794012182326418094165204348240890130117567003742578980461248122158547238984488813595187271012647658254458112462366819959706269873013261925494108153070098450506365542879126277560545369742919536000163746332575880835539273675519944184225754475625886380509369038560221635448883640435219955537555067431751605090938554841067975435881085889184484866952383148682241281317753094294845479475171392324009837827522243673712841672070919714919585598258947086528083321718113447437048295811287067498085262568562503397432444761261060650751103517674197066780420833496503047264404063312007594866496392299179858697033260470433303151293713237622714133272553831488987061794621152836027956547606218131856924247983345693752865550352759430143307942141703662231119985789670564655973602797915064259793619633535140562563793360484487057517932400891219714310793848433981715203374880575904229542428070423888967078758293225060351387347944094706840038692793437200376388327895077315978404867523984104529251547546456901654598763188563755951645089794388611398050677483487367773232702709726142869056251341717840234492140314903675620904182255520265761652043085742837429783726866439553368464611429829943271523824219395378018283400673520362490351158827350632801385787530129891477207113690649626497692548273634525595966017488159975251172562235193103424042005295813107715547784688497780596462521558171757619323350011670388796841944547323289870821171503793669990618048924306870180675915776914437619162336405052272743540295272270146106026317148004848652599513045176289366199646668931891463447965316453482929383205356779712057987956474607284645534374225633180167300222485552495983669288074040283112209607965338744094481545352597588504825932088982052806955676361380203877840153694037786445396245519963372205117976890413819266256045893943366070431848824267991468844054463886029257634990154384561315486065117437786622064237421527805845831154269044581890312349082225676544754448585692768432324225308420343435032842476342918542609152297686257098042934583274786832083169036510636102149393778482741058536757649367963282685121567213892298584103669947009093664194363305160003918364347838620953187370741373377520486829170356691824525855308971867418155030966719377186644352926736916620616576152919690041902521856598350254797714765129639892366228642846659912533217216249898899133398931217035480519783127007474777205920073279258213369952570086764049109160370724441015117276214016058203761321635658406503088287779529970111389436689397088480515152908820473867714377731088172171681496717045981967477136692295779345116272565324628404157622968396566073770100005593467754194005413170809652256292491030862142416696428341758251264413008396327013343991057320889155382810001179449063600308258284071484526344947125123387364792149364097815023752648281488865621889888799740980630492956162327310581178956372077575315904503270991624164003975138162582766715362634737303734513331451487670610312661141339836408762106160025355933903899306751675069304116374962754673888183950319669543273626014132158072258730159120775384684858504417214481235743050914209265556070989631081209081276798356837996715097262118252346981016916090632077516501449095041989621882947201641158798589462643902755849938632856065618156774634994245787140370138654936894844730688752804953652407793411855333831328411858644490373069264537904751357648393146302595707120572068058051324562205377560326724915612959980434022348119818115686214393147309309413944338547258489816864256747777926354616501946989926581207692159845534069270653430342014026071441621511866745162623940789688908689142084304625425687030122069376547406948193004107281453093198249943187288332505657640613846747894119767044782396561088095350859641074922604824716409104907261873891311736776835879023921284719270719842471218047973700967958721383336053413351412141128941825671281624109890414077422227654440728877959580933331358179835036222282477734943946076516479103718364694032490584842348789849494844996159375485479908067907464692528125445996382662557288984723440063246343872097524346629946895786625612987959240702595816532010166093387451820077449660264473636175695803422380116689319071600524444727082096818128127007009848237808799780318474219633836727640755897807539884590253269848074434624239209892855348296385422636687144540190813848277921504448871930073610113558995306006367225380559907977732988693746346168953118113011779292369528216883697261351908654626461577874472956000462983000826562612819461845129167928795011169324071787084824867327232981090527807988388706617570063496945022256694861453835422094953368171281096891974183711372327047028997052010720709972240775224640679880732939315901140850778838728397875559717130075188422837844340778485034071924478282024899438659982291939270127954483411958585536353679185820937361400411452715647152723374956283116098128180771019163367381328736470828377522184037470501552946252897195259636491173251740224678013377405640870288337038647425641957415187410681449390599266251399737825432727554159863410330895601221962878300986779724910220802857187650692402249347740358671598346022212646497359083514858488153934607329314197007806462157730759460541994812019824185057327361154634659968523734328464411652522798934929903248552805164590176439544898738041675659561960121982449259899192958753063709409288886562781513112666196658538397976914865628095010208840547380042312026067994438129939961651886024891600487097708089132687659862856101783089879165078988093393162879768683983598295772239178462145015588593221535219019926123826592608473501280192401895649346222282688531773809277964068791288659751800886257857578176762179101283542987141959267493401373967847509257727535541021281820689920024237279124058425916982642045800338158043372412089971254431502373870101609655945698823449291320270178476905353459796238009161441491532758087848418857413152691550304248388749671719714612349048121179647000347096040881134199842919631740691215632040201017037554043468908542043753834665769750838915917550043862678298980568677379375262909073425222981624308284165542710000024143660106193982162971201155689955889154155346250596962204186784137009579180158274311059347970038715147816685252809871736343818376849478530703111336757341645763249996792183681868730063622691425848007271765970686295908983478525876537700955694382465342514508116847462135973494680284021948560723581935412876473726443813774980638495943301617069149540083371149736781272408433048056390046753915480569425594416794319765071438008731162050515783641565029600477020941351119932180443239143758754048125516720098140635562139296460253884523511205284796263181218587779201170163262014753416307015154237554437598792165712337634754805760081443669386787099314526196916335734362559539992264905859319964340548258487914318829808988868633020552689042439629185415077899095422400811420338924239191563220956940375079744795506205680263352395984854228331271011528483051090243101915334508600173974465788879489998475489702034464025844719027340235422746645534396814138346367534951861320942498027931241002669853501539057729033722174272156167313271221129783557544642631831993601394445074754006279291452744192088574848562112591677045995048693238143393111873273467235360241220436503146048440000624242209322600170453783589932401619652808284965566978411186088875778793499667491257824340663191061689577503107478912594282198939715318137663106699985324039839182715804011804803327981226769660505984202190934686361366003698314187951861945512157628511799473278706105453225057016035184708600662138972289061596651929957520967657104576241313707878812696167249442523447113431993000372000072920798646382847203808678001300651051463022788074274328800667367224113689745263619417945236434640202020575931419038561248569617912439736575082106372962332785219788925663351788031045899916494642427103073252599586202366816439394037696260339956020043881457424627532957966645104437763184209844779596595732730185695714910456078241526218689482257879933202630576562235248811155306359961853743870505234223148779455512704485390381226243764678686830734369488986420602189837308439416252811492378696857058574368752879251584876008242662289651186717925628029676334079284263894846275420519467452969937660345695245803785002657672693600620558643289678101571219088700911187397415207600490648227543969081322152709808398226528393729483520249174126646846669580262604173897228249215052355354758521818978778700453625673118166042490402407369324006657150790477132211746533882169865362203926133557098477361662341771185229105998175613137775764873429699484826539985468586768882238565489873263954061903829745869370879796995965551421872265176047263973204720558873168689759320696533774353464235401427161701660310971322919671582551383202777393249860546278909823303123694231648431327581004119174816747569099535337416425345316340422149004865856302332126666431110036363005158722258116002022446471060155312939217953116910532957739123356563463014675879778073973734129323771390032830267683569434855153328166988008367007130689546642507626157741241865218653935221264178285818552160667661091821811189626040325275352435348347129271872403536168657553587485572284718200576006297425169198288799789888221582434458196309892760399329166427750119072658708063425986316845831361218922007928146133841141836853970613382751446320791022712848242282797210690999669366045714800371568782915272431116828501257042239296643516802649788289728106403652074728526776598819984625567245625667551903357385983174042577842096063552597535276169239428815529573061338332185159051188784009065229193651522840127572940422377469796763457212822069363413859408287238722370812153061429771398591909619478577091713478806627292057487204027771600264235222611094183682922548381930773905402814864351185045436615637294564022766296348874396783897518960356474761862813141132040937544537496076255119107911724198776082167070618324591046206556951885402252807790830654067694560164259126570456786043753475587916005449268558375751683161077875938671340176398442399136782003934647642851551981061255754043562686139232572724670163179370060879181918905801874686237995917132761974136138051572928742395927672646050069806593324540550546053915312724627911973340797839970222480411424573214503857858000914276083472057566823500891851882860242178623510298180171554761212823955125084342738451440534006419214928125304956544000324343160096726323624440434953581736716313113492985236774988734742639557985986206324312720877083483319470626893467593157633994024693879347834823545459506294260266805094629106793933633486375223478709730196209890381404032261021293913657725099157715535439239153649949766078546429539236475686057748426967392048465680723740391459135551965123384963856542342174699623028510824863936819325305981976887223070864138389934435745539265645819067636462371176011967135390788133272971142145613712204537320102968100223876831837013920395212499162986907397208385840093094257090299871589923282973063143077973029184731904190055918299368659609773835191453944350374029934093823994576319627691113434689458268266342742905572577407795874255354641798450782755770013462539302823016993119813685618202154283083802484175367987296244967300158562384028881879228452019551271241176538923521575709739315196510420098054385469108114671903951272608814008734921110521544725822379464873385267602457248105485566784438750563408300560380322179878036203030016611498914388662167496156440562857151949247082971430526455788726721279664050750451594404283156888598515754846829838896594844988180211796331918347093722543031665613067993027727151324533895868890585561305116824859742061039911620878060717872606211554733735698754569095970484128528427714754322748715957088941423302384157243289762435136683944918608732805436747380850727321364515663764677507251482719498699231982008449701380129032134943148369605295649671736991178226194958559529101991859409946366652026031038905600817757282851049151938950468324327884560543105441404094885626427698362444313374660323765062370279600711158099410171980454472803186243053034884469113575563206943048175145724519417500939629607540847264891302127865314967816188990730345996404420194091815482668926390955785754782248938297438543520079561055155466514914321570124835859133800094509229177869244684636862398158488060063361191641069380507236096260516228231742318888417200737802996581570107217167989465942543207929533243776655489408448373931491180469211393736048955440598966634583801579112688660639506288396506967245840579015262499670100835968450864383401046724468961766093207360501498625184242964216251931851222633963268026140799212984411824049710978602520933562184226029949352994509213370108677068280853661345382693155824481232922822615704291307300661981036143439404815841464810379243334029792888252465400216171087972157209861360180704473720967936861041675435608557275881898003851536649951406519430324465670145566880007279142361716145168989267914134207081174003591177141877887327007641785009406651582797953972568226182904549805295969516634697588094113938798369299134567536793113450261379684121175246427244214326024709041580006782995472440086248279100761180799182441166199193803823383236472250251938791855462057801082500542536660403040898565164680791891096721846254070914244758211485330857835082188285296150315701657474642343799185047976440700627772581184786007426596877098551482398488375637003280471054018236201782794667714587605947646782078799423025111943329741363102384621867267805828862958596080885516505756779167548312804778517130194721348497728769941019099712771482045921773047984712742291429640668954918754207807347387251118809968271107381118027337683020299850030488567565699448660294767833238525982086459399259451982380225153260072682129376528070259735692128569026377888228155426630358590533075476361771673147231788227040603470321304967964514466173821129814697744504807012759278821478637115654543505778839232443744479655805162661963769378866251861746956854510241186504389550463263611071804423519768297256489544082876608935596031554360729822283523329833794734708518986779100838253394761724294875282919775147183277789308989817985885779318617567876825409870945053674378683194497396260153837374616923005005204113654164052988461078946779004961924973596450653034186187933267343350632753980164651146541809270000790797865649454803700658529260127305309811043593919370819478407184238516792858377221939621772545257263241998532892899756129828729951263733383428843771021413898097527989063282116638814630956493943401750715973371604981340148489442824113988085218433202735890387772645551082521327445384377635059672613768150924089540230544772575571928291720220493732671990782350717199143546550171051229013141713289080655983489000707340403387394835628656621338689499058734292293415398670791090363253748824094043526287864927608492214764702875128630077202873383612500935993297582939065000541304452347873917744527070752693608966199626098906608970611249157457069485227846850963924488917469634836725574177122033486723273731091550919301561211012295829428085706250952353011748125233462549579680386627069558977656954238423716571067451279659751460419357820478902730179422483769723368821149190186501336693396107739557068832971172939739021140822197934530836538725272878988836895011671263296116041699006632319578246824687290382489611993611554788708041363430425191683288857810224341548783035921459874668793945860929263440605412698550623815350878986248086449680709997974520229717087609468845383819729491260791434339046089119920804341192336466967386748863459596801554065882261583669389101705216154475484859613045666017524975504519394773790369323543226739628911243006417196364288773509134062548408545475363930374396841887935765498978082876892576281940058549456275276612874410731124833318400344443566484264659078030021683291439544555641727995667208931392396283811291041097913530937082347378946115806324506166820363016827476183082811571068369352966668301079216040876582321254166649019679442162185965420518537276503275679779248387027698433858300791837710982272108526943767881025060818317291574288787880269993943358154464052255812151255090078803972044477367857859723931525732129414581811373608659699709984603035157961135500095109686885047728080252521693556949061769816505663442693719502858865253027697115381605679748975776611782963643464555185882734625594985762729021117389454794113350978500696460929286179414563999645061780126743093332647954970641440566160026276156162399067556633446221571208854842798244039048692665121273001901085797126971476706639499033821442513403273300184734382293650307276773147234207064858357093057504468029503755442862967476010374450746896706722233797828482726472812644827153117590452844354897720326870036357192608168670950789742334387123009189145691537793639293511575450593964943974861057506506916103403792330715826611305337470394962590067005001354529682838031208023718406297401712474117399402270102034160124204099262923483665363557791001628081818423252680812847020855323195230317269075710069629197712520852319860983175533700837516003770051419222469884619017401090226230398750083281947936627100618208359755536641569330973895386363769876631716841432040368088878555652845931381912496182216680047722800359625991744787298012669552802915425854277870791023097630865642206895636754800116576766417954373232544181397108734949475010273900614623649023750366467848470000264854036412130691566381073185440388251748099326461325128396972570157150964171758031425470102709291366318775891143919599611380313113657261504267337887614538016913509350183524758050659606274044158699254110072772164978633543171527841167853806332460073025905968576784280927011248155864381132082984811112739642523873635139189810231365384987826056900254283028793721441965640967574252983495425330740902644919177835885279368909894731446889571407015302674740999561883281454017261308874700724691679160347909092112697488426382913447833051195172052649423738798034640264526663504287095845291361561866059366597886198634342946961781774073332243393595802582791705382417943725940226770650443556478845507349240728723050483330704316882316267543547190947519948233429671739452929597022957539995024864043115570161206001784519356220715441904545305870917609678989193526346162444535405782692809697200455787742200777504900056749187813421161534506582231739309473243442668716364389718299175551268943386462625540871382542674480682949669542092614619596694726221435020165068687855827148856299919465450367085735360726670692308005260235269655220957259410363378899241257428161834887971296147908376704505271858657401480324340433821307761287198947435444576978207507068344191133107011142921991988049327177873500824628249280460181328896399160953431036881465592411958435515882170095758354963582732163558469277161042477101926349528150401675168313468193824871332707999393058072517145081178694359982823671086383216119799267936338165479783042527056783179838411652394112291974655323534604847125400947418294728792116070741860347041780624122399624579283787102800574380985581628282253794963876644359828833186724383811214149337300018818228633822680045244882600782144725922176362329704340924984225308065426589267833241859954673677071678717371062771973996336237674231070309280775761130123640444447247060187016080676433640908141405847623186709083860741888848286860615048606517211755072543938907198685074380440172237180241226463293980122544602249199630194198557044027355713830227657906656526216659213255527411736584470644710681577186785704210648715890340814761192000171996136718848511083103467365378994321791383130845049977623570656187140095991583248373806196688121597294976973867458473126074640699120441960266338541470290651607287481979902716574675913628005262837941233521398196899626201695441015902314505353275786953394320432794884542936246813660106312811326538360592665743925670779725515492254113082260393362190588569126039658799576674372015153653867209425326621465924671549644020654223642784157755127802312003199198911611253479918846615247547618028807846859781931802017076079875280238885252530350216775612945618529161353873020543845048623979443924865713276465074759154364820389117826579096729865053475234061853963177991341677002390999606233340812418839042468216645147830068106235740435835356134190410568004835093537318420538717343711433730525823814527768707227541523313880461644057753361397569908328839781009994430483174999224067160616080581312712249255672936978080400273445939156865838366756440374484989253103225015585499910032203071739128764235863870592124581350731550434714587516742815963997849185884235909112109451043209445959068965966240708947386953287538579221689990219800131315207248429421305479132899576909333346741555698339310428861501114660463017900019343603421620967228215122232376068853338957849307942036914697163535229730139696009346322778415047006787147231682769885073219925644182016056487452032230383835861703486466264713705888998575187677922391742912519808734429142634538913661588591152979411943523797977080662038745747706933080571657766059714109779334306592729017559426293850382140243302739425550712099969230261754098850305001310678673333159457368800081999605606806370830963530770152205410183944792155371869104249605531379915002681903952145454827880594445252225049103744889571220859050200347549016076300084964177354787195556748685223206233467230462720461861992499181385620832781800643852943228714482047865824330734466299548606863619198890800943694291954398107774142485746695573322158471661504227255310539188330528772411351985181943077766042184479755979695852884447816139412963758346111117045536422648213179813208306146808231958005151780593991194657559706309572372210707285318631834798293595160559465443166231628914845160836795298505702037922051116793940755969209401880524641372712565581691593062620447698392669341772801506274617433873761344060194466097799782631242364778179946349917179518273367749794831493488803202594879302950635906635735120950183191806606533884884980490454714184765296871457171583057092233219201961554607421977298195930422025155195146255657981179223901610950176042231386853727606020174565691166237945059092184849817059319980437382149393659035004285529583247745978890674057550478967041874339316003305232574112583823488243462709030922900924142192383546517370717200903020477609920440808133650303575535691475128327096619476718374295563828733184371874829081276215786523784776933583508502112404112632111899684515008272267244101790315943380773825119849674052195604464026517892584761375299398518801599592352194303629218621346771243290314309784252969591811132302217224272552059445616642301302375657760050291129001035260855346813546584452613123659111370165648356944154923185817344678441569589333553259145287598042633116417696112455085812422584073961552029914573811687619090689359926396153775632835555366480894981708276158900381046556382063178180293605022818060786717982167672035682726037868907694965842279798431312917074176420919214419792298176499598805120142204064608307145561711599982186396283840998265870395829633029226518426261895749870645600997482354819168007071379287194604137227623284824505917150777746877411791843093385171980237319316478924557431681986194084457437310762265752381873981419395405453513658449560978718383393989065157604976130840158809228431711801480427914310225288732630625667699401102486451340915964214070724000088621625059787766647400244347133199278481916264248265951205041623408253620709767068904762991977990214242560883069163784365941597947253762161111930319141779313713055377055796645892948550163061775957524366967259043864755644833076839424503851284308354268725740560953265743891490153668283781119078624596620104171722974053356857942259740090743347953224078460713444792751583593625741765947305536685357446728090486912477692515628929207574709368607632235901142774447040149054453100575070206824125876732747538569615600862133781628762240588948291404304881552951211772474116809414939086458556923204418102847426796755195820961047027341992718243706626328519526139023014472498084137874651793339730444157935504581569129385368616898932070537309345625054221751823280414236633968076556817053581632540112641037202449695679778081239113141578860220456772340518573442145839099982082022369972824384367125034439552966436148927491928739401396679741200596012627523162974491371421369614234221834062628368526079474593231948066529707225172111028507590971241131131835120265018522096047095464340108295669801829063327461694013416677842454702186710619830636354471101974264215501535614364890489246829875944647955347084252700025264422497837190905278598288422881854894230683734159661913429079605447959869386777292810189649320504037000682132814213837106524184449224935716976969755867487235213716398113025018294882245836948802305936285252657203822594167430524599158922101263729218710203354503572293750452689194579711012058434126213180093988708220378830401539839377284104904024478982872363274623923523664981711456616565272982647952834122543277032729890603482935342314933181197115852438171217641288372871647812140649720286104583749419578663330344843950105802454504201229108438724394566070386074721526566276680063682000605179377814558997848615241990524218804494756192892772089116586026558480430364804234987188381329066032214658314560368662419728867573102340586470402084893901785424997715528302721670196233274032739462712525883891347531281273174577335878777444184097603042830810344809284639774020075942220734703788714610099428722420127994850294148579918489719666636658916273442960434433429259805668075164026071894973559122737742550752434036361902450337672513504046611543654213932163706851477353826766625316492363089890726802168216561712736506271161602578778424045322228975676212278149430117956732362682713966212384466047121571163615288573203117062258467931026084862697089751132441410747459987621459601370625926503980625172686074058487266538989360427467489227779878980446516021427323805714747138109223303733726455447353304631673908334630247873282778961627481059428381218704429108326175287068181730545465055685922045690284742856417182964350782226509094687428179963762902497479018467700767509084179239929320384890378105631739768640211670055597946435141835960745301012793689136241538836481198938686241118282809881277427133106160190268332907874800420909848479299239397884103236041915503159064183094277579875050422781974196014254860007254599068257436263321456044652173371334274430594847988947979634801285399888566501874947640974221105673340956641553468612132737830460741589978658091236676518449666648031515378214517571810558696515811926218663709834597367367015120311673527135836771186965409964994670430677764838705393769437167857688002587678766709704815199418244385869787615612716061605974145235121680220458031934659723308462137147484023537075736336439954540125613311668050558747266301997551122290059622865063744685361850301039472634867080898736373438009415922381562435682517093213123322187519675764319491742407795096601989110225556797297294633958124507759189646198752809679667536256979698055842063220670458871471452798209193063308320495947704498598794248673326770141219527624871802250358139662408778384566519900417060577776614947393773806574606163777556640584327555022099760009433525976110331806456967256066927609075921073466252917291967473582486253548211012577486168683360481887313793195210160930533381142636944285956061309379876329030552336017780223548321506629075965215958689487893198228828938343082907579716894798693848116503930549926373401898734202071503775515989436256258545594008903223187575481916318021653623159011805188749259932830262058024397872989902337211608252322112337750242348565492738122255910024263364091832836023688512665466725771264580835353598494369015647888809681556219434774137919036515876052661251774332838743489142880088896669499149526355855009022425799883421788454968202405593281210406114170996237627102263432393431774241969962463764696247148630398300778957818687038439261406264501220189774794184219030852545130549248302500381534443002727603840914640359512413569278103174332581217748761191417448127172137639837718567971863038140960404005394834887419077028218626692085051034631071831462376313071100388182867160772027487019116184271855577584291930615794330926579582294608827189510768844826291460971389554482424970139420362726065616823766225818439198757060599761261870398273191219931496490807293504973861453661856822829585975245223444916435028722320351888223415807282350701899862123403854712879819866882915858675681028314206103107086382306809914588250686147159163976616372726236237325779045278491697884591066343113874666484872225037271830164550166079030833989263729694466888896565735240032477748987874218715856831960945570977982752591840428259310853044733166350747514786416436988980758538090961945028540548621340912015900779993465053820740104846380300724193472480868144513551677934449554118891388393284118769523316472356298373272429288496429278332695704361083837877097862151843723712480228486786259131031368133129727671469325937656203918582706112457951992331166060206326774182443848204362637008592422066543604691374588234663477952170687050235232062082625769565658312986931421023066290021862629209164637352919491921536526048910110512372151290074335794315879655437398865434397354573031050086297750329392299210297745340137575104920021174132355357271378801217583884873956711747338476035299254867198458792261084407885429949434328635194905938921026578639026517411880524744477403860110244752330782629931833378924351943309746535114233637745228754321335909277150644160590231152305866138476032446543288576614667644647092129722219512330842276833154930540530418964543868478228979882558537588044866586297673700970158882839294371637509679430450519680075538501588973260843797541716541662003809540162346825637550584553691426352113098606534348007786104238996164743180991073134019488428616102212706272711697835912185378066205117848491917335240000183431052008012657464727848525507423451634188022690901331385712840823715051420311410888537050252957598635867324792242717974573687950938858945023894941771070295790602110038901473474341937902893942592553427352823667320164641644576881899098726365882977751663983572615724095411884674066919842918426267979200786275689568622226683368941034953496397745135653042592956876113894783547273893478168572204340502517725491998684722397979241873864384041041765609513133363752240376346635648029195824162771720442188993389115870241069445179385903504057064617847354290787526274767934933564032406980315556673222918817347996710659017986934841417408265486981864939699113184333800602514591048410872532169288802100499680357363591428867656683912310606122009854288215061899393528346552922403435632667657944533789182836844904479527340788490515106761205968623837867006260009373422826409414757100752269393770708530603096098417708119009743193813222276915309102690596129908964168512178267255137260197235864629546906727445938314484928963413865663818287619930766396370584031847607183551149947347682799253844735447164294497794371450316563603649152283511929895513158592152595355627455094892034407110479185975951435286345022237190569254246871032083637583690009822598077588988823744649932434909350587004362247010325446891910643030142560000584119522222348364828872841750455925110366945897059076487588581461899737742070851013663382639573995558771520713779439852342709176634910093119226536663294016504579956003805842024696734495155977846360249223167803647745298273967410135151294241866981681406474139472429902932221817727010151579529837606667878269128289311731359959411830488314629574006438241661103126450504411874577797885693292633345399189958359838670280127157101506820051054866353420650730143886939240288812511533053571765147833975748940385643128444827228064654689003993527157016424804387827972633746383952969628760721985405259631771642939477061685825955838707057088756925439762961231522166410248601213742293584461904973342922746762685412338481817875099272344669222211948444241697861456336729808659344933241241790005786785476316845417652156680899491399857684361285504938474841264792184682598740784584728580822384439731144630467624179399348511975635093179105269445355389356445913542009722049292849121018043621585756083642522003394604712484152119284393799150136767133041766904139357583394442617779848638681636572738911373448621184754107238711572676020203833630000630815643321592733210391940562745967850085718356830269349023470723723824059608370424846965095018901575646303009645007131567938427352711360313135486557365593939711756209288729080216717961971515215317449227470049888596595965868376620066242687478850203688183780995730440798003714836784538475163751175119922821677273490162571372181153213288642810541342364703526769244992650573372346229303058541185023525672616518154287607078474754999438219073549500085430911989076243961616824457639332566533683865950373182693527648238976650088355726286798179901787606810283098642953928898692318253428514955535093648684135271773894551540255195959794665877090256648388656517011133927775729848319122334280329079821547229881243315540184446713687310831615727904360793944177561991642673655866266763763605813364892428069762400835326562946880678663467100042688173413161719523109446498833229566034968667478941516833715201954518881701120497519584587327249853923934839352911282629963270042010707637174097936689790313794459519211297263023058659984512574706661286395902106535039645823217380782251049027119256782630276020682039090894738838617222173335218937610284197565470689583749624411778441954875294642880456985150169809643976794521287787651652319747208391720656386054216257838846735074272236491227716169863084975776703000480267860866384538103709163585629920283116805641413832348393279244829773383889307155866175787693702326899549807940890661208089309379248705064756942245274441364642449063758971155723044641995580586241515087291597172270680347111899568157902795961830199659988309306078036587069126303445252411019352105066172488349977944582357441887172018889064069547304379811068237821896152144201816241675614370064728601609352140513978264745835038297957668670695594953123032537130959260052392768262940063834361955469794192904964008701823244860859572996436618679968942325559520019839452677774602719866483768615975328402737567943027568515228038596907256997084980009983080304977512701520737740089856424317388387935438793686424629632438264164300846882169350442929868282497757179856523728335428244684663417021394948494963618060361705072880580483809698980904256395133522251088293526958013616642240250790401929951539028106289592807375427246380719698765539339510188328925265865363946671589298269987242172931365508456999566511939863945813895666206180432037400254277890419170671218850160939881297751570637673398233028965581555878836559539954574100412296679031854194354119461841933731641014261048234827822941619659843448872360933936144335859063348425087716923334170962235291352057761891372105394337563356890952085400346249562534528665446246161984289961313794312382245161473541510442704174661045932696501166156880604893172265558690917424633193820918382024925003574695170648809617634928125922160843048450805270373228152564635050116907630371256614705791502177471033186872943504671571956685667095078211794829659750015263202885315847905259601934600057958126835596822031375039713534145400213196288367826594154214946609312059618023826482952518989964393530598546004457270666718005207380132223209463357256263178184476177381594573192086348643099886805352169055903360395806013000480244630369562845014898533892087248559158069625181139043752095710266988217407133930061851637841960678362403989340976580687126428838585072736925164721539357316242937499117602925813941045914421169148922143262455980804428666162007288128893993466491928568130850027217332943489755138905353776805801222724094318359862818623627945231317503256170764682152899134784812737089119004988766800051157869096872309692868367925106670127318985415373114253323798508600098346669635733599107240196996535033004396375452475305823884036041634836819151841170137140814235467441549211301582921539148567951274268260222140876626320386938136874724258661440400433777665580655524333605186762975308928571858499698048780011641195513050464666104918305037015023746335467340296336637380809191716425614482444904693427174071730200161776964491248516114913191852017845005683465717549496467080328835456276635465245150377084807520377213441242326208435664065631127524335208609327772844323691862877331620065947258375177165069202933322604372328638026759485360586257412520255123464415048000530116782639965644146419518033168606976712544470250225620520997550597106717821556877196986312784768525923127016105095297368169794820707966799134997237307498133236781385160398741171914488027091316388880912892319340466338316878787933132807493099964399959971063846468933070636872756817796393974213721660682136494619927060291003802313879662263601554928393552655224450275356073484983319112901238010005242931971510192234411353766064528027936461275442830317288707518929898988982737752929774796483866055323703453754671541414490638973365892744058823875937207026591201019928113647662096380265295964943725849816403169298165316232941639030781078114913791363826983548986887231111800631300564813707371139288007192103844628427474829322502155485075218137757483625101836219217361495167815931084971366902779480414889072018843326986621050301434272544181341349067880521274207391624481726342220812218398530820711485530127951249104657089813504007712775099472186619162443733276538907674115647366355740935266130231865810684823518675715473307575532674650349793431481260606958904947230431355150282727707556713209575332911650948947327817084358829749005346711027362794211625816920668315793944117121863308107725986140178844639805060761464904897670515357179140021661275031438586089514320795951487592832159837575662809025922179601135372828708275440743151982855190403951421587057690540149235056729340687844479913351747694086009934927602360666624580367048451509708411534046818896120521074198675385358101959680972185166445962031437159043433576058605328057735638230892423534172457205532905655376105157309445650628382065442162542086613044429469304180565497443637703091647949240582867876681240808139833103380894581162474578634695770656512272488256228448516929904506091840608416982399084013790406394398453248563950724649185907217627925941908113559646985011602313265194242579617303554400243259283249145758681141942337780148746186460716531189277714874057859950958470468219171541013324657527058535096380738564951148876320512200714369781708724522415656650489497237559909965571970020775130471679150111635630289032207378980572895492141129626184549467115878157143168338907654930869715618869245886856990820933268913499178196250047497983390307502980602115469791977906831482087251884808196024866851610805111667555844132793057676941131196385062814627004958644109944809338843366323969225068575251353075353768041596649619250534700123387770217571931380848288910412108175016262788670071001845713858382774146769826344566709971114049764960430634967783385612685514840371158849078641484551106069160047211041049065853778850150854286909986081908746571072076245070193719340039238183654592415055968133920154842501828577888875102223990510733748432546247981202907552632000111999348227058923863778035110667598364203855702749892954403859694865943089372754547628421139237451467907309644179790852633303025784042650382192921600004968786499231224296933893558266930098956375946490945696170683455973610419112510911494714909514978828791924283085992435848938479613064528262111382035326342387856612488050770068229538506902538745493122394612746918480900072427119130781989195958506764093013907268320926767659966742654482800942498742661418060661735246954604189827686743943091253322142885851206972229956540131970115151885087693537525425512242629364244292672039451013855257310344383807215278013725377645745574337559755105717332693620389096401407045693031538857856057234127374667801118529538067973213644767526944587837324751883301731753311269794776313339044858720348918207355588824627404837992330512265263499406604093541719520344042574772829732532474860907230525118785601906835261853178774435753795268517024172262547482917869004802823322397373181528536989298855791083778892995962844273090793420921388640391979250627780915842004539117042915953045911532479864994446432506304167176153596260276519414991840929453647989440537341706564541556492182209468751971062656782073043960358437046320344768212913194833279526181742779218871353989098519974979319819583036381569105288604327606302079681765816981095569577147436790676304005326598974793004869076814721888501939199588442593368286102221705143955961671007648841682516630562133323296501613816447203648739618196653146494001464181187901785602349130373938800194355367789872182892361605362638199036970182780928578716221934447655844187398733285218718719722723332041743734181151752661483362592754559747407334153533869438316486794618675947906403151549363564115563285894011392892270498733380607179635917636957716347022155603406747439894111502410235322266852337302273577782828796038747087898587353196385972241538866065031107813314607812711083759309300074875392283635723952742103107174027741406768025962111347042861297417519171260664017894301194594432163277529355540327102262867571159593294980806411115338741846317378308754516891552862408657202517491549606080796139251034038884437407950364186067463033336721798949036276460276882214095140650375695154406302565470331918263099777609939474411693535714958308899148193234451424727695603663657989530905304815854686240389105806434350308010640644549519490013670730392328666920513754307358845367658276816145548243873941365237323122757733763890088765298166648792079828011077382512600300775302952647491943294142316823875279923565804144364629233639489277490879559247101078119963979766829820460510846663882842015418960908586498124271334505987886576498146992233628085405026996650338123896838625173169552048514399804490680218819588451339199427630693380785266839035202148353904927537020069766764130553275391889856809966338880133618283222241571441185496323375638810317024038061886443233611055362484945154976672924089146432096996432326330914864603208740361830141081808801017997496773482319063264134118254965561306672447037156024143343284540797213220938055956894039855515744175241848525269546755626406009463826569961964211624345920927243173413753891042069281115234439594181157598164963740465340677304091530376489766146822739274833094038581340728563187295503051457159901394368003771879847134461545497100426913072130892230032168648966961701304279251720917778443552605466963593039957806104061032429729873543912241182531837250974949711873877501871414807985618059006423675595617014998804164140286536832422096385086332968562252572697015145540849051427278600143717015657835024546885761158410098344881476062380309323120995197073598616329826640440723285428733021785895099855586043583078066351040487808136710681268797448088943891130700355292855709290439486457613355677453912444323265981455406652239982236659304500876746223735466620638453258650489631301055608470081167032796201612100297654374366048970352777854369901004781079072302495536432371344515975903663586278684326306723020112200798844029075428251551706547351895636799146843820327445311575544639742680825250161048504646010834162310335624056605802438874368093237595828515081646087453416300852464672662243804919479398645646760196914676383147908366157028358068887920339263308182869086168037609290640998283621781620652996666135267225546203125329925973751952538112192338508586610878815610207574076033270214512492021193951133156541417367500242817923588448234015724480257270601541576720641625826913620217105106479688365359270383715913371485661786065719555911767214676758801387994892579747376954446257609193133357263115531778698768935849851761945447570287003372474503331261788163324168607433961528884984637731704662900035277113614757895694648932699066934035705174901338551962674338115209081490011121576192840234660251624917710402929175180504321268315459962736547892245899685560669905895950289247913894482080821079265604467993935120914125702668517697599483307772491392465717267553187470692468177137982484710280165850321321493072206934711002262767711689390176672208803334819002842443933537324476524979252391142847933869406512075101058262890613753701552879741793693865756607016274778952716390735877056612699218076818836927598404602724566512905069495832658649402263745179337833678013780288112252243616968325705585904843703620477939392955483630458168001864898825960017630060755601503584669973978031024294294594454581305944015181554504932904275928463768784948810415033457661733048120745690777320748903622034710183038260805074727270207387648189403942549675404866742238686453121251184295639282434325824460417159632974209045782521504071021453404795587584635497115961327054597345837833602414247899172567521607762952860604999558713833741629856022279071426479025683276844766242007688475867993538500508100553078035268219422348045441264689778028153019113754719680083373440564833130568449081927254247577323383274053314623694682245950547912960968807850763696594707253629335316416057316265540196247186619647445370445864704063234423183046143544180129353848911486836384123856278380969032550904408006888116475314590839261929024698644608784646618133046413730355916713055176782820946606153301614164830507457335612512437821471992506449198914980440617653584252889558562352246128427197801223015888762169718211935473040932005197272040998048153613931122399596523326678083528181725364273498045262065882529777719270767023805811740215609090556086435538355550346557932177693980018916784451529104897840995315987168829056313996575965709886887000724090238366460155044114926275507862358900622717759752379396541854657006971954762358267432742948982643397968069210659127939772451279421535709760649097656683526580812689543539184511641157635221231349833968171129593593399486604494119521606711298860674320771788611876180795196271380364093743912101316402550160748262174574700781483962457631157420727241613512988589977209612575818726546228078579006038478064083178550045010483174358125523734959906658930434861593025365176483728731766907895382573261773840112661768268147447501068554851586740152177960976518647601429526704602833149330501532702176853166151592069906014441932908522915080321136060795972236545833028011699147919435749829499090015929688314857714247075342199133124164152387641800048854078936526025225498293113916675781643944140132335595620593222843202114512038315590671873281883576505522218588617873523080377134726652389362101610248360395590785885603318804140782996822821704880519030064136289611025818687579045401530726356437577987160751101412213855029838585837317760095527543040773435498724220733622366420848414797818727829324909772529298453088545895529915833756796591620108083623311244657400798539578819011011613690662053038307674311914056543592629945464031192286665577522184851464185188163070704693335592248016356897740239405180868007056122661044768035878123315364836994978119682293268336567399034438054616582188046377237955962775827319245926857144631820287966001694893666679971113111795240561412781616667989361897513282717547129711471966542525761137479504060946676950422308155030919311085434157487149343480785960414442143581481324282204576650446133542237586636830534153200385549014197083105217884278662384607623516640576099966259035379311958919687348775891860262207651589762855963265368697440033008604738882324210486252889679468852239637222598031201903453654046158962045529078270752915640780599668306594352838437935413665387757256202518095067878758208456145787498952363438608869342456496620486667410797708916229443165367412972709122693241616182152414605537508310731535174068938740997701337853375522248487128266598892774126394138080221492360173903714710504606209033150179887205860925090413865855489343054637501814458419577575394161656309152961443274854666326225955371644694594461908804093864287065728745279293002565703763092023786987050838752640631541716597754948153140556773215821350115681208469784761094817947883516187031133351578702710043640279635310568622317205796692389131087956291857546990226730195762782992684876846295066836801375654111603242748839611495499660636245497099523492893689546985439986140840179312454709805974135248429003371157497580351387568580266781130574697859672718713139937342894425966674001067079108802014147792592442114747581434612429437655454313001888155310052321303148232466557427260091697578194708498609447542498978568687674885516043004120646826544245723622132171260138714147402745772124379781383857245195605750642045090988267074881403151512831349782505803159115213665281660345436953473797705751709902036853494900721285230472202973194927871311046445960491760706605536321122209228500596990830005199639319671780288391980786372715308914269397822060320759330035025380348807728976540979077679897687820436506547859977568547402101902034743873115555067110426824541593605437977985193185894564280217909094766529715649542701502170881154359462758217671492320548842746751944116776418853659067525524304742608947959726090081392853793398232309699813927965382383662098508376592551321800017476543511479940389044325635687275973288617148922585442884725228840163059096064246472666958828301557308234430992452817185812362709020859998331868914187275289556667641307683946394390305937961845851129362988834839289828163197932730615431274229844664531222118300254685567741901700116067608296941554874006253292394089158908638694910790881668538296753395856031877751477571777070516256970680411639093085197305705409531571316039266361313897337147877736424043695146397996740495505007339424233279167227716088030327307312440291872386386665673344929516911081426885675070055123534878222627046597123448815452986672043499539461862817791017052935731618255923474927234656758063984668577208648547277719969437825720660474022688790310175490892197099707078749158768265266124538380161080443759603065482650965215167031565477271340474451563455152145996914123629541351004749480921431550715006226168353662100962032385779734860217216479830284261090001272716653988432239087385833407197140341682921663873613190489773430637013251488850859793676118022412457826808710540991223923084352621316771655098346936242708526290717683574249653707744520880919878013535736308342230452427838776167725567508145760028258147648466856537731413387932234984139517619882651240954438537872150032973967134053015821653359601693745754146493276170112983299823774269001937181879626866568001242984504793697085572008698067287465852509555988865540646263986389228520449347611517395591994089610096455905170421560691048941309213411827136075571040252792161729941307539179953773425993747908203130859963457415510741781089435138838427980761876753152246694758970485335995362103212394920283528260487619653670606749306471019485612148228517997273475888440599866670911885076290231574425827729356717638078229748051543692557327240118503558280069715920846128539897372479113895878043060944711041729234990492235101595556608943686852695572437132547679680149061929907611174322874604092901572147987300241009180338607895658219048217938443045452861163374787279748751450438677236530514613739571399269888056623192641178413003074183331239534975297194795417826583830226922569996439486235039033772186617697524224978823828880378369305431228770148217504788173715371406353947592352009702909831144183780478930248139408146098949566571873236823992656538565545402621276954144577127771952518836679501700970406117095877720005511305204502720975515625040650156717144617744720926405125567724546401315413290926426793585576927762779577748268304984337969332454905682820889102236838641822440630362189427857746137612429922385643164660482305901679601306583513951230166919195957498888482745165123222696586600263880978377207741239737658514647011983117915377084337961613413349094758832508711986513847075269102082777202092041441728975783723752797384596811433186604811802990995856407933665398971483730820121610210857536663134170451349830229093181876436437599613469616935919124147844788463779303895321163958387013358805688457873283636456004360421369780955028598620703648370565533883868348590664172537670221821713508378372414311492318491855605270662856478676581585290508547765209595553277361935522067623297999647929059297802482651056139467955191785837107761016720493016169626913605838659399646417339527615848943561522638816867631138985737544955445281133130350273319601998080761830782642791961754709707630506743471269683361094625386721292588847231220282284803593462569641643314341940870750464650493229943360485996371759481751473766815262381353918391429511581046354692843286688329847196095794737061942058553035618216520389171676956980966369831399418754574887557865154822527651116896628569858987367080645358559444544393987657780052143663444003710483954777425322899640262087696470151918676299584899498396092150651828235621881342828113901816214472990149755461513033556912215236865177282179831433835965790959123256965400896082912861319585758476788108883692122837061738349169672425404060794744705584350863783636099834810433075805321040034600226769812916376343734220725047752698602046268340720786591576601140238877157029953076023759827784135954526298530901416574227875937002611188324633337644264951751064970583708545274451270387726263816292138583186419265793605788548102251280746200206643440732398161679874732879422988379659466433008564500608877043620149043125621854352001203941653550468795437520382892152644710881897056484560414830262250306611619563543895744178273965724252486755699914496519643125227115411485538249573350905820013547987916880759759361568344292339844085952316564712084684316372245473679230554197720733778384241768749783075706000677683813566597808438545449037363438576428845186164243799484929608929165695319125768085766197307669264721959236243066729734258711170079189906623958434589357106464098746749690591091727634705972826483627547931799583197990956553663041529430523099101832548517439114854312014207686416036272365961950604366125628970383948939934730215757006200901519310470991088159792234153956173781320220982568920500146124342187747731178774837549886310010088861614087257542944861787511683451377524028953543887041539056535253607161094199144765308065128228317817056288002238142098529093843963685510599619012866859582030026297369976927787088007512147607709496596725154077156462639812404143409542108213772760802219161043605541015679916200773888452923852282004425642342886153972860012271544884465017709328748393517591041980133442263045837634842683648634538927857093641002745825934184064283266271100284377074688428933011985824226270711268256447649522994894566351491822996011983959051223082326952934473660490018121397034608993095380102506236852305880260185508828675098678688544170973503419335963686546411231458815495129638044000212347107758056070102312324229420882009660512600085031869602586142061615025932397377853531825503431627139341276686351734234384104412069545361163702717420172675024284072688540739383581118766168124149575653466852894164300932020820570073800259758056732341054808351732740694501073361389119090700922626157225540769247506665163554190684064579140024922292147776486085653564058762975447836264337614829734560789089744268653895027197621881304550810940824116462089539472904780281592913477315841316355831148601418684786787986561859716960248273151011630094942057735211592643439290436622600394887178662422669348450770395362375835268990571709648031194568378936314126936135478009396828706058529534779963903229688182760878813101138435438845390151035354449363064550232814716823354243242991040312083912756190889994326077563234414873968928594976984356553022205030519793937958561766113198661453380777670492537838661903648881471803358144235221896658193466768426452440771866148493764954237768994284429727839929398390940356709139771406450821997182989310048342398506214017270840344558546070303891989041153026833829168975666963090973021797333623583510266268578560449806122140184222082304880320211435927100154346706495475530123459219927317107403331350054266253490397042107767717624279067343171119899002154774891745538830504963481240195304355492987804134937740922501394673039385055687651470268925612928066406383769097183205733871506833423409107437597284552549468979240738813280231957651001097920717063010370321535658025001541895206963624639796612027873260631967423427716640430695978084083631770978018638654133438551373691931447822774960097493795182790137405246709379646291852374204945416205059337081864402399955128988918165668738063873827892637581152378608648267393853482123756914413596849860372665634633327418880468464628971054892860025104676482446111006693240316217051463536986818973647354161733963640897438057221907087319462612904363021023028470619982497313633827587519439365052502470670140976694545611890509243357139921740112267962481115719893759030677167685768313300869422819742035605400556523694642075143097651370136503079359495708353359251864155311927987717849153222882840230636908762747233516157317798116888173402441059667187803809073119126057701147367653702697775337189847657034615372810819249010307850874625253380691276815424587648256647374422322122478770990741633817137061948817337465478809498312163867749357793131702089575931972516490702222944125722184317976762437859680957855126957356616727842406837146931444827136344128016856269257185254805169974070076120894399316897698502950454906080438361491064094132070898843141372695951878099110153918522228405940285725476284421298407517556368243816787031041349303077332233721777265816101407828280073656951221162702690319376916888702559154201626363968438553355968034936696159536843369674285568680595922729185781027010070064742180883298355417540277071491642410890716182775173341231193538268969154620733796119255728003065843390088303793062478125724204026955628837132008590042673068212042975311896806070317993873780354742401182314182330115950898030984561254291278487616568167240845605266414790932752700906310090404743311701008926769124930452597181130698029360809858480359956021681787096848961071278639456423261408502873991792833202580117053990056086075084567219185254342327048953770000192656646101590170692009384395609451757300041861969569001739588178655930007777653838841269177297849802540315512868522743497592160689470115128099902997693125300849872309643081093103932071084572994368072495395367295294998749194133483020621196190715920340987411994941432463735703479379731473421797145857518741783715137190264033241084274424466792125130968985198656227359039342686904577106455499322849490758504381670822330596301462887710751946745441038252769952278924939904540462999861870582781100307885813184715270960094147342501574474769326565098276943488811780404157055434639089674218682168361467241164440558408236740581517124465825731617883260271009576459814328827833531699824565963323824292638784512770375967746237717600658329593182224823428768641840193104049302542561951259575154614183632394278894327271981012008452505441381980405842027709232912155127997839650980032549332724382234312357551426226750150256551745202124864966961056484225014700814389661803564189745339639237090551791974868989137750082929464930271175007116087351490859767144123866418247397340655681543346296442162282927156712486694244836666631684869802617032443885457554983180729513202131449615069137873481571763158418296087324102360704112267397179285302855839247273258230288239369748588826945758464785905923869209920175866289003268705005298989396977312169946680235149118252981929936539276573735826065005931149154671917422368058812952831158986619572844838197824938899345295491409870414699596736545208032676950653102839241262482290041926333648932098494974318466546133958565516484071761436601997166024190240150409516217797826573439261315909692939341425723787554912094192420906431300553555201680824209931810663930936739107635089533351867481815335725422429500872384043574481518600420862560095425518140500478028753906640655070624835780869883128606868328248705370526566910423574151950731935826364040511302337474792362141958593872491016984244711489013729587086655090297457256758582889449773482768896881804927237543856497201667085370043127424380747234062392672168947952247543115232594810043237506048865558809948985054221830202786948126694211031609841567739120773135296431472460771637931501752001541382704132863891832270429900805534440855195478014312124052378156082045734548097152659479258251103331004104092497166752484969916768640031875166652580466605391416475331146751097679583024476085940453316653615925436485992365467730442559104737010337802546726194353346099866478817304122379583532921608135610895288257689382433609315851664627520887094876490525674119407041955668615461513184786739169247456909106219747573473555812606229781628573165652696591639414186850144173542742436726916197685338108474795796052905608500636698567520699789908166780099422699490222010829962632536146576316122363578339260372585531460313575114881188661641093438151239979836962673926944321893689144969125585845396771370678990838863273532832624431776162447271639441093063853381137436229256839899968014124331211121713199331241777247317997240043572521237280967872280902246855943180166651985838120994209587852586134723177318200340183216030321627728636881915820000806493848823625795861641374616955399880186024486565819741780474925329676688122293427509891847106164641321898977842441743296355060274063773956582838603464197477062240619761106222943343150150989318494973649545374563437272499202209934688373920915230273270480904595637237143947400618718628954079118642750063143134808421503201613517792038780412548900975253619897721641609755872902202881764811650099544336022008530426578844553563972417628840355846897610574463860469486405512972243298306457689678080905438874968956981520254105101161885011230176880547122897248962229461027625426012996223773908724379440335633997190501044886969818432279456492252896262317481046178137212985848202627363101372259676942089627133923470624370268470000678544938234343557115226142181716973626994249595416025188508044752904790712627707163968466431984587281592390138825546085005651868158965221411265387330437069906604118492047042483112785614035603938573324966628444958278984755220883653748516407292827690484324639098467845569259000597854937196738733843707342540264102496465054212658739985132572709897732907464808010962212080305983934397232245974239681036471559445468205836346558789876794274359205801023295005281743416717658247710385055687950555423488045677366868994734936676457161938254643866470995675264133219732858891000032243325196420074111090310531625012696581941048161959206316001735073128068376728319942786230545539119130950352250361240493142334060816790909464393997953383559899975100491623797619198515207909107096409900485851501144087396230570675795345578191454999101533701522116630333311615383971372492499469439765379314859806420484002270268919784782469199816031049699887434297003038979177278983637160039488909754141008811595075379160863836876692764378651702987915473388924911724891380138469604667937587408347418829447235481372249810772964407322472010094348291709447603153549931455954315298240019344550278884259144644836161417727311994148166441969017405456857648214422942441551445145461671204732423140518331390050516550131887515592699003992690245147764440625632922596106088168686322248430953720978129717298071883347636113892922253871278445478934223483255044395972418783558968540532950698382865565178253351965209760985173641273094816272688614510535051897355332918399355780318813163678264795246566132265428757139519842627166174524982617670621037998401223809379369370364580685518386783412201188321253464833382564331549801591392385842975524482335098145673190745325148392587639097574993469644620220278822726517228586296520298380291061984032527285167602551991677211004588393890736703488855292278029188992679595356284894974198442777319288179649483627395420689335178755143286650657612108322235349576494185238177686168250023421994297620948002608141703234806832217656691984451536697636211674212482834773125102037536277340220929933444206164376317224581619335248038553191139618377689601089706320930848731525998914444856943471004463559210722813919115669657820274273662851805181126565643244750389713005831904837551923556816415197005887682860187707220372952738665445666716229444624901804257464655863798108224122442344291182856196856361678168784151355379357466628203237626095380808936524056907311365760351269926898823678461905493014034628349280920084465681470681437932312270231435566622131706914098059536893853959626406033901773956419890037431570512231841995988599183876110603180842317497696539664730609763568735299851208827984670963741399331148232388862052310235101807787401742947072832104364721190525582950339793234692636947915906885256935440322351373454239245518525696979918914502543957749462536593664845227058662953493883680400182116794127328240395586435857944585680378469789815890831534081795603492887752480441102942080738443765129973117271515081858684863161173636372963504102887207798341728221586879043647208577447671891208911913912329764907410106332455130113673965975775404932511222524546945768705104207690147685252376487349116862586489638865806670336101600948756251734354250418143543562303654337702310758219323599469894829318251251295895190968880484270006309767325982141843542421649378230110712151927918476368396413193995966275002604348478248281348297052295937116205871510561870900325632893824440408027676571318025357845829018678827381169718383647597669728531379733205627548278698131773372920681584052336772265220725770145080852589932669561982160680441578353526841481376167842069232292494530962441149339523616778189524171068285360729548395064499023712384692998036076396672506700671262108833711532534959319316988429216080399587171810911407025445316288116593221649370508182782951287235003288594518100137106163331041363195625264062107479792772177256926790949761994002430717985960317728259827512817347846403265652149166810485254814570035118102309676142895865479375241457687742508223667870303658821086932834398070015287010232546160573443502428537896290081323733591403844601233534686914268368198067221373499336291027470814125840005362875409027852719754177207120624132718220737935402437450386749234366110053419578576903346927439479238628567235419172067095564119331798222836654272082751597010086496502026299379392887087138051236249320617252917088023043275620501907911533665045598815240819652739673912188834231701597369987536797406691938706410419289636247423701320531687699338041872696078508126299679788687858426525270660625249335142021097266214845082342832646387166872138245280220030718867242144587693847850575425810664823811755336297006758892807952406107359519214327663046706304208114703680596402455384153729044044133415365181968640184242833243589145153977584565109768685509157511023695259890085039170799716533116080982807769272719983317597431167390777174365832228007173250793089328253522419951431165123138015405446442128089755667905502492901740773343362905990664326983734702678507546698130907008371317706789937870586414916574698873328710877847077101414479855869334792685155228831146192970068439233575835190036705477599718057201703219747877132514727983958812919747160217956489638940387560437331672681561132979959642913087951531199536988700937911206829162163016405762098512189820516787901135926221187559000526326667196990152256829409956423471387100600628341783899091207654570810102558646411243163484204411495437798451271732912426114777136698878712458406175151840012289851473008771518335256063975012398207797493499451212571682075319111644906610826907587150982427376869491822594870490087175445651204031102114523506911435924833262608723676352570551208494981720627338130024696977589919470732928591224321299333502130798598928211952216166380423626372260493379926295202516910193899953252248186886382894477189471309838206862663163258366083600986042882660643232777184706125206824580162877565319588600143082837971345682517323995833343692814261665019249271445441648243030807605120266846326219497450011122563847992356409400053456228000920594434620997590709480907625819747974859465239466816675099019794706728901256054788958389146359081737378744694123290644163200329804351713704212273409539683541586384147690202031884009679754487163942283488289257283028680398698029401709977313482219674684438957521042536259950680109986017970881176426152929993325448980644506932831047215181648790992936548940808485038290571830402744521223250710115820649964199853774866369467840425293106643933211853757807194268556353972613550909681521512633209846503604898270297676171816194426563518515382910001100172014900680597929651623848962681477926555330447706447406411502595491241994351018366779719798252489752731746799397114856719917048045874491743782449093735366955741748869147940289534786380298197564794763744716151060693047821165510905465231135958875506279241691458460384409094130759039231461758087357490882004948633465843805291583821538745697702181290123249379287222456640910657740079232419151156335966022270021811523232914544564996344479703667926428748731099005107974840319394611677525759345565289737983882803644804617876591703178615120742941861364006808125261227480337800306117264133255446251894703277088678119290630170041324426177503129592801364750452695989643613911227003603226026067754836795807491902635693896340303444369119287062872196873929625740007420972874070799400806791739444228078765022897230469234747887269871231188127452703940014017785745391834504903366973459111738497090785996547145619151412657243488256374249482771356459272340561208311288696533149217824990264178984165619257435731789975727341164480808635298682227292477089191554384181017922511961204298781813649713269295333878160038862543449567811223821199235901130937842067073230686305847463909320911667203019822053462471336197587751861998372210712757212506021859060163109688591251976944483090174020206421816540195334203368329346118877408505771471608825068746151590604992390442788596629622046683788825251477021104310089370385580291725041430307831945290110668162890125916590043520748038642790116190462047430350584006908821974369878094105581474187612001050762378214532580792353533727132177914009366068412367337780665132015950953210816485350868588253159829700242970437888781324526958666272423145889552009037928555567487175979529042348579904773762412369129997514388083005526195408226163842404776645338585993623082828433428642786914138148017498809348473752955411638752319822331069920464098761079468768805591184008804752553775932290316878969443505981345299216616293389861978689843996305680276781343890386150149150485343323733648485755863611705174010474908365919722809288997508385603235152722253300079282514013996376861144964687908153508220596804845689665656613880838874963510325366181053060504848243326988318603884555856693093530892013157636184211152580433654453351893664142723257708005478331509407778025709702421366706703465062883732595514542608186891500774748948057811367300757013270151162339654878057329031500997989483829494636674039795781127752372098290740525697416054624256844792930213233758965222367147211695365349557173470258102283755611620573971656767129688290383459981544940926182588206654955465626072551849984017678051970314149720297599754275513117064217649756332107099664302541874663659641284713804368548397780103688404127879935260401686575264542793529944831409242960318691346121009284210271703581442859849833021902019744883514404874896897374988883815126222135022774806803431770587980878267058509758896635005065850983022868854210420917282829922782023574343597636502843950111293488974753714006540632402237631703310659895342035348421797708087777196004539470835850841857564205396334394418720381563259477118461000844511904820507545294995924143100668317398030761976314583987429758974777027318035822747946576430061616975512296330519295274286519418313124826099919181069012257042859963725595601894229492692221361336699680973446638978729119118574798282767388684156711879348299457622141781222371546080595922626337661487959739891085529301330161218575415530162007223415760915839113263064525061341370947614136137462711951750914394920720169815887440539656269697887367301856430622311174071739252295520335424852911353250547609989995789903519868764749250455667760853072776032047968599647151960901913110675830478664864669443191816150149693607247998277267206964641162872299920954779743642014896468035992157499030916856265828481404944096936458653523441268898245080181449243747231122504876202042627693383489912392904402657079574496710430208486217531622925967417217404467600315295948673285608545450934315930816248687252968440952859573076105152018666524512467392160989955416168250490649178569447268250372548514097335740919979811974022288411054096163062383306267054978086530959183493616247971574209497415808573786243417174588212523081449432763390262302615365948694597381661242989893066906780246142933713678305431451211024112985058948364816746094763505890379557072851234135745636112445950446356413690000296542796711586202635134707967552751298696769159543956211807342827234710905441014080257244253936189524766755705819050508836818679538579087343260956367349851703533376080907796189101989598749805266072778816165281633634950931383599819087221210526313570733649541260070154150790063972824030378388753313053887527469496278852632493708700323526001205955106125008294113127837825256410709497861318238434222645113316393690486681576059743718436179001542800829176883678399660749453016429468905247616354086269223307878962973759945748352483652309982654837569968847030114593392701657142983543202154198479396940850280505732565423035833480811160571903780632125738326102422827350897817484108438926675863602779613879438695704781412280781406660184442602950542847832638124269641608030918209353627448124854771631927885826777165528743421797499637795626978827855680312754739087883575425785247824474150111144928798545452204438062405813320945629194303984059108228686861758056338207405917043228059148106919802198345058192373406696167479489431150404558259587255713099288832688217020808273800985997428490646402681038782186905607188856888399977956270502923460704303405224231705397589377727556426877124040064009913617234594846521743096371671591556234116904945159061435479217722129769162903440018326785867659340513008238122110518845969099355970307817130878949180832608342858693445766882738463494929340016760459598010993420040590408984444995926346421253036768044825010554771460388215618119747901643842591707028346890105561650224074152737716616864827101816518094161825069963063108246333042617033930087310602526169209804911785500292741207869389910115161281840591180014307199764118199485145052774023027379467962006432032368598313506626763277396684450094163120928043169187405305556283830001632481854802870157390847114059461433280262066422880233536381151118156396183261984857480795169905859788793218981261273317418434527416508895626193858450373533389516838231331650329476877193176693445669946371927460409277792968147662709920667231499637279489541097718519120077110874123620020304976949459496175018502359912690311120201705249528443014577309052657438330992876480677821078070723796634651320435448063244350597945942569427211103271185526027256233811748246629906512793419539207537126149298511515322721441522435135959860430358596601152481329748812615393631267418429513337957907229860428141696810043666835924923567353722110982571700183210094658577343842785687591311863301397598980010197509726540762953067368851191439468531880635444529595281027023587718577227292205780585380072694902558051761555863611169925020776662611579083656550580121627780484899925046969668674453941095499924146323723129555169375744734565500879942539094054341523266148379426830840190310670252477757739344328171388627133009330037160752637635904555812201286950010825233639594763802346008389944845830072222928365848132474541870037017000855923298781713665762522873777731619465588197156338863389993558269805592346270444572759227529482700077469790769078057930901105279585578855610213762489852157558002113932456002225699977943868764150743116026558634958541515425685374638335600912257013361339799187687399156344516337497983573081825155393209400728532436347206701181623669087558213170203119056474130208126720298072569435855766028449268738773520717527746710429743758316749876910187062979272246926238362838968166441371814898012244490390717251520643396134965990397189205790994252186352954780628090308989758715901389414916254778829641652891205782320521814596920654490695570418158065502853294287293095195230617687922548428901414665134199968193969797175356006840010052052843054677139380664618060242728362653491833230086247346590351467404203710070364302188017368224218273860269502158640338003610878177865295958228676116919153511542906416816949100413208530391998054356102042027010795453712425559275844500306495023360622230192691526337764088654986807215658949590819123648076567495885448508707033023727773682422238652915519216560435552233966251351610532112497117415942626147822477922844594072248619091897898702473597841209513907893907269788014227324859485317627116579203137794451154310297406575060333478397841430948262745947510115166742146956301453848566478030734117267552528591226603284364172994416984830207580249926041412580986439817142906270768870943320878715045934243629190726364650898160280587760742128691015443079654270303827090733395491870380981972658534582721663860097420079134377431301921990141908560375081545057661381966596143630949687074965061557143152573268587758070322577795860140602483308427511440692309068533192166991171544796786322886885832174335609837872114550346608649468486350976116038508632633053698151564938329106721929114764468073648589016091578955798445818612943854312315993745179887534389224980699501627383576196955402226316193821164625151211290217771959543282605803858897344393604952045189078372588252422606851241930820116907073373350667442197894587151167846328684150428773440938778451969915553228174641862172209961086972931286270549135316136235671715998021916963519064556353108556735597709737136246388238506989139115381518117125514783510819762140239721833868617921827139277392448379937109690079961207706631764992173830809334401056056088786884056310193486892763808956113261084816884119659185135526078336138061910689256730969020710600743732123697416210263844477209750027808851669654964288336660110687988035548285461977931292292962686794540605245493678293085762559644815682219011159842525678617831169876245762742011592248898109386618782598451767656477031657432445796809719320071007628601276384588790862082690923721263434489396816094833543307477749417456159693209627315758506604380155491597745011428850288490066232200546124005058164803402018453413977931826426683877152615454256653110399312437410307139714333405539068384749364589030220216363353435355917826991817149538202045234215148687007372705146506015827797275568605667007026001119397981851942082320288224265056886532639733648998853663879997398790461984634216274600484376961890362988330848691483737683801528594964449319385073734745613500077585585698575113487595591404682865812247548659897677846215494172247239917215291009433572274704823312823148523370911545228085421534870107048918954987070586209710271392754838731135592218464704550128270087910359019650082557671669432398304044570767808221865608302326460610168560043828347730708575872538405060615243648287275789811640045761666404906224797048262910628115166455456103614548550297476542324114913120582889249951249640622790373971546007177728983298253168537003271052355900857303012564880943070666196844956309776040269843279505717262725950064392524798721230421678934003950247951169767898458753291127873200457437375067582892094001595609912420914041029390186861515730670442070826608211856807349571622255305028200198068987749358622512486457564641675322715185791589354335653227620397671678454316506933602097808907562588173040642634975799415968917317350103589569157158613431803543097530454323609609442078061037463398284973076941615469097826322891874792238903101618477960991712334583238717505780411519873088199267591198392738914171086691935951750761519714557569930782217856197392509112204079154239077183748674930263903269635714600389904584749605247013682757566670899392097994172451320290001950765125334708449298333024251376167604068534611034253610073939292968845872253025435139087846315142368137036228257833395682239240664716636874530442775514602877504320152545530328129427986650698253697337285530841514380597154885503059281490528229057356441668837881422480679645334726947902974576847570506713861011594424793675230331095838703660764922756155660541779299650225248837436920325092487831461638984011283407328829940033245890438317001782566083191162403130869995635779944598708744990595866636554150927292315894010921240389590734131604170971863814153389454333691960522396100360084832099833535415729860872412127933927203672241390315755403477972458445517097231367408413165397325453917291994873557129563491703294794425415630239852605947385307097030599437581886726565817265440306485741214718361635521982876452872882654135182511128204980214674223118722226437818405227367786004907046932191853902013695012609963404006002711345183900050966858750659482762865154780016657425152132802410078999841617668413838180218103599663671043426688301308145861109457709304800795329875948698680676013591630623853539686952286484585866787536354526632710343035911879537032882450123321017901676042314946974720720519943979580129173274023606612404263718015710836171859514587224089092215504272980102124056433601451597628370949646698641630084849399965547609075669275250382312317727088995352300040904831508044751340399613571989459092881645854150603957805815926882239401552183828574542413009258696948333191433927914381339767521676235594460244903857187622278468564208832577246130106568309477428324385261184754412737912123937241830338682598840344797705240895453230012655445285265797990251790391752624040318860222937956083263330962450471523447748773597724257900279508511833171148606441961176363266501105767103646277582023811498345257434613092117198886968159437154970733728515720798243939112908542282471897255029042723173344139642512306924072170128352985956504357913832098310800650263268719703979158505533475713237852958697623344017792500767328235214454166277994777747318541315658003791825563325050348281445858381860887474351717529276104225660349701410585597337575725872251177599959509525450352602444937119642744490080608182649108009087077342643539167737928854910576796462037384234924568366524154654718349251247318493718607437915355446329438290765340877197226083052454331808333326961443786737698654969224869229497125905963253883209548573731630862594589159923965142365012657222143028553293996428487741739901262459467364031143930026126754550982448518531729287749170430282245016849364670410440194596698761760316942176934942908188367824040751369230482303814212251725199123059263039636371962063980535878215409804404853639084482092414551714738878947907933548697253512866360790702510161161997909795605907636708921152432740814759896209676671260614767068262302686291374907377305095346394264708091808958443035011733921695024071216156660508384934559165363307580134864554899516502261316214058789197752934749978414138837790386961356632503625374483201999460296126851001231485649059995171376147180280488687072453474382862869302780952358937296697965889553575995878727822833214098399911806800307407741584232065685004176786027114490039979054066468797668000866491009816300354882772461386732530332112604728749216869203585582586523014690811208507229062741731621056128719768199924793018004215610288871533361798054114647039488242738370438673112258449461538909836249720458498933909487943742247211534596278631015421956789999212115934009974683141880116261238852753751257705698820089045099293742749385450849690108377747861788824686489948529089295612839993940893526057734402812810476114019191281902944214362833155013433678575487966859531640922701049042118132019144030720074168545965646408554195151992867840662796363182942711879196940614410166894404341266769062954048644054726221915911245635082016563756653820044441132843571324916226822919518537946421559559439673696240547829122244175877281704842742237907300298965959361841979337621195060990365285334667863846594602736661271340862408078873070399627251871079764733340587960292077154879915643035380023057420454670566828998652706738151686660015433100312330846003527284107462460088391245403819897843687377574971051378514198199757872534739089141841170969855395213457457672671785860150296032117665234710133539157812252410713842945060484704601923284385005303728615272842539735471773853650700843693509645286183859110116150031602965402918577282287534811898165243919164747516152051092120542645694804077179939222326217080143913352399745507977414207559024961692469392158826689161247564272902866184486218925747966135670770657626774873327165721629762823109138695337940864664385726993247950368316673046003575282291057398147821326835781300484717212565483357160054721153557669518665185601379758489190324859796669850871290619603163565834142636985844122874880998551873729465119559912826804972695743754563859505457157819655518611631943488840500543145040707567695951797138047767350178924394380900333069084780837804218807136642912923659325783503671723675946667733747539156471833542865161574403925412190591888863491421466940362440073179202456330877480279156520810449076317043272660042336736405802355443647927847954430615913610008334962502778142602426629147479352126384365139624859011036823705755028420344560432626738146568750084844811727936685398404682841875950714985593596215597461927909258081348630462943446954946612496176846813316272270468793695375222845858247183596296698994548532503583201768309059342430956202312294309460493697828622897401942721952511050419872383869705241129070549302086988176662408002681468670239641399658316512697495234006885441408331689663294571667946872449241802265012057186449857855839368896197943367245342541943117845256031846594328475844895594234348786615236952485298065406054796468106348946098535421323133747143064007192366203304591681234569956410379494758561392204091473968679103111256532343405231351816065334326598715456038722713545220294274169326107719435510778386535004063009431247717310601808054382814321490399921179716762827012279931821636412630046059218983535460450614072285680261892841540969730228802881427768550146151210822547163716741483011421502780293748012769012789494766580400191978465381834072513838384614374190228320355794982120014713164360368889212741877373775990368067565403527399483723285856199607953836242106320146556165003509479481293062111037174777705310584479669347164064145636077223984385223080002186473224353725174916943007132230273739320513977844847591010695387287415685482410911283963661695702163788016001675765699735854343423849468018466850321784549520594682172492987685085171652504386913756739760690862547524934531382355880991865891128067621418790649761226092145572935612981193644904907854478230819404871362905607004473925115397925415162336671478221015451181075150787645423549531204265972961984951914939878389953110034604256175763731772564001218827265362399126696580539891386280859736119160108394258899355728838715637617427397154847507651624931896002890764110670601560578234735295085875611772884678352385097933498501672870329511387457653705344846043136525203944601069522943717389284990768374131282375576728992331435627600866362315333543712994288698758276282418353519221931747632911964040869307929558297673742981479273027207806604652460731381097547193217807363721829119629029549085149760570275560060855823233487472508371761500541558630543495925107499594937021826834725016850054117098578952344104224196152203749420106422867994089718843915708471891736429419139763099241058726145914107508843184697482483075918816927277997137928072346398839058209920799303621999221317934173451032485846528283902194307772374506426446691108046539347454789875953344884056428339574185456173473057291095099715981647842743587583203572465910612974258981202213425920913058434746977638544489333660582238303466265706225490849118622348869847432803233238608978266993842049264290628829564019815676005121037587601287411818444382671115523446365677604707669311453113940557218529629496264045051839138200793439630499887924635195933271431794343674360645405940855594256017149090724542978431301552867327288829249913163700719475061655070031537845369759669294359470074521797840131217101986961914158572157863439818389937882268741982183520303627481844499137444798812065985415617810695599940834671630903869043638851375683351084669592393686881923486228311023294435017952644476065350345796929129605685461894322304642321262451652779661579487244504965376076474980751306838239377549148193230610354382229521238812858190170157223266290066323433366653488749700945302069344699694904841685576216602101989254863085267740947389569075047491383379946918965342583160672681289624461493373397907284553723467279308351105179320159652357796049016350925029101574836042746207540944963024460264980555596131256509108906611142185313494283188347168295742481245729482921521034986300325547705687895639127600315539878549430135461365676970084276824110367289555089515807914130648602295689742581766133261088588090366836315267339897521969257362930401101003042075631885262075793051597961683914208066734238036075230261620412476947604749541175111894799928539401089747914554929701436949699845305181626238327054473120671319944840058224335375751738019417438352165793980048444340117526780071872549735839227624073589490326699625650478225476187228395566802302104719643335263232302883427529520734914795730349244255566529292880133678489157036928872250646157796764531433440300893674768112994244563139149807761112850580961918845526365652076724600545645530489842233650018434722849856425981557336720275592013367956690911071363508085747248383987648656738512072291866570698681192191327531345162724124466311931257372863404099002254797353946062353344815841490905172540219943738723417739489661283069032793666669838899532258768073738922765454096151067579798427200309440595467062887110388971003017307283671720210901147531651740438351364393037510864148380027796505344433873422833387562924899734742035047970447914370589393471392952269395880577573957321909866664397095545198064435718434339818039789320006534988888126798222283830780373311548286577128434337302255016995841060301924340237811478365119462449292359723283862027395274801442123205789423032374801666520770240672223710639912481362997015123501950983341107178586498411859725500533070902225274555975044151382255639384030771832468755666486773775969856752673481365397352551799678684843670607973191935965016536104307602481807368273259681637411563595292630615560370602934739489223294088476440062946038827896667053455575773126591453509312810601385333327516774573670396576875147751279854977803233688240933822171988707474086986849102405684685281366707878630540324752362590333451053034951352423460571820716383314560888184329334739818057938378036098907007554785992113579172936016418740109303673494370045891178145483041933707246926827784556726664361116982546832233477169480943197716496874280294355959036640578268697841375796039072249737896811863132416960182623069339261635887105431581224410315976623615492104071005465952746349665405998736522508678720716809597370161226314698829988291153530453796737050968017554229241409781199465726296855550557310098860644462185012199567150570075461481716557797412462091471951732221986391162836072560821415809220164772221416498559570827825256850804710934688008328708146147035751491015111244729753643506883362139075353223915968994876416516462082272490990315353997964926153274967231129126725441284211867462111641623633483546677507757883869512631546736240550824897069537008047811772071471427860234765016830135562179240179693529919504105822171895406012636305048668831276951969641656213312564577965419283712464303373239792842157723424989275706692903348116766173611743274118544252203889780051992522271168641701812777353143952945890381808491336535717723193444291884078865803669610511282658814453239186879522080846750126067200116521099162629324532386768564573181919970620774907859316449027631281546952122791167528379845511700998506125947168575689000694373195149548045101167812536361339036281214536897745799903061454273096179376661800759453924774004800886971913294504390148566492922902110199158140776077018983693306926225995657250867048548485946414748230308229875779370069691692444875599836124656599202400163697220368556896815258182947832271316774631416804150302092619344652419691990036244484784133195012573517747463595866527200123199281832224094113322940659749341785718480030438123541222642566416887606104559848604143723172267072108625199689994470299447288046532269930801993322561919099961957227161763901998786111809562641807721931879288162292762101025520249144632648994410857148780755687131722073755077206951213808517850420055073050736831191044471762077730335782956440968002697924435605163865311856613335464262288024116082494256353243636342869258995041434737562608218670912971243440296890152907953211456964353136617192398890374075093437045552543228279352310977066929570177052909570198507959962436479762913354950801567142531319085383461241446260123631736138846572735930705288526699632881484531900586533689326689188309829223240802451114636798415057306638639406250356552031107546644074880353831483502852027279138055006341574419216530135672572836657610118111286704994669932239232195127182658635595114241425634365942478540953041200934777416742828262866656098954312132293903961471146916662628155954447075180858547363581618142931008618257318330403901207248343158524383349862711231783670787227550655136685069547223535615054112928174626674680305209725287465215670137769240211071273165030692944295813956154027070774419459029749691834343717344983869215425762293168467992305205450595020954549657207696240539667673727605979064521488601349366183357468386510248583612204552767401542810332469304877980422599003519980876002617478959414448516255060990466559257350841750516325130789267384301243376267387461336742972761760981556426253373912246419380020791993304846431835331697752718550744580149796674748224856387140561164547296936975421442677334605169897730625705853328671561748795211267152088088019718842442254962520953393231603209763982022083845055954338791530511105418937082449614846413059048602005601615951718060213310022582202154144915299037413037186584856699731161192456155705894286496190980956604608095844808450429896600739068065721096082682428225901441200761430754128607135004243457448738428943508057591946695878437826667254892116092425447309352488860665733147814734567633893404387615299434088780391816316526319579330106449887912463310428058043504672261026758897185465555710282931305130127410433246154230078182469232872749345351417495341533114438537594673776020968710075551751396459935008422689524980349724240677111896986073284219946835217846106451412656332089309108156114397634681007481881180482519792212852922894826139468430637441855172495778428521128972802231155117515813689306625810271758606283433490571584078109811214419936281146667340209859782368815513526235078912454284520077225479482446380681902529777282876230544916409271405354859497149732680524702018891064727183105468377025640323300027760747943751889869297385026169061668377140776652390211998833389697231169481490718087806248327912685745687125000951365439709885685445979812537009061784053763105172517491182685090324347426340560435361332719004194353543756904760681170947509310197251629164883181858811771062178541903993834557106122953223268877894188973211028558189839825731801193659902865968639903489893799106890078597642491416133660738020281285396269094249454919788937089495057502581673830781208764024705623113091657849890454545130696900323766951423641433027753343673300098948643904065933882180065921472681710835092375603264348013352431570511863603082783101910809445519872943702489573689584236774944101670026906214520753732534590435714271875001529599408087501836166329559584639342472639853197901052385387139077489737898024864234763443963411809198194846940230965971543479517390954174724669995647377669769900513816296035588420668585403381714699041043546903973320942531256242563877080553936617012435349695843186839367765728000276867886077334376601520229574575181585074818349356646935748307966152110595223136160724981958402008667702516394480112542469859520999685011653144890928067929608067170191293745652931633352839261236103667654373558284687988073385295142942951931020931100980229470731707492174341803620379533983608365904689654172664789974977083787037301327619051071046591664399509666168495005171878108078041200348825691589392844417520863884806976370720207178615283975317227729211871831272744154170656210224120019421912191763398311202079942949813331708786967904287131777220980917675023435889128943034226688729467207703440481761146837835788387620495163698658587322723099004010584643688333153051256417715348346084255149973523139963377053397037058379528359755484226098955929096979862474930725237066906437874375805675863496286716339261641931421178011864573122311547698479555368444876196154697927937164927985357684640635302596488961860253298673210363803406258368362209113434844951504890712977887636957146306855091552793558213891687515727236682591589714667492767426893309783737323061531861394500435297218441570057842770849777202596645837045800976643154482425256133175667608779015691513615421476026348323705116993835083880595463560339432920764149037835334031217148164156424189771623945397386991645791360539074946392110259775017684933987906148759999402816268152595987341465768515347003059315135376631445749979484864054614366159764201095660553736403001962106731233052464151194823078327826771813670814529269250607566675687654853374267902655597736160272350353837374993005397544798414159826337162221198949213070949570256553282730942313704807596250359944329929100580304331269485268908246375562661183452399210779652740226095414515352009718284030490280975928969124914135161456643742321598012775671765072472547431984002702343385005278993432474339695354766694364354477115586163932543810302876303019075616372276054246100225012149265187530223813328547822973240078340371938828393866537896281796323483285242991520031044564422112531288587913979548595994446316936541650440345716984098085270017158517846469602623402738805128131986012104648734248109057271513227058707635263582362728022547112848873407214784607010860052468230423195263267026651173698597123508940526851132776135326065067436426588811121131091854767575372406957029399491358068352514591482061064269156109980378900647872664561247767345795266088272582827071585897163529267055415565378383941370974928405373068949482418999097141378414859339494494457100444720124662657198536204184293619589564722059148752831386322691614358786661387286014035386688555294911068842596366127102205515309539956492345470686186989756547231558375654331627586135829606667595393312977932449995411771163151583989617864291594004136476568941583647058397534188128817435830369851428571461808658355943080748604057561760594470829866385698783709310555994720373978753554975459666085140404569668315252059343623915241744734139209562948143439903282184711728235638246987856834634585533490009190663213249328350300629934884218925330957473215369403633097516542185285897398003244372260248899480675828671500657324072113060907798188798040350006253103316702293957212318869775191948784433472153597669633500710637581404832451903083424268013626589131817653059897769496781722286964374204778382870207490182449503628387588887139099393174538270307853912672379609170268669648189507189649160144796796226835747025693053242111996227311008390418145212716831794858532934675988377380527905400922870905907672404574071996157530261043194673906444278677777559627158417785810391388511446700543281747139038971044630982484266974286320058185555376479683301269801233391822744891673094893552308458426984139587529173900030062248395964980340304238299099084980514314671737245153684882604878719889333284622993568517057021973599966342180333538437874909665406234209738363068587076003355047469995793491427987676915763308387012917834866447635013046189152574233895913541074667729871054396237836339052804721274307965389708744343888565664491305751041310753802472211109644981509165299696401734641536710634286613251609594048750043229227415309342970690873463975884014891727555491330867044346315109835795774009297180568854453287035808849287298163606580271264438746740940233308630940950939668523868389222634518663816971481579813388360404015888194465421090336222613310477011116578451863657073759008245499481733269720630700596785214169869717440505764498556309127243458352036727391709374490065995343200843757598070629720518974241273155379865133202901801673889162466747620748777563655896940881574110499908994241445448657314965876736766713637548658580937731964670043621297567343984269445424981926473905206964025879746590706019358778394061538741906959729366148115739389905329959013256210858306032822607243638761228198716129160630102279803610492134187091759300369165257348185699966145545275910301589033680485908347686278447557577112938513124790873296250560138631983793053224079487573304516372211081731482510023213842643200524139879585093481039376998732435666892421554211928339153402227593745019673160129100475893532272356975203931565609592674164782203976186354691862678166347427041143531169366369937395807504375903483711538158458404167945880844290367943163792820968348514380430545171585878591580314171070010710697027163065563474508300030175057292702468787003961887499844785557357736691471371149215436098306215473739397987693079198889079350488965766992929686715931127543559455963360518505086640377896949316494871678512274795254260024687446382451246225631253365107550298031861355492824346550229237523672147643557926101046811121883227966617112820699369427717244254382060307423340663506610205942501601145154165773891416875921718218152829848504870532028404256222775547468360460117292867291734243382552229464714435313551714501704571562246131508798944181143591491794634023170896975489018444453291462502428250372732979534893298027688992256116538097504564818451698326011401550636634924831897298482121072229699700545942639078158977165128306189089005668719384312712851051691450140948600131562209286956639139077167121912517592074198003047944522826121029159838813554676221095834265726150037380736184553020061136275423232116270558501367503990612707377156973732485695212469507707985046784474992489341897329802397224046250733239485084392802592639928731628634698676045942172108942627259648790143700353346533673805087111774682770661593203441227592631571052729826272567318017303883428361806239240302229019196531902588674975902051455365081746641756553527821439506238851661023397111585960386150725233558944629518701057162027316251930129206787209126979621132247235062814912986845868666089241303759803261602975596697432484977613903201395805070817137570278710777144375332123598489325725320249922352423015284341941005040354916909948802108709366285517909076172940043270328353035128984393049662700852329389743488867486714099320252890101754738808507402789706533803104308662801255828569396820915795555950372803383451137247350716257365378852595287724709329895249155683930599093800846911120924264656308741996071697967511904271687513077197707702741635264815068308246277564481310857199799136841981880898870296955762606025060826509336007078699336535556952920673678244194100068613715584581804054017392890788272550035533894126299745955602628597244933712763372214563880176533391870123297567601600346368696223589501805874029230989404164143347421640102560752546640059795643069558628480372166534117491888082707360737182312569997226222161119106063361778226359784697605444864226543203582363890257417553213282215125664529861656579722667764916220228993778462011878149333030950609831055233309852843492856102349335173922784322537753545430745424411464455931576435654683138072853118566159048207911719900870027421919283200039796369447036313856843828658157849691286185066326679578753559503387655510520399048008872442194717116236206420704054703245471769673658897511080262232004729386860864964474239230592344242740538819256818215597684146615004828428098105459573156475661371018029229924872608460490885277297639881298741704079053403754124180829650082128236194106931694355248705829879341187506737418938199505504942252628398664863925092089230605490821360506767456471463471514708604962668026446497332288813998203614654614351881307795431003582285534262393543679749055505444003715269595736096138266306460378991057470942428707987436669297869489614471633192861479442525781501267850038412151884333561942896791883765467055602284789710978316327675403780592023310693440013118544704352909666935825840372699420232646858584664506474046414026280238990984351418199092084461786446476588492068291471391272938722577646115814594774376390489005626637388168501587938841184992003975439209370422713144942879892133313406826023312881358686315832299762395612755790696439050585037867878181673052189187602628928648171127146074482210595094862826899509836805528543258221894220375831477900429285240958858149514843237551032759369213561076225443365915794953979609273190286092188972516254698116162932824469211790965251495722439657718661672586272486768625408920779461749210966830707875291790405777724862444676601531563227812837576628912967914402337393538306989484254890415018497051575685204369454541652996658282327623277660405110461312417587874292767928547731621944676575977851333106418461345297880297990501182868872629255395773426268524304544139058636332294721310885933301046659994588731033739951019155245804365578121252530201443867582869845077990335208214816779590841576651786001359024425316673660625144493757669314415598139778947621582164549802915990661303205416901868919335055657227063923805426713384965075573747598981031373177410061334567437848597676658104661257397655922954405347650057266601778002951190917329330715301094415071381586323432141005153625522521318305562780594575356725377817421428031149604206920905916673175007508678037103879233412246012284892168187321622322782568296560996423091622433136036289188972915292178439228645442353720364407896324000783854862596317033485012162202278853377430730159357872184366517609922533347203654221562532711768704515196119381120815046808699895123971357608590783139831758692539840743816534682152257289467902486190321355754244139990487866289572107373772853256897304120391223205441499976532096818581702535651280342400086690500264099369582524285272361262721347685057765255137854168145144251854389679881311239691713411088378012031448601863791606975576879576013693050431486563812891889341541087959633588674326589377885989004689739979436494722004762469093834631953966675929268130358784857158305165065820794769086362690792384175857281398112280814038674593919587963949450296808659212512143902700186338350311269644872596328279656530316255815535623509771748374225833070830843493892319695658871879696660788636100784323577932417378015647207455179819298700924510387011612029729104265354305060945642884343597537598495443862596566679311003028866959305207677062107624516049897583071975835815137412924030558847123195266916213557220910247784264966203838377918168449456802173650608757956157632914604524503009892897671560911554901614474407196277401039412835777108199202032601660647109904684995855887756736794104286622647734734774424571900412295715957579653719681330935977848922356367710973922033188167772513993198960897541783904294530534747427317512685469101524953702593479008963486121537661722567075796004537276725802834004359101579234956699707716559512315230856036816876182865891456622791608186876290760641403003720819586496348490587747755979633511363695985996624573978886619589872446507678787773554188831427883195620841272123591249956508861605606488328230485810469031978769818968418269270724438819791018108783457081520579210434615483123412323659815391598720250647877669720041395949770816108234066459998733671280563062071779377906485261340004586489885645923135932803716343144781711747215498859040143125806869372960243296655744663048211511862948434134896718056040249880329424955997809739279975333141354138049841201085215863606477616761762531872583306144462505712918266661024773436090289775795840672611685180294374114057645573292234715644656708615549001668425442114478881349901606253221705399892408581906313300751039284908170436711977356172927948350725694930918200609345947685923567269069116320958026171200343011756650410250832329741052900213832527486101962792446321814622501701026735494816977870632224479860562219493991749526038707526813005825515140513557456609378208730667863025554718359627041076324337630646311769658304364487095985541520000549482818075813389475669875066938914598813119527795214902710382198154323817038221845435517924593886867151953947912222660427493820608613582854676033700188785649688065804952612420056761892720524969412266667222275586036791558841810386417968475557915274345699600464759533214408930113646141758135689700872307885231004935084452307139633527501051434991446827429091686008067358028825902635467477977035074495852483167523238468731465011061667358088919212253439841402968150056546661807330630411013892204236579227770877165842007546305049614646239054055375931793910336373973560808962256055932997581820258096514597879648023453857141229858354062665992483154280889703790426013657450557294619075404876554506748661779424654419701627696419484847629477188040739534222840914963736341680321288576626499183240672530799293989476091078083114744276676976002163083411847995021274771695015387576500930837346305724033815355975921241982208707969510822603735116638636282873049413350259950886288298026478658993375668680105631389677703641141825949301505151335152535860991827827311001436560592562322382471457826923014324981090100421148134008120172343208385300726207953080999388123623838702296634798457529747739945188393425897584151678337671840662270158603970036381412869136653209585097461291555263820680245968659760614017511429918823423639897164784696629387308866850231927486119202240505546989250103577250580435352152058017556795925425760738700319723963879001981778109019745405560459648707858250879711851608822442542323619588101904083107846290330199427730119201633401725304156559588334208183451834174298778000460134789784396594049789230571101411271318687229016835929561310035016866552531943209151445447078486477065592160571817540129912988188971669783937550652331921898501706937071491831472058464740299484907420697226790140019031114199526897868081024144962977541290706151093762894279506178723025964829137510147417948946998467977183186296482410821947041658411753194197620486000964047089231779572071245110080362397049185358207598571552112027294453537275172007130833769114409005423985613552083852250477745308448553376621774723913203609410424745948895808258054230967988841453864385155667260432668765003045591801563046590626835366676195214933849141166429458722535126518844186566906939679063933669733329119808443439372453672262610399762802532455026652015492689092879520047781966989837680038532793328317738834705812999748651796187324960325188607002794501796033246558652808333869983209295194390471917187280354515047521072303375928047515943111274653760553027973816923528782019814474395975215171512274417998046300154400175901847356063445750144195810764500337886078302851809936584970430072783665632756484354621463026411609425490859314482635524922722053407854913702009956541037890831860439349966465441887296995960782600641730390574089611034351990234534117195165006269318390319521528466301783958351081170166020351178637599967210015830500043894969162216327789815548205107519154091043019548182371477796300231812709723463990329900698940530343148201628286832911145796456938640756527505153309971169086385122363676819321043437465794472494070056523328279007206572437967486157664649776588739802458976504039380959091118107480454363731977534579997656640543822318028975526815643335423054240744488662079943669270570074547476606688680243989451438853170418428780987726705582463575558887632147014098527670509233489836508231400756600851718757824066727876984810740632674875695649872390397992607703867982542706312082971646611544596707310799220893971558401544828270447087275928118246276666858037703969148464776110018377156722229176967834643220547070175292374584140794665844465008804015160310163344850319538918845414065347638488607702128439085318291844520616350386428738319463450830101638965012022565989017683553809724361862629149298402504371583869651613957772286600467894459650314866051093775801833350788224068487237605315705126490271432323723812172380423410179316437740101534943747550489082491359273875701073106837748197025136179100749226247762915759627980028813155543124920265397682211223134800400110000530325598168897140531496563946003311867176288496541789656298389401812577407330919049329367849366679218915880317841242407296321099420801708922220809470526001871152714018127042616661034870368867588327044336322364494215295143639999961591714240885238403023971190998912679078561566263917428322825480236926184542957989416135602877515965531527831928410624612442999026488427373841392427750213372325353565932198104993122709370330028913786561228925044163928645526003181418347683072040273155137046142532715155714836829633793753403219984287468782656214572085665636285602788365474465750034096460793268809817051572898689642364738630456976261904140091241781642396743388785468664401811687747667289327362521476876978189019241712601933253309657304121826613732642544457856392646661650918910067504534723233636450054791312008831753414767964261533830083049096286768741890921997770423552162221505846205049046323053934531640845210228996835666218450313913655431474795073547381307175355874275880142406004995758366936443951167659617505790915524364647568416941842246670632285103062507523263294822626215407444415986649449296301364735411260951342763104010734010400135049123241371484132422197802206028597287743083806902362093405488034587915221335929657029062130830170605981865096415000757321121452001570365666863822845766555798580281591280214160246688949777991638718370475544675291708280997125331563600055882073546118770146439331296917247267021294704371477009080693309007489509033741325297152061706493635182659773672273645479811172346738568832505217927741661912128262843003416474906148174166526677234367783379417648431289526578006821580208491793688956521501119508145840402744977349040138878237649575194024563912921178728685889408203927011931257428525647784447077959318748158440023279605227570865584626699509904494191961524758157689774230703116353695133314928590685647951387783799524278953466338838617520966131346492417407271011684389019084292532117914559522483148812037954794056628260945932763093343535552945790336550663132582770101579108827665889526010964320622967640867922756747065696476429439656619472729645479469223832424872207845740030746293345890653181520814725900038724740407301290788640537273740153605528155035499032282261492416902654424446052782374481063646423810919088794929598386173502817428324896746273175260749550162179234983089323221415629382342858828568238810959773345973508786531786419021729608900202333079773373723419408628685054071308217449434469829718882050425251206276326778794628584280526446169230932416784825122049158245707377720527275681867857972300746574409518483306082712461951970909714540678617672858532990545977659214100971085353863206684884844419966231108947397813819658765759424400568620766020383750276006570680224310906768891507936170110900649222758012004340106956425245172844538461702052609246991055780017482060912312747056742322962142835004467732191032452624217979037333501713114894875810341007073720306278642052449425451107531009798581539607601829498684626777350762371218233551762355132751819568712378762910145005171395004513639379922005909728799648030841477609593977119019162205358726069186185169270024281641947731389082604916820724953658985253012983277705437525445705651177150147595735387435055644146851969003167662263597111976002694155408161902302105824786759910635056520460662514611506410497894325244505612241670277257980433189594028353478113670653848268202608549539408796631502626356529912052087224529927207972636435103405437562710897680657061533426856858424955704804246822801357779390932408636714278662840677381901513953446397225496765954991717097423522746613966621383151607966005954002999963605833569288973865896921156172811650183910657299269842963451602893756932551619696978153161516644419687709455485143683038417923434330816848489884160415778491965140966261694696805996978876026066139288802767455521620460339159724292939275300801167984767010577060170955877332975459701398173353190444685920942693248010065237631368829474560519778749610610002701452478049313696331163734949020206402886226149771801928938743290060082062102726764523620823499980060454982016733594968470811550786065070145000183040186258912340936831231985489671631359311741496097546402356640235235047523677362763771995103113633757291915180469364712613309109911625676980609847564338749205523625317797220445900275889976687659157768823890805593513136457515557818021333588754908745828788716936783228597499236861605319903592457332765489014845404864199054227236812539030432838688198936276497302389571084136164037941488679923502308829001190010175448346225142395560676846279562107713529276014667082391371531132532383645164773550641960996270039432316564174396983778891060631450315814383724837087245184241712365258326419426308368972587151340266872982681993208975640063712022444086309837375283592478068592831822544556839412046838784436553531305385956631521981995392948294089442817382257588974716919243539897510564479056035799974953677481330514675034660859018429283314363255731088888646473352361568061610887919141732008732910220876000556585154807390813166999280142451028173811388698244966031295539016564300019938317502266449339456137371575748477997825743236781744916998375163871727315558692320160229674333363954382349676305139747080752999098481023184689847059375024490191050609702150682950878283918219943752008244680245657234421051686980347899686639758129562694100927903845439900543479589948478273221229792072505655348008428948334048287504916159650541601271060814737173111651855582738365020982221920686695174277352750516729926201650506966703630753608177603323111394953137437468122258633554590832721853950434566839440843318105296666164183526169615047238025938223322241397427803956048128560759564692130220527372011076628376966572834437568398975393544513807908297224408906321018491989873630052174530077796105089319095442876228202653314935038629968322663263168847557385900282856403012132755897481670083812235924689723653710162358971136048479340198345640157488457742164268431872583190135947860074170736711628933019721090939262187071512159445973704410326112235443578947147296049641047230673451737009270341158151111159465382547078792730465013744344910692558369288146958390136065857619925816327181581586989824066026263970300511569681530889362410462846623681408504481829952069628083074626348453332408407184607928076886501243831812760922030614937402121804713590744298163056041813008578717697081633034482028240942930312468482890915353303525231593957930841617739189051073799093372904185764863439631098497300018275339993973360891096382481564799804447915374703169856396406440710226624237402197843335242051249701930489798464787635191079925260562234128749992659621666439194488631550812942734492018307224656332825128999578739472498803946261061324338176074172065752826886474935765545782185298218795342043593531181240425606534392088002633986625871192800546732438542301046241595156625777748840087834124716783578013318646506566738465431349917062303563421769536945320741961897074852764471041532033257465834643823857826353471747072966686202580512364331799502924765657068355106906946744371482654163286910947616727224883088251392307353909079684419267775297603305983824452329847747207560516572585050720882540102914492650975471352467006303794577397256620699943328149836123079934390605892670664042816324984560485222213504149604412364125364728021777095886418211414174380100136450996345192333923302789416414929269000524923600773137425760187425744112422558684122190961959950843961789021067416603071663166796405736471951033381920161146905173132198944460819204661240601026683153421610582773405744612833598627407744540518342941351882724046038025532302270881158113481716407206430225509087984252858120741103710276390042747237143952744849503658344058491560823182466793077163729865299463090603685601686366246833286036544598471325660406683832393023796984525171586909239514597043572179762198168913957796498096374968088862561552586141125217226718590066826710465290418593729167948089032706130691748789302025763002991034929484673554259490953461758252013876966716230720135031286607978045191421403603858876137070436816376068458968365996080716395637513338421438840708284203163433585161916720765845418504762692737850103088617426691285008171572722774109495816562456789645935164516671189919368287838167075868080798043727507114493307099950956512666541128525849407403633323115990510665989772114642230625638151225796780959498525787551331008510456166751064860793066121814794263528256584321967828638836383740014330247677768036691558913581888454426884582913710899152752540016277089270404522005291001496653442087758745768195724249137516132565106752572723354063672891414840728564186202859851550599505200471465333157731037473688442798112402873341374968286127269661171646642052130451965804013963502602097865047285858847649340034517214027462645238050556735427126920168605335168556654856570219051416574412419605474149187056494407019928137127980621306588085170571019929117740529017296825518178686640150625214518631929321662101164150934964800456192402367625501455746418283144153266856427452974861441066322310249548322258183149424427809584356220535874147057436846700542683504530118384304187211267543551904929349039570060742996834376220260408544072126805795089615259241318500760639971219206716568794599371745636536727735745812568016191615281462906959337116904887670749462965662486860427931918520313927301392148594732317302347526016853683154234923700240562388273637485497772109806501377155798168297650663582349553253307857330022383406615364847051135998716214553213673578145794920066275252640811106246331439706032365163453614909089248707864886084769619017816994802900817319547450509516458317553206947978211943549768361952385447058609812236377542457006046140254386169791232433439429386049868271065037878003621950620562319180288465321300167554220937401587028820638661425277480816064877941124517163642082810799334056748331452310868236191950394229754248918917608852935589390359202528678871313809284456218730694110975660167455193150366124338070297584125931722325519387781816966200155745199889557176112685552407142231624820200626614054236699365277701553350844123000771494898686712476083973466852679774360443485755162350580582895415156376610555216503919427784709439995014484773120874847710109892849712315751810729105937723173367051318105461041673099688115013112461602427276645842939942057756531501542813994539611751914513734331332919945028491006216267393902062305078560783109753494028980289701022660464302437157511096787861023636497010072052770911428895232057693597551396185371012322533951180927879595716246387718550304342035428397562718226755450846746425820125023907209356251833306464022402491469369292601944195554400329104384123589965732198228844834905539434590866718830459222794570529559828545998567000616045658938487695941426227957227268583560149318306457660885282442727571104408674929390130363155882247858297547919938412985144576334159920514270538259080486005464814399493118042048382350566090928809960552032791209263242489831355960055144887706454834902322558679798376275714048191510925204682817709771129179686648861805558187197021576629655078450751229444306369702958377110058031807369001774361419192847264540371378043412623096230720801870820803397327513590371501157124791830588000284445126582330958978607805676834301722048506444459651680820047804769612638824587516801514307864831524720692513491991401693755857304737377971207958944314045029944419936956907243444184390244843449701921557370811202399976138861462013354307148247412037903950504668356227008953332525103073295610408702886260955536928384146834546026926508647132713000837512439438903191774544926968810847341557893835738458824651863554273563009312539039964292160969594462185715285682925590741351000263482309097593576662140310707222930947694112220171956214264917340783463000686905517712232571181730410663755429292896464115024417312844106998546535967936488662006189900665013052843843538589765383327557492148989058289697447497035114983751406329022279791717464857333882715512345489183792084428453169823878078520523949057995801205138986265947745331641536002719013006764653836273015954084011586052835200804817910891784864703818117456295062264006994852183244637539713044297508672854379885543734860966143369875332721930046558563407117729387987927031222323348377165947175633282634210645532618008827407088844464883197066410125451492631977025825328493315073937244690557226705766517209794936495384409314926799319387244313150599810044765923759662412967983460744965921032182105450154520026001649869445043622605876327063014962181295254543989053855628230366617655056215980509432127601931940781299387380327052356199089251913396284544927110852541287134122857179466051791431754546617444554255837150079558743560060968794020613120630561646001627955136891563929060841953316448070516426999358817720725474347686631543211147222983497459412002256019604938146206301486376756579407910499391001892140397387144470837045310316321433338460441794194442556510613040569315459147397771236018908741043730132247042394052340707886221958467651313819357918867202434665111157139842414788052268671173943363305425360783318366591053363074898326508386204986013514292351621897000371214940859761243284299235681105741544761497489418107518716389843842301006842412114565486197954123290108424445290771289403595000735677287888290926486212447203397178758867424265060112931825082703411560690649730866037132989293891662008016734951526468042158320976191032951448954582545359370175688754860497033293763053607720077854773410923397114537392253997715643315543175013079455832053721323735838407938509210551199804988386721746982353442352602437542218023202981830621932675703441580179122777595668993178306640909101027256322118225996124973891310036265596924680908119727737605244663768557481591785243486912000026846571420058669196550202495005567685035516339001488462656997329721131625350667433110612239589303875911374473591028486117830010790875240729481337711346331504851974465009627972760511144277487116283370211284301651016416035050267624731142888782735485305434299813066335683810901822652709513865316563794996072611117430697764958888052145851538165677579186640954508139675366920117430554504942978451753064372299651453033490784220580599212434349505468265783501135111371936982703373125261472451856701093293216840695019255963665186324677540812234857644508784029255414306343894577055845794608305616417361870537864472620775124827609177118968015326669947090307981463114266207739424256351026913006169023382939169528993398536355318859724430022829026776551454022732747256097151901052913097578756844521257521277611080427544107520192488516026117028459054633958503341000581344197916520694608141043032388037203150985206981998736976440416474409196656287765118146426167767369662119159556215857647785809657231190620547464864465564872372497939132047174726487785660847031156780301809455353530000988047106763362858175976380098510572296644337755824985536375673568331198433451879674401651368989788266585545075067437904560379013731382803438079997849168089987511381669874962051585012684815634561095700642240322647086604053201408418167715728808114503054068284961912891301104131019696990609199615694531285865227837815748730065556095078538613642694660779957769610649057513903888980127171840571956768808731092370544383166924919961065733015686377965115604419235023232687191568191697122716518260330043924472328982855738110660249563473226628859599771645508541158126572618744306572225829127950505370769267024663934047548836251574200966912347698226233353981848919300402370432989524258314618121108769206466414580805643739985253200387620953906134496129822671483478453538532601320760648998037667335462816178148570251240006130736054532952662568598816041223315782840851875666579915567327529855726845180218323373921616417236160951373826574393392643238546656459868805103562623559558497151663431724507871506548270524413317850564109250500335729810506075124683859673659850068929417497501342026918035018381397156261661636253223516680161898765530283352587445119310137969386771569599303263394271325688247095026180410684142125724134096529463141921224278868671381478336022247106028946466432345717793387559163018283485514525047988613349400065116357301417105686716045234931802519202022371898698029830525847907585912969488394553063266374025013028294302859490796260282383994047349385672232827408355944099223804683840615808261863476537734883586164864669474688884936499771370345982634609206441306598046111880603012107886079315841365356849326357112905265870118499509982226832518595985972976798521749587071514814196811395046261223404007940894455117382184131693480165660500882603164236237236993591449966402219795732236178827931503624197305827463196577760254422402994484933280728253004629255441857895535270916328490138753862886804583895866859271125345338067374539776536718628326016615803770575834863804570675076770181459515574872249758611836999475387734151392917389611978495487384434606350207923174480215047768683579389822739672625345634001255845672370485562775791853354267523737585666479405476292714305874686189275403618559509658445442672348961608885324880308181390684560918005163168967164515389442961401424985313989245477320275764781616428065325861897510199462950333875310038991298215882617879326450168776623654674856702032422325257557359622129615204959144187971108851353449714230591529160300691716485992325075542549392236138496000612298662214240216769903182401020563581716863161483231781385463484939920287373013135749240363242566685482053598885669272449681450588673422312241805567630139364946537630620280037120193930300731321771636365157191022110493332792628243309775227279065615442399899476870482364154840131703095134743240269115020757486854672457641216333026201701088505948142387019561316153781648719728880666852397484508743574656342968320531610858066129953766052063868577706603169854966143124886312888011482657802739365838834402011036617833889977271121805086041397888239147574783768162080686522000906886459217728918464465556633419293069382521743367111688069268948082499594733887416169841561924268083817264722175699295045055545127403834270441361266642083162292178277979276887628336696256632851167440265666728599958317257625228249864521551447769018447677758732687877396442103984110776318690640579263873649907926320920857899965469429898985810099030878262026648692384157626128022966903728485656333802291747621139103663870715914725761499630372550903563480354802567378288102647938948206402068464503232692866185996147418703125980214327260708170830776037380564290672172626111117808745338555613621270445347842924140472492729462494566138896222685748234680095284618803173092713196070297050564626013248519569687239411159951380371065098861088696428613608922731528625217982344187895726229267692826514498649978655257166538490337218749493585410229005138682910766511857995303889917548884501755349129887788105977890885550708335487313639528192970633028652850364970015639031750109708145893612068395673968665096357221417695908790047257540513809345945026559096528711557925731646003154911235984181079794938625007738134359929463887812726952225187727870532348051330161029191829834976169545521159574026847295729691105401181986120826741078640687968703756046496309667562557011730724708005310082852790561827797443609156177932086356569774563343728590519078368593000020346416516851014044984456601741575563214452643108639701349157663320414530097314530361503566360979252102435779449495517586496032140050844199168625032426489794013336031217542932143350400972042050813288730571164943976664431782993922191174620674164125931609531808313002742736278265262831865008180933959874890805266573996754480131730409451000509652506178911081511507238641717733430956446115696787394093039275476797647731943574661531869657406636641548563449616657665521945636828897873261952300817280554698812013939254134367500416182875890017385170073203471047251937810172436991091508207543212522272307796174036746486308406519559238211198175118016958137868848607645247105563103621609614806005833131723401395992946711027986072144701249018715995701764712338652352866195097783709628141014418245320536655290321754631039896552361089698528236373530394592951779252310529016824556542637596499004879350753373670898373059983239143519912316622658080873424559469395979187732737184639677089684157149880427850336714199667500978382994540424510937697067139427332562473847901486696548480186688478387828927676508397045183925419887608031519397132639880384509707031936504201763855474632248699770144960862440528054441395151688323327273106176807747325178579621178449449699732091179498728581957124270030453952651702570289496983524033680460204709530642540731431306920278340346510276731654708129869057587018271951458133937588310688589843916534642798087645157375782686342317051981370610433556107987160966500233343343398989683192750029812884175081710693787957997110777614461139033319934952066650372303255512151483495077880587301836746021076625659319341280998454919121399274350149494272736664172266091665914949496423580540980710069772618127651774891783221699511926119718801789073535475811532209897695341546413476253395559676572798164084284248633071278224974200912188750583326959052528865718449448700606875785609753708674024850973975997618707562875303778005300001614268846957780192811003949073911961551275120135056130177513454289723718427321395783042345448575955554043076274807447983538843894441219571287761394115807933795955279442724722310130044289950206923507799854091463087342958647127654048158504285621332331556368225342867776262486421106381376751244411890003184151884778879090266057112667206622066975573369950950919474890847834958643130344776460729353460460474913992920301616270200963402930379856765028508545571070464280683954333604005523593630965369949422062226990606933886168051363061900220318253554620221901561985042967915297416945729621684316296920870919912451746629367393677014869219892993590769815720655577100143111086718128972341400950757988341499723297647052158575293288070048166534045754974695712009311949415930631909003730958450967837318197253177843824219570009450751893366335644538432256106075145049151594225763418853394774831246011913418691900970606591800720029421926161013254814002248787799526366163547406735500703783803065113830214831655808546968653304838996185637857710223558400555327360395268937820838217847183716047256199023404205255638482304617460203766038766583460170883938328485049044219125877281325901884603018188319485327786287005529422618938550645499751106407020952340984160373215360676859571127361589561155008290892465898219453933262417060324535633175544220568385331333760507690169183661500488331044975683358342485408715491979252762253683332083715818199284500190552904489169554232669352928543289628063736467652635269473169180601285555731934931478541847280548487737417549566474351653311771781391878309207168202341761874969935479441748799872146400944457592654464140072731986177289382835878520520511712899738324453739939875731191351072401455578867861442388201178682082864803153102050130228873940728110777219442234566445903938836175174918565488015668548579453320699187806718770323527230173068089868768560847960340523370994348591160634998259033304460599144944515417240479726379610692152794498634421316165000321385262983836193619645353463756061776256211980341640552770480842773763557884145776207098228214945036529869152864645617961282164601138168644737000267498328882872218702522974979943815199802718655810472690979807459891975313464484021206390776399398265446942492498052539641478218644667569474498271587714154932543036707452999194606196352415749531686659856997524001362266983696894436760268723563507506524592708601017996223525330377387959771171036104194132227224115565811160839443961134225866123826867220996232037172890834462137250532746280553472204078119615903892066295651796908231027316376622771622291610704668496451394945517520172866464591604805159160397904077146102316784002005522796080278679935578807146509412162105142278882197706399120561257740595947561079774922410692961509260770541389112668719946464017200655660389764669432436199564262587712856513191350824356921455207927232130443054552749502150461096877530895800114052227613696709681191581599350585975219255788352799160369975065476085561558360865896016177965869496460599292068570672736198235204160945413340925334429938746522178784779640210632773376648016747445896548086265215196024697089084772955951392244051443199819935069592867851963126270674955715045505773617099782243631448528250426246623814966192228110399099639672357321107174646236867524100504842687004207086521110967638756721258491985938519495032938661360939295075564317919501941124486510898643886231760538575553774843629856038621616558121064794645748410920868009532830492975275618613642246377509564447541327719841031876414161015677927593150735610749081005448163158498159745765955619309108866872034399333293829069309145779384879334039007983166467627051512878464634924767441024096943577229458254745402983081750153140568189940545895431553795333678828713339570502726905975903575697247886390976948454124130678706701790086341111021489285026914357164059287355249769779272304106116098855781519784141079835206647794476913461669321665102303571221917798509762897224561150115738326458132574844362827946853308782582070839627611321675286169782118422348330985265768127180007176660276287502914785307932421726759321435059683532186290278731724726444406004153513203932402263749091454075666961880372598274770221577193884423665152553694528856192058151682223843515854428031809840861635178027121736235203102592497766695450401841611754540119301621550383118528104157125688026895134577878414792978545643906772047893048891386792154831802248937369606611720364376342540510534202261376919169061486276850571992967534634785156971916509064038843162673240237660779366545389676176810325823538497899889727125499544210171837113994773385767489097223201386482949559880996631288223629160046032284072139258173053450523312781221121959028154718124828033264257970540217808086421361157726690728646797402155037598174676163204641368175522101440152747641212365034677878151210484366893165012009147415202375623367044632792506639683530251882267682078633082816124224213936759199981807087246092215326418410423313280438696650839699023690149275251339804542018994778638101629163933558242039217638050252234036449836154297540563785551394065125099618132796335778644888478404144479746651604259207384017287587935008512789049020633486229461653450755085389081946385654331996699243532387460987241620264792491204064774313619071135029194320071082287962033869384304402534897327092012866564418172234099289420007093549850106712362127115164974496573928008104588063520568206305821027893390786087435705966709966730853763773307062683297718391856907359720177522321956109431606280502464852648438747849773538170752729356392281830393447690974602377371838230931506909424535152237354191002404962584435397660641505808564950942760194096219310682747157835700880823990663068890742935070768411881193856058992347908269894575257089647735746711763557446981723259606212317349508600944569055492493937519610396176284219898132936188670801113587371778806421118567448196063821112288002947097980873567681620475728958822078806255240862400437256864139722352391589031121622001289879861707912858639604352326735911115447912925608150531955916457795956028415313325895254364520395088933713324588908212464530447958756110578381141242080092848829157989710673044716535821144394820605019652234112369576086019661005995334169149361192289035988692011198622123606569900149705943340945246803754113512517408150139314338980979014111065205449317350090736351966071839740523237812226285388693673226217641489203024751908948473893486670966502610656323360064927286396442930983462544013407217021237369296434479122358121811737091605886529404442683121953715347958470709857466640160454519087758573198121821825657251207183159109477109896732758043370887995641006765931788380178063204840041259470187102086246511484188919509498025183027555476933022807515539137005906893996765157841231136606861748207068962842085670895190092345314282819254555606975863837512882680227909679760350015357609329073998559436006394351168680884797862471564224922485601097938073626871328085698928079873020511409641201144021797747429178141812096244921944084954949397074227648782591796834423249551534461519104428901911317492363673077587096599711817813222196324292111272142201915200351966884813153731585890511761174113323833104609956517875232052308220909176121836638228982221612626872317013777461238260376006073586763154732379825368830391082752467094955793776476878780624003102776503496756955858333771727285978159672022023105015878190596308144210924859758097867633414878340083213806016201323352797244305809724040026242744428632489991956500539340910880506611714429792942051776593292953071300905940657637411141951621393884062220988956760340968559078416461035842343649392010133238894766177152304945262281761552796142022696687150770347621708645645225783012673861279257709743028041557376400120660057434012689417794418139636728628464049807444155300574460181038129772557378731572170388958431398470903332511831057237154119644237108605135716819770505999084145238518620206330580081820090799003862200061333067060078242718955100127382205193718376237213668663634674321024350138934751347262752199945773872096126599623645092827132758926002840858493586132511567391600934713840556011413120304130895034564184570975503530012970091784492867569326714293155460234203711990916800075026503057755389816659211179929543041247996060630471663127808330177259058154891205968335654969749671202268661821711687179921254718633003463900699514558091104281130763403776953123195462918493896020408045552228822611376936581761869990264581343150771753971671195151653640264437854987978024085384312632213795039298225383717345781365389572669104894888638915458668604769946268458487106404708789020409746868500610043500614985021885036947021268114204928691916433357550982273636543822149873346722791821518253263836960811223509353086286908452012802983855670219803027559857983823842121858336486200587731641468458049476290299353085081498850940496531572567546584476882689134058875685183639152094393108122498472853268922541531545595138169298519598725405258274094987149669048568189498702806822074622976658173512359218757675670651372584241046369304369501184571786767757679439178432594626312858368568545525403120098509608390316639632260236531819641376632843375244431620605047596781504786278990508712389448662665091257434800835969817300565324579972982690553288490869103327384670893953067542050940472298040964625543637042739732903178882219660222030464532432447496051812082449558345227517609350944930626658081147210647346822779308974665401532631350515341760125034170631652460585643379963370222988406842721051726514756726232813698016996991167486186718092565021151317407633495148468245711042383019821666971176846165990365495226310139034204565302626864738050653331707733467120081603634667730673418647378273002826104793244245605133052110912259215550734317004166334416150737298210132114810966489595045068777175189468000083544553289651506622957694103082222966650684876294071740188041768939114394512390386951660113069214275866798848037371115411664884241199415917338885459983173583653413315949391031296114857234546493933172972409190688788100289521745100807286508702713467523621813527326513532866501717266661349501398136995080490678401407884984466400315598551548241591634049528698470660371516616165073615696977287821959075535901762612128650406240772226976006849386953412088454939621624526689168963857003524567628761913890482000844634590322911901533152770015469054955573829141042821560600393853841521221161979635343575662949177098301799743670163965325764980265925915218518950221454111706857471493779242582244684662652716778988027628956811658622075001323943012606398408096164713713222132042803031453922789403268296395594521773790645365915273239324930572318528995234309349984402385342679645120591561586369450519909812481245798815999756926756265539599066929478872256568683281639374554286238316220903558992027768348850360183653666486878220045127970603267271632846287500592729856326792463930649939224428464883296501089783621435520000062919217028973985032172102394499846668193162485235574615550082016479388356844583155758926858941365506273617332165114393765604957800682556538083108886241706465852378515935654195562153850752734181595672809867602709545228008662701371423126304537538356201735911437704051030473705436475594757319464880358469244738600690781312054231998592237510786332460143821346218109739157479445908601484685514600995212060321650697985121199228028853396532308508946855163828650983711532264402186723716380571724121468934709708884082447630053366166086070576346415454698518208627492761452993384043340765524888758307606820318869529847185554585078217682106529598152351392921306150524940662267752251114568443811195351132788834302988907084056599731147022454290924605040036520070246155179513639554061115419108314605638501542080060746750867762509767322966913992712662287345439390929499995187625524672928781254188144041454208895601714058727874370455496149419405093985137215877035976114696090670726652303737507567101821136130547874207296583227483986288640109407318534232293997516923667669300803219934332690205564994126437784197656533948501953987136783660141477100860802565259214792030925828848824268999052638854313830480586703188096218626668835829854912833832905159370941522685694381764964913284948304231942788448136896914866886648963925971855534466888821388905711702922152316845605649317197593136184734710287189958972529845310858960897176882946702966671492292200528568693607883639036946479108243533661588644023999510257188649578859460800479948001907752012714968894015103115991788751250109032819011509975596290601007150155476097945091804447462347579682585672631080430045568955711908016700592866123342755920717848348521000850432632185757571544335581727169571368716877152295590800855409934781055738185743750890943759971851001439792027700119148370276103511665956975536680167798628944321764887336575249242707230746004435224019325697451502226258335576626559937775725605083351045445866942637926114472103152652728313821229856866733324834212587206273599839414938496283936112488131475413616284862607273172059792332119528073909784430364217415008800461987814796122927904404185540550451176527725041012262633198058092172161807524395650490921522052469429647672118624390409163344597820863308450940072815403605524287696235736102265736606421227601632486964372054907011266012119005701589521382934836104620550034932830500158376953446487368373789240816753426516395845727106405888867218427776787017909546249074155517251009467954333962011071638419411304916965339822787759851722359278199660357617892923209441688868754713560327175423548571894841285999261978346468304792564455792326804874011784741993247006209626011214651462945376964905820953595368607269648366515219773758895815964508692940059473161848577959963015429981120737493797475409404795547689622614468077934247276537350948996300790835220906508847645268286666410765469249664939838660160462484664096680212929339193218958957011097906141851583539257182294367248477019304899834998442091382933920488213507270266950447006622539320528624131131554453106650369252800680091565023279188054882308414622324784549546826693348707755884398488559440255740703204726264511517277466235115015470336620221790398034188291868578962656055466205968999269962022563181776638419146407515180766545351488032355126422296785779237972424714007146302431882270625234470868670626227284575576720062965614012056572219789566212376996083421915032723489366175965109097396279260549193802146029571257828897294326502006850552784417762930969552210950911648532414758107494831731127127674480035829446679584334864728730013093327108125398761617589443733357939962267284833735516042863652434046091550659136339635050316313038456398726731284369825084436847788121278482969472575240791959571735358381063296825466772501822651406691573103202730365552604874540435166459322000401133659985894768520690970454595425126286895803708855502621064605885881125647418688789002247753823033640064207466303461264251409073711735457397289093861548820011762838631703701169778268654322209436912614139793736454946516823120577475311778839265345541623472221544247658583555857187424314671709629072720343198469054936856174816787731351212898950020789687524005364920447054295842728244074791402599939599473298697189466883631677373659704148964362968208055894163690595683042563507914454883354091747953405212388648186495483021126706098526905869824740221590295993791046998556776646220036553033994831384173268786541436423714987279014715609280347256389340786902910781095712238243367416206790561558291247364941313814813804443447685010673657404113878080601792516928052767089735639390453700923329912008475273834700922398829158792087161429940309580669806245562317806694495111312657743677522044868442291093802185389212349927114482830958325087361750636908522494936806502363273250878879365281745065084640173488013192321577468610849968983451374889691047191283776058469019540890024260907438024122856843232462263812232544230759996741248129184745241011004723898103628521046383348169967817601110747577100787926079669684988019257570715402045152293740526383593487002949208512269075803326180316641044748214092324050382681454224627686964043340190429267901672818813500609948211161811168596699978045269162469550071124569494276636258602218871882339036150216192117238925581078877666560566559046965274108811368159177415962000723716372351769890195664197871382787100845646817187192330678184618111783975073948000604461158531016512644607254542195160140021199763555867539703527529579712485429290996986024438518174108930565936694549798570514194272663237767853653967384880892401468673795182223767113549550672501695858448912863389248674311730832326765641093186031113209141117679683611459066580654798935020982630620080845967588363847273827045033171000171795540907282366425015836947793560397706539678699028747331437103144164425545712626262654835684576890789388148186792514763649997255784046038917615837396459878894670327746594785596502275708432555202839623112957897992582793547673692864690791781320604177475177295217473282136202116621895556684503933679196509495097728187421608172011538093729624599282657710194069807021806012989498616933586752310236066945712605512015171471174551717456548795324756582325283870503311767611991267645638280417739361517205586293514931404693064709842325858848094469714340117919590258876474314556900677576152040742005037067341412140202354993169716464164483069407372339016419201592666373176819175425319500345990269515465935162383637214989133491761647740138052719406614695565719025164376782855580306046561282164478410613036036250986850766476518373154734355752985665265993562531349400511398861838265223228917890183236176082311044927781157010323794226468712597680280040615434474342369076008012800844726454385109910183808021131831840739929562551725011002159912711011464443712170943788222224038526927161542017325264145345005556874352541104692769586312659299971165335741059691500896849298960220526735271570295364345498402013033351952855234988626338727235677372129201100500884470781601329083453337091211545415337222111507743299288079778418039989087194442780539918038842298975052902534549139575518802637086200673041445201711846417779125387531919989396436211718679967145214766831832225831615719248379321933906882925460125956290856833243337826365039162411939478282140211524566921676275910140666479706786578577342650123752685359591382001846682168690055735477580977963678605552829320846774728741970816709656231489690707924172350932679793290765402979845614160901648656410193630684462520827525699343113504757042343001863580485018370668617561250696480211696910425782913909346266859935670964982525856696917079101816374157875533443776073879947621771157013408289584951432065484102537801525907844716401256089739062092365382054713225887148877190263209025362404230284768296227609581762223745873865321655774204412808026408676278329451624622986117435262968866210422738176252146381195969307024234392414685643516609942084876929086174816776290083817623242073175329566701477554982787630164381930552035391750348437294866265516855079147338039341501044858032721195726948048222550764385051869904612008243959394815280319345701366048661562998415042298010332328997851033507535068192718586817746688836748215434944698656007453036551950375770206450508364414512652625820417561629054762453368606549146999585793904435795735033227577222882023804286417332106449701465259965410376564003680840405107830046589225169684890291494168986303754656092477179270401923140839532007110180629052623614863995431073924787241828244763296133732688807437452838103126611540567555078022285060791252836960702798232866176448064003297899322508252872699414965306071249083157677641784374419882604524263802236216398368061560516139203328219431292869879352896972036176271350421875797022124024734702858141125603655115855328421137197745784146890367592680603372554804486640773555370646446228797455677419509296248893733517934397803533974172966119305393099736363579287019793177825779366081855295922997642349060608974761888895439106652591155274318659755922007527475013696816199111409800656351366723656305966852544254363318046528848241107428292837220494186376473698234880709267387755870238485599331749732768354243456208425645627271030775423500557700723550942800193053378825033306287962226958304706735586365493086077794722935610463126877027919375344637428606797793290180604893191733451378749382745626404165812970986480974598074981117279021111526683323175204434929395254944280945158340740894270591231691488462108892802135062826300831589387895104610552633351060296566091234245453538086271484220925259547925297293278432376841800953331511318375951345901282602315396932255277298915512773820356441851647539237911941695512694867534794151299202649250852188201614059671769711654685086862484936218098277818198493175194602531234842548747667627894414322584372560769085653725250521703744201997020653500328096623458904864594389576851121149759618871834707881760908567842596464083603032309999959999223891762010682054782889855381677360365890088828042712636584785406484047113230661646834119552881337442875399090131262052791913356478292938237657790875965793465656829801697698934753613621721102805032603997688416372892263769266415587996388237645016924498565252800029158408350581707053197558987362972004044845316864117170731998405444301227439571785995724691533582900438924122033875714883002944137875111423229137845887118737064156193299788346416016093491308756636313874875420888213343018456704092945603294475442212152850379210459454891615373024650154081739693573077820027854719459633154470949480047024258752807733170807256623189351430586823657271786892847981368382090014021593969102879677654269067009609489178408889097024194887645116142750546345715410346872601146346799272236080381655689010875994653530333556334539527082185271812387442294652240680923924273377944132624777285744515056510549322040409519627522647788601166281103474303804150755932133100108335242582724877713248069847511266653154107770553027302599660164948936382927303125815527845357129642666885878472816860949709355342927373526656229589181244407211906082867257415622852940075819744069264916141070444219721030621555997089155672994549138987092002485837327842830582183198870435717474394427559423855825070466123046245998599037922041925267516181119220381022011207378445290903179868949027402367526404549554014910089426575231483200480881395083346789648716363546701572831373695568934044284511179105730935626945502367533777949088280786412744285403875735440340522598764835390631787545366172754472552568643703423739601498104479599964289601979850924509059457614160267382406632478162987231267073996287944499563965246353796123131339330603785542438096716386152660248224389318959838578550752552042166937250162724593087764776526460402918068194242465287972864716697813297741644887711189027303643917193683396330624990935540581717758932713382970923265695139282300071969623394278295860909203713197277043290843182450541672314049355014035363937080328887154107307487070929846127358289177998108475882837000109771303001943806400219894091297628092919369713892672545895069766576998509626058993573221599391253278716687910028352239428232238549375472621838219288907878040778190099910607256162728992890119255407716579859759140102073121400899025667138981906754495834665684140994033195903217609929135784331572136180266027231340000685466517572117980089673520097689227242983182734864919166379917599027244686880743695190321083231498503337678677028810948363403644291881823487498268952749897153271140340803510901146004511107250185355894769066629768457683627411384234627383433159614215838519504526076244539846184995071634731419623951847583295444049320069677143516351601173959407176840311765742724885055217954685507669375835576651337562303446325935578175829725845180225775912518021754844064743765755114998158873596823456820971998103773619518336546150336941933312967232319812405906983929398929390474002713792202776479601958429616721691356742069527419067036603247166219402546909346556015093306060287743860796258776898057641017659998683673644174395601830376771667061195392827151665825337165511133504380744759428833537811108824690240754551258473659644035485270739445359401309174921435485925834367148060796738037419299734239838693303288918016328853559572412101322307655654067469289284935915650160987585687249615565479841046875927613587403434058166347309863346055233849219700895780563949336178742441986824653537452435614254162564124656029206912494818551491838079418468899833008814605835605088645668502197358419224321136861684937710102902385905970013359146959368453681878534481965255251105546935559660128020991841661728025657919587357675326882227949929933613047331649979457964067132271293771973675250407009783937767609592887498296720749385190465062619316983559110749981733002492593450375497357869125403499554218617112932656098613071077388597647787957117387478647299992070032159452554923041621840924829297369929083933351134913499414952575351799725970116816229855768753854285178105892223962252195946881255924650278252738215816797068610859840282125638806032420458562209216212961467845535778409593701231599769004978320918332629996038873731727180362148317983628820193669253111823175621727227102369130381840686955687098190339899815441537452312392597493185559187623522320246182404842111601721127049055263302315396382560267289491886821818726787932072170037714977230036427115249659612429364279481496501013827760001027688757630118299602130201489650720789761907830737596408971688573058699941598431763895969269378634586644436450210482262536429075246979850559906462146751608731751746267872383711179858470943770127414149386843797353738236905043702873187359180428527641571048418904483523480095548483565871596253634961747212686498337496306180416591334518938171544049189747786019956485038565273761384820360707317252787521920886682871159122281835452058278490624738873174285460570422391363319635051410516194658003158828585143912787793846819415349613653053954840562135776270806427109091521033340702922610311002407489729498442022504330738170357272260800335489770886875955783821725480145550551610760523010220709551570178124220289515522403734754260617629912407609953886368838411415193152896336509427121205077694438017040715994400319680751670199879092157104772854569860126986736226114288568251171631597644488861381071551432834553110522300056307741223862395231855841344870404220545997288328868445641480129662849374279658189267897609489020847308412268731207236450681793416945205257493455368014066455118362399843141837071682428801010316121587824616032746019911205325036976837325768497721709122652471725658727455296812425035193449669769971556254323334288675103920230265724006026919921638973062881826590493717504465965408027616461306050395206841465437029360169250614172530179603955391623551000656541850457369291087902251498503091957356438647474349264603921953939486039025484960055055692354699463085055123120657249774339496434868514391766646398440964640339644518078159816786631125818655459126682352175185486962763342911189054354370958413076423017898196562486552594982486775351406111639841086377891489114386581860514857924887725460228614156095435987365324698753243007381826274928779715070440560772089992739958188588674250789751807382481609056586796068190915812061292136003997140401310611059605871722365474654022982523562621398968010685354947306056725219553792312888624701117676975226784232804898811693954484635200320200245543097791888212889430040519495965194978775582520558083105983724196065827657538653707762490162656757115458367487783270890868865070195140668108955001773550383649160253909246593598634408313538848212965632294856682555709905544798164089626703455113815587738520199674423497264427524558746226268037067866912353126948339179410174902968479375355532916690120161630187636584555288509572544876044600810455228725655483348993207066015490245329876350582373139361127825472840409768727375104061623856733402373738069311212542910204782295014166405686164912239260743358909643956378372445587923722826939458494705327008155363763563051378109435002250565298415435106204540333174719655074930784183557983438102625439335467671635690008409183551616345469235518210462131033884524968293933303705633813213168323218421601890104411317609165196752008767468004330631855990392947705835668431767679522597791462936482871462702067995852754596443381365565291963229991475490266783353425300317635838938969969324942297713381922573279955482060075455617476633060481585036553560278808439582317223577985068934690852291911744909815701798313111659662290131676444247940625353520201625929558558501675661621518172029507005051064250853435634494213630311662465333611573948097313043822860322983980804581704045286388885613882504078250167433550893885101814508346460029223970954176051930555876688314643363342719084856624984761133811005627251586350958865526319356024388433996623385924110633509239947198767806759963056631560860803898479543387336474790383695779432894385429104710158815490221840162030847368307018106194879765720528827084853311964182347707504215399611068811252851305907192459294031529195858428868597964414629911480262729377259275103804793925320427869754261384765927685748344656810241395349498231419031059988685285446719285985746061192489645468032288324469478723814624096572869015869965691788673310461079290758771552084202840294936582184107371992324113910220611684055908026662432565129574648020097842818227889129672329545856018240058655992359937505850668859091607634036678324612416195163336576596179183783899238504530312139321623797454607945177049926563306286876138833646151072100261493429214911003489151947994218559936248362315749493190332257297602079917838315233996889765088649739585927946181602421762470206348440569383979164026470159606561679065833398144674442944142136015975509010902569732173959492260529074932429094028574501994737798422353192186977742606351861183308631558736425573859433247709920341306545967224680614879553057144813480042714017990766241496344289168884442106448059051740602763111427051573306663830327917723553714644219828770346681841089607759452104295082221667597078817641189022893655515923394340721028867248283428092679805359657462116828924811694440592855682649710668980713402563395957213206272475505835749227426085304672481998308253300451873238120541315876193728409883547350815529287417852851603127924850047838470682102757740916017907822759669475356093029477522097445336935285635841858251482869290189672403856943806289291593791113888253833627033887965367155740122382793121132799243831069323119076143452121826404975933793968037328662255683377618583462083047929831128303274440924834931347696337398284349341855525814734363246129859912758803881999530027470089845174889560250387830145190375518316331043111956205276698674315424988998754571246409339173331558261911299865249273956008157365284541608144085762166218291207077294645171790969362980642241333796185788196450635303781480388255136711552516647403322237992663846145238279078818774104735920993429135827075497055415937997546923971202867271377487849078142803706707424062963009747511119344940348196756360619128277330766940487760154028717658564613332018566965724987574039537039485526517817481032282715571345986653656641362731019757619213189360281893088300194709713242688336523744261704380853439960072773207773012210863004085232044376661714645650226226704243038883367102700728994845517563415024890993069339063242228395862902846905531387490545891962484054468190396525076429647799773213740753548374810538610299576885327546935926978001071171065451536930640380942087050624052210973060579615251019292103467527482675155443215745134670514495428875620593784051057180525957825933258402430060983951338192662843432997520783148310320824675358880229562445726757684678888075061646079595597166341372106825587331059298688584819201628757305960810677096746079846273026917579062805803716673451545430189356204011294325628842152095876763330192752072285410045340091374146628113106838029735369076634931581150418662355989511676614334625759299394833667496098126185065737910249321991474517062740687732791680533194234731777414983184008845389547377740205292356152164864419248014363844428278150339841317271822248862470946640539538494910717207917138803755896234828014402794604469442377262313869869249375038259536120566708263441021007230188155328606127760483394073333341671585170739254595282175470475417541447795463793770022985804679044737548505995652445129217352527749674701722492771941637699094112979030186504552287754577747113237725491252417554094737821923659382217383272702260967055616348282724841157770636762945278363546165875124846462483942136814370955116528179025197544811212089906572340926658172053725246556123891488828278106212846543257825650102539094896443731368873160174140042579306565685373387937420498672501186119308938756604165385173096705690168343713721441631420874296842708496939379453099300198370098370799874533682680325328461024921498921082478928661114722302520873751245476317915199009917367143646172917997971919409592991465143277746663204288708081545171564967821871162190407641471247458593921201659457152320752591962472779239717493746451613250384783143517820867996914037508450660330629380325954614837120157735749094649813751150078466073582792657570303089475660536647758912787584386288453653931789297919262314615019122898787450361837564181022177068826542932621383316050311159111073122674003534025792969735488173111109278762726542935465237005051511140334098126146036393174106941424954123277096831051000168934978873695015827982911284884384119112323585293793263538995175838679579432239469424650704300672111533466022148334629783116171569943977306529124426553842309216926938131124383435334304415020817729347277649570352145070441608125779585493246617963464773084612489219083350075809270195875409924818300787194757754049826038272068881693897660268356472642443272335714893393529201960485342465464217359786918363402796862260059046213889221314626191606380291326659268875070460326963675227861629085011654871422059102020896233054835667808610095877379534491699890135576612166037630637660297072073984087768382262908457537940224032581727524139916551570609536894412524880404183133257920742589513562996412380067741875659346924075462938714830927606567452426978069317698536379599627368151315586427543157591300281313828825047723348206091211748490760155715369532908356938727932214230315837779398581716073043640071023583033718628048110437815304950016086044885332104336330932713357594456065240183304488606599757615294473599000553898923871093507158253621537378863136168807762004743909671013496355585369157118791868193558629915870521919561967369231603405228647756009214885617386746436918576963929343394743614572699308019393704526045667691366907503392905662106862456338835523881048268535713310723351630853524316133930804522368434770835871300900260002350538653212568686694930398076784628571042386817995001461106805063055251601205973406655706812479409358755065708848028035893585254251991922652761354666495698045204630196883561577365843172125832316620547695783433174186065145229726281553349646584045945285977055385912372738032903470819204817698985494668574611741847621446200849395580101069922615401739414560642619404251624475686532813513528866264041008852460206174335317476621417303246437957921716069211614582452688970126633676770588012817473299496587475097655162372239784783954447624771074427884307700330739090756502142264063219885760210982011388531039029900462233336336248081338159721330530315767827678927779930090197913469577169142669309903465301935706280903757559895623617594508841903773450494611538030863686951570741817909699409306126617598240668679201404440920228971364354376305602539955973688843254422188753173309066529560191027266807083556858199270554254145173129786142400844989491805691880301348560666475167412033359701749980565682111597634380398303486884188443503007980808698942277393535306835183315336686427838666739023529109652172011014178542708586170821799757952914581064621603979146264737429611727322240782528752314965122400787920954302529473725914390319799945290536059331884779609355070927274540254160512231283160201959031617072978460664146350677818927622903760802597187449897950713302520248373981898811423274136456674177618006607934483509637073244134736772264421783909628547577432938716195116052820573875366077874407887214119727952987376112008545521017959975568887483183811692247868372420860435449837657648191088012936992854073720942553399028158752016560386861250081366737102828120759220082149249908132321200909810865730287956110934980592057996796394585874125349207746113417667739376123866946232159928462673344467243599756039102046733534531582718906013788584213127970434194347132874631930504905194779470342830143433015551647754884483586756623081156706204244881836207111312777471994610044293688486196055823377355069744771549414502248436669390495307026553591015935657405412080983850633969940308447454209853865153139933158603229149878394329735314831446422745825746989493266140313388151636793841048347365832021609845279972285797000004073790166248345098035417591295600143665522926026594002197720423979433505437345418972769540503839656940661022507256550329957103872669378080354940436063166479326288243997782047620565145453197025061210474167783626367643188180368423803479860771737369751626681586768911243322612866257707690151418962658687243656069783104676126416659902504907581386907019866531162536145652850592074178638834811892873428314114551035867157447922698237467084188634957313660322863392175958469109135113530704918659464575643828626965133996762114043312943055415739582297573308561020540182624460704013006787811351014630741442063882557202155894205870252449008975130013257570812220370570977141818785019526482609267858836474430387799969114237833194376453684509648694654015506770763170668861066743631800945848336948719363148590688357459826605090054026386300305780367531408576707021399244203870384340466214879234802202258056671993385193683070038280178828249018116796995740918153193249201217219270432427633257904614915421702519850395246177121443021267077595485520677906682436520787717196864879813863790401727243870979799414294577364278482492989271006641240736454320699656432026015504164958636981702201934274286188600949963172395972454923892948732303629725311642552969433040331855431766336772126448316711492437989153414203999631338522896959063359605047014520490255747453408271743234272854470539811035518398429492591267126115002223553163978258203193224980410319340114269882454510822691198711154614177516525789162781157991861497099703942752608575378781498695979889925008899683085044903497946641466076528945147034543859390245088322605679612161195079108455202652760101112921992505291406523477746331466295193211737901159740160123466093769653807419183125257270428187508663085074091329570138778763623958390324404116947652957362399886326230721971722022477550068399143424065442747246699990458236987388195844981541041016670170244034382559328220987459123832498780781223727546496273355418959038809767887676958321751225644713021040827352590637245247588705021866824924627360771556915380998371119850630817194732094100301050685829213799949114398816217045248540250263911824845085746780744941623324159288854729558914830834185742790584177261569108518983259725252796450124686182456584751700270282467873479986253060781564272172346930729486094005703323661146089922323871163949479319629033438386768195784973488877700053594436264903890640915923702916561990240253922736965715263621363773058964269292895742650434607393947494012075052310948933951038373348633509376575760493821424898569248664909436286712866594347027522587219042368879445931641732677825872594001886213691293802355743663338898023545931736063008552690804326354923897762827295552440319440371313825308832766432552836516777408578426550274348760993808123761445865610632260573440974071104516038665709725979951044041751197893173096765461602414906063987918867006740711025116530611305309925501072406456742264882880975330909853954760903467939249486350687234734679528722440534179937074493053373576129468195140741648667470272367177507581738180089610616352361909486823096041366158188763979335877736280762560542546479197233931604348334820463623355961804737962330660801534904748920374149493092904498110776351307879946950327730855802103924951083435462806967443540123233993874447615247481115846000542659570576333539494198110468562171470178105420891904325562228850151810705656287803083600175875017677758956747206607313418657350183304544304518963056454662945310213314795884995881875361271138954962289303170293477183257918436599011228108761383575769618916713120826827076367912961234065708670190476710659455345844470048097351746327705707720351782456939974197241154160490600500604651633142938194263989786693634937579517936849644980396462854593368043854260285273970064231805547448865072248139959045428321973499306993032459724455602816827495879360956736683176286987368848418635008025334409467352744196081411826867610415855787551110793834444245135991952457362580127149646110885363399563848361303461912729348461702560084657585821092347452412023109121470277550315059240012694540929952828401683912356380941933360853371254138838181918947655330301932003513400600192203354551982850892835371678944621930287368256302489133129025254615628633948431010750712121683360829901371118395011736742848226086659312844231734178484325496476399111855646097763773077282619293593282027344550894556319538061330599482915467356889634826962392950278502546876155428760633612076100211501279746708787609391779327046122469886448512662539309521538209136169114568289055048664173575729915622569321909652642033765338936004540982111717203406063883007166290253329176185517430566428645544821338689663696290920575949349944517896950524996794196756457328401646112909126559689664604344685692106514739691109737290376734735550503268866009667036215327361948669428058127958985207045155659634250568050080667926760848843154213907311732064562394379620657345127082071216644240185699673507037814651814021421190469331437427686501625902218180321068064727785112123291659735310597070428550862580274338037119788976089419604530033405292099718948335198030592580850180056171649171926312208444836926322737759521950784840572575735142494978195766017636697256280138705519191550840583168332052094915482199864849001293439733145131260868118926079228079675824315986268521405331767584239908099827299037377226834899426273765181802718652526538418805928634345513316633958510964280923013925521458193855371995375482278682882376212369935739357494730846964778459239426651889601150593969276467662050699083970540166926510544512244829425287769465259768588125785475016930006762200856238276099216731257226914948659327264996470709474360292405332481221602622247519490157993499806825841721350267028221175665224312713696445104499499691865621221427744683187769057930103979972560662105386886080630631051987319607142207906612989046911344389168913052752979418548119764806301000015020572045725688875972402129084272422156946966768492902646736337065901127287748504494105968886430277726496068742742298244561976438063704781655407823459880426653013362208242129867366791315656438866050963569331795047257913718756817846082217763977450907711707797173484925798540865281497656965350029762233335947556706110620376792489859929943946459873929822310786060684191365548372194298690434291484389092491072443791927203100300093266461191317340865849281913616102599924659065983119878946259034666140373476216165782720192906345421614349589589242918191149990820311589540695514533691111165191869500969217313360974912000315521875993677022447614007348627132875661913383520902609224366859027727186671801634518341854268155214680750619313063373984575295757203102961295239953833360297677129440748673523539760025777781982295380970908144429979859307544580166811013326887133432687859372036219428170704187460111154914783458182511562069166861967013007587552356254387502204107989669521106648527658115926651122950740093715570957784566521980943056215476297114253146496572727146312508978978372602537984801303815709189692387811203138644785240914644594470764712849274423571187654499250223646835235963300645945308023623066112699851095536195081807948489041226569841249428318812270014925377791042869869906565489989733684204808531191672291218462693570511391493728662438503639104929285024146874362876906328240897601278610974332810829861441442821526850952614174889747984712499363588136127446796349346431845164790990313155451468444089891193800286414369531365997813999280144523013455327952047892081921145131531811431953798661242591691690777513465193989812773194832312924372566028011841095540353312961700571630870884054656801777197350578495523219500541801528189258431017165698787291972479516195136613011581240554395940135806353208017347960347431229005581479366787532133561241297099243631939951917540245715447825587467873223229620478920648734655577940757407923288371275277859069893359796838043559048103842726751780697306280297818235055757994303745812563014504995335943031010197733735118715263914084913223032760094966290318861356790750435657324285321725807098293755815423324412644297117016291829333067425755761244474392652691406646085511821463857809036820575340891447492443719214540139796765076884075569518190939120158773903748118276573801269347194094814157214949971168212531036302709064981911680384818286116702903939703968481037614996899209790863094412570775560370361695250332044030940112986046811835283978205331409766678750834563766601559075115185179950533079761423289777871428837348619287411804612201880152620859792152465461118195491111975198822850398962082148139547640065943688290892928288728646752969310966909633290794901935021104694197768045330169740357776059078721130207390281389821169204602202178588771933573716514445897993190199421357503757010915589978509863077539466872575166399875876381141278965944396783750647779846020984166251901907595491346953086325015759995170128685827447365001704648767761511117242744879917437719611485289947732338388396516666364459156976977940797240569518169146174248374988010216000603216658880168909801294742215072293891233488893604842631417387760489845315665889384085468897178803213590901506054014269058130847334885381361501944941862559539762530232250645817195833415976310581103201569859292661631725324492612217713187397265228890854636828642396097092723611754665426551981350705492330610688500701406385262663223102630904697532732862882582249516842614752191059163036303040197640839519144951787846571805308720392253826811744278763175751195309789929266005741248522974363759111946753870775117539884636942462713295271101210033912748141452354262089712008930257911992933618069547906532390446480968005439860608501680676700580470044048078460548227088047280781738147944430097758415091389771193717359061758704825432676779941379006104316824553757301342160492033786429550832703288427793772436605745354987665706302002239880422591733004345576949320563050181490572577981265247592946925192101287836919193357514193561639721544802592704208704290359794666665556284716902301443245320908575449878514690551422883138063861790191374403204691674849184288648997237506877252904879157576915484108657192757131300310765306733159495173200701491099282283597987706648224884684115679267000620721519885952560908125885752051862949260826928767901410760296686940147453193056815052370154053261200111983626128699686749294529477892241435247660329349569343442832476160827738789615038980413300610222640882419773684863894371036438768591544462307739018375759129689387799581276510343150854622730034332452636158046276670944685290844108798424899415891221106977608377861728735589440132942153768242411489490071549007377163648941444830969597705590821477588979524486011741765875584487636167116464440842732571310640592190998372564166538502462628905541265366152111316510990832960677180038555568782883098125267033970924288776585987641081560432391452939118929875944332077199355604729644230389523402537024900605949472519682368562659805781605053822155665793717456661005255352741253492861628432969535017716613595531163983602846568502893816061234675455540136740722498535040292317895206214493344352850917931809277571585271149963437705483648114209175848013338828920887261039249150748057309604175190149443845904413272858467115384230855711154110481814379383956512918091649921464254469195395189749434694164941335993266761178113534918772458034840935492610161970411155781227500431522551833030048455602045611124721971854834724440291671456532966162224954539513878444244922924036709720443742903409431690497543931082051021703039523073458545480094671168481878285207228539593866431778936679018660784909028703973741394276630356139188475980276694340371264782067288828658136562242438368459485803134618916730786298737225737713890214016054682735855813965723651231994053382448451819401951142230013135257770242581666424417963409244879959068553110689660411306899896197487880738448998575259748801328214262519912301383509693232328651826108686471174337846305821208483448972110971283957301968958898578768719507923074314467913034095191682849885845637675078818329169394848145466467805570956723576209703032393107685679128611833229078153990809629567998850538006851180397799280089954938185985236244039078244206920096219544327782400517649712199601646926790143966757998279632831210291034753171382341153563199104036540562821044044333785264072342079074170646986607979744007168373448694054705533339740217568478432449265976523419386271981993050423961093812761837153393383146585851589014511935422768971723455581149358693211761272426893352042354240238454073666222848035082986728587758058308891910512833927979430862044427049129719758730018319873431583541632834745414768632422601184812499924491698927214511465104393940899678695101233304612504082827254931842054519091491130121810426568831562070436199127713186975971935191805499361838792485534852195561586534795909285171928421123125395122113812402403489501587673378326700940091058466467537633647720262103394075901396248711009914371344466273793866179169983166985959159731943732051821309896985595513851584366243411452575826883512051115972997525863902345131811887354322879938508830907918455217923664697078404576694541242402283322838457983346294873504443466885947175783842997937153579125219993777192417174857243738941471133521917498477836736455998073193768302210473775469689899653540394279067988721683578845102040326745123996443693395812885790439045637171638809521852489220009370498971053994745920550331877039540436618860152969888326184060770632950597796307390970688523473555657369225953016914863994642444822226307446610397977799077608277167739723781172768026032973777104735118737764649290285711594673782169513205020073782419073467467359880619820014700411778043282157326632816072660741772875796132054526470185157068487063363787944384501993691622916651383024531749474944766963327822896539847499546790085502074203301890685913222798374206747163879254363356568492240464840254743506153461973524089254495813630829034710635084752897668826121216062973688050687540251061713281021741779695732063118420174911675263488454616458956727753688204447850083401894524517712107567800970557693322212518671777184142687512421921553824361423825277961566947834321745379473546961100082869399625516632023998330668082441476829809069142483706342549579031811740271573372883439794834945513945515105632390857394083971960633258087220653100134721747966576524540505140334004998845882206557043302986645683520105505248390618560855333226453929351417644455702633330050684430035742255319716658820784654825035490410123050118394628211306188952437734633978524777728702503017238121125084553522667143459999718326921571818959556948464992775738882231188489084573860459816783674796303125944801395668198511485360709800536990793424484756907249486419112394375215963270490155421149036604306850880012928668399213375917861893749276545445185708692934988313086665412618061102386725250512142201288589302816388246262282708230657876336422853225198583959231547175209570682855370550071101820597087480854825358026096063610778287344822532029115614924537839459958923093945885156079855830070366092775260395646969453232291324705166728762097504201442385861864637286631893859909357764725003356406774175317313176055941665679595573877366911876480653646074026989060560074036557953421990406530215522513121400640650619483964969444148066841047936020610313339363473053472848003976785750040418882771058060394590140188124229696095243490607406855641553799791322450064585876182545517539564669528724433475863828375298868242038809320573378883611551530765513711258882721755786749556379798508882916569968065266847588477654241820557566678865333273774531867597452626320283786806168440972520425471159862678921379544782574750036458986092841007277105808607843078276295164757025942279130451026014551286386194995554462207558132351103834224610525456691679031546789765814649418551075067924095898555527820743352758895054699337255677948493371340880557268966023214149573161580847493291657130059029175385787563038883999193261668292222739915261809107582818772881452879975437224613251798200852114169346061843535399719874374901038653846049171235050518475233879294480433989290615708727128962700968042217449352821129918011212925248550504167238091520568739701656410371149101455547462888473011214065553926429604762334664964732850868703875776710002136438687633230867924946248532507672486642399738308064314651911193053695150956940484310246171665758460668779508240683000867126124688140275990916897867118857680658799463962829341758613830091545027548637081956558907893623301444336902511472531503416797519248752016363616370816861096201618614439315117498800375358456037880493050924709800545694031831055796398378872370281335595003135171387973049775624787008147024715635574287055080595590725032656461962461660272642745609315519830388094699564209176511465071952652958710370738999057978730739042767906456790080453930917777465652950044328103168515820394755377149238915914296666348693960189846875193707016480556849834860843439954702301905801336987999666272055613533856772949199845451288617040803436012780513841106062122307812524869224472779581122773577907643855081183149082566559053634549792901899163158238021931969483500796768443813641756084756450498287315204687649758093926047470904084599270867204272910118636820191700465482328795640419523980505432376049410136658246005077860492347104928976030467861307108939945295353657171413222981788335393467832192278327013280656221897742377732745256303774712191144596909805864439106664843379300352232567814125017644861809432693164769085379834675194974403002074911125229339404315545747095210568076147249581362039478435566455870140390005821065992635442145809688648174150527910368457232084292739822730930598449099009546442905617825481376634157910884615412481674733924902425848804614518463546411444328491243843247462755511033775848879085006899661100588060692601990388344631803759876412907859558747704587457703316333503944899220454356031996295024767485283111930627527922103195853096306315255594676985208346899519573813677691962889862702044296839676636929918532494072650583276982911364052553263211439856842198215525521742455908160633687266401808392563543338482064195704887200250807843735114733614953470433019370625111426450807647916176785840858571869404653949680157138037422898820341165283653824526294674392458500808939209974289011436880411135150980955587818490424858303281945951379892206156566387345702191968238568790783583217503888225708753083032226206945047621213334686433290654454677053980735138312109394635234573807390734884777918148993993688128822407446117861657205033446243705925172783051899749950146465436786666025371984075734622876458345566235181553714918475535205618147756768492727574737911674199687534126581115342284542683941755806474989341353706285396881579179469464332277564956656530253576032723012486173435626499364768268124143822567619412985738625369429671412362712519656595287761126614868091815031229278245619827445657807622540297236099536600985869689594230384603691219116720676225813204022880163150427913891952812782394917562854327031870328673537860291327457879547322222307817798950256149963838018895287703245689963796611458947412749830826772167346085764113099336343874725732590145592869410742862947094246163170894952882292075219834741690579850980111641402171322098261095956345119417822747290931836088621210028997891854396773288963737847123499658555658593641100866607131009588772011079706100956630485290183182261827383546445177196193042691991344169477249639268580422541839344520699677746757874168535868824160590665668999346063602968567207444960746452087614212308589390172972256621338370416867576654229940133788214531246386818908145128188694082460650505796439551397682303896232166070323362034990449400565236398234797336803027793305753117518900573632912878930209011150990386000185033512870386330483555613601007861649548741528198200130693695245269664293493528698201629647230882517578883948961997407115291918397149388323181068726451298956421100896797025242349831475045291082245629638491900181179100496290309177122597088716383077230689947573719510204866526078955550194326041457862372516082478054124997410297917293492312028993301919690879903807673270476732026374679314798507820494576473570389614062911275662168114828856530292906341137471092849823093601590279951773905625825116393840274755330152119836870554848300831693371516490790381499362285302428238611486822934522442811055845824212744379956156683779789200912848410911724439847927669218766272695197885461435188240851330379949558105446198224645231512961120009358597290599254402681853461985112419887099866265590908307754655384240540665780977239931627991562967421916547023504529380730416657747509842426824373077034905898081985625967561129286884569490818333092758645267511983199277280644907226684243203780928840129866504159705123655722668501385173908772570174081827773108221009862245607841854522550664875311697122369438354054262324297078184536219261880939304311303872593399607380335628882365384602927850420879508969122806007003471716815344138939422252605680958724924441084251806435190352958794757106720990339951122501107375676643781341985953241891594498967690225451725016857158851296274410935882529678608610987039523345587890079668276906798388676589064675342288311048977111120084908454315148324088841776950310297922127667694591581345836697334640554501950041059413877347024295110634598530402402343155187410236117017235606216422916572143291438445128852630928492833665774282391938772598261799303194333219379213564576521331763939732590612961312223765466809216948335565298082765905489584509189688427581482427413166091277514907364512021986457939576356168464680895149256808352430816623123179252416166233987479965004760699348315779690570419742361592480429125647431156773452111127026788495701785728406274917645899144497417194918550861644899157835588469793505541152817412944931051191194409030089400557999611335079184119133649436907824362761189099124765559275254757437208482281791103836041182803491886282773185043449630479798858266540245298589200967465983686393747782079028009127145509100049894671500847673065002678935029980341571177213453586935062563730692387628445945204195745062976502604143851444408487117415311211917284361803312125873680232245641443119927140045887476183985607930494043837537562849796305975433938794103753419745268643762925290883622686758134235317430971966284975818353890452910471959992619977626165912505455061854217331943123146741615903553983487923075615608279565773777778703585912843988147402677303862676091705616806795198487838772764855413626136015843961206950420365496346528459741205011125852735580405613850510583502857255851775451510636251158073053235088322011495321319818886047278979901378205276347465764346762042819401428730757684649352338393844972725685289301806221797700402532841575510323987420461668685624527315691866802644196121020496830962558739983284982031052138388270619309578560493172527314827694726191097275840587593948220367590233095043200599102465769402557105952570426407353710076802435990509180704773282976118676753740894866051005693475130478008356191561489193819007876077879150236711814116207923416466993176184606240521889135023520251000209512924148828618366351363775874801231183364849343298147286836592800142236922032272494425105560495748671834645210219338896701937380141231545554106790304626248826085367850843767951931696065668051445542323384356316051126674971097810036533431515947899998079075145116660641487157503524057697707736505182175287356206842149275495540875204070750529599121552077233914915283891899309726845403976850306379694848884921650222713866549010643423512529385984259260588461007478749582928099093635446246407888773791858960604017711835895814610432601884422471718021146428545675485633482882732120500376172848062504770463522320324427298603623202178316873755865324528057768015080408571434751013156918910182040778558804656449901692372376535869572019238182563625463056680088090258780176196252845442853354101796816296695157397000657604912611410512953655491670197088750940834061749031145229269373588683979127288158013786338138829302770948849362547216829011949116068859222867032196262286380659313799805306387123417678726675687358434607975526512120897727069863083143383523208270889821081162994633569144668705594377916683848342241139635976131205778063826762711070709061360924080061154836892315146616409850752047540035107340873421213485162841682016946335304530207168001896453882387726957652797201349121869508669675006652888121673270601645768644744927425895617879840859771063787660026418065577129800786491029572269127778165557657579361561500235173189161201999819770176552984120604449310353773982734359521674417139622642947237864460125994776956492579527862739418775964531925557220016632704451284239708758349047170347312186540627465594511138300309442699175294631483243859159234565203177634998961451339019595165485791148390681901728264386032057734151441882355746760371909928516089928937726412905684018897473746912114828683413732935451967571424406478003053767919790836083853119447544995626993241890230159282094852486230017229193357055330652889139143316261171625854705288155620684681290057713807190601325982374828583835860025405191500915158707205352163399527227359363607394729140018078555047314410491700911561423160677791835223827611411743861261556993834038164350825520307595692066128144667725607427008039687578137513009633624156354641871382453628177293623884951633645107538141071353923511702244971217468912044627294395216913254835709690855187905682497279686113484075520851375393274226331558631351295261993247413100916880398014056395120785655194597454740393873447037531350545952472488564958807680372351835721712868994285455302730219642287523602856062635126909699999197524659826185233726505221334665874670762906686212618633460508414277168209724221469649005207562270505564354329266590657494909829208799779637214943840867541918351040520257346710103065670921196884977177346523125483189970602611160870462496180718927702929273272037712770582114608047092732963116986090138254893369302183784302453562503902863883766456543648859538688692302317102408392341887929904056333497068458318117723267359989621595794142273340777868364538327677880928200702776445622674066837252292299004047149910856314310858727885148021686193840922385185948584552393781934261466330181415113311476295325081007109191087536767203190038859676558837961081967520079598338946972998198321059523190922364775580516682230959706360131105336049569359852116481601363315887345123321344758377248412180164178191899982654487914585838042343067101112850546243226386278679616396172576066334644323363309646845150459747269353969104035743320417636357022895303842216447734190512515123356447174004207085536919285290762250563589936094265359078948418740702244945554499498927662428672449036733951494101174371180624967276883957628043320356660820133217775588742862517778600091570405641810784685441648678057738093809746915726185954835484280485694837837600739162001645562829646797874330295563693893554545924212030911070185810669921180414354135920389855218037041631915393421362165668167391502759972221941649939898551140589669066216202222729779039832561647746005818949065590915876887601944052099835583755030239771784271894609992952334630654269202229802141421539831431298378019777216539605959264102237621794334228730065273904125975501884289317523713064151104281582335568399832551137332756803750907016991614698062951517844323162729201345099906062022403061060572104553025693533605191371982404670393721675851373070382997073321939481852269205448966831617413185777596259844756604546828058890267409481450358235492730875209026446752231748350087075470009480039088841363011011386812144817329697094589454336675897673301321587299217762869480003924157031818260476203980139887435571543375668287537925363164261037673142410512209015384061920327199814198496076935955081573174169070641404129430744872642252158296853914144489376107509124257363490415067522568007578387269245537736152561290028917616846882280948910894170768152609298214832508050062770342775557526674635297482978632229659498532655215600165646074189702374457785878069463141424225651211718004315609418271219854767422703721950074101093239935005234216258209039850642908488631091836740861159341312678326716986871117368968334838125960445448042860846658437419562086803455618959646221026252767429961129644290784119440401258196336703567497510869029286219496075496119509395609597457915538253510194641375815906755855077504089563717160511887237709818192181032679856689139905143217491217187878600671252270502182379147172075973576130651247153053881085517061323659861640359589352780142380684981223914003245619358912856241850875452546174685849236551478978882276805042124642876096320293313778663044050694255915786221115530660115335796247225131550738602391762424964663914258938436753701308839779355614063975197798272867025083678665947213482835838244384614323571357090574975807633842145313522403738448288679286476274416537909061659914809576541914631630775729962362758055598113664511325094791825183586778180615215159984875868031903014981837698825369991773422687536471109004854938513978200680960036561550575053952624767970525317127548984105907415572121521316121305014827185612516034495164015948087598264080989064994655603002654789789527306009446328033521610867941891191130452987289414465728661570298331960034160457345523306759345744970111304110223784839721556979303052014637573167939304794738482118194954658194618773087267315228366441557997797069869689004673077626157015030281200230665182431509763882607633643848495727465865190596308377468529496781077517476803705612715437829908727797646284155131877012151625998500025858262015401100446405525307814456423966291010471471947159565159221030217530824158493049519730069548860424058784583833853470425054299666237548200818345289338708963338907419953036522127101298216655579131494644559447891031629834406058623230776915197755904483185289815649375484706134998517866691442262801629280297936668347992407223075459760087732079875620424255577382021142694390444693312860081319960080532473353102415411128463898719946201552293686937679921174567990747258093522220801369562594710087849873150805405409155640913733121834358088495960156608741593353442257930796354825339676262380414635503387745096403654887781480253074952989341525019561451398128604861698560303222787271992880895239966107789257414047095036218959542506244198923082910514632417088102647050684009637547042973727544276200846330780356949681931035224511444588125306313318860270730335277468477709145024189621588878021319848390700605068820712694206487255785546351536041889818809249752825240523947993113309033651389648593268391851287517570908970100155449709368561229540756133749832867441656926931591456536175068140590731349845956294886039750787310439306487101190340832970415573011469792424369023406895512021062355145254449558689621698452443525327458169086402510820718519326761551297684078401415724944423354045147299537256045518389722752203518670764300874479818797502992089360902030311083297246325674196752764803999479829565563141080992398262959956045493367768635775565807537793359101092484809293982039421724519896464054852793987422346515644929276388485016155150350854290002888417254750670101321235168119267696054977588070967408307782315537315561749199438572821316343301114542278665517022747449770677334795147619524895636491367406637185072711595079554963441700606309096278095282410445313922040965803230942813710062006107737699359807087562949880538396904808487792157876835623124638310008323810979769557134326779036380222410102989360166931280788702555142484912864691652742841617625487984316819858848285396610607893141297910699189612365786584102842945584127227630899769460059812444422150796464463961306697209887914416992229296684869698868386527781716339516346533244362404298244076872325901109739573231735667675264472240227365470745048291119146431348765817557819923161156717353977719470438451333119223955923042309230273553150802036655833126643976601010982314835751777203961562857817823850013741569846849658997489706420324531133975304781785011908093774795756901879712546284739497411629787359951909810048549008263395020309329160174603196297955097299074248252742909350284144908240008040196022631089118099338493726777202287460681737129699394899707521573730551954711421717204559462997359567055957160159386972805172962776905526471629839116173320084330621631262394059519377368616322411817263480155726541073690136508434367891112541523056334185380310672425520765919353420344855296002497745411255293504641771353483787792886350975193028319040233834010167598283025110569117151106244813482876938867065863611456091664772178315405727204735218132308325069850225213074187986944889965510511315108358008698384171431471804164933385034570859530345490735624456492790317060203430183648920486641933475831213829526054251983487129731609174057391964883226002171441015514964586055331191307402971173332728073148455579982154981593178830995817435222455636663067737449890836878740794146325832613438399540231397813676605077921265490643267556682693132196431543687429779502347736736297555190980194875805770311846460870361789440385793267872202854675825904729933011901845195517000465004023084399731282480320758904621752663647668764221576402231902878988528795722032663017007254377803195509626589155210372890361193891701666355975262272577507783250950011695464917512302219695584174001467819098001246700177920610858522527113237481506667357740279876988918116589360233582441013709692483564252780479759154668517156782806910981448049939012163640161924550585164727033631025609201797384748132150835640025786436798464434295974276268004623738259748229239102269168462039417418128749137303146820615162234534559690501200179044226105546687678331647087115792809981309596452959492502635936005503871528069754055983507609435732580422563544538019605496628936090951177252206210242343130691100498455064521954611053119750044050408881412275812767688192795951141568127453160271434847414794237727856621386790734964278530021637639482621472721238362438053611058664195387413591454995242246797037336319126640638750929186810623751033561155602136454735407719009962726487381865251318822633086603005348624165801117213838697492091454943540757595039855182778147762082608502543402097283868542625077387625251180016821555838335424190458912297964619952257307755215703213484158724232381513431663176714744869704895431766437546316201966289265658748654786533134992320556696193007087597447210461702787704183828100477512308357307472786893673524826813005637268034595774660119897008696359919592020289895230778420157163571790489010280723017361920604100133730409787743686472406658552426418136514720169621616422863845782453940163778930305040900179109651325028240308708675168714672004232378436666954469514560091753353197126971376056951416727767658809241668748436949702613412334339650289822710286300804828864749521028149184230368206536353424832545871817608538960715378732873152732749647126994567380581620527148557710201433482136051433254730423549326570466353923383435949065599391233998351162579809864094243029160596717986123672450564049454270502727946991837661673080201782721792383289669588100172157367162129905896257811841230226830847792877560878381520067237749559366755698312860097132820041776556534406881319153616405537257073540477512002085712955235952016468207048880088502298209993360613375160229750522874682598232654708529437980654585259329982632784004023553785264102075367696354793546843155236835642092501351122611825050975851358397139637096033955404706367614119375059006023866072655310214991001554356911191703355403371622940745224992171061637857404343332195080299052907547715518376917822917714967112236003539426969271721508582891812408213731345307296859877983429163300308307714006131868609743109145946702529741108352662352547424556275472116496237865334982905576634484117000187633571561442501693898803900637959838169007657575034479221285631672622721917684780820718659015903615908395331059599896821961448916194515823906867239058700835375345974313247958887064446940869152930891970627106487229882957527197097091700897077754196826676240972356570280531904244156973352729624053950960548908263176344679863155353763635739570976682061976461410120222586161461436149028853977801700324132698831121260082676691084048089063785231273195531916903633498881228991063229592522599293829136491515996172838761323259190356175185466647629393138859382194524965991739597000595288295085234591300050808414669204236609693274817597576077896083144995896535285462389941317334459554715749325010027109775414037450260010358532938668552127085557820495165976208961360237478633197712966513375712682965066201957242814904386983050065914641423360428524083270366902879059559054649537417563938478200222581912362040413680071714407772124359633886792339542435986080017448789077119005688538354433458251302960560049261746490285284694222784059349823469203734205286377375668157457601055250401383005544154937451447259354091200781445479617711229509067391007658741308457353565905947169658196761632464579528054371319564701704477252612184783045248887995000870035516086822251721540346162366784602847863901086676094050479532226457606627921803850902559874648398967209152744220879768863171427236499749619551790435608909417117713016918354974655814691283793721537013946819306479016077619698267714722479397482080492249999062307170312279736919969568512305158123133919379661548119689970264710333336685227420340383327092969700735636036155154668471065382914481578907620595972602774423276596912012426348583184855582053712780093912687387778892682303925179735136837013239881854566310220772295367530396508805883790863389343318302853117002498684818386705063067650011059842371037532725678499969875424393276498075817289627394173577726209342352873252232846720217225874619964429319046349607557136317711084221107115082531349589983630761335721942532307580359754381865136264575261416446900995866826110297408338006304908398267836459953667585607599349590016253090184840948126757046450480926160289872559388121590364676340008608831048545738564506799518070561217929023753062088318332268670756797365790134026785357030287246475620837868491857571378907670657849300348330036486344434129295737774436867204993071593350688314597695328928761327963031486129094258242046351835051448914237398052510520506348217191993647957440081089103412860479618785859724716133756612895238437422686871112647757601885538956617662651563824363887951927955759028485985472701150014104090068246733252635026698126688274659371307192324248998908306051711600966190498674359828235320453387715116072850014487344385142009874642179283831605409235302933859559990903749361113755836611259720653637176931918060635249992621306104486680145273943671248453351953779125774799329116831060621385152190662324366783847678759300312142614165659830281099019284623550736265449666367107532074425486543165861984672789506146440645328463536863362933535568075633731706918843802795368129790996590375843835902850466096757677912891157727883459946076708349520987267152301436968707163595099299152641318842847498820523790926779355033881678775994930441514861467571621162637832058517827959358840368379518903474038677909146670713052147286062112611985261116244297023728069076113987679722051582635348406541210665709023129467823855744127367676240419540204389976822767006684776806461456578551832798047363746972816534414354430076482995587375349996148085332090055672370604005499910973562840181304753818184299390389784429402833432844863739936261716751915784554292765152450203533766958226991179513155184090242763423030528522330365729206432525176521446992414008848678644704190982628169720980554715096459925413520557445557894007904811248236056617687287107596871348344628128550282393911782612762601581336536214926552814827203327926224444207023963857164190786824105186962609298647974076268139801820061250562119821344891727771527222909571961194332251319430709548987281917348948092906835323702561357721653654017527783138172755880419640437933461104031122001705872593267873689300198603273379899840532942061046188659963724324846806901377281505813750949509683143255033684456303210876627573318849209374795060757524181214648365322560000753377987947042285830504225512732971623529830883783930482000547848147922587202440084382197947177063235823386266259814113881552892352408785843793411001229142406366765825854566251503998810326829239737667424089927817922607696632156124782886675516007624770607548587242139909347029653469245305638400128724276676549982760967525199202114366432288408831003442875779162870640528516513673883138214473855669170989330121932313667983966278150797687486379468738886256981828595577975712825518927653467147629485315410680467862407482504585919276377214407732695470166317776697412723537475638169035508961753782719466557972560862472789803427909718635065493398290027097685577893527266189294403397088860790317756823310229086407123854810122895933895787065810107964729293486174089475765292811598839933364805426626529971620265586359820849919790150823107105996931845931266456974637034687352071234595848713730547748682016737108877751856652532691616504072440244018124503298111813070772341255309328044368656252778528441064156494419860187481449532580566919076494853576662306278614117478297217523567217081108144729912566896250624289602735994089729018861693675700376649501732238127565731936627165084346096603203306184751600744724480267677016731115274364542217525023936013592735669027082446906543696381742721412430259929981038868668801434898584496565753894211373438198624738372624992367531662748494947945379250177665222446822337391455279946778126700073609798280865634441472307542630176416596777508913597935172561844489681523312807527283475997735072915740303558169478829520586565379676341227951212244659722872352795485539684264712222848593966241858113308765483175314783737911121528060868024766809044516996168996108370643144172377317295675488117614739856019265959927709437613896120305170133896149216233426493624186692071139687580683698952984142196148560720364458673228573946837727796103535187831528390462127660731766633499955992392881165281274010776923419291446947079428857450652162524184230981584946468516973117907656156113822364557590999304766139645961657418919051785690637876502176258064154966522166544438337708421952646753227964751744803751924895333364859781605258443620121188948927298737817692621969221692399174021396864981229415216839890131005925786409315992169164180606343379391331672770034526827690350049338615248073862519998760999227391567268548580572872382889831395208462790251315356177689417757989979502191229205679278634380464947172319289600141234242030824584906267520226478471268561835973353937660169327995819122266172509277927010963090700706927949563652967688615291647883747727886710898046496089982944648383057125306073218776381769412561995685323189208177302708375434052628265741462848067903003861154693934643146905474306763376772155851160602786694893004967148274722045166142382651960849759592524730776706010207172554616488664888986812619264813922122413178854205951775992143776647797825906504550686828854745877648779116728149726127893557265538021526039066889770867195182006025765038839191499153852007832939146605834884590611327542922802619788688859566512868028497703524939929531839921302429893279321061821162428799636612373473882503427074729801828452409986611153508508656143674518984740616977113825413048356510360341207082001633383522147875585055818118800906006206320226987530545635163553314660106696556658810343231013332054019428724445034409376069840269464863435888954379922232901926467852112034254736853597891955051606452002693879968531092792367118108980663241386022391085269205375539583571523115084855990162696368203227650359942676864661909326052393407492736858316510820396902921410484987596091412769210404055677160879284236425768515531990979322865052816316132749732961193325726870103348505006002125085140859461618803173403936023669178064651716981181852424683424302556302313572761883582484567021326401743751438757776807997582426995431583564449204285655942276661963427257813211215105870742608403645187162497671938588878551814820005750521861760141968652906816045853186991023466451754202878162849808009273606409408419561814076055659991703094629791673107018129496254753734504896159170529046721253694490408028291595901852223796373066839568332379356684263173473132745445113152598059103246381554278569598901082961562478151164681775540005470125973894930726015144468682785313292433895895201204652924088680071449179587318931351709977522006691283830339621725048255411526039188381956276804038452103195471718181800902003845192679250561746828748898914025288580480599404331054425197961142436268752763381856709082411130125683058792766494416135069382203646192769577899869810465920671813736892986593311106138603467748528528730172224890886128991974122436299438766565732175297504838112743863555934998569899944875589055613402788010865383314053999884657328628333000221930325420060042188749183334721461778215118112272506257827416690787749688183106946297648155242095832826298726309558857152929802368168174151040030602224370077839016466865044839155632642063595165745133979163873897486765121806641467474586220622090716887379286155218561828536235914578907666145184114245964826942142012370252301583724132222419070656889728599645252171242348634380386432834950442482206492769413479193022864236020253795270604852560612725495500512474006131142538032975199869610645085259335163407269966129350904071284068863248406704984849379675979312510822221504118671583265289132899712166896554259043964461488640992044241595939339192242209776399099068755518739116746147525057905151901850258207418757178534160058595307116303624232786891720511203738837179250180490862293054742081276992891105958628167798365079979027582646849352637566973063536590886567753945553985032517026664252656659434697836642758985558480197461307840350796005175758771896646834357270111879696519255785272294831940354173424002695853636331128120546789267264846314511543835681653176802257675994092416835457787701907306523431012823184443405952053947030203341688322601329337448055477209698549292927408185968761469898179544628308006915107925654021524824340817949964648988167708574683881150182741393268392698173894411916610448272949776041064710189828767174739845509221271483297793050922404098621650124882194383235240079258402926534243822281006781054668188500887990022004141574227614939688526904114833577473819193784521045638925937421486769353199134618493124096659579228661772797888073351350073369689886238806340638292623745299919399581755076845439429320351916516897814957924005236586040738797002735839621930154761335199848715269462499639937909959700759889102885292771981990363655946615607362703309539891429245317320694937065024993847664606614145582435898322752990898139193965299062765354665255840165458570022274525163439222136861278032238936259103299626189592983175328867359853063311415773229661357231648672578992838832412419338868247481734606021404231525764657920582859075049255659247716162739164525437235765998298109488105970490110656551553505815488969907037462596817500746168068696399057609521210495097459980787407616739962669880065813299921431919278795083024988707939844467423640062197387465250992327356176924527571686079733043760018698236997869381424694300983044183248313443125937497767218598860171764378911259625440874512165613828336711895832561766158987409878617160220960145172916864699227658933526266227418287035339980341428788366063376174894426783599701904281796046905869251916735039675506238136193129974062046553130708283186137212732653623669015636252014053823923164556700783008434059116903442191004440197596949953151798757727063728555746318124532978541033647192356037501049915387494522021805717011938173414673936322662596041073830229258369808487074409112250248720691624880363183606974829549869802501287238798431033005114856492233606551649024498115309265053034893093964920640837832203948531866348270929371697678272545116965856617013293468234617238213599216215098523873971203224931702791968695271429615725079678233089083763952105279498765957304291886877943084216499461099332628658352553193032323381693916708412056789519256921478462851983782120977843307059935209505465723128487153350509123440461975798055786121720428367317891906145967538610236718563170443455649859589561686660313804170873796894769768888981045102585753091047317130947717100468241147410553779704629142928683599577019998346932487613497791892011420140081672237998236886047507689036247068312247062275586333554091446883356027534631884612229067908519025834105767530161276093487978392761157777005313808199622977978574110699496476045049973623254276030374889661732373836962731262422762779778999668514948344240372683386529452188185864647726301987551152296747805443186669652247173557978493938155314416444738162249047481663001602091107200193399606390490606951396155586677093744955331919211659782559986533089794895404808608327161090006975344047036946502578110924173057168028274321299412549838395744104146775174096393543777605949868674222858993367483015633279266641766418044689082802066927837253127605275887283219168060783781528808883602341731438823093789363343912084570940883107049272134595044082846708741351865607914729493946190698722031844152480271489300941654242055231596674916267453067688317954365354232552746163498644061404980484835073271472301846854701737920650028175091938517418935619381375220528138888647310258000856547637242326301851895475673053540796279118353179514028823607020541843026866402006203828314000668225537123832727123699720670689707462752785733063781722717279765691142934644773173268790723697848538769830749832280869704001688783591599701913207698386094765104742104459877238584736213001495961027118178070235290956829667440571394531180732019682601641206569706802823001573166161259445837671646273133821236979736663940032090732984697621210753449892317118282767053238779322596147748856916243864468655139571273168937096066500670583347376223810415471425326352041634333274601140843383902258572332860479411292100893482395470935078718273649100228118746251260311614902580180995072232666972749158929502515693916418205136044824657706983796836611949072033440462162042859400311447222261623379913969926767304273321297724621169445838553939623280145262686107978792321504301311076455493616689777186301307309997521062375331917571156674729943065199115132481175100366453094443071754633132703129049283274932822068054920041829844993015277801805815362259708245297920366172546853639668300834203938794188686257599227348779834593938142760035860428058222446681356392483223270327591960628656629431149967516729086187509060319152669377917479700908624788219445999802828810092742378054697019882654956638715271897056438564664956064826445011562027890662769754245137052476753819540667413384136294556325351449488188511380781879685688667409686228642357824945330263030572861272795078898655926241331941685332485196105963635233370622794099281062747304043317837851062638919193041819135122399887676590301362043340488724292659519901677680845217802272887017591849719230156030328050632127663551953553589507292954463085475626482305824507586293527883486366927174605171622601664713751138316125753122021361725071225688568820458589740248727700025676793524031615906425971693674597225410487388341578076265000729858257284842525977242858389540361224432031982748868174073845739557679550112479466690168453900595867563286873530577424735883012920432487277342017431362094327195531418005699470788631538139695595820219993820141149938245832254485281695135238411193166385843617578458752855645488912098873468266349915423632668639048098012589031597942973176642817748360566600069063899844099748282364236105395336609993688267589434360499021105904027998905713384924400055975272509252672544355959681372152509222617538216019361899047916854008666216380472881264630525157409298317495211119181226345314304182224628286143670816576596084589278592194092310653625038550842763286130876002506553623181149450957049695463508951757350549541261871601648653458618956675239896626077681027026367278939318757384579572004047860031907746724708101478502170627616915804702073146008333987014660274354281442685531509104456782039710706571269965065839441968421437478157602344663399603907706513545328216011793093806744695844228628736589682956020090361686910119402659394172590344473314304562245811192304050655045873047101235207127683192174401676755481667399145463391171220014173908770257445169645507331280492522923123532646464070350631326971220879742116991826462464942725868068628645032054433799182369665750578208881246660525453965851004039436634977624550628897393363764462957244627951860928084087420817457182761923298666289879509295542427909589560940938109398879321271649408327325447946774913378804602811495384953129129049063020124537006559486436328244055005195860620945383479995466458499284325869708855172332966207676611589368782095815558169626774268444431880976919016129570856014600491471900614440521265980610522065770217489229429156465205954502836875778704671623850242801349189732817902598896317369479992467383912623616163979664242076836842728084911392393047471216724808596196991017520327776358765812893623037507767930046227171677647634417814796724391104698255737317757898570327728284980569004534742328627423471228746876323679419739372658822622073350513181780268516114712439935744287886333295561360806915784250983198450023397599843190411858608799595500655047856856419316422659040847448485921322573111806221629719079668264622069450549651180741004375053001782151626058050695820494084540698644537829079972401467915342410835873482452349648912131285433928802057735900583886092962254910978291684151227687707131327388180120813792220757068674815959110158782962546506978539350525592252439720740391464711866667294271120331123967577195876573124659773834104550429986731143050478061726473188192146409426579899750263936118090699280877622564190500188907713195889268784394159675109995715660909239813714389615117187425935312882506786643236596784414500310177618005287233607079327562166841659774308289508310834638053814883990196104718272154257729484430255215260935903515420278709867248285372887306361319487619819861295531352260165314518194533925476170211153427413090139492152646617320619866827322416444818942913878444572249221227017532179076221751572715000121318061099805100822038234847696678781637111117118237305896245264898048030866949908383451767413351657088103050125862062585487494111780114808535248404376143023803072794082262031615934424365405114919760718648361357777011552481439961789018956300633587192119604931253956733544036486279055740166663112424542499640832599524812892689676319705226591568569759401216464285600821017916468269320463980341563848585312376828497671171428244921969387634369547119551038146350376069823323085255939427820910498155579742929364141639000961547801147387145142849800480706097779162253500692408862982647751358508508091505797251026487483719090726384986572808830958345371691009999167828322711695104491344848515784209042507326756306751412629967418892845207425449587684555251363734866794594653467781779301654048070054893051643833834768762600500968350248969009701182761504632304408379064781220620790057210852068441902775372584974961920287765198446070145926654594250202982836001137344562559773210655233109697289456667029796826350529141576629572966194743938745858408117815865380916840663051772642047415107224907360040672234568347462883186371844208279674225664352283544894477069002842914459200695874159762941700170882233186862233743847607361074215758950351207884740866071268516894322753394297524750338087484443367705877596619367979922759076520037740705980440276474959636837832912577090391709326717633681714008432287760864832398289029953976333914803598399934860789575667589115055527366631592781361671352247728276957224307361940799352338126689040878773688625143564470338474264421964460716432706216024780160633634640872914814896123873710656063367039072223073918415597313368223076446673996279122022134540054318573114630027733340483053437490843039263108239898487353822123785315209521231700601282603506966239038348499536936325755571967731125963428048699677504006081096326489167390241906714285709193273390827229209272601286454036037242468081660012652170689189776225299938773928507578592186669196999435850717641995438603549373268376942775946916676860139273722754901735204561759733433250478799623325825801034709125605873448754655900922230021702347499678846891198008137327402880341729730239912891566131293976955638318290772966457372293757238512717686387174058176110938019725701000274822652918956940948918134891648520352166162538954689968269674789020264340513037979919382930653101075379390970272835742072688289588791962853388821590084431799670722300789852002891681684408640988819207600480546123056954838365001791796116309307759092580353085030058400536522518477570685001795260905736002851717409503710395006581355122889930001824846798283811389661930797637916905102146762942558276568545878168230628232055668983366887422074756270821093163063469048996627484280378548214582567985064204420831187682550145414027926286642243199764417984746819272265042393195586189097790353774976466263811401039259099793813129576867047072600798076672215071501955428193080194262000418376647554646233770668521193407804439506892684354303243832774141231113864830837497097982470967016966674541140535086721730766952474324439202979494251293167934348079612242718300273636758896734968472781360452049510525210530014149032451196854941696527643597386148326397832358428172612417503767306121631412214148463000688705430707752789728651487268124043079917307527904666772311402772482052211804795134812961822404861197896982665858369042118798415804770331883560282190431044200740325362256240219498828269108963750863451318554113214258425398626110967733733564430108643773587746580542601162218045728636948639258168628274170554906509257748923683844661700408084021426767722860521036712275896267870757858859182502163033754781148779637132553797971864893944816848290763102428882547219571120918459237108627719943242840717815645069533912290433902774880445672879326043508467408289340260678647166346367963508920865544418394723595389865004190120733396230785298718909564646779649142506887772425830134323634437894553879603064766251859253304802583399115708137965394423304826323994943129850516781748777711166121449503212861554892555295066832351368054479895590645554031293164288196418616142664421255389129412322569520140926260931181634766599944925345327708057782544008547976232275582942037436743696993974792329747956848289528460170286774057803052983370075734910551988658522199339272374170650608193442207334197697045655825001257908619434312989599326181691399572710651519635817245119297189511642240002635027230311785357890046761026278095960497782206525845475806725278784081312963033350750978670984345081506177500366266161610222813106417038374205630132279006903180603867760568868536618715126614183404520703414862383297399883516103132947239919491530129646683967248999085807356415915229188886465983944788630174208079898636038584582956556114916899916387195775472453509420247841143034191820705465059303534978075677671503832194869818475524501771813466384012404229414882199704254004825182477068366444808076881215927335513586327786463198496361306348473246412494607747952035638002250688168269252258161710202432071277026126692241031630658325061965546788253190154781980721174828362465817624097586235320465884676053598628871715634828348372200613811425385774533211221617251621634068698878910424472388128662686983588967037173414656363328895850931992865171383505290928147630600017099965185093064389543310185875132787049109902117294436219891675978456318083818684230576512521933960394882648200577566682221455829900803532086520147312483994169703776827006002890529078152982837709697215707446179581544176867860736380100132517446441433097665852140955667361108649011068483042945433617690119141171834300987281453928147873489862563106620175494223537061592630384663030270052712479258495100207294091518267466294218032856959043579734779040498025452349669671119806037007326737115815937257324975900186891683841990966418312562781863329573414147603005001365852141870128571685887282504283730901104302354530088504491186822109183121807955690981288574698559341172075278225425468723917699315970355053237164037983570137149270722489960775867228362729716875587378018729734754137605138720752303254847662374839080450782617602238182200368648697445559076402603591307279183349814200264145790212125254225091974958811076160361796457357838675932971405154153024955207238782370996252350716887495470183859710173577132735743847269365025159766504363958979122641337649371992513007206973697014233261655482229743500271070808556273033747189319585656373359746533875808738993752265954118343071407111882783807197883106280529311426855521258673358395310672519017283910840338047366618191469351544787947731330087171066681961098828284662885210064075621437286827058074753393635636800369353690602672715538238152077344440209752361918963244323100387631306479135571939610114707735213342634238603981342213266612681259709525686255096947885314833650883282402519595473799170609610838237312625173688090658502580090750545809983639309698181848972070499051502208078007379031113784823227337206724762455386578586461612614554679411522613600210245407906804808997754379154372469704889067114203793665396995761424546301581206518152094529629521183670210862034582507944438245834992198145083654509840720155086070814275925853853488882398076451259181408811580919403482185638810781198893767964205721530460799286445473604992860288809101472777854996171526142334946001524418620181947374994868524661736127589260225812255693192122415163271899195175908687430772592024987966592937959032041312474692186872528872118243886851161838712366559190298681246005517945863751119895494403980770697569369342437105813216190615370230280028247724817458221441618824793579725817571444477849676058290331417650675332634879509526388766410547586253893144638724879133890718913206001931681558281455724723616214652760521992670073275637509047600145901248595574444981791326104386329703891128468804439420893196908044011921183166357015059950023081848527272384806073932183537933837755449455505498688146386713208924793933719839246386811907924405520731688442548737835540078014049497852758978980354102576447489256629281864071916164012378107931494926472906454638363081584123565503615572246068899322413382018038637434176670106591797871685236291809410935248074441864359224583246383041795770148790974642364102649660216907717609099695810886596907758217855640651713880032795297379780932893259297583962491928288521921535026056489123433772550187518945289217066534082334756154484639555223235120375547920443121059250859399801507017655852557649938085277808738226838059850996736180790430422616332652022201304054688261056328999543530000644446136906544629597952530312763509619067152986641375681673366232775236397890810604219138763903778670176607714232547444625335390076970074566648725116964217087698882395214305425411529476239522279339953710172442128608061756650492077465750633687625352487693501800620808574129562061313262662862260421812568647994358659033800500547478347175430676016361415498881213527556318129790568811688395706025373403544111314342762963395062847168452889897082430178839513406518782820261195782271011674127237879942056588881126201267844999442332999333025853686257042507928938214696578513277636046075734305827537541617172367675206795134001091997234613200672455453799032758621467710217189866451759415365114422463878660267092286148782217799932681835470753368935835673508613762579029616326513273200435613601320660866695596071944439682379275178782528030431970263566954619310589954405353755073255002951893311555101021432670986128044241875479339479089472071955344256708431738146549293108881100422811104188956447848759415906153851625786749416064138309747994451124162070546302966792932121584602004549770770554229614997358411261133038274007804200456710002035520514771244842868779716525125292408595028319573831246716117767014122661838146462003928397367740460977712190918755855996918710146514885208131609837916742131412604035686816269413380761594773290816200188968379374884170606959494333788323577629884131333532615162132686930610508306686092159003577001384977705691552404906797503761662967164247305764697231125387770798300249534011303746794468725543520424884748614553753091944735658226519211621003993407290205430177518548675814356733987595718952079872210052376122327216513721422693045594439458197176364389707416672273800002915232925210030311613399975322511173803811903694707804970012332810568186566016209619226739891926724019779191065788319743099950459756298512306901996244415100361561198280701518648762116888687960581367369586666320382391106414706463423577731256423387953783453610466236461176374650139721615963253643249307308909019574041803780744191355955397188583881838526538647038295385877343676895611421129966780495301968394873601024839188939520227403385212363713893518441229289048544664709686210118565355678827744698124220647321104313783852840205453290531497080816091661115931561662823352063555158013847956341597450466043282951825854256518560208815347244865116764866992477556609517583679123932548109033981411148752670026021064981253909293913507054901582188873005418170361763264611443002093107100172389857638512349037359169789859929258976222292489465952610425774552072924473563065306119392119689336455651016614701886788194028160629998814480965451779265405737530113857867226071239917184946761733994337524065075101217746308989378431122223842316929643507696921116384130754974438204686858901284948601804331747484321730533826349525736481604087798070290148625925292980440445571554880311989683637054837730777814730040755395368388288284121967901502403628152471720657839297346896246341399434654438693400368445572465882742803424597724979624739900083110648655998606356631094925920035687032160751798737363398039084516096385635592015755805366326931829086118969470442008662513454632152235745263247210002086368719340384049498074129523233743941322549774074004743738653009953166950727726584138610601628770850491157348923164152971646807541597595089450083867928725794826789968832522996612535486204698008159326192092698034505186874893886164318124388584778276957268567941179898253996131101053508181154055291198670901296281727292313636828394120235539494321175096570634595270513159131263724374227847355093453567439594140649202655640814692984106188857349660669475855269877437903472128871896449930788247163056986253159480351838310499836712545777868883846673094447024569136088246300828961385770806157428955121357629745426826205886444999538331079881828871888811544514369640986144222499518866891916810547887929343672131064617193942080944633856244233385582498487468666802420279094558254879362130302146433803337745044338834342217519089116442867143462337237835974236588543695254877581052280448970338333591271724644624716325275832364281632630137884231756441263814436128135774100865287509843543790574301036626059725672254653968337681195870305761184314607037251380925870671789723023394981066769038781040223247968828939105238888999087430973331423927238726707986256112654923031219458604318262405947368337443552804724727964733473185564423859028884231183573295394131283896200993572446010398209776717204801454163053447237481616103676015064232883360770191288908858310194112103132118909309568884534157173637458675804554597154822089453507129059610438114708634891407843573386541730162869442898864604519101060648758609468958575725778694647268350679070514676730950383808403199459319448677251182598552599741433147553236658564718285118348818124785975307371897716749100052206274155639272030463657059939798496219786962640024425150486690154378932454689650110893700124478436583818400546751980672250845542121729084400084170396373498821729008872596593922756899433437327055662512230775378397940412924873475782921862079714301099602987642752088336779362873423865047894567429094191709986789968267129848514446181938742597284302484671283643058031390004318722666601401498433959341537463860278598644480315754843127074161566730406840948425614385461129090327959269139888546068989635315271768270398250018991177600344560338085531007296083181944901500444202802176256264829286100712189091138276784788561331917666673250492877535327596851663676987426404905234215425812515742963988008154973370601164403524450336946426495820088567905362976427952931135996004753891140565359736547611917674061399289396991418222427313177302541035918750112638834178418304940636900630708124397361274237266496201803568029800137920054817933353015216018704886177882956473823353365684275101926299170342314827826288344986399773335564501353375566795029184245364331078128296711157303029711349947827664108535175569085299248272935790407322272762990420776035576497605308788980877090613984374806136934274118692716246027930066530082587550393599922846980306034722242956762508500365517611372772822332618808383863853114252542631698988864122363283747101972751373182366775259318597799937071744279749546896742568835180488235985233933014338872372929393330785500559674702813374849045898762333967276984762911136257860472429122330884984728730339998599854281229986415634727709673947388919825917091647012253573391363685028321501942352253794364827449137929649390736628913294411645294996191147040820508028866199550401745594516952336514279579380852095357469783986844995820905371391158105490003288567746316616300544932498572007994337973803136985599582434589964551315755175057949753873779952041934713700722215009845697189421975464958933955877917618305924820821197576617898148353986023441288655637243887704551419512428976887847546249321555792070997075131810128471008581229643212678842758610086357784630724115358111343103405809706220579206587626726140074319251727066709376979500213711010262158061931236967976633652807364423295984749066365989011741567362346638998892522310297275873086499095353978505456307450028622349669083426639809622988507096149179630528526827070305754122535349165688039405885989501436565736750665209898792146616656586243825638570519052028805714390820920584123066894447120586485951589051492350033620031327345490170949395253229102826763201340816292175086364837472541693895174372259141445914750497266652419909211586834288447973135749209987521244771372585758878277496720742023627111811688662548838839646209185114134137761957056917531177827739093387992159796783015981001255877992297158790459489189225492734505590051109364123486679731531091444561841674753369924148166259328116214496648200257044433920998466847922620043924242820334095126518497888638409600044888695327822044513468828752853298922039857900327195687561949392347608651221163788570265301668388846110504203347445277719085577535529977351149155571067998511902653981645161791989442373351630008655339348143324408393525635927578073834194365632979463888394371594715143135677992211347012042578136545385678953006400698145511290772848045703022137495746208045434080390306440078940544873728286856855162621844975571003773650147675675044747196668740081374657433920355674862132971909534117845460589983925625074529342342814679027679327304153825388492653752306311993282693597493261907206720298467491959216606921047703094823170230948817798536553997230332925664988003896069352700153703574252334155335837667045912361741521058810854858049474536987817002675659991919736966989006322649545795947323694757499224543334564098756100760394744088819546834023336215458011843122459509594160987916099641077942007939957526672391320168973613208559352347118008411179156161712213000870770778780700332545245310132118124704546226722736847334738798978555746827054773949461038810170953803368888166006052087075563459536082588328093063424982685010959363385821527538477368995436176608904931192087629632674053739422009025544477215889737423564093504661427731476889433553030382717622426390606901411592667938223804284044344452866024605717962951848689937663927712809150378763567238494296939315518002248583400412484122812862924597172697332071671949199732643647822076340294528004365200823317824679467214603309325890896194107971234084920814154168557912072667087687440689989717499926132955567484300939217775708641342509157383022383192906235345870103478067974060404848412023062844867223723892457284428268018592051811908761065277152846233018250762293365938734234721212827718725715730296525425821310785640068558128969568057273790541353451498143170736904135995711910053772836715543774582447965698729807691682183402819455647679539063618331173728016157709097338896593646035916254430663879337607343844237657807827818228837489016530045833521932149271376836856444670575645962498403079733958928095324899242518139640067210458721957547232043614245091499779761271654346532792520240196552871324101754211479713648782797033422261806471864705778668998486971085744744964649586928452475835710136803387414718377557627011097373618973908228636502460860081194000952681657796163614581873969846454133151382705979571158849233328131297362399538549997793081599217635185836013102982654135054580106928297063359451601860202569361110072493016889036139201261981822128261312894398545092475178009303762927690333385855701093678610412450738370686807197454660197981684023214434363255015134673803863321671719191287595701826491245746673562117556258982142701490745387384842546716688014533654452634466185547075175253718297328503817874620504760328312975174817236271972950825084552421330187467538576299223222318073712900759779229793953073333753054755097622798538962101143632110315921427662806822424325121817098369196555336844102785300311704365880421888019020773462587413908576086244451092571579998684813722402260624858529939194652983566062652633535199995013377308088801118478935348671988216039759800204307255034989766599976505911210841086861320051487402469598709287619471937617768827664031218241037043144137382478751981029229989790685441040295195622787582698617733932606227472301630914037980574656632200203776224505007947689203115512565059410111974357525543206212494637184511692798696693816878401302269646832978722844284360531103759486299912869230624419757891248183219464877987553827215247067665782270029496293472767847514950995807196211505248738952171283570245716943511270999391926711273686895943277851329977860360359456072844139344462661947797346295605238143793936096038070172042402940007363452923392911253082656562843189410313348574764617688710558301799771109363353395162525312431566647397334225369180313895628229761656464951292790847365167553991812813042486754054368322205206219395214703128397123578953217555458011813245965841245617365698632431324984260974869266013266897198948714481525438054906358139050747289611397059746035718845036856284150389148322822861121306471410854590415802428784572830476876594014715746681984388474304835736953805200333722720801374439271143007330969367525819032666906566631670875613892709633630823071309655788667451793692294115059260342490365748999535081336263455584382042841532375960867301379057454168899298587667332555761634878864591308062698614336707017616465576778639021566674013018228265267830369879322579075295219848286605134106223132517469780974915056238347735770224900336349705296446028097372029105656828613973035875756961393071007166152997876230954440640224217166628062766206453410668835800960464651716256934917928519602183778566629071845448789567421764139972525865135055032009938989407313470412317227190063060050452124200853121302407682029417418830248130401829762444592212672909444092893171802286965592765135331774649873044745596550349205608745323714722302761338529013586763548949518052626606702833525071031068345886072747300599009452394640571677086077911176915128470247646535165313054144114231348159074928884633062915154934919458521385530828570538624259834476165162028746272209706637728203495210877197684425377314665342880689771194959382049371047365067327770582350869703409949324302732222915233112272740801300149906583514964667115457450982904006977530532917346704487038126643860341789810342521962136321167904204142255925898426702730164570290257563012831719143237761442886575875803738605289474483714937734451099741079297439856003811352915794936122353835969154755560301680607441027644260249915268155370994219466639269254950918096029066316354465111034241155277955705800317331990882081553447432689994940213608591348347732772641480185886789048960946792662364776121530036473530462207514580405667871106594452485066223147742857394772357318399944224061385588301016793455430286472757897458642709696699125692559904657365897789145393778417092597707819645701484792303240185873678331522077113591762114364253996930899773690220174427057564166970044071236500819336720196289683310793497304981113399047938383113571668086435230868863013632372059396562080881339839410320387036766069759300816838346743485909252657952673470938445360173429398046721698752403323241419513184634787717868434297231423209917938291004533945886884289570136939983713041620221877137207257919151202801818755919299253297982624393746062674233893127779656888881645137023826814609780829408764025077027005018944600378612789244380379392539992030044009270982991875030258201768576769114170950697925833433356079060638966288094721309517842143905454750030388506102591605464724132077298498160032680142068691806431583338286782336947588398549750247624239386969562644656696738388686612464328213615232414097962315757635744709883509465441885066529831320227624419029257895416166516213235289579192529655378095877333738507016624056043437970992909075651706719126982223771135925426936568997777626648181593158189709131546033015044693626196797080019185276444857772241248397283688162659000998010124668267833633560160231648345294963942001690454450986605177247355088400083081919784994991568368437436764877505166302943932055947486318705445305013313437258173468209175373811999056458401332883017412023476661876236515343755385037201362846050601609174709705881957968873332455962816772613137898769059672242003646069987264539799624111009464184609845144612530613829297391033410738385106390515643562238218226156451675103990135038468521670765641495131732311462896687266705641465504940312820335468724222211172330514574764811615714594236150988904245252205292226339656223705734942539471480430968549750034605453078311226783631965559977511565657129523697278722617261816552880551683047582200893538739155087973177178073452181869953511527798452669384806213076586544704198312650743722070154504518756543202391866560266583102712487332205244768231641190727947615675710736947345630338278041287812051541954123196356750937640019175168585096887054635439790293471445981864945398043862253101457190212988437588543976415098034055359902949953787143685389133011320221117221300234113155226668698849741601154992048533549538646877621635453379597614526743393851581434513980225524544881165013012831610684274705803421432883615197747287762224904099519658097180970750240392660673704218736687927423650204007000395329644159482651080676102993338377547183491384829425010264260637668489388313286116808192292721425971148798169776588267449986800238715740913676534118692385068648440046761178698977455267434810437978862213029803186310266096508556349958136859352317739770909899677865013952923158829574293636637202058922823404190667026895691735118848650705913353339418994692595760141541166062779342314854045441043299841735874641824498976790830396956202782139079592438756127872540364592996563558215977728732566778729502665846715765291878607527352142910091985777161829259274785354989482241950445098166878599364065008136098305171785020738358486788427554632453725786129403821480365901332264645837694839518921720588379591424688161878295541935851769540813339669833466301556862476313588671300869764587820967361392613958872134794681656958581070800178182956189501407746621032209729251393844269431028372815027783767303373637864826292598912243215752084944368987824432706114998770498654001806490127680546233143181623546479680038004269329245274528239821849333356071315035975016059779312815926864722361048375654859674494883055627859085511513318000502151097394606008912627863573771150437615160383789801572064686562807456161304663397411323792157013279499438508768001641109655916279988404494570844850024761366203100798295972549172771432157110014925865742154638336794886388662662162831936738641402331547122718455849978390136278145125454457648272616688997509932881637213457947903850287480230808429686298713623121123790934580281137909753755176567387104040890191159204685073278869794060708557697834691362529902077646510385695239700025999781290978827324950241490013751115496224938537817693178504773544467222239465767409374044261622429672777651940008446290284373326479064537714798771354845806054209682197374460922592869553544670821579930251509603662790642979237412983313102319016950726143995248073571227088068902127191097630257681765273218840758408452945911495100835046174518060920964370818487624382776601390428053043400228548684672289121566487212893698535801565931085438219264581046238841623295925918586743045670783229282466120021071066824394067641853260018303823428726698487110199899810943354504534431914062106816490681386517889473464197773638614242011849273680352185075724564828493003862119332425698287997121918666070295830476911491305961996490322963044669991508433353356051810734241712926173971207082313220007575393662345253414197343564527059329907737800836352648069579260052434614105169956944796626669749042181703128041329900984979712304737977245228047269898122291583920118012602096597887866032477290819505028953718267126050041476216271169475577266927015648674527642256387193449421194591064236222968713947421328940611085639122369927944485069214191987580529881364235891337278662381095643120000636808647109741027477673351627857023623012694250954199143105509457776726778878476687385468149596593281150986920839500194233999718640160812649181669513261135848854595824704334200885342018623560637279968017453523783287576190144906044131768750760241013691023552304492619827067894517346264346320562589367838995021453750243442650194323270346651613771438720292976216239525571403380424331782072542224101621572812894231522229862224681856231578828645210490250295890812455905347207971618621692723590201731728666031400752902505201460758022195056821329773837523234874090897284748094078972361356509757307229897051354287675775702108844597049318729207068798519582242470136179252093969424701227149051980128360572400346199168596895209161372138205531523991431555199071959791422163097932504482114685338100667254649565216050891273000765180974649657245737901040047008918943979708476244113144766883968426756390833621763734311354263455860628005218958320273431273756137067045108567955957872717065646140556828550502197516293586746589766059473826201888688767260346966212562010067187975697463857813018258448284982548023841751498189520233190742049257421695466414461602066293785236938512106184355267812534590405689119112587944399705382345732665253181331277962295312253932334790531197975528937307963343605170346806146008515213172934966716560021669942469402364865455086794995280061803365070140971426427398147268872662551114388126588125075011599577519777746156000616909257995512806221537167081894137093305833466118221867564340340295407381002627920697550303373982882073503962412554732685168865272317775386786452604781000094761036257413323755712448210222491347772373720602206965205362388826783484826852803583778500023769810777178923392336437244758408314667108760648284618480420093426334730263070135726792879981568707449205552082145153743253472642927932075521188243880622074983348691467665778656286136764335737927626259402081339537617860123682359977169107082282282447221099657571200679879436545383715415960925133550062203234223159755836526665884478866966483724685857592492305371001837730571761795605320742761160934693707931446665002217748707468663179329338523046961124816626252598488577898050893834335425973565734618514800651942753570860215121193265398032175927597399243006494391959677865296179227411621087229787035750125060295841408140534808198365642387669372579540836559030893457652222103545325403031944542459088728845527407615189095432305470312675425594722365287422059141808811115599564742626769768109583738185816671792511627310081643278155865836097372906880823093706834000324685225734983747698871617018381234174343636121727501557539498969858711418228177756647650390229212188242033791753602864573526915725090673395726273348656635009240295680586342732387302804986237081215468158684955675498261584991095191456553589315558847933300528962131603493184347379937444979803254960325906329784854008226244483015145221431083827448246115516518546468138662194765969142327998984337283322447203842573658034834941690109507871173847074313084721400225482771815413713017117637667665389221149710863082430613105772526922891722762499741988371585598696461273334592702489653552239467632056296571223061413309070595914680457714554448682578093494140016902434121598919685580357042100721711408526580952915832478448862272281594602989627307543644414102740466153541058300069268591612371495544479193396588463426749899407422743079528394580624784003545610045134702874211302829084698387454659063690826968021980180849252766820284501996326873682684990415045166602415267261110030892476130801287498456634594690555295479271980657138851759902996426583863983145953859824676487473762399607769137832012717367601869928563172019128876322688816657117343694978137092418209894080929669208783194702975035792609074458366132029816752104815879472936909963610541634931124107701255730539425698404557856278647221986462106706928888183767643024141642835230433863507366106302442000716166590018707455087795134899831433033021324469444437049925196461162081071866591610084522070677493850209088184370408063696950609490094924062854697805662875408887490288443862426113465405519488073806117194920661842833548670014805485522508090623415339057145275577045313423548526904606879246060933002514577787764396604838284140583448973234782671629671522653174239222995343845083369106579242317562785285878269431269331943873747249554403920854157282821247331394974856573151404141190719140169784683195516959250110748778958724922322981030251703429564174536593582850800516599896954587289019592672761370278254080602941723800183472286436634198247824647834676067739187260876789837402227841727081941126109883601928363008329058899248113930695132407300443705889450322812574759045980971117131350510074372660742471255468332673005850726081552375113465404838240425316224196901247929360285268103561469803834134944078954215617811484054260225905716380269900832353033607432682111108540010425910877988689264825610086809207237763943029161475166697317696298241447695561333612952727966807299977475444011973271274217289386005760138872758418323064877265013721994423283691229954362593053272745045711474827564864067436524170600699875691847365417954593179077258326914061019232945039547883769313183057225644780885903103283832455307132019395943367969801647984559363889322790472387958341154406226036242978080894395671793370043039835045982702718206179955770765200704601161027522996351498373902826736985335468137836864679359364007634946817143747733424830462122375147705754093675634017434708600288311179829913193488111405856495209639626288827152541011400662814701333505078361581948612610427839859190517032005045656126235332602196033339470523019124524046290283344023522296115654042815798295256128493774095712282905317008617783907311199873307291293096747779458073294103674286802826656234802429656942194469735741437590514555330266493208791813027743548483552700818228218240622900252506063155984940347606676680535924556899332160773074786788832644794372521695533937834232395425503003581999817232805627164330033515345977167586307117472820996758114105265299674686272410030165022538390538342511943312953001779128161333953764623104745726292012865187784323014037184127758554638879002962714424833308198694483068869629324210645461506742394277443386418551735268255407171939019695553084926892618005046356954080349914923022641261742177368421582499028301842145123961964556379448453270480121198037799091810940588044760591530599472443843620967276260365701774440785136372698672413719277775192954694300304243355208934832659110683925116804637246622113182192301565243122054276815853612843207750971015618663419482484105573512495452996809037413710107819387783976376477635343702235439985717919264436149296578563911173661162796406663200831439767183634312860261529212234690309926393430666221087775347414983897058132524031311787412442553206053770126929554696793000871316744119973487807112215179105419596602019662949640844207903969627572226523563558927975709526355065835485896495934010726888249738947291616618242287854976339685425843804725367219315788138767330514288591349091337692529900191084642066419067434049346133084105225676652085528765229269265061832769941421418436540078222774376679295681998038028229377990064117970228601041717609963175089250446886581701441530154398667850854086814583845651005697539879791405100242159200547738298651226618835743656793733461785913249441324785840469044972552788924323613895977584334339932248070867242026661163529159237734201854782180123895111009693548866698211124933815959069701786039704799161015456429498336948974127590076759988487544400574202804066889925413883610556154849725256986826412860782555318726892243988328820369965130045454485687159319414664666254350858621716316894540328648667703765506086532096530313202730546994227252342335294674148931429372338097264362879468053770267934092816009756286639401920485879735050359447020333111933781213049036325194954406117761304869503190344858476304972982446339811414483298641551237928499752302482166350511072410688512684053498380081410393208987420890908525096435308768160982122857919553162444323130858668996971089085828032331236675012050506820763866525303436174420385165569429341123580283679410815863804967984210104023469448288426486887963771008354139400120705085483883227782729665134730880298818917340508812972330690478098582633008018128090628205432536632386220967718190136190986689437409066890047932783707684164908010768704963063003877043837635121975414298637627627397468228695141521543161199726524146685626860392844374375306164375200764581221875505975707383706181994705412319855947323566615526848276664601450319292559476360003291092913344472069491746103464750943126898807414999217395849940573446061711480340470937469728451572866226474103968715355895322582168970205490802108302788979157280961388510170888567608664378440833519819003916636197563331255591615922944908637231777396272589744345479460404422344723285363789087184977975518077559492794613468498535381380848929837814962643307176441562588954927496074536494106053729693160758638912738230628584711125079097390400408804592845474379265894470043148560111973825392818753154891914134781542353114730168430772882395648880017208805767119724459437142975545381402247831088871600192882415754977035745653040593037204122681021984594227255005979517986937908720954909306173900028046245988693678619425880289644124920768020559685817029666495684657041805562151782053210081241618623900354721848232096819706199878718010327497593480219753866114762380316002212759263913039770867603485600502989115323398264253488578671990859854169188524992727750377893473788325500862467951149870915469871761025179650553480761343787385333979422298508450982990431432053316811637956546272394430596698849988296060962165304497839692688051310630629596605125555650173186367082253835274038285500238476555088735650976206010421572932101628293100088744635156022749532453381028719213686432464659240974837446275055734380337323573434022353540625212221231326286796691765443702866633680682291908483175500098833739193625395154956542161541998601452125950100596318236930785461193805383759089439834404693275701080860806089489567683514604628668251706783454052532223994018660363351952587121168932847062382113152711503437430364097532552647978918031142026512920406392076576394156912629650141982828174553105449411698376619755169917270307224541880498200275072167681111678733918862299360776238027184155208088572620255617262184361449728045271053147328337145748346247588263305770649683904391098788686300450539533565888806935751748293614810377155281735195883510891354926832772533751137290867841755477934549128557392081610524123243758600415146586873471856107841800832118518329008912923443240611121857552649113760152817545476761544660401660450286271063856926109315264334158155988415289880704868428132882697416916631257643612447642233605891527289757006174924057050795416477090518933731737905594922750440025143950689400082474014039723164066186282117032801164804390486408012251566222255009072067113024536994616137008475343379009771366030369611184523157769065522081091264750143064165902707445165920463974166766074611835525443233720506280631809461876731236972136972209385589443204905509420159116675624716682342894484637763925664271357562860593833218744142640438561606569261638859857713428713951429917951316725645052192133417337873729401710512046876271873779941368411597129493538051436227710880761927687171850158066916377689920830921365674118793242538373802806433916598472138243707334123833925308489460800809655527768366080242479155678273543302232389564194000811265913980646982155264381816601578165659992684958383195709189740705182707734999505604308520850807155040959635445741078834337770734138503787578935799685331815015247855355524681462570577808241308816004014051356335170600231527888897504543355847782946428890356525310586652228209356314831891396571966514499505517787919166772342246679400575070747596642706075908448464935947443728811846973762669202237829738172542995138626715883808175475217311370781296747563080721672710955097981697742091660985878574120272247890754552047242406606676397733066981192071265228892666458598705769354181735414197794163509559983294566651560590281511021759053403339956304441334576822210861070502646665292615322696994403838119872976947325230350320221467625712091550089699478808917629937284935356695983191330939023551887518147379608456147194471565874178648794218316807643196441849290602667834938922173538074333902415972834224356064551023042149817634893221689708064845742933809773170345346692754528538721543282248962485999184664573628940723449380561003875572539737033921784402748369266160416650443118531789656993549138069594441958925736517922323281622170756392686627642772158103374132608076583233619324808987811221585750702619853711335758363862417173033840198599177285139016390362364969060892005866418452911264415661226786972843182800258264232181440147310068580534284015259483896055141674602148206822884401292067728481565250095242601235960914604259436482073188055334532359550861395244156695917338354298183539301008984542473601787476876784801964979850156120314945394566928729403680497388254471611105471640225978682197123980566487050136293115426083276786300252652423489027633363787353762695433488437844154460159225632310820367903942887135638348964800103640191408455337019348871480326251954129357011829895240634054685057828002600658155054030637139425442569887493356709787588195110818375556481998259877104445950281448342851260335914410455847398301886553142081497256504612144030938222809521049245688086309134513095983852672260112201221533013335278641650739077402367048351548167287123657778767542916058762351972044502103148853115838794746595990279218234362485840294916239989500065187477133276028508180398638965306311673061283858874282872892422053212826822037581878288349555021227250439258849434345314022658511790480248044660622723431490423535332744367462729595462645057083238828119897727568928264868316782459587575382795547804970812506713201824486410843555848783808313094113524141864712735671613701551879776614551060746241427957059623945436164990122954793534722715150704499822107188374729340023130563106313783136728072076611330200031950275933201447490717286803173751418482064340131207118687343546496876619001293923247101645348763255119790590131312249751382092243521301531607614055554775037580075140808263584934902617929081221898566075576475234674379141527371002763126187743163422226924482162203003830797254703349035158475023179220294076208827279434815800171783785563431586216448534492908252285469897361761338194190890049642641109824159012955663662916176331445456938246221573557424734366663966978813229565689458555715558573810542449835883433795729337110756378475656026991384562655105584452460842043284592063744102471652117828066719691188425825139661934553103581598727471553214943223996889224263138096890506572128205537024010601234432690242181740460507330159913095401510489150985092833002368877346895055834888375040184949771556076946132427828753297018180336451791674071654005067374238622606062352569331252251429719297173147737193791007298584741374388064477051379886196151513034821290761982818723023788875084735866215482854960549816154401696842627993172755624137742562546414852163393460325997458478886882505114858273974792096601280771927102160607542013309038950333517492389297048007903994872527209614978151129339091105199347350237643330537706783773997425006593910396314376297119447911005746933274751095917346859746075903399882626409870315438395486714404317270659038434927453540057796894381849492027172530756117235541042799799031424081996200498270623660571069980874734078178843071945081958593887811226414835245978259541272748996436553379174895801359036426704650316255873108014701279908440651026876826775351793190405007140582794763636493769641220805515009297987511384034320373677429264247625943701742715195447862886860518411997463615731540209084801551866753538926200674978271744398657001223312113430538821512217683791442266175347740721201453196920493521031804025291863461953345885100284452831933950932158935925271944612375082221309892586382411295154352308306567780437157493943424448831455378570103894342767370974174014629474499324941022852818707955854731258059163164923987892071966712928342891864041264041610853176962805445664278330160139867346082447637536879917080963348489937612724317988501410874481041501829307016787334966397358433803044284428681876877793593013844573437551624440282060133030872762096694947192435030925022435058616117531500599769020531964386905205620481537562060149541862627059500700980324307029921218147343087777563765501012093466868839721333358115398331282417630686367915926017488981398090057397680209577450052030258553202443074752731469507485386437909344187985736533892247791125457979317176728331575787013007350606667794220555880540238038254201129400858348017226514094133646340100892285862430921098354060172124719998719917451913619529704582145709675637435413472183814798059637861158599741325844912983046287006832045447706741747377240460366592686702115892248905825717067639084394417436401152240124365923794647254900108592163161261361777381980879627018686977887764861101610784506955740600169147482321160994706077835338706676577131911310295077899074807965454586301458966659040944170049398343145946927666686497926181000175957861821394377784891849958618037630181150201945424744284720835740374661350123882180956741758645365267407388424495612988208777241000489799787954024922321441807696492744167673833996206782039048158977014473383429746762654929544362729727332568843450690662172440413577836720668019887776824821108095463867796545412834046957260330933588181308562215953659742712070815930303999741040033487404331724877662619172263616759820820337546532977154610294930996611097119793837250983284986823321801896179636573754599885746762733020502917698210627438458074195956885437596677309607854281770974279103002250629324057100401237587855180873260774416661513556263123365051746869146473562291234745445873434995260865967018712020718636943316487081178703735301541927049971558114693465801475308040051163548240357432553679878287674358992136086630833771313716484191350923695247833328070888462251657802693554903917886744223804069238620287693644205426416256379544732929023292056265405927868799342674835874978052486458039914670902223018632568499622322821011057544453236764652934868721862574105767510150527809538450573011569621883197125236011708076998565819445252747405268476323268175727923117272312587482404801015559683670058953249206977899776147542981438322992820701752671601708497832051636843958101931419208841244893435750401432609397217568959358957449835138330069807278727113378096685625085326718893076607309206373438717784088618841865140416992157702033150765775070345279550383482180430146103504871656534171435496653294677005644130797304287477916899046326022648026514607335119099769783347119863839178435905014225039964778675571008238813269021550764114936897375556584225824318545101523997892418403749819504090551948732226324371023554204486434828047066089900213409525395403260729823575781871415321445920384401711028266721291077418686611673200700358406879238922714647673330868637745717115140925938231963292357206120029207681459295939921608882923261937055468737827778716552341015296398539986605345789492723458757368968425773971289467288779961103051944744670483620780255827501640508823335831563193078596759758762253345382858595441810895703786668313863125536570353280179903121059373931342739501901719925638765489770774389113253825261892312842536254702493690705901561016617191893234395183894424836060218537589968550010615766353976713208939574470544044542771424558557837638382095392762181764950015569650416244054180226986336641026937180071471284546211655719410629588155995392348894902635865666905929207528067821784229510431502549193252482466706655906158261543155870460697777951286101527535145826643671543658006058075461709136070927548069899311742287581900901618234658358428160153415191369447502799586675474664268284133975190629341405982513641118869890939364559489659673555510365501317769582219722148030495126448649118062671054285692420185365156324241241932377804783934236105633152924558989297834962982318909897569273895571103472568906560166104203040456653307439433589703387813825288692676259207086430102507869329753600094824783445577505153698727737637488537701146904701177362376228591986678265669630285618698471035736140811067772932994265529381635898140295594605425446350219281363820136855456805885224684215888711845668911876459976441076231561989053448598973056850235542758673420607559979695518109112729129316214866528380125681047047176959217146064364904946101075369238826817950893668787096101559140427558965787572696488283459257105599403265584794065565527476215110082559912160150773424063662811753570023639527602877246890208058828094523623730403117647727399251327671047863957781121925307053895775131992659928545297711410309955146593600795125087402892124940158641815369626938395888031155925969531394839499470846076297514548242867067263105384069197988545947193007536098463225522193206642627954427811210984533270931393315938018047734440622011645765201986702954563727147497599123599711063546374034383621970221136018033592611208441512759931188120506276549737619231236232379472241272644847823277748323925849565548215984986413483839216957325669860790406792118730340500418195971079353971461092675015381138646117351429320509895856160646322060377421908825073512580644712833720176477449055441998587411351099421981203210740618004057260617622376063181457630827689494448312811661776365043342262433677822611557422420899865820686303918121727702917499917843836125131660010292539129729660622804887672504813545853246413263387389845414922102738323063424439994114853926564456931073059964153803180930147935371893788983488221608025466492277108123927238096288203200315921141316921705879096155159694376340681223295302720231965337359516668966139611687425575102808384926329204387464622824545366808869477466874921816658765038151072123705606249917530482624315439183490673189761244232674720749671084549288711217859624409624443295548433432119205568468444480350857762742230191906699744759503588059410807763260962457091602190883641877390525756948337791540443444687118128561248891122081353383882615306129716052699431792398908591828566385162968161101161072175790732121846367160528891701030202457797346749197798222405894594955946289766878366231015593851503598927115703170648704834193934308233636155680335714988516959295461369451767190041660118453695008730457171463320589798967126361355551522372348721546842200558709852380127633572916804447295060147161372697094893833420487846386327769381666633418160367110765515113612233191539201853042156515040143984590319407511599716081473278977215442552080350619737232964663638069546915906353210723861494211525402459854344922625389582388014309087979262169708104311512796847947535919806596314908134897611489030436790560820004827631609614437198357035166434618754652876911399039674913273547496249080966354877637339966042990687551088722062663599648347300013347283870129076708089338677135290082498547829002673589435196823167435204394211466297985963650201464415762460255325695511032703960218011306779074442128720429526729898390775259009945049802643903557549853801524135244712207958072493830066165331619096116034043001550371525860117060334191914353936455475810800819608514230830670154811321001197728377681489140943542605602729186802421930457361788297034760996228278385413168876937498940051673824545849741674132574524911346090777723230336518247717309709924552737089180877961975279624741893727825538273194925574870171413632581394331694425615820119222588093971425055417313529529791461826148948746256561387486137980869974327880916047594651362529912469680954886541516045658660821194660614200063103574323014707441098615535074238063640880906362116510872222231801729957854146547175561653505547194672347235245711356253481309393465614852647680734566220006097005399361714784679548641490238773051006862673455069525672726136046203100136061902292516863520808226808286537504298187221177711213235254902580918289663490225010066161792194470522056901742873133750123554982376519721525303074487648826044968990185635278784005702828156609411861675710413858049607991806042942595376238321620519456356652742417842073659308244983065189019221381394493823731264879493205898916433746003859151037151018294302398397010632419742612081720164830562878019913117531371219172264218721833440306313342953443664863583004555185041724262438506602462051244890365032073324613195641169192539389723910895905330662559768789767664924645396439346403459369613576233417803605752367189128850378063728657285840655223566284512603755536018108563819598602692723370920035864370999986893373244539505483283790528429019196906390138545937855575232856249059260355363595510229096745201243606617753868129638524927022875924522555862538389463118762876105202098533471440923440603608219751950889055686680612471989214563027870733480550486961275435727772403503674520746803546659011675739531635071170133689047278069738796173802189673331442552275294786943585748541902822097485535525846499204289246511438236527321818467407260723663042187468278825782675343541166676276102431616979749184093824882493968109031216319355855157640998513160299660855801010551562688564903573476411018508634803793312167873900888838439897411332309723069741573116645260032836809972838006967294653073796685034021203300059392811841332650264973142112561644695224643643624777047100235238910333825863128476409727062846092100607629728681243937262144030092831138096663142309788973527639667374654399454200140213371084957250667310387154319767854693095715345869556144158042357534983406476974510266861585974712076834098985182731332696073599420835740456957587009751886498091088546874249956911899905749168436356578419671912310593666501224665179412753420394068857748383572018147789233464686739911376728480397360500730006672416028669740817470467505823430839871183196605727777144104904704530290493876010571160029111265267603303983405078774800532881165084322622619137447955678982428826839325541683558917425922542486845075585474335105565785868324251220367467623374732482354783242208699278320731147447850587598645446463426700696936231219372373955238380740655593078704510953312815982396063720520605051007744770510924989930080011595336806823879990391831426241503802047319836329713708592943983431079673157132630124419917464606244622851000024919873196443611991294180805999013070834765947892656709642701956524528543846958887189489373799986883339194861547663015247722880381801921866291093446270516423577597668577019287049044258210794814398191096394616230278320230270244727075313569593133402312281190654954764375653309189048200527799459915970545695737021892780819292152608567268970537755249887115061397761886502286581146659551597426345679508025290999572466679133669583382432324973435127248017225416743737754473042170167716362046873401544850131902297285134606211329238657103168163523645966489640008432125260413870167520058556877260946710567931564890703873744452634151148744576470797563009180485743455611203912899066284259024708685036473701201246761555927314885565042395382329726040174498567070861254829246680367700203710079615518134058497787656423214440447876187850900459616192518031436729144133242174970642639145498519225327630113606016674676180777688944265241657512499075861740574383279842192843938712150599330022933072800765613948709102692666066139715842851470822940633052804489027116130828435904799375284069735811190815533236911152055755345868493138704876059883011476618637330170062106845254909517011481289934010213970155798205091152657267613993671403871206487444485493952990458450602294772449380592778326373348255858228063427300425171395716365799483919484500707150039031998858441261810383819751189143335597112566623144325413826477956837895737187557345917710733728795840453962380955888865864163641483569024562639191966709498532165669911937596026461219279046881463894075825657086340972701702430902596596991654477239952830348867327151109185819094140167344525579134953445688118563351120584575597081068821328250713564010977810523317706581111332732109727629651949087258027008595168201329909860685954868790466864068996593614118235816496036768436508184613070588306129597607299945979256176622842258799096735457246954168554200936931673621768766817194976256692906117853139046484762991390966082301635067813076102833085245283822310925831218289095257156981704740187529864592859067579352526649375396944184010359334944804638696879075485332831332767785937054670442878148844818223928102085042469669756106074820242997697525864245672082709456837015717782522794117320340702290207029867345491459907962424205521980423201132764972250893265450901650679007052966092425570836614689279914368520132897217027059987884648560226281468461882275656419645519813418405060110651290802608335567619560000359475949103280404714876057282927830689991852063800167676449086291790502871402223838091827962104625430774014707310522250986293661742915081076555729283153108529807445722780613675972348862552693347719581729292573557005178679731223879327867148878556509712679591409961509937132464616099059086855470827414750382303530792809567166409831542870804630458564452723246014885157509526339637774009277931775447845465074884461912432799950435876573239422047074691406015978490034860668364307947272976489929540757977385460261014931809758092755164781616508646833045400361666124071703461795027730750619997831760697559490981401730345355131004917341682077416897075384029187775238426358242733009433757374852212144901290937279785025464224157346028512808537377338537306214698399934351600951923542937952225238306599405591117779190940890444897218984279177410348902888426759097209012676835795259237658555381726149634905953510432197341127372325871457583913947011825097464709334268583344220835198325477451267560187345719343257640565814405380930389237501743943712226346127196767474706361213490653811340571805549878594919262469391952605214761887421417412620221906017316972978900900127237454629244681342288424075689606437345889117483852341388208190934460189909813498279933947698486377274437807130257975517895746615541413862572880242651248939264910372064687871514111304672065421191240095768816870163695298589898258675510184662808095587355403443547217604895934592110844396373182300601475955905601380060217819286762829851947543410058499467432846346475879925283291335168589862399765424281423577985805434115296008503480244282772522700179364870467426134047247895172637594405284786604048653927064632092472937640677001441015511833928829812292736691969304120746756519812447851354144815534585638806563370115679922384890304583029620117884025408796473484221209357308637380825633282415246104308685174547093172836169976854143952102170413193966891216858936733646901071382451009170948416040602908189775957331124410312459529830436432646850190905872818684117375076362574894864203773620875236375752935538442265628604212296953010843832963002299629495994712897458284664693980148275065631248999913852301420587764631773095602406749526339247116433912594428107459796068644857172433344503697266431530324138482496031515716467973393152835784119162087148196859708308077674439203723534169417515703651009859396976050069505693312287773636510340787083609284909803633027585040819561305849848553672127460109182344660184201611981817480716300768121462520911979447558047261902430183875860645572533076244047707739783900071749404231966799970001211138380579037668436383121847670002842520646277639485187965259772111808750171344757916459696698978000882809491302024743345312551875653883816840658000450026584056172317388694574118904945867215545657942156355679683078070362187713147005427791536649468461904449523552856345496410546322360849136414825550281464020689808037840325114380722799210880593906561616497523474675606361445168866468534249134753955544032801371740133965354064625104227683226381753604371473240897537669495406067211753716317382730853338491639673008765786979864134538425798188989502177648457401377889536912490516457360041671858966162234665446631705738711984273712684390832069953689443886151912100987686500141077973021098520779028400585696913580518416540618794409043475487662862395070857983903689931142287361823038416316442472999050173309726760358770682014104676802326843155487085094482039451048479174112292912581992291582087106684695965797288648411906589127344343918288219900699968046093289608980716031495626753933032378429267661485090157108381823910427675217138096950560731951076471361219782626392338516204601827751008433357074584600371992885032604691060549440385641562672016206868143113828887888947952467345682657850276131741088036345825090436889650956525792355326544013125190069585407361442564278188730737835690362187424785105591919885049377521754081287567056090286387286513631354987305492726028721365911246073157013711259060572680003064271396753153684934088816092419938498645297307922165941463896222435336992685800077715470828450670090427952774647269298520699307082380016687159745695315499966031017822791377484913823609943759799858390648797672452842837146771456970620864936038763915790080040801744286101525150784349805527450847887159029233352771889865034527740810301391804740560379837860104283378466309413572480984987741512360987868357365087075603481765266542741230090064676095819447570159159230099898043849153757336789218156347113739146847099265837530320982897288352287711293648757189602913802328989059723756027198946971582022367712589679041231436569252877724505751760045347564930168350134533200100139393012849163134863250418479296877049700059929612358107431624753106921794307482554963610678705874830477446247681685124133815113723005556377919321722067227491009766905596767689657164847123752424390484959240833773694348746559996991365420042853516133094728868750007626303076298615748154354321913899812888209663597515833632221925100164431574694091095957901201583278681665937182558306123835029042520320587103330561170167967102191835276083584362869716698345535676793274849160670337044324788632477045701576981081215158334751260819691000057164425896409936510984871192261616496515859491303294223916546299379963100847135030618192705425966826870045302902694223228453639887164026910445735064920980751547004987594754599383061156274559065655038868504129989217335890800938994190307695011800089358189134094383700573585204815858893458215270840543912442292516709763728545524183391679098217414934380695151564184674545581863278685903930389986295400343494391914614128107737792353325641396643540573884052820763984759043137328355771612742167814573581747074507513807790385497598174287074453842234938459153717006042110936631273646637733370235609151518840878536215222277427587375011750554784006752276105906468403263783269320374934987162658874967984518346618283429243330658842352850228348299976726713648537415653768553870119725792927292947163741568662310751571178582080462740797957042285055582694711336890554051740366667710290371256005687364453656191269946202771138015431323975825994987065182883122117769367699693501458929952279126434455819388151333536028064337420344896202362583224840738043259905817644535607335871082441517836769299321795957744655630192351283431965687441485649047853548624459768629840787504458539524853595865484742305414198117195020052467546334153930526438850391811340528147856050220922610176799576973576995786689985210543049544970237060443775943335248878532996463537080764868640142121839111102296385619472942904273549718461095436663383331527601889920246112900370682053371699746371826079653583862808070106049654206889433015873465452456141543412357997783685415901106479250086976110037925034723931952749644759603730572309588738117634197779330308128613556833085277017110667563401600090038344523830514693719799766990552678538772359112043399531080319605296091386130525794026366052613570561971023723748000426553113113551587347266556440506407654155385528495897755639750985094905969019686643415558484108457171675444548106021105114102029178385437464977584210992354257126602514711043418400582519326422811303764697989078443239918462210374794734403010961590954536713767262640500340443343502620949034351669951867320460870871635077318336005776817077381755681936582488448548087140757894178110351920206805544437975701063996979209265995471727987248020911714382814955660617068664843816106440308891384871914947442605558125171679688639289669046108658777324994241014826548431549211617993561022008170778159562138621079849969351970883040388220379821418646124347187618648874947725560404950460893012546832904100528711279562098186790112491986277502158415778808916600632940267846004176316513123967369191336361384350583753289633238380769648202359896475045796564334031165008530472755683348991911087990747792535757563968471448512864493873409312157757299394299156605930349078698138413302324114892415303599101577425943273082970732094013684189805259825600602075828144127111093568728114251596167971389658262673562214779519980459206553994997290195442112096896535850088986833762061796279256015800806639534187927738250371675092321573081617829099574705287334858679259408372955805176975542768032001766665322093481956454536606657060960723974943628848963578832758497950685906242721555580576083829069917891947778753654779947154858145337774308542239664498616806240896021833317522650670898262239806179497447634326934598324644129045879989869197808524582719858921494132422247190465783752966014132824895971047666481922001866949817091258543577810394987424496854817758610110221864574365554197881205313862485399519963145372683805516468447089090298481149576437731384418176588803684053996735738231060632524272001693362962911153093589395083575525044263257313280023805582219326184937456960940900546498350817665735758375876828559450669480505078951750569654673671867695223430589864092275732166034699467724595771093378513131748064887072541934052633848635335255752986311443162480369131333331053755528622404521245537049567815820882024743061725807614123900974464105499625531439316623183301193098511914141958634581854975116995570106921854376537117596583000719548424023233792970330769668184316864770650176414216652792381501490722864785220921361729771191205841960030145743519529602025095433573585936338395193868148933991654197845591435719064620779142202616676703104488330495914463366972833050673823851519075531607560590233875080641025985241616239722726773199457973383267866472561545417362870740634634331980466330609007585171762983821265826363731062285809911861184142266470004881706580579193635399760502318830169011585878011245321692301614928734616208785889336158234930012712048817785637601787002201237111634194146203276825126262866921370107538692668701611113478008610702826168295786973230097885341515277306657137099837577710009638732890154110903065760783860987537714550974949079329354210888237672866488672172347516359561541869891581504999938742900384759891078257905954486005070919382294115170384630728065037895456609751249753039429132942404348573383920899402021874469274711213876656457084803331917681397290277223891434155967337750794692906460773840933109829093413566798445797603195026398384890241547794864221919966268282279746788200583598275660665714009810928418387250858946737115205583335444786590617704755769389127309088654796053333583237582649476388777878806228883408067513260966325612430433759177244375203552642736832394591459422088593548486045662728006179529440979312835853761119301244921331336143925656377140048826508773289528769380294331403674462355191152044923109829973822659794503513145525977222115743683879936295766309585557490362278759422725122685754930381901158055518772973143846281660186232131087535658971371297840473405690520915267259448565828377406500936478214203863185557190761845745611138155723658747275303218036822487421837291540542684183339967851586279109524266603733127787660370377256214980228736117886904552153826956095987520442376834657067885661741705979979918092095870003451369527017183997595062707090717393503981144372324074518954275957257682903402805309902768070358268570840437326088919377498926901842003430687795778264561219157631953244193206537988036805390408408655248758922042524919254462551552746378401769795371089828358247251437683724275426224618098292605391392264432171538385793402207355462322169136885889491315346918714408658818854216048055777135924645281281281437001588251457361967785942733286669807947147346147033071358634510317152584771268652258758223028447889085754778582360598247827879448808975145315226501426932159093299849922989227885419408331152616578787599565603076262223441574479807067163631679430981748312063533446067832237148502106298135925063242259193557829727178032201919247969909387649887399074482144480119276976719725692576635327471625143705227728775141233574736012310171121170026671366172865644386537049217422773221164351068384074139759525084512445774401549794972394352666134713109607586809650130625425251805748573553898501535564413817111717715927819415814264091361523667963310592725374470021734129796116058652228539483565033261706911705292190163766776516755169441223736834500382982304067836503600488322664004200863686915527588954795055462345079155005375512450120514651816953658124821925674762224220141989839881462353574316663275997554328730386730643993470053277050774946603716480275772987357263452918388127250980935524453851713837292050857006838791025593828952635583369746076734450444136063253258288100263143608841458667385269303165807107763504234509938318767486879062295829455610148737774940902592358668787079263080208497690450682821633119593739652777454550856836596296824213778748871730367543986750226551921793568861759143630466769343206837797802471197796851829723130194951651977118211036274690679217239749514724849676469921831090587753732073930130567662728156417818962129014806300153444301261317324120676566850475702979231469679691149350136605892257596216404823650411002613102742297746559921739628618635015406748399877939443828550958701545930273245342112054261033384372228907582909136905961699395722996129640093948227712097579499114477109985903885539932486753861260477895920191473516217809079424748691049323671835749321904196650496640765051285121594583392525324622917874396413279708826605945634286638929936643230975068138331203280137267420245577241812337210992484149766566150929071478896002563831856942949383062239726293508400826334338497449057005778773800473824425224432017996144870350852588351345607929439713749057350774338323704811834576067130819679919568145496238965183479955866817770754072464683416034505188352291288382984446236718032173933195859450281931411475558815433183454184942516168449640611746780700338641260581493457466138832889881866395831190241285094264626190370972839194443355641286009422610938801988762876869907234708567855853681501076017675168369859020619041164129639054899722205265745769061059625644665495885286189066405417974142854812065305263369708969700187532442200974887497242597563188121567600393275786155826769071859161549087821217054977493532372944903863321938850720115486032079087380159892015855215822171604355230519834982742365039147768418126257656352153535277457592988276273935836720624794341794455285031230233660706721514902241708980564545693242410019702785881007749326604169756426888664941513998778476677171392845241068296414294573031212387160437803702388002687237192281152367128998428774479709716259506729668744900323893442110432240709921748291774769113018588208515546973656709915313839061261185326443952736858314008382354804057748712521880347998133825086116369901574639487201774222911334039445218306048710878759842591609888165707229070144492022376551122531055355097838555712369426925135638457392795844539570194864933107863771323110412275418930993689678679732833423195800923684385295735385384463360963738391291177838603696950737703300138342670667623667698118748385646839020676617795786478889889507945371393190548574804217317335045766385559517451731732765785700529036220717086970944086426969924756448341743010536636485981119572668249266166816554911181615117182221636905418993564329730486149657559021226325122206601149254566041918491379264397775874584898051019271521013508183871605904280498113623256203969760412199000475308411676009521607934166062995203170248793031364443018708376449526108147084416163944088737721158236499928936615709420350978012545047192949400002380068370666208596296042582357554193685387176569400429678706766581697409024249053169145601947888140493935550544093564021950710443018125950486262375425470296271899005293634185472122795450839849514752154432042370929819158865033640227744486158548469020655851200116329346829559238544188061468597671718642552910490052689517976544121998782090995408162355746163894026090739577845295927410131772573271559737106462565917071755526299953610860605816311141899314766959517732945526280323518831657477858790312581799190436183442006617512616679890247643208496568029569516599360828536512573462402928473138469424939851177004964186894884762655313460974661479480940020517937991301193662710271943552435594100298135682214584012963599784842481670810204237082406338377813459158635630143328249862431004401752071953946143890264205329675345877933177950066406338157393050074524158027208557477085549207629802703505633945664394792089378783953604160263585138154246483646164268202484811063453336094156829612784491094712448122817356313117418430511757615188671286176695023432574087391850459438478193302471355075413732879985440541312927280243710094525994697070823283839858096230927501317430941234347998468159061126814691403231574869519782648268578620882494834303722643988007557330843259286865066404495496470618469214070048922463669605208879612871372210271759724429247891593603090161423688064197801727295001720159713508183611760345944092788245415647317362784416521509136996762805907495992171722602445474475094380517580275156007729556030899432193835704046028367134938658319158344333465378038825836992544420974747877924315981849059005958265537215669320740883100190815600737387167670331661504241405382754006941786053932389382065440500426700717593714923227778454910062110095830340300384124268680147033510509097315534539900396499652064679393631186328474280062439514483610053085804945159411423109442847261722558754785131241068511151220983108026041643929141628229416304583363348763184519802548689503343881765844224434145360300033351532832324404395078037936254483920689792290176707826704949358703978039289261852017259374437075863166165735294549210379398603931068447175490219876103946509334418912270871318200851223175005783876672461919628020472330550510943290887685870473221066560434381772436351950079754638409217002589969039756302310482749870340852567123590011427341222699545860064992907584350606638908756566325586337334578589755501374888625178961322554207919701747235145449835170942942172650713151899518545825864621666961183425813999250987387746425835700232262553491370465482524300276005535535673345792192043856400785853680146843261611499997167959088313443523910640792337200540251936779622264041602603297574190263096895903952106633562764469507322875676744076537658206600629915299732205233206283157986449382278393114922140028766975902639170103802538507747614812006599714645362810148950138685189764496606119301577042799177654526448511719035216363559775754085814058314219183127626125720904329527504453852589349682410532017871319386587697089906411862120865635642947671964005097770180292258102693393163312569937311467952138947529976875149639412553144974609488199672131262786537268324805116235121222994051220755134966953559315627076725760797922126940596461656083399928343840755145951997378482302018364313332725354617477660324650355130873701710448385677030414946708966795579149172175261018215560637989963189885188806959480815153962399378922393738492842741078148332452175460755159934904824947413179844072077731380871839493332503685179244457755143743761370105159454803917226668825199012310300603597369132066138933743788190501066140990682128391440978590843401525953256234912503718761847153839776723310287137754960974743572813032780922051708359196436946173688212417906480914589743586037226593689124675727060401726458379158640999327769457643381607964463998591310282725606261914611078787848666508472171011001005081193846217676285149876321440861402619233137558466503445921801740502233772683816140508311770095910313090983557499545058439153471242783145099729116909944450972288284759135231543318341008956639429852858691354727966363156927127917383826062421148799548548078684069055175390584671243613041722094730600187782965089490593148220830015141805212296782074344050580472533617206889013675904536900184689427085837857040475907998179867835946640402810812983958301580527852419928153274269854751719925740964205346707749834595409340123886260897581665974870511759084803091506303929300958053114385284087387521343420331828484674518330491390469701342766191108634303451194199344079610852639272401440366932446612887309015206106248962924693170415893738019918764727111715132684121119038476889419689592889867521603468062484182823029310506149977119572989437707846994904988268761715921515458626156384637733035998485393593734000003581515425680181992001906913165949073018395855790159125851757440263392776045513191965388942044139076194053133553997098356967327231664550175203191502623267284198277226773321900389907997313255349794701243001974543132283857701784253138282118922464203247529567689324577532939311252455725247573861062695179503123140329377540433627773431485685136599216975141649981369919530040069998378637606252576729178906003277870578198505720175452636913717197283215172759850417519564945404876397034746191624988011816578382129695178463507856746965097937595346600391814129396732383058075571564008634058403419874286070355074290571377318254646729865676958680199178057086393095837970042128151012950466918946176640120311666154090195053104470425127762801014163380326669114415523637820874694522926344531558180594308345106116222719818737353402198327655169600081511448707190019393940210037046358583883128181362382102806940283481843859108714599993733350634224743934672683977068979454767604425524441534143639500986215157567914001411475687333814702694391566863549809144507172827830378298359701984638825290531131981950181303738833267800819179865958118409393547307410410344183613248730655748121261825924105857617053488225817734831930326400894754805155420354489200378351556889548627196182257978244242812093503858936952268722511617079281132664731095245513012294122483398112161721810025517046446504116376765974651274206134540610483681458621760177005913607898336944061870343208377490076188622428287255324028000890707246326920336722354683269510280217207001397241075284580761892078102380606359592335081645956229432881598150604366042654407279416384469076312903214385383619329228001619557688357042172780404516812335842289624555993416876034486544707580898679986515624011479480898123167060686105944035054443416624991925611193075280874482020695243323435643421860689571686415171168496532941326372629263377689050753605052301574218650337881572896288390591527531735967854613801921024412251786303960954313536750841546479671305049561771361844314807256417663805134195857361883764123078316796351229365429931119194506082186024140400331017317289131769699176351967438982275221031043484388228908301554382941122047003667499106496364330014066985351856374137870289423368122323940284113971811887895337127312898724908655351697448826947888496224857037637107784419755702531707074999447900646535672417279405907829990816577440986459423014404732339215502369609706494111428403004412475121681375053683960619892596732419596768400218995011665135443368576563594389947692657201622156886407574485670590289222102693584598906322489946313243370559680201298037436052315577218130451282424011608524016444013854343512278113133163072607450058369978107147099371639573433640655923770524160842239399153244313128068729565096851891333685278021034177545881014226739268769368370756459847835072948272588627952063647371927968084592777434323095327765762060639848977060797778789203606621626408318358821520158389420223294383168942363998384166710581701131121828821138089301221158238291602273772766719555426328600618766931084282793510994013423044095724023964975427548006756189423118887149830951784725136818625091758894056959397759036839840636449845915890861730082506910481175811794176439595838908588762851686931906184189297742115135660434204569796475784259004757933247174671988525245295460773772968925323248293575326496070582019060933641880956181875877089119111882144542010176720265433719959759599888294522944145875478972336769606935460178484872342846418539528626183048040993440274400228763062584833315527127996677801256209267842290684542556549918550505221237414899635427778784469553872517835565220571218410727859285057816097653584391720616351422038131049171589706192490287095232187631595104238549350078760758570400399214921966055790483319642600410377947694258220344460332935017284540973461514621282434079052625985348396023566269244250270606446478493899769282298705565202489048015626964696407124436183661517407149701993355376503501508160560638780633451576082975904065460029933030233476459903203750166556740466555789469286730537110008926013264971838706197441570258382210174661480873219670382237632201740308227778666337975206167665109415168717617191921051741004918310814697133829215722852503762511904909648443552988983867622010426785747895996456513438968449228941533352528060796881290934988277597063435037997588254477005792593749318413246059038484846236738180605520543295449488704909355917309478060069660780089337083697069386787283529288195128375270026058668313722847824930864389323524157240007946071318515361228146263034825635543807209703454904297939504553914218718026341833924670064080852937552620043508121681753781078990429666349019850655201815580743074352282256334290461500145594116187657668996669155162745124329856900708357116100831241998318683917869564767674757013751209940491383563959623167174273202834269474091203616276945729250524573506916059288413764268615100607917620784212524865407774644592562697769971927155166148546851910045332882230510509763382562474488082644104174192395624782678807379514509531731734360188127494799479455923854169579835963111444891959445302296072252024187693072248124655820612201157154473782905309481409688990405431295018292258026366668599551225172594185719735226412138190733968784984807634003482158304762577084382283685100211422552482600427218988580170530611530211217866135483465193284294633357634024745698963633787954058081208698472252040606261239549531709801639900756745966506056334715901580977239928058788884620423751093145005849788974806768174210320145004697317636981681760154232191392580708572253021128703439635315743954074957389748114800902037337453440625478931691097077758644803360553059604397129430781927987187672080690796688732659189464034406730627494752862000000572029694647874394340256382710251275990877899064544283556665936915423253119959334963357043461609359129895604586026341938275601075567585790992813102028603720703591470784610344352040192448519168659199329400960418043885059105497375358288314194357696405923830587578149035946279445185527970086421570614023216044917529587111948207745835695759035784742138159989849281793943529704993056470235774967742267017630086660315076241887879015434830679914329735873244599826786564244267642218811646210995348614860831997836448664030532733774184126813040263582902087228428548505453994986105267965738012012983066501120601531499330218633962633201260347775053502038906291119106372055745703469193620754402141265578672181008540198970190266651777067403424136040821028993241465550371483519298939406397186228000982416206032032561994743435392310139111809864623749949192486157552686805393610279549115747296727115329904501740536771216912601274206205635654368416899078484553225255995493764149588889006866577617062208796897204118977050629409366121565460909008312325624887568663804414120308531020068017067545777625978739694024488921254503095676652524099292883347887417290879200642925327932394176857133963616545325839001990571229349245907232717574369174824300143000990112851208257793051030452753326785843957329750754732865383038016154508412880636861434538766868276740965581246859243565287527154415052641353557423641546641680042627051541277958247807881947931500787106663342431709396439235036351669903958898404025322220287090645669750505896563785712822039787752924800731354814514655603893026941933406776832342717245795493561436209489655201116635571259288120749829480055123181738801258213551581135448490340591399146984849670254374756741415108229196080575008400307961404553789225171888779460427201463191387712934322067098894411661303907537460620157049905075666204291421480907680789162873165211787213641454390269403125777516637245556822375856877842071465088666194349177761629534170743540627393295104351338680308152639511168749904246394161996131935624218619005225877833968837607914430617020062272078216691600345000813788496113393788815064283589368205887428815137561924273094191202786575966289516285996457695823710858578295474237265418516539653080782772825212579728033883266433088194760972787853823642934660993923034422913752807131925043694576527209569113880829963779955990327677786521954477435297211806091600068188446239283789558937676797887519580271367674855992948548678223889323988542088661489068127324787150970779750035865236833923430506279154669154598076038021610023345812190692849762451758724332776500070635840891442913891252486890191084403572792775217718598953659367831254093001460601258937395239882829589712436154188071909023190795437121972121517326030135448019542702635293722214118386915652486019703237026443522172039664261206061811749235896152751187361054732240684781861664302521104344531733977083283542709167776380728742144344191636881730640161223019486087347720910798898284197403255919512705024749824520816207033307426315083325457655745326421915013976006675976208203845002151572527706611514005316991264267531122573596332006707655414032567075944682869725402404590006964038666980374354984535876867640931341556106549142390845699768778350479308426525559803462309564523199646133764880337208071354737954969960956466851069852729293881516871452033038404513518685635506726546377360360966502878063779068060948795565959530288449946065968927439453990697358688731413934830224016848424354687659514872899903839279778973261607664184151256571041267437580795642179371788929654117012001126943337176655572320002239440298409399270100208885473218822929096212805948270808170816494488170541360183791617722806403477530619651140795189831144144455633012629480137289222622846941234924653791360874210647298881002200004176154075255235938813645164765114169677873427995695575668477490308452755246779742707226030215308826190887283991015448136865889327347837241856463297500319227228271084822814690977582877282613609176390189743486678393320941381361950801712997946873145033187280859541761870282514606888867385425221448325866384736070099428441639246060702943659128101862509252702647009772759739666201441053514252525847202825993085183554774793045328864631587632950771155298448648912680325461334166964953298757769084122929564969700694847849613676389718736054447977645832504943862206894132992695162809971329165979814012307293788590488921706838987266101465780730406040333252859765645322392836086681579231785283109081646954522037956544650625598783542138621878478207290259817623022119478615080789703989300450892862376388327075980705465358588466072464614499848160543653047610343159359075420087889567285872922951553336410129731123412126113078864625414073568603571916310694744940708678591478294601355784803333171385190521501746390310543238126280774557060284137773283050505918005620559337741841226134995798945750112539022146258373422475839539075910529761230804261666472829464246210189861366862045119763922438965558195768446912698631691853196588367869911673900593335292227383062964764163543415759430335279938288379701953880532078085014594440167131672351181404736468499335782115601559410143702443010897562879261279767855995730996825768542972501896595270077617247685913045411089598293305738009007648974274570231159292034053537878100632976079896275439329844505669372243596188743016227062918323047873177738674963510382433571487851806844704702013833968610945186286356427195226813922895720799824193597380345141080171276878961011768009575829089988537822254650069630161141794978915610342017781014731680939810988696504111050258732306745670016804953847154664777459291717585114174348183998311005110014127227146011903644283534669021765076057002024135357202353572924910593258804216573155733142645258509876994401719491827254330103220283347802261228538072517304953138233846075646943865381704800330183271892531089292128280107368578914487436590699824822867531085570532083686827517099600335725521362247803621034180920730673190020663098128568963927141990490192517288681040715887907304140588484712277353037528240012525404802016878674063208501178241884821763329070081024397925116101724281773226998082176839638905559104565993435620322536228622201228533929300493361990498307449808911123750603210011751058338044002705170463460593980941269438185566065482390367491866730374777253124745055152963410950114152237650565008031284723452419842107875617327462184057766193042562687959779063288629214114435375764285262957702946681083502150925306839859919549334343163687805114208009786025339485908255205967438593918783833637152023810985425691444402494095068409600373286694301502862583625867184256761122680104445868894113850141515325628815671157533974488091824990988433612340521391691781288437954119726243962772951967227993311142591624826440011200883458741069660273198441842057145346437717336253099266500913390216811335052591305216438155900454265634594554384988203877684987342205926562146635163546442454073428808997629659970156239323994650056961987578320619614367545116070737760801903577512245140397009440085309427655512412737105036376748818732364376192837942769350879475313271722364507669487690247857018179637084584252224961173706830292263506625923881871185982885425855519983601173924439961711443859112524556719545540976839253132794865242319924988099073600130464287236142339293432683273992358801415044498525610592677178098745123916975157841352911520088028797733202945496746410235604114940843989564429957046470568054548245224619812632581415327193074867709103686353358547029065528330686407567160624775766257849976040939084626968139764496547244222605121586332057464593358211135121394899016394730479000141199123362301303533993925247742709524788831105600005349553515406187348450725994920079019372067569896487938123262020349072955512157117804900394995603825062273722654576694491364758674536585896220694965485122694316488309904047089907605672820266868353864504629036064056625867197626239139265281725781202190072982189268067777006644249935142434575898290606121693675609748407101219042448132115321787032932053321125894178683466072466925303215541626139161712539536914907958920073467620057874053489805789406252071594387894746180011747399865556949589062504634910683198160431161504719715652976791184715558442981573943237901324777771601089447382750950906440675291654911401799795157074769455547718614659073220806309562228765158513102973746074356471901380534239337110775187299515410729994166231455836050347902806369969671894378670010741395546618342951291964953185892458835622435854472608276507806184343699649641358769707106390442810901440776153234568373376244742804059200618677818320484573514307304153899954789496558764325224526093247421945812801123995588729797909536562267995504224488321093328484362853266448200318040243264721844710151764675062566626238743579246854604936463723675398459511583010296894411275650243674492400041821711459808882234591328667827106665764360084254297696937879968495856036716643079755158077714945060489789740842630745389183517859137084637335019310756285740661657391808282856362484443825971958406508054808746099667961804699694475828660979823073613120319378301603423036576149803981724706505365799546929048131168122538483037234763912631870515444185454403577293228969155824879635298313011321154173157916668506139585782988588521999401680826052932885567713880489649838864528512144404383732614038170756883577420895254116160415924302993214812094427005508477302915918930214719444637364817171787198963379854267152088461306625965184753972871239913888217123816925529331348288151595162843895715904849755234023694527344645944215882427370880939586676916456087775312787703913506168914816221903836015667265797110619225610008954824744341769706305474002678769669900623995388186843915646255167343606321037357203986604291174174081952502556263546171288115237346193446345877116115027292094867577572846428575238081768134185574744974772262430660968813977031075953466915497350990634557168670580954061414936173295701822625758316090413558349233421289598545906475145270997753837767527208198120931599602337796435764213555416764837245175200006590953939680068807720376053490777149347969350557865540843468910007155467433894736737295739236686527969703962180695249262325341317640988627467253223151429795636996997525500185851614676803311746792758786199749013220749512914220611424407143573932442790756844550647381126858779017311880533641008859144694341913398387625134070024725069051629624053413286723021824882838559251797646639112224433418999781317739710463501337957446360212273409424374131876481718973879307150857698458674531526161786626434356890601464279068666187905659708021191665796437704661141042080140686289881191060745622766525798183954196555265560282164598057561605322731494565208916785384527400571409497619793451248981577651118900655295962570170709398779074874221334127068372731373500547275110760312629816579320593589588889362229649125180391925615068759066107539281560163349202984811472944454619034134302441171947623143676327982575718560588430535566757216281517109517473590818129017970671628427389790931196012638416999592780544091974704699581185487278870235984495557488962737537472526681498462173185055928194052880498783480561693930103658524913215994831618397073714295859373478315259425478424078124170278929422125748945381371202442058038318114954080853758506029661963206127860915507568344022242724825221656900833683564119661795991736882693571990221982790735034814110493377987579128415572175118463323574800951239280543676331763034250367968273710445728535157066465292418502460641839527404177011045855128292726834287079304068989301911948373654930457851622073869141284682258832571035645621067098399438704837066122040144307571272134758075387480577821597092946211770105687365385481652789629435288225793077628301700592918131944761844341517207740631560371899239297734593452874477194182855244410340318474003417868872874262502416173657310134025977195916395381769580950224567558967241813359260892924697767883467563706754546669028375904986154882867324689239510177561902231533154764752356544606355381488628873348598553368881011786983334020210816866554517544549848566028503750757841529320737578787932319790769197967558996794776808977256372298731110154777215602125551193460702955849995537595383412886638616508043690460747520554204725094685363918316948301758518669069655525950010904671836491243301270799116040824748873545143359747466012856745934684459231877046809303195750626493360052326377352704316310136164564370725569484384625393827193165750161370571848531171503809191004700170173239766727458606163582360791289845100497482446826361709220425401451014629851266994680720966324317100830345082557441755549414220889085026394432080748839882127798333471488830333488443001116057257962487547332773354045344211996937272124332178245295049021265006349348729293670126331321841101201400244109151073017295377614652388760921905752906326664546740331057270627975943743539570724568552351888313987580289864322919034325890248039370166422120990560252694890608947651441824443992361872695995555650983595917126680700636407957094414242679746917396621439082381939436772584239178758886392529373581145220679394120250330564466341610321049643656976691473941309716834340519746734428036995132521269759647220563828268347184679908349616039096161417289542447645993091312176480246611539302650721810173227376136267233247140778274210782968445027953568169168596706213515418084925612602129769393601847789151013360835255955103757905299911357139672005731517456106728142393051493115452637463019832124046711583225231930334976444291632656235486451966330975468136447896572881952333549773565483907371556524340173661273932764104271195467529740878511008748924785929236707781567742359391791688034846068781375704474289369388889889266231186488690522714183044147580610799755117665574954065797160478010930355388471488508365192949773700624630736294205981924101769910634907226608927292669268210734021007509542842474890505382440949660407914851831229732445803825396604478228067017769528173472804428733716785670422682041811369364316502998540576944777183315385086395275137872480843394374424763926601957993258749324912185224907976286119689930173592268846311966675877089371588097533717168867852137166121969381443231056956222533597259872537474233762809437536114024094505309659149035320978195954746409393864352678018369207413443861688701387217612151659230691764293549225016313233214221911409301806195307871969934373166727020982733598368313718507016217645139480775832013691557492621010873957063881262425232873916822759751766280606960880764803040075063384474323086391145510165675888957167618738907142442111588339557526034759344210070121610948152801698279542536885578354228102881370240715337879496403536647304403964840015866955986013993821405215929219868320696178073263370789608640761139660944262621969964798063213929987949396029730692352282099605521209251853098044370475289007406482694221688843202747909338036591778903857370836522053306670806620174755241770643062585460287278709642773117869274021094090023678904130025591246598608342014502394864989134474956339451615909310082366995881664305030603122683016659846396102872124772714306792003787106524465109451288615254158683149153595033726500150147225799011410459309822582655465023071708782909421281059933170251521593411571421308962645088951259443577103289599641980464698170954729107377169607908050843677259356412453713323884383122369106473026248198351141766646189819508784468751358577140902086286251986957865538943630382199674771455016557897226403876332662341234673775400951603195822047492444613342707355910363856461827018369719444130220871287123371349171366588477726246071647106402738237362115029271821326478313242387805488276128926445063831463404324015104326414850086940201093840831915768866587804750994879263532691419934709110977890294749439236348979773941229340189479981703129692510578318292392691950866034137445127842731411766417220272685925095379344151581096469832703389270554226473342990803478246479509118710557054423311749020806911646203786711674378004451382067418029494965848346267239926876945024344752715290915541859066562537919223800870273710585696308907105597820267032541210642781819358791700765085024525894262351413978813655786532902027585072848479360957801584899563481859954312097616307407631604738009858030260481858793042447739099739661599873903393220911993337844566912875751279519120937546259577810201832667348739974256563077367593396595335360905962639816215582818808291045939738810250968481195750739392730188564382367345188432459643198810280736387997565029487749252459786847742178904795062590421654441097283504743526656213778554508253398706736511657548057749374212064255364694328691303009986959820130406535364654797719153657649985433290285992969145325715799566410930589080140167144045502030819222356827493956220476691302605902039361667017080826045320140983293938156442664079861598284179255976741556269178728055015222069386382841276980590853483725918288737679071515518151356886956919840154794473303663091280462889023999338552172651714282854628774938630841125437109468736929753890905781754191472224364645165689054898757958897736751309566283853226615988154771134067194075465810674054025675602794018720619098408934993037645353469933087774675568853175993378321343222833344721993635845589806470633111744806748966814342832708704208589507266165523409045284990108832199777880042032803163877664693836714165975081402441884026686647190961915736703916798131902405317980451311225741034877950438376640796707190888916585268725402356506367805756849216295908314035662785344326066750015188624433802588238349734275627790184086755361217007274673659907944111525947175680770545904267539017391289160565355726075922069825807668505307198864287531699242535780569335643612812652612711210669101687816793064888275682173312252865493924209070114978556557953143963107260841220217565395063189428024291720793860717321625271095082313349576143400401033413525981254866010469788016663225462046798454160617409878353043002285397692066815373813249686080137736852965455694075369793948041134871613883904599213859148163224983585887389383391169729834353194061842703700198452343680430008672604470289155775008976288337261926754310935039347998840118802680755806588239054488696837641361165764771420726813653692528630319404567314526122579755600424417123467733922468397374806946666188473807584592367097010035563922110079909676028749306792445018008272610342479870227100520517554088210211900529787781587594753815258084340463392943630007892419151429404544637341664547788954662798853585460942070141094955643136987867045491293616416779505993385245337826216450992685077732697100119417171337595572021221867641516640005160684395694731394333920884716645658605829695947974417194087642886045550582822115836258515501573518120809455147831121634443613003814672213477681075000580699909185283517579431928550606012536080636997407222116997707561206723651515435488513585267563864692281245055520422161239331228007369854369425075778275037145031373979144219489664745593526731571816946535808222480475668074977943685316617381094549780867691578528606167878544690260842421855265185729040108482289666481274370845006834964116707964193586270094149417777806493131388579233460431591844582414123419839730295662228483270917614242843600498933579463178570764628016593833898288811316399390582949349923859012761478405670568785241993039695828288957771464616172823185323370382362995872243156288571517635021539147668917854070169460937924197106051758021506190972028494370470859305553582892770168859982778677433477493230336728842179037070076037528825169934021591716379727784684984268016696993260098455151579120281371025928789076668124479688767426936745984733829315770270431260995037725129434787338182975492392786888966222355118508299206087615143223728710879133491446250984991829217106905108595814886155258066459431142679163776268049783888727530655102174256005316749900835345494660997556020344912111177728736181437256206839109283055848326494943862448315200818447641092030155854410096234108360601160407450402005393440338664446939940119949285141806909614183850436373604103357105114140942871456915361902004587721789269964538259207276353297499458010253888266830855670640193768241556158347362545257182905477487246150448928412580913462706944396029988105873991547501389338734241207534364788336000688913304589455490158531438059487143477540436871165119922365400325561972049857236350593928878824201018976530944947964432543948447609608045804748480548151739713196022537005043768841727818263127851075951330183424649838315961616670068565556578710456956298231377950969692873586611908280402751082158144804705278684982211371336870718311296460114716679088452726246629851017735498473271385941014482359697848987417863309326569381621861770373200598607523883738217614293330109202750613820371139458623652852281899632228861566987400781630202707969330799074426622312237225962406875025550797934693604468971384745483693457367206839223503502458739728119442533025319607428356096720524692319386592043756434344743660459827326742915697072067166755346373512254600457287959063331286256964425557970899829774163851287045297709716871350059345281827833250481395575594422219464683590563150175878685822173853558870115150057026322398392895321788090928051654079230864966583404113490678975274393300584586855240578229683468603753696227030408861355927331213054039038806115180046387028478789069702462766543430042857318674183413909204911134409310806963589972216156358749841503091480622339065459332871657301407346716475821686210696999481025255412350856467554704041757111001662572208149421568336897561907199370458478582807024891999724585964664959485087052468691191323918611692868791000829796415644082970363886854715068870836050638348029180523316294631586496530279596301844601426940263635305136666625959203032759509152769447237647456036242489949519022804190628535051384835072941802016018083968317263238570367922599764348095783428896878900405278791779354269756870749979493886235513209026084313309279611284550550375076305006131330297480444973805710689213208769012947818232289528024961302671252437302975540942369564998969220982020784213065780735202866739504445285235917802504830968708753273988316686730527133456855074554496927916283574896421911106283829739394724450798934613605733425939641997819076521699065847074086983965681580757311128217660192623299311256096174975148325877845176008650102591980537375048590306432744056957147956235688766611974539299158620723759092513562345932633601501980822379987221165883949389029436053163575289835062377662278146475644577268276585370804710728160651502206867612571457124318011622704866631229625877407915710519618564096197087081107337373712135572693938065859677538965158500458405834815543967610549503793663425781310743742218471829857432870193898070655689530755305684519435784596834392066870264427636220019423993165616517425364166334734108278789685788534929383371881573264751798113387564773138448721897979337987604552860432676981878614316274695739037436149206140013273397933338624769765866927890642163251373238808666284426637840216016286628811124565926600947924136193449053757403329795767964841592793004273238985673350914145665684225196314087391415653966724800865266571464201293908361808942449878012208121683573069240096005519874206367909178915172642178908928065900866494518275413539129163334979544590670520247016679809609757642888814167498477726428349487392537481299811901875939887243274896595576686357491578834604503294863859937813394392402011309391102191251686047845744235442519834187582163270426912655301724450580203648920828213338158155094655470324441399826616891122666136033039223989273532176384367541830736234852686598321062381070002058960454870090695177177069605335834010270809651492775230787986414804918144733441953792574888801056187547166816195100396041875343223783195379213359201644547286705510431828669528804145328816572018483347825278388913150689002101554389606232851034777812631278164692190292597631891631350909657568747986766578996976168224334543435262716538871133504831552390963230549822244306188838836809324894007322247164031461930790626241741256274392330375561715965830528746919205717308781826802890975596071973718949190929363411776847824940617464817679281997319770985050065854883556607573741626000596372548034513195851757407742722368643119369647150190686019648513564061883294943698050911738054160864471432047006442744135178346075662148029806565595937966842335498364660871969461283755234788326744683867783242302253157316327307416451124855686281511977838046674577614909205387395163354715763995958520623572086702675669639134711330577966339650567843138405423076685573395939484599897282674761533853052829234202555141464089925232188164797837716370669598265376137642009214519299222103035569430123282486557768334006247057280586873399720010404238949646581669887583688739101194783449104443593999865116807292405955930655280525689438653569259515631313787082236934494769251669940435362348450201715409123517036356287947506618833423052452060815789115779561484521097343746224166639770987436177513103248343070069257192433950418499514915481863785707805391663734205198087459648931380827590584277464936987959671250040903208133480034111362585709882431861508047622084632680228502629293575582056601267245591666086154401578381347581355551800395903058584594708987792346130653175723772378126730764920550666285867638009234143447284738365836499807369454419855967602883238085522513685991383738056880964726592372067811481049383722457899388438572769782166032698511634841643972567809742575718707332437561301720366658470853654151935118939624681315832765053230075774762412498434318489681157389792334204707101715612873470167237146038220954553347911366273634923903406465464072200710282703201033603102613486573367181630163592675368789851678939740604384478038342455428051380161758793381651776369259884400590208184589179973962172301819803759717964062711696968642626710460456993997901905023869231692019616337949837438052231741064640962122017052352481561039862092170821855285974325638912115701893825401269630678575963918252275544483957340231027405398054873453591909285426792187793682128716627700710057200406354006463354337349257752297234249171912274851452758859135613429184568914456557421832870752607557607181748966923537788280568579878851291634515556482186768477882844286154341432139137561461148346137048690217341471424700122906703733833760626897183166136766935897476833738888407774728267289920063713352833846283664883293718966335944571761011933080289696018613542571758602870692625100934787629828726430217526528281057126222020501533799366808912777557367033579713202740310257130124071989412401299839419537325676733144875661649056584189338700666396397988402700144154518504499336782048880634804545522026322386405377356573732900727767900507155899886308535738377317632573739590029746041596750037287960133198244550525659065573899214911801882576657331317385807689612875314317667688640069726381841346032445787016029386258273157430304894963665970509680144757917394882770720866925972969840883222387860085749845731076268704001809516580205172953555744361167070723115428613901934563324000055946378926212264210342483473544339667832035260888484317675351673734065342841472166629117288162968417875109570667793888964243987905811012164874346399301426529792460021723902146924864041269570915442227713478353342370903891385014357631816938599317769900427886514889850614270356688009882017948471586816179608828622030399223210439899614031828961108692812035034061861697690321051040472616920154768617325581055493009209494302184073305945963661091527922562325676423563895372683775314392116489412864087315459807532561990583684603448756226644241816092191198069686415934810115148667859349102598797898337139683920041517835397852715892762697814532336833878358858231884144492922920965386451536476399574823432152507773861474668769172145461666681271070938559371225192320880902643700833780216121607147221457012056576363064531466727301537109050638069398998374628562171190510644006077310413600342151018842257622413610288599373950617985100924209856433698322632776566835343531684566036599322486558229005471160431354876318610218978373358488011636922424045690900052228645239964848725557960277733010910968301059802738282813081464742137880441253361675214070292575394307332755848324893142302366487381581925127341032911261774806700374419775338888170052227046638798744995902644969889280398800627793874180058060906175122317923931173175121973334832309636578714507482457380804552334908312131928195041906855001210286644397338939874177952987015222494651501494932073111594780204132956615488649204313188059429396821954261427746889768367209139344648975316047981153783751976890829322663521810745104641906643297677239555843946927035894358709508064075144317800848458510296470311398923251056201848255522732516195474270366429755323305677984026148276549800243207851850095980546943529497152906625012247770130883347708287563219651566393161116842046867625150571156160098656393479688544086838984658326513065175824297590216054294644842662186440730893008438083915724733998150255415689740509628060192827075879897506689774799509102030587294962372738545588654641215004908931205147630195493086639442868380917514666625651561920817447338128945881775906286143351986799569954827536705075996384268424114749227988123580117300797862567264360958203704506713293834036507771978279735047128815009336027026176685745772912421710350035014552490380551340487115190105482776134289561105690319021999666573378979771194675132832716074977272797955249650714053993513722802502679714303390400711605565744422618735099637974132711172568005780332972205936742341658980862551569869433586781018801372866077334914614977709980033186341626771226475206612649712876677664862484106652712340956396045408961413570852627495008756610999918915291487952654910185990389383642109505525340495923400638929676283046844607818133282389941151355705011741166299928808055186042101734951555839995959571930818275597256205040326252147628858358770110550295162257722838548653441550233026646886527018649926986646934879570894352069225717210501836954881162472585754634473142958612499045159503361888405591514543873480182825153804835676501815987175664782595756423555666537109737694414298549027414713192113721258664008386278689523475901983687252953815886215217492913492624120553548356680278330657315448298522513766939519503000041930671374280536258639406997212158721928529495755576217412947106004071486131475194441584640190385427290128323719246676244956738145192294454413699677492457818980520641079985857692888596041348860594036476816003012605319908419757338677213209825014450227014578905591631222811427149426516909574080912113554670444744423116664923894424960512255953139129467948741234897258916766799082222082526318227183153935972910769047023894628719774618795606501378616148508727597768261085193502062403203974255116166867350493034029517581321697998465716377443879748818422410725801274776892790768138304594767144217009328269392383844877377119926833395692098864488242895870476849155242253206123921660254162047904207293664879712802662936488551022880176896987087809894635494475032098477297694566700052197580813200937790142046474821496949331323576775219381823682238184587982861884176413769123871325802835662704270451221863388742139408023665413861152429883603058959912140063921916834305566489643427348486195350628768627480777511340948473277075909520029330018323165832021463041186618991488363111835757506124431331745191639839283809414514346949640815692739265614563393863605476265159280474995459489045645638078221636699486402084294352143187419274072585792480191840748032031661161626775537866433129401507375893828994276943376098888634267499565271339530970760168560615195532671721882940729888221851851306756285194687366372724415363345004504258522858138600784615043454661201261224982451158831819276640588298207500137452729752926184249335977275857475414511323327375059197622663728410793394060005987335928304039169624876163696891886245379516322140123980548228910670859081060903922816477348225257682031041779663648290248116867764557217418834486622048214859356212604614871688314166141950774933645014581837241920624262948808372215719133232437541950231447157617248694007750361136844127067788328927574762259328931271125928665329852601887217568517849497601017721374715960933389434252520971263939136583538829670116109722109845767502506168164297854344361771644496430151591785994273133450990440448840674965968154426414524524329090200075683829424829397379839826850702984289402325498638412402902725053866574923102434351561846409440249994524684121667916854562018270229194013837609808826236475303514197734903410799555549593622753470288320778128880223717802312426930724985742602675572194002535312080735306229492493088225649775978039755693356300700080456339947514936918917906621868145801303031492076536948964783501542327583599947462505217733352596485477115358560292142736108060063763537940956672923779465456660049304045847550228498978504705133737077482726855050286993990553303618219272975050318236999525174866583300486033628127903117083738090745222002626353599534907343568024601173784992630370538610342329040347005727882580846844062385586021630824043004588211770015702623519191703581666449251209155109138761456201152480094507005865701679059576143869000670232399192231479538401888477593284698853769778907870327511676384229717476125406286596067651076818725101076114367012774138532963297991410648682418842445284848369564860862174564866565097459387263044437275763516850783920250873964141502352907967518236189725995464190344996571594547551199688497978393062878168783246298390709219012664610057761959628271003673488775932783800351083146048242309483864005802398272165927080259230612723290599587492410496186322928399571027875645507572764442599072167200368011009488282843098333049375299526292098019215790658942875903161224145103999641367372711407512050748654485863902801136919054547044323819669571438809861384427818365430638207159570551657592565634061822479145478225736406965803650864219306797485618194263746855148684567173516636986236159291102757856383513658116599487392751640192987606555729743642360630161106379702563857417585817720566535750187802079050239770042450001151573307166527255230737949745527852626708401168055445791216468353898075831737647880485639907335996775013690197683502970062005718902942056468512382663102073498203464288415903188810533595983602165882012987987370707897758511736308111405212525759445558668015149929860579953754713318006461999712785713444011391416257345553992182806925228944446814609850530177304759058331958182703062504832843385961237553080783696181090622497679587353776300190706495408681575100008609341552565818176758132617309277899348230869758429794462833903316458719698737520821074531038872366051255602493033705327590689258346658110317432510686529939161013374248421945659674700166761150516493755262063874014160264876355400482400698834585050195280635577397385764973834051123768524288064420341288609112943728010267378404414845656966101318218673046247010994644707124185373004671070229351212803158693431523475820979049250100450961029895920585910600860620179909974356355727825805644534244484103478023974367032928357692611435766116013411878181834381459112679825320058686571739768934616154311730895673720407508251932700521525097788152259391455964198063951910867615697264070746218848249191432327184556314360766654851419351952095594380086609535063846698936109741700623082735169747435995118326432477503047145253963334355555990375488741380690581908916454703776641598479880020658742541938237531963311899724705529634597591177550456994392435079629696176414871967095233916944740827661558316343269903198601433589334508292527725393873099812497452687234329710915681892644240217365281641011131234233849834076817345628603655622410900551827691575367513022270923038032094968529320128252304014854471523013865315061483755436797478908677024004300033974041672681726900250325126296160733082386106531637191775462476242031985900985970185061621700939366554568138868217407068899804529482016524187376277408059792112595021295124069661666728126210968267301131145577803428678606786408726086632397582193340421211485735172161460385469265248816172236994658405035591888288212673608861758260606859549532515293305204258206246088100077698590510705006597335333977769035092545400939881952625322166480593212634527954357727615241356947195002615717697294294163178357790726014291862113977297429551084453114024627372138796196021447976078620081585317975813108789634275958173690807491334137680471584883716087923616073166186551321980471123521668485822970592556436909814431012838141811306664885977420990509908698060998971580192774727064907441629413840700460563887188720842824707764100523316528398065306972891717732275230244610698908691991113865046915385783236345794559775165302960974673081201929612421067795853461856467859931405462449981560228381477526349026020235334156831388182201316249489725703607913386960730728552905259361133567369233804992641861974052385552865575080079139676235094798670332540997794330662193594566877807395617955318052614160935500213517987807000527638800259722813624833200870283234866715399683145673805337230036446244911717831008988172243502272409052439410070359571175139480768773775879604844090886255713617772825790312362341272768578468250294175857711715889387473420735928007865233934522801308616469632272507632295991018817459408001026633369416788503807594463586960221168673410061308099386750567991192332841893621627214796313910179479542224529262387285363027773074986919097325701754943842780097118213876071010382850238311149554928410289145087021888175230931007414474981352335472794590462212914866326365578474772958381312781529959777131155119274923224948131795568793728811819809552934722089599313243763868835498056602989967480489485651290603442975849946820058435138516918375105655828190881689598252370796492243366115679397890066168665933919554513433658981192482725944035401964720139830171779144831363689752088878922753339268004748363639242778387056003864828977453920135836765549737990462204306375144821386886831017800001881968681176963274261358499659637810773067063548188674213028994659480761571681704873186623418826347419714717178506043720408003585350859925691906517285899438709311255694142716280728414585333668724924677942359120002090609937161027199472496776721421794902164924841776850349405921738628463394408199701759599216341409852235841516054570415046672578737931586294018393026501427031250575777901220667759470850030697567368439080081706270093483041747997261674622543106494741948217864093545223908827552778547214980473090648021807823960031520316037408071637356463509944754762706533698693986903564492192794287645444668308928474182184347133824667380096214028555766106583291147697690519545713021433466818726269580226146428371670818720624609399621132184968962502579878581295208377824354055299707063954084133321306323150126816789348514929899872276888500174998388899031107684059055846279695109392332815837728479608404571348207448731887024162509389937932481929861535995344614576194994645817924559642936746407402699532061549798369731015532852607186264720822591372453920180423278979969182275814369079253127600948820105315869262474458397878104723316741444799171541732554678421896862775752949074283724770884775292679862640672056391528731219149308236173276260673337202022829535937727738847879813990521350017926078460684567452638926643852848011209902220404618585472829832892053020903929853987710365585486603907095318618114841520224245689186953192017408107660472349074497515855632951946961003053510720852406648405808435429406516103732134195736753588413583170181747565358852472865255120127314620331164363123694017348637526867507811807501455069753321684988080380067429185691303093450429139353060084752774247024091226103627377719060245697866583320906542473287645377330548673297126308544402548587526135176018847870679967257112472706040514220252450317548321359356692461614457550746364863077530541214440301867043511568388474626086010456359348298167677343866205344258111451239827254836666136994446761107243619226757168815430767489195596780300281725984802026310371375311401402134548926396782712635376353419911520888879483853521140779470490033359294517857114211273964616349943716967031222223551627129344709396005980058780349397835152610993656508422636014497252012407806105241185678388862599714263065800864503483875201607709091505684167279511129507567341089393454922083509695972075750998446640793106628963122771416035470011739392211448635046752132899656436375233255576783881523620281903842331398378371087372551757287034524792745586308732984313173222342297478442610830508039068668831924609062604939218664051291166683823246780231973579258707609948976292573502019720745296390330000292479033068635715327115032048084625462796471335891337825762532124226959884512972844728370540753772737663585249405896679674239839262772721551422007854096695634126601977385782948843642117168181028299000075088029226449001632173681509203161018885550992877723881789560256415760895293294297462084811322323903853696217266968168878697129251556370197740645764695432197561682353699908995693849139293983656460044809890499549497686466779302280379679686066666414304347679105592873619496637266238790330258641731471607231187257448285434811819931111953928105795167345817788207075237633386311697378460473171014500917705393280862132610851779792249040030689157592126378022280592610539073378699488036432852524018717835975548869937561659901777855726516375317700652630756088952922252321284875915558789124907077251278055454044408781872339342716767968100409927738473787093676025194907295365629637084320082153040522977072471207792355342417612257475234622198955010118759921796025630558678754766154054062197489881612606189129738321227472150415045519059204927330971215428528716575642660445867439077080888870609925974970861748315540902139996277496114569524164559451806852970318830686452478313806938874151337991041176725811470185700764645825636668991255264995398537716697676690572639259805675127320790720179172244693095630650836735476514186009293532233996510177463248385807202161986473294259518077509034398670918778309171037639164474894802052475365476824468137151440607970411535384401362538911947892933613788711567797854482559952793758108960379376316712965679332096523600863945730600186287963599744437915397369917327789543258885193850145384715658948860518210930732545030100617757616683835984798185869977181499273323404059976829914946375062951469237170456709209473399325168058008982580576122151177331203851700283316148084268791350010045120903353220995657310993691542758171276949595086869152892332086914957447077858498017330075853918630515977788465161335997255882751617918709154992052828568623969681410958697864258941376141371236413182025389689842363219543343384135026200871578125046341824395575833757830292120219456017074276981801850110685450753262849134953848221548905011331131349222908848970667967180958921572644867416250049354581789715386785228778864450656899224621726352774227955234340507691737610785832524951868564601013294671824767950326850859703148391069204673110068123527490470318490905669648675009048167613558501332582239720486159295063196894982698261371437531580700425352976924134831703791255974569399496420058090852069191264160793136781949638558437538529640363952164174162679173366454235618576424551865376934232862607694914300180831827840350656437122927558823883907540296366990856428842924901422512472741757570515760866028022559419417303799212725550047394921862529137071421563609572752454086826703496918651957621656069837954414464601414272145631986324270421488825296007168293491338272836462956982535569891374710205386380383833598408030782213249387959271129988853247114880205053348473450216709719127533784855547771534130667786103344305402535990746190767211119919021581956814931890787651634388337167933609590646880494832220033593179335357495029863611398700563307398495560010195303734728635740920292076119750607574480607030895920627792327565043684783302999858986932266675945622219419757845402733724450274624876606058840895220821918604073245043090247536766206548150213963884055524423407706489871384209060091833160369697163165573613640480838902609870643599879753222549738341776969680643577624838684171015123891104469027961025544837269046806552608900611615510751465755708976297657675348211038383097136754660217577236467131269444938147604623333398634601144945333690302268774406877680440727665228792753407190202814844670793381614750182108280581849924282501559908806690673017322690374433067439724001975821141659014773964635680259352767294758085898924401328467438331217075319912198137158380776574298144356098135885388575393052692523222271699970951983139363674287155965953996861819347015062047913930342077547153250862552996642888041951029153747100036094623130750995136658623189737855380062150743297828528568525503157572443035466849306718626984673912276780363432897462141814049269691644099741307523257386751919546741257487532124205257276032590939132391123577068394115386650504800097172758117402319386693676408427923583954845241317252792814773994621410561340382518308075732008008120359739680701264469156563573419776618458752575756633466241001514488100860210316902339515271001914901256716141748598779530790509546132730536559047935164033320809357630138782006562365714055787083257170199094008583362408493647515083258685077512513017437389813296190600148897127545678072367156455033999779110603202052184753082710078170756190384297919928424567486624245283583690917350977173135059060233476202450668089238190424449908406188445240179936119577723618964308096410544364092706404022086054581228593770888829678290547428809859676743932639741333256741125778538114905616326427317774487722377700325638721900970971900684703293555938246993944989871829186792411379442390991332598226542482709725458875947647583677808236971904431901203510889614459301628303473094862366278655557425565523045838586859118302954612939899987292416496699133959272202595545040193735063798893891704721653701654053103508453111801418826447868353369305590416991567818484098898025162330337580395189140237593850005610338185268042088338217045333816620229524953781296381666691079096944055617549461804268730999480344839336368997284246373056030363772607284875484515885226236526690664426020494097927843230777937889749382476896169450099771171888898001067484849535591466948724803333900254184876313199542307794908668606516619070023986284485886027293678164372375257967689426489384694007066475978952031136980077723395054097942520882652467623409266969211679624642955847896505465631987151721304457159443076106775085637018518741246478629870733113617318594906713563906731010461528161860450523441844688522856706409409028882222586768476879522169218958003847001269580871709240082787440520725552743229905760025012161340389611561989049665522979653729572583887489869579418996977908936288611991087588974879777814174659610744249834522703254674385992163476597569739331810881304096732278397900151239484933149178999611835863025700275374264763033195744172317071599628274914691105256774989551697769192914519091105359651278016768362557727797305457140208822543079173369780569285373398571197420265715966182238671510911894756302903307132083377122389811282356222060961217859891225103986527556508405179054253022492348141165485843229626325961615296532084684404551794317851439104494542468704363879814021840614265499442349739247876506396196409698440761268062703553962817131054664096426067556082418004990714787097133676284374313354643680485130068139819173892218935879102421108229041006047229370643739348226186310532960775750372345591514341895701514098524238113681335339168851722364492597514325320428197954517721585000080287920263077141817340572049049623263591807661911117957639189336821492265243504667349254421424985584305788569977913769454853679772558521666795170859656103956236739907861918446805083420395807052129346864814995884974801955657689724892293317260721555697029699610865976005621739274864529843217369460490098979946824950344174219652518094490875624149596981028421057580088050466867640270084299249688431553207660352893709215966516124508160132456340072389764116308487019222756017456522369568401804578845573991808729927495273918425110605013024229420956474662730639175082064601348175145819781852627258933263153952026167757393969649685274953096621031200604395965236766829126471779474605138678011199770885261192299503118531350348555504607370016093500000586727812660106426925993670063010479599350798359485604148668659185637373388731020859421891497311111110221681817815383968297146624740939706866108432963363351998707437380441434051247200356421335456457783259344707686505545199369921733505562547500090631308556764074183070241434676575884069330973528026617908269751377211817399325014587145083536428232765700576043165173445075454992477255694242031321210088046849304627349371451363975469982961712810330214898757837167909750378260840550333730356404161403583583178259135195442273793186269589150713643149271994215536604045193309700377434191982385017050138560551939916332738701327477007852788215035883904560634459678000552361220311776475909928496242767719426805965467744843660664993266400044411248202004849134276824307484360608115937016077420435030151351232565755364333064798791848540035827280080612657856543154407924665001972120140360006753352047465316480553976343395591482861601501615089456571963498543752813135786049453480161117575001750667543677118590877960771545595458460326281419953244370056265724520394071593735786695555691766365511179531570068103034711778648071684443381299446404904225390730461334157701024768139816175164960049188876000515578907630178182446886056054244039318640697090423270033965411517811287896378108773600792406427120913198519677430590521535092330915413925586881651233540152760490688021123873771253624816649379943121883739556880390484418667056983794529920953810307896977016654743489625732159846942407615879847707964290947700997626419645011551717065152523434358036117615981835708769827114724962687663739770847217885500357157216555762530527687746748954500476810807040366693014509373737994466097374213258483066795661537591341650374103261178921522947877736961791227484820020461472486204761975620259417971793630269551945449447058290058951640049937843318066733283623869943904252989358428662109609611491503684640618922938896543134933149914920387652740168934336703095853949841705972392393227671602256753215444161220322287587350860422802681195996315251211719671829258872648047954619813833402210496291287213460191878455584766731854261141842465386558281952228954093051318424927199830465814756383742023184763966865962186065865867814980632518809142776900700985770019119943032131236503167949782583802176411243377157864323066706486892785597053022310115559832874891075816992624077094938832894142154230265231088873316318469413243731906567193644002392006856032877460952724779897020566578672727627466850063229345482639129637898044327365389209487012634397399006451892957011131712773579269805841393928023646116872400431962525797438268449290633267284013234357194514934373108102966143639707424096378131493240990974080365608866326173161562718775198319623501421208742423156058861177279936044115934372508967820116529398456805654338360640476681570461027389053114656580724501175992340226388449718483721838608842319653293019220115047853395556918870893355702449187585842458673830772792086906024036851857219129755142560555207610686074973965128991582667645856416109931848360015332446021629340102739278657414628240678956339762405598295199180453042848854190578030550860097237595988883293646519776457673962686520532723605606222316150158077653035818122383277879183266210287048595483068007602034557198032421480544884024792268117953541163467849407346377124788029281788870457451586765564390484036677470682988053091989563851217514516729502479870015212303353016482938234217185660065435286047631581978554651584367944533605161346157260177354106026079960370069102870003049549341674713179715200805486442019983343743106740901139081387671321683222026022670958837761873477771910742837575249962149701869074385480951028873130376961852965107611707417861578637979901133556698809704551479224308922824352967589699416833132040342418378123857610235497917317077028511346051679523258663045599148388136622105758928325753100887626600898789238834057617476319601495548332245429378884197280567117065014213466707045497800537122205547992405220347194147291042526433896182049359436439919528970850624744559107375129055867225596948610173499396893359766723095270805255299538065635327167488134193818773465699414838037239873825967844723000423587322215845087887120113057540068684051296612843576736463713423684123577919835811110788205269975190772511124227344806114470031682059919406304964631812408921562893001734339681030220186241831450519203446743180356695047371117120277979401696511460048477792918256591126676405112633096762772802275418801834202063061796384192088576530938416216268630210075120210540722596921939858740209096684266653107287053713358366401960914117616450274014459106942656678532575216951401739610309869240679226503714270555968024394271977715850382066310215200719874664266188335441216673693101633945682842209417824076290938062972113331283877790360714475260214628311123225545245480976943352183417383816432163620422308629785859655561644639265050176303288684214979245704479889169798473821520664654743025139876901295737202441606039727709421319141804088177842516451864868343518748280933298335399990360675711031509161055637664142187883071951675070492068679376664250095747787866503492536700083632227934681163267430163892769505277457073735864388688408344243894595819816065923708763242456365188728727971419544708042168168229511588350268479655108971606856218402138904287817177868453241044642352706471208510120605003194394501401024596054415406617976026173203339969410884509496148477259412265147937213013688512091994980082128899002518089175812312148741977277573040892022937407869209460382204179882265647643548410215125742579267849635337202597447143832192070506696360742014995565550828649601084304343291463994525069980726753333179655312710340857430626832289114831967216429775294893606418809232673851892184182320728153573340919655064705748233579828782228084279764992525672297884704809478544812683312679616111519454266840090053412904419986099046328032697625259784750266001240484937996184805050212255377806637373533477557997668225909423883195209402587731405016035544978512615111077439504622326606707537547449858388470289715090786996882677402524608976757263635026970648418597024137258918327515162891151275075564540270123938793428542740757914499285701158324401534256331031999635801307233345034950034713847926052531307273961999227040640033772818810559576957948154177539816663911568467163046576280480180927264502862301721421133341612243501290058836451196436719584215290120948896946062442225994363194360005964593222154668632408136343659659424350463592759543315151889577503183602774090547373865344346439396899221385037247115358851615374854545089031719484512749679287802744565218440709646271320588745466555111350432099154446809177839136144171238297780453725919900395602288313478271558693948671867850704455767596413268532722212544042110325063046114507462733772323277070977725479903745764422899884151092818063044456764909659734288922138090008927688327999184933321588697786107726868379740262765710897311837258777582748884278231224457210927548144234794636418691304870569385095759209582742641048185825197836972739122372179109239786845684867456673379365095520232237114478997980069903998636926160220798595018412561840742494218042720109275307272341317266444594696679401737135369166840628460895489556710055548469642460278278780347527953891112332726672061777465538059762679261956415282418542050444409273471228156978669973656539984589895583061712249674137429668975485747076573382384129369392882945423138532944565278509872435579897748801150923326055748894899437875868552882924587201307080245919554255430370293928985155243248103812599038341635528048137536635166878206639280786056250847845567455071987746069441211929782774330368282225262629885625199377713813741316270491101878978976567665824102395947507253344822751504130181656406257624982641845694184138075558569508997214658224038547753343777386726591906468391831972147169502848728639757455914445673858112342494173754964526218422029774352938767229856493504782387792833222175594574497533644177147232776451271141009604849813304907102477502831724121351331237981934620009726091303756807593564454574683948281327632687010257976306654541139421966855014781315998270062317179434934696228328749576843621015920329686104042442471743607446631186832750052272232686225536394259872134012064172724138459881572192993548686165327525321434416777662434316373784891270720448873861254592578164965460621156152313776107644458400243334146160519773983919398026497116752463127063512397155251797551296440150955663641089702677280541932221332569902237316331077395592740489174416908837887360676133900820673376682461606488256546601073958356643430955728605342874754530204790157926204466196631409864320564719055625276315988882421031420624159149818896380193478606759698024794906561560309598711220959798833630253023611728960157351578460398139894608993110063681311721800859564486450972274108934384658060872521689259282223181604147587601875894918349807211409361625558313123471420467483562533678532000523811182971155518201811684909318287566158430412461560113493350807741183101089402872566440001940603991368508421220630282252171377717674115097457345414100232367256610590740706950507191862983853254653379789318096920662584918741835371132959494031378152685772346317792771802241340413697983872237105943247393714805276751839571917310652104502205848285320948501996487746977712715861001468555548586303253464739030890421844400072477320252061978287383939872715487196144930089190310177366001307158085434371857462907255296868259201657334457855638947055811608435345225725632962963580535776711165061717099724935478862459176617474477642093624668300999554034479990674889031029883701846818305923450288704861252631725596015564090621957543557905253633654715477502789609378393695536940046568198094595332992173886834285017096105120456852786623665399821605891301014257274355616446337589132294373880996339754670060545828815818501228141023736399408755598078977502867549669614331692885322478436709080014679469173439925895874214638431087609914535356220493883488894599985857065349594109804276897823281939362050280607632587197173804118564912098889708417770722091628199525274404441110180041302933434868084507248631682134701545683009434265554740423870407501231825131933397614475821638208360654848739118017097387468774385655089248335774245407989356842241495158008979811032850242278935273924118604518105875780124161139392159945081989984108009470790758776655801188763841288692310585319277818917905949528902471105063786534121129923305483139738771170403099034481535013520620167168787826831927794413761042868609039399434341852843214235974401490790695526815380109416086521649381992781060179171046836149241471067651303507108942244517718434348705667226408815862626126901698332866684715548897638179279942349103780810138705848899912477861602655508744224048430387308172362179182040792231019179852985901239116709195122331607623880318817253688836048866556664663651258268668450776105944427313712924448194158771384473012336866043120999971933388662382032340055648867315071557776984852869574669942031816478820714327604430753329084966977865526412852165204374752447805804719665882627234038882776548503259145297933183404456544252037970958719578337804037889655681955148221249470076119946703053369986249352050231677370824817346766884354082006686300620076136223788604619306662409648823979132971066191999386333303620999420997441807435532471998230152236120425568353213431755685069093968232582974751207275707456241598739541163956908601640636796198205030688420224571301434652905443248520855065431018380251524478192901108505214823446023448113666383434260307913338136437573601065280690312669670910562133484201956745919673372507724217407556871710734906894515671673789282668547250023629878069952622987169148461173548307682488219788294951780509388932757120996728234032810460600093972442207641461354143814712783235768245923870729368615882264563531342295050268370467546773084642432095098166705833228546760010401005150907453610580390019157524315653258579745768170176903940928717377290971534471262609067693670708330206762277788763659389199887207891251567089511858940376849500349447821890500971069936516346432075169542132479227015263214939082280021143434098655250231819462768993593733814882697634822669603919179054760078412818142736805375735440840526756950824128161733973641244681669160843653197419457952310212451368958717343399397701080935850498289455404265399327965692854934052320253810696230450112799676190703077088346517736131158375304669745405096000915532219056303053968528902111897204889453257934821723036956600791916786456413773154325436533957621496414538445546758694903195182068121481836842016213973091661581035684668367879740129917995787249068774733136863270294712425668020702606192810841786739032418283764463851995063340449956023290084754780950933100190244179207005140020861407510887800830186954193525614779540988464846905135334506479894073113880752556276692576120555713923742570951879956994581200939035138533050560812721464018091489979335958102565289470665535753365068119869800765305894383720120058385649173477793056795440317934002186335261193495984445574376332816933608538387346201023956689762205947810728440630865732522721808867899326969233388758257521438665966486711958399049471336207137167674782909934019224555234823685580935926426595547944657237475807862387219887522642304481339924685376324636138440455095382927437850813549786448450295846928666303710334405407175185773524963469189435724877006322487530710328216952470457277948505118266270977118331722682121882045503968302308852805158335247455988915314039058857030442200751322146675820504934445207995586178454512184780203948479329887880452751810783083303396066465569433278835043228168384909319502049520687135638589074923178973674992411275485508081884957144462561191375503285823832581176775258595980994480666541996831606274405448834088210326985880338375038033663663020972858914370678433753888917641446714662796936033943270992304229399538618078088184719405948895435375550281816368967751486498664999653735542494970925796817427355081367610669206128842138228191954111373700466231815231880283802706683838913747533689595772626115659343083382860629001024550203909934187124265672121104678267838561586936149609652640443661120282369533113992386531017009257681709871446737473971409983705363349920088359042633293984007336474615801772374786256279678430727204285040096117177952757933029496200205946991233389277583057536025019727824663774111318124030829586041012331644362727089057586947821005168814625800589391937766563749210216056296208781213857277895525535033511376163571921009200958344574606715686967890882802768925867561165455076758862576761475642760209585564673414299001457363937961621434165867433989789903830946793069553948433977138680668986114348363060235910332983607753588139124081219976236243472654316477602409627269162797716011946412733592491652402157282005319151705154379484621458799873253983388065143776261060403460518693852949871267154025839262716466032003494752221893742816077364506607286873515999706950009966473255307908545847080865760748917902397814701686648556126369190597807789393369844833719746031312037465832623190846611579176105538462696037074386503885017654628828559087281715210765986866814801453413528125380975738317116387618489283544668340164587781094340292166984593965950758488393516608870928718748692539721327855936208555289861177052193846234435178065335369824446192420745986571304543625415822510398063848859407322300253633073045681308641182789967184644807097016582054855718128078616837716932797816235408791307763818576885702443938868144425948614934540032539947849091771292046873616053372361668609175296928358800308039281703590293424863625634496543298078887570472424599309458774490904267292944080768085440626406093141487380003179111220478727882999035021636960593374371978426571203348554613784971397646327083236508111658319584124333674677246237937816883014084354765840744506729124992364710384873051124334001337950253294774907636831791573566370228176282071569846268597486144831260095410740883946206320066370349581847833149073867662405499811705943832859951744405430114361692653801777700809635457813046852502208982738731237098010850940554729488495836526844391822093295829438455699593593003061978063760127748367366117176307292640040374299869967024364151281263585756326842262262028512653141695242618936551581566983861245510345107250954521743347880944932332722654561016042577857023735683959043878893595355715364053289087436371463736680909279047724822678600985754400473024735130780181478090176505192492443381732723267272698779984951789977607908498593986741226965555589166379898453179806639619640858188706847848856401021523726888622525590635238010501628648884526527117094838481403221432934166581735631889895478102817474660429953634121793430139631609606241166463389779870884019336115119515153927832995129834391022417027977332615904629051721494858097183812320229448292335460080639465141370899999617592793930547822178913154254229895728496614382382147351375463259394229838597262938208794964710327759849306955907917721201352025440019720065907892680355190457257495843134094274704141830776653207352731301192946782050465777698816999474025566344457710411281472749742240961073294676995474326715403528291320500456376336233279874035702970680271044284136817393045394653747593231887196354145998509058363770230488735643861175516839803053253941962025825888786566403002510277055944749306328360478017149510338146368096836647096770757154056261836257758898408937722802258661639107493790567395612008577520891987089809493206577167617309551443535231523039326857326089026076132891455984373186221236276318276226524180185719589803470830985220324136183407682994017689621601448677939236141416587524232608242138472703391324468029757306774532595982994452648759178612961134059157677709008983328696752590816323351620284185121333511415673804091475820286062609394957339718172007844605740948704004197532563370736736539099283149909720351839433368115244802181209976753749239842325847231831840621051094359246067955403955762435785539245344275128960214949547683068005206568594776804917364140999019274760536405339906933257222388179092595719279100239852913111632446681028891331341710759365515199684344704767672716062871815427054937705493573382321417529881693540919942481168510672186061269868992860714234179224289689519138677523198251207093963825809808512630316743873760699142481544284650399377650284883167222353287843699603152136462642941957134071411825163783777385901329110620608816139983443759246969624870667610159594410930771533702183982814313725687722064050759447611835602085561712083351601083619093682313545124838604640351451101380665323349516032962026807193407301752200665252639501047292145964948171402730140108067293065343281600688618845551799380118918918389187656130697897880971184865562278490626848988950648944177350928101983877040850708484428702802269496071635150864667449527966970600449720331377041676794967409522535319935702386146667053430939834082907539865997462849332517052533033176290399179562552668636097248192314394138435627624569165865176384995852040515060577505173725601834910139736119378531444308749346708340563140197520875087747063462781414919949560711307764357804741235086044094095726913563385756586823043358663074857792183450772193598213751293883887365098269812166464417538420074251691652605344296080792517755296486870859081632721001595140713755675321031091170201484694821743240699904604696530812885963077805275341770282464588162435051667263024559600897261251153634621418249917165604643699316745185338049654073070134534933831265304881463656256068043885782307660296606745476618858784188507665316663927310815826255163486565687280148649460533651743209698571064389826707200689478128146107854201414886663522048315502256489027575286411879074398824258399121637132193841577423724371082220969665548051949748574432574290125213108150011827038367259733382570789931296971464993834396339195318606007226603911235367671404181571169868409567248656477504756400545428514943878635676823568171972654888302207762173271468325994544767597557568561779369912778524748794239547635081304160636926076442313278030656024064595064956189125908600972173853338699331929000722357056368631637224068658916453976530997567117798247534948986726289657089741476816432331998286736027782474910174992447004268573798157610155560406726538781493106888711062975962026752516414461566304965259180609115997584166032658137347507725811371230186673276600328246010896443193773352610128807841172952832179869619345460887049108328903410626432738603171094609077448614171520861510905431573693932895354912270555005011233189789119456860918762605931697397664981324164512069503254481363215096949220462743889107817170593647764274340405374066258712706584546365381412237196883453677058673162137018259252712102326701338733277416601060937107884815548559630267102122269189114199929051489255799196013917586266266812077740323447606746962389415107360456065864532221258832413145113947794487356955834402161080438823811182076265155056682367161610022823753984041721090916083613493869411631564402942096095306902369427569643437188589967081758552322124017193263695545382851174068479905526463185510131442542363503436148441177066175679008204247598775039470891169132318386906505331641007186147950948828366616827231655251642384895475948648091948847314757996249894928698110728592586981577619966274237219042396117241880212288715515873048810244809346095133640631631123733336206734616749948867245295721356957958124852341640209835701352863455744451036751213612746312093520219621248060438649162918442930600978187942331176345631471465398384477687787969267710270810626528912027613684383600263236941626338339037932469700143138649875937999306391348354944920465600745658022189775477656872078611314943924356679147032689213216694088905479483145244755127548051758261781996614069732063879316543506044412368845220536475238855599981509665072470070907209476262584868945651438640214846668365990529974145263941793508715598785990102013363764252639914592789799944322047525123499892789159236941380720433008123260642651383759732942432136916491868577641534640007732877797532169029630691977723432028286521065380488721674846014520015416954783299854593956457929448264580285348660162374373630401946546668952320711963203713064268715484520266935024563646472801214685412953620734496165886092467628219962859078313012742046644652607185857786284102141988744893095673233004317792259443183817494994204069364798334471282883520317084079410945717779904564063275491345678243801000812091498689975812754691895275145173853224309570059810111911618233173389599251449574951902325374680040650942614889204665871794630452763969671293631626043934083347326835138543889293496018424349242356825414697318647094316309585376874105356344883506130051575608591576175380898551128030387137472255424264081395226359855696170587852445182288771511493134122030949923017999859226726427248660686796865425943031694196656461075622600401432190396391404049508686690341242751994530147196104816113958080122709580982993406267319110240415074221333555516881501040807303680990892376050417652941084600101963361680675184463574063184693419313248743127083945472231022406590990218193579369494035322914603224391299372100536917108747629218824400122231565176325740770089424078647732938160073370795179527369763124629475274468719777516820122415927620864518774085109750747962854262531986745857782705816245973239757366182571298160695416313091276939953287007663043215225944253648471380440349013326126924396397588536291638811532100279395165582792258871446027138111053695512486166188588958657005216710370332945897938649001938967367273772119266124553631615439625751185986097682044869700438978208739132569989035590121254908563282637227390100409751516668243154010879151229542848263050297924332609220788091070392722058678683279970464929369514695634451987362042895351899692856262944697113983194054920852737127429131876479357857658241741688795986230724224002760697894133354753540701496082937125688680100415826777997447359152579203557380894236261137646227448046859683044555804099721904987855246635734290152880103785924166126588995115129887642705263513729170084427086701759194130808532486599225476103618919341806434803479916589709989209119603229527421045989820424085020531401047046543215763468808107137904634845793589798364150625861374455287927101138598496695128125965744058512768688251918540727853150521641696106636659916626850414678031893822552594742711180920169833913540732732939155451483018379937249395497248545747337101385743792692551646682436771478633633134165933115610630515424378681234160159095437740844145605499545215550977710995648810433151263679897353046428156648506899914598040103131567215661620693607359065440837347576395499534352724445716677089391654602616429848638522840774758307179847012798161201442742512664029750121702920889133913308963031583742191487464194454367104349025586631999733594464002633886826542238587031237776527957926823045900550283663650534147439794723454015828183368508639892598270509821480932946839673041400142217053614502004333374630468241712300415723057418674627384528630089608260853650884165263629505872469913425009995054849412600093298819694240329658833254896968870787572166235081269827389391418102783487170804137377912167688259451204863494380839694766571346978518391233858952903370520523916433861464009881709956450659558116535249495181055110300190912887050428175591196339353552652996345191930232818709223149999000729089497616126265459326016129657459655083997464851376178341789372835950403106253504113764530324086037924516334811388146854843947512703272174532641181056292386036345735844525326665581338448126919461544111620596049115139436122436053146036284431303175596445967433772930107272639016484145936436657842164091088410420424757846556815897273796318678650842284079722287964738271053558637097895483793300403414229742483204726985579172802456989775990130691562051032738093540279622805089524688120243160280631207580715681303021021322798246127748334242508954267997408045355427394412438479067303153451511616153420845552749295620868288013797910756369302069153931826901744219243356056514889811578665730225302082879804538959865556832422242206384923687453958052086016740988967054672414561771576818461763543433077393602976893615584092481348005062418406729943564816896344547335387145904037635027860666432756523976494051284269586012862567604669064570532763047957755544043424643314188016013032136314218009556473755852183314292205469098590535170378630235141358673966423496787454919329223418630593106920395917394499877450789400183578127143950363164778646214748387645320773448771487794230771167749333370771173273020425196123835248903982840924810854162318957973409478304558883908826335611423430854149456923053972202063812903606799229705566651038557712309672935839734260930104032597696149912927456075397599483042924776773017289053406366766241977384444609066119310912492486614197645318551558034130110725752302342017745039126651215328069586988514891234516437109847964759380635380334066268953366742112392048379430831096599622833982727704408647774303770476085145862370779026176554618948533670534028884277502818498171173240990129407986563405148204425244422695399370891121657967514588062842507329446431001142403316522299998407929005716115197782807867477719550519080928138295100416107268959016757652090311374919144816328668512474727441602939885606365121229924942489917517870220618874583607198944119719655429368345850189139006036028962671814543193441633410399176058661047770928256757028005956172212472797442621284111964661930286553942567833655572726299737785929072628098750958874220542787532338201798866235663313473266541242712586307081852079399357790224862416869009504279124161706522984177462832728142623826808801004844540946246752780654555538224684720937431551434282064842531529154532888822780940936825809427489010326512839446855436684842173183369419706475332974271450044205098393097970476154236815319795314958053856624474191913439283720768880639625246049668267967228359416816813951021281453009255538212140611787965162136675808416857592046453344002469282509496085487262488358300376695659630451153091182138187355129356388797757274490419410990669591734758207543646774662741575229860720500890142327012659339140083818011544156886392198188009046269370161977416367096226962728551847025117604989567941276564853891470217794589227341954947719804469448450090726564132199242405561188415588225420757788368226859332808276933088861576725532365311217250324351760236761135137654045144612894151802757647973447159337619174062001049110246226585071355847393222760249556006563276776704377338963685173577351033000835554258470143268514506422078903195305486038766053259622986645557588704732691650147103220368068736468827522136387883362584205308967502064540092260810362774534213956990635593067076511194195940280244260287443839033905148849079566128343466010324950880514022948828100706071689851053600540696550382438474223941076652924054228153787363965784559592147863352405672935336288297400507450551661571566501000383248332469668676882280122935572083427662203987579326269402873588264183330488860505339302856154977214742556914697866197281950584871141655593753188913460580695129847504361148662967666508499045424588836547350948014409625537538294321604403200403036613549667459014355088341894084879555476899987503493962022861033860856410332713478338125603350257631126034132193355995733068220568254103987228297641692529791569776869123450761754479246655888878169847183960174655504523152635901058855344912488085716704713994683961733966225466634976822680952999041777901740471671085393345495063050580634467637576294739641092437166838444261585514745139670184969120966943240648372109938114660989483777791100327940184276308985995271248682638836559562395194767897681109155158444804319954910542069912180648820773778105422279361803961514812168708412160242456246682509551661480810046584614076001571805755042011801734001971635974112367155780337186264443674947911640792922753987644867205340572201574161191471599685137668925281536032889300332456702610285002900060163034304625291926391004797757000464927326808604019151010334602954299286757583806006212742245673299523900196795303781844618883392553393443183221784617942865654936015519524846090360967988073712871734936182279282454751095327878175896943043745915684971490003960403470309875929448030917565696701197309406145523761719357605280931177901298590914222342046613908081316083293745373431955424505674252969569533228717168152598486373581107478298110006090977219429958458721684116632323058645518661881357864442506930889892700515838917743279306892588318810199134582607719005507018240519146485807202737596694018791723821923992049978793545357112982377650643616653092005453783665884740043762988083779260618880852242683980661884574253994647170791698425621899879995535044980711848685845619870700189277749804445967503295484302396291667029322217784268597033696468430994646637777255559587165591683139033834373750930445836104689606353354900465501841909561302108517279620323808943201602226695165259599988696970283424153411586524245415682124607129821365935760224549027955312592809529757772806354493583762725398711896567301486589446904352782513633295328095803096850656517225715724395626425964873358025471469842999961581719850782936499147418567702640082230088993777577235151450300578049229572760037672173028067416182979761738185504507659457035713470584700353962809264670671377141020818167585204422148403334777820551362367157301025782723114316344427743803369263029579941458921979584617795421098069692472690799764286375833324229768061203950696593065337050138583370774798537867054683620313014967897497549458050631996143805354011718734235734991236358536992390896511287120555807856033739886685618139090340185509747240806349040934704159074777893426059794897670621158019449677548763251465221134765386457637289048535215377364046297053763052386945670944152624502985763022328461305062408803047490963932629447281780181372576565423242852365898317524836257733895920889928365572345077347198432068531037712819104695761044707684187393524244072085452145735322533830815699649794883155475681182635714499743034239198489988065883167234417906701964761995937888747859717164631537847759187310013231561745800178870580381811442517651963300516817105231584345844654743866931275385919829844022529641957663256719874315964223310572729667515334200064248577259934890037089524480560307817053584807123435323381676724330983363748037139347008352277827274011490176827239792502426734483379945084254516372661863826215566024456895487963620710529288693324095974449445984603315602014347382795738308111515518584086021019201050832118774537724096969282198788543209116310578863671794551617571785074370030127209439717523736635818173171730758923054181624874387296076285990174704719026797992585337661683948803158289202720455505714478629777374180916680017855994941293496655457297954670545705955256337734397617101902257170944833799905988931425584178539884941118743077589070392590101957905191043108679858607950627365278229177409388043962519429223038089924029081494612914831338158495923250177961219298618327512828574370696646483848609380973777801413088068833986373342294898695017717895064137614761996540001600243660122747606983880892862129733873991046214678880668996047333238519696999276818592464639534730861588716351672997506067355957099310730228890756812811391013987686048708346962666145208061171534165300830869737783904243557421328152769160825360951285428809675410201995587123699207834508267383624055623019461257600219523900531149815578517887188992902435021963858501111897590228278344554537560072490665860447803794971534657500296887338897852988220812278981951141198413998688010906526919596100652804253359302537058723289452472958284656827649299918842468216149049431170036104856250759368522999477642413420825968647234491079430831045573770245231294450136301870683364539519242293087319070860579438647534641099290838108598185243875740535614824632620759967163282067916437679639412877147172778242485634634546638291482364150488570393331597814902914163371970407990865087436467092581523706851160635206952836199713152186616435297127652337497147617919735758722568166504857485659250960956934134227992137967032734529218528736700490075097288356278624517264924664007942890590538679254606159822494094178746554984538865497506863188305352185642464119315863431878420203940169691661530560790589528618348233028272463009171940103578619314607886494836061441836537742970969111491761033670548312368154541644714820974214154036362376227538111902246582652114384712412278093725476112633401798386405672807536369266381697080016834485252651485091301454196935867199723062642484158005456044893360227872045543324016442389235299646769185889635459086736260379720139407401973305682992947905393061823151149979114391691472030686433005737604986541778113397856989822891624128872251835189628059675432114344306325399963929793279495701283839236148270885632150316506201820221973819521857232034434191809021470768452621839137349198222674105306400126191631291923253017239344874087884068813465110352689361144757241307021912863281553846288273172688396987636604350731246282627236739154666625228117390130001677433637886860593808823337938621489002896312068042944609398914342918218122853767353582012405270410545726290860055259789272745303436760333761648541586084429848247238835539944002026337166691701327365771922423470751532273326159712897830658304931467767128979409089851835947716176409926899644291338196969871403846659227367127348697867113472304697315122978678110113646856258705341392907790029597922370151816683451596772440393205401020455677917663547064912804960400441584690536986551640446424830361685445394325858444263213611996676809193350340722749138979641194277546054138929300145731263817327651858562432175500415447075765651656097480380978191100243214922253242806980075576445780436615533727948231569690130104146940539336139867378813153749332044136020740224902167346896512148362800172218076924652775937482218717634169233787820988457448506532820045944490326050518909213828174187299692570414431427963009474723089346697071727070082946644469192358129315943632085782480683087028589986237432914414737482328685450268270062652010514451071157598846104703984859725990975125625692353854141631446487844224649919977155158084916060310577053100134316049309151617507457768726843812887423880687591098866641898640479634000731075489247676065693553397233633103489371686645956118836894362029703633665716944207579125580464290027923907957867230463003123728595231254845067795566460547224734422783996490009529392091209971070765529209321741871851339809452927254920349716956276894603185089422500442328753201832333590405608972010747834171409562456020628665892358255242643528333865627430842907094315429847147046782160609213080397278213209350638092917222025709247882494621425929888286173086509145977042950420492936107132823707554605176666922078359757354222856707939358401986397253404313404723362094674094635941866574215488883872968947864212126579053915346489155021161372928443641139118241337706401804777306390816139860668274240504367618491098821142219788057068880489493722327018043362143083608389104216233888729337468410129135966279077805090746132161148852338901707755467865050376431784984906031310329214657275407355887754139232831198504890626731541446882653933263862750511952272043203297267902253244007962861067473730155235067915557333042046784444596104300090642579410882287743693566573863288886364568268596284611678335321189517326006075958957101328202963316414354968981641624969463704677127105961285789076832721760645754024624745254375722883732019447738518435727412580359509501340603487246445825609127686624332219929546848832368174406357724302386594738105963523755883422681003447123450844559477949639238253151567123418131603801828683948814864080245047423317333335691663029887199949366857696617631781400410538316291959099185295444486153657163229880076632167188073094930827427122103985127761330033740787593460629896349145952274697755919367989493397768951764828806380192890375827741903187717749461846806083058044163259458953389368123097885044061113062810190476315078079394049488912338733356758505518955706486700893215098648449543460673088289383134242474147442805007117707739320120215154854929079791333796839929216159890471155824212856450796233760167327990772724062925019981868694002541617684587046289811341946902202727067449298227308520341037886932505352928522922444806532543506349742528614195808696223956920232898089122927344973319335856336109363879451020530413962856374656205758926548526681695699485719699569789336107656170414736650656069826781364331053619075235246512259349556127170445867840760265107465509063726600139748935513667520989798660088956047860161673814620933942509238815402209898528111235462226263571442220305093439536177947172453120410291778531469336857479195497520292478496409991078510357523285596072278743815519490180017540669770808839196847421074979450044559879541952628143120363288903737963909844992017444244047193235136176034126945347751171131672988674828022290157837313073612333908959917498146266111234464956472650453245812763791692909177764462483629742148781799264877989116458660013960525408810223205624574430372551086928736737564401942585180670313184642999432443880361816480731425908358698152992838579185275407115067486468119740045722203355273768109663273324318664978829791224197922464647443160130263270301809603940109973835284286945139807577321333850850218098502446833911950993594372850766055397850669737665252214133416819479652846267696319132576688310344139690379081860200409482494245943738461161322900670762045349566141594235266156845698917783234534500845554844409561304139265525335986319309036670713561523327812087607419329229430405679680882257109121410116159189051094898528022793176150457046085200636275785382821186277117513789789622551370295010362531346759913917615695315389783171134651336157345676873220256768673124907839291385089888483385752409489996477589495756280733492323237638663868127710879867533728310231041075694842614676122593512976413704267770163059296534003749959176713912130766002064219900878791160999617010308559414897314295813158729873348591207843385455104890029109509499191346411538916448121940127566773321944456359335683106575413359607240101198414097289814265366626526512883040213150132462167295400487838117902967826437493650196121223616723460242392317640408124454225009523639030560065397296190995695827456928927616668452335432654416235369668667924094151052503616031757900388648554469321421613869259952163492074593088535759768436813841320587336163004028132467791539944228215173880006811079046627683375671570733987908198954138942574636132687835624123539066891901792324553312923006570001686715577471061789308162153590908089325846936532374767544916107453534530136171163636870691817677536064792567205270828765997269488567766165381721992826637021331927879548595133358768017004796045383572311724381181130499198026307612714696554872121948607202724685416611346913973847961639751011376294779430619897824012968477873684849473711460579199814023394900077169221227715679448950097434727355861308996392082025985796332856412822213291937764874817223311944463855572381238087028112338816187806681379667130691195394075329086506103741420623669185396895081133807477097687814950431819583983172640637897599603602103535541073777730008665443354762370832690269238255635742092561231576004338585891238906183320607557451420773238522713896389380959664538092589005172669924212455092930203233054287862867711410516174696973362383746539441145568472003822784301029651284674264676185015753977466058149072937019062690552973632644133365844997444555263203593371990268151352622501944858629661648119334201282579402275904085889262467626567767948938796123912168730260508198355587500408010413379862668185845685768683022192266563855046423453502679805354251861089559412201110729526067816577664165834593646830919401982739127366592542917623459795171091083493216177513239335757784535804777767495604512405708497926489280509793308818247319896168302763082521482391883615484161764311533500542378354784583878857790407783019305997905271183781842894155926309093365871000755042187402029647686007013154968223672705638821616642412678425683052982316402024554012011002549714308751187622065266441378425526414406256167311359445701669280266914804897039239658083559516524839970788570469069348758212455513420805060644898444180891471853400572403438889681871159791164392073040603080928752435309024716123044532353124087819138762263529818452676438354140553392848319500995833935662299201713156832621660009427416592066717790911544639615954416841661177848671403426730135078849469767743478347531662282089030224921624450733790459886112486702484872720028747511030853854160089758924713504696891743846927649741550105248008227298859625357781883056277888079484408730629576235696399714983131914429968062590967481125814310555995568202901265776341122421199523076800529440890105539703856584373630422966229406539857120114844706420072921138148830265936179685402416031663819112754853473684971072982336335094243614374691013847316779836759304614477593240097377816941747807755669427621078111089501682806025180707688679042824011291156656299071470065446997176170297296966897670746502961338391098917119202346516227550475290009664152089971162778936734522030823815621679805425035565921142398862455234842055846452259245619093193778952096325347422197249923412798241635406969088718786583455456938087966286834603127223586262865837340177484662328423142338594983185013701782102307839683148081523403061802743787456733380493523041056059249289144601371324274267641877886606316442313810182042431479615860665657814122397258729137581849135670902062386263826648923911336788514401948018504115682492284715466584283853129387060004160882561946546497018227811528794536422216934793136736041913457569937715079868202603613668567607687348869328188925017230738336297816521067813177561248854595423846801877190176186782129746972354476488532208448444385888365983441247237531016095687619077794187672214394030295469043962820750124914769336159981997766234896996857149727797878500118352207839861473607626958541909384497957671787822451893824905887748884674127534563187680305931820947104228960325075277869409847483987152277791670328257954939986574071107898244165464921198409033203405668806862176601180997008731847922323068472539603174360384335943139285626793012219031590905010782700260783268505559774974587544332743670426902235705269646634337004553105874323638184404828647080345204526375452336139833624477610984850770374717460059543387253076018487697323530913687116825472381891547676919189595963328447997382021390586927001324383825287733696691798105416647813292054976099608121950439765799051381969926542138829191830250990167878837021766833048662111950155632146490054990463925712795059773546815790997226739310710020094569867241686032891085692329525566263449131462698760637397055991457436254204257502980634395972325791799655406505930143167630809195081925684375930760191986933706934317320815229714769659589940832466601101712319492739062331518869839355051646759554496201576755057878095168594515967237470098071019222351101707476371624037067549688250248220546593067309690438141608825891790275184611201169469768094021959861950558150571518271109118945961671695315868697641913201495865930786982434855909277230468250468386467439779916755775473731116795758033458553808295204529695724055462364320772231941203065860009766791057143280898678957667029256086228577909597609976994494646949541750481776494996353780760427111692775775871681241299755766362099514237850663681216656259349052991054456622967840706861658285868986562428346109911162598078644032071823379965569849601832125991492804474507888809345631919088470258981431947493434172392462278230629917632046786307340743129378333436163825098835801593177939827106210765671018399467521729520653273713512549383092315075643930316268497720802199138244533960276427269471252776698199967801746390530730644837871690441566328768108264223785018391234684098621968627279166255170275090917245067987198441911247072497970987098327786562629308317666796938509232602068871107671259798715114823916747136537606755521100372678102714756793793878644363672183287596082377733495789356832004195293775691903173603057014648739850202577428685418153196111704829657433970523283978195793989449116266529406815002592685122910301769099915484171236470763718036520139935917103233635132380998797384416966444863204813918440383453282353020715952975414045106849123296110052671397061304278471558191914338640162579325921755515863286485631752138781915630331397493987490469871601134109013396639667459805458711982454174308605360003263380447831254009776321835535787107279957848290254792138457254853199928596052963473436957745244563564199680924402580555230466336590597772572286868042712800128802621560073722594654266198302925061227311349876626149562953152199942141993067390647634251908346997974320467279893029781031546226635882302757648471663855954047228738744576444009570072665570456969152774273529126249145804430786410809187768077313874113772100323449276968651897970421109247680619524186940487513639066743856243512144196109330642349803986855631620618283701387187044766313840132566303617193035757790346972170678041416568857337841832089953076160219273239958380972791599167492916673834042244758486733956072927920752911813488818344382733215359711957959132549013979126330860195227899892959399212373875569449287872139251464255919375623882313186036538109826786180839411096693989726411287588739307773031156170101807781781135384746873412834385164135711409347848703888044534809110292783246530329538006884918667538907612244422886452204963477339943599483539352777945928303456543612687894944974665452939264713594219079579197801652235228791301746485554357874432828313745293931841225185807597138185149195470239766337490681246470084947526820035458372600699056342619258712750371707367847797667970211515637382091099091176845142481554197803415821674147758561306806619138503350949803702040474812708653507366257077171553206899909533158702193234848033602192213619013635041213419172243010338129086034828050804891166905841784045064717269965822488549658401998043107679489057483504697311742728038064406621696360544597556074661197169835620545516373994417851892636913201847762990853633224002555368565910667727601247826876321401377367398493693104755563557861052609901884812297402502346223228027893700339385542740278399582591433473091155646291457297422203293139145430987652653528101570304897434395882670265831914823799720364071170285783339996293237347786162020618557089540460462737844594213630290613919592210038272280761590610486767140733331777677311365310576283271160934547432880800592522192969066648956275473644195710464523366685340694658483022145543929388317985809696018132826348490932363774918977143471812194910611319766188246796559453768448943330654847214259121416706501416095587785834995806839664598366408551670127837447539162307674310723537137009087705328472934244371106182959310487611982000516348061345274834029834517156904583546331083300426698169647373726540420772946645935168060224259867039240136455884424471509707860870712733409200210173846021352831462475150367374090343221500678093650477453539957174906610583055198645188739328799997628874814793505977253220246261747711084642155485634601612873150886337195800753742390344649854814953318508167473987043484314085604445985048952806490104665181937806977864395503312320400676914916873468867527475673419149213718625631472866297186878168804512439214990708404837936573166327788819779680064555305003966619509343100594299897319343940810528257254558497638323897519053239460279115185934061435835065302801645509811414351366981095026110812677021615498006494262473616033326058715926934286962526697787523265610132501244345453477981705561402251437992020584119255951156252711635109445172596876527323181500503338992258320741809916619164771782927218669239592656929878112999828737208209261691031996866251826013214443137901312023785601550747751325316868915265435677228973890256700075386670867101161212083642074399431348206733795453895752413378894691768467052642726840111041156529825471043696318200153063269991022373406874278330001838746008113109838275412593159053534860713501897663666631009171517193702203248048866645529090906076397015365989017664841105492645104556305120959828576060896444582729467935206382576294467327310258850702083399847133124514114695059118743073045909140118742442321088723074846095288933573619535887478882394885974382135217402453906457531765354364351382409709392126953166917010969937141011369725222276981263558350948091500138062083507874190564445191415002309435259537108023606609224887345312523480394353090846775048622470184185080406932912186007560048498143440945696603585663444393944424126593455195450805799593040611695172606628596448174721651229930584750741053700291169771397392104356638011068309080147907542783327473800058507809257359433247421879850474534989139738438223057183748843534333320481215202828396928069415226366902189050388104086416385856458206405972351302455122124220120858263198908440176268613791122264561166720572076355423600459378796894863865216838759956835439259686093275856293931854181961360108837834508213367066716503617270508517854928556593565762109907566375155067195226823707757850217319454759137011631364764181549153624171025059177641835466139605389618547666982693991758773896298641231184226790979235638736934236262738260278603845312782006975538142682074809058571025103551268912660326263866672847003609401610971974394083987475745499983903705310213450530284329407976957851252126333535672250209586307544208912591417970552722471846176008310067865050753195423613645997809656388705117725909386189707299225316803704362270109553821721387634986876061367716102590653973938026688769285339910203699051969535202083392307849652744633318333828599005439340745801713627354393086820588005331593204487635600091812473908040714552149911986072070611600235709709718242783819731011040776319301634244297999471326680529818143564752250942517454249433887162002452859896728795080447567347049710344976400734069485816546452821297451677430448992291052136753807427788092951544665279112173672178151242780204182553894863306757688154504449278159785710307485039206100318038281673402247251664161193798998483913460476255466911228682449172197421216543941024024512540425878629191061560698892157901736660688935309834174784067689579823671853336648431263539028154231621788999120721992794772310286537067855939106980600759148954024949511976932959812762087221710303059453233475013588097423194387548277335160713781476514776500973727048525258205857506493932193395671211477255172877639942611537117710175464066168074137790990978227833502689291185913777288664074883892336397583798720424443355616971105209394660366785293086190523841401395438757904285532015088970378344998180304610432481517420192207686066263361600874300617759368515010288182182352888035770588264892078327862370884140638104624468864059458300387902740038575170994686007101063686833774527469410714554154923793393628390791820876752436357993623752766836400843146492016297804286153901081139386842117090062757716921868908018072337686443871413464939188160241751864212901071119385784390098556737517945183758819959334005885224976740069852470274882855899961167057954267105198162828843146483515402589718856258174932832721064948524076498631410203704363682577163472438390298579906209763353210268919245119471887925552651602846343702066413053411560331417653487138787889396932549932517830170379200393276245092282583668416919158106284543369518704447204045284003866462983179769078149380880777745398943744403890340202920180418784613717340940800882349048577107247455849618003099877935962775520820484141702790926656667630795560461710765327165392569869174071548335293545280966342767331389138472517177750677275205070745776321561073829283631385427656199021645544000864132914168314901276820596704041833297078307544492779901009531657645939730778117106654825562530776845820538206676663228850336463851610213953365490124408359319870915663605046565463224836545741911834808207823916989373853201945878837219748465495115104527115170993965700475570599226518487271896537880171588042292554044157482707793644285104606171464732866079390058617196757454753609932634399062452086466427488234761714584419629144527179228455539456021846748820003881703233869472664128027996289763035761773204137418323812655259196707688057028951266849082004440519569100816562940530333697950994151553335340548323201672219821678351297285734067940258586670665910083601292141324329047080753115721876407887512226432935552836607352802834860443795958474965365190400088527069301472588404135158649388635940820192728073679545123822634468026769858319578012554415927329630764073950424467522066638864934108854620571444496146432454221030220969238564138887978448883748736361253920118210597952174873755033759255249561027540052023460402333535723841077856396849580266721586015601898204108835969215668837833540727621574117023655540682740730244366834162061545162526422577339967744030425627179584174236023818886181911872022388594535164139578594998396543343051765181294219995399930052408726346908234331544327984562767005168234557255060215504365517074247841164196028023058191793861802784256736470784527434130992832979806022007826555996621045760261429168848030038635616797706105407829308584886638012654632140632893802253840904619018051781236579698038267689830869518334086218398850742925077570004315105226414406470979736004542759089897644431172808271940187520360624493035682254601457825948186283493932951725869602357923903511715847258690976216609681181701482090538469606728923199889880271661169979812269837922308644880825945662899326732401218795013286108793600905801280714151439779467725600673265431022134714961037987115149995110574805698050811653849854623966919859750360425412303304904821687709561385962183403210909859184438111686125062632890894845832002663439590738034585140070569816333199773996407885503854256417748987320598463029390633468529925991450987659245661616514871232411486991700644576650141498744713073611993079090551886332770995712804977334145705969830410719269904159271934923600978400118207012343893113264084189523851124935933510549278275397460102652894522278714147429325569958731648180165958823598790915491659413104912347250332721158061026351653678191960347153804989725978771917646474060142608354708357938431274844287381423033111625907396746626686424805499811203163228520130589284592182005352615599152874095502234948766806434626780958297405913039565074456049721602351365760855402258659728816891863497116698310440733138844376757013714174248541930510423091762881767272299492062778179823401403803165411480415618758606852075527105813460531721049535898490580000298760382639449627798083957370447072269649763460463277965328792572036741330909838051999910798139247069888026251825827410001103742756735124306674868555433890724727799343469709556229773948530142814062896925301229800682910446155610879135872002763187411390665460812151561067688523908396389046069074522836327013249160011158545477242714286175831816953252246699397885681086354224200020844709535971736753155216595742537713117280434542873890434771604037134757579252277981399043932541145830438127109603073971132843904809376941407495840793130788127448201764108789640833925591993872027613746878444145465235651651962394738377018992454198434002576033764520983178500889825565098288702179518635993455963569173128990320171088191957257141910251944240252738703953295001835574208698118764714553454617391099389966285712987729582965016980374654083525900584319304257771957205583803290977949417636549251901342904445186610081341525623144736990354780845392948677058676627799324118480833441454311502549871037919884350823290347534832957144303256092677207170887677132580179941207378584779705744348225651350352502694238404532704449240913302276918683710613458288423600651395564830476014877558978109760343173956269090738478345617729839535696609446361160757366283186648224882831991069483535822586434458977185394114928693536171132917553589406053145511217294050066800677976046120739740551276474467545127025277432614142615629484001950506270251182502435166746946090578882092900120052005862271611913046705040667442523126859281287466445174901056614258663679615488884046767244756134580508638990321655385717753558444203456693657953216895482516266635994070845017271030988225754200286767140038302428859886701410254003707914451847223458956245601033668309193815353592243998449911240520529584156748431551336269290728820556619385247613346587380822648113535452072626576188681416589584997893520957130930539550909058976117633047899428634359811806770243396631323750223943923878541203324115722632758312915181475819252467883617952519734783790767753122287891405135174967879684447941363968159548954043345385890191152004398533550409323583184873664953674982589217663476111518475935794471482172321046901553334084219798070027090102091659326974583209495819130361986901817260746533110983261345221840435480463214014767298296495786934981364468477185583638935630231739104545166317602460269728429292926874649672230110425443784204651023261294054829413194211266437795343701388562260154746960198560618523933340980834495647172349969071994878125421219363425588888800459289377930476600177604864033177844001046803468117346208607927480792131539733894729639340321163327140710594167184621384552437056403809491512463585654772955144267827979806772117921339199938307704697933773139574442558709743451720942169884151479439723199642381147265192885029189098193970978018968305344038049823564277315901140598168173436407125787807726296688095111141113239657465092549589708179285849670664230351274674833963354404512448763008150124406889008130434727048821372240289689158581014280122831743470059611724171844882335753299206306058309941606232440975977532087258855160985330540953660133047419343080906019311694654459821532297662450017995960312993176518808863116646321544554914214041081064808422726626835312384343075440410284285751940859917667340250772086649860465086269010065718125688825440376619708077062469082094567321261686482225871801799988118957023815019539904763817635272436669561074207592851427978139610188803853442984773023673635036240052606564906929648212896604656031069913501465640703874984159382396047067527712064156827596764929299365226674093912900906596158495328227573995136806099272946284333415435168504702022405472959570260323041033303623628225195347444046241383023133987099099179327402732402246506195429642983314629623454640973137156636258085249926610914916000979355382611748039308476523396698537620124824243750149782868503406222452321903278540863047944073488442462057636076075214382012948194394797951711657869850772748110893240670341394723159922679855201081351614932985151174289187144460639692402892449414208089707213178520511580035130903489951085257198158083684229000342873539611045678841007728672648296855123664699149430732419969680886388017909737003671491425312917197960183330624846761183615658875704021446562735870719728355151271566349420895948440838788288310064168591012713182403430729899233802553952138381683760125187032357153671800365834236107355941299816980288432918919889931351782792584725225697297769397752972618689136346106401817501955293943757514757476271298846274131769950468398805812397462287436629303927704472310035437742239625481394135253159573953206739531234055142484026978513955351382742173641672024252484521030617585141144579658049890302596161770987607569122796265882435567180401205840228045207342032426419951725179739781008390137644414945759477277517790979277692450814300608581211143816389190302378390192373102936700152069283444664491031939550470418249972334767546978639024142860482269141363481104069641857358193619796464683876398286502740654933976343497352281405516520520377690006860704943100972467115543275423982106942148083806575628054385489622566245177370967755847821899757584459989293413067566122863882026794110235737044852431821177628253315906640318781498357636439291969808473089719416589486703175735922936206447322651902800365434053668198815710895925670182013238327187110195172113564347105878650760032356630964639250852876143326051498882803108780731193501981600839070915860231446983932438619795009955172622814298940559740282621074683045615055030163377696027382274908733548667308207314090739397677220992263701067672822852356962666155326582996318868704624056646428411780616555448533193961421808898660393050976129907908517448636795479156740122912085633399805460643779607968751023999246085403152524109659146443714065979409267180450924490342888129515712876665712490826623529023296564444447128916237048350615071814330896262188590350451863266993747493170181461777227979134914392801895282805412537524183242937091274946579407898811198805968491863005179208417334238564839951812123428042189313956644377174789438615865100952630183295653762163005394739542680480749991842148897177495075590157756354288561391510809825618536507342173436755202866438506212327303930296651151860639491439955074174001928152905030872283329057819763602436647632451239665435300640585938339587693843570738036555695860674560330958304623435055794421400963393465734793492209346923562775404111230894337258417495382744184428312896431228605922615738497041372861372901823222522502745350618621215085181190928918981925205724862322304840075707361532088900397415430274154007306298866251660877620656973817389607589076011367965441041880400735844936966420627040055852262092744653627667396039904466059423578935396946493313595234038477518652622279708167945240887949128427291081885806551153393647801571204610765643827270928703550447487739337446129449276816620977902197532091513906254816398119589940784821726410177415903254788615947034760288819247466192719332943056459617342991517243542408875512731008678887498252800154688187330606635497299004804473613688175004802039003003527366558241120587798941608504744649618015582959077914937833738876351059261229315248671154307317183290186202709113470027134523007674143482999487795721612777267736938189442415000230502124277102488694648633333927968242403267125073145722297627843840438433090459775615190592147741548566821898330852044713941675928107155154639901602236073651750884227777463233299359930077727082437471390467645469977191594284847553003562130030258841481822115966093360750781628630390504627684042323641912124416200496979040923326918320499013249567092170801145773793552365035819671169183777970487934478153305658270699897734159775300231363308089834595954138216487074210884430399673585593095449376189039841446605104196655127637355651453578245906048140655786369443159651386430941011402703079812551471404694688870140150070347822329819490913757470666914347207585242717687593763389153143269258950315556058031258940897563905247216349063973187309258179247641553043468180277064934979188199207980302669052766667033602989157172538981380203149018534873094452789404141848670658359431379028123364469108148151324140323953980518710695115915816247059622340232244001037439806341323221763368582117585673144555810791250858524158815959545585808878157121587065695211427017023410412763864929474250429704642148436032066816826596561803913989908527476028699041997768687103866506903302564593766801175428779436170228359505624825280270200015516545125882858702671002105837611139009016728912464485759572304744083152126393401851562205701295035485422994925615799211786178573643508803609383991297726271805410671285881909410004153122338443645367079218057991523306187292299442204364568601504075864643719838192072457796778644171174390592670107265844636349395366109357896102653758796026686432708668441106243783097366701999490491122756750356466592761680531205077347353826811050729879828709709557905443946601438344008669000724294413872284616870952571447215746701661609991305595456847140580695283373719469916819368690965260542735380157406989042606811732448363360072310205083540031999077219738726494546578934493701747539025611603925377604384968100756699419654358701484804154529093888940576682592954326632620812895827314464768888142888669625134776249375011795002771766329578180354392086102033189116442339469143819494126643542230861122787084352657329570028253020186941863529810393767411225857252482757205157917872170610021313945520681608050275574952475325376496504581964822847832282756823559920948244610163559828084423243497424486584010981352177710640437128566720930055197556934731167908299976269993135409940337893400741216373782792120944670636473390253722918495427087346949321599339180409683017003021958398855787931429249754180006949318238752603069616991984600939139493049309414108500119733887456876579039669239796554950051658276651029612381384961844900835701855176733135505482430250025610366793607120139947653002352857104544713403447818120799882180979765168393085691614247326429041522862245890671837449633705400179578733210476582171856106290227387909308309329898794801305539971632807054691256469737409701448178447196130690020468675232985279493081615394078958855995814070815137196633495119277020790264032100914370694632216642293463034868947732355145245866544095080672678625178982273503540811063951667375979203639750237896759146800807880028047205987815044179234495552563495388649287035813719506893485315555717346279262506609075778223876211141322666922574661885801526763364678845540225606099183438083128686645918664634679273537731076765674283060937956911189769757358248817511268565491881439910654934305189207732790957971581001876701760085719007191634309453106856914243743115231649971339333915538103614538887298606093054207766386505165443234551701485932873844530203476665659349879643954404056545715209265202019527138335306833225960530253505381275794253000546183095347090996120403237898326263486126936500726694789073035791252611878717842741753106554750044010116703225597091528096930804957551520849715548396096330102524760161121498813994522217645076786895725233389775572151876181265898006040430374516139686652926299139689554699663518420777833656546946014683035169065860304100889962793776513443500916167001031344566553757707542081883137577469694050345937827116002557515712582710001598289195558000118674148779741312464778648233256574558705953268828259672790202995176227268301626803109763894365887998040321168109419225610456866327501913477308573572200819430707200465814109871237845017911017716595948074161400112292240416978062179534315480239461125318416499359744782507112036749775319476043325853097547004304717536601816087810093393030163067368174191186895464710266322542284659822890712906287819580819358681092090975542563039341811703380576532926200372964334094356285569117467214345001251189428762103744716287539766270794180785589418327385785888637336836175962374810608287941602074268296829715441306236271203795057801807039678046758487345820909905671179588454117844916054076082129926269385548371371431906223649983932508465677156959920070423021662346964667143350267941862085802397928622401965518513854477635208985926369318105965643041837242178360385335005303429935918051290725246006680598178859801445234017821619104418251487160660544466738696658043589719063649090884488929588540439650690000590359755658042190134303960575221230940513813662991700933774374906898404579953816993257641338508832465173625075993191775016683898346483178612045734383673448509603833936615061122208005554715641094118474123672720387317982219088594793381756219861425316163723151325655621226536647025911732569273071648345753358354599168105513045665014057237519216848647842514325813641254893575626030564510115508657604948337102905657273563654631653927484325979383965642008856388156928631626529937767597635703076068811835892124130801115042261695676434765136083130118603175060873416767343889246925006485311444950555875806495432838577022382771131123514761688518718158855107500731285043561892500744640137075489106366225838917657112038612121012596104534627121575461285054996558448383986676600739697184282191032358902599138704944129967806107624283066209915265898214691903203957131007444614878679566386860746772498204733702296619382616101640379871329551820022370081104358325286066607177012525847038686681532178356241529418676905189989476774009054315878216299536581770993713427199703538209738350609409679146884586397731835883248208841501558132649663284968527849295984945535427847201730644265837668085741918835778640378694450181315699991085365929682096253417807152808972498827309958301511952018500568528167127155545547629665624852858379355378454914396550471025633904961083304820068334388686341262266067424708675449703930129105864607449866047943415088837684030273396380214838077231642175254959676086904176373531485714996583439052566895374056288546857735097174728078764374696564048847074151814130356439067448486650654684911432869622352441746062273289502792628679624422715265763780149384300912242119448832104937978686204893771533084174031271201703542134482567238750861668925147538927854157138681767024655219143458361571333477755364160079373045876815473391736157074132407383569408326473619859004573045749094216242039062024850498400542354234202774837502244903320771813011300953159566642201237451528754299861804471834476570550370113571771022959680441990042657015260336994496319680639468554751729368739838116447695197630537481139411198503301396190308928758028711347259713652112987175353078666486822690666421713948059056311750690617632813325680783197413031004203160537329325447466153264194125585215835068606539779004141395384633387734639883998095773354118382887674936483389500133927471075864202904932274653421048243131798678483925806000211092230670061676162701448733613774219803443167333708809760563498071351620158636424819435882386914019671990312307956622999243568413317974921868387331340548172829758395206843733196129663614761259056501926837146537167213556489812161438203269410075539869200062890569095466663533432696227928927251417738651995456951893016871410496401826030691364755811870207961399079749158340173552243864984141290128857029609129787640386461475525440707114011885151222775400992171029999274864973992739130873446036178355174047970424115547681771503969769255659867192959027310026494707156677187725232149232873115979391458705646063012781382191663137959703885181023373858463060999846149480078389808329526741672427167717691471377393668245854530921190591337805831519347221201816003537177276076350590739913754494709243272267006384640052377252049402514178215534450354007679392392168670021832718332345621878349986480347926980090784964128745282226889676082462339152254446955483775424929946027606995902949436204497775929936575322935182629945241730423095442536184233000307495879339916947783762872510284629662570160673842060432800589648749437146922123892413343036959450167876776924006556533380978409037821947923071425654689391362962140892898736525866815298017923539836758046371629604585258026502605872607502695661694037975940025948614831674317121588867042479466534017449468343090416546523923556316109784637239302513205773211209272704479316750322339509043044133441278532613026345613413756072470683925186141324058198102524402351940678689292522461408558044446205455127808631425906072868974296228901970620783434385245674343563388100937042019951250159700102422188332858464357766995251308471606694303102950501926525472621653105078267016719225386030961709390728881082091466606822208019838806092119168211542950874409463234304215694326423555380654279331117230777228841384443420734464928664964884638708282994705722937627853037552050438051092473859530358524373442964849480749893204598030281629550668595784764615891990836982184918103886886745334888445762690206286602134855443109080162309263351732102452412687573460583682231118308754024506179066529717424453050074694661051178774938269765538322228787102892471777946997319962038515284627659111475469170051115759207013074658391561899537443839956996000061498829158665182537432339309152200479576445529385773686497473506308307342997005892845895248705731476766046085034852831967578392855393491977212450068492101705124973012060868157189435691041860645463250644944717080122329914447251761682155676990142764944297622636143953473932682419633909280394379005515771661671757468077383505736961093011348478953698081868534900430375799321482692019831891634455996985122024071038563466604799756039387529132359989519501739085144169697659827437088790828849458765045684049344678973730306089119420340262925851342488068880010976569377823123926434164837915949567449322829456243603902470910238454420333058042869007431038651488612448261547640940386444108282174134844247580451159841345990910050106495590048817838065409914498183394848529703428189608731373590611136854658304464155669827281903132397889793820318050095500428551193262052274403975191366957607876574523631601682616332901719451947344096985630151260324690923810883506911727038985845449286555430241997205985114386695192975858405616945134862931434909846721842712168135281704507120798811682620499015890730202381381449147452930398131110577248247786444671004662004199406864355730979561210520320473168310176176169346541224730340584327683928565618844712275981536236568407027074274755955965687574082457166176631390927987206145998483480838158552661363993715204761365375468406958410752562322929947535891619109935990497951117140688187153725631049793255522547311656431686358825227695645327783754534217412319970982269773101790311742884777714172461737623368174255346238355174695907128343359141593293386324127134645337644640290621685422677424765506721358640819224837273774015626292571995537454761489000362257095527665190250423377959763472771726873098664446845298696423119765424190801064772509802522594147752390049478214908714196419197799441409163623916525103692655667640687007401759504632996318842940571890554028599389287890936565268073265897452398183570272074375357190042568176800572614081503247641291498206970263342720723781512033380086059114353344633149103899835609509666046957489540146924451668884628492515115723328699373214100673829156453415135107067581260247762948461825224767776507622363396529069554989457447734908773809116922323259655030728641077960996744343162351239229343832198322591231743694055762119760054229483295838769286728784622958920476195780283471696606060099717648700128608013329403081596795086866391726571251789028810578749111394950822481127014549571369592911124412615168979557611692067918324800188751226098329765240999848249994700552510453432653663647465423762146276035623895507590904107344835992388962916228132233294447117625323066190548918605459075368781084349570182959554136588998635797736787430344290431973750747159961748492755581754591106767608007619532505376380761227165590680380770647665583480268762429857054124698163959614887778881534775965894356242959350889650072410553846322954262363482313739692775077742583738142095991359214466818099707855946993302287544702043459412685295297401827037548900371677348987245628069397493225938867209563287938793384168463234499967704538646768703559979600582287270286075171510040549263412938535477067661398819916456004701648989435080133532542321110024109809658514508139528060574857944284031823019004796073777913344512273600781070956426785949963028010908243633411347094686371411864297523712648641493350043351357288311960309663489885261834308751992032561597031928983634052334083208152857901980408592925802590146417203462565513686982236837937310688246843147707856497903642745229202583734595409005222822243425415439939274200391960771572967625913531510559156137624776083734842264984619903449832526475678170141537509173486051218370786081759335442981912779539022044479699214880791699399380681794536056128034708815029088682234946423942933011783257051074792236045449000439901113948695760944265338896071414293506170060732502407487008741389237320364688147242156485134027264594282429771926811866491270778015381422146274757070823012243022210359160435812139739611407691476746257318513541860546229733012965901159196917947835857287861282477491626340394748993506149735410114412756208377453232430198156169436079924218878854275660971225989805879577988182432928097487743667488685941572139799243895345566341492006966773587133871504247528816934941680866107431251443936994081690144341769465271138490220527802564513515063207568335824040327211621414854135444118259767489261979808649481540431251219513133151898279542009828534306460260373478208317975560679407293657070122162685781328178705079732141746992849883283911373394973990730642969508223661489863980251899677661116736732397053776445007782831690006136536274030618138675600141600484631095173917185913669486291545888885282088404142783531663396255642260729455484395138173758374675860058586653067039615080724325236220273338305726624545929172158242830012709982264697740223817323806160192561991297786885457648676987507525024889655427439694204053420538075603860410135112907034760837223782745254493041077492839935380957469258473096263216182032352555552041984244171401538720922579054689596675003603350521378008663641037576012995802309148353766610459756481738697541201232019874615302136433420224540708291933323618711333295036492647232806131940905583511225184879402733937634997738751826330620587327128726014457225012010697686027092429844675794410254126043855370576521971476290068186664457500447747661306476696948034749375057767222162429396973447281560454162076301748794398597425569678813403670215173793509232190423968511116052947715714420623903900596978571282391372617157684958862355753099278960229966000712649511771745444977852591824196500710190271525003212969964880787220703931664395372331791409082369251259562001996423254179523793094433804218661894416680361357886738191009582749674831476359915620701792649474337389113899691002305414597000865084352777281005264850790553150504954797080493225328232807596665022290971230278029807799955327668283597426525011666403523182299266424843258832819216620334493489420810871278792661057975615567958473119829919743235845949844394610189189248870265140254639194969850207434200035063042280300321585407399637313110272659306816288633766051862566061407426529408714544819778218068328149650339660784461615522138403439511901823103266307361097275156717183175085477672810450387939562647414147769291950572532498412936409315361710663734170091546465003345581212679919516189618518809653163416189302070341744219392903819461194931352982519492335181085466188183110715522589166583835499364796692372133395519414260283067897149223831271338871436437192342231937459613993699079667953523924422093043428152967792189781582550254865247266171362950707097570295645032800785944205481791448728341626205642973964386363711724579648500072353842793220734419130302836135777071018965004299696086185103132953033237378764838411137582108031222712590197739646583175819395111062950521197345834385324579411589432133282097424405437824796737847793483288275802149547186738596693408134078250229323325484640800257445831482808627359414776039321483118959089164968669497489186216107545721084013172667099848796686912028686450674175383113747680784757157633648606415317850243847367876426209738756598154807243669752107136225267721869789783678739712967502211809203957714798249737837072906052474304917123417898898458924542789867639423242043744456076310283032317512906908030712553629831807155359569416028418794022404518327791847365484537658590401158882467921046809708390768738096496252082739387552510048170218909310354251125579819389013732872848755614839637927647770481252500785709635435727657148860233992652665051454892066126004083163630029475879460552389966473708944538424276861056706051117594410281025800267646243063802911260914189442932951289589957905533148272253356343349624895983804066964780713037379689836357133667339288528609102366899519685129102586281060790379812184386027792505223814344019422059541803358115020377446945781803727837687106186072825650984736534634833478440819128610270955262412482739600976672978815663973111842731798920596118088721863502361210643888949225994573076512703810269792429073872558663080878550806209606117920673582579423905853653631944209441254379364040524199938643711518168078525761558806243893793047388157578076841782637414568605031451876501562351475329473265755874897248904850424315282806932726641233918381898308752600041355164524711177076042352353730124958437677747766225804088132279809996094440702159478306301303710492054400074292774686776116705300122985324064411409541114843021071741060182737842036777776673510704103282658403988808450581672715206823117379951275125349275468324964004374578546264052649948959454282272636739017334419019600880564768038121557899954060892825123594216058786573381981435938472555645574797979539802439545104684586037504056547388589856456273578272279620224334470865990028211489563088258169809584991589755665611917258121952649613592722532839658188774779659317921927928024167327899463295031667568919963313974921569466385079921600495279099172162372564437895942703576202310247634621033397920199021126208145871696799714348868968982501178934571934988735185203403391209143758721870768260445299341934723764529948393817718076869550835624392465982404153600023613363896883209974045911413486909498133587524726710462278594767856381788052186857051767186525971314606648469162626232308796901554836757916889874205960786768467832387521699884785022277397566578531232790582706891384272240018230513459621718534883085050528209855695369150716865985752722649464580795940174023782030970436943393104469613198654520852796599555118020213233956371392331044824410944599037806367434130001419167437756922243236204842136719597826023933731993481214566025230260768642327727939850915492372309966219192641657672793297799568996040298738141652965409374601432060413022392985589121849408988932537142580524850398639634140451569782430516411177477341177480146110982181209938148170986105446169594356812301939291455399936885571433948521037128323903851796815769751606195492435433594856879165552063344482571525047984588918914914444510600765063091937649829486532883964170597713094886022395006171934728439729312374524358119351471776383800589623242765537992914935692497667193429279881043850772044571427726734647023781140230922086078199947195135099063983003353471338693793642169040705290198372731600748957429820354315023974213032112309888048150622972771893499333002907530863695965285262793742585955030129252859994657094798924904690697527133868690181457391459004729037885419973070113937611238595463991014403781301505169772102004507861585333978370369083505164195942269470541850445121117935515968117477373808753410222471366353004826863632776147045134622514294079135402367469823128752377232883998876337034921827588694649189151815169949922056715329743343248900957126720380574648620640232012726780758003386347937124719396364164109776450832507806000404249510911057688880621953008661565008596200430346482131465045859250668254220142418228567960741097949433032761461624291788022140984493974275781784080420222682061228957432868685448284669422577145762741408528608246418828118225331930682682623998916627266234855600150188073803801329284026302402372206416000266629111141180419953793038474048288762737959253675115198028331825627149112966665434843500954723828051573026751499404536966308322291770283224125654016309668363997958429564344251745685421301781551326381011761078847843626599791037081074154827434686188412069843877091164722513831636644529267242368553112460743387408511748192924770013157530610255411149935281856412169330483598872577960458260540118108038545967473433777884896949498273867596238006036141119929158465116989111286811823537241950159528006294570298374610768934662188765160642437568438950918146188061261814214533367924659892698642386428889983291703902339374121309152766399589357097361468895138585428758466817482521788278669887817079914318726945522629678367356827284527767293385346737888517471909929864173892487909285013718408854606813858976342303859282241025022722881987762527629690955367048395935599577398516954540465742339628929166981352179469437257482265930344846047006556263508077091728779323088507721340828682389392423705222203717676378174445551919564109083488263966469858956124842657816866095621899372469096816345406165840553227905928166210075870222543069487381404794146139402497013541870699231735740234839571594391948781796014196476472464895821878413787796442930779887482229912502639161495118094668970277970520620964171113764838205617234459544984076849898693460024394912820148485710119146499560031238090259209519519829872351009207302425759656563419699851987272918668575609782581318709514561381186469255712012572538843326172085231713321127522029907206481579982397309736676806573525954242676930012000087875277492073701773674995531175928295651508851398840598987443731999816448747866015752022813666700463064329200842124669547577477791056219965594861463773439596831235780760015207747288318877649261721770183213004877926499934014880750512881703354528227434419815864353774003691353558250627953791971460121721624908239116352073603007913670596527324690535169719229380535550997928383725730285610774878857993929214491759986160260505751397697350770859420251401635378757118731095324964110658366414680851488807234235086438316807918324893271381100454974419883475810227908692331346602774393455809681878591029093925235361409749014978547704331092144653503723825702755105632493257904045784429178136346226502615893490760038359326224490522059557613468703953880289136274009814605179638268468830087556937676338947199018427909090218451823147968049163096667382632150889266579231118723805536876184951975189836464923426353785684388830668280450191430891723379247978819450456071938328936951405936896545296163220962531990279868223220846496503740458603944400288417477435916915853377697618919039387831774644208904037123794760270457542304825181813076060562641554801207041959988016298385138350667701365541037086164113374939989724778205629021683674395595889579690232429699812791780916748376678289006363138321837626687426251926361538568712112882710485706055782591848120929182808991229383809218297382367989486648493818300506431196071174427799201623995923054056399781587604164149507902221787424076555451695103514305541492226246136451359137744217670972694629971227561517098047738237982794670491944601471760768864824338748183950489438454573850671227659147236439726975662217070774521153507321089003700782992571024537591326209743382968414907457537944660738888126534075312611890415882819972226958459820394594165990525394407167470863690262858409827400110860222420042317600832147970080396784311796062928389500307908543097861005623412837082519342247557568396097323399625159192027934516300528412290817343977086242975815502925467349051993519376435598308938440199236989571004860095282129528364733314919858794341546044766939020640625137872840372570738088308266127794741168380782823312319692403143367290364913105455454519768244132697540914896711112270326534496106192090186978250441644565765893857376968480937832331206063804039169729255191372057692671577402320577341003226813728418979955674389969708030018572351799869046362305927271643782886480994336008537715998369005003859573814441257057913477179533441252496830345854495952428469064216011257409878861065160582222778386663454098526086121295986441638699144002933003939775594901424948910370821802357956827899546161665110746955458604360788430859928847698838675628694870900177439370775593715050183990731616709952945940187013197780186701566205409143731775036737675548716426797199949229868280256740894783088810406819730748253507501902755668156427977447405004277757725386242388304203380872371305436515974720071168519643635913690477925605786051840321887129476852379182419812397528022966410687272153654873610135745238057947355464919107650145056677391027808835719416480636225316446985409645489169564942139814348215207200257042491278983731269640299868195952491041462436447003003069406212334682569903417094712668129731096515510216687344746826706457822782723511470050815532512498539865615612247514084151800776330542388756114258998313788366292032768724752464630958105800691132448594749855982823942896598617344478619976183002584896200221771207305494575216180541707376461152639424950126952112328002459053537369527570838984541049028218428647035645238424367307219178547213173075305823404112433561651294620495299557589354197073245607663756366372054959353004444251367324813912798089199671463166778215383714663707625258976044114518001221236493735164947998907409988889729295656514108032366039781144069893365015121915996725156909929831492090829304085509466587223460592985377382096046445467239142177213934970318525343294259103451945055745828402615339598358934760687818131508862091747803149229053714436139558458735133731822843546865947319258354669049305844557427682048881082102597967765347191745129876100065110939952813603529049750753560291475479193051378242969283099536665872981043858141741068346424417130892058280958522129168598729506391775924391952254467525140810133345302936085235977688638942388279304291688801715034989479409377567921902973566965129777775822259543463824103396393029928215974158680399396900290783842126983842690408138086525584392676930521774195863668484227177300612802139550845360743979593358057948087937745557407749662570207143938258937352660600625770912686742138708385569687560698675706949243005825871494189723619239626754584108510429847110809800740851958149656743188540999735165154310574725471164420148706348054003065022292243527299638491368343439433081864311096714012380032231282032539091720277183149303042281598330375160407454171302805594942188157455183076885226452183311407005154187042293351523403404932699105590486927926452619715769396456313606697849193437759778805553149973490163221200001078126403296531147341150357068468911546867207328158590210990324661838182539733821578837712476942012491842213212821508588773186940617253017982127124853375255939271584917870811010314064259501741405716473576847120051916863691762844629580359543775849784862943482437360612624077380863745011819225252712693639825165562923968818689328066865485283080786039066952345458907197375085989237217241376382213325002860526668957769809384473163643743937669996699296783550324969627166938934533955453766629277289067802099732877021481014049549594126419590744753408703540665777811615597572887912625578144052299811091149249354599414901870197440627614599687020669339449332219925048385274718436573845381724715128042022801290559066825189264209263659283670723732535415433643524671450338588702011704780711590625482892129687086402313058276554736408453973761884506209260229031993855783347846041741812359356595945007745857380511740817369994963959724745817797000814275958856326827411735325338607269724318729987213692154775167598943028057187129213834778544706503438351930469169845821526636391377074093289266095573999871243149560751010201578476944571325250896057950274814535689302629854976686070094967691633190383370813583936867497613578814777086025204815901726349204185018591614732622861666735034486872929490658410590770040070786426221551060743843596183557603495475902121042252008438041318819738159777759839848641612662352358249895194821824838334421837357180131140262033355264479521829239888374150951649033905923957508310746650221613516308077006267755159926974234601231648261203189284239844338491898513574894070589272445051204936369903110768469527457446940932471554146990100459266674954360370095467874094732011997075999242978042457849946283682238838952782646227054281409514781056955912101878114085712250659794478110410626283726831432102886212936219561190813529072694814078662219576032997149057842537133656413501252499051721752778840257064376571649781744938569106140456846439425458757649206268211531008794568612060493945744159238371568280848550046543089687603976285913514790248208865518087820780775977700853583742266790838624896002521757253061443298858093826586193423176738652621256244622117053361487293762769291581454025884207699231163410765103326410308206565874139703982551739643332118893524532504606934914488542906296229390102983316546819706973035459138469969230927026884592104075738901479061621727590781466108078928669495689478608340194293759994078914164450852865731121048497103668037555347554619009394815449186212880957140168402205632529268634918250201993661461681107677431020796399738637051703453396820581239343400419198214954587029347840672550544162184553218705481031289134652138694182218833283807139847118292819311396849291667911766784061463822820304134377206070930537226829445404576369817912058440251368822477601056106940390139071722671778214670216778909817080289474260417036082965520371306632321550659571595364866765623890070445679474734848363761981303343682948845846417560484350834167821362741862661809014038503986098064163120224686388012152770544279009616784126815798565858623384441380931258425527695957994211863748521310128650039103764767359057013862118251422803237163394529563607214001249997284635878170435162415364300081349481997913864705441615830045025035894872332320706395507346118152355841645093640396121709918853938414192156469134656830739121862352889450872421428692710557116671845944724107021192462632237588606692365892139820368772549571287608709056095402068639030841462731703525630038596154038509338823484493435714874999692805947564102476112697790429966584219776234785299803730521749163263140031746587616653690405615066619459025154831731752663437607036757933863703704302884643902136045123528092163027695288646489269261240840115912079660053711609145579654944663190225689667384115137364905089630710429084065499747560962470486514053459751244980868377456265377828486829146940502010676321307649637777126170410820150095990936610709267811003920499398848795791252524712864056191702485647853007737520590584395767928896702048663948879395346406336506729200463961699152859765801518484138402983239416507406279012122796767996873980844019942156067690526538068044069391604431981712897139222414850224562204023766565500262777812465914771007549538736549931414890482419920968147690780006839232224983336486437679859702839045788155191812346630077376856758840094575734276653415858322522435573977182501264190087435733682063933250271948919531525876774297235357870471016392969433697989284073479552427290060661596741991960098744669250373658888452446180219945877126879718334608278905593988653026164785897049516450506382778997298494036594127735287070963235918301208787277200424028368887493213520572956525492464053437810499387720357140082974137105963956337434256408008178121242049710542213512095230795184097978802646709010611819950208581853619010837471741668485165435011033188665300842620583331478390672509914187737213652356023335628351805087805153022484317397494239720517675256415989149444607655144109289034630901442741205615727195182881975327910223269547599202912140647534826347390957543873952404037453519926873615199264473937146856110822565785836944661161266271703920471258057215160448892701088554696112825136390355196132075524395749136819943310164826853070107700782508981058446107218226147324042703119673084496910940469544522570955074181477373101368644341219159090486782366828691510856622805699154425257075066496535454227541194270853926446397552311938448331392596633564817178428326915450804559810521237602105489160471476345618525884841376759103852882471948551620730197044077387079226138264175126144807433326987230238504633135956893736647999012360468771730403797367748950180730257790632879469138546888203009936704140562247497873461188824938404328849563610164653746507031385402007097623187183216977429241891768993077400442067653188891966015990429414717277050674213625132065114651311339076126562852217509536693956950072168600392967342307937434504556238130039492046034452068985930154522253373880024755912596591153003708072935834291706447138516195968693079701064357530101443484606098868574550858258510633035992091583095189012146049016666389264595467546822244026008715766622331637688730887998069325386287991893278850230438694337792688389097854638355371426848696894951448837988114157096910496329202847386612997462553097880057100027072885440104762177839087551329410317129966725310198135376251292610166686995456914243470479566405889468853801211985891696463859550551476181724682538468434163918740337579799885026302066207294679627546314961821780252516944183525578084714356842764846559129846366189275844233501966528225163328484488301029562389858695285880673375976556495458973914680248301447469897540328472105551065216108176145102636732107389635165411012576947863686326607058582518246148104776730888829921484466340011532081718106822468287414197936138637967675990259203303108286523578468569834484482198730240168239221767907098519462462050026733142961944584536500513066467720733363909185496199251765871225350839598062275345258602020399398053273968165276711510967202515312525888906075368908454745885226366624915861420653752119678327837505758223244144631192847110662196174806734645755855025639966823003489308035092746390956595522589982171847630705658584332716921182615791301886459145160337497525669779232567364441937769708908197268621769404799250495723110409918043231714318063605829773031188003997842593545134520135379057193150734473269486359253585857796334706898636336159948692984318885693511622117167921643126289263237891175606899404899747960330963079303560597929494632665437906852986400541149751710792519337787614718171336025113524556335076673878944076752399224980072017572964394812953232738359667196162816360030742834563686744444703405846268552240496257282753955623102880090194781030638920170887287387410157084075962047564898180315841118181667685647499426285885657965515117669838396333289882207106928546455893354368824733114952599374020891581917344068669823243609815465326501369338507124604341194122877261672506739789861851022123677706869592144266700374370423474493567351466623683161825677425030624700860154141494840721706653459768642142254815732311076207766769451700132412087209076556409300826633852052787062017122962646695250403345391821745842153128257912812046810470360876798040394753769536307204851844858311532068746063431988531708794157021013694238032988774179949562211058893067528763513241444698716905315608908171115801789913585331399168927653412118333413881638566835248407504799177481491109865249266060173042994049877911212387434668081100899464279611078440040873654152001194913427277877035452982880640492271422150068028888513881399951601453328561764516634662768817297457443086841353371929650740799028666664026127750171408680674432095176246019000455376503721783619905735134480248441565551672706627763096937782857917371652560169228273501129683328210596914812742673685004132195856801453939236391419913092211977659553966360127449041477649461003973744314605832325453995960275356561201326650728323976189593506023370734341125805155033795210649986223591226198171628080225320149541445488836980353804017796335645094158358839268543855769725990536843601590761502926540749484359836867466575948900950242262843348207516492150529324052394642339197940272618774802659806366340626725265028363600206153433966378881837303105814526989419200374046557862762341833976599782512998794207162826934477049218357771844127583878885156872986396529978421418203863502138891136711020610597306862916239523067620975079736802421115195663096116323285757932245396254903574168894017244587844891804030740690899762600149174561036023140927399829157458933114105503346132511059762266044039156368177532987447465527801810439360501659631073437627493090609506656655239610039726115825154362160549207858642748931119948106040148455132593309019074592457432249175708928077570008560221473468950281574137289290428507368350274388087059934704378338904070285477664695420029301730382109947849285018439484578984462404989273716865559090121019704264529405392816411902877508466585003326859396893072375921047665844060574359111360491207773615541191509810310242601490062030400546291211079343446708295794586485252693307778114342841890349064700512040687182595985070246317614951302418189926043184189224339848523038285256985790769669801882523177726243088385226442342993881168806762827864539636921422475242422150324122090156550364732905339591575029778966073243952027859496610393031886695958393623203792852581572563071816250377041315890571799925564034013141011944152560517458558346816715988025827346664476561897724651216369468595629521919925533135355552432073470278767049392070161543938721132597069133484549980503643857732240932067059853658662016133045846900446017276723517177982179402448162526087576362393997986939341643277268559514116572786070148691424896593694208063365351809036818020017462198872300788521608667071015693321198461549007573316707767139748489816698800524871019563939753080052039025202429439968823946423215896823141738067857586923473314538334783368069271064015023268384349069105000180594013630025087292554752581056508602807414016829507738069882974679290463575145571169368780870365607641359234803774727018250932894400801600726781979668241054803357582410114539396817609326126793390567855023806704100056236669909945321153042826533939883208598725476711802917300588303814071075377954674322839143011640263219220850081393102209747140197672555561583149957921294788439374147438037442615839336287566639628615449483284373780214115133962361301121703847639797412297284568612126941257450227618736109873570715988332823272142810259151598189464851993650157226125235690845243036308259343946576320025534355292158679908053325713401134111491133103634258787105762515093093569916651994993309501000237657452306295598776894949092875835390785929356709995267588243826362726714588623901231696025084026807929037917655821030119684034677118856228208116054340600572593821353868841074466613203256754993695489955506118590734173776936880895656348260591593526986421536029665998966367834757912642841188244554046816301498014142733703518921819042392704299521652678226336999185408769366211195840512531339017854017110309514665550393166891964784312107525055442442359769795559332875155691852698709702546342542592502653269516663376086235594749356544772633872336065500109988708904726280595387449647059671242543826891857814502342720260211610819851296992475179557338263007317334914281820219050616582380924813237946575794547332999881266894926920146775238559374036164872333500826454891312038218637236791706722183164108585916464285815863484201174917648807949497722949420970039205181713221228979414631251324878834076246126904407405089668840873125074780833078060678625495962171674464489620177550060501793080041069401096471636385173074421419692946077694819301159680450382882802685554623297746308378084306997337436638311634705087896253307245616191517888812819231733179394242736433368717622591051879023884869827285674602503590190845626188228352047097256768093064425884267477023746888486871431217235063387573566301747455983990564095891501088665973254913931842448231525379071364002121931937509940025301077200311465784400493971190825936976266725311617180779510231116695586005308218520601195108021279959356804916560748292793164991649574878073043431987696995331516149421040417438870950881977660123363424784822013691116468659707644990712735801860301894822846571962053377136884087320724257507986645389009629642452192206718012652597453546253951414763409769972188811826008598461555594644186019949120753919670695898133385576409099760489085965145964822801372452928507389884311661399285515214801881139120246848056099287749290518252624515821905147074453885851887936951043926176420938136625141600353012046750989629799236414655467719320908447671807104300571050514260889495644980466460119758540244900032828963928586303903555584699807915423770826387325557215317322881998955454340520765249343854741887138408972229525644334797689890931652676285296115336090343507504786669236246236244151579457264372655484162477313188663308608104579205478424000640517421313634983479271652616573544508504038776456819475736444133718964155613870326267334318125943725463909830984075237943104537589432095630064964642209887600021527308494236118732941190456297579943006752903150222315787045676978562481760321980883456767241355852510595550631174372412941310127283600602514448961610221216847454515023358358334232375015633746173903715213900501669497370542082632364509464176809590847211000191474618354061597763732565609699725787589077326715879606006451757953299984717647583254664765442837941045031801159133461330712956281731269711278701150088700812645197654062443526893680057627548493733600372400632990580492629948551782676087965258694589820760807931698751738547877100695059208030615663325865160049288499890602411239750512187489241889572592718964550142886415213031665336209661807349068240973214975698872399987395336142092456533926858946027996498445602069745863231809173918011616013353142299253397213901891147752009734236972929542661458032674724300629438891545323958981027410269889813231391486177355095411517607769170769102699618121350293778342277363010177181990401435300970745224165064245807842340358746016573625334706299168054789345187138976453579793298934795163664229168990695924024240431630674813564630104906089298306955081550854096255553518296107256198395020756146153618219195694669521059228833768039321826194543274068000121833637987898842227882022177798021580050789982246644260763247394381887526557657658981199894215615438138507587988081410125989340910065433814137466258815673002540076390161844617019599488842686983892302221028320787134480728355687521792353015693151287196459461335410094809177321602860146600881037819619534848863875462360725067487623535676017072930172675795987714868460919964158030239741013514950595140644890531225485006874767929262131494510392756072664757663934612828175920611434482030475536057216829942032698648817911276730407865634230513690680235770065429010455722688543145864773605805813532165937691073396409160631522731696278906321369411431247602619344290705729144382491016590621891205929681322441833562078469339620486316728646737255490199048786705148415172101852602163778786776287449377984107407065074147033522931512636748393321925018011350996952064754414081192529558185732750574462602650669365135546502741996069096021811785695856038105470845310641547896804740407622841393608927497669350370243232122075810437767385735457059672944041979592672432801254551448964694668118130733511784203683607177762951711798713938796705025021197775409651017416776501520212180158091478189738767267827909861545343816554079209951742462858229582069874246817517805522739741438484984526511776722433614832820110907671888881383618538031836626804348802277050331485008460078706215064863380487626375530953065705810176686286175836790483862065843924682476785211162356713921111501067596522088303554777668339637490946207257017754813509507333755582201415074439341847345173645884773734036871873208521198076065747847898888963037122490956266740540330509232744991661534739881409147646512716787317121872815617152817657960228104205668718534377456051424830645295757810376813030250519064162617070166208365321209239978340327419940723701388185499507102457999544481674003651145812280026989830196078360260284462537454482895054950536700991475813662192577708556576157380932069265404980296302986914878213518271827933423083805035691900503453826639062322772499526539927682386493411958154822032441761460840363825264505637134880545495317170290894835167282879155352356655315272234976141023974750284595274732876251378635486764509445533277924563664959845249210261846047579992024683371292501358859318260348604114340067694008641982816435570442274854977657390824937544605438819403282300615952263173931151296728622676333734246247532853701787278721832493880494555882324295643321871372243848643243255665594648669196696964107507822766411415370795339193691849101914643560581823367454795852020963524426718853758840470929369692042666755678926144496955538127601119665914941013519106714941459237655553776131862309280881113940566508617705081026755824763091785525873145420604120939340521324838116026361206325437972643188743155027546278895601440872483417467090289835994365985059427828207360230283430557686874597713702282233566657575626875218726211416902349714876719609455758583107220123262193448280198605562284812959223230335579466436002154125971603226790028732883121533346875604448549853321771873055328581201473449173439410044379107604645328308178284424804491609214128139799654795314124434388519609146492532617355971420954782696177302532840205941977561895232232939324119211825517619552041689258573247625779649262208790720315446484058936952789419515913207524385976791372954140671931046665533085366967288761510346800937394280087311002245785894164948995101491126634941329662747676817715506892855947826440182082111057666345177084778566674766179276409879246758594309001382980894353310600562645716234765883727674352380072251577430038251799378538477590702004080013462477483802503199135513046190770767315411696310988715284820583608994722602043370892448024368469681708682949717223876446829676300454991145600356361884492863417633575257929813223552782353226519076894663196785317951988691192533144870879804999343951610649907052947918529348798863767924044282890567411510555139971328014492677235003929285707162408712523630836762233462205702954704170924440072361408251110920026844952342685964945866505528585313419258729594256114859354644187893564760509827137750936879089965150954693820276967164162831164438667157203814247518224116345521172970245874233553853559222537632955445778583912414085512663789516521436732449827737735013982987552435561649937227844561966977381143566737787151396508012349902346474210925104041289783540442878255664255298554508044733974425594966689904728925219830808152316179110294045034053495429030227483134000057705984287160393841779932769661769332796935610267068196522487022908402023665658332702383612112863844286167077106379781470471417501306205971070569068736288024758229082114506007843306680731369784112356946476210844579806260153347966100030738344410821980083426797483279077815317161046029778799865749405247545317136144062289783228332586173576851117598255300829504592749657815086785805036987690508504360609264718241483872259823605474546328815418945593638294144550957697442879298233249728964954066572519463131676189290047605364280184097842192692603184314279166579279822134208218331705737389167895022285138663807475007126389757281141361510253025328873944960230185541981070321318778176954180485925807051421648648030109793165544549696624326720584345901292196538399532024909928283049978961059498747467203290570479939600647439849940780346100435284908443021891329269787149816719919254652709656570034071231823077767269261957669448533266332788238820837988698966495421782106321261850993987302422186504407485357375747898807896688603128560455027470158462535888391345415913709814782561641378558055091224444672264989488693778141203819953232870103716883002607577368285059583350837078311762279900306489469988235807919955826156647821452387076029660536854791730817250425900190924013528015154702333835237069227234390114477315432800200414276550691069345686558973820471478133859406971038984913745435309446927555987201475822681950013291505413797511122979136080238024592558855910916208936339085753097790396621593083691522033465247289732684181613368676884593002750188926394214009266872852508556834402412717399835779958649283920772655710960317185775576965186855965571574640936628690608727011174682411412155219355490497592783302963888190608918068942055195164289363764848063100256923345911265019830874018323820650938908286055893165578794719287697549048898263529631281707091985187523603881168506511419412164129191626515852063553638780219486066939701085072609745701122525835208220716434982849947311071185961734726158281732611288673900591114954160443371554669807167701413194416617079692515115565670790127974417023298578075425399730667842454992800960206475142697969942166493135578713399836193910673657865645239072753602296723258114862954684404876849809979264756060051588382537042701467716536489707033674223718229091977541432154030406036465833466598543931935063332770698807468342507848561305663063563015545132038689158926203668844965992630860124769037177500945079660461052275240376830295137777024341650980518052723362083102828634328587724111141302566102143376495865588789938479216085306569354384246806901179209824572448892237085246531108658968568023156815582466988932187286424847149503466381357671416962157542288445088204740731500489354584063001796708345467535352797334430699476661183705082184641808424587395312434797276367149897138537934574775387796427379333538946747925325167279773828018460457249334629774142003954600600218351966442939195237631796127062129192804447847355508897289868998575960981614987026938300116452513771181667252915862686861933990573792069482161003668236825191380376711687849023857978551964745569793376661548994986689625672959700846622866499491838293373955239490841207109634807943286957932208798275729112460026428823005180886469544617883382557760882447403362618757046467420158979435150148074636276336942541006486728117806623329059195846826735385619447377701028182595422239109514666913085578384614205467719421099100697981096326809659155939909931723958898365242429508874563910371325165156684633714911868364273737317557779193609130859414928348673455161024661646832005809020384103139501833631371868813209868173183421383601871064985786056686843436693778091580474748022303044866608000338082072945737214837778465523218514970238249178395540992227931623010866630225098215126582463831822729853272641066973097107582473782014739887090293068716760619663840704892714442213317711900291702895409688719088857073413368998311408320815145397713966437862420230562166504730814426534540244007219225824969131346017715467708399989430274289660836909239919291282231438277087259785793586062742539692643040083009799407458318039802417846317621224421865437183298566198506594654655531836040604945294259343209848038069064721819234416146023012652430539825952828447463352372955135495101901870247375305523565446174235492485733194927943213970913805298524747488167982863238040947450108578240141075661457749816218785228026012184121236306023847107785632056711677436176762129603844898272070695117873727748870966055073570455058083533034630726271995670035071710921925828165114276244025464628087670849056267848585825908211309369212086070204784636506184859108087414775728546315110085647122322173152457567255924531560868942477419119033412721387182212092827908538622605940912988684041971207091518037773605965257741519500648818840271125204735917891623531283179945645201176532588986808953397749147063030037391736486608482865619063486842682097760831033274874463826253772527224605008070320992977155391131494681219332253624409824097379240497984990372229544418946425888706696062954201520999466371801419823637572910322592048997235839133411268265876629984468676038374684950763038555933482301052816999583601066878383956993204266903714549295794478774963869046331489047603931809056583082957218887827180467839934837279769006381855672056676323605773608511371108827057252422469834966474468505485245955218858273323301177396077282516033017972909669107478173075197640014763748511641585738439457812520201009067908778542045010011367996354556890313147356242723882933297710790799267662951680706136895250176904131026455052657238102964538244808007377178482728397044931891761411449084072308841582321595721186791091842196822837807005465199944297707550841510145057608955426976439569263915338023345604343563619586898382199800766866798861459840429197537679192502440395964183375684088310768181402827287359305338308860970186168393848064263761625110759799669606680150472829974556653309145328268117882871335252575826364528590243628767542997623422090060403603948873621430667069520169357053348696569260572111498442884535544123073227924481298097981972222174221071991699789519855277737194149176542880026389022893397360546296970464069679522552804122239739447864852199333276888756552605779683368797985879072205475658332961374140754520535616006150247055214441739020440284036107252557938309083190687958421494418539381168200870946093179290666938743963678692178996327136842412285261315686138538563645755527949174227395609006247761878464256238184485252931077731807814001526869715115661141082441542786916227643496189350469382860733144116379919362856504601442345178569083877560432512620406409775821014045983097609538804790037562735702281447254945021748103178865582162922779215155636310594522260676878910231396132094996521156658215896482940398992090677777442994611927958403407805717176975063549192284485447795170744230479892497687958009467906245832174567298830017330035507469974123631782883739702344931826095931329176493671980203753243814697284863074869123253379542930933913414108761902224837358368735017417988145810057599718035904601793060685764589951375362709894548943978751593995165659533838550757799995386262434213981402116249435084775438059176515126616551990587051016007671665983257528567322961132779457927340915945999319159054399028615122372440713118245141834034847676667232902301398881670640890401857355509481891211072679817557239231121386363930739402672835423865256534840492546549744216116672922270211154587089499628585965536316785975044745599275773159028112668593865173197910623117945023568967084464317265836188680219531553916679416751675502282071683668855937853479809231730934853106208090488435680618667864327196915356330258245537189907718418688878348003386347208354065395006048900002183648322889221533746877815259716743457642310220484589714926912532122632868705295641568355396932822940536640733903780052261028327491865044714013781926485817692398764590387694767544208864840283347572032181162502030501161895846984010139429932941306221051677350379345403509458491398366786238024091863547265099032508639114308458866629008977171492152502576164673657700213102876724585709288448265725890722474446954416343362637795627643836785983444199963635834841807427340612449100525341904612645975647590972145775940453401846605103631850571555152979313419767434473220757771722129129507851313318614223486436016689016433420675355757893050991652648315706425585989523269681743294385763080601273923747077533759270371888090298411638514267540462004791241928849614505078826160476477640151213398920506417217779958639213310459388614694835093700203388650721293694871079431116971072242200153342034254875067020608602172236989230745919131547748500668962609503501308528636517024319443269784413377320578338776840057309946488188196909302639849321956719911393633148531997774048064931219749344070301754695622952859258918838693737112381949875127153273145430137895787903759349913392138063809795735522670513872829123730783759944144586542484357687979958843212288875440440625900121163416812895960730876862242848505843025725126168221191861874668685669821762188331547962545468984252613158166309208750038188397948056310943103746437651352837669968845598317826081968578400033115067837216007185244915128967077126938281960367719742396028959426707223326795046352608426838922650859778094184375588436228717315420975672173338608623363895552773021315573872221601760966600356346968535380852040351914329612186280618795191162738637881169550319638245975744506501452523865760551400091261098922073363742446073654339250283080008020192929785622692863522294459748744589816066573447394810717071744079811862326979863077509535984846067457264007072169789730548934241362925612529129041250997185061613929467204374405270590397339096954999492276242937794421948332860059078371977487114775188377166536174442319940843413296683159012328578399316932586452997553175904624352934214740432862538173307808977997839505202238751468109291149820831254645845284401706463632958033765009324514660737194164887333020148404032342423792551590089640612402778819576768266115866228273692793146943139701923252157505399137527347700849470263377951687173186046602353792338449855115739314743458565554467503311045099002423412238814493909124963586335734086460662370818701226793439386968222484980166341129529208975917232933536579853631590783936482267603829892521150234625478290215993676150189438122107868382597896097502272080638402215087579676400354034217637154495356918435465474972306805816728422771812681705533566714659526192266337393743186475780371164571589109471384772619695013900667468201393013879132289848247141174500513600085689580425492797494137075293953879100442289883379253288726910816275285098306561737958710649201561970368512434178056501692981178595781274392275629637167175642158237487115110958331297979306117921851083413218088481749301515405699012441685244542942176880564859100664980650788964236786776101085367594169290942395550006848882413511980734477328597052148633671515260593728599549223774232684045207991838552547149865013260974917269871438123930977016235007748067655316106612457805055138969666982819442671833884708433400470590049155011541656312530532302202774156719104576569649193913324613500971654321935135046932304146583421249909705912590691265965576193293270521097035370006075718504050668881334419642175630152232124747322179480913984327180109225349868711628161860185013358277218345314143990811499304825742144338425000878685740009113078747896034111943077713424577640656323475268965916183380104350076411027810126336289559107474877204657794708236918220898808024931574369596726666154996816183450207776071950920274657857889087169404606931964601850413540112919606114646263193093291309879059955507648567830218042727807143186082621590759415577213927909322799386054909059113843951243156496606362335442787333610638089738989317122420363442328115217582672017730639347259024135545869201594940332365172109636381319773519071624403426413317210389524515483225430093059537851109245482688007162112778592973929456780389126662674098808697673713839564743098911274274632380081234657181179269314188830746697250218631996489129234081178721557638111258655375538850027972638277746814056265071274002665896285949831613112153964745326180427785682038588554725393856748096113584349200911100599289974124761017504720043830906885040338813659336637218136292080361792976326858286158526380207096785301318813293128354685597042420043847726218203439130734549185002489574342658160739930124877617408476089393298455100983523020932164745123804794318730893876793159680097176237886973143239152896258289745226240908517349152461041315959857943201221979917828713910273792793846428279369178580699005227383049662478717395068368237043137149622889676629181774276872688763234402244430624062033829627194440433778297696744447313962780963597424558311321560238222395123454007703706974411674661181636552047806336615302750145384094035754917829640502791607506384378194818428385122618290300203333361364439991594116144406024625895170564131972391018675789353576508098486343272059568294220848980505556352810766875430868722011127138322288421079539970698308525699908048506648630911251392843357499642379302743474159870955303007385591025289477797112948862302191416724728409758791976645299197441609377756786893625434622200179761928393366026163289156277224384150750778335952521942180266365814922347067246031505957525777865381765367754423992171024430012689819114843573655824137178726644663018642204968345345181454225083693938688057641030933300352215530026251302400687160679657806459966160883995520117744093921171024877313542369574005103137422053146931489800155915359446978274085879603865994407760238550343786995873789187152083098785211497668951052983077199791810177408422775704762038527586268289700753225024038026979747765309325185445666338622104194338270036890315506495472510622837992164752727083058821281110286798071743958647506809050796428526398060874918239587696562998334498434714482206051753475746038055885196635649158483490180515977160305748912036831258044887927416932301084584049174537968297388010517518363685887250771396581731488040200812948223336875845025385296460452627789120701648541250393717952877008545557030662172730586993688352714967636825280046898185493483772152064287893885648349442022034633000536281203668107499324564245229376514481788577905336334315732779223892907029672765782237185969382708574513737289974284222341355346329708146257791523285677742142160083601269048936377239333560765505976825199904806698619901259264033842508632483427962564379574868784077236314062961144990197207841628641067392102601355552288313652617930555996551034844888213462326040377991959189834798569407820944781098527020023032042495818978779150161181481357495585518081979514012517047597995198437532876670731180688921303066327535826034238109250278380555799038242840319882514040192011552323555524629635120006862135682001677911187756031193231095742705591133509037090784526134957522974725630832823093492757505886223614980688881052414859078483952699728423886596672160607240939788248246108294628991505690486127887539225299572205436304865549840592430178458995929339067453064058590548921249171229212064668690024785771550191107711048963287665350347026067573119348803713713503938595910679401388292870781357563720871098702760372129463370757718568048511691620337567267957019493755545306253240362299715726409142103835667586803200077500346316517564565829724686720856206674036226998569486283650837899607852211389779101105857818286210861314605835038619344246494505686259814690641284830020265491642610722764999276897908807906526919587883573707936615381794439168914775052984994079080375445586486426408872435592395064688913432393019431008392483557780072882050640684948958263742818203551549090227585839141433820227628530714785503040598404260354082609537633907787264766014956636031227339264393268716732888257054372395832042897224410239780911684714447585894030077940580947310595220403113330591002422679263953176066763479382587659606377663707030140662673866537967915189227700102020570739040339184918668646708388747081234921445681676251757157713701003292957053847869992192670795786002046207578503468420826131754410726115922025192686324125199837434692808177791456315982993245432631572547503529457935613376872995856272321118482371461764798578830466505040699648940157125744067281982144109021646232527468644898604636903429564319429330853262292913743203926098705138290982130713492693516236714994458795702844147436339067566155388566200081621949235003144465856171097677871006832334054986791278160446174359877386989827204836351993832785834953754506001822598103313220671715279338966255757914786221678389322481034573976562985753895553909037814691162518427199601949323086616962889349257317384844866070256071898734191170365638950958672959604124020613090039664022550239357288058193134699673133354291550696534737922693404227067029497621401495185286982115864980433057514604155331085331928409847634404118455165983368791608339676288042920167859048983152865262781526120218627376434265354517841488076327663637850326225064275276368605707697099308775908673728310443721573532581975830060769902688162539059242089719664011128581574404085080510731523115615285966016120405291260865751107053976910618566336137212615072785545077038269816112300574301512429120876958418196357702271593840005800909500709514990613634644040894229689695634339279391255430066127809482694653836114615637589246221795470645305955245658722559849474686959233388900971989666974587135716722190756893059025907600849242862528793540258828512951728048869114974977368235283006769695963621200021680869637960903888529419376103222872714943425477683630954761955347918677005454304340352177719771268041304841723164574655056811432252952965531817836705773319358606490545021940670888340431836003276614137214348926636832723917702234239283236751075321278723584667610226477332210894217304564758469410073842480918643149355781649883019528797504554006892895815100972871566035912842345012577349994488390487617304180236326695535621685457174169283158309992044154487761235235295162958241425770180936930785945063408644186692478701625800577843222843911722152832318145584728851119186206053335882042316351208877663014306086545351622551261695601664785706400345450874214919250364165787580987731747888765921647642811007254366925409462552470212018494815530521265889467876705227678025877288630050566141738320285707999964717632600002676436140540969491766969659818162160583976479252594768329099819535926513111261956091519209099697112364293387206770520883925829608108047689718705863656646453556605217246900264206667629353809554447693725099102593397242468267222472868997516277511023554350991404137728074318574179644633348582657398170492905166730185936016621774213179838062125831677400156921252267466396010553747714013405419613263329727531312215750647450201690175197142349274426797051917617496841872553159938711313714955309513321489342157737353033618683536978470803924763335154048065935359084973298882307233009129192674396663681680967880884104083502357464606944722180387835211608837487425701345088807276550496435583268098429123288732150970044002150412415220415864731992032444014891617278364938968572892504345707483088644616063666947599602762983455422268699296821886525892529284092115736705541306315871580346271896315827845516536313242345721674564657162893585382767647954265344224707228796180523203744578014446251655724770651110455960128382448424359552911389638526073638253188092150015029808174765019321797855557870481709853633014305253581830814019693044241947741933123909241504782576862447857868973807003957802466085425829171163776335130478000841956250635440344727751309314235712722320894110794989025754220183162070473469994617682312552079614930734842288140028083795585639272725748306433010160191770143897452161667665743732422510470796230455506579892125200094989861209466622828643432757376831462805014583695147675131881536169131637534056638093534291047338852633907994306302007585493764655298691836494976340563034430912496463378612805990296952103891540379988847798565981996915777620745912585537820792317350628273369357930064998170934183825880787107170971510845587126211001356420136435534159480822489162913836600979412901460472787867819530599588544826478914889128488959755699527812413114398980223217445302943682618026490759867946006708530474560170179325475224292836088699202058271083751258205366897594956539704656814288012194098582909117490664636676773841073496386363079867782383344964083124915502631668118224545820398637421897540202490484984522167030207063289426365510824634071996847389481548661457120839904254766536768741779281665841796309404632113734153741237430696150461253383126099570795346571170569866887425489248866605487226880696501226708440571707151864531531638245992978349041044610003575838891155908093269195937398610631619279614908076599140002280888490824636551954780600409402286837910889118717865018703370429033283297429415652276013626966544187434914871236542201221239786829822445553489600665481542401490452716429054240965983510668200358337223717699103848991066468719786735073503398487831474252199002190408695721399410655321678712656398414374700273468215771313378526904909820686374243164429847244090262103909414029994588859630131617594264272906351047484661301258475018542933732695971286112737146985652699866247355248416722189354615563014632398921488701009593323312154150558394883107748363295731531569639002959180948884316200114577629092296513076249024636695306732554431090811885847998212433401807854628423605983680055707005026451523613108068803202654745522084519137145383608201003622157188513355648931467146081939110674760687663579719405473026140902007373884705183053858535586441259676243119200476644760700122006143058511331125611051302981156319248207571433972132488885004358678851543348065749222471746011516378299761204885414365143423684457277605690111278807618525240726418529585148072851135670085251973264947837534784718678409115047429552737629605023360745339750972957008621321342929652950490382692224352211050599219283288649598915524008003565528189561638610408704498123345080990861180725425435967504101546245344308892613598555217206998485601575189322754841928717674729836977705500730285953169971454088916842742298134062103789593664261033053340143685162928454154775861135700078785741871133260012933859579605441738619586999338686255512747601339707898360507035516131282473071135537569509490175897155366379630076523422974394503051696551065960476059015398533367842090724640458742813137772485869764491916628145633746605957131423376650519281478250921176617705720735585524108284309039113743273469309101418341935008723316845178314385697425660589345025111235513973620362998899270017579493707747503290497874977999868634143492134267717237276502986450187525065619292023104047290274557431407136023961051249378387548121562621725380709252122765663332370016028206563710638619927438968110252950655661293177910058921910117881688840619908445497493383789829549961640158102111898250375481872997774073161938039968662029011206092549833557587126651885341211578180890916871692377156546522890712081227727666241716080816514717894353826636351802960276246791105090786935584336970459523159301255707711189484928176451627491112482151054609812228758376181633713786664667481348009647956556443321443795332321210565681234435205406201350724648673431339419377261285462861937680790363503954255176317564441726750334866250711915958350235302707489653810511671334375392972063706021104719841003936041861504647952464719371924652300355247187427720151725431727952995264712730827783705972342863592011815949155010572503802285941521065869001635873612867254717899896706853578162786357582830371881140785498355688312446936567680454679558274403200950746078680162664270813525434957065421937749514906028695556569165172495935798646395860831835684763365001861139887042194589646654245436075643543633661683321439057523103506001978565334008515834247249581221380409239673730409695466767720833970250738098799862851024211086283939245173407816515491289234013835931946746941271112282287350863057520227853288829129519014698677575212325632729231211957901204483638545022016466119671276111349543658693655777980087740820592740729157438978788384473576252075043835395749517040116947258712312788354996510829658459967404692142059503598608808555730948843270554604856818409587643585447542990715700790620779445947151827552878244963854329871331518923959689102978772885394765496332650102822030491058901471102505443707480225996098306254065626291786702131398581786551434353565131752915079116405770620655456875062978264045732554215345327020972308941853821887326777183687187519994783381291422032900640515755383791127877386037272355070273895221978811624324550573269728692889684037620531387153613134863208375787212501675578055878148971042929761905857684549370695582320669955057531688648254691055757411682236153543178583478801335103048227425902743795739426319575704178226113532941396195296125699126241076194110676101364379169149008052452406047612068681503914460936544117238684194243766964083873571238687825402470410646350476696545306219037079642359174162336318526329620931179800375085781569046975364089230547349088946091887190606577141999766859488258874907650446861590755397169230318314559723245372100284697096412664252353987848239250736156686045033806559510659905141429192677799499124354934150208550625172746175941470642617983512853709325637763572577185297260669162667264876349552255239814255016610830991301595590941422087010635231106595814997714049451725812172146165267363869689974611564583863199823567924838525228917378692804449921814472436865968421656968851318086814720293770242922164418512799436763936794583271880662802582740899825261374694678132537766040502492039454791691702276355741828556374130645289312516855791495145969548038133004443210777179938542138155148212079021191429585819963689901683257216386974501268881357059850947837334700109406990834861168128504840252990483030593621209575382198502297414812450426744134034125206637298479949840370337492090883526411098797022288818621072471811169242689312625561672627384540635829316861532430529360322323925099356060285542423063340498253146064536001341191581735676864052952542048140533850867810689991313539941469989128336092335835148485543230288398901434340293937106243417495124841944429101126521093430333023621792405128786297900345136024603455341591119475314395434381285076501736762411016321173377949243873119801359060791531482046985555250889227577538639742135866963676399086751334096478054434599750581322303811176201134193422960172554502929354133967881145865005593207520056479645758748482001868183858736244678995256477260806059951210904870305078545431727453972633288017104926415186504554599294788157167757252074663213878004660193404361763240801863341489976348346329703217392568885771530250480336567625422857113096939955100265607239816453784899583093636829156568637072368257126711924131644208386482157148898008103112128241208631775084485092260016198065881464210869008411915738324354544501242310922352123024402037345356591615035003720517372574507225704274405069124024487490638076089488469652725876899594391172852911261695090719761478258400997226232575688790209091223242631025661601241698725044557613368641798094649596963595198407779117130252964239671354631402614428785501314175332070116807646346540773795204764204815734153713243592771527023978349229202718006603393211024202054039927801675010688589246317269289231304471521777708938827125796173040196711011823083254361381786286786712673732233970018797957090931471092930651683051184684649958614368180879078537174368671352376431142364455830729145589511287354355483705994066296753986004727491158478592837255212983792397274800470751501871724468749703906664535318261643448010443765260645681270562723453758496631877908509268498973790080686680104136417142718126957075391523986785938637177369749110443324433350814824385478934266470784432246889295939384838113092323554942006609839990019603324882807457461165955093169642916595294510357043945412481379321293738741920547507558335960793223896344004125327421344778870101935214603771446232491681293509666006940105408108556813406518384174812382507221952963685478218849062660333352802662144828047127108528719771909701061773650482052611864492466382022805575412869691613056182718264618118201050324168740276216344748508796725298116295440680487745736541102285981216441659850394103581588357593730967242861564831021324100001378267219856893781551354548279870053073157631421272162143065191107897054474473099418896528287001984761566054615510978488498706725713608082858417367575459531835580943833575476522611085473808640332340398368305348080250320868870742998653663471292497800340510827651019038948988280399769894183388366206839578173466575245616953373895167575498385191315233138642757309198825277215327686292970245011397341673808893269957514780298967078182267165387797092639779581047453352196338130536462869342523861400021829566676764464748263630124230220611031318094355982790541280836497572040895605831531641654374577465555812461373999022762969352659028239068561303106771915229531280100160584539339565092772771336712133281615517372263303416999741027724485512006434878244785730435245110025672542420605624059413910878904434802960800616079544759333138931061685735993408527059577916760950996427676115392277237744965756420715815447996558632639745674400828147636111426190206628411482346172994361742488615759817346244282896628420634009904328572980997530771497842644602361017241491507211185775965219370030039646926825015116851631809734492363320368330044114519196432739701418480874816259290533111363546650908166035999974072236050506938911654951474527392591924844753284952470187839924580899451678749853871267687361357509764130498192441798633645930739204231204513014258435649286297764023433857568933127087579144400891189675422436766380397784533531099006578006483349413468271192463079363172849819767187868080984515268352605882047405985649380014810795172147256214162630234336779491957998071829700704857460342537960144679904376421860996764859525483031745711295280001076211048394849268448898481699369002310297498307952150688801640070864413450663500824395012033702053641696678894074648870563917152212834224065702350916251829599460386553481932825538420700985397104015127768445289773336997342098535853636842686472490860563182671436127642499560128205845704565087295586360021755266393683517958611000134927484175556695047982151692524430307734115682385429441761600621013595466720483093854150749269184708963243601869751760904010211185888469260214284505692195037231785304261391340619681020605547266619841474082182451900437642474060977301144699033033310204438613948550427395101230037981982326098489756454964230734266867231145918459550935911728540237028762816717234128278311926156896817928176012320855206901473103034580811013408521732432139777099770925804243295547842749015334217227416179574439243776117940176394021013233881914038994102047513444798595903757756813656496385567261719040801224556809694213786046683339756396774810291955057636001829982128601583694363532059860098686430043401262902742029513757658598733022048073955048228584567187611379529489988701033621359143236697078084011381625536197272956039263179916585059856232024646146246584158762573698378921024349708897125069574502954137101427385690058083298616343306412513086451173628270726372484923877035992784894921831001053849896872800428252332496735937991097663900967958271785460357888358451494745842678650585441235116288853538420453276541269703706952175365013259424677698105130805883262142291057666651628792226011952412338380104922535917380279422018868647778430593663799885673246928984119912011262551383202769974476879224225177014544189771427323915652912703730291146151399256590109083262477069854151544302684943081773052779332948244212527526173569303281413273701681871581897699658380796218992996999461703881131088682161083745033442102941590546136527396991992728473984118931791034360363372801741879615117392013556979847830627990372359399885361112843399298819262085636390469404132245346032117189410602581450091987424580282703452452640801053433489997357927155927222814845325865911226707145050251112856884009566018921193052673293431635781561715388578400610456929601924262602816222068790374075538016420396787375242148571768900106781743641917267231328975364675189000861007059178335886764454501509579990006646091942865221270937543904022467442783722326890483741898097655860723421507017020542374225464059387732089837585320626838979286953922229419475347969689196062522664731244120865258923999081202882072667443910538174459648540765108916007116872706286208108762533238642784923971632565252011835981577517865974229258342714340535078731567673277332430355128825416284745115473677770803658177160006210011463993759095228232791976767647500161299246713264429746060826996672339568470558570474967360126626513043936626603092031163689155661582665128384247145062131101272011726330161293717383862597231211196487469698894089528940813380010904640341889818599512370739799281307854382623875127734759459516967957238373376546642087980269356282381505373843105327803202435220778753429186902118714746882587357869672542585152084813410841533950044762378878679469957286260475776029677052479687282412756148320572331112678868859030169001942045215382026908853784346420470700157744123729366465330128780715089073463303763684429653783768778360862303551015699543036290265843239090384924113669579243824355002927014295130748565957964105540486333137690474952502094922898297517643410241876526663528647647394935931955539483560276576137561819248049643660833480716477266278120355657775457850625597309285848295913303933964943370537364038036934479219984379998645368321095626587144307632956308052472778125547065444503022988064821040547123485758946042272318153133297303163210258805537085383668632346090805675286285757600757721098245644206137895201193171322335534373240155981821538123160456915102109123355622141622952395959430859636164702370522149469690508499493402206848306134757182080249487562942612314461557564691332824861712166852210194060916778603567067839135980102394251197338487344950723793429136101532402043023152073929757964387773151751448777503857677386010838325452170184057427288584364165430748359064670627385484435863072567091828058397627686310067489937174192743410758549008432024041650477542269879370319534050403451709538040251863927152744263990991105573529950596829719930562887570426128624372790160217470592752142678809274934044979788356974342617610214038972329901491974904438535599752659234072322002835430649815254667213060813763686521155417038284813474575236032931253991452907062344215687697737237126955124896468519701970033717863231871028323914178451917436669090646051770287889511463349358500653486974554675016114050496104753157494850516650640896889388730779402796378574433114137853064648423868818997195004398489592107256803786793203578249711438843393605175073167029497107961071768673831132633894767315343860024541274882146162314172199613162847995784838097988889482042467102551408573514600721380310282515459363136411091788641860485585394884490113545950612282320231041755251201930892456414850025428920357305923325844588520151300258848220857144505660631381010086805855655547777994512885020708773905211682579047427315445507853203050203420374422914614613592378447622159082029526276472934621877345092909489744285337643392808164722054373252684240386478355447763261677533136449576687362874290457168499985125476665357221008737341929670963537687705020300923878791166339528141677493406879971788221283684927682980656663660700697202617192131665980899568537196520494793304367724829940772200515672033608768441594806882243245635613883525258172490230477060244265889869753442043004865035851287185271365153725139905931771829511449095793915585081991843315367483003385697393100860570905454610420028790091019298340350195731316874936009447721006032637448755642047932972739727883613215749011834350379640568078963460981721891106335253924443102401068708608831783161459347169341614842139257858158553645076174478457289216186965761495790467616938204757249255732803815958153438232536365470621082533506963744867264151940869705957509540615546043810098996690785227067169109607212701577976019133927886836838385586970907408402503303632860049715344680910730879585253410028931487815347066097607059133652361588103562553283464054447679477757523045277270130104209561836166739768239863504532491099110838680470769535430152598424053211660951886258107615513696482070642076601435288639841728833691783509872962843113819942960424487820209299773481355523531896780165959395683293317567723147161853259079688248940714964567932331534112960532410138695953250239585705884496947400514115861807018615096636565244483596836594830314923189716990388750788061987578767843102875748894161387079662497874389736036705609952787939576530027152895438840299783111966280125198646184510638178940691598144256721111158482813862390064898993420457991714935316511529834601169144265826335809240737702784565993802573613484987017769536586706497865990128881943695893064394850445428671955053124295336218797785188519509943231616414460698386605993567294095877489986293420479450616329330811604620480326837712359703724962160673226043398410707977490532439751530315237911204055081652859426316501311453645456675522007810498118460486735085798619698596399603277899883204437579726672356983183300521446933864344703008949261256413711361951771269114855199420140992523396244564886268045699133387919233455874157013808523174587734096571746150322002965343534539473305286028123754404332625881174070816369197905746965848603412344361733062694947731432209301664270814573650469631345232642498590229221329787426328690352732411712265500383201930385757111791053391026555889475826882206309809485158784975494367406916859334457957024887155807424567170607659826124667019650615043467997775463107219203378085719255534785832654956881797226225162617786501937448101960127209963312268166487486344668683197131511054422539688547831603815187172208968336866548620622025213590028984822806590218574265531616895967546621240448671671675139151333671890169104842565732741414711205753675033585463553625317765850819522000753856896895396551278235347060963736575179632734793180513399482946052923916747581082719023689311704787860663991609525109626162933312087796342447350949518892170302185534950578657867886325616161392842258236971202235861312775355789963311525617553088973006319025080104885852244532027871728642952849793023591333652307543038579483416616635244808374693775122212389103995352465429300203127470872214455384093418137248435023937981430380796716532137509045756521088864767125159565357285982989131259672699869316899545276923487578869997482839785267391032000847186467955930965546743992694031346519915559872198667387042944979836847280625351661072250959661771595297789906226054484283646367334297163515260468996064206738572866610425294722454471470345874203796447725428935988679465925940980778459302680501243377006731012007824732662425731840709832387902936810776903469795584317648094285764946384905213064555857778195343639272553822239715950101441075920776888140273262109893649982530562590165793161137546041295437751376385431479037632554388806186635554756418747891267723959571272250651023859502588676439114872408926012186298390682727477560327175463232951747511428616248696001978791455998221511471953068157820732793547598149879477896286675949260840648547706485597768198398962555459613908966965684046390990917937583232964849590306134529668556583402835599743573910905692343665945827236536402088527476563677261269902331046295859693579928663265535608534120435422098562777591691869409645114284043600535757959341917655840457386477680734434366703454275020598187773330590603842721427110162264542539524228945261171812980966014350268125743397906849293093949431504036692524459099988815501656112719834643807869797957634632318681280255646497926276527073438051705329676754172370402642598061333275663470740891889840819554438327282523800155776011278927952311051992346141111144258211947483497646740500835626167665702393639566719172885238159766054799269355361174931572914601339343057507108909341050330156234066437958387650985017346188666040882899806048536557755730137730920824005829100277208330076231518051535985975279579747285378933638373496548045212680507686229457234253772698244435401229487984239810736963207911120277404631945371335714990371762914179485611338970734279035593699445679036634606305252693296259903747511283826607099192186512705700431528224901813556669246282468691634012564971029008763174470490594833050458810985099469108191544074494978027382764212956105885211528183024764179613683884346250276487960079415218098566302407416251804927668565208945562592736578157234281436355890189903637231156335495415261403695450045574621621381634344505673144745188524203163875781629112527118445477376504894769079093216663117091254416211493849355490013587982274309118870510292803849369402577782009696539296763747809539212520227612721774703851361681586899719291041138303459806807887416949147331849979355938397736661932398947749674844308836365474068666635717307690911548382940831033674709690678768817747653905193048419257541059063823453616789453785900577580894867813251627393542141007739290536271290242493962082500929837051885560735971027451208794947574883317114721664419558058732229967769671958561701084766191217032371659082834361842821305419720407518207190832273382166329869562479699230365279058078987500279609916058945559670877756040398403902248219893343936280044166149600568944908185848399859618919447824025172773348267855453328531924306122455195921222619091693853518999842254352422729614445061310144994606300506704761269180272155090059812263063846112482052538326687856126522185189735955032220724571800610438559000232064406012578275383070671029387107445689092356671901773416881742997848993152516028182420840290781624186681815932346103748420328251360893149691821936025258743958805457395326747614445222598194608501004815847889762057161430000176926431171544344081679514678821216492285147422515558286443239592554837909158786503732302804052043427926949359943449181219177316613815129518423480056258751401443253063549222258865624234644640896009363802956324630704468265609898207019440813127493195678471510608319030904639464909495813796327372754892794372306440170234811446826893249052168947513067854414421951901333323965110815670457585090826640507888378692594260211044268516075973437042595241277072810517131590545556147989859286299178199255267729610370081911477986207098156972884482147541231555414854986187732300155770950997193878729943341817997888317475336066399956616461885231318361547519055429314170573114202281810154265711865274065819443140063828120678973414624260522360353145537022797279080949328618117519856454024802355993854388786041021762380194776702163395476106848261721384010011334281407995272083370512260759374698621356814789129190374920790705240060163652886268317728026891813464309818330680096333011508276372618109541509163312280778194175774412550853519085908046985468435414721792102910304559250282804412885173234912646922097637389607054355235155705453948226445630174394673279145516153275224294714807956233795028730066447035921627178114134006143040148391803576787852215132353872385236611606767892715592640899643943493584959542029252183374423453954323536642173057072090222094339460301093615008679221085222327245864185850894338694307848843665027907700472165013947737419412076723930666815185007606219286898908898360795271818931070250207721291316685291064389379221650134543189083156318155766387968916072486006316983694846261129274683350042952471938579017312659185477627068135846829262930131342594816974304187582964059120305081602462010518077938518346280468910935985289512399034381593062033567191324766287614599690589804447693387509828291586407830615598265314997913299781670811111314657568089229460762420646326652534685788831013364978011480772129193360232562855727363514506255427179572778400405088452348137046335158894063139949406206829006313296714896670852192434651175492393691630397108557170444209900712787352915890143899844023681950428245231528202979792704933777386247256908502437578703236931389473177258566747046997040901012743001059943120361556122063714629933693077278825084426572395736171139142925632636835515738998112453539213074390329031106476553775005963740435480003854010342433197633109444282030125530516666096306680815214378761047656751944696483537215774233540009624072794862488234989067282237614772451366160396258116903545561349813961315168221665591434717250516371531887424368991307287559965632183047327965284751232553938002122361470403815463906510327100723782398334189262588510875697951128954982856799270425656523626486058539388470115738821607487499370708895352313477531297986281301072395629691883319516752964997407957169331977559318467318690624994438621292485501257153362827812746914421027717626522014214212391073258812374124997377806875134234550852044482905065730126134178406034512169278060561851716848216741331349588709313395807849571196164354036465273722560615428099361718784436885320193435009974007250342909041703392376155707780014283139594427801501141651230434522749865516438026345444674018622987353446220143832178069570128107539634107689295831212635560165784342145515380100895511028848249470364543455734081292827611777611653241726275142655484910719972928116572492747116949255478082514551220574154393224630992141212707129202810715695298519474138106611325800334198801159549398587526022995938712106788053837733496570650555797457088775661009597040059752787748968008271624719419278798394215066756532477306702028113150951552953416018146787953233287571853504359624952099576471587902859038226130259913804206486560885649872986569687311821187809798086831232242164951256842698775977576329256250146028807997300880587970353355940694811526886580413877404324525041680755986696060666607180228973238923841150611677379730194556677651646964579948442413128429503897531304949026525387080961747375629855998176012401256264735086938759149620164383413246918236531900788596340118564170630211163491579665183360231614889497090572159953768827382304730118127045802755472209849515868887044075626758014650078307906464008176858857657087232374589831543436424239846686485160180148797397048107224379312192937757516373833100616199759795936202642220805408974893836557057449803408279715360525277471294885583502166357987673001469349258496452042293407783921207230593622805355834687211269320752829586329433224536280773553568520600646016528709915764807276357385898496312787987632814586049604962490952719826270780007408540722856483985429923067231868158820580240657945783345059331307261363987580440422195785886826937981665206344791213349677797243709168081287405123364484436736884767140229715246931879213382857152556641091063938474939059910647786907015194531157455804020192673259503096249838655530823388094139107111421877200847506912605019525649405607025710328114567308948887381656746498511861907465554519371723186203816793684793291166719775965971637263490841582328154447298837587980532331858359308623208782402330418844279135794004313339424990048431157664608036473566286310417741824894853503122525644734884536144239146432536434375626875155159048317342428642437568004521487714976682792500675470960612678006659576505591928991610369852123666376068576611650321459840419414824750751489279342231717079910633819711661473802467194327127696311596771784900862848656869695159022693604524794921359617824390343015783227214287219972413085729071727189501301231621627261480340663563890152922585115212334121334335567061517966758321705793444993643843278526208287337104184711274488463458372544185465430623611355492223551985080250756916359982855014276789021550250999931132123161591470882048531934925406217578707254414832017807584564919213241006322967701490237242330146820105341126573931081880652806358230339061015665937581883471601127183910612654447730686222163736323830747437809885039057873692973025912896952698782719515766421906035063084986866833213205178352320862107874896775987149873903485124431450638634009853053109573418600423444774476040524846199825536766522960208909201329857192183304677076686174139567874892066311810429093642766550327639128361583510308208455820286024086832982771260027954096993653173855710644846011398127933168005430773896561300884352741431488308560766327174539962192304434743377047785190544180810043355078447499774975683394136630934505028571272748043872489965506606902004138723724975116039667497757528486057489663318950630578115718832176790907054966346925755836753093882583825291006678757840703039378243144794852137039639013308228682627675561152405304618751808274199696592791904530085347173419099964005188637101043538649425244547686263412075071299886904039020885051646648860862366668904259814993641251111139769599059049127696534593659599122626303931737426449498522561611712339100323296315441133066306599466696038062458490680018972630413605606211084919955832130353285047039705242672106450268835055765639856731418554484849163953726049473681748176706808420431656842457878949413088334523474191325330876906073897607675994091727478524311329486575276604708543967555606888572979576618244711940315638574243119643572638513432462237026757769364312822584959254087798820671851919479962341504358085478352463189200559467025049142809390998770901275357878073383744947915063923628343952827293710930524611903029172586496421108320991517086510963246545197308553368077986052998634426071254857257080483048620405664866803867583701422486826409294338270581277211458933777342985535080084411369674834976654025433572193620041363937061562000745832826066050291344374576043032419656627384179893576497025353421939832499510002344399248352746570744954520079074458174716124630524635319312534419879712881901714632429231804252437890619771522170164677108274281837044411616633444597617764173684674599992223508928370171096879510732753944440455631233360651337029873780281926749698703183269161174172589445533184639780729182924969630461225978434161998604565768541986335088576242731104870514659724297998853147099749980337522477513602251649396398570743480620792288762729996679672263834206897428687024581146112140875891572318150840489542361879378889535912370058847345394155011264874449177059965737239388206099093501819002680778424978286767934490454220614612926631882057735726239199939226285694678726849671986999564484711813245297835970781276037082537714607318531322154653846296802136842189108419040848530961030477803649055801932326560794191861491478472806260524877821980764692843157907804386597889972291311864499269459563034920002764358960677530243256611266583527917895388136745419662476668319756919977850883871236865792017686205975631104857607813911530544465478499565172783765658417900845225654221227690517241677946694958827752338090600615479588072485721783073128688362400589803010611908945329660014318663340630066470380139913873642831212912771841518885111455057835222742331951569361336413166114125965427993524773431317612062488814487692235201972310719611070885884603377705426579390397772976223820811050290413827084080159367327380952891541089892190785945050637129483407902120705367546300726761760198201558497769724848508066152260934053727000413320068777925564434580297452960808824081304810463569426108622846312903273094964739678688964496300703630547546654696693981598838729158333509036874908188036009895542160864043653381192250371609980633225200011012522008366025266182344302749958283777272575450968152954251555263416338698377619666283568242318228194229753676939064087980054201034004359158440955631693637442791654060759190281426953661651524931472936952469838708945679857213751834594481323277379225127567010949501252089076726680678279794610652435819615296258901249731300167089798948849668851225298533058387158321182680757777156118145918482851246113499881485978050609699927557240291291892805077041971609945141566745531785955521541863508823165352270558231162941634438265851405807686142446835332686006680255088119490371018543897290019991250716174063243501050962267578777751910090704844871676851327209376136591379031801196660089123852744663553688103988381181886330198383042972021252568415961722855840940061021295228418724113390487420214235959272414693618745846715639136385006104583361031694899285274109877156477786838711844559774368485210563907782934535098347357021331782405870799225875014449366250384729478004180707182555811315552472913862860511163327538669289112184891205605327236032415075621166837818442508920142352210617041560256903554346619318142711772791663314829847249962087811931002143456024067757021938729761482199592180042777355918988230956268214351086194072897204798103141749329986876000951344817909590639264249593600107841238681494778770588281638722644010590279252693008233857577505613848460462749300255152584373774975187428140714588240609279720414018974924022724187804094693580011266969530151176616200512765599345213552143978043732888009949619374102961922172766631363761592152494701603922512488867763816461197976962672059769042885641771437278752554468539303593173839518390704323528921448265630393359979401363262719470713763658066792881836565689491765219431782539013468431362230709073467503671860659330597937691701806713186803776759681010534481998814322177399184614258886660046695058777660484825366936262774010142294497348055041924061673719004816669457427899269847407785910858335379367527398007669004718784731436948088311700295161630132970438079749684979017968163843566468956611685652838583413494147471580309153232266412521095594773300307267592959824665119170500619390498960040230292272126933049630905744245124483752105106564499356070383033045875165673228483245148723681306399496230190948238119687960435701325434200282720600200959307141020589345515327135988967999413879311274107196299852669893243516906735404356945438709323193256255648304155376715020339074802003990969030764226615530343983996736683139482103195290079622022169470039013082135790490031529908632698705156234073898745155713039088810847574623018943081124831892819627337845113915771605244613010536176848041775029359718237030417022159603723414447301602822185383076528227290902980009890851596810185691838246661647418820660207401219678259316740660353494962841979524663633079476559088075153614535897407050426510247946640210611017479766314097906449299716649781009276398427853035111251126861127370062148815510948408474464746749181418665507630060757336829835485109179121515510158984561566481237779634866757426932996536102178817313760724647996367252950480218623830699158730517692061465426381820143700969026551557227826820342641462237057714883734523727422659308043491802166530164937155678386856536121615780828090728324021655346106184399962809138455328559067904947041779957176999097551361581372776219861226805420261636174668026192793532448608952739450195829872441141185574779280555233936171018225295982589510915111193776517073884732616468519313828979776255078320842880815528116056775475767661133944485971329946542465139771692633384350933196265558116435157593596787036347467712180419117722902450509185752895186862034175060405392140235579296173516274952745541005669150325777646960867318674652429336536656311373936746349125140461645616993174112646353157889018881253122056114759588640280349025817144991600274277727960851653181668167389818694030666305863200683615841276481118196122070899912294092144959198026857729906325487191602477272538315198041792968596917041706413898341022239819928258284549070306260691725804664436595128304783033897988319852922961243363643838219232015739821104564310429677828423021220352128984874906423106250916003850047234342702943317656773873020940567213771002919973024782178809967754066131462695580107289232614959514701569102583607723627756442436737124433461356952124197632589077151384992192001754935673195427997809563747885558854689064945409755056074806092698392975232146839164771731035438289031739372053860875126670854402891437895760219591611709142275409113490364502009158466607262188928241906066953673036751684052524250270134183194959938128766836713087050618815660579536711617374724983983753885851804205250680348806978501557313217732595992740518205418485511490721718030169777302798731521154218103859880876410862450556051048505435451891829273253385135498976902380187925800287889908549206578416631659141361727679959689833013620144199158824009715435534266499451626387538093491171890177572842533385472944719812422258220527390925073272948483293104215346728942948954268085551697683016579895266749507633065409974714975962800490199907917844397332280635376188796125262328626809400459192320102777731761430733865391235101988491494217936992666209808006984327880429080056691820820496285082741899318352936044947749534639619250415589835913533680223012544094658290904575760336262150187533512891253727687027174059265594670219838074281967932986747042472644202273425656773303491023169859173582162147926672855854455583521008270843151876882816470431982877358373269243126971771034033199566641752706099076114159163846139233877132170963296448553229310724145259613251322163721457650669692597665245823875979039590050668564608499859302570606985154258061176185412342873986275823360695744662022273955180906578156165347776301429483677810135115718918060158451206141126985213278476462819220146657537345320298945484792298284580928696592041160105720262013177657216831640767569922757260622653173819017671288474964639350400092404816297708370141602889833148921064531520556153379288161311177603485434534500328819941774486185835690255894124107090595008015997853295236770289169689871393625874097222490145575572452804299584981382988397930728712045456369164201050234696495696082154118904586170824907370972417607286148976043759428826354765633342175739581047021496401553238359915824877218472810225972989711324124811731916089972163232740621201037724488823210933363678751305988223671027917895562692074486221348532513873060490217567126206654667151502329875187750538822844946913252825994077389670133561884915057421496576147638735245406246704775889981235877394315528065827302828417226482349033687357609766125447518998915226183460020424805914916444098933685695423072531728911227825692435166677941875205779678322254779884894814061866440927625798046186533878971725920590906691150857686352237471160846223279838468988831893060053541025337380643025205343031623274083258451713411960486075298728778160829047951998812424514100729673316099857041401492987470779109506203698231501255477085630981040305943068919425334375144495450391851432863749931569647791881860267054157358813030161827537225577209447166661356044957163177809528309058818019445473189512703232351686696832445708521874031708079710543783293564410021223455097129029961859040799446514166334293203239651691847164342553838634813275659886528325963479173344455969109319276577754169921239839917659574348503918331624825047383109662230958449544089854817950326713206464434513569219561342913836433780268578979272231689443516536251653029157297836542608134828898237256033839480394404293916630184461790172383463910669175952546958124785778732574998489806364434614365066299487390869417453492753832587915966738411630723631314047005920038186496505649313124373366284450746411183744219154283447475168076860326336488596865101514515036985984833349335578808289168256839755073162462970843208397102197405119250338312737994048901106182134625193529497753781553818064392426289427236384868965496413834967173372090165824720772397696500986229786476872815852387004738706273749964151821305589665205503586747812753981169108368052733301983146383717041299107298642203160421634472101739928800799946502429222759299534019652224685191443970719123541684155797521528778553608061129809342376737969544565952693506177867563799861728580578170544075554113332561334949447707083805813152905735526167185988602376156305398421888332304660016390893567677723729402208636870786981415427357145746050533602265089930875492869462970405298898358704116839645039083600548108354491541865465856633018244612023910867107672428117246322814304436998672951285538530491205014831572888756652579473291570914152276905586326376195777548804361071658259599076822316678105735236466725307705017705084637887048677366936188361051417280472527126886923608133990536114412737161403334588160624472145520108866115377685159971973219901030583124100575430038940339826388988790760210587949005846278785903703278059677224370586506698370974911929451052163929464866464164227778799523293947232110955108396620974499118676000794785075321989617982240753840500626348353052531101520749276016529530700374531357788059965236623660320758975532693668920957355208911273853053665010132426178098765367976022543487326194627672281551811051758783062833400886547288210369902459248498797033273914368483672168210288943282752431492486576603048769120392703531204856353295567469381515785271420469533581771849311263300187253672240779281424217141315043842059849169522998212741338583508930503021944730994536535354290788751007425710145102472376622832746159726822512917451442490876856206605819240677204400297080613054768946718108472673105739626247410912761933203758561416787433792180811938983783378356961739045821067979732948762040464860791496121474857924332452945046600970984845382392925905850057448084358693349970031648153881984452566201900074721145622187904435042334532883481839306036928447925254481600209693588474312674002463461877691107882370121022589812606114000160045457181612138445501345111185610866615778366664745161446119271328237023767216005497188980220782289566394527049566959924490225661116691849036544792073604988128482090229279986468791450920351069868137993744628130907361971442126117614090372140304958165565989932172065202055223965866830654250322591736861766444352721708079935659230741733738769540407744762905317902360921711517339441920133764321625898570239294363155214894579500440507736144448981522730676849445254009247186888166288572276545691165129494872478329927869030316564463385290401645546900111965492905867860461429786661315625689186563400765922800292646000802352082302521255537393973385645123678075883738007576839035169849666673000986720658126622009389276602616303907151992431289865930362038542907522085724915587025479081819021733375609921060609579505362290319930208738476065116136294159923468632786605037314951018130655682047854749145371610603685956199566091064968283378460213088068846072673876872768499230797953753082290182067223206808576542193384254843975104350548233999169873824576215759078406734233404108879490474864817667069159965566665179501370267667133311584981057873078624942918580494953053476016980706298583796556917001242884323323393578931456516665802314719573794337874721006545446447522165083701478122153041233236348077889077776779243061609172926538985717249930375287165591608137588811265561938048261676485610212994800438131261274795258563933290013653468633677328437003264565311152337077001281406593050179046107577347204712565227673781506527034410042739450669066929482640919366535285251429095766034622210657721315398061430228858259238136613881845623795555569125029412801819132195998411017082351779158884175675165354100073764386405075620724102706153782123451168357543935988732478891724883162037638989922856950523088480262235315126331369152850605555608642984336679033021289529752333316921082422774099768640171972986522307886681637327611529328893578597234268738064065596673641462221718183279868626335000947016627279751679763363858178500182973177291103053915987284463111354770856050017582331091243521005794558631910627863882632679737755656213246841682534948955708564303178001393705853420175964889661081156363221753169871791535426817270910103671355661974680679413771748073753167021872321688729768317067753045603834822521148730735997837424543576827347289902303749244900814331737380889570904573058918984835521515144240669998917079478029540964107656475003335826539760833502019186774944938179680573323422395418017581951503089904801972506484620102473589312906755199120932406059902536577856122080361326646134189602989229502389639971164382028686761283885906058007443485870779000840559582324555693349541467196338399662250431157068550007276139520111117449871489092644750530251134515627061703968495146485262296738612874751055154469279002006757703298476966678683184618947446321981452755649392143971632453127152368597023535192526031559428761058579364356787717655026574100787402783386582999441638410005459447964138291866284464249579727281857245716910527112964050926403330653853673332764288670593331939357844844320603878922926406271484147091356521116161069949658692205936669037038202809153250307655442055484754596090905811702607691452240127848829715786122825543942651857049985522157710692991033680281658242964183459110181958385438386886780322001494565010512162119381654388226393241973620397557700575510794654540536112023369500202818437861929256685583823556297629013141268245411119806777662633649474294799276208119255960764637988041967697179874798982841708447473985869692048344255645861916519543095177025745008393684913563900935277255486794555684340861141288044962404844548444987831197410880198550124263002595230555572496189899825941527035375183299714690583366262158832082549453932014633023756967881462356926212446532166274461670776950076181576924530206413913748505663628676912270069765207805475811652382032592035065417029519244656110009357843659571286048856054102238064262290425907108748504712539761637939046910304261768111724150548145903887804466329922825508961700998470296406944709050514645682404195000388428363587929749936122145073070938128889050735050111031239713412348769430649457249429984319357426285784435402622893372458205829699284243267658637388040587997551353546907875725731716194440622351954437787443661710814776061639289705539962362362919087578866973936113576928604664031706062727616608817565651975083087399006344923956039153560859542036853014792564521683360554279833319576806478403707648185688165405419927486698030027031391963393596026338834839949786279200838798647434888800464527393662172460957542529657729126788608387866819635731194275587752912902567267403792636435847424444167384524780336637299847768627288012063267112630152644271783566224220672630518044647664163010752419385735810395950046393511815303204915566457522917767870294123831438804022188870017872789196545187483359089886649625533637577415313061730676791087479206087646869577360163821630954481312835283688240309085816397173154296739016810887865193934604999107475852371225109675779276827140633145275150089129344326810421469272639944122696624180196175137859135905951264111755648927109800566575803119161229062494743850960642044317935369780110911056751647908429642717710510500797745281540851522553150489815851075289451330499651860711021797052991290226319382075590566225945711146497307983981298406553379471170446805576833542142566898375955928236327476849980602662742917820409558302525588673188465939305784096441396977921754593462898878887403756775532715296916056232562590686310179708186112743159858904714344868386280243549378567269514688132342356418698993395922166578924223996796763382707827679105282163948366501469812891218674034679920736525194063009379282426027247860368526070612347804751046869843862027213872118235141641397838204470391166999202587112841618157339425555080752533077968417656227257947902526853417840295756837759219833100584801745454923800510901506651535250263061084734425175549082453339430525878960019697588147223720484229094382049832776678479395990512233726825948063126170206633413426318850631906961206702603896499781599578308530947915827141471017515936277634768726484238777013944783101824159015654861664732943094250642113970259629903719071762967974774672489090846410030081271141383053874204833524326683598490622511288489748157379619882790884173830377169825993270265521747693056233706572381904017147534515650423257258969564471284980916444917992616560927913826683613865369764293093002781183775161699336782570963199735136167112174369226942542490018637052204671513418692968978441802117285161297785102066311312862650125934687199349689957500853386991805576400690836017377514982177019769612613664972543655349025125970998472413451947395920221001037252437346920009380814219661862259796605021817846563459552817326376850353077803808534552943717066639851043923935680931163207192798040078575299435671474805205651210763355815424644999791714056303418111584191463916541234721544268129873857808074273648176178392816320234213761976051661434494778751746883436748572782586818940605064698636886675344900085043413018239483991640027022045948372661615769208091030071232791786039657156434095309218125040301846069787596789866683120201831776788092557228289967413761521007074734393131451065042063709655462226344167420982074175274048372837963312611314234831510381362456533514908477830156343440170767212113665703374144687108647372393367586376876106503626738491015341764836129762370966738359638284438582290101986486135562749977537586128195171086030671150930742653758252700962187141290979811734901970836812667263408941880163485342616486750682568143917555985574006594922210170855769115280576707185031993664763253646890947346078099011020602473669822988710546553025804182965673745983851677394521773635172213995862239575661357256214411016576549724370914351263506557010824339234989866495321338216235614540329701910337130085882458926128237639099996661267925116113562088519327123020429823262582992548006545321581784081942184342664600932734429743001108276325884655839164437148964305797120098809053787632149197564337784509133236938426028237344771237911534479843559332399223724928843599110202972882084293942209388436720461701311844729866093009315613961132089626699354457965622367486800069122597377435161361021885001229292002705287504254796662529455295038928866062571852902504675541811233792338398252874245894159724207083994191658204581755405864264781384234818361130544592518307421469865286275747332963142886509728432741491962507490409015956835065882486477567125040294629298049347667859773739298047463005402976857581952600621927816603449047557729758638039222907685659442595903115782555558845365974344725570027317556786777758282738224731054707522771563718720848747762997364901736993495686925403372060942827192619378456060300585042353625191023749714588721321940323756510775821009808084715486802390986898132873386835210916600744137903959400468881775173280315638259783051196809383716894656274414871586323997733778110345275861588116569576369848830493410901621622060519805797809241772614477092677490531507813843227615912966681922210804321100333076822391962818701305094082693101419066955569188299010540722569358733395424854170541038880913676040062422618086547007105862291917138764459309857252453873678786723886622731904178737121934884941911437666338294222086091079476553405947555116705578741570940364873059453852768510788110513523221066849514138616881107931525637404581501012899041463958106672550056592129762873906032815708345525876112536867521910457926056023324429080391806095175462271636121307900618078181515471205235751551119067701546295259353091695086697939990548466718475790184965036434054705677571292981406103539951885652159859921805413553335923865057086101289896316367073437724517465287464573354460324838304464478798375667074450572240966365845459046947230868436521558886455972834090285528211125337651100527012952051373646718856610301629674960202453200410269665412970906837296773795007491603098419304366771036184565456725586636407839673481476251417776862329211824023069797847975961004106895581109711050828228357341478639480375891874947485183273361290122677697175556811734807574330134898974179040334766325970127013538103238078060048490554205567271320371795766119250881834619139117522625264129034184421997309741103384339615122618922932279499645014756259290244207970544202178735522223630824814724087788557574583313299912413175453831318690674228933980118579252261983782387617834210484124235033954119948532474711261190722114407247643392104686443449310185746954897934543299716991254517150897857448987399226971309267223642150087202190246713967454800309921019089610163942021016585265110878312015381773678614206992532174024008016938510838809082609855822429270662658457976694939393225010215993927605636745632071005133318729021083571849543327930586900460304307197289664036949495167919704448983628642211630040049085729577590192335258178376442871787860743769291323369276029608644892127828751563518776270047850501118343962042009877857004702888551154125761425218339342214788005470016649716129895797484145483126627592254237735024567207415620544333616705964038355793759228195288901361952476485050301540492061867579080697626803034515206986825698345699404873368607115238662563069095388028001832346093763692058975052302167944480150558875755848660252721833909620857222065769895053309050223527602549292755397841496601534338803138320737486539336951518803144154127576049632718068021526163136070584687064494231037526358189224259173049186502463374428165057347851201421310585909381300229168258672397495865939061097271875210791471998501301927990005465834794708721186857801464111005234393821064482305813396204476205405048005966216783509254234803671773440653447276658266562964560781953507994922771210447237560585298600994155554074075358418088223446342264978679461113645367860554508613619639473516596699640758762093858761565282943489463571679434101345915400266064184016803379903400758957198665205161271374018875490759160574258072539483927428145917830394818050895472135961327472181997254278992301254950932776607560014861169153041771610974297715213940924363557395235031808749531293516166387420880871433160896359570173594492324448209235592799275958559702225478997585633097126926021498824760720796025630941527505704572366474893847963243650196135062851983466629705877598296035285481023269644984595250217876060665392199741064950430649492915388659831442649708716335016591872740213717472670986356648252179684778831002360811379013764002675703532657113691532493681755371980782073246104010559135643545648127817553277143309450428130232166735188062480046577342800469892993024222574744937686693833998539530509162125760338611715791183340068260359236950929910665730540685462024726229905462607746978645928574409294647474880420788458559531186293782704308927135834592511965704135062988957451655419670952755913026335396751597860077851749760279793765449877701565066634355196319772160127659091554538655041646465428079354596673145233630196222377065855142506620594958578138852053468914264792686880838009439320068960225373888003373820410728444962409961223227869768894233918538326967475277917851672592532341217038429679638062651661630593127036916867485175121268849881533001684231587180689663442132834418881417874125940889895598198171178491949572076998340706661770279795689077797639665427609653290546478333024320840185790950835068654032044223844446265969536425681066094028656994818544622489006861094983996358651110764687514398305062050023784810507348828638036646609711608228559053724113259086874609963639068552501258898506296187202018648171903112768350559611450546104048030962079333129746594804433244621984941498009503098082907019031765169552504301313709278817924743289759452456890859165123968852413306809750697722470749887293443425210316482135532646963872513886506503841256492448566707745558256230860876578157333143649082867589691734660061431868281602981904723224208640622811361505431273031208237066527965225350599311854695234039902807248183344106967193882453852860848920386220313367357603317264117289475125233924808351869298892795789827069784060128731452171061505082630380161703701441967925058969863175916388352518456584571998682836328974657032921492950712197538658488824995990819791622939355230076963020486111433370138264393244213624259421280305046835723086738994717403732478149891994174823070076832091144149781718346983624231458372250269773662346600844522920068383626734188187129349887256259162259067474544219612776677135401379447010481992226772555049359871366911600175168164452595612590130262320743978919211284791675135475499111439343858137935687042481090126137208413804582410758288631787230344812748441066614321032976766808311021177051481437670369806227267418416715356171122139161690401725333805826492279442260442451375302942577451798090583397156256868883746615057632645431012189074879942019353081547703519804727609681772970597347439041629795151815984794224162289300309631761001316854457923447054437388155227641199239102457687389746714513760516216720082378857840597959310125593852175805749212600313896294043898427974318767561749171987891542372304215428740061509625990645426032801833052101763725885508242162495649176179203881596562604745665101758005504654796311635708454254564849050601602758344781321309035941288879795432733064439793717434453509233979352623931182236791255604294308301501593750060295714797541073194573423120565345185520940737414735554271876049270835736300307819017075579019465138695019217224689331666367654210127397439378689872691955345120985796312719287092876111782067538458629605514906520315132712349360277944197407597364929878143169514945088996506885039589962668387171530459632276625825940946372725165588102896290319726860728804698035570035244329955716946070843164772843127069349899127749124107555949411070178924521485326814251988460136444793093006870125077991797061422653040141009060637966396883209443930624246529094059636261418830764465396978348148078530273667298479918464161107353275508645712790223198228428091551569008007766320110169994041430031599607514012310756619753769624727231418605125076816738652225162302091462138549652298764017882307292565601455126780293800187393146593291221728913974362568292735784736069931245512642754781347529290859087669013450669831075087862941635397106368147914521837364589736288001799856380289519910611091881919144044967415420874219116954911236118472292882202293706924365125666544782147093325178596874963581731365634213782952838010404912169480664199602246993910413807369611935195376729216226486790963493208308474791644203807762815422552943566937115822518248283974852396556983292295352387205603410409113494008407954208362278539659389354021322504290911797244841722827247857152976071283778530671460097129190930894333691740951124214369118873162474129196917256419433581350445797313693382591371301928014300531516374039396808699767460163414540221168056946855967035414849152634347587071826533894592349010736407190138191905012143719226288442396128512967486316583498116694936526937178895743029770404549129428002834819287933764906038311408208027643122528965416380444024098674006315237543143016478584343499327842160902523514758648531194419075505601424174458090078668644857365020071040786454950180097027735559296594333936806650492823852295947433440769668661446760799721597325037040208091258386899177642356494874778071724252925254838336073909453367869005462967216601945579230005093910446751513990715515640058866908788632412903654188643427976329245781518024929366959848811871327570534963379015796820832408149023934404884841183873322018534432962107220186597179536547013385838168395864651191241688581976380848912348906686118642516410616519541222745894849372452249962182914345691195329980806308308245965362680781751556338224726153866271698611806176059608044008413742617112051232732909146023918678101333056968394617387304233570822307382617970839861773816237787772554587556428785174971501124086140666628029592552157509053210708929367479203073759820620192166382708464577351085722606154828217836561964808248038986647461247285332693278519595342236520045922642778722580052766141236743631417780470868976772993389672241702745363410018093960341472660505888076907039367578271817214909806444741388812418106912865083621711113608984266603378066412160131728711434594068659553929108215253255217328989368749458130422495652745353580221794455082044184763761158386462077787264794112906724201435697649621034422207555928597104022411544478328129574694085458505320906677294285041727179463742910398787330410172717332637951598045816998727974421752791368369846024414258823544018280317039311722716128500001999162293680201297511901356010162537301278699062726697062924798878950466920076092343434087050336111142358215036626507379595268666599375834058156681787754671535120111801870427476379182694362657574607372115535262043422363049128261635736321363307688281739049961319135622368903980196361018846323277847052699938406689704218414230309562809097097032501310087504264987998574718916361695121967781205211313933568081068971733304650862007081419941415904390573782689515305492569897054547297381360493044860337384332392296952452997151272762254065790273461192837240256500683241362179382525075161774583762039728409172024517554308673154672382843827531726238851658844228965722628345305888281682948547299486751537366710978919078444555364082584576758792779492479116646634459221742179117211165584059059052982108228280165518102411938749345461174434737794813420774930674746425277553305966169961167952412654093515078017500173418403431415076537309462891413742816492661362191204308600568633205485571719861481281213521034661990699752067039997253355154103995068599011491226075039669007107719852905003480931499750175143552053926311951827653450601744306517933498169293689531207717028063617680872295550623164109327901411948004746139741840245335955822138068607133200722641822233487050334698290472736555932302080010850332193611863465332984287228247227700053531062655361655146534574163639700026827381689654815515637406638246588834535655128097810440806164309627989572418378270958283272946524777108603207341015578325107897001196731989474941542532105836731708023644760130360078997860864485679072449039129825848003747535721182164946513106486139656827072584441760040718594121602180359030708490333323336901557313944566616155418704434381883573925292472330239876495744465238390820514600495964212170762436914185476314267588668254487305201988797505080349644865615395796355119165112612226514596727267131210036363356085561109775843446108156098063443735005824286491596852757921478760552714210231809799102163104793242038073661779706857558528766229430538237701802476542727221444701250797507193432651645757689599774460607263103240795790633180575147861790019569476321053378066579303154059759299999704166647245111999147092286630350002886217813294849985336122417070916230363919287278451057179171126166149163858495910930126463799730588121656529611300692272463793157655890069868641784639163457073134001832673661499448542776357832645287851391891638520519659345233932981251026164994778640020486742807999034687196379653044342232305881384895232121663840728115886459704374725501707946601687076914803592631366971028841678556259625524569090381842120348203004173982351420006803878516620795823656381225628739627966718853840114451833140874813417814182777541084548648954056784223994979405544611775412342716095213105970202021258041685607579949608549124624414309711405914834233443402668892394565064236788426947388065316553508230598340494102822292462079547413299509360466235222704065605872516033278538671550695341363588311367616964049378279432568619657310315235022196944199235487818046514070040916215264185587478015787928974909836406280223915619251255208496577181265785773328408203502039303508779211684431389621683193777063663245110806513760606059864685828300387739379605845680790220582864151069564216976197048796596967632696587094122770935787755770281395304997594610805117943560650733698151674987296236176465387045828888211719764975634792822923734867176264453350578224044153476610343395910076824977097480121141427073276917647855308294985785443731780406259138727212663258274784193996272185818639354654784429170550177067040298274580839469360389454335484445316531399654853135524694707287034996513802052836462987341493548260833884454045534055181798870499542322217567491749653326220357856672452844730920618863671671632058045298820346634560192327619899866772078442505550342751925993680662865640926656299356398400954494351607743534298293035518804810690197151207971516087242115090477031720165639304818415673348676962522035254996980500222875475039293342717676041416789130429056130572458971275911505353326749524589751405261933462239481170261197990086319933750132641642117649286828646458691713957006105185974002301955336376095151078867698262729112309383821577413205995092833556352367647720891292323437302397975543519057812384839084820715004449577169300024679731356046252201618027775940216511522114936091152719195645746981067611321941684816907456949870161346848095253029408858842662092758279029447965840196982336442955383659070905881594366436106481177395922998176860512859105929894022376397114644979640189116892510618771865941880786990216393557056802407308863799148132587589011987431677876174026870615179519513423649332750422794721336765106001319938903609929136535173503965505720950861042596964446291938025267507948778727446334275101115571386675671232939301670980775644508778065107575031269626953011323204817466626488922536936594668251662787770006371231522439282604014276016268060508541343936426968848071113028619882243862811512301265647798951489925970931282948732534527798382470167030262133973533157661857840026512331055593207535581291265084608057586222527232503597057412590526077914266527794243927637535024432475253296399864484178356434153833035063913607385756401396873526747209124085160474134934608763055287619531883740726013679512238728240688765711952853205488484223177080981189956108089837135130123558826596084313632618774510113718934159499475891228319656115506489010136822337583303655715544100191562628261348984068424634923854496151503709644998082522397528876777803709174850709306344921731880863346295383263828097804691383711850569711031736143054270270677966007181445087943851033260420426095181688422833038379203166337422504251139028613595052568835412315323027118029935817412404986887678758339363423598985891907262456609809115029062365806740290827785963945028808639444357250009461972187164124872738798214635627567799421337854970032303943309774668658072965022848456470082915663541875699538701012228490387158514063832475473468037600430772136084627368024803805302248348379669582098116355986986850040435978792331181997602559854095857330326908388801823952043957081860008804980916400326620099544426739698300970607135553797208956644738824200678640799383291439652884682199058514938329554539054898920454652131310828180248875160203097465530367074950420359378739407012540511162614663515635034952934849335747018766070128781346069691857561690934957405273587720454113356926902185438725447259756845044545857315840882182761208005993083351548510703117422038531653431208515772450986193572272669129332638940184770387317269562016498744232638283557206832647917602731383623513729338457261601819958453479907134547687156365561957717683734189762230930883088998497137273433523667684969242418135152507547265456418424087225497543814412833111179377922654866399084257514144680262338262683577291377548556833315263343291584927391408299490992160704320692552883707345879734880312747357771058424934856840840720175210401031255119680358999804944545013548778191594529294226742713078699707267979397820513169172342501939142104014275654320159740188882124294262774368278774919241823889635861461587501706151485121842842551666946341336149883013524043438839333263529177840759584764230650770514752090364398538935688644462782281184903035146891393217463088737693591259584476603523612422948822666251532407564153975863656774869595633677341371070865418785680424571646739381281382532205100873400858822464755463407655145441675357411465917492861674799388405495017568041864727914725100277459588037271188677131092396538344356567068468619106263182352790357629808085613217738749997780109846885759920517292712720647985118909943471139313634337874763522993195667276996135066478958777747874469981145809689881443871501378183815080638286931907915542332119493620070647894457829093281553610627115805307947196623279839042110607515242517641321102495836856742824904066665078735484134462317805602823261698571858502733384379810603205408529313007224541406893162419354169220843447947910229302795160916002461993944349274229649298910941068799075901689612846471948925819580262343589446576868871641126054989954373668621144666400630153623669282928260285652985637182737914009110153023813507830794898347090321408932836994251938943946005745433533513266447304007555724877038109302717950951077641659656129184763978288982500775280253647585273112775406559471014694528367983225506584327664900977312915464621790996033349384297054143044642313173393287577361912050618905352044870532674321532588296797473444136660013562614159891577212705204932593422309185173335350862693560694822332251961342331072853937218267783192015733574735029535440117869492933498322850163617863427123336947286587569977821395798698551354701654853192085034256333176618656921191668907878884466153595727229350213178017127771333454030120620048062268046399750609313683643505546409179268723570436303796193664022233386003146395791142817320662045565599168997233840102041875993016349987089395192253655680045030274996131395633227112891714060764863160103251662590234728962218320536338723676048378942226230789529143784780376151631065256676859350509907258467028255117850643378203547495668451235955185215372583974752138076170472072323952650863881338988843662277414020060013842278018428266146199093225708266238046043211135913503268563832177967186614945594211206263953562264031233418594648715273418949815397942562703472872038527168167432970116382032596227143582488255618492154836929270529356203952663783071433592884556596904357533457014993076774925308760610661682970755685630344355297632180678901982013585575834347020806549069614091738580405985225451364719255145367692337266623915497598615634651320072624515688311477699922426771219292837553690148433920003598730604834871251126310093101798794317895349331999704340494667033998579875811092832595727083832167584163725643881959078773611678911530520693890438962373290127227795775045107969802124701718727434100112513772377498798018690416518780295307596547154542075965277918232177137909929567083445721160082398632386331185674301829055271428393570845923381326219289007553632601670897237268922003399417636030004962405901656700078136261290460616989851272277194744584915041260104177309487505822417231877414353409646255890582044682464699776890208052786057799885692701465018500215743491768189183298806855967346258840604298184993158502806471059521048796226245042116095655098878225782322844720475111731897046453654313907348308277498638603152042229732527957782433743416533539453697107679694218120480677796058859881461288235688979612935932474520363704107766827375462222657163248963913544180023707117501257693256386034897522573824699706229004312393324420260851713927530869199634100911281773958940967327541824547287946631718330951595836839039884990215391260825581925036769162071707320965949481934024133287189426324143435866981153824164990489573747733769905193822402491022585479639046844907645807275440675219650570010406672348129919552726359889727784713882656021305138817672569688497193077733455013077523464064529319017364182855897726034074633308929113734347288111331338537185853818493453742708311016576560069615737790945082513046033442192975309683522260740188359372022097885500201210626201093459087616399192000786044646715810104347434728482794689939513426568832970387734252604949103998192467789298070188361976206420146415769128869273369042756167526020786815940521034522967051359919380261437243271039131011695767417582974115615629962542334244671958320481426775336318115015187387427102904509756542067979162215747492259414034891461530901661590675124415620662857934056301958964771950102203117304334718273813577366369724988213349572592359949408073797893408449758695959728201581152066170904229581581627837106325120775603797766266932466209647413782034631527824076839545668479977101284752671804967831365713822008367098679751285559772222292019402480086079490523505581217808437255804196044423150675195334444564061301042292022400090654105184901920222550843239381062273379116707148542681050617934941940807179072102488250790948623349831498263006059713531469795332930263052740443084310775281963111967122813622199679937685149973974813618941162972721301420867313455474666921813349324390971373104487993080431217211851083531291277689250435740750665327946583679498921575136886779262030663429941253622978742588876174307693443187619025997361879567054879487819564501159221512666329529467069990337770679384958143477318206396825046247878834349252306590100480833995331969362230539511242111254808006892774957985451201800533219026952370141468545765733495901845979118665622767620538623909633190012374985468545129374719690535510855398331588122520716036549283488612778352962477762461055436903008623537862007302289094367433825653724229759505558442656063675322020706650122534868472044250768068320909662112042308905911332344473405104012675897863211953879346991033387694579107466586976146868383814394836368052437489953463726339613180891480518174232884231522002120682630534532193525048313172449067346213316265514934239779787131432616868639823625948985844466761319844517901847032478358750742213010037916994447069150387746606284400569522743172395323698518955316884429058875621169250620866373020932012136808304377893370376220971948150297782729420403038985211041878317618274244135497109364142372982655387493214256496123638914953769028508858643958887063190685737482355251393849059216825216401835355436277718425427151087077670062424416414688826622459942428992746557284933741477733156508155830191325899157618078964031709440527815159138148096674712438748167439210292196175234994117938683567198327539854424511184980276151913484153652771675029821825838223831199099603209074651763077913796409082564022444547118922744027418069977333961309083559719198017842384901697772221905200836830820821095006084815598050369237614899074907953410558139413355366266838369283421924499468330739486289772699554158934694416794268500989755225693654590191179961431396899343791161007120478836306792711695812868583155105002053817340062163024238198584798302890111363322160394133067302744135496907855986306838503912947836748766342139295312072772332844283234643071082899430199009888211107739024046416460163683029051258779038298030329888356391632513105139966624454451436783087031516994591311624863878626764930181342830620002762856908606110621933497870567626232869278422364317344452918447700384075699527281384955919542803463251958754061312920013642752258583489625575991913878461344432174745735782376358466112298290252451661284691235363069382349775275988891877351047189744323443450986556401427485770758853870152140726282720215828042932112963304238698422727521835036040902154504400613339320090700361873644247817828091411714923927702420364311173367887925008677938233001452357038549473847004459149855979233308732271302942680934135812681095728707385584785903403228418064650112163636882121246203514150189860041612147850443143396045637635212173651927317625230846173719611330363993932284289100914219602789284665624624534107375689235658197486237125389494146221657830120336699625609912963216405579751120604674206756794079192920653726304954657764856550713745338230222456553604443746211767656361966310068468816513188913186240786632892663391961163461672984219567007946160641685745926202898325544724973121723877638158984251873450577363636853256310767480344852559865600977307229322787251264657244633824148010117364353884394020806937018987674385704216973713149530386768714233878704723403245927921635577095665271103080786570746553731752220596906970039444756163405212969236114029338631192784252858408029925762802788758686878529136669666424082258686240162112541154638395971598488383112777332524433026573271847097357409662704736677546750044707013143427907361124007672446116563736761291684802359767144370228111458853155580112836672247219279409226019570349371225665186645048465029903536624694041705805742637557421843541852491171455317549094423338706216448244172396812099836514849414797820380457846101336987685386215584331875953297913302397531151788097253789369810306022178454316699051726758975277728356695596701385985900765793706138121079342933325602307515642866589645343200526332597132914097756868755474394261362950935753824789630559542002358457419809401958093315712815633212733967006678304885348876446202207713981451660356691990826191309443001625874694988830427801590025769937859409520150370162822832594263603563902688434648977974562411440947657663269854305409627820453315159903579252637182462302481231904553051688079183114337901434529040990660216249535586187796259250745825070906530418112886737670313937279778597321041484145760093665865404494924785322602434093916580911002077547033575618070906623586503587282715663016957919837150747544053220146198010191507921273338407195502642871535235252575481183893667090785177092810389196818371533389063691342861696138160813477410586324894995158121532372272563878897357097775681549828809293648576915560900191269696954274419406134769755800099175464514562202033150988975604705853466614862912388698478419625289249667291610586833974840376447803843534842520532846999618153338699035739102788109069028042403352173692186224085073516856068355148609027500248643287599749859448730243762755689875641628246459473370757240806737390896146027546388482513296688347573929932136937622071803314422664012614929291250116505339103609377979401996489024522604153808176292415100911257950789686692418832751213262043415872057514383616234660408027124847542027950173829451138814841069348629706655898687417572655364250933188194583370434975992906045529666104593603891890615011710773053444901349304214273396978392904537795392168971030767656523618420840191446500543275505990049309674734649294195980939185730684928266495918481815241535175477522685263814997026922234504443247161703747886776834063340820517689732778947427636031203686561322071698886991481827652894302211524185153453717253799350366561332536133836652581875286740535916016677036396179868756628907763902771650982865157988882984909515548357377178428123436201529354814439508159770686067538645596062037358612110473381308355482181420473374981982109224333770946900576547281999498710822906998010151760300718476491778735012768809507902423885775866018062068940657992708743011971987034923356237524673374172159609338990696631973498374407050792171650393606682559378012758678296740909558364087646752713577634935364507601506759562351524652954111178189787523869933896841294403513964270214202274070316645996941999867155601834230565162911637641503427763354784377827982813286969701550263264704451394420516600497203502936578688656196865873057457581791578494009473523664716513076426356073022494409254371776493516755057546087298948017576349728074573708201396559139407412263817594761483910873434479925640558144961162683531876066644713345590503866235464992317586309987005262067985722947078396940578212079229222561644784954855688414277148115413921071997516592025804767179621327029222698214285910685374810411562657326433780397847170000931775275981835947635385418857539280790831884078217845861864608968653297793662537184494589854616706588089295058923282136557703329182745636419201199324615825545984424604051956705855279646496977762610202329430961521756860617252216835772325071052837901494577048451007833595302021835778516624610817135295438870444144144221545011213885892807932557074561519181595804049909636015934469012031181523737990947044341771068088032296986888011722766568290558568622528670670666584771445695228776103291796321798086854986340688287679965442908769159154885108359236502697264830110770914143499530571539381352067613155182822901366765301900154529477539264577647933562340142128413731481930090514496299850904578949849309356474466340100347560731824795407175654120601849062235722257298379614795216102672678465375868970232893116827991836135277312348515426055987474145086151787213607433355240982096421505485557299956810370331006471386709201476180268736291296005066142149148373545958387221731551791539397267419271933536450073932102381215147049477805112593840812036469256472484922826926398462988052076186803214317909144746058599804743952398779999221480889863567526598698511061741789397037060212691409733795825145346675860849755130503125450675055228708784990251651461315926118109680534886057313846533097488013593516442949475221607842420235803824049385898219976040489421969032763532042594552057095975308081462856898114296439176751737126017835767343373115932101654458909919825751374231153429402101536265572359879526029546779730269818001594677301034617212299040256577386377822608730634777279160448052893808676090078151348543250934552514056675572766097010387039387833682501989403888580447455460756849877388095081238208785923492362427497184233627415074604216192306360017062975749429719289698066598713153175605151108598949872711895809217526344854824986655756795155436265312645045857422653246526742653709599094706590055850703778838758560318401329554646863668596434060377926304084519276289688455041476956617248994845804785923984228013149300670493043379728330654665593434883877058583404706756480245642078158361468801608015078335208267959898720474893673529961088307119092041484004408567277493611961408877572584515720399548958983111946162435952198368309653206568448243221470218110491718214989341991796447719134270134909215451033202021034042409218010653082473752633467780509484959620869163507513852024413909272464557026990531059554934029791772210125665261060839536812634853593005353850416672869130012342237741177011852201488707099909176184283038586109863829261482930852414703265666044732662665480832167162937561991736871543150259170715789494092040233829880306099410627174581061025988743956321043680296921305618813004136945899095228464939857161488762829865592900384411342032311552754690321428848884277310431535258329773337398875923848025751968351094775905651275390127747763951477009159778012500204900107931555203060428129168018486750546901661036801129531159986542685324751781773512886360792009872893868867796755895953873642837541316281366946265867148387136255075729539780372004738530556292365315998822642395774973327248291346911352523269448112584937127746841871795754401938935102031266916292770256982446833259476999655261641113406258586475764675075594778240527414816724290235266399623645706050092281498462157215749401348769276179379545695257817082020964164712920979391506784690292441235681599643496825681174589424927440738590553964049807459678604211045113948495791376337960840578311208903704260770849501049999627450254275793419407432847399358024012950921781381824767132925858801915913541537265159232541938995085577672043057159521412651273691111828037716569396278601775701540509943760500821316008006792129196227559810265033283793788598673542449225159144125315754472238123206585041617242194126190779599471288603316360524481485517670627884542849042604446655821349245739723700629862543766567476612472034542596131518041790387686153664911989260816965790779409820800487294334798810936706793646859044738240859229748657430088535105622803829999779790516293658253482321292959261714680485060696353448590062654170266321256785419713480828911030015073975094906938490980282241424387251784538621375755590368710398335045104429346668106423116688314662408470499049293847734764764772166426760191473492598637035089668131015554882400676151210664846174359570083846572392284719827403965299687427453156405310569282168436730233686102521000947250209860096812299153207804639646106642528533821036778345533654998294103658629715803755992876130877078667574073719088434008694870415348278735189439027012053459756961317111193834644008636193623200102700177574399502643567750675419258390263819293245434866294102359664989118236051433054658574944909064501637901442210007275413427969051717019180382326310104109994957795346840112874871784953400247015831166207133565029810218995477113912761292191645445827634694165759351719874748308035650328184946699556983938948520049866611265998918287243004706500188059587059868509343076351405094115520489189250136338441362430042055757125005503231132387490477645770958810247446124794832047012781974183159185602387142938763234596090567520238301899808919157136198657395613137113441432680753293269390969379108014681421886678717811666948866398831266315099942442161619632336162652639113951846197437183055622982082849031021643606011132275529255409218389834523394246640959026994157570756217591551470873953944299127450846179985766063829131762169830516256678538806564899568473733280371606386837739401113150875423374598085735874899313848009114486041848962712824374453179458956541371663896698808944460256237306804728938410083254823364583632309859320703972165065896626211389981768785719734230639413597726586611247267539376399210170768347932495490406781815037861557684731179763356550725475857987773366313457344427379726851800242901237766997859102463806635968021524509163519666316348133875878987577820895077366342489791624720568252375535437130595719302315473175961379116767841518047531547273695169897253755069804599015692097074784105505865117966086394240994552332815203318461465409040628027777999738396189072843386404679501933130690843560622305489104779181663622000989795783862767767237589489545138015811063288596477410367802041769923184473476169473110758353800749641085820482495372919840033934105392567124385002939663100882162728121495283169376605698270478442429578182284632755547642582701694248214535312121219509425124608408292512802571736755767838032485022717383135220994186758594877218928336343015517071727894259785728772415171475078411430958186426461046904090311691876159812442629531423454421029124060710578692058268358980033753986065308364554169055018516408920133157277343063551824853230499027335263122800081120746085557383618973127803789301378209569296705407481631464341482541295790938420678862532193143392677321046273380491630655811752594902486930684985883564590798367456531580125009987247197653292706070458496669959862358375518790873250835086601466892675469424841677331312570054869911053596560352110698081422367483023463242741040979972218834930180476349379067077916232796064806889485853937156897340877899363334471508127750019148551503537998387375446473757172922486498331502132534086624079827921158493273703778947916195395147478817159924029040671894586029394853389017163089230054505760096486232514206332737467260130120752892936860606226824035284639558730606676054757140270793861146119038020361142240294402482987379452732303754151444001110487203203967131147064535701973378647391991133913360738444570140670571997060778435421637294734934565776805688855113574339830643819960188530404478804890360026776533130550825844136876230763908110006878242791561803943684616689670954604742387945689396704211243926662837409132971612895348511520778461576354324415975435749180160169700027082687513200506850929108527931153963759469937105618301698270506126086823266764788529260267013943171593743433817143425897340082247778649101360110022137866143339191190360282079500372368606407627322484173730450491448608185461882364436617094163974076450797855459178558866914012988451386381851864743354635670160830832067644346656416509526092257915853581890972106099973017283862900740459411160322880822671866850636798176961777472258929008413589863104694727543326180432834044501110570630134413234568896413638973947010709242197815953716841951953344499956721281948214748361956328792870965988815319597356599937912624914272966465680222239824890731394169871691779361908139400412889744392070108885099973618446546057561071491345636714681688047189859301735891803777270756825387361131610023061524291056630795413346748480213148950178720002585620733880584398702603486548037907768254460332195732109168660069042098722328423221906861502846028320763667520109208910729652711945230913486616531112289747597398530334900656316219310441710584716048026062384901808349919849896860493992038591081182098359099314479148038088506637692045673420949300977131330564417304951480295052072280105768254380595690283977745382610861808402350150557867375498741157751859090890161819767533024878240670862701913774732719165312500943038927547386475154215968120755207542850849572629053187035684821317322971199600562850317220973869480216539580267832180403451909491552641517123002789107881226200751584446831789748437737333042634031399669414809129522058556892833123475005621705537868173202711720390570636966802756168072405655242903086284208849010284064547314558820629436549108808791548457616454372173100206618084189992107632899291291391669949635927524873205070021746807110916784009794103232055731610191800119440467050251744809570213304784286502002356537402196426176431856781573809674700957150963930029784658285497721018608092730075906334658669948864897693307283630067749114528641000405884120528417287082402337315724505017159462309888949368088379555719391988630987332739118597926312631374890808171325235914062004052858622067026503055621704665540192255946743921560274363184814105205453899477924029760261483515262899951002808857680992338477513296800464088714649237665645918618383457854477298633342449489861697998615988963366864526177233231740780703592834103162157422767296021815730495565302792029719745441272092308948561485448161172577209760181418752456388328500605009109280173994417888584372095042830333564348267350275483823609919685593851789783391895943119474872403722040237934422410576820057809144797919393840702552427461574929704619520749182700680012395942488119813705993666516310138634716388541240481101881152365640636700106881994890451724256874011094696656732696679269998649842042606534420536884542756085510455633742104794618369308832531104280145813285056079576338198409656523562194806907480249138581764661663844124750988448114859764788640559307660349846238593786602367507674319903202212449714082760473132664375902155260448085810122442053748734857059406127200590918254450297562412622197016385340348860246601309863563542853584367894476428804571612977764746167348527383835380867275033915271369661857458204047239692382437537042714072257614135689848395418417014712211352019471732696194801736603833808972997229973221575540306156476182074319948399138773141476958233538115852421338011575453049327154866055598498050940588126546372163662893094418185355972284286986037695010746630496811536678153767326642137493370304306402425948829894504212669025419230935136028597855939596543566426411607171521957711715610490308630779024298936462795889983377974746551592941101157541353961156769052053451761210806608189082080684733313562400944955982185499468110993360275034249149135502444867028252507591681109010312854264763179122076214381769804284568696731193576381493214989023674556857634274903899206537281841572890969015197904686002372516988667850864679751378402272840691534584449565257582589886823574843876739597497063470169755612043236992434624165737346199518340559175980890976472004008925995293577522796511536738150537235025730602159832247274228322916242259168208730578076799470562627228120845220454662201700883348012795008198116201713716123005827703881248563097546750402088789317224603258390449867351263004208631614408795795449283250055186360052533104671902013928916922985537300921102777087463245270019722316893460681576604499053144396537086184369487428971892485267102205246954310543028128358645040532918614863244627307218423530163704402334034460300992963317887640537589252478456069943896734119988169366363659849717843407040754223388456548237673887099849247360841753617913724113590278832002994944489067768108859612294270117422165094943356630803776232630960472660112242125130157886759047707045277810156819899453760345824644452510429780256166737738411857855847658370012318235631469801745599936280166278411183256921704951107852461271142292881227238349882764501785962776895848119751497982433741433883037671031330198607360648159621376535739224490969058900133408629293584898145649897598105717293587880259449739265881897067805653108058969745402616866449527077062730055906024811418090335666264989955337859751904162105228975450451886853760983306534928050865517265279644023710685372651097916558172839568339458084278766999990634142004317919108225384317367623279174740981526184258322145944466212579099053868230384692385892275078965583943759602986669341636849663829679368258456998879207408147208632044769147272556340345925941022503775523369469630082195245289489722696414918935838567085952966152637268879519303801664358988627041498248817539821822281548966181580284475045422764826361671051559354951654457691060389518204726285398617937792586113329813615036448976011384852058340731185328765773568730947092769367135347379299390706139731970972321455616146917599884262465297361850532651234624490385493679870223111827974588248874138619657453394240642921601504945295710117178954933633828063903272823869511975794595198143380318245434387948474115647357236504758393332131728602440223700096557041103638029577496550859803458353239644238206046591204474230008879829861023382207496278122570330092879171175240561108931970251110668739422235368808900710191301867366873900026137188001787587063861005852415697384054638352148954432825855829293250535687968145382632382529047479750643263620066083698187363162657005462512078323644440565401505470034858205854948552854182320855047992448756641867153235549748851836328171784851176300228370486176605470224039199071019790763120777604956191607765461635523351510940363657532845341428542410590246700885861287731272740177845130749250857132797459877292361110531602499604616410882576587898436518531375363815326024916064833489772683203461192978314221111101661729296585397851589484038525748369542450256185452110759929692185581800339456846941618429555448255728855833869884784415977430892153634275854908648008841626260363687773304604213076847440645396941314926283628725154919581024604246522453412542399360787428161578402549425912033428161900108371725708324538786530804980376206749309834666902305957716906668449084832758416662172891769413533539070648637472125836235082688365938168108859162654861231751809931856386918626570209670138205828013698155199902907519769926919585222848592971676166952681636280634285290385985996422580768485937499523431602105778866658417629268060373999952819141023161181045083101295793090567847279942407604131968923350713038083905540268069114626515723239763454628079381949264521037449781252183316174114843018958082307196288487175025920590748583592396986631841637801049749153100714124554548822252358795845518887316988359808702112993243933533238714619954143062805036839701101479975345170736835857483020235354281405560258540084706422860081265740555326139381754955161302771384063730080027580153844233382497744912276044163908732703894354114679016357436747610639509533026246197326621029035247162127037438715430282096036481940497862496832487303974066078725886146487066227301736175645660956338296073797423837886292784102648755901565127156172739066241827077107383168434487863368805008971100782230501685979481204185326130839180372279096482361412691317714039342466649945979106851278215016870150377403582267431771697129551023752127330694544135812228457805980525170039961144122806008658297045875084676747057048477222862071688094666196560350853691402208823887651509791531752946242189774821968333971916947989906591142759983824609711649640296784436242834737530224360548993426031855375223373342434276528665581145370460167558495322845003855085835782115192883565959885052064644450539241192230416143014276258846949827497541661613559685541632290914451942640852829166274865124904634718357861712125022649203152524632231027843691991723800745579029440246752383692446975039777554212142440274716786131061426283305402007906476851029406688851792748928018854573932381514649319714668426169940718663552778269401622098639422769331724362588245786676877320421029733527493400586800775442670303044154812650584700617076423953510716646487322308860414789138216423131455914657299013223957464264205914950563204943063774201796523835716938369598020302411536547523768059909944873766749267520262502532828606979189893345785731943053773005707235957969553328329602675495396966030522152314281520423658969932911596475145106032072738425161002904765229826810265841755245372827748041437643120893779709030331653578490456321250490899601415219115388646240169001989034416476906345146673032207956811614378458217402827950350867811517648455439694069716534968627969015507909261536503449238602616033831436012013783323679080367684985106587553363467789590729421950934331303762296910969843706859594216628957864332352683779702512707592337679351960688796723227008786601307796361620955746768660348976239980488830398091519445654162350344715159998985638395487357536844015674472098717390768767986548961872238534321142194597456202182576656846337083986945124543657889170018586963476494641763033259865328673840959182391041860527944203043496995738342940683761641225443837848266892592746209965473323100653416694342841159097133255147072372782995799718319669585132114967233486169045305952932582346912727402650754537874698554809641567909704704408823051168680898643131172940774656420378543488852437468647061529240552269303737459021133494508025375931086662283184926129361643855699079022590750742032783890674684608298292490664333258795970853428034582884427079249381913134860922938011559013574786230515829492493764633551884086263622179195075217491012141397782573528127055726718144473662601497741818752280187331050860284594097338042806973447759589832446618412697163717590383917422978811111374948547960064139957979530645696392964483155172045698365435628764271540130449223343342262087616621413432298089499397425220248827989351285965619577872792979732936759501666240331274121178708261264500717248693009583611440244343131309878572506882025889769651443658199884643478695638460557072880304239100722978180700286835184772034430432952279738909641640445006437977462148158336654818936540238882756683146638342136338176243482888636906840350783186381590022439899070929182952738288207353402432169514660647756290133609672546843934144169373006320653766580088837086023946654522585117158126423489206232025992563885873208583549890892331819379794609241311929180234407680688157463375933277755730690071959516767019020508275011510866758186250405828910570632512866153861710147212550925167529983146704088559102657295523791113240107124171834612209099438572064566181180772302254103192879478488276370614052770708051574028158158116408825873083893391392631783641569956435701601717425159045821889662569237740622396888459839233672074905142596681277470987217439178152208549273441816032291180110535878449263836825421098265805508134354129707626628560085786377408246848461935595248269041205261032444468012383469751010835789759838784806583957391671949747922088482781782308937253888624112178968744207640439410700715569565664490535971539465983586635642291710824994188713736882166151818463741669993307806268054964825658459939915942243968559849009209942256858758569634610778885895272511071135226325945842477840088559416499108502495613997667192705150195342482394743308255676445992652993550239883705958741683785603403098352217598911070228098908680850618699390431821815423872527151721363911658900867308047549837064506840176906375476631892016302113651630299024983056243793694121492679310826504034357796038446940430290881767375172920846230137082346270480011171899892821599140880577196238850800220309919873928962092303690763669814221889257089466547732725928228900152063472849055636708037316449379749266148216996692088306338118292772113226897399964630613705666757950804097955794732889109993773945833262046838244128225779085815547947528757605488243176586260555481549276641159943475748442099135292923363095777313074011958002772645035575880898473378330177653433537884201330515539786634652045532305605889262555262495697553816785491082642315689998585815517028700516926328898331203096807273474268672731644131571246788682282516740054270079819268315480089070832653063580597946381670510752779726146144672125310534315474826914494823379803170467306534807545510550026741363385843025678050539107489564070132919192023588924892989029827872042283259682167015574022424723373424997144236514820874622064115563121814365418409645699614812731464441763879971134553357052418320503782082778890495265423984676881494392745914442714931252231319899643186255953193841187401063554020834799727400487443102267179453721518457823663719344704973747548818553453671779333340614909029093241957611488914997848692511271629064417119281702140808469794077158356332772502621217553149812624045540121684519776379795765341400309521840775349447044548827616295047341858416156612418433358628485525867891831278289311612686060219421504947312451635467299940974159044777076092928247222641309060178483623141954423456425345998671225589109850616365185691722195861589955886918869023943237229820837756575482545532723997501076206561649415767446475299837630974201523979068178027284795939031511829862433790701877164127364725845509925515987746083882977884818643677912042875047384129777282265881038219161785388810548913569016094592043097105789528877830681391566804868633025199888110053138342763409773045688595272467866265887779112390657516378498784491411139843963526147698120447047093605060669760441185346638860049438073895098197138454774843720077191247047818603384009686657159110863118299108938424307535364716495478292128490425562467654315066525124226942839182207476261432716254687405073812164146614796544820130182475099847643179068807334847598138741062274189453254796529000560006517005013274895157215805836692182189939526524399636007484799406555952788397115691584672540308061719330776059904733801049197387941600140263738621816177299587532836817814660312558899761258746973078201002876134817450605654311883456676442471300492644185444524741976704642443223604332990131639615423175314465621892310910100315310395523949035528001570148608431974445181799233005575507760487699448568051096947219871417699001714890041588934649085554196214307048218701119572814489014191081244037004502898425478917978647694784266045949263798816255829151996290970213243419945755958381049677792913341241908357995134491088333260053532723639260513613688681468318280514318468239502494738605195943816349360484857224474549998664388613503223718958378852948076202496181182980598230411617776697783055987638902929109849561218861191006326612869897781108987261342551137235908974568189590187927797718276634734692423947975369425674498898223969828215810852805488961995753146910475614383924263333425392188013452963950897125920805385984557558330100203507973622578731010110297255564305245039070959345548702747444333031063905957106946277411393924597747261314953778485830354332442416075645521889445042908437621325620463683433019105725254546265318704911087892220049810750137266729983700369205768439346234274900629591721713827662157209955976685101491022616579523000994039020607959389427342717723020045161327499684145759976846619920831025250535606801358048245333341918072938718739549421633786843143017663108558372992077336236862464983937812751598228651204755925084971762827540332712343036692558989694446712696230585994459424749920878123884025459902610466130055363413751652975218115868917456393345767881130235153945388315057585111007646670830216638432980541789758760853165132230705571835479226640471437820262191911287502998667346414232732272065651005439954417671463563940560128922901472716692471432174316508453003883763741081749720212628804895694444147106955003610645604283625050057791195076047195082478341280465769043708315464640968714435657538425835915203736456462802860751001053808466800504979686618041423268469395431768445756118438398800516873937073106595237923299693615865779700614304091345418566664117382760355385502309605200396639626343363742890243832233510415811417792645531424559781528556464769028724276937512461182177626064052775898318682678195640627504744026059564200267289225712117170083285384525222514442285911426088184616092839689705437022424387340784896047543536892572785152247449531380175727625192904389450962636888521651218136029583649460332990800060481889508029727883810784839062132450742811835307770761097785471457252373792394783193121454978152648996242632053241141333498480012836665657883202138177627744150341235546763127769153134732274466496443684201473686227199728928978706688442856548594615821097970922984938680885924484686695925460942681717317416017824165147393403729253223868400540789771545518751270358120672004865336474125031523945315926426789639691106418956829969213817195088837507384919727300438668762179104580310880025093466790301038298261922855982171557287458210331275154639173610524162417652929589766595104109515277188241303916667292830754801930768476762669305464211616714891590523547445451725092054748233421404536380889237381556119363795964517729277548888573614354510261821624389920038831854818267207546509058273962286999294186883619610173314602608152706100832735307817708348460194310390304298142587221156901433692740062289981297050813916617058593954098817398205387171496096804399864318909482687531297642118410070016948239945724290863856528793374261783015518167627276804583632123495052188016276065604674688306769426085024570832819334125625588851335214412202820849075569425334021587084614527103166408607833052329453544007223871748296994069034397711423770924212160352332788744070240934451662537667194070538081823545186088658372698867613845187471800321307055255392375483199294370227451321821209116507293848701870961282675319934878018540983199360188794237449993121743624465900035064904229550012587452780430112999288021007701710570813900113466064554848482829012414377626578102905430588540144439347923860246198940085249112309321837708857542996792310548343661062562329953788364343675769387864963212987705350371959592954260589236767570276639043153759257943819853338555357511136766278658936105853141678906040023043720832089281466425380403306608838231248879630512800516089943932637911102367352562805661096631420826652202871896038500552955582744485008037858628762525534889468801721822116533821570251879694903957082019436464154284508628385373862453326484816340237736697644875449790025939285945131725732161442785581762983524035058832665653830254881770249481911890773633942170755064738183599918654906799660616490526458503253791336969908076183787334746068242320899062243752819695443241247871054615776571589583172698176065850330285420055499102278965340170063162792124198231766705896259954231723935055879581798202031052101003435888600382520574169444487199640743697437957028996688888781619388571801372364142285223610553835137659007470447133218791761621795613725436680587138006298718938246988979386456551583610531757405659643418823177838346551729264889075940510783569461205538525437130781556468887965486990204036974501992363318848726860275904686446850854450344830461687226026974172070552115824189277151532473929186682496758989597393628113274316499252653507749829553201540389805836823876237854455125480391329312261584112017089434800915185373565596160683530876528856864445503640542058731636575318830109106887505324675243738533936470035035913330224343494057189775191822835091961591466967193530611992070043036012051211389552471178127043906330220873748399372438051238582599606457456172123779575043086888232578920970999414617944638468836173613255907495253593014385120214925857863511243663382965316029056146434431845447193654969291316516350800688923234632966905988027593387538258478136227758832144955445417790078457364457923708313044523854247402376421266474225502596932426002403067388303075308250671949129707474564471756343776765647278825434243238176056099874155770059951396982423256430318798873077368270514359043698914081801469741962284592033232724597218216631996185410369197283513698962350451467771456520579278038177635181258740942047498907745166687632353814341750336502676219388690577815199796240781341535679565376671250579339086012727781346014366022121837572814481179392640923101949815921164814950785570632195373174439630448430090223092951501319223632817650313109207244355204370621803298378439074833068719978448628781561435925442439437975247763693179863478213866818753895901514584497404148740361090970673644091401337673252444336978727693431952764654260981883425355099290538304926844601700233560106635296896696781379493822495181278092085718810098435581807584122630354148137846006577227085266028133425112685054527377829692137117447347351860493429028352143344717542724781224725173295921671092097161320246621034623305174275401578064393587399408000239705926726695687398913153806368241439229884476184400898451132147056807880742770878929933817732781396683166296334775721974669646606386359357935061785968249557350062533025479637332188884405440021789237175827940439472214591191631010382430280749645031916258121903418647642006134019924593421124005248023142725397768523557070484107461610513359282523777779450166476995457264539736768515787257734260623980149422728730021054585307872776591835862901314793182827062287787741952263348126591382440299905792195290648220104505586147717792961663911801360669895575243931746736287336995506906235318194673639728943417850712674511936839476524021895948060335658445623133165597083844799423301964691627185409655798385044381279894183867951404466546139964641378902825240796220850316687133986977960772258175369749556865716976394956449289471827142545760873804423000574493374849748846381812742352050237455441926625071570543980783768926716905105116863348096937711115817231583460850244696292767441681488054099229268869062904045121199106665193732329981750307565194089928656344879906640752027371475537733936023287330769318858106105809353047471248405349922436923952579022070745291888441557458398581008882862286733361965855288795940134674445261276092681930196899440436969881183655963956384296535700843844130243512472777110123355703231335243194616930248161670774422251160653962207256390872325698285385094770289640382258701344756115584796467223229701783955340542537074507180704131390550780777195671981939012786104512634987623549941751142149935894177149359089128456242890882444924795012137473106301608446823161641736668203930920918359540667006643929870432448971754374901176892000531617152849533811024084444593655083087860455506433102695244972358700593499566234329218682761021123375813601893937726003515027412020441847001759472550511025892455412595789488281380047829197078654739565056310406373951140075051457123657308399116573840310477524842501678583486235356951267529479553672937917683184626983687368179099057105015673126694775178415226834198004644532754073165881739382863939780908886918804445820139057778718800670144441400178745560704811843310130647434750942858041711465303197503906362245952194741769031977075918486166618039574741983621532433166955081688390481074253605862658340654483226945749481040785651349404399155261370590733819639566217641350719802317589463845668133193553561583593733476603537304602769940092183049171659744794897588349995921724354855315454836800384018162934961832981204850629521032907426648264420934797748405619476818354463506292404660454425327642019875164267300925556462895256092225189681908652151016339871866712366037120990125045239712738492172404121538335560293312951642887454099832434420737841574835412865683519486762796712768020929350067340075974774609211324490134030921777763258721759408736801819843417141817991438352357571873694177453323135018018125498234097512691276328943795266560352098906400458354664735254833959460764990507241987183393429975479251223889349900944158231796902813353493969911818160960122305952386684742246469519265535928274087231370291957848383926583400003317793496742329937519159889757230570835406002219493645959013773998834553577034555677052724334988493695559315834319421261195548325643434912841948309214459590371615501148364231800037150504965333892621166157654394833808357968248749408004533238344699874946925486823926577466309744475273857793500052685599331327318431606072610669146678909216339820498565257193904621291905428536099906717879649893922147793866615003751393640879412146487364929522164007466319433386269941826515935458205462384632513505263967548327187302193162666844721016254416187607755860196204637025631981602587864190661304736145463919682391933230415148009931556815032615912356153531257329341722395094687634269183259513866751637538361096211823156502324771965781727068303021118687509308452589568533193773128266593275515859992997237420883078145025884945508187369081356283475462587671162767591623555053345625388512011067180993017453558713816866926609087076275709455744129453482332351109375238911215227836417876636889021764988034729121384223108461496921031534705343625902658143597801880726414780660083597947135836498533128231334666512389808144227076214398447181647905445368645982401114075013147406793303771218287453494444687918628017923806656942137684951233389892051177915563915649372316603884366335065081449023947144236159883199664443524789670728146007590231589180182123739445667379549955746229958539235924698175655571197039652999967225465642448561857831093199389722408923231361517083469735764702909423349862577027678146392145663415941725474456146793233547773749982411276062045581388859994033364325109791355860934823387911091650064524615789498386746456287782828345782617245556222252000968706707504148645539455986901649210062224241323321210742274348969870016879678142060825439669513736922822205149664374488759536523514194368829636543467812595842749710189400145847787260325696331295159870311977529196152851237031571983794254586694657116641627883224840845213674559598768456690505136207281442994963649487529497634634184623129882969411374148160303086316233916950185534496645003244485997646163968516512209722462324496764429630120598581180301642606226053555655043962309622511822507908173306977281490779740997217458501837187246643713388366855509777260708358143971082410706213268538292743792532636502413791598037808248566396550705458561275649250925863143476267074034938402959332957971434825866805235231600941591985361654057118862033929002243596618502566881182916389070758689652062918769509309172344135029923294018216420040045330379530127413971772391071648606068214889424894145096060618694980882606881409437901794646550517037889913677332539956020710885410383572658239092066499630160588748153863901617701738164870110713571776025447348904738063919736485078965426014715200555870212512793487057436151580680162376298993314483108160254062237340504043065898775549572793312815943372138252734479421916770482442771798199991426290385594180430669171938859949652612715769398874407063418016761802278802426752116607904992004714072955922117932159861970232139073705215795139642947498203966921608890765661459520144891942748168340607103280469398843271600533747270192787169445866656481066810775457239106903405700000272338494609240582160405022903744184630528643018800237660707102214461201516842865631087358281638733717992659409306075285440913060461265981462871347397966466429820017266317888046494063656330766337225121259894470943196330220690901527020086752783751508180071395044235943087018155664762351597155895429314530282633176090901556441252560685521054753199481593435357205098859401531840822067455011264401924079011018555626010411270680112859660530605934088372032455632776960867104957879172674038557216104270396790005922652856241378636434325270818641835579493495365584456626398316790392970738186856323769012939777328166842575963688708501686385883800064744245980943043648076965647978622469380036480117840664931933589420118670665980568426899442180886874985323933214845348216705414793287241296576836886120607099538997080926804084462012432556547366632791069291093920338855111891437696673776708771034110041086512652265149385066694258026884592968935537399245195174395777399536666840238930802396967775685280296253694023741938719584051368334982967236900510388228278841647029858896786057936028369604070241368582314104939898188871392035691324780918414804365857189321322513320684563781533916945688895811972961371293451639642278438814377675068680251642500111752446684685079663599294031565305745634999847624868272440632173690637963114373597511247161638695454340112766654497592042959491070379972677939841910752529389673579081198858124662488671127085749809909558621432119366570732120810227131663090251665527847311840473826984959015678770051320619887637887401399294215954761738383871437824630359207542646721654605629773413186793821212957719605925722227836725001119233117013160598042990801758215578560394642684422730926316070479007595390195444126059394621342292712177502394650189421470739820704308092762655624816705832901664183983158433056543021666450288055492030839187198974675464345287810295112981565588292399809412487502498729414268947201591532780208953470523833566638798004995661288632784935457445143400931030246844889928563227728545198226075750397682039825988247955797735551070946327611323755405322772079967376162706167855893939409766431603805327877685462211378223106597236018469321959735675651809847798624695221669071506934910348411494339260675333680558486872846069500185630531285749596273543176501822054047150697798729086148282525405636408422486168545563206534667313261621892208239710856962487014752094765896845567942478915073652051976512417621788726246024815050912314452645522183272286875166730987115063136552206981146020817187548215622274914690047514431911410781321427938164221786762580732500994679954988292238053137145269236783487851539641647221057957521099726045551211457436292455606450356110067824356217870784216611490400802619451031034632518701691876919584033419721690705619209487424478982245679286307344155561476342626745125341129990044338727405145456976794244485183850334513394808072544353675466409042873162301718695439335048752428147814776484383865223024551027895613026475140835394630666734497438482616143182502772761574059295477079049339249255755485636927504518831824382027889936982087297175349530422415197676847113547458251685194959799684910343838609001036923197663157362158097388777898114952337900874988423385493932328522726522165850832140946479863035404966915876948102556433567629142678230240585158717776335292271705121168735124925022559175101616480999303612167098558029766546929160355199769283255625656465293892449007208996865279157412480247552885280635119178896610761918089262683404482712090251024588742205031242639418652261141571746870454976009806681301303104532923468747529143504894457012127695283910024015160420077834744203635097815578771144723252153249428183571177914813846477652880617693633551210532370872940169688225803429863088968081193332468566131457799053924082399395525785896422003958775423981952070047551788189739950742104394577345401936237310694861333729035631239455886089297349313767347146891249660366183526368979754885287978827482412367751206134976791300689602854620737011933298177915154186390289718659845259994701405208442032549874607109813381004577115646707730610160559256402311272873582971463638758150900756970298124921123614677564802656767783063558090905582122248380561488399502001564076712969799571031319829539083968078402086614524866956868145909990500918395350831240598427471941555160484993778060549480435963581173945878461906684421457068239004329480576320990409497512000174547942190317192486641947808960794522328836896749667402990396989109728712510644559868094016859304141272350452014489428686602572023689123863250838789317496976659563834327546880659498473169894950807994932534383190550773813289658626703612964149642499503559848834412412775822107907994209192827731963838300849070704897470647810456571608409618226218053888576497259680854238743387861847649951548860197438685323242411393369354560588516733195661893877833524863348513875246107697979162662219131306479641918386776662224760055820782315221868502310337066152466151772809490074704453800878357007478108991172268791155071152910257217022547813686781453578669718473820257248600056720913466314168037295522524744948554673432184011199817312248267003396365491222378565019046096344278541904863941229127121558889746276372516800731825167338974464245099934325005392001939723458670500106951317499207008550471849461887801511840083653932712315476501985340192044416068626001337292306260983802583109907871396436167866313242479327962904648480237147214867008384080502997808015196607993367798596984959186318789455637882091152512007010712133816465326481357002899300526144046895828141393661456414662764327849443819469089342939960687466661420208334953454111462727588169689119027790267429919858586262986597393678472310720457220209762971786138137224548482473316237184659324696339277510343788685459111203678047442965330700678262768847232248336227554567335598184545259327719712112631226734863916068721534956243044622281793012326083547841391366505174466992757973260767507610120209238417779789928148467944633818335319957673032791484193959546491493757511459857222101950409632295246171635650848667892839089630214289896464895491127923941543504355485943364688147491876523438306935619929042901645252948654984356500230090214731277153701898275698307835120601496901056717843267922318085939330056002021739374471492423642222197522165131522715453364059472219774920223978933178761724372166871744724408797097506538601161890565484296454785837774458683900693750049458743082245099000655389033728486638859804936534095176819139262663035580735137458342324616830443944711207961258834053452869037874893595886346787680223311206793009891158760148359710424082593492630747518960593521488042816886457528743297364105392804922846855932252504487848967987204297471473306026357023914226508552041648983775746088435880936476843336582146892139657372400387267302181115180368451621089888331000779067652160569223492694089769833165181644848578860907659584821197344683225358943159804950949411974432000559543947862778174700871750093810012772795492882285392180836331620539718613724175282806371535100166126576744101282276139738360816576586129379575399739477333259740276422333917005476487249517254580994307445339617990788444822317480186682797363926399765248861316712199700481112573374852757850028431043550912575469757260631006125138681233827790488035905232642550146983427361771713048833153018981271977519414190425428285108552394131516264292888055044389616434083818679187192705366963120607026054638353918313217326990316557579174389577856592609652610065220240928498026025530797554156578376811516551046411989736696207231731043340025772396526402520448688432086872296297029549746682420918830902884570726841484561664725459128186666819319841370956431583437208856375975539900994419860376671681780091648808643540738121580098038747869858295375261930073872923412136909663764068497382201800047243381486615250710537502169531631238890719983465348501365052731981174984325501817779218710276450927269428811815255306847228834116669535193382025501644178089929496876044750075961076304378640507658541030910031475746163143555267393932533484529370637252358290240233209375922625253800416151199602982040005773078735026468682339538581292320611947624437381187187035885676764720158314600616964615310079535881076392486954725337467992990301129106240938560324744635781187818370099523335449926339126079323266194868319962218426936395381147494169017602853527963769712730768292346049451164238768082852586955382568953688090154901703378945295632395996696114187213064715595109285692133974241678597615779525869545113388170304421316773657897234796878605061597737916502380407380636439959665406366998122703738164060271500833323234372165489864183203782620507111208009748604475750107941220242641243677108429456911063511845345891233142188691928988984047137517850127342540919624388125908624636595799825747234246449430735771510411035027387448303618666987458133379307316012948517073352673966541809777379319538998911568864109883251070871671680682521854320141083930306517270312603545658522050631057620307505447595823236934639109641209095212089535144750442067855317976824909529153945511111539570891198593586119586429277649467547132325621428446895395902755920868809561081210563487352115987967618924368083810068750047079088322652546241391699151690728313589653391699053887989258755402031246459333954808332797821340999633474253850498252004405140038377586846879232429074620844571847296838069911230158527777975626955366291135712975230431111800188450115844202790558508668721934787977810932565536187732300375728678108121020045945161942870206651011128873795754828708635649721507003661067670850453188505436269726417377521951914013678614120549318852567614339092366192439144219197947648827971746041847455675189902546007956141194465049967338513934045154238831699826051098121538362015969897774383474320844076650319209528436988180147150479023697567743940760189233207210781576186461125557431330781733809706677312979117608928275170369178882510150246183195763900977820726337259258014017584122867682859772773770997310355058007309092236436433440596413237078193230659659367156659544265423338408334148034647370332606151598391452512793529154169403537346034754122522527315759632779415320575600555103493286382587391488053828039733421963248802461382106038537139398792299261411446441029488341611122136453094248995904240684548803878358667813887883670141214639340173288857882807972018096074120549802550374864135401466193232005615803878108011487274901411299648657281978815172394607126209197760807115326482139372752728515349648298767044102210494870299191602535754238329249052549764543192320065609142928532284297822781810006608196002607158274277970587328444769857305455634991172916427108021639892985027457603852440854558804094165902156748046802619636847793256025487383092994833803118860976291696795650245330999326811135326212541539412032004454476034471627902950348202975893747344327829437480772952033351493645803561126538237863729099071081736251495136507254666212491940424894794699411388659547008270432130023053543384271391113126611504307332071450518261926136247138939318358645915572543385829334051388889561583379076964911675606486030697871300741467548937774675916667486449359633240276422177171801015104636940664532591470676693871395196037586694852868501291111097655369539543290074795960280013494397490016991301889604383671276104381626577756140272861481994798957961224787739601149383991621596555588939627136578290153345310857085684288130653197584426071258289764308015076993246907005320908500044334888530087232804465662888826329786965203273597919951353517523670361826461797601047845315433438222253953302261267117146613055020259453782647890510249839416564447929126838019131838374277595496773172695958751891848695786255346653024401028351626175498760462651426066601628865816876918766215350584162574211179923355757685649861773794993290230246625396188792401566783817577455348903065491723476083870404822490501176881765159465043712997029399484526449033470221220478723992636805977598624118416540989322687588218287622145918970482978432171262024034720632235350946005689929070094919853984967289587755230420020253307860050500836800768841709005480155171743153238411140420356432822513192289759173792707907611599492999403923361156487386725442450468142935728332113372450582078973465121158623509321559111177081603843037796661329244348168314673658724338064847391235047873313597308020570397204826175175592370937044734918464281140781054269398834096582785930104605902896735067174743590513512832661849727858742370013522917745425196069211962978662918400214077678238603829315186878856681311563425921000451240384669052821134871992800232891869334250886477140063925855945707500966498370677161119159888299464250577587942441672813583399214319970556729165285908755944264468255304261877650258292442894685491301862087661193570559269386814537451755740602939545712981834001157137823356540596332263659037614066305686080637413841774425081340093832562276799126141417046700881677374872462699096401914708989906818200047035085163042598193133083084315988547751426633105755834121494674994169732637535061410940187657237668226603185945477898147533955870932131327336437703514870662483690677799292749430283087620118356698954672806884781030748332055769760545407840898982300587252056459649670860427138869050162248229232734393190696884240527716028463274655996619101784177016121409633017153685396746615175103953916639948398158888989832204649833238561271389769593657407764158458520333238208451580221585082032979790355012006121156156441244254994266600166601964059963386855407547080161341979673054086885280941660843298045879404625661856869695077203862750093640600882007381493490680714334902412110924323656173600397814245557785930304922170017226061757373610926330390056000283498728006534278403041695577534105067937044916033432950227680974086658383278220611918357828861975113619020761426047899123071537036872654093294513414506679791918161217135801376440135840424816573469046728285895048830819549288122638693038946278017090897128073647966008542145006513529455215504214940334818383162134918985722505256206601871430347449587939406535506312618800785234215808302818628957028216673317071665541554542996795200666503720067240399623301400131175718168466215895242188251874297085601183708223494407700107682101825731960143520607454385824932641665786084926857100201264880901439669990091138367074434533614176294108208874783043465694078941911192687831079487306750721400535100980072453675459913735600436196000976066945494928602506013306761411596892044960626385796642747192294056355380836061710554337758443669086018542497090860512736873762207404080905653695798071249107628409892733290281020264972167944567661745124089568768764262080736774047218318852810389074065287598459638505584328998794194271614620429643555856098071235187443814190953864362860940814974827016922160074517911856789579125955264212145931591047301144098060251553474549025269200497019903214444546493277157016780040695425741154889966467614706768305190920462138937534849452219551245262601594436686480889168581004309547362510618887731111027308469542447197996117092044886396128147098515204517383359927288926769943457213551233842551439075807976642934140259117328647089720064427462425998505434493835786663067527309048261881150088016550023425614724144971173091877178927465071681182590665498983343846599718490706993456660446187393938296536037235336584766124631638992863100870678724405941443815765016750661094772117649972954269710723542938855644370414315194913024148053521788002152914540424283293038463261085855691317523355589341201516853745959435876714321551191397308196349955439615519708872872882216595546470108293508852428318600738120210280934232541881077775612380927020428636930019267982581496361594586479924452329887018472484066258123555228601154861155284383237244632292793740326468529692112304240730263367458906497187115088121798937031433046252397341300958838234064971798859129888559307692696652077728502068498504773161788992209599763372244317588563050861040433115001050715977860308539830039710091932063099489357360286197079902670383847796949548538044176881946369029701633536383138782197201896756332094423688430042796292548638256273922215189242968456978703819445335124972379247915152539392082512330205357470715845259363099558659130488274394930422995120064819719919831738387886471827836456010760642162051374525644911251857686365636117491853434247033648087085296080751283556734456938462777121339054366667340254218957625043264393118031378239905347209152314632151374594204362863547185360798858210085445418283103115691682073879405184720950899673847532918793898552880834873769548098269562475434871838660134521688555317414847069691671122975659249034381488753041431171817626335582726876078136945933005418445764781286412536907737388650256439857684716099781773381102086377476010170635292587332694822956305190565179485601053596208674822040487574676846189699281937371006639272534456947517668588641228875611350732433053412865215039388294408720672352913328347920391392240055030965827871265033001879153029614361751309575559404186335824882272039840691412206410799401033015284982775970293196839944379827949232571756845524905912238709871394799196606882216085361265535713478030823006960769605753090258614718206597412195609783555378601457218552850334004977303915334188861185567169787082794771191451284353538975657916935587367394927845103181401651755562642801568290856071432285870456462486196206857774831879225696616327841767217599820710093766236522672795542980424545578268267173865000607404079670716756684466787691662995459538880425325842531120726449493097235916199520105985494176045956118503805474994089595458820085554563429912156133468884015150492920751201885235503701613416629235062412504122280017234119840048948199144284221824514703023136329915071743774263934723846732560377111955460775792675188094097912850200352938710564091939041602254900058082865637783774113843077216044714942526470863111834742904920058618531352115928467850841575578655924192640470958098557680060385836273451061568127251435929978861084792913499701646896272812479686014013968866728433207227076016225220211164876616946740572833148884078762196450893413179682152252727959250318732311790619920669904171378760396170297907335721943167421420440732554473082400052781937804847870893118653480561262753199372887965241771377083689473363901076541295861878202934070368853161625467035118633035446061089602182093429277117229766878456894127498163166030408188000373667215299982045510979988881292777229707792232518763610696177225946673976709609072172566537505609500515172019576922667422552484716107001407864984140597037137900989677685099451908971561231247231804837725940036245869054327376321855810843952567948459860977725730124096335029336016568122107758795352837348743902876035714338053698202038164652966684893227405570623159148276408094225230833509431414025215218899222977454994992294465504028330600536482309526364893265664840026915825277315294806410440235788754277233071065351277864155327137961530826938633751613613261600210916207647403044542286179469982222621569667092199499135483034092511422643985514252868778453764558598538209014822441717286952169044149120109396404615069773641059035605240518193885715835020595894329792513143367592916035097128450397051091447200063117030681200859980377303964410180582136241369059368495468656242926631157699366562396231487735538968921243156697189274175247342481204273554204360844537675611902684279486451857110293791484811822534166971108128928103828675287522727775092511176035195834960226879850841201461845933572024214056249621387937404745473100014833669065460355218229197856622243980443857316099659112033364108373395519779480660446668548387202891317889097337068525734696112165453017344294014866479029256910148988965531698270039923912416090801899561175964538192221382017113251315954678652033601733384276933529341214769896262049680241360653810308329080375296960704679888248586404023919542755039468004668534746787249268698347604455622810971519310703473180131035243711850465965453301782892134154071441752305142314612816314680570855986629970265020178420811237683235272184786882815200919687407113739216227328397185877464787397236686913739518976545489575578089980479241822216352126046730226171016671606270585769918979202044282829274132221483156463513520082390270921607027688171782777816044598183343083893692777258120697035343413362957093251792634640392313830592266835291673746312708365294581889946631728794912131787577622951337125761435622714507192629785731517160903297655829782041955070736736417005430934004136449008679159423235248218682390766021828232029656979147305714159722539685474335084957161659020678977967871202840770988402714781657184992638033490179266612712454295024753284709410583181389467948442066145429807157953945941295754022934682123104882998945812157963355927597170196830720960747279108268972627965510732851479681949848572333966873727991614778315857705496547718637952294921950006625892668471203671934786655476587311246785304086813192411553530721403149350011247898986099422161693619578658573341690249881965339988039406626645408623360672622366833576659399755950959658583080893291931269451714114345204336918551781742060750627332559119905384027872815353142733071707767199940050504504665959343797270052329769334043130174589862126453844541229601841628131143198124352409670621789671217341134480599293039134718921347590582062210182426318923668018874665919086260814400202402121833115338172471971794055710713981195977412735518877424672722704767044373403571155985708988774342670187627541426810112284150591735536411576832097101594565263439265343208866688101772821432146096144300177546252111845322636603448503681802843890203105447946073009951754494672679738537320108940465592865525599463081974593647604363017195073290080245011472478641114749756835941379670933617733434510307243735056144252753986851168131397320518502135059006812207972610245427543547720649240014684597259617688570535726901352171194997955493045111019623263772468731166174602578202278294411310473380812783186835883576111677888741244180798203405783354433916755539457336488891909678639199291289694008884977886035822130179969088868904470197903153633217326491761693386349323900153184153365640559234833260293901549326544661237716627682508962366647423196150614106387436755784076570195108344707271657079461379312642535079091750509075735917143767740613116381398413488748294429225502301387689169022866704033633681182747305475194585602586021133166457030509693972421791953385774045212918702907788462940026909553845190847997572383169877965452342163232572842076043670443739962613728676100038452556877555403145759588646080385705631322946832401641774591552537791238357340533066167570097243427716887272111488552142154634409581137059662642968950669278240443046009778078422228915004509024579031054542110704650874554813876143674214336624571320670362145025885810232711034120039534913731552083646871086339025110458482812862428772221986974948386734218597293976030798772757434263810201208719501225895971884127292300532678502614029194275179455377581190675470007746089128543718788554224144519298587355150154995670800109149875785750024571415931578714368195315195419519069558122283661455834608802649046551513291945079858373858210660411086198950812097587779469637545193554779544621611787432302778750406163749240078333383043914294466297890273463850556232003135645122316267545759503069654231235161594802143231760232050103702810028618335722209505756415572612007780652972334134723619101568403850369092044985797597861091709589472178562026113058851470175141337676441267452426556372733758274526624338157816352217622043355135404241919460715284156255282702545247028212291475698083983266395991164098806729480396295224094476759545088371401901188404133144150606481951264708619816515343101322796777858198692329092928662286093633102404575063220685864854140151122514424304102913984846291193789377244228541393279568981315203078098775684608551576267312487526922863814045652444446359440623590271527010947324972071346459247951312029409618094574952489670251896313088322462470928296143113634057647997650008096900555072487760018457522992497906787242865184514228319436249141134807481576617336624569928367510191253528610676893078005266561333460401747217478897071372490773800486452187499113124633351322447630735438801909737756740757413079877718640903259844187648079683461601384466903448332683001207400197456577664240291838233311008450714879510043470570196100379651626049106860192904298091006384801859173903112792290591698910184724414054062827539111038028688981233610528151433917643356773128794564835181620610685551263790093662665187550495887810226705757682347174477714640837881859889270745178983293978348611102071310429312496934970927198554781703748812713069994069226972758829592619049626151252597062975009343311909905575089771101559029906125202746243804521586259786072414715158094190718989157617708565895681364955352156681845391838923664268304458926593083898002423787180340164541456904304467797312809069350723780131114367869378559957206661594144650965510965128091066032473829015528873582511756698226908198928406597995216456723847664095826150526210342697380953860084773797126948292636478459711429045662324555859196373065397537792406413284904848103871695826299381434447529864802778553627977706152455240117268455959343656520124334786414129780571099085001346399285990225763274239714900851510024951470212417613815324950005859612211651208339773882918895557409283357924392107542366584708021511978655059700706016779590661631796923551665913690507947107079073601351310768865625266791785297040920686032525000743772343350716631683736108118689564275396552009593757973046506723962597223705116584372815271191365430632702615812443836603069989586437830088331582998999838512502644619673246310233445623176142895299243380414529518690488276897873634498405668220156973203507342076868033727708262397222469345687530419303562678039015607696500696221481831839751107016060491389327078156060176569758583890931353366334641535310751164304495305446240609727153730867528668408097295086344550915945741715995251409787405919072516756084788794376340469510064678836928077630264273756723386169403607489043440886995319790300746079351203752174883823298529475692886176079294477127636600347613732608678211730965838585616660228030050131361427416106056587157179148880611451734470062094078719181159931415770871559165531884204408474784503682165459097838214629550240117899754732758675401433715869989855207384381527297018237251106930009862778325598476892977590458243825148496210897503021308603616965611915650905371445674477238636105302673648341348896814235596408575831416642591838900581491949966551706612879662208317651187694522266775153896275555775633222890424441799828965668077290721994337945824958631841619946825961852970475045242019939860525744353047212343399645088145152976582916953816608751298537290524832498075369655085315364787376197379880603366996274162344340034094720160813066942506217196052593110039796194588062229329763984217734574957448959337842920385520800306635171851406863035429761572828607305291135071003361214376120823042484121104946834623842499990031375216344261869291300227896021721985442653792729876859727750742662959670523397723469057776254279750357392890631456992710222437415484668150226715309665436453991165026425059188192247633606285971038605044981720081494391883271281744926236758033507863376941680325475267817723338276781108133676967767231626536239121191475118940025982468452431032075263362248961746222442281357323629485226998949458426715190805956981819519133023836955695318016141051783662425612830491999008970696154112858384237896901474154054641723248047167546378495767500675456127161687917158570898764621526664812473327933673104033215750357463640987213805317862207063420536126514916010468044642982459346639349473472885801983892969443246683132994986414331166161041160945660840996354185399667806157945874885707324921000923943215171383480503697203305770396999482084614170350981033178821239027012696415862955118148381437886177391248764948567988259815562793099226483776120392993510761987949793410001491589967526351469480818073532998370536172567364552526074701263953569151539527201119024897881866313447540519166764089593355409888719408202462371309587733744085096752770956521071114672019171715479237804704233949045859036326748961230375241321041700201392498647579999450402542254574385828895087834628688049074590093617356844131139774182661816482932464357230182857147967072167609010602036433274405998224713701478068015234130370704932354519829033476907391421418080198374601628212467210247600798941697010702937224086155608191482340877086063490383634222088040157678034599930818469674690582156673638382505182003092189857755926293421481022970944122474727163281805744288337088356946168077072571513350972683497142949182941836574866108962843018431007303377438025159265786263961638781657666414797254086281988333943655666236625351546707012359314816926971330923638025296795042972659368886819007659441113550807984550166132035604056967199946291046429780243283758218366262046803090128165084238821383099033599621899924839490662665584323772208486380381257585252649554403977001250200028358324746790153062099999945447025190744880071703455456277675958820403355236478026609782610966724139453544926938656323001901636058790218851206418041244077692988541099917812574280094338459187815614548928247777494257450636990243065886961295624071578771676448210569172964894985767683909737062284857382684406795044870511395922823486448683986769267281411671070678823819518962505328006879143834254506385150059829918767235353484789158867251663793840202720417223592694563113007843220937344023789102894664939567741882251299633381353834105984807000629194264249577227810063882291388149623833425307192599213514410831505507438075221296455718969295003333888211091884314195059497735747681980750203928442076819428392656577467565101760909024958605567167236145905022202957334039116379198313216708668840883802340119239194116166634339935221843913689998061953971290401388748822520981294842855966776401388133120474878284331015469461323584046720765848082349988856860163157089772761275836798732789931360898524325747895720868419533440569938360611856406287445210236839524286993640836897857316914376501282271419917408867192474560007975473006964781437809431960542360542489779549120314569058316414205366378403960042145083081871681867313773625112892171099572159943740043428892863928439217976607643119953323258671394276760747707309076630524843698565624711742135881040851294717282726115576596735789141230078350352202297941952981891387729801563180716247856791844769802725740408060484531021631957167340143866086070598573849611023196654774602127024305561362479941621164373473448207136052538230226754801712271730601444682744883331987048190766994214735673489921745138331262364525929978798555871271161770780309697180098015234403133501836770541983433644825779762473328154952156021679009481545555741345281501731512506623958310177744892627675042314536044514580235157755873982028419846769685967421926136210262522551053102601125931114450556321179541891388496054005957562923441957466428611016565426193274625322694782182771166738383143954445475252770961234917014286455465616557661852277109214879843755135040152320220903600396566432457811682481649564576621301475164370385756991217142313154853739788870966466587485722624501741834893669719901753285106433742414015290079928671875253428983379894977270629643842425062001191207041284322242791935709079868375189579506994955088714542566857530876527364303009636145410270000409671539600957359901112596809534621693864160421167362420436572934129595162150539767720799220520478730327318598303940115213475933473347624022151413664579369878217307883523252631427427420587450021163402352952168639816131366438988355377068812213762676264072427574585053479544216903638471705213621633519115306918631271629435564035604802284408350968389247792464976372268973586573239870032732527079873830862995897247765592572230758985184459338417094430830892790756931939800714791612168045549871026887110414405668976961265504718902476880468758591320533262103895914963699817873162501843665943590310205254193928189934654158454720223527690539909043307936320562712389557093793908089858004817966096586021899081243070067312104007887612820743595264658958120338431584350893686143388554784587983502161400184788394995313920525229482479289363952348470201661748276256924854082906999938184962385276512916825705721728796750588868019901664823924440000975409237988888676349047047436311676191189640988102763878771421344858174448126183713928032475346792729454350399962285126198361179286786544681883919185214713410568596808087090501674045269089051565643665433201172599759082031581145278972380345172225260392376847964366454789244781057498528422457479803124901234674488950087482925908374416049610917314653299570352612458893090709535878577890486829343309486548296241589576356064796465551595007023179912929074002509581791259603968236964369676407477632597501734536065365034241845290816931321659281622084593229492574712606638679689968600598082910461596821753485664958902934261219070400885974509228472010553785389105529106878040735405409145214441100749660923642007318819657629896365212120201433807102734212915186471873421740364053435538762834062455531605907628880020106926038000327595716882762187443779291558058951643997728156565912749301974585310331557294951875029636645288605976161711290329508844439265607081216548749372314952998759617448446657948897511247747854736654328558557052086933678180575830082580167236988812258344673360063124887103434350935769533618153262416825512062157372481350747981357285226382862223591836170438890979356114245585976135032231677309634063949860139311953885357166231753786513303104530176214667720705758803921290204520201391571924860714512412853462612888299890163939909497272820629296748562890333569178398688826398460818067185073906570401189575421284079561158649188155536258208003995127194470244825925223397681148566435948007212243018550137194472968796255099420701415827372614639106569368265742242604811391543273234811872366898602680106928642796815673292844380458756884822672164294170339040707713553108989929132001882651728148163558738622712226498183823763060966255648510729148764214861168547276424542604261644689460429557485043757151058163424739844607325104841865891901282373981033123116081335600774734589898242451840121178713133859388818400342469893829137932082464248625416885388575615432438777525946393497896412532660513215006174134385787724797429373668556972527195317735092377413911409063727493793237253491283257362241426393504205596182380720011445856255000234904672054274822314375844879885356874674743715581533503861700513884821577018523030544772356389293790130807020403878075955490466416131059658887836695664298736414688127387602545605954247653105404792825119822896294982454674447508697757117329737540467342988872444240500983702351386489508900198359430822857491633840080859843595386949486305783887539278706075646911956319495521258340070130325112557054863943668846068162865189079023721376653401304465844289139740592688791543786362505610712613230246963067491964819018188193985810571682893153604646584696441221957135670559117676746226079884498636245650640245357025741973618892668778193081985132946711481279662291631061421386400659067624784754085328265494917732925992184131670920896884574744578352306623198155207480875159852816441068290345933328924763242224858551117538046615171370535487878518677029749603241270698731952910094117088343104437964662494593212242642750403032838241635309165367507394528880718770926868778499620834968195876736739340076575082519541264501402221057614798957592189205081541548371043373538459919011409023118922652617379274327404810578537308694586449583415126386438570255420211786381804899035200951373111828252143957590724180923903973392918604947278288431944014365213774493253260266207488472727882112449482320579325733372940577548383233794731365732229525367803706755469705048717169217924920596357240727919040857872182889180358740240622225437522077827152947508165822320527070205108267034869622075975649121298851650093857112092100803920168311945648948420801123759635656568361474932043019405463288188830337186379499330499221940107496318540723182311769483288938545250524194036420021736164079614357128171177344332033051935666245268708920441997832848756537389805994545949074780938688461003545446565703411843476052447192248846839734988183783123995977912177291121863542884333131446666251820293197288760868942671599922165281558275078499774531409179324566855497269943681747247062765630485376237240500975467964883594642412948745569405776608454336180540736327826622562823996816965605460199230547873950681486665859824797441051890409239712841648520955625274305414947205179698805236516182427048716709787790130375042029769435807923563755141989666171426549535780360929070234751159927653468814172580588599973892592962270556588183399985359775712819983032912075945812078876724169876426331771576490583346893472227444432454956928048569442673927336035766570661510082081066360809418456892825239483613706370500323977263226708182392713488546639183045573908503902256984030222691426550480658944701077952260430661406302676705986033783730683986229161993874918460095159572213393834737957524324911944139887089928613072443624852483383755239781791875062544818228575878938926928386277302070908937095447346694327320605219646205304848514636153290351597499803215341707165406160832271204067304758795269296233461254502587712693173169247905828782060525227176390210728061525842267941235352274726486533472521195158889837296174196222752462245171504637571867366839360902433580401871395111622586589762782200870527330551628040313345573710527145800430939723348690870528347089067278863952583510444420288450386185819862260942621688407858852451327920861390093970038633207682696933288884415036963739399217138574335086102135083640047843915315630663241866838308656175582037859242424044941264181581279094382299630242610867771510999279705095117869574278251113441465303344821053128753589256233703957728870711569084443489317892445254045011583078079486720523738432043372166702947405737830364255307627732942122059975100840272105194889294115291697374208781879241767960086810131017109710551869677458897866653202596687019679315009125108314647338971647721016089254266199462050625609036368886119782374762529669495695363103840773197355730628099523603469820101734103539942043404195765486175120448025003759498441181713215368357747364250241182683341373842932345058938604587137825883618023888482664189425193258863287586560964403624621266515823255437162458830030093512109871445888569418314433197970481641828741358752757900329749604262900361291915447926843267941486237970062250915478351482080119891786888686372541686344623832600029108936416293723922266902227057647941478043036600177638273777135358093320215101142548454022183176406144915932478159312949233388197215908868315691369167604549157257105454755609399910350435432485137910553702393519034612290938138482697554374070096408168379814921247659235321334965264560442687207887961367165832653336732010264477876728823202265017062321623515614059664018270407614506633148408731503996128739689590050574374574030801105595424043628235391291191277821378927065013707921560165228628459623077711924680853020824350769360918057715439355648351053803965019917920756639535487097542477836579852680890799306653684988358228184738014134795643996161802075051027601429125480194366739907691946453345497474229648237524609419260170348923543827389009151470962905464402378519253042231225582241629861293257554574416323441114595884604278955746923665852128175896912530891164951783116078864139141682415088962689045321383704700945863218227848942188762357137610079233600169603984933244115921198403849127091091998091240836016052943538785929747416408866612651390492416903997010731509179824768311622437191847707456514492414016690457920769073488752387497383301759024709513242434686723585662456992178117319517054670385400346729033497769700829166956564074684571254393183418591724597029954783762346554205156134692713361755549812332371276034167642850027676888831928987015892419039481610582444299821916582036560722029272399208073183439405480290266356221081643848545685769547685027774666382542903662373201960959842390652899894880207836649053039482256076623208069815820420320945729748432719645422431615289357512184822294531994692892724085280280042616341216167113648098413673861271027117141424611518638190944013245138017753528275451195612761709318892392067567011183932112405456913616965399105872663907360696904835800788084166317823921317878880659825556293679151534650989050818506990071264279527353600349442226058715588732410242073346198753338481368005120377862109226237138214545717258646040730121214376487061967067183865230070347611075298005042109766516602375785647222574030062515222036490636415412585302427596929659917750654747740641866057571031799142906447442920740119280396574747502049296146685940673666749488629028456022704918767621638238778207937078759042106543781489798799541677908002388347549212368939385624813931813297373198142176516726624020496110658193370766930549972767332986846815975928444866723171568924125974791387819601281747956479581168804757431477476669846157022239110163798415615046881993034568426921414073700466788390757370844934891589533361218414391671676976545893128009192487633609730327613370020781540168286535170725395116434145094238319705451843597533655334805485473644076042681149190398049555290335927745334685684675317319997192327207155432755945609364773503909587062615126492196278059382495484076306193236634630052822034235954291864211395460630202377502469288692876416843685500713492646764404007177562204655597615937780163807441152203921872278348446794587532889917242419762262072252865472262947536487716274795985575314871244097830187550293982257219839098412012417603112826108910092224175288399259476239230110478491648150082436567021098263208458820193454768075810634450133884578858220247955667362956665943033979857781326797466310172582117921054907527167854294047646121957396195821615370500186553589925593681636194056151002524054872322594137216930418208643353931159422783401484099011194979060836387275657893950375586792708455860574162908928954837805339450762697269528288680998405022517978091686726122793015664565840770147690135219396468365213644285673457434515973129102977170982414581626880498155984227634517334497023285279540146008870518828960834538492545821715778967471699379237617504926518142575278645647412959336829224174151473687284294673478839883188045417925411918981209236556868170849522802908466287863959353858767032840040246409532610842646346179196751968509149919578428154204146554290119746248963955317097274569832726142195038627402377855890257860222142275388391191244748212058707883480391201368379990784154733190508838502894601233735218559809614469539104820212997329106864467308474657268385334325029722316740299127580041831359860592712472234275385182233125851260609580197555664440799656808210860832228296088281570673522532770113767068986514272096580242577153069643622008394257356899498667668388700797734674495733448249327132623748411605914407047501619535122145316639043719103513294755802220235368799243946076754618144480803459252890639901304353794196000366800499612869526476656067652842171636222833688203815889063103775131546790863335012785213029001651478589541912266217556315605910540627929982499829026617618670338115379598017248102207682799459023242781165026407730074585062146755154705498322963196850929341147554333331489126334337599762383530213803025463123119636321935214023797028772656106066243994734722686514291673763771287600759080973296554908583512536458810774843456991929779018192646568354276385422781107198260896538951035701486844125246079195208140193841647097083199392383271237205237243205643105065371090151700577761223019121439017150455477764512415832713607636611305252703861719960646144698215752091767660759860143179146651165120215216189598112723606746127675636753851108005269885830719889870701036966848221291488464250988010239102530065876219129309097302403158776356905453959772827425206828569570069126473814159990197001801929958287368523547363483578859226256878245426472716356549197477381850495214523171167684885880684649173297459109376721370824492611135189823938117071430300787617690121395702265475384821745942253804406279759354343550182714191403916103115867676865777860697823611591285787285977059981361381889198277289013631535946642415226417099421523520488016367820360586292121484228422912054025800738257393717174940326708754758428497905807793832012087040923170126226275194368325972138059213351570917975924529687097944301179957223459104664235732496327340519863994306955280791018328365645462450876927355521336417432982787095779389801136889794794727236221315329202987758103369460181365322635087348839390037683408006699819309397057443917473828273826382483447639639925416632473016631641931009914818370060604161583667397285703426117503568688822167805511739132905849064617272113776396952938408618188176048974840579679609780031479049842177130076374608495076961142828487980805330149433118847603046564214065809749305469037909889852731692373776806713771886833931004560090821697260966019470185522650969873860344296917359073300069247955742163163481725397258979900004850032653489677506419823451847902615167783807396404864984639897137224750010227614567402438831503795456316500096726352269261483002973262813307944049413361328350355524745188583857638348676070373804290154954982026163501189721359568047816234809901527418427995562192928419778960750291716163190772082384980388261243148605195050244242006547619139882122840352382259640384718626089121036988480477751995380693491699959957884612029935264989227579366052863340778254318773987450612464429722990426696193705036159306086987510329505473897048759808325934175936080230653057171754261026181653474911521538812745664518897701455675939420257363408677074679458113920081420596528970565071544386551568542449131807683413680296314875572853324060931097252828308161244767874820062255540864115912248899035876255386918908908116514812033279449495526720526897648824775217556820796430589400208772642343345514674884533449808213298696812812898786939651901966166793264094204677164032613131766767278154422869869097469903056999029961252367581567550016579199897022631517725043388398415234855364796303861151308040521300310014663170336178706982341972924436824846706992607387840525510873896509593069632866716547675794818184865281065398413826350895157338672819922876603434703506029910908349194592660974346058793940371272655916554806678342404382982212036500825789622188212528656308212002598010347567591617177192114699869909909045190098509993476567652080563864132619105468350044601788791496213111309841998620698219036600009378708676193709670233462733309639398281362800267949252673918139113539638342927439877346192374129497355995831912749867156690443746326296883657920957088686295550071980825723085123513524996197901694311647359458235752746864297183233477410244228634553786611258202328811791490989400132233839704823343258035153271575964419871020725028477401685585662467191251741725657954685617842670668107869259204630932448722860973869654381326649245407158101916424371065134885101531626327472072694654228922841041517966795367748588580374473397164521188611849941014631557492766283145932480692747930070292090949919106030555212553971291376679931589399770396286588179526430146166178464841787681517527650789854732000585947624108051976415163739474075716717601789030384348135238393920143818473378639921930425196870463371765377791630310781476888172484906851089428603554199762129555674408766043499156012616321607076701060392780935842995101163017042690658125995775330947976255633943977909252309445780721299824402918650313287994217654838692110108280105084394890931605969352270051206749773705534643200703078056074861766089337478462056670892666310562972541001599450834501674943486464542917746076666517637497614420122360824198129493741432204021291035597559626687716479890202949014591860551127042410557061027181919840201807755365459418018906389788253511077677507953011701355471349861074279771685642109945412678296946796546565745123178862917197427794647933004160657800251048733041380602413062813661379612283507827308423943486518431407169288802958802305069642662628804843072217276772859593835430081931934018966290400608364872623757627045949184220751277065159287042878836994728048853582995558714153655764238355474384346691273623197782703217362347172097985254120394488911690929612572071506561422491311271399281854947343991581354971012647976355696274943491040022268666630567255111384740524528164098778412109618661885718081323200749550194657816645975761853790807162240242496242508898720274785695701915656269683109152278162824958663944198908406915247540191864931381299999187697356595302891614626117540190433329898094525026386677936382167055943899241489566051036434123462244348949888669635416041658300991673184813629724203428817570577166884185273890559783274849646891416644411163175324707754967491620373442283213620742743006873623907701351043713806967057096456873805499485150701444930312553286172348401806274961193061839193756621596793778722928857324765500297980816576878325078894052202731509167032331064360429413379985039600365194633941414662969405474977237942119040965777762875805431249536778359869598298941076250613143147585242453476422771732894614743006101748724780126058867031253128236837413277405632899070223718138016301135846749751824535012052451898856159019993086033087689524045250335885337498946132660338859904897835933544923767952513142382084938655717441602804443007122586685828053197059001260380764436336132591351384750184570405172603786199934963939969415134431240167101319355943829118428211964268401821276598767284546310773025676064666515826017115069257208023744259132853085966146157245160955120179286135275504781426662135889393579348514568196624132837883085487075099022892399527765104822818565254453723409023480564993231369910252385181787174109338172076366956918556855403074107249196859379146726494599745789887785666807845587284336718074631239334555278288834688717211258738488548719910414675727296158720878167455078863946141168477432904004570837574496010860027864783825498714351939963264281648787359121689133982187618943222471544675500971577888410088989442747548994594387825368717185787616565211619850840427427762189415709949114820871776528050587756369637419651508086673983014072770386749525428702682031460977712619079815864772798942687294976022795024691943888125858101728291408838609287246399960173210256600707716425032750511257740887697838566099509548827875143046846790887921687220971439886214488918891579937321015876702261960181439311104869671565524145188474587430948640787906436330153411974274422033487938258688319105889717409417441048507413524843775057062934271680705452337578238588776741517165448927039978995904910544748336007098650136007311370746469206261613887077504197760381213604140278325484117281259260165043663745937166729783845061887428514468152992760594576799992344114314420451515866006720445891962099171837969715013386735126475179274510180467948529016432380380599015383741674906807273100680793983927859082664073723077107019866689461571614163879307240403168670812688699454916901121522733942024814378106550334087014997624984749969910206200015845021457455887972645187503108584820583077987134347276185979001874966964591075302470103260324755733662090716339471103250548307508081865222760969782183038013546142685215260859153821503567999481042091019634273735423212381407780952602702980301868546975477012798942201429402871772274176684543392168246078306659172246164636382767355559322201598352009490726569767500147999900548850123817780555276314802540648292076182018996369313510014427714032415198853250708580305534262253386593256719820119718712873510288190073185676548232500137810305072191990360121238659852914565136419029353122509068049513974059920284620444413948942417638415669284508986506638872170286099016676703116210645703965177514676294928021906259495059681227169542599220594323847167611815095458288177385894876212198372786343234057813277499350127682321374249848270622182789414874109501990735192522825994298510182362176143999869116357881461866860668888602577061331528439089953358344474675622794126419054404360973369545895070856965094854039779247191991903971163822604440028191066456094430882509064139015093197095336071816788057463254957851732203484242455386844749357947005929315895277248403026465799488176856760700003475479672089195291561901100210448583385428007195436384442210983728130036669769404528996805847924583084624649247890141472609437445479811279697970067432009162515635712823147654424485663828011989612013640445663825269746606016565889193478732324117729193977929110236338150255254903313797270950900487766131257244764903732422824463228091325643435152699748988649071190894256456925000658540559515456755721199757331286535204184832918185044147173917558929171032323308559942779774222718183916630079250990379897015189724918045793513465472872487363715474106466291351399870880260473463709308903582820400733184056622617297473278143794112044094870192774662498302879038055311776221991425384387166886674933064859528765170023901785205227290016872119907062224814584319498917633639796681552710918301843476674741758277469660097878542954330927669699349802042297090354833091653890410451595386355037207870562563898286593227967243823029274593178399071839687960884502209163692480607439315089106552307128906697293737787490894791999320472567035249450604075495004836129966600622273057322078762547033683259180420831919595502525051594530207695267687722221611527223691604312383655618883225300919560706244406236498470353321282191175967464843573718936406505488798018696844922363625920915582374702011595339371972516538505460193099833002251779924322969199897748235232576599097132936870293045265017215145347452239341164683972555680977345113443435471273243639612704655591089195533803169069020945477229671900463639497189071770472542938215481811177011011427462540172445932731707982906535098412984492393379477168554619224892665751053865493482884459143278427995593693106730690441270658560509911751759035235424661709942560500685027321559854158281027540955156928710281848677209182856500530826392327131945449376334702474290561504445921319786289501112856218706191153892843822121891763298671760165448648735276803130274676291529968823690398188298117010972736232389445933207239378191887334374674135559355338552944784393388697037041734284912699783946040371820266160482444101881732589082986526130694416549930578174591679583032476177025910962121177604879269763695334464830465113772383401539587944139659533948291248857447797680778915075599645764437457459553282701794793567754104432414048754880260389732883523410251525156458781846359351556518429476966378499079490463362781892367548476711647624345321803189845616875920320933983355962595534017742729456726551870589878920318572865567641731186973652649819223321241893900799552924325140766624666915837714806293984514858967465449388610236345539228240823791582292406819746375572211088634758497382275684959314961288854805192352855184138579902522233432493666747755006802038968200078035183122805518672637608035691294569542740405439785565547441865710095859653497099363062876311151767066755053201069071427138226290016600162248805843759273288399574755195255378254766778449522227901758955693563596402012859401670540257885796458834229497159285270622714260854563364514414349900005599195766073216953873320400695293397611289335920386035622438499284527827570091896494625225021902163297634829957057366306137150770582300049150437446919638101817989708551251450075205783576613231298364948996944231576078665127001378602515103136309906977163561562374127340323075708723158279062565634763480768912525483233631733674251683975658221201021077338112620526604996189877570166806635384892154307705676527030128949909420430550732470616655046604240448025226271638199305820126301347249548801703616398072050414312454203218569870770639633036977050145029388132469044974901476988208103884137397130702322020230229002214908248792572536792482265686042257667271815764390700626972130947919894412757856486868470939626499756500921357722859871462094873182506775524942486672098454419196911641386457053352763260641193990875665278360600535365472482124770074375676984004675985753468877232937677554940537770727802933418724737208816322993687257021930822560276211387285334046402199539478638656811265988740323293853871482702972759427354359046092588447637892105328538215950144594617745391611607237958297607185985532848378238536499947791213896494711741013628718407116831537476527201462262856105067593288869295281449308135104477507222092549121987437652904778177487975115593132993056701701945472519202996769128127908785906487545953203473816546850874379453852606000478631615180298909268161772667378097950272639029142899973377533606736545133999038646949884457888707603203229026731751264342866316898580609747408856229642301792752735609173482317505400723091115376271757406637013488470994452845316828478887496222250340944692601099534135657039184112344332141424358028338790906818986865478963164189959465795449206625403202945805053321555427522910413035576708561045136011550874915917521088498558386105458638601344835505682162078135769373069074845074267351543001646035488365929883847885055959044059321855213741442363366975003968647048652920097359416635639133176209352129358158616292289424131499676660144274579997166117527651404641743447138490095713802417060599480802155145323445877825437540002751106938390995939686779259474056825946963546845078133801850482212674897758227034569387918361102909494230598580090290018946473256296604166610155554009007661783089351715192439733137387545979894505163234925753606069412745495498104436451950223734533874390466023070302849103560089688318651561141975922645192166441949630047749983890996019345643626625485634028530610831001788368261413669209426455670263075114448588254233393708164711583931186243849059733349463709964456535576209561708843223615140878418110293902275967424622009196242615846112385798979750665667645606051270317677976170954954169577076743128195214107539988346488963843766677826087906297219141259979377423320474923097661190631559790982741686100573718164326826661537781123872452321821569217802294859474077383781196630551438954188008817335645660143422337194934373030387726224547080659398010061785420599121029280381626628152253146150957522904138294374427459809432188224781696702614486581121431360099959198264330430685239642247863678592536799619557160279734276575054802365937634323812114141035738181636831197508271195369432984333439115045674995252028051999132327622304585547805498463434810314753201710490531169968560000069234005876513128338451806222524721778073361617782028635262433912892656696291393511676764975966713720700138338756194791843051596937222291137320871046125461932287497326705103127551637965675183601839363739761292468854879481680442224959537963819043605158187177942460714691949525543271787326250459407525775714521445038016912468649291752259913541401373079182537436917064488649189460491865016610548511305006447792069056787969702250439195656498456588389222309069779341910899817974999374612889748665869747866048154707503492562707675785585576150260181841652125839521886963559429813977950872505443409696457743923197181497212254545333240031869727783453921414047190245562924531415165544338099153041981102292093337372498687907776761329240201346873827936402205614565911327555103806449374719524462590889793477578524805278108481080792700952011253631659051113434402727945830998966694498144563642802776645963577450964073540590945831315624618597250799470665266661244063865820640228251650450176785119397727201885929099306920120768212621842000334288989584904511046748802558759699050307653102973438458592704846523995292066583483051140526970612765634039679001661416931090180659553896928735016272813151085292010357363889697597391429288054764129757353970998681754365526209976776865604927079711455510974228305743565622902920422445052965477293605560212607564500178683387951930588395283576916725133752963465028538640020362584992474658582553453016401548311889384939297174790485597962546080393536403600484609792083042688570323529927385634383344743188575600252990218644947330220569329724384680529423131448952923125863454397518146631528986132249763400399633025350242246495544540009429424892889602012117552793389392198078250916299023492086280589569983555594807039522777115271349841697114354644543032107825256884571671563921717453554144438480318736934592502923909132964721935603689359569545832536773644456705257299433432444434990745610991208596330048002348427413296560394575812389086454463603845441648034877068608759446257337306988300441049682136107325974550902843557047207758596853333046900191982956361920332604691105019686832081085118652615243014272210794265402217790474469813291719105383522216816568465583262331896799951492932938365187704575456386532599157319173673119571925472533463743631984246774675437748841880354423935267546289762774810804628996174309296146300604617022569698344082975043656911940151459170299315822575546146700739337520732119012350922622643277567606238445085800644032738557402252803034870622599453315671465482664543250749812668817361844155027539718984662306602895264250006389049100882271330676898127825127698615361744529361752745587101360591799105684164011078640244138353430201085415966164790007892701239834945630247001638494773479023657722567814203068925141906061734298680153098118459241986844956202890245686912235377125456692887450630066590896967070272530159359514194266688776469445579092689135772450999006435834440132953572125196951171069711332619395107875054347706924663811341692938099996902684005372346712597053188526498679095482139336190619932753157901099862027043714558611992791774064675117900737970830371521636372826213234349244998730959099862249726714917277475267445847663635315602848507806333046501392393704225669056974219521453744011369548176232105560673261660500801892089415288143945140248772100130285114260344624530549857619978496063450140749543906781933437803546357723925476034038664299833073839712379919448560066755685346307498554256626429999188439471016599653639602831079840275365605205132427900109271258319116802705002444559864261427333601216608338095531258734003442199587436724631708915187751464882143528895518497126124439648837318009393998399757323408372052802080920858500975500325361720536396070553062814420989676318433467409464822250586641849191259640382275021175159124938178222998341200588648420337312721872251835085013887936911941496359513753214622402295082946319271899052555226782380813957108521341831163025188175118472286503598493041625403754791465403395726094823064401670020224739855054855013252412334238062528086255970651348743096324031744764875292042002547651149425004051606179730233199684747519376051757088837934983337747862671483222375007127466074816539223049014940622920945827550924440721814553032940811203831442486354094495988841359852134743940138415213652594970067892111201442431405399674298014188180767886361829748112078315418000873881364403738112477970446178950201026537577818923474033245807294859881706107158889367711156840035412527077002612273513704988436383164074751980650420431589879268339000688773263368018238303338122395012657599083000487634484553705529312233738308011178402040467697324827063984651587560083801486449129318077219872099917924072131992368843341776925147559653071111209372424534853314450689578012280988799324929292079740209637387048170105570354981166991968779719675477016701112801646940360021874114300466847524118424024402440057305957150464486477299558479788169230939010093261219559504054373041643126660188934983558347931434916567418802531758638032932835249546843421203013639162499042987378799392541062905653697315873598643635331307065043717047573597235059658789766121122815697797186605854481978377070230158176078874430016180217775330912570921961895428545008854402096753603260427685594442080060069714489106927586679829813802205828897050596134033201500262780898940125809730840237317328014175462563453000669724751712184422108017492323326643525286628013262244983356372713986120353296101712136617631739552303123188783800378715855981433323518187272455237027680554904284067756310260569198487213758417196053043100215002045350053449987127022352732095467818458384111379516780634505088391149240887407732483264347823304533360643668390950831577367847490500612796613954724311734477994424574620757483970414399355998929998178510312785752973230338795717403862144406180295212533502585688647220816475314754945156190899931290444690810330767061157355127001710204488848874709836756768844688199321252651883749328771331309998565898849168056343657915068425903590912570963361225351343360643987993848171060206330702008165642328791533271206808603742059792746056322714049526334436642058076976404197763987767476560891498337853899362628495016396818474927522467266798736781428737581470955094240197170213939503072501268579078430794009035681613297069482457308594801727925634973900361733504937903240807844090491203027977704257057026076595546152289930829741138936460770938613471150729403830142904463449167063661532271910860006745185842830223504756319268199163587139030592791786977803063843323055937425184171518010080379627614289810172545668939926741846768617599537132087175656484199719560000970440121552102519848557245186754896827443148057662250070480469853279625281326677066726514975018802394099096363325845324270686697786052041381330353138288790961914686574886721041839036890738387963062680555586447675231817556988950101394759047942208137065364572750209640861928290490117379056684087630269759282665391076882328870752780768984077012009322687386628980470204615701500727777974247570842657230418779195548469707947042011006100354039975010479835366370627700996137209026524844398411404270723450582036363511917518744878441076975533639836034694428922519968652710696404935045321077815522168370157492349763809413338915317481588592650705039484006556061754087840377145595166754671010095645433477570467218014006551050135473138366886149045333571363932496839426079566808941325689503757224688935745460079260427509322079178098218139059851794505007685768014942574386939836565219146996549636396829489899897664214642447805443994066938410546294676253705128499401538574681783650480797296164371658102776167405888193838528068953345036254552908412008767661981676264552259842576497850225863201221134996358422273268045201098240691587896635946602208571671865644090069137136384085191494622203282037530465181085794309459167979690285264414784429164535349612562916090762883671735109207621564678598966297986933313613183883651480615260066211120562713679028021243085684581511366897004295133308547577594506397954190926783809409106003440120430049342837986167053952904853939039813431269906196875222013641753685854745617266402266048457016569554735359559919773363745639351435488916147936671889005011837755679541355835616211238615756101341918188417394450810948548118977183491630454328974057858557843196593091582729941399876554132975647546981458542040557119269586194863789217714994624069501335931866322239243445587641987231327957467879696675430663202661949555234781095585412075626322491623233971083695215822264212873250727383336125025350206156368040961974963739467915496557324295859853671578714646656606826117319150702400548635332800492408949539443155042399843239104440054401874626692162807585987286728199267642927289771576088704116414291557689057071951089008831888484125483514192939123715898178473505786408267305756398127882141112421668985084374851341923044476950125003506944316939325074103953388283813557514639628467313335783040688378812121191987912963851903656193855619347857375939120393205348022952406194241384167973430262340953076157967614123249688704090868251334636700649041786104704717870621251365781776534555563514641292540146615625612901289389557410279555967191518988331654840362642468145289389148657997911412195854057604532172021061024638358666900871440358817764304248672413969180085678400070329340354077235322314168914577581869774526026212927526217486414719265856398532871938115055397075214181352011238071222601637530490225011363362783833494861173447551488348023612933839530640867086056736952480117418010581058647225482488125272216384128952645289315645495852688550454778394179003067791372124772847729122736792870205524320831367332578666668068351747424829043588632789818876863140742456851723903452668537798922860696638347470308711346941590499482498881291559114580591324630043208368174914922239487540428000088544211189176542662354518115276654576325238685382433660495795337600271521259592527521674858034108555766248837308759742986693820139723613219241052344166547580812456266640650984171506737357966973580225187959459131950323811206679571585708007784792616856538057741186189550784308879822724144469951686155382733811841930391686187249142695138961437719142651673716619942944911897858335158880080461124145525435559496821411330183496771347293259686720762744681733604066695496625408625551251398932540824879303154722481408220653837704754152073864621025373810056050581304341717294038317277503305064982432085466534283226548485163509383324435724447394553043595533716461434464709860335801720971157779074297688764234031930500143947501200770750717462585400009637357283357596013549205934564262895074648017430062011440334173098340191154789093210362825328201460486785205647076302369551548882590603974932407601593952361110651713982479401588103971274797510289459005808574496405991993167629363403421253291929896870227751402692213746746294831014443680337820285520535512691216046894704948101539871181660364985850478840775012133092415279383058670903122409223997284484840588074104793925309747654746870519068598681852482713507003901123405396888190501073837053014864668503902683908923749938741174246875686652818945277498240497220089640924533394408117399136570642780817050890758244157848449928459591506843851168218601069130854011399911048442589789586399628633281795605930525843973557578231010020161702280408967604456858649075145007329588818757434412394714903580658563047982828165487615345610591236292962189808095254581980455001466201190302807467623316304345260647635010478918903259617878141534894452997837816534325766491297292686735217151907569310175411902589556481858193295382082379108839979352739125695795828823120305237944759575378752381530549346626340514376168473183806789958553406469278252341074341721238091912574643838298721790512427628752408339016365649781140378416979428470654951572910744310768110548912819548539181578899575960919400935236987869716958037274935389679564922452285792078098291739801428541254099431218406987404986577796933076784955935536257520281162431271697537003092976773357070841403036034322909997437536607216883652926886614352821272678688780873189693265853108773877783614116759565168428884824566359018350141872209581063345958403729049925926402102944378806543492710783035840750634038798526827133858872735130809383506372733356827697741488439374445141390994391489482448537013684746918349980340649927460517149643093031415443959878623456856937147942758019767938016927488468816873862447858167902693930879353381377304024264396520048512875697174093350759442149612719020351524630150302332679655922548463247846225134676244802344113498460234047663462306561046968283618662908231802220613514048029947258147599053641894996766447374446622335972419428805255153771560589782787694178753084328286697117756054256965076185612571120159286905531344751350805981498720793008781430775441175750297858242982970737329239899953068951566833656639126276016019504597726252457084117876802421165967727144776180378647911583586219523085061382225513060325227159286139928302027218155672260826101966946729165475503948678739656701148697356291861643287443650892996249403171862391518938270433653824564409818672926754839675679515434749942044042757189528360575977298812512082183365098858426480451736702710923541963225235144883082557736463884693977903602958170453141345628077114694014869975917824072282245409871019282583156042142847365114621153840822601173944972357580452460013666252938496256545461002761268236007144997677406939089316134946145859816066354549435848201785414179978303959219743499163777841757567356565738757038087193560796349514251589054923107739788078880928679316138095498325991088657532448790548464828668695657429200254634575518759369028079693125237773632504497492396016848521848114199830699152663992943289441346779268744690450183063834941954023930537802407912580084902638519610214246719563764815654103598773391095654846821081131287544641892326307104858505181505232077139191511237563542259561067117792777225019729942464802764774219171593357939629271888183829322074474869351268761229865813488132449631943139689065732011570373959906274004434259695660445647487797786903972180023985407567852742167609094770001716839123182791015066584800605716889836029000804566746222451999536137993122608537646533494468386940142717957403582796710982328924284153603603344877480767949617936562471704474076959073753972330703181109363754282704831483888670710685630795911441812274188823924313378340683826454817199218170702406708746173072173826124702704945558733324881114593122787635208699462808400697051745323203961494569808662146885828538950366835506963989759763137691459651546058625403688701494695823135041185832346598274273139355127590282576387045575067089662696887873472583498581896630516407458937963170728570975402286154778654836837578521673269285660833309146207188536548183911887078090634765529437006405545129320437103110918370402433854718961424410461297992880033631881418767892649109690221536363198357348519973601760045699327255051524794845714253916737678160442832468392427523498908913281379012859971934102771480210858262421698331935826764539904324353984229481784709516522126930962467375761446143406022845169848037403684309724325386194204776853157528203058526863548966002000353777007688129725621462289978773390358349263528850559321692739883759658837356803701562105631609644311369713945498066518146602301771797491428352553757844573605604293239197837335092749187297573379467439337880180798438883417749863527688581520356394669943093796525111221515207558493544965953915313623919823234057140589813884288872095723328447741616793816116576767886426382671940351667344709877784946156508596118464421997490520125810424762530733393445471305571616578182324206946747856206486030714855084553901528769184879154466896111439343959323581290203456452426208170465466658526814702267681701032195046657199395673442531210903472469152130037604320539523682330487694916013555637473884435987678854656867945444122040825072779558899142975000600709738052858994873494023517680782545480873557526224367456901709854179524149816454959681538659710733540656646433662868879995708597689041408984075577992728292932104636829429692282126810327926884525146674134672259104066135789135533457209087708042774465353019948786765464326726418742221037882507274280592652157663789478944278181777403293283707228150582989527322540434225263069978047279483104823028526135421865533701577609626696538773385591733432788038956116924592950119383433450635559214605274784204655232291579608950348624007705301165898732241222385160346394052527692132399403734312886362569599778695411875957069999740982523720045330527126943397779282942441232343856047980807654598166375857616126977210331546283181076270522758551633100900633632263620835882030750016700854322204873130750287850476972316181520018339148257753154510420194337541128054212808133626607052792579913595494192116167806867317382554807819532383624148891792253258731851489997246726139155375678879768799600832246395649524665147080404414459136513098606131524240866093573614863746516204275693945238432976742816271039442752305346215907864902819980461414216355075713290904021918643086123010903357599448532598120845277302736543728298343401973812035300963345656948118290706088147953017835771803636652203931984464413700990158585453145081855851126623072707580076784028670888571085247246237132212478270710608975595121015579752972251071869741619420751694248925953035076159774297009958433514888096443014141543807733199844499835977335012395118310385398718545061002701701519757290441767171933300475374331523431292439439111996728164762042454131397257355517244306266596780772164355174067674147534107239015709593396872480589832149478937685549617690706761589292529044376650173050300697671375408290165483509106649957754889697907076411923106937834331481401709175897853359913368464718321941982296817848361839204469441391542855549434830897155458250577526358245897732081915131475339206829224807865046704696436919929730415473052745254374793806010186261986607487246710840223015220071225454426474317632544162172255836409565534661191421631632475622815668522460505240788801386587710138176759810291171027897760285637068887223489063292695266432410309914622031434441950127430618137409702165126108142244436975937257202614124067209789003492065814755612323824342232388160381785343940323842583006203265579515118016119449857560079104095120167256313461398781669999548964717201561392268461679196027404663606598342663083926118192930907817670511072411540036909004759672725091396091933564211801761254781847109382557367089138528116593505346518447060104676657597634294295335726299368775428007042061241424545462780611930599303044411520416073463291394233615331276872143758720106064888098068806609542418926838738413933054273628636880144379286031261420090691698771878001153623132005633865001122886666592006130397779125758600345028021144554478207927117561004397837945228304254414971373177798181727382330680859787990562300129072250454945176973752621855000000021371092729512334310438463354274575780313463821786411556933015495733626587244099588782499432951878947976306249047287236019180643114453006856960428295794573228354086545001154720937913746160291095749679488749442832173790707007708504034744405888513894582867013096209864107795585547829080893963982215687525990212592958850213157435112534959273517015912700764876996593050864436871005889766244613342169710418183213996250481459082255497977112424052083627030011236435452669294212724782713966172315981900021461210075259817794801801155493248260364001244289079783686222391693399116834129534081965557872303874701597397099919235649742772992546975953974513596153247907543588331082881241529953604277014221127342271602285834149954865513899337825826687874637077086509481789130669933178956311289450081231227115261781559736258685905987592662214968600105048083565541400617627987453215416378031466724154342268232979573233530194851300059411944816921693760944873951421646041694699602194799670943287851791120112248941816311735176660757391127862418119070130462837924835399830087470329519561331836101198796558269773652864478958075818106917037731538413528923606481937424798263889887006126125718600533081800570285137394932354719339075584599493558296591008527126432883154950261232448451147958943016182500645882740357128292684236258452951524370367508903248521896295316647248327031342029914821471259131201969225349308381358102533425944214580630201774839070877793776358339026136423363329639916061537343416972195292738807816394040214164940640959311549258502426102298615086368164435176920383444735821724017300745912664564505171511156793293142957594056507241007555480500960499186237422206713339375171223992939349488883625739879720571236001603163928134295607151131328594041216100253513882972122651041778123285733913517792993954730568328973583273545029787096413099489954997162705597982244976208863936464657591960499588611140153959940143651821563003313560751940664455665323644350570294507931483997244644033162272927839294340961011523866640892475782513129111786158074331851042844516854694611789591301519325245052808623793951597042960522036823531825156898057783268729578965709994831096223357457156826713248431487876150259488226198843703628367234743395746971091205179010055225599062780063052071930365626647613713989532642871600194684845435721531576597075724411204156701689822100457193235982676092579891481241611948250831822389952531316189618460231183099871004247901032890496259694001064027121458040458175020986044543457072593623110725002513951546086939692462175636633836281023826921870247227008620099871792532944617551332241450102612547809356099331408914567766740578575663166436539183028223386491052397036157708194797055383539913361201394495578057367318184781072339425010999488099669113683776633505030859203821363374374036636678595252903867326789919267279580238070573871316481298750468717432432494323468841036923833577472016556151408860428515967188638059898633047531032283807441428696451755811934952834249507885293506908021215140844781432163457792851670368732242032977505105572824162072162068971923901088774771265716912806394584639247336477218425179699021154179022002943664772785798450541296343434162648129270449794368310219012561865589046324037371395197872665217881112924692261415269742887725445472088066064765260760001875979281932256176646766846925949847489727561949241655786997141693284166919421165175014654651041416197604791861344532796921352617964103708617501676506937098163256332922405089802315720799768031136762814562730943830049910388470381392368952355157828063763249146312450930771871780007171481790897230708749130258683486766230897603041865341227740309702242933535491016133026634638869912648562435724923287466204513408678727617060314674838495401264953802977120432185758972471101459889278629432675834967189380515962365523886855474905051843169611198402069710336931599688862602457361885738349907980041656221555989280102592649285260918497199714485758080944066036249109293211929634149072804612310972969988496953524829755675214832383437541672973318514651677486275566681867742034242027304709435265157056363693622866349328812635148138347903690315528757712880370564582107826008973935706674156573074819652647166367641131498436404798620373031537273650543855106880566933412194185547300324179610597082273071405208481915443157102421183726987551926125428963276455404392307000935858275203708735392426535776207791635631610912580546686254940414775895918800227687037189161354241151270522161387995255568184898695419872502507519531930097165050533075096237862665177862517545565677200957926303269990132990976667590026281616629028375288186557157351883995938009430532012110065960931850654926087057251625480785487575715502258255848143524441616491315783500456454483458329355927781992267269023155330118053775501908382898012343550604074862083481700028178364021009893712681169653556000630924101807755171224776499109399864984578445256514382667479973804748548037790701146876298118497267712629478106640006787761822241297272675296047078590638380208032229939575449262984645357083947347495814566433869602337840736037205873053132903526717998160429841133727012954571303834896897722637439357398633992817976262114892884190700164691503516719332112819542746260737604717565442672616364498217595890561452759423772953321791566044604735839637442761064159785802243871242921202828711374250739534115029617007197224533100714731366768667973911555722646643704405412851278398257361761296352442551596104703556116966053379517164655010249108323146539675172242987922002703153335703339903977341908737487387243828573687723282095150594863444329028777630328787162511961507907826660922452288406157277309785719736231829779367163414921865268991666494835100215863659019684628024464499898663468974828092630229593221998870131632260028035339033805331528058903086592588046589975568828318093916938933342172783187741205413654026571388814291685499653638891630607751686055810808023129287832024264198866041756007065989048463077777172066599783825213759949103337319761482317128141948160487260307219621697763140097169736479464466955077647735732475482125503718723588729595838994451068763034042259853695099993656999390778949227990286861626357497736975909645565192357888852275154429763972859206982096709313065421991622444315896322345424390906147161780259351219111178546129912532106579234408748820590987613178405609090442557322084472140164190971168582728938118842461992481157706828932752158545575332192295415728556400136622301802924524885166426589944457372493697251640823515712777650485112055506252451147422052676895550903862151727574434032761268233762075182553276557272813380575252511075043438743475767878898000459654295557519454056796175307871112347242882772567932554183955249947660806621869741777787922376237175725145112882665424514259572237392845535889713604960883801715226965828515061076562217667060860864133194336794661137568966558662594906737301410482080954507828818947668213467141948178234533216412170762177702869109657903580787413005636358325603044980512661481918279162373144661427463892057987539082709492088124840198925479529531372864904374685057501240175056221670830361136164341423866018078062786166840921238611071681074829172799682535302717244587079654238662604412411199084903055501375458272408039005303194072446688807241881846302793586691813977665317950723955752351484929036121063239273227364205469300708499565790296037734846899564707664956629405490034627406615128637527997564440212275680617386235394441682196395959248903273933881327217136703714691856454073505226169302008726265825287673754403389827633468566357690727874425397393824296634202172675013468020164905936647655087014454119955991503169873022865229433551914888327101107002105503934398511196553568474242923655775522928489788516552430661018956550905337475030308881642309317323006064993079801611603399109971255948658972966347342437601052255621410478166454863880207300459093904043823241388961949756772178780386358916444947247711264896447346186769035512509553742896149226163324434191234364407112862518882916550948597908025183365985893968823095857476026751467686072965678616163488511920625703427434255296580498162839674470483412710394337803115546775862844133559878931519559960579066396445292967118237393890623489610143515417671367344289973074926805538558586920328469817447185178151131086413100356384047602560506640932117703662103900791622142580304804578327544523276388189167337966487997093558419206537340829162546252089448785892063509387010760861668593531699802014726496345536136598960515441866523732899705574694779741547744290652890989384801806047267959071958313503602178967547369761827848432624609995473805396740394519851494798224466551877333294186877733040552607637337896803281021866411366771497096483567535932982370789839248759103666087935338185494141481030842031328118070079117094621772117221950282100367713223619719519372574499719201726753760721321126470470470591231961195995917370730965788429052236767338966400685097503449497447797860616610651829020450287220416097443862956985378082581672654358283711020207034795462302485600978095407854371953664071348783658401787398736717267024757585826213344990074991376927455645224973164999448006994928112041814251515526537395667441505195838142404320088517398925134446002045515227904318489983879562626788874722411197860765062894160068771047630401564580805258408365982018619125990419002489209278503339190065336769150865831280829918013170609328545796601427233749689346119317066983305310746496278857809798567998990631606233063873657258730633106773831219010003126389738439235132401765153967563818258211634962030119558288428404088064332609553948044142479831916317311398827552114607835194828716262393098875685560021210354887631047524788717941590867910154607638586977096319477042551424589885633015128294421938721395372650202885079890796726697761011020401471585015271090162889039149635810664884167277013167059679114894541719298041598304740740409715716738136944159434108017597990419332924045796070206436335979630880352222989351561033352668217537522342382745251844800509425602763645468860186935803623523692600736882341773429382330735377997977868955564129476409676209906359114416949336364342429860360553561980020189465813650819465368041341717977411115558953002975693338655458540201238909825437571539584279724792696320739563742512094724175478644303939862457769078014205466508360143453443018364128237839529309122370371718020104951755814532275033501630872866407925035641121146792011003679880220684122107749788221816289183765092943284530555086359772350315684401666152893835821343775084207448899918261383623499503434726619668959260642005984169744688688763076392244944036086595839811231480409567073548339854682391071179790102856569815370860022683325405919386881248632184685854497191733631894075984471167470490244868878744373416201843793073728010570116132594075322692182642128746888482730690490935750759535472455008551047027909168621013534030110729856623104758059079428054750337779433251202492655355546308568904957958069398884991361540816193113824948946879567466797017176806095841276645187500356121429973027107074658367147807033151946198352749693195530771829841295713384871371347439613452980281775984535839207428318367969837229561453294616952014570580621556910046924570381298800496810814687954656882349632352892587256920761949879842904161746076559719672859055721251664843035860371157149654574472479617481264443624914321269864955660071297080539260471008842749160271698450872156243884510046547274356712173794423899236418833549729416457082616864112531547984404186075106027339623576243921464208761714909909239583362309179418982697678280521473180734377536089571364242531149760012881101090188611978424497124764719271278131936620862304414614427610205255724992968169458529990999130594434629910679943008826268987431893325948775195443929400362714185313290575645548228627434308208904329285773086998542441579252821498628470119593267375686675706278556111773561060196667068746737632314113094836563491651035874102985923411739644500136427312011301521155395869733781543982877536895219863063700280316117714871218483028835886026625205929804664443214280069389136987941089825160192081016210676630556695296904618229117401559698778792110808726277515684486849780896840439742018527083203610923668494750397015460016447744279669136689626696445292048630706805178872624313845254802762164630324150326695805931852699979459628154380328179726605120006509564344956468788030130850182778803571647136696765000361810236279579037105309174919260073994907189316971293784400013551535628600252991227671129146952137586951402409818968932021314062411036287548491447464150238097753985961705201315434972837357914640074637873927537983535889586706639077671143817341232833466492012396386643865792744557424311368930177192284510201645945488330187705004942713207875734912090002585838488292675220915705473404562184705103271253121955450383926405382033038230750160554664156702344362533789667050050347369435950287863140010314441340679122199419706000720569896651725705589597528773823790538288862326753095637356491934384059753762226501217925372664197380335309397370768500856786793693900146714025014751292533934723215559977096329832411873244764181454056577384551634190681030805058951301756646878162107526413528994743554389365799354557080789632318181905327342089074569171164184431829575836911373517568136304134584475587346376744312203003868953363969288853931043229861862122895585893817495393006979283476703507569638368680133716445843239953994368392796654168509083987025488695464489249508152063465829118141974058023268674230343945018989346996751767850111053906382601794681824433931106950063045887137564108047290352708057557704842733147112646957563286597720373015459668727112622644169414931490361905710838234028763021119968018514035110885988665130256983068916392967931290712497049734099169737083213790845861072106331323668099914257843562149186955286308648729656671885356699008523380222837222884624073913479036399789007010604636738089928711608644518163278603346258886465262401161038913104418886018811566811825851995309452775041500835316596144782878503521053424716904643536005116065019305393428538195071071834180494221246752357427498428211666801621284050536781597735363118624718316489314847379616813246961471264812795337996415970469652062793266787567747602186849444451518799784031640979430870212120024916747413603037725422676900696525714222794095915199853552750321223937024748258205850963978837581022819816965611714027515244305039270334201609097009620631381456944443381133304601486971001162851808785406552214280833537531318066930855871721656404145350246827653110352334096508777509255494502061917435300506317459690885213458578566307791175198781572095078592731566825961004742360944068949315021049444285288488649311003991559597160426395796738775810363834106202507421084121006350780726833130157414016319815400688612932035804180535559065889608334390988431275132976941387365193441485895934187336629408754836972736170843301058237912025212012557443137002221936745073131684129901925051099555848640086857120300195258410109410911642495395299112395157188833611889342286272656101845780540826919623601211468818930412258382201217458793703576266679806568987555064584402843977910725440005595963550110445518441281054409020810317593692191837333116272926546017054948739388088037713534010892807817845860375544500753921925315387667041769538073870723996431389445050629557460843838336475872434979535358531483636897880324188254854373674405231840149984326078044411192113779679770878502890923661846047167081918991357635411311203102716678808741307736135886232693613652904324201186262377758732583315521941275299180528303315411404678371645787421581844665961773055967287725469707068903601457428271230831482486173199985119890984455186043471342092969986767201515796002609605635978738437724303282581909750069367992697010696477701309093751766658050671275470121763886908568413626951051498872616437786834086935372750355905899636203285179659452551529209358823196097731966860062469197333674636229003900384305985090121523487211132936335371242228944321250881947418376052085422644167043790377263675378638960859112931786903946483237495811411329469725796581174984369648214361530654681243169842493130416714059361510780010275549010848289764672063715740372142785239479847731130303362349239398612105022238856428062579389252708082856253385485318616842090048513583386671030251253693455723547909857619739398098021849947158460045702880885186639549444889162113291341172529684121082202665623008257187527882092846451233240996079960680133963096605112196683400600043739929737119883220953382128680373978075141244152905795539162967414939712721151053371309028427545956736307067669143871391702668856770815298634037295467669868972197150394536692401667523676767731135623084060877430695683067481226425018698438351723351913370577497488551560439818023841448187450946082914819091840471155586577307916685477608538081594313294787492335506653015109531935689544864982339560205832669357164247136166124760109259209364655547756772229766866276950897226935514278978145681067159009974986162694541759210225651500853897218561547816253293790460668554946333541085572834310245811321339764071026187955673106469229712180703500742724922603716019958287504276831479724478970688555118084072112665158426400868485299076485091214265747978680792849750900242449806324078280232666582610081304251320110196239930353475506991822446053923812992558933058048160315476199774522958785202876700318280007204748660207627249043744434926601410140755572336007411693311054980564205013120112888956025894521552590336223300068044608013814899415591914785031062381767083917451035586713497681605578802044769623683693868254561673336702816874093234754972827154798905606218541910235398353669940849320949265704559539867815735693726424365512184201920291305109223546224609854214759743131839431798798954587722884314079513743593866700131453565088022787688028675713943486789484062344212831717899021459175326217477881895602926288082285355326079073564177603544045571905033515717930122607341549696220324332148510843651746327747247848407704915593677666963833169217546851834018353047212339728008672651128740573998270199762412466920542236833051461139207022078600897028408526517028460486749844449103111411168934725066304141497589620932749065916040148541466770960557607936791423356423193958633254765360957604905514231775907459397914153805636239482379626302183111268240983408620193008702360985732455032625913698992502208611909077272603809903293575001117701900337352975728743888651550601493758461143118099418383095125171023349236301697551425576366486413047366806231661199898462531189090234602660488277215024546371857836142623601713922401036024650826029179227778974957299058580348876628152987588311876793534908195108716686930520909073290047706704209423604420913145369730173678964167401639651732791235488824693445562724925009961533857775102650413111006609410956885519242404836323597291615927844828775523397663380576059486526379489185325703918755370768352539558607473337791921254285867598713589147587211557168725144554273832350935406878417283352924925693213908459082869649956369462253656226755388800095230852203711949409096738273979393041963847036830933604176909529307059149406133134927285223894747537798716030820765073040527611581981391810063081175457245085382289889573932581002341963311872950574822718171626254770475741834880650111749302031097533698656087087644453926915480677641606898187991061785921141953251675679005440020488962033484801294791474012894135327661562649427439073705881746141820170033750496797319548448955750756659122856477741348755442476651958383887736625915390243895133036039872666691025614359258160348263701511567583976759245413152683408793333775354972901492264158254546372267483801386605006009125975615617966785269213523727679886411051794555103668068470785748596862445548554539626748809018216053151424717440080886613600149895922402248708976988283985410816248428764006203782302770924551626838332369545235137023857384146297901733326454149219599073202172806122698401702156988461104861161361314421727151002590221832448217207563000775115107178394864405918482571249048222708247439818169057843729278354419408763229091947196737549929583557726004391900944694278150465802466058743023006194305006821543924154269599998716357513782689750182560057651761718467542300833909866363378593356615909408823752207921477962682595037849217915387129797479583944994907420827605451167751288280936380448424953920649880864641059990690009309151011409239469552173798385552841967096766908792682171362573662798579269296313128365454021729512919143121972253549895320374339052718523646778049654961436646656037328167596628559300459335679016147290551380100735625565685249871269615756290992535371342735917010042265219361426882563741828590742181429878699835708574625987937042406903412372417527057696674124430228112389253439943945470879000553793812390768398960740068498778200328287438680138392559539745056815769915247854953746318986813654625211496977635640638031621405698531166493475073045608238613932462278329304927629911388032721449528568560316622579975191648240500686898944675986783209760697473471993487864009963363298770424324620762293685393591307084098451470625982483155347923137961503562474498959498225829478669072037934003922193822632554590364486649115058375009045933144868614396948193722921258685580963409740741971529545875846480887592894514649561895218258969051932391071456672578896992374628419330116954402148585130377147351425768025182945224148724785160834469815179913220949183793584108811147212369192424925955223829326514458985905392402029754636459724196456142386535373757898998109327098415139540130171422213447708391464991123425194737979699020761507368235621641681751411809103885395839181426340346966141652788015673651741301414732548036430116845041254221811695348223588718734608017698203342039458539373731133752220238647768130991293815657183313997705775600968136999235921588815878391858892166191503301002737562693081310020742935497692837187255957572371727746614028351694806458636149268404398836794981007705849335635986319608777051957960795879334824319420273248213120758506079841814990617548723955480422356467807789144401298594483168280418251095805430030495886776298318765956418133663907307787308066905669566668416545867917064749590474970155075962098269631436449313664041395459637920749743565772206447025766786303793104382877061350331677804045618085601555776822826301374298697824206778657987200581676677759147894628604779731164563529642677471541940801784549139697877540392087056341890358819330058059504103712199630522019795676368991276875652537138565706335392044267875330107523393073762457730838208543952034810607908023240955075317127723511421384640521171676619446166543936795907613961703218681769977117304123907687808099282789989705329820509287924487357722092768763682023234850254595025921383786543385163934713627396520048520673051340704273780745927087889317270467451034598126983565757998905960873260015317362065907121141365132576558402434841039484388494374917247373144160724296244349079160021466886271310106257161154749841329694777445112766400678754441146114916127479786214311271593783519938218281729616432537262674391705144061510676772776050750155010810334850040592193090490877468598950353133186728132951266212328831453929868804303770219055629324598921052003005706898259379430035831261038874471730305876020982087855736607600708161332482208758848514722837526332614541278187676877472842971002301619306644433243748525887781823776092607232457333838001812344293918697287258330884630173396336406573365594047424793305501258428559431586572916575686552746749865479643578680260198577260376049196266183925978099479005775662216804027378206262333848664552624319952355891092218206577823379973063485916901925837333600679547118520443010962081860119171574052660705381762125689760586768765846706024455840030897609235321415444772796767870339411080296365891828365372088041465724771164089888409278048053870649084322066608864355483548901459730210923995136709267712026779506156044320944786384951272380303163612804248504149938816161332686572157676372035075624175058235325457708514868323056795823212403296478388050654757066465845108317045211636814415776196057012937485949695183370475190429785850942406376616013866810765163322796596237321084817712130486552961487428233871277791527324494240233469175984120213782286716975900397918462196156294817862899146322509839816289198557844540706958952321262704975540190884113592562454001326469988796676235614760671377577944891377110868188710953753354978820980591332128869874933599381307464533570358562159696337191695633341168968343659546192092445020114227296779255295612534724541356369554822032615496783814283263167946956677413681473780543411973308185262441163287672440014790834144038028325384025715097303156962924908866541666303389940809522587094361961078842770075904457302593975301252219014030860683350249149734452730246977000109358920710820149059094037935014191703865423257378873547958290871168679604076769051043703374830385448814692412106974535447798067468428018913431470208396773550966449233883649119569271073702900515769575558352286532995151335046897504916344875014048907035429640120498065187457668509001352078837615165534387498352913345853882131208484103202806920959584947880004657484806582411262836199769318581026071514765714713395219351377354271271460331061049418228763769464772227159356561432963670793827049962776772358244137302222180821082963954648486540400217271533693501622643631241599816505756967829872402354930054803791681767951999088729956555216557325033088048707676363385428282223309413233582694997243218492012512005769712917260408604770782348088994918489825755037297921710812989979402289024171993112705027302552744057169171725601168601741543136941586853023933915145425518528541644948739219016554835634984470552878124015246417582566784165622363238723773535926481324698213556909848124489985374558471241708516860368160203271753497572992378629099506121182224674258183911864347916643057691842172776740417204322529516268326815937950311464135728372679126087593510503194999629233368894918729433916217678710294267040818658899642845790850529984276035816293942360741548786417936453104046259733750794318765901686423715461026549892451648721414207902004543075453995469855949078075125689934818339753521286363988618912610466577753231679865154223134573272056694503644458060885346967315973099506132791911954614427948549068449770826123680454160402953837778817920981795129304334558685360433488206972255065642270612459191327556645722766049621340362873183341880290187134233024746106165379162611958152197468794821103105452599275475956632528702256932960089989525996262006689664675668521246007178448625115225572646852398998927565979228836813313292880944870694748999162088004256606202126320164325513866313106314940711820807076397041190626074780995405390859256204062449400606132114286725551699842938229595667243751814028598774702912317384533148734080133133276356775192664121186565845628660450845888411253796423523823383284517551396574832826161155867806753126654192278397265327240887119383914619343970305231128975493242437710710621642523390117979219663782415605862228777916794277957872893307071403475598735588525456985726075279785495531803904405782639530177101980834480081942780865440190881538762662667989212738693845048009094857314796199564343862823100319778226782190653649841229105663018280880278429590448982430199436790181560503734872551035885943875191752699513038233454235890790123435821422224885761172340489014730854014010587542785952662509775898166361789225648676236643318445239996145007900600006275205171658274787441619270707658967333121274647399757519361742967066863013682347166313010959930225621625911440689389420952046383985529206393554433662973393451282562687732906298529777720380638534206222449803331798260805298189633101030672185224260098278918381711648791872527208070371158999582024915255020112899074910560124794659612729264668408158821610501273835758891283746750071107573259410293046043383684932528879329894566863742764802221824085684293983417672046745743457272559700218533791993819503395025027807289998297983637920562940781418320777923118354805720613195029724407564335055617070816025088503309127618756454674985377301068998580450833615688205710740301705724312843616442635778168161769410266431038124885493797085284529422552909886506355810419859274513005865832230899055023144921254148545336992422503613163495387334067237887251162709339753161993082501883322832052901857759984443078396130184697076083926138972889004611747732717178563113038183749357883840872080793093380253261320929825283083338699442860873045646536252221944090764876842938470176362543678268558316194719267402270630549956858521723534020621417378829591255088432296016568484741879565147390595556929071598829056076774472326526869373686281124158530722149689810297067249293492725007272529998245533023792251799981662676113210092472183321853040099216744159385744485299220175641057594075273677247730428103496509114798721112362370254752408052697046887263598585696724879236322796182444098699287172341922224791135921808049691921320367549540320939497527458855219849184628300656794439834328489567902510636780466517329327145737790092660821343493606287147854717764539667392583043100375198317029801516329100624755976950527600609857772617874716412656014799407037550403391268661476243665896345452889325988130562964414883086456752531554064507543445155001752212844979986930060834870395233326332274134521661983828455718628096487971889076607622279465869975795944244735512736881766334208274424215413073957537691530020251967546156756403293279293581242951860000148805986450388720482061802808467437580037947606315826362783709288559702141084511587322800070763759506554006334711165000637115519708149577308883366662644999510353104839865196932397107447512156532224865635213126374497195871993896881671440713916134151071959530937807335684426716054271595278574468128621076702634763501354975795862170817508228694070537488526726659462420527573510063108554069872834881404271243665103187749485645466659541538925347971363062658349839220248552166839828479915787103924145145535591653527288978009432244612340828446310563117765191224288356218679059585173465846050262894523059002512726813335000244100211946451367955342458189350290984193801805296718669542268790222848342637318225888546282120536008959955994215949083285320559641614811754613363655824815441374179917122608657744345032569079145193433601139547177281599205755676334243279720907737801271456684518330088999857558427571461857821508618116599819384076126346032511624724804861684798208763574528278589375993571630798173920707864371099899203636318065491607442420770776346107365736558241457831520649884600371650536609681897505838299950185026510681246532507477570739135491543887107122342557003750600712906839166469907430014069118670640611530608503493006477695928548426653626160564786657678198455677401453653679128159235105233475472590643086768051022528322475909914155954767465386203929947750313646013871701366701530304785705507666851711475926225901926479388743174352499199608413034481192743026800374711208400850989193809247558745001694797621735810372600541121410909099566140024968653006143959520927633136463559902089855405487128623531880040283171390526157611388768388030184291376264076913283495711377658652367552703608847164674900465535532415368082009817316489185539435342890213985432604697861730499408780699596025766991586951179487494787314636351544481037737672000701968389174010504100732107557732626416496438245912346238216599043285942693063331181889981652179936019579371356408571840356907679152747164286095072060615470709329016218068628191797751167091278218503513430743616659782074910776447849328262993679580021647827498426194149487679013293246134382803580302813509186026379804558029200062404764886728349583508861186729763356493311709229288707986494506817660010192549565916498224937154451414930521680335375010385176120858444955895106394799404163067896707853289361978586455614102653181302652596432491199476163693537073574477373754910116426079579691051063506211880858641250808043472410649615981472441138216441221243089006091630395679872996845749173236033924816797054085432301496988970067676785495396247188288213756422392785623964885772056621983339309553577949590830560821256743179620654529507004530151876242905907793626791337981164797085292451335570630129327282939892143801285014991596369630299989093941749581880805823401675279111188792867692843264151991336242512246205168846382768579023912698332960180256715985568239767343917448927119340394384839888657767711907505356079643526385706595517609665753966100442769495646543418495811351090598389269286538959899750679138832269664037925541499602342007358172065276423693940882865425863572447823196427416517531835533607477485967957783634150036387588247303688928042233099121399087853307377366836760860709289842582571201906495508090073809126493267084483958385100904916106153018767925034819498564114930142531125624044175044081605853348971405919979639059175359503181309948196006084995176646792688853563282698930152905316309050071334564339161948617384768304297108776666331629466384521324531509577393247885143098807632354519959207135300582381211607030795373486013975615130789087373818915336026216510530638967736542491868619147864164939856772512822456065194364976266620080278715773141837520578453644694237837020503639501414165071701797319056296832468606013049709047840442768034710400743500919348269359200535714028331277447601308856685693779310345927567464388518209754412313834138952124852899188450279375407257325950824860526589366517258701012626595220593351771159607820277050669497766335523370937332341684262457138397258793037200393321439389232694432427754477261604362282292542297856430447294143332668159416579653499393069120659588373437530546073050817601755474611932651210289132100874587026080188493379374084580367673521003966877385682694883335126996417615988298975246477411702127242095933053767761664807945224267715239160308938131336423213319204263962842598853037147255938677992107253501162312911808962843716380893562888948161540635276885072043761343471341868340422773939178536151501311415502353819296016650588392108527117994287617177770106290619119220345898395927167350547987878487174945013637566594549663199609987488402881326971403659390089362835997476261564389479264020299545602686371737095635273017914782074262374357516770976814681090919775623639265649511164029202905915616592251025837082405219583798753922491978866111440913373400126937677100189962475774206701030699888379873485908264644134049684836132989616151847501032633049592847542812109984314491184744001218299675383776829540367308245607337738359028084848457310721263534189966796623149582643845486693528213280617318132115513189785906029122806369724985526999625955883314147359106442973103145340578320950344478088765352186620426634591159387897748537314220848406392791791584540362826425167360638313603438785502093654415812164408093392096840960749315056384629436512669652840073517700941682369132877978637299126914554881740345478477735302633386543719329868753145612406712204075877828698273343150230998374881947442297424446376551416580710623181853045496132550980681580567930030998596508930240481378276306788080633584803513027121310283693915377434891076931554410615202463863021281811124547981335886545884426819898124091341265716385693295400810611269334343749670862883189867441811484614525434676316349161594799078227152551718169237670017741820823209610865617220678709705085548251299336270547019499047362185078244461363486746142526593443482142949312512338484084129122977135862400797994688934109498171988643797370452084699931647498448862898985453484029418433868036511796209744632630410926083407897375467782295379508645198053707640492813392945301005863391673321011572432763171696064865799942488674518098157362700711888350271012826673094661740536421368907616126044370505407419701265510255886930644213678774043206224267730929043013982444691878605112367940006032543000991957143215083763375810735728267543870588568273893643876431970938464139623059552298230242318522294365220830361451258690372299652049249931928470518919894459776868887599471183511326434376094331253047711842782139602253527942524919399817742574962662890581942430872632078021581000015447945279923002366101276827876984245428953335625885209876302685437189693935576086844923701495952444148996925374724214145669127190975507484892345338430068179908393394537717349226367025021460866426072101583507694613252499817575092390034110960271620964561986485702707204696058382879597925093938432575823711745834898461615744413213965048641956770956672063342677403382942769741890171406351268269741918761009758671662383150107156451162343161264003371446563912504934259424496749692561959720263808425248201669924762338158527441455614725157466486481462814203275237772288188558639539562955154516590984503432577841096973725263485141189649685350689712169466522571526815894889599132759217441100100897614592549769646621528786138274644463961318006830753563402952403018484515767898004008759451485876978110379057297575983688672268125561829072005466501253670895209925693381653688784428733451437164742375242519798517932682681411922247803497513469571263556747180004405559558624201943430060085201328511639615240902731589358426968058080340267497384072044632486864983408980311481884778408402199627281206832206487113858751979016448932158324615272609417970356133167207168248902990732328394595093595975806790310667015551204582135768825981839722517130462272074022727968646880682037760488804113893681890296753060498042860142758361921734685150189775475590740638604262749579787578332020610251409951793856766217287247628485542540116620637862989304921743793553044382062106512543983604600570470989364660818373171729226935399910313694767343122768438705654116870731679679134826410711010496940664159832931103008071551706460837507679178312251364730778306094097781808108916398586507288939024149685165803777766433600582624627090658423297363397056649088100455551658367992474949001616595229879620622295692367321599192947834737231771400607156316030631993675080000110284480841188721685421572124900304326148597274841179863936342445378429815535089410748634937854925792869698755484050444737803745676558082241131015906338311440689665870032233666804827493958262032358709105176448098587203547321240005329232504525968739870172556294995808854896685923932305590032321814991088915625574993838761326370216495772507619585398721670630943124732818586125307067959785820869422345298518558332344251483915357844547501722840410006710381686960592507131351396712175421841498691129076649061558398315885882437868592502922999449136829192403127445297009534613882945255288492670703229413985831943301282581894186126598662898437347061375148844076664628405660815196910517681499715236515363921893417430934035117775912116322466771868327012843996984445198345596075651052215699395806624746704147064259810669421919922670975708867732234327512986132973730970040751116657123911253101437727879710723013321928601785104518317720519151195727904118679983695864951182214711516977972631613603177590576073861007691700154728346461378906967596005200691582352440245958410081966299076598499638436465042052054658485918794334521911947000494287819975156030196119991183940462796663883543400019685452252824047504145153399157434026560309520326334465698639234571361281384350641767872830524116149145790736163248330950986205517215578703121352189391713704952775949952257943944130869303357209257571319399161971491433101433145382764073335261146707849543133408604450519320535085313042637431411797394494938041589563255233310444947626523313265121819815195247924513500813745938239025688066566376914217492859306371787982447833747980316806777027745812315998120597209761143996554970291349458090662828077931158594677238389808570509951251796355128690304711498497870958850344127179770432621933409624894594992492600226965044622578745203606272736046724899312082417810344818280425612362462254683971160509271942618622003920806867039386375141263465200975474313142176581059329915077465060598373342861498216449496244053859263316046283330477339588508965994757433275174818324356339215882394652662253878088539960254545510307677542164154051707528525582613148880546343334348779805266261490532984732417858210057993400554570851384619824784673472084287644972681195297229355013523441865668621872575706771593526784232699490246664131827883376777900993014148949978718615625748669295059275821160168475557221295883503540386172004022757866364738765830312192569271701926911145131327792791227742630930067836574193165606901985279273500380905016414600689862881835349489604978880880692564578422993686694779512590127387491601481460890008498441305813727254023612009784115118187140900663077127056299291258069314810278273140461211864097598726248061108743124979568157730518667983544962899049782932529696140888201739516714531720081594520963983024575305898401055304329484109559618774016156398311322992105493332010153316336476336757965878750844905118677731576573053514828037466810361192704857406249904715688933953131817218087878146641931916889365035695642419995600607391622968715692625183357260166337934681181839038262880181758392521174054603818273617541345196064255521223346018705655972809129618577842218171688767704502567293690331706541716829521494694900026117901687622996430575165430565742157810646530530023561988857203762504064002757428374716516127016663481386186293338854645612525052865265670416518111218608949048804641381442447115467911125084183853648281036454067005503924591051632664057546432178959160419546275667207654874304861053632737979565664362660407949376592844202391106412478307292714027345024586224387962864324782331536961424221534863678438076609515997467758484903597634274559084498386451646987281152783389329491492785695579193923520377263156518277736578454271655758203062100297768555322227891468354065298677752201765386637740770194856726156496726342132259217816132591728173274763484693087688957759418697431609140751908938501475947953281899365720349250483076185059758218995924872794445495409737255395679997205875021970598569850694588014193466540849941759235069937779100849269690996313983609280892572699027381705481169653754915104180272047255702385172934955454920007669046036147790027380636281811486702175677296676508057711279317009769011250258827901906459320445725177563936680502539774205420548635570383371868625558699447701051889150149057707150598025846593833925767063934226938489502160264389292573680052685750048245409493668361978810977976763503628667352154851650007973088888241413796528476407570225194246065524106764824338923714339523260878485024308163051356613924247294916601833103414953812404122501575420229989097912795920658021238307816469150629253902389624095026081214906279816984521922798765198229880015819528964729074380808344989851503600159900962674284430860796735561893321652338174248393918526388993718649412364224387745610657496087438926326775800446521608138196337929698868196193669379660227247511176625870308542217101539550832754299036727147409649000669347870886872888307813648191926880434017149913599433069355872755409852597871064753414993863787783756065622997686933579092691807812448710337787055350452502499471298088448833851779109703016574538523970723088150101950222648656743955603620877838291871688139642931886474801507035412206617886839395393400496220982999630095294488915724132760921597492017534510807710658845505281239886481549087780272393703782808721475766011634926421343067869066667714417952327063014536046370164782184854527086647671138400727793004916691600469975042140465494181437240727038272352218395248476472177574005360138952216046547713506751895666937085206658330187385136608521971838233073024598027718023000445419166284471589287970514492581160480842126270933300536551284577509103108323272804725092308290385597737502846259686652355531113514012393275900154876618981070224341927173100898037305195200717179504426690117899156470715405779054969284578280906127852664332273853043738372817835731462375243283837883477719756257380529880696364097229550808236303650651012099789553956272877633955836816496957814747560147549190647463647893945813096737218856412484305233583080413161951477289380415168845931693853704243985066637493383952729401564788184626547087139786332310940454673868340855199793758956881289235119357361118786236831971799654374817144176677584149154788282135241747396666081981657432245186485706053359454989629434359745874661380895415627594848329546292631150492652238309634729174396771399735101047980187511306539162832767289557124369169593087934189949579971906878699226324242845997469915540222336417195777192691674678434666142729033098036579292954038056057153991494754853048430957258513979722535327818230910172218208006525795628045988610648777291825693295801195052153418415010699443307349369888414731003034420886795970231636400322744291841545374101033010330398191890819298679758323835969352782224990153726867204635136315968372966666172019032431159646416920732007321412762292327230169324575718008479799167206473770756322039070712628073527721122701535965007414635810530446811771893253523978367137937934052881868547580134395356085552203244846260293327564022874514685477661104149227677014344387269445111289874455888663982449991960091059804004370066322824576682406067067495143312757263895373975198181482401617325681719277601375666778502596301389500981778562952723037690290129035415882786375942654254096261301014452257371517918024445612320443375213509988300635312616122934446384251053820122075725854279881271109109268563131793229313913300683404149834565825720053956410566601762841113223405730814981279961671542752068916906226307703226492899813034600194995657066015139611555812888051361486657972243435972706376847353266246462047935552031073266493580119509561023549931589509511800299243880395018720343204036044899382300366418471334542269897698081247710296705187586971570577337624408706013693136433525955936242420474138440115539617865716679848556324215647419451644527671720086246151561993959095518113156665051541736398564927069309556960211723411348401118317786712270894968562487884483628575551103495063553798499671668625869791096728849714215796812705081491385980114014140973635223824476106360277698864777444710430517294262819122497937264277673848017204282862912443381203540616233262382953356325950523630703399083574030369840133583553051081344201383733329574878084098869263613533816400970168124201840991244680759816468892932006536761654116267581700746380421268842413036267510895311209123850448516896230146590817049542115613652948448477361117664925299394724050224126577200739804782794199546778038634810821611796637619500309618844682628869311512890498622119214333736416053870820474911099748948471106539295772900019737604204212036379484444795859950992902293001599937838807705461014755026098340027890803905213495691401658157407570991243701747566454637309021993680176137003178776491436011437580010632665519846478824640045908972337111488325353766409085518415389803904269767424831393666312755701234828494728479846088272669627654772367020195979083138007867630597209211999541619966672186078024754195388003515559014725171765922751947443263999375884131978401227020051292586139517849383188600517676084709598457499777495699261509657955493675317549003031453341893320187693969178764545103147029202529394736769372366986229537728171490392908056813169034841941820407824306330834284410622065050534023235103104486906311354396543668084326481048919295708719214558880611107972663700382038363059073827390813924762060300860260262595951131411157907659071161344690676953408087764930345555636548770797134004412374389760222641642896154524225531916672612203405440729978144806544204965759475470251685524382695047333595417328431986769808004261867658456931321999690439645017450795886358448365220868562575009442240556188671431491759682936093066467457003740520689367530770024613460375536448352834615220893547907725510195330386898128218512598654164692718412404943595024760657738679591800507367084687680017438019372310800120814071836611730889490769473286486437263136681506169574310864268002997609303654730819593228264791782740697624192993877515284517914679445229622337782127658912498072541144267898053475971868007171358084957909356951573859655358756959164304150642901812127942017944658571289726001157926837904191860393806240972754646701004622103876778638699261967594130662953380745989201244069845197309625292965996246361179052802141895460801680504893413201970402215570743180516385258631966445094589449814742128849561639552218031660358078973290535175244724131416754007455142732746543292384025147002846582539148058046860153334347938594206450978503696225777254150121612282307350155726796583799551651451229850697895742816259707036952597114508480407523334111963381838983787860167915393959628104460219018306171060138685316819537405342085029109441118263645984114941628849717064014736338260529830922181230890135736967211676284599849675734208494845233464104887715011317653112369568164224944226663601691401554818359557695751971360910036826742460325633137046167689901500106042907676119241650209717023481814946349174370687525325665960802287628029120293646251042168503780876925860699438417766936937597065433901580225507853505058469300483326680035103349624266652900167547621366131120765059219893669175327333697956689631605854134922187818103788193873768341016442733827150869523987439395484062541687692472837279050023025059661106128738099786437362760014021597610087469283636950386751278784864331392465777201401939357755339647630241345325263281201397213974399944885359057891811721358772240197716074676484260449377525365115644626487239779066151951501478800935762913629362770567925547667922910484417923685841489912531690623571814606147410600890366692409810199008509005748190038048470809709294534827307210899934958335644961232332185956190089544643170281046773803959734831455026287101842890144274030503025912656726475812848896739793745356131782660690889834611797658868696956736991199852561282917899156956764244307799834205777473389769880661195395731508693695506764057546089447765212671890491618288394827794592339255129401853487788629859977084420159390007227086917978232924952455225292411502259567049643535230265893038374564831457896090297386613010325210765379036278501996738821871485333749448511869115365131884859961776855002478135303183607964140776066817295413483094918580992357023794928393467747050507234031845721940904467198395207410058516997487860687609084357630031838178069455115296470888776577934136957498692058533090853810427503846983665919749194631713130820885169656068981466137940165924580337722216172088207144195751672382248651003612294508414115467464032048495765946015443660308652527630385318416246557635652191455814641044672213764772708196636253132025596665358114509782061081503752284960333582947935608627568304919614418450237483804124170235346132119706203278765953194393040190826561947856154562125804939323993008235703978385400408970190634118698415566108800071355913225118250807154382114275346616268390223932217681662709924780746924377959036122710498432772767143869159757190978185258190530201483273187758665743764885344722607762155280857517829490136400951608344237535864025263284487460515175229963327452143921680180075900007060603584195518683883346353408652802414167303309496486157058769785692194334614683094070540253826558130771479819060959351779704775784780443223159887273815970810436811990299591157830345866048312659617088242691813720071722291121747876366730957971283233546895779388400680964173766151993208391420468294385930248898369724521859208548128082071484889597565021311655788242700126691734761184449122730272075236656211107479745282024761206005322545390166401979743150145658438578832599310918162756271733473208878590637264960548277524760550347029540576907166941895769008305571632877250460247466577447945362015608001101336689397331483433348481202035242860176896689058456746903744356232482103564092690094381221646886036500095087478197398433621767485060565781976854323611780785787562278964972868572965648953730675347155409278270422982576222617276009891098497591162585832110247793801280272354590569600355485983507064295675089095393888526297945273074099979346936459206012204413226733700926137624268319375902145665454828696331385576061473698633377569477642670388835009381971067483344128015562411237515643352526391825469670416622837017495490329166967111795444649184536491437960811333373949706934231881560639378033167779845708694098495577803122558281268609520964130740678180805858896581397181637728422282201970106835390993864220974184996507393507583089018940136784800744532353046936772232076203015741720932816633646096306874943346467494221577505938636289704126058267894352454814814299158892177157585244487040893258409317400835166057029812708647707349981848264054866145663751288210273498352042391732964652237201604218264578266128965106303174236397272747995900804762946213823543569116476112905140230652153504704784580100249363252522540194150513498558643812335152565665270387076723528569109269038022794042103902885235131329262179885959197383959583809417350438341672081630769078679061319828713647135929119486141111668776964287567923757867342737364866391889343617060282446304608146380468748870756186388475820793422525962882542690681107817955811861534413778552374149425464801785662943399139440993118640902141910102512181430796148921675733990540994899156358689629598866030949601962762846112068364257507226210101850928782589742504123207193256056477010928027418531322532374534547689200547668783748730138605485690246518787771560219771189701382208307241505901327662506644554198306635681003613912161376231540221863327316654407148282732901144995088516983877423578365419798522196825659538058195301517512545808525418780932653207180285413279609106024910336090716184480250623925161770403492782581294600207063883398648769524036446790319744033134767162650086470286993172160449282939340754310754206954979187133441125885649025104754965010734756559472328179536817883427381668604669410282658924434150875978089417282354625311400092558492800022481498757613459231921288597882535389497808572600931086083447023651678565551478443443532128887082879595935769032549825699195573834379924197173306321413761128885882932844335382643212674820392050281439240695837018065911258735832139774399674815266869043003298552102862425983731295356777902132684297042484417545476312571195226227739221839256128557045069241119509736453633900013114878511126680527579409620396740453413862992307536769439674125629527910877064270198124056498908755545828308152256868906366309035081939892643303484659346322373017603163073545870305086550738476130680487634073733990850808143131033102336136758585964672296296481989022198416081127090056051832833114213548257920675275385264386340855861819870853439694405415123846308317467611540792104300300793248536105940205430543360638318673056404212274335681887493825435949262803149904651376611007156661882809402161696806634284174285545860128287757972745403283924383235800944491619718627826880874038576979680167947089748415810448114285760236993658100458852456477782733116693591148896931764267190295029402949954748758455795200708818289304717531267414586936253447826714257556292781038755384246508379941853153993557571509262959064567631600434879870366928358650985901418013343112213583431621485674163208889697136808189298124298875285448766722875093858205413998519362192242849873018702199425795772965653208503392193138722601964083143152272807017694401361926364493792929253111394449018543127964612829803380147620459927637127680550069074251578626694328825657881275230661101203848339322384298664493032815387783205493467248613877938301585974160304172394447191040551153183182553032685300915306045447372077414585663001413241297017353924000216095680468124565022798431877345219028128990529287665503937135199931327959169181611204310285837760937742964521504232363178591368333483141438775085130204027267983915941954372753532083761199699859412072356381709477618086540526113548384897362317839102610291850707242172099727790582844412495898823136801791621303580886420678152649917485796525065870835544540246262428142568585952337043662676966648068283758300738107541107994021630915305929134860713016284793254613799959386728174188184402272794945663871673118873965085043214829041986436762008546322429838403128587860830618417640558741442500741490849493583541681782326285438163668737735924714930039369820216698408327914851993649232516987455397334748504706281156355824123356081388308979850413672605874413228412281337873003186614995783313149760930982321832499058723173619632329678592807300872562768882498466204303335939941374036271306917126255679767368532980081981765722394700330629173090758774850668537186029927101476422067182561665796289324670170611493093030683595199711587632293674113775153600887506404733864466118180327641757987451871288171821780651605611653604976477273352409602564472548508085660389285666562397706910097660823018892063287152518189361270625436440230497191918232802425795907533844645053123166906735589022924711336815703837260872624439271862257423275222817322982196149153691693472086316990080077628106275524132855616725063050495212639918719899952533104328211900294757535854995261861957684511892850744302858636778177334900428659327634416279482259435652780419896049825554456790269365979514893817117932630865254353442140646522397332861731221974217464010691772923971291683774231883977796278739467321744224491845689963716706316515207431663773439398925558822259541370466735629420165230450242441550837204062835931330964526804469137006501174643604126124452817467302313174736431850131561939431198160450998515596422063137762169790725911735453091592027040641296814584633342707347603246305408332104244582015116792222156358254585969415003105997621253770486082572101429627548864919641269001328775133854450495647887263242246753328381819657079561678575317036476670187474249877340684846162128741756450273226787405092934176050454579455960703668276383234636660338175548176616684326213203334623244037567505038835636362828945029549825852951213195074208939967805721158106683324430592514147358040398150816004140585374196033071562360059918563266598591488825994896875655260907280984564007228291019463156646967519997938065216461882477707307471562599021095233252808214076983455697521059773183744716885269657465819201360107911137328628884136243135049163772530293880138397760742531268041732695231082837196632675234419684332127264628521393867784344367606948888184721358055233973692012573197495346552623515068752183457483862544960513632795074411056583796616075681807617547626756555630619035124082644101237649444076457254079373272936861006741875446688495839795717234437800680061811184797262657325758461132649015544992118268424539207168925807006838038503533005254723054995909979969891480447764666277808785173071268404002277955521346647540900043964347580748130852047002342740663343899349106539596783276693916105248666265953329651467386500712815036159085213470338620116744820922253258769150245175727666450786718899744617226280964713617596349312102133731257502627138450519331772285074260113262612870201525326874000129675657971406559565279937399138767773340580354397323943552129531679633251626341335644776460704851825660441425032851919835530415188503656248456737828328290322078272212754200739969554590489298728003604902310303933428354201971699272458711765549055422460709330939854715927728011085746873149717519761632756759542422247127256144110662426650498469981042748654116831709590896390311253257705587552963613022730632197105310618699082898498633785999738756301665113020711610493472881550655395298326135571569361512841728296742039760683568136599459555098429592615569780390099033878183436403132918906517052339341921376685290292635278213576329332193443159694938927938191992831160259521167972518420754826175683644453774644902694517458661592009799106948628680874284081976881245379255444479850832152678131071014759376758997028521180643811747797095261852722459826341034915167312357048448700413080999063232716736477606774695004222245804151679360818919065785406520393158817490826661963665171109957557892458039103385095241858871390642370874003702344961934099369999081962950530206484668423228934280989983495076456963408297263473956703562577843745933241909951199299379942553349109819442158997948566326419533419610620872631915530566970176379961112310572946080270705345756048301739670111955390013999745510534130547045210174569843544040503340595749646352154795917295031120731221542439547977016645878645648487873619980770583430179774082516552077784207166474916062725376469907348991207745731436137369871706199720761005511945761758236337862488970263074158246565390305469074606583836619591282382636478299339382614456664938420773262168532737230351006936074945649555473417765167037005769928561662955844995502741178939002825083552553519816124020858984468325794855649485513561641466409483130527871518186489995294916025856307194644826940221820515279068730181392455943119178011155645952335086674109398813003581716431889179873499523027872979399863714500426965641610713067618748938813608207169814471011229004529186069980648842155241027250904606896854887874684608846132083138256802108255543607257161252246168583805009343456326637977161946168816105680791805638029689650646413763658795213516690855391945978548360051113387668415871756444686338224352666040956493017738385034915061345267177313406338703213996340055701036108511410197332558922413011870268015164935414291309084515426926143009747772976690236512361178857015223751805776630322819846529021942139957933175427927409639432872365332318894295072620187202118617453741722633671088264687784088042211147355612758531005542457065438894513822927995157490094403929993083796792449191854854494173663490071345221399210474174622092240839702912113319934132663822223617368980260496361870801348986035057310582286832873675064272354661632517932990598817133137579250981588350769200284576023422291722513964222764045294261817091122814953828997185172818834867610975637365093840578529384186045690679391839037765568477022955755455322762263611607275178883884669522558969381249818661867912550505884554829877748864386954657072058768795002699714605801784825266207582481279629419447049658710496113494284844087515767509781083627146684774354568271449798038075485915426281267996209890187470189576973710304908062856614378589341481180969546280275203924357532792310996842197523070341496669969839835729753888501987346718635923316369219012620327659364077491275245269492567517732826354539879918048622571692619107711869883969694839620910081218876289994422264674443218611360835753022231438896571814324110418960979829383602600774628517193364906587131470019580490603920563823014505005496308289297774785814170566084234797720761997773029113684726740321279703047608389447591004727980439079948546802701373085161485619376989815817487774767250731056349723102124458950532030325708038741551611349074410785664813370478611025014301700502523488472833749093806468338017525990595701793978732959508394589650559499274228044935999819588215031104799767354856113525975145938875454091284797615892026600515218287404114365427312481939912650391476902432958997248785860304893086543989788151350514391069840196295563930375696100990341900170218516696876453137462463780102581700626091094709410315818211901649836353203420160652697592379851251165753354523072309233954405160901490405273654121078153257628839167538805514328621485775075882733097284669691400950980710995246945307892305696790263011818952732359945297562256886431759920325582231742349023288848610220427935645536483436556518598708342155198287563327366121631137612155159176251111415007831205981316929867168262286256049872190978540469830420948143187305490216461338511760588476203532659827657161766714553897667011915654498639052911503090130161125067901251072639157550521306495117163484732969356375410034611272073028829612621168271140917189010241858664477121915509186184706080960237622123049260221342215347814832456989726807714846655534672800915380700228385369171631520801233443572323815882189812978326331499040518522367467512651524512990391793607390814671690271528176821132012331715606102662396750862638793077045855897859085330016010027526244764277010718949891362786198931313000327196982031088803611082042625120182369182797431247505407713135913993504688356816976517690289163442747702700715982036124461478769186513240038633164487388955211504543786141807477880209101385707202877329390164559110575991011057786869940268818357552209780345581571892252078959308534168451736111897878992680886469575522186541413497183228212825162633531324619234062856749280882594910530506409845891223062582514904737786116061337164482728608326002728283207052008298699004706846364242615958710696867138140694287585241639485285132104221195475646685134164325650034973461587018917863581535837400268539007714699066041007927617112271398956377140608092190476639510435472400697336412190328806203885182410885306125916253189984368198516480441515143526948264352344199776510223671719303785813813341686980012804137817129547107753723077187079906282187752397949211378294712280460119755787303549361877232368286011723685733814278713501607040429482716509032882196482799363743907313667385253642921351743742231476157337347124011066601645935826224211182249206922158424852890412343994622360584505462919943872224861474021970423611560765010187214438710347822245504503297834892519873109436397545039354685978090946479981253666018708842281431819177217191914688969339714994073211979139048316786699765632606454979232178586622929460785782550768295335799346922652211600083122860981045169927522054109190180634216993638471592135387103837226968031793270131830232815501731461440306606838631544236945838925767972513996450916283562033129491721195874852490074193419082112975074222097616053124093704823486756513547918052407245479259870523977491088454219378211598172256175686303659219450658062741190990890753620599027877799514836863145705625222495405218768868392120598278198982428749468951676517064392177266256904348428251461285301339118230709261793268071182305696184334823592787293072685746215390682752826063965717667188642236119768360411962881834993133015839058421920057108524920965134610791351220750571543558613705544794698490232808029268446916864559887011064863965247371620073617493099399727574967088119419970241741342415276267104605984912324763201227025003993284573604053870876158867395020883433506965441339419795673055805928881293554676443388491053587316298668629758555766387815636083823457206250716986421432452353507930936283582155582440549967291432579804227213995144912296483665125452211585384702236642759403010470819748396361618317496815545400622633439565828741615864035586759926890471179845153614801024760402598204698705068356478110501804344175596361503023272143570145883135792145022844476416826528830639147593788620621615365686012217593328104133707897548051922555311718350181363949755072002995649882557170409818252917224708389327218383931363951024388535297816754235130580449910873567181540715707295701397405593308390067642556051512257221193432807682982310594232106993312366845536365425340498445179270840839283119051445973212117685402419485596305391370117899380912242751752670219769952621812009152527345162392535470362114226093708101385619264990110178725995563902643000805899628959573233638664057436105470023568241952731725635837069883184647160698420015818305535008150244707186696094953721357296023088411021019535678924468277921496736896494580716270254145703594564076953909755070509802301787406483677717393418643798504713919556145717014467242163592737413492375442407632013826408617682740370286636133434086528051257857178074345211169015803063671098804315390312782100415464622359897027430587577774670993227079846596281825212476327782875577504587241333646843419830727008236771741566136720380778816887780862688648952635764355887120095616998488086468855528157235264877776335488612863400413825885611097596136617811698918943334355298709297582298692755969243028420390840417229321498384605487384173498195604850990644602770194946440963903580000759735546511522168801898280130659636798730899638329726830942772414984232291519459555244922974975964141750892542810311385956612580434013898564836580801974243289339038777537841417020909001914131391371223631187055121571394198068377036904793711288857268097854221450519702171647000651410031483214011264471527576472356419011248828929612765514460137289113764191802588299729216611908360655386067761240406457911234507271248284461496341327373271889807603382534555826524368451943539891815642993913698241077673312072813607205489232519316978703414568438385739482935231802545290253375968989282073183186775425411396630638475677099100140397928485863727699400106198759716951147168992560823880714697644325072834430942963119509515459885852998764795701977365873964861238417284511734823123337343149583507707562735065418442945782853133750668343579102194277196961934078593263127131075012445037775488061310354964176104844491806833256190912915895031747770271587373621125445925677737116525920607540532794168526101358224553635852285811539951467460538985974870745358075624501349593787049745962777101776537782058568528267921567611995196673119172193645703684552572368815524529326933041400847645369155225140677770168822099272190956903950237083972791285233075646228045102446101573797795700014851166346727628581379982965783017213051153478354611544013129967623331278293184741721629309073952611810015522955614761135250313526071178460565050954473674494180942819711518597142342170313756677422426717886475286308883104723167953253104936938122388554609546600902047227448618229506499410759640831013664146714184353815115608268689065636327277417114125099448444123625132908872689159111854119719639516897038844428640696544822277528365587512281717429666075859956153069867802655419541284815608888214998541000448740013019428161353129679776812860972728960881164024287869891425966862659059586774720103920639503950001147415840026586475401969280979154044022560904160018114949278228547805525355437585458041414517446229393123362303344344463739356301817098769358656687498731603063528876135409239619400157162116189656830799405157614743869797580006318629563227119122531786033416850060651744415792907815771405075508075365000416331954172078421010675094756380063740993314149829089078547999609824912347823110021227158187488049890455908956021726682288311468920563764554981690177168810747097540452129738267197879078354286420472957110120345037953852717354802674715834119592784961591143594626736669455504426442611370015165613416896407242633230819867980503924484920060180587418683621677670756463696635842947633198879137641079464838328869330670114092553130910140856542829679502546680039679343023623032461305040498917352863483451148824298661537887942751606871808929949547982744119480720611856441001939475089238756969292478496145902207543106716017791021655417408510346783746174369064688410313933963278895515872330275152385471219124857400651090387376024958896377905213628841528016615107955397199149075400160853037551872850642499701639924655086592249075598378570404728372205439588577360040440839447668873090016776091143511899927659615364357799852623256495848655883740676175143398598026079038928026677027021934537757262560346963204613670659570707838674630980582508906981353451807078350583357964819881183014932603557051903947448968357821128608237963944169645049773382711951186991302179226851944435379736912968490723623874063188678442035514175879800631205458139486007518331518130192452430363950168220152588671293943825667460275705314091396262104228976496900906793947254900670631825427541748439159038852139457243576875919799736269734580269575306196595437475012697069062011029345286219928474805213264457687212093620868008968491532014667199593029373151498000244425750306601478582204967668527443295851992591931282137596471915620007379176093015762926420182664759226576747449359621612972519780934918305425901050257202794151666302372847751925980719542128651268047835095192933634902392737476736810344351766555673203085598515333018788543118677861582965175145910904470646979788300969698741892698981408224221592430707505351390782176707281083817401532092871555479344895344525558302430969040625715684781819337526298094633122723163106864206609706043034019611593602837531178558794538149297376263282130081592944454385180933789620819397443765542286988117862130972041981953903877001556959382829265748882773282811844958571619539586389566902578275503253224525365523552603654816942882196201619769908948882968049307561439180197050309288829909259038792767912327411369277845699241189927760156389444378527200868242797534121985806138495942478510699871217677057153447322646368874290931050213510683027121713216315447788290438582171937801940378190659872823497732801091325707921147500416705762803443772432510549218811049369513914481764195866257700278672278192458382663681188004761356065447322888888068354022680525802377249063693142388551485955719497300137522606925125865223413795955921223546667174377516208269412168432162526844863127592391615232508407606482009591879347493863641804837104781864617505971172945299142726469393918474806083772356134064674848819525665007069596599657065997147714018214135174447765773304733389352646649343380292741353740315275294596000871533898340596922294234860496360765919086991250576634480209425963362740062505703144018986443638779060138994733089432324151905002783307634351583658376295179509070076602592730321025616831269681080984829303708614552884358643647475487612494327915235890545405132333257756540255516074206597236584967557898954936761104249098625247305525614344597598441190958928150048203126832336679712162751798066181201744770944384353545863672982642831050765677727168628319320330162620419218451749151215949029034510984539360928835819544830182653871068641289767121173138256727712385952631924089527011780151812532966256673309930065999195988181210484117494384581901805697878484410795452288871536023485338856916845236593166226719074081772617699032333121589298479537775260086806169407686503634210646697812678909509382808827462080038619776164424041520051366950684431280441375101605316203440892808392053857448778015860639416582074306487452343248039251735255594513171542513080947577014233013089073256768502238254684922301808254204083339847044659839887668609144130106940648462244465016626771321814242634216650266325361245367115080684862229171698689879106803724370416251982790206375700652582227605115459448881837731274356408068845890098944848377748663668428528829081299765890730915701322712760287906005323159858897001791970802188732352403492256752894124695594804623016590335160552099353008306984937860738962320318286222331886185340450696583348822464675952304757434562898981420709304726639231542192743790447929887261785518446643232069790844550155185062697818068136834369023334415656204401160200819007265787586749052232918078859640359356950928090597598003741188887639792408548857972327886046451773559697988061600282020442615426693276944129432127294280280141738349279448450591845539669919452429852163003236492907647678269081852783249833879448002809313559239300342504982077603011087198443108044488975174884588441637400653106870006348209456585029929862038483281371147712230478911544498324923655607322800754912873314090852476220078496889282046757702095503807105044440346483082481866409690849453574285796119971984790945220629889184461143899555228184717344185382023279130843696947187894182072758335696562306875903966938099116493718166874055927696846018391361504818717228067530351939847350141395748412209770995751204621918498307766138950217288438020951387151117542069930210784956707157049888167500033041461244832129642463722668655057721591079523692906074352401103624069893818461540316645629441476295237552538726651791402513973245257344257515326937637872971140861223424288088483206873224586418075389493331020164652289539982305499216965697790796043239582149157774410515420885203250414609660593786856875548619935839509649614685021167558290750390660651855201583957183578483292787899425494655697386487077015607877329044908429186148225086977810820271032739257865933607993582304020034046570318022215425041943361985994239230620789165606441089346518262347879730815563426073338723736632946979372484628545718074033322352151670452132923933737372102360563102726363404125268362247129640839258205700044257831686929433037821650111922581002956732350009090208837801799076591496005532889976775710255403672521036802184863845234056335013821537558335693935401341474833704188641281784076301062714767680704366079620718936743015294553513946454868807844050711289324705352722166836715525167771800665747133867396467067625369657656811597410678645070433007249254594033231757948322853719538348389630979944914316967920127795070600702427139701014392067554045113281017762475374117161948378655639965016314021616636956212980094477262197126742747510650992963643714971156025860692983969130632476681553482928988260450476925635572874327934357849244781943701804460823989183409873419173717484719519654976131935160380899178467711202043539058430462230905930441546776847903419487717812194829932551977083917924210028136349258228733404781042244891100280645844227431715755055639783397044090358116490544834002618099873181451096580726214185405077692539611599957470323777944253452793170728116412528605611310095292208308721241972113225729287565533965879828962491103799676319669362731256455018616257180372093076515886382004487754513455880774217974868232370508783152590409758579845654536879182662419684715501028851697070508099072907301173004130558607540945583722251843878967275194509056996396807535637945817818390438974729893190409453561977391529881306677834688385927140072274404178094804401133117982127186376397614708373989465012676236986292367374238822712384788576608202348078052172309406622207229021116243496135133686712431751833038905313476797096074757092158635025260270182467574844171919482545990774321778910471993004215728080009389583175327672639218971945317204899515150928180153629360074965910752210381678623888541542786995580951123053737557229125401620966554090580482507981123741707561558801508665433854302256905374957563082470374881314007347820863207445259617440522257496334020356276782785888436824646604059421672787920057194286488238792591902775392143790003886441703866906818744274316290336324262974357715868810829509473439734320594182251450585064005059159388983061569448886961736352858130265218110469981527161807677284328022427567862385939339786754144389644227778955291591441635192018149812056012693185446028564671311409157653115581169629380890221548639511355874557412255207974215002446460735375950062741757545662654577672799879677354905330830964148092781387783905064210328305061277984566674834701047549846212574102085530162729832003554499023315800417304002015758364012818957262625166464440704180872362881854553468600997833623270801049763751532488062453341125547898230764986519790814993308405810774362868593070375994226712250062396315166436106722142803009556299441868561907032230724581514236288094886984260603818343679781804749312460880116120770833008744202604636363418355552925806262789641884492633119350608378248028507884633521284399284059518653197714288392335327544108949204610121721927221176060130616563659695538829918417297328596005141163646315769120122473220128288318501912002682157551539351251934891557523484054796744578154474239569264529143322300164258405009677549230574061984102878697688395666441780645690818529589893614143728776595734943531421955269865536568680133815418875426647123760572654706131783929615136344078647749594722961655129212504194570081260388094306510718929646995008774883418324846875211112512324751256387172195871691054459264627741174340764353664769252097099632629018775326067780617494581925222314423002342844774992278479213364670548475759987589324029452887413143692802775135335885771331699257392308824806680438454664971070389383849334286412388159688336587324986711323515694713887805316300943096845600979861294730967679407976386937420702550478455232287324405045952387804318389239089073548848351469583713176157031527188983659527554108483973470138857346039486702989362841613356141428076130278360928256718366889379048635442245655469361719576861081419092663470467135095530682848099641877260854695023502785659443335241252192522671224856085329213096341727153024065478048051089767647067853287692831483750373455748308621761984983359095411589824915791170075810857166061322402310163487301639865475980899336485919043706283906728208207887504490067288497250455335030486615224415885332637288439750578222325873804730950275072603132618474675645659225565896538523473938801120370747280048969678873520387269956235841864513037472767739974513747876686620211334468084076573556241724806553583912179377474103689365069563126514769896124932692553458380622359333237164798136583378996554306201136782348308600507677943038218295197172422596732461807016999212006227438668566521586932342274570216087451254744705211123402447050245813881854413267110354069936142743979036107689593767312450589559621183173571602494133665956365361691201226338269297117518020678089597154852446196256033043307146874725755374501864905054795437780288477773963135768483628732348684403702836090549886006504917760219639161535309843998281021334363502428545935508662790305508910680209266925351346685563048254932644007561330871751675604748080725010634136135242761106385798531489895984555731500339059296688639884326861541866986838303414169106182328266691534460069153614258536500252944745671436504330665679915552004376839658298406304304725770753767609976390329495108924402256836243096457864774480225523870603993000500769883981889472740294145309218452296099994414798437859243262493991815454803713611830176110617127526052856816446491213723417112871449210696175413452666408832864312999123920898794037188457964198397233091327124966370724335971183641476843053488756708171722191608266110421117247362254560851651686766233502108518827242597118074679675734755050451314629879327788584081255010647097521459965402115990802437354181519652217666594407828235783271256124947966166229965416540517129677812418412860871154565220751980747335641850290684870479800118904303057432287798534858978954232960934287204703417239168208576038768292765327922379056741487503941617614241721834617945799729873978752992076391376256957505879854786566211857244584046487678696604602445716018345734663243867998659180778474477627395599783504376830734344292159336315869753652948351736057889455142291194491513221831850460966046122035850935195044649026038934765805709950410487856208667884707504053125252106271004034074365248315770886721194870912926259922017804875598290201608394908899988212117659134857362094794663799824948476141238178710820401349620403263996250586987306401610040714000968124520564286651212809133356220814050085379972095557028886094218872723875959103278502276792409115919371589638588470266875312265428295106168294141468416702049136289261101177174218310669854279137779395782383948712752775107610659460198287636969557714633909875192275206790164388150234345649897781182870228125814883443949175112676008184605777661977898102957572696898969032106269861465630635892109759880832925199626082206476726603197521302727575841582074389369202265917277697348934237707230261595739812204158272134851970869718208459409597620599513424127597431056760500423592643855828735651719531062153171861997681746473170960880274956133600911693210120944211252918652855763795202786311980291258002394220227329874749932657022198523782869419013619736900068614073351141002239776164937844216198657223011509596500086431302135897407625176031117968213773099404822973821050617484380799837833403884160773423218258740036719103321833913221721003107838171759660496573488802424541109394166515705164508474779408920466525782262980954567329010404373160827857749408286643210298102265687072323008885991387373264963986720812888820504073036589116350035022454470108365090042366458346817532245951788185728965428354184849664787581610236518784461074293369386253040219728531430844265806902062439882651431321917660694927502898713357896954701925761731354298303031620087339621849533768875507101529152557497661399287517549450037459355785706521778960019829925378682143554496147322158375954613181847006839647748438794209698177652690293187571358690917530666121546383644633223509093929296872189678709279857504280842467913011248960137701763839312163295818675207420937837209088036060795408983983435064445616853531466525412271286009324264635405138705618862181620080069769632591682098687954142189445345225643710961417699002485698715256607398773340227415239212860021813364490921318598345975247542046409506925982796878121552202952395975694868726163269165152955060743789390922438190837459323876845896531767108158980564657277250443632243298771298681951526628043098178347210810790813541914116615115234683201495089851443635711193339829295256984332456152617169465575553826552797199802531820683178634950492728247382806040746104998741864464525172331661318208215953083176680766500604656279745522539722876908431496116575171359214351806893455633684373987938679874531465923514251340656398749893022514375334383972461601047285649693548047888495787399426390698589901546641465549164467208658309091064139253411284878134071209020753665446883796616081167005631707826706312528514413543898112761984498697278487652837998836834767929930385540626505975167921737935194411927541128143723472176011825025626257398187440363220971822384974962430579102500505776464096830638061700048478961652436228609881343308064833893641518768635948868030347364073342442716596810566140899077467909304873552492132348644909812834668808097187305534659341872588063592779480870793249683292139916308266417929211502316464404328650220384968112180575432884614517933762143062407098136244548975145591985746018466108392248637929778363034435037624071794231750289146042779129008465762692472371198382541837172017462393973404431906994139104229532432833582750764550405328964891047007260643198367187598266576162372038249410469330054909821527420231210071074714275808511263868214090425747231405960222882808259162113993764889122816420871734658931756512018063556650271978735892256721325183709132937923376986904897085515547747177236313383758182456159363826660546599601624122696433450674117759662469910556974858972818439906745452514287426562724818973090380489452542487092981410799564100279375958904440114178964330877576737287305705731729018937942061320599205679310029375562875528419317017662362513386609244091206572283650039300263394002843500318679376309459349092655343711905407486390292928186723480971265791368944810928362273199248847251658380801872777187043055496530271492165119238233471560013033652411096472779226441429417191258548857117391071789015452009269019420891427220660404717167847242136389369152302538927949918979155401318711290642214213019197586946614534656529534077813799703331350950532758338004140991975182406348353362665632705386675711579979007567860402588793357320415363774517709890320473121681255267152858812620703165621668398492940711278665785629758767941953011588508243170986510608890377319035899883079077405385545333466714233846179683913744909946744341377541953181149032653907548339466043983874202224766171698446730693860452562113631386190857339148136985057706707085837751729417426590662024597877709786635397050483889002099899132323867045601454420545569856224770545606269683782111523389157903223653629089904804009206562375691083164054037451642076528344287777614899476758353373356391058619410870228502925649917330424990961873195620710859245903098103107936409212630713411180436961537427877635132359594313055727330931469881008600739178950896466047083385949549810823712148697253345247558058547368026920160794670786804287308255694083925530961331585090312190593282483005784473330398318374636757941406829440502939329210457271012417637078309798371863662411269805146892513791448422244700305072496836811449039137757196544893322293136449669195669245447288194549024719462208694917713133863866905263505686847223514063108979391548524701535187136191092539054513604859793465297830641658840905783306485669551907238582502674889080221129353265231692028705056553991942815346936202305063790463091194915943187478541552671115668880766967602872530738424746616596715981632863906146326256733436706904872248659703025447977007331851968055180114965019473527533839809804501640093416418375665771736400599844975055030065237705414725076471736487800334779721214525012463557132119085772795142692097447462493650032220519572036779798334598284507000414997445387380161183306800362220026285344796713396555708888100703547924187669888690220891126929930760113529357515439432962124678616405608171061148430346543515000984949246945488988787834068893049106007951853648496647592319608339149595531243625387870069746395456992346035312870844847334229775274002974995651480505877967107235202341354027923594102544941817231541299277269563208889751989181006859518035417272235147494221397833202909679410344983573348177888317993389589180505336528503136380218700758926506072110468057899374025542476016218657635541461477523307270827050428198886797483080273075136991120504607512988769421238005305714288006702515173506879854534032866134815348829535110583996677477155707420311482583003169760547951449578128351089009194450765973187634992246271018722719987130469653292772580660660714576228727795851516672196315997459169525875622291993208444548473545592794998739792992623327950406260134855327746001580717394065985983277252125072622547715906718225392479299249729502376799559881046280884133244535212171979022339226919742501551146224703048247699793138884543382061572126273761193693310709645711463037202971279103061539957844812910069798669740883779132227133830572928592755876641788568039170193419417396449092217996201420463286292283353049457113602821821904822203819454624892925338831575034373452808599981139179489805389321360800564640584899297477180746279851770773792328388756589988145727088239405504113571449338129088634522779080047321657176249541392211127925750462535852175701292201810623717076969501733466839200810130998607002533001660088184174503142925565588366894339838557675756968117571107940367527068620238050226044997499100546116741177225360117277522079757620334690763774035647755406910722171427206381813808629108383244140576125211891125256224568900608705205704546585679731776697676325089780537003178321025589937818170984613255968053458670852071356458787381234388924405452284718102301397321219605469371499225962706687626035955400459272753313420309735905918947230375446742387544638930456731502619984032484082486547627706040852993794931393873170075596353804205247054124217514566619557140332607410266857142076300096601726646364259967566006460626427139547408012261603844769671355100755563082656678563339912176340226765102603078120864222192028085320591000824548437413582388760450220614436569655374821109771771253718670095409992843408949832680743231486849595046031615205942204184921108953592660810509928975948624918317275917435813323635732178019629655996801103721768034080216315946107405703086760878996529158678081469992343555463373038402343827695131861451550774957668505446790241046377413408597099549382726643730892360575114279337852498355703469722531070765726313196991491079949113834006746339228282381950637172733536260460224988937472968870849829522870063646556481381267978789957538125278376593396349558246345354637414842826913599854926623881191174646441598022598158197381764629300912183195495340570941908532672434883863280037359747444763897217067696944403153589419216480239940299563200488967493563272768273392863929249891438551900705425233364679160915422309119432717202736166784032827227102012231650818359386020638928931203410161146247068415851239416609422628759107742153013301743685520461075670037169421575263786745554912952222434350159187783837738188398355745833897525449965873567680773515461889050792140851976268659329753910814486592480085799130682590240992429971862280410931395722731147262935794507168563898440270165972807334986075278234482217510925374261773087306072463753031953088048892795855355701664308997422437824701732759146806339339298189280441452073813525868528382066450357551471284413792549785364654879069656692375452419047445843296953466787511955541079623129159704108455126714028938092755515393040609807327597729291235182702640488845728514417120293909945707275192086586097570668868234051715183854419434048531827688175363646360309569215674155911908675247211335445817348716421838942037022466809084401379987245447667111546429483053783497768758092274570476437900492173886284885131934209505820661712909096103151591882250646247769003853739079307568460820548469325099094406835357858544271097579807630641375377038889158901529875903693851876095867755952900882227168953853909122054549403616406527062372277888966420135029803277898069756223083207735910223590006438659355729507479539307471426446228960938302766867441126893948662552670262478769015001912301465239778485950018694308456653509539100071027033528637938877856244567744806190282134259054207274434257978992829250240291304713479147998851677300871458102792148650271055580922769889661922165735663003376476794751895118812726773702169346592198500330387159155787104674901175431941214381903494997201514727783895136237700509408410899395902254047091590008535409021384564402006089745325649375311594854813031877963747873941697417018551113495301981002345420932174820791117136931684950921167937179009985378899176451680121893087253534152584188233758396205176181795358548499154665624786986750155614285891702433250445138437758428648595136324060194087974504931788830182556951289737307257484371645233875658269894978095631507822889007764348720135494507773168123824081458050585030778428948541025249744777998314789461498259447880761035424940484746704568316030590129598304143686012394776419478108858393498580447570297018811401052948130014508140043650015301180291560352611677895538012660193658077742809464953546950719621331520146938432445623781123917019132864386270629110132241279681596822941656096719286186745449860625344540971239452727418656622168859217031401161305763866675200969536209170244067799402041043186715818967202763455098007844349354963108464063309840906123477555245156273007338202679802812672680319985922540547327768123833912058443285759520584619168172592541339456646128823798279257606140548255610052345805116743877330921186611017810885992842269064583131608040995566451108773807829563945693812673890957843389773125415814519740914495247394078567783634950321855348226598186639475409058679714848316941427873984694216539184303015901259360032337881338791328235282076494761334585573458435640165816053049464052802858327424597252081203472460657453968263838171663224965638106531716435902288657808268107735017990149135856957419182992925580943522620397366403990073131481294037883471139202687299164281800735619834027296906471449156074858706162567381649410974499684900509641504260100935701421242803211673277257913326676835614722546112051639503105530272895886920105202232243618902246619233363136763019778550930421551503103025708111912354298453755617751342021666075518340193575590051422457381881622529915738052667648120510405219128862833600342235635280605034494038288225166057893451122162911110795224606056572809679764569071423100104903040425117538655961042264240585213620501777235171000096451989836766523572224412740447979433649431182456148326510143131123195422224750944999769126015131735021484461632835947390972471559032798745708224447954103278374990847300396688614454371077052781000185569289201310997776122284360608404408669211814581137649803485435197745488862862994740801705895345029174138304575373294995343214522904227532328742165006834504664359231209694813515118252668238744494215369207500737627560677843158123246543041753763217601062526680079391357134945849310376967062233952262145267542798230684530016003478304845603541075970035396516469343496594872878340297112788885133016179636393135003415293526257472950481570627109185958157673693476897574173287146874645517769365162710423925947586931411526139318291552138468033175377550067508560387533377168889614224949328126247817749700731290128699432862541290243775061263493197226973524755041908963973002982723867121365275383560922078339939349197743276317904631345037173523001042650678813626711207323864342253600785866547931999089667170207222437488320372640307455976015310677090922624746042988428577056789084147677611864528835080491813835362547982984737194270345039613757172537479508500648136964993945648209757413654615025131694645370750117998527001648470065844919268695631565000748212148361779510523343373412624866419221790496837379809158470440001346751508791951507359437509474199165552102754546505226090931262663174491871418955793009646349122908752830973731801989985310442523592247915791766182372751939874886144832364062376383579558016135301490739229570939559313948936313439070013129457895957196844686543740751480617979640183559786953082408694565672898136667393859249605225174875243938197437528613059791062252091984147002850841817873674874622676586973291303660534564926269856665030599130837504859902465386790270322130522931053440362488316305865438329646015389960375375372405486331454776635737535372312749674650040045938174662203886565543124100328903143380081927907793575978890504230453663448025878993866640851777699300586769896698360766966066279411792802685448423920970981903559986170009804685253546570111154676964277157506222110312593225843490908267241469678614417100216126927271643237221199465937652195065173460821543311456885207250589397807520934529118422311051642195928573186926669809803638047797864267330091262231311916670365985817604245403178609244499708773069509873031291243603059769234404174260466799962658061440955765244466747627223963950289808812866241700542680546807346640660782701553922075926789606831854120243739347577472076893248207329896481172520958608775659067137397937144128729809001901990348901410497599005489553230972215184088750498679318761502446340787229626482589726990506632599019083457891116397027129804607531823934550868478223893240538802535326196927016635297874690543315705210209680005928455917227922025064693696024552251649593409889430388901528621403383771880203233414347512846333947480459859704706114565857485366325580009020478483920712792492171007625906506739199472876440962798553627390467027163869016925877969677385742891412924127688138605793410736675953136248526727670153586058838513925174582889980397659289521915672025797534484205501239416235915350867056789107187259643898728806785626777787651438926584443970960080273455797172595041044505377856467718392766183446808346511064779266552562638611788333847817369190088822463051684081151377812970212711188520219267561756314085048565251863998386789364930173786969098414210147139997457762013861283908033447781368771343822002687209137396246121389701428034787896791543569739811442217402702410209570349530887728223010919138011808624722126088799341747501770778432432775569071519622756341538571189449354857364050396754234033622385908574258543459293268482476740917559525449421156753919082516934175702878849281330950024700479217455046367442525659994620811437923570178836509987460383508829429552112077894863674225012412664300207777158671257517722040047438270024531099919332698553057517734559613995130370876107040957785111790512485281593072199905404376976637242274253176557652576714629870740445093407480651977747762083012850949408474654715566564768606841057396024963645423961367441941614687807643995745012606255483982164029413263825079305140913245770534199920185806533808362145101234416127825157815930018330148216286694512441709913642708771583911001801959856538689731253614524814005558327480179806106727537677783259898906159609415277947688618766767181212235496042541854460604435504056983802346160132902231835161171897124966477127226853489414627066810500588242516112079423366530887004508888248252869185397742626167126181600463984033763486028491349552360974797544614550036659852449755850213679778447841049779826825493996926946896013540667074261564129245838286876130988520369402612624019433410034469104940868179631208611124904463330997438089384584457663715959267633735047266949365224619403262237378262903912219491906946487731614844753914432780867770950614729473232863023318131150713684965343800758538033719753134696987639935164333802500001297575829403249934939435462255788684151653587160398024377067834025101446416280908185397808454904389868066689092983369124019019955737904548186278350456408001867950822223517499975035268307644051207127280898365875855357417941515906905210140583565176126129610756047288146327353971109717238136486903891911517500491953031827905106158285744312139149318147983747379208300717759350665224610894988080697209080305405344340892829795489787543343893508537529377736475209876598314996342088717420463015564478841688067285287560706829805713445957266970572210785162764368702279819012787296356066397925934620150928343791704087403860830699243847421051886595838044221812774406442004557737034499750752255786121940727038769280715875199488527550313280766020364706824944668151838530805005304871096640896125744925768854719888051479023361184735439425260190872864609059173861968062790203087000253845179650182786339721076051504202038643700970448273949529063226988716966661140427169965537103481424769113135849073375895586549728626568693936732784404339035358095666943596574096875067390286535963893855946749572507615101889788091787346964869404891361454436111488837268411180960661154384554207202019619915063135876874774026743285560699900792661288411426698726176269966312277766880492020519517009917760343765775662792477880508115667774513926139328469268268978899532145753777349864469831596304314295228317002164646292525006199644818845169346804135067978997119265705874409272719871926772224864595437591713976633035466662486857044146791458526954431044838632841481333008439039053276115254448832002437051283845847674959402692418174610611042564192594282262990322454294342067808082828620575122729236425125843283733039257702278075296431639829774379302639209149662297208251775864863099836380305065758972273597198901189914465881247667771580361344015328165403673942120414846785057255478684755826741231772730081001078044936558692366623593262783118373748522899082158220233645158472643568845335868339272081615670380209174278261769620381172851680406737619669855673071782981360549099339827944425742573181960233807422728036581554619348792040728910702397859358043626026230881084851531912479460042776852452298385791800075199192848898136139977708635337769304610001363975636124284534506048575043425819191291514602360097923664234764573464244014430935706690861194408303010854466901910017662559213588171823351505215270448436551775129583844702362921102110273605439785506506728218992423110030669090835145400037445678056388632580040240718180865170482339711564352238718621168301322258612807974518018268755938036465830696530051879153039712259669293033829001935229051852706362686895208039446075303907460139090145459502943746453461110278605550824116243834438736674527012725465377191140345725166644429539731605085302461692356585174566734962856681249169510192496555800570414285213436815731577632435952472251650947180465696699604677732443889997931292083962112683933818187335229538443236672195482947171279287043426813101712696994933430952565618532614895179097885901471584685678477112226371027152942234191556416112593727780339340686865438779615060952114266375574027276492257851477276775224393707035925692731922774796533194812487203805994250417882422993864407017142043955935736944547020494511906303374082417783369376872968288478451076556370459094539981909832627227199836139355240615311163481304176376168383490724846089612625350553684491021667357455339385757970185624961617719857641851160241216096355246435281834762944554900772128910789046116517881706632430469023503077069666225083217309753706659858026347902770921140459133021951825677565122040354892168536924139953476523946015657686255412946563335402600253462662304667773669014197164668995803598182223995366859076524039287665521340953714025116718163809743492741786897116841558730240376293117093809280210404589728531706566602896629698044882340805090886883212852780100698133077165062058842668958336519502600757644274685472690539922021941934024295796366776170536822800203207111230248503102271773140434808512921334903208917522026027685297428984915574628844000422110527459428062248566851116872426578702090256140988832178264217804553194609292682870754156014358713077245900643761590826220650195652682489581167753118542901975990522314796856233534766835743863261657821918955205891223168419187742539888816077662147642292725110501918756635549462634767504872729287589536750459015775483038192648369852234249705489192961508148141168658761999190214180129439170899841357592573411595132727763938667824134959547750999984496156790285609851955516911834658495888639438744139150168546559914153592596253786900177675729639461413208767084811077396510808812647607476891775975529966279504651920075560227497672740603577046700948750133482954852598759367276257340564101370773115949632782906878789115761509566144781321612266902967755579662903563090476594723969148099353922577269515261561820668866200485923079421521427688433814047119901409380555410950163556584953067642252943268020142281201153613843166784548756704688948961203976445889275054596022699118692375786542403668717110446426616760889412956540694647230425435144146147323070649054136197891394265221563627376675589349186363124203704871214754675348295779089446509618242085771068350915670869767893151388680901677303248047472553867647779824210270744764728776331771453207013433175323470278357981171896428627388860989957678726978189446981306483295004401379867797975127148417275826680513105010722832197265152105634234982759843411440213507038807202607655529482561475367611963904121288059717462962185429459763649050325778069273584726306330262640821112199272704091054755147390173060376522192252748701069389617166476667348738725766214632908856810662008014098995667433817247452247563645473672386021324897851724316457363292088760297202243557450036640770338939079194429690980597559701399878622305999552862404253447549336192625480542116302609027465054730695831824777128586309743264524439252318122205529380052813044560312736145751436521911281420615554800318710335529811210419329119620693731881113354597272774570679529853285929254996902473440807022890778456875424341074443795067895825988073581175031569362340471375741725293256129729457075791112085401970543143675657565984855942090210830118903242232269937944750675526302902984382258966964742800957665853308835848665191566919297706674056182644424080274504850787083569769658766289761169922325667509218411021180460193912913525928012733453412957230790349435862673529572065982512593256306137974574091393406786600931612660736762989604594184080473647671625706240162198320958535852447257804374209819289572535848650177467766205538543333391430263914415157041467616054495996251157942905791546851526212870125858377246017696933243652016115781939171766120763998707535507240863640437821956697132918028368604610844142492406458389763570776387891597304171628371940764000322889169562577306363329944300114551378560064940173418059121403794112656833806562921037533013955289971473279967160924624692409697888505828112455179142880855131511828351105211268588816636246529076433848346002731086184861354499927079548816470629752124171975902315564948136249248326896600919632259348095903508216183311829170465207235290208086049633575174401495919292284522601785165077767776233726557892507405976364865807859891871086559178396930749853181583471702419862473951200463652110887467617075797626236423403730596860401861680134707417100896234116296603302589699823878523846779936838840651853014448023710438743430690056294500068749082522419574219358316821863581107748924396901950824942963956571816863147519572932799417059971245011951935305554555739979126716116034487679086931690644326815689982540411549684650713059684427186753079278148367113888467873199487380610784857635225065731918558430609813620271134033894437301365091959737238191468826720646978266462415539547928654192415440297771438611378854811114177968041554968114058098470242399684578429706848209750337505495690003645075158715969764818977500260122178345189176780853262055368990905536691922040136245803389780219954230873814722794019673560798407676376681291312842485888812133801986187554409663366119827393749666528553455907522009506381439505816290389024016362073207663492503805888398399551724552541740669154535326859260718044798864631258627810032283653163249764680731707360735337528399414943043813102979759331097927092164344032800844721596929292887275769744633003060623605631672350282583354655581607546486527723723774365131099632801869350689888944669912530161234073816845654375777739120543888799381304318521937431850597952811979785661502394102369504570338078560879489369608539227885802322173076149643204012886944681295523541570840336657332052618992749298444388936590803935253215302888002409371788944713389712797853201958563310107417233898821174003729469638552156990343901940115822218616834710189032495661685433043209674911587136419827886727014665704966399447322128507768605788595108178751885453594355525827718180855898556198759155346264775370923880142404079397529979351118039670927877012184077007694298217800918150646096512713670055193221475560613265043880415696546917564388882452415040053643238847498952566133161503628852299209207099905139921493859775998542587069852474305074024712554999168183509101939473437239033106499282825192952840883161976048166556263610042725730138923290247632058212735537307436981498160324667405236889486210614455430047200813964228752100756209266599575792639969345364880624818576770627624453894599084186825840405491240610864166020088208776357100608867868671249619424485378985788652296849572429675833821313238232576028904855735474374312279072402902573151823334152353768947276202477288274132387017656291109441326307157941988175746489529104996731558845617580538924943926181329853449477737839105589314709144038599665768458651045266285330101937116947268719471822443549980703686124131859061805286014268353704553153906430580727857709858369328969789784122665674176309338946368475505712708020873120623603984432499071875162615454353752275217341687323058874612168599942255357003711110175290376089332569942968543858630793717436736788393687688384927639279841942468035062672253032193251223084279055785163422774102774841724329333508879174225251991143823088674895167160076929344472072727252115145682964887632659551600011132608462823062667530407831258302309302284473165942204250791592605286435250414162446528790469330478392208293116656270883422694289408514724045785779864602091787187554301648848857767038352840526040795501729252882756464622141885517846990954898815828953968766075586143730287674884590593020992863306289052398939897325148683935174322424674691446634599526460375319105082252106101104714747584170485114773872179177411155110867882792903554858918018569466794452754274693898202949390684729625201214414510442182823664326396368013550924230261943899753935578795767077411072608804214657126932666824032117052615597746679244495945134113440287862218808968630484329854930222126895624041174832438117438340317078859663720096469810133046596590939020417626694163713667555215664097958483741451106139828033109663299138978533231920057222439907774495561715177689123234042276391126094559216242027278428223747775134891341530475280785909279178342064356337924596112849823281999812770099086439364543095073948153481428287028252502121732021353736062158323056359564489923591659574412928069103553153148693239225632841318105851902554107008994947352787494520199741237384754339838557774152219335194211828313034276594589362486497079565703961637010974780776765529170029685714879814596642366289967371841158310668749940730255097076111372259480638193873301806988780848213473708032650563116639408469449362241529523080418135582969855310767833254600609162394682526100836618302315829553568242024376286746253934502411747777772366789027033920310250507421927615119980606308289022248588882305538778272618756608556465898963189415324402303021690400963085289381967771671435953227768384390089405673718399971784754056691466017203030304718870336739885701188484079440685859331363266861720228803937463075276505942365723462556738774052598413785738445827441531776049970036898330225160273861830154523176675493273114093880547852741001242295216277494829384004057029124440665454685680055200232414387392807616692591165486335925412540590096523313566949238230059213367405434215646210703827121066827317684157938545580287504487678006837021153098991321541753355333528986349459462850643754513405301615053775495695374489106665609213512241922182217539759979475396334675651627591234692331804570733776528920835368689164233422257536929407840102658163938674885519997731493786745984039948847999046988554714372796563745006926458534531660815116733763700487458779859736117684748140163487173124019712169239708537335313111216358436733575281512077384040043592372105144149842655835464521606132358597353469183092914317025166389865838664954976846831506292799426120036429002580462797269559897640100223350518130852233467225673981431102065996072831328884725162315666940399510520735533781431571532396986815351210512265017674494308023682538154455075267941215073012227168445033235661222650695018668194267464090428108035825966634094500234228907744328514503090827446444313691866092884727922785998208136616655801892243385800783610155450621179378502548547628147330779914991440602840681466913261060742135166067890420841751040773422017481746641101745999394156317868049700802533674091326265658286627755089245419871062191647957738797272379293054938007710551932204066844608971553727954758605886388805395121460868480489874749390552285992094838940870678201043811584813488282798289544581479230288625536828648093644796046716704673251329999037072859820837229870694026752143339435624586048186470545668087430961785235066741249736046085348604511237844737466213048867047909133807749578508754932059670640552442597661163840126085796248273870434561597641194230143352624391142199425070048484343036782562859621864664705787382006087745932325397342533502410837899417020715686794711877571032231831447339356990913135955531093357540509313420771722664612023989424399332785456304601033766674942890323400264845977702165474752514743333780614821667985550715541916599895325143037386215703737170064967851948154074199916211317226409212211089198914216629495100025515290774098076618846748707263902391580699548306692676784454631419668167190335794675767459151108010030361192641649106705289704554079844712210474969406797391197531740614778563592070151157135518673885478340068125536698492861933304906265568642209779544304613009307406722432360103769861587754955591375052424718908981029084466310761851350942109167450019262705745778050684492138240336625980932212988701120807030146457317884747286583867384585974531991281429413354578070293201581878467107915449614213464527921785117251479746373613366890316556246602950427258757994086792025516739490831099689187702932443759633068583437211963931241707413337855249597190818654782989715668206970571189090364685543456424950867190857656186513601109159220495930500670804007764143253359091706346260610757335316184996999871785176189779622488120860987514283049503608022854571119694476766664297153537583329411950558175495741862926205058909802804716294080602644383177784415953459657661004442292144849956997659209134750557379701206380646646087102110144521855355445312527611132898772884462965349123939144760987743660585556967708611727874893996589973811762886600760547976046227572539623497951603070551344874679380029880125693243187348696828821339046150124425322669648640340462641434546060383332181090308629400998504113092248002457298332404585128103886778947011056509774147298202713840095506143286745402344239556283870989843418104578919816251648507403026447273565250443352907975541603328793156010295708454113978553346525507061970449000082107119893461045564106731454893850146293834678193468335750459464563019660439449748683279595754597208901269401749786067528924851823919326142136416832231143951611426235068054576521332798086071597821029151361515177067209835550625886238192388204026545274193088534698724712209925714023383620225277666406930594523089846379998434446308495619521334616622297586746893186466119626336698604883820350581962960866151219651428273974820622771370152514625909172552237413167366871691301843743884041960237799301848432594008669513120018850248149822997408372039745083468640928602937733101782122193486806313602100930494531199570644770114613251369372261154744427740050598923016203325055787832653428650425372819695100543093812431151341007399927825094238815624775477445935677478121210040936867673644288630482510778356093226693923754930221442345136911697695064130434741896981727463059289682452337429195966697312847914308042393045947990132850087151798706220744435637079762046323233454418219356847947654350491613576972394489086875248910733743063290601017741334131152592406933348115273731520151660748195719733103412102589630179800827071832313789669793527558485637529955787085522863880418952207627453604939415169390892150499080712541803734589019244733869476004220963470673012872644448241328395205599691330929693674685865152899576199628949526210520801336944321177236476172237614915056701627801927019509354732389418249296711933664129892559831483769664103591195389509792022470930184807101636909005473645017909011154175021561328022397469179836000206878061582283130093624322279122874954167004092953912971564622770690116148749869338247849538769829795884178504548732349534192019912355867308136353349977382295229741169327676542396370543839718269288515145668724634524206011461035280914296719253456021386833932629382274135175832473930530383330103970670863738725256520022729611243003747832891605625714143376048606225308527882160510575005829624176938520341322581221125977721664406250160050918188683561446906101393552508929281461796963258622729973552709507331730738117082196636932105853809877823206669222269363843811430923668535690653841098287418173647255538695726878207827791931872363847120567014974850902890099557638794541093093669568210460121302536108937357124720125920912386408270785452427902004349303574432666215496501258597351016256914931599565024961893599925061500614680943369039218688800975804682501705347122356295842734416526858077482165187880555821860716931910781100145424771249658871333402257094583859302262591537259876289198676914211622544430196420614545214363143459102670941074760771665128075273151870691359701853031336105309576981280325170861771943767627446894629370741372793034782131546480871849959098019708994287058333410958202916349099606513924004936440989420926521249295562074763892642942829364501659051936160389489845814954515769449723280094171825496547620755628966886893380947492235313547237500449519702971642854795228903858196056710978423508964647766441406850313692816938957795689292821112124066996453287117476782900262583214602364685697291944842370518530994226919007274591142363642878601017279471560099703001867127421768222222363067840939233317935626113521877649601549683835994068882843351958954855383738426177722358273575101480239475031190519344237162992714037715457951483887398444293520169822571864958216017428512040069732789444362226713717298571591137723769023882523481692324964148546189874406794330085324422971832499976090709941757774727263621889129598896672792880797989979321870596197319504389518993065442264264138013519475768792976957341430847783205062580276528818642231613565485268161909889715053249646901031459845915533287393724792312751710377655837269012709806879870345353979129358086276505162592204894835314910421891518837487865398797928621911776818136496835094443474352715201875360313242486735823903158218206937768906258712586644537805675783021591497856837209786603427061071173055306592141480877676769522441192709472152060681837492808651331457414167160829325965257045659459491562601980349947944156989897128320173120452601211097499505823173483752079651518736643627302231906214628309698872675976898618089836285296604394247826874791773311298930668185251213495670575764178983560407435474105880553382953344569532684791497259113621409419105959167014441264756171443491290827106850800388613370966023206158865328225946745388354885349678592846326223845273549151256901636662237321081748624718874023721479444243151696872447296369676665626483929830832128126564225196386261194020217915344666650435839346090953392075825078686240429899057966446849706613919865834691485852521426107547963512524752540921132470643952432952406345986774694593489314661279556739152060579561398984798848473624474153053785934484415614496913051333374184509407870006162736079853830242339221933190598163165150118928009636905094169307730902063813675258579508907181258578807062177480188278400785097098283511108563159299481369692381735819715973659586348894461802296744778603552786123477997444058442103876145056107939485352567982843872848248361060352781309691441096578840288532739058697400394202047918026051050876128831750382982892043031457857599201949390013146562316368704731692169765481315370444915715410234658954030615896968402191729364713665906705409958425324003456862853779371289173407518865234475605376854632055911164254421516108403771839231610113066336044060192913236439438677640685494762936852812732815210792185297073294162954916382984736559342518080270755079795482945608311306035985429287167875739122690021230775878482872528505243063272070726391574334947807545827241902593001944128519110818095613446638970473536616808617231644777649807957331946750013642823877363448847888031975012464557218113084245964998264018309259064981803981947364823443290658616316782172632794772043309098658244412808030703983825554228183615653936050699171149355948853484927267093001662373337270076401499015188812068369546142519716600866258772401203717647375651743043430955303413264071383589252561645767976359903299852871311055394210763176194979739222544992159994641283156906499804551360391175793364870285174202379129313502889327020775057126622448924678474420658889188621946334291873099624622785858519725680951434271364528131340879281090481209902606694021662928978401709488044550364669858645208186126661266907450792458665330484132178302381375743774437674311542802013577198147559658484560176104533091406100181329081210167832883448884012958845413188844504764458987179228945921359378957966192853036190901297903813938528068193799737069394159319954807326771373755208517912695264800316580209033931774952081843374780174652267557101292776153096315038507490230221831561295219799222995220965178026022403590993800460969452121060213207431736942503188712172306069334905729919004688642132525511163374157738789707651060121727732917369070555786721425315708751798787370531160895810337822059059204358748209915219936132723948195101418557830802636675757179926361899128697031607685787986636519782297607389592150553747046532561546009432390701530605666024606373692724583325468373578107135383443061829315458306858910753466927577350027152730178269690715427361283372724919903157842214512064083732890341022705399659883565152133608067267778003217131803504049695902293251635955363751810174642432610320540099132700372976359346834906273152088235787692489609832095830859193839407255440662016957472742142431639606222670901068852063487242426393275440441349060994588195349099493058837412216391472328924684203588457650609471099857723110152831507938786914325239481451951388612210766076961111307591130496801287861737831107306069672742495350507912863772701843982202087701322116443037349526869640617538080206133934388923602298547584837692145019768403349397503836335713750603158100213261188124314656253190440425665446407570301573071727391530110305367652281214706267492440806840445353835974148623482219096118035955150506074200240770461617995769376137288715453080753470452455010948975864773546657598106572554457961765707409406104905290949044753672375990790149276085301197803433677569087697639398974188660820086457377237998139316922494232871315495839992805295936784996588177119795962649258296434816450425969361284527032086871465879928444986869217539811080751730891683012961100962520420595856393542789329784287442374920726153253416616317116245043981134358775655671405677113259622885791018786255365220762680825149239489122592400134133380253575216975714447024284348289989216625242501656647478055510747321674865972287755264672922450237142384275578664203395552330613048889654683659879519776881954326021241411422813948263160914167559832754257635443794261190926229275912274276754560003893774175852172904962303294937257429157821585470063692767206180478866866030382579732954484658076814023207479280481339854121371237549864976014024446134927702463525859641655711166784839493006568884925208474120542413411095969390562031365546709059596311003487359036998238918848594666205833963202879285559479487365189004241374865794901910703697155606361229759263384656898639472884778074831420480140118982477065351073787473059357413980887423339623919214320947087076756088793464031353800324500152392394928612414512521805281829076895237152961455180196521335599893257525526750601924996399153059699816104975679093369006587635366723591411216014300776943310801007287114442552579964128615605754485026064837276280342986668577607597482843524485510857914343374391860403340276127889912837750142649436466190845805694492267742110985900473276757623133920766479986046715483183537528298155672865201865159620795892062701279962006970264930317538763716030304860971315361419845380651776315321126404447306988369205029495686226438644676469916808394485229373967461983917127581490794776859177264007156377264881956371199215648891646332601756244080364985856029247194667744808972411933431446745527779592130058495313303055162507617538160208075508746577262058691245316930063546818835905932842756133904575785947701782223380491264818546444467335796748164541221500763197926066827783757496944752659371273773450216191535687850489442543900981609878188298227768849149891555083980691444708261107973474425937885769917135886342328287558447305255192134572340073291314502164291657582618410903511781718506022513269722255117889131782695623322369692149744271130224677629555001143164221029218630902452527779243077054095670882528141362814326376000735866982185680001312491593314884055555909612944882233214419572270038162701202797430217449021153211470307436680260359665457901430013710676409021195368298091558357542130687519357620356177931038043394325345746000492416205397907775431692856997826029194863665528905330836029351706104723369614685320508862577694312575687291515412219762765861952629192021631960988884525934341036221670400498828229917433547786814651394174925841282929323914682784902748617496034067027199204972410635749009802028717144723690428025584785584836888113485404235833985282919997495919945336015900567966319101409156297508259896030566271622895141557335631748544514727979125193097710572529859869463101941684959904226389292143412540694861290141330626064802471643006080389631957852962636489535603388318711693180881896314175045173538286916631539059529671607929223179629279544739933118380588641510422178750332146827804330656958008373750437911569088098965465164106231048221541678405106399817644749416877179625898458256109068507623886750892792557322330380958818417769637511546161443149715830444453214638125198070836540620597052732988139965116890276323716338827779804919949986338305808749153121677591005854472262492921794075766281093292002750955164773659855537840215313418005701784493293735748468309475863380452155743422579533047311887946178271825109926768274076561032910204191219004164488553426876480952469099532006541820462930062698323493627490221124521364527278674688234590774981883837418215548136364767825959726485635872169921239891331382049994957903074276787201930423448239271635540650388879372929530809604581310089565528755095582556847263915627688138645858683930014142257630585612289380003774026640494896742838679535002569546337834162838797703190591853145611106446364924285698885517898990398306631040755780336550313917998673767005571449972818822844413622926371153944344754461030661941051142362881195470949855815329492158428080433995453613145133801199692903017557418330341741833648387834729026655648067846417038891724918938409573719545545083892774621507544485720027214469790956702527619429949958113299355471410760557238270587124182771880161984521219790558433933742546247448878651974261668964962928170806972124534451788820661969968618651833739816590952465316557995891502178593922488114731888150036563463602502540474845276810238549249629863527704025371864849265005280335742780626129457721745731736280408225773748776076156658259328020635622793193244780883005306248856038286784925046690035656970422505576342913972860294745049236371224743155108505055919826164261302303757890678556535299698720513919663606705765091948361927592134511915530570478720245495601038780441769017190416449126270232533643306254417246535390230061916110636555999687840423489215776690967068803025412792358921167656784044342457171375154466752273580732210454536875200607540570345676043838394384972992078635905427272119832103716132302272537240418422642844265973254715558572875960030140543398599739282832415944469442335784361174230623865309347120769357361965069547421592331855737507526156727823142620878599180441591276982401137737594812121946791946040415586932837669773576148869464271575069582516560016745533728118248112567841548603210934327765668446077227795735293444034640899290770628606835212050924473486543810019288944720581300402169058197605461445865500166436769301624819299223328660482885326772459380029020926989990017012666562319418810672371826141115961526675202856169655934524506891132821126305722504114497415369307976103240952745702096520021972680591777439611295009972195925189263781887825317983513393579536988558112233021629149359084722036541708155631619174269293597123432157704596521640512617721534750883167088867345651643853639415234070784241065271421247282024628882934429522127876151125115947042082386250278078684922521836884388248142950893394077921321234808522166590690952413455589766933665638716776387756508221116202095933663725323959459443870326916637167699526513403037390036082153113182297180942746439041064061491012387117488328651042343130811002079860274491080067003418982590592106899247532785048993089715212590089398619787507768117736965718769604900815762329856045838168750351447918801853914630681731090095168118082210220074876254745160572042619876302270230595321733418538246813909312386759230251722266581257137230379938235575943358737666910574369278355188576290563166822148184528658534771473221937120360525854437357882410488892786989305683584381299574973829826768183165243117406762008022602590528764836380307776051752619260255733440808811419152406659359844378897526269066358282734135150290671672859485134354300595865112201314947266420780526511635022245663373911990172617269865565466645604823337188440477893798579844336443009807700368154094573688411553510964427807641555217386792417014302901866728286839583055713698905576981628256186927820609499627970849262715176419004216060412965890730354201109005602644088406541372432514018801125077108180507725764543820516716773853862223202360388170690808493274484025950093157649134891938391653066290433046211134720551928353106936286243097195897419439541437796182341449422745389266468273628611643711423606107723735945789182039383245232834956849469234046210354041894119876086329864854079602916771173819207180300984960326179902930011769162858586017354618824102654067743490978935940888853240161348613101227853639244133981891802741565013955221763009265793225570309750457817009416927286522526244597905207834304139339058394276221891048667119650936381428051191762231634496091698691632348128091878624496990487193704102755806304280695099163276837390382439658820477911515725969239356385023606046683730972741905853097999754004473896360268688380585855824705813861944141814465775531667223971931132520476449126464933950382081097548096157184360874764977197368410174411272062518032459911437302742627698225427542001933477837761446218723144248465389326326055755946274012823710989712494346910777935657394351712873588543751380571838893777243716266102528867079592104470900240280862750437886755231946862512415121050706545694177212271823608310153427224511002793728471530374566616679316930452798588115842972220118986838730894329881747808952151598365351061370891690168556060242205123091822726447625119743209676947028496681175966231797717805362666618229644088084014736254116797543116494016509178812016396636716191349656240361227781364628266572588267713360811866628502071530004038041021431336166889896519941481595893249467015395186818429676290343625734205423998524815872208622637462735837794775194478875077855777197547156532552228043902676648603436708538114612179530410525803894662985789178273363968400803518459922143949386301419235689453462830955789648800264781351170585756754472555842650852387959839359844370376304126290291695070287049561493206069858545667345200595638209322618553725096915448834839958417351043069039509924602188190907371594448588524907206640063184841173703940362123697747739546001941502597406223256810870692857655074420079615281499878296465539213021411455438106998124364666783616307532052360321230243769617343028340190413414763114903020780276925547945784566389979747692459319798983195911365658099084672999106955869218847100961020870607708762087763719978581919129805641229228244758005393440364235703564628747643976271129274690114941023436756302548318220306451633528215471596316112170996156668070397877630295161286886959919963486560703914842484441923044180991041784619278815900360692744834386202691915155953811841726085450951461801514010725452756896619577190961455737598863529185143478965638590704529881273733911996818875665886140176073231026537109634515293632681733782666284841255576956071159758228645038218019538153089714151789423375726312784557855757193096824373771036043179370167429205805507284830697877660744830273468996307806955537600986997797161379353437976670747906745650694307520781412813050127542256850234820770028244669812498469939072504848424145623085144561683913300870265465914417123514917704429388495933053321426242310264598531898278487748429221013555256311777232776575239776665059503410268570879912336986613808308659290241241253170035595384140272471570238976378834374816125523997257839200553303609108354991251185517503246590271567893965447364622438957918721351216024051702522448392303399907004214243625883548269514026948516483843766191150439137838663218579948792932512856379120391829811929898862132394648543121716424742692267568602024496217055681712445247884120308086994508037793903555778069059980003556267560210108672639037888765718876587532441092344073070686263620681970744568922503828809332839190196698653287283498475836630333189637856604616071788018490473405306837074163148520630486318625438532065526201080041172592844243236310508955287374316378537442483781815546569308267456066743620153210402783077208226923082906641486508581356852966304596719458563341254005222071531484258854082167552005061660614426571153139870670660916749701534227905843777588716854926448749631908841205209678863093350988096660772195513215509333936787813808027882228185668077520040836161101838298559636219809330747178592818608153171165017017882057130843825660859836810299636399910466650277013703635030011089823774119729095001103957358720020110765580335157688689916782387962983920194479197196920215487439815868916458880450539625894878884399314893325249135144405565763577537437924224422429545298370706487162789626919566818539347491421469481882455073272307468661844657393595439116408447546166014373870477621674841253567933968476890308166563997461550699015077481512621017468702968946586652449733715802733710923229409383159720597501919650870389031517331094958095575193693323191169466479255455501323851821996302082017581699457924942154430803550271194724499591540364803746366738229688156442097423093806589583400081308271838921808608705600153047377091200134048744639335063599411647829979414848187325438366298464880671529338991996205348078554774334222745521789580224809938253008111763618091660457462816994166951417538105336679403942493587266319974672680267438577702706399694566611079947155680628930891660147907477691679648995161132261263178096754837313239496647060184990220411856038581867118767614778947233504880841737643741252755022443249797329817259889567963382909497367579851837505839424504213366463544780186476383796771823139638634029489036736797713623053646725278978763938640015614099248613547967582187308370385078829718597319260157364162120988318064626329128576521665683971870412511627944603892816072518683309875331352815228321983092207581823999378594576902585281167979648632638596685486879404013598055210814935119240180411796860278703721955401653792723847879317607769700845673096811597687978503715204225579956854279089477868529707753571303562222076533126168363669078799198837751080535488287357162433645547135663447107763965770642516982799985806794912795419667538444939861867117625088238481744996805939601688273728125318510122748800287159795676583327919434199582535069702753047143226389731137667765280756684058123711311854118811901560719696591176079807943861564088912517220242299925881928263660477535013109672466147257014307052272073585075592096135011174581936705546982739553481052290217794188259276308675224293597661015036618982924412314416390020114072926968322756612707586988044883658525860628477986359994012541112962401796818508418455408808663013815080604070972213504956502749323719396124113044710771981904811888636572414204289236317695102868719534305802280759773523655445468057468627765575929651249645617239245707404837340511541458753772990633575196476469286659793757658406973348831359384070672099655993725817680283080584545788011368801454826790021774988025213135413269278812134313577416047336962935887893173739972310319147578850661893775355920515274682609648481233955256272139482902715772262260152451921078790373294825285659947701649513100421914389800483385173026270188875693624180321169722035095988187572663467162872245138471269420718249066626668940653202642937176645350970320683964252158171462485882980293238326249645991619868092426528421538260419409337553067407725760485467928404726096992131183695438644892564882812574134647959436525184811033987997775987955220952785681592507080159165306864018714180900775504327620667269630372395313100150856910393063784493985618842167327293342675649133733745703647270184033984958601420969436014418036075836486943726663066028231209355310988779951579238467520148054525613804235866658118409747816467273823010531745467807540632232918506760680420984866485129969197783143121457293695728544419597748040679598345202460335512712155763688695084343517749638926718900877082855317997996657571186017697257930165542683456341069730159941751068668874087686971103825644254183356340066711918997770598421849840323856349724449914178128589069112534053923249839793945365951371577479206833516788811985141666823505260947291427609798495551209232040585069389278184629931027663425490327641703960493559054538578142022038019627545615505843870982032948720036840618307232242271977631300581126676781607454372687706181303237272333315816476929109105317848563642990875724748401840977127947275415648534567605601881260316718866049788016996056709332670119086818914261699280500028014015483829664568573095972976221224127095387628404380309155411552507119432188980201557774536725677439187681766850426400192516363506323547907357614065290407541674318875414737973505558289256461075211853671130751347459836562807512514831176603317006538991891991442085539397472589947225553870620188161753056199868306039406792408406739676287791448423658765064781058731630934967906288970656476604526106539508954997092356169734925892946790933444457080074189762008240351966187083693224579602570497325002857022274003881389445700573614754287934149200336804884178605668060133551533631400994274408472018679666518961440370976806302620424893979776326152283853974475892118673755910298359660594152020548039402140122928451998327049408945279167907201533403743176988811550759358316246151066090677881843563012682505436265305767077871851725967929476858305259213758231233697342560596788097239668439383636850729877872048236265980920620408198033658309286557718178252450446601102496939536914071885926829819513516602805036599328025800994720635777456761025634718583595730201045390385517092710065627062205426202178442525656503062164948088453827138302355404547857838280751048503425446299781492644972635476886673238090121263038101509924908268894486502883737712398992603261734432267381260657876440070809370002934588953815197884995529393664921287048113267002820657942971072387398626497267348933335191658875443513003369229426226683144248742350202560626097462034649923358486954570768765850642281682962036485416272379497298980126537886086818624491504840441359550952822074228595557760804829169152483858883269312041533499715911400131492450060500771230334186750891003315566879752803511665201058434646549300420597826368303832633486920321948771700657390343348073439396671304675805945505877231806342953896580405486109835577880620734715585365204479539385544985039652537079658914899303667606176034058982647252718396513126694862532230933415807199838966089510012370163833691156121221722170164706505540249642538673314496688685181669715493813378369457802428328770533582446938995100976709978325118642119645527424586228247075292463427354605709955809327037013831125908937739353644401767221355075433796509898009916791763200553483319856899154743998937201158389334733265835009466632720524407721294224549268795917385116754570139651269306695089178256174111664715757467833388411039864448737435426957605323372224127139924117292117099837140984220331590823614644633805850609641237948297159159506885451045487937408270695866700910692394438369886428728170244009626593619757740480566063494982379377565099648705103460400847783907466756030459935739691981270165147782704826256480695606164280795509935643666571666369677155496184706196648012852155470439238057087251931834668135539467050621565902678411910695122536651035992251981200741006045225828442621312159128803062968427992717075723371222348199927160588399943079031235644986129089565985050956255317898969004354204144587328670810386347522980789893282789469867947834370746068418419304351796337273646319450639406216116459886843795586349596595555023025142308955414567558763042463365789566387935303984391815452617793862630185255665967080999896966731711760336388507882454204036403596157077317687378950410852613059849771113295857826681665022254478854625779847100170768194126527962232233979048032467665179314625002533682822030735862927332206193979036724382590783938799573370126693112027948510503485749742226082603152183964782280171339439495522875495154732349941874410475131071604368188046839074929727757688069116472543517727437400434510202043427782626631442325523566745121776995934651253834224510205149422677012748459054664881688300367321205428154151833562314538598622061176448895921438316116721283035981097342603062623174797229150456764490161895314618724649150619567221518837150741083233990711006806750323322079265298072070326722863244814730268006850019345352639066421442895192369770337596463896253981512138063621507549124267790584285963876008441602349103786524143671921839727604073827681394361971678875855078973388997449206187825381497721986388235374239000710932363353049029151009481475712960992139044137319210676800733309895312343530834712974399207953692095974370079580465655870491681591329818350348733942062592264173477295242597169117743207114752384847791187973716103509484687767530927588122287780777075234392408301002695004630174060191423044942127852616350955449403699334910680448843347660753978699786232962704009515496431700258046928918715681970488613451912135277169434718678450945659837779115123331501644833437918813751384584724434177968456784560718420831633649160541662324572963784539180867414974390077419128136219037374980421823683846542210704515141791132941945859752179265161140971241316597828437480649374655149589371277201380930335538163278977701023268600887883244555558588637727975678525595432529006669986352458100004570432099454233888874731831904346424671097532272371365989007291980324727641086465162713635664589207850354974887213133926031182254448573400577631328447949563410487788211169943623170426587753104464822754099147613197960205266920252625526876679331089142290254014875906611357350479690350462368066579799739014068817108511764117305031247153942640728704413699729291056313208499531367086281171403476129109222987791358589666393879871843122991338425918578041667252678201153547591751127918462739940831411266089321962550316551349875806010777450311700250435585452002518508931244067722527490469589667945102517104863960703266305062459790427779921686278178347139250932522280756054076234017045810764653836702427340741407405302148983145562130588523437181735020802080276006746989987807828230333167956666196344034545452170679023512192808463544532642940408572685659710356015493578158313734426336804276425816336776942379463808774789514237786321543582134737339683079050741509855891183557915595990542672471339160531681186972777445553403292249297553621683476099964635448070098046664009728415379295473548691773980064027752204440569795797957218743419227958005247435927557149285756386836736886473659998010663208090324838534798147149965548276466012053659173335120845028704315330776279108822184819964375922690663406398145191626732930782474696603684640351468635067181716273536141782527774452807204569034252602208496780688239791504472781675719881100491399517910651117740326116032727132923290316221591944502186965853474130765240919687881231159638549818550378120186271049692926834419753471106333845283439242972619666445097059783526584986877327999345519527109047999382396266995185384644899764430918291802560393899895949842696985529234236991432838064104792940012072228081723339907297015682773165269509766240976947554118331125734046354792121967255707198758022262775661044322082650516240575664167680802852097965804642341594030598762704989251826005912964189874599116868208247553820870938762916384075708801620613204776737134023882125956986295573196961724345518737880599648260266489275508950824584197610171278553567834380253418710939847129066521345029486174534661725322024758363997793002593277826127543683892843402004268486551873444994233800386716519464561887956638001764329873378859148470188530306248563069830351589540686011080871212710180126986877985450467889563874398632429903201007103406926287381797244807442952106944482481679057029686127662884204044061563310146979604740325897764579803898231065855612359448073976880794417945637356276749189332426620024386918086275982692892637823934475001917563110181725010400665651729103938933904183142674811291940595185417213062458253247170375076376990065683020088780850964180211424092740910559009996061975042650774130856742864062001224267111211154661156020219104629686532289049271314140779618254960262177316966677415139071327425240510257699448387093991290194863724691356288904270877461078298643905928808940608034945568668241672605128488870921197287477613015880814308118090250429130505345952475818231495118670523339618985823332528973571469314245680861314947818943550090389679506013992214547144716575338054076030544021768451061894713613989380896955211977775226537397673621367686969011874302910762498235471947622477779304576248378578002372022573113602532614098454081820340634806924513313292152637895860144574480248478641523388639899808167762617814083820839900003042847041436147114680346351335319052978502870881282060708439786786789909753671110502635310242941191769136420037954651721582721015338173908154677343736903799600176804403908376301553785760376140182946770802633549363582783711340863268103248541508032738966280689597046251043347866213749304474686356206684211426038702756606603694615860364072074902968207464368798948356882528859409574644148141832444749964379315631546336323455506189417186583446156817270281752350916244682639651886929022607122979179421698007289845874250449746922285236103483392080931660094422554143642144754503575521221950690380158403348920956389237715045241960363828062084130004420962975214583816389033513110537507119496229950588155434738124505576609250277475698483750276760821522402876638428668783182497216078354803448710837392418801088334953409226164456510418452079539763397507097831063676777831413439176783970169747695819041626878560304159797738455999315937501282149914969000787831103859451473065792083334266952753608503376352036318454416890436875637303315644539222321792341664510271746312750375619986933554165373333577900010727656009828938397902167871747116184410958206493795264583540346628766374169214735098451093754030525712236369797764970755261962003036358737592530636024048649755951957565326340170238372424533519519665368973256727332698806259537989864146532482561445367585731846559586993057310235937600372401694929018501220424626429550481422128612542369673419647823155452250134015276337324058579705763647188476420555484773618635708217607302532282033561352740393614988316304642895628222475494185666251901937172786965983044733181888754140189432848936997520283015305210538089877840354214534810205905870758614425989134306195162836556738992872353138681456091224973974275681451389199004299878801759549133011242958648589875988107460881283153360179097304968213536818791736307416996360543676938912960911778561599519910044504719334366031764017933302929609857120337559878252422095850581217970615028031010913270537301952670518244730105329136287843879563003134496056690103010851709731796433875170658844346116729208952909778655812102373964052300581328111252575016216425162687704119854702378417708411984766107780422335724012104203854389162052116672744459310038870561751555437816503175634877369884171836255705523382035799062547625964756881669015327782868384780770605502479783075712681926237996924469708482228411461890215972557837909295725107050409989838673330033317699408310916982871653283534019166096844847884293191352703562807882108183404414146462813682674834083643287934245302044549624750775123718163662980446894015958792770985281539449040061477926603610256459883378059895579550848879452879629891032037667370476437805140088339810853264400441412906271484381566382201140306811897284863383211562266365998959392885732036571915851495371794564855846072050803513877523525994732269893958906314595981650221100941827055668843598905566265564663311129961887194885529555673185643220860605147038117015588542288471351496029907081564954705950396044125823704914231008152808580919192933528815663905474996506796235401212919945648750529743116690151612646984259548493885080440413298987787648148107679532458892792002099960835137036101919001626048155699439367313789540364016360771403133270925878135346545873006012953765192288142289878600396641121865051041135468117839009826178259487425086319404570175024290975309406176417141980885414451709558917702735470998303021288368518076504385660478611849750594071958680100982042064510044020735827430512535583051721505285634020259217310257332766229339324240182996632856062895730509062155642767128387378734507469826499040133120400853551301554190280456098434155587762415340651561013950517254345629171111978391967909242588595580796712600396656663737757940517255571622330509386314999446847297371668062172041275159325038928954927746783429680552730110679069376351421108821447202904506536032252995566084177989640200126736993699084498579787894057435970461750385432811704791298897941711198245548668890315485589497245030284525110950186847176705763837687679819831395119149524652898718981453304892656386726964629423711267070160267367155148658015368370722133440005967862113892106554379181224774741187508655674865409155084751633812390154956649535083896683091600563813056848760255693720452372801656150437827162590805740925682431331894843769714863766147454761409362014867577638494090804709381872596323358810219870981660087885285809548342045729759734795383769114885843859687814522097804729907985091176353838204232229510466722037534796714683518656372824794674037546449988293095995629342674244524274371486742380927358692002245558396303416502177422192131706272219931346974498477439339738762408318257511260098717571904827479379861695808541585374241896605296523606115805536924628880642472488017484824833425610856775141187752160187230326592250768131915581019645592989534452586333777422275777780612343090550599809591031328594347894055263439938264820806323922283004000719955224635180359571500906487153368169422183182653930467102188004071688966256146812035294302866529170708434064413701003446719474055631945500415798989001226738981209025731224998828162084155900672685908909561450020326197354039785801549728248814784095573974899244936229097690765529848821849233016779495593477919046605835031804664296134147888854028289911515877333919790610055153069010039847522283245446054586143859539197953695487325993696792776787720002102102535126703427033049593095931552438074344866392832283171979699995838888049873975705106692979811568172680052181903836576455825808186786946129305166208853418653593042751407344765274848683223711566966196960831660529203961090065063076055234875336581175661568551131239548854868153200722136002242007087124980926152395342422978386971045640176072848642094116782436447515161326959277478647669073961651750390573828301797656807338769402127566675174645970302059609642259486649095374552863270859084582177777188962494655994941999094389093521612992310907659298200425769463066407836311110389767108191793701740106475953956883479993897284563933652472071360797669188535189728962070523225553068254935077090168537310882424158647765165232877717023733846775855592119989443289337903896138102194381109150380491548556113809327284743052295485848549624617656649283473237670490234974483576004356246158219382668802523656323566933623641207969533793901293114622830961126656837183644121556407859305820999708477682392787109228239359515483566158632740473145879612483561160235877498847547904759133245428020058556661798080400547337340577350197715045633369441807721542437153260502100033306259260846679349659095574517727672948912178225970665746017100223758664062537863857116367366730264889545366089506172122524204965081221998394182139300341375079814612436686620130580112749677129590945441764115127669756512434993122871185892407873207293769279532837374848728499000674083716577773486862538313931783127729766849009118293162243753409774502417965083129109384910120074619420637816020054827171418553899439961621509657772877462947025128216507100428305536657264434873319071831734882321543566966892221431445794134410046926698063552759877514615967357344805501209409196284942146817935393114913977495397604047854791490750151730487180461294722628006360846485518784185614994390328863241260504611282881868258552764622386044916784411175683423738393732525442419164287405097202021762034496999906149432718363988261446850851570337228067285317612683250312767143324143212588864722521256900474717997822982217589916347540377957428620100012064523661212417799552760487388395643363196798091356562885187420628891463073678548154992886242616670287273788326660505073383421190274187045054457104906467244055150007724936204996879661307289337794419480034048703481553131489835961675193666912034444086501778270011472864290241908452443132229737446310872762838291897083985051402554080083654483508811285498134309347317126377180017084906211096835939069945948628564537610770428502695710692049047075387233539965542045773487601761635042593615120660873810158179462649305635429962748716506202415052988701339418219381807052685925107069480815433399458930363924633997187520983849114120242740515122039392341477498172498327142960843917711982043732002826501399597342148517933049618375338248021751808435483387208837635751618760216672054008528623623252754346833888900298136458809618936976126359630136123976014594163298949292322093169668649022465690147863098675266716314641102917350894111693782067159894469914285664622867840757170862331562317572045508408093600958547466385779634827900974462006922399913433050855298396350881725197574068011687458163593928117394799535847504529434015239526604563528361191198261379830487216331665948766272949367555128138858753706400644570268277348067457783361073811647601236640212546600887824163244233214635396506039297892321340685473066858324129199281565372224198966554784172260886902322884121507877124939865476603016848989915277634475695838017931850518401998322330462265227540572894207193275780542036795293997506442719411276982985446056436906448829435748885569773692336541243760198356781402064554762348959109896757183170017085127154441066813527567832254844526621432893011226197055880337958105763528007558620255575767461044163113931113760073583310480224910503937828591209944475679568177425967643181950068149165569272401164647811642714952496044314926303085002707538545624621685912837024061821360660095558548911986621838251004349388204202128300639897023277117574516660383306902805582869593437093155724633276138585511525212007504704620827583343405096894437778458415438425166483615121836928269993346341207649686437393197218748570565940462496525237366722122238610119770219679492849043103667929345118911379183577285062191630953504291087899637892709616638457348220865830619477051612313651270977713814857460928765895199726465637114291984036578798794505726966279220108269646037689798136805681822266725040331481246884407917106838635305402830150042646298480841042033246510512155405955739578227088942762913367563670935293158991894868449196724922293333925228805268351049465426269930743367435848319094959241353769719438290611953513192395771585861130171824186689169149521607519096205677930875192178796512505836349482406674406515826149374730862997572948447774097923811198937399403226719294098571391568411902358869767719941394517212477818395308579902087195693889424493366525057435375083053170575387640106212145151367282760871485457443515534084852724259617330918179281311220778329032213664587376042874598591308429401853378650789014150728773057200250141769512827869156728150670909331657387746819673010797256979670468099419155417331118223844456041225905708838504641955056352295061230527404439980127124226606131707427652952721561061189120493459365227636833315679339968238524865583316150447826300300805499975390245080421496417171649853845650760228203658686420029752098787684017742004799461224726746686834969954451754412070225542745010107293946464663825138584023463375586720719275335384383766489573889028166775640880913019160956182232615974981923647085971866352930278077836392361961554210779493223723395477326241998858617347330541778981506579629397704599966329537211175314311972277574716342264248708099592297827126510455682932729412188558232813545351084479952910292545302129278304082512391994569924903402055219873872413445342450601578527017834703913484353568258165059379803784266501269899856141256551001338880970823075841491203049956639563630518283300112185031692995370063615691742613292027942823305366378706452499472933991195709936191843438743948578492953201862420208460983004926941462030710524685617598841740839236663934597443154363386554960366585723991062492816888970847111000021214572326971822641952849798435758425736766985552693426944572142808397628605529319770350815485420000461636089643128603186574716829070325353646047753590442071594032599346901724044485644769864767444167650786834186825437121441875107043822920605467118072292322368094139592724533725098342732412813777545979967146601910254281578465815088809111541346315172709219486358393201475793288537308225239292637751206006966555783450163078027793670489830446075046273800991542045033659627881050411529772009480249569781487166545482212563370242470120458223202828233571432918159661434155558118707565463715730802527127605857768866995556633615730212139562682491351207224221512393213552423354353956468698848478153781398968830503871249969447289731299032547454429061967266420800012566903856200872578988379783519527862114457380567249861927160431413897561577025121408827036548734936500662272680167716902032208906730032816438201082441919462167711564991577549833228608186550240876519444684380697165623623124828298004018403837660363183524425211230714721407221913847610745970285704718780485916381645781750820685887295763667208699739515669706996442919161206962425436553130608689292483618566420707180853476948648255032674806517366649210556883477467230128451326395989046108741901733171300484560096753735492698714813080414187960687196741653569856243350495171725467909477453901785537952271046344687523016493947170661143419850087976293682564343630792259904983790428969992256838692135205810352546384658135737817279121352366689993944296045612310718604373647178329227802125338399317644991996187759591745962055928602191723923291153678158237634549441258032947137457842107825829418409680395500247460145343000463728856691759070990520248755423134439934207318923725905670194569039270116197223947788862102796727711202950218338906107656510885056956196457530407977666991682080648768978846138954833096269286602283982027173962107717328287482171350766052107379251319403443370656535723835495813278065438114092394548381402374368866294430962651026627213721041926483604017572234673695884312924670163021896993443365502932226016296721612269067931923579431368295504491155674518375245213314737506576421035465507449148184448396460079354933994148298296655219105788590355798301171430360026192933839052291357429950599190104983292484586714146338855030281929285185801145192492614676787858362413053983283171860500307609290852004884107569240410604384778912834419318072916975261842159780552897719885215712712688212333588165214271323259966995178823552568839415784748913519009377732289958595256657718245748738798963619424246483512845073179707277611364361571277369198711116077294943809193811377546015805452910756884890123053091946799634637972100711624418515458516567007969962511835467438712551772669893371186330267366529976584415456260299966098099510593150677892630365887531652501831135977030691762481189380871958526072437009377721421474769217448667467256399958773877639970528596744021792378715507321499706061522804667894878494525318866365228596962223460029511895160983494518000466041581116762687421458051101931007013295455441473226668271276379840485704329528845227675376482334831042799207392404515009325798847336972665149612013036130113544299380188226683356353378694585701742140574559943434279437732586666313271119971399694155806706819214120453232282330581776542706957478947190920551029396529646385004394641825418405234000737755042457396476122403369160916589404015051588512600682115670431800593837866130309365030946815660107020014916700862959749295378622862314423955063712818349235829904464882685857495155609928008962725736091135513034720358839903743973342359550250771211920902004014736192594158782570691576946083507586965565250414643176835892880805080345077553725444290676908282322010025580150755961290484879355829561928348322349849294889219462671767250996016355472255254610359037075054219567508939223379511985780061804760782663654798016886177907429125431139482320932522297565198761261661088259540213506599634976976541055406204897537873521556028532269833449686777483404689902116454962655072995217800754899837240283106592220963681336952134777651473838317700438772703321634541911627575919527233214877098624423289625514227228951723756485109177198376223615102778672199357275254712393758840912705351301691320738620086932046873211500267560290897825327052475568621204836574807662536143090204865870685695194664010086181775176423904822314745426304662760649403968938514527389185246108331607282016167758918148450819049936324649849445149899138774802019664099742408765491395528355976357233722099751999185356435468484102033857663358420237112413536828797835141811387970945976427644793750065463577328283071175392965942021210785468763985898196779050678960522852751413097285200187468166960106744619171644796581796894033550800505444366260467855479044917199910275383870522403624248493631884859924907325993454813888119534418593610777405074634766192125393599176152280548179115534885470140839371223508694920320735334317141963169259321443098233796854546324554787310535216560380867092704539781945323010293729068908321043463541660128995344253964626143028009437993775910769115659016499159821737388184453714967616207082647538881736583875617559796412581050303783751351423171303189018412334704994744579989750708125420952110800225512554152595538610245173546160735659302583015516533844229828653384767989143947123091272675828202906165129258449042771289230419109391756495648614897187388672865120692464268511146235467164661899256239416119126711821079314572028132233110338108459464998988701194104522265038305611486914809551528587733770273887430196288369497046556637466149016842483206492441779378970271679598494681536216807357854339063165111186911435524306886260908864152148205019794837335761299583559726396910818924842815567002487124052030156726146588899355345047613814891673562463250058756399873731390847070184415464350040865312027939286156078931758784414507751928158950892289791581504346823490426686434735131279250160594985447186468067419944572235452895755474892586133001542252519244302962683193008372393958884421436739227432832739584613000196879839178350753671443748686012679546589106469606144374662917159797063311264911735777016679349834587248429970285152238979498380874628191397974374020030705229488833750593006673689224417043941949017592358736830410928645888303710153146641952015191991542075976135926237020762230838033519263230522974895605611199677449579362532650225272345017620919223630027109400390202839470489567705815344466513732426162357007478403756289347101642388931887127878011849448103986143928366554968147710017880927533477537408248287208734905253457058215858118868557842831698807028467442068440964026970840850234652091878482145379524381818808371923965490194926031793062676996641689378478486258278899819803970831419582963844200000867703634523583814091867769226615336169840112067664974579164437710090302990828284543558721189425371500564267871161294338504733959579471738204194973773596069645899267644748517316762020584102926873546033938352343070169538015448470611229059389678823113155692718993459619090489274878903333416532811286038888138687467023079213506357654173811176240158355855936958510109885825935936971866722362094242866672584967002805321679309975309669707478774480462249127251857400564499915504625396671579937121529392472421634842615892913459307084744930808399957032485837518620425011517646015517771684540494208136436292563655321176861530038077025495794629449854621383718316906350648019901130982849329493360725101284916210207303330260284007592918014285976365857176138448978191200378575843555733484873636617307921430673659023873056914012517692293215270152591096323523602585112534764149564394799910187637746483805997700741700059913004449001595105858328995901665037676270775019102998669670585457285651086630508587911902078100071094089674619758252072254480695779938690569726911070363336034032694059582651135209248661385453162753494292130630915101462949134246076868975973780387410844962709166839316115731046918216390260656032825821043440255233360784525141087380513590204506450497971065339146173285467951080522600816458089568005223045852152276152397880714120731505903945561365189346913543462408613414187620115879068108476384133012691563253717971612565970227510474025310810023050586307936257695766218469035091914727768494560075176837268608932976442909696734176963365500954175548607248288199178108172176179406222000123186469649267855448164021349111598348683959310710910994158677378499935562393856788847865346673513921988276043132309079704275583689405091296167330887878685085445043036799446270708468310938276572786324175853376571984777438130827946525947256910283585690967762556727248066571652237186871477294934614481034370471213962422605285086071481969163555652057176918007553696538579197758698953024949642144685734800463197980032913539278831207119762093562485315061005399195805269038934511024534611770567807131370505137265748071689138342752175367445735672377020586570145289868217408121410075313893763682868500720994357449265519996005631880464682064221571981242906878895597669145095942047670781810038737415216696339307949200473555938811196928692308818341014929676428445353773449365806612071706679998539989689238028114737905405380653239535132312764003273704697227077377981144324514918037975740898088394630365653580953902557484247863944740861757864686530050113727446678622752259170295244271407671694979670937960933952223781974697107425475552908634859845010471088251801885305391071990148515945804099080553302097281882568104045045852010227818723158743982930426852271863343075004696821364843389662229566359509400102228716152011079871691969252103907120178422683261540096997298635720440270410367972281177204657849115453099201995659162431947371817425766949854084274622070306989350521726174319844194614384750059936994604128757241254166231432209004566065311226086278197028336104980586763518186254776963000393392849470827230950878971387839779566981881584817676546207844313470260628807972526659675973477685263657609158956157903476547487202240718648713841523483088743383930688149153615799608643873085748888652084454263454935791040380621170157658241845590515374569985826351919178217277902712922038549198026636535323138945658536072394713240970372666661985833695758368961509522756492232442982161500701540401326048258203408278397154125552384663868808654588126556853193700732045226021644309195915898009939497559621520375549722599489146472985036177497541156615722342468335765940843428248839329319394995178843507098837379958476887127561554695112500501557561867153727044505370347228321867727148496283592827154607348685167045333812156220096102415545212228526362883723681099705595177879211441589853586446624896003128150438797673790904825671893040710000082156433545891987464984941239205867002128942793743287947262694679614920226098649238972352845872106640728906935895049980902445612590403262023646986711849688904974382671558544429724784619178895412833175729148861104487172591130057423374046937659626915582735246788861766671045627891852641918107989178627738637342566701098404107904471343339615054673150025287933118549571276563791401880544454923357993586793395467462002178841919100768973899810902851759257198890629458735304506334487232771338075670583813659610375001084816704763595922135198074991811241355373600789009718061855467344595282015457004536926849634359873689766976213665824526146323993945753545853053868146601947348318217395430313940217439425454647362733756272755177234141064678660871728450256126743874437837050592091388547740938538840609293669142766634553922717298747309490726926449608146049589096737819886745248780169150842422050891708739277158957157848804826085186133750886584352812507978753605599127289724505247307487142875585822786717244300841345564572740472027944295662147112604225098759158400618400650706128078947515039242273181287627630053749674953126659844440446896741957619095588106464970188358141578957915177848321532624422257362197058276578355311662429236023432988135663989627829720668934289647591673245741677582374593682953731154226401380099735671841784091742603551416274661126189311826727381995864106829933484659448984294426923430555840702329367482623196811011673265452610262041980441559786002394039002379222267681524964550451982028661773636411391691894875672053630736843721967453418642535955548466814000183894651824132500239245030946931505381976129011923691262734662804564911499571613907672568210350718105162123019845739941411396804494113844750423561991478834446592576115310602038640006152331647768791234949082992262900385161627963916094400668510164662710109478512523975971111335529166440596466634075838582918698335319975061016606211367566058525869347820159355986913148301266534059461486587216697359947141725976963113979189931827985528124598322255046000366636852881473563996073986815580136905511056947070437603042078402646816421651970445526976716501425261845770936873078137434516307149089054681922797718031502442158871321121161606798152484779622929249038267407319615299050514284157977828925436784591493969662420239881551532064303505200215805788321394112617351408324406773640088611186376502826997882975444715623651939055841053442755876960316509831352712020496000377696691953525902147289884656546378519978118044975824195295242032284396697559949282024696575505986914413857702679877884797435711207387144797874895436490815810780100228005784771307804772651620396603039781128057285166390653280217169932274741083771004100478499384611107113066575424506552178317501047489545303977733468032456948960723460302886875838904835218698368898011901475098741725471510135531621659039996688842587381423135699930232501276913754341908993845759798211785761278022175734308708983775722897522127405432377794003032570427894601885869423747282310311412258389186631743909617660870685735456795028347229023504515555576939447025861305014999108801478288155346206324544400544732377738387130709019925509002399950590986647968787215940533134845261429078049198865162940607603616513924604374937736052013965352076948732740056981334160366147023101962148759511917157478866612270609652497834202915395702254931224388128859716061511554410288334529160937969230931954582057799929875395869461794263343463971111850601388070646429406184001351997579167252795548818061360255486317416430334188284158178758039056188460068887827495042735071795393148670370150711221686635300420536979780814681919144804259584184482403322485727809112853321665802297227352431012766238221043006274180687784212874096116934027858918613197918794413136453491760013387783177412688313781812526482948513094365351909305733159264231779812129604678409450764343291567517670929234801605925263927107690948453484953998252175081161796612947868258894734224200380545375167421788094574663514850732216432565910369625985736309435171647060783166465022831643192508567860770101756907178864798983069456907937241879444509207741732406484850744539052184674348649089456915055595586305224700173109167303600939676830386448223869028942722946673369600048654112760358864268210850072142788493621425504917491354912672889489896489394087090898324781242938490999213943002119436168871978891503437526506060096724840512815718829127274184778732443905477113732721003106397005881901339157027085692650869872290247363894567397842365421659899866716327632254378655745215670003071961323811474330620750892940459935437236677456788345967860695179577851645231851226643790329433687729625458568954085045610990464517733339905077332884115730048132366195355195363868051553999155679819293282103926706647786918281266711071772618032531955362557459098541817677872230461649520699686293908551316652586823915521578664476743079903706514872715238750273466774403751546655108135632716560091239687813686256586990730484691320198007816208516007392116430450141941853940702260353900173778197256257003494213051452932564326353100922738611896624533933821982690931623305940022627006511237495454912395910232234114961885897470683068277068951205853987736202608508387345769070090591878109488551256514790178394823814753462259028248232210670830588859942437059945665530807726058157031084115229472475835822906223843518126134638490607088654989635260596764360006784181999738544107452827856904038682525421853490860714077960391050404663572205180584722189407403957315370170877266538525428864803989272416773643729727624612826445852400242893895214850329275281008803200297380724104683111571267454996716232216751949882553533108842217660145023660304764564491906545275311323511701897317045202711052882543633382224551111421416270044265792935748210429877125503149689113894506016345431130042404378296508510732502776147552739323400159212162612902653520035678717581053599320117219411051859055079390071473836641140729441743505245802390242468614892673706234438305161915769187314807034871513722712934016153618811611274748934845675500990864955252642229032445748640417073391716588871332925196364535536220888390792288490519377130227479655265714206653649581086514447500179672840500648941281227467263223558933169900559081305872864989337939484767840424243765632545615296651990912916497044360747925248087120610873274496183295161181183518121507065675330766884577342216894322213859003014710899982914480106927677990562218575984043511325737052177494501695778867857802548169716749524343748947770310256886457179252061276819600272620077230402106905933997118279818003135490411607032499058259533531450444423624848197344688455232203892640161081704706716065685602426429242876635304794168259777116958070670259643741007374204535001311844039004252478407312561488172742909813911189909219526000306439080166666201419945329826105205245955530629148081458400358605681251749878325398428608303912439092826716068766697241427769983070695409905513779201768789971816950722116171268065683020959606376659163975673499432988775119934397931485176895760615896944568311004500260955443371123771975147012404063206814755518924416324101719618204574615672620594743026520102967648799797943161637992083189581870621521091512143636564261938336429341272311037427763709991635906276620152210960145082640633320167316842634685243496919081044581566491232062895172541380023595999269203842133922190380514629533541202070562899636556990239919658935174316059880924934709893905424535381829014196462681204831067233950812425715935485796807514788730573697883665121325874946464534589828802762614078318534072555209944248974963376878912351866987025458719301886111832377775519696400181592846956614508887578012750827748356364146402427814647321596922764930476859245485287880678275359087961664259511695052933598902725258339052019941056950140239322958959054005605777478412825801080375154639645976730752987205526814831985346573038471782878314838613051099451449671190704439862356991275055066533515369599447346374456268569262708269365852251117716788579484269769798224988680034806141154866507448061941532625103349353653091358579480110102075812691152233411112257604257009377509931618349430761646633159307202046041307032453191120128176957168190015128161486196610935845800217480799745097169757682200757838039185024071543076588154597700415788755252591599742915554561028248052035157892162388930392902285549674629408571107125753625741735474382889318149650240364034820918544959877226944907300218088327914741940823319371033690843533950826054943375734050492716599755636617787827351431531592928830009399766198739532639938105386095265778150841773693734973986224325425158359435151056685674901478967162956826589466511919804997978453436789259402323115753208770653901604100572705727113651443390785545405814626293282697476655153585170407322436874066401519430037041183164899735627429748683101101601919556346690117302616518230115145782954298324692080289731396994014164813355138599486925737987243183203355001627216200275157356353192821658738637382318657808510140140252382781901410349256270642743400507510261689629478742511168177326098206252167513366641136405520781408142782803696971586750072659517463322119467017985241768026445267141313342874282742981519359316555707908641103550374191823385533941218854808970179120319009849612851348399604996643811741210177158539384378527763995786955412921637437087646898437218773389027226897018913542615084296515930355399018341891891369085343124825661969242818110053034303520398325327698081669312890628581404279649862367433458713450799476105965810962940435679119141874785517008651196485755295146300887432340318737309852155440400415085277858282740332648821181019704653944434833531763808991916727202398949748064715143985999873277780029030549552584792849165882214611469126898614393514350496815548841997777573864188353483979978329279102360386491834838084483552079075106372338152126752864951141459530775404048682254903579701037021486568879581648813210471965254788729986531064673820541014955188699690550686116400410447347469461656458006342839313303738760158654580092538688847993960178884044780429112195836015051378548590468817317030419904561508768732312169681028491473493358871561117871605781270827541930779530468315751475772451429407532976744615515289983543040961144502833962186181896925013808580883742975785498858687781780436656071602503549729506161069494716369200633661453972411268673819371786630749629558964020706400974189401125549171237172494856666301502150420174340779058632081327406710106783115879295014796508387645688762375172756516794325741152019204547698312740262600785767605082533061611933169395051534916167955820864362575892868764825964611558308715390280915211981396796278233294188468003572820328329693281107928716314584351283804400366526204294339474824380185565042603842195026449599471613637170764994136030216890950870975871602675216195019353948717415353182448910665315313081934805645137671973559300540140908153316889207226146674266290061238702288445227548304338460544392127734134460031985398243689574375200090020902687656904827008875673077178171043328700806626934632498352568316766499418755220316393212972280838479621956542787114492257309742771593149955840637065226803601507417312073781266116915606852642671763885089482713736788332225452082729249894133891963581452509521784385693976102189905595129838662743726529922621462273677964514159197549547434669040165401914915504206335086968909592988275380197314886615533341911410424689749993307232229384647805542418016033652391049557476683125745497439267272578937773515677668792002493651282173669843662264114917955509421622062293870848492015630543549629699388757845050805340092180187255008092210786615805221112342398924138649324783914374760370786277889701821090251261524063621171785224440587564179141515963900313039628632764922409616806518360803455431640729986843973850183149005938268526454570374371530815221999398538779280314719862570750804726412775529386728297944293507418940059900313716909428408444381726795779366614992791465633117986896370998611737397895430589927281911832643552241339446297720380159649636594079678044547700670280015148518892478005352459626281622274745505888776475147262532499919218532925772917455974451027927801232402586647762914355246426947236040155012095005493886714896162144066158071602719890541352767889303717726799346874041797558196003523017991161585881953449917723039972804982076009321963300795942194316177167571645767433860466510449168348367163409070827540911938899822026151806121055993980586403753049495966478268561646122808699788713396921645796971665258033211982427792819425070835135903302416175209689658036769705516210625989997394160555169084671475068385397645646170609023657443275325811994028637184402194762040958068622675553376408050428883528001680900754757298985364047678820882443304615064635081008021122452428885447169817340314102767576839290842876375061301414629415752938109248780720508962278622965912574023457023994212069969196295358823241964582947239179267326818063483163139825247503189479032430186307145437843711216468247795094631403503120554367578795473886774471354644362897713830152981932106133418612730434146659043256160055833327516980299944441000088759118236921501175158292565147252240919264561803550195279632846247022537888890009394541038985081754676983667586507685668467206243420719869220794238706201695957221272728208818641991659745696712457972610310776688633008979143487064080338262461668410251490098851402059924120475466188315132012865693647544909434802593393324770188670340113804533479364558406385464749357495931183542529206264232852584032055612153464896965045930441393835410430358637979738775604216606858043462543075254826251548799793147730180459600640946656375336538465866614774719520591232502486314921260092728384050322279984577025564580909075642433411268924875371537711095095279679177215507986110450094829852130707250407648729064803717943442000946129069101706282057112439557308270668881824100019185235986086962414314762447860687825443394391554046208750839209163400646360382888898639109993140130987103660564839074136856903668252184592877792942957184115834143411107673959981175504801652405110679059159107549263351289798908102616005891592878856508099217094133987815858401825854111077304125788009417122594259159878677243613012276242507426695429087439050463731357808998889065120420491781254528602473446893310638169752541356059551113363561012121779316079183340043651881122759546838197727014566166595062875160983567711659379387160958573273101029439575638537268962827445024586040213901770947192136633684194310390582778501078344895849859302045062691089525094126711133424311335989430967299927409800489033128924580743494691688259548373759175550638715047476512730114370548650209349231962395760603447079300100106472064074657604597445762331023632340520944141623362395830210800940401049096804662792431948743326902863882416449897978729711879777739768201422447693344153461440462210204926487512111361810555124661106848337089209084578248330492434619780553669914844525824679718278947322270713370975281914398655691689996745192841887024803638989437392934437591499807178144574182211056698362926818482007730454927159653368979126353811120018769136468222103314793836238074253054885749257205764504832972722744864240854733251296250654397026719366473888476418349385193795065562532708832125421028859008663164653393042610497698728094845366101499650102078709459667060385649498118071403537184138629457082225914595767097339918992670726421492177122413024567780575396994483423218214460897503903505625994743678743372078465392820538181105055258203419573486373896718923413583980560781553132386793936816197687736818508986874947221333323355162414485994172038547347729884696555230973295286145039805204306729828546477257761489136383167907545443345967091410236439858046605745197490023914152938094540509136930303403782298577227868183454570591762002826552578469822516541812073729896469463795161028014999664697972725348580604648541544243838185232909750970243205855524595708665083051748566367945216067849674190160904435042800038444461743456779460897994748848747193668243491976340121317802051002524359026329172771092900820004587953815125497788009445135834344585392766859238392986685598411163847524685522635848764473758988018216308303234370019996508397751708675243094558896922972521485904049790225536606677425127773566815158196253483058956310324197673756328755299796247491595489765603728713114531125653702576047294309456083651308367908934800594118074806864562883493337775089645422090704011646482065130747872493938476007133766658353017728421181333423332202453654025052940206245945309173248478527209808759981917888255137880047775283373977375938102264613073431129410279404943078645360878404442279502742507241299345027718659802586707525250147285593628474666384834225876076504142651459475209153210342549458696660770076256686628462560924348531496554906974762324886644356527318386927245019390778732062645198003692984629771556220530413917013498594083675145860192579732333472888099096676183996663364176179224207770459133091249825582765344562027236647879558803637758621476100153186775216094903743522460554742838925626769904109858697731246515269241076507677989980546934405112842033738794520628923845980520275241635315186012263795774482327091998130134982164995544376786203785841281674183456729812642489866257310722883656582588299438357375527284082596208553745860324902463745179585417454920080718704913401608608693956620592330722990191925123090256995797274280806159134487938478461364143536411808635460101103090816618503571021294978744398189335024750620433271925347520267608481625782202073713943359328612696881417007323792151023104889705542386729478355438995282036018098759778275142562214139135894058392366056126924183020935565438712440622865492410471511287490774799224951293563558326690493691346107904913485754925892144035573913425203577252554067869030366730432502358108394510885989147405943840300833028776939080053213213343558821132481751896497380075563672001572023787523259644955919969789011573306772416958239204839143240315894301285668276399558968978856409251095252811588393599988462899509236203679285684722419769439317546874840220346744633060424917082093444146314654066741518893005265837020167037830658474240136757505210579917252578960684756332591403700426495170912942520085133655870395443815242351572909837100857438877067026804378143619896305646791830503822908491768089373321527401386068167826074881674159186649105316885724524090580827183625653104951662859378734114811775872819469365785290818573118112527155546202814354387301970178785933308225188020037667373938189936427793811425341327206970700120086122945545066999192416824180867797193979140424383081800421534915453268042076535446760298095135851123633316920484511262031907577364054783244059623210587346635917942395649464587426873011946060681089970647890875248738083603049142227727463909554896831314924545293068399081210240604090109900640445712733776220558069338035511069315908667225334718755031914716252166957740070767077159714447512577247435924769788201754151943380612545153609956708075304096300004394438046567498849273419363154278793314122439644858002210052298298879601249416499448677710577880875911739569538354556721683084331791774295233864495261724735525101390884269458290422769301116137696162852380899220677671425123196238508841050831419900798856563332845682965306101848467584731318619475708316897703619326224559970367698466869177854158575977301718421580495141002639480231857072452365982735427694004911566268952559640222764689211396855856924535418673456621189329733596269180241351096002277003084122141940411928023512750237388594639082410127705352969848929722865295500190215182322818119921086384953338667618419645063946335918185161026808719470082066208224928965372465522062843228149811738667635288664439398190531653430055922851066927499168844459085704781881165493250671821648345103745512353276336198655245762018822235800422944527176089458475068191015110212891378113942309762992820246832659695104239686913031592266693636472068555398279941043866997749310022343611857936240051345817157793354795613994667216535158245131597170784977087576538424186984266736041223439034555249790276070968942038405500328505308637366872682397804574368295523393474060852162550423867760692980133026431250499085735858490058303689005425029277963615625296411434151832137269012438411815006686584078836515544964960024406917591933635793220069374696036905730304963415083356300810835497933385206199223479617750735742514927564781537552791270765018546046245327032425270876093941411920083770302243263915182953580214319632391283036919481535739418941991585981901168881687485947229530647201880260823325659337925048200375119724951020992208527758650632155001543167282045994883279478503873035728702944854316552791056825454199573514299866188204985678665618675058741225573409869538663864223196682302936523203016647758831493368452209108901616931003020466996702777807018419684645947495459047703846477118242864687094706781573651827006391676665454436321693633631077950706706882250607253232613904560441146408523752651235105851640798279049441230060691266929444847383491650735813658348649299024935279206814957086335295692069034726392693962135658128255725799484854639594295824228283798984109499835538100708297170951474023854678609419862162521785779823816083260849693217770641806791127098850186424476342010855050863690007699606625322159066237034326363973305226846915326064781038698524669540837966153829677916341011296097757934323710019737872975657439470050032366499313770683252698845797131093718031915813525397180823967878969354830582930772458887246946753429705133921973024600637338607133107224971139478768211573559959189211917904401586514090640255365243651652979409290204899797053862613539371155299430867992958227334267118596646024619314301546170763134239099103004993861481115514639284021066550229277311786275679945072932447429235075219366939093647059707356233586075443186037764918869766338643010316897816111853759168188069529045666709061378011592754442422423901098359712224359808626630414294014656237772009965168704215476736291519528840441797424179899241442941102850399112950504055473540637929208946943170865352672650280285088227154854230307975310497380968294522246114746736008248894720321643893195844624384163441866218414308305293588893769186652602665642675424103915500977386485628408067655675719594005154149042686696976593730297981617369830990439205342580486366917977876159870476155095665096086077945075763894869255034524129893699338064772559949487530264199913144588835638514052284760633852696987694730428413500630561361131113051610415997337746638088552903820146385206678113494431237004846146958773929756593784489936918897095864052168566669363718823318873701474198984975145659432145793441797549468938352444168098678908361886582258250121138536660593429571053171207863909744705201154836340508226275522333546826686783011862320943576177000061586418050690359034956814610746760713654869992932846232003784556323006207621615288248659409601068544331215918724289390008953352696553026045096803725834588700795182761258750029343787274117335974537221908287505003707227575187111622563108241969365957857765469686097197483945315190572382605150122064652354170184523975326855164296486093715890022225619704424587823621425803085689155502204795006419663576332872206898651618029814655977744494737301423373101513605397559789359573048526749176894646377062014506540523335804465746896171551644050029650483984068629271808434153896761267959231399644181262355187641397549141007317273048053099873699970298969056200245284972808087025360474801359924275541690590860557262064757257552114781969140021382439950878633118657559675902564185572965445319412159492642220587446819732211218068402342704579478376678198942733618927623148429076269505160264499703444699708680233747811629656633400051791779479176225362034948489614578956437946748903214711030320605461863133589054762904307116953250275865596394729148491655764752597961549827503592790754878384466817251089157823105682299558213201464585898117833093784861849711154953855681919980318152994572329508099989770021220293052090393824206098510075383368393978554964765962027289752844865989922824402591401652674447385598934545224648570516929301473388420951503577228638595383315658853422058124286789731325131725864983500442313939022823729061609000070081865397302771164489997030798253550182698056492317124564099888890082596996943470058425863866459739702601892245697623267574200481708007458535374200751385672656966792845243374053098314360619319531931726602891673797236973009556493275770718874438486660517744436415898912675032931874972479749011829862417423317640761697988025065470833132247062167685759415346060077354792568457944227343071115659673958621255228116157373416308341752825306270684496888673822811067816258714342273355957773841638617581713971597016921134257259921479926645276468592053132812647209714150118624014694235965719831576630928659244517240517377636685136303521399876251980657744193251694373907708359797031146863368662936865931638386461366965719433214323809331838552131393862197974195364676169843120580164671179381510015879054744880757753900942060924482215876452168305670890293709087610439548719897237658627275643077817477432001130033159332366405479140815091641718632078045421494162108711769029430916631193780804458773071821186750295658312468364758424530442404841970516469212168740899331707834147416494370115398502992704177791830454191124315928297059967288192730735890114647892942756780760538421415245102938745599713781325785447272755021245104603828930292800967403758208975805460032560391174644783659250926794110906303960157413616665741368506551198369355463646642133389691808842958925526912427767425773474555023733255225950676800473220219405320532455021776894627617483812840847770746046522316129630119832550584342884798330408821816523257800324933713123619153309104227787774494627360912779354980517619456686361417195606894548007569969961047996260505100703585572724088623567021961854346639290394353529951984974690096305759388865267932410273864425761407655857222832165745547274995560458500510577382368851980748627404297921040260706447925445556438818420934658860195778018781101318153794997002591790202744152246824359376921882522039738478880708526839036639533647607869414912619034014516175721093191591900019305379242265586815355080956957853043046364734814993830468562186288558229552106944276797895265819066820399301206638359419843892659857661635778906956417149137087782338245467050378313372310488250636913936793181729243247329214372824505610898489428766394744285029807568850649258875285191940952627382388905477708130132599532130563345940312266767056445717178365576527126308221055534329953898733918487721901897956673963730951295521861197834861881451313217400674361294239449627130976520567684341428548367348773419739306150078529701145797684783499633834888350516844558486725102822877791316073352408975750686446607403573336627433299772803240968841015480920902660916272217216469379378080162414514625712651909743826866243829971662235942782240492965829636087901059093095940829742765309952829059761412238350266768119539186528249728551425350095362654186266474073389257991919954317531296910295920342999459625406487255658464958519859740464490023530489150473335127700179767542438091862207164460797836791782084107185510365903084993321028372436019663800026976556439552097389546460880677754968361587635992584064633876763362878516641809599632609740796890149502768904786970000715181080758161815061590028233714015121483388391637426318027242088992799376743000066588437310532693781585167196925419753154219394030001392062704334207846084357549086845536508421575554856335923116729311424798085646402719780675864467780417643553385257617047105271327045707657609094305494337140039590127324458358976738527804342827088741818905653318560569857722508558847776234699265702247467690847484953229828748863428018715902956212076884593935787882042080687365843125966603660852471724910587796501833109310491825796793055485557515825703349558407597814878926827517995860591230782744098336604011980488307445228820108634569676772152331285153488254375934185544835390376429672835946310902218361034483195853815242529189339833517135040837626963485805509815500171746209349848860514575764430314929285940811499880487544631955660578162463511742166478611516004747135887471774108376154476533339945791165285657635209776506265729137234222961145052134577017411848599238375827535261671764926682254883456194948958715605814700555796267685685247463943978998868573210321641085210620243041763704486849186093603393262249395086684827951874087238640559066480562186794392162314947542071455481907240450414583488607192016787419797515753144571185295142167864233121631864093350337753239977098989548445550988750628118168228588513327387021136640619040894754854048112065853833684596461885731874810754827722022128008269748182982595723782607543300016208279021544041079898977555863675232067848188288204240164577031817872808887994223454999652905328815457066693037528491473160508767540404575996401842911718712322773215945971341684638948851312538474545997116074086107630153421184300309460541504574138235637307687276561061178859035556099832637530491475125956395498424207066077149410008557957422627245237086851025215863034423107439391330886205367734752886687649596072443101117207571524511763699577931407281250980865323557545247154532051197263694170179810989494423145433997197943720364148972031356083162971055754677260906071379083281440500675950963990877133003135330332460255778980981891520646155687585793034088947678705314397975825937550529172687771653512073540880078740394955327325816381371468004427926702751549484188643995905733557984188571405340641402128171040997530948943378479961462527360040755337825909306198077535736750167250285099892514275088132174371766824102190603856253076026644955423398544192133970041575704099221252514445860290705478827464017095837712373431666734353454151133562796450368371221076834833624268477065129270025940230229164444782445251746460541067207345962618950635199375394110061139809421812311859856049375313231755078339414080521107033506716315747024928365910427680724643400496253065594306404883224680463224971350249504194070536945778360634824082343753777438252401146965997634364255273852335011557061733399388114734951760661905492686286097988830314081526936564450794210098768825915254151552628186441754608292991049526666660200486328926284284491437155613324292681486727269959398169151696499655494668924175978274928848141996503004750112818887479794521250246467825568022310847410788924811493979177606570738311437594916396674355548825445824527757733203884631475836924454017746112283008864116014596307392787292806636101390033178950421058214271314119347343324999086834503301186348424167181710837852924733888132768021412695066631572710846721372476362058166646467899721852358680082216134406880793107306924523526009034945966292175251020609846334792966074884360902452898598446809972539902208231390792692008730518053249451982702679671435415834363537751092649311513034850634585255896129136853847020546398779119072038301403918431521029802489567232253889468489730097181828257239109263379422103970980412938488989363977367857931043053851440760251125647941726424948065038719526749306148713697788991904446383618065227419492156560893559388426341937629726647044629568529155799830492042374472711620898610488226152458824488997343551961308782601235385635671061665410252311289199671280129139398273706927691664470431372076332987322206043877164963046564084795132395959873051729509536810152017876397788040054132125419081404985360426844441153584489182658246539675308904755017014893005225660943388550903251289879849320319560672650881193056257752963725917127055386059243073424981676311789431591573647614976116512896583585788328222749129205179305486904384383486549377911183279894407245402011864535264611267449342528093672418443791412823709272662565208205824057022992140219418335807868844797925872250448453143776132196534274138059626260743925525533509444825076440505545873749481459742998478657199699955392479900842995719405461833627751290032528168688458624710249294380209497005996253962732941072074697623382329140716041008111168214347617912062105099697550469724758317285309774582600636033389381635285056491263833612021157157867023437511744402391188113575993219175844802549835690588316422321183764058404574054372729348003006905445509611011960001622144241072220188581488258058713894828143765242269362245803105682962838642236400326421360141519020840932257935510392579358680314560614561026633095386492004016822300802439001987730883845512784207585845734064813098417616688422148773424223777815883038755730929383087124126469170380579969555575192425207971227988053497251778202358370996212032041090276951968357234045121250442032541640946689000748449754536043606745544751482909711150660805690885463770743768718302291833416454879474781189638540364072475525444841264031288940048100573848414005690497157385344674939265296267133937888308146596603580344452956396099182059737292149897075562802980715261592332317141832802402501478348329573125362620617223914580604573215388192756035724281551960347836458827245451427173892927172393722542273534584253008461765034018318812649772665963418998954789498298123599898306533877362011017386800820601200689880196182994675627332405132287950286892432739941182864806167347977510355631137636617950230582288513816197142939380712859299873737084280465043812372224544239907941240356846078047416544428827681339388015789850821642014075081089127020178515138388052769763900630332801979973559553413623595451144433484643686715764708405302929146151189810977765839693514478444587531882862580104145865214884888777640817595022894781630492298327212548868247177089605470597022075635915232703843518939269941413619414388980860031011998520869830530470354637812111869647708040613536579304254195715437267084846931406167232110281156063121152244310343900709073890830318995990031378355410561314592860232900768025891714517773517506673407570327216100802331403905479401987472070241739450788100963237880777845560755788312572691942808504989364220298632236122993771773398098604476621205582267477997945657529768331143339663281133525097234800923180271143027087061018794487762222629351818068383626973963077495691470395424590612913334103758929782334643503174686375410369966729934379517629002921947952057374013385681350465458223032518890443846202322759770326709982628397617989246629222177569559779985572768284752123996273482561088357483519026258541978767097738759012856491827815045384135586211879690343252411390394161371097596197619022858541985696103293814734871730828264360904626703405175248221535027421304801892886367692965975633444185806876369521642108616481300444413182804991499946958078405304334529588432617401127469470168066640601650563095901521130022012742822389160708103087530972381060015152660156382794177975299842767434826567676996198715811595779499704870652029699684591213842090763257849717607568541543268385428746464573391949944081284410625593618043832719804873363115457817405495157805661929105735381640931159125514769043418526220893814361421940576165841046357330024222814942617403846363813683334618535771656741126408506326958277208662586791141848201193543896280646898473086396109964623099829531937257610319444996735794218529783638350794442008668804089271103998664272011801591855814329599576320599243141790685312264654479094309393213609261927473464587618427974799595643314539448468613866198514835537701779040245498215595610817336722476798146262957655436111416713158274927148727604769154264973326154901274671257078991361599002849674035437445005182396931827243788429772782317329609894931417006867608635541574587598109864356031991463364779558897883057331484337546170952493016829583615642181936093038240871467266559812549872900505652328658018687456147864281874887107503826555660719289766681148763455395492560750560438567050633196472806831863013921228263422105496073829116652366216478100263954810036919250178208100523424263569197488684588815601350786901445225367922597173062699600737081411072466607319704248508336858158684592855129528339831320129934610344264079814324373389288911218408389980383002239046555198345850183303521190641991789891218106555138299288597793606695084409627332278313618418403465096979678391097112649879934443935687252209528200819949999716677383637645470440146645683869733878069961416048650939585898130277114980809891063931072756894654816375871009737711098863099912604964595475734347510695667495617986868494084026578925182237956194107449552062394096983557123085797008548511673844723009237326259485130727190512551852469284698429150384827524785200006290327370309636586068947911963130928283350628704566625156334077392242680102875728689582395519520321771108888160362548703798513076902224280377528881749913789936181271940149110213993696394553619617930153297638553288622850831467095005572634072222381799037911346560968105633066998300664203783655390078513008490493387216544995660677011134462436259571390055492143916979629195091079301305363136820249529210221311830609113658142898878254652603574519736721871940103932308678132752436021956046387330964928445993016339598341857065095400413143427720614574267257587228776216847547552639284657171939455255653226037721799351725963488171060836290826257322590734771853147255134828819866043123862033751412172622567773699902259299200636355110306929242787477490886270478801145238380066801391311104232435597974940992839740825289561735760506508677877322444506552669669133361100761434981253150416409740973534601950413765283988797689833094249139663359529227853474458215246808844145772626796069567756317172742370909771989332121814266863789427875137662599771417727008340254319298160494225321956445730984998150846694769668868852406240003385294476436547204851641451181395734354412739303187851376264606638285112473137074807026538633183970388325419555698711522564011253078298842540514802973293267954255009352063210449634591977960821074060036188542579542133593405135828068884793665047653941752567642281459554232954239760649009710280856171133861404377613090877861247199221719085997165539339343639205517935339009116660883044937001453568502332709801826212014821747210035089656855027563732580975524115019043569950601844113902237970652089321485416508222110757609842211821624269679526320442828079421164931653322358331683064952339563320124864740381183758430555664689479431486152277424456507537039560597986795648594519218175387585800847935011436047807260155469143149370790654612345452598518830721148915943098923465737134868886911103388690107117834728478542619383136250285062121683707571412757345654127573600125992672372455425467460766701033985622795366047182999158188017181656676557916010849112004471072040087221502139593902787657708975910757181150541356071021285998998652186592112636788446443816957878109812152992832999180221019692029697365267456558202124204903596304349313145678587297485055199000110186522091165228443460501009351833015432458419255140296599379093570784523756596442864130655006435330526870975321964366578456734096835328994011609202573555238391870244354111116058017956271180073034577864552379231546435521916089745033704385674427276201795230791697763312675662251385894580137769249230774756871707982254928713822400699936542789865073111997091132796896271641340936951775994043358573721160069783040680197270864461301358055190320429138561390163343354993063250338803207420572289437105929360530722150338570715698870346945862421280964849054985568248382927882995927739358176789285871563992938108313861702807706328288017361408582283256651856451011175005764735364706422299690150480288814253000640862116247191535376844849708378528812210251276295466390940504210174834574863313918164342523629603185923469592854303696440496782917774527428421818426374632604219496564190755397557378000037119006334869792343845121291776576022355047023999276599724834868838621017526058010244513555411308010057596092369148052796390953041141103396232312505783324550215464812023276285969141343942328181420938250014629212918176614695723196639499941696153704733991546693251043000563649653534000157804804211470781573857899413259667412442041003517753320701946859310097124997137111321487621979739787795741023177513191003301107321622196800735287214517890634722952737944182930115316966005314783481444873800458912943958429183059406408992256935622697338759491097272865822648056108706080519682397046683886260340893469273029898417462747054691245280602819887027489328320468333332424051875499838757524165995743494918528338582650860197052167342948739844375364493181193259590339947652588668687966986678138902591831513952977214722845920262328807064001435827231908180031986761533514500038886071126058690480225033353066267778896229971771341657300113126141126307432241827522285814721255189182320674414684812709138217852446145251560057846425538343129478741993833405373058114116774905822661151704711862322440722967655870087200657644147534579706159087940111560914523765763441087764822806737868829742650032727075499226351487654197299206259649219265914682140141227590284855577514912649746946451692295880389012017132551485368925500328771065053138085560060954033995258615547529463767597533222899182148973407420234567608174098205469629627680929516061098861251512076614904036242591422075777912049984383288539562059710284719334307359478321263383864665123549151436475535189071295697619467765291640454608061301883023536309378481809706694242458229165821166758471064472725401000427369305655355497886740792258612881008784390434889193374652015666514443791629947003358486655082017150575331816546365032248250723104814656994836324771454935821328271850953344880376997102504388837974319267371800906821183047593439122832725607724405988545432939857806391564879737225589845055761115004620002181365086093233507410346820600685645116810037869642565632076897362815574031044480256013838762056769321486793016655507067819943657648449596785211367813693633812905498950199745427225090601968282129423722479105345576975932292532028193588501941520469107633529197626914688888139427851859647993364347978463069997934257776811064994056170294012113397849994730587259574834874124612180690387692707582223529591904235381050628461890926803694501037664884366226183802794641230359690466682656562458564196086852061468436187575184567505874677914994939005530641186308941663145582989558326768651507170331175766177550702338011825861301235362230229117488189658320861716181189964703802653221444858185005936871488178002718456898261707439657599951943379736394533346362546298700666454171954399586292865276289381309808282066984399736935226025663534988000834481774481869005234665939745975513325374432563371326828170623498575502534043494377094713907561847379572449148720808457638297029463348824334099666519270112923320343188085066848936151586934873145678644833547075860530208586239882306414841804965695894727325498263431905872889032169374752777690230820667272314933611252785483118043210582944488896429594359086160409501331387878845573167226186852066185699799678979935207827036656857572601946617156488476801803679223914923969710054665133376297943914979723168910898154713558820505465084246967029643078983245179964104344660066713016471847493284234252518449397721954130125022063858685126606621969570564874480448666567245076992675658640093756424787550935783158754220654776990331037024294165413739730766758896364266052232015233908591008621970312973845917538108012512662560091146839581255641965908979988145692318651890324726447058243131465586713034517063835918868057651322883201866983136641599673512863553130601576295133701862927927131217145604690277650689345857519171873812797265125681794393952893043139169791409808618913296412423364607803397488639880789655829727891157027630753634437921097566385643943415194826953948243191674611459995880511990391376764843051228392276002369008975276947100275158331374698188454262069893726296367555482441717869798537904635708379375077330825505451001841270704102742210121481048052486349425453827144535701577331032340651265617990289971185220602719132516872508932998232918265985797059481362835821725726536393269196884352469573284927817889559338061776755806278028840668560899976145368727044067170558757278792271059094400510425121588074800081571922033574976495109211577776630329585281420205844023718957431109488122343607163351638978842479963974784863984656255126138617679040466582333674365966328755810444938154092991963446390790497879984776887281027249909221985160006601891670334769541983743472493024591408113439184766416992392780705406332166582705677791953230428979355134076028565702232995868285382103795262583836251356658088829819911682423338364969966494349970371067403057056418813560504217947442450086289014182212336460927165458477303588014197381845539922628660147906934602797245226100028637273881866112513638882525175430831275549373258282756325019895285383116685886530006569646457664702246935262664310724032525050360412834493511507465967118038594941916097125485299440791276374714687910954592664311985710219387865833145710503323783997731682408648675639295529668710755932455188733545587097534028285515395800952570973149997851792384816448051083756766214121179031750893671323397834225780104357112594453486451437311373616419526845296190711861833960699224850228022585613300552092982266779468015544656106515054825634281263418789886841128903212212007572195339385222838704280421638958744810020899449442484029447114245837784574287659409732123157757517387337421910543401127669544975520586612340362626544872299120149826987218652547658595757695152691655868556091661210625015173009645292952921592971403684028588548330146877371944448588063071992008154533122281545631512467044506424485823787789953750379655107691059281830332272961462862723853228678492710536545066130273580326778559543055813937671753781268707582345439659772093341243292165308437797092947187758358910710295503482448898844967053382382923346927400014014344638910060228805861973416520942046709576054925953130424067721619034977772569402565634276705686894561217682125432221575334460941703357052325719700590221452804843227569308851269343950193977874228114624027677380651689395998587702363589309958853723031849606281716672400580812009154195125918876563642304738677232496099215017134907770050360194337390865140114621305319042289292593655690007617132654483462034922029523987198374236394548320287519475141231548861223399640813984021982561216029828897603442808575325194493815465036487317589427987463092953753747193397469842735734391952291095302384593204548766373908893963214701906756980175616667442238054673153173588383007694915565530939307113493320158020372860749396087508104957500895744917364649417584363750442421534361031283126811732597029140210280869285845040657090443465719970852541221864764959278590303420263755442908667680536013115349031023387020483484454290167633006953413586470020517762636593838592721098672476524414530450646915382902695451724637888113709687332042399514596375432935861842884662788741794071667002293441673541220697075302734504261198748456482777878961140055622472395625276908032644537662291201550698302639158885634947823485199299392973768805715517301278487665637924250529671122505274294695596883759947243696727676151585985160534373692237865581981114364923592905320455345859835688818319540992392048817554841202315928024784922197931699123300470388159408645103506967959212843834226754078348988033322993606083827979975259591242180917000183810797279039143684388194579593308639897007400870309652317917982339901853933309374884996936878833465624543563414745253554183120644099138163241342637212402866331143852694734795768217745460446485532695096668397967544802853158884269726876279393543190962348871788207901460741304863736193657227461341793824880873494557823068438204029023135007736522358314782915851391838299204326092497838214095758732681628492189141672157199329361251659927921876502123658772131909301032930045134463743002938756606782912664263447981285467098987445355298657573915048521205513411099285098798056606298266876318195897269218379157195503621427004456376162922688314910088939775712899191391495878686904050669954662577245407848070756873198273446600725374375383735036404178607047046904808852924001478966287977260970935648680645334211453535697851553895966025637551348064505119883017724755222266458170040698293901769126417483075578420328149864382004550478717682912419164465324491117470436589951600125626631589819986342329841445452762246975324249657083120673841820985638420464884781578342551102075076898180720238588526849005401250207080244879644637941145415987766231947373926413213852856697131114381129492977575695321178795527376444770225235862605326550196904912977660609251544798288298082532327551814771486226844469865848661687189682055602307993849032337407088924960895543139513288885313705470962037268254092312633605857326178322279815907703283230561035238498996585216346379436007632293301159882862125016373687451374017733801493744984379479248004740595347135883549731233851074668421038033246141253651010014104471357501325070525618272491091607864986742492048258388994078221382863543075803474682075398160461798829791775626673859707521089103871078415474627980145288559502208606428213574465895861867864003811938228415346503035276152131857938302558342550286984524589889833741732106292955957201752897398827982119140776255880293423325765567464239232224678356200231181843129534224615035096147858581104123519979176302537626197489498132594760975916533490025951454769056770552281243945526930014085194629669018399807989804702135308868605113813328528540885054729246787366633292829649067476020299180129796656339879291733094388027147970335333715064861260223124482969404816315183613321237208865482454782188541235097831643610222527706473908570282447678849436883625543731846487682712990395369812642226509671644927572154289106880290124393810259917015208507070948842835971057400687366861206596158637235340712547658957048243963006509917216415602109083743231377422643375042559485305092339898452597632143899385595922244101969825893146867245001932985352111110218479101740885733398135116828480058950642646931565527304415360737783471693925632880607739106801232634240018463698430715870907539851996623571570732028059504736884879840839306326866820202404195928920003229857372134080605912076220140201623633213447765336132294823548442221997362048763344536617740899152992688795144051294881631161058450812372085257372287562027917736465931645377319632757928348183804254396980093157352279175684063281549934687261047986676264773566425693077764279829559186145089862435255079049659119714402788269596722325058636482507460560723130428693106432415153819737997423610421097875681301349242340277597342111315591803894184032299809729695767739109192374944418821115413501396093141852119590481838792861757733929051582751690743141288113471969131082384073186196663405932408518007375799981268579491976094728707136994701150426391290841197772603487036990202653239031616974430496923935078477670919621025072767789417402401970023069681074407358569275047381668486389286303872883101761585019853077572900726964501708176085147345735357118179469948470910967565579377827607663482456586672430757497817828110818955277286509262910616916566723157110341916718015055637823968286335405350272099264427976682912710813368379741687401536831861290813553209545032897099574183024031858857978268152968882927503828013960706303460147507845934186924658295540973592602695717463089087738365339585490140103600943266562323473407345976745703480310142281918130705530430611137838337192060936651755365146321131873330352503731335361940489315398434444941210485728226330793989768316243978624227486142620486934744624219822852013453287475245014085942960859486354352947035364312968714574716316293947368264829114320864301348282484871277302082591125025287330483746897277607047159707310435967992242590947579256816240705649250453257133008386956772206795659829143137923299889973692493368362392480154999800410856201686030111497311390926618735008931031730767322510538563204893670284470566593476399449196102044652912671567883658563895670182085342401474503324730799695031133567276692364811416724601494577972426306857389939114300632834608871236901519830072944606954145211344137935718565421376759180042548443125766611987267039592503567947651993750148068859851802248858777700310889330120828818155802169032840240570336710480816907487711721856369411817369842081788239470371041922609466271393617951053228377558204152063629055399718103342862153536206687030256707956600783436110636043280003882432501863319233580116511308557223964156231573921235793720363670299432688727071379010897318197231022850697066327032027673688070233130305467941646351935534673408478745141000760283664278073578181132290870449063637115019920826446284766407208558976494914670925628733246429614651684750953148148752559032255436088492531739989762251441512548798679778404546402086161754374711577623846588444158795900422480699639890183054915621361871840775037979898070486460388943571261103243545965503689898362729326563547532579652580982221835741919788072142590738997089328777242496305908845466921716648512039845932797602914206272628485118754082802288269235889862489723869467081744622900127685683460707943826009513846325697182236734683078913435299224774449124172345450599665443376977761457069904011726443123107481449310113294525111290161118862313748870578992239088135839094407110428348956451651987435695921668141362340234743885916165503838808025508118064167336454823867557214383365632658334768569675617235284626430353623227215339775989555361994666465381008496582995109555879055109434972906856077429617274394272528460597466602512476999134773852087348226887434597909566374391766835984288834268375987571222284818196413072845929600714586733907523040641173246244238072944615474024106392144770986789144334047616492291458282651489240755332122540804739700448718827276099752794769399666217230138950862616244842224326431148796024460608261265053692751285253366813362771964873503076996440603689129087624237681841517867903972361245811147418192625884149892651959226285154186381518896117695659824169391930759198754930960676914451985578179228362400738842429372271670526913515040643189085166067976798947389813892212860641389504452652698415180739147950697629263375694361732928650895157779441061260593250009739290683053783970189642807742309906418351197219078532592145653988448281278763089297416807943910020776140650678580929286727187220393560439538444094474086329461308570995503052417140934260244288822789335404794232945560638706215509459383631889475077696811502341796169790586041637263421335513994216852393964223634529561151336766757566141459578743821487747990705263864774461530456836086044280309280389098436570657125101998311541706885394797262812757875314567525098457472549512092849620863835391697249756448372683556455829399098137805516787822564094765413777888863770070244166850324489987959817013948143723488918131621521813368827584042627269547042245112835167494123368021563515996017347038183318960867192735819611909390666227327204217670585978396147929900890924961981109630828340545991337575965872415511449538749054697104702889873578286056914234301595517900735364468924684256165270637698157648002341440843608025752329384731748632133878100065011824675807714892045093686344878910089220913668648310839992171323568460087728835667075305837782238525591301828401427824220188281995795610524854267035298427192563522605043254810255422802062617170309532558804318295592256501661717034748375126013272683679167159818337006909798902994676486780038892700451998782658184812651862919224281463929871754200368691722254506121977358685051937573131243409826307628606106653817267312464736455795829788484787162936745818804957393585808685153390995842434886177927221222904688627591848419000163784289766350734111096037107631802708739448889273463497851702837461466286786275278856375510006359931196886273341645052315701512494949144749437346764118546584760153663746909107283871012909063920359660084395921521307996725951890098152144770718047624266257411610805451889638576749286702073663429440533546015200555150138459643002398633749294125718228121800570138158661788815886131780395329426723308173895782041004060641619941273703884335255110549325303981885059327592324381175896923039519906162610555143873102203781928052824345798363663165231788481067767855452455368360486066201742704219120355122295137151763551101104004495230708783564057463918452869181655151408646316260143370020375105724255385309488225223220713256071098906458287892574073036257236413784298714878070922117690823765061460262432659230082693715284900242533385574794905129071889135011096882317097040364230773231790882638886058588653832713576644625374372508743759405906829833074577104034341665727433453949786035820330836978631422470372471956318072625273476356087588386788577760290808181642800994441254367142693046458052096573849845194405702640333012263782182135169855648700945974982903472480242867248008864836946305327332271181975790233659922130803945147063290729033336266296141406394285011052101550597245778551577845396299258884542063572647277656703121724321889178499860302625786803839796687752249200550219785768946927585959504345154190055585681644900448426222306468831781161118096118585972262964611361843891337307507776436878631958542857072672123897135880971745647845210113865811441528342255978825324013367896559175489880493824012099128114838110190867260827943988234476703898230652948510390634532198772491662073087622290110160061291484436478189449666957767487469784458795324702586516166076950877409902629509918919908694418150672300365053840654796120560171249650872210398850912937686557828007037238424715696474043183404059121192304613636484326713074966737825469916285637240831899511880117840969139574623813587731839946672322959037903901665665307437086050037856727204967868056880803637917914040629457840830876941615902199135892263491241503732453359440754776581956523266914547441988329329260751325598902569301564470739584356315584788787257744402297009317633741524986524543975593725149917611730586984360585545941419320092879275459704954748501821764876842330452854809773156429700959015889983611998180904363295120402928264984328681283444701235653942960718934883274421861711980491947753288589325187902722057033541806476747698085627114787684881970019898238379971413577875830002412510317833498114822826435817143713230083212243152075256290436377229031420736747767817885963337818630921509050377713340249613346156070388433687775967692779569661476646204192585030963518317186076291651579185169000270762301295149544475244170799457022925484347444962118313337126075964828270631990798720728869528899975739988580185432175957252043186516567333713135513899325366313385962448290344942995800577523818682942183647910688673652611592686415109233576611171947975270007568550096156471442214749797650125142604104302740354771409895508411333196701782492468153818283277255929547063470613017593096309611762441504775976577497197884341105224976953814741437389180931756429785289663292210092979866718379967351378905121484872687029134048589277053187249055163684784189140795426855771844014380507510445579773846899319406619759579840771920893704343180461732362285195367429448614346528221992308695163172163851224725536349451526528935283265169584304362621749365382513816995973814729922085744265587137492893217110622510605692304125520551534848867478314732220780180003629976277349557136587599391868017343887474309077087906017018615784272160822867049602255763258427016163859965875092617158426852226963673533750963141608298872920866557391683378079777721221778301839418335983970960854726284051687270176634966454197947409907372639590636034553299817624147693200815628110531898089103131696977181978866477352683468140587065178050185593297075649279861605721748831356352146576633426759781083153043520698181453992802366453023263024410285006296450189551512197950798232384068467271537697685903377024642583510052127422351099087475176123665628925931821252502970882104932927595080079781906103927350763956637201709808911742045641623513677568822973694823896129409502691093383116452466595782732601972933476704727682800297930700230322432548458109251098570711544475729156614926140477716803729779408019705421573143205557045533533194620210357770655781446922968815250053798614618641201654118997963917987260573428228672765485076745607388169751079288157442337917202911050086000554196358744867502632693028555769576130323191019423035424054629386707769873152525878154767162508463090632230145925811839023472490624256867256159219505879093634421356762356586865106626147135032741662857028589599329674175266996916738894093407691143691759925552216539153896220258134594760462772489119446842801896970354836772531568493058399659792010315451537372476473326723533402997609688435696429162741586689609828730738732133553071623071320643500502537693593651070543176438352333107548589364651025502644828361388452975781369122570907918053557798244977953082358587935742693014610180600802661771830379829031747854570735449250735198246657030937367129973809635455062245659468765757132184891323479042062537479445782525478690626570668512689747323251100504983307874004440556031825093092924377968067693130694534106816085083993736901855028698890265601792524530677892529758051019880444271408727346744333178443712364368750537665047502531719828234173126903001147193195701055406951770329109985334508285295169784120412632805495549331609240440635273750060757095485590992053131043312743891761331000969098325645239962924598252953898464612370941124307598460563001535997987304965246411193884733708317594686939479814222233789914625884941847557476512189363713959795757980373204681349613537626172737502212582437656436801114354375692618773110480761379875123790783308635707924061258029053166051740407881997632772574944384177110896830685353144875424177850733302199600447294859044360073849050494011854048020870430765439432371853274121589500249167867840154022168292626463168799169349566051797429538510315021810562336820796271503490783614407025881177540216494629136101980831020525538917002789406828597207131179416131005338855781017510494058597530284487317475095387473416536949261521037164311886901676626725338480161744508067436491047193278769138115937697574082433718157396363096860071819924433165766701248491941391981237631122522951288226305287001107107546169902436478330943834175957049981875144463102575422125890400001020848708770901834590100229835215657177832044420859998920573997553403245104485204152940378921187654420640902802694711705297587607853320936707033392544352456316060056376425770477880104842565103244967386924729811674363419407024699825492566644636525298052495126570729687815836286300507803901803053956987503362879251001633174309259204843778283250624822907965577312466095007094988382011456800674509960088580751801494891541813300463515257310330925542534318953270166304276527218870223764870447990359076530457585103649325765113803801892000916835083140600624914528076038111059151456754460793042640476497177873477891150002223072299651061957445889216425849711635295236499955680247788261526436340335041736813458341358130318449835276498445175160225047849109607910581049128401869291630441747092362858376861764485296471779334635683486941895002368386991349069109073401315442830790991926445373751079271855099365344986673063235681766571957450515598802122094807877926103024467330156231162237324261704841450297814602908400301102512502390437779886863654927659171448565743229359014604649046179870392926069188236510826174954115733050867454752058061522606257184948080190244377494171928010214177368804803869637602308309079706631084788897173108599072130899677700340933729308850350150596138803474936556248051222892691709590408522703037462486460115936874482957293265014620324099359903679720581720896343568285327810534235275347248865642594961117015674260507102097882171202264693260831605910585609442744587317508276694477804694410184729960505062155402245454277687036079380890585188420948417579078881018039021739829351437964789311559301945858472231324212094106898841955811990237161663960100887053550648697035176014864381680140904500504198894267310223095813159436287853999693559911616749314550247093613745004056857003379829933799991807415337254814628333073811296783257758447962187023300188414484474268668363791098287824260476279790327653286441191688608589161996462244384861994119699515809698012073233044641476007033141106664642513532218980162510027447041573883865653891381432946366491197461251259731666683663652530919358418967173238886756540357265537781994025718569892776535578636655255446311714445810535378890074554411834118466700558291697944358117920230357231370415810924959199634305273179892952162946873341238899148745493866215312005928456216849859706309727079451722040490532478306485949120318543442997785773780209394879867584098822788221459641157600015673502265764406527745051308202762523941062356957834375927699969855256698042632690971746583206895830924678734764668133711046866907667254705068202276504847725697960411677527626496852713531949206303276858731169195412368663535114477254762301425373756492581888574836722508401718888800267003450155352238223023226362000377110141902416249043883496578022495828201850932671017554165503322663316381743718858899021134619831612015303342278309982452342070609553521943022495657691414108475871335237647611745850177780069335905949628392594089672075269611152749001653483149761462485864243547573751643345380212245687777867924372781325822378116670767660693099000915606976355222392334540777585616149209618826698142893574608627289719264609876322409439556695475214123717173215541915303683713139515378062275120764966438076091884654793358524199389566033414799471147619466310839877006736562846620588626001542877246220749955619421362819933024352091669150680282484479898639289873058530016945700934941558306781559975615203193745198788564720980075292309178188265008745182095657013993686973080944638660036484566646687705392134102153033587027598236121740983960036502207201303541290694716607116008818698873153381121382686839388698065855626639464858450479218999306926000502769357748600636659942504017356760273366991822309515585295473760748605004312538344405084819833890958459993168644710874282920856329517592850658402410458398640745594913648224316834164497694920908809720615491379624975255735079259578609898205203505802709758780087338814433184202677889610922891142380550550115770751240727305194958655309340964696962558296569700432451511516576173976032246300099804722977534572799984803126670871835814563909095895283917734055779539472212809983944151293582885991696054912271715919045246755436892925857746439097829232996804127241516793473979578537399419004557346935441590764950060438279293506449951162772523049550688959154564193952658592258122098192260322185889073147673223101917538966049999799765951875827099332695093997021927795750113508080661800719381494444111591720018566157035579302525550454372888147291097983672010292740001305152234243946099159929170527940317352799412930009381333952982358695072638250087029580235414908727631292948298127577741585852072884490798650334521976648942780819835130443180561327382454760369756058758410770929982574072678771370523037225929133834809573314387832395046845721649236690240115015580395838268838473869946899281968904757650146100064383836959301348515286262614817172731362305672007225883754283697730764877044899344390201710693821962836100930664079844026333303262011554993549531154466480264859000591898279353479594652831413254417458490794372213612460291043247485278130324180080105048481319469546542624667865120291701821163887482551289886220814175480494583406064418049738220563625626389549166423327348261031816667759660467406180233208675811912062341318144116995497689489152169072169518548549741703423505811248465392095798980522476236776925623321399081725736047032282652267464357603482921390434881621147141102046031356230020520849021282870688148485004967880515513833622523383205690572689574248436604336863657350691282554193866058916230770380904045464710983228052821229446623616909065304666563816151023110558759396229149496309944988505624133397661476099013106439191354966003552925849503984253471231820417303409454717733248908260877343713862753099194498661337481704519505732649354744328717692705751257841628264569005556370360948975065354157994127349854630564034164527739178901058277924651797485786592724367851940582411342086344191422866473640860964062447430695482083218442514621897299323145867240762920399335963090085028542308930482580979184437885533910255795038934458173235097883230538581660680599816194818817697541206516251296023702560548512349228042430793734383328279225612762218958515162428238241102431801328902706582843698383999337418765975597044471178091101894816397642931960562640353316122273625143509391091691300100223433045153360950137487976008008343670847687461538569418159901366456993114306148654420598557864724223901853687447983895796916189724528676623995835592230970035769142854125865275418125716773186298819304979325323602683864289319969018251482537845889492343037265221153870862204716032784865682676675058535530249679151476704255975642282718116210110816314250110454321725086096427099889911345633772983255488428849481732214160226484637102108240045047673250938685995599541314331119632173714915759415541490247823594290662396499604036422744503344351326480135757670487787392977151369386010880400205608200952794886603697705226676621974089393181812591123135388429781873326694319171000580733590320976881745885122504762483492196185671930228636323416254335189712617251440687193816957364166448339977733952524143916181130906981479002271860183961601749582209875446754379944893854669019230736707583542415595873231892613969166023287422101831082972357092006565186295345708665345033580804285017532370089029752021418700642868482496811401173116294150735229138873858704665598350389747807259902335879428319562348626375979615362244585278834554961627429196489871491349282691688009370292129916568035963596651884704999726076125771153631973119442672079939839095360179694256240605922678615271349274019629367819366691018857363782132689810316704769427546437104379071221766369176235026304204163884541580510044458597316724739953014724627540385047809361760601464156155006686999989148072997183292686962840841071741418655106133920522300236751299835033841670124644260892584590536246410649179187077278645772530467048994515784283138879662292697866138930871852864347188863607622439747740890785325759824065202349587828541138952294548170703772665489669948184100002429202988522404762146025448637489643266273846082735287113450398645548188845324391974040063052211405689147080367293835129536956665951674962118721567878905721418759759718360281926945129264749801848310982248919310815957224629905266685331258536784776568001031467130706946343427630825661281574953814939078034409751586817885652371247178598706440338782860841588398269327549391435513626320225014388623298260629251156148138893694003470940019086772149546488812819688647529241823970926371867334489274852235952224020332827720692010462801122649878171084119011125385668478333978229106494646825173981960865073724462731923525004784615137272220428277331983394551413810102205875766515205819697925438493257622403814871551059861019587963010698688165889216200326605752901690403157029940233760349019436966058427476718358761218790885223149542487901530424473899308269425729902936331774626258702891314887839986554877219992650484138828863080004096694675041880916337970513352488338795805322564780354134000572340787302396611946677421798163801081979464820119139849277315967771582198047085838136497151460985048598793304552098069912402472810254623989036446766628071635394208356702087851499044448031454353593000849659110779080378364988264468902611950490716330075817007046475797864113206389228035923632479887676010149181142453388145729691918349089858880949232351231978105764632647000046910980326295876661218894463623260518961819190479806459231364291255814725524252783904134194599713949214339025573655364486345357326181867789211941856451920041384927132800786162780677991648552070601156227283221924790007262780599091325250072939130474881125130761100018933683810597186273691209965484937818769536535556957254726678990097557311132244247578280725511081562601213567232973462400299331297627023195683754754513180601506999697294431632193067695878816907440559542083072578477193489721695337697552334316298604735778517093976305074277190083752504811307799695790090478945172218248941069225170772659773586806257226207254111258053710184532113637725187312666112091610736153729124280451286891686575111047710155396139226166750845758074100112718838351837811588263080384243414710383750020603178167276325145898550205180045568873192818996191642125224130295268826903287189223329403112438240319160053004742208015963046909811010239648176586049803229219765299603909559803897525783032083925235004452367702579273679839731794765785286526558314358763053543949645672102474356049937491855758182355319541082282851157364135308964983752682427118696438842775327363579851049204140412792422304803159454126759332357727237367563466055661057441602181277251529867008279146133306455584257910446292679000294439372884191634774844141524062433259590335151277489050619400771208392934766837239427358563660195190597569144093005191933395242299088386614039211943497853621306297550010582122460580806400292338120663974295585528360226021673416042678612854055061173705510450320382798470838297552550446662530965327373461769006399571329459085401114690628552327883657197088874839808612974251996194453076034106420282857656701352530281654374821799731097792453088224604934009302409516931498221001912409799862674128896048727958539363412138409129348842761613790064635516830203043937650879782010226269007942715379295716909192163804877859998446204975175842849601921142262379726511293717385773562429127877843964804391710110912756203059964122967645636583975167017569711903975389249030089757327277029135364167575934705259719430552955774616547314282415554599942970083993943001156762754622420242610828750540908888339473224246251572423853765450085019701455458182181235568503733830940990362484759586365922608774756018101428180651555977007423045496497499821523496472150197807032812672438686711994498174413156970706801582206116767765558848353082207826900852439751546413847287294310978436317906469270495278195660873916725670820783089896098604648273808433543427935361322919263295685056439711582597171016798764555236163863991157934663597035669379137672659736222561843356717074483884498842038517288949217375134481355687448905318735801303869811828604610076860029327800095341307414847987419750709373670690298797519662493876455551535597004610482571713103258561137812251983882552722242834908624512575574114200582038541290018563615655588239642102594766948641076501530141801111524780460069279491652096098760937911986239224223891880025944912980050059148414699717901272418454588458114425527300057971643745382477656251141821802729003223746626139177701507403205103957088450034147348777227562979489583488733377824988526647171932223330239802737900696471840951802675655143191370921992217257446535527557640533376961672524701370103128164057819081221643882004669037991187877637997266808057341712212989671047387660208026377431939592640683343183107387841883333936167421866774661881144944537810514356388846289077458219241508871657783843810119872212728619488638797069426915346382009416827946411175764395215265537823363971467205030635210164866024239337962315009282829635572168509439819367694691435860430669278695696703803635571482936223511524235119392630994312459773572874388466089359161001064667061443920002790236339999760337800132085494544330259281139291447181995184186150045436921124894955383906452524209631998383665867843627583372844390775715137587939123707033959867193540039267377404422329163759493893842559435356299496553990178637367617413291253223276510265096446929256455704714638324838926650066210083856731720468935322990774983422086724339636558453274655613280782114635502841151693347319797036774883636098191530325124169972151202272277209021848994271045655078852238246421995094492961686509471850390069479468801043620530815732740343730650808074728809811702311859176381428017129454579720156755300148560413509447239135152097850347283690555924597926692913823718235487358847228060851117014035825021136602514671527605050813258932498288164345967448372536444632378402490474789566214911352278542219053766974871002401842286448558907362402064551961058599683316650228726446025614836973461327861397428138198964828321884729286778140634491074549226000469986428257165230631179826776202328743544449230248700253912416677941823932100909103049046607212630846949457644081413266197348954863001049340711363341916921120228651066790087392315996033950987492553301850069765831249843800527735696327619285094160079918663088043071679329084194568286617289618884027856016470915982505438423750728791758305735883232178656968669799179689295990241574641314329647170424000276466497660994707838448958993947876069968721279428508074482105625371658294653063697238013666801103779560046299876603863272545008549031406716903839930950770166279002912220307226485195124570353311553204780902367320373480399466209628634698434346236700696569223433719958238759234312053854484591404365895070330683761030750205156444170990587507783592611030221309706896689062857248371888032117968807607134162070357701044750834246524569689700000184888678566457614597894321656216864012379463518381766430002243091296084781192609807347818955501935632613685883644536637582855970413381218570441470141960520413652099417480443249341362744636346383386236847912625810251138905213589363769664092663575940883424871482307807881567317934676576162823993091119710618100097568161002277069819540524268259752638242269978339450693533628179251525901303433463326744787904844192493482719691182191402965662340459797567017255665410511848838163446735007032752448713729231247803771054290022166691850380844516013017481706611111083896884489882109867475253448752769817939638502952536910343773326872761701726949678175117868603448561569907900089652946955611920850358225642868077357599853628479478888293365686763759502142854438385823475009303189229146207428591471701317384678686815094853931685731826185132782188869498893693129703648333046360618981540815856574144224015776581612951305602213330190390125165381068956454349152355601611267145350115290017736692826541362350004570248384233418349922553522783268825183091603154235077879163359254980417745130810324413475830095631653342651755543003422495144763693117281680610604783383257210269496691052665387004659944134721701763053693804714617561396646325319277542723114084265933788726523928786043997070324234375691005268118236032081919452273134988075585178222311526168389384041848218099599132313957081702281405902089190773115479082883845198683737795593772710334127072986036919431929490289836952727426888111463060932872910349125622036523650310309111952430630830347605546197323455785636701523238573840130051933990541957768855341418857525393702848776751925093843797527422836738795032372792844515583114404870489631025179479877621249064409020142950312713430799068994401768345785227370073538942826055627869443804910576759045751389506671830164943765850495774255796184191077066530160402095472410401793972337667662517287318668964411078268753458375157399668033674377990887336587370802729453102403661350998171957452847552322511080742423543137987358144080377916754496605315736003610585629775792746172633014263503522000984808089504930135976044581746555066309330962286414816588148765167718467935527528986768579430285272391231574036516134405383930127040388973952432436684518286002256432934214015556602724671765045273867683256442917708997440719477443807752376500094682964809684898611761343347446094454975854971748682376478706114287528474599814717508470058498512899959523754559444896984728146100558170230549780990247732159876161772352768257496323768530857306199137141236823280388074147617603060673600499180306280920940946427207058077978872750750405796809796781024222091090627236189771457160166022381179504662620464745224381683410541284274852236672497502989257330979575355543466736266019057414497295853702696925138834537322264258609893734057475106874498675456812740102603204569706840499305976657769641770733768171498735407544166635990230883779471403087068266676226304031916980920742302973450286153050954194238272393776338431026370491439480929485578929845793703571548230702600883702140209191217953755885410521175071918868077728758789169214235942576965271015614901918379956678185249339882837770154466923943294146940015230382756985887876974947868856723434220423282727644006345963827927642994092642148730538775232375106609322140673849116284586127833383546257159931455028514731319326991576653456139584689372243066598206206901466129435554138897224568962244454546770879652522167854688650996832413827950128911534006868643755100056733097813046326729876053941059670891156704984017397608404293366896001092992262775553989745486190555686740637055081920190228778271900642659124536496617209246045769670850357735432472791076696490644850592258214392377429116126690846335852445509964301380941196765435482642963954102339146456490536721167991611903345558702694692060609749029754935680083589940482946606652416936321397401833891340496073946100298728790015590899534550382516476604232814503784157779255980203192865245842599844637738285350989504455791976565411668580026831994229984195295103566740667401319783763863501403974143254513182675047543453626621584589137732868356748821034439612276692919757981664113160363757471425294201141070457811631492299301854905337976321046156484336202240479023913603644512165709760772413174436344611995325677328084560946203532506632914539349033581912500814965370990877432321303762595109671719614437487229052263737406996144228304309618798550280861527399333656951024533470435119270275025240269102587735668989783810838792622027385748057933393222153496238397947904308276799793574176443025583175145361952182354590054958682253826115312013772409696468127613947794575467640046298715599666118104423305293985269065022906492201218977543343409379139587827532628932932421290502262163264154276751195180590299934481499136330352361729072185031530873127941529546847020243035107003821163352740840679872986653743629230798720011765644765721730409271944075506293314599596623915535196298104350207830943934704030969238433833045009618954355558260102161582047745555959464130419684985235345081134371477694797787035437151613881819441732063793020252122844004438585768277233997398850660554709242977106232470116612182817348708917881495144972202831970621589336399334314951736569140403202214023108765597507643169233822049461639620330090042818121186136826367893964707888593370571311765893160724835660770525785263374607131915152234242196360414076291679157690029575759437704947082420867974533748265561401148953037270057141670675129238823240703128912287451751205123256118086164541372876773878787827738694740529648106470375131152311149717397958414800300257773635928205737215053067174720763352972458362440477356415986616194127827669155181060294280259128262719654928366985984357432418965975483244072009725014659869285141335564486583424587255776256668686225924037612845743543695416059159016545975077954366206281061211686011263044071226573556801447943340079654728376064486735474487068775611276354250755416925430550023963339576197327942813513018367782747932399399373473365818884398472866640447954646103523881405536068905054267966520182526244090346580047546982579079708524913794180881174841039565292424717371949675022143937780139563136753002922836772826702559504318883799595369327245209878078361018739655868332581941677442140745567680043989156860546362646453886641817610123869817061818349973291762769633023532894028712940692678277833210981399031496114808630324963876637084885798040032700846910930168609026703059135824037147106495626432753823731289947697232456200433904025873712127152891619212892701615401819997764223441155022647388042953706504847503416941260605200689383085443758555999883220395850916891506923735430927502048941328451166613958035432428032491410590596215431913065114358252259774061607315700744668504967400619349374893742218318817876215026054747548835102769365207851921511329909872470237301113628451254380844177808215989610943726379615081678550612398216400324669409544499122178590980102247003885273042321478950566313802160851338053125442954882260999422951325419769790910066255949996255674223852742732240347769217380011058335343271813593238890155891176428565245868308342839659127382060882750004672384197537762589825874754642723829715743313024265495391245203725338249491882028588543133177316372438833364664041417473526031639818683232034340193712143380225016633366531494344721444116957672674822175721399609635870222212951844648762933560090344713031496723901026755864355503611919197643549301336215488219040101954339262284390915577326493841543615554112602329527258024316433361764782386120004103269982121266525920076381525545713027705667145127512920116363466367204570439021700556996196125666527906161164797405919583696207308661319128608916115958627478278532208830493169023307775547965423961580589086496123690508300242707154710151180120139228959563555812457581877925019252702700849566114571287975006505466586611338008826709511820822529887459388390366942255323081948943576166217550141314630530583224204942671823021616415167618266909991179557803391079568061753790600805644442798674606217343040406967064416085186286306997751807595735924053258499211412848021944609588625964023615738385480449713275994137478256119375077772929625959832194761917482258857345811596581831969751920115282787715125397283558510193392214120568952628316017553854965468138990471860213310190792047527291587095275073950596206673241092551686119380775864800957932708169099784068659892919639986521694056216628111204410822732769231365599029930538125605169850685746587064843052145360869672669239365493329865738735190565082347862288145070261788761998949781114175525520625704519758208056702198428990046852100169113261200452965025375026411142868442496531850421538979532903277162620127602560869946292433806552446387185574452466720177898970083549687173859283974767555595568167420506530926095057193839866887802311538659609952655961999604942534341087105704984266893708733090120757393525356722482059457474109370082882023778024034968743370125982131634599948481463789546388988030361153218655484130438414673890602624114765335031356296962085839696398285461197014474124871988754408141758305493474520361961379081379733590762673323958119914705059738120511680327901915206815810779819470139084544963729442926642637010658550364580254694450174665903187394525776465017466180517077584742265349395721517416895996252419706717689923214567466250596151318903976465351967445600683498392070389522022502598033049918563979019710089964129553920345856332520385583524248430051898410982420142412752370683185512844803914101472096051554748013428135922252611615911279394821428807592313712038457723727077256765151969842947120119547431171400138191947599196578570805502210195017168261329188860879270285910708144566669234902609406610526475879286648207981951146832789454324499555669683788311752320155422571789665114258717141664675592024133546952913860311293977760528630241277415511063820199416779502500463951698846187559501116324782358106404208332595799059979158394161360660460867821709099579605179655141498034987878700104256104519799413854547524205074584877169465945847423597551890657541813613223010333661156486507912078100113825973700201564729374423413564598663446511149820888607705345821120984711242837103014937395665546320842293719468168197052281916325807899349316181792053007216535276586182740109834083598387337778522759472629123252807990381213080112980246701003060646959086812249616096858976722840530337545265537284641998956454131768225896987731684135078610091955217062781013469974238158233394494250046387272124764985275114481101063990444219374534137382059103970134023165014107917512772592633240369938405714388705146833826779883046660956005527758776847797284822439793391035172942572846574756964936304780796684216662740316930982961797448321571153023766533038144647134092205385218482164450276164490063211619201238317550185185165863793702558561932247744585943031546034399032314859578744888199296338614039553937995489601668938368353663370514147687520099869193056295715314966143828254698163668763326083311405373266255575075989545778606150607633098523579729105684547982084640568546461044248577184538340948867091505518840380926198578374888300723878735862003681772978540388043572155109664792656693604283601650910164379949949368707017930168093298121418894222814237867577160004910993187623179615133700854970774394850821256989038642802488879642863650721922899736102875036433481044042279869258169143454077917863906486595145839281250997590228792897667489865926708580505130119296972496852259235239025322594690807038859577888840344800937777353780481463803863189716035384941837654001456956585352472006510544584350159308771672035683215511081025070999339988008476184416788486152542083629251666138424205412257042144823096865966683847378112437378444009251725099500604023118684464552886742314989479215606321224709633580772687857832337163758267257529448438883616548507705308212695194779775327281863436047640178952827030861230519360311055226015754883371520853697609064271651975715746938502189014882476293586580822724410492795437012632571711887343793772900153556299173394702255250126670654514416342499526361937092351840703142720911689556956556541551429008287481236123438461469574309558068603206477326391053284058150094677969133756468057635429794645215399537128942604615535108011137780292474935336487483734973171545871198153977679855089826678365020085145803645301368741674526895882400079888215458260139991635906302230699877117827861960542896461887458196141803462934691735045770977533979394056342806327862097477566717675658770468539110557701551180299554826765666797760508055704237262464851859288244082833775332240742206971494390487935469476177306656281271050053676611113776655606086237454627332882119344422969545281937915044160265743094862040267536540978927741434474108464754912218679983483603006445908188575999955498954421330105443419265221395004745129665815992063056544745477838092618041989146602311992048977047357412860998753737325217323007096482022303640291830750961938428233200567901000997340332530018314794266379616104872567782589903226834474991895150073455599133707933462690103017670621566576846396238523613843584330402908785505500243747588091104407036305216364320448610088804224984007659737786804348888981585744555732726194077231290812907692361531725962822067949746733482582679608277943252582201537455700884377986843954388476236672799658726429261276183668120584834062518428818465510892850940713513052224476872070958934517326525002883064395945641698436041667662720675875560988226569488840777628067731520603267597837033915053666035655554666216002846772460099852768219565948882177536801224769265555286420620111796276214884148478722317697988910685969533385175440344064904107255128919505106927384801805934101736139371320216253164755836397778470681503869107573433025607660113135830123956926488582739789179922308340765806055520427285781184520663477511601763898695115063617232073532493045398550223880418566490752090485969094598935438434489680047869907714429561206082983114866143581699212637583574923434147079506189874627219606811523427114134495384226648643293597377731415858973131012480671460007915428652471709556081363645587597766026929308057607489916723329861799994161877768743709298980950927037247290360036778956308452277503508097975206401958519787119474791559301927780596766264430662183171765237550987269174451507498392937418535082808521824352386414896191468587728593120061106790180498785139503976711193791008890406194758942498556852092308638305034863789570925780282410742548980418619992113004024237120433876263226255099489535962637542498617932330650894305027435173938203059489051680758806213019879629730932358430727962151879404489249106577466427615837410201542302822415536288225564706191940939708877449206738710353579738569731358217223521612031934708788979956290102476238595743434053255635925891088898670976407111380285895958321855694533790229412314468097268928669164921041832175394731540166851270381700865079980536412353737777530946804074463563062548662935274891730550876159264656431674793499269917615978909186462157096328769314314097025246322482087335527961280839490132906943140801614352467338187908118282942116444657524599357569122576083998357558837901802061682505837001669943635487578244765305865279886778614568962948171313376012768246557143814066511042619558987239430575730812145680706986418472854718909875972954209824982358357942698460829239246705599638903824259457504731532059365835787749539923348246970070010392007800553497511204293274036126441319433860047264891380291482873887749478091650668388168428605481780558791245269296789118577350799547419696759736639772211525497874538505000084069783556456056508226616954036344092728446436273309296404116017165243933992632479235085054414060817916060837770624990725182287618537460998797074917638574340569031828349212300719547422050235517561996866541528193077563843007036809652588292832952306693946592789560309361476472867491786578799471853751576940871549003760809359630168695743357329264796876012845842662282262260568189464212522767831924693432986891986462411435612440614717566561397646209245547228843927036141772554606905231843184200232682086780459529103206877045129196416244093355620502034296704764319485227824060461966419551510138374494661307230837278104075437304208917784206466912867369506633867639862296081803687168046012476114520020648512383331446382159076601394106240161593844593649864145628319450781242075039776646180777522500440680131228683892290020532001633692181092446442039552196303030475433229206590769053517527661026123636054854923427821042323967931520917421868984374469398196542060876218488962587349783902471863800799908109492524585262939529518948035088060428877767118254016792279745184151631361085728129162656070833311630847200703648886808122133885648171902832752719933214697875974059522026688075435777343379538104980379823195437720531539306239021193473025506545580510560191768002286079955723480473047248813875421767885653888444744869501499902854119565002557583665999797152961485666641888612899965725039559879255269143228683680918405411770393214913762713480681867636438476792761995650879720767891589752449669315242217733233703508622667758800683082031177702746673085862993449446653338490708925179009402432476339652416311829808962238451584305943960818946064812421474387169137598957888411713218057981926997215754288968035973960200619281441112613155507760334049334151063399687228914671211905779178707713591172366011610974166486880488997097792354540123855827002706825825197947977967736684093755227870055730351028554990504571581540696019392467726143796093506323853071200943750687969731609745307349230554352586319716588856588498040471314853206179763014427588494776971039285740167084248840023349810686837170675059165995727044132389861621263842314477640923709420395135586199722626119984795388399993733566827610377059660888487519892847581548191798211368769529367198429991553567834440722537650506830048739557123720861739725206260928381872317458213541001554535261519729495035754564475657732410742869946796330371329699386548163905288464541378442931766691530832836928847661902648975643191440239405202730255829259544999819415182805145567740882830551990829899511526455098113735387904278950278312092724226679702340221390405182702510382834875539663746056252108657491360386575505925210201084320267916118890093332317879091241199730501681984629673569574934175817480783862862005202796558782554314286622639357391891931953197326024872919922278977889179268691367885272559547725756615745198929634010356749343960945088280475226277768938165219418646270496655984252784001918973604252125186798391485135594229829481216134598400664313190809880602752429551441574005992230476172216713771486092845365467396167593238406053890006278930113274702603041208105086921636488151356669296302030050627577808704688004953142344433508263601515211913005937255190062021010173963058427568819658905484956138695808727425991365423767712135250796435071537967485553337187908208978190537671062487515889704279381632538961997405070864704568466379741114138607219526620263892400744425311922352378181748981291512492869457139587288005858868153675194954228058707511658957130459903854508725211638389545908993583805525767057867354441600410018852203877599577622172011924500748271915499397621774050375012701229861739640981616859869592495477567304347593208694430056621109765861037726190829152115298207603185421527276845557269507673873928994952999985731350234262560823565794254955363756523299238449239283231732425103708322763433394012658378813201599745582317857865453739945012398952388591718505170645677182809105575045539115060312024184876185634814216159336905795003812268640301193887198960576122605406590652103102217840335430529882151460468580782563143774160412853763024500979858333921199036885124870896377402597132738731346007750237046992142173964689424164626330894635415154609166744423556117082135658525065759341140873193179492671831809973146422173752995940970011633104214683493030730704440911107640795149469015146895390606024392915156486640279281492836745333634412108987223444628445804502775610842297730367473672364647315663038670844931973438416940971755550577108583259802332401398462395690414036168610615900483269144012570479002663974958088355849976078148303015613483854394124276061544695780736568363540632432168374639293739437061167821412177380805801713057040445863280285053270457409981777339199551863475876052749992933080608553779444615501885206268374385117482711151894225565003241771399935626888746416174028628883077960218322622599057836792981036055714199946664862843806667101716007861546266501798427464624757172192403842227946340001364513155878095119836016878852822334518216762137862290243224706136224992416338314071317551302439342722480754342380106751819542455915267938181329372345500500619399304104117934988253382897793287236849580965750186031598247594175121871455321212620781356644053257859080425502252305356428667080559007950064684975966431443773155836909908640083756662820305547154690637593588061175560034885337185694356395275911276770832124153651330337810144418604332070238599175725188096501130353589302890914397762790907272567984937686427095671579840251186338717516558355913032790268084899647818497716202899360097360668986623832235287745098312573520343020310054530404293860923205488876880400252830620279159528891139433480905740327218562881094416696828909482467304450986379449455602494896352353634029746950173056018792240428323750882393106284693780761772801168245889003056787337726642586844896573568840562564901324714454173192351532781042400677999097299328186654107372550390466528948002193920093250236273308678905854587687355899537551574573236517424013529275845099296652165471623975450098753891014232087536839870488479027197103433258539864184198234852660337866920129981799034772969344747283824282730837188896819056610688132616617027482965983978656442437149912050737173963930877409555293581775354101862974617243494593377203150405878905199139269582219916169411770430126840824113092455095760535601133893734414643480212395926574957699218491452708806407016219216560373203161346867843138304968631350709897345965886675773448190328743319527839061356467097081691640650962883244454201396235890729928518705143912934765396097923019778461940229267562580035580715038325088245847861513984038527506335732297495638687603852087510658914641857523783765676015442348847555453049709334424703865500930559172341087680874916001478288017950883491837647866275038902865797341874880212897972036094695995071071258483556789062079496256949962855609665224822767786941881930949187822974325915621998158743699475918680468147389796349232129738357974940548584739161207035356632274913479518705033714494465942733632956374933388469900634594456507789116847342567254965108276954670980071677797825594970088902951484041976111742897121208466187400798831542543893307139690112957748185759296083641850849068072335417960072242970068731842367086320497810835253905202074978490053756527399079472347908935816996588026916777336077925357234930150839475546037035393178876420702778778925516806659661836818925089961293136122896236389959615307630287801353755523211574061851896884061620319508889278842082141901386364918623823775721704839613802755774327634743459088069544680418873038531841568570954670866281638852670344516975900061646396638066438731540484217661066525078756518119586667267835335468584866976921951038031204761493401210729555998640998348293821177250585088849933083653679008092346748464107844668395665916955449864371692900526212556964352331743574097948337090486065132904435398508913932405600127446698153700108989621994388621822232571293245542557647640530015733126463659250835528654889075564232293576769287546037182634282736471108966029015266231018587359005669378605734301534230326351507875446772773307665097015414175648910684658714241640305132210135231622923071253848676474101342238029672018826150292845938212423267896077094197461410240055422330448683838305664864746865203788731233292942878088455801711584952267802991810403262115903021830339975031567356463654307785549760551525537200482448672320203528484234663558462424048911071512908474351949210000059438122538521004489230328396042076077503879075388970607402612688429157058754253139777726018691081311364652997823914184682359337605684108187184809581863744498229708315000229288425192290160558373570044098266352832971780442905442796236191793627013748112473622416395879020199246035453981271806819494642193281866502514310528301347680975553003260380495682737016858882488030618897920695946876095386672321179316033965290879906384239171385193883168887542541401761662241793235498218313281065163041414407555529542613987775846560555139168514086889531149202870670762428239061902333695397131057121502361988335028661036691924829373642338181450693771550209254254860724820428250374296687348200721356173782773739397856622070931919146771594780340892253760357444370715418321423355396434412790966452301891057470573950186854872707068706695864410527399378819951511133262869335460327964793257848530290847184892345964967483393102319836234239526403274572603293948442041127296650256790501263596676280740759435212659712607285038579861497177138682067906512816326487095826864152159451510396354309312829456535454019003380450985712077391581003177382669573127874981599422093925563471793943040942458330699959852945064204149644067158402771676343403065942769668380832521501302762283644006324670976049717955477918506860142128992635818472635326796355839306552308458650497638797095127029298671232993851314874335442052528674833172761940950311087362101848075768929956760484112960638081314710823218155120040625630915765056407077120883163202622585527083118961863004362179118263925029377163559765679614615646592817356985918853165091637532891614199096511742521231381114049344393468265764649273318715523637824250595018409879217119422544419913328205345924975895259496469931602897235783841521182352544968692256085178535503833169154557268966970500746430283580534965020316070397880148548872263308352511629618719310859586981868667121617885342709498863668439597518068426132559098801459037027704290437278961010261191309199436137247772956707353978517459944674037302399398127008111136020964534885986264325786658327908868795791388505372064924891186863062660622009420228735352576572069982595894498304559122099871087455157382620812667765151763701276409352287865150877425135859641309343506800845725644566670357899247458385903147031250959028384496990344014344131351823407466542199793221254438749060916201474260990988820089153874023501097694105828633855709598236204307965378241290460588060192662940614702685597990318340104867099774917599070905428928527394488647314510962444928656252101684864018483885460677794526498290556619370950494939242414583053344683279734725338750353722008109224740395085073566739484556715316161447778217796377415906735038176179194064120892303280387559122522833209928501126732699445400976657996823632695087041630094324996416966101096538394827934781657684730340519796760936558190078428183849073175979072210527525899551273875436749712810962283635788275768573713295995756910621275097360722573303387884227749963176861148351539725175400145128662240710577018000091610715737189520690118326182053154962552154040824244917313246671413241409945977571603554352876781718541478120432320921906574258083932194189978093213724750720946812938390961503392361985116089459938042659950027182196638328641909567487466166920677053373662806576093793226855489278764380880335599671393000053630925606138173759588637410233757879290883668111423090723510270181187855733193321828867018462486265318855951984814543899492495690398750163756191601082644440470607167502922832542664118882177530814931698364728380762211565511807130541358295513153061149147783027855030623449299829609033494094124300779206106063704931563409092311476360072779632335210790280063663277532924948140054430758981384265952449707940602139080665754517606406377751438928677445465828870875019722099877368638489644462998484586893546476471360764306987651061448930951705282022075928248602246785242036489867080717582440817201844340256954990131034149162902114812158458578515468794290445252644287749624227063892155844449420210354591523408415206066302699066999080577640278458859934530557704822999871674188519757303630172529715360565810723635294677171333604179098505670389474623142770882487803255786118675265421212882264252928865204339600091623860601194061580286901141047023206609656202084439830122294542012988068805384874087390258239442965731839240615487376233355894903421523599808190698630710864043910366667522212061386398509328719655619986695259948279720536678317390664596676719161127760506194173717729114073124880280050125355010215708909082749974505624844709739691623789580019850005431611396143115306465284751816555577987780186474550181601721967060497469101303313791086178250411324989623393858264198304160763614628286847862688040620563619581929534281414189738427010377470452595395839420151640154350861664960150079308721340675149854704012835963771844536511840604699212831653409892648479162102688025931077803479087362736389180964233123008295092915363202491348990512226675492807872992958687496524843938731894535403592098551294503526270153842150303629870992767443998354243236277648634546716429303685988616763432559428127731852345312037800053136010219741412092864870682674813557918090664069540769772264797642666317173697405711266836637605745861434438668362005212133434447919039504079093273280292771720594264198121627679136024377879292837449542126296022976584573108987212856533608280743020923449024817741249274526916778274291195543291145415670343194393060455456083716760010125886352846460307309099657873991180583120894290918859116835055112209109993559395533939947066740499697127766854079796385728378619492583396434016983254709422275606112895887449213090279407626477185363392419783073755824696725947542798104763318299764071111421922935208592770558185810603856791382767896285822623351866106994852269345190148226065657540118847118529468578956818812276339844540798360037167674877960280502501153773577223662405003224626038336995403822815181571261344542260826135686928866466376328763345103915724719144274533690078526858208827055009720924718682595788240409715657567833606666050848845410096558794152209012849727186500942351534412235770310541743068253523451617381496942146539627966548224574409295993110516670773327884329383002021547739064099754982287841326618541645750478655350306148414435500203344206424821374071910094437742047963992610420363276226953391765997779798804274242313336287150015335002595290436236077466652760489955119982609953673350737550871482714017819232855666605177052987046928596203048651508821069643030579426257847837546561845510645061012442582342170976412995386137738403629137133910952275547872857410373742077114995108507645479214833159347867012106266480190366956984698540378148389247976998792111913217327096382461808183710615398402569641387196915649126273971344950487603434978352581636512855060006120897861355703788319655033551651990210210582733047308668654634538173817052398905842444670391966261817785389343009140007386611805979065173734015848447208630766825708865328453235224248650979901005170406260012708536063425317170711687438591128760008136061874584078312850614032977828898580630042111252525767797086294131738187038396902385873075366751000405321329135280488173579373350585249126317956205940665183983324712162114937486395463967816066547575524551678256298000599654525173122575959875809453586792324011735919833702481672122681649857109757583099179449475398705082410488825091946108113269811314664454455966211181017912002292416354686112949069068496422810624386272378395853808699730023662978594376732428849764147138263134870509693802435232298247618569611725525589422637771279193694828152602870132372943782454690531537536231332314309678276741571438988372401611205689663522959759067909673424482044828975788764397495100643062396480687156881586080459773825199382783591911520986370281778939629883658246835052396946604959010337182231817233166586330477057564623999183473983978651357414629050594584904127300392088275365565883431228082142588141814949173194939378305082928031091926892969951372537237909736254280867256006608252469867955776725238388995348132247978389026561756419739250819565684465961375431535303364339938209971032330821822867954300783166711106496700241348882552511057164852220211057732799933913253893763024141328027954589033473776537430209318048183955614162630294168651608853233486975842141835095023236200559555108635267339928351907229188909072143693201408193921557936517209139854349169266050566247936874789440396507411567707006465768945403510463824516299646706237949488659641102467045944029548539401285823135860193016749257184268758900029353544493928025761500324417332133831123474915141725574421224297224444126543667520253521767218792504157446565379408490216053134825863968847795315058696501332632537208883437495951456022355912584284702014198664560629441043883861974391045260902902016490704763586283439553121504189345242767708543003106622383485044727359451522922547747639608305012021359296862741805604016063516814819394329384478035957252887353440355944262048921064583803463749211371881933733739340336125152118724873708424554186481053301593753843986716036524746416594582909815832043162713454346278516321767332535494296023428341164804326371437893360195558044924918945506734334574297189513306770906735425481002956457430324833394688654816839401055761288898344102997438492969023289710678068427154366171057701302846075480559312715345503659471331308430764587712263408445242576889587222167234548713040422755269731757533532024476519232912881113513097539860110862171084021464952866103582397319099230677738419169844905601376064043841154061856985496937203969215309562391331548505158027739921476954647575318893253994335446031776976993743923929351812301272360591393398467359042409354794100284042702753086240295913981074885052269344909295693000447628598497456813488989761473689100617866372504215950794291797523154901091036545924549288146319364329593132329326843879718075339334135878121299700108441226553238537179372000733414748175309784064926319638837739601551049726795465284678603605102048299793627755347390527460837789351178174012414125204104187149970133467612358543633908355705073107603689390601993484193460374092345067721392947695017165753865665247759649414375979840270245624009544675092082048520975430033302502553970323983241098701994247311992814409964756278864877616781846743974514448032057154267980162215377228085156553893708105329052393861859176692080123495481420722383452797194782836893870280612274945112014701547128703272862865950926678158180601012204785868213114018578824657609863118309636276650197893869464348765258373017051489565122727591504563109145053916003112760727152711978594395974490182292727103941466318402711141994843784807176444725564540191136358794973737207231272201425309077347167048683442276822414234782791462387887657155583159805370645213387655978780389812222024922484459793739412169143821139897283065594970490582287092771698955001704457568234956151659883472186774476890510381471433811636244746492713994192070836722741857826172044668242472120987473386311903457945621444605165892103318899396291263863779276476511862754616426192051627908944381728698918474897741837471567848087468689188345323973435647344734364543837323270275067282660834131715863233691866946187624627909484146269160445213545099950898609191342079192900530519125562347580811398571227497726520336422392457554483680392904876691627466619174737785323996799306385602949261308865255575163882713559038515937876083006775741007927645133309218829532512503314355276551065681289835108804735206552195114424654735488770538933797156838095070861634491882364839390911483073529423501572043170242089068159581894177519476477231683505131455485415197783531871370596396293791849968227177028752754186426560915223580294294925124180324340224935477129863932021241878397678501445463394288385383365652309294823950441305076444513585198437555578515941918840107600665421225215733991278932428954689376693008318321086768667735275542943963935330585627510351537888797488820194035176671781621574552949900525175079330079456946751016021987152504725401886367763061837355510271465907284143612341341321075882409311619087278504754804731334969638308391271805541854868450848556186038899317578357853365631102661879810719991216221468585081878100177321253576553261782175582257339718337981767109119173089793325050334496343761951548671887823392650352894287081598424586261860986000616132430920419204431606541165923921387216907000974390620711435522131686641606932897639178892741768241453170703353124539093478489981265666671176964329899493134624522442380980588786540783121754019675977003724563969445862210254231271045453655376727669521599834893975085021533691467762101272220150579080156109280430768206071041022806666043838639967904700687749886283094772334135245590467220632542330381146910799632548487730855343269559755172952421290034667150698869477622591656132393202537955208456193225547250287714268573696553451694990240872403591616503676498956473410464150702649172763732561217159888471668442157043274533759876990974141198915163234445131395220272193482639569362102141988850034183593810404606742277883804316973551053135692623149958115134857005459568269294719126017140231088671646942775034449970225560744902630390049105556693744973663863472942319537606590464828102836413957507596846768724138392326693428392188162414245783308993127987796018313710148526655600936471668513976192308792597456306952793420429071387697870385584478865480769820924059899828231186000730122439699737362573413112778307961399996217355356125496350249151761929910389694906106270128168979927545522377041066899752394098218385669202921852499390493543165657467623886446934808285904139213896949562953606955672046536804316471049475069886315584328101487801432755101511843473803588941959296085585848472363008010152657645794372099686573621619177528768136661363983133000169214006760435469069939664555409091198006773762711426035899453112871635612440890774786814586175771886578144282637347453533070521957254226446798498199615719420205475666827644191030395267163722497263716317836844572390313830783386874893160646521248100096710616241664296731233246959348093559496992276828617395097505649266613783575573013394476995442827443941185324123262811233649187102073080302733642832394103372694764220887917026107286811747067406795512516859668592972945177817472704256080891086697105134134502014523773976009050828591123698102535169661382758051946529697613079637356750332377444829045080889440267754343625494672689450969010476068532313756601413605374311323784887298300284284393773472574940322361539570976373268891974557608698628028293179169129685789400964456370504417951188716676338960601926141054548087385346218500496371898201490472887170068381223443034073915435765989960407399924068314712310853869180024452119119397540426635486607651095148654565519534175935158375533090674224110956810659646217227684072220288069740342118997868751407117398018565481884903751610689668892280413665539377579232865380787199821239642472777810430431054920649100698144699922882032707265506919610498851369134201287250804734105659069885955038864230422100658844636138822592119362424175591228223115615025073644235923982756127188001055342235268220438218081474808003357917891696398713686001377169429991032671936005949239296236890163579318009212173335455678341609601999371500067550263588105418457388564148249891441945088253321327068410711707664292919746664231258214551613312674144436721843963601484317352559942481905518742253594852387121963811109600494529914557486697100601553689563461316973947259037634425025235327270203120393005398076129543021725856104050169276092029267508380881253645713552190510112870073897868576383720218238966172671228308953982848474759650034482192795938958195191307068869532377300080723282491228814231620148893616000490709665545257319500645381146058034857601065137053694472045209367913786863074285925259863089750115772452189149680227680833689271276219968840871269535989293752966216581258309441812990275149504184141579081534899187271816512684662542855312491010040162933213522024171767109240083032900566636131431215856989402924146147506701545523922034014606143864134945267940622726314004291545592549678752412055771814902015736449101146763968498770725152530967699027680142362658041593496091284199609863962507835342247599509803961058275980971640290231200073847109495519812818340574727430621176437338569512922261058561053751919878330264304934142568471300082221657682699105054823962881736649972824404866110426038975018833239968444848044680653029572934297813828105113721192735214917494983088446206512761868300214078942927771702504843489637610857999236217320052013858800682559517541186409315116844437057230133483511830056462066762191447906246228461070142093360614917769575264439246209690100674227402923202497329171918234571327770462782499733259826765838057518276490704708878612659277229002266500932708954787234898800145733708628391102477561989998183083633714920390998830181608474333356631480781719716310249008626796064879806829142861876458252200268261380954587164272536457492520215534769533647701928840916146183662478796676643962608293297433899032682381674479350963955461474138987403640587943897754529197912241310021034090719014863105318764460756450753526253202737032476411663530715185003946800307071007775881510835451953868271276825914704065156070104473727873955264061294155675599262861782165828046092085375760768777219327534216393491827380983207777102067099712718040629577087678455094810413471861632348675478964895213807380395519999244842831723331360495963287129001502529283084405060965883766378919623557750743106730589743369525635587667216635539130577148985397910319897671630923116814132639776154496203234508620595855175165678127225455459284432232033138467051645242493429315314183901869528226567294660095544350536810664147140481372745752127340357886562047558882531285150313248660012162234412894896869697521070119567913419704671878729055636045930810373161057833945297923257576220420215406135585679416277618481023560665787282978534295105907821410505106193377415085018294955997255657248250457030376225583038886494121284739734090628489854919064105822661565549185387494641705718356803403627698531986199947500254258511179121452715362142202610977014547989953148300669619177799815297608742459619597424832513127876551432721640340687726013247928061881561271306087942765147831870750944938390415055424663660234390267229037810192363648913314494154012553897632358925451182666946823497091572504337557981756446658131417605970147948101580159663126268411309392054283758050105570102226244322435113836179962463405889000485751940120309738522556915619962316266149864220204277840658575009030667823369206951247620997874799522552908481236013862064378687964964322757446478626877583085249712265885275258619248869105796660164394826442198720741102396146174165058594250758251304542409234433297419779545370738819712098548462521509738112227091417118663422672886720301676883545082618564484140642352057860749662207194142636954043415708577083943575425614604993770125535519608776364236473953303645770952392782178308064040610745842875712378304537614499380993943799895692609066512444200517929610703520082406988082887647700805737873412972131926058189696705433014584666049102486480861324443758484422117242202452702737123155957069485503294146665774587076746116902396620600925230977816126351674890793519573439586544983765168751624586466679680790225298841016849241882847835257791511677737766878684908261992946624353723887688158795943143236645680955684931218990338085548089626912446610219334845888479090729742152235455255268169863478542367963733190949180064416611854558223985406087014515477561885176364843883846304944054140472349261163828963487372989980596470132378306150271330218305387890863094675602701076195131651944635228829114795993472176237994731859888975527753342995393191355493929798536605121303780627401189685645717293066078344976970610425080969027934790674968680843034473616687013222041777843198400293525834572662525274325754960214852176102858746108202973729200363907639521791642138272031928214465079366440866989579315198189938819280286559545353337118978020802367070133581211084895700654922686484736478379443942243574871667028244969141197944997949645652254295694399889975984799690386144214779131464340159051133448511862353823312171452890423388403274262191716290316942841524001958974907702654129689845443194736602434726619208994774843657140646501385497369706387368050356994272429963619353251061385513884048008240582623616238466558536202169764353217884707429663620336698693337514548974149462405743965343746279989922011614912310481645884406924599478952021811050512189087805882906098215785098276977561852359478164307556371499319656042655771693222356461889343692345881161438459060106143035671709255487198751369082389916218201879026657173591066118680562188957461409274214682984420366130017712350238484687401974507000193037284084920727728546697673478290807817471733819603207351526711465342066353325198475922853815645908007099819674076727049963800690892480582441030466689702404191710110628483744964600247169667764095705038731841987990998557990041099955761788816477500062297003504752243503032860278255687128120935138668401343973429992995411983273138972683359035036333256182940653213065489476694440286304300190601525299545500018451695172006049707293195039457527839248832458898609665844152473414702519094097069398793363062797659008075625556539273461276926889963488088286491351792675336348913150386076384633129213126883739753410906378546338246844910575752415001140954668180962338413506831079040333451698554398546362012968913048484865994597468950205925285081297008789243179076040098087525793132368222562411982669969662776276126487866293361327487426184958737231099539633231834385499655236824209614548337546390803453545155876789280240840879618917109968400992203175379546035923056277467721165349722529099897065798471257168981166006597111149494291036462110377899860560620267822713559325699945685321150255526114710000111311305542905943380771703108828565171071093080190204114143718934856659103872249740264699536263179141189660245924640809757931396909692411553902630776925570379695812093331095804600844011272381285723336440306329798564205221647526236802523965445195765357819636477689757976196952323402516705350224897565645530860300288442950975337639114303109194802888812284456211104683613057799954982513924153477097517124473885408726503271878127120718786563259961882296982376092115327313668058062631983302476230259075595520392040848307715705063014804656069626554816152674508740703262805238908783150475362657294818177674153800936861858725321719039862323609212960510979499096207659061303475649254688104239741766177993938525561927952967046964488916519513963005602276071201814148427784570691237457879868540302107996427275522902887195343836534559670503523782442880423035189339651387195745660816531636686951256802560299965774304375571948363161673738398527381613986620323484550246851205706244879498355096548125400786192048315684356065429863815948296369098677905594075414402917038697888805213000988787034577982814347433073095951732613784149602467257399964560606327008696190276550351250786940741595357319500827693787642653159310135022944958630697768530881601689974769092589776354722426934396822434706507748940351717433714921398246142056212483033308748484383681607663210047892487623924456191334698673281782659460704808773837562354447427415403079243377406070166304568848827190200008333079848348195608977577035488797043203935028599360130320591862572107045577352170912708777758405192078702701975848001090011102095803544455646683112899945238158811697604576194516122959876498635703301818621057303284378111871779028036355864541016478625280726490908122390501969762661363951611140313773685838382993272350762171165433362192051530689959904425825716565005571227499170815831729113268798623924542352744270451953959743514120270515271022652446841017202257456180250049302889718144661538147281267709350427619017858867558945797147858327432614613514561594597514328468261215217292932813961111162758780186372061219430560509872463099334775616568815250563813449264445828644554389915702044427417478263600759987391245434526640454687672961770497253288894295129623850608515951145495595389884612385055010259956336866792837154492266692165797343619889708801917073439892118657951435331118810777342120618814121938704051198685912263977101075036163547673488768971870553308692448396381441249787875072762305996618379196784410107477583943350249829663598059477335085682105226932970555471304999109822299896807555611025368230408292329577600419778966529869728072758689121643898860452717561792187254042470340780351211931387514300414497363686961899684984960585799902673830826238078308504541232880033140609351452159982979418729196463713003840495552070137394403735061373493623684975315927992336024094330709224967798676695966194084658038697278349688984271950068296393476249242029351182566091296156544890112041522894218379162414673184073014963107601604061087190787668397978284122197791063633631607107019560639033524128043296828491400180265033412215247874216111601777023105665774908725540928493704084316475856436238159179518587366181504175226139695194380899677308117180297810098543055155580151009863631683673877890242142059547434880386270651837478894906156608223610860069472603693885141360901228991676379942621063155165083676569313703793620593878619825135840607252051552503658116970106713946951285772187168931584108152711315923139902726312650677832163976497120778850673212018214529452730538985442146760394328204997490604010506823789399465943123639063634038453756844532140198124192708931250088473716311859721832897674576077139228518683653797905167442440885466085887449390817765136765191807339564044105310473042144384374595903842135348576757508100284649671318030349621830749917784277703570277873572071576396083131440803249745296163548446291808665735973321949048222583867292107810781458855708327210749464229930896002632510994516937822842756098448777163672908600897438504053224045660833487874184754261025888178114479288633135540169367958747823534491650010805044375203217176779528179960556708938908678211649418068352818863033901961553533598869267804619605680482244161515330439357949421199100446287169235783726786648185403985607186913802070017511278828559678381487280866710134723166152250856783189555650667112891772885981278844857117228415374295299187674633557592467380460646245666113386197551593737141580767087704881571124525154018718669644967863314897083210002193472552752176343042010067012870454587509782041176940620303141981563074291707854175165919513462126457682322038672960869675249057547125905289729195190042055487763808863830608029148560239655508499170952680050549050163540750022250358240231312486913853209912908542515501926665260552846084316538132182506010250484342425559655564103234831013571003625105251293721998822978361833306018488532962769293946652592776619474396457416081770167967746099703061303064200650920033911833760783502113146206165370085048472250593612903704345330725658864739642080454966312078926173294222762074705597407037755417455948689361778195073195889938227807295518897399006775713142832342821745334970600713330824497234006371207058750608005933550267307684508743046517767483911747560358234954867211732544407870308394595110968123587751006981250068790999237558006374755824918004626158115702322277564224185471509740274147749631015957057975728487362186628458137801003523607855512187314147293223423461179809163064077005840017442965643688756842450104314387341435143799979893921451097360991174960527093176613002765852337545609511720187299136925893249210469087865101189319138412949872306293481047719283195599590983321744819018209055353117090017980344107090183326170071456565020306594188428889099901506069671570754658010277624209299158174016316537564620512369967294139347298056093032713924671599178543724722705923246738656207893320716934692521243023624350779051982434317022950076087178893300288316751767554104722916982909756904413484877888086027894353224266244838308643324395928951096789842653237718011931865125352479154033583022970906723266662196770634220649421478530522485641450527283162002779889389787039760942051891720846811917230316710731615563037230026558220566220778517673874794258874500736398933806859506209932760019382828655575101912201550113616747145513731832807199195216336274492384226497511270385954997802277415573618262059290269200297326714718084177136072908873247418028993492298525750750796468423039236945546828567660809128128219952409227560102677114703358512062029857105747969269676413463070549113268903287041606636826220035509164731197833420944014433837902278068802825944048508070668884388163885236124063084924237648879387720052080119958371362516527996725611482601759889964562003595751863928554006486502269943173530533147352245958594317002295894798435071650664464596469260231208736310382535259863767452401002948097605806985134796913934427921789613791559436711743297599601823795514496697448266535757818328401319182297789400076194116640835834029779851956258137834614505174490775584317834540702448199236213817879982574985210462920168480502750253592188430486496596899422901370036687053411433992989005122331981564148052458813525539930127158323597443479485596078126113306119634579884090179386036474872935644312823326144193268818517233970999323618221532802628696289305780285627704190677471278436979511589628185081118037336756229737049734897544338484662953648426850633331436453247818704918348823811172783334186458153856826420299044141613157057059443996206579259150177528328005390707344999675863663898713982385976571913032923828063263163003716648516080934016643752436006672186211623995346754126064835308264600434769206173808298321908667992380266761057314621122115767216066420921459847674596669436687685793259219670015259125536277038896027917025603322762342289886745048430378007642531430285638311462900477697941920825885194968035883175751912071608168668769417208962738188593074678248452911778011307695186515213852357234567138601409626960925189333145138497759760797865663256986249151434379858419263038910406990577886763144135921710467297913735711849243481482097055986564046181433286708888632364550389549515315454086387685101849014806035384479395570675699484597539288263840947431792968431206224860619670602559539877132505783547446071377571969814836425359068571453618152305664483229755434249211664165908339920918232092615336156953640196745800321142412705054942926344215799659302739788237471781602393840992170702471757381693762292451986778293834225264929935597117559853943433411384612562165280062932673910436215265547805756581564301061132355278227557350670795687467022902884466813612163340243859219294023792782719011888579929458786366948182531190475779863620635996611137293156491548630161982725707269751987030284816872886842405729691318440872867364846882481045022449474857404754980081613010663409435049785519082530405536532220171976371131665152081392590836540567758918533365894041109686437520080076748816723802450134173983836242436014223170154429033690409592776002000489834632398030015438082294735729055875415610264918066340217835378946302681476978084026898231011013274612215764265106476444609675585490505206701303672454452947713816495169865017057562485659456613158639375865403162325922486795081578434574259949700835862280479035039784687850838672794664642350629061563264476155086078014768223181641746281099376912961598107713433557854673456561791130754060103161463154658358228724986669409947875822862490391597721785296715710122984352751733184033774798246228850366984984559534918910354462456879647378048734500657972095556966684012744364250841828013501889901633936770363446384778877798911222090329552446689294095970044582184904086473740478596349699104111574278127770588805749516600347539617076074009059865273065396803153131269944813647012765723819797197300507929470415652361561193798012987716915198865411799775559364336972502607148235178412055585815942169201411995518754876971463180919702068204510052812205227217759663863745294585192240508899648471888660207802578410427220339944356932543826691104464587265950898230345253063361560031902167120029901904497241519918484232512007856683967858585984961186948948075526504127841350503050383405873884231104768629573623168438199703347196670566213219637237088769150720589855794311510888397205329688984246296788743435295590641530466487998971957746138767455260809781554769850537824509629334066457521747561165749803045028466215298848511796661004865216553248889544092118408960114307330646876901376726321371580506386248631619714094506889937125968176509651737064674946799502414610589616680993301580139608391968714179697545141736249136259209765248387790263008443743397099759656517126616569266933223232696304412690772264086898153790744345399842366977126358683674221325925724737935232755488016792245406770430929823122381259895465070692008626515793137920795342361501995963090161303869187490420869704317082037658393354028893691349050625171774797121221830196549999635461261208749148672211187388451982382652174604134207037139186399318891780926100388628711338434518211028117035806061219518512519328657577204456232674720398334096637859929611705101177083778625039348287036301519676225556990933186055973354034961948098142437760532253919542211893103818719137314071371993140486951930847741182305115259624950232757468068549065332596071440119547757546924642085280620746499561812047579093834670379147463124110553862584651538529911804410993684855720437898131395936145802257357413021229938155463822764667223129517659687139324060457705901059190736475930811879248978502598036291220050709091362894726524729406693499966457587556361895555545829891078681189747280274597170753719054026075519705663499627051003648682252321284903306893746070725208581048206467178844268608189817496037264701565610354393438436727309489204519422287563217166208970311253864254765773055192136430440658715522716161659185968411992989956122572852228922665189895196160550244895351707241099729421583730607972373440788244696417519788926287922647291584991922827474263609609700775725108193226933110890399178231408398746724765035402212467710778343231133328259352907323774321640178488369028033010729681236276595386571482969213233378777977791781119994182120342170049730071844337056473839015906919934618644301655441480208109506804045772588109252810284174188548930372284988142237973819381390599249221707043044792621715264250998699799101644403345167905482661809361902395870363819893269698307008472407295952521580394832150604056036400428890505409083884151001281126231755111087205805962431421008857531668119019687750668016359497308189261898883381942286504800870647729542438661074256799841100165719382056740436773729933103478352739675840112997419966639844262499493550612583717602732576804923150190203141885631543404159278831514647970692232125339613721383406556969442856516328132588149766090379243310376542362438437389988388664959463148018490287779527494342953481905602416375392532866048988717315002980070614705774855550373964598833963046443416752817278215373821919465128555694234104539275870900042288289983923083129770385954640469165022308016323070240176359406369572467031594824133747748354378927149376928231529057426411348773214717936443627704769939931195040667917349182223189840654342547452416287366536627783663463663451440272888228346406183592158344947509418470185132923557400153600816447256822440796874167587466844118757894109875314645959940466270813540321596511454407014372838968513535372891582215495726366454268603454454897469721671187583025010087909247478395759044251392400208245458319968331359373368697400964701997393196499507427793242627239998792564157406547795486690192078780150766991513884567263123687611029011162928759206907798068809737513911279993716860132255741462206179781365573832131818001510347557022939722393059664523013538850241964297794832358201544921884840908640258539506482405842702156402919464619294364250864044565886958219588491445064104666594788853209032332153757739255326971455961055112107470823738122959760139063370829494269325309154995989546277427078097303555998011518689454570506661505258824091697549476188407450810541237868340274829893860330687378511157087605999636657942510905660538755920536597677549447077414033801504751773156536725226453549204769717103226765664997010767098653666017794714178552187470698996203842052211679917728736689408214748927394543521506641681243745245377378391454077762185598106677708369771202065967858419584659784195904003442132949171116787398948296554825746058013256618838858307001225406252823361245108846563764658831012376291681092587040845755575393145547767538159836186457554755076530785338723915021243627086340405360746787082716028785677607662296102942492084476160206375664469213694997712350380833918516736225158200133734251163628049642501943821830714786342542215512025742251242266615826914734817816072263536515175511639177102067206189070139446939820506303514348521038017256740296013930106429655639321967085571616241873971255990336029205171580903320081105057965502879390564667130094891424452765953578772934812355237497590402848138533982886936210499986024712915074241834746128245661815246805121247313875707505308312456294113908758963499864778870157380349042825600455390027002234270376740701401075806688695260366754490085166617656532361407104512212562400098436044325622670814936523072538254124955715536500458806592805940753200959380490691755064278296264297511908572663012204002949962965736975017896511606276289461684757464259009928127669274292242860528373243019525311986050779903697633818464456124276519789389391726675765865850794293565045718637736147997801036092929022031107788623042520546901361477223728744125787830309991163903024611009209321904332219251945020353105649043512912312661620170463769340155779295011238810637166744711046808847470129425942725303282105939357150942181276089686892151458193547202558240281446272068342966661548170062446560310807273321051036352012937317906401676498841345425900992976576185406214502721103471483886961232402193627663589434697471137341011388010093559409034728890102862695921567789178999722884259984271690165106565017846905697141741727486845903154173278344165119818043908920594339058111273539393295257743681086808608061258470606158659466518623831051608061715386096446090898723894424556610956704022873197222424118035147413598222059481240221422904766742047150217444973583289900093304785948716483660716897616266813179653016250308535792589740588992125056403724147756318632991472749015853108741738392128521982018935619149441307957699463585660005100034696560930317420083158381528192023384921536948904119115431884683838292956632557918327052655700152004291398327151273003803293986319499238102236996287179961277228178847999328715839545235846056454507710945250101336171081302573798397876349583952045241749542703694820658882880132045639887478040222730558369309523653347132068764220133053269902589579163165664502360960269832142590018902285521227637538076662329682043020247612851157071546155544801506472920103553476370834586014248354931021326990662200234319348826255613753918558622577669910324803584870567465847244969206949992316293322706342723994424980114650120061853898187801452992142594282365319641686265089585402223171158433268611356151779755372019833623920042714695367088243052407693012895001370516294612748528730295100566805632574177304619934461501926013895975360325945127188531762179998292971350249507449196970836418285660080729772823225579181486432344221371888691534430740576744817328539476397759980022455268324631752750299967190581059889843324599058834879170352149997669050773868629203627460906181516722625232827296608231239980600165803097183097463826316406120974385831362999093174932558495798612153300385900982520345695118899517778388159323638879577973928601618840511427597235949109300077427059877045787752823008436662286071782817098323388496578286648371712839984041602855993037749205341223738618095559135477913841071968639964399304900509384133646321980546266125468879002538001297205300525144019544421380757672477604199118199640741542695609812825702835133186320979841609826594344347381028128731865143059702316668642883135126374247447718354593199855083515711484321932132679518409582100483177558872777378944603533925734555297387411113628716411845621592705629333540859632907966571404360847991544243291736422006528296307855614308385641698234151261168401892018289629689703420931582783150056817178836476292496626494588053357172570603072996411197921538653091895701237707121284174422861237174545114044198528090913724509175518831382924385483108842451770659100977273457584797095740085459172657154097023324774295129930817600281717147928857519287769347435573222643523890733146254896592778586969318233186941010063979178578043026370927008163743094557132588196764343782600242723710025324624163095496192865293734146837973388654470602544497200836697817705879939826285575865220095343550836604046041664167564264459451946817870345467357108410979598832779239245746589480145259723402487341776126925379794030470419522695984474035372761843847195890918930805956550665630623884866254520834096981532750845162556348671030569375099476454064625704768859851814247497970401793032004685170194260069545722435859202087568428330401889683631754324072670725028270028430319645930504724774743989086664353433964342314238024200191264811316036347666290893484135712072562593006623054704649699315539467809915893629126877711345909215317944385980144381479880170793350969546568508415003782286069764177249761646135543758097684552152473011225491269752235929305148653666520545511234781430798828383044555192507005030883850636874381726190372067523539958288599186337631450125818521888524706832693909290101946337008381269964893068855603864398196440624200215338565186733924628452494224757480935950251916593681255300847064367873453569007004982177376962814315743496967748038787499763996033439403947457117953430371633905984129462656398156569578612631823161411280883575264056379977572552802319411743923514701887224042773691936119317093936106624030098674025569199794371532092809882344348013330170298988188846938208570378011340257462153670197921264168354685286152189616620758591612550600996931648955952554032211590385547828336525625759274026762902429273166146185287193394083081972633335396663194786301344713622485448716098993374979529712715299653167023215380052589237696248037852428270033235270299430567943419499263687485869018227516665485694436677208903618045137770402292280564462179247840443490261107209216695840902088197131230712022484043469688505543504978833872614705316046975237978979882931036372980036365947315153101432519869862364410359865129188866244299430648622394441791147323595328698910665704920928208015751086850688806597020899322699126938872740264848302280026301366384754232280323694407371484439511699963173630250652424283826806096347139542670576980452134070532130997728437228322322428410513747201280400783173632879858539257460971501198978568363771838981762576506467082892347453120514370889786068146887399682644607132333049613519454565960907954076925437865523120264745871147800734943684633772204316675712660319606053884295184633815728716652819323318496057762862394813239075578205483290071820995919875251753225654944937660499984301567755164309834926352654992129688820015731154037372658845703434717853961229314939929787553803853548444713268639927492724908221557549101750577016495151240862351491717769261622719909553346235535171257305641990931169069554625011634631115645909693452577459163097686986434343617156119790259872931905680894933698907474465380313738154111387078361646928751039367596805956178387828870384978152270183498963383773815529483069245850766210056650854481524403692061337909766030889312619243267957940029012939629650398188885133046804380833596687392003530039622618060552149259478402523792513932544659629780426628266607664997910003385065592420645168525371022016967047403907577301210648792818409717443992878782107665752361841781368059496945460871147498205622104446839883051944803648158033629697977438591675940523255423399467597526997267506770964857029162664128203438950581617585063621908888947248666244417051482639455569266771271307285292192130549295633215156185095445632179105810185342289779708250945144543454058926146751209984947960444305469098168557405472779137960005396664842427026980831513703546633141285387259024603481944510812604818433947431997894110474470539743440988192916378319529061995944906895074404739080746466987340105982146454360250828430869349489913298123642483069071148710818395212579665942428268779887731994880093604312374300614471799235445834455989051598102559418270817588876839197381870707119260025526611458988231356467600119658769084007876388503649974633602110475457490535458285124740857415785753854240426106374697889180815158449554838504938098634537741054466678597524955405723746392797112891978729810100141126766296431238523469559242473788365902782829057058717475139966881029620447384798107799331951871759914473781247780366336566557249484392605804007332536222289634390995785402142410615372148111438813055336913631766742648621687422541676076796411401702857092294450271276561060155537788621513649295213283948804334499467594016177153445962754784021653092735883316821985914366140731747551562998073512792552605890191496068257750039897788586659557921993969561216342896418037347882059101154606138246501846415020176326444609320171608546729085682242603691331017383537390624228734062534642548061100952429318398661479420635527384258148863868705267166605596109837091844992824809051323778305423398927701583102905669935725757984031945213729496416179716467204067037727430268724732304571916190468526022527230344435880043116670471536627372656759225825596324970019830028489732424895031777620127938349043498096155792586017782921353808754532449501358437879661253092120992482552774291553508131018503714076655789446312686361845824709524196312945081527619379215567143763306068315965322345685682719995355555589740389527506234646022885734574175743745129544892712558379240995923501473993855567508989143638888135943364814095467091300078839384518700689089162786629226392773749889743565160566684036134494217487937824690083790571540384581990770334426909797196346900563425531202524625863538809669717635519255555987805641370458276649028439560666525590186114623451821020087634906710032502996448856386267381325973338012547913597652689092349739209898163794823787709656913979892378487766593394443863651393267723626840061470800580960251963206913925299993228229511904560600223516890093676007964587593897875839026325993725826816082616536892233676765075179773102166605315904940819792072643540816250802017668171302745305483225278264303087917009213721297178063982903306691735576486031780900814722254865312861890033324065607854053944737468056053914939362078311657499508867981193376850168875215598553011317464048914706601778398382731382531048778843345591242818171626213491416370673273931054347362891057515101065412923421102692550616552876122372429877400811543443476484163829862875166457725165085146670864173417954400065580675356772213470616667528543596055639237592312484300035890312774167714606194703096073921250384152242765451138567171754670742547418644623206243239005876134863370317752971363763873410596814989566043171138600162101071447661481550056466730355964788827503837099247497003908122605182391686340083723607003052636129549694414760047948618984072512179993815822269189968638989793898457381365225410312474016369636683949636513924444288271865063225947778474849999541852976713857906166489046643391385934354027874888888059568421511099873255680068729494912155704768431435137454432320611161095201828318271376404411535822881835707247978132309267853175551905418007752146267371025412866247782575188191737283084043628516523180784642562070409240133484517940598691310266457754008783031802598082235855854388278018788203915741395995832274282211757612031967334191596393061533411885732103949072530742294033242786694708357535293432105578512186399690550175087170659208257692306119491516063469130655706939194912085819275261898255285784412715755884372960161958701308692900240335292731765292000109890792068776937061551878713289446029021866704885402344931732697668704005966214430412991701622680838338007983291840211877767882217590152664718287272118266668737267302571850383757168947455463194698560979689566530965980368422771409952878486176083870731472819171547609396087540881322461050877666617901604614287325038935532177660908033078735085030907648753326518015908466549182408809556615595318733521842821007273204614146426702518874081968483557401726534318685530731464841585846792674796473777232455565118062377364554239641658769559669708246077496800376193200830709059492310837092416354607742479781071401423462467363949527618979543121231862387913500806654115841492868094440643723915897089080050715398733988784704250540362076593391328208456794862207009183514749567182643464680009884671985790167531384690591858448640974170745771232226489952092844809682206558589593981438156527968327248844769496411652491035523299135827184841712169603807480222862273400356374678464535561968573348554348671018616921549939490974967755710580704112013320991029138455138215586174754062346606965632216040426391722662882546576755255718922703316123081622007915241901881603418613665763120487016427511550749572522493201501203954729879634480983792078534610298651818371968018298431686271567937349016913354781997718122363655695544224840905524445350719921220882964659387119974917924966693507382884178404344781295481724992329072370525950556315260250497211244380006829251556890198598860069469580032386529454600814227277897105106238237845561832108466950826863975702031827694206941412607507155638270964380887576459927180047424899307203050682022810637094281347244458474871408399950526791648120089390158952885993654507195104612295466779855257504561606046056289169291016707532784761122659563818526458350047607615260612522275572970516024312770682817292364245799222966462428882901767419958857050382899620935074982920121901665097276573584160947615610424741843439144182905583934112499310664563911619198881826214781338327525272900149729682270239316333491969715374784894898008865241607875879463352319495212346020627077714740320399860895727425694847918860576196790991654392390842870898901677484336763344466241303609392381648815550905817151892587163455059040514859623009823589471034726910925220276791871177700580584722022486260771601418687214636194243876660821071067576798456176825235526550479255677477774939880427333216538009670798601107758302530911748564324472205823426382624249761666287904220293213318139223421936879906826684801398533852051840335484189282874745167690009051507370852528790730075103101371686166238453406743978923755658865987200718604489165505228342484306298815366783446779556709272328993120323988843157065918425328434595770267551557667888392367539839350646191231974323782364671215913868721054959826156913114150290231388031841464997949726232091806472729593164886920863281798620909003969553888232185863457860267134600750552249928879861179410086166070447638593081649815187777198204595360771206481050458750076937067785713576629350694079758446635662192334047210530301744591051836691138050546817215338347667668033186178611904971703337144019169276804736064786170139318583671184657493387991712222343045873659345414691805900217577769819236638539166125525618184733337655229060958630913102546778651342926828983427000584994213964092900187121055373272351204455696802848718756699266631040070909827135806012264465503982600812151853263775243888560947175115129267412371281461671302661454061575175229805713441803153316006488863363204301500813794030582427222482236760626777639078919912548326457764839608141839380812353005289937043191764166475904234790494686444636978367330978219888708847602212133818782260009635199817426072232503665960457840159101749550792415446643962695795203249980490671106480267499099077142563162685290316287611869464028812156014360751501874339857040767153922141973016173201285146322136246324875853965696278087533327381578618403747929908800076963025598093881279848522632493310149975213802150643921174212849325968992887826709117250463338080416108955877902636682295472509406798419576513489955780257621090407978211761729312752840610294594673572155382936031350026640280399195516646786770498965627701293351187689938307167809948450171983798094651193412240358141958686601861368104958104169971145004272458736431605011960746807144332927162058093987123946932231426904609884215337143004574683134232190182894343827636963562245261968903945500344874962479019139766650564568564293130997404282504371344620370527731006345231551648077101113381017569975248013279526651859797079228784859169988028098020669712186732114607116670555243047710003794169583342753019118149335875555147370734427548765450520347565514917763996217337401249044818922768489925873148699025172638808661524545295831024893543697741776332490537796415643141360394172442816751373301209236757081854295492503099095151521152655466626080500483848530622968270319610058380916036770349064530986587874755938428012441152143958915030331746318920597034907240455122612214162816878360179249467621911126657512953022685097772033601947536543899741295696040016588513040884699335231296209547256595173562272500590559626356680067773330057741131926060501528811546884495478019170012356832442369036971201900574447358461651074710427257901818199882917385476829154626805721602192926554443026977511091049433896862335033989502483445829122092315179154318599606898951590020174670247797923944867472930108648936464880996974249641537509341148628154170067228844385327985194741517384146188124428793040380967247217450871246006083514069677856178029096376735693411185528977581438463238232741922583789911869972956201417439001037446879752297699988817718978066736008521079530090098097990876819521991713966567679321400174644888178348065834669634497131647524496238630992943521493693024760936876049452951515617988578881078530409627585553634121888684117897573721070557959454938477061727963783847613532108306915296191351087057196766359387494990472056340527273534991847665868831309444188757694414967492098335278445748488539392714780763165046441272043096054185606842205680750054807112177782892840631861649683553749331225819246513120671572437448896206141704612421904550270768049565786781182794390242469425055091753707380329605651953515646078801181034140086170205290212500050041721508059734823662153080563136684873758844898381261370670169519571414818271235253173065812374639373445685388469299260643151989709477242741600122885733479389660310503919681621125838001508928269764567304880633462223581575048770765115182616905065700544551332926882733360288094397528878265347508376213173497822657842167643631003296419286195951010829486704092526583773010632684317902363834960512304125152659976324745468784633783853603635853870497997727080173581235760759864154161168693918787538263963108524714126538223333773966649486614683459877097293504669722919504434512867372080383392627942021921191251066874995106062176291393609163689802283783022404732150962803552433955279623598778733507532028979227051572043165231125645912037003529133377798523180933968366036283607438423581902728050018254336080104570664229676068155009328526401807452904096693314966060177351418176563492981110417462107787797701139947032674382622498847581763337922841420112593432427504121738708773668590765943689912793601224505568740395136816092702720819484851417261266765158792841324907956265288848220549915266401552727004766843512842704266234537234132951184275836601420203523841075034143949276151604934003126383412191689557110337199845717177329871545241056679424846388766252095283240771960545203715501366477454365791233636634381068494841678745347693049673469110184900521464296659468290150573761832283637689033299376155306383108293810311790899065281040077150406990663254745579028872179198731572729659289507669488526735024471158726077504884453011517116987346075405410069197255905336297397703564492129406532960676272940179148581522052187559661215938847024998562429447677535815982305131870252086998886360996057238934529938356371558224982404565319333622013169673179416671271936531328962365872314087095194806738667792553971072161658243469836915277633088911665800921549859526267687926393263395941546137366451074938088217235299629368046613860238119062834689435883938466450841910965700124613344247013658620181974499033959569668108270010186766727081975142776986084865991265798312946973799247570914813031288459407889849694314616102390995744620981721227960078146806535160693407933404362798679507229870792859144562128717377698626907510117038378049370316549559798657044438499042110649185952329811820503691290037295232170269087965631804616242617213707540197874751874415479191491950836479406711240713675923772693492357495497404864818718576218908450045052478117993458205595524012397190721397212277136404468519700951060312124353116272369192738409551356991444718214285712531117742451869472236530996256672188115205208082785885854496061080417914158030141204088780689045584209658674599173212821746456174927278048446305615339303554164225338438704676923484405162841925022747850990786910983653539566717453057615011455381255990037675291465936208016292668084304803772022800734398277299046089148641704887535092905371302114257243327736764602729533140007440330486102203378616849953061850743801795950349934944799354487369513425098950888907019984404677106419989906691839760594751485246008256008159886930883516811220083085421762173528023428586685269672391430218227249520571254592618288326789707825181909809705065232866438025660636220864856350288874656911841962908097889912315882306800368626804421612208970050665027157418248464900353265633448406436533304257593899829888684129116294794292695079320947896970517796636972928912859726292754204188384497546308180394125915479693952232007709219504589775957467542537225124872422394366807198705550778762340324182975186020156501971149577249650544721667995603556202635542426986515082165113880299419680413869745280057339296581619850857513127762003262309229645048826479376897426394060528880950206677718437810879605627018699884424458185781755457822659564401549226252982951956290303953469845389506894396848226167199541402206574067724705078784657989385378181335998260888212235563616242642774946654795871252201624325334289067485415144574500467617405227885316862942391200715705974312223980004862537552703558278985988534859050124176348351783328872637186713531347682897964369618578137959542062309471768238465235567237292375877304922962792069427891368235747081267447551069586209606391167605235588511930585342286187717039409884767741467475007022949853666199352990136072356564874239612625441946488225338788501958146867161470851310112543179663137023227022589328895959837992235166000717221927072145008156029787668292047810228483747821574237414981445654645003338208426933084742864292874525350378382908915310233450164712253017163036542037931978169772941097184854320246334473871069054967680067409685532721554443894393111013944330526243215060500169170559861794279605588036628353602248107086821993005915658618212800119546867848679067101634020816160530913747100703287761918436055101709541401174835308121045634396928427342106908107007608621425284101799710675939030602051666483754320802497097818253677940382113519523612432490801928495187800904108707078186260114858384681357060924646149448458157159308411937980532952055493957170960766453301276592235209119247195812385074579190214844292909521219859748002560989182697730852790088075316515013464531736563321696960013076080534215136019418603785719608905660263735487093628586459997641809496408375404065917049208667512173772299602004204168670309900151781171994365703115594844839330638320295579940157090681841576334018413886411090981065970765943172235562999660350573491377516149715821228178704287326511004288866408562699476576377190137476722439738339938710624186476495400475364221022672485085531272136930544060776864098439199028611741214111355887672280585925169650030079955491107185624722955554211927351447330965946624950270547644066792126351608069464409412077459793431534282346313643767896776608183163911551245577561196231162136178230160288695520652944348736563801906386203529928546094237211365148057761939736316850198937375622419950881714730298083355531404712099466061147804885454023668801510630015213271601835960405560731385136729041179310949154222644477218059317709166412310469506485936711447897214031124799545199378421358977753268732840203640681835254164377451971968938235153392897869265051920386326882648298156406815872986842992863746703501694580931142439546993189972217617891972758798238593326216551604796587337328587314069032927414281735656888437368969918721244483206626110272159396364685607827937365951333337563988950567325047184048344760960430118438178087126675687166979704090100616854784972707372735272284172789716706072518434520879139180317151592981802643812111792898886473002230099515282524303450078112899423188522044111641590655671822672646501859072478103106206068041604287105457027699142428600406523250424533736356803152112548569920372736667805021225667345492696701357779890915870298425226630817028353971866509333391415865009284147266215771720575434602805064651746830626118651284302765440440070606863899728234719857363457704804413684535911760479149894452606501871868920845342046355502995504070600809046987538471528044051552150914381792882090985828828178999285664855692816342406607683927452901264891754302905263007436282272922804907759382065265173954812693869192848037445560612524631209934671887929882228122769708989815055121025856186806929544356254230526745202839614981122633511561731892324403801294698966138806459197196407449527944804185088027736598704088644046418332565876627847776211709691206936804925262285074013624499893490740341949115666757687800296586533930628165438221441725594253753982692640113323626132357979022796586082898454766252549226829025798081815409355212834600606174589783198126508593040606896713491208511766863232100586043597877093491754284545468307366773630327633849011398394139782582496632760576783636841975224925051408219941831827542716814988497492400851149163225565831061629751504000657978007950047038323681672545628253314107848755770394008369683483416638666469089450413828919445726738111718524188570067835511815405044758173495985715108271445858762590645180846594612834622729017859529154835804555635771135263997986694815892630738527214079347157073400132839878019864710825084570220645661824814772928947314909986865409485629205325195554672413051757526083584028742416862823684845532278785289990765255870414518596563096959893699039053810355095138477776392960671095838892778155637105883796230547998174404984292305566963838669782376671627537077597224384058743063186950271512735308116387313693549002755389606922333548051824433775562022996431862804282743412554524541209245700850429162228471010441073275800704879617141306097927628097313857342109540785777645625822970999608961831039475982864426214666670964765196297731099466487475237130930112729309703950713170800983362545092516187795620642207780754818994787017269629356207761966374987101810731844147421006379585541987832297923914987177910687358526768573758647821522369198995612228221031891191593998541528923256669736096250984765181303334106284229999655045745782515831466390691618160997257881643717481133190415240005662439838358746947071883576036485794779454264385458700283551714033412136442707049381446365028085366895962669242392071133148025008636969323308721070234359482043779209487487928826354167786669373342872281502067343647266855172622946056663244595712747357160475350307458845161373038289106738793291735701249928892910894895793936727100986622876024595537243730805704308936636047208228091404554700464887408463355124733296629729701811558639922902697844476263704247654812783625063220535148632950546502018615359340872178059098232159891164567722527853690884652224651202811551036326571246471692304627630222802207676863545935946101112820371227238894190306094175067385464058282365697094667129826240309781210716182732143370503549332949242748272830296355368483645080528535599578139335774940159750974890849288540529555193534277331725494403960886763102610957663809613601819337574418571788439791363298113300814874126478585570818730727846837075555479906762695530394776716046940907627918242600245810662798897370658038300509720824471532574301214110058783611251386725337050094637310438028065528351511678998466050570698109362229330023475203805790395102994368619579115736194192464483053590120826988658849798352516011764501829311001118279878751853841897086500063863334719518630207030493693966711298531255877506373125864156005228446670868853010897545846403537832105560467926893514803323131351299969379004626215975264472086010438963217560253881984905269593705440912269368458658916472832555150167797938965999965159474764902160601540455288486686227240276342517126865663983825359861578123112470902464643633105847853644610784451095994698792185145958872550994278231350200365282485199441175234177517629246035319859532763109618553004058456410805632505910166335437145551620330504930832732906050599439470840357669738186718815810494957463595048723287547446139418937360660497562022770817512504601237701271640377481089269072704483643482773226701404138070473527956262528715751737204227519523913129019033483600156296814742941702163509402711855510038457395754524266248952510275056821779466072676990812772209785249560920458082222752570786065771284516868723817951925605088379761173931833973716412724583025127906500357202130036909236416639044138197208867258375810722921634291125687509198527681741043661774967906506204057664055235896385819399344074046791759564054226269090189022659697708997288329071780873151015607969796995712394914458965682607445656946275646026921440377286653104198312632472633371039375215137710979936406029191471655518364535044197748186769621181899402811767943069668900956438677370746935090914308704140626724102960962808875456009332076698744536723170815318473902843385246929862487894457978875556009842045887657868800373307766497688473407180757769125684568642413658717630101741393568111180655349430854929688345825889407278057110838249511307984758342260058977662503584834941269049121688360613048303357391963908348642155471111573720265601556692501686118529577183118033860007456188583127849143122250532828765724233114171434179857416495050424221075501510936821822908593540327929684476345563614956527516806437455002131994493286446857755750448192074089672766262260397620859999060326804600298690585661231706445861327849739799112478137715755833052489786357474292188198613965469160728835875776406731331780138275501436640086974862457501727737722712778559782065554930829610544527949051642394082313819838073380025435247741118299955177838014486818966530351433760907542144884859697275298004111216847447097853638300957918295509722697632425001385760397953533430691665657353312647091249392779952396459874387996405664920862012746807714741955088804970898649414880856814515241058671606446378984502693846723107369490019386920268804895626158642954752181468727458687526018312749929206650752295045408155297461027579102549403365422177464736747077794971757031834019141696719896774555640643145799736003559780995121068558455828020148205667648619903911914321651974056310744387195439673650444424122716549808526995766240095083866515004885722121254131033799749242164781435996226132984547962960620844960735454588555158626944779085904754528643843902499705726043126611850314338576963965648014517188866905165982510953610716832401011878350290857942482944831828361340709781348562151639171643419617244629176109137227267597738465107046720984864291582255646929193715004192235450828077559817707551240133083664074551936085057433661051142224190728201752406515890248330456434718489948867942411347383448812557950874586152919117823626606807559937553201396855798415275463694608479460227348116963758523055140140271391757073925484756163249640539819767489399554462801081576853810002115928906351757886450643764243621644654121333262059557763033502760724916831045662302766848568199677103481424358538664892396352793149964144186922133243055259247116673548642195562635777928617366206502387368802196515889952138570935500651841962558024803131198814260812689632552327689374745968928154047264956028323893456647916376995076939112323396867046554327424151878364274486359593921032346870689235479169572193469456662664272461817370833875727951187039128173384159220739659768187888256991916662927336714616515938681373102464401046651736635445818236022272827505418532801076520094733207326201981632894470393016429252432981131708984012928324053157629715231608039092942675863177856427811486880920430056603218660052411419686581517563750967952916353555583964570983607722928759164276522731912488246895429495061353574732844774871689405997205346645616514244672809991102685193084844446890182575008193689566541038680672210177111942236145228593578202693996940912704225505711520502950970882685993915098837101212578488913431385750099412111402514574333579516425095239609626670462864652542107014210524734950084498664337391638593969891867847678806856952783035036241486609510698372554501604246073912486950837325165965796035745438833341839499463194579094419766705967024121934732877091723940065969443722142152004278798610347764756659257051151237611635604355220322128499145725807487796599757054890943096640660259007679933124752259962309828574338281178096079912271673058676531629762153687071874099916518648232673298046190059400821777165170590438994690530636944070561348598748775815719834810204817052426373157636809986216120139596742925927039650530149954631226430142778918285664834660799155882857286767813042168474531854760435923160648553629866004380870384795648285044864664978668470901091042803145807600206475866694188080091015715871935274635543708953836461024473891858791203345983450674181895110498816933571960090019976766568814118606744551145082974378419101050693921827679405605138268264738687578018821860868314241701435298020020151271141771000750809797302918789990142252110755178186218592408079091771522776646142108017451188515603768262315601963079090864252127779819509044292157728770634208818652916499558604988314517539340291738514982386814003808802979422688981411844193044264996192829722172538400327889113973161025418229617664836598953964624259972383724723974482911636169213688409059751584215967802735472422373448636600696389910914157235509485428949309164998012734429935111851801229960675747512177141133586073931223799440918809844490842706401885730594065682450074726906176175907140322157239377324141110140622949730575598120558897491541236434169283848712340808926091898383824527337783968472720589252002896082865940346440047660079742770377567180928444356954342379004109485329985830466150211517674056804843067265907402173505234609335248750399509854240709337708059533488908684707402728480496799460669870964420815680028013959152423598162468156302559112445825492865074355312865336334994995419886063628875861996325364836385346292019201477092986460860816362156664613895353095372475140530073809958741341295148327527116591514587234581657294510325567425387963567382926477073380371805287579624988985246737406429265426646900912933333556226382805761531369538887848178487522172879090721461686390960550314325767846181688795693177372855960450264059988826626264772108489931323124260980044138107710958548980244513396050013153987020081948047265767656152028884076274619290099317235990438431186217731889323406776864235399590168047388040537072023569672288363905039665410169306950971582109186174406405595206507606917912257930877613622272964148470464311319272033702770209361668862081279085372778313563774635024894686848314898008291659683797415263580621595179406268221449010219489940341752161421082386901377418790630969587626837290526500439844921348462652897119879882445714622574174518028947438484520612191223719141732964447322036654224479174036362614064317248900181903119603481130749021063071709817007137331906301507821414938816716160063559788697137267453512145468678132335847629018984754073492954366821520227059960080112154849041632834144599942866771183893057262231985577132461529445987450073777510576518235427523138560766133398967930657835616122882261992101832734953795994706983382991849650949462155761266733290919991183821235363466853270990114197130007811707582808667014187350723472825112982867485974318183619710319927358333220513094213006716698114625377926660479677236576024264606691184538785220924820841713861858213467165333086737541947048734929216208819495643396295339619361107434361361442360043867177518676734972233339458587679879180236360902907963486009170298858633766496251617350578023834248380975516854308865781085377729290067290777042095350638920154497043815081756597639112278317355559685749100077923416072372877376773661802103876172886705322473648110793304355981338646210902864629222712222780837293361444604615671199530714372259340704538245182863293160305171962595442907496228208008370367075429647180884995456319238474659620209989662575348026638220962881532525719894071197986117369479291240858257850372440207722696268362772877603945399136648424011545531775895822867081345373504166472763599404721901014424881278667198591197874573098241527041826940002991514545376537108674399246538299961201031175875609819594880513514048509957359042210437426464595360755642374252648444142060108467753924186891291770661970128054370591602181557267722805567260715132064971911887878491574568321462876022708430692174050755415604922517529369895534828831772057756182811155114394372469600380497767892072328001977479360572607714977323318384877330617985939284793744538003872113301713698544246827303988507486287776537502536352847794471635619065845889401562265507505405138317832273081031382960139064719331448583760246718307595594888736152943328294023555905078364588691770501792810212439011340508746423353092716009955603619599724088678383559645842785683511363002999039550914778032263412777548388677873846448605904725207308279018577726928063729406019702845579252914135133186727022487172612567511429866524108692457232881313744495138404569466379478637572506324121937241825580516582005724918482144697070622285153511357541048294467748902511178755788164267189175676265818290914675872462447807906919511586588338473089857548836311289849917463265925708333071417327865900333500014436707752340576348933956370831600684390306655147392995328839980625755870673577716393036676847285147873279926930909587872260715671897565397265345744829959206100674015640485932380433927961555267596756991842633626004520964447631909955019409405048322507989030172249514783396961310283133786671553560206345844821752956783192218313904681643368413786208438040989057835645415314326050229805439292737679350942426789751710890248442990127668211534664569212958557400306643126450195077834679545744987447372354510894019581911724012321237404060231401940616238167036183677585020210919974243424130370717170049075233329746994006118495476184806280954131943457135080438929710985599841123743560028391614194965734442180754835344770809482849007773641253308537980660656486648679979671368267733803213294046817990692318952260742571914500988081600441795567854609797658020876172452612758587154972838715717359599119051212068015750102905940264134450864678624053269843390182129905313091298093658251437092104593519319032678804191427755417731273618938518745068147560346121444669355364943402652546253789768116377699173144669675885528049404208428236374293789512513185523555583838359270204692455297539789355668812430492155914469343740430756825813089691245954586398426763411538313650226376519625656199675538078045439177625629481755484068012043397419988221905111098473106342993121324363415595898695722639136704507822365234706968843976893206835055263983240129368445115254779843191825590944166366530086660865081171773013831438556241930810656409311449503593588280295371770447796077679814055846990526397174411773276407262679871798115591826638104328396180560270146340893584331652200995894121731154607678665345097425199536914744137073330682379269878036354141556529466000224688724296278057723792665100371130982410841275882344821527061679265440249138267219702158568224183877787809665139738317275753231988257033441877768488512802659722342788038617449488820912897316448245521235501654043081993031997688370549853147017739953964278751179041128649005466647010000607139573518132944431196453192397056660388651157191799070413278845401977321376251229809652055923184152022890364101044747580470633885803658747801071059377773598194164052305516503960705250158733836835876252565842039054818373866207116592989763337495438165188018671358584181585779795879270965883891332507802264839215675374447902263581587608158742431510742467150785499810248909226555781591758198763688481805241065231049823632558171958868613709391682223958697320551753278088923371190606809765974737631844853007962514235003225275850752587533922357122083042274806130456801469442068844440675964385994732903815501139184234026643208177096905446870657366071172566697683799204017163156215149655910802730103281017786727340792941974357978803728157191793643910626123843681497632074587648100858537184698908884374352226586732737637975056968417435479248205048733920239602692354728909752131687578055773032867808102350397145304490484604088689931453299703086663582342758977148872236190467927837532406975228086955447573314196357860997590934255823962802073753586445062170508627529933781772546139133617554777339667512928249431193254082464297308660653167411266239645853829336949793456510000188996280571313299459519080344822748784633420163741093121102860288488635508968147382445707964458387894162315494804773410981722903733965458016463343515417537570891450183401611296844222862102580409246449246785064442120247678007702419962704602968550036002457503062081937055630297844727456797095434396911045254420975857353164348367011471261521284331342152798174981589284654805040565540644452350478163716648098965394756971501593129116650337986448235663775953042948751815658413075149846765562961326335802354216890209629981636563791349522934854332634626294669497094765968840340378676035677386357655730695167774722089979255173045031388606298765807052462393757367827512142210826929352068161885563966202918726585913292699085536233362021811181967392904421993641876237759756919748049043663676394528877888244265707328544696962288587790943551948812612350688960841323947941793635744169670741233911859017824556060525066388654218100953631767457453789507805444335598491236826404475003407506829573140967082799666791065065886421243779021010828571038697036352054659498958351192785478712191831773855956929732212015458197279830238096790517258844592297038655708269824961225430850591732451894389578777525521420674731989631683619873025036836952469508140407715879653608786889810640122172357740776382914963139189645426192064017367684408104542515511016826771803159447995813073863941317881278638573299461863283817149266367089190666156874565151271517707401795737497558294659427260564756312455190049758727498080718604639040118387290699912224748026767640468969783709682266578417704346576615895899483290774966786586880581733459447608171510739440170154167813352157525683100915416704896826699895704595338806773682082939186741819401719794679335859363640905035273745044558338105476040219600677735820015211357956163070348662259922104023830408807684513434899443492948056849011685396553187905199009694354537699884624327643398757845773132673002448938452379928925669436888441838900842978413190178346871061303786024852677180857429120803015152227745746728221415098593597239074871547141574604437338558907024087929879219491843577030413972069663060207602986644071573786906203521672539904925531522280853012006381723971649092876170956527242434486354290672447329500646741516569756061816829007223491539687774833021946150516249925153132321520858641070785895719936732203123893644882359318174564786437006324123303250372666119867821899137901315219505095611991299810733026784506001534979174127644401878308078057794445752977913937817016967440820014409462325060540603549445467923030389862210989818425528665996666913778423687384021213303196585470699535784260724887041982231930191304423549829422650495293656317592828291703591619047527004663440350610097591406961498556101655960919129983341601726430374217700019738817879157100787501342418557536109995007356956070375427058683241147244279947670410506418822062824279334160969296174769790369488726219705014698380559663902164778941232966021191396102210403222580932577779744912776737645506134546409405810374206099171878736825368951330422289257927439101493480670678426219322166256276986450450034800850481913987651770654490157900150898124996424903784720851936112144866391791119001118143943931088871080302879725314012608713599938385036735609433103397462285796212166949564710506296065753917984545662270899714775590337099981298055969566458796621591709532169798941564352064553374481974369461334372557040217139658782010477544820942217135521867115652238948782759079371743427396072201303814577691989784832170574035685106291338744768586594558713573131222972590864122514612817751686122868855546023175653493459883220286464593212723363740964600314138741379571724341423138343315301024036346672370443909844292891835275754875794275325667918207125409317873530915330739253677377124570256014039258340795153365564435680123396284344389709026842014328872179156992459065362969895101666557114636527981506648650826488624155340248755881065022705428732890637901323673181163742076529508938943315364913504615916957323458377322220298279563997739963104533533129274285719720140278614801095903708340285285194874287596946740944946409093102050381819432557673917185168911966057877610698583690671262123696754721992307681457484606902209580881011863586416446113428572475232064178749439212587900615788500373527943066091677268505594387346407760098971163216502505345361440812266148673723125497759811159720284790380301541952001232078085292696498971387686112220978869418238296623073090749481809385499441990981414592953468205348821139591330742919366741394061137250088412076493654809062971328819811781293641234221569801383146955787417678615437362077772422122030195129697915058345242695679163324860197330320597340540867659057200261842353435347310724287733253619670004575487741677391522499551322443357850119700941479900131715498920554902444316387807654999341314052382886543315366325999885795538990816316002582559723514026471455384424526973857014690139302506698923220462694338902064023018514596641953517289939206083363341379817862868597675967133682940223066096044298322753111467716278868277730378551406393653577772687010511414623008342524003616368655013918957853809597015169000002164145469799056081836680210365231291340148947072793226031560918348101192970279182592959761602764841934320891405959259285473353030324155889630962881689955062346752220478379793316446139492248940349204890736600761566233482266424485351821925369339613591576744388391507165618953337988096341507559673516438794626040762997166664650247032193643038156033526530849167159208936976619351011205523630506816401739927153974894995011601730712838464722967506968436487535618904984522634308329592052990170997578571644061678831948517436708959702934097070544315056457505495586375259517499446695580951249359697076406294226264711558182529293167343946061681500195308856670816879280275125395765086258945813425808024299444079802745336774097658510912346755744372327714050119984320033965297321130439726881470876734120986338264203128136546653386600987088511179309097650782945549032534122912635698474056323995971574034893882107903798438793055578540880549992488193393996697261824972534513063955873480065510047805345125893652468837640097879489777969481249137128408163749407745424039856460435439060666556352374685311932734176371678209200085631230198194187219004663566127319451051792781670146047570625495906063037613113099104791927471079165820528484968977792536035804270628194853618635731897107326201563195657928121294326234125282571733294172273736636953341232097345127275548773579960327119940512059506523350506747175185830438677680406333349738821290360637972719470310294472509893018911659665545789701731368766853879519317548125425870762842224382857335677047769485210745501106966669713398733679933051600527006925526403866173641366037429133689096451019973891341346685595151253178847353258966477202668561960803897426044381510600286999349271060896053933032991644458020886276498003827369224460044641400919601276736907255060005644922895347734625508652136892957520799500452792553213228120797188193686419521386588431482571052008445625307234815080627936105662481906985417637250960020168404295883293252065695859750857725340605547278041376729196304379552551706552819045180250587695323036304594992318016680009047616952129262197341910583433233081085563453647813310572936156161961592388209036089398391510442690692937864753630856889213453014099516438579884132072903212261605948258278952735802912981361251428128084274221223573482570995047096235852773157758762300244663085914879650922053120831543938579590846082000055995965738197771139844657753842718349126691496593495620333745297507941958266674632901656475800144661544770161356909921932991359096812528194877057887251630892068869482529194393273948565656677346342816326846478151835489089096101899802360280001695773122454040964419130049894860841428075846185516946928706217499806350600203763794972655714828118331236856686304461058774520657414574378072184060197311592800579337281336552316113747834816118271322793101750223150050330300552225684947729513565485168054391274692518301790848990582527534441112727884289099455099639861144073851732542471776526307197421376212364311015381001428824434615851544698423732535449836812270603435801210203207244187069596001297992137289679183068939869290441045403892642502088669150040364936743151041516797405387281853990037844755865978915557347609921046617962104707142628235810840463750399009489819478572699492483842108990816801142599078460536252818276632997635349329983481284841606530377991682461706343063822397319739063460837652067424850041721731123124521284177137911823739341541237394003389615461670918548590915710744027217878418409785004752565581122843818255366547747523019753493176403471909156734255234095325315016120889873006665999301651409130019890699816434208031629414339068704366093596406695558028795984907250125682660579122793416988592471417053363166564120302552004140663574744366937934623614371797556525341352637495956146069065035500574122088734479236299005041077680310213351022391115698713006986861855357551498995162949872245189432040511504610348114452387738287157320587617075938161229188790076174141634997375770987252233412375104391616742932423419100295206361546802996152292532592984855199958602395445832812489734353621371598445112175321290434837620653307639139766188709460044928161866070172353875861426619743795734110117631382952009476962401573704577655712065465129008156145575734064112911523774231566842621191248892464888629950730651895334800852071831504008231867656793114843516544877695782811751704214553261793746043311097278265344955144620622452903892353550646708306692076864816837857950150543583806872801015772146660651963117922041457454580080527490399258423046705636634305140436520127941971491875956336212387409171149329449793288136099703084251887848661987936838449831767475604546923695072767321854018102413415154343851436294522815051066372326547316649785888180063286055688069009911909836932624364436061580255292637018023216284686232609631270661171593724670800220040588979423909455581818368505387311104747803855756104661214201142742689558529995382376112577985711123474169230048716539870461923094557603726844936571769930767520338155209099864534177299061366931358671870949305877403076431305547018855410119971569083936753009650367353604026548118803842872321038387615448064586258763354281777964643311126667260212556605323255784622488467456831409232254414823841206068558079815323077590449928638522921387151370244807647862787533247217008824297181088524394469864329449217566823814491117812061447523431331276951419062647127441937123861951231307593746740100033702969338181898638323636208801708466010241397906683049737495105475700000437226371014255521753653603776268170779013820354637426411723853574525037792910491081553895859846256959698254004217935360690467319904355379950565151397467432908590325061690236220387470396135866984455314071640884859297902295491063483578139260476155626041089178121879702523441377295000995921991763616144970504829168869079096952340026755049103846174715614771113213785133160078428036012886287762397193248889894679279040559905487232689438197238522707389659946814950532518655713338940089437970962645190151863171875224054591047150617357552109625210310387676655629203720309777903768604738697272262825198282343033292075544609597609876178786344417175306101162042685354042369911021509670360132695518550245736523990266197286895172898800243831458950548868471972190151246349135712659130796569550505756073517562742835050164763724158110298716550115410728092553177328031338455555169364629572248618107904950866208396227049420417741933082362954503996253710244826064033479518853997248146730497462185964837336496137452324269202657377704622747813433256057031866900569893522320392348158749017307308977300633720811795140522246344664236721881777505281238146468178080336494688274012478198600139526549040033494306229762502448620196973819555175295976121592410408137040192255721902676643764743214661174397151046256805077581152259899003905579099356109715267192409697533196236275781969133146172738329789007570990882976676233085884431575749436140683501735105920891534211664029618016930007649451397233922826954649004323577469583949870852696577521724542773723916267539926860737977128289616674470665882870396347878936046274039813078752196801116487066570802088241054177338468948290063592489716332895956971179414887050691992520401429190633702043383480696921567297861420270939288369901635199406762929438082518792999540950117354961509117217403852670156344079878372229548304802984143435569536123998004458553174334207176828922152750333591020167638746222338418699718163365596825626523094430401875802400304081246170916511715371034471445168658351203821494244204439094076627529454430670567994949505617750443783186325672633418987572710245698273435857976776469655198880767468527925306289535058774357256256435757904716170638005031012257422384085201783541019828192318652826156200609744928257657463223497940846972875141426398651586594122620003693849788530095195231675736952887803054040722160596079151141420854031499265114304749769395651272466138931216833581787090494563412070247604598204462541469694838945050583087044825271124260156959868992675287758338570620850323813076266248458479634030440483036093229812619171196734737990134499537232570689034937397555703281767567176714169815892584095030846568065628727731333151824665917401334901165303211267530350199247924544283106953310754176908196145347958334360729017930940234858586369014790362432641435300536035250832937236735319246956227324849904703178580484949816480494434773754622120272112442623805740930771026570223981722458089023371781234474979089611323231682776005484436267031550369811867018880017045799711235556324173766905077620119315079171716398348768737505076103773728730142026977323068019471681637653285998821861861394633241099123397097295537091765314096168870787852697319688694488874847513310400510055292031915485773710477263401184289240850533943385407044120529675000845586715716054005880141769374447041030939553601855207273996069371634598838702538599222073583798814839077955642079652997798096912929959868770085112024985070271082233695403633850021639411040452134387748968093857825621108143549883599090710067633500316681889235347874568753837213019712089286793763561472736866613275932641298971845822578138642270288776825589292933748658168935982137075946109930878088274025978983939187299603717779904647871703739344501722847825743426027330945002711107935203262575024789369969273953841739373525900040337944780820140337447815930118023721169449416527687138040310214005276520550659766777403383741170600153446900690013160233410117741690299266772671661121972040520837294144097104798373154141621918634414414062822802648643480756803691302522824184925558064086923351818297332447992737438052030011959034488549210676541293632680842400651193763454982850921393839413791942621938387404102736985654251479325358482038399788480702999221839226557240727365740760440135941953339447507439854197066050585945502035953492169825051733919107014043189207687243100336419109668991214703296796888360564266340087374627255991835244869923801351401532175495941793025301890095015861301508478409672122787159785928480948027424746170091654177734901476692068031257747727850532006637106796757766539771056331225386876210734330761954888969500623706585308165135537120922966254157542273611165802244219417890419445699433737375881278530207193080288970577852465986098983845384307537283956408824866820358394609795278719912749735378238960386611334503682210512862510798793121389209670471723978132436161984603295364257823022644881508335002457118717097633958716695015857639865948180483199694497685165074496286026525211369065462426447109211926710429157684833280390639740917897680417149492727934961026018965670996008228939164765576704297889354610177958733715568727941417693167192430240277734179644005045492344135955615623440280923883774850057716663831549783270477165732804051698129494157938622467418240137293587949528359915861926939287244424698239673754159283873099968207909046109306352913376298897546641006300711476964340552022685534330741424193735850314214215823185079668745799902358922380960217280196466211201974246765050646329913616390341046186399629693928171197425870230486791447815217798376236120654079622011343511851023527725324754200871051103817179717036130635588328968110825757257280749417930088846919959655411814837117165254131474120637376817078425162208071491572879175682553094885369702584703023934011731316497075208653340352444956518186715822772621385028777083762798926026491339763301713605335058924186957868419762843441030435959008044265116175684619303563812518018387931578558648381048418148761857944528595493670457578750618550927277245174391294149932585232158558368357805296119090697450113017475157071733346976779603400137659707520788447236356768298321803691026946269944580011783302574300783197771495432250075827655129428373668959260828462867663142042220568581917069422823023259669307319605539643724990208096405459320873931720008415704934202901048015231460912571008346698418543028441358176595459114087031931442926077843153652698516121805132296481547659258944158690486903990511053198972864051425539520748624417494389236492945448326107162292213836208175332936778010360505913656934822259415648015433788659959109217590309708050237399207492371351701455060862446984263299870917970821400414786011146688642830733369323128018379122639559199374842661533890233905823340340508897613105986565320970775739487289551161084637601604081961371985798407848740523990412171699890142940723620874254769212732511874382844917276597550242365562998817032479161086426000369609849281032219850259701360060567714086214114245836132872104016291333506679031974581696068245119712185141928166527740979807316803745210100305769625790012507545203995753289062933799095846535804606979156289014000120064594106194624543182132750170254231962620322459155181270089491968137282845020409822474075758848709382534731412843378633047533710057173383582925742538371474649166627672360275850483519059227720335276115812788307002242036314730550254607474267299680084404394044785146102635549477244040141960330429532334213143350107759842621181673466602112073758411818545207993773000963800930451530381098156079326783315176376731500213900402429800944106592263098998167099941249353741116509125674518259626484107216689636817728914110375687320529853977046586737806341118160103863308684701971946208008285050725780982590644382820640182891043160961701965099031819115239953218602769972406136764190889119728450616704763821745928667529171852134563846116653490738430262681414898634120878611960419575672445841851513969105294182763586161110596790382964110221616572202120626076833080792359136954966645601247582506366861240767259329620779987143733161132880611131833173193087629867489208766955866792538792053513416164425366626045481901930015716141441859013407337912963258080364205430578018707303093805611208661056094000877283040242329166037167176849294706301776898146648493433601249219747068854147312972741168893687433024120835912096283891781487440044165012124775261338465932886618456733910218320817647377633715437728343272943398726109866223555080021850588532286569540355713487150745925890040217994070345983639989032333413388169071439114416729909893275306656398866074798741604163453601220849022136523621075069094160846380531171723530509985400683303684944943684900673643207270984921121865436682609765944583787426776617262070901373617114698312633965562454068137326883117032522295255529453000139027919289985431354578704526264770736680596645576720600466928277987220786063650814023158876913514033935436096080458698296286378276124068466607708335421708278087147122879341081919616264699928313764903649474590520910333216632532198063391648259903441688673253391745413725470079757791921106794553607877215160331629462540291551529368151257552282823374530884008832233365864657604230082526708240793250752237295986040562270344239770951258093516571322297411820696518205962819884701705812966624900947836918442840259888374325359473214049550084146460309180569880289784415080461735866201194119398346461410216820253444536316828837075972630898431578284970889342915335738688694733461319928022420630677637348954203944344827039901661436676414757939600233393844159211563762514995442194500158275167437536786120613618102798547248111297591382992453502902365349508589969069731009737285558254250370855885840666946213802859952656445058468155915147237679100337673412660088656584863553152097997486023385148219420883388400062755450954389897541835008679549899442750371653850392309310544384460012815212404954854126169591906086408168808192419771174296486261079608568993634475342360467334475218418795398463504166322215296681653731612177334946885058539275288204986059250221447199316456937609800195668787335537108031165212261438634281152401937617220663214170742402215620541740420048247819336539419428529111115547155978956291893369815795090879316476306697903336624608816010026816943322924355719184861742360655857061564612982601111948983357274166621175696725510321380151147866705933934706669913565948213885907232258851810704492511327758656263952999764664370591667025589676550171048087299294923712371004604581294988296047403096444610114589869386291589890582631699994298226292968895089729549997784594738388885541916420794070205298832569652014084027740788963147287793479382272285509090079703150003395211711255555514598169840433750729546994380232904351493996871492615442340439465201235203363922678039629494827487775230931380646305313557965977987480852471763263388098977405250286906623123758276868891478031654371430649393550823860720096119266997236572978915496697736536538914256109143625857087574934427137382127917116475256825880386500326285596019081320341327856997654564939519525353569259347006628734347411268895654193063316202079375049270686637226276728943863158282815151472782435728025357343836679345946083977818378986908750959565935093695685882634205979184514705024359953886414541692750299039587955910981907050368725116368561510805436530212372188409080140023702888202343330652601634944084915055318370468893872686147738856338162608949652232865698138609432819230786403818086627424536115729736647778893500016279198448542036576637567928913392275299174708604603060241235826523328670010197961545681357928945618729973488806744878442239977120297435567418348987617670737701624186789029168193565668384148050741453695363330341818072188818246112596849371948332326053679612252833998096362301916152018361300582840358501919776006741250134640471832064740900373157125554308376213059224232403935675736202663046575561444977462359860188831926215268560990032369017259029643346530391237089621503296826405954155139479022159639759965276855351850867922179875487526488208853170894643243034342761917816502934328997334594367337669463772840626045053675723619215485866329275822516974748500111664668206551049455320396472652644572767361031116393170134775777978695099681377386540092325210490164153731212171738622992793131778679756992401926818202387450364411995323075132234338344103500080879009550732953339521961239750429362037945944731203232020583358471424388678817056640048798074736644880939212741826492776350960025382376547429442702810038796741386935276028500235985517360600254482167634601974179641381723368824770503891411592239520530827563705141815967355066196083304011548555825652099142674111266302057866548215535103351016021666433257749438587397177298594818709133696447062676698263865939572916916619005575262999498816377935174590009024970753988753696148882152819843486581817711410842097866205428317044503629825535034924579254023720334030986985259086806969076483404019139360505085853549358223116571424482542455529162692643559816908289716771065344143283518712160428246173402742830111567035995122973539009898868096529094650136690476047236009587225820550904176409514808816316075533114114748418748190265005048217896649115964253010487431411294571411553623725838941409154160045154615613091168090408001682303467923721706326250627485557893425344334507314928780074845359788768884630248992461750647569238681890517243059441594675076092275770518368664678212943037522479781808394152120693537980663334333923253909891768430151052426711811198569896115205359296862322635390012621123684128877453575297463969314435936025681752606450241881306031013138381650002998722888540815681418987274706276209732449799562896229320482001278747470466937920966117542209611853203210254526669493562942405068562928061573878728955946662948243083450551237058449327153054758895995403791454359176765516875326678454311471208479711303119203643113461302376226505115417083311424413294524424243062292563391717456016294414980998877912346302460455015297710248864022778942888839127455660719585445461302564223586611271257358454108228925193443321039552167552010857807619201723944179152844800541280932423686423110967083698721801106262258285055962916565287546151454666882234812303829843666693936365576975670208118093848636084914907738372863594042961794158906809056218034675311861522505740744689918992900259329241196134733377295240585362017200811535702953477054740465787961954258904659586827933462883104669007296876094345412457890845854393031981964614961776025519744252608158254094751459761936776184485030949526083308753090784888981765198274240495997759200914793884749727715799883530169822603923434187491662605430717800228900878516663530771797939716055765617265386398810954631826477314562464304945881793831280447316322259432990862251021976135656598682455900305434352354803371856999799855168126381406241476027857348148039152920058599995764892179439889674814153339926692964225083275749339088432303391279529662676623785772267370976883258409891928390372403604058129391548089675920070849160246290010017511370426009028505562936589638220802077755916453001366059270441580846999773684152050680388684345471748681339910055494450597137179319819063188268600010281726642244762277862696983070658863594822640744864622148454748668034400048643581599798148310211109339089782126445123819276069051600498566741951622844780862340075300444648442371677383321830844309053698758412266045546184452151390953161554855333432578342499665111657430779599398149939398590413638962302792540146276867454704394275824598994247340835588243969925433973963173182985484224500030353190612501634309696689950734547021024791892395219117705301926395516952930813297720933857701680627027901182975407061258572220882897768737481518171545338598628972724629353638128298430177367418961161005647053317666393007636781752905096610482086307254162472735323205085651381816999293606262503339591574393888015228836187524116338705493666574983166291377747932533065097563647168995990606851376148514923714025385536321259029125643804109661725313071417776150029344869103275934836689271813857603911153188660172664340973098430751974731185125300230317553616624016337619441259952146038153020471588886130842238459537960198093514296023892662086904058705263631594562454744211905331520184666896811996624487049591492363766980829349213148216755532996499434580820289807137923718457039402037636091794803957946795871570921448191940967147966809789386044110065586883047863492282815482157958356495061737224054415395307727144045990236077315544669829125642474099240320665706499746874900123796860604425696806865395995041759575399232832608635074961190651648177945109959054048953905564718436282345214018848067594266615072906949228966428793061577757603925821245634779359470423285951348417187660177263225276197079265751935753259105727187468024033373848720365436149794715490152717095437924743540785121308691050953513261078354142591348582434060889698659879248054372167268358015481912140492406909507713949918149761715697793312992922227776904269774663343306046060063718698113202527427374756043129781992795822512091526483838158413875703122878189793805558874078883399941952814024384652263780313895052227719986212682624235668630101354701121477116601627025091299125959201256511414881255698663946208573464557010593316993734007718215445038968109685104221292823391092709565439775725706658793322864558448299577768032845421531252371345338323843754635242425516554162045619208671368286907939316951586863030067807405999650690124572274855620428033964655112223959666370412893956335587720583102491359231352462099522165499129261433608990663057440908135905883698007912498301774019141237253351536570018074717641900777893812805808081725423908281218288779225210898918558167309088665693937677538260799314436449467329784827780866969565223496703919825096140677051875086234532970731010421207216099279602271622573825739542208942614603804056596050643577700469781412856026496300936871123908157937649394471138156134778779764802973169601362968587652084184931713291303501630489283455300737852212001703706867900239552747119936029981859426587217084198478077671715653217544535366638492227414277775051460750951187315632302198164854697472843143376824885733646103008579774714377268515056306274235619479640154608872194191436998815367863396555131198197240357011384387836564259448850349872146940528650201434533827342398778832744272397469401752677567729380064908244490205786197169174105035763954471100570522170688418817530891835055006088314822638493553384645825572450631606481064581037375638091281002695001503106818420180169216513980654986544661891317185856457635194564183177580078946072359249316918339977366163761513642505310176010381040534559685906936023710157853276459982353171605488108482261593542907848179697951915807041250990061939794876325652067383494390078051071096189741942472925113052882728655128682178159367199023424017405500613199586187761309206311618097820080858503670175039677430176233883792218354568756667825560913024677982917345452569840521864195663847852174794071488904548670615282214679181382460355343453625135464921227752905442330612777335673753328442249784457347626723200639812218688567132221219426991118033843226511827992227156604438280728618411844358894453761577830908255370988158822386321588819438079707639075862168490898955951549258218579132342644117703567873396661261637434857815771493696258191193673718966555922645102053087985531873643341370547371655796858594548236874057993659610646819685259012782049589922521547623021047739608206085773429131543157487361819327788894851701104796415713290025654928353796172728320061860063255330910989150815641334051128648505413228744708668799101062303084326552980404576984536006005300882818745335516146361040649064649523410995923711533698475976042238817945830177121961872163682155935732504751835266604175657263355057945609505866615454861971259413519791093179876892023194291765998540152949595697614772349426013389612565829071660171854597135405813649154079103664048533767200556100801416865519633963707707814656240885936100230696676351265188845916862519517367375635333061817697515037778775627913739080924963269717882045018164755917033971034920627452202782735135384183106635517514108778250833116918743912984256331866342316969920436598210334742263193516282710184631962602531724757606281156390824156558601284830341510182501447844759046507696048698683473275641248383596163472192355984907387359786364008283765150425876867098490826195311202768367807983598939024552608110006692464991357665394362734811628779856003696838746427095867613173550956291831532234507664067108651060635298315248655255717292543652189420872792563930594952564607956939405068067821217205662555422520709896352768018326611337532759721849225790954886426434579682508378385173309664040519208837250419897456471596301489187381243641128654510511751068187540394816314829152361631580869439699311747206963072108555126814614950043916747114800904402246934286692208118360477335228616198110903516526522036430601470044946799742949651072601971835312796110722388192307432702552985454375760238451402527403449548296766753703110136730886035813316465820038704461761238047017868722422920301540812768771884697589312288838525176843761998395757361803944098558932906421390275564594070879983839306182256274951262093805122759478028027396804223539313001853986661554492035286359385393523568562589360832987556051481850114691323308109566566609814851448711236578860687192450939135280812595340839503896289582198271275376464798243097276567530238839611971426408992495857439336151599984629194810446938373696479494011953966596685908621696837452092926936082818417805991576046550508947034906254686812262890088335729538549875387050034729027852122005389307439924272964083641369240637910307610646734471629557024658992175443808647735327718997203984277548578264061205206672136047904169987548161605636302853937220844112893748299015124483529050640575615001359399511177435788869469007900053426796075732712025386208271664558394596548731483262930899840350088361538364890257084592395023731715875120389099417780129417727398029424637509653939256951619139719585170317345277624324450463334976223841019264141856218434287014620695783248048105075370813860764016674220259823942645029360480291429025047050757283855488184249082759604201932521262381595095633034206397372823242244661584667712946510646031010005671166575527629837340932725777001165307673264902162348455071031486927736757262857945666263751803050451879260441791834861948830219110553368808701761554995535325913018008208915184472909086226727784648502350632246684055631591385401514078166964960606739209542420733822386709014139400892082161184704160392107327050446658378696308822163498502317145807918247658633639841192763018446107830635810272029959088166865979057396469967169786604121661011013850795966938309140697528299131636068687111473401871399817846936166634952136948960302875537334618640634540476114870851822774879237436677480987353076739087350637938352024256467366547573922531923218958350464907556281438069976552267976927377369683987409360528133078795104175336725059976320159992551465014711518553109542473392030168930510379204760397861762715019719856281495046592677054767831566297818424902101558347964252524136588537489895257657130960182876627720806745387147175763352552955785574890087917601272745496286707072525403089381178193769109058561231833605126372694562886633814756505739367546058321329462640162906450988689108881834622300126716338080060418414081350971051984992302045762655408683885143823561822261064395538593298364805681287372422521724898372864772786097869863803711835890803473854174180799025827883869995681380212679883542791380209484360788615641271325729702306547327902428065162310063652742917214023587341690418316732757688596307116521503326745947816706537019494736564611080611062799997675528890706293694380294223687021275093946941019195016015299274530743333895962577991864084930377877253505042528825070167678857136262867050990778026392745685209862398400061724681774317539359023623863893856378262048390515756578915435982553767904622119925799793023763836468702910753575158684660145819748652914066353470227827155932487427598392916569589668961445163431983643627548897611284767398135884368976422078456555822084704226079048653630465824057344651134394191016363234188105152768215210817086631073595084725849612774080100506385780517295439667589158805920737139203722014785372839089465942855820690029763704388962157900826565426227550885670362654544243582279847093165086190863727688564890264487639515802244458807728451547792932238776483834232726797806171179322542408718646797407492121439674599055643428083776798186616233226364044384827991956446982512540760442600076648839405225720129038845988989507286220524861006004701270577600797391194145309848810605785958816308598199724410847303900340858025737786002910302868934221371904172453409941885931524446543517385104479173403382668604863958065283507731611832484306401192747723440594042223432600923602467180188754545034921181988116236811576347822129016622885327181853798695578280943536331592020375671088455004843225127196863146004475341708227080392000551685944076304051023122982645994706852848862182331414241296578714495843169494837038720787581443199665101743568463572924987923136262090720982335704498806339119338569821545602652781780814706917088042345400689808080215182689082392168741673039407053553483129474084506590913546566389072345151479539175725789443258420004252133349556207308177558486594839674561971182886901290957586526335372912402937787311580593209462305526655057269254616227912854117368622511754327290337640645561260881630930449004493123149973712854078876214654039090619285969212699661131446515125392718638755713227434567584024452528613277386110466524690713248116132327866553922375450650645557844752674095476377922619721965892485616767370442655454766412824974547029690149538487453581462335585722536669544031019526574364371624625707219444220972890649417623080685309512640397785068224105408150220676960329201677761520340580800069256649767683858043134576456622814102673326173592446115377816388318556759641389364888071109674501530329405944287210122463354343983485681114751450270542683115402142282622211329896788895872073922539622777924837881751658572009769626066605493433403358886358460679153160352215277781353458820310696306750167090873510899019267385089400112623957854197090431203260876675093861954904053214725358763216094231456676486621505790845223181821494161141559358901324729850471393646025134520754940261108972569166709346230658343633216567251826481885392842776972112162082782293649302267894810547240789173646302191177619804640389678462029689089581064062624959620005846360760760633487231004193767755124483844601410981176505249250507331829311077699924139274429351116724102543154081596279966648713579581499849489881693027859393273139945272661930334767470813465258275459995608557203326673651989598933352611335920292134216792755787422665404533011315064245907416714077881477748050125535218616313853320072275542682288779568209824685637591377854621895663679186778340639868728243158143285242631458734890936456750352168600107572858277223469924730699943720535562343886506582203582720220944238084167339681740283255883913054891627064083099717054756531201376041233055171281256120019578130882853736100053771354748179506998693763549404095715197201999060961762335414310394977417273404315454230606534887782842737056627669454468626541822712047802917389076949432517103018501018154392591593801956273133438129281081344603074505720676115695716746080612697504200121701078843511797572051899654891677185876625212163248370567259699483107143388522138266801528703793495188218996906615797723056210420741827329837657693940378928246305555773801634325387518270020536301110301506418084300845847873841805019409487199361643372757256261678098848394889658966842728191671075006073137025501741296169009268701580335831591438542795022369582880035005246353344721082226334245818520001611966175661432981645009489494970752247665319607861261380930370696152623597644242999182343677060603999198745007191275969828102558790208748993492396619969765662410680761138529038554375778446981744919641863832748057445249890881499189111009938583324562421908141294372746522334870833058543064433899168954142946546844333105164082216762887845197270393173421372008851510403510581829352087410664215413370217518097796032417373452195279036852191771680201486684233088913722573018777314565536125155610899669388782318346825211844200930558495729440863151140972071668824022993187970468641717027278594627047857923622854527276470419217835097659894785656102565832963461630401856308183180082323091904412189857543821435648715363514364459066766515918176994500990884467011021211240388487837455873246264134811123675699218649115111210646180421034419972981766148128739711394165315800593329092395831574978171730398899325310512071708789852713055792486862073982777982772149687090357547294688631506366522901375497175226064150691809716848626194184234333632187266912713117718720909596953508790887697733963891113056477312862396207203576443796900426828753291239465706672037509971079596273211569428552706318828617168655007449864552861077895596363113214808801392337192790050641455641730213221961749353150915041588166672761005228764937051921403410339425804216800832763785187846289793552952411747983063239879492492405552610476975203252010406257703239624699817446597051042624251419918830932717655372180935706531320500040742781049827921776642503563287711815293436097393808251453819661595794437408682769465798781892540077953968876165781073143577743050249871872499056341441249524238880137696080349786124424300779877844496503675194035217106622878101488429041274979156751659871254043516356621919115099918203739184797801196437347542314370288881470719984112368143366479299028416121109765789208759608863912219871399054512962503722969117216292349655337801220930389520908652705498959727535966779601196212545909870821167174846450166657922420537881164187286114192236058465456471297149124464807319695427184030195114924789923649568666652477012297241082597570398117674169055513406276626408246632756573282697950972480015163475995669022020380045121840932498204806898967441185608656667191994203622131414608125263407495554003628352936762227502387275340137288630288870239294943337936110888516129092054889806443911067732675221651564260478050028926553634183304289804356270246611921403475223893426766710861528359454360598146225358370475412059480531696179850736232347189288799921312041344986280558020292797247789543052593594846999351440245506522912442568255849070034307231669238324066337100367529897643325721888437442392134973950981090907771373206932905653010543263708349015767671568684422859542531361758213908554908727975731886245976558625199353255485596207730484751103588313708896800540690619171644648998814186639522285432809227163820854854280662190034343952499624635294292309469966319560902108515320884398292210709109581473776722677509931990247249011020856493776688492682000906945120540342990779122694322962667312824198255464126389577778507554373288206944381612233689766182351883044638036921723516103575416077095048430461110573913897424229863968894546485535088844691142461480419465766247077698787027471492868195794299772656826705569694274836931428050705476244855719470496125767111895009478693197484048246732011740440161405318188708311152108558491899876301701115439057676562475189558503671661157399706813348582818098083034765371229834462305338827310988728685661970394522924110824109695682940857117362699860969984718672128759077290543413952700690439072411361244252368906029690606697222469911710463413476153777426712844915751380081788738234436484161070305175594855772513959963047761826113896660346659649847060841409536306346979668133610469203501087144740303918216288923809210513084913373708465262685755220143039771097815156785497197866617591529283615443342418564882411194631662372387212519648177429485158339246239610035619162915415849106197172719573876592156570748829378037912250041185592909792056770510355756571083708133438079778972142131393714621053603207229896537048886388520107314719268332488837154109727003110280464352103542140041544799205039752088670512645094974109842760072108775314128088213389441492007202033067434660606663588376791806684973104193929487304081320579768784976095887040093875305660446898985114916816319725944538138037627439513204104770236776860310218251151405277640437489687424256240024374739641126797578354113677866311363195823876398096202629741523410637230798849058384127432122382343056419062665183604457729579687470454328309501482710489528532581460375744914866492752896988858742680525163112118612428423175531522963670907569412620983964540109665993724807238362113407732903423356840812246141904087145433343025216572168570542133451684769456833985262352359956356583666037803131883990659150267347786801858577726947051112685297466800923534824852230699662723268108923643700135398009689740374393811496265684034606533608669562394917887892520585309542468888749385649357084603037920149883758128798616634005250035643587978102473145899240929679704995159276819244092055310457539187171664237778419254920694114587111920614093649627971940504047118685138284542152698395709551119601049698125176465665758218889784968008849630252280988304565911249292583025266090622849134248017911249986253152222114607844858862057633393341561304014503524886820630287278334720643546048614780940217324873895337911941352849612333027229955436965125175308516171387679690729405734812208531447740968189779641485977055133679679544580567353180913478033233808016274829873008956444256348620975646845478406062036718121766685913144567815934643971859800320746130406133872439457772156094722266659859539620822678769401451619759351130170860523505986790377683090853726409103295962514530374644970876762702246412705293904809294696539269715519098675880731994775812936320836149982440828043136286383601401943885874011145974346733226664339688613762797907853516485842093578513740008790544885404611598956181299807181788196720280764061217429423662669810833737555288904803327188017982037176203589533782069445903259551772646603958439951147771685855628063698786675948283023142380815943276739785497662039350580828844880394198553461461645557850582296962442800237969209280431675558812120057876536206220247624175804362027976539818513723704284928521129375042897631161605206734444607479299368493047233730153144588345500909014706753602780357101130008737485383699812901633152847757170445954676064646554852580572392288032976391861041686531901762096228164522314851964017420830921962114777243516724765860105822799841447038544336705760689734351096121650612268665575568935889705529706870631368558844685041211928091878485544075880872541876272002221500702301265981013384809275542600134563987810650170999226633031389628040752212634600721197888711957630012720815131295691763021140092150817019126266999803046894915386684761764332821543664319955031242588045746353132654375501438320935178653274828880564952375532895967057328184589010020979315176339847282852615177087804619094426049122340457964235371557307769788370528480289855233193218547821335047724895060167382298143736078045746693583854575226954266069270643639378007787974474936260889137979626382943710741227731561727158847062144904882796386835677501348177542687482019379750826692439406869082437099633255305037662626625814818217961130846271710736740974635180770187375808602506644344584352469230094406940567413985004671039691141967036624516552788651391359567784229464681279257718735070993898784028323063872337814757675283072391382711648403449268105297925487036926032538275771672590056903152534734069575349422469429251490080573330306509786607691795243340329191623152706813620149209482829835985480387953428742790207552685749738990523029242089385193063948151962926967027361955676258195882654599443813484689325915872469804822224660108226821372843771174269968672035316512346056841983214504049984204279849445755863561000752530790265871582962484553657465711732647441772866881096925267046659192819713957030802335042306015746830835568297020025452928615949547333152910626363810769951211030194062185464408749553760194028693164260181095286448046261244744650773255420369943021341313828008746514238026614755260433574490851090200009995360080155344837528264234534953862812162087952548293879769971964861718286280217566018693444533330084013479840088992187730945779788277312143482807491364831732296553420949510195020171349833529722136222870337415882493408274586414179882165110321853170696519713772003990654283552803200913110493348413772108164654800430616577058274800577117183996976244661803887917697477604246966218946289893974333877844163552937227776107345762913703064814976380338163442449442480817575110134042307716966269502791996404264911701523599499420655111789371637327739368247682936902908028282298315119068129400638079585089649631362724767236495737686883990793695718291862713613632193306325779728043882524825007116361957484138707370500224077894308231678040773546363955915342396826433007848430327715977106803576319056702049276126663356869397937458436267428634787513706499371430752138310346129165143325391420608904750206848807231731325256728611314496381036926033366261572919288355038706137640653009202386089234506400496050399007324491710078813888100350082065492928561456589329364272692914209588949496644251420643397423180187949513743433733812555967585702377990626486858927919268725111470837445794436460865713173352189880225375557393639561044341574133435907458547864139348300390945687559254891000727229137524734496259077229348350529562662619546480916360659441325713446489253907564089681271735028771215565165027129916752744849549686754814880013972032286213222135160478150272062158467638388803851984557749477201385942992682776834605410604259936948409077696845017561562143659276646696815013808036921637885382448242241436858907959800219277719670498350577857272307054926115130345857881683854388714862647725292435577413879026346815909175172262164386047251069764859954415867300756724331040820918302286504216648853650219346516115176994959462068543035806894724889674174120379265437527795214008969773724172199111576984501048329850999732986004575457433701910096292291852862355205422929434427058530984131880294000285721987079570607271904114199094676883649205504788458498545056902140891140057625918842413777336090675034236513025365501197287693838675576196746444652805069186437672231540604999105579622635254097974060903132218087144815827249000577684273248015208958410396035123732142173871151086325315326772322238896238727685657646832589543209747099132806640965195333171481212501853349375580855344154346901503509063262998815970103968406351361644660255266975842774413707085926251673237612634699606456999152908653228677996575599065591798718325597884665277217249266277817893178348678330967393881329388820131991944875335549554943683117729270178989834604311301681120049034152964936987710959738772210790440578848318592954268627277765660372665716186201557075303901086494978762704219203587259219915379763280028016928912693329149625885255916085666294035848561410830785521252015022596733335378242539717472795027667900650708364921798112910442737550635557293098661132527083150752792925358633967944260468325521866400985497913500414892146609674066346570412339979028922720844252368204559326527260997244798875384361148043777498300997915995414194727187546793755284017641406709408676920911525124661221977347854448664771141716241863498315623797204837520432487301708015204275373677993313055055713371139493980558181772197655961816552771857413743899965330126337546348903857570155550029745878537414053627669107378908088364232138311729518935318424640669027413769468814660051957305922310541175669849915291948903374893891640837998945183539400057178402176136458699901187441892700270070797251213776233504640707062718444355873087074730139793292505707238049005047613786692441532006371361031744826907914885188760987942260059192345280290367581340414961338038587858793112180851953002382331277097973513049415889138951138429517428423288681576159135881353614075503608169724126329561980547860572914709398706782610460609748470241979226639646464989520599191197434422168094670799450414988571624636074100786792082119272968530027048973406804339573432751889150344979719151798334253013298883004213128844555928021451851394956505590577671497591912260415337969669479117663834167369556991514618832092991363368598034305847307722681083929743135454890796341839222866411692583178008314289573367185689223911920701915570394879527237040140761242318055623301387902010894712554754994626725450070170656751942514990976078872926124435153969658896657384475246990066796787568590786281010427979030288189175365965102773530543560978458103783864372436926285494859871091733983235226442239525416376448750111208838784723366028269070118546560392034309390520316181517652708660606020174723210350382513307513261608056810958211683571738679269554644125372906242613462557571271552210722049222460331835974737556348619293593826625515295806775342044063702762618511117280225828716604607610217183520412253485933147983870469579337547207763823289120899144196796227502986550944200901915448998229932354074428291089699620129474637751974898377957583386696440013995297367756048807076530091244696333842957395118220145370313745277939401734045678537847989675224461300135617945771224786345112270488246310037021272930725664141242335428548073887836018186043716539909216842135054188875236157309141962120400489362592668296518778099401480400320286743930066171075060286451937457839715996104329417053991141998477626836107091482204577160493305426637548794091437295977858139877461937729639287431781446134316292360852433927929974758401983245756322105843868774597487073074252398953868108804113687740525301441384658021127159285446384155139037554508563526893005491514683871471063374076061454988801618093237990917810339828675999851710275848572985712707052147037333338319293831230960250981695129850531507219477929136789762721964147115911067072267515719006981874820974565310993834867074687768717447420547869263517227023052055251417927708104170689429913883905193950892834354560445621969447629881740021459773055701613760057719203633583121520705479239746255117465974981503439341877730411754540585599847742103772867228475671594819253658483455850599502457805005458037208177247319200594671805916388084608127927605250589103231048978331361713628566932132005834293483343891450378184984808331568661959118108094558844792641832247151538432720948501101414048392599257829916561897403190514864226133481480631197077066156147947252038378298956972695415567295575104896267540029942576116665492622396726979006021568039998816824158123354090846858422624708505885729847860060625360548250113586664192062830479999136718029282096246499562220027051516370058259627748801898666696386090397888948569065679749625642098162636728256332024191049155155494228998048341561004320350183172165413504678724068050017072106973230967035368316543167845861677485481717887724605740225396782545791479300739273055287493352887944148787560453137861030878891352354871890306742270010971545851543447139631453545342081299946686529947846903935200387641829475762830371082587868660949426629330027037651717709489856073892751626947169734479380692119318792271330248135232772844582220504454605881625567399350604548626050756851336344593979811542372142999159814529648550277764217683832555026192314125921885892503806545126422010164085197559479611902151157676689793874109203656798987106292001488482084945407472455329996994542049418801934353565018776623478895520360286569626212411856874681116797665907098834412231609722547100441177791370467040704938954819261220869363061182928840625750678656295869797789952848565390075790916901357197558433001239677906493929456822864537927314618811885228763138890077128779093556267470888664711739859568005050429391797353891277028056420120928035871639736760124623789812613241154527245418043420359760839163511184007978619671776478908567703551855101811265435628803491156198817529430946955243107640609683938661654114070382303890598827112424867053877925796396202820379123716443942599389513241576302230199188519037495177312560737942982085820049757859274513168136639034574179142335533635359649327009319360018328806719067465937779902178292592854286362604922862433983264759876879776097620542961287680036045346099627208173190232731030986334028976795001116168215269775564551881453259064690832524594408899864314755132522510459197536341342981897094690757551232467662166893774353717132711318836141317100299535077947766860997411153166381206930269979755632873392299697924064403874078728076129808212112862607301666482615209884083300232480129761846892186926839847205269229681806691942208437549933659109403702089823277592762042312214822291396181814044145867389141233933372267712051290826393905501434562936555893264012000316586155012953467495237108051112107712675370010909608278711103399771945889943069111633156288344204162988477243448160592278825464837865966644379775730519569080640637833148303501714299036444219779378490657755445615936648102412508804784689574770894334578534394301468073132044098508314215000440206558188185091083117175750223675880161170897064066265549716357227649515430859856742727572362506142004594289031969027591733928558636470147407109694116640963145826864002210870065516506981983626927573928154825232262792942087845717819433145622034078948447815054901918629137297650648602904983253704638419092993088508655861453159393379219698912809466128909871081771022803582433847857288602556497745189627362090182771844234455850594502219820777419869140649407688747081962631436130603813640090600169819815172349045879885293542902721189699671582720502908424046403023487269232743144500806147608483610575025832864540068026262566429572789031299152255301346363602660934079643232965068950326809316575377524664950248501734074353229637930624649737955233945768628423769040836108454826944005603703616892237282474171819568372387532704159482665399945126374450956049616232384172396271812497892260955670925581877141806633706507412821432481512134386468642116626554705305353132199516775016413923165363301195929450790635881219166148432298749057984193973988057320993125298944182714696711907954705311225716648133092689369170078290187366568750664647042638112531915628693576662091951214260838463267313327695185412162605705190248000292716836433065635067875023523687260852721155923404628718047517350728044815130031918448710677020183798493203469030755536217362325900922478981682743313587973749834518804113246305320806965250890031665396011738439164699287058486458069032094230311558645801386087501790919079461624058714297343769967810411732867237499904743461472108454470996869261298005284797547385482944928394915475191877333499953863595148860526285162868570736273433418602344739237100941447729007785885890208503941368311975009757983439908346143628987759718794514104355161499864444556276796220187597117362164756985335701956183748957916865882684706909622979223019486357962552358292553433880597482889337338928024462880819699265519291574140686415370179682195155584842181397139517517801863436986671383085055833496534395934269799835869568977948940547271276866001872589147443872053023176809501284569989504210999601604612897029531643125444022656498757435734089165738137574627823332933755463389463276024449112640759399609398987871587226939869421249052946811284845989381042759576617521933957209032628127516448143233141694641233164678332428301689229100483431268765144446171217025277376053894790550302506465823733077257413705986387904455784027382025129137999702003613921719212685703905842488205185323423880499537425270916004576780710414743980062154305368754610635353105591529141258134373827973480675643232684646571759027768738198300242763766128240956158506497415304280209046930104888511220968955454407863432234081503359289273691411625449216089982430477588798237639400334066299859244854502909054954342789755826693293677108367738175093606701387769104298816811586794092148495397943156832586475843222989647863180744139736033332461719720665952481530890800435112637271393336955603096677434725967414428884084605885130074744258555355528435793827568674651339148144250278120300853713801310362451581328727667306949638526561991078968559652189001785790387108252626037673836375944951950510770567056080577109158392457686832947237731549155362995847930898696536587926616089723182680195329621045454864525664780275242969695846635941873772904947003698159587806618444901739021910223321517348138981794703533482245953207037761078910257443892501064194789825739797350663859599347969035154316547019005971992025764110551575540168234858591204485689863051741103147125311029665805179452314293113451707531694485426857819291024330013906589284073816935466835071158868726717263713986026699414930035902720964661659718835822409569986113840828924520706763175809704837655841675208567787554179343406344459301504075701243967948288089488803346025396641167896119448490179667063272137898290016022856519151785086610632625489539357464225728335826677872761043418651870714665689617757493247549256728685006115212832557564308432382976484345749293699135893221488172910218810426233513573876544596029481681634285915060498137230270780749602300573133538612072859744855424993608081440697104193204181809269310592037245427818731252073874452626581159968994573167774687368182541951400338126837008142758875762987249477989630780355217618619189499997132328632423607043569385698914414252993352021060456592176068585729291056941216960095049458631167168335816291790080126517773445707687141507481404850947163127733328256790854821018975649874686845641631934291321498645480767188898652091415420158401280763998487276853597235151361654620633387460926567277664153944188117962415230643747707084277494969572309011390856199056598975904494004858228186188842083333107378199976292820661602006316013638108383998970395778999420984372012784070434473831740251960182075670039798578855261566073198525840469986981810636393269634523178023604993853025849632872748203424908554332614914466405979310467116127164799288598700445304326828798602512051568169453020429316840261466955760257044912973674600763227155036224004074575571383282036548389273323526024292960380981046504369814433176187006337466110777575431483084419209516459564558088500256863615654314937264034108342011526471278912361928728261928122036650878166755063906108587161371585576220318670336869892989223640239712933330694814558329753081665900313606256016842468651533892106436669587671232960842657834797482422892663132268028733121454208419679354206294534885648247077093729619505683346382633264661480574055939419273234946958056541177825674100646241870953667048851954494165247918086679853440514777439418530539454967115045580094597927588531121210471958228207686899477611352398028326061217645512156841554423643731242653811758192230212901583220638252853291836819624305123251788240538257845662239252206362592350025951106123507770194379124111236999374625583100242881592040393379560293788319039634772219154740482876008438407643789290841808210486619246023116227828860422131434860642443590104867981912609323684712785085185147021982772479418227786275261841329903836697207355368782357907590352807216419712255483782945406808922798808641525312217565071780253268727675046225389130396936514267223511454864459973087687202960912758880189990930620112420959597907579260099394495718673806630038453997764914414321156585945159961988021046986380004944710629527302516822596120305179944293963924844961149297346345013366585934156755284136984653929248214880501664300449554708837411863677456899395264665142573253909699849858152566950914212323087403653354376898827068469519645140422770192170901489705144912339472549217170985115365522094444468971568561334475903562750368744629581152486031563623637984881949878037327119822457412217043592937929230338795003143796421388954786095670936982360581324750778090849992820579920444526579461552799257646873323544158005141780804103390834866594912455372061676545440124076629173065208489270164264104119473637438739152715598777934183848555825874721827146904451055674161440879683600943134233926009476490283843126418491369697948381899876490399054036818966592121205826020377546219869046095445103399725714485279183464021057701215334930240771397132197666883262038659407603527347708086411176136425249705113666604405990862572046125756557406349819012980777564478330578998470425499236137596290804236245229928074243928465428725568720339136862806228749585090825781146085659190382000911091812857885133572125773276805807716343083016598310941592390908091194625999298289937248975554664057108259400576054933666581025124581713861938660830577630306224942442251384628943679882935294801765598529083500625825062700311152341639613213888397808232197793841583296275306872425953037543066725183861992548951269386657119312547895660298913697545552234473857167036699987526836995377602529998339685344385886762744211111022843920252878063804369431012130558012949941220478579561305224048618427910793471439369839428610876966441503636450132374880053937229743565134705020156236966255297369530598661645373761166884981502576748215092351785921012674585069206214667621194239849582035013578699749442216348819324826237086421054444663346504723913655584131435797490163816231792725555982582671174143900414280464351030759909059528634700490524707136708765731810586404703752915057150242278267765557331401566203838763160032948036364675226584659761920837495285154389999855001326586548828257951697490432856422041780120773961898159807532000496339764854445874548806573286135685367849620077252141809675771016534101990177991918856700300061134692753899529582518601882347863291276523137866787559448891459418252446243920056557920706334672138171519929503456102493974148957870870630505238287651348093165465259964042525062271316626449717835788018411881813072807388745355050090473606451819037099649741555143106401420706810056818405143462141338376434948098658968858269674869877239297874338268937343075815627910125312743356126365416100222935497743686439946304615891622702542355376460829804675717151605767156962186073552643607046851729685995188312990547171931532787041706727933476294446308484884535048795450412699330907584762851373464333383533190430302511772871847161066462024365089617072731212582735807673693370953373175832317103411934225894922498865014092519099477027124036605699283203414838816098019266199873336379122506047141615795981113721527970826766465981201870718738532154850227647614644328766442648590078739300673701749439354715642366192316451713414521693318618962314719560946369659168258667790309938734559826182941324600107446707036324039169655637234167528420238772854801440403129252335421454704877436291363339264715790285715119526605950777264235103181763799290997051737220694210861467315376145591939734640190235708641477654045456193362572580369124263121096129877026852681008093723563018987803830975450438325434035357077301162034307716777229525117458596292910439319252260186152143001412270887041376948566052572712584014952883227201653266981100214026199410114771276331089539948713327137366260784351445357718370580880135800369907135483464604081563313490531178100706250428115875875809097494018894024026132351956409487559718574435165666166991255026671459209212192543520576927021864944277659320413077818537139112719535319552001022258538725394733143005751687428445811767411024138738236723591127281330568460948129811536769828541049827122754831955041808852692448230589554381737881307348482094266067351984840016189571580477335715007946498091410564889964151694206695846374689187032966805056313445395686022313092657101950566195694062234768783212264608805300505306789427771805098775415156339176703397602576649473580204508629535555760564026168733946044800960170504452859770970399213188494240064043031194954023435102224587387811799350430964828265707520907221141180442944167748315559247183630039146888573769059218901158542746651176040759190268359535979722345687991930034217445465591484895432412651031180113735420017842517103136055025101490258535713191724511271718226418552969078191470739865202431334155840980224078179568091259864381893311752553899094273447127021536093270926904978902545442616197716585373496030222675892555415750899350268070278734957754018412641836492939019940891950727651706678567984111239938358201154923305345706385986757438894002334287169515149908693025396667791897189402071511623973402847859315413991316889734383652260758179223115992518780341773897792330612235359987061450426036353709946393240863301124672421857062791858961244141751786588239306217185094437085232975901834440988545471418192497563743120126503557244045221830144122713233949844474665442960762212853824745509012762392771642778738625613651982999688037589621256787441410454108142497338778634445005623310154476068591117695511314325174671678839509418519089944254316322092036524888758231981995894609833479327045615719258069298406608099411663095570273800567636461485994915041872928517552571985142552693969020180788849171850669921431086984400999035358381486155999600257317366862982103359313862282720076707958378707558412812101235166966029546113397729100746524035212976982066596555481404287921698565636550863996855304862277345278409738648982027112814220921445387798821240054479036173281842837587999986722936987436301176317672535186098458635796162638036568702249197301254987768450914445280694771289061973000211544666192268897040413880429245733901993014375701650695003438333091759444215185342599544129369474013701425693364069746882244346872773518430328533376883901969685342308410035319210005720245958949330650781508063827709163692509352013194121735048460033834629235444920016626713713844791754253879077887422940067450941746737900608322649363078406540982595954687373063347893501699461457232189589786348828985572248974392833042623903485887350998789350195923190282889630682149255934039154712562293155901972216015480180092461214779993387859757241951361631073243405098461412377964870109698921604073918786308339356278431667774168143884333707029085473275250856869077770467944746477446861140354567419408233364769736995685962303403417117095743552060420740653045404665750573048513422992015583462391347126133028221868938019504505083410663594237095813417982550715482468848273780098256084279634177697373907841022261358883668439921642012479172351951854172628425271182279760211767103539963455523314166863918672965012113186097615831864952896516284840503538963910459393070947410558388434449299836909842871068323513713865821087293076936737248982963429608958815783080033985721788692529247432997522986870662166643956445068496946754991735244966205758969182916452378409652884514530400669011981395436409647742500470918950122710528310767863253129420285216660145859697980259497815322343825401648363359428364341945116657981426101500682697075393501528284571172143959825922723423660427210558866695579776742030599046793807647009016973109890759579040095281481703269196257056368244590065250010266988668482185295426520132869591590122296687021356365531725045308375168568175444865432522505317699141694601589781888835926994674816442991056495153592774616695532794201964325563629304900705472271086968327466241383851762735289271942991993496261926069864825788912842227154093543866891419335490340791497798644079859457885329639785257838445141701679290404123503378352802963768628978246489857622909953936017677152675852490865574195889841707452380291296500772357655678613583351982067775573380523094458342837859867684217520384253104848812792210574384608903902501503315346562315409421462294150252853281176383205455662361337266797278113641635583884000509138359463751786766466162469502555032507391708891635947969425703878790458562412161174720481935951746025075971682192292524442009279875217228320125426303419565240309158927504862623820089567908385796810780117934135416173717709253788604924655267277485539996993648747014198951665505702241046633340633125628135057220184776103942090202552353788095165836129791423854053620381258168284521392251207544113095432816588957585558123504187196615626789721871855287438755065539120234971999709162015095675554192414931811269270160320447386365312362365814049017254107438019028945039591977211374702061572198066025200450967462016205581336743791617190660101687581820712808026311610159257052260065631500216817907633996066475294270317969426204139562792707867465465113145607615342541156090367247302488819535934408668626853147829847647135191728017019774947603284774121155513766308089865610175056304897212702389486276996020335933771301334567361080366378664538360493783790140630541205994713445593285103623269679867555866193673825818054801571049156198354644508639440765644125619284124698941555799244398675966481923138930577446399623144070675334119109396345072420359547030864400515019940269116620755219455727632854562210701140572968549386270898444837451530303763709211637393719328976243918505491894277190922357785903695150811677998603816932869132635585922528812386178695485743147132677624646595464213886306750652475197795982776684786289733288541873205761665963754595428472245197227479754015933076261301721648572304393056387965009332626932262258551012936203070357767923791515650993007093399394112951797496754776604025980266973083424960040962773611836203015576654814583227874952733805670008424764712681144966820602802549978590006894239276356086051876312968091853455810610920461962014170553013662986955387688346140206783460586843994466319440759156304414260539234020653419810971042084269732774371646633439184803446655547099938589630723796828092356525989763925770328466204181105460339515467996174673911419561629613695498770645731511474098215417240016553873119511142530345134024493196828911659217108651287416749132000726560719317003286167402387477944256298498462552993523866899014958255173956178117801684533757563530610922122037518732020545318453841857374877034474334340645153320689185757744457541992978886138040243609742933146849410693507266224086473273974030342179776828751588171772230426703394398025956190690916696373900900839400835821768424156933549538238579457682405891438758453032903010869370301343398463140311043656029557986260701919254739563984457145332610107609788800328467666958770686735118767417533996165645941115749415617586257545463188547926707349776457352190186675531920079440702634576243912759235738346196201306245529790325646446261958175011566671928430044092258149277637432393822833607692549867630682646056273580772919088482697699456002857350079853886610203803723987298563844270434695069349707924246738512189383336747372625848706541854643042533160907004832458688231433206272956023676229949668783809258222127975706966642868591557988416657617526500516868564916639767792934529799332845954882757423108514679924773484105272073402646461816687977481738221169443299243544196806476106365703750160233617155842577654774512848847701627740380295339244635863730068929708229845771548161678169200369307592275830821557634339439510311678279047831381359334813166075213116993758750516508827681502736574964067454994693373652256760117815783593835043519029456670358739495867418039534541222304926924086402249708029883124534010961775741639339002106235215661328912756311819036771843993019933208178057398985492213833353612551077093283329323248781061094399999525363994592581522440892693494830317921504459479522041809662536162817001170463812853414240357556263423733496627703228958980548228661824604000830048229578751049700146369266306941719257565557588526109220992333182852843114377256457276195001525996010450812548802468277055521187045101101457055622050043769643261123642929875452302578519064905611452414970731481794547323012898635319330642085408901442098003497670095469338521586928482564605739082774362049204828137975478582645962696584985008634109091564833913448454246244999754574503854424958849653498029800655881662737627348916315700391373933214729750965319337034480385813734030262792037691640756591444504363958538265894309062389724630727473791055817893035626589315666686737112354747891604910193128409337021132410170735588541633641830759621589830289164396198848105182295951452597424498507375277279239068703683018230902701926245339061816961254029898141245338360165810851966208801966308634591221091147096370107879163431905992335249173907368731668396329415753762216560550931379103427288549196390930728428910801411959536094673942666742078326565952721225254911782264883525601177622097161604201286956684502881499867839241378407063073318238303942849095985260958830890229683648822528639762533389795271550539971616901275952653384584175526473502519577062318836841448914256459703783551187001811751430018323548128674225772988804829753695065991908432424618190295268708409179480035509560083283169449349755444520851166277369395258323862709241270485858172995304706807435610853508068408014942041124722178779222096099599711022220132705218267336501827929189922158629813943816591898881445182959405230316719409112623831947266138222607284061619423359466287349826688726026576654207718044176201306951586735631129477162768485280875732182412496731157115182529650771235328306046384007500869225446440972800961007790308106780361316467362565968301078116304874390565869239698246536101664592771975367750168225042113815493180075912317560521825310600056922821551623716432229816840120376394267766018574202555301208596608836289969488433836553000889320067839367936160717963926197162100162844635672460003556123154995993128020952424526032207154596566664634662709315960812583239755469574648481368265180424462659178006706408272567610080583527633620111821604556869236322040617233098569450924634484539574851446148197580652563158555049510474495725798427707391103094029970048192786836625150511972035278250359890740656113292775164128091853213375911497003110422291199538093882575199307624671613890288298856474889290699937659028363555927661014317621383682669137818216768888877554671821868930584151302827603959305799528360876177339753739976814863124912331892299410538830356564654278476333194318841694638712316323457303534390406314409097380673034897016169132250503060654803132488898287817614798592631576099209204410288663810849413611199678343858402310921183379871613520085171084277735279841077566094576961160716548120321153572478626264032927571181130290554251935071185492969080225125979951608378265492151070641183970695874794226798373954201220006811258981234507311526954856903956298288970070960391577374078045583563010533666172838254154350164569081625421847591864399161731542524620631028336559654670281483196645811023937916238681152395205834413884920208988766756994308106237963870195637816185921716711426644060867994788611564878337876362835534290880047621473902712208225867979950643008420543943945998291717522623346985256687533932633394951393673181612425433604737590069679255242656485020040081636813057154911306412077880902233677247878376408054613565042443320717865509665525690164401614854956990984555481078691575717563370591562885986290735318772747728140514157854185516651995080146413566032404649381352283729811699955814094679760974019422434016436600534490958335655992727746644876783449186390955501543589176185757638350102637550645138251176389759362874927882143388146361140810292057200095293523117489658194446634977560866238347191970161978583675024095494086678916173878966333456771082561697652528592361236676140501067084403008521464307028655697762452632585291546557671178550708545644609751487407932283636610786292381413481037937610819077549459818876407034988631341545806679572546219326384042588946583523703715265604172468746306724261857720785700579211100003179052529150441805480908297515209528262628292339721755497481348871820898900211259503234390592307560437500334284120138653454048822737642011845544046524633547540615693054938259826881809071145745051592571606030038503698824842230746146859122472358750916452853657549205423172621100170501221319352189911078944564426281396542182875625969158491928848898733369420520112180301368098258548019904272536800017044722215509198575431582916342896206139783733016289182513937321641237457804986537287122275618443838329191243965918010311455306706049685579859910505736224493773131002555066033156105047149334230358328028771085299852382575664793088514838929353228575339770967814508148618267212810149049175836936847940000632836289691806264745851277862938228404810611646585943375696111221922684792625344962482086715133226942279591518086692392529725532726889404078824770119109351056248965130291574705735419340534596807643215391196363195689425284391341737933589422720170495395393010037438641167040006014476410421384393626383410384081528818344420253294454175835930577448087856058883150928674531103709595661388575209775858590502540256820200137001870265392598606544068447232475134434492209904022457652410907088138985920121526080509913291210958557005366207867975404704339878636912090325302951336549295704129850127706730154282768562214381753837482954935939356134773201932546114146396297922900742092434181265064917817583437068619910769722808077255067022600755798449084384893353121991043330624453788775728497427525496647819684964349885373946307468761859099475759809600116733003441615138879728982222340074542942999480294563715755126497796826770107586801905325499443885815150660395195629484988935556939361985109126887729553250425809891472909385653430377531930660489739742355164132789116479436090515772923737339509584869057751819887466177194762975669302122042559468912523505412802864289717859302381190607278330935533517531743704183897973327008788997689414685029720398117928667507013658884009326630831467807521244822542445051394177830502913997080426097647040728133031052570715710356911189460055116969185784448801328657618047563985652701209678751030219118995983435669072307325994952727439195711013064254749447687094391894871376656965773274310018020229222779941320450260788109933131117955002462915658832474963743641733942317344383799001657764565095627714636817191909404468819063127664368506264425358298096019379375203760675203237299536408360020513159742239595180341544135332998992445445070954265334822798776290361280721183171428376323840775276453131897049532765955510741274591290960559420206098238149892877445898709539180360126922303556267786944725077805420710927791049609069666255315378963887697133480492101627581449020999086880282289907997184757440022990008303756589272349666561805258966523761944976750907161582915122693191467099315145534251211481033156186383357362466438923368476553227447663154392687137259209207232305002089160636297541201246742005140659956368148758703625195760827719898568726690744734421263804455679295592177138624531368879141040052518842714181952317115242242701429850925314455635958142193810803147608467617172576162776119765393656776733016485863789998870813485360310724226096183842434844347763611180372714861016078068573074123970144328411399568509881723799598357086463524552391309813719263894495206041307255710381920907042558706084087656080258680782395181629332214860900560589583051185312315749103555649012413661588585231985919432308316138697708415897604031376115351969578741169899251966876251451458330779951605356115307559214141435785875565757919959781518261896481126542176598170938096392152226164942779254777071121640891575575274348757318551851725764159829000753050349443688231523131243427512317786721836596298250990861132724785658540953746605477572939364485251660272955665168235319236181791672710276862786821088371249734028021800241713753859455500989880155585219721849923846247247164567355481306616112058351041455131005734073476982665627422422979042272785449859288537124906827264562522929729803977349349809728488644525556195246868276469865159309856773700277638350605112861400467449449700016213229910696502046902656730132761060780825859565378635501041113334637258160285448107749058954310062552455132353903984922113492835883847853927202096427643494387284492362503435665626011144653358550254198637053886384085148113687363573504319300333144447097374695658773460661974465416412623015261450852350442900796622774679595603802155677369786898104437336377088987280951368617558919613820045255724011914456825803151160631672941865538414455053114858565987560396123695426539615133904338250505021021785121095976874751226744901272288320817198708520559739575021531505678134297994389771943533883373359706866123463875283623665609240889571027455129739446127005167601229768307806291076905663310064229638841942322570498487236278566191076684252437634216279647726579887848293579257212597846642720820573451278905034061894038650451821629594316917913093164870867838032151729476080066472831224571167519230854546186266388121235239556133480876497813447957861513096808620162722738178132681390884253935828364862555967874777617715914987147331693592399242135473642840045134154252204618668506500649117332220667541327946803046571919324539764021400111788012379274351928362725910317832723022841817770832886442712013246629239393017164338527267242296954028394104041242463948633732913616981530542346952412124650508892624210527919518812817813961886655587638477000304209139638054872463029349478734613694243697037009125204840767093795106809891230565342973710929249248265050003587524949309186722700506722777235775583508955264082958797075190138615930619439811291420657360960173221898042118113835728919558092813038235761018173607701404477305689260026216057973550413075742653057733568871672494740165752025227915969087980729946256828063002300656899679304464380806266568730791062632858251948339627913732317451096641247386141115724516633958538010603497425867585464091749056192737658431306986815171930254187989085452987536308328611995893070777753252067521506824033518325897160879828123644891580664494338113988328934721497001468072254632165971786712766570469687460332014731737018395070199282026140632917641431599686312506088111669506846086040687218798922144304920700272549800652578931101298504630546406602602413403137025404900783697732067674207441758957540710056044603758618043837166502604316042564399643415319652285307482101501839885876387550220916273885908509953215282114433296709781131239143655676458782457533403549380718491643419589505502370088870793248152558546840277041218799012924842677666000059555618782175720324930160758177196947921331664831245735109799566622383054447317511071168886026180415941106677432640647690990337120594602658027543625545060241836675716657937427839612557070440828893149401301665563213024072593716694823698819636266752518919048891115423581020947313209845586438530993362322667299651701924386292729666590748120521844819128008696728412328471100560518629891536691832597992057843351929421796101362427353296250600991560379704003954660422755269072847515762294742447214023315160577220904079824198590740554624432326369899312212022805571606533449450640405322281433334836851478855293927338784542268593813410886111222831477647939255670078397721844446798074986384193457452571449180307794853012195822474320227322129608419044274890236877536520058637154590441023101054370303933488731310933492262663575352564353376071832893443633340132662503500456895823759464353672742251442586466145651571740793937644355797560607799145348012019621242952360513326406176055041334557540934446383896171861885188846035087593809200963710410553822435173531714671762045983035363121965997015226056817015956652928763769425790911629704604998156388975332867470603659418050693784804313761007014331619506818174248985678606072491304028499226566066175001660331319098475565245268771227694113082048614450611694549299831906105659920071936170305847781170509265980804811630643789887047998404011153907557283354057301441977336382945221074145854048075457852944156358755865674340352962821881658509381429572014894061496871826332096179988343098544322648156843740576392462595802366724888405323050479577105810169540323653111521733798387985682085631451892042747388108749523213450331826479692650316981743294389741398128786297086104117252991473073793017689821924093923314095201429756609579368408697219381490259525041047508126141948361544626746309547706671283936193514583938656182487924256108540042733831280245504727426254375871593757281096883715581221940205175077252351128131512708564486315010333130412177541236861148933717056054171047307869908985045934650740549952328938725649459566780368037021079063525815017792637086459391877235148939079797837711970137240804244915308833660713108114336210906446216681661652816552653649342039416490874548049661845613060367742113102817641443071296653446002135741618797935082030691691313212341483153060277151098807034300404566880259707022788157082015463641577606892629861785106957573028693568790402774297919288069878332100149680423221552882558631739676416543182525596020081568056319061229579849945819868508755696056057106267898527697204766625544046709654746717291466970465212297942003190939094376998584177554877079287598357497971602991458365234593312300085479251808595977995115032372721526052364450558435362565967521168270863814934149453534464511067796771619467474143330894743415400371013342209777068612844972240861871838959928514724414738032332395156453706331622020568951865903511267485391269467066134015734683021007549447177734418036163598791316845721731368791946547715291292964760200733954319699048159507390690484512139594084451923890354746860611414793222365595591565679818396947869617360834564847003332568742597770764071846586767695723944540753550858722493175152644639581828172954020305838157132115306488331510765938605316543848265135969564147394853429930641607301168439500084155715346429192706533791447298132929916971014405968125932267288988529262684947116023452848067234205251925666463973496382197291371502148907203445460078990113670833888038678386771638422842818596683980048208237458463390796363485495326836310218512067692870323001942432541515227168131193085385490565282421693401204977985352845829659723733406382030914508899686463334819978123865550754822898886290679985623171770843366812555236178838044195317993937508890051843404394329639167585394634454542004665835733555134781197049417860953172100906349429990065529101760432104125006582933310559697332626079381103796573876156610003039588117209851856996459448924206140357671859343966768218791080127417241229949547722636286654986758562936027074099529056082255543214816119023966678661669688643559854108369929387291947904676341626820249047247072999084242531198360645434121706978084233976686686765341401557589775503762821047577616701395528864958816745564834543266559771733262710534829262439781678871300975601187842311352683564619410123686908187445357926878613663191041294653024782194892800502082275136234837245340137488026333811036506235351332598059108858198349604468577282074909946851218727099819469854299437570215992777479865789158105969706654153282331803236456394331243024235378756555953296394230513835776807984723330950803817377198015748124474413977930713592872778157013092000445787685414615734330404623344260558489788385061227182843345436936068912042584009742861371018495582278292191515608248367468519491099834190266843149408360663606558484786236760370568149453768146226619912345727473048544090825730169442638646375529120032713867769568131641417397248689684404163218611463342885776230109153022087872072484705461622048250288819203367956910178666482196079939087813715759814835121700940760936070877613581109738102304110323733292422875055230821011418073263043878240115025559726517220824753629351189729655328583941230504479978026610079569482760650315194004296310112227830200356802688096252510676543777791107546979208261007084187986338043796949433259909959953952799562189230469601555698295618097137534425014703393014714967683541702894442680182225918148752849735622692406370350876435888830559728634685408919415636414153646405097063904165010154343176564122060056648304631639791892079493552832405624232164780554210366633466738912966154698833366638365906566606851200277437536158148957232469668624465256641850151676266288576665553040789286161350759783800102461426335217706950828787984793924391818375465894239724160776812954860828210219698326541298703263509930766391165888478007576087729655454192533040676770451932666411960325591568708669571114547218342464945313960635686290993290234828502471276721243426491834374196324839879127716830073576846890880709250569715532960528273637706097367316878077417978138825392124128915582005664247459647769353477490508027341432845688480417868541667637903748557191040007010745568027889834050205104716733789433735697650706786896798420779739427852636454300560453881358594204154223674178196844072250675383352741391729687431796660737608262919579400544122159364146367087209007660485412383763209412974413764786477334544393148833477560691989298787350845093001079731177300638463175537895282513113790116725991570882474588906745035566388708653149070008178911648565963476911113831997602266750896468270022787283972900324692411608099740423095743346253234413701108498093749289153118731078732158261733971681606276528070510876623825105204047915530146647821412051915383625494108937740906801585374016844830704374171676717283947768321702995267751960432528959175978515820685868347072665436428724242700329795837688864086996171649938258366274036311459568275239587173776994165046639647897043075636355240735847630651374122900901202621790135270061969094999412320148148923500250424230402589925316745542060276907742128303623021152569168288423989480131765973303356988713516165318454999958043703932494338165420978082688781345345497922034199478708162885937915137826849444889720805462693256543242316673896601502692318546787923169455559069267291208148518242842825675989631456187842771771923769514439227743714336309971478598473391515553961997020435058989928139346168632344087640355830199099032156170503748031834407129784957969276756652370711595059470975567403769033438921204522509241726713020574969908941341062378973115141788437974286577121815906094130077608330082017744723081358301283960853471366480691432454061565662921970743548783058766948576418113602485530324666251079449273846994531691163581794249229638228514486666452392730133484454752672258194852322140538190852753019341475281545771831914249311277752231660272203572777313278933275201033899536347413309036444854220836966298370143741232441663050515623807320253973857331421820950884568158059610037192929819037154917434608969068346057287013425861464165208237168119570808760913263945744637250050614948928505528892384933956541631880173438116171248393505211782176337683313845866988885874595884746859093411046970470469267634090550501480666331455217978195719539096084661648280616433379064485616939447043134621449345444240026953723910976675628301091148377761828103000259724190262242711229280869686025478994703561141021869406241797993314785925485960463631427078147550063731568772230880001908536959192431102683423670717049008495653902749280029919994955715760037238496546533654805454350978597607204514085908819835457970590135031911981342192834997337105149649061602523373534691472599162541203887520320985023813513538397835628690576212318348226917421018822334049741974570769517245000223034801204921632946549868983770572943045186079923726562502761737255591775364044616883210379080060929915141109815269643655260738005625261928617668078566975973719352635633231150587802843927315080287797409572038455931604030999244921996926824178869510797676276069551259360713428023562083255151032388677051985566591284580026052042992990088055893465961443980115515130605661792651577778528313965914950959693147946463924260361016459583395339350395364942483494858573405726236596657788358277145982138422589731547237864452048072654962774545697903779286528521888868435388582307805074370861654522088565449868621068861407118886757919097599495531815296647208079393258427280210900144462777665609922068409482039215810750214915321436351548713537703654449643877113954569699376454089498368407039590875117791482573121485437183873481206283542647844856856838157527199436492434357418556292142893453939589363154530444845672337561778393304823491821024535852742503093611828176393956916264962643299672180921508100778074594999961179351703756420405726440063342880011284220397278079886603451594752101671371165040232500561318966543830817021948045959288769854428234416239108913629741602260376494531661811362857912166720189772941379140380640291049734935475258798241103119052164067931399081502744666051182222834695180293906864124465077739775483072195230623319379713646715055336886555367825760442080529343683100616043189713553364598811054390416491935067967962193124150576705654178187045978651981854176368903798252271162166676454590770449599442554344438502019117317825449131180545745817061069842060829096897265949445805154986495102036558728185103792885970840290227858395708108661044360369739960437587010748643459626192314350645410629357934864089912016533829868181185185112740120183852230662840994110805939200579000906020933241703602111039492504264608267742658340784598108230834179700270077924620301643631569539084351254757021171584075606747372251594585682296559239883874135316220765167946623801117469582939875248972636373319422387885171104092058768155189617642970925306599236414639817952996862919726294867199639358554944302874384181428801941259451353618939700969448309085110571633348749407754167937157185604973323416685305296245948236677086735057237193583672056487429624269592925977082329171683934053139211826559358959414369940047324716711388105911721674998089614340621220304273442649024830838705495886494508487406413315581221580636318734052962455307980368648481942858550706539315517300090315271894356417611513672761956845451112025065220844245885319369919429238337198776523056760566501039673378024798266903232623078236293993701231029999436528207863147790037123726416816386420383605524890024157245646772317925693562963539232188210533929361910495059929703616132928481782174784937873128015719597324643194026897076195060777355660517629165012037602802569272231214671719239184430071091632007044027758278251755143202984981984914682665390737020914507383552399095486351427769675198505705249912281158393325448985232497643996494612206450522376638776878411935598437020774869415948065564317079274115391598406603313297324231163811589421648269990751346564811051336947604482017081255317896981568680867630842073608490609696382622816918149890010891585914753362535742042568351935264839016396825695997665525800658461322057717350527822776490730468190063628545295897390954603793003114980399270277316687048742957324337079163504505648048734859732433260788479586897791900346602684161774824247811622931283355880556633413292083443739229286527152554331397411882896013006348398165696567898134325014702790677144037469808885334489341372626000426339762163535940235622441713822797860528720547741739539905742940522285670769772141769109326232300343570954813446132636025582104581222470602506488903720701480195330866349039166419332411676484967657883115087120680280412590264760957438231166987297579362224235758032188126923436828104564795334452864932949593202502495431178876431063708165324744654393784875092762540053284862142976637012818281041345242953691799820975854094348345183878857574038713608673439884081584211587487732844892657015796576869514573043369408569434384210548594244087021150711887078030037622363450840159859993726571690753685169135683803059276564489515592537231996847978430134063582121558152805101941738926503927495981345476324526816570504317984506642787433430059826037363973103466608941219835381954575281810560085455140429773671581256404496964063951585471990273791517748488766637379273155676541932488669622259217242012921295571529165579798677932466111068800502051781354143879045867188521331489502024771918787052899483771622892010761565440414415541712059328150902016231008694492548852872161290833835898449638537346162066099761050208225360269771952029203169522631811899893756734131608208923803467625751915424692950301158418475126364689892040796524710068199209428924016782960938726670142079649436561960278565916239496966458395457409609453978652726362916755519500703392712916325741974934773291308988394403376812890165069925451968129032621108691851054821428699151338990009987529334505166823676946630880928122967372357841017233496075625515041638366269946053736079772511476058298747762225555315673612947675338218151089522939939776336669458600771613392927053240929066046149547870208243564453959647992249766014453867727749054725487934270648984437378665802017527351516699307352981635170526837108472015963849481347832664210894784718659586789250280751742412777986468545729472125248807033473263877090790765344931674997748130961105369167872843649466200931035508345125700284323269272754814515166593555043960512092158549273825488393671500162685307555530487550273802311360446289560067921306679545706981827777696219491068472244742701560009935412198001661537580484805447710008500692853437959732500413010119372193515020929005055133184899471724517475996065701332195786904765197236720566752479527901289148519892082765778318427481840317715850929773525288978356181943677512163630135553482819950489199521061489460250007605428488651887210875647399095484227905634476711092009349358670894903007930734442573440921841700370446377885893928044736886176208935856857141273926532473779179430440644016350076603035318285586712343889300429003531445772939902385281924658824726132983798315138538157035173310054972889248868251426831283567262065738075845612027843777560050780898348681016182756792193244602657695061500901702920579479319059364398426075292746361516211484781795381935747498576365195937229617768394058259666337836637820692273190824911961422642077277860114882979599348375954948824632571939008419068091687140387034867075153435579510853660095015832879636846808051709728013058830084109890859115174373817227921983928544443552749352387076903378019662549347271109588900309168319672350071378749432158532533721122358398239195275758506986669580105082277045051475187116789518340961970656622379047220748235290416768961446626877206361622420617213853283204086590740042948322202162588847066741615685677952256231794035305333032526863363996716097541549283440123175946364826552809180664153824186946559578618973568235581789020415074082848639209612691742515743871978201198927343133429322265153795135283481113936167217916004216310801210879860351574654721643425833890447589136586107102149409548468362555762413610503678949099354142244292410070965447196789719537686884968574948192670396945415751851588380911127117080560639457741551959389153283676431323921087850982261279344502100627723198191529192657179390922523735900050835879244486572409978411557198785283084795281760995126397025283154014657150281672058945929467507524874200984255728040201085795473473368753703119777503157942412286037207914972033922444834091220057982432297580132376639469231649809838430298897784986932280356875312950694662479993348236237229030393591734010116608475983475106768047526980722527225235856335174020190149922530936536617315653789122569859998217859230217385830117412214422401785413081269956781635252022631971037319727963107070198073957911899648358195108993350242351354341302718671301179976327043436553720602933530730993785508977233811204931137881256128435229417631663541435770511397051936126661220844127365001616461087319172618042829076497849440178136964732234000686588328274413300187633888398309135119937600583169646521305464561273446022097375757941717887858738174431030861953509353026404123916722422554293150444289510731988525388429293733586735849548906146994746709554259431146433714292125624276211668331476632801910030318980680387291092773705617667099502673363354754712162245719343551836576214971257702639862080085037935544310673132116404961460154017817656000096815379922600888047727823641886493521284463485407522893128818508451124504439906222624685640127023493613058542719717256115645177554252761937020920875997114217226145745826893681082871053295260356724790961310224613811598231643754489528968689425830019624710503716278362810461109650886724152187396279564556743749169127977073882980464507362740089233844666018115929606645444126637532126335915239861654203670520042618826100881560343272128973229598342795428006551784004411666695784532021301851894367173473028747497787485970407906548462704526198662634276796747970671181454160073874986057531970777369605457897865325182445015057682484428745645505092363446469034459599063808879005504429919461823392364905059299272869183050457942539518690277284592889365465723753380137431364659908037032515378057673301224990350272678494256665517036339813230633743774708231830112078695130473337485185458810586321763330440754448027948887807623805466992552874843091334051842613549671347991420539043937655263720720129073894215586454861568386821315788125041311511753895914159815852282471251673028038269572648651401033440088445218427263155118141560070789424923926907493289228880099953441493038437657522537041722019491468678983991361201602517717093169097787882172780992684558124451046095979046399642574320243380373697242594568097196627543640311139104370093124843080068874405063588603528758283043616535027317016014031147437255708914834234386155844031817010440717311437576182927168920615283630986830966463717145970234149103722104187330652847710771984320179922977901461454229286822806703094918273926313947405938380378186079606193611223877785033556011646765024927252781737060672196582568406595257726880520704925857218557057064134900344687761480582554898856325338817209740537501578394155730061401957432712580334763584874287453389940110460528338822779704961933037412299648510732410728110001831861733814442580727590042444911520868529917530746777509359364772214004921420749142092613094678364049561633103887462086809759373678193674715472977204656930191563826485529412751433342733718745552493790116594895011107499366190361861120623309081544007724379941902320273129885515665014074609131262028915605493503711989352161264740638535405314249348928843847937229692547199813478752468980829721341084461617202946630420856645796689183112624964178988842915999133112861542445981672171333190077220949021707671868246103948293405556836670300230193431782581417050698531635827994861896596312484956688720948340241019212482270170502279791807392917141653936168526680976588373096910765727555938289205694164899131211256461753216326099717507606466323818267532290551710578834480744351591011012396279943947401882901012599000647967159583590891866938038755400095077417652173651204976464680006138688210977499331922659873522015206350944630445786361083276687110375269940352638937944795814211667612464204444866139462508087246552271316092855385510424370545805308698432526769354007365998238082982660996254287344135866337474744080086310100121148665162573897445196129309358699234727276885857502978555907523681262869743209482158077229065367325379375945437780285035954580766673322974437872535727999754938591588517888785870451765423727924554069624642470442751307095445826622727707596476431712263578165577999076829198873230851798321758053594481323702291510489958569051717162447822700273483760355975539524884075206547436047408273096508373859241352419718715929798084701904521872425607269424213405901440405444985162276347864289633335734787749828597088149757150489862333027140499745232089718896798376161784243705251608583594030995865212658432943842473808541514512540810409335689771584801028632504928989865061340513175856795812628856894254276700833656192605521169834744691061012554892063888498009719728354345755835822227304501187646353536149296905800529988567236742964841751823267205696326789331115890022602440466040046116622122920493171812574267528507163512162178370889901723328268194103941620145582114027849563157279725266819034888157111484774030642327915544621017599203090361120557443743550925736891931527574402179928212096756395128978795339019653127356252457867325721407122700704207680986696106486371653260152378323626111707999010977698002320873750837243386322877808199886698977020127583983455996735107479693226691163893409852071880005677428504790081791409893618994560058647811330449236313870421670486775252111924819748679201182541502154881418230799979844660318033504180581970932786360386480266338645047559767406961691809039074811594049007025658117072584926993684114153295554256198946057685296632013023162130268339360603161212154255538669570998209693005851006266618091385895809381739381926742121936366083793885013282129351637182942897631086008262257834612427553938216509184203339287335109955763495333686420775164690641101437977966613103315770753993470694325859911669616282460694091558864335465957071157614894186328257219153457167334351029165859144878549315770084287655938939104541511699741594197831175473777851581052938561281725590036748898715695297239913108954268782617195809669965365295766575701121128758521889073217045849742233067672115104898383650352292901814346070720592641564260319544104017716244242573350273657345713777823448793341994911234975252817693351687120347500949612854626706137043063954148058179610934960198341554117603143192601215269582586526786130077398763733436852380975521677682502499989227657407448048411924092916336353362201429193650568385626907069438004856019899760100696714616584514306257304725632112933220496660661628467780936040117426205784325269368872831905314361931701025872458131147345731916394640642302406879947247128691624767329748427769234589181704610526937920779974357725238498409212362192594172096497931128705459162313403533122522363742365624061047900864175718741221406507815025303140140547303074476469539238868635140923647174976446428146811629027173325948293964711998417241979843178822390132957733217089043484026551607179145142819889807557583850407304416064893649845828356397753498965766172303298234907680326122354409837089667918751196558323128349483378320703357914346300243858529212277248810678896133254292504922532396595917601620158557780608562819645382935003290827654763745779323094993077077166522771274648836912257342381274368515419089622537669927743222307459738998533813206996471975212654699809039795902126873735559625119768211188351572202105026091702691572548072642070940730203461787489278788140865274812897982176584301674906434979503430042616538823672465279297933672951204704656126987580990999966514748328665161090364635005793721089289000560896622581509443275760827733637602126123105854815744655992005311892263905023059662351828068926249662165762785556386644837304799656465408405462183523401227640784070428452034562322294059969518023299988347163109681164709285802172829465448314261237372496204237400786482048070967145657784375692417827319572403028359298231757791494462453833120428080268598828732683035406350015644098356065296141453740462494148097087011748868327022728754541529765295192518017588029592164391693462378926149461938971242214491857036196463773989614718561765591023201928556556576185808165444205035684391575838520922618383065101127591213377615783843029285331138388951969848782319066794053449513239606653478760995354663241568655068743963862791163935591937067294089085339951143503969706711945717300069398172523332354959255764368843872405337212902576767132956530126778631457524799547664399719243173653185901161637914894411023986531745247238088851576234986294476489774332447716035932081756625719911513916236511936926528618721313850927867689060938707838700616841708429113071545745422593094717121146109747130846140587534236386117065088107021040584611330258076374023021227314907731363984747810132811688137898989986820653477548867611250538617493121918832169790191800150666499834790933325161804830861069910485465486908138658317732338979869153089127189267515656901501564312218025886168982771603505496164333976697070214136898647471423799451719155581699933103376095380541226467933679330943089969066436693884235760032187120000261308275176542986868112857438637237323225716572959686717150825673072220767429304153891442760529589510312211566443186769085463186899735473004948127342134973366447742971333234732288796902335895879790088977339149995428031816340493044203074163592861644325947532429071420199809503646904861567777561803721671999333072133984767321240267597311886704373651391650475990015295430042126955053975120380212877673489817146951946372597927380611706131600681288860584257197337273019378304073113325648873940518990390306107027174256035931278826392153344346993991277909021937107255161165012496379147311165160385161658191080172086891347698468030175237365775279593049263863836212853086412276963606861387873709363074828849944291847993531702101215870607850249010461162725799239653108217845167114473659348824186128768788280920939295108023661517326688760311624050771066063320429477565279545289598047769224534801486564109932876400397500617752687513860718649812903669642636971783523633674312405698168661199574117221081077576044392519351350187108534235846502095749509110730047595072869217464892503364682348521697121211210317933771632530022245099294385305647101526413632573568256836418530343693622867368566171310260039966155038686142955727925480532656919177680095553266873703688557611768093027869592245617386269819557651236455819058755680398071765025783923003314685356617339288192617946870562056591829380854754331270242399611086267524173083729983463932294010453278312526657574217043192322209065012969501673095875195775219767174287729103392374619343162636234471086808350612942913242868297845498427026019322929834857814377511086171111407134465181621557586498358209431331296572754316286453346029023758837149223181546719156566103984636129545609554347809841106545458182081970096169546997009833717198239584903973162623409574839431791867547569000477708732893199051130622781453607801912694197208301464691225294739601067603532280655364566269245231959083644336179351257560197841681160544620179403716331692384726477489848862998673419721600042763873456266658045544283783696185085533262217148795127669583324138271470650485348948908589719451046376895853326120643169612018884570132455513037942167773279652746526261683852430549022706357253548087421775981577829691148857793512862857270145939626224085679388066408447335817270457314430683569256764853138742863931442808743051705539494434577208572087213546548884782912496845467469022421877745831218987128106628170902000211522548299692410821465300561678935984527776157374728835627698722081644959364407264144808437408631521345031626208647669101008386823965452317560598083263414613934951063671191420344521558297373048208087038777517714400870458030566380812577900400833933011104311428987833382147335828642567716157140153513581000378406305237240840279617305539362324242641952516055991846983162269044397464605293140586621123942724296715096668211709928124009980655137847883355679135927173400619734236387616416583583621382618053126903354745901620899892092861062106897388781016715299565151247845446791839188928557840375342166096756781357586096605308259502890302981932250546985372673679682395894806143934976394349313038054994497838077085111004546889618087127697920229545714351139975970392202858485350865670048207872831542993219931003160443918997472468560931823253384817787483468455942914500603281263647272327138098976238488009825001620753097807631633494923877245952806303652508024273683120049580070340502623828153003970028558381759244948471839117843063056187697035774968575604998666185422803333761711094556845277188788082189290071152619221710709951348874575116857263504682382154990912624889309928103664869595678039641400480174049810959109582906687696816687174577835662016312363110789245728624243934544932294332052260861339334778095024102490784507170435582029697967387306253126047823928385979136345879778521341225231917977693641524633340951860685468724615077844723120069962102100362137479419746371823491591288029759495333445572459389751190830207387318944124728687271353082646220938145352422790869421706632921253125470975419413194950872526041272753821260638630555969565343385290760200339447796200445021690932802616100232587938750541421031526315799402063974861111958687848262826085331155681030822374213852901465249979387129061432938429067627472457621753779372111603949197139544758060170387252644652584170190829477926138118313521437012777003399425010486997257421033048601997165664950804659457184156279981344871630503419262836389159327116020321235766748384765536080330014734478269634209333960364979758945280396377208642018352830277848640756674031949399945781437784214746606465255151135585286004102206308791991608018777265600734072518725467035064306947902137381920591044431606005790539934506092128095966422348375661660470786192693425458791954166507136257241992371309580826899835332468392687590898832496198331690514251966462766142333930562240637963042817468274913588241275093874599440000841338219457382410011723953261411149049987991890610590845277625948752421825354817355507839982768323254239327076917776430219187162394471534619825816247086476421377720890943673915992289691693563470786335154400273071042269047854911556132277149641745436715163691706154487706286455031113094312546362718031860040854997013898681867682576543088585776961475397760182829971059943232275142228082642057592274881177366937076796397325320728350906007883883482458242681405058788884538665876916428517037988484465171692295082865436331925322420390206143046680576754024922360449381539391616567436096614290327662745989749827043418380590279544114528293672643927009441372612599151648626872758976986028170126389957299235047529751616371099560875081081229963837897891717174847898572808914216115078908948227050657744899321848301781872217322636595247455703780981158909497939811767847874439775227223564986761574321501350156070485973838290691778546158307529331667610024219021016707045037621734818260332322441314398464660458245052365741744582707903192875040692010336390167433726614259346061742137079278986265035356271286986493919838020315442396386252632992567536488028622084409824550374999075228874634112882910196246258723477311237091499086801986220301097579487417796272930880655198149082865662886745384435499216195409685703802307551544931104636751940903105445611952098507867743945611762283335800020660486026424967499426627024248039585937683922946961998820155127696510828073539284724794920718842241044984573508686043117835809854033189213410216220331502765249141450994199719147588750988125573626272584915343386770871037983243461792450421911636776605587121331455797683306411235033493120220461715312544218398513546176594177774970825270408106476807652237373178238219378903240406947316213172801663393226719913058996916225583612695278228356672516246785375390835133282837917411018144730065185172937228884721110359559778990364244963874415276370982534190909816247832952801307681059916375338179933243932482914415992786557032450329463461075817838973579975668958090908288296665525008834376015338245993275246865043299629544710866303476257008339740790287012870228675118644085843151213532368607146350644192306479237389571362196281008568858407509345528589537964831158637144682186033408619160942092848907506263451528659971020280382053089182619201925688712342628650402772517420579518207396433379171476612706184771823477548134892044883620740858158994035164515816576265312218922083821180550015313971021910891288624877060415978568542093417492443852113911526248927306592539733785479049844531368749439650661818907948954399125695754764501614073914452351555021201279337377523069159195913329663459959325004383444164180427697947339034420518485762842579959409448960436081355311788297329057845348651293114859169771131590949893026756953049014936629811848102030933996415537727136601392621561359691700531613164713520658447690278487287179380819581736464027183292817424657923473530688692240435208315314210306432327532963243696991127588814682155117288689801643778191335043258834930787671859535593104307625284767088938322832726235510065214859803446613630077156007793112171341503376127062819943434274119512906556257856146876118745902456110799356414988525326741293617870431196274142082771179962949731127579398306467184925329135839519936617375430419179126099340786913052062672488859313145599865729183246493204913874012345856399850346669641589197989322413145020547825211500305623082653753405152705364004521230589317591268190187124544389814764469977312347382203700755690873059049834967742373376888095186442802154702881585806815325148796078142638226117121664688690284659054514025155626726468871016466541043970477627134180070732596782630695359452420315392928545669092901256530884362954078032703476584660507405154050896859874593645413425766119241253373860467645234281026030927229184555338209121895733356782711619178413794565182410762159024808657845642570465894880041973584162790144075467763121515545922578423360186111114873534473104288982358923267562414666486029310119103511827353517881091873880144520891878863238993910679648780883282383822295616801751471427300305300724248979621184537609403725705656026440099162712214699754356382052313769229561053118000910281599918334491358760437748525098587063860971034982273122519301098871792635984863662612238494142035266321449182524587614486183736494801448548125570517763392896288969421492920957731325256888627419237841686564836801225230796357530422147509507535271329548600005305958329559944166908131726751197928813199229270348512991581875789303549610544452374256030831508419987765269880358587238392465693384617241023131660812005233570841562301702632860296413960890502655120618710720851676793899866391260541918544010628878177701285714809691652661171703186747444695492751819181141731464937997437969207925656812253799917674245152905862437602886444700568768411496654120119306292551208328517134383531941861227341332373350452913343777412952537797454433961273532902256128859362708298215129060818010199199704889627118495677251941031570151752822773294142950723041891606368051954401386703157251458060064251509559629594108352005080909717650275992427404026235680150898547559847184569628978144181540769472205346116027707185487931946043582404305111201223208890497145605357820309194290363141506159094012130916550578821889962030622075572025054709637635425519177578813000012095409467446218346754727837400699347217578282623594314936557215959877249694174309668751913899910866196781233235134626663208388386726151747052313035786277232205749328614077071212671633974771526223385487466054745777104124411772575389211390419775647766586480006013102034378741257055897295877870482876740006900840857616277412086617498230025563663918437724785358733442032340178504150015932318766912992069893745151554517560252724008813222774060570744473320797357949308121530267550046526997303290821423132511254141210593078265702229559390687916656555309104176996710979196074347933561865346396652588330612242940554081983175657140249028601732152043368518078401116588868569227912265902202688048326394676426875595673416377654463812697219950384549722022117583719430563935374428133747056267179406056673037310662565186451726514185077096114635618472200624408795841180361922521540170843314408956595991835954280637547777783604019754606842478298466590002343585589767667164798726720763029487965325480458070380097944824923724820717779128448299800899316912750780154479648710806423067960568270970611162335805443802012736458317404732918285932470814306215056406477923045234367797591452653132999264330983377083663019069369184203609177527887597158711502116730855204900075178139148806744472374563383675299557520513377908936609398355239540645681674466381427881045438353124214270232561018097856309757500560886173536038525003571128005570771512772322307352174242182605197583459333983766347224745944411771110671795154900253636147883764458509104879185669567056396154966130200570011381989830282798662695097238455957367749112591303487860443984553538881585177603276376189100464823765998265513562498997233296624262870048189965066636315374961619038539432280797617209694052554950952259290686271611398493437990724527159848074762984546091509552566177017566025981324372500863701272873584301888420986561572910972437558263909132660894791021799508084109491905805906162569391273054698197008699711187432410318465473956833974487908630535018256595836154977171934398282768291256559486904993353880122080237603286177272144755105956761683806160858082731321143042665822075141851714289830086553488496276362272182285747921994604931260878324301230013983301351179219534157828822822296787717231052150057616942589491332040595974337955078258747300282537424188211375056326218849958364973112054501000407793486157006972128228776176455662523333330747226144636968060591085401514386555440573699965355078362278376440239474077236081669969401774697277662009935802877597520198311629319082309488736922010945380138732952148912453244655496395766575576749713997500656694650901939569788363985499781924399133137105589555695604596530726315146174724931009324253017399142806733917965463649193904443448850350909875363431770670657103890041828433755423030322700935785328238834793368319669641368289241690916635895275586089448085888423799154880966383935530950978288582132767319207847856670919364762437001701919238138822893292885696561986694250077169844134747995903041946435117064550715104044520902465362761185075531831845957761305997760665808006709819218985252759266557829535064500800946523376755318213815981042341465569638173915742886030086897554522288342030614853066040496840837425328542533934898589237027285632934241316883645451512695280542333375756887573938324883073839642498684231257549534873275551056862537822201022452012713753784351059550505533143497135187267975682276311842560494741824618602462269596522199819832101571964313477105895007477127780593351696934906968459664057751537362605069320224750772106662000517455468521792774222067475544463809767503369148682237876488137553171254870921140257653788953744418306360151888557698946012596473678951547463256109407167833547191937970114787739290044927037386886939119294810388055324241235367591455695207349366990221801600282766305706871506069287833284223124100790830371727930344794032702685510989050465486535016063979377849890044626976073292487731402190595366412420879836280592196727278230732682811692822050436446593058621150050581161214275404005104714315243325971361951350537145564153872188644463916046952375040317336939159249718301168060298138218772427093993806790256627926030420349279772020336837693292349946730328838145444929988540083368570300901550109786498553529248116744759448871656067711433835155819254514551833792105840290393777275353757984487839923755928407794428369885991912727192858192252854040619842832268147910777638927822801796508832757205391940941046422061002635204230323788101803857906127861523022274363894771376772968521728818527904939517952004527459831122981509164504564240965678498236399163850041003887174404600489041316306970169249739848198204799680560285796702888616279402742105223139132202902469617528578840044903235312532550178951046771067112658746754273331241841564382904564902260250638476797147078783198628881522059340378234835601008613704871234814376325762636022586705109982345975294470249788620972803372704787278838386004124609976639571377210398687835942043071976530271738272547158454374581666663339051977017303611194327288011650565729922729257691145143082593085521947063796168377287130451441718566665900777477325838820340748571746970048349385891948961768200741074744911785311227558954745489881335567126072795220366681322984277779681005607479943623731065238645657442758066692880154570382027881931127249973896277158539765183864783505354356853770984878426861304041802968589115356867103115004244929743835357836907312731213009361113664964317525436063515752227673716473626591030486990880911533748503307477530497239815426961519034615844527594129887196375378495461836562121365211161991698933296158233310808450961982242814201766022037822362114509867448384496978719675540740424523186359288073498929426088018084762613882160804662347621208115596179251919925158507214771095746336619600648896625036029000964616434040754739298161729120581249138263513129500862742397379696217735158130920388571733484673198177470381570964821975872720849181188191195731442750759939122771132550138670624323166592192167980064970805060727611273141902409427876292401443126361402231435699877733506798356128284757457206008752599963768245150730582244752762617757664669092503511763754799305972798126666018068599604085926167481259663267107757896012497961422328054559160158970789913222192810821324930246448310242962960572357145590613493880591834758154911750887916147313870980577802042355350225504368406753321474788480279659346150338343554678737571344564841387585844096746369022685730979666349275349181444898487985366085718507083235505485718219332800435032430841902274600201145994148966966238922711326057395776782557313441028845343656134915920805672720134002136371317584481333362372648679552670271686562962562891187456161338028854001655837894550304200036992152806959387774092169894114254569880802306982346950094062403215750073648084329160595051476592272522023219937385390760547268346619649720324111221254340156034085409380684898257408482837204006292183145197900133219380743788349082777023026957209692381189684204681263647536798027197380960348124047232024948976767934915825968665517374842447225422407362250706543774340544283951051161245008419354701783329955187331920987526443391553935500549774684753358489120281397852043135177681656803370337520495532840642888736531959468408492497286690563697320444222984705051493992184668994024560920040384074172015661346453867029899341039207503181937610763203664496006909027013669868463687994804567183468928300731682765740662652456868924432277869464151959296300042731365789267662287875130534795496948728948811369755761482805764662629098210009543042166518461911800502071251419284735600884707199526191130095944439925172400099561947739790706208518180850321843739900465421137475213085120744041657026135258257581510820390484199500014614316229060865494414525250921906729028283795684711045277378894591089869544821249911607027353194353318828708987255394893881989892949345781899650073490598728771963142795619376138215843462185831022949603934070693187376407058121371742595837689745338038378097335758985294542627402082630791835747951765771327770947254966948331376633932930097155711784966320465023705747071434107609847181960597282751784900861001541201360651594416745499768385404833022816594463079663433569065031703012928734107306499882731920426615649554700239416953146399569331301817650632751522471653311165648117377552813319751966798996661898943437792886309670384756730029833984639572977448982540876710066251358102336555012112316955973545978833390209282039993052895901242530519327077142634290057619947915350968139995220055780567188934365736261421708041838504636260334561291662586959396811466876527420751033557444724633808493532091415803791751634499166360931900792914603080090394422150415390651112105161876738179383851237535585292048980585575027012423577477738985842073393048646493351168820742222967234074745663580330129191754219323280517066420871293282013211862709164807919135116553066536845163709578707772033016800849944188062241159291229869542502636003544686314024838686956010047990917450018451234362973665602832066556632481359629889287429993924327242057619666344477893129637578128690859423073184647959338629412363567675673178211387845444064428713033969130764994140044307043147549176411330677833670505862752219509631008152691891169137373969469975363834734839307190824563742839359962505912325114770358537285140117164167161557462225747135450996618172170197204737006500358825062299433359587139315715005393306507918478074407185257263186659224179594330221282736528015008753421511413553557871474935812209996770106925514295246974598998120044597431160498412889395913006400005111690633677523178353094873762253761850063711713630052927833255636121420229733214960256836895804767803761907683661963397765047950805414344281772829157599506950120707432889542672204958495491953728041759114920432665240976248389139050698215903081532233128799111110990402395097329404887816271821555547096833732590198397019303801371013440948718439528024175111134931030117128444815958195900167405562645125115316771003830779217866886752630841505992247899037897681440854179547702813887757151742397133438088331560899954864042229848205682161152877921222701894292584842422097844742200071201645186174218074522440901282342490071986752478645030635987745132603842882264470085321922021485610309839755717879561119197804776131846105680263575206112424203968566938009328793301659126454230789667879002722362294823039196115079163792436139269692040926976449055822559604699684870021492010887417007189448757506193050610209089396313033752763399423981157181773759067166935658541116487916126690156911208303222150891303636929925746285360448050314200576255808012630284734361084333324663851577888340645820494829433086549067287970310591202101029908825793190155122107239820164097836340108312759658784376939608097698634128882434388133377507866621116074004528509779061154992188075442577727111563199535897837762759418138852808959801176276239746520113460914689749728074390775619576347239138700943857000505577754924727570445524978647795114294466494584952153068042571259629607985681079589545180917252424792745115362345926117504471398642458394838484423137697896742110410196776165515680463872666835019826545559325348674214553841689019337093969017928150624468251864756082530701885800482154718699794398611550065172764524517104050483863949308117716565615972780937648806450652628554897824398317391892095542121378401052911027991791123594931132282481756774764966706885358451110166936829286140310650030780109734457184260917622837852119623568973074624354499358827617019403003881051501056766499286616328988129454078911716707916966457751256892271568932099296570210126492757691247494348266500875829846759767570162962127567901547102313273113452628722392398334000366036880290746442824421786036273362823517803345541991829827025318021143490765805638768228163343701925224830560347579521703627245252158867253070870267497654208399796864841490093757842852591280131152696896440140713730533468668189496283763626075118883274164760034964395628913111915182369569460820573314201139378226203905149034023797734285339456205502292605497806683226389366993462619818159796836890960833643605950364117147377246793226535677820841612891692206001737022588331723522770006487410993771928165618743796548780941060851899237300975707776182692317679112420316213291410338572367932123401232891645578722887010173227888843991731062473275831008546193355276372541529783512756388382429592335326922556951619980452551077161200811092069872902347683133259035789753581864176191906240643522199005020443798930670351130841047721976017012787034624600721344584364339335355261995918772742707710349738024494379257142699097103931980981305313493424164462120229209185228966666499715208297879390937697947806917278499830430392786864085335478767317460315902736992209581068102375698432232763081162997047217357302872101572161324565256403669563809654229079450028253276127324770869054583228125394407189079735691182822136109334561208261996503060694916061487424965239394368139181864392427523664429804971999623229481232618722617442314320029954493068988033289358201671823962626533976195279979977044972790513200938103385364641955825887512976859553116265319412599398778578667684186327491802996497475384456840658499937717044239331633935208768870494724844192797849073946605409404461729449408594401941997489156778677856032440201768643427061593057315629936235980153675632512212251598303947316270544017882548993082929459497232009112326154668026166663874751468167957445049619248831119255407749974817799775610933664803982094168306137529620483713274761361081929155741185518382142017539818338920563714384261763251485019788006184494209009031784328914754503005380747854060185904262877340048044156217149929775447021250359623731160994776492257237410608487495941134999291131523858726567549413194505320890026789038564455164349876683918453116349790293777223442975680197645472122611133271199120350606643754963220091102762850214316665247092798157312488385344931120275083339868053808449701391434128464404009885931001322027257450961780864788006562554588837913084533199443280456266526562587447304908826148832386685059473080543903870250508705150089118986671219765825932773979274133022218586253987148937235099306240906080230959036171314466164060308755724097720571480265256232768128493573524817123759574621867652408863886011660638354238707389329325849697716005313450971766451673767226118784174170969054023163020883775303904438591764819906600248096290058887135001274444464115503132618199703330479892816260252174115359114754804727743812752076991882454746364944733695494868519280035002763432284469501905776477189035963172803345934429523804654442931353350358530876808597733008189220300752298628562719377989118828856333629965371268371988769681477563356981019521923530112107801764854612283327785563884797956985287058976962172586010072713564687886817906576369762473343468195779755357750937611028074116239452869215812125496914229582026473281363776995721843656962417480333475366763808304317231087830166239780602065194710470877120739708943621287098218295365814412526401393214006810827385114060289933255989298788431626327576673323449055585527948752805115077706455850873087075348925596751053105474666110972962020493194344779572504631385035923901200611766124158330589543936862514119202852018517004082055206992267926538835302869309613614942902409578516153180400178663056273681123337806723189814381669586320273493521698968085775488998220118773816986646532536255354737442981381500599442287880408371462057713031152036642625960470485974549457132867469816676164733361831011962567693496789478301373090410511322949766382961217241659596266186424113537509072320610134905674205527766539335093397488994966460171997328337404369005536962594744460511520082057711477129787563093792496295479792734267130025415154753704558182695874325951469763766337467835641393060345253100462931564986482272884415693167088890894318637114017587095859562881902923936241132504318182805058603380592214417647235778090344688822610206131229264466143064039629319039665805609184664586888109132603115816984768642325086043685893179906149185686313640380180531348125691390054920179187945825679708768189355629237180733686155978278413954907769838819732227267961950542824614386820480314371186032311615924472940784190887964872625147424417094666273429513429616976747465113643163256456689300503300023198559786780920726211224008012072841402966516126607532214668832173738616842463229320916246192776140413863741631235842964384210015021366155778882986563758349623310287344671197993141782854800872568470548824477990298074681557997935608667035059379412503260562582357808025382252259145021717304618609976016297896208076691775818811839931944866099493578945132036087681818689516970284798109255224535422405082452615996337814271657786188907842047088721384480822140147299532554429227999079128300211931485435757768576247726962863876131198896797523318253505525173750887828085411908889887683984141583479647342678157454386502255336770989338360078949548879724932971229491988725097639900507182884325175818063678288216329346836880970838127549015413058518131495479560216188871167812605233315709337914515848040754109107247559363714570978818813498410017197946774485140099410487370920760711340792940866719011007993492774987356674209852342144621038963171670554101359365842878057456594336243435962906017297970748063182549516103198082059791747695419174716822371324579408078049723338306933704923495995695494763528026035874103198822392302086628040937945232553063526792267560791600381613131025131432854300739918222050633428796737874537424398667603485035604849515112372433981786801869415200279133216880204202353523861690055894860542707141282133208869616285384107429090027827755243729432909759647523125998494902642625701130663856192302981781633342609999823449237682016941137026908068980912630832148154091483177306394691606664173810589798167619983928075996786332681121319067463888747250916783414785253877910247501212812912551248456741144924863662432890138113097859907032215151803268959120163115013661488017644328498872823457022717352184120146940418177414458664301508478793597956971952661665433070215867278809085725215473289610588203530428439822579184182145429075527347136966301589487863710155423246779061326786974555735084977921170015657759252808171775618676115984035077572774984959274080218168455160411402107653177293950349865628865350466125449307246797964318009952868432994841197765403988171984798375241515523880509084598577168381025464171049453355039368145056130514680970051863909724910784631882903458920914737833175335581658114088104230928148625666557942135954140539381507515689968891100049158448612611387975340299707439684028143230341418621647660921204006648532475520029514704188275385964089454723098309026161912939209407717546349776182054895084117036289733997265074797501925639912600550931296570370444388378504820613264297998555415323281594343467097150844900177910487851143105518025247260182453635801824946258990117544866031418230438408842575552588198616643101998216941642158196250692321252686349275392490531169471315734098794122096254424454872813517304631792607291627973608427363696805867643479057902974067523781915023578763189263385408012263931503359639544244173780148915385835653472512360910193645152399649682721462693995708262223212263757080692158197410676501740846594175491790816313135932909148913758419028496407622592734482176649110001395453783630567595088842019710598657823159469349718912106652087656610255077000128241182404131105364049666079119230795341270585405176138039007333217087060348980481105902889233456426023366945925288947708418944669565961318790444671361146656375317298453805664116425900573967811569292644205437878192296209102920081999181713651522473217423555321636282467181554143733670761376659524280086162142739912782634825899326743230988523979956783864199001046997784338673872832167762209033373835621960148051014777266043927962130602656571068686327094365759545298059354016321916005849319337877035483077694264423871837751198123177555023353314290280046271659301628446681351566651879030753556389732134411791066433233371806624268128937086376641881631465210420905051177367533250029425650178073050612295292554167914320862312924636869363679347964596724328290513768569640523395450832684462725380665099545062020686575680905457342633706986452700993147236031494890828322396215785605509698576459901188925236620417366155949989106370889035805617747833508929073621828357515404792314329508493732482711939063395657524132245966223312744636083270913647027179649745249376199610694245712074296777897857751620578579401948322217040306578771755091197554245280930242813128996352387413964935158075167733051280066546639530204565816133925586421225852438975626251050503146995460143339047293975055630383800461661476108791371139480215438646336256097075656618487970445397145519929214217361804297294198868432142684789975217233533821897802421113116543345550868486935020639349677738575814964476923104530403930130121667920194333921112179053406361480930559743378493815060158182340561261116618902673319436795283478051651399158874178275237125425626579731834170678810675041167870123383029544422435443910873603241113796057846368494618961304501725183176881359508143616246177324105462122109301744916527771077214081374065997544864817964023559271605132598896049006936103619664189234207060052905044212910652229791161143306984572380533226970553751194407753520096874562337215240216306351928658219151232571288825024053545135322583727552926359144417597149475276919415554118712685277276554103316984389746970066520555242731226370479453471062135038049793940584259502624785867123881354384361830098015455141381297964056900267878852531744456336169777869066528121967919450785144016689895483286566159639273322660490095130168874742153961582883667102291186449824868291576787910828264804007697125797503148141571936935909209826036935903641374080332734622809157128359150079707770946107193490454662636521586449908425089341670944517918355507614355523414583148165606220593962584072365878880172854528326665528288890886284447335088284533162591198999682029506070358837509863552073795950185706751891124367140876436376415991888404215565428017606041275246516151198708880131115687544066338364937324301299871424959224563446598466272530665496545842274796774088038250047430589930807738427096535663902737596760360504538194855084270400300017937257552143833696125220676361777798661827467698922614620765448262798097657623555465350880116253014401112882534972239457335636070582985596198952861607681748054635899041780948395691119477938532860485037971017862282972969290342728974806558204587865258401833674336474459045373981812205510144861397977719710456301560754611824025704607750203219364492241339385900789148936382542256219432266188021093925331121422718947431133021592912780021343465109481709713923431355851063991307480269620561712907958656608153621948352688936206064727990043611910031362476122127959902072717185945050918427620738477572622313077929075798033574469846010362190461701793367605495429465556041974324565328786778053926566939353287183012345747318921534837218694443910030089605862049669930998818682075906094813813735230186776515053358866100783305257568392824541938718216764510441117780471164669759269867457928344925441111935730212016177909050209890309158631332310572741891565153742019683478048138432193739603154134209562430235369302214538722050276597291038229486203735965629505415778255142802962273675568739667409672407760615055487018295694090051415352809064010276194702563968136504966400283728159047903822863581257077594116583720735852210275603344762318071065897985446493486322050889727036967508413819614449697869913133619277962892411187074393103944476396947833876393477073169104228243633526341754632579494546787565345473590393724807704984318042566519908141688841164873223617543734507307032727916328365378884779992443708857356566264918182260219881977838806446013251088119661709390130145793977343927135302303049296787820198953655554902648763221428371584167349512390058219076133405521266837418331596295363897260294366893551046926871454642166675736170525900675442288270993121181809605974686290376751786531015779598555724652728030102979662990456570931062042198092318190574205097665238307433352416660862580590313610658645871422666861567073913880083965046577015926881498683265044818056597095110888771211943082798072221836542117309599531313744179131883122063555706095424432122785374616391495257674652713143343262524756514296832620918338148022323621367676653616470149936667146857343425604987501477173099109189016251076519345376995235527098412345425706686671993021523435430714519112852531777768576840982224284487681252488077198740246234373898668148988805586145274421902862197499417255753823558747435341285339649025149865871584594902075411975210686071386859171154656911102981859577736581931458856378029624634924784220684585359264495475897192752645151048574242166679552722476854462870067333245772221789865381849764585023439226393796518224718848282882635753545081568407286149991902279123152474242665526024760203791616717965840897158486817960167307875836672766268903369396317939739396574985800505083295275463191535536170267180558216074917309415568681703525767809574902676479627440869221712005341533262746338469209708709342389610493442445563210903797276334623815671274503730390887561598089973100581448351327794335039893724099928507572699761178802480857037177976040799940080118700914709476328317362710190023586456226199610750771983681244511694473180327226081191721388815266521558689683639501185646730322470261070658479054458430620022601845167859472419615172025681655858299335148798320730294319165300107772474210819062690811031836543313174639385972235584577449103702129666444812811730193970322082460374195416705899179564415285129374708920980820399749377353259666426863499284932012193027140486047501711802576970268754801748854332949596143637475801881569517124240660535579692046681498308554542967626497209797768841377699027305024495847576014827168216815413689750905981465185267920437582890177530338019951139766304593198836481265610805941212847027550349136361269661345220366698400363080012805308772896878827576560970817755512628801227471986670020030888380455230597913031362093220244681601227055242277085670145043821811773113389026136671981823920992028664152835480229781624075264670154198897879631459569804045863748405790378481836091147468023040005062637650448904983150934101248298206678544776320274728536427455605474042630802708276619046184397054957917106304328894565349620141464357878487585073317280711668222236766422901823656183454590830924620500379433602023879557997036705603563508899211584277216580157021847673188679835922853463037634330595078304117765311619170336529617015058374095159763688320449513946321807777926498544671383224739839252844089606576110324368008452633486133298969628777954019375169449927802676540353330472434936280590127191289381393096675028581865878219297531138278364796110545286310918065837725743101735231847216731918943907853457177680973116761694557773682961267491936977032755129335643734917492686782629263611301935275325219705796598241782357927558011039418614248604939609982123697876700364260208899540057430920831831396385532951766999372741180463051770662047721885743875337751985289200739661046696759664790593750043352415428025850532605642633223153190160053892893534843689459832084459445324996771335952804098737521538971341409066547441107506269329680328203096185738903619657823675919724554762444270048068204655358803643254504636653678267498597239465964724470715569524419306817826424494429364868779741572239037912477833894185083656951542598714327645877369115611250579597940596673641307631081101764679984644075348240590349890510719707031261937279624722488668587398388915809983108959845105660672847496826269742612159927165408486675905459742551088774450940431465655331970050911675534561152791443034464657167978683566951345919742350868526234046056098949018001682435449620718415625144737011576052576776669586576790579669497068877349940124037252378108281251955620816675678225499966388618085219378181138653908842103007189573572625343576608695229343666632522785916324475534311357150893732326135039614935155376427391929558744702634649212734558909604714290494722971440715013594396331443148561516650119326073007546249000656380367706067304454260770649787527050536388177573558696504144500936373811458766127741304955061330365889157145042067140270275462752886146358852929773960884679790998296856201523319137114655299134778024379837705679521104125468092250367600476211184530384902968156308120926842126462828961871867921532935857668120520936808913899052104821201298795139522850555568429625834953216972541194366527983673796201581291541875741109863517154307589101774605626454371836794725634117549262590583352147150746907090451258899169631008754677569193211197579651332454275190914071734995097135833563252263489308659959783232546173736147487348808400403533961794845002844872175374851099288350725842871011234107298549412059317268143747713048633544986708093442016072682848439746937228369990688718688256175395504931828850766411042055544322664995462012721459220600610546830283088844555708563297461899651839688506245014426708143065887188948589731647883742073464286047033432361693572831912471641718186281968795613487923607710769126688609462267321488161912259339233125396534035762406639384213775660433965285068782349663889262224747483437939895832856242844918362973966133185878193312737121939986500580057777508062593193676524046113089343971231240835271060006836637034148736542173999863921357031139686881561927553873416060309489217389912599884248801510022903426063876369349173259606388278783437875527822026699208254309653057007115974036451668549013134570269590541616121744766218702918523342319475977161263944336438500207110475598908719402331118919118993323691545643904237764851860349605083052335573844564055041189376286474669570146457053012136398003744366155122793939475726358723995740467738333075297312178039407760047701239304865197021015374278653609105853177606430575795566069281803234121833263729304330886794652488870933896595055527326199339686481438169884341274165848465197113340907206644698369980181226449181526106311830290770282814044111467043342230714754768727977182642344577908247081954843255232790267891245831186138212418266388625165796277824500855842678677688306190090823901405489181215761946363312561265729945784940119421385289269329918635103079823631361410613794994388154738205759977127261567800153591976762636949188829440457180817383682549986592250136272934538531521617113968468621263985348808532284399394171247755541869666912486873498705032199138213160714561255589771839783236837327073909418352351926267532979557525531004232744693226473265488202201655177608972939684914977372545052950111295478675709151347617810191109153995335340234367804112126455100319219377339562071074129007070563847309751103217805257928341725563535170862157471971235557075093610635077700777472622004064067715243584741327888442300513932314520066187017116288240143095951667118118961087842450450988427182860611285174419105594430545980164557282441379388264752143998629293668638660842731282622182833110092107722248457891620663343513749681011330063142603829508858571128221076816153465075417835290506158544103765197604625231425058701797459539337580947966071007127861325757762129666091337384714906465950165583929521841283167956015046421969242612158796087404111601165210735066989218488565968919350834855044995791834801204202609582126018077949570175696280647195645090642781013647919293579422405724873944700674997715765293082926778488263368893826055778389011378175533844240029106499795280088964916964808990861834562342918522274978812610876009050669897260108009790380978026320062349277184307583683565545284644603614377439612367919932113041230386275064867274672736321426454115987793116576230171222526456997619662087691288861752714736629126995683037932690387404025278746654566714163280234960728120874856000053989256139374724357393758753301411616584927434237234381303311571482482204083675833462694732100933027970649983628131860415135908708825379353971459982420014693581341507004736607585074228550445048862924708785520583016716389983285668697442846164833694556535039542428717083352445544152452595119279471007139559179157123077675593729331149487751029376475281480795143029633984801295909879564808969074521495813546092647806470573656638943229756737548240205576634244600069723181323855906300081816079653963575641313212733008039971623059634221215185241689416585984751882008322474203626996826228842807234405035380814494097786170626807813695542722272069836007785188459253739249726587246670533382476723549514407840018892599449960592025570100977604195951446968292245664867746748071926528340759698443235561760881965701620481425164796032258162928184885719950448883137612819438181320018286274099475351156520206022654327377976046294855406674473038270374628315430208765011219779875667480526108480204246658657108472486413334645561487230168280706962954101902844361606144649768551248027237824405275369940788849768872589551366352411598392659403565791703567670397673366967232161509929325632542096165803447519958109434149390345860102520265391865337378847609035056965692048309442084815617026413188893831546108390689927263899676150552125716519859678812764599535776983286672489889188273996239909240343540387162789353722339156740364131685743303692549938408241511600460502077406334318322206137836929985645351092724179156752360420458103489329587500759200527910498174772564689538665851649363293805886252464123881022610838229997634367806309126739731172473202219792389120054854190380904315360823956857042650517209426377519769479751417874186696790526179245350657192591775927387868500860936732259271481689499420227593057240240349253570784574970028235587525747458217716685559663267338886381606733875020231834084947388355572324068391585953376232058811125914007183178884744626783731817057877183076356905958762039676669674309415263093256909135596315427585645005220637982970394725047140173795572119346366360534575191001308376534141374753435729541570411129987101694018580744732483764160929403511694685428141091834273920017201733262374759803516963509943155878988017044252494890831921853373743537489931251239062484898376368372933449331107027404925596738494755772200186631056351603689174382027142208989229184151125256221693643233056038183946941451995649876285967936130754231069686203244188837746778142221492684099224314147460334789722965808956155818699951922514744518074749983185329941446015651555453964725894882708076317541548840410865645359378498348244310096475189919274614610892545220102469944709868734088971703391858782683876231522615897561145002439346747874832771330217401240247453357403172180298013570173668654226107400981764737021412996456752209089850602139948424582854043009370220517985407312278959532151932905844638069857830423013027282116113614626764477943948802210707373789213775950818282974825913149064239773427874233869552919323093099102618228677093813805930834522561528366514429804488950850248114674586780912655975750847084357385977484300524273039581962080428470354973459706731418026544087687463812701372857040014845072654656517439773593359239097040475096928463750351461732343119418766955515496753867444951512741152488726448782789860086644774623582680650309876426448146195398070576793162862538861007566107720993385901253295858716734932886481289540835339220817038408075689239776650948498752426342051675549291163536723588629810965048482639551191721829566197284796999079582349076143490071747775763452329449884359388271320169449490908942613424857261102413063596101035806260014853780640594370190702651724577110662696503585248689529684378711969333380162071484185955659754821389644184394546959029308452319879121335900859222173236466939618509346489174817051116309646339454533551444837111222278487263536339299489367522106199303678186093813706321025378024988967793420502331037645076322537442446540501835264604627002748404948047835704813949723814446632835415263973417788146899958525907848890121337778543822434520120470734878504654311071295098299336385420068387313593837010656821408337133990428840911481492577924583990588096373524884031568683291372533766269194920434574027701052234571258005082023790874648508251909105275112296717503137507746302982905307629092250932800237888697871218346289233493016848951981522051891307775807511449600707351721144332485314356063207374968155685240974613566657713925082848874426193385164843541199728830509630416621320158940059814759997148794213902413465613429353960787329753712038003080433521936685187887516812738074661307310456234774742665896211782099695582845592424294686300940036448768206488355792008645353002237718840695896262354757437817375308329511189525414652544016277154403005984860859473874924374367684285705700473170728975486528014961516709782035106085818238221600969576541552852242319493655770903827217249169878678926980544054664211633886712176351391367289891842539037212183167272369214212156602219122705814603262936351461373769059039931114158729955879927009742389247472796851693525574594777446637037591723438427471050535155857374101167127843060570821808296445224842634029106244303069113620646837343310701693500249321319541935150928724643344603558853513894083183227505988683366114956971846752583402696912262508161798141289327510331710228170924446689472356180207592969784960214589566730690701727496485085442413845323979855384647205887455221279817796638889526388395741953668017177779150396227759840084504044155433296174516318109816570403562837071856160191608044753394843479130066780666244619534245581447630934624358571479504319001293013879381051329323619241464710022397667968558095923633583762765108285410509043962711554787326356201395976467753903759491268396796202962843505660732054927539760369825089944499231228607702820686461279170725919084634175586531556870363738330086670286650103361635876783225403067458565493190321264239221022198842728000753876454279570207988363932320423596704890335193040288689757072367374092709905250396117451290740285800847965045466245224098335781667718774214808828410789625334900983967121218690260892116563645189020897766604563969106911501603035732343775076248562652501940382549942744923161309314149805046077545617349745330881236468868910559032277466492428655006316847786319440467787503201582513301067108878635699271414921534803304378221598951626072998161406579563239602420633938425298107938721871253996897851302905336687498304097986559987126580359192297480601352351460000020041023079540621305824847754795778169808941045059779260546192061608898149593380792134594985469187799834650882166444385888982029954337128280168144193393555849751958587688862189451066085132902375472644893884545501285932888840805391465420858812354009113327003747985690916881095541719659164877719990263414693331587285974963171937506995065910071184105652786003370462750014254564576011310286883579136302956912613887657652600610236329540292571578508827636185590473139376589283454265836717187778907468488001289255528605511973993263133246002350239516178555909301474584664270737245905072021534325470375189045996157141650284037644818914566466583867498485688147855015679705996547478575581025213163987382629098681213143389548690112080529337181104974224010380566113035510627623081330859636282409706538764715954576336621169538521513324993507059684846100899209982256700654012821464917896511084378480881804778552808673756391051411377951346676525850123066736536820637097879053356676248695353562250684918535225724249280246138255775988152249112454639439116827676887642042442563631040071790347876335335255977498186681336268660626240480701761014895286341091207596330980464731425779308607208082844913882457696323935816855020952611482469153152240689572359440246752617800874186761864713909325431059608059604987448471633513693047620572686576796096769518956945303888925904831387700019351892827384677616024338851758925659355574415188864487784399462790524123264366286525027337554509080334443953909721107404348974068560312091216794582383652844611009732712005575901254615911356621892347386187071869174665327759658810542203662371151685531133631215090772905830091111578252969053104262696505786502263085541637236412058243583673418661131920500702557908942812272172804308757294946969094597689763185077349621979882601313261981353907263907739741271251624857931766033927748380030149089121125181857954302875708180701541096715560024150098398017895753752982246035651397218401975967761654317702953826610290984158012719731202551787884918562335595684962844555961877728502118077335554004794023170841916357197627574748801785367128515654886504997486564817431381774683542534861786984502784384698406364553333319296206326457640230211137615529289252082081896006241482229874693081621847145624188439073487212842055531059247459042064985691041198828903886457920380341223611872821522159935762246809531315094537154910308428073314311946227119281075180750639900218981777845763813345335738464979135238216105322259765563006596164931150625009867734660193490019203162006021626450756844271911805283148361172026774199820676377304121107518232963079608627038524452516464577553508892210190751645630885055892634970911435705058099029812989829482118021284479447589922073260596310663372713146956334707088857055745988972358605987914485871130952144039745266299590563540266016435512666384429362597732293876443477511132381350798694682042342840357661183815409114394655474890821721942757082624462541274737411733000010678477328343535475908348016683271731240715472387174430175054817215633863333464330848223640746263457282871979161513575577263385012588946084606500411691442072225951773890362026365602057219595639991180837162939459939396017181883012613533903901244831132487060055262971532387997330706994575933447256886801600487591932358565289585363160070507871462883222013195485109340997883501803570752055690247142585417670791128129422479363399810515722515892393342641697570246410993128063283693512212154825297234687075897906325770250602995827022796453420263829353875428907697407722926660185678601817792314937771527930514347332672844215021005789540949728219764001927931221546211163628606200622773395669789759484647090376055118636684608185146368659483989959381029169575105250007029345840926057478476946722505301833491940334713994729607198539868508387337156448328443794499454156770539030709912319620991132816187797010915392537249454004784817671757453389135409511661421782773357882021675081380527933298769786624177092315009899455188556420656899028006297187552428056791502477634251763434090635582442912314168400785624432492553408409104569396505648980434263681572042022427622261194591676581294446156782036274057719206059649971853458242292406356386259746432799711370043909946870559670853871704252810037773577097505611498787477789661044169169130985314927057846493798315567702223948214898492814038313351449843243366625446875571953240309257065364939723096771196618724332588877837035555835729901505492798905926751467007363513623076608007917840125608211653909979232765375427334828670379053863176381488134415177233335598118627384614502534194141316724220789414229901999713381717968890689494650193037277368488803822616818773157352822658923934497809644471604714303656988370187515991037987176257933483268771654523099936000343512669117591188843031059814932857723404664340362475063502415902671269188286203526927153656112773012593808962176106525770663105169041405513322392221290498809865228446591656464319576451382109112789596682784610709233503469564460208886627482405748640477196273665043053780051428868831532414864360544320351470419494222506860276231085724951622877004152598350560675741910806918231701009270930565445519961969138971395838548717475325506028051832729718639472506870778462892131908772209765050427726188109339553770069026062070197067035726730537878851138055458760757340893757735033494511049996135633492244710657164313542845610975143752011708510890526914405988632646690956626935305513088327089342162874373185629128150061453321348441025883883853022539045189431500128903158215712311237278202398145138843719791958917293473260221159037592213822613074151249211519230925356927783045677646564490155649126193133763611803405451666191498980397642859004546139228715908613338083253537570428013010864247602391949460345931873594076427140658138984787003660609760236950084343483383023895259982990489557449357461837698075782651762741776025075551727323806382153765984641621262307089381340990448167685993769617579879882210943153633803373919452946424392656155187585014944019640542668759912682686087273113797145758632513888894731645509760081284451418716866728150185867295087019146326254616050722629443709177962295552957913207222519968761335048972492183698643642434035896988317620763532341200556047661941440690207962700614953707661743043775840606705690274826181215884739835259304044868383414301325857082941139454922618137183280017839455824131702465283858492312767105749571456048439826381569523613340108495127950722894027636908375741575826524053568053761954694106006529898266681719383274085053463510238373170517816771004698237465775948487263035938787993722434972927413050751129887800711221584386815505769953095881794138151392853073563506485712989377551535697374032919109779851527624907963038761409139676282057623746415746323871140161166558380907767685887963116697097573455562824437828422877157262012763630687201441583158081032776557108424951570854650559990942418961621051563845305084705847163723390183841067394439074325995061613440052091252973740677556839349835363261982417386174352936552199647086017788019793890843865073157493830352636618447228960519468316523831160809339235916685803883184144221397051183399615481433428988029234819491244872341191880784752986807972952785176058186447803326356900387819083809955199796158291448287927024341614355546327796295849155570182580566403066943772636881484166206569245695716768424923335086879627182985527447537657425445515705296979978140660033678019701948826117025617922441676541228423379234070828390418021562548331727208860346158053896752660831789824160403870971109548186184080418393964448834273380716612212116256978408407831095706315208965458901876224226271870523902243496584730041763624204642081491750119278328579620902481078634680966595975247297245611746775973687574667443979087379493898964068620393631969752802345539452551718988566662528165933741110600975011785213521602953442316842034058626420238106827430740148789637393236009199030725872259911638838430988574195686414064154428354467638270606742688298693835274149015271045135909882278584197005107330541824302410894127858286776545231463549390539291374651829489752980430194726493553099574221839162477617386836496315816951519708190711396089508445276153790850897428749043310525423194959665365199772902657110964598621693170991446621652379575456264752093527655032954971178710424858119662933200610879744298041021201132865448420691456243775222826143037601680492097531173608611092981516861388933222730614315587477390107192693002747360816115662431573664512078490180937856776980111770151661939310677804217710794700591179189093534165721098764508704614446727754407807202372849785112700812308579743955316121102628074125274273902405209841356700966285838180827008427199743020939989144221216242286764462125151203004942682000267169126009447918947924557851273722586815702594276333240943195871820544960482307629422705771319657381267071681710981818910416660198667654881918747442207919668547337353140018423983250066061839408937049247313362599439157785290787946734103403544091128670117825682034088981051984353689368191546428984364333789760085553465054976770780007064676604630727646864698651095446338605862917127167706317302173230810494017226675469657629963989796660972016901238807103792563076220340880254235694568178634019928744434156521016116566563630121846933519942518384392157619659012639252660807360408189218073313430868799401072725051426794717606038217426862099510752480781911565010788929903666412835362203963141699344960127410639349665793642276441205163166805343731959347408284970520767330917500452544497345072267124718671889912008752384155250763498511721817760058325167049005901727701052857656495980803341327186382541695457354379387877709960323131213836217070145699596712112830809313992461000964575739457923548683695896940822023622773391745100673633951775424564466607929923107329561725355813877483950545796581798741223088158861677637210843419122850847020242194554126764059960114281147802895942270486579585750745559301911783800368701453297288517375022647287888101649625551422404361604355712721582726877125933385932864043295106196240777880403040184593758476969295863381846582264638104962159385199387325673778599899866536598061539122613784887340141869184315605949814452324397762809260576602950708218460655751112154286839517003163899660895535128961212478438178830579796624024794384972745981294616106349827623673225932681485186157838071145744683545252226323180418874745339394140515102205116010772092010519956689210886285161172938437183354486214642873558174671509026931776693771729207222710586231095789281235971176847999942732066315673317141768734981403150630629734235693825541846460337656591932564031999711810023587697491062839237323042970492353377828767640109027087255793680361487040135255943926724310476382396708718966205943496388070697821413107892322995360149404579594898879125798230991807555538970453354966810553385965069761213792239577302553414322040568647241321283590610850674953483107641980231312915836319852382611415061110506103389666467156672356997297808953151806918251936528446538765722021943530205607634558967800690255478853553885643099993749175707462298170755795761276923655343995297793066529270102785025956328965890833240871718522984661049184646739120036112446903988935176065575736948433611206420163061312517646555596730478313099601674431148311876607218525289811866647104318222319004980211157659603365693588507914088726733942546457915304957543492971368493706210910351564917440355986901321414009869424020252276693165626748783823677542213951726162583955445097229640819041701065703643217294625097928733196094420708834330783201017990751432969655901707537735903971436337580259093257686812332477689507628030395856316641590319790554942489481601828454796982296951307424003784185904425039231024705942177589242165687993494602324051354667627911337607099108180341532102637596544465937289529281145737287326163017678320912125967146768947966859703737705576103906419042280719712695646491725921807648802445539255404493497511714165986352448798722140254546330300727180187603548880834703204583831139195184993088064603870450828665719595582361628099647646871818077241566501627656166591877665894338555132886817749651101397012590363786635393898572083366118502423515610855717847703170228253978496376346776224884771775601986005296701224665073227944198831525904357926112844070487432585703309553456402301847020374759546739440187032026484987099227980007749630438006784339254596935666705378745096133595253271473021828403557919891069577146921429302366522029800831894807819663565337804155606320280200074292555726526604187095369281222315288099480265572895880252599647292517316222750145028719599707085300961778614858856751683392385955152779746018037820844152158588468511760491857652452566052591925147012963096189099343726846560103767954217959830056229244494362706218821338238923884177802698132220392276593291562661436917000277356482972120946920820808637945268515205543267617604474788874877749729106907164476593287281423160716258648785706868921046675001381158412149781999919342022624436616145147228627895425908741352090533725964326393348959320534341436226503386703319411650666727328645793190722512946380194565645352581082984727223475849975163662648957496801019151068342708173065110100623357018348637572600244445968888350219091632827979833135272261253487985474818864810800439282585174930359968073616578182206155596965753655060197792361900308754016702208849086832673823848997827942440366901618483845762423393739669664425775776719892666905837946529767733801652369168679415434384105196983324338908703461545799536429570805500965668038921630991478983273162067378940529578612908186415392282383568870657278333305809465632376992925917683412853356718356223789111678727646678048360178372154988533719323896141723245077932506299779504528612661432268665628715070902487518364110396996284058061685001390938828657881169995699990164056879444184841684362063806480420738581399925798916057679335124349040975398211027878339512187124667359041135421454323649630113559295090749064789920539419450305091126635204948376042765575245080813029963775440334111882143454685612494317156242782909577830713260835788781214902872032844337855105712910841499150891224413391445189239184524852359872326867056852416309642785267560986723809537659453458300757948623888986238461194352305659527450254406064618419273336769710174320790936651721852051829649419306652500550795008211572041874569680562818243818105205490098094625734741575946863015893908703230360842811292918590808585615714216653728778431754130104339345260093993066831678925514562534236730694476901214330395942614734000246589048465893185645593833956838842691850677306054776964024760978162611965435394309614434010636736948795909821015627723742613875555799714664384105394139097704368539206575323175967822189130937301278825299146482544727689413976451096511302331278657389670031013940795803808959266656450513276683668980105733823794025450691133966701423765913736739858724091651634857697363543261225459387336046746216993050473044230531877051568922746150823561267249827900335446659703525353353049783386048415458784191999561052859444120871551334946824704265992973770153045241419764214229781809465002429904324954129948295481036498795175401533169022606678232525063483047691454299970038590435166104657317136097227274538972927024288395167512688031823214270389585824624310726025877243754318289249519811325373323546673693474777453028713043237969914936121062950960011089918252419796977185395828965760213276106377798506167678050684818173875862621525427404959466594574507400395416478487745999041485717612186132037733584665669311546259732812642472667259967403309980430633025284174949633519348570608022194666351668952225550632177870627802868508429233016817968773717760485994020639687490728673653842483258883194351779215000171102964301734493893113786164752435792974643824208856916959220301657259343198113306143071636984871214434402106129914759272500036101665538606288292055287012489539881966537005604718970460691552644449389995380834599456382895045622998877201396882232522680789903557584154927817522376439318926470513278851282624163818491710865189571038419411206923059730170203232113599696311311666072183420557888629252033688600435162447769027427338065877889134035491989707670558143040155549381938929810318827443816390844403090413098495028837025941551452025308761221919925096840487249373455050298463529560343266744759853965740301194390783388333043607036541377174515199805856315923179085723292227124196292306327274315344283289973265476331989138879379701619518735410527518373649644139627771749462219927700224521463254337297681152164874795821340763516061346040523918090780414387250729274954507793571957867222450170620490350085136692407259528395270055319501017087383949177417641284700270413826612930688554641057803530514297824576667401535040012022648700025152869765509276879718509975688274014738508920917939542152833590285515306824515686401896178708661309401680780670792294509164656528668988384563167923414974785632479352677282213224184265268986856411135138726751676676543017708312010280657574722697668676908740025895276186619938733243880542363623626474033744981041372307638002245098582681965682917643596361103815491806108843565751852149637814479957547148988961623782882323549566179256313272513136607951936557421677124179921645163792511362523921968889061549817506381142001309888409801616396529529172263904646833491732150578799148052462288556356765788646501241962645942828607317357400318861405987861875929443825940345244705879437847405861410048247956759924012478898091599940236105378495914391432735108226419382714831807762536814884746926138843194042691665003956183299781001350625692633044304216870250267855932067290502763436369441131954947383962049773555639923296161047826629213674904453004814865185113999006318438571075105646916662847789689884443000682918611179507296136443018155719590417983262522131863997419630285578630728063995619679443077209493520180168118010366642200721943356317003348102007533667032101449307809955747281881681132995683402908199150245932110787667907595079449839642200285560221200415673249715456107601619306439370546261004852201620723134725903583953251191679108089295448166407166697529363372017715670143520761035500973180114195940802501561050364943028807356436408425204502561934799765838188631763342816086074879228483488404886879826888434876709246611356543947791552284633856882532082318534323608157812478524826866012891677382041796318762105165810629134253354785417808452508405541344746224153272623808062145510901854827262576032755829724077915842678337906330787267030723738807429576601826249956739032920250985456889132148024144898924033690246641759805324368125371380030941026757986978830117415056606807161316318478288811587404944945390209373892246727189587353568597603453260922362354281224695415468637996601354749423379496881028798521919225788945219042094806713155418644449765984979482321528364636402960664322946856500415925928234765124014535619670682781707947556543665223627121080133731104238627202448431859509243936481440474749836355650930334117713364692950291047120117640797627293558804574280637511907457018911929092279028620329599644244745782810517472902181406659051754674850901339471187968847703236730676534758399846744249012045240516708192104221270047097931938240623846499873704655296565004001554207967472557718111293963813350949200499187768098519942334411575947116264675947886651299230808645421156053620591668438889781800161341968404518358637581965326183589713166570973323031463023686497820471968068153669391636436844875162453433821568418245703907764950946196670401315916577348639343671826855350717836697256507491826137559645583069190778090261201464234187122004203860313324982003451648482137798123650930873994383724731436289121023540599332010008460679253444511900149940199284350537135952841098212600078396238175961095391622064704662918662090222715932143283293463623171126485751172499071230121804178423649201415767794456582392433756225575448246180817158768900228583356058455461624861327391526801298298679208460969004951608548062105940614268326915302509674293193182069689898958069357311496941256607408620646721797063981547742355264431359559809443737959543120601966455324811798681933535254758450795079920685954899056660854363505214971054427909063330092446791244031140254739762657463731323184722777905545906357518061412232906402735014109411944029794470589705105264413773272039067324774050923430963031088273559679642988230580227317993009201796854935575472388018283735983284530265014312166432900500984887965292838326129408561897371431898166812485601124491319337357307640227311295621000535032277077220688764354619980814787341399305075175074076019054983087746826880873460656119472324639204318124087690387565923484517604123893144182457542490877888892865558299928123181698252641883589557265505581536036146394440840004808992188291337905161120478571420513000697068323631966884746907730742411503291069841552118190101117114817145048232352024471986725873076119795436095539493815186609442978047273829008170542128378278074261309856147932598197900082041913898950214506973173627742969608423199921926434189371431478740607318085834324367746712298363143748758123842146145518130624822041681809549748548672051781861503904438808293371315850062632737284739770810984118483360484345211956378939323313067310908536955392020254644439468698388311055251035612703165220600812939110663714037873861274715400360329963990665378303127401763305990708541002863092835799575200009688826978277987651018693835699222762843271577653408089185052010506254951678773128524675674887954182552384696193798458512848257679275549993491567736281490242576115560110625829784730569246131554264439527321701887292329048999602713327449863497195010103937487738692834476795536137689258193968104974886889132496512848645604363527516439923720313056394346784239710991039618432702047920802275470897912402968730560012572210846287806402892165593553224015069539794828759902052747223540141839566422212728468106130404836665686460586030851932980336809574051063327297790904731645070823530126953028482099724053580263929296804551678866949720403005223314185889899878423638621474159578775651958310646657006181811748107347407521761105782756384030821437895134485476922114361250199887112628878275241213972185525230457248297514129357961205211056902587592666880005379112513691368937325613552524294082944015177472851526643067850884148526300282605208024265846623801686898525322778385476857600061513197708195388717701949997447120548848307104453625642239852054037988782724878783724597149805430881038054440907716466106214768005951483453733184552207361549889987609996329554286307536131387075509658695245549931393833771777095242799955229010825098873991112606960343057522643002027651888743259330777132962535322516216739001738468679303993089079809730207417501091092158878404063771265615394062876281517010351164509645207414456737395329278187091996231710169483721132287612061847580763504028447553924351649382342503652029564618331302882046643705596400933678122012860906216978975040187238579766702783619018712963890089309291759794408453935389578939035332550479136741624825671152895882479772274592223705624408246297605037056017891887630436983912997685707787238581112147713912567039771209089860893332520054860100656889256296556812923264067033283063064588494617913246171158760370789612300526948713504819809099534299432810031275094730364621482967090141950556960224210547898604360526060790293995782610633464313852108977650029549038446955965991803793101754206407168102118113564246689043963449395932886124370895900317714877409174015041543831635717136224371323506887093936275389947070649482461396518639687317753110475087186411257883001799107982679953661142642587379552739617048388808505422963931582100430080743578311315114482086141205736387942772865076717481093619658551046738661706219371776382024236140804408959292488996849221824232756409225088523389120767839944686972347453246319263115751861006502558299549965755719839092259560130688659801535958777449344954611106818910049805114265560467889846840792494774151788636506296019908938027988701757717041241218374813585882917571567957507942464072806501862130020305769344458021296747115164791764684999606809681383128469372559470827347692528723557200340040626457038952935333693362678636950420209151267139882208041684777947555110489255673804627877874468469044499907407516835684327445490303973700264511012587944389229142990815014531892042198625417450511386994818999438515655370042571298079813379576628232989020415901081153307450651084976982259151165915138392881548120220327786406375305968324759991609849001916081631803046209087443885112248963932135180540689753081028511396535584433599533261011461398711795448100586591696718888417727103246511888416365314176316358204785721429885956992653517116531466671431447406976602480816406278812041525182117688120661522250432087554911090299118473446307977925329724277239103465250432140702391876608197532920432101336763284642242487010112262803634653790849585209668582892531615085180679970387676783118338956186572010987183010418041624691932965773578470617111674685338498271328616307966225664256910419344060637496524776736540820018790758136498272604907720171475699882767420204974225074334378999135351041364910424090261203696529786654901662284891545954884670422277147737221670014269411273682085524871618954010657564842513812455138045445436959748125171097465436109930778425596126286980001908959204179940094796131217075741593344379835046778490655001485718160992144113269153851044513578038002147736927464669860845676623523052649396250308106850613141804836311716841861018425678496671441086573953711329490329091920926832303852632132739999523074256174983176276340418615102613520560808966439152542758598966261638406693615310896434184068991940152227164698197124853609632096367322621257505033173409268371725323094609896055653668206489999593364280037792098208900873114060767929300850847848356396052393710804082165094317372223362459921099543816291150383691120897479696964890266184761031581871648123128447133229918585452965322806898490689880455821754768999300971838556073173577120177169974247590082990569311678370966833948375738406247706417734830751403401128136181761333702057530777180772232687194390211638298294761894231889311676485724904126814745392962312137664637053756859086269275690726341700569407777703612724806091228445759383543233057749705242165486148709210834904145336475473928010295729465686386262836339291680388230499774968834268154201225546753312395127713063100919728117102736664305469605563475944705328795706808667247546351153417780719398702257708676541964666202498914194504848319250135687762623266424359530516483422355062165264807271995564536950619284629358196009414374256025231273253702806880226472091479560132050567142249399437875063644222925140816896206854902951173199880226493339663905852624891476402271623492094178132555526816328472634029455015800537933547713231479305971578320342246007423125024190791137557319969708167085857321694855732162194266376505571208255751246427183613987027852628248833237084208083164760250558382921929107136618979565069428309151715758440632017346503245123254199586965532290926389652169128211139851062699205491467800200987822344130945493071223866346472605943704153899944744880104124990495806639586992555262410749782807604495624182061066818786775423867012327338327152642848643240822534066009663784364303483340531510292798266941774281498412527850721952300156211669232969741701335888738772585771490677098805504533498729786183079390081583938192735782279769602521622944604351916870093901144293269176848726229878274160960209050306593906558232875275136403101986288463345949744205857738991294814267942986479820990339807508756505436456191855940056961781302996852951218451351865024160067291216273602512072953414589317715864539051832865906991518199116595815942991228113620593343429370365389943969865924670815368063960431182840828735757768731754070853351760130203457670356140419361461046559601179719111676864637049613180013389029688880275036484450377070826224460675291110987713605222682156099268517578640712004815760425586119913894484079634332254914026620462567806432210419635841993964569130251634193574400084815438087957988187752804338807463953266365292460165960745461733478223925974037716799654403595583463875654950591159593354425675827694607296574478475890751971866080255650922079822354693610114029072149079065124456224922491109543063202711734603446953363089805521841451372736809506921968610885012074060494254125070489386517805487842985385051952214325752921095193596506910114917501877194620274419609758030468577792765076128420147527984248866403694673765467963201142207745746711547781130843692447376800051258506880222498638058979281080128758871973365236378218256902064311590077239381169604579381355675539585460170831049987249623224795224137758242644785328394283168474294781156372960000513840149846862663940433028659953623144786623012980332518228624068571220535858213634823705055330514632325163441380741119407351410213877393027137897912669836304035712504580943054784474755639016741096503298558234386768331736104564175620069690919538556927377469978317135870218865969220728755896150799210375885839568723133718336625190695921659052010701815353566836092556976177599446576893081340652464884171417801473228229669740595034312058260588605856772986954010835423605040115778053519694651139410203934563191338809505532862636289766568723938197039712273262042192083883523297361798935698802129905822066008776443609254659941145434850177366326085125433007370192932233043877669695603984776370306059750634446749006794259954352739966844972192676496212036280310802787335715545893718871387868228863129791242276898384252895758576917179339849845168558270523491060690839351630413550259287867162191234209174588347867150221855596871442353799935203467358332741472001209330079411349456366944953036716899286965250654681884444100144232880328049038990753689346216258728859459317116923844438426823628637523286473228290518581955289870068904377559069955690061322412163410393887211000456346511201764747908233244518007124173398863186783136563270170467689706277478621232260785545284543114129158943790447223311477053617727750841220933544625270087434176785242910198820391168242292755381254573080954736260995787548828281608822969562074928069921442668030966937759880896747632822192599698125284858482862166169656332332715712400887541726127782575621541567080365961540132556473366748132432404195885033788087129083444918662324749017596536427110036094536356777919871271701854604794987990402084696975447941964870005192968446994080454397494425709635305772434382733241878598482962742588153046352349851367909925464781630356022543226837823562862953408770787315254916556718845525040044764341802418335088620102904480160482857755378249413542141628530182611544484416858873573233164978344664794123307511981658949939164703080091457448210061807658506183304976489170152315973950595653879746523931876064515559482544561723867070066819952385876820842709628673435771682073517773454585604062225335916496540639062862356621573529697354207928027829367713722154659175835463394415420380372149435069738521821070606979476925731873644092323813653669579343840446268016344107354284544193234446169875250224425015449538692524535217982037465808786308245713892758553508979581352861604260435408756982430433582685767597046606414164919092967141650084735637655417212211378000894760709146568728904672600785974150895853240113028603967410627554099638555849274923277732850153741258099836289907774335971027756476006779038699900197941915207476828258888726489727107753242308929430508444439391986414481353030945067214792892821547194638856385003755314512968963501477029819753901733568684331713490540622200915505117985286138889747150502411341820461674925906417758033999930842264084255934968613772352357291023153973952532386575779475814635634895841615067014921635570177919735448962060735085405700504356518733536021152990619907401379384164380045991977075502773877534109150946213630537299650584620081137398122091685120815535454167009996181949582279761230791174141523219045400854797080922927053089611234853842109500326244233412538015011413262793158224832531488123474498502411468245593774028122699487959050658249327279031798680945152226091416443857526017932121506951588939871359524277202524999579200991753174893380323187166877421860268290437124203155562480942046284748640231262530813017504531754036193602674870315074144429485267422312210710364201736810447327095700237476665530952025677898142488088073233311250939588810218965403479477420908613853148023316799022208463620455941397694830424667227255450168629622911870860055979260907709449581951519709701823097239593841560767718841875701793979398680996738542590315641577049797084040548234106699552663974519137457881469089752876032757968306646964323435517403781373758871188903977055898937433879515670895428083996280336609617652552127330597944856341268138193786866109101097013571758144609281572753631974258141839794798586455474455945064798182544520412278481419863859228290270365765386673784605302985977266023778452450769663196786214612221952635912735589561138445184888708726534819568396954206810534613581307267843677453475032405069180136245214625000957209358508432754725546614520231797739168491493131295531144043125302787623747885565240667375002033714156340110404541496375817752014865629380822314524950573586752167818225492092060672840831794558962386825044663144457808476377574330940899038634909762365280841044257494507785460351815043273519635184488489324295241146805187020568616187854764790763070457713199126186137349501958362090926069899125265216393250318123782298419035060646995881707222634965784407067936373756892413486265859782656681313235674773007775892098928143311694236750531175544270290020659811491997181203828906650007168015349289652849398153747435091072135854983884973015275037911389484066291487415645696331413038913516723387713241069157981294895549490096115214881450988965176463915857630133978478459833968854625781984367496147978076156057631199188813606644513081689535997027269869979772517983592636501418197776912860491946295624952844875905176032745518693923178599095734909895336456958723464345651802402934048449299529453508158732059704169520031280315303075314866438822719329870124812220060831044527671559544156239721360193320467016531870441385521136112131898788687269623461458180358972543037468950612700707249226636822720258668847878937178988272219853001858128802262437642920036973247186682270304424078270262795506333455667986896265328843191849201566168287853886766973752497000392090826648886140771588181029650284021845513067374809013256039370447329451530719340028451924981774208163276592821585979322577256528876500865349369232898099462204507117426546763417397142688602622221120676427787011536005772235705041266914334825612622754366060637142148003529078055308356681920634790516021955936995666968544319992823247999664651526697693875954870657502772247656679271425978556402469292001532750824920921822330378899128083492309163780239127196876140962537587592869825061832472181205778759322043357209039577053169707846668298415021503039646854901556469076484083364846024854886743570972097035017783225482277074561414987346607483419279048455749403399116331759597058369447779820851570837687033682456182954771113503860904748151106245002600385997416088642755675076909353972574216079513132737917025738694022039739760055582431563018122092674477007978404474466639843522894539160965736629901785057283169502514115499082727622233867337032768763722168081871492734030809353895714974776942905864964284926381585897836946273341529420886479339977165046653162511856989978864492363061570342874354401487838449294543422278852609668588773817302910394482676345229987090017161927914056549403898775925441924075333223738985148239718068817734950559931737679821377650522637579150323969634550518863244178714322252131406268395657170620188265463636036363838252122196397485466822768380598233846844296346134746783770920050948212079241100908064460452898243806697039238914959319398104330821370687306900956883163603928117851547102289203411893115329128019828894819744229213295814214913198747158331124987416304050399335351881380282998772143339188214292132526909178902527802631743903915943838089624484590237495016739025196684452334443693651719986481350613030169001068685514634600474036705682404363722772442503116972022594138055121693120426935996045540967798272144105480131037815442195633623637965401417065459142986542528345517072934280561544246708243073218209453852784521688210903683179647838214031420157789404261358894241956446473159004990478947782933607295237170397926913374047404048333748486825980515877073265087823329726141891787520903905649955362654948994352572800596686400193853488870094338987419688742810912560588547914082564264562036552324318839085397386696990424464338143218572743193172203040493734768799969504741476066775361029559827960164216281182442639927053383151321337217544288996693620342867845317608277413457983400917584599715831549707521318590843407125589949903941267951241384173454121203620131557201028502118403996437673832206535992393475360992067668309335634640559966757865346766046523118632637618472695499905183901458535379835317670396426902493674592896510656985781087329735684962568675146473080609307622834621825667148841199915901213144989561876370629252114624481256316215929248953647016158435988731652926932943892296079812151707593277195281694895911214528138374869128362375007477748354981871614734857692621108467583446506856564436959044403113520236856284482904146204880429303077900204326883111346999768551614364876211738470954287475694510886265375458781004696261777199119137679829220882680598254891413055646999591728491971104439860841534081638126354119281550725099981101689823387840058902540334522568215469883584265424943256883405783072862820501273657406385991223580898365925124253281259175770906878339018127734103057293314233399167529455088332682364746641650607938519614845389010454033144469311582194865352954609251069274682268009879118368913070127731922393671447125499289206650526349195975522592795012714107370043581255235787779023821937587158056078604407404854689050920239592917543735890812686056244549370214298556235394091968940336615262463426152414213721669630874286387647792564754551626966184673120960759671068092868120606620905364882247837691035005265958477384499850912556222377435334278233118316718462096591642928195755211329700322380769901524329585159760925655438943221320200637302284001693564017030500425383424757034086561746648206745770035727114564018247065445046339136250237649385522159174950121727450931003069472215164527766217420327221732154430899308531708943584778388640946625904643645779563847272105107415473034047975916184667126953496937022418630389242209020130395000010934976449485715736846426676197992505316726016256085410433793078130281757945971560387216063844073783125211872301252557444364842705140568059202394028384937920458763632491691344662540673729198636989487012216412481288397900044543077368647224467781076747511676503488814838254320194892916066416427173717976730905643601734283246619617011084070958766327518015802163955897611997757820682366209586855330648660919743147524759092800582873026899661633749185109025182060507671474761270500780883902268666752504396060899627745737419555927112236342757081945835090886767248304947465033508072436491122684452982266262869960281841219809713962595726506392171542749332873761157224530143560431412409845058410169747411756257366682706098752990358812481388098076836423561352167978236958819437635199142959569551985038152685308691858332670937746661080293210161624298410649579385601836093560549848451701234352909314003064777170197372435070331791417496624494132608510398651779459475797348138997307935364705723696942635910213689608923069865373362868064356529129300883624562917234147283897981162466511149682397705377334953218390500753643043140159763709249879547339994461190047700177324147764652729429327872661303791796851804679845196839413595085932371742933708109779553004755233275069943740662033158416343075464698206619389343112001892488118435380106240387743762183686699037119498472355139795812476287883376817075530653625492353705457145167623649931773698142648082007271740706193521398035441177930366984984663857472242836486244502368407307390002232576486644396468103949678734312563624097153684217877687501821274177957371769797931206544633072597479972922828835688665238871093610299649697840924863123018005853237399802765933039897718920173187209084483864952889893923296344475527111781365076770242418229354387973610312815336834506837264748193486959083808240487317882580721482632818080040724351203167392975264320375661230111411253007741058106712064914392008901455152103550466124944697442904197401069653797121735255204178675186010299976889877637841390656258525799535733770897441698621195498143858319871322029408896135521959026978838149174085108842086877871315937935131158747137816382475167127495413655470537696823293630178804402096823331269455268520521348111249573693976180464235308029269053217295019894203677597131158970121137841580580677703647928826300493346723343216052990288673967356605353744851272783480665473002532984873525272286207950354682498810523839868615802691989660063528264035159619626903829102352467408390374437885789206349396178794903567357208233045774867877770753581354989919021963810187511985554640679817970464763345474294476890178233318910148145932647849984746571157678923123599019751353428462622322638414442566200957079543948863341356267909379668531335984327266669151955270413417103235185560475833513748202036187647487816622435539650713259882380582607277452353842770654426200390770648012866596709713517644747855969440231236049720883363509319035862386564989553820934072662369781666656227682385351015800429734322794568510817649104212647357637693089182176863527166489347757201516007739655394066477483541778127293766937343042398185085318667446805588609693429352769928948345904873585264609587953832227106316272403092538838239624401167983942066999063129361526115066379933498858578595085160008290075244395273514247055792166612074603051526752458868457693372360340527074409949807873036994039172135912092626906240808446133195726331100899316821953072638174670286721192299048400949910661288103618464087977858421038473200734861763003160032863331776420666035789087577935264391916842606001866268591029646109651174562814399192266668438947048141664735979263425299086265499062099973409488816546983946462631004679946882249935355986773761942873566136660615312442632614223401800624826887545114791863565939565744885114620685041197321292762850810529197000183230123995670074405579008083838665503510140073201918332931923247729661714396977066574970584137826335905756132424629926895697404460993332276592750429467284590612606078392484901271816683565576116570092870952627070270808361882866379693234233471393175582295458248503658221663863891416980274211818180548858623879733607497387089456651088275783678512756780897429645528962886945256289623049974154681143309364796871973855064904746261664081876772716378146021298880517931806773596902709772050225549985793904517751098748398378594261219915929344034537120635589711675483320426934333020719790618545775232410721570393857423139979025374519840153071212867686861221571452804843494411375308710317540048804450255354692779513653633810506938293954144821771481662969268576068854656281002578074873987469164089785771814582424724854056349617767476053002931570542359035253465392238494424625740600689824058951060313545378257026917186103305123375773097592840390897555358966968990018144821613287820101927465737962690380443629265206735605393645664909394077014120699125794522684171979037619229100684035660472343395248510293044639962238268702525824416003414790086604724012673541411383469055640771109936970697486096571160929448062870110558654457275337298356534713318082962770257031822514482753360944239710836211516533781642742653174033116000930390416155792488964921565443785863224546390187499025229325939916877804517815496660842654930942891078926132051299310393904159194063145124412337173450676738260335497979995130661627055344635309504573258288279345327585659653771308944290575704542237706617560246183146380725940899543942123676718664841551899395782914714467175551383676943615636497224037202418463030189316877276319464262461029643568651916432934819787047704310264676670588482759765587473938154002726375193463148356862403214588262937531027540972819258024291865020708380648959427712766765381943847224485083436252927132968147321527827020509644154298984086545333498271289422488408097933457074748873759380802335912418174013143659355559977881593799449632781512400213351728630080752114097179510776873740197099196849788896965666939053111550310487895039134919791671394510616137749547329897797919349662598739485806018154809268181421235326455004352439455649672607259224882150074356743828241660151782212187379425588200803098256905326476228210122275436141933136026700130706006564725008971772536648125924032478032686685805671212550621980857444816075617824071140436621089457511428747213850123712763921048712324143773487661489604462500079988501723319715499506024036796818543131613595954215323859562009414890976855368999856422195334682108361940503957776885990911216219881359047251253394676110186310215156586216032829756389494608403670635276731882107479355635383299333542141656476363090413948201566274483963715917558960375702151938056147205147083319629317607157422969493035447660288670593976330719425131000421017280759386670587235027319265475933081865801601675291787653976322792888598362315929149961437276583335938124724727756781733954705693053125579870004839532652328448065429856955123142997501954564954833449447615435430938628967771429802574736547344599761950310714027367007148107961016561984646769866073026976855776835951502033175948177009385276152968416484361296296454173596064744398934070814817298165367287684400043971162054993164780255439087138955918346282564790017331897091166406824623681383642998497756731258161768129524421582299737144600547851836624532037204938700597911798683185879393805576990214963388580864146275147849936334899136303110887754758449004979313413819321907090160958982774272154667762958199853417575002092110240974360236853329337272831810989916245664027757122987329647655688106732825303676991157361013027593834150041450524051674755502738614012193471099787837382907271302767743717256390178420914189187482248915261232448266544047414039254665206669684935034259081414802261951441354661615635956623969032422972950513916506512159664044947287148315095515373938236434948872381671603218074477356676052896014570570675461733454498520441987687696017972203072992207212596098997253409620592812747143611172022693555396608359754743762129970204536737092858783105971039862378731226804351060263344486613043555803629484030847497139360577591643611861045149005290784284118368693966844916490697376347216311557685959812887399419890216365406863468099644872589789431267696606733919449291381212672572504376101916529680901612277907228861112291234945908985234173031394423982954080912405812011215836731310334951779963699005907519822978810946254880960381671175672873161144478304265430609966642142214874853332785799697700631182144297557199129339354944631454226878067373681074781674317163047602924763376488690725767423256599118216952519880833890353719910362124654587500491991248218185279790309114113492295461638488115654337592852595967150152996679476847524929786814222232275035331830000855509492741618304654030971521901867723937308998600201351025145562935502243112159561275901691745715104150259385629640859397172052714658716307763690851000743634890663688605480325496526521451949336740303614278335371863267638105037736520723455387979023933158324947711182750993720745120498525103061793746871711182299075039732991905442256711327821660820789031351082292878841538784138392601263346839865118726825076525954601642466941582634290587825582817792926261889548678038294525328958711013897504115088203852133142759456046345033779596387559409592988268620703793181882165909859391280653621168332183161113930600441746676265726344027667543418300497831894500376499688205332616330339290985581888631353235039933801409856580158629785788051796331940407642512760058564704048663468988973769786002283548002387440271405059535496626384908126264360691509966715327878102606028721566719084490095699928886504306128672699718551759488482307625276455732242665054835622532874627284274535296102188405341537555561993492784555584659521197741049891337052131386890936318928300405997436425624439043657728689837363005265804269668328179037556632256549320253564186832968051014815402429287617994195495927747177915453832129005592132639055048361101442257749311790223191227058888467015321942843864500320676423279601210174514937164577012774062897788497369760277061845418868953519007879858183090434972547830235168966714546009785180591186069768677843560629086091472617337956812366552793626986214540824370168507787661349117228694172865773542638147786766774634677814181077218613585394648092313751732884040695720759980016835968214673245712907326348373545707974847618952068777097045431422249398360245578212281629911167540493028373146217059761259816292801862564583911244058476169760024887715697901824233865093732884552282711542344488783251997860077201913827373593021024512882909060835264466104318405826481668125626393890028971823437546643492663427867212951028161144987245918788471902123837265132787094603324390412760048041513160254528227147025766329901812614185059424195220703606191545712762511093870041019080857779488686484560379771255341356551736592139931541556459739743772351925487188021381269143176321160514917317269599080175825882603118956368487934351510755704265434005199585253162567641030522187691900454022073615181968383164753592635657667095670778459200581024423252738844781277208523680847762813066614559125117022797861303094968151329081957617983033270512087886318791517708066539155574818425272419934204141355002333541866980557864563224933572164722560807867482997037855772119953841529668939305353242600892824470845572683304005501134065277492191047138110437549314739646913990269024664936543436663184060351152973903337521114301032163758873852865927144363694668773854689463172934539116618828847566693299383168780678425014408694934335921018230805498613866618040094538080037305195660407085060595269999391410504115734397860555031978685890858534693876352637843368959577205725493435651926019045257592354295783646146514904759758534674605156878356191225930706107624220874888306324399330263686193040745301666862564670356713227126161651709884078698195066575993687318312757243774200281091428034342625376855633822454828033843933858059399566926750283229869899919657763460290763220708858064499960785587215229480208418184146879728408636108953685158169122130031603386710092091462043556882791004557684439371884205387057111663899072399710414083248369583486679832468170892867924866966376939976868555738518700403643011433212948177153038220287804131578120865130467405258181593792073387109956536072008383367880854324781848875302105260371400066897178528172783565693955282343495039531567882994470869886468276153787753804393809383852685071803662411640169238006891940410486167869594300480620323664206901241249097707222033145051195973620067657936397315896389932236099334428407374871956609166512122569821252272821450132727997873670171614993275428959373645153030640736470401297402492432254106675492528518430396012496174861460369713395640132620054067969288477456036297313865011665228422338083234617578334622970150545915869702243398884417349720054169365117437420507001820237778457485798033285185924929024988851745599762603266812455789927279777820315419998384361456357392594389982565646575426542254246336963381438222180003889477923450865918546921852198977561140783190389564921707536874109856497348836975114496589786892976386955566725621474132146145789904945418394067549203557085892802056764260567771748063313544435914670650565003008835865012358893758060293643767056742265349465128117811538486404006902596575939974317036749097315471214301892230081317990378302601119509041835867085165401844758870206628299484847712528415216210564790282251732656985376683798454000306213920783102010864964052394031456814841094066612714532532954168416907395127216634014964706988039922686668333100983400150430568014468483491564488725845504553197480543994208330705127299306489418811491620244484392568309697422927892123040518583164293732184820202495905246826387889337960606864828184344831885415995000972565810249090972870286389527937663411262437318471660592038081312194252695666794099238450801112998419514712453636550566256609808523813702881415428258606751246687976828028723315716013074805270205829168916104608012476663662541991131648211488160694278887621184645397068988640515388582653489322210431620173053396025010491392834494429451242207512511538382420092525630445650047055374048868977450794015674176826719581210658938062909653096235672900419747893663986884886350244444484290253760619766599737785195212804499531073260823120169797306366628604752050907481649316775021147691717167228891465245967294248618579343814889168937716906331945915460326086079011687009715762717346398679861601096627121327815862171409287429908958187021009637174058339996037108910313587455383842985875926001454497469021837658995559302244343729446118625549728770864477910524058688576165885236215805739420792959533029426543831104612008686045687894210319556129725687673168679652210552230861283729726293612246741473344364698607404755733296631019706213082578187255219151372768759668364157476797388352890941581976477022693289920071129958171035917334868715509262494295554704565294327308514008081918507678423559277814408808023248977999554179680219429249783104156340318314202814294412886117239526323578030339900058080868598577350406387342708335496666891952533142595061323313811809010268079208852264779121485167152669112217726668286351392428297687909795509294842815795113879893111398811196031158174231165382196286052468180626427043721444790910139485654757644041826830155929681748169508822250972788879010512149952533726573179745944201862466024215334934306444552535413737500707465926746570778924691399958413910220239676768383554050042103060738029273359036614625224498591142655195221098944617618292815261626289451076683891498947353531116075991654012737575824267259164437336899466614260108387720040530872197622659579098916647654626624481798557567274297392420627456990574812213880610367422191539190896514143635364283842180999612723435126148295048498547663849266856269062310862937341138683057736924466871449527310954781490278328629647733003671281797878365950143167511559398347677271170561108199991167804625511559545190733987068203515731327941728548014451990192965791373345543993821252746033125927868959304335646075766255183320954013529660854902148303598343890337879523001463188040890627424197098900402141656456695289975415046673361814770962782421863726873769078810812158204852821966294688958767607574885681271509001816116059689706639311439426666001620505222894455212716623002351423086225239252470861203149011228428557695745920152731325801838726872691765904512548265409531610334780174889500785824124500715299173815324720890018661154306273569352748772433763823235475559654849426738872939524149098838922775860346128498256046485302527255789340642677991004730610014855665166032107206796416585065786006663588851899293358747518774220772054792973204073319203829542596971482792048441361764745285516586699402007751839576624932101882853830956642483718734503607341094911927093439999820518445481417620879814615577664712025557817715866072646847130960181840435658541409617059548132437897024194199804791485303003783189900506421236969547278928567855709984406125937425365478078359184646670748701583676478570855582844809931547660908509884208403752607305789228349249658332697328013848885861023252404811611427294388021707487660834796218362452927878236808577400531656855389419787660115229014385217205612093962391793019376339924340208054656921460876116963539084189043357417635325629950606836416142446685726368734943251376825868166778502811934330527500844755349393651618390798896151885302298157686734662214018620829100133327864127208610737018595747816449170479954767298895072208254419887528952078015713023111380099507779487565579992018410855490938802895716909570484301217571280834397764677825784504861558784276245596480446158134583508067452373764942056590267543021494497365476953770986222889800129575240350320428011750428789894572856643852325044863465273130169761748209991333196435718448220006927760271803180463411029983073389803134976757255574059221217094582135663538095887029279527965621029294203784995267927227642936000844634438557635763140694394589363020780644204109112100727332675570267363348409758145563236320263122962879095415511500798219679751768979499896785729511107291220173609695218904889918088275252207281027536697288198495794114672743851665786575477238851565973764825965927263687785158532627845149211195177094557686835908858338400648862542814194341761141899705289700343579443039517950460861581943549585308003472121161195437929894235085250982274212746886237303271885066824170722198373538348811836725372501933404858898136842754984066197938751526796996313570408154009429790204750841405807694962559983871830265578463788189839725161883389383144957794925251687477418232089473423505863902638531968200739184701364218819396633957228159810159855587745719155047938521556798973377021553352311761941317848253851558700834453238271951970571657682040589829721737224115996055579511340590555652835407860971507919138770706060587120062511519899536109402230664597237139296901307330306640172833675648252740949696023131688738400263966710148210473329481678165762947937730868612811235621946636312662391743804609341682102412282759985399965905252898845481150272782893751097650860388936195732220568551858927342826781087303354577488458016728777456273368782687668289146673937744288189934684366351118997913006971002170195976189730470251527247486930509158240527580231247231958579166232788475971672570597025493042503431490467071067885144788595930194737133937805221451502204500260412798982806301557104296531717215743430024550403739406375997136783885835149268334205874018226463183776824906062192751551012246445104650914485683636259443698854998847781371491218998451909441117572503576795584531950963202369067742254605466885381120315483342285642102393061592004517060072017337071129537855656316289755620162046678016674578377560811375423086461633362478810024769245914917477490634056579406842884930280305356799349183081451699948040997672162018480106674552016792739364103066208085732659569165472969180102818417915590387769476779693775519980219153947487410522266756449123409407506423002700662672141785886955751334783622346868385248423262247912522732615512006899987921341756513629421234991696621906599961324007953605342420509510191763824529908323438921544901578380705496610747330480111273381965101378439078888929306027508264337406010515865300575755521013797532249946264353607446660779158835857616107483259472518631740277813739422030255656174620115390509024795600646077056511078253559972849828254507177333154849061708803380091957568068965873479891375540722255953060819743774390162681947927126924282536565793844545633542558656859835831202509006810635933646376732850727113026636883226709726120623880537374318761610178029174285532020099904331665895727450142511585461122369733340685893310031412429168117718741812015749203804781184436265703048239194834167800299241866334715388202142519896110891009801228217156743160443989665802517210192192580363402664276282530642448869861093852736369714476749090016879560784261474287490785522622625987119061461805491966074493125391880399094207719293852060530380882520566239463434747650028968887525307772163611960398095898564840607863742395012092041021542880165419247237197605448893142757651198548603352125632908045308782862462551624551130043175465972125572623525495586015788499025743290700570627431270349767924771477933830751246990050305144938939342425285342650611278276486797179821357334442635949759093422960988790731814158069199917761235857188866275678195088522580282658777103686779537417105844148552301292275541278669237177674697303953293965372720542850821724527065331690534167037752244909803496943626651271431535234561957151746229057079102695740430931883547115968766788458755713374425431518762967288642166091815684470747736933838860070280298708952430067700766731054428080149529113776204457236275765158280633471577388374017640768988201619637749262624714270960770203886446343863550319990467842389583978622230072567705780680531647383175347437868646917810473040513169198878517683859988791709368625252167178576829581435524282218876220432384564020384366234093983992341103016278935687729413752254896268751512357421113544604415244703872170773684483692250892703703406595136775962296066724833810537444832263998899376932107262660646189623908128690022422557430775170510785686277861126644284038502048744570573566734007247760108552305085393681019201222462259215694047536069124288339603395243487664478413162487063845044062046522377428504975500852332261162700984767814665772430336503823021166246497940731751759966435613107234614319409897276456876884012361318580854309848078520700223473433736552177486672255313627908761977493025239431476098984572665223769751970690049053985023191621631872667606336704811999114978630012721113929942544201429939220297948928952074881699625636230680448656693101428693102305026324994105891039620589598090110989432717538622116023635825970255276054445377709748240524049904109492015281738739268149691395781921375398166907988173876729626798238019926222243257838340986107969013886063578212642286041660093632802724137567936996117432093172854072801749496398719566197478590672074283157520421221124480119968609137983364274088094717294070906362226612341499769465914755890373956538542668075168896762029114257124680050931066830689072769605942349422164539075807720737426310543694567789003519772716429890093348424744753349273674204835982052251944672348242438356939116010926441989584994414844698785914203008212591266773092706219576020031710748735790272167639419541835923976268234129621433534081137983605973615598504934192673953869309500642019429344360080166151773617041729118057485134107998289545899879438695417407351820276574390390105413478748874422484098860192186106124536214515068533234486796000169617527859436731417137025573301137526724188499953392367124034297988301541932789960992414942045089232954201462419221476559583598424017260107050625925794797223136043967144843473648422742427832339135900457366693609635811066892344633810037999522813479208139615673819431055514771237640832134554127030713471528500919035383496720451535798696602793766769214199854216403404174582546863224812873161913381059295068228011387930935664234862709678279518583466927779851406985345064560358658028486003475339822069104056681568626247969583665259359293292915925463970609499176425737898145585267490386247544672695632185364477013754722556607726837929627368938899154125363904357413871898829744197333519543570032777200330750108222364460262954293839164531712437297744612648945211961389532135958572779829392442709226129343748886688025421948162629525255817101698300119946849598813944560158858025511798251440413576690280804913757722453681132343694231948573878580467941771995723191297902283100008540108941867718266180852072502314536925722271421025863098146406589792009747681547219134563869927930390425648745940693307008216115496761382708795641685548910868699983035077662212515295192506283201360368865565321247001514997800398198144887055267399381091905634040007126892734433475592035658269095865302446125593823400053192392369535519039959436758505535152191338242881430980601427486062815489391468077305151040075920974481109914635931882270585066240322004506268660805850074222019277605724198803798345097517298594906287419754885302601237195760432543998203642435032623664441000781349449668747998764826437957559006293781991250815455073421063772482500780908679343392872599078074640540761708751797129801466121655037557479765077800921945416293858074988113181331078429895362514788793540965474595797023140325630751753393872174994022062916219176905243906134919057269151917615927697649163614442584269755075294671922887508375623209360134711680359027206973927331661381065129173457501447555059244258927190336559496218158009217261229445996807387729392623081059562205098611700629967205253088967501852257658380731254134558359582223643337579097420168104671766886193989156796168825015127951640557614346011866390155482669400397460253639275772504752091167020493361753595207777559797025121305498089449024191600150875912455338021862847150407650454413614737143889539070554747172395991131513193161784925499566496158711070477018351562201082648595797290795185379927318175075017730081673116448843454584259363973437260219073186288431611356657363369932141244667328990555088803077807315415230724507022374299843246215576701095059404422230960485977818550901527629208680802828399914313079523848293146850479785375783034436714115677482012590154430291753105610972177596356444337515848093694991260004839308623632715831270032403543912818762814679625126611379301597936177307838978535109685745972012729948342200823407917208802050773391698548916877575054774811140130335112033371793701992018684501244397123049358733835240650713099597284868505287297598124986006344027208605407638371208197636149814925175670323237813108098291540985749503931303802495103565300115376548931441064808576163098777668332939919627611844051586183741924080430764355295033022850698341901278901288981812237839800203701080249726050349094336508034266213476826041104584285394972275492642106526147908281077088377985632905914219359937753117376957396298372616832898431991829672128295226154912207960552557687271280285772034246430137809388756655764911681381628680865895252374824850322331186030911894210824386615475127590279737607787448040758901772796656802872407860323710203339665739894969728931271245762057428044839729284205092810324378159515023226665311495634602367703932778988939434913245236407753841659365840211825848148377473082349214004835587524966795592617212024877096491759613209040139484514918660245551736829951105399753017573835518076034984589663050620617436755184892082844951065797637383405911608048971683115116802578132944234527467285716134286261794468666872089400944088527484331226782801853822581497826733649750377874537334937498361942037012450424878108756399218669062996767931023816244866063117707846735492854625741719322532635217068700243724832030662778408737402444780794473579648413195016104276283701259649870285708097173621253826965714214989653583207660319403087964275597904070140106400031488829967464729909957342703584727739142890047209461035998621100412863117914357070020318598199903468279891072844425392004492658101622069921597135820179026349055527430209114033709062162877548006902679998271019741802536213810872281826175299251328027826170735840646660224452449875656733275102445327517229665422505081704539637380331592939056501560791388415329139242241133241389666267171112818274729818888613930895576216844762591601699326519904766419753638094423888540348811513351388061989658365121570771935120722797136644917907147893859812577106589844119935074472305920136252066474577883561272994961469677385515197838425823154477394403983718736176841266342245520769257133356057618154122697360831815777394694345207151491583300782566983043259807291431962208505357247647356571999122216559739814365022052478195729947548143157431324134504502074549419491402200946698332485474060437072397786312623880812429773209910052203384869102628456294442009320490008217444132208185430031441536301277657328320710607348559149449609216462080204155114190425804756712783452541537387728665164512766017301591699668673573059587151053442763588693575106078148407106915249905147026062552607281572824974078959746592018601553201451546074557194891014561413241867139303301483189667838056314360757394099028342468181815930971600569805018514891414081252932600415955709606661852569950673448812318181886586875157445651957116470247680187002605832558233282356483648016322441155325981636650259414264752655584641077344296361309921644716835002155779284024516078164728618572133424652325063818082434818660365042738969875002349000740278802590786232755150319874118734095427863138292463090074235986985780832691477569030638156795685396899977437007561667376229116627964408814032398738084381090041228654607367748087666146861528748881840991584312039647897776265573576014939953250597133590268208761908494813546267514334881128080657837785085437421786631345678773013627561074015162469945943056861968170082133385696770567272770847126697792894263326293692259366884032688421941341026576985306094860465598133740967059192652293361208787303433654787502882068334471022200782760598141670286805372801512527174466898667413890982489362811869315953871233549257095567748469034091748164140167160093499228805532402776589520903119796256693138831330049877149209711747558130259040829053344571737690844000548933487086287322264210054137464502492282673811033158266884484366157133686975339681963611781636258584781940809519037217576783065418134184120270437295246324876264954197436649917832323209742491987128829932600406664795832995843035851952292543681508993189879345922852618636553695638697239034807355303011489206946250990379675407754624996935628201427702811043593469689865701034874442293977669167131611652728093364019143184475061405927663349286604057430275110715192760908139560236868918779120400328139894914792513911101865589193066472367681303056511480756484208381640928203538777724256991648093197905305283244616314933144239796782733001932146946831117604102138209959041541461095293831100153323636951535260498415928289476852182736180890450079627479838650102381110070147842210449960885680122491040928743099062495867170191431126710513350230049702287089941811278442265323448457322299604536129893360075925687386548035128179460566110780052078198400618593618798709366616931054012959675226826391346861794330827869143654677722876947010579784416095188985796160772013122905806867740758027834971539319658780373642120214006080003499678088040858078768818910928330223181210236853914670951806557887341536636482169350145639360526264380040872495188178532869740953467371393062039628565703131506513648164854655379479488985734045187506787174936335572079000874707336849606062498730163227895360843057404368613340979178398135692812383181813805463350214499148777060147542387004008108195374317599907912264969880823651692047382656362796922641493343313983695890114141783604010627261781811985829060660773631669527127427825625405968750111910009907079061600868774786663106716930757309183914335899305478867837912126599291125074631018082475800808937068244356650870239103417338594229985041443870123653387990723877567170407169980106030847028568626447694012233570201569300281387395017556472810833090070888498413677026964050012168593198457214394614284133526327939113698720853375505355998896647868101411000902842623736148322102262752617279907436570044558500878806628020155461645562286394489967478871558715091963238079208072138288406291018834564462344287070560981732961350000195980397347792529094209974916305382068921082685726576826383685681397264832145337699758471577272482977802201575011771861533059934108495902790268746763084407053817920616710404975698796364586992735693053209804646710417940511757765194754590756921259202196070414415127569989565784173558811613340455288870988870395818116695965562460912139854750378875708583663947326654713642578322469051197674907963621566947184892032202456317412887425046360365873465984272568875751983286247476200245995945356057043546622533533361991104983530441889325683040460898477762634619236012255616729247886767599885387957393426106951940306457065681895152546220890394634441739636572908305719088950064321587123825734942113486704406552728872881261843910772537149633901370723726989842864841700718340864262454548450729812818346722354359907583778629390223242691007406753232231156157538678660269538066508469798515557565064271777274619027128964399251254589532802419078759175888287530036051971077182002590258873602354860423347802025558516470626268750860016251747276098104989028486146957864238046420171270763083115760150607526734340627722592418789662946257949075373279887808166531960418056166957818232850227916269675941013779383712209758044821968151691157478819204681732482555405299667441327148217829077067431637084420811450627127054941326008146293700697319779127299487053823704958604835563837624790083291716559537344224832828750688365657235495031691974676986603584865247100324211960438548497419156453378377421524670840449947960736607608803048454218371820489232528555397249916951592030220879996727988199373480036853984744658456475979398124022579956415228221665323547388758988230534790269019684701780427366847112331487334729103174064601363654297358329990688345811290013943990686042756144041411399143402643709098985632741894474775243591966028007003125775692048134013431394716809038480951490217822042805649345905557316187451251497970956906070875008537530575664269821922063309587406070735172819872437868595790398552845285265212818598365766453033326162988734679074509276772477561769590764671415474482503068397598294180660526635371648461673078300725424655994209711618183334213596780367460710165954832312469832400580290270925783765822339655661098161405518120056876402305898366861239008275072037272634208691666179493667974320749924022798026853854570443809943889837050436839904710363519580733987635230451646079815406812002716963183297143531413543936639113065935042962629585888603481809922339051958517664123200064626609022871994745813202323938381864317598865865679592465406543639642832002097205501030040837292302036275158676394986963986362180758998344654597697723692282002858480918592928441856625914722383870661706789048204649645486976978967058864629015049768310586124615743442785588552167067704696756118935902204817552542992836017296740798186356443012376717692270412469032449076876537768400894414950333472381864934373641446372980301057900190867894816763375014425607423715710094065885439076432466947829129689635468599397914171698170106558845494254876974238990609991043611279782938965095846593263188257592351166271825264281350658664988288871594434973158885851340982821312256189135289492911066215774407935786278998954395829513958170387120036946682800229340729262403172118529495567214958375833315149900070786900252244839123022547013415495867606755514240134306491271927322315204695117059630015053632928611917014028843358108841455167066066932005418711641600871888734006040917306095712110397482576999147215752172234794445073612599288840980313924753606693194344662412379794796125489315866585484187734288948945727553161340292088387627870217940570580185940768879748029986618932432868896638258153730434759389072607432880572389428180412168480985092640816326185555638170983900681288085287981766185618982750893622042670526186301163789169754651046273745766431492369689092120952648078000710501234213657575412055380155411260233605490430339003399230762610996503597775996496250703833587937044796426559339969771916422937900421746492941972679943245973290399426333019846169156931976681864986081407888615780403587602627803750474532156645387208293766284928108703711683841479880733646271579095875196052597418762380024600752526239471327412263009076919972092971723519699947738027857343351579337051657553861840200759769404581097446213307255972196563713686994968151900507957639520851195564206270631211050161346719042080855754150731404940430786150925826097427224030585191140945519128668925675705564189277550412865612670294561429445004893643583458411115059752821301763100918909690815792803242530950705928871195981446221880422994129821960886245236819795898911107277696336472918724868412467521251265616130609280735944912888581867451813640110090319148439291588824819514194639745757095361676561061319090501678425559252431282382787328749649896497814435887957404499600636952498815315048424230288080563478062283032129613470935046642553888748724041094637395514596541698312057232471127402718029197472145916790843735775040123626724625646615297192131335627436379143552557619421092715994672896256791479841110025956199295846883536042896377809673788883621320251946918080220910061658174121117437281656397583919490747415687311814708455612571006863741802524903132369672968558687322088129526650658746207810572134626563680469042632263393604781205010294295400402224412088339072808997633604788914000092032947227162273992060600721693707506958354435089844075462311038223919587985202581709741750764116791513096105910542621264314097841645100270896755968786623674340947028612641832006190953221459037921796163695895101289309389874575173366486829143411715391435444269252000710793013445618996927107745197429267436522591725382573751441625806692203218696262600570865171101841507450646155337094195583108009075795339686720192398832446623201817476408767979351173285368703462433930108511038401121800211543483394443976243243345128720105158723224388622586159521131934566422252892653238872730386109525628691068070203500277729116924847705819461274326930237190931280055333229293913247470697330852977586823172734592941565509978404092272774260389147736475575903295211783388397596658999626929529792188290247501973420012038542245627599511642060425497287171740753381585846195907630169678032882113869899161616398540776359026394942459303765663823197963046683936322333338000059957440170194677490095867556368085486329901236251500343176093907849362994014860042435288822719175611595550316290060260946081032111458691366980716937409285175476403090980377183783202582926673385302857550562355442229479693568498734667721206705677720787507564692467068884990626882173078384207784852010690000097381098124917714865678284012142999412061352976004041573617351254444966451386184567351457068400178223345853966500529181519565197762673053240457880024098112899500639995785028303549417730386447602393585497245353790297477317261903517059819033510998651660426386886631687492761577773377899632591005317935264728610637397244472276942655659098054457639516227135530224460067214193696321640606153136675615957576127936962788946056797862673743516599183001697491075770110962001400252412405906755035319910187543879660293925052288685391018389527704044881714458367644515654935804419537034834755634406319596926793565241201625986446706405001556522884864730956260017099712687847829767029776125366696100153192546488627290745456053145680102986284887210687058778475597447319181434498425575779633355823258191246999656276551989174740992393146327370513538275157022849449199635542516323244169528297837384463432335303718339116224182055437007640435185550493125757214722830133949932653698342484874369853030957642493354842275915323267059617720244161515617128679692119609985492464695956148588410115175946735197821507508413529946842930405425528934149924313453023309071872461471624661373184330451556989304518616779324471251618983776832418038087805607982726940601168696723492052572833251609468011339362711343559024813128434584992306357432729558463576063124091914145039268879043679779856875575624599503065360397182077537625888518705078177900022271634557784065535294277830105162030775673658942847097551023046963441489022696989999253744241685452326611440059270243014367838175651298084756315509621032997682669055579701696140296982740394399231088693812753352251542154888469329646639825307808360825656741346592122008414991668807036639723450333724642307822906562226925889875883914492369129149587880699654038925249042694954811098340419386870968113033356133729252276667614602274603984109702028468810635665003083558467866110934110515371451690885548447488757892084662156162629454263062779773509307675499858347504002171944992932279167157909455021491940323711371106861744887128346691665466519875002269644774009655191166689333466216197208697435544897558154232871758607985805099375768782134774239796498021925029493996082493720806681704333100453850330578202879125580651993704018198258640989763244764520507891406460751940958707142208215139017545381689653137211897102685484167195500024362627968194398346220476184395144266526854795948270092700755231465682429751746925666428943910514567331773319743531481913542934390290818074795394026626612995472436619031813767166673305729673527842808878015554394516634395259485865392938064725724631221788146347414718723352594677805317458206496742618255430415915554826356264104023258058364600100251450045824305839295555011766959297031191027036704890700760388883889061529632923807244319931057827900737332080376747221832527968993644000123981367951025814740765208457028486359880525157150502341607011026622372604398667441450855800023180835214462894656701957735304316988732076876690587572075336293308847292450677139223090717138623462498321505823259417661628182109180385199086285518540475749992037900557476674052862902035161633757518523337210138796986903489972589947259374821332541342569767119797133552076156646968435313205152400309963060922556392659911923667647213463709763721311608535510081123736920163925710410654874743510549166530279152442146814931471179498477007175051465643370510504175500288441250793166306769973838639284123336675628121841159872403462347798174243456115955048185917056007361250927505536052420073931046880046558508230705972983206680584875002389132759087164916528215859450965989737620891597930915451784781704339425826032758459315117980031573601507417795585155644471962245822048309524257846516152035956417868084912431419142374930581944589539884356190548492478023337992718652992389450111105193293653160256426589120795215286010310187009877286470097288839566728398817603310802017387697265691044375961069627380915046847028391693167480287387981114999891123010966452914928218230284878027958913626522301096055748467827283640551618300609340634419586835389499588838788844360478900135292246796076213099262947915838719572556671019177449470340448492483472414570954772204949988449570095434708071898221106671288459835332372886332794841575490330125772954817772875432918349760405468667208371764875248540760920191945810073036106528742729407342273257970285781351073908171560836292249214728906010516901045093220300658977514357636943275739598383825468040837540307661087250370194615036895528591948838790720081162370432246823249559719656957856808007411477623984986766685580236450130932377980873657872946432333553214786562143232622532690979313872813874238072098226808825637341352984011056422229054105846748167390183415785406602575963249958215705834508320875842326189711525677878531843702478827098780183329765098399626631726903422774078407164193128789351672748176570925036406162120379073007220964715979039443931062797020016479883101559650070180979296732007372963700635132806779452474030873932299533691510494919681764922405335074940169492778683106397526674884550367553327919778429622926268389618630213055193166745058278278486876945191617490589266358327548140187104163376241842794004588935630673238139476291886287277028963846614682874703102437026585230398849641327573854891338994804206669668574482203764458746648038002525862365110763676283552697445736075551052143287196241681348603413214966697665201235229409500099877977456652072332577584672770731016551382629939259900766232426113046809913499579375351452393922769635370489038538934596377803942213988119004462020170125904009778605486998016692200906962976304827987014506653250567983200162527607616315759368981295724009585281508061188130831024208577092053854121466118692028555464348804378411275931093096536382665454862380945133292447080285626183772670864347996236525210508591713455498488791313321623775009364169859297211161407463481811410447125675428623666201675932477946297297753603351988597959102572822646598298974770052226876554738521441614949700517895723820988316847721131623519228554893769227221757328696319047767019308758780475767370586812737472909164667055757865866864444555768916734870510327467292815826955761698314558413258394827150306516509205700634560554555622934582673286415699286938049731763192511680937273921204144297201364227684130157390097964812282992594987004016011985910052186080568367424373852935906482527708839656611919265664886024358168716225077322355091387017794446677543673007425261462941164334238034083334368482478226074690370888527189811981816564176449003262643284614740336961367024220372805772186124360003555745695656156034316059046189315659763171702801066676012144186074915975492186806613547612099116998549068693018436112999255820823795408633783039956622250247607598969050089962957303729980894586902743118991310759538428151278133601587215125495651493621318681755366304926411214132874317647126528892284862294623380524915141815850009356699523909146991940478027369967021412858567667651434012346262226606536832258638114627362792080577720793450489260553550575990625823889417166665109822793282704349820525576559013483844629991931110976721141835769954412745003956422500568845885809704352897833376208209874920473698023152562773364612692016033884712093306907396503236412904550944747302418886426634644910717210516244484728486710780143445468574491152315850204563893032408364625945444526260130717577086888848173153312989337477905055014636224292601340627335832080674965842655686330337000790989502103356730494256251061589456247256477190332984079851692339306761453483849942461189662536874178152445846473054263525636295010084767772849610945851619881845257253183514201018910659713919070104574091482431568247606467234624726479025000301056870602419295191057815270364813180302087814649810324909844734841910631651356061638159086365281511662106991791046943233787245857208670594308044485309058786786102921282560034520215373508419673662020910220115056183124514308091913111817361375941483530159427294865078669385982995566291935003974814179837157362203470052642435965477129785605526986143864151686280428987397256480714357913654423824233992932223648969119025205431601153606871448648170650471969350152239590477155625936370753740527090412354756044984588630041880827736793751291298075313329003312949590242377865112558108598124853188050806992935352939363122639443121199513148890345810382787741277499263333848078814276465316841765468934259660205529005908824427152080303646829044373057340329714176368550131218031539569231772990343494083007242633969181725668909306712794873614397054244867010579584579928755993502924619513139823850926806072369203229609646040973529141686663175836989050119526796280877073033869302463529788663191673715947602780382513283866440164038962912271388126579715648890937990979050420744916100091397638932139756937184987944516115659245751032714376995862969548388575014381035931720856295405416236797030400512330156464223908904966673553875948272710717823025432182793803108248348570468065947616710821531060517323098100700111227329204170635894066248712873362244583169770306155959903207319620225762435266513856142343084288415034175117649550293517888102816568089128771553391030401291312651902862615861816978817329543063484762015234119202617570691419978903504551068730621545421145766553300742115337823529875129362287747260456572520637427021188737826752026234872962520636356412278755977088531655599387954966715821328280642026400683327950117196672483531072463625607847416587068317732479555499777590054374573235806944682577444645312829166054812035453027210016870171959228368690446372022678306260064742689180805573675395367755077997378675448423004777808832759902107640518869531798350944497898855228271933070892870252666541873887319765250973272738312848663695495180862679287745743421133484508680380099983801266467369737575484181288388090209363999873101672860857569616956398990103201390612839375310736409230915986322394907943457887293325115625061850728776954110679954012396696036686301312374508834081772220754983187376853454713366628416455229418655181141401649680639231129796123469467854507655172623942262071384903589920044254303090372312348699617189738948250305590226599303550395923047037892921052418748211265540139117087148769959775982753572670256080618780866642100368085068290847067379432876470607654248926413470450053352681104525117844781567809987598391545969658917674159320245099764423206770320442114863085646057600281177284439253111103076909370633705317254021044389703773048250521216981915708477758634192372121572638807536947387556484754979763654552144486716511100073109894843298768115546712209898793410551629273963187855922844167638448926905501199669886534605527028895333569861399147467589440433893784939783072425500187276156542535385839589554982590614464405450586892217672791252998838814695321205367253040003043502995141818042905940497787327080870409224018941059256223790942353163522632090650366807797886654864121715896856368744992892288773749893234664431708045855768264887090355907762411524188600003450702344171938469023591323389077156386442695113145109360642985873983566789474923034046115203272524804921841260336957969257194368456753086408594708962143062538663901636211021845575939623780988711202166479379241598723509024006812363120127306219728975803567414526543247617080605692226157544198849216162750188674352547719904071070857452423939996012974564186495065927118282752937712060704034253755741781339516439511043791189949582781457542768616214935121229666618673427695389716293606404720245702575557342519350088711909322720648123113795520282018565460808174073912447676985752129198585066079437500907409553297119644803781544977463028411884919090864851948912964095591389840229312952870293014384805022497632338376630474140907821963319059620135928503769298635839415482666067801852193929729598188221568510662744076246612374734286878427937364149995587983661196491378577365662513869539458493413407489553016903519328073454864476920939922478796867710498544443992924339889714410937665413507886967630796682250961875783188885024101311626999717991684274914035935178309725223765315086708879615516379364516195448757218038450039676248979818239291080218541607256468841175642861519823981030466753496601660981340915777668829185261164167900044859344737082473055497529862484958204545359661982967644944841145433356417399102409503626195939376065154132555390843627806297383616212798761421454248546337202265565251491707532481856887190349732656171341451298352347110552534389134063463265640412991598968210730037327071166155528150505986488778813212743764522421737916526005078178236186122533471195485000439577769933938789682917701549562613090636944042986435325331035801626302192330987553943322709066042118956294560690763737586934876953030068993318221776747432414534969394758391617564801934349288444823707330627733972737299972965910227833552124559693476673016454362154136384296454967578845019617050565175203703613157074688082891737311467226000201592721527132140661531133978636380137436545331665152974010151958192418233223425018398179825629956245134736802748255457929042377339216394865395717061171139369455591377726747843041899463566284147765816833445049771426160771585593918648457027591348823358549483810149888678940043121765691134506862357304996065301222993956848114514840827108610728128307663414694440439559148535446051468708363808911077649185126036265654399105303168823376776019752599212044610266189315609166479527221903737728682633245606474038278567214926822859937030034991185956922996049006519018149540381353950260381561772490678832997164289452984863281846099655027403995016070717831081158266835602814689167647449882227381840468284180432415240013323263869095604223694753141578944857217839792995691945937801319231811583708071840833487252164658128338886627505094326830987413708405948801097333614770208585192370834248795805960334821132287007332247744983772885717808913894026288479551507373656344972072794269747397855677290016087162666392786536459564377965417664810785414023043642960725396897295745079132612239576572645301320826716709935545727776470791273433511983959702976594643582387270310094858998953525918457333473329332010542936414721788759874887315350585984296730834018210780798237709139772489759852451388249535857712394865050521567288320182881774074338184354594568801827143971070386602616854348384760866176436477177290294174350056117167067482426770673309141020591808167740263604645062349838370432341138182391901997712060295568539991646455027269360566527428745490536584200003485828318944969952819392197093629150232943481871514696137955360848052026603054581714521828106228052183484566380449556032005932736504930372205998393362610458261788315498056961508137115831516666106262301517379886964741496164371899768333828736348711128769362057901993811463271896453074085394237102309633264003246810467294067731969183113237357525913108770713017781095554878360041328584824645555099183042112316328680016305962133419518133572346781599708847375369498292738605405014193072100552086213831859409566149124022789469307787213377019988234306983640397063237145800216378143701081646348158991589342671650211407398571686270313298020100042019725748115369253305458395870154224323485519505001073722082469621788047183626345931808187631609620404903861805274587324543750294338159537032310475205472583466981760879494942954629497461541711701700753013425907341128666487331013113882870189879715145081350511309652781369770010369238248638433253159558663729385464206627398678140899148718800776014301916161309738126766019795860310366162531110018124519438193973869250924728155890719110819556441327978838525277283730694380145184527927173276895205353741542082598544669090513384717848455827160013386072931616380339073266289998179846689143135936534251959176751029065399477697798418285216018476554758255664483961104972431656436460320101119594868112739504226817953122207553537311165578731624601609077599507003796915695313772448817937404251951897227327638057604796758404191212866484755490231246882238793721878374658686066067677556919501082555785348180879730881418154454059002766781608773060771458240815715840730274205553493157033301437092523426065323766909404008311648359029469817242509694569927691214116301162295613156919738908280355959131008615823354245488147643064889613987188651735586626991986605208243325522067859256438487582213545033342470231367073689908056230759751352096562072486498687555708134011385446463711467847253249554579650461738298651731120335671972868907728790420268958599256310153515224709635986701418967660739457291278065317161991643187025718873358273417059443554921804196037537590022897624769329179569429881039908876168929098439652779611638531947794344843809598289207522699003005605319107191520188454102802097689211696170006012808886171060338746669214262845554819911261955655364141836662566123275609500847804965410442058429717853028121031147028835474016355940145972441415957658872405694067488641233096337358821107601653771256522599323252073285706008892838219385715799232418628803944826372933802837373684891204122173269450531081605361800639369836865591588277616937498642114174650853654317503933603411654769024346023862524250747135323821088983515083093464728623997568112931169256755050129258629444186203600201183558788450341890493112817712313667221413055259702708225677776389385312482234214441606199770621807104907432503931622661284035919932476632144962914323998326370211265733981433573424650028005521975130964549888186111981350144782932396269053539947917253976169949341303215822392140261404925545185067553764036580128192048994497020134531938825246380050362862631977877658260352907364607965523434040263004139507026840593272577892589075729310550512567023457415314828294753433714306616684281988084617908861447677849349783163418541058190893964900696453141639287020970779292511789992362383870266286870387002713128572363358463038721606706458760873809244984282099756458054091347474155571319357579917750506363673794768805204803555928000571618251477238737497270426704022112299937580525170427551395952146411523641954320808063847630412498849230180772341477121824475623237106582826981904982049867592324058372526917840604603115238772103733585200205903889155319908859763408991100553625614830108303455680847065236211856137893419408484434945304097885194786302684421111564894810560980265428554688882388466350766625240274157917679318874978719597294278463729248636812809471643870468072927134140868817526690147924248604872439846752279742240290857044732258585501418178329349230467552665237196193782178263669524180790622327455947431134726910652132592445519699063452038278088194223218855402099625812089192989276123746284508529858958759218614862136135852114126171536836727680313792791016382294524499445900276203817548160955759407864233894790838292957662335119617707544650220036849807564367878939989631554321137700133107884619659390567815633055317005500428113388221027644173182934648696858634100709265114539950929400301229987890396766475330544490974084152505864528024337564441462295364161308358418073632389684681728009365240555062764594812206246383934394407379748615350843952282218685743032672151147215555517516031156600980525918711269632686015711429625762226365963156384933098711800532066199189306593163361239601755893282193542279967466222671457131638575825617744676142325731814858347105079522355353363303822616954429910170823719369190591398874753855342297414283823755225922171580891027142661088302844848088908519375548045525876486424811452234178004331625348612444718253538220918425627104320392190115364690646550112433963365680658254926337451473355656048371248428682808892945048647522421934959128811566752200799923624771879443546677615361508936415786522343889034571443649562442689888855256911601045058347595510143690220484341849100825564129800743928841222823449076190623155837502339674238649261047724201524170630914924304894534202748275133229855051995175468814929317367558521291095510215407087914286835498326068812099184148110905811013395267413317107863693652320863810531573065596096024184867767200491170026359735712260032805899736137411091803481401254492169038190078033196190672811559367378785657704063685667687069123097793778216496137415328005570744241154545558201313177988211998151013609563844285226063382756721483980865959391833866329792531018141939004494317069870338902358537877793778442377746804551563204823835425410965097545412498198514827184112068693989324110452533344375631526944806043944146482043442056098191035180515451272551109853560162349639735871323602904876033973081594744179132282334798957519502338692677757500178086387906048239303760612020029715917686627536482474847374395018229712125318643859695596259201239468702198177146134344682927053608640489776011266155482285681973622812321437098892636360041559652618694981035547865158848875156553484783272972409969397416374165976021341877294978554205837711654173536010782287383337711877317223682622143688142222117779394832516689467145509012802900680001160295483693852262452166579563211957825706258596837412709869307005580804413178363172274963605065974559411901805047873089151292013772675725825107864405707900039701785836639852193946172928307360007352709164561144401483232084622424582683280551264963140984385837796444199046679006412424643390320399041660736296356491519128418555394471210950086760655994674504314729199483896038302123185361667056114405091977764529446005659093035960792357106605856146175297253706946796174521086434102770661167920347906806629984351703880860365669238183456574543228467444138921488894536124922957213314171977846314324843467555979343546529306671595984155430591852476819833281012186746364259592671315302914682342930724438457685248740445172723997535610658649598158615172597102276207858054643081030886466657194747884813113440585887079257253966058435411646184061490592771642178349286148696929773130614255888634608122975499548330622369881707931591715541809336969812193662780423973277208332298762788666443642689525850489928893815354136756037915601337195945170796771024715156344481732886960276552673234959414040015911970379545830258870035655867877260824234068019189734350669420072095070567945054384176614789335052412537740060679615941201494743545824795633556045865582707429110930307522645895078412976509395900505061579703896395245066768406473623432906977091873881362846641353500522339281910936987966232175557776024724558664422651966400924454534587382509673673594898897180594081904067325677409355324675295770562962170590792344175742853420457814340498561914485296701756328067570810213681858353309827803326859670285116518218690007187309276229913408901987412053493502405261268054296361266475834614474785774400242933028811537546794622982297828866324274522453652281389770001258333122375366612833917221994488760473704912403326654508718896821505791090326361584366679761342241705420498067576507053180411541910966628479577322363603658336768164167381175532374832687722483322443259446167663899057891003771782470745494166667050065428581485698583843456380906108097570456406426673422583658553072161750356700743217281955113210602621707172658155424437355144853545040888889231024264175759491069336798093566143866431125183230221085275207483098335557086752109702943774916752483044370491479425698487852426014022100277705544343778653835620659912996814404817599683449612850475073881293273503333705401958880295257776576378579998078376034280496932903119091377495080033577666155402199599849333853247324249133321463361875411529257185166064971712355730223095922703448097745523053403971325942877605698052642267817745802223466355559468369648027316416165989344314104961947098400132782122023461185186430818118017916532605722522482930420050538267071977644214454689253891629028045552722620669675127165725385156972747836768843649900601399616717707669921728371082824126781696631120381718776690156638656947500518147393099095183375655477056547855591466056915444141687765028815506169694696709171150831809885016315372430064050947872748858695893291503721339627133294676869886506731982485287208267997767242182469516077986391591422802274440121423135624212699524803754388204092341532720116313381148550628631252487780187689307973281409643559901042407230708270369583571278341433052972921627390550753392167346221610892752897609605177620960759834348044196218673368501849765073316258933957599392351931096033816835365480185824976076342199940056921778100566421969598820767903074377990275184575607271450287231019223965355647886899730877128891882620541846339904217059002518203336221797656927035557681553189158055044577813339162578739462192531775826655591514964388990841546549963478687194234657827134075495172660489096694155880068474125162409097115125343604685263647909883467135927234840030599596694572674784877836346152024233448685028915114246365877370072314353505729572931919209572566434190828394662120205186177596080279158828183177547349484050212077189072822089585122709492341252388360161998197076608591668398130933669390498826518312890548746777416151327569073931628079011961882996944503918742833521242516038615303500717992441555251886844545709525002801501471595945274502169548342830664166412833294904727707320764263916620340169779552055259749575004558884536286747525602107084151858493839203842949132578107462365580440764774203440586671201789734400122928116336749453410799236895128997790466582667978306557446681065119913361496555703771924735166288214594560597605392533866298533002513771253968833853788418816897641419477201304099332981038223412943860071753192800564714347715049126027996753185778339534393048707459139472009136439960050608867232830134299997609447173128289217026670393064905468183541588754799594238976001881414777376288529503080702462630527062837164435562035185302254738553467933556405508005749128330331153636556767251297258401332623055529462870406404144677861633393658643951342520878771403731242788805905050574271203972846256490717840802310872919896715216307652957390142536730588769335815675939615664320208275591970857015210407191206364748986818944812622562281214705175416763580371562023505213199276706317033865305650577389180089825750803404360465119949948999335447767510198157445055138772450381886524788411698996619977502748075810075621205622454340501246829336372851193135810689503934346228987532585564229285987652758383305054348927597953240751454183198733454448489413277324412864467656689562483648939812888941986309502174319100195853270900648799294965190940741732993279110203766392395580065738910078050620476723331338088719910418417727870793459593901060194612876691970400892240681601413464507324481852446216316763459519304247297448557309877868936969981201467470905668604355827143671537051374144065481770965240155856970016636185883376285735650888516040612152752597568558321623156695774815642454700323505707361589067938528413944903587888717130207717214403742838724837293178180291927671945332435378143201533730828290287148374073616343656124412668062359411688497691885197918637450747547950287939400351944297103602295543261907748470903941247220875959453100023992364956742611309431029247446435391448853232181874990215661394008080652135360824680796198360727613217280513850018608159126990088250613003283255590700565907129892144976241909871794468121263533195863337964253109542601167662563089421234105598525011732167898223686352867298875969523986758642944961324734393344261841710736621246987705448782563934259801649808640570808649020336614770734414124418085807983581145175804620308839687405442765113620302540805349912948038007483069987450543546719163891878870044920456515674368984255047156189587328946772548321020602605972281475245714070467227962403571600175645757972181823114117680301624381582839756337286339806983364712604220280000829667070739457215523219111700064156068110959519622522264462013482947377398405275836553045350172028528954679653936027796550005371824915177858769868681688237413052060685821355766579667091254381620977286863779121400119758567352613347279382415137836843810608711427435089842860790737488022213490635634476614584139991051145402792938146412840784347414162569257856932380992544020435762666060790074200671996184215734787321541680311270550936444737785325057415407188230528062371422463235078313550569552716238014557051695375184414136877352210604027506553457831822650892934354637353603871870471781297104938333489700509554911508468405276183408157322290538308447681501925003463829633322580035139002070896934715468852098525374429291681025039019186738537841725722359365694847169624135751133651940352544385240724025735052565005534976377202001214878366064666104520128385040825341745583095467355837025030610105790230185554523363887071468509984473760049949065744488508765297570154899944051155194218956440385933232328780001513894117835362268918607002844862483593690005589401001017432143137427302290664905076128153923925254783589119352445228735405692915132666982012560685087856797315601885597581674984105423151146929613188800884951780225087865407398876120545441460751053429285375442058729640417739640239449513273761040881461612766463217373160881555568169991732903405146475154249013520186235884635645990332204505461910482480426991524868850290052132139088600278087262628938809642868076954013930271884037780866356025204488770358298301898925990250947011951881035669876534210706838082368722021215115018515038678471461574757432859305714718881219798952644669114999579102127295451013628938787236779998816000728935577699659202853043497688841169778591550688555736361709214972549000628694989829705009689988831344893739566945680641745470570758614867488329394133066362748872332035676545328698377069021259039721567622582719482551000856038138455142201148697909076941084659398534137413015045140964767409295135042141115200677517713747824143254769640416292822327917654297085883682502571949869937408764677808907354073269193549494581991096132525879103746580914482466071556172752697244945198505514337201869024675128003296987218538148729387425452266484713950335039055800019229639746002074052781402467578381907210301368714574929223570828572856799322050735254863677531583628974537466872140167133104189722844359437869555263679169451802168780259510330294786580271873420986234089550469407388325119783675389194278354270508359858161617725035247119030761683155215787260506439663080891575264008044434144352803168095781014591127244247858932152732157278871053770250693437811788894181462616385765348385829033032179895851594844469469856480780829181204736240302069751281991455022718207137280051305966861954103030044525656205679095296588142235222342187380806324272404875483285242454979348861560441666446311615124746945470286764560617271887105970742368392975419861419721461772178713577380564412885279762930392137957568128118627692427923399088163546040175155161832892263409653016051050519851187299152776623624422979295875920318876733840344327937415430362133379796885446486667457458771728711078606589166847520541893292085264320939544499672436338249600710080283869304570344068156165309527765849595227938141997125415714938011599096428198070840353177406940057104571103098065106708404920403717449698612310503768399392244989997789172340890562175172013697914811046231945661038463786348836589812771207003036913641390947627482687744231218069510711036123188241644276607676715916638642644711873966269063438962504857812565118404452047059889153219901870957985967338192571933635741675235881633411108275830120856518767917601094081331769068052892475064865464047876314341006771823618308925915618987978945529347363338277058055153693624324638509922818980771522422590645333880831933673997446641516958280813938137871325362179645000934345105498489694571322208022815248346399276487231709915651581934170943531818188828633141297528277305869251997080263030250002949612253379071489688077804942158992952451147448861019684403502255219078405742246054721150942463913077111859846805932357629405864012549520467941084520144847214505960999802956059759019568575426625422219965332868358230940256122623681240761458754913028177960812916013721014766648231075578543959484891672402185727130309403795124868923142880453858217210186403790336335463027579847182136397608806713390203986378345048639175667979523172231952638343607671781294502228291233977687346285729000464975608613397631185925525789060315315461244554714202625107363791987334962638286107421890224092369295479915732275219927736485036031997284093769711266190601072145679166984601416163460204424393478667415758018843852552798434844589062936810818371786210451189907074030101189756684388005935166172784672221386213818642975627323733931895952681786407650736716547031722600023335079718987468520493774661554916527047875151750781115994673278945581236346530585253335264922470729769940056984568147498900288147051372495468883507778218447561514499967022348446412417374100010968853373598813454250114004241920693813248451955916117048579203668434171520007130323832134414499276653716267598776847750598051770739414865768334428294906399010393772888260371102010246123556311211927822802862038549292769874699677285451147293007675309863237806005339949827116657469088057380126027389866341927834805275017203966339283926746107342581540350237421777273307562391368550077855144824399353347553328827740561706001476965209442945904284932017589076591285088185805603947167852341209467476775213944202123988632293401426609944513594127214999740053786460364654920174653440256340956818810593795874471629263913673280367304567712062107208489660174112477015345421488237811129344284048698968228500766614664991749627263226940785476649674170991774081744434273552025695863310815051511737956468704832040333712221002644225386073453393012687473816808597643631390512996346373550418665246254354253661107685246464520653774020375021244273938948408211915786366282090422753038817839790733844834865426882005568711303997729770893293802169260632720872070713965364021739764822204980624297509712462209346999956522216051897829168185173740131468397189141934424392709240432977329932765559093996510824180566002186872824735733414413739998522588637756964900397816310577279782288824994614804585400503802257821315627481612216789960646703399846593369494583088086292348156157032983160383441633796874822544499098002514569638634312148091113610506512504852434219437872809729042348770574103947586144705956822133417685484743008302312057443421635521626752928345723670828273877095601804656185590956293327354649291646428128554313770701544167516017897279642345888477731387402028367024056514854672560422807793194862049268484204111373431091108498477138039045754357138817574330748503893395904174328749522957694590232205568885600884808645829509694688545440561284391447230151913466933996383991743077195016440637064015215054875814803725428986394309997569400560844374898719926440297272839742562343990423382721164217128778143482483424152998278488556032992990175048450351392616412051800636338723680758787355262329789957905023138695368801487562587630744062404948292018867773815751839384766724406014044505640891544613334340851390895234843252613127834891406343217661449859740463411869024717231750498681747811236072845402583204602900252984179220537331108732782947626188491490752574579466076377117763381548215656177485769733872111217220855268904813338365249953333865624224650733082507560575439476510009868699042536514897115313737168091608779683783802002907115152480357428796568174054819250867249532375772052790182164913033011839126461037204631086648550635060658816843879903076224780267294753662762680698531269858506323453738488776351091323449182251153666890094842860891219825015267700208182015943576331836346610033282268219222964423841560013233703270398451961974770958180317222544548875484657285711583677078017203947883277061789906402907170164238921326188630148639459371439817155630694427787254844856556179222370032150398988088083872330294576391513668043549090649149530504790763270323064827390800000410745965122777816714968573434959634263763340496909070869927765740826384829946130011784742432789867280622598616680456446757266420667261409346536672312657976276383218581205508572627835973335647476695148724114218295942456392820152691865404521655960543319649155840204076109188316917487645118618548344005476070072925880207971941566024988062455374555717873716531179763465069123005370376918795158757217186400001156269766574520657612733736693755029170251452798121949443415216490254151849676304341539001491401680505290836020512307045903198873870282318246681101062447001715157206200089351688905593900230159178056439741971384276284342824145671107578200087204484865101549377381720070185681402899159247529413849460280944593310204876543053961629432406269154174269823365742440172909242464767274383509606576583482350235643946287762186146474409877076600532609238700495686886932214383313686310898164264968294251954667287211894020073795533351716198822483943716227399244371998831081254598805380836651498938379727515616165042677217200844460400247806651585209600876206121019286315062403263493435537942242292552515616510627012256088755150875295718236595743769773635908707379265839458600264917239281284782631306281671492419052129461378634819392542752136310677364183226467611130936988442516459304712057761442776313625241969891260947821426036563895763521674537907673518412608839186353779131533169213916317632278712760679583104373081837688471207338116073302114121447072586807356989387379774249992471686651192062077397706792106787383151110983955264782042850842271275711543909370651153032454326062275321791392334135057405941052698706833986314036197334423177047742102111271716627476254928878965524495370782328462444935040631010844427995922965413404210097808198130140051921604358643704132401833117921171983848711570179173085205302093032934688887766229495372309737211303995535533527478694528193237518311419022368942900138441539769196828401891491843203161819132903591623746074757605628183879537569166127899764493557728318021241265735566110959327118065609542035688802155327770345977023017939683027493457485909169329683816783972822542499863171113815032468442520738532820231325954993087183441643633712074049457586479010210184563131606645908752535237875714721350152076951091883146499746236927527292570918661688022319863738705534434041188794026400063141006758615902243963127352193077051719882252032084367397015398521487210231772466971010689847423004499846060558287142309310126131858171950091927367840283200516800343380679306590060585667156298296511644922736878687388190182299757665361896162533252099098042484337827422840301964336989653259602664713022842605855759408798471941647349338214696926735694056285714036780673503511754498218542712917277476245100419479577763761769708972578342536307937071651173565808327609148661599773290338294363900256375846927196926592914644875160475522023501129314839291403899538628190876228547481211883361226774255418762878491433437433772693678207668154464802787452202744380294014303989334448651553544890678549966884962817526096023192540826815982936666167851728278922213990846748610455213480740641899463903312023075501717973886749054463197950464462665492228402369895928137743744328164096001948185677204057488188355677772522684526429210085151992703746390361911550730461604939779341903730592275401548895237982589220157518519428387877101428592317857150290074335331409473154268572782523935906398711718599844141546142689613909389411494225259975948265039099548400260967836963834627059352266950942969808384036963560042993969391917349603463369980809019171703837654911839861402171599902401203419952566856132638892852361892245508010370606244096507862550951607372062075387555689555414859988428903170050991926483739007938192367410246761600926874316022716351610336638308908932202922143028403493060839071801824750390484570697157118841982779744754988445604333331483492140255895585855702793500903645696079416835739665865636239140741061978150424797332293120899381741341585754721559979289142091502041734640883178280023968454698180084637135198184480839663155960285823292642594171828823626319723230159981071259567380735847035092857892949557078313265101956951768183160658964113224658418174769128015807390523733948933140819445759820307486715364937122123870142210810817601331873107637746914903816592121931366362568271005972403376087424696784361974784940873040104739593416644398423640498947000225109528922657835978174438597350894740628033830113484977495723793147679288744394929250502283618324452063464006685916845537731635156936973584895468995067220605465989377703227467851024560141744031614473536740245003430863170648786480231582166965986613157400995857240050703013030698945768765669619516830210942098763323532026168470131782815473681114151873159307388445964619363846707343870242978022602567829925476970102369139187340951958955963227776270680249064159115355673848477123687348088544045840582476615142675742815626943845032186473384995756621848996030540452738380207114404523082251962890546772222412316525051982072067213150660119540603165442133889009837211300823848314143653093756060635093918179438851806985464101174924896533790518063568624332004904852015454320270474904600840944233591397295738443977014668450948485317569704882631401854774932888666355590821864470335833836564378870701372485812283008054859219391627581948240742652567248368674867097042324409472149234472741094817952727763763567061724704952478412817050977797225025194804972989434351060811625287207358029577143295421155328633560041573653252576806002884077056284133437319518581574370379522822553886016631601429333459012712415969601334715927577114145239140719177239107422552160162219195651732478775484824784963029934056426323463279554103753500278874487723312705318965093035351027852642281005956656253583567609176426402296285344322750203367006996536533013566843486429168670459431536860073506909962969598396505914300225082471161420189553374079147116213481142078645146912252737006826610069629787499428054450844888621977613163142190751292037209850463908845662980280424901033793334933931455691101051455931318187850437845304126106138381825627320091683865255111474194709888221011582108790104996299312983834533240819355911114820012351669573210911878790571445087715067533519126469600387695189815755533887562381113541710368807883419167037801123056282465021651427961003654031122510597821569599452858431466418085672026673336306465558913041741518740855218078663652676765623437028548150513093487327578718650212957769482394377632887889394733735628851029713954053247561356239704991360780710172110149260424249990977806884119969590853756882826117315485259584390754811425499836668687034914870756931818147903883075757304293027400999196372830028011467703946781228656338131971303792717445648088267033493533376781075695546726115282851558450225180561423955338681904884054111433678126749866166481946407477071421237257709307790658116504740995740409199323427334449616402558728508540779004027682114515042159657381350554367760766623465703667050798649977903790648483887508933315268082459200223680460067486038459647171581211676392794577430983387227954971497426171557836966287457400912818142215817673669126770355480795925646964979436469098991257625910289113216861826978784686733884583529631155390756813955856960887717157224560416650479445459312041194728729748945879471722113682116156769184860326220699299333225974211172534343401887848589118549640415425959065696590255585758033826269175754881369540616562683796052013803104087250684003070631009725344504263353477322159199218158655711627562497015769906512637363528656743912024041292837457518358887613106815307515680134158902411939050266936005205118424118783726768354606907839168966448525691466532247087293977934519354068947699572426380553195840821146418219807212427947307692754146827005667392039051466793716644651892333382003587332236791088929399794936567423323828860150951483019372687857318204753338609169456195087290962719996071566287096689218345933115720830707651541265587441716361723904686152617802750304124816638833822726972760567793476022457419457046272655528162402025614489905638794605909564057691647870146404090413840476277581962331342871348138651406027160160556580201574145767656711164203713103429728999101924248591271385045633225721729584756560480314535708295309738953979862815692679199928172105529440619410424402915742907235168793660449644590140837241120489035467503197836133811367163578835617182078178707870105821712984590446986757776647512800427846519496192160804958549385123799151071460796433030894421600929327991824508250273216029605824735835204451614931197026892224658387277132239104448745418779653736398689962278256645969952421198788950833658738153510139422849359617514388776507350754153218055062585554215681183415195916506113634159893507875159441084626065109610928962304377909606664911569717301203732173686656672982869285009473288878388589322288011682400490941016926874495193950649233758968427484905857698597994059331616136117007797916159516796787134861056119013721327777793007499376553764890859865529712258301799972540349181802724870068594837369240079520122448582139811879630363128866426355415602209633637451412915861664361750219122613575104558461480674390254376220633857328605793909434443034212633007103450610825879092172455511604824292059748238497897663050650016436559371409138610272749648196731043811188080356118558476091277225539419591470559788999104688112846266171636045389844997845909361605052311638768044631980936268752802115894744568836138630612182930111599521376159590432826225531703471861616063396902543295554085879027708566936304837507254404396667448350027147330783344548357456971904327092764237075324287117175422308248805319987953328278077948020348013711533040174193138004576700397191857128884578796933766593100554998352318242995610956577682168122229577494540045021882865872961884519071618232457747647906617726272925912387752092083688997300659429425174408728406979201828756088230351949439160481469893608698097535895457227267827576065349752450022778067630893585095362388219682574391666555875041200037589963524125839341112731377350999147969935499808087447898023755272188739566693989952930366900665291637377937825144947433292553734714764637794236726827069406143390736907402991210470336465234787219728920994898266620717307368494665478337844637487781207575547178036697180753082974658104121587857648529839998699450175345341204154031820210649661008956330914787831395453536058093370468192006479146516206128848080091072067490984322826107579926852129944993823723343979352888814459192889559764601989831562104392363287195482186828699148398584946673021519773960646353950425737831572252547413857086116017239884390405874643588423219385957093231152986627148529015915757673612791584812847969506365674304558338808118097315583192003871291562564618502263982657811410522060824903878574195250330419526981874647019732380464737162688860713911017634732392865856396548981624231253288612884943563864863123093074887101009179279244630640180257287949342096608506547313955460776633330379347523169123719942629906966829686880067960805869229193702457444302047928114881605731938959779103405677770963361238891905463649676272392436855725105838513260417597114313300845169714448437163665980019126385392768525879733680216969784718811800387674420159629953454309614783387216149754735041415384813261340545439374658238740407956748863960923142523245418072777010019616840913573246929452203812014663926048304315668534910914423646847639488671509659697743150409466349844165203909061333178638539471986754935446609348651540134483890966527298034005419075209196974037967871039885735603468753193034686786520451478873038554509990048681388634832523036082863770488899736702177926136850665080038884077218980558963941739761083314554350723680505364024316298291512251913321418864204451560037722978850131272959606721800598091778315649972267523174898472099937711091302237199979250152230022900247849186943288228239680835204545204723089958575978663660268766593807364434663688218525096518115006867322769976330195016923006229955276181406194602026162773609953070537968442812217479964494485478842871541762224342277040739908800477581226028119914903982248185106161933799220399811665612104469002044048853370535758248122084613601271238642121348254434895735591152193574529306582240534454888288863830766612603327859452978649190114526186218840564010533917667657157845119588638967194993617828458604572524986189558158714674997753950629570696923257953150138025676423997277487863750398546293962305114161318061509044969171808391367435554786012203387048596554200207296613227479476854631984010672238969385030389507116757167925051972266554643570237321575285132086249002100998019235216548324238675098972846267081166714258066254252530925190877993859890966380421506144753035675174540465961566678494599731383668301441558807927192073813328679753328849774771618136408327241015568957753236059831697566478625633641497511242180842360283868576397491476988395193290296776672102993187873624296529513290050940083320229398353777705695668804240336292262686648040869964863152446211371552523930910596549901086151199248902428437425588182264717039361544679962032299291828420052662879260005442913360093702688428126044190986719843783393344506635914367336683159848574357606165879589470361741250180011824383589166218886895199166343822505346755203766540379779054772685530149687985967814234519582733059566477058637913134948618884042500130728129344564161110518302372298537848231570452338848126143220159578904741463403164071844365392108486977274498928505449049720109821920203729829791379822728703482515294270234167777152689008191269106795261552447522867835692961425208945951313529933085777005159571770674177545125783929188483621623235319880216560432207572805903594017708663553590606261633183471565025904269726825524538665518155738769082541712073202030682130341041507097150756342541325298512634869863798385979229194913244132873608276295613024168154418462521801558643505421786453915232640451649629576733323786532763675187603993479879936767506697035040505308011562304596855403553672691708992694952037163463296059341476043295208151324425312650064131081254972927165803845433188516167854799192807631574132884545341486436178337771259149748244836671865864642949660484025732106842440256917727945852528957750977973448132153400186694602348993742034729256819299635133679998614568722925067407723646146439565868648498585872753483403486349975531747653108325458486781744152903939639975877190834252441707815615750763558268625072348045184631049500732752140335669678551648924086368950821902706018438736576774651576341126734131649727751307643857602327511948246005051158254136968520507870956165805726856482210296798943900079480307093602638709690647797345869139337266214137182215085027099303148091712441147494137316504057048272010760874041835863221292755849463061824759560679807996666798970692832648136500819563698733792553177307803102138443224645154455998283864218590976095035178418005134707185096904203710086795419725857590823965834534263720980798527287273668511076847860063768302134987819977611119183871397514216442443064124952641980951392891493742182358776282111244539839437093536920813738111485349073354406140007232131726253976469158540235207843394869174728503480721673244179055166353234452171246598836628396671445364891752476830785501094934503520363731694587556180544576282333373251652484765251961412581029076022132707274774520617914085954634913111016688218177234802121510094110757892731000078762588155245824626475325063719995586754700859482768489641086113124850591210111899871332371642427781847863255611196126424708873054151335428366935443986044387500333231530702338974007888174410594704308577200872948855185109374933738038177829102333450737179618131543571549969742360949215074672264995288672408493919270135400719766862086565020749860319659165580051368358409355106029670558527129080714093011587314336606648447071482287353810694506025292492629833533472532799796923010928986613335717845005764639566462015010621362445961172456381092362702914692498752759894823908532402912588054868664083818033768655363085405969258995605844827880166941904723653312999082713197155726738621031470111028387212486561385035599492263207626310417586233050431378344436434426421698619211923561946283470830038613973068685637388393644490301419956556819543020621939504880848352391899019013724193970236810592715136698709844171684146855783341752148325240976177169257157908937026995312951010111391061526407192858539155687751046752500148932716143310498744877986739034565477406350558101347540046457424982607014426469878035485613450400111331364544844197400212867250724457288118757011069023454685992503261575862085593652041016520398178385597067138482070766645363125613591534497810904265820631184579809535488850163137062202640154777117929143805951658331819203970159769176587810575487270781492193621691454523788498453244925183354279790135198233890954625100496514157083317639810915957856959108402980221668254290468359775124507149989562860171763279354943319267990536029062789478152880116144392929660877252798434406650325112382395686610823123721829460422166857520491925666364884935659148980324234206286386397485440598518596954900956229680080810564766975518202204075374207090280423516808416884190913568511645285404286034447169899939493085071333164987497705392279842496200112444612310277159040322095030529917162646831379264341938286953004402490692211369461449593240398521513839944973240309341196026824563591795500529993809775513844011784486586106962595784994752335927504674882267814792866942708734932938804903339962550862950649557832841106905248476872280736459766833389974690110027596572381717070811625898694912259259940689186870373774278824595769808398526842457624607352210186465567333121052040346320116509233764200953703282638057812859508489760545740393402328057869375082196013319340288073737672412378979196021586275465055171290834388499996479833325494235900575460619545955866919571716485175795246322911990938043695979356179510043092462708998276442695940401205583712373638750125102287712848079236761734779932086408611052281820372422294951193204035973073210546941231340028001868616838091803863813761801863885245595523321401783513871732867331784589458636400216848103947338727164034322613590948982543743320989094691105665038152697636458881156358422725078352527052471205197423994382411033954700111261245425967450034360530193904005110821888225937622951099593301016834469242809370972242894403986743944894246975501581503969768789200434180465318323254673788985217175711445768150148250913013112576660456943771560590938814053145240289243600195352147044811992718087551386589755167323501871953140109910971990247374067940743546392058091761472752162778534207242908969921164589139194668280685553287443311945731863380500994952648022545100630284500368368419949253399448044526789219512846105135681098878294955401717583355921503560132281011517501972170794590801640728565382359477171670221516181882125636795207353191254567760729031781590439477242531872773634658039400385662266131310986897235513025675527514429595501588242590758766515615144466523724273143527763627161927949673115114005461441290096902983152527321793494865011082946564811658880283599610485537010300465620161913737342767830100248783372091625008768661987822784619849488409891801190506438135267960299393776145898841326090094734303168572570070851304590009921398128167409039268499419681864442653433992507075361525228171350410938504439970621844897888308872188641263252149599911180714497388974444059174153106946426675404826197775135186790027960699192021500467328289981347564515501000126034709351639930837809172984374884832887348429762428297404263353743162536085316659914486346503542791920769365077257041174622584020896810473835481798850206133398508377340837393945715840675008870916732872151977721623919780632643367141973041333511884742258731342784769832596568642313112915735955365060964860295376654989588865091595049436401466517993122819498777148178335132658176930958919514899665398213462130097341916067506666528783815317473395773475275785504918504893230933835250916720615605317649309089037480655985518415970623422433936716873211418044605746987906582346973408921079146476397958202446922346376580653554712581823496808524196283991124540814381194280814565730968598016988807867364509837107812076259993889794184421858953385415058435638240043685061251087608784636018586769668805026602696358104804089064049827094824248976767939577269687435545663408162188778191699901949039675392123816044938585970365738365356473037588830485131164092907989736421056823682081918346743085270029779095880247340212911470349505244789131582372648740849393921010292254809493401212828637972091151596407328805352972225220663721185678638083162180777398026407945107990500040227532617794991689420580802380729183288005007327585718486646532852729465543891167556204376546219766857068885043626783759489056855702043960814408197918150503334017835686941231254843741482499901468196834865497335759622403237159907663844674070070539847136265038035954137227042304547123911725581352382507666568837921209403490019728912510061706306655498694883516964748126245084863928567729237998340880642441339036128013815762379375096679098130651469424776831590215893957912614599073737133016850178496547097620037610104834280634369248007921429909354351985837689094317631513299518714067018661501394215525394211490369912184797874297956555265189209770058074769770490772820353461123924052276666464463950636904609132734258137223874446947325281520012546266746307225147142981572973442718044144768387452605902832559132412399192726839336774451270305614312773660095471399468543701313924412178989598308711663802838504639566032279738636818031494495767994590105514380216117452257483529693650665511808706383086459803993377570968736020601331872620121810618457927294256686608734304415573506677897735729307345877903599545670626598437094136358669495075652774491755636879348011269481759891195032141867717098957936918047274971903505365851740194432795006581041450867629933387651927784929755109426472133121102348808177318579565700111107348204348598780639533474707449298985867420438570084372209338598334283978321511683457715388503277543180621228678659982524738728748356819821091470824409854236938129063593038043561949945362405838797756357851692047828651304842502277027383712683089973662467712533466152402966123130235801038095315147308830491520832745664506452442172428143444860349705991859142918111719199662419461465105753080114183991398402590100851004535795727086801960878173478252333071460352278238964666525813933259709527259534686233332357800890453469776749268884269757976674461361229201932743132184504731108561110933879446665380851668077425050915600402920462870552007011144167947877734688340715510293040642206325741364589311873510370714619844143454327599822679087682487436368373799811909568753107211609380747118358304422734588423284023571089719582728986148090593984576953245339972563472542891029360426938700474761569339086312107933840082142940136356773931816035460686879618089328596028219183503847612286762373791458914798717787305699641602329828309166276357702834353084242207006229197904987096333090581588360672295716783604819162996881570932720286559962603262190914211854190599386896743808481169249658126023856015137870567319569793279938899793151164543517704792975625727381676522743025449791068921695301308952439871862548281506118121135089137497599506144069543798053784953617791985414518439230850527689783878755056489880578454437760991798119387604491493213028896868927289656666873807340027810030432205080030001931758849553670167901886990614148318809587675813539864089378432723785902804453689421771438540908295051442201556991212581503923033197254217838320588849263120454016538778641828712298640349574835491312055147221921768921381233208565691599907055446891839461687046919254385920280980160217543103760074435327917881193912768949408115326095181416817265514646969917450448235394965749396678369561588104956380369752022101366946171089104513093426032179345944509827215995187520838205781926052004273947165277533960769010596346083730895815435880747615498205121066970225060369526368544008271391560369280122971107974861372882109532170185774807254802098067984694523368258623102316165562934608236307811242506011228937419514098147292295945484281946116903471981569281881505062687700995481174691343383656620591101343536543508046533967898033961999098581627326225195939169867812721893738006380697520445911670379257232508230260382921887010343507202073584051523406930513760665350359303194235538934023004539800648060651247451841151795350453129686946791907594278083259639639150987935291317763892657381938048919672234024585137457875636408515300049505990528653054238727257417782230336846468316539601275986138123885844010548851205246075263281119111509712290883172624022229757803877788559220766490670998784231289688110020462360022397573094660685321155161870598339184411568101506815665874172548423595928814262397847151956686907564589566921797222260086599564385885262204856779259792989271235589649321866030267119029254052417486673295581847731373688486369658284596873671494634498559019291733486290076217491343800579155845932714168628803239681542380863117936925206855532833826394421798557194737636555421847073168141458635030903826356365507561185821654985543690875021537645070820149345432017594573684275529577636652775401746418187641187705571984754797765453795443080490461813609311761392390380750392651941816757607591343475370181654428473428507388806196925283273006128614489294823161321159732093099415753110914288840842604293473962835933235302265171437512222849785415639912923536490023646467665401983644789224161763601772074460022907756846177849621634869474749080423657442052787036955283032216128910144802678107919669301802871073147261278192212135437123886724496276586698450909575966420314770876003650498799277912338364297064693098948935637246829114133519343584172202097705670476808269262041747522224784849179751434242912275141499375661730091040155676098729502030672377238045671708356526498427675887452292973649541714707233276165712152412499042044057137259681910745624626785005180342210161268029925780746204888584038170605239279435019947468759275768600328429284529628265810333643570135766602872443375656723600538783016190326263728878700383957141620541065946389159860512850537358570018022928783783559256933999244314704006685954709676882137976925296362761827642757804825970138866017297650416934467461761735484905900248634593550890921381506672544540003626602399644431252204164971579171865792555274887472759467464618305971275768891564742200906971079658479086992789422765172048080141914731615171413742309032996876479211850275430349548422103961068143697991808336121482699764462836687231584391945783361285853922166772930217501753791958108553416619436148054919215667337194251094827878432212853999775250240648277044169925592463153167720202487545758684522149570638973109273564861800228462908891701857587783062228706772144715965482255733473082321689666554116288046999903571621114506594235225715883193821549266858434590220572193949228844283244196483004618973848255574802533672050767220615904290501647580929892684375087564721902362760361674750106904395591925212118475713770609812583052416331035466403642601360459255332263406516980814397594104337318299206549696483586088546353817425079112115093672565363529553128933412456160976108029581765353764532052550280768005052624339845783868403394639644619293397892113975446972113635135146959203845486046593859933733518821427383677446732797972650236962649144433377581734507376700830007927724137734198637829783912090345516244812626471674002073289091674947413676306231020067194764949354187950193239035220943488942852071594428374603868857256740647114213657788918952395010023850080474824737271346765844680715751130199813940396376024683622773032606819301742615435676636340568678573080902974000543459300085600967478852705886216910060582924573843614088571288509576123217753785081163784900200146355673352148464146025085900823687990045335848430880629072139704550023206236277594646175618949247156030347262495894608420631137323669862786956760749585602495897048623899799828548984715921077158825386097245119321502945601279791937431738329825962553191543034326999765242397516034540983894000226154137614137235954218910809351079971410893591332402808878673314150492897620022029289512032440800804571074970839484385469187496635892776985978838827509714844751747265334006606131889849473725421696313184267486873738700930323298000083020461246868536344884179722990183129452072139122876272011255822568565886786619283243423115548344791029289919478336317994011386574183119032719853203881094516572148429974055052822100234411475426561651870499364553610218019337519898791975538907327918904768977696847277896267814797261976020478043545458118077509440453431170992890558652360765078750371142397213444747699468577603266447646619803646119499517888757867537636148952264158953056377537560993128293461069117850245570603435539376435619920966655615223027149750765185172340012149983507447176352217957744046631536881498698552342422321425085107688885093639882864674094336545340304062197800159609934638785797909117403427651845373566936839832884855588289071129093509729992741325133531432188774485976133016294737821881980553133404420625296738855818437172971668660917477487548760727917673130933628024443500979217601877203495172889539498561553641399142779282532910358578281392785543451527446370364162565201323945542184736113491696132023936820790392375648861717535189349792876480201467077892476447234262598183982532558279643901960244466289300028686654705221485335141183840428463074660923588087617766014995708683194669357455881926842132119709605421541350822929840009709843036250457566649587935420693148755304711150013204293370654159712609171701915916611420850177797114685064292664827011392939331852535655087770664182082909910447946772205720840184906428109176361672371207837214363167084037051194684307879436230245761473471911568819624216310823691573162721698454433110079929664191222650881252753021676229372017457328222011289470712188369607567315192736044613272744534504412179268985479302949991156697472137218088456647950624140317145865363786601646692317571806026899118362756919723751546753607905191450363022773008288525321353603497654769150920862693302831070373803321316339724295984408136692555231611716576929630202911052802635346188518052810281835303354058605742850301234315996957192653495756259637131803243948231301837168000114453733326657599150768601460972302281749503943421220972110420883512121336317726613649245290027829532294928877792301692446898588827974869887567857112248916938540901011789012001754815314929945474056909569914979969893156879652711122537455484960729180274465505506300919071576524144704422859191583824587227062269111983688415079420720721659115199881493079201712566666892960201328741309872374630973834972468482871798982294101782336959767764205528842453807118916016772935275891261987374655796535760966482208881278005375677797020542281848817396453836069060012407456596344519138538153815640024026167971986643784161682329272148516882803166361346029504963939689382416037873259044457715441163815870926842607580260236476235451309299124326375911922593743729479349208880096919862258479645926374275686750923737241338904895131884784412647169444746759469104246986291037247086360862623179562783280194154481792467678801843842283436656024712148711435380490571341429674474102724013098800155293836520163650005015824858406788955445927710934983131104840113545393434621837512944535684829062175145577056898023120906033579479288404838896949636495220345374443688101113431685443268482461242067709036304561279139551407453441539174992733964934074366298847547296590353152617975584665064426216479871837140710888426332510130671414474319217499042838277205956715380876031369095676191370181277870678625391953310247674144373513063463773752173543803402203572072788316568736437305419313129613139888664089375645062986793887875698701529251542684887642478886136305010008257888170574765094143621590461760282146360453607991184266186355963194117467366585250014081431924096510903920532946581376220489737163680855832884382336066167432258870498797703442868351852850114051299654150475709181322189362367439489603729098287493624307374114811225275402829432515095848503328165182403920887092237948968234725641267238931267392262335830525519175128630557481155834417278001719103169511684551075463633431119140921183651452234738208942759371000906806984415900555585876514810907807315863600471135084435119309757693717114558631306157788174033132129032658394005754251268529611918915043387105869304839820494968105572650842921413185062907231917086607845498733656497122278858386633150298345032031181553482311269001033480204169207355405849603370872412616918914622162695716596975790114967825150449769728135394362386636750247611749721459488648589479768453977301402939862274024632037910721940001262220693020392169716083823721383729115594047230615884628196959953288305394417833478925702960285695139141426915591552663926372427414268474272847380883200858342237748259322915371562143577662479770075230121488699305083929073700418478619394935342238385626887248849413759592848882639983585873694251268759308510829591328541874710155096134660159737113399203274193028263007986338621301021683067665075617722793842873770663478492564797874622696737178369939392476492550722583659852382923690453580965291786818417479125544385547759434344284822943299417769652035621471308788002085187667453664597537437200763270721477743077592097648035973699331316608144572559319625112051420935923169464111611626038141925755898196470062202101140686556587228756825520909080711195715329965523310681108073169096666785993691784031668665978606060498476503698120387395487302595851561558721335357120496944834315132187907759111494725394015502775191912205845733807763345953223870202722942403795520682016406240327250639034039666053780375308127359412310360251319773685718816764296082652430725361374282451879538510649769044555856441830905394033023383272094669906437662638210507356494495502964660708502765035981814980146725913070176864212705991336672448176066915239366287328433159555341290645592849926125572035317181548711399079404332242694570130751787846577232249631616947198106779888859133515028386790853135769752558972174767794709102940878300439814541189791696608275215624691790874055187137178189450261818732402015377045103243837610131587800036810653726011577748497850791916719035150725055374305426517627109025848143608495746176248922355895467121204932868951361852908277124787348884475411593831066555011260058590990135760492195991978493507253216053020158298275320184270261344875325130765059297972553888660192793481984221477803709177903909868502740623196481105197233806338404957208525829383954223943647755210808463141372487232560748256168732252820068963165104811942475460069265395524284870609432874298283977545951342260628886660008520886863214369646465037346526172538941193662665712117412317852460784894546341027669272347565800312948465011705572262171437534920700205353953961875216348622742009854592298872754599326762377727928838731774560531139585616924099175790936010522962748406271878680246122232585182256684893902069313369126403081718223194449735166408497068449636757458653784404178819472349962739837995550787651395575624293605362536901778182553108230857167382529441424381266381306600505252808551831624016284951673197589712712648062489378043344761599904089623450117175732305158164371483424105935372293701066888190708403709723434026108769586470675681601285025418416947795321158809539583158234346753531647445196555995261583332068544007718061158574376893162745923421507457062592541689088422095806112994169460267856844318272329216488005762347065043668061003951537022014617849246904882094137412280460076425556737937864439282708599121239731797698345743277830952055114340697432337049573600374418611010258299893701209245652741558125166301835543416266937138952761643615766131061330776194758205138176389530394978010475063709122496928673530646358825247173337825991719929022425442976896090992558332864393269612946526366489111534038927772094265098984151520451649125502268446283368526489674685793131682573812464904815747763201735556031108333600475403736033918831688288924876927307534725490782108085669348246359143609859563767971715741168033813860331482705818259618296933478938745080008522739987656849329392030911774905695290974113486334432427375285962562813954744528109631432296457244569376835465762987468657724195479371790412861891517486748272815754649961461620546286881604703248481239663488203189089878003706315010923281973749966152375887807089300063377048611010934553178040697321237591242364032654056023429060461672459273911310171459804991761370238469376748951887864702322716908901365518738637265372630734598876946528012355813424508636238908187029742955320849966024067514991402483471168998370239089155852390943214215043228685757393949622451129087682024577322632572554989669406497136054970737362268949421315875822734054464725750400858268259120746085571559336562850866648961691540213127668205535567673308283713975532597488696510269071013916970115380585157664480529573938578377688361926295269552571526763884202145892578821911956746591233535728530736580256838470375192313588265384187019430596389134093519894720379996840382954761636538941111061850101438582852298278378342001018386608277495243978188200891016407769632601027941661171335947656488174633413667459326549907481899869162254753730487562610226331155304052102191055356833566503477277885314758141571287295449513197849699747275247997284904713425532792510805128785188700890376951270953697540882369596008599245750740717134489265551015350540976235564475588347623470327390775023539699725846850353800405564100466084360691128577291557659930295635426616615272009695096600942492542011029446933897013742382489860895992639000254245189955322699674121305805798995143384385676006267984558943175940754226205182740688630956080683954649499136656214844151802441517110924800526470681771004401235565143117105722233381822691080582431428645086930523547771223148553731444916390769094100821479725007934127561427403719344775434568136429770008854952706740812328947531839100003408286999926413174764630685213094447724316751919051289014633179907247085468019110636550512159247414637530832435220814010243800929127380000870703372075301689053368821767750581405233451758881504051818574908385523201442218182378348734893446178069228606653116939702876014476238745067949726024082676058875209477870994849868641681299740504011581920248382681216326436282297522656074760412319965060592428919232318797939597509930585401531146163611410639094676018002807361853590721255899894249739696289434675542535454614042938892319147233107399268503515054475269662347123843711698371608312084093018497027360091469408067010863267386462378066749629222397428833136804525400248906619394556715558904881629373057645829364521951541637828230848301825987467971620952100406301251705803969223228492140945897217563242344273281328616041411130452280041169326666112827908730993296349691715726399784141685228000255011785530108357113851548746555863450398278154129607906143854535138473078130928253900769902492262972317668636835496708796154575954092337822956482318959965234687338885896627643153622844258898582383920853107822916809627600943142843575062105241952367989837011425847641350137354343422058461290313728005701082022587451987485613729147062064793324525828305053869072972051802705066392285051306911987932316000274097841965707857564083645228771068706647879669489812152566742598999653456533942841019289601676349105194200318830718492439345512159624460328952730672941198662438019922422615417107127276226400370350204863581166543819270056947852883284488666098992794296998005432565353088405029984230324145883455059390745563417096194667750000603385111145396270357281494178642171965675460490961390654966114971626224654937594992835088191139298129767999893630845715289210577622890726500720026347276074920456661832794940345344379834859397753082869456971131322369097692183543637287609732346194079266645607062210858792507212059033736414673411241253469699212297956537049853091278496260168743982031258995864187252823582832015260906488879564157022877560503905936427635342634236080606146665861812537238842112773945380543069606795899431443661741567961111096871692675466969890812728396880431909447783050295296004518876484386720615251062983420980768851398453264828073911264266493350561490131057447195782390516441247591953325803595633117937238838701516409769528986431507165066835139730425317731372141972755350514870781170611815555987053828770722245848352235466835317425887651052669387656370951904724428073795882164576797841723667330390664483073389641162791110162873699422419242579569453683471477852172528001299202227689555908839447125709343404835298726069694408277692317653631223021896170759902939237700697726352761850685446766940666595954922897767475658096721931343922307418379632826268816542793602371738555479289731562268536196615107526808450704255625898670881546602112961897934824177726381097211542543629727449495068752382568145597652120153073510849513520729084511892695123025740013529184225286182339438754899072438345509522705989925755027159592649918366709832302226364722533267819851895606702955459146490243681908309115122412144393551143959690887463800367173635993083363475865307995786716541330846684396546882259750462094996009737771257201524459676258036626160161859409808372234276656384538814716073476039824249415798530410833558267717760539865902419206850541504906241994444265934774864100625673230013672662144701297604875520678240861600278090762200623897677453818657983323315930362076712844914476899286366056309665047955793691791322623530900212023476668415897664419974271543853234299139375084906115135381208199308957243482401611704368596395177470988869413729420046421499433216987254929632642029460318717667603472681987352107455604560370154442277865174025968245648313665625936585583154297527454143757324673762046223076382105837461922050310337016545475409163213017165721086828997970955694116646403473383157699262266056216969521178983215644593746568440711790717542754663660746060757721832688798231212766142940815790058959836568783994246858464567757666644413385881528816050708994778224855508175645710768683071862328726927146878594222002352119978267448519910996918245182194297639611518096931597293436052086574638489953027994527747409833287000817480986049370886715332041292893533427071443808346150875403964860005454404622129325654930284738272256511817115592020636832664732236167006146085010766014507583372061635581071262429075793545342417504165988557279267905468288865744656239839443251354746490007965392772682022684487874612400271624942801088053955725618467843100850555215208437483742796714279566783388739264295699226421388627318938023185030274873764016971735715567382582917559065823990995205577092917578671309725502147086953098950025407776217697471235370234472002920946805910224124806543195771736329027633288290273813075829002726879077396327575954335328089401169960097107789714227468980608343670783769586725554387643626124428519110737311173076397048450169631341036717381783442894625328022191399637588771387059784660332912323714613556778651584757096948874175945435763680689583458593002843963271105028643859124527541999222604943071313802157554065150432834613483939024004578828909408277207350318499369385033228938665759530794952433269569811911479727710871322121519906649716644228080094605533163859965511696044468611349895649068409036103030822829330323836369844962190688701609131123057293136166187754064777855690010911209212331308128491594778802442808621163710849597276223731477867407592112463511424210086802680947799500093178060963028355488930699120269024242427653914420089531768278795468922020559882015709688776108772153862161554723765683283030000286325101295969504273570467509104193756007529224470135240130528747170166148470254546774442499595148301381610435507302004590487764837070065630072675581659009638796060589632611539512815982040491937136531089279319093036248211206361295284538319479922166794459707015511351638936613180909247882871048410279705513478728918035141125006485445579343959069241485487930239222510117236598669861064426485913984152681997596784853374822796317257094750734576663888855257500664772996589784546040780708376322144452158102488788446176179119125786554568946486705137927895984308219927441039616912770059682693520666355850654114369433608098157139340455665604255077781154910392457434558919028776238479797972765450084497431682673676197373521129518088075299823807363951955175271765886978463763511301793052561941245075639400450440039152205730230888527150553728078082143362759820490032352424768594603788996238778047503673749899790818627489279291381783512282050174131610001973904428379354690318837687704710510422929737131346878104768031410226518280564738355453119360407398427068744533983024434070182594593651786130274386287165072751403054392535234348068682191229551278643872848453912128531992948150792502144448323656179841451788998941960231384967098466849769053741907572878523693787453113818474444476423157973938111534601581383987423652456065627498008858408232598605235816502410664844861380267860332595313402587245356287745051655729511854114399831058021065030688484452778600349244882852045840697237618508202542654502807203053441505870617908946567051032076326472736965451891494247889676757867416230127894195422672373341570825436636261181794105163792825551604252865764434354452833244223691105021841425480866544950481875903378551941921429108723455236731156999457376432566132460210702506470406712994983661529557061708439759149012093023344447735463297550891467338597711805911702239981174795413630125384614492381377408739382283583091728217873535947426409278842209005753674839719102602478982839496955510634187957003624382498059717670200358915624393364771288741168087239021824331512427020668461791834650435758611648956203134814740752806423366804600655552329282619129385976636798195519603324601400649317916367697394246318826477620696726431656354668939149421712327968970760425455017504866348641688029388655810391378740292002675593400198759482317515578679872681739098911905213795647426136531048804782626690839302256473638491669981277869922538695288296851705712648022482424968076155131257282537454615660787756123817263309898637468488136558238457779794416673134027706384573076748519224042467607202790281053746936836099057139327768612874950289944946398225763004146364538442874959109567266610538596962962430345722114614686569773375815756804991340509899872272665970499368690674654249364397126323015895097521713166568846420819643062193666449378045611376939694565214975831453479928642798702505103266555036636108673822976184335894644080383879740845564251437122931707644703450041036641727514472838088303334918403464388910289453570662667817734055086449270001289663375352010621663835504599136935844378469944529287861260489483719977127960911646890368048852811001558581388717643045289363469210413647197671972455050158663330514421634366186926623166229295600762088482721728955355685849937990741291192760119345571272474478605229068721588128724244284124615536768940835348694214291012369811762777128879451492910584463312384841108849700876021805566197073867300692863684991769893572660966155542955112660840315049416753070206007312555041493323294889127074240510023879379236871039719641080080201720974404680058548571754647165063476036611332352228396507580831401220226619364651321974875770691300711263829749746163308932353287132511213866971511865668707288189028181786118852991884805625190900644345407674768710056200568030959329697243299268857546959326076177871944399269196874524946822135833180679722968035612068563118116600983826631529469530053931728867797095228075526757017037238463629878254037980087782344390002219416991832999543148685834383179660635182660528304666360867193379199267433930245186296596725853367533510869361627916635669462417288045924029110331249368436315443008386405972713817447922996010800393238898004920294047362909924455638112050995913129028575533651183370718964860783046917931896361407755400124270492426521032821442910611788334551031090215104401567590983653355255722956296679710233596660353133968791643770631573322408855466718237019930259459188829344433485821345033395823496100694071071423526991244285713718229889394623832757099146656639431422925481711740503691895226447550966676578748584083114911117039819166431951440071544062894749543859831144111561770661954962564436357393062552003700293500048047475243912141739889122351211673067792725801275494854704592416434924485625784874750709045879181955513806646643372459602809022457863264958799878096434666219616801052485433315152268975485648659626043090020312181299074551729558700484144710752860254867871388399778236621845951971537768324161913573005882851706565205759337392005030837518131109192841332008525273717355078548615524021738925662276661369745633205394401921430564670037569593203947216621350686951603306690054430322900587100307414147953191487151650282784884257559370499089072392081485027670558463044072886234532587554891910191107637395578472177445011299992203181766893973785933587270440325861563767699890286440168349392708064035836410702497371299645029312560672090722639809784013372067196153765855668459366155005752753754203116719200402875142179621875886325928351060733769747439856882381790252209929997608398352331984497387387749379455278226727190101872621218260343787536853799760541817641949924193605353242174068768634215758603889046641107348883881639033349774434317208099974913346111959260012571243271440314319156614293931377226129790518305245985770957935937960212543396548544606973689492911532075119213204442232353094028491201334589121879180721004999682987514244063565757727777573890192067289541677207305985253861470785334354146954702909779233224641223707404423558543861871920626562193801830029369522602864541313376360283022361873640772385450677089308439873756165182519199282899600739675809802831834444601206305554033287512465512732045391096679360070005094874392592348551164074610155286896031713402900180876550427708431804969642180902971694762768563462446659310375036938924757175531915423948455509790173907330606153431594516149920907683931857987942835422660470953803280910325883154839180234781703554435650900199684220379804542729291759441228538505153069165325545641799489430857121621202412800372701078024675838467255031901904841090070302044508118979847442333167195040549529603041849110036983961059719687087071841953156952128749596208578085170098786966514311420437542959367511700483421386542321445292635987374767851936946485630190994758913412860884653979344579991062633190792262105822645484851945051508378589717251984941875294672527426970558938701156597819764784355849104510030728612707402842270748164663280637082200054518072985989694860312271980586557609946020459581501030451223764572107489921912644572901303339038975802583872195049239412265333425666148731593870171026812620604141819253902763873372083619520094654229194844303625544620032857364596336708294533912397069056870091116084392095506407083494447962409693296293247806112888309668093090045755850665236434467984623444077966518908164076202274303526151371101942501975501219208362695245425713365146209817150842548866580877511719365706005213588368714706785003198879260115610510709329003894349922782297553289701614339120136167405045336440248973797561999881737891725115001254497049690953826987621140706357978137848123283042539393401672833610038216460132450856634466794841439918097550242774034175692890821225448312569426380670604036329823587654630055892071971493897699615993049703368233103130079399538576753723731675541260169691851540963881268327804334154759206350154056219821936070553983348209944854230217271068941675750692061000434904301054859038103611539354790025739906904558924358367687339553910945475284891962087268395386516461942598011670065288123604112843313730574181715423444530476906069724119125897119576204327317334506251556864210002962942327289269452009920663575788219003235374854837071987646695693612276303277166704843529164252752282537270855315214928168887092059054929302417553965157658834590688869967197887827528663152357781007499576548412173759275222903417142517579080638481987110915616569978625651076724309161763112944949672647226139749015125208407847878953276087466232108445480288257672198697651099661708275971437379284546767340991534821512038741015592277958703209791128704743614032176230219273352672291191479006609581311770629490008722669897161353490294826942605339178093715319902920339972310360323010994639538729005759715726496858838599036015248418728862632826306429780216193050671392584990355143701669942794705504728616979758841653007477739548171987252364894231315543007918753719060887167780002521880574960529663272503424034827178770673108253377193119928524773656595044637547041673420062830903695278543815986978444164091178635515302297431519504361886854412912868238615897173393957973053701046226651546828672204003241273525089261007639926752685928770968162376275768799240527157076332849147934073749639047484821040964387569781930554389005644471544426363108235912020343551156968113558589484231506469811954801206430832886580373536980734744810495416092397434410341943433318661735777976972811686961804537920751047104786506138574186237152886375299452490231871475892335167563178191459039329191935357204370192459275644067904771339394102288132915453558321490346545215320649931501085267881004861845182719217640450934196536592236190845706036221414015561138488322893120464163322852657586646845013724092271474472493512244192087608500850984655496159342290621756463930485163675552412151226726730587618384774958093339161586860696580101415652182997083106597613115748734917987757502298738932488590127293210067772252613358419915908174137603015301561660408385182471281533869555937390525648007405916508499626392551047522905554313271935510854031365724885933322098940283850246915183425340639702245431115451057821850034549418936674510277592699760466882087069354009937303809111240692628478783734048661128651552764245644228529682407590717865452827301932222369522411855881623997843031539233896918678931634596781587415338161032096959420951167129848187015933586913655203553451848632720402427880351625165664597178427182846482971130178640461251991617409632964877431544058260876682877883125375722652114985243219028291924687810438372301126260977042684894326930825663007442503272332143351111120816721172465702589818256123349919602203103270549341299300659515102657864968336090828589049848170241369462630249391369945683961788762769320926884174356918944296133173630831050515244582716445211731409685822263907076157835437808437790212311843564356285870728145961273583382176359476503999124353938712062402971278254950466496707523823876121770380965162105745476433822826676260487903245220550791121743015237240373360165178171460634446652318519108984623425004087210755914665903517419375571447391548912568733882733717835666188778795096951302687318044639932227684895838518764998008376019558010265479776308822746252641878710079413726762895084321026744148700553514030266911916244192555980999387691036770043948417475527211259073831795868189685023279195047313150750628574640788243362242528978049727907438462414901641604896997998578010972781876425817405316406781343846641820238276774377576396215500339930838696061841120022452399799262270009286162834665337480346502065397644138122159088840873602103486759361060459715508681595132141427919109583280503397490714887954782189312455443089611663920804038009998151869886178968976653556300599179237303571614717977436114735456486418023653180811568979278097940992097630710613511398040106564385465999864724276715646583171269464525862085993196428838141375843219561809976661735670858870049154132293359818692935777900527071832878811665272157691503284718254370575578261672930856829758781366557799150902066590234512011582181792775472552617046666064025801496270964578186024385354596889375753562319384289556497750241153603459466229347493860398330693434756337906403883354748053354827615467454804142925430722262372694520083174170972898800458598732804905975558821984449142169949177222906343819909118949441039170594259336467743994455840949231989359401354422633036266125847694358374340350168606356085639229675433072665573414254269114612620226400642069374997956282466455176183963690594614479103431903260145271200464930100490144726140151946657054576051436930362582158518526588777932613529527314918007476808120438796017616720585286166464620430559659383998052430500560908281716917648957344164797991009102339036725396133559378573517449290108101568826399013210718486810529970359613984102372955432330465841571376934632656176457244241600685743583975697883638257127875403874949055659308092118130369908465796426367888433752656141121850452327231193624733558038687355689357433988254772609608863140998180249657947049991587720849366897595165688970466434611443163386424695433599568157878705724516362268755755585074979526818521985175170701616096059849371517766566584313447739350408658335712688093608920127274690118679125937717448985453750451110718462805345206744114561758764418032318587175606376660455878223825656125729151871335043201309548269943660720083156151705076640440802092570375276494447662576365566750021587662296000698521370776819353129905483519650194247460230953752894634373644559736894210355816229813739077329493392656200334204201082495495700378248420138878864274149287254216253737795234160718470839144100099780455623092261320628191482394047826866732951413954961148237593249463851547467329150337047807580290570345623164992827851402640820418817337643741708200430753847815193615042244378611263373793521516276293801893266448028690634586845179220641117813330862260506518438488221093039280576566563161330242387563277774047253351454079703111932537139022275203847378425774897491443131746701514266353845246976471276965932706031348705547597083401348193635937219203392112484967348666848617770793191804649533724515206417926404293163332836711974092718050407585618903315620195266416251869780729608341377026409153494124898524176676407621844851548434438972766010794729553431659848222923604776980713057500260878844287781601050402489076091917812115659177321364290911804024452337273648710882755420867308919845763799910241044516784829954033268069654709460479621251335309480986153353709728264296429701005068569242217515473691877123111696955011836106366481404100108590821072305466540056578667225787487662743706652075405009417240153120401444258231994551841963449640794472625253026795816321902741439125706114704006809609702660609478421186883615305157547771089601984031067388821138516443668372418317913568954909580648590299240781244370077566987275085951673197177348399873123828123804139050696132215616217263920513591162148836683858827876677898449733522621419802789701097711835459829242144358933154762409056248883178320782028115774412043646128607970674612117881639032836983331029743249643570197950782344334903758152878053884913103318520237493203780654508962390702877218509721381923018313981970103938544405915993154048336084009549008651337595621892370680279823351163819137877425165734311827688880817469403201328117488411902481201135548744109697292958557837036668512565066704064947056917715598318356639267883153205216182195678736577489624538712516758962288266261968702335170040900279446612452772254605371785594314721497790539631771117640989888576343384766776547501235242541660966123258849886345236671741888720273079166938955613904798740630589889534304142435246088525764276800525691052634209816889339066286721749553863442059718249767659663657793028520024416650292720490456946441204099590088064132498311832740931560085053220207294881732688622116187627123299839637181907868168508502835428860117542388750402959175325964514957697359643580712755714895703131747925098445693953295400229917311245047145413473797308078253048311735541485868148917604281556201332267796945553193017188040392619221385248036506737430798427998750679633531137695298807391963337954418370936220661220218356865452641252872915591194575944957082335612384204666028640676594480367679770120690977699188072577596786973225365492100704758557405151125836509531346588897289091758195092974486295032238335548725897651322833286666746142868988160888066992699797000290409215070002254538035755096675334563976035873922368732125088173539910148755046398649263161999145345420936856688135697952405488555410412065935305144360382371624161166725471542776315820051353498341649552376993045934471095102233812762613541368208910103156819137408798860045441286507640949054252046609723933683271902078003530066761133577937208458072579813151394999573022132832224673867097352019772142721954060702846141244724546171228649534004035940601222808988800639918511268189600017423451947281657249846710813431310291134507101708394515409690277882659385428832953561431312213272803199898077572886262291078804495451368733240624686893671854182488171317323169890161854936507319125383072776821892623665574497351176635069276981917472727273529525390795712390903758532992186037686139964691116341727986432864467442584123782870668787399936365410776696157739417604296616411284519195572596921097643074163107760683041041683164782536672699489665918224078596094694526524643729404030551740892024414884500936209175186850852761841813716071116631616441564812530655236565863608713252879051971607141943428489570098783612018310912904081013302542526476945805835462983040565176595151197421515287810402173164032665586131933551226724683707731021335474339081479747406363902355918005704633640107654418221011515090612547252675872899629429153877154589270902363285592664310158346897730607007365702355629475971607013828875803269138149065954909005953975773002014355608432428256300563109334159024823488411053470011134228106943049328275672870829712810242329247925670050307574472447101624579244876174221331216730039432076219900577272290039425431870524106823459849296124935306089529131824645956667021529318335293619414282851369696496068380554689951508097144122929274849105697359694566045674829538850491343848803476458513964715415119338074103150356382027256244275328978733901528384947558266370449577943431547365621555686476084602661161363881592372960972041749514232608789043465251471164799019447883664984386115851821258728278562290176198858331209751506562195141212410053774044005970363908292906090304660698502874248414362684342657173770426270648723296901036558929070717768316126187385622235487512591068609882106736776690212655779624186500793613675942448165382643780655715436483473083831970126346301853103109153741722068185540693311368472284819992191826071558276867934707101269761130271456413384518023702961003126797079603752146971236148482498597241887331877512167685329770801080049858184894607900702389961118131551601208451412830574528405356831724209451007558758820116994439733117023003076973604056038274484665958290411954366823863969758705213883560196902403493461922080080486907895830283209184344576677290727939979687974805276519286448494782805636908118518721470383421659012604006297348773211092289973544544400208063656487102726898889688871594085193024809043360896749750487172005306368619906398735427082112851148976431204395543779710321486651474437804181556246204277983416075737770019261517055725512387590080951728262838995751461201857118132548950692436292219125201170086715884825547877423970162243839100187636505161990563871718742811646033960653804731455018346352414173958580563687260941947297456541768321083064199551952278577728050081781743363247475276461387543192510224732957279452197845922351498734197688027942759209705774094642729385857391744306954021660325756381971391104976847135266008846857728102414597767174672753651299077715183816237199856456365232835588538528247947686453514466477308212914678930862430309669646657498746732979966473263213550799091539265663300797668068240246384912729947054080172264663243896638617770483084683930975193793098992379491984984115051576158354252488976113182679908222651043311634625055392750457694662868056513990289913249282977549277376256335342172488670909910269530159656321644795682372154168626407769866639823277731454571493031187553809642546326454099086263651939830091519791538409290800807555710569247087520945126622456287444432579401071585167938002025310475127941083757487203132281391483002254515922121612863212686351511957845323655137709512531481923125821190878344106019595458514356537980836505608530527638600457401701860685064427138122767924131879804915269738188931878313298866204002476963438384086433748483820886223275097692785096078133531517871552931462985442655372086403794477913312936867217028170719229164649750104947219339913645908297736699460286776085756536151383983515260645978463029491882661085955042887528924653658392321162764949109975300370647724471446507942853550571100228926394244335554484918633987958313059860873168341943125879452011509967145232106241170373379517877557448066228339098947436396148549333256649052118539984401232395473973760098814061688695357189194027682494830270884638572560796480867229778509787772859547336322500476507440967876656022999025216095476550239180369888176327805364369764373474174234425791078966956698631575954883011037749022986823499755272797242772605194990759699627891278664562106969571326766718355178863720944805434593631973170653383997957334156043753232453916422941512508673902381893964243647768143148301443702465764311326787742197593165277170716040476542971822335988804159198809679273062977947929700308265398360113610597123967532542686420589054939225651783424389653297151753544617979955532346997007371836759980099890038874804811180211055223098896464078779116575840375927043359045149646157592196684959863856985455610322621725099338292958946848667620973026028539074319042355661333976658199566213118169557637559475343875937256615281251923604145281634286917394600941434188271535085614668961804716098741725817080453194823414449416257600981846324064121981521777825095256635903499242765535262993575986478036201912075134729439145050248641276723139101972861354460326288999136980946208490155743964725821864083419025520551993381940406471267671741673910796837513415057791401056623503704100596666665414064462347140112432293218632450833997250786515910135942559633395738591961329239710860875942032491659915968162646024813270224598653356212341064463636557565338800367315938560479871603390447910843733921663822491217137727732372940721516807385683863337328657876516399193841357702248504404943987387482860766314588642121112316272064952529050777400072714272600795815886564331971576372557398450697444501207023422900397282377001566508311294696754322272337422246046974615697009363063858950321306336659173566774990164863596864716778425018039933856419257481838634332847735357341618482696704974476530672997859058830309571829425971366430784895051391524163276079103386501891862954695796896601628770130986604768480705942886129569885592610298233515745501001576653247544932693430528487751148167161860795777682804371117526275286211561301657873310568725623930732967074322586243944120141104629076943319987939497853024414662400091012568747931163367489524266773944072241820778932462749697422340924989380764481094427232686507835376710460235541033971522847512156777088654519677918894471483168467508447692553088219349004831024106381055357514433486254196975299885190007336896318538328376150741201404341135791457770184135265672281967565843967103304914465412135080405823896015874885094117485728582884624499373540281822485790820409734521193970914572899075122216006611027699447837911113228716973934163367175694507821367984891486693000390566717636008679700551685214176662157831591667314506137623688378827784741843423374939426308835005225202419301984586722123741456191207567988731978247233620309406690345741931927039952727738014121733774505349718424538359868033187602410448504287302335673983684406457848022334596210485669093246586627237375445242363852156676120642699586009986074621700977854508670504726485968881914834379352138737172169999090366582703622923588558787427042147145489311586404064977077722041364491716519802684798976885083622544914471428234729740197611005037704798272459562832888964636572769398051980107187046447200921678761179854158371610171726520551727200486284891178551827367764253837846664243943492666612355008556150439646035999524601672647555883909125074021393000639643944154970304210064779023384231947448181528755245355971833652900441681306541863162779835440220541238493348147726299142801875927629399050214791195241423575903265337989175589440703454605274409181917497069974384148481959342054440799050942396671807645415506906813107285032735097036642440627977315198093141461637606061241020656774690037609510687364077377035453384180511095161724969323727497617526304469251073182050876194111000741004595743371145343714785200545803233885291964457996874814468157339939603465557431669557544559133737571007745599156628332387444165116720859280478811817329103687210153016841219647296702721986495903049097455956561357632516116252527174743492978055402571025075839921029058466534933906405141640896210309561786425573743272861371964039491551386840269197005767367415044503294366174738096545306578781824421546916882636080646778865018847767386993320647102352812529405729149075879381965901936661615117695707527874793405334985651001641959189403836615517759686073638295451597397645072114111679139213031704138837512543191007938100172217206600718345104832394427400034889555240852967686283212600504133442187179421165678927652026551027556791955436754816893077982400421947972484848574709882135552159495359512112086685154029314429049858326254325196809590425324775382412172574037233655199518100535282484411651526719403419204395373940871222084656230628890843812203092881820261849238100471578571274894741893307478816689621338467104870763650874615189416810937717161538160386794846401007095164551620994923350932435553542846055535633031212724879945918728402418139640894935202587065783440357020780865465681268146124475856152472126286694015948579037131369835500177999012420291643322831427565376461182701134567711283604706845610936448303647925072303314483484444425360769932671558173398258828764944988335738406688701949416594191816936682606532469018933313678030250418126761335065183503794183731647017852484365110176327052229926732790553210960634768811159698998243459690942520370635480824238642255831836765876340589890520024068346002211741593760431590660003309802485580250053645845339978594597514075921985032137587319994207308832067723551438409887651522526821048264070993781632819832224380463820625654110056016876277236777425545877638452651748108343166631723852945278142149763170925109572014428580158647664474081097256534322633536183339746175471291329747300257802567293122575656214365918847669343081063906148965893127253154981018149489452289275528292821794645135663991210300098696463327928013297259601369293552298556847171771039465595679889931451740705311781102043691297685836742391720547828099871053077165760864686871374076559993534108524535027095302453984199166067838638191266014448119898759655443452759951249658809310010562315029483206978965357432698472567954967755834330602860125266780636887556074281662944942749023645261405058808562554181610255176539977621686331095890721238269170919162602458458966654812082288034724235472604598688774653769802967187289123650559703464829867879875586546998962800109527228359680957238436914362533658849234844901926321966559371346140923807812646793685182160954509991281333962943633928699935611756230476647272523590173120863452362681170152253483218581390944066232126722801597716967766049773514656095895392483714706401357617635723910628099661009371518194635387072117498417398926769741689525410328818279913749171956779533983842284093576645515239109429195213560041257925512842279678189397929680814630322725287239186477661814169126457440092866158923890998738310486207965420204456539462613733096506213122745597345836878802734368645409648508618403344242513818737491348217708323604358578291443644578283091677022505691298485670003530799622831196200283442100617343071761776884708235364795848424838856450377528593057518552494246037515293047506113281999203711371566732119823497608299114318532123473764729493240656442550255718088896790542980602583053598853357382758808670973258106421371824105813035719035561434856165807586913215250112867264522993007523578172121643349546325518915276894382678811789509511599570406475965946112082581001309834371527931375173598163472899091012394487065789840397137030470222397834761111490702451497182990249592034976322978005621943370120747409757488238804974583692076847062584984912096322976499969284435024870877517670211148989653551347832959733759991476943218140956596748687134870709596679196033458453129748661665381295649558044510938216151369633666831084040868431348979621940943312660402082701913011967241635395768086439641741460543478809975859456811679426257732275927421212402586254439106107488558053774072722248322604129296615841408704483183264896464729199997916233583218500691581310363883097487976614883465332486854314460412933894402675875132918180945750421464133030481079248785186060641055225762792831104109477894010550973512688906064134532089303154908132935005669620740814743952205174386663709350148107576607264872869350657111993417166051529898013173275209362533686026050166659153901425284795574914978261137560071704590541115518195325163966295292685973932539100280141056924575093587656173505535686019765499008646285496456805536673850710058027917796756061563810298811583377962310103612795211726354818951628197190554017253586089471083510206759230370287768748592830237070870706898674462860205713188280939405310049083434550451234271474554630173506883283714172706370859080264502719005760088586514499115989361911622975833654987609479926429173321512191716798392718423916532467409778240283580401178840859128956485165663693455964521989541394294061394715113520574840638116648972982530502680392789324490330099565158196614283749733122283146835109591656466435994268511140692125884626941959569748283683347142792062176007132841225474521114217687256161987186120398390244099365945707905348695182385801002829085814004109990590274667048032018332586718646559561333997500826429157465691872706463161951294920677056243975398228738206739485756375262353578063733085369069092232704879946333406939084600158714917833295145944949397432013976131261233477209266926493236596070411581698180044598455387936637411316076815183005272469351116287077708403542835054430728389885874427950311026241800029310886727430380056792059654896535984152368273983227993841422708137856522958515443596716478683533718347069099070397853108072733217039920112798916222769323703302298641804108645280252790284315097377856134781231281840219948327010579276673116803531829845848141858262061526287494894583362044373272738755221616195220319835821240402732435743070998847810722872470567277262730797216784098461298025623166461799118025627739155268622277688475037432443106111108599324883012967357077336316431079094610722352573168002909511289714496665750739974131712483743280401925586476098551072865002768062270492464817138480424566472850871050492742364496179093903719389862592796506709730524161176658424101876698992694089586961995071249310439576642093497548660792221555035239998859220319475306714896650995954336826390909901564971203059239139792392453750938928436976977991141775772996683798592250869020346965904246870371101767644289938403343846346430806773144486876299429072975622016121535789478927952971796379691389387272913916188554234852717894875899184286125827983723016225580744650295111648228123992282667272497458091693452717544785124414628680979007062039008394966069064152327323391593325467908205478810131692281377112309950766561173187386249364006710013826588620666006062896297556330168398048114111259741018913559938795487427639602340135971105719809885452836999097791735100445278267890752259528640386495845949051337577475116975486666935085247368257461308198277181416233914974536216152707978774985369846377843215369268366162117977817575578096457493210295048182871373860444968335190562034026911756117470024303492018702407868087262342113302391379118526454540953339873644615647549417952955805205472633071559442343129023031377656938807195558180934954774053217242415358929974685078417384730626606073415258377731579546665614432465504325966243249180437300139400643730230676362791690122290658256235901862041251156241070009860021313114415098585762177365557284432096071335629895373168096109635006000078630658038497136308863246596092569219652653854653948347026259365419540445919270291292414729520717690601661754794623967722709090555892409520381965014039183546044368523672728317364551713295020475416213082654373889834627653109065884679297732362037733658809576356210689761803862212145601739697831515610332140081142088348950362623850734643003855609520686880338897772501114781844496923321927368463486525426052692670964874973325887288157878556322174895094374259425841754088397311772239124722318270464248566431221233928386590138436249531542532031793571415927201388785906668889104145301744223521002706636134184886838051807699746623807595383041533171283480406110464765842681090444374887671938647966796975662246131860429459743979250958700279460911699187337706458214320968976981867820120615720015768878425708576952416111139148433610348559932406104601663343410915628289904981659508058669839287465411612207109918944084623240192821232915605525111711277086777765678986259867786448182699445102708553229586781414423569139727976046286464695727716895172307742477958570836818830394634115031820080460082648088581793027159235603001220143982404658221369240860991237480384524501217357114834195325071199712214926632345765118881951762737033319992194941648943164426878039612723011383985687753775067511187882522200575169624043410642454489695290074181203928066434953218997889489324380499581195724622194877736094450632575669269602096091405388292221829332365621591852684433196870102409019914030924995187698654817360288847917393161599465769558275745215408128207405945959660251642907535985471748689447747635533863702271649418184289083601125091559113710852353471792052644148674938705977827497342709894151129537819465922264771991254652161382063139844342235320595064159812323146124660076569501325689885949123574525803049075048034699430199566868303171222990842634071254444001113237298877712817000745397452686284722921633962480241333951861316275394272183867720832105690293139851223837250779273344405616561023970594952274894282278107067593140667862210137385444648710979615855453447058827231335189153927285495698959969375292704609816315875316429441633392776825821808229731509674468021681698150687568592990590997769445617001854665097729811364988492384330589813811785727265719287938777200916956049680876783145780822069982730766838609981526098952197260129680431224235054166988008369992088463821994941961709093167534425326609797314031631815221981774801613615417821954510819334046373452896497798805779358499573443442638257275021707473651932119793548267500705369909610573805274862813543602370963786410254774877316534853358417061131331147760312533380970810700066403857822482769165219535003492400512216754211284812803480383390309597680052362881427355733971246645304828476541900265422410832899079254091633388060420473310771263225994922385487557140624648190887242777575383330891338304280949725753386642625918933126697232241229220750877013688556645201127589144187968543631619843466788009504242220702001771926617922419429739780012067025505980961993603880366832698302599995897528226757080530993955900213638044509223538622144927514063804286593027098601279539224905909157556311835087850515460315742867189887961869610210831396782806645702720176081885798571769302611753303409763140700997987844335111126122997053793640264295717785612289052089971584674598533285697034008407298870934601800544161337882002330244638877983311664181533685125277237647375031229721031727210630290656942677302403323885694168683700000989993644482291374943496726167015141517033812077381695412943088641253214451847171770371404441507856169821641686419496374928993483703026398808200442331230510691991230686336187821402364383592833657657961068589499228599667860819169786064500978501911135938745272975909301749525901949050867245276522153521152905692686819914034565663493045485942294869492680774003398273180685108761965368296205709829858731350935429053608822156073887202158442711190478721007448801645811207073268393881871303404948899066614822069157572548824856830819806220808283471569344020827857205199123884565673447958105187006459380285371506813509555246941139006112409013997127442091919425034709487838524283562958427733307214855018408812888028681471231983216822547589868179371195653729760299167833877786902635365426905016534989602328419731461516538365918273399476166668297022563338406823233641833198766288482711962694919065683913198473439744389304126055009301726471620686416567967883550885560575831262867159375548616315636147835736739290927919445922201499638692819122205359323837793058316407689072940889870173326000897642099977171525030289597150600746690377035845200264622898972445752094326721679191958127562947176609061278265263759768650258104648286910620788740931021752005608803814790174493511758432585976350890374717425724106087703145266367688885304121544572160446506379100519375202085110167407214623036962469287157585727776765904582579392672875568060417885129188019813016310901149942979455713817620199149062121125923994504201530341395689075241104539484948985672525703486449901277227940831493643060100987396037150327974296564645927909729036663379456407048911464376668876125365559437682367789016532639965628150608101408352799060073410811124629431934468297299287996065628791562326663302117959193492425022715984581241580025367601715218607568509545006813203758463857059356559899531360490192932749417558809686007564403077351496742767120083905592721748992931543482810162639431069694747777179468091915057302960893478495047560220681773923228570567040487066981880313323364829777005928814405444290277319455971141397205698827409261488710866892855955532031205117295817851847842264131654124475315888783066373735526351481392771855880258259573391005534270623232889079461292408394008130338424734199908286699510522658451533615856263516520176392748642944967606750756909358164918472406328612114917364813227953094482389571471515606854430160656008323805314193602572385929298981472273218736591795095203508935049605940780911375634501470180096792042867232799419782763153160160038343227346083082128223553615605227824590503811517793935467183487619780859781514555289203250922950958774736517309407144905187683962888818632976679673424383539786077864137332104769975495039581589916390778534671452763888168467595350082950106241760974080135802325942506744220658166347179905837324449798586554490057951471744821768172995004600867886822546664624701551127682055436191238100354923471922271000703943071685103357377131482497900332560521724901669120684961701405538060457188548932220439701650037506971438669756122758450126941277701217391607844263929799502505551100455325693570239169967801011428743394578004359749221370352801318802266157670203162137061723380290631180103455391758480964740708642492666460719698601378792404489378760347476110529796429098529713903970459666991463362251464380084474499629744058486347625307890638130038819019153245489276250737007397786049926798726846729129962708815260976058185890406148096401486275883052791707626769599263443608513026214655565192476863551667358474470573218696164919413586226908970483846572704686588796576482167932757069182038166916285936750064730332705583255923988881497711635925256068721680691138224370039861349133878796797136802980301998374371063080569513696310956744079080936740678251017897595371599661106413686833223149129120836103310869155347828812629125234280038589467906110098836381694491274511967256939283184498523861894928855159232491991342997525310709554085162486566908739606480830839355498630163286877044198011692357269601305259055618375087409807261992314397618286192942133151565823359252496011221703786542235751701846812124629431566818575119297848106027782249034035602419540383845267190835429671826890451793250052656869548653698560470123311266002280821692064531302596317335711375151262928727109990560724275970457452987356124447915608930309890073194788268844615657026127520694171844008967419017363961359079950448465986878240877193494933016839245709470233730378025222682180011463584401497788003340013390330512590594614006582573296487598546442716102628278957949518523440608184778995715164409922768613194723268034168894473989765318872621127792437979416576006270850174524013752710679467169170989870512387575783790278505268393916670617252926803365514656985476364199296088279390789343916281179088483104716963952592381111148137096763198119836462318157166367017692212212689232438194910983192966063009613602194590576085601670319331277099640836879248638174272396996115805906203488124033044744517577983119934210242226626420458022357951322934376696600086007180810351639247686141090333578791431559540350213895675640548200564967212049006029611264670604239152937872485315787491398111160377948234697811524701729051953132132489245737815626291658958248387596068233446322310440958681301588542334792379260537419700238570254804762064900537936962627731679181753479803395641834697908307954916672459510082738075065242299970351868726651924125044878215786502927541071201516518483993061047514707825236272990914100436740802674229171194962012705921934825855528310542376969862036605456994047718141764727510444804601357643212863612485434162810583978664531160074830793501250393802557290311801824028729233087389319136338113532478889582113542663208651713833108334812328248962164906876525047881100624285538718613280687996914590537539765921444286086755280657496137777525494277867325759367613667441639027191209430002197328972827868965108230268269040642194852870122764983108337687574327613659895537751684257936757214735109499656484304407688712372404371944550488191310856181507199574018371571917624658866314846543961805393495161631470913080677747893313589135333582999527047990882315019775257477370913947723537953469202701285963556893483944448556863368530695391397248710317627336318028326434311381267468970334813783538243180236045122162020071987196445813002836642277665261018742644103083699418487348155309798806025084719185258801716367264070531120740978385408290578186566906254368884361672189542454018617628279345142538174640563246202891362558122977583298884255299277731232851877702801222930946098757477351790390217468449464147053080252213169080759785322238208106888904228485993619472962266396613828929704457499262957818905109856039817004065154247470899496255056497332252071537912338795523475714495829962238048319593142373859865870991315711835800174774554694072854036339993775136031786232432519824481635978800411180038476786463295572100822873098834482389241895439053137735295581148009812801487154053462160127152600082670092913796354738943181261067744299765205745996369296924897034779626799681059300722972963257028917776580836395354837364941427412862829949725877594390030675552684440415523640731377762960883107050734588240141403960427433069054716745099500009342681550362802301280365460233597719077759631207258998891394918460559551883494150000790450313777423893941794864071760269591582926159811797697543712924941768748487296176163708190616678678367559721935518570045236139446747481041870041928582727389391065589723195204732692892336803665799737044726537433268028370257781867882625602377301264526980178240617367822797878926336461970414241105079265553847818827583021445931027233730423205438338211696075361579967072920201085545978748862320232335903683261846261663600657407506881279293989630761663431869682498683212310303162358590731075053713820390920726589383320812044523824681560670186753164117485613529629452842474334747301515104636123152111091093964677067700093501743436461721352747041157985311740525177586456325152167176263760113436307120084558215852703699424595455571488067938736716933102769843806859977548126461945598717736848710563450195579602128578060527963889061454610957683160998372014127449966128121761725121933413457987509924573907467359043586842827674121285485971597094954986438896682176690480495111817577461980763256194372639546020553952259516685657425193508027094347695938318855738020396438243133827894074347782572648740155752611818722383570394885204795836484356491613093456115775731678248452439262416131679489271778239793975326323252364499617331581667698074531891198214916602485277517082651431751730983867456092382982278052204798361798535821983694823056813293408647424878987984854176608468485316820333519593037080593455110166524228286828276762736849290016935840804768079855300377414607352734907546245025796122534773459133138678164784533700224040643754641735706226918612943484394781211632976337565847607856826739009781474677798821175445389864379425285301447779221471749175509690362859680218572240314707196667664575989218383651221145903063949492183697923442261354770683705294830894296578306355632634680156389341676851362698672495622345293283281326517516414174376345295337958316145935138272608298223199380463687937631262144345092124425408804543406983439588315431526999719614718158119074769607695513232368703402663277036021813887249646618164790163633325578369268495900910498908690240197162110635091716054630134621137089556152926563060850089601259067583891978953600685080960767819372178053306119513130621671932328619150666138824588874934939731458177083521395663966132873424306538973444270855255747609529321406511632710086718384743982555579913919839154841385544432050290920524298941180330907453397368815228342347204846320042060425838290905206467262201934663892070733276792540266993900424446027953047969325142431603334324117583001172721637844738327130034954930396938823658129106123395798280010816993395004406618649397985014868110751108863105789159848506143162522123327409116895214461366389748100521139444400976127431511890278402044281797195183085737265007427960352185998125616698881120485708257052650863236757678583637493904511908078747642617071391963070026587005157276152945604004573782466394899950170763609440370255195992900398396639419561120526478486994152376490654394423671076103871080855460510709642497535323401429131329816465847471075064623832610511050208835845853699872614867337019399550903339336301266279636237579402531421840424921010405410408350397429217011691064940012001006974241411016621336198196795009237692763244116366337317897568167245866702364110986234501946810099291295503019017573145566997991574725987450454714283877328149887019146408503426519889629943651641534667900111543954568393627914373937693604945060006494489991240487243456957847982151171299795849645778677037282048864594942922038584187147687955009469106281136719387966172501165676772727093589241447862486624914627395030596467518420459570573481832427894515165048793218880709077695152783348987085936924698373011185120979639939480989778649550112035104027014241913668252933598260121572317025393004688176180045701456802045551289003480244949002725752489053631767957653151044785266408812763603543683295750277461104997833055284145523281614314589081617524109181480301984140390453162916033134491538864262336256524128808780903314472538574132125572852941678236183914234096908762776059171679337035270329972133269865652939995706863190460778919253413125185841806678432540319329921560966143468170287953185744406609140234485909679427169156245613480703179646169150504977048030245745768998979295527235432376894982781060959713627889543835192525213402502717702409165147504821455477872178815501918372659651995570999055755923718173544886141274629956672982358268670681615446891132005844199272022892972611375710873161567284036307558930150604758133579289405630580657400976954385728535108022053789257322153305846942146919403248446480227324457116449797723901408064577115392279048938738973449649499281022607415398703804492658184608944713093783017283483505955407829783039413259741542484934588491237797767601682304721516856176178578407426481886548106858769500424560491687979178084651120730248690936688554373772901906862159923736747614866883973844050234414642160177841656749632996122437201181320842465389695438729198958289564692858139958992428547679952747847368364871880685497671382934380947626856696364245967885625180409003635177882186758661211857738420724953765034540034773378173460400949579850493481992639188362754293274151243787165931181903840222864591749809827998429330552260297888095817135956190630880651843477720550283669955540880833394193414587290460120573989916318786816881110784483568077779531715852746011070715704385790356317541059107494717180411281927435540844506300684753448883185345881510863914097065383740194753165922977518033922803569073541744188864979112038498713396650954193095470133168204945050833947351905828127563432570171217920414265362619304205440940099706041993797181914105320688549044307754127786864834660400428348708271926225783007603480662865932357857612236379860857922850615083258080714417076691526717810124213571078713462375511505619947648627686911829759760236767329787825047583558867434407270217986267965583952409884084882414469467568390422027341917631207112483794391868064996382676546748517265652273153828058417635385440132415031320726494525145065403833879683382427883706208271290316393456730863792844848673004250361213369960097446420432639456889835950947563132669025443785186833182247314263085514566382816172140251424061137847915470193117593976172491727935870298441947072821103672167644777894554667010474438492010222647900808291568886901783265433608631407404590655217139177405002864436022739189316295918933476013197374462661828284317755065134511699711705589320582901385025634158200718825374979883425835636999120647261209000054673703010807121897066965904101463590399148990686686319755340702924614368595481262186634217779671435127811824823984807846828305102787056124032842217728968871949452754085165354277541422204733785325863287240802133110508958627125504493324399578183766233821678812385469607919897865978325850792292575106773936929407273321790696439151941630486715871983074043811673888165991539778666737769434935293621098339590858367661340542714352775600424708423514975748287717694899214586412606966320754720155189946766216916373057511657439194141523554056255534904186381882373765178789998709456715803271025312343778774655795924715540546312227387773097066176117453681866745382993471337179306144521409086506425234882450432858413700013219982086848182844249770098923806563260308680692182472804632456426279294572656745673613043902235876482389127842733259111642450465902617261331832755673950169252475367327899261793945935380780371875916700591459956341521586312938717410578837553348874724768642376518122051836858623114421781748010662811818840100656772321055983337167079165544847344256591692286882471342545340602346466240988503534608566168044741945030039301705578053500956615787994346927909887784738236040795796226430410383666354330183152173142262038706794809912773097787367675119595113038633297011395724541309982038016867712792765473850845616904773115058199227597245360520994585126889795769210381340253142346457261781064672204136815665471904853510558143300372908337625763537621231774212479016347821633877323814515626597803472772642331343864600071705550621723027681348857315407637894474984348703364704919691059044560828532485354416269002892454843399731313785730729459184303720172049353165496454102837111454602776562774977796873370774078813336358444067048266626396616134437361055603434771896530136372634022557045952505075858565171599950986604792891858473446499292695654707393581135277159894585562660231397388773733848621004351241818248011959700446488189444775381217005927486190842013913498899995675589623196973408088796371463259661287127824189975669838342029945934263412902875638555040625949922856197839040186665495256661879718526351676941077958399001359121737654957626055212447871663856457589846556372006739497174645334788137189213787091780298227470672104856435603890071691015328739073706518563451084904000573186663174487269815559241678735098207736209527720284295660198981459470053849155732089061050447379611251156673232188511072221410321409477330952650663264041644041696896911915962813974551124775739662779475862738710854047144414272598927638994971583269848746327090627828853839012384799509831389042531472869564207819164561399815429059101307056980324260498680264255659722957358043350711445802380043267093138450207974402473923504340134632189188250109784421157686366612649944949118950575900759950780622873004176947324391820531087291664118795172089422276583209656592411491730377851131683854309528384370678370301576161227602631138863805766472504325525445864932850593627839332107485907666460195630146644223180113946910585311724502895353151718954280760436045131740399407450952675261591568336791540209638235144959170896144346730745297053282253957978527440784465643142248493922091418420824874055097773427461274737397327998253908044927868180155362147609021041451246371055053391512665876892685444700793276434144339732554263656468371364328105859998092279629546869656142964650398891671969640079695451910915552149521292454091671235515360315766674811394883821073439647303705119198580093345532147291885408841053457060517624480698491983372427216617776418155273926821295718634388581285483589935812711708749858187953441964920053722878293644730107541508585474253767783430571346099421886467725686552394496424419640547119250861873900960914419415479085380419027129726149211159703697469289746460291058903720974260187501186322690071224666749286897172498567533225233051342101278841782911379690334105735379991745313318575402179039470002916820833312969997168872433450825137720187302908640075171801298021660697421738736813929702330103312254717270173673455879572567548525960761782132105798030312611651947777414944071955866567368786416788118862039737799746469040371110221678092215877148309479662651064587108805610902278279662021177120679834660077013718142542964134955116360112224740915651260138549310801912452647306300677194063072704595507324391924729081151422781500017478109747545035713189167894281684182650197808589264380977927673745665316629006161259042186604058982641663283910176799219618078781460124931377669479722469906949140313043584749502087247613788691278782223555751336526683135595355125286508545308441915688407301794210567843980329842566515156373915611842451002255601396318832345141635927538764552686908023279781315328564885489742535140601850395526419882866720509341198920612880095544832274493310861011814831668781169044104885932812106746422999218269292897806421624510350666062693333541400765107316644850960008145208196521129701010864372719723478042980745283978961820188129300932217944015796854437766092316814582653871052050121341222643380884384735699014255068240213928606078714203331472179986262737805090802124261776916024543804376839258732918074062342997337374519927885992652995055254435577014292006809309592982441367313284000245402854658679530054770890283165320240079100533834452942204932251765304577979955339972640983304391450434805850901001914748581148805296257577504166465152964650396194999936109306678005510221099754023458710346639173091062533606995566937069198817612566888597122683568447299261534064909837206563074956479579730566562144140713444191143474708588502225227550668357955732541180062343131612310375859027228206654810547535934474941897486365502452700528648127828646212431637027752207654925501646518743808823025159872391331424293388407403257894398288676697341576134549487568001883677508113274269413121577751572306376980525843637233075975733153694962610029546172496103336950914758267144490290524823525005992716491904468229699601491717774537081199686133045209463730418015146760614710283622530298196452823306339336548946149237799722016542868007303805234764465622826241520632857294953142214581745607772779825076712019005093735842395499503044445268800810988457331136902029592556264419142570886830738785607647722998889450643293287135999698242675789132405601677087877703824042584893185283786357502202541535722704439900593226592933037126912124734662915589388946160771623734915071479719025113566756696566590276880035401187494006830075137690663194367413234245670778000837302334139454992031952572011135797315135320349554659863058305139134116408374322700413716034320007454608731186382942096127232563617558963204004087480058760626466564107011792040263922879144905382460980315951399900640999079847810793046602673208570754652647995576785027513709719303593350394431318547059875463431187798524012516684375470304172019798174211172646417134043174542162956635886663804123461909923170043594909626141385081731359896413784584263481181424916607121605406190647739054436243104358689462377151925333764189601483286862979411124141020819224059719202146973588202748579976013678595526061662469497406972584603167444588865903294087211960244257057650418049625039882885794049174054912053054415298248536347094688121900072081291811451128590052703965372692832474920075943659601199337861571470834303860985568701756117258486766859649713107728832036441647108877249180917832340856212502692936934499885789823753731296667734489703640662480628104923272514913104550025598159752428673043996305861131588019318098709526086190152607376705717373424394782261519628989877152234805636947436807623625865619349383396584766957773623300392786104528241679711939163209326512447894658013123251332270768237083643277571894341652546127070980664557206221501318894835003610758035368090645354708321148513504763384095291787398228995862292667384017555242650573499723148883803319826914439594762752406336139519502137209295666212552890790999396511613657715879365305454626703499780240713128834859528620359366358275325245382950952558980163367741398745095467850040600253450746631130866110400677249011219670961358539946993141581746669889717201075094278221118443468112367329161702308853620038583106622350862254304608772266375745000774942763293487372677907271303118586532017146967524189780769743616044871697699874926811435879722020955324008678482880139497083008919719658704705490690852441405597205596060900417233950714004782132551992646940950537761924816222604092662440388512637676810733653231633672522087274450623426202930577985539987374011132853175306395992227314276687262244827896095959285307569815755456607601730467931709506488112576384848599793503764843624186069006455358628124242478275008738542010291250564478658054363274190064081733939730518866872519122422858261845881032375565514919337528332718871083491726922132691899107831366276927563765520092376041056387301550280848100410728394010809955040074207535777882210197668616896627626917144343337085449226892320917529739586524287124818329628585706428372110501538808666451043707109678001675274531037767644954471080432876455708418056509459314316970705816437109119382738996812753699149457726088186145390370412250913770429467624738822468655723356739834400115840715761185263294174775106067325031160738640971407154498654826374341612521086109587649610815299553973868826377491608011307658486291258648832226947772694277601164905389784677233720556433284199845861082341567786705822134775492109579649524483300133802259952577168182929977340128454083669036106764983405858707660944949552093672836760625845856511842034506186537395505367185300606880229890308234971752661555204894482941810615955683133638102212345979360488168985840506060906123701529921572922849954058228607319081078470416331353859928825459394854922499012657929585492144565626642308121206384120366304844428300355451354069683688309236722334614061154391748761028621637434908643212536109169656004889606383266887722069991578416708323563053397934085665744311035264569371851666522946545242412162799799024871122994963790331095951035966624164446897785006106855527159076569218767193109467263326751159133556335123246153870223546396509207561772957910662910108415468634746864693726056046130902426352843144017435322436067339406822482795394491646012325013169347560565383089604144699172131447820196459686804699666789702165761794987986512088141166120384524657719441006745304034898008767829218759829480198100738430982298461910887402861504771587291736577146425871640445628266458179333568972148020636627533732496511056845264654718656144316636944496530300407910152763090307965108522171958531253982119965764569665193221131685619822386409456832112634031090696269478330021203321208133572935384889904543932920608261939210541773418752094087842973899766681441288554132822711719160567927339730899786563575326869532176283738749358934064953716076611489110235035441337825962253121721067406088865770581613470352404895646192389396901876208310578216652618191100611724117474498513700915407398238124417694617496258332585761930363658204659729486201283439834159604419931702847653344334375187351460299117811247337714649438110021002944309159358461953608515285036254805350419742920177756924176685888884225693292931500391309351543370061110381736096575493217870029444786073369570981899066132946997212029016297011538296531624648903504244215282653255747382872950161011059822203879887189014964687470805658089974532970956005794822273096957723665685401663169795190419043958412391734917256870469391426320801164247165330702488904623735502944343838837899805078070304032353628819837257949341535343754533424666556621466218753477478052865465815048534629974458976119294360874357041150780040503220021328660181048801556044615743031700866448711523603787968793297304091527502659235848124738538878570405396032138680985915941418301818603976773634805829251611471035986829322084709691439410416214615099067755021957062910366039182058603244981696595343197110713812473017271883461010462880482479661749117440300259362978873467365560649666198420179676813769757165823104866669228683077704013501956803458166074229674199413818126065133875479401340182368262084183080349036961905311176341330282715602281076346481802395684886632781496356500122911376187974623497302121442205279428984062691348968736355260466800639275544782191352733115794626163533171509938598835112519424920016171144455598095221729348399087574593674485246503679435951943052955657646541393350927164071807784643108233285776868202299650355833517812631545001349889627893760467927341596035856266130863822701056177785421363602732740741234972056835730758845983937326206743325483015327113565763013259055768544110195509838064068297882869730133597001237900543526441652217088467342962635305934463513885902046577258747952626406173609201460591260736620308239911336840436497629886543375536149850638890003167401744335285666957545558747176896021796983366622161454759089397365369347268523299143591325194483984423530865189037314770996923003235878803713797942378660027304528451548454525945703363763706765621496121855031394500834714216069495926192509203716335755486509494081985612254320807056242517365695507313079403765570474140991262839706825148530266991056044183852544167715634382390085939753691250332609141750909682164277804646054837520127145214991751468736319832657367651931162250621910243925385062041692594081245150577000103933484373264364797301266085763793525926620803239810656254092735666490562954879704231319521866068234611610797420061784870980894357266125808046820632116586185407801505611752741745922679385275461937980439451618165679067601965514847276044563144163474005921985598494688994427225890761197152310159711419023552550177774399938348034247658582564720194601683860543977933879374319564264013878002730055789493082969257831791009837491682778179139713720269716801353015058946423801071770306442679761814254488689428131330463539960021564104331804973674241643968251201148170529693789649277794108507588766997394127241925601554683566868773496128451094361319487864027687616888192434980865056041034730047140137670665609103036204529603416976939558024915413514060560004537585540123151840606771765866984062561566840932546757345817462349249588296187618830377901384570405697450944896270531735572533069910254200652174953112510899788839412359534569156195085383729279449988488273149613114338478562791465372635437394319502764751747300467313018618721324814590224165830097936810541544397030142724993258985369469983715106889792332680947349539400807381273690717709881231681098274897248880118507258036111297067091427359283340128751876020811185455293993697896352148891227796749589828764119043528905037643278701006325494781660072453557349889108475574694363792138008328758759201850946827413046168356397578067925966066545225359722935731655814165295624423055875198340156331208422155693683046509569232851496293675552381661870914692435546853345152728610049108672011064081959995396570873161574469839381638450859621478254686863123504100643615780739390905812649610356842444007040195272642291956579372848084849116136520815547874250076826054143937921783327840389390029843529054447274520880356822690130753099338963637901406643341244631592318901041243673999612026523397938913942270619135853527251262983148243187466887014519886218066250941065946325005776162973434994202329206549109473475057071117588612346330452041936304140693526561024160970195369745052414592126283279500946754958818897559146692266603919544280975307201330623843938954417118262082636363763773351608957869532946257227030055578110284812932024742275409164421865262501288055141647698940995692601415363809741544885125310459890580523628086297170250993352304220023947245640859260703586703020720622544816287576002751508468407553017314275114611446443482595410598842478332284321092556715015273258233863647404742303536097513898109003025440087266087084680361463404878024214819444026417403989473452232458667270807496927742189523857932346733967069807269714630610845527985720999714982548120256219736119036862768291873555871722898997490886333613209373754010595940630253323225640836786374146000181986330347467506311315750348513171960395079718017408564435801162925354604318222735439239732379597127187406024072331996983188244839200075372411727814816700559786009362124931585194764270194812852494661582504953075635794702698279568599273291424631244807323777484454980941315368490072333147676691009456988625400916747538659936045932064963970170702783711795693405563184313426469172942762386161188996912037895428489282548579192909668171597939697455854958458569279032096527740140649417145064189484181215696499017184568853728129530602453361369162674313340372714552911336978815787101547056531695105489853429509872502681327353183223972509103117804651843260114102690426087440673350207361751879138586872416591749219917952944302376343980609339039223296929014872433304726284780631088575198324334903151271730245413918663173147811121384181971993317675154017793563392080487009291214760438756233750148638012654029133823787721670955287369286498068788154847874202285737829638304327430134598578976173612969363854406798687874992930792525807559187266141152950291569593124454950748167663583096882524834834479129480764606604634762324851140946876337579790912940368725891910632235095942562398767351782684228235208216397244433460277972798476962237263591592949005886805241381101514798076202167699386226135313189482763228669751019304344104465309502280283779660446625367687612346846079570886536801162321514079623174365824843152285318777208512768521887281057110800313758539463975833767479814956850052274160995235321806767250003170335076395452923389187116458924013908999756928139631923612693865252174710886917502587608997540324818661179192088077422503934952570432318294805437743704049084877243325514605891609935834325718691604934757389415253879931674320030588548226845699622120758892491700815728827560354824010754830959201768777145775356041813196701426990327226870576908328966691165616740788306369301607154902445088855489074424056076262823687395638351189094075441648257307764567148216152207385140705876638580072109996938113548678783597116370358326964626835589318459394836397564336343161068801252877629671475272077380657802787919202417572093587331952243450046011669722792009354925998846292552217811271567126033075798867943909307835183613861392090249020517876565033180102590658516845717715855132383113700381038702000165550964171865123892244943030264256594655370662292772095942554286051677689693792494494888951954876358936434515697525088440528718393085913965888987912948661201087195509165606498404969545236455113474567072369559207357677316616475474297578315842359352737740359288666841334919965503109631916918957768054766588921132758981134776961744599852643201305603485364664100549589003895300334161971856807071791570934377518873544641060718841897891586275655264531225147073337054996833461244453341372383525163341366860667468114670439567693217240107704553811614401744172709067531496449932393071298136245502250999805028853215469805157606652503650795220336676135562118311607594873520561321989108765570924065961102894603188392373929580751377988560719336732269015026443435297859882872166643732347113304032161195240539735628563770351485816774953279205277181275832239600919436645000444804202856220158543787796447990537451003158404408913686749799211019226475967401203848427080855475740850498593247629425691850535826571798151508070755941385693070546067015901135807099916392351492278624246958838326589416457081882770724124255247506663154296872375334090125899469282995928055702210224566969502920214331503994527140728905105650531405972232964892549705171187562946483107702929482512896056100217354557661911306533814033258295609451224308881381551519744945343123058020470413323202558543140007013081647092991023851538615038762041452795424336321917671113036622394791377453420807325252731667566052758896157116730432975059348112930605804956636274941697241800699345643289157293253481145563676447608472644970745161024302857364826503495991092577822448394395132002949959426075423488276629684655433024292367183477704239424320220135657079908956221304883801882223011640068160285168596276542036243581465668521387592207699604791025694278496988834272695194258743790052248646943261352999025055526145091946901817601968731568506568996240640411432521571382225593530299595277998705825884861686904973000206034743739969628931935105070673129609848393979223303157614078158035964347898567927895693968438672296522339729969352841559674338956677104934261349698742591735415034892930791046006845217181838266573726152819442285954077962171235526409626160012754124819290210087724006430207459008829598390733568442296743370587295447969528990136400180237702721380950156885113579165293432364459928587897832314704894051914224124456200951563966933801185654193390498623113363564078610634116965376851245057214431746858880287130663319972193445256950617905617050177154310729488670420898216725636113278489580733273564292905355901494527177402422385377618960222824383164444982887096783448166683543391378295724146845124233583203764035194384148165734956837959266680410656262850154534675011079773840075063682492156340485723355892015267449523668444614399527551414400124122643516183583753183356865106511857438421680970957142851397990266362348327501931778643589128112409201381077096702243539032666572135871839118215207357498414994851442072539938826395193782027975434180772704647854425785513689764981878195484326899643808159051299193949232177153170823182884765620502786409650186544541140482255906306698015717334202824247270815275255437357737320809751486964528292493703363594306527639192366222498358586417839099435739438884721315505867686401929392981659986658271199446555457790187374382025686874047451140443250167211340834962436281337817144424403663074559773276585402198140295115453197825352239699519547366892287240646932711751573333760402672195158880543502527803467844168284948696243809414749106642729701245883022791483286495598458113833219384379348570724096879746916783892632089970127387101431911866671317567535207518784221576664273239442494241676192975110223667928593927155146654107991270432717056340125727233061254079660213144570705361073556067894644401845331223164383598599305009057487514725424159984327666785033452731834931724342203149346250740072160614211689472693877177996698292226681630765741699992885002220944811319211777728045496484781650409023314025725072863741629328777686714753210112714054262393048311201442048171450136566368675842266819728239229095238504824329706792189733428651521920925068067838419876388857792415941387943349440764932938290875020019289026712488164411265254129480423453120940529361587482106001589426588251960490944043504461063786555236914696743302277038186005966684204777256208523599163258756324435220354416078761099043714739723797499690467690225400529333442263352655667488927602154157826956006113222096659753166819583960969787000351407301547821313858121193045316934291810723105286274245713408210889584488414932588690417718920220562233054935070807827480638950384527926118098900796194397589807771631142931613242478889010071569945165829411497197950957818072757255884893880620933928768080494767218118679261932438002869446816255078398995832896089777754076830181960812117003912752959517268674219145612802333198011103871992062183225417766500956417069765235190285464527000931418520428185458295418157763786332599028960343385479207014064398531236912361168000034308579354233833707725159884916369353309611565280496337108025334023541962946456494812657006515790679339250335985662670180060849374859847020584918590991813257321311695952752759202451263406996748530801511264998536779360977991673701873565537516226592813549952572451182894524614109976909935344090315505115488485125725839967109111949386258809994346378534844391077272863293563285418683280966050020919388774288820897551395982048143542608757054738935982012740602583272963826442870674310020794184438597019416885221437882639162818162852533607026338587850461398913000321220232838549792808420945277035744518048282877591973337447149755935979899500766596065539544856308986212631564132959248485271269694643385925940173636646875216774502129982810958428249186446799149306612334609073979611191638550623479559017593884404271474790533063571364750025046706934992888230264458472215009177953048303352189183534262509502048272671167587818755076200691313825879557586544170756776810070689395375464371081352884063255750622531642969473614808461158862126823403201474455252366522192468337725191022614923255419323627718236832195701680411287047770689834907983005824606602279956892229381296198504788522464631388355661364664599587816882000232061374270374095916966008416913961736664755425295756786000973996613468138176978876914213636971297225900877839595844956269404689130650927547647201012853927288763164369857059863687116008303485380862316566943798791815483317738247102017536701131710385474033340679025993036481894956900273689725696772271897141639475160305036681097070882698542690819414925517858360822521704789543894844179454195480866653962608658976254823421660881327306697283483711910953775316247147201098762792438450172310475524501233911076902335854774197815927971502543359648066317971432461481554434772769814612612915766067921421056747395206132018110144521588106166460571752873168251664006539647495829355831820991626721096182317368118839087083711171731362083014862482023632429986776065971509082424238189121416125230486149552214527002730286341269641213614092586480871026885170853107493972733300677030672975895460163933398958539247210138465655426829466838272582046997350568571325959493974284201120167418263616972569763334302470412127667099809813937051545124178978523739270171739848897421909718081744704849991466808312567794103963027534674494798125914630408045032258036672592333290478554775266244704623894897230145468653285121177236408276352297969802175519145545001217710073575075425901891859979452449551863455762620338606045642278120199463997472000502398727428257545207642263307854491672050985240354560137866617595923049965571999285429608921139835722350959522312390413303407246148827018808881216105929989789581395572728981891011986061283844344579779112422558395942708145655393447274060490092153949875521108252146088168648937394610078733406248724974121604866324327807843956290774915731742293006826354029493143193462607530993226275019772100219405587963736866159922391287887413758773457903269470743532588327942073847547987351657224840087691209613079040092795797129620589958597554550214884537220010578068703983452318563447763240078026788056008301119990945749066020179131089337637006248158083654304900380837975071679901149983034955218852512755788877116933632439997958120525798364152244146564453513056834209823110041224523224004556855969292460912605079636872930737742173022811658716481996900920016978823098927560520520185832333026320577868871368685094877546904560950078658734058643047309675284589643307715625069978449891427905388919645407271933916733720926083352706257434813985863060569362324360193848978676905349416147308481623847874976375463412996590475403043055030903379524185065221371239517768960503395251690090143586677072523633117914586189430245914887902255680382676795510137291020176885790280492348126455478324041007648230236071123260750031218445112539413337844846411690711805292078382103575114953324889377993924476771629284272961271082837910053851289943454554971488683958906419778397782969417096333316710285620194861742393856404856973944052533966227547024875152166058425474323543316369312383886876039159264762452474219645217259346844913926554205120351708316373486328502404572998850162215889646616897050686486700613717790087156985581154924372670366216769541328433635108160591790022493060753571593056909478649663426159905184633379209579253395394592860973241129735634867990598886420379656054094082822325004376885634005490694360690435610274570677909402125376205871063519476024404298683096965174943514933555981545086209779434514218864871531126606266695009067788659372229339362856089637738399679838477600014786820974884777680525612431786774519980661743150675900600285448390600858947987412220321863946575307956312020902067439320448411189988188256439519395634300260078703019635388842443766629761854157659161799654234484141727495764163390509329869364977069950952064246834235474058364311135769737960572430088377367411951757335373404761586150400122956943398653497326571325457490675150718222769056719507667653848202213480215614228937484567821429813935609957285351409346653707878527678996588766242652627647219511980286511869733696601652232127760049462045907050417794142766098606635479553688982434809402333899611091387244628885036663051913555653413765574680424849078585176803109045950054163520799440769776485389438085586261339040072134269632581249254923939713287516478843528174266195887199872540079589902864193230625495182922589567351256734262863830652051877666442934383138960688747173511921411363691930497167394675014223351108226675769054015599523306980065222665138833375645315028889230078319448175886454663680008684860949268861509947887666150343942555917194126339427249906540890196381665715307307067394224555136212183954209905146149483928827838532497972168535531796131768091594157088913900442645036616417938834097069067281574402644856035185804405630283253605705986419586267199083340890975631787537252866104495956652166812973004785559416117694569879799399973840631353463811020723876752892898524451043869746335201205704571020248022263546696664937278423568233223729832014392663451377669353286650411316790171669380225721237597621520608737067322140565407740760025850240401954005267501899338200171535699644743430781531673079427851687972528402493380113901397804403799266984906029814213422310119548809506899096048536750794422922998032701476210702615705536853329458050953226090039318088874506153626256976522279344983776333889052657166418654131564020327358538129969258540440980413260694548568067565656176510248998766723597468200097303238370128285297094901657076947558836474619595098409294746870482240584243797183911794561250442198401934671098317251409581810236058216686950137378390930958766422005301675425532525770657103277916054523801408329870853188119628020943058361850160140600267946488705940083270760621312308096870854328734607095544762695787876135941965529041763024532365655476950748680739058019354664639061811757966911166254161720288080649459594694831560286221757362023861026654203572840241107690917463749720026544813259085346313256990947432746036939895315795427621915058218261442933271464482043510514867975866651493512124465001964234248637889534232899399680093098665355743852756776177321261268083383856093001162337665466921680883103014947074685112158700953148561790630031566349197521360856968984022908225485067975491152371507455715822129868312954757170631682292949039532140430960972666307105914261726886290081564273559254041871119973419011808550237858864649051762747262271687058451702871957279398017269869490601194654837218943212296510131328442657815133816866545369805450803588341779313679224138782659420011179379250194487476056417715896205507469489653639863878533635005179915395494435558091268216762597573487778769814020224931926046899065105990882339325412371110207202498058273771715738197973046685987430313332939291936827210973434871823484739238807712425950300397874371234596522168735969754863896858241648889614589598241163415940990848026943487742237316199317762754122474247407910672273380585465657316873279695350024277696520238697610601315047997332004345468209705304803639466806618985375521646776179317838010973530956967648319633860219630779871209693668828868436424389656260157151658783579705240921308881614587948334311002231175966844685411069086931352017261325426011453338321810312023713460305797658968793144416824176965550991861030246541747317838047054525095364519366081511208385755461406475811578311142583280112711935385907488616759957610333759932894614349071780871240255728496550101461891174847190284797114285019521174709324453868792033567790558859894861495651520590357617299476066353669826058594972734176260633390522739944388634384189149979297693856555731103220048657388231969305384212564671942568674610641460668185276709900210858628217354687438913219005578961846050603135128495651064210494594306522957561606710656367289583536132865439637798262975401220014159037428300610480871750238685055129637674957696767318825582764991729958297767132773237642515485826108766288964687419980733523071688097377739876242400294569660338053067318565413617656184200239536217866904581614338454317147366024840715586559965859601000091166955162426884953426303808608804504835448746361361695331336736321993485550791852600694527322982294536451617176079030342891593670961214917608839742483107030175731975384671927491240978554852538315478163297275800675197991812302470631585393590061590832517258446091626436805254624746121296548772211723145007431057272844852558463233507162406653481119705933551208165287545612890670711780403515681388631523690619692103266700472409083725501951086526170343852203855180881129183354869006973306520867242769127975734036947031795245111069177968546568031777191949588623701234180107730782294937123316497585319678730158396064709297461691428718884938143136304257390435828271756314354186433523942205743122277243752593821465821807337984818247352495564953232595188818564590518771213973802684110245674240923125093183715662085852377236525893076184764756229029721043615651282485169380604024226575970637235184860007861813060398866582532152703673362594649078156031276481546773039114929352798182138034658535972672387467630311067696278200813893902520034935402092397259025475560852074361803420541407905149831352478997755223199258965060243989517318583980985754196079115211851403232978371985078973140808049675994189246660811965218328984195461103637553886538884028049506287279176729673704703051626502797550644483175175455077774557448055056115983087862844173588456394068781995904700715157577036602363517991744627480143151160194640030930203751428132979398962299269299664418108716812509803712137566616689661482023380165677476070584353460071354363890434406533009903626948825861199100797149205511495148793342416852468966953943422804197728348490411218285564137973060055500942030138798106645100796944770416164347961002663728067903538280232156008123510378521004710837851921966672811502595174855027973993354055795991023989652703627945775711612480106546036202133066798178882851573217608692887705560428262983930906713645204325031824936936756381715536772397557106230491265538782792855624360472233418908730670390452291553386913792849356614683999105363857606928848885297282359460657503079919175169316922805202572176232841592579487894110488091951405102311839590966534318995351710444741354847899631227191538358720359630421664704516771171078970183233221440441422547285481509445732826188609397549319783292496223626520033751611867251488957519486171046133364302947479879493712875852868355073204736924123779715502101255584634345885319928522537443477864842038010439224311061152134109409394823601512235421339319631031785686670904690166605592638396692883152356584890718978271482633620265412895171374539174465598332813652893275777928510619569527869958865480520217941560371179545460040760529683686712722289609105328968189242224669004907942543593662984606141132180400616119722137170847667535488745821741187698056752847694838991081083752327254838977075712702717051179880078463338907024263582814263156052020908365751818271306842331406164901667362704518429296541797790489569966663821080341487696268289856371583456776340658461044322812905564488414053906429514622281190390039704639210675847874637700341396981077719704783975227544974650183690763611582130092544902834077077784489738318725065489661098320525388080937292346376671684783969842722383649057540106431815582113746636669764723789150984421632661852311448786647360933107230353775291211030900724455117299683618543248969182884322699205030650376162231772634920977412375360116242711116798148996392563579945911541672174561065282079101723413842529040162614770205821207747362159903074753636963362220332609703190563801575888216514437271423691523278828722461524329708051770887145549946206523000855374306996878924302961399093075342820514416978279940544372793398298941471540442866767552280753311220230767579892203341089562965699347239163310876042380638444219803676351044137229705721477905483770238617248839523380552131426010492503811520927112120567339182306326110909059845275097491043037034493889998432584998133980113198818998213861955179542120765437253876670931366313094536828484842451474429658944446563827793484969578792738052350564599067335010320090863105453082921234514952020034904602339000872808390220458145117556278873398081413563694283728566087803854934473162227499928485381974790036512650588643597915246043457895672226676117019584184404982119517854402790407264962530814830039529108034177128086190991051995907707381856933810739248522554068160524667448437401179655493822477090062617847511440337737415697739398069553475188343417231599308022449238957053905882377613607448513455788589352451051308947728599988491463472331463663133769243069507422649749044644928445467308634141180356906505601891504360852283406941843210728640272542240605702085700329149372213785136822489937612237764014144377913154353412130765978539936282356856143012436528548428704358282983983646567627618184471870238898891927775862937152116963163434612961800155368705629422465646865797379402711716851597949849265995575867032705621810618572512653960313291546990008707907449221290586743425480401651239857280781068751584388859803369171699230430465968421140053847859206290557841306260679074882548799901311953447686407498761578064106738521689279405146465291046391345648559423961688108189356008384618446161362702280448427386238338990604141713740664553063833965949502547471579771843510912643231513319464049392331603920331643334823986277572752557371207430733826346036351812593393497701548118511732067334172255749446196564394281226321124298957357545416556317196489159964375166882487529310300231311880243480796830063492085400518765083975615767476830522879348797980838738825679388670237757138840229515407767487049556025059006381474584057318130996341463513885401560106684635715482142804196019592657345880836199558355479728185211802403196505741472290188471731471087886516989510160027633917792122265012066286607597024110472188007082252181885360537287540053064540449955541996006383933867699360318376877853701729162147994397878385677823005116660831966205578900227674067784966517995823833479881972273897925870524094825352836397678977908629732525261465605927208780754541818040465044062163855478425140802358780454632700988144243549976549652049709023558017868786435599129767982688587086410519076538948284021917634838596013547983117993710803969499280942482211259400240068805241403523597979622366993832870821673189280215915743172141418927982522993111895407316278856970830596530076145332449072723215302768592717280474420245630464381767564312304082476772999889878599646759342858126255323035471343830894777307955642171426650380979148429438730691472566950274495281193307137531576495216399212270380610960715976403772558749337148333878403736700417047300993368855512782709660363425246771970764078213917561551687647867106613052742902694648021252501993930314196573860469421761557810101398003949225151695366060857971724000794756178570145393391216623867712999740742694674126752708021472088129759941427008851762001852726219141287837114880521311504301707469032351247888746042459522719290689489577937416892857606898394505173862424066642716272209529013047466708529359603476772155958312032957933897503160805019512123929330855460325496995837806048814753125346844986952569671101392351413621262455046106286212901564895232862881789631546720324412256856966809284306441903783376897871025084606136025475966120015384517781182471447711240593438406961243258602533403765647057609331402784023317880804155611327510482359207003860624123958326880955729246032789674047664349694315398070037610380776572509015380501517562721668949751328650471358477497213686917446161629629804045640806302888136809514963667695707111038286635078068541177088073092196431407930445116750068902102284822726088000531317694113451384919917597866700283597577037493941725199406290698267523545752978869311084510749240970645974158877978838437331283648366566880659242323599878987050189654404180357378217829524659362109066140986672214605464314411302109856959289689134675823480588627258859417085193819830438674879920959460974345018318876194216014790895384294025482301676929920768694461691259880938681296472435207108780307807822403195645482052376075046698895710707356261388987801127513419939134645469808016508033894730919127471356942964378113511334461503628730725614274175283665598505680166054833413205079532535853253998377399862485428429179402853818145484021843185812957635437339770413836517371052961940123364127273611257951205604237215886693646935986617064951587562649589282736600291757415439987381609822941978756732157886743461418448933035567661360081681019222893013207796758041928667167184530289435926784335023713374244167088513413152281954721167362032902434964169468582489321661416624730502590711100202538208974724955599200107614691009733031165494039261251622763281877077870127122346058828100184707464168619106532998279092961005022895714068668329079462045285341070682570752222142369722308308645888207197038487009161558579526137440560474197117383544237655795556870857004775503014536894473602970226895208318235389621203269251340926065653851434330554277316637755926156939935524003365094490602036429364543341763007925584851736373716724954263942813781654901660580336563250766433889339484453524841584170055287294365147668148158728852526676653509853010321765882435851561563309755762270564034691166024254409082815640620372117204188191772473689314578332976723968461613005914027854163385188598211249567689640166699442645309549526393259831409654912013808575873053838097408739808111296745794639812017989824788314031226493483437039717093664869116238459806147962643105579687384285743389813662228906061075301778835399763824681299834290362173021133954866914268106903516275099437274217025328787451510375085255035500548139324111494209195766388177366026059967952424577142280897254804642503821099091077889635569492454950194781420357116609834768978095427712288161012662229660295587492698481834045671805999121819529274404378224982061334555768136228982436078646510710620603229631742583113947323928247133215827217568476373339415909892267756626156631561445021488636558707063421202474958394072595553621098306862086196061585256741011249270913996817265786662327086761083051054374971437170263567703812037819296599132754893559372997954822502464067401201582420770519023439238926765890959122052078031159259956163820760076383799956138388224083723246127837624476232191681174200265091081075414667316586298114349973093761002771019906671616855487147256309939879343853888796870453276382619696748559153548062722964727386679739449190347100072482901410256131627945374104353157657580367392326017813590100758588291055587004959733538295583472243050018212869410092570613462180095281336625747503368207898027401582830381196495241276769099268560552845349446721708228606375585492220182801589897321687861971624332650592043136938780529100877508289324316538388586932727163011202068044549093572338520077710654153218734495348878793503043374463797763880491462379039501269938083046956802373534524841366516848243801850760261163171153155356613918147574330157802101636644567840096756129610491935331626378082042713251258469177251888647010164694789842615621523282748033611344371323077829176105868212491278721760951351725075078203742743849842259055263575930318139878586494032655859869791728108935570811324780188886661504429904968040538193650436447489011811225541606019594415750654453921663348011701839806224861081652853136841949561045113165357009212303019599917341246957976645219136538962812761947887048472105007009108640503033054227269034775409218182750194766338042126968132326311568204051005757749999889803390217546863330341579570823984275314084038908292831370575932350994917663736455658207251867849696290604410534119477566368344930031080281112950365081894256347127061878123233188922256537935157305843090863575497062471835150403193507132625750979948183366008076815768130203040430615834857846760629470757534892991190987928689789969507957733491323720026350564598324045646565289279049319496332587042889576376855129510452166354560049048608969336875767366706307978660573799976982513012578262021368251259117239492661133781553187171495141895217106514010851306928837040577564732031822734073318360590060334405582194085473922931175125539892216233802777812350511324741278480118170100683112718952485249009479013117811878889257657750149414246692190693552356294114610307707240441657443384176225889742388710126313646619150580797601191089710549814551921096336699814789291863265295399070827732039028755784696158750086453037332311228241791611570626377494684693914207482935069670464045464179890098099462282151177051102457114210127545494714867771508863758703166306144444684103848040834136109144005155524481760666249780950382945145585448255462102541986584542048825046869061468927747265281299328714634772120859020455445195072927184186810650872823151594456053003502612861924178556026016536179075678492096467933508281526013532999078067088093575770704286844362466079054707397720672820291965511906239242145339473039955107722470594025368689733905764947694471916077931411729013439155573373394737441186637082497036059873606466674123286011293943080495677989124886574863503916336534450152474136176143336771468166238623055198498214192886120732088413408034619730120674428170364119816355893433156946616083631419230078769931444181386336749831641606625813333814144760981197984648599871266119157522434770369849756897591089153888506490865343800364091689337238622809105510310352683341302168416694942187735455454318494431734801781632752253345127020973087619316538184633729396998148265360701646716951891644103992332403340168866655848919594401605361803995413102927205148888596485803769785844836202887537974531651797410185147045061139575302266875652953233162766287522115110823711754414262717316774255526294520090723305638480208918232451322404590015071107697078866254752736212413571276474077761799026523120890058169929986040422459776618172182174701099958180854384403541790142428251572428210280620600807181494393957557171248962358842883405827062122987451764216781374636202851713099526367101805181105454049189615201346330836816265009550953892048688423110630986958587130703677970708252775683028411512659525794420388489282032724382639147121219810373608344656164669547897025339817686717511310806842609524285774123893998497584995687122019834720050944992696427025430811453045238347946162325755058524967711105789360556213732724145867382661137590226649853855602369274188174336106764003111259673110532280406004024297885565457347846214136525437556559067297945700183929896937912652522539623052855848455270597001890196564595910134426562872013345272569901623434421065943243459325234506739354583955985607875755317343822403458847678537391648747612477962886268028208019227663102552460470962115269566366811148235728947497319363857294853182950988584811144077147645637805781874643947392717173497392247273082797721433422612734282939496212197493505764889048504043762204494063616030891167488296839455404548557581687590901498738969192526432430212260792656132720875034753457718469158639604931092602115315746195385680453523995222229659414557513157279246317673301977786479081479700456917297345573507921201847692431969649224938472673063103016228374396542430764103914634441512389261527987071601379735543372830084640702640119459819967973638543451302296459566678395860515100179443147463912834962916542323229116337893887227226086274260794358401167897508391420106002689316519829039412408136194925777471802098413139680569278125595497215962586020374455648287763373014477664678398873819041331963840573044577965440283532106515217173866880334631889747169439157774215398730553579229154607409753189881879927919857844320654042251784778067415561764869327089412052640830562997428202549155215510268107508694617928419989134202995594882450742148089246127049040957720173701415331574000044970290740697882753288328339109449654037503789515926411574303720519751170304173064519281823470198473852988304659147009817037150199574763133495275616304249511037105524313427347552065773171497759308040177055878946294104852942431040360991618882408479096575832542372195536622297243647245630466648967277713112001914899270976198562199046432192034985959875099970975360261012584818025003164919751468487409750351212457308564140452036598403332867247535456522100613858008164533537159040825666094448626443713309427725170642135858203269186453469259783153481085201555743907894671785532828114657980767179046523607348156964172694394461143846682090388925624189822282319461456700447723872682331233177959353988147944646920958266030270034251420318123541710052461132249249976245992543863480360422365267453612196703176262039633969156074250380164111256593427850721575294939633538095299268776393182189039612643335186754631856346738048542618524533659529346580450767988277355699073886200959004076119885816927862315841808748853293721064345648773778018257155153979602414053137558246528932988557354886723589312035975180727808338779884949324069654850613584194415971727603008480552393473986994816964821472927407425329652621595539410496344020479556289384743675853428176579297229237195888009278936335585263151962605386537957474872518699734458434431942321894659946125286059616939823441143360289645011070764003539046799687880472422567092883120053835112063097106392312600875552468847687004189360050018587021768153876335919790160340999884712062722900533149300158767384856983930126879989952239645675245126887854209787392175213666584260368738137886534255796343152667125605913833013230992985731138331228670693878708411630611342979865556436554628712811799004348844402326419725121653583961259385726232103593807898094609468928997262912303426108542385761476141338800385752070158802441330819977600425097059515242767686930431044277707834227172558743153295447128787386832457898500427678438917868543251808623011517477997368421917813627820384920288526721844949791518585617854185575686365854904796164506085551086425758678291383093211112354823947502556199856168745283153128027395143993305405897675346835075247773962670909846860066554897911367598844351645645558302312748431316466202075023937478263118295150841096201128719940628537413273994632439686586964583636705471419789679865756546629056169012543869973438247375692118497326321197924246260880579233894614079795036875686118200420731862559572417743804052621273999063671180653447318940466464815911773657389217839962384244286534285391090109784229490766632645134257615733370644954612689139174240925896393760129504549305782904761882318492075955588260207944612694404223153982101160561296685430717400778493246305380653376638734517851241441759588504823723463236190930458212324769945708839234113621160432751287815768173010117121797312313142976010859491014856226533344777873361228466291332158574231960102050291434790506812708953200847066642334699103194510191684711533871596257160368049236536637410973417958721756803121955931767261363683949564009417947480129734250040636821540277855662914338977726216956278128476458492855723616313444898622326248000495767607194487121716697999250463837474036145037081512904331591467187179413446858900068271951076750485731966063321593604489221663675710102401546193541142532340200216030238827813261040116281190971169569323456541264378926509126265933745069891404484714055491668487689483885129505793870384727676355076397699567564531898693261871806505052945005595821840780796803725544122562334920094250578289593303919367520447013538719477491930001968609074928533162767694123024583503052333490965600263786019757203938764208117648354524913270946914567261893073778924173266039315362285586207659825043912959945170272179671199128318210467184312514756558158666616620304960311178018768412074278724175923980975563438721627909361794051345300032222574197076720389115868194761753493136527437542307136383357883599795699894492428328180680210306738222444575311772809430506191572961904650975243378785004112871877533170785672294997308019459505686611116065542337096325867539096612016153232331927365169271262563396386338192879157521332017949171614199786843441104516167929267119808522462391741370652949824247312135791683075084587948581140872761662483665259017763481548696742514152454692829709201707212360818259929126986532436230180553470411250416367046072084966427729045874054485416938051141179792021251565297232189163158483451497614790858202775727746443760679648377316706862643217774403472359575067777125930032235482352135074505117644886735765478930139457090307273151538055170485371554010562127604000199709293361989841424499579478065827415762667304138710143032626246682039902123640605746825082220712663658778678703364351139069868499584261626707799054663607782702532429370261691466729987671073399365934703143461130659831022883809010219414590245870351428700442437317024084644815879692830410884730029469490339044240049367296842262286421789694181569532359663588360716845842155802391557881849150035632027538526753865134381383004903300493918469633819984822443798432136715519773877079812025346049815966178105057876601669418207634876087941028418806090692661722418559674987724846998932999495377991157023490389254087007245791240473298819199865327329237532357448328529518607834917332098472701359890005229981711062087258046297798404682233398308319004895760883193825948366222949171649867671644592356873678204803416535912967390793763829023608623590093592658417982219545940898912305841303445288111166178805367238193355821728887635850258395982702996956942750496341265397626025759552549433815804587828921672984315695226665087381342306019144453911511907459624422667079636395997141522469526420505580713288627453661680320626451757844352041940660239800584373712458126942069653970941629446465576915584029121245464660859625593647853603601476894155934317589718516622835018750826974603865374797287141773219150601219731745818138872016193420725023029037936726241708142738752005225133688252147590059544223978743114755146304639606964960524627464102840995146795000637706232133613703779247583970295342115002427468388989343410646569771835466369825058225368106533355098468700917601020955882231601677992819642735603221129583590245826255869050201818394438513205587699428623668896227238670846066117608808789989778440774698742158647600425290861900888088719410135619129088558478736149385625812627791840306295107288002025153275575416176511044677856381259451567127860844607782836410932712036063602255302859305041050772471843651786175250973589055144216107395388781974636930788145069366292383244111715930058825761787322006186846054785167680546588999812843183204267523850209125828200135513564642231865975273900245421428226994174717443706567112554322796916783041978761630692195676414443512829146625993685658765569843587753590682870324363608032336830927570115632186044063842639454105532474675294335886919038079209447702595231346525705255882477723122853617286623130064078203417612143649397855154693956934728760883746861476996131955863764949480680310013214652368725594675217270561262621151252508764373057352934501188306015029899214424126078543082330593117602844462377120076325311300892623749858265119066120696591925368298369394066574237727365052284366093223584051587106254835370533463157127233327392890377336195020815142555230353953095366177905688162071678221806481123803704829138103091120806828392616083689951203309123715111019255766236235513307900631337842949767263720856920562676148983219663648719080523331762639074979222535305532825764354693372065595465553527546114954198405865201718356952951827532879746347834679332011622797446682711810913678958204181013401530561457286573843421171091732832662538019182991690885514138451112502160330856958169627746456074222498916807818632865633958781171592935352037554901652519198102489222168576262101643234378437800741146506686328966392408758104370103361565650581395430971118427605386155969228712349934635371859814110511215644169483181824153116019150680432068701006927609981639450983231631808074605275992141475484745537521940325731796515115881747668424354195297798877722748611004159617501238658089430378040196096500764222045322196539903862407121631480926193079579555278067580218913874415206804045967478215491571106005269239591626930997288339075050419556725772884176640468849279813726751379678712120605390894744841097446242254311748420790950223233691062956228713827105029555271461698443278718428541650952553888987825935669436920663790232055993497860199360632579443808127771420113830090411673231913603603363296728233384988063674085285618241238595420392944526643588053070808142582019459806876565989792324936440448706316472458419421164203545103550977874680589988377604074577131981667640216419367187657299492748172363522846382608800935812962411558600107610489035847255235799946325938365739541588970932463880465677980379983915419442853469201747997432624361672993717494350818018187034891294776296296846848264869656827212766153269135689221948506918491645404167499858664856734635907108109703030420478483580780420218942269578660692537484341841292308379565466101952985321651293792243929101023724422079045356979504567399056329193341787006717272916380695781142823372143103090379025269884643541845079775402905355768471595009751574955890865304835635271480613769882421663097909140858562602657090602188815780612394794546814749696226433636554721726342720167565111678364915310836772765693053529973380426532550759980383580456638302335994366459858916071676206635677103259639871645305155461638047627441005113617237010007703045045611211892330549448677388153430927434190764529925293252015533985845539605113840165928122483829733084317671652121374905776163324103047231283638440203359940569510103106851797808776900120358550740127444526517409745520298063513683302684759734074071016637471577795518968837750853455474269384948092519282938386842266838837358168456411017400491730479078683326740631942236893122881070163733714179951605115253768332754159543082944569748626485486674006556724838790729003695478641153764186480993099097496991907226181390922582578378465006991816986714047617489278549836191593417755733232414841802698168978935733621161465982426388947982182180942965113236410153246799077271277311950527632361786241891124950981268866215984646644501920765018677935190756041808528501505375585858132589298823306073997147074242078605331415359193965173714086264052625496270079508882837608064761094732873429270296791847917613111655229968004244351968471281195700809218979742268610358122209143537710780565692516463585154296301926986669910606378163634789751090002030115079947458034627912876406632017790294687803504637630891026108075417763332828410587030257613518151162846334300642965931088932851726699920841283310424932886651439506648220036382607520227307398125063206319394143413700003749196315325756149976059419863324949962464878741102869508750177489017913635981467758775332446512001116142897690085544621632855936513432984954569751041064685357547158413150115548733987640187799228403325874496187416814735702725696195067015604409408473232351218968810049907378477504772989168625867653205113265788104219760567052350147385629774132714161120574301402420896162788639957386322918710071163366151009143674481019189005123626048795023058629032121217848442480130392849305154871643063800865096227651670826896342698143946860031274951160895896545930489995039623267964995460052013750067238439230014674322204050866641728631320172343472614329932024120450039909827975749472938201770541085034738400540856655530208277769383700867775991237448551154417098132743180864648851890511124665865357465000114481928730319953374610939570215875531979070193750175005452177374773086401168717501452798566573138563131226046485997945471962025877239144729307703989306241639169647719316154482015493173609734042734014537102887759398823195897786110133770052798256371293604120401317519497431435037869446066495013976949170886515419089990179034426845811834934868782160628032254313902004066025276327102454297014363921025558910049025181503588718094097865671458886894852777953164658304088613905597070045276788459698393294861794263494624920891096185306632809699041643628696152689213680856633993353489263246749033736382572083854275384599036162940982206884206840829031754359402838521641862549846843480805317796240243182668656023846956650274978626011047636421894831029522521353177230485061587206369343197063632232551210423873425051115376688268938845124599761679315133640880742214415460066582544207052991061847946428033746002389089744710818294844724731256602161877689249800781939374882553181189898544107102146136257066864705086898629155396072746357890741138321265677674392246483022314387146947987890197161303355501749107390558749127528223979729424022606463938810296217038251739218186230634018434733916137351433912271179534151177078038604982923875211985899059512383414880323097298999885525918455501252413722901392559950625762821219213543930650236927385292687208315266344971715406797405296857220264870320537151757377919811709577250591472530567818127852629675459831514946810461608502455265644930536791925297449048669999381840251501627522908153694599349772308447134899228918729508445674251263232602401128408044940038954339265854058915415375264314332250750417603049656222612998561233472296337075063742140817509748945571873963241494169983215433807652089242854799063827276842187839488678946351063066455286462233614018019695956677763817565536845412295574937783301819353627462627168529668820118791317837196584508702180430220884674906218159750827433906531232762328228956859174970710264195230730456833530789876871981825363206024941020379753814513161163252306084171321227349395889300934087394312095593959748943097450503573439730403434293174308357924180647088429682948102827861442831338996855398663112111418573686382311709331471415550756648350098240464636271661726793128521654098144650031821602969641806964482438816080589344774179242817185376076114910740953238533752460675461269649685438332296233686227527501779903741678453879377196670023730238106494294802726381940169917242895558950455137536336890694556364627647283047824184670816214998500195717917119229172084587168369898700028138934955004485967755651299166493748846006668614438058368470588873957882581177242997903348008340032172489833984140383478115009114937856975965940689071074464273296801146379362324003030363079962192516699867821050913841321064087946784280682253246575138635277822250509232382702549707652818078526281863544009372977520370189085002880859814273076624536466493860889680075178451198442959808257372574832843123334846505306777652443971940051442998313671952074500385152887792148180190768653148912713746121562363045124057989638158705858411209968286416643979440220859614081431427943275962637409220941830689687856104067946029592030714171808092050885051710166170985952065450376732509331983800705788011064652202628868744593164219071086004366201108757765912567941197702390152265198464529882912567915123290753487152980330870292855299691891401777956205048357078038114331756005986625168531172705260080623847407838342770810623581650051278182467239941564581994111217698737691582852834590451308196531205613295469639701751415596498903096276965927554421678320719522477389773345986273892532248469995847941756877380948547265183676570012829148968963704999208959192878483644632310766822460102107730324726931511717834782669642666606897615220535767371025512772582944989664542214963949508975231076138529140492473032409975828281517270188457060515846094354406764994339705622758204263977435751955128877875316255857297980464885906699957644861865111665266108381818785919220202326335056760621096909639699001801791848839194489928425751295825246537203686438316400680705403063778872059388361908469293564978071059159234233258176957641864645682769691728568336701820399032833104099030833944474827117895201548455737211393785526699852799836765108114734875919843143511793103795383089526974585204046054156903859656188923229321514151341116340707345670975276755904036187832858329667884164695804909735015592252822020265271779885373705141383850775444386919496271511587751892637049011608722841471736553382796429736497199215421468804868714459658308537126672434938768524302943343182629095809100547264054544096702778048357370071711888759972309535854544958739346194992955889610962652181002812967417555083144332063988331774305233107327018301142780441510519606039063429760370183063600585055245493385804188043690985903919867626076375451045649806093942035787467122747344226923812512243264122107594865139580131425003459939807918306586799629970149630586147970557973368999812316126383946109778919353753970578061072086653014627549233728314754087912044512215335682381109609322134850433953147357832849773704343044077235260129075733091669292801286570682104613922754909534306370463191607265572852851515882523405885369284172817391609804617366126343125539954564906655114480908280243763396204013237997919809818436212749679140377540939918851235341458934767648900556397243125925760877152425352964263491179440956596965669341943679704287395513235711819409240232171199702293448259793607944635847664200959375835972941884789770493617452619058057112104900025620182240274133240967222302644520401722848122261943133936261283301936187336463729433275144271211116259100543123932216368598462237605406637951876367894912455538248151906409560123853954262549775691451398304224555865937684385942692293660996112615882137734086402266628320748632386972948137179472662350977431539406868630960559161895142321757246761400221555612782428518920466233901637985422823164745291917984772524583329254395598495725768741259430943065847972818934268292957955252531845367352273245066996687516228825076187817131031052725256543522111356782540414584322536467968432622477665307773259185449320926001836157350699206822809597522868364356243486513432522439956587625201772265713293673384424765723793482491896320457652171180449264310530532915586367618587408611119523807867890580988845734570231902981605173605864673618118661148536836928695350154299220004296865580485833379058298731861496058842280557955757307840422389238735942863008747218490921206144010070140308104872615325290976437999926785217582849695609391491382823304081673151036592261916610817514316360741738564571165275157185902192161733246441314493207047515767115785422378912943977578282452686482304389984153929996661670794637300779801746963440602158249810977649948627930146394350854942629798647588297868660053339092057730679237091861873868735989879575146657100076113151098250086517565715655989218858811030392938975116378197261676478404720460844833512752667059881803437648788526911933012831897363621910263311608883231042236876174288956325471342320320008617951690324049050138837741960467774604038931411134760033280379685514365209223991784088273792178080383914894243682784349463433683314915703264344186231866615383314948262557263421022926279586733067892265804195516338238286557021881260108540243781620310045446777290305981835496083716944937809771390315216490117857983320092186548051477929081369015866320204370805525501610782380307495340956895492699171037246467646837973750289839859876324236974263038823077736974808671698363568648944910875987738210731848193728233181455154896794425761576805105970562644520520726614021731353414354657909055732243071541065012537221003633350101315507140552654145515386953231469519980478300706351063871359248595575503630946355577889127824928004958850070190668500253901516141307778253338194814908134444891614226490115532736256662593493951573827694161268853758982331155717631701129755757571448467983516486056914802453373084876824846619677034843594187359957350346473845369267986903169874110574411589429505302013836694670898832273680971612389128799565045866192683062998480650763414054211476844188466756499383803241973123407956767504818208541611808885320602416627903993929046960623701539289796628694990092015483946503979548439370734048327734038028272622663726130271078489008317354217525835973026321729216724505569979804160452056323202693776688249343486405205142611207249238134021578218454365355223609713301234781596980565527840130679893652676650726492434499209375965383812206589265108219598141482879015293932157203268054752505985196707063015404775055023569324987122869757704749570142806449524603600217560830763428182875021408419461125756835626939584074331605431809489513296061196270580533277471461837014407874150616697488390077633187134058291633077466877863402592210517842831100351666653307432167996681863582917530570550755962347648038171716126424334740555968448468358966520394617289632576209252850457170308943116682577129728317126581833131137774810502763072617592661146782313663540101242853839606475375786492313436929891804117196979513397918946041405304560064999013479934378990580314279150645422675415525077974162460894135229861606130914405031856500016143834760313058414865834545399780081173347490830840975838801897937082427133097841011425489875807963428466236068526633149246873437258267511943048195805358894371430680692498146517808452175233286933748607731250523661053420256465174296291939067277792958227263574596206623730661629875679215819600242936452254966374207068028514494946002297910129778133787088271821115019927372324059738051459770285791522812380628087113693362037286989968925723323445492770289907023743221856649436349358792591296161974458309770258771941209457046270996056979116852492728611335123222691392419019272951825511840747864831427556927971005981413969962212536154655563827639823262180896982793099084841681166044547437091565177735618397011389939720091069344792570088157748119281368189117582638308555998981272414607358665700828617650453272449167011733487041052629913133196192513413364874790827152659355493953825957193436078973753340716147755156801328297329111285801566401763786580680795873818260827559929446767575617911929561103495724257480575073048052511260003829610946215432768851707064164891790542995935167749993992285492750286616302323460454213738944843307111290855792633198892694821546349347871422137647885477340774032943978295574545791953024321521657417091163281709384382877616625749303989657533514126464500719440371231415297557385361854436756624025127534148016827113002892781735899088430293911063995284665207161908458828563482398665960452299146213873256110506503872766273926304794880382850327905256928884905520314948208719280373469603425067933198282123165814920818212741958799913757978776949425984309626477910606542306631331651174063577410028898730871570273566920259768296443089184784899117385129080713316513814285282467079503871974258497965975340985181897824319634851030314034535971007393173346253739529596694231233301243258395030452614012401847898940880214438096243056798536747028475128357573457250278193546215195349907290244501387814514800675473692655716256829144662515574701561243276348266199156638516558852777702589975176808005997667771261373213433503895379443460219912790943139679297321036344807182342343427842898456901398817641544593718499449914612388036047614130342382309476214255257266384579095405546470009556844224555356004255875459035010234555621656611211472569056695268249071517299847162122280606074310569677293908144970106835219934031609942414646835307614612731585835710669911311805423351131553011954804580036313898923568389164515889381944248898630303887607514420758227543639117079734711079846905924364648349733736849538036950959980076352422683360089278317530269619486901187742125478484751706146152892702774476407769940076735011914992121900255217091292271552706322412263258673616518273511778115308105695002759500490467628942572324181703442435898101765468625316266108057770582096920374643745036893595079135203845691349896276650355209377224780836634352389715765330782478226959722079937617425623999378184078497380907584230225020117659659872454909709366917963432624183787945493698436304399321948761452372063976798838332770124637842478406341492416818950421772291282481363018268528045151266346083268181111600110829103505868094281209810539459141169339669930617587791671433107205725072838004360549905322635854944638900249177740173633964677578472057245431204608963398755695797418394251934217375155172355414896546515369679233995679444603596653129018721896194394782412461423611998941391459633960213774099663135134001816596889173182529326514792642875947557529535349868908939783269875359244849022836156545983458697009559360230512790817392659723666236571343109578875612537744791256784699641550952758291253652053896734239216085308069780173200442948754408275663134768831313154001826869339937113884938242893660193003173969387746259508026876515302167876793565352958534046395139580815752126777487632332701174689843610079279746752708301405360870519724513693576365775965809419466772615771336407322400390057645113060831185614069838468543006749110078827133192116228350972448187712533286354784693917601810765314233280871039242464061190950896306558518302000720521189569675993751316671034011411892398480730380571291327116153174225304143458436288521261628738541611122711404186400474876868316466724801836166079312058075827465041897901116453868843984359358682716443368833533113727093497777429576991263284439484741270800955914925032586180654735137984266102030308170521403868577251355117829706447780068949780477199280710882206913777295929557487046071451519692828802495578117390302061082482218257696667037485547677424400815852786506480617003013325626891292945216482375834179343491372234335492496865100358399243277158762922104334927097350732791261589049798349268620939456529667244595093347396086831180899385205658108081531758658048288859454632436127434943310147572134954117694452460421719128521109198876003800451567437696420155203406422302370523035063463909349106323348247792797402924114174389053510043657091822628695952135057589386865642958062607918699305527287647852793789953916965230158696376487030064044865547230704889387274891734225750742962052609848578323596946320825572559757317674900650363912616140124026633280574486810836019530642260454941160362040836463639201458985378429689328706396597205114092971766026001025370978580525428375737359985883907206662127504383238782276144882803237664229947782178409478060180964300225336974696062196051284930429212979762379834456767586472302485482801183022636820119765145610195402319222298852164972168068226089087421349834691248884737811637694090192104529304012328533031183645369068836870984269699251197476216875671628459880103558711488746756305773323698388878800187900259349325782138833645297719074888309235180714729819855101929109118683149079190488084645993417307807688060949793543130189009037797494879735455210012336677399869126469597328003570902125487948066147883069487640198183637725747153896649695209017996315458365641497855827035989704626763547480474685396872339267475999566900191077330816819878794297792598773646846430653463442051042562781107805460082775018349923587629202391014727067142424851014199703884941769072443112512555511015540295385010173177749420448603124579620593415333256133332946024974276691552280048538181540132013548102650136642069929762758887439376307710194396124233170293669237362396427671370105628440432657564360416215475776893867726320041824982991208062182823187073414184137672497103069645107260325099665988466562739612940899935924746487935098124583743313429341038825893311016711321361812081746403848835938854941315733701546707575185129289616450170580943708659751281907753233037726705602696686769880976878239608109152175571240792448522779314620367599130317057962283815980154134469659662974966266912497040985265405300383399051867474456073537334333365573765683158286128976743001570405573088881958083374145922017646961668717676460868165647854879128332852824432351418578279478239716570566542315353345632838492895181997213658875811220539038392710331722629275185385701937781902024208350665336704336374746196332225116129879800680580098042833097786128042526062346724214108907189148846778297281017167396712305444137580818997295053443886059271686691740075366108706290503898202670519935864483666710853243947077214616677091726608629260596472516139588234274782416561744950137399168287200803188296901888673420379114646640948086248742069739647328524299421150573883297577574169566851550130867005600699484293353127700475578247032829619686515674076888273521323924768538472541791128183700711934926806821601739891298325137758384929494080444975155136415326722976616346148080179902430601151814618974568052463820070838102619723732814612214301662214898795000377087264113113372577620549165760439012400382971112256915135497576336917002979773219156115602939579558270060302407181157958505291599350953984786468012159743828809382949795709814947037982690199301108865475458040136581897597834188650306059077122057450853563053232136896311150325792437164441292573632387109721305948133263082556236401757454605677934551254653081931696127609307748946623413873918256201170555978824113584317909558972214469966743792473313346108903824728549313752002958057626483882750605962500925524673676882230390359161513422076245700567061460819218273604330218202387127430640908420994376630940140532159279762318929121323864819152136258034355573761302716066198916692168927297150429488564615912624638830516322157082665968129877882030775885963989966090064259609232725067236998812438540827666488575451902370255473286641928772566859040303817988375804443816280725582414796532601803661118718708488239859559768032830870165472379325010160270435888060111801126243990241819774681876010382955403945839088828961151236070130653702878102810750308919818284747737427014450658297734576819789103604135728307620833588497234833992196389763779411850384831627739111110732518998366697673606735853275536941782537894734697537771724987913999148125046088185817872887998742292656224819064665429694666260407586414625113738799400270276660486605116880417719266231496034535331275020853681603612301602234528092121033504850518081675149078128929545846593773156115556953328993453183715502774201369078021589641643282673511452366961538118222511739117754914797718383113670259535861068637589422522817670618421916078098541755732973794337270234103599995473023356155769169821033521723900952863118261399619986113985822914863305479473301009347098484064402538000133823076983301833783734468529286877921828784427851086833999663333546258811655124175595182742556979004222354445480689575274534532447467048914970852733388496626874075583725744490915924038655959624472274535237961971366048013823368393076548921470131513370030722748655417177089802568576149427680543099560968747810081260470969018792836673938223893698320884709209340149711495808775719703778976064681705836351552348057217812861868932941338788837598624177867191568444030916455111633740118881262151444676601651131859497628132335797332385121681941458743189356483358533303196143079647588871152323414771222103597558215943828239173846070035881679941449556038122518723257313651975289496219821389914324284560144903115901669688011207407692338870232200072791556707739700070911246981294798794371713656347052208098652178427514855135850033372523730585713909477795834284150930713078425113189017836165558614995405256776420686214894384598545397269053286692095344197513036935528958597179597867489424731602819233665152800554183734259356271115759687873041746730077839492821108331540880963252961997075670019902834156182896529916700764891478261887443354647756050132466328905076563397547170997896243652197938399781228846565928676132331096204191649410403826074481011974368039268169916295523560683477245388534063959046729410847151230976013277347892468471429271860443038919044687730924027460677956668204115500224649686959928258232045230665426551965194980554250620105296527047065448141100186934763305993023509991753428459522881345703482786160272595267196363461177586266465091869382309990345994739233149889809522507353637011851467312093142442872453912167628394426034681254297058950660338475226717599544595563809602675752845144202389401077410224175345651710165260336109308409435113661264136000876266135668060338223525272969390719886164184634554407411119803862122923727201185188391817595649049304389239672846646001370153597955598229509051662212879827518238761156827136036615717623352028307257254735317562789647050123117970670683423195248336826881326921935416315422991595756398037535544723314199454549789905130089441602192790435701427108600629472625005451417909040489852862173073770983983337901556883740099167251624549227908512765170376849827933906530467602874057547159180824117158590322561843983835404749963809693653331687463532914081811417797372310890129823909861578908187072421783801052394038852959694247694404544601022512544269807577313652934363234689364897855496315047621613382377359863781542951400793612925753949295425109125125489364801210390463075955862622240722855680827544424667889813490592167536155769397739994341197337021213247875719196455798149565903745790279736991229954243398466440425829316173054112072370083826289640163509287128671871989298589874986790031967774376608108012979345476734398583625060200133497040766648583743777542381680366283231347112035023729118496719912212940651474395178565695763006331492577949388453227543619094017036602704583633377348127825653977124511227265730626413320260112048164660265784895296050303773112946522449046900682339540593193797225804449510863612148634079536203590609180427148686751207431555683771752208398408191118376305574646033083591616360859860418360452691329983528337103367153648505784193340441903120432241944107684344878458846738676165751218205081344754345788122596594979435520011075022778459235260110653587990280791726299341704075463650517557275292328897970422389543478073469814390253399873337257694813298471525207346141759869078824773258417431319858786437019504099210640038281082791671457168053015821434157461582602666031526464488327998625813284542664173613805232639411131693140596318143644607199251791227758844581470265577765235784015861229379720914815558836182368284412320603880702046878963957047340911343447810303494416805595008765813947673242951192939310469711951708788285985107781365389129999078668511955473832701544654843930679901777603006920534872118363072199626424932282891568539825316442603457629189911387856219314213454132678140094892048807595059808871417417152899699365649640810734235434762494434141505481329411886771544888677531327081926863040483690966486668485994293736187532620275838198591918896998570099482093658040650177312847111383145498056489016259969058930369980116976109702937492050019671621695205197134479126367247619640949555038234970777068623723817975485683077923893781308002270767293011920616465470764703466964113958751076606215276609453412607937728619875213606714453422611021999473848476780429593401344493925266466383885419325947109576069565783308859962842339753081894550877277191352668875723440590143170611227174936700394550100469033195732038338385058117849411036931359919292734679670187100915271364472652662134800875242978667241606397316289496069336383529529393703552540436796431903502084666791954325692391213610593949919324108702936334717151294254727663469188030567627974447595735485178978464371471329724732309131823913292130778663390386792450490670337190080732672552835844325190979023808629407618494652101088995256287407576759490976670068148950478783482810077220540253919288389625503841103339276959438763818113118991286915147051048492370211592705393858098158545079480306478038591990811919429050090083770518014706719590379991738293684267834435237115224198111518168287547695205688906212666227197440039566303225026679725489792655636075941716226358453119129998230341525181395252584741773682966897721511991532679866439948176234088025182543666552131452317583928435686271178951628077825765806615315945135266604153145964429931243422968667391921226714228497787247271123524805366188196516836382795038255861290721085055502190420005875338193214432636171454245326683027334565433719314834432211612925745989809747183559594188327900296677510626359199387872092356983061845167705754518397984063642242592480716893146361476238178878105435293061130187959114853632568391387517475573128299057778321195732304347228090040219502254618518756419468123747054095258328742468887238523502875382667484661306828750141166658489078841243000478712817589283615861458028812162617528579704237035412641307463838594848377777990341248017973792254979255521307592236314810232085329575073352461254639608813892111886831072097268796013963258143045790066972239072139070446059284250102478069913541126830292153366101422332580593050236065156555680034623612262027459756364890085615661890349515872925632902490436402995634268257849674922786050381170677185427289734420152225422391561581018590365862115660600465679981026463988897197681658289936369201603389935298158835296593212954665797787074417458374413405814911739296192355886159715517196021855996598319129949299213269322809332165897225506523389191559696269858271575332719013798740501085761220713367292415927601980783550528523143317940806077210799037717665364930642233482218192725147583998052353038119698799747340374963760864355778195821456390525047987095257799475223217458575240760038438360016444773758674693063585197573717098386665671667506099816607618182637344862987168618262301650547382481644204691335081140409747547511370904382897845549975256872724407641779050474649857355240960423440950262470580552201793002751137144788678072895729486835811954741446707791311803603214333188350309510883313266829384825594066434835243568546098004852699846246452785584408707297203039710593831200065302976128235003810521936242341406626813978299867499882756957716654414437504730181786641635027058929312965925853053134961703633855740083711553319837691993139918247502094188621769816903752030943901118533592232453527398123374992760249304633321280524104342183580921739585191004735788265866672565975390314673987250335938551249791116063025430671864026455292852666200099295714424833342212750199841450851074637607174453854216704892646939658531453681237806738800215169228186435876775727656331991697363666210859423573677953475542131847761208838347017323306094623263025398197160272178765291140615503068043125604583516239065885192783463710613894433472708619804276912748959669903658131452710883914751355709688544626378622720388552346051393589024233588370114440321552938732528696943254194057713605951725646320364815440429085853078604635697896838998000042929180480790680751966677089334287867111422077187896480462627091553368639516683877352061302732512012848841786896376275259295368252254680125541454423533470461818173970409254666471492574889131918022924082954356660502981066174753187095983601924981426020427858080109894682595765976212850823974622266585636164259719436682870724206978154198441947199958929795737720461652596788102724692068795231874781176473993522709120784725455005334134922630164373923120513939115895659159603148624100125136734188910163780841740043374344136104488248030960060683072446001006256540562441349315530918399940277879086412615943804586783421265142698373634424104706896888605820516249723950049569003354282233932866686003736738273901548895095048248732953142390825369891910845234174731522225493573807582496954592288510105103323133373629084171607751082193185325978119584106875448797961489329380094779999991182876567620929541991686861567682435969147043060441837976343710969582799875979237471031626622458003533522403583218367734833232792585157446331358071971711706592735193053361286833023104573979065883904214998077559085868460291729889712854492092546876016889434748344103565674433272607699858027600352562087880017389508837589319598507411557630395499959190498744050403241920565809831738277611809248111673638625344282969973461525021967584500622553266238690902670503318896078779961118207864831939800296322512072188800121258434166467763695940742202891810765412436804149240040699764892752055636515465064450694764477531263114914114713213517295645123761365346913338305366897496649751744346670088671868240419777107711582868763343706680528088632152838649339859761399241705401591705146766202486034513301180817006456256350986247237801365429617697619348100202343006141986009044636536562032113494672696976641304513696412419091656002392916507388888013806675897756314600404493344813230680480368741421206504848652608130951417691013511531385019582770587509981361306232318298284287245267037011046564323305144407390677295071766522579434930609230478636475867638439713224888545725816977366431255172597332973625722657091037723665110214515705195178349969124175343056091252839348931187950552841596518340201583586154748144939595920582903894751077892606629241267912976163022349020233643079962853608367486492587913072889638615139892330348443392528415729330036809067904918915812018077464983985031930116080854778130188401183188390438314767589114441487537530401045164558891308914091466533477686608763214679879754111776526059502727274239408357774099189061389834916167455086098118165683030500603981330913609354437057243002064073948521533992020468725966089948007333713639958608108389819549409723565508532353095475802789604925527849305365312619486719216408864079703500331180530518056045853071844359805593170671334656840839825896102998290838979386414390423704027502054280136730877707968737914456351421817084378400550690218859008308819830268770140318435692148579517150996514205650832677314981113963277106302275330462391932830435579453652803747470617909191353804709917416025675861075610375634222703247748719030377676443788713430868515741899555059925881112526986434243455523519912290396078062846065192893152802081641529686178802137442836281789788141053364825397895169220354852876694128814867049528547409511557337141663100678157372881360245936300694907087579646411462810087020031831372691796055459031181505357062141263762838842811738068633435119800003108900541926244751029480911491618222282316704783473345177271166610515234268395378087056854973993268946895800593507844972516281743907248685163395994647553213035779915481816706243966121134380149686049595929675608224576731599814778948332878587807199059794277826679327369847910780619716805581972905421852050455762364604472192813321498567885279579420327792044223578453017538670295225744432343512932995885284147629235605856729529087590201415727781574415903971777984102099222923939954862777822125362759694068729033055149236572352050615017816913874317523939055946144628971332608000055376817765789306882663059380998844695642728135901067790541981669926495402734189225645677900685662546553888959216743113853685650295157058037547513241846055634549500977298536977118754960533835765315132280536118594479506474658132996604388437570164792630052399605557905349600580541201524585983517281604736278652352112447108694066495013757877274163313013876825022415699506391839816292582869113003979832384861604026409807326569068949400114136945947439184303941032440147940209123415684358519464024276816481308204073687418425479385282573966925403990697657945546303237966565461881878425976484893268830880092952557996214978544596709069911660879140853642932670228588529267944617119238904539025670598990107372228336659133089684047017789123612149817420252379251297603870385798450411097930287560433061710994483275373409344425800848881542897080767399641738348171501991267770136061217831449540544460695176504763213855669228144144360377081882492328606038963723586125371937389288359448527200261988195234908535023299466489427850028427207596614971536057537709074363049081805787447980046127486160966623319145701601397804166296554264211694559042324037280637309607505366855974807660159998927463770295247887742576441712777193754878796413997918664191689753021147197549840294762364357446448094889689941530945687732742365575725704082734314124354713657187769747158797741350142071892289938099959896142282820721801884819368084931865469827897508094013330417438198617283674910727337111345611830795130096051315875178855449920386972433775791255477946816739201041591200111082164605551758306653171493952406463711176441635921120735356067296432047567981342394306742152042289178947745673626857704674338864164468762180713970620645585526579728367460567001692172301333948024530563221494611923016080475858514072354813706954088180429501397065679781286134837178594652008363865769605162564444813886439818759363009731813509647316908546127210721434869832611536135160922891066336635416007531778237971812781643351098795833165876423040324458216374557903314076515484215123682536166699101679278813833092036854481049152125038604072800066877881100131834313232053298632217949084122113441630474400412947667675489769739181822790276432868066310816069545857921838677028269517001449906244885337501558885727675452482589476178434805413991665862877726675354417001683857575162609783974396285318667178808792489232232355821623069868301307758227509911366819649206122211894157965843512109112120338921801607379244529925836434800713951254449879447164426110395640596420341004683788306449315162409021676977592012815608706608085958820873976911428593884157388997839875651414713270120284753369584224356893238748830663786766873579155393321096812927389517550817677773149067344384725271786286533549067669944729731303935394033501603977268349000890039679827419450752689088150134936531929586352107776148952483826662933421947062007675599827013658952614747920929279752198022999725673363316072852580391036051069718284892916090330375361653701000339448831043241907095583847924224409052156969386199567481582194712809851926297654886520232628529820010773290148823518476755830018798655236837484129979381404752847728116190782992881867768048327683787225105241212412020070807797440193287090306709148161291275637624819634113947782446871370920784774294351776358595839172771509508330860462247344241293473834978344407762960558421341912534002345355218350154470067934813855126919893026168672053446612408557064662452958509448027252717741084223819623648762643102928521582067257610435662911296864847607103049318425584381887617762693234884678571264475159300598645664314056246793582165826719681310668833008166180024469479979648026402185017531891250097672176323795980827213155375429139685795431026111561975690434888889686571355884142569465089889193202068549487207805967242706857666839249537743475869603586270583121711939162259333344416766491600597074463898868195998786812115937956823435027393241323071756725500324454376400030681468812052791285765859445106206228725191363640969127691002703074760126650235625043750061614416810876861720557454043616601178087818150808691711661978133526547472394706208140897445026806381014649635209286084460419525151088360407673045356697798611010392997882642715690967969850361023897235183405369327477453854192427570558344864803200787307566121634834285091375078982557142260960018254982972965317541991383826985688040495989796782241001581279849152921355462766688414931965280700620272940342008191244245823035068645321625770031060452776024398417025060668128847816787908975890277261152268595300786096774483713993330386592961182611373221771492275004950379883462066125563931465540130458132591194837123775370166533266285185600403084402564597828326029411664758128420837424709114873009761853415580972295222120377620940541654125014102329410261542158529827202875650821858437532489636972123741480262345069044377804505548756822407166566549507428494716320445673199439774762488472180497083107998133143472245806214570442484067663808026793175372778063344427180033540608524359039863580314908088352543723973827481625002821517582077652103893639927187517178872305964831761761529623141369751339275319941857109738014063414862067121900000269643369729248550759185766520692453378167851861839378395613490428332252546548744511500160216193379483369802969102239896410531090175352104052095239857969039841299647471851197405538366217851193851015057858343475417407776413999657743678406418273128034720302326929150176052606303222168832509232802109073289191776928347560372695077336980120566820710920452139749587732400692193788205125629774693736858809800863334863166842681641323036465252169624065397331402201126590076525358637582805680346529446555075915411600595390422231007251475866673651681278596401435427647842533167452175391537536515252027762635272933049425570459868363046059810519879944116699358079747258632986957075757775472578317594905091002184335017652408628829353570586264352264436737967289115092108291453912252092141598701053988600478192046108154293346240314970738511786901297438725367430526414340363796331803671834737203225377557827908872555905236145939503188973463812709542983569219309778294732469671973918545271111364624884753306640427793709751608764303524108515156567330147770721771786550218188251856819608836955676233863507812560844554075671781627248353470410966652541722744909150539643377124559447989320843852847611627157302430302103239001729802945336597752887645277075945572799894222684173348083543284156959048685002695829535847497865802889200899597794123385536187307323297827971300434898950293534164695035858067242981436927581279993980190728145339503781373512727616015826910770199974512703158533413803412398224367640627755108520388366710620116315422633178551583662376541455623083016930318814116899444581885695810334536195463727930830821268042500126909482044313402104231353057559974904937753043558444526442617659307887599538693273929834760959938131606031139409157800221609699837790062655418427747025787397342371300199068622069536146041725472225050240207923495368162178428598807378851332417128696318239124518012570963134083895474390850876902745009357106517614626348322929413197977195262868133229588702578564223325146532947466947078908412291449247707019962060966905466429454804404855833610361754698395707816861311577787679810277461039183730499038552799750297155784145085475407142981377311093098660964308988023633360858531144930557867432216828387873347789785467564864882206449808733432759756108563808421852955414325184996137347782210980142518969850805907303392077913250074370386065340621882075132521003198808802394906321555442812392917657180523898281942172762931422439523876859536549892605831735968631156974613162211409838473623569937830035208485916314417282744449587511286552679694573885117360163099558126009272508396624844079171309898047203418178176954102303846269135019708515112198891912359713821044995769381551762374167230232787667598961115591967012557682167598629483980619310895085293701815683743394803798396489957380404313350676607894752257052761918632028761413720646741462452065032517451015787568236341657032033078974777797397125151509519319918128384429135244164295081740568488079189928930486383079002264934313021266893252497515889524056033985782348971234420838067681832253486942552492500310113148700185090668513345481427817769427831605483627291343203470030547406408724448170434789320495076171887324345258945041284299821428644823615816012975815970761465521395861978114746313053322101330927732198123861656234042697210112020337677582319002921075976007622077428222539755500296596889795384422098494492578365660603124180886680105487773246844212281925707204974353405341286102805177009190395684279245129055047087361436526493725617217388160115098540461005583767246291114715611704420257468043135881570696718513691644973938163720273178439680705002812945460586760268478328042737507222898357144004046762091911425035136937186509652816564454076266745297845520735760315064110130100311440399957377391377950983010833076785825629033405693335232447613030528022860093392653904757041079107252774437788963038248972029484231483638041412327137808347493386485653131892418770765715341137852408459122635851677997164777074518881520336579395450951162432245091877313307376725318519232481689485924281396566614133457645506862752723734497590805251996064608723463034341864291705277340245550644815236316932011012198458422356874014698942518388681089271599162227442544832957017834310457982564388078860509176180719628663710490825181568310821833434138643355546876315759482530610550620335832275885652217189471434268168312348996089759841690471687257980267562830309697349780973017201543259335232404797244204958478689400455296222267170627899733794251274257086548499386839662687502218654891503784801293374214531640776356974879114957032659584135101053205036732553103829577196925198598404318535213455948532046469021476452096604055817979021217496970452348957393470948636109489613577668539434997372589123301124045300837706469147202001637200356722620640032194389590294254968378317621287860247912473505564463897392733173250240950809550725531730502627379946454992954870087910764452616724519432033692750238575088979171250831827765122021876912515514340346492989830628562276187504163263378465803502938534290546807424227056332337408031826504981129638199347737938085696874694341008164299955422797171168390188780813421474003108019295284773684711289878276844137424425698829235299725404212233127534541636543259823443833096044582685358043850210159413585881167013818544892842514770073966662572026078148378216174522847081304079367308798672503584307068602104881785280491264852389711375970554360929476216698894322532649826154607662659182534991858804418137632604273890984511602144680202611257035157950888277638921809177346217954804745524290940244026550628287849116679251989586286484288112476218578803704654745407171539030827543929562879508976123546655804246781548056725298651032098197902518766466382154876877666865629038366141444518674253162114043370137171069408934710370882916589900529135976714768742249316618184028206899570563128201576959419880892941082314209732506051436463760822156634818022231547522920379857218504049774976204070667295712851637325015929013455355875434271917334523403884574142542092545704900124051400174589262035149092710593413006019162658407868071679540733483059934483871210538408933279302293970515294142783508221945812556318885584471400743309288923032560063858033332275921237506797576000929472394609441603534971975472049494975090291798891320433027907021927710419675231224665050907914021022462316274530437347206953420734267884778961015394784341675688453334605658278979576693344132445765790547433843618575212106294639820119682823082130089409280932577333689163282663709298789281359860640035298132767338357781914401902210616560991237081792376157418119292092677488489193930261602324224290640156127658428605478225496959177154320872180889199960111638586523159761106547930233643741861923654372982159937423469490477409062044804279102904930524718335036402674862696905996017359291185789841989671251628199241852123985774881262683275724990112914115860390102445658483929982908284802053273748567421086566991171689396336290961824391992607773633219584443961898118412275042328027052618644390019941776787266723589000811855526538081421216515681434515397684276805727211680997025261914775042561023205894526284818468905749445443743431176259629815040576978650864608663225550501728149052160430480876045927718775801546732320488023957923015059737511279392967656456297810806804430503820836576925098832376208120099694149784362763655096500521245872044834992983926246074167111077089365213583471084217379006289122322286296607482544544913362776731850863018706038992511459403104104764358539222869756588359244981845211668450759254282005927908327473278204965574026277798468553310492570199390689338648487844822741551337960392885677997749084301172211893806656121872533803222100854825453370250404717847579820775159941554804878581180257859864220760731337485682021558860355420540119782962283955683559199103728715121926243701842389185206939389592618194444017184496078427279641148511386280933975852633595119342913070432753454453303207986695254058592488844456160824279249206835137628594166001453647825053747554662986302798687756149780281110380624308778174136353406572701694968747137524555861485430552091522717130720142538797156165385829003121133444096706492060147926928495063398890851177634606958959641210399913778235137705270925425009496441061422714076282047534914917081379098388527413274966173251417396104677244959681743959147799942232124399583170497718732087177385977148676215934257292594729874976378074850354490302318946976860927688082610794640531850765109913984995214270912503717691132568288692841431902163618503814701286264319714372281466594704403219120923883367728143500748529413008484970154122285459756072080664380647359270338005951717676591007647031638639050966927016211610400399317434389635966105450652464519124953141901658525020206908309538465454324637043004096986349865856208478811498849831289963448669566568442136127078367542291829647761200477922991224290554609746443920706073534291450627414024065228804473047688674449923348935579690544729989269234014363220793037516127726703239806251228562927893826119357751021778625514813356507102953597845747637116898350516525144237242580147894437611319206501910500836881242016953645808133281601568083020343954946847282366375264378615779399170328511596040907160163661324704446948614184655467585704798394767298896295566459342183340547302474073767106269726155060888079269651003296069584565310607903146457237588829003605393908587628091941897500278200249147905770332043752153201294416064670417650924048103350593808898376810610887225866098361586668342651298375520120219141183579627087391512315654339064429704325236303774376098870122850459218151712245952833292316629499367391453250463624192708713109627205307089221969494048538399245200975579165834406187886027555441849391249353774534114367459599820822278683818970013831779604666584646857535810737304407396182973550117325053844849291835291785424459192904433528874597334127498233476926021397826528762678614416295781183775321613400504783456827378640645622894281096595140548180448238641808105298099077905819494307968040952510164288482478270618080751465549609261611794192253777136741697041978795398200528614207435085022197898889170007565681226469612682000838858444064945946378386854820467812274565998727547896162762816943581448475961801191704380286459736048522511202331593877856887080480768356093727660279089253188014952608992447092878038314365152349088338925259835387949780605164758015154108282602114818229194590933191410615494600113583264810595305044779328870199402724072165376676028519721991590253474929963622071231630960500904638836617690038718844445377807111061618063540633417809446557570671196924985475808777118966302125202201497512372557341333065939301790385290821482377682549864719844679386608954664863286491376820522889086162616574247563978408376650945969813254502004827535199112858765609263998612140366623032288294009832832927629712845383622902230730207640314968648865551552372234273572259735685545873375128317271058261340221749107573726148886937247239349351133382256878033622176499069471262861691532582399419001399084126276326352641799598023471344723160542409011500793856188964294174636507734739200495016949095467230420507532918820539871720023988099363074292266793398380374766885978853994534511866353869862655549257016042724863915206855840821924247118856970183367286529190388438340822422733528893730890045085637476711665890932151496678906217454197111387313640725939608569557380589014713556532597172430650611721903214197108337306442068783713008750122442874852800403852276259396427433024804810821444224752525206237481844586604159048544997301649521065436260680930086884402837239462726513778273842281697134055202421645582719057605682009790537094730571836328812752531998772620720566754821996243631135770801582706300472553282969511087915063866429845172676732524803606188106024291721616154040394275112983380222055274838170750138360840957700537491451487582544529604129514740563033390468602385245977228558915035339678544959770327098996964980352690282915665991920298645447297879908821411189695528402539627350980291856932058056789170504796982342423231165826740761506799525179808247162678542524381569828227365598972066628159924598402135126929685195782825622120874656168837499528565395957533314046368562547918839692938997456406725918109449892222367629020528670981943730473660334789784404346361253306565050025509476452483857560308706227963120331745839770572151408245045184970473496611974094005470751890898284700249344890387180942186480903366990910589106632927710611164115051110001083630476501660176894297122463503946888301986278305388508800126055974760259946496392410222639856180758253766872569434876725238250132612967356959774902463044461795725290031190120247297876243322312308139673635055177671528072842083466179620295892793644793308494738557835157098059716755801180299453851338697899042551098528259688619684595680268738408009910994154116570421965110542029936897972795625771066759925429495213082690568222114148958910902351988147193391918077143076983884153143716618122649503600119288147657341327152599494501632782146010714462114572580564412285360420388225038754637422864536432542214725458552547455064305053147471751409125296627178962887611760024480622833175319746637970441051770351413007963423594363222632131466582214144315193236089005251253409304786272602192831304671743498257591437368920239379356081432436973519805629166709219179395380746290445396372836069571012700753436920756742835579162802132803379096723316022369588779189421517313572832441537257315237843004867691954638780874228977029087228712702253322401262352077650374830220746885396942400022936069396494790045235846715917093478021242237597285106600391859656289281403003927202242471596107309801963093893188168551937823657334069905027346799800866130996073369810380289696634866020279637334090152075413046268830201026111829619077919075575343363875198194660267994895709241674743693246207580611143403981153107571041579144280380898027354291838232825557424045173513131825088739290739749164240281671603185084628789503675096025448081622108363962549423967756117542248014900550961883578490473374295688225695324390121909764204256728787009810017356924756194678317791845075574489304920526491371578161375955313509474582892369278873575621131116834610213752021327844262460861495897844473123740349448911827763816077258574198070205292188473653491710577557455819447266898225739540002734732676602919995899995454746845810994540503272286953629617162521721104571295533323846085045365946001318802739173477485331594254582298866077929181756624922160256846813887767792763371694644653523372771812416063875339229209089640390261148853720876313508831408230322383511928224004630426022200164527380980368694905193486114202098921804850934503510333075070448062334799974070264059554904239860555334908443961737372526917660650674550524501778752485829163395021939978889865023265673292629840295497665938201573329040012339159891201071715793903567893846177852098459796024281079869094501365720152242880554848451079874062780289288080589936048873939972931698917107825632716208959641609199856850684948077039773397165256247810590897079292483776591424171718188243839326720561756709764683132165961908208349647957128768892210328525202411693057107228016591079688725860253303061513512613863215810437213771684353396568445223858973969976174202627266284095611305765020007686880162552173482069394381412159283554023505137495751289017084162162492208978422394286960149342744554251539136026241094182624279670327203056671396825307932478739649795257088726056381078554694691723181784975601118993669280078224252744693140684721997949090048140533722560011163715441992232146642348727111646854724754393735213080830192649539281934292389469202544830324193976325108325584136595524397713823799390540571125772603765464306709776409911683864737744402132142277499343983771624465668871503128535517526447744258020935138495409895194387604518908266029091036866531360739510929436462367682919581947976429147797235087676974921551229117312208121852080504718507699166074507313712645588793807791851699937628864082976248478305725002030683665873627873069058304721038206657617657318893656638319107783185787983211663986328470956523962026031243150245786838637531164993136645701737904360989523403804483238433270617000773677824805987685069986580429910340202309707361184523485669047687103501839657519575694493212203458352228684533138565676721428612553442508458827397002444728030916304599183677044488584616425351485690632268026561927279471078832273320517691510265890500148422821506202483733275446294307819068320072350860699502190212061538251834201478137551639435458226652527766557295223478470746443898212094992645443245595602924357919208622342733745514921364800110233781192871040692259360458423709851988872428181727052250578275036041107985244572497661356084200067177720206848631384751350129284793596969282867510531860389284825368300418721134747055678349032611887030945658923691688173532762896610127637369865665895379413579629733136822187091574947920874309031468819267678226829536094356855524509273929631702964515323706877926916284760788359336490342181554530265342696455263213540846627552887148012330966919664833049329473616999852644936324617945994720015156873814921892199894965160727286730084012069006263259548507836187343738200549687603028184609522280823350980685656653707805295833960717381191757217954220625103428697366685042363481780072279539660455567430912289012659997002290261605140059658679195976927158498954450424877846675835434554896630606320534391810686741738092252140745615296663474536008709575300417985615455108924872678382389432799025291737910708338358169806550767189271842144266578408041300125112409019256978133921358080505690864424932018317293642071312556108775818553832685211927724176047848013535211542682793859621043679116084172943092442314369470197385875843777766415237074107719777944918290604269999751500832981182071007241577549964215162556499441076075189461323199007136102901922800331384112496347341276329620806252941620206130607847185906120690785135355908383764431070162053611754175704332742856713873311560117610863293073205592138999985522303674827757657430621681737234476455763151249361544748712373694676447858451202251492066334070673896419801948914167279869121174886676675500951512461868779386168035578227507053861774085167881751531794102564914964918074251012169214432125747537969743670260767925698615928420321868912503416526956172469046384064681078568738131874247281729120707821794912851455190138839839604681470398802429833793818113904990199610887366438263873564207843986175936105364137529026927370858251629157045321525358205015786026026911857963984311411847090781741017711249597730904691361662299732191866814558559157786198169171420370757199049087240914480181385301514034633767723566536898656403696431832592453780396182528723416730716692312735349640913924937321119969088033536256387032765262362644743051298850561838044049754386958154283677630147096271240352390040541393984757771497466024389947832620578078144884035973381160038836073979087005098066413001419920927353350681726847778769391957700355672362775489891916249120048599345897609838855645136501796268723185010819607399188431774634671962898435636654624064345950113020006320400393537753256455312368302832407951835437333758086149668179184722618619438437167844501581267585828695927877801473815249989109286035706141106007819487068590932450091361705530583125980225198978881202964740257269156828281002976995189668211093193593596376146972976732030136273699621169519705341591448913378296424327585374757090195586553691752140174287657083906504977532375273777229337313606341657376595025414181690043782865052430316263183670112052319847978217540746003683548265337509405470051969962474568819545775439280977265089477134405051153238787976825187662678145688934175319295210756028903019253881403272686474178129138276244391336268214833705378120554317311869094928223604116480930549965455521233465530491402161957508343706848006877972995059759085538569054290201778221642136323393668802537986776629642716157802809185587880382903810017656426636739675203772896139629715253126311560593481646754210475786838572177451914089898438542115747950979599021063058560092359440698265298754015676947176094196445570193774053179852471951603923277493417816762874375751506047855324625550920958446589946553019370483249678819179382580921727904693617994204380421729210241973223534826048997959259747200926572177891937475061731613200022874025555152114931846728906167263848320745012004133426036195005082275258749358303061909173355150539624573049340878092864100831074809895652366634600047817779859905233135715472934605903115703684982422317031548298871437799847337873558884458402915725640108094048204453557837322953437183544875076708781880947541235407511205808350971676038090893613380643219822437466953834400503587259033686084408654301154006427621457017671835756153282606416303641704278023132127003623245504009042741127301174499490292447574345005614339980298994734347815721038629267327326265948726799207036148137746481581454359612617714438026317572282728551241971307036271746901318788819133099623865334355870134186269543920748216863974772993955363679406117633546667654494281587716298537403930820416948891872959015926100134907864288110873223843008736226870901287412410845913460466114394042303629677569412375459261930586084293850169675601981697254699794480820168135290374608190685091742922054889593570919242531710128772012081321419908851304593178782378986794824650212684933661000079444867952502989868183857711628393452751888140192003855267598921338817693758410830144112894232440040744197406987278851307550971133634636246416829323491766934339745903254870998536228928179189698111665805242628748169721933915655555810305282076175908265615936293665366930601321697045817868222881173799171272003257305513388193980213963231218631641058698881014818881492564131642326548370742551665107883530176211050370493318392359499551348798714292486569476482039202321812191076130311356622844290599491301835562759346771477219767972695469178772911051177761735242638546612431354811100140898621737358803954503085118536268812554201150420950991039483591794108521756894405921236339998693416780744894380614504702321898874034794881720212340720382911198569987237889177587690924982217310189766810774444342304846016381924616581019324880574132537276461546761578262755545240660092836889503584440329917429590498688842728924906510903364033264702076482154404181104619307177904847030530731302809261792578108531073858791602658963774511634590648889304024273546177639655112781329330372540105831370976281217415661764037763235549531646013087580993542416525694317045328543302479140176454368072306599072076001009542071452401564220077776215085612167422340760458405132566680677002679660058066507866712522371321610591863982760899756215760219392865878405356450961951868542031934975596120787320131642116881031718678589079234010490415928111796581491892779714174816632887668991906954284392331676792757698488657321764972999696259843349446662405871781303725010482237303908517703689266558616941715600984191353125547766435582022056549313847683254137437952752863191608510088768612988737905509860180364641469063638310657074559034523300043095288022891899851166491707128290854309987534924237663724648259558596656512923832557613638556486674033810320952614157390704946039921823219864592004286774571505864046474341043134924994433011012490094942654629699494228315894377353457589169956085641669754464797805774445854294994335812069897627484122693948247531056190778222461250379958922255401578982244725679452801430672875088945946689415247487420799884349502524898579029325538465027009087950723303294450417374214144715036805083137683746489932361025414421743382678914403310136455213688130495390784063902722259448218816302858208661361704473490207444326953737477304422923173595941345077999993192907693512783786791527550818397547342125254348110324130578116904339777324482726757852672844736970686865109804863181578295690653479080756491177375824444077839214891236127866518711568129478251166459840242851545659738570297828662316599155480320597888844044834371990798874340735314238126028395486940775350888577048871120623878538321425272608434556799350000442447114960947762285351308114775663227681250109702138247172490854789637166608840503676278044344674535501967971964974343384114985821300055781984900052327901591151587394093050316635832532510785963101480585080759534252242142789813578529910127813562470195661952882461709088603407696520958244151261003118693274446914312811601283956634685264558748028464358411713964200727219768085624615800663649923665049321616919900516759697833669353939956876131584835788480213770085749730602688885652017333328770386328025051750228064213614612845414524844218605161293933588398068826094272705181750055985364250709340542413961207057978369402011848798706372474937979281686496983728551333613486589591575681112317568200737170099382264023741459522991037028093480541581856069751860355185924797009087311369398938394965450193396057331757968931767413152826321882536732745569212203600939426701329466576401795272735187849484339881958089283834825216925784443433203945702059674890800488626536892077351617959552255130985214971439273310597766119856518231079575498766930232969870213059909444288907451665399978648275605640091672312928839579396636096449472121979945768058866168990868576618547642122384318888045184900609258637029020632595315099836747485760610082563704872539407532792453465351204634159928800837662811112376091863048189495418236019892493192241557677295719635227693739178481802456649250977347958941799897742240704509256432525306075664489975351316610494203034121206976307244093116738108671321964312316611589573735243223241725839967854124594010850458256451634648553742561269834948724512909668190885013735571644171789745076427163487821644787871949968147505264345522748917616810861562871418287468921181742080073071703646182681186941727112080499072103609375367882330139749510283218469580670007588635686288115894436296529460025920454064218935294793213711505899296215576903880255049736845029189573957402618792770132665508029031642304846609354279165166652168047765202653141817353135317527675451050767546276867371281647893556255653257614159196521037029519364846805669686921973481600664597073809196117794562802661716919303929010228385174127629965936609531836041953951616064339978638305929456247770030331351292411821159341093558212912539346390258036595408408755309880830903717312170305215078154590771480769480770442852722290824052372301088838842064268755589641850144941185264166318199913284375847484998447754045045702723172751963904641006849225604463061000781321345324569349641712956030872652668726042633390756307704226686442685342627279446097122124098507458692153118522107422987024870877623050960893969201193917539097225786724990101676698698591961470805424013479085018341680128093546027655306883721307455208879561142510269230760949935521755238283305578394581171178814442435895568107867192640341336187425220544667483407660136514024103632808213673329104639896313492718093243005822212263823865030773600073487718816641103694223250522216076573028524561923450594455914386010820917859397491731255068302819630616148493229621291354400001731106944862218542537707127604172728649384175058393143047507345888168567259739588417497101530067518748623471372373713946894769382668920816548997856415707210884974170365189119594178226409616628309211179025859913291827025839426233667551237641374537956125333312428222882874266238742727760268262687701962657656065430663000345281017113546359259717520632004599539786361549390522819163503205966851994158959377172024024443407854918890168180203041259791548266555489266619366653040329818054412197564650704957063218220855876918454478158023784346702977601015258210261463144140919002748758843579479250336696385663076699863647326552205083371862205942219064465756673719558855629963254314057897096938582629974515962977026438124000181218360448724948301772095910205640442367857520031390359952453666041894811198738194079423405991668517947115651465799486540484410177252090864111058147090381420961496749595109242699400439994044087023594846391766243664128564525716859199602427668142803754773700478774146253928937627473918823010889877424349672096954135737226421545603887255304958254725551848931347999890499481536533487045025764871327096614543340613252027328737283075195267498449560107160836539883598367703114325343314988722377025611039039119139318497388421692420101289758285596875185251221200042339174518083671234811656262600254154673330230327018771330700539415349802028628566377696691525059942580414677711260095023957592288801620351080019631931786531049852234148733190679863516004486052935301387864502192716947868925234114674967703160611110994267672622679600503151884622732610684965252275741310247530504571536562276726613772250283482403209951503689309731611556971650429402939541513016126436226939784103817196050637046111541306597847076271228302950742367262595772100500683950491397473811024518612500082295979868973325605540387474656950186607359851682297289628703945484826869305467607832838857172040608343268430912338778633250902073702096564237299772144588307721470229026753483620116051233461146641234730199125048546616035773180566537415300933061785294623244560335098374264021395449936648940108694243823252507650127489715817455827550766766465496926568664065144886201420984470932058163680516802281020854434275966472122069183025098642267830497627353583901769948603181880346006900527253144348888722195640502104529324754387693228859825169921971372256860704554784072524613637440324705761276465339402449471503829183306356084639114227453578662989005443282725368782972661195854179983628969133197868311479081928052365420176222866838432095578574253151857584491074258695136692966129095420882197700999689743570213811574261496713209951678534485661957731416757285499493767656529575337315599046379384484105901997240261013397988775364471004512202397417374238529265843165023159647277928637865111721070080856727249869072761482605408274002879770750563289606197825939503736353052759399016364754302924212889132986662649779159965790558372941762300423109914475002696056773765427481316905208223681595560078725020431187655233108980828073154541823266200454433726672266920407734757333876823962546495304426010159660012720224451722139954485410350986360684838157276244415228115917322317724870270091436098996293481598583430541615395601165529014560520503546905327288047993283926376388003358254792718056799860152617492100181351932804875516975377215719248297710618520160942168724466138382237291822642369636470856311808342278721996646255050232076161082325848196839041811399304525660582793933788819873611304253184148109043904654253317217520571462499097694552796452497124236675501090185896668575675081479415371561794380661034101654520732024261283882687648789269869804920450610117294702115584059974354396618916108507697282596074511124907395501128183876434306546356755100842351515710540379315351288908824348282358892962827521360785973902430043187768701808986569491800120134473927177900164583213202090285720647603701152539666234391055090398418206832893208313991914054895002797887526072951625626704141470813593909762335012820568396280826125948517976222257040180812709750616296583571426184313033273193641687042890596845049743215866533139994447106802566577565659041292064826893262231646529286423013627172143649116731725875041124961227146043371415777848358315041353998290312908503359922529347958688903911485622506223261615407914142513777764111975262575165373033562418399644689169945472340527709350806360303998314448837481326828767265162562267744865697203017452656623381566766811491279528833527126973998425596218624032157034486247680836134494475243521931937423909125431718010843394722344446160184542636343810822496750117977105784030825939782904473314955439156486087036849174386580211827496208570781371578037922801541957529409276168962368017526107019642498134739325749994356010539055674820461220492781264429118809384243962092361680746873262679450332070085725875964657393381143574955529315156732915875421585802281516806240277853119303105868283076933934836376481939041303344974659657708325897598051112121603888097815891815766345403892866336370831613517153548319587504064309656625117974469422641258108202417612787803920102012291031575620966049079821416829359375495651213612334702478637017013118921222299526060284202797774110658576958571088825230298655802837707249532117435589622439512049691133391673918358576254572438985595361987979927633973371586899026141620896226726034123502008826330422112074868940665044951682320951722414459194283776879221077354084828781356876511418912900418789325503784748529714206074109627367936780572845264691594078481540909189354198900003596044700199398721922714017671008824440150604369262866634656291494596114427627905214084342532985155096360803086590757169632082472717716696816468297228991108038573239458323357278303054616003487223133517599008588810756509672525895686976469177137830369502911595846430677607816024979874672308342768542551596328242480505910366907062610994346544205515896123782684333093864969867440543653956344254746788364527717993091936721041601449682287108893656802426529162443332932883391207521562040669951017834955205216623490975396129459676969274550040776078113410753948782237554205765664587948932384273573807018840713897326980026556469432586458317608080928091989098160096504565286708386637971205063223860883937954381540354577121742264680140488294531209181775745724154944404872415788747510818318703235161695009259115518856843491632107608317108353212158703469458932374416606999625029654341632245511371076717973881571317506766688789668661466773574058312438335324165525353679141544286798110042466625199684970139587334277273373796429094460631880223528860401260922685308160525968990333455838266749952900481498032752890164175041816807300076700477923045804519540594113974064815916493011685630980457573463356570109992379100114024251708316301047770420402837668520620188450787269354907500242458517954004568301360776248606789721582151473649417095878141504502954539405642327435847489604783036876407379576781574629058275634928205685285647387862793859919920245293244297802645836833816767786300373552664170316447610239512242334840357294189696194118343800266734504554591237374604267895560547123685159857285995187914286377213542332205199418575072854065621984108804545412744980189599412367308867301858749507167297748186443764261104173025731359308021670920666794011539182643015248610563910160678067337627313252958494834748695848924497436700953992576104287929687501680472259048032390259329374596395908506659417940917485583696917246218004470200656833126847461214504823270400008979848572526643250562316963758764609909220316718268678277716683315157973007006362149263164631075846532167980131107609775669195820461010099954963231912140999108237928570547121091579454516811868098676647271053550692734510797792755933952700176115773727645389412735363492389452827300174817033232441645032119709170071719152875059990102107850938860370639184781475790568955793161759680201099373742674887694854941378076136340892498855543975278712505231962066299306555544681237209017040686552893337718725699862940568888533889819199400051412044073013940073877252868050899027560198746441869356461148789028865204993831344663498210226627853060986922459054522836119088082055499765679058154969542708301066320286901132855820472240579588354085060484166253997983443077732006316284507551611674183376088007098196070304338842178249429305425809586530881006960932779036256766018540068598724402877890192152636459695077759937369458521884479495844077549462879453245022551431669905022482454493326139662708861157296229067869776793903278957530404501236297495327738357712567751368350318610282165083049020761135824340616653050624052077761952890467678670673844142410807974564444703821262186375267701330659692429345895990665297482722511666652033035236952974326710190661973763239173147883521417911846894166470896190389376534936688463036619548454043509500282688679095622131368135399796054034780065195198484469659327782657433829404289437572943453782955640759561872467121446017193393310973973485422041007101931347500315970830874599169553093543093061382213974917302136901049623664160811537571188728316537063407168585746591340397580970178680672295041836935680431864660997023578878885902496687249784680783190878913842738822191551946251879079709437681331186977295126997786037020946908023222954660171776203546940420804796104995328947162213463835237409655711323131021494066434068148744838833598527697253082938073151646741756288045911255471674061468749484835932533798710752756279202391355316510027303554095747327155811130350065210379591297547474908224173453438109022917170154429592192753673163227656193147068820412712967442913849388719828625108291023819062686965591617244957618847895605299504308595340700437346051857470394925019376616850587869930707470763103480260035714981265237920826599622700678000666708071960264548122791591358358860707621098004398935039872940941792286358395740601794712203219621035327221041452211955082690075468859182336793207974260426276355105327071930694925434339328925033630020698107596316698276829585591338463368448528732560940461773697077217259052113029146564419985208321042792402102006293776192945325894333381162256559837305251229965449372226550985584148489802112680749524542396796037884928616752081262016535446857801405072742707850883786567651795366038071776738626034480964033025600680654943867231515471171867349116793867095494803812846882307277931110638469783124043873083770220600707485948513421970283669075818592228407839042000991708735976789507014870821080658868664284597091539499972518202613659008043457098149581170489605826123261935909679661748357381388549325959605288235881471314601752015547698332134687983436537348036001037095270803766160198294185854360141594285636855321701394841412422308061865192232695410423389764317590526083611456264780801610967522307879012332795744817460712087823882821004065069370122921285273085846035442913626030201968854433729862710204434479822401949798541502905378827312690759053324249223158467135205277680867426196467682260372667777551286434218376763212428173292823565816604805871470808961874763138204214781928154496044995900150769751140923124176772713486503365093006223348849818290034137945686130349970112721198634361880624339565813635880663031841329804843170088859029878333482806046149183095599040632972837657566243915595460878760905887771818670566210117491052561864926751053050735320240362056343147641013427746617533450000081267178410625237339178450713042411659096282889104597699814772409965973423508070313243374143233520178819057960662978941108901997212976500925753796133007105973260980134749053085056948444853576961501816520696684372229622691473754246037246056123322614932740402226295855057333873773495585368089568583170893459175265666854647119030856616180187235350138629699174715107105154890475026549701112347494266459016116873252432648720990438645898664460072443381234837805667306725348804278805792364868028597380011275154090616137135653811424952130655991760234267465138071196840830649082557193369731007748824503475226294702162019837535161084486839852106843881858252324079408463744944997277076536077663968689830103542397138014107919704932473948679120022751508205434087139318312131661968450912934786726575925790133768105158909769960711439384024493540849276485174823131837660671665803054504934426291492505170460924858981909064525238896585086866607484935036575135924434946542957571198316933732148086125389658437497793689582845203870747594639129105694040160401035943854919721635237473906363421472144396484992321662698727148008328926922233878578319364253963301970056265328494972336696055095479044098115402220160553146348965151296815161228097228703578045240195664758080740671896688623161950223256718275429487007483228593625943428651836830464273184619972538116579237566917784421651380358248036641499204055406372451989169933969303096935335231645131217448670573535421614940653206792931597987446982595370469405377069386513571429334047226351943535280654960883861691943453666888903157634806017411565460901915347507720867626972393641845071066313992540483840087616682662653978073621164969436081849142092065710798151903579972979665150678897780346986689867259463713799924171082152731662750886758915984217473600887234625398672500834135735182945461591327294129890499164631005067836227252258641029043603628747879254812814986317298264373592269134916376327210281440209996566453574466061321826170710104335324193707955664723800381372282363821844896331557287849542580534318968494431457125146135919909465533337919618674594098404736485456750351355199624465864199879442638492658254253678654825637994866189533843689731512124591597696747414885121512630696091165393218449405131181291904777503358087167882270509014608003880728147695860492138144607993770216221166729655180875553635428462362015417528733674305554292109511912153055857529915759326268700676523217097024851851465734074836344957304878792078338553942664183389065738153331912306008528730542583538820217764765854037083238136693173509792049499331360563325856507925480668003275588220473050320518846666238468448484725283453520954419856881402215265316389361028090490725647180291158419707182922853984906583053190748805807390949700983815972159454253240192422368493778647121440018544989788499009613653811939795120754847848829761597491821683822305367184046701706088894619904926167551838219275039949660980432552949238555432653053234705906342566039630513395927876273467592239250956245438126813523006512642896143069366098708124931479253465023812793224090047976975387979623853140082756264271071853847143178521709312140089803260955000455628173058568179960482354451808330591832775033906860168016034725560345627827039846924587807332016558819871749018449143626487632874404648404443603652511535922341615378078940442695179024502155223151030501076403553311594253083680047918168397700473726441542961591359286534311278483423376584233137973145711686538627377903912597755293701665090496373437054281725457691008078187974171345384995746655833875573439233621173397818612233382302744928982084502386945380315470116505773943607169881350223545410174024617290923514263430875058788466057456991561396155229777041521487730137637405011269975532531876007720733039691528949785153480205929956561126121925342862896479806903789180856239864731571116112203256167136804919051788168377159790884784307114380161197974070317910940052042926406525452402186061484523692491689052326654392645632816394309372434811372962741390463946377916221463034398597634759740682509644582155498122209125904063089097543258558948277384467759415839035239587170351460593329757196153483159289988530540382436195689967109467764685125842632778458854407598126059344658993249466582889239013903880860570843915119040447757961544901267326162571573684364322012587034749402732818874763810801646389119501674831922619583069689745733220579559564246522720204854638155586263222900776083961453694198093692482730418383864951199704891088889725324740336997938873668118475351909572067369334807643189885371411364590279649380165372489320207401911824567496159609654445076096736632452198258441039312877623125140894380994264624747734018321874185773223950053764992145942685861437336414616182940330174377963758229592963235160953458400187671699814679250413705036328450196625860180291527782849457342972857632732229914458147461620508602100378662348181952025445985263777996448250343995754811701472332188118109600627065933842806752873666393203175407917031160309929576259315535221047419873124135161436246768921357126447671855733723562861039798070377609250382373310552221507222428307167328360458344854152183355443053871875110038920627714900134870957845013965256065944195472882550390576677947763347199413549868430527402834800098157449516673987100612990194441454195014781625975445131177891122858353953872177655066807137959629635987422553320607897823229434869469383840321015004537660594963127812239365778243887593395226562496410589152735300823477596246819148933055375452027470729824934002248642897079127953889188398669257135837925175261859755457473710438553626339572660365642918858741110766998711856638717646442011965299336566055123587343200290800264142522684557045008144818008505502766742971300927166944303217292024002525986558810226739858912386164144770969569595722555446533396831741625245567878274365564818707161441584956968308440428633432960214035054957413152003981237168196607469441873091649060588016925730377217420451863790113049988131421284887234963185470366375070518164995461089729165614959403251215659953214150810165987653013890503452713343264847225995434999377088199617832072135442179664156951888151649663012208730875035683953767217058374920256189123817123883568641824621053445660326520038980143251878752825623186834362572994359469758596777485689027310711989389851517446782511922012586614817272647395018265917980835264019226702484463399445974851516794011590349722663218506079193612521850628193219709934098890561631915482926607890420918260604163474103472136630552708603036226291471205698613279295396528741466742637030743741015134318440602524169598516047816402872207647610422329349255395423549184453822088089995997489447370052163510975799602668747146852772344293802140256988864383948718770210244960835424714298071661082993139422047910256177800343181424701815169996906239815804221765312419840776771427915623830150811673278749329748618089870019281259435364620741967363859218804879482616260112496430899324644579625441282600424746630174385560833374143334318922832153463538547864063317939299031483081145758993539240798662186858561077380982909630702662266518011746000632514214350071852940101188404646874712626657611146592058536057343736027231116578272200927894746353726011564898206125618559901047314080737398160329129555513434837385974261843361194958349642968943407780522672061962929158594889204345602102292762188886725292677683920882695316675404468352334655857055032684325231547046940858929737674488623782729457385994934619852405459320282945452688566899406202994741339063630807585471977918104344852677756731410325146199275607665614073308500655621114853318179318422749260093791776582975901416777153063936096613490387379320604385171682033529394668751269173004880886858668557129567742881843855249690033286985559094686000377172775190465913657331512163961868383736189481487821778318234503093024238659284121837537544486996229095728895790755481788693069970157266227318192763721954451954844161962422395882472383155867953921356695841884523035265136179597028750289641788462897693992379047089724527570373473030348470555236008080014818752530895770601224157648475687843492796340927144076925804863881971252950603889765785010019522743338511512397189836474534693047936665592102511101148324885517674962073995293689918302574850753935478916880838479493445147836158235159273628465573524713040497614045503957618159603811589275441967666627492854333040936585033588694911801470058306737481317455157787994526316118751993797065966091068563122673995865391962508827770909289178127312284246733286878196241395667362136903278096414516307840907444599309853241002497177879905052383173978483450839848427960045215857900948893369552954386855355096223086439577573966587605449331992753811983040302126065317100384274100045631179619415469095251730144858028136614657799778121212164123704006211230351837591161930373667345898854300425785707367962050680179781810182922938432187295411564520473474799456049626984574767628671248307779568510915932806936589106662950444990594170769391654461014568119241154169635158420847201082195390215411259876081956026408756492065494506838585616827964421992572335601673518988279448044036607106294837272445821530868533497264880943467006230014108448323207546433202351934772647904303250491896107943267381646466860152430702899923892355798051317409170358056644914276256034054203792475301383776248726622295485296756177483724434545276358211667988083303467162923480929817834121214130126070472100976234465320418595612685518706928022047422621077257650968263614485759903416789632774987599004121426738712347900029214553542012925247612608323797070905572438416116233677471881965770815558571201771950319376245890388853553325544900557685102425707171858860476789936792865596357141505387221471542503047573133595185113601065119279588786275642676487890773985790385981836420406554299548657703315029806780592638791087379238184012066753354203673067170480945865468983481122740949480196875412167998452363362873170291421219175415377135139789205831131749920451916329069350138065463731725439662338003019702936060086313649598945107334573124644682226103934651784353987860799759559156595632644150023007303723238310795997951694935606878235328194289393020067173701924900294362165995529113893871729008698269613267993819150888943547240395627336729489908733200993609916455241282214523765317822749925916536132509846034926059093445105604641818829156237695944062526592855317547065398738515242830469325125505799208363621926268726401048261224089140866250181773580661032909134343060104179878934121443350064376292117395488389894213483717094746617413625584187035864656551060500503659262301201141518507466107251575570895415648981851962073824481704084584177980267288839668621772085049708974073027864552920768150054931488615912536015632055084352857055348967615934154313274687386472763377779339205795381809589121981893036281068257224663293923106035959804051451373500550280696815594364920178393318957315468382447351383977563201465820884001815603826407928052095814739902484779287671371717469403923072300293286988935731289432707484275913329465956482260649329964056697637826332522305554575949167185135048022166120063880108283255300935662656837561428295784228673361115716153670329075352958874943008200261919965961625869510887134626714459705076673923530681955307071908520120465215872884618555386522653093434809142683207456373394566396504527199898048440875223439236364791685115643267525546170316315105298598701245849364481357926030161048628763305490835244328202113379992312629870302151831753400251621320220389341770088552975363826337254369807934824071167214012954962816768611818571977594364124687738991716604964475528017350069617344496986671102875829607571842299771011141865017007338689852736920145028522306901734736304060940189875791698988637461044959316146748885361129763333804302133271893115212318352919150278486866864719133740219754033067794878118004149502955325911359031990744083149070533911397043925725284321942839013643508544295937373481688634647194410560279126708893069564421289538526837929908642342499771294963719281524018449701941023715467848089825114520901080125469414554797781043469607140326665534483565448714989042113448750480040242493789705689867306331121216371738671529806521059474246655562593465290023054983557561120321419350322797006279031102997168319006715679397086386214240703375479380176810107295054472715283484034914845034766389261340307810132918837167342365732615905035888261325328011435222876067581204624063323679153576030459660702983851682310173784392362421430878262313423761810674517202929584967644501732886127239405245539472995571628231301560037295809118512962743956507763538390935875215857830170656657263597874840952299722707521335950571126445722412704577306215889571864710480900695202932742852672432451926050195122671403219808059814123091332085846973018089308556571143559685313047508967967415563251682535202667072962125105577927879497219686960454443104377743149478732543630815335896333761926204640603597388268637293004343436859821384384354491412866542829992165611676211668429413904310400085821285017232501819755028505301775850890301364981582265259823854349509068989755030765531182800569737594691793846525599021869259263048297755347932343516824536730784661298373032453285668381891871814936974913623836983085992570160977860857930029184512251606322757985666546623426547773263615634515644904414245938731849670442749101291804936133962359998674813965810598582023729480718911766649479765499667725730504731177750428063691396503920089648084282733974394118449563819141628246269352609524412252476562335775892760035055612591807326617931077300088401675406520089309372264093483562922487001211220748307678864452761965448574424870337783452820964750770256953255606596141243372451829171000908354678013805611283940298718310530556752989008660571758036957345740274924540174982547247320540035025467394830158129570727412655211048096857414733632785062656875543546671697999001401793821772438691196343491444028194353075578976366544206052203405168693745868246704416493986476482503263472557886999507915730276611284451627094086442302679894802700613790445798984559746983634372414688157795581233906630822021746890497401604068063027499683568671789167126862873955471509120810691848638341315947281624974340821629520700098236976580946505133914633585403237244933799794614645606549822451008007611730266346883657085423819099830115098798178976316908701290426854438880911608759113825319511131933913122394090154384168376272544250867638423170745834865071549023362100826025626105097138791466960728331526923097947556028940828846243702027620581863376688332315085042450197591726295224630538427567809475518387835662690683654874636970278536848512410436987496315134785930899240736536723317146924215677610736196806742954559713279498133584260089657051158838117441448907198516759253754850756631806375820878996878339372426424490082183416507757407249885335129459509072249188874668157910935421353983572231752863373101229214110328338369931477049126450800541774902915576883163125479022782781992559689053204400799047992819559624177797603745604503961875606590631418821063000936957744545506830268114308032997256713293807782746884539899706694847689985972507852439619824913333739926552256337890595091875198517001982154188835461193445366218966255100906565901525269074036194408032895258209667533287985368810073073389163585426562181122637384470108859674513278978616671594885130899525290730031866178776168502359312630804058243455135455293915207797470195215958499190031990685053237486506294948170910499775035916966170032237931695418630867369917036111181326644215228311636903256304891955812638485865472548647257674266138763111617172345597803363762059081872015668239632411880543213694160518792878480723509879671584724759186825275383131652936972838592172422997868791972601784381892894620834977101396264473615432775225816705263373271168156731100319367786135220409339269096377511244645513045969342274190107197490758029875841607457789333592801206726426226400445060821975144975934517093961552090867322444668235931372774173624034070692440346384781598613729090588811111948542450126130068701081306382092457970003392911862479797964324125134396328002765628209013689334330748005286357344522534970318791727000383853476493674846980522811770860126267373924240606718333271978138659507132800322097680326258137727688325195923277478070205907474169787358887768527294311533128766092130214049162563110794549828748932594224204813577578028066471762069268591678591608713773580471290564054299051189952064305941760011159746007410162334143953244451991675248577646528048462125028061827516376349050348908326263512058520528155604138372714358980876963367464340370637226328281419970869246241892165797964549558133108350753311553874058524766502971198922636045172311125686314177830954172613360512199222051499304518189182594287918015243650142919147304970503129888615448989840911158992214917451923051962360863946077242086905502842736870934241423068873566025556152868810568773632813577428218658386331397015830840763905379786241257430825671723641826014675910078302787126569519369288063401189592821387813205283855143130655261612812445834430458761234786618358924346546960443125507232834225756374496951834918456796764423630175491601361771403234006188417540434307930850905683430777149108961587098068136682922647273749960791013539500401112519303572869673049762548753544425553694470443275871369431069651877475478188115734882424384990316131993344819240608147244677420295450587925128921837262788385114368884572843250502079696050638470823268646743233057621749831279082392896462296455519110648216207616560715403208916934591729869193888751525069863630448686494691532368063392774239055496258464274426636853613572454961946309475982809060064907187171362475145861400654016753064799239000537176455897106421777018555169845553267608950714536041102980792067860221563627744866363247989607569845711827365338945153172528877428609321607377636111459257300532534320643412553935393333395716393417641865683360191206323119521954402621851619740357548550953154734936467076720652524565060311265636120258640634532104519597127256042060030338282543225184588260760545301086887566783531260827384859660953166124424704333906739745468439826996272147127245398323890311322619159130307964277374342100907288727871957725027312333610898497108255662985558283177536799373771523625572793299412338850956342652253024275673362557439260169413004377760716246625716011940671959779572002945067434595431651547314714624543843861132317077272269399784136922607628868190046590643209777390833325416521731386552488666132873644391075442040298456217333826719689205189428816703945613456652784034589370968862788027200072114757916025584978626702385357841921382710087759341830949492149192180042402847688174219989283755236393537789805184815332509071330731604570901488539940372587609912474327944855861318237348029856582337562358591159041786338766542014517370217838610621102589769333698504323551503006191264656136931417931758195921887436363151717851489757217181137274702264750306564708006581524792967596910264227134825541341710370863796725170405777696648858898066247881151721566421084150131133188186617658950969686816254426789355534938958290453631751131908992798684302243859250357980985034837670322205931081549749584790997173601995427934117972582258047598728629496206482776655335058327607693994003066850708204039708573203524334760598511090465010771817571765070932397838456569068116055526186313124191279954758603405791592119221377477120964738637464405339912574115290042286727502771121872247458235879622713842057940796173624254794241585114083941846028644955493110248476348661028796575838033669681066024640328124862260180711043519938407913364562410364793718598991400987634797044197034979550870953823274951536575938267815752490826176453618713269755212995973567931970455044966328425377192612530140291562851703821770050544753733440515396294714105110245893406091215137532069708904684921544248110600668991412405424325169947504508457782952441427099904293298085837542718933083853322086849198492364152746239059296490471972000218593315504646721983243807346042771002630745766579712845759760226036362174973185825410600021036919986882322268103951206027951532637282715348351481940225563038482033253048899213277131836788090118844785765859266449303993810718869291943765856056054474319501975003056420562836792053473441293297956879404547219865960124804311335575907612456057661544363979912788524282317346429936859027045068743327426979501840602677788729479086240306413419921516758666328796152395329931934772904292179168617273020848415717903834095090705058950492964455679297382211917272019828047564781727679575957319905492534331920254464731680885344950748152969735116484741844295060981379971037039320985120110436258598674796120579597264375915106762120518038921611995219241606768053209422249401737385571589108948024127018206375179522009374867169906256673300192642706052537777997909512647014673963986672617714054996710156641414329616754569751496045662376335405285923806342966661884115271677624051955152382225024359717142973857069649818805621685586861732078827069774546394610958464663615137564840136164068458070409169637078121107319719373696801268906504017259794736233419439055714969519536371100956987748394744697683073978648142223394703140819740255533118280404189191543547968989887824056509269196761876395490698851153972488532005690610215621602328215882914500244914645876284115693560380876696942549447473326668766000479976729926761130575080435645740481377781968301833298385620325518992604096625140632992822309983499127986498168498811465889274720884218976294431675449629825689364827780152326108246197273904085221125686231515055515134691260164697267849234948013856293111017488516752888009430865878289439856540061410503941766589404417841862588543187795694576028359187012076990708914752729351769505433466450766700926731248989346446451566376674218454051469341260380828017158651027697853822670446206307823335229088348035933098237599268959108112279785973518094085952654843779675900316715454481148836423828548528062186986404307865764980683723451201509097222985930495433258369936362109039893622887548320049975691650210768671239562921053921486947619329519527171702858244182770755328281189212220660703195042037388790210774007614671072659960094027898775473901336377514976552506472766200314935173523887976102460663423302975763299602502412796305947933320712279679983598333395999232039362629969797982322949938875444517701711015868445669716325199546722901949548198505067040464635423775279072727558311810585988700100927616219560582440061238606598475245996552757091900035695976374010818971280022070345175291223302878922876902601145998970868107507260738073006423203190241233143421127994925119007953748663943737994026505143849493378880760186833822763481687942275668044110558486247629203621785443541297870726614551980859733685457193302910485186385173157949234487206696984031590743225869903799477968524691411007429181712175177065248975135577615291637643497052455471241391185915853329297075244921225552060638352837030462760604588953458108497693896035509968637219719607707904137977699398069715860253956097752609677640736604066796697808877546241494728818425866507574006014795991474629679777430576001188062688042157196884300965020255425540320234802356526076588265744497620333418188611539270054170039100148774160235218418906339284489859444883515519009659376843436566100030194577165960607012150389598905281333986470589830591883808252239229732996115869245688589192145691893732730448613172798887488724806988082054893023014692198877947983441029719821323270902636229284982765101043873231934844010849525946246885620351741964381952336771150753540635372902599530840324729310377780606029208579949362203504824290532598678040064516095809052429904559747695616736095471611996241725487452719520190894060407392617751961811023953752467273754372275172328151876996291287399350618219582583074636622610164694790559382964180550336060428970833839758489574062027020402260969215532851212340588132838955343981334196772969209037319236684030282966214068644864987691690183958854394095753922797858386478855117817045895215662897699148730204823063861686407247548316845103736949630381722069930968374043148585131422252076913565000576951628370069605481006486646189147509580441434799771094553941269184255880372317452810762332650204431682942625227225121908296604626265310600949329060724092344744051654398928959972950265205507730021525118627358100389247241460651615787557920221041239102681925547019121668671395920300410882934289306097333616010020750601269531800667409987635577803000732350483301740933829641195327925380096354896756847186802976361935468901694580800751928252461460870498343289094817816540422160994123165808914557002155720614954087682599209401253680516833759556306553922848432497317334051593329512457520253554482731036415322247922002537152275943942813555747643963618690856943359739101011525560417466818351043014980712695791357906173955992912771357151850855076080512872220968264151159364323958615570365095656910745034243598694207932759874367847870065428911124063844051205332814649336522232527935226746227791965147538376382138909206641025952562694695914163592592917040297888072278652820164439989825610849447994730952794087254236331035539601782588639453923129618654401419554180935442918658665701574653851095361378753152032716477544274225726176582864651297401770612285820613883561370952860558798213491991707820158684070301432318240150854831762949652273777234088847007833762508082993722700386365899586609538399631813757494454038138619245605531986382443374346671748300615281300962390862111500428140255293413830390809446157901684145738016075670503356583080696256542387033078943516425983432444138978041940486507944901589201858748931162264577653597157403320667348818510964033687176253750679283601349020268647968903213894752007999317138200706111586014075231678008800113657143411070387244901010847693114115789071455709030412148336647444019734920490232135710157459639694930683932612034254352772861607117096895714139992961174721398899720282338666650442463578632292009930924580469302462807352954099357283894705943213514693142752911269450637037132534616076703175318356155489068657303281872634936639730755417618579611986318035715811448560689098482608427247078654968446895208455393794956701380529095009186809728350046609871800101138492107134781665387348538176671357198331240339618591158673636230159301928726723282236430296422821021167644166129512591709676546909563488068161199661160048657319070512637765705945504109248390631568582003642880607462039300107936383312441923334016932013670102459558613930834738378647360064763303358629766956233531709242626980057966827579671698884421002771038383366128756605465498767979444312598694590707683687006248630946911226045208857256559570274995124874144176092237720042932457217571288073457711069431332869375888493122293008580601033837081556426226881909523728602282002459652498585931751066869462788051566439102562402746539675284098653817999841378585962244487101254369681623541081219608928615041736876230766879733122475959360841756019495962758725875484895067544493653963538339979303288516469333668108006670613415593959028453066984035306398117291971109342166070849389223663060104357940189023821961574083088482426421488860081378351060872657988365372856238518363584929757896283109838503936928541955320512952816662342524216237676515216246465103822156632906991616310947942688432862853473782525781235502005479192612579137620257038792291305221859001240390788317820172356758471672986236311694542275486781533981426903778229451984532574192108663480236088819014112704952699936262192918846282547994600341015916727414470591194364461458010243310322011864180882144653883649177147367358453084476074209360442493810556484068492914949123591205813858250445094771247412639841958884870765383341065595310361966039907288492849613197918274517811974623831440667658720019912115949202406338367030101855409834074248728865659391049436621545309037936624865624028302332696328137047462880795558338112014334751021196609278318485813208237502489268873502294711852087435449433773461632368393308652228945503478430877152749116404996196007848876328472574455046822088637372804686010258427868901983201469643422838396916720976397357816084021297721940477230909894794388263622622111661230586367806890287017606746448651090559877562006231439161317363455151466915975995088465696351816988412903578316239624656398741322535549402006258965915527369826190108571938009417089380450861008984990699388146329308339973812425189480326564656814794021046969360263877739131078632342323629342167476717205173001138573264268124292882140585306224467212628042208696792324514094617545176027383957826760359821862573289352846113648909107700218678582352562424024855274048878758769001610332093445363313911706747915622689917709306764499442330027205660741997458915937258134850929714924809394837872943642642550781189620070784552054428366458622933394861102007316307784877381392952435981545797898304414499047087259800043859901307207150910409742519748324248248636493948946883228348353146023414675038763663491866037494455022049542698661632215958478709530085750629774446199558740922728994411373081098295582101650919470479631205312016533825073803718382899724775658572767977395866161177816936805424245738661578763638437755294945742529683971611249632893579350218072585191404784144315399414659087016828155023139163734579140450182484808213416301367021162234080871192006954663977375252281791274566931051944645210085611352854871053625185438074858290470006015414939313350181621485167336420246307890717909799776814321334328378949494489773158386283811716563291046729110267204989312523737719838823321584092954509824930253393300903026062014985241611470058511926781660874967170453847851610989639231036305686401925516054416308743832861567384078010128365725164343332471746624152371687564690852548113435780959925742188165770957166323703854721368636343036134751886670742325131486500786408490262010925057964674966046084680068475029377068922743044049964376843572139030601657821256266532074380077649696371054462595997618848174986011062346765150500284891579013745967530059978253973733936085670940529771734763611796265961009039661539612679913508923811473042919303630279990331936501241095661163301500615800927670869332210835402987394976894640809453583214702424323497578066725042705367406775083464847682580506434633253680720418702820900565938167088447174676979242481127825608264620712870771091497200046718942512736970829219576110808766331750079983815954872706188512084623840011119737166861093932928905601396491592120265822936923783138751655775946838049814476703219092439817389872768022897873856744312562028104528723805355961554873358248350958364635797893527462975389521323960307119443930669463747385778767063364044004006492799366081847211625322364150412603218233877572350764005869541092510214639162057526321823168375059616421746254295143158357118277598528745743642144606808954934948693726254085619017830013483308693027134158327019881152565360905391147612471442228841942854318311347667674087033874512291363269500440762965698796654920664119553551265912302239039311015386164660575430742606177929090219935349220571558532707699823866936666792416977102750112008813565126822911464821356589107983273505032436134325452258556651306420400244378004021301267067396625661326807706106507896024869721292805550687001559199036142695211590804018628903791430484219611120202087645663896562448322532339280495409401357103851161107908810006441630043058935800596824175829022188230257865659889761577541504473522308871500188872313637538300006491540921844291369241086206400622156844040594248095822976747054797038747369137558039513017207263517596254712390596074111201448872507476203276969626307108332419882497770326393832850383400861434335085247042247213374528330615503768680559286435172209083939970476638478237556012306666816418111297829612532682258038347694074790734576262959306404856516972570051601154836936052218791215526961767860304291725443079256370738027679410448939643425617881253323639411799275938871500718807195158520235371427253606159470205433325101439918053186823651310578045174566670266818715854606583718669162282404183846208016970230910086643906012927061027205484986662044238696201126988469909780486896752596442944416621615834917136199067626838860013166750526457722652827233690346458847608057898334519937018139271058374288533779767017526436080636163942403236706394722877668242748794466324509033945210524270300802405255290629842807865721365519859467897558762938227654356131701211870332170972549625838787596603860261110412766574292212412393053857656295489305179605881312804102996895511521994539665986150510521203326981924906356968589647741337853240538063701603645937135177392485861771015892757822383954551333891880234609868838598235289165118134458046697156015375913014087585290508016667556782620028400058404559016163818709089713625769961879709731411087528936542003084702646256017940219179430443480359374812396379684501400798782031145876136980940340237148234563942598870357472626722326124359446837407668631820115171106168571291481256960805875762979058370683639742994309399524374014303996880894185753763368923343264878800415883786790538246601505597967663331930025004765289053538823861561279538181882272262789989888372043103862012677162775160711220005576620041548877041125904378395224947511673113267851167146482463177195088503149538332545086791389146566626484548951864216572950544542940679240233454433577842239447608906222148491386442728963318752911257653541781231488588085765773480125359872835495320405888796297600312185879598068628222125667390464717170577191821098623999067334643446136569924688683244661066242106067904399654453505415286728921143345273402967196226194837509628581201806539316165363993940027296502037743341464331802470798471330394329468619390761462768296946988202872281303153975836508074688626813351192489562516573204022983903719830972405894253243326633863209996564203677642003492154213561445662147305259702315757249323373192359624370560768276235805452129841203398552605319960950360728020649070282577938811485771674494018684141932023003651214956525945119219682075783746338199954389183251913529906088910367697974602751916753227939409293701171513431045850805627679521391449516375708192271932076861393094891076771030064556863243786450357743088663325291615207626922456680063530960365273576164567094406059273875980022033846046104774785243687235972315555704475852941042850207546335579843442874499177308246945676409408188964802908666188220797125977231816478822766853693875142231070640165634179201129901119308059853525422746281937299496512089966352817496956516694964890792109585043570975993933271153257185540834436558307707701164170925779356873520619916394501566953938008937883284982814307694515268999979822303368749097237766879492635452875190655383112624412474016901334861131164872605030686955491176704390848452755403441346416097599642197452271599803310149025438470782224539088438059141858792449949020558375170083629980991580097854937031673018768429785019654254806194744210900185839223259728798005416999811170405037182998928219216643548132464931858783108338267736241420747162306166603078990657695507688314951465112349924169074223420389899431922429685992256920118456473128105826032828902535217835185673266373192493572212851644653011175259942433027071220140471205469496829818968425510358272568657421593493965840783794553205978252768673769083023660439766310686934658361529867810067099191885072437068836644893900064148805076753362644303051807814138525209211793670693294790065742350340000875876144724260100735873478225913237853580504708626275935735540482581699899738793052622124493337502374139739106226708977613707055698527770764153329621685475114965656026224051729613209391876249602954606258634400240479473257488370644756340827406672309251450171046629752297285046227494160298389536044444325500369587680116246011210856032455847051845400775771927858745993621483545502616309917640464785995461564584922870517333460440679053401314818608147385437161566980182211336476417866869964237827892750292534772082379264330645228550638616634506594686003800822792391758461518724594655677176067765340308590568359871143919542377526981357832668807735016926664828988274165456731786738114890108872422216787917884282444110398084106368027884891155814037229334602527042139357420699231595122482207759484936406798938468744637998805015099347189803543747858789119201150725264356059458234096809609734465905654638070690036786125257678044737711254341455145675906278876563482350747748370961801017465522927813786077071515173118928441497575428355054505309539887077227266573657551156303473804203578111413293894358190427113102657171227850041384053086593885260445287928065616780272155979710592041663997511381525274970571046689208957184513271090420308881561604073838465018806074205797947131871456566054136752070153923538709260340689239179986169038993080009747885020770177239760296743697214359569907472705440777000277361487918091927941407970949526417356274062227265500906907173228335912637364575508207590517065675994838218146980261484799080207620020763163523098923551706079111548420929634264682328614101609625950163325701363067403497607476330604395818166300063171683170718036593721648646384090453662439424126377703198315190761595709488990614484466238538497404804932291553142409932619708833587395300796158098432145130537864067430115618556385973805030528839223410336496561689475349091150474818871530625028576531179837210681386459237501387042685671712345213795470011872535455473388022892290024768999580301400785014625852693143466049055501197498191136967071628713359143384274166721344951135458065526110449467614455060906771105032965034253165854857795608393311655932916920173121311761385980151467263487010213488310082482438120340654688824852471056335047060364722478493806432754209606221395269996047950501732792823619730911470110582963943015903767008937745648259889147904469959165645818357098224254627061398281711496610848067194190488352134085352339897805008793222898761944681237859345794598493895450300180673656603080923005634310156239468077186687256889796003812617247838854825992466810796685012631061431151529082610483994809025858035447810216610968981225021079737303428689940067765833208783496238750479701357907139159716196027345380809521080996737153109725406675495059531258169092070807718273089547064370016825161212640413359708433325959201982144862215566425814600284734975452342461330726546281000520947368976958725261358101822741769623108845938254202902697002144436174265646524054667106092038133061040158248938641783274074914949833775056692973133207860042608576914774288073914691564079237544584205074303904144432695509946794944562208096032260074201689119254571980331238867609889248754949542082221894540332292411584122428297946548301573988068929723853004514246215776687302695631745933383074358629995403041347867043750572179323931139764052641928820419068154929012993636025407107257403407837935175948875352536204279486330903360899719721836312630281049638292135823540058909390766595258558762959620562711215095621360266933239178127625392338585532626792454526020484659512810756300593252555487493055715523888446745337241877382137015631316634083416051495065305756558403197355545438492699008096346976486621168009815811368416361319198752295047643854996444728634121620993892510831616529480091475113181576778450067456738736599475336529141199099474433185785429309606401549424715582545789903898766171159141926940592273349317792824999690645705424952491602736932045453524658492109329388568260115909487274680117029239537774950584772196060420004864857546642218487841001122402105826292520719451810462245477760556169652875010194558143424620051192515388229865379903927063165287632846144164153880638037841037475288232700372405155683463209418034109590382894182546148276532297164789540654370876646772734401466425066470763560311672359765795656847306551101797792546650184882127317898782681932226666228853961491089866897455181870432570301147082160859979701214027090885953423764928884743555475870920657275903346558776824893656932691538998274057380308596149446929621575618636134693656075686642617478989735628916874681661208566214112941212365457525535583296351226767580198314110184212688700968532727777840058683029001920144806343233292387751177009071975944556971621484485164412802041761742844135021127272188505355025433782955638364003452584032314336395809412847039547591812771036188873622100276612907548745094517463576151036784994151432530131028652947023760976533499979223606154126192941234333527808607871625150418126659436481386177357888509023883722931429462281467110569552132884283008885998267361198027498908347554652839735087005679527235868604536662328086006078598230526580254816842032313065050695897332612490706195256742072256371930170983336036940543023047341569054510114374815025623210157814829781514122089973306338873130058835817905575710774510068845368804625197127907683370483973556006744597827375559062185743315529472441707184536644970389182050311260916101115005253257799691076540023351159720989119000845858724689214887738062605731463388429218636306659641639650834469927381191919196508070067620761467500733673948865837423355126355280645093547192265059215396106855538027721848522564797456797255268934671056293366806780195916951621089294689687971222036462220108177153676651236649588604416983977751445905607900599307573787265738377710706266512272277994234584202300771121127588891916046246347494677779572324533404027233253182622466139912014282014370106278827614410597634949330595496298831701254328295413089291958277469189606930282685160075386928788984170639610199291966822383108147273522349690549336735990203151647208256089601839025421723497987412392426650092295399725988617803709202849470623967120270166985414859140146698971585409819989823696813424428237738184616349996090635320023895703436233097245483484950197656601554650112128850939494838345040398432816191059078592392981495244216571705680716278543555954024326039546575435112724038120237812025907868986082123155592801590555762419082105070722323777303014371719851007938150943572366141504077186658791008330678204132445701490776354001232706690702036603920949705843469427361172398828327276577946006372942559552382295561395740104025540677074921765107226052460116478947517147165415682268702022577117797098230175068404989629369075264229951689821558385610305433238191483555537256688520206770844552649561383661537459343716743302494453423965324242519243612875812782482278100176960243097402007689362545291578098080397435775211258080006641327965369377120375610890326546056720643584082373005027646541743745730653878811753038411185907780863772252809812463242714744134912074002229590937513404416003676253649401084674472869055045020471330615306161503936715230121957584641829052737447070487788146963096828379890213127149777059214038739226003600887659382599391845508323155115163009450102132015458376171549027965560036510456310986587277751556576241932294460800860175143619387241188731110089765227212788762346418680869317286481025107557615596275147463507776118304746122612838135301139109348644254221517993711732180451305466018777440435116536544802134772709200756372908259611056266711800544639910918922387069507218865683368252866250545019398063575912806075763112876514834424553575893753983348112708541265533340897853270348472873117920787474790498843930584395292597158703391563415119665196226317909823690073487207247632019550335539683806637505190943388559111776050317276308616499240667820129519622098745112940452263737328892244075508009903733652556338741540799312258259268596996053988866006019650968941235764754918104252186801960756888193566309146752658309026625285361638936023061872436321285782414530608141285539405304706724721547854269613956294658518254119249591349640318823447850634444460030981262288675001202506993089531463299642677310743254375429812291675347532640766100364871797743483443277654027950477646014282422495429691317988961414956783692765878798070890215459396149283584795733215620956371529105850338423478550367882931299149713211327208613345835213975346174135637253491731551210090683737313624768528280676752785470935823451749446385895686056779743053642385264057742554242332162870455932014493246029429615850274540742132028631807751050277979473494310422487639702510563531783822520027728929178631111036740254101052872342234949487347201806797931069031227154897096219424391824716245994313529438543227689264125567428900822749382975183093736006972294421576399239735956208432451819698619333593084304677864563428299248595426175971246738195051211922786298367023187376168763479261942273544550872206329157749051024625641696359932294627582979824987326861767296274082093060977697716684029941010048731835399086073738817619890545171946866354582447460691423144936119451660359289375146359023621372978396059442903739494159714825107039436691647370203025977780732060324868983915989016193340996942354289128412597208053263548079698966608362666959481344134118837310677938365248161344993611338801326072356517288846762661839585043576673587743896302385706303069477206407457280441883094681053380490214603031335853801770147385921222378059256516104009445785043247972613131138719458563040169942042048679508584199847583422849006532028574620641699367809846919009455534032041250109039244890273098009081756828566063618010696039963464027719755594471702338080784663704051771688574053093219731785538447534800542760499821821550014265946198281300958541903749527321763729378444785550127155230488924210046749942077155027636036274369125375200685057276964259455993967036521644324494125481075112182007441349909053942614639474317148855557726552368077122513754028499862249818828260889954685648010102639696912261621221714841432789813834431932810603703118601890218688896543932470298411646480810503349654828923401205913409779963573530571780887459238050823305447044299054446039174985023176102394557489655534025330325772964478145278151445854395599664411782140053968084249260052782386366360765431878938948012420192693851319693561075870541875001232566081639089188485578400558938301644281565404108452753771572070954709117253614278440300066998647107620904116312077873614537435551225063095297137811352825988928795084124479137447099340073696699290168961326165093703713162729430854216990090473345287441898792448234664697509738707481509300969214460407957866006006524480565632680413460672536695549823412289838416899820414117863727439724868568550106703792456297851351060517099844580087935106733872214726308490562722509718262144180380193643180349657984835224917208632174234619250603280433254516920523214009077849971452270657033902594230381366684468747431957587237771223999424761400293666312007044846774107872134127111361599598786245971502731456245344158651943209458538172240976194957219187793125381070751997876978532935049159358486804477665475840301273414340749006080234306791089271564607049251209484363744892731192968992659511532366978376645497157367768931705063258618317337172878130126805183786015913000263858847962501119676782622831988128076918073051683611874652267143250454290883945403018245364769374984410319722658818598100687996622354054176595332965019990655703238022712332705792642710972536511868215817374671169631027291485340944158556986657573936842875896156329110600398289772516662367943784884979894342710809468245568174929518668217759799721268029185639704194461724468945411749735915343260120372410450906989160588705064687983255729518236987352690783089868220923794723956805399803852631918854110476777275461229849886339710510167038173683479778917431969593243374271004128932630628846051937177868997198512444948135292446794744324827333914755263055392726604800117816077213158180882479286444061584821250706631286425362000628315499824501758471974869580738240915716105268355908377276813408100830134701305428249291201248997262458934863686654938789321804245089678409500451826885163343391657252927361003372740763700074613211507168612858400253289570722462731565707809426706766784461681281469494802658071226462564104501064577105878825268484843355399890729594974262624071156474401280513199784261004601530522501971334481307610585778362054493214595232124151126065225468001325920768313287513551223009149272990603760741550591136500169300137992540803277321874300252132010204905609527827828985233909776866790297819043235032713390186414193605308989609468849803355768715406936265283488599295777933853251660906885253422097041429767614440108338800224394988778925257016653668360438473195745124830416580592643080170103597740373276731810712704801108489548949007196238478559551897463695945342889957580130211965904302387149828907120258058619530141321071078933533524056164944828638087522719646646822422011344437615539880621694058008507298866282198606792685864611987689669020548824674897602316885350319626025200012112543985945266856054057042900632729079619955083500925186996134050676904558117136556738623110863154214007944210900831188843115812889396259899809103733850198057911499759512456573479593971669328598399513754756987138374268340799177539435833977814862798521888102016298817743648645170758179961713638263641700634136974310729104643971813536669214429811313788839960150733299188522767129616051991878192006809800327447346509669081095279537270814776753471864505774867398923296018288229865336550951823769258051180350619310657837224214270069775647500758856760031630513931742521876976555384129821015472784289571161406872934017139730764386419824261032041945041450977209773007536705072722563009043656059588885819089223753509561425133023999402644276786624334488430621006870936452782096026256577288631436010309716507026139093961743560117931000475925410880568287831847348641030628134591085011751315692516783136577632787441916500610253146042111219991707935973604355600806815862038230184224140877491487506605497262968897316565764822962777099335184597236609569034084358137657949240369563651071060705582385647273366983018997238614333530298209631308676133537712753917767728192218295081713573730139453545280612087292165518524015070211042305151482444346611662354592949911521775023110180916295992911583386112641208586262593403632138229110004988127708710428487716562846378177139573417084095972892794186868632683993875725373251659445450371077782818556507026096387638767221096541455798506387054213821346076634614648271172141313559467187891355719112735559054015605413635177199803878255558447450508592237227608301303963015803954742489080816724683252058329334198945560675091340239973864187654136015822313829511473208111812672327315105860474630781161398249556803202011645504541238728970927201583045825964541280978828184493191847454973416478337835219789835553243837113909296533588068406927088412142146831142603283706508926467750083580775842284732773908961172340977268727692822716155811488927793196733424355146642002167439032507074097175454676692257453565318819750401749933469048305176103857801284838101912958843840543916670463939035113989745176646625320967442020345935153530093608277702960437389396321470476519347705036133186010283752274663499745707955788006565088170761391825377132387680945324214671125424550875899233597991358693709586494488563274040576401675989235926622651736263843679574798164561467777129382296553870802249179950427913521536067521630428130363919862050895983696098857748414980946329396609411912334329526622366417579351335532284351248135365909348655311229508057095878110991255028592957400342678063570224027846116166499555600186799989447486427887384729385597561745050659501549084182534513277762230627113741467118601731240355120921652408991634962944461226436202595663649131151129062806238297804372272649870058256999699215796554143200008153820610303867729447272280659542613431477767308299375662176405239702529761628621862311417548323347905666234578387156001751868505830026752894214149576710270195566017804127250573624351025647015724186289647157859662233753545629899661307793074986922655253255782003853933511568134703421725869636242930677628429374001600770365565697428233974037559451734392200827628164818892758733670054809166458508286246719078799157388743373820592682491427343889172889502920701231426813911108254678117307426715374494563504904271860765136328932575223240431500020282631678545576911758150544499960153987934576018202334211324600544215942810136076715607506493490527859924080255183599854254982869385728204133927181116548091245959390883522743801813531374203617352160557871446295923464045535507676277217166051115485110588569853040273682220312363511324252994644714837426973280279631307699904338304819427072114623556180242991607654279511523398439188369535610639176632310919793934865949535529954408029438810370380896713257355372168837582527910451151145600170709391845257258332622942388783046964499059957350310376379723748427402296994413298243967486592546205187111235477810804876492310841382433817476302574059173087066189013180169886043600953709456099174498860231036642099722534379111037657831761052644418655277430372949053273931414528157556548713231323508546064698724663891593843729992295290629095223996672204570891792083997169422937365039271536516229024414461194326777666201937229097668221401696303249236454851187488364568462759454974031112034541717872005377326000207033251874049135662837863613327406966464720916848676067708805758797974641419885652346916597884458014621297184148447444034550942415309804718199084321397015415559802235623730275370114442340074081072074851626867534752258487998462457079192166433475865270573163277225991244335538954734096082487477300698385038419930530806253057078875115921560958911318980707010176877646960948248464594751411260832023915543233498811241778018668748243157184270927516513173145980499904031163632803572825855373901550660700775605542839530351034728728293582764597770367943191697882136474559133260207572802000976262662002439993530574489842110880552959199330631189020798329113299806725842971177082520117555697894178113127160254748051727134410085870212528814230142543401641631836606201838660676057619095939172603444960239527954818150246146637994556908279640276289783334712735656338011989957308868098505830356971447608361423817305361806373238678569620993554006773742396295006016200728310852197212135199291294191106158321645058911800212979942070460612957246189663139712726776630765630911051107929124293772728708985300974439270423056688523443715610557600936752739450748041345432276720280092377397876421867251857545105526742323195485399999011011386429009435067966819736779763720253956118190592076133370068245626974639020267175690508252109051303748626081039663576343348079087714783370078040414041498715639174583246499088912649495534480509121653965583850475827503365412398753667337256137475905957260321067575203329258057665288805641374820610116052165105243623570481660724358786173697339821416531601839294638552824468792612857432655793379818752639232727103844565791546733682782910433658564653138807190341713916191099892984318984361277082532025264961470726159446848112980265583284112151939832362969844194724292384115451474597708457058363232523527374435614434207045548976990288833826189001191064400192962159600849448389209034000037994183964674900498435362442829217310011965498768036643706493827330262992925793879705184553480630096089412656260246470124215630855615674853086857078987450343544930578879631313613580290137616091785856364209531373389869218560079121157376707243534277261611848207661087751192978532173245512837247493942718179541219294764623703983729486103848897316308989517196436538656380856763517682518840718422500008218124778953289990800837258451068061986271287343021126366842063069198672434215445926172662442804276266061832561230387595459190514612790680089467469571459593653786683836356559536226186336038051392900602003368810106192048250863839401335980189144395591923795257669260805746456359547565082206725631857358161844353728962070929841412596996774426519766212175736753175845449559732457563208934890110442638803541780026708935843985668116119153015085356720334793081870197329668834291635665253623640218496785142545929898744209672495785580675142658454370521356815255967378578849846053491679185604499965390551093970110657185440723911422902662399396502056784248089463448598649796097187841016578896508843955992424351108689956019446782383584288894587087365644637716282323688076258074561951427061039643674755380533065272911796095947056563296484752318571472332666992518722683377454375142548105130621153174791829751645893211052517174654043491653737188825567711499268941869919848344201072367156840086210341080862387970639860636941119857384225559148913919100414071465938099307496951161903754438027331445491663549282059824091159796410917762781759263003087332269858136347795848354275030554196827475266502994336042143047087764423642562961276690761870517883224222949332763699299344119553334914760669828157167641813722540128577100851156355442270395982555118768613492922378198089110880511247866511153742314416558287864510000800311743027016448036547757096571768554693194350550334180278690613877626755469883029233870185238999025352531696479856630260658583625725910039051854996640361669160308343893542836344714633756873350180868224786272434071729720450618804539823242318674410436600476277605985931166014016934573438277696262200446729054941504959777978194334057662613167217983261208218422802976917628215223372402429726945165163640107793642695394289120520135253958787575271823709933183123145125936623423034316001467779022248442735068247037656964857244575202606803093020398466601218544406006640166404767518716732834280630448557143052868060610364390954162144167923288154582970606084124543810226027001501733803691766023618419184644637798181244272453239033977523795088470166520483632869067582373306266502647808152846637654484748586299534306908814277886191989617386597255912869698184095681578159530109139879576009060502719043419961415272882197214672851543660001098062525271630690562394838863501502763463103562128504747830970366844806206131557806632046426111068659114163549215274694548017819775843049064872420732815580470639506390092491556525340132873584956279249918295327453179217954475950144682412691982247251378156901964921661046258201921474121418596564356210483652018001448475602273839895196523898272731585026571613707637156589618172878710610602835936712126528639433172572643345566346565185811879145605360303421155695031542458279189875392290443205911095543559348683339854728194605353800212739514176098123448858237515173592236449015906146514339235236652751939735236445985424996004785485885265245674821967918881581459710808275954322290969756962690887912083620448234890464509015900442239509081143775679781015722205871546825059421384395067496768196457582216202254424865372676350960498080539859551176612581010759731083767874839407322305875030687116690337180676064360055216871735561133096131615218061483355012103610669236922317207790090847344268358673917039468876373370809305038156869410489621636074190213966798476029572705107757712376735676161321108261978638705541048253429940010094219741996757827924528338785899088683060603782609633280601431846714699254786547164691166360274947028032568599801395678547084066904530657870571789834505221475420546599444157631821344298560892318473376800230781041256961978696932869451799596590311426525229684639077068654177737313488191535397130573388551237407082098134334385099622748979433012770538778370543249363054852767493341685944195110883268549147056808728799259378165968596076151966744981095140837248269453992388223685821101006820924947644914169822104266537883234733781907697549436767624522003248390098979579063062666133066535402329382599369505081380072909670873064076536059134026786965278802952930381089821787716955406111360336716427521518425704765167724871239711032339696023256233597214011197784280149022140290604140306333034968294404016495483443982314917199840677763859134441316114779144112490217403328909282909015002235902176236955525777568724541840228937153036269537935205680027483589453174322468583219181757321822152555932961256821110617028117180440947635751335069596572411653441884422034113427358677184728587341741813276469928641703507760088294882813050009020567122014246812397668521825601922070621968005403295287458775541717848902358909090923118234817017325968577427843865791077643147143850535919169023493010531616361818601977399035103737478988212422897253042561550590789499753093279549801137630754689414203273729836588878518698684785881226700508147066119252642088519814173040377752002682056006114998706375298142597453765471328285677729559037592040162060971064304092293721501861941251906229720860781531963959506869150278007407011029109835106349109997038552072070691585821275765912504380937379097387914178921360859149543194640919162051437759457249159243016549814331666121435244817091280345390807373328358938065473438855360278560931277932416666300921931731887352965458576058906661444942727303197808062368012335473858429679161710771412158979219351575598203566309760550402700465027919214435520894927635882560705555732478186784131779852597046897616060138324987230708400993245354817692611298258441500895365431305647845696278675530170789505724204894679591943400067533039334836236989550818905742274822033244593407945224970069215694299546014110664710430880075057215994677744872089031759764006841437831164660515614634894565881449838885326715731296600272571829701565681942208934246865133767010284831976677138213692209259146277923034201188858203706700164552593040668911252991871007943135473311737439573300757809920160346273208996236201428147495163424193296797620367193407813123057008006267788972227599461789061054358554459029772345986734461403759505081214730454313768474968029311599605969614631966008023042262014686561927343657322687555225496405526156233495120677011306813158790293152956089455372085484897411374009278133212312961426111225833244004788198505557960252276158528926238833477830417520596212715170121098376579973836695301702503604195748366851913117329793795679679597552345353390857177608218203007149260283243602349306496111343449700373763726403301837212558021939564525729501038999438781862851272399658166947506625977262759694836371876171213243643074450053254279754843760846673339512726588967891793542160238832173475989558270226786213182624686676994533107613281902745589625509941650649144829419875185335168194657080817987541207965016765325010802220925344219440286844583169975200698970428802227400680550906881252764486689396091130592619370410230688678397726974091214913103251734292163022572533528083591868296777488398026070656186762851477000091348586067064269330145451560884650610016218838923747683858397949636326693268606389578210524707296068147751957285441412656621309681325397022285451982319442704490600373970090239273772850528648162539847055442321432081752372087510722525193450554818254631084540474979134666375820545409640279855280300981015214621975113383642091832262028657132551429407556815536097845352590503382158506228441928701497013868185856532993175827252461911804016541091784728359670385260877756774858292719436458554518187260319980872858875378506700254438169194821476487934006271640169273898855633190403336750698389312783021712176960505767604572916098909107569946192687030640316980706371591934873965745271671878860661567016038703377622951608148339123639469808389319169597474710720560237175907511968041728491270778545299598532067677718332216936910202548351950018732029760508403467066651872522463173639148954028699545040431139177177764805069966731353375159583430231112502794305404236945553382691264349063976827439396442443629194673886516584995103717088531904648063876562183585786179760854306144018851760895004597054934773841330191516444142030204999386863636231343007730550767791074574886237221790406672869674496454392401688459810934944261015399579142366821761579808255642772957421590216708067051403860363012307443855970404568016274888979986678508869695829429399679055870529457700870005019378715027461352311848198206606363019144271240585793077956914098445593717037504650863397387598637165039707944984917560656473884897815806044356843582521775895478657929383424520522139648068480140009664611207339200670174181452338309040632376302463187118238489847686550152084818760172260706879989470028754300083177617815943385472195263834020549598152895352519265698522098457273127748805473620302148616703742899373496255286558482014973808515581656410363629791574548147697358541226009438545904286473545072207933831514759885993234304156742581997010064828563924857406331184912172996995630143671549370176809482720649199464760691083379288716114641793368473278665590765195551447696332998714464429663897848868911615634256248870013936345319970668416234026278524750568429922220201551091004251253781034570553195232007915668132953776730935936246796519952329827463426426002685329876030980536737048661502841616640539304320765241511162345966381466754730722973612393644369379712157681530106902228685706003839162739201743471323391396258251706884542129783433183913562376825145955695808563617743790520769525307888255538666226412781573662845702989335613854436582877454655944307233592996634373665755407546795893641282581330017460930614426698142027091806260936361376750468178144902878229968643480383755636503700074439492113130545005555749661296768855467684422598416581191537649251517431602658369791686995700366747785121372663928775901080626265190678080065381392695181201042696180499324982434534460046656028076426859074059824208723036763312400745027973623902389379518390768499531675419419632166204715442456148708372508046413781491779933221147132075084564819205720197646926374576239749811805271606011163559572404015380104724827439974206398749226932277603403340905980515187563713462326634503444056010115380331147923969972409405066092465442621648374833587187472825374534080455894103724995067287779068613443807928117504482898145828093554274910725461543005289988696459802016188996355239760135947140710472172629020707127617007595773197005222753063835556875057738877568361996753421320247617593553416313510903722429955259408001956146088429634876108600152227758774413886603301847620560074059128429705793823772741678745779021621321416453586413185904991367941326781497031724013387942964846945454938817317160705702622773755689545583712435394443912532006213818117019386223151057990344238729196354101596263012932764941930099067152362660628449331982222528414012729143788198194790656327704105841172119928084482297756140261408039378800265063602505946546953775571740846807234871360973171573625877246997730296478330655177474283867292894042401465581750073273837842793266133704597899047475297444484770226946683499448138277315284411262978322433824107944826304842705971549684209156474939163275149934048064681701429963866582424581923066032676046979270402022484029253635786289206358928610750300698025157308427034550509517413319835743312133736473300467849400127234609632821215141897269146776804776424325791600657095648808363264812103226771946517709554192209853121384431094463367826003785696908158360216806363045327214751049860085039742654284671899172076065621680991319034349866343834751387237504186987819016327004646877690785070121727714566758738577241298739288204621077641307290185581299681077598261704734652357717045819612647409846259976106917231357055941082313052686310432245956356613805085166977648869663747046565234039689848982762390334633147455739216967968942180370737944334280149878854946555447574034612082172802216956796150671449460910718964059902440100531248057819305970673454421227578590334363013680935905136712426227372396096645697100078948360606629381405108329831233666807309433176914555626856109007642638096366293694538361154790962615845645255971494868286112449539168856155481080329505708823791588747796940155847366463140127899404946169001124530097834166615290134246657917593506051502890494618681716121203496386494007614779840698989423960803034214388096867199962670686155856809595708146271600638005899684947775696990699643999321485676939468798821100044088502451201294959300347006326638794243173516962748434430788417437023996875575205400696269491863341005940159819851139890203994294817505636088522528775572814284024287207642647789597915189247068273118554871393507425425052266632586154829436263662701176975291730851929190812432759611406193773624824002406966126351754252849234525834199503664459053068441785678880729676191620940808179563903870541828673388493609513467018389070874259451215732473370961770774444338388431306399967227888335214377307828090257956125675926154062535246111681564016767936685101832400119098845659228831157418870348212769479288682477910417108485801739804154362078555856982529570407581872882027068216155718904160737243334715487513958845603572733773959789461997458988544412603408214549793264895448451710170771752510213297406333980891799301334454975658335306880063315517254636768299801913647886261137065578039077172676434762926740664378136417168637171622485225884130439884771115644468330590432854405493044890476408830084132803280061091072409063427521817738592399453213771877292133924620130277687745189158288484484624506168144266561194937778136574149977952185615522560872887539757584698495507694166276438843703974552027463005975745023615926192574210196617906710676621499810825409719826476189207469458514251272196842118032431113335819916862449746518599209264060398577158527779069304666913502063612342970135192759803387325634929082542992834621775088406419569495152969163385462858904801380605837735538829360809679126046035937333216745838534812797490006353138748776261310573979353106766034551629513747051462665270993138197370906915816055755562872950084331887534758594225734468499636372492660357089036131276341096854349482240884804183456472258914801616750743613140611860457054432673555383207320761747261672704645475848888535892610163480639900340443147015662132653824709577282258193046385418842517807029310121239309661738843784839456642210507687605793897901798079529795156548793467281079134778300499759494536505800473878312568354959292912454744694961876007563548897300966895484412418561331286148990020940301751772263172831007302113968506431399598132479710998066657114024398347207960362741589010867769481190634034093848499502459545663933137627781244800011091500958585901403713543328000213204900165584869578933436738438983571623164705169547305612119145059370690816888786628322448712149134822739389859715684771659168414920996081303870637477442979412795534265633143567414096979014133616481347985782622391966106549287226317541513330825597570827657985597279742796889698399045220928175685201718982300404154984285657662637189054875198990007124805703363226770709740604956190007818324990365871304105849986229343417195793749952359413871224461167449168528258046168613549432770761974989500895549912620665171481087961272751725090941415945386139221509032052758863758383260642775967339439158440990747819017321097822036693814069381507670696944995121243920710995630428066434554628184556100372337415833126077348196194827111877574098748216270971793186461710989652874262881343637571365789946129649053699442307897726519486811435269615386288760084564546414191695992067382127449357572913197133201069993319340131774718547732262922159126443447964458067659187027115074678281932940754270557682899194950882786526807734254476089210465597731370474001008353651178710194441153255382490715191299736917100507099627635261150126646508254456850840443693183018791332578658276293083528880061603525776547803755066370765299928979300806274938531130710535561697547057115866010949632857404085491379206165895562948511215879431606999241375673240361616470301103360897383231802091220075441093732669782160943374299428532743282033817040560502252158125095054404110394181211303899355432536063986546921773971681530876736832633847719530916528721496971567135155972602106873278856079267699323605696965361369087120035094592410966800164526945174858911293830684172589060457814028494439368958713014677452735809795812942958852423900523380442839037172587417405091900248181428186775783464826044071866848836050615734393934724301497038662675507568941288662701353135224483673673685522376378261520937115490112659915406350304157424546502114860207539950918904006974584353604635453754187284961261038950984122614810840888933481210493409339465797859016769261999708566976621714823834223104826173110567372063018154659616240973443372215790362270094249447870313337040319953629924685726516529178848004604775382302639949812830642554840513482598627803732615849867287714678307450294010955943420218631539567479923706530425155541984206833253478531399626160254214346980293437086642738093396047139472589905447289956829357500344768402563443750463781396994546935903179083643414894296275636319969017886050478761116881325550221807398591709350199181196473793571746071587117235782367386676392996505861911326120535125532445834946866819404881981933933508217527300750606200684156531515315130020364930244025935510822146753436167623624169202836113794425532677235440859468265413358396438606685729697246180291648330272932769755993347496914939059342742715950785712128449604726011874901940095736351509651157269526161473480691460426353012189621676218700784697751348089802696254680108898271791997112386208563683561436178395848497657000393075796024845951830080515237247798492718558820250578913814329479471778716532021674932993440138618965317120715796006746824059915236869025718930075335791275182970526217757783168800282759927331793842459871384980244269321932956395866261944696690798169349792351311960347564742009555794279493809756715656778812724484028151615290309553760547752366170840506663950228668366987879393681131610952412588160631348771566009869322668781502880638493232795046354931176389066138161425581593710995593189001170308356771745161541616059231073401837472094505504131599894161167545286352437723447365667051747152362398564730412879535222573330511593697099728199623719466367838072699705106741447557730513038211877043727373488210584296127337189413643835563676951180713280131558141857540522864358059976067450568123102342373161533590731567947885454494000937229374796792684260552683632888781955048746051335125924317067764724292450542410176164967467044364531831185187698512318611990215591976478306580576620133915335728157812262209022240205036020902279909723435753098516833121662262808602018186644851679518321839974986173678856350123243802011233469442372487156129979197415138979869613974411427763334869099553603233881033633570574238784942646643844667718797203031596915132354276090746252489461587078263332176976070718498429458707600104176836916647967839944094103316694400925783961001644411728876856180802960222859042533178328939434904389903036946795591142757595027535490068211901239160494683247055625039824551883123709385524628470945463754033300344496078804468695094787141773786103997175272680329963648478273783088914700247443568829011374505333424593727619055502759131351909908656122290165037198571987746011448527822415696856634324236145376050260119091539017865643411337394099691668417859790331638244450750339266443526074794177134231257755544749362023924115825435822809144565597441947144645340061285860278420548672356821597051622660388003703965423803503461866080779455034621031611668896417526990913428565906814815524003188106954529284773756821880965629867362595970066006829370170446741789484515135214357056805255176863596652383467594209290456143187588634453243147234532989135493826496087940002352909171952882437333096723647648056581829620779746770813236146821690682410305841840135858475454495627688237039807088115629129747795489183550989235787020736996702822138671000427853101505170415187910545799813215455143130943083084477767894954916037754560364589931011095368840036074767548475167156591436632284234818627400595008664508919798964586532844527973740456021578608311848610215643182207149613099256930040000197320439133850510241266236704494115858113050169972481977796871778487523470635066604080954050656536075689245156169731157753576440768870342907796320758469731685059057757392914589958778669500027970285760811085281374817023779157682875583077787944702637045869151230381607828491743368624496948151146282018396705360508267098086616136732556753338377155835827007158933067248378743788761583507485792090374480150727170395919912373097259128833076821832972543142314654973015204554882459882328530334034798174612705630412071499659622140111199762957240790999588245278151524152729937978921746030326083556930535052357787529419654267533313127774605549817456112018247160808502739824703173335515480386092589616546656969051664011224094950592620023046404378156668628092973535873929190759970349993066397745077246706505254017891114247627764819490626159037296582173533873217490293981163461703307211852803566389992564389114615701691287757721371449295533741455791709682004346434999786107855467588416508101381410598544405550401732083233398904278778217574067566540387866624363557860543335595025292828302017513081724551576809556987893414312534332193124568229323631400027823103180142787065224259754878020733415838578758391657036465128035287830476017877204393039277943076167051011559895173367535005899360651111147067672836518415119379674492832090340281198323257706111170605573714656441384206044972295052668257609588570139979136408455380107976106259785277453645182997532825799597001934665693367349138375480527447567381028635210557023611730447185292280993535151907367877539737494000550870245528639229851490667375640966765596254025249537350952639407909464125903073379911193312365405117566188057046107039710934577973747978329603468107859872818027758431461857760740688865163526222747453920011701854373830789237355717718692996162073069770772330905080036706097975779498968263048649317826426373659730401158459914272702094690699083696528561571392679631544897222027566637488006198167459215522022843293612616438352752000534883262216896058004119604854923933662126937706839434381231658867058804503207990479878607636000288961345091322025991826482309169754827035652585563540306099807763073020358903075539910583434292711129597863735051274021357988272088504709923801285032417338313478659827121807873074438769975234715863238752678093423744781350559841270860809696971593450592190069757694283940410708943295241472787126346178610412822755018008937289163698760701351912765471865077824365899611653264926215103043644634314495567586165444211712775408546348650399383912036414471716588091372512300058703744632813992638592871327831638926272861587918633077795572395178614078310513881044493708825119889206016669100430831349317101477101392230496366535821473467914037232656528654676002271423429702827553446740719801209867999980051044713179805560640960654086603139619154277346086116758579883949652004116733137808428941660224266100427168848258900476555902536236788021126584495830464458820569916273943526191518147595418179880406633775699928518929084820081482787502226225830675282282478008438201486269394232993879931202220853284413126381430911990706620440819700561092894784249977791838465587129978950354228094246148914058531465017302359991791890741488979794075737243481288203625919317072038056667247002286562083186882922071169492757178506348827802744592104616072279903458232219752927359954939137869076323287611363200207874528001119849716094731616841958906338160493429741624527200338003612068266797790580814793645757402062346697585263157734581648038151441532371964549950618193338721196545267777139597694547817749496911769240993616612986506622138962491193824922393098499620263543202401062580528556020864164508262741310232566441453679680345678914041775224899178012432561750268522664389852383175804583690929994812128379614791506932083359373809892111955117738413648422266244392861373598463219536695719580376804449746184086186700486578576714343799519116353416476725113730674563962502234720108801471411636890122118010615471420820796793339377573344625359873482644959195554836864626845521950396212075113806257358490002408641483549863054500338303862432207274200404180095292861736156357045527342238460390374771996434516968772033079938351670756279949218190449928957678204864269002610833206704752536429041607669255570361202264387253064971373222946993945355681910707106881698285049505110885589879377884613984196510772011940894231605268057424493396739408152089663162149094237201545598965427917556096749688306918849429086651491341759236637261956939645090773355506438581878683176755197369806616411038011795171837547883168089742261512398501735374325996726104533513944266374372444127655696697334276932140532782849804178137182423310947609487423973117998891882239370896691221290202330800105559908447500176004371853507053446465457833495160498190103117048094527723285894231733301434813647743537851704887680225201437979510915737470238390313356500001268157584201809535930824110523553115797116749676731525741192796205652835468172775357691440118848332849515805070910709356406779891725864220415116814790107547882410934494706873081538055129493055854424442914459821110158547903681900840616305820035268916646845607858992500828342493833849712606307626086456796650936660476944997976146758648780429135929761401206189136553374398894275568447199252340922979407471181170818511312171192419432349266953036572985292353944425797582569175948872303639254710932554492815155952732013490957922435699972663900615125503661516789595876071204395710453720538316835829536853388206661994782817628098626912647905315746982354259074976287224675000517931832049894719434072725947610754174901830094674716161599280453654693048914312970140884041579214398287864465612051977511188055755064818113147444674103213828599200218809589092412847730728989225489948181029525757268824345251723003807218525737474035115230037041616638028799956702771968058885897925011639994647563516558050543305975821670156150082810237832516936934142633186952578105470643202214404822775505670709058614521933178538925873485536543005262008496374459126798962036475970239505395736336299755643074323959551575440587781832551516984240897459489091051946866516820220553333430533004910486488533106960219251530379817351926167201584687072411909692489158914441276018289912318557796030057503066652158987729275817626404013650386369123399955246097811755520286372138839542452678860362979656120571118626772410302107217523638986793103993917822125128285313249304799634857552955285947771651521594627664666341904730996046155382253578352116720777826737003243783300115920517541119937590165686874567617255908580576967328394770407292764940803942855875572453992001636333570104620709521441185914855964092874163934767425694447094019698777733433090874189529253674414459571136928706522918274361443667879940015485591842512486637448065726950850909716637616248964684349406163642481780536891660476443046834031254576291708382999160140039609712797692465193052811159274304384731916383369732589717086390023355088803890552254780464350235629802719215939740815793451313437939183896198126197413597166900003803591623806400651488868437523197746348045627397796327459670519044365384437881479521929161340311528179729201422644537738082595524147790625951272117521889907110348809366426906920517373291893723987144897075429388380504473305727296443287366130900326469891536693756685546172855273579900752445338611370460595111734318879604351672709107329556732627752765672890333083549103123805658274983943889407626256976580563390640514517430033445938924323371723000193954999732443158585480434807498903858241484417959432835313198698652527433207703336690668455698156052504280245219562339026680655416323593702766666582567674299290764435214049557578920901147853987606531791214699472801306787725500824760832663918211307061759841180802431997172253881676345839683326679654602721930580805311932861669616781450931605987679092954918879157939926829491696338432090203994642654952574448273325764577602155803232946858103048224935303059861361817334657093792239332679343908042416372774636247421461963574490923177520948943530860925899230349519920146191611026966196081389000291145969313093548796621009467855345939155211699140980701041336754976096243156514757386270478683579752036278159822043596072732790853306993918252062467080637844800446544142720102735353249933536027982688969860091973752987932771081010778257097518390011102945240361145295134652451974680911044545173854540935486062651569671220686963365495440158621283069746998584833977306235108919075241536490023631510790012796999426845928455915822190727747520830043734850967539758160363480468106369656106828526616609334814921163261927716468596762778826352965285804391425906944079367296495269214575902856468816645944194067566076548082209894857524722770825912045891121359697310659677054632836376530856769119076897072743279262947662954733340737425689412215795664220587284285062566516304254748644321441198742981431831535039016209324847285080571162904113827349274107265547931295107816575147958737962529547773510058428439978944110227953508000250281418892668353325030549396425255994147635741499786978786326000810499421230150017886373262837783243042720374372805151876119821604399879923322359091325956228716454499309709445266928069121554159256777646430032409257487613957892665700734065103819651885431333474200138104444742528922197427451576985036648040946155132390099857398217813403315474429522184106181671210273219261149219682985335808437905675516034903879888840320038825531984415739150628078490621883224169302977225698551192611329683662523100702839996563397956897347644480729053534744851346761219947428943375223330122839692301558537919333355501268391427667246946596430598213814666895381840996722678367999733870858403299054436957181132874639204693573148942584261461495408140712567222637441176479053913063182457311440561955819537795907182168809192310318336554020567864800957987545538278106052351285618752585098352122084731388807220314013223364406477345763197533239463111911118501848667356970767195129212578579314182104349112371134579372198115652252934063499529354499799231898914497742878235519849264172901335722700219059560402993616592095063452405021738920663881719277502858765618252697026444520573533999620814734003883394190320851611817388615096183446317424217790673728936906522466760109725481425785763928812081960558082030902657054913796803884502257731048571568267842150892196996888650644300143756031530296303067739981591866913415960512150067614958902019204221194362780836702826527256752392741165541418185829218806118237886562112847765900984270216668539590517216972782853842516657193211134268598284697494025218321024472447954706139314078470502558932056803348209817668304752908092766425598503280127995925139007705847879922932420763772602160587682678174158819827067921158257644497211753379318831821298711283581567830222223827272556189976034873836514606483943974431433848553528294661428327445670390679589938853727029109049010063900779106174237301610871920353467711809568093611445334712314223661754676221595663693212086037320864282002648573058716091639354017305760748120446696615596876867076741776791465322344961481735266400456088459440177957997975848708503874640088180136533495494700805537555147125335005106470342906221922860958180153270590194321177658676193875964148431556277111042425236136354082810195713975017418815361324382336124981480071121526906421272876800780901771559625823460115867416912779899869637576204079353697994737554527186682286050701746812163962531129879197176971258909754269794722174355270828841146196036538110964662325757908105534947373250931125974697997294839833728845865502197876572540145564372805810045098191743653908275950370746340037881804973484827692535432354565079053454273430836835226441023089097762408087670747948430947154053029890441379092956289886880828393111656040140865349830033106660594085218514071711077797096124306377032123930027398442321921166775061586954956185820895806914848339165003545606597349476306270438287654406695614152000808016778702576078678019912609209285752396956732595904082593729896530063357538543160161750075569585259416132752449613407712757945030866106837250964211861491929131069498576978006069722444919966691996603736119806933348357014693980054370945826788997001432120240092320267249966299320829470110031484863922087059714443464389029942740513677921844325397074428810801992702363411477840544126957470567501413147488061060373753811324230915273397988919581135591431425810454235145303793297316757945620746981116360038545581915401674524229385933532738313366962190391256095992261604505105375724328982768323621897121456496726976223824019343534701331635830682388684183121098348341315171431622534434804761515773188875038787931848459235460123232733801918937761885707014695011019072004269625936552389279124716184047450553194924215369154654103385492129665876106198624665508916580736892810925995091121036532284435969700054980142902426502184002840647526699752316453868379000795883779709259295371668178258178879068476221546970707032078226258920700264939813697471531915207128172388090087063421716767752271988327825755010433158241840495388673978671194910674969307648065929733752567012336986178427706272903737465987213385859518506518992523554649552213490486993336737899175355750603120319267548928550380091803541794624715370462647289754390007478292621362983284298651726992202147004815771187638993229953125676402180692309179602014541380677514848274309098452117799123525224596908385912080484988833150643029433517171665372629418074924202019369395642340465915545828635389980885436154387907821843302353680764323922158124869341494113697828582499225593155654852497421873352177796157102015238094096270147742424276537854480688695737609659345828476798870590164947733144489745762259199976270149569230061133221815293326055558603440044626485722366421789109712013486598466853805191504126842507380150065073260745958439235484212268046333772193709628721030506226093156423855905515147759060268993848934021283736545969080240642034677563097373293291645248121296738817240099515634288816568167611586056912730531498592909813776488347438917148393640615750538499705176166434583485834099765010091086880189575224210504253927731329160711970682561838464317823365671144298988597379809837625001560348923021330833242192620148990016545875176322307839987599791718123184229545801357876802253038815170107237661851423737725721364375477430184170161639801228713568769565465909051540320906623444191156699706026116682461571543604301600328732739196142226565194567137883251545686506114548171223016599428245573251796897070601256348301872077139880866904155239298667233245266445303263135615871812143221375708623978966987621598298275628717738712756242207391174311001781064794330987747651146451426289842614393923339255096151822534013238408875413816512774339993106394890208533898775164171534417191967606642619700468522494484967805765978771092978612643177676532441895064758660359167393317944342376912892459301964075765356574689577724711097607303940093324067121747956797258957342655912812817491009547179150255160750276005494015728323753467145069017607055701297625640976173894643665373550985989250394136215587192629305819536221048693495292422031352565594487841169075715944545623466700494454014637534432715074986812152524965244337855539964465612027973461829107006906611685242599421805947285475415788060146078247856034055841859643084503699632500481804245239722736903860870803782516381745317688970443293357671082540428598759091036765736994729078071315380953910540708786173084210631265408371146600337451808460251764194742261860035891482835656521027376156152862751425290246133040575534376032802139354357827075093420298155430910895367766511884929049821330723883607346092201972830002963270344884832524154762085432439160757622141629290151219401127644908857412078432909279792858325470816546424807116483782086154427469788985305166664141197136148883186163094760270525605976616638813574385974694270068551929740191207243048830685464972113500476519502997283270644838280062073003105494022312108975534739044479857466383444126835167500284753926497870602916473931589182931324822403623307502985000043693744904829276011513911342625155710775090479174027798417103720284638028488308777771471661835304450548826579184476166853150274365523205410260355866143693361736345106737230634779668778495073871886806746927847766500707673192424428428421750083024313363048554814412622898653547284963996119135622624825717803329964997599581744403974904645618120588578150929323097480429124248015439584995905826731107138474435112606746218957574499608068652269274395501318239616287536804427400486865040464318417006886389692241482722257777401099387394503942841430691321059684410648332987014002238919671976947734497584386075309617512395374063300283943378629676983879543433601036650524097981552461175260748756467371566075043539164135752278312544131591657500532052205966354948694492905803282067927240806366440464225727057303960113609533931744909949363976846239883407586349262319222065276120470979000856371590430790263995165848655936034582030270483111562721975719422205629668842975630623964562674054075230213867239060487254034186796150340768754900048032426310683751060396735366331334942703121878399242001371121066651008629132380563722403710073581432372373822473641128509609234461340032362002735702583875969746632162358775881411932711240675605979581813539034079422843213336761836603001749352589681465984571567872050548083160703113117130579995763942536802182564399834171386590355705643996668982268490794712501887699406803930915822251603934575382452248702278552375197371674889381322834737602968953783127142919726882920252507038401117938449239706574925986504918826261250873057758457928444405469522915789638756996687323696068716396041691012152708086437672981908866468792539415660889285924500351198890141474474266783224243143678318922738948616988659599950436541784032948231542495190450332232364353195661443915239202834103434329801697702715887966260590732531586682233690753041581576889431478303306487901337067763593152896495239274645413250785086805750868237323741791889604257727153678523751749378362394346609687606728324776027102577016358850830185096188002363503049688090456236794156501135188653576734408955499824791902195598180978988851869954967766405585228194383789253135769322888218677574297421941331965985586564149275177043103046839378671926082866839259962823600080713338194988617055420104127879193227321919180309376924179909917532655834652787981061171643427825776382918526844271810358349917240734954450709763143025398970932361396066011392079744960668657904560278142536675345513456552869614126391337881665208287275060279769731284556126427261622506118283652467741230642958343062592902739049006310585107749540117857316573832111051074764839684965559068164905819930365943765177052374955247640028278574409636138124762690767483630324756792694269493680690054204694292720442054087786349353816161881147542754214654398088627673226070462256359244962020300792275192046200901886872805010518762021827230498617737402038442555966343381365515938355485555371805682058880135434850982299316533506782813661397144602585301681699317321095775175577428375951749689816995295150593561568633731362027775248583336407756586002435388091400921612706034153581709870398625079188510045678722722870393142195612179794933836428974519976357372934278531313980863145780656897082871741657943343773066455603605187257492581647686193241734424610702764019294424248342498488347690562842850571625099532248084674746574150300928836787726405967406072137568875007746236169236850299880820973788607163003309603748523583089510913740166274147571269338769065019209408206528879128300329432322297856908689647999790677339843880736370393580348109939780674226041817808539448288176504362194404279583405226651330622790301145761848271445879609024028318092943480719997575607326379084371177336399514906304913569007684141848534046841925068989610892212133923691810843295881844140031540728905816303535090916518224680150950677659955934494732261566675814899460929264031762153665427067883311292080843676365552290265071192052687657917132332795961667581676219672967547642062689199279361057209215603153803728620566256165129761369745421360752444404664301717345759481248201121614583562863526077137908721305857249373819751786826176677872478830215466141407782219984518330539776990494591482744219214302938180097176042933533221551097483757703935502482080633218900187250085217940246406505161365108969237353834000207552119785562519958641018945567572254966223904898850020153493211405766407877536415363480082536387143265660441026142768740231485063397270769350190099253140345544576136549731980253019704088101685143909142720594572267463789370716022680273133712978610094545502006914070743516395688335265941275391931105179795766806465554672750876813488178375179121483858384105055994689924289857651690086851927178888958916078372139371513172316089800050629616244515753080278542867002025448526345929141331991863249785990464760805216888329355538053775147004182823080160945166264604744058954891966815749080173996190091242490536253260995912685102957206346171525238542104102554198803621253097598337293383759389201926048737105863704706622302768925730851867231764338146679232360162776779597675636971747514639093737401785679783834395786042908337683098914022914594598655935493138695346144407687842602231101151901403124581929780822617760474657951516456452892094375769313421034639521126464535822317723379059347177901593182695439925678960536372763276869666382780582485900608505664349680525628156194771602918490863260860291044962760208380603535916910995463339030031377102761375749589072610333030231189734656858507322065199811770674130110709202011346987333725931559956044666107623854315708061273407544050515857245341383234917880710647037170374800975713515260044127051188119887299090913406131067445979680461824711798038936405088685917183938226038938650649732475555488105383414818963490959981895578630336821010231711535894323400462272362869284108376921813319069392794774161110832456979441648479403606829826163433221880960367477164171849754726093642908892778933033468239312827539154706827270983091503318227136482381748677693852537088191644603916386464948432183391812102589728115736341163931964552576400405177327585648612841054972916563279603757741251380925631080738413259806366068135142677737564830109389659814304942508518976163689657758701711205900180753165806711988956302114449908542105848288619875371139798688239581599380361609423061256290633798663645740735409007628639042855901356129700012227933080428666664200191563915824487957350204937210785697709649981718715078809251791633596684936217435623696930364626612131342652693395354548148232074205417880651461656962947903851851169052306674101467586713705880924485518065042911138495434203899007803273268667375824736404162106234957722585447235779358448912498788998754051612139066931039940538813499840045010410984392591316289763723689156075473919959455431424682357225082671875047880423881927109822344237494425067633226464520539508139747887766297326669641240079254544037725482944421068452269816497105448262108654991903721337890963912318112811159591649029862659881010967420841597615600383833141795289007703645089143266256430577407682714209873465159714917329903159153302206133982087348602972156194374067205787847546958702634226849215867488509041029240724683275970128905656637629164657520263034009173755409664175363096958087039494084993343422558149330644201713042067670027924494168463912133726826920898139881204206700657923292087641707002677243494676954175932181227380935192862160328858492949958917884955580002343231928125864931926898652235114855640641185369232405937892615487649637167218665937010331869149860620133666652353620070933481655763284616446335506884545650304760105697310408658314394345551075987727516899507287721129221610297512707724169883104510169684969773545201958660794040659552332564695028502021352304549897540397340948301017949171027347018948823781255432361494685614333397489068577791929105003879082412051936307760414493865214347020413425127859762864435502906314627635962535818069232625522995014481875773981017212297408136129542833199322287847170923929875060925443805814240688775403499748271434570304138502804480542485212276195887735876579907708509138551459184166982773408948747360235463547976481673638951564970814048483380438690578883551634266167674250711617664348031017268646918389162320851887609676175872586765237996111821873132106284256352681018903176380448531931138267492660299409477341560507498247282724097079154966083946255958380946853393740456091539447575595053365220320753030505697478971793804781238105806156726985725596172268456890614232693482593394451334305809071986154575581047259204031482369654259582462144578049499308853939227920958900114644267040722153190500039236837332053499803315914061409743146634118822276891174928977289054173104016607861924301144615376062205653333547114558022287458483558804873085951384051257770456331511997436187279364416142743406239313756869188447634670064166534390337123581324811292187041378816570423935534443948532427949703366682670776289630250666837153942961049710161831934135849153305092945773265196199696929231454742481449486784779711028509402348848221583939187611493677050389817488009319432581746422866900233826598107453029886781584066092678785448272691779434832351951152690880842379984839899777409732702123070391358203314679600613585874583471918596751207110696702929661528562218024006354364467765014341296520198429170852702043992903561242606100446213847804389813135766641035220203638946582114445472550600185961921529377885466219361081943668439116206038811976357715472683871032721375733542771310129436431249072754757204083873426780060406269614285545207073679269638716562090848537159224088695828430903288408405600403858887292692779706295932642536482011673357928706898030000696379479249415475988529702837371770403938367098323354183766995395163654179150718989988613446970122946265278021465208342765497111704933178012782110757612393959507287579818525347726990867598791263677253614468959087199682557939567969624057267718525684700633649878248119481734833727066930783594877287756190915856613474829877802417203957764438900714032501777908055103535802694247173624282139041320080925412715393732975224050143794414911577207821297033004874611253073966473750942900509583423377417439077469378347083540705914097021239093747148480221646542475564327818087104569878638906751893276165845717364400813695799861393949550312395793839945604389778714093413986172223098933541014303092320209290308953478008677670001947884915758126406394420707034087136828459288263074324942643400849195185713475636104872309935504454691849482232870436152945861671340022078649163238806385575442461427496221832637927420902516901987140720153763686269411502427504593337754834989477850826295344350090775011787762132323024487535215268946687870037039504872373779477052054738287742101212186132988408994444344384818725370091622524293705711457793815646255266858048458175692990661439564640860013254205207384411376484607459377486067285719566908174700638866287394848046660953584062496167518837883858137507130700561872385771000932138415098851573236788954203147606687106886273122852455933426918596565515044012306810248957757981058596309319032614149305434338962947843575188751275559399977458199805094555607964905424549191095038742856979551335753249677671146751045092058321511679179589870996527537838583874217788083305251627086264407858618508063880901372707207714957210291783132087201362456496704030961648940650028629789884736047910109428496732675609379492927219984967740907337843382634006787214284848055340515628425500763140179040591599277211061877103219030772136280300975789623363675352102911036665860022622688039160798352651531704166871472228599974169962247583682027460921425328925085748867809902669586370509929200753186109563254565694304087823199450820531889695545524242237101427802544090080742193191603339593526790000156449096875659521575588450033769744062803821917966570445842728334852357783844110910121160560895423972615994519842803488999290239512542276715334589966153179635836155988489942761989157750974945769165730463971102681781241481842281852523895175877627263237248790265214205606102379418634786097512676053291632655493238145475664882425164101201298542038977988725474388663479684722619823061055049299069052609587924789131018877231892176887217481494565122972350994393493946212596525148257170512700630858687436815345097322912872683603304869324804787337769744013638700001160243719680879739982270956734010475301917673466857948660307340830121475958774434927527720739937472232863001815467383624212314517598199594671829211953876893535965746185023437184693938666324670450317227292446284704681509308471595928549447793821983187504964476059832725133647352111227290911975066496830650197374851729275061799106618824742124701043722576716017182123922125545493510634964875559490464151074474392927191133550656767654056370771667463051914159594615976077152374091413238503404825888290259938317097853914001123304521359035856938101088062568473095950141350178278410727909706912379678864126121443543965392141904187044744706516529961472216543603770489939214268151853672577552097079735203589860319550857751765448650146592586008065814075189575083525931968474075461221409420824906830714970728899211089455644830898352587607532331740658466781319824759476614423106889042635257151421897349025218659932437063263308776568203956217702142317489567645906481448231813257561902389145658795100711823269513213917080822160410730421254970103911511167829796025345242063808538512918383634402406680419560647895194052000300569183423130319050491905177442053105502246899783570456145429952477024607741534359584166367017565105430771072771342640947569467566504494823297105165555020852942578563813410337279107567294609475871084046797450261456441049987814040141166631025944922956307586400443201513192069216269264393485007469236867713272951083415289906266614808473502314325843486622692861907899686506398330577407010887648390598177367523302361374769001557588015123093004722972427408339586715309725692641238396663654701165257422687091119009522365890367238290934454289749482083624323148067596166012482768670107728202463001929412898263029745671260967971064805722272928863123156533242805874041454057020214335469829292164076360520697502926173830706340160009969949799196231941995929466307543316703836603192929139037185321487737805087210991003684219261866680915616729141397608833507056427408839825548086007506639056133750409951954971624016354052603901295416521103822003734714795713043004655053190041963766561942107259826322162918764244013474605248989135719766715082559489524793151511043582986652095594595987009809546199106845974705489452994389798852638831572733854389907219577018556889136188155302658136726403180736456135585360050052920752063999020163581248117526712311317478472955010930780193993131888788891117785855055000652190135360246385089699441836383867498902525932810942829027364802884059461948320350879676673605260782007117466821978461371309850131769444901699171983141823743158041461327443826410804760038295640664414686730489469542700821213531454617766869896580120010046296361119816279362618107908424086124099337333272486663722697320234011922786468585260523958466630249594593787052001097877007069266960977127906513240376181524585263271010149430032081816624758321528741932016551532078199713743073972879321066481491890310901994480786409043827306859709138245383377549876011316234647806413094169136416771473674340773752259817769771881733892684334423024969388976883208394533556312859253082763588536686214879995811548621212068497618222906626786201409861078127599127879065299508217558421200665988386333319423401919423753404309885850726756612904612577492000310873166485812299624960191794860082464916886744342021825177471921476973566050972621150041010333133187611194403183142925500659197865260342185954086655640054137015233925047930932944577235839309537178803561671806267706371883808663471998946522343073981450750769935815811655987387050541184409944973831559728484291362566883913107794120225216087769540002757381684600652855544535855133584997779211318881952935680124642388906256796093385725747913466084603479575565752453770115982962615188550638421475772145463582254097187804267797097299930007056761470630545893077605035893055088139665354173315569559537825176766557418237321069013453467778838493014071580430302026142016620942006294414280380491499504181672183223584193950742045049573542741983752020664744298708880449396532457383761409559803756394466280148147505638083225042975238869166682093435727531906574299303074095923904985006508716086239721276374736275179142008337039553285925856420323025436942665052863825250345268449944282698578312693426303599193356713907696693300022746955547448675864053129585022555943123637206038952008186455661107413787417418293434711320811779284273575849654069369682902951269515640499099283726838966671256494896646571450700370711393582517303256466040807012244420886250305127239126563858056167315504752549727725655084513060656061541341506693469588353151810726311663485104461589051924358034668197190205405543328699387535935831830441413100932089110048311129187456567627258989594392608175454985308919049953907005088234374240279169543820091094494663340721754502158683861108697865448166988422392383724984438360748768931842269948097294377334286028820566425599816799414944309994056860854290368655938387402842342417049673615840891896967977938971946399791448502156382122667427036558704303089845369876296459458117247144562880121411112562943257275467433696486064440813959708259662267540888724131209343126062974310720842039563573929620559014696532195956934063863020436700951673930315499523806048532473373240569692874637674219217517681122153035449285735156495678402488345204645917656075337079639153509437013650146445325706548087101601467128954776343221381628015930759734229412785073066116320987132743952390570232895342460411900924531517536089212711183223595302917165047490954140881118215407377085741500685911874538019167740308767816602002762748871598360502005999072923826363516875913616268453124727863844077348775403743389980896968908669560672305527745955170938121506037208700934842956551043375584835539959376665567238630951488615502919878525391033073049227027799444075563726915275895016070087390944360318127908767728268997913201619910160163132529505608126924472300183990506635320216581627299034882963607207667815049584592399346137352849051351586136712382374275637231565247338696050273897045866866451439333759102580981222066308868135716153626093815482668267056950126768874182490614832699051338939527560903357207603572388052870991955914875789444188506234951849475391617862398672469985958667882457323440458955756492447420854903006172823318188366224050610433479017540012356032299992345471193452170013141923262311836405478148872525863839849347904062560303446991743191849559644360927602919576266188145305190621651420261898435570010439248117835956499761350791444517419922891943801923621822194357253840745970375649831060856552715182810386023457567083556964638869121503698764432819810178446507479817143463800094478718205178123493356822235411042524905435525100727157216812108308894458143949688561627791613189719048282376098890105556023045955785881702860088502255462160525001516860267821311024263903533972735975041976028194529782454450393255696390899977742779000349680507131962365278904071377619814201392334289094126103691654761065573410567218970790840486724936923959347955957673771410070423484317647969256658602128746177380407190794294663322899760461040904601498522621562885385799024058970488994955999927052182116799947379005754081574232860913192595719246097438230191478911458385994994928457285384402688448451086311548455483356461965970777370195023151870055053478722751010557733119220759679266425715430764482766322952390458248922056304483861238196269783854885618783907953592648299958604906681903633207612346736519784801649350937637948218382033593695102806575914863328471536470084849144482625624192682769353496673219089152018747183508133332274283649263192242108506770197351269505645941177996794357869963930101621386537904039049940451788308321443953302727009286587560397518095005972386400956653866963385838872847243724251697791853857600087318583700248543297266503227519458917631888226804147433457172676955481609384683347505238140065055037965765520037949770645530796895533980798507104418852675283306190174828708317266895118528915653686110026718620203042164151256853043081247589903253136541541094480602838745544776043535462057454907664952805998916168650192352612115100385843669517676225144159227949915314787559788401573287497807456345405006229280906467523675350660516699670017523250090281900765196889676569038478237009251301209174758102806509247360435979997965549181880167660699242719775886271046726736088868640572527333305799358697076989580359658001718905144305150097903067111128213344883640535616178824847679520533788953409295025703954452738591389897447820286980910554512712820842734746318551715862465427010227464537697272256463544025531737748636150315784986076263586477192677033314142558774217901282468479985346654806470033395352754419374047814971260177005695258947474495863427309011610332007196394450648273204618318792352180991930147853216600253201347190279054932801863840223742695305249034144324184699671515528965913113468820468975863133559776754623723927607439136226740036953104275511416014471720490074636356514748963951469662801488928103892204298866172813287002575589632954626669419768564085258503505978188104619250641696385803109697291321403878713141271038594429557057888573888705226733948708782774022632516657488445051689541880499812528145518593167642035172582983820209315823452566723208961895516558104854983293341082012749046941435543772004238784586808822552056763411995708228332773876752883203564496085869787800518970894515702214136097018143364328530693605992076247404879398580472697921679061794548993676645106747413905352588307809084014024276518078361447443889715340247131568270646088998927804268317769353699267790201037561523636843131452994695249166164268191760455581640781298890580823399391638604528174419352138231568876947046073686282878684807941582240638755026070901809506466527442203932565099892259460013989593093707644528932613467760265260668081048627109989672936421945846001959109026760605522379733178447566681828587331792619963935233253922276483820153991396683305148983390687059859296531733187640470302094499179799991316523648423595985484610656292270206898983431479697889552650466212858603444753553006154273719191025491882361291527062989506100914393184180114660547602668389169666691493070913253226108767176334020064904237415093661027670727078472813990119752911183947328355297198061417721327560152924001909027946867469356443423952844545673248076889430586511456137160819416134110652377464063961724529865061356341494101764852591622463135455588957982345718830483663557327549949048004738684765408336562421921070900412667372610830253890850838165668385646064330689428490993648134782242528240718814654656214809475672066286394369935712828541873280890084844612775822179077937041625140321482153117115148670445833589958953146710120196153354501492172204826550588723021788156533517887051910317692898582408094994307631486395549909880914014852457950411553530994172192593640205166661411764372490783683741011392071753881399102649272525996792749563544882035863023010222637912296279878061636564471653203529857286603506250594427749880853185186328682167655920397484638991381829096424134856771285664776862082908507821036188748598867557489997568271507038962624087720700347579072258182949454157343860753231465832018417034310116395132608359198786716597999300663374578696456479245990614954748311863978600065399971776939305140966333591142608018077435869370178615048740663989397673835619674403321557451262856138319853339210375072358538831569464156805136753451130667409254584709572516509191250169335300296886004682247222735955153275595531620186256584080155366549498868858474513928622691386753709468859169260473191754787653301543899319629017764184424026329369016728969781073400132428438544875632223953404607390076870141601339730548308718171270032597323176956723534407841357147618657638238737118576104866471827866836408932480104011202722015369710214353617008994443709611698416465667909453533143765993407106097860614224390850173672606013562814508012917966628522407478432150286145966431139357953489247756847959263764955428969558521476785971174919663289578423663996807238884414147095201234651634888407446972549323906340992187769916501828204233921503726717567644732302918275859808032030413111322173115795613755935594025818203659228664539733539777523451197273346126213656101688016112605344193120413359611377466902865651727614768082208236417076111245717862196116955206114086202440352417721663464145930322145699564984602058996895620592223926042131059907528444000517873689107994667734840944122165613272629788729226383901485225282242056143789101486988910815354112260883906727946720464625144364685697546997299346542869449321975261831774639616693137932704003362843566664435656773597354582961201998828389218711460564967007660097647601885117890745592916917687761234146018360982112981469597882613082080650543721385666085379955312953582813579625230104220064328170719434887313629637949220722400034025870251851573027242941654121317117694345168136633075599267868988238348536206610849111522708206756698348963946921663055982769660419176946936989737180552333670499749916849672467871247856276448654901597348188979619858529440031965353969294161515266121526771780123479440078816811746497305248166501229716933049022352295746239109123404034876263866967384834847593846069653600492830480428065593128466579347252192964409997394036563438468559521762352681248218857831690562323091908522221152507033806783876750460260557794100491784663349867420413646294772848866926710750494846397566635413355872592027200267951015569214915691069794971341226981935497299007778636623686734914059705692389181754124909500019576852576332807050989229754479287008087952849429820816523285040402823927939361585733808155738806022967725678959458259409509665119996715065850945524233531327271615077491358284156855940838710799818674698307693353534613922399261080276653907494112939489550900161010040941203407936511130443505855793148409880810568042015856071641373780038902472486982892139024552389981656129749462071520534173761399457576879002611369483710092504161538288321355934835296400750222254643187893106163782610459776971515670906433060350550875470509348318707551101157980142465010663075656725491359569045526345493297452244205004125310948963814695380371787933745140256468319269235658052445092087933885652831548618900784448128039139410553705018289253204962011517043516302396395985174061258426006173663560867982955604014804506043714852315627077535007388152895264951159887825387404266309271622618920746332512276612356949897648787053726333338309138018998244803653064573964489189350112839313635798642033435127652411118499280861973316504745880223902363528396620793267351594143772485258058913622444447588315479547407260446225216662823256302828135423079848489460374700548892128709405101465270201526868416219413575382867079164790020465193342903654614237052793385325102864404544904848959373148274193901067520993107563623289796188287131161113712133687595572238118478548596469567740475701367864671289242050135966248110659990888906004893496879477956966153245994720283855959031418612774196536109001818166854119724580331376562766734629664403614411891689006706828123836406576494878686871161723310401568584507970521052897720332562611640159001432396108300275473205553858496191803696217922829323172397065885973914927196524124007664295575229717546270677922200584421045014635473189507478101969191355261521651398706240183406402935425358818320270587826586383091657243641387826122672118608194843368786690685426315566762413075896221232871638482409468810099194061221999826669516329211538654641438933214196733653283630981122526070163756658750631872298236863391524156569633462308280412213656289427948893375098463047437376047154081876504537820925635855169456284144904436761376009175450839914798800139221299794975942111646480285281279901019347654403456352944115763090169929053657211166880279682394794636492577053007187875163882992698833327146758869403834499432636042937158852074677239793768437916430637473873924528625641867249980870734340150573484733351583671520993628524814680365496607740020502481226426299746013093571490921635275558966590588532542100171473050354963308509721457966499030827172583980288029716594234606847669923533517021546344951735414255128842689573845201161662115187793956533992101325091744836076739372693655377239240184808672706931842374396146788403942059056148726423096140449782468170306466145329482720070088770345302479841953573719216233923013676959575588259724402244127613612658047211524919405599087637996749508611229257475838376294769198259494215230519703900782043105151041308355082645805603766901269420256464809561984051483641368370775932399539212861208743231605818639250057590241731248978830480309322856462128177804699449227315149015443954444439789975039720621881373382621677023347224870336366652066168079028140727647545592645176119960322813208133476665753019345324433480254541561925393986881268321597911382091136162955765140761212139783063320326844850085488885641723611302213818752820344181763347368185157789992975833186103946555166895966318997330618610636248718834719751834618568760739587130776912464891282557355324430251091152231791935441617732961971811019646520020092411965202835321876078459889668047719767485829348017979893343912291581303989633416495155335956535614526991732224723711778450064206313964745802975622829308883652575201135897574525104107582807349686432464663608710605553595577112834577533600850285473768299787442239962609342452106203878665140768516542462851482716315837583431461460010505080823690831857247180681116757870163632523005050555504651767354248505870011692618959286486690690312573586661320796340345711048790669194088269156529577790397621805446124374335095832951913949041160260622017240846785601534158041778625151250319174239190329879150909969026464293508654492276778682571131089398336817480361321570599802183079631476860348625183224903998616456452607539571912391836553806458882310052176607282160227437487260718647705925782923989985900242296509487381352164047508071018361645865990268399083028056657132154289839120201216301886232259718376505172225270648330657581270828614640986725664032353997347901707309303268407143090200622124231091486752907046979792664254699550263374814181376687244499274441337623111798020846210688585617657883996671531129417546153407075743015611038599598620095303949829111767639230688712509798648560174117431610388192490533155501365373268991348811605677809888804251578646949137564269808952375770120120286673824730755198855902533646657197464724222447188148322013708937320455434816302590119733123245385360072064978375911505242043998196770094831764574343777928673770444371053329399527335506834520181511099337358398212883382082625991935154955336577136864901784322225540296780328159986964867704631032473845149180729972432026751072113032181800259498226617967705803106468189655361604012769951392826158754734741644266730350520527195368785155322849022236053513717479575506891706134506432943559956802151322031583119848581548962498840833071714310746215337248011457462262032594255138851941626478181530169663021997339877267659918056491840128824822916781300155950674664590899979252804751286983004757619840715921299386916936432276013866671167863188284418051319609587418688877415713689074528450029047019201247908193830743457716031215183424753809952853538749671677942931161311150655006654006660145798798217162471421383031701016748008115337133286134054529800091023662386940500724002040513580979795300741559318662561697926325687067014159613253283485286443296737665426377514022077203268068145309098939999082998594018437653094759875785485261237900240904838118597437589630516508163902542611807515527798336188169586689634613829147058528884827326730651457784420906892314819991074063148457011621986723515136895224625048302296249532180942760672770157315513011022716996101020631101885301780991509258433074366188607919078270592953327228667410818335033185259880660449775885506344997545977215745228149027959806263472988414783627609902280543003687472300753007997278623073427473388916222986138606193515091519460531584360640610612236251857012436012847172942030239338546451233707797181738962568910224794800229520742063009825970530993894834126229064322371694583082328091296036915626494946897879365410309096918339926219265280483508058670116498025801765974697691442551366532209327023110067630213547104076472047893096248739292599631293089354776974154840514694302330597345224980823167737489054236914820120611666022571645313036838227660935642473742123127287425268839323222375861006661617614358334153725124544015074305725597391824673671669458488258601280881911782256164536372235872971114766360274610190633605454059466594911249276678554626243879628077726455302865646302416064092949203761378640506303179429101353637862010907567936887019789610166970362982789679974847665481422082089439160718479362558338014329976868207331703477165635242470984718756081630253059616656996865635945687957505233389978015230143595602423824330347996124251062813671993840077850032893574303572934330173416562382236722012755719491996555114028289380640005568927348037875017581695190242025991993290941259171220603871604113566350209310321244278843537630773933710364188431624858089248859602021753395767154516486550491986041992071217331462120090094890477615956770728487187113168679467686746847181895624218657494829706714653344600269340025997443696598715794750288534533752016215169667530747080395111486091210850885036176006412822016435358288554362528996661917126358133027499414247904914821589102785549435687971971872360301656974286257363483518455762337025366275338840608422710940101281473165534142413214890643553527725176391099697526088738666161868033238149238622686505081933624609932680359342529466964469882224188504945236234397203705380583890423047738816907971237714619137051497230125834638028155594418271063755233458554961779928936177630710147188366266331205642420723660119201855991379331818722919465261339094254126126241259200906669850337464239195563375468067269168881181699883089089217777669557372867959802105979397614102487879302368202579138536606659171289899637740963918425941356824286468850194229583076084877443878220081167814668238729558814118661343862287078554170290477371988268464118738959443218551558609804731246008918853870074463244391441858670936234336757619479300064221937750303814385939857009438924897509835686963460762367356439784803267734175710415727348792481229351175628319026850363315382154684606529856489420124868044251864932738109626420458630602394824722914499312932617461617010705116501104741466228870290147171910687258146778244821873671225275288023572813400780426553760977966333731795903280217755959642635243476150349784318153891859347067031230806464968347567619009588279279996331102126191131660267284625911005281694951364571752563988223277934075621350803313965301852062790633082665162831483834965120085160106859723706828674832898903398298276032252838257569192181281231365113340723960744982309738299941226090479639388973580034331350024230656255695339287356544902637927322088452578863340153397835354355910472983084892902765470541770584649027213960373986073408109703200809246696370953853181618213813156362017234041044422447134034949561373303864363076290684660779524473603760112530288310096651878709839475828422383150694386181922813961494884394047694101730091893741247358228187381773881513784961944386104595284162907378712567589366126359502014929388431969536007376375720017233398004204127651031092430104089590195198492796863121497221902183793162228152933872925806842596184705159329838545603077927212531790063100524194752012291269329478230070395632138625870294845993251116526710816086886437920345844538018404578005833320464849949571613969807049928350591862286259336421038883867763190791110075930930678448701647650807885134132578496804335571470443783770456204812953136069733553342589207694440445144564325716186145835815570548272055339333512273595216199461367771804375650362776683296242819870530036794139817859928399893167438001261108788143023047488319835397695093629165825470267321348285828828957378038562759102782374021437014267761009022966467333532305677163220515343322766474693927607296589387506151243782705328361291991027280900760093076503836934734234277412536296126643174771502579302593578043252902369142644926070925212739130201710563995995579743578489945555465699045006808541773867066609183608063490724778725526503126557332010773646918516172586839092320182147274419140108851010390312902039198416296316947978883559251677757891442642397543135290879187570240000589885397423317336159628923793018010288565631405612691576683541486472780154669264530382023698783923754430994725153199905268123118093881261632634968009189919876386092396623036285893704596967341417100875571714056987257788057523562979401393499439375659743900979376121454238193463667316412427783483911844371233563759257443352549007302357573767251229112989316446486663278835881911737005303754205200931474561084899253689224484544842779907885677011155550154440952395824805037703456569724795607351258519788385063593539939491469362528825015722052549422658952275928497847404450780446423427630926523883294574509249098006003994714239772652349366473719428300466347085661949518842318400589518947433067422324039131090047184788632319861635973289665153564316072176487208472766524750994205030992237439269884465474543715086488488360662559223693292991271756102975542461194322915123821424438883452597777944631044467602091175994934289869162471849846485947757564609427136995150925998459762802924500245936823813445777097932495857732957602749535632468262017556775465279445811599630317754126967648911649875627211810499878370235578624986754242365311087453026034435790491278814559823547349319018325958287274388793964728867558464357465236005700822006748956362074455699706427224750446722047469001432374394739279062035596471557694057711818135618145564745160731530218414779127401624111827516844406861272703994941096502607643931796926599318633865390160703162463903230811712874428886139659587739277442580085510941270447485081719309709895797474067064182113662914854189269606884697611778964005565029044942314673542085755453027772520748017212229423482343036645446730349116944326248497550911616925167369098464390041811640744206229540261454517488292798532597859496431294247755420167212996645671856285108101322659461400372238972228363856182495306934427588685468579798177536587723782332487885307868314145224552871165615248823710691065409148129427470576422109050290997810309428984415204046589699170260809242626688266012175053809464091845684844061028624433396803818834349665608232435735769693257319196690325688080919552338231160538599446110021056762771712724923018201321497759455067214975071214370556267960950949606819960466752642675407494920448712006726661474755677914537233075730533340413967723379646196188686399588764204790920457702805516056524722731279188330686136275038336726129919693385301412178472410046985032012590369590632099223625845600671330591832167130594659847418860434691538970687296631388652622139612791458008256881438618006180829299818050286710791934179994790846558345318611809514715960966618056748901484338291671063716895911660790721425278859362840818816478918411200757402071001664897923471493279173046361726258486493006959658215087676870881801598159353385013746228981718131220306607171332936819272457100697169052996718997232916485313099802725032603851382918440942024694906732438803115381496140721953611172050671755367651870743369832177605524373770576516605219039702283899162366569101094471790802465023002298222198256068225688713864447033038922724865454385949267389266516713678781237074754608431543788882621467080624985134427207894650551860957985467626178336970047055609695462265796080154149469299788357471832455556447218454051432470790599015462818276502303721683301406615870096378732544124727339961316766965573394643858271965353359813174583603036324071886902288656214201312819946556856030531928567440736115894878418315449126090076015931914337789538809343258867852951781249346105786646636627508166930770316915612810957395166264844613547473896850583095262840717270737460233074533687425942430258005364739369199818375180364413439938160625324837006666679918365719330478356707407540879172603335557352087487202149213625938151411248276612324204625395717384175115057142188466639905905501627927587222045186581109867480051334695642648511113339388179910132325410432227857863057213930043263256193508471438464052160260694744075171766558255035270874388988541280994787152255157610117816363152488835134567597098561532594251409375743668458750789023701715330754380348495548885363598954038017557178338354943099158199161364177991008020497610299795083588633309927629000066543820904821529774648314583961122482934247069805940479468024373824259824765910632868630280346875274138896866602482541707769102379267088664085008290798944610662763773382552529222308527579532507360837210587315536432910362252261964756427733010636615258356373027866505112616000341469949890371618328332653758413981281696375310194798482648438488442226828006056412664963037165899638753148642104585823759763356780780654746693518544238588112845055240813560119536182219935512468674757690733731212447100074006345411561901486643874708109034104181065319009733520474676537826974520259179827110887689028345231794594430553100153878239952194953231011994505360496895168323122047607298416506687426125394764218876413866612813896913360874121141146357917614659990526202676011512452589421687115747143058759419488460562868187573493239208617013005368752120946920345835144091044000675227047061518661902824845482870219997878067127090189480860124401706659564569093735770910122403695771637818109880065067539897344213833680975022889869258179753374771082607085732287625089473205152950750412860683766143138402512550896020074626912965960151213629230039720221422459473873220768454582170343930189803726075184174852745605077574738111479008511966770771658478847278570914704432644699991387791847413996084727435760979003311919317180728042076695963769695190855356813133547697875032303618673481708071075349693747522862338156675241503137057663736692903367253057528999128391170015832217491872585040300635852342747717287387162857852936819363154505480534933199710733298442198582321455447742641028462929773686008636505451275334852302599080166266571936077628317243913787030466075252917740674757207147615440707151087402361379743037059138991642000597157528367139488918936198642011037289506408635926587095424414352996927973893000802149028843756551748900730216337079292574384746322931596267156384297600471994852761977805336543993392004865242333751193800268114624794995039372296135794145250733789478249723038817339312596898740986039744564629591451283522210714746821549047174060407670746194714446994120562621233330552151894308656823050343099487487988367021910825162065746128278754445147489236531748398367921055566544595649339634983875274483232877841084504856181809337933714274597014493299624798649017766339556381498435756764332618091737360482868386295290506759050860950089602255852567527517696671045371264153665214078212850542270974865515057804144377372078913628835231687235739544745795293475496523986546988377944710003392910866497092570724489973653137221664227951840513944602692899416080143596508439401716787003069415158921976750159343814753483737275815156605696953777705537524211026601903164068559579436697574811194308408712337333542316692622342147053402452288771555394048818777771705561532698877039045783459560084685786813695167892463492118227256204411214053383332520917923573076638877556502005295955650651167842704098464942260435287748262051718804795698158514850234296549573594019568545878534551911304130124551771983467426036247935209187380595246677700038303474782150897498612993519056507436731267312772190378800178806405353563037809033147319386030404988950552435457791080645923021182108389484135551763609661198011629687989311098193967969536598362348127085230596078627096662144971011230580606994049146597062864397077104563229858772335331018961048354543291059279781666000215808642100066928537120930029490427589777412585145151009276905622594228898429671837918606580130470934512897860393788425397474566387328962553263273893034891857809212357297413522873097779143454721181922313520842814306255622847045107304629397977120108546054489627140358992807538901535182335668194070416796844774538556226045457745511856546404142822673490026503815541696664337730372917084759166394781713835042464751242369441292198832122001298341102925971460158760674688177070538158638164624920446494162153336651363736532203304945286875418937887272899159864167111076631456078064476483352907963237015534766750391956888622734077532545832348792472182292341164398237834511194201386446997593229291803691989967420561856431036847632051823746158313868431468479694361834998669189401469977701142129146485892222205109366939671360545068842715318115740275380342614392338801509663605902219538129903720834334429126652786402706914927701768212838079845292801772150353338231373337697811165691921873948657569316269901579913112296972585939389133583156343132287794735616873519040474659317401815011043439525524372042808139821261054110659313317491462092167011206114153255992946307645475061311559877777034941431145013977076245817285954266033573241424377295922979992878586623413389234312778178199453061901541935448216466848509905983626744396533545689118850374307338542474479766043776893195659075478724582777444910456690257539933787602700192681614009750813312558366498381459148038365935725274505148903385377877700767974443429696922898492326087172617890112629076907836559283282501203119666319163583758948189732051401416704009644530597492279689188041063272654236892671571527257285611835178110543933445961576417336790416232036252710694104942721320971931281298898120218567646883687643049186186195012146369703063854046245319677693191605847121996445095797499232410817777941963238440422691283733942164917663392373552367351663006004606567452836243276448538224680494920156558092389585924146064764558261845185887793218519032667031721152103768939889325182373356898955241931744111931908685812123802302301087108105720187537808928776531902138932235700710593089001463148435734402606575656246458572894430896780964431064497897900218168998183889216240143178343419496950880542818564528548059230343739738071001882877853146594468548984638833648488350109701024101373658550482228247453327868356349036404617374999552722640370134506178484303162155621034400574513217500479527825941192221734537862657214158119859875328954919938686618540473418026611353886607072687461558528072928027829976703014449083206704221575778151447631043180931839320711317842888168688507470701457835250148868516596537354363288336320494574482298387405979247604529362729069878772483819160381206509797352827372538018117419366617254718249562398769530670436466069483167183352864760639502975389437374352748453273371779385760984224157726955006540473304179389412818759497793924570241415886654263183020829154873556046503972842594893699623439571421730994030651770191270195507636072988782562977812408360716720702712752052914901256016143773366085208386938407721750875564342665785710919078630725456377495686850965286622414123705025891827523306633204305851838960009290034285344237701515775941524350550123262495387425172008169329897688235164324865830393562238183456957903373055978732863839350528537825539287368654451850372097495735587887555568813881778960832925943645620018713731004108240661461065112873515339759169778682078573355326132323053179341507779596836758048726487628244841334523902468148193662781882618766763180317501690591288612575372232586558878960992941763751357518085798954124463927706931946877232197415131513243977896877052260963653278538202281653634845746933776900738600613120059425943366922081063217830246514161901009022819729901686182745936522119159142658354212951433446362483920051092503174451390559224587207749323831383227103179370113536624111010323314997495353557389040818447765802061497975176391459526466780677118388871191752669763613353025295155641212275826872067387795715130717273575621952628071267472209575390037162294311161222145715505691390110061244755695437165122650617634041158270265857897114111860851879038711390851949494879773738182314357322873730040789929813849908149108040105756344001717205870287251084891969632928368888403039915366458674065360617102691120567602841721897862202929933769259561550891002985963924829252088842245175018586260591763934580049753725269950272138878751663018834416870024006365349083988694725048118806822344865693876809776478285756253868516302216590203722891530887482974872384101858247354070890215040355457157579977975264552388705392270823584509267843262438756223137600953716088384643464712170695730277923882532944390832020691424912319490565161187815916086429889738292174481345484852887627772921222472085003379583344072870157166425318209648742712513347684811555534524000020000167088106773204508377527620426110264176995162829742067570151960121057723619418422316523045878037196400471882591831464866776005632434954687080930671779746568886837146177487586450719298481085649788064364434817757557780258384468644191189023099059937065465307892128324338364022331391645122565210676754988468364946604737740018214854306918571127859674667774142559438935208718058864089509196954883766982793355353601973734438130005259840016871113586910923491443254930463978000938329515400157414030826996737494585285497221883629289495630147373237389620139869806989122160765801770414145707657275370250323429120760844326649461944992300740245287104646074541716914361984036973057385680557318166210420426618504807549152707543645744735845054327283362398488476806896156497632743475552111929090251593277993207018978333092299404552727592797888107472994702160980447280008105397131754222310815358733854039157084379759005418765341830165219459741481976864926786367513458434510683931047897700764518229363191593309960491395769941348160117283619372319889100137610973306495095735246654697315430918971015075383543209407814809885753267655384658257228405022781341711711426966169254451577166856455700694112919610450207361914915960381473506785584540678319953963902154597739522207667026236672042459559920200983000145435609657260311931037228438999263356171499482166975856809059173671336181263246240563026000313284730152636831865727452278308486135407688451038197654559172251950965172646540412560094992119571140523541236996409728549493624023494963091686822684825300724207409958662818246159527522970046641754621384776387503895911640799898853136083558636086680035057432362125170913483728419217382576050875783347155070984209903581638833386401880375088812955286839910869798421120206527791572909751705632742287332195517344464725012881327139424470820849467288158768649213806836597664963835109844785492852812463116085580774781416241709812840270571371405353880908605695226948162960909205674641233561260650239503714874242463208851680389381375656017820613124466454614128719984259189812062953473320142071311439095546030640019444242420156946151906259419029509104088297884414004186958442363075105447795806093899272044350304031295463481727475805597548431158526400376245148012463342417575447209211008021030932132064993249089360356635694125377702705316419920417557722194642594874120412589023371270755655539551418817824303748448220540621469579199817991844994474514842593400759713138620974843299084377053266401554683905737414756947655718310423873754418109997933179752833871555838766907803925837988507924275325226118781825025647120134840074343002838705004704631625329627672496310855761053173084234617378104431752294912786961659827733918546393557012244596377606778405486681932968790394831675152696366509796653902929242206279284024816542381291884459803637450099749229108298549131222992317924384448190140717788715653439227894675057615628774899552661166687305481010483299573425725311962288750395545140334435922126208309539381118261304103013662824425805866597908348320776152314404563716220790362995758237318014565257427072414587456585308038191916691807443008619999858296027263624904907131900766501193071393744603714721282617337815901727656065316568605785817247391151792823339836765991030596369726360899565692618490688727161709005876398019960786843248629118392508716105521813780450092496187882509659396092310764744687290454217704208944801389844089873636653081808828184644849350593809392658720558569263701057676114570067634471309512126315976886068828993362470094773227934896030433299691427791676304908346727256457376813807418712071004188036509602146835004263510838040763662806056040169523399009833991235226452936931657535142455097929973995256517509466180408613555144044931789412260530808051828994768269078968744081774814677612824863881771198891172004539610296067272402519331735099897595388188662678172412568963611031350871015560561524912220004545395658552383184116109418575061957050081984679922586053274504030122357799340864527236884341965713109280290847391200805587673683453621931432221792552666214480259463105549042637999449489591376623263147489553970061838125577053638948465752060307996512874015553999840492586793488951160493016073795094060810670172788677750337221556031169409715496966386560828839488688235731849386075777675528784173646063112702981210312331729599716295169065368561652590938512284439066176722599333634588268725353005796360643346744696295382492554847665319019103496149049995621972934711529708786605838633516377664274256673165961800367084683181061624499053752959298112615213680153815896066784960513776834875415118238815918458352464209329548725751488565753593889274688823479907063750966235387439587496288019038162670572007648415198781119163793638606535246977811094857805868107374090802746547964832439316442540023457605653099149646259942928112367231178278765015125122879456336021984968212461550471556109791456825057710566148038053475242250478131746693764092566998935486207254166545616356115698701565352931920740203088680469199618280388128416976649796648718901183691147389572932052764385604145649674326259614993359660804028612623130833217237674647569101817855934572045623495226375829717468964193323870025847872916807285935718265383395553045929124925056770542347643192028836889842607182801287853444928215035328857545183707572721310167083575033231599841559166430806614611697196571333552908472003156595044901616499540601450429213187505220549918217866311346711432026460587879466504388612107849753868713181527937197206948347691889858163742766613618039206148803932944962728594948795164418663773861482197397163002720538265241506129592719550827019766493536508760053897891332807428388942697069348347395049917020542780908090120337853362923033400496707742302560214359353187811417915323763438109390009920736683045555155644369741127812740687261790852935310824823279382700019223932487135482141665813510424194620410791417946984282389798674442358834198329437726824346020828670357766130042319231316093975603743106865992276778352859915460875521707265372858276373066792980179585261989693727665445138526185344167815704278728813039577441965005527155107470634634437263900175313186387641311067502028604449164651563468640093914447894177616932740224852287550752280644938848171712638523969682306446841884878919012294358223939564351063798532875701524835332932000757966239085524050936279972569931774124041728172452568207231041000525020042267324490454115304267432818937602062606967436449749547308216286863171956421060661987461489199622245485078082600059420144172963419135215736791188292444835228768322757699367049072009801139439094961449775746221397442878401303359363019862769094137504432865921525803401854709809498157339007279374158676880647452502931026360702725561330365466884420452789798076968012815555946977444740714333852905277290456625920133220952129037250432108514588027091775894034526186579576351895233507794446161821782290941127333641605189476953454959425420169872595750961355710631016089229649059770253503512253550836781353944846192573926694137754992637503611725067555489278803781066072943295870973875818775996700010257284633370727640173555700245263853195250968748244207945315661831914569737667613794461809620206752663934171941186037333210931795243018493756450600655550181401811708504504079506534896387719551646418119729340164729291695757460522890768563733547162744289425150473713199165110569890423381597436273895596512073681874572940793546272002538303937961272201948562127747571854732276051931998064630911589864560617022055540547605042368397530652865316001543801473261456087709658685002134958990358204810845357715553143357768252082051366864329631611085177668143906132763061611549686026841174250688343734658092389889947185172503491150952275963261093307659873959914243488083356182049945350055066342642750119778707745166009299268296647416835767183242542390472403953311696912064940702837401416782152025990774015201989705916689674102246762497601827125579289322749473754568522162492282066818276148192789511167034041926523547749634239969218820405774343793140087347569837186208571945374881278797110901922607379566839138589792408199055968118942375597195626223097248772910725594570444733427261881432843021113930521553663669877422221802678397137296570079880948795810167753732409767204657162303445153425573597847095318178542721668058955037876697415428808837317691134704018067320942284851919387404397738928107591002211636689121528919801381704404065860179149315795093710833689501043097885294024937474186185202332160606569685118767355485159320134036499045661221365340595298527987507030012526836920487289909382126463354442667507804418354797666395495584811492574006793649916211124326689226461982922045790013035727545896956379147404408653600772172940052513806825815179501410287157645160101807466193151612951931836840949079206563901443291602827064895040400083296563759714596697650737550360052251357084030996486410399441910624641181380179189598479738021675266765018714308649237674159001516345441734971021802921268808445153138482939945104871982036242164292480717211410473492090026359545130446505625793107556040242996633100416120552130825872163866220743207860170058914441888206818739777772989553028181938734159950508517955954525970900947494131189479118610800894273157873531536651806298530514963507544524577908651536043072140724513947240293878593097491544975894418892033599878929424212942978606189410431782301297396386796470234664802655638215748013870350698390576097235136475508553285660084084578986740644342954430382777938664779816718555405616724515799047480851819156824054043561386424228951951246673490846366592480875865211438042915200734193448397286678269208881714057807416697641543808753922870234525700750813086075087558213958349261828300734675536590539581602808788177594021336065804710210642562278633785778676876381126648277236330522866841719684446287033950912950911909419554920692863447818427890423611141698431691049696507572926218009381384357666714618374515506176158879457148929695245845644906633165301559134055334229724427695428408361932672932260778956905864698892401548300848262190120091892208805302849479971305101058018722996973803425756903678174735930449936148483257981491767241961892100818193820920605686535285303614699014919653030750746313864169923099263252702383407731984188517897990955878669113698255788511927120625690786170258327442106647309652022013040987222588146082934577158439952282407853435655507253558385693119956427549570807230499355503593823030118508789849524313721246092355742784242877197812052570656861203451269193837694224614465062660331175139582763730545506844996601822023444431920172552057636082461580355505286186706608527905532425107452318551265402716617032616705387971676391278641745628126986060946553885808551359602983258603265530427051170248550398394183085001846722380394605023478882872495093921594132786937285302554931019822047137833750086983225807651302740589769717087943940172013059619114726517912600034892008095688530443223829275119614142659695597295632170511106987698824814780819149397408547281699738860370246309711408047594070579946018235879585634966343028449878597834159529419145991116501210032338231953256121674221446446149094288062693856646558306555598810711949858573371600871050891496714877935568396501850531092237299111153933823893391960863370729414856193234694120310314106864420099321108757173902674211285827616568588645432760004695788319529586324235860485993744451740069168636961554196566761041193352116105075629220959668147476118780748314533468363969796950084700350515499634620719418298668509626212607111319018209350898176191060322846299382927181404401032424976286728045451675085335893985371182765576723431422919014826604661808263195693936828362754764347048709929964503427774141274220254775294468569025194018610729072121170546934676907177790665243421569801890070286431553447568446007180649349145551214476981884621319533521422231825935768528528378585427889893638032871129389911208689898334778231512985494825395702272978394351496492709927073483316962588403887800843339256302935668864011442505588945269182423970569158421302649853455152503925514622295047189676141042876900938295887447099298207925751413535321406138390379124417698577469794827228399246329601401845167580999799595642610947197198355796740219276035375798928951217598451267640269961714516870236570600571272251717898754044845635284651823092378438559817829370052036692986781462255296436056144011964026496459424250322485414382367456513772734156743101880044311170734885835510154120486761850128444849869627947674736582960663918932467071355490059232536912346378476325182775038528057545962352227340708584281547602753092172467828177395426494960854587999739260759707273281863204948367894346225230216791436472307505114315606404815443956806591576532613103043567003564214484336221277742231052977978565807104374777653180053645405400658097287182872852258290079529099907173866472538296101992271083172792601108839081428056428482447394950049639470848288560078243570670806506698697738648464045439845347739501400094061555025333359795513089295059410249958471561925510503044125909456926034708831522589457665435422481473664209044320593564508705496505079760778556328371559914980239878062783919095846770559412434880900418369521185423841150866424652680034871391349301020386927492217671337846525312200031376051604120189496755328637723822230502786199693522135611925131912066189026137386604517427924271956800627045943655087070061677868989684620343351922696161778605468807661905821135221281634455146369796393348940435837622251309680863975895360039621700432349974127052315597492624871235196995704259676126448527175297426714299330688163468745340958547911184545460253499384718113641708874696083932974433614319028143405768499757186207616807007723368616361117294556800188997811517156192750433622997592897316222093364231738048163473413166821790003723984635903975892362995197040879211162678663629668326570985208508549602517502277230051858307723513381066919948851723765521245678960799326800784823067039020335949543416122558358166927957537553483430309974600243301787361246295403108161745656198399038948208226381668331742850111960199165611833130347021443932782272831119136797903769646609442451756224359735189699373286642548898176255377176347516419502789517588858670699813349121222258348965059244767292010228731001273684792633133696482062723093869779670811907253273335618531909057122516349658266832103534883154679350988233383704979223551536295091445913493923644676816730449673095682782670282841685365745806914366335173254298290687875468282432765938635574686038805970448227028886519159663663982325939240564224629269603089081421973609560879517721919803023217447117207498180791079830667269837587972837293375035080125395822181453711121748536795201400503039122990902011853576150136782568001763143473687551783566228880296098786496091221093893617116934192472509100479061278229656750112789287134780834457313832877206118985264457108636727302919159883864099124634618727912414899566511668214951446728481225870630668572037305906720899733610620870150835416196638144822410766175245632557911502809062103683897472288955117453185657373053566493143273737775729480922195444196602892416063131084100718604575603321629689265160873442323188011523048809261475387815054066231503249054224147181828730711853383790563209766896733364325893942888991141764576034774998921507179035074902475831737766539793721872662567662141229092058684411137246599191639673904722352214857885494628432625667362115769724357178986524292011734926750149684335198177174681048294154933402420940048748171017262105908657811300562914962555517389577770111340433872193191496046875403064449262126199252887803171654862531097747885232282772938985759787633457027322204457525634872868090049098796841293500684590097432429560566254034592642294751252062073567469134527571581480773156356180956562192601909124516375335003831454369794830921246025020669159958981040258443574180087673927553260998308272779411835592904991339409446677923228812442083545549097181112908802358542429980677265534566150860837292508904809550204489968083810338208460684258727314661719659394414562752292884051324135270931292944263904850672932226575706065494340564508430592448211119062232207269448646818134778619227740018899501878223603876534743759222762757130355329836716216369895944893780943330092556174676050205709407759243610390015284045754432341833042952513578627377389034140482181775244554973999418659609165051547103483370807242122787693697337728941266215916233517218492657682388834549747501173283768729403574616584079899710509857762936878343140164151354244465771113272006229468432468485736435989186016730596608893673870794272067057876646212134182467703806227945177600910920098903788859155375802682961205442551150071342172911242820185104130616719399260247095542552608541282015271108416204358522830312699965889326579218883115971995381489529981522678364201027714139096794002138116515325728977622069966399708133866114963339353437275605455437237279229062970777018364749865633855280443823306512652899985563101887080937070815148379680525798242290560618125145063813478174945963943657936163494687972464755399995412456127408184577172627991353340415475163729816610524541036515469009231414651012828486912095992000777016418872791197632864686532499546194511770173939033535712190038610026534279969536683945592380549494114841842747666769219018761184106404734656491997433533228507276078572103523775462581386923420403620534389705097150262993218690221199116322106657831317245035535540005906080903347107817471692693619515083720708672760996969520963945795019277216320252713927651658265249136142250738656451216012352423970844674072498721405240824286615774740860899973128128530461390825018315943071879390368006967677711216798261324105864500868913949607105887785847581613385068248896345997582348436525574733030050961772509220133036466003589272117670786532569843854548055487936751988662176017313199796875755795173937579527604610309252364851722161239443725834761477342106269854615236184909667930697837858173102765820823903429574583825181229497023220076322286884080849813392472065487958235655341836979513088186969359554482891032375184795275466138047420051686483207153801799123269773521490283344831122192779780780468561944153664559060844491614870243546110337715398391592160316458485316797404559102321645804756949936857162389356824034239129885566353997097401869935470379532550497677349339823174701732024521507822671825668407665193206899547740932346282466358159168132091386690559903583474909292457938469074161214281711088229074894997590249239981116606481658245300124760723848864033320646550402107110670428216506899466347718721626603014104545240967097121956884662598462106047904489071951170906941540530775084069819513467065218048662761932131126119205688211139450042511902884768334262661634316432362906693333716170739314728273204758060494915617532521559553648781591232293909361734440693525864827180162433077591726823467088884422859805045372625347286467423752950630477129100625080607600856636301954323545907396030051266785482147173237245355476508600371102704599815828261820844620839207524870311490672118290744392526797877509323659571531293213296713040006725739906148035440760027194991990701661718629511411704573787329465998562885245242675940690132877686294352291523076362964931383076669737800324172288576981613106877945199066110019343891386585175875811865465765123190426008370455602810348282022283050613330546267128773538944855121376037732522448317600461945303752281160969600684008931127447521153771170114664308195641932990987644664499032228735732591842950412626593082432741099582970254532724975179176868256716632381892533977830140351357586633645264371195877437322796857965780455544247784563737176985275862473991515459191688217903353838605023411215550978871321527735745816097637263473216485884118798496855660358308795963069720026764689544113090562442703997089995630464497035060724939296123894254453500398230498076475249597405450723071312884812830746107945992640892168164990897838583651637764434788297309993716402682235914060096634717227614258298473516483418885237650020030140781790179372383805001425917223919931007541066682723903423510088819557235570119113129218578465380195816456181232132035000450343794402593662190094704254803250901638920359314566845474512859009698205901673650209986645428237335414147777406165972126438220074857627240278767821266997878899544264676155876026146739021662632593928468449990133238389575786197283079661896958868141485564753991874563433889934194717787322274562454655973515808262898713213066301259345724486335124726762523105847979500347329780772298584621617831806446202908460078903667424932116605885377249593931574121061332783086151612166369141690943134483518569063102676352645217955518642454276342544543735340941918723555862101813317706611535549892755578991811421442115766472581503358226217965228526913457169552832889543643785573595541465566960223386395895553280151311707289195375053457407264751096788057912938409544331878479724704879533253385456569173373993840335191480618621977454172025038478014641325681554457950977808285222712247900120059116062235395700128518122555939861554118037582611739281136863508363960699762886208127053694528456302117971388665079341427454515726257147142168446334444950668709895357241275638942473133410072632866787593067185590164499151955269251171383274313854479854959203311171451533017356927506266400616839008303919514103679446688163555275722870749546212885218673347285203934767959669169316774779042134771026169837660057510627011973494684483026811289276752806569161197311357342793693496735911135896671092745491462869222035861478593355861887543676566563997280874336989430816196258098167483430840612445786509333381807177845880560686887706251536001345237953174185160133597295131911907673525018812627482451866729124615806371719562820670386816358463359586611440971174672058664135116339631708175494496841640844993215804281738817607867948754275075534768745417054017208262145873839773447662913713492102778373099577881692339388929586350288519091442493272692987483758777228318161879399994640593396383267102386900523919749991269739380402596755588106682742838740196363000659623940048322167660453193118912762166816086615680332849638836497725825918234522540585394793519047237463811431040088286690599477676583237503701364225583366692684302967861031415448971414184327744875155318671520029607260257137145916147568120117787377002090145055228309214291360869609005424871903430151293052189287241161800664605658633475424142860633346238000987137607491083470099849731620350620503592090633392752655032368799800288780972102977794471641151155855364541527485458471105193347499319727056021096773350005010814284996792293342640870822086108165751779228552598765719708513365733280734322795642772426574582586480498199791380684374089458472219495116910358459451934466932503623562375617847533915254374482458731314888003315169311290035206722070063617073240481752977088919174199556268890025818856721953219582001141725523907865446961801679714633518110408169457348404530352572331275271263317016231282433934849367834798477229573413955879774920930007419718185338782697254499993987084005174836792303727923581050669331672282889101853139547815886511771424434926436038538474634536162631719892964372037258653165600639357106266949872471552009412624165272042694817204975870410112724257913957007561648353259549742958768616225929067250574478651907599190789911175793008714183524032006370675619233245501385972787548894184554470294060030792745211273613740536238141023153031360927597869028112002211903920167335200886755965612078284536654557827041952799445649482651407911818170785317450820630980593651435757065419532098531116216390526578416297819756939375290910511388370949073132030611659683894627546961090530759728547491271258896101643517656527080325216768238838375371767170772703605327000787373186826084935703909768648080031540133556495281253557530230410566410081733684859046867239022794144212767785106656832660943381625451747710166305294801152131969714848525905291277536165221174083945884623988197654524718288991759686714080698106978621930535644273092906584886701492210610027547930657800776778841928904381703622798356415237740595208523849861080934187302614080259233318979376185834186573738633968054809538343271063595823287335607966906476838120762041548675000267170665331406542538569712881564348547838714425861760915486929717338294249975254707287405696623234229003884594625351077873305094951347314355490747233143104678209115988734728323268081156781340909595798450622796784764680443621152360434173483997824998475108211342012931817518740224227224794847608665109014361903331037310524274271324637679866353148167236694457877266157224349715224617340311033669747071505628867436798038919719000012315345441696234190502526606645539042105691964177979019769881238579987583467849335819671389152372368185230154729529902526072286852624375143060254585788858674742550675963322899540186152486562394221308859516364679132694716071890867105987179968772182722382166039375104195667860130476530908420403000830760450513343050292066001200964670788996798898924294361559615095480624630038709997663101220116737376504153889775946224437900838381714796628499642910323656899603939536173857942130443683004222738495985562119588605378413743670849680417256964651136934794695432869837976889699264585898226747094964725729644998355492819493052194001471214362686987378742297122419629658441826714899710590073024196900432521429575881078729920584110747319339205221331513081216907227199182969365890452930452158185124624074680436868564184821117096350737624744303682050194590881987096765015622725294209004747565421065705919200117181348820453086633378868192052591943811125040714457362674933168301576945032567071855766590955862151633420957117567897488117082108800930787433990100595348197682074650457583263702028765158713124798685106166443032184912186299224716906053992586201926211873058824536960814259292934306484928891970706511575949125809020030442005180968673617647271940316125156163892404340387296838048270159237514142245309668146602669815452051043663115167624417557000128337525001244831494358841684613574377854586428974783119886310690469500854957798883019099454463148848993231737435298277875031457237999407706019251531306197039922380749093823336465140853518159041274368188542221099116946900473116578840559635516954300439808355012803408439976806735499147689038756094589967940649059194832514096774075500190854242508369623669555595132241050320935112671537555166337866124088400161157272718624437762579025752107059460548776680159926123785347784735363268625139444154864491786674721401550189499863190327663503698476297134983650395000781787966668443192226162089474299985040159428072577671272725613717723848908901354902634727864791403774401845243234976168244864766417578924903039082617010405315160704580739892117110767348134481751402764693382795776436379059152112500458357030825548385358420934391065732135294801964531750983951469313357327824422850280480826230061994546270109547885769481333153395051110953941178047022960179331903005330968408701836927936864271578106255987378344702136650659270923667338885535599647291251469582036948622748237644043271993140461335344063472021546505591725496623689096604876107916358229605831722145318761883615934677158111177350725172510351870900069415113813483877950939013727214622452551895230039379630651552045596254507101574768976970167649081572278436886428904022384544129745953765204756080551307982711949201749725836714118745055694432153229085106467075340511787011782877750978123130202082278490632923379604263265894065820709467771502822042082640613567729655078127470317985409493221529167300409754777022176778636783673106662374668687564128710046727730189374381491718885987337902854661429917840715742033963880239399039899520710294816955624644420944842381335396185986736029707680237287026158450987306845010802009803839703195016250499617879655444907399363901896996467472798513173192865879218712642815349828930735139746031515069633237115525746199923783190956284180739085875746612455969424605528224806979649530026636516380148140992983613979971073299131922110574436643365100974719363258784929293804267501837272644445507226723768419544747083620483554566153884933551675514148083981294637426670279379947294214821234561467010834108526517680902110657895501525351931493701220926207889623151890621450475791367275403658211960251687425608092413244949422970441088039784484691948289539494451731438309445041392663850933540804805237804238574089308203261220529073293467653219037077720885393137737807759988879784785360618559357377413413231141064755574377982048597391125055276980339255463967957279799775539441560710495023659196833012641291674067461842966567864247601580976359722965227481072605011691706893561044536171546468070603622018910519556640979040821490973399869082749266080968899627632499352736809558105975817603470076430403916263156000793313080425661725679358088367428535090961689153236754712911089466258226552866021406674829836226689246678718114008985519018248244134752817755853374142290062188219799504498691263234108434818463710315138590032801993961556439932141216872260158331327159592423730896702309905819165810474592329060270463159062557090035600306695649980842116108570107725978472830089658776797824391212034679137260943127325232742295534702106940012230915841847219869112130921857033051643706165128173067106022724629693769176305835503864376125517860675816892183122427462859583307673543185577188452608861031319313308131444898879962599792683878466274676381079207858659953037656798233733169557242586888497407349407440677061102360331796045887593479767711599025022150289131320839032665113508780082606444432918440456114130330598963451937060477595034666094983783568768032907587050460773978794153991677267488822763831782031460966055758848023703388956926027983303414398621084435096433162707395744987785547078710816119572062846880887094071183274321512554791547816813824828800129493948937121091470963903014520227920105061554986274731531684611849918852438378674155646925702540267687979555436903420593119457766376062644109915112261212890975159753266501401989984605185192080422176280160432009231477559614755108561537434532852031921181818703780843861095263517653059057764938559778086706265912638590109616913463863621421072022300924552829723049981709404454645170368039107933555081412851703047579446010221675830443590610954525753954475932954423917657027125964069354181702345555847269589901766203157047027134027847628735976113207059694276113156287639303710812788372685596154292422273241819933465868106826703203572757140717361738954085489726146660253623943113934195838085949466694097329750335866389046754573289405274270094695267293186541144354751303024574643094670305899886048651272010223584887467042723248755792835343413598951863228538691306476208583454799619727973691395103793756532007913141842199418724429551646474902464914483884714813384309015107314049649950900106579931502874349541868579810318419445390527858605059965435846913588530250987726377931631116615835576008511250409423261573588735694638959229813543448278063424854889196725787764696685283234896221460642168698873264823585534932759028270573300037716471973788052658932065061954274647395505210889022552523871694888074747461947380135763781855899837217289371638691091740498927018901899663691595982486100769819500622838868787620685242258106339149378201778507256833554107622640705693986918537420890789042822749774118428608326035116320316454580438201722428331169618496029381102203617709895072653370219287026183374091987568399198606678149781215902836467600345912386296243457093032337555100259657279790535780730122697916356078058060025560560070440162130018595500141421379150580115767104203666614210011759625203527488347173978387863435761409752198902240386906340695772686274646382499211494761785068777144958524567887144556949038912872174318767656726694543536669758890816758824344510608712097625327671997873842954020405660796746126138170698024622756417857831195493676883258771897588511707388933392092581176900355624250432693867900937542795424458241324715458570739514402242612116571354828844778711756563771259066352297249206955690136739646924314247439357377034358186980049623708610435504346451164312259146933986986854578189434148565947211185310782608407191113581572933906045629919371266990587552802641119057402058152764473239415491169168210100495414972211819592443961952202337052595410608690544867728457322473417002182340955177046812231870507380682455784305208431048877674267426159395670966197757185005493394768461156063382314421880510771578950036841725305415279831834517014370352761179930035029225622600253231053985653243301586643371930956342249796047195684913878878587172013503439034349129083380440403756921305456018728870442551940929132500558555460754499523458752314093639488204762104961532970953894838222057387411636558180455604386946718874983011124049717824930649228428230424937372739569230116485469811407401526717164135785145096137006105030219397935377596778452686074706925639023441942105272550747839569008238817650955250324378897419488414861179350483286910748920324815723460536683735590136803312772882034412809957600824813718682404231790003185101817684672464243247287601408776234636229793814799961868958746958560680747887916297651684693191841554148044393436275061668120263394476321631829030516416498227346681328405926350029654131448225642804035468596421545843165778283562553519445468670937348043767065146318983843419782240568289823731694751607570427483832482046586968738053873168900505288448739056793992936718935422272594102660184693309053461422595024005888619303934719838798330502722466689847536530803970518115964019854190342192203118505063408544571271678640531613276226396279330171059501020088131858856353315065542138582956473332026480639140849980800176671309461441288625728756377251071199351542537769062404194381272717000179544730729934145900302849530763985952518819440004014798964840873080516164526048636103231995429555494149703240387899007082840178802884967044122188523739716244991693281126934325125459711070506090615164564655847754957354401123721650496483619874831378540802900366087499585154547704507396412847912938929229968369281624114645237626840354413189460845821816258986820660608771083534366390381461421815842993045533499536702974189050360276495147297718284425947118023169954404117060506617026037399264935985437872989378489872586104728183717352510426484654006814089586723270078748659405132809643610265866828457574128574716380042285807712044312270561486015151828127416888127574773557323194282957692117011399632623311379394901382977173043176378278169825511184695249012301033043513620215049042260170179556138316861040886565237287780291934318137046706727388297962131007258416383239225856554705166384371074661381646355890134909217280197882855239920466511777114674271550375528453589036191112253189159472972850544944730853422107496267002021392918485575394971029889035222499314268508154219075484748026113489476740098718427490647803011577854302485471370784772869180218287783466842388957311692644405963229874467871320952879033711636873622634786052553914495441407344459823916856301282709820400458033128818850514651223950436458722006867542719651194414631053083636363625423375513849150658041032795923340643583708262191054831387678881285232568996077651155607574051807749915633109235589085575281331983894914307956202950881689248624796406812526062467019367967405155768614491438660586998341201271200353929389965684364934193758610490701939919631892805646478373205937337689349143208870838594640300060692731352785096783053374971800211849737914985255311956111972161529832316791840521606642552465475914871664244620296465880400016139534176374350105807590233489668706191038478847267853925595769618929033855150942209127248538807017393058367585827427265302219630037652939716038247581415710784777889710431682895472981558057258830744257216502505685212168272241481465653872367789056406443096514091772874598461243535305762183292074163664075657919377866814486499911154760893844846670437651485647296833921083743075886292606072691792945399373456927820080910036528676854988659451885345900874601810237151806824012111260125215538310773633052914392605111619006420219633124730009586338188399497587947322675071174775101637104279261276818194755412402306051190610062865269174438539300401144030430848558438203380078485119119157000365076334985819657119529048453136242570734543919583919137049326386512304199514462625535098768008301698420868488207199289074097428921517902061524024454378259020167280771123924791969992285399785371862203207873066770833545552782886901129234281044378273190184749552833404492564141602657761970995892517635914305569152190182619192361972627581906448422706054282104968064285512125369398334037878123185624904601569030903809353136586516272485088032146443204488006736688586881700570770842419043508518568878312039003498951812444805106621619155304428442627583093310172410638890383953064864336950681068379032819385444140557273442405409635989037172713011297797962122178492719758219837765695467518165197775144866318553487012842410104097498170001561385553933082310322781314206707072688201160070637554254361940379562383386818741831086459674115034658086929245375924916418912162066285467724107293845184373387665876568604665041927783389002044990900058424194742877794028844461678549627791898511421443528247605456771243120496477543737763611719632609120431557812037920308954056998997048863335603363857722343384961136965288896179354531964283632000488495003855139857622422405799005217566150766962423777980863121624216113190915755906364254527517137556184281354746408743043759394186841202979345867192134486235410323009257650200752417134800444813494276184529882470999961387576132962725576481139045423199007025836598350417248550988014103630086262279533705308559666980159271277455775951627662162497834693120195159966186753900774715506152008620221408512267873623804019255638700189361864145138721695832405087915459019793092474947099116823076656683892994280024319027461291722517937201539087176850007372963961407288401624949228167678897402525251622058245672643853990809632769936362419402663787121548359953058756454493119877432612305748240143629793305973911672891663725987504091980085614296996571250589025466355777225293264503045467104454080134395966050979722002949930518253093593094011762026671824759741055360393327409771988038678447518795251537251895982252888741443530533436020054401026768984126382019096902317536049386802489683100462760454185272068753834623700011248607815503861906143782884466902862327464456890214677608840037556552893082802826120027170863742055729082229349030976511841058761211287037167962112458263395215740705347278705368061389574971148553956168172726955619049438054357207058421495469122245379944327551773378357132512722691057638151084808459075507782078654853236531055493288503811338034982603580538896192360677995536702783397833916451501587889136976672542221905507144751967284689579003408226180861852614971442329988383084927212534821305238281988239862275152579583518624016070462127615802318253767146224067030186633148237725423402514483150248720809634623498088676240322318746564062192913005657534209457728651573177942173234953719087575387043604668472342090412887808667660585668592697794352103662946291481247388806391434965267913493284532242454850375046528560730838424836538500385373368332308959063047527724908723472870684461729712981001464022315092749273937849844283226893143804770168818338789213278223234824632410581480508726601272221772359308088500519174933891535523077997720991113581565044900831844258506460845121220081513502108057356960651950883167399443557543080112805820677670534159833895026481413938885939157154530119321162726317356417946438464515055322265902605512184013371072872133696460157572834123988212215226801285770928683788864134538628844514225646907276709657541010881908987902371824250922069942720952833162521778466867845660514944730573506532797645538523581396282691544717446121469047978176005188449632976729141785441409982927743045795766166711397406617296323211513305816428189632496262894490659849300119873340058210215750996084308164336680201062307676776973659598991317803886422836502114493597896345170158452944799602135148715798617450939198469858666493347457645726717824807550743043437207477929504010075222045088619237530612006046156145165521114886902643363135189390329671766865853209221695880884537465657277723328420534916479503699399114803016248394216275856943863090573563660693090698284999785782962204051908194675597550504299025189076217355216879139377000365159021845339955405284036782707468489280380456404718599376134421891669788865243215415533294497617187793417946432010982005453698136689895550795782733763722834888180497939976883702747168912063131428874564385677838349569226575395128050722583737273107672220424645929697546201035269259983155859586461472561277505627009684812132338476228735219892784349843705944410841456228486429073697087523216481629215962441938793376112739598020171878542596862508133819311319867633902971473079157350497762646708473392620283370090918913025258118469844781614172841134330861341395297275889878316650314786475588329838096718379240778609051895581048970072759134302970890984930836434446339669368238468152089345732316764934450361935597152498003847193271445330365946138111701107252474760080968030140148185026834634360015173647860088074754299141150442533613981601976379012507325280523950915665356231627961073182146381013734601990292837060174754489968869453805126059265419947541152303703603239298957436661067480543846520895141053498434168637964955649418047936809944565046732889380520071753726970309642307491805852998189021726710965660844301576904575685036095415727181608332419103454799158360729951119573078422084262397471367689358347726742729119534695038348446638174633506935532231370844794985544059426288633847061370048278835515567323837813632452182338022461755574071448182158095926316262576187400709160107949514544354254596561783716290305794556261772920999842296079974720823915775387493435186347149639190657787486710212731573673727676460596783212841741466427746288732175746603588856139529734493966089115377819133772694780002330369892494447982169842116571098387272866449186030017652540634948767611565032189997493007770287380171377856816697521300350126918716621177331218866523402837933149404498863626322305506872696914140908957446956461192044960112914212537947735798166020042061977948863797366976800739710541467855512958782019731010231637046538967129044171590261222915371808118731567076874376480742094447059158723456381679114445643388485784565188832393916350841094507161422780510110789464634313213619134275630825384453380603034816010494177737381234017321350816228238554973546166212724511215937925821587886564629986679751853349689813401901789101615113446449154155340311787120642696548087832339004095951518962997732452793879671850505203171788100531385867327690161900406371481791205300699876531623618355222543183720820120141912292891015706133251943806184688170788487003196871053616375518625818948388092163392868100760043644903208885525106410584755136600229183382348939035754707019146739088049552528088661663702893569373644512150025773215277007235080907396366236970963260033593356204734232107372014545762528614310331242220840984483940638718365680824918799437464872618069949095702076542090002274309181007131159502625369236347312862288164037828097240186015539499405171721085702338093898146380660175772745308516008997927109920263188861923338840818468674273371022724600936599784725723058214643877932531676352605938527565729497189814535031022113120158309362145962278570558365979789500516551550363367385376311131898460815287379758449665574866956914908236400643891792427679720558604268322855911293124776417042223604901592590067011843469462060691728683198470660943994999115931174602320612110139052571969077501134354633856943137558089394008498124193817531910438226605862186780901814684891077941887703392888743398894154860198956679736897957998238570563412233927825335413924662220610080962713135998170740010577899813417103165738917427730992082621477982840561834674830115801842530969589487710542825058942687384749120145952579428883746133874885043867289197449080750871209332896283289839151636037462154856130436763473901385416980350274157214062941062024520094999544533116406983426862754378224935619422830621386351887529417524302396862598730560655555259554749999167816088211717772116185446538450708274072133510739953258632697916810641922505175795200844647852340550838218047098289370719719014158753026421686140186652750698712182885531123936664515719656586019280414751246491727233418834072330517751546166908236242504969110224238470560545275105557360420733225724447987675355739222695489233009048626814617755410696742592753925557521301523746995592714936509827446645312310032350099597454644154118840664774820613375052026853100470363494677246679153886452249510193102849518603550984706943527278211895870642665626482423810761911144831356008613983813301016180869575970823015337808931749001011043592585652331333837154178405787522913121475278836019854188570082915955829915260083092866337906481943089111864555740108668171707907525620036151763081290764643315473550780868271367492527087739474904211741063629082226187889301698217419847267872205973150556965378300788470232206907188450472894081744984421691302277302663784643850469400438010775109837018227232574064793106087044683411604538828970315153447320404177208530347879301786726256953709561423669216752964727047060562728506317230621131483778747393222078016599212541233489992634124509985015758039116048133893000889098204187469724081016130588402230327693895897834821573749630116533161695651266291859598322778505827752208998961270021285388288656479752640875183628709815909210447786851149756789233626756282583813720974734053709307544661869086509990696649955086179286541346958586659451174774179701174069865239028453436183822874532559893034849203235198491772846120723263853381654277910210433885650925802818168088959543277141251123546126684588565937958978651151585235057968157700770808095706912479197441104594429468017628061930925798706945682118074630534782789443362697677154943452237424000292959673957656808777866386279527174379238807900616351041488031420037245305758749710075816528943675009533937232474968214552013657581218791474009467064904859502990679056049015439014035577242755635347683616938638905632433313084310166354316832145641667860263021403028360955612506314192685909832073621877944109395343417254690273765239888368238523227932502912111299367695214197818380816829310834141489578561888474724796458582047236964088175660920805023025003748789423499504193353144815954573221978685314652272826828004018193030319540663561210360625602268504017765362637623805096253069767788352880322779947828859836824363929499193197018766276087572265438304075917658927977860249471515307178261017523325429277682773439488919509299226093775153285994084460325484434200149891407436939236991226710792235989955174331839462770662848078049165973113709056339365025483806058880136886641602617995166627371293559086515370308361102739308769362098548263255830220205766001158074150600803384406802196520252490131836283399163932424482916056499219849722679502239254923443735909364109167351928955612437520680431844668851434901523092673195765542327260062698289395897362717574797992435439741483327823063477215758485090584495985569935732999273748395104466358916833018779622176376294042520456559998211498824848671898103890604201163139966904878291402315278513054873321315275965390954600054987901417814367470367809122376671185003456016480123185990065451346927095956640281415554838951175660243746610278395171655321126801486459125789349352078735634240905231765272120242030064024835059209727828616117525323623249935409193572809659319241485686529437124171379791869370611590015523751282304448008192682482977484008370289655430784377555391372927283707975907411880273734475622726072827940733201190960557892760816112976792010854619035927516366627780875719879599226396863987393451479669837754684682239517532342870556019328937688751584047507837513183583461827174328815805567860265194765791723852178119871955096576652626666386957725787708540954017883518311874697216928724532844712770958440071043940962279602217580093537583530359894563696823189373703250519542155361195866701630927793712067556722638744071646114047693446552593997978501689922180764807110015413641830118320516314613943972148725868084867458048487050736771217685358736463502369435699905613979502650030799943917429117010279470570598432380905144595818442293834537314865255655526156446114260514055327959750552591078023251827713777482690429882648785597666305773467357974319138012450078122251643111887927924328716975190393620596005897813024330154497345732075305889711553030304727588754346668370890168794513615214182038458638378769380746298470738564156618978526699071544152798790291488361937241743447351311751257205062781797930775544209801570312537607087440314774353662528308518193212981384541717924740978615253344208710119320383819345890606076669178065888181098878255540851247403587916525683910185561797816399883224621453891851363362236171334346223358659546966011442299693506539740885083539342787342876847976299703410267612948672556729780796546477624654164548060052489124335025432282460257766531331306423566990156749759824605793668603785004389446518829980338127024360776554147698685808782432010219850878670007573921414889829181025122281020102838062847373270629667721219528861968166416510833935238942142110679704084764105057889929627869390262602189796533246477328786398786550969712679344201580601479910405972831055879544519536734029457841892295460943584502941074799058782257282134743383440830918018586519956976553210493748353186184306443455956054732706558949068703046386725790152142058269600197366765076247339766478674428807301319200248611982165920596157871609627099818725874008310740579566033874496093061934312621341468406894004121624811188767698173586099736856602762695411244446802435973993644026056529832747921747981088495696101101377899721929495640115199620078868320859635651632550517775122928246381557441398776275101589222650019507166933860264488340881075374317530322964774409142024987567505554572987086228137440122306967222430085524644221989330167454164756595665144508288164728692128800078641787831330407165972505238481669554000895459672473668657699427021424270951954028946390280450574082015112910765143515154266554179878581165382988705607985870816874531081667932217254164481613155307060142620547153402733544824427126456849623607488851701430300706461131670602123003615113041736272525327790410556324282088710044004578152032039316300423864095196398607561950126573114094266676763894206079721013868515198819380963148062250449634695394061707326163130704045684760387602286233474716998282249975183132170880899606725944771397401584736371204699897802753140194625338298185721294878912723770785823349002765246563940674308366960973786302061416647525757979891580558278608496352563615430714207574939844312009085554164350600098437603870050257172944297878526230918911387141552927131669319315703745989068911974818220443265980725693725879074893365469846566075235944744621804309727251363410151509157178219518385465274891561307345103731086811185495137106609476768304011452523435134793933104423677913205045239288996181788323361208185137134811965768099756928312184273456427017017594315275322218354685663075191807332905102337442677008703874608240333908497692765948081974382095816106268443078156630390214767746017587041405630061274044372496435793320171817273926949427289036954972263418506901219690487835729967721230594518643947120797979190654582034574984288787859278176498078177667554956133675461828767273753052031192337763114632637381178101855488711608634157391845935850316268267218027254891168921503147003694027985400214547437537415959265492434238985997270172172961579646173706052065174920480542577240945513541928774262580145394887350867720018901899108289677504814810588501910865115201925464328461599267436577804394433346949231212894844385492123650231737435288763322825268874247400122480699028769012736918364313434775769358116583647597177712275039417090162732588613062631907948190695778462246843491564440424366349384063155062961816008167317779235851043228971778434697349578699105917286886786880713953309960930999498824906403843886302349338311627767395426850021845699166919222637884792696944055844512802989956823275789505587960982330180367115133650328715521968368725678787689216760543317693945585560659269455786474366005956955665284220304033554998430720256250276021322573084002952303687606204115837303981105475069523465128620350823289390656665884832062079866903611018145961464306472352602173299254271319969356895367996777753560949676485210373272103171871827337783591378577621813539139584104241410543735560149042083206744266235785995032569172128826955153814291051341376773191531163953292184818652326375756564196932199164220416818836976351726800236174895211063319729214227232704785641204960713037338826908181645829581872629404498706146308119589259366967522939950087031303237384981777438466339008625071129235406908933417581322533184570840544640986872999210971918948161151259572710001776276630867302442501020806551987612244716231193894052146900307854341049422622595496294713865118608240782175910752479528632913146379961899355352153511571518701015412178682359515652284456848837407179901498769012419744678251704840033020089482090557295023065307104311605230742345613743482907474411796238445344685616562480370878747735926010714453503193750756675111392541051157421876068219455546607401482456381834256634043305837830487733045790770050363318475924342628474065515638075998114668031123077622859649771187688125167876805506654291360957965632135170503557845936695820977495047833085536070771471743387431953795465170377075238989930557329165156876688115068195474442924866557852746924640489442043647383462232828414395551909501699767822992293842055179726033695815876117471857926403006664871535420378264495305603125834513583987068526541593882309259111149419616467745059338458369346808844742733384894934644690003522574698453238739915443585884699828319017321831582952076902695991800698982913375650599570657382046844826253572399924430143932515794530546945660718890231193082274575872194683622424358694597373280535875582583309689129446916610219937380870535748044631159226158223744293066613695188836956240096395079549981541764972451958089168479961600136319919887952215608510560717241231580908123301982493964781022212717400536501277034082027313983928228437902987514661646051883350331709000467510085334277966934636475785420160637573662102006835336120073054770561225618569552040380089512672441262668543053076826260098668647087221535586542728656319404769277313811776173426653474387966500216666314772105731973846000484915632101265341705525610975208907758310076681957443388542852716520341773575211914402982415799382750425840568923177376529992279779401570680177041441382269938613305187456189867965279388922232404997886713618171252799521432068437494751066610425556225324691934137413106755759726911129541706343571536453052239452162348843869712087887015581872396210474055357382917378132456054906478639262055130177250219707414399311252582911489297219925910404055067615450216982275906824160661930833068037231378519551551713898363875228161827156435752776446701202358512132648588859931642969633639400627783668029106968097925544673087640609959094332025574225846967475005926543476281062387330331183224174798648380345931303992970041521137516756833923098322063829646237200809342220389564116932457760951747380636067099787755492449456350478665654797996993750471170383045671812082106819490566666931499976845551428960179163627703050588984890010925369093389025044082481484956432633660712117554384143958539704667256363469109857350686738311425306995608318585216751118446314272115509431759801576801611931836017336429958032423263210749062008114049435844171564595052149130527110622976884914376744875806837597260907842781448784044739065423424591110163232092983705926720100995549737141708877838616815901015560276534224892138684719218120625646687313318036056647249940075981350440101783812420366786885125880464419780129813884916423196384258375916678488523068259528031464062988993753888079321796228705434771123606833126476964974370527514800209939527715040455902407880529049851642395412324752606902352086106779223893161472238989467096443103927481639341446745832881536605391282404774348316216047090023099655218555984211689412468288717068710704607558044617409239339722352956806920315756294104508791509364392353378321981997248344554038309519251007953754480858993644539491261058988163952273858769804543735142309183661075299554986760646033274890592075675791649633048476197026264298338740805931864403150940424930556160854025406962035679866674357835424623074749285450240721618751258980714731412532587369227180170401594904310948652844430628545313810275697492410184447560260307261378217019695779205596111954884549317207543978085276219544004401821996471599514865173629252232686763360026324846950838643844622564063559399892808619648106176287613218523614955314167358703910289014794281551279430820649394582351053604865544759558666275379620986992679800801612417722084230859564845230845875217859672465219132623295814801265256920849490179964691376564598831098138913596345416995211951842988360885481726725711603276552373859622705157131108747230426748256897814641128679119037126416916078768046664308318466938954095481120660546039052625212079210069291669215480809461686505088290192231920123148122412732543403715610036093887113765327344113778164835892354928686730783326333621447143031210213154156671279426262281720062408136258510596871883675285941543221449713023999361797270307233889188280820032830918797812204792182181269965545471561203982940277635729332779609525303631469435502695779975710789772249730918928413562266214888108570829241317802997192317798404158495958683175584096459543481905225880703923248246911093574712425472796561415760486899546577365407636603430320594452214687321115653205454299227281683430363814219803532519689989327438181635469322688347177074778783581314536952562725848861656720857862329983996233839215089172584747378378386057205328898100189510837286570980684439637068496641533608974015401064278331792964966256623823978900664071819999041636355522653739502924566117919418176345651582363251764309197698997508071676899303050155514002591998083262420149904168036199772249440011060221138098095581048017970482260874431207249308323688517361446992207077791798887657661652492642295652842955831742502591129986843686466678158989628867312122144985645127286417800607885757963197135086701922394314004585087764796249280396941934718314350927635483537963456692064965013254322410571249936968829508752382093730054068127706747948717597243856746847984872958822002076119710160732413813737952772834081062359329256911536991543871507342475015406071187791824148452319738784044094859485843623130201455684372319056478248359587438066918475605252709804665373648883647751851267713100784999612164354701836376385133500816620231901319342885959138093004870442889613042042785889687037652892356846197924737075372713248760236773745917466967970238207458821783675254056872890602207429689122082910620780360707484587470217272145773214829186545944822636856852318818322988500283324926179881998742185244321141909429207606048861040816042990138159496695417993263473429159321888636025713258621269855727546409593214560761035651850107991973417517535476952652109034680463519475999634566464066087186162913766467259652427880047016431986850281616460232330470544036231486431777906264892608807053303083494096548401871704782613975014901305346026016981968079359025720937938354002237353491686732638487911423561014568767660707618849760033161785468418292674462965474410724484968084770789408264834073206320356372794864408817025063129425625979458690063806994112310985750560535606391004316373461550411933400322730099585904303126509975290609973808426932672803767954505472150815864928274803047470539189415444263876850554631681535492952009362080513947849794254275239451088032042288717524600703034019258879351819952494759052805109519521751044326426891872303576554338095840456876098208154238960838726804243802017381325952550617829227464404067032976212551679843422567638042551302876880344118450294926660644181165169189745526475504996778985321072691812790377842680822178332702233626385604740221775220900964571862732511335683611011109449917694559559350925065805421040057828927135872956889274668469208006458627313241278084613793212637283697809123172838313399785199861878660559551688754238390143278632059030102326668122293337404622089966631308355778914849466845435344605125826424374361676043706244290469478841672197508568376033445674325367224827401068639409129575330953823355302278385687407365572614035656591293099230235678755211654641122088161273343810849380138992454537947366669978103210322977180494089818511699281099064907254482130027204907465949924731039942528871962911767553274607990224968717081443167543790034738030287254102881683598321284656814315068539776127163545591354579738843579456070598687849414129428797844487198986840187619715955299306672061183841581710211665848211894209043798184153793824750864640292920738180918387502868166286666466884165717861310021257500343375767641921055782746969789081062936714484984146352214276389993123959258900612309274729689357315356104741399225786384569109087095664278499904719561845193955938994310338044758536549203794318001270627501893953959403997735710963442658294537133336089350397014224485366232660056080295612376268591750824707786118436811178530998356697897096231500109569012797411165730617819033583726761691331695622041395461985647634428173555751523415587206389212016192425747701028380706389863660630013334844519847656101686229859722711609457373391439115257712543868478594126184977013982139215824732332371542923960833970421212424065582258240971211898195192742025517216257826027293994485495283550438927578987756451429063222199979229706075941947159351696516089223178193564618593383279524472758498181521017247048990955382307234775630802926707600237175916621175047283793281826249348607860420602808121010403048857897847601155938051182052026718287578751888551241802902296592323215276045981712069428699864867459725398811860372369441915848706762417485786997643800914681030858841419909046208972293983269628620449771353301260157024416899805385586255993456004025825924305774888788318363442216912085512131687749333459028470164874635005235620819249667116694893589262608392261634607475031164098598932814182734964505757411899753175879855960418359811606029186287493155465828399798495855948896615934470977213606939398948915873433193033120483293104792011196245742346703368593878010437085141117112899336514461912477768225222500026331125830016860273529341823770482985848480539170077408002214934310582459785877150496190730176691077396744386741383779930276103896634727752202872133646734783109179645596619837504038136133477207354474531300581473817456061987179052660940628769014396757405786808319892031943388488613003320419579833275595241889061883162369479427280911060042536600731583301094154296302385648537169121905663215778963038739586328731073535589003980955520594755762786684921224355974376707886948468181687094746601574893873667656947082338723389427131870025938084326033681892437551632594145563031345025064628959716237077280962846485601665006225063900390110094003732703511884216706542751107099653503961385619544931808909358064060902595116517846939070340193538785165578739135690979562571421846572553721588855274508579552861610538924194253617742818809009270179969176858861173909184458265372684830702056221069029906425179606583633052984017157449873308955265399694317457249413168034489482264037750019426149518608035550300108298955400356298253541346995086644103778811686827499168526227691344641051491267000616659681529689894320171545557283603611726095955311975973894668466794811260427973180559911610508707949349060362834233151680443719430043805273242148719849564532285600792308864285443477285020990583520620024798079869138526474786189733362064669394066267092038547114429643702951874005319374457807408733724817996294850627557794498998455499428310948261494523734233510587455331530688264247622967763279049838882778260806950175825874835772699281785169319052168964999867972375180286232397936008863418816504457479528238875425795499924484985908385213086599355380662492046658866825925515218972665238292994871778995982904470109800840144166781940816283218164561411225398811098297063441730545852487122650978349765464228393933617603553497758682399587114959646565458834012609219220897828156580965206839061904277890438661680565408950829373952307174052976071836638901634834847901887901197580945466546051776369161488632217957101136214912274184103532165361819765887788623124664204791152673620578909507292390528560314754024759699459237311484467037704284404951115461221113594263785318176767136221218924334806067423861832543781607589385862985398277807867700731808920207741538698947003011598210510641660434952341116053825822440483654810865677860686539005726052789432329695304601420560455021162624232443690542795009025700448671538585774076136804960440852848962104280241811291950608230670534214257733013850433096066810074366987091858757127872084853652279361252022045352437916505401093883295428129489840683651573725378807287772586696440677907251400639175237223926604982877651188390414509507129364548330589431127845699272910053675754477076835072616171904966198183976377973501085474631777149071390242777280789678299024416213886168198837412782268603304516770150429026271910087740051777543241623297794845440696728286348489263183175923631295290417896275605245995017341503476465349245832483506848580155054991685021848992412309401676209146505228415073499996627382621328410347008885093755192242706157677511791244425561387854570813165618828134590061085717005297668869671281588398604431105145458363757149256432069193343495527837216064635721008084589216272481986713298399117464110717075752060788184516878197791720513550995518561817097401582260116576579373420067162701763621065468570356088912214846435126633152551404970327196206666668737314881749751916310695987468024355316238321103837963852868626388419285897590535470820524541360625732041595374929554219425813567727029070842993168311465192046132979576123423494182642469760850421773398367991760298591974224233516752737710242966995332407801761967844560087539910761591308700446346911888428701572859226561492272941383753950121772398552304018560532931892029491052105519473958956042161713511871104023211279913400190641050105402982170909312865128479345168632868838710342066860305097276250956207445346249021049493457081103189344142919879276807182201702159266107041951811438593251388266104887962797548406477771161463663078408798208834940051772747384691009391895589127425778499803999302670518266168367728044336051400180281563803897651742029290428414768926929628799088264988443500620024731526047439937837045202865102852941006916626098447202228719064426548356372889364345676328995953815547644510871654394031855406144568532461402129622684368113358867569321491146284320057271645242602789341668424202529441323903764998065724105733741382827457762832778333842373028560483690262090440191554134946792573487145982499700188892198076387681144838914818859883489626683829208653392459451315038178144413522210398896350884623131240936900887634803215574422989704228059468088807481456470149245869344555593396459359934875460482758467566990634165720102719755821327890737564344107944270444770014673573933207587247617981973836102561273002717245774441022866579381411833362022878183095819510954123745566523182121500311347747004224377118817057026890294399460796986503619486011510042330632099264194582048606520660428340425858815538918347522319729130312939803128771367719675574324952160880485584054771257617603571007220392954582103332905640839113333883025759385699622857627560653165909981478611667143327055407168985203467364821550791690839822329552192137546167868400105753819004180900138898314977112991209957936403931284936281256695131759929541339448729740519612765597241768341692118456065206075433209621246288507209433285949784903448061511163319429832772922836223657713301053814535941665512716438044511339322276858335302528019642761871557709643227519776612544864477462582173249919792891580818095323415188875981072402576385954069654185829276691598936314179274869608405096017914351124655546491245887165440515651030133610738753752678435637494631347061352690175820870153968117929348696200024343341164723160064999232717896292067404017626207573499045276280006545625245506834676253178811879398662146756224839853344270373511676261553199228756067974337437102601627025165267918615603544148078320950967137201555435320535953389546256695831287311387327264476487918722444212422968426039481458485975434218957278890683709582888844583412779298822160168780857346185834877057293069009641140170571915281637121746267315699146118262576236255270653855999858789680283793936026560001185729462192912003649658841835364268432530172775626520176221040848351687879959553265795392651240538807014205990145489164880809484368172473157072926698098929506458921689182571027530603238821485565448907711341970821262043664015492130668073747529547197924841484585330736240088909150022503077076448872699810520741328523346575845851804529686133789468059801237393405260580821965355014417597134634787831581846157430170703182722941454167009420669770956678899266524526221754891619784069324975079777498341440135694244439591142183682723757481229074765088655802210288824881511937371741342950996435090064744711933514520345201106098897209427481993500770363281874643317114052040094238319080766157269454865802541964118905253022774582395277128129261372805020391375562064855052863791548259988219977058216661517024240742203681273731280788688911455841979947123922269334062418863615123708010198170735232602712257912500268161379775116039104211229118567682209641061130891814301137582362859530117972675532140286944261329243689472947712542392528315023398300397087400427821729128369357797182639051542961128976759103986689306053531156508733010765096774112473905220853520304208519567733116004829606552505577513227391318356140553376644677716247922118894976144053389860095551999777921257553368741571959571761701575066493402824378180114611787134920751079291866974736531478930626810993530221633639682055406647130527396906128709551473380557510946271318979130627502150700681004559721825539392952808027338254531868458607645051856273936143424347897956546799107782143243913239188153985987169223635008598064931509671245101791544789362205508099113469194089350527991112479749136885412088982248881287234318666288221101236251087262011812581430650978574377495898478837233562697024192486165227654006923740013172588716150085053597556225461567854319102765652450396029237354554862653836969251394208693964883948575290576041288241252675499707069146241649522987039305292900721265226947868217200513537482253573610375782004244727734796079468958266282431724363098775920325817821041092018960768517944804257541723104321336858754323493168671072659850503093531693347417480967318111710057683730306093643468216220906040034382053529385281944511603715856067990444690930568415736858858737846467565032131805956180661859187689025434642085459499697564827996573851406001228175392388297688158765951922639593008850119924428128138687795554081944958245463701336626619979006242897925991596866731475302649035353259580635942551016732163700879293767345902397437149262294493774218310599569114384132329055097774057241844521436074400917514167516111339597061881149015959731747235195200036173690481821885712403389960301500674173040707995270530423426130880143461852282110949316698982382026135249067818173576934595644859848339112485576783021983656642849384839969534358497835961625306290356059892918776688647049871433499557201855853814094959774333395556080659504850343952143081978740283632395376608862518843284439253849922085864058510746090577584759954155025322730451197317242018104260694484481824011513193526861896256426037930910712184379016824538768485211877694231517748834473508129939302627118900099873431092061738337137097058631059728089372546344822612645957587284922841557787732652092986940723496995977450971790037183545662391892084220348325127452202173862662724902262612686357186835588428026322598741914458202052518931253460349235979022343518496972036909568750745708909645213686866765709074459830590163549534507171759051768893991078599520897024428170474749848693743345280444842438719902193953268880299841791481827578326958275374599469519148623351711077096391090055426954506135783536109654115632578456877035721229490371583936545087913310618725001151201744077700497669074477095475750174161059409712093892123249675408056646642530051533708939995676250099757689570317382085513022324423549545703801618973569715735643121277669814376076996718268740759666379687875595012443072596726897788408338603864172854056671591152049193153185735099206527441834994443891895960144010455898599101892577782254038640734765871173867378854044387225608538410401529743652930379080343991634662600219416139949752666557304476835261142507914330613433038457414558947804133985494802661244819945558365727281152801626725661501344353935882607768474008127809984885880467733620372511480077624268710324010566189476828006611327006956804447714010517821703275030866992513212784109116999402409004182941927110350874709523729258165437471542106375376845650185608680153549277051419262910741712531205955024993857110166062620397366844457012581376772997395776733321249432341218544809150176928799569126546774848549967738013174350912870725086067983772759177299679648078924705074521011980416278263648524472205171007303288626140618077691822579498464426263424045859048442121724954073554769591159980221377928081931627042256853441541920587091628342338378982348615008962614893019679037383632371974804171630991129638905157237889296148828788735376758415936865305329747920177119087327184155200485556765172105281783304195852789615793304416772369584473256524707222014202774457337395339909237675382255880063081530901246537427726927617051893480574697620334922643441095023768317822850251344313171670433170852732291924016811031495470289886515707839876687694902292213085093736847774218866205634646492008136621916628999654770296269552896487876105900174542090427635527403826546492832845992033224175454597454807483322465302596421219886897564545118486821268968114696676813225122720993999240107786124205375868148260611395885040257657038377411741295774117877040496635546367263166135908946059577475552446405690436755685882552706312344222585259295643167119517283730682391555498576691544934381209343010400957267207680847211159226602836712564131319749094060214485676946347009844312306383186835546871966952310555025990419705009040109234570351585377138401632731420851730420901095916026272091390944071987149111281026057391297546759171372397890093318676413516959380231342298303303059940783482332135752292227461323872184662583690808098038751066532668179144032252941915114188491514519574011691294604475742002090875829315261634908453574354968264662234999154423579307067735486586080264074080251819568099289803247345349311740202113192281103047644106377371337335740838800572897287721127045780743904148806808509838275137712040048477302161214593231911039010923723973263527400944977507990545340187309929459596065811042871513083028623248533427083577695180998418184721811834960725783415168168571061415472988381600484129042959563187157839401311893238631686346133047650125119050627010960556810163267110206949526421977446079122149526523265715474578797459797651382906225704073732819428607880142657818045439870585100652544440730122901503631464547018004789282028356476074527897054991151202068683433024939388996688152293003711522554543651775877714105255874835629038281402334005123400859615219088687004669115021945531654338713265744285334490070812401285343905296160753789547742485291757262158982778562755946545627123750170388917502013886393167908412576306383055868263290790950774280278087341534216324578212094009264555578283236331247669972159661171519974772349422732111359283162588529418203259514314107902405342466350550935154748357736366876295088062100181046961976950123460737769477289109257051534330582571024124773911166077638509847970212989219449240941875767854091445553661741493018338818835968386359892088439291010924404363863420501889404506066781926008930552581869325281945838646891019299569435422639321654718813532772667095468518549849858760094601552712016975738126096637273321944885621112653704472986508973697058938115664274000108645990075034128829425932101530297892229474938903576093642413205882809273672308704091522677097308767828375410828638157542803460242413090142566877935541536599052227054426128504746000961085047792190437765025314449165649345940405422689009402611013815106301933572891022595974778948267550615293550892626366109240450976962007801397326221973537621398912951606454636086779095843423221860203725924490405470914019365084139001253807273582103629858384958738345625371831062779504779379993062493578535175914075944577398502054160618011564402777872691448136663723125537736710698372676986139352830530722907952821263140553718443629069190592324888297224786571849411956864537951597199918607223436059331042780071520294742292276478592809475462975783383316981891691880924643673603691845006139897003713475977726245413580445003108045718443573903992487732159733981559460206272332638961884422690916669186285885558331884749814279178508393177613296989550483298972485407023776733321098024304511845086942156493641295915281582389370719275863545718178698596497769203676534028600296733941739812061139494884007601537782916185896019165159027379656151935353584159237525860328652490454880766483253355038805247313254723405738138331322607100020370235207821665283081505424529146270061030588122621486553152552055778778409374518199225672877149872665378528984592433581151483438309660820585769083002402194878366025756360308731881666966160695040064951465329061087125132326139724167096947536638290258069453531552298750211305241055271068125255966835703070342273265225506072290092742574777703923939982129917096995847267450422409479502498761855461649167420154537549411362039362527676485281889603646243015341729482998028131819140722003064759565386347231302860588176644136110443262875952087881211004985831586774233791871975432000341836055466861455667097318030072289175760303149756268626110776263420117160666053312415819287185125787571368944785871176498875292658913247346027740287113815357254919015080117138137839741698456413704762042767994143736976563135894890495539078328309933027178219920390403433760060903125878738497488945899544255972460264839715557471017942763175439587955898777195370572941491848793558280965782758541416524856069169270084262783696552886615608890032334746936740816271586214367610430856456423240974737233426037888224962208065456638103400585395611068347657420729111781997354706687485595491045902579090095850328215744110928840795268959011284937208059602188989025010942376442560636990021928660664681198416923770880347709865139798514214404459695253639336591155285659025466464891364085244275684655024477396695288161427601293256578133251783469556942020081558469394969853237396564212511443771270872071244346588576442222634157271228820939050457296708523276694686415027893488775780094096000177795480947016473467999967269778632881873406228986014291413209679478343750564111151116458748517578454159518699209729925450643701320638983342783407604456378546508801468276660573532768829376906595599265766341009135267501800239037953891385453616610301345748012571299109887326833123061110875851239713993272246864604005070611206781879128251282995916741257891118659083812610044177026146113193541375989011078223322633537148223542137278173777095147052043836528558229064654259174464174262037563482878496507729940902339532015350393141183744183336422471644377481143986754952500816751032574357433847936201848582870650924148755710128017473506384156242200700044542216154009201783215691747917329855959582228821390091547006424443731174173020572202089912981405626203279687205356744596819579617763759536220443983282591822366097956742956500180878634181902966599370763185923723828129654672295879314334372822038021530385038845928518549568231160601347232835593602871270981202979058686448340208251732781940463185072965508742073040129760958171884334234186866209162024846512470704540386998004786410223898103995187836518495252839849886495742551320303209226413983382327345073335129773195978332989917721827782387365320662889673445158872853023956207690215145934029743939850238716887054475966798493024864018706193503594513787550322634128743267724893395469952413799541025056244618607835104452191350088900520790909020905531197521557397903509386939386221985124491124692481094588393767602992829876159364780217859618501518426597900693897061521238539877323799266028074602054270268741172126238579342862138119189398126326040482985801854716331037299365331267161091809457655888048485956514392271668850154208069299644485188267646579719501855146871063245395319989442163575988066502717261589829102877269453447687328990797618409844500581312372606327548217971158639115525878546322957346892239261184567486168504489449074727736554297485863478961187383240076019944223114180389668347964591129234136400582028548453284729059996583340657393708499139459534255983384144129054213537294865911569158187294203191398769240001968016976839005751330443773825753393389280479649537361195856648580488664848955368224360973004223637628190980729207603932440915993966502285757693769363197537650318183359791566613987679704481336060392776402817666015068137862758109642550021165995763470462080491122489478254085328049914591591987776133020926510850570575296596540633912140436271665622380629621961546470694495526564072973223600069518579115934369610559993078648535527461985068024902277808174121174026401331140278287443795626924542657705776065696027659220238159272615739730234962314632910436540954351147404013481801435002468680914176293468435548871691842860483191659434772615895318112318492649857210316765503397817421620182918276718255141128974418819268796822523367033414576174632267414242725373893608459598425067502911067879922518057111255415982563397092763172262441952776188718040889762152828616897539520842834665100771292626815602102022227181869839355786145147420176901017832285927221564826628130459685417380973615191466072478758799657997594114451291666112055907298381628221828203036051051377857544014395077223116279245283397922795382274575873174061842001962366689972311180713844013761420106430409304073932603576714096108814026037385963318404063628694863041407677185195847411443803770643452610065293879863291867516285924013803664698504989357507688149427395499861783385477810579552581340923233553000308996931708312592796535717826337945403913228535339850404091831006014571694042900641291566364790164981121656764977254871018256065619331168113428575520286837627868517725821072321512115728512911438020214443848812584702323815721282627867015931391998485820529998132456059054651264948791344000322660863507040718453453223009763065343548006333091366641591878635591325763796728902083324998554544292835545239554550732742496852580510851442976991945819444711365001526414668554534371996453106984184759062294505963063559861734693912173355734027323233637227332047435568873321165006685725926801950329151849638176753548689432647169718886991203718713788637705210748238614280660274972859659451640829166989331113113149360954590846500873326912402681432346359435329933056188086564882451823387368467044099423685887219764108054427055925038868326091288979505864614028743937957925141250629230787433342948380021768272107328275172306887853542984854954082054093152251316192678995907785555408039333008451993901657851220885959075942867445026688509962563735708824903355795830272366485496656608797408373854968584923383455882793742659870693140031191889029179081997484003982872808515132924126912118434947677495890972001769678669627657143446493898980158114461361162383077219181821080775321711744802440975163579817356966336905557481435401511457381867022100775766904120142939209457343878870876427383748073019820206343670957793518580051229850001023198855646714053667303847760208541285201313083251100570485172448068514311390213198974312369183360049941955406546694308129874696668141356655694858344576607440425092586696152501312860528257565575173907578564042986176031335850518506259225931057667327269770499321333553371521798783887890186259678645419569237398664961950560426224898421907075071213716890015884964601999668286090163842374405746086904127159957551658540979547641517199501092594425638248509736332130539574366453035744839075811393547427512655006238706714100739520325441370581651197903406314922262692220454443061841054582138590419451850403340532586030790364469695737838380977372981077556061966891832982817966945258067935438704130590096498654996336581342177812706082399945122309934996839446450699979623618063326961780959462489109097351295463747055620606018737496835056133914488372359686728597633452215544601018723490031345418762419579194819958712914493585921758521223972998949936177922829452327017881310057672646585450598347879075324958870120269192874358828082192356013541394345932970360660115126750481338697467873190414637823742504200640561274739042021163357822061729932331728713967648090192025195840431751864715686114097102064989465159126725762942850951873041315759137937598665086877526399265463986445773156203653741935673866401345668015556491247864706376473435971466466490031212444988998984092910013692163760353120450317711313593064424218735688807960750551301149791287371632536670753078665092366196567030334639741534617388301229087348969269140573185425292656689851593988113861386024185181560898709731355021756660223839819180464069496313194073184656448367129798812592395764301411347242564927050547734407271890745887700775585283840193124307985296579828575214631739966804913489030334129797960910465718925856486064803999814912656104754528686899713144342551267782348798043589032939553239680862691576285464364789533190131650700041087541485182657532564595420422250977934648951284539678846141901495669480948603345694018296369033088110939597007785131573154199517576586146901142744889717215283068216433333871783511111536281920717502100869726958583122105373410601786548507243506986667342886306343183477837691020990850696870614909682315514948521750207173433145661743856523971199377598171752244185668973396151990170360456393187258072513961037961286427759919377393400938208027458192770594275880019816845024342603592271516548404432244978685573456144137032710099711251546590365937196763639981536308618610055028973326353536386300809330721704222469811505608283551199858674608748476199219096086912970693183043628013481378334632916006293606384406242765460499378591451551298697666782671176221226617346146406149678938303835786255308385279048842526209053009283003020282331874967260676919814963048256769307668173278985632383300782552472549077328040856526185133752198487182431111095012569199705106790723778451965819588069268937315014596819315455226772348567400199236442282856312956886811696023493314276502941701835178585669629662289834856407171519694440045891601591928011040996935329985606169361626001556134046309484778581970369927203657919838972657226218879809702175936965386028062482170677658488892464444850099643460880644623119503623317513333985120340182905061066621291500228529721343491781565286754574325877402805794081732541439619750315360578709654453944337414468275571514456285326763773099989507640246939545818746835063390416979787422107055853846209163117763738280679577658986068251804182197530623754811489031117687481530876755354735643829070345094568119147113065075558230529242339701760301288237591497506770580851112929596702486693124003954138712163584442810444406465849201624786056929510486248913601478515941006475942243113568369043065120485896668115680552237383644719088714910054869266347919619150701052361607115085091413990659913478229871120802117917462383666548015899360983228126036319975902166065043936369150299405576413286380093913246138926612676857609587479221657863428791349298827770509529172021010476779727615422424307494798254466710114504179468263586461880547104948997179606503657159961847359406716764888334750843263798790588664790607941356878007797913023175058975111327667712915226800519815560677726221736583752856078984796889726487867350880935546561641817161837661952857708564560455406913252741919037147128495682382326280739969514292068675035297424915203868438165820884042034782220167437045805773050600517689441121849150035728956808175679715615509908601425823384887221210980853916767268891930707446424314443014906869483459195134986020309744474095561309848006370736642443959256491098212122941963223856650676281509926337845303801796024110626004086209512534349828878537394175480602281275658783758085385485271741058672817124385994585297234836202949932638508632871458984494709352642327474836499744499314581171843311218571262971683292095251274433742584847060415856238682478460597708484266721445748903754414100997283344955659636225920595873189830313597892477737632408462344074993028437872107740162537078881573823312478604349043590253001773033104346794843945268414352196869684308956246924146850394584345318653864395028649517058315914472741321958336037660559237264074436393973239448376915512215486865948742075432650495052268383907031598917799558690946216766873558830620545984739654966949031961006941932419856946685029826963392869316844084682198012933439147396069503447861463549938314000531308580988909929128476626337358269511235480636012580385788258748773689801240784342894473419154605298543154477043011857218152637774079184506732064181558706421656269368341895000724923014921493599039743037992127146079738564203132764313016029813777374698776246943310427067832735466773444292650846356864544332028726370447532955917578059466004846561951533598568634321386639003076220657324166471019011397298761687351395544337175755821929852307202044263165262186064662387836312316783438984748653870818623664382010654844667772712827664183385864766950663538608233089531164245558055707138507403964272115994696000441019466008265291357635312234514645537271604409853447116733837735243374405337620413265975719637661061335305548700226250606112622225783144109810091580872611248682805770160085291407561860189908620947821074159554423987872560130586090924018516765456802239795081787204714944724499714753706717590860098060480756528484034378846711506396070909410716658616511871059760362422722922291539132748593959288270485492729550832642152824428914377325410354660587920594734072817715045560799636677633903517267399962243590278344948157694851200599034827278697908460133510741983252320810265574430610663912486650656201203770937043898941867233025526032232208719998893967135521600492802479333650480444202302856117846390137917580523109989307496449946281446180816652360314921169021281428395416890183258063499752127036787034224349534488149580351554663275055000532076226128515756864686345383201630232222636617330655004365809775695954927097034645191466820240331824104395736036795721503691404440273601175669360720416028868171722723732838269961261988302124760251164323655357180816584590184853917755675543912690891491935184512035572720469092506980527975989106275940059544155756775362438901406491873506929763652549942851717865296704573845305251395914249168081169402561874218769806913282545090363499753755459316853469607520399925263952767114140354174472638519856155045297090112327942398882983778341581560335318944267611306268384885168249148917247088062528942572257357286153165199384393207686504800000613707335659034528751826292093017015733107907184086520481232927385656860193502116349818670541319582684739278109082687882009594509150186932454913990530615423372909940957249206217419877004865426034104383490681546522691750425982326329347156316237545563087488524514618361804081265589230251104174694047390152180743893325980457512992527979797977282088985992446518997149352461555414590390135600990578065344516999733635437258793057157984521884807775969946348308841139524636095590350757573091861369909466723146588161920386211152422900994758126492577451811301987713760408910013702762941768689771408464611461730161843183844089310778631253939650985679392469195662279490479284284179364855461899219798064925461089964724435643978447381640449429664498464897083651599844014030196825633885386030006839800294720660658765458751254446352522031248531712149141575700100281362271538955508137717577738449973417956546869204817877618791428008584535311755001548592213338781411736785216501953771009257688789911184982312773628255230981027325809951774588986615730174800187797727812354384264672042516151658232086291505928038784495733789437320786720483511560678151588245262909787369284663522547699034661803573927726846531787755906800603580576916008531910935585192069945819584770877685021620849754372064193475923428686710054174128673861579571632457171004459693317110171891247393545025131100314577402131188842110354057908795876161161575832062308497999369542311046013284318714648315897061009601209629886317899171538485647955267787830437208284188322538874522842951467672976624281052936903028368319464707655131466537786685953352859964683091934781045125152705206549928133349693685296224818676760459733965053740453621547985469779035664690021183738787398205691989488854540022979024541015149264128385246936781895673271430182350961429688875209812829998371076372499723222335277473100132015607068515268498395374049809629951573834220907451541169073075629872202626486462778249374652890925370693939462640453675496184528718869521198186499627730840482112548892856546521363494982965716428443892102336595049499968503320053816789901302111514212253034131579520341515566222382493509101826953377671866629947203729669766611962787886630992632577180111361127069733295833477903035457970292007321965088853934343460002275403860024681724950708111197563488954255329510787187895062094142729242217159727323284419784365383857048102268403443559168700346770431739640132586621510440729708314077929350448870694240775611191925866449955017226359125028095977119483355282701863879488880664780489893958033149353929476557105634648209465315061179328494235440750803566238248993113302568561392781587508886241237350870777476937263012310650098702189061058426867163774692816405866776164346725583755691637481891164557009406075313573802839277077837816909147656605791664444270864816151749961655994089561357354453089699408829865117656310271683535442614572478924029310496123380884976747426066329249847296372051352857495107737657282676831817780746006652995340380181227593032832301898977349183277968737932677972266828560016613046621874152648062161451208273798888950134278746336713324480654427423314061916459354293921671884718110444325746069448783131979868240319257257889493633976309640879896331457272287328069138936392937499041637644004115110825006928496575011834215415738465148798560309013132434193259525475479881227371784968299229878349488355251878190205659098815672594732628598422665716266122509315215871454785654234416415390175108283780791951941177942689721798273547219722320071443132698418780884190137022048914166377799822855316871317762411339797619018896240381490211848158685338766130863647878201419417424427666702520866599546946758232624553376111141076003584991603591076305521440858581438927207864904656810288443458342128314510991185878528930928905182757020077310601824059934258088792575360902809394383668076368232559500582634826967614338103617906596304685952313053633101145969279966577578978036064069663310242776925280515590103166807317448806118482684369743263455714218052475925942492177647982333037023860362725281376224625129788099340431762244653232745982889029810785104180979320768030312075345651581920926279901185480724682030931517448572268548368542756820096231524738477402162017583144033473214825916557233967902824228555489634728736269158287041864264757413380098725038773871091172838742028004689649902624926514957331784105372040755311182222864058303048249041196406745753390583423072790952358368612161362537266390991932700306988426856865709017352465869301972191188002726611843448368532648429474245481485829406463205913906492185545856537781521931669890601188080187109100820845946968984577499830372248687213502281015394307879625970079323383786778311955597514798131117672395141049767702712520088231698627210464042864438090164208238847014047836378734661972984604089344135300085881392199671972059505274558601744974497651456471794116785092033695622996617842397769706910668038545612766653033918453988726449103726522032083420874277078948681529910284339773275333507727661690199162881973352268658386182673589383671090878799549178294688752947223237469175003448078650844483051461998062064656896588379658694143404048836176558217911386770459915320776257059596466545538417416030682689304067570163031262563110881860148505303910706191262628163266362215347798554675092157117188608941138477251080174921458912079777034404724412734932081252202956897208987990087752380764420723800420836971129988049341994367836761818429056848087329307514623768057501220404897128369191262229979014322183556278571666263647636060513200150148443886034214544740231194851425339381582486227718081358364282725684166986381466922558907245864085890197632574192018657474540344043697189347351648108664899173001250047815942812738391349819647957486692655854041115981047172142089838017929745758773023462517026511053769599406133749470210941495217042949623248456867785190230654551187679716424781876292599298354693093646128829215451187207685717905854438665157123191347203317727207989268052387549178046503148665419642657272287957976005846056032373671010348661952211474073933171529027262288149674456497373213702204905524662800678624172061991992815297052543829239449157031734242922755620869597361985754197703706536693086357026207113217896474451957628549134309770068612653611041630531469268262263827716317448860687204851039650436005084625710952585500287892966826437383716624599727517524416646622047311009957794205239292082166833500186245134622316726121107570111780894637788028770997639044393937319182764202882484435537592691777579974579397030251315880691945744533831596290791775300861111082254342685191900809277134969440855054767963736099734274062229153856390104711974567107309864560191602099012162718453159826513665557453241797741525764538529632255578169758274827910835551366175880274852979912580687106998484271333959305906585354501039878947812909575161518156726353906846887684327294771860109573229098448391283535071355406497860178401973798716310823501442771978028593544930363293064232445699006642034451048615237253040793437665727359966619845390493440816354607170812294483912556764658796490486898672914042191006860402042234725392906352337824967069332986271687956531674467093583695488216052741857907268364528958418497929151143136557456679455690175559495726890541870778827569787943615058059277190686001046252242049265682101628912399976423195210077365484642161552284100289597932060618163190164381332372020318672640958335699537016104193888776620970128174064588804161263954312703585967933841062835810171078097804193748555884640719849388884412613879228190143712074527001775097803052570593477369299035794359736979671516027491140272313527926318269208980647674283007035828731246400142249241503095016327885375427395889682755257496679982769073669610692426867700246744885115395245306239254588442578142642556689455241911106922672310292270077169393805223587647220248663439322533617871891259246881445747871478762731966493845113322752464995219428531985342423156047492690325375584766966582923032340794223304102508833677088102538316937911749343576994693733511737055049554202087744197635588426286862955115407858005795139082475203485454971755468898900730307765405265872566151229871735046912923602580579703898546334750312355668692380184542849224160219574916609605042821079148027112399908388895472799746451034657662979281137320246266980621709627875363601176465134946785264530803148793854835399297356228131994480046108924982955035638865018889128823412658189550225235734320181054590276581397283479998451143202469997804383397627383186890947309198075272017732731444078782628274417629194400250235822463026632503013253414565347954624076061425431940737330067683062549644307963785318618160132496908724742163221445542444250750851522888322582846437572109351554604766135426107488544473558783744581360047005080769501202621510130024100567633981473807829594757164560672469290487247077725249243776502800318045340380467737551488608108924452251879342437516979174574394873989873410232263810300429536105081844919181207120218917767576733659974774053509510305104043101335822522080198637139980070056431371014507274296442355762021713844565954453719241426498122830531997579637042739947201859019579602281311015038967599812861703757821699092146528172033441591247519635849443806963659584673766658170610633576538808513290839177119034006717221082659116487118788178819999077265561958662909683062230654161883291975841089711343403618600892217430629887823455845012868527406578866213329398958793623298151467594387754513095286751823219628095811102073276491795522303948304766018027416829170463970646625725548892714402619499512098238138448515018306908474900282850268648370909811422437793537845617313412442526613391372761584521200142302333421551866954951493315728163615622618998013694208669155144121048940672987770938236183360365966894863412334687541935902258828483949604002329551234522307037469850679035936356021564409620958028204429082137801829816747896616967520713253001824270401925143621328687008936749808138196202687996271171685085374246289381052016275901912188192610410366593446633611381742194954121604253332335154416379646896977239932143995109093365537604315208636086716344779752601506196630022957915374205228280835615048300320547496655530037273344807081346357350665287404898613224495730738474003493913250151079529404725580621962481403430217440412432418131122157634835652817716209523200435809293670408694606741733175284380625742392555289343040790429079204519896990201213173970566985671207718314690803379714314616821475844099079199721071939247435757820490290497225812401179426486268552902660951146451300438331880586033808028041006316557041966261773906160637285231296584379552861965825527739362672382329054162545811077505070119720286538220521885710170848692375777196530110287975938437514482529667703581505621697503288628819264899202448722488236174540747230820426520584523936820294006168174548766263971142157956707505102302968081852075561554799429616847471754473653248282805036982445939812116177754628542179211609910764412290973766829651039856076854921832227918286326634083828414871577499904308397466246952563923823626743497763928986747813126319512899451690745371677739120162399681587107082102995424596743127408502683855201694447645772204979605800170645926104743711494443548000614518783681142944752338067309685236268377815785398259714694599761646673725294868690435950674542998634445143818904356143639168580183957603794409648982073116831314823570523695030074287608400901917354952357154686078409061124584959596649629377743068150516909854988846713053048785059738677055356873268424990702783592312872716468568265116767921082918843389598082411433343698408774121531274828247010389692707043656700551429460374094803426277874738551423051650670086538230684065647166183870475867600197322729665431720280227406048852213786349496489352416904546871795190739331719114330430218420540346221694140856020700418240515543031723587168623223416300189449199236529265067750905166211196180633934541018622440897017602762225440533965146448897493847361136811647573964308615660490294844354012636914097106226159766043094917419140826668952999929129948276597196265760829602237170933578352858372012856390524813476368194972398677020221801303658711311734857987882535204256954419994091664690966667451007131765156408257129315710854886661165367399068631278282857439415232117095525463359849650014420030450427787900509529183061181720227401867291906213487935205530619891325041756263342669076876077620804950800856703306661074497062598339711365598381404462809307887100534523008831322749682583343125015285033741931322210506655133218747798477206399258714109703054269354596662778588559403182466521753679565918662813655248376754765964120603467614690514297462492897328638361852890368634358665789452409011883827114577442098397396468348437485444382960630237080057927814767930125958218493921695798313759212616143587926912927817692498153842296144025025081623823311361880880861262233672017880989211314058216982215284340742030946257962308571476365932252390515833587166185986142575556542384029534734737564956752286678517246573243340424878594910795924685991983150833147849463103678958142768301380251175668550444531906450536978018484330274229644455213037667262318250193224929697908401777347449484571177469884408745125048654849249868566774406946141276888645306049550844215493434410618065684465678396292979581093642447533757517584005744826859524967869601415550539377165397079999132161565528625504247576609652926193198959048505445511425971258180372047133454462383023865025987606799844367825177303327190255294151202644005834763818356571136088037053140412401388058215651967746142549529609469252930001976944170628587539426566385443459807720416168730120691127899639166873074296394569063220774761788784124519195462322975708908959701764206722179336355688921673278183077979857788917023872401448158862594736188393652883177499478578211362621075644158898038647419228384522027567853800401345190962329320652658051768283090162103900364117318325129393010309375596028510148614917437233483314810796418707650491791562367812430468364958986819104036522827858025873656653883438665985113389223731990777247155401422671402352866291293645665059235150991612980880948769512169009983125233794528099471119268711951052574252793105066820569358573075872505138820447998103555540268981481858394003079448762383870858488879325226668006587005771724128701750231314974309690393453345015584146462916614496826510743265551669026222696269617332138778003681978375143780757251312896795566158812111988302032685470047638066400428784477082672191272250913972507805037118315890090876780062490075660377500399585959802800584628863975661800831505928880811585508294412705746554039574480653324350987259330510010389028996332318949451632153777631286428966835751281418399349688633453764482761505895262926742688842871594953271690999807290035902392435286068048826806395392329874283099963168983200910926244273281304798722893522827662155003507733367117779301778725482556452721282663900941152595745517544937834323032076757969040454304857586388949676035077282551285676570520144768541878501126513139969699429830101653091660222533422428311988517944972955933729313578751831115370542235197312464898436007486293848352105337897707536814578781645516184089517330014654218569251507853538702632463560328061107921934174287805728745690382752409339237310859925588020396468763180871801147607321375868471502025705950949053116078399253573855968372344733249340823636559718865154976468269818449743535967707354385876449291765818945823757508522367148664033425873408098255014510066866465669085727833272267584051458377670000995231290362789464720562501626468302735393603622056544587570343482810809229406857554900450916460684081054666446150996044028272373363918026083581813852141615054399780441292020941420651555836283799526708323626496285142665938992594185028554186864554135183877521582638783618920373665007641160777928607901047108252414832847747813978023301493992503924671485893836688960248644675453972852379556145593014748812882720824832458624248485291950572182716970177295375276888704442086141954532300614471468320456597075408578508615554317321657121430681603470119667439109584807663395116217121823066750686599395336519885550215207050304726334261295215540502722909057075131838625623070885604439542212852379772584670399663427735531325272601693340698473283341520644421762048163917357392356709146983478979495457971742471709096176940728253845609441034511042135095998473344973656513636376962077020656516190279641412073998487543300070557610835549040155703995966906965359532484801481328608724014553914114320609678285867403138421693010614412229080725423839686896735304698618025658918611905068047911894159664526370704144243327836901741223595425208792972566359198640441069181029618302623051163106824636480190602242665568957955029377477681247678121150253993177092894214444915724021468765220812552564365064095231018579768997597629122327567941200125701096777718287687821047923596133397133679031723595591324385164111476313180868286790877566796789015392571801204665956858801655944549313052243589041889504658711882923361361264850494034672943965103616161505027895892184559788507764346415683260283667473674730742664755624092399132132733835471676768351488001436427331022640032411278318375879777995139311828279899866735128444882055445079835452788175068044679515957050887418559358103591992639476253543481501277864138553968599109605197153642417813596970581444400876318549503444639012790548955498175463270625401570689076470830661325148437105408093116769943467368289492653118827743301129669542788524593461822103027831066161842295368251910608415374040211852221230788766869133694212382263602031439676685964109809847526412953952240979954805144115271254951112259308508210472839350599425043303362543067741751494123264422232300771949581105078717044502285538501121837264793424043893833377475345566828031683618070075280991242896388992463832443560835263434087686373265326645110702161504206193194831640278016177399907190947608913153859965883964732487792730442519920391066037082865143332001014353977490936883546472922762875738505076015273780454068925327122960959996508040847149939449037210062976541586570999434894596405593203717537251561676936036092405160907547549022731551943859281782430994429425518913165214334158227069073528097712975882709552592504642480698296532364992679452222839928433350299095255880410138770225920777460125284247129623214487356712377180746894354794861618812719570737656493190093993114453543468222084359255512483849026957308527916549310870734695570303781527614747953017986783389239426296015027173326985176837649150729203739152159587281652621145129507067893546672011591278275492604432527638957150383007334285631813752725230126812650209785038941236142037089367842281085789743920973431386132113303162581404200812417858286947154453943420993319470801976216223988269022247251742899980212677470548693555417328603091412434309968143873492984868076294433588893618350068766002906137673934069895201854045921904138920898792112919520056269554710620717004139906963956809615805652149443129762500123825012315627312013578888604313100578116351545603785508528795001963430777155399097167351321880350949424309203255715379857365641916418470524167849135561176367274979525578278847553859284217175029471752170889936639144961252160470530885770238546061840801407172045099148616980563036416639859179169507692406421376375484090932226668904807913852425984543881807621056392671171410428121587044423496936122266709506042373172449692395418810208404570400929113044137558693090042065702486691890228632047375875475899532452152039124727049518019249802557753488544464979094741449414808273291706117074126509291580429923494626728827443619531320556669247038138422287040531539843733896720442529782072352507379848157817797404896561569961575488177750180294935143688254080530756158678623168175373415459292014139153765714438058560811099659136770375625920749490054618778865455171136583931355393829851043735571646874238390227982369322177044170265323625686121193599700683297998891036725693263074691206810238886321386260372327289047321798124704326592685069816637733253240148847760450285170218554258389053849080427523948347929594209346360860345443490100486088827501749168695827247668828015513123188160037410289043386735993618673754307027022785871116214420165216025711005903206321729790536882092418156554643088153205869182182776120663617500302342620548435929229081346058035289500522586160971406093865679676805483221192368379822663622020785448375769431995521164477047810573941474166037317748479540529298098630302424583959693275711441079571436599791911981702605436022955606893839901264325963191585615753519182996630587081939810019041529589564596793421580133759497618329244266884773641029700749214734920848474616477208252644844441078768048374049005367703132967909246226178761841046313841466506223947644763919210271619357926511189313045903375253123947336761422897547487806210439398818852641654111157876813098656836759600994690695817417374650206028894187214164879283619272652484566817250320628300166357950803893201685070056324044160904519610836885954840106612866807695278155388040481311112843901695793477777999432058635614312461274492111453757370026276795195309089339943402672266582455266942434957366688252128873555095647206754074311651863555422832185886661847067140586957433905300225125106764938596544505463126833391183635679689237268663763060759247334694222686048959019168144902184716008825932510084648692206120031923966443022004579850298104168572275448240581903438708999873929396856229310974641066246303881478619904867984856878256881904237992828058580317358159715360727362575984845012250258121410053936856970436236419608303383025905712109175781967723762232966070891400963885830265645960841445434522888734799272041642945057451881369790776511283187058241683479757278978362738542802224180064873185722862038850647532308111346205058992588449719232313467278881296138542403181196449813987148860088358700297722596831890110883528305626499104383941510774706717116314546750619123535709979093549123733524716574657183112232425564501602058832108721593215030276823395714139531841841935341665220462777898086830470406231946483286253730243271942734105550828721708283838782017134862586011003955944814761123614150995695663283319511370611456892772776392455713383216459639510329344226026145284766885910718110102034141094057329891729423460952114457950860058297781399438519805925195024658075157520736214315685041869661088320784954955541972265530032392453973218206581133732069304423063619778422452130909248691909494261004471352053423757277895470031176690210936558963806857778394342064846236679875918496059787571276617005501496705667710093146394482606372104932474173797339481769123673580124924093802453700381918684827904463902344892433305486950035366451470612699385070323013309692165035626230598086904411153751333719665193672127199444038750278067250025819966708902858113181717902164727178609658515464573652310780761164463649946601816330768566650412712314139644807451747562184985039893584900169805476673852334875013994535225343362684004085470381518634429205401190511035331154647411807551967782408122030440894390953784249373422470410722333462644717358506401882712412431098452669910805218403901830438957768534232417697713134871340897420263099998229215044447808871961938070619346873941072643108759866994421895723491946751103366638945449747705220702932009370553762639025709133508102811345618723716153723964575796864612324654297006828903818097942570109725310400173324216016115808083056822471303036961437225933623335093615835546536317540770380739805933069599920169781700630759801191487642935782159630790623433098750862165788843686098544098118298681755520120348335357059771556335682998345213690812606092731727374015543509545647738296469321845441193902690527928060960860245492397552576975757584925752094370878167913507749371952103604584760894390902464484716352054728829223245068780618887957587660498064039189982968412450445273828827350290902258145203732761972784278621394230790597845364988999391985541490273636750628426059168047307333192364152694439632045133266530552278578195992821224176239021757774380435878531093839525660908743402957892398633710322184846161675054928465557642724623943513157910247897608815343850801300043706385898044218786551531675211162844500290701942875404586318113481515416881722833915039114701554822747738863092398797444220055161530573055322818845665493431530952178502855659822443186944844848198661683935790318795377612457756514752285987738139197800726429445538923408157344777202318922732398383292705959960202018736567457886670405003059325925167222387245784863186522114597122630379244567065330589180276483746797359045800396026157033130283252141413123461424957073170176626377940706984229402070843958652010757494320537169564049324411739927536235327077034547294410136185689132408187167204546355797994446435647148572910284010616674909452500477766444331429080755464837007456489680053932878585738060019827520778956676446074900467471572368680495639975150153776502269237786416460038433980417571348960407145118313234060509063322953635033423541948809963165787716661661980955861770571475432045259337738170789019624442933825113928715240312300911741919634359979520133962802269749173815498801059790685524855227297619770973400010581671213446299672111355356208947777523395135906412282272035294832846567870295798151274125626623575720613829281907294821106474978934268479804520144503078627577533963317311180150672591034363782246044742566844638237307317324862528782982146278100105491379497386189409722804573394785499585248285348683198685796530883346215804184470547025715966458586212330489001080934971575793314186424123457114079649101377290531213679169422873909687052267215160726131027617715023667587624502509017074977344375900984428366492849051202780751452995820224699823627520692543206463878494478180858582322909449396579375467231350168170493990891697575274695314325256140316065103417773272075328652588386612904465036761751050572876882541305860958654022336325727867006695819153878457582891408195130187836272443801715239319393928550673740418074128170298547132816083541558508889677426538851017335371301728983262302384031080918434499851807265914289342953733900934325017446273708660477391791726993037068682845478414039178358008693237355529595541816298181190362621567288652496798746127433016903708406350350811300353856104633448995669812220211487636484237833206334772678902020979031269997522918599744340049303942459815540122142179123877423451657532863103402078589814166695094689598955270186283359332856781728217100076318522507922918480102572796400513216914476248310328359450946354566047541110014655745438894027782568415131019578453234434238368048475020047275591569360072727105556524216093788269872795753896175752694725381004325284639793533089331894870965096888275877150768140649459326121346625378482756038750564852466496738835352845499099054494310093688432332857426580450437948508128056926323436833275955412040000739577619329562049873163475147462153550210688575670595498887114953197271056311804981356000439309821539446307393991228248083855417294745775423924513571658628359666499609322685013223287089617632188813074229767206531459423173182892209346336831303779347230341540140779046493791010293901639230489068044376201071070398220527359908449983743333497553027325025814704770641616673632938711791849229232133387076236286994357455110816660397172899145466815164870693214469737501784819020041120662671956374443046823382054172164883550761369564689045332307300972239862562331489988054056965477884215839701322153633952335635348454810985649985214315441747466543291440857645646941291179043171568703289519297214233493738958642378375428432865472841556115452927046841106186272701034567249248407978713452486160798971551748272329019234363932362507651581436737461273249231604947276047343470160747834812955846257024669108016436801487447986002248362159910117720103050172160298067719255655378477340568132267497071604466558631027553222789534008154087169687507669765006604333922810116414557075788781907491795760185134955689007179533125367981747036237792222246498171593490654971120952160209719332927010928294318201972735953179961075552316321005641375277340418340828564809063878399182615888436130228019193110101699586235463818523169556639737152674389082465414529989898549835500309046373846506218779047661436890358988458007908373920106124104484360495257088110053516527331735839322538684584833995589063732991866946931507308625100134413762038762223143458501765580316307298074482714111971919984615213592038249680378425053393063481999067953671314759722803763931813556965185728524551900040222345801187607294927694926661763243886821368931978941492435389479637205853944077182378706875739539703441473500706578325156515153019457066072535760306990942352048815408159944314773661059030189853823808302568163906863056648619164390678093773438785278111393291827139018268563378579732565299354483759496000491358663932163923614873869488979701774624058277042498756893073272446575234538245087435298447721232595688869505995142626482096034006661588852673872471699325553127177434891587572315494867649363760973121994399655904930333057527593599013849268461312835912648916253669108623826360475779974568843613247894937175297635422954517884385623328755727131264964827793104148788646323902468868722632174422263642008069631381482757122691384103456164982849498955560960661544811561817252237520831233690569941138013864893600678101855245774117583037065894300802181141587161493869258904836850051586090280178870092767622062128739832365382961255698087513492473740166135663602542996796372200873136407729037299530353555191145983316424643041119589691261498311683624488823412800666646584081427519095564671737900447447547360750125498465871489534304261226171216758043957789144891105473160476059850714169801263175969139454867152263830549713784326069419495059040124293206888638438350965697306708800544429393966306173696706751529762986498725261857240124884299507821200568256649023189778389723305593019447195506307963826826409389337038901071592455933213859573491491541604173997205003359651699276628846019286338684802989027133343167696666215176236605168157614517638474743752723745648183401188409677155261592830998510257156189151349537196262234914675288203545770217000158060492519212481645937778146908739425505606236623000579121961075345720391179973328108992567566686314614986155722979133403958703642041722003776420213962566823326071402895655925472699677787854830996690295772890903734396094357146123904816478794502920079562546825535761386109011606881394975208519755055581787501781536855253623476774394269622779836485615926353259242134905755666330727883814106048659161005339617392031404761445992446751155111518522302619075443562248098174846972837458638726573947492066259382355610170464923769818156155107791521470048328591312088639816931533239368578263063133113798816894017184208826539078238099567668343180622631606442912594291751693216972369937756203692753085760062523736037884433677685535410274035786471804653065393472034183377867385979169629826556146781009761059196926789205191115039706355124255229367966481782469285715897773959800884360473092923463418137391217736863630423157233706877970516124873972367516061981925326217721229432997818212982417211667079736157139192207883487857459731449779068024671948317424377179998818981699721950139359265797326532914041371950545417982817042906361002307627952741357617515059296731273540295809960243727127963807974384054367623595207788999673555431827433289572355334221337944394220487134073113665131500455470788209429260408591004414644197624643430168227660819684569035859324703224106974301849420595754533019898439652699587999788343938433965117747919246007754690125274982698145497015851129278447402685402489819669693790649219142893579804760552869050601957877214369907731514527729554136210836559666858496048537830790104132067715861036608224530398005809217767124958273192868326554836835691848994524241787226702797029184238571862449580434544127559586708762968618735840582288071350932635900328479435574997292565454358950371664411944994997457539104326464059754628568569168168098599183854449536152472050641589664409414506937560355217991088362832837435519245756157964852976999256855397508342294442338147553388175177498552536815886550050508322281584089921936081103983226546477784323114801997411724633565243078404016934420698535464256093562209962872883602162953060815972033667358669663622122266230866820473652479007814524997272486739389745992913727194688451948747556795236326388377808408627083093945797494459519680911728242206901714663022335727689241749307035840788302165467639077724563324595405923321647897811721276804272911325492833988162490875010317166934687134564621932361907178525998982283793740561909027976015081486901677695056566494437630717176369684536586653081705937970358449546445509956190816711674115077871348276243212987586727695073698975388870761263777576216832770890141825716374633072060792798176040441347499232193047597816319276626113115228267161233442235998642720715812705284529275206495975844504247979104518027258320720290893700619700871380774635964969862780893891694837655322393825070756310920041926572894584523511479304980276122245275686049854922742586424881579645727955663667600600753900807472349843453582600188287730669312143775505846806579806036767278701189647564441982820402112937274664102833338374992438872657925440285629796228127012221368020842093932684125301077817982128792496770352447164629575805446678436097273970606949372935098958621681034004077140096760259455328437307866548625721017594860134586803687733247915223432953520555177006561522383946727887921065523060717889888677206836235274226002924303355361365544738613205488744689727337223999054379109316711302360493406181811764095707681430971684925788453315812837071276211964989653336272848656707184682228866051897720365941060159530568303974963465384570796883845077040471329609011377930305980215537271633342902442500788568738437506701018789214921327567145300999115933953269091803078768409306221424609356596458283631362447116980806570426724068584557976091493132632604155091809571148236813524595621116279126508258764105882876719458101852587449221501022523916818401662277531231814619263988125952502992250344965503912275091890533995279014842623945681883773408755842958654527563657076647414420209459576405000975394393607531650414817405813096746856708501196177881464212608562513494222303889134134750154165227163322036697380521466490438483980714830385235834678110457346235572684804826857451398358513653652863423936395149746365246791373537952878604402524574507612766172428845816408319905428323045322653521947800370783928201957562368788011889243077026152503876672133222646748433841038978295600928198633664233568179322870474849324388899290521909907066641550616905398800444941058790684945146391485842057376004328883859678541260400311163790902639149811050000961030267981899460244320746342425829130584042015810100225585435058245106618651005042373088033063100889380821593641459138765013678932372699080396811238972947065021377126906315297349111123380705830945591596738843987547050096689211580075004818675416236604603742187881659980412790829356605349599519309907978903793535895412915031533061467622231590196826843936339134811026642469564709571045978542777920104289455746494048590696110750340603915353305297315577922725315925926061328861992875831354746642359045744205114897603005008571754590316522328916676885393848734426779542011250518407248636114822377761386864788244467727381378138692178124268426946414085373273723148410732067961123810490145923787764687115593947514914317636563452296277389104515849433705757468163597804122277443418614017091278686084494695344056037414849358431424496432438552420462842908823223418436483058265495435386832513485956286683722570382813148723068316122242033733718877632482417570796199515072730621018879774145691938540763444395521299597095830172042902887548112150199123181150352612653839260518594985132148018693226345467105468827049881457650378014101737730671289706247506855153762424047501828760910642029218620011527282482049812998262897317107646709675474819429511008161143725683665091676073296558672228692969852171790580141964502455550506251716511520846896275021785450047931606825829348949123193361226606976311273154723017026722542673703771620748088583283152140796885600079936707319788349667588242091783844155670806147945574599974394981168747743974775244872448752085358727388269544078166845695656435760733195517968880261377163440160673978783285465391306283279524646785481254190551249233514041594977693628323462486565502115652603521958148328908132851487720220488775892547750368816208068975056780180342614614668512898407189540989359147109104908252335064307023949669693206866356926890557543358092158364788417686189611098966880348967981559595376763046425839993929340095325834391511739401713211756122074245567947014631341535517932132174149779424797057839372001552805859977928450702625916202646388217481326132418244420742603548182355287043255567167358603883670653324971137289083675510469907800066814433518708696957560679439793496032488883272102674509695435330355073625763109768067930905668868932910750760001248131219914211515559008462630562152194665060438734673674383742255738605475647272197829168840666967850314966940707758210150746463682809677709982172838376199996233056666402447850096307725971078089031599357119238650834096769187158530482322862200938546234663445465169787260028287263605508128715829897338905428091070587686100069446524358774058796932642572810417037292492293456844853372559901662095608462160622916010801492992943693487144315421148501608708818645439099770872812279086122803173584647263496581820835180526310060266509012272578787848233558378540608522783127884504815333580036297820450624138638033396981247039213057964306404096706873806765631760471753947078920012328202783437994022504100053984528293317312428313633981156532493279597686982283536967544315677928962346757318301384202620187475115422258685577742758593418885925902004075242491179599998341019223612678222668901620173071361702036938360956459611363886652875061885573008395661217091763246592938599432565036797336121237846214536570110208346542526627565706641852682306157462377661172783249941455779616189130223744084893699847633312633336093093663873955812673877737064258490185319520273733830292161087186789904334443541002443613182646481880243220582277978576446519326258095544147464650096790834848355263483599842016618182881990020754195995694534873344980584362230501812064339638550770120643614668697410641255433527085122501684876984303300809702607365804971670042008469635769706162749287773859945514774240953263912989419225416247765119071434579194981139692619397512302620322521715394479414902106552679200861191385507864941908617923193129818378921676266191275455547186198923819838888825342817715663227534679158218796751652229791340832452357705538634338284240357543218580689064846183773961895444133787338576549488207797381784225939418714441548775680884240984050543361199607421754603067760422531494949539177259360322319023387686210623895905995834943553769245362306900915202392212494939946431494832286482919202319694978015486560131927045988010631211112608707996246151373632039813883184208001544468304122785659483675104941023524699221178299231915970723274779824395776761531497511738470905270142553474852678541008641858992304520485269316181206173331377252688265954015433873172908912745919778067133176056106836168599227195507123858963605944843508219907838619637922951735776682937231936004705783188054251289295817882554600141429412481961719289874925598279933787802011711870055463916160151517578704771618558369672731271081356718716433672518387068034789320058503222742596542959162964159982775218476814456978336349688547056528145902330603808212015002947440526233496219792677877874525862567938745741937681921632656917030071141820002789601443002956911727531373040335003501189760570671830741475742000704185364865094448456405231731238366079179495003759031926438172742803918154406873173263737502108295231146403127569738563848628030861621470731490301247594581058522040041870767388270006551509305204538462875875587694737904189320574947441349712963635933488694323559118135138972091568639012109094264249663402051242150944478217612827508619825158042124235798770132780629317094627244356187354393980115915512339693973892209286497687129552549855143118794445717399225963014017007077408022329174955401387071188363357424155946610389277309714676976869467805176715416116345585067066087267151299312109413162822904667286723772570612000991774019925959849982599188080291150445444452589790596867564364340490233384290103057355073437993980335096243103295243529793309144261894366898484683302148050352258377971013604756288699711449165755050089872133462936780589442965793756723561670407395554843487502396595571766397022571610456205525167037906754845881628052699321046996333410268374166668398452871187321042244131003563554950230132153338977935224471585549189086920595565901635188287941103005236745010051339551210754094212841458776279956849880406542851515391443425795578053333876476428109239115002564520347348831733563335668616133818766770052171772341398701787414020454063006823793071456353117278439904116179110385854974334851720300132904207008026431896895355119444714777701245580051317354296323811618097421246514872516571246284682819917240784641863357594018469589610373938529021681058189701659861888500243469298326462618638855459828771129307371490655806952781341397461853106042846058843472679451606737496060849078875573834944214235104589051768429391445832380184934073391994507210709389901412816217746564792766330202344835733541952494225520546027207369369073053562291053941916282219745347430542993701587278332639888194364841677321261933326357084924276204907036094216202831639157876719563647862914495896769546092229414456432515321405008627691308340512138378330647161756581839653627180231785017011514122981991746013986860766837123396519496171974739034653091436368842263997937689915578341443482683167448461738384920487013107541114554264573816786121278896307401431115010865471977914243748834993314292622856354200740262960683411506468833244799714800713824118859625603413064952181387377903406189164397293823906351238747816891318841039133273554047998300148141765484496185625390625593075004491563665345543018708343541322374108262950579880984525335572512562478426235496477856807838674163666503113354430543721022052684693038455591120455161304686717373751708760794001317687184416559721898157189883959833925102451826492585479248725005780784977822588071844765086453370626739808749177048429034322009907562738408525634579748192344778248700089875289249653767514879053209133425991845392962010352672518026737254175460019559581661662838670559988249394740746611837560678464345982256320509925884489993187003471049656697083125221878642997840942933648183220914313572836379787652839924868821081233542865535303112693624281867845727132242228147520392888165926361411175634703011748431800685271445677231047482530677560532052469699330954867834324251171836876692962454931768077932639229638049974967707623261280751015488734059803935262054335393503508456559392049974982552578217288349379177716737231793550584674397665807491567281868228247435934750108145868513872260965721340207013439139339065366471310159469552859777135058819669814836353401515040421440496325476565210013188497669894573263134399155919742184099457864443575040752441103329074501277679661280531316434314886694886010479674371936798783702696887074814382819662069693173820103315680381098104393236097666762497813508139549975027595427546266220907618646973860236477080834752424215597234796897494165904623338061921575364210276279419768401226600483386716038431450676560355643609041597517167283341913470222344820741961692274709466089287825042962193612840361744524185706001336829993096980148330781687659176730109500825903762410260665364092949746912388449702398704638417237096626756894128298742470915235758409585581222975152886056170509482813508847784208091746588653770808934052480502452827755652052547579927104050533243587726735931567304093157141000640715067020601203372417378991795130084082302748757584683202479687554595131016234779673504235559460509387827029140758119773435042721983141039361538439562365867062582409273162418786149984702183153425501739688657630010415398491028328008409241230710104625340657555261364184350161754169475520771725651240565618705604759562719927139173814029603460472423369139279435547567310966350752275962848239720313816318305123942188708203654675747533417962297645085877441489807007318533382729587263057550779314230651867257883606353380741380612361130818237264324240209089800969674342703322684716829010078531651548534368506200877663406749612479033952922237293913639451307875016419536616011902294911635584172684888076776242946483223441545781902582040344219286167058857043121870421248218667303975143540959328014873420835220852026059174255955307772696982351798782087503515339690168630003500039664385730817923986020002473618340234016025426360397249689104683083006875465323905170470789433346439669368808343354960182086745903203069379314804878673963351712544540977978455168579140529040411131975209789939688056963434226188454526553266932294106152248352808667749083102419754710609146516926486095788357261145064940045207756801392696326949232810189222300646872634255661499513652437185944763057188519018910127686498884824427330423871674595406213639825225363854169101011408253208251535786777289382837709370862234466684360668535653641268954626814857817763646662403651081350653885488924322390830139151399804603527376671602429067606178302246438844860261849112422563833786112896270211600157342593659600001211903699594614197331904216279618061686893440540460075601895576865606812978822483167349859928156310425962884884694181143340618609119031699513517100640382179412281188069446603457973444451493811900601916357049559117287360856542938479069027746512055859421799582900665251141068837971196235466705369788935933401651424703580090477612527488868842156928481420257417323753822799044423131356007774885026463104876871529611784546680798485625950567223027303555403542327741816240918003265405835684999706666529504268342895114923230171505413734097803738304307509934429426426844323979306843622631289747256426532885084732129712957913452229248270071345678084027883102361853313009563660523770393475816629331350196675192549042734357677036704631794113799196311533983645714925479948188380023387133385121859084067478865901397708498435915525033295940850631367709068910404413238347628368866576520563628568222148379959773719905460304293353770501245314733116968508996342829329544232364022802950479691644340017025258423203616809640517557671520257104957875296036307000680292121198796848012179087660390203964324804909850299302407981639312434864926126617946738232284855648310490525988234276640419430249499589232894410915836098232375567329994238175159334454675959529992022410260846063270503156665180970140205976476165222950786688142971923074184928865493320720540149559285377704835334861887507893254302956782891073343402310356220841666797185341318292833792417188004160758506386258582618953621130981271998649163063522269217187138854091525168329035883747518902182844227354595804320492910843257221220050705869436570167925024175086654873172004079974624160690391083133103333491876677643797421144793411294479384513431945106704271773793533618988081990031944425518091343612223565230185127654828582607340006067499307587003523973143644778889155879382088884773734036419021043265805238892641431071630817541726960001586502272038688006760678303963668941197608795629985315427199305193248550405111109274596843741510764395417943244802159185346703469272984881381436144966683119416513049322041154873844637466806206262173241867458625734165889262589037238055501095946377602567033211563432313432603051540811961877445476686098774244164245669178154538966843885739924231640296842630697542071443032964168094216044541888423852010007354189161380925755601959246778008878199434198063547897344430349672238430342682689781640440951532424120823868580070874538243115560781530681638084561621666040651260565746624010839695939442052215531034737725352827883407630192147262855010610637949203975831226867942084020838382884036898155958137379927897597460133830570536954545531117592911633612207986608486457557291390869960887656520941650554230332523170960990512305186480029476955988938036530522432499731518075526688500002496451871997154234322062377122382795146965244626607771834693301270308540388273684404464157169610308409767236557865604629381333017102660598344990431106533188215317521219893974126777307790682672666264819612011014946489216587034126595388231341726206354278024927155134787354818633259302071870255232245118127149555363672003408939229283459914799694663542862682756063888952903488602598296408624904098126158377558186683045072514024199296724311859961360508614964916584842792449893230963649726970924426248062592606487954002688720119170187560150296435573156296368903772245631318397658385843096461689332138666434107354272574899607639924175821226351516579989610044006770117184980271377922163436139955071500987724262971760181751010509460258986313883956086595291190622470104185883258890961083506928363494675712420424904806022838999413513501863971689075043648970749309696244897385384387842526384853332392271172387313727273810870037464187395407885627926979857071731259781060327746975828341779094856694971782840256700792791750275690314945343057947892542015667115295662834805933600318169266098046860744281422307558927744387076516749464208338512562680619724896604706604463942504633766278269309596989701462949606847753399690050673110742956046440470765052350277685485638537507821363801662051042453534507231226947411918583515019294838623410912101623857021014946199062584633508417313239884475989787839377203846597314928576356521970773335781006026520655380679580366340087122732582842605768315920573843392516873479072799324680168865934774980120979876673928241827365503292040479652974602712366009521130211629923030734707790979317691465925939661195785079365202129810362823172551862970158690583786891437642145513514224096760164981919880639039795127591348612569827048330779916187399385155179732661928676469100549054551500430547915035393702728602975609325616655533382923116384618597350547863206054623402050888171337591172229289481867311797195059905882525550824594545788713556909669673832531678521702184438937972177280174254324428286292370423162957877687454864283518938902467094794040656597670830143961768054339625571246739651382198920909555291093835400229955836920917889395372223042719892421521639558770973129946054450525218507210630087925790314480396465570908238499357704991081898196414572299276147625053928279249181345067266714236342060215611934087447348393841408932153311419274510112034066926628830451551003157297393304205782306209750019190984604505801648256069772834877685495802249878083276162766298982081338294509467142463811585463763812484819779924507077197084651964435800541034162735054024630241708804538530796877526791383427068200306919456969228326223912517173429725522316436143553119376277329311662720864994141149420614390927971785284667400620892180036422344090093453272366242238013534244018366222044988307638708966918376752896412614286344830433614404274196193183701757099150772153440881243321453278728525702652034439853711134702381570854330934728081662827784372937154333283047802038569620279681044754262239519704661455571489325780609458811821067269112836293766287766607484360993374139935089018484828035409834053639483232923542057935659953415089982266347867028494258040433682514747782205790621790826585340131775666036034534891242089458749526011014861642925554235729126553500880802090097924106860188539664285831909828768363944673890664362955630642607557266466326095802052072721655701161208313448815859758065731722335856675296235341743807460373528248661205318009855721932005377761305349792804904750339418534817836850393522530326377770411439314749159263934458350171301307816383530687410230714477500714947347919516463649173755789096118843071160563126318126855408478092890824020597577588927011838598333014696082000716898500391710715099922628275395017206327884329168130666125529002585446114936779599808986361195079326088877083270473900744125853119394215463994144902432154261019486937069428487850884742666844284100838968408469164291071111425378557903322078668681750610985199687889721342435146290395325340639482892605797246136404169017021724049010089089136317388461190994075809201845963258057488837161063062821677312176048933186847006322450085502150943136503980564017817898720956174319686812434920616322223758299313140907238490227117153074208177628863301977226295959097983480439972619855084988574144193415387638805022401302362575584966445117538430846957328592459120532976479998056642160015804749910751777970967675483624644308832838580025694190065495221367537499861869214937698496011818926697395912004957772484813393128822465006170960028485811061535079563760203239651092321379067758545621639377189175465293077595345716788090529260038784901059442158201399172867651530186986173816657145866594136799277553372260442051277713824713570107634067744603023154331909969886208886342492395287476032746423314518533767233737396690204779793681360804827237988751920028715263101682303870057977489219017481151640120897699892606580342400462415166322499202798453182218095282501504420027166400626589405012795314343568768140770105439531928548106440591010215768590349386690385231008357324468642263583470324523997282624274926148376291136734662615313558128820685154080177098881721207392073196496123876836199762098185019892822637430964901324579340387511693234346303248801094402075938400150107444102307203383531716275080052487223922894349819686866273758538615482618021078318638014677905964917410565724977723841652496994155634610278243077801603642233008304195512497482760615708026493893734306805614259228300196593903774837179534444886856395831450943191113823268082694736803955525314276241147821160988251344380068386096052774356295791566555596974979638769179867328102052180616071236305351106562440612215968008839435767134282399857492157070512209166714529788622328006782668328411692877335656856076190651464517291792515017314482652887877541160026983682942490811569729288686112040903338475225186245444984391035886534517613782818093192282567705118876375331727662825779790013896414400193836581785616959938841704011603177315728792821989053209570346573853314569730967690793147915252194408271897416801187355416847736745262556715108175312206139605608491070205598982680457051943878533950089841459487358523851510885285342313324377832092727474277246526812508510410947646227596161566935401825612901662499399321438921064507116413645680283942938612798519075207213312066626142277858657923110249111217014651470134232658038740226116105070026472448673880461405647466439986548066652316061457772282616622851125770693760819422974795429028041925390143255434179460127819704810964808236854692739045410916504869775204348597133126052085763719463049474107195322639676189112071608967687992851721970456467328321372454944655807950799595106271318399997779711710269666839891258690636098817270112989153138885737426996080996143510938590262767636157866490683279775077901094585208224527971663172911782792498379075650004001785746274740821760558176450219898516330447399627508124688880592186036955778729354229122808397742036915287534756744480044153811205204686320526662426445822731620675192222360996302201067292071107369307164979857699487341142483991742708378864429398789986380789912835556090371554891070284204951102944241607142977170597991976825735377283527884595146564394894859681042227921234387217261218312906779433560276496654108640539394504066687615014993983357007184703621125586125007422810671596289195228037210057880915937976980887950394665414116286346498159650494437970943335398333989586215499849275099885458154519627844120502584036445845696028500274847958718671089358897446910769334159467324213487660832191280410534002147529180050029845302326932887448552859812674565998308758246870486757312809073854461346532621770004344718477842343074967046173629131225911925037784448062244732825517722353638730681002052484471762920395551623230128502265280065024006419039121815030180976055065984454828931207205552946143143863518202400732678219569005234127993213500026489074913764458021954013003026555770430086208857379772760846930020887442594015509746496007001174984833961035194774401094434293668698741552546703106498163680538877062346181617357786846625259614213860359603999681681973298506739871575857898031018650686584936191411915674383753425439358959053778390511346512864931030786118639985057900399299315820364385651144346160376261012192754054043423592065912181971935396608680194743906790213216259291804688824884893329961812397403914514191989844324284107981079559391672030113465700769372652317967475150707581203991059234948543476837598078438482778653395662845819201124277626667654376454581278487890961551295538736314334498425990682404139185966438381394489752808582540564371506080545808231059740616979109339055535512442183678474735563974644399265206703269991205666730108836392476814689787548148433926296793991302415747388822199467314313201532557502498340425279384436769542465130984006740691076398832525687082553662907589688942561231570728562324959250991325885699475384646871187015416404536383591274403186077664606555305741125715379904000744682151608348140585323170094924329988533965192454586455865145989755360962070193382431257148234531580603875869081417160873006625497774419688536595730015963703983123239394452584883870401358429755246965858460259047621590140698587459275421106362013765496929881236321879311200063779593285959553977045764592855872464229992760140734717316262836155704871482029356581499696057589221973958748478387147785630370712665426677535296199947337555848071835899670005994390152214836710477012652805527449130864438222603373072122142199987474362119807423981699903868847448411496838680706293370809502575083547546893993428230253941370552108810507047978065256584019405393602440651564106170568913064275925975995409966580827168015977568597313559564973476841132672972053601363322368270608331989355248016325320855804305774077185481928912264959001235680534485529703497879194522385391569872394648058881698680892955896562704406293279658326132498138033567921492496631289256731721564138259822602012287289956947287797009281437336411260250586625205348417704977872283524104076244226651524052307354648221319356378022587828546955743526321473212067565878079021361200162475609811092116898163335994320195747711764565973325459116210639368238996548990338998931422732702083916952420236678198008608009361953964480380323853181845881791283616481298762172268517449627119047003740983969722752147983751745525383662339276495629614663188060032351795465554386215136366180437526690898084709638613096024542428567859895747254859791183280634068570877078680050007328924668934467088066628913581020198482068645556423781032227918538287803570893175353715184227419202621616633501642008436799613494789396383969693945688247829305294851283496271312746213459979063313354989285855568875052487135864932010811882400186077171407276496508858389295228746748627114728037404512471320066377253416240576247054547396589635426229798138659459027713110469311684962290387874309983944420082982302339133625210920770098084022319099771341839069873759993344255492217608563809579081889229628265330595786350034763883972699548950524027834048894715464479818611916156944944896499720505652781256912475155433466968195255594345479258653318401983344771664963109440568110383539121025915121426315885721491790719635096689135537491475004379346642412278207729629286138988185672799080160594125501136495408907218939402912249080242152903535221593947682904733929717237518152899037675610272959076136190116306805034200642437025608298545954136645290513630735556092884389336341105644470583283599797785711857014916451877130448865955338898291523867678896662352546051206727035196842086468800297540162347025979993402971182297242962385133647909314475839275594011729426376847629988062122356876117519108093107972402388586812600912735228206288449898071619764657671026223320074579412385867343391808056877230057568295172313995868860945506702732293314720165957569422334131270866089922210746258293078927338653998542340432313024048540183197148240020472657972803184806416563599606226860562290106602677723066812707708970658052846303718437828483427094728351601903038116923868894153961203078291445344972721830111669589055807363387740687799208438773830907933253682188387759392821454942150201172115470435122309022394213630679672567499718153311287307643574030964734566598287890556436158518189549370573189829548097775010807761381252381393219807986757466717175502356293334272317380892745844155296645218200306915550611937447064235648124787453438654429852403322574683756186723606112206530639877818829796483735564391198277042250219966009743054570241446546473691920513361311575729976272130026581419507275889102565630165251132872633787065419434131590462645773678097154281279976700450672682098982941426040504818316824925748236865599701492554262391612267227373108155511842286540257276783210182743892359782923379969129551958407820163134029137922599603386753508676948517717408726828526440066241406422143177125963246631173521300788570353337526310376269911566483117242351873118167466082528538549184087167632594480676772595033997898824025141199396136159174735652592407685555892309482374728909988833305741771718497017331642937264651127858637323802946229759154850342143279826947749680490095795936804252126328914633727628285974458640436880276034062418431920907807798045650464261353348942448083111187109863331781802729398540518265354286416474844629226425434993776102177520490919893108153162210315613189852012525371621645595582715126785585408384094377920533054454946080276693277233847156511932658609576030292349612926663954877602676151276728642092103795342542611465080801154936516008178544333549522975177119409711665651100591421175060111383416587269179074365673178404541803445161061187799096855325442898044617363639166685791553239710812234425558825074910745321277528056329387330345853812835553738877860984056874905077463694999795972738955264890119102925587390787367485624640305281945533285179343615619570103603218715586574217493117374793389161207090239359574544136128555274679187650955820650443054361681419769112960466740210937519652433634417986216533897280252290767182535049539199099567624070120035471160521724719367211447179686333465978845551051028035522161427032356476807705879512741266314970091048985541485009165818209760645161917685130905505878553307596266602352068812142792021425794130355610299992262830512978284051763587000579995118269155427629807156640943888826441584878256060701929118361732592328431848958439271485348444756148240836198243215949692994169377838923634752595009336881352746021074343550013231168029512670584321284472976688021336978544473242330797783316928929193125322782205102030731079866646569952353114904013893606976107769479365324890042301601951160342246950149325880219190929504571225406626818555032471787245708156496179785195063060468893630465163011502756164336542575800526272898713541148017172369656744360520128373706848852783540388204190702750665236911070947130672121577181664523858406731028127017064261034941914655859931939131674636282755701088333756285443199246665739796005117200986508278801806925250186702112790878089024894475211423630460752406500113860131027109188717732772889392161748996493795261800321936718791643002230129064312450228795501481979388770934499945566991115901173563165174643274092966879668167646035104709085170897031408754746225262857377332741756821772145014014005276876378277008581257972738429595503375783207504747848154752223429011554552039766123060367406860166248958944907078187102021200589733021275012849369716514748296948422677204259234657756953638691866292979062315820214101579815996921897359053547049069723065132259304137065874366794160382000730550730774422129347320972313806978283429392330539113708667432027591594183098830110911655129008706747864942742351470810880322432544785309575972919049947768871153587833487467874118946552203778729606889754164693239357990561022763021465162021705539740569039297060598395359397945267648600368628510693964109121315100319543291445476490848654316104729289132165498993357209594306193916359039334395243422584477340787706467065594431076712175921199808925466462421473921198331088868862456981567168557286220781932629815145718203494426575054100318609207620392559290409869427920145290935953501433051014598705151730744455970253122940239328319555903104141066121382865700778944737585214954689874168638265881531799237425905076688965472393770316763809721458791409859024442278478139191002512624217173811824832231314929738608046699151911538194550631712079737003983886919513872099419948987666752791900538869862600743144063956822586790311392024602477035335601644701581170364019490108017712328809695124745867412294268544583158369736509208865984916431424511371181282839280997069805138777068234179845097486115447015726254648794371692293711217239363018789185990317869609096423572647612558847533081653546907743443518834054497295163417159479216384127430819940475316369813917919447730104765000401320519936571744632939812366987275970706191805047407595748308635469065758331192867135593910883318057412328868390618939528869315412350206440025410374805486033447972150444697391357045128987747447613486047827462189805874213794795005150137125834433714729894645861340608210464470097054809401582239611252109543151300173782994585968046103267873822967829930986174510176767352066222189103525090343531233638592224668946851512965992373944681009584880464022892437542232848018268312991377854742167429052699164898802882024544642129194255040734807747029770018448346172694067843384949521674540862214122487605842814302576231968215652007703692832066059406309742059677427039805976070317082858915205339117428837764125997517918812526369571348181399555326960166888045191615808913626656955969563370780136126489226916508008479635183518116626936241478564118579694948080461875735994259225294043702155178382898226747453607646370133934672007334014732363271465648462509462565754928370652518618636628720842833125080084662844598444507605456925015541084547796954646980944764377077637798981108952222190254073277843614986365000238493142190449800806126142009898038023414082124781623614807561376456893485986383548241895745870643227879984864238608766750401803312111990640305344705395241184594018634963104044476735670516144876225942133191091980243890575263253851408306237680330092551823315182994046616721109880190397424280636772790189353971577325084125317418020261655380510616941358292245665221776311984999769773641086501494805946934834995699419040062136058941057392265824794584137088652109906457446884952036046948663825633252017458145839296599510071243570595380753448116003493871717143549609124968929039709144994726627873567398449809885285351390684236289865490556356971262050754408158579882957895754366207348921220537900471598524280113859511947812697617124498048250505677034615496611721965378369306912155323544435763384158525951822755413483868817534994104871691833616416648672932021158296973089555081892061766046373455903489750883318623366411551549104361956376451463868398589661850798184636119349436285689991397845009860330439197450722544965515044009565653450568600072225108989087311380529294214871969025616793215269954094471706005249585235290554237843454629571037057545316152959992087247804868161028390692434152422599952444434009332772854920696184365715906711866011476429896762836745361252220953493753730926594022129743040995060029389098353764334554168256433938000454047380219688732336623943421765603220472138572156686449842850575143539746335073494521815497926328685656452956578906857097893738078123296023172676930767701795285592189174179658767486973412147132001582275887042448639899770826081748057625997256163414476926453765444431850038162070269630827783185240891311845613126328804287522651319177697191871921034783567806842358223409946121284449540406002361164995896900715192156686428742967765547301655570605869349950558694397781131576447239408320642575795136741330289454832748022548438723613395943426106400002463237645564093258193567794279407954814137840768645050689642859483141053070434071940406955791218452917305463533938204165416733206923022154719322082453731772543837225886447876301560621687446081697759351226072541132311837953449349283775632823375767081269025203740167705493968484739352746512475056011645586447349189338354347503184454142120948615709157239137869937079416331712466585226512520968147407940574195975686814259443336154499268908363786996317056586288761916423830256415197310531043474351628967972255352458749200626690468803253946083883881674846803132329396546121885804603757660224567293133692443571057500210137816916631190110649370766888329746450688813394997544614119435175932918891731390819904409336516952815561024581768377193737899955236555689060967436741879285480054365205729300285611865594426256337037097869051312618416134556295850498096354310004373644407434696240107458850099715485645209676529401454945598400300833730921273041668103443657689557465440793494369969891524375468286672399433034938941196534541133081871740975903674395260984749360232128637656334377701396780502406906273726205529538320099649646502526035294829010429310110464634025864497841688621095758382103502284942084607215703806838604676788162750943430484762952583642625775659723345308704347794863291553292838418202784343117911394512675501754743613975919652600463375911078467619702727928159510274842606116614352047565882591847783526183003864157133354802002298766539531110899542215638442363867169652333437334909205029307535187745070597112060670691018966998949576263368399928317810608981666489129829076080406564046367475867390767394303249533167938598055217369955935871264554660940987316498268342541924962754573720354574190548538722976591375205674219470426488213190390181127317956989816112653902818930644323098119217460019486464208617290707309803633236059510542221070066643062078406760855668095089722152141679009927601816691146990983297427413371733027655386336946671581012739808864995209612210941765452448431432425673680127688528317337767886979332185042090900191587831783832225254516055638905762853248964168549488131257831808400707868963265290424193418783143745115173133072399242620790494640122634261772778463689558254233264068946301638615187240152897454077644374109863402630697332328394938860819229731732699575459867107971036724472503440753162227292230733671022965360651596112058823710879940670286387622386075901373467311025402037074902187260076153738618997762960483051325605053107729700737690127433926171861433178802387461136800402638883489867248358642198455716809741660425563268466510945230689219073779835849474792696111760174173074236485523583728401648184399004702970764118680286414895329608104669419015467797271398540082565039765020611321637764259527803326208189336462614358193085791817489926644723926094691554387132283986632763444922608673859085390404724755375134747478685048483222512870270931853243767440802154380633121488880801801523020195885721141533291977182530962556470157333291516638500120737073795764459144549409700720743353860241773128440659362067271406160227980359513676161399966113193268924718734550766774506303940541944754264862244775157489070111431869412498004087306004728960994252020530939972904070073170561829410094638267790199631435408344154156407321008298681961645891279005554308235403759165742629913278998074529652735654403965721250749826027254176413666046446384313580631408519086385252353661356385814192868993142425830257462775796760174474626897289455341192225513958343602117078556102734306785621208965293815526970812961655750286047930603097275922629074340649011789438262322924703590250833713173869381429956664596166684089684506838326645837710731277488370517194707647656079442331666690671707252065647303451788642027980752230315510188953425094022395662358211651106316171661590459920438443749087026111491297441299923150868984378809802876190403050402493994465283889792316417990796199211539435982392874201291821555149257887102029373042033631849018532053398283184134963888323457140139764519960305759572917217725128565400859304314426072489307705039008510292987118014143952657901613194864365615391718045554933776589188901293833032102732409965020264119420423991152450884952274256599618238470702929680495188843687581805178966460938659622885526472397921066782706636669950746065836386292817004711727393071250222223952611487009818368103055296738530484357707648579826268221946821635696615921473512552773326211875703577107469410514757937045196717234094844514153634974620539886858373343981684074770244440668706469022804780938398176817795209590144223166808347067138492385575474963419571298134818691184190685015248661102962093212095678168821668532802069002391909436030158474199812410923186679219204585031826623598584937083695835600535920794569415510887392834170032532710270250754118070972686252920283126788655851446707598510154678698825000010765258367956944107640320031614070056130871994907564823066716829064983293358254089487975166402877032886252534474029181486753029534400454084757817503216063332900106220598517132261641576170001811658395421223577544940869760919022590491087141337890700279905174114302328290547147417483366729060288428239693579003547348931470700514169938835066618654315009699448572982858386924427088612844724210429163348857663125809854693367062884402362144552818548733801631598141388444186749270395192165030169779281951814817050063943366086988823443606471602820884958768593924513663978306428834229342257745221683456344753448849057124129683899553432977779172372852363649405003670545148809747056574342598730672828653144165797224574655631425341369665404819041626435852300064839665407455951847346520241465058634447189318684270756900632294953090661558317122648457786778693186084209190142888657789494727340223379193385796383899216562574193878165858201700396255810438235689159984059506168624513803044415021084554031435598176751240940912021469713527772144761756093035621820477147948743783993112138101958097266790516968394949134404632482595469210657806358971025235351134499787173666062791793698802576891308281186727729439357217623651331909698749240562955270557156801823324416846862325291783452340107863104262051318086193683206370360218263462083386007836408740361696246421875912520936583489848215444599680483236185271070960585160818753662347068776932702598198597843050493423279999302644025509652778865528387737677094247273461976167129961974853734077656179726131803039997897442892571573908130742954804094285043405852449807050362755335328041663002918172139763793364658757658995875787318069580451385791231467896346017485327510440907102092054571393984571041046822052304344175483313557171221777043797782846005845062707597364304728589909767889968231010503015163130777719740350142372353781521092157980423503224149523351958281699356820936930347586360166779630369632712319128810627034111905842371880305965444568352604508694476305803138125646034981865579919424527542300874413738727250296680696160377606978052659859892657675519377770380797309002708995323550275616204412091541710699951681762955006977124508920180753315615906328092810698691880777253841471799635528856158271825241670796216927690965743386357494258767938258749895702125248736387464065019168662254584674441305282436303401870637154330904661386289504428583629792513234771398892947871642448436653702187983682106195326732912080033729195937972346998903003200967157828010245429757095786762415631821977129771502285317708999256999789053308185902736156746847839875164479615334509698861518626265696897581161402090945679470268711083866175742217031774188418088953156484253237975325926867175473481458776638138524641589956956656802126684783191355208288214169078247705440427933359737631284475849376416613500814179648701846150776708323228534381516201029372838625159700761630133491897828777486062048671974415204361474690095200464359931165583318647472050086736743544077648774881800761964061752293259485910194372974062092747582868958881903516674343936755249730799949096884010356154658456969012823825168220515732019072753097532180956911563567569256303037367013620951136763126685910233351108190484599119422378853656886977305898740924253278859019061207278847746674535815560059781290519104132813564979753651323803246369321866247350582910697536790196266325973474027082093756980712924574968069222745974119907520834897044238677456351608319465037867637987452101159178093844237760704275372082820408618789196194385497193381289400487843242197226950975447459659173333661895449081412434468331498519543205205051225945628014221366359721866233620502857296187759560529645054468129095581976449437943357090488023620172483589668088269987281330732387027658160649511681054339914639014430792386527294721969179551102978866729055791867796861052005378819183119590732965476317855093054766987721470566641874179369858669440920314727531624015962506953649729182601500332520219168945671559627879432691564231012553790794816275597011986640946203479246613705162874532854052213506081950056182248843279117198634778895977998117782268973342150459185625150294635933063121714452120968752171919165098575967383093796702201035546927718665314508387361599088904966946086869109249014337319847594187715825324541465706414878442525493211100756391764945459686364334153710504971108708908271127093663617421964923665303313542091649904323623982550006058467597713150847389373918722015299196104120095241615425941913234621079118652787794275464844884212958702602246664709309606440330368742449899825849031261825824280584533593361821206430270060628775079485465906999709488773942004371690510579383573775846029560678248353384054323741017480115554132749621015603695250630427612209646914346105862182380038739777739362869557099308527782881558453611286920027697151778700885786615393624821949365031131431863423911538939434401824983054550976631051704717344214799757643644852721600994271646942332888842148294761633239080117698789636633979264128022132867408482516054320795474266651568729703179280208429133330682779593519271054424293341402062691456261807510466509605910411515014177559937275137951139623078237145771453532881664133949601061227867883421327448612174559644385688049338861275954119491827747638963056523459456866090569801753697179906354821567787369560802078266848601722865986184827482613584429021121460460994448364039002291381914371908495246054124768876439951730652789707792078868180797896123483016852064782685770230181284471612501052817251279232911027257413105979851837845975529522376997923749314935218137174664232999170711096012852045240045004520524000730548817589983956227543096092506585548546087579457343296569350263945533668136524472803453767057409211393346789116829816679447404037653653780879479739443889391617680974921539108587909008561336524211397957414520023291017858831363634617206398491467747582585448513951024923944780637428286031970088578877570705641716962604515365546142997731838234601463846126194991964225058578020039982483231244073012183540963183474566490251832805911983228646303521297964960856731464546641976644030734766944697267347866347119537606531188969730891587557855529723725954735293518294202609454203028886662003244762449517157203620072474833115896963196650648899957690744910844242126588799507764845234724598971691563506222653422519839018806953391561986472540035081282097612190698808315980193101083488505910865424025269664695229884479699242929318946516492477573182622100002234431202175137464374973396460131027667156272533861117477973872299855433370054057333332795215418676365096871909303269993901663153529602161046284316607578393888163724339103960239156289749003340175906419752512273335279519212053269280628775303136066286316918980719649673045755756353633542969053538016627324466800357328756917695114108649000443834348707335446339561218123713939532340788463927369971773092143943478472548394118539693029079906080494176010860166060630106626534708998459154639891267850207232711341343980056164947582232809977997480222007061256688534419894031862424235764883618330568705401724416535810219191577809023007195614701233367111380618030577161907083600804404859643373926864737085347366780870962912295482342198532247290334024408156924868017391222294985378336615708652657650189277083189847839830814909891194407477914863312403262104972439453266370987558507593202206754406010530541140564827982548098363738510814502816519173494986413827547746176590051436055497353849633642972485228943095443058132282869469117745579002187786654922364179489581237657147364798403170034132359399853211303479692171897889503097390908678433338276062152535540641009570824462200239283457542841086199743175920812196679123251018180955755262864563869768961640881986414233093871170351137103636703352539805580849684493415153898965941420908466825580048802196753404157163820962970228701268120422772149275934517107388935853072193781943169061898030029970546179909677744126899852758397556342506408342467777303761087492465076980412752185040680963140234425546495393853516984060204881049922325070011002296170561008887932858387909558751158159741367489816841123994480907301752764582830168802010137897586977125661809845820652887696784281146136406826297737359295040255731701740769600333001654848530130273211382306939088411001356612281086208306801620382110368043152755410758790170790968335205815065647172294329760429937387499306888642337596813525133664108455133015341797146200907608888564362846129305963988050361711282463492433457903480859409163243568650769581257240277575278700195635667637822209247966509795251904389037127334971936814622878175678110197180304211827227786260739833109770550661296412869628789543155038650363227088161931250540000017698478400644398121409815039513757462716360178975950647943047432013167666889348915400564765176695836824372711830837388403702420466758715551809446169593895825910849771404638137676300666067600187213896327326080342707264890405557923273944102585916056122766169717120701849519354591366313723697973281799830057818523447589479395062079438952795386976822405872116006490483166650846928713710466894498012014415526692068743869105247815996846375326834608880149949165093019162128015486181900986332551830293147668195887475515695193531209116223942532358940472363928308885324757651727111784135898603155735471984218768014461665175070433552668527665619352487642481477352897777881728931644377104703377166594906682403307375065659510173225185744082588316988755354462813748994972843228272640388731879235454750662906100571393688804600129129964239241375207361654982769098193434904426628344128454561537863829515257348561252622982965726753466538920924794063447988652271525359062569381684238195122117727604403535945075901543519261246039940143208855239522421559456487157177778585179979169605897093860477996568203192409578625523831059228756027957836645103492058744762965821932829654651917813049788181391316849541850789529600406846034681110545424010961682477264959719898624809562750086621208761189631616279599021399315460556883712616161099019990288869025361880035195378639463969261272216263269224617495669330934574823113087228924691681457576964951230747867859220493658947334003684046910014235564224471399339282861684947729540228809024378142302603474383446794920457541458641850253460351072623749505387988325644675744814075563161404085120729931736474192648496143695847603924576040927838382426080951274838271812704457049055248916663499248163953576647371066660108834337151297814604009545912898876373720572210934338620575778235938754065957003226346235535645605224635788507751766192176576912652763161288018490867763159272767730541689154032785070563302320811609755107064426365039827716573643263084350874903667189347931737199816028877102337889865359920139430464651748393475359720284970117589441900373148353815324169440475192444091548009145071015253984628416954724011550512728842022423807835035642949619474579732224304066730295385280322941599056861199201509052523583018911356778113131058452556429524468192414485495943089184777542708734517457145315097358586237191005269305283051376970678529824870934220546863982031887757488558994009838162793980923343741220525017479713292885309610290052771035679012254614318559844679758868288846434103004782848289000060791005102426480940889188491737624866574051381752784468758035204677544754291465295723078335595653545106965427545695293751592123012196045541829934745179011757384018743801135374071062230556820563720721838619155479499337230498794636139076153691738500882592705866180265125328058878564486421908373391431583384055106001889681027207986587751407905324029919846928032155874343016909450310700433959042082197748978518526426649522327375281822880513348365076188092382004260794182106814289477751608175059867591991710972145679205139524828363711987594595575159543058122154537331625175146553177103376906825419896647846073400022631527390472506838432449300425572230172638648486219828672999460570805499899245203298836913068699624224396824152036162396601583630354930272378889661278433108634191376242038511371560710371686027828512466539565904225117712587801862545014005319787976293036250247542101483449316231272125632226647918337076033555952679249860611112238671207216221178573564273119100101950461336866391785226965047559460363958758008004569363225782836558677740649721521122354821158393938602706100508888088409252005459017900429123466174221654983587074557639444910325969067276017964173072373984055236802459639706237831122798986304889999376500410170331546119192905044231796751485324987593447507005679927286313418439216243430064808619429890955780458104278898005223448558628026449811756132101501173319174296315389997038861937699181459174670438157227690170050444985716463064371331696350932031493730353535617858884812056435536586726402853760083933121888837575405799317557244467736229426038803996126848998248563420930633641896659069394138690988943727132193327499176289699319882527151629379586769139366757861551266331422728775779539766408928995886287461156072281771383254945131627977901134496118395956663197223469094529623107990100704392890834479483070630846342241126000538676693397975389879864668945823342916751175221463462855878937032084889701760420036289079220617493355040659360982905321840777199263101083903653294471157122639445775769583835530015214148263356897942969302836557292986994976753610210114125853568169802489505705173767241734981648717076521631704174532512081833595879482571519913491370734073126381397227122787893447131121726265134367008778745321595232060018663776345149991589750888478191621169757550247317243136500919361170250891971468371184929658947123091814111998161207183723709203430806823324996709691080324838772353811355788839420018095120313790230504129726784805375742729819470989509654006668919114493052678172477040083264612611585453629031417385493708382139593525106443854020058723153683419316884434177087738900621767283296374236351836808538004356404627698134570485365779164023371821712775722101542046091255324421550102091599906887323144545662848730566067341963574690450776746356758636984011756921585296209878887802208567401818625359212719279405416467748280293468924216026482184773726451756812055987158062199969630922083961956550859669500395315152056995034248754311629645090787474264442135872552045886329284051723511928066009305829697147154033841218001890668920970188704177456257091803868304878675103027719042244144201536909779186285619679022927237644196008632571116354711657171947866746024519422453582770444886333983348912045240258992644026346055168662316572325622613793619071660781755842969721584346943714520792424827156398856292138391755351239995238346811665608573782445040832032656154814582383493721684763246413346100122151966065453934754182519537555370063963882351187216723855499218123928574722627439465719542834725901936175259607202175754374812927183186118717265372857486059861924391790352714693914993464339994350120430161148726914228548984278567830894715758267702649168460401735714209203039628032366854924487671293884637337938683826412141998422937646571491047037118079400232134625239231561703250215355034487060141486580381832802441963551440082232044281684753454309151822658288424450612130667038583598082186222707184371261588135211220584488969561433986186353755967865798507652039531442710297718663517631842790569841171789847118217395577105066221911227435236544604072733557164528893720363347171792482694114171433628955353988505572563908000087253856506981457269442701892698973374688695662464987428147830236475885440981622552601790736862216208823967918631193878701655192849777782850885021367543469343798106663291889569627117768360844799877359162812695405043462158006265965754264430399841021678679710940738678101951279311052490819172636310295859705685959358193969449655032745972477878951502320164512161742234546647611556845134743953985253191644356017601889933452246889907879428464003532990670334376993840651447465362907396502916513554226261868194234560339377730589399305129993406040202241262388440742770154736610591706149609011223657134293763313948118528750462704688694931732332429493395547037171295764680061646741642958627862343678554468763993861398067373533071877575476492724488921190601111750267449197572968900529626878978388292541065554141282123750277630470230767687796782207983781487165690710330088615693596996998429102875996097445459267057022614682040806075723579802855878652219560459446646635365248991785734899603567849756347615667278319619041773492268880448953095958266596327420217215488145015846961532939485326196682392647463690371203304773369554327394211807226746618870614813104289797629384108278107426074055459018522140200161185113904436370632771423329975598494966542810530040073755135867656826615994013948989830839291510096037403587958873072228604563158211992189594180932054042592673764394925611375995026176232928715694789793793726891725959277747904339691934094589508889656423444418635971087064203959098964554744515069795579121939275520560165635755085994129137210108149403923079921255900253988144602095504292799196674769783195341988269721690874117241806199932367504261906339560990633033264800177172793474887236310730615797980150073588519152922985744745326388841520115701795596956097687969380684943155471364027261617728599911770548663390652688660096162460249755411978568094372202258004488953447955859039552508225128643438434430543158286796150053391091627276364022185828395239781431303290787659080841950106199218123914968844750718342699170587573707563970766227470420148100216665777109062854702544069562984008725633597414903489884564112998676922694070709742569727077860007731164943490069511310595399743889289070776180305428315429886431082353916461640655651557058438700004877252942490810609541453329238982440106286023119738436041648571464538526178862971372294743568804425034068740256655303923880643836239334655507942256966230284484228631692746662810692184643323793903624853489765709251777356756741089364406071297797778161459422529537515774780121110996123507877866881780234180831140585835079140289355299742103655786146088577162206719083418217679075880591112577219402821952289639026735711966277913744907295061266266149632939341524247185542384353090712143432570159796010076208261406815497812507085721120242835663692332816837600116332807953163580272665868828035657023036199978360662026853408910648349296849848072952546797060917514575168655104273518220532596064782406763088988355989917309042316564182648039543992710936301248189686752836108009007588689990863548829393763967449057738697601107769613618263482150413884153004085961142766256262585543585334252220077348488867216532514429467091630796200431361097649087377849275941142196364494626837568354745876143163125962011122513381491516184437382462391315038218785374166903000656940451016037633593398662721627542926106810359172942845766681982047728293174034322959190989096618092605685019341411111613943580381953202751560914934126675425485202353144248137727100499029274962445324052552589330818450331707756782500003314576437133799943176162784705122060417426817588992450144682877889299651456349091680717714012693298802277525547862002659546084886742521466732017544564082163944095467274256170340042111846584755967275819733695123408011762509936840280017464315174245744640302604092010090067932414202876799517981324023688483192548078610236444044308419360631880064325366183314608240139439771427228778614574358576421693730130073689700118418016150461349348835752034365230969849672097541755431699659949732646006912528826255818438778006434934108885378415307208578772103547811028756231487175235796954043034335825279075084721402720053776404162537787417354673255310422370103779504730879824667670956671233474589766689838698675452893856791177156068154250460950052108832649514636311604068615687551403281093222464142750239094420489199956044829827233634501200149243448736828221309174625055913718018437759593822336070295068380108740618478781885756502826011179913392667791602891211027565215465063235731994231706422446722719436505352333218654173413893983786061983349842324370392376586695263158757641093045887991659255852264915773891427157017449026648864911414635235771189867705884928443921993009149924956689726471809402403688142003756976723720539129264356597095905451647249337893494019947176180518709033873556230484918254058647768482382305400502532157572028638453523802573161929153763653977892790880280522913375122794161637877065643695622240425732811837658863584221393072847527129716788819134883026044735420398986782091982837958765498637642404687488628069269247017525723438616860251951215226082945499107737971898485359476514898263381651038006041783437231689837300761347905873829126078284663362682645004968466722822028812143466039092527201904150802456385743522946993788063291361932427969409456599010437822107341185659721817048681970923150388221963111597798388922360532688011252773712489666169772324496854285594126073713582677360010019747562191970706089664996761383617467226503462332130266831068052213272589970500678642307269794290196845211993746335209667727086396145633755567144624744380653105163746163638543899781440668931122488471319527246490173038023003306000928895308498941405264059071855033681315563883487366997947017584719138463035882620382034052398131255370470769236275718054124544644307523132538014103295391456916861101567402665138536615554117407588107030027402052688364141316820893534331068254082600988538458229791151826885470237939057291760169208360203654051206227199118700328563569232649063670089566111018800681827334168998633047506536631000693968359901641972340597749516885595119483988061539728782727816656639615447937116467650074774267906273134875205494919548638679007166118702354956102913973625299504362919884577610324476677175742636419273092153302120933377103609442488321051957324419323755919208843222576850192676376581698822894150994639716512007315551238366733128986340372447781530085183103279865637064427781269211431987652741263812837688381187380168249506631360352274726393513995808664189860206364546837698665024423665593847640754622564499498190605492536455264501575127181791854766122030670559481580706240498419121734451202797818116801911846571259997020895131739888667124694671738889514226484161884661325583886946592438859497274445477865454529765116544626988816167963780264751416140862332820415118343569424560076314986495479308512073930875145965073515594368041369749494911001842819236541358946024184495783491064930679810494873917347868344884875553931563551291818944323607265979458714970559526499409848933208418605532277232706223493212136790026222008458480228642348530258179817793320602231617293135534773865728451888321678601214371892692017191197640584081179521676483422726842393945405323334509063434910413374320941456031711641795980879251386388819241725124594947137894538404705909566945110897180402291211564927935615749283050153090876025499499904520723795112533217472889074782479317016123216952487993411751763618971855916936246491228597149383620659508188625826217434024514119064114058209743507051319950947884052037923769932679048313382130137484529962558071230677931540580974778065095707448798800668721238967813165847664638956110356370211623564358509682717762978355305936514680625567514893115877341452202014832633351534827238198395596116657876357601231437263158471347542949592375755837659390495835683964482317620202658322806343214275793525603050085359945946383150272802898906675917292810579405553888877731297457484874659468387119627972964879021126202469188212493967774203244239944000536745631329099194894980563694623662011996292734032186446813075940320683221629238463800875698834067926504555958202031909877803766194890559705587470135329840272980960956133161382577497670153093253024367729958397194160237014922398348116922332199898975173080972842762383212647885784078730945532896552479401677955467765893970072409349261835048601864629703698640689898802373555059978653044533516145390010933965612687141342933946303697640934070232956927209950360390155926245392166035149167021816341603556343464501331360834775163948346417707112829156365496785776208254466666182056911015427412063977602667996457928507556690858601055341924503739113985387110844726771417961747423832650245327999239640528219014338665851454836226724335450886241246146496445978117727797787567193847637076394885331916111470160215019482749786727795994162353107243501944180774286137254994713169246883168221154549581250962685138456288434378891363561663736581856015117353160104216581847073688676836688742369694497915614219507502284510725424881304592140710466544798069891353085246126524149498027790094402581830803175522877263473120424152106846317933056686435794126588108367364944797236797890801505424262247241176892832409485791562250888649620287978753538928787192672671400784460942111424791727297272422524356876786219508520746716334546076523709627855929769402558326468712005856333366356286432745623643800469691893454828741348619086374679043114734948612122789875034776630006276472247506498403573998548870088321510514767483368548316513945065588322370022343588270393090927997105872815995786673565829973986987314472071134645546675358338567297910824233484952694671843030930420644237964037937542441952938457728778127824771148833465301121913503992139544481571948785790764980326712037074742848110847730888308694118002634557532962589673523784074091546639778598037272495149597550672916908507291329291043831483123794789920893144966942353400998407095001444178837077204250360713012978403133310822046400916533008818830784142904637614294301204315003354775128852533498392909838948258706549991816772799557338685154441015992339476590785568485034231992361060872652036171197609670348424263551845058131022759877959312942560622256446693456221765410856595590379054574152909899955228911476896136340384490474067714119579905209216215585575297325781966250301705019735928209040426673238291761966533562747931770261674151742831461891300836401464232558572244591515416875911113149820899661461643484572663235900586358606737713810949956589962012454126910549600183149575686356764459111555329673046911731542466211023767544519507877091681066100444830784273082189001319211737574430144588786102128801349645534822588013957133190880030400932586092543497232256018106917459701536835080045520513056861307561838678595665037931532396784684183553733456416112946717618722389107379342899795290156322659277064857639000299889845883919254125988363637767432523385949276016382573306336228631343599823421130830936521948126498959824167869256607483722923723082295398269332441900494972123031371034557986280339172941771201971293548432483726300580262041407248306487819917907363265386746842309776269718937012005712782966184924337124807008000471661992302643153683025867729581168006649506267435415584961193879208427473801863917259514469594386229574629115549151461272358560640436296409082086720281879494004721754023805326045719896037632401636285899811795706512007026141561797899339412075576506620836376855041759350850177073495203342702252660794390050955467794849965666086043859386026875744523309790482682615061105786152227107633712727756615474608544684969698160683916835249696214354142793785852637590505385615702880625991572379927581934848948070205326088161018369683759140393448844799051553703084820919718271154399159392854130354610629279609131580253282549143673414378741740322145803524446811495745840429613204377091983762617901870339132622296106502492751410497918467374443250660552415803160929521578634352619069161751520703875696874357602177180754408065702626436157038173726035348821123148800802686886652117276879399497444883814674404448894419881902518988722075483314341529366922556255627206902839918835958596432272939628394168983314039889520833215895964336590643098024363816038787001869279148503407289900057933046453428532939142638338581952729829876497390317879631848259238655070781819624567841657403789435850524412437392270286825640471963105182183207704311522207305043669370961168199396697599459049333218404728759560322240691485351521733367208580870026178017909634718396289291189348581295607291514780741712520573376613543223678839030455293080764580805731140372547337461794457679727926416532289129279051152729736609097158046806114441412647212909695993314689657347598224800455980909038393440607422110589956616512318472734724027524619242069570477483027898086117094450050356482198366642544104150820365597005106963483464563026561709284944830834075485821370130938712014951670875302379312761193479259679998415884919893847509616492656533272122325276031973277565080889256417128265989372278164806037558720797304220755417664814148364661151749179367635249068770870797312593104005526075181722258467452653549945257914928278494330038507435426564086676910062894465698945870409955026704382400154421924360171279637770642506546618619887288697449893934496528905541092908045606868964056412108775422167751305954193577056260475992572957040968858157884383722808652013199828879995666159348962694078619540385934634116495346502057287843568572743436878209211096994873360796796490547218410498299606196827842081163825665183852920693476104531616197109808218806213067873212997395559484624596773982910656887866423430807658437054492157034034896718955304149196850778247123947337327419481533750246640715018648366066633641459215047364125135484954400807417704884008686936607986152361014415134674567456149481692967777500233766288082916430447203293290722313129275789015338000345408902716848465423814426936893403375404349300993115951088080656589087567240780039374806700443805368898007237338826394429919242572817037394262105322613100896860024020927386985413306361648764140272586219862699126385254350739194128794721044439821882521396889361231826356507547329401274342405431876233500944579648508435718914229560831950599777301827481262982500845687298589690027250782190551187371476742509015360000336418146137784149000191396859915707488622588527581549861883969411847639523187350083015318568325076449270890540126019233218549025663096625195301494082217790194392757699479888291289793496767671851067202561527829142292339471377023576487362095189027216703607619120002970272589570150892833484828493441335188981108706896691391826316193599150748511026537436120447533252672537508554265865368260232022146229656104190390870216782776070435734883337439435624792611231686523638023613238293250132732443892691389974722553451288885392594836078436619286004327689893148453004480982578638355650045910495252587282718681775187140074146681742061636970100848092616701582237778202806474463374530058271856083900101083338877501807235807539883642568521114605110394153307077626471448562409138307044336452951364336965219733326663151388185807827288701822627514706637455741930331798060763104950736951201297617849557920250590759888157133955946075750693725601212180936467936029493970172279814316074901724327679546507801848255779388855438021793491935537729366373415592820443064329959545377725761824149252954602693613345758890390211035238113108151834318370938654955254234427266311038061983951290416977891313886914338815723622950351451069414585681525667329057258548471248081804338313395732637309885357960046680653234920073074002386433264388493149287732575011559935047840329725093307165213132906511771280119042433573443267282395616296096684562417895405707113450851203024588721027518060614339130822887148640593425329453441500405221000178366555922077217003034867797056912800379296012264223395301340078713636400563094896734759381418663121233561118550048518492531302251025714276517063310718919703987825165521243381516036861834689726734151895255063720013445842111368103267189607784052885916550641668235470933687607066544920099861785594295523997257327581582196414514494472848655642471060544850452525503205251830572015169143694008024642847406880618339273040582481960318761542965870900969952013153650290216021958664519797182340764672449452355816169534571778746453413186975877980028503323844912952977263368181731627894407682890650483144685615529462445937765603314281369466501529006506413427302026388166226463848528078941917520714831359690201913619196110456631413412096394373327284188568626210201992185502890130273265084695756447683444068151535203301538938935835117226323394242512062830622215998087494518139398949704288371647100135508065382728408025296291970922116542027497244828834442546210115124749078978305509579140091146498935208769979657465036454057762538224619951205806904934611234337845898548129324681214226700565369340965957796056880783904167244385669143183956595235671659480799467789233242467805673193018450032149436746916841081542105268202540283952135145946591307588847805478027578575363830081470199987394150364313188107521626580618731626780479442147617683304180767737425453685032478579061325925698943684067645049873633289199544073928057991605532628791454606192403571906254252380400464499654524571369931373207618991391203665824558254041576022765286542562627777484248501769333168396296394934269168332983412260633400933848286410806830414336424106508866133184191407888083709843857461788461332577370910888773486518790520169032397870733278451899497663417412317574419321017373241249891093855158384105904779537819497667745578091836573525509410422414766633733926423532161934997050862534771806781663311066579464696509324435522132132992329854591607229745552784801376054722222823173969316777628240344065293030852677091321850800677230201758121363329922543144702379256138426065279437455893343306249932000857188392395877262356163392545160257020331200571102044194487175140733409753639087083143047927590545768202959230625932756144005669741171758907079977863012754447470874655445297505160477186249496886460432567324560805254721738611097353623409876009736243009267170655358752523184066095280593490088161015983592419666557622782342849628310961829710644267239982012225548743711764942371749323082534119268884470706666177523690654930657147816928591098388920213857558618620828474321071667326264008103041293613689660787969063540785360778015652171878095848331138938182084747251074236416179162776778947391598343928457274661567424338122190233972962605738186332550770029170031859801574626114868263085206103425305425056794243038426059850808825729294199831732403219688263547520462594632551679497363552009885975678406980570116108513428369010871425613717307001459516649143523949007737845027319295537699056183036917415381434212777826156520966601631374188061907981200576074134804635031470372799307449321859987847426418083868475875507095827069789461699788637903919265133626168812926667511686494329630744280531853465043526089722907841562271843920828200780859101706276585514620253812903161664357354091445349690938726924553248051463904207290160489355069488456554055208636503248487264454489815070109306065350936017637175655676190220284792957378655806957516538708165137086432762940079327946174733958757986452738133164861036617255767524293791536116768912686185269308309433953410233055454562503322454340192117391952642128655104242406518551674190278040362702001846992054961386719585642236923867819646118925310642151910844200552183021342482995120358119020382526797434616265733185025762291899348201047550734638726812593724229657157072814011417706448600828208557078029968339452224863806814305850720077512694157179231830031524916124116828895880581888878295747741743690757501038891606671275919097377465570995833144296248736483952640906237118531998031846169021996988995368816554353111897049741275910060217765727371613096706947117515015141778094752834077942062172696682002013345332302021812813995827907749007156036630923441984644891557924948089878600097241813239733349596693530360732962018018768762078132316455423612098835544626600491102291062557125515892821221075102598689782735400083525437883027902839783818709817491639616604452578506007694692239727528513363769888069643874390017468797401519586391703215156444218270930868570327277754312095858048580903796524779669944957543240155300053857736254164096162105336012942941979925175407764066886936951308044436640401626605517496311559387755872773953540802370098058185101607903289355642974128565643245170122068570121829315333490255334989826404913342297419462948949336318937026488693264692939770917655503100780738829667775691200098049675165336086930479003476100101836975699684500994221689511509779008909165155219993180600155548477787266408608079207791335532444459280403490201895456115910156024799490035440081411651111519974111617861438383769247610462778657250825310470157094259319876839450253849498655154266026982147971859113432502387952768080455684024393749895783188897737869147324611409181767333321387659869120475016347360042664742462432421236827018413322421221183580344907596196736974150177858909561114904546189939879869732076692778752201408006169791185423220300833580482194365253627584118945225429017517187916649270091217955424956230860020995174697411677599497379293512377967544274393979247847072453921486153812890123752309769347961576276376292333278591566961398535617525041006029736485730852290909855465452762569498681375804580142974650808733610345026199542593181054143339626299363940929060062070549868968122535757362927961186780071507948246475347839527074562368375292425185565621617256887459197756108062886519695816526611719507159256545318829439541901135192817220875218368258099458759546072867523912953703293181243735295851648866495347654682422346711518003705315335117054123104474981286835883989573350643554734335315506897411489496011545870377423134616908187645926083628407136467067848178291909796386506437154809652485608812731512784522305081755331439800152325980206929523973106735940676133071106334984142299589942646038847133414172713901882516759904063441792577273485076326023957342943653498783718213775014816006363809944911036789200795726928373502146600729450885606389232542957760608355838806667828675118806776412131401279014340080554290538750681899277361027607350610189588055376640957834011839295055529835278176803392270802771238291093397250239914788881501422293179696374814045620490374124723383892749661010495838643750442981894271757505735965462044508590339521428481473715968267010333870048088378783449118790004944773680386607544683171235776008815389905929808577195598131648978219972486232192771766896067697624505910719983281307315831811344165106396294650769341303712918338253567450424224202749324787868537556121867018232691184984854579509082853017871943613704421539168786907428880069223112388696361748385562059959475380185846475875344225350363382410638201676225516875390243047770721429160575484797054067329716706961846178761961356933779528918566185080226281825446141400016535452864964473503081249465750065099660195390332958154284144791934283118355553581004398521793160623429948493633431938457861246054614912989319182971146263067382726588880654989230817507053712151144542601766559070533904657680927275341206547883260150365886017076961350913566928339102366046039290922335500669166766009050837624391008086176108455047948019814453012376432944784313398729756932306985555799985171527546002154127391726523811970776718602628729294427404592001429576041579293892915259924037626201496310755791937285213389362918628783332244221460644815415558846413904247161144806001416391419015361470158998634926463497173101551883555386529826872000613672318244249646763713908343690475629321409858370900846064305165226294669912522533925733907803129079418541560447260320743394095032671937752976161701596476176944752336932083079392017208789092131839315080172429895303547698500346681349897351767590610197743130635220839972982729049285538267203859417798287785294401524892942811860856709303461888733794953862426110980882226338499898863301761878876557563029740571208202809258407557723168642999911548900186385689805544309144800685608538485616669857380709538857732499981692093231669828161895393176743827699728489363496524968554073722338480226993579519074553935956140366880510590141776471633407887634941585450738896103841861437615236157036291421068647122546232481401273560505621143728018564380653274640223356605249369430677738435544723637056674661973659124276158009650333937415110274594795092090521674980596080940848303950623816243740504043712707813633033398037072809160364270375613517192873050057817924521471366453890708772567345974252055790991277531860051546769209243706080897378974761558370306400816031036279570148425590550614408958055483826255082718268685679886305029410706804691446703636397190933018136853876835301742856963184754798023009291418667814228523833244596225016355335977793944975307551002869887064451074002877362292643837440551945725550100271896417661908723884915274895553646621327405428381045386799114738368313695625053250708438825634281092939635269392394906340400169548774780785414979525514984228100348550365546985415012543138776995036976656289421939861259311550295916824247632650280624027667745290066127402806672598172757859926544161090012249541504463539040960385158354382495272551782210237967899079182332040270132739522912956793330121950734654848920249609341960748068945052803495147071099714206247629185802917338801892276210534478571910106195069472949233782622120606323699133599085411915919678836751959224600218621354622653270070544472001825890004406794797542946625997136215407981789614006026499412778311751532225919098175278547355880683034247269031182376989866521513449054424932714775471410070316469046840484409724053860670234805358656665355177899557713688302048693944575021073440733140543247832839663903208727856296485316959769782507236154392662361704027559189578232319886936764810698055524460109418734998064669443288329663658090063681128840140399957694641037325658950743259463545268911490349745514703642513327212801503044751670066717043663490042690678217550992707598524218536439533531328198134982712875984046942752914742293100796148941085358229263501108805435368146827673639618761137800933331053592003421787738893762922004342000268273183141058892885751257949893179261227471013655862240047314561249914799926542133639150287831347470281215672553118047083680613433183197366080267998493319751028156709122186705740782914540079843255781821684635694433645508205810209067479027264507125105612559866567385611101593442924731697045468504479102327297226261537739293435167651611423243419990214787774839065397307802391351008724021903997831750212297933087090096382620860746989086681279977639522363704262636743280840227275145707873762539238454807992562949658508628127847700760545621595147908936130803637620974874029688245117885737284465025183334841429586753506810789028627139449916073481777762680782088311607970750947890286182256000526074731200785304140673695113965104209201131542896474135841012314928860005080290700196261085438610662692770014121230067171177175763541619680328662604505592496512197406853593902250969741619128785731123083039998792523841164161667105851081884310524821490761116163612944060784056795290897564212696638347465210898684855774019985445311147899967287326192045732654210856033942248412483312204341387596363808858432770259269530650466798409708959450166283868628840091244375483896159916150748746806263732596045247167179929150932482946973267476965185687568003538333040177773571358269242772555600549120834307012553629184804736868010055177466782408578939661931250223049676134210919336767867670215814767041814687277528108428005429415744252171883190802467449412355678463909233631622861216049513423932198484788561713107481693659591372845143910737721625072664678527531520828858192565466794662930175760823528619175294840240445633745657152746341837857170278815033995911029158990736612612397513846491187512636001680337117312308699649454485180096939741886216223467502702075110294018132183705261830220532866514876317800979317038872544546641514438514199398573148124082694568102547760669865749598489390137132497074406439254734289773513533055584690629699473452034912947815514312245837723556318843322302533703976772609716922748905908028592272920680677111217792610881368531607617110343849381291184241641878587982907396373962935410572552711280304020210706650700109036191993818080239099903819524474855918199439798666737187745686369586550657940608696362010196727529635649539620741516574867539514654998538996080425767604136408327388938529385864272339346486955779662626175880363317926966525295477183543808547107300548914134953572220504094883976826369020265439798693783769200033212135109385221064353929790945783661838674549240356660159536914357450516500495122888511200410105803342973039675668230817381697758983079152066065249468568136493672101143539539465099176232036088117312030057578548713708437735161879692035163164898721119954804221602841811904613190645120982546992893217590875900579287281413966889803055625796705779121382676809253003776241242731025479077211361095081949207773398711633019742832026592353304087558446525239232909889611164814343587387994171953481109338043361680896695892309913745709489629403865519857050324052623568090966430804392667050198935603391122988154422975237784968013050868374736255752625573672131307590056173952379256623321034686036751044821582022159488391393804571156680112907035629005825404963515626649657619442373493247700106300794440796623002242809387650967377061178700357810202624096238022721422799194699739405852220448142614242529832437156401501950644028695902695070877429110066194348796530953775933127199160292982784874614653397050618053939927169681266118597799021245089411073904310652423887764349829858707040592874875997587716338945466425346113507521903807017746311829814814043790968109655609553199365738633729305920335296079433188662382402535898209083650698037441355225274477012254135408030295060289005736275247766790550971610131444816458048423436451797386487705119250510544994329579257432296348447236884823815153188203152901348336894376814014902121795123990094591088465589117783809794818456432830451931689725999794626397832067566120646183391733630318611267564196788294357959387935270189890865353903261371989529736429057290880046509824675266702679082612509490097164067032655705261157872642383349951210062152470844193055013412313743639897229914671218357578213095506964440194096051853128955357325814024092354591633772147099939096269902021744990223532447525526945819239300066877312769347589786205731312992676538417323172235630238040740724811147699198776117046142479405900478560498617269580467538499390839247950032087668039631085874624270583881991217270734551606800353109198498471922058959018164191866684940742270152746437555971652349574075165365447321766638627481257445767573521047231108737346355494816464906381570811980727144189951822800403310622797804530919870350329530235404862970851352467085545267951070528084895753966280105273919078595121230863704050030626406080575473793460854831380266025090862809168171071146335536086984783827787045892496724832671728307532335423781644922305687377049464182027001337153113859971721843010878404481356442777143942226606863691092268753391018222899157321194018510219464724242052890596226781708823664153964691279491556197931897055680129117583325257847347508126428102894518992527635317583143809254130881907888538620486287241183232839001911230431002703449792587383783104467631244814345047964976203582107011986502749686362956005556159280295351915602231975753931442882175522409466094287829423568127000959222626989949176156398935207946733423392338696867928150639029960569835581642410876345841737510453888057052030411523607056662848444479672275389333418890313988105003370499406302984092301757973905949830323940133476157075835885402471040214835572022103488955196134523470507234947565182044877260978900961755664884344668636600215683381133532628826594595891206706539998917038861735056653735668965542307799693614839507291248359476594626043893112721633489583064466765033722780661972335696114870299472101684140745134708440670743099384363305965127769082947615197615167391035658240288455380830805749655070377286581445191836083689183054739272043749525990115759896391371139216037200612916645156462131881404850195686928305217118040052742188255876389095330973164213001319981692305642613565859132930936371962371843840280083483369382152321376659143276127814404887790605682215689365404179768418311423502309224975546555456105425607051270115789346759129413497341603848557113288857633298739908774539495249612021707271829978479117660683576897213326287307238778262166634264531559081099475298918135394186686445202449428074204871954333109263897062705937519095208265214146463276278046726860630041343908888903563094209849857460080745600281461081515938021928148530030578637566355885895441699097448456622756999863253100606920854348058164533815981399007068778015265462539053837400475302064563184365320286205521918639689718243516738796327802167069178076180733656750946449865298567436018088899201998428926903599496386172427092981289755497255778890764173002415985645232625113230443469324359995226356546982153360522973917498850863692077152779928551777991173911668439515972390458369102011173725705351808659123730283017228071324591693447624228316086638810605457607362563512221432253995258694283167190659653854631642230129187787495812393818551794843894241960628214020414754303678122237448651073176707108034895974251672019324563801496231977309484820256428185050552862153091233834273260261743354223305036054899328807157256866199126126157312072519160270037423568936429910278817770601172791931157534648350223584225102919986846503112887938711694453595683070266908992883692095804706754362567535947341841992389731295297040327040938666014438957844776128105592289640118400398729463931897206725135157487866054135340799829496756798185384677727234885791043982306881167912489832017686830228004156266373292014890267899230732220029811314471937534824259655640932241166172124234825498727147459864989041024435531303927072138910593600293117740000296324283375702692995324659625820991991688984294756948233970169644781826178995059402119046096683588286086960293437273947171068754416496941226424192809521788584745846731661015622363181375935578512036455268627789070583477199033558261586963518133420298160590255807299022992497888091949820673142724461447410073225168807752722359783923886826675166276663558266735963312730295057555135799744140956991993838941148002058858552888373647973838961059853563174549959576820958104558819163695965542551562965894356573156048660703313575679242259848397412416176042429239108557676000099111915402946164266308156888819493047480406551842536753651273702622553540791873624653969425613289299439616847689269176763631416506795408276361048481676471668188681314528383166498755039753736624996125204052540408499863531445582075398813561679996210212167833748306619336636344999757132054801043744333358317631961231736807263758229587004939216736038152364813381755721381082072126049756690055832019628024702210656557643789711499157636003738743508245213235670002225215098507357671020425501868071033530796585997003979548437746880602126664763547979288196351490915906017737232948726071659287641373926229673980052374611845930890885690690333607971539540577424482100408102389980355259983055002393402127755852122191751648950077777838870990518663757061870138586802054151242177582350076263691224390909078920776944133450487012867692624465090930062696043547181933512534310074025259991759499326117620490360296167519128245087841148538374792104922737170257738926353121160863798197550144590970486512828687535044234597739820814658638910020745937396791369959791867953050129453193548900437806774461622036716612483819092152722452883256407892128556692423400790016780065324377525257330194811475175482729652308663965753280960902163210164215600579766760341703968127867288615524113917063982119329695804232998293187461149060373813586749425423129969937656374195492259450395838911484842850725507002974674071169552549284327466591808759327742114413543678423115009900272637253873842278980889337959777131385560548374111959169697119933856302326566838831967027366314698490502413473903003008200658826770787222204802348169101127986476819587594342469951644231993558974644964688227547489783926820038571677183960629051388502931854467016278405958699898625070803570900502882878578563282374733181646043952176360320492296209655529188368603385165629025892753645508158826348179624626170546136073818443388011073098675822258511693009878967578747017974658799730128319155346434686107069046527823536206111319967082588709811041054484781795997082943685834420529079521503804044358862772976857735931536981437723701634222650174141911685485938137533783983967034223157634592952647526804501910110324847365126512104478848095315788641345033621517015647961173626867471426022597737625805829986275751165773679744859035425670832350043767517092960903841832612296318074417654568413911573732132502573289555767448091577175067129347200966407294937184050693428513834362855388740924988025426232483569105715231921660848028179785920017230422510672326390395420775397915693858713242718306913556901985184998722039065774917736497989547228153197530730596762165377621839876321657290716668999821366915687805008861828477091760436487022012290221431808996558813130568439156520066335036067613765591097385603535528607583728583298636513235582655494214988260473969414542908815869109536323575802745978829441905961409613474808717024116915424041936906999657933399202382013646291870629236756521011219506471716977730237492450908650890269462725060504635619956168946285387723058039106557066697364420542632762564696378417690046311623708665135183865996613226523025850027560951462133731159191624266810493385584562576182237958344874193027386972443499933083585012027174760797231769269420096104985572635414767215543030427709781849492389596435020653451833025643275099756721478017351269213479471268257976162249687605078672735731971499817832504746485776232530010951572820233914958733414655907583203408795267313884836016073581546646195085201333173250769740987877818235130652742705433416083733148336015459986223936433423495676981316160238104977143727551463821428573209917850087389963962217737936683264585251195285289390418857565763607860864106717342561620507429307925541531986026378052937668008889279626170786318915003621740584243058580778981328599942266698994977322594872912457350621422963538832972329908124753861796340551387959539867747595466664254576821130080391219028566417288963521390052788732361730075093212661997304543318089618853051319242307000968588776601209125250705199705294965342538825646346164369876771949610965512086850588731013068625082497954138051093045365285664591822423632397098244233328759196888642908526631488168032357504574444130626255184696027939495515308257103292906789038755862996565004111553118880237611733738787363770125472898438523032960016794304974286566830230825665119342164498454017007655332264950093066791322868420247766513699826518001080010279477003808799408302457021703207242192040341717256386805568696228450154935508971614447284915778839746390717366484814130092067088651240308200216629500919709396011297450663042957400213397814573086622133177586320851701037083012544504194822611049422371249761600047585267306384156006739008708161814966745238499573148948358136343804625994856027227228880426971999505136334670519389256130512263327252102849824693384679139276678648176699304926858388744525551884597776451969644993854371519592111226858075374731368752163498092815040339446499046309849197198324046709491578831566163416708221083747770126457435115722538952931344182631850349083585812950800294159839906264698130355665501750106530663023864208261161210848342238775664353702140347232200903082710615278429895097305164531299140200789153517069989451810165526469183270657849214524888003289544709546959911947727870978629593164682184972966686241000776313367025851268033696461371399020679130726778610696234583382269018267589422335791678579463908171976033387207962761649102294925614211022391436423016121041292046886372683670331049508816736877165658057626986188006907058218798882114771877386004642537636868362366330194484577508971665262037746689377482312616421922600551088710911110192813004041017603505096674640995005834913674012951462632927226621980494027044059777258648753407655868660142108765200507171404813768386893210332325534909297012903622500125689960704114442413393093348983960737572442447316312191062322042490136164776465457279657882969924930742314301873737563737704337558294142115807198155203770918316670660086220148080797156674354914226241440096855624515324149891412605953062703521632050032085991448403881556093706203631445026921690121920817005112247423594039714170708124970899057228351293786131507695544319675490649924403628875659789090531861826659401933987866774835092016288020405731797232563677266462564159716780409901829789816971440130872342625797425897658840320230433487258595775989246187811691986271415113244643536035723581688305764776832337655788096862082550605016178811385789573472528918604657574194145260515826170683057142895068834820811951050541799269559080097662776433427732246632219812587916418941381030241385287809182620822971807201825754666220202882049161156049577317623301384501622898912309935467306680770098788635486565327608954273546736973886161823514426206854161990067906166224347223180604728668613316371991363837265821904745227952337990457509475068128337217363636833566775782114335181549061152548596898668417118229759333730891094220867404092092905942046736790461677440844756769411174322014214135555409441315827378695045372079992557027762055261203681912457245533746275126443685168302751040069424104030499014040577883783355520844821366744999507625306660091577090032160421598096035422926840466748161279212010157036817129654923435171220823443431663434781541304627398695414153104335603813100579160510414245364137138947019552234430466014179808709651702284701882432665112990839035476798336416576813111052405540665109484772695459977823668411505402975660616574265691124401835229057266004377299092845991539586444343062979447794402969059018083184534932174030129585484609516477011902773854859401619750820209951665923681043305316798885850818566869555459872086992298758997692752912968347621467321457368251240872344486733936900854997903710330952216945368899052058676220455542118245338197139801599446996673370423900989809217517714470530233791844352683729541645858111359703345052045894275323465971068965248888568790421525909188308508116631088561328637527489943568048230390375278002189604889127381919428511973769528490859545770517554585562727105185292779356981243540812293102900123142489871698629649604580479034517840521128834389612021520587008096967898207502845072077987842384555200146991769942985762125130119575035106997171602918084283647201003673071497633110220347438944975985883333841894250940777933480338457991953851817490560765666828081518235810219378612273937383913652083342834741882054935874699195008077147472639018426498980210510635949337558334719046068862536597938096785361752826214390913493318123279803527108114957513137860277516105813680195267728217024629649453027465170330768434272216632010911610711291754162531301962417688649008336273625225538649164514922437499255092398359620477667265236387537053781548751388769986756509767395697083284349978746958140958124895470471468682398778704498234386087028164070332352275786459218547871559794855656226311091506708612284905254030332739406147684887278200032743125861917293550649863834988849932259095164533229994061928955575881622172684192656432782524704935349768989228503058157894135611513590436690512218528283423999315349894335040107514029673676225676880155418978853943087250004370444458559659532364192461792011377353911541765692167301653360707966210960460076466800209915125165423591166820235646335287765207608068786591661310797967759396511516815588614077380032693348526825352409352504709981116154689039095894756090791764066640856350345711336877158817067709149845486841119567933102376061639160934967825361612319302637927366747652583560604511264795802867577650556233148125956850416355243158876157459644406058369499304787463796358637831599205759139778613557701421342296495835174523548667812410002347528841453265501995537884140428433548358497712605055859430854014733144110663608641619313193841067694330867728966141462217911497533765041361799579361872596649796696468910608942536127988271402144435386638501736519704467377907652038633525164085655932186065202430541383370921203209095738082553850056274372431749529165360915540818914757540709584401031499055443169731712078772037358558490724155028525240063383153453077520478855351553359584520122775249283228534575809601233286069662412795923593591491435472374924332714725422246070189426823003584435051421388383303349685596430369085665201438398163842611481074190338525531853760453242097908768813347991174740979394695451595119944334074838903973426158707246021209587838899613103429516033644814921679742790494396200656790675603374507688937314683445984510805459125368783385339432648499359273140310378548756093351819847263297754751413815898732561294776090719484654130468287916354377164966393351161484076583592105475403363937187178280846096443918779526356530886690988910800405281653815416710919327096176790151683634142111832787430363689571437923747886348011501506231841227038414216982264574468072310957948432916174588597201663469685365205017312058716844307617738605044801575496831980781517578519295519542035534074463031439390334287628174259842399178780974237177634452318263722668293538177786705958705473523503477592428374954813914141332230204542684571272523947276909385117287710957729495081061515224397411346383239115631182759639555513609960126831923884423844953821169903413348278182179858225324991248085840978194044835911403324786628191810503340851577265948325912008697480488095971317206638001049993766601088957211132759324232854140789146765994235076245629542631818715718342869603545001487373400590048198366772102280180456336145624900252368461719464330073317421048284363964953805682471084262882249546795440840060918432809707908900931666038618437603835827242431503871901556930999919876121962281031082824136696636261758398826502845596568539576293531705114498602711964591383787217233975427223533803584472090695841215495839819742808645888476016402619908888006210023416412008502364211653722806497098863893080965521710271266132526102242540662371890454869451805565160143149511138339494959829433946054861542767920385854953422662012559661192754303781929298364079498546616567545810211869351031563357860444766113384002638485587685073062757447452308654210063077229482266850222480123148514538910239932058857486113705072473996537850586085923190696064486316244328152169899779014237803490724721480963260705797402184497724842385003403122190907236564537210896987309964552042354632414289980195381891198057710738216360370248448194408400134613844520200425415036131342109765825294685349968231981968277781934799993996921509810342111139589687717818208260798836763173525488120625749741377953003207952379516930149600349015016420774962282109595679315041164500743285773467964387153990214607456044283439701459685907760356180755643779479240911332624777432588342388672885370730864539235634093472807357833880985264647785497388875980280464715977728591948394006573709359433786430281583712465249573220565592103373166096105532374075063310477337874504886537524505772500707390099382513068483878762540307879443451517320261486495574482027777175316445705769133094156168483353393964995321281225188773326949833578863475843428761644826675123618621719393485770263697209897311575301047623389027980406033699093925892661896045129109334882625590829113475128697889645201616085219178888400638095968055785172640222605016292143141123228456349896453495911958364039289390363250549585380561334844890343115753595716388976193779160661847155897914718288872040948799013675634476025016247841160613759401377820045144593417180008708806370049934728813621694063590571887708442829776167011315854002451908774792845418757045557164814774843228639747302298463181431540124216737874873243293515707893338485002680226328101658435014554654843007918064426384166604713382437060326373460668623811546961163725180731237962003521689580444101251513018204141494700704337721375218487194166746551941538231228794598036630593388265574299026733139561235069125174126393816159202760610559223984603163350367944351849063788453553845938369664319645199848150850033347399408475743418997370584019556237574578497407580482802459703903204512029784724559037048811051238199800389954498015507679578908995874420495789829570817881720168586688643658201223202247256826271666616899056931457246794777358417488779901287455194671416958934938714284185783029918943846817214456506415498340717245642436157418891662854505932925826914991280618150103608313982000164595177765279207083547392030416909751166961824665482151861300984765417307232924356764591359906718378663308574992633359288102140971076656265067153528340091762513987557203289514227182217912613374856283168094903397959012460298841917344740518755645520044125535777681000051987133090435621734623509494291865535417148317472333058057695480926860639092576492294151365974347700784573347868625440803093529840208339160836584003656583250617275992450077930361821049628245020653430532054174155089665111321452844461952052176889219394596437497197090222455241615419722060441471511570052854697254624596672318458903367833094704839113477384747438787491758264321030388878599160075892349569909217993121694880853484774328627780292584075627322094233639666703923595437461541506301446082984321756839267079751865730792718706203263415847706025387210319534633055649841360184577959318735064365218438680016351581065570044287081307518525572920358919100683993901153786207022970080296126106326244260416055126866812684260689978393202318587611441241581006516975008561371021935496879350432719451378658635683481410934412058119392706694245726767215750606333526785322929193059029458848250782132255634999551727964140800551061799330892557960718348219540976590009535380128445279879220803640296095969392728850871967574308555675834263397164526719862725079325979072553843623710013167617676390791822142478186872262147537756157799876635013981106508483229116692318109796556976642971621282829717786500028003349631742443251628840304083628125897337726992643851844940228323641162225973103148377029646937332142959833757555097537877071449041034422171925795518028871924079635767896754283754578372365757891250156518643692524994713892358287481685193840316949436018947249316732887565299206258062568284474415733573166355548245571625553201541152234460720123649056291391811247015042528930877122784134865306659225953505086177508073175490592484184949626738294438880640703170141966555025566377383008379661196084677203917634260397880147920427026865444069385329110678489975174735271915840608627515185195309322861752745009781002812822678068790643473777356409446813747106848797473148443413548613416909625503859591713492839946551643216444221278109902260266770064592564401407225404550760039811981768321866367369626827881731880127851909426478095506267180827267948041002345984302542157840757390519966376990528493755914172572223717341223519622377918973321548941955001888082983467825545892276895251159719182578514442427937563039912679526274274163096123189436404501646911189662685670921581626765127056042358014661512345295873168488161913944002775183407379241461682873312002268120700127988222742435616389990183569010748379817325269595442842995978567243459868849282802621496860543240469219610345950683085853536234014904045305334309730734749565960769084103957259918183362453211595344980161130979147573864799759496937695863808257191587729751716834148963644149199617594001874062410320573922104431004702672701621758973186188177639791754422200287619712975813726400812549794176421165873132483618079922144601595876621362766569931217743854970171318315342303848016497065450537304671556379207091666248362920225523331835742053121670287691162223277380735316313335103279789276724646746027549809578413109513195152941205971412941673774434854108525675737606499750971290081431739628371908871726316548297100552398869324574143696667598247228088156928539983044737969596784526362178518016248043259816556406432356925310302763660258346315850704610753797649709065082549378294296913418940423909746586255468321157960380842571459630725633893425527201638547999416218667714445477548174753018501703494981558542714218198306016030494656775462944660812827818793615585258864047308708125234629087125392968762205649978500802725340484400522089074731739685157175404336061409067405826648120133790431493409258459776547606854942224513954510106244529893625195586316663072446458203634668189444041545585863301921997683474699650543935137962663681687548814401887206935108252629200682740751960153044191228510085434765995380926088983868700323414429129155174183143744202118910679534386947814834714643858093361872986994343893301708747219566166116131636222295408107982566580743515844531723245962099772426171680639878806091801601794417073632245328506056170315040176826087639329182774070910560590667624519165320867449239956169859164671012551434936701246248007167488506170593553455587325392629575588698565749315733863605703457420589347064572128783302302989572630087519843304935849442021174440146582744718057736202340161632447299277431404877934351814400832847228768115115209422271523155970588199373202653694154742742747525205485236045641665805892629588620556854160408803306024336158981792960129353647624662689013846731593520788086495216183798416708296024821413618756096743746191345438606179109987359468292090863144863500406787537699875169555670145365758462082992197309460541259769289597169833261559789240253092656117138242952097771089728598098617718335327840268330126645000995418928586717474115731380377661492152568560705037485649155795995893639409330373553691203560229451820241837487941819234019254544006785689918760064778221563568013981149973034087307113867988331074086705340510645458134145844413077401624838153816961856121333460171969019331751803749190142409902389010015492108064923298793577196151380344949620957276460883242088771888127517493759318515462546346358248715082980966873190412718858923951919334042454736867067967019548164522101917893009160106646488260300644774000095051424587790074233200239011146212426416866840333741761596408741970927958415699203350156821955534589117959174586706920242464509358953128412713836255258607127727813260212166431071633439777649989403177594300034826978508015478169000414808774929393832327199832011410499442763598985584825881892029632217590348369423587157342791352983957149622457826662245155558009683476341164491544547916303334643334219852129180279297001863817958817474776875505610127140049700059846193343924170223966317348705138794216514738234994385631171229104538209778228203697161439427908012246167185306461958311105461926624274826914688647258653171986007906753185717616722363016169181576174455113739399097405482442030202818648983494070849576811959361534936838265043167748711605073009723204721384869331624351000380419010568102583224588969093895082489556177021644750499082029667729668715864198359393108230550021832467039687174275904651193475827440156059617504421471117652461995679325266299744693148807704715591500181246598183002315989231183539966049539712818820453183985349711847995976783104093198095034817264769138942838794719126488827782449436897418254355883485444698158490754869279106185869668210068885297235435297886822103650052283560940352769727777431710360258053156223928658602159066966559649140450558089603231228668595185045233918579633386302057915210783480342327376786148450235290338740951669053805282380321948724097216587029524973408351500175833129793167421382243002155436222841470393777831284656293514481681412635057518348447520365773917161328228963074246454989329172505704827687030834544837027803813804529886929354728451837223512695396532128034088807631386708454814414907852731125885393210674797754118711994209214634779192708132253822458529104818488703657226265904091294939623637136660147957723011468044597266351314521163896237359230737903173379474085303714677717456905435273546653891488318506050996960832936351469506930708327141696599161043407750999351299871166302659633742310816494941492829923802748083649566808869473256235795505976348856987030988879089573946639696291803352263716024464994199632596778914082547526513932254575224838392556472127926000915359368008068803449003190070671897525764038762660680607660409910273484449576101896078356262794942321784606714168055193490077696103986191745256281386384955497374480020845815241813034652841248678523155959721870745689572960915962360701897374465140698538120120323087333404767439420613978475623827051264164450295125379681258391045207029392245167390794853385389740396690743786115254823621160076556205624176527040211650315898155948299143641300154675347612479114104553107562817610264087380648179880231370117129446798699534645228677942030754918181498315597236760031521764471606217864775444964415160701058833243450540372424159388744992979088877123483271081762229788080057278733243755417180277390271404326674088205514651824122976416412799708024305426672160387981672010990559843412615732643931309182288688039616802969358414894707524276851048182343361533029223057316695284214558893056092112493577348337182878321965299988117475095191587374084652638242633883298522269531571143642723254307796142020282405677222555587214409539342296032111581444776072412971493121780587414007694538939252619940911685544833775177272578417486644610094442091749880500247251056031499645424472828284282134496610964502005340126398789894472402048035733906863953467584211200947189187782866297774688113409410025270534508230840408636562492294422431333242908601706323584644013532080100047822623805828548296622855224719598916685055958060287780804371978627409828817400073279454733472104324603379699397534599298172964527382043809510606783865495419772436696205682173430438873257044525904040137959607899764907270208795335992004093638807329127072162643057996586601636320732820696460049412968226639343783339066523975192594114977379060652646609187815674759383045442337493800314849571946221489361273866230645973608261994929676965406644724607618266080981552192555365960932537623423171940146727971099156819343746921259930111171814811784988061514192434409994370651763553381510546973804107833685576133222319891824660893288937824811282084886965576101525809487060467920473174154317250229951281459008502569198459288431599410277305745726220483346905376548057938661695696064190096019421567773043493839010051225802031999032728115013560762101898690494129145095595185118003457620996162029897805933990691524877418942916146490877698392540582167261086951798414052765511639445183883638673133479257140236856821256376718121771818766859444255856878689990018566043058592125883709787539601135795124770397460406968284827356415125145512971159660622489660184997570676276970040755862208462596349877912509037549067475967476113091974837249733090620253622675207539409393618423294425886905585653464774338111355606859607307003700170777882778820160036097240983376256687175602011614757027738753434537329871421704216934275991230440926767922983714248864840337403958670036581964058787303406982219489189997930092236047169333589886398773371531182427493381340572494127115099085346645435872622292202902619640622612182984488759170978667884823785949891501136815130766731037626612364092239332945800827778877347361739323765285269428533252590608198821554665215489987411648462271989175196873261974322919448363637588293513446945895025143740157417760017678832190255980943607602327483457962147280704112619471001711897437535545080299316895753066659089086113082236658321490472152653474514762106256878308924775516808446827470879406061793627285806687350255620639593608161570297114494730653727824202988871419606648081272469479020918208220761436709767556042613776634416099742840427044262249382900931744479929223490133531536336438084509962716460127574952082325703199975399633169850852288797389088176283045960354287074452088916328234710445942736897452087006051347881942025087792309281658491773784718850915445970188156879499293498040359067378294926404501360407519534623768735722129254118598318418149344696661581242365438282338054868044234869018540993521954472989833993562848126644241184267182175995461882667718704559982290474856347721091743844903381550532563524790072681227253753383650193145072356337255759578340756496436166220868814318634716345661105824663101430942867694607024824477039134306287941671366968291928585679045739003129093584585624660366467705174471983078952984187663105184340000113297971293036010792627647484065388644554761067902575073494764382886477303989608521474007683005941498791863440340391020391398217735229260393381793239847030156691054202558878810777652943066264089267144243412705500744866240411814988861354746256536245207253041437067367883187581638955184990302133195215591976575627901205624222791592884381706700928934687990662185197329024516830227726185659224234173519481040461779342699348013700488843411740663541447926270273863464050157293870762155159749403670098961884640255890886448078436922177846838018306072924739960915767918007600619262681788185582729323294941075716669673252901619867982479002790834659951564107744116291840786591084002691912056593071019581775724454265386974966188427434776798789537273157028257482965265326143170939060964780380816314841169248868085352054607472753817671572542188785324092906594612355482632795835030836041992777016818395334677761792707775762868641823186385480015440201059523401809284354811809541158722758788061663187001703506642290739735261807229632788944775008341979693500257972338082004806286081392456389593902031676927611387418769222289397085410613898622148130137109663828163329962072443615233085472086571509972935607167993048948069455879688262453864263872657406257658633787280241698321245396283775701544382162390311545133100015089367389994881748509396256949302716515025482061763327979704247982068571988259692045372880002666876772344920848992863874335138910520293486352369778221084862661047207345772775120807506811054954900946345761320500649288515635910017434818563045299499421244975177107749175007901979992772000555097651561208017267469272910311603732294044894328399750673244855376773946177157787258611854591390040256762954949016999568639349499311978468483076755448526925496567496263546555705438717213985268608935376739637988571768586423209822344588619909251892245368315514239194918119961550368899189415929307871645034077531799587600640781084647697151244897163774140074985269792282710752690998644359403909191578390849314420062764640225120579811775473930314902101252195294287378998623592053334292229613512709463138315601891069867395060330661236671846669283096038736644222157699380601849089281146196946280666484590028168932496880461784344659286009215970983034074419290063439041692225483077739022631233646347141776237305494198612363440092186976003567262009687051748640125721367959399044101835728635558705782682681390017798212894436666007205738429187473204122507826055753475309517209392875286463685599470827247401500261799824391254574807311019060401441550350721976646317913659416113673488920850109876080490816826466165564817675395737208429102554811997258838566882105360177244907326671150494360615540669663175528836023314589430140705609117976955644857948386682806523717896695820377957062504395123894025721533691665046535590035293253482388093981642193859951460514374064983534890325005082048650072377133269049834495095037228422536120822647574131309352479232073025326105196295559970631339658069905370531832958580424059119759774349250969999377320590009843593076278452122863890985350879247090306896508478135402971603102931059179258135699326777595817697007240970477679272979778794185905904391015663337126214589870294081206210689006573990921151675244592318533524112043021219094537072779880629102756907351619050171330765634777120738274829157437060842259275607461291309219001909744012390421370604866043402850893367743376709584944492732744943435229616019631983905553728857179903121205748169585851185728902783033502514900240708618044267931002116958211869972381763105253195544233283462114646498294289060962807145755215905994602354604161939035996817705201564870927159648538447313391042839770221738875164950051469853578448688560288541876478132062961541777440344085203136507198886862041999848149738587752582588329413962074240839329402632346212803994641434234690296565684444537168853114663731105359106472597682450326989395820742318384966566867878854621218223156701636367892092393760277657700448795250959192634122005324719400878457415015157694569357533280384814865224334250249199484931462127644730727070598831368115088249613579640489865473563460487533667629688995990082764273681691253057314578244458810213997317218533705149259442907829408617605303124412087060276504893046704869067759220470395235494870460056839058502395548286917362839479194041426605064233316934472760714474937299464719133759059822325062137113214591385769019055626061042908983255915788577151220593063920738900180092525142542249449519397096617204333645893724367714348128494139643135657112675101761565595818343082310201467089455087145215965548775723097591003114603890039200583856160927159342355743671220584857296146478201632069405521011195501098389414156181460983082777531138174097785494993256489921571990155748359993135648495279510480192553397056701550196154316392218603388711016008745385640452613114578156670781656233161686802052155337981861420467102451890805238859049246116898419034383659640439718834516801650729028360377256398791990961417957058730053543120424394970758072125556749494083406884142794758167769958621433502888720005883211394466896814038501529931113473943213710810696296973238313198443416103401243853889092011815356212584445787554509007044566510164436788656571876178625351643168649054542431648804779102291843696955720918264444338327375026727116749619374177591680461735155192365100124560346675548910084641320451785768057529323827623473237941163234206182411748123315880925317624892553851325482216705555708126916867211131219304000001336849890274083980381602371487534529747612697943489346994489159102111226034022551401880146886319684022578690239687099148201902453893345297115141313409457363193169976274689630962852396355174738223160659186940284561698238867547334032388019502639721308024304519900615198180534450756357628101347176614831042623430781140770005045894560449938961804903644028422146106127397431781623909345732120735051265878742408653476976710252646281330339179963726444268468707549981151743111694008191166218860201342090458293550279047568709087872074646721321163620240107552655662398306697223253774651930459341977334779232194181164182631694871564667440305681301222774752682475892920489304902148495783478561256116043014650015941274572340399859095666342152664362636280921112808998285860962522574558263217630981510433101798434503815747201622665327402855710365897241425903806919197770403791258273368974960934069638071563372747284255378346747444705783019686702337138773964682882055390961893789686796164200865164814280280416979941075529808891646665964521675429923618360850933206992215104273898949076681412774526983988457101327249364623291421805364721820625286159328652350502336269999478204935046722810443350128121953289636587639615935142479812321945598226159317276161273494101740348561571282982586165463962062048076906826357679306322843044189015035186290303456758235206733088618335285198956401907662443063268407146343593023881276651514376525734838931626845522499546824179844354757954690627715209131584513085528215469406339200602417209474050435129100031973228165416908649858324667627438427419964417112558067956621306989757957147437754951953545761952925895103532215250549421337933686411491619607427644952021760482992912459118977548516722344427224218248577212782745719148391559704157200596206322987822917399132971491549169625799570960936914277139352528276382608414982105707027991933366552565178621134414954561126647032129513091857849980832925725253145534224820194418637682573876437450339941465604329403511852506276831884267190978785539031755290519848482025407168738388183635492157797610060520500602786237113828722909515414283623149477902938115945951664715120998988837996964841386166641935438328792422715092809790960080535396661736647068138076709570043921578831865100797292048630637939906624339918302436357797750371360679600201867556190590416617351686066812921850339710186975444826441055075172560552764208484272597940636784684755118889609216519457507853149786399237116230542747271685536649467498956109690918697981746735613416240260257123962759934676305455125442600010419366713383418226939915240749494674670129528832782005274514019895444735902693226556272120637767825952053832239834605867975756013117815617180637840940993986653502959152169496793527883438870862615332769067915776847044238808325679140632654502891937769047122897140841642330397736646702735072729495540174167232980674319272639295594783118916826302402001716937495598026455857848248055690394619644203333837302788543257381354896496046028387102779058423326548659557866148270565342115313056609306382037727062019245190647624717593456285821137218608216424541797018140543598121511700402239477389538745830237244251778148912727061017414044069803309990745363868533462172671295172057607837753962393533369958489259473457323281504129201839803415037177388610068792162503916676654898542121532981916644590525484736282366170820844680648769577440653865345479931651231664373898448707213992278012862915688927977459487546426325443520510128333021311472484763421312941047527855608604810602690039914223160661949883049853471922653495276016405125229585418630744728842555877604302193245091760781859239730268348216825372904627215950745592839404385847577144004842173840988067519018267475430347976074100932269392851351382303198324603191384132964173424947176556641705817683154211146392317140503897805071690470470433581096101947486854152091873130643911022402062707472931795293071858971571167221311195947840596150123398604854748147712293318725903161584909138977627510852445363021579929620809574578979147576039630169135603231229668095649117939348279120672831591109084362489615781291968341153712016102481549118167879741248286048077795359160946382252038795219701559396991354269935995571528094793487597575198572005379482973895992508578249070393486917023309654257520978916577064387437825916051207138971564907160763795532597789545683088285630416061284346630325873305091902149120029342227043724714153940877808404321137287853668650401501868430812672368826481948510296542797268385245067779922495227771587403502632060180597849102974134892670310716566190298008983900118080479184946650644788337099604046796434590164130378643462525447864825410623673157211211897881336243537987617755203498837064803638007909569870244800692433693434764974871275289630852262403969097856154342998594713253550839576701076615335869443379767126416533133408514514574689765283367417793229078107829795837663464091708445703979965624193114365244377083850196705098798132692941656101950006507481966228760585441974837412989891512704450461615033796797123634031658605405420528727868434933898632427048065000015207543003328431974111507719997727662202443713099914537864928854624142282653473602010571652282411843422454264266763993239711699839078686920669573429736499851857907552827806050049090061626393542619779404818511891873058812769155316465245749604701635500304690026699027501912075363462076250875672829543083485991500807556515269318761585905438764672670503742829790897972303470116161362967245248646555343226025812501210800993346100350015520144375418068041414263493750838890801473325294745697593324838553665007794243203918196075183331115468681491826106738278473247395246538011951262725860114581352754633467774457301223045949654236693846700252648304747013493019667356353255840471116253093428420396519211023853396682646795751566255253975529152286074530896605894664250343869002560898294725879349763126159705677182364337128158865130096554651014654274947675546851763321050339952654942470917350365395069196956642389723568645039022594291823903346128982677857559456452408293251057247189988207697187002780692033675681814060293319713901678094365198982124848470847699192378319332280067766816558260589315890837083457182680513863779962799190918922842669371423654653507542153875702842772546046300733177177809153834063544436129088272768867683905649142541615606683056173440688415538608443171535639189681284557002245050953821235806739202030895615987870414724360419817336315493194563542704455346079420053014439749360129817583217817202002808441188214128036455743406391277031850154485226271938029886224673981610869537153754337215749765784080369358596756745670978976753156392492145602252976235869181289315152111311437303589011405093375822448235814824328124226228705445673441144341087481962312671022466566393689840836335610812279092392982733013283499820691363482264245363227273154569785349125704987623081078994519016550422764245880430640680143406022259364698629838454166465479128950470124048169138220263041918019735094073824498555673181489336175097317246579245820235049549850860464031313889572284558675720661107854250834877963343401547585942416540878799595398456686109763256969162576381066668585593838106250622032572221907807921805073916258569599265829772204993303364387468933161917273537127388839871106710503102273319119838180695932304570172959623084019896549624949002896198354265978034199363968056521961552868777245234047669333490891340728302809164375949038722028545089377086736129535247697826662903561282482551248174521769137982307521532275461730019437666188340475880422962941157994159989639867519600481119080932095437060939563609126307633134195938398807784287705759250055957164741799964252790151175373067388947383148326869412776433539474489669918585293021329282712079590343560448637749003747211003327674103597321070828633000558572399869045616285507624632787431729818094295601455313395600198404017966075372205977271415147239470020155148753748192535872054704196114065028282881436012546189394216639446376210588236579300927666483630436326741262328077807532490492056264450312480652788911643549785647786070984056318007925264547385179151978540408060725104716065741054860658975440981448489649373253270218658456247987911296094720923014719808918615834232930465120933635148078535641610549271764592441127406694075017017390494830176967946168412835579781589757505930593466670492017540887441560281881928282388070860461978173605506705590533182339256030533145404531667010849912568121558720763666915551847730932649026048396678604385166039933665475926287181832947437275855414859712176834646933082343455673473050079473888177947995801223533174597140734061516670813251736273707022829555662282027885803730538999856808729210637382874461608527997121594443526742309859619735787054017049027952309382112856912778200541345216968530955191981405081617803376768563688575955863399286512869020240428565354643928563640035391862120408916838219164867583856479265162210720281316344385129178952773590714164376367653718802403457029718816992153865462641552168127688698431965133801528189284537053234671372515277897259421038921427083591540986752485759772251784107218984948172642885105423439219263297391127290853870020740361538890978899055987370055732892617258232110203145476856892394393069402241684053079244843649204189874017566677839673417006111866028232876928850055574891028071346071879764563705436094207666463305351315963669803364596635290676606883415721018294426917936067371152847765058206288436108160043004120064846196630905373983613669632659795922596915982574671613891978474275533844823171497768658296978586761016930591011797464165377475275825608477638386674064118046162059739681440838942271546071108834190506505327595324375838477264585883769664193853593576240743138362881064298462230812660955821719839004852195328194048859092035031659764356863408918417934279984339330977132297259976355429699108587607024259850991382050084049739782745354917048329305906647117956581469066956987949293819765344247819614987684575402109937858748259245028710686551911928302534632942239601566171219207585474926938373612350912502088291316905041520668246799619580006363705957578970852839997804698547802702941287657599486128779467865707107228801513391277400524549915550469050773179178350330995817375077342198934818047311755373175192872560137220906040754892101059149424608741508297962081887293571082067089760754800769512029604550197732808768545042163902156405373393984756702212412827987637881433995246618264199407751816522296085125809748763892538524898269883672248061271622658767093812332899068793620709983026100294939913745798380515381458516578594499371169606238136565309528971959203297736916239393501013883249701107739223332065422098169000370180334472450776600977611711670898693642184781014773517364367049706011814145022915051083681715925279607326330929930185031880605111312782305895856853377473124887620127599407859449360903152915430793794148421441284069184387193583958034828660525793285945553598900559672752363543683229771480269916450454167747167873523964231533627878278355811055451121207318970331966107280583240391241049530038899199433356683303291516281235968128341745318096529617251136077867801301318609385865705595411085758771049405464704612758678415361988300832459762621862262107585313409835768837115938231683638289350851162995742475377356841082837989620779846869211298397540866672882608718346147934634013147476681142000237467871989793414291063316244024413020464699745308693379312666899606796875637779576270986315125795448581036843478264201378151424641371882732992912406820216421390771329248112265054852251327643660512226426960544547050564135666813865248977325540531702877831426608728134117564205112418673235211012531101547118458667506332527371903250374438102224659998117263612675893085943653914227882740588330317622828277505352676778095907713593170826027387470832290295946024857775559617679426094892310478558002793962003240497901001437196035953330968414166834403915512705582213328386846989821388757123878684270269669694520020897678447034346516288244976926956646689296166228702014142771390586887703512935266096555279039506318648305212379460325474895852041972409840911377586626972184742429011886004200468582822726639605646748872231029270798209003677693348308558918282314906781473513232577735983916678644994368621318813040840153178903014560400742656753111157538402335656734569720560348899485401265326742441709871814511935093487472513340365329592958170990449616924085637103621909131242933934024005178223182599725932141692902413448182246656785404340015429413897389914463500261033285916265490984886612226343667796145981953557474780376874889549173531501044034772754387206356210434659017364378261321664801607120923777481682356669421668571651576852970524650891337749954835564571994827117707962370717214290508301982302903341586658537092377199012373016628630007415448177247010836058797119423930872353680708429969069707011711102207487358838874204101008638433178298101286679532905557785195000718055652739117628791844043400924430937912900044017229374926547666152763624011780853924830210516217385005239169941012773913033986710987271421841943916784763530605184738806057706233764483739316392918043593768865291765719898190302490883920816561801627529656662440674485194809287440519684091764070051465963106436778793516181885732527268043444920010067275546409888777878301683075115254222765563130195399980920818722408842532459060879640688427830518656251468502040888037554527141841001939221243380555058985118569474252493991155499571970582596070727739762747386834980591528632343426120319758060246644322698604837989324465386602243339314256850245016912476795197040947558177348552956881463542683894563716219867194819365410837640039129215158227212327547916362861068119180632253960772828596984359994551443456799807461194603097192165856528677511291823366093600193959107672338211255526401915533164536415848731647472473730361773797336682843701453661263887488093359338691958762212834307605288961290028556066384060321333968162843486669713696291697820400832517229932641800834422311215476051148083486650675273939615804882592767295456276306167527044689227804159783632942384003699770210124990373911037434757116664225156021455753842799779148817869032962247384228832705688054045468676186427897017536766295219998062248154920611159101614007466441277963983368038286989385172451909717042592323938455389015023069594995765152852082181731719934192033523584730244459115227516831851278243945767968347755052195486359719166172845141385878821883090792746621763215842258036025940242675764498346637997164555332370889898837761925904978160345198061345581393548133294350749067672150034289686697094265734930138722428850557005341906446773416052653971663389259537484598584753557175555674626457474433280190541602131291595730353255469637590827708801365582788853805333294966812296735008734195305379315029677927843715241578722400265241584190258618999393739972732852102892379207039093737597036795145540565279528894659172791830544350518378547720708847758729500250981764326896811240343389953849500767140145360680307180185686634473284574943894731210170703191079896868439559184265239488132378242032755200088105991912329631874493789744006926089074718254588032220588609914979562330937576859089201027356475044373733887391599989996448281343881598148209553422768879815717761035819488184013296644844143585147872953672220960843081680996293995710621706462392847947293611844743538149024215710765514784229150625711476667904529183227270872143053304787059820219747936297362170987772706527410017843774056502884968016993007096149491799569194602798854730393042430052970603669679103650310169699580547968748783200394255358341612533396368803731223575917763663876265464458271822663643874138536609848119008172419594167658937994591414448986627874685604739040140022415569526726166030019502654038613584817617010448819649599330039110896775450849016332036856819970938085421385581595121893828927562438145964829513685719863493868718837281768760815850111461783196921758193149513517205885307376334904488195189207725759764458573042610743657487047268877617138425285544925998870458793902696852623637134330902454102455129932718257971004621276680312576586541810335969930521424093712925653887578748876996244746216263043921110260398467200389427362718502595303488586382328523442656817889918255604494386683159149515731285654642496050159711252837250827899114703452240775060981824319126885827406102005315433548639384439844360111633495932611102790720344979637899621587577536844790335767332029815796607594524789260061939069339103977303580312926670238904727717895195743849391987307793747109934605807296103107703592434364802312124686330146843392050321375240531204229934052414830416786899384459213096179363095508254318613183918073280314988745577259532118713807377046751858303029147813768069856767373887233970951595607650765823294789886994029706268106921613478688643823881957516516745943869659248999560595209807186075967421711981045701143438024037320945434395583001655135779281129928679836779823002274957173002191193847044086378320909822402004540365369393801485726956502388146211003862491421004300469935428523549334785767429460494729538126520756650761104286466101975884582054525612969087631029438509851039185158399964354088838059406210593048515869094427692145265904311961169822286199153114599181532441215977401773243914484105110609295709636322916745301655729413720057540044438494343393254449857772783835132347526388153321255041775387475909288226480066530831722495049194917524077834600294226008426699793934628517428438176235767200741355659097743734236081484299800963752858076785558920767731850179679356211713775259400945764160624042436357799177578634653692945990859634588120880151142868742929560116258826952076950371543066011720121964247831077180257206525331444450604100956832649553766339651370880500170811620260265761165380312592340889562751800716722463612406431183563521132093783124551390499815287367976220136592724763099392718972087586270336017010956515746957858359174262058618417622150126005810702873443887483372713537496488630086109877627577958163704836629294424320741124257163268227376346300346363192982353219260171547257998191759985949036627181150456873156947574251188767374403396082683396544106042717180572158735545215101880482543243205083107916420098612662021100617792403427770105675194060852550941309857795984359863017954286477267950340615272806460591540851966919700174530938818455801732792692297739243912461736745013212972836715682179496713202567909123202465696926982457248398630580476532212500641489947043221018924850415108019958845882966536556067017992154017085736463889605765600261882600285320803013455670882378177250180525845428289662951444871346634501320557858769669573768924251861919170851526724166134738262259758068826216507545451792009525660676382033247025577429021399988682919229552174528241778272428910223769491921753138650423366390672595883411371809103199284624067596102658130849644882008664793438178697491977995464188835567680770797623591138648686820129113214281709116256481333400561039880882563880291181684833450781917652018029689799033217295313736466705015691172990191631218958240052636052136780485362163552668853998101009847666714071902136259209421471638452551455714908779382759113114690407833913175215554371504231864217130766685019956663141196476156620039412734359771778371346582664333003943426853503623753187592885022891674521217178593998965152857669972595001897186786392398230594769764859089863961714281687165979903736603272495271752695171038969935266934281549615311792849995995873930005089746950926742226512213796488979018208904921436716161661701734885234633382208212807908232551767402930888941269907801928624499758351912971857331417780481227937058591822101093206266212512776191836514158883242499470744016586074145218363598057712188068829311897386116820254047582471739272360061901946357813771822200191123754575315598270254984536582681364055611570434189458436669884567942430970514325249371501048136537694632204915514776055090565313812839707183902124639387964589461185401068491666007411633343899300442328470288093832861896431745305107089983619118920680867225602862222286403206257820018846615276621236932166946325635182281424307709381077478976245210463626532376239539597763605466917055283288996706982677681247635480283927689600148744326254781097082628593085729319496304980834139670444491110118315325247730091416092298864969623055741515425268649057792649821136989162673240972601450921988620614952222326136867927965820426779471764592062883755705523474313853266753946942079197600204543977194127395437081441811672215394120350030988101145430357583020473542335326662782305521840074014679603795785988359360015846060992563237089480398162447664696473360191213438658367736499773433599230374288942056396122743288701210387543482324458132507316895614196823023143890393938673024579430564838959856569507824989656685834044028633765338443740742467295377531845478955059203731978141072362492865604693485208571450539398740593660004334099618717108280925276543374542015315374997553981526003451904239403532148380674285676968575503034029789332304259269412064228341547746870024228623289912410629768255983794772256081397818078595776027227299327915714653780331727641097473693254040587230382113749349167746182385924050437721365339229806821342775342240090709425507712028479101454353852666245345482733311823318864328200590563391384904807239221169627495514914154000607325033817721717340937632252470621283170746160315735147094368912608120831051345067422459101605800997133430896178641477022048637787431941052587541739611120362730400403403624473609061121316143132123260943003599834899354412921985461216465002535104118845014087621926168648750210359722283545003668714643107809641901120780028983501629584497691277778287411463936649291297668614766268984765421079529637889735429869587313574219164991016257796865066555065352373531881230343287580227239195977284061094941750212217128247086468786994420738723837111776884483809863479313853246367717873197507243598750593084459018275364015515753912096080539416008002528681490226728588280576086227385128328036324234599691139459146204762522363462707675610731814961851150104105230472911614786155236340075685989990377531134977467421805725300105402662018526913014525814325244034769723325921377142816216319681947117761251298052645135477968092332743010132415606245600384872577300022109505905622227626579038806517571801839941879776833325694755867613376902788179111841537575895629978722261768315383580654164154890968334436807980688084133599117940680292441768757004195200471393899196699011889890264811200482457619581859661892059237203338477822103675808114248793482753928708983075560220730168831378000511094589081426142595939681564710509905102745606401641183375676206967623626203262010839415260519062225535071643124074466557427073690170912996636371899232094761353535378303074984574257206279411278106530436137842759522541459641957756639161042585953506093442740487025604489721089679760820751042533271300967436107067263270810084846310471418755717113462307022781754878937538971870221785729748292490503916664229305176620515140495088803854510344919703683772889486194006335119685424902060787590256107065839040057070319712104769481053023732977097414038959119773118084887901438920122148524527017339523675180117980483244062086767933287195861273191482735173369111354828697607332021994966522135189639057883464185750487058060383404917264611633812924845175886388182257084121807479474691844877510778703683144275996981541605895588217012686515791477931277571712280066448246360826597662302486391922612503586104189871057545540170917560951315835457367762638925523578386180434985643424386043939339922933105240454233971926668715303390385161945076672817740566835012862749588882199745232087240723514071799136169685639177815838824331169972417751955588789467734404967466364630722454812630903157681312591113198182302526785234988312250141965213390805278154324683026090759273638165718508787385812368890838787979898733072294718602567734272383282033421287669204630039094112921445161504744825961396495093589573086824117895315232466807809967911325182891612740952562243272683990255703017308804184939922729831714215561470351609977353294574841457036710224228444259453262737372394477782254650023376641511608798624824362006922294363177201068468584085320344947112730340424202004809800072857722385302306983031340722144588683693326292494387679033511109341507558403856928788477931673033380447902519950928767238968688673079869524353131989060407433077048674817051468564453690567500293464789087017841835047095466024151261353285951858466839328302948963549443101513830915409778640293935069007154736840227223223062834569453383053022839883109446026099723541250347550298074786560432077852022753980350469670983518076969862820159332620938459026754826774839900282436377079027687441996718574823468325685915134039245558260474499488712439242791367554162302827850068474543123979350840692016336428739024114065051428998800261811356870865804687004371270929077185499513865474208458851015411775743237799014698042047372495172218719044975666808142032895694066351169683298575360656801332591397284390108839797055080364020019736826006110408196686251809576382505483448011516871299773302371911958306742835703111990928770832933562401553123804605434800996563298080210533706936598924809540550198556144925087708497979656516010158525228386749152279834417344169955307410803947267447790725266054548636011906952530522924851149377152433204442510331950504165475715903577418669798533935066671301584788317691562946986570537399051723587661944363024278769128451913690914221031621656613109515621303323808110559418436142495252529477103161580956276428088598126962914381333768255599359611051042534531452556361644967581116067557732439556477984747634249801168423328521971727366159553568253742083924091938986733504751594106664398978072604208609631011344412811205518160831960112399900807452528720070770826379612584967988633570768426275318053010661522061154743884022599530965785512827189924484981066814568255516971875889315041197145510206607026263260603498387293237023554948743463211096385474863102276650346832607340063858837512208424216059595916217267423771263267195715414678875791763371849689761237472941928214149122560629921146901255114966786419589820334164942085860821985934867196114908279661634400922421327266550310560216844718905380792866019167803078986024010229619957913205672295722738140264455283477755436864019852806746447204486395424812241872415986351711048100006663504122406235070335063948364547028068391240260476241630412782925168092644539435012386095527698333627766165415430512083297805137146707185857058157459086293010729045041314648605983270299550463633727614381507737030340854921172521790939143697311170942792543463775706514640735329056572729623033654789738641357779275749351319431538052239996337559838070129564508151647477419767416670971732784353255938474188977865638062936976030829294358066634327280498350423871930893540815782096807360667958697678359346822213692307237800727120657462526264263297333554228318742063469930470570281078807410591721812966641053574941120747375653140834165852080993056751880004153754836965083426196145209149926254490820381902128858405715995293937492568421584248736275405318196680554241190774091672519308825480032696524136242443085289267106770890121325724692274709329465182937315294975584609659532994734386546880807223844706206117477729009338371863517293027083833992117764024238383668903328503728174466865638521662439130176719115308311094094866420016956963058932779294232203928790307648231141046169089288832638555914548969113458542863112727005220900311779078029426777452755834002572764215228984182551546783355551596347523393202503714088423041068105358562338422146456860537738811478714794660742540059851170871307573473298662210604789183885429631245599017604713103335413683596255492618006400421244259259584842709883235114496753708360360985078738406593665791071535169492914765057784860498157566283644923116474515124221288371686782230199873611960605456849068575950049155798091056483972567136371327715473901569744180207239085564772359568208300223339059910054319630398264728955875756026728170254440544854983407388021559877143905278246696312327441085724782099249586838236813063996097306440608402166539624681269558737669130565924249646967957118981781976334159340272457667599240519930192999117508371406401719556491386036188650733889917344783766884226961902463381083217841958443021136112726491047846966270496382779896021143188203208817449114580359145971346367253806822071462869442764290013908254970094966452504842937680425000665219801820567677491012600411208136071323013090194746844509407502455944266399258551655677446197067326936267764006613221084167957969806793052571536921912676855892941096944119542009764843570517406760907664656142378703517500639673488233931999441522937027522326716748476550522921203508812435934110421923513323277131212884831731658083441725925889682612243836896407600127776844180916994841998998424739208188870845813208541383140304395439278653155377489172692677863713915019489345790752452498668644953750174802952220629145448831336842597599073310216657435564212862799926309727638418542189395465869500598807405959801913335282142055583441398463749679083565877335039345934700771207493132116104279461137225171869547253979988108534908546801521205324728316441359898993198394072303140027961957661125494737187617108797678256400264703925875746033860196502339265393834873549683340847690419080235544348939484044865658631419668784725652530803153399440822176385271878684128113755528885489329740782291628569388478987503922426270215056361369274478113206849450224382041419395527730792244444659044873159091982671503158139242447991541039123380308030008881140370052154101319814300493002622324370220661281114800718526075672355055352874330950256835848413938190230388263875690350666650489890006549964301840245989119892976574626877277503677064582412988645558223149594024425961810180392535730432222013382071035659801345995613758224375602904858778967442721212245457941631166235624411054843238805285233315814147450590236342653898460115521274496341483940056298272355902702963916556791045348206247893000538524344077721431576184103224082515785092769553310766495223141826532824990508553151759867254953780429728538504900865050787960439700297815019380203671949680495957532884407239668164973500220941470904421658633081927470031704152036873373414745213659765590449643371814330011209188801834455874234372200029390671907847825144433260499202935906146458965990807255760145425244314579121038313698670342439307518321207415047108543895409780659472196057046690854126248291418443036642288453017521971021185298041762398110247336744318264335595084111307984971054683984494238948711862389799930311290007262084613369999000169046263249550984452394766079032208268465413658039358711055612339662507369672393711631506339472177860682799638584463137476264960488790910495015074902700777123982371051715857430708175763220356565812445442218195643847596267568884633547640855080413638942466087341677329155870793210435463035180544064972566381171666061085046474107544759451477780706751004496752621170788364742139718696807759067154625738804448059136370679571433460252270143599935837972047651239914064310050554672023924788734512962312805924378547260295514354202271127482030860980653589549767950599076795816814019530980212370242385521798209375567384811215268256234590631520296544851342112644998608500994513320544648774187038979329159953421232017583914777651448128623258193914647384829030083675897884118100976463218822557099407074178245756563669229278667126534892525299491670584979782015056276407602078301941723979717855020896539438689847638591508759043535673773474431774468048609963437942873801987921166738807781717409254253339377863586791114930902080651981408561922407831433331927665595215510426450511579721682317355966670300692743175440572475420726953765376013622465008282043886950888405731823893736447504329299526612214313776738341462687460695276893502050560399361158319434921941383946908101281915181023476184653205329630447908039515488430005689743013334320305447765540266723433003622946976641902365788253897320405036833797163527019357214735100179928072963920376519387543499271951650313787898856486278760775473862518924002593264271172704866282443526829947796725090633939028200575739564981043987539685178676746228131305954260576703811510037310540423454076924006050573013383757366108405548163899978807874195076686899943135811817664474479559017975052934010039387440148979119892416535104164924240711827896124408231392370726573240016652399711849019931626667014358494403128721642089768714774815154156949994899374542797078372679212544847392619727807788913228508937724070809847434228153904294470876753422299003181895816502743495914203138325419564608045230181287734925129113062293160013644010375887638161731058529102615490663717400974730435273450710637822541003213636553516294856097889546200162948408461260992569758054593017999690718847348132752628458379658272984699418310114739730534756824445069686143297803138898037106562329123060770440937494293262639508601860779217498462430454108461572545360711619128734390419026375553419106412611520310978393626360228476558607667627199692648652337461159103310218436943255403589926321883184657308907385632070859474009902147697757838630800839690371818519117845131825879366284039587913774311023163341818552135672482746430096423352207778646757260046690883453076555126227669987869234418158577295036066407943509017815145651024586787718975384930506654679851043957159999560191746143503880410002767919342744841027456098365431349586423322918236868208109201431774275097929324616239239357080919658056299414054675178649327235988698353654025150415258125940540702627405538733383688907015886037961688679742779283571474047872246785207192956424985305306592509974471073529579650041734864627522105448939049491163963426722550493702927322225223670331814629378276660220839763931112849212981923156658400221058205242693041729446610843099957022368875050170606529253390466668920398952402730388583799270652859496218690690320979098655560821041416653678115679376860360117938156154985325065133608539327194910242878546816180775088736069306939865947973281715671767963822751197870406875716246037973428531332104743842798296202077051583262064566180041208757036329854952195088824393210967299195804460003223710277749224279715768621086530667693511634678825640870050569017102588311859091179798615769882768411138899011051338928942492805052070662992148234865470449843629819198580321452940094360218150490613629946312686510370444527104445024199401885511821877157778329631412591022196195900548553667742095949649191895627518780751494805153919134128287541162155166736335783411351137992480133282642513660257836263726559282188240337710074471584500689798608157332131041833822731448376927417113096954523402655789677404937686071141106528791463296325480079333114718517761346695093009029325546068455991212434575723100329817513561591202299258670104927231707232790687803454292237141515746476525589174333447817381344946494180685478040763771391688990861068691557707523283208637335014693645578834383675232335409630951972075513163939830587333125387671664709526203763766722213959523703944225019350580570291343580032429761675406388358110994296184488098102645658969868916388778881911961553937135836827036404983805970287709901184035018310065599766623636305886937350023253471696585518868797675595122662528767377095839950409297932552832373070427971519388355399922037601534806506415599868927344066772703653924227021227212635035682840048580137751604932488553872288048083256037851956246348353836731740772077781791682989950561100888468768382161909245540136434464006095052341185805793203911229728400482077517575937524357366242621799731557924607551086138349672674196387763649743119368199504337918109165940713641620638956724422050107707043769660244501111506032489508386162404006115146553070638043162743817287536423631380417129535033028987624833042299180733808538975079060836795349237284581668480367665371807725639106972422829582563731663603567421183552489490288936597091305640591529882743182126923020517213770252520445103307361824240081678834501971136729489376785948787232091160071901293915780821220902474301506223581510245033321156803376649724671039240593513799813659358621321813753288125417074150749441325432684372250558444868229448544289728010939670717700422316677507152729351268212130263818455711182432577081261405743427587632576934916337762581795034048758575414704903104893280714779661551526854674291490851149963098829527049465790372212368913607844404733377763202322667311038469480677389350068822080332064144504059634507271140957166329223168547374069038031290907391522084887646933871182478011879810388346554340233142441834486792984899809881053106724698002499811601609528202203978231038915560213200767470081113809109441461357521919936598660207841743367180050896368921642414286894711791746178477603840256435899552796712203916411626180695397770865354751928865634703586142121773116160421744450999726813601078884053363131674827261306325641608720436772806691419757433949381014747403469768499590467446493593449434851623398627501303412942329464059603172236028823627002684037044428661885641819874006392417582113251445852568023323784526548140029247532497378513766423244993821727709650083082536549314373561911105873937937815920487942943473334833747239581430078609581515198180750228820658750488560508984248118544463771741690399753699940477050138361331134958078008573889735332026532990297831869289285834870017244868101062378427777947693330201382779002844742153923169642899148147483374710191601143279343797399150005431625039530595848583698258385471703704392517390330939653301539138811217314707031562158084950374669859810971282632920893619671888328967845349916840829836544046675410540335013830452189843997704321861783288362911607021103723259914905444850075409721264414623304747487003919179853991380295442225076828604088975294057594892362734935556597760726847320077640647406194103278830934770286472000783158059931713635731377275969670805497350637707634572963926619263162707080983407240878648077420035999781065044135976741316955784554170359925737486086468584789670237740588928849387128284958174499507020354335965594026091538741926917424049399063458298732010841165034728110155533775326846235808685840267859575066036826119343440315065506950093814739946635830791722447593010970359783754691901106726477859604171411176856461633988062728878578313190814097787722201653462807125122170342394420164779721397905546705966704138639485195091781673822833872286682830056691296971008352939718661604971529145206926664767863984025025302375152602211202382690618123173658481466811476700882998764128307763708733757777244907831713751214985045988191712747066056006812382983944237511223454643349169359011830382964741050644560334927120058627981242474349519125053826490399151021435827561928538501860648282200767477906302688311960160849337491913506393999857179620643942901001730199130993650884019200310909745405503277795173024940105309877014889179545497633823743589008932362586910888035434139730396662806516043658363034642405270638614854335664668059909289882237449992407033573469773718249688335087474621275245146480860425313292563785772604363218904222377345853576430568551891439559790716436436885460709620636304756781893253135571476371177746393046503374391283114295093040882388531164582397361488254291108240239184070243385085705277362779197341462067441564966395277254479224569317628390093164022535461547956842122970625479153506067901033586932732958256347486603367770922477976367412928181931530146981759003336699889872873895262349617699203920157368969393928920593304043808020061201028906184524401395011470276089639594170211339573073188922173591872490913462202750329953143768342513479039599335008426505685483150197142047556020959306698835820558193825608079178925836693502854430850875397403977416288900339625989471580547314708904793328467765196085794647946249100728857580121296038742407329585519040118979396543170487376924993780746288761680886886093817975151255874498248101386773870947289176494709039033921094886698597363169891116369762709721797999307759555657027181458491958727014415271119416277168694326672227016850061399784528336665907340265179625086191407167721689418481299331902549191171761974488666937281878428412915727474933026340534964996017900995174994080918570820844934010855386658066782154554698818138479062061610052058131225631547355504457457581275380739333063986653316679649007328229080861090765440146015280937277740680485734525293800956612637224506347146351114051333161910497956769956155026331999024767076729181171817249112074019961391462777473598215836811083984228566326789082383216113055855120968925960273992605994327747824224350380381646642416896547596994408362912750591452276294066994360133238032809356984825546859920730292446352345590555700858721984558144080122168290448093170135390442604210076327368563447403003868434017976454812807895499007835463097905840247785518708042777155787987338430546801759905399064451797357606552392504320754261686549275737545491492976252850398897501466275505335281780512230376628737319807979660071198052974994379795938186951454893407918148991266381149234588685862522814453003911388361457569442230013749487852340602707986987795870292085664128650907101267307250116608399781464180732933695291721410869622364593464898037309088759634589713854622501771155246768998017516405502333261283997082598039206245070706459836533138629058616809213147410178916323456010161444291122242186808030536296644092130948052075607930995973842275598091729626479962683224220848580301606849544385274662289400517664516682672304486268986440426761648432186515582581870287437132519498408203031274185580654691331987479999512103754649271660385094850952427605494696556926944959969365066618289976880674062225741889669659748552101145733305350131767098410065376263493865797743786546143235538262913057094927237723737062846011120549579738003943627623505762694844256768307656169069972522792097615782384219643542477123181616347510306760595240595923259170085082159557586137412215530680567027817188478786343646354321215747726268432956029517546842975240095162506493936910916085422403282434013586009023911174782338204110976491305170589339246014409930903213030786558034630384508968016284703136556587030589367807264054655416024478368244840056791413128754223091484633202693916241498396936213602844022380367000909186620800720585795584819275673684623945461055792989420464287470495789878606502269430909785594177128314827876419951422356526953495755662809406773909415952456068505211709684871947335880751744852719139397020198860210830680195269929747388582555678884917790595764794017440315478795453013869900787576505637139874719927473183261126531932538513281451331022913991183474900581910075372672378313250784494316814721194645907114200435716230863065977083437200931152985150843397129973599121093790692545890022885442568249124148206356157771086806946107868310931478572405325473781467014640063808318724559280063528645146841625257742441722308637818115873145547573014322526594273906773954548753663783458325604403992810339194869558652182432729860042380414784731328077157990311195027318363806854428691457566866727177721231766077168273335368590649475363032647055030002089604307027793415970919241220087807735707838113713999340758469760607109095291343192875579728183271732887146793004598468279290940039536232106670159287268018692232807241363248746499240890481320740557014804454265298287822201621932974615751999075948280345262185817742961930684785715016423037948149910979232684314497538992081801630778588309454686033041776394665314052309865866711977529028544799550714817773091625436244760785229476990467390192885357470878053316220236339120934561234468740640476134583000528317058624682695443424383695117323543504281179209022862128616582046254566056832139178403705878159191500130857788632920774272720075314711802516290522221428064840684011575293443633492157412111738115862844497119446011227298278893795367510009342775306360577975179175238468323010580090454055360463383187251256118432480438172828273871161671065015366764458365550137814456119219145950933188909175996081372027531685661592948534395167900113122037398879710113527395651598091760321314575751986685799960441041478561227369408202239260712928428877030918610841602171733127364431401585499857769918761636661830956389764505046637280210469461481834527314779706807358684921277106073525802881642594639536672926020055790961726571329906833767128033698878123078972174344882976455839728458820602974926207654541635628895628920881477913120270318514686912954560967827762081237920488640770832743226288589391815360944814383716938446479866156507363571947424806326346732381159932501008624748645332253709055232055110153293538771553023245557349065375720467760112737255476735931838248995800621701608960717124484924605947534143245986278645500331386288612719102052011387533432756375538691166380160784219399781346007122316886262184603416557058499082877578950156138889873746580874950563630193199105278084896311655469084238810863109825233493991499927991614692813174428589853617038843944421846054142634418998660715337729889595040504673562722908276803327450567399782331634813532004253302195957007353828304409394018070041984739666549259270905020587218303531383166917889418026962243035840202084845273500120903876142638807120498862382974436900203663808041750681569059072999291986621824744097952427857862593296056917478630709571813571304811280033902974094791358673422384603471087254994908038179475073470579088549348108951899048486385075656555549445168379301653215478453091695448001830243505722302609689624336784864118395715972225553606490079974484366812755598009236382997579493259530619391822190918172059530993340834922914872982595953154641954032864698811619300860947379218036192983908306560669930674077770862157982528387838680239637680813485784505877120772254965118804789440270634924963849603349047520320260590907480087866271307184292967882206816323180161924777397476993581687883336181265861910226485831339990696517827181283954372207445523149261798393499217626628381116687058564024660723898184796490980641785471339643211173370361037254437683353980074498268861310852599162068384759151999607893877529382326436584614616612185895926521742506436571635104626142589488768291410873231025037218860717369330874401068209308144044991758770365970185713835164811375796517601152284515814873464024675143182349101057996004916794453991364607158205158778872102131650931752934444455317635223734056507950595362361486054231690090458668911248831674443204225472908474119421364252095886979959954833140918295017007596065260732897830590210580484458253021073296105686096504430015788097226072260242868879795640974346796686615382939158269130308530021147374772532633589526519680751564156279494780973364741033107930593181398083380626328507187372109618303743142335630557595700239386804040287273776738165192863039631875090180268585764193321190378418983102086665121403550415368704656338324296484645503268661541091839073414804304536105348848476833717541364371013357859382006808685717890004378545288022644689509540420331627489432084381362947089334134236296193527131495461175394247494341000548980222840813948539045462045138134916858317344541818021784274088839737355612058048639800893098435681100380915590905396630019362212997619577964049235970923567883849628593564478677786411494206900063667405720227227375773073024758590122128425139867725128408345022886111352528116434838516976325450964598157619742520657218656901712338178346332880980420149041830247755312358765938699445027325054774134706501704421503199385256707615203937852843759913667505838018798037191213178832164417779609539580119080006093400697815689130619777242342111909129863985217217621997326986888301147514610788913759467384473167932375645298007691685531229915796337409650724430114682499083335003796020972422653843109256198047997273036051806073578322757360209415930266097427328905433204483040699770079451336243003284712259809875304133689216245699481824480139674314263282818059477132378657717747019966654185021616657750549688432270337144901565755254423112230241333419151872933008276089244628202225823161834398784950291841316564080463905537449398958449425969768901404367283731987128279227770048295907657163563138295803359852856293921275123361100682627642393650253657531455277618514261066150494873275900537915608140560233542960074338354776359576689627536528325287148001908510300985160647358192061602680511120875422611422481451443797418209664058552369752293101315813670478631236648980370999063619995008010410959848444811956773729123237808787855385878411951905743280240122937887370296448264450829465257943738006096451700807951655851330247469792110514842746271811648372710758692389519867830951567270770611715415049187423151172419044167463431843091415741481560334928759610131638878459950989740919673820886930729262182315305425853271030095466161056507693657203709790606883965481483204824858102813442509394318486027136699487387836427547568629694516545651243083547365754580008818788239508296536767039640315961627167070149704962296048913838121015658997079294657403650267570815641371979049598831179516201949237168955603792770072875633841734224149792801213557044985438949048289581891679105837682148372129758808376127971820099060451032575358135972613094637933692772953315429222203977255061933167768291307406810468743174438224852840756189210044186535866805716852472492954627580071456552431419566075939071961533897550131766910240937472940009424236118705841189580736814894583702990360537973005641038561356665790940724832398316839605025089294692687471774370199239911158682745238730199329651587657155235685349457054033828729861576593240298801370081874794638647235962601184666974247740166510681600051537904337770092995465531783217495217995538789606861684806358703827652587195942074910303317460382748575707044226264068126933708461670466106576834882334198109589052544361296081191794996445242895027994149044807642123297302224984099111219474869123926586452116921006809084186318469773826508477734357626732937064914795126886916022498678520812109921264718875823517756994784893643880824591472832587181072702139089400082587661730221540814692333952231537969065729727938727374649023959480672452857888105540915544190134702068329760646580930342573564299538152590021398585532480674252642999929321142605305638190415317954580452662969473403025719116258150689514466163272580019191988257842768393590755667258970101587571767592925965298778087048129278756215901255030202539339199181068884036542011893503119477990656633514172545221012964182597190209107954468582942500505264295244465433423203881279548971597054746314087694281462089962477961599465171702003741564710765952881401908762269821359898779625610001334847805011343897440631457296113438217746438815240737678187549740097613014080628745376455049742916858897460714420669871674073501178640870531763985084048628910635677010905080141022868940531244550576328285452579948969334734207301898913672854903369663104784786050621039111382851437091409261305695616743908949726368553471643128614026288207182262423500561520273675642924344786112540671518447460791609724016804291628970763663989042999303430246035155801923267233434501134427995112487356840630822881607349926021618901973420262034915553464268136072392697935495871228493416843765877039583684338416268988172259523651698885012107909258282158401693513463443285077991804023152642151582445850766803487084997548693148688329029299158131746908929494736882969016706964330790050415070897306895158559923461426466858496466545389972526827988477231998953406638756170179090764526744393891803643680080079040382845529406387814594292503687902001855928309505715986169351981956423768052115775453789145952136114332404702078982016966363849830545247375284613439364384921773041535557694165566241136530592252475089054006840931139811010386601445686193427406826133257085371333690750243514389859482145226205736178868608715394647191755023399668495007677502023392085294345644083493779627086724764573270731898531344912555349205005244076896547669923188282706339323382084978053593661992898030893626726444971023364737119327674505561628009661099746777859432620409662956534324100596282583336485789212894102096126639560510522134261380114398082098951300993206828970878996184534169610390644624492889284243367840174948717346180253661284085440028241814781218498053724443460537583565353008773460233780671202660084459051969801034021126721554332731385127371084526645750860837242788311134649031822589063714486514485300327343647119577990530392457661454325790063417175743677168197418153742942174606768215278754749177444477487194218072099682514357485912371441971855826127617206027881065230973836698978759578038608806020989940299742509389617617014492476215268661958111442870078740208564048979994783035186022919412347237543045742426938353380231961840637459116094713417952992050619183860302731957456157841957994217035790757814297537404877585652841186517066961535640764403095727559950073770184742854462397465329440681031459890866442790487630095173125775847292011001567183985753154733091253927260984027443626437139647683461976435266584010211611496296306788426325199349988257221482980694759080882653276861950978186917741978003799987380803932063354179200677297885980694144520622190709315368111244087264920056616436345742079632407661363325625087507354585771904753265886396991632624944816276240551438947650252610252091531956331751051431940378218039291383686675704935550004417701197732072295147159349590727859127744533210779020569955750221966089390568075869942720150225942570539993390201496946730105333180241040759585974099139945957338534189077325607590625628819251082101690362374004736628328142456042074996507904626941326719629996464987738135029443459825632702602429396854897902199808727453150266139040702345199651458456315019761218928629530320256033338822490432354324824092773969537008454732150216082050943946985779516871719434817202767193823819170184866581817314675028473661661012211055661670978380735995971871467402441257968687742709536672047948850084073750249977687769952072940411648196488146684089424766979092724493365286353538584163121701609076226684360995576054632176362795376320563555184672303041886360623686577101067708620418099513404412224882039399308842818430135520706708384800782727513956186631192242061501111280312301497374698931601521400891512514286779931667385075659573384172319879720841574058912511549819935542349562495794892379466384456118660550260626358352990088649913139561457161639134902521987694375767149560039091525995952158388190553741230644469333786938300925690725094569802302848086340185043335061504600810700517644035514795193590825843663677973972205453106039259325832452091660139574547557187756763184208213112261997332350755776847324868842156403388985946318126526695571263319590150706854924420939903436701441188773190009570253662097473882115838644284425245068189800140652506781908079135344773125914654496077343638133533008142884278479861512745963079332637737746012297715310244484843442052950615380497534870705073838414019090751989386715140943230940249809732926148779834912472702926382650807232876008558913991236272784270436555223291061451963678511526715742501958729912599793903345767749463224600325314490713063781567364917686614254168071241260333575291034449382996865760902432976724922126062806690245642179176407366927344695090054029259255739172707464051364171087759161306701737982507316782155660375117838118756476165839239216004891406571659046808558762559361656078189278011725872288859989234745135228255120481625952922850958379083084188319863226629550348146434625620070995207215223731302877959296850403290250588700278704592599926330680767650680205152286892091960854517607148619643524554310970405330624323308627207660771413611666738259818569117124166240471669466670703937559341203360108022960842066548428509917456124815655906504323182697489200775981784525696545450802139340699011421744579865721490607608686898523558418352764476939369956874796112394018796021548777781669347788052727681571545152593146078681810889841628249868155774818614842068320301836068894494587336057222479635768169992750649918292323264808055650622615095905811468072999766440068327439472445620736074102573717153758185339768212731170492247328798869861278342366791249077677755734422455094460356272679154076875758119147915032389589069258046727732989245500988308141043145151394143077072815867478177606266681634302504250303765946372899419776822552827535627307113157475326674118808189428889575461149216714628317926135614657746058861759129303285745833205510590587800990969366369658925910460603681939663216773046522196599551827355350135508322103926674712104303654844137600535781198894533002874406854429006089052132081813957744393688231511113361824685917943823184905338706348843030957552344073690118893327216826979777378385574286304987768396726003078297603133221543629638520698447134657256014538850858074906270819398055336442730841520136617705525667609521912833080972339029535434097931751615609418711482724865506733721524795085692004565378132741192213517808940837795700248792826610582652982404135160969291558161765490969043863614118213965359968541404861416929518433151482437066618336591598930377426310618178907600296559513975976254785893878553654571793745426144773161605682234434047993296514054366454768558746100585924180365999945992982123105633875512670527877472908526257014863660347160266414542759570199360926594217502338727093761868896573342850541314804012390577690869552373077460989511166252816207767622772766252587758104023135195712339330090749119340225978282060166370406154481074734622170525335031150116052090881985211343625185133625704189571266711380500702053552959857552905631496306196381649707109477782696917807653344444887321066924639728105199708169604335920537852139132367616454217283385084731054126845688612234331337670746131279783846122810928545767472832953241262540226505876642780862756369647255075665457652194941754212509551168575273870856666282403602791157965635059270170115256660212514487688174130491271954937989338286324527923540963112262599346256301728074524594692183850706900553794106257818759697617787639830351114638077370732288729182977795227848724888649107668697998293169394363195620190229175933514366322003338507358051305945154952985130668715926135798564901741341122290123576470126480196064152801208726678396101108531020874066782187034895556862986386706936397064254864382910641329693840953507161127103775925648670054539314577795516771623522603372794736629710795050551056977657669078264436906288865846843939896537701488581562677017371075643004671743750491035659732927381675569094732234330378366733730412084447938236708806952698709671307145220112773892129944840721353405523999005947081838421474045655744979382092863206771652939428826148535976620952384899995250254782061180713645261859958508024710990458322931734051069792012955216636013095445225219392642519047514483467986154185859186331171779345220094404035520492463884327185214567974263324437619665261777846380856783743420774803572579775194300753359232882659445951634908287658265604684591739315566434496784403997896416269866658050433368101467530560827354231690066700212861512467513764304533278802017537406773148932419931563551443113470724374838167225074898026078540914413684892021255916415308416164344292798249468617183497038106625763775922222485875673513362885514385824447714406825403966060078961162131989176852714735636545092809986311356743316407490837188388583764105055415785662988300780685491780012324268944434895926484307947455910612970565851694975463502402826797675110658275128753393671086966573012822562764094131450145049819160741999058131822645541408056724340268635659102823754526144142725987388716156263988128275797658942098820631420463344541968468051835355430118356032909513380219003793299775932775889329048763892398548523605272332937072999984138997049899153753989906691689726348536792320392050330172729173335502277595115534332749674028390743799110042367554964303005287241110631814865550302970894377637771029078005149830326220545706574369297244415521028072314459351286190564531304794803243952147169197464180433885483415959654535254692862787081949900112752613474597318339421306400636983166631055058013270785720459335466721436004247412921314542744039720372630794129068145680902885490927877415262968514779331639961044564042745498411376139324351908112449887341994366955014123805168826892340886592371405170301312750350778859407509589127106104176923764426179383751225524656711009885753139243947934281855668467308335775954154138942202834271330207679262735599481437177387759527412525838194045687238707260561945479722267260977535891240010587616510420445524288904262204375386819709427714977702973628519677499527363035121699698452041069684177227555899450191064895088397074563008086887558018970258791747145450552682392481882478037418332649539062681719408638059331128958471852852834385544887810775707877908212080297102202484905788800392229311100750363412010400086685167823876623569400000625560308048389313072267976175973076971800452625412932600678030668069167891588416828510820921878472697696686793613144211344869612609694290225204922700786536764420400444930917325798054921103295566654058634263915312761333171203491809048241517204276539524805921982653170425256318746839889465531478608240879260243316283563030618312473733471035544381389242874786572364773029316953941548983949901126466845914960199921694470938555728553699003807391504346630212651392557944438108799433097028063252664955940235794170463547633210148176932325835219163876740298502228971350681275923436435808213847160625253900259348705466191106723412699085088638774073024353302621543568449164352058025091391203550816160816994377393318197822833583986543396746985880699336352030981322997745693759711983399633526806740190338949074583052759423814508899233678891775126560361892533152675520063038214161489339790167596090221317318558541383545996412129950749587912909210514860821658306541507621993860408287716171156329235648098893114130435612624638738425683924693699377529146626292307206124710236320396268296977825312833536065638414666896091783417219518457613184279280642335742160897847155778369964566900394937216500522278882788108889400931802935280256722702928049422337380026595894506299629470709732883776739170836012054883664762833664680353317665041503854483844138821509381829912882959912661452887581783293660501564526623096557132324014521632625767522740525774565601311735133255056182732753122957154121467680265464495230124770876656268301497547344023755595945865113303530830479616573187881054999922328272239668242242639280528911763559110819452324607734009780095166626673872563226772886384982771512836474537417821581532836547205884734596715452288233339842404741182995276507064408868393618556351388483430697398835831903726004327541932062070866358780224905454573043576306249971151758023079975998217951422228883732048142509684203668105756003876042823940626612805940091211730362260278363283089906521531911681377510429431900650689461387914968567439375626138866843624369561975200508730782793280608525781269533842555147503021286662804327472880785167702310814530348360143049823720881886636733268786573181415467537456883605551695173532692912507287532262558494414709545041836835187349576677615599870458811167061132452895926504272114500545098957802756889053519894253878876516107806187822796597461384062311887425645522765259582849891886218223471368362161190265779854499010652709440988883199366828189539866236807689548132840551275799285008106957668927569977776845825434679030405415030567553973556351820338281312921994968830699007050263518722773743692978981648400753643172018141578079404986478200623467382284386286081438512152926719525053102590087846887021531180194538980223349092394480971499440510248094434361660311822684588665841549269521271805079460428078722576394770749444962199449804286581626088490497997465192980444912123667015909111874232649770014679548891227046387274535299696262339663406321445910252927807533665606220194455218299155620807846722924637885696465094282406521294915333173333090704730806562075064884875893617124576331052020211941419225345668486272472658502765820009074688121342593496862932771873267558619956354833383047729150924249085560389724112581693199563470853194040139713672290072337777587639445128020796719167155019793229351916697547460499727654574214258047552661411957527316656899551136687939661107261708066912425822800713924744574263321188141531813953511589452516538288170887193033860999200808371074994233879550101375135803450571676418065394337027583402739180996949777197238576349286922323674377887410390258250642030836638940004490796992043352351242388513811607955656228384815220550776275268293188116096048521535973877889326347706661315466905388972383042190414447311128227348108131001418706320427350195956747032792924626688484557608535134802111580060630937297446807399763227288889228930252971710175846737520396581896120163303318042920745461760205600763965905678294216487383125061464647790144086585441840175360144429215590597314171576972584457596950134788287551319789766859226424660730804817919766118567657555114839318657936604009516326293959637545999514736568915678377063566935431904516668708176711096895672749904740324653039251779531521555841926737159910607827471474771086984400294058444945905776698958910391947619753618405469299759851534378671540463640227047095782307687536766705171133597869010510950624061692353523323653904890684856870005128047757282937038227623031973430303066718932182726982680178810599812322275854473834825061528026565769312182368417468437264469917419934368832815594212071008429775434336753123238665912266658343076198791782907837674701263941249560875950588091931196415307177342183472327077666178112043092258355481593841848491475471990038988173186308968572782870082512142817680865675898696394704742408548868904017973228079532796067773338439662128242122280231012533422760856232071324650247041095973601826453869608780161579295215624340442554988829561910452807118284213779754648254580396599048005744889760563141344355615060259840660545034503949407466869200951465362599660826680464406349359815189568420785754333752840992030390839248886751678115093174077299774511493881003588428583123116894027222353487397528997155519866865741125805289495103204078525087813902258925995010969911601410966305895020137796383176225079897824154082179899395212945667138084788411058096679267821537619458505583211228417848086748167248209405151435010855468604435927383331080558285056474385768280643445899091657631337314916909852032242615637404076737873442993450301781629404985837291465404593260263107289111509826236920774308486320255690518397455315269067637646293564348588995250637042581841387145498957294040533442441956512840474366371836039926972842650757424936944191395372059261090205914397112873834934538534732593839016696989653567595316893349016471984845731832601582353495510786817789312250506219274855156581886182888902235894843939929419061634305022695733604948075635571636624472343395281732096033194017863513455425622455162045578026475109584238576632703947040155872613369873738250562043276562792785291632953346423917291355575176806655899373111154144132936100948180415724268522328607140941699745008147895528454219142755031608029166566136275347095044775990629152147176284755223006393030583940527148838211151811436116119398442712068419503006823739317978483929292647093748573146886152950032552864442022799821076652492982883400855370985114065292557776357673511661911935278291144793063783732772884969623747027519482111285962927415420511403436464566550055220517943900460841967744199869479849336453232898905367701173554925153048368074410654021787580449607713826159870003400197178190211207597115069671405145361766663269252601303074063850441257090495356662624421059619982909264566627199705229491001538869445552416117557469525986048609174023197679786740273604708882800696263578128793311741186597135717441623832812863055634818555352268413407105392869002161380335733292089698392281002652121481521679693854186476220655862510290088141784708559958181822032352701417467244991182410000827346550973990355113240774875316342572741962225162407755340265622905754427119804393648620575018684172241155869270958685138571679022032398627692993873955656311076058595148774767186271477537521488970845229368853349080586822341907203712272916657157367210364397938842280936846786291060576523447979804810676312305899122650194623705458426664839524873484938666681307956937243895540556194414909585787100593533190404332266425295160632643927292013796468504214026754868559122962799746952682298535478413388500416051385396542074339418227164444484749257993043474478927913108431329209618820708012456981583333229820436755271600522320815629057256341942324585962480067232919035313725983331463910175077782782846200319941386709002321912597878458287921398556074287960686204733356321674174302380991967389740002372610785157158210866701198333632291475181956611083833443791372217224454441942764130474445042134511892350979262873274205169454703882255434708612687841994904071827899756112088335767594320213748123337310518203439659111429865075006125178630386445635404090517609588521286051451750699338830543195629534231652442632679225254279246950156282396192386736335446907947075309835688105883546835662872776157858945295993277822409399017606702251509867141258373080058392337922415094741408973227787398800925854309464935088574116458993300040807538135379262163287172570845883235244305933824829611923410704085151400447205843986580188966684697218455665498519169873677547571475594888175250544741541190338246062700646928721911119802250890762619294546514083450263607167615431121911575677907497205044888323733864817124811243619830015334527338532889813432020458079165924171783775296696119927487116017388701130822455736198263535019258222458052199985217244060656773414480386659908810038357108716651372464723137772488978888444414327341557900099541279171719519144610976781995702378409743421705626669049129055314796729025625667676241324340978197374195380477790424175985667656331725674544287117819109141291112597988014795217910890641488796539221840704748292543987748387867902176912045011818086297743999897321661883446293329943490816056657355714008116455511439549396966303929367224405093774199758301774484229993762295183704276220313823520755663228526672984548473745972603308561287623853729833445899059962489793809663559607322141583390009302015988296783583809930959919813922913124736825811094967892083186051645774158708620686142598906348042595093683861874643027793405567271442866797233778923914564782659353579030963493245076455817312512524596463986503302552388702781427043706336091007075045070531154029125422324933624184862703561435754956754563205942440709443173107406920341670230323782795299615685156362244863789666276207437718734815964119745432199897644518003278275876627808777379644902848701062378677474311774318726308915449520770355044915234451371047971808562419314816314235310952486690065474384864154565147757186698793456241783381024962675469573500939381419209758737133689639980558290073573724091328518150222173872617719213307352092949355412878887820765449229806981147881576198119426219746951495004467946049845262093106918083854645761160634318017829261541608374375357000518704126089924656531915580849401036781056075915254860411463879259356769506901968431291074193620711885956015776644702845908904982619719117539321225472030740275139502022800332097827912160200972657415546470831411586163098309156720776802708125070049501402384618004846288044270958321197070003353927280946296555662408216351455130568085570720564348300551197335010888517832938195851442023451264597743493885472609694359400333914874512091176239615270102729600549925843234224652288197314897020450602625376751260467766047367258098648138373161013505349885463625243272335374133345989927767513386182752116582124540116554873739970617178349044271422151341687452581590781551422061933534055134671711937949037818892160743533273208280229744380843704110192624702121328077848168858746030960673535303118012193682204962478823149175654860727616368588341857555513067416002969653321507181307021746420353556205167296979928626349758755040019406267419183504862688221225583382991004978542614092196530900618138931068316771311065177780540710415785968380822987757244733197873068264797880824653871485147726351352354608114494209797795635380474412320626427540519049999811786235165248968020911993757282909908874855945044271401217485066918800587125835982752133595422750281773035625870327171902885127666828231617431126204632030518309620123619914508640701154657181888584610680767615181988268414575793431788397501362937067030699208668829702652566899148755130681407123947050604698681617457760141303550882763767192519441578389946581959002408405393366003826530635790323575544690882955094810665339960261378553896048793793904578980186615169297766905817961519146451309282820765423145607216846801217471393895755776014893535637973597863226114856780548536619684732453803965822617760017996553035456342284508786231759612563885204611613111092402146723953959913579933507459698738588869677985347303084915370898113054248789110652002783099130350151399510079136038283263418221104633099584489942605208803072793836068855041666682502546684955071809493102762959310024114391693352106509047991940319590326197766477326678138635390873222782179241993388597243831525367758203751076054256186658303424902543215061952074167177144189682047473888867046527887332295871782959931851557379712005743464198449155318758975002183046309535641427978319140870851734250751970963968628793862241785313414152370044227512591916605580395284968469427625414128768261395685680390659704961123655194852415797816074111491831976326735550818037981692124430314851363595185170379543689256607158718488647581488857485589253778634810258124641539171127022904945073425982371629777844850656358308340309964096416106116201234389163322234534290964542023644773842830952031074251827742926798149805970065641476421230563520756121898111248757890995845500637001182672608128183048843259108029381973592966377674034444140051096961787008510973274892647058527886169038025818355605776614750817623578439361918258562900239353415337395688211830053140491370712296094610568847298496592208225302971961279929832159589560436561227427575988472364926986487330417065892881779777672852166211171021915800923307805730851107297777227009625272617658164384878734277482746879006697806772105263878721645223773436547259625450929072572067532872614161784919807548433546906054703083250550923811369774156538974608662202712307799275321130884916497000765663029423109435619787854086981463181625367410562812956099863174072994253626257369566689535602202108075248664278827030586918639113500247757688691143849171680215316098113662224865301874690911961409560345676195356309221288212676361049913998640593918944711928388034267428716545974572003617554861120370654584093181239240967097904941912225925169486051169842311357965580794557972440433038777333062762191355292574036508450850617176434943016270046906967032589628857794540138097901063777573804310977437729985555396159145984000728110410480781923951385598823150035349477983832216935579687487624623253629802622901906545631293160893685127131697654882010647863324227591397660835168828963175134161116838782609482214992369043467545568398419727523356842052695376870956376863378197032647793914078797750425097372619592226238240354106963144897173050016997041909240921344987376017874420443608363047119823302692751743302708233123110488377405223214383585336387774311841659744674722795830746423281531201006191212055897210331489985164709442443813164242843458711604635973035557952499871298698796945937772612410115420454749299368069051238296167290539365317183622605512557806040294407306167329215197534676613600848350450545242822959104197976548640909417480048253576389207021243940480748598449524387830585791102992828821549090520422478454950080992343254839303721000353098012394775509442571272554441684352715577296557876777802253139395441064948891260798002174592211925237408196682724842972761990726989868328642896565334175330748582684999703808310588228593807062739824274659462722207546960456251443302338604915637027843715512294528179378250966316505026189698427888006990908692509942150233747129100730984018824238175683014539426871111704248761137956484301240856039949961986518850065448946642090955649638651432570688155210891688818540086966574306858500201481381339316419120477982988025309924220273155929367465055275066856094847692073342859361940335902461489430640958528700778444769797533123950519837840840166715130630411333859200842659636418654034918631462101283186710329393204192458030614478525389512027669847076378251909897291054371337761806736347284280814436710844476235969488198585135550144127027623312164335371697608266942165231477405100658772757755074904536377317159205277194693450907770899124665726213256251539072206046545989901466614116767825474996040949326720496434110748951605999319062434995234738664796477263163881485487274017078056205967533743585743793032907935420458956594833845672915183909762364650373091407712849974508794915859323466662424470785534899246951228835167895151230292689479804971473931442267719598453323482934328081627161760914927967146139976739684316071176449883216459895925262799195155810176087033350660813104989732413065270079291911596804456813621257318038844299496138719567770118506301700739804051070210675229767761091587034940444792050678244614459458463835980365728895945759272989725822660842083318729227950215703777586604295359641857415320745206460126083978540728918163005051121961148701529701738745869977531027612747513700527874162539323696325479458515316058867386936199981791648343829638226599469359025447013998789254130656827112865947751829403747533048799953453109805617994782595860912018767921678841334889805534193457341576609286931772419041181476099322946072108086575195093083412085408431184543735671493284667198185420885201173675446699893929123822150648560965773723964228310483224117067927613573732086542053941200343747969214915375278646483958377466374679010181862915069914156365153886550065694711925226289605375649347684621243518182010818654570104214950772508602817110787633424031767923620595487823819627954169658564004422361874498368271038591055205109617186642784815559540706729431972291364460271907518906978978104061282076287432999949669787393103802326462772024241492693922751067561782236739110521271470858746581353994178483995568444265345746329908639241455867177652148187898404470376266977899573480311560485517178993254891631340345483017341632489696061710003328447784896694524024700329058162978564390211065947144839709643600771187941126786727374713118314229669887492435036447170125504357593723475482960397780992789039654769559137848562425504712688912243353996288831356808899224295172162767271198415498699901838579885897477155183765776872027242110183640387324162060047584190909628410837536013612858661901824976144112451588707145561719267577338393944968115932926032873470687885891813832825779988616374057970001062897462619708151744387741292333862481800664960496397510913381987862854321218302364674399848183023177680494060066599348343423975363993243747368638226403555741493744410224311037439334413418749427683062452394132429771586442683634472276072140751826880955545216189285852256313326926918576197211236612007604561083193119589152814361397006293393565438939939521541394338014248010955019022667852259938272383720716651695055499300256896662165088849266570663794517225975088239750126515404681766657729139821661711177830469034141162255781464781446008705649427330619936589096180344100431687610281890029289253796773317945978534680634047981641897987507606669837516476235738457242372704103330150855919949183313692212471640441188388716263968423129298344666408427142596416643914388656759482078611597459737187985756089411427568955576326293816784433773628908901147570667524987939208031886628623410851593740335621816537101280411850551543556263546833580469115600767215673280543469410595280243501502761323318160350633046021676906907652175718729414596570099239351891940265275072815078482051491565131758010288753806230643049534417358767990539584415566942427783415043291000833787763655436876373806209897323674710362104971251402251893517384644667527426317690412921491301764700591515119971416722103471803776159691999878067513251097135284685493321849505098709685368453228077047634241062970200002770187242788812090883931457884896237271295598166896352266443613139198303124309635335967140499302540467389409762278505122005536610527143693732638894156270664260802881653926165455533266864885627318785858514871683475016695352116007421105375144667623320259679105668751155810943056411724382435748105036950238159951635365702684367357599915346935682748783728653776862853293393495349432136474841559615675985858786083429061880904780610171444416422397360792400907736017201296618967725283293083610789945517563668091203371754436700676754450782292418653213284071392731229310877008748198870042839560620965447242190805543224285551937693034507022553535945449742144806490964199781914596258713992428914463845192014706743341002013687800310658766180130296116753629620439350930700467192053564719128688182803807442632740413243870694969737774446516528477148678080942224470357789218341428745978697495109204314741332272256491248796572669668751429907659169390668480344433657485450373888970247599663493292834783485866394492268157112741718373547314622972027496713475936320552310462325277848862018029866957367325697761977724949656925444274316245875285634489026278170616932060518046894541152147809791533877789589442534439399115547804709231328484778113558058608015433159211844068058790670378324904233521809752969170825453439133274858252753779346090863777390840524488094416046769024144108362621180134797970891637367048816781921829824851171772218155933824249223392848929788776246550740636946461520095030044919200444249401247139842785785433560226040105004730751209314267073351053430968227278874859026610901911475398097830055074527035793240490448606729056699485116507029102922896981988184167435377472928002907445727887997699674113527643918426488715072435322679612497778479064005835509401038821900598234017688460493514239486199273684506829000708724774462820355367959093932484925135702502706316318853958517441398302691988592723554806037634646618288842901916159516198694655879911010599756478251863382478070101803127322086581010074636211668382297641547653254221946232806335531223257737340918290226346914684272298752693704368353443525560811124141354430898040288360050396278572449546918027429535031533549040783049401834765473918795428259165192134028315744127864094328118606028998085309866269311499524645205728014317464763317140660636713159630786699040224978253589936643322101866217997559109949908686853641583877318707301823398872331532415610815773798098591113532348408436931606793503620362553976450117690169346330533176082676621385196707747098976085132823670855158835655768543323284703239962815148218287928493986327734928072694728684823839747626767128524647911803217619741156427600587901414223283990210705512760671523945404366035621967024759185906380438359223603751774136379085029281034421581173341080573835002833536268022462596403810914985710871495471937984125361564581120810745689542559988830466171808734389359502212207073112751861724581257135692914014131972289544571846319921219177707751980840174474309058567049358577676704639863033658953838156676784368215507614358099455458892495430494575858979482112143274675178782972612882878041070843525383741400023480796672704553982257386044329410505190698405326963291409951993749619979232219562182041891082018199874041160082161252597763217975072656947747716348201642860275111669148302670789954691460013344425030328531242208852229360550299412290252774356302986306968979613810327723177818536933242770627818446794238597150337680035982870032964086986353759013269848787355194970804178469817446877762324785450769995728933179998211447814715716643840016942659849794442191049692829269552813248642964876072496359440689378442313215059850592165850138175363886144577698906016378632353355594709842706354742580131117748388637559576981470867918662204569958074528820626604206873774203019737846503102991973926142467784089256411354515586505548508241913456266883352895101910815503553384288858011055409909655065523322992609757284277090987500661420879881598038192660553917106792570621958766654933179256680411289671607802299625914337682820125310660279191928156140585172595388804734120511871226882620573116106911070091555365009595037955798113330223686174765810434869424478051284585246680386555960614930972949671316192426269261683661767064662500120077316790515510485579101229375050064090076011861302663118594851213194436885436787680244987681226893031488155265090594948480917439394424241310656499549278775222448528709885364481261310200405385025677533736539122632726416452791274167943881137527952971003533067201872785563217555403732040242574675139026811622121709330665475848294903833491952401451320694380900196135832885927985407226757770501243930996244467030243430582926271093495416893360070944779092085085637216680073607300166706107387535019921161295028494029625517475426895670741941106154733970568947045515903170376070774862289472036878904169642616734442255276315882792334509000237699215071199429228696649984458179245230998758557474045394958278272456072411726587323303978054112440690646028970608543479388033309046908266304247346705853557453446494977924079375513881939676011237535566475362093259004457688673329271276714839495813989697577677163318466174075456685131762104651879488111334643533510054031850323673676727312215429406711363608947323741443496755851070460566333741199909893475436275018101233800180935951446140815722757576469049514530557888326977754169860624314657147709302306331075496212808916010352928912717687000681488047016615601826859308182229960608136135230537528356701308047958109956845320125672588652163697089027488603247914371871215245924171731913727187654860931120724022183146971385359764276993907959162804425623559963428637190919662045719867456809010601839344523872039893708251132774218080614559281427492746870023720615220210089587205721459230780052086970545931824733819577391840282276411267819002157974806832579032254469210027137716276395243055899335636125032066566660517992227904847726667040830345588351980834700906558468598225469860975733226110500012965406077200519640898639554633527221660623261014334833928149198917876785455346368510048863892584912301251568510184654369304795436984611463401740757176422258235779371639694299900035191794487359155537482899866399978068781561031250786802535518196715360924350651320174839872708340608810598307560106291335994864044230468762131639660366839545410487547250351100891851148312223284244183847843503933656250696399119012953518436229718417247254548513310856840377455501448890953458394016087999664843199775283029434611606242511177207815296410884720188244718838012225063635884074774921382700117667049143788457171206520770109634265036384793292119006751651550896904522956632877837004791188309229825860253606494999008412638557543685695493181724851146920987263075127482955599992656947417720689453525070523712559055509517231134349734695403419842909642410133150164985391675834914726723673228447757221135206055273061538396463394313838886823133170202894469848184129819022766824678755645130577209939622241341329507953671579432950798020524624843916689684612297921711234270841511450378223957158434313960085522918027902600125480788730957535903092137565995596974244944529853934077918431154299129869302444067837703469338254092757045549872014140961468366791277798955182300615429552604990650697808672634498799365413993373414668053655855204445397668079675497973838929029703368714590556161029027106813438029614764594533721772752076634369013895411707427971724610457682934308563087914358260073397069008921978270146534249703752165845959038017018267500698317524046787275722771907515897717834161532713822744444658571744483602406629032504739819099694376398447892913516543113582929089751710277816593832872401948276030463872984589413954517990078738235984468190626355547302491077675268477950886579848725957644621753564026715562914805644076992152654879874547232810698735669511136219297982973693501400903435741395110946816515847021031017822600877188289355781010846809976179743101904969515229944816184562988323285057710202739229836476161958107714667786962085367542224641385290777112399433070136405039928699109533041116917959042064637271931825780735286965004468072549950959955311691491239404594371596820741382560333392804253036949953384817278446126959598793012614077564872609865486091067464384095026291781900451190902718490184571290381131122054317996301849241380568698399212101759714444820936131577197281304810857023720888267754812803585244044843515404006136876254633314385099061463770633986789987370906503500403888203705522494148573105465387045148189794583488053362806342274536365945119356157236835845066411162597443207813576463568149848596830116260032727952828108738447638692928263861425847704601903848823079585124041462530263161259621523955875651119330256469704470874651392223536221559095520330738731307170570780274614469223471364236808084243243031668184401444522991502391081651626921727283467117218560923502286380767174170076469712404931375898342365366919624252516701690118364082476760592196918146785251087872762936693127661946836397567473224353084980001017775676678995864270139045511098923068748329421860431879653792593172281588363182907327128881248640483980955850264323804415466281732800090073133662698036181825910966759550765115373769384013567552303959416864505842484374335656057256877278909065775620625243300756071926612916889618700069233081052982161200981242893578370575659203138550485858036502568862567440345637541022340474854341799022828352269329512569472381673243886695464723337192140403318627671811673100896954054222228675076561408633001825099058128417972491924924197349479531405612777510726134980450160618339594822441246163274278898300583579932829596648648512682601882020111263227066373067442364203503560029497059832152823267728351453692825362525902240034773826979698976444375663588454647631468355694743030933132723856638686521304932276907408486470129243949177956221238201305026656660569788511779888525329525567433641928513215370892658011408396999784233199251500559626803322889463730986914743922699107274645457144456458151840477409563896707752125095179407375430061079040974795335495125367656090947884715250625507443006902716065390837671712786381140057854834427322857429319978995432337928649281659778897694869903096024366765236104305992620167941425504939114605187905240925981128056291690995677207636533063099465596904938769913972008318063368238908397055395259657958178604470626147312938125007024877915100739883997882904453184047188088237835243051764890768402960031713536859704570650127258509764939799185814314407096039952688338181555931784255812713027799093008164598847714794478655248872799543703072441307782739421373455967772982174709467763906452076578757234973981150970729773809795946578553639075848417473045562698485086900199815847170397658804268041889251556729659924500042889900766407626490351575074811861928501817236535581415076935589528021135472632238163814172775752442371580326128964615054776967310894123271960299244855756652421214384714655146450909736930664732722032525564048772975271393000771787205994110114849398086049319127039098072463200220966402699214160662614087129639695067054612453901630318340687298749791690775852992244268229339314879231144185029444574078261701998729510484803150364344502742155455125835711116677157792520536526688899284707496641290535415848713948368399082046755526099336202410967978632202975843069136022627168236494487220046565452459730621782142892305173415424489324763043178393114089948843855868897079345305760213408455962584754297364926100397261528537625518974153447302816550019788129436416072129001981407693074586309734025100272735477413726128480004053574130297258883342625210793024454587343853217753246999928952767491397357907378151292141808803138054687418209634275771193035158344883192379413933939617236786245122165902991916037436650513261086570804839951110502136089623999389557109390150629902881981001699303644576159471466868851283324907018748416995990622826934043796015359887994832360474221458794021741385922062458075017188173830852070542654903082255058147639011689857881744309056731244408314532659367841685000891565857566140564688376231565595565868538973350995790531306034729319078078378018577999925196018978014099952521936921788763863442065737710399608290705615012527496468326574587533560729686346313267691974165582860890479269458118438131559667685420878235515347297365532612060960197579268078325235046948719429837386744231403910261738803916364895376297561128983733750105816729530925409681475209241302535451942230053858911191675766504999145191107804934537507868200357802540662516590545575128004557453805785246997847854938871429172572681976691884419617575626961176078996212281567822676892661090332429596920453487399286139763022751964355667019136321485160612046238171118218343490024617355189953166303164393386965385058159721536433220169059604774426124706626306401854355641805360822575601491480018650800453153554064916771969346160360420282017327800320596420045985261758271394872950800399562193393631518963572076749509971006629481231023852196817125242721077939023414020883621231920834058331290975243829352773077547542810035145112349879154139048600020988300709740910946203255459589735498644572876821994075280211753160342262741783099520744166658309233645708742225249628020808859468191324109094201393869634648001938271716578839705064131684741630029395817444599850073458178836006727356326089934470298331714046033334003547651291671013569241342285244984322829147864365014416170953033354061778165204667702600020244217271033378379523755865328966057565386520185954264326026272762025440447226971969975809990441508725284011879853857653770695681500407371490030750896914078567187365512309795609313882135344631549626495569287367118178172175410936472954438116037901750489635032797651051320121775085041976081000342043242716943702501129632653778215528705307383117495688604198625180299785658462389900157147844595741604465572749771654404841457652731899093826984056588462928564493096269360373468287307731192093289556241886419597257415090440586419060841380384090443649583223586072534786989461539696053942589725422038485470876213633817475961785950353725850068724568485006259119291844542911378924072987619754291294741096018382334079642203652865863753355827081482894650670752856521206252578099148858662461248554090459090606457199407412569560188969377375118867445543830206317367705165567474688159112332539598357616627101247613896188690175474741465448974230635296326041631621271369725924283709334347846053485149007811513510648469581302770166906497207663433556936139043769483324128905123835795702562774222248343190395877652963929246544594279429251378136660136155796870386877531192001297017632258453019246319054827129054910614451169406283419932252396845628412545419739796713147774635838259376088941793937195613563741977572204988940874046318687844384675289416165048813247716861265352141865671055286140881416121575359059589361091163185802125979463392202457518599246631753893678790671164326781734323538942306520866584559437763603331729725838937775187660580523534508067175517936946534662243627646841633774029954872845316296358832233887043285864379124748983917442612857830938222785929372300451273283024869111819813921725373832854403801061958544654498439948689827143175574977675556015251625362302433157249313646329494066881569885122057812202309655604606440331896840980753444077005275957969243755177890704762137554649748872704663574355638140646886328403050978632108804076894561554887530965978916682317280789440487480020741354993021735854014931861385297521818018778096439843951112893256633763413508374864789013165712713891333051993044719842257818068765015194244936762935733560859997416457859449451146352588145462077956013567607072568785645946522167528730081964855284687721506562987405146328819810464747489475642509138264566779065694872477363359966717462822968593650923852410882819373109728897513243348251843372637312661917728433128534789203545659974315088679721044919961486236400511772851999092958435382764768972263148584064543007469546385082262938454433310605657073829740747541946990663031129357506602921165279524526499565253773292884446276473106536785768789122668864858707993790267608327839188177188978538228541547380405514084766621054029709571834924055782722322998523709054270686499829686549172462932788004238240691711486482997135857023796358706975904961579931867583872445534741130536606803646632621982177658325587698016548881805236826941430809198589941655321153173430173611554173782183385641236891403639853054794041320975095085272087750368683012210168655089282519510414694177785586653727297733971188826811579578507383770193500951713645230367008290596085890653505338480519942937511277542873208225699752545118536931260443625422835542359792130271235628332490429206445221284252622317081921948640743339650575773045805711614441535273258040374038421590275510009969650255444868059595389689303606648520038402285085677062692345718661896783907249549371442796226330211867154866890675304849280393777805521699722623466062636391157278263289582187204129214534392621582580771676443666213190989605191085083901955526685763284264757834506772355970948428621438670872085320720901526400098932213290474741085487378531663912397183467830732495794313313257984072404653870650874055539034546741724328145432792882899600698905961642644276741921721417203259328382958766561436037253953100065864811920600495438108913875048422857789224921129788680832033674223678806578306624788906873101904357766740690581094370146009330225114878906381868216376131928008305726569557911363500491315035123305134860293858375074395963643320531819875116667285909794465671261611414075680316462252789280715156036127108737052620108200121838690473958078977846779554174612607404671976083674741932822430172543977031438859426761316708816958832403944234286864621589578825506847408474159509758092688892171614870624128250363623964974490228423157591923069064228611725312780394086703509909672199404871041140060684925818547498766939409906153823641183060692386719743656337032073272827316670007480881524194901642987085287029277632817600675209539074231329337689442869830559838442771401820513344985422552168506813417117574849731958110231057807781430273866262115044014395766067932871096096081588893624301027617878011706339384885428288235455623669619594475545915287368293124394040477886391127908529688444110323131524995839189618968229906542979289799464310360537168385077442327109561763634329977830765022593252341640837675725249284054531874895757697205369171574988829390037801114034746139689170997517953285639592949388906517986913185565969171305100071199822915181353954903653566289748236591772267061132072294437984480102041880849247394235287641725209232228817597987878264012362694476103928900090582549520821825669677883599204770172325420967489103300319530736634807109844717170449658332380464421554941386478028664359678272091156312607601616866493274662491807782777672909210670101748300267961960005294351399916712357788475768963647776053744867002437251114703674747733768555135780566167565189619921449723839123147205670538407959015762699264134930989675177392630838103289277341350049351761324038356394665637668584197063500536809362387286162011094937270332319800207404687425317452807878528681404591552118694289436399205587774032967665228623982994138825020829718565051973598670810219807373430060311973202007391027702276418596498190207078780589328516244468185804261971253399904119141948444967991207828958210229929643813680489293144915313672379275365078340470985145388793206253751221383710403963248088952694613015268034809395584923637181689725835400467667150256654711829553428574487972473061214586003643507286560729042032671032830669646217872863858596914585546576273213402943906509253836977498734187822023707086898320724249157590878740225278623099867444005541969560415392772699169954485507174648195636453375563871677355815164158662996648487823531136380429482830238614601669698220681901445474338733862341297757180686447833163250092513790937840114313284227021737406676399064281946903647128611515058379569211342481149281786926173468423210359838196928990981946613653944533695873968453336002903235323913325711217933535281730010436639806669702150386874973078629914605850799189114906726014940155915540956758584965760860143044850356510939923938303335622713996128496157257825788048391223341485954430240432846413946726253367221157222903613232353748479413016892304418482502396229159078048805729610649724739126826289359849086385622943755716123158844590921981291301576435616525257976879435330862673822003073188197176613028455619486600968244642281308761021234060606185696854356134450254415550043700372897521235003754696387953669648997126900384719089192631694432438723333726112668356929736940768072775653550269768337752076852614835259368396200752386138027009565705432212943009948746139692315934633689443822363210897288987604602106973206284785064358692236763414434631282072483256144695155473064236375998065773084977721693872381837651507379400643137161264412978775972012749378207071519646053101062998006376413863497810353001522706798795611601979198233846493522721065965387838942215715929109658947295080663252412309489350771987997795818430154551106448918956357116535950532131506719017058012401263710532868761166172811799566939986682054105951982441812274034759811789421507700123490886270896405551137047345736400168774277621029593324362186428776974577295040835894084687751078926060129262506916538037462403967174817937116120925589006883251974041037830417477033254599911603171091321851658855786842266067058765250965961562192860782911409805081734281208865249536997569301699809421614610275092243882662042978759567447005669477503674939720137345962017733536139818688796117255598585809092249063769506682307163351761186387857234519314336284442622678721021838070148401066697193587733566554723097234657065455131322149435575017185387066229145773725277833485155829426825039394085886397360512144153897414484405605886334755745629595031377172496326754179102729682570682713181109825476445030561295396628003359141183097308706653281635255277381275350319471601765969749596841866378979871568875755707667177462783619502919908659444785168891445652915671505619905445319617852155637169453007079975313282054123507224710718178147170438158778594994064961402139249510538025815504575098685443313589225800155052357826108526501805071832904172074013799824578359170739153417534880941242771176695498423414087907102604004060828820748509287201962817401145391425473588138176935760218207925593359746217399447580548669122057343368851104288394871317999405118968753858316258264350406672120217318071086158780241568167791404570860120217505717932498682509778607206958606616722799612354303407295794386451415319281252491316112313404823731070077442773631695646327678206410410834363428402476868445673109136213123236113188600148641513566579383447939880588455143422122724871662618191437208512391899926118474136763503515690028187521897720979545667657443966179814524058629709384607221930624443180797037148454332043117207301369995124919354444227816596200037736554179351706448367627479381318272184296042837641129076313018934099634647184471811406557503843105422928339901683171001918129638003025588295948184519192611069908167672141064147981455461324533197002458016960159911844723930733730748144518074574552378836255114699088672675333506418143625999154151547886505427404612038969032374244961500471716540934838794622674482980801779598996014610540728407248388060791420685995662931794000153925307618736651065950599641220061103648417023863558555060368928342176652108156053316203004081950861027541733720335355792196664218753165316040968627208214340369383905712604921569147054787398945578437154659363457639200425578858057562780975970292678223380930539511131546004717341517344824529076916526271559013513579034640325139960246583748916524827132174670838119172675804517288596255139657384939814060755962090952387112216773168399452722479460865607848754387008092975200191439216999569831283175812849482367508111466073571743760721731937396094347683680421443752324896805539643997335142842978477732463794276335457431662854564068424322074137160977097988507880512343042957779610224121467058063470512265844871061103385150922951707949818440120718118693056492593275621679922599111699754888751226380136726462022207164336203416056736884686717513367685067383696856137529147240872651927957141074009887855920594333758337567671449301364657194859704391616607618841361595660194941935842935006653214236064633365423790578703738785872842606381072627192531753350782538334900064925700346563819373163218554869006823908053939977354188060673988395371992138953555254739221821458187794200637944236584164510860515517397880511749085544129896407616392117443615101328656142078508456030956792697931218360290243608203311190361320847046759033378047950095171550988286313411591668172007130213926045064985428575258504934463225208058865919074939798688841190426047921832751201045824165906461732085091444381072519864766260468694930774496577557114650319126831467244738463617580261910010552562278737907763250499974796999497648713963087928411216476560594560769071535390344279269283754249137396815955831365975686934812611578124396587884678793002819029225682286160257857071477191633993034077990041151046788372916947199330244818191724921568858671420031077118224113724406976995043540001528712836178850829316904258649475077121674237151453750124564786735276435943714794838270705217666498456381254494948073934885442696153948929741335660440982822456799405885761497560897155356568912454945717210300921163525779386266814836922550615750794337017019737160274469916106612883306955497035658922134750575450131359545082472690058355116968351254280984058282923691065762043793187786715738246764230755398638580173537857980625886347193749745086405495240231704571205867865531455759001491555398818282808638750709689262583938814604335659843227046692982395072341973439276429546660627234829988229252634351729184343709585951180967157002894699300730540292579896838490100237636605496753077576491935114092641444034823638135748686750232333071292953590692725794812765179054440001628912809809013359735433336823919998814335029490424740498439319553427045017163625898098205425519159369519149795056503584002158835361285697198478916786825110586436704421361542518305091536385604866358833299153799727771259867391460721562999805791589902559322342677649591860839348729171867135740133950389306989151520989315104969004210160877269769117071147583137089595753433900974455641222281736776429916571030440084274225127897868188737992353126820920099151095774517540168147417009728814183939975114303406952690084951752116663606640734764468025822816877879578398223763946422509804162655165185114460155473948922549634175982209074366978148631168713858686971479823856688890507845959459201636372186397847536044676661851493504336908929277933044464774062900366909380844040758596260358449245049926612709212363540524996886568883374964359000454115695244408907023383268147334924049226957530994853155568814277829637440574774383697337485945468381329836349182613436800770843015776936386866280745061669776188394390194908628194877940076415841900687287029058013685229944065939740479801646807430970676903118720375235075333416159983896343313597863834592291545486663476524974333695474429532517900184963973037929348992781688601878428776997612563974783350273959568918137509331870696541382201355394702561198545782717783309615755173543808013186648651037855506818750277168237563268173083042027208033483746447237066721968930482647714345341695962978426609613162380823102763547716329769142800939814311209352028205293157501747940700599173822246457022943632286200953103605129639753546115366055190842022045280887608726328657912415118466693395103118853176726523666734793718437222241279405029158377448162180414577862927342089821155234997237914638911534118596096948740143763637999245966317800742853590337419326685481861647605651178423495509136972673420194049961190968751531924350386622555747037299544543270927532473763350495703756746413790581880661292938293826101819704511195752890355187794474355395762763120316454897837679989253684271596073899171019245188665885812499064990678151018988624936251905108617885000168421444550205807911034165633622125360635446941349165391571357229202049805222189568971292785718046062189893857284512931866498882792710131105195761516674527245650840603595308021189779143498231294198153558688980633869831139345241375329084769259819208797971609528000085893419293490872822503671545298471216670053775835624119007115232669447784873888497968171408684146537405600146825198795167338014632906672211430064333005394018583352257603306713132531863879523855046329520176534774113671630766581231297858321704036996792764361710869257020714966552607469265232774466542684159589372359994222258014416924507204746424200709568449921739486907943778063715643330497111955119039187845028045198875332289218975789335691491141246232459441823628524637060063523905733696104356746929753835417548906939704613614892176016968308997099346583419170364634487410323199254575766057030265385456820192002075136203805530608300457584508716136580054431052028946126074501312793528328260197260503165150278342860178416927919556179751721600664147444546501022830216841130730328426967716302556334438813737464963822171316354359899788235014187287966373717587838618718566068328872929510790247422219594365519060941873128007535538722269827639472757135539340823528287982229017945082366728571750889689616684944160004989581766870532143162610026470543409114092697880193749132560312527341765810311393201291194437047282563160678941115071432058748199321848594166867656158705437502278467917482112327479665555637417165895232308437683719572413942155861579002881240259108229584784882881458175384490436983841330115877448551991593938989244040922719889995161359360326044486495603225741636077534159984238464004843058851605361028250974758968416090094979937841819393709666367540567613069475703111965959997355553150000811875180277372659173321027009537058098183620970175853679742013111793918659735126141308633631076913293122592707768992956083957322268253729512921696496780058666193516844914166918672354088870993641571320663935280203412028180651303329588919215662985018801582075265489799149271868804811297962427168743111181302455396118127742537829495627317078353889270362719040483011857730813877686159683589322008828381355900560620216384907799788002559116501221522289660724710096249174809220271754531995884846613778846028926887807682222296532462594994946902834672425634161637871567102390146193816392772600042356231628753912790825757887876353118085865032192885575987403097748043197265847004186447523008004200306601093349863295412526575180547556497935567591569060412058946663680322036372866843824163143794953291042483051553943159467860083206314374324302213169041389087125720626353665276532179334728299937122141154513787998817900446195792331720563013148316352999451143211018064238298775682323395243929464366289718082662471313774710953989999326446828323373663791654614746508186449859178756673192254404246623004085992655971752433945394626323012391588125790462660907776375162101121298332160496991243199498320567124799775221367539691121445137888548637783334969324537226363871192400332356239115753964582496083764615654956349827347774896303267915015866311850315261728557242688827902504251782200862068307773831484620630763066978884609866816958792047345823601450542824991149663559732626556914910113604670378898652091496482042159034081364513325755300141143087863989890733588998313488524854612737623821995939873958615057085902931275278717842809751737414083878352162779684832824678477776842596038715208166276322127508906797300149172868111270393186637658337864399797446678341456993007928804569896997217057066918377621162392177629411033235265292291538919298421225978880401171979038848610318023492849310485356076892411076949897575720806740269440926194611997071401485017972929588008338805609921958118948771414585508804857267095492197067278862999561224544519413190594725351955063568227538808710500522493829073815593913566164125678878562363186837599055542040561680019315476442022337013346992112035981897547255332478494742148980434575143127917125321137443204680510463957190082040940505959255354839285010772593326673812109846977650324635738790301344658456649377056842847086447723546744368003640168684845011865590623040656162279208599458182436821281735850079233782135086884425619757758873437844666274149053982358879139888786351386668638996110827502646942053618899379777787639689346406512568557295014834756620969767407221679321014102224878095891699726176919261741116442767503123545458640622971399148478867313253129349905971480921944817687561891009868252907917259955763443511449195958064113913071222232471555438412241708112546232822841342780236508813138759775705024543337428230242761501638924022824714164911498606550974365715843470370222565706269658044660843146107960437834686147651375832857926705293947037236651518209997246806593245258303261894725738446668765109893819295323398993256121120941394162552758882423360376088141843843408153768120842415961232125584694119769616094765444344103595464433020631110502530643938540100605535510613955567695404425859021909038685912151469654458614715250663068527171756664378928634907068994501455152580804451134262553980990996914136047489271122528761244174374455812089949683845755573594567990331007848586753553234770736249488782579870322529762708907255552260452808624757222392245385789105143050553394752709483818153796027093803709558403162068281480445358207049384600872825585598647325730821603700858953501739217560539035606110085677873841729062393674072996110161778388755132261862753151042447894842874584596089201807355833655128409229093580077987105673641448066691082346160260196748251703077743205591314823666751222693591088417931973793792507080341583641295037951487931334826394080147617840480242549508070004369815454148677620480719354050147046058152834400018148534612359228734846097693567419317295076058302174284043675256229563890349988519068751248005746853745071760646872714471585372468064859842951794775647213212787957976188681388768799716552399938151217202556855030689959036313592792298116061704972840226583806925247645944018027999890500593787447534494834085582505555403934226012082867949697177036325140885210206428719123703734674037693965577389495182411831262028377515857174444171875563127316749207694394712655259600674079310423358382213083476072542598572041760861225403681061185553718439646201624237525228137320620060498801764065016207231711531969859428211416634460936668451283708919497980750819995992586458338099013517889266302120841586543095135310360877390284010051860535585004358928548466276230704423706107270148960293531084804359158267074767078706452221214189094057369938800921345726072856453970990189618298194412541997279610068824656945502917513621671257983667870480634678808497627821305752398121884347851580806236150157908166247517881712969443838154417389677318890911455602938584663009842641401761442222407173878673406727812400839748049325903689901767628290117794572077605780542188233832184117393623442482230157833555365854446985960544790266078582324120792245055375380203238378374409270057513238698675476684792788664311929411212853326712277279984181224699032985363455468180152206499334520665137434169527162885851235255214566256330639243740647359508550926016283063644032384527633630119096597856070375951222727744337382803275514806524604969609252351381106135910335599786521087768278393768593050213169722221084832236267003803773638002705671463938721218085902058457368356028157333981918632216081890182514389607349763494376996306579072593787718707265816224351366842468757799217768922098111129610790148355813482521628873475986018330244844177768663808802957001666733414094085122885782565654664778489691001103057100372681227853487718514717085153748705992479672234701574708390283298915158326620461493428544281936827334947856109708988885746512638096433189521033763808133591902942295475213500877176530690491159624480566375792195583041909839948285980361469305568679408973019278136502669075293613211401144600682967228839629707059793578734052331555546542707893415111801497597445155065054833575904328221452423069106992904466973228361735893128021924766075169576919731555376706793985156264208116565369192742538412220295302903471050324982676560157307541427226269100876419917985046493022126990896544785733867011135956370053103712050765908883941469573359826832453125613013296758194908769621734702717111845565711088487189917571072396914783529814681440125503433759810686769439184078680714235409435497428844169304418402941076824397451220566328194017360264009214939253881511379395633702198288543066616009961758563855031677646051422893747786456015646505268543038027636862669127209447962618078102504764736055800536731237724328070363301124760922666090193677882686990364698699990639690320266830763863388642951849801572366700843089154163146738305392114899118117650356917883633099093255545133177298538718144436687195784151079496669627759149309170552274152796754834921041135608793656767358030701380242995642186826414740656180357020166624624527538237972927391725068954543038091061960787832407805504512696412535645718008763149905711496156166062441683285347449985454023574651254175568518708857055472207980614042871068509468878812871750019182360634094536239013773297565231382954055781119125348766095701308355804382094908090028663243120588532353399573742089969117218416957236670553364919478311726248279087040647796666208528087596380100576567846353746298949512840742456601350632819288862256367654249349802788867667458363106687359490698452881702773914654966370373286899914975964706235158876531026392756841701321122765547761925747481611217707500208191147463449092673905596880346910298453380748514219532660567069136192476224780052444300711147860557563839594564757619200554697445419484364716787094308059857551212148620832600966770799075519546954761052324246639856755055262528989993592164486137397862209642283012839488564449219840252314305064338977886964890485311039805004906446794163780316354742839283331174445918127537912230525761815091731336022922564833897299913182528951227981252917149417911917005016224621191889489682556340277404615174376450606993708772986119379638100574638827026785142289995114434117221387205554875599140060928506285690712662292671099819987568717519101623131328815918399496485207724241226576701492763791802204456564091825419257583858287526475722489725523775735446545149565965596075514095619958055877296242618088321065822004188201122326302543213030497399379343595117818844800912345995214411714964721575310196209523295567840987501447624427463484206871860530860472708959115876784291579004535931544410889314632099454452463374926458461056946397501441582147255121367395375346666926456956327805988852891930209851331173816861383788143536265398396511674657815236940416888597484299304555649302398553796170243825763543008217259539121497895625561787562277307120894446060914549627437985025913895048077911784391538787286338337761394953766349661489182775215310354982927455588415954827396353723231559744906493284213668223568581461674467660871251922365315386330968981790652978302333290777017845843847783667718850914013570905163164295975054866815653014649814745340083496453352210688267969951675682959177962061475563014747356556082375434464021777082163035168184325405120626428373113844218172259259602153324467093829537127774502259604971774803120933174711457031804834397593512817025918376272724958755763848951229245943759009869621962690441342669351770022329856872412401348662088607776397505640273238625749029750219600728897685117702698459660209531791367427703910179140131608096189308496141366004333768465040880090779816351666983371260887546357766636539726765889874035701761149660748239780682400465810323486802818987386978573287169396785847902567451199225653490091894899651996678894588663388082491037675428754719400518136105167991390850903690529854416978530695119121824687380688096520906481101327029447907800792736464301036764366251560366458546482968137906738091233652566593864833522121138297597094611407792858890807437754660798768229319006499694001902283208183196201231260363966966766998520228951897424368411305555098426450632926393311397994719547806848963364910025616570818398677333847286914035354544785088991820275877161459591274511859351231899932288296896081426038449019991823930730388580924977563107067564955660792854659394647116338084181093149442542585328040232157171494480273619641299377235243167105001455136075739361468854023417813712816106345944883603068874069490908594450041453076905076038297893302998501210159915292123113165320508987326611213017232239293176114802827536607727635651462710220672448783180796183441321500105371330698548053035051511818888732123318024282471609182849327119922220094746319126459177622796983529185584352206929720181146063933416640144053614778537780559165447881471503877983333204196108755733748468658283375103887099983570595643648708470020094662794547874609232554584288979812744375791637903042407371179322244081614947094701976744639150180262931274960590426208525545254240362377842005503087731620781889209131316996247181870543439211703438955910226714427826420554164107252094365042549539602698006979741873723941499896607523873180001511823323645301571061205364728539130166928707324148907548314707355922967966169290686639723024884070358737603367340249399040461798149616584995309008425287610438416965355862393268075112108940417875909102018556931068602427098190601818533096411115170732118133270910715452645709437316278299511142521563943033605121834463624687378192420678931811798714815410231697807482093034127696687124524712315748398403194553667611727928594750021786563581544577073592804734830847455254941737943527590398352834539668720866790380512374644558320138812478502836247265175601052327916121493491906851512156265233780592823270569409471736040133877908998113056226040599874127556523080593976697990037770477778160680260936581632686365069192442688111512030574768147008450962288788171375585711207140816449929997518076925539712802603330317490458436119779104603056405147638526945682650156776408041522389878486523940087660701427704617342726639153842122383881966497171204375793576047222707173422898413432734879461867092448482938302306534028456462566725528702077169169863973598575861987756713214058712870668854408941126542460115283971934269779010426086248555941160800660932171636228870692995276680693066287495519199344516966904330901350300369621917517324940290380676619432551611061648401095779755255170685644537874869555742318684604894356740585283029540852978959590449142537932615342416661116101463723982259500862262337633774421972337557926969202309446686896841646800117610882321075921916187273925468400719519262320491376047955504734110585166608852109694144855062902193830620113053021895673208963970113135374698279451450074545452347997981945101454708430103904156436633152580690601031126159659813622905717008939473204173753168942702945530011894888105081971100884235833745704478441262312979032240432543671273788459410976243963442830257643810520153290913891375071341351465232785706072078474979246626539196928481452071191031148166974585552230457858079776104180323603264469257385824534421970378866997845506234410996374358049707289257504177777893207268128904800182651757145843088874375442446993538012626143643786331615637595757450336179004764300266156523703896808797949192403483311824611610688831900580360314022350372080178912543785740998035329823022299772159819666001735069821218672315729243760989239161655820105345274985519888830949346923998334893852064444609194539240878881412100753356043713617094722867094859208535328627374636241108898776906281827735496656059654605389892191410651922452977033805826098974246558272503901042617519055319500942681129148447803421916845133161377454853502245245838752555982395738181748578538604105877260548542684255548185671624085842413469332688671823406306849927651956026304130366819932627506957088363984817696910658638861281056689410244070112395338300567282317482352437108252148603616884658862203567030170472034613146579572066954302671109333102217011106457745577697683708191914478706625877500677898671054551634497212825377342401950260709908582306959096926381564922176729705255343032404988360102661928024421301778622593616353745728570803661095392124222351277992834709052572239140042510121894289136398960870556182855316039769605342508498659910704339615739136755271209330689531814250786164724922331269797572822769411259895711915707133588519618941597693777633501680498782882631846008821546354989925872103530106754245900025098335554769556981992302965015140428406268551354787834241984698969781104741264893696383394529471133657819099320221912806376699503255619216156823868308670707297176476160491594281869626645466461308228618815185668973558027176365404308034553464570598881400576773539178123479361992861680856511229527478858581936894928692987732975989320650270857022016099495274147522008716930609357830553126312254161311635224097596070243735554753203134796867602864422660525794296528129815315593911430562936091654936261954779266904542351263950657304819551340479771196826410809841101517277109816187846188718229914571916159450830823927269535313038408547846006895127910085109902061575950182633432836221327676510879108917655210819341962071585634545867565751488065726893122321280781070046273459126218338441020418576534294420076644204632847895546381449036679961315918598635906401257751878324486451501476793003715245961854942140323130586923779653410445579778093878189624917855669829088565382195422266946156311750344817760991338337862934928588560938051588949015834860118203406352000772613628939793245117800087500617252649913062043313227938150690172571482735381393826022881357179338670464716697026953024689902191916547654454787073457213941928987846236015492701480618381125370184317704697589500847377426705827514306755353470940782963797941903017406201132961913820499055741312733268269055833285956670874263601838394650873026791666499597251615412767937468734790198131855881436772832899679883293119809947126211460700702287918980567040555219441269611269172850119602921297058505065748507913036911982036344831165022089844728363398701788093314471794537351639704232982931017218665158505857928031508321986972020718593751873591851776085757076461321982144003345110143462078605705099331244875009004681787938479895634894643652576400529936732078468108840039632650814340174661772906585722601392761094564485317084583737947171499801776571430857846762123231751571354002605019438468927645472977767497726310388285174749171125147809001058341661490018632215450056882101164442129833706687937910469183413663807198438179984828966748921146224146603618350921852718728843727403091858142910412680012158394934921378768666223459341038143850327916020431211127029213379917011299475874515590252096271744420254416588450488747877078879174224935323628901811949434031396782489514310591433437446992823445756299886184796878689650731424340480219244680749093913572569982829828698650408993203483484605891691611272841137856906581070505853587322010108594910716514828140209381958953022658472158456622741368895528746681270326457564243446543583553828501133394065302209412893281370695733984683698985448181712996360216827770533293312571212954351835672825388548571575428098400523159958072843304770565532903884992457705321167487781666645704680784041973208010608796804097748482813578764338069953054987336942512870185188626866246591416200879582724560579118162332596492331753794883673496662820154586650783462972892486194024183602380435197278188973545820337538998033810395802527637270424048291548513835559927335772600449543744569099075080543432414733379511101114574413173527664190948068588721002845281347006394936083332309291454719396683985580401991871137845088753303574034627324146713368494934577306616349797204007006481640849407978833370798103767655681993661356021261965714760401507732400036296321346356106123612505667368093015149376382216546822948479076937839055644703134191764150382452309753431346972683170033223015264884472866292227067741446087470294650658515090865762390743125994113416540054345464768649207370648332931255175573832021540017522842825949849103662456207867055546167950402898692599430478271888784427126398532751193016441439406788127780715188084057300580520557809353625583300905793117345345109098846395709651781457197184333686841910653984937152869968126008125291344052278363897672725693096539642638113913087503893098579362576482059799635493963160508349690290949432749785507687974402988283975612759425999138484901815301393132474537714404066978070961482727213649527923295455229845048342853372949546627899488030401519901023914135826248105152331343220627325021708296020058694887339065735542171525013209638217377994948747014311979430240299307133102021854437145444078983564029508554424063240954508888545977486729068542718047610709851788436439471697969471015574832572412580411098963423307640591125134716647036340747716253810610938349306722704518752276055430112900574479711286186087878932354365552974357357579240019531220189477752625582974861892216417691567715852449359954723550199689670496125318232220157197716259501267229793333526432716963678257224202994705415808681889969116265693554324680927664598970685581569877670532030861699269967235847940533189159463527874154594051980610529830371869327753056377356474056845503082608283488390792872530857320282933275206438502386873597935720123858689182334792928741958284041020437582197631797451139563555232078179173408433775855521428536437377113329428361286177744118554982221404653735605859832478224277645933458554360998478248941617479930458846436296856332132770596786537211541724884242013629008682187126893202322209141582647774339906749608117810957154358945941411354791587524302198694494582455176332728240158045862373554138661857602061739537161935114880266587405150738662296005272256600189431257982242866391884199084972306897816361564333805739952045753970275610018043336155869063481585438459008103158483246506068334306043398971226589731702796217241292611675417804584776368156123731273036577009246174699092372124887363731851041189531936088215834821040807874217640675894074987157696809084298904328061285596402201526697565795108300827413254986843983587846676690905896300652812046972606261125250731194533759794094220953807871317554268645449107580282486063452927297182975240180632686402324136280570753839205738892817835013563016034784313050681942810233866244832884055912712546541794608965465312441793250090621278925964716412784637528241129975027621498481716401980925490003660690561826880222924719550123718928595183314965872936574910064538295503938237160957703970905879150426772514673652817482418952151997840025097468841059906105969403416097003130264280620140123371666117218854851898377335565851162518739247744338012333228030004849094456374151312358919538509672293532319362765294762218178629039433988606547395313329581291397583457653363366846807487083167393443581405911519956056628252204352811020029104293460864706322328907190971583089374585577303582587140625745216609404253247106202401664420462066326069311531528933174173265271484379515969772229020265194890315524732923782816884974656292586629053918647051822620488503655323867033121392326428959713794429592863513390582928317271739581747128269147132415690236967594728896789086745153981040412273361502149989097282573731157022841330105697166892201236494193230894643105802197214634212474712367004984558990120643542618010664303816878098059866525466114343426900019293302897639429488691781510545417000395397492308978623556024092970690333688522337154041682859315522579970156314498684821267370970911641311435306898753758457848480787934232905427408075461722891280391091932807506394023146188697891240630619451681289855212739839794802195712114186806977700754608836981864200850628815037103314924855083545657839010097388990260847610548879904774105346102673032344663896201860855840056885605675243135782720238715294727649699418165520697046743033503670888630593134405800062758426264101570817724446317858534814615377763808950324170957201903764347686298573383508081415916244554185981664269231550220183657726273363167857525717664039691271477990105442687883662904574223263221702248487757524805171436622746917796677272478629409832571746010072623536448336933808162189531595572684281072620609659210251038687426782478298278341450491439618503111361954517136938488067908477016043264285271495360580825418458184067110317292282855517547823195194340945475909179001390871714747829420590353494506118233525488663412493727765734718877994012092977004494639997850953915074997354478344276270746265168553816970609951039998176837840194166039375754720309331958018643257214059908271910067648251253846207049928014248480695192524465727892622847303154624239444440287936589454042365487368588577277244153455695556129855902420322364565039356271139125270667767914795578170398352367824872757998330724116487277832252672357761191395284725286745042103805991996630839276818149335003300090938125859294164745600640213989699638905666021291563406594139812837750963446339486036030027951233845882847313914391187910990893793605927776562515143660851434680772637048210881701894268689861489228020074708770424859576477013311012654333740307072893947751205529970193756193092905184764838077396476772004695321924257055450156580564291514926392716627198421883724987517354995840291868437908974111677467377411522885747006193314652780914883321281534159000834416261397219055196389080092277376878318897498354816485138146818339960458862431343909920331520190739359788357485752568115768977537831582127119176006973184603163344193034115614327554738249770772874491904122766947181077246137139969656428594916707201846660828354804523593268657665862813167383284701711770015617498283492602558433357294664089916535430071560378767936535109914852607942164720334854559960260792653365608866923241047878795210482322128586149417056223162861631647181597017483692021765171257002097527358185420465211811613622186954013357690283357118382374249703249693852093898730269438199522550288265650092875611742695242547516871988171641973754440230817422385843848464778714628214884213345145121950915448773464201918541187839509059421974522019772203279334587153356141932285183692247362164944601117647470068859697447100340631892198876874512940561487968712619563498274943404201546099773208519556374371950184541612341183692034857195780065749078486139389992678968695222114804100933538747448246551704841402312003631194544208089813920000774638965558702038101809084800373686446201828215642110331558073229361194013889205084018345122321222104242155351478503181489441640675266243314330436125039471250614071674242024668073498996084054185372859164382586308803614617871884771655014201083893657761898766695400548668097418383210896226304306978247733483511742334999295257766540983259921263058613205057293620270803071797037349283023568989930488118899237874422685721268904314882396969104638307347435407813616959307697232362767073346223652961817970360965908656271539397806996724582057059936099657427723133304075104035639810483908111675411410853835232465136808383814414554316834069559482084426254277343789041235958897320788896665030239830710331106663193567940568870065668400472219206185276386764353929909385107694173456934701462857916368719510010752742614297098766326492059001960798049108598835005004184519106668142039789741193662092545518385641243688858398114484335451256243078388800989030278320705145743564701312497722602455095374137579237871059473179983535026845706764340949445978122995197167894549891105212715203898008224048267480359005173566114214419182553285114729683520228219413864327942903883285829218613622109217714738529997492144355036530569516034288798517842044213483316035369078922102407772719731499139604968892056142961379011889601789236108680721479532365830006574724566254648644785814898204788015959350625764400539891092881242722976657356315394853478673223568671891678487427949564952552905677253203481339741421028678414982791605245858713021826124354044688302147899609609248406220622110849055461061998364079827876176731744396456007410400716761689239430320844243125523288798456771751699128070191956207819686784004287458051549178788290309511768556053069151101915988753032303413002191577389430530054460156695537150331392055591238190623401057990037969185300224122083816255438274600727742169557929712274509144302823487282226446256675283461187257546690927225438291088875732347066334774072764684113957130457293355913325266977452193253298720986276927576948374851126925395292800116873232310797641074489114281801845236211552153105933211476263639502078375889818939004126157677156919379826904621604166895504560670195902722660718855234954042665366671405934704058224959496475190308513966405080474725410521394317558306526760322600313237305566457766168799226719513920706212723420509295736827477856567916221032968426909200915598253949406422592250830146781045620719035744427249153877475671249818332592892715493353076086586582450782890196231003084080198541039541627308163208291441018684083957184734398477441979878123567399697953521774811519139084375007888871432044554899549698331688775460976654207801167872492010037632641394040325609231124705896375677366855824214374373924934345967790027534440429808058372067652700613557415394564300735294824155275457841702960467452137549245273291385931628680629197734241683788418185257863291606634770913943772304460886850290999698288458961305270759476267401762412751304215390871232895908116467499493223393050083813870205440603742260466781693184975154565520903164332085057189295273013744220553716505582591026525683497530929069454000952632421369627183855249081523008454491712287754060633432096034533544916973595599093923063797967893073978928014290246407948375486051845897895947406028208937492378858857328870881449896412051521401166856940571042954424166649175020800320044089642219773333688404479048840391224094800905858311299554322676432681335948554896733995973889004028947197639958408577493690699681268345859987091021187400113485526336411406885102945901033107770576492745048525620325641587928505700942839392349098317648656215127842823210671012952884095387148440047416632567961642045505707571383413442038591178673762158907641018697447921232753269196607780206584727214354796870919387508505461755111761635168655534799740409007717923700377020163971871670641970463440052280022134701196474127871732215030427434303688531570701154282817652836611320948689965617016329455183300530025820155001426582132592884663405040924279960262660073932290131411139155232135202643538789147685881390695879487883141801989058608963215872524376973927816997715895004444933385649905899183926308389828005416586850613888510649255201055126161935800707819711530839021546177201030536458065628865638031191766202212285654632311566456139502297273685119398047926129848580103215535584643039145878881806014016870390266985392590479255748747459319668146973643637812314911061356636925761671206308829692818934128742636006790367261787316473970677217550751514988693554463340598357600930023842126972083870891455563012059044627376705959364933582272470150735214162427788869658132084756025301103757915302495433056483574389911184315821822541516810330748532094645460438116447475873190446444362001301217292972342996508672612537566682669206876916738785075527312316256617119205695076520013584826026904417485966292976174365475029535619559071397471869294863100274438705052445782253465469619701758343944521349485203872835691338697610839438292797300926462511587281372487997239075072929597906210259645194835398807401359639638665451683330721453930256117317735235267647627310357852112832192772372086793937169806579915910641421047598994801857580780397537987747912829262504710698751335193761863835561075357624111754601557484465267712319252935189542681112238649886227364906927003881608918550941205237256193659879430906592782165376507256735495845935126585415199264875835199792754886907240341390372681197208286201313238704576003977927801620204074576409668775948190001740050748698957266184500703312300544304819802927283215577878469320741938902111499733536361757490371934673455172473487190025339376436525616093802291463145640233311532410572032505542994100872606864074303659218373876016791697840667836719730859600980436174883115469832366021786867435691449127121118616405199160512396210322293197957302778688051588975461015563722769585645947753615349285575191912913931400954993832583027846235061951374467016388690894694925153756266345562179646278226690137060048808229097108268364781799745936382132858382348999909048229279902933685477263521180896726486829203352272770580218272634374226265955748571327122576776309872498338921704886722278946513396261750610318832886320656400878271590993577427183962518841723541367698913281901162202242720025273425996724243752175286724805738801994049882481803509235160777767353056416874306079986320625429226689165826093427188409652196510329384315579152387837848873162571749351446811132586672510772274005467889412401839939443959244281933463238915122418630922504036940307330765440717386158411033016051424063168824610054278906258785543253152715353542143587667560888994622271662353439108490989224005490816222801485394061029854768712324651473817769855154483356790144875624043603063369797472833033765852987859154553412953800533175448125318318265682974453658554128113713415585797062881393481670112865816734005947921751468415640626966723292826487436070475942255005378807876532705376410835928145803220710319381248997182011815962556623526247005311228980025857630258211611951224276797425821869572325595384643548423839196512250109612637233494940167333308975642700758676648941691988894314375010901192740223477905418092048053579348880842510770856418457299239366224411066107125871519797539456402975091698481331549980571385665899076851354954173968517298679823932571570994802305739050581300372724339641682159856282558227203103752584502431159235882300505777778000021223664180834636764812590820741583425172839309951131067946607242058862632840539616251189050397905405156359802702226886681922264247701855079502016276461009611003933870181072745672626917793847800136320960406358292250746775970196754357402071586335612187846778665153600860730143069483154853339000253934992205724212871095182544529015033129690639666032979549597732131604928111857192279037231210080254008280448752173698618105947778460061620244145259829827440030297625245571306771216013373327621309392737714252906876152258192247607472486969902922676164075704381249225655442047922859142548691437013796080054990427172344113586405433389614932973281078208991257857446006416493780581453530065787850742522471580374919174953433950120871012130458654962830350200948215001063544897015552358225079449392375171288079096497381246299056066144181473095167864148003933091228429244710244968700226214676058797027877775454751233880901142017752973327954335742892994503935300754913386853640585340142223787548718998285618178463530682398071945552411430860241342087803603598040738926352605384170912386839609052161824359815583701099009484328608906369905765493445873979547845897461788856440939465966555756724031741473422627500912290183640786322216763085364801709340705568340789833645484110376132819252319290066206483375417616929394546325955427641417078611989583415483159742590424798234499835364736269874432172882095954632995435591022402153471968064522413184569351803839960212789256355466964748534149897584915998187727781654455337235781706649969236523463239085726905445323819693301683752686643351981744972240795169825773571824078079063617614273007834530512533828167595334082283300170028877834399750717133733281164828889206900903562023828406828719932397926165773547344106836647550632391852966280256121384598783419377958979234605578432212401437443552185523710300547639510249685786257114739906274510477581603800969400104616340767588171602543825632802720307318943958625599268683784467926072564428189545175830972682255419735360855430181091452660206461625533700982357859202311544932664960914005794241302851744508911047195126822472844099226148779558994201093588511920229345629600660606577049153467104984408207707817116831601839861228221515994952688429614932092016344487393710914965026345079291731252029583259684825959069489382457591875132001324888132158458037141539440205692941982527921080824602123608422129435833838230866208756642843588216183299285272613776018858247864542920047601363830844573328478481394810845489129466405580915362106433804315726348384271155612786509807782196343163805023242290176339700056533278080071368203865404737525489780011929726619689016614201108076614138374573083149946157277422182780925536221090033273299990610276301032402080959237786737895862147362667789574921973279879787537651689263268720688883004154703964915614056786672474596299277102753693674596492411513700281733789898930220767221473989389877291383077953479027130853675704867780029375515975864877566649089008140883747790665320276264970894098062107692748835813134348025686350204741793854665011140331351933603626965150145807519990634886894381067764381428125413749669822714877682360560909984960126731049497147396628322756827212845988300785256676138359159315970410905147774070352615527506452059864180715568222116809080892803995797718033116731221604238055038016350221125098154263547950445613262018594296533376917288178655198954843519321659092850594453859223101865247830532869222897680554017385640559233658699896577605995595748989552017251541826041181849838599023704138878859188733435881319294453888417662192144657907517861382229726717996546816644392097563440404597448899925216354826838761714741294596458186375084990061560192209371513976524300090703232089856918759332614847512590106530833723995199809916707421478438560018176245324409505620088662440783553705270186968203734532651040477411057167778867764016265971508309602278862641870446839293873941414769953540889166136844195253464926758264755496622152496010159212190160053932832439291993870799281223013945611148177244942878315734356940226880658746448864480470386708875924575321669271700665452477532554972689459726919402410775168859718592180732822056912136030059849510548341092356789456923170373913009675315388965321526253818843219374849722344742189411753568099107394554409740863478477997090340476238952416456955337051487241445513185861871734524433602959784494293874724137383357102544156780210301479485950826424294364991922314742466088758490456118285377691333513728050205910835332553349344613546830582262388105444961017277096043985810269816926095477093290372455809792425967594661180585906208998548261325159976803495243849306618216968850473405824201944612122934250213860591782944058982298076783852586478802298914880211344512240338747595926773772783975015417513133791900880771752261644055056454256979847161774227093583258044570541692159417723212552035670983334145787214866617153093863544299623952639565318754657880848671957562572628063323928337405012064939832756611347861692372231689675571534664819889492547074265385492117212755691999461566211805435348101168186313336244369147951537094728684756008406984382598706880427248300555307332118980923237709440425713272436386691864042939274679628706057717215540505514953681149843027188386992686279846342237152066254169753235990764249162565956758019126802592253420456341882881549087915246205248017156800306023066701164911191021349179428508521514898309562845696619488068886707623841288654164077853593034258586785981728739177450711750600680244998827035447737563153586761766333869910907540484473121403030246274494356360191655403159076861551309897293187799279555764435618081977126992308118144897191264225801016825337603332518381130928648776068538058106767491656788320842932843753643969965480735740963935580536434167951385175725864243491668220888861651868135147029281214141643780547492017924515817531008334408124012733749687595647408563550543682387124698949308193349504737962020544746484811273240637693367399701617553684426076799115168441517906411713873308026560348873007091807882857431610300772524738675472630383222567355447949757812820967872903964294823448555502749739730353739293257745775500365719337871882598889011885799179612596352987474394841505346851569699140945724076840780572475808758378128028948961064517480545259205361470235242253517826742067088176165243296800436990225213637435614430905514016080133440703651052364819676336625193253178054923336498691938703241981256160492637464168562458537020095944593356377593088710904208650343462290581548300108001450595911921988882410941423470322952517751542634663666443068382062511686142665529295583239740967250946140427096783219330555663398919741949891290734461802738112605038775640950286420763718249445817492920014648205041979567740218199663130891017852815239569901122040152185411947373774204787833737671797397790578322443284898713295413616975499592586027805423774097329236449902086748433192473972485117663837750285588546520049225408306413085480566358977013563317241279873551503059750144835721356558827209444658516930483253606726314915491440055929207228484115025996000992340194300462218150801302623952729623273962832963786438734435822261866154830233116326827867978302037206767405277514750291920361371118076054622198955889614418389744643425927708051675315046304630129629033280682211463192584342202780960879030784514083929502950274264448702378617009805103411182030817585492111491161542037697205284891872158037606785871807683034589689195699587276645015059891990863030142700401523621603818589959317515869204654271219884762243940212424882410380968781964290662577978128768834984249449959659688256642315600848845546021998008836092645578780192833607691385626265797118220078215645983715272081159878724289386016715186617933519720808469515188473252540570262177061151431130719990840990432185443530457273485273244896941260530421426551515854351896385296636106029403618889197041940312386591658373165825131211758647359432953788415678237120018629203997967629267718532234627705381506170496108468732399128008763717442304913576304832418029775752346782048727197061960590238024728535532272990695436799474111364507832513941209507091145098490364568559124391107027374870284812975189427662385868183899269019077956924571382173241739771401671332046464502791275221312863178656002189508083638797859223898509526088431864057166173921867842817715238426251530219053729759882101162480901164245806137032132150288192223707692669787207013867513929813783802279947901329029744601086559495735104371959795083272009775014003647135017422151025994575338733093516230437652545028820547060850026489690617733250098292877684859843273330391375826504166632244689052382726931703447066968909201002927912265072327332330497402808533619094926029208989294122981694104743857360802670202896374289395243789393716922712744882350498693182416956522593183716277177054367265705888448379935667013230952824380553534891569988554352938072693092017897652798189732358880202269001944115709527654076263133375338012156875328870838763663083991039597633516150795443785713194786302868936078150463241045777267708823563529620180167456210983681279289279873529831715669892644570194162087461127490137377542359959042602734946876943829070512830704637388799898170525206215422887672314088187822854281808482724286808342867770767183218799839564326529504525664342016827169437271853022584088009889845064211316906610745804622594396982196703656640130565554152348184117883511356777735993107568927853738886241650761558661519773525596404044347435386931130255816054195778661913167762816624823603253465811818942989917768705967809223264243768411933477418392149309406551247469224912829780134791906337318520147755584138487604100320215988732477436790984110715793943395439211032721317078825645972868596402452020781729867651298675874844235822409108640643736858701621200677525835690692815619785184382720353838546501402179759802566232109112503788060633470796963764157608897770977602356099633996277769848451940678438556450922915050383132877399357698212621098062577388715937212423566587151639565729505819468177099552007375640560404445980269461570796691202177250598219921135332253349321349292855920841583948706659943147755822213021165158612668191381659570059943035468994564707006861813694178219106485709758135159427789827970683347930034832307646675384437337727593307975794067226088483559527591342354044720650608583677275735693921671365449780798232988736690948994172168683971349230136413127862625903378851062753842900596857840920119227607698303876998248220044757165382513419527456199855715953486768525843576875986235948360521707265655208086177669600622243719720968124222162079854944757677242712869727073070415259380654137322569803032581600363531095673705270846419421373731923107128702206134307655211248043149808079322384620258692709736457402258624443461980660892359799024563925044047241451393099725987218503203014089334092038145727731861398020596282040650056018025847502704585738217872671478324973018832501380072124425288611617590709645766417539449444521244790508366669070019650584683152474869262797731645367074974515641470402673053560792727462981599599856333078124042427466648326750571442527357154401729423328721736611677974767790816473550769610109837247540389663744089420473056752780525643312385346688176475380451602894840232737069244598077199620617993251718041020569285821719239418549578349492231278321245292313518730376783246191700516849098734567658000304221245170671861776811193031432465008941241148292149613212680523364072134668991676677128159661630130939520913621424164253056112133433803731548259693984197586721887086988043712329071954246460640665115554072565189949834847566834434579311181085248874056941131322861242247887754229793792591463375224563225439652580977059939898685903414658873774044296774072690647012390362093115304961418928398500349072906330295097404991631038976286312933238516588853643789569748904372366813952372289699958823099695650265120796519534474886870678427083787031901301813048367292330531014349998774269550225845280280171206770069606604966963483904481110806085874380430422606957384208427578847425591334749054787997053215221728930774654992995917801867276369277712233026506638019911573429118669663002994131125249068103150345041738713810982842351947207300745287832279456007452981862588308289188740188872882670018897777031361370119625443403165675214498217579084133208563188784788190715268235283892071506886021950772503853711981829351791197653830282422766823772054453332585170735306542033884630455195975017368403489387345896562715803388028296843959519251203797126751628916608655519411680635866463039229382695896963685182747456844821147325521748395364084811632988340711698964922246929676655807327498774313508741531663863277842122333934000304735549539394866551777826870555493414532751668458596562856005509083756973368796482874457656238178151665072587032313721868916397794937922446692265790580319139567155628187380342756805165371960704953767940582577644467802173512418133667146052823118546847958163430754414511277068158739588870745566512493238535081630495697212827354443817077576326345751327086942763430457384901165425758004998117523717983558498894652992118220119986255913760046402938816281213911817186960582847747511286047451444548586631539977055353829529515434686807061118824109930845737518625152804097066014371683081986014220700308673031234237722411507858516781255410026675532613413670556434991329365173798597058521126340486617730219583041086493929357678569406713132328109031326663016388237057328255466580694521472907099376112819201606302644870024760624587171950821970573947499156822333835730442524701936932200321418151596489890013716235885025093490377812813417750986389824271619730079509338439592816998224241476239287067316067991976201881045070680705838790631382571289105033390692166272093837278671069521304273411772032769156371404086003520573853457357084285486103402081384094104565905423208095727214458085386835662353209283798561221228330624405933595590578287505903421142727367436101141318093222651496476886386624468435354677755455314853607569756185017047471797469464628943791391316282960649512319277769243857830041318431644513476565542901023505724130565887090181153639854773673066372706074760487989662413210936634718480855721817556834423501010621807756175019027499913699990949035012418514480624124219190489091287511258577629685423438287990954441088892442316501103838342319423239328290853545593452491041860224753696683577794456577215548422841816064743344860949767575616557967251417630153727692638772235627927663006850289071491992626192146235887145191497151926890608190006548946554050264569778544381221001821826752604510982317416908531837007710894473213239866553973098960809487850475464595962007015004193345016293973719328021958989203122064574213468651925268792635398944519507629569537358798722956973715688112109774999440256271803167443543945030838282706103359935344942824102840937464191107753833846897166546331047013047206597744460380140241835677072385003239224738411184517561731447654290285915487688491962054884847259890594636961905532156264585188259404368062146075322006370719307030581980499441256942589552272914176885336348043224330464155778201793217489051516741164740563686311396994459117781212865812270157749426964511101032882345271425071522527366032605193168893857189203553080591128289258584829251710411903477334558807004855457473805489569911648666248047321001838445358021486780049155693586042590934537841901586585485820028121335520337462075645730874365640419931354737663402913278444052433965050910685370168032227708293279493584693962589846401535628345232644561270054011256892719317563159859868564809227504396845260840548506412864314585615933283013583308563361267126262367275463893005711204574112424816593167805779338800902430425688934584886264981476373933006661814145727295253143581541204725708113067166765564879528643436523225836702607541597325128783835862496070127586009868101788016973005137065541813467767746965859812662195165729526399045724719578800962716045658506990833524390468775491639862224451612552815797635736146896949327835089258575331573700160737949395871312375598246852380132631409899442558013509428444699172323951333818128723442225237780303857056680788946935717251777980854482538846395483731915395912181464914297974156325845959324428819818885195161124197337281179340567268740107216336103821241175923048432562283603363324422147775060956070777403451445856773652550861358652160130066218732789662451769261044887540327414502301174671120425031553308720504410556536590573361799838138288245603526906113534017029647728552237797569017073971346655219718073915029188610687339313035320624522164186985078717687038324151406983282027584097147590108039342342439032413147590173045774486550642848268691476374204306300405899984652714002979385835128055020477202232538066923477157432022481816841371229455310448864992024726561740568276574710361915747202318761765682630830037739618558622109240663148599437290777096984807084399655802942787771531236415392652749764181702857745238035842046114572852356266582071913061147734376507306452887546267623473049652696178431863143417771311427390119230807373938043760745518692779844168097883005527742630507059629200812902468767032366654855157975422404407416582223624637568743541495558085785515172179942343718121653234719796600084372706040014968289783280785033446874322406378140224689659293012198044021151084707879476241803267044866616933509625575185108619134148035747256779097273566447824678586393899066452222147605864129962786330622210157595758722818126895319423141019706395609694394026617492411759969760766581269106251724097185567561168461800730181266177362612231112123901017539218931445472883715692956111779751134031518746997752319283139147660166764400466249840144542279937035559095669873498933717275301671220370452236603343870730334082352317552180254535975564304017773662563699080348325455109678461088544575090455417683323097080405764429550751726156599495695858698671381490754780866610571742599364355768523452440953404912344729988314287714783909822537263320807970884725365881302715888763798572404455778485791902872513573233036059120083319785580888097416077518960717624523835964558123674849031032539738326326705663143780637241824721858451343279503423600535727459611150171370829821386951976208721859827684882322230530627729598505037638300811837655148027438243366485619785678138828377995122538712284508415247748967391644209273541859155602328618066899634517173874551789944571867317150023304477238515833937208608376338577458426818317235184295041470335586465309236349351168351320690859527024237396819651434679520818371603605603372256880068657844719097348104674829353231755458445173390902891925315072722450327691777999133070841669323303047706549986269643545254615519789003818586541730053078377744480717975505876005731758820115849651586299326211826345629060748808077051426963675084045711423023670601158012197483420221741007995575518399866524172175690738561106826549056416664727676071083942597395195490189673623855870404579353541333797499166223592270948983230216569077422735509390285112966732106548802930953146856639705564581199860484893907957561432876132382075953171209995008578486557561543453787401087998717205381697133995530909001176429408406280785843332185363195569556409289395812801686801806740685754510531790806089180406428157323897751971425592774879631360705221708141824743681954805541832338111298676290070509137728805363888074328981990272878799930820790906187730567765172883500244499173414810033990977379151393662821525516529817308921663606743112358683459762356992558760263098365362878443665818870753271113910438286337366952069036724995668211287515870107918001100710838987768702614593489495432787508089413727634344937724539698317375474704282183425406851507426713216327860223081705446506293044793726570334802033611430302762901258690823593866568260607710715513557886292136419290886396426993638574047937776593474635726803569259149832580083769436880332411614347584052780307181752318612632868243961060625762665339861917724485150067579948448490130196311954995999919944213815058584063656462474559267889254694395915927436560161642536621177534322998177747337529435613593252744787816107799703826269958177246657319788022834159381598321241220486003278268210269894102656192001627758225109801430660340728361169143466301495120053904009933684897073792936765227982638704171710292800851661661476887820659098932063285919995709906565209350961366665867820413676025343551069906711007554401511127645072834027199479815648385544157011725213250364271162446666249309386079847078136333124469186179843240262826928173091532383985708242214314009221287644053194081734626306341323798626841816428368164510077624212484034638618072023395451087039081742272887426785275584738238670951128752102245731266135808606754328507582482096379204074959491062994969394187836829891449891292397008897488325869958625266104316859150043916282310850921618703359409198593686453275011486209887587975382633133481072451190320621665763426353139257807383254110114036070536342221984071303038496271957783677959884658685672614628409566206877840287790651395027628474492915463043595171881825286427726128156339787968043778657330271610813123907571762076306156561899257653659846963258379041960609257331211751736134011696221939816371265539764653037740016067210650534772961346711268091472289504526522449382401207332261681634293893079706422307908883393524137060345121392758705727690909474033643651323517033318837552275059872476099608491554870131340992467379505357906396964853727698766760270483143969428859687545808785911231216614227157417242183710430695657012616128405684188854878936929107983999825320764926320754604825956416188542053750534674864500021607719259219687982257162631555856993760950379725950764087862301768216975877264535878083352747534565850536571104431920042734702088089171327758715198861772358038887057216761620336103761438658693270906989470789071717204292542618118769167080399913907879224882825108100785627784568284277399795924366219878447983251116395604988169139849484361423447551668488986246576394418279409477644922955810468543723667854730475090590897529041997479944973349350593291554805586422834702387087669449223753634288894513498169850847978208701329060019853760580938233386787562995058459049699334947618024080727676652913782474315184465843404665123496074041438669053837388203006805507529801553824752001460387898119594886951009298016856529728792505741787945626477485325392870328070227963394852726044403391693288877683758141175088350365477824702748889026129046709757452777369711708202689562423097548097634972068778499906207301590597741912583316106996583215168043168049917442319993261348178138215614675223107891409852171609735889443280817355532153865582830399058159968987987116531369474645440187474070302529700043379741423119764308741678788519325947747779398961318777343421843353737309574774329575995727927353048816022483885318651676074269482505528040473204899455856365918348786346771469225812412754297953792405684917295782901833499756947656832703347028094793175348800189593840621253692640952409959134351690044320442766745410941213916781817259549706696503866352456008678457750388185655897106731065956916033044365230429085860465042055420489512592698291938559446055998184111094270899907292990286135471495485746591677959799859405451980460539719883337209814485234842507956915732725471066473352066074510405615708520626779495932986071296954736827060905099937013662200022240306343404376934910686818740130091629456674356987096470284167757970807739927738425473712038582904792423440991521666179801941541154808795605819204059670059680346542750112951552371089478880818473862056968931433955146339941787194965353033997498622089722845121867632412962352195716987740594595574709837921884740455397817211256423018717904328158003016674980571527183233242838279699513986640257365212640958870077877075399789204181086292194820293795288565077300807201061516858735861940739678852399861235642224303926125787518089640654622950914473175922451136632335808335975625095259920210430071067173615802518041438966215112654399031331755060903154847546579155509682742334267976034151692317695588896791115882525048175039216299204443111827680823402327587137364163776066931008194911284260067855505398222614056339607624311170503949600674359611629032683993699408675111493832604044598250350082850239958726306757195147420081270907054506285706446761863080656661489689350652749477085514078472431455325539481107786758437572018371456656618677147786776648646424102280499472822913040702858605984130562674179146733873998187698771498718824960322194608512012895659274411486621383683690780615427163330703834805514564339159109639961713677627466824792039454864174082750524347445422432332429825269226158894403931340999151274759089456407295800832784769658077619367606440614254279708082490891510630005529935095111423075909817228780471443282247640738453351036511373705533560479668598406863806426303431371797656332434731216990839901220026829580306520038185615946869624663599445887830637000959810567265498356929645868238590389218124387521180275473837517751097117860439734318070487724005228418100364445767384534334970688902896771043109729077260926126802964136921261724698456711179362638021950811063220161656931650711146891455267348143292770924281491082044409280213731919512523135584935737817136210165210212367739117620011890399860591605547475829652543118812981037988778908913848008597549669118904096197011715845054545603068895762764976949076326735319261667906314173204793801428787911056359953193956338953332281190541751382156997145757114651491900933960500440194526674822523921424614181190208308521637989689727413353704796992002716724771851756840272500404201909903442333416900170313879400618726393330860711733896017310024317461979557303981307411583266126076775323236175515673389457209275301977018975454051370567877764853992006840370179520073560455303799266425707875185392447131876523432898465999470021679418821970184557704593818076228310861744860722929367207606698617021681941182478872624187846660409799172843884988518481578133724766110850444510107983426753046854267593009357935887105576942459693340823319680715650969987868873006121085990622825687048509660275121602396379106900773862862078198054049359896629664231786945510039395540844960467691780697812899595303104238738662005705521602634763196127267634199455722972415166181271162940937378057342733035556471780384368213872216386080684832668546210940092515262041339552363785749481338328526968893337477365614691618757551276101676911198871908163456068704767761777863052131614782438206044468123718121155146400472768034700672629131114158325655750808111494566558900425421795146377765549537314533852718609226788152744326294103779243084926544566808485172266304596743616951183150305766309943269091251806616742247315486687019346950410316906773304856323746428917365269672490655333251276845041273139351923418642964157043576864328885309494607297017968888973455971219172941171922766570061274198644949925362697349683504669179005732461616345651104097406598276059124214025046777290166843743793338947701182385850805000215335232915205447043225207673233179094020200741950090028315681390159928530677593083316620498116669100232108868944816002268528612941521021253435617978064901595326024838136211402991547561018964816703656304109312552415906885678806541471802885590575236209936069635900140671304555317678234213222311938236004943095886666083082978417561882135029491096131019828879446241082963312247439654468497015687829543682197722370402830665433868316995116123377593500570940938520620563238541272152670953122683854525915014592318332483083499162165928192208365825096779369388425120934123641354513713195258883971928662576973433488095927279067454881485471747748744051717960400758560892989373914344683442724687771526174219708668399146931980602804768945742398505343357394065737997283004673531931157213732685924401736817167522024712261808638737257858560327012391433471741420166792545827741885090371419017717220315549970427312292262792330816162651634627927587229565216959950315209049719446258009879747949768537985528444103531532412307090718620392917103193112086692632659847230417797975068747156189662145601815318394456215219850270771411979732764060975203677515081662632558828074829468481882768212980392636194162455088509160112272358383695030036827065059302882126291879953075068610062310220206149142501148461558372554274732778257815735440040855397848621284593096804491255733935423143366051088819634677037237754651270605847322044912223564786631349832351880808939536293500081853756472920824893488882303419460537353315704199661481564212292952823949072658327251522718679202304650119199803314258983112418928712790382527374859864901152837692366659544521128089772206970827133392834597131440605631638799600486450397223806172685641197724686558845347418165581427381323679789563100554281515007392823197489539168432658350763432432386073863471106306863818580551584872128790725682149586320712737039632185001341595994251036820745886096279099002090094150913881429496494611416521758644918986194946248968142248292037299249145158415747525527642732892203670580590146202666095401017169580813820263468173158600982798051625388018415236487090199673841333120435289590958901911054865414214514591517009148069939045767353838652864771544790166767047722072944757425653743620805349547862946682689295805600332651847389323694502653565358149151345934314701905691985577480528624035242913804787088913407155324806484521156440505838850328320205843727447764226399361533543326509326271011276539305401199056409759507722394665933178318451758611682742223780975700734331835303517094301286217750112379404508552175494332687582448601521016151376543793378305336334313053949929026124379464026299904243158531172759213632395218507829174172377976056893718067598065278697379160899006121736690962967144106871234032730076882119217881577522339199902955603003101603935314275708216908356608248979582311149779582880512803240290626117057651041597635804815558582001253929516166053615354169683404231891594653049169515751280941593168003790700310723159889594349714341578149344725057236387437855265668260061525565379249861489429902027155959698295821763950159586272246830771956401578532052085202705767817596881375951432707452106270417258287970753378286883159781735301220343169398940125191809600798942273313777284444962002218114146105144517206944183886858740460647022618357680335388298059171579515445464692270383163112668508037865660234786175405835070884777620861783086584505550389795707463081095983525249270258814031554756566759620546504746774375738323328264192340642247761847698795650630855300189532953688710169572295944294791044358361311150010075019150003507802822908858389598757688371700797569121740680941325501037765252905953777106261664079971948903551136862411299020957222960703621167789126407634836396003355949680074947160477980826348749347182416004965578366680073776318897242627670605360669199331908761134165394521079180832440974325627486838986726232963099856556584094406819295643416867975789076738127396013324052152300886670472916031937664201356126662991001018573343745805233843148431215044028258610899339314859532269951005746085126304001959358265076505545942624558657788280305992200327769755190590604577033669216372960308018364892968970407117531320631407403690119119436355965526781733429236868084778162455989185875946998982005404519002888219916641386259684967177359039352108382212363576140888709713955496092244598115680679033416216932341513643296805784116136508448050179522023996530557239615884187198381099257958035230218772060282951367121544375987358585592381398304969855499123431341955816042482254665356861752694006045750618295288983933061279275777134265841331139706294516967036585848201841313188911426144161014028368616255647402325265963338938867546491566285948285421175455869637533561934320454538952851257831613186647775027835691082528675165288950738365224770981126480757297660502728779712554990913021287101992060778809762571042344668631368912153364437149268034467689652351615070293169054227054610111192759437319755286730133559083702447878262613667225257706247245700853702573352022607117098955471545056306981709827493121306985897401150759490015798554520412070561934561864235752179837360728190644497940990081954453373412164747059518052646370238529230186921342027616252914161956298686507578252267821643793979848813785959592175946990332200017272969203436700629474446701611029222727143161355717602936370909836587072059650801172775121945344144163802435841266735217266272905250617792976929144255073368168772020054740704890316020535237733905552442752793897223145492542377618322983773003949893378120333864473907917457925221945123662329261842764279112108236326075593576818878510332901346367418431326051520753607775231197995279677412228255658894862559999729780858852051439056968588475789637372292181623399383682748460096624479290901228808267991877571817915820179672562928223388444312339908895053057222864859988609356524743407445720013914198588559256194456845974603142630799322291887990209831298000532437865806180938214281751598608290613905429373641924833365404218735046839936276624701424481762977542275938468472452236665316643905212172951672041711441217840649983157854812870445520939334089246452086100211846643684289831733825582873179026976888970810320543783006568577062003060521064544286215579262209984499654351198226951915580232066766931132336441199048688847745494951206399063951593032487936096394020032128790482454867330758928693644423584220754765741533330959734596959221029807164696494307993498880362315899296792197739395974051229386768562082063998772127967137719964796383066886319302320184856341856850885630773729265482983144775317064996146476704630872960549694195381653073676013754579842855436575202612554742843367303421196428996889665533270623511843062989996798349705321034851894575710196689009487263868862513705571979915028604939696546728718610144028837321004000575273755142404526084449530907808343411540148551120727687369527222177864107264055339263506470700225818633017613503590132758712325213066323949304107415356053194335062558041411406760377236514222928140651475214445831167897695102543310368406933577209654608996286795358885253225930855371784205636361618594202722817197931144759982235899596951252175756817628364177303224037776602623866153831068238273550783979995633261245996631211507323832832868320780654127890012948491411879405218618264665404845387883063521136938199934829275736186484320415337424639668142992119421195635879481676162298201176185334520870657448328658418404754691932332726980985711495200507865449125623761456015678941139085519480639770184996462308191259518772802597100965024927844085707080038766042662310924710326882935463663156168975146378459706542180757233195471824310085361222973423568251620898573538996484654519204779096776277680559645587243599764889665618408390162533982253038466934166124220389854926757002761265953414364744941355553139764004849633130621705436471569288073219113248026884508499808207938804626274815703646183621473653805678745553594377974963444998120121898176060737474536634096547429574019765206579595922840661751973625340025317170192009559300615747190109109639373333767837387983924397169011571215475548265139065055700656085051239663029326017310185417955321228812859134178605384657149687680612127825033992251450959288521439163195044273558105984579381252242536984454242944830772976380894007745780272857328573261651337514141149421013372657976544627169136176935479241129942476470358816510700449383172349106485538948803428709233266597226666595734692051968379422422619965789865106835215290198022682972672215469289878614029231855211661560177547932973637240681061698130782580258952147891060474663326698765211198389307878722264726613555361641117557224033804729970526674248782319556327062995861550035159011065393983291349485682095065594294392068605916996572249107422997965028676412665902040269851962138182069263865781427020112989023961614340453942170161325922821996980491804119814373785617107147066298147779478576787949087720603644822492423612077011243507207762605932430302305431581804934859152453367681629402897810044201813566222052650841564604196979785230750633762532090375713727409618412976783240435285994147668887381921062032119715708613113647611760056595788551880823171985660350509026570542961903031402015771797572180020807439706575026671358598338392557717368305076201486620454916538923097703131656412834941623917234099679228332756797536329219305560535833923248586427884869481448351617818257841408374886947348530215439841605022733913984262391078851713280005411822061317314384062196847885760997743332406603970795196554534508907670402126379866208716470307479172360581939344333229264722264627710506233413129462724047678285105177531227719995627405546026230025703276799365348065311072406311637796330808523606075070672390637337096745276689783324847529033731578018441677158734487429181866545875772970039033700019169570820953372858874934880630201553596115080328352101915265088764637397916395910713707826963258075814024740859967073369458898021975336787783594994345443986805278910243420201428457399113461385070456894681747785316363941131829644761957225815441327261276554081049522656443688292915120081204184613229574184086185353528769313877075492691887321658850061842252547724925041195855446917590214943926884899679451495770116909249199713205268577434007777172129360407148708040650405451882843556597090679956022789985184707610584909549313239385048647722861358335495602384934858271447385699117169258423433576313241162127827135413609915301248008735161705695780401415977552744493792729204936790667753450448908619625693906663467958102780466695592533783029304267998613324150819537271858474548359015065122050729522574465667886198189397003238163553748664402435756097523512556912743272224798710256108503759071232158995685717862365298787618586016095759272469892775759108986446948287902338212272846880081058622457875551174192832384643344130604394622642991028657349454352340613203957860714739713776122223774657435704854703620184341364486901034276601500704287362973692552148588351766029667829225892500887828334656993003288672632656874671098026853411310603500449618515558502832579282384590794186230405448554969515862289005240009970742566468682140446675404198631210118424563323074697689865953130877242222369331098185771079030015434552079048359049570996686296531568267231511162455445906581025063940363699081159298025021288258465503291894912834357642627187410849652642319990782866108023035857193850075317657672817843369531153135678046524156205161410164691959703869972908680624048511816199624849452316557060633494557579141218023683992801095477058240178189294386597196138414868874105927790804651170894254466705852599261912641764246822310406004265852172706921387683619080865645511338357146058645865031914352025545987708104067474788788790618428838169547758717475424559881288926446499938867673972331913112871093062393832003904795791681546977240117147602320472363880083740903710868549761543264676577369179824805457152347213228114543127605288467274028791685204761849791187215132645975247647204293903295095806850524625084509650261612686514568647314950628986834884556436694997929056693515394944913359991482898924620030214937559827958694970880930504320278093765448664548827389653556251893656209609014617327086595388047596346920446511744289985478245585842574110194040042455457711189915014749614621780517659033690406984154986361152829962374761580416529876052280929821598893730651562263991818004488640856365074496293445584023689211880972798690723127661273398849826095270638555759682341757248884255793256995559421699179483143065038227130795750666185324762476754822059353069793538099934087490491202192032218081884766792378892484000819112826782922794639296644209493888695676667170603223887336157150865902414452577532692428005371392313798887177781954983025518359793693329888003795314310876560860393562722838716658280644210964358290772920736585763204850011151299857145054762182754457194230666836646247104064737113068754883705844731093359874283022962872649395468274652046539833043538466153496379821782322117006245463602745237494480376679963187155377837984265043194977267104842250457478447523825687623526692602782802911938378987783192828359825100803162009871619024898664950537306645187603915508027008767143063745342437485030200694801090174260422991685545784865063610100442120171645318248206911574992502409697420266669424359478644416091957888328881052454752694829471695435269602680281052474732978173851108806853278871611343081990330077021885956808803899244300260194125497646317354338684182090094162693676040044949586595246299819252039226729451254189044415881410731052218309567793286577234730304064440659712097376770943136442501666509014930127268897736418894040324521310451958119091232579300386760090373161654202428967564226341517765904458064912322128385515001368963869087954175863129072283597756376306051900095725682052890854355390611441544298281014993826008113060317210229492963143664385877394225719766737029502239769520317720235473870726746692416947206496709659172685090430767703353427339303200422255511666400399672954964049644043178048161752039700344752036302170534898413153830140147193343266456800232761475510873029197644883279271770432928924032744756087365464326095739922589473450584011127837443879529409844313958423007174421009599881244117966704180894072338914185451839210279270152099539659991485405821502439989868259285159758675100347050081522462863309956206435433952316006959213615420419659306518704253067829937167742017677041239756607305722006289695399090079068948865920982948687795963247123177424928621868339269166981357719949022377527094805255104353041605006578894362054897290276780515839381877062199857163499895162620410651270507082565485500356078344585026974252867216501524670631519435924979042137478777934324785326409576489653382074669704567944200405982302809829286357035245121433125378842472714168400369751418453750214005962355522989249305137018321544585444903926343261651732872909362730779434468371235232903753954436995728811278339816356140155974905687435156563702093908296514983057213659522520129906720313977399903497427174231692179949811004417629059248019793671257101967345759321488347542189779439388841274771433676004157936352139866251102748145546036147487371490948298406549811591034949275854125022975559744244718916351183626955647616611092430583156438425906860418681311141040298724069529459606326337015845613586864470954268815820918574851592266738652586057341818037205747042425521554466650791857186105304881213135397350095583933689105746047333734222778644501172671076884598468351980707893242977598900365074465529581251817512295223288542644950414356675187405762831216926317221975261200653149923065111542851680677939935124359516648689023948645642939713831054419101140638534113254234451734785380001308457472620126190113146920144856579046402502531403490538928946103653686425762791982578795992204521084055584208447241649383218384191709475980102816914469712628260383152456468397412853810610259603739090153621008172176790498456575880785886806959423267395978864322384542136522383887637765894158377300147467868517603757335246888350721094308171663400833606721631037756152204782261469415864884012525481983325697249246388850334135717436007393362373572140113358299934029555118438751502922604381105505214727317984061760385091951195243179198226116480898836487543313829754065233024157053052049977590225719747859648374223550016697651784750472126812792693981096391223264977448581422197630612612542120711642529269857564533378741510541261431540985506209847688629906122029853050693953691886396837292194116826261919898985942970905439375653364300218381406624019780305991787609267023542847116281940189463769648274735857831343448102207696184206377543531047128256434821577615558987512612306251065483611072261044750049067080682895340899779572264221357901102188953124855240762425618028217727658476117532951890247589597051005336606337819038637670762752308365935805617799070946437196155743302219201851467971622864352439658149188968835495559752051453734534755425805851215068070534283286269690936261868400391412328082981440666700398969623247740116563491263843621821840880059521010346539183909363955481184287867375112597322800837604758416818108491740183973268093328978491603040592161196129906465064578902506705312728951548898816270288961692854791630966537344457910077880896744949635217049149568718937821388732572773605571017970696221177883857469165078853879255789126812763669099698673138620024100199569338649299683354232549710012465511693446020614982677659425163549756652059332392982777576937731996844310809361434652716073867661194568598124463996379845364284547446141195084306928652544664919435856248853317891879516464883475254490273682703974277745278761927032719145242086502112331335292493928283994159592682400295242423250736476117014767838575490787366838932376226049618785197785917818878888642291850644997117679181090585689494636952974892121516870232850181918177666303533115354806158324589608414812318628122645606453272173367915484421107685138279718677880341237553408446191255150473770359678209312104778276987300284184627478917345958033599837634402051980605633209067158741696581839425682249114345888680553492972067407847497268198907950291450757093944384240525204304490667960373212509314897590572191320946782692845775217716336673091061490508850445616790411961272046026395501060527317001585353506597723741740875730075615931538692654150250910492515590887268749818448898344608822852783603475098365114662193711907674579903418383699264237729159345292509070919579150028341302821427616153408285483519502415951894281295956533021978737386679034315977626799068597885227403203407953449797635085163144543530577251259326210225240533554531554713851037604628061877961396215117994778770101856808606187668281207148663003327343455570858650883376243660188351037758144913279777073709535027144811241019290536742451398108135458212521207001127842509781146301442380954827933763136656143330969941492692795631396427399189853235926556975778659280710882989875328972480291095359096039027115830797897745808911836319019537549468220066375520826931923556980229192098980276828139015061292629388700063690557493888508381775370327461640776144886646504253006285573644409498774792601689845316800587716683057031958750420537803417644271166631765936852907614632148024436495763553452447850384586674859095333343519081664131617920096653621419171412822816971778906537960133320818093620427391415638993659115613405629501518423028619310730074971597107454456035052776038365051217342985869178355368511381963539127999081853133000344853264279444218295873803640994834278163318537598970325971599900236573773065416548141731260630250242540188643511633073777092247797848535133125265922012468072575558422656966412538823233788298005927912563103418496704729245453916416396905857273678461156351544150588873417095615171696129235260568407444306036004212074278921603082089998429855111855631547244958421129527737890563084147824232754694636666834129300700561738721532377839865898594428758226501901139515681108629266365515222938673789026320133862159333349251904042938647490892211131368658336273741628433329588857824766394988718550651656415874000091200388225557158306606934218223116202003433791419625850267048515209689644372291832366467862214757003525802156299160415152009409491411219315342945718488714378321709338091464278298438780989139124556856398999041029267323755429650585656252058925487949894930224293005921689364763015023944423720755871125406812806267444135851135410617345923951807279622202725452489583779244688467719741007919779815125017312840877395941736650731951544829138726034744319772880052683642247069530334307591768654941521245960784997543161219089998522261852749836409072393559273376678861300998341856630775598516062877679601619873121633505752711168495460804935108697023501694875496243957076114743939851693441518966787303453032024272866918150249048582285182492570295796880034036725092683226923568026160032950545853733904452627722549420123409532217402239917104501655078907089627491843298406147996069031514391344824138169525752169830673912845937440295269336859709742552970369611219559023047726435509187197220188691946162994170026789268228510355921971471447025084896600341361386447037801444296830134641252041642118608739496922598983562101018246744463877977878632051489748680363282396118968836147183917530749897592602294558193978240834596945505596918401597637638450909949615199787549859472406262843990902980322920632038892522991447667100840867574245674095326272658147574404232859030388516264972411918339577362028597308257723518756402094436474584873139319441906533843847690236332620644587983835771935295361295447733038896162064395570592442924193686532741408506355121113599097183634333604714412109847668753103561942557557491835463986484444838817063422944854683447120290612814904593027444570593042586783777682940708127643544203310573362627163911169876501685430504063351938795881746397896978234410191259988143143627590601509150158113103063839569308545533855312957992231135738044151727946465945702753477432980603303563190795032090679951002373797391292027364970210576395403775594980567418129845517235934814719187434122081971894294099262799449351412100184890472313203110845195061960165550600037840736006790875247631444905764848355682275944031186203844127880056233959549851400900213442771974707491582542290968449984803170935454207635087335521723257559938275155087337181564042267795967188083712198469248447994364272619534531851017128287055420710484702431043561169519888053798679338396812538307250305064034273590481676417957322405334189402890306409148328093762437902589813379918125662671712759038718765714685650902038395336464974152289533861675639491355049286090620434299907006590747739615186135392364409767299180333038640875041696300503431765809377971023234165300606437677566437468021159082041237572114544733444388539391210717248464490776979639401471588785776459935502987286789110886048508169315439897195879285474482899881859243932284028911365942121350408682289808304900433763624960724412406510979730107838491906506530196905917644659409621568030024762096412973626247486096113998675341840508248843776083878082208218148037558328657524256432852276286593571455773530999668771115113778786478710773165742135396748707475230370843263000270336888303002409246786895258581698577909052240812702602825059691297800067363808331421906454170179390500855015048117362868460041089652910898232828164303200420646087239888186105572683565161516730446035676250249989460444892671805665063597364497925918357953873773709967045743536707242880545002067937900578077181244178233974662795353037614564218003812863113904147657094059597116747487415006808885263848392097026585773461665459910368052434426365397450369678123038787234907336378423037664261574284696386240016652977137315550436244813037276986866299330802747894175801191451920637390231699770202816452804146065399745746093855948638147387502351134051067514134889873429285787531548396888972651584137497812264676585622726663645770139197020371128131096730507439922276200619166406119356799139503834063664642756622704322792318040722457041873940849922865352757372500048300913799212542947012222715302101658553320605805335585958264315107585907573119086297200500024723761361152500775629532780971949818050776153627406719829605073401866803945758650920538960239159310852321728537179148299209209869926861689724136567945268018544885163980358092612253442792696499331398630149556291353341394038594074892315115423202789713082892649457548447800063768933194912684479225110933863867148687267043774616135947361209223076846579922824322813671342540262111769409821407938390236700462769033777312172784121426517007380060276650827625700086112566693064119427058917787609161937736227457023436103048518872669303256585799060945103905703661648498055222865482925851968487090798377343718565394521650404675156936695103349599398660670523667240102722396771209635793346481683703351459864668059873840513930138410974678623412673952672908247114283256779484239123942010043643784830022418639273331635769034336918748416528809966911548758620089591696188741477146816574808321217587204016917880319119401550982905134017002603817250210523040674811076608657190895930143841516398087364355612343650480997379219988463619924575924089990056670012568387140694752540405289304932884600230013539754328997063382388351943385888178531835286183327452035490376819984171974781733184906160442721282397045533893494219055211477079727011320032515694515212169235009266498173810536192242727405726841187533135148963342564966331163128659333664802323035629271329808954543546021675589378002562190688210884868349290409155415735897589958968232499224651890936435417215093840924616761097742978743129531259924850159665853239386238214988239155628673637409030438791366728215474805861313559080626195355693153055970970847322994033180300982700141205856110345279564526763189256309486898326383189423669090948044616623176228980371116242452903176007448071972942488589171803579761448187846894366520099731330034214632940117591487890539836691058142855150534397121053260616340130139400175101953789601774361326580004278766941334709745674358653242516573534359298029664445442072411360200952792397943109964821618330403034536331340817057543693711966443960202078474311106834331965090828544326522740466450510443430018069030120605625109651284546194150022180142358873261728064988596494026349832754745262411642165598603188541391506701086432111366109997615818583460818101624183915964866099225078362402461189240899993188651488464279410439383955449413557753861623058019168702976091314066795186921104854478540863272373149942431410855256814304483521138064199302068363152976510474665590409392055078638933410393561960701985454065761983642351855859616341850705810640921824690276314747333365185507302567111609220463251400239857155625985332214931809081783563817437433850055050406410385282521567865674664627272156299188825973463104532553712371959851861763697194519335226050685460690844058929507678982675476172951801715903401932058388812908286767352921256660446583012334577104371897551961949193833206935193802902573508951931183853795661997780275082443420139152992215151526304364704825198517854998885962067060112378981796508354495642545593096718205103097543510451466403651854784107298219436358996493702456674681287797887381066743170919711176357770825708856222554875720459724689079996712351097943901155246055209390089792465543589591070851766767186438294569426100431270798776792157465662910459707334388152551368163244125446953077154578546320484288373621314808720487807951622689603204513637771051918409662166775318925230449683912472524228655445251733535058438585188472293718551325700853176268239027018192470679195366207297842014933147815941592678796755573279316508993256394275240042928611606300921322978260929551493340975308992373181861798869427555297898671115773352255931642070496403309649872081002374209018187663052960527351502449346294799454208250791740586580736996610162719976434582688067668678856042107876986289985182154790251623306930493164824616764995051938969266859556994171636853888594208795666267691769388349970927008555978881056286664386426561966690989196586038705127195176396864881203568218803527983471810755695924984348180910986793247339975667899102272247915285021040494880614237349296152562597985510531910651618455755983841706838054935449955880224230739305711138664631482328332597549287692623183022241614451583968350431711161216524981490542796177959914165757584375369895649477999301352608333298938853304538193453290569354604331677370998447537888803421402546243388955582824655387750812735449928059514228954971120957271769232954364882878911984811489111237931716988442875363379971277171396373203971352338526633674170155701501983522341900780716379556180521633153233620961171101680628952384012666858804209615202668127497854535028714995853427688755575827319104041963401186894543011141686988309406364815217907908854837403044538178966289677907158553846711435706487516187312556895346600086597776090745696388842686381748910921098390144820232662449026955414666376689396902842120082777018999724072141278564680723492189998453532811589164831841991208398471295650204358383653201319927699079467824378202899443368878382177826005075336468291309162431502544718954938704905319896581411051128397285381133684077144269690949968860838758943964738906939967025076985453733809093020848595885777207342140435404484942199168361760168904134373760868851409990564960182947655401088571540744861979143522520365331983587944473285982981065471449370515194791034611444690346009311471250379603737762059336992286097368072799365698727351986443934609071459713324055864228622538180557312910292979793829440211220037115361358986868228055586249183994028315585124203243577477271611298028299272300516495668353761462728438032166120721760860095310629960138812424749318427956283784644603419869966563163924563378006736388037422071796772335686000626843334601465072222003499213010631395481690170997004102252857932996291223561678656532434051446118507565906648735573653784934597954449210931334399222503748211412567323705950456447504116575448241390198284767715104783757073487097863389767242291074822942146487285346268451045990026023085582359629286089460278288435612220177507661083467022583483182298764176698903504736946908828434517448608428123503595302452028988731085081543320757663113715044752043764813120374072819001846890069667078584649352003340211071309185471470461833980591228596795841573890086203178113286714246810038885499151067484589798630846149884392710647285759784204357495669986901973357930998150397240655665133195143831062672736457373310539844701996293005623822889180868236111460156532471689522034202464501409076577611325395907827010734341362616223631760405488736743817088291496278348479719832093040312162140626554835181913798973167421513366534266233830448439389261272726070889652482785611395933355252299969717991017144791974039296613528980548472975244033860615667301200756166637501623269172495077108337251067756650099117660060829930934493695571726026485855028361715013957262588734712409995023826589407069884314742174610843168823538278157725863230492721530955584565483925382385448510637331728561852566420666650005384360870786430864777749041298924078771963884397353576211806194743654266429061453270825201816557344422654875248448502181026128664911528454718137652544907828244085007750576528459419237495515024401470970093869129457742398786472559745582621028262398110857379499473314606103739860510933745479581357244279512830389436201293848171232555698378785630202956136530729430542296666980566037562039743339004865550875884466240232596701147383794295003312544178277825848662355439651280321442271835059262776252623961047815853108668869320356513285257890824117463135913319694200082237080970213580457030631347294468552952094102789825431696126047255295679825406641131997828669073971073765508586552361801918599546322641379810316262105472357248815459132371929882435836364077535544086125610642753484042851987204803658993099362189997134959063510359191152905422464159498096952376045435132763592765115681267143235030799668528603242422716943369572795208367918985476368320735452522071938647754395341526343518826949332978354291946582776457894145197974289653789778919911646552892414064982945247083430934967107770696553527688528497996104213935549042495944015427284619638084522350966139714084308005106929331541074355066764554326336195999933186725286357454318343914119928668772319050380581574777268967382674083825706532161534339012433891962033180750725729101040508850346057717504892439626787524439374658072006220607373258901833689433804150221194760146443393170852103140497821785970984035386045365130411825142968004445984237981388527655909263071514368963634135980673625211992349003208335420243374008249118054813576031990646950976834979487759989148737365995402409176911964692930397659258419833515812617335907678048660930807818439085426562994241625327132029879265551066676205860583691884542870954848777109374057530439463307757866629974719292723361978853042911969628659713203655147780097965596892699330442206576922624955857345073596478851682566674891179418483754519800820841265962664436207363215717604374567162833031271437331418231021057948409869243379404239461008987182240303036790229587266653500894245902045825921511542238503144490191765866056665869353733099783421355524174913669654048405012548740527581682937627094806371379687525043213848873332362624987745284981744267115351109734518935765318823537634592104250084635935694742546373843964753973736721101380923192136202546653401959500161832656108682648780456465758183054016062209288987119496993179077704379819078378722446890390624127593905148615267173323688935140307715046235748385583901307338698932108048453486369489664804021418207659325654481704749774403837423884035691407966403973487112230508209397454770762155318696953467755772110862223330140665913732117251204536366275581050241502774577729137030341871366557818379084110154178935367851306971879095891651843047850544362127576197301916353558135367155800113399368503004098559326919128336948011499090481462218326140415786641595256931023740401007386481582338892344836473231807820169366395355148576577215412792157133359726454966490636026148472210056072674147433202623930325237907927183677793632813930127636210688815355542623992403548119491881663645805265145767420820729411531309618790065065558137538289843289319553859270714272203794466113995766453028572428863876778084110129819883151087407198986103621242038591185977829447948179213479769498714449050041403363547195357403309799594222690872892463769881342983419174716323301607000896140684002264337243190553640216172037913254356285116705453561178712799037045909998190748288314126241791314037891438597164892372170473400531772894575895888301683363514764263314814686837705705993429209314321099643871095585179658808203460182935359747156747209330818836393544924483144167745784898980015279924610502662688051744499220930445682455893339293487128579980601407685859201645742293248666951647331590651718854512878665507379825141826569831850053589459572006034601799352581784393129423181382786648320578192098220241322618576754999210382237738665734548227235899389677191898977704721739010646136148115171582242757922305264279966038801256441878597949594541328338317842447248903503965045560228448719145412688969732582676940176318632011837437263347653952806456231849179823025114529379636187112118457838319777474538977109983117450665405937312054565328932067791257211733392413645859197546645519535887526694755077608041533099348464864603235786521235108896043113408253092431665356451661613857752424048101803225608753843806499662121473387612036459004319349901633500169167352702567096393335333080297275553745160700055991675337962537174693830358432585907509742244425936314993772557897768066403088976578339178628487232640350838067227658130836444508380508728209045503312322456256403510867259997063243799156365416931486447868934709148439541460672347163766525290212294463926658902985833550565154925652616754753758861568984511946944703196033359146825856469852049301767167214815660474773879386533601652559878496815468167462628234876278704391784353364270077155989657465942910947139658302508023572052896674446039633164606902816900565324035788695051208319451977136495859340754015996107502999018433944610418362111195141040874874880574522240937296252499446998569483672418450669671974634721535201408754774122717207262063855060908367070165243031430025848657566956738648103745844962023388845409078980548738807303990382881399266833238676327983851871664004233795469676751348064166231847403523398160230457382126087535933838649909509380570587699785981658294894031257594167900147777404766608413357133272439986821649125081953914784746287024948163603142108419919814870557237035016290512856692353389004992359202148354886780589763625132203864085487337022899686207762800217702841719119324430071114143948144113440863222547872092331996920483237235287399361562089040960389238771807813274378823920434146029923834688411614037690698377562646586057539237083356405569066943960407332626144203931328899604419171724783711008384482344237456079372640483323214596651847516590302476453107118568614501558213484577620648963890472280568765533047072168162105979339128678465758162492024870788204703792982349452237540672440607304770580712797934713415926451502215560032233692099258642922840106874496981278028308665013165023106603922210133896883993707350189397951022471892403975001897944112071684340515598579016896981738193843038181462734503806909727571954556796953906315305224574469927973309110947382565623398223984228897051622377558619623543429527998771088592896724037435616798153702198240367240012311848421991769424879086067679914593211651820859562015552745550333149608783302114414991201177132089292685891466267761760245792266016903185715586136035386150048961029960418778208464928775090137454677492996735203983378926785716995217978677809996175986072449957723758934779505534751066069408226049759505383403471479942604142379077105651247670791390975412069251895931715407801895218298092203811376446161687823933177904995777341331488499472929431902695951021998244085653756426755950238666471383678938980769059618533840311997840721308342890253451481765159776842495456284544284963847597988533594404610526437694535821116894431806839129984790326983814113100842387081095620881335864519178426464474507802141916644050066178489112365152869971588515715574911122854379167494377893031339221405592974192999225154509028848385043644292786616023361500613053762261974388594772803051672195018706955585223370741928671429750780866336099518882715568660150907957531242879172259764117673683152372146867767743692974793739484923052485525416792633592959639045638310749010834623580842781526155218115699111648684741152409596762640945499652713604272058141969453895152042525677767116528334517420240538254715545138443446039137722025192716884074529156611459659890415796842488488430118847699164680565950822307301462140190348634677398085607257780272723239304195614188364235644249059856367458595511268244215731374235442327694994370006502269264833006004492295484197853188922231291316654161663202478174490898352170230791313991393863069772620793454016350259323792952080719228077029729892621682569099077429360812928482077653807018719395594001846235144798864933856283963115102255655479396999753918319848072523411784163061287335008598393270576014610826006425009618061582790365582552683329317449062889858019107242475934613049814498981804000214154729927761115951707041548474425966789892628005591307184385132503092567546509776084145699270074402813733046956442205559239329672834621977430026843153284202448959270596275939339090497591824681402955460403780128902239498031907659064066593853735982702430035906310757115684365046820873671866538663084203111406462578258333698926463795971261431788289069587776794182374018484185223056626265088851599435178511933605448655170273753306637072402103049176497816206492151697629025049295564992466402286639217755737237297409981401071443331122988903435678409781958427655376364630869328035706576870642947322850786486514141821435421702580911496733671368954334454635289278153002733964055798536066148278659009541805010228457505960697355556716275555879911912474521781540210083694051491855007564440850865594831258397257877461263425428658723934850831849954306215344340221003474364759498067307072995186611173088101233706516423216985477729858664056971326361198451641318629492484586432377261315478414832237874434679723215491788888414898081590864047130815770602754920349822778358201835303233523341265996069407505664573513834532831315198208932379457770258942517420393861643599777848736557795282520282851641659240463687618123334016042857211331857892750329238265871226671124001648814979233358227081877346043698407208652174008593088164177769007552201965385565197277713975618615390734005449871421085325513800839022662585558823980537691421891165382726263212873736163022606533807484494412446488671880767078073607529318166934173940652245340277409764015146715912922573785074116715349328569955006613466316702110829523644068125419415529669902808659563290987925319872924739910764639410025025058391707048753534636755668346734838785007152363829640079654307737350805470523593026569159555675719173040395255881391037850967618429346255390385246082794721300142160172856714225704150945995179467087455345241371690874611166613663946036317723557782588711104996844707105257733057206252886174495654138730574938443648258648259819916608222443104058821886937489536892027974207687842854997269790452464847452211291813020921687545251158775143582996692817680801784148877846527147776530228675033494284216056090584504553569716894196288504115141228787340384235083503914714551992055915850111144732686720289730097616617588733055073485248747114133055070657821593734076229830866782402364035251351331837486155798446157114391718879511795928519894841075234497058672358879438208080446223602257569285502975865881931473125737954226713396289216990955795727087963120021612268128388046904162918457483857110082247712995327272436777612878932754352282285737641365562661698353546909226477790490188695409981121625084225643725409720033276568913463719980142537798499312951488951370025925430391014070282416719443334876702318017457639560577319106302543543995621764746533930298044516696373913085778343960175365445152841275963770374638878848115957806427574660638831895900700004753885648648909718208398925935716567959552632442040145488804383199773783052383223805292209569412072906441574474374941309561194669381157433326279128021446357560407672038169299465366950235604824493700715716634413787961327265759871877753233004089489762457523843359350203493451785251755294801872281552272841891809924653347793300500220395510100223469822003074504650429656715218088439319821015046464628975292845125645139705988482285269735016884811896146121171603733764999843354823721933304876621883120217651733992863477726100118246750074269645326554055770124832602867774651064690167668318574776710179785433421257779225442104884614714844666206216400644144918456741985933008665391860295727198594029076422011985503963223926990597721575418949156400179346765117330433993253808190986650744899029028984983345687294129122698619203218083263447892244403067053532617813585025841537735609364882960070162745666220956459829686090549895563623371360630307847461715014928779297417212820325938145685303194105990536729309743297204281961556154492170094368884604658396631153367998757063208681219864516269570118967520592197663899796697148687670593767111070727851194282402386352746132499335494623506523846175336376495929819882159175436390775091177514713559345947505019581082683773483893940588891863853491670283651578378615824012652452450693306865652250251817821236191340595978707339603376831830136968248997323229429570060868860776355081244112828467441902612159792507642485424077753911874419243215607686110175110430822610558071879981245659356928180140091928050818646290595580234106594550645086051159703521874797035710373397157773060756770239834463390933776801478430948274060617089829726176004410415630307104184194304925940001726942951762418124290978264706598121005002770348278749214108936405492060507068344200143431049247683636227900233908990845423129605089863258405898150364479812886653792136294591198631004102703214665849389347041702255575814458093015003408123429852286507627993120944200733202083003604728054238963199721397300367190671490283628895241761217845328318771970270648426312019240022180676505513278396463638234891845757904795379994313779308320601371328488628135949644781224024739566522516122145244742047782758532014279106751105091966215091878303525788741054187150346052975875924574297017980703815655524935195288787670261406855385441819992498748130851845390983901788826669957484599677138408128588127133728684844452854355916536500092423757499417616380089370215932588990715995646225247424330330859344418221065611259702799973940640167668807889059996143710787808070569659913918787931809292820420008610217135907961259852091454100754510675679180761899114742419163178554475552681526017942607431807920211249510928648029960000278183378260329169202533709269947526972331479083380254776821319323140214727633109522278025016792147097032376087975271823144986474537258097756418265817361930853886380779007771984441573173463531268684015129451974012212051353674347653374972315376196373596998509918751755834687724263428716809823130907680963885687675286371599382471909584809686978763121273836707018605296201584577262522285537036250031808463355130874563707708306832220782952752727402428405089272135414684490409675281410199133080405806334110761153985975727616953708433946656353774202013020332633905977614463922476398322329637776842283818295873046683465857129936714285110805410531734962544637043543464493727277015418670095959497450584384702117480668007999378876678564326135613195432841740717735667746882750643846348116641484333703380805050714741552318141955700343109584729021918999753330959810054705203643243028024321778514262837219823721708307976660788106869073482039347866045998923141944389442468355841142108760978802933383198818112500608395160245402673929044139360967952488677189606850827317954475141941057296785346577122043392842284308027255474349234741123408087048620908808975448328046582041708977721750791033098809341059408660972316149912564962372850959804713225776384667010880683316261525548441226188119094069217020288851890976539135142369681158076909456904542870162143456296047321879056343352896170839399188165723177455111150650625796980149983952616021545631372597967540116027154428458741696544483179243861194508446227197429729399168266774342942931855045275290365698905855766237733130005528801958538616958504968576096905015627475776130375274147702534312463393402117549439332647547291054323562588247455121286874783547203989099333675084382084575006626762817963920997551963158851889646149322924038699363928867407014872705243012387041447473264125826969950667558382331520849819702569470809990340045512055389762348448031097348985025032540915145005047360657956266010232727717638467262036808259750882514883154050238997120698473736793427100592307324925574215011933496038853328703493278127258264687248013811798238436162867738944824908210090423501054497779095533444405114143856800298698261672155155347681545300773526413451186530562181759609949051597717142761020920318494916446978845328173056756552585623808291611130193283035545172073410270469441764579928767219849644848454972059133617111632693182205647595599721715081540542160745358832772318698873849754963365031052474842043674775616938473736103005999280411362222173499823966246278891643546785188441060275160936776067690984182808669799488055019132208954155907484890252450029383437511134375608488928306444385431171351306435655433471479834929595164113960452717379376977334804939492205992160611486941225129291708085373350340955232659925314649140373189625669927857645817542609125065780977270470938677343029665370346800706332422747019435377506312262105498085208640973224654265691713143975602434812566713410296865992564514442764709508703727182682223709022312352660456497036599961593616808979803530266933152192720542525728606197841060676121669142421238370125229001487631574741327032908289861052956359038759914027479567975645482516498796237602340419193128944812302552719096751575056395750195408781043939577017131186788861849584999894350464663284981315271918659287581051778863782128064544848426297924858413784155212557988101418994044476626348914489352014292263030697023585095096167764545963281425071977324349388827457457363278055930736546565037018267275544709541476187966099016290336831869146449880566832823474487548434876246667354907456357838885512413018173347334644430023336144616681096185438988121546036085507226065681035825525177454250615680473224929893822311789364090192786490574939889253951966913765115104491008614947357983185157817609742459303407340934511170073165789121978700668477308644784996838656007410146608255375572558870025196514796278653345373401117048298538307029448670173857303782538616220949910488777900466222457908850924761702849563905234784765645838293461116909359084462462862967436057803058320126116980382469255136577263380912421313869923404707931384786503951409790555629276603570232740503954836653472397783691889063379629622876285777248720463590372799511951910122510410926804705531677999531429622693187290189582581003819463906445747535704672806059259977926615815287392519448742998119910046380687833353848969427660836919295425671628249390440963734072090294989423123114444431232267734003092743359027036763560291964333881104697048211416947615662747609320623668101241313465398118720774760339128096077739194728746017046631824807961422945827261287024614040562850011261706377728330954669876026697750221678067810597592200965276293912709267837609863841916983820826349590101086466394737298882210669976547095192353643861356686685595989614895048088671655552063564467081696031809830962645722469125405567149084605663425110905906998090563560169513469541745544372138514367729091698783603768587497586065468990923609476228039673981662366418444024827630516916794974386550783399707450319790502705915647841513620969087741949998361770504540497260052001479802957971269793009846650533373803359672268579506734599161940884371387117399623718719904851217814406242716485458791675308634533757529864143262085924811488894927040822993763495793523738000995583912868272120044023211082942793699309128555829493777157309756653473238172692364257016336911898776243864758491329892200981450043766247487904902780226264406469033621249856450846219558527531917213705523834265210975010812026436334418651276812841153033326976444316145625316023137976820696432606283089537451783598439213135439072622265033031505720327446610720423032079163500330198656067709350208094812721014725816533372726165660457791706724498892257588547228865166862435120908994885577647511516567474768851376908168201976004964592069769653105776631290695067535799838582586544025579902610073226020282753769659143509392688203012486179605695101551211611657627186678030008696529354950372630816639631378031629661327040285993731010230221457746019276996693780957509588292105202240601307422096631181053328980644524748775951347813287977898525407207677299794822851923148950819974922813994219140014787737736624676441000139093157586960687648558927972581418007297354466795250034464426905722628056167506971632604953230652419088096640765717011475920818596473505290246429199348774695888012410713144471222175265894423635158945396324163385784604788866814905157775184066758896172114135997713957205201114213604856825082441356757642190857818041322059780805471196563096416075606856365918816071206306412082788192768865651308692918725817495151742911413095201385103548956173449901178590282113574243533762888821501456840736550146920085381361220112211529195360695039538639617847599069767685779871840626900757220457897823879219866017521980036059252221383845450233776883310461002504585510570316699480069612856181545375473817854302506511091543743913516331319833384374953031336845509848824377979369468509702828169554478300513530865111856106932304573167179521564379799405301027753807186350634835366763007161455561177366887997063308623883103327398399681345596985092902108434373799860123340187653062323990961763922497476803316570088731037457864488872671202046326875125936000052652017470579755834562387883560910833126852615965732200325022312191862656203601669122951653339574149013584119175031565517733525195899435028718161384146342752511423661824795247551843771618603487252098003310809362115088092922621124346285936111421987549460171963923274930583383570728647886074606094304753680828231885000891068973854743767424213144989708950223413149543601111083849810436608581916246314472320338501303465573511957078216574627678625910582905546985925719986110041718872639409787359905486715876081103044332928971779643965814535168879359028715247238563854678327954585210313539114906233044415841056284731431571887636667839364235519072190863454107368023778229191661924667837341406695790550934677963881395609260913495252167764325966632354018995913317346955706606983071887801135852042573449845006897323610172174633582323712457866656772030933534694664612308400899259835717697540274011191445210339728461373255485757051714469611872722505099135033897820271355532917329793497453898137945596105255496379917069550401880869266531309615225711163735432845015963019636704133445574663425801076286623549403255067365972156118700715120372990576847411652879066931867285288646400770616263899998466507134019850990915019674538430383500939239967777149918025104439661983518084170679765961306927239754120415698147006326564737585400019241298797089607977556441284822218048428193884409874335261817660853967653758485386048103424863613935440283793823710957676654434292799077433677496772420680332477968361804857180611534229687095137698628196201101418580076196254413954329594563436305333289908252054830864813316652636329565925275217491640120391192524583427243186728970464443522899410618624287175391530846028200536558920832557851930252676782257380609268120217405337809380031456659499878411066930988987485838295735127905581471244896435962415408974914507217166082532853959045561257431528246185447990534240410259163124193132741807686055754689729051054166733000743653386965423355733969061738106533707124021350766981016918893834922250518419638878144080453028334648753481543082419754516637236138900274473933659562853748701969665242409973900154708761402330764623348241820849753693910729683366564108187280638489600448366442569628644682371786894115575552637750784238475380883393506396548999715822707245608249592553081236695245157020678139470819287319170437094868042093424688402478899858324308781384768070516879559453295857056857674623749386247987712679630704693417146551562077475410523931110602394052735360581222978970322482797438307304571754291164242288950180751945151149568052775843441080217971353203821434560120703754165452732244250204698422621127584594233028464745823701057896312139964851026006094673079814373353306144621178472632341352389788036353256923628645837653831052315640484949839636958720175085484971479859992629411225142278444356457571035729807219510969775924231549503591995269812403748830265411839351866590322894912438084686902650476185460370716552721186401969858587968763496355093861365826625745194054309356525874430348857173310267996896357797126279041710944347478682003827210485155378302629622514744957755086824653193890402123022139989092438287643598689616440676482404118537244099305122264134944410515296415888908588243264892730788853662530511644719749897000049736283248725963042688644034978210385733763936256706061269877262971189201413508986484688142972181815572708292963576196316869074095999741070797465451119797829329181792258365089164102619425593302985208220206643284831573385404238981061498901005857101915510849461288760413437368700629875135827092822548126728911783171493544946846239752893001710038147715354018337796252555595455646219990347876820887053043790109731416820911157015267040110075122514999448779965128696315890026487526572108680942925749873110533497805184021939554559910567893478615288126425106320791694328574742766199488387898421599758829865483689772351464135906399627416700928263197007683317322247038816387341464049754318984008035402900100921654211481276388097540417182687275475170335255243816270062064302187614478035557902139856598517079826687511509896273237328727392103253097455628630797809654553882714628707449942185897831892530579879423506146673073170116581264456052377746430556881172667363999126098827476707489429393979038508927217249459604562665339895427686491448074595070097996550629637431938982036501931141614391338327350043292250612833235340478522179087997459639538686512257537252792880182224290758519093388612883901919152409143692144722057871488322406081391917942214044181060168389155691291628061226201692820543269194079480899119032993027195494790833435911786103823808922954788927839294314555086905634938638444770492588549773268222340044760138104178075798121978359556145091490503637957260668797307631805996629846715766857148333697948108641577496681943873190440266657477914207031686911982902874872235959431048398849739380955512855320976507623869281222274263129361516436473341005597319500826339579830195228024967300752968227982145901350529399089590308401017946923728643303041568805131970100932928937329996412101556766004374863800380902411773997426139536425620010005568618863208827775474261503813813623130664027612167106578015498447655504941995712889822211353502240944548310692855879505306712341308129066350391125697599216174010374464425441768450340632412601845759465198384554191169841774549431035977448284856163318694931091628762636042602770189520036257936692803229967253384787665557816241679992837814145440487062146145350713582425696980149969831607420393357012546713241078684876574555073123327902189980901850731912809929339721020809885670016034487014972968228942384719020551743403400904136230876062944507261275976889883658717399214366644434726919733250125111053541521240162397208612893824181515960184489675352957453160576323028812174839854241667143930149501498312554123828069546552761671232757089395538633506433378055193893056177565077643431066819668493624023437056180099749749153147442313018929905293721119222613321104330101217324769368663521593200688967651093912089214895661395244432136200503206265157361476499504882823939531670565180206022670902157491104703212817077395127831893201139277033654404172055058637112352066203847107154687604177705423962270524622392378315317575323116317753686582853955075872430269941857855140827602630613916419062042163815787163910521272947072369119028705206628055306877956050321656340765550676631409604871416472517676889068973612942139657856653136538356079098895922103048326265911496324130006157208351153499974428980265343123517136988971056754164982633771384913411839675283908026317677510782273088825604319788100910378097004036021108954512879465300480981649200305231486526326106076907172250274803751168617622516927951948537050181904958112854826957068606029443956668413318899567903736577189998158366107817153573384314667065943495757574381847587316240549645704534242929741935507631525551143122320642641092727353068999848364261537263986050528679605571774831851745247277338112123737938711989041699274462865136198315504219249607410895793396531998926487874841449125701862912158647200405876003906466513575018193668271196275722430469535735764662543778013521179159558125244712793201525603433377072931980089075900898161247765589753778407359723941413038683355393041420890193385796723505749292768905410466424767497567570417858513549146935141447571625924343143464063201501297584876472025821485139727475392803975574501013459019700463720073868083515723888030874722494570068219248647439753671108257110115808649518065393513157603633158466442136716135609684560086843807387352367985389938506737811831612166973309001835919448855609618776069719388792492507251729766337781606757667818320671533483400150516495012870276043389951632098823782988551895776123228005541721448346196603816297568264307008591507586561474675676885270833413247073295720948907998472064697777973318524021048054357925156466370985836019875218831079239706134267123312879417802052531806182101163117301449277793968198127287832957621927449489500383654936558281243186876615494650256419293704940218361444234420807291645046352493604482280657436376880570719181142865748982366237125383885307338606524910368788800265604629110528184015717934373660438663269252596943947449661715142708925018630618372141227709645768485196020839027998998531353283614442398679911333736260465053250410397423965069181730288963260057946762374500896292423086165847741953908373986903619430983614031178761677386798590733287593140412497407301569231300644212193667501198139880293546070588679725812598140673695269769229836448437485987106242051240121283808509480935694091065004575539264251954396782218922971542289511929918795223810588358869570555249715000206519869222329306816006652695717424437182914335004842900543119836242418575733398844898769738091977649891693678651324015558242262630138655425104824228385502460481869729712721827464819840836912182851562961151930782709540774877063060191754445328873710986592455412555364201280911870399793656958667031441116739584997737126383728720468182321685707841082108317555812052343928926427214314934462198834314365896700377323368272058026227937442021906985307517970617454945255424490822293294533315841182937615783768758717461414633635851300809270896745237426760497516631987837165146061604700487007861756669415812816875038301515418031337049679134759474236674224090292644793424956850450707388789716760580897967277230435825322807843055423290040046529449611279870458226779061073470957230380615032746976832430806456792366666977728206692684086064600109251908206873029619615192021603503741120853642486793633876648929966789285081519399146027022144612541643821125467391354574322329959714167028701297220744428193174978878018423998077214336374792983055946392754251110877293865344274343277852219171384376812861566991383596676662703563439998794936664774368774462533146886981472092960109724806092344037319268884743176902646295212056231512100678131358400124822579545794160441603622616076082948872132123837800724347340533415771291257555921453981752193960946716652184681687140759486881897252450642558376237963186953299035389917616940782245807290601820201002388019682923762050845322250108719259772868989417545277917900701011609705420723473814299589695157516447261639777002166420043227620208993949086635781002821374962543874309132886309353339296040958376127925572776983712450927122792730415679885566296508785625990279547198678742555389308609793353249483025543603471668441943818223616281964798943979610775157762409653295521812286949169062664278005773040568902456367649172709181942225726860186106676942309071299443187497709939319860200684749181187174879838815082390516477691211751056848075848446687598119101003387730495759798389694560055521154572222147081947403165988811204299366658799384438770440926404065219675773524436103809059009564667215256101387188352191023102318378412239941475788613545978666335738676407758187689104930070749920139811837355904310776352815836348315686477345766218776211350904233781979450543256646196582525480794905686969407365542811797852351537804256990179193471046144663510631428346769403954118488436332479197739137363663284012178861705273924566809334593517847547958436513732102357637700830914010889384540803037231186918123107969022155223928309733197431992768916505520653528197535749798534865021942468906834812816844931021663141926955426436577662634855201257773022777517792873734077499639157039225971728672472106343718805273481158952280479057350883468096646765858915108953658129993976313252264601998637232501521924026828518607909978225415359478187256528362722556936057040643681562944206586912477401082910322587815578948222179338282857479048856299231304987983460433186396391705641406185173043756343166401878142288844014062232693447784809994329716701882563414534312110521897387310375170042572361297949584073405559187356300728004431014966525032692924213506908842695297258464551849908778571665816578974562657816037568069988691618268944720194226267009340806739532234330109531428312230724486320260885474558252386573707214149979309731304592947559681102923127212855306405304986866188059734615735522175982733806542473490867965160086212405728024521678542188579588243977523374787043500613171183907782967757870477216116982580970008913223034463138349427640222483712770208988841285123458764497000206296485942690614378804013869536051734180771550117849455526179934037878379188390353835905796963398361019560061847296763456774511915685847414517045508567643292984486486453214465397475486536933756173573932950198242226799138033703006812129706970646079960426288286809723749589902997089374427805239284616863122383222375130147016019330543341830306768936315850953663944505749925853121367794084927938969561924181621395883056068420000161411062815763230046152491633520515214841776442472177880663931694836433063776807501051582018877689566059947497584711201221361103845841458606800075637835988746886710042641251692914037720043814253903527328655781175218229508074778929687626072202286068886033971539479964074718836354543334692865075171117825519136893732085462664556461385379826131681582788869714991813046988882680914022541717586261804154023808435147777119219237738259452928744504553211464277894652296158265832021484495052314353335416076998649259410861912660549844903769636268276773898763387247781051319137864093292155745530716398747509185848041971118193900532615441153914524159364729351129968071692207719807978911165350177538892816103658123666857977408901413483807933452865038135260611456467373093063998869809446108974151012689607967825540491953590801437909857481525231510021313423159001444180636887292584339377683681581322730746035403717552153493996051388708887207383844103191101252131410920949011372705205732205020697563961798317198938974269137398670451304626840125769699400111862250051684508056482888524499418111987919667332307870270444810746765159893977506643708101474341666206783043849733978519401617266145525595967393401909278254805202936418073648249883884800936158826177921989993449071763019565821938391811715851423879100667311359544420227088500231011856267170664285607265472320974744071378759428589211135782474521194109104261634556480496388827421150252365871082540662275516572863876114795235387762813522176888217598761890125207987887557666774635989104740797732781473827285229734186468084450707251318063762345639170193525448195308083319902864579732383176485702278571189205793317789078450570188038605915703130714957709341070467992033896230736435298365318383538416282371167462087311868469414969706632064011877150249217674308140803502061277140216909838347782593785927334757203329648331104772228870005038297604560554008234678806978857007018204625749392749883629769970920060318556113637424562631988723944467934597834166392662798693147834583319520576764071694014864577828676630619373773828618562578226214229842867143281074141285141698773393671004309492964339714870576276801112951548722943759519219459869312784339062032314252048728214748281323440885225711240181003865412931368569705119311432819618706849744144008234918324129619907719847387093236796177082798878745416009203471698656296444183858324193060155187121544883518562169802686562453558961369381153821356154533454910450296969747460798614575293165816844089594871965100158885854285824741050891679347019133897882963285533875224844484543831201733111788740076876147385051216047319248696148151136746836340079570137841546257259312655577330150970590530699894254438857551668068765047768688892564871453850923801378945384208791729824164493819454741840975970346491491516107236898302178057142914925077481832571131551791194920032231894655395153354982880438618964227403823308930061041025287755164861115588388303523936269089900199696639970189685440220385143355514460189140418117759768974298004362345981737803060222082004966978539642654924986510810600550733240849295947064349757576886276840323898864058607653572459117290728734291020216461281189061376990942489571231153057944806479701685114472501244706652413943422541046768237167674827549266540450091544696204210273702284009931483572277165196747380708553589447917512700426299009918478798138424912663023880090568335097486169478242566651671819743390513474474034531952214915185720270531837398782588581162729224853554164369437516105585076163853459883807475516486571262664537485656560939100685893578286690283133509360971146292127845486430618041542713310835121265344333879025029086045212721744178100122526278161972733317843840356579767998939305536123520337806168185058661053398924860696018441282508723062169883244472587039641042547993584789786363281899726510400821885017362312048829316634076524630202806814592354970308765406798493205786775447523592123477003401862053790886495606610042491389336657694044457728802452329159527392047208595229143278097757071596609103089755500915162700939075774523372014141068307180142838268301127639988898666392930479116363534377426291197638667726557887737659503404518681607201010630347592466369733612219674818939704217045890083619498080042482089276874676619140283611703444252865334552836361667917996789213198901864292965175710309202715583882822480479822610098372687082479843589974338762529126834384126125142442165987094122840820763709908056063954465430757623621675039518989428369714436012428340733562647796983606608637829649114690528262906947014527426240665556988014356212029661906672244898412362757611768498848836088810487550736585698283798965937798947372825814875467900459998270659675277604139021613917538145885860350028371699037053365454467000561196585849815113141749821989239922220310058265168788537993858447600689617919978893864258430773619108665171786739978728558786299083452134588197390653339995085504478558078390107326543746168891674632208992710798145256997830618436403495701441814210207590000215716991304254708558325651475870908182589863231926596842947463005278423172605409331663430943709971581313511447130808153975956295696159336877622765974760962643771655622337166450486817357893623026410793611401872530138611612588477275743697263427518349258352637150703100286927643668455387222970644762008344344954923611572860335955455115752576986424952309039033478610560669615492771284734017290434307984785498123440047910629655650374941429109346809068375653839009909510938582395398240183385390855407788575523400499471681673224971062592653226978493337802703968940335958455229264024622272759697946117538984985796703943484538528996388678161269988991103779049028489702331562802405738124472403356807717397237648261672672144699003562872406116478797597586189353324767828132695977579101789462200329537164708190431036849350591946730440343503561244948719652532659754399731205244078235500912602109643375732218347848561130188098856720794008888543080369620647712220536370547292904972245757929886646116165230481524683191026259095868330538394004547491151152067446763962326607536261620469776654074470355324231615414834124978683353613323484599701204999787796204545921957924360276238527802828457508238506885184762782019746502026730769731290962343912830880601085450776427997330507826516285715591202204086533631601350074928745878805546475868909114518273155000469254055420313248338692774496717536595215584855635239635924999342948802941040479079477374722911382539491558177562103482942146143522321576390645070170313169115338959250148334442737014347712954323479378798395303623436567111103981751909257369989607924987446888825801358313218510550155197144889669491441866688019172756391580749848716376037019350742851108783410734478839251162940182361277609344453024682891149375833832882684657559763480306403477639365647161321638759137964911083889804837013162138301686333985890057172116723935173075300666875800778512874146939221046692441823755330142551440137458834692735685159384372815124141358484459909304997318460548264720756885360210033464606218899623223292157226642201171900808745600937889174622854816367567098759902360623272869433785174313791258703942123588208550523614867825531301857385308851352470303586159858924226439721870207504009009170021949280245746366476620882341093321555052045796348068529354608451862881067590814229018163752815679767939126139460316431655279336349760774781314099237695822415097266367531971931587603682617570976597513763880787809475256316987527276999909038883428483389110477873513381700774065236088838977255063465546946423428701191330758208483809107141932021423027802849582119590418441219980117554735934885430122204290897417582730547937799659409937666064702234433830486368380542621916296078904858636000289703592108007951202244235651795161565716425201969090223178499520419711421710438503551658059098700789010439942313235163505518390150167784873196501986382943006092700877925498974116709964026824657089165686976697169799158136036517001043161012891910057064718319924538132162816547505792419867332631565613380619737106458508887527992108560949569956306750194447182218628044312458555313558921514296600736599288669895789910458532720423728330068494663937650090186473446890303233387789939594605699581758008147531262342577884255961036631112868100670706606226346408240287003493376647455531849784363186049276416857281038082874020992372253518678540486071542593561846963589831731695442131225752248118595042464659024245791591275766244336349499883156790947605003760151969176550305551265300294674392625390282267056430366496833376177330793958688806971822993050155693864917656451151237874068359489734617850615177051931477270056051263185303685237683102297763832509832330798410202638217225640592434312504322885508494990546505778971971976716033389970059461045550307150070773532747323353882929177341401875395499336747110670232064213626509961220362897367016832407989372384110660771434327202169529835132972532587682136535301701891711704458223504332237194298366628453777275732677179063337991115664372188922841772158407371020360793338987393662434520693323935801908657645158961891507102223538271468565425659241872992986942379035874176147813701423612840978725795958410750083599644630076567377246388420563332312863924867451669030632937688972465555392283678928161560045786217258884432938112268672935088364960562951558340635444496866712318583604260493878547686943801127502241838991224145882854610560874132361894902115794604104892806327792176655044672169482225055916061782966198331856911037888005835072706827258333876604256879888906312567222902384958525892663146402492810371275428180053494951164531242120769550519368049826052284302868698008761986203540515434062727051972661334794133089812172149914315509910710490951417869047501423827563017790501260797317407402642693895494360770386261878984013721648387502028669867621765469519387213504493440103748410671126558839376380160838428679566042499387478864525856071335055097604323579551083765610755385086831206116034876377856738841595902566980384988674386787404383500020071897519974257316194546587210116326559294260722351315598309435548382353742504960176628219156646010052943616419563769931869854552703995769016812404602846360183976345116445372666197381235666939773835753596091474816242732982174667114517885638411604178066340305290720237926198348982019403425971683973114917960566583820898637354727275826316372420486831815946056387321774987739752010526574314073863112181410685131937739250668412907873787875488973470584420078341654279077628648814443775044519015586838823540703518622494679047069363199170324523666807169246830618435827421568068757443800277125739635547858605680330739404795723803807686850440372289526951793042291295242322896649128288567926263980343206951450136655782352188764350359563518822528959083192584666031122914632866037750533627999047380716484271606829280149198960317398885139232686470205314209658417686785975873709681437058351301332206310267235590281516811230608726964151902183514287833162700817152789698493137256548875155630258952094419930330221380406794250530893386332299790834154417421840229203672528348081620528253683246114384555322304630725409115950209795739953510187041440137851218631639756410485626169640993283449642338562990184324008498306616841961844037874100323288307459416917537321422431314604525459785152740635133262760177765770444725307053999872617041337293413185266658940706306728838837667628614237728643375687324624948450425451907904973689221272889746804892416051416950778367168117321623081663546813383969014886115114733338034001167671316337353320102173109921660214900838566462234718516557249988640302949750316283035922431491057819892321063366340850965707023909590027063559986163454476857942177200098747857437083727108731744902908176584023914853151924626981510174416755976470580512220037827936850252740319212680713571590553965820664102244129404476304011427448711632698397885279120881143446495844748422178442669387625633723979925495179149693760297348562984796938415225951067690935953324798093995864170674007387832968663208019952574796158215319146481212523535539696642471487055085959363126277020557859801163676827584189281724609333697036839484303146476924640711562247970311360191647148659238766971068012403188333668123219556022742270968301206432119250929298208011660393316091385348811848233301051301043996994456562198456529830742197808019633957346969435332929226665602124905024486660088804107356812137904260600715753178397625729673643336865676286088016983823845248136492681104465501572470392886823486640533356408238204294386908200628055090772779905341360463681056689033086935027816470612397151371669283801999780218317403990332206782307230596085168701080237984550276063648465342171221541405949422595149957720450065559998083078918683604157293513123105046852454794290514555158215990354700141055442575316407176119726777846543856809118649181329896187435921573398506551496892948508297548459821378982817474405334859613397960861718454280649397361957913844060587604671330220144335487170302375475882840698448641065769718115474906822508038184190626228329892198461583759051965697272346477293200281324715393079165074750738570500205375050241624135368574194126782463333145799583313827893047621637484588610034775891559600727783542932274827245607418966661041544321198069410807955806282484283721782178905774607162063123828116871254773381035239393810388666943184291705511664661867921765474738170088103867092483119975856523979807187444926474774023448038694798602936273311836800218112738828823579719782513301427941082359707575866051010118199263431110284772521142360534574036603641367925355055333123175286603160065193674407256662225321256798998424508327204060932138282688237787523727827854962607534832447029163545663300413671564487842858944641832736874965215470019594129904866557194447571673612914484368161362795545944997246635898609907373166539236216735391706706033344533317125479592282134368507441168241620166494564251470831173203141123425786692683972720387790571943597871799924030929467061010809393464840662188530877821925551533680587164755767094350486250284204313245499325942190433991647545410392356408579892796093211242558368208280378528051026356148425325683838289703479866325207998387511901852717466158490865532759935392833152527433071631249309041701202323997818978858022584019708660474794656015991756684992105231547082528123306961127138444149862606103304687261043201067011581236026709058263917705352204743353187791303242809222022787692898974256880250291824627996106059644523436928257800610480999635070804640399067787650945711183221655027435602562262550462812669538359937431166720668818863930418298475756110883550660000116968896602358552917506299251630835236046484162709998693954720867193643549603858096464813915266561472022220525539414222066535260723863874176109595231090900809334830525793536633448565349999725690275588524011511786909461571279378826702025145436332513725306383238452866798606111580316997413433118192274515285786127747062557840038624974680189104585266240245211626235637113688931809088242240368143190530293520803916841174054198863877722673202504593974618946894256263448023589759531275739279177460981893386409952659359192164025346027817001278392662968243019814590411129153633932900065141789391437542364747642130027627736770722994097885352510213418431080136906934998935627069314547396010094686894822047551316034784285840118322459251154506270208070215970168289879524258061833563113899788737783484629216253881207233203535892713056701639746394771895959846277728419658318714643787474014257656605296094815458799092644319669998278948278615634580036589480509858898968867312623855895138190682615627206232212526582787847063809124770763157785509589766275655975931036882393084689342695148981200473292499964081816857115830557866540083225831518768054677654061163920594542254848791167232952325580141464310948505980438965410121616484241904349078841071604584857898856586242716933430989274043585231829129452397139343386822655350606048322081101314467394140969148450053177686185531222458825658553006443604245184840015357954973633370800631040562508514214014860069405593722032331191441506349890338142169696156438726458887238194126266848719594398958721880229719089410540249021307611383173606140120943696442053330472081637596862414323201534071106638589477869632321491186587338509400912152384415391325375151016673303811800577223845284588066784985336021386430313506330741579280922703956623040539655768790525789513036983930642181348639371123782382797514462053560637994600913722793261352639969992790228955725671770285302402807714606860685694548781746851638533692710676892824883742709337754808306181147672043745590302737009002123622757716258386080178474807807264987911597074173288007795068152657721188074543930590288032732732628232972150113069845769595584797282640459240444922033341872519188576385457644241920114040981534420782022775234472233282687855536245225238172060438807619487003447771800916979566082053554540146402290904138502531420154289316415163224731216100335637498254318738108864687669856524197060970156691967730216445343903726376464256644997511790873513767410261585876865631782333440510008916057820820599643678202179234516460247169530335238539090446927740480537286479578449579990870117752393658774659017081450633212592859762872819413100594642455308216156541445270036407828834564427884227091790919253403820392709256360548934185355137060945024260428495916830729256634479620272332693703255543848473557027849944665718963356046996223376259908949164602586335791855863565787276512107539027174667376625880152067221984347911169481429815844974250912919545260254196135612312119236835949245770294937302146415347754397345553569003253867225657136445165902570222418500098188625792890692421536750228270538995245383036672366471080092153508176285239449670740822113899428325616073141521743030691736277029732341150838421862495941432686993849709985463066310947868561177733996805601368938438023119752578573040373334550487794914412727065876469035109852130342241393689457249772369025345178966451596954978982585491533726426500984217988671631033068850420889619225220611191430495776828856276422690762276109926602708826491358583874915837345967269013757599631404285122923384598230352358148436489637427663905761756891419911087551636583244300633972776468871598320963652287066030737375082995580406744927702713574165977389766556409151265854481353258083972128663550070685758528471851713702068554224729313273422944025447135150908269972014311604372699211367748934693706382593364926249385708865236304449164817657209509066425203347119173122624075574308865042416741819111987647146831682516022834824898084070950692638402886183948854602647522220152459221112863380727885663417179934941108871612081778806625205765116225733869661182922963300800653898552818336641527263047389242406387181074094455433948981395757782262378802140944607631101686616652237993100475818826496608905419091757305489476795950415861902656947980533139749647658226993642251489363887566463780160738519024737312351710187516576484220953727766195809867747056275055999589645903321370776670423304776305576763975034644770096502933220546003711444885324248544561288045590466183339794673940281570611473196993503598115581619537328234035722220609799196631310090121491582658905869042218635546134771801670313684717303881041847960032309253223716018734119240549916447499865248538088210264240903667465698848489485454187263766415360102211543530437717030547697175117273171684130256731904156018936355672961153740091542206968551571858929933434640184929769643591836556078701291453318137316824583121719488210530969642605607925618135625996088265609510075076563101822310519845867762508811561825872350786597237824884417771202891228992502779842556329192970359088103922292632618203732250897214898973733428014539146945585181454086835019424441701119272927143224464921681296304770969675266388322843768639207980554963607812278603011460173541846239645653489573515615442644154552573558094238946900681634603833665012272176438675138183679484657309070920665833281326325848219136107381731122100887411325163389228177136826046398118679760163059924292771910770180413614203481208789921923744946111903983154890536448766104228925340751204440601187831499564048520779886678724573053017373535337739149903948454428378150352912993389783597195884572182420799720137672175894247697626206147746021436057501696346311362398222419037570193252181943265638299556764522567125391365522691613273277639804409488407145301645244684749182337016154670987315804640874154741551566714020060341553599533906919885898320281076258376948267398234020648170212426111270587580968660219923078090020246295861208522467206349656614192161849700439359455950779648675094222636624682184177889167873228367021483414744564126814528064011647883373526618464466723023353642910430847570202021704431692776628976032265039969839144250168947980716075982160453552794602448486894703666927741494329201102436869278429695399148476779814015353531787777479898409391300406946581208695791824891257910984617169568238454523102370832494136902504021773186426782954780957165229106829267244730262202815167483298401500557400621416053487972530320600747885284974985233120149275275233969861755701931537016429254434596192797166633647923921877908670329020326654964991703151348241495508066876571133471474659913314062481251845442332254183291163720192394055557745310573709628233853256135290739610706967737646377217763260401436127310905816181720462026351018637491808649829487420499162695559865890277721847350231767663813240058071957656718721195811616996575121880778102933738015222927704788822595742777228802243264316211943520377565161389142405253478545889509206758004005300702362073864640740980754771848376498783209464417944349732941895421540464093395584234587691934078563414553292011129829928399761085439227006708102954278294223882335390405667986180230168063992269252517670639376852653072902702456098298400501372319617253125977493411826628904091618604273784045946235078021094586905681360366695510889422279300542285248506385717541910517652117365237462690400274492686869137838248540796093690693444144165768545506448178352876673726013044138327571094676870959032981569309831667518725131699764104363023465625105428302638358926431561612872520022572090990542267196951335551685348778190200782780888557601523565812245631865483514729696811365268810182612174289067200771970995141782879710112262853207763015201599886199861165874391208772325019656918947214168609917366949645287925768083857711096413008965422064398892032335682374089718294020451009607844691339762294028063601157475072065979990424702347390643608471570421196868884934091543530331041826531705035459488594749588583211566682545624805251741327815094123722043753889314474705366505270629059654187954611062043862991897803081555129206998264274611371721541193379222724438556361614994098260709410632355785070299309496729816358152737968686209511093676209266132837375356701644548515000450360365254430900408682837513319494765943222659442254722381598222246353642148173810307377602597401794610116225288967789158159787320064764366334803538983233962816185473949790271125992462554724409297119633189624821039868717114505714133361241591748758777122335921608860109499215617074500844748792075719407053077768903752043114755252695711667969105089584550287728495948799158466834137025949188811973804763199099822253363705950267422781314971230601588313664992187589500512407404851500497146814899613484147834656212410893498639960906788494348394579016316739332867043091984804292394191431093615055952123047681031257359890014088326010809735559232530785942617705237900464263440736232321668321868141945372353796501878735861313983581994455785743607152331944543123058590238998947148070135864179048061045220188835229370963632325627717810117226540205867908613477786121638451252064977434390886682013762017112727665004847021703917493694530419639792057163941339701001176490032626156733596844658935730590063619081640923437550139735552622102517881617534856806028978807805209043451382570100197670466931707484292022058602051975794414752605908483365212807778550024073831188554753119319107115269045765699063598745091694659524852740971696312792243311830983394509082689107407231551602600813957234671442754866229550511456286359377989548714539860966949157746254559816841562650778484982797087224748149226905523970342086171312313210809331827197619546812530353020926790685599320303896060858738965643609498096531253856189406303109816536969916404438396462115634374340619938569778232771675085888696066791396869145638514023420438342470880667698735874559868093450766616276387066786388553434937351079890148207905611885252147526700989806672516367817201376380576408665022195609812774006882593201216135922195019633185874304642743798267590057377141145820936615242545162420743630075379950787362182113123470819105397242748141396666623258515024883020476534465855526348554765928603807166684797809524044978313035458064718868097351969264107639354858978133582165446809043903573577957184200938901310275858452253603578526067147791989435828460501243283615208004541911053317440810933720312900501192910390387303504271090669309831067099287893401862523672053118303561616715496709947719860132728455651343872636782199176815800162851454739707668193629006382707264834462752824532288036719110133393220820077450352127262695253268453138461910288480353059931968913270766712851266692766647015145240392419187251611270114078229026458609026459234386522349346639696986553939492078191014402711689299107482542849039734344285355984362577963014225866247223437276135181920110081885749739941978989975072205233957863106007740013974804392694905660572985529858962311724866136496462870281147664323136536525851681977129705224592837166249750401397977186455287763150563887280875852704439029627628200214624067037486262823756144506429442186667894812446594244155132787824502155600900127686903923244363622857151681654920195541467125821682959887529601394837979586761694169752278089824658033687314243652115823585083617474109081738036513372405472903532304429440984323422345215193665732107169727179838491308499241477213068062457368001510609570390626422469435151610066378795334100919705289756719951872219898978856457487494198467711968517470228892722622640262833238281201862822755645479824443664251948540170538084921851285673328995415949880380240298986786056900346063640220507964241381593329085358337825704960550354142720022517692683455581488186460465098020163161824259896631611117726012887616923322542461062756091307942052389221338770837061431250311284749069724893789139421586768338773902369371795911154241465322455244267368396308359284545636362310467805619716733375724332200493461887820073099997573963912270738705361788099489612584317079414701755323069020423348180958500496961553941838354250273327727751097239120804053566052500527440628103993415391705812095936006564732304625291650682979023592620973083068076401616644539429918095885151008602888245461993723240702158790527632304280812033093980321151464287767933197100951793822700019643167918554019414819773968505590700680583048323558482523537097457748394148548753118913847188825146765636156381279682035151067308387798129661468128919445775226848601475333024374755949076533508110991338545978306542504084233009654303457350237266709034731564269091017531265547269876915883840471872491488620111085076069738055573727025102393452826995223868717507977167007790167245448560992548354635830177240798150904401394413532792182455779150544090581315568124337347387287288583046260600853270958462149494570304138880054472313488463081514241725420893814104769655389510446384564634091515728197529822316383237376161242895943240544473384912468766924375193138845025730413351118831164216499898503776092584380958208841385226506834860176955740136853702676612042076029910873178435298364165268157314475018015149065101352401407645802850487556699973128426114753187159794658591974917776075387711411669942136598971764399922216497810384773987397028124216297680237704398978401921431330176484485262889364607877804649100297320557843667996887912336940105176316032662332590626920198557359000440428971038739879539087184674536383398125826775445846856807909081528724345579142179497646286474554534271737696707880069911716697247296018386700219670503292418122867769394524655829705044072903803615774307294987253253177205029555632447041871532211832077040503297332934569465124926054317409680494846229470099657777684365747953925047315023526887230983913718683074614919916112051425501718270317256321791029824220783691863335989883771173861051483156292044255900818147408371949955851412836106137090357273963132656987793348689844133236250413513459755809090314297130732440006365815935675294015572516765245731877991798174252629697716021168333269995619908935823813745853648167273519139227985309249658057620182725212374852770988397319945850799733768986722067497404104086235306947645710753898123452247882527324841357878920978083074110406309715922740618610171354682387237973958391883742638289823455879664290185665130963330376862796772295915552549803867875641538095461314038998751510110015866740791517465336072315034164202163481189130394047523149891309936886096731191947361668694166326302222129660474603634446123110473844967866874937242793933507562191393681231937531943710370598695649595202809053713108084428477556467112891300412339846707398351067298054930639298631081083776572600263638344399089465058826292720769203985427069891787670047416606048752670196568950504795486925868836456684403223968359350921695011654686286343417373832035911866737426694697911514720500781624108253158663479809475740833823365180892066363117955258384058998389483771426768532110403574059003497816697348796883951214220492759182292515090292008734068603329987165640705773619933432766633838236932748191555719756751658989127433454424675228338707533892809115253053285134768445680994384693835296317975086458528799328072123271971358508746787958547054997730922116770305846224502966150047723291935671740918378443642984646239671587399573172276837674425324798103100454999571309787232666585818067852745269083341476288978105426330879385332452643015269179227888833306014403944212628593518222488634914400498598317121722132786686069347571918085482057131153159963833676257569609202500750884030236902427164846499784374392522009873411694371145758089563862011475032167316329765392239387749610520440990919042220995414653915072200930130684903113002811012236521931589813050110171482989362386969565024409157141265245080515151741078302787162254491440534126850731170309218977983344263776561425594921970159140611599104123294150711407733612956113409732801824884443639755843821199710416752208799107442873992450041692472572446022622663799551560804889863148708798138559951382787500348825362104056603735967500132130980757004273392742659917881067707319266275373044058750407954783681256431262589299823925153655405712984845063767251752477584544614228742202346563045248384323817011272700321677343828353838891664917654732879314495339461010971460374231564948645653682006206501039944789051890864042016813136784796550945904955954209111980426445424740203077185890510571474386270933883266054965983397518398715773292804793335282756103609330301588041005271483452206071736003351180596046933911697421014173305811665765863430120721661717629497847137748560217357796034731414091562935050550539052564337444681188508854588767584643328706205107829705649602456863583370090033752956561580919282763157752975931762522983172766398856372875784661190021847054041392967292198825845618116004123440123868658666966459556431180992440589355832683215267215856858428358497327658514721764621019733138614021848610331241237584819437874412746136523273606954307937155157181201841082110013068511493407299633337237452337607109176323382231932277226648091656904941368507070347864060878958875971754706484717280933020141783100419278376742446585777155877487260682699227816253604398382390029621267221107085176842180297346883318804328706045537941942050100364514722595053187573674749945796413223376800256146416444591563092475466277781396450221291363529226779459994595047087566532204169818594522101013120815950645805592772830036661658988211105477505194657785319121193221382843719911548249461731443677908038945430831868456689420101784323239849093606210910118022425861442485835667633372425383266395356087716121430302809748468615408242922762872357450032951863180147958022368920884824970003989308196497478258309363056964176266310853018299347245675624003130809512457049728660723923044803572846683356070994565488506278373215594963923339343930190463208355110016479674057334428271955352690815557547992879509708325672720611199425459210367414448338500106472864619809231780961822911253024930756871401547915094860147901478355121221468476555972571343375691102529377931374867871506217803745175984630905380896675278635944610780291285699272731294553451838436472434028240499589548009780179632094634458320339581525765548500119802774313623099549414967278975487381215840745154291123417382808952634861059792347180258257062084781556849820927808668746415910111273973216879254674691958917348980138194707939226517215846729523140940848991805423641036478806691722786582047598144221301216773389335142553168263380475866905810661321046846118427928823585589176037673158790472775626058092140487244295989373593370741537146282193231209227332214126731310806298716008615286341012098893581295539424241223202264383313378743980333584971164244072304133473518791692435993240096697037417080950208145179903349746467381095640643837731561945630817707877482131281741773363421858342766963562989186332135029952311541209375350733058580082518249348508490814839372382989389548722987259958151474124503470593446273192936335684819853296533423653728091548538141854061762767818342855362267216086857612670469387315038476788831476267026962731615290737826715668809742074049772757486236819157135924210860255659593589574045581370878675744227696999344701021431030369977359337338013009537160734027587348576850286609746800439669626442366372229015203617436832797856185273688429235000826239444310736006204269146102042948696495866914293531791859376797458071070771547580654680635368996328435552530404825664356070296349079538425788078307551262243861894050443813496949440340768325478744535592955321682378004518838704862035438923422540847905737313678232415146752876482192002426441216834761467566587401030116481355722287296743908262600065400161071890968073694103301322185105974331652950431839052927027416380054338555973762669132075678697102851328573029346751088848433258870674382208067790735876398437071058591517847046785213185898222274547212949159977485079983617416311071965678601627924321770080180693547931391162065818580244667461938064388421736415569337909901668977711449479538203260812647160476188763420987975999774475852554526388486654051983108610186029272656971251175737236570531640669684901853494987645507955294092885617977926302496330901684632652280407166011701811857013813164669857184796430751010522856202859385770209253396325610955590259938448046571564039274021053586561011439617325107391923591789385458611067184517917753515234864904782069039807941468332183258982505312392158253778175726065522113079384469871116264141228885380067156402207357573699820193676740041122777744730520826747364260670303228847584646165575202354674948076181850043251827936572584155349361016466320350410446318659749323494378230240424486649054619373823581290081522585166295945507184206518632728542648442985866181613994755513842703983989646576358180739509943701054316143127885595220116314404946443538893246936848137877823206482914883528356353653487417097422842809949015116908971248196333013756658679235843470319995182886715656572732223934930634101875803508029574539195665047134786679534653151428053645590859079500558938980350414867513148522826825074832709381855539666834700546793786646054421758613693714499745678884181555111663776857678166615450614973776970033175611212433658678648900052695100622102587820192643612669885212250757220634233331617231624958503538034679396209443582318127453971384108506417943429870533138930290877094821102170999143782076174682488301227467091317428515822951882459431413293948367546191271208266053478457896823805129595630891855618589618070911070919891146369773158623954579165625008712471807413757838917466192227060764149174917901953841716345328300696098738414615932684944590109394017632571212748912958869264863863965933496953529614833740435673487979804771779095263951936723830268110392240025259807989718956350295944811935993385736671660805346086163189881977265587341952619503964319236448810901140540708772876937647220107968562713988170638959955045530048865497803263438022243091935235350499165024926535679930709096572788766617947443423657343032172617309402232679375452237302856342991668848181370504678100396065617806155886282088870650477888817057187573233370603377511453853917322830005549549068697713819596074029015277266718960626582688111665644268239835208861958299375402432540591885475031215732727043129140351660481716077779326443190652760879291233968318396721592423251424194814228206149755860578832024587902529303914848920407433608429692578036502779493365619003520063706791975331295183059490391917927426534686077483631049547606143024741002174433396818335463661675834904429409262569029944904838787509866747841849383121107414441857343347743695187984275487268860359724666180526275169954162473238465725513787713233658894173069427320062112625350119498010037327756821089131304097649296436714075433943659248500900885620297391989943888451766062094282781681674003824730439582025008081472036830826743593853732265892162851392114008888639559572776456465503336924492140678133810867319465501021577919666615369148908271571815844907741943373229659422973123534184453788971762104880786160717964126486481849572222358702906406405747859567899879902748973647122986749610553053190165553838162891383849386445668594430723010043707774810031430487491590267275265100905659475170132305998852893895083650415628420969975536480649248366889396016835934526390536684770653673706929719981939832805428980607480995551212330951473938951234475723377144786643075165724727499334672345281267980934260789652571296140655725269849885590697909304054640538993002326802641418631879914328484821985472059343629611640051937424038223340689315623771187638504127232084889736364890724547976476752443616808359427378414648987722803529870502039607095117997776473118964504071495524841212706401419495478757457504394969672126707666485767873153455475211604841044965847613432145889124611411950383191043323407466412567169041710644704609996757636474923224073437827642399457094326811116937170538910548610024778436487607292324876229380479495036434612166645688251608566663814129692429206535528756875513650547947939451184173712102007970845067804781418745713038250340345677848185360538087711594985696854002781860235006067956508970330568573384231532530163193710474448238998452600149958681038138362524027004783743992710590601458607733289914936455944511461860000573284518576611542744385179959558371141174059806296568867811690201555710326560259265730610920957249054010220073892579262822971498038950591775467959689355634047280629069383187016607988530266495814703711223167776795658196465693113015936837437224582748652832192879216865316691369015497003100425896829860370389331577413306402342265951610721177532102541029829272285333767003122663622993837276949257905986273988371889919907051755332027948562373443996889102844509244505577057618039472130312512380649888758851622393078035661350793045024153805612280041696961387843302785640485176931335028801305321863069511434515873836517338519333621857134576408745746423398724373264757460377974972159972978838008888983483252449057228678799811338875534440330040889711716485456732618278212370817864376971260626816582546867246732111536994170771846367751933389850178840840261799286034619227872586642452599832674481913163144524240550773593361224079841946471221354341540630194704506040261334440747038741903868399239908095392877384241413745921725754965997124172231986997949786225202009119528383853671527225453031042285338176030417143748100478219999674892269049750421295637857395257797795154935323167619820431066050138538976826871082968263900926349474783846998475439137683770402938465900521950742005775831158098787686714506202014964993522716607699650005516409576689286696018636176222853380065634752859151334141285476674227461548003350427935269613794592805011526555969112975113555883812110170146927441570900843058015792591325208092170386479972482739338735422837181743208836050026786399438071871548569857297188740924950561539623093601361607368586412388528877164314127883048975173517234426713895335534213224459798077010574831294499368402076251823089026216745893442293389323458261394208601013736962119217063819629262664554375489416501389455548113427482157157827843646127411935631523315019968446920932273793810193446102832294625535349056712268090750649829169162888387400386430217659138769276032798746222279867496740746786364777379653536821281459899596937191960329010966009776260983470152773186175960669931517826151889203608102724844874418988368493431370769461853529508307236280710881264978469172787154439949707288426399353372414458109759568760343861971651714675761486476696931273858199474722122206524677131975962070288206969398136185997502422033683307940124832822252004170687264558946848735942405780524613868713291635460214472339502639871945161768719759087862567325864892009550481627294406789733331599041103017232336823733243751640847829304180839640672799130165040645079884880897545043841193243322494231966801953909395798442359763069244418834696649324752488197565998386530855882986929230655071963568341155928699585102412756100606264814197544019584360250834160803656488421173689242517798812036718063963071141473804138670464531752671298846833826520808719147311774468785343788174198796983749570449877427264682962655070123204575475886176237172091596196165585437145179310655114688841119082069389501570491790935907790098220038007153031711592074780056857075303197271475107826101651076650956320977788009383017576461408576382583556324382575041747672031180586333403742009672420985656761445318978840207667655022276076295777636565124717261997828217985228543907962384261831234667329618787309979659100184067375642072731464395869317901279116446025059439672111345422752402563240799314364563650539368035871178412858050594176149582977276358365825247352407060259393054001919277995015563095114617411899587923715553997624028265816034323676213782830107716992713342521522858427062976662604213104291651150532461623501513321579409599787083035279171886931484034947577812320927763353691804519045351944488702471059291983548370421815967220071811602810672827956895158453721828517680172374457933523179576638727275400028961208817619389451771426544883215661891637853788460283245403957106716199255834623056133434544019771118467126180195071676322181797153202028374028983496067330951535759559235926466787870756191831287037006763473239821744197356499237094533583653232033422013909441513434124152583034363284314983825221280609861600757204528478922821916052262015676143777007515642751695142349988225568360473794472101522666854974590899471395327817890161164406826661285929351375375233764587862594935399365084647547242508902826040994513552655427799320785073893058660075490661235933769212193265496384588005998227373661522041945809621523356653898972258567552393938173908496237359017201040230792224026424304925163700953602974339739098844948897298341668821919626307161387193850793017667395300769509723710766379233754178089031573284779361444968812685426306970127291001488790731943884855228755821541270830456083478994706838594156485436322876862981144275891057802953528286469358529083670968905641232233487873422550851111410304841385248081962426187887837718703151427183274972472067417358660955424803314912733807454397870852995476228101213531941902535724361778599309753677644133464869887984487153896212314729529654670169530329818309684117842361711021747056573936344504326922685061271180902812271196691207131986192685460203938379227931522701709518884744350810070191390531504745111797533513562153757206322452993268923812393545570314634672771335783248493783175854542678932286148039329814260344373299334228821291112918284582436026565718205930265290086915659582331812350930060095854432117371035943296116634696456942953550679974024626626855280456524780980674428988855499138973517122981726309782531258789360680875404217014074676673918212081505154254386902518170393158737389353908391924422382746972333748289543233698282023936960085225368447972170206628577445249644006698609903173589711020022512900279574893641018226734638110865489205249847511481565636509299617835356551155889036529915576154995941293125645232750066955645509875563091899995040026166612628492177619054229234094120015397332063156969756746308106893794510216839366203370608017443395433114181708749507814438064674546563489901192586192108295151266337852985103093492130477277039562758387081451783214259469089683083470673906738235255212914804798370443732790604857860361035205817664861892050110046371273700755575415464161615886266970005468210063882254551665486796409840783742552565871581843598568639542194600373127950951197440603306707935540261353464816561106843060733402276169868632355809843883578825211902299508201045078099572478875760040142192114860276523305326436320477736725213411218816438609563264523780814273255392080454974049671642155166119775716698220663664072695950138986081030059224706217819752761695827583581657206297422106003325112348144624137238693162240400027652112885492981457409355548208207785410785840959506025529155109104297873347499595164921539619864990035278125683647037642195363755810454559986386697446133539252088690022887390058090747957111889226746835421156245107284696782888124520969698821729356525201493341192564768758363959997649213619244781248715992379040900814093636879531136193348401399900412222395518868383505147933627919241117846767914098016324541567815480257760070786896147002484650556761828904159100528064209939064537045639567179513317143790024570280562927271504244440838918842717760340778298931656806076663498043884040738085207728075489722963732617001665041219451665301188016204096035807720697219332315450528260451640147105121185884135591791322212272959160374720922654796194246925598791279026379542774137398863782345141076075260945392068108434230513719921789814669710730549453566735703523158280855116274097164714263273724085594720894472576668777272505902903536661981496248914797645393245002655630401336009213405572846500283174236207267803904545857658574075977241705070721974063721242315555087716592912986905479767135669358743586553429746707959780092066503667674280417266081464662344562216375965006899787097306568107499486404717543047768302247438052089378171040437015522814222695919836456848755081982586252351598929696097267503046808361672841881798432130792604939532381034206500954568825709496183965468580888073898977175494631688143695126699678794874861230990119220230070699415834685786698761555411444614999945957317431435010107762445713740169055866657260730252247485109670120523224577001390046572891645645786442649752158394130799512460318893379154362932563776228423386744068198753872767846937992263346726803926105620501242604182718960489636318714328391191679131361621595308969346180050362830182050525877988907959032140671380406140457484687452795883728518990404768721107045932612554708507022880426799839752358653429033331598731214253548169129429756327776729541127091487186363326497626695361305844004480025928037820087177743121845101032643789635754160941177044885201467449766075166353421251747955302025722502377667431871809587217123696865763492278388190734500194601999737657272618655689822444626078422757056324801650417854094258581985598814240039919714408071028968872073254309177965115710990382111200626065417380595392116643550095370465490617786174262194265558170123615864576428045165135804088604821109761002797505576307771338813941621242490142198093264308260602742409761031398482231924414551900592679451048307892618142584490331860726323759250721147711717097683224963715949691733349859733680850162732234647026624729520575473641559153361176406423878294101372238712639919828665256225662316226764291937100877906281288460050617232597797292552053774597904946317920413024444611050081629017110019043060168806737380344312255030185396207515099865069218694594015937193299127863947110306111477409017625362198330805963568953380728925850288844210031190380990050934349859432945871769874685250740290305511902174897173281121110348871614517408667870246068159327420573280238952253798660365780269584680827045283456652513243092588484279273201921895994721072522903652261521346018915155879743636581767602834864834009260802809022179300647220756412381382665103183590190903511018657914644517960216343862454791910942025947261878661360154365214952667084331060133155631051005738131519265682032196931255553372013229112607350319325019890185167444434932386467101779407726814376385611892202251405547757280587295328796302967662538097035778108267473229407311065520341212148759497543811527140324312059559419943170495745940223885799425208142037670476729054836897428260226379919211971738313223701245009453952450451469928655806091525214701998390361437997680639745873631778076414198196872201370978776094019900662863121555870685651356061200983189737679749759441121122928821248689471689749098336015358935155828041767981355399358542632278255362773150620619952360667728255478648333370009605582307015826859289823985864664877265470359619600999749386531311212339052829232410340743507346234050452861966167310105106606428136779091215569940054047228283385555680414526550119172296249225721446109242375193386745790503150139575179677437172738388530295343689809244612728639172095123112461421391046455174036067494973118830417995796142215816324505771510079281048748042866823354007012967739870494351984052344965169978012728487225300388736760648849145103009317144945126368427386690739539008410960891041205609926918913332232712651820263626888280758688999838814271341772895202343073442953261323711805682780588663765471408911190922354000369035218380672420301940867403519716576113896414297278759684391451874176256904256708131231029702204592350635785736819167439153047424223130201442770867408152237144388877495949516998899940426160483230290817303916709969352435665893832346229217201476314790845580768076472069526084425445315068423182546010948748838004992225553904865312896116327385405094778143835002793450132898924078719232107995921905262627060554259947640604090507655360036363805812834369569878293274197590624817455118124902627641315201441276988468601656410203367105786507977250619903481260205561259792606489076158905148886540439701888005882230925318454222520530379764841986897892728546171778205293073255829858466018000230014078799928867523857391119913770271792176445368389737826306785370068784140366127844227802494435669528178694282225727258604391089122637963309137947672048112584314524819367490055811394233522619370520076049595260711403206976151616499172332196623955416895877000581972447779285482624660295911533870005208767460864437828855078676401542497279242291363912365708890495212638548743308294397961792459996270112026833602101541403861544095868577085332782388773184321735378555575846399162447956015459560673038410406507091782534082126313299919666640320292545979286372871717655142777014050160351787861870926283653907262595184358338437216908568798664040546826205980161042001340803496920647858744013476137239838107743383870890377302886185990066689966022544163354230485736873243413188403847637424943144758520639079131661421870298591657990602024234415870227568790049661285443685253392834086483230635862951530551194570866791136148665432895910393747661600414100081762392389693374262661667773375671515805628977438338404393377300955360724955663169497889784501465170392362168269887372039618024820649671652554652140755679548965531758313243927638323559403290130960234412965857794908240717952031195070806650876205374961530344649452817498968599634844185713204979808499331151402592270682930076927458505279353586463492437811409970338274795202918874410659781967375795692008410179579677568426908468604736884286181928002272111927084852689875329550291048181498226302464932013663517359877237965886619959415703819069098196603265313754334362949158872949363931134851221921978278872828229256840528227896819427699239954494056333506977273837894675799326289656910445133786395952550627445666797587576378606101992465533714509387751064754773999006583065225223185435482163258887742918206156585764387124497330694460659468118711920321506349938536739813193119423442450324042227284636421658015069578859261893012408055783900889424042827198928918193933592474152247112176316632158414321502304289288952445515697009337067598652366415593923850854104218557237904922296768801140699819904402146322737471393687653246352001057641948048907466342404005267724059456467930152444179523840957666402307989059843137964470874734146807336931177761647389202388106296984482599880610939795370587206243212061787120131867192173498697323899362898496594792320051743385691466516588001676812703379095367372242402597096267045205641229628716094087104600209340734723451123199452231465992677989624462197030821737201876406482301507208258547362115213291879821337144854013155648222496244779252906627166429269785382658166949689805899096997594597016895706198780777994856331169991362144702172384528447775851551982290264958820981199766075181095769634832161489227297590895493136568720084543032294809801488961160708745308337155071540701920564252354683593697466388583240827391441568019536653446129379142017672904557360762645988145545535397703571284408184571573317423596800478747430145726398984444736347498023879472923965345667638420000948066178597872693277911287141319511743143250544884261885348774826761406261394158943432736226857038852760956198544753654625721463519838376354990551335526395231771284147852944776714606485150299439949363799062802935591995671592302575681407749569220787715770544770747850311526132639073191401924913962788021902184438204298243696751818949259633727400481400283290223949143894928646410038530424823203613639015510062406396940232711506751992026956940450892388546050650149066645333389567620842542093417043304224920092067093902029728161790513989470682775172424561674264996638429788111773664907358906697569624659944906521318036053856235260071089710405772878389241543605185689685947967589399141041824000475768208764332644664338328963711040341524033867120097548847947015056907604325948189933030162180691848561563843141022075995035707339310796018733116753960605698368626588537000057191359350667625855002472530263409064145511035736189813675157648050375403882009154978254735900007096596687644933782993370308329710049810755048238595804106136649303859401463375696719581866015786026243970833080665108474748242050214918340942539933886686184415738318459838923344583166987664748764409689059884713425828337486298270922370607567392553798433374195202746674747224151859272521619662233336072616179814441755026040575259531573164399751026834130577541082143953864035719949075932866152418219846979795037212983943227625436443726738944551437476806387349243922577638182656166117956143840006992308409605684701638435699942073909803495251654742069331599677126046780880483759164743011899411158764812394088277059356165166684226989413285569878228003644766630897228151198158585050608907353896847019085375263119237207360256348574487204232565296049351827560695715612976649550308267942547132266126137048227289660841900671139068827822913501457083842678464032653102733674882137436998543615014420672534613700382282248874881229594584885244446191138173977776550970347402749785931218558516916556540668952406721670019648367866331163907139368305499527763702753083000080509207858499281290590038795168412657296960507432110985831570306665470636263209637485036349269770470752300391254684950715699535456319325830445752498842125020177135289344461909652305068506568087279077874057940398101211943801226489302616815134322172262091972495039758142047415187124182012278532461680803436455504321298445576501976619331516427367096290739726541942844963820564731488225807534114727956080874227245992466339470292955951845504210123207665368924656039361903961318130817084667944978195338968294400273925629559133250667497744631842132715364521681433620690302779975396025531863790046988635164496521916548437275730154717548866135572042024042290735787857643206396284423814596053453695351302861462030194627946644732214338033933077916516056561313425291848642924267659114354583427170900661141580554300611198726187518745863139834927028792027214479145422747404272135673988848071621756191105090829063064727448326952950857962624826936052329310853673607193105753627606216301357690248637639914727808404340973570557899945179203855053266675095284003836310527884665898092125029513392139828446344559676953825395877146903675438633828905246288350435475311604195551575395954969230571071811684512633720210358045466930488730168784316981005443259078969738785807879257750223534281922835030234525012737580725704821900708452240603903894156755219032034234152151549936842830176819212400024623943309124303705605154173294487877255022352952420510931169649380247829203438938445755516755259450605753326728856577750384220584261585802590349720101757005459155627833459925442513591332706559624228809079309166287605784238452317613057766509788164016075004497972484462611334176016964363853989542613431521463200027151759683085827326393770460128465368421819277158921963413958849740802245012034849152558983993991024740481581872678368441031556105683043450881642017009118440061966040999587463219072321430402066570224512038281128866853888555983860032628276331088538829957500786548863929721261447699447275145236063468155182007382358902320418396586563555912809091117197192702377945983105617585312812658781778800906636256112303138028132923344514770668885067504105084316719964086791667118079347927639728457522209464498162414249074392796680103915447679149367723281952744270940177649874290388131447073497941039269608206840160709895007600821467464328982173232728944893544204392301155836576375539469797788797305639760422118787375703826488267539163959576142834073250362961315296260260279516789048747091484757685172304931099759947138609266389972803754096595785553206598307997142863375909660944239919464474578017641207721095796614311608105738417432928121116733641270977995901696311964801168795353524761225484259506129436772821438392459375190822981169743313110992859758724029493938580615660232964750522621751798287997138310684322966263344934588184933135318697176889862574963008591048311934602797080969490389822260909145395807800539259781881774324516049691626556884340199561481669376010792855546702656214323630880446315956001066366304838990359225923027936777298122521709665412846298010655480367507005973662278535959162531724361723657941557323134097875349240805733236466028372548056716312677734889160719240216867790841585397930721596476097016282483806096215844857373476801854890739892553659773257523149871269921293830881560684044234946102984119669432886302868589889523852186212579486232372494720319095866546118907237804944821639030252416364314815232785835659613048258843310780119629076023795614186221939336615823022589773488588958530500489199152531586304413996969189816433870756046922094148793055245117391792296630833097137501179138139215462616966503017559506964743310232971632537725022807644006096513573940080322194400338155815832869647344286775846375398230923287793115220544327455441850944871770506654968575747004778163967766749406600980653226599024771571872063805401349020942950769313004788350215193671540820979763835395213739341901464062051395727466178761827193937984534485379021210788096970820641552299028329459695769503426371935154372829790216961366275727861565459148698335881795293761223422945557419676165117713337225736153530296135801808940274692892734891418154400617792614025108569995678933373939802030209942853517276648593682463257586237404615815684769318174302727209631316868759328446902472235030106339590447537169591318620468412130283286885214769199436873958727221916560938755533986360901588657629324810237259770439200912064187530423613561104089055434729416149911323464527905021001580894034823356994761520861815211750564594684710020510296348312898549278890830256379114766351684389502348236501428520067624046141689224361325240730879191130273790587803318108368534523137859874966590051062223938193450809437244360825027143534479125809781575382320000331642327675259995928007646013325106287828416199904045210411507588389087880751904443080977007978159343342469224268735171193050257881715396866670209452110351990957506249913327806975574651586256089083503522243532744122528825342869327119101985912054840517230650532488722119076174762292360107338944865684930348869501748667977821664154497194891222594046738756875074122224628899207093442674143450558146647047113773769988684669941856785344878980289666312288004193928158618996695341961457873254248354494948815518564244950427215297257623734090177663459155194477394553498581912422086831260035711517740855581349431230570861347379327393445220546715456088046866255644713341574545417588188478770691807735045444346386291832288992605979184822125466507752305195565480172589975109253368243908449364525950103392888481240574067627762329731132622571309271635309842069842811530683945973686222392043508992421555755611367972836348041309810727059128644079723918059099842527809835232841256976966395560307786169173995548332060221026341767473344560850861147769757750133789632163256613988130684039200383541881329154500985951222831548429757595358266797861918182788111014716486098895349106197629518424123953051633758124714047902567162048346892811065831868026739889619658170176807335729011537484368666465297206659609730764445861421238263867080702475129945886227051528866475369820760791139726606400799943584245891888558623013527909979797423889157080946536870943083552999231887881454468225834557982570277962930039250584316800981475786306518016743257270207664836162208325288743717540586481394298424296014048674031401527805430453386896963461982481636355577173286038935228721161132384784202697355773159601982952388186194847836038267929038417112471550962339007669434824180241267080623289890117123643562674745900133209649709854341173146142145920062768050709486550471648388049151389488667046547880135088247787141302000419823025885322068492704788453496356485835288965863513754633998809322634889657350961241633880841817994105420225574060007458735735760046090091351869734146983038422524106245615214518777502409861413457962435097839056441209075711346249762280000982117892321413826099425904304594241074176525732624380471327049817883299334436724846106580427620035494382552165604674150275337720793540282919535861309237907528887091462789407979620458767210451007607665678052906901131687787800283162305464248467413131391510736091927019214393017431813576248779461256681445485755882149905499726343436054141647731937416201169747894874558724901891686052327339444209271663812737419691280534520584209873749672109435189347777760827491186298002011184973299350370851018072122703167005395596944412718498739888268936838288409166044827092538719693056296129248534408951703871257501718893862697836261316693333709978535649188412789793025112289937271298177513996162581845749341268594669389933040420981634840379198632743865095743170685281675528251993788846695105214101719628891217208438928195665632522954830600779715482965901681126365005513172778128663335581222628522162698612624229314575573115697404800286598885073033445527536448657787016523415129345830951232512174743824607051073620326681543349588317626149550526854544638878397286091819240436739553934037279919899730960481498904101275851229812117404715717158051890326405692532604921944384431236291081193751476414491000321513419602003998151832194441332274266956368443502582279386427303335661544964174427553181677354200310066615432067260419926536638753713579233054895934583736476492064569383143410242019589706247584171217917629289300837115087183184194624923230944594705377038845839549763265852692098354535840905408415619629215742984084328469175415420175592982109410374002552407519609235270916207888185552397963937796858980047055842253306940566009174312872645795959012841598394326934526152605327503627045871659771178610363586993278331714853683113396601443431648315805858215256253988179242210781627238210445204995924775782310539099681058279420091837323346255148216810799908462989202982474087214834484485566169862317851373954111798525808034451663303742176202219448620658897956019996218560805478265232387694807279897105586774351450968287789356103236904514670632933552594047597401243673089842548571315448616354750955855501044831014088167256355883961385798962658570920266056236398489950048177071445986126197061619832168933690113959649573226543416698355187585906631311348532807728266919414673102161363570756359564699243238724280682215009810661978159550976083404656743478274557124482800445832481529620528013708131831257614464599032230523479350470534137662754018158767195183454946344204078148132916494435310988565197206901960398426930574213404263818686951518924131276969070201194201267236679714986819644531729717549851734307984655253856784827464940292497746726676027719767215536910295082693811781282107303651335912490682639057303188559902129675202000723372149990419678902171126632788422603327751572937547623094175614111222834726374752506813059240132972644508213196388788768742014441598217761804366688038917045583581291435371421382242665267125334607029051987226494223538605515598994322915704976474566552157699292422225376424408141819221061111249457039427093888670883974299191591130787487892378763486730937023476674103160742321083841248838384875125636102691542921595851496927441039441660783455099491190541601547436764001636211806043147748296396004974884911284733822715389417253514802355507858334834126451161892201294325312587950054588358306187199032283814509268674509283145162609217233458702109644174791578683222690918005515700705983563465558219757958157081745787321826798806975626336466665139907952405361340694633585208478698875846383327648635458037553269422467558196785841827718957006424497744619282061171075381055473664976651509512816660457771008510514011233108200888102958543429369869748854737559124787608861867846869621760930702055295412462612719086841953208269680193602254110627777214073323330777774137362463079498792096680386551909102982057596939745473113709859045269939714263507594631833681716624813209887798789739623674642685489555687935959505384604335306698107998345357368820030903016600839149401226505635454042019749130669519136831081275409572669098035451989371590453647187305290775089872436097416922579891863362349474862481334806777333066829658015346316509861670537269632597348897133978687398785608615365833841612948798911181205553327653443215044240394277394462348871912150999844821916036921646712712158552631010698115536897486024210465841125978584598903398949369143967331869702837582101227243416425495786443548926394381594725350158378505643489048003781521530600296501236622077505189144115328246172648512246942084508790677563572455467511431328496001870066905169968445044068026758454074161683525234636045056629668815459029080553634105405764579489871969237168696755832495166444490761261218686307194920496714416520261335493638951426071286675296796849169965715833102416061514429945929419020747772335890842081060048317905949316966531219630520250955656253998820429140198825375176950986271928204104768399694912399358331151972093395286704342275586734875442312896338799088170672293625711871416889584530991390035777040389743876420698472160341442352959425481636912355014831703003225204167734896743211715544095907355378110250008139071902261588485433577334299537747216362651051107924339128938305543203684468252741315053190508444512254493841263816705402502140856808701220398028631383125974741358867791081921537719157754181819565973738990954896608724030618822784980411468214316087773275854474715858896052980397907737926997714755534274603525999939844563429295730962449902332308053324297555296202200932180164545249206543280999388946271792995460322918373172784692500160823785365808183659937268635713944299510339802914795657779041891337628805325881607705541247931674405344487455214959281517529935913152779339570822918835092939603980187553022209263948424603475730669897779702724303673886807256148593151991714440846687298838363219128385761134650237660306067224004581330843833321444937330284605834539450383154637122944985806067189988728743551357020024503201684889688887761826124428893118650708610032296920630573300164559041125284313819492778124630627223906124412858090488153785909802048201625776563633682800011095249927746721073379800039748110001088061083948572066849924152437794058392620720391762956747809886898925883806169561582284160454743490213061079237473339419459450809288909706669731858961387393112479635931703207908183887022397943735480112651031574468051363467371026218937777541871764182610108672144350560135393938879334392402567569541788064817303215422846465545694096059611444017535039218860352073120397879316508706372131800952296477150137900456867376053641725102229556541835357216716905595726706723856302775269407527181862766745292109270219944121946664800976674221825589506270485484186151492841466754237459517467512889001563217299407931778517240525131467313849911756184221063639312699231539464611446655363497288665838776126389141514513611159287645389253190538807561666145500212050502148947211869698631133545331011994436037844819317610517049728408277410303657048614536604479493640539379640490769165048153683663405344707948332763255768033357364198352016446621884069653273107173117324118851878118957200087496858203436971344169229823169066966292717645132729582319498244914735646478677141416417576565358710582686007589760693163538851942497345199651027382702959918582447680821317140671930803607908171263335289026755036608364306367051183102268294476682838699241919948485744481911626791537546330839115564357739951411614503920416694170294531137208367838486458022868832435273061678574199101236552725392948440500040244260977116354620036069993557981042828991519001798646636591062679836798570122972585225239289937858342021537863952731746695858545684931401371233706350430218394925276254903560913479165373184023978128162824879176406096630485485669626248499791945976998210269069941683953145526066813455370043490678247285490590589755447997211348584497002335426851323151921247437708000141676599844736110116598751705269370544228670636897402074336232565990604052816301259707622413179659991585952880824765488410287201474687161909477476514327976973192775609460104845591167937987868651939352375257619796979874052237118017291764034531460899959222808528464254443178679202588570488480242290671837537078140547397926592571507722902140857462773974703989384370027002850790937137014087744604616275029089490385184774583644488459427571679179096826149346817858903655226786601933929435137466818678934871132027170631826627790737164524929263874014992713351975390385548932160615713394021279735279445386395666423246938221216946214751514292640842898892713714805296282618942425680179846658166222304181441978733005493738374841756706033714896516802283041776687980444539710707073656655859413129252483680558267096479356406349093538502220249631303773947532234345589603659663360498464523699679667987457950137381627369660585929853174283744330801587299246139878722349656994677343968418854941216518170149687861428722921410910429971968290933607251989039157880542165095376674325738185997774770913008201158211177323807118870960930107979491187353395877762186648039363548468653791040202413713802467820498705283620895416163572583869924817829062332018117643804778715625805969857525130429756251121470557209881600921960056443557968744447729039954918339251867312473329427882872332977309993538662516929921707649839225510705145849434649160447746824880417280404152837360533015835317326816396865985814050985363037736374357301294278742210549715008478099614597530417768211111582478527856793377443821634695082070695851987691695445379331955302320949448971629441962990032652801866832197004642795395877890830076747059760901312232130450805853835561524998804474088939793417598736660450955021068000200644416941264498299561805988069182154925797247492498185396560214254831331887756777136295687851802981463411076245689572064510379405212664702554221888853557198988371309793899213147434257330575622025553296844000638193833017524589180503081818168671048184317722948040532770284482620767791355142891101960972460476771899464767915907866256875864151769778612622018646567507828310262284154849462136737619650941601460332184331555797318106998073793465133635904337416996155258828303121131922610251092208179252817441045998040607138505704120171733440875267816462025526177414782202829045606243276307687028848949880084221789025956406254942809525275083961455465321939020896100174878070667310594073556645677030029853749478391163678283425573746598183385823766724051920497189080343854132174904512447018616267155623982418562077158154535691621881997568484918095606228944243445844503803704729147783151066935458680091026545239378934939786078916304754114465627919818667843101389275635409742821551139860396333375834466631168176387340329885602593066361588962678666262666035274308208840323037522142907193160500985816536466446760702292747440024813676072443116858064944224238130469052680913082312589007364874815482309221507810121187569949477399951797122557940420586485736712572808248935149735832284592120834051291217580323020300479146713209251450257278124702442827772486002999290421478713810861882679204559009856668194213453859063303081068742511785189842714601599326263466311396541640554952363841797603430316224198351715831427558892032343821325527517776384024130572263454964275590488068516041029444812646210673848249419071216659979818665414544931642071045761196824799417661720037474688308228496230583448836062731564116371263603767079231297570847514645743403868781215599756381168031109442389234913614577702877025276806347162559981361093493127241451553419406865590299333498220139242857696768732173171840066031324701246031281427469430732607920665000971526910198238161987312247783270879629887908280160127005273074281375537809262494795711532195833031673277741875630788267800155807362173145857213615638551391994585610964814325208259468475306917758912413744452524335549940259998901523371018792338716873462301429194895912614255648334858685518169666976443371785344920028187561449639364950108251564003899542765188803635652183438799959232316675467256120232803698035748282900303295511253769217233532012346029975595625477768890193810910243401229780090667199456064927190721225557359262147479262864125567912113419502260358179263858237354100312144162213111733215735266063602512394388270417073584745785238557602945170520632654585984904398855817083837429488760473393618280056510577236400446221610971425311190078596004623812457946360037796054711549030800732697684801669574222065309383793773916033143928410524253498921763470252793168214685310343376926894926253230205025616229224192654997243686323131693974909341378987315723982675325473987449967047675916008044327068099681268289436804001928019091116536083549687961242052801587327909153125695673144001256640665414759860731210027320403514819655014824011578872305086782547172290518205460563488990017388786494720317646086287014721620010889993656672964574517532836590910763015159668097616335934777953582221504947417894045363902471397476937785756298644240251826096084052200057241192888930456570731699134518213770205646971666188006819762073998607361612407645239829502581900197591738295261828743257545752304857840665023517725485567621175186856977391018898014419937947973651340086141813952001131861532578259487297248942583748636974244471959301344739938688109320816993821296539561431311099728354600388500347562684400595773201149793353889515449012652208583794769529392215701369779225193203112755897531143589599146483704153995095192898207725772991132265872936720396122797689185208043015501314680006621961270639809998485110856477804562112498294134581396803832869523739975589470899590620297594056659050400421340539624575271785672718325099927029962449643807517306198640317589456744381749033882894082620360225740877832588149537574727788669597047650307069720162986209913998742602084716164868553389682589292702435743499477899158432687114614539862011211319817226802971334397767519570551265225262277756819585945908054346900667590592556537913869153808465578841842087230393516523505012647663595542440170921809324698741283812320168063445316613800604668278013198955373545022980857250006143498847921604648452007173237414787150257862821799238742222746692836928275884916878301104576309867298781633363862402451800083281271267713219502088286149520096474038839824334437212623533549317514130132912116259953002673762660623851162011955063440933228262049198067715545418247739166180877521853615455164573457537484122654182932155300998255914364621385109834481610624645139942923617289472759011837744278598747785052118246805088678128503640778743163111466229736223515651852168543563378547286642367020923649364909298665094606677989538537317829474187330466600628324815608983894281888644661840070740901810630895707234643956390706599072451156105833312752506123185424519166903307275914300551420298892791970011459268684532047642865246552355564777778542075941480979662428335624815082907588984818699642498726746201101760487540515638985959376258041091875765869288153259319961826796465707504639487303249673674443927244002932485929904679766546427688720086301267569532502193525148468333644439272635407146399410671507856335961248714659739666289944764043743128309906843508961955267830425081726887884878929211730930152014034000858345975353033993252747791799748710975109900238991475392921597875505228466302314878350405013497242004934952226684531603074351657226432459383273356733273181020083825354790760112314513830675972861492002702857078596313512945937285412706707457509194364755684012770443109212273449997463257192264233887514934458527383791400421258760773899306260700205527135626324822372799795297595437417317554910666921766904097966530044082666103220692625461934542516110942422508113835613120969319526466917153375898906188196525649588084250124789635563618050998101153691082877016635291801065220168621914826546618795881230546561515684638734806940824788904141923811276842857509503062837906977761905315399328145762434693707474396457849915154192998412091213431550474643102797325027462313866666001955259959566398709014643271106857396034576422642316565089098423192628775618074564510171807057341135857674799976588122904946306182071802406340925388451566640119567540007208781781522166058449494022839838379143478301591944459935624049779761689036007288521577561306410205675375702270306870738485881157080181559022842915828242146984548438554150810402355110816744447493106952598638098698048231567523847230625195016126298631588746753555303364240804187666579897096263074869883199405458016727757336625560205598600512080652966943869607103962134178380310698642224970422836533148060434970847228860238879288719788871281288589084652989963569975068101379614543476640866537211393452810637980035111873545735556512323080990503748335932325193163032566556923568208569235039713932437727387983542886475247208286694864820714181521295595683672145087873067513111623166330188770358894592149342426814180193449084906009995893719695180144195978735743560093460336494151314541730729616184499060726619517873711196257267779600598476595792838656271018255151751608613979220855247526255332357092161268568018617066191601131187993587936879528060201575814739691949726848785930037857733184984530919040090398883527465291492434939332589674100550315119338503465711212494257027862402949342150151230002302652066280959016130397574731063846116290740852966893135636610593139407417727716536605176684681251344247254718927774462062859698359585220431319247935274645978402687858533318445445541110791575994327414546547878982234784104409743324673201181427980689829523759235505509591931410988182417372450148484237151032947548704228385775298088342474535378537553235356841298999221551288370322727848198883737991831674237660571250749746046719714493011197808394726114354246338304945340193448468648027795417899644769044511927232372419542678661050737038371028111697117280886052394784714060969220091009171619256210496487435475105482918694893996777856467928818750035269318656822302482251536411555168815085400831464924310225982422823604859926657077992365175212458241774830609803404010175917389988379223045364746420963660979680683157275399825316745960101636788174635881546296435209371301408494071474035044642003276638566014081701108632034533848242607878735262967804144145100491223578326541775095518453226018278801232627412768935572893331477452749004511176177602705812701505850604726066698618414857509510042052758964814357763693567777454292779290321831114272770947608612869189931941232689269929826940252721398841582278058240218515891464451794057486611958175530959092293153231225175957256609358269580985484681781980190043469090834539442628557097543837982867737946219946211419836910615770682263177339074236335018361129518248917337471564414526338960164729428853350563296947519804346961461191463657099551775481203447594724326533421083560396846330985471321780456582670723972891908644624445115517224173919003285454498478572177339700721002949083486559690328545416816911946009291504302377526596777496323058989981816859193951819882178559088696293503959466773017267755997132987617365561805580904845072021491998567234735991834244099168416793746632854194946048340261224926734065741026383564420924200139364330625935745966862873113608451060017444525674964089397033745955956467920068198177203474067078823907741798556968087546226350413029916941594100189812815917869479510539287479632802993565858555195855354747968592861466646823881671328222805461606992880897943703716390566671881334315582600946165428738715846410721436352205027952144874783026304427455044590348890975427197957270831845755060492135473487523881061148382875422387593283170484633058410569554138486716058377217326692993743930669107401394533235160328495095501796048203712649098098225388537837381560626749015494353418612092097116265129864878303427749836316540757439714493226588646388740683477964750133746421603972410587169807482682702135194596880039036772242399106069314770674167934657916416743839935412119075547065903819175108559791639838655115738513559841809927673556519952946532103376027710875784904802333275539431341617693991938082593067755782349277427975432886138144604528052836969261134993850638091656293324494090201903796497829070385387402702037923592870021009023404721942360925695771237465201898678897614248614144914511660273366269576018821102834553506978375355923179051510979470619008970302200559699522252129686536634226487742460938267591624287661590136875216550837408989304089617608918013911388042277591917703633462791820166911986537139636722767324067541383171407668920988138103440462486503045481525749592451664048385574993057738332445811182921845703706064211003315864488528744235800383630408832778177340482887387948770703042983864153514610371803137784242577506057861106474079546975602574610743703410705610654173908969321027808264080224851314576956229226045563589440633976417934095532576506013192181078051184509238323906433552651299068207460569183450238349774248277299039632495921195268780895927964262226831288983040042062868149978830272299841863397420767867174198324831712924318341619115201311108610026452886764086414287873412736506491340303424261623341139137578255360463880160370632034124546435066155808274543099715001685187757903654324921817277670373671445442539386133936566652964524085905538841703960824330394220747244318288033155999571468778756038005073852279247757365304848828662448388330552926337065424341817147600075985890012586105988685965419291533674185901696908077898268886230027149380706538634489661297450163227524355857308188428243552408871721949980627973207424143755758331007975615729067501004057965352126623683981799830384099105422420907709027154837284172229119108606428817377139436049631774636253388658790491213554457209474931610231945926479145637446483079321959675411085794793735499896411170748094542413113609077940548781748987596807918216032313813238879567529360588736932321020913377242537895327574715717545905553215194676689414200463971775507535447056689419496927462067383842567357087388112505485521321214793514527122974934665033485146725844925895157030979736754927806012833637728504925600817829400915779657475374346553312855493232467009049384395179340580325247799959107758644111730166113550108610020410248108001173312845622034923223318411085173828123859272991766800798968602773837724275318535632776416229866662982170269737053942077810094915747704490632693544324784523331968446542520530666818247208940007154600740825911379242773814337410754616381071372110758043716987671009805416085358607405188922269088604337123520511661229627605332651041394368613547811977007517358288306876130827752570730517147576812210547741789896459735223350094641991408565532522822475501721896006596338515552005646221586504177763629263150176117181171859663042439713491483600324575686021726506836852555779152317081082209757438487422047230144462806636498342627733873236524566166931729949129379985158530606983741528203036408183697268823596134944716704403217604301375006855364679747226407042729841457510316756130569197576982354182897317385644608010006815682627670274481831534296641393581111948284669521056571254803057047293521328445483124671352717063052712282922293891964173467157457923668612945534446120473048229383290793003772655840981145357653951624959678846399445529113045781840776888275565108054756905348094887821777172172507709585324883769647376579132808880638979232231606997016579427024124982831790025959643537356793073842938931521689046140992759375181049243657735319721681570415323958732085268512099869881383768612123959776894628281500904337031421894332091873071341715189052541363601943023267914367861360257399484056477039492954841391765002245335371416819956714689276478638348715111001409256597275765577220727490569226755799447394418485146571162750110944922757902440591862327761134976591270142026887827350883023578682151740000699339199531462976706693211499238927631295512310918926766498832337266811786166953326505452165035573914034502055022996953208033556022666217629595928087606889444498368594736857092810577294986418318847934841278962164699023366469092097551701976586323809855772522725850807545880745237128258184357505757535162647745380131779758855646396845716002334288026066126118704670172366713283494960977530150395267148996358090789797113319844653447560876914599156248864581453939460577966349527653119291226720029217415710197265431684624266722234961971194817571208657067082250204051914793961159283738354225365195179911007919640399020961642325997057998367972786265867271852125500871352570388743084732646224764867781107128043935235285783494517596497632286527390118553933482886790300705664401107875200480196516613367326564105163513151826867673310916585969795844309451335177898061621778917053616560386076817436852408223359985157092645715559371903462777760730839794792616246590759604667835990270652458024750450747504452718478885405873083703720797447967823917144557963090134973864812841350012449286931198308185950533039034992947279699067180202843678724723790041389377236441597621160733029960756967246779082217368883809927307045604105082309470073231900192439541631203432518389960292399073251417348636180711564559774049118887294715007957405258288598016595855557335277065640397682629649280316313518999068062523510098382971298227110961692824728941712239831903241959253215997691591913152226150972145926733650577365801163416603659847205449330996170671373150305849746252284052144777458711638142057110464983131484831336300157693312933673747948229607810013409268465766179791102628371216793720361682845600288209756837815660627081451016718839994733809040775727967609590195047198414927241603282962683494241283722206077853812726119057898251609111237871030582065149442327216708000970393215679154105261722342091914653486983057467587390008199987752921432377914874292525860363286284839141930616137272960385901036523566038653687376082606274448936571612118348221682761258106172387416205932236760426625748410835379262076369749321401379256363395332221805717968046308528750087852258545320294242621663524688559905015408426295171277069436355706289898222026698515338308197660282977041544156549749194871271131273798825840057433286191267856884898599161808416908306513688523071665677345728550867429977466081423749830941571171854821284473943241681112245473785294553937669751504913593320826838904894981377289837191663210999561776979207019018007871577083980161295972084685006447351074995726703525684203868992722932219064132053539840562204346555220938153900926611358885713635690169290041272669403885262945070128750892542368713975965269048041799511265526247698921035757282281190431292493410572442831519760024625746582881299473620877213067021348872440389691137975089462719594005684042223292711388390784450058160407573687785470704429401299122599696694685716065883505393939553437558265179545285233789795030026048604129363713563036915907564476839004557461240831026804163461904384230338043888191897436612271914618698333804508570387803703936983020766936806938872112270295162337105158926053710964368230050485618798364422183514092643920372977860480254671387264809744372405548603738931809741897154629214066417736886562102765747850310602834681412755838691226600621144780130733635026162162653080567469802239852910036184044050883203292001849886264524606285601000162777148366760701046665467486746396868232337779790276158457167507159680978563163687382621364511429040493246438913168294517716707615060644701802072092831815299729512380692904497287769137450121152589287168979535450236830259985677047387430627407835922348687951455336193952500368835865365141903503610886619251866346124702228063213897975942977323019882470466317857381483246147139514072555503019519110424899939993664314625515819076720086407392293080876715086030421077047670647834758305920940885098688436806295995638105306049317987910344333873567486140474168213438969108125285009905539244195435160020995434104470481276687791142586813256017881064156323807968934312820972872970555820098322637597591744788175351311380379153587462853876806012900226885204885236444795074181694690606125440759402011343316845879576371916752408549142042890779638378196910645037564705442589378655181245180331306415324545283644684912809439275050118787710374438451728702516480860908856625654518750153783353668773858375186289524065397455185780502902158660285290396655211978729098747629656241800647043561439899884229007680084119376035244862069045701340441138540667015676336388911996478338650638848504708978492291462877991406079467753828174570588801764419547286572143788439427641520661616295968372256064155197596886690643783959938497924770466287902533010737475422219868686918654175762953848334235149456221114229632121917687635166490286246613067919027110693063691283365825565888997965608525964042084354953666186116607569524087516713378509428661978976533995928842097714694431966071528939875203107418121884410289550455823023261414540670707899173649344052599536431520037659798437977633145834606992340029215999072109872806399088022039725604001496337267735165064006540417116873233296617795538168781803185892124922195985526393594803182489777056207852493569831005624329999056441088484871232199143519981176661476713087754589224039546985250179684256613999260678646108962437395761892231052226967087309640505602805052747719262402387162054733354347648304186581722253468425951034718966589759805615812431010742026801298143160683259020769851514615532274637930168001716353625122455234451673004194482135832267737421661255548903845509183038668095068253882930669484831742693515208177337720246341108031163819575309514775636130842966596904278282972405694210749328584807324523771429021861228221657148549556246820865802910762418445318880330114482681975728437801076100092776957365359071116723597422523972989645563680128550885643265522575844590453553598613772471984503835574404753214299429783666045334710252144392993058541253953663682770266504668360465005193184489351210681154296969961354550886891480767019942880702676108286508965740228458036194888635147376197643520627181329681559878626654144615039090179519290710489487787165472523855432946683011222085472549149829707989255585499973561263122009629958072142555336998515987611506382210444147527072867525165116251920285746953436246268500960599449211507118356334408735956033633507507685963211227431581032068001586594163376029179161699413988132353520019661083220422796194031573404579030772787205260138375116341664937567168904922797885714186829605089584555191170989495450363881952532286867712955029514083900324032795568543191911061660136600616562111022607053005970284463119029385307908355678217892887063999303668570294780409261202134450885134537743648064794420451244732755294623663135042925188727606685643603272068346163846661420751382075337248025807798816083410151694794997241752915449743112874531508881286666857275428682123898289369461736023014639644831704902643093214671236297646678720725174366529713089434673497753404087883808841234348670950504700439399229781870121845269376194100556212660762669938281390888725131783595497123742824335361598282131308815263258012673595298261531491210045574718571591248444043732386761966302675310376799367138999452299539155350941505759493686358631960357602434160744152406476912142897097963809731492781043878063101422604902674512873769850375306022909415391014951509505079469567493429682027235842929185444502894930863041626018537015588559128665908176811068426474923359001788691812729884142972974343572307196694200874625406742937674366203741873915325287927496193008842712139270090856204070470539001464015999063875073756122214564106762765412630482877749524297215503093916025886911464941946367207002266610929659934749537356653291182042044751451324745753364874579162549457442548528963757021548088733650128829992619957273084543588546823848007126604012468824579552381315865506820298620981565044203941717705833464844637807020313963615556192353167715766278508080880287336785265556692461030483931773255590963600908557120014662804077028697170537531030363429782976507661033379011412689176399409329607935092254498542927241855654922070388350171721041725993906001583345124282707568820162617291649978882834034496118954194684087092308715328137490905707798749911359146035008437829963024384644215112158582813594294372962177377023273455949490232636884234170540231305515561521823336756346950654177578629562315131952569208885826188795492713830408918056433450942094511695590285535493480257184321511393730213500548830988430867318248397249305766287258628228239729330128307473105791154495849076658362560254759752880738154193508555952833749867260184815987633704689941213355606492379544451479569690863462495791280109695376203791260204206176381926643991176700301780803943808830160873602701182200053038582654053180096006038667216600555526820818979571906796962486988354415204132604131417923850818456523739775323217631720126916996322167330842388684395318734544282044003258347369020718358589206448165978011105388809965873920265374562288814004756041705160502772418368903438573908248080274369975985166927575991737169039995502922992811762453993640272929374840037625380829560522756397570126243898618271874477280231177272606256976726701743433489490309918186711584698644670934881184249771664343498938233964689565828469396976277114541239779383495666167929430874477979582415609643402798609345392511587134024881758189546208796430007176934296758453524259309970765552967333785577855995278065816476975936121359679330971244948436773171714161844414557423860705426117159121264739340032950171664759493900515297893218507225828800859023122390122001021635544600916109467695920101370453877102959430497322476483966339410793548027597790916531903981978131184354215392452909192882301270444081786464689363944541606926290084042970158308126036058670061114937728802721899237561831122648351149760481488808306055812680120659705017197874168037248359040389901648950687383059854718040974437454684288618868815080648353358638071012071766969331633232179304076501953683549170985596873519010072817216441489495351574487960504744315546416780744167644503685859224190093276643728226017082034528705559301107161346845423213268215428741135239721792620566329458104826756035781304156295019635370432630082552871195917845874569686971508487798023386545413705821789023193294587294921140015604100999974827137499560186598180513493191714031486377624668373997787589952270836244782929920429696094289651352576389164303904456457246465058350072299042428814118356174558982226652513644216421241203677262915868422524821649319528495837627699882147433597674699440297107233320686546946830272289152329859013010391015951373311111326857711107829360420824307507867757455489886954114409411436207936633676467369744076975862353329735105576751318472737656585516727627161359357807803997017435161507731861226821240422027856765301124273226700014477855005764325025546676431979403039454027280813815000799832765989575360658836041295186259010013246645276703497568720017848797175598837888456636643353123900136298535217655816625038329005712733783402133690052358203092839424650123634945251998208859145734676321282045161976121464969263798964145106105684138370868916416056084218572727468499162447001595699395663809476828804823962783464755633000528019028612446713689204059977164283726872419019114222428166479363320566393371366296956611468616964989388874347221187450863468600797118731799418493917609893846904509603626306248515461528163925724956449083995523657833042651473618731719851827469012204070502577008847524830081587965054262461438780690031002082938071965892444351021589516150256714319819099487598016284946274067072377299599828413175579234566351531590246260878428775480722855954938030397777496541927508992062354544391487584817979887563743900672415961265855794957184625543208227939429837690675498079443879616089112128999939560774818478587748027481488812482041931170197881900709411598849507386054477201896108229636474182320836232447296581263073187140674418756884584176290921122703207525421965795554478979416444908579125598916445423184022352544101568455262744581738987890741614453805711732709707318027659584938564052767027283009096694576537654325953277820566076148433766993419730578063567799964971860395598589980297319252274771864592590390811234042320109951895014971181312240011287726341264083383753423682778168100053585173345037647319019276526326439998704621703405884087862676424285998439872907658324654210848041741971328448927281463844587657043978862029640193175183994046728210947718618928985840952930187484004916478779622558186579062371394423920478378751045141591304795960793336290304920255640699858207188287412768646908019462818731368727494079451668227990979904968809434211917616329409024733672977249581636609985357117725118757691117877822067878778829872636010928397795536937712182797706921502639220105061732664081126505022414107969848261655801562712272954777942854465745355368878850511961779202753738538701062719318018027353965937172318614032167568315164788469261381788486771412446346693733576073635165651718970370272337834038620509110796690036570451595571944828768056588854002891100682426376025882163566976150583344204032334211067766176992392906403800447802099029836483814432425889935257255970891148424245738116386559941961789153448726192618649800664092316284172143360951745962956747369077836778691654141039693475464170919849182176540816416862802790093384713322955632767225073868610369176410388941655196671056604137026873849851337196845373338526180627225153874145871609419080599803298651183175117549306326212240034752623260680526406951633771856233821654701371609276619777554064148246482525131532890361387849003888146898305374572210935575097379924412278469451375416561775458088104313668617016892252424119009748391882804091840401836771826017419830550701655347094549604625345459159115046622086925728375357526581019449762999279129290658043569909644134657737901651238387706612909407604043514929583424811035668429069427300910015265470821470983223323410382011321571167324199981805483740203224340436382305206366214387430778098507679162753332762091634650198744889832136417270772765855316160721589509045770030046646919654578099520154522133503026911630925616894007585181800695460038822876578088950014572499629642051023674251007925361901542908753295546517577024655892895653546765141481505573373263313931843280470809743941725758968629368930114510924448910353734445044202361525190453017287463463290697231718201456708666458778546357142131945909016851897220074949680685143666117659933103756688438337652600993175910085081893814843565515568259355958388608227284713288976008997736310177832548959192747369962244198394225840037342647299618264072448470620772825947004446917893521789163209590947248941877808314809830422129164100790966195473605449205689505178254711663174347267803878784905819486491112617827986146685710208578857907667508184228708497702340239934358665881209257536944591340833619181714609174952869635366964629453543692607882032312877193404119033766192500979381632601722137855167297765903356142246145809020334750124876230825095123795196807706859493336853627808876895792528013775980452639254883814186245403764373005387390269034928052501302808081204288119372156536531592595721460493858709843074982494855097074859384826245357550188190494078160594272860945593380062983054708905107961371143991148460216736066118084517148336474243655617466919737422850934332910250018004590452261570083322843424276679623145008875055249695778029437069455907816636975905566374273620011452698855884980697481479424622144487333173665985689585363834779054918444982937834920764197762725615845674157972845653975598640334103839784393749110788967378074623330056914172371616920222364330484289863611003734305502662254685225890507793331558530750171981340020037331571924465722637169751888166702631835120965025451335321811599535793714308581365723229735010966730710791357829255126755300339885913903776334313873901326766034547750174758318697289849681960010776628704751396795664958860262560470645678114496537921409432094980301639817032001765288490531287131187732247576399739944766328454330354886576507274952732031779479806234288562989135290997861260983397590164165378750640295642475966037253190438204310721565309562402476203884910468906949142417973634836050778819430478827534030974778171367168534132247892443830882908666709456044877663599820795247241283570581273998986484236846659005125476167043277502735524671580682063170213147938765012601445425261781135032375438048003660395653414459823389576651656935023195591222726933349512237993603017441741012020719999808234479285981562602904661016450274827065431993477093780331466373264737858468525743205768831599108604670955715961207775063810833311364189281220889397541634795447674940117417690492824925459996606474707200472505612828203731449339539779128166008248542616504920092461092732745748151579398685965038364979077457901367181423432569792885728063757351006266989907199076682165101821117670305489611670020735853771275897606264887006048950095375777974109328970548092013870139286187901515567029829987803057453769722762964167483316656434242868257482493118072115871635284586365403966132443588292031169840568413497589121602865865321645890480788323646121741001246209173694399609640169110867770075578592363171210318598427099145392610689925831074007668107019059029514611530680732416503110412785681956011194305627339914227693958709171476188249622534606699111664797224764228200338278471686129736130865825864596914473804172065260320556261942153255875788866002270780445661137811015522103381363486073788407625976024356063718120291836477324188003955365690242110422020038622543224478770550780256698680670243255279215425659785666602103525142042888697054986576582154486019030878708852142451788122801417984575635107659422091148494928719484721432393148255818936673561019546095661947143244499465443204712226669646362471824260221041519216504717155762072306014122755203602479624228333020203163142147680309531956915674512336608942932502615606034524426854385086311680456587532074893168333260378951043684395996811361177707762926020901030230750841056007577241756376486465264934394275629144411482720951983886371031946166416030714620455961101410307811815572419222964678392006278309104262491550598582416744984752394768409332569459012973437823372522622918591450893383886946237409244198709066599059430726685899379139353956240102013380660252339275022773806132474722536557920957915813426597782571923487112432543154537720959081797165678449414303546564785900513783882906121634228686573842569287484687966408260327819370573340206384048649473368347366638544213871195105422768415286708128454814091438360253957100141779267241021287500562866691744993341517832571318911661800671358096544464048672084260040196939851690844970034807145449652425845175242996859791510853815462790604223382640756072566212689967270239919040217575723882984236972466843082323672191346625317534979632695411087577166004632102946434756574283853462855319318499702710575874162024142621056452568641795020488033074454737173668172767675897064800837527636829926666860054420727104854701647160163587586465955914271079713227458617693639235109084534370319955822147851581823652596575310028380125654928069704838022142872650748400992605347435521021492698731444252877655437983151442418634352786755989638035079759487452486785055929029580023765434430956030624617646243246042605253084725490357206862578986764730938674186551255511396664412406373587018907047443096774479684245244478415277475015986451368958858337109497542008117412755956137673397218371785401969352502530945601381057774718413130990395792749757907864882581707790882378600542300203804395756904086300375902538116774429868014114981172000503539937694515187981299815451035007793853605891946522894712144941834149206324941907300628927435013829534648912507805338540856545655094134373511053202374155905131936338489601490294771215049486735821383306489864016940768167013703356591936321339822381474586459012033258876300354675033719246527173103238909163538476381079490210883791935920663247682104768295617723213129639723411654314613811634999282192031406595740559867461146587388748082422278557192803072643336010865409337099860367827744860441653195492783493024409274948916486681360908845264979498348714852698328123334124801561872950164041021132420427288821152903200297760590095963915970653057161107999328592465327793935568534369559843271723292822514486133767781431942775659158500065581320172612465353068333952533322166404265624613908472734616723822822982159171011066727178938336201082903432760555805707247243604116600880202056706777987182329315028640773225683828770000893495712353296083817142947714784929937065493044213541993778141571884932742917876765121190264747329507842265050363902894210516199652682710600957482839812636561547070210343448921588365789666190141759218655802343579943047293075209647195299261632757302404592979177010622672591689169559476425600432831778772000814993256436137943343054262983528739898521488626606037614140313918622862478191131140113617965211842404712782327175318397626909360965427004042570679068519489250003604817301161501391263890264460329280022386058275962865434721996155568907189091502494811675041586099007821155754255878926808259271991433097461176812059382458334417641994623717195282937303632277193335978345223158798410800009525639227628766004032542437748844650876754358548815003373025365271506212876527958152783422689995642004480809527343035023759309398182220720606658127769453103656695110188215126314690413943895491172960620177735792836211626772424310406325526645548753433030493544045776932368131813974189816041493781133318463570074918363557663907644779424530695179095512366659267309052048284222764540428022383075159257866961167659923975870349468925366402282387906972458470809737253009407550633321993998819990309366025186291193915333832829797068214772387922647195213944957205686962195346820210420831515096855820065415719550201022629896205501490110014295302031829514509823566232969731210069628595201025215374365036615160751380636988932812425326039663976849942500758274052282046368954819117485227706298131405520296758602626388188295522385414115627060808245341574337158637404490834568506555173262419196466779442610594218590112202414460847195838676069937283798983047716685228840318852589561927301349367546858356764283015548632841309014774213004959154061941980587202669439365169327918181615590111963758611804809570471641956451009791205468899008178567886883051947832303836141641964939758432735595679157563084616915699846852384868659911358620877429758075512063965481547004915344350705333223006195768693927698961779136615939226149012202375834736599685551622858633501914854274623372049460532739265676106706204956874087723531156316919911501971849853153090656851079965287637608242986388450108757787767877666634296274483896211470267453096185613295901530255017428338576898555110650023326387069062481853872430998485547542988832662514209633415689840835784931699286946207095798958718015625114182805870685213020620969701816077270235527236253225600623297102415201576686261651058077333418160188461906827094543453692089439786990358991321553847500885699881221533279777658958551750371023243831690250480166884377175322337175480940042837568318373830954655550079523481795025892745459263061442166049555120755456277716085386690639936883641734231062135252149417899908079748784559827291590031854053373387100042574687284254207028330417251713644070735160133764851128178142786468805089740228191774639298836912656983215602157844536188842142258458950609384820309400859375888088389355633848229680613519397727108172193349953570183324106541293492779678916199595959478342184984573976146415096344364994590642922438105028640373252915235264898080123254849536001067355465418197447894106252238350805177309581936243659460556595065951799096085153205921355732105813123636593765227821236340561193849458343171391126191700934238656687672841738631854358815968140099173576254833104537012212463394102129417394069010854536580443015863227985966761986995652518556120377149560656376225352458977865037632565628716964422357999064929394146965384222936912462509758748590851245518633305650594466249496306973952171440904611857533487907927959432223087882322200760881636095478429099796698615180672970282407075585377071329854730332986746114864671301786340398943314224306669359638333076357317425754191406626752233176963281584668588240331820034845597778650180158795373447946101076553363684157077954666864943565382583536790481384795881240686983941036493943345274274870783153354468785960224988252335702755703498979662660206596057063367655386526761423381011419797466438151345361525587459524009205069685370343012681224172156968353435490639720364085948809264913614352928332063890110588084296941503670364957170321614490867653071939075322449144669772054149233302347284280989493399187567357162938039737624158453568949765435529251129435089562035855775163566733702583597739223920887210448197932770354970478756461618155762645763658067853530829693374680457613454725008387376728419477177545486070243925789485788090826477696176785963160233283453622586531407252178671858519117135148815661807282893337378817303401152870681387973556109107897744118574728421540244817782274540509624382703511015771806597695190267814076936294276250768569022447068427217379508140494760241892269683601341188456611317977909946697163731778506663648333066601851287867721012889912786194632994201596902551566758358330774346335405276212992572502944088340360234504937908432070333547819688815486807949918900509577203006219012915950329099486864601851679242396556299996771291420514866246849434525865139431107584618649115150116677885902008380837830069190208288086967413822666976096675372470615802965078075550985807180182915596660783778307699701435836929508202181656714192419740368146362432472878961965758233697694986949538953499729446764562597654835909484811849385693253624364431633133435529891050531405956430678570284407962773752404601146457750521865688258832416362871093128689998676764164114754055575594480184373626052118381617869161497816896248280238204332344270500893495589445228792947663411329287184809731567191679051394845936697594056486709648426898548890274673031724976419835941312522339518658402793260660955962079534857834181153455184911776383540913516022551892129874260008729525302839263031902198331705429622380624220072892580921589872736605685524159137831360753391758143665005178380922339800196360400894033620690657567295219867204743460731281693203818681585684343003278810827747066339886460935743586323988995475079694972495516129344562262721147110392855897141316449777583299492947094045388784655778184548116054283936077721062970909200781426565341385740969123003386410172546330526566105627255860769415538256873130746987302849111230944792356250277508496583623123899552724658741833057319766668993375999906074491331784930437666776282951594396293448985060414282112053502835262690093531178384601821590462750778210886917142986775059716497814923621005327636868136291827220636820344522307164190128118363930409015481743825318954083966991483098558629313639847722936779233845899601919473696211706094494738895024143544618435145386269474564866000803200896429703429993006681956127997758278839109585304341206663449638900619531149747912534947528412663232460787393987136525351609329343436624443626013593003922796594254491740372232242709133886141398538783735834128131004999862604588671832837375807535035648629531656738996494779329556976433835365216152839239673502914094958808466692835385785312395650146271073020044003506178416555588618875208631190604032119691091454417166124432567499951992504784577608482420882939900386353780109031885001874774429419479895151699358015427909845124460527567761896522142354772544751476166146599683749843504497424789763977709922978561445882809263861304581270216992270405050794866655980956778508655781743037484303722592724716706678445499176264511759363237623550309223850670148328352844109697653736482354094936211453250222609068728623255877284845113736442154202302044240303185928491328210591795760487926053341938372116401819625415905663972935205147166820492149941015784133662632780170496664404995109658398798527507149351606927585046716151699147302414288403912424212272311404207932585907526340213977353616544417925291408061321982469562219839193193065894935184454071028462565734302222256626664385084362415271688389080875781610501420985936209327105754888738858253246123910847115931292021333317901478660621718034367734944964588802422503932629591524214443724313352404847718379195774425310548387778579633337124588784043284506636909812893977981811717551233630482901264273843795419361735366320967151528639395637576945754861195387671621173544370229500657975230598483270774879320165643235277828684114909101456985947072993616138835319200374964883372145980035758931024343595644418711686794244534343846884895241342761550626242414980901326566776322872776594269281817936361660151151914039394616329629853763562996398080209722112687957731921560640537912063627072696392457187305181598667524973926436884985197900167667711282424875124291262435562468253960366785702078413623059957734108474153266883932772234342839994896850380012234070932776440961693292020758775114219736048310882646812712158886936691627777361890992694457575732048817600715154127806706161534141039309055651878176705580531560557328194821139973062128733330795948796673390867341481588070898997551950077879826589552359167926072619330001035264496749163221966653595670993611069877009281272479949191415104332596303635629697336728246253252969761736376376017501343101419112443999317665085500596012344112360402062883502527696187346299295696929928872170836178393008798551812507722527890757982911098500193211603879125062030928810260445322964217776709646847144813558205309976411245433922137992000413323598897816425352198697680554978515858290016403419896485972940054070977678687339908379600672008297457044933553577713812008461795482439478845069213181562592616194549157331440649912478966572865692762157438026678284352251906343359699430865885637597208355433284258922035320395516488468121594079408961625293897633478890472681951722605634308517193833384521507955727371949776755816914606726061123628586282326553341646704308078179770619999378156130653832307086518174224967306628473608850294746373426243894142251790426938726490455507978165565839834860657533222251431201122174230840185397856945053037712633574265910225966508490532391042296979867382462581276234431427380259406414479923428576650672363458985951723711405627901456222388721906987962733350644600314647736117466402211626642145847017300885672455514567505874221521438926510602814577494910776527792796306243862134242013929385146637786018773053946079827933444486085728318254166510870115504691673925941074449567903957301619793450505531205715627637822591695803725376216475008145988132607495804550257776254934618551838186393368860421817035620370095127811378741722979479969365065616751028930137735557669391500364006765063914911682282797147163999653390122566629948191904175916238250680133366942619281203658562255871649773875475671837371206392504390866157249639635252903925889725024636661965610581599871550072789253406383405531941145254453563422170041584177335076952267404829895302925359343087423524960421602974785780302141861335823734466618782704627699503808238924554516458778057676384086711357152191644903751462277920760734270194480774532763624895477021387572537476987295490546287880558516563711860770398390970848903335585771649292263399719134515007581159093753914372963928144528268407048795032400546573394377648542262641553899665088728482422157327192741842237131749644118851660637685976503447042037005940166311830391960366520089319715195568964376283151241373706320987275761383265341396746896515547601102906554339374010441715612603881653440771561240096015747282567406811924089829652667046187165253111118975530290151072706336401077076422895946354306856300973271750941310255728242736669834305404102396666037517034596128918282767052658142383828585968353165632207011909757552595463451159049805651665363919639344517651313891492229243446626500422852754454348616593465583094300855226031768363776765232343475288882004438246690222796408785736223034389348430380113297429545449960392996022303168816540436859153636664714414894543410847085991011707645050462373655544525847647451055531610039784255340476981799615422169409295271022851780475883596724715071890481396555518378613286397242992990890603542957827808043754092448194254410291989685026750105292144597544294451774288067886510661823813515666955056673636002751077194806741268526201164778325072719481327553350132235717705822574297483656186112959267107478634314544073745032802669589352872792853982974051558359768184917029981496305716768159024759830857547940323534957905904746297024163739456773539703809669553585537709838391846645765892175394575116888171254302131286910418563087584802815056453858421795073115640675277550131769949905154443517027299282511542068071130442829334051026509161469817713440715241592509347673080906546834315428395377050879024840799585738019771369540103492433277524630051465447856449478379581549055908741987269171903911918428927425536735783650770376011283710439932695456424313343105730327093740586597990694581274082210090576312691614614049204643708222836799566990734972862956150584454540298260353868015359760621494102662803869239301026003557836952206099275396662229663117531057829950049545638074920002955624729874165967301573494888347241848902163481797388508041744457147675191426528258466398902849861864990403420718160096023674550424932905094948003093696489011941571768581769521404044577397620934541921775500338886621023905030697425714086323699182596447115449173345135474248147797269566202883648368663859944450002693767685547837491444676458195814672462116084570115461185168879871164075282787423388201082434835524687899947806539292445260821209354658248483990148694674688040605331502118297332885418660930986750343096269074734785466655176203953792903500667191159086512387582932726273683887418345480629131067826058124532877403899127225050464805813289679501991744271989293148737680130602415751824127593307481583085280073787428922753931899698393056172464776831839521940835801814414513995077548196256202401784087810013835188587364322014604894940365195181410483268250715320645284826148940696208534737138289351797095898431256727778513547720573042709029447105595492921461535191840252276750575750900375474447744451564609193718001272713566955092997508577387588506947882466817780255951571384768006649043081822118555920106067032972413774822820501631017054913080905994417068693177794298045943905178523295447654281066457533300333753921357799490566518109586377715056104434975426274666481252788203626897496619438369691525082407297896392991430512957674719115696302242884755747861335650966413080575798157842770534363634055135483700156057550831566335450083303370492843721763300073003702184074349569876702442638083472349301896532397059904334114185355897355769823078838589817775613859454867302239014452030338108929007137976570001439258904486141473003762791519813302066168903753896741298775835284383063131921195725746741119652405881484972234502257532232366119099295084168289137404463833273403342393584656165946660341785544438331278231831627280672713514803675978262196092730679521194551478116075463762042389036228434619639221607762529571737347581925625753834115372454174655085535012547043288153881174668738888328448004444822554320474311495646087995281440254021888173589765770186654708822781853754424215358965276741422340378143699052691953946087578828212548107901685567412513532473372222651627438881488887863324854888055163854554514741128300772770162564584332525023010824494362428339627886787512916078092029601060643614563835432818153520584147288789077803079436552978468667982163614472122705691495411853326083581187681298925271624075445788139054010593641589125107733733537264648200912082189829115369069775122793632899993392744990396436742766538294303975507953991984226486539402217622709802165362582252709735593734591314929229706003600559544696904038730238126192652623975655155844781799084778772205604273325737781842295439377395459552883795288266463953372066301729974824053907691104588293403969068972033721924005127692446440717501657831483167105621099343880857284945704108370142085919612632576628028205164613920451562101639102772883070784963621251308474503986695173833474209995532589990236621608746121758157252121497950231936020326337096344710647433273947925292462158297729531684995338550531773073136689364273677437488908215037332413730841496257236907375965482086107179881195444146662618990553211314449990885799222364383379102769191296861624862129497360459865179189486406467428267517061790234880070958530242694565464030986103933468515979021941065488965143976924674040638464595512097912787303337213887608800653153889592063494395225897155466151967626093345979631461361855196295020053489058166269320135736047217430826380753914604062717691393208537795573117764733652358223044092848115924829031229519882159693952567230029372260769138570401091727321235319597129451355917993017381695082420068796501339803487681453905275896011418085561368333338878909655782946946941817787069084346912785658641039397434509076690764334119962012751030029438932022770508416059432044349973246885192814750838685324496166229458152304654890459417458732817069327577257683226463055417661681110259028047085086670941755720494231685859540024559630043693228682218030462561440558516115925713030726760781094135582963920229923752091260997873953379965050605387116566280584620202548672097331018010524077725090195752835917630549024600998420399559230464537369080414722219568733026936976267779929452008347943495195131590039635902329989083643698982241205961918504459552493807462849277524768581278122579023606610582482381802871087443790598805990408973410190732912675124470339093139110445462753782451876049310343369776746713780005069150925165887780786251613995068107127803922299342880825075599791051245738635458537776674122393420376710477919361979298465427630627695258086324946099697775809629900726485046091518929809409416904671425046439740321167122593960294736456234557809037757075735170008021383925082728819909314287848000732430433435377514706577076299337436731700438543490227892917953305137419670357121601746675099472374451463533151135894471013454711322874770650237137755353467353490700687653436707147500639436441277999484103418312230986573817463771025315536677939714092394773391999045322878254739315668149332874337598677455259900943063818722704905073499011531577348310320364952718926151967051255235252781556480340435338406389196197546362541685024737333519155046053378230542182764082300533829626619624128442318136984122536693623445627711855679949498867539037488598184240142022273854421357909540354985448625724573832892231190942337273066999050890084857211844216828118445447099333619915705461679768705259298224707174295137930690099733562309689677999724230724374620331609392407215633423865957752151877538511420403751677109171589729400474056509499589071950035196117228545770772283616704175270715466752955534499482256050005481040417879501723093770766606618034313764319761681747486660281247598508726707573178747506121094742799119411243247687666306212756646578733106838940271351122473647710509110961848198642364405983254715350192568791043243397875802290381660545795498233983745286103891458241353722815509862793779960430438163845690712750009758629425765468466034295880595720261758508051892733632366417297002349738309117588771119738282773151594962722493185388563109099123207498219739165387178877622273977256226076203237233662502640427311351660433127774946424493808619597273731895151235705542028332381543197980848395583019444045088033671237302110690620252628102427163573001548105183211739390943709161387316061681621641693964175687454461066898299950352588922862808937323561914909567475332737888153038510210851733642379264876930693565829891800489912275337186403175020438679382061431397194013230450025839664468183532049398633361759880379814407955229683904770141955797819518670952823392923050217750089050524940225042847573013754242629427123600555810945627430367368991816242142130182758930839844692612109958856599871843005539079981911475004700844878607592520766227663408558316714061652914140620529485556029583160700234430421453618118236293673931896943503091696464261864344800242587550761514547149393007399895182995703603588082795889706319579389040758864733075489320304002634166978615325238895154407793976626709268636099503834988204170395502227971752356350639753446597806516344499362766540632939876908234975937834590785340505496018327970005313154030872252661928013733239185982996588360592018438133029142633938404612459768666748382157878782044788172955197735591505799993723653611870486474265553092719703527610567233725596363074156874374485720900381501605508503926109353743937581692737368526150390653879160781238559760008879420030046282109979694272714956331122975270707288519088950475729706943057737229679712541404757067745507441562528987804883350371974745444788711004600266564669308970631677444893102775302578169723379356293267839686793629145879316146167555323016774161715849461561076182916031789934917092120471035390404681177997203438261089410032717194568182247612947242598607756458919369851224534388275010756486115373821172554373902234231342050626020497919164007296487190949491047425736149416769077115627332253965083158643759778408908918339779142136815727427096603511656322268213851142661596558353992881554521892991118309232396203699276978213675049228971997963072578028923504024268270707503384364223161946448723837456218074167494879128943559582371376092495974922872790213499504718762072359648920616099918345114951057964460916012115249791534771989048298370241416432361180509274660596362853005362426610833291190842931462907692091405567347516770284914409971677400696504633453105167702538572951823839511248748958898034425525401812741075762789057760015617213810775406462042468525031619361437259121101267587596666348987158971717506080627853805501972397349590881233685942424623321255943700720883136032095181775304415302608559424010048463069563466487586178110332953279243578714871227361238507890150030809067049364900864658065652991901102335081565596287558507158890688411068935552102744364169914095972448133210673689409510962511891472780020715948277870105956131600948310198245589644802966295275642270840093961704146525709836404646779677145024009459087349508287183520721393558860402063881572819051041415248661638893988029975695400804828890338773708620654894939316626618168899692618331452729094352343239140880457920084117087793519404013398225139698612491538630524747793336462614459503175141564347287674057527645690686427881367623431077094281234114098435451613275873981994233583099388990771166551085660311967064595090925610025052108809733435878779556966020797187744106572077389909836888612292293744171527020858917948506834026868472592022996877166868003370897389542154633386540835686937816293060210897888847655266285200403529722562932978546666734785518248290528476397272672508507618165087142955957261159820300936915530174062026612611415875972698070850478572529265481197201453901270128986366961243439325373743929575098044529884902889481695402372989027940431950339566494032900172481536886746965580028881311612984285922556183158109254834282412225757714815342647205001369145780145951668897876602437270215285608235848304480985587774308713698443688833616574903331022850589350515506836401336684946138134218269556148441667799157789792552631237999220466090577450072328456405883812819751316141465549885108210593579027294888801506707522668528110852705334903759618343786716794415809317559659144497354163640266922244552407185241863118139512371482107512786865205078791213236304738582611095827311019495897585953116581122550498510484571030620380813434430917056332960545291233774685369537175600675045444796609445019923937331480318037480740702530472837531545012332282228395742946824366707493449490534097078827903509840733120460034167062996924433816548271584404077367229517943420669975904780794371086216175540427061064112721024939295151568979995675040653965133621205443992013740385406937145471392946302113397461736036569652531081864020417053501727617226311061234364926691099225363013838109829401276719131701283130108579229474006989823479467613976820149077602723284876276705679697711693208705568706576009430486934666958411037940290860886731602834844260386501046181746067229807743581374970581707957827957793672589847308331940708422932564847576921032916937071067002482041037653314605334557580247477301216898303256403703618799732532196304332808463212851691152195673761162868349815610071030974441199445350485775494358272688314943584945593027440298930271524590702305770703473767199471982486560897584610634763302841512338141866929465981404354732647237603532113826294688723752966892351088216895241009492588325935863612263160410177291902213477950587477966109033341771022736705632326556545752951751173270816323360475125517844895106614619142126494899899911376490460713280068778017139311879751104954389510225012833531575980268854161838849995864079357244693888840577253454312855473562121382269049493552706697544041645287469837447026686412282214088883953871808741440478168580633819862064341247870639401637203286106372639817892707289882493077714195411056290934379946468665627944952228895918487394501686735659882829493806846120920224896632109340792671221403723369667670598347966195297192988380080929001852286599870367122284413618470480113194393303784056954056855006027661435837126683714438484584920715425548150487779177851312195892304951891828057598855296076085739991792449326336285748982841676658813203788748116229918290687183972534566587587280478490167634856568993901229959174468211926663845951489074929740682892977572242049465832958527844237406784478934184257283018759083912271415002785859056833294320914729506560450396782956284215418778487761029151880946469979467817266034073940477928930275152293031581170639048645663414651864919351548241693262549766937613531587080190238114369067905852637406613655588362475495313742126019655655055282447319874587574607085060848315827738451459994561217991355012916224308022450282109737050907549671409544398674450484586958426543252756590931917159237153327040255064724506162306098846819875881130373855877675688316193453311593500866535337967529527489547586381687304876725796230713664769334416028725283378736794112750150860464101234927003287170838675150208521006416246567039143403756582343771790039016619230823191693890950947424597291609553667706507864899632289921748670171589222189483245171451743713728979621178191027290503304800418395815742001586024307043927586388449858745908474238326855389356825203478924579528702749820996603452436427417431692003372058511031477332110849809400597576366931087331918077239791304803757230658084950547308797048852836241460568962679198229183264726496037709449041492201401683011238658296666263927388636492575459994138051895503512341032046824537226466131083213188834262520622544440591939389062166844232121592406112505559494585768867581186687793133657634281521446466690082919558113896744286382073343957424483881840051230126542988829146159580884843274955571908156310661019091889997149834937175366671287652089013104491381089536574920503391254100103184386403937298400656691300040750515108796119020468534866179726722447905074177741267824298857437231257579933092528122703774587830254254774024362761720237127986300569630337002258981650765031676766955478444798553261424574651947028822386351679997676049872996625766570108477853694917149510131902182096493228076933962999243489656901662594319718455044995756170033878002121758210031271004784612987922503495159027121898402851545798543957540722057602040682825516942334397616176286609860610727972395323750399819676800195306609134515933758423112715334777925065699492804419289822078556644133054901591644814143498049255674361439874268636885852706835150348313399812079118008070211183571694737910395111886573751891326767928606529686151886377196442856003889796723879631752466131108345422372165358917057533455370495490676677888358290537991584127858703020496972640461198581271887945061001745226994252558597257243182176354582867685487777415165078967434241073988802560681927869203385042315962156966288299840319661673991043539105484009309988312918093933473614003115197383902708599693627396159069041432590185403960134428076225295167727125173737329551799521323659607661384888569245461726639622485554731109511030844356627865023040276812590992864878516970701428935128428202950118120471573586972508623322401042054410711419053451842829058991594356204701345519985198737451852968734458888271753896315899790400237769773796368809308760045058616409794014528527440845957055685817350941883104915585262912105517911294785290928557636666232808275137785084713156635753478532194276930260946411102583900863672033254091842263781386726405074326101304196238868510868708164306076041916624221768814815416223097268975738838708911400409635416943371731116996826348710323839570403689409567210587954310478392674354262864908287039659184545032207312436183608604555438138930970868819633056771084718284273411648880452210729078894830580931573398535799885574353678146359951440660442305428784873358736367367697413959380988003901630506036949988456962988943256991671942429552671762125264473758249679274085649465562766521317579646320045665034034526901837013233803237935920932422519349233984408070327212194842147746283372517697700108377324031004545785524328681157931500812462179576583668589436536587901639053686310865807008691857417342473213044449033345936050996173751915991074932793744450505340459170799865443938020354835333264185272419811004960976856571755097079706350263183497953426378663093324102494368773530793163203258333873203802102883060083233377097913263828677660580369440979378593324503145441593871034339451785171328705382952839798108446018527637132950320668968096133059809504501814559377052160456138942640782502903879401275391573179260509462909054576305574568992219223146546753802803998169122997192763679794524785329989878065344584619181012488409463952582185335188570977169382918439839270474772989634731465688192567578879234693470948400049023074787733118810412519133080075270631143875895076039679113915686437040848844037921347568337657685230384316113974096274606563213817567141793630757659487885528343622313521745476691886894324552832566871736110937499217534308860344670110875491933784542323173993295659778469608793937233836832694992445324533616135730178009333636047832983783142175351801519272607102971403578259930746602856744446156455727838413255239820479592612974863191046253025911046520143056255739478190822652184986183405866164243452833089427114222043372734526271350867577193194113070531744826380964088666087368611195213627042648364951335511978566910181483349708627112784694470652754375032904214582223004571998794664909161185674946652521232337251538436212867258564296439856115025567088801578835237833427814649878868526144566721522337160232715542200638085564420815433642486689828236146145170200296958631573176416561586376167667137208405272646714796602575697309182513231909358877433362646053312057442705497537749704465349325314351659797316446449715911003316461777877752073894302179599356541672089823207785963706286061315442715070821010557694364897646281286942054440072915545376913505504697559013153377164012328030615789688724680259678464496834884997162062113274562308469335630510717441734905842470731581272492758616540132259357541587517693773692787633219880927436352568369758332153113628583502973755480410161330487267533808909391073119951032487018837559296418093378394087163071346514352133689125488192402206371129555502053839976324987549658888982905373800246389780702242388899175552180216973427702740806996544323373840077661400068756457334312959437662904533832580478313251001205163050568013788094831245328640484238103920929535784457084065763263007835778966072108049314294759100330349055559738132662637599506112224349779841251505801968148169221081959886114953127283139166337147364686177391312425624632346469048042956883461064674525989699987343349858136992869082188144995573011725397498839440963309478870638225832409353428555195988211178679048790762891649999576874317550942305108911374356044723318692316205823889575879362379625979427196521066905307891538969966559372134146360579735974816732475513422683296813436927245947311028836286093035985328640057855795253783213142079771787944489443774374588260551507571895289152682691469086578148601041330572811971049509058640776469080785187646486948680867247857932058181040592763683104186174982903110779875647795375096795407692032648682888198351308400899653790558523153047692352603935788260674344950300657170623530695684478161435948616367197741767682836725206089346538235836492583669404959818129421963154268878202120974654435696709371259891044400001185666374766182089408943013952491487513035655695815155686030427971200597879075907720496646308742431362397062561541632824298752045417717505352888995770397483100122842026657035986378734892512665453461932018966101475276634549753709606673195927782559917778714863797067760547826243840517932340742388936522881231237069272610095695391996485773534417338793333844070751829705417011213549430795767798257909502307403204470147789708114288593355850731054336454787533469964690213171543634001321611229591729195801169657812313924497691757232182195369726876089181124680695390700099663423845161051602947014289565619057992346109710006528691908874282911526982963976344153846142636582502021468648751043370546255265880806901551974295138440574034664353901747371126905674807480474234932696799559750055663909509232712315796697501449531742273012758406443948498650418641114622033374065016850200343095159262245404393111037057763719275848536670623326836577406475439646577181019427955727625924560836545207189376996673035216984758238163759681650238859618518844472118979918249304708909777795948523865045299842800735260720968769204837355917883275122020475992516280092353870074945057913692139965774303153298945954894259511174653219145528689156777837578372448466175492977965535130342982843760596090537557115435530906096799079379361286243766627031466446768025698811677259469663902128919416429933264848462909058520584081679597988427548287319246802326545503109606591460658899971304125580686113397695287388582881740713651129254767541352989760255632755544353668601230813241043188652731453940265465750412045778574613938560750704367811449853971511363630010608982814529014870229590669645142649125962773417567703413365796844925656786593651221275327834907807293584151139667391817920844094519644779426531142451088901457432615010023709522646125058622571195055774176203536926332864203878082011793649539107135943920353771994150035983667046746993438228834943124449900152677929997298209509564249782128772862730331276226868594656061784510644867427248365603387971697688792593000551088862836596082234059481284800336269007890385682889735910331975250763019079447796517472171634401702201306003020256895806607877387360357391453845548163193489805015042932405237281439676358609510366527716358389326814856654267986811604644643699064054596787295416017675443604291139405978735040275187156715283734782713297348766601979334897057133252841857157288629227057460575130895546158013574691042920941388616361121914416070391924220074122763690168107651046144879138505036788439851145772018332349880827315436605793236421060774743556397932656531259866493636037976528930881634680357044119744287708709488157104576953510260570817806234621319157494952390172594636595811384233428806971465711782670085791341566398969653571101903398751126074845256729665932260105116643300012108855920703110581704627169233797165193935886638731914220429395105647805106107139062927587166436132593072494963032411475490686852172993767471910893754320556856686179493756664517218434397727721454474338274719971192361900048578817511268887519681696703174442736298432842250073452446889740336909695291617779010224267601047988711116793397747748418221681762254873011093849038225551285842624047907358497193235317323369578417377522293098641104846898461213815738116060935853486732027885555389662863500683076717620169134621952890436899343597281769133243295115440434538790129662063288688637937382784582282582049410073647477675192397093397178379179745142995975096101113212327455239667143684344508267749310930684933420413165052011230730918722002620721623222724497751586952773754111101486267982286464298979439997142311666444933468792830703617230366690273115281027760688528910325006649877014699866059941840526069090824044010737435729008992353890235888965433305140927246275413512603687285721493511134771018912731251549829674358867102742960642320552284396616542309247743954484403248287152152220898004602338595659346519124297256633810783872703523397343473208734278247179856782172378824600657195743856947746970455216073935031968908315681552299284327097702808363818872866971077858938615401935806045642159701527001474266208149388163694724530970387579852466315065603547494530915965518606858420076677735246159814479096865845817007552926843364492911666296295490530486345786163149553676137791994036990867762517172475649129786933497632108528746741791293760551204664775787832794444362658930705431389895938528452293340498768440109326611930422348907816655608797471965862110389926724724543254973590162355807894625343445883253343282433388124314410580836185619334387150480665774030647239996058893172468501388720025279653769941081809045269482349757428112856741053899781707022440240854231072361548725237097588146058219422900284569899343592359466350003492254932692357715508786212523836250335021743623223950964396220214758651878871687580980012428542396062446596158625448030068752531543908372744252006000666520658578378866993679165844376325522857853127475041325135218980410376094189655690160384695727479579624967141130209321041551848885775896225858942648559579924089801701953648268751008197004987040251110104074012809562897564537510929912696893697929889864291617648271849226063671224163202908834293775584451491292513624443858337106672707823813880393832169393704669248329272594432001498938893173760688232362471919353250470820136484981118074376356517658042353084530756971132758276115504696398640184404356021022020990233906147669538270093582973750398015937692349577337162949207754882839540655132802697326185767012137852040924650612346398788953575373642784081050603621281788803319537722940099868647283804594753002102365846540230253172109040764843337177410331340184589719537039000113946785464961242520463762458209623667479967712112171104835843972039093836541901916541000087172942554625456453823365403253146077841553297069357382947491321019891583924634561654338865260247205242395930878977111944263075603576466781798396312845007398571347770043442672889643744845104149607180494627847362512272756414128857456723744944250305442444640339137992116225150303751052881368533057758542978629133334051839678224114177556069185711968840771679799512857696175095463038830182385547347299326514818692610399297039300778800786994059989621544335848249571555043345260267202638706098203374442332474795229701889650629376532786687940403430168907493060050975292601568988461230930039411211030916642855576761676644398209428531717097577799883044189522818837903540570652555659763159703635455311190248476554621517068770912853072360202171165749293812135731319496467353391223421036103740517325259108605657773089526153231737926905332009553447373203127638881810708891116468324489572049630887026994354167650371380984860582038929699688972088315752599306801821127486889277662273841516093863009037949781596318260996949541113269376366168999761438039540587586629166865884447143685293771435398783918711952147855936253286048074853050996041190770099456684206207580224497541514768469803239543115707257308829824465402556420706932345364072558927003976483162663394629120176880632501110817197931076794830314766832830209311343921382482001769791926446912520358119184601812033168142690906002908101227249298804557422048575006114904303251261396856749488610319707304947024196697222826312786414089695149149271369803596971793553986569623237429439169366838163348273094337075430092500924186654998226432027956576868716385562298265463995021924452789217119536317927981878163417562241335211832785648718544753695416235168224768513857856602739758544613689119208200877029991424023261783400395251477813296951181566521321681679267921852143109466359582477319606772634482919836538050370493566711957657625419420710521318041244753050878233934510739434751879235108097594750685031976076190980832808234719528937717556579752661107440964603822582580377743494242169473752970344754237361213293742843813519669131070353810607029224555585805582850559080784133383792189124249787445983441967725845866432092833151673043255410740674915846339035407299813712996374862400762659100409467937460311135926298447305129289102587120061290617444312379288238093693465715362514781693368148352252607931439346052104429381446959259658826346442749107333058715282886268375595959358110966837803356526193696724926783530771799092061916899375515559045336867915965794112407918379614344024512376739288040042546655561511463601615778265143304249270072561513435236959548292588056065543072167718419228563579155976908587432522460391608565260334647192151705433372051642512396950022008669107261426698542494268580053096742591575936261693489684370274756732728709429382533071194716034227242006720025210613174515490510007936647381688865938459937163190941234169233047617246138143297918748438292888131040285592553880671981530998299643667520949405421825563196047858620009549716958489137361648731883589233146076853802727623447562707194400851440521392902277454178339658068971768933696911426383077165986505660867960091094073147302537908724784207776007178143604548828521672646614431059608588672129309599082742867575132967241124179477888161647440766492419728846518067209079827596125676405014087616313172384055619301925696791839208394963448099976403654478781706178860889186665621273013547401062540620923646100928516488175216955424755621362530882368761007575961774314098941878295997121390285099393764336245123506952876162147225847450441168394288331807663433089788336073595283337843839802336456389671898528195417419692151645392532793081033671988118083466567102069114346051172433620132095987097499493790535868875487958863598102221264177283700487633830401115327470235695703401899271020792114254287343475461981158899196575759122227996949229408782268542933018823255512176029417764119538463307198601892399737996209443526087751039410434230658971556063514174707969271436882186262865618899957765373114626440701527495561456702813404468101945050839831816467204333411056928456207562326870825620535124640163462690937665230991834096044409897336039804466193027039178137128439553246224475074000383270534356655375637254126705835183439345491867976742252079316205776299380633142556588088877413352376579979495514962360368647588422171704887417931186092341645142795068166453980159901751282016589771744610050285822596298625474154427937132016154608127780479947925335397508819333498722853837052630451862790966826580512148755963392572106067853821609221279584153262635316311605498791689476923819403160538467945839638670339350064920288998539963007978484766920896986457049143332687793861112087347059564470543067218201984937908284647998251623117143379487445745090927773570387632239438898720148197500452501502570033436247365976919149785453245731224305346739182967966451806152756307484094638194548333953207603385825763978909892369236748433238717501417874918967283586507484147453531068923251216643599829214038024731205197765835192928261691310705304116417560294739421540211589516515494743704632481896866273450147066607037574890535836325956096541249673001475392497814877639845003579209010868725651828669674615102427390831990859042345560032708623377360398955267688608001401010402149088335724183353309881638064183843799586993383971954242612835740965711632190472936450382095931343978068980603845197480741820957160211508407790169369269476260870529651860530908610883874853831941359782076541134052108977697909569109400870898103178015350797266142231964263611589905635736545496673323949697903269165026474853410402529768561295116395368461072926777571881469129309582959897878532872604344469796926441170041135004506578433833754801053625408075602263313325165082421113190870867736393771605127669358178805458129199477715808209166353439089939935538258146500779313670055878238413615441587077805155438674432124302958104776671809172185176097226144087832041908541720274744473328057597213768418335775781133359972446360257241150817595847857821228494831191448907617458629264264452714505187535242559970020492295524265494771552221328661386212557598275693897729405046161446388489794514580802300034971958053365989858714467701802366373116797621524117334813812389852739147177011800819125678314279181521090337877819597589241179533134021787965115462265154154945126358328814975313206659917042593048217222104501110036894222845637025828820545557291960139793066231844696175031715019567927434152323401133305838995009714923617207619795860506287907304706693155352539280647935459829080758822481552083590971537330802283483660039276427765519620134201556939694095703495842952193819729458002420113295188750870872184714459401829461833943889765118266284507481728601186216185273926485650232842620638111906507340824100767629551320383315594753575286667104632899796424278448813126085847159258581397325301794915404418306503122113605251165575890833102606133227062312221699494626708860530627168202276836293294483886932371174641501574864669223649353377834300235106494819730097240268377515196486586357338004958063771963281378383442051711131554227344791528767993568578079039896020033796343373459030879131625764952817095598531839438960826915707158046064655483977288060122353690431678608561930777968370439974141172599911118222941478996684487480028904657855976875830966059458916027878586593468690889586926751427956161754145562970727249326074561690450521196562057850021837908172113419075661204352253210892997922932526549865774670190407552102373201279049362635687096677443373469665086114731383752117141585477832068049854805357287525991461509615375104337954903818203021101765658497291459416604332512105163128497366527087686794228432003578355099342900701442453483548103029327232043515844872694005523371952630065990560769898702032872855559705118607506593742406992201873922739754063215062999467989853549729446887357115820325091571294775561772783132113710230608546713818466069169298835427468244707749669286465759873944088009737072867961335890124316290273657200187914114640403443781648071045430229920519549420972706767708728975226394685320609882702741381498840846296344122204663149598221435792226137750579874984602211339630360493650911787866514025528958755308636865637411379789838894043574568941180237048874687812169713638109810715738585252295922250129227657123997705024253212871279950243702313862476079104781150231283550239384668377064906076212633695466241495778571751166213711283160669202907141461137536814409812630526600593017228834919337157384855955396239152784755532174406775765336825176459247507898788719298267278748915529217202662538042886956238827551484180577164066008103289316183291257140105911230509377941067754001690169586523266405084446838471960559353422928972450557147627302025243489913817793582202254833551963221455891208040206592062078203802198481678394916073202885410966298303222485389563294843360460904354633957367236335341734954714286837392399375151704205753442119367117336004753601367458843049828057459588675882782266030591251721484432534584595384820317143253003131903504815677215452020567058019924401617642315297860918189064945321779092913649385714487047416371964100976890082265130354273465488099579495171524590812241092604205827506117195279370171311257654223892227107499683616738351108641060425305481377242164049600462488699724069472265032748989082581687364447664512079708147473802591146287627433564047072981690240592226010799921068502127744699221169486326317253727704282897464294225848183276727155603725269301553332181213060014812846136081971939381084849431708785512396886643977925114117537691294254429501231944707897942216674848928139404375745905576974434777167672009660283666937206616048396960423305340517878121063509557076444851265186082635907296983720185068843956604418514372888420069816053136145446288602258044869467900515255149666173444992194372431829548526718215569890461786265469680804792351570088888404245614162451224159852863228229995374317183885170023352007952743628218441766758605685546860732631559263268982882835162787263130069194473003906399741918784908699158496750868870202360633015027295922246710223821690817005679246587540802524321686818096070459055786138603479545986012270904038437853676201915682045877351348595962738812403242958278796201073774980079312526330959406101452685316431046727417737747867030470476629457855639198885429278202207658860187706696459489777234483324896183937791845101871206018434494694134198178583914318221917084504744668126789329092249625385563772225564392489799416819403476908176098631564251104806468618770495083582713027295410556031872301609473748045570814495081456507666505126982395419770654576470694100366988860476904667880755226307978820508437794147669751377990383163299378008715303677784695637199793377824876006793756793445101126127460387573019844091633184005747205857740812083781473286829961971537389320054135691809368746676943410175755018005244044676104061322952722864383604272083450091085368279202800287743577884887673568489448548102761736605436871668942033153733944155816513689908623423190683205831781662961894735604447304502923180659421790491692975648744232939188029362022480093470086219876216845154476624514288244221153290642044576475586714462532033217073238337120484723000407528770315216447039231030404302183214072415101652707810462262294867774892039542227964401607571767366358064335633243883237114039899849204247725966011056137645693475197419762072935254207589459508641027401221164503798522336013102834917775277522059520056215869225983942375942460032213554183997564653480042277795200779769231938620747300233043208634081049281994472460271989683785249337189763508135146500041383263271546564158974389913763486010854619610330963965507762744434123287682142527921068657371495965228777724181519766147916558751612592696699611679220089838282002611728488587932098996899123816332284319386151153098461191968703093789235050498987225541293580554024613025252512764361431608215135182875879878004437056942017821471977785246903538169520515513654976610299849048005034305994122686273659117798557698414541701434803639315233296674702237864301526324380744320746155748170754950848254623702943890569903064199215990543984105429219119669976822901601532139165160545077210892936036920840411761441036755806005540933554633411731921839604965100399951925331968480319421395770630600870884191690000353037186076135096063639211664373896584465084059932430565210553233559073637239646057499808201560549555875997600056367845444883270324981735498422455074389594519154468037487422897257441360601810566809885927801731121867953522162860862570677309576509707364239532517493485763856128135739346825259267466143366378341237074315623168058693982340031084145611240358683576881123816932604852088489059468064419110309737775813456274397229275587502860349057705271896802847931531806999794654426204405827916746909740943469299077887409148136297148492472093904452332481873849411405043459736531437547518098699489292923865229474838322653719651874350000004933026073410520388162955509868477141304961192726565058131081873371157695220738693302674663509392964613674670218316003749572246407472525806793310052404775560005657781528562033662380760811642984609286633032392357819963332162855677001544427753886034986450028486527532601116419013954420269304338922811211307383842454558359316524969895463791468691965329583752978575385346761976364516028743440472569693778180287647272625777539190674737101763138489620098716602827389460645658539665238379952139753906048160995939208755603950594204784606849894232557796234863345267268766378416274147643521667471092292373728488310505140711553362233227482063743598105546710326507858747394367177288143215834138404006949467356048770605473664805159305058654014345142910085497091057020375674858077378753804633255220855234197322241180527154390452163136765572887770248085719760764807848678855046097455525808952912258713725440558260527201031944997674055034175694890800802994771426683378431094925849794640403325934958273076658521433725014331205655072706039204451254365430290373964544047893952266238905207904958281864833376401879223875072297856267781021098777934759668162425856696398525625514464155295004694995647632664177078786436022153987526856078137262060536847990330536301021107288246110993696829156724418624955231905691766221347656172475706162529411240929346079090441963233330543181117005483573421454957679309013789374736539982778320177389503133353043445877840544540740358266101601147182009003130820129404008314817595004975489699393802593448252840352137124928633681294282193942560992732770915158732521641883041298420325607795950941624838686173676532404345526181333716397482707431648674864229525369598943923606213405506026707270688149795059481830877399719658082467375835757277988816489775663253072340460802095296187851646581594476682518210874514645057232672511408089339912662612377349310988152806268388304593978388274839542740785740181005786450722515543469708991704180514838017095224296997953311299078224378824000759217747358451891769290192429894476408778044354458925292861630940666190558230696470266573599729799133760395119073104804758607055855721016765431626208095432689754070273778055336150940572979533173737892649337848745809673256180876960623799568535866131908946539876196506873322174271780940479427981525860458438615707560839549999100049333637405536076867946222324094154948003160851411180298167373631991083368156427021737028409129505597002618935672878651428298443869202953376556019696457299244323382996901172593026750873465723075116533580008494454475977979365211699366240293806032879921359284986402132478383445851355192307701302854234905437808382215300437154151157713660453574537394488583542134280736504426369553254871574020284826243188718892622546945210345551519416027578906361902464440320489804246730501601309217080501645488474674503133363640865889251992231358183048647788704471905206854198760752532029559430767657432822091180522343792759353008970805402618333384586304911663775880071492041894703468836396445130845630638451420627107061540053135093778526756702661451551996574595122625682787250557351488419727902235826961800109656249353065619088081379365159342568605962294511054777014405589321016216182626547775767009613831135675174907421725186114956921100519907922781111075063548606088770573528594093203097870678466144456351689431592411057723588837652602895548358857230242634988095477555424309490504835842710942523749223903418694609993274100282004301855329952631607862093661567218634396328223011703762481258344280206608714013859640123446135971523053937157321847075477640177126520617315098835834660041157826205498822330514008919504388926274321738387933215839169198445599356099178358076827391684754664863474094873743498212206786846414006009107374509415173259165270077736210356057359543022057993170332211483826492368908221065905048401685764588158839369730538430666997380909674001164249279114907599405393513706491983547417618970388935625341349149976561598704098468775768082448435545686181025929562105419252845462191373630265358573207890386863761070695450928500625228195867265187072863744918098419652938202648069509738903782259651423934556637689345754708064968160157142985319278939426475080282701164056452600347476197098757773085063978561240169980640880783377688162600827723125447935276756545798206200285515566987358727838966271436361190475884099182131744518520502069987401667028682701094722644788255607708548084239420801105650292552089238456973792147348223942463803858262749355424627186968818453478814934961939373775140595616331193138949554810055257857883220694008504061221668943770881941500018932692526119079292348726004921020685460178241705966499979846790788570102049014163348794314156923596136465663702085386101861936132201715160080982770140542638507987908715318546561425271005495088993121348134596703332228210524711650843956517665759090833647142374686474903262736535203011186421974012881443446141425605989708659009366298684036391350164873438359352378912665121115719864880071279008223528073458250823807717904768254945201805507052255220632701901139827260406170564765576400563177122145906022643566147947107321885194875733727186893594593030270520530806359604641765995581309266668435476029273193587661762444793469496106753575638021444177590190103012245925204497677417654730056082259157261681345946118798757719208185536132260428427206301339109906026851483518488398017036759269211196351375747093967575907946894355671280367720914192181504593321423251002014776916881069369768624208976166250439108414073607774632143589961948193887699761358202799405299513016909638102827162618728354707429876572417830272048695697630725717586832407991246652267662650096719823406668140761897904476420187634352365815997879248291773151114526614360853266583194015943690544889488129841434641787883336944095210792747089262984966046388813714778976905069388934585631979000258746066910451960325437901227260034943493105402532989739178189909220512970552700232477034774694056266898666433265330499468715973132598704306405037444747721012404710333697597064751992131501829066439516391896580696205753546469396605494571574937869928093660109106745057244035151742617142369017493772628674688662145744176859381253223594294477259445392888301123757517231838165762926037301815902543903045209398105762750730108993105982989078993876068140011514233825397882590549338214995394419648024499069577751440821864410290775151613518026395213005137737514832975450775344922465046757832291499292400783825081538693642116001399037361251899711792619247800247794191949140404978257995708337427148284898561479672853363119616493559629336668894041319759796453556536721769927991669470247110210162016359766509598551439144120340770714389449321622786698948216395905171298605135220309564961060096125875290238128388422219678704651188444021923523393393978164167231606334698545596838079216801170644408769006907275930541213560015058748971302005624482172647966985884932654248336578840470030971078508774977342813689053065699465862032081254420951534034971333523052585437364208836365034917126403146391513718246487815479417578043202153430623502567850138073089824260995425504304261239401758600695846333572903191230131637184279193598566305825047682905444668232674577461684191794000705131560532717843647417739501928689497835938811906943429463436535330190225031291234130043537799764741288299429872099096034721569407223531776712677470140805043841805595056323760694077302142709387913313087513260637248575451519967850123203756893411192291430742379043094729862593270995095225528284646559220078775065182393411546237458389435475187742708804246510181062748750776649729574419258229831150157397901627679030705396851876391383493837412313291384511274722778710117326148936079768434659320664906889682777410215113129153986870782127925759935534977494666595368326027736729176307141726889885206655458803815815609653656480162678403620465833223205745186421877093762913962763325095459101754953521577200986982518656971654454599989024899791180367779913744536464727587852221843340386631333223171007616275561805834712179391491622046610803319368971524977179516815018525833550208496463932505770678339590099232581679541416039637606804910321787076665054435484808736191263788704408630437436300999941457985735637844320302731576136649568418785651453100543291871027843349019603008412457683701253475655351510438289292182155609131245490236295327245631073051905359320307019550893307365414251794470991477682126746306578745214984621250226057296376787083755863520065312388897132777907605832783532187438206231000458121449984473759161587719880274530210937879470147194439119600468426173793611706027749775618204658858780256799932701728297478411573194917827749217203437123312456514641666559142260349201033223773270833379164507527122467956235577822444831857706751114405916047434243602200045989798023794898036226240470496226602481785696043654252974050785588766920789666873750975646107690643890962504370687116279894158210476352616557299265359074453252424420752093977208713326267479715378383251991785490545149110131443560540999936649841763412549788528844262158058334871566903340694325636676682939048284957471688167215434528021997419954515073539711303533101572065622591335305467906334415074159627937912507735117068670377950285405368922641443533927448530725202449548540017581464215257483392221893596161971438247895719890607003095796524628896283966523168870273237436108794167125813878694268587862614444654925859695594134237128869626256090196532169901178718638754907494876356485305063644096453225010215271054478649247977000052414093538147673763605699514830026657281411847493770032503391641502377506011909508227319477267477347629698645301711517108836385304031087950571870097957229469358496808259967946695220143907590428241051812571365410615623478041060814650466706060983736033061516884787417780472635520075025888516350983304541296584877471710074591668568919086692920680660953396545533241148475686862165899067229951552243504076811377443697894653162027187445776236220627826736430977837107330120534352586128602087122713648950207245241973820640231935486641888792718971073291365832846510623182017765238398165971856861085020758981160095149599934621136097985830218784715964989134611662601429583832939539081701948352081735606602225269889908595729215554875770579736517616184631173366927124021661353053816369224215731089290634444904437674703973535825292329136094812177240859600838764212347933091530484763237826038082249709245988365428637899265110541894735197134456554218982960800145315804927794064765332338465107195196183701268767648086741912226182189478790521829208358031327360616431405983792927497764319945486933720905998672479822105820689256222348467478292875987845003399393076718532760339314210626853518791766609558474204198544730432743710185698448979142741748290506262081003032799386408451073000489019733289454918663420011301787131156891769234896411668028806541168104954533856859246588925823745155730079194392777302905120563206861210671829027097132134209768795341601864399988625456337054923413969730073027579263909481571695959500204259313173387648925315678234029721592516881753320430804639471554106411108487561399915792310230386232960359396568886723547098474381077256985994456767199346821717467480536932297085968295948615623124254999720584648216462018067123467060938417524503661133507017937491593201230389323481038105506407811598013228002290925391619110999323317153151636526679771315090113556722009302331770257925034142556376521764536882482353716993766959286166586055550814196888369930211954384963363636985608229348570392212433787251485222981949651731403055675935453106587066789465044933733677244212788109680931652488972839813845470374250718543876098813478503587822820680938047552100235924262841310654200389724436940983737979012269313337303818834583835238539355574098684628571495991484207407155366328338100769379245871871992246680491253928107275273254635565698936640252624551115787210238158457860831909055131513147458357011938054472744740534741424138487415242094132373058037065335252801242599304447989750951038408510148231944207122160199110615751705273066497223179586415689816477083253352413537860059963180521935077727577353451305259401359537251746148694293662821690203222993845956523822901929177869110464195603492061865324587012496231365026072966471154307109222052546562010067260431049118810849839616460004950628419853554649849399986938154428719689727905288089719028519785600470041983321824632645990226515619559277088452022274871011141821333295016084260935439653531384448009508561955704953187333404062240529597906506235935959983453577535530556495110409464027261202964002786822964254969823193870464226369195667842163950230595741176435009278809531107787682768723835701528876780950795181628545770336390412250867556840308947151370398521314333341599803985623743996261379272192807460117552196775006710326080296511475877614816670445217067241381304482783870385240662777173741908077053672069786546490463805329192019142188084708573220134099994395938369202460013568719520304785459422201513622862801800972679578350718419574929754138257846122445948623682269371802469607595989729408190885498412403721491801391525334472621638469777190952714888033311036014174941676826109346136852212296190938763869573926333520552209910492036637937907868524232588906417741712732202405276282082927955870458821052567313957931108217037621781694364633445005144059526212979775949052166889350917826239656085101911762111877127723198967270039279810004309654835084442912546200653177483836179397509205451469649577278245138318833199595372942870286794264239320012098505449138031776987977021256676267315337722472454321204859958719757424597308452716141163697594422929082887259069544733259759400735060465156168669319667955965947543375831871729628388823153470546327374749825910038038640463999906498509721879501542829831299708665238919930458549993775393030833137332700601564343300743116576944669483462588402747077274992986855156621658955019104458903035190276924688615472729239996236273840865686500018199089902934668240282815158769481794159552700478345726724039217321641170786155014791695515540373153300104124295087456094120721002811395447663133855356887772045733874937142483704934407210136163174768254959958819124777214999785166174926198010417273054095197237524230838003088552216991333171406866645953977215772130634174851223324036229277897291503743163277789765162999174540290277480860628572773725354499147044668884078255754135585219124178688974556775060861360895470951707710068035337429423002825523889480079952963812995262336840001475586546879794043471709757577607639280490198968320211397238394535961876941349600311454667033065531762118761385164816783039218368930827396750103666280371329766328670389907993189268658721206557466283496859495485468901635454405268565422676543379400743137130718942886098716998729676816781935241467231090042113295566953315255554977854928224013694018212610663282791023200908006255894385228439387607986039553169391273919810101398212534685514627292805930592664802500853063842766328757074455049181420640967650775720011898708061533069913023377285759573528444692255682190492839986008333873212452690143591783379632613250982325182202713934857531435447509770867364109130623483784825035529968061050895115028701516281237930797437484697885303118320020404009593056106439838118988973441818960462116002318907656783261316987665113628944283816034461618234516555589401484808589549698576340433488117507502033447046664825503980676632790858896785351596864006244090825426441945431847702465055533108285674081018071154957221081726348452097432047568625452164644975154415073092622912789786086615273015103874912903346433621716209899874430829148670098824456230906364367646252706515026683457539662942690602556283282326278095291470908407046132315888539791061606909182775663930970732097875622987620864561122570963049275666099142394896991693551151559040775091310096289829368057244646652330438017697851568889625270825588332843786080151978624379824949315427032889717472752435593901353146371477273908418169461343742764212111939194725630322341802037568687416122136895385172892597081367878461903882378760150704963381720610211662658201289726618384280339721101397369754459790802899331646854097494227660581289193651658003980196076737640044050470525760265440959912096158377634999702871441190594031656831967779159873596748312908623561862136398765502689462417424778661526235291754411589661552638597752535165618305162001766223756057993931623056252912814453917711916975044248348964112654472420937238146869845782893662418422371227353142287536864257271197231270575674888626430299881021698722775609375741928274313216302180009210197304175935699554198661309290146783163835791127950368651871754514812120194611442230375377704456888499911504275664704501888742137808537156059313720729135806457395235785061942259322214228753098693720635504885070879923330780260917564812824229042074438395671311946346959375610235727286589592001430649080670558496927460761536070560593094481115847309238220373639163808265449615089660894624231034323125862482732778467375243682556218728503711792044983464740751605277561411144026672866706807962611273161296623821439341792324708989033310045604859231289822205286317459895277803220733717924810597907029248522614819798421744795170705224689576515277328765074952291075420788488542115681886327475642812911443903571385732479931363454439855586540417035861295136740703247594819478465907615344566117112248311320215595183424676470527764020311055944078025954758191799261022933445583730334588271354327185510132728385547885403669610056025212641965644598763668818028099245800653489515466071060966481784826711086612565763924668309238999217971830371520508330537202807506314296766017411007170231760280259439615298203397797644229743292525656200941227722259561300566231119188975772152452356406411639359689599218338601268597240577241456183344470499314952097885083166391047479144754879360763477726203822048912170473665473331325638281274751257933494084924875720301296720112714401417534417511285006246304198624732814391629777405840358872263024379903846464160454579702673690431954522426368229524406581676964697043182897160678631679802322668698749839023666023592421847948092873625973257169973904832550374897793341378716487285134693792534227128655027035524413277191882750701500847352921835546604886986012251174625183187480042585345830110192334348657217636969320134541747748027279220743019532051531491489329332572258138664313633706105208124938393423520516344630011563412128892935933225231390453754319320101595399376446416852616016108482955495479269578552755304329602930553118860542871392710822404736812788628502892225989424673077497668692330939469677290236620075754497076304108881190585007928600314665475942686671313844302574557770167951502353515680981629277054922461553644062874678504047087568248165679256340693351059795826907944119910562313163106811254879369466449059158017426848964107299564804194396675201271693971209714204754993057139183628345729821357650450667862516371982886025687978262470244608549139210925234052900760940874288406550819445968783529891567703368622627072840947164057783685399589442781975108288139521463132974803776175448891164826559835969493125086555983810413879281681260141216410080317681718710813533723969351614190715508043518474167095124854930811992985016799573201745598678618153976283416162843044283249010302927064545670413619532555755867669248982464901797906810306372643877819876349116835035514339635425076871413801564802306098936825886689378108890319398594945536061643022780007340815623786993610383914119575668823510550829754855380922637498192969976869001233091772211558660098336872965092747898790072986008721219725799891538014969544894526408933253853757205384976520153944432349735041639440661843575202211496318851597223841460920588672588566708147908828998370475940495719129983128476061027799194799176107177627145748763068647035178107407321502403560813320229823052318193027825592315380524342818357885858772384393411109990291471600900786950116585003835361137449027824597366646026458740197953565409692212546055568732049689166223669477268017337692703014702896928016578995060874939476155830805531042239072587811282747442229288013271087684046817449725413367165113233333734233394491684138904940790584722246327239730432617681363349651182551588111352708283517669025975495555517159942492484586815619938350107772118294637888567206762250895082244221934567072874020438067762396770860438805182769481724618994207287789287373545926803563866173964161610257928454317084051317735985932215690987431262738554295849277922161892488094125408431543497112537774412707539393790450943690524301565775774594465825480797135916034642331947195622724614029748703377548586678686037005354715946922890852293884226374338989875201094640897623548356357709761941385090709761631695691444425989992126757603630933953917362415997445639929916000688746936116609474809766878273934808693848047952381781513020068577393632657363618577696837387659140328607247038653660137528276701213249877223211883531841312186786442615906030994555318424845139367290737801435446236315793600329160415682670253895025097638509621819129792543215730122675559075349890268320837620774282471569623594946515465011251196624744559028071407205983210071308024896717241425315644464933137472699064188607049120343594029084635827821846454157550840687024201280331234657047714411646999478576019505771651192335510456917715131936193279271539989703804702050435615455347175888022519102678254444591944310151304188356779313862233808987556146438641652629573090156847967656858453174602385715190017569801927757235677488410793485982628314103644368180736008131105260449410500756343674490827309021570416314933081300779610983353745302240792713511076876232823909214796152243261849036421004957192925611856111751583554828958317801513229242598322116699187601263936324663126140515534183562240286701775090205571570276663287206543177661133499122308536591032800696466792674694363736005649608782788916461524354624167264274010530898959909093496087030378409681846203852496396175010008239816870372821377186504022561244781213683773311319915971162852458674894342516705853069404031389201164343649177165401455975334520521831955012871350259179752428705426687942668927769203027178732457899492153482333047191419656340954332595379699935441540668166888774894839621219993280814265146286460207132063806840320761426163540545239230980715717464057443773980053167743619556994908073169019652394675598969350658004281339324440455786906858241001688678894738228845611316209971065971207293966540123053887955449234624947662357911968102684122643113035298477895147089303666085847948507344525084410433762427779945057092922317734533578320950614283199509554850092040042923159644116287541743356943234166464373210547069498291925175897653031064182945919904079495627071761053086999232436814297659858353893502461879795248054311060241836604930783800175667178719273769893357731422584979315000256321797244770402954175183067253128407092047702489450579127970020324021196837674282895515421624658881537317916388888120977973842277955462974892070211293173530576146570435525870456098447841463922404327259531913758623401657990792870378236268656554155148190846946690808113986967970078339785111587505870973505347820482159407869364962389838207814397983725365330220629194737353008518000042474857224574810041500100439816169261670640392276451295164915236694293801717491371869732474597400057061362115763766213946855966998979444752023113921356795826652666175009677204786056737644874547381846369765236589330771489952911700805328070638803387739721465316440175796740769307765623527811142422216140634223540303125195404133510188764276962996961496535823437547597800403261395051730524112665391441403128500106477332091371769710976204626525556914218415021077933556414061456012351558416937672461794597004577406916045372220894919321180954555686136401310957710782895229309118562501383862478443690884855240587451273649708494538968257050321324370728178806534343216107570548967208770316968001957881363014947012298093196115536354505445907701368242386514697445414778210205050571354998952021794556208578785374465001587221313072681912707650600349875414942878592585756876267566397376067139011391054868570340177288634061038095959036036878960590767029802415350409556574796622628004153266863077243427376145780994410280133548022287708658333366558252169398017991980498608216431373877912288975594610207595334797185631726198705038300803089370269637651650215252024285556825985542584281489783678059300295338939513296915731466488841416807043597878222276748693254436379956900256279229437232474951505645852646257462885975146897614341763480619048028267575229791658413229734708331017442928277090568119242170725831820278763191535298085751686437322316647367884466383048680483681789960326512658713180765844373226696212038073344615426224952648918593912953318596712098277048995061142241999966954508768433913847744041434958658622563252071692426148803717018091075395646591567324778216926643276952427177249921683987463347708767516329815024282678184294675085312870528050119362509193896774349677300760587814985866064116447299851420386145407953366780052328554886077854432864621702153790982154527572793064239083921186203342505994503612426517480486409949333484433367186957629037220552265588100160812839482415393089027773896704980178549480133903656798075408765782755825284667191184031294107890271839959945653048552862815956394198790364944224213823855557322446414336677593394761550214406350258771543958022111826681362139738564627530021019817513007689404395793522555908590743445721094222045711702079628649645441792657503346815870139423384891224684687852329522562012429262454149331771660837004279437047267085404286894410902295085362861599892013288268880526951733430916040335806806821703732006499576520856711920616214592587428316237469516962520211430574630977353973785405015221947710017889562947186341461525467996442120129201456854092056616924809860202250977040112106073725083712872964969682186118005094558040253390632405603091286446121322619035580235606497877187790577904635926266085957193861578186154372219763558066033883981445023261790917952461963362198168668873999979473228380606904645876689799006572726227548450390995218631492536651205391626135983008118526405224074989105582955955655322474958415612013866967700887266141447185635176292881212937429918435197410972454345921097739201224641203555263847602696054054167758301024262391324513074937982041003732693767504405027445621637628428346615755260989990176797096546706788737676089505387446461753697048050496686268099512632872865614935939480091517268543853683462902655016373196154998101082733566114427588667609018621753643864810769186183023620591228309324751903381256387604523477610450345448184457391732164631681520895834766123289633957425589235232473706525114167421001204236338437901189521500182486457081475923412612797302390939491498575515659744998235251778754364303340971126490227471439888518885306061317689830810721742591280113386389897742565993978724979874372672644445256930635704808319591794047759966283302791916110991779468906178207063404148748533452430903969312120733493543036349524064544213076466672628502022337678696065279538607275970842627896924817395366537518263453187759559732206306127621289857322232860479087827631525708816550200215000389128421538151569154005696022144852180094818272289627172914163262177185057117026725068272396827255772878449740711141368112481205536058690421692917542465371589620659202194463666294337771694742271299370293126014470669664287334987300468403106771912569515341303618469680998426824353374837767110308905993499898927051052251049431406027813490161727884451166456552333750507810211839729606588627557248257186504785895428046249592926733473113585754264698706085403306307478861069186753406781958825256316442568392443875301493439720334025017931973608121967659390668543559610536681685719964950398228149690488069390474453329246216560580606439418537912486092737569358148513008338906015234104235337026472317501413134674539747271466327834479595699752698597464086647866016140950079785062545343282209984275736551882706117678757922103209804069935456558411082503477868618508715811797344404917075719459626942882041673831887847884420929154846511587649666013759108422826722308626408778097686295283522808813216735114282702186675891038035662419845418975511249674128534935581904429934137431025030332489224165843287031617018810056420289552053613171853862544932923121488725073918252826524589683486441393526291884647395942752163053502940081118263171972025812325800380573115655976134249127979348392363999903318995042108498831777501850086379991211627514693758538059578479912185462291337372468759716412023538676003868966466206391153927603421515397484521387046993471631287817902955732901354500629698057570608008597699917048076480071151111425607865857416084651968333459887685030515655861061750597600295564347334974589230549872586228289059863077838048664094986163054651339303178259049831771379128982642470470408168285643840317566390840021380985641556387371381262744304500635192748929634510447839303099022447179302404605213723162019963949714123129880905336745910237087216389828045379415176100740937180430075467594569555778235239461472056931163404990150464158939907198394128504319542836071087580278028822390644521052050660806073627840042149397909427695770300399144389483111793301190257860801836891707289436343271619314182871375335706788971923833109176612557900505705131115124487783143459025202157692996072014808270188394180024283116501369455140264718180182961395112196151513829112173041310084385343746779884989931040454906246586978045685515552323959365511050330734318941122880447401617509804918091978990849808551193430936386946276863185697513132947369213630266699272801569541107685714031386020029722168358357468406820581830434977338667207691691270783536325014810599817858848272094163991755114461217342928896466256886564000818315086518539737703550947125785441236523171753751440114058437229936366982300910046897987855956305568335832280846558788691558208698396632086324715764925000225083502548839238134460427609900095660558705993880715868987406661980769749075644790944995966337682423954077708621191430145362817868551149957364160232743844596045798338458565138497646107097824706405458037985562352052692444546346859324667536376183219025468264377878085564338787940560409189695754927621068236801172121208866593438700865368407662653909997261624813841241765218840435279195908499714900214528629296261702683313462683892305856608837604020677933155660506333844335892549027534311277166655452142804954873929718609152787672886442011565541384331024022118710741698340950420702381293049901096184019792871180578302044219858763860141704889976346377595175859048111069714732988141368465379361309634526986992969239472354281814727305267063907561312089916974961293622054409518664626718086447739673650633715382975929163359606074437761930123868700801588300036707046703539061302431409769464199047462451337986790748188711029132172443729854477865598281809355907680160551877123897046686603139025484021376737915751018651466352672462976713868529186070621165674014240284865069800463638943585214290633488055804789957901932882577038959680405019384631478147497614168259985071772163858567070528420600964900686042113385249733700199621992190064023180388554658320348786591746821625500258029765990859210028580026798568807278007236288588463154417875680569279276999440411494921781819714858557759202409265241176125395795533543136178701566816593761516579419063173171677770308436972588057618779355941901474071611787553805577257994351476549566407363180048109361289846019343321199952119914674659016114372871342246060554281585005603025294157754412986053254094263075743806448166696941432368780630920915917028966764616524766962149925185642955137518081188446973370316890032755256984104630962406877812083620475180866725278924584595212507170353528501816020471140390074769644166081042189933375575877358986071947263296965330914439123993679750529592053065901549743857356364969680746825335796852137511267723045627958263485210175398175774853682258163897330835164150489984751539648811531594363639955092392806479987989802023536520516224621773201050938258930019722722850413423235913446801882980265172032103006875461450579163395674447967569422284871492513410512290316429673724984756214088148986497967906435659993836913024760189311276948595580111050543867783718942597204287115211196990574992574120686314119473872643697151499688519115389412193724103190580426701619710833659129200323270499861815188007895134599079534158807919117095764120358181335462423583465789506545810696411930484135360562925037398240647003510789386141434248031990879082639079019253486390290800074726458702015497414841164032171455455574502260506787288212285686648371735979243225795309163013203450454727843907289905351299013947992495390602229368946069784754777266723617942077352204091637177608532975524616161734904941316936899513925197663591292610767299726661577741817366702036652595481345188890993423895736453202754554400204906590688961798490592884334127216186348430229104274660222103137092980510669281727075358271466980300881317893256242493896765957258418855525752095633239167245764327727378793718553942686578717547479463078430798130440745101455548669921070696966017776271944352406150575151345662761374655336746057340538912448835691561203776833326351968493108091008126369065669349798115411779115701746893253277667996488875167686024485287105470539199520415894164402086814688574806629931859590677376377248641309987760655984518176380786324241533519301465792494447692765166015585314726987523972744717071609710328844618019369653671213742538415655905537623306915943303989516265892463474326869279761871735556920013494826558183237418917437345966964766496044107645921696371466971243312204468044896357485462501538587608624280366772077752726284290207447527719291468238157376041757767587543543776378601488375064909492804803389307734036208850772942196247549524378759423562221922557091310255136148517081004148721919095136326289522420511276084966088498274138650992066934972395306516811413065859814323333906008769913138057717594157630243604685912666250772845544813932695648064401777772077212021474733489034605213768529164256790534750386690549633249967807659318245358641856344104232289375882549848591269431648461793677915436007946515843637587903099269293015278095835521094505677033303207460595048203092657574216263009145415564189661564136783131285056942813826392512699538970033617639680295962464932002700459737653152469637740257831425687182103770896294040394851344548943626222327950305400560940902581018919262257557433299407640341031498921345281011968081586152300251489552324389542338840454691406542767502709786826224344685187895606674959223989162729986689871270765442368853299554179358593719481986609955852161434936317033620649777610917482720471436527684060679775590680209186281987928413594548606395109052748168461767201641162756504274610740844204990654021656142762343240861291698600962859951227080812209661572938808891372983397543551271050000071638063731256688291605801509058449886936694332210740496882452024626859202499452006476953870526332994271349653682806992002600781216757675001604595680198513722534293699467644649051534793341227286890366932185584943463376034230170481074611081532895976708575055676815623919145482488633388766828665687964984244013523262144785402343741683477710244518076413753331160182722105162571052602185906597073977277183417984560166310521368101560134132882905097636453533646870007465835658201294937441087317080727973178957023395519545730555935288519902631641086759961952764513418077276106678312680919211975616872021933398817870451626187556609762047726743457098311046768704894448286541180550966025848345315628246347593601524769035805870481541947217034336783464733641716349162194103551900105368678170237976182885913948966734530891002901720907689658173982227326206879858967758841710275045198061128934470408454042924067929660192498475983400806573126132014252943269001748852054086504150860162705920803614858531994888527197883128911224217275136107381923335074582200601489115755392271071284807158143740237921855146996039922857111906912860079557825505520519423870944184319158280918668082889769894418632448520392764995517686756323493791131306919089408362453629476705152655768999940764238883096874259291230599757644093349782429423925141116448368210244246698199118988313967883385088249801360387049234190539072006852377226304623828984978993748407709882796313859687385089897465323085143030562221903914294217786927085137841201524442680064012023504549408472218671427015171911507036710630585072584594871934359390905907480377162199739454293326045885244642044727256003148068796572520814999607172104382556423955623650569385012981479802819226641581948972391925542829806833174225441466795784277559059298199929056176853118765825669141675505964690102407596472971125745710154728832234471830224749882976571837413524679299919109487385624909151844529770115529641810940029323161959473156934289705325768016412077833873559128893608048320641481856506656704177367865830547191044400037464865739629755705548353102421937144879971544384102586732752310916456158372289128841621665953160460070439585433357113748803947079334614743140010702220369097047159792455858141159752629236450989351566638908925950328764802777493123656366380287745772487192494973156252963847452833971827915719459599132279815979476798027902617397871048111233257839715315709038555752456699101957031397151302554012977650043110602528485088391808159944642976007904005538105508383226522476146101634138678745046984054307382120733718959895857650201773165009062450219937935936189543032605906979073342310598474403154297349719224271350954111447281457934954763858519048901227943851191595918477947953203521690790960903780450632999091980834728415598338753153827639184238319744271917129659151152559346473078180564543422171257259289326019052808438100886889914791167694032232689400155152848973427238644336075502494649846663911816866021684474993820440165973517633077839382271472492122387394055216473139848648911937962195269966561322996051185059677886028896633311593392774190308862665169207594887555139869394779604774053025393727268812453903450420578598159957140460577293471625793753144492453556254933935114886210622919550354854406009755786299310411481447254210500729936760901862333080019961285643415950116082710524736279054594107203807626990341219686644987271689259125039590186155035931640764513093164590075129387550441280859631496443147661810240774467626215679592057076268369999211766001383432194296873988473441422560133013865457395349945117666177746876209222818050443968137563483655780941510757869226610146400750249765791006305768995814330213982359714019402010578741944841127482962323104714640712125606096370547395742334256572832664260338627423502694357193137842796600781397877657654654805790960394541954033364327756333790433819945330957048150745586122856818403141474606023414383032985920715382706619821037151755894889830182805806345575574808115849943152870806456151692212990256966812511286420145550315575661750431074561238113239429462607800044964826320419706269856580783602661691445104203123490284535220102304377092851314374798739747137473921461584180484084219055298140549951787589660593034000146825787935482017212907065555887489653019084955987799157443984789159774387899910948102283934424488217683301052617427515473145469410983718250137224531296011094498011701613338505228822214241830031199339021285842904805997273931512563119017498475903241935901759433719205560002295893267076878506015430974230852318174634637305126291561764475827587278547023328873859560953243376061853372678871671509872679182272188202152329729202937104874010118103353368184122175203381936635965527502415940257781181900122733162216766840159152188606006314397443623297776851751869363917002730414038673842118736945113487914935321117105339453886906492407505165829501129602647250147575306799826595571142592356369544823170706957812025676311001611192935155102065437238805752255709654131007593385697519486167508177678826673653853368738956715101271492901246405842758666296017662546310370060054508264265064390794185983791935523683358775232407713700002164574248091488800645411357882094350147325959023763454378988782842798609637459373314827605175032800504993831097487694142162136737643278919070303847961603040137952781572764663535730854444111238855019393034211394204387995549825159448198979215962660723317576387681078752426135925139068097327061188311808745278792473951952897895491616151788677377036277900217403076948527919884664294337323815466659489604120731725980014874221409886074619836252095598897920365767457199729137003617597056303469023615638363921370690340368957956295827025970664540799334472003336016797063179809891885910237320952409550692884169141258664771171975934034445972090110575253855131443652955070981777986737910457329568275872326515195264073798574455128796344121528926144384443266116379257079894197806394770427454399594452185126242999693876528431365657964644157541363683553265564317433443277919034085260911929779767160822427029330429867300940123338386539145605771871926306032554264286810220970409112929469839707870363504672573772965745389820035034349644195851121741516798931774154646135644274076312740746460329926021145471912512089774861278592099010720100807176184941498559882153593225668509272328043295787101977647399192121212417427243918390575701849038063657704871068859895963266783135102330413983461176625711715526681233024306839746657971854600750895532743359121910162120374674822320826653278679772606061075683591001840391605900869926586164246378626099641175849941865404349759727545821669059681166419829996566578513041756717019106577333426603328981757904855384691131328891477770127858609698595201907647288797600395079764413306217167896581328109113708456138880150440016344089246216559036436085851241703702954212499221934104878283835603989635083481983448479169932250074397642739346539323854835380967260670718214926086248895422711554637397499720279946558614818853967090774216176450020152616574164067542317502311078548252418117747606376660780218612810910450348594331849847207226404432776888087357300361455864963093477613862784480003416487172391377686409959554512120110905674172588736225213543342692920414812833201962551697875735793158045908270617013648476664850855588962879813497659476539489028074855417933392001778939867161608579173164134548796633854923543597572656524901380389162586258334743900459276460573149915410183709702396420780882055122054482645236360142022977223898275296017721686364636266865263462628060327443820897857744117168133856982325746387818121522063191217755875391002404390349924944114212452879763103972414446486124648684932428514305038101943892438466789177240776525004790157102628748705903849504988742088494521559998548081958098349088271539313482895689834927242336464879449680993312526062642311466750679420225559728949847987894734533758136698785378292101435958792780373199047008922864390589516274308565765711779514756373329253652525211853742488175993868134393491602864666568262060260925723524655034710241941207002369464244781003313854335755553973208774564898916231483649090308852895584881558820179409396135709814577599462626231052752195791018679691800136164943747690489048082400381548137930506513490280339512832686214077348693991375163548491034019586310123450944701542601950520906489851157510401286139640664342618769790210712482893846726123767066385712590019430000863133224272418150430920253587678029280863032179666873122910977025535409656581848993626982681239506931830516192461557331030925222914086493088765580373926190967210308328779620998393444821741312506201987812486419339172080181463722709725577357128933621835653332411056571286878088409465536787336692958933499182098279720672275952351778647079400412956113821640507140118083068753274185252329930663550943192349653299096019799953664556632321671455356993383063275582694901291711447411730926706925866178365303256993827195146853669615894025039966759316924461061150558478113335452726941125817312946206895185630506088659062018965545136902370914604777528605932543421824465962609698123946242530723173418312093052536824355206220655126405266907756330784573866061233151311274620013609775399115256755537657855008431898486056495799698062564812774953020809194563894699752412900728407753736442715395444169454726754113578792644368381440438661830796678822229717515047960315390276455468467975621209262585415539609095462748227446111181553684643150104352983621573356494839121851528295237819267864519812716506327953544809494436314461403079891261360552631478205038093375420828865516338946662889607157511075960892850839449354069021208899243432321247481841800354580467665824514094687549753163420367303212311653265545010869382211519807975957648675750334404744458514130699396635620268692444272863726873682120257585031592559220042695841474693046832886657301072010696767751574200844912864658106916812221870759320663173244608179139331117039079960859459890813957145808445905876226167859410295412890794017478170732333264197446230962691224404687073478498901321084283513412550158720413315186721353470378428453929715012492026511006605438215810327546386085638189985217799612129563042463448228645433741156863308433786921990725422617563107356172871193378648319086342717755338770399941083751270717899503695790982102976948013728153149773233444800115884393109372131471165922619733054912992397437894325554327961803383032488054509502032682266891953551449300240542703322387499101513568252551823241599723791046624058432172055946026833346699773231119181966525923940145024994476059363682860573744285986388810744697297145004154721849173814721186790222242988484346400869372845420034190933132202520349333688077953088043847171739723784373306890239615947273712309844069256860364462347750801534441938320951102533601695557363120342187212878112663435465044401227113201169948409257199660648542417550224652948979312323160331536793648248262628542896410678337980192874788299829960438770723798336426246477009865580056225440296913039384461792392196724943535254994681652953279118672176298541588797058106858427136909461198828712799534887143482502418967770050632170595928581604379606547647871629544556708407064313438928399351137706852144445483330131755156150412848318901460198457485204681759908043048022080686369128354785458416729939806356508326266159247408581749323167552647737954484242972397181736736448645795668812276260973629823397067080372650921418281864550797491692245391616419275053925015676776152611364334357381721460585902430875096739370169856143051485128402309076509872215076184482976696963801083137776601514335209472593790738004324838795054192215681551963057254962813638498877163818655599117702603329016940358620291681333669530731400360056025583513077235249767129959901338578864510337803972408040173339461171935805884712449525518616920781121945799126010024877204590014991183031022010870425250087969782265278253844842411794585724391744677309018276583720849438409753660754302769093744617368474383360264919146836590762483549700930336667542952306919025159608145651812528547936919083097292264489857899428075781824980729577946533061702260134696788144825140287767778924614089786427123537553386311969008295218805421640957065694875158198944172111206301702318638091042579004125339555091750143712283659041878168541956329419555438941152142752371707621441391844431783321349287547758907015419176980750283079931009718213045080924159366238543024970003443633092184299932374506526126639122340890694285655261762745882135462299902333324689608019162023114679057742169791779425935560612013722964231694862450356994310042283410519692531497606098834748627792701595438160288907804440983873844586884635855997898531809875279764231016150887101704893504936645591985926864459286333142190962017725145134437058788340705537104863668681502385441007395677890844980184078661095265297172187933881550797826204533779296651046840245377155559460490207970763995288278643586613596870120187830123052389733895010009238954897858629862790428502154554108725864281348794359348640229363285885570703443820303182010179303173996943603208640996864745189725275439366073362231930279697341131138538059710197373788206965246131563946480908389506833303416184254004723408044149714619270002065308888941148652895140460907586582670016885012780037578871924725551098674363244971949787863486748151646605736594119950310251631222827901193508753448887041964796572613893858412117883268013530976347865700901465152955486069619768707832322145076536270032982098435798827710777573445859886657875629622314627748918224358144920732116359007788772633498824850001112692917201780717333155164253611742927839605632103465330558050857879171534154921497307563345972932301331985059673846162334072142402351471078021186975191030822752495258107859962758431503132384034270433065700115051321701138670852836303719105056489968500565080870149995890271494152739985919637689545376038556741652430146521820401065239342175002078117913778286781867563707935446517486877593513970064114486303609904690443546262783635330374855953926778189649549112157715927700093723855224939238942174423919650810465829081637420736817912720839468966474641062056274897606111503900929249438037329208324593302561613694175043638966679288227557961008261218429763689910020596380949065601267171312562965487615280274629966946292563742861179237711230401949468634853533390245764338874001378252992902658604939387499475163844138020229333674156345051852025725023321463931009942043255328378128745991510873518562067006791446891262063118538434159624018697640502146060954317858549266791143676789194903805490070409662999504707139775108595096653556352757437191667220433112617031853670259761536199703485481901635598338287144131167597919842348862719097498884670936437297782279501790051228144609082833571336171059162134469530103042669399926583887107690068915940842346520438054400029176385130746881672174394426064999093465374210906705235658440304055026408259450825519158948758493736798072607963601161862821467446741144333048134106140581626342700812089931037412383998417409159940614728877631634741388848791022888414619436910724524178552707712240639636432995968439498719371384020107043524656858400166748858896551778384044756197095703842786305666571485284397933161917579493551285211321738486263536051596497661616621431340970302516768846754477132358256201509880824637958402665133218635432012023563876869830043452606940605991987941264857517228136079007625097869841910528293617219114223224239726218547660076058367886288704450382031964896144585309138642377120059135937604928399446812286364436703604953746233323518713887056572735555664450606916131185169848140477926597326517879155378304122489734105649576470203081366690501337666276416728456816320982316446337206550196859837533554405782875540247891814885833220782277370191024952136734404066743196570460350156392292572237222521412206157232185134004424837938643275756207544767600007831604114619926263726724017535511127336974933600398866913125409260254786687321585198079512135526944973514076437046772016902194999197362307019880816090064257226764661946853341421771006369263223157801034361833986083847653054942285267220038806821924529076063679145783172107609943411292758771180660665499459742417001259336318897243705182122359615787618928649623756645145358723009492063569704954997958921093135851219335989776632679272612542974806365753302638530952124739586980395106119381817855715903206635864334888812289978906597438242954376828274371214875351491828256708827922458741059187773029258152833655129053629203376102232524115286485530678942364181494023291728748161108027159264631619659943391294658984957540533883510797400130295564580897828439712606380569522852003188592911624619007462834630252818123568689609660117365794989119933479434824714053289928522041516359100435657413393745305017833322938209600314173710499902220796286576732133981609221998410699215408172044517065144589125286032006604286653286441263119038282991438344818955746544847578848518080962469691167855360968550627730001012696823636989702951034207746602354939256110245788746396749387979183339881043454402220199406621718765866321863692431470172719313020477155887320481037444120347918313362355297515254514230579488505639404311125189574058945075198842576959946882161933370767004760357163008488062220003667000954121441145353336404611051663815757768981404492552527414800010813074352115222916924690435751428981487847480934264025824064750010880529872758681885813173706150660291847265179135940425723057144025565471807469977360439312880988849701522508478859858804253706416913806951609754705163552601461176065327595246665769704759134631806720826199406829516465620780005437794707517832683097539657957379207822484916845681490217037529845857181263286113728206877596392693275402495346691340193923355748456023089974412478486485648210022336122648261116850002176219451414200110439825768163790273058250649945611106369886676394847881373201501102062220046225256364425803401402985661279324050207198774810269045631841597498955973164122130213929123381654029886224251558690420287184777048545141681612970634544734207635315952271586186616511906343653726875119546484581595798784473314842455786613494489507824366428049781914932750989668811686485494652391212417812254232785502961297371102769424771834583549749405447313733995723428036167945959217461740035651082404605378680317439071348627136622866050873939344730057145839533434088207865091090599250522957292712105218054610891329610470111902450427446900600283049465191915939664063413142551366532067672180655605760182884238036112306060732208549651442117924686133653369174952209741492581745051117012509716507561817954047598253891926471618095181094969042488436011942128973553902740444731891896356664207458604135700637978608596216873407485811459304853935562917920199190091834407563631788228015356586852610219392797124318768669018678585464448716153708671139049483085013641678304702376450255375199313924782206845365521828685361991656556891217214402661569032724418339221071973359745126134157962355689377582819322335979613115222207237422252410977317716386836697433727846943035946942941567046228956296238601917837923704569758892817132482452875448095111200686158320106187740263645168975273610057209544101194848958672307709783404744877466380885627873906643939881402678166802881439308189170679891948402146534287051197147540795832049560770973616886599413660326818670176584251520202097547142247048509610523149005878867719416774227775998516797145228795597016040288221927377939404914684452006114403142521663504784041585864095278417393615035651389631050211587298524610753873764501389863869434523505416964532388708906128009199584205286376694445509805308388298985625855524499689824082937336792358187689074065634209300667454554679860815865176702443754976832111820246502879598354769789042717939481579185963287736453385480658360174090435851429889944649416101064359053856460874131035088539444357651911862606486922332423331100529283140916004781570368693652070546476996858182510618499980450609228365874034397166352693167349244749481271597418629841176514645008822594653600476163487191605609110515919206329788396316221003676941244499511905651184884241288934381118970402726665078489468152589307427112556201820135048590121582500535106844971861327343234781590970766891504129825511530670792469349208046106330813884559121553209757355126235985138915034534740976089886718538636825027621022522391467777382661352879959366201197362108164132634747254161425303199212937233279468984602843655835884882197717359923067179410555853988296276758379695401639809648081432787294634728018355693576839827560499370933132262170029332868051419495856014060635417372761175357854326379711236979147798311950265586286665422494209740557574909295923723475238031412966217976384813711813254475542559908720500685544827199335935282472092782648191454662442926074327588287088743237797057641197600027809395689516723097295650887840388928096009779451718732929095576687335163550361983744060310979266511699549343093867515610925193458198830138051648139915440859678499921118441401202914239169216940210145124119318462513668199399315369133509411378744696851438661865764480329211149563203810851297773517441043247791640672173217842218434448294261445799509224306009398694790573061599467652058152043484223143955863752009484144486208595227429123442266930940782781699105450205505170756453086663903837900369005865054642842711495854039333611517765867695518535466095059343377535862207688177067019859968539407281961177208448872544797459332081390963184390930759465008119231618208881208494591258339287915442760824363214311310064099888380311346983133729884627185078260579401740750242279821267437149728140422067308105814413495141857350268800870070238172576508180486726537528803681795958852661573127361871546570909708785640931284519982884516481194223857559906185402957192710202965292702779103269673762798121086242549238816168306063618991695375223418810861718640046281927541839245292144575318746369582978412446567564710915931179987050654777306670365382076267115786730527691176987113532874837566141221999526934713740191716414694021593318082830177890586088481503907505558246956606610040273940347297237103818199030988197354216339490356318220429245820197318544452131003414575849306503585853386941561092629938464230450289027525664661928842456091881063480210752845242443231066552278346304133401921432972630766126644823134562437718611840125975284552182535822472878157793253318599866027613469561231327163943444950153913130391643780171597844813960752451867766952598299084280679121977270658092379996144613192574906647572232780185156514925328884569902117437942169528670870416660078898004298169020308714079816027484311983011153016425380058692828326298567874060649509777703159592315505935801561891647386742493680912685623014517736884191851305991793425581484808017212977286137226167146147108192362889901401036101916469977664318766988502105931261396262167044775348201718514804883538911276473825644749422187727222028667811748576993353992918176034894150246847165839360268283556911313842789156681913264475511989592814756247769423108263420801550367259942956812447412709031850829175855748891480264542219687752852829954743321179233447154120309395826044971512974049734175646727420632434336588964147147157597928178905899901612519037268159826973299160053643879630968418522879078004301137324980772615927941556963757547925193528789614325510245615198517915192649892142242908238037996953490557237184934709431491229581352449344794876781795535943682414405656622609763373597422726365002942911242089752695047261311128259822131965510651522558846599809902535468168005620847195120416444968806466425885439885001402770064771472132127528625616207482571556395863728028964644201627587498348014292722165755213181348791336953837857803030290202030389041254975859178211436571966225582763865671420075445370012348313800103712487139062123125847265595200134437618498539821321091321588299576845475332783230522519772329227685001511205262686759534766064365316014155082040087572871319971148030238548030199955229254625067030813530909508153075461852769518093748116447548157694163945024467134770246485379030512565217486604261928573558341163148091222275948043868458187706624344693748942345555813984169018235750769701281087398042325584552219440504949136284595353187114922116671822065609606861688403592975314743967389665914785264615096168516479698085836604970425806685424707444497081660688815116758299651027639335024100027138155540614914615783960309001501236385921080797342812528900019008588236205829343853282530157413111695398041351087543856405926856026083300724229787615697014045574310253813584474635218627602096634325275789296063183383124476540698996044016392341509964039336866624893960742096967431488590921750898086973275742571328185102255977330772550325379448419587036617481674356935600802427459855149338210706909111896762296296166237618037403731942087823489021694288147769206358481742792421360089221476707159565317136296872892580298362377117433736007159554914461820907374805159244528684344527762406743540336020901173059985300627714119266523880170149417068601221087787109797507800395711797557915096478450659182191893803434187459236977830236696341115068971775650001686882660350750691347871669991844589588094535154566450119790003638688741734561980290066718625513100776631816944321030850197480912591968717720318198756827816557349067395317398761963142561253688351080801006639496233182087023008955658456098887793251164136003250546824063186818748730182502514836929378358912489626750761974648422434957787954120788429777857945462266505313715935281053260317239950964243295218645976583069468125653948195166542781037009749906705320159164741619589980994748695106038521007435620933436950765812723181506638942661404555663881147223480256067932804899531242346491047644836864043690268922577596664195936268192604266049961819267511139441290306441131832715051814011002177647278322554701259211988582934060104035387381353394063831393992459533283117382989238222616098694133417425711775647595885458352938940307621081977423786522348372627745917757479118283428233819096745454852013339284330056439536625423694804281550447353722904217747393031233589520961118117144905629803209248523498262559613443817192648827982388229254032482872941254689424985521114364111359154796324027727487084538358790088012875626100881869037210362049468209936831418470229200389001170009147042537096472660419014183768098207243242685287267642419698540280051896751862384387598171224793649844318563872350174119083537143191451207883687817100479763170947018881813963207957673072001134332081064887332202481244627735092462092207095070415533528078585904692385963118242051284558624890156724578218206452394259926790065491218868627177679356972009590268342331449763340749303991044716843642806241411383233483689178170270810986823219213894123295435536052042284157007677939695420896436451270672972089984243827738432678048630490868242287253234820428873718590429765356601596490658157640413582886960650558311312994699125812557151707551895844170496130689467018056605911242839629543118056168864539599403522716916022699276811383361009330896248864357575933541326821714255809734644792203552215363341228749851723296095887837275279051114946184156415634005257936212723257726043802332526301081117022362871357757949871135509454823259318272366569556239518099669162760762522922985571545179696529811181819512281080238526365504283173811795420319356844925698026127929040049138198416855991147854852405764677488889080698655792439812983935948642559170262394606385454611094030042630469266200039144988886761931488030691106770313014612651543161395137538699177095587289342484125923760687636232579177917834831389130509420748317208795384424833673781477527410124562735610615603819229151328288279911499583844339773605600047826695316653996302866671189391050721834332531226272527946954546479378446395041510113960645495393344105490511713654389108108223626323153396421003166413488312292323362207428106053992859064437369268501138633685244235108217315211055515798589988413607867307464091413298208889941257152799995246041147105986601726384031320161585032310486039964483091001667854310822019070309512143567275310464579806891951748486102450193965524065118214816175866886523877909791151197367392832274841150392848515323213922639904865839214604300949810565677196375308973158934779128240367688709348089646939965749083559997683443553581261508115605458407121777763452245724602447768351808835914156879972283031383494240350982517162947118734783738565695943537451726675643978032953983699606523796112270870375949043481457655295475858388646913478986559401607566661897723395462301578203135880947466343836968064926377459550291946279079648275768926045800770281398595519482577029711569443134035188333940305589798637335064429666312504872931530390304537175407626020089680288196689181014469977010399897449412055449046632726185476034940683271783528227989524184560639271854617852464817493471967767586344396024705493508361223399739571752011570304333665659497851289066444842309802165503969458032255317720507813401222128461003077562346635544909340412139456170337634687855054584594448002608997911857591256291088074346537382925161677215847609609153410763942480517609068677075095590631988140066420385287732235087037759328116410342646665904753579593695896045425291270395414361677784006289466430599066674439893809570411248748630175337973604795109801827536604477588072736589557585143713288347162201910016564504132337955204396829356630538315863549776539819654234195497271995805736334888549158821698151186476038155637189254604058879549360786796438690929927613541751025703318618930034766897325395317471498375143641726488445485768591898821958016057589674624186474809972467041091798072404707330882859256423647887324359244522103940341678904485925941823806225101689877131984815239962981701195279730209512891844564774831996223265845221138989609291291014748784403336491703460577534624832649142492367846659965748285977455447020471771168178299685813558386030282815234204909901237646059008096028098926969437271071026462761465683444292970714644778906362967909822068098143323368680236450156598706960490018751098632668480680749132132204742707085280608014792300651237362585833545355477001358895368622774885680414015712173718659035685943451979648434567573636375981397433400372255359009779663995518150298830027906628749379470340444368035741913211415048902497125303953487173886863405857033581545079804088880243621852938433156030875927810679490640411363018648943427394013926045556278451686668515185981667507471831195496853097389216003594782999478362086960520961366270082591058747070472770925321345282222727832957099551453810795576465997693922009015136086173061341209434282031291861471865929567952325154716987945364370301817663180609885092728368890264548127726948686702210572461687267531358939306281789360400375366434249111943532743199308732517490248104402210188820003931406918733237344312088166398709017806688272073012938962544888537413272951132929559126231010476906243333842690945766486137121039635387521777896917489641285242406207639674771548290333664330037526095446544123514164635268503745146625312289852843407506131141560352391862938393977856128486924617090528166857486287139579878490630384831981432485398194016149301415547053508178542960603720314281351179367040050826595087469998369772817664596009338716164468010070901202790992487379125691287235744887490921291104102337924452332018263192277233540475102924090554514932341388402760246604595704169816039305694631946414493320275823637333718621631194630673778828000820701847533585510339950949069443888080359407480695796888009057221430759429202248649446508828944110432157791110871189031254270196341967685926038449082128135295266695980482147692858324053807556355494816734505679984613382137741656398066219568663802798454200986300628734203351303746675985861662981912598671993376022576863043149051815537147837006360728004655721965639409297818393050023567030404749591701026524092355970045310196632449759632932030172947045448151979809998779264443230884739012129639725538926943311231012456115814686448269970092815252825030192188356293200222278062588693863525732693217281011597396162283955864045417674264428268405353209166802228382553916792715832180469872606457230210456049638424647920977994202777985884536953922928000299025316879023349592853470188099009495505447992742712517769728784535034344845693235432800662754050551460425938287982227795964960737900542826889070844530629050722965435357935348869038654221475739003941785271470282686626202692259674170394602228036618211296924908984131816788722921045061446638245627503635028582304879766431246013798505102604610166852062909893481482864095851582141310214618351187479015117429970299269033764419036523226550779491526212355458304350402835170270371486577352551674690007401066457773413028376950996553636844525278597254739186476843014606937438933731145277164182627824359863639124496174294468419292521611415954551407381992741413795995274222482744294098240348177081209569326810253369626636753874028411555298586303297501705402209879451623090200267272856073921087775163147516714267093347564564868376617633183966842857213055690968625292231711098228950682107986386245932223325497163752780724783636870572314042415834841236669903964063460860145384543993964018586951462351026526429143864569820911591060697724666565150634760409493032956033549912105099448231035382059997435898522463625209589077166086711562248242470290509100152549719181373321463800704841765131167404057732543903851388300420138989442505286020939413735602389458639901099686183922922678812906738880168675379288305455468709518646246034996320320598484884148097430734544598731239884467722630787662580634246688158686845040954993877946662993023245078706017530449836482581267214691675401449469144634309473185295835691791212769148283783342764087228458406963188672769752691446268810091249117728602075934349880673807839792981408946230261029207005786337823160612874415013716480825484881881444878573900162896435184809640594071508490408258766816073439137010418139255745152998199213071942373054080466314452517368069368838731453984519793497362022570886194527814796425403453223001467767178007010383345996915898570861631667821171314359899300785730610572078696090919044779393830348546543738773592038684251624858054806409012754107878777645334331665646113592864165315636250933901746527967100917776813977455477452501340283773390763107517804325933849276608504820754409208849541425196103772348662215523400353174490468785504085703245054423647577676564136315202831560314081203193092868253688299460133469254502312499656627091636841365788590702355565191801826868294168896520101055731356351162416862550709608881716597516998443244629443245136765076268615824392312985434935207703134905366713013816248452539041023012049952295443873509416606530665615343788694687909619092586364111245790358311687420954954321149548984582953819011348556488754674729662094898586438735132338977155173048256731303331802750794420728481133960944248346828416572673232456255396800749124942335341275844719653753945315934911142254729297473896415295806115484760507834869917767400054606653891643135089771486481726869748174067875958639374515625207626143908011111306796496741231837043979704958798246165510323989662825705561523165206410872166448185343754433224164094773603159334685793533141953996864170738430571880687899261866293050708062967744225137934213450162900495180889165728162244354470034012027982184504906235537972553037738484268247098479298677266440808932000731663876150596660954176160154525232100978646254173657929829647450351128139765038795159517553572600464064168597180205938099370441468363260168761097536780340146335415148266871326093255264244444568358065430526788719939240179311014175194525013957528139872961034569393980423123162153948595697359546173318013110909418922902548294321263190720800483299757423434221142920489344054700883290393318977731762966445499358810552807096625953366888094602530009515289753819010890079421330724220773396443581760712731193786390607410575351127091480855641272548456448600975056023524322881065726963968503989944254327726486147859095754182169359908020792273139637675503672724448606376692661312768983521403262020419091132773655383192257454149956061150572376375093422280868383454681041867431889521883430484280966193047405295764182434040628245674766394244594629175708048156572912947798279208466163214028910566442376983839519557068944520430269885961603031117103796278557227755588776048007730696360914665650217065288757863986566760541375798426701139566605617796969394035190623275797938960019552577112893169511476057172569908233051371591156349591168962463442267533211550167189981135307137922994083251529757113539845321067977328415750900776239591352506056507487018959844920136949885713987660359310070584781927021573898479272709049863912418861208534136701942678690927880679308191449476903760598684638361844064675435091271229352536324278918671514363805304456803798449161020340711894949570215007944264891217127061454933744784555595527754709264927893775181499625929493637118189405623796590165624317318792821276661200257549784290797914369072980014774817996771453363785637165146183385742152236299725985445389638695498604349273134350217269646477628168124080063774372174829599008562899135310790762294751059571915109506921501244489604329331310185157816633019609265153461162924210083291697187918749061312646874601539912654619329784149438119941571156089471675977036552857694054801207265938336709407821612744426090361298379644744138968939530971755981880073692897986822559890565734129147133466873521199850270676506317110608436352170477192287624371744160623513501216177381364083476500563538838715504587452034779709296586751492295733560817635662835008745300037359229855694748949409197139680138838593096911270880741923373740403037115486791995985962661033474177803397280588112695913203259885325991756432804533268222940522019794489944798616516948453698959923805764567626769116397227487753574908333681097637726196823012405946025637673584860203691501015571904957972880929981591767973101520686927397083817308942170897586639297946475922508814422982426928517989594900646507901799762623096041397883479545672098219111485526563184918800336654478244959288104089227876581745302915297878613517505779879801744562150699883204539251119363233938450679044870892728294528989932257137207058851241775099153346040037494997041544103243343978116706219679115246777000699414108818628581318006940381976039460923608031602854040310593980084496678070193531288976028142567727918828837954041613401306890524945568470995933625596467621810700192685333191069431744394153943150833450005357866357643144924582951962774422119838897830592284498151654455547646396569334521344025892610800476926368917111238055279706377699627105314139607854342489116855973751783756847916833003357358011667960415244683715035647374073476839062752310217285870149199372535248431621506233957720392991385417799952402009877489715496079061708491718984912831714973223694955856927503244441232902321640321122029932693582509013932250185926840322450231128979037574058465426071132045046847671113057924568530540063640361282905442594133129706564356224194590761461803146524443260120720373943432148083614304112578814709031574254748318362286770165746884974603842356208968838649605741362436541160471905892183732426924563217635555924961561378429725048135821578968424367394083911991619948772990346978060669744141232647044993265179206016113982380651186092594301477827444479717631671851990438789643374575678971309929205099317234424534506386183936302113218283085765408171268709517536095431087274537797596357484833372050657122620178493314643021146422418021559147337070999355926288976086756962293435230102783508006496994980805504869903905598581678520743430020425943317811998952582626100729016220274452761204599530506599522104032704177632549452427639025352000355430949519022018290228122445905607535571356561938824401200030117014335736710980745922732701862613622086706950429085346420854493372643209133628701216870243014606251470433217509448450656793521593837119826847625757502229030669376307627575605401819957984055831568364309102412755654556826973488452534138200343393707374339692211867595646148133388223047013565277733495518477104166025089968690721700916033871791574621714872960052818301611289044076347154640886572752736904819124092165342540897097323126403322914684236444507417612213668648742376723870175499125688213405351187667837177134913205169176412119075384924978139401947984514133660530221743534786218706787820738700429892045973159961471713247030405349046562953245333223041349677228529352328723203131515255028566936920783131735522810236581476804732503233106738644678560383905280148963628455356014362715549260147349164589383680042790530695108888689440897563430442258742093736712268226983669447083735185634450633789449720378226791955632038460312137640013399510054664113172579705392989556289610764168873996590207036643036734428460640534434509945644894517740415711249698871981880665945647009863349425501815848784818206487990489660131196944404723057445718001760089214536674626570680575020520057459819013511684744468750037719261997551168864608488327229986114797257746238299253421275088724372298549292882217929650204767962287940798352625840773914712924385552381494888612779911087893386946972546008393059423663846689790131415107555774640782514266618926265040096694988090577763322324827836370975068553609298060979019566280016806874803312083320809150583556335349614813192338771874473223842778580738635682372649952876055855034469476297518598361578781765752180967538265058788907010091061462036563179750824749544264389502814740601880627426237636829626689732765606761536897464738312227835403230220991060308944565426744425664303098027847056107553404375754517065751829054201460897557454311652627950617266031547375498303371176946508509007176486301517803387913791406822517161942320409462162628216948872416628563980439976050214520571702661178378943361376043421088025513335461984309337386976758599980238244899498284450887544048926805765960497115787928406438906438048945303102889276231136653057827405835588025432451237058161685484182506546209866904269624219452791228453109258599554523212691869286580924200733620763688817141507962495246643746209254985644640238874712792766176727668270688592797354447472200983456303215251342761016108636367582656392044522456933315521697360776105172759750712503413158373623499706958834148006417893733299536304159064339426957131818682839262613716036445193714289989906316976917300696592132318150098098461811873236343137094319586235323496648620586974876279573780221534021163540226530680030159191835909624227272241830381033706210228031180546756729506216254570603562154538781855623555097005217271296584028260139371223190450821673542407130610653738511991627498756528339819569421345536650235814313138948579284102799064726517810283342463897614600324526346726183829779386425281201715768864960108189530651524650330415866654921134079213968519458865131064036965719107262568384853443879020886914381456758935621008520971936867934261061204657608517363833215562399726526455404265246145290866977376771634339193933104799416653343007641508643575732360059816713471166991589811312916446512478106029518498188625321336674451075127383734700188233079834759187824324334488633314182597494090010603753178527016430388733842963802272210543205449846161782161813810245670233397492893669656561515511621813144219311499320077328124764399872522520841981251171716462082463683560432168337203574317505753997693774825835132852139176651072928557105693426460958195356893983068942299658391716800361386328559998182428034371828227805907029173851684088072292891356994059643153843430258537711497445058377864692847623686329292626877607646712225574420464954257034943970185618826071840098903560449608303621937991024438651905665070593277818552522046465746213450587312596897027166938668101564185057068302047744858331824523978480028291658724115296616696120721056508380538928344073396170549393716896235029657053144696864997042604392109692603513075948779592047860379552647384782107789828763358080346200559245066918364580481795870399471833671106882002411285712702221872432085177790713572766209650037943633491142214252207861110931516945472012223492871755044115310410754987652407536409464712484992551437222894701002536443056175655489561026620030659459073142712342997438789375948885523722290564724109848606616164789883409049525474156618496241329036193464328696879574278645569715334855559618829347279191904597821619225887854902858602155884125522681993137227208374204395616704139085660107936914181863629843128686346092233605404246307349065834255432417024365767414295087734275679157274906857441416244852820951344093941080639671400257370348007787738946711108884363771814723471951366331594107075475621901949349848775610842199801772277769336462347363783065523087321679171572835351710489013046512857417423472416001199600953503144067717400342758377556964048312838946858997482494327499334625908922087444647255664944771987631784190843265505550249718504125901247970475458249327887850301498512335604423808969854942620079597813201293701234382593476600792351354780398100076950566397614917615211451886627174252988673605514982201807178907222085861060792277715903746542593221667251428276771035068121442054765495905257705050300577575295291769773735681895585684834184574236333161281316998580997582721998056661130920888630433320535658068681053139886183921671272853224643428329261687456075640650352380967113938313316034865634089463333195540981841242126576281031463503209523697116810330655622358728532457953507511641570958005675716226023570262327678914424881831028151591685469692225081379428893346451936951420697851718596868005485465456167059904618575984412145184140798888399154245270082155971762937428997066499367776478449551445212662825696395677435404416901230741009680813022489326094674753468160887887928447006948850195016496413553905496842541626637079696569245242813426147579838516066375921363793711239420503448369856220484446259780760358723464688110288734946102147654563872446320034597817323847582668166941960676425465824729933330779583946231042823803144804405236283042011826975582102254364385718247481789035449834098883259361145234761025792648468898245328670365530339725387522868712167984835377305584644676840370122923904253728790396820973354710930211255690222922841337064960262990388555460956089484654163031630931893529339931571484300440755225879200489062104262048291554662024145920898977104692555409892082191803894496070680158820227718328718318908887657745100495766814401994302406794339266465803257312085637670000158370946298407072678561171059041010180505343979382440699062438243911881987097700171654368642596244868233662964584543242722863288615261035185911328505697117652619952179619702091030600858991058281317068635428020133164886848927435181159662466486615803126230544676490430876157236524819737715106500733686621844392310131120161139756799431911694355505202904571958048863272322035961706975720372055739117982491807582768519766614605362504146470587396075529429866862864299468831021357738057557371564993504416929879278248773389591573893694797861079682331047626551561664723327036765419844780118020573875828966690567168788742288158801356576458511495179895876086263818380435914185296046032723038704794859832362397088656295484704676653114557756596309181113470913634834703375708184583489802076419417795896996510770427331897600620778055206356562730985642349002798053735025461767910821715647643934816901202894007924409046149525593177205379837616980213617599856210046740013468079719207122066555741346891767085094685452779029959150277527809940528589147456198897659896926635434559236867690670346924800987258991048768542619106480174587073159554484232986856247868936696753638844329965268343371401900818088745842738917632418084563540445049692766778366917237547494506842904240408946629452613475797523843603884312291926424909288348743568237590576757482939644351863647062056990869511813213863157787525603455825822751339678392756434680817253796227189776168816968463754221795505263354999330967948077917401522570952884689668212328593836880317063651319072095784722315731017564870560542654490615558608812325196085036192270401587159206672426176787187436155627040134182433925075643199903840880887041791944206962343338046166049872568969477756903254538932402508726338596712632517857336295256311804600856730644822802630353606092801946943148848656414061116984432135228095767102149497555782823063241112953451928776011492353550917258656724314380023293921933962804584290274750539849038403813326396832680671251743431374051235402954631469892024333982846847021459951475321924982854083687988761753732965215273475284939705503585144414882353792193631967475093526709071221854800728826402238041826273670096155652425106345389868704683727441305572257567355949053845457563819635864048012986291508614848870839688147322184157656583920458878045215024386880452723261739590070000426964921923466581790900276202925621560651318263226078632853051102062488531265248848228398513078246701471461481590933149660884926262027202210260623387017819844433758486095508146760719156720230434647597612209419987198621212849085756426807967194749047385915117122391015357680832911116189393400950370178931343600326963019666678416879270160723879000324616352350994308977898582267237430335987922249175299272206096237844091500314516277469349632273275361146090123943854111459923830910110172563018018881067034861695227809626486521110353488940669193104984173613821177003761277030450393270573790367141171278100585403135470538623349425637936199684320909533515690316826477391654804593501232359909425909695799271711486147740969071187384398633290211683950444091942478498814223597100940010788409258065137486992412812678620699277438014342042527688492189107086301310549512733426291510314502095824473528044331164283743025179742686215179415441942074143512764771549365456637315682453900285471250083461171766089681760362648242662720684071874276330025408384976329694605968123942720436399369354168386939184874744089467132197148326188682893283666189740675984038844952069168604815508986629695303133791353409861303859159351632882583217253279028120666131538796054981027817892915411577979271710461607968053191847798822488056365331437458092406860051346102845963614810401871756118788372400129006873492561246137690554058724260652695745387467796017290642358157332794117584579996403000154002189528342919160154428524284940199170163690549872327336989604373757304351148807501935280884419067403414559628545364540958890840733616234489934063878388073620263703967332173766038264884168084675376357449536729992376254354485078779950711328460250071032832811306937823918708315629408624551498784375514727504365706943711023277922603740863333866530783767241514714532857346709394429016129007900642339622002857041885027238613643887924241406553858899522119336823640521740794216465209462927557725107781452384704366770268794531497044381595247336282781889376123695677608652456024824136902762079238149710711425800369877982724503858330656883751508150225786282795882582838377635771617189382320271971537928838996253255065807671664798974522319994677752240705864276208851839101319680597056202711534845135597366489597985926595624130286556555681010828387946907963163994599588946186106713342538566469459524937276050626894173188225242608235518902114307459026787956871898279493846411089766422453663092601310445568756267384990460637045101568817903501665506492962432587175489530721338665572823389111619499960055286039056236993585651605281680267153565143513525315071190177738801866315080552480473897313702343309230042235502633053758405730874067787666115466328192530743698805041154153268879863698731533506839369385406239178435238363121699743675366763687849851571453150551909466996171973877554810172189610507512421521489277285852603283720942416822672567368589470059134191464418218862209703195841870907401671298022758765485251976427357806652593223444377104492694416059352442357623813910039215576866520197639992834241415117843913103255024324015524865318309507745581747905450264515555425510287874622293291804345719013308348371141167742884039078894599895044962458227749105034924489304603076463786687743384628319197658811322685023010614357142567393916207656281054480819584821309710352800106317728130152477882682093604998138300449998659427551510568338421922226418385596077172720925141154053831436078515684614295261780040870828019361690052756818112351946296987231268625783787078192033263624189787094067731096670439579626361677516396568795014200865239816310635641183999072421328527192433458546110228984829496769697068932745075023611846351528075393905968949272523858489451424238488178197706048737955037454314721313320736578935686133710537955869071789003518727173284707263494222092378973288239104033901660200030334506448788375458506129440956091610234090550366870638482546478259379532707068206553440896501527680494999334223729571523248774052469226421222085086861091865962714056659633748353606330975704503508281312398505870437692788796149383151599846569169194947407065696186318049176353414766816287416533393893173256694192749107143006004557434214686587613792372525184003560747311466389141559595994681783497601683538666633611944998008804389054440878808158221781572347296851213566056806057934449571589118849933419425861993572194248511853251485891694301704598650796554553242514338601991576671467680348060532046794737280454906589229997064431262445529721903139786387370343107959674103783711417624388636350877704466768309623111319537450964241941620451690304736692704694279383550669227652660513705932721617574853387038901274555659276804658971088704416030924345468608088286457173325886688514698790876320582664844502708404037978352377085119889511568792120995410339021344920033197917145633125336055383738146629830361749772247726277651775156571699712563916287741668772363768800656581242333229829982682969839353747670674654466928463431088457973485764205193897404934311942456964711996874942874489936366259202073875958962904468683815917296746036057212316375999495360585234795753354993504092732347657386535471131880134100161449456007390037497635505210097318747860355603689471645219652434495446117576821870970863536971802318225347473487519190321327594513300984372397396738709908831150071245265038410145321601513161643548215592165554478121929194097932360615223470765596060132791149324001565942281376274806465283611363216482273170734029133588105540019374915827637657182151063698334263916019484649662919142572158415396145328635097241836640993498680921773521883026311746946482723773614896257442142154413060076236843394987629327699313180883860742651116320847243272441993871021143133855388856983725633073566553063317384706171160468675128803473665226753980333611580749658195541226661517512415709461154792623519298972146643289220026141674764028766160615284090194158402375346606582503178475533653830155263552091613923300407761560171300544410755763583035681471096107187515588782392843253043126208172508002008100949178277548910984206337592318361290543632816167568187805918018689397627728694928194521023468449157961237326724071208446628254643482186035000619123470757382518685512960815157754839812251501111343523836939674180473931069566309936485416607024131706161972157639899814668449395979485180978896955041387147648448841233678956226732424648475801544288993670589939867148688070536552088039094894793426559106421761126161737954096017497691722243555879542234124194990349288674582849956821497858037022040166374203920727656468944716880108821635441943131359560926722189581131347644750738957293588273565101145192574033646458962814914489404510440757353721928441026472609276200929552328083790576784289815177742657613610211502610942473161847304441880958722960759030691765013071390540047201969129034909367617813511687649082213203886841313912838975672545883838860356928921704643123119428325792320169339884549678761734198053004922912602458688096926930789601460155760193516714724823382337078835532332402921691474131855125936966305648015389622590619969354515471777112272075869987867040865955573806336938887794510052116108111632442688819477089750022037549724051014435519770648828761994531022292339743274405577200844966437588947834804500096555417982219577323831542343732673052896261377713237506766803279049323338604396863796569705236325383994937058326500602928872344308370352854352922522658228856464758320893384608724030084743103090301817528718394914953574471864907778371409410858024067598915590231854622558586159586781765740020527384117216403454335667784091751949286811558878782014334678197068694504678676884455801323143009589556061802624409234965986672386755851598071355304339033652642309340923878056364864732700749552563300851052051841667769541610680908963986395146857852008693634435870792254973120290999032765529216601949458878008186010217864047450325743214370700509343359509713543414312014388750955900490738395439868150005574894363947428513329913769233874229726055499799017756143201040314321703455585442236421270641102111806377119762769374667564035276967883330229256958307556095692161172465582340061176197841840385523817627029311460771009931093118489971759867025061616332152412207525861043260951786376525992009693937737382367823716059665369834890753284506715566250578633415398541303741612190455750788831968236256932750657647420434462585985140015704388339406640991962301186024690894918160190677471415233815589893611488292468902144343633598958358628270388828437238308708708490489085148000721558497319741457670811681096816320940275421639590214521682498457692101120119923670064742610450537552847840527031696075727092253109172929438332111505246500598169675569990855043714697580892275445229728696247650746503672563934858490425393594782460091752924598215088497317524733321646668042881455282649938907534925239291855002243376957162402462490591354401561672967223129502169715045217522414324763061722153775207681817259406544175929461216909194087496650431177887418369371264390366414779070770282518127285426707983464783496264350011199215175585521141093369238234095393467619107910251640120146324029338609248508080382359109172521851060753590187677347427357502637675062435223627320827459482117547066608074092119474428734790492366596791549008780181317854973143494863825516730214008111737179280453139810297612384515256151469554832376945219060978066282011214334596289746740674354646245990871014772105639855760850824411236874954830862339938216637663258392731243593304731566453338033378513867727701962241379495136130171600293508769601898926281330967334262784207983754697697223465340882961699674808222444195002618670158852622370775277598092299991087902331048496660886290710720011380698788476935842390730220755909796789635817865398204184440943411867023340961557906818215436841552994577424664152699612078258168029539873460069452845771113911293285743597634477054354672203058704767679615961370195856699143468267163812007108366282092557780279698485213717927114835939917025012660664240207935653037176126473742589724355536630321110032225061538144441640946859191029600016765139054747288604565671221098445890298708401723200563146546916773827224481389358859842232942022391047107135418455134274902193198417007513447409346438404679294846654857794414112760704125859149612847479108629603081747605241760412069204347130034133879179788698438584504319488762003353964260760090857774381292157801887463235590019188213598060810766228291211182370498134808529376723903860543196975425863537003001860488001300876804448341936334527711647191419524996136756700087632568590296200980881459181464897673489729280460563267666729180273955022042376684177618187267219285027174606376296886692195946140233238226290990125227132212353326037306873347363689607615134688518939815414737368198666806608191062567832828518789669054792432886789803664396380796052748453057932397466792831075462314364406787530610315116105773638595335729815157511714606322412611376836702527680804242674316555557889661470283601794428485598241511579263620296004900252586298019130661075588696183148744098839052999256632420287804869631982605747997588317346837769100431963196039024628191241775645081739254642805056387819630166322223044545512163299796601951587652915435195986596417487679187725355325790080966206913757779413759669268125504956087214748145360758160519414667609397784490855537691957818608128533142583915932316655320119503705068957012280917524449801411924295629678491701513809098278779284003610125681874172928228855837865952651950129861746831141407986587166483965880280888732932609369930112014100600217919399815526955941555497733362072144892811059645365797221221073184515107620279882892106040814952060258977585308602253949042042957089458520672630832872008360190816529810911269976996644994080272167056683052806875931520198306363847442788094583698365144403303488971108895089803976465760833538344676554873507804706332313966015628624259100617995562761975840170105009119638105123082129769543502616358965274900343228644964240073150670912339987039773344357238715946579334396214430502461064415647811888903677629618103535919773119761278906230480373261578386910556840933988800604512241942549646509974776537927758899385658990756178991822987471565726432308517645705517433064156260765348316350904284427156963961518918869436660898662230069629710458928482913858701979378075335842633675630881548216051952541166752511436852865516714443697704159725245141323889921502924313354078168328593299518548085784603659108660907323485926067087285423486070320070322475275621849651044522237835336918057173012752215913666626374493602046740009614445694280143402906051493705845968669747910030871088436868963347433492590912711977760738120514210685280947423104428207258424442601619842851299537601696606217465323809314454417297167745837365825404487401452509944794987258839781013827701179743607947042677952307996755914071025168892156605986844574560223008260042851947515326895769712423120412161037422896572452125056595764158240442359079870171650396485349073441548706550956742814434242916435682783035883837081581226951846888077187773486561670074160338748411064745561932734918424512825288446972377248510102254986623838407935446838334445878315570277858183008808694597545614315890761748514931330663649919825596280699027468975362751268259071503550217160420220016784454812721901639395785880871103634841715689741487459189006475095731622010940858421131836378264702119776121638194525625392465665527354512300828345280995022691218514455432707593036155957867116277345236574688146448361791670345933884350031238962459962578036472071909954170972695024182247507603147621843280479758826461271773398014020270336037827683651368987228787001369336611334716201127144133706016374511020196326828340445946864690239179324360764873274329953928254324830101603812034932820263599738858089502995001088115001858543610338061335284323308543686130549487694159972718408263318639433205248724497350098144407470009832058763291186753165384268091593191467631224599280021382860733935001498853784745526671167913443418332175954261858166721919233938259626420498941164362298082706672224996919555226538572479317403465003219056456940314038688825912289313665251533068500000022655403411012247858519829253331673498881226869591132760718029575209846313779745836880923311441919116548308382620215060042528893242618312555881057244012762060059738346094990489067824240161074397748664483526102857780096562122400502702178283689600624084500572872267473139795815831011556737694608611893711124574510899221280043479353663913693701629803263742488123584163490301266994315532963836936997911221381797295342220529084189084814221393839236695450458757026735200801148137354360577045484017434045664378535440678967901639351098723735808100521576837875037625043199934994889568270654412517000537144580926473839599159017539724233027714840947692737960400551344991212688601174007452448844765617772366999203597807612733919576133732770200090098574686253162895440571176242154441541761981219836863567900665670324895302733686313608544531085798268252525891590066342485279395791546497150596184771093931170344438023879367841971192238532084527215487426999838771996095117949605257294771389493660333342268964980652387139859844406951055782042497137491231619537305315571693134069472804733723687936474035624601120482706647171571356099829564497374889771654201387743256751590133199642152617628461352353583076334409984766625763411250467633156552046770713030502357240232557868981481752644511827026618939709907781693554321692898211651028022665187083009254158278220181649087156933527081748908813223432850673922027460899748469206468587021932391042284850158670675161545107055647245002314060392436753337408393705844282143910907406436845385864727787953223418458995778714010138052581924678096390077880269750414361857617775655867248316959704241413474257831965759838279137049340031298927344185828186715948448399009234540179191622749892336526861624432983216143882947118671234017621337552663471034599208343352886809275349298363941012460671431524425388829230923886505123625953533769522631652252299202958030575252920035494053664301905446530018350585049601801165247999411632230523259925577695539303867674448632848381143130847981811036516299511034709388850616025039703117684270505100845347222448342166685534723486892072769235393736736191322030435149525665254083088733410758972985163835722945376178173086422576098202066812345421181152504886062145608697330622421814301380487274315669687165830481289407876709869637788490359263408243916890186963193285335140570932458921366223691750800588182881612782190247082136118807669994200614868685132058536853034347684870728350397172446865702659858199215426434313828433619642887424675112032368635019280212592673903095826951918273751852468979729787505353721188446770747327727264773558602724954145670097197771017381886021969903917844824706010341903205423730312428855526728305187723160443983887656246925357030343504801042721551720997559416800732322369812099856847658687006522556695135862429580416314787305041468186956724973674306981602491188788625650020339136567918412570531336995559889060081756810903587870297054064517460669267288595724576745972002074130757066557660111995481498070299946674806576312658436002515170091376378955009058398100929135892087238577897682607340097524509146632128700354849473640053099923760117128337836874498022556505580062641751315492971627467257431534350365436270152591687493301247938295093288807789042153792170080896628452494184826859412338461656715694587908529781166731523266447861211395306776063097132826161432540731644775992361606990308095616980220990187408131507310118728006040210582243712549954307735241125244937386301639188940029926837552154326413445468513438504194229206242923930246917894173535301345620584816347140950351383800064170506077166788545052304637234294491640850261147964692835276533256739456148097477299634858416084920584236917272146898575284137155020440568534700968923604561335212693574774233081056999785621062277317985982611257954660027324079410166495103141553370209514315559405223956633830249648694693333125000039761065311560121743121932294290546835414829018594526531829142738402322651129620988855178217089131313246283623889250452083680939268212915319241039184388931613265483016074454468732312641752580009690272892703017540123910975068508811541217991274618617857921332723339498268810908613194994589417017950718981079336669013767173401166684663072180444685678614332215893469447610830757321163956605590343813359309034389643802150258778986795959309995654038980223618731877206075129079459332439652088384071169651253194472139625626831939219686568655676750326729894168517927080771311854843137249346708062221938120956531176088238221511244498813914481409054713017985453364211436381349729433175479188221036149206407821507899179093147268014198825910426141252751491549194514092190258814389134373071915845469486534015999103923788151768909552106910907530877530968836045630361495283138609107280636810928448372920060849466524542980933121018689550439646111046240965819427472487934916708544400569743228537398248492090307469960618063045774629471041146583611580748512539414688148607347334004307229342339607572803728981653398859428989372756314370680470878613068037839567820898320652005432853796516350420396943474981416567944381991588173766184097824915473060691712528357778368313083407076535772760963476187246119630807041426271230162538061053793105839373029457951056800168289310759102317111081333029326278895077924597435479567670244166695801143697839893818321142990969178559927799621528682174393095917741825079731497246378835338129875651316451249099212660757083753944003172405028743359729139910525339876182697369554002516375960969758949629660204294345412400505109252224525238580386185979623627772341359405148484791932475652468167112368498414505489197141601063882650649342120910349483254342564442011630766606191482915662900519873588576718706090334581182226721263246652867758666026450186729567307664115217834609046252780299015865864493295485601431014263319241207787675982537863823034893537048497735192271663426856935430216250408734329493505452972677752638064104645936995946262993133949040451805111654321004653538773153932711848229666838861421618760659917278766931300947030419254414836068556278734529405285113768958870858632786814091632963701111768596485188722900865474046943977881904424831047622806030202077696192246936376733559828871000059519476482497132374785967414479781681532181495031930565056377846327392554127657239943512398955107105964796380354653309564304952600010614970919719284581402057378632775267933653134477058410288465079537008303248654181149552486283254865109692732622298765372749905717163615313236176219668180382467289720222913230303796701497714172615168931454202778255472394904162669078977859636467223179669959217216097526362598287514666142956017245154855382593613752183025307113785207421084057763724507500683948610155657164474765015658481794668647384453615724306177562916702405487821956689075846285601247955561265387602503063483464253812311622115593383639582889332504953020833101080081461255775032464542461548822076380820592913621187831382339807655963887010504241842845541678104257850708273256070022655800713686612017837853481319006299006578205258417913583350980395298042576402481162862764361567059293797976868095621243546470099138283010440673106069961044268928137498766316295322990208840134826581853946927933436377672686859898804140393494528218230712717221351794328685034222028005998637362303849313134715644117725207072471201154375540979270546236835440317060793765365252231465209944928506237838899663898587306862797390512325165170605761900475976359831229570001130483246495020011402078762743469310693963719215722509915712543513171601171528774648292207176772098420055701756601047850512699080865577946895350144113664127206676550209743812371006095254582972982024439051932794057915314152555745029351203862954953371474759604784556414253879988289228600218684803150288631212062541514427316511459213374498548614058723205428708366102402716942133503536390418705681647871070648607454603374480964410964430512219656059819268275265365132181142496118405628061040236438586070098838147283644698789446221052565591468907955476504329043680507851290924766618065059622897346385964876894505293477220393179339928380754961269227020744993840968736202669261670059144348159306677022619144175456372568880569940196380819737532983720555212127528527008782531635069420993535201245168344551249023030487088346664172849685648696822203892986927049290692605709058950779042156035416167789796079789211880975576353055117334417675759834471482420916946412523536081126562705430465911790710293389293920471468434548848894307283541363503046758250082489040169995580272790244733277440117634990643587390650181846980932636127603191194803624159983004841600543123819634024388289516300763572057303144759914311563965009818667411543657380823614321672484765317776667433552859216914107128860555235434045872721287981205476151515789589523679884390176620066284828058529805394938179623565836559974022305883754145561596533121495223299667127894041864338523908043631555849247761340275811272426371334903410827935998625649638403222994004643425173653493757973791871599559507520091184802428694082862247123332640344778585681108275969935734156020723009105232863338142973139570597468145374726295702399649268140854005147948382716869706481353580532085786108062292134843575593289099267678430259232497866138719743921534969309643307957940388292816751996470059665112962062710922569575859912000084912229970006953338879696750584936423028451890891755454793507210808903844628763243398159924118715428662644304594215021346896090441159512835091943683052995697837328727947545398993632920559473978473074070641473290650260616336236244927186810614843027899917303251486499407288722896982731085895855796067133044745275373775962159411601026692690478626276335089982901768738386386266850192341350095388427395803025668189668255360263603661619595361326338751986940882803443873510063372524813942666853417992668882152914646744157995424447694605177322640522193084688235549905967074498702564354687059409688908560327122205356269893984750558938949325852278223762431298358381077256668024694038226884699588046628432831432366026017153481554417955785383385938108437528010790189820814483257098519263221536992304564422618762356087857322286803802834265845585502309908117916442917703738916494050539531779334276888153766450882553618673427556710337394379149552118649908699590989431915736421009172471418358471271220169676152901125111753280553841646673747321115637482191996087937899391312207594221289965534642085121200789796452653543868929782445245073507723830684565510667412107746614697493857001473629345079804960767339525858153906699661208237174589668191745732247918246385635980394585180606001392853173799576761678581234432320305259087231520200671551784077305273678213840815237277235242338507748021172117081759280070523252918011626713083541031975437738264252727016657786621150591827868653456364983008953987482748426424338250294659520369239452449698712480274630700291786830173849948045198926230678667347389843383070607640782011241502154861056037491363055417163406383168927817905255726618725124926901837695836662761903014573718363422566286241110044732505506819350911417947222542319837356302000523086585444359503931635910052111635852197223897101575180691778271907970534870331438890599358085034586274516902197871498233280757153284308252820171350179822111812966447257606049059187764368610934762637562396033057786457622340849954675704426409704837972518962773154203392576161139873458971125020896155806652364650860382887603938110806759871732482585611223583746686254235924794546534924205807842028014862267224534919955257445580767442324356263599170749771306948106635880961822290764608457714813187490808357857049778555031323925705367679479567011345590711561004675370190552900596222247016617748240324412568686135315415439045778502638520593871962504265246871591664149338673004611054956626018523129641166247911466210287671610569036565209102362870028633866761334265785654456199285109681352793542564343059581001711077827681259020636071561594040706127779627677802040620426961261800593465671628772893136762179222383724455426394341919988773671377056960512468238828697190016502785239877507790381482260785423420399178996879529775126396997063090316008179765662602886246911032805016853495883267932157002764260634843245450919033386227229761606784089513447146084085588828839620126171942662175671443930502888728580387936205388219111125564029714529615339539889580584714360609440646357315552557567562682304497354916654956008359806442195650168955002697379604216812711091157171032889208051641444134062834146046054306403716988959018867189407192881245469922963295576516493324168288724825796395539899824336601252177328099400187949556199009452928802188346296210751577955312721787152804492858911469667673461020065281720784395961041393570218710548601728949756460346063963597980845400400062425678806074203479602177215885492265986304366346310428896294381027797245217506684692177206379352279637481881256707682903568550747929086583487797873036481984435833969072412844443317221716888556156762662937887256211899875728091062874812469388814225327049250608412532422469157460389612757900531378857010150183661716577968356604258801508283592392370131166815636986203665081473369766141961313052512363021630735787118184618051542204624104698317766378209040082410714412453428055678232457663677952704792163767128619798134967146825649678234795237541842555546866368532717767861481322671651648479407074210127354309715233618204158998789691515349463163294452329192550720693987624896920360423084267019748259215574936408990676625266438648103534365094261794883574784681329887851754459644048157515942254446698281017371278347691758301838275409021125180405174001647532834756283424769613433777274901738679842156688100326479426315952511233059766544858684744519818431401147055831965841210728517170253850332482493870901850274483683027411528196571267610917435200639371022953881037855239821654304334030591220720419244712770882101509277066972262215495630962226330770715064553432376728015691405010371882374724750264915363829728643697037750281930737136440490740202785348863112527570466632650191859945712381592098111569963073796992389526311355904338681727630904539197431892408110690753404248620779522824402540499476227055426269731873194985228896208117366262775841971964354962576695781081067504868935971693552249134122463493907069699592845538068227637123330894286835252574992090005930233437762754663260104825635365297236759118489986918113358381277470785665853475848503050106544612397626802273154169798489283902581404114221030469102118900435216182314778840876765854869627652998989361156756170711169041599918185664978588731508733606598146032687373310127288477437077804980886455030397724440392122141665070452219181411334404164322685257436449224581170023489534517180187203438952289151543459859889823821201947793606771248619074316658865871595914072192570164298981279909871832675070417164254981190822551690433149943013028308663177440702067308401088313292183865821252719538267533596580424118939988987383778657009437600413746956680536982100247354559406193696928630289681137036889424858654840385217281621102882723655436939663281356748341147708024302003778037422281130291224442189673112487309434746835449160588665433333206492325726217553369455276572987644987344725007887555227965940153690257478366041079999449279691639034422403095402296342026691131999730838361023453883225090134232527252187917912000909788491233031669467834887207423113258356761754162904410221336897036186047375382453912416544167513021193849537275319192355444950154515037377537875004120580878270903902029041666002095570472304691535801794669429178620434841947401936288292235500510001416693565330475338862571651485172428579941197084573402131689204253812128002164273921606883292063731653725579860681105872591858959964371710984934198478215062799948984349291540101523921246073433218197755929091540115234249415437480961419320154308584249867583148353386537721753215661996000626539167034472434804316868453402286298770776980118493651761621632317128332811714538510790316158131806523964969919009540714020834302462740610704969448785925410879289311446374168482792340875498903635729951271083703510741933755412701794248541895204222315630508679124007682781251617469910516571194994337737930849844414281056996486826438802121352680050170259695314484314195580051290902144486435197562999457781087450135122468403578103194794741947265054054797061940253454098341813181151780022351319748867550119307963990205127158944623464416331965535941709786508803256647487760834148741690086270430781324052728971754956804138945730370213315511594941117369130127515024816590571504798302042764791944886625572115629832459144673465265085768230827547720405200949297731092052207564657160121095855502846395493162709893691993074425677249412806585828023923836768632406254741406417159567331344182696964380362440661375809528453172338795549181736651565355713664314744550575606349803393794515904370258752823039369474066812242835412993558712873144037519214234628872464970769582611933648963564508082736092551360578612977421012508741129403726898316282692567897531588488090941207984613504194493806452011471249916173246123054892596429870857500346275860958160609512578162121500088934347747302252405405508158470386233627059013698928103061536408810925464377535842421093776402663257825380392455128427188407905207269328801745743946467187437324750213578913254832945071800852247097524203054576863273881018486649569672002854186167585388177801156912156240993920817394186967698227323930279583821263675711027968809688783699041389671582927779469676208720816599073532612445886964640985449321652155333730933892988209757772735882970405176266793083182987496056727362881823978418423312381212858726399146868766543167156487426491930617265550442976251008846368257898695558790377292186449705458498341605910586595489489020757630755587447002060778811415226210807715864746451993648890534060039042425272064355866920434405601686172654950685184234821733859321261389287518877407951998312689626834146746908922823157363826409027763139099628638570863941906062982788127249143620509195689608269417608435892834064578297669864808631914313492178681674549736923846244806348149963411302763102683868293833139139330991654988986560580205144618230948322323746460930001415751162207213200460825689418374911175315352384590397300773632902460772262816201830336487623640898072266992554895648633376709670844712066858319366470849040996877021697614733201002813173294903708566600040732013933658893145474285187663380773571245060516818035618249788014961165791744624593568163245812727874161886287682187377236140016437465951967893407225811350687261575834546449624017749359508895063826711055866235316731490028438626934818383514147213805656821653190006685814937093266092701469945856666582605540929738740987828477315415167746955768878359046840857882095154972278510815608764044919737214099676904735401026170213968163907610606675737453212131798241795176993009889593326224673279009382525396905133508832792029421086208697916400287918864601664161137901515124291851023489389585498036056705263231021930095084744576008812672420331301022839822751632001134375621225387223379081225960938759253273816898372412882277171473072433039267349935783929481176038591109076150654268543867881844580438363792886601835771770582354281580956012927146713230099673181668688421481894936101537871815301225949626448204962862939184406951723423707944495247354380129896744294676258185733283246424677379504377423113642054828463825630494752757423921171201336294453934038075592410483207140277368351967781914140224778496233307220492254489895177023949849201193269315465622610209619942994289615525215318943980371750391444591133120494739312070535358907198324554714219496236365970720438247647326955215077764490714291487961346804033984847261761243047867400567588010816706675219054529703980042606796103022416520839959275562501096805435319279689859187504543555538271878266699852860432727844679653855357311433291159306016210574156523598954274242627916608177828040971315793021364005587909842520903901607855203769110921500333233125517021536671493664417471939804194348869183277719880953330128774399636889629336648858147315710698373653771503953816584906311687980087436333707075222536780078010842977949149194362516665102396178796525800589140830868950824114917314811279218319351483840158282839609212781005348042105441561169933057743897728398841382951305909846709102086614439262315091433042345046817519775467648658394550202487507593301067926230064712372626186136178503547548884926827212270150399757999070404055414443317781255090085446172806696211268844417308170493333289359420015909956873920037304220917646883140918323362123654603027141857884999140518029907451512043998783416341865037261213697217639774707499637552773583217768857555492125688470343346062136558052480854659968106651414514608762776047520549784328054270585892395530774513564482103250543307970607686100806895137372701179842698503183451193729053827922098078555141057375770060329153697018375922166927893488563339956088742184189180870607095157184706008724605738512853696056747041584142496899918110864322911614728447514990190976181128268106563491809559645615443503322299069925551233818856008502864720114702530710030134336979042500530199159340083677211063002365479600361809229079245432607276977970256050309717458930496172395053310805292546016023264039598753738153828500923157990951082118643305238748277337501454920034962166730058052203204534546249524981103859424646496556305885872356752204876806660716374653506856548187912058623368883525063242267502325251136842141413463332611067059854091709528259732981149369961026070906107416832650688275215624821315221113102437181163181179693342302812554932087909241334067153089061381435905348875272712054409681856537505416764212632349371707450520489847566027477210698123909107061991525037912958460562555354873669441394473203951220162505836350303301304294043932215123348845641860744870451845409356228504392222562217015607171661054047361751151805855495040710583010944265276932715865323548954178830872621739399864668603777408224702975929630105011416581698457358411662256075398295066412209397414308024624704071660269803899537228170614047457448886423999568261299233262967002276441942513055442592546749646452562274878504556799939713685139179688532838684031116342736871103956362426228494204201458203836672433873992638858725520205893631425769377413671453161470553584854060769024224740224419303689449914635705820969461332655498311423389776879579714601024008183449595659691828548846592189074538160545319329655645933762456898043302670201312209377273678231936427403887906212027226646155866271320291650242926632360636568317616905893385768075839977198054493170494883770057216695546009686052415750419661574597830431463438714312850129067542011291643835778014977201184847895238185005382378623264895122021446957955030229883820617406365128050526413898909820918722847255757853111877653810000404898249510133675850829970802408493270807162047394847486866205626962531908174354264338377988081093644055297454162309194744047191844417295663052846739151043583303758734272468951911168641356205449631710531562161007813508724561710094533370746303520860243533601558817988505440187990069520917363851124299476792905072506038186235586649589314954024086036288705100280983286045144218052355812636312327742738826102411205453063140884817467503971342325642939610145343115015897905720223625596502770062815692685479479201788271180402812980055207673659460498752732861838007289131255060402309323214650870168001742034981990950462405537392509537841374549132008757716725492250121805074552388943419165675726114376405694671439573701392533554441493305011076373076060281679590434964235289444468934560600384698414579143855695413661000640595590469220439233506014133364451734704547837007090802526668713506925815730103424596134267146827376244362765028741006258512630050244422603367056265852744069521863233806893925979588760747541456794300605223142769806977801596100361160592993827103961241321815921524641123749204587891230646079556204978936745458499728068945568921681898396500706362385438984925952366726071132940010220845900852726522442366262699029396750556691924991715149323301861123319012228726627357870569925079819336557140224588649602785839641488302185147327358219421255568935910196412766005299162561720414693827424494279154164157210807622009518121900055330120895756880884431327357670095214963118488422217023875696842026341831820202161326508427734298068135345304353362297549570027339351948876533932140371133752143307651158560565809211091368895939412493959985036218911672071412503354383364380630718962041762078838586491643793043126648150600331407285634195834933288255850819049374569232887789740530033345638762212979964972515530111428990778449911348098398852609078720313358517181948476527764161843548709327214810153301820668175970363484973867773080317017471394325368071758357477781865582184439772208507264311590546470899005559158604027861493652735115230534985071834389223855261294470668844839833318786736600284348970355299837119839429610182418801721249379828374126701480226320612523252060474227794745155323349430671490196451242025285680493985220812682730953654762559239191810479117582658864920589402303972304036924729292440808274658259882958071251728160392744015108625658540886300293291754029572911987555652977420610457854081240196751431253768629240248487240266813525257526559287910669119071112338367528221743992558550102969146148888507657613156663337963013099581026130843445330628876289874882435610192048351515087503669522360519911554799703093824398746565181431523159291298997230003052278529796228187711148636565191077119058908253667813489794455247753586038223259005023461829987691724556672962302981695214883121323650999668493081618050981328386305353762273191889907746751355617959692171191912814384709897795006813160720932602280466225956902504778563738407717157004739819401908577228120257549732332379651126889058359026424272414126090494195912474956549745034541199559261715254765469421179315646952216411839946665115496198761689385277188425901623845419268238292100468268421279029989998287018137490128169825501088254791543684109076053249356120573813857756075576152799883337066250786091910432913554626227487955491187179380034063394689122277993106601785498169526258377035612753672032309533732280410178455311252143239249241335882822734153330232564900878290446775518823602035186313614977033144181921304183911412315671364734915218087887237421515978384280701455663982357760563589596384130048574798576866125639670630803489851219784142758376998781241540559457284598568136757112156762482052651782530113526926523310956534917595656770732198515656746431185351003367831919188899183609212588539274173245364250059366024740563410198069299276098434774215600572726811675406325668111044819310942241390037623634469967860622645717056024301885615679392513708756315144904804673784209489157672122970937765747363445577101552030879889938291247594230091033439130461295495311156772200562832209387408860203636960317544819790168805543567386921184056647646702351030997034607140681833476393905144838436867535172318278601524172349391436725955238120494553433413734792420835660396587613229481206481166297480516520944361249602858534353634250181863692236558034246104896284921566179377877588092132145832755349292251145468756284823289352495835123106732459642500380569146586240451040338151977194497210529905181017291341926950143108515833474508874952401131502568306479451808983426403182254272391509365340603143378983180101257150783056992996603608776178822814976736515375815900494823771453728656399509927036992067235716847924080004132547520045337286823482983694212270430057889316555475239577529736958350281570333920695078220681088589815757841533241756165862063093050141039453503640796931172967706709648803564377889022671108076422925484558819677732383424150235641023579634826917301562237164472754935738970532972808157586109180110920498467867144337444132505724078442559201962513740643773501535062988870105694295485698226717940686631256634506874842070579772604506938865076459348424683504797520768954668122418317852725089811413033293299343496555189778872890933076721792355211103847870945398396573570788974330284855996633152630373374015167053924333906216259934963985636045048046773155414535299647288418569426693858322411103876210644690778945741333222328166318365764296759898522016572612006885523903250565968461551691542893791505679139940181331863906790856930741128047272089023517005617282225132649548201453310601586653308667527643570759568196505533971352330937641234743790193415711042288610922998454762898386677028659107127200894144144872713921127679739192106348819745396666357007589659875878328773302260889084598991602703763367466879199024638814595613082265785107020106670533114894695036273421940769389570988693917698591575075165729625891744766006998074935081209622732081312384271272083755040225304424543355841608533636316023741156328591814330212102635650928505059485242386523322233090236938894369412093624806716202802416623914597762173942239740286479422505161016226280224238519028103834234038393976236206046936518798915438152694585895127305409879728926875323969157772921636872630010781024075538329630921753070477304057924222857157638241794999972666413447129610283299154440638857262529496619662869850467025836257880240674936967583273294308084355919891720331933343607268301767410542345094909052332056970782587126478492773156293423450043470802846538941717562823383026106710805413016954632182220989814146201019800160355318147001353477463878302629061924552493798367745892455614646800595525000858491801818004342346126975489754412216455656062139355792810336271512754628638754687661308780506695048118113319136360059636166519893296155229810644387339357361346157781876969139041760723847696765099062129176359929459729583177748125923539194809485268026116147028392045479001792296669243249351738627419633613316083568748361802354752946782770796882474362712701851660816312298790101110475620927116899227552301787899914467347267208037258214185972768840967923795301779113962392524415913718755214250775758510091282253135265028141274868273124661703151385868175525293735369822059771314890878384976971657778454992277497779830516431457935097283475730288118533859584514484064155010967375824414345479544990377070213282460194884610600303642461769723997263085180021386711731252138148110000465092492899970976684643311573004097292452290562627197028097415792247191083949335504902602705194855296610823963455484750185272805682684118014831982543065275697968479260231651464205181488568771242811153102032025756186516897206542275441933114555283472725536812636584721489293268155116021449958665058531167335618188073987438495335275097545581526047047133907165582950542090724732238456363210796273960951763552672801495564371432956995566479212967173236570061480020919978827327952003574398058296348003034892752816833362477555581219595528899519038155021155740985476006514257617531911896707672406373192914465710120054707375336373163028711546304151766961449362564104787945787156878297002552722936730451116578893496831977624620010226703520346029805419449375011150372195502412320591494747887124570724498806046430801218674948474849587294987797965675813320572391280991006404244928669677861745044556081715802102274674468247397560339877249516948798001319538977846076549266913286359522518209226526661640716988284985850484513854073764791319051972631285817227036881239164775290756431111763853246255288302885679891283121239319350038942967736599595041057397120550069450949102119822866520286657833213759243980173086618208065925729883823273023520198764516626809019142238273939649030617660856771143027983543614307782570913936160778491314453280060387107247239373286328800886248119413707616219090217347813849407660505349471055038798973145194888087855450625432403565143757539266256588570477627428676044541024881834099927384369910532993789085770990977350157075783997509337795393994224536617769905877011363703754342344109779089723955284321448585522279745353278208960346294621457555843480248713504646613298713557772340218957300895626076841176966172138444186863101849560800575898686821308777185879378552508945790462285704302395072740798000812578169977845139743600206933734511405660223505602276973521699041211478228496253130119385227196592054170607365699420315416930238367575957468505817439662067005616806332550079078247072772894493005329720057395314417802314734760355835083739731565663364802890626414215654303511932259646817818803753518801600389787151816027996393292663394276915345511480271495981833358897160055463987128673237557643708456566143654465041208252306531008751689438026759180106267890809249514531732498026266354242356266580606684919228878245700781248040737009695044609691486993404156895844982826841146219888407724072659760495804872133479212256959279087776838558274950384249985313648460598703562824472884783163586778754730674173503430595213336268898862623495316303125347327946065213092025763681438132566525028816105540743887533753904566063737546674804354867908201748326508528357271310394946279287189502069633975526693562400250241464717569525832958868057252737580421583166356064171408928400898931062401677414692590311297913233811386414966457576045990613686457477472657763816787276546783642897829076800699599071119077950619456682800230866302091363127129690594967841260646655795601527286566174627576155120586123083769535820586754130361208534526316602502587639093312290218547768719304577394091037331401127030529371600305848620164030221794349914714544307566142928089190989884314388932007371470710812508290210742813913332801254392413962115104029993995043156614268351380161989855680940944097821746725107005736010053822506884702191840191495301774864265402798098736722784179577867351024802785545829772534402628966968563013034469570389927302868038679797523903201268155941736972703143704930121182567221441770379487373294956752360651313219382182999327710700660442742787526163292910467122019055775153667559115718659923336158354256577245266694978936302187052299394766955277045524216385149540424908899551048712792544372453223458977882863050267140672298203514675198602993767800521752489463258611556409144359105965293267783081408762521503343792565136391781457629478619416722299937085531310214654176751504447433152180163237904041823393243731973474142006849760706818466689814312513927648786582807504682925079502280615307362711223230810586529938595482720865161171883817229579391831425831893222458159666006174041028900516519610908805401610379966011700857937276720438621998248312444179488298437889204949761264635161786055812646071682643285131702657070813768772346729657920209154270751850713279301457999821875324029992617209088062154487723053327555723037338695729407159679699570411671517696131589798989084799333253094330595560249681286942240503788637657809428471435930672923429351986453310728325306936642872905600743001522071332467485133530494491265714791553363116761814609021091449890776489442290060838551227026781794544055968919024527360520719304206314267208500040541983059371974536341987764259058833313594153442226452249420701525899918978035591288646003688724575091781882216935671100857709309717054259955046264991307851748468769003195115177054308075266539527586433930054834423103512357723855383791493170364716115446714953854000554721729009101490171085550395207602581412039226665371433843320988985329301099021667418340161173285602889306351807199727368290573538366220820025540919866542651421679588741516317132294699555577742138452304958443092050399577297528249993305712710128897060316882832141720946909967339150804430917047914556955097411783699848846457923056622059492886655618536026707712971096985489424174448155317669823168943451593399878332937079096060286978866354971865768740833710272457542598745470189573379032402653480455567397552811050770694097908287984860357733823152343007442969036094492610916587120656840553639850310593850671779240235629189893793681453003668064502344037955676230771192436456035125047646131005139188956926003425571484317281143881196488733641009326066252058264563888587688007931790051965410484396309308435844959558813543430632451974669945447994833889087847009278730906933835123232612099314887621652522378077944982627895201193768613304511706734195115697753337949138855706711414676775459024500969699905882154752330307646966095941964301805426877778075221246310319135309873494499791153595227548454276285513006148641816242206044426859074781030877754614687340033312716805819179669119691263681456213806135928296727871611609259264462387723917970817981278765713033015288994140063412901438287341778435886548317753160260834187601320542912843264284030428354579189713372140804918854514813808785010881898595690495803481595984774266749265094369103987608427937164361405312204903558235994023315518191308470201882646931004085114314490510055086626515379780589035527047167991462190910459511226720611126522606005708349097923952221498501858581166781023048988355244338648507560570905517073291064928986903362256594229115080668599682773794557947497419683406114877926842866089161962960244093747084952353770123841047760956997411304609372772667030949709792342304288035835332815199331667057202954198929250802864637620426107553531979512024535586122601984970338978454808260053378189602133876658756632865434312334336420605671267526108278713845617558990988822649636750686720928326904031250877600480589549727859586929712388024184681468632946998197193180941573839896360716519399055912908748837172687749697095173636092816717978248435391909866027437036276354242940841430312174121292206367913671381018855005010784054347364818546536230964904848828968440070181855566007399142376775360986640394459043890095158539639237084638217992193779032572397578396152006749294598383191571763704590058782756297604735352241278945313595522198738442601274332980089737198419387239277150760060852143774724759086478247195510697430094145521992898408794317305639596093374772883032644157407498121486155895160284842004283788476277385859505889345064377496129050817784049604791939003117153150562084916835629334278494599469636607271251968578554882337408883171018344119717297664626071555918246619819919528760525816001685297610579159652979942767538915073208095377283559517605331393121769818873618207429720896609140578149136555467749672071357387702162431841738481890417715272828559393349146579021765195297166037134299905415826472074525279893498125729362908404279926764682259239488387521936675089903221323864400741422897616084006392215350519496597795565797369156784852267910836213155250250852338273701329606068857176344745887876381898968944452571999490524613377885950845670085668177837335240437042246665354218902687680129414538716152276127509668505920525576716835848420119911938393378794926577989340138821194117094736766255970063618109413785692007412588654421501269191648908138063950176150843616199565476198094311448283609191949470690800652264003749790108794079662084933744042300868409674704157820810381271327896612715798981297225767025354232256452673912198759302171645998703454797252858737618703073623224946450153883186944494500912667059807889408659717614639579433064976999184015833486433562685075443888588829425237345545119644713225635625171332351232032609350762527847584858029247118542232774986226623342189081849195670982582749050031594487626697126307106253290513384355618029796991089886547094001606948768986633352477551901779053845691718044694752359896653897658828239469345827982726412569649947622249467433012967799031647057935073759427712341550909562013264903556782966227363365586840149408281981543790989462539332446050256504503953230495167835981129772513494978608498984095715884419171105418569472345211782006572189002806208863374859841535322940814877593481112421179955337229646871096756303306082049125791643117959024501789593685168961254679928471029588113752848765180981104883514435514314080209056426880027081456842138781209158998086935201011296056309378800383553738896314553585517714669300518566577238085620761096026794669618872151989267203439664572153614822463676279842539768496000918927537986612220446519932565576958042936625541625948436433790120029370239023427053721035617145295733367284949230380201630035104045670620845049940576459429549911585462160768158713947721321270642242793015415234577368546528281785662890579197036705678637499116754199049509624458321453616515785332252287239121784315932173670599104333456223854513739571547275899275782443938651991287577562591614984462985879893659549594452298457442246261500870819495456887950919678393104514225560459684145888264906192034349241001473617136669863514023329227887769295047041030865771788568472934200867605734042958046469556299190991443551995779046433083072182193056543999203626718560297681864794339236527504377136310588831377515470943292982873231008544715973008373773958033592453774510709679756979304804809635222342041800905873178283486992613521888308905921565235859537274337856349921360032777610703614715972923412533326772758058778300096093256985244643624024657387297313391474972629273403457494539179108203985706711169475339437563503542184344497232940138778917430797769175654480777218544064494771766643893940007485781497061417258089664551413038540818810537901402151689837495445890787647420196874394570606116282098431931817782583125382500349923907866247639163191979269996950098118930218369334584073327963056303197351342053489837788510652192453871765204605113641275054522284557261218257984764024793268285270063828422412934107433502855538771797571101156449076435566695287494037996878653770230047585535448285368419717385447051160469654851871791689244168632054896548455871218719063634831550912705576340353909027167067133027412434469175843055759091777388431655864159403778943152097000830931380472122104457549042819572312030436136315603301992318801299279398380360795864963656623329299393427689012901114252182920335964001067325052759246319930565725069298532402739491950769447449930802443320175319845230582992452394135168150258914446019847860578088219336379420346440886192784290689874504950412121373519107858515484838467414085132351403993075294081151506529615975781346377713171381305680421839192377785999147987822414220208003439174581868705168641390658386473700628392403246324967371914765381259435752524791242057043628939820192889518225856270659182843383410928475131598188566574867955147024797559872121539279547036128620108260366921545823495061194719964083599352183865100487749697181377153562773246561150143751287785692239505942714660454792831289006952503983336368687083518270239635120104022424702144789672469164995894985635303299761941706662954574823026899206657000698132965999799807418748933467139625909753204359145508729962445599766639526776239061413918407382041953403221696715189092354126612827901652938255586582981977762099980831623840543211870571262592781619707909075344539286835007600289106900808223859628065621062855637582171259590189517495503449915279131751919185336656099659266958518104492730593451209150685563593930046480982185986985340679369079364784215325495488477409894178147800659750338841905524059430912426431774112151486750416808310446034032391736562594780859903553421557024475770101109920178514690094910024077600409419203056220223315176943530517939881155655019310523832312803187987446248124062847973058216508519999052348983966716470910586583332566605834387883986701926954567516033104643701448094164268370755865746574189995162846449352701813246583975899193946030336626732951389403049422478088694479185286663976163568062544383183521602555380778557152348722436345364699486307565819239800137754467940846670552548035563007139931071154540755129446649330703273588278412439523460144768505873686871812432770911272589404255164771481615399404853715913100106112698222762527790523554920459346467010556811834364707746577825519540144855935910649465809037928867323802307640615393400197423760753140618646401658588481493066163439392049420265059629686139941964286206837952898526226313616027010319043570761967718821381085711057862132475966428349918207717849131663483158776091783497428944060131903511347394695924670319074497586582684700479371440915032130497701211029609445302235237661078363952361455792201512381454063739654863240443199742881407625481700644122731556868469664212791425768511610116319743449938630978754589855696676851776417854042209784229340874117493527456581686015775975857683802350081918056985594546212548473342244847125659021133807914807265692083241113973272120091244820674016386394804996052391170009701316855140592106724508282332264331159712780203987913127846215721091156828812977998519095709792752578062407346586126456138648313766367905879409376235662378052125933682091627632084316704418697734160124809086910836432078918566152065577045735446198496593820460038872371466617148476198971587499855280776715136346110233510783023890357886444017731529613534601783895232377179034501752290205554619216910643150808308709315967024396189088943975586800696029628972015974697835503326992148231179125287712371609028574769632690281511171219935105229033189533185440459653151314969765418978782590402845191110629499176431630290065088637809167856408266278031813298960268676624641080805517171251100187232963136903691548735477409778078667631844186565178027284801998945929995220607494817866636456372144723373946888313583464208687603146117518348650907316408912059455726573601962206280093822664592187548143704617256032302698724730202112656129637371201063394762370191009482850203577726564809545713716726757140237442954292100059173659535959778792809298335270416270758593445482870357314612397160379963647081879175795758266486659135860212391374057746455952554472176989154857939300722037946388977752365366186360526353369440159903832944738107139819247952574770188210602228706920131790903837161108744916956465322641803281777719799096125593254517520380622370393843261201496559071443424902641891989947536352422167882762829290978397852306349927406578737561738036651595298117109208301375353640347700234121982852052500593167378060438380269477616563536941560873163576877374501418350706032117545595360243104797618931803470409901875827884224187935118430280558143364240635530941168227398325336117903460503379848074806682680134316255396950623383250842680856887705609221391958135523028957379695078174657480282258143193814699714057586903528246439771151234338035425327531126755750184126134499650837901414309464423417234009099071129040300865688867230822156478858127322605191094663059974916344926007425301357999982619684192112400353877549406540210476602231084323642519944742008635917215162812224284674135483677465342612967863369965250025284419772799201079759824585856080931601069409110732353420471533893397260274345292712660885949615306642056019085427994355364201381437407155757038013827867493756531986427817972837588853168334140735268484737139665992957364951038605496058911208936898659130805714231808775413016287694446652253956187495876741154298817892225326738846577728423414011761915744077641610870048853175445776453236879416688984867633111615203760372859255398727579341856814371196957501156184522155346122493993120153121746496035758085530649946252485368048872034295079499391447451939222030170983327916510081554963869339238780868461854335890218224182222729093146167001795170981772894191471840205004803714879100514969545206420235254553216721662899153136849937382725789950079581526856071219543600089156160340842875280142344452916370103163945313206227718112555208103867974334989651560871241758787415746374484112161267560203774348763594447749403557378555376371489479060609229269000801625074318181243128189814637664466698476028230727244805643681024577498816320421317385416231552715152360430742983517963228653037424340638014318052587445182113288146329917345396527942103795672162337773568238294654271111055065553526321792870023138641433800030339223803611791539602086890716888050254307370123375277157951845693060479405879406775060005219785772645089729390626091870375196569528436043497225963517181079845510431083082837915801487231207678846336131773681701846708012670607503463092814459819535999629635957565461605424283241767425985542815538139897178376016955690058004972252969849833653429869903649820803826061810608106532257908359536861169462706688791026108565873370071034557191538916466818591235608573868930500432522921593337292605779024024681886116134071892638684397577227316969905193657797139267257605837481179519497754802880702235675550015947989810471500079329395646890848020577789945545439558894210791831981884199269644119431114948858313628392423976256704512919642476806097317528408321939892608224936237177707540504868990949223860868906037604970902121958318777103897260626500467028898482827414016565538410166547087724924188605805493021810421638326847591681681671362985009504624091836703964228623059433735245624268246418588791116908722946812632492926837348198029030615750633267127027400807926997523672985686857666245726183823249559475512674638006034809780257459269309010613592989857649730697847603986898439927164441430249436894001803137588394080768377937166035063889377749833371765497077519855024593024918811030404258498017118431061985322835786119598809386033900971755830643099186551266195577033164380831286914580578973945175995116250987429288375191437870343334257550967015547765851027288352629233238467824690240883785139903214593868032788975517062618153265790864800423390502935051612180054367325145651728239174348320369936944125951680933870628321357175227658351591347114000530043874122936864116533176345320224014483773842625171836867025342794009560026890578803455353100939812666918465937651481225812832884912494345911599536028457321294832432705831689009812786196730493939213649025841287628485154043983316733241522731419498050670629349226723474585064152734940431985085716762398120057597793838574880376127472220499852858221480641129910360293896475101686002880698403718125002793908126363578885269395470122879073244698961453164498397136937938132401067725573784279514003723290957343942836982175312302134390623283865269031639020897407780459693659706845813174979202259699375398515044128911065211090536194729354787244725645674532226016289457033139355917682546061527909168812919815397399255008197756806364681628670490348268949247469878871455046129580057920819093595575079566766593441483947895451444589228527380741578262051875390543816802701448680376657905638031098754613191820396933706059359273358727240680774771072149649719440076189802182182334023610646499677065600132105359924423074930077303451811717679199569061557105108535711202464170502101122647890247977286056529993701404579828328800027183143622487241911770246474350438512424908092940844956261856507314677074035469128112487405664617218255271101589508333764245134893633948169975369350843272373389178036414303545772598176593862661157995856915520685783090757277180909092402478331112361000318260678109535076117326587654397362644694800234008956136973848416619899202610975873905716223178272774137087634989704803437184334752611433842612127485608280751498626398202769779239902726537727563081619975352871655223534071107897543021939899851901447333712128846132246571720393880636779488617814615081609571929462103678657281168628350000063131430494540339638529537100567420171390563630405633467256523317428836577966508838843955902220696004910266189917115725921136118568708295162404214352833988051908739378070344946128484421594189998343663151732887890105683683032144560465051243255056167071161291218847037048549720983762567622348599770400086354873787681831295819576893940803089421900676796022891961302787875448364407926561143014247128586984606813301622752402854259564708077297299503849119630581304898095291925052421492457217248931756441575954905398348811284073392007463043933481071819447819664304664093295043543429993401029519548028810661800481018387400904637688836414245157484874747513351666252028728369310072455658767726357426359333560186909917584041338631278405821569114915436945013741689039497667242774753888045124145064170673798673984746885862411602230455090917677515813324714589052987827393052804479880505741132442213225014932411603807940457996818367243770378854976462395558888601104480952850705211737245780628962574436192316711869421947042466571686688315078013277326242906957525685944231592499024310128332259034604295548139834520228323201377956801523513032951516535746215219132436545499248632419264281898584899167010697633918668686478841847819140231276769237539859500690735103737661013608804356548146659095373637819114392927070157956364855104395741295757450337495356018899687820677777581631553183041725017776123149394165878865818899409069585851969158954438747598847040017879965271600527924413742341164319395616383084061437796732512545585984971702829001444502861576393038377130531635276979869427019322209249062692081439162951100465478863081827224096602704511696403560093680584727016057103847963588232466482535389403165460827876306331069735530082514807581041279076524113275296813016325305125165521253081959630691145838328840887532238222620039814226605981265290968723029804920248869398425392818836372756635320679675896318380630766585023905554098939243564593324959258604689418965380334755280647545977196371156886429762953831063569223198778609967591218736144165171992362341200130468050488736997343505788772857625778184499601910525553553796073479030850954304929465379309193997016958149558327978187979938652508691756447396344212468859047080775393839333159648205233122336169171769592281899702152089481265409625852213094750300009124126851954666012825845227750138568539997488510261272318822916322363718034656898068363875552039624437432775078327533148974941938876809361876574097074719427573879831158889195514246933973087741202618015198018199293610307907592776598030305109481957057801406851904336891856192709122408806585077863788373721602406064978232916832379716194489479190351675924896356869140980576672764897489975929389378581491252477681374960650603074374196183028709468540853127074228960630710735079888515648351070454444141682651089384775885809507147906801689489268780480249198320991112472557418317027654173370037998272437142680410293127013855675500612137680935649593131072295102508693158323813482466552045815738751408999037918883915830001958661848251607197033675539498944520114241805599296744168773263193549457752348410316607771733526929511665511805863325203576712626332491462412930798093206716405221641863042753363106519337706494201766857103103297392488002828629493473771092362210161228369325431851684633648763459996814419876370271954359913170039471603566293955428057761610795773608391290142994607692500338383428387539245118105121043939940135933038513552684637155656155414608007769123590704335178737408465041834212545076460217283713385552223577339520586970963079224836125393917137846408771694123966340023083129280771150711178742088648210526296308648552405465615838503718241161558764739543100020814995401352412825093918285456686001516693775001425648830265743901765196325448565753687810068163619693582146502692731421247951459301334518720517665112655327139120173715011638682658397970762205921446222872013980752488427856690529715438707632272087705689648698643064645423150795002750352929383352327628657337403506743569424048826150539225601921382743349260923498130920814055575696719367273704530365367225075251634896319119750690488126762208816058953057487756125066005106543261393075833617411778522697954380117856052174863591020808018674134957273271548446773606047926463126215757072725224644177088019489732224927795576507547014604398948897051339508787672493245869666378234248042197691340835313187234476673090780203011305578520580588874200317544336763214813569937197109345939755544028486366818537799834285551606146044565814202461142937150012903130449991818818918806409284836086823958002025673783455105828767818919449278009687001924184148183276254475458655981330043595915171105700404079941330970530059935767248846736250376498516045842967468333817551776330420632297902286105837487754703804306389524668293137806888923856953786208312403465652370382141789220511094013914756295154622561019577906114312733693279004756898870891252023860468412712702584431401228892609682631706472782755911025005843157393927012143180896566897252731504643010218161617753474338741428302001861683178075565191065193063209795808145944330634191729291958778902041438482195181414806744427729513923474639926159831158270344647916617755041243836806984689546954041617641314604525863680552895377945696217621128981134838613919834004297351387517225036447696149194491434212056835343146550633859643729064395539896670696778717660096585799669091595872878681378743448658153412315889019210027140431398105560518191109122736577094327866894593103730605033981679099621603121388077202000782212402623410554800856684937429902126973187149353140708274568900124482803689611555101822574103934617031001441622202411496110681801518710182205636678836007927065266494191423396697659327551963543693051469939490332013310865835776918794308519945444918859422218915615771434785996939809438569255739041272290694919079523300203882200544741959503039492378420939231844468773437374260248991691707035998368950822822854877335751708399679590329985516610308246774531468803649081810634475997087694077862771007001316344402118439912752346744376099843284386433476956688424206596702588210850182090647641354287237937992819157192975517659697481048011095719240808583686848170679680359287339131757276245969173876478728219621771602827046376944123056386904467652157243402865173162425333160618369802165142249980669404469452012930739612733161918338497040144260916530812629294285690948780565871440219345388125915039525212776314923954928196994466284563192420734774259354075191768126535462492258257584846660675733729353043334671729170566011185620602360466169720391861808697415520503711955672995595310943536910394030219943329419697902023248492467905506666871339866274619038118768321029824495182826339519375654095858322743825214467420626734349628280898949506958640511584369102562009491914780442859376389557387634167728078057223142523387204518598255505551017123231096888890666694492186603186691103743607495244418989872422280151619193036298720265417976431933069583296493829876157593789745276975665638712106258855013096404519734127345468779487553670835084601879161172817403521188694859115512747443045451199320448552089113647908978032390857863675628378196372844952642568790255289910771739484275525127786034685479962658511892640375567107112009039522045434040198541078053838864924694024448995472978322185058460460733512714604213463420350849325426647868016758818644545695774593880447289423111648278086700387982917045068314658759303034872454098487520096240771987282832814613719900186525322747953542562664077043978158959202820239269361235139712276104528601832716537518746585550156719965446340494284449576787347894021633557641008029998257791258107196612615844698543218701574183975717341868017038067264937304530349644608576925486239103617766796294126258173389689445813202023223857489834236722771169763376349023960663023076583356330014371876583817153237259263117290757691400024934467301705503460751987324113855805022369433176035398290729059955893331836138717013382685936898693321438526013502108269919452190216268508098684024446780696642456835357168491528764742840850586565548877545970769108197954665335622931637878031879335698248551054934984648572158316995537078667459576086047751148310857082772209136223177775190959060426239912660631775686565479151695391046720907718129198015649791765716948594499559069505044577093825851923225034340612216041317988639296706177903270202217900266710413343011393359471324360709875662340297649671039747421489124672776889807397715913346419923032787104352513049713604495703335637892180220390209422075464302629235965545511238671742228867689024380786627055892282064783624959139246076636103924815983586059696041049755896351002810714103031373467939005510048219968488631844683615243423144213846867248809870682977092162607443961657469025852585770696781520055570965458812378413797158839341758536331481810596015095627141633021716750544546330399484986896394955091947868157617818913436679098105777737474573636490054063731643201400889075456740057542646001623450281085584787706772139604642083967455284463243904683786404335556751468056064537508652713115494094090470170400771145250229991649073175999765647205545579854984258641855212229934969864516836659627354894630111010784366562352236524292814124724203985577373935649536915864957366001077526772131285131543148072998443664587164449854993105481694859001226822398371361053811989136841061334510645040666237809782005356470353670460239996909369162262068154307700625382451712110258743787769014694970250060183424819768544771352018106329761285574997900425018468151896702622288168759155801024735822107537405909401897188215249870686144950424568014712443060065391061399045711091027550433466989880614737077722709017783222898872896539312260530688222770156283244364426247352098888205128473914477996675786374269353185291261782706762221138222224954096164949998231413553119279375372191353133450387235526221186504121670599219252239427218129971302538711589779390686095109190585665802734916344741322859236144831456859515341437221223306721568830837727327654803200794588439710150316522463707526862377479204484678206922804042811443353527665053255467465090074749226255170718124013278371117232961053099773409177431938820747896743577954460202038371618018212421712418395852632129956339195837388007694575267401503863210873261822465676567648562214052890405343625297921224807103525983249135458427775518966940485752199952252304809553586948318340172377955990198642871217114123763443448403979213465349669130792010221696321113120696865531428115341940160198585030099795816472292664149555868797736735165068919396017256323647788291071561097496651100950794372847284948036283526521698801233419473237827912527129608498418670609463167611256422268823193898583351875146281540668294795447280992927884271952364764567047467177321351448277222356098760958588488077469735243908193919003827490192041603706817188227920003973765560570517695933882397455024363257527067815347920295275254158383314525627987020934392524852961299514844636473907048204589369875032664548736135415042366923526360827020753088621174355718625881249479855139322744305445413135508959290775657882865569952172234335333183972837171795098912723965305296772152179175864194870735102048175491330135837807032262077517275669389242612359752925918395602718946729628003452329430796912316574481565982707501229989877375660704463041150195927717348639785501108866088552008425525292722115675117844174197553699393368571516841113065595989833768347569371377711424487337809488202989249583133940347802330658814924209207488948027988090846074177993910837172033524096615913091014288622301936615186459163858563173988974515052299626846902522498928784991856917613904358905253235614341266644668764645916980034552522485366356880791152442551964459109809253155821954008039672005391341306602772987507342672626042421774387380204816334727678706792636604233563758814847000388675494691851120765903799887701791753095683778367088649022442687046286838749244117476005179176168684180052309092779217435323002988783150765264388526359214209530747230024456332196214431692954953688341990217386392611248284200182987578512029604706611817785787134964709276993902575311325068868481458896312776795900949614143634745633500093626837060938370790175249091955185859278927023819468377496173654342346848652160253712923660020395969467593286085898281390153812478470051892868928178618147104181289405007813128005633983910249853602838321426449881142162093619800902139724825081923678391296021665404395647911457848616587600013225612176370473102634079361556264906775182131966081802863089235090296361076305810195637078928999469778510902354224984318972602074311442089079108052584220600684774199683349495962279406260603588717144703481413834887469697375351801624864904455717391800855683569912293833342885622733464597142031316686375062968469154604687698584208153325142567149606171933486275739560147896928263878596465432941625093073402245374400065861075071947784083787876708097799622542659072049304749757361085978847424555312275294414523278667859885314077796163427611410351532596365823691573479064527409660953442762271040088412037602366738322654578944812719317521292814281651955843443329034526935676428889915232095430051492236127158347704587280537808276768124225250780994585230436135385647149169898748843879675530570310513649026949655155350218243925774256709293762864969663080284166483847768000325509285247674654353973790796967994998160017467806494089254176300222312592087041882011683149840402671953072841390227393375394757767299714272665822890383576258313352508078266554162546867951873081783401563225530773933020853537782360980004519178683285442132959605136824455020908761494123100543186006187650455799111242487940755529771995180058167871703572019869944962932424666530807020020592341721344181143553125569548950066348384740311753275891067442900879304812718858373956429489619690226465559679200176239541824952710713412118229618848145505960504266136854087677660303206559570234376590142959755213652252187026549424157581253139374213091141201473040885944872457029384990780451948176192741788695153922343149285447106975601730056795918578236824515055289189889602126725367534362628685927285787590972636041198416891598541146490802285584062759500023887116587313769893323026805986530830539009106731388328572637441160336964331244261822498559235377840752303048732182640339315270921211968287457473661785363986219168493211995613272974624464901812281478219170769668894028172381594684323946708281561450208052369625755112272657295212621642539885156509847938248022083688803376529752187667645001233361064821706772551381028716898999325316531386704134158268987816742089290946551469150784986220941469867438572978563908563142496601279989042733084513383444832232077352570680024307870734932948593094223338873623514820803030882465344785435945374880813410686427898124073171596601135203917333781670780225847770567385683585054125144543194635512087061407679714525512016426530042544097132289535663813347327352795978671703676472717600208979983869722581031434832371164547505170584730814826794743578203794756126872552000019215318269480353254399457473571618085536639763279391689874385963700413936361646847235911015627565288999141189548047801133728175060657461112339101138721922232256340838728070610397560642462717572652586922742278271828314102726255100839875536992334095380961289528397695414476220156080232577738784787511302839448114592333295218107125211327082726048271809835006336409702773219852643664721023112596212165677825074686469815557043636187292585375822481756455765223709544031612108238675186024205805144510240778812023877626426495062395861211774946828759424198316328623537458358459464278622567212549866164048970671810641555471786076951526149533234850364954832584592473331496081563746812392282626626515789126249994019625332869693217373297646839983726917925580325257577207762753390273560587778222534333017348858459981808234388053812139519584922262514644790901562458786125158520710661253027530017408286023668542441578521067565309451112276481337071454129304689635582347149244351781621171371246536601612900050417334139701359905960232942893713058135696906372724893702854808624646902309553588797273275153812608983102018660952451256464856039983141745015534732828001512312158704491554695843305924535614013297047321713788151027077889137268881102956035010837133677164180104413627868114488875675945473358326208398616227553121298349966842199560301820750159190306824466628259066736817229729023804280290696994640041279368895009531089073097385471341650074072251797589156999107732364541041140171603617368332298383180552751830209782708596792606226891427561597018003387975022275382679581929685112936417033943313377084671501687858807314550709512455224991454819100988474129204399716289765039218622202142885700481319229292807033285533745066809893914734266043214389192420709402796674616694957497186042853224017752408955112587818144104794074776401354537723138604916989122712405806902745496101570906528565569265072806983691185452132624800775225066207289263075318202620980651520897937078010930663634559846769746684390921596497816569778246069580204739875797186015260422083190666813714016882889625631982411256057379648314117334970358650961855382083529553240354827418728862697293194611521347853719141410936221844716050957687241325472974095057035576796987915696272891410924027916216783348582950662639385972996781292690926946225330542630009756783890397871071537623727917986976238383573650402490605608513806601373595555010117380499276824806810676780273102106440287341360107249363566207809730581878195902810924647839344942229997140110202703536036718531876485462562016995139897931698817193561435285468560977409817806752764598521901391726747872893231705712066524367689316565276591805253054037051512654890268059440692093759979800759978393180151004994979228955275865987032575727931846874716452312290235999229660761648495004179109506622004596236256869242851267866567073492029641069430094303926116593492297752609334942790612667318099225555577188038513463846262295109659882960827808167602866271551582409486523180359266736843563142082202172004401753020842862157817887713796589113398922360984472502373282204383278061629764178479944230666804845816175316970139298046782836586801078668874332239828139910201422821837278011119335309253425208527982885934282497392747873159496009659298431272446009045903769949197122438516175053895783006983744097359344528024831893402757798522084143415413437030232955466869349898747552823549211825719180073033482305061958157633117530216148706106416810373445055366085391024794935684377577751803410560845558841425303886138088897123997761204476860761538340939440198399396458625563644445300246704490145338124116062405134451927860412686795028913326822772013957785484250451537627746285707303148906330551746804956131886389546203429223727909448608522473737458282735555303626091859998992731505748480915334799122070071451900355250392183421158539511355874717925633665032442931605569108356009807450935676994948777953953914454527228204577477869732708237438033293471194021955630135424707333534427326860116064790592022592076181285773092769413214213853600667085734342266978808014018744539053689176352516651926435061823915208154692822394597295012769353624147950129966493800979634465919549010521396786579466361673951291409771247198915034536009598997289023999509280282629838872032229740693994884335156677440173210227143609709191591311557160497141268595666635734439038056216351765834833073804145670602366579890122801568775321645314376620668702281081411224974844599552921101156262148053743136615385402319323736577657208645512071700853329911090417858415553424673016234499611047921200193442452006518317741459633265855580179332219208662085085155452773500382696860974135608130725638207576119609090986073164520127801379289358410970969482671707682764827754934098166967565496136434355154700425138702280550034661299453539144530694442622199084818601794163518055857790925730230513316270110537879030532287273744919789725629552797767564894504576221677459132054136533658029338797628957823638625717166626681646659181272586347671135949988199430589477674388436575808918775807662686177037795867746433275143771808642400730285028661809111480452736109585656702045515939744106171059732868502512112046632965374493649605999901098491190151524736052992550490289206898512815492224199648843680726868312800230713224324173622893304915545886100890555579434471697356941180354101121866682864175475003364263754084119244767714160345014440616630187442790827699783562855073614862998245558072185887173077783284093932561987914527254456836962496162450741235711957538047180256516851756875007941999395514548268265258782392541719665932045494567890402635600709945565539328120535850498697460682457902103053491820924707654829253540064307003474280672102695993582593082978774144826463938626498705603453094331698080054167749883336338922713282743362487721048018867528525019213643744600762547121400527429609704539511001328492754118123100900733787725053056463911948633752910134303981102869320986185979792099121062886689638802556314769302920951676561725773853366531713029824712268611276862179583707081186621145571803210252168571278018714856089934499005174545537103411473703402196626536281115069571805636774783760382756081270178106869399532594295060517766857057252602654860696780183592528437157693786617663954809691768514851955176236032901013654234515795041896404266382774377942585288275137202921471875181905864819982056282299767825759199293914526296685441827048991422632458422324373424817973628538846583807397536389515626527052317964836825760751265197047339958351599103763540324751656600350346975886245404287109993784449312397200965644724317292964173633177906439157326192886419615984492123448572265848698840894440765901887856688607924009607737476230210834296055349530921209396668237730668619133036260810668858851885023789204211362468734536119986634624777970708958444669692185577030330366017521987954074974932640446974097943353266958089414904723587328019627330736612754265863236300587790822586398586249623106628429395113174494011181136487080735501031733146687747489762554056214106054975947563441033510776636446963719389518285212029949826405602499059366933165075888008318515767953738518215089943964273214996210638352727933652069563388492399198466576090379389772018598223536085282478633346655434457655695354119435441759554185881343164267319435734850370320635451852923062009983100511412463092424014040006324975585306068837359860549456130083861811721234493505569216706966075529472111980475425320799465776121917653432227289846768935776054449438562876144032432822414912812353755548985611896626664045938823124801413279705577605556963903664579340445995740413841657869195779064445612974672634651690244359856024877011569203169854589546451677321466820035087078271392856570501806997677582577744640853539191794388612556121791115415127754813134913494281256126644319074212594015992593704575471491306005439431350911503908609996390898235419754784495635255227511693076564416560776619961752326275766197006753931308133144489190019159160497019170496712452495812619691041560919077399640207825641714908898202706756991331548244534128073119959499167295366642767107113086012116437866050944480744217999781204131648587322098311206014624355386280176305638722822544559379996293145988880107746806042167171396469220758403921712508213429127697906996817199610213818240528719799660510694424425308284848567834071304426486638318282112418501249979559934321854318266558552123396042225961475333311775086389119520701018662955105593413731383313206675678370046715868853150175708243688501039262367067306835651652803765664394823577699666181846991324636740134679873889873779786966667456036059469679214643881502058267825581981263796865033794872415343891690709529914736784985985561623472068136719753108393459384679315675237133246219657457226054360332762531868149103437635869448372060230122964741152763828548658441378370911526377792050170971256146321901035624201609889550363163135099617158852141766754358183324977431193221018831851366758782630470532142468430626383218107252108470368686620202168685504417157743217276709391699236290245685568163200863062730242572135351935428643765451137946347270533691243532528611099043255444125765600573411107846996887119239703811457365841820974067551616879236752804450783831868263633380671761472645079754494373724829756702064079353846456059967658382425314404103220056097578281820365628987201979525830475629576853892878791666047744503137246455873750664122481353569316286950909917713663718154733614284512579789667098983077765318690522554874238914013215671893097658738555502806042189739566856874593845327314758127261219451038810017306970349810927322771782588974755018828515140197712559838331012184007149841811467936805003639316286664221851782707133136713294647468533369177939221233811691565500903509388325014895381662034219062866360655471492220675600909544627720108179730872854195411130971443305438688514122636184853634162193454338720308723276279786462811981718184258793344236727867405467435338564638528039221580579488537193956061098600694999570693776775526048079701428477855040390440789520949538313274250217696755274542117867500238159495844183796882139659948099871728537823559393523578876746637945314300549049379458435327195592548557735621368472778816880544298152660462851243011449460809161269533636621696665838282128930849790227760239652143995435472034932187163101758696053495292532805262223231409039603080451162417381457472722080623371035333661555561722398476089005255677253823430636753327635141425185703695317400743404479815068280319440416775291228785768397318816558609831115447471107421342368476571799687815103334138914400827382429545039132285106692288586797655717291047607862916733468161213074127973041494934997926998245439608773459933057265830620644002172432620164965419668278584198789490041683746917028220020206436209722807372968816106555669289163290703735723719828697767349298452624350931141816148113864027034171945937787929617435110413747261640632811776801597333426082202961000371272199411060377960854754172597754946406103898444663547502542845591878341767814608509485100766898747114796898162699271378897605178647074309361787394901702282967895123018952164337835554175537849110899868755662664964418236327449875647277273763342460100043527173190738038368931261294964586855773179236928152423966964397943029994917397786161316771547705822467416799159530565953156779175662663013027760398352253481855237564000809126556410837630739662275795778236246363372346364839275208428216158197850335048142272741853726753209473252000070434267407790400797829657016551088338213780395125869442606697231598184291016617426641552250048886145059006109159284423775335945570942123619165249138986846438725479074868653643835629272274184677190790405072561628045095077389185211490356072360567495959438649309915622010347050943103331060399941699037769642749794673495058188067524794034699320191329612104240288275657575285638372548898623226367136354455925170653635050920399563408605916666061907829847017443269283639098239757586878230739873923122575072521393570057239159088589450074489512413574156346682204525994099738684591084424286185466780227086766966803746683057100112841162504973036165041651935841755816536033942917790913804045620293215329036119221093114379708240980866254621063149637901546755038978043768152887622867062872363463567866750713493816456259665567816086255981978016567908678311764622037825531619022060032139925370945743050856664163573329758802751697199790962284061399554389695602254019869419334518814405046463765007653800607614878600568999104947393244597597713958636088336579089382584684088965002061476160144552771674711224343764745650748575208282937155670407533456911209481549311162316601911727104694469414346377800384762092806235491746866639320101781651921605646039317368554761530391035721771814048795020377131138597292270232024372216763068392965409685846756193338957185588903917487884223297164261614414077431140261491093534630423242329551179741658958680441496690322007587877427748370038014417545536915619729049105860415322829375032254218205383508084977546041957030837983778896551711331537801187505987839083665123732941500238007080169006836439428375010739441590899255664783107560649709597060415234111825450934841759457470447124653174675585553132296445576794364225230479544522205248139538400399361825120969537149222496314798126427712918106894771283888159011503220512775434024110348622222284580751961125541866937276117163947881409259905332147381299443491882052802932724253649298306525235422990552039784490338949502883843599057158318573775303658385674896269372186970628728194212028037720981168831174247383402176746130086874398963778706263449725007957536609401406735157083147072310222487621879713570026736366279299634732476330848707808823372484856913967652806512624168980327985362922170912628983003031336632893863817485003600062511797189781269267864490132928519610946814063272000138772668696079913101749481683792637620185695480985214401550022565892724069873585875880868110294741515397074571960714741493115534260233986101412972619035021329519639226127024225402451229096980140647689552918841673193545640052004476059351841443735962784102682988059283566941548333625060482443435944474238345202519813532070451944745909969529886152153412877474017661125179325145661835963670580923042790846629863884884478206848269917169933037775427748895558784920865304023802812881780142240495542612681362832176343205117348171718058954882282170812612104615585473295954534447783486752880483405305189054833952066229320950255454316731439938083676532597703444243747126421530632431257497016039302105784631923324555876957935169459272285893945940384701914379202517832203435771514374087563266258467034260496305734411938550645002696435130352924961400131910683832591173326251243518268768721817592306690780741332014283192238648557355297506503296284668670918410114027861058205173064773890715206921480505315328587276868134859930780393882505132175230306301134683332150140876930012811756520614346525522183271874653716614581641769010678449812882078308441267991373276193644570983591165554538265330585673405117500960665249789868852627114427665354091279321275350336576900249172520085309195132681280654919219228467786106871599828578113200340200166112093589905947190547280807882304085187787977207214956339994647216844304994087210793266916477310825674632919422107548182111276080532746759607996502046424294150559788627321960711589406366426017536019006323401653096423672750474231028322110503654915291346669239432212104476872905426731867643377843793108882400077945846908282470981835258629849763766770635464896022764564624946026843900841699239636978901380173282657921547056163231442229838391452719028279555386475690821207756112547628921850264146839049761736049367185364928364089106456916131601893837192918330509037518724056788449025415879048431769454564839991651318136732177339555138831564677487257375308464096423131341427007670451328735073925649044757541811659243154010903245402774181026029079468903707857345177921130358451908111270598085943673042102090528500380326840586862085636514037684063493450525412733770399088906565110304203409996506435686803421323301982021873873770688278552817450059680133876123322573280123578326052016995102015572745104694590801186083659336255453287271667178583673604251234395874164580080279980428684591609057065727918065740868735684886485273396048291150040967838810934176306806134846901143536442178741357444948863432232950900480210453025069406160741508366984831169109268633961295337379519548150860046395612131601698938398655801250595622135650096304493649335930653233772379728462750121404519776106298768633254233549182603901205336613654700700717878790003657776125572543982980200239663208396884541180568934922381777819784238291485351758742631843622661470781872970876063671397349171976352663903996243147831406574045144511935414761927334959064149223387231534569838603844177571542562977859517533928146788585907488108116038213498158706757635605385555039784497860553879929655364268769197607457921083770393293141120774294765091394676827989030597895778426088755820062636754890248471012957474614674844915670457182183342770755273514004103766794597570877848999081021018589236807360678667216195536759852511158320761274149761374073415059967190814852097935839663628423880182400174588645053855063256783065528799265609792044609941681620128950724044495659926579088783717888515972148876512999004353018034049003287310612370481841728468104086875052008965181816680137726562760118225223626897873419785155192040750653006608301957071265308152804675686795178351787912529817347559781832110865437993246559571900659126453035665512274945273886728742974886921155096414965957339894529006347872450861726684231871304777831624391789085993809378092286107902067072485024499739074875877008004353426184935524214526254241330794382821714768930103888892303983995176142370559457098853549411114819665410082942931836401462088682484489049084518303582184595243454161942452963511561311161782196214240882889570416422529000005679430029501915620634408180434822639428092566077642272270619523503393284547543674776516251610087865345278194669883728892824659702591339780726584022363792371180349765674512860231912458835995795925632569084026990026230615451440378169920740314284066549109321646778871678740342468456558689152449534128634430003784024890605186964716136794803376869344568894788786903833444593774117678561102821127773745766236776633048667384590263703805396741699161435848315071914463196569294491095863959467785249178623575397113077904734817766079770474118015971643272550161774206640723266765569676763066089495408035107246003166477985530906577070818874128417481913374517603707108006714354246703412737393323737881399350092581937053107170157549052555105313293802332939843919190728243009289455131639566851327301686065405673504424650797754028871465612619410035848678670371974327752045634001838069342463023562624400634602341570505795868465612165730780715840091984990163455246999503243561414889225013343606184963343581136276986463980208790014937759218717463738293759983379857564296188701605373445126950486293080936751540364219883654193078693724980387307356006170482158216977204606418819516006009942996424780855854434522178794791322392350772463018438442658024926715838936704275036676169807501562108809760570933157123547967322050535511655329160011412684571565249437064072734658092068446830148171095336968540261508942294800037845286257615592400907764534737370869299627666005979211159998796258576390060805546116784620787409801862427921483232785286252272541656375990570164696166996267443706907860690018678390841492065310185282118756208286757336162359248207491647656765831675676022382014593941068379296547519254802618062065582794965110213671712705439894167669925684987648453188175419616255746886153703087629122705326173037959941494554457558955868309175464054201893149192924749947478710435652317630456415681913786283718935247143146905972451748993698822107826059532029328193469352410928937949925982616204027726823147261139895258447965767918166719760438472854546582336489967181189518753250766725871559020281425517775023013612734787757497396632187193318258690326293425384001339840793613363782077739771583987965476606641916588569878481177948088290647383003374704404296051078722358054948286011581440550984042974784990624495056096850780379787073399718783146197135235622497214970306067774987449744609953745947646011754678232721060541776502109539674048126369995728668983361201643439775464997552622952710815038440194350841497805039671055736376523179640096601572538610091384875712723674484305313756784398541450931931864947825510862451784531936993141368878404585618874289602873549250652661549644932633362076936658574325128996519790019487315747860258267742504215174369916534456685231949036212150535835889239920986543989234606585454376699687957854051389492209135239831421573396308986405542476596877569056157489277328883791957839515722225130935175431783867525078067273697478430415591052728673603307219135145685220511222725754983214728363522396653481381266910297501560053516827783607076453049261634083497319082759436703196864354632918461202916644016283214407768223826524431293496304759764638551132527485554288420220235028920336203490976494131527408038962781901360015066090379220682603930462709614309429381060357054434252637267679188332306527270116982511803450989216379336528895062480314059918663216713999175233740688708199725141315830246399109870889209350368174525186334362510205394725185101693875433247909380365536268978356491431147511929218780027160695072480415809759115743223302730863532901902834386189428379114484013061235150149119833241093651527681610745180929560188130620722205858683671432579627216269998097594997036822108804080258429248038875331062077620276093584488685655200779088919435348688238933454236929395979662334009493308488259724284803301457714673646536160226347315596647249391129262485522283400950724750744388749656809260349530840056757713257297300275802380735030205427104222763424784690475468803627487596136289599902923945868011365967568257352917096292062308560885400622241371080272170555107375313423304039038360238698359667064557171737053470338682341055311826909500433331711724849070588797946775503096762940213949771898861734971538833601235238707206240560247165852916073308677392222210332036909800724227155640253227142027150676973630451869132585745425086910680108184952318317094896732132355195299177790676396701493740306631878117031656551950484832789323221219392442888243836831540971090669006746981811494420577557469890998235559897530357695104324821153096809128503725983046350256557925610929541635141132796984078594545033975263363223168328714329355720199445398585292849681698264551117037789883148886804572376100659138967754507566424552261415841595002404725596842158516311249859709650448720791480652656529641955036433669417703989948042359105179316326521834711155809446836386437375464332957952130667887810960271609818577559682820153662897913732261061349228673329471630566140338766038817016941757307903816431889650669380781432438518872337370156321850139424233487639538930846621693232632626908123741161851102656268037381690852680145366180470844981766994886309545520080540465719819302665822592528227487402933230941169810735014292147952966398154111185318821681810000372641822674585066807738728047159821290337015500961977999461889911800571417137579829590250933005440861612482164706857681367138112888503892608078726121131928509045370341031319823818017999821249134333657167010489811834671243375832324058939747874816871080789578868048079527284678305131048375484595481048013823118691660595149632740175813618405814290864270305623285877926203644159975967152100720843297033674187251783024254237891324437399705892546433921447204415319529123784700099596255099770010253387352230107974710501596408980864645483421220306819563826015821728862212927951969168936873559456835268563234816867223587639352657679059409043274002606280823064386297109758411739260484976178419048716316361222137744995688269996068501859722478526599180129253298138904369841062923539847446372709249700491983968568731722331595620095662228154693719001612862915054191983515363647406380775214467235414305284254496280704496198561672489375920043339659029289256361908807537787112994905124395555270836181565343329854673657660270079213268058592996602690715241540746328255991403846660918787065248528473533025020654041827150078659642283718516569831687752764250696236611586473718192607432164533202382470807997984804980195100021712203878294521083811823981215558971003735637204122165925206494717428774227739083952102238543945856600596437817955239518642778911334150002472511627170844460983973268782244926632365862244174618775723092020362959109493823135407191608842489686908841928058520157200631023603460910814316044079075280608846540432659818856698269177376631802772275830152099887522821618419943132527486829942125772668736814472580756301867052154184826695364382553913907583492424771364046358194489051471646602243579866532401739475861540860081499285677330705973958834703470191651335919054567463781869364860179633336541069951288386116708802958287264877966381661819557143972434213497425467001588049471851871598092709003523186827339235130483365069482452044389258812056094664495259619488011082534950651130688491305866777529023338958018208900395776621755319958815178334266081160527081282943834803462750546452394559752389743490352422484097064516534292889827964994844364161941848165871069079664633361850311732697270306821216314978947275310270658070575077671374739999755034780070515899580206647323826675261361797723202716863192135499102938694973910529165971434923770350559558688049627656036732010180787878737505786854614870441378050654639313264826643063003257126634433817340953058195536331379542212807534338147720229278025436247145945276302869377474762009918740257981899824626741225180456827281492584279180051979111939938068588210068389770543806524157660650423738750860092355986654941247276175425039515178234862525787195901225239096921370438971462178058384687126662509982594851211316091980724848816386011654089144642030161514963131905241975717258422794305022920705187809850458630880286096353776417466610720166839471138078602458022362023526290529218222093987130659149833067157428011040379479108851852572468203373079295386539492690666116766148518314154946599363087810924301357922517497377994526436071245402820116700762683893990350460657145194522374797964772341127252857097640318077449466362422345598818219095366944994804602083062912254632351983184259072670459451223584891997416046360752724251855687472848835078087234608572331199069917305796792646285301718032182868161994968684290312247247327182479596234456681225574188681351430500041051769945298373812672614683976132224431109565929741309563806235930433439528296851211385468142101827455248118341903536503578945189068586027273232664240302055836224886098499130829432497181399747488324825360682260423056337424037796197562131517392679951869298924069152789838762303482250936177500814784902445841333096761742726826090547611907278174989041591151230186216193962451854344438317577848181146149643612217530170539167702316388824314786974290352247772860369435288509106643997208720768792559859221574274845546574712333526005135725119956242223339275775546821228708463358739034053627959393222480081537108587640372209499072451121175369558312972097828205534220517541994602134948053468561963062694024527783051870873844048165772367916847976352837644636847573565886944636273400832827651209196017511896968429893481553855861320025710621057688328023255707225214996444255813561524994757513149292587917815612936297891370149937111600182813993980662614332281350452235300009076741466559608446082248235796403931534351019812185158507253156389349398707235651702995819571135060313795985804913225570139374047688875136353260024652666488932280623598707838970113664596978595177836911678379024665098009157164799636440410731299031542916136337319197257625742370991333700437347022740367963664226248587996581598396195535919756004377520229070692890178207625016427624564472209233295839118746672360256921806012216509568904415787417446912964460702926504180857397581823226423572468545274572177397061710728268979445330709607675069000571586885509171945779440429612906085383544498071855081318278130525540789234260389766694918355948786439453147922052452369820688224852568224458469787697605733247809334318590565549296377339260594981467696951509725452503592152473488712846520000358922318299879932711020270962208562548754863267988724321487308282917942049092726958176366786165024178842803601318019436880753360013209700123521173758907039027621066745849271674491128727513274040911843542993713506241973297440805065187955286278710167239314121464322533705990646957942661482218012124735110422607528914814694188476800219641519274778176159963040593047130261221050459097065597500291730838261640549812445130197125832366779909162768311135337928380539728892073040252314360795265690902755655828232830900649521395904090635380036297624956167702888759589522707374479792575364382120519637725656498523470755884288725086321051595787426805020243833967957830850950839054185462423424825874010534609158948018012321470561592488422532313131906043745195998189473483898705403792360021656690333207634246611757059164078650489372364638744846260157609435269877322126944512521394726011598072137948960967398018160685106907432567314048283731742705917128031253298106713997676239514371130875194353819529019751249572163766126405007344407154245913095533872753899047959792027679516046928579185372712559752331145516421464530816268316372290117184932276602963628461196174521002063068497655398148924313294169139597154318494797683957189061362883659151424634210294748268038723702139498195586685977022670377260880047428068761400285557215791201834147537682933607712304250252827501686940763388300832608153521985335330276595076475268953960241577768045091358147098012040680072393137696842230684226943665282423035210918605364837709033716458833883768848259637256731259675363496699916510837930269271893449661235523059769857539043600208983628163059333215685174205954773379050364462912468762757070454377867351744231943401213632704156902356786600568196810350719558339720130369314780081944453958737623350562461467792850070337943765506574799565659938474001145814267928509760002076244851995078770688406999927475007760306498888141452094881357260622373074929627663945694598971877803751593738989693298213295793457801504643332967012037072224432989825319719050228824494746055313157759226757517706985090947160856746022959124890820452412174203809836201838484393393757050291657479096904069431661545811870172815301435437456010938310180040794658577853510703658820237663023685779507644836950478890535286687620943445587683597581939770168623815394140743230724470252811903936601289667522981868803329340780461035642523756244474129464522758778398860474732057887195794916787060390482122731244743764797113768828366704644933543204967650736830272555324200819039613472068894675048249733827226834495075476306807692007387465498110102365599413603171791994258281763453181624687534872233596604629136394511052462604638469583962560849479080060943584674394548677123988104173905277180383816138949555575821832391042104559279444695857401042502838408623975649603275007163953239614711914179542655515790154999440159903115450936531446013426451590180422194001069337086522842285546277222306344866812939164761695266116638719756961166903520382758899790415657991510830054086371692709060664206278442115962992012887461505891860208484603233881409176646797219467480543769694753148764868521646761574346931282104493496303241081933435947644694174284332011463997310379383657606931341646218880168272367701068224685882609659665999103115626934478802092274790306911902375480613314835240278743873904913957348353528088450119482309837874466473231088179745817287983080949053952765417612581028763580865598160889287717782895138632362780465709225801433177987768683803162395807934752309449221339450799759339096903503591822290618299650747906476417358443832076834918155033889330522110408942551688073130036226735256358449926602351144247730380894391593556904199050681751840076639449580981742197764799497287189169426881963651236319319420187187263107866659699301247960483891757185411960829704381011855305501140657400407650986343054890941984912287794696712547185624617459977850721232975698418210656194270872861909989679652239888809571512073202658849833579578819104123430149848911766568925218931002236583185440464948241491309002413856066735333637919197383661494190307407189075794497065582474957689114080929459326252134619582370291646004008046912021472164848706381497422602401206703924977795928796269384307709504675699049147517558456831435195203301090203256224674273556133995732016796952427200640278380239202332872565822806650500856923938068971646031269005516772276483191519037916038800230601568508513760504814177631240251124800350262908632538546329951893232939266903648988675529124048639056741834770851959604457399288359611117133708110473946928870277095321836737140393031823394994035768933146875541425641589496470134798915378351101274034340923838891772347783772366305405215393561887852023278777194554918888290784877459731727163989719995509572507746125426138666246983166519809738712631904113768149143767329627025730648923199971975917766554006369599055548493543436128261076171320762897978960580389354694639028025886386200946054548572181939869516986815585524239461810764402475818341051689923647835474064929812381978703674823862383593124335189641860923763884847637939409956167420049104671404437407882552746752387784643361762423999192238167000530213331576141077488726471204495577087316047274534284731644731038619402353753238138891173813663350596054060578491443420044712266026066584558240154897828409570226664353033491366917242918377334707588563942008066752905143572162014078020373428708723793628229994499860137720972546872287043699967039287451449409302688275216773364423992825346206581773277899908666279863978219779593311944257496048336714886634072960605931811341645429946747829385842030390392696026305372957807109883922728271892664718548437644751254716087519428398703247392888618272186269701496008238075318640414627615844541192668065089586049303368417777178414930876365099832725323062695377354464647545042409051039324767424065043448525159727140154651526517790682767695953052061726923099403823259680689143564589195939119150661377940662974688215558991605989321310372917711196414242894396286703643960656147869705935191046528503695147531977725191134677970215532106862164309941007489427693183110478718872097604099593507700164295587550628745371987734678620818946668598283357197648362064981571966479468126734462587487643627139162896057366221396539936879828183436690587796910899083605618929680793640721292565347510407831938856014074353053382237454316852563218259823260724417216658797202963911229335847023816950044631108334051828291789093329739336012523626248885452598181429163170052280576465432579916713729997741158404511479364811193059610685724237876735488895454725613121461343309324834520964733562828061492531882409843042478439519088897487536190361213472944710739769044571234648601852421420741936852837392811063599356555662413045128129611182937918388738751070872636301933325997664533459499767628795689589536029812532327209623823002333054945813982526002097456874637367405033964895880954688693681671956808623673887412658512942807877306667952839900524721953132210798190180702815726774643597571824424839807921873137665571612101165285155189013963697965296847614475451506715708277811991689454631322181328417089796326128918360145497532823520810015097787142313481272728288927126314349524914299166930103227750032304547326580804187769103340871645959316992987153007267792498206166606479205664098143266138071336686532661948313529111031043779193373254633464164711855215144515219226260184191075183694460954318194568354665819642840427266664071510483317878574292238046587158262383897790167004629781906917466202175778286034033861338125420527407689077801339148378924203640759847740844432794115884043222849283230475556890145242436506621914395031525038194235965551053303917988842890684012386659550956988988101302598613511845402325122708846107150554504544387601986796852825915910342712981283292320845669101980099262051616042895292718842352505446702114592243904526192082483908095777646504201268864689632728615860444200924979711340230989748744357595944254247906430254425290434020629841834834173104455907008257474658208634977346610064469709802334705857246725870774701821513362346746536574452383408374088490643835258037918012096554996594613996094369647932215983749797891262683924031444810586782223367518097628631564065442699237317570094917652579247304559153867427887531172502346802322599412512775990263668916441379799126432348476478240142416540897049914736920419918369150861779947032477096692310139213548762116047096412771834762476346969936833728373125301594099254270616655373747976381049908144713030829737590562944557856786993961108269197033684952147663564282066350094425283749739634662147593592570936159689284300031971237859859788664617638416951050370447201427162462950347296983333664853496659091288311713888016844205270681296724245803234041611800604006115431828009698688620014850299641013491516719641087660864828440763426951851071307378250337450398191921693764486569308046960425928019443678395252509399307160396534942263011164690829572340251646492465431088479758428032893404740819910649292455928883676893227036295149593147000719451881482844339226245734209855924981649086670216829817367194295707719013807104854719379345759362064593541497548041757036085258268008391876618835099437606001868964987034115043806523085900393738107886707291459515500940556348338247783534277066195133224758232908782479204369119985423717323920092792084237274190427491239971188172071581785348840622139139121852371304957868593934087279936321441486135790348170259178775447423960397406511775750172619559869752528112396041207616872412495089612444120644835169482755040276630997961485705897982669481380283349146897458461078711597652475089971224164575763307867347655019176093983843102791116343104237530195604072174182498995048526116342672158482393307554087965461625493267517686161973658605547721920562473217021749828547658619979184850970464255936223511505992077832425586809206971760324898098991385685546448977164009269276074172482974638082009148418697258874582970077646348761941884322192374183885178296104599763236778216944042498538421389535511080933412413924242672605750807963059347063119343922681425809682963065352556988320708741705953160170091734597980829711896817856053643540628095862159401320543284930721568890028029683709292732401834877547661378527358455815150001066217212238523698614107466808515346039095513595988784399269677551804047815961831634712699486406351130705704643024232683227333089083867367837158065363522197481193573118145121282224323551159179304315879517558571428381123194966584450575846439646982439060619792114221838896677021203662567801560908376284069676060456731334445207730462194143837468918375762110530995603283540990914589598509710893339250889322001305481718625039262049659589851257877552885504907571748418004010601825506721676736168581277957277152383106789553876540900467673277921662141885378147781634268049469194999250015345753586155759112950193034892854424690150534705976597299397835812387859061248020921707771520014320306519692043783128554991161633659810852681987497869954699455229072754917243203000275887722161925644824487777729050108562108665996578659358176164874871081065234502066906276256135665710765028082097146987458322015485900659329049415670281553647983682612381666257424066678429119920869953979200588249674443251967259287698504469868628363771061941319800474228802723084609613001233297725324301013573839537695375317808950019969395056554547433888684248125372606214252718094570602449761906103090937253125317066957764045937569922496405206632748108163284395057840875756898981303033680711295031916746978069457802261118583797709310398221323300782145386965932649287843959658320176891051827505633998650283032182973220700999013807241736271974074680115170414830950268163716259730538919907564017874773240719454248832142323826277775290951010108803280680085096400711433853028270370744728529402606381958552604500792793462824134382449076802660250800796027849709513552023327307539113890069136062273986879529786866902927037260899465847019148024908783394257147960517618425208689284013805370219105670318233282019232821327999324429848080497131900544333865317237757694305705060482046622682497329765355621296278422483350707527156928438919573257064309373495613701873745364288410073769159409895571845155979417743956244653473973828581389962987977234104728113654923121539609133536311970180132291706375977728793035413150471239007131675914272353826666755760710307077867420339228370630633249078224040192029193014582264652335099026539707117830638785002433315167965698975729408340909535249219673558676277596215265223662945346223248996489248905087856792223832274179285747316278192817808007301029469873731444427182822606483232169202411064195350474957663561559569571568717676197628494353518604277325902235797801256814070858898026775465725021760010717132469241283654652656297129886361800207943535639720610109877526074023758856421211816553869456765462902204319088532481902254764545696387830980992318612568937435918620256905810389475509453635585606677681732477892890048214490865962608905656359506564146129410508516551187738680041462062103642522058627893721523356840453774165439280807650052471758197901254444917032686750386510197962571752907845714522322321883587859106951839042531597961119785379763916513926159774006106681533419836025443551987364198634273928327219900541055584707372224918625420055519138588995590124903176291052244724959112195665186267802944927015721267548581925323223257989838420537856773609448661003440612787806454150338810019230699028804694477175132379258138125036190237490593819249261547206969839492122423625002846921509158407650568822944976438116929171887093821672142859739748089643943110503558228350733637456371434619345633750122768058880606688071693071784074863677370066778489862105143935436571767537616242223132609109604695314569936238094874007030148216610543237652675556193909905548463647762365778119214589435466036340834560365178974208316197214862084681144972334401591534450252737050178696395071181932291217927505812787916870330543297050081218769793326374419439938961143638837513412285696791088412433304001526390051905276821917371218245169407925734031325193685723209054685426960360316341477625765029046728761147829623195694609672669803139981551344331618449104383191197850534802813292630216349622795589361004438232485944808472642206507604876893304014014357980651602370730220351494091796577025278182189921955354385474153031594614899082319239207644833343231738224981722833748997094980449511027147755991577444536101884463969388668877745705172728880854137139432518573253983625584022885383020922102287698520446951343626820166977082396062177351556199550763089145914260659480703123428507610559774066315988220025578958243324877015715564433422869808108849449793612391826204395982710070392033875908602230042777933986819817769667135342438206301698594967475421317207952703330485388325054796954696852879592363756906884739447271307813243582214091746422296858625320987640905316332591965164443153516610371316908082136489283582342151258106497159258797559952843844808738016322932268741809404041939918444212041727979858940414359066071060107915278381895822247864118738784187474697055620914227376805529734077885091811161265077614337341167804590293983137977961503784908498410038690714337866097586790154152992558817600493073379237580421901156721536208894136122969854205883201448608599556590230678448737523653868083338629562917591626935334821720337077082249724198126638108651521899625196100898662840939475772920285580679312743734414935133197123396022767081653046562929109332651151525753527245830094966297844391406753049652062401617072725987733864214965022449506305350952995243496240446437071871007838192989973386856632524851140491698380500783707164057564059521262373844436826177399465817752313443040628055090751088801722034943911582982431611002314690337911431248229936237852456934598753823830277606257727965935680674514629325195785959929267231116224448593038449788484645445775241402167824481071891474403155876018650694539299204249917231348757687001855550815625942841888772480393529335299031491798407372288112181602210128678683788383499116194230036892908779501861671140926750526056864231147062480569866360904011806153898177053216844551841185213196239833389319209138902543888029497660717605663835850488865227289191352375259372977502890160813470386278176059201012479572133889218916742910618749609375951218273077631839868737521465374204144905310152264663359291069322765819596755553745864444572570904311490141982563460815719927387302930293485699803503873442548294998850994682087578416627280898849374376160801392738032306092109068628250677275430385186100950307685543069000808492637704363992421500523741595090167836029600288172506467051195549877521313064021597112615631472645253546548769720403516265100135545028034356879974471263487616314516583676241614785145479313248740170187108681172910636847539875006086385289038947662808056792843381333911390428522020512518497829402143383899228203534313903268574232977396386429765028787950877518738426874543424367452650633462562514862050419005116973886927605345384049871923595271992137483504751369154595511481891895267709391660543822206457994773758722403158214699195970382068111434687093059803883115358894154116665732825538064528826353106805186575053895582080092878593355161148504548849566020534019098541231094878162078891811257427026781867470227591735357593066225490813435765097117805463536438936837391158317950869468161343135485835202845708033843512927874623784275890830428882107262166848369480327173593664844920591418658578055562475791941293899474172018172488282096628475690657273171955626240652836939759379549161613010301324182673591935039039352700083239835441273572972015314265382718310888956515607302460756775233297475483803741512393160085245431024857366292418920881979632434938832705681429955588005085513148566658342283651202413349044958677631305026481014468485123636534531702238847555953324006809210975931095982653917620625346108026827540790602224310468799080948309684970955268923243833032570287723117322231323478859586448977070768222074883317804496455041381193798375530446624869021255156514289491134009417173652548458556468631161598008328789689240392615037854531014974432421459802487210242652077450674845553999030243448382523322330762914693255459858234283632554712273976271291645280579539993399700640636307415951917691865817678406100500578214539920914658613287557487552707009163201298988454823111365271162777347454855935981021716359449433942296816329983942323379446005752622448624019788633357488610600664123410558638446203886141067822173302110019548189995215310495396158343195121629741074658575344837229167778668805328803352034254512033371380622875944985379173786525679096276879731051567378852445722013545157345545552268461950232062199135676350448648039073170676723073695238109492828281602000645202750878525529877928011998169332443243508483643487567985713643595900423341721886896777943622677584770077405157995727768163112138856251252033318950045264738589533709202786687600582341771480948209116385858675454100970821110137119595601214100809763524661610948976874806221724637385379948789880514077200192858614506428837804491884348890269233340357672721935524572133428134308210319985597167675824422902495832273586102029347010682725751386316544941821751872107162354429099828512790817207338073030951697661833814709308327060161131774726183038950957292103350884182706461458558326915531672228470660563784961698838961713435953127880645846790671400847497846584205664885599540287177093272748127887520600207662952249644682298019921347640779608319473407612433742916504413607858347196848656063766912609200504396315115769515422372235735432684965414834154754068139531890147100505049598113480192577640816655823988019968910808671162354535716710552508714579043638729049114278314559324350257991683569594600976273502486352710530846806447928814975647512812962925296467586981122721985817897294103904960743696101813293452423210108714595062676896705596879680502385211011391344556127500917103621492537052763521538402509720766016976314729721087070701048598996244142938373676725024091313689295853070064149877643873494706893885634242815794913383845762108364127208746230925952330630816462990275834893911683512226545254543917972778043020185158230478203882646063958529603121585346175712558257356760911863479359619015049557802744159452289907279329180385222255135194076885391384557949204315941569178693204816119122770552183765999240996475438056373444869139988470505141631283388984823670209802120266635110417842407612246532833447421486344448104363743762535377915280600870226864423992509005722875465184517620247444306980462946307292766044523649721949144309324440304681581275721909808866571287909349945715054842716622381645884025076534962869596729831887308451763134222357899596118314724104569850777473101048899466717228259863535936002297775122814937382596803362743478059639322823567397446813707482681711211418346516221394682047359117839345620107316657611562016471236208699423499549373909161650414055083272616372907276546734976390902098655364408800489532895709236803286637492685643792508046271500236515180514077462853228496759221230956922911430171121170628156399173403953716637144150501930282637885522900482162072663220972595580716142304120365001745491109677136474999017749372127705384794373290777151838722848667038042370441123340111732008047606050627050259630238043935071491248059051960093504231294994519109485059110504332215524216020044304434135399214598740865017327488233332959017929147987789292153246397336414383580816167147362218553990225515441329219586953608079275604075950819244943915703796967040813773659716274516714373777308958720425938566881230607131300043961392028239861829007242113424772332367124394889898759595812858541593300692955890859501945694832872738157154069841689862511816722290235867831506211877060964523922737884602859500713906621842312307028391716005103292881793973652323181120911986925327044143345168508229117755272914739945544654745604828915083817761487024567050573656482259654301383720463633621265589330166199850676005950651975485035347770272243909332444930981438618234110403792041766854395236834853665634616227618792499241656978795585011822727896786009734440329730191154823541602367101626397218996480937121129359337356465012293934963116865460241958450235894090620711597684384194420542942788058324926977302794065791886621465567649921182002080348050321751246926598649475093964949163345650765980845581355581536266266248969961699841041612678909240846495027841609888035382125326999418090768707369944557552583685546668434688219737926014322341412957042675142592178524148315472924130371040728016307470974693037068724331650868399382939103943572910243004073472232706174346875120167312441616069160475086341047909005810651848297606942599139767296458425807225907047735496617279182238970665919423636403765545943019391119327238844470375855162668434633330520881473454858886531656131926363357854429727712942429437807508813056478633804071610526043122685037637650851401591121339337791708384330943332118080080961707185677906964381406708629228508937268747973337949396427258434408168904818785205428074805170760592120067738208954593621602858466159827390241985272773456099849913441921830584471314054023782830659779560564764611299589970364302167240041830199697839272900092128507197279385315939549579808756926170853334729805069011330523848722640333338415060373337358221620424592603187780038992410350005764039698525903916790550216053145085457593059103245787545114735067913586491085058946667813281839467546582439783753013361626452734898397984719394483998539411893423865817384433575028260819484238606334682212429846744169654807673886171035889204588773037747148237106257330266213508907563512441367564501532722355295083939036557587041361248795524751163960723174913973912091192689704968194860507683992815808363011039386163913465439789040917782032305472148338011402034588034475799217494571428084515587512329905104789047885533318961129900957500778715346971018300030012652619261826591756263023883981391180390656208684467742704071656652598237371597112892141676479145115360004182482100067783689813587026919915863772526960564534916254306322117339853535633828136119190031940768272492018410016627211612463533875429856147805230303756489405966821247186550410440994997025008171771173755060613087600339750455079638386947087461260624548753653892667758472935807029912636412217665833865182169409003923330618159523699333344343169127784036604325197271536402333416583840442153974692924005935459132251481395780721056824304246078721183693295460721386533018005465009139458915637024439857528411847336615519596535120184526477318473453993585776658033086066375746755539244993075859526778521312523651233205381962341529796202683430323202402325848905779185609473398498171361302378081220548018744663269963011437476176420555772977956949379644906156088049332567917911565214073902064165053292328770148568885108174382873436249253722007254277292810079987989327117169205343857009406018340067104534768491190405803030237015837874527547372751011678746479379481099438064047495135972831841852994938387619691994442445165436369902606334985859102150226641696288618924258871467104757021554460467059934963588209777601024351764797969672397688261975539624066567317942733959424880367047925606985293203533100352958799889480263204269904901835657942137137296468820233155787256419597388004625166217296095809694972192301867511774850552054671342509902186649306876128273653252474337431494887345981547621997603903465579720016525411534660816459562351311529124297606371408947994340704868687263467785069488843613732889958322706311272682440870188879436685953386753206645213629557146896958198548172445505242826491942805283999122261071863699574553550295808602339423806350247081967541265599431861058909704020455186593831742830996667328645913721501532698914131719329444140506049414507166380253151368720420111744245464405616891477097679932525461081742799747677520296803529540019748249874030413358235677508342539505350916012314738008919807777272003828512150481103613246620773644456914537207128695616069361399528425504467746759818150114494469312694532435459316920883421819617859220939678660795946756974022371684003829325759530588614868834201409171781438186120363607474432335688843063887372247325667281083339497158800570594686449694102591097326625254921992691074866960937171508353646673916467821678324289684319290217539848634611271426383687400128638996265859281392458282291571952960181955015503117387819360674748964325767496246009248340892661465015061508303363900212675218467370699215807056690130870681419854245728514145414651394527540214610822742741228129435272053089661357060445689617534622396752268509810070150492558930887686016915656214209890196773827720825938064827912181369708935732104620902544800979321564388149124251567621528464172782853891272987378777051128421042389187811706725461435633826484020540208357195257111624545356731253339688578965902369024677914353440919047267404049460459148257632145780498520062573485251918314523468474672235361322147284752425847589669487937034367105258320832383428043390534956227550613442498347588461713306118268525421213643650616491331754575465992443011745523316314438385878925038059230254308996347224413504255690043746189777886830622351774263166673416201558349324145157261196435493609460161905841855136219937019352755220488038631389821195099858409025479909203345224941099581731538325339814253042322357108488261607174387539881275960238569307260390241099369930146766849633197018508350058513674207862179720585414500910380905831871277985060420983817813175786827612849391882765074072527840473458610364876057611813745298741681305834375180569521209482364581902073557457070593298089703702727835293121333959793772676563440974551271899494204918736343631525172453152044321106608925078271933823308771280398031893334432847997660069183612375295268774206471399781953372369303362157379611395422607123851446097773641915250418536420768152929751524161611738315899403344885517878613426328358624636480787857158958552277780636093792107956031394490855047062952005032494056646494142180552253476960062632486758293627728120105569953796287977935007466001780479770236210051657807448047651518966320585497773988298847075468459412843162049077333071691933002754156313059074996095078832189328936107189488051549811422527891286994636459602325681565280468686098847306453953835455593086970114312177123748164668921780199742268715985237806261914008063637996061999887375652830864443660786885497008445798514471073507879617169016764371240230144280216236681112190369142521538674290303058687151177907029055062679525743463586408019018972283668425369189953797106186744911638874602168014202275177515176091724441857509714960449385978399727293461741678488772859074062798700991514764605671618934932697395000144917694570757175345665601274108761420213686167583756352735304879523862445019535290921515773391008256265383880923596639099530263562487218012401756452581944929765720714407603498818508239928022195064577436405284516859897536587819782113523245959258567686844260264006919239517657584729117282325212272885252828890221708738467167371633418857805666275084627799032920939349989583978786738885226055389254302324658773011630937814555539914512684121700039106410424293252919291371261383883295154814622079928435243738136632005133446775597435292118677071817658864575010383231392415622434124299855466290395308704204397939773950863025733455956898802609423055000143085106737651182264506517179553088574822003219416540711387536157146364677058080679550249315758032297454006825822592590145146485197005097840800899242216136000660044106384845028379491675659430228836839002237420993593964722011477715971554012390657230322516736205998037077508779254891527127944726240633300638818472883687636032468538397965502431962047689186278727184960674961234862798406157229632805657461013724828029633382705963800978023603567999232018410290343210024740651936146300959374965756802397172324048987418691439154923600751312804906329542406191959650477607975812478038094559604678989271408640611848180866759833887074081370828137208099895338243557860528051170548022446910977688828078577225091884159166839686746482949442052861064168598698599577580089553831792877374603344975706155107287374467338434359649778759135960223123629916254538535308795745821203719975952585544730366341747267598229397046031340931638488539322524520121623285043607143131327068629585544141681890479748304410079399310869131436789696330192052958962512064658779076947889035077264456989545939581042801648778198516732176212969246571414262277310989613556378671547255950705410205240805715544350147229546244546331070328064465340133659769045390682864420196024188327993697506543871594511419141085990435119831275453458763849114183982630766749755719406689265992408175850218354068782848092145685129972683197000968257659895480471627479778958497797950921826861962989041097329806674263532088196389496656620001270089481434311486926694462450812112266986479342076364869762564924228978050818367952167255474666735491290510231618022867392572464729552570296244409237955295961628615399084946820615734583005439211998556307984006542859168037258671092722585343991113823586711252292230646015279269912718045261515937119428096917622108986043767469973819554558792320746539923219658154554348452534771023305890271482112497654353495553283644616310243489171491608176628533143064654574311853821123447889864067373732710287905861014636295587251487316461017648390969333870246172381721517365802423566346062286759260414371304505028780034865247495050971295630305723509246887203457872598484431287782102914837914147875650402664375928857073501233282472160650178715020808970718257106571562265929078624399462037712477249821492088220494832449363220186025769671048036592561632784491158737021112644808622584613715901968465734799505195953100394652509067664127731956873139148939664308452225270266816281482290133973408580811285771421240674319156373958960926412857428241548865621289675513100004222218871352207072484535739087218222571633292299360191417904558271601098377144875554487376659282701820747544618757086450094465126741318112341221846022832784884235591700704556551988532852356865536043214308500070491867197323554188501747046526692723362912716502257812611046154259020637048852202204243030855698731460030105608861763802619437277194392255132972435660072322643947086363236237269134126458773490238703371633606401413178408283169735165531775078415495360668239661995986843811056577116922618560456357183872055774686021281822599820581428032252734445198124027306907853135904085611630547091182827305163183317450846437591716033788442073388099939976598186890983157323929846849401158935336599795970168721675940114172691544501967754559675984094911610124010464668787122652769306451997512428457193661126009843346339557305168113531669256408384949248989080237337331678274218820293686186528453485772980700526949074210531801359322042319665689642557714208454418479340572254145183179316108532707467946676182958640933085495641651841743598547763812052723657323464275586234905535999928707958501957058435328717051522347778756314254706046513163839475543286380795880494465408212442989240327737394479048435940216907067064723361102358507972252594806178528134669180636440917425054393774701813521557976763076444393114950550051179672505518046759363306117567227045135654345814432207437435770026841105908470062721815372700162410549949931088804762629832897877625477906845040791783141726540171650674738528912803583962873351163141246165297181059898611979630858695077877656801206554009705355798096045472250904889934787562477520221361058762877991036128402000953895567433346500812447051283060142947073116603079652756008886796107236924525751720672398881456320869251505293372125217815726325300510424071730694802752217512434070741183372012645731705939416041070258143045019420832250972347089943867558610079808972038294119050055082562867919437864488754562982770359013414439737740726583663701736299799528438448043288994521552133485139534582327649900722103243105842424592929794864911995212638026145600797505964835655182701663443486903099659491294219247232633611442145036849485912136307172770412011405540481614421149805284530862130236455574057601027474829885586210778334665164527383551300613835861272890692615323858588258955884501658203260317763809534777962878979278841065402217543264442662247409744124214555958179745445770027599444522165000803244688085206011521296857780648136681673096802697803456383991964363157328726844784771993196045456816262071539466051064651562215006238247724729712412239841028912266972024977836404596125111978074677087181038840140321518732080855926723713135215781619340638663089680761710220625135243586155026354913167017510787373912671122440398174652240076361542880110679880221970352987141964172947402428611497968645081431665503903940571062607560313203786694423027688487617457933759035314393398579212169596651930417662313314894193223196952272445007395378761407877955092917773871523203973891975467293785910085181535038295331077568639214208184838533676476722730464662229695850819966218711960758784278911758533359775533156139297497933092641181769814294063214778850253169844963526009822674817521305397998089328649243193449044655195437836340009662313093150875902513076606350959712128498004607747965292053860865391978549987700329129011183614377565971380702508714225085451890448826939148541368295194192888294877475340393536786315035032050276715216062055191606933298968460990841256071846625262003330069354620612485801866315296292920942418315338018834398670865032909028736389866849598995115880043602065435695419047760527116073604468468036112614715185691817155329867379215158146242765614240900105783820111140794988481490975347108511560516677898375061443668514719913339821204021006771562116129744518014191191291040982808144941229558266890924874466927210147072247769495989274087687549119022660234217640190077504191847938963418899585962808245900395558142093230895533908763050753392924453542384980240754788849850445809842845358173600083768794329365371279538924948555301141014634892448820867017502076931320169013099514148183998255957440724093106762179685258258701393988239402284873604300599124516088384343385839021198764796341671681276347114345238815411206630792856831230812531809687062607357572312352252461180710845791735105694711988122220349029632068409176464568306926660963969671366028308972205800948747059298726937717633410010493553263740448312867117110671576373730151582685411148508689070325854189180617680279302312769160967219047766615653247808250605952940313297926706886363379750667990688324918292888023602059018796649388656727632894586676268046680042448445078023686804425167066821025615878122591654981051711370757239350727267490688247537704681074061309378664279153847494558318214964101827385244656584350791350505427306820292530414675125642013986531059751411089339243478302748510627613494525080511535148533698849031205103495239006840211273287275149586007096092963693163052005295858337708537806632494527274007721401321418395581954356142348610574520132166826128389810111899292016486623480898176274257963405875442147822525403067266506946161619591320861353161781150819952485708915254805211807396839172912660258580157140751665886045913943216421593334224163690158307124614202366811373425747771964016857907271196416328338483539518451198640485723630798291159155476569068674321339219696530121078070816294067167258473988844144648148120348473932742347792131379874641634249763406711005075681111422540402573045877526046064720227494009581089556125235445330171372829375927049434135807756964190987182355814889333857210902357870931041742837489709351773588182707408860494337699231722405612246188762437952248361048837152687417070945139765682247284514229433807508881365098041986554733484176849276444621021317335838595138898396904494719072113959484284564263026335399229865635348656534985443237278073533998043216452468710082462735048573844770199508491315176358597160656041832917021803454737821077634738955977337929886027361291078903594550718240491897022159078881838834183398665276463692034848680924074669201878454258032256799108587482655814095783083775670729694961859003683228672119752962534783203973356664430816186975763581728859820389726740452850587165529981636596912814171713619855346987195462999121496209949148150814557900359527194166189939350451622533395632828347035737771760617285821166768406239513380998004173369595261764915203233956511628918057175992309427280745216490488289113216514349156604417304306981121110197744135071672558659255436040231106229663518232213829746107544978642619128409318664150944411069933948131865102358260184764678417430094355111252956688151396921167649822301992600570696298603025329449904536146288505411271229603241231666624782858962366812479920037709409923455702587515996925747469518821364275295023717036397495278298002234698680392043520575333719142695880631023866994908809713514981909698998064234677625634104454547615295299594707411580499235172432454271064110295089469382618451192883129434362901563715661531562025173440644631658070548217756401598934634936731290273137182918039324275931047274658390073865087146429059480968246089940346480139579532894873768111681448516414027364065047467883542246382255459352546120509916157076160860833415845738320094254547022451384466808279338271380459992066898442203718961249124513661769117249229623903029331946554675122206987306244536813902779747687455549572150088646301299008162700480412678269542033102363768184676983955068418902791159307620598569547336315527463695791368852960908326873860386607532011998012048534427989662721732549493108833999768841882573242311994784742160937621285628423655864373686028275274339633109412296383184733994931815583222270771204802116609138755697244733348821850612818118308235436548776091518966659178369633703254631370420772500333551376974118441145331829035820560631364364893923911359929476061145327557511629622707602919237893786813663657164320820000366374659108782299994201271423378385433293214872291116234838350363415915151851226087469986701938206420059347034319552664832961947907463307901859346499989183440655087654771170070273473608249912370122637172617054355739531436743114653631162803515981597553502104122930285000168720240398434259224572546632689325890360066248889076914836503870981395395333149983923651057534709151038566979755851146750396459812737855536094858266307661329777401342886679508634212826508222849565466718052470491764407606964887150028214425594711565732972045516957888085603634360802308297410647374038763924784029848542422931824336002005802558816653974659680286241389768938101403297097854978964758876364781673991576403207125305467558243886243772900265913712212688023840076860329896424307020908448761728203609518699636403137742624890218535778157904792663989069239086620817058914056022088777164853776601404557641880867329961121873113830258589907443538298163716806523903274206024496419869389260759663357282097741133712220496020519385131041760355100083369668381738843843090952964465474879585447715487206041543244952187776179838456528867638019505156696393113468788591529959657787282933499760735170184109564525960282449782053662829467432963168171972205999254939174713734672142895743145938201413974593398888522426988864941639827767985589861952668167304321332525870962109820688629204078030826972533530784379249552013523249827099726112466074905134044700548336318363194424903233994535470861325728160920994014364471681010549904635801709240587258483386350222170980117962055794388901097316693722295091332205602692862449192103107838357123176017987939686973998631056995108613004554281133046604475295141683171969910484918430333428202626696589812660960692371390801269369704784898309342311633174838889711673341975285448629179827190689949928142425461760125072549093693927817263899556699783116727875726319261109083353043410361778734672729300667669634733877450154226608694038988281060753247146533343722183487679227158454349800128854601945580658734231816901183441161307514297315156527108167354663129907571703848734653446441990302364111526173575890811041127669155303773605900540864659888097396711124592346518773686042280963518494649723596676716416417721184808675082987511034447143255222193033229592168974007205426898525199679001159351067307746095022108635113104743507277626621958238779262115921958354049110663422730913677481776709821747220961601718191208206044682884032209733635454206226775714494799480353746061415407720135835229909798959195438615274115310083879970122710715857766458041466793216941951092179471051244830846510583583301366155954233292473025704194688121062395520502910575977206902185210679631293444116199242324149938608739035119009567008860199992014352316511075217995177486869579856378092322114916506313563590826424760589456600041771899216333186454974795638796828841048499140356572436452283679086610214510073631856755360750715633635368374780899869714039797038153187948676425837885913469869235704784728441219542745875544712593352731654386572204976073168524495626690185351388680093480796875531483239398204742159304744752979885582146024685249709844013800399409896692569232585462059415634127768036142807906493654301776065277678585098277454357522215244550099413888694225272407125135336575668432045481234240195681562335088767594929912855702514327146638074963056950832073959082592828617310517451464612788237631258924082697325611208399662120479364483782367763352346011098408745660346905350857814314223610186724874383636679417566224497531550019184460165480934599657274176401655622238938479358238262548014051861838205207837211827227759551275210302200378419873890607977812544719729726294001559853120012916379479971533823906827289765858431952865553252868225792452949582109660347022896023610048292617130808859460180386860752694998768366453844671698641785651350068541910310386199206091037070385190765170555226801242687803079360781511071721756651734576464875898602076258331516912850395131066104953215687890439190313100017225648875659951085664305675794423186402703681970909713107987878515148487943270901327861657806266231352594824984935472383322997703893830708710055391912625706568142494673021627725857605917194687970699301950670526328502152509682231016829341203276050086070112884102402232738377346031841187800021686348054449595783213991818278185181343034772727237474485688576453878668367895805599545655406360557856312218439061430444469499513096164136958381590396073873695945977476233766355881878361268446501678180157479596787022766127238427987182477425315205529218493739005740270592220036396201231448989956437063281473818017253350888287638393390209387254748605146753565958052312387192803998294413850409092483914800960484832835637845422046075339846693841715247170306593568242689313683152467778065845851020737936807003324133048800487647170627623512794388814071896296485372965997053578239697303576619713659257799375245347090882861741977982140634226359122731100552361348004735842832558193066174970001836164459547157635651992883741512912853079622431101881875232944923455270822598238239769276304863485105800089055042531321272828010431349932288077745530629018421357945531276507459540922854716584239111568781585775440304277467641916866906959512800349290075916085075343345229478107830152889914976580461187530635864551844400391684212483143478946557406107862108758406890346861242281585459171210176651771293524643474410791594507481154250666774318112682289633462531490789130702342053330557959723622963475098457456663048191654971814840511536913277906871444437693707588457655417508373987972446732450066865232942410161626947380654239410220416521398120874124963532020907165095029245415015663963690230483817509628254584842115379124148181783284880997048456518522139874610642099679586042287797493648454643505190830255394704876480641391077310202172131161334632090255385874808270609262507950513400947541052922347668180503016915261576846519178341392857156571336716789111682027781302348437197325179556396275899989414119984346116822782932761229145077178804048448188329663870457870702015772480221601847728708496614016573721662151253051189713549592884602733498546896473246997198061093944365783746866489165174725643712836508039450842163656739414401097597976902640020920099845380467184706543199440497521946205875690439566168891076982348099741523081660870072463996190573779092592127194855894066843565694573465862557681093458535195802258775634176539902469746368267660952750186715937068817763497768653115833416350075616154777525603679927662377268760232105626157058243555234810820174292790523655217065974926020707771762749569135495261740650951965310234784142679003387530812296505869666111272341994272554579720426434746189117520832981487204876410905461954585717401809445315072055256881399935788304116581828358091686232293747302638910985439187741292082931435012197164343981266097728200056409135107080068340950770205411586767685558635980527092998946273106513133660050188172370442040448046257776773012548376565333852610539944534356180088161321755803279074002384119036420905038681758319955089420071119719973705930286074572898751690846069221810535962528639538429887592420968964860033887006476145625503240592257042447713137870542460244736656388829880078224893433885229701930279249441074348781921928069130390250544570743318217302934845319556635507761945466489268618211672169339916478172206062531185760538819131063309439869306907607710446502312981531204058565497806762151724471333924639180759973368253320280075234618990026039152557650681759114471483218123229537112627015928102658850877694310443508839075953577054028828504159901865875208460799161478643447125659106840540997415272862639015253866774790184125993417704386136175948207569485059445476127254968477053062273066480206473074606471405892143134380049830874943760805335425598653743278106706008910902641665472216665977105137373661284457672431632444323625753007908869199449122225140368410468160183769194644592973639366789015650549275216553000423541647118415302443107977807382375493109927478395855991123919399019994194823909919510492994263097448876122378484076657346895305663708297196551143698243087245878201179628097858784434682650827172247737561159648324177193611218323673005664295948881651858806771277433096740078160381364466898690387598703009707295971858804109910844614056256494697089989172413144508973227553016812644672308007545680734610352233014276564426753377498759251477081715716415069788557222338688284988022336677153997943972262920773236673877869906505600324638927780784182806570347399684323818743551098239654553191804761719357063184736655854992578049729297010872318840119972910331386330586421610400143696639220458775852203482709342915265834149984863119373747934440273057346470027907122591264176847949434447542083451863132111419281426965319150581033257157432204403525938243699183367165126071708762290077081684385724212090239458735272514367819768871710769438374120183964317741683804012428841272549244156166742307924308632266040377735844970306869219959901927035240420938234662591671479416691361317816297672178598741969286275491881694649963425542372748125793393101366676784754889446402643417734454381227391881029879678201328492134532089317624061191361048909350739032826916276757441608573441180560653654978574066328601714868489268682025936494725980412861995597030407690249496559728192425476286884864884555006552706888171625402819716695447535159682295787805085657416367549851896972305049368859150132479472839099316500964929093627026996649735944719800159636254126639105205798261741806218811263178405956197229882625721539615543774009191072333048835999990931958871129588937268916210044638944951922675727342290631256550630301555206375924464509593964610097098109742402635017941148430057173288226150601534336879557844122116046913392026409054228744821070945747918090224174973862296640662284786952352917593933483852994467343735802466330163983576529712198770286939711204002723280269570801462042160704802707341851116379552923413830458592366777786488631307824087998919843401713051104298182763862991888172056135262769408904946312811571028256641103817438419807403280539820071277945666085053923497811308089794743032527369302058568156090977133596251281333898570047536505734019217851400776966704824046337356637901911506643948440169849460809826660538813563518290443698524845161194644109925616463793442629610840862223506379954708659153418355753762057484875053928770871566094090113650318584896894961606656258016327741731646685441309634338650194553631477734933782350394751696549949464944934722843373372276388676993674394640543783077660150233032165187428347187687590243746544319486077419312584507239309441841856807595655669146997169075682413686163335499476384237201649048208998667451373516040161258853588434038835098593497678384105197102411452808095175515303784778443890981751170575533973792261757951627647648539920888963627122431224061610127005070560572203401331957227606293751508796523739329066294871428878574249160361455943918504620417681515650894654373293324348322948973458817593917641274025096932626761440623385616850068709980200461803693285210017261024764606461502627444331008348534247274825565182274347755882892628110520161370024927305357288305472317332722097111215319002857658075706539533604406539245428876347210652745269013725394686105499273722367229765885760680219749437200428101309560376273908670797421764944850226629007084436462475915863794551881053706764105279556522270583298331071038600077888113232449500212859327139057832998377752259460726127335047296000893746644590879382877867893229064149112832354209382583960676294849057361798298352110149623087387007783399977849042842529028228739088193892430246189531251998823939505561736044358998194908064691607628920622259443668072927225130040726736739046422419118369247464731960152601232833709197607755669884328757445170138049019026944889581560379678097214327833406678593059920123599926978787840131225217024390034923788694215284091602051747081561868580522824226634850805455386258722866395988265042155604764287297701119201326271717591242707591401601619640902157553252147057388647362675017013685638599595767549806297284264460448320163559275622777798335271452828343236336590819003098721240122958899519711661336886036970249999108738620600816791994738820919778337350916854778331688592656884607086553779269551849072016468321492486880252804546909707146226608471084601704347708397239093599600090533329321386486818312898684261064362068692928605021893173705134823827528037568214746473995624996987020256379551905435308571558694559450599463604228978839900349611407561149749110092709125315852994859636617617360847678174580614110828403359329405081634865462335011814675268696677553989545729683638792604808772438786277955053937869378140326728769740810114095875200966999042399616399397085055407926855142041410997753540203293258741697449979520339184732284906765322669781927614174911234241106892616660091325066467118330441325734730813199913954410105157761379968470904084980708431108016231040523745305200177721791826738368814334080921863120527679273253138232192202631620845725786409989476950139635197315331319123427714225805229422326285001405926460086915729160744518144528523583776252633204557963187208506642452993218594981288895008000928576180480912568318860565638742270171116969579539372232664084415661260616550169330633837749399816609841121565439634884065506272629784357761662368848097066376339156249358170504486685415618218641214543118419011935708915605881563072928727865104449610279258918697325548010522017397120056353892218439180965132426657960292100374834704587620261354915141017211398953735481262685241496102556861693575784609782587884337198401288726255243840631494397219626249085450470458694300445555825827612408723919538565102190399898661763571008187402893933743680544761476316466425502859104299463746752736181873661120436581855145290570301555619932378968723236654042774333611790218641205977765297910327700449507137219670068141040831434810854004855079974746410326339809146910137220904275004565821195047839215993199230499463195527722853280195863315826713513460059865843998497503384587364398610276976051064008784435869618400472152379461601209540575260235447309634101588153533336488823326276108486197158709623972285327355133062755150247618362126807952617434572856739589916278685933822279415360884844708833715517324043206141182760563932831032711251057524391020090654801555308069666671942426807971445766808374802769662498749359317172833533300504042662937929053429190121936939560843236402629655766556659973459184855344304063035100833921591842622489941185901526810511811105067264725448680933996033973785298368222644219037995829197332789083908634738538241259574282406999417075965273372415211876433311797490779847840179882532806249157857758145393011892740906368576803990433287978721410563727407525428951555187299710047960008663346292654960647900182984630663936360520308537710031824027782052583569751841129132390806087314150114788467288703506624772963208477507299979666363772801411073552258701304550163594818314354791683177843687917142045800336955357865887513255554269153698190329441346126701962959453891234702407172160056619257202373546060478636315551519120894616306971584782016766625087307349874382725391023462438994761303455374468106922207540448332131229998128625663815281945005281626845524116139158137593663087678716579598060606806552706261453862774801183170078477777879613289855229180381112210452147230628813325515121634251279229919489657886210954663002020135404651343395253501032693121712114814070363422742098839531630470564130369572590565913489502738069427264532443154177124153793833649619452690129580889527853538885048444956297924945234931872381225730338723019420029287225905896501479611701330654187894703522970064546295296706088758399906019888118028882645045652805405687873283039468819937922586066944527189050670001499832501271263288837705601779196523265030922915250366417499833292050281938049237990897284376714516315197267652936574589888267829452206670843181347625739252917490593252108358255085803523156743005174730458995579417011813876313147992634552210475630805191075071072298768971677909459892881294310982523729528378522855110177305966105698430854904456217990758763348493202317235728140496409654143860601213707980754409857532996024755576278962507968257560949042161963848579939942940832972939602196340674453579564284742401321342787756187538625342566358204316431544815440290934083114931664691891220990393914770845680624612101755962828793180967884876219429996417590407878498075907873472021481764139106548312035971983776468281262473408434294603637945691846578108244732644204731152898123151855277038169763018735541689282877072386129820730190957459818401550599953954033886160773302152285561503469707267867061788948785388771897053688318526408566161917957669565519611933846596892293124768856539611863199802287987461792591945442000157481262723112851448235775606535470120352403330307280391967175294091881164624699425880741964534136026844970437622906365444675929840533902372643811921619423914022344923725785279221681116106005037356033371776953696093126734653438789308730310071410165742616780896189805594298736321479116187479971617250620267069920746992914001616206540515721101328122549740770999320030925528113767899196213187588737447211278780740394838890061723134312587993579312455536993654109845838199221135852092998927903003779313292251690224176030048188370026282060262279912320309225719049468164088509143723081097427178196108026292749164648554212205458977905611603044140484571868580333306229951108160156562824966319618462934944502486401458155273593240484688649629688610663109168138995711161654473994464043118421947638984957790941313216664996000524660312605655561269750219741041841255671544377290003296461718136567190968616842266746354756426401076364725873843175783776628458057513877962583978441755188337228116242057173625611592008758224739183397655878889038474796326458354902635181091224626099500691974472752207930770159691306133677221451365738346826588153042903822171939989072568456308945756320255542856246115450959578256649340960454114381893636659162438742143863836086689340711286821359565209533619142319525425940172963316533604130743878606068688915600333651796808503579442177442656978033579948982647961097008996538906032819896602149370113930791438781082947789610270026770603576139953311256907683295480412908314694456963816481288881966153044014823925248547143563325166940155275781215127209663761993424851600654943305021506472457708575850987321384298874560959550933432088189518319872918234315449375970750698251413739824669256018804200963714456080496077659326020106639725780091439362239469060579325150659554540200953505822601400774914006795475331875613466317897866368116899445728603433745831099471236800288224845446066882428799780691937455426689345537120708305353294652313815439703794910748341651474227678873915351660654335932734492945350912626801178642534300856674896511301053515307835876836766110685430355630006596282315331094651521010455211734125664528432585203496102507127283360363687392406909184797714034739765639448062376802704703257042694460180566012443031527090197678494828811559904978291793696816957110925882743216151151736592820209829414631589653474068161980871549445640048520365386746142566040150637031418376995546446774760047960826844949995067009963953461311564159405985149839238344259047659299506721977505785710013454993942027164097395201437228359251929709031111175974855634495496461289867773083425805689737815849628855002926611988467150781717805155034074031988668270027470656851741294224507124453917313201143714780947379190004257980008497847405733132704363838717621413687396873009797994728486831534430316135760714310688958415159255099834158337307351907216419115111948446182328390471776375165549188568118573332623222502563833117697096790017067737220629434039803258560691114070878231446253499122477062436952847300327119310755667579877286660609069386846483927266168806022926639392984022704609094245156350797428096498477499848123803051821555941189451449135300670255698908481934821397019847375735455770652999056851046630202734841325570475086012052706712972387202170398569024964794558651411736732525578006269159555356814951341453849089992029800101364423685845752753582727211380887278087138276547116376033561675103266865591995724862037345599051537041929407658099046266487335291929837289148577811772151491711267212805377812779951419212460996355567165179197517328706200942130388190278921681071577760938356636437958764594046052085379059788234807747527615648680476953015065965380924276303442334007826792335557242150258987659572528901823515711921653248957418435968037298484570787403583659710807619665242745896919854671725072775806454967916234413112801284128750220512536487523415926329967475494902717979032052348780768974340538505074275297179243602756798088743090635960636986747478936799865220805655649577662877511603287268756013561709047690959863162457989889623066183358775196720319252635685050448812938886427504470811279051823434901586223114867644794936755464109710487135434092502043487540214767842515081046566270946597785556046831480665072886130891279461794613553124208551705394623740435123484474980702588334114154884339866630826144086995021607018806659824929812337761280765807850608159924370155369146573511571835993717356926373949453373417570908085079335883792972155660865312914359865408601344460671460499665131413932686181408422476328902066690911495688235861685939695524276115037448989561652905610159624720043694147566403365925738821689396909649370725944580445747337584445895780862672627720771797511309002553971888874914210298959937624965789111853700955159934081652507006785199137677758136125929193794714974896887240299059754218733335314035126950075344054329450440810518258521250284249583084463486388510288389736103223788251339220175541487510852424785164440600700918876538191463689469818263373048438075300766698904684260717308591398398113642555622328171513366745516420261377499417486223058453167887348680603223721242220088505851418345591814824498357379249413116427191060074820307459852715279435583399988638614879072929497838394316036075403811616924966831405029949468011995288179774231199940395401046373161985828020140824747655609946360435298826872138310951860578783677595343295835198771794181616910446327326768961527909556641761583485227838519840247307122796020550640804832226901088624317062716850403806797377414980670147138500097772679597009129067726484630400512674812410818901559753653469901959057476459309902435016694009907302889602669012926357554127131942962334941494471881497396346433002588023490548006687166510946978101355174546786498953474959171698493420002979302915612493738363771391730089538478366904283993987712278322288336177253650597033466140923801069214235918240580449252779670789309211860819161574368180937636019501814883617339253891108957546389930321761975366615465907596797065062924682186341209148580064250890266347387521287458909432852148850085199441634415956054181531694403857483153599937220392748382399004716848925641279221946103240409649915250172888061717164840811884075195805576980711135974764369176319400859186843889969962958443262565099034311100091005698898215558145512997087820142674709637878615256942664422238812998642259156989777780898291859646351661945804282840856758403733456881268657451417902418028127956558874580967278580811084683695704813038451493344660816337702162334654320354362366283134394455092386543082439577044042063159814097863361698066409201024308818199955698307783985738841249713991756545595633374482203002938741355537883308032351944565909523183234529856964417297919300343487389766680386056155195789496350499958414065591311905856131010941744819281805118762315575106773802061049235611624392828310723139925729916746170358496056146117113343361573989765845354829660174015356548600003276585333238715788709651849097521508446096701398528354434728309208254591960336293362666962544095026791434762344891441193892710420168631969527514388788107401636802638023398301294421046971196839440423625365364085843987480353594690543667028516618216929865269960094201164613632806184884177381549616836574016173171655520085724925077846348250144938394361536003087325780893917330144858677187911069751569065402860838512208905294948907947162991156025316774391873281107433843860354817667549442935534050359860328744957741677902585574836012315654306514366538824891169705632369977356862688964582510501143518352589955611152082553597109323792369639706927089362265093209726460269234628608062620606558302871781787593317449013697550349994947720281232075336085586055407333127251799950094550578391472778017426914990829758947349281227333558972382942400098917423267578074855286946333521391446537069826958877406715692196845129311418147921216543031783519382857719812925006309539625226644491222760651535912363666557271233910188082227007678842379704673178954927744158488356485110826756567210819621681573974517216841201161691141844647063643372621878564115391064237008060720639180697235396200710837269791863108863863504326418436453664940624795218929859857449582168251300718115270276418049301562344186950718301025921784998174666645485170377065070725388457387982646474915524201875169092415745414417906244714462430006983960501332060841999806239530389105766088768014860130587981813594552652913551241345961715750385732009491335555803572600471570253116008447125875577344142969475063728600695198054046862453813746820810803020863210564377906735031429987334456297116218318054848430894126729522607861372301648147243655415234239105885358288604650670364608062121129336925459059090584704033717947911486577787071740289313478325874409746822081694724856660425556876807349904947209183999334770417490530343424720201744212199047261477404952470543196059872799556315541024380505532251221509844418638175119946750910546392665493530111305668236438145562505872705204937099322209873983867825960644668406922471162175782066885676760660491144597486138634612282729857552307567060296979688829985092941169477299793216943620595253834629542082152448966177702072127095482373862218404202137703135706661860920521073773543985250033671090553819410445479400451731187693590043848850773415591590358065198948868706679145296088159108697729936002632346901574064321993126569988925133982673380533466447260678416636224740331660118156179461701196877776126860708855717215632158621473540097001385166985735145671743899947456596353762230101806637902891981084797190758757988198678956977700467071972661517074509347564523562825674547310588772599476071858115907595794715285425279798578325248004342586026560417225268468751478238161963243681251460807101769296929270161077909554304449335329451908692167645883897183250198434800446871338868740639725455417720813670069229672337290884385502364901589765723951198087852180596924155559854120611675521015062657747742675274033436006846742645165492971898940261770867681942971649131581321227576081025453457879337462049004368895451433455604276552816669870701206332058066890666099292858365439958842028412915544103040994048428173596909820804852845736679827565579265650886128305148225187097163933252932317385256064999752498346859951077138026745502077558806399995042352063137708578662907987260356110140810224862254676347957208770826435554973275771859102938310134470639078524123884368517933884849919815264788810244165027341203218477589164128848841004001917725670878543505022012761594329622238110753542925048950092671890704192751340127013511217903668398051350991768923436555946693809473118534571338003763916097345121917385524771074591270312384243420237954717715058419888392182702221264438079427224703131407534906905822871560590141281806055910982152136951731090498839687193818279929628064938632723606629077544402669055948017836829334770962532871142174718249571016869949483432674962220971394144760857867022673329140981123477134243499925241152491087262111290673258161625838183336634061418515445960486156868193174744008339364221413766326330878052071054563133044362357198727553832750084275293348314993584883848404250454916556529501598295725781404016570322384914138710241624639106924976813654639831338274410074114176576114915956152229517336696466009539171391633302913711072258868680504149966225559036842270329634495576269890651955447545730797067059251456707897156653494253484363281748303340559750910414322132005685925036390806787572801839225601779390939158273251772820515075792713165155629255771599271367216750784232577649005063574068674787220495403131507931271658615369650478645690751336706129874431411883736706112456313419704351475085022548374758713954441726205429715997887205414457206977001570593478321346022022171191412141786640249194601365699657299670672648622760513779609986471454303642497158800362317352955448332603335549056547336858219850050384533844693632608963407329358025944272523455856251986636931013480553461408904967616460448668707846971500289986701086437375350177121370463016620551782200846039721679942477986553679867813584797634916756415553303606876551033688103381763988606668718906500896633770281473946012088785249515974023063723580565228643464784170299313085513289410310026101735831801651536465544654991568134831500315494035710226136242583860703546104015341124310913926830095438541205379931907118938146197905314640458410178284350934742774765782246674613446018420938506550792920129386518129503431016214688734866688840446991868054864468506224699825904739257789917479432400607689007210855854652582797509701101840751674095360783231077605561656153216404331330532736845827558995187065778214348976655552394734106510382489326665513803718629862289167405609878880795891027288321316467898083253728538833763761724290591422336370019240857034884619551527086303733459148292409926805654078613546634616351431996456914379727155749905998221407521337567385587603887810508182802986581028635480051281621870502148466525320951754093324438249925832182346675026958144271818148149911034022460473694884915976130103031537163328236930307019524398910575879698366823415553744197764122099098084873523943210993404049514737294592602618922841642579553588333884625724749559625957302497475430165100363832227165071032924427036810858805454947340245383246210805407843214397469260300215898772062400368694867033138064236190246646197001964380368722262126571039804315127640111974381055286428724834736913480407375125191819235361952237162476805547065729046643831468950204596002705507361749725362899735773992606795835975000372590607727774518415907768602949600744820188822470103893663599105114365709382666986392885559003756521321123474322008397002736405274029200922232497200676044192750828293555646534744576257389201719140856811159229526473113335456951488917232796290438214156155369424201388703031926281254375290519865531480039439738172879047537633205649754500720841588601532004436138984967608230913929470282932692345215255344491894200376939710807323127220236127999527531557978332208462918096242782302942817271659518152455468096407165108333394111404555956223979473826914327325474102284127831953434425291224484330647792208616682969208206490460910111465609972415229927753752621733427328957450663253841850846538187848744521800401238292028656773909057183507237163184947265960906699888172810634170442949850769350690069844014752204731745092348504972166815099922429864802768329404586144991652755838810773141754557767779807539710289884676889844966749394126640246434910885416940342938532518297892631000015893898653278421135590039612491210139278637312779486863035857947263324181916141822130589921016803347769100975969914478945281516603460097071574316493824791823181809829066477156466466186818941888649614719452675726042080722670614673951626319464651156651208231060885563613811501449700196527984761325657912927373755344559141533512629573611679699421420803144647580623607645554183943948927412878186399733616099830045390655542008179218011009261728611610715579190754060223096088817883850403269204932954550809207426755976151778626139602875711168979823426121077455317405889181629598337483049030272769803273334440523045179930932528328473177725610505619331321275181992499747516315185917870036689422959982159794534809373079997489273510377969192605629815972465957769967041564566460896741832375089962408751373675789406023798674190427547805992583217770655540859929792784256549105780787017254527619833557461262922360857472088225397041531195605457793413270846563366384316602832294798046113316996568657983749115444650911105517578171091567139049648773321174722658604357949107299739478063595096325917460447031223234963450344760029583208523267681930194731523554740641315642389202121127932095285368346360439889082620130516457064309094195892855676037764814481252448797002230957944717886391809352225932123161356526585520426040916257615950236873982427972559867933924826795764959239216735427823874177534457593927048051543688712103068379553240740387579184344365874659104244179674839514612052523826883024943880200971022925386479529721822273531773967829105670269621516821079786007990190265774078147106182815840197854720131974045095007889021715174304624684960801996861836635726199552081927791792515033855555728289161681772651978935131122892975620040198190040264506798888330639415439094005610457629045447583404020627057105965574903416608605189750317437266471953153871250625577524825489188661532352541954023283576320929876332797392219163515789613659490651669803126413704860210337950880318515793474510182099208874709078021270812261773798477050862330534796985364398867700332331867637932249262321662387364287981348653840420912212778352695087719880704676824883664928211232342836874242276528900216720009934187454311239667786933803268874454316747095239710251597856287767034841382549604093805936958003117715589722913372495895686953826622727553556996952999237531511852674914390180923513147746806619512404206382790672828086181668756717195543666525624399018281733896478558305107333908222269963928782862993790182616884024440487554628013724427396929014001605393861603991500182422863271240928052581396532028001257967970565534114659899760529153541131828418112883615766653776760726425976926829200855981090864559704513577738527094746497189067193549857968646511763044476601662788281519649199551918232882758512585053046688161613942972235690042822167173494023158727142988912556131121924840912416090466479709283907329877753829794940665507215948128204790247730944424981459884319876400954166214669583536157661027555935631686383613122131280177941928826788582759294943262047732200738059416008806595054404525637960682114333326581521740883450455669665376205700903020569741698259977905220831572138538286468688134457362987297958688883928743567353889076053732050170681374121791358113607876834421415542570583795213847384844376500620682713767648722017231384919837957199541059256605382685885033164523839105844579111565253200600214566314164950963893864851762075162030208129964418906033048567893890215950582375414361731100291136056477909803991450060983467149197006519539780958091676751758568594652860293938631224358712801779516087037845938651021560848291829690296905376797368926655042457359843350953330958256777228668688412913165558058616652527895597356509145480877415675717391730547741542192614272802740885793415097263353663652736380608022795876487576808761173691117297511339001815502988760967495172694981830179719125603523887399834246255675307914730589530776617263120539759777506314286236228337262446003467351491427230708582881244186281666730880994095576734413953841753106089092724638545670738299064435490600283530630924812268149821490662868099721096183718795346833881356014620253795397885812401486846635830109982456939161410474117872452044077733022137689572868103471273445613205609925589362372036808860958942550802107459951454984508044456338953066100237056960430652678401960841698503349519736849297967750229025558967672520854187763886753507432402734715908616894774965265280188085861722640904862667889448382702080809307356313957055746589169164501500208828267444992846745922870070727217650046250204486199123491895802490796835748404729066460579096805780926060568950081216970821078720265859272313401164047700186199318808894586310971626710227355898511109005707705925545651276061776122040158292834165956621545940455824036792237249189318007032047186111299400483477411355562579781744368330080564745272933088429586335492347330621185819122029301406890461281410848097745521673223262101836595528578948955282396778453466392837872513451346725449826276102485394575683823709733623772350430515636374679360753230242232839242895236664758307240498689179105986014745925710245047659174622834380084740113043916557093372590359147123622780909138769872095914144216509812395290416882900782785714485508277969960345106244047310156114652813325622765573071921335118436187517115450745896040612755502359032141000201003372157431219959714070938186091449593390544591277480593266932877027059984620895237717507861030369916308928267808292709549351865808543051777743533672554868366495216401203980087867387752706011087549319161179826306858936364227380627777620733798267369690593512565241665228028835205999374229917360243207299392381164120963745266171634646191200974762580641843134779332740499497513992076706966478272879722371720204889685248931443956628780200569388034985663200280681869633673721235312245709112675482155406766881525590286381559533196735988563713098787722059433500682525564153883082297130404396937664750610392193306543307371327955076818774115827729476549920235037313807303772528491012897665494244854714274468084074182970159271213037315286922643084065062963127632137968332022102453406595953504604829037154003482757666986433400546140820895927803198681912430855091907662106431572318677288433603970563313242899139209624012380466208954767826783442164422342466108654065485762680268123076544394022430251967042801712990840417776730363647236710839301404880562805376532645765544843813637531896248080190936000677325598862016508713477492023366633697476144956183658436690065147144819732709688334560883861054703610518914872132388419854886080936896081900411048697472162892114089982926283599263566990019298861729908727433902135312930873366599817810788649328282770473608268874232780110358006281815986686239897987581566763385152540014206410251368762759040681533102535115298200615901883220961799762654552670826262593281284843638526352185665525916585377442982607744853340032835462470829993702182868458472270380267239562981181148872118660219087429207754028272813300891038614321826887839447408954008341940370031022079081277001385554965508075424846134365945667457682459917159167724854882770229812392688914104124857963920592966543469184154952083834655396772693252825791148314549838327621428527813227584824904073347148118980306313659431115039936749726633782993726234786587166663136153362665077189188627780234602948910120590376449660970498096168933140856088554487872067250088823858574465012479643100151025485205572696704843122153707773730101944321186459768491399418364586502007289523169382229430940534336976328587458082335343990835716842742263458670616914756861051738908933511275706617691739240222506599631297707849296090113099129007077677011114482179203623833596155566555737703599795437571547362470481409743594282816799225342217089526165956132232107047200159269288730901791246087797857749262709295959201267261365981987012849064471599891806264354828143079482567319071525247319060058424190317127443431505540565352199559927150144351576610438292271776409315194149874549730063780979233993420271849726244178278113083346486541955803053217038216327878893003507778841142607756170375885461242577453331559867063312591229375812290211895341072441980937104056278031520803259256200785088688984003081380418163465756043482098006585915958719204604123892120660072546605617532515799000087157561911500284595254004552238302927722491361138366741238335223915224014286192280840764371219043789245332282188680789304774974377392178792454300784961721652438478432920440516381283699579193632038967513976847744451695214989570574671303283754215673627323781201722646341009865349067781894942570721295694372090487081640002366724632003241644537486015806217705206803769786620204286783458491768347029331532631443349933102285483381911924998308197483429037081313619085416929289186630690955720676847667973044393556750991181509837218041525782540406705370906281261581553885371528332195079133143548800765246916584354400571609541142448338336598357966748735300362043411148887990675819407095006369978359638817533415713810959913742980202216995790440269735892493380124873423703219794840771530301368910693819120488694776745140886618614589700396162058713567724006046030746029676495020931842795907376784748288701373568715280291552487115984411960629055635738315006184189829554747116506028941203203231927545301154693100741891368298845730264713335430704429127042621909223507925143917932436368223249223649499276979052611144214699559609662562745545181171654266686627009163291470510824116394482579969609270095965288282780363186798808737246033665024548366405627361651542016443875281871721539421375978615429488072413304780028333818158965798997161108301981013179183000514897037295895113381043947638172759084712245405439343839044056577220375429662477298966863913026587028383285787726310052840758279033529483529916649603516170044756425732224425659485376347798234305044112808747166887855246586623034755286489255356574380166262864890042719969130191452403914080634430672222392927952526750135602350396216499778516757185640371686977797289197233187756955991013734596485120247012173367793385832907225991587084745012352000209622020783413527261578830461605451471581283067584500827187087803345920242063941188513334414628942584948521980366053392753056548986968433060627647320058446855571282331272268930688725331463107252561984840817587759373103668561857869017640785370360189847531748549141993598785745533023666080630846725252229711582931747330905327488793999162891517786600416531299879539872984551306824877506193209405733827349824167806188019203708392915036849825250604854259607496605140265271848368038981101692293137452879717471542757365562029187148405801188884756867731715879398368637385629449049398592397269027259035296815224059613659635379224326294989765191837400106715098156481528365105668251459535799365951093458097954355119814455427196049109456694860425441157840061930698792624215354217380883402559668870801585557671570163801176824388922954379403887818897785052211877601560596569262933261254949311735282113283517224284322915126542039770394320266229249955276389977766432784551087000217756305138752206182387449596083573440844940568880675543067009228107578126729427041075193338321619311088597725662440307772431533473440561199381976571658941768364282023212756223937840765566579078482791443742145026145573151809682411129282636971396646904045522946496362618480238929325666987327294731590820036311399161235031715005661206793285497507123108386378348265357357553045857917218477777263488463403407018685134475096226206698693885964290239182954506614951793354382387956919573421519116131048308110843565541591626701327337777372370157907957445607093357382917361336488651807231697308480732776073947571210093578273876538311148006968071304977838736856447131217618072738515819400582431326093657932989140134641158421708024577065482872194849845415479420392127615112674762182720049654294443511062091095795871748930053697613619128428064262891795605125311688387116765857439728118943793327407383777390117380091675991253130277585072194385012786574317538490149979492816781659084535958622364920871276714126746078675184847132277501175815772262353606390613217576127704622648865753468586435077724530411391490427133736886501927257043065119114390280619407538203377028835226343648183269993027100296585756659928980033160557406953593753561421522075701598280950340204476731245228002403322897369162494984804740229362173796756472143662372415971672474315069442178565808745406117971051978981432571382080804274169990752268304715611375482073369454082970392432525257035628826594240602267725189235786220379839368027848026473036348771657453418062686829881653264604511203580551591983887052189911671802717963839942050519979897659738004437231782448157696350470272156233664383288046326056649368391842517497739583095614992768441464640683994615237907907252585079943584213221072923643013448184589549999092720520345173483998713607493439638221982482132908649651242985354487594778314971475099866042691012577093068741929793523302027938050417184755520055428643759957834355741308828265000210930213428498938413127743598320988668471488419183027536779221326838680062092129931790614926570524658084806906673343369712589617427902191061952473781663436139269765251289816069138792373945584350471284292099361000534446672984350611959668234344184359541445317015341463140226165980989189644150320837328337109413708879548283731614420187175196112585962443947640534054366314667085910798701578318324273762384344776205559546911351661861027017391432804644030078240705112257705511781314566993580842548152010221155653332752502416378009644075133182899463143152582348560395282747522702288158117340043783069736372568114514625204616777701604212321994118632427191821609714131743045895365728225912729872990760018744844059128752307743139440284323015269177372426370094111126755126622211921049415053782117668897814586200208916742763221683008002460624817773653404144635835294101060543580677236774583635156498632945222425296967125697373337941841343118353820010872337350664071960561809097198009278325531958145881535726354111818747046840948406228303124415774089016503786222610739994821173492985406581136265624384929388223012504829685010888069850403917884186879606871205930809804749787423212014646039250668689166154719298861160740636109780731310158041094014301496633449474450452383249770947953359906104044809032460165974786594506659601443068583419017443581252248443144649945361054098221577871220672420362354934230930047458429201920625882000047134148852330024213566424916816716579704905606968932106625676029176289541473559092135885804417701969072452435638810290554007712575262726934929586491565149394958197368098671224280007061187968837842286026496487280530368606450248121109929298116957086678942706631990786846520846960665101510562395951279281141844605422634255757533218073488390564159808582902415716695963255517466901923129771215536316226779198595603991741027457582298565100500313767356970873030146986629455281815872010185957355883426214761661119339757665188859997471203151378289370750228427579869283914964831105671389237370497591241643147733742633428823173212356683560852097301118862392950975249702950002391465838706146733755264447919282984428807115149858721132976920724597546489484579092755348360817926145903698802947733788891002515071244416165930370625642671291104978919077634446734571746578086972762490595779831005126338341181756995369939068286233142810262206558866539623537029071987890323173861453920961335476252025243751386294645565189311443428520159797034370524794909678712925368329155713828007371917332326084026256416736623301627521632426281748576160407343800026257779897843862858847659815526794798087920200364518010089682566042511832995360971906742420343670474747531888746953894090102656037909171769627711966536276276290156594078797045841475075455273362523384067166840369689605018818256090493231157133293462249390593213557543042740030890090925748845109353717087777098652096836037592559886875937597468705362196711368664580989415782459593961019269492336298302450451291982017390646145002238409179204342159025280224961982048574603710864361287566612390029631303821840561073102018476840728010386929266977770763960989977534911173172920359123214043970916214261232520205340433975584125321669460382551438028735340549544124001449051981257218888118929392139131965155149887818454361556910088906622319249008357304131042427045368068757976512721813469262183565275876552410357907545019582791333818322985777875942102823229326297444078218708958392619285977318406061083100336217065370080364867010481649829348670071745799191451438857810226690988454189639014843270205817347226932365779333029474630971936309685422097353733588080101509609687903408891432982083791693955751478523141920297893035769371613857038399457567764249352992670235509919485409315363489092086027428800914783857944275441204304258104558184519408416085171157655482296334212727943335241914815833957159522605186173722455003661738763203732303078313782969784011031279306877031939884453540824809478257438734256704533794892468589546876429208430682837037446138206463952371858570330724110071867378732897049123839586557589608528791807565133152378767688660080355562704609231963782267760642262074682831296753250012585644935665801445445545859595766553734519488543449353703493266510790619606541770997819471521064499838215468583358317315143629976133029403837941269833059514713118697225833467037349530582974719809858758574018097507806219779256551624324814899339493262114801199968121186700310646524744570953328411379854478547763614943416683856777358842950445098215945542689085537733185730446249483679831074365672684228840884448103727484850590196080613056752728629472346384155809566796821905048987788416406876702878925919598183674700602820283852918101442209759568872463194870896976639632914246317653099468635765536312369311505052968068939163440514154312632513352067051798769300851260473231561493924388260677356122319125429271988930829451463397262555154045183478376816186544495009662553191356319658248439149829515433941771955740449610601405497297442207523682402546040695443315025433194636259469184924415133386121350685955820550424903014558607168292226860028930441437693713663075533871346769196629827810365929105025029632528165033675083639201120318208291839896771356384463754325354762958160972278182239480609147954703255827372751015751924974472698161839865060058497336504388605794022544165060945971500113655229623549204442002159401349775461694931250081669166077883901657592166427064016324753173215384788417823880151946716790121121434827008014568500772582913163623719093840812971428558492552483064655219362253727778851251447263836815584190476639182849769912994083233811512835251313982193577099082727074239954116270957201950246836435976353974358418816358739235697132325735321971842450612935124103515854358728257699120081608211179208906776829545736407819687464652292714579801649727048760851184565860135532639718957591250255112183704325602984153452273720255086242299100752619394311199978613126631884746297026791598867985599161813552745747235006859302710330541467874619681828196975994382225367607392656155365073321119084426881854299200565161188853751942590047922402436716030180856659688157605803022528104085046005510107302853146020925387453913943402382684697003063313396178717452480116660777910274144795831236434768040253351827927137940309150376914746916180333381771411613852405250386485206307025227107213585444188264773446300053202549480945306438974248717669953035480879114527767418683713920388137627909181730878315250930779019097476151284347126689879994035831583539320500908417847114565198530360931979000393851785054627030972273582488224713278194993804871017265330755825091595521142662638052275770993920061727096105921314665799326425929743841884228852557235696978312357450058696322871912653938037982145548411123590163076246743552858194996682846299197456550059757064365721532997646850528263826483072621479508417054986454486606086889510092948599924490241342517891338777311543177968239312877560484276682685195027201835142176134153221627613365823652460380096450459394228641192184136918993404591819042852513264920632991723446946300217220270672417027026160736429223823343781744991047527430846894114589149650127553252795033823082688910835188379037435898802607567009488865903759128327877872725650083520593659195991197399195171988089891413669311438366424673444424486961074995445401966082426205447953374690054373285312514722204172930272851530845062106529280128147993691918940713589172899377054238333273573031386142767414269787582436403394182089554861042736062459715287284609592649659991289903569465675746105926606533563254898562874271791416046884310651056873266836991316089484804724576086812819154237410631751110408482252618567062464610156767428776944263333898279647350903882281960972121539491597612164636398070117251744775895756744266876522300263098345418620187818976574134696236592013912189987438627609637350870472699239621939041978980131215163597390873148098582281160846697333167291974878790183929526587167278611440775050823092208237106212511872336447429993464974270119189320965264188102941244855428542844031086114263758101503493932032630903479784342184066982492909120919342488659021211452848468508935191000310782018645233609071626054024919920910888375900652426396467571308079272534222636649947172070408811208961408052422528124877834075954578009727085617895392886764199388971209065365024803205372257314547393013884589363730699133342872046615275009885048560346817462182924783419167567247155943286627790598339912693320680523889009008406857941435743104525679785187987604263459726582797029861437700162126893847498888889424180482966502627614424874938477851206091236697237983971482558798683725535988609747852703884297989109944512292412181269146199332669937390266617297847151124500466905185533972548390123886668750452163395474780217468132721666133946215798248396258919379421823110653264079341303861897990575234655917130844012414349951129558062984759942054744073696122670834942401160922785544199836622094226136505799025947691471583352404692956453158098045907655883087615909462394401540653944954181845564991053050246619817127847552069492594399208453364321186342560634888946033887171302162627562657379867209202558528370232389155031273012459162723165899802797773140671169977083164755205194806020965901219473448989276751575062470614176048261647481532209112437865745093509571073656790216992111211369287096069937057198426860512484695813540905556943286079133597446752350044493312647588841229967180893333304730674844548341498199722330883317692755737410997814119647568857488229312147294113863193950301699509818178363023304097810359977493626266289619765166846084586751576616573628054487075655419523833667935725461099666120067115090325041573432793491824313620972932049743879051206644764043934809621724506156444641339977743027313788925583549783366674168063884729901653605578722234110026132553309961789763067232147148085393901429424751330015976508749536354730556098556325957457138457302370105795695050971685987735600622225471583544349075186137760791350610954847434982499546184390170776170114257154905622035297809342078384441162717702917471700600235212997181318488161302758787234482448051352821184172142898940546383004424910393010970473069661944419681916072990278310338061409884695813045788634768323272930699914213763279608242267243287499959426135902975182047537444055525984675985300333417258674903642309740723077940546883103934512708147024450064880848272990061002622944833615527479225399057893972440953614250219939147407181860254768021701989444357993033569783890503543477200143423826495613505261754961751049422900201026899781070452899244306293340126686339307600346396516935637945920655270122318488763424559934062807813889327799268887535314027131055798822381659548861273956035857109870793445723220035817857183512381581159008277627914371975991007491920917802685262367741940103510245653011283722924276181618604755942722012598158493996138036167816741800609644971070775684749923577165322373373335202377418203789433165739031137528840043255382940582171382819690520416009110729511849282464835048740230929575877844061547570564068889714285454608054014029362056941849005737781066455611297257378866389436886846388359206964928683596699449654605287254764722579145139202167579208460604109684592355701080907337109729570373069366127992297991151596405014719302180174564554773383617587071189633647221810797317306747490899304005319522705076674786402366939258394332975028495099888253998238992612566781684675876974191273390581200184145793609955211027499599062637330739948517009674514255012436538091548469336290612926194918882087810395159681145444515167389542067937447592237192274156087638761668179897839773391294590239496379913059955754032451690082453272994509360638063324089752270996344989881451883610532873671882943253172784846499810175404779222169140832135201474216271634218795587822464065582376827487063279510928777878042185464407813335301649317444493652715672078601363244472359076789506956945051227059746512164179449555993754019297374607462050689575718202845020082267252941814105313614848048113653809420408007373046992374694271555528994429381374354803477167330793329399222388305887552297161150740181479675410290310968260598882491754145537482125833813555376319259616050173129034096885972776379842874880004569253543602821627844561096228585450695209344321520676165138298583933804442310271118297379786030043246965123139747909259906828129156752661848784577642778470977227487619060168939903945001934620186261488299509521759108609116750487619905369858954508425497120211360875349874334002206199436205815154177830214371070468762796642740582465002388346680097273795750791075024145812620827510538047627371184523653261729195407261158507006165302398196692278907751829847441183146050781238617676348301760300939251053605139066015713927098434478936308480890110436188500416008294500116945972207569171030950359105355074995496547474298466520954315339318864431432486660142370302493514269301554236422106026870387578696523343504935051681291500167197085319013898363218762555469931273266460130793789489466584639325228446357484070271172916934096330355568534919617520177036869823279748203524351121315004094909383948151292004882439547594441246779294588588791682439915490151281688284388299866828073276409882891428470203795235849524780625651751439858981577609689052008414714406465976226179693086194459077918026447853306612763202274945634481212082299572797226649345934240264593180450736879841266094454487046470967014609473177713929117369930266405906246444482566471436102392986951716189394633419702716384846605454384259130488499267116654961002411046432980890309396010112853026497910558289916432418862534568135338345289363838887683144117969013960703758986251190947490685438253458593894021164025589788556722257317186805543190384439972144841108786991096203853921505315118471576948439368701705453910499709967068035848668224173698794050753127594285885749164357018072377372601839742731112075887721516562763117153222141785535211480263109421742523916362080881794444010399617958519215905964674473371282606862136557309619894886222945730151976829868324548194408659538989039495189452595998727465399406445046955592246835153875628686434827309388179354730332132526536492961457673093553754577143433578658050006853944059228202464596433710815895853233797037653136147152379784422375896372639436816773633822876316616609339163244510817914638721416621672835773709033274516443067916429152861153725505301660492033320937683353175001380203110527996822439846581394546554017564361708218625497775016985585716143727210245907732549992284844584815805494354446016090717925562805091157251825421982933927686182498950850158705746472286939065561582722547860600885218164763372232558504512014832677958814440752239719741335513276780787261155119980557331225527720765854157352708108967622444535719357771290101908585617739860015487618099860085294096918794354017273444536690175311659000652336628290443497826664887585614462236872508604927648554505366708425188347034376807938503036816977122830719008678658115549622109472704777254449667695033374007406125560234050540941935265546837089666187109772467406379341182627314581544398416336567582858536979022899367580003809201190785878212086742642398042820183068698113670213687604708895702223341441656179616546276473570447299286375798399678267190197515513972798276100060263424020282222711990587114356728072581307690457225671031295072278780115879020781480930610172058397421943190178561643249221559998657977810924114152401477130390568338336009889437626489696321124000464965505881836236089537896728541076251697308858697258417728353843365259155323010821650632326761435174802667902995054166183047847928455366851704182863626483510425277842688988893311278599829736949487470517470058408865638670526530585074223669896913087801235967418366639625103024888772674337620006985575653060261465467596222279621512082532908982017362164600963977103321294300071399044241522702763533522049562195607099314848417118546643240127122484429834056453441841052614033540136328754707551863097474848986955232392931977131981856665257287235561447390161470713826410770694097199135880309838806416477238168553408435491309595983666866426206603402083377130730994132771155485981318543914261141741170796608892035111026624425795386814922202339413383485684949857715085836140489187673769028663488920236883573164642144816985142972368739474825456218188894828071009679388913266955193197048851380236942809435159565460105655911509033176696147841835068168546341116210105884054711376865569951536473268390086564842653434848174379905536542394468850469994379154117597140173298810709055790203912301035054439639444953942565965119516596366067939555446980226136801026486586703574151894390607870520234225324870098448803170379478603592672720165342497808117465285864582617572209200347090251659927674827397399962339754300838648739029534072588135873664030662741750355104651960732223573618997306987241019059666235333787758577963896825929659449971337760229646061024621875365510102684124567523534398461055178235514774794603960249831059341368193363941887886765894981270493294434739987129151508038343270551726996400805422021122857135370636398695042632111224304829162713093109185694628430351364026369289003847967859763706549774607881223675738045043310655094182847769054919668589712924678368314762987116006787594685425621498010931303824307447506297673578668589134360791888091527747320643901942152066588321014706695917502766665873110686062725190742231377753584456063067430155733827854831935037171242059985029431498210994271037511364624136262802450457995142908631413300528067766519190733633212086421043951620684587982939093116039346469488529324611626923135438987339334504699672144037439172234277600006654145230803758816806053382530785403295239998082982996863865675968495354528194663556882500312769632460224127685305312151459771556708850821869056026404091648153820813433342851223284900004633120656854660162015111024532384776037155792291278277781301283653622485269889967935725893481384626367372997709074522453634965953424350319922115063242232498218982121952251597943369063883742793422916250213289486562746743833622977209814876593713967974392485670309825694118896106105038410432770917687554719818264281592560641799563344278911967062756535995093912156018987024673799813139188704118562216539333422965020902644386366698234880111456983035826935129847200999488792831727995985538341506444888155363622437223314327522579376390476676628196067750394394447586682741415224242955089512350409873431792882718485442478548755187544880327309498171489935549486918072528902808274489911203637872039914396016550948920989585343847869509363913130752012059432184198136152074571715401971548265389689752751365834767813812924568565320708816617217691650031061456218006015705275733461874341122410359694361264707613542863917335873709887885935262997186265965800043578946341158077350144288682543011666776992193562068683825120665963598820705285230059009006684461513735683603689726358160655063456222182830161013822195944437868533020118907394253250651139180742785316401703405896279264667413552394845606771140196938160932176820250300012213234234191804297009515294550380836695171899562785396574994818019977306119784081099724215356185314378817906633937346547324985415904845799417812738398930500786420976143858799052275080106964906392200792304821949091777215381226630720555648275366066644260180730558613585427588753396729990416878442686918191907975902330062481516571664824992953780373053013760900587700626325142354554142098239179019384379357511699201661642934809159905580794904061322158303739935682888717896914109378331342070789474878349476111878443022616668820317033392543254304281181488898304566991172646060890862676914050163559675724863689127048498647526784339374474755318990054039518717586942449442059480256075792510590128722928857109550944386252260608501922516522877981445373658690118862892166551393510535287676961830120109578898420306491528438757481835662219645165310094403606250772577752159267079917391259547121015662257451581070865751293013154956147440199288653144400026392616205383007690058768451916436659319700176668083222219963660565882835337087895806220321062981592509354218459098465961141856087421732410096653165157378069038019909495999266613839797198681351940831434935944968428769862960403492935586974748966683709033986921879262525143945621120536221626701241633435546383476596906780020866915680008539699564587246779319413815404775279071729308405674219477850515869266914254673808497354631643929144936437642665189921929660025629275962193332547453499471890354783840795203642547606271504121386206814785760155848994207311615301587776741618050085130645479817165499250881477526632943520279443362028915987676916318880201039716453130933598687174852728722725497808682443276187309029764818821302376791415886016700337632937758418635858252814572903149339853494801649934364475905095324490729984889327316841371826336721880068950384774320180915743128770543626124525470688484809374337700608315381660616828891020382735327010133024815057977627483463289042203950039189877897194943388414279759500848736697783474478654362106489085128506065716071103569181886450773041158268151796134324821338198805371964308075727014129779536479809536533033277122773812734916063811186119152335075184517283681355933446460384972445052982220023308182719999061979801410023585294454949556503495636279604518090448232306686932064937239760407211843212568017722457805050937771954543184638322548934168272029451027207914026484393716627586335325585244909700133021246079841807833858686694020138145122729052702420025950389244860648546902553467333688307008044171078869352914732280510003623653799405082256088621958261721913112463411732444589791725994514283690650246653762587588268815469858824264277905852596997701574709017936622579904012191179301630189386426510152125886732110697603121214091326851462291176054473195534402056949802821820920033912224411490250426871892207484308900987518849200280541324656642635660946692982462187891370876721054641846525642062640284083775584421566612125356653052386591671819005256772035944650871232364509467380582620273526590491183246621919016611324371575676676694844545672750686296772377188956926424249733785873244933536389401228069918326312091451903759457517920495781731169119631308205821043629411946807135660898776873740407209033096025659616746371119829456333246699780795388269392819974231944431425677921063560505444579537081550127230468176852933930433179130065684961837092717137030771737816896523888317596698706803770550916241704566780893886226803585898832079285833875555223040478486290644158584406802450070903901450248875771254037289779543299313499543075146464136709158882041603704410825149368161835699714489185404300519054111561846766454933403451204237897749455357361252450542508145118383160300799317441884883404673867389604727635679237681071500700573869200751019968309865016057965892499233913659621921336253623006724368384963235047429690366579639741223531815580233353170577106287548200488044537729293801414283608263875805116249304062501895732323982465832027422863473573236928273279208633493146277094589539667878039789119113980401320783421230513387897714451217574968700429063216795647535481181402746989679998532529196150634364989166200022314057739761721704506090208108518835997029355333904494287660613730147431752086987498269342503411864374859276615455771699816256050595798997464016539346644796060691862597749405569073774898055982136097688494936857178619550653187173806375214099208383673221658824677175271406776537564181806892784590662964034950590230367704020937710728064165747598856284977236886556332790662474613224035929430623172647902131544152672819391321673392590660989376896312510336487012042428429234674054759490707945231414758291585588058432297988795304928575110658114090361914315844865997575440205345351602141763560710212824058575296343305805752689218201708078951899127972817432901715205060598951380952925540529823436474019720273874966968359324374889829584553485134818291201820361964991840724391063854481148675335310654995999998050310374943478703388439045922695273739569769606377489866355498537016232949642868343831613765756606076338563535168466920769606606521517750033954548953835965833680112602231896468324820264976267703401939452201261874315543279440343577360976493605943201405305918339603815038004458940492331257936507452348526025369220189365818980464788581840497929836307408953758961207296465554964943335864790409356141579708141682988419697063656209956116038991465928330229803517000945965659212608677215214341715857058995016194233460055671590661314853279054009869867716736513682219738462543102413261737607237713024547808363188961652331827016023264201497987879513817333484263569965422720538566559571603053615691174931836267090182120026014647797561214794922256643636331276343679033399090919497570881862193319162667029378127788464226352248477185502178090080763402140574969363005949182535168173256337262800265927112106419737322702716563824982258849258639447165105837908689678679401367973365615878126109164906082038171062811727953583791036781590888786473583609232034916495027155821572242450877512193718475023403096570877731569759670920252060550086696647376352286271276005340482755279729223221122488851269904483175249401878190746767521387380657414899000161375462693033813840912722333541105542541422646831332795028318861656346872256349230253587869528671648264607246124339050005088013006057640908221525455553507116220394552391127269327817943335559345734793026880890768283753833393500497351945219078987413884821219054230753759095131259564366584321220488189182513428882178838271099427678710872034935862743401458053637683459621266329040423883404998918865003877534485485657100604619111269099341129647742767029534318816318077720605446595215743589761625430537780428358839062722785161105530809693039733729263534021343675003349987952365910825117471101187620378600427346527310922106968849827050311578406446012775248567555977909742795032940784891574052576598936367183147658007760092392566320358359701671090560604064924529214435809638548561806768984018574588875695769819322467171078793468875489390519830115124465245366022931412287065586217016544072520869358883076855915480222551596089785237716469344833717845085756187427322650485845799585573404782355286730501565408207840021287541863502664532159124691969114243743820119823887337399464606671892790741648112068215130261461692590467475300474962200645037385264831430617348548735083569382314828714637271658591298394325638814329563987749831394714581563691701811559215907983559524499913531571563031775447983324980949257309190709987671827262171423804739994539878466788557898363176442429136392901409136808081211695816589332309185518267966905450691973806087835920652557459735589730428326417525845306543664608123055506003498063871599028825677553177603480782684750956377320999266835945491764978243283624995255691360007478646674025894590186669957041309245521882911590558772207435836671965637699297115361510653773545245238388339796176441291494933303176970546703074432699643778209877387165868597457916828418211264464968357100647524132930661145636795089483435514937339570333736326962167538528883132280512717909359589744844070342993097517356147147282742855877875027660576864211152621835386176092888131687705624340223317642200861824764942645418590598986602042457181378134635109936847255498526551498368853772424815336749218522010756730493983297042585336095749842604508437128888709965837425429300613247251801819102540134217976857645827681909131726218896330354755849521603890840805792425682949409179277522635518648740038067043708950363041650949130329397907263408416896291018702564871370029745102886800837049754589875281102932004905078086485419413295430361547656131266966848059817026077648824567839199302102154777184870964129160759016709516806443548445500229085905358882909200956354024338033792916673267457109731607048242192176415463785976723380077967906778451870949895179759431768665132443352901890405334143726072340667280248536122721510096777485207533764462394043560834479981983721443011872781154040037205822687719584619366255958121121037453662574082772256773430837224928420317535274147946314184894198362835475823307137810916902193914194594035415551490803010492133379779223490769442015063915165984962075646959419246085802182110331853024835807092123472256327251196585401332080900679291951148750841076162911575827825877691014100968572677937815722802959695611508740303031341281598502494138237792399302952099655558712476930645609653722093226141370943708792861586003163818920069638070333274107702865105927895864460294816328905662190297486043651530375715457505857294623213867267904659678372543201340966795659560583262526496671134922063230693417758870043918692790928247330482168143231937392219491770694887713752158120081820202071815704819749338067902706674553915923465580058792272834230147566326731735636082110304207277095120310426240609985397465728979609665525304099856701471433387747706288646979721861834294489990200837237672523067865346020003013757609233623182059453302340405248824064578711114025730413312216203468788935574330316817452832249439314215291155372435695021857939163223886850605305692952115406731617159133708519391926863915963910854711823832627816338254845337035206373477174996033880852295809720629535465756427920137932723063884288529866033668950562348261787166071939921550992587256662752044147434416315595086986669300593133432527000902117775613435868259228610564229639084796472012356787797424005459302735957780086974769083130581943089551896554884112840631416740780313451913723026521303758001194490841065170387387069673797608199788142200805128270249969452321896799482467216065533281601155377459130484593121148668351648521727131309537377435584468345618771309187615061499166929039202808171550886700362327370529104339745868007485431518395095677605512216893490239195675783756908115115534919375018439400121081553560201198957598832273139016811218617575964059215921660154978222220332246673852943285703734025046090214501112564999295317729004931152006693723139198224011033440210263628712675049658585453927287469769330679819282164519559936953116309278787717721747771117124305998569676919855565175958821692701869562901467942323934639355140911816264039022397391601993628373929607601366864137976109530044158430199450572466906100731724210804276879467834635658599757663305441147131484401423474814146187593564846896371448598991850567443109407818427734431995921334565777933694766920466045321266573573744975510949202730390258111588817967082443035311560531358227112269238014645442053736895515739459909472864320188734238367443678972880241669397295502839309816026220773259679180452357247449918774844188013785769138934136771479420788478166832137745340404803924579150647218099813893931497105128570403769727521197404192114060905935373957899240944511554333784920043729241364037521980506401460479665165352679066806900705597072318209601416719793233619709476381452478437171572547889046720480196318354314103937073480075973197776423488951955547748045726934385051678568052951687168375762898353529791880716121336062427740730689814598838056335672686262323026000265670976752273557024154777142119930138287096943069753305711948228660337186567059175069006835274727050886939636378425083978491504069358704824575681919183164776572246857176851265383762175132439665723211479239347489256113383529004284746460104188477712639871861479943047632501156722771527129733648277276462316589064290955728968812617804528810424992655605014712347206803305225887015138384479279212530992075600509950512508072950652348921813304489326861631785112168496181600202778381244960833419852339983663880904187542024079618175663394152293206735315119025504277146007023793710308228413771649172933254663968074461891868449477207529000762778541411353779119029810702738617383460239128711863228386017807894490637433606186256173675935969298631152271006126659180437043053236965062674825094786990850276365141192159807803232258112498255077058540846589808667409858155692998432566557391205124032785284164419453036458218247091131841202265463274969665127315906689694877402943756966686997416732569943604481118743395851064141673050783811444773060490087465252800731640245841885993465984287442338162508021954525803985450496963593470614493673476385187814440437390006193331530050650586799307647783888432558328176479385068265729222480616257121038867542204516041436490477396739386722636263354242789468224723964587327288317665638645792843402439737077185866544763327713067735851429598566319179124507022398267408808390207122802201642783030454077604899241913865402665783174595013969759372601084901762538881889475856401161119600413768667919438419767447224945411726064170234876200323247509507521027299134837528496480894000961053317944590550809855985303876640949358568767523775807998540603950061575518651541101906943051683862316575627319604122195868314501972511490512264364855834063966268555205094980644670604194155547944247412136316298710783974864215293884829646746563464401057358473790474245496445201122381526396090662511518087842288063002287560847934895321785156692423503095777588594843082943900022433783583942900448038621966959427051309071666693514251633017983621848412766118149068577010704668941517114176731920641578232090825023442484903109415077702496477997481543955621009832597562918301391817525169256395653555843298263751211766687151150796918010081719105104665979423562011745441641158340512590019200900167236392879358602405621933926050772971466403273832030625751150480663393351495651011898186206249898436348989868439464741524469029472173745480840224786039639555217615371167712749219572204393091613522007651484445495051168551536496624681470001217815506491052065904351598664029390314498022414744809926404576385981798728910961777324573480759321784690061188663140317029751738692403085317791157722879273128521702203481755862741881634087712412964614769003647036713484799192455752755990191571268534306618852043679714342639078989197602219211062772794772249439825170470636590192627644593697785048629357183774885670875129762658477108326931926333349393584036648327841025282013461439457269980739466672897358040204731891968479903340625752418788224316727067112502686451516030653729197922593296075891549525091125895914970855202317232092167486211857930603977712418536083726643928474618057070569819221846911069704834152014403625140292356986976782381434887987194497761967938721891178781136022238005150228404812269206886123557200284598535227680165521845783440857056552658660568398942985119797145081228231221222612149459705592281712530687624018082550486765764813046195067326079520420736620219374551227799876396403079419678059892281373680743672661966343795901416272679439413431022576535219723275265647074600350897627301130463027173529996887669681847599249734560858098259614772689730177682081100275850745922820225516239652234139556585273704464352734841820940077656471629976609239511478073339671044295645430215391243889762469991600148830974055128383419212286014904419409305917171245864160294997655336951657826914543166370117611583384014965781873165204725525226897334338382723987764913753447839637294978131250972882335949353672223947468019399197838972897105690067563964929654106187212266537720890149692381237468237314562135269187177169298802187021672481101405192865974789126050545737419579081973425239991663467635619779305228341462508409036884007061254006304698337136435217168118903993753336971757734365934258531526850044509497646145317215073430806944578364117978978312571212724586891974225646803220763246689146183584666560759975352165134217809588438647887639343369252157670808413809093923423496060791685174867371439691322750248830654863568505776718139182698219577176391010041472960544373366406812623230087863728284640104853094416106321815933590640376041033826300083874290272353356624538835654356020152681445459130386575876952219909285407488692539135329767475548574894442283262647174527673307641000347258471838448058214783168568529279138164088118935406371558109286475466154165194498047871512322762328565366296911120904615626510655110279374111973798511016620688864844284691964696136428986801289415359054363752142221831157739519825007512720082899646459284217286643794721148490944831217584268877456408220080209828838957376133233895054906946511490198022800771041579061619305198836311559650983318773282439701659916851490761625314945305881355176417876639342579748795640634360944493031394823329211958189682742361919261039619411246016326432635123883529354741748667287348922660802019698487138614825960008439864162717039504595181434559137928147097226022354209098943781655111873212682006930688271633700378798366008435087123421845702065098729423922730272521679115571427829976102768097360966058991140399365268187822977397944138904250911833190326648679808945659456008737274154006730053480255664660712153258039282856272164999036982100908100012193695223082443440958235679374438503121578291375705546206073923053688094794687053586728793626825556610081028112152789923813611626549645650199563057143483043514285128569754476039968859955012547417817107011774693000099593711553911352475944882715044527168882459576488056239250985584644244730453083708840105746716404379732236488691258823041020889939665497060993624623863996808883589388338715114521144406743693042818583755768906287042958173990270517597790102681915234963268581295666973199177063265367310803079784846884148699528971448621629422953973263836888651591948515868483983890706700670750219903795309335461933439698044806461304938553656480157310787142125537170499494721410316093287528254993905319959215306989348848762700328953661937349755770581333700575822604543360754043838190312214554616739233673411661528610906795434339135955910254665306224753431831441177400189808284835665730619706416855236385248131484794393572403162183827639377850487326333049174404860319086005553203201682747984501616213791747680814629354446819360503321011697207874458972306747956225430769937587177474826677945196733780060740073141022861272557220138913959612576380510139507473440881409176053940519507541933272568707388795761729703029444114201501510710056733513763108614518229097743885854826086838404662951601535233153117111715053087649309512597136551702803560479045393586218520626695491586744548786683936141269463191656527037192703140332674934739759506216437185978712604885027707927581900970313320083943226114412377055567764955085697490821517740218145343666036498101515991795159555048172282668536290630105836346796610606269141677646103761842793426779148667528134794983358308215044825100548101869270626890399717624154617873976477012282545520475391873175992167871244552675394884749342633865682047373226631048786056144256224765507414958085573835506273781208052382885408162022150916712822930811942201022932174398447269734489162327765728433042683219882596631427995712853102880510928912070738717465508882404155885816043620939673428440163694159704720740905061914222347657431592007758888833016074227463028992811599147685973021797282479068045073811280742419248361764971568696654964656542057619712499459209709978136557112849335663974227391894291110559893847888587090764125152808321476161709040211492441661714921712707391110518994322783290318797384071248687731084540321111716507333051125465426671317598229847358853240662103474255138000267118995055390444931982503431113818731649703051342294325637943585119378316238377812763246736614360628831986262701850605682060953356522853581534906088424459110723969190729530912353931075169665659000182541878890186523065505622745235051374973188292824107806813452851163794048527761357897455011344552457171509295472401361916727838110953228569217558120185288572975577530092533973720390480843526658541742458513287038455791945976909462158255235759852859661654054936304122190967426760498921632484687786539865912676743339264200173436221100564816040806907519849577735126306668748613843109200601956480328176130410760515734337536031267784712113180122952963288859367513421929771614237214421226279878785559312250218639601006466451142917880650871348869801621907849190204660260202186120837008822422207179998865025643544909096223180378772973935006865216424946018500099551235211714029486018918727515897843097020620246072441618672072727021285631647527720528117964702374475143578258035575593986787239465900054067343345280881376570510498159152407802206125055002891616186226394595641261635340538330018079896056746426347433733694847116428777777962322218364061703741517813881614337527604052174594125916282966736973652532316064690230700894515074150017491204362688062550435179258895880749486231644971836622375798281748132290398772993090254393658716748515999325208715055398017515575633253319814527542968413184346972812296255188305146972519822608093832218967875299018634745321525330677479934186938850651559675643510522082604695494044570241885483874027861010682413456595011055107152171940841280404021877748133209281102052086138284828970631997192036621154810983661598891175623204748545258617077616125226616869022894809799741612769907422371415748130306703534083901418730921636479870190559077415117683724459763060720577704132081547542569250524436786881842281446678144427360719208211489770966899000875895849145116897773346225967905613217176602718401021732946666534799528830753480266935180131704313270245041362283876624120142106782745384386808409460458098926074658452330065537465176618536147519502374307186551314880837793567263525388211697127463755507290678113006986867057347173934938524496101969747739214470172737298468723964751766763076574929632332751371520429976787802434825216295275715329301926869018103721966998209227948151519036284236617142874614325445765032739789261881040284900537490526227886031055910133262240965914725450596454441190321000401933503820424526493166122356670853819855740886925883307308362957645688006253588943326273289486639789680281663622453629776754895696457639146520497164907063848811826323566504503777685004683428492507047795876555805698528026262924808666276016330703424578401693429633479429518170292695389828938447644749152313942929504749124683909173456158020406477795490180883098699053503282964381349622713116935955543931875366064492228217224431643459280800613374053042133127655523176029889653230513978635071920377649307694543042756101855559374342423477737805003767312950193590487124703339116046521614488545170430194547409470865687646975675436492606294635473876623826095105518433234168300666466577518014763397099894955900213748550677546599931793558954513588890245998761400029897899008830128682210705870968281824041507532451629694201090501393199783082663917015484878602374641518618790670583946962790289058950604912749499845095144025123537865663405871196144143126248885951599354659552952421720906409442362760259089983206610627184410376083364200262892067617490277941271010032728736030155077403646243921041342093950091720281052481056891783615742300381492585841573274999341307446110904714822669619384301916944880411526364124849351423833160156119858288048346552511909278847695381976537747306611044485064117873620231477167240628590296142549378878879250421091011472464346132032849192889677774724072816512798046530763653880740991831846577026488231142789217548978700706375381913536923303043826602619386249362222685903677103137453229211605342609626060869809032282400501898704956865853861682581155995401034960652970701184228037978108829059818935403760368792687268825970789939299118471653756401426085785440187756416137532943056074312305513476598466223474403503598133086857926859514243014996389716750638095305414096546956360248231122476740245296211261810590171544543776075511661990400109461360228067574472355096340911771359771529861274120196952133419008274633377898492816718002036903570825066999058783818601284124985501181900136425372207983452060463335480196660443639077955808386500506210293464557190163265376313847213009731916964256715641190078187213765031010668703351657764155896193450638074184774516532696168047511207591330781114026195392985605223869193976766837802506681151596101505242295895532254165332113003918249540081871818237519692482461514854865614942972386997929996800367193463720386382681644832505918204366139715816308822677995177033507647504045234633885023809818169098919028420720431696359918648824480876724663997368006566973423482030240041561933533074519409240825294562457450488570821364261431906220569115230689701671019797102176709191685446926240900424419459316212687110297025511940046403929251246495062945673116460402572095237333284426292868641147476677410283981948497424305254599747124538984463541458666838825053297444241052608279094858562606791497429200113200192329110132221506786889877962296313037752193376560031872502268631553386459807432319249305680103355865768792800343520844303908643268109411377356989357490855115743190838314115388645177787456811887031174010897335892447243287763681290515667375391269510923540849157599105671201939449389500874822432969633777801754197641260999030197305946222336059578924684063971649346628629253416108509858448023985736409131758281226324242066781768904791532203975266720304108429831713802063440761174880754692752466993840996579608574260578902959947787282854238926164500161658962494319959389275735176938090848884026640914765985788457283967632149225931546790207717275887919289863515634711107274003328218595728550889985078956441500821675782426886309662141018121960455984187334492491695999983119334393026425433515456121014709954460310391403165570812619321144797501377795093413807308870295575938285232505476461502818458959628403295969084648803873866810670061902843227090268509638885943678049760948587002504709547293223277129638393006262180505345630096765154584302467209414833638101277065477202350638653048643667310989562017343686853638844380701920643351309470977311870092534782131049410429940375318467724866054017424636882279210515311723334345750487864399035265283066953805010573497908445437174981082603396488042799572458948808284139458637115256980500571687896595548249083929514187566554014307313214236032905060787249823639536072490737174932760473349037802567430334011595859396084702550691042088969368995723346109312395323734810024795975093809907122862501575554086075483968454108533434511019774627646512953618650107177941355102612918452802540636600911300148835431858704871650829119438971512115006830209724708997827471641915950224558730450562182873242011034598150497880132511276022407751373470934667439332157973654479973707737498796801290908714515339071136632498536251926705877603575454752971513309765403797133443813690221080751131480556646279503116824765695750498760639190493623127964580822275750696657206369495723809154026103713517676861582396320875904112174756999287038092638429751117142100688537381492107916225258906458447660980248514077911499152332709611460741687678385741434003569293963636339442514595858773740007066522171664623057053937464680645457981666560649587094712087153222598520949999601251397138800834583319143641083748356391538658245420485134096136110934131096417299564685554290019108559626940867393979634841319656358734825654695034090050123170921962328235650891105195008906963154752174750245494919360393420757283672325130598900984426833441563062161857072823891087696476354222739047245305210762516488620625723666012115155026577661663064538189782333599258289759480171935868557855039691725501267560853346834375229545170171698701284825826934991300998923168533475161976617215094886492960133058327926324616964346767098820933452234086413644699094535577912805132849627987523943001407316741368957052357926942191292188925988783180402136247561595001491397536893804893326852088096081459842593167346538928554831221123169498520073637951093297479830393296494011668953999633449007944534914914701809726633845513240156212271498642650634224347789552307667765286963927458667672828569090294564287997592512122604672410723029913007425239036630927434567793767372529627457348248648622100039530826247858354627758772732838850825294937882994833099401959111380985753276017473639789563696784436114851894868481452619547309226651122877591645573078428611016509127365247999748651142700153781005690548089243388330082404525675842661495453433269519987570141585003255962314994910982086928211057821193832788058897974832411603357582133063948630642988892055938102431452850662691908730815893813794563059840842130989200035876350940978026496781253692046396637321016736562281038741302969455215661401087249897952387469017384011265662490804925688298457160346658628434508997576046623938068354847601637241860842011529682815184023843081182188579051308114383318988120688270960351180129003078297292298663700413632154644302457657926123757898831424866410488954409634909522140285595324008317155783401439182249788973655381538456581584139863083286150799643946570543287029816201058581901980637020662240987105686239848637739566501452130930662572190021594128041833776598247807507760602246990045237385427740778894023377964624456573203009758432268220259087506414121902044007129259830895446249184646113922860480746956317955119656091588958131453829276058795083076105628841825973805216514003831674441550751006519827559949803327697796737787189807427595197142416636442756052461055915319925029777652455976951121217924138217312653010615834471179017421229153549335823856764039664001277507623672778064469338101294892758457353788498805279078601250931120990146609439840525387425432074896726777863191741987152208516544994627560471390635097910194788368493141017152734499270962004913402508947049803982941214709831865027816138055810946266911568964448153645716091814563801706055634008395097676670643737333967105153458282712316210164948590187150190864834081754941874069540364513365694384163025906249749825944093631736381993935638380436713725850583995660439368971873124456814055452070396714006398242359343748981615291106074584071716032209846331984243208575757458880122929062656954125069560672181462262221379846366318541088020365471790818070577915838793174985974137062389834242766248159283745689246362983906237952159052510141982662268423033534641757267677566404815227126049708798611000582373826648303762740965250288698117665225693347427305888503587558280124851553033606958845488404359815579322925040262685237343863620632927141763387041712969093395396705734471250614305822371687064883597456493824072623240395879724914886319734815595286580518279345516231103835479994364885429834953162840122286328216226658716698219363992670230905235141416293316027453302290078345461249139204965281155394518619111770146551954072747288149542668486307759610382187040430199560986893657680017821969456595884818048477271649763043880586414742744057952595847116487361283058162413948030126675957726756974255146158880841352665890123427279597563413324097164176678069511601249997711173788147050493087420100512665109154168169350807599662941283574911702423844101810292825709622320434055462066568284863805946337429464728889848648462964145900179531533489414428469937742539867198990777999532356443683763898705801265671611964536011936957758255184214307042185872884926381658735501551360927711802950095996016626091573491605096016267716141292419157758599986245645419124260262477896797805732023628722025801135610543923832625883123268246730297419728414640269858588267890289916242092100764719136399964021143648343669417011839908781673723139410129895495243597062881915614640865101957029678154753163320598715889980678026448427054017038407218035152448180832344453621220331401478325914468271178694324804100791600193234223677499672444822363922577373968322513201079973113250425366860813887378959534582382532873595677087422210019766277703571862877735224567712434624364235911864301160983707628839791718473147078750443785410864864784554693253780226543156711901154708986268891693634567479413805022733417168228105214002524662167826301754599112956507961844041062852727770595588456897288550851719605571267488777908566167122669374681278484872153007782317036312450918933890085463142751026925945940695775479686659604547838538537266874491278005095101419090813185528100279128705767043209309822409708384305696290679389161251747007446826239950445435047895367555863540880640676876577252588508076310984201061447484117200751909902096567217469927961655180534452149416046783281701559000170353790705146234904042222698063785634945242176886372484187195035314102170564471139294438102499961364999756068352376781689636888652705925531758549190795322641209976685774935965731497293348083960861756726495913060268537940870855945183214307943040625873780969105248889394020259483712126032901479994741976663297251797269779936649958002905163324864121831248595198247704187458007596076453423254541336918505476768073562578919299496068255538484497749519508925202990048139053643998870277302718136195349050199584748944529592872297780738747352662139038037511654790511789899720805578466463615057095697004147830800404306066749231088208104606698768375434354388380048022109925765536379495066613980573542881015586228679806303999047206714488452990568420250011054878592087521680348607679068385524798049476582561251047294241556220300182815141286370383520398891881071408199943539978456138699453184736283282762407364712444890819512374221680811933671787672526645964876180067986985702939943355944876162411472421087198624115419047149473351938481136046203581661087638658929508134574818839618325678793245894727715019760366937215812886103275629684370452970709374911285418394761194940806396589768713780027287608077052441453657882004370182770969782082680369486601879437070274870501837292326320210534432185566777341195839730249228476571291755126643418811971585635988167377241545819640351026527448854390190491698464443579455770055670602495236732362606499575421021605460104508776261502373966111773223115714630663444709810284637451034233834322592104792895778026659731638923883383822433106803273197860983507161156797013571297395946066950298931504661013401548437393033718338034666208683591579114897703322120023057702991307989936674330965430938496581467648074809471010369899853703868324617303375830740645733570665243928133840027494553160138243335718737052072601358255636580355305503165672227588248349923439149883365801244834136493354672340936890943478165412421529781083448659131918645157643498933259849325194151273314764417457228512634011933603876908283939014613498425937313743522510131317119722643339741810088105716673842954844209560011287781941713890223125269082808528069109891298813738691239329360614544337477909289638094199152534304702266664805396218592581482548135697664958118459027011162723027743390764540165740131880216826626619214149906133770240871637603567377587426866905821002885991923946965554180058819634631900373450774355678230882933066202437141731554615700672096878394042561147595450351332021045859936045281539722128164674169157307572654697616763024515040866705448276483798583718435688280917094421042648671435789461459048976229010530270724536172877034577063594134847529177881687545211945876097577289126144269691605729257298958707575623621253619335352600732704469302769707842169562169923830582705119971540840794237785361725245777305946800186469811206235384490744742824850408544622980609462820936733539171405151996999766595567805860282842941614051555159205635399631580406910547061483142419684757707525043716960314856479652163031421448773274682493953802068145350738856092237046613506937952606852355292513755846371338499751338441049539479852903452609413163998546807083758455556459732476402317526479265193053084215786491174332035313380178650096256960444263356146175062753699110908411301257750160274414312983212134047175225287901476781247359185514487244692807470131307892885568614523736066986178093410889582054788878295233084104898461517622135387743151349864240586755831690395543915871485852640948881354826636629316562256852214170785943697192079296500544783744240695412319360150990827082065551926652789633214397413795087702310262365988519557719439728804685273347992914041626022523649690363638952879565127039532060066139451671741478633181480138052090131546395780827144722724129761331695747912807634591476444902040725762733224196025073407274232017997660472307861416978662934841629175074947944779419903694889684800572181722161459765008484741997613294879433282928347617714582797924682530685360251987242616401746209670316392174636794834998759471418748438745639267984642718161729441799545852594619807371383041108294552256958416431775337963229715207374885723003005014061766174821047790834811096706280187970992459893153910875178528197558048469161517099576915093392508253477827439160467242806843364243967038776908289963223553482305751646982879653945272658362900888034651851066534053602095399131133918915532788747640675615446982308699829725068197263518436251470455948644142884012411763384435429973746111687180272600421425373539106802661166666449723382136642922910956628529124076251015467953436027292785563336570779554752473859835769576864554906099811603140142001361382091909711761235915840674511212823181296410960843448536091702278597007823412798508893280801071154682954160227977153941696056523673075033272066512568700845960945654899828116028349870332565050663921219431032784387628787353445265789983592435978347593326335862186949836315075962741278952990384062823165653259626634514698450234925694644002027813714842433653830186684885310675002969447547858471829511704599860295420401368516064577731156266081923615617472962971313821836750960268551352416570423664912620323925679471037832573741805930844981891319463006775653441627434326215567945622889048548230456285522096638169162695841157565766909327365071168808346226159560522771264469136050924077313554301212826622422196680654990430619584672237988787659147487896393748199134329082471078097142833707932092389821947926990201406781073799576951174902663812757668119196879890301460183914341769702978500610703938118888963007851701323928990008479584654733365627887386000665397354470084648510984963898282091848013908862099725745918864720680512713108909601676088427436436493014611483444469317449202117757317393716429170926045940146612008601095564955287872160858658043065677583934940029915563006059512141046656519992713316220531928682487092799222880563553312752253249861987137505088387599681814857502489795317915361268856650344170480019802982730160376265445838499360537732157366724896757552527495915026237013702315552810757720150844312966901222794721649516008300583122991675051234399347312249589860089568143627302131898459027059510625886653883540066092592586367336913146780483914316585472091139969292387016003250287630387619534976355706677075287387930302848817062310304486669047695561174491575839227731169076105360717976837711128262601884807665194720172588055622084061505505227549495422776584724480559081737093592615465328417215669352844318227550926938824783810445975406340628924943448675284726445511790086882477837949131132869659383824429685610380128184457707528558592804521144897646817915288791450275234526404858438070708258478124087891425950586010123879615376221372344373503870502434616504758359820363337955218511336437303751616657412461805595456296132086627870834728790149794562814570697001085832725192849815743017461020256608213457482891085373386030946477712756642099982451952954515694831139360253866413198074547781830822280108788670263554012608722612775249499417620099354652524767225726875332362359349246037103449604047515741298981232660903990020644109820296521816113143420677149191861325948108918391659869215669297851166601499767579338960427103471203198752289373435181441862823489596216665131320960242194826518803610251912138185664742275940240233109238027818907952886434433542636673376479569659390974658958977679133638816719468973968432439380146119003632267132263712845168162576601381260752120702939446865559020303189303659766226852954194692392356910597853847869851579858092654296263768029310942833549804242364991894885795866370398009390048236307226253436836919739972740305120583276243635128966106087246147655484226459295613536158147854802206403747298433857907885924794183425924267093731470968516565947515290668220872551818219941913846588458153847058144363543687416330466876031969255913380914009553776139408096488772441534909210465252758837313279287501963731838712867336464306012827729629001061594232331587128164342963825427073033923504330013790627188206515975394806006082603605630365830379482424008996530934544836703621715772757542766548843652130564584177236453634999403006367348131002055590184638914468179268259629660457555543084103783223359747206981641878385359390389607561119103648226088263771659826902770541413868127784854591664105822448805841811110401339754209933497816070709001701375569361760427161442428047723279936818977590801505211672857106019725306204490935263355499099891857736150496259148639618977041061149083605976890599118455395648707239263384758316754899353165822995594161518011746013139206322022636975237490392013302626609263327832255040950379252377373343725693397932831014361465982593038459207560500206072233259925846503917046912318762572164892609764228862270598516596248455155652548914215089598929775698861628794957709211289195570262742051998326291301502945201249646158378882654149161442790014934482294215777654210008459175317207433515335065405554173713979077890130442407833528763939706921360227394933479884741282457578869574457750581384851254230649660827841149772277092061818063497236277025314858339357394442845924018014241274170067298110469996386419256231045904398551388128660793404004429031716485646635801413983903347371220525755566931132030672896466609332255909822411518454346498364355990960595774511252187368039441178122420996518308667773245359600044862926157174122399523491571003346797607925909421696241665699433278761240517304900857602290325136267355735693557139494154943539997476366816862177551660175354633892607280325367919083656905361790227511875764393140411142125513315315532858714151943719133694826493993190723810918207954825984745234098012352970902330108962140954765484741523650162665755325752434969179816571489989185643179459731156852592800222912324837576345393327634312014088402718242843115945579845636645145173127999130671529238977821783948023719144956291996570714625115856931137411558913094651265473161529300364360389880450935399267070686235084944038982464460366510221374982326824665960983575252879251156157512994153298301170573034508461565606300985846898213509437620338266329465490797723414798991316874737298611649731047313455851393301872604538922189406832736824875215986594333627891988554987956380025404850111220926533090972670352369952308839695503326944017988937320839199327519246311957785915065452937202596049182027940644313225677127118080347319278833938597861956787132693269200506201822916056602892300695041385736683423179797235223390994683269408369964376337201810822522257830187112596747574591672667090006928962205267151703459506912847138195571655197999147738440659534447027406871029102274173082006286362817736747968709991156757964353007547903753126043325563699710688546656507727495184446809077384583550420197074839202079925600124235024895419485810795639799398918567978920279497559307536647332613975813453159675523820688309238033412526844139665550245689453322605608975106834927534503230207264974691840219952130265524689280073446220468720490180688831982446322652975907773465630109867533833931033096126764247105748281344146548913404267196806537576601938001064210972808357654727340316392650222539948396599705921508562987932340888062594975449531214541718705242230955087117232554325750138422416604584213878941395099635543667720767918140237742008890905001948920113359220970723509780518021477914126193945289464842080944877625289116834183000903694145139570518897947771957642041101375015300363245736326525496354880107671684034553998590229920865437681911606960171690267438884197258922132321769303689560112678746626131854927722741695977069537683453644059369175370783640571784272299256447861745424522456071801123474207535547472364728774728910262851458034046548647699602449226212340648555621265678560553654142143566274025688876344384738671447753561388462788180126521059634315771038943878948189743684387133871060097746054915268710231584211934195845468879571267290566405286217961977254525527311829867622074469727554367683445042531835872038285569801345514087586349975552555071326792082114229495301122762621031907782774194591466634281021166369409696881488712460794758744989020385957998531914342476433073704583777323257485578471163870649536780290742819974131085022111474576779575326458678329558863667597876472678556377150373766448195125927216758938228541957409565713235172477995313400194995610292050308159117480794498002597901891237240593630656689973433320922100912000610126417112583728297517898622059017130916827252733561153327412149895763098187997467134244536169355303425916782804821469797246108873430621160566398545586855535756204945507375922587430345878137973469582029459871527359575557733158403660879792970746832582771381452737789798210709610619802852560208367672973801503826317302575906787168065813219630230599328377785187397607298412602155477019449203933024535549161047111896310519360233165272670152277869399576212933754646019163530743547022206946469429975776505838545066262284656403431908761826335542097462103671915059273845653591451931585899307926827371919662293936314577379545367376984066410806649112508833808415286252325014491470418228206700391558143522890690236096548140753364099570775066190188294984987049287085154405208681665002074455256617404083014145540598287134069422279884052657466013740607043138258696319279225095859359271424993591806640587882310418886677131705394870414737913491134988162255655680266398748384355053814033584376248938318310043828033976993228541231165105297050669320420827407543134900788997587065819309714182456464976001118563374385530978548407244068434677610665319709129300329434606200381485897895212408799367791508341920093967859599404748521037841504636093470950089625674472784848736598712521485840673625226304748804866243610602836794690050728111745416105107615112451512576018729708104952363669735652707399748185064991358498311468139286947021898265307648999907876670751343978963199149010503474776925480559554410992231831753593413629423079035528293729837771081424981905816671812378487553378121430082395686499407915822476642038927263251428871574230339588951993936436099408470503229217752004826678408168276905883705877542546574305253207561727606959709294887726150370327348763285946174512178829769916733185422004246784739383714279167116635792786340789465786942415564348400954902740800843221264843762928160911374223362132565588251196880081341561821704450680292602729527641531220584130798058616234783540462056739008000565471820878320531210494589418467601873432183517811885454049663621123513264194927370667060973376835762902884668157443757813922675314833153096305852190498633694957662060285875443448489641013681744093088156297677453405115393518748527699606560218253956849842129313401432599867395374938304057709454997147723726987959780763377376036828158536833638752619852220105971083765916902371837431074898095786575914107825093697215632106600066792442545182957567279214616608933190151672564009121295090824559948475761535437025889647526480357697634062106372928466715922776372121155244361824126296578774092021089274629401008254033493466038462613295726596597117552650039386325769543476259421874978759398854261527928977177354767760994753232175862164257216074479818458540148632912846103493177829923606890140332766692202370904017870902569213557070369904424041337487597523356749232234125171441215557233885922115824838230536216639118644582464831066854484786637164430738820573258390514943467819577194634186768055605888716527022924691193773851977963664690776262765739555586890381381219632844156233496516711861751095767820291622533967436166998378109191214166164663946744453379305094130474522316055925176705463860358464460518330888854949216850270840937862529071841455098213393974172050169503308571133341585508002130534134482371476401883269321237847923470355718956000507738049589048831725672400333830669625296130517313998036093217090349956938331825874667011692543763769477251630627483835123971600386286974061677102752801041491132820060728507386506566013701998580583555855704521582324380588117888129613658780792563963964207111282184889901893830238896258813617466060161563531153703708249044250902572634690678444064682450580987663666965009696021791433869857953538372951367580637790405230336233955951096172776149560915660355349284584357031924538380792909339688671663317183553164803569729371784217053650491028691525778570031267382949063031039452169862667238518246120242510472732374533714096880347402709623283523909327866703356471616667839329025512590269806081128492099173212556648902373183900662232261987748695619816713942566201433388921184305274985359608273819063414811494434892554331454145653677764320279889611338411784309694382159190470677558433574294456893102114755692575169984907222547789989378494424019197083860530914701669938668655141003343054183872402146990691114462557708201999843516554409755206597508926192180004273958980249622375469422853338781281876135558026866251125146225017864340211802189382098263325464492377952803659787136075818740332309696171646164571339681577592040196070084961556780476303019762177434901619662522204667428951425539875057559251618065727569020983972052790104766077750599082429575850364008913234005785768303137383275355047211847024124745546587540644131047750639447910968829957323472098564384467342266542676658403665220896727733834949071417043855400209640903255713142448402220264849686249663374405322677778439804282537405110652000600879773553369898797461781072132075855701596763715784402765674257993335863735722748822624061799325217564222585906064583261749344682385464855578276440464241255088022266883508998927241617059009813363948083283098554055673886446852836180079536021294648766264813384086454757215658757014339297469048550860203156488848341889167567298335616922413926660534254466328418659576784596637211863888301557855158184091506038404678068431275559568165047106366035002679215696313319903975466626836682859123125655682185544499888235934356276159358775316406609710077537305834430853543092233264942079845087937366328313135788207728202693215570156209777680444586681067253775362972785222812687816360875493241799040747898833635895586714923180009571742377575097624801762632881910264085377874503407389936058547378384607128926569108485140448299069423278045013473650699968013301727739198658819434272345534700842704633707884927822157442624694372222425573307411230471429847354674559871776121484308811712635228932393265683381538427243111332014276286271849101554215017940004553764938405993181958739022387747299830851197891051093220733728885327418145002722265702253186454247847589732447826464062035668840474269917396165272746692474048416803947679225715852681399199993754095350863140839440914460441826906803331211841301691364752612816886075265791427721172310508413961708890109122023724369397180562714235905714898755452214983601836321397074872733330526812198629313866417840771523597327243111387214031935048839530349808365882338245598044115289605338987047543292081188614633385451238139890930863729646341932483287791515254499855685089009514995075269376488321854387119870273787887256136159564027233766192579991621277502726157114974716667280097578397360079828681222728277771101599992355163226352236258111537854241380954905113535884486013810835966377465535608841054459268172545613034064482383053324946737138398674278118956389565260447406272017455994583397068822833043284715951576195572560505394480140894975791622465626402203420012801923199564354530995244932486940537588809227984772499877866379949462389555890658637236505648880731635167935943940357388558466710131224451590406588012324111373476701266540819571097329502618773741168604479333715990962543050665611110825327454957306507478268832559429104544208651724611397415060850832868178944907931127741367157895397735304674563610253164817028284769692282625419024940275093190424298100681116241651970447765064046503936188225497426225256026415755194587637217015650403071999125848653363212863348012542991902903250695324966962778932860348316133993959271860545914773113723338429604521593378391001483439565998444323841283861579066242054477182583855926496885080846844566661198040930321156905742191585732030665657091535359795286896512144101964245087485206839174570977611895950626461754004885373927529362371335725069590328223658967706100344815032458975404384974256589619326021722698126733962994735363096902198983738395185128827379850728955679574788150692143203697907119481168381785299679451499956565542993032065541616614492689624252862680700151365786177470384263947678225531985858754807303830030532653740770466907414896337666274426267471841853423645051426697760996690796552372349081138069123143475234497996279203204294863270219722208978629158836605086798803104557710352718560884261715544345328789188470072875166756372920445008142898828474855432724281583462236962853896404228576077163679527312237146569209730303694391957995769805774802837567602863231645316931043825214476776234727136256299846894665027907813492540364953193140101065866206350908017491846144232440454530212425190005625267274908007021236124729894920506691831928274474886556966028335820855758369878972613291402479176326668125283860061758431167321977953799015436662478734858156605311648473115243542610541869280074934899335996716774678601318170355748744648773539843529247085330824967533502344426082398078168111125939003792788806209757364388466058456311064753864926112109423244263088351677171709268917277040122173118436009782290881209845787872281549482720283625158864257204568353671270807016089575554807973814476252033923523271229278768800268275240503897269685527050742064001931378805834039564648090584454920863151642350265357173009041177227743359340426390006434620420119417972588756261037618583284531362512721959075776897026133627450953287454232314181909988484648784808148186223152950528891884861846207666385629601453034160514964716973664758271710000882982592642466574624496317329715096120040814676210511680310113659187925289268449462726243035996105566238286488943624278436458290913492758628838630155692241171408139933637263663992855477329098805078830446982940445696997180542106335693176779788294222573373617422535207358637398267154971663430440424842063856514896072228964129303928904963334702523044914961809549554554011348814816376314198507458156846025238297517808830362223147982586919718738418532378162789873152164517629064293823935228036681148463774078448051364628199193586009517743064669579232266795519827466439686785272095100958536203935894906032888003457657230886758980722426215262884167159956652262845231338035750602234619833055437690353181214423119543508342514833040185503257634911480705042510497470876192552985118284728830916723772042699281318417965296434999559179881109380783611971429382632673474746792333629701498730710285186906341095162655284369391253398270343347686377651944781701092630470172869002403596665213379407017993124431727598832321712602946205662188236365739971944957056199427600780840036566359640491915604264864929721259188761509761841558829019069018082177242527140787213530122164462184929919581047275381174446800120256518396769291579529698257581246830192881227698907961021569694016661085061154862601675954379672705551409965508736967114314284267536308604420897378769213644190328930870820280645893409225881556652633584977865717012178748493377840686874453195939634022974736603797312757209611576928830396680705168894615458948415915588430850686328579184522900566380071727559407358333852892002572867944738591039205011869346744581114479989098215951680994802850316843013086698571769997308146192512953010815624200594539553386459051577071158458216990199057938035128959401202439592312539148659264624074793781635959079779494179009681424532857892076569844239829569494187957999272183027088310072412616205337650052816267210090878165210012034929807630882392787757339326015518486570375270826160533623557819920146229491439281566148371084445461566436671309501422588305404674502992310338612337929701719230456820116527301174570982958000509325274710966887870042366326498853522137175602255247964650967625682452212255831090761873417851997442855227301814397176772738343185798946646042368232862093474776421145006360127318779054660729631738026732883287301946805340028483560277156974485048744971153206944158632896916712318619803618856939948097905363697333980034888182180825193240194901372780439957895405736162585033218108656852276935455398549673324001672952088524722948931847496113638738363022029228440451445888008307972256098467502511602653836641881488842619244185489524983194815203833091237237567259025532591855028633454957463648756380461001972330565833861260814849160672678126895700675025847788372094141210158822771797179806046638627364944308631283351718885379639998138162059452163000409207966044197771730700565940569941693421213408680976731550945847614595864799269900991598696418271308172355024515091604687004806236027020605141656729431024072480875312342033348348845283633833588858741630047907165803769479538870249942642455419183203605585352553207055369797182024364198717230630572279613936887848619972545685739642681110755574036817582326801086498746782917773443386737975869156787514414581899015393979510290176328221315525266219408484596509874750460343238001304698894880894135050952476718807615348364709569424299569504808694984335079176454775815901884272319201339480526075131610270334481718554229404552068166694240418966766143673583673435818912985300751792304495146269594745194175768511370775997501226066929102986022456820524852228288294791800351240017224337016168513469292035583147648940073609549288563605919726807038089044038807640316890857702715866931000049906960477117966522906948854924222402417628945829381738100398496955135767827848784825326104614769869227952090613453884613678019723224766620227936556077121014812353323548069815783185149158719155874114262373576511799174438933798300385018318781531711508462923510866934508473659813153888090833707183358149932014060342591421999312996774253381705922763559447940579067382669577983878024733300866155871750576618876133057644682077339807573369400668849450545050702987500895793195196308157409509658942580739376710316869164025580102860951492874460301707260277388714696197889525519079526338324686619335453351940422203955184260640545234290242514099752995037746730360510727807892788145135228035717806806500155976545622981863460932323840762817942300868550408279594442839029326441067852532215808237585593353104711348841120955358676744177614025494469740334798091528852389476485483333406861865253936765901083897580151321821278483769194811063896385561388032182505448204527102734759503556071374523920029085366657079224307072375599719345250723582883343278396468096391988464646931182144696331237838805259923618473399351903781537649431872310341267263637228684121113943617531948771602780352068471150011563582960473964207220211923688213699167067531839737388231602636325450028801204312814147464628923942590880933481053222442222205896128954667672482890425412354702023333651598189474123808417534487423284215903913073065462916145367058111613484399618911428390071086457170925004875870419178280139958688686999771931367086566405906303511061549141422844043883475725925639293930032786773914072016157116743117843459243181174025806807923951959678760484362412604388821133859389791519731470108219672425906586983581684571421777480959182859470790970904720884213396043203481047956622842338032685492376483690020217094195507699019012888787609542341116800358544717925346957534030946972002841123998596553226698908617837591116885444227491641834650662631007015932854550264149233723569126307333658768648649843580972587399260542769859122227885990993248065954228000754941030157466524564498501479823141586697280007658958557190985685954297890395324234609186341427214127441037532582116938783207791662340907626898246045223745872356875216875129836400494218170957760595564005543195738145273383946644802307853647379830482205646335159664435017060125689749604836851204528147549016325721752842454602820683405961887878521312634883841402124890306012950871498753752736726762976103049218087960318545008845282821855559762014696230165533896006546795224651889842407704078912123076145019889802364501579389452857005066120708277060369342804287035830710654501948230798364397727849616289357996889284800790150472797808294345215956227979059719913772912932571967395904188258839446820999496313754897761817783467144812633618262724708680718122544529535877947394076891338066679329474643344787816276179139280769226465897285942561873256675690501452655543604508128190790851730265559617517276867265819712084137576781049414280678568098282147113363420334829079663229349308299375968015321057103058578295195276084335477906237395770835291098449689032942885772876235267241168678212455176431129882252534142160691265000150186421701800394612071364301894716005461548904312985484506520351946780625453926163207133485417838461644105418602149539695268185382693227724598742604844630425902353528212560609638846667709409831313578504955828517109409144500224389465138518770490875690808589171272121594775562311762237332812450707385781574060202233644922619947515900082593078928855170518370477802021568828155689040507530158328726074399443780163581422354722577254288379979215936714275077688214808828907668702793973731410456216963928961226953747310592608223157729972341478681921539274765960084345668763957384833967943120248386838924949476814890332546594054853946244715085968684038352283213033845078570517029301972431285723846355209640292540310370787626284380355733844595179646098007994690504302752890945105912219525887197968127329177440590401252782016964508071286467806814834868163837830829147121032681350563253564121763159171527886988270812636406306833558939479885182787874346662744901861550747732875863874890424061704435100922109399815473451974266046953959684642210590975816452638831875502009814159627881830889555948619021618867084509561040857845206461258400918254578133941369818938014792902534960850911256196489393389537730591023968342620532369032482462652208300761886053262212027688946621610739213392541117161699314219212757845043651137105657752102495413060625706606584829407913644866675063518650008273277721588795210529337439196139296743610392878943222475964060744504532171199790086822952684455145848874444188983636774242880090274385502353133162262553060060723213510918885254096821514437598855581695744068970970861159998101708893769795677084324155488559295760288090763267418002703867677983503101400875732471827048643032609255333704734946429316740594172416137864230839215059203112145909089364465241137120142101662699939326371571489939702948251791716992774667352885851028037336728270683093444566396584686808853249444717211440244609132717250118561362369866853683703992234022094974640179681281771166834209707806064169266861227312249558461233111333636685704662351298596139486344718735328442609602624660001302398291857562264032321151567813523289970509146911553049285135847623677392476877005234846194980741613293230145803829207672450638785915346208699424546614848891183734929113633812649517277766605217139588750228413318753556630233412514118174585985008436075856152674776768660359279349566137093054011554938864725693282149210330314436657479754715190077897705653389683140311137379600517258836354563193470358455407691223770599967575804625609722557785362030226012332150740055611093054904823884699512832520123423297001427212869464287580749374034435748623032310282265299674911208710593142968860785082300814036038696903977791106251940991200077092345805212909631937148658876136248530381208127381896190960711468658567007467817962020959201155409068995841355807260563139510205264243899779158240708344483805494518329227178207345903552678522059503130395357400313921048526937500176695996681757298837875738948036815049177085590658036443747556332192294859692755630991480425364494609012926730963930533906902026991951136456045565874036267834719169116055041703655508578532689018461299839219742059576394307142478003487080748392583481952904077104476437295724936920297738784615297642425143998377334940094473356718273216469085435507895402004061696345401159376642550737942957839179601625665595010080153901107707430032864360193802021649892323770264331352828046930207172505230290421346928397366922799466901027650921271914923698464349911693840080875854953540488433171623000901737987318974266983632040721862237013438764233905718566063017533256215133237975793015567486053703142445756869000775698722269022825026587392622222525702716852445744592894875117806558914920324530555189252250332414486181606497696247422393823003366272852603136365229803593993877988421987230471855504833818169746420937645074270055986368827180821450600207818386919868777810716043511399768935838986369295309056788880924096669459167030822427467806016399148084157868970653879117864209953385493840914990241033204477507934827664974577238854838072229001366431277448119374115238308969272373208756432123592027740728655641437484366328841347916085577055432797121781589948235432371135927191207822127298734148035127186823227464152230499943257294796314230527439841335075435686986217144624387052645085174797612242326122309646008085699372216887008157641339627403238874865741450486079531832624998559696152014548045196855688805113071053246225597683913204497292456645348670577256949884441113070254881736191653244869329557279605960291162458984489472698978362785042511365880476471693480097051164290691691879240379659748242827542867243801451019965019172223079686806100477275177103140758504439443099213994327994684421736930850484833845248593711163866833678025556431520537224213305058661233733023397359982568387836657170966316814129374442453238301007758494786989246172948017584490515930029841003435758628439728059372455078497139346224119696790092510678550533250008287458171048833317503696147443266648200374153782117230198543126166872270931229109738241907159451324703593195186580749821434811426235996660609039954150169275689890683195718202228266407933073039260918773222803503973385619259349705109113737138699071959918073254973253972107230243182797774533758527183071392409279278594234574154689555318349914999094064535898219417716371723039921394724505934248344532471705469203010842323798704720570389775929395627918852594853607144923445828886734006078178455862098340612257158091852480831843951228421538035118573553131424939545377087854220367575069773897735854069999921796885812572084881936604842890590259386912594221517858449508644406109194389367640420796759058343590834160775200658233047254673046135458415706662236316065250578584656665699488524910064566127725751827121531661376488863041609706657163124484566646414022215977497682040936235820295560353722580142933187973029829150199385461792661241233781813948336825728419100358819900555970093188901832013048858237384713184417845638182216757382947583940642903786741018423036614186977399578868043258064136266630450922481549295576636083739670860562648475610167577731161358898919075795914347303362312328600101835817538724939044305674451181019182043005093829158145112137288506167227311805350722832698081912887867562025283567183223408493228798752995492625699137564096367416717135706353536839704430153989933603559032237495987902834764708683261866439830975311135732283810494689226313191599158329366895097651904279695977931664551243987597277977510502437128962977344152742893509755211484939527690357578644248049529622319386014405427944389578619867861136660739666052109048154651337521392478862608440169890016210554192785910777566684743152844809160333437936276737750410122382387085862684372372999680436028741273095174381465572129711411805168447009758139879275964084556867761458709856656504035621357150068592055625254983837939173481111046724777183218732387637111226530137989304445860140442118137846741969626532433572264896527430414271933546276671708827751469121770850015824749527977883439665911363554742615933374658643229899969557404464683049052522699515765433207371798479485315020100944430249599131583318113774298920038865349551372878816718506524383534516264685764092692114964437325950185102351473156763214155869665809029921562579248831719477533676384886258761079285946348579391028305183634354993637891717101282287594262576161009974639387825341392209119726344014485443157206964834776263309950047712862217214171384468958571087279031354293941151694230069106396409206908907617677440640120578316225269057893807223635540105427299756980611222912607257842477466641727184638361284646032008507227718762602234518985780154228313864098785089239165257942643871785275679808646850168168246126066730696798219268273817799419157523948243846829769010459880324174803580538611980586617845983726708252151454540275805134536978661690843133028341279128962352999226622317545560930237350808826913679225455381472850999356884608095283367788024378572723677016126532482475062028862804818408989412081763806226025697054848941484161772728320248162533288671158567973312336816775588635567148707227516696356793683934071146029227977996771945140720531992401374540360833791987874711811964007872682958647471783188915502374020367674775073438549775628632309359856799900387878976899895396409076924860063223116561318928105285611778272026147273812308469543325931029928547960356376090155504057225101904165334634825555214408135137476162746403263441440660186402230823269953370368164905731248483508402984021557100977787200664342512796239204480222391202819412790840610577868751192110327705435043000669046714182744151354704791980030981212863080280646374377170542108697154040875557022013888306478016421437577347316918779298122072366626840378633164494276732942350528053450063215939708123419985714903830141958748803495987697268336799899033254519566081650084939997780868116965498247638580547771849953461539532989191999809124091925559660632510362062275592317391084200298149539959436191469349444263606922538717867839208561303292940048873412987770278755477631178689163781640972087037637435833761871563474282343482270220545278545864961554006963896558165378844515353737795221892580416972887726036225437278405661384276364348191870788231857127024453877219311394406362973962827302864550537739044934699276453952934985542651601216211059381467536759417466407692906303703036214129390372540971848212566766782772177879049510775206801943472198640640491200993289895940152665078555537834402243222122715518790374991211144141394147711170378234643544685766862478745902108642491700839944518796352087341333938458953778200924447196692348087067661461875373611558508633182473490441757016952622037769835079999907753913220780045550628775627174693603142568313858913686341612804565512932497893637022328345252854591232490323572144104314763798861952050698921429029340767528366181402240666924774354307107827159894895577091360504230788693519405647336876530888920706402761398269966306318011106185812824950821019402862325390894384577478897391186597001049312770341061168868285915061197929303658998633181101955346511251157750711798787465510348470118486332460194957600257677960403505446761846177376874765079847598653902555529434985499872689238455178059884831843795558554268543272763276749355679193491276652611388761012533714721118561577603235158623503198247883228471579375020633720459125381132888701082005009508569159689867510144711671967909017531378801906194433218262878527140980763072215239601911457912388060838535966454225036336953901004191097976688578129067652206717663909028160750810372894480255494125901938490224009224894774461256233429679002082801436088433694761789382664921563518241621612331448943914071090753902926207399192631404392524055984005834300593953573250122344968298256049868302910964882606894632367916639394450217859970775346117607968500426826534180492068874834888327992535989964632860678466912452231865507774823207733658474231740865875927637275584200793462654068204990939332162524002081223391509275087353702123289386337926572910620220025375071725368195850190410030405475003205186054715423488068010931318443708093033566124555408985762687835681389578022281006036854109295850728272431226514962062224554748096832557386125097647895196082292562546064232355954880227619216713183761072718409749931802491950523593375209563953894746893141148815306155970693769164344747449873262264039593029896193601530014977302348231594586547308038816304707154105415507390481254177065399500523618149519422601087887436621178619834498788225218098208383723460157945725598483202079932230000097162717063582432824813559827433813743699223807096823718426377003991880806777939223108576470813888154456061719152413522039411269038521773907972809061144675250952076801897012043497989160157602157615127428756313414778520253704443283491070788498567603616925683969342805300914395064736821267729805886603292540399033039561055623987001219437647229945315364304161460380241423036688737719522692477319921519164247246032296916240634877863668676649294498954276920372218584537443485434879843694266506655096487258894648081151397552280221992281978888820022729969950189528482970029346232525899933590673696386711820308360347876866252337620302058283716342652224510226715709006447956101927083597134398448158791596371835613524297283833219310695077027629977188127517655369265508630305145260052174266442306061048429758095661606595100349380083973268811259011096636056398690472322022713057180476289021064496167566922840420024056943426897612291609479588884869394209179671393750723413150922833762324121385811940770537895193374348570361003109840966614597525246633307945300994345944200879767301004140922101468973407266563879935724995381660544385230968249092380897623189241600011268487128241721280779330707077419603358019326380294006189392984306268339432659645646957564478903961650186810613105384167950820421230913881040176484193451567757702291514460818131179108079404354141986549687817472546485292283978864626825735815066779318006741289039393389779677786058264703994844586409837290001638522900290431301196179471889973855834681956853443873747065671723463225906236946656919421791434884303868075576453817095944661557304595911891494218015523381884817036621251540553691621797602342657441565409030187438298162795380136899852153214532222373314847769700816101718706663481581581649789011935529041050176977681544204588014750776053825009876518902667352906157935043984488405186047057389527849640428787896128260140367104799880411334433509572097608953943938424828780341223721524372512009950593770068549654774436499742116983043948166278536809572416884186312147402274822769108382993740493915437558553654393079318750118064728956510222129523258440609837146901253048768825737229846380145851432328410634027379238864817848593560140721944591731299808510967572830501243293442322912923316608723054256006273077320470424496487937734380308337959591182088750018477635991334460313680478676848566222884397739623029892634297273290544751767950319015302429132736924034985592189364221757536154929340854255531213654268405965406046482576387490828870428626664951305890260243699473000893680008667784872693948276222230840091658603678069435313009506111266556321393886013800672192737338271227453897471530260909932751868379245968552907087974685473276801577203976739287648415169829420758594506182434110172644298311772061705459565266095374203607885624207498758723973375906035083789691426910041778656959786340714612518751384274466725305738310411624993509398789526007676743464824511177736811610267756011644315134234244939621568748155572536811489046110264723568716858520735154588079249101049203589340556644189496307280691223086953895149009215530437680139460815814249550855581561346524217152212430314254367232455599413382458087225600499954996633419622536872541810069459549617790763856462186285856003418439293721045448924181674723724904707004046243311765328147333750981963245762756522193096326844917751070943056241687490904710932576129138519558987346342382773467820956245157428023103725594045601892444489515661777967275093513861361690826065150591944804345722960925875373248734582594915698207486794345300563429018788770138038441631458174751012195070155554476821683016833046851682934948669511648440066151510379735358136203887235100755531335261567882468107496034352772257008087071058634268113191778500683363786039728313525087496048656654803370199199227811733874872079403025138208796821402185564472507939328511873568940630727966320644778235323183592251005061625939539025672887168572196431896186974864297313416264829569523152919273691792593555251439608969475729140796671804099036670543058325945350545157504732017450047888042329492021577686197176131023969828138669371375688490368253319318612640309503995927649912334957404746066574497189173127857687831343571237217981808429370798624162257067448814162548505706057663859751199810532903492341484142368469388442564399175776270446821691793411139254310598866776087589647492822442018401832983109666146161967481440580004798787571034784995350945341462644289206041349860887507921853168038435975997810255475672277064731164119250821656986052952191532446710781048648697860387705142642961144378289562732131761981144837694467966664274067556425504776983659033664461211609590903036242623350824687041229494422823706349081927013268290550670970780810875904531672570438522421846033704451933731217279295480940438498872818243736086923104326367956738693846830378741039611173686999902307526352057999143933788555966372102035086915337119009240749018833269233401244753647234178476870680056242585512269570414396386314397267982098670486243125408258856510755481009195060894640184799237076505397720114694604800696983803686958596702420352194324376085747502178432361555662472996540064472826219054540194397116139281972315717630575758029182658487170222598510587016276845930386576074718550385819675830661047417227408858358574298401316959794166428174765944605688651382820962430588816532212565899772446409696190475595227722882689137005520996691051712864639039674191634421429379746563927807188195942348309185577320510870341640569712638433586399595526549916293359765686101133946220745342807728926441811241492020528424939183728445435345144741612787002798354476439369170481055335689737731948159262460643981613143338874216373069085140449779643984410649975583624021518503114838315293019392762508985292151606693135600147131314487679760071756986110854465251667661732848654923476396589700188920136854319314095624420439194232964085934401354232936934117531467319391194492394755634271976325363293279746460008667205933601215649772893239746539663854354284718107118833046917473589656582672621793133801421137149726703842128726862538367417087653983162048777122910912194723471521546291197193697651209122013144570600781231518205370794002231056677870769796548137368903997048266300706749079253167725200506921091294558729337207802064246321638669345979354227731647403471708430610128861961771942789744635862914499286708464592092928321666271052596894430288499434133216286365813891760878623801912351053501004679072065024844718318466854733183318156222320298085784183247436052349010715274142991351334059716943137178032552469752878326714709426746945489991752286432076354625680884969025158556180714172091720780162257031511414855439052725843621858768913136616672541131033962553760150401670880823221747610827760021157074498070689537164613843226401680819337032095044092659515153868016916906409063531590793535736921296395426916823952962604977696763652396488915318470139844058651235370207651369843400777871916446465068474768801377106381265409183403487405205540218100981906616948631398100626975200848254209226410685485324836417491831353057398633880579791693892529502140684940094195448363795237869937726487676700531741513966050960108877986508445144394265243528163896365422423031934845951444671490180735920122413146418006008562710989788487527242403733142944774059203757252841667686195736877717707142275537113915394171400373288554588417786178574691797873013997686237301241623379462241549531490696639995657789791103167222479275388773071968904223897511178704955573593134154044085082392565066856304010817066038890221077971508182046034820905542232745098356468070896034152659908476909749885037277390650012881634717210674453588287920990650377467929836382588337391837370423941579694105776946456759103062527208828266941738455418052318961888487393686235604985064998578012849191394926947952449302656730839786774429278810626057469087073616249310044239352414124750674951700738694721952462971148653660179405750074410090277424511129326864305504296578405999951497549670969290608123945927524898984748651037168796067706978908795204073723799191211385081798984766453373634916791818528444801645183155653988129566487963562308999086329004054801014875731214825457826834291226087972461738379457065535108228978959951096853271927538897876421144219697261316325984659443322777539437421089811661699965308218476724039754303504957370689609892542420073566411159026027517937033484689641638609841534204221477170365983644775647854063439715855795059797123139659068263361357356800031896615066937512261246058031921894042390262842883748704512173807252131623837991634336564641125814119914131174105155873953627444679906154276908944120243236730863949164052631393515814945863847080652044802157998693085223019900709495873149099226749145580040846724995554408909215207826635373157769768682293255008630515003234128655822403370349860770911716724375464210536178208984039587803981424016213899261622962802339410271759169768933866346073669440502007432531471386486633695126081410421995167998790188532711243860387774027428599066368059856184903063161686154126962791881367193285616056640831773682359371304638072221746926561518673965427075000251488202426751589248522900915835146372952145197365689916044207431790802501005491735857656961301224625636910851188638211718659978068483952968994053089438573519973796839503741627264450868796281064727394212163557544999079289440004149629617572231561511738994631918879351424499683650338000325961088275111785211484062841579004517820068560742248947558090038701064139956694868039591189318272187284790818042911027424925275219650651400009082361796407472091841321155096598133246273386987387686547148721048746014260955971044011496621537803335149356270407957303319664574725429103781997206330749272548068665141815404228868986803242639878723225956941912601982884344709380535559600746617003970872697312781455027701458337849409622974525701874022669329614676786637257466405840589306832755103160748266557787620631232292318909596480452647427217803601015343127514188488008287918963347474880602368404335477187645754978555052207636939337042661227803427987927583958046458957803308567074612332945783235668206405912358624981274510592223365980669207298016618724024681730417358065290858404953604223895265594772399170345721507599694318720813651334959163965990339158218473833858364417343489344151105056723039966474247539369260222763919868853183661684806946557189054142473674904367822366042283964333759857312664089665789464050998854633685264503453124942284824865358366245633291936816922136975329253387176850766029692017881201570737093244502819046232617046542177344926337999560744206642909848785570366963548325698608093659982778003335450238381772092231889503517651474921079224617904355518438864937628494019138335595824584731343232757174604104534890168781490770575561299880867168844512373305859323489412791045819974178826543534885341552540337234097912936818101395173707819710949508564053559895551636974073864161473352495699763933768749704862618567993209820290141677854348804573233969509862745835170524975328451224408045275447238393142163336581326089557095848808549154178886645284268905663855789592247571548639562768563609279191619305329070131709306337120725131775174262313753211708314841458155042460520853672454849875244109781809309578901448861006406331703312306656388282016935891669282527278423984585589844915042308956325058877470365041947028419294321348544668659469155648980596806130387123143917335127211170882445353133872565733462579403930466444430197434692374111242179074503841181311313550917995719799935153831575429874895161003219968019302616501393763313281085972211756954006852181900747800447664300477587152451631959968277424838998944828886210735968338185076030398710588265177375999992392730432551456680012431704775656217724099675560861155123910908486766540261096436956284531064838961340529030980383049239148260742699890181332215004138990692036571747044707234633578056077280120022639500324298747088713536127595383550429480689593211364293274714784323747798793126211956954523917250905794264768492261695837214483465461396922981951060976496018611708902136989757051954290812637718662854890295407765489663557505890633761414754024094975946709093552650735700424893685242835086839283175909943667782070859821354036895963957737224078132164695309238672942043893363945999643285316982235321617084876947603553970763868017793309850423371990930098520493714958085627719825103187021064011292130815433318823852390594224804301424390377909544703378684793645773955133811082399452220897223184193716420606418663178331655152505787953375593975355639803690594401820167997700192209128273373896002242164704271861762160056550529852175473607103145020009751228391440207189934621332307584114685919491192940521281103719076433243654497102747340921828087958286515441719751240256178925566553203770626990462675487419368023753710445869092033738468099532576270363341642916118505744326609770833190085353163103587944272094200559952954327489819362832938533316268346960774387924439744304711783497153700750617193768543733974039848623922669389472452626930600842897492625732950611781422530614125474863164774994054950902568921599278044148616985272614507882202398095053873401499852120264150477363156646370468647159173196671804716815037234390379692729401686088753926563714524558743994473192195561121335822537130058781936301508089650973195289057506151135271073440656320716529543262350502939880077726869050065338547354327914925705789085501710875761560057729953363449538032097823992868714817347689170193090765720730502531511347087078408914603310667005070202228687429823756243349175821097741072687182806170831415206528701519734760346738969460900805749330953893218753531372100156947200498656180721323280690371255406834193749168170967803958548845792438820378862849967754116103848441403027659032004025412739845926338406371281490090582515821074205167765586333439668760371679692870829039568800578517059927397103541094211518731410671864526923227128155193732949236937673135460186195444270157914979620303251481340249716421094087637004434479657499459749567693679839246380104445905514368740025471077879223092859565399624598185113178766563172849107538238004702568723461748565919321126218314427904084782548103825688218831300632888130923794447300554736045499071491587962782289931025826504992432750522373585005606472903227080618164955549728148236983815873142682859600309632339128981463945123841678022300675449870400596982246362328815605954551377842372782569726429223462309502122118985370614178251933159783347230274579821780823506033703367773432987048926737278540411246980152903124459747150528319310449258282030874494615270812029285230612181662049164861183242264131760299482830515870549359472857417430830369448828290720617156284868979888774672972586831143831449710405418231973849217621896278954456823875386809675729786435902278536705928058699628522357085323991186347491178823376454039157226037525717008797886616418570751034223943681343839303231531099190632962060348089454540493400778122756519629149839442665827245306058363814320552384997858087424932004085782714055304185546508605343670662803340217173314438761795044923731060555282128424337878071997370171344039316685224815759528324885651795574505958625001102525011709229997284884483762072347767587719757825628709459846829645638458977742120888005947475194011248020030950124756303333280315458675306859146265723718047411257284806468229002144275357551007598915503836444711726015428463280349561749219816811101029740954278930017807512923636876938303567013152590070304140692676914510216922240931452524402883063345095147840289246889417972081457310097465862940516696191054902737699716183944785859361670596631359792702619362766424983658241837210767641733048638539822684240830493450191411798996398893981415394569569146171213931313101426453255869568378645080088531688648061054457736036740990464996614199861383904705720121825322791235907248548956414384275156188015198284553025676372553006489707401742998734096967847206312730607158616420146277558781217412419666445022634930686402853177519088959147262183770237847275687611218725170906786912114973878680705766411559030579293118661296314796446636680206555782914019718208781669083967700131279995112798713207889280316907032467518407189694163899104382571148645121703191270827877050452617417478993025675973498270670426777145958209241944630501353848815518357383844511933623029287893839755293333062860664743639394534436045628134549664463497419651470256007358856805935612141998728281989037236635934747875889747633580434571534050791189859203093593050009075326594783238524675123684339488357863321479595027699548061777837902400829338717746430883488798490340187666094782120726472940820293466711458736756718727436959590935011959394948833709822891279987308885316702133870571629571121535579458524475623996419921991537474207500096832673207779118186447574309248833437317794294250500663097809642524948437310190785014779430634224897251966557495381906812505026880848595532016753015394337866271281068325611046650021707389357006728634083109285491711526992339711459976687825661405501351872788426059486785853608982383219546725793553246660404919915747709967540626349104104379790001977331783120533329790790090116235850127286090249262584342247022037728992312441955722171886467826461993275370664587331944836339318484249445594581422641151152102018678810279935582272421374590105837625884449458339219623945389140163252013823178912521376601610017714616557614301253533003191623870596797365273055127707547683153352523597372349244969054257725959496395917292391370033698388225617499162761756753347050884618364769056751063588529971622094509249481164032856802283023861777613490419903336784941253054917597967739038864317656798697661262010513908381801685354922698268973502424357163567213720203580142243487271923489609411955270880262518707723801461177312644641896406005970372719452465839920087952421486378594493506711336661702080197337908394017244601326295858243883814311775590035965341683403366678461023477366262739489806644247946290710890307463560955277784952615265820287672416036315914886810683287824534463773449311987463447901647455632714556372154276883493731551269098658393199109198671765072286722904301253754564156135016009888255484568653820681640293951780743498643142403659115552702063982638658846417944198129868133621527807829398187780098752979086725771036659016522969599357180837000192164020938976906474542275676763689195920688564656351907131802903000601725564654850065787422372642366897927384419182385973021744138901076650685010288352070527301725473355097270268315827258980643291589787354851090170361359408997256247809282470449666525927677800604940829237224197214301856290804793833350817362533197315158924840082856955175941275912558382963633879538288316376499243838892224837609951410585052661070734954567681410946375163377029486886560555712716159540554903751988585517738934586747233643679053994593165651926485160026374741712644893908464394795527806080201613814119569719356359868808948659126176934040541717962221766230430703608535086212709666370953161563289699518081734490133146879819894164431950330231810582820710652787034779450510997856552162252913876732729200414482693043654821160424428713482687547649166128581365073764161858866089327548157260759185564015900551261899627880061841841505985494960567682163991324139423270950299733672248391614780059189749653840485557222064872048268734954884433232789700202056951807052403922841895373757661541934178911070764569265083575841161702964732707742463007685244035017785607558758800757382058632166983120882737823027550419679277503630012540054266405311571199762278887137254634715610193400086373381265872455144917249614901697762089604607656586576291449462899186739089305804350386806849957923207664194222971848906257140081194689588311590552171035035262016859518611754179774450397157504034753195636871597728932857452198968273974661642779869062345937041557331049445556525607318548074312713040788040036441173773494533975316337647742254582525838022178436740736272129647325225580961554525382703424108395929007393735312757117901786999301032646489209857463178251039676174332417650993893877107661106197015420352663378252275036117939872854074341127839934870682168339713628125251616448666106389916099041863092799803286047849970789530071132201554127112648586523956774375554182036288458382216469860003371453099380694744946982128257423326061083484935813941677024233747425297409016815069589227947417636811159602129505817542117688036594149920911466321292934066106087271424393448059600455653266624322892346500645572048654358182674351877243260234395762596966552200645033805857435553531934477269971285010044068873550284438574648308519956576416161243083143340282584486049812208889983156946498355291813685003818598189401469330526466492118563204298348010025459115253957240718908430618773766200808552325704670461096385817275489585986621925314774122186262591508105720069496846847547488209434242120729677526069122216457336649870008329209163589416802365183136957411698748796907118018246836647025289606512211429078122635763233445231127154903976296946089086619174585850064200365808989925559355163118465291359595731977391768509533163255580137880008002210308983722634293150041489048970969439513667913181724826456780778776733423263935960940222493958519031026426011954019510439815408099032301125302389039336138840741555013139287902365085200325777826404762129333754909970248505575484721477684661243988530134977805097786589688433027409741582448674063520294563666369531234658800531406548495306344696961173564239804415754575921768023103269471654919709065884293839687189596515156327354148057235656202619852623063898536936120334892319814754506889240299285355357201844152960041422157273004269209309662192130857163793748655798296126785679565423146048085928908327407375276568494175675643552251072984475796652458610297161303368694277415253817352079727454398781670580681365707329618040334384303948849246846841509453194488310503474465205977333559747021363917994007852904373421158317666002251631762323529433868790444751791108027368707648865806493606370875457487766780961142369079444109368964222882199489582584471868840147918865277638298070494108387832586472354902931181600947098093134920050185443674020841025009947154896567745193126199768824825490537673329319854299996191594144277986039589969121075065730622581880217358513529139173136970549513494124530703863477068177039268953513001195920603030434388647463374001870528314890805439278471854971676040635817320335568102954937243470665867299819877449048451885917810116699394045533699087344327184433786873161005990157796660439042206954698334558299767170077466772654179824539001376876768054015526106944039826529906898152846767716302714648314927768593468746807278300767706218099031160661520609219988905339093781925358367811378325355414219051239707680260995517393779215435614346957099268787841368921289794723067748448126014169653262175826513263177076105763931672210881855068328145798293690871515586506695824860557920888872347791001310148354348517906759377588337398932239855795314834140914716613451137919651209981236996514434943695937221021465104924612469148769237893865388938150591979289135191817123261019292536329612252380758333182313174866938420583598895852921262647819268635079602761837277687428538133700158644635208837870626618589394721618797497842187220326695082582342877554318986923512182157207680982110712688339484157085052628334901009007292460499664510723818348259142219338764483045297380441295918583134726584893430239832690973839855305794703541579092602394558223990477392199610019846637465055627092404546815820942097996404379464605612693281370082430493112237589371194445468789872547959321946178729224708760807433478490335989110607973915113265894391490647143226387900152386598499875687558626521005103660356630439584177463911455701282841715439485300158771810835041874693120093066957010375777842038085047494691915032661147191410871896237568518109027855328738546350205203793143154160907584143759634240861240376069946904752666474550942089695161649852420745926855458171402087403367388539513632852342626457924866847429364680388179447557939204624340694119710079560084898170233289062142972986153108197539485077751356449648237511023078856674488599443696404459726264846319959926978734552243935915917948317633697490343079754869481778408033239918504885100286011928368145527231704858284017783503645031656373573717422352776235268384716048693118665705924224552609609520160914293540851294942665678635408646116060603057356249141637516748677398296185846627610929555995004221338170235543732420652212789273168832108093824645314116541220325950460014608625936935617750133702642643915481758126282970404302335161932781793649095576196702882585727779580142401764914171219650044582005423778845757490906597037994348930951675936381178419576104233877311768321719662189412154970917942051219583706188074370012582767051472022331663603224541389874174433909731484785381831634375248466548597126445115039715578399175409767541159042832703713106176871628646675575752371405026074779526493820806527750907442684286301660108393969194682601713393467562718283609546524917541460319029013562864641618376367810959670183302494459602770354323275156575439863955610122411443224152060387292645193113723691660114918992336521784459359006008054278034161938675234868010366244543371792898818042079510329519461014452450252681145484861598875708190239708423769144167177100122060590104000065741950035153633080253086151236739184149359101108877084609792791369628129336257209976657269706430702528513884030975662292431189371723464686186918696746819294187861435847364798399338144531492555217920627930829633752991437695672919616130598642280005867180461865113845432436708526128239272065412164500215887066040560796278321765448045852096471027430538405305591217655971483391260775457744980194387174541152486072159895762397694420872236377513736820607261991970951149980131969361558320587035844354820846427651827125863751759720864853029189017162241130677985473740586009343060646802998162173722353802437698035388350269545160398694041396987737657506590898612987480365917424950622729365822242578806091822244255863523830373769699558635693463312464456621857331468088083650671161426006739692884247286109305625264713398374828843242400114984006643772156640976904370947410411690473204655453979490225826970989325013720103455315167514975957475791403086770618697552844984623478634216996383103515236353252751510092823509790587174021360400491132207363990906876979406533770189400736755344720657407483849899953286929927693822900049066546029578866431045102753234323991385769349800703152269917838372344429968439368087183130442428984520969975925352985018899138607538405852473558157299834856516841100419828139600599054719814910693380813952504209515065134526674637559610814389468712912166556431186839637373413103723247552480401967834052333391882822249250721706322179332510957385353425059680513542272582170693266839365186319504156187848366912210044222676187389654805313653512390087707612822658254525633905184547433006369921114871534886907428202558139117275932600297752512894168654703957446332503708825634803083907351073455333603841101021120870492975565555769702940075526577131354013158879444257422511768654919604918060539298757691478701904596699254364991573469780412862857913217852262784332386787410544014129971445375608727075697227039499867415089526669626490950958861021591868854867806064321085903882807051130726304408650310108215552751559274087710347961785851201269367674462386442262909633828663776604550329173587877263151185842385609715040783107243857332329988868150294115022163244772338379301807123513157111604836209764155157225892461402706437997633399459290182103617362324570204934406266391485539170347194954912204951821648327192995900591382778458268808795784949515283899595137839511475522863917499995109547104572762129033510571861801805428371582515770341197286472267341336542207664182107825530236960808847191875485189906477260504893610598034860256048966996534944608422602712563423567269751452223892054612616792119550459507388049002559553489195703893443906513331171077331429659150370019464059456907962068476954650346618578782217696229226279863660411359029995353744664186908421126477735307322767199738448763065507402345610805070163773687229908264436378463165274193879134711215304781105665677358097108795628061334219590275533303522915943282187180815115571444190535546600247715879743820509390997416673214154533057395612861756690215326619932185070289487011033569395507900959543873024807039406467964830030719820412543738263645326463480300113803138609550953269046460033589009971052650881795505360130420156269043039171140338870445738549362189802970852982329889757926810200504069607072461126647695012781088296095161378267248385337091301524012679974687303168280446753879134150303583620669243681422420187219665383299211334089375871546244420775334447530160453977973979271267306744018585856095069937450006633480245851856050304510568603606956120562518046640241778570845648029912725148911085067756701835529962519640216194622072894035207728307848971304442161284612066969412074461420492364267635983703190869182098142970171009421057681845052999919402280945822924104716580091380093167491363231563712448646872954551025174394893761147466536864968258060449592427208569416037781140109567158641599019961725198441670230257559671824311990394226217074243038355413548828270384578425930438048285812635322854907199940815081114645639068800334536789494501049297419259455816648193854778856412009060196568411368980932500344673622654255996743925629990263239851988477381720046288007856236711572916371184344660527738070252690588834664147265335948336737719178101032794493719594776496337023673931232159445913394450482981161804914816684578991582539298088973307016604408384810826424731863445082759137428996470264509561641070715227528423888493826036051220894439158231958938953608639747830794271999584741082072718198413828535944878148794889944951015531563937339030798086658702574388278905019704515754740402335839034634141074006128118789336753705828836147212846025402209637638332277590259086000321270860103108921853433144294215742507643541100933087780126670957400679029984059985323806932853392174360839459459131915524070635984341301350674273221966212156196828198713334667439069743341832627858373043257409179342191912316981848780654857271200210024699074553445573733674879503420607783191792120828515707883868860104956459361467608787255342707592063796527741251695499059076766388923369330176558768343897478676913236563734609174052290170940353948657705889909454373924023662798601247651138810997129531682583574576183562805702507841842747913278107273740087699483239465755657633850804590518388709486094636779108940067767197454797610016914973959346029434959355668737685488450050341041638214178379585294652577542047133223051741431559978056306876309783069490363718172174049343665551682621849144191343773803156918218563204579076546751445120778393505657760032818546488363150349320076688412051459549421516255303926010000061481051470559310349973246827345566429757135414021878255472641358979098326344837320138656776455113416180390533056462172246666069536223215405369959605119427465112800579918593954172533403451364084416819041001534727060608718376812944622105177164586349495260057714549347921766312528839415406564453812212180206250841172629836107047325574253528962806409537444149260464614863534286706141438948953076537674336508276077819939074408805612831826645770260329323625758862599490755445060804214969249249762241975438347771131873494658133810229059293012756519621653293288735662394683587204841902208984444768930628996931407861933386063085463758946967519035420241502002758854706970983539169960805097112665407173460292907470227326487771541689700109621083848973653811082096965795379568626775345538756879587802995668455347125376138758869394253610234783760859632288243758667007331539530124268186626780975198617597618070493611655019152283977653025490128771503754745542623784302624294114564080888231312175491928992644230817546102704515189317160177095865841994954243046516683986883380912735598114159775145770412153022173920762431611050640487087825983478622417691748138361540623259143235213440369573033950099054968778105635052314027587711644601574712843469662134410626253660446802519721404510047450854592632088859019690252596192029574532961363010318802843973988259044220517170199337115592534726583700089201291381158592687244023818712677292712347469647452172766804626640547672107904532566279340875570727561477607205166093912911284238116300520684011191484169592335981953517142782808326609250756547622415308118378575133379839634887407585564697907439184585564189212758220798370080764085744018779818203103191061720962572083688506350577614720774383574939588719744570342521346515578343776222461902049986452708288553500482252696099715805176298765699239415032894262597479658808471288181457256357944209226989698034254857114466431207686983806220324976957188873437140740235287306475420203524399197391534291588708826654663511945740747846777034951353298993596023549024150181197736187563496722920848193750760674306438588984634284823148679829638226246233110762131330384884739336634656470155447692080753718983463612448109144415413526958709279872491860900331352214426466394773673664239730561923249151839111350232628243977880696398570900078401974562874003301283523765432458401403551772380457448095623548951110055801503048999718356711486533259796147613036040443677511064951532492338546997821967044658369287390915407897638010703925387380129059819062217066998079889665927248515462500137382664250908210353070818520680446014599711839482837212933878447400893676555992424325073884193065180086295310872947546041900355572331753432174301883039606853936788719420705731369670490800037822143807743242292146944574759822751933128301924215587446034101066536199411952716479347078942335011710894856744864021273118437472687242010727805143711462540963261198878853729681555318427038995419640926706706207401868716395974906632615877188176595067580695460217822269096563792645470649001167182631774876603573562672412747369166936744474869508643318445280930513576413768837841851073831119962338537210350898817720968320509894595338610882990893643702549429600163383365074749317403160971091882682031705961281731562873716013963748768308601147194810313443198726827166583717201356327189321314622702531146777584732230138438284188490366831205995879998938301843416990475742626246024794164914135531886439448174883191509650953834059118733245268578174643868095940412475033456555432124039071979649604537703502586597865022952747547982688919979272880159840377615473859779295013521151924963338597257729559942590186838460335649891328097304190728270110472172152242583633102535083228788677792601143408304745202239761842868642238573759526027859945529937273728506744345031869267823777876538737151142524589562574738828786655700115633757555194379066270546024418077553124882545287829913628857454015781843901476719982797609967594323507335754239151401055537521403349710387738498199786159540002889802055466782279956929423984488197802747721041222264562378037421372051085491530985842851763111053866863347445503408269129053498451960906308423807013176655303327659037087193208830418588433964722649175745416302767299443243015037936836576849895560179169686420685530196364996759705864792404487939957681448057402339108332829879436773881155865792395138850175700755902575735497469283272595686706976011077156689985158321271034381160147522031984305749858012271725772263527501675907557747001154631976328352162671408625685894495838487598440352146807063324061213234671113724199089182241380181521418678196024412286957346077915992704857591086476758494785970050385965791902612239632285258645716380529620461980614051387366163380658060081010284361247096432768370540719466923110622189788767121508641330568031844588887894832139885013936153098049393443968724675068453990430601082730830351754555828370388776726409571662826428507695673627791628296771302992824057367907888545559702987991009614200059984930834277190201950651692340984514620899560166394903081297037219835677779951509452251316479117362842673987293348363373242208915788603680001113617338473604447749521292918563436462354211027016860864454875948166295451167884636080270363689043143027060916869514650671215968537495243775587192341815464054963318089394417890773998456471700872992827374465419499006473396929647640754460658967801746165959278069024567213736283965693809167536357991278216306614590145919447482427240314174041167224128257352190849027175591649507927057882286258701825987072611384996630037824534269122737283509039657587483641739732008833072866891020617910124480855157187278157859296266517729297226953760988935746936686944074034899881807168930626316808584171803997663263825368191567112848320407173376912551747441233045294061406350491505483822702033016410002219273659181930298197348886750002914548707633406336761299508138976107980121584775329087703700123823836693384479471470603021135216378764489167089088021870387222320675102786889445085344242456943285442228345451120128938716296432113551056945514894070161297512119854613015520473428090402571995813585323570816206962190204336562716697877094742156690368155537652322483179196750095399210541769201547423789389839204408897812191336643971233262640110594175779707267737210984487839114908206766409896363642626517873982297581086048251195258253503284916075679068854336680862078874606225303494563058383395636052830841616211101451296939548452059125721988053876268838060689922378111471777916676619770138278003468365366522172494148265637274056773913005342391456849181066112048416643784458843662058115132832742804338208182769340685851213216316657977762565270427705069519002660343011423148859074598432670185867482184152058487081850447141445331939552056387737809024183132216491740192584932841906192035245046104176703719666025955942307236235737459967231626812963180860278363052529731665783388866534937541609170785796289294407095282276940723087163964557951494453871368205136588287673988027716682017197077438492720856252184014320799673326787711767174862636550125622956665768811690038094855753454271364368171993714460437747054255849477564811914662419321728292743313706635299021624996540693405307740932713047491957889546773040864909371778207151870411020697209069791311206847807459762741347455075155146095766115929085332369700611163348997202539830611782098885499499958173508506048593420560217387285463145308298653370588481908016029423171044902535055811104152071779120840984457614080650402749322784354083310513744876221103618417177416093461793770847759194972296748274558413795710514508108968951905329920491467459487100233282335781443248419877884759429504371450932893661764363104323070897308279196546366814908374885439934934538616691091627513987370970447643223946692693768325244007808599663259072298977641009745015161706864242249111361993570192217626736835792828808198803169554655259120432693455035859957328670876514385916309594825967196068967947493930779465437201366406892250323439857405188978518225938023452227979997073740721925849496417109624927749790037755427133900623046584269782564701937512921048370345299962131670817346593532534029342183858497269346874675093347928135007856808194239340873720932977011874822889942117008619204344754032528879976844004238879393977610256373359490162085916809000890929762253574315079530701821153521074152794701699611855133429332432140023157055144403800726921032282732552193048816224634175884003058477163411114191512317838335741992884903588143945001311473819995683053686484568272882466682635611252588717122422668395633661820178452342870399394516728714725105507537478546838447503652976655960280856893828366496210916402522486061975227080644565412845400063853416218734980673119484287993424775985882530898631535149632768886705132762832264186786947048264299787552757251256022636900013114524368523364969315552595662794875662770972140648757767559223517036571277650045071272130699646625635583373916338017666675542222373646397298890726587604380103074010548645717280968373314417327317397114831726824128949803305298289356163016543127619519177726036135290213942856820532886515562998615363033213306935396820939027317660688170383887859650420811476342273391686325348640944099251875275766428389261248251316868284272961050900066951325804727472424837942489974590681030887706243108854937592346107119108589901982103521541815911118146603677717899206970559078974771849358960291453505942711351368064466625883803665076993737199524027225169821319231649630825409033612377005716476919495603514564971502672579450217649259158854162822070017457985089373011667742946816147435318665327101955838392668237901013537536545073749526839592596461813456368310957299785214429732650720462213063674952549287184161776100963888434319522775792297904337121106102407082484690233414473453218361849478155727834717361113955648344500692748352332673319008478794187219302627627726106469100209060189796998602633777498653773793049126515772526451069476594739772144841245359577628368440579490592941714450028500283316133068807519879579745365801207151399972244481410160037103831658064269040983001713829138588202881070860267423643715198233458408324603479415639031743834928391573501645188590912847035609841213406033106897540584699967986115362346486899400246910329135216005432476178074515908059975930635066503086940132013141819998736806584928385130751912508520439003249267475935532233931186172129357870778727456872282970939099947032128535237088482044887767308196275494529708748547845682463815925043558523908383389960233172061366711266991452346389251539745683701303251107256612657830888737181803239321973410795770168971004348294062636594990622170276304992613954986177273116290868211860438492524550960179079946372847059144389386579478708097477181058504588161808031385985464041477497294815261892000493596127692379859693357959198751806862946943604091628211791983752715605592935842204250814661181100009468855703644063881493163633958719022213587445193958202564754615358209581184776040157379392286066789925879233715275427059368057263031220819253856635117850960552585617643896247714984026910408316978417322464054799695951016980766323626756594356130293603655850936155525679154664797961690352429708343652469038283870276918585044939071912242957935225074059706869925329984359064487866438552995047776040585777055060443439748307200360626214894501599089543763373565607351811439186537506011357937777584077345570355693961586418224762632817363883165293796467109225963763786519110647001156904943424279638587802107641928344044341966690917839942144843650877579061496680860603997748069538855893428014441900006640340104192864776431062232622899687708518587850860392980880317567676407412258935494561231604491567673832022059783047881173121545829230442290651917549889381999612253790643601152986784807531221909841663029724472661615351520374672846998503378819928736123253543307821667298841242069121347239585643696949063486000522411429713866953680997091660066970453530765404724616705449862642842331954332713944949088692995277292276963601420400551155266078793492090030574426310532962582394167054263192742964100399173994003452901495429076152055365805305231558427250225940523912469868871951173493290889371422938404798435111561648786164790514063412991514863701157677205114140282755189485784977628523051792193032882403069715500371450417646277440922506953602793117220499325937904163108396849237150528387431367884454349735297202751711732086956445476553084852453121837440731037856439698071977614702351606312938240195147190322691013436822717013815498496837909454100695209027230972957713144269072409933214726029197737174711124521558418174505988363642744301282125190940605788835477387989635863761511728356555905416049701098716418296416386457889784181729574336328488913312677352127687351391583227524485017715276061590731862629068061165150807043542577908596654372234581746374917638507093740209960330408511441358927539875147419614855871110685513178384526308326803155748579261462744826062271210688025397921958204574365754634366351647778286729011312885771429359681392538746534975227572180484153441090880531843393830315423181672855806443050056579582044208390592511735684218550964187073790338186493150241101853965633191339194551084636987100869981188016574261993589233953357140362851836900818275940383556952966476664460385161790444958610933207367166592849532090544210719066008107561695142475219084986957734778550261163151932105543065704211157619684782030400166123401648512243925521091665445393931948486282974118597718793892131599348838514325120571805612038140958248502661432583625005149900657743283387703658980249045902576035613369574771528902895581706316467456833802410563504216869260109776761245097009648022034842550413892902741184991750429543620585378217114192180940825861566647654676520375570860912533672223841253952063146030832549085487871299503545902191087962395528742946514913260802363270878431308989232220452328945445407921631741530021105757862105809600558517043706697903654310886641577597801321201932232327829735816453300482344600519647848905010118387257451246179910103551360012420121733830155991123421652254543370660919054214971172542291973304396747011439117853674210849359189136470163811477297133659474610759049109261510681216070669915681515625675188098165505806619611936170549254725792236418610603522428092508992639122997603246191688171596995643697724615966596340752562939202577231798727396522520992565436793161447348636957233791481289167170349541340595516977705120194368553470430571110974261987613920920303725639537261830588415399816785361369578754777436416112134459106933003633348232032593047445855995910550741366386050629379134107517966259159408979652914972020153557728051791558441766346679135914012859166084499637275221693779152304582405291988008516469629870940304653333638584464648848858006871260052282973448235941560573704705127789081051996678791037709262660313644851205240157344715738143223354121198615210940036626577784037773751060950724230411202777257770385391265506604072501549146533064662725715537437300601335326614024655998571201826633357916030150020405256508628702826425382424095644418423078542001254235943114540770365131202884583799198930049434895770540649285796418986451455012913351281397200160256075597412278533954839267269323655330594255764281588839784281126514826648284833296021503477552928532078180482477212463587069167973117595771743448682108247457876654602159782995317999952979639732166392004774762842116374869356884381063985785936382658498178885915165486178976178580131466246243110203510046097691884960220600031127666447731111816387859159516894059380112285654747698241693536023839966304804664662306416704139613832580865013262105539266075193226421680458251367139969778308126751807032401910916160228164495207269657610685071909495342513819158936034933307175682647796506223163126264818857230081541813012772825069564518764838641226530358935710665307228329565129929794547763541560601863522903778501363853064855584470358784967317865239960309621822143559464957001933747868318433702165321437861379251448995643600234937247295378022158245234871597304125873758049727903384483439163090907663342998257801012720915238076513709853116467717443889226574136161439877455792840532566041790866278135542201960723822985902283372849872501900995616706371945066454301424446575019111461452137317209667397893085402621296048956848145605105094014556149703142398519097282083256663013192037824902760590450447150387229393901914585183089463418694228084957341417868761138611256341308410257110952272232400191347964901793470198987403400063238047475641921181925586819746806294056184427535565039725759818167082416198649915247442885743679500214138017518020508219220024864840689021932597828249505999621543939078305755279614931652183139826719730604362624969633084958158236687882255330965010651336220504002536998865384495631378103700376967304363502808163277479022856535916456521383827911449776896252770965706744896661959340755342383252950814068796541934405581539557292746346252957356297064240461600114225463636832079414928509435652586862875644219739290610804295925595151998242728130233732592318987665558924776159726970677378239160650208358739809971393087940669426057611789253637924050748026883671356224221917056597598685347623588470348795872670654608191711931017892217591911707821722265921378790206314164585003300138916781539547040016194551402900047017542352433177604266676000937640715586397447740875110970056958734281762632563940931563486429279712537750507601806114038382223464918458721542188595994941920218893552677533107743807121402724081388933030260069443368292200041468712438394296127042807649287866977509031083168549547468032184320783224101110306316629253645314617834225533376409782257635876693952444651292287615405907059071897218336362022564101911182804182627909199464008007196252789145378133970187037886975676662612142596714532645257756726146520376110972986618546588170650614811914398285684813399625664509802600674703374286563331381268544591004642544487788766918778192251285847505669839854823288784471001587245635211545061305625972859733750895121785499900527482772370221612009929893642027141335029138823856854880686058932808951691213409972962731825326268713385002713073075722901298333116274518552127292442010584475857148585846060067971706860419827709899328350271690589921687497819853873263975034384942681121078823796355097339897654246046197182812745914031074457266760547586262188408968859027358490291071695495116532855022263429175988292048175175832310079133494112158178867295845631468951856432210922293374620726365683970363273271779602100148473500092201670379135091840906218735566344347278923124010920168870519443742783940992486832862557566643504763823546048345773902528163636481071213514167897421282324474258068040378071579006797062618959865937774508418525109003899759866108089920790491261723501555345708696030463507472457944850156272767420719259089279054513249278416233874290714678237098228816998710302797278718823024651991090059524106558566638687282222168247718327551722288639001584895768404914993246148417528165706585952346816304048634980966594795620339716511637872459921592618246562116398970032507319277614662397588821356328657635263814047264283953253613538071978883052857116924516492959840230833274833775538360191276093158727255978747383803650410806601250249963432944207758714373864317177289056953400021474266380527695369021213862378163403354268741926140804106049813494236480722498513098067890334113583937820033778757243199150071929833309302712958391643968169956711409268140947752458625313123687362809878151080918031887693025099770506513387829036659850311771003895009667007002552378958892943823294807928655085902842406194295477806429541705202435566624076283973255249053598759737100605879673933487663396210142167011852370676934957865860326065302188830079280876786452043845424537532355178580171270176718404287423627186791998253731426233702862114741851485540739142352215577904233714951836347117736056526160529712263630520636108176709215751336314339142573137281722282845400757237907720327275267924350749733880306554300036042497799872122919271683791909542752293614672826487148508867055755094256945951110747116920441794878694310521851103033737150091138897602714213393594470494782341663535465840502013958624774957151958571608438591831451538069383551143053284393457454811712791062464100260378370419950562250127593227248894140302572182010589631898437445409256310258125273487488079319532482003669076988829613235218394350660267645393917285518635970086333629164507213753946613058735740104241866989474591596603022293194191570016363060446453879628565081528350394904242294832009218646785786219202953594724069194393244934297727551420122048964233938750012647835027588573761197349590639566780986025685016229979419829683330361011737088459580053163751673741810330022010663179183613533106161293921360423671784647141376463181250558113517700873358951437809481139634166703769475042280535803681732875676699900529704451667308777687540900096350431922079347350006353456322068600881095326673908971105786795242647411052588986065485831970316881067815534816367244505633855333926411641312797829327479331902158157187760595528648565726916707713569426963367556457678491996398048152803946987851495487459022482451796090823945091015103775334556232120154951960476823885804554856639258390749511726162958774542182057196673228533041868835362775917610952265556970521702213415792677067223108386235312076868171529593739881746851951124135276978909004664844169893815004163288207916402437637872120880385098413625495040770827981801076448606810231811733502760373866477741721097157682221304661881010491022622932177963392243923371724985525381145754212942197471233037290542793970992184885252682872464306346294397811889395454716506226325105430272507987669985688701615113644291982252649852030143763249677142776308392813494719119989456469936100705629479006397333292576917974025171656461626521657428436495482217755824195434311542672556977939455745974661029550478777406607015770948583699304651940270322675070712151836911910019681952372182882695192501324424249424601968875593785919229195546626076117780082245457036912948546431209503250016574881324232084273341399522218632611719175604682408450749225463683933972070591139396035420596008101959168969879976919254682937122311738059376781517618911535997827141120171534283146761899058044636182899203643256672268437967687280421101427783774894231812355196282851070904180931954428024562580714504277256456527369844685578642667255937232966761924882413365396908649251919003283785743205042206856275222771881524064352340162266469486249425334548823941998715450898245584492680130784234336270721277236444488859362636692780069071076177868203683700302295439113270063206474133977704877112598122179566825631938572188885689148844210277993320600045806485869598073388700276409264959355328711748739466905228218391842230161395687914244089807773898985036099515638249799860455568285270987346942595236428646564971379512916619893897776378942944620755987461408764262424721648493193862958856834903486272101619003918105992803000292455700775169572382074796994913768803686925941018885204144652650612559586007417656993655912565826322550950165541497292146908891923674065767587899973765448777565520698078167454207682885085557026705967697367916174954657683596025179611609225905674243137302743606929066211754291188225260381877793820968132914750786217244966798248869246714691536460745281199414744823790542929682617751000481744797103407484053096767248271822677629066828036313427764865811224386203642586352407986000336365265617992087448692449612139716402923218956389659433545517623219865151930780026730767608527578604474076839930353303030157687232331907679868383519748902650001206626650276084204244229901054496489547490270995613865946315363677192912046543637449235773194270885218362207385789004240701986475171394672098936310758558347014165216683590058640653415741721138060004111495198609987710483528188096235863399558110927588454323640012762503139140625812330813646620374670324240390933187835188344525014751160729212837641656819342434385072169271323757646823122916589456669901612104620415455924605912929019336402313596252310589500938736533299604832707488488252285299825621125343270392426336233805473532594549540839080729242084508397725366609448254020037357490554807206461970597432724224559794272651999377596692130041059670179146724597158081371939807325592795078771823609512695428122112578010148800385792369659720498315557749631608505315018677593935848266169414220193405352263843384368973929532705162442432597663032414585194924338941882971354499204290303286444716267368485225693759721406303066273238803757000950163330660567267795526784287175279191360979165281325896592629227186530645230076357731987729451536107764502067027527242211190726129452005324564006021819675038858753062155374068870394441856356360497169798801205256494442825341644098554312343312154780915484367179387174970845656732281703672460735858504048724975227586164685403424610653877598606283812079162459579825488890850090880994195628850270989844678865643325805025687599465360232369098025886585431228543757025340783134099175656576495793842760119383839909957650796528317190974342608189649393064472623513701692495938617988626548406553821391015023110143467879692350583875944334800915039631531903973348306226336284860558191941486335854865367781852777871773156832207033588560032250839636236466265339560532160343828004604911376163078852622436940408204379795585850551986620492714205262489103816105802401252892029152061433294711090130999909099762430818648882336528395187375912026890658182900416731886192903792973800504722640133653075480724665062630995983844841418749057751114090349953235664295511263386180648246980594814028870157708865538680522431116218109858144385314877557648086696375818754124433073749294448195258168322019152493403495378929562100224498355190175662619275215360893101739614819462479148582071108304759028480288799533003254589296026500916722080622527017916563660009932323542812899645243609803479430934078081597253771785133678970634763070486169713083477942533826096228615859005010500932133891620473841936935403193497978820509349451994534128358018915781195676528945419785616950850551343929104639902747191572361943954187119382098491964804931553224460300838549490300303753449168893462985106595945794858681327023098267857010458011429898083368901440805364844586055547100615985280033409396925603221462191838269493080571458346241418941401741688007239347120580507954922779667036133839397934707868953558366285488236351315060438582257222481728390315264042725909955679370361371797073423124730697556617625555929027169827070653624415547285224319429866441818080868498977317402093061767657433160030661421882533001324468825167252327397844665104192272294674604836191248259636518842606112278749381156633929007036663196599484841670207223094833876652433046953563094228373887521954867177438480195612392643416266942473937475576462361710340240743710927344162543714233992611755581962825123150148791566991888673877333945614231174683404482898150842146830589900545210866520792705184586585139890485358237568994036518633203122542178990422284400958112674161677500419579352677478606751185838953300989292071393937090936047271612168841581830809139781939933641904543091995040871687514094587911293990978449374581648341816300784273591908916939848749185347081261182564181559566233969643275997935632091092220906204392677971297081660901258489832889623473436779459693314611746863184352318602258530157598278182131866200401382304830902754935128093854902803684235502067902200496191006869175911052555819285082863677665885489046705168515419523555752453609256518493720842492894581111809987534296134191350814036886494904446490672932154993984085821890602259914495173710029475312070652626493567882114927712974531286045548148684984280672918137362747800361565699269786615743460086293198062251703598017372226767039215389664247151468906766870605345598607797161666959147851057786610684459218997574738200545052146929338417413635629668056356268403204093331634890165210676164117992038123574635295691757902010920456582421029405789673212323486993129773451937158166927465966818955963080285359279611394996079600205258973064035253873153532833865332627153592248516398743209398142881580911133221692365007970859403462819626045071573405162611056680990637334753973333801377930318660900751407783308764983045532459927571434403125287743135580932496498715808391149577596254892240107006720454243677260013170822803825705579765187038046222832544591097304233051079032656850686444712663046015141309849658331362867716627943266053558635113223458042658335065328970516651665556946583466445776579268228425945751128163485295232384785752902400678184491802014484168202176906491154915061092139348029496584108184362617979168101633466020184713328813616430520001295698911481696117933942801020695038853062291155121600353367963961679295700289175916937228324804020639448702159187804524935270601872690294058244410165444602223911920563939521302880309185431285346458246151466949165830946392366340370727612664934827383798937329992464932884285957899095186117906827825449506483218655733180870302707445537130367777395078054325301998079757495319464889500987534314536749912826493063443084620496405906173551418888098436166711478707094223902557614398767437241147954262288040378424367122235940516179712353988878129633659005127733375151540800434229426459088778443983883135183211334811218073028927617328000104659925822103796717375675847792329147643578019389299591188360957620955587336927310413030342929665613683222348408901152211621712370077728871752415754410926546024059663451357368182784276886191188574883967255170407192876796976686002792727158916221840231175667936255555884966294151351949452735340630709016759065212344426549223979883106863590751106092024304366675374975394036562854939769570174621504466235976013344578318133009489405361829033290530619217264011350581768883645570626965227168975057613142235332403241084484999812051682019465615526752750926181929593714023653415971286514231057748410914254737020404455506918994104011590290054649769430193510155173118698788941507071732739858486741854301887307384373066877538913241674090698427949929573675093802041071352601963887755306426685417263412537212497332175001909053016481640330737305354272797654364301349224091243197100488953977423814966294209020759670357961150630198887575519514104467297495101852340755633670875577759182158436567455498487300683983456277596446306176241529756901145450476363247061031476725291799480989955177337593305939228090622993469459574461115889223554967028181540960816064847692719694384666362067945046724625346886669525595139583527329505347692138392454629964691872767400405541239724052735605378722614296988200628036631303961915291040924782582820307624303631993190032554599450103078902279691696378947648232137162744085173723858068175057776116319842532086411879580924238714829749069927536235551735307543169550585765353108536724415732086833503330183448464555110145432065643569245208833234343529249377023595451824577564005888669898635728659408731134461177850232326344780205996900274416609866093422572379860704111144719716365310024121523285861984608337303490121365904065123778307760606373023231181463928269421380920105873289727200898854779608222048973428550422463324829012026971290574292310685447151806907656281741746360208667020938363852246639316044366311489537593057401667378410828143236176627328689957844088883537545288762695831028548584693272739405213389157642819261218729903949571685571550580548198777448302639877792643740595777678539780333814266283820801766690197840364293624278788847917630328180320686682259450390507486099930625160334922713602615674192453501190689090028963456669622579940675780963610784543495586531868435056216670784123666244154364887450424633288432999965789634734380994729379067915652231007884697620634467465088250512166626760075400592720605919596354932484283299135495646912858521903764695108752199540230224912039206717734440796007375110038491028249190161574852351180291113846177591576296936216879115486403101062563105719043871177615397988210598059094248768440191994959821456199293486080571060153046405118472904562240584382031690418289133570969698032446373630787391460567741268642366549766634348236987160447494920394240930930889870752046817841806210396034973529125111970542002981622255671284702884400948128129476874425798199099076673428856515811268092737008773442902354696322530848797726961481461040678324686364997552285826000373768866755629169341974280074897353561626547324566208708045529538992414346171042511033620071679264007335944250936220505407984671571318335895071668236943217699109767567309874176077351819666378271120714228717413141092623106965422228662846282395092017179674581562105543358003064199867227973156323659961917034860235286963384905779629624458324058842646514440905549218121452980075657744628784451659545287231732947886545283930781245793025194432804773000549637665987604362562922150973148777339257565251327178513575186914094222223039590021011341754512933672031078836970330748706749178501890843774660141858517353511402336988649188243151826173909194711051958323997269829152255445099341908014976690833376400250895384716317997676316522417114013399193061871936542897458340304435777317201360052228700141121469920948534473413342959471864835413266531266239818207155096976920789571884171748023515426509715318852975138983110203128565469480143427399197531374300953432995471894814886558489172266751955201570907734268528592514358012227414435270371105593083567307321170544731635556690969444898246924485546845364225425269634715460009872116040332954812566486518661896785001182596080035078966663854963176745472729017024936365965840835258028111494100291691684286199214127778557511242128818000769941910470782684856886235214354717215835789854158088275663349059704941308103723594217551674912820705882526580285422551671967368356666640972501703703564899982446340074127681278198390646276694596644825948866804752469048645522571381779090565854819310561067089768883185660567359999224277507110777327381019401663402635609635310495083543037117783672689669665420884992897320020839487265677444866892252372254527017978993109506418850720703010734027047779982087917283784686966377410310688283457486063617447448061448119800735063137067859537245388384823603280114930830109373279870809018622387298746686617279627228942120294375382913709887634399806131851398826429740122796274230578671075614163709614104673323522175093295437830629066059951172435216805535369315686223293926185987095249331850647481592016713760083042612041754857892355370688393626078366442972534184557431687742257452706477739421444019806236602047936200633363868240200197027522442910265645014509789494266620267211131164855070160699999491828704917438426291727382154372410554912381161536530745109041049950983322811287498744002968230371293867979796900069184386276579843002501894644711664813290939384385805258453462562335995109103840913575568586960748543511812238306141091820659555691322942401189620729975887467065647565322798074800303162887653017608683749824706914360813696049178246827438226075806307641967587327976868257477995073843720649292835151651136500496864920747983267640045620911605429191371557710761692512189653109174241909855750507350035930555308128803138670455905228212385711832569138801880884408195229990414064726459882034419637386853685614531553585793585376519449557518040751045799763540168809692593500779432285665863545495811664284807152564817283345732545675209668387820590543332017404510290173379119681749315974989626616291710722192384787233600736991724771817356909565199895164416388591577223092153104050651279861423949904848149925244080624477412009712293720777873801505506507234725331514122633376306281371696227503813979546095349140007851285250457918019683461115853487429532765701791922116606078005051226908342342431660205524175772223905528526753657653379649627929477200020571319823891397737850145740612465116601445629759717947593017856619713437388845791231079499469058372847153205740162096624183393751847182926263107993304907373419837073439333890078645949772211606894647544464044370363332001604823997743351757959736922251658406231114185665907810217328394086834628491959622228344266734052338692674419254249683502159887456783873091579817482993147999557746303121924157031197555853825944738381483048927876037302484843803188167204329707783163648933248721525241705166395396938631071017702929899646777872767680960844274868367908455617744392239819511988195526679292916974918031791532812103949366911656172771197976662089846355241647026351111999465871537900104345080817313468069046658013739968273688780126268960006665534766717823336495972372967713484918811098036426976991927027041525428204694021908956809168631191280159297969684798078988147106771819284027990095590495125658960159691508977872545711091852204100480346829996429741154374939773461280568206059717570069716657168869080720402154959317814054124969206946842912013313873067663843434206756794062493171086304713001677715219740020851241390150037270133591504048926826513934966354897887893362330809108993517795096960390344932300293153909289261024380359873706485764423524854329170987742906460703496791266985957439818790538669468962921632805302157840006858351502561187322947996615813790063347913697783957222328614829341043005135109934443654230297286264210424355861796413237234058602011934051979628979179853409047169578245468229884691140493105748038016533081735050462019951551187416448968930891860658116821969904782393118624990216020137753058660565689752623447361360978979138927931311071503087012152063243474797702506497932603273914267969300862508812353368227396552271961782751617333485845670626277998833911494842706813408170375789961998890254766923403762614465991274186147930487925186658809239476079418228726853704531194099779426329975545022972321523480876765092502313225248129493792210910855317865419008454521854829968599881859290226893429303756687396344178181605766767120020731279003954271997724913864898089740786821564911391283261819049377307715997574726900654674791138462190053627099035912910615667362868141467714515408040323138523582437831390030119565600969069732218737162245930374586004587782066080997403859495567329671187296164580239182448308355097299356248839316528447625961456795247437702552129146346939806236347297066478222811119221892381281464109990930263364916450424625985011962013833181523712434005249155806462221208059058936984850430470678772980160892158670545871303614572959886863159477637270880133995382273582173545858408373061362416468551977922697503694572574759142663309665884219032147095671683579747388807931362015842441151468724891585418441162504343530751456631479372552464836877014338941977239831256567496938471561247586123468973288716344195405300732046539390817227072327697113522291935371941746923900258070894540281585825533180509572989884741484521832455971897126986723970147203856117326359279107017378440428126978730884633803477266011205481975070637964416862693414903916166145452273162383777420191709715509762003381987355209520471757998857380592921861512691320686498123964385833131626849166816668876798703874913012080466101131087400705778820642748782634828256941824838342928019687134950162214844566150559316855172124252009708414473095994270264814912076447411401627658399624530873798440636434878916055532624345572248207118643960430205022184946764450620505949254644469346224626720892619250782650071300854153622167520157697678059194129831146439872547316387319196143348206729204033160310462486588486655683153794453590368971485344075598039995447790046137607580692762169789014067583865791474259046205520312681696823300697590121136148828707183017615122163704283980908969474684973009262118959099296430460298234471906049366598823395869409546564937235642889627826643220126691273196025669438883839741061920619727555587552869527406634503160996134682465615499452960688381841572184744653046476208503799961118026233124681102171239723040973433058207643086375722157217678603988848854873054354088339624757612802974140200161881852028091864042693538575387211547299574987828340466125963860835356792948274162914850216375093969433990289825972284751554485730140549541176537245895333132532440937933145831697223832927943730086491759185854098829586993031340859971193899098171286366448164301245396622715067656948709479187148550327282427836642013547248281122027743900358108772321312450837431324911192051629881599225730453539900574988245766074172916102763319526609578787595862059912586495397423761909453010585692892980835393757820690760647914761780140138846086246090732715376828868489107047850330689666543674304229753021630911154556247508500419399544970916169400989937376240415322402947690016007959718725350595763585998601424651608815793713004619947491154258160028368914952934693696402175044577726905270575877115298621951139472715947566268478177884321658187113101188131586509036193754343629736652740734692878870588427450395203133723834435673793891834211668504000049411481131231208850661275956718382546666487672424352215876153869277288476222389803259130336988888195844110263177312950524808230956633572481784568928851343324863074174936943390333755040742200211062218240409645494747365806873947939862389041259398253801115139689914586648441874606488524039096639972595755501121106085036327388921183335931929424666757311709985212672310473925345962773135565458397695025964069477114930294795460875410504871616789262091095307983422394366384900000281553927515514259953378203477401089285300003815101971090076713094036799797576239475516487567301553485660086896928035767643488405002167410570444873660045611439741947346036093983865195835503440273456458664785293295728398345974797270005260019430301822909689444414060407816840244042595087721455267202155248174941347660529164227928145186925976384981953365568375280645690200674678958863218361377708243450481040724419310146724019434177395322750012637772550194956065122971406507924453338655781482612170984266685124076264112909969795828965802836876461851493347816889315105888356846955383320983648974309837175575993494706564431421476934002915319057837782775373888451117049633050411077904301284348367483982132149190842240310425435027810454938549834778948496727524474163727741264493788142856476350991938389615455849429237422970665747195769705948721665062772601516872139014876505925548254929586680665030225934094046792166626260652228283788794370356028495400220196885569912106677873170575255755487006696606402982808008333512801246515844702627436757695325933840196912449895777688865901277527872355667488273339307846574563906534181687481074362816131236915991058283625817276266244593483520299011437386475241457516658757207608721837810018557387782844532753867516317515197094373039606476467441838026451943837815734136578724173329609985404992139854960492335497260089276905540296750692486933413653781478734242958011431754905696502693003713719746108405886099623760918754363453115009166367390377072921415361395381707921026467311637752551387543099758848768089289552660032875886177044607415296155454230119394213469926204289801002333053141127751929105738366808418150717935092773597508919025290099104962680008402520418982560514643996072797281305743295714036330426763934200389691677162150536598727201488099263578163821861390365898744922213629284327620074784835250912117332184177154119908253787072656125710095640399828969610387961803332912762937174046183395423889073838640938234216465915286967032220329619306487799333704459498868244090896499509048889951474475560877311357927858523793309575240236220006046357346446349987343084235122792258133878448421106016153278100257153710986162332312026116567748648911311501534341512439355452594873906982624301151463139780568817509643222374351515656710070319879021483978331976771507677132580692697813103656678002097194009361636302264499044368989395903463189154936470883941820829798198934108880630444321015057647276966618974199902685440416775414657465285251584889242871598404859994200642163819029818998680919170669476858419247989256224696342822777012734397770032411790437485966026230708424163070723528589633793390114833475166108722891328330847591501073537629137861549303868853830613697462953543482336032904405960070744127791135494353106836841424139377354594327902308211890800082771722395691701914416074896143207596126776532218194471871725515550627192404576522306951281225969756617811538742367334615838095480466601699079968727222697667697105530590799623094441334884900645309568415320022922938410643335355851352812173300334840883031651657496782876829901987820982834225576899095861904866643802912687376612959814628767637086901428840361662578091817052334024917526261823270914484262675850788315335278480686637798007778031106907492886967046806442784828031601083183840376766531026283987836266037350942209508273341211777866036356551543631802016058448608817776733608618140409395627846508153561571215498547170433949495798141325380201859656593390366584270453430860303538187390227843585785888901269757268924353850627002196446751412674530166065250707574187964173742527389410125361385734543538754984859830410034413872600025136605913588618421814254743637038101098870235390700376427348772744611469749059391729105749590777708642451687234589661457665224079309376561675397933602758978017770304131347051941068265980565576809601245885485734279619150480591355565592916155982190783544249693956982762221714189782740633173615675097126658202463238459900497747356359313067775813459456713646107626160604795079688940915998289257405404751778413992987621318666413873149371708431548312909379414640678430267333339230118508352698584895634460891060175261850407510107064273302416336781429891296481827126983774501396473037630671346725972385943253763573981742084682339201041339993956081499082566942521593949265128857544562340478746151645271924868624729233894250305030594277807138697759203304027903429339082298868915506045445160240002114216003020914880365743124084999624180685192912260532258650272518585722887864222323081198918599095825777752658904420758676600233798060149682825785280294496553140474388575375255708459254720533966361900670282135761781496927251644883487928728063521681282205035575206864886557992366576236597082393876892252947185004394408370524223626883074136318400993007483774384133183033230714619757987836710358553035514387169389485863373650931248344492119338228789352144987897018728536469405288832662079160040456744657322571802129157354469763434433253016634099770060825606401674024464697087676042104868682670145233536063353576382248760687631509035391943234174927002110482242665076410329985896249347324062431684053221622003737138607652817217881324781005761989472326956831543705024961219863683852664416230794038422321092410070058804946802115068981489895013174650606240777344610787918374430741114356639740013378606908794650739330259694270232646134878664594199636088825353913624424911288126092964655574354300472563172860595042048914632835635571336080068087922589085724921462996028592446706569503779944435078720728044824932888522852796245871727444986462658742834140251971240549880971979635634997150152887621970242290405993303243353025238752167572651695539884143206095563913107423717885403332862586117504514171132525224686055530424913316511561254971465553663869088069643254875292087820759688749864015898561699523253976635552650551176594732242297888746889967919065732618052428579967593665183234150877289552866556430434898950598731595527308255005526478703156083354604232026013868003934851228720012684516901241721157230061042324321203066742367860162130699776720331383628037979590155254995947368952011724939460733277215663794054215640511748709424570975930374128425285597693383590700783620243596515867393892164066852734689111228899496296963748002437020833075782176745930661827920618921733439450074561026456800216119933269922038123658061408958180307539538874868659563353651702586631626140441908422249726681467512074368756791219365306600343561086049427890558789706730135528553794336492559251021857730338908306469935515813749366273576807219841427749177591829484639199649507925955798975250075764869149864547543856157026765703979755541892337746721444418846431834225673797162722696921439077881331318916927636766422637399138726152380299759373094878736516582582168079839571138935747521922939861196963459077159729585768131436400065205255898817804123957862314974401480225930622837814181163612703822950059372672641894689787280137194685167119608913115487135650218135089405296255752621478468104966829039461745646894116729537959021695803447142217241843561805078344218015360031026193054093232158132223649212374691696684552957169776012074575422324320102209816101237899683843521208307490801559826026773031099451950211538793321374452796599156736826290023822516964991813750088741566032664261849276902262205273317397962470152491181256148800964241266289530281252640572965902666637590165324338818694841863962608121510093112074514632615895866881382807754261495127106433374045282154375911315789792587126481365284012996698319942992470340060013689567868314574325277988530708340135492819274474783819728173677692281091826369693133323316293805418585573089154917400113941542648648085901276633262959053154212240294553984736360905933871129097933412145986001811551151844245689572678701268679288281679828028758088000551165301351384441822956450316154283365616887991889029418696075813879809032632593366274411285887550857489116516992262360648828940658389092473838170686951506563707424007114640006251755858915792133611254395169570534154692910118627373921308954477154241875619749339040822377729705818761576361991017726600668591424803381412183277883123122693233489798925431129542532487833736798155358803193171007263500794167639350240662399624884653109729327982516005531442558966184562468888985781625252554364459260215239294150393734416769819946176216827255006129108505158489045521150587235912799083763277189779872055186592271865374328983412975135810422371068944602437243002724897227796818396940071189043261984570050056317734531283331682271023910985029969792800978370399013817922894981301105450348321425942869070576706111429308228968047692690786743092223852432034651412126265449353781852692316942688656485757023863635565805287803045156427063748776611015914439236173635778989081939057887462150141000148684586670783411042817368509272235769978300143842167374752160363167236152451981788537537075290710144594850957405394818790379652062319275625660200415890529378661335865256244642915776873641695595735944344784032778045420668713908800312885335437527289349247052832055835389213679924467240739282150240219219384423492196475911783502082213155239790265860596607062604193065212309424846970339123857827149943490388184071064888003147376713415039544743432754670450891226941446052737050279861768208936790089124747919658828229077707811796181780309010736784972574236343385946860457184819948017386869232491388763572374844739774361734201400515553880435699213985970819257504222140570639604653287371150387243824559148345858615398124625473476011629345934002962847654447455225714084545706750417368277062151356383676975625038618248486321008524928319999120689503311137260901336574482191405143826858967112118845276238011579177427624165601325186494539225661914673643125263078260939954007322870397285364088722813886403972266916784533634969585945031952227898861162980854969783557123259854774142183299305190204506697152841438272085409808345244689748402703263584660515729338852209961960791153763324451544935769393931322719947644452280150192880653575497025707422683651045788158865331658244673925759225863747028856979330303130410067845895076518843912805736486925653992201010585748557027875789931342710070242903036628744801075083342009853464232891787794544100128490177093971920165436689454428243921150634248956913917492603239796611961308342735084918378985657182958497493401154495768675357085368370947731731996157191355606071789942289334904391415296786538981576359415123064480452133728743512067119506782357186010941062058379839157299142363663609372549146306918999130205370642638712203183948612893198002653214024294146837494421563660425118871287990834450019954101091984294137692984170665427841067850346419347413185932847673472294139513534908355776089978978460329482488712845236482727970979274837667736470199192257746435936512618836425755143632100544502221413465441462249018748210386918835414431670241777808148083092532567636975886237835083199731685120652733797014456775334736108332415813175641271184586685926175193656535345578629891427345473204379903626896118757419072368169994611508164422909602028550646638500852519822237969014293794294435739796755059744959021838134848536127623410863256694838111538881967075681793114730458610032088498827679231236190083380281799460601453017533100045602746454643331881646977314517029910055730715174377966528400203295239241390787801684822457252635477293970561244842945963011911295043488624633105352193580560555272723776761738582033629164961547089895885863610482957698083106874485650235489457568234384374053425937893683240562658503719366883628576562221041366931951077083562555866627921413259528288949133393507430546218941054119410232930670519141603679363252630490045284806448653759559036007089042540276784810641631755204019549871433542838703675767173232976507853971229474368891548239608427894659985777334508383962041503977700334489778861626134113386952457033611566895053921988744344537974472563692373070789059916119951330371953437952827532382679260690318167818085620168555520602579512043056296292652066085450803218036328505460514107249771209185925597571683980442475945173835104010833389414934581313783070828562679075316622026875080746701145704560712524985942346908681591019323506873666085402061397030812463658625300136025540862320502357442793244799494159316866820573413269870235155391736660729785224718880050799947911546227961795466984531318613816849623463021469631505928167214817399190723702630596746968584544364580126449451183292566059932037203176608406379288050517363003760549462925215495884780293254627820109396252716577822117330578859607595699696808349151055224621351413323214546813567529833831114264854273263642288474296284529619233701990527815928087599044613649474297225137650740555301397770846544783317734717106364313445053542484406990881805554879423447521211718499183738542663552229738635473694325881152561673871518612306380188154210873661166329754736466553893983877753557307683205202922152585579764591464210875898338086834760523870240207838462309603015118590652964967448859388559119562061391490381260932219230873122446946885767008715192440989060431914921837506323456374572084375708768437714097199651316920365999667639324893047161773156399767970153670608768550417556571123721996084521239912844434123292831262962307075842552737539397311166803761620812641690596556235544505334291902829799181768778890569413640583442186379985276482351511994757085052361252409196871287096422158739158768108949058807613077101612232002949043264286255181946720554741271010495063524335646554935099598808783678393317288241631437953097326331421685552392266550990513868281749363216560837404115163576394708387686163752035279917543618105443639194162418031484554541608524685867123429705839411249746869019547739111315427341942343971110344284894055977166536305687378608388911399444034716695329468234304566849195395848289814901444972678583664285896281388631225879239848968359874922091232393426411969637844122928208226704437934987235950445362154515548299931944153311154229078937088146546048221604886841119737001136264861228763633758605343454224459834544985410993618038878969334904930345168356614480857481363175809232776880757956959451269103178763871414827514906990725138772164429997813900647885638426241467269186333362896379559776707556178625080847966535252684532226202113472200513007305730585920062564145072161779555174352213535388062876452133253318760563365868509582169657857916065424083092949927305410296588314769473028128683121064218239483625582163984852630297622466467238031340487358172670561155876415799370530544052228571399934017753869511676987850623841942398319815308712576440280565561463149822679338435601585737592632631528903629347501358910350233494187997121424943150013014350616618607855759527769551275666279549317621886811903319637571803762512577606115033867319335829189748038839209190320897677252012982337979632076928009388140219218866939923935162409124545695426854820906291646345421185524853489835341870842882503683395076152109079865572208472168410187850626304393920286843428913128450650496871860215919045865266382786029775563813791210846623930590393264426869410059140793274137365726316466402757133147229886826229314944385870098461339984372277441484992854236485949550103474343759486237623309564706384939223277276809164048736086215216981362094044483794084123401368921674794256106483485282849926045614365484256292413363001546639411280369532740875737889323888800209164146899591745459816859349350105518912405224461264164470484309915537868863762972244281423510570427284464017123080939343815839228790226420071895865659256681791237337470574971086346989868896422952176106911372778470178868254292085655393082278903774379068464646110772503075093655823690083541059309805103979421389111406191675927808939676775227063131137460881101146052642673851246488628355512634904728037699086724707917223617106587840529299720606752706860464723457362155692719937098671484614090983870252765006981742187317026766700181325355479368446248788357853072515712478821300928097788205004038069513323769051821328547256533288477132649491875576098352055387715126300652496250282227189056628348280498874543101750297261143640404776523431370140543607507288254067478717427092277821585738352681772415709164124238494311555962652931175495086267410832601261512945197738046041626384275387361940043404378419294065191096145047481775448224991992772496270281682422904773147609034782056231025555613938337251721920616246706652808031744932806243011534970703414256811535517255330581741968103761016969918571032773758585287605954476645038623969888053947749013354160105895235931915946095286262940716943257900657507068643782109204241158853342474055352923229309992254720712884725234910894193418667732128505561461457385528543383975468157792966779685068056030323975791636418772392146664718441602155519447412047888538035789891132203325910420485880325483955013455361233395224362760519345971990083781123639195884002606459317577924957809713658312847402034769497041054029670305887888186102947580141719808762340207040059329063977767903497752776626176487254810816841080903122475573735589047366257582316748491366420171067878135415048859599829445592537044151004744544858598412485053052889508063686949739016285601340322710835347885886758823903503110361836162545524149068671854069752954265368309929504024568920705952934643067883506815925798095762930926711873600364448705241593806917696966930650083272879867908820845634826528507835455692641887963792589508537727508172705489811282936999264939982028899361179286375227187411548035780606549611826746259202484297909180147077880714528887807072745173303781954641657983215368977571419806288485794059044790951209548928837860215505589148568418218096167669787159597176419346347904669444284390302287300858764427416950559841670511234545537892619941339389893361822140574494931014331416741499843747140845023271981284957435103703849300893698961430265326154228941892720854430346212570267115975140319737841198659468500738329305590938448183446138297294510457421387118777226103026649405101151634863810614312223651713891806733250858179958429925394220983837256674900858311672357390117744610304439254646484405053154807851668148210831836956387570333138120657061426608175391556266943596832979655961083387811753249321755684954976234297727757523492187169547365118396878349717732959872967492408602906175195502172021684548434783461448013483058350900190227600709631454177507066292439214194065334810872326274988486981111593138304644861134686433570799482530770528482918413513158281704689634452931521539226594567052438042255380053914703955623930855832642342495793519675933221334361982501713703800977037523703289316598312519049536821870041683181707972338226481203350405664322031565930115259307966888690468537080363013698605833834679829714698312147715424113616582715601598563300461486102377538036038778950439974828294114632444917619574046696138032605798577062838995037608327910009737369315489568517067903354716297384175326509973675976665836214302469906674970216941477304176571049335866911849200028661499262830570814309176335343100396109418643236754062104963340970139531904279013876778845686135793470222418171927396282211738554810384030974019798440714081687144174805512419581078272106781380421116562304187622656782720768255575926220212074504099689794655753370417040692805778368738504788645121765552237476538026366701485282156954777252088584697671014082234935591528662424480656897093863176152109477014002884752739722497120007036096941394187702968828112563436436708489133434733287171763361182354815069874825375887354987320133147681127141934844109269345144003126890501666358717556735877700710469648664561605104002144454301452001019659581747585756822394551579327799075797457752651993602927464796460923850502991833066949304982779861438285953013179863084591089706431833243464882352348844399140165788209529503754270993593698874056948653837735692286689115447012978393678264763647414415257843737270540048495744792557331993920722036196232017256194306199959890519775718528548749041376785129592462360081510167601770755033127361762160926958109297027311980803308498128039737836173826111919572813398088883104124776548304417137786128551787504365632345162135331095457591286771645355505924991269921448750670156454544523778112153723419231302185982541026191349237964548460480727153196683659036607504281599039700705901188454634920211942875805771497429835290977215059862341895288868069192814523498769229977512720178560794312421375167206064390575929439509632061796102972568870540171269791143733976267088151845704745601600129196472426536663946491113446710864722358234585479742513298206227379631698903338623561509763520728796116992997799256689925956267498129155724309714866681641103836714018976129347248556287598337242049770783802045243240526147244150299122788830292399094743460125157581934773885439562095164411513983366315118319272039113308102336428689277210380837950993062157746877338173141110011215061742142320392459461590132920672482975747987263972492087302350236346389393622250029662549306291942329557337291790503101569310376475590937481730659051371764619458632754168483888056124734072158764997825130299368279728077232506887976256252114810120599193203429520513753470150361985122401420297179893207958607410304620500698480413322103096405300264912507464908328054162852662601148484687572302167398894633777639521124964029483616471369526975815509131531072351122438964727656264939307145452896905546290554203345004840931323679088103158409676599205649737531807575451783868759730014203373905830152894505386660966393536259031269547214374651752759192082127457367501734993282008590589331526394929192229096119459315998815003965595339249504364756658878958214455582481520156966438925272544672901095998656276593351306537571571026052503577649563591157061732771710542492702421165423646343018632147560092484300958701684854558778956216114945321099847664333073182074317787151225316708058638705065466650020803325176900332938214481065905523106672517381811825453642002427860151666797366583473912638515569131892760151320272070290160610238401959574790447975769386646995173238922348143459264564321355626673501747423549442063486466162616444825709520892229133411547013721465946482601780217315964052026297800838169323813702766650999232868321951458337947181259492897664507780017447039689061133037203570266310129112603964189670384409758888668456928526540706331655487395579440904947046163063376611686062404559223574177326813562158093853885125890824109542673946542477420997425882936872917821284461549631763539338112670928517360938331976399109702527986935442368536973564767389034146484176211412286905007528583547492255389280027388569765262246007382756382040915925184992489866281237278046314024302012133145385872919892682784661410683561057726228034310278438158148395784502078862804093933343071110888555466278250816334259808526244734756017526150579439770323320858713024433310564356635397693182514383992357040378477264868299523867867454420995264526623215343624194498325356831037998954937739141137742954783666471565406655098281470049259477948218391984667155495236761355997878229446466399455859723233018371108811146920135414953746469763606665195500552622585273965894460314942050518318131723013240434787334839723037641440466171110768503147581017871162313042859203708087017440082025022167928007941493241686417271135139676413153255962002516208646278265362139087354093791775093690970861350556298649860252758403441622047249745615141341182981321436942016412262366863545239422332213143077529845521805991557915387644034159955435650239925943959475007204122696139765796691107813522625162033831793023375992503942933139725259484377230369964699871635049578524028308522785902318087698149206957236859820703733461590126996100028191647436844722436528918400694979291070459679495571486799969862145829065095913058264566963116150308632954839545673807240071503118046371876678252137371478569923449513778684167833133748078324603284459586460145708037992723050983398055906169274994850769647354804802281998000690689905535174920484963827844167527817830428633136703002060702981642311521197610652102126940573974731526919514082489669555190701190493154402338654577920919456622213451678310232448328538435497017174030118552836169816693996963729152641611766779653031744541157586656785415366442339546313383421902902148605750179507418002435055657142179424209894954547554339316696637679862388277239203830756780220454954565626120669080675582120218125255738496433274236120709222765829573398454937967889379094940061857647645521767436943828422534941338005761831403449758903144331220145871343958175330396768151002286439018470124217799500054323043333154633955417718555782055193962351535391705736052477122671088037871667202721724588592821850682380760333267504208833407064653769579717629832051471102044020877651939870359180193756682861362317786570740767669923363661963788560630944751995849176315701936218923662244052009726512998763658797201142050522142340118451552296088494924258148226833586956895169785741435253526454803527887428982169972243011084063135761782631244257246802406859169764605738940253769684513523870796159713111521124797119681946321939797304770247283741331475067595317476475122194413881920197471271016842283554223739459902445905959134246432875407152712836501723803143964109134615092205057117620484690902817297623218372677504607886656414641159756553860268917479059440362908463487997453387538561724166408790055424465424597725125765739580378028093621996408991411134940069936554582764658814908830356961473028308765145811159156840883272197091999149502313064452350966864964345185154638813029835098929071720847061515423040004374987872923091161106967741888241584768932499585102912125740158601640741286078065061498249524321427923980008991168806481645350645785858177023446552580302467223016768868794305494993347231071511616014240873730232888721407080454270551564449777078444528688754229848782566147950602521998972179024657370496438503161676359887735369421173418975877929062253677524650578261199117495230097010519967748832807792637056707658904197523953224899719862447661956492704468842998896483760722771416974769784490928273458319551362286726985170474554265956034203708884640091085560256317217398180370684076601234502417401228678009255506322416785941300602108422356692342610549889662198446755996311453675076310320746726827557589828512991464186459736380450455827272314125776004606946861028176572119274521736786065595719438554825819199630624582803145832216379175483264180847040577702768110414357643893786095143240328349668463850700674828304347836543069855027918727459357707862314844772126310086529796626397091201553181438875229667463047375023761734776961572793205843500477956069378695560754238375208057374975532878911336637305215116505501809451973762217855481131002934178967528366452209378907927724348232186401900068766140069383250524288249625873811707496902922380320594743903367933761155375999544440259260221545872262939136611212539761622975596199639142202700047576516005843131334468649146133946044092789662350049167415797489277790538249139011673783928448432534342337554073067836718976866658623739850619639203324004168313591176883906969790132360831524444325751818037706566358145248191703207076968380225350515875331775412719742428542168953841262913947286618939930641398425805447625222645719982566671390024594996101142260380685418362895288725238950201693198821747462944110063700141277034393041430138202610864153006352794461329275431082137494592483540540355178107301822360937804303424217390030299668621183990005854216679406747066331021182919216205817836106660008524239703312779457528377052791384682415945071531191769742814846466802718779160117328955500106281082680377054600085726949784588158967888420749237202940657144159342625129597335628973956338818617783825690599260700563349494266850960089432818842642616156311767723516883924606011806557270109692834965976641422895828491462338288778923120148888657981103397938802157604949926906036011645491748259413760404941827955701956917211104927258310436106896767900588327867687604854690043072990025340200427617243628306415711760930295742430612480923944878831018045773424521264203712285671821890547215929693251097242358306226286444544877671038725054363329983519308302597206064628631089437874773706378498849709631057298062484904712122399065215081190881820298376675022689332203270263069189739447218580061473830507880893689911821573227416873705689534286340455723591406191314412418441884684483881147686087799582206551574355901985353195239405049337213974334555996570277607965436243865687096885459402276316220799319817808977718138979303963896762466717316194518023401559218765569967618342585676375794116753686108195233717660636181065539696898511658873693641999312574611558965795692397684279857550394266774539390754095024996366611260308480698194738764593650352247306731918192776457397531507912715633563794144760356472162119347135564607175221714270116301667822890877249793403601794962740970159970717231196545102709281030582918907282772313844634091872731759377886927878889486614985284892517718634593412644274189240663966723388375568076139762745421936051738566892290354456045191189439847739134178051597306678404909494865074458101567625472204994420998899498743368827473863910186136807779429113326786076480102170855948027335522675233787185833091971950975624713362883256360277415902161113190174383345382205022302271229056348383300615245003894916533187188514942239929223019665989103587296718223201385689838140268294404055335437058634366806055669308675128430183875673583975768537534427340437540425501124483079632686868926321320216030752414024782751649605122305629690993670502138603557710511403032506810877448025919007478962549979293655568945356038871745529103949847572623169360889461356068720690604410065632871154480952747891440986680082554246097051424766858051791342921571703245292542360901263634719207518750512523736182353109625605726366173383678495245617790843134652387278300370027116590757418371622494384719352548909725251476268599410483520942327502333629495639740447574169679991986245679742837585469775080034409231420907478964797345687628379696636165413570932126848912272403048807676747367085089685372996681330631592419672716918749737862032413970964136109288014380806554043952150356906056968265682559658496856956291621170462254702585975088639928117742783209551015159202920638731132068693456166778749651351195009047193308477608038318792490458536053048614107500864404296936856922318537382034749355215252352968234746756235671854311927763936703328281462876415516036730294999699096813050511495714760521608303858757389649676017992047784635583965740243634143143074190403837528916729532917890884732335467945967319025685247161100382516905959330394381648219109129169311244138305302797042996406086372284026891691628078756717789824144353159451121921833601289909219720145375109116186687745679873833304182181992391470661605857816135937609265785883371632833655110179718679128136142730787444082037083108025922387736070517113844162122398125084004276444980947459104785214881283851967878758844908048195423680285312798906279568481825848472161977260858570124099842769218833686524365949659088443674645470677204996562932682075631396439114493254374039467851523842147129561198895111129608584629213002736055047399426613464420473702827473679396950201318449560810281207952466880967829664902180222377666920393727148776156287562714737613167415850348875566583638556215707460612250055193892607033522343094298647687815176362528066475984694924152920740894054464856439403344106404350897418454201061620444564637093354879558993532523348056532610002236805322312468331225858139813294226803405322599252328377300715646308209480220923981141022494690960143211501142709760377005198096333587390672280553699993127543823635350820236431587303668050485529270824482750159305882853148146263175071093570334094133798417452687348548184613401326978131293483181616097628120206611428438949281755497457525334978230676000834924308879197739734767517793141932348618962115894453071812735318793743437506982753612328973281924236482589384535840539888731699341927193018180296662944738913038873123958859658365177724050900126319815076829597393104410926528707823549402278554942970753184025612497099212611935179281100332189047421309988125749420718985173036223295350876638346492425304404767907451514740869707495247114113292084613523007834937847989118593417584388932690901561124611314728373727897553227348612799958586099419854054235289098095278945409521846439865298016871280070242576320322285524600566562682280833060226881104967237046966235855986319015590408662248691704268704872040894289277895279763816966787358774989939284177370599437418439619395352151496978962852133405511652562667111347313771565341984967409901000856100991829914836052822633009745432056831591807838965811530924309220451051836166812943780540930677141030597111392030180110428402756966006982587161306680889363870243022139074967740315960821299605962602922780125598843845391777982461957485863246201341313658235387428846769080248734200890788082847786031563188076763970943290944654978806120879542772058238388511633833916363709772642752442897510554213740971382124696574353065819698569703515950375512496896871777192759496269497041134519553599775605476812130711343185685965305228309086714369808232996682256250201090673334917256093465357042161980828469109384851089722533801771128798919912265918866868516576267067655753170808008337751971038450229841830043380423690177150448296109094765825480070399449094320226188142308493081070985649896701284989553465398971211025728789892506609259989747091203331757910704274763173873819979801385321900827493938352634597006820430432385078961068991503549164375776507681748810821041383270008807483324700468005518661924146138325233283386358616613429409542657156309065633181540673197341956929851017094380178711798118570223553608781980258991632963629531897465415350472906917517499740132117285564501259819623488339883130485485114410190217713856482702558515825435950594632224980166980377182431451232338359046733884883246281902785998051101772404695847834217394542024730946748500220769547933450915173918257185615893135619012210330807777537289837612003300299537099258203493588151886965518439955515506961897370860954191263744500972110121590146769866736592989779262626289815197060089227921004339933778409820238335266201300234690764449079005469599847100990278814435768221954630372665363627271600009074762095952373604124444428004991329788496946937602368393603756193013475855314795117841627142160081302908782706124694567561916358856654109702642784305173705962735591436040034878089132750775812784869818973936088622690505452119895217572889468627981593500693870114217385952055943710106734102781222925673352400065444811342371813335886752520757753213514241191182547188338406046221480608068731119405377330650385050536110750777882589841486066191338737985999285371076099318638452527553979218848500440354804007648920297380671062802870869124169005299198522608367950129022539158637549413381146779500560191688889311007876076735735984687808822274987735125580087475445049719078902317660107664877862347600123198269190911689882854734869369952944950578639537806668628780729478272980875213885351980510415173041834981478051782752547362685693187782335515976649187833553490593070785415446577415041973162232511937528547761334733605174049582036787762593677116105669048815863314072293597309225571572955634048663214867296832674491187972153150135703737687777441906477406513065397229373235162007973171067270064845883335936972011640857416484789031255513498408682902963346125835510650551224910056977726207591060060807616213373390866658845759006769692458243364630717259050356140849033214386689471435250506158197017192495727272165761634217480805961535836763587390412747029918096170366881636202622964544267199071190750269191731030855763103468802655127688475463455936247311338894958189824633746549359184443728826426161904449123861443027642510206621195847225634714254876608719470867704187845941667416485612296913657584981999728109708462391703782306418286772762998775177319574399412489534639647095243832071545990544983275577356347858678550222016977079210945419612099063746951245886302048360602155689116366219462346780234887804134135289132046995800442650485733069958628682373102554637880744779888144890327560694595894349638327655408644402368688971070506937137010663321730262733479729709999540199836547126284432180203811672154858043122331360295784203452307866533096122507074391584156576174529246255828220275886041449788704557152185479883220380346199430523773910378800367653101444040460441964209638099800677975523321256029667943911109366575120511454101672243495385315799332922678975444595926793286440944947752309485894369484558913406105182786827497298718008177784798996096555769218875504241467050782129112791345771669657698262568291662736447835002074955150499559568681989658615516049655366028833730632380590397089814214542038507250839493842602623018793372388931165550529681685892314539478485113863496052403619821587722665920160020701727729358651663039418833813355600273877550520517453671383838076467685556868612290720654398946422822488925458383041628292252200607497874531355679446435448032176734817319962832137401021998356505951640475492339027347582449740216531313290566489077841984958228840316607707430260730577105829066430560733826584104073564449248255075773493813008558468022213077712350105278418003001549555077115278028328524037413951178589365005429038983184216565033886693805239758165937954074083141109127454920267225935404528041259534535048095645822113973210571191403736261910644613166836478971388317592097850022186038516215339383357433689457668653281148386106501016078036638848310063846898287958078749363801652008255736895494813045777061593143668519913925766720375779821816209099576701322652811673884886887601338926246859647469849246648148639357435140631379112618806351522143559188714538056725430652153111364494603134114590812895666006526009386099509467878210170758359374605240048561088544777410902739289228500645872737446120939890872912696195737693683767206013248328759428178297717467590334761004480559668997620076674173397099532898044447742301910364188424006490924776882939957971473248698263887783447678660820202351614559152556746852301146487900180070765205866526528630783774616559161901664745656993487015857817823287344243103835837051181907577120329969475220673477700091106936953459226035937177400294142380717044552522795999687476645385992275384562495151876169865912233257644197684933240677068035994721663595384294229062559297068708801785071728475493614992198132752462373558794588406245938444624635306930989230174370566626162851875579785373683268769646083666158769269327533326787213286166393239638327225203222332934836626002750950789382903780114373387708598933835861099057081609557335362674191511399197853653308068174369459931373469340329040122821517851246402178289748779245962162754791532249108732044358169763792120853864297824403562630877998527505632081263427687868873905428073525441420149462237608252540073636724313129556928222881095300971160595764497009299575218970034442947169536564524421794298047786816665607440495324957017897617973192975734050773266392614443452446105091763298076019710939436931424100475933147351477222068882884913361219104652135395000951604085629861371476137332900524366014331556298275736388744510301824724357412658792983911318304944321017298227737847360772128616897273061604145464703565286843064128554001555858167319292200419295008606721235645203812775969393721818186307660937075706767913639655704129494259779221493970475771058077654513156700762700059787998458019990149799103017944644003916194405269223416676361044565564007677649992659081311695759421050978525278561601363641246591719929756106281644431795014952339841082217999416535090411183356424259308760796702066516546597861974351180719756796902330113147587871343608180506512722942034787834966566571733868340079967304401814616195074965983853502836974583510382735162696956755685922284372480381465805953694757529160305073051893023547339647846593608428372659881574549326511612871105199033406739411022534314641433890952386408964163878388254959693075930840168688159452018589326742085975874131422239013773668873764273275085888543413733192911712407232459296240717085176257360927830936088488259610344623762431382051313173742225814477767216799594018859355750669751513703127407147851312881125480361542803612308041515518826280088478273142778907805480801570029453723988879894495118851189470983573716141153131370932561438726880651347696810144452789696554697469439491453255473163313176494191800518041277501658236334585661438193149386205105054367406022227250272490419959328678528514738798016666396290556767051723195850246949586289779227010565772207784423705962570255982010799819780425410645375834421122505228989038687281132990089600493629890131696424285208360346476220980221416687823257105967759765510207756661436217834044240778168410961909983738414721657129243249259447931338911089324050225559278525050386318048263685940760172222656864480176317238259642340847414651698992975526825458219670260618184659821810705367386997213680575379927767208496117596891551407093319977457482433118890324833014065238323743621296674601026867654065249893512575688473463787513838561121636488766275479891509597398403295896120745795778070137192208551173744996777230113936333240264157138596046931715745874841467398617342134654978971236533997968708920228791017396203336929643563896149124772601482021158318528664418079147678483027536474153104109585942029275206879437262065428077310286325880032236797035278076720335685573348282305042116877057930157514883197570031071806536617878432422125502252694280842652006598711000620013382240587706751887529623501489362866585177675652772994821972798149328127611991798964788938611798254685658719135852106883744484346121765650931453307272511719202252372622124103416614944920995523469481678820388275601634512585621857757989086075695660084007278388575628888911901959120706690048807121077065339050851370470179088124431061481739430011599926388066610222102399865420595703381218964469660559173553520942022284733651917915948544377362473653997196684502723545106545141855197687156443510028172114287147571735743295528729749278424278178734400755050612633800639123864803420750670344319052202956690155794377338221757699432027792015250595668272018015152915969646770791912807188959403264565124543661311180618761599644052714531799016191995530889503205666717190798757598083511256018894136174152045413947686430164500572351328602180549465872013007061459156308908403231403362920962574357149441992155723429210843487971422147802079769608163791251891765263900880570759866043109265454506680908693407911258945523204222952540277717952012332869349606074069633768646911979221283827783692539676836218490325339278630446852875505623406349323092951301247693845784944114702981717979278394510832489828040079992534562431144591441547814741793055623231360265680759044553411292861284360146683280328390729334611871260224745887526074314033768875563895109021335190370916769020204199065893957397693277892120775314106986991702511603977519100174484719723243892374222388696787552208652811190229227285886826000926381731920606932203877911497362896591782531875990556406475950133535973720594478734320328578638243203597219471301265346234508691800793701482447452206356459335926073577868032548048467774744357030530365184343555339377134844295834761072102838206330739567772345348747610001336337592583429436587301857813984374326187145949809741393979371710251555301904464263457193936076193126556107524580330706471242465653479059938622748170636710303822387096917303753300062321620145541666959122334035987300073284141265522680235772821226034576915447718846211713490849523350833185870253802592862566374244330665816847955082948224629302895691382280438927460002428022650158556709715478135588450918609069244983028313107827909562912455301679232112360959748760910604739686781203348898059353535498389584927979649940833679717596172721111734387739447830516032983669705983107319531820827082181085487898772550097939729753581164313803530767943039655484141137818517078927734493590261303086934764277195582341346380848604479293944618721164889878083659438280067611988704787452538066213771146976128510988454253999916655035609664205423872265089345620831516160383281183183777043355094813737740808700992810085394137680146537357216043453034403911524295407547706077551169659990807555553029224083789677111406855545929444847823116530687212234876440636260507484678997893639220669813866081868697485281537637491451469685179471020233171814886213002698997996831020766651139551494463251894596313812566535210188728043516770573561127401219640235679545332728700712476532165346781101026506994627340986426168244162677964816031372305173215057724924785775943876026916633942561665890566774189224870856431578868621395978618686775545687387989478593485382651324392453062230769088890282421168143456924308674339832877197700592387066770352325148452564774085201913369299319867664595988864764446169384752867577413322825694734436879374014763571607273676930137505445078405631198894957826613296240000235104439643609576680219483012473953592422258631449270882407693480261478426269539625153178895359314144255949867279788457003213818835489113124286946293732754346800394924443383662366960096045267555578057971940236279450414178044927016211599088780762350625723425880390103954339618715099098806157386324406236900898431406395646368509135693049663330637847088260213652026099782213821888761885208265926088995140245422016985835947860676753986250521795019377470857638286668402729262072514379822355323089515769590212550841016489066924590613586972313338663154388395899134852943171868520833160818789114155658955649720866573751591719338837038693683769310787257749494555947285964002740455443340241814304295934208144205275667834896235105231462767446687937965912043446485305398485525565594525670605820168208336457995050711951699610899566896766019358508200111201276730986193643811366266505902938810244470366780560717365460711406173156363481313500294448861391361833203074402247602763655288874637349417255789149348403187213192498306201412610842471068542852426826680312678007649383427358960359340546756377314844506548651503435509866787412117370641534099206424532467673996787392105773876043631574458790939660775343648156002456520791531437636660812094527909766191876807863057602252087940919571604233439498555808420775055552548162513151494244791813442021375773689308678289784490506347931893374874370660156710442946082720233150188489041849211000432394607657646604793509087786577203970333414730847138973620740198362546701228082776735309264466087820549443828388882887820726229440310551808708148612135614907329553066694552302216470196639986538180264440387175495515426422800235249266975984406433430740255910604744550147918498475492492522227430018577843067634327565818214307453089691829514950683441947107137072051809064153246140606392693426006232035311633389278229693478133162337320183534751555938303073361923120670646053426959667417738357664821110516696543564413456513097102495430132736601298424779111405289083631204517492732197656735821369686736632080184617204781564231189294669825012127162593066502697768200774054975130259754095856749864495006488202163770478783843564243075762627066800743029135727426608208227769207183795015020838943478929933755483068735549157925947151100501767956762398343083796843881348965947343579556777158108909514813325452862853246809881158177180513119871114471435080238256209716596280367680666065519626312289159733283876391163931577712018580474719023329652365515393245824669887191589168638554866391909944335061847826197618965011264537456642975850517760476886162208906129032904945832124210288464093587812482799435639825664159707409218781421171905510773683810059059530605641884605790382188464676908703276419653561706183601152587533139107787427935387418403395999397113204347358652052734099773610905157182666117396631411628039949723866679972324705306855808112586034809481206683852602975190769419443463638052391086903003701375329721756974150588238730819057431125660822125242280341818502986181128622217110835680463034988747644487244776612261242503604951313233745177309160562767881190005004283623941257774971192621761421014552490893057470628285724309137898309091908081642827018239718616396552834834958832093745126558992808560311746302600090658339822277283487465010665872910809142823422954581341826189350911830740000706884761693681575206519304024791295602314907873272329287193139709961203133947322968549421209584705701376674971468535393289176538689156840321240318432748199234264325845047332320778890522828569361960844454063248339906562286146868895089727665460856221965092733272951089235152651089809512744744136528102840597014472390671132553113881636066760831775463662169385116934461563797821768472482324618831022006216141908631766209885923112920346935654821969122119971662185304701702337753728128526626322827130583251301221508849571317068594018748071649613313965488993730612594293187354767529573285984427710523710247942738537718229641536022890066765766066481696708602446343562362539494690607022085796516359141908245665548137033995293905560724881822986402830075901850328279681373339707557826225737037572266333000637095924926939041744468527219731013534063770404790343829466327543149883015070551819589363768841455188096595744123885809176435671743933925706035987169482932912465380938864395655427716052965199886931242022601279379552436656098152979252609892957046837328572276466749043411524969590520330363034811318761265825726277563758796072691929745246154479372553930743711911967514894505928097756272974611807650640623823103483933441076955082066203162091559316029208601096615050376022348713249132988930906795258740590743477054441615386736782341611217788786546172228745616889657200921230976569103309787516037130132521783032426601212373140919305613552608351566814657779515741642238492692105244108861782562635687286663225451848707741405765703094727520674707178258106146300489804786259753490026296732865167069151835736885394032451978494564491920663898100875138633337323198561505542181379014391599037040960153570072052270879917767467665240400458670170587980451690337289746002093046652604599560151167166930392447082904740162632727669631007890343844444223027069094561545520190302032356132473638226202920506604007146268852401853794509704772432787077828148549533850045999230671562524604161487043455571639917063739909383610177354323628476849983105330645540847515552025366284256928556157895610956531364853849107926025499007350163878138551320623646331289639002292211280897649616348621622408346685107696904814113990082738756125177054227547872156231515300472321953738570776425641452046000821561742695087130669325346450718240160257854425136166470945055822994752054220996680041467620722555534368721999634111203876213446699574992086837203634501542079632783930052538432168508031032092215468048721004254223577092406602034678907278816387054074261037724086804839108586214419147619396361833877994847909547301295435626907262976712077364709260751871510822546769790809995579604462411475167208956191088698954886522526287241470015491367104006123373348748169141377016565073920382977453008956446895681197934577892998202494304811138322917926592162038928995513251285667270530126905606421270160774573324827658587615159528256202437618594696612379109381250176389240782179599768978781937312934274323497189962127004910309750917195697895216445461327085695157199340081940719251249069816622614294064754110549018553172212418999561739387234493061691909891901212772392585237976975805618693448230332623659543086206551279364533328450189152265659437038510500772343829621155164463642451864455324020743473756251819577025424641773907643049767022853545990754222594750105547369058252492936433280883035240444519746541463644163200754763466428834790716827428599677644828705021765718053317448949368477069881570525597688891621280103016534148815555228324508480294889943163107176821491386343606757774692852170503276386908563373930041351148277550877889739178837722176156507632482323949012066003391338711388189476587144842822153174553869391287950137170627786753502028955518087396468633281942766287917355650008147474823992301094043938660796663538427216549775818333680407139395795034889911258610513919006113487244478164173739816032978372440228034188423217491999618911772623877098044256202042932352160037385418223983308782505065424545300885215218871949307505470264048143287733891489420472550659893226380661332362397915854196821644905801201060633696488929275721417879223097093340449215947747922169154982746105267070443791169388458258946568746297629662925028521128537447197281846814262629784001064091801693730352407884299866514691545559085978818716043374217749993622309233725954115443017196323538970430518603638564860575405529536080307049696352101823362151584955175214687725522375492483558201166064666328595352982019422070596324626436728888238164086292751861850884458776152657175319613958506525583262455029338974035107822898327988488613090645659445024230254707500480881565478379758956340859267669255701129283159126899650128931670664675182300544530108497133916443676156726905654888992298649537720858439975655975475150936154171135604213657298811333541813943184354066985480914414132147067484698728244920885310464227962164488863325670990429978323312098132892005803548754510174071109270293818680242625764984276043751215560920135971382395448498917145931019956316048882417499475850559582106151162295390068328084311845189578039363975125706132021679413490480938787095280130120920442845106438193958239875777871482834429145301074397873975510288633381134934363346052934150155786851993931706129730155094382318447327356641101999426016486880169675631315587478619293456123897859730817945191743267728408396641057016886830508704021422503686661999844570548850392230912239652648310437175867084698251404772275266079169683978223302701173412867351452915082309744020278557700517786315410555090526203001717748147083296235405329600774875937740214170271246208521918086648361768727253160576131625655966659632459887731759899834429221401180070468614908615868011141404679950158336590536227734854402615033691827816514113079096324975432865335469241072343962173955049513565774368238156025623572466663300873744226108828408099183037259585692772982028078351351102017659715760005007637051318433112724546407741083587867799771245289001476302608847690298177511118908584025199930805393913490032813008408188836374568006206163717316600733985885308003253161490246958670627078394832270500095041185704889877410311493820987247573254251204372444136636959450687336585475740612895417199203784919424445665286485816817384480122002390222714575588684939236356352360275129947352150772051473343607555058741165376125782624269472856041601938199160502485499650988320961664666950265459308304553687267102722379312761937955577643245727769626456087881344950836122438339627858061866911435527970618836023860773931421783339470058649085935924506295896687190175912183956430506077198790843819629629941513562722857672832372626743796411202305641428264368255503211304206989044638663272048739135662612153427981025138352265136876267593691820393040605727273089152751160112009837013139908478542958554615694795803380091968277045198088266073150334696707911809906707893598088252971049524312955469336013524464342830039856954421087845542456422452262647960140750427486740523517219946018182604732824481176306747195786476944609410732129629140187936003402924220176383090836133531217540963754003813791054420727260963845622770143338214106248210538368440444664733910121252148821569160972613508248509072184360876308903504848689096085580150679873761041772172006304283900250539959570992341566159104642328779988746982107098547986708639749707786814520510101272375639444135275227489076597890969543611271786074331793546306410115235416974157788965754828421197130026502923834003921927683933774062717755253248812118058765196746010520840598134549379029392734716416842366173884582493631975989688789643269145622087817508111838063123151471643783686368768253530909634359514935026521116368104477736914291814876806401278372498384207578490063046599003520338105045728320484719630928993271253441143484596369143892913608284389393902786106987399533337254848230102546147184662696738134034893842030285852551560637500101068821432377594840558051560197202073195503374849558207557188915496547135054192171864860685327039035743626588342274257328929993209431107766724975262235956273637817541912359400871652602617771028907152760589394988436765335983862741716414705931923489212376679146223888834262130378463844219275036031925465042280172856472789057869753916557377314201823911189390511799472135638526498370134272287385996161498443531660242287637404025117273105222813078743137809887173219713320200853320124251737658966716228420459131656374778961776804435774230954317417166645067595322248851777052748161773799202497534570159413359496678771687878784756088288135706818264920868629525724179809616897627657764156074650926949091279415865114287979800733217547061071792155557075284176730854633769963477177179275212806612978748508687071461042076943404369211315444119259786760321059531181999684269203638836863782385337224487352123232702992361613646600087543628719260312687514088452826398028987946955787135931784834202066114875766752266775595388672297135865263240477302381889884357625085410846945385756200420777687698138017947913681132708884707420274086429164659138378264311185131727857574632044352202628561725054967605293124966699164372096269455039934655884313881717957473774680532012138292115765565607388134491344881895373215356197921495576345444380100402257328681642885542529827828326671556896572226093433938947343998227305502775126633107176878131578415279303529381398274647124174638982372274315678024929683296745687767248561685049441018615330023295690722744607327844992814216354257494535903310594501977762412224576238814090325984905351893680254123594096647021592232352187819530049166141838804593342912240271117835930441051122395692974729762771852952104709923905407309202397932581556652623427190202442562125819433047497481282218066414952401399098538117346124124093001037231354093037456358945286406295145042737635090562420105985220983908060219715050100004940118371669803162827860298084365192079904849590782849092458752478307294337103122572235998902961742026908630547388286758761281422713782987062729964742191027798247488739487083290321700639995878286433094923537060696651768705708301328685128714949086146328698874664072325648675466478276963783192688291760152148772643333409692545046897269359820746292966878247220111193819157208253148326387556595069682535544404744155691729923638352607953119610853664051611275916102468278254188111361784684472241038438896785629705981484706006001440553135399632708616403563956651168874292785807932450199190146789224660512263589828607460330089933985162763620819793763888310783906231393086429168062155829329271797717982504110608740988679286777249316380486000847789148808488928551015443316648707231792420234584154483432780885748167011019202610964641555198839259576732550513761342940559086867934615590718074875683910696739158027736736976876099327898230161183186281248867027522434441358300833749388463516720866070477486965455523639688199331320801709327727948559431268284499466397864233590399478634943820718189860117181068724340747354069267156779011200790716197945307939353893905786839794481763202627059010446964823176325053998605466583276228903113391004252865214001258259815443734881042304472135219091651793589669677355550438053903998870025209064950967664814213125925041366680637592749900444001526306388609581369634138237991502526085697351671386176809637547779423189663070707812790003263639636174972597932233302169309697762456718440900338774185593591363862073801276285170189712160649005084854227261409459534311527324884105087806463537216371954115370434660006650920285629633127629410398524999453569225256367272910559196720979203448048158276705652711239141687770487254859432892363247267456539990450116044193532766007948428442575552314792978147489236224483918074109489645565061285936042286039994251163591607261454026434352829266867973795081652870479886131072469551871422053557399361949142947021037679695624356361315577781516323428771648059975749635985912211052566665591556630192896241774137930236333672482476879246588835994756109770239732684107763018360216032532046980050649047484033111989730790717080338229826310209876010305945966528536468913088083760700527757851515593934504536334777024917574840626068488800921317097156053070156112074376875828193921921787515401866785921076183968785429848188553280827039905292331637085535469007488857923612627754748813043584816097050824137608516267214848056842132249321520125547535535788067457033613201863059833283196187364358328471396340508412247832449452766670457350705822956601064759237601958523266968502178628355946763528021910650940416831835191030841105431911326027667155583154255981078831292824278768766309463155849281241877507040988095660981555196823920998442385922753832515001724695195255532231617262189760487646854309180007590652805728565619499837609877194211159267006274806418396652149201756271106407438741263555817737053437867641018925305699903191452760648716144862182640126376149878016150936941692668259642043157948595694697331584430667527903451591883072497805674244034337378937331048482815486941711357286286506674180320285512862458810728092100645417732832399230272430974493838670786881584549851620307951172878314158132892923031317372729819186715216986444963013311433335104840336932169369146743968234915990599744784314573194017072584362261558308990645746906586818104305617210894282625316459545098021797737614448071644205636750397846846467744930027538392660650230634507506956339536863818019853540202732068139435749277305065263833358923675856367303612587228302228186874656371791784754208353020483017482346500904433883277634512798555976263984288674249691097360183616986238343054183985408343018398620779128864254365650507691636666427650456554431957307430330208369436988381087581575346604590245130863665158962979471872966925747348270563417841526057418509170610106251583511220580592603692289166193638796218997359464710917044910860640988532078306625831211732342727053412688558349486271247111218396019939197034505449774142977385243991563269764300001420759078862075900741730415074134741183699366128749383758829837973340884812771539990511224572791679255435839488119833338994900704319465412231516027331839989005693624507479103633189701956259961908515152316263549861584904751712786825161005404885601675455699293227083366365068027989074931371421720258900768227779178596653461348208276218912285533255558921144262324816982599991875224152838723352299904423297722308740306825378805831000020003949725043496359027966814366719241464151929393290265298061077638516502439355682404717734175550797687852226292940393303104912437187907685267432854225303196199848247054875367601900718711849510283722752454561056161777836316194263134693493873855355887964428736181952143591140484527695878893647824862295927008798153459425218141986333820630496304605310226920544127567715246567234580042025183676327759744620076311815235418922406469899650246310828359677464654394393487961508979560248025925729073378111103866814488069191606180769381643521524826248949493453707679229753284022012020664804882248780609083805971223320514580351905426633083683503588983156332733699967827108491185615461378816626071847170818547405455442375706278054375917522128995882422084283639219272347278962229239169227534005416481433903135571491895720698577749841469376040910053771142409913841199075238320119066003295170591370013509192579683786482019511136105594931944531714157856782376040781896769349953828621230022362931330826149792432285159547045352394758009002382006932323390159092766419940467978018609967783273987692386550494772009517151901771693720622983292353628211729217613024106820062386084505479360461453895674286525180170335546124887261958560920537704048361010837235549369954833252801869572512228051173683213571131795782662588398911151183148960212104258525837910251517685807175819809841784243252117209714739722593598644240815606381334305994518375336128728082798367295179696683686800692583614124954819942369181925788279282389136091697224075220905017971139448671802795674587200969875834627536300537158890313869173394308066026748677993768082480059695211496076703954375537607672834866930868406896180943984903953894033809550980021613556018272676604273688052277216527940770172941983720684046382200925259026809922402380755492637658364928974895259090389161239281943476492897473356355802562895895692639690788147726621304285618457294552747643413213918151245419898846736590332376379324049015306147705532345653341838432415054364056231486246778647506706772511758961570015307506483410403610685584468325365390083080663628484241287333997922719521754877616994508221043520007103145154882917991663436595053314918887818612769387756482729906749199182441897716035640701097073417766549193235022870148341634661076776967635204281739719652299711240961879319445231945111191415944018320767867576337274383576477991388509069135981915192583673985470650077741748748325154372489358909108158965501186275876579430320686821271722845564375618520659476990044972723073591805900420459671377993273100811175252137122462110901928597340537494269529701853441801595190461911750002820311634152638308153097736677571948638809931913274399135337128679976290315679422897221339915170442188279449672406948475342527101613626526224307433364493604799396513649325420856544863347843206689946388945948883335823212453214974335265638126492098026815738682076124583561876540409061232015786053709217329720622940525233262750995625525622746228704136320662684398130067651077868544231780288621066156151306358636889750785645232712544163030788812646649409659891233100576675538029610711248094683129970424821003631392774437328037507146360764585248844280615301526870297807580455770180935526099858884528949881049848164900301853580337156461344535579265347145633633034756059635478253475752095030140166741785813757541628822742425630421335546548694830347349356454852649530690349551929103106291584033848421443947878260748405167068287858640925811125315587880484040512782587906059700571884592706570199992516199273633198100887025144719492832671045956598857726886319848186419361296221063188024665248852464437811936623435309391872574738748606621588065749770226822126928862027844464846500243693253284502346718039088657722184872236103085126706411056425023187770890181438967460907459870364247368970166669869856875957141379108636352166400499603062880736237209141163294377187063466145984269274296761846789036750751034697499762746531809695919690651689887964438395946622612289854243512222316524957494780166539261432962416224357205215488574187137809921537626985228337669369518144017000953506692866425117080747124551925287640516636673602988007120678622752859478783937358168325395066113669030259134057911235056037088361267216755448451091437990532698878881054121194871452994469942084497485608563234770665316351110347944698305326184061696435405148867308521174432076188686950380570316664552651469149469024207035813573908108065064833046668033924989661909293380765532676127762142568016569268831505123125143851876500266163767494355684723269771855423147919362190301211487565193340442072640867042695127332402468062715714992171293077081174475229729103999723414650051079427768882738837300743252666933086082376365070427450825568954947482434086811286929101840594988263687417736631981357736759507969088625807697091306635398463374831187704368668993824543599694612370898203209720883708818594520848907746755596487563804512346485419341569465677342172040088409997251288242554797909137736337417352279718749696970855428539527012230118389750153471551157006610131586626413565747739782933623723553207992929314018659445212493646421145942924947046526963379612985679090932306249018607931203956397365165300007110391532315065744950958068766615142040503630910234079027765490891443118117734182725451592819671459632095701637945525030041074102002163557040569900471187188000141986142018565538748650854025235907084414293636501634211108973126560834076894512207437280401838452218408254482878501484762207824833741692061399896183630953098263116366179847849852416425255441415911636309228874131760367244517475206533241146526887215142086444586559480453175554343641317760328749117438711709925628941554935897407300568525492247621582228661359160008481241629791193530077500214529655316320192162794489125799106507433203650608360628322607813910465001294102870571037821034885344000375263297301063378298581248043489497089794453102432490669369981035252894641497539443252297449306861759326472339426672461158846585219246245047566560037443281423148777891623246902766812022591177301447852021004115225349072746660305640918697413531266993290126820130348769165650568708767847944319051031812789754074495802119044232229489718022508900152898957442971452099916226214182967358719611885585051498825942785415367204860591867139494768604026683601316615890498129277974028772401313729630657812847798285217367566804734490490598895246946610676440687726029064999986680989727450261748139652470942952897068891632406118679194100065247561818420709448047414368554984905010697457497910617574049863021171556813205005523403282327908188016940882468775151846430258374998063240085398817346282026186058972826144332571926305820646401863400861724213253789572181745158808456489067857983767949766509278141138442254701971229551895404684395081906983006372248065191707512437853391499851992605904932686366690196025916079558468911648555204943730408845767093184893421227810470778084147174191671839473630561078610081249025255120882381970435672269141011407127833039362113255244406588734368813511652657179121094517396524054407457790816824977522224654793507762884097266590106412032879918947078936630593017774515581967629894107882211502604477527682889900938809881179822433319139064242443732610413405546297545289350136403101179282804051389858882431634532189665165597489142005866565298125424101298888560810122208691193838314006569053065521816033506718794931594343130965932396147258934459906575662226719615668053533616411536148850015343053628219347785583606223172123872961231375003569645216444716848890788185687786529668381058168863651054016415449594886920816374941550686754562364450362211283311593139941241370809901424607446224794421210302024458554229112045678857015081330136674346512401050034442244157298005120748688170708760476033714571227438534650963582803066459598925112415992600243095287720338366191897554919455860056587408313181851679881438712146797935266699617259697366403276165366908960401005287800764927892231850327288198667064906802349391993544194949629160810682083121586279143294077139357015674108002104710227323969046982452537499734937823785714721092396481500982055168611898199522528615050929700595005713092436995534308313196006766230555446525422483104391529268572990708402973885283557163604960903533398100510587817814269932700514078972641259461599342151282310907185562963684789110101283809694680064481193938456411897957345898793503099244998539125592889022036663827689736599523853038781386275898468861141666427558931441907932157948889915157609485826280376253344116050394045772449958574815002490954430969052560692391551595806689976219668167707440474733730432951242497705985078950289415495947711395468513371127387914958085421318246015687207226138224482972529178507778783722034013215665160735517687909373006095891656896671697780323269757821019794095035883972885961849246305065469459645885655414989042980994340078168996967875084799573981762607985973904202488414816854291258590363788888747777046826407783251416130593181959415659908807720166171717705766720352697206030400499104869118163806393945774941314176848313034160890481762823476924868466891524354623643447151249462396072247740024859588973334467501566847295373257806573674103145059130594541526465046857907784257244289753642100564096389460431798264784440164897920608680108347990564953226368687868222590590975027898258786448029200852196654289831363976602978956355832567364164182291160050852451269038118091486225835510986246832405089677682317229861315312557708336515185794777156493408485346906769281861099249698571858493086186704735588397640881531802492054632242636387243944805196204992111800666415425148350356100234786391616170452330625734562896619899896320083060571310234226632578150831084623309006712408286328670117475030077209050885857260019325825901846796677383505752132474164151324978178219304748143161912376854067821237491022582694213019734326047390547991741724506135028454309424201821846904643959978661121842332892577289394553545542663678024433628339750083099707438839246439730565393108438016664105413429791156372642922432641264711057643163125757744237304824023217939673988672829084822061363604087472921078402393960821375477397926909702593115955588464358812591888766384149025574889422740640291460690183637882363916765145857056616493815151349018808664372820948353963404857396364728611582212220076547045474373328219738977090129031013766650716907056556664090310824451747410166698471667706045163618423196359769667774654641952052169937521197275714117269320580905270488907661871239326571534446947870655837102653340027995204441431814766501787070172427666157526250946076826374740601140672638611679811423540361581319316517689021147894956798373212276063175125464539343661024956392925557727836654337426799403914154410375318857430635184732237890682933061483036013918075612002932347299758170482513036831314845886667014497000134071102744858403040915253048817075042757460110301913939438547273522812618002621962926625241274518066490091781698487145477143812600173977652410225046952144340797259340749623759616715365805114434682358060364489688994220393425230766964968212153716536448085887470136175287996155325162646662239082815724625925366663845226829143192391234909065870647664355589598004929007380759342251314695741423906288991849452343836146383591838409540537719663000052381557164527331828775914010501774664535989272928318792281378285619776684515422819455528152111380833094079735436801757902870469549635630280408945444509766205452872396547670537872713691386684708572515856857018438319248722074657502627080966388202505930939344167879610996286730024419483255576027842051397401987245561417404585490003002196220728110401264509438639995918546889641216804062277798609810258010323750858158449048962700773813313167406064030726212582705936414902286353093959524735619539915184848484999446304762302602305695643631831829197283342361007663877684897062281748844125364687092216951761294035796838411070451831715194973893243772010466059038574208230137632812061494992802388217078403715084766957669198089015011361660104119895215408513525623069483736440841793502078212508230009927115691792703654868975077692549103669973587272960961259136709348079352552172796886538166971320724983369004719937418544015762800145707954841367798730670807889870713850419172483492613556508884514797555695500278744033458910857625557777011314781569330931731431127045916971787213823416218574087756351986119207129525548054466027614657078246382972824416654857907474696760541857802324858125955517925228994924836566041896287596557964332032602081645512629912501630381732496751789964383078344408214510497588139228727971465129508794874722256870035377321840821000374014834995885360342368205607204286899336962628875703686429895515887701142895516585509945176325195794114519231625209712286977752737180701986833730111245614980293462947559927281843188160813915501387084411196545785047655500762953817841655643041521932753871890625115681833648334562373893309482987736955525377514558809453530471599773159354220255580110626045881269280739823902014898305918091364965368422369404695816471066097950271970774825943194756099698541720863389798933054864148837511891991125385021517240202622748749664313080567618726680175917250467953116952000685605239243376963530175919188221397603378183886995358454089332349913129622484594962374177563691899904717042851189174824184481029974103465692642613094089986984470112065304804591470817848930230318012322372708702209651724098333271505868684174691164017869255457079029839230890621370271479535470999500437303217710236373927443135916022145703575860473830261944092078095311745356068692812968815506019259464175015096014232929346273230254819956956515411265059365033978177600141867302553181093745402349118374706967350730448148569237287725478702208706759145809908815457689445463114915614204987938863716585078308303513446002961968024352757333732016905164188190045236764078543511346430540074603668515891825432438883710471229733248272909634208717165179611572662413094135882852973934173425305753762837554947256282893057844931978895679721320565870157216455620951592106227678748992054585496214432163933762341575631339343395324473890661100645876177877049669166524019473863349166481175796287881503421313669547468433062776903156711207211038291877302796937322829580386241470750300788992913596251592075349027235331820160369415959200936121416280954574059373254937011862669580086037804436318866354114551436009212831474852461633994514381542249939860836438708767072467096892811444849779953192806162035089536498323339260405699104303699832828472974501689102461876969510555817298963421830060474388825797917650253451945409737172118510227396580889921603826571559420138621496321921981715484197508980963971521848999246569296019305004491452181743868765728365738079068123318944365336889197073485592013943418142017814760132453006119879349051341659831298072426249940615447498618201408095158686730034231540669139210352219524058664526978991513962972290530574654305777368677982154708481196168056006986311133115090811993992606223968193890965408309001511952046753510725475952359631748645830529795044228059590173878086852349680892063608583974346947835906394505634392910043369943863357872736519899212056617974984301524575635337978897862451973184475430678558386148536017274878113390194771326683347333744296124810902230509534295940571420861593176338867340535611331044746539970138686092253577789923126008088213897916052166414755721166669506914895864219768410863616751409685891694542944528732172927943625961478032131235410362946195039858627104590326433027174238641326965619612217366927722096782405381460777046560610251712172378584708433454973544866366208117417389764535446729449736940724062043106070425169217082960914532686367856520372818782294171046052653210266593499870615752900898743709624061976822387453296390307679023203925156800171917930553346774489091272787999746201645518594288955279485571926332767232566410986495061747778936121506727989634085603056745839952127974715582118834515779088790366114055949031859797248162675182899618198904306625308935607807090488417916761929843453517762667767205232184729673379763029024970736663036859402755380352343950422615967972781639791578453346756349213360586108313483279441426239935422944287141682046940094981444352759685384109802861038755321582339914754495705529306570226054573544978490197460705651481405509529456197651818540847494709964059792910485323270089112358488799463554370219307658128164727442708841112590606011132969487410189351604392221791498650977043290201632568778923028993810212562848078521224933792535355627107177853125331453034489794455826377354095548362973477938379553073995863673014760188888784102322963037953611649040670485469247945194818106623856926347156243734839038921584056854915978026074887704325383507879629344237849091119370822755236539145158841795524716460117431161306643525888251538415623975859587162886615238301855612055870674467042544632597567465229353567051759785260018928683438337604728674403426532695539430953596527532584091086583379762671200925376132754281974783799616134059632976213369149363529037578191072099052772585409246127926900229036086233582032767238239731276613100892839199657053478533509774827602919222240219310098941831336287256305175075455494883960625573860015090786515192162846543761157309886572555389867807832240677006164535402520295200326126234636736663400660340533525965263465945701334833592290255842361458516247547552894185308506168705255608123788934341837552369150807022538929647688438655994321593880816096243645098023143190870856969641285427188207027011722493104904519080993768489741524146796738702275848089899791209145041175150060977257718323881775410545110195234957135026592944556484775012933975962721935309872552754180102676951382586423299972877953743454367024079936234836408312111178600214285721514604033261035736305868559182222536827578855249400504481154913434122213904941207231128314885396671592222343710528741741221475066850117455297867773201321540564152758418153052993915758700090798885503401868295326061044354571966432926981766712219469763566046965344070946983436154436497350628989446426685494329151158884142375542137109644401368048495731868915409917516360612793908574972224745919387498710672619674162795461517726000061704873302729399634238140136182045533619856892008198395107653584556932420404262845938554147559274788042676831496271250655457212952393284824749782963279662933030443693873356236182834354649770864330028725878724057418386540283022868532640039206207684299527171431543956426918625717453665077670908055270918568810072150819297498638283092009746781867333513094769143447172634672219811285477123386550489999540472413632976082136390851198081219519533508124028387099758121186019313667690600231818902668098109684588271073164562333381800429309430291066122363603524818469821883970517864238713972481911729915715904925406414709642633591917246246881464330134081725640320818167377611408910506026065965533795659830279984510778048782573165073567807489479217984402919186017919252794455525104358868546676654156259839014946216823632683237969218838347864197589351703858791991253528792612124320371784228322092159464002162873963747113868456928700315965535031379822263931724927611583333503375231394813231126493528490271741830154369871417769264606253545547272670852656953352502761300451153744360174916114371823094096235974274440104885249695455483916027544064452032077059669543405086765831784831053130049668827039106426118338377324728865165834099474840308633524987004821202671756088047715753636492968979425853583772702710543596861944012320662690634114534996436226718788749068168633043085298626275812208446647142081687521202254333498144214778697852556446675847809535322636998559467632594382659781073810771073041860999469045513006179045777016217379587399374153017392735745958235541078615298595302273503120276063881222216018461738308428858147228764580125435479356733118234156464360769862863382539213382949429877743188939187150180948283555072481026494887379419600686597187833645608584456602960983682215136434984923003294560712868559384170499102749562811174175820535122435139184653954698400836491632306456404169029566189156019500516090160208412301539115088594416509518124297268847032559067784459296318704270138801905782220082156450312405128691485925048837922069273795922862961570353366842096471843434399765233918798989586324539297624837439340254789721986071903028536146059204889220440873243031835917822063093798891563011634673120204747184115058559617985101533899882134317493523614088483348649271567628563073387456181239777355384118616323418087219417139969707616221375912786306208924584379449751550330277802401860133234990884514151776374152774481194820052792320813830705196795379894795191350155197322406310172266999114694616688520213756373794639664681260177211220732739700383845471267371991856708457343602114097744927594249046395898631713174256641120455154385291986332372990748867829246720592027048223742281019827129801125834490467359940207022155709263091522192524501907190134422975025502001384581829988353701518158568900498831711200035269515113979303702570845125040245522442602913053437347131386980933338046679196938673955758582919496286539260025164495642499543378200282150797886642527165154059468409855737263910592059730605822760518470015366711158753737539929400486054136966212953271912873109819625090450918733380614743576056245331889494739522767307524899926897143609492014176655937169590053571296423489444118915915200546053309980829032850874141368375788103075532817648141613849317924327330651997169777678267535913391637153705013792362340646246202436436737452257006981391921036660220818792854867780989595367796944780873039538843840589869738592849485193802542664772130043817874438620875916124815942720934896520328081816736733974581032630661721063565538547886989880445931790972381038955972739046559035413638801824054863223807899447960464275652358103111137289682047303507576653429123765753258742503818828907283122144103625562162864161880930316551669308392755613944518372009822162895756365719147342064375807864849466900849685021745853349023656872639782896211404747435473987738033485339058934107459929990602516586548484128817985714606134938752977649342045433399389091991791823931655085545191736554773595061572354523570727865166861017246801857126411332611330723141355949484503861722901310628173040531833956377653213691345529546209441868911705062254796353967956384659952253213456989495291593831888695931369504084841754154752926328350439940685698873166369170754691198220312497034447787014732458843048719537622881877957734008788525074635747765547569667521340120279336315828004172445991761316873143695915500473708214955350697257120281257190721482613715693903487370274608380858504854510127117334306713346745045650529245734872511881518605768762966365910703720041472511055139369569947263807117264412581367630727874587797369505140821070846265831735347824833456672518421210991574372413600727387224300961179487923775776816229081026371192554201216545393670376754427391305504714900024626321715916332608571927317640951346759944311753899147004936832653443052692029844234671879935662397773910499858800651339044060044993564188036523249275346912177487509400836467703482338063017824018074459060153282609034899424554541550633557835222377204708541093379367553950178362357095282628086468797002581826256651588504715857296461287307235361043627021193365138678857881762112387950848227001589033704118369158171897322822398532882782734221892129843555464166163127938201403558068835721505492220059081262665053276746372270336293473459784721535770746419666177862395195383513701069981959702829330943474226824289967148757537996532996409982834114778822462820100896097443918134701415586575367663163524922406662753005503153362459688258655799202240309532925339660883594373988548812996981271653657671889420698557258556618791245548713255456336141466891038423108593446053733223434685111690260250596036748172974701862679106881480635452396231409070969098921112104612861620553372201590617597595562564352182883288802323394680854705882910053556735724173092673762330258113684140040526021353933285435670153995258334299688037298975910732238749342469128767767363965933141518903311720110359449929891874707232158859999757565037628111621107758233783614094041100678546164569131175877231087960371308944838695446812817491205770066333321872210811708138145763160883516709910028459430917041945325290614225672217389140534395234284832962328697540042706013534034362910918408396125299313911470276456191366600422884629238450659265265216628128153622213275959615905482689331446898130494621473894006147477301064210351734423697570391597862816469026343919367441979319698299362711075624734196929263544683951404230194606359112978217714076293306108525796544450789024635490836276973373543309309180713857781036271028551098755952974328095353752960211738972255334045479600829420347285835052900755949805656440393069511649101565361485227900289575136188745328794199185540416978505039619358855615986409452775629824274217863277261303100658246573285592490105500229838314878742942302105734586536500899821392219494989263155565426256740078083346968343668382749375833560275200624642229152153097128035730057447294629298814412547425729996169650301359810442005873844778716070694466215627826356567811870529748873037615594670120915474536227442300742454105088905561440068017710295529301441424065329542068734758770804530682681745082714658823397165766994687945178796322323795912028478461860765551069814625854657289671456855656903063076027646049440182947670138686811551531992515481212876587803685773977314690818983173450263770356320500032707017784503027813227521686525791970157505080325669819541772129370863986594703515984665914696693878256567322006245756335006577398453811279400603309840433597909990107379235754813620547406309232504396305337271385601560663506981511413144141626785060232340139183718223750811868259648023230662050163850592915271221074567562366228773037587547430175507383521815616437351252609109256260589662148963534151445915846957707425972574760844332451620368659485533223932432568484035420754798546557005417813041554689178575228109497767376171223732136681467345002290029344409283055409579983167259125802835118569036970170924729706516019058662275916156451579009712928514070420426320677931971291119986847256048948007228024774451641509714891860816052607774216717712197959822615243892485436296083845643719154800997789039730622230828749038813591757908762006710370693500888772280284740815044443692719679133497941808176931148309306386152545302702761780083383911699693983982079607083887982620092837593618644094529979274278195833874833317947434597393948253582279194675945885396891951399986040138373547424120600313334033545978731130855436721441589301893453158482028560292956552567910600060721757465803738728882982982555820731176455350350860983910844598801784057877512727901821200596391650193213096382206710432353055041848361962153211197044529496122180605443048033827264789847590969714199553122259737742431739788930434846174000063106491413120379123707508901591311583031641369025239680771614883188378462155288233819327635636172770111893504558615125391477882654878074308698897118431851961973594207113864932933123046470825197175605200899105693076869584926091337697452683112178617449482404425620183741096114659164617167046242082961361137641685145274218910713931763434204891148145498233163908914278605577184005883619080480618282180593930782416280734760771807261342932096008200673184874312104127813048361343004167290991050513783467816813499280148596788968987572136715824541604768488875512372110160292082463388432949198763372401207318589388745695872212101481466156043285520210097698181775329108065785824091577415530626280511523484712304742768185380796024656610921038500044923809731564477747267605154067299701477980534603985526866927478133369581104866299842821482501112300986942842560148884585912640100255864357915849195320763249710571941647182476342684264234929382597492814129340420801385458922259576978375526389776459000260862497883476042086013280820377964777486749250371275794194158760378250531933529671692482819401937407141402899379990400020253467543367701553750113563063091517761410225579811286678813170940372340403925754851141874149223055445293618040158383030369715467875718489590265461811068616276933634116201843354496404630267092097082630936683912322972392721006469170661874530928125111912493086520203710569402807996724491971316258412127916133922321024375073228159723835082408843559226967852599055675770503313233241142783685003534488502638914315546023043975990168067673236226964248470026138808606050639291704270746074786940963025559862842686380601676344636466939485636883696477387263771646342699691566105771426388464440675713012778910888952967052052137402972145368165296239799610656698679504248197512933025435328755682539681601145679277260267653231698424924922717005481261424022143274281695906761377331389949162902168233426438945827458581815672291267735699516961448472113331874813394730569933073431211189346569562691756729991420303497877116128473425956003862340353798942035481254934360891601087195576325023722132892997448348426003741679571605352287718411607844972803997620879660610516445720162353590110656486396055236513311728033230409575929715243244861351910000554356983784152571006444240268124564539897903038921596689060478971474879932060198336194555912049989495850651156311381363929612788837948230357027576624714338211220238661719133162111605539724450820438667845581847765666956594129198362263449924697409552076788227580482682997632143200837701423945084302602759433074842667047545916561853763343249298081233145746930019336595841172166880330007605602931983085716998102352974734076765509647602221640733757387829586644729317530852209548132466703115832036209931927795970645389752203397504832191903008910480389055522638339229938649021417752314386265772127274055357370232213708385916893701176233168263416983079849782265526837274259457303587832195707932793379029672482348364425852517607803134391091915444369915912616720062907703846206251898106202098087500858898375847530280857985863952802348857198744967019486047882311264619954713519782229631363309802501540879275641655930234267024020038244456312076209833357283021184635164037222418916254416923588568739319619355852716658093182958463267395225164205021723653792494443303562289103696955078089101834418331421233003354087088255154247474810257374275885003067011502481826564463646416410596508569989341464554322509725573703088240690334291304935374408028301560718330754189768817440618421749510789940125618130615661327015336692452035201247519787529013340164388470919556009800303903504040488729531581550516882644348526867233911785757550645536419970307494357894126822587576471384622413515683192860177695304823664864815692223233288782853135950238953217386925452727082972388344914360349243144106700400280929693461295084014728574791985843614843086855873593251216652785109357610414015169666239566497784976151194662592641679679170732751551209212519715983957274466123178343134014570369147609825562781762855750604075456111727216844109212756009941435759447839239161777995249762638383310969260028513285354792679149775497406602320815525654635145475113874453385567546319131339206624679929562582304632126331316167894275223843090291737280457558934793365821679355481907028035517179999237976961725662135813234136699210651839444215562723271451824335668566877579278114774372251896194693193106441486905216809230443358800426539834836942526110734682524009735931534405290680080221411465603144137221188895874243258514537265865509044507624861675199338744129529066070348132348633967525018914477442590393646243670222126047220581719922864421144508447961046566668141841428067008246978554116477367612201793685735498599555635112325488041305128543021920094347315682048632804091432670947103161110984225287142476097112169638163661083103762849811661273118301843961055145793866796168998779481531995525545892299966111856228319138789214832063774664459761592459747071712252518043013169637424238393035276913420144601329801740172954868228508866660256727093889229295899877615886388370640520457765920150621535783877480241317968522782933204476809660309656903430985162784475406723286475660599444171771014753283234454231481627248198858108614432398768678039478905002897709935099552891910892127546331920289350758571417862088641326020006592467658269048474689656162381978425610650280186545384750378007195363048561953342593454545518556784164513522857643183249169569064629143172283589071884886760840719579321188773806932771171667534041334401981269268087650937056963815691987016421304886290770695265946509475980288962798199767939987383160914992440871950600508003003589543946130103616896093835100506880881517749951942327610776069955294722852623571803618579264211236348315235458277176589134285166385850872820599996988177048663963822275763324562553225672708777891835327472208460678784580323636404654065983239360910893423093412666274144775791705647691640268731092474683675102536890390638647307051947236346324726209719484013501018484256046930561506136629694954361854239783849884185230301278266230403592337199274338813588880865279629607306035574416890203708308885274544307453320763601037791307557075847713399729306477918377558907897180498007963838443621773647579816315486349110494737445396977392724683511407343107471760247047694381920709843547018660998927408006761981966516256490229820329079131863760547069961484414470113220196021656065693614872122326092454766296853497718599943140576834342734368501395307513443524765779150714445714155575773727939632557014367537205382116472694355017522283047580079770333864809963370257299501943146392119903986891716585081296599201849720252271038182087104124778480841138594323744509903995584920877106213800507176969900947049709307713928316805951691731284356154665354750894810720653596111767617902575063268953318000763820011342677457376114936846820393149829961393220614235930773465929421022138571429528467640175498131880054216845647570615178932825112417581478596375280357588127154754471167386262589056775052825494139545538048861161374206714268532994541782444489490578535452442393335877561422018583069735320363951213609948634901305453084511602267308784039933960646992711853833216971982498986618757405954701394452783989796630048945580269716484591010191973701625728927036752572518683712875521061487638746215651141830747369641809148555383444295887452984204230479695366702389633180560421793764580284599149300843789696009391951479645848546809433270005930231036975576923232509455720811376139607959336822805820755672006448693848501680532862414482630344954965446851667945525311561745583485738572626053062304567524580126967372895776597116809224670749127999548018815361398434177007911728218725720078800633229840226475057907776219525468064147346694735559013469462600334688811357590850818415442705211639517954919604650154471441142750500489949084532636242061857064813437824420480650533453408957191183204515269431030300507882163313468633135926309086252921180525378658474537839124291675831775661225308198598573688270445109813112386131617829709032987641341638779438207264145274049891679831471966436964479508527507295623222315114404026850632939883748208443790089273939983027313612829612578563577505725923301552719389438154703303157535731158355907084415034749580684230738573120179262574189518048905416812352607904482750616451991770825131472429804674927856674948137741224035761173057648652868988145759017554327049976284028622706467570996301713197414216144429641730767948590448477065472839969914798346046758057944551175234201211170726702546108324815815845086148712989803305321913109424740248386124504518443305195754587585340810667066853798652597465155267334192380342826570968705439684869356471033836440753938326476991577270188887851412432171856532312866943563260140748830077070282805438200131962020935799732540269541347348039207720827768912557185377807184660715292166394094396059442182670863254524013306123548971580672571257841026150065677074558031544123492835374653256264703752154764134756988791670319047385454920874355136908931616414550586896842617388220120288055185549249188780869211408082250143279003657830796981434211294400221884628949958755130455650943803645384495620468342169262532695295467441736709325711755013066619091317906630548315160953630399501950273060302462901966277093392789270655564280324143081359621351141929510613239973825645161780518886240751125440192760884079298754797314391942473979241965018042492022199431212208001326941251661455448260635247992958723402444294214903449229373029002511097275395340262971804168284408456002864934436251943394512737259378957596506542395577337375880727137126211967155746736039320309496117519324686269989232981452672739759233102520583604623797063354511644134208590359183541915879790376435700485288511111460269323758083371506949404012351278337400261562602465418328169488217354888961258325780525990322922386746745067831344482792585583156504994288195912926089628603814177985514330929610640537859071455346664436370939303657362733217450206322073409538422629303795383716229504923653410327196844318061569290216653843773952817139968680733704887237822735180049950437766795587945843154399915716687947012250252993497460105374779133339413295888672240337956132641731631273738395365458110784354436281030089837856212052059551398094249821753174259740801319128619093195664273647186267862562662691585613302358561200450566518913789679575159774812259473640100286853912968197713674237157131939904966144723766258284746479810899366160754588389531144064072812063601233936698752050771979210163066216887173482572512976363027534109744916527982191133344390985402122083708828548317881380272269157454663091096886843392553291560851517737599667742451887276348255742845082767425424649545197715034185912942969438205121418017526454398304513128351349582490216329073254990850578709729291749290096749251188916195663239255180364892183243590272979466200224209022635103075514847208746087750602826592321397261886894609998844110753646968922832933747090756986054981977607234774142426281836442736648118126101947649882680125565675776413354210646328111119117121898124129375701359219136601050505056603439598108383306858335551609388705689525867784489050084745236138550256834717995522783353110307564972972548409009632041865872902798545536252116482622825242533729115412102312532203754344183589312626611203999455251312160885475137319464893259555663583713083292758135654940727980980014131942824873438279270205156089222812652175648707507969263403902192243434650191098192314354994768987863007942744474271795236757378087177065260641339360928072480896615943776839442617957043872848678097075164691433990507641438011324962641930087759653385729125573191971776080826535353103022461799487377854081721158018110511241794256671348084980951635539339155627316478033171165188214066883228076163075681661298234507641999885610752464372509898234733797910617816893084818598056918819420549001096514933501361528280151288796446314428377873243961097129684308498380953088724710274770468666078447897686869927438406619491602111231860279367187371189547267752812312728548470472011958139351314842974495164673572127717543804507232328847030710169379286849838317982548321016713782457404082674170527464540430404509221594060542739905230465876081436499767199635207120296635239360178099985752400644574643262236268531613879002053521930875080021369667089865907275367982550875551549161169378419291055197647307195473999502300349489075505294204662014258462965221333661895110426400849903464697856524056415393764626737545949014868528371659165466813576513240800821408732627653762742070109519895848695503060376787198046465115525028041163834999185800259656770717269961363028885028670393178963635424730136456706542888571278411308841538542647501346017588878343089030778337227454972169946363324226673552606777636435165666366517129317795683799245189267286485487911732108706543092591087053330676573213769818219429596889294292070163426780223650640240277111704867112158722386769885756242389275466494639439259184980121277014604899154578245085002820101880794765337251602259524805767516489275140536675279201433318649038676847440279315816515900428326097859664107642086810837413366662503005588680659829592604943496222475377724594412016569706163393222619493374115108111421837218146714748470003454101868449507262155063395173407899255681448208886275596897770136100233850654052634594956276410544679945821951461980416625939425305556427447566372284794619772019058176158232220918008683751684477734857526862209412210421807377053039797492750003259492214508673331407299748330107111268822944407680745614900976655666720444563902547285921068139455000758245416776856554673764909877162833036154646278430899926191515308134838982984873279635426484585081189442585745049191738557019782232901752301237229393853221269136757978871049442628128056847192058996609787233663126816180141009820632621750875895917536119924521939529474378227282587944716751060141847080580822837805929945010901009547082390642068672767654695223794569792207439932866449890155947759869010478786220263778192045432621139589637768548645822878961169970048202599732547627214935372190097401710130700111732296772508104242926001865210545554838109197772502916211747045347372712864309004037179812296589185839884502049330507019519102564698695622036018248721356182586981296928925061257119666002092097173242110639647093097730150821818478660895002068924550765957156848804899258356938686667050821874806152323905363476059825923184525615553604143312141255730389641806697491584580273108326503613852420251605863656547712378458838704179217814650015260973874622110022470652460201647723101822958984729221721918831311152042792637858223987086736107584035705114601839055616209669909380919843872102273378381848526818236147129681834844843417189528345169036644490965456088202812257629115342769703486672574465326464022430775935556777763512882239564859654184483124045332845746968967645004316071891562046041993472812961862222851625986633510570791995287746421151169332659610192746367008414862001843582851831648604787165791092954373470632052216179493615280563333477138522858230672182317161733023460501772543516286936385713698816930721022739761928742593542468271363077133742515754605104389545378461425535550385702514385846569941408269243593022201048998115014038595350089310102628359953080411464811903164817467540544322930792338196266192446814216804612406903583112808816239791638329310112500777375010201286138912953395552074141319040181107918470145356532419756407542735266971514498128098864421567506291283317477981688332197430998506204686527879853459145851502977689847692308108910235850151585699086749620124964342975820357375111428626812312592150185737607262598147728030209834588498667902657904194653873564487248652426666825333611659752553067377646321458399664353083710299367127588774133261433218743684838252699964224060084337111042824529378638072383642255509453677046658577163046545958368906205362485331678852947891380665705568004458994651971129341462222241697704779245561928627170364131242349141346216360637911753396189611110116894153891838585360282425466923707627686385556377036449067811701719479006338332418196080464821533956871617109334171880117235030161273044037170768725406516533561856831633174942678275002397781927751543752122827828904672438911745251234778490182231076066598788183735247359821172691626519244173258671004202870738669599737644915500261997373793268198576868841526377581408973378041331348466882215306476110936964398108526850447965202390877512643713687212267804475489134274899543686614554025670905001124957796624289187842048201227337587955836154236598256177791041105982776422288524396311808124587619654802529741434976991901661411983244648698348067495790307603458205392671103427738644955836128752931909860924455908289629551104803497787810599617010886195210900350460563390748591164581401317850229593281659066038526213302975397054415492241499215753209263880859443970746175358566805852928890637865513082658581339009777492091394126633805955684939386725531855554987578973896404898792540114659406815040673676227878916948862947756718612787535982897798864050606354554490398696206775030697302775093124592032095964479106191835477993999285269817615720538865328041088907364132925197120964388142691560020227373843051315440456651656872727227742557753584990817722249843211630367004949990188772254020917610677119576109023029335651572897191058352291096202484800409028927403184423758088238165224517151614601691861697678390693609732789449960563417225604392355642903609789342468033363679190015089352814733684918305359355036632059146579805687380256523913707549119244456932248547701817164919874156091082685051140308467668161786772200824786799322532991946017201679671222342099693729351235961504081191944762961608063504586519140911532311211067118616249861879727343643935260372879112306274656736944024589148053925549303532411755651052159905022864877711818644859008569148788560148291346489492916211719115039418537832600708615951081785147215444221295129451738133334332069762407893161434418335456732140160080369158653138351456063116622371311596631548524129760508642252408930636713957550135833170611002872994142155553127885940994650216165370180330615659112930508607310681838730174538713001420439058493296512779203977680770552988581752442473649830056558004611208317439524277340453216735241216534055031690761128041124458788613897404074218692419430361550891327895693464187454900240793625066272659081925040066214076495520057530557249240334910588854911009516569439920093658651769752864894329066607042582495738123301103878627317224609878933402774631904102366626921694147267833153163622286426686419264561779470614127691948824342303066939500450086535849894764073015898725140611814800870181114982364697756295725482740659908260451970381105534232181576516123616724856920423573969834978750257929010668036664135729785738141390172003409285785221853353262855975865212353645370685452854071875524477287648185071865220746155284771675864853410211313619145562837759393999950104372731729660962707573155276770461123620033971827856225106262277781773640032892984731422094781193354292875727116886263725375114845956449057399475203468156779808155743493278071616429927875960945113951171490810817600962650999746882417821598283244461508809672546575613842425463417510868303690710212182557539622190383129666260281848978133620327119379997108154966244559921669655677456853658426559044049159671788644072744327172171125588986081983966543408541183308561306621082011513171251145500748160539327846284739339602756415460173061815362780939270510376951235528477914444509274284873004125019512557376985749219613304565315880857691321664372260866169618785140232936000072393964569369854465525713539234959845482472569051196314738764645397004506843909109787154549574869183227418595506124959802022758247521826337119779422954246350178182761639934230916258840143057345786327516192287918931860637399812703190314856201262490755136455247257368747251553207302048689381799462929038188599934456676483454725149624833128591920378444290362464941893182086270225964329315859280013615945044095847188630466838206603882689894178964161219854922444656973353735673320567839846612685409154675050848168533995751629110500910894182333619000566689681363689049263890731870163274730033441705569323274978264458281060473783480770710900373051819395948947733021871211185514466615973984470303136437962287393070614423938199472950396072824786445652051358990394796130569080703914513142749245685914880754408483904741054758222153631924761302603048551167552579507241455936709431486122250136772772401837384841949470933714926429697562477785636561013070608471213685294718405339751777310504711854407589448636657047347444296230935773790379912775557749053774061257581981111157833368898923668575693481162351920823099643989805772584371735187763321695751701388720990293851247099137143531838571124603464390748619797707456631651264556999863306528354785572222260998710379822475426861588085827010791319944571306198437757360206367026476645909969364437599593092774197692443132753449574227460760413734416311926425131460789719722453880129995028781769273499603817593932853843903419805976688676773296334508073403644397420854625662480199243500895346285912467339442959444898872063950971852896619403371311286436300284560181453485775408295373780502717070595000529484627784052646195181024499625994489260830281344278496578004528364986798547258922131746721882197155193648435362749772005694330977337833051023600795840874653347333137409462288080915224614817651316854052023947566831330634281269871196178801583388401207099898359969762062983083352743058485479803348467766626514284918263242637424315056261823772208566860715696483716445294340413184095693979875077633203955217505533208905509954925506266254136271493486239263699409337016368448423604425960365523560821901554301785502750767386070381095910260613472443611901290247825203738383054924800179771482803709953727112380076856894420737956068609435068250736995015070985564191160618575141896767651122698332090336091374690153651125903435478768275084735581774632675995444234170921566809947045995985593361852165824862239360653054495257759419653917460627903378869696037702740674015589557282507420068514210928957930223246575909370721326074504177664295877565521018884125125862377791676890450620031801140736092590571271627718390694343243306163238051148277375665431125043509426147243514526530750810988204726472571533430932329019608136527649871274091123549480113115745946790391653208534477688784741831318307986103343278329180314062916523556656963077545443935845390059874281204741547676648112786285019624099908413543117512342537528303760316762988541722339968354757527763399744515656826752110764668023518264302388761320240143564038482825203688025475404104002824414088138605798020555136284205406067861686464149833387714774711911693232561588068917991579335499593415685957784778811706211515832773347557246592241314314845257117759263955453069294001363708579075233965306450130400975550209972132866027009955070607353678154551488514601939161771168051835868818273642294356954359577703283085112092265692139077568513019089758130724576141649129336340378966217725264941728977486700485664658392993184730212244099019911602206963337707857897103457220847637232357166303216084595273875853074956641220178979524888668329024997891517784166160054544336723387291381313530943945299745067042663537453643959523504638141618124375953970146597365526096682378012381528825162216554784870630639145418474440750381576081191020409512255816224169767726208078891761912658874881161207992566624737948576169540989371074341392814722985766021686352141942650100748393421143422449017368623884217418115062547698186069646283428328636400960737549685820804446514667596507758140883612127412180449695968724699949993667090957133043071655540568430539097337326494624638969835750354682302427614360466513509963929340938862093853831634343796690390278669176424634511110822874909085170710021006979955392452540789495727935331692322342997195822015524919185821956799468637318774209484898541543220051240090563139645650314910105572544218179190310126778030952404511463619360076150471437941030419631317783097429859081682896495942624996413339085437128495789689559331004095293290721956443409593288173524607728157678583455332881464338284368359598050560023849142289829705629137786982658779607169939217294951286860339985191484146960627182303870224732617709187786809131153622243517785451721703545070098603476919651112198856521536825630688695259849068351597790228552906107913059574742913429053275612683658230557489159271279172106531341481136003223975380772310839919380806175850660936437847162952397967537022849847936935406149333857855532261703205950693485887391090882869075900392630072999502543857491724912395505215654110754855105205891089812238603444340444142783034653047524533025051029413775183966052571304828608404973520949124947328177916744627443485467086433968206596448132970415618474303435229363734371043965762607904847807409235777714213859217613807747974732986443663587798209664033734587341898460384438880564601718063086112494888048239852415702477346426245315399650078208333499689874188346842515316086383796934208319725257503158611730872431149601311058537270604506035832836494906495716361207604042434708456421253519648326183692679395375003160945186316132585258771652042639445789414265835541004493651818213032550545784766646155659021687897939870498677188054448957181600363751888944339623759681176882681581747916478246358779318449963021529539976683758790950017351170892873016412364754891824566370858994768066127118783502530346065106633651309315382255110886712544819044097501317397498058717595087074469959272894132987703571964859708985362156049387258984960115620349664987031721974677674640589754959101801623682433437881404300705500464520699641572840056445573337755350653329710197466297473730166005396517184277895719867678372164405789767376800930752659066748654208213120277157799708634286941457878785526115890019968193518288680750006667109998878404650649360265335583985014869902508299055566767331932128187234499333575266200927462167907996072204056991434431697822620794215155509546646873927596772738854033915732394626289149412275465550455455525714669254273274270326218602682552529521362686800266378898212047962465048224399756598499954610462273540899454096986407302462907787693667621482409469217570461022767012163505013113757549324882379052933953179942208525599837608599581155100481442224335504651369275427838656676741923785851126511009152753517073467204904927179699230089778233676817567604276516849175627116867232044890206247119390437580218720439906804888738347237199822852501358293351812710437311311868206794118874205509301727897037877483982916972460011549556029823990296828829417702183926340086435405109909014024978838297032452112201603576616994181441380765991056943623362103945583756519856193012928109263545819853662007168548519748179812205517438442786810092590395403930109806719734937480344873888320788994114844920017766490763712527234992274828355503291678308062783824949832875524880554976802185844519888621698367632609632015875954931499341742472648602566068354768006888547750773082739258511514657967708838508445951073372215049054834741268449507320390719045967533190716972843945011167224514450364480789053047499924927089872069181539638507901908025948453849374578946089286233464913043998658724052295457959997552282479304007023547035269784269160435538436122748848387249748318806208315326258296262517868530885820400176771442974268917404122677479812487028247374430509236099891129205268043882204021397883049356150869907661924244970136137852979088066705504512729163200893999792698256574211758570439298884416888929357175807520696161881781619259103872917294675177376433862566408357781217116609580136647273352418151888590560893206777920311885277447369036682814541425992124816230985863225771666892986739761623644577107683978923017070585332497140713198005852368605061837131521402657938215271959005599099642322031054716964663130250902132314643922762085924986409625542924633754407662590214375293123006916390397948756387298455924531087809192320132371717831024195618081755806244163928070791565696100395224515975460255182001544492580431619991714228907438128668317297247398804308875841248177866391912921235080689113435904002181013730455383443765392428085524801345408221267598656158706513350024742294439050215760094865045244115082042519456297038899168978405827972527015386423614291196126697920740104431979032204856291825386340784983075170853218270330473401962463560798250783183173118667058828911577031178460096525296425794744967661370772514681852961992602896850504782856507199286832023704101211316281964455934429356144932722534218774923092295704097901406632571009252850735670335121198946957673731198779719360203785663358531591193249352548747038883325807850951081544830874118487983069400201053675564322033517031565526681781126378592689259118960535242312162186559952851064533450553685423859664224598545574080258620437461987026976695999461397857869504024104753489522703945625842344424725618860710203887864047530315456507383242223465699285140194633636257251875256119664286492772072509347564032939121681197314782126229333555014897747397294082734421200435483296626969114049719577507008680759439214939266357206338742126621139534946461547011722630264576980359306360926025963818886299714864094287311433518142505770095025411613302304099372893882869239290705680767949410340051117756690195174482112788215434421521068798610279221455734420808079576923802860137646582113443926234808609808852812386655691108587817675462943135445074207531674045584722919079668381284258389239866975876728588209399027402663293646499237662518316060788332541678887729439357193731150656477335121329025743778910993001693427356316292400648875011641794021216910298183428806654427706832421752018521470934806397063694343663503725215056473746541543690632421632731730898692871603681886753890763683700710599179586936961920474288300586499647172630276834746713355982000878955086196595810539450833170696347966295788022359170282863581239756266681591760873974536702701011240594104017067311431670235670209066594454784917255836050403728838518913329453042871660144581943507362487405054887081136121102964351211563423318573322148555569432771659362536438615511256216120353333457466084035269092530258231451982144276593806261692304671141677169584026936387240350167979553329637055568944064552792646286254093706361825149355343245901431725611461215041185164018007989449245638351217026504831849593611384878514026472599196383622757468160570082583375046199683644247212060442186902349185445222276842445960866612062013745543410905704593924340280254859927166231961855068817831657390387489743298708347729541770714218447459243448104356065096178710404541441034616026639901221638886376128441007351098094101674351872129573076229940729985199593130320133028350354936843330940026906644207150076964190913474289309285900891676302584162016269272550385111278912741187449252439161955893244536102869627746761662066872218819111026935082989894836120545627496140927269794598782624948886983906471821604116124044733343868344500748847330645201914453762435325171261488836341450893067576391105954165245054811476339765095878809619455749685676748872954354434242211820170725422174360300715227465650337376041406262927745476712556693194578845434664061792624333931963376540523499309695634534683644851715683090499261554827275982828164095234238545198120384236753800720015994026483968676632631624682662606142521791181984300959892096821159239746608789671928094732034468411544963632816593636886322769051160022302000816753395274085731317351054292432505492886899289389325606907803599095358287204282602003381277244046910216523104143471322576918647175610889943953703502731380837024050020798311363816436010554165955453916547191428918425640232989697756788809670169292433927770702646264060749453827361868472379352063607036032412538525071661116610225757173142293528540361651518872259460639653836703135172045683855102570128325985794934589626558363101546811640587833295550405597687480280952398924104116878615372569618783387281000419568691840680433778550069479947665671980318507737894163905439587034430477708045590648159369626884246061021713280020100788622251919774409336002980805140711426973173761469427920817241628337509534397219140711695833500571417491425629684269607113501482799540640994981518287246013021290065520843067531412927968123384886455314126898470692529692782593126872263391405935632470283622921887467296340120499174475289512372516685859830992802658703619202789335452950551292900291085950700799389686421977753728398845751723382805052657501319016023490008504867701961462597487673750963716265476386901725432001720756181127424779342209656984440498044574836957016567048512401753273585725881737859032896694583212330819881792003170792804202685599629919296907025067979285307751581858866777462092387686823394977862691371528675792670787877954672358161073231843650485475631272540764120982475220852145658179161509304583808562593016732505523074710134995171633242945158046499265853754813081713604088024772074695742293480929894594979263290335246377173128131099052025430848371078906754026380987530857492458994587149333840119191337663137491573712530572373057339183446909974342698445908613721949604046007827250468191790812407218778102592989942981470129722921584450240367061779428400680720902047678718347322298381946758647297866688360023518976240897420455005023661047798788282325944363285246746643824013271474997318156211195122777960216160302678688576287998914346885026951106699311742850621050841338361442081017978921603182641404792178743049308247571395788046098805128253907180715226206512421804370259343736395724570314761223600874482078751778750918699255146504161955777669330049425799014542638805584830721454162558760362570808554332195970447615958599235376462114273876230721553224581167692417375670540146238828825509925087368058421143791062562848128603000221361833315307674633026689950849427128530849821110505373266942338769197535307809329221352805152638609839222108484498937713797000049477073674128569549690904403964689853355509911097521869409152042064627416884801736332808242802630453547073696029049846968898594072242540904922175283038400331685335916332313549793604263144280717462310137190816373162953211202809566095361606794194435924891106698526620578943460119843500068074029760568674968394912275145968766119782791827969837702946324651319552401494623188085540871914499261646848147923554999110382888837935853517359054243871499020880782409914468863826219805879671936352391826022353476818899203847323924122451709981488072132133610087599777651061103349228978888382253882927867909336211904599005946924243899452585986677140717838762210116296094013817824264388193846046672292506695687426832978219281580624146257487365201350660371935235720626170197447766303532613122196381779100096757089737973305202576553598115599054692344347771935444217527117391140436733038963855731222795095814264095178927262789232774604786391417985472417891264477811687406527843061060890550041063444660156014488139724168372484968504899246579291020831308115244737804161192106984818657295997858383555071279477588793971279792409100459623127906430659107005693020570178035095882363792585075069935817060023233934955628834722651732753113904286763569021264957001666444038856126071326851148552868931245777498539451212227990198443206585424795251955685396196528004194076457782111068680084735693906238700154670436249135144522003592721035813376917125209552700363943481358703245340890641053190235157309515808825090883220039480127202716297632841239961530590190714906138289660507507812457057776896709764025495912552952591941020247342922620578595464683664174153398819984398394126841359407736868182017213209974110450910810374325586456002282244870236436833896328501506115107267789494215362159344046112199377950719361493835101807484420541208516887611419277628068810869202149313072982049639367043954220732807581554013339431304911742509643678072984860746149311280456392163505228639751126299750780946360943695757818653992623225912812232225228701370357375064057199339492772655921319098335726748959012494233937239151266824717245569728444831979999755420715360870435472051931375410220940657561085459330720947371861391607199368598287403624506166478347592649783544544958749947476551768175722996385085977212391192439511481364801023479661950291865458396989051645348735636138962521394711808468967930133850706876930711163778301338289997266668615454439833869572127887820994757895908951203119763732793964173235946708025597865331635718419512973403698592492799769575265358323652502085657965850721720731620932410444045328182570342026062848902512625247257783395488514135497668355180457924718967959842530426536827007901256478428809460957621338706499377795818770972909982085447681149159212259005805838349644625127477472225318597528741027437635426548308818797298031980931138845079933370383569883026508897464155959956536580837136317414804390096443644189305478615384938827278034159269544740739816827446199936179085946650363254633061973988203861426159439761420394966158994686656720618546346686128597047134258208358154992450890900404075711701754700760994578091430656362392445018394255774176843541997923474484469724615474352336367380305919906006066166736383725403409686943177974555545567150178789846078722148020396249050034226875182138633192273007794272450992750484860346143771704665590431637598497968430583039736963685112538834795517305217602573526305079209135156507717866972689676310870445834372633782476184146387442126874501515811082331579418306027315128925958308518763817454479268574382793712565629761238726950246006916008718274827660101232337310742845452976919941365841808614385823749600436432672112108054470936493845357081390878923306319228760234032157051453421641030279167157534179158308078999482397219429740582614458191456481197180330073124267935580131380609887219160870392290755892140936209739165523277476031687083881152108903844504365069617033498312555273957703052549102959758068509206773103995312180865712806238391708905610600568213976558530928182337870777999947635550953534382809343818385783026105679360063760271731706399075164840148653172461895313925913239255466026612789984702956376295704502002833107138096832431058629326113644738786392649743205703556289767622239472586788480173680973440315601900190742427366036387143693232891046279227942063994852582366645899630031253776135242453242784027646594767013053252615884776027998775332624639787692763667297489026216709334136333747720928381678429020546363135134389005957066563594090500215477432461218827291691374049222028998340279769493319872745080209570938798898728692976793496252980046796983782952770880389073792152212940839101886995785179829645469273935697956185868783817228443353015246422090619778733981668707628646071128330864137632071750826492496483655542724033320646390714779311594399943916761005107483641299439079139352238102645386824895189079651296216178862452611844482380234958392749200343631450671521871420379533585927123615340555172659106234919698667136209028822385831158946051064638990239184969855145856569530946702732688249145937845610652487312067759810764677438478824452844197578632155013268053745590985493789807081428771910265589756950209968198585852085323698084707100951268775739160514572989574663426620763722508800160667673900658084718668943252414544187422368771287409554230904900990465745228648999654097638561273680905632347628984571883236763120823141872511005340881827099893249702018392332102495373234438360497031426268425685713830418267691913727249412585510920357646328535803371400640352992789113425523742982378987242260338548878868424821835575135871948819451288628134058671539174445910015402223686689211029621615055263658344781481761619280807321979320652825618472907079038216497584726839250658800778696843840299509175423849524384312939288761851785928792048916356147153837012506511675428558071117928941619222756536824284689523732216241965126950529529686136059504215895273362884232828168574656020376735600230909913510027488515556983504967688376729297077850138117033568965079572220988407234554351685778681846233514929535375996789846096008295539016328687325370365597472811331345448624079319992700514155684657725862793927748290853696963185205110615791779490050816192987412554720470477296019644817374730208015705765815629304986632492446939058015349924579362133695884292599383934598536381246283635789670587550803668258392332687065968825199904564190613032858744583904218662976153041801350049729995608574009169829487964310289743649596178479410166929283959235126763328064926883623193581572845313317600500508860384735872081886663878167109806546390451927307804478524876427215583194085300037854612944482959889349220166374785538385679759000935262224820868742018330897861865080409731434514487195913376684639719406498388068121909582231300706443898656710889332706122112414850619580838717485276344877285311288158995981864138613867382559408967619790507291216172383167484132482528516031050419430924854856436856884551975008530195913740258248209145562054569935446657715842423656434194585613736697941987627383678661926309924769241089748381828359355390943619220640142101856925945444786626997410606198951686998113994158228371332864455069088318926958417816740312936594042281849685212934204676192955183266668540253418018590918634362852067296907842048458702724930639000529188070429798645052957402071907408228355519152222104110773249875185301602118825922571523421868430284843841987541651571175935614129429527096144519440440091954675370386300054177340849136052549250533792779979432736227437595047829167706298271832972114976386460518026343851366250006024582910826369562679450289992507367858124616937859862206407938061822453552624288020822830921323539401629826860564240025301999923940630392721700989937606139592400939027902445735829099703048693754807827142448214115097469230825606845407913676658209502343541721967474096342073813088631049863492365164942733568792623567754676306615359505224982644015124266709046002656774338798031307022720625084388231931212495540435227594880500957384256286428348941939705778170899910091335635725335205439735831622196327414629950201562866950161106656533711600202951184722622739157395679987526870387708340563532255944645818548006998661759506637285112236624880746172717236267593711592003632038741604909513280522504436870568617121270738324244911906430381737784647321564720589294366507654943510185559962927516652022348984266907946951872186543992125084457050949960314898846140849832094515755107982724950810438743161694686383301023665775324121018340587753750749039552959776564258097254617079759094746015207184359660293085378742748277723692195028778044825805021871415464455054919173661186931619713993260286622596393949545882809025372142335729025350647041164638664096577676127904849377512868963499741690610193887746277690691449147863332673620856818405298864748795423514194127782446847411908321013812243441235535747457384406100219864495240807682665845057846467325457397205949490181259199697667548236638573421122551408412994068882239978992146909838109887618174517046399926321373125222060845247860897355113952130892554331692764644951693131227498329800883997138228885488510247146777977993244563188543688357718943408623807299356385421996136710502119349411562821315897276346409198499920638082007592114663385485490298439902801232162705678771749110338162249480055856862989524876108610330535458419127505898752291892167562568251501033977637491815924666321822407673764707568686225397541095895056376324404887651397708270139117637927812365113397706578366416536471374158879970212390898206363532251024097003713286253840075291330168437068110871799188430627900643352801491505684391877437839719476462813352811334279210076609014855819867704166903710808101925163910402797873747157890340754551572289718515022146484112021036394454302736828876693635412634972413579949980479597721091329754827213174022124590499833589318973073006987967915827651383965956375726261957933381836762926826818194065699030812278072916908830112994264642416887011705017037366493892477859588767752653053269369037332412232358262704100591188598707673062554516128267882644276495810512357228543926059780470910439133750351167200783540612719745979316287751647375821818094212093235968468574062377593005606542916490142637914692759713602591764414287990741208582064176299193023193972285542742760732256839197509056752070564648619543258146953182822381640223940536803528350212192936754690708259927669309050509886262520385025020241091130680869103964403961620016231052429161590949977354990032496708041129523045792925569274171852291604011532123834716417682790360849888961106877560083622397696100706384487065763966452540490055690420030742265874539286081404639272448665450889562337559417580067129474872090954875435181784460790619606235692652780112653996404930885331611726690542063542361049493474788457729822508419123160653629156947989976120859348278214927942610896778535117841023883799207113127150872344462700092454427046667207038259864799669716683394273393922979461989886788797841769261126175961435862413345738951202680127758515328379185278032881394127724247286792016970376322021950797738361926026517132469458822262268925339993900319459355494349941780524299834596537781199169413199561633505360404822466236150324165422792109716942735068408378389714621929116339663057450747250071056836729778624353706298595544116507507844327849543703104842706286008756846177280997484397465675892155080490450220404336756304121327749005728869790598139001696269487668402686823434600164253569511302688554002089658352615459635886676389391244864511660365103477299548113265081114144525913327726774600257131626464269650611080491608301301038583521423612943736019049563175777471654303515340505157448322439673784285568477523225469396572364635194533672887943160396946340227210154538207208009451891557376496738670578609776135550894813852435471328185975270087036634353676267327083347951419013105465575736819703241541829571115536289193845434567788346343063439600116599301107525631546916364172176822691965552461985670292711370115796775526850665323807670776108008241428156577974121994686059368156843555843527678411179052410887767798231251455885812381975492401430926109846774024778727154232580960614062994301989476842673889553433985403886080080292098538961877051978131697135659706138494516313199849512439048731122306895338583657158933067845622101700238041768833588455488707844685358765482625414346039727435844599380140576164787179252466690122994732415948250612406799595765850272109469757709513173830549444545240068717823964545143889952857511951890821332246412760246698253305651516802664275488872364231690087495421355441350276398824123914821650097850930189435592020085175363666501725901401187245119769331157675443179489891051139046885563240007596102961785302342706399371664724827963878492318884825599090860173318092724387025162193172504858312253606210649987485137122923304718999347096657801406944331824082455701098346161591983074355612299803725873814142332606495998863674338203219521806310677565230453306139471854624827659271776115724424652261853361717349082444012522125158372987243315187519683246728724914056667360858145252574481701985705141887446538493274235890819572112680972715431328246971017654410015549298197290053824445240314693676795138500778866120933809114726080822153026855805001448920405357543993855271734931570838124885184786429353846250181523385390556873788763447373365107922287080723173485623972620543316244208833689242944212295502050615606423385784649537339864464105365425380236107328287721174263649287123952011359742858889471813770045309910182194989456620529044667974426757418563635098121064153174994247082927488649836228521835997543284367155617630186253545739791912877202611654186513699914119256070692762857816863969272367996345127844239520540221241281846448204594462057880029761639785524534573042006080652162702474960991181426552081916010884866570654088157986556669138896289212388597347636551164679222684385166478140069477195399909228758663689614525863347211048004982778931373309045329471194913885192614923109782071745587299593361378703971918867423668451995500043491911523170679750586962928928672418066060139656639727492226926206810241534407220569322683852373047090181869600960318353319208176752048908438545320355793108851141658335380639374117585162081387748287172785732504411960165992718502467819697015658465065767840401706141385584141157893041212008733062586389449144766083064580605304951149716366945182298199083365270053092653856665789611373492415334415926831330596538494787887481010628946491474941627996840585627313055688032935776202561085852957688110999426501985194367141463360230281634330028218525976010854437311553759150008900798076142139040452025529174452422457749765798902458158356197795218580435713296195045072566992811428777084040070277341731780708467728859274886236831539204691485523493045931882302574794387710036836898818547701660996690759026151263846542984228454549405665507840322087110624364161547445508963594359056151957997723172692344146558796064255834073403472365279522385118105425469221202715506564316441268895263450291028942814191692816175404084271353448371874121097756092936840359997054960735077685794968923939798436945407100810806553745319722867739635398376678216133454566683924180304194945206827624281235232244693747602886645467245098670400769930750510873280267644986802012346287163425702963096199463075859859844015224256476097131368640570834012223976930742638855159569802078246468987168614572692266228533530259764787452140760774769723628391236997727851989661732171890842245314288844727141888763653808763057022008224674914741746190187334099999183401973461971321352822749251841987404689193368888812335600845418278949909388807383147605367983898509057531932527201238781749186477823392850446354860738955772577656363304046721196149688370350081821273679837373886608499386287599265217745094838236199925125009286290159581713319180940209632993785811832262753833943839060742105051921208024239050740728749055019574354544450660791304226454151693680318047605278524161440592640530357341606532845382181715971856197055341273168639153907022770385894117710403000373034569588237734469170566966433033406510168549573536005876379029234400090831970995516689274624858052810604948065629608816830168208782566068141606347513469257334514280658671241687201694280846428765228377451172488694000007529368721501075035364366307234748709841529922664611145243674659174807129608521513995054232858885935700680077444816718260093880495927729304202877832477706328295230900816329007456920116596640748201715538562364384233618609782240743422133286184325076129099836043256604525523881684816459301665826154706073687270116352549180982346587250748058149480567404497964879489117733275617485296790126081077932534468891703245711293310542162430739660665919934342388253770079561764436084224491730593487613866015238099735333660010847458969268593707673614828077218792619921562378921567540140828911770370282111942348943190936358662751670895312229486187735332574433463496705688724651017022815562688601088965357734479705138346181349212584027883266650078880135665806981711081732716125922180061812024379959128317765354475615795126573398247272801160172065163051145241998220669814848711717380984368248285183549989250588797984615230792643055189182429026340140573624729912755359777636046030363298197729652626941370334107910086109703571256583831122701768040769878768888835648769708582351575827531252787499379495078051222384498397224927420294433875689751459409846977139019406225828427315529355361786587170595461584720116312182512943845679874095423276982020555884162493426804273354016319761948976231225590703415156322548516204140875623072483983737423718512803970566193729929021426497231729502113779194753138165420544538272443637870786508726493915152381686384672810534239075214554859101631028449169029775108048824305013857405161638953859793043847082028222427699728008277269915633227963508909128523141615184331314970600595947738087438600831031901621347808612390427949688374932747563254228515954285185858720543285549942043978017982017299647485912572704836977240078504817937377931558439667386020887479816901133710655555026913230387294135101966793093893139667279291625255955545364014337920820025752260938886352244460921200008773043791402620174884376378029331559560275105343636700116196149812391888413090482612754614480636221863217947291240062973333975416194567010980007859162901843368926030667455997421494808894136822548128755969844222209586593575046651940233680877107136924532706670415011202301481698072037577646544605372334197228302596027701380109601586686735014971661910586688581666362888838597980377606120599401598569156877992397415884837479037610270391105587928704422839048823088428602684517339238741504032722673138626741648874069564220175537379925690168961245934947776154205803456848012358446260220952383705696766271659685200464365724258252634403770775036873496116671446678080538030342181391123087719090696009321197831895103355941251844781240122850811593550176331975280444418396807620291319193350104801540069754506217367891242520014174374853781481341900432874330113714297903774196385396541962863864948341996817437582148736007643520213333077648111565619662669020143542073610588272341263479479558645363165392268806773927728883810216019565145297547524035840928510279213497647785392587874505732709535512396371599406049118821951442484155298311383853493563092967985145312396920508813324352295170907144168699684142723581129648335187738879882337619101112593744102319929347946377692405980301323719346284818786817691253006856949085196918200119921807786148610462859116434234040745738152990074472946937354589392117183332451992807617659215388394555605491674870471702592813848109037096584122846130171608768594328974531237348006416352131293570837765978969816515197218367307948147950153119762439972412329935748783875114622292885601042920105867004107729802921559081728278705657333798909843272862946556034691839981834437468574974781650423523042793455503276375757847495808881759732992928920259801390972155976365543078420366908297747316907349118203474617110391664773890142687643702666276834559698914989710259334417566468313830684796359651864749135475121866376628136011327608067297575476598576293283647068260973992029958249572817010419647979077701221006981252531717920543400088123895958767149636138812511370466275873797946339903127797104320216972679136847255759252385310595679740299142029475715164870981924353791824105837028587232644525047115461660528218614851464239366758506299042137885399272379749545212687763154525900390911513943810325911455544474096070567374454684212418185883827318218695315008229968415055822276493225642690114857597125283802995379808336640503644197463519870557031668092783057029403046334274059424195514318029873501770498127980344492137525118104602651027796583047599113458203237350128416829657453605024433893617552196454420426532865924096751562327328872266917979892630781822630693312594099271927396011707965114382481749832412556293821518870783294425602719980046018636362870600422217304852486131766087652253879341631639826090619407335066721822928300816314510590198359412908781550134507053197895804234867894004618988000664885000694081170137765486553294630829939361630171174525804354203410951849959513987025196145914975728779272040217837491840580573880685949796450506966602373561605963303957240758410963111815759490055719724964204991060563442433854837730924581567193172375698283194730874876764341745368106498965382177797777597991459985358892626663904394678395067416441114159384014509971660987499419609348401330288572079216768617508211309872274039359001671287255253681132628614265530893854006747656127869990584314407541897861632544971281734799248725174887058210525613237087860838326016513372824454925426229466141964959556690017527386743724491102410849333481315225794622039502311522433492574569976883560004452831049275207988400237828109067500559363043081233389231727009444304054855927888332744400502965534080576379648553242349141255211046460586366313089033839976142717489157325213748888760547588871783577544401225846884622447656001919909514103191787190772980999487932090251876440696088129284382677387557162227812772907376907432127110469689873371396341641009278120961910893028049003547884118773932535818250638005272995706949002909304345261358358002591718562504202686698973113536286453902475986624927070308341986728909399862197232246612349728740603741056359154393583886008458576236701639511933374573071933664280407849519652384829834085632734338652425175636531259282339793802533076802015946680019656948672527653940983567831872606753207469384246368367570807276835865815219077576517985575633006645301442674404692152837788813779762584395768872674003799125437317549202650848828459637721985433873711228671551380081704306339442766611999152118556668885061749940025805942523667541699313795273891793344059380417304664596749973478815841537915049965566509340908500578734157034599994945405799592041194748034652457181818378294464952730582588167438266576565061512340998326335609833288092822212553446091936937116011595570837133206598193971999797767204806312774901530305174792615844855618993783474189197850334010396953479922098309281922649557656118412531274947600465047762518670639337872227426727074198781548140910573536244497962847818546723237546137924018522587444423960556773156443935604554338591129704516350382639987443990297092004531232245466721302992190166197907712529347747783117237279819621153592323326141577403337641029837147167765788664067290275193979763163788691441999774486528260324513781447826547203930464465696375366419507236509350462533677507245325566006712739599781701116045259086774464757134098206185929790109416425912320651369516402540104810522379176650854364848157693146684563044616682756015741512484267854960251329114674595538667643025579740480148775471569049593316919910364902027212961568289331295356009690444548658845343712073179586391637071550845865469153518992814485429538569795284040865840814058608275894265871395028038709542259171235468596934472023374391806561837339489229736223861545046530827710154692653391809737189873566920819247147141844703626705038684920522622339960217991895714012068957258401017349382221856069233229429394078342028801336713792036483712173559841198002558403591875282433681450467041004232780298971546223859445864899875187817992979687379240083233317445011613600638957655291957880541159070992659079238124537834979720923282434268156147992435164985450155492567696189158139325071506567980839889427925257701855969475530902866794823001332311099829146133957386441581389830391617476087938287633942646966257918697290144880007266251360215154646255064682779931143228110192184972851154579419394336735803975150542160746319716121608262763617575657382897429729830808624878382627596898351651121912033863959218301421705348518061463029034971894543215776347093210766870644224280296762254421816725354499309879630427922824680143473771059167278631201643522115253480847817922281880681048432319494250185549684701876082222643601926192627730264227424753726812588614170312996584021190257813237509382092507301080455048374260819784874849205762736094252511160722778851100161045486769640480399593392056369198091864767041691984759814311724183095357231034108329930200507716661182146623180792346595890394763596593940862939182124313155569704307711899237990237719849423779001897422263614224222605422609843708113260365612271132153528002177917494064345595480331821556436026271691118145666472449776179957088601067180250956149134194639064741591350302981598758260663237216635767141693839095532538685320577076785446253115623313390324979349719407638123667710758905957104573086765328539877197533715336533719069106820595327211915878788040365233715454750429062538406270502124436924109581376713655364571099482571661733869518245684091615686456432084820058573833839336553203107856715451601193563221233547625651181067690167195461856779630414494418317097660639032311788446979821197756684694881767444240795648565759048970609904283314868695480238930646120733168478056488080229302875688696742499058282337259234439606077735122606336795453286268051000754238205729268297861016317303849513334456602441485225082373971551387885392551806679056718125733375600618840128896083884927138636051192697148036359182195392107179886692192616692256571676743601309529001833345173899922838249012804539447152067004432827718055236080212687920981548660236615099449634451897747621116667328661220842242948947031542590314396604815483727614470193514490070835608404926190150467594802059208639781344792902224852684213233220237955504258221507646767362731217232101146138667939945461025179158016790740747390524813954302446480133603907634505519833924883699652261303345322266482678075838831484639268672673293646880173902330325748783571160009604546688239824497681694726205964408859626229143138495360839678598294724819177437840276536103963501107384589602513087668429874564576292496216292224126805020040602374702002823574874023865232758190964235526133136936768218557619484883461296243291592507745357818325532050366009944196083020425131141196638215380425464389331630365771349256693387155083750821390153749795124326928471504063249735056886870490781745908176173567985442391933104754262699157999808472107659602833249362280652198093479800857881454441990932767335025925382572792198755147877190375220239676722991170473628748507261259862544789917659123783021791021699180678064744745523201176607104634558578010849325117319604195710820447403843250028779489745709035876876104624903024211109649163674411825356269932356285402731074833122612770030975496000399285925439030117431203724808419813354334390163309617599997666363435787805098773527804508949915633814873323637284914452674490578959410103098036581782991198551062436633815044667524435194307382080604949882065306664789007701577439007275860989371955076235240449647636424812499972997765748678067146782164387887717857661818341409140367717637676174577483245409008275073099631394203363455668712879782331328324184139742987367829549486060062685045960610791731190635661629146873056556455329918975137643060912273815403902110411864168843836135892993717259133823070006012974440578851962919455130973086937070265956011737591975468235899463590423059647130847549457624316293874825881004045270256183865872473166794154384891700150626317613595717022169464644338856507573840166807652936529687741987417014410065015779513990165102503507161315891686654135538850122177372032854130886702549038097088192007365671443024461155765566856052356765891238961866197352495323685718146296839866499799394121577270343700441295596471310117537422581259377321682753540130599401675684777438864085655285571393667552352581548232608084186718966789393041426838119178625280331720141639064880848645786175555318665237627625632096159488251405875245676429029923084787176934165933607874418841667414137578404914056860985834616543154378737780765725806664194186070910033680849636413495682970282948721195368094799751800489751920856563558194730292398330273814156841407364939334170174719970633462927424558775708062483860540056714511165470280836740545689364545602580406805503274614312593715786004357674964937799306553020629492995936596521395316374259805799151045888132814343868691817469778589468059559749699255524008796699763795531140635498244601199918026627161265873515473609770914022227949829991002777846810788576795130484517788822753472159999798844365748271305304011289772758385338316902587177358125902638412224810460051332594629871709039246843616744005171935250573577679468964003439453529431570829971578403394837293205692257855493778373088516025657679702387676596450542804344886780600652616916862917492427042619832992196607737684104073073501410623833507324579110691958503305570153498922191832218930660565496355996256309789453028885753721787198741330878350407279679435743008553477744675278936250446835819167695803466075435819953136791655641583628977977873395131971852737061408661035272282362135031633276785622097679695413059803644137678074995977961287848993586713422156301699227995487168049857372879948538914981488023977069544239072864272547147359871228316089344565016082460057944233643024761675322909350115975961849145412895118999441579222538036169484565788397785298025163359802043515534058457956641153900661205288645467102526055630961449666066396561460566689551870198019594079439268282222076466059800977579619730136604816142235066076226797269361781257528553637266094318155555654612166226477668607527443587419199861891942542261136019004845943650364985244138956553355991971426596344333573000375594806688534291960969939219683359332867508422890412601667373512926935887701570715261165716674612158432648701328122130337705988298069947863606351759486666179555747834400392001243048845180937618517664495845238610130096962875496552923383632742283169295124133815465394805101702640351244244315208281262675060260684275409603870055198365217385040267791856385127090400788906330024541596892924622920698767398055560429285765714811953962950379893633542829682555592204353366125947159416466921512039013629698219990476499199762432289154694123446866919408581278299140291009977960359541164914062507997570491151727992664103498954098042858092176120460848512828214348280570084450261119437964974064692711620133108809974491405464069960444986032068049164763012139720022595100830523880200609763301851633384965171369764308948215351615183547336513709231553442649851455120016378292363308782256012961060874221715899125085223100503968613097197187078026656765530741473088584230518277739451310445513000946664338536838907491480270760314848217571817952679512995864637796711055453153692533923313417820781844683388039881758243605208028244352708596223476711426516176535266984934671454970175197160411996043118793611690664532365831513090979800895257963898967132839858650316516733092841573642958181753310198613217320850081670307611906039380439943935164094309705300340017733814869098068449513771855908341840977132322605111795257425009823913163682858818403195661767152997117579077947370902294060870633856788846979362170281935205260547459388277402492990362473630521359958399933912639336467099875763459032852977744094565667746126748796000440693239629445001897687214110880430397133004638200862718592545927811203036264832342732538110511820738882408060622520675753299597613910538165717058822396849863899736883380952947303024857031715577168195883211356311747717315824051144534556832050147370887113510758580667280602512569979644554776099323810010493256872091321039162279535618503873537807261086891617851035197846271343626042728707337235546214289775585267422520305568503855923531221404361740541203331661948831220152831984649109914636491592265706784483561944910451990740330400572531303798912469591649800094745224016668040188050159226956751746642566333348074659046009663466376194989064089939390923276877731291619277470157940666952833707350137273387531576694210993177554646879237421099845381400951871134879541857151498508996789065332151924989044573961753158497220783579133146880126954324823708182945727921909355150971062923949716618654002843345329430573863299188957931743263026193635604506253787542425060557009451995610025116833514606601676572390351213183224014412362642112405244418142605358062511231370929475539215586394782683406821781796657517997759332027968080140481191959227335138552673357101633870382347196373282645702492308157772972036986646251661758661674007196551813069960763815490213131205406586332529682852429150343001934183375987484374273764851966244560816413405985972855788651615246029796272348262001684076615661322353893829020780564010408585807410134269181363909987920864986403310886269682929596955095348675310287236894750328169704842965841077819285493974294499650241493098458149505208470664141396414988893863754034469972515057045888527036610636849324529552938863417070215436031245716372425094761502644190090402574768876248872998409511984771200462844766684107547279281214875457869854608743667258642772285807682067047979425882898943044796546719609650973409835938638950635125891105912314206996294381170071117741222190995659572577038749731776911409445316425340025457613452540739270821614315639439667991923458292391762283686498802522405012372833802462691861035111582485965719526602313852492879134265578967511155808975649963609394641551542555800530260234704848531652890624280915126979052187026040499193515758355192065208783954847390251298200458967507176935683345239512703530368875107642636957093490766230091623865819771509305841982990572816623255172079767410221109041419838438471481228853231068633054623532125981060495836615139631583973499179194871038174443523573749935911928321557425607819769409900369765755564834645733595337770599136356009325663848048585114887039720067477463395344761834933288629968253377710812990711537780768507960828794576311258393890549011760081934119371593450420171805682010033643641504897420238767376505282240696449929565280054846066608961025109075292053511162610436445139713946434407025757210641990912241684283975137625598462188155482907725898534455570540188134957106188853913319461817977216672119168318396581509323748273574899615279661469804479348467593586143814451942095764368831201176405448579284537982199491944754250906718234057217631690113914840953913236062748031910131872259963009780390689353825242925270197725306687430289959505321504052271008158693922067648326461251572859969103471609899341152330194487407903477697690735473978033365088780641067627733411087419101513021329292046474592709986845107430733263882493609654383486782510793545839501381017229685721093498742072963571712116209867077952750196175208323546867170220781181468326877043918882041006154982262987198069045875495664375754239924603310432555039418673530099890322695279969964041255202460608969923275598199206711502867618203867034938862084001864349653143937396378963643228215200439569782257496368679922165869915860621251299579019834029033273496488736889326520150881381194236476366789826355067467458130428018445847810744354370989000977333115131001795163779362658471355786648284962998426390266084902421068454699903310030324057199618262148063019466827557917582336800608628262710915697159153119001518141112884634202498679560140074710704011455751375023519803141935185395693674536099091913306647590475761288751866060491011556232964323420261643093228368403126697261098992682237998706232784364679524267724723893352300714774738800361129676178914265775018029834262134544006269183797645018691163440559259311470059952927394222189848503859600610000577202566687138155184859995530885606548888808713113499909718839907994014802068193736855729096450634921516810144214019639578656312558741812467939729222981419260043621565385744701285558172957695551264876196555010339960352498610869804696942223493253891177699176506485735760356117736448045047149030846054653005935995645789815196833381062993502189836997245214202649097669812411353760103614550786228098977655449510861357362356805552996780452340383895388394545775129586769632656403845644246713842956824580243193753916307798214446798210239724440973806990748760501093376049861605327793847611051276550205800389344395000512921993607723689081002141501666025643512601236568863190982040815814778088644921729527020385106298727586255532416324131606507237734768825466116100872617454790018305099573129100232222348457285824369984272322542294363914186481919681383285084862303769764912886982412838382070223158069013648387689169260409333036495525174031988733865961931052884788433537795654246976861785894746650820249011516722312784195234521658496198418549640685834224549748930560272541028113408711190810377181627691698367254950261286360987521888458189673534845406398513410957472919368984793243817962511649632063550997808537721079735011158687661004506822011318147301882369251880465535136778696361055142843926668358057333292998464021441555385128091316582777893733409030612404639031380255521443391202286253261630043842972874869043155698156321487211696355762518366886537619990490237230613428781220884284330190666257334002795678623741750301707837872426639785491634994030896004089900465368071841413643705294665156425871321616073691773611845889305241363087252020521946039684796072386403855032212611741745114146339844904625757285338161676225980264518114705682232830155925702235624472755920123049869754792526988641178489750578433271441122986801383734859557749288438996089878819504748744613819544190742671091012801531847247788233138584621685165613895203794166175729346734156049108506927076152974380363448924946659445295215045384005714255660733072455727857193962123124526264097637952789316655653553468677137342549028389714211993471101394948870901922746261733752197270599289638697198798117147145963970551459755274332069165995929196251849942790512994098308534075507971087357772381704871359361611189986678692701656111970782795400449552801404170049439458390915419456057214946040599649592806536765521260765426553345852541505089346476950417112472841536256706655485764772013361644139745829282511360478742710331733085260650495183904801630938577563996767004786650529354192503542062175811123018675439082157914474534884747178744574542013690760053046068037307783635917092490343038442879591443980687152506115454078140425531654875212286778688890572596034854792152051178758983939811502568425594939363679087006970756109040209320490695072392815212741449834951569425311280092403217256414891277764947312092758876502108954618642099909541786424360937787910577356247697924086473906987956108887647122710805893983525171244206037290616735035625731635044880030585567868062222835347532837662935547452834603921728016134818405327231168978042804050390366008007784110234949877643003199606686413243440026076557597924381078000806648004979638794929785990787611735672144496463373919849201387767034311260681585589655928812903644162140864595175363643123028119265134247601019027015616864637157217557314986414082143766060696491443777275102429345025800085808240770272491642272102000583150364405979244474018344724289230338610686543772905596289245052497077644021600018742963029760861425952937565018747968797229335541360692887485271803115920939398817947439472052997383232226394602916438655054223781247720851454636023895056224620540210256989304174758849194744514349322258389010971683449082407969338296946278848064418099463225680968634638770175802903641789110960593729546767459689998879937347877247347870685120473239809353237994277924195979917872095568673558309683213910327326493585462644221916982297845996815159153427734203185691337131010118094765620793927984462968403837801497568961671750852672002761914450188212303646857211692158654817634853061371924018298241622244506455925032435567176697204345024742727812448165200153980521162580219659772196410716349810351766445835531679552089706136212151057684537373436633532714189707495449416184871216830634788778897857908029710398098009123510769467535109663158676011860046881231189390423877413592268576762245284521862174110028919794079413713285647008034197203027656379355622942384840338468470554363017461580816544002396890546725662770362436126383505826772783803008186016405286608542666916511729915320092646572228079065457326190107099947803194776101296303718692058640066467192444886168912695148857538713187766726599502464491871443476545936445551721943189314945597461516068261890066757104859059888824311754279027818254602122276058915346519632612533170151889989022542154266952006450414353618955296972143436472654986746742924009228833892490054302312404301962239486690459561918898753994301997937977572949884898033264107418396897994303069726026792699569621910119943034562947419849016681618868765481238324256506997834535805064288293155143177146348665578715326116553995308024184350221363982423673381922524757936851224852299315096994088369141447624568650782767747516710843319846103899967542162571124712159330680639873311668876471009640118831356536018028780843824677180046102483564057425936648368439154222448176626747073854170228018878307856092220595984321769023161138134593484789635548016480572059752798383834858538617818061454733071349277731764165638451616581706095712463493775925759944932941525058841092065714014163894221860794881372342984164312373508078949643965441818028349053920260750170214243999976522820239886086219860105622713928893168444801928148330757698854368758649929887632319311300067438815332006352444943514632001717910100628769127681470965629995477938862538700972548091406248757188144708525585667773484717176324242316409994029449048298948447109396338944929093628818208988094362241274892539348545728589120652887028891989901197570342134913787283513792018658685275521365537812050764987464078484018925147192924182319041446231540861786788805801119022619905437210348669117617582295591340855072820228340328721231339133973474895890780040224168302842313913771652072244877162970630571717156946230672508771912949263115497368461689459496244027460209515004934416332760056506481756992281969662062352626124826829824298310748116992648896098522040007778712186092545277539139483528676298050598492543473220256428062715493296352670949530264497167103000304419966915540679871663295980311354119991095093828505428149149067855227771364791190135168081725243937382146398130582379184420574392196272667525441536215238155967278227864945693039726538240181325285481103413025076696005063318788985970794798531092527429798088198640860855329766685468675218815371456763019084199784047666646664214361240474565233383490574852054042681574633870415385866544038205750861054897085852752652179896306687266035929356962207142610702733687066945209465859534219342079712107995632735141885963626046425164083883865703076314933151551973661952641277181957408630489944978720733902277656443225420717983624514796931517673698992972895907707489057876881633348735858750427557877751637839132256166615752202676389774523632769380322898063671079176254232097830271799298580051784104906370639751549816608207160293800843181320727562280904949644036178780839707440496993273385008830414073897367308925373161820193109865218637444302196545217967085027227055610386277111816905936604416970297030827758533095823305486052356662643918821323830469701369534579143104935344713549203490818221445512002352761282548756106955292363677272180800204735871911203254178432005255670268664812848476542107458617656884831862117270121856173034604007735976999154210114710575007641423945861107105527251703685601352458384866352400356770825627361117921606483332959771350806849030205407076677085702874401508657483243017331117561131404878298152802604925712660583517979841259932727305060667457971873671010447497003790896543034176493586286074235900648461355065364718792815496070670100495946207540031651917732682346797817288753397869265177086959121837074686330242356482725800324381145951331215904398485953294460614294740849949923973838024599360259460398886778629841107146182746681504421551325161858490977859965494886835148149956479053461656350537008837906529477135687250339339405106910126053223080610279586474935389546809686415168266932702731299855917299487931629025119048054516339518064650489378872985732811890456524634382662106455370892350255523322870604924568796845066284266281883658056300647814406420297948756455533252084083470705493897035133241457617188439455877723407527802165189329543802758393648269298654496896537690628669858178359561951303632470541861397806428199532829901594454570518892927321852161602316459766475542797595970448477554425457540145557856688373243101527168606204580802005452366014767041587985819993721772591044325161076362998129493815931603160596076936458585456961915483951555218270966667556542535437863863668390785539252822019360664516479659876019170342791552994546428742017031323719169047009176223616357933299429888148004699905913485068765112722884771831542242861947627920963600387547161041323709799916281963441577806609925939091182758821134675141229950793796475317813351261706952041988791562632980384869780211131073343997266251420006184106508062059673948537571024468959788688219427527232360114464389298970001820431155741983584336216540238772081651683596332089106483800879278628746111049321040178640830596314563616993696578031657524602571491349177289662514131684176209950926611459256883456999526347045176047925506932057791791485839149946925601210366141972397295620346462614595606226833958378040124169630856841733643418841921959117045045232720434309578801511394028051804253110324727379382902668498961282794985615798896877537468421241566055526327963165814452679002841504350958477577815219624035267374517533106888563093431154858968252638219834822081130625655253627005498188931197402708179340979949171058928885978183398794328448930977525703247782653149745319970303050731876226490102170844568729146343084161585560074708702530469038534266575345120963462822797015769117935095454553750166144435175974163698918228301123277753348420054273874265232206499673916412951596919080468030464167026485376162705088064715017855293224528666510464278311899113461849162026334226084023157294989143618197948807420745347643752695954157659930166511844536491651834213858641833839107868105692136980304955201672105228238843307445530838819867645515089299623871463633191986873857389020469159123689854737554047521775403993877244364276766873937823337625125416859509303477374899498886224917859603056499824303881067287796246217430527404073449674086077725093583806393831143093148516129947291401514863531880288880400808641284779755658626926937861239261581268333130528600033092268949127051900489102396776339445339177042748267642835472719764727642586347625486979397319718311154895651929782810674423534850342261082024047732844496701606852655378925726390831339308692735257459558015298951473137889797930630198901707861210208762337119976348532363274512883250964547066907321262052780781340014266023538871561040527075314890748215181487944423753083747949559745971469241626689745530915775909599660686072227701245829473801309722926543805580485101430969716014374555787006401584760853179469573164882576143540262949643197980605207424928840726621150324338024700493416942779769429542440156714645025999163533565699461304951548635784146640455299724308715266952155712014231049640682741087818033194244955812051759857240861690429553560669273036096696473231824932653258889454615749364688055012667234775828829849344199666938032116304529997760705146936663204448998003542448414672233396263099891574543300589663716743442823208162025833629424478077332574926120157878863204047646836758807612298466334767769316654475207400345702946462615356289846764902305956503426455386807746658574841996973710163128739204731032783871351481509903476566652270133293740607637499104050401667136819882636407058258366540970544595253159303990147069686685328150853070899109726992337754986267616470207564100436092791205768876588650453366270536098753435823983231042587560759967302811724148735261353182864751933037719406180394460994316932108378028926972527189794241973504962410485322838669682964301973624186938180519395727155112122760465474133834704639300260000817752655084869603441964409523658648377788305229230523808882952562649383194421583104230870086622344696581381352774867774775950912446023643741030821204018427527963036033593661270926638509172392525196056266207238570093967839936287362020088316335341538190405013561802521226646893289269897760387609974977094632197960235476055415610492833682140127646581297254844918304209307523855258898719407815444541718654020546609975456204674270087092202851272321924800523054340760844184608988383959465799083243168984280360058232228351535668192747147909817419413161542523767974903960599489680403698768557516395440643577822643740560878524658969080978150414731787233725991766746693634521223611453676993544221611961590566190020208833299669401385559771049839903932369998648171415907463679010990056188900345902058504774254410978549651725260532360615832387515731636652038690764970333107759442038243825846953000998718300346428158473774044830331739843590876560575714047976621976033364327718932572125001255388779965869412262002377024238541105067292446534493775467217374217934359455818214575791464340019082008369944625379447797680865112480460080772458661266610955392113828652985135244503690604879448924729958609848646828730482032193221666959443549589847714243076625530345391948028459364707190727173203346721352642440009800562870822704758028039268729946555524748131827681354165493722327417912713528034876170871058086580571166211744314157392589535642541679985200337523052799462333367999356326481435322617955558647464230894843288619195736786020176565806365951239335966669087674648095607116054102971901456996929990520917721192038689134192721646355695203972382939560624908683261101255273337511253087772286662963101150423489489957617500910866955695299305515548606140563900583140497376201639619902885467962485497584207840605550463405260623394971062157975547562846227949472294698020758022236408458222965480557207577071445103633194439126596278305279532091974687466623664974465365459196226648679710972651341537926278172640906673450026086440836422502487574371283182701474317519304154340396568360220125860784475387732137318458529981545805365024368735265319097097347316601807616707675432195578830184439880015147659317493053250907761418766768005241920227845379499292561717652793885166456845622821479108756417456645635812540017471292151931939487521992577622163085451438548077694615181429278101900195940905084290035618369858450496404386393370771184700341153221333400740434638350555579798559122584783159445738440344011636638591228785549651168839269534852054722610575235690010715749843453221856255766863504815217756490369986237351036093063016398692604059036879946898606581472093369965299015236209386004603662671621946301517612632938288548130692086745171530279429558661000044814114951526755021998191496828095759166008824153176058970743765214219311647128717828914562892654810537234369929178275029936888888096369082939659710325278970533770482149220513457160273732188050513583305058353444544591449158715049556435234850514616735336246721779068753830520079240735606965802462241945095380909360295545686656652511063162728501591823937924161975359676989943529474647181015123081541033760881161890553312803915858523637025029723921030135640997685298366350714324428082650921278018474916161081464842292617742087584333484105522902778414309412277331800624498936810688120157554093450258691741995487323327293213043011405452646586474528829514706783809911035686223537058628750447643812914774546424969575107255653410027180546492749296077826899162968574580341869341531843575276205511150492664509892562709571512654509635481463459602401490812659436046414352121116083741840336335488740484139524125834389975781400901472786933338583726718725624456170648211124901455277846942014700521517560600494137025556325657084543841157499275520967614956104967818457086565462543269692456593723032400201402779642445969373119756713116636425152293815386937819875652305858984504020119045313274856912896908580591009148580667519424752645636771594996718286667962756463680292715905597268530372816330425847757897687712681376491714014486722666015553380158210043923967255009047597289613662087769340080305870793585280138457048761292810328020017013004878331261869552877729763414563799893063956013446880125680841882100426970355910804742819740216992060767203840928573481461655380031130711967228572453923662298839623707599667582470963552692823136280171580416884677997677812405068110776856664280543075742419875710290022430588108649079586518513035018502362755877634208180877467362136645249386184455155244488928330137767293846450618115059377845580305082817868012373053035700639657653663231314365687868927697276114114353351379621515169797150194507726861699974867902225979023239011702005108566950808522095111413339598227581242495078520186889819594965627043189135945536643895049472386450560048701463977913555595888619093897495796579701509487932878777163618986393956302942268926490575609554831201251112491154531190217752527909445356176378455683564349813174910722313056735758144816437997862808900488917326777095807500250976854890657065361087018267719144558901598721465914842208449865873770690267371067195898063216383977870848606182078343851560875857898842099287355222538668810391307657731905630663263475958549334273808058330793969807023786070254746206388638891752567188016262554337076846342342601118306468841761540424905213665674140649664249613628538037444477880820386055791525292344735862623145653456468856515197958551161169402130916356578888565801735538553585162050482248113310310136330036755416797200378132228047710900909514748521634263570894765012623948531578668066453722991705417366242944399978391334659787569890084348566491494987878140815903633079317587279415845664194063260267746548199166187041216189407533078956926667496288675185671848574093431895696312090968831205839674225594776529853235115264553420791796194485969372192796319376366263704622405177215564256579319782403409075970089218340767225850709113848745058169536871069874822027927738266613578312265340438308708742244846088551976294961053982657277151120940148238083913280657107800076569924717508498540956206828693662964344166502226963959446727474035809715649053552741875269479322166537943354718608676535317252669931492448525044221274969209495213676514823980697578325066822377520538055044060516126847238582853989740325412506753040081347650119890157063708047049717782864146275522307172167937154688868342778888549015237067802202601603639745533705069290437978979528086426249343821498180325106515904861393448717467099211893675606893763381758723437683418086417544027998666894703967560398010282274887905187727991048018798664364343503355691969221521772290658185652269216494759507600522409019973163708302735395722851647617781381599585651101951191263997002247023251614980689449677527700149543961457895334254810326598487166018719242471843147328897558533275488917325700225961585418938679075732451332230099386210129136068626608316722312249893050819471115523869346268981854508040728926009548207819080470759280826133984663731353222146142224095103188881440907947208379831586836986244173169221179398223742042885232739762862655871373676891418742930549686493244892585384303739782214478766897110536135134954255990839363410668991372513122630742512338284336725988519384393416770443290137327168366615372455931763452118706909751075162457381788321534531112787754264679707484482816019870350151782365976409077389721667555145549702691450993254362591656190608916456906347059644113117361276267628992173544659891978803673960128135185505270402287014089738987872400221524499242274580288637752716898588684425585823313144724223538818155799506830762273815590496845197295575232934988377670457872666248782136809274119551670390332143457520558918120111199638943723689117632882210818764210585250556600027302962423535753459941203733745725610839265443481536737376024127604601415041307844866055692919722338241204549471938967893035359194213124651157576874750231990852905118134342282091254945406407292057034073007816078894383555465125270916681555879626837038334611218325520762854268146297651711062462724106501296982692088491493651308359603047283817603423701613151955841637917939741841574677879482565708489998154671015345102980163694353306871798037688811438096150700585342719285371094318993594709297633817585221113878771947356150130557660333421463263679788391008418932130775257801843005171752485030179549056291690786349864182188666790820437012823259903523841174932226993135942032544395890518963020092687088386099663234417632346437901225438860723303446810647643457871447036453129919559249462485718642077005495110324428333088060628328840867310970955945035872689207901752388525202887867005836001484082478338551925011420783128396756560082817545057945157197845350220287737131767333465126460991234416042540698833901666240491840049344095527825581566603316146558511810198505869610281118639180101437949377300817028316230118347090111035354080204539015881091791426736826681830569419015266158417286239540745672622169819625934286625121538644934342110780892470634348666560684977381611162563049261507972007513853771686008768623578342172956941949168028828963235730804502429073759563096049597410059624040251974970171116738633004690284960074899191010463307748867193697284446676489644782412962275097539822760706501601123984611090256664639334801269169233799226310925704948160969841034161990926810590878473971350110899667884779578864893460661689445239028049457418080007690007105673073359901783693555641972494992350297753193375929663732645165068140570932434532035286108428721299051876596425556722390328185552009621185340334586227266029923382148038719246783072230193189710034369227643795465316628026005651323167365459171246473913893251651216862085017705192128345556145123624060311689840818024619683295900713745442244964284938870676417554735581949429958463826408281321605999719502036207360521028021977324554152011975776934911528083226720689204104465257588737233833935482447773127517265661171813046797923882762368950880768984063875957358826369584599293532376444390164158598702279736361694835127862357037229910355736087224320686928264744359444031095008774765207407246765051003106779434296215200462926932094422746349505439276062761874425708306252150846552682168293072754284036271747539935945365276365198883292890361682540287144476696679660089265897924558082212059897065857143211258154832798341242538911857426484495457411745648961846688340548133656199773571586845326040560474567923962450030244652228762511949191535160440133435252558209190291912337918883889603538811381467665168734550819349368919619773664135604259985000541301479538767677337443108386499253862426663755807716706645991991896309698025323687288539341029559074708464120739946211949664904124330380561980262748082945659458480987232972793443285744528139151377953565104542337299929528297444626936875114165519371349098574259823448097487760444403849327088190265216491342715292547522532255140918036109732342226907384665228106036208002498536335328667853576388914750572712760407627022426460370934579785911289465666457535700557585535157393364360567093766900641738691313361070037324448710516496146905824054769677334636697651283302524170091970708808946509295899771343713837568566091254331798872792117752448995855858482729783361468361812810058384763028774776024669420646222403093415620332459375726866059957803569680505234770436599739613947065764025841350888608866656289448460774281857462554634447329924083041485368500560894263983379028657215902670530435801986847595161075667972637160935931071214119804568819960152526092072896519982593770418354947103478435684459079008561009875315441707744805357994504849448393684335160342311160277682752323553674262896228811563203327139781361421564528086378834533824674982576305538313916838840929663994222787499725761134587961774916150567261102720758258488652162898361839183772568112554987754185682014065321803762102082983210807224592014410240315023113329574223554027258825013260098325190394695136781472919525602739977924349370949143305612592707519764595309465479641696956325247937182849469424965612028040503500192351170962242780310685300991396415781967079072245644426404318784285421552537458741471646198580939135372472058535084688402251654817062559356079751287233024364782423296556933228673034530936036481016478408169686554364739144749178098578792296271779390580189726781964924024462210461727950921630573109290136152866263675091155061961770736598783664150805236585860363834523696427812418706413775909158699539584404174110010413324465401258038998346724949371517001772195630970328851812393838925271433730347803410136718668677949899107777450570147426688185324364790636779083540276939091581769369978535363685854544460158451726221153840588490896854685640964829087287375400248451673318873345685043161578871346353635842382183303493385752771899072632341448311559936799291973561355963037701088020608625411398794768004080953766327258375963647568974478859629822102852727103611696187153008097317214557104371098317063971636821520326852322812645643073179583164673423488739674790052290495346202738888952348789775669717741086239356078923811971367457751309240134346118682942357366557736159238492212865597898834542602959445148276482104558881396730569682252581792662678755864657810281189173816752640047857597155662358543423999419194370471980319445243509673839162760061172015194409768589340379652590600801619520678113055173762727572568991890236675772633431340590788379031514953699768539706834734781441964584022440425691621026050079516697547832004382248374390334664358704114916348308293308855783271148076793814428102018487301544971821795470414266664430017236287083368942909011408051682397186306809861187216297024019834245448522667658213498363101325849311462381876200588696432788907051188682297987289328928675227203914892420030421660156615957984870134546611809212193693759322048076421214511458550036754139522552306990366198058551969965143539307748475566252816352605792399834510826681596629200435881751067880606856840489856034360855618989866507448868352394705648051777219286511556070337789229889818196652023159686696595459568364663664976833829495232981387732034272765477492063490208220893531565465306434582223919860480919377538493371357470885867527607240937122150478878900946181455318082730891091378339419020607227822530567680153910310416525483084353725893514117908357618028513779165421119952544907619099992213515130115929372098559996299927202894293006019570996712068668415354619724709835982228148718811604037972159492733326154877242064069420734156560518510189493690732932288579846227326611341539255562672075984527623075883835314988528137366352442832228320175305895387154736713454868017829137862518936840024053577976994370416398114632161810082640823559474510757526807710789932663235505777607148320679130531573596338976092138083181872952173502938302759604501637503359935918601484438983438882906969650719152071099949870214837117415969714491505436650563866596224903585328485477195017569809481504971144822805263349616243216287725821065637690340266686540752754081594367879060405728782421833878357760608272026660809903008564269318068494547875056607010802085128203997443810049240365942787460678053565757096622714239299734904033031636326363002901130867580546534848927351345481770759982746297608056225417133525090900302892192465263432776430720890717823272910542709273500821818887553748045647194737299793794214477286779736523339409696810884042827296345618089031206061318173457000387027141464606587505457140420654722026061489371455358290398342465429978418418585623055013950627956583205204294680326016449447792140147814538566533719431552501193200457274422562077172871915195348935854681316570953761929836216847834582477940030326530895936663437631644253975587258291512802915486460197016354862214183636894714610283086997598454053081784696577671905461122859152491380525952881812877759332023451425933559567298341946191743309204926821208346725100135556250672560425437132730165730624684681342884979049795126560426395231748763432014805897343457933205958548782501827689218018397150066201907086707292602343556283045812682162806018809531880710122264916510893610968006544955142791550882564858447699376741765916253214749211109496189933732401312639417409918914221184725978218114674813009621434760283456822666696497986157316459818424455561777216357278325869270472982555833994714249859265155515127147050807696586381086489789383836538210965072209048190347023492227697904554853779424771929071381264326843327462309743244346465167881133553115008250908902524073923559362515620411566842192296841130328715513768154650223207187191583383951782228735893057665371000914022638220250065647755611105224406550701506722288002124423972787041805083408428850005097974021632540148293803241223401357689708709619077853578827550703167169366069227864455210207708450137780397985938523293596032359455345640353875619272229329144962074904869824770263902376393863497976719998547161199080285989579508978129104733626120059887649672951533484692213849906572402952087210700567755231501797124465307229689849875385495372627907707186851927229709473601743176987894206385229645866598530202673807126696580538255509053068676113995742840601227492477149590915459774178281818308154154971784746101111956353474014299022899698103445260002447096246922701705766702156938593206400966682502216188771251917591834851692360024944665162478559293335812019835827607413053094862761400770601669443911761516922215631417119270401373835811051018726424009365814447862450619083188407677361614037205847938593102690876263146242780400940101956114962183567723256870482270572517315180821568427038425878666785267142756238785223749901634592819208131166491055604332653698128058560704147028151225415631575941890199624240303280780128074535102740707173215019778972892649078085578446867047582972963842100010210996699297781363786711236822602579584901880561902566738400753236707058643268284948413111874520030980626905535482074093084564518284757912652342372209051126112445739135334362097957679984304395093371953432163401480143603692262454528157444208959613672873490163932479959042797690810147350082132181323473474954006010695525228799825532203992161068501383322712070056830562458203145310487571068486471133122904961804789342824214913366132581257914691292690313827285117843790201587384254617779570980622696612360586438108003517662205094417314814130115123704042855501978613222884573870262976820036641477508581492519471849776918025948426985755207023789505264710873217503476675321563527030999100123508231323758760172704883930528366473270156595792627478290282154002103712838610995446541630678420184205730625381441771281376684282727097977688034996292037209506642377100492520632117496531893024871741645923815529244603453901961165242105541450134831756627737873482712173750260352510584651043554965549348926094118662205878612354762721753158135604482006915797086171963135165226823364857213829860175467625773777900033334193077901193491129026410508056397129756020555500596554802371556247848747779836924378300365767819266520436318764123429855195794077511936642609794910721643461702961379280813392157198596328656414919628831340125283576896856072737471695119676434262546252000513913098837926792780193584388003161183373692408656762004224896576652383726325801872859518847246714453541112003286980608227902280742689596199845114386547318623225301240122383569749816887451839357995522317153673318053263869510660994140642900219355226384282237051833440647254293366692301894792526692534515079092484099830304890284111146976994580939725222061815520287191407639435748198333776478851488310100363955633571096387169655552785208292256211991601291901215022366796121783943301783092144330216531192727524869267493868189932415899281544531686570002295792262374015938673274972109131466902415021284707703902004873700871763005420192071517368903943959623839109099430396026745258801187652203641945891372749635819145680707246486612422321850966405576810128241532022072355094389943637436863187065234404090931387840315254755552830489987347579369822104261022581691969877993907729361926428024567087241738984398785853133373996873298570283168237073220910793703270823483480657974155573791408925150275651605222201161812278508531475456538308186849842631486492581455079223537698058462260604598839401700286091789410831559966755372148583753801890441487324317033959800110674868448150009370924793447992797384019176590582608618758470891933646101449912535123368549126541830005840059093432570823729350355344652648187084269637051318492012512754870434990923217157555352104004870428848741303063172997296023724482477108434514975684815796140529218709545847045363187279914020681581715701976182274093620717630015433695602550307086629922813911100565877778570144278459152587699883894571311721082924419170503183843674178697460460702810327523863628651445333249926320664976561628395469722870194464431741845639384998711118961355285687677366708659845384878859085751960300578401385953076295157926581659343537027581852616927528972297046556988342001087650756842871927324616924155441362608589481678186436901830133743954973499492604286794531595821220488734372932079354347867377193458882182766246706167160879342244213007816603944285100128490092724704179208604326563696754271815531597431664470613406919518578891693180270283112080767776532268674201451180388016153340562271127046320693211284683218534111304257077790315515986805703952129882538445722985046588154975746096905877866540657455708965709987066471826846960329035404254891878151204877254925911964360388589247973032268164289660006902677239307677642093668192009890960900566372634647197835253898980396593199081885655266030876551924409585440774878738197586327074727788392954321063085934374519672374115740703936293592764586530212864891424745661336861593962517737675774412005126773248288241790053692731668235714257575179251351476438798368074773774622585408982843988925291680718864234219744414729747395286486688612995179976525749579947148643829664970458005574984088975156143042220662181611174668551455731701161715839170488833783271680264470725128344002177806883810250224688931414246859359760043981721062064559040660757125086284643333136410464038296674369149619571954477198884717742551456385214354495921772864294211890429299817702965776137028960480812249011962441789307699947746430915592796764364489212882004214322671939320594388504817550845896160496965605547799050529916899054440758069529166475933559933022520252326324229518867915572324432793101656815589958657957295603958349009058806788717666954806652841255106729498457566010650098464701612947638863238261359932948611489051760091179699403301643187526186204741235805521871399266353779073298202382989594503652331714282626708966986462232727625887832675544748399467409194185103395786889899455950396721434750893271677922422995014674733740980317998438671868943493327919589237864471498811162419754590982649175437764840291834406489574408578090110749153676249870110848291206120744174036264766758839354933910610374080931883735659243898715983578379076150397982985135550900537111699917406366214152014497880759271682336332957926480944598671624092926713372077822900008172423579976930378453726437151266029727650358225312929721747138630746932974494661669402476129099093618689570678937723071811271525729833719662499091183930621108035783209406754296321462917724161210515540992876130988636170243905312019388816093564829545816484165631478950636401043718120686992445969551639482072208561338010062897174140386092890946360100241909640038230165466633795730268613702164154773518810894143116847327761257754221176181543340064945555454985658298217358286254541467800268160013344263742529489705161013112941046308677513571624596198587948325264268192109606824223163918976006478381315310695919125989052058249554524121998536531294939090443075955255259336226674012836098756177879888219117383931613313572568212947751803218461136262020688071605588024106056011709911242182490744172277021085075681054379997231816643850842149503042344920256371165246327716381244591552935451860219410664151003577160322899632798166198068657297571298519483123916010015508715181773997556278529793600503204549924625555999941197971491913432278014959746321449150666677981578156404764068679377586855314343056850795388658730377235888460986133079499439639390024274048994301833494047204285072499532127463475918288462336127855782859983785486500039052200222368868813099860158328612945709991405322017752064108066766241383385340247539920032396447704110976850612024280344433426204170939094503712418885159752222240283592582189715577277175112900014110899944509777312855530870121562867134991063690039783165724505806086542937501936164750877851252909260064066189187624424877025513648140747256276985206883703798462647671082359900268457279567539068302559675149622827201339945644705126401776955137778131098175959177139817425911498838912699075055678347186914364956596204970529790407541300002134324946180092837694898936693706277156923228580863265284277131013575809885181423714395403459390494461131966746906202018659846760795033807785988864190055245288575102616992613587451728174314507602967694016706065959473672123853982558294702057809167152638209286511224608543649597058643111430383377087322299987809098705421220034423327022184135085298603590570069896537309285358903247298188506730675442597626839640042991480773252530730899246042329104586514708001483795486765396214727785357706884050998589841587759058918037161906168218622034742233455307685902988669570339863386985900864463089434639833245995299400474933226977165953195131498833342290022838517194505477164452217079842854775559323734494010150099994533845701193387782860389769162011991823617278117945688330427895035438086639492890972500028555834416269399661519227894339239786273570726207162558336093566153969886356571011905951421112741352875406142591928756822862218150495588902692974168211500860314289118475608240411335333207140090864129862605235032291295970227114320803297702896081257496375054986547185460990026871890151961285317159937769209570043036355706540808599059107179616489939380395370058009513457039296456632925749224335183531432059461130328227148510542284565040860811610086964670063064775407277570593222744767607498520091752065047759922309088662525046194745208534105464458493429676692549240542289250177264374504470810940679701574877525662034673602628634239779340901671409730449536663137319106861451204527329615068744957197468341478163363871044060163645190325038886441684257375928764206203273144203135478686176211433474041368938467968063139920157900577416271698600155704029097322570868551530641567796154888117178994818851627828060720482260183069877634432177095869402025699687089228082018137613012489958316302044127706470691739707841984591775691324143613588525314387236689512428957108919061870744297425184774576884861654956655491978435625520745447818976473286510804317208227529920418547122647119367978608732037055208172573056657829850722824462922249231748451163391177308586909899659255450903079553204536663075902579401816228820333943394938824535724149367571369824042138751040091739074476074552823307246579075855059744113526001765834726620925964581344785398094267019470390488167243138775943089205105108834695987280770364547412010314096390143865430900102582662933456923240283277409517175792026969966048115948426144444584811663554475426819106697030629628581400353295299947973194931741071129451595720393307059380724549512143549586509888924976880283860839185682878127485517578646300375191847008915463135424954860382184342383435818083791311210733126470171539295576918311630824789779395171075044627607180089865693024348674059647946959758231142998712749593579105876612105896999226282549276127583978886645346646975903203545958636600913205103320572733267874268508667943479099792112060390369522503240430584847929292763616685414869225037630931864303537679683344763034096019656018434990674187352260389588453697765615272788410469964646094792121062075499829802695188075875690574381767818992543198431766285880137952265022575632533328310840069140439256845276172411407590340489171820916836166549352260011034921593551286608164240538385618429981152086613701423899933033454306515753865694708915024260035645307420741117445911992203109266249793235620350613605261835515922294048176640748763698010685330254114023298267188507815371274630929344845438814498285965651191096064524942595668141504161499637814885437778623967921669165164473475509762432644305934201665509372747569123636544666286456354484342987714942949446652369702752058978476534963810693068591563558614139775256285177734004274041495356160520490801756976349195058288632587533241702077392375603262912912589528996566008106044340722646548075089241970380789012792643807076406237969584811749766923690887505567321381435756239495679908431750346648599572886304259588644429875699081828107335242310601464615591301574678830839143064526663980476966922605738942186034483693521758531796455778783351850995145525480922838571703976170327576720390470501000306877840909649496611979813705076401847477845816206153991702656684235924620326735485067327232210612738837803870021214025629354789032211526582924502719249015929691287991038024809530198798610353984440301284795851321012615985964673800088325281334846463939322490755560115224540083356057910539977572536225215490208669500217343440602272589830358603465297210111311849846804907671412146728241341103063739279695923466130596703830381361481686412662706669842284699009461240203966310172209903351096447429183081467796278226946706779191143783513777153992630190551062752156740616305858663852892123142912175267632488294267795261065201655650829013150444512184339631979793191285221583331686948405459797059155949312657854827909371897090330502476651877392962651910219191090989236806762192646225711994736457873117002159778313303119283739968496495245569476567454428973527756360428915147886560585079261310087119731133462283502385781682243669484981415996908982274586033314272893054557707367272457498562439618562696310824215160881080139201266910418434262708363239776598906058078621894942290983536578606196301560956868326466575328811389942722623861000208058194815679389732420223333042100330642524503179680961190320473395359112743232037660702233451195922796506245385666877323571346274092788710184922020131334774832502419477248300558703064654144998657503074440187545844941035788993028410394884702760856167412656388400298349898789138430079247939885680078125809458207530070407091322019367298078672231788488756177277386865584080989580986235474617695041100367874221418280438557706612976314955366928159790150589740530303593945072442034372166801871969274057290850187294095413641810588701746676616593317646351752159753288369779989857785337730787249937261466275976375885510809613299211366795372967357508339468501652902547710438978877471175365275490790105267258965985126072787458315161646747202956001328944658138128423054579267198482487766530283914052381746415676805744114117442668825932562028803778572275488160846595865336396571214422565741442543289814364318182940460301233260505090058701432842822939028100663499862018403180634714321056740657308069857903868844837270426325424458761769257990910602290945486046535170842412319883340393605103685801221325674986370568744737570265292954177975228732644563185893085139051798076894599423303042859576911459614227882597828737009235669619799157011222802331490263034192294542805579040943003742451653679500552583679582640663484154431905203958593365968696639981272433007367739541134639213395760665137601490889038032533915279257117944067367471406796753048882438775846638998827911850676101905133183404940407522424131296747185597332421685481591532150735641375571310622896792991598829817918341133024127329625782426040061540152655185543347828472996734550771944353114718566053188232525823862429133707747533060182426251343827615986423707613864463781960407646307905778770701168789905918837589416459247240914559814124093428843695377642115868679027995128503523769099643220321305177193003379102193963303591000355635007502368402509440154395657770302613801893803406436946435835872346472718780720375239614895133538390525062491939577004182205451996884095546953971377749871449705882852910849902199971703386088307566350982876342741036431257264035408451407300100728860159237507188435231478672192830101131920617011736575989948784534188232458008785528109920585250278290326398681066584085621524533637390245184913913356658887394982063254913368202153580339088248271230511044352751953165568676552410643673898741649146328337026419920268580593413033011126983113438824972682132065966448049196917646079135758047221528147773696646173200002943973729676913698781153190281264425142992427749888273544091334438293479451869063656101153252438683123758885717965255350405074572588153524831165661274922767968738026683870302126971171104831935920218859978065026755067267005714179255692306565340334938450155324244113539373337796893025031950171091465655374579233311350721856854642376142151452448995558739774322034936568742826551918727916683852964808254991653180738988759748213252854990404441323438743695284294352236044342031965886933549824037655651796766189077390171907440418144979020891796919122259023867967715163513466850697313289274445401315687981071063492107522439209932547250738583187357619297707711644442327884305551273316007214779399300359724420321472638121055761396375460107865343639671501354270791594265714480263643048290547267068021269835025497381084746246750049185365527999600214685062616471885708784348891463721469156830975797395146646277488315428903226460541140343486614698731084180631843437910766575756161303988978985868429739209346599525772663576361449345038114854092667255606105702366078375453372890204060269055003642340282459026855245188054467639898915213274538755464688517790551388308740611372328888824082631291116271593070618133596208847875735649812004826247674520018176792590948019707654260036212048144830671013984453401606952242976615727746611687639589677055504321205057675357338396301157790527253038213904747907578496666859495848399220362571025125821296578521597966721863495216255376651161047884780025465642369665321449101408423114524619730517708295294373501544083776120783226296314658620425788234385590772854572892007718052505373978507843178496549556957005674000252519790871309717195561622716521142676983675568646749100178035784469467560600463151968907341427983940390413494892307817666147635067023180310856667622861736152450924702320954631193517886961821797312597200955405581751371665097072876547185540969024404217223375182657814343616786139306553354761676979416826665590714923687174665523623170600837215558648476603642728949791740315412137639403921695904457016896578340463163811990847800096155926412240116710267705719668167339041585396237573480186056975440848725299495699152981748016770615435236102384254449300011890178007136540517595336968240072268985898767099311916762433062517892690425932666964992201140686874143761778432985155678241421280343790042958609816110569473690240958819438084735537277215677297243667308880924752609123069921513002774477952096342095893412553714870950505781805898516299518927679073197026783094809387958476980656215455374479982460068032090184421388867358768203413614056503668981102133282751115397440483086458915875984413326012893446975132164845945766200884536366830772478771422996377703610452219956009764483269921970480259058199682932316208594699939898136763773133621756979748254713362254318353565386610594976654415001528288856698568963511264784242185547916833267254271980129706529694814733941389894726250159813209890019074405401065993622991380395901466753298039703942640135269671705987427949569016225370735580007611518610266925472231345787768574271218539204440391563519403983299679459515323237437242663804711458379064388001020956555308385737018054944079899469373867790461309182783160512634614728893908049759565364949695745543772669231614876570101108259235576215831252778772001397016958787777859251549603323504780917692409181812610349660385890105908912030151939630916290717470142184618443819758478750942866271908806019339113896554265071521014233631276304630888247554651025074495840611748774480121447368860247561170323589090550931676256443075047704274577257322252627772449573583887629441770145098470706274942754016677517569071967238963603871120165163875052862001968471002136974238823093248510954217158284388335257571788036400312330321051083799387726473364550264155097243447864053074235341103641526396162709047909687322697671748368667726612023352887806784357208148891865969358158748718906774407553151171721257457431096420498326686976096499684342253991285088207832818120572660336476636093684662520527618156500940623843565619010231065264379468370793264983006126903106933209125663710487834774291894227748657118584080796848429218066636658189770391120716762287848519508521278778816214252191454228489680840359217328762484633121642727003084231322267953768144340170579809895162245294998775640922957369617503304621253349251043218866310888563666579631968376086242175164813301860658973139454912661605644335872527742616433349828088299904624536714003836835732266167248813928823780072728472836006472462016142378444095935671184864531634322347158637871042026294844257785007646000072013598988477584527428064194524993456382839916019698991814436188507276226661804918909925351000347964571641915296826958909180857054789574994083407300732928753310674965373761433119106910209973787694196738410638217243406985800561826120452562466506783753952058566522750778197871339847063574952778084811917447597373052396548199682132674070454898765297368376958226937215086534032137406983194177378207968948906177506436481396105617584244739236871910688828999256216793240477700406861759703969424588308709736438845243441238363717067441208949867557227357928790119266844983499015716730569071352108404998150168334604012978131922264316601818736538671868352057030488225522921878392892518581690616179883291336596584644553934556561849594411680256535856074645066520505358622692478849369500948509658140765046969204184201845377284890737433555804706300873260165571961731936853038984830274083803805858733906265900121162567949003928839593450883196436362212468276891290499491232224101150647761951083876812883219769271090660524123871715905579364148962628704683653985207669744400974558947907826386919617247550628801514050075732102784312304937081239508714708673380981761350520381636091790370818993312112351906194273180957869116905732947752952068057811647060370770451782254882626796857833899078006820871180316027504273471868630081641241542951762436430059875135968932214264578907166320470293378632906245272940048105813652753302679198842784700896156901331600556100463323539374819540248317483004497356981233376196308013838043680725384942935654064488946580039866626712983762146661773872701360631653631731150523557468382099854737834799522136409132143038936730906523090871959712324416706268579796689793107402420252677001549191144056861769633467181666794675063387936098195907815684046600535551347068969538699735104402720328424389432054883988575058744083050095622655136354813583862369379186923502908158505604930921439639399552224123708059046631390260634237439032089072869732620126834916637389824284049323232113848695820137794150260766886849072994961824055107758389294747831851867461304589218170207652930752060346418369854920298321692314716259855084103889456054082426430902779134463633595937320486267818201193969258344854138507766198967037433463980453292802792539307965204594089871061023934276026792865285289126029911796813375443123556648918260092401467109481778129103426501532822321747845328523191280196178590200855988845817121867208794523055827356021896805204805349690302235199335703365902714671227254580143388494620330664978883270544157843908183613263797431089587288800844279109972369503945949330401709712219110748233161088447084738134273804971496612343814340328029249112882222206718904419557759500278049906946325073483518350683148695045462010683889973402806375709469194383096250942338253015239625113873642814954430504626317799810728054048936740534310997431281508013715067348257125033768707273662519192998603600777026536883292546667821582529442766838350061867818451887091532568256764608137918002071147893995983398501745583317725798270397650278257249151267960576875023427503446744086295751965630726655235170979996449821545392607970930697309035142984549174033500287079850924062009004242972102765827637046687648888939175948227814718100399493838092448068957166466095433455304677331523964339550905558853081421180544703459791790248462807023687742696514294239543263690189627431843031817199585114382925259284884658369114694373781125242634414277338893074173122445485780702310492019338251591683728599814851093278402351307899930592188546069224496687312092200337781031889680199343282942446172809814170218195481382133199580097942128025025527746219510033423728755646957600286769027216269935802040587998293367209714442835557316684566395792437481630172633357885200217258019950566641607133600695979530480218981123022579511817036919951027940193434256938518375778343931324858543553635134948178197678762033805318134455326373413557558943995366921569175906222663056515068085808577528288662667572846657068539542200964579352243719501327739462963203521865216009942126275307776775098498626514618870628531619517014274888708816580004653981923705817381109782008510119539397135283051554390698648701345854579412680116869569892121225260619097886722362936417179743749319599962120548395446398674178154994877068726381947647252330894867285982930189948287057586230172363852165087495655335897216689025676347278474978520998567297683236434691737453385076105705918238163951797915008560931196573234117130667961386567797073825903568686027240961482838178588359280477048326743917192275658949601830573850030723209702285717479204504904441497654279652054280574353168036008255206167988467546682379262970644978741434847224782275966904673742548523365178781061541479084007744989816128676784581865751860709720483251375802355046541115085797336113317511397921319781381556727241203988862262703694323872993948468054940562271406594028097134824826661397957501082381713562676006167415900398468764889279433008154960876000629210329971963938583300962705420292411879095133546791517601391583943781542458734844164055248656267786644679678400041148425454168347219729631033532576829365589000296000312488388344195588605604269474363708465668283364682819467151679051538007750463119512067743641327715365147396233731159572295802967062094830073035164991073443932646918723641356060922642129610262031764329579884944247524044590397417556023841845536878582151877649611926494589671282580915753852563437584910026727069334201870336340568215353525295970306337030768728244953876523325786679006742233622751091755854371786412195225231554434260012390553536494824074561995480157865017219108345465683689423064553719262194534354748389895499984724985756800763188140427107509545132721248716454410297525215635203256440717578559643976715492453630654973010829326055113198996711149942709673293065238557441437496801417017983613464234051934874443799998076658599445357895803565421508655440001988481258419080040869108208435150074946069659160914842004459281208194654164628912143616869161986966540297095852181221252022203668810465507388360768375139957228615493836369948584578358634384163940182083427222357727745966921009531954891915099094985570446596109293261392808786046707060284482850204979838433186367594562656266584875793973419769335685188899461489983034814293126415984579871588539641555763288911413174323274632017996075901610661530082724315828394872681957950887415620120211974207166423097083301001005581646360092712362435774424334452282222917578621662706911021277833485247700939955965308921947058234327788380929501864497028188256275376955820658436367809913275579538577821509889176008958994795910752104287903835871432540115959640649118951152524928271936197173830645467751533889593030234188384268959200260807419703061881084328496905377367287156554603476469544259785111017793503943777057860620877140656875190939006607008531868097079861544360835420788165150316328652171414374040169710334958688904769811056524966864133759802685112965782289156288328010056227180780384946399298959404015212988843386645452642697280887898924931875296130366265065041827036548620115382333715014105544245945179411937911908757727331265210756352788735243704898053232127863685989430405167665415868756153052869560002047176171214186207854166978524367334065669268745278267251059105055280087990662705756614501202242385458904728758589399501647762547836464282368790196608320096221074576583561526514675935934654200236776611840198157802902081997665912238703259580732671610585650004955971643096143907444073883565785335674609452399965735561764899140254200828049042912022044774397990720158553233030004139356450068728951309760658386310633018554615409419887434213737309917522365551704019578246512643105826933737054799418983745945910152670609571761580403535864853580006625136748081553485981035577464583344416954935816761467239482666619121034594788513696520987444200097096494787863632707649408883644917807748799084528672799577461293678083242909454536073133404382126645135945496329671431175245030077448129161498492289170604602573540440800911643756898836397873389069381353558027334483994896794193900766062662009809150758502157106698366357912801534357087429752712465717699953469980382545155297940962390666607280789747922601914973924643520309448368235483230797678519147523474341353613117321571580939218179595796781856533054554907368369667506142418738376953526209111246484779379930555327284175205967600674169335207277312174407536961002133742943637103734035018794942630714034066785836722309182511016063477720109800947710541010552374342935839533327121731215656814003352785679700620580515013124310103684902600362376136260369465419805649928972803196359090417486126133930100616760870618258605682316272214050648799329219995198839198880315093316540060986160364659454092744948588615265471470695904084703144520255445474789838629636305796711612203044961857391756351000379279984357221198478769646871110615459446485669553519798695658769802763716645686237685173751654148513870961206216340221845688842922768060534386958080560958377603009256903330957611259609927893068539731162863893123476100452429592152657073541402327149112760175110779137120659791741820268669401800378966545353997924430523528611573526397553974788624990926606022632460125147753880103443275190937644035884328643183392062541575691794652507428758705844622512268402578172186065341100038477606094757316028793305527792394624906734936574026030005597987031782716383533178468844731088246911915881176468609815212268311762837002557250317081165374022037323417770374603366497789483540305213317983644423833567989547695737994182069260127272898522906177860433854770699721688713231367843114079256867590342639361334491188481939683081255800505632635160421515946791795262473435487113980082698947454722701482206178620342633269470981164572696464219734864896328555911232564311210138582839564853398726802529568559858024522744765852590140938347702318783514618694970278330126408948407132041776403764538061474883320699100163597116708560437920613306018895189793703934391999993679183102393653055695484856083744583403906606289833399650357801966085959908358635377587669733949435531542969064607739312278252319512154964169291169145607710367983655885915058202701930011919380278355135975111870898832390899443195253998261360473575087645194781082480091588585866056488359203558672170766901571763344987507200161623946983463180737349160617037664193252642508926734713451193665289905688201747650228200640595693356530107094097763229986679896624412461266285678208867595540341979008627614743806878108300756177817278076264938855993481708161997770940452991886957599100839920714210191408289102874838955235075901961136303983744724416679062639547085034453726252760458077746868392024462647633475828000149029118315515197894041215933588995055413900593853247274657478501089494727810656607690452513259523974623481638835975274930256157457546266190230430369823609715498191645288617920851531380156266462463020490834038377324892332153047829022124418091694437773894868000348043468229080412732022251909152041855419358944955029910945127262599477069470580925454782350309708469449458832993769164616074056808723550232890270989162840714592280396973633931892734406542689698388947754700714879662091032795854699845195801006200135726646316429414712324270652193189081680035550166928952361045943522432181644296227544658665618676914116547745440226924605175702492610236068774579128622313075948468133134414465488236046604440596571656238799902397075345662532799990416340833042478980863657996288906317447635649583375356583847877481520935375343547867955050018135238419868130176847184049290835183861399764518812808189224162004604210507832088883506527827503506098631350496344765863664338026907047845841779945895639626264025343018532659219692163444195006156010930211030510479074521658569784756083129121274979786330812142656568046684806060761804660462840887628734045958045196531640680171242271616292055433053309627485417087329399788326901013196705081417572285371456855184792652993723224372933204393052236104491730478971213397564411780749105856335353450614481569437310570834932448207532080027697927718482141522333923517595770498354237897147950070188310378534948460270146576873962844184238535037827998020400977246428380234429790470108544465394869688522241202143457401245902838630478922479550070532590108757575854939631298136492048888683473632831229949736579864366626934912789471818659960549907841175540968685623108010716100453964510198790348723578551417924548353943773774202834406868042859878926241196990430158904817092287538856348629467947871452164922055756124862691342662631560065862442164395198385840237089973599154101437527623528243718679663254035909626038473156350326611231913800784463389623863835824699001866698390580701154243310243686022139625115638448656831504317696679544440982998314999499863042244964445694491411724096643155037464102658395025776816883250818608857196055106899163858234831117659822808698211647370909289408605324185382146253786599331938861697174800850474441939499059796224688914268834047056175505352220171215497232760007651032888096683045335425039431410336083058313666107243463096471211678489570873473110537195014940681274015308457864314713031270246725556380705830084438037808262156318668845248533508609044040967940637471188888037483729713543518115358323806863969851634093731642951014642249504643027389004972761508482164502429215064572251133584916163398443151184665192026547011972076953097770044067752086385568967900945457326457520527604674506292550104750675167370899083068561514913746440324200906414948815133467281149493031160479598247983835633950801391754711033716603303710033385116797433817153384055133369910974719961895397423335948055676601765133782335439820201306946959288200539125098669314568507560128216835335090911168733307026301723666820577549052973984352210935813528267725908114277354102858246398367482147264210594272967825496934735957006861891231374047303359892908253152493321897347918504573781518907508101865671756476542486779088539547924795458011557470421196793395385129502428204222069538138226651558989741775335521024349180859980645977904927390075282622711063958767491879525238003172524508361753003582801883086251818321872681946805826722064060316083547224903780966357470758415348144967657871717636831775551549207144208011052036258603466514878702883957559147197475154745062018990977505663788312583102897618539788132738175843901746165844579720894846550391271995969863154751914799940290058131586022756679173398442802813513691814533535907284052050617041778598734475182650833888204779216603831240928791615930686371414492791407881268944808809770305780749309983820376417898587154605634312345480285468176527186005417860850424898447645853182714365213086237002558762916749154934778322320019289946354010708063080098420695734347647859375871650187501639634728143543956716946802117188823915881493484301526250659365032899559892414100656867919195960750765835454320547512174327608516323613600214403520822660191624667661498692652911426850332594855230148023979303199941126245202736325728640810942837228458913833614296008961982324372066167394769200185385160922218078800361301100497505195590574514138727564770511547151958416492225032691619694706049980603841438544801067677402401834982530037046231642832455118454930095408568552063841168314709263104814415376770346511504643049608159898508471366214497843026618414474408726863651371042398365924137438236183579422493006233138453686431457002071564728459044691100368031652144000604641739761376295963503601153674680853723273676428972775034650855577574007993376602064208926086182443046199235181672084859353884296535644571721547187342266840946176461160717548626687951294604052541298202979993105451300811467895918354582500254512578240582937105951541280902222426811869515953713851454877084178457231603305139940831641820209923834465432516801550211509457043315176412827186792090585216437170691016019948853439589847008807055399760439035153038209212680539352452358877086201550235825426723986005900098754812162949498656733155026754074336044242507107625259491933391373075706085493896515016405794069471085615851235773520163726105020103599683022779564755463185445993762881511722363543779322484414801727829263034369446897779727998892014466820655285715628123377954217463397418238264526136166376083977081886501595729153091902670770791040761679701607243497734816888004960134685093472332937252760408849782951628002081413316513993787443822054495127864680105556208251941036241465529853565364930776315396385489746503048162412141201895992879206721130129494918293647784219517974633099073666855494211423642486155710644936725607611535284974696632018169390190644162335480425620058870691741017849082027476395694250487775264362696870538509952668005914570932841643701465422565891369303355848469459403917386972853469124455154910752570979533446379425513846161097017317542476992159707574330746813660019717730061974075549082598649505781149691475837453963328007176463747069831232194373083390381086931470178075062896774135715817250436187165884104908992886036834527849667582612313804991480578186934603177241393210031020544124970627774672211024835958206760753895093325558895329316516342168897461747740410787338534665601420271118097994150120883773746481218149635148401001093552473227557623600397382943122018381522648138862547547460838709176968870761932881233670314371632616295363678203840502887991830916603617160044910759684635397849704280997588688299272526985571901517960923286720739530637920425200837071073567209642018222304765211098970676567506392330327316753480574037884414309629489799391031950268951478119062395032879544091430389958263019857783455642760289709949527029262305535216445702477210848802756623924665992328515770454382983831166374603518814600254433724485962950550401234358285779376951955819344069497866999939635738816327196459411793748218091740134645822942131823385778577359497419820118770048211819880624877354656431249042844101864510943435057069762981574047989842547064354993874290159621084521329385849196502528211827513365511789800414295273035333847456185867532557267272320553437593997723770765324223366427712880090140780084969379392882389254601474353395647776365410985041776473070777323771988666832096209629232904199592507887491109166539210535714450175821906721768063740184134526972767590844712672710038179209096897448735383444425142222346071086643793358954015669750631553187412649792815405648097714244522564757305847280054801826294018462909085035654915555770683279062937392396784373786735016698309993400102623428310602619448632328052654640599851932467933081854846364099797083699123283955405934219857993235829689247161235070833428463042239728931930967879385141083084796910276334103725411456128483182144969378874528049677175277763687469125061471526609420412642950504406046446513657891936752766564807692675007085838643658906298297811729040673511307055270833405161627139778656935792048032042437012407434806430640494342765118815566589850391788188480555206369476542534872873553693618984484398781869119847992262200293845340808695026598910926179293857522783131711585575959168841358143579463804434780934845146487626616221678746703450378566825973736754750303138730829775686875296895952776630339509556188569899268618780809655713199889574662916363428904921033389092906550577365307788198534068935445802787744236356511448372177886449646292293038192383355317710799458487880729536138876294408136165825694117514785617107604858610431782934757905077372579648478779189366625570967280206356792109323156439098941373525115167651719230341937500508021938023333792781640672339453228806063761634604168410364959338464894368170522158238752999564476442264415914591094821766223331036294890001408553150447143395707872211532104456201091795852812862787543778510516939492641950631966619119434465956638384345829969028124802990300663676987422970179602494738024205597917966700089788043050510202821191606718147606909382881360885754924836102609607173231999684566212914256490839088863627038293323966746567142844790086577172832626219595726014841193920687795579800506299929819296002900104007261390551666960046535308509902530018035282293183733719169191863292199999943660404022142333549573750896324810478059490511490753450998160894823360114311857662775574102280867302051372342888745785748539233785187857120077332008084043744102193009984567753782348622605726161831212356986792663697971263751571720620997751965744931223683035223727227499353834920670256576826305379914120260091309866616032091695498584224336535994518469227412061152452428802849614152057469398561307174342291869322632663113309599508701489600988593467113680488073785450739658423632328491135198151776416255076248195172832750488633332346001602269411530475633230151867006752274391837167555964810187642374789682297771096786554063228110159953581740762993168520777056025778135183126755163108761349629128303821523692279227583347250809077413087840951185109464794116558199700630637557901340167202248264270439431409778071082970113762834653080376587496604815916011708993595679130689468013543972691697427211049730587191392821315385087942893920498994796048065684762130342974572250115149699446326370010282636350935645147822299311481982827302241783738840971953563356758969702516852826786738140837740369104419992006401300692901770727721411840337287859806459626858857077524547242421176569353260572133577726213786299986458334095718347898347141318576425279601792618989470445212322702224471418576552352339371110577473417950668385096778008220256746361141315763579438039486695625887003631037943146481687506696907576025639911835137894043604130879989025170169207605956612567284363312552285289274601564727986108812536728770498104860543565952612608866567161498070386860976811573760785909684460158899587696989323931978291881854299350467030604292854506887749477033756872789582679083662198056408593138790641579819840212174277005890356186004485859694322945470610926542574589823654864279135848506440851383698793206946858248409345074301247080274502306655742583914013117079850135302639752629215856854349449835589098215004651127121817790538543913884571563032871394909339095328765830341568356000037352255337973051134564495099937736671112470998556184986103870017827681777951417310971516472628818163391395721724325724599028419005977698115426987080558825109822781943283324336307062593180454832440543453745939703149832780313257259738781283501521131509484524618032985152164823069934896992390262176327488110265052380345164340185697463725631524335531631981950535122951601328193923940245296530517200862280009792493208184640257061355675358683601174858974213334909699308210340913898546617919592652173501204917967870984658951691750548494840395253676591384002560305346450339324386129601245962516048296227464134153046556307549539323417157238753766082962143494363560074318286309590924890079219797309896425224788839624294235115872525927697731742100085776979838144955894909925102173434982152760081783259733716998769643654699338525346938070182691563267668382043195302908753280173049176273857085575037245588183712320597862353569967014334669952337607191560516073851553281116211462044467365632211501163389354871830691460576147475883495721203202074873920647528058121298097243412691133251487026360755147554956324460672911802296303797719086205145952227033161198925851183771493270291580920980971265504973091443206912325428080316274059256603384129962458463055957955959026923045649800480512892402229165197375894450767858639026431330144535033957932872621259617808672904777066148305675939625141828020435707972850905003008691228749018984155497026464871450296121285675451747051853330402191023282526826916740306385738340520653543157060244767060254892559518061871909032226885978394274583935903895591757090358306847447427589787655712852345159021081293351934024639983938361516087094527717180366755224098339862803866737022202592013210343728690902078576082266171611264903860323851983053295795650416017206969361276446959755848581661391401265641240280049954630619925624294359886521232579859532396500991049477281359476315066896548735001980739990824006466964152154789690739700548922480013805497260969098893410487125919548388553748814192167009226055865316926453907017946409975856973244726782226301035747621825094762559599327385807954067572539879475007833287345878948247007767362135415044238809310101097972883164606032325814895594396857426997948905954133768438476946489380393450199446834124917610514539955792483601499302670228019151082547521949356255255609336434808875059440366235947068998197140328267575701162554141878381925492421684513459912857136891992290177621496211397590881533849263568918088057130981537879726353673070677425796519735240828858281078622598862553992270816843638314976245768243711264019440697655225398004150473414311308744642113789302708176667362699046360958511666527929396360684870368609803406029494993974181455997188192254273368639064283755714734174713868277671866037872364476015933319004854510002441893589606809143144290385696793150717202315076497988523949339634054947858672609024808576106356629409302843750465881959342700870245625705103858346732620045444256415039765863421395234788130185044937393986734751285598880048489241687917963889517695389642924941337115508652859328140563208220380885860052632067377993960923282378892454882661025068154611076346061722759175092531343150834454582187670211830941897479910005115030456092209914431850145281258476995773114276252751168891904690582692931716797338555670748274305408677718517474596012511710409394562664701208305217556245384790528224154272586139802070562224053495893768720027622507875614546184082060194707462388755063742540058002736150405443815847502076404497643370214954587011334389875790915106186790372898904953580363435361587061805469126437803095285513554639739983862551215157945842173632022641572176649786331144155422255027379398963381430931133518962719705745547459810774610121442751663871150171487167325048771589374295547650699659877147306855227732211003215446342614426799607329530958054690894242418830261860860832367520172360888108639204853232687802734142248946401764154049100192859708237444304632654638985485028290168263950050283776527399355507143389018633129117637173430859377115483918468648892310461129040654719928966344454794658321631513518460776545287779361469987152010053159403016875960889324421500082152744664780086483790361764688318725873526113549363964921912958719198105226201519996772463036754221554803433647061021582492893776425772311373910165553788872703031183446844013925694619934057544488021695022535925541794420778624468625213087757364330331044881637393645559134586776600383313751141023814907031633464147272291096292134463087149903924354673685414888192337637678212677149116897305109429742663543895336720059685639790467356593976917866973405142516255154831116601846513657111858982448449042726117314630134345544549935867405263539537860996706478061242169513111516264976840817823138809080179931026666976923305485348682425268630215242388772946557757958115424404360363393066145037382567034119805517183748395356487925982652993046010963527720856449045147120038713039784019434059057847488802285939992343840430940640239725087561793816640786793599414148016766318420447453551488563158400100155549562264431707443341148629156466304201467761648573864172866269887337141120511485885790759701621873672172398266091449661071761099523576546845522111790143325021915133983551316743795968891628731701074317956612072990132157938603647157735731295468317583763222971843246004042983119883194105229570420523449017861295632466097233070832545756178929651201242044591600412913630038446615518218052042889996499459334158308365872997857725281128683222458263487822715644613021079611202953428646845220576422425548713864373965207895055388769436871387420724877947411726457410129074351856621940725891792489233827696923624585425273674608145203130866187095546113934943687310991330578326014555256802974869891108633870228511278025158910118815722635547366269611577568355588595829918422126354050532688625694839379456202915822390101624562008916604683462576912661532051988725835478835403418068729834128695848146465483494282121609199827169139335864535609561387957757047862121519993317794663402091046230913760097229046326679195511969394626960931251421447702877635634575654794347035753915881281744215682026917517572575523959702881411330671490863297309957620559966639128046649695622622462035368011148291464856482217831590808630093202936423809800317582939702636097292649839858752762669274792372281532613105035506043239613121947400597284707751237945509206789188848942045381782690701014315944238940143136396096814609807840745017456939783852273159724472572843606971874200770641927736973478400420848293168160221255254428068767466286514632173179548210667311421112650410087140899436778454309712504090737916500409482185786599640574867373853193257700970499657181006704996316544601912626576261478354492596079842783366579803226847809797357909786715992142266658877939729650876506704786649859631385597734870403152462489188108881802888891312910174190028153335541301967925295536729168140022978494209889333240821675637339812669638653909326183537358364744328639683076791249819649048197320134460634860514877300692879403830412720764085382569428095578640253051559376238992521835191845321168103112482387675126156114317082597972197669108572705648468978725854015029340852743505898825908147384092912589036094753893239565665986314717646808625825573790547452973874195021927781544698587696935767719240504744846260976250905151671504499742552960241801416964984333309399473729454173386472919784469849554154781651856661493317795560874704246238516665596627333436219979925907341000476820667017175791931035348253636323969562951624541249904572970717679179120429119517144266837747457575004216859835792649271457636794858549361136977014496234842595261869819259641560042856347856060094347833181937010861181652190945142074967694198392747192328924911629187442708778146726903079161202892410534316803764736760273951519868316773149345604737111308708952074708649390000862945639912893468707007554903381691718560311473441070494999873319294891648388072715197987271944710497822896035704757777072029452202654420096472855411739594668956669969378798189520710018082707342182267325729058389810760723533301514150261089995080064195865006774798260306847174922069498518408412584246977327462328423746166308024078925949437314380875286661168638757138339813575842702558028923045604621169732003340756469155772589720980330849688064162927102546087190368680454566315621061796606045342425767444235195402463718115345248249178671461844049791985951790631239735009323237493027706066435320337794842850559284008531928763891511257614141205260897943614825460246724121091935111487336427858431539775884967241532935972928026098264576662062991554380078785966140736999998733939250574218937994857418487564571428734551038600845439538272522810314352904853649924245287024515273294860170326874850613963598714462334680450609778072925043916747880461054415668337507183935516517092728910124838384541700545575010337569068110232998318061851112346250418379764595954659247833601967368131025601438265926401491264162402617958967313293355899769032682779508219233840072374726330876399590168938584044862148085413296474598042137875024611330468401661193954690760960721363458628043382385764120873865250592580692918421320554295846327260894186114675783863083436843361223193494689016760734194500887464383285698987295842653884095924574985024824923963887663479608698099984067634825186258714602470455330569301412109211344657031446978059474293845655795204565096368792440939748901410831091306988856438725229820658625240666180890408838354960904237062270604749190491437287721530181412315161340774957193217978942124894478887066321443668933029115357034467450096145032805849233426990363510088023950290204241520540925198485727157391809669617198848413854733899199977485329308169441611057704253226005917102443172427971846599991822406146726771044344849111824640284960255695134240337477398921446784496140967735019794205930575530309049022059830130218594133461752052648176107009741101719809589102161013940972334538274951753052335895199418955104612759292782581018198452545141165276214137540603291061503827288871510607783843941267646882902564246217033038988917457398461954772707268403449114955532279226833021017501880873598285019255834544754885274025549413358342057318258451973505857488808938379420972587541919104412144635009330490028711451593909790112638341864991178838293515616471383907002016279114419189867830361810001955768266536052326976278792341108223341220230077480493952919755477635054306084326766352026106959002715016365485719623847654136059044056593480108465341746871040866701167395413320286118094542336979655099746566260032053365439520690616024181661578011046653886362029961854698084221687174764548231702620363556067079830321393582329126989640453184373724963403484001438252614665756840144743222626416350663876679730490896262354130573028049993201143784375447447644703336547794204159564121604008363136468788180555259257049832464548101411311171651252657705759401589139976946489578070227184746230305098655512326875696378994469288544761440381013318883493496847595563713972347183017841826981379911421849152776639050376072305396286786894922425117076859294876645880696810334891593730778220204859358717871706267750529973043628972501954984313655915705566153844062504451527776441701603269261524677108945170933363902760408801990784151349359052046220052660083722848743288226978194073197142737216238003716729127539663557834208153296219847735581275067658039776105238847452712135260267998542398715470528534852318041474142774338963534249427587213986896069340316584481707080861490832364089190867050869834736814427863072110171872702954158441359168217709417465063400315069941199909765571096814711249300025737405181616364128706714437213275883615491102609419339650500765044534938206011073733511596432728618436749233852134748152839165772333337595955546890262939714927558764695512804324249022689174987183562805446084228946863012433840032478581593024715489257344250287916124719681422693043660739525398884631110935237913224358328088956048254672692733814652174128646167773187633334448668294625655827294901991828276024191707391469156629000007055919406231808300251189818446807689796037270818561099873711155079774109756470680891852330535961537031368063414648849936245814289266265775812061318021623597983856269218144377728933510033710779570271522349524091464180349331226203005739066003585278295631500687889608644951287286456752444251502953140656700880365535822895440778312549493518819371182463021496147434290733989174128574478079735389224729234130837371234439378900127021130816652408908188483899247555684115253492211740445555698544818769677586090778920016734564622928720735632639596661683058260322701966287659544404315566549748075142219813616407615774834621218596977929347497707553515838208284661756459085911458409071843511830659680706647635701568279677350867827768671279410902146011262852024035084012931022152866599089200700607121444247910510698390575645602283844800632425557062571576939482057456554247649403146111432156980189142899013284856040123722497502866343221917482821444092999683136964747385080281957204716061636258719298644870109091482965219711115623392970703334120857175257597765559522404136027479344662389479439050212879759162220439475473394247481131318123155975678632156012107857337265539016099150404142495572810616482292699120508951223369753508046630429590698939142029701543578778034300952824358146373022190262785496521203248839782942618391555858487219529400435135030274574657943164934342294161550930073096886683717717527195787528719697154938984954882638556956738119583109149539965726018803444387371610731802149088452978850906314067420130723924863798560119581208807908660552177249015668226145348415010931845955374472536775706699915462686729574914541925281704964294913095282389975993582753041309350788999434953834034822039754382356338266173382782440147733460381998500775186791848352322890351396754356928252860697943781154443314918589318941378097449374418257547444025045779151759837298074571802541729482791922821355794201196232740596573484617923762828217471877629986076194407503281314649521489370539361497605569645652243716291835809203669599869881576285051772839579649278013712119847864893338921677403678052842873813594940448769816771827274662548273091936462352877634224372174149967211473947277589540524155750579292082842780395217862598373972695300651441058570824598618659410109907462117250663568563918440742255163958900229511617356090667983202549288384118026750140653468239193801141526935424592196652000039019738567546568541220413950104847021891713358988743678760374691298520463811365078137005031137909984768233286959748810101145467529748771756683348095575897157203580126006522635557438424568537787619986609095951143161665778472940363179884349670547873694983978887403944962644694927101788262878461828873025864481159802559723175990330997666859173262165669327150671724688113748580955082548156088572239342063043407049903319863683772449184815846667223410478047728862878728757967597865846306656587061166293131682500410389226126880214654240862321816991032677409984483092508351247936824641873449904793264498737837701086421155045825599656076256916060149283873876918259703469233008257951938696953500033998835912474174865049380455748518694996667983062914263212378404878065689656018344793528584582993251491459952843567181095572371590489558200231319508977062088642721302832204513063312229007842881306350392866628653455153227000008273325061149839280495498219721350609360453221798105998563827874579494007769906203505194750702791623972258215143425457565354410421935855785861107328358673551069608870686844253186111510599636218134141581012345905944225953124491144622604594856019089772289755641601271106040271913160882797133115547619590703903180946710930436774096335992772948447170720714631157583733698676620815711750573650407276546442761824438172919693197893268751577911056334140690770883881182306281575067597443317600873768269085984050844210842348765595329056920576797173788624608462138909306018768126874102477979282072259857698984327244575454301186586018329214319468836145851399836340829172516937018504852048198902089673250485506357676914796895988031679245433592519654994068200326643375366437869202063839730176035573805713083847085347439217998445501450614907966557537977916509239471043711694253388851181254488268292301979670471218737384656379509402564146414189448044948207786690075943042289740153440973646819343580206811641615002220414790814027559079155177596580910706513423211963139483547696542412241878141848974451842150671342490004704408435707746003580528119922203543185656741323364141433046469598170968230556274429141562491138417872020540345402371135080223610060820005252850658611372687677267477942662282731160388022133935651509645534048329840093037747970431339182753413192850576483250851944200457515687151520123467649286087707665881685189617116149437184249262466446813111976772549896793137445193454056411027530091663380378337194449885283393964203695571286903741452384625843648378894080410284574864572306586148179529860755892818511310142209036393181976450208581646213709496434007594695948117874762676568366315220335339489243669236727616445254909725728352785820131536322536667366299023075652635498425770643868445613381865463434937423390690867651529346328415774068366547370474533965267153324691651250367461598687761075617310948171905402743553228818599765488972031714942334729915446173380126922576512083995766299132490123772425480915768776642212423509306172494758757408065721574382629064575109338694854492876149108361492651170974878638697498890224831277273062015448142826845956183024036254964419603144092436474204198233107605500520813263198074052639904600396803034149903434058427620425315449157284096288647915607296570103136557652994366865997081180472958550667634313438544465702020733483351023696538650662236498402955712912059603010567050767731680995075857313218404687215863185388779790219166586803869854268487957371599624455738881190565369227406882605401166673573121222398586323189333177435455805680264286844991258012091636206954044469415604838959870878190956724190662092425057241387468126292998059321956694505108084786272950917486924310378493572411787076569485180121091239644900263466755520079908383261918605916166975212972981877052262750531868562656221738618317574809222687094056060798312267267385668957151022648770612822817811928281130338181930884191716361202776990804330572386485679016184117591522415254752748125399033209426547458035708594561148216585983843005902401833212576972367915067701682321306131986645692712197423479397968714500393016237061254628883820331991861032711546472695466623909753082186361990981636506277767516013740187937968796925065366234006164280074638723526114585057194369127502669005989621624823864699819272039157233393539149532262022846020477775645118552764371676205266573181838078193651648096664502819672846169818366404303553366948397419029823284228848188591514235600516786436096467768860365964971805803043546530524317015114106848339452924066779208187334672428865600419171754937272560872597538633674291730536295822101923387000034676613836767545294011468386381222255462423234556746984834816970720608714484702076272100412926743980390190253345330123103319957996926802638966850449530873000665256495028533022856572852288225709678367113591180125481976901734133891265124602249884398188512180110758616385915892130162519319307485372031895097909281477108713840113109281488899788543627211716416063022382982830822221143831959934149728509864369726794724323702113104075439714160966656768691600882833625213240842498880684185648631564882828254920851747771483478530806914215050200365733449351067593161260874386204233167388461027674331588472618640181232316654332345078044582130199038201391741402283444032351340315469874197529086807155831082393443535311680019988258461970734532531482234804371072419628014746730661195845379052567579565509123824546671522389579564062319852019277639823092968343292347327616363465259665087454069789288399286075849063124341696198023764067925451656572417469629607329817197639620320130218883556963366704987713750745593581032671225106167118007798471730371462586151035020832785386550549118221089418337016396069344803944718248859254245868140843080738066285389610894834679454221606927062684223742767664268261308726662856293343286162251493011987348768247498375650830984914100236343890923955424861458511886383920152402047621866734254218856771846611924653441923264099451981259017538392399277725111718027397226228125652327775646725087033972313909503417274760501267455560981689812837038085001988338245510127046620018090877456888528643807693992574612661609875472444895464792308746125030338359581909469107474976981573498276450606880126727979997420371636791285808324644166038792009760498889249063592119313545563772342984391755315904443206455072337888446016225733665516359664360150626400424750052902490730512502143508327524464321815480599865322029860898675054279672851119353224982272082203485208006151611493300321325467537519676030742128368822882972027349860129582686649534198303346192869555494612187981876893978875934196676481524078688111876103705652533238599492565359762056683584861929581972106291921016117825992559571198251640659022152583076770018938726294839572526143625572205639032102023654703317888780872294726599574347641815758501699681354973940918665740148158937708719778185155292799761332387439714219888778402039415224951833098673748355422900998605562970176802251016572586402420132675559443835840840843159799589415939367046562184170404081854950153686372327110997814151070553186534202939051100904952753419951783094200032892575513855790627830565930845876786369500093407797031073535050912088979269537995479913744977080968272695947935732399656845813802675666598671519772884931623628790499012595430171132323212612868128310632799966632790053251215558343413933675907380499282950286946349057955779406300680093658199631573404706526071054856565271859166863410471159142684977617318973913835172550856960242557267922468161514666603280302863446681707988141251076916321443006752026019508289250258028382423106411386518233860103502835635694019726788493651607839981605793885201044524991021513675272540849777769576405662700027607471003192043416372693470407718402180468859191948281563775913013721394209813637325944009239424973720391102905292068857084409604880070712802623249104292361069167678511331167258652270598837903962822272684094137886243670882978850929287237819055618868920924344868548851066063814658629298186813852663185777269993088587974807214799609365674148002080145124872645403240506851684955016977198969820832909746202843422174076970693998077277374175848030144089494018199945991926503226401579737969677303060637653902410400392593718773916179946630756023844059536417712685255561588651334114802990586754295282951870030705889864667929997581950143406780079453371063246061745645086229095664627898882147458715321803458804161532395095093384342150386849631527302608708402258731569957843459621626810767293114459927940822868744606827095564435528653722605752899981456113991968338483545260780435732973211683449288607677115108784465320672639015103238648830961884703469954447607924024535946710575770644313034185258322187345892182292434778360235984090167796825103539265166552607897027134750346032531797419056462430476230625977041417709687148108575011517732877649981006544014343918164612289494450706102918921691846812265896425881801804402010139731716574929412458010032554924382114108040162664304866640145755795982851652098353196898475251329238543076490186139320071716476943882531610248262619644314313015876696428485850132521885387869937759785108649426584481141549930130193031988405453999904241013947881612052728414450308040779070195590947810513452646213839320893398081437911543514112137610437897480280775069411869218118627992953038508699320195400121361258996978144042955526694791884521043190512946079107150147032443884929887332074354315852361196063975091373330260517100733886057159117901411582221507006369720041928123600596096679559229791832073821238043190542329634995449695244785159830110146755122567349246755703235403364214461440262222922232386814543093801112888024503302718176744156819942242370624527480712580535851167283568005124174040475512396804959255575149945541523287527768037858584931682780690706321546377284296632503601491349649167735104912212406697828845498902690886375645575549262975898979207143491123119406175925500574753509581330130873561703854284538297963533073914684614924713243445206019209772675919270279057191971306275617826131323746370471273350562456451705161490957974876190335919308689292183433540332964197449290524985103818527645067957830262283841862324336921217306692401564625781423845110110141590720722781337560796450172831395835069264843966701706133908201597578378017711141361438705551892145871829879952122830990134740375295272522808681200081051034971798059781396676763187547221110310081660433944095581272188359214632122346588824399670002961970984342963626761681478695670761243378938356486878376239046620195331571634007140685045941932394006468193314438561920557061133860347116682869811510567820249182351728249323025876119855797825362218087881429629914900327716984153725481310889621176322697711183834441285258487790608509104545635307471387708856145400936646843703223531397411830658836260398289305283801662609584942444582381187860232667677573686945166618174664238810774062618389574807560995741032786364564521294673968869076799744338221592158975215633549157494907567560169707795070605691597794075490665482360470660980236827524586026289206178490281115074748596292873909899368214745348463044047871181999344623749159995966684460468996786036439611752129748274137068595295947576317159195830765591418042535355287361683279895675532501884154529510874505307695368063523551819155179005246966175578877328683383686480341033820432618661829707076215459043283856702719234791729941947096811308625826311388011446846702218085835501962533627092172199141470511526779921992653581395784764584384300018349399372107578941457148368571436473309539081692053222963951550175799315087945682372122972779689098750181658751525542020770584782035834133614085790842657160811506718375007834462165117998496889279158667278012619115612286367141461771831270309442324886527089774828906015754886543156821944763114679643778121389956106793371042102029758590581057944906271705332694188160254434208451997030178281112332750243869703123313884704581371805180362517032883463578652964449844474523207234290435399752847067569650990294767199207200018206793515501879368056654684328367919606123600733301501554351437855134465368981672761702225798393623967412170256106704778426986992344482277193651557588009130328890380342056856270099027284873393887141953775323182696619000404961433680439550447025344144395056481265680723212106779728789489983275686212635338728230106414185058587218429244477611791979815106975025391448268922510732142161376549782090499094763203163622789436148917903069696891763279038621299130692033246071651805322562616812665498355214775103649461359648756152968621507481626138859775834422892645155061176208515742067266480700445747350857184857834272350372189889930555376026536264984936969509615349304995444107087851711370843418553125309351742874229728976590627469477526856902501668016946366436354299679691435420723052391116239812173438034931379882814420135775213318710822105935752133362234086667692236014994434821596585997234306430529608164499940456234092282540197925183858829580176462811760420406225513613844421428799536197150368455086585062497091135850991628565220887242372206240605595375936488702173675870308426394494471024566440737604106762049630515962606875043153701626768768137084784516482427362875008031559460948064387018820518352588279180725819758143405240612597969331848439254924710608178028712458877362499185797509973704511691388054811151421972335081178618855266566283618317184533244508338170570476310904977000564890188178160834365562957270194409383679718386010078663451818591249182234112982417281643688906567037083143158373096582955250792854559383904231543268622696494360749895322749659716768011896909369635301369324265992941972378626774461003774105468866949647181133428526529037571876803858454398735503544615191714149940205839862540929138116757729670871798502644480978681540603353535148068059574294069902811000252761101089887433190141335059305241112991134259227769050074126454460178631068666773632968772861089116059338629934767167703635291895081142439697588964416257263381530178221234192937146470595670933922872237361518557419207209366730162636730784805088824417936220945686842515507823350451706509793404629027377184069959951302567386180603563659553494230312070405341633145108978684533614337693516862056198181675401250991466145644099233587443464255347485751352560437317118869413263449146234898123453013195958246617963833319531178227663705828272365072077406530628048957215705116448952582190227745953768093350256807246604217573692026480134892326846031437703655305703145783639014176425011911026731018207673120267777550778356969594623800395121696680104303895639169219418633566539904398570157515541157709245157980595872111245484854219490091661353521186618368919318892779080324307397914321996722165995476023265985836863238427621722151983503367793333519392529227803989853016908123899036446250869398059173530279035165626088864127740336307863348035164903436384965923718828009945490229130638271412730800898302411584114816891092375304292950327621915095053559681099832452762928141523656257916934898751064992349030410548645733451128154735720582660331249759848066172538657307536658197663619265948206320274124846607870683807513895523564238483460914466912604128857101434861501926108969075709727137928020790391047072027237031113877467613815907245479489455118153188018012547304199032762030123282259067776923046348249701221640523957795364510649121399874047380976710027399734498261394395184855191050010289110347313424479052365447432326643441793454222112063527240849000899608032935753831780853094705922415622119376583379403741099243387395408840820835035556448066190161827988816674433971971317490862740706757850317947697914223248897412796607747245887903536584412347317193172932213366851249068098730158339799413424685931563198002996536268940276972313710874334264059936405638518759537923549536404021292250654973764867702754017905651380299856612899905304050780193264369719107808952814474711519867928356943436751130306879523905292208237087282777235605263430673637558135282382650229263323124780912276878472910959872821331028435430604763109814231579315657655168201072578032679418277551748347326976684067342072996536779308493057336514574704190218095619361320880891798419688096361437891006875495412257055799761000423483604181227773498847205859224102507593302659365432228514104859472760518302427127472729879478358211287559221089526805806640597064854663712751791494515130921274696886698095977749141991665411735971734660112676014075798368127291890248004927923343241051920740086767257246429529318202487881325619391071816499137863659723790444918827602358946379327317611023897549004188895349937396025023781610284765221937123002301804214857054990914769744160918472818125627071101901037000558021003369627945263071746737867834196897558148955553942869854945628109370109988988098048739385465862904112592740411464490272872981145904984499296881391954525184600712719474326340398129628479011219784740287099764928883699491966674992224634039883185056294347846185355045177776579587487541042909670751783871712886092020859268496363014873288108912422548517005962668202240143867881568253969633898601366003664319246872272498532875882436524277326546965067634624888855558784366121385508342846047558235026013128569811971562887158053815749757447448757051338419324861891080574844808472555813524095294404584173105106674549499376269458911140830893310865670751341158423185097733833593333167584761911087878894993826601507056340557488382036738354112496979770892165914105947691561441987704053905229211497748918777881866724617346832118235301291981161595912942077633923890601161886212750933415657944173623646636497694774831414730329936521021695385888663649641204878159197470398776641781289839171360115439419742187555279566401978938714186770234972690220520473150364645314947052722938271002187477206799361751256180208949839125340217258463651239082821272343222298983827313281286059200214969811898597779869819421922290954855293417864047092481590460283562015669890089922021833800997838580282667845829053569631883434800281182334851937601039580207344667159154786543987639577010568690022815155491959905594475594499851168496445880951462370395195519778970861505944638990491310855953021087336021443564497908888640945229102096748372496582733298112235093364700927868763885108068547375702518220349276788382612875414942024641985977437438790141858253918876382980154791754256468885853946424534301883878607639805253015380035187424763629341274894739101592097286046714237779150207188433232815642700869699470941120384757307041421054297361446650465080169795822285825670466876623971437888211052755693848327199069863890072743776276162206664681373874603245181970101569607549644292150343436163419316149611733825950510502940971199765145258001445087897629757541912490940237808544585541429010394635433986899616877465526505035981009315895220853621007485506260014265309117643424293777438699078693404620294596043633648415195235294261293271210743105756382803476934768214381748806254371318036114320829004336961100646199048118657238412143547997640255664055460871298666755066837071901822687552385632788020452874818447712795939422718508394507941653425311630783601724047980399522532034822015061781858129150730986888195884578192033107870576119164139132390512893150404525107826189424340914289457944130930968207777362489913523084233675447221933080156803229998976624421419539679664284035698412090342909474597278267048841738632633807499027235285393648304936017515496290168046761110824642439568122090708236515933406279888964961650644745354767548737079468952248751508177569839499368994178042689477266808023085013572377726698527565823803391253016188316781647292202009898653326102456927438517009558187302532987290135639108602847299469128759713011894495835461512139463439065977663182173184284126505875308856840450778463773828342477231270252806758716031576685737428535144529345537727994036821001885132599618857595745267947227855483700936455046633878903165705479757373531659613730240950092518431183922640980161270083820742938713727371668937884529569905592335519765919838889692013555887260641237808114991729869357712564999251435667339881855053831823997592024824621518855975473306945194927689472190749186110366058041943817858071932650675690915531471828141485099958048603441918282316566523822245485493199965957754030496030181923336509870888693395976123594721146964515134270381885682935522321720313685548225616709535080515987442169380625501731866223481414084601410014760268282118932746413879900247877349005518200908757429478331411692667896903267151406113130300379278166134093877211974360116586355306500251630382508091790136768883245541981183909589225507826823391895925232251293865297207138862289186387420307252677326683917127389736915714599255361362989551415898540718659755702192768605210033038566116223130291090305919594651671445407553408528453431581599292003621271208882138596123524445157692963854209032342772877430956811463741948407865511528064984223317683402637681631306775366943643858299606447976341841236092092853795057436120730393485001614542910156764095738350487952991773315809306859082276214732921101723178609417487235291902757181948067780598492421500090738480139949655475842834794225783920100825406459040751350289496377979793884101765484027150929088387151505624384175038392386864342127325572566257673349809272126897325596216474640296760372427191049416345535806600137688830901818537272867520010701899706733041385173876980238586714648216354561525699602962595464539812546664912172271376148248766932614384833345004628517955312410047309973381755407970582964535958171419743754121676661672663713397830933308338884238108789391258006560769806814986728579393086220802032087791205575797312959421504184416596936643330893874471593153756375757965120311968386681921646761206690206131345726445608082365762122862465301797930245305119247273464538946148237341303438486910324545828343815015116775730937711123129358496361552351948781645299663010140356785644400139722837606174765202962483324718604204358432957251051138283019822359625896832559812956132201526351365425120373682903378138940676081758037483890080344840138583121749004323865731606826356104977619936069869300754956428635595338617372805233686757843799560868050845315950003818936085467401018432108582488693258962123208494731454210658755552866782985998153323221240768318681692594497868634659717528359398136329899480077505791418233858979243826210761756753488186086349693017584515325916175163962304176396673840457996598652414718174133724345521912364760129958387551366602850923327148943757308440751976914218936337930746123291432874930040408109371369020033239547072005875520021143362748519848026362469722620141550709287082409599024677871470885056025007360213760608503695786012358361292963151813419689233251267405962343904372909096189428327806634552070797218800328117039165193688895870367064694170001280473689560070879813311693820315726505170282231445630808023878769947052401746810608192884057990836686640008569692322433427249859781797121950434112320422082088777286656907292571001006351617257095310069940080645223014408796683800719249382971776658411783229803203085004460147858890961407095305618639454605680036763710663263429569115578677922394033165489273169479488895665053944261612041186927671920381347630223001852431207697256876116913443000900441937829906785607644428637773304233038783658197007195235081939839004752827150294730326101997154594224082118139428115457952062469491126140062630161337729139026466771267722777594325544071264102153213563311602503100999332288007638097839407224053805116297688615475360305980498955530167811241459176190845742335882995391031474761866171369941599690360365324249290025817355758652254628065145332167163232532950774467350522280415930195886639706755914825449286290031714258399892098564140226342108637114912774199567184517955343364048947492351585142675127507659916028131019345207868502007557430376216662400251018520302512705420846140791017989037670965788184157732613147004819870127128039851695540359681913288410944373236844047492207433996730738080370009345130020747713687724535455250477946298732735990351102972659036849947908922416625147511294216189693165230943349099190785341186947643562725048667280824157131139425298298567170858064893617618656720100961549640389187621464310078307086963549238879254630335045128233436162120394986795437319284398479243923691231041582217817119645432714638600491755349302356916904100885145483397890899816478822720533687651368144699845363191168803948303724720796997102543663941251395046565120823477053798125906834964033289408024950927297050840661909782529483410773760964026527539995590995013890191222932988704855538531477662242630490635627923988069179947968642962583301796494966071830927974003393761808383845876950164257282295994189661245883550620709704289277986767755794734810483454005404884490222738452066109116571896358586386137097871101098766302096530514382561766732809130503360347680174518130822899241119722024022632197083252781344429843081225747801686777700115664321956805713416491047489591443347469516289324989741903103513197983242526342430675543408275576358887754038602596961939000667724224682840197927121596758534098427638473434179224960013813798864515869103919562894008006306616022081220275901978863522391908434357549654792297440624268044874943289878201284161719915280899367144156828805753778026333503019800973990324797565934177633441269156438109992391410781450679086022968925483965231386008172417972834944435233214053361554627517530652561169659636776554248991142525375609317723571289233826933289775804429431921663417549225365007293263430937435551933836445313074153703034488440306704289050085838528470480269619366068643657006188270684469189599809530401619729590163679582724755601119560181588123805939913452532443848292889112532169228839473117319414212976679246028572597441629455053016125688738222449124350644776623190485979353815216417139489682108561896719392845843145727178764702112902710764387519754527459912401479539366247041548781990428354760904248114719508071463164402743486676900815506047677587266527139750232604895249248235094449261909985751134520175017834085837061039881689898053009773404528454775980486589473400872387937768094923396432546472748526264370218319584779939094592756830998698364744438882600713022971059016293336818744225176272584517453758716433838416324573286793068657891677937019472541850773124917948716879533367782553573826775974703322942184115277918676181695827183268291887278833873812486056640567824718928001207329695173541409531052363436396535022103472389999776782747310560037225021128021445371964532780245979566955180789849414621219550045403360486742519566372199506326943555135305490994265676660635635401969027198070337078600385781617631355681196702892886837038116544307148804527052779885872735961277636626080129775162052929196408951462817127550969623323980767386267800061343532985855407252164471450810502315976221733801159724823997074763089009837931579452931556029155124576937624744052328224485231538842221326455320864567931858695509377896534652584573803426699156522473448871375412700000900494826468624130424715515952006850967039729088687248796318364411257654424510603780074639638982657755068499264973232434942256431187572794556469647085773942784655479790623107504076304796154576815003115948537225535516153128873770963013227395930514033072814595436292712268884319840256922119588841817901071151044776142784389574100439457472203186125418961199510958044888609155161723764250775428177407448101178919227189656975098545450650449118291653554338950000138946358057280832945722596551358180499685484551126628871384438827055967421701993357875140422672437542165480746115237567733746233667999609509380515719157628252440819572395300785175091027544620886575539329212447421344851708909485667281285449168698248693590307893440596044651218248214738387992863006366257274830173238396087538293880760204559786210655787016291639938908094511910212942879856729062946928873804053278068800826168841029100042965751132156799305328047605393619784392628949983366458207859819419211912472635088272784538313599419298534933795977678431695634863740717599126055075404203361424463437549001417951223229217246934647670157041501402962642779757649078351499672497146619048645265181597391494417195792193136258368592598577126696689045274215181039385124073051402428998450379979271228701955646890097148105997636746565180626328504990327341191111854223269126398029470819292146264442439790140339121062355748413523541116965464788101616864119026210867770937121832943312732498176423123124260685647185667004481229580320202301681621138612908065002759573444807612111843366997202220538417740484653691408392128078612255367195390337204309420523883232299111393996821609585383723747707294446012439839117013457411813590660230624037707649882100353305079894039180164906443649346542868942766906406532866588093241300928651052183371605784997983931843891518887613345284804765024553416109681735399692317750527991962961250924523682089836979021102967574329078505617084228236329705261652127161839884957932955427852854700901842353128868764413631950522968449033797073283699637453686604796476834569793722962766275917695543274324656717315985788651441572058025260520968815740906388483982489716684309862071408097421632902498661254373038162150150238011533041143883935920591548674148788792515803999178357727186373456706489278602523122593478507745129933298153025842580046855376318678987464217353214651880128400551260192031840428293111249978204407112305796462407611369011299603632785985715835743695100079774309088586896964326393094065240319068870541967326394405816181060605411106703385357677661261927277906939932257284800959586876024845312201246641018555986800339114498625127349412560104707682687523992965696371827901534346869776035282625624708748756274865449335595566019293486355783325136981811381544244175448185131748808814677899154760949063634819020903949310530476196156031156225081164470238236837382436241719119825029614164088037019239966763245522804919689761121586629107199023360456128590995710217443946536153061356441967790686278829057107148422871686847946980385120096469062112303446594471851260987504727868179573240648693480695925893265866885183339479154294289957274877635163186849435055355881671155101300555452199795529843524485877395683910103510618539070401421885964728209769587478069000977480614137123151399503875877165204400457707821003087771037185716266612182254463423843769810409818317082784017740755380553080846053268772383220611491278093886256472003823377006591201239330186540280752844647253521003978395492696603459594061109641954329130036992188729326327791786584684333972174013667479626550345236747227157080334385783816897904864797125451316133456516540211128592480472318468639955122505872813317683425414940580805316903006184731839289125949119440355046330259465519142713400524719042117667236272132988636021296969464607838673103185616707361166762013489933325061844109845151684849929779967666735871529247288766810474078617560210202407417931331502892075671620873408193663178867056668690575038729531148116317640453191204340482260797525018837661888079970501080236860758251456577439612658087205687473551722225176188822851677937086145695807139525618919938789044174062087476667466315562564599490687499526953478800043865205814070295606382563280258315962926532047099451043261709109435355159952540326220322202179055105213604457830440100516023175715290956469464338919258986971593901516058804698011212521550335692826014488471129899104294776808939330484566436756547916091282081845760987166471599526885605032044797285962171022125929849128857537966113189873912752350845024270521549596979163228964708499844941797810236374214538165821754510967091575100333750286793194621647914174636425691302504597685668332030919793787795077556107070504191862294439727315042170568542010929878143864965797591661166471323206985419211583965852903922977704314181331062473890071236441788746228467300064527527269954703748430305084240839185797183308789160622660670376488655690249750782219682277434916067584001304548813120493189284174803693222321892985041729491394871596781296608905212185749976382799595188582439053375854680574666401559918572704070251301632186805711266707637643313654387501111962467324190778702014970757889896083713567187360558052698624259419886751755958815855788239971849879360610792910230735930595869899819924057281362516142244619256227129312865053993354765064164733314465158558214908519774412027692219085999332197599772708719855414195522056799049203118196645151943175704384490236356542555737372499811121738021350607591528823067621621763621503212969871844734517559287984221517137936165482559740494624322786750335500409293209679801067656155447326464867671972946963023238522593065380882926073254987985735616476614146656132645380042639007490700590778830113424764292619320822155269784879307952761225852311506572077188777740030134527968018713181149872859018104687221697025705288388502104040163303115957052566336944849639829320202496939527395745146309756777839369574853277518570070705018455644556491562254502911916803621559990528578309940969995726586013857122163650677898281431288709249819138746942855301998614691833519027872816897879984916303245446581402666728820734471123932490258994700989646606610375510636243713943363598378886208327896984591729242214598308228586855326094744230490385311855357500200637541376071158065422456141669367355752042340566664251708370980130547828354767646796386978678770202075704272205285335755374708440632101915156624660660324755437453906218316745405396389274128623557590238008675707829451960297752723130059917546583850721132877422642155911549833054826342588259501240777968950525012887134588223436806328350921967032893662657992920977796844826843322307193678163391347020831515816342052636016045989712613406976276903050117304120461357453520912199461177084263103113937797170989399838080312941006518934525591277983096120559309149988606701489414900715934586330238869617382394381438422539198936132983726965982733484496692497112077690951146606396017719491053690600647656587459717679138220307242464043149498763999012446382333712198615464917433336470892053642825462764437825166102180996174866385081196401049856533704535447841315591978806122948345437732683257777100119295373988892352693764208197605896860555027641626915049716666303079459770405795912861008003324340036420125290761123252594051839525839587414832403737318566210275975491500140868385372881681079027463000557123270014425691692657656843728231115736337347883416132953474913092975386117753327248308565696504542476289649537770969403762566828762554040178509710819767034348074253945540675324097674146467794578393620315958450060846083802974820147556936699170046731560363690612005241027845917592513653063320766336039630704384743176604188013140712143875985355103184661486507065870078968488283350752285453932785446284092046139122166436062110054760045681065731195541790614046440746021993336476681200123147812583874701047498690418235636345837139336457467647213894804597181020410006461112959887315864806489979580437632683235273585550482963167220506383293560474086444748458774858799972723703901877303809876907444569382243056397626735264742824338507810381526858926526838460037609270161913304120114186127455265748223047342099286970486491521114879075235785241531522008360313905258066053766987911094849773412171321098929621324811310434232169358704388260856317562546309592809694133818008454148987487799288004099552249904202112207542163525675537752279649535702287647680978936712225724775043134818940727314357482990734728538107920689838499214079560285986114937219228694006010186213843447678071411508934581738549489660837786329699511428739412138611877474141412295239993978093159840448903300430476131818037600519531031474807627501348339978141473129175688722055149485497015634805331050155907978925230149370337650291397346137281600175004398719185367328655590088594518281030384340412447865974783040807063083664042829271940210292340042491231342561045741523559329233009371244669755432393430868073895704223362704988532819658076388437384931068362926878283056933425223595573306512478273397889029441962419001154223138007512581508195256036718333457729163763284705487246947556360144025398042613617602320391704614970250984654849989575176724689321460337425832944885295167001416468147013367493461208738566904273522189903590887817748809724432098722967551964410829345301471592847475412066747668326763292166111473370517058482821079787218224598542016861769130755845080640986043974247346453552819577640184690411023722673521364143560660385788902790826290652811757229197170728049060113426714410936245247323261280098247304848499680630472220779305358803924515164114130767258710905082286375511712510106188342699411088922668930378622221629439302809038426985960358582711205988010770930983738409794222065672107981328248031744120219060141947353568015766470226307218160503685458228854008364806682166462564196413387579699918651226349915228768130201711917222006367784115060543401316211084013126832417925940896314097653551773617184817368827331652759772351242916326863007909719044108846773815479158766545589899144243552318652966396677270808022546951566836557459125829144165112553773922309050438311499674680015594856940313273910137971453529040901813240594534374524248111668417042899924628509217721019397467366994753245242932383115671222305546113133646518280132623215208726250598904341260577225761675371516983476781264544005830325448936533585381740266811454783887048862485553688393014744787657006778559312225085295706484392405183540425923420279124791017216499468996782743248037126794364921174327934553214521254115807473017801009090402285185437796034808780678760507255639008557131862689598962964875191252312283170642108847932753807290163129007883568467434165684137506814325900209203968077711856468738599086276848487803952638862923977861018292979322359778994703033266956937173911088026319018475176545601877636112900351205137248745892617427378496066171091555941988724491273067232845335085086191173480840353243680051804162748311689302065566484007378524772373575782469929682941003127877957064516740397792457976548525695912907726209687184679191497922019141730175145333358547208413700306337933769826967695697783774852810224939582591265501173215541623647534738768085427386124001324975493280448083364594800070039232000350513071843853244767405073437209875500679326159614317945476882238753470307708478707245945074001170195981792897616667221086858538979580152105517394745019190164180214415662354987569854015009532991302429348786440809005098879175128138448912817446970381321182908998056381591745720766281480868087802025026618667291609580720824085629455174982078037706971239014386634785862822458381474026518536846299364543081900521874826284828340487091103844170467192536247459197202190765753620427129252758061477353419954965187375181920400950120725998802032164324655389163688306241824126669458528479083660651561144615723586782000289967967556235056997584302881847235670970579766751046469160387986920204418985870252158672061548215248029736682536172176058734355137698946193907630365536144627775659944734875010702142738079063608456342959594750906249112308456981705966897345588378476330904523506658502555239910471605624058598880196736414976880453607259900607283455201337327009820719027645558001881925465140771310629359264510377335819957588114428872257510797944974482922132636953083477660361223655399635554377662025091732853715917323324926735424803607683697902045610475218883784547147051728027996320343991818913627039190919265945874647361897347041363573277052174971613348212235787934360482808652627274613502745995058067836340312984365852407052048078096603718703442119725774343233884114671905381247544539867637734331010211361151671098819040704794000793061945458084930146771660524178263906766110782079472141190027605453083564124334375077934561063351012360509378670667827715535802589625117097823965132489086921647233020885582496350253058816531621589808368218735857403697945914878467284705515670239799797361214370406678133887169255407610903087009659235972217876365057881694260024645089594825160310451969289873959417367151980744614117453316982153288469332418613121531669175075691405345272710277635926954263143623768683809732190199887039153201140284271175821891032383797710102905644124402370961396499920534134227727746847707640162902899260740666475769761881397116552348708003540028515035362927074652040999680865179917924837430390799197417630240982320178840254028011686961611503550803866381781508414068851336623178164843322554471131971499800103074995003470846570168465009252574332088054709345684209381554390351883467553792391639969862627961008699035104080968799387215428828761777340473170186826632372369621532272102867181112226338739863472077816189228871043166385600053740871934954423329607420232257758227956430025236791777834404399132216288963727170935862609931997086719434265231698259624062896966832855605271196388499356731819084985212050142592219218806977694957692840670672709329416967408530135054492748626795573046009282214465747234404907978829028548386342478801822661666642855471461985502343866921045453482291291283636816373578227646533677300761806823050403717084929389967950105803637567468639612337365855784870876837021809890400282348443271058375797825773224144429778547725840737050567521172921641135870958534248427998394910270571739010823094204270428701309012899390481935689420688835120848168220156107651363344466079552747431018401937023545005089957437295182027889398869256755529250857607417662190253886750563258410175646231654774929515955114277800669489625432746414824629566312732594554929469566351734283555894104476835670307422783972868220866417088853999755403394378580365516793655592341525288345098472728972388391971587906982273085093418424738435179520031707116001627968323240056040304641704814564349962998950035337955293714680621874280334510961653765809217872248904529527853670098030747887811946827336134368850485720827060173156388320530641420836362159067553801625832718862001587130015512251186037070414420631090672638922442282589763749819676612443440943079612431164425610122537104950469536996347421907505220038924615730129898402730915580938209928473398762488798732338858573807075835516615997430676320984467734766959800128279428185820980978100431653726978095224332176273493714683719242012848380093304730289189013260033879479013761460755873327221554303025816305723574138330336238972407870359402607020269069703832604456741820386614102802141515554612537695414819164764042774817301408079417336273200852567612510177013095174140127646171269481419973346261995122701012727545220334938096997625589321697065652802057456301266913090600452579896672279128040444372108795006995256284713572443214446264303774083312889986898077751992549060349980236599603918435697029683904149778623004261333563858112969201927233333832074272519162602073702388213144278034143285518981068268518028455797214693431183928681824730025845978917216753612676335220861568935068776340350097397944858280898092706328964616084063047171612186793853677987330888417630895099842008169657126856956049410749422204359703104168672810217306059150332927886440743099082984834549903235042078516770866122434614654978088317331956120679653911358055251134833938242790664285627891611471398396133580457722907189014808458145669016010253910403767002291786973508316502679804149948512426478107496165515475796160437869134463801368806400730580369479675902894165732426374880779922877958677151380924365277503244326153116646833375395317682017021139327081539123167408593758733139750124312489388748269482781214810835334068597005295702260828806772781002591523149356254672040321235398016292833344385203756491421437843892070624696533314789860209749375449269963224739407451180810149927713701634160590898421290267845097164859419440052541519775283776784027061550965442358638554399968004971814612391095172083950689739732147840305283483000688044621341952629514412531944971416056091344704454705793058462635831998893892079748189755107480262755213820043224287618926850507519794379322913630889420590596010955182606663733640006412939274181203320320092987378059808578386150789779070178154615132828111248147481556190959406398227570034025054066993963922679233860854819797725295627212506139776469120382149981710649464216636999410520997038373213058701137034431634738437464603749526970951642696644661139960551409907417176540818476042547325239560439830803061217072865113977662467842003521577498484865868823862360976593632948073193906808232905505571290790304300947511202205600712866217422195090840999468512960158979943561375216185691046228016124433089989863355713362656416572975350126800667797363417469072834067750524221658310945427139042352408862614794922718355211534170538094926652697280416952229988425693223421583087188523563469876193795023337126625566122926385787610806879940633638215931336934437369457731958455374738354474497988331829296732670938133908121342590893810372841435506889696137390085050820280904958374037558608059352525708146430837630880845109642876701998490970840383901728885432062511967343995035953853619862694591691884543415527653210416735306337412133924910846871837945152955126214729576560315242629176714942375077465001349954190043931983543399120432585639769558035202997237674445710986607078710314120509592444041300854307542560042187676004604965680108644559579111189862684534894669315146821888206558469391942096194713368534273747717518006162026418694951938249981878274913967877395647535334044275400951275508452051968837176535626741311808955080637303817934028623871017591005654776542460682479783483872100403281257451412367624520687796495606422396520443256261238752631697891950844054574297767296567974916215059169676885049746371686534177939905830883650638711474689039841918183523419138966769767645314830888041134916659700446093424614997953052066826081834070660224517098251151880077329472946083438674612682518522683370348496481178052782823750391399451759952255923726506334259894414537884038571132112472740378058615641480527315252153066477989694244875725427725086218838892946181976503564128058851121312661948843765994791914831835948166251335412803851273740225906057199167741988791277521829189166709576387638163335642245997399369057931658025305404174692728820127680240001347197653063468008073980606760025724517801100563700863807019766166957441790003475754674614131103234157237363818478102479047906710808031445407184702307181875857286383738470130910305299519775542590176414678279028227784655446546992989903882102766768503740878854731957776831108041787801979412160149006294606250138355511164815223308909725366158545180867466074004986791186682512337843573720059936700497491835564603676938965453188555773767483903295730987170357683684814787970758193627337954821361982260268467308030800778306868044519096967580830191385480917482271846720789938548917817429738492793193699582345833136844315937983429530140215597373610622612839334898013183935662062342786892982774247492008363657901207723022681544955669154011272623327090769338073556767535943111733829732954303989391206503682332989013584213261586992934855442152201674000920348494562097646469869505688680548669637619399621596699856771780436284200844532533281008557649378432304495059993757509718623671207448023401674879774519043161141132521859513605134458043661860343242543906922061896205009079143265701826287115222975151660898528867619356845731851142535721563955744524137310980525528893136209683921655883197006219817957862872494876880651010865155475482650510089163072506826828542042896353944171722433644787458143238287243620038939512841963123845609071123026657250842596840681172657855611274723154327130183596387126785956918163245452584630986832714780730401731078118432365716200479921280068213131280349409022095359002944739067121779087095837175275356533266325725093543065663200389550983961672091714124641286618566747587066652548618804171460188602665618071782817956138950072584652175342714347005841182457866415487322439016181960651452208216568865471058119145930624760594023738588445390481131229215240410131047449751417112721668644255656979996714574992648346135436207069763348387106859057307173921560144615205422617159233445971100508721065137842939164683762490325128684824995221023676928848075619780480567564484464225973524010967261844496009673747580187943356899258733826660629991223985429016600638731625627295091638594061437063954407612103380838883898080187079831870868418695572224269470661716371839063777958471918874082795993063590353905225455724654894486523900346151168399089281480732813229965524944251812628494434524645287499794840440055856410945234194498625082858743971926448824080695800382143058899468949364279071833447698032426512817790767809558382804962758897599232877842775479366911980638685878197833429706321152239457947671817952950542375068463814618840445676375361032694486716350315100391466470849837258814970029323936039914201179267887429877867642882400409551249789003201431417654096962324106451654227886851709291071924225717555617951864081401154931026019439563916005690542096763594642068372532596764070309506209598081753082737283080932358747051310939608053487971017906158386271839302022136841060164610903300331828282321906499722719837625900230618403605001020562027096435950138108012848250988032526370085303281020714782724977828923436188500966054585199918874921998983066254241136506923324579228681893757844212627605439106519545397195914580885278645582805819118381717786536205595326267946115872295725878985587762108587846295918709774819228276767445641594207852780192025728444921436378782707428819903777714682969609724730333760677087289096963298385780304318938921415666447768999228357425451681945322940951059677223451244934417649974992659546214467292779385148810567506740040238947517708835748088217726436875866532145533308495838636526042773330639014023736794986037064814013361476281608834815948865792865448451171212338638266166422158560492985776025087923106233792911114485735050417055411263568816959060981521282593633251488359940710957561159166939506699156674236067575113428640566345836518670561350049090843757184213939961439122334552140093303867420014064015855473186375053469548108865113244910970490975181805354882600407802604386988626385688679298700646285751909248951287942480412568789893232555097067323568959051438781041350804778218859758896641482400782701119818163883846888749006406697786061831364475792468541986527519952054563791618649152809516267247761649958930090269843328359998694637283150833729659342737439451393700950520340181450873331786104114211760711127471026524265282406704991734127625329220386400095878022296790567991735651781802585549529579062002846175402002781398382002050075501328295003403138040891835071001735107114841938136569439717958137146404674785903485544278651336860790887936410690750427583727143753373009743222625088746873245937133280499266695714090399792477700215911733051552364341078321437961246235373827393226894312851857092790711732568556764557605043646053169827186726233500611365498675740112035051889364047500131519240465079778670139037987229238565423430398621120892221118010380230359311094761522199145697679088466049130892386465511446929396970821799090007545367013667054932064857161883050532017957469367854419122771095966054250261755333941586190765194230750460523471400457156613191753044972881071719391452925498428190516708836397273792072993933687990933135955970805205228705882085217672073049068731986521911743034681321261295713585530282163799972594134732429414984337450939337720926930376348490083537921668422468581749561036364477504229745159962517722826018806406994803456029901737754018876690912219675975390118939038673780437787466405154824639560067942580666318520761013850475437362617275417683048402966709916305700730659438822930041276928409487997718869968504245484521081855602718199314667482305025141062865998570440398819891450082623122558481335137285168415322715940523398633084985154689337770271843860922853753184990080676335662681146933417049313170846022478052718509928213556358668661499300700584971213821017132657727517817522128088415519506728179026864466389240116000863119383465164860172137108652177264210832332591332687476719807258002565535939403122647003165059804487203864099010263670402167918297844074067118380788126059769345341759357835379386310600305485050656225129633611203793566587057224398368909846814116955027371371200930142475726062949428623223931461850435672174298520981421410420582218533851745896505868613132228192608449102282844247344744562494227161882409588107524550906317509813802105688283772217636376990098941592506939818375551154290462412378874829511343760985777779705130095372934244536129817588344523155648460631020361014540693235850978198384272994640334621542038910969458281287797818958507699041311165678309025481920275455505425867283467950475311279830145118133989317656620295275364727307186718293341208888293080338156211044582681384508256411682142182637489733825370784598746177953792793546247820105746994207169683774483160337509547551772151545276257357196537240822146974128067504617107776777472949608218644857644066357637313035695212373954488388888931945545243177040956554310013836431978725627412057899081412051281174113886398142146719619464340726179352465818252902956694625602923772476925932149559308671801467464734313912196222728749283437862731878126861586857124076076132063425078166701196570577074232295636074964002939183543652642254784750698122468128594552439415078586608697525189332628864070671585744994075150069199662121296297298995572595205942120763674071313572896712847633396231909437318380481306271828243970360034050420435882785878185754659139020697547407307402077799826564145290839224164551877779327037460001364128134613213493911462112862519329588225183820457946289476784781099749889698997429308586150345431227661039400990221815384799885808826776456840627175897634361776109451545019218290523845814686182030186061788716440775082695185645812498353356287237723314371884346853577344974698670399007797787775766424207224903393386804562111644640983144186570440539990686228213288943213630589237377071981632526121884849524030221670264517100675042045060579414410281232488576491349514838831315642591034773560888963171368257197715254412132513273166487337565980462842570981962075736289169896284335278547169974949810202901009199886786696443758301498376683526896954817624083147291314585350682517773581742435718256819573995697705955633965034172888644170358272262502136967769915569330668729649619009533489890469671100911421720196883826187254510783257348286553722870987937498563824501828021566817131404428628779916736225145729614256306741192971542334236229460193085909957395665435844561962151079035142942755022646144889792846950432536670999041011373104980397879524015117687741136994623713553842939321830713669423956509480424141103471531003203172227748922592279369124456446108939138232954390505122322811892930194974756390291823424835665819323454979150004963597480125273440491063402486772022559723835631407174020443561725483121403722139634744182604907491658647889562232724972774879904762322603050280896722517399090870487772268339560131156383829385252758420264688086604655099862786357181839309970630050429952409896372504473246463703646279976456498877434411145118536428740248118251950308793320668385456589543350568418024378818785173751771117700705177521294380729090869462072168511572990726642678056131778586046705437459912547771807071434098656341303973825030540361785705898285236798610029156326427627154756114895283013176409480746306729647175912078696287009041216726119388154154973149400717882164503324896015476129239231391604551814960771572765181955657123984006361648630697767740061770993543156476592648731116264986844438105799466950119360589126560525434257605065025704563104797395169703690904864193412566880224934972079792408064563238872596631840475076160021453939496675019101498048842153009301559224793241801530642761987889278545935096354185496666111928101887004590876218226546848791536394916568478062633127369668136816819068249477842873212417479503520473796776785883921529563375253574515502563563376842782634641608861558981574098918671498762824081912641564544626113579772807282191117613809324277553694729932418572427184568195994038556475316367889320798524077391983299927248782183051337578395070521939990192604225278480718359193644841733363065491868409065010278333685871371183877546001548476494833845896812774919573285241263114499597255427314536947053826280090595325542716422530944444153059187107861252733068187314433924959823231914117736501561244930593994087434153240189643757557261670659804228398172525091412603410997088580152378004038133891247073254684307878604578461641536534443799620960826069101385236736234164610621218385838095010944981799877003583378334217171852648380660100851728160692856228026584470988168431370248047677373618374186346329874038842282624781146645042198668608257117540363842114734068420738430062072321353434248525727862279913222131840170042652227763170556680940288321247121991368485479209179773312243763763533211511892532690386271879811265225105992818530036915710427505473140551469280660917232999220161776216527585634243371606067026075177026363891207519599742581434697761200515328931878516928691201961207079981338518630587149628368247810923823304561965048930302043161812397440377624457261021522439928397648584985561991219278190259541584861183314913853957903483340089675889615773307732469265639560089029872404316646775417821788394863156964710336112529642750886033676759044076375753252272189260867194909503511109221933857217582877463729361404924117136793190036535108289641615955576617832102939186228884303339678797141289530101188147766727684280708832416223107353841709196721911120931957561907705659725536131406510694168544980476996855450278789747575053952413562389415852517926984140348738700285608971655746944932960114445669632519721044391082370768171791003628482573176060400964725376972566043109678083763636337991461864682140924395501088205911175104810502819961584743371368687287253240113176694310842834867859394790179652537185877765288686128979997628663375536898948986483345302650401310030674386299699852878088605614394721696826651335931246768334410551390851256158874294609659395821098985891655215089146304865186958010417864574950549281164122369394573544221071692517128231395714731449486557805220543218640532811389850345181116242514529336677864575116614155301876848221592011307404398126867534942243424984878653661667165114113345821194643497041162091619542940856339542613969865358464636712101558419434448994217711579661803271994254608194063637205045949006649037721371926559613879912324358987833030575922442456185474566411448581709145139232979593802040378685276841302748243434196075718336771517679761906322386505132426373723349706816312956730209365577830317798781056453253830179612619434234247576425737481168275542605657506516816631334423176989794039144330528770468363105687538649057858589810852420962682469208662204945055697431055959536779394618073644610700566078255964614012705184553231436947638720438697154507189203380794626879336895523908226778448362039124290910000860121623625504447119564829599709368676944872940044852631886596611442133434065521733355665572753246979228384011274529551575426329693048219463792728877618295395046451161743698881179507855756288732666736483454732900274284735116688047658087289424705562931279641115737045931265559418564374378656887982897319017885387220956525694451102960807982385829786730633016868598883896647770551428480463376685639259909251609430394113316225647918170963548692805023146100373402033350839186236112263321630247973969878397931093542996302999765266608099790678804373050524727379809981973703326403580085593431744180316699158010698586237356510305741517888261864894849439665633322963979222403484394782271083660090795505818123367704602858417975157412278292690440766548783354018607904352532784476252803173437676754920495671822118143034191921625322152738167445412870239167478805481746011360455691790743302491841114721760331903410481568864581792673167115215519429470519028693153737249960529532875670572923604562091286745830124962109329447000990602782032766321837285410349212079746073153299302796780710376399998028749063065823061725569288495437904346018274618869900907883195568006540028011831889231113400597863492748481486917510969298395444618194142666779569399429467729363771620274904631564788611882506346521845242411906216146003486697198638174041762215966507977271610839688478013523966286302478402294810252430090435027985308061720004017887905965005010445467178189833383674774065653165604630949831548172524327034206199560802898964828373160479830811542816639288532591052535442357419887611321427840251786783611627861142616112419308522127057072350034996770451026580779393913577112331573807120661270722471951369417112635927169472268631319753126549930352700193408283781242575697869787912788704084574290946821431075041732926388121977552359351614500740025062701484648737464040983914775307358590477824079329828811974351782809565928297509238028542840814369395670903408256209758081933917762177050575727033033636132736693806312968483129499648563441342066170016211480238145213264941371176006441643728327792575001973381091804967841737987240809307374896767693451443054035986585363197138681207761736383198003944662266875900629708362022036012285673743432996803824065361302288372791853488312711902297134481103747509119279315019467592054452419057976525470796689105462178905327586494649218122306650893372258831919120883074632639640700999001570594675060544182319784362807819514250454655201465373681796914843025538413882468825366524179102637996813560431162595576074920048584588442006557316514222921039886667681299596515927785486331344047739175579274502381588295474033336434499091687658993215800826434301993268274272922819961671119752945932425635442297189818413047010584800297949335386614509316242818799030657976677878707675210875730361481256743496523255504927816788111909601736065758502505238150434911578608507282246437625570126752421492647913047008136334923508755427010649764281596177943870073267429411138466529849062963215401781593609877156051968492352516892140115155490899050638453501980052988109398019436093930781802657610660534788241431334378932842093105249475225905224112119780735494988304411124877414488195022183888637031986137842205019112977311860011905484359571017073439260402131902841478996517618384182603925896031959913998570770626601568563965738237250102490615039207575790995077801342062409997978956609670663558152267942512096313048794436434419487632752302365498129516634111377581283409498658502491522257244989293838560561324297477814963763629995352239875964787798445416422660393850138691462600111823278493803210337871969253331934543056393509080245244409101082933736804834323956260424679021731331748661765976113413495136568687866231157460131103178601903414241124022110223185161035996940896217544070248726885182910445405843337322181770782893995022906002164924198134269132248338665384852730433365663424915259393739986997191148387554708738940182038111226066676284505280722137729388127825925796804251811856759889524597519949115579693043913393651952695663621396433447719279571598590017335856742924067025424978671309426557556274533481179340149413575667201545899854086397046496372898358661398938089595884973605206680751082106800739742060170307412046792782566632154448418100196016389051823974149276906281569956686944561075867903636213395259335175058458198678967329213659016024434820768266401318951780770619294213601614639243640962366689351157673494718506774178856321904307986115675867551074553352824637390858076070743463160610668079907579208298440069045357372438480545724050625002528615398102756875927849998800050075699199745803755991019852432123722479037135247394741591603922022885878646113846238244442729536374368608515363842748738280823405259915077610039357527200051929264162204183653169757990115728538215501289541456143489234894929121194175543733096553674448780002605323946092251789581835378015989050586288408359742969308511733782367269733159929707984984556519827958839414623622334387311345134817722243823357460862972803647948019898207654676765647801976996199780856290231502897700397141286249895998164216133887397632962750889655288867187260821385613129710140513545853730576465374994811207376397277759360534025525257922260244050767479839883245641005619350061878872692202837694063971926275324986564881929136745655813204629005873190860698343787634793054641598139508839989799026977906165686941549390863368130030328476038334495075951164357757384656948816837577532742855811663394749563001159881271563648517863183611820790463197211751581772160003021054348909157183565818897014025293411627239401824607184931597801002258849987417281285318441311836636790474708456043183178759540415539314798433717877037079326236807509211259076753851480603863907546346235295742291571469115776225326642415344535866193994266536501694598088888385193710542678745526858122508857039445981346144229554266957890377272625867627776335302770297079734026427646157010398245073134781439363367525541758372533391889012314205677786597192459252869494247189264291957673362818504892782095919959776276740689584416810046580981098105463674905918388086856491124473269938887905794849920500131861822852520021643113100709278371932727844827973250282528463232265144951697432334252343158206427841355758308726571753465168586156888114860753868816769620679809697535007124138103674232764454553270315906795273651392040007458818122016156211854835496510213815996373959093554923718782591166999771086878559266241789835968566815611185510424948702031726799843910857632663505554786543706783364255900739099849393504315008173729629000165955619943057029892166630727397950634641982679045308547980426562271814506786212903782727056293819839584929821340082778912186237317772227784498422573603057007539246951247286555148415150825454805804053450425725372891613929193012741594757143790968534273263023159815774752822757259122069014105806566081026438576308377951266601440912040099064817161429255469672718275531171573969345073404183938702311445828659233573330348322994931798229824727416446807211677172955316041006680637383960663768835056838098055102372942115682999613740248627692433150314768855157630080081479606266454629981295409936404260918400358159548031816724883050260168656983791755065150701616610537658094746095608499257668226729786188087013398112554701922585732056355504881843575832675562375198383644709437094148691682391309696384781018822474461741257125042090880323606815844545981579218186219641286746726035904816741873963016153739230937391016666410047941325588686669656228322453775924320914367654953142261622601665566835433282075421846336585478721965225310237807522875239416358977179681721700540163934934083989664967362231936686355398219134807058035363577111871666228619486701368798518807455913920489255976031049819382533414370413129396452935905070174292618311828764143545752859772728663801229839571829913886052935311624389465902915572192141259552821912228851957140675495512156826527700019760851720043268565033150364430846474619190083812342126652697166110484616087059175308117252937254887097974328647876844393687719434144485974211187466818923433773751902674381697977776725896296069229616716308811202172254903399527227220350447170503867142198737093069013743037444933813663816959819646213079626177821213539760208336261793843325822963133306345490003981185266825493053976746522722549328047586173124431342673435594097334428512772352008287653237302049201513846956753316733955740047729308211789679322472259675299280449112474054488332414900459473872017986471215638780839354316713835604300600258040910576628393491773504568633523682086010320176583605633232538574766001274751802784094087391604209834003157329146186948852588282188075798472800159682760784396144647225018204684027935036424683030498516422217351899327664633154912442461304688814865166350771773696559814850616343711181588461432278570292384571041454259351359508941178359803247176789331525343634663251406002304027657525446462687929451090040123588070850277905175134474486384013275244692536351296392533826852871711528251138648937406636756998240829450802433682266235437685733322962900019530643284559623242279429047652201757243007732309174811377228487226192687994202669564413699575169190871719971839354589385186397296755719357519572992696974825510686383559710823755630585956576968825145953342772194821162989651252919161864734200189147473671429118970890241400280189394391297177701288556870247072643486865496252402663570486779454667349375777381668237370021022669016241079389150404653546038620683258449399001021640127486487250676265165075997461731111270005948411914849084071036653951478741297937343110340394978766565694263288990534270434980193936065912777231462939943867070105543958734509995266979196676616744518061455390093120305584837771016773161706354199250762280453333737895017518170797760822163979368136918927138922492924318619063242377943737833085622029653042582727038909191215953167132561934737486053557727849355015395805571405811177233621507524749387058582427000676323539302631331749776621991982732642882305275757738547956087266669308221940929988441295773257004641238797477882036491301684709772810752186201386024593650572192047721978212723203293753645535603681634378130787009910056523578586140587395350026518346431806720392732883127095421693032293626884479297075675357206742237981277974937307465096095852384601515192532541334868520279858156449046854342637255532890800714789871138272419686105560237484759600369404729176755314109513738630926842813276661056096334282852218797984046511694851932040261524907356521018743786745360541857008112340697503012056450637562821480986341421800739768246412549831362927162254448210082019387648436670345791862043181403518169545679706948901945816938417499440826053442664060072608548190516272667107341385555467095981810753460898058927920973571157832215942917608553104359386744477150445167745557780274482595146633734021760728189944515039948688476036439655808028752697359577062825560453471472628396719688853584947656404254985255281155818017001330835782787122255828003766338050401811280152040114699669557556241379455674974137659427953509238315257465687234489811555663674876846397204117901218364297020063648201814362895080178045576936620147055927003639797027899373266990289549810555460345811706932795931421440196887224208102846658191386955390231610231192626143082643312254452277474644514286831502673694735169965132253542498305845653580491241225024612854812226889122571378809275165129511869345979779296406744422746249352259194494051606598090334023288678906883727713806328736676897725425876738022504688233946680658258329572565485114364091756801317133458060659002604655446998436952314326389815267856677075842069227555807617689878161976280662148687531006607475307361418734594165355265515093578468484608142313050791115845672521257264157035023701206963401504544349322106496336072961705042292764012696169900498263182459685244998497400041046996761355063640012794312059297553254905622801758997813293006914068205926050861653353390504266507992610209174090229323834469013830179838600766967635465781319703315658644273114459917430229562690533971585745343901894933581200801443383301171998751309626402459728730194293861868757099868608349277967584057567152478835566989901485818493364420633928041007948901892073634313963036095254882921718247992177958250897556609735665975929719719391294962112349056036489570507972136337803427633442144996766225756963364975994111248975200910373271222451073215045430666658516186865458154350162017650663432708854401375133564602491847955272232669353681826496881005960724847568993527084890040343115219714233954537130449476389408276271756524448660264397329459840946707296307528044988414137740698526822476091153482288393580760295069043852544701034495163483494429742687165451633377921210445958799266733574671432792298826742347742288672432990135233286164810647209567891585437848451700780410768316286941279284073741360410185995022911846194087048969400580816785768674383813841440646190331599857905658589759998111235768520762402423086336347518275606745883321541097321627779058295126386372656458708420680763135783678359550774417728620499240244133724602721950787736787630029490900118194389824142707768990135888645491796692253006039636318606187749698021110872262489482058627732442602029770690302994184156001849679208045452694260453994210232759941859719150078954875000523016910011313243490012309158679720711576295982493837228790875197291093503877211688386821425749930405075379114329545469105069883465881251178311553754301087068741426776583757428626961972191881122727211014927580466549595309063506292451778488107196416283269832935262788994932141425769589474931086482263602608842890510061204858802769027908691829904705370412488862782670208385342995173403627754417299306944184806665125888597159547883587121783662052789829147660069625885507102910961784988406872403008614644613747815920616493480220438482057769260163917224137915900370890618708990108081342619462137562933386504599935409436446751020232976338714228930419206919828604381269847217878655168381972062090111835733704985852339606794399410492762234361406237574961310765517927521578638665093620749533055353270999750725250268193186032983137150086538810102197440884142449700267928320580726179277444310837949459545246811966925611658950482010954432293878023731118440270103364937529642644916352956733155729227212713979399577359397741944483737245768249291444908414425184812715446158288766886368139915751542520817421215767235929612174911674090768926594427308673382894138563218550755233344795697336996156477496331414615389845622149611302551281619043441390477508489868797975252037414861626046494081123397309603517892045753006848750986656542368812981461599259899448715479735358600344046307895389330434433506538848024466143950243430432796406653687289646489637844470187010300276415346540301570828851218720616846252353845644173743617348319092057785307801780778648171416031042364158868425862238498293270159318579724786651061429265434600690241499479708619084337047919977058571042052593178953144786021056692446913027084856423252272135249990823703166506481266580792490626162278120730802896116503858645011678647999821977527919035324319403355713234846580868092606072133827982111233222477683517514395916340588586700166276535761542213889923628902107057331121999463575115037266525484667625830671769926629440051770274834184990074453822926749155413243075639749107933452819740679615848129964074066601909065272670686943110085979930410171651944387892090170068990102767716685435560378759497034670695739812959552641403416573724410899732341078141320049166968449829892766364479379038324956699971167260976093698510605978023574105417818264225564098634180222372644123646691071956979510335677457612394861080296575413920072627421329845723507319187949534274291128314362954293471913944442309825725126785544428706668998622581064321674019026544105683909555050746811329586342230600112942790672899576917280864275291223605060530805956313959519752611418718407581224515744332828941250318159559681552458089113570262315024983870598534212603701728731502227672113009251291817258312917733782454684910971993945501207024782756732637182627263963235696561905671691157489020310824434291113239390514876820905504035072136632729781359582899626543187289006304574541534718629886304299127900408421120569754636659426524062417097539964799331672882414885218665166320690286758865366118037217460484825304079711619817891980357342807990971902277088188320758568958347471257465481832537737083764732343385212291322108185693591876300202658321828541352444651318556649167440310111205938395709327643181382778909311897754532988704236854526649341770437731325774183275343863209895697609383109984214662553050148569481023396721604968329410485975487638882451043687518362416215070844477650603426066933738516575223439970664351532739354555459383711475104334583690119891564563714768189247106650865122554692399742294075391605693791059134117108174766997941644896522564120038125159894423661577627544170721222226077313813388226575513678955211051859762099520077220846051813043023753932833757221285639176418394193794373848529354290805939530657376564536930844837174751282376913029787656461073702877491923784161432231310984758237259771432950127896944614797757786490729428934121495982338471720519875430017807650514153575492500420783042636964124920024421645839287766549716099317596245574601523843970661143121084370427390899441599571005420699248628975039953123773300968575225678409759888680024470232413746381568659547294428190622066087092679348122465509547207627398081283066442971966415293987037075204002119741616169224172463048973417928882048208148461928553810348266819178623110440521109533354899868634348720771497245291540799336827947886261465908474598988029848739046183589751074110189667080155582421227911535862215292768474204886682124269928011932404994538936045233304327773626192044156564243964399702781971065462928997139426930869964084843605098095365696235962036303561099320016113628569853990912947844290092096350533647630681636507243465186147038125189473061003076003312992806509455421733747268442414750149497701369518393241511479805501134887708042802245530077526945116502005547797413971040015497442712762200699700889179098013564585149842327516248825182695701274736980742541588172988111907725412326642404842599647058322209215296021465504977885246215879343735935397078463508656752808673182895366913419296974294817377484691346803498599268285721894626420014880058117615091570377786104114576539618585107186603647345734840833003803291138548897485695283132256101701714313059473058563496384016904742957034083886263101511284773772608330389802850544544387872973462555805730542590839640774625446735641426236341160382332418500097145323575153374272262458876820110305491855782719045735080163773560972970934743269193567572529771866849103965813869399860091724278616935551996407906979042948200915144696377141015091357051319975613577347877911323038366060745410553899392581284877383336027136216029278720633109327908375380800223158783757989205203678022992774549219578663173575720245105047872970015234456299289969835314341787290259344356240356902598441468030281225716320171842572269276262623090335972036047828425910424869205863862992122973339901316829626889169933772541764521541000775069285111001085321522059581967613124718622149116910737739953190945831344158188056834604998000579322950169686739295160365672347790949136808147009468768647336150874675339874557123775737688709228127466825270087861150309657925854671545011594562815972034136609166693148817056013025910702561848612986562066837363700719109677763481980497799707981139890975608378284876002934689377086216403033581049758167316016192561198161726809910533231342300522087804952069906547898580202892927408819706950384834694338637451118409121699493247235658614664923345609430997483585224751763768474681471837799856775552060328591381563582013064960451305081259072775733928347047071983921855436306463876489050935812646978555656969271841426279436631209081666297058308384429612811169580245722695869583537175191156860721139930871387288002923345511220261225160894073287202741340320786258500410276117847120413156072174626375100501090025294147129105144566496673071900058066661100476172726635679967157908040351750130662346229298773485724656276393685879470229197909999966897138251511886351484683442710508175132085481663133352340404030482873185774652532787643603061320391117609987034633756827285597027682370760640557462467641352021941779367215809396572016885498348274357882929185820169074491369672601224736361573430372877476998569578377149172296220632688053526020467687862564381531328248819526731629469703402745357874207418272940168194547795361961293918337059917302656605165092922335350080689480151365969287537171355520103384809929445447669788504681086621130999197549966463576847621505127793978718294138263867389696723641828390625202883422766314959647737954223444433891962339062624372498697913359210898383698518314602090883218630610111591552083481856199943072275305121005256380555864659418721792302402727810285742374098621152536009839082632060291693379182562886123260948076634592063555503068077850059410455341411396646852392510467379657461291274416084729147920521895012299319926154021696766482338683605094235588861219961754867126196822374542683525347651199327950473723125360620543240090110727245065835291031373999545224680530737955543006149087401580138519710765056000889872701827635232466673119196207240077321728160290858219574363209000048917486773640873980020513695858086550243435217926598143104697240873894467201492717662784117668136711649353160511657555387687130414106343925383816891952807524830591625121257380362820386145099599025729646281360118664835835930186605112698881850341322419447393595800924682259374657260744457863088175828698566203396808440719480303092541009528764019854670899898400544813682266705576392397754934699238829208555791348286977429506408013594295847688579878989741340498480144257032386326848183338811889682058668125267458200542371910006040456639865935407738531621842765349640526011516176605162226166422521000531313742223609490482584873624743740344496562380582595566626935270836537871965242798796888754701190707218714520137919236137026143238605435562914282824811116376959455755053715758830884126963444598226230788061491988834515237872158574238855741425728994791063703561319586514082296769690706917254777801142758460663947216587428197708140625077576044858201534478054068023829904814680690018244092799497169604794548492083903656369538432221800862793698797007259730473969064126120857253060432240731774736709872155630232410474929000767867059899283363062355109991788682638340187862528045198983779323523988663009681864111559932881603608516784684525252315366783824953626606087852547222771606629388564584201908497891884064505360923588956825372732426879018008677799161274038103588479374891194227115298524788818804406567561611248195629334361353240259467149698053221844456582883169370140155398040291623575200666755350690963935634755285508425543218480180727291110739305359842525712573827932288618088534232622253042006956547294321292719942800047920530193486065071543549092615386756211075575240852875986084295428143018095458000572517686701633628813998200265788133075796875951574851397833620943103555830914751447740508825119062554887668670807292753372915694011833877960469130451904977527261328377434938043275866946316694627509071764783670426356632621706821416482321182174962538201528958672062545243453271467713481230403159227300154384757097958113040679413580396650504021987408515467535023385521252550075130599582227952315501914359682352330972634143933468959302155164305811982109475019614564431845005456446976262019389021499311515016936176078326077053009727365514903783720059890627501670403853187865770537013608414423079529734653102456877120303008063210296707786649037140359969563599050261559445537455278553301062624978022383085748011456480477390796991605069615115374551554679784837094666816696580605458619259946265418153239410492182633890054217360410455635378568806755070598651437912515371176841625683712464365610120216413703094634998875217902774613836150244892452288839955115795968194946932938046368615071768183866413424292503491482706394810694573104498067062869019223547352114469343736189609272864613528452610283706314264710090643117110808286625607553765581856226423114717127475697486744790335113655153185554515170374999689778342752270196935583453772619701482257559454431586518710403939106946750469382176748879617415209923010605211580895173520801495769834455198621692590656422451711904332358305015288137810565385844543829487895311702144837272978608312084147395766644391709337625533015150785587050586560347510050921853241031468743968151958512340742783201609988122098595534508350579473796720652902756054676539562531434389169356992890461796120172088122359451625097695478322419704786818220138974995731605874530419341864786571189279149576007880728357572116422845259692611445986989362629075093206842072931427413292809750048574048585876369797917315275000357165829614616150699904312406327713237761082859917855325757555993583375077125991015355071183524300301572861271517693743251393652591593831899904217989884509711574693115740745313575886336755048848898413012228996293355981893072223731383899421903892344251928771184229791082655151745944399234829076162031159193522571442111609649159176453226362803720979366780517976393602646667126063962518393049997487800996931989502598923238647049145157344508191141275922334748558544254262570022385933510373515830831457515305110477108964779051578687755222099109646819039691091525286676014104043975563016481602172985208048627071277191990641951031493465701453910866695710868139442950392631195950124146727591075328759102265486973804734121905273479797748374053923946147010213469052149464125011092646384803563158926230703552931581821662746018583427875356430007694895028555825258040761334555869052319639668431533299688201658751350611653022003901484052523781652677852837219513366972325101164005997971834952397794169936606067175273423349946449713738835876833497252278463146395744250317934693651435101413606620380491093760535068482586916217912479143608206320222377269879264840524295793559743450366607329456438588479120091910132589279877509863656679642959759651186032178097797631010255239875759839789106653041795174385301700696849202680771388379893956106417025467293989336125825726921680731765124237748200053019780046783168919878934332350907253619350015127725989306766029244419741383224263347207868928108206169319278752987918223322988337177865190425112756079017683580735327351075448104330003775853872550554734209481237114023698578636891423626081144338596318950188875971155686998013913699438234462551284168457323807032450034785957792725202489662621036464514106832726637982126517681232213957998967586526259872019566011790495658479136080209318760228359321853965876997470738015325378620304092212915408683392241688340859352321791379289563463427174872323039448434444217605106679822723766431476855025363555288215641762131723132577096072995863388812398391807982813417621180948973968701696782909151362506973226071897247265286416518898211253716083584751419783962062821334129005609100996990851534915980255283844842558712026456078507655530969286288286793424204906261945679095692305433891249367767884658427178662752155212083397139075562770779183049121520402226621470267092672351714978232393714595578586271686585410905347886038728382167572916159125449564400996824918225957271869950738610851581195983943676024302501663478090642244594571427451708591067018787942885853221016494843685360248786578936342402922248499864308750298615600670310008383137294311402210919362759707172626920881845018927954806421003994169204240904685596041000546964112079363512676984080341036241839054875569940943190840988892911688462762865572896597347641441553029759753584561829292777367833795906053988915490743233558689046943610233804768336433785380500764303192713667115629093888588529788063221545119448324601970668433370366982669860549345241552164992950649574593507219424829982066406103833790606872085604719229528350968520105105796402087717682874217437400741020322767347125758530662470397149355207492850673007563830159512614548602274743825019354634907321731310269005679903229789881721278326064921891153724798719055409322376478734500082412177099128663294534468673252756467510231606072929500612060737634326599077799795848833277148500170110762798488875895568892804236744798114853272222718070978493879299359190132886187660933791303891516924799717195485185930991551850460635904910473821852649748190474924498779564713872569275211457441919034417693708056349710178892548826936140366024801323259152718600412874971044794277298737709292387768927728111806093095188487628198189544185862767213580883308058854154911979099903292115003132327330923375919538277575221764719106816594903141857490253828172462530862423886195704737981071123586245376519295923998061726093949971218168130169918187208393686882020670524520743652618980703811274029955988865328487741005767816209602399097453160932073700099720073480851451645882879921208575723949314989958159101767006610685144064473508595286060029559360725214774538041151324406573736100473444406062049708665097429733201694255714984988002923482052570356504225975178880027820098481415070797486127271194518053796682893458457397751260025483157563057068674122719469028475478397179123106035204646727842298211991428100034953573846674222755498882376503429267094389569719995790754522326425194937568902972997636077013810743640043000228423675826948528222066834482843266985633040012008193551466463440452675182674018708658612466103283648999056102753143257674731829823024132104982680741919160904919508261876293756501834549697167154009816129732563085439382469137227549325555115145709953694485657054300387203348464040974734801120570872739589456872663232907882865587228481133024235416948354334626516633003894062182030234840386122158790305607062452056105157652671707883542184813547700551642249772494260814279425387474323897625454143301973567771995634307434175857424799086106585764635541524287806019013552945107656111650960123999918617531080127742623121034521376006938411015699111273511280005344168484118393639227849753265247592466639318038012813667504816052517332697472760013913308204491448254725672993992536546584306834662324008451136768252883467913773869490567951051570418745322961016140571535967062548030538049486314485511112391079223755997703653238500771238684524127687545402563739625756685104787536040530352304058523401723101324208448500106740453050161945317147821568582775489508870960957177946622288941667745857990900413732286026469053100075190971630855655144595149386985398351668427323947875522136680783067978924175534287511424826676252172750057835638825109137014980910962180854730977939056085390306724473195979674575986864309688366048584245909679982310844225746489776004695322460456822699169243431598077994623141022562938254394268711041539347694018128576576427512910474865565216826001475842682345623655977953009147970850953593466193267723842975160120575389074302881014632934799923209120766698064005824150989368284629756493767881133757710585349637964771586098284518938139897869923239904778990049149871937615898573530698261615232498074853743827099939718962600389999451064029666731603528983107816962672793325699223615649772918562567312659281822501045544971052904675043469310040560756165968514421036728168773696421217430949574209168821641602066809408179588033728381507158969886353558260384516447672111106349244883872839961005958257257532097284864671520522152200085898094569855679958854270728414466242850225381277298689541249177860807123654277224221200861254135780261895038819735956206582987601467018956635917743535696714371484538188416024631314579926954490844439350110974997441296909629269606261372645834759302768330735677720334292482343206120250648990762021140337222961315214127932927499377837198258472894365814025038563328809485725524158639881851144874365646569157777348910217408916834104587655723671515411432000936055387033847582090795812216572345133709107898379385827920192710845095826904205059397686559915374671349168349538546573941974273607195067002530694666113347498042560494812035044865800930134304388198003003119435127527870773174517875629797136307310404528312426962410453281251957532163683791350488097012749350301827488393677692066504903576393957724589891716896829043248637047493419709606828031733660921173451891792316008108693275975206174280738863287046359524887741050924680035556731273397488578717059076221396794264097766643298090442362986476979244650522820543725655589507838431692734237631021115864434329149574794781651064649258794217528280588905642336736838166593504486350440858889683217016570875743979989935929556190241546092340300190559913890890529628415390311436851189257384425350218201286353250458048567151436375790881920915733529127174125280937112355384551119093779734527880992290562009109567642047184984842572401107474088837817156574606744802773943294707446746342607201755082010864017117447582503234584235843955934208150226081801934940698561768701317773599210922100456377730703517282480970564747339990378809652664064029258672983977630062470268565368233538167026379094190076539744102234591085256561350162158021837591142880613140645467601150070377612027050425602672265885163819397464502326148630151337981505951358765717127875024445492603145306295293531519618765992196597207709164864003266015339557269582820484834795983513437274780900585161657993826129656244562126087487898790226260769549324959662978093479565846404968801797847450859072710086927097595724390118296305133892016287898224825591605137760475932483429448756668532340297343298468280495161398398633355916471037678123007912953468103916493310979354624843828735069894392679306602499239016993201908082401522728449047661113033150946385278571103993758408874839165606395188415029421925982884915853511391497186822936570690593318308064083253150160237881758982501789216560546402964633810144768173574031449180912356527666540256289522209288024130401826731385987724763873148077401896680590999915892669610801055275141202700965835680444283038058924059786897335323110346011179116740954542916123760864644936409206714091468874201077600887422350396365432224772009285790055825645788170169162556649775671761866807411306174945458966820463596113233710279677988145040078104889930363943780400584347285668614031346866568642765096964301991528884661395528814306031597928057113673243125684283771499881129238754885745238104676893618795666478194563230327718484386049543897260550136388338693943505625425063895731955969007685843516238378144378472554083863446485430884966496068636070748070452145406736196329186823078114923763767022447094721577739826493418787652639268732229950014567938753396060137270888578146665521957713643234466703480356053097664319641044263740018253925438207862183484319364582286899300144178724174377857600799978783416075996877955669501743803888365708400542929848276366348093053090018242284160723204429545148039486134342766260372770600551419555104147736487493490940097553832270751628174814644705426659020314945010135857812388371512497677058958836580180660962530982984446161426180911059535197920904536886029715258379016560907245915768372081732220367000438862239694774132591206184888256706715883415950863101874505917984027340377807096583301824917363694188180032674476586207816888567087155208177092121407817682051803197453332280989390540599659188640598664693176321784995995264934518717705944571634608062612480575916808040422829003332691071992497712693241400919970435686290673886421741619948210363548146380173285632584808693065040605742675032457082497305222279478403094841324465747646804171871802662092145343624360429441053926210548973655374521023209621734795824307546557077030607603601192046157515226568402078699818913551399725815372735732660833847722995675328276147803514234819351402424299346710966658092163724474357297846793554837043470726051819981146824169684134902303001765146062851617549275409897509422079032564175367392002599895178038639354340610535483808175302174870691846696390957604405868417450289911829267653921827699593490955522867179158202687526338495078594094451917240158813554099979535941314786194779375785750512316671865423174257354991481497541483153214244638484492544842770021387787597027458366244141664156517230067665207172626674192276845755253439488812117001091496453077021753925108014374091050383906059201800374670042441686154354894880144318831809080756580812714289671794512477215218577976927755608235469744083758812347621485222564339458456278017866918343571374043178333706711555459613694603526913204663993007164220915235880008606202939743071549308633575316096266856223795985229182435887989695162499833655256170099273497029586247489058722796443130469199149056519041329585627235261290484596706278277938505274532309753441796388229295941398098748073985269209276487726784379540813200444796387959523633876332522025311344762583384175308841705182781942304142983582688014874421744142176185421385564926490123096112898844428515831672909697910562464742903432062214415718407623174435666682299994991475667311614224239778876281877393692296588042082706296213960547172358683742058922610142594406320383327971444071882782646502841420884300958264150989886977783986195930209841774868233729641833933147977276881668650169925019455111801525520502745576569499689322003915151979871015595251548697716697297655751075669654748703044613869253517547606229374235096936744685724558697162711102340604162335182729007440209731500544344217951886486036068400562552516102781781208647115926240839805440067946880573982158782600448034555646751077151966436217710859761062294294769840768643587302173752702892283287215907014362054840456144870253592973452078375268833555791054302446701234100859731928716774414822683776384390460168531770321168606813678094665277724861080304271305134756329910937061487254096389298625061222832145471529612046626128003794654307559383540518692221802287049701665942066976905584577231280617682995034658423607040859422210102340283916713951994168047584664874569655098792256832549745339890455834299341285859400629446354535528165779106508944780717700329099092638083704179675960838245342697280007181200968785458887476443095078177943575206497508793927649230965773276607731847250501876452590104439101513654260796041758371127043461419524689348420602592487150023091950216646826688876082607139080902870176069491278001404279315980532237158068632021631592077246494676222211025936325188193831804317551410384970076921214415789978231484675856366759589963682591873719879423199470560239428184423428622748636363319843527946717784924191497962438841604464964472841101662080917212710119475787961203907167380738354261952460057334222431340779450565151759032711581030499689824057358082904878884351804302544843478500470615615891955739603165185380945154692967702797385168870608486844682208279953444633605171563792894959573054450029361527145961502432773642627776320260059560884030635910517094903740511838088493666988243426179401477654857197137708486827698341556186347334951426153209733983727232396906790394991842836105178018111885158994998444108526877855357243606790817014500645648754375888698676631740012907716304412579448270492915141891632474456246898613523748520555871522051878125142639152881869225364331271951950940944975204697580570097877018056977153730650488946643772247872776729437403151611819145007202774429670039123196001650162785142823946576392366507301463402796525860706954256989784699179854363129050347475378342464871111650992809634493596053927163777313179212639705645656992725187391266086534625567068611657877596878824389339246117024507763520371062977697152160638907572706988155034153876422556897734008578860648072237763263449047120690873161287221653773966519026662327311141950824087085051721267703659655996130547594054754764115653290669967609475459411972600782265537728426898523661435069564148532323957279957571512996762437546226254136248053587609486153718147495019775875021000765846878178784252994013594998448263759252749583971728285523916716182138604407970592929367584612651802396443368139983271553259173612814000962196936756278863284193713904403076358859748959676311781631282062764849078046163642138241820601422585914159441005233952975970497775488673958211305254431213227535865082782880009180574783796852065832040437156697403807463568415451800577955979151713469609055765365945649186923657911311137452407590218094877119469859329969700553908641324998569945180797050194269251506627794537231724933389602883160784697174341981423801232736531843326735423022722190817206394582743400042250901143555457151749123316550703247411557512844542145757130845737089188883246967283770333049600311290884095730767991277673861948449535503098209118869883223714485905199300607592857438486956230454328655147793735784170141834043616581520147794437114900383187016226902424841247365641409860767426390644150538549515118236313138793593025760048661299913704816242641824063620244465269605217572995906930179677334367002167180119284871020984564111351926479675112723615518242443049094665011698600110356128352871349330971430195271081692851877479083923315251068712638217166269115037195687811883165525803600299744850635707606895477242332382635889652185658206045821215223356149106275067614455550389082170261303534005421789591629574709449785978765262446825289150142670203086387362217509628264111586738391660239157687647488475010785481398990249320686446089528882130382069634534269607361164462421435953635337378810618531375460767984518954527141997704025517846816576386799412730845188704518025128995533650469454371453773506409405714173174221242961137986896854341426623762734341064387745897850349962771791739350463459348541103841383608471188830236341649914155034928931403580869566854616166665390207148842241177536083537708933957640368547267551958295139542609409739339428880670015580889426972334874864693027712949644219302584054295054086505291830256053895342597285362995188701049059894582662494642543733161119806681610382334340007015472322806920519801167630814746457145606714675691769473572185502984512676828382977324992419886191714928810176394499859297483006804274164827384507056030868434062686107535185668747088657853868553713786640280958564686776529525475849999875196479529118654668092456013300614753583478329165304133260218412454718923116181034612052618558493942959337002115075247462056290814635454317317489841727735546955633401001091229811173958845925725897697298830503762308151214251023306878323017216385695937359781557549062377000395991047834222769606997059852257706712770075649304142966137639947980956479464513283729257695322775702966833234655099537946824000620440273375137761880157377729227041344573679967487397107915223464023214479162649427139616191675891592459838018391523166063137003625063816594434445703608076572297577793149440415376166482021011080609038079532737492015081307116876492002467240761009445167814065074611700690798453225332337796082863631870048064161257626514638758462881001150613161863399442382979243916544507244121116603538630059322310009740564102647350075313796832205607128399087865649794837887341611102537004269201641505488044353473307830645926434727820304118016385782410549058170839911652541710414583663217216267185899127838490620254857223667450327545125956056468110707232808432414721863332855960179647549013512304212356447224476799223310921031565261311859178279304991840560555092947375018003147113114987328225092797741372374009247516737889507103373964568398175519165628793755528457690221027108021275176096208810969848270403071764745543922349645741998155070344394597658601128218848360278411576746424369565392753162786510000112393623302942468199628928041503818263762941916988921848423700176382685566743364076168340440884933025446064634665218797686183171149471765097417778519494295012769903553645461487198006112365404596435281311664143253728383981280072860519057218978957871108462908094539362493883108058805075837935147698497363116006708469147806273703944713555756805040266337476577853467949590333109689535536665672544327474387298676347266191051356360169376344466783110375627005078993613779419162404100473765057516364054405667385164224821239503306887785575728504001477720975740634956688238858102325692132554897603299292801073436958783921601600527546980381173246992048053534815353468582053747920983136950798309270196403175224588976242615901033748277244061751777621500241430194644535014315889645270041858301047811440136326793294603542913100353457610016264038100381981240479029631228843637324491128231120245213225814123924294064755861259852121498865379603576853347546293912751783934246361889999193485724260928572672392323798133286873397335526446278336941743320517888713296598207402029233945983687748292955062622095857951230610453860884340986007857564194793662732168125511976480150414461498724811993029015712288106837203692658653924477951929215292025742602865176138434839738053937754376333146847092566030997331103366397649033000498215631244254618665813289133145734159689549264497669963547377667145973972626356140059050976439927683484584922968929412892890951826627181049919061824566131112206256500976930021642196318453549033064097278351987417066445612789910492952669387017753204412259483370999955577410694721533340668688288115443783298118928822518581646748102515123701794977271535097114516664493585412413765200884305273735398691015777902021688756239445529493926241354875123896812333148573944129545504617617170312643752840815953331218782732199649764170914291210700117980976611609605172662267235044353095358361481396829756745329685288438199995302911761815429715187081115781264988744776606811371750613681616233895839323183449551868376071921678137315131955257772239364570270586555496027070900675949591149865711936074421838486373922748754826187133015095840350449863050880107104651661800691287319936864702787731120632321752518711959752439054865545456317791170896484661247345865451879784267418824551718474932569176853028731187886101542916405134530052187268845897261207663967075821602919067493383115807380619680847227126445365156848069325209213189613625749059627876445204889107633455622984474066582584548029009112857865732100167511143012406102190642359251624391460592451414463100976653439689610568724855356595103990838155863354705282642903652339371605326077859222258917618224896221644294263032452225346489782563263347322107188373911879301694014260117719214844492854492733771528303625788874509376093662593750507980456150619646777019960159882373380905032353414368008789172574204146451024100476170226897340078247310380775462208411988141626300188975146954184378196525746398605046308487404083204633196360887633914265420466945482635426905717531002017741063725191994780313009159437896562876385117611302311043420112619485713047119436585936553174994305126511585208844866267108445048998563075448938007707018297155658130780325446135953375202039151593727732380811023344479910240784747694121714470836110618906959991346065203653793196132225548752702117677175186561486147735828027709832772751630139571131692461762106078931131896214909224982012189137518454567294922076442355990106181352829645641096974975546568015526733556288123677738283394136982580052921384179784985656331833845239617347278318956626630334623236326287607804172930268902215736636571304301424998405859309893278585169762450634332350155346109782035963671163866517033175787412453339889813692147998767220774262152330273603611180346932599131697378841344228822864322308227236193969124713066905415855833620402889624313760984213886272591303566328377867880963620705518184241102088589248250839952693267040086683643859740876454414625698424226168612461578581130361307544334796633069045231317422619725484730229858694189210621839101303333815033921731858643121826923113546387829440723365576892124574215596021096388354539067959471277551455195673626742284393923685391388998284491193965072341680539318290900444306712289364484825598301319548691113248202005107833329695841671657434545511463933084684549589871215849570003117592654879868177331907409131408314463483046672142602023819055693007922571709422465231119554460775298095332071303145700341061633566921899658802774287482140140265809198959777311381775570763898659590681130053914246472180593167280237187990754955529582352571700247918559775959803644614028769887828893961403796366777606518075072441779932124146113327463427927880238692178330990554649279550359019745191963728350296323251532719512340787501811356844536455535996055862412786641734579003187923832866084996853092321505963828132265504465506875089329731978459436588510558472491418902023603565453677230489529389616209442560677050577682981417831894257335279611150585682416476826515776743900559086164286476733984630237962331997334368505204746657998017463238464222120232194938431170594058123704083809840707221485454599077595065121524697057197934016316920537305593652171554145491347916477336080823263949010173228950519398571684269252964111555301157047193068988394449636207675694944330705366189666924184920347177156737818668877300310702886891477424133351004378661256610691493254644130934412733989022655682291370451570041655076373357806705410255771563013877210478568259427041907619836093677663226033105159150147996219241755580388893454597738467113620922391849055601389904872901404345167268687562495247653524275509434182107480804568506596040770407211248335867997705478054596503569057910978341637290439644814521610189966129686390106599701983197659668387588780327833330306599098518039108010529960125963567424866946698738577928111706888094326143315262680143313016145650621872660631323275243966718791730959521198750568598768107457481829702324270247454891905564467689501661345390883969818035694205812471085686676176295141341275547684979295857537563449080481174058026365541233865201866998477295159384889095227339098465361595698915531216960006875787223059910940821731065728955449502804721836839705194578502175032200251062162880033824131308340248945120948883107194660397368432480218701215601853179527504005042912997945141614643615574583541458215004261751530864397398739277309757015307602695789956627145775628554533518703212755700436898773209219474262449845513280234602387481867159744049561041285798028897975505774885040515514912844385174162299090458444570041615315280825031059491592688302526217997128560101585298139914920358175079176004457416953398568111125692681179727717426023834173337207596476665147257332403725713575032441344560797159677823902816910155408244907955418165611580249241147784697501059421059366267576888700348383589152631794968993148574883880858504283950119940831107776584848291138699932569415584847479029244889795060177047833285530514919677619324296330012645333224734558749240096155560300272947375850846129267453710416764300887248252680242510980911157290188870209718176159085993158763532205819864313271388043120976246122011529821794388156470727265563895901059212216802100163432940759836912823705250599814669314745730971471302893000850696005999392522645397710613998666842797915862171150665459122403251803431575488749576092295023539831039318985745008509383665081383117154942970142235798469026444137859407792047939297682638710178650509449180303490008136990616089606157176057912620731587216346232752706036827223203606507013551685541397911185076884890261776591800163987057184567197927577118208876618231228933657584889971897156419749327982301429388770698093235464947446264037972241719343988251712174108776899569036394044349294851831087738708738566260651860680391842517825440248295119709709726271309508335095635793597089167428621353075274281220931002440336873109551386589569073175201429919019779262075902856544077383654370112575950952325119010556495704748028903797246788735176430074121544419585379944564394029147101820055384731709102994237532169515509207515630270805291866792536365457057143791508282850319465630099591620465914068086903890814822548890089036771290438625123312422053047992219350437215488961730721574465609230422044783056638540741294090224184642992129753137872149420529745480651291167180483030514918052706903915377580710802367016577532242215432136375287564175759527071383478058943498853051559939658174536370565084428238357020239376214151820100197647600928203191576759723434969934251434158014632049103111393733885789802373994050151112619426603535190675125776877095667311518737140503401904057043635369241356960329491778902600749838197421449955182826593950162063741901624325617385508607613695268249476151756178879290764883342782433026017505785976926771346301081755245311823138931869396730063327128599358651954323399179912938651426629073280905406581422439368971971687149620952520515330557436472974292000159176550500858002293700375285413521580430490075655143437902007809503438972172158125436229789306966458851059086264198949230476558619958203643180123256937224514073660067842495317090044324148691851274754340856836856878750036068062079395525733134748968815080038927551350407398874534400663500705659554770184492381223559291211940814726918319532827648557375200759127980304659812697774537656817830503815474055336020593439522543705888646880168715943955070193878607823030035068925551497566243400191729384283474246533503226807973999606725757197062664733033633082148704264485794532825446976376403491284678184442438181309873836026888567236341576887726223987848889159070547139016301940171747987171620422533104754187590609133208712729023237869355241677686808978576801637520662215449922789106483590812107495360353492784807341908614572987690089552808848725162898524608983755634457579902792517002014095831042756345583560497715930470375105793167604555324444394167164684280209584849400834692650233134092191152734940158762295503261020043509639537070305244599568105342523495734574355257833658595217689974542039827788813895729919192394563930833821689817347068038608806965789327583798061422307271208482845697803727172500593810883416731007885210430858465225748917952590427764424593657031251054478859267278108151257731002794952905290846644650826447079921398616764205779594667086591618946525197886987144048273702407767249778487928900421623601204453728198925711087095698305271260571266856951523182041961542766400252443188528248064506904001351543372659509290611070942860075514296728126192993584766628773136598708946897419819282890429353040885803516755876155974791258260998544937303069333077678449526050816393977202158032616313331359756810658068267413928279498812273078157957078878656942735230515500591080766462515547878328103207392270444794582307900184515318096744562313794760249855885499744511257849658682765574419046677929320552650232847548366426132098883674543564414339488737785381991365917536949048577500255584777195464534210185731635462960072381132930191014179016943483141897445055209008109454043748791202930218139876714461435661445904362171517072618115950613017907748724923010190785211748834544760286906712940002572155891895481394703809911231262546362928434969246808284337492927303677423609176812223506324270955570054153286542062858883114881407479324607801057496418218057193810091729173980838585716955483544786990432496827484658612183690973385432126332582301715162213528989658694747033737090082602863194012210802018851953251183122691655235384471517145818376446498561916378967982904865613599877351135486619288387519728295510465132100392885175531245987339424714312685563804004592262968414138925079032937079594236512675294142910469692052515231878024860672686976866860764701439772307309117288691774340714714362079144873903750388760862777122726618390251915328890315139862165870802567122079525346016429865047696514965705817385604557382036039466324227505664008492568804291740993100268631941055462096597990029240434362494140784237760667474990704333919417635268916657409074456309762010420504657581968097730391444838665174714598114635418952497217238302002790214753423490668466880692522990868234291699168121124250135220560663979068247290266811570671136271154053443008666652663633471591694900873204975518339860016333488378896889118921770518896484953277683367645826842586451776724604056289437483522948335247231581252973021843446650773629185842918481178688079644175160054344304484495495914172556795183186367816269867901327900420501472335406725966159962224038472914072552717122252132112865588303225597870099758499185388119448713919268251361911742196765319086125084573535941201022702887311050801415726314620605233629116759663033478524983300091928464433388555297285449341332701206274382875705178071067975671492070011525395867077108611814413658218179456411857939594016975028258687719237122536260493700189819502395679680188733062622237235053445155465971834892523103017080173632015389550556615326382504121610737383486858736942648714514324940069861394014281321473969104808136115460650822790211249687148451095776364236029506253909069096031548833473505610564659228160043880282258683276165755937458751613113249503509363917398396104018438760580161713996639575425606910803284605507088049422780010736410717406140169621475373773029379950763883063051451614488040441869733389111258297446963015223840262891338818220341389624159294251018699847281621721512574482127293656709107889719247385709632108102297063469642836104328078737193862838337236048083204060370634384495168635820394590377557326298854274202547880933634604874904383700954075189379957190256460695993676944291794312231344517902105351460100316870184549329126421457533724211589376747135798062800924770992843420552323226888392329957526381272839264922155757669870306875258265218611233734529471039262974940259867504269791742664017080227837602329368424744478528379003858348432621630532023400145164745158018663561094715692479307729081698731361380786567577481150002536204096601235943525668416346941179852178597864478684161620218193786888540995248871972310313152290160683427123176332121865280253094518189264785978114287507997821911884998166563350207489926402577429689228431332395989292474844072384623295472089162194550837745785759797000770704954408883481563695766311751484300647652356867366982733258830034229753689455936990612538074451780725686924996407957620181387760367934891272952516241911348527134446190213328422239228334664124422314057389763704089194439670122226331143990348738045539438113570976676861424534989355539935893827766714703651160861245065408826607423126641471106391702897653211127128993522871428583798678117587968684980163202463909753570563814129176305545132377921049753935928743585292094707495401603537268824457049312523576625154847085183253846635241902821540628947094729573817365330755564985795144624595997014951778530882003513648616168446816473699304721866320944980293662156584305231123267869280200980665119249591753107802224873010589714103533760509566112393848529087982066603752187907274100536662565913887259145946711727023302837807015734474156114604858951765877770081198534441393639547711137697538426174678402636131390937656231746373964470818530848844356116751793220680501820560546660712582417363736787690656987738784382412193729745090769914385697063199223666035884498842915218257216556713639016092872567514291775271094073901921537996648703806347397779337453926447474830429138498947722729468309078030405343809680318351544746849472141696941129743592574549853718110918063906600560996702655624187397907291209423041767407644600355867488835657009008406451392505397666789357058300045018315239823396482281193617187149310045921729087683875513228518963365231261532426458902259831516633334175952178145620627277081565607581332950431292883763758820654259945681810465159460138504539047869502468572402796993017470593585230935046178987692494434493743452889389326597189197588238922742056136623560521852873608376624213465380242705975793446911635465273596993528736438715058781393090422790830283200157756867895504174590450773349248797983845491433533377405054964411570980711743772975616101009698436910689582461346979450131388984334277901176662081458546257224958921180917534520505726457028846193839304701187650111725390976568523060894638541977523179564003243658967700473668058303152495737543912556302141048910060336207284996624368399139761334437873375772136850725224573556872310743181236087070732829336862985526881071619592014670014200807515857689265890359101536260172390649116691182340510586588793016806398232822781129680776386491054521179450930954088137351611819353888489956748226087129739077053728527659739879270487401587148448694703498362509218886727318310155525088095741139729664255407435404772506918982570462978073842011226674713069514400192650290545444056309074289882154246581781564207928223809283132050644497279269634248351317533896258380547022895208458069281587074556580973168545100921526749986057615782653313327810869101979444290928808585255162852568635135782238346793332428872179321097043470341521233429543741282878067047209209203201472278527557337383782272969621108852762935145316471907584845617956747473207588496660050101468458164574383189641642265141816808571355423474380844095758445450597884259743510065269867837303380467101712983932537734080503543165655520031284066711527438042544029882423735377615816074987504889100286630501860486360744747543626746863123660283851874601032697237940009287588982201998577948899532462143781257849619305451223688938679765568580122611118920578246124397564812506072465222435049694032683453979082132607607752349497059667139094992589444191018443504018213329974668051585907908610152803888852968586278211849880311125013528132381874438634316628791322571060745565521944657182086840170403444789625572771074920791755526402961953832289226516220255218917506432759339906408691157996195510367081659837748246768874181162101179727096034819351206493425420205515238136353697149641075368244739376724406344848661148384214010483898398780977364781079745827867174667491526722370838836461070290616149303925386806078102057058245330262495480232722435181987933308239723058497690958406848928858056826196247092801056925675415711937294487011842238228044985001713422668510017592603805741748708530278083917570493441088458920901027126710908968345039405720499727451023487710806563891694120428864445889385440261476249025105335324624678159903866961404480148854154616581253151299687919044190017720566052218651555881174292509511978339390731481954650008333338690383228939374608139074902702124573462997648478299854359709129008330793450581885874085121676156849618998392904841986332478486540842422075809240079899961372460198485489064721230089840958845080862504659647583389929468778015364904686078337100973571762740438231266388409201836290334802261969938384762391034332581688564163295144202797160214413775186953567143650720912733579984749275075307252912490070182830105244766931075510371580304543870836512221913261227227275433924958485161028291979164892733620065959187178924659809861674843072529430853818255171769774264344811354678739889473578685259990408177040559618276752457261287927734024521451063299353860560844823900847572025213927413403532982188125232361513906476330692710359818866887693673632216809999881208407424896154295554498449675576991711775573421875056055379312203922370104496922755891449028589031350180759754450995480792640049662783832856865168512814555587923329812951922373980531458074066778629070397962148213529490927047395695479476852608170221627754823142973295164453048165438118973568070228650585771461763641188861057404616376800185369270581720242699388645885308484442480784996187295554407071421396671160378171395038830733362313758094858279593205009303900905834643721504026265325238405251696935346461358246070447588502773852461675043743863331802289874869866715431911238363145751746877004455630147855457832124773897055665800216416308132603584976412120428709452147286339100511474605527909703892221694892853959627852652233284077348020440488213751712912944772575686205437916724369751003775474683083005618821566733882154049862451510140753099150985917190810710065645555766441742375660583097784421842139814581923571788660316503888208481901979415461482491182137069256351961860641785248471740537836891164259624568519834040817636220881704806327607752607588825821293389910489614829726199051106064027317852645808920770218447552255262780301622066227274356744289319617491800162880873848304138002256592409869290675926056191049517464970127240793383489081656712058759581228310804164774455294636959280893375890372268348596678332795429557544032256968453453205290439858459030166767710505603505717049887763518577097345221234808028544126042585625822823312238414999217861808847380983862107804475139001679824101407519900208541270704153220266578519274533339753772900573800951112493370610199510216136974984133350335056768285246062494350219444368245478997379434963633610175606643018793193050216505435568677645783017302999286924251951833713392081394082196336467756789850249204601720699535261620678957171412149192810858925640016174452075866254654609598451580820094955558248807190199521932458344144237764347114792447670743831511218751077398866723520321271662405184291750086870647054910814820361224571285051642543395321570976129719773836660697138265074535968594137371674290150471789952018319836037503449975166478904816802889517552801057926986906466714979498845774957615702263304321938283229667556544024485752256257328026669881943490903627316005555380361862638621478229658177758976962335005781228497018962143725656973541278812733678893080819750944356283878261155661398338359029795268238961946246130066436009747783916160200390937257900681107245713398533417681530180593038055951697701710083084711584821501137818614704205008398123926935385944245571301160169609394504004599950990811056786190838411201279302837942817788350378580810265900160572942044845073544771681560600896338330381187043280935441735431116394640524194235758780270283385314242515852206533135114361108078947866709044682341725078509611410761541713450338082366086559491517206038857235892567755058466602790176142039319217040444824225769472974158105587534788792138992295443310549824544473815215245864184355166948472253256312939840346089277694096006435597948881346869184543443629339491628504772676658418664044946428238056061201167437209086405582559329511354828382322959057492908097656126043404509869013218311071270712662853542259550714289740118035321101540024720283023628582518308540565028235110174910932250755765696414228802316715311013379745596839058722487189149151878616089643797812371082305116896574798358997381278966788138081668783532212934261398376404890591201823117623857808175577114901302207531365270714350335793054425321362173402534584976845172613727619854342674990088370169668038815659055405205730474723299239053501033579883431568959812986968467006906549340091326340247486070667518916362318773398975388797359139862299236894761466865753649283056240327678246054367657397261783003091738017225398722856226241198518120539960490000046193600100875106615293506926867169674030928061864848634020177596106055714381072160431185309460357638101246008130064836042224613893380228267009871843614174995205591234518307972849449254401635426878876998204160382752357584790432067904700356311551237326844904517741530340531284952161082197123714989264382168602935192186946197497265044793641491310683141544996033961871650952266197340768149251455026166060106147809036973378033682420183127201797465612891193193888258821436993097665375991038562004829063804241789292922039031855644885717363930827920806577764692078965884859205504405360467486739872783304328684010012804324314569137843904455417144693281012508923800698951946218234903314217108585063415911417693447829526193748445220516558187864733970000859370226284351105174388829650076314037895487281844832964087104386069233078548432258774851035147894591687792487370393720207269149655398829364752732060598058769311513498573383995261849606514754010231418975133744723562166011302173920167886399435500361816945209174045682944270482225863722993876683903733116798308208548421870887668173463105504106501751066806962331083224464970060579836162423877470714160247435703499881563987503033418124967398117694370093238981798559309931260087142673107186324191792154079448294157504099838766312686232618073404226307686868742382112223477548803417949016422482294984629426696700364560794882065511078790517426042798345769824605653886489340780420023244520526892137585960841323920845390533858009155091942839803912908615558068564459579028384772084408089573302817447856221242341300554130252085665019397763762363870706222381857246641106822493618451285384362038996862419110144682826847665792006432669379584998943762091492458992282666529727897045814054037087977594638367435056020564563818026665015705247120665466087462215950185442385278634386307564857389981188661672478001042594128715171249900358128333331242584874288971256347663820559364510830114907022478480497076106939389297676745370230446040864464562099227115426410040043095998122572055437144217892990545872475987082031734621699526690939591424277320863825021787362265975544180264712395435962706602131509449667955156376668158187695306164706595866514244885676128290441458483980380985921683843218686700903994261808708144798460435689998244750953382061830772973608699236250779582881050579494235427660861083215627145515875494125132323140942042604170634099438100387593225010657981552265061491956678800863714002385154231991330666019526212676342418249938763655307986787558685141357161360580382051244920267493799299891424284036681876726388814309571999805529442147837230371374372954861588683951196171706979473036379276353106060481374097177699632933914465615802725543043803801907503980916728595121462322082189958864206695243903605112432281260255803066561665989611414457212523664420128005486150131013559414190233310515928883977533473541391908085470454983035529858757476383516929609252862255991898981961346196690015700581879607424662065439052936466969496774780946295018063291878486277317529533607060147944633007276362021100401785614953652829411563509021157094369643579981511981331342038877761609995376249332671774855861501915195872840873243544880872800919137701551384101227321752211152838009525805001675761047803023010920482616519409828429156758039710930460375668508634567786319541838860553645447003693374605431841415174978727186566106959187519413974568013093711525155398774728460393371734818845285468559396828070628599216350998926092879976571148410970220949460461090019670533335903732648484603284466125605067709928165878254490648511921651500699885818176177150175617152075854037662523931294698982823665755957254002291203877180416188317087667085705976524882433152154120696651642098881082586616732229159530280278384255184397120049893842847936691857307171390155929158141951659509593910128612999460483097461572880244960461860690183232970868057666082807970680293185138181074347341844043041946173425863817457622829836535123313390459406313723250620424549873143855639771251345430491712903683052667537144512593828187601927446559714620939482604416826489431299520238676466689305964015941911849749709554118012857092287528457042404776177885792315471684008862203490510252783967487928138736822595146624650084411998436188559378426506750380278354681164422530412314358397154068251931090835046330387571987184794221392907261038300637216127126223893993576234660885243965373553629999529823161247144997746523465922904234037480268079903282848886318576167729497704582747143067626513955664325182473417308330389464251079051790693851637608618443500181637340413374906731794641595776041367938977574501424270984249166831196915442296885845411289138290145867016852526497723547178717119050827134444699232940322291274335382090365227769413975619001826773700231364899395535916753982569541745117209797799948791482442533651666692984391075103578374733924756031885598690897872042154286204267344150117245303582432453225008445860077184927560455943671026425729711155525828493977202870034143317478793520213024495236839684897990409254540535401717396350104371240156690916318445258578412178966932408926987390137653587026891005247003889468419071399860944501992187506506321229277680428381117599809138033506168544711038127478932763909420983258163714166882043078654634143080582168030272940268729865257419666007662206479075320305402208443300527364345217288993158903722749339485413287956339432846552207386125223605583321178352112163344694345214220626099719895566588645749747875507063026043769899892178081184069299145706941042005488138528203475853677712117144480819777175395920738884956959115988749119615499806308512984974175833386617467735511988048737598159516594496957411113540919200575590487694692021401978307453307321822796543654465120368910152281704494128807115633300678537430004243890504038760492937739559786122917799620014611392938524907108424044938033098698989990065603548404644012617573500566148178541140475093453657736788369371147142859230768373472134349587847204742566952093578436598237209294323704283067493032172825091668916958489305439033302673185894802906656086883171616872792053227877401260745577429092651540961148093581147700087303187465494913295341479174195578925204595519678182945231014808098365252206996107658366118876201390023633045326936972233673961909436987134279377111760243851937603069749208792109622233598644862523866161077997816863055581622131562542014444037344141063452214610937233717674769069476625711072983957275147142457966394546182969901088781559641835717606627945207438356850218217378549397914516448477401781481286589422667187999188816662190833807571577543675475205192816443957157968822511951194220010287294636525589475450692826751694833923823913518334842234287050631638479347663347758927989100461875554509536708002901925852289979178506757350617073230221439541221083017309997349586946790076317142116006141600301869730487904130989963485829180180236469340696719637103069553882559460133858382730304588340065371173534284507536428139006764584641832280744391361372966060705673469009830414488014824299422531394067983056057954664609347838531402595742867163222317020809165527187733308946740999194951530501570924611157527344133106318012988106702301038540496323199944011374899331236959628724731520386369306917226050704079441763480648816091951070009191908347167256226582929651213633436326783194667567530171588683637259470864148987610303839209488033621800061880615044296502515092675889233390546840041904023199482843536928139206933927508278376698037607532077341402210071261700556110438346080510937534271231566564653766356862196867503932530864358135568620082036174846101076546404971448727581122865665091770595215347100461930948329419114209303378305391714167895887361315993424272558448631248882310795236366401185935429392193479138219116947712886837180085699980041501162363126875240394697620298911854792636976342197430814272606520487636568307846298213124788421010124226786041447187784275143911122655724578521810792062793096189531559375765839052980567127526628104565753170052681885455215077653236949165679868228754245386811132727527333743260577831580383610920186134049806582031575398219819097540262349576485869439320193192108635498227212298456231872892327096305714757168419102148545347454875737655561357789127130444123056533242864145272983515225640353934725529905967639997324957603478756622457280254773904783098976422923408323494945151370258239463087843076798824615913808181562244271206948851206608325194856902428064538109236257916095100504096833429525426414052508125348106238081032347233842037762378161287688473592628473780346657906270384138687711579886655814298866433162855013160895405188530555619983142537534939971944739203094662243871109008974916928609032111214862408553578768047500879800279669014728824253535396670328365997462123480326810688509019201381054471465057416256406587562532537946490103766325374366167017673000216681208578645105704855311974790727038765181505490780487049524276755121015142399189091586025462384459495989633251361734886772977382296643120792518937064670857532044116071973315337849897588197636806366204672985187663886407448955032145990542451721351542391643141645606104812796231081598369175040575560377922458120848789103024938867833725660130369292331884435477619840897619914014471286056132930896830787613276390521090231229568434856181181212737358456954492107717543636786287785094326817366239777852650769038711540189396457252578595865174947094331265653764169499474561403078537977916623816552728520421936258887636276374988454038974020419337595920214523082801754307689317878151219983774176312315385333051750954570368365398187327835036266147573260652729311723460991468901378343277878725796415282006328224427739606736796042539644611304787500009285914481223018868879804293972736683095315993019333386524512146074206212680993816820870022641924465484288542982460390291487056695700753342113994795813704154526593469660445549705123593892696333969778025200076950826108099367817174546489723803684353575056751576312931317373103922648140963871100630889533881318175946897951374332363673366143455974459679580908808745807201704067865231949019157201532222672641005246806215057396002492210144601080768104058195150783392413485168210111607429741725972977580115261106131355754591864805341396816862998115292261651839606301186971015539418768864602304050420213979450068163988705078329299889283428458144159990203003318035974207628881556325011594467035609083225205998329327630313260532543947631450130135642808769700072098859816089527117498350631344466857269572734865669179530739894255722748540956408610034383809648422216117785860806303703040005066963497480401976233137009618869016318543247551490682201622905978342845332108264189395362519532967638736296380571002597011329444480363631638480244097388827031032154638171076390058270491939982731073801863479367434525989830318325014185320339956318311157697323090184503510511074183765663103718237843973441136038182429869178501645215565152635591202106819875207915940950191798641927540074966662455105128683154334372282169923136625711273949616281062055231859648407407499090871466627950884209271807392399899274962256017624194278363177541065251808759444586753072696002283971980569710251882449099221579154410273937272367670475711862104039323819656739319905243363308421029821159927642911712834194295772338162132417492999601332618307966478182468563942490180458572503490763361825781911096230044952711197135972836010199235727168935697613110540891199308727459876567020252206089918378344019695471030135774703103952597010917361361472402417946511379608074573260093233558613857071426800977375820484058613361882356848081853151844053488207213493113114974756507910613928438543028338810530679011003139029647781059959816825486246384216789367673039097477344963964645459301466162159816131167094667196255735750999726823300107925437639876350732347159311414087031433195288079574137629695661398971349064964144292295746669669879873946239111302556526215860315965978473190713228054867494007866365782151413892226607899198888604908227737252666867327078844648579823743589598249504014900613077057118382050675029865913330154846763316405126438826376156145936564686470376998530428234812951136620399037776861695599621142487151787558757865739633887625931077444753857072765387679878816169694320081048008140653879177108551156386045259961634333409194608330132023004890199167534039137065615087227897503284375495511922870398341310953489967482441337442135900818960125932401113047618445247672583683144515684977863684907848148636111382309502738087536064581498942798428193104692450930547533931173997110630548096902779495529133339545433833285916981749394836513556402286187574657425092633322764429964820469672333443338902153993623528891983525293649700635502838027555091996113673102176991647562104990280872673901044229346299969829755357038478008042867631886102579372293534207681199262069985772164537690109721904861795784184429206959774075339589612580573428465098349560255870764540023405991811120537724313604076801558540779049525599366994388323838107318503724612789722208358189541726334430857565833792834464896933335132157143699033746886225608754776290834365610051560869201006018010405655212387324801892694937216288883346276257794617562914021944916216041568982901152051355056729299177073595063101155549579588683917626370990980391632245218541894663716648591430396333834290349646782882203864132525941267612173646004288876072118842082499839941944288627562663239672703707203174655960911591485024468029401113863984455618995357023248475496558064887532888766170856812501340164077557926195588577313212239213692601552961545022317119554849576607142865934700313608963958015524184393454415355203198899166988947190496166982872199132859992766389186534295138150662809268404585886925719600315620576687985669189489007547485601936571073379502945966676955116560127914390526349909148409510501135944302575879419641266639942831344826927830280811801431571312647766026666730405119790505797284902595563459437310309027685370282833790709125259900590997518150405677227768478083946516110442836193369291983629753744219953220137219162378695893036096505206819907949419332941686513651553092796242263329398056041358946175332765083609790254295901725248758551359179667866176713848700231331651044168221639302429089343177595895290510216191842703656787582213358189747888733250390414078459000687019524361381689102587650084221855827527052879915654224071057203182487767130782956071257651387069783858585486470047419114579779402258482129969747298277968299638793380859980505035508859778637595703772855344735671502248096740743175360006644600639639754041876173761218345066525184669782719825774426928374506286636430511643174204610195639670977688199802159418577162225635988692262763545955387356854680063195219203076920810363553675559357018561080578371548751037085065124435012621141623475374636545818608953769977312667351945914076962443604649541274710100981477479665303443479656569866077373507936595959499028077786494079280566932766279699233704511303342964991043392950890127130868580751434675136609732302613330160008880432531215408782741366374071683086160890945876742333823148168237973302455045164841073336910823964024213841460911804913279289956321773280418208606061678203488509664724102293068330608051145734484722628136847721028815416474914468398939945081470669384274572321495622795762959531147489192157024597668180636837117556462200779608859022200606248259526206844948467991930839787913488035889544671646710440252457838005184546084575005779264593477102699727462958895657836181900608401030508461492889329454091474690064121292119053548171419855982601380485220255065491351593235206831208952196537128253914741169974057951776718176916026220961414136833956904038472779930486475127356383268689188185154551109196267118713481977329830670971895380784004537436925585875043709577258263893478034674615296664190323181055837496515949586378726000199047067959193165040243045456414895664349049697902694758219668709594139120932207457359842165677752318988178626004953636483179407956575917191825928076523112178920381326202373897769208495215410493082356106960866237972451877702016361094463337291218578873912928728987881229471469532825004097269907525488027923207576518045717852385543122705542398116903287525919446790240417239224909464706282427164203764815756220618001551750015262725419842011002845809929988619914209722293604394369344494039354760257604504366917793210849058553024170554421101568276816932178384884465037795199599735700795582724493985191594554418913444417736711248207751044293131365219808777235654804887452518539613964068782162790313146358950384139725583288461421645164223418603117537298309924150796961577304520894884341131432899375469884389157272545607956656861919300986719715827224601254871852320706059240329247066129372471617494496807502681826524395642799211438621874946296362172354439582851198691513377981925969123190483707217077543674579794133617270860232723263863456496449520280618056757883638016325786681511152103843835945571987405951269131577978171177715031639416542089935600031763902849321572442178989088274585423668232978656724775195673271270121486594246717419861831073846729028934357256816121986034552951294383910464452837240641999641725638169284864149372839586936866596186713258650450572513987771335998048465392729151515740516171781282582904756917664679854349906375451495468458801924186604872546334469521220843740783389697313442763371164856315060008608715368118681666374256766098798460579876044837731781854888092737733654589859763318757329669998590930366562668804143018675575089855562495261348257779924892598628143605710976573505683654187908467409264074930952392953984616634706331443137314651842046772316164431672182364829629972856212695545887645354979089804382170580981720413817232857281861813112399478080618750672619343809207929261969400532556855275127486089054612326263526896828884061459011741176541744282518377686463894235906294573743962590729275204696371975798844150001006657767913359784753195426988304534376681671790837991819617813266056962320087168360576025361739197319207455444087574395730684982195104445162045418516949832682548258270819429049623091738401236470615044827858501294255759651673658158282681443386307367345749482515195837687976313718397412416346725012241780010785959067904867022920891954060225157789923468617403634583259631921833185146603442958461724166450971687875556047981260082921727575249097178662331779686019938173513542468996872402923890100428446729586955749219083782237521209378603293722461956322910215089426456757009246416091792866994171424759153548639538551739471251123624555722132865885059509870441442083391575546103114921395077653282643774547180927773350258694720795923174406174289818911685124563862018565118815077014531444065433383289121525829615362718038932036292334280353453222038629866689848498740442445900880243059290557699478497068396430387411488228084981200278016527431098485523520422052622049724929608002924877742840260520429195105323749603763902365219126912690337140994875785528020376529730470646073070597648791176451980825456266238235145264090039823518855527265005042806914733784695312900503182446728930555350265291608063933780979971801439312190692066626496182240828521155400457868997101592859095573177056896899691236409078212685853978790034333277478808110925908207471040002320735036581067080882781651352572965534175368022783332982037843950595231219993825055653085852743119820402320648087736083341620901671104033399842650011659966135876859411265001240142295200737063981428121902848577643010802952145474992404648078307796279147685100136397115819408751259342816169406300762800293704521388257380404261983180289630188334610952425768529907320981304931701318342277825413699096992898522769138710006829746021240037773236312651627038238811009772883439191141735977332869301710999565142553785479133069833838855766608104458268808144273837519803721279042996284890908377317635192498823889390332686059435695131232958445766906931914792564254465477034326950446926309773817158723699664530866491761679200260417753414410469020903072924837240518975342770118015223599201861479398326024859298604519830741751157608406323185623431078787546206495868298964393870117660283599376531665156044144885172002093421670350974312295430873427079886500280705683971466637129187042645279702668662011181105488718847373021286961040079146798031333081496953209090773264572884850378664050209842370097559753697049800087644891261680370111937544583474847908080124918993689071636414492737521762599519243496117479367826986054191736875476116472999694667305113507970896645761168485584301113905731058492969379292749678102580797301570735268523104509966115553028056891884981066033520215281978991295178382057082936116743357824172694609042582755348591240275828455321984649657400571572049296427411632449557622678025462796209551208809343193308170901997202681557172666627276578659875460458178428472477996962412994986807092324677367281312632710652828840842435127521509667616704748748779368678649166686230028950760369832586340565550364701231248152487422068816742265501322434433696311635762255925443336509449952095929532338795751223206290582682622965554709593235448039666253443584656103838088620628700088772322219656815273758689081118670159171781644604630337641909179235423444512601870724929691480837790312104763677556466465802634774131268710558592615698403141896964867779364394090640445777837518283977917486508464721341873718931006045251739052162793233924007332010156852946626673817486781385649404625979253284447607550762067062213925980018280183169954139740789080350619876401514291148185678264363320650005325574074169475802190199743038801267875873191832730937721039996720662354471626936866302769548604195140359644935360279776575916750866351955154020660709518365871389748906418481119447502091307079949776864954171068381436249636068055961107127149928254487471453451354295282493666957648627019022003500941000333971310167979986772631277746470159028077947964077078207325050968320145605537205140303012291780993041311826629006052591046212562638155184364416453746926027423299974860028252960620645756038500141641352167527875608469657783034228552566257586496301360554840195292272516049937332191794266550850614363176589899888048886015701610105028555572793316275820529927999981834431342174904529627134997747257812753351197771779851508553798651096119129461804046166529806307552238118920170637995029592486511366778747816688858726574959546861780687762711047090078698916293528196715533134845702115744772332678286991358580109056806354370445508885763022266228072699582552273371762014666759312801717399521109451434758267026202865673912965597317158411003229211110286905320794375958037096980887070196830583833270400862122529980436220733599996377145102650958002095948982323475718189352102055167341766283070747058687739040522774715011440139424859773803264272859706983057793178864082809344410887213881052236033256059504246082827242511772830891218840720374054484946052980085458662536438200210049802892322686333718344466760171121961798032121771897825775983111496383070337890743936256246521734262674051943306753491469703386521668219105216292678277809035841387696320981381048777086052940877063793682045057586062014500386098894943794172353985946077065315921791686067539332159701320379418573597347115915556156534784825947583774602686811452148886714895870132617669273522608494918667046736651636526568092067412962803114019300813633343214099466102194957941787348045251416320599731924549820159667092895526849962815532735309201280961245032231186402404053586289111578439764499623102540638260420503346151996516520602400769669024468930016665835339719277308735018193478343063075518907032149079521236482472467516079418554069147372807035059806059553801967595771816246445518769828029567929678594302192162474606943350494303551467487565601684437389594705158671804262140309677576959464958500484515946768004620658329358570095983202484694765170840260694736634525361919311375266500262316990489181265865343120429844717806232197065527216879599157545918361773041323162515652788475896182297314172551709067182998942819076255965666896615552669582405770967388043424973555779436197228807757120609862816444363563249400775299008358137714312852226029230757308783219388676144872735530545175605141781238792719409499723691223286135428761901250013674020182900071022490452249163323116459163875442628929743047484307228503388760494686257902267673074352078223752767508262061376820292516589690544671566152540962549791771990963134633025717872758563136006837639397968726613179194910414976346967725554428175822964894851702198182746704997919142159816654573360658327679176182170309410507131310097502065238225622727334094924103578691024774354183158848452223973848451153653259229325655167213233664153222559962204402358910931533549849947719716413397931023303938680136809777347146406977414395733667452239651496450007683229722797894993484362167064252441491327654071143976938285900551083867277082795245797974789209261103314741063965256089169428060268601300448776761823706387751454996591921688229890934190418777274345618513069506276059510649456126015303466873150347236559142087054006064558835547866490199060493258391633327705785903504120659569093095514974937536203506924918530023049829196150763056780434739397204232115969290428450246374479269025630062652320198201306681640423571285930501843617113566171374445213030329530253255373352053439434807315420777919594256975388048927451507703784110142764511651734579425590114615999411512490430169048055860554706986733499479287646128038587152301077227268651922404801403577314962068255297185674661642912827473387407497915860496196504531612075561335427951643973450690449001062073037441777228256660999842571224702845037750285118395396677985476856977746517237522351495426662051587328078672742050698430829122204804718735164996644436365986953400319435152680735995419727087307599437873394524757280605076042782338494714834790123878283305783506657189696549474453593190792220575024408544120128922500962875077729654325500644137461752085194179844749945615305276307269044571866340524312016437994014805630112210438019063441662538853171713689974374861949052386865544435878613013289020849716811677962025866826160899133226512546792455120011890050732770906391221700501674362195244177974838373612091249605158729840446977640211971348947872105888085226220793961739156916890362853773033365586640458453603232713050381971078094125526036170709593789592614550605861088250112378270306694133270498404045615238524945801090892332898941805984698033488388914769306637245763899458989512000080080532266376317785107142962437861043665712946346982703443349318156324449135410781400045103378053179394863078348247724322568290817729715390066466480914146780978307519347648442937833831693190016812110006729161389600226700343141319275927051152587139208425043103658072037059309342130561685967609386974180325276150166731432976209379732200051203021588426685137853918208780114044157238730139051882089903745741306265004628842746951759235064687283511740411073942856860367221821848856896250552003216521394343580272945001872881489404441887855950131028796444734688788195939254341814480082148958091010771110494794375506690854354741791705460622510117431166548969652397015269480316142486912651271649948448318106626939327918472232041073666388781885694196502910733488529716894284514757679905551042182549166337150994691932982982758472487725482589401644509890608787188925141626597215341083590450172853724616356212262954225194425392230396917137474157898086582706626286965618533031746025371879431962261505465332143160368079160274814704824436996848767665079588235385089116678192551099773276457811800112985275992963571943989218017338732301003529988589359566946764094160854209746271849759844432200265688444694888337248104025983669680173849892999935286213957567553568247515477154781646978247265379397792567410489528414033401230374253650526680874030168392656917766806574404233667846963659921601696261962494620822485825680393249720437094224857701581568102606289847335870026951941249558832568292091945651943668028719012877284456145988430554107389580854496187756603899324727091439335882039865829026670910075404309378351772900121422302379852912553355020439220298429189964745660248650673312088759773029997974234561218095382466588644229257670560492994316823767165077838271679069189253257748284137415973431448092741052883051108088437709653274757771474618805515503576620901220898559803456541678828891246755478206681205153938873950326936864345455595579453729480086012550904941814705837113093445529139695378783446802593478369849768689462691980259476280828531609254379147579450639502188039690716817559789360189348163314696800771981583822894911663960895355117822086408079129132700962752940949169599052861606522031569903699852111291799609936388218114327210647946120105124660719438421660450611592990614955614931808166092828368443538335957246791724268029600774119922205506071909026839595873578671914564962268677015842735302721643009765286922982322959751875594366460103695675795282281419008360143140494150522209127452415961526883619014209256090702034239190017964314689250887660686381161319473181613748013291540184631996934863712626987074675103705820981594556910847316469514506248736480857610650329605121629299789675724723118076572021148693918499354426570139404519682566895159006121680385524987102501456505961512339059545719247385996566406696209333722341629426917313265622265493595616947920006128525098239067268827967506270516396079676758051116797014094379883185971930969076844091904344441505108548105578201880087473325011696583029747715694042325249347138028179568294366096299837270747569378160231634483452416803615721841654045176256858733182895757142206195441454106864462321730217679602356963011210332584619408893852157537858940082863828576128692374549172394559653676354228360207770884831175836255094930614674950170480083465525234371770071916551708670563542025400224295938605161676280786924708004921962050096110287696156018060261669924252401528918426992728615305393347805188091419351205857777276628281851277986908173862508030770657128431684807221152132374430355158920053767364658253972282996419178342844120623459684148126795137603328420893690891139138649434242853395968918591620392361842199321267073965765395135337402379558031179006035575462400329322315421780054195463206118933836188992904601175190952390610705661461904048312006084355704499638863533882962823361379073818679419237788424932115848461255313169673901786476690562115423545571845687666543313582514357462474824767855681167806802013002268505514191488470878556417376737367091335924875795114293954865928726700546984422816947869618078981792382330420121050689558807196069936130228785158845069267524305273537853627639122998149245914744020083759164862946066589776649783457573521383441802489831535048505588697177257120798613537865938753165135684543641647952706550176397204107916897664438061379680126554171849423317640788097016287553113128861730973787214416659914131181549572696686831867662115108642027051130898129202740377433614433758186232611761347627423638860219574127406646417010637016017527569550880077752062975412956474342513997908104538732490071476163733417967607219815377011376933727925383542789107186057302940493379329228063086137204422200352842216681260570965432212043626934313908213911546417313618874268357834576065085298137384215117605085355010903846921027566632271264386347492377196862372806498528268020288392757192568219950800145827065836037178858293667864316270030541666045492526585957136830703302672886827307351394728099222234598023614486960823997320462991009536081552107629276873793061539169965561997340081228174730267365672465754538837517566302982185025320153152459874639152593017993859331965656415849765109491334160520835315898862221441807815109735696330935582801152048388201279072730600349648897994604287511617282644493817174681586099777006177297264538524178026395280034323043579237294426512343607395866727576800813715455701289182353010890030940620954892659621650045911230064244227698887584885551681018651345479923968813965879032140737060572290743752103323551924705016027156396528695994938127251559563049287557853268842817623907302904691050406214394203341408922279930723079369821010057673023390505828036579422527617219314222843635893532008768510404680628851596821137508766048561117252402965406632927953818548837756619008094553770791264442282337831355054670992809330807339205300284460036639226250090555887197407045131988998605584875714202467441824509084979808986732509536882155330938614673243583376976039914849933318055773684623807658818891589924393655363895246129484326837811710110015172035603337997304343600650997480916333785657923044717436138509182013245011156597488989929645799734304098195445352940668373110981464426891910227078899831795645870869168767778184846880844227171763847405747444664926590779228424399738503663540975889269877191686509514962481721301171075970827478787965940878464693578963916504433886968134374351434896044145413023000086717490489477886576785793674351220289935335904045951359509375165102189909703557074215336928723087884073867763393001539612845191660647830584866457200633552893641831191838631716985821705181219304436446403096678654869078023223164125422662283918568093681200045211364802630505127645978289152314397731857476594142186593385006927233524879690707540775669042529384428475056456619585013135183959691054189648722751806681000898493616121361127379058500150425641311453981728060709482611514168876645876039388456810191054745483695111461561515662769426363513274967470703059888563148205968320797745908259062348349561200127444208151808061225763274162102226228181369010312826464593166825264001547233376575345057008979856260103948154845767006420399893786152731481375746838384402826592354039701933427630331273922192069924649257450967476871395518292574552664618071066561974279440944027352927530287769324875267009435943111659509225415607534255488085384127764315230958508677738290152291154765486732972445513406487601973725680445284559507689700681400975888533071871721518797128676324508202502234481118993628549260054182769692283472684316369213778627093877346389889630888226769744382148448276769370078525106916330897545648248980068014284770942542106025869942647361362144968540128712726659495414501594152859315093538772170319599688263833223327596787638663230946600012836843524869052084160952318039313958343779700767331997947706357194176221476688287007960130971838265916353928816084885690529571717312556143407685387540786697984193949188939881146241789328868107292281893935735583355355742776512849728764698179027936275388042502857177993867946085381512858337268268647154419783358961598575720510040714097521289631640771549904691612496170993248269552158614811799697215208526338798561704003929987319181818526654912171279696448323709253943541904648476308402941322077742890134737188672094691630290768645644856548111060463555126162985478493538603837902711088131323457960665557690632822479927682768745192726897712955226526416401705703792421304353516192220157531282841310674092265194240145160625461358608499115118183559591953586370312736761903267425185763043130349429888975308971409574505079519422561724251470452229735192298825096285115280374178860105531992272066037394746163346244248640995821075957179056591453510692367160347229967048336645352294870917782575885691926078562743797136110952791096387455681278938823433215445309313595165935674736122739276901545672694403754157769373706418269189014790187317740029606053443118439346750522092493403506604588399278765821933511323685893324535742587156280656666913907757458894392676121809466688038461773321563330382218159184416358022784432316699635558648228384985762901335301571785254618857573518362867092070784085528556393268970466180537679556098281528617449608895328315173537287548221332348963192993133639398862616410456378099214509089893160762002669198737188174357518836951580632006854790113067015792495049975464867123483901709324344023266977912263522747420990940713415978755939464478741048307436152036226369031808108403931246670872653625629345997742563231362346551980090097096489097853808331318787332632484356901043415201792482514175162705665453221941029200033239442195552550237246180583759369871148485773803835879642747877767100830450199650690023224994404300995516765420042954776399724924639093264715547730262535313168867747567157844329438180990545657360455384147913657407064995293714810548589521564738467941690541815416127258562403054195975213722591916134358533185948128803638752247219778055001874267728114548556946857741581103010761124122796281029768570318997348910296184948327402262942861988633931424813765277789594800492451826746583367849354748202805317971440179280826756533361270529999820522490895575000985673948539859900567776429142556968944077973631926078140228884444750125837468405850906461468199576081284881743365307185556970199699858290361118608221416224605989726302020725095637618813191040735946349034363494257969065420557599878545894153743894092889390856097140178263810726581512623537226505421702701576323197798172187549089542095490951181194779887241282605451829254597657630653768632854842201484665400404598556569177420975396710628560342543440596860817461207869914786662528718552284511415114778252128546340832770657835707828655963781568222696731093311531349135272152735044030876252605672076410901770881221157482645389503352956072983642040559540416697244587822753478748055722291807442549260298397489718691942548734005441181749377750209912057973180224099854550483340716961608540509933972477163640703280777021055826128111930904389859175390532812135284562181058237483508681885376055506982345409241779911688125520030007554033555011087057134958172360490511336061921394215387471127465180737154475641903698724808439333658757256530245357127877727306986293819959693154238415722141454444940724774587512241810362927954040351014095254266628982054499791745344249699565899640214499381330190573722291558656792948291751844019166793784601923491006582576632088675738635567602135488569958372416838637650882074951251670841425192219875902924133238763752389751290924329663743295860313050261739619502915171417682072151274122341562130876917451588629447132719928361912541485721724820311596716516088619060938968787591355367879838031609529005036162148343841255954828121697390645519242021919406195921790709234008402541366304827675589878990274096110614050972266120905851717736161442969923282782948079268224665035889545195859883429764829438042285709506711833528583632679508969111167826825166125510917584553808967274810907857350220240290663567247061883699407894003182882111772974700204588535903394958158273320563913637334388210794389987225060086266469779696497204164222686190918798020086209265587838189337480110196807418431649934148937685130075811119411647762318345615192929934491887792963667389536141354462380444096214774139546341686960069822787870311364938216464628271076657830667637003574548478472244674296581516101545321905953649207474977189834087412430026102613783013617733556898390495843330980927705871641265495134936716771421369567528356141675294180102507857038576735502723157154668141663732785616505529250768582516838018464140734670614371955131034112017852904616176329934640716215260084064021894913947994398471505186878965446212905157365422348102525251091795302521178361669787008299490028421310029582580527434392035326516562992791055029429361841187750556108366431061392642155922129301467881527501880130074556488986594549979960260642242190044989560904986480901953017560914728828641166241527702930989152800647017975227814409199474213172014829367802875039695764788086552324869458277575384724983827502188357254546765344773814410386043407498966077683520876473500326470158467928176627635053190636850005125457449471700929623491934260627700289577955542404528268011350492383651433153191975911069463821350326969424034441754569592756242226888219743257629854334387196098983171767872003125499306129449418065254511889459674368900051345887511479543331115326078591671154566824769589509876584579515778646391004764536723504867885507510738546621283046940271640350265273192933717134708434900229100931358904397272173200123033084670187903765452500483854701977120060100010297034363970859763497573816358115752801703861934827720469559498913022309332710279401887904368255603533297270137516993980673972435080934950692212982094777034153502161485636497569254283929281855902339617076180373614513059397901817204962982971700277033822778788637719031654479157882655009939127367080943530713659896636061935054556724809689800085554370717578862117017853771225532186611637712808608473977779019343835774371483646847922938594346467236093107822773731404552426972628928492506203839233815376216851055082807948362931150343341655495715340308348954847384582887262741070214339556470932974048739794238886728516665949309387124479279518604320853026634120068659086895628060323093649894620540003292059655297712704090641931415733608449275855221010556486126347109499679060007533227983965212256888608743468909464720211981357530927255341999684443476141151850534768430275080080686046526720083846537064218819753164146065932226862123410327289940344024724510515636740358798665540979824394462207997233553594880002895968520993598613586167867367048024523247878787844131239654088871782226978948531862524439821017854490995238469250745508517219464155643655583230710238329621686451629621920089433198061451128102087891844903958965182031399530241875963269293597908035727022521592646094288319227918706375679689579633425024692033927252351388126763840297181316098919480420689884091809575732392145280834249469127367911468524776072095206394884209927975340308812867009025184116958470689174311713297623399613173265251621090106197359470019236381360180041039965897796532001781855500810133558876866697999091996775181219266890709432813964826398692909729249316200114121058643568004012585311504981108793843281474670108396107561299851119019476780051135792484029069790232711100067245541611628651877745923190098580184023030275514672258622928160231810297120533396879304759428527677830827944559793211343272583489385235280387436657163163923821841307496027065030543138165670393765711216696240283204028272216046792275098803926600546534868148387810422958463072474456506251105109612455439382652984083571111474239121446816142948103452437203370667719518969074616475915363540237053590197100608120643874290531401784131571278162090200804234932424308164551015733745994614926154896364189382279491952598131339113513384561854638461986765159851141892961937853028655975814632441526695724449393308350951498280096000949006108581798364640365735104593415957811449180607664894287074431334427409517987482856442673651282921522976994076316807435224775375638535851297274305265369557561001468279955467809338949362093333509122308846626723983181989524699942788617583553825659616774996032763187873247198869646284182917974209850097228850173483122486735165270042206848052564342777302228728305400936339373677792486088935711246269927270641534751365054313526841997611736706596561808864743610081348100190873517873666709911200753910607810155143150464017028614970522158145807807088008209590856816124983563053567677132060261249141749177987466693712205104494074064039850483063631888722695079064705055325130374708094176434848387088151370404042141299280446060219484855529948015709035222388849199720984586375462286521156695421789011644599991477864018815243169633118658916475899459859608681086347235983313102818390503356831556969519497425153629305430684530209813044713719595040419083213833533033049917060266515545425232227806455159294073949868295267214794184605960055837916029498780628732033370656515900254555237272492363738978771777462119340119219900356929759298450684778174940465936267760258695614195466757172238792702757073699005567882215615165015738797544087904737243104483385342546614453570692641973899180428085367812746807600631664519882009308774525021578562024712107245973259434529819310950708552248541996392189353507863891488891431278411457947128689525045899729555637176081238156046672100044947431330440068807897110430538870661036965365285120212166560624417148804280671609032994776122577584461444618575601596994144034089389584427059281339737128978985281845776899902180253087213564172247628825728811926094543066279262193835850843760973737654859189093026541305534281915385110708914758593836896158373464995371109996846567715512751277613692310563149594079538772922526163305140549012619263838290485371890097306115171070006839473237949327691760020539625870592869672092909515642960906035863650464850086863580452743646055185774555097106425019855717180941218893372559234852131853408343850764691965413842430143226854569138765541795315824764344416527169373293035505100022259302797695137819540047451920927893949715474199472021018006896959560975203677839566251308817953543646414179441175221626674448307131607954698973093870067260958847315369716526107973676740199484065662748694803706084181513406812551793098921244961369650830172676633621633348444419097827212374117787419792968988868902958844200289124386963171403262599033997134592499723239044973914129243797843499844160132046961983523480047547040372545635391015892473142599515474712267764846729640453562503818263006066709600537043097194229610853621880963443703794926777843677133597009089661273582005134055398155432579965573467392716711720682069801208633101155952854060894668069518581684770015548244132330059370071132313698603509977800928831133576107290172601154923181979937180747731336380585769811150567543860975917141170901018763895392100680099200008925443031534928296687543137896198451601848335971066240263921802928934689133673004946875694501167602245992900238227374971957117709813224441141725035599105859986159836396661935776595292161984929950338335708469919486831951051367490713008114085772759925559730690810274739025753282206166535585442866172115506539360648375384139537005135286897342124697468819571767726670582131633545944365022880783749158687649604788389314073722022311056536074335163079685906851955296209629484746704070689209744628863377552006555949935497097793033284025720651682457866625065398745133027024221061581201450033226320494422919964681894014845311814610597937369365858023951759626020964498163853779950017936513495182105601429400950501290401275081350345526656593430496845813443349552202354285395341525465391651297964408016925581369792855067889612337474349129893164095824806851332846397205481013195919339227184321418145551071915195293051792348168195935396454935044268192153995726891929221286900810796331778333691883950447617197356672601414886820708464155907473311197577598663105281196879038287255474878839647099193999089173783898951085840465366960914747302237000342706944955537336440940096128941644982975377855785352329144800206372437476759067642007708758525943091015927888506803849466210609349681976089349689790689692759526580927797120308620029264999864234058438500352652781358793396626851410428170428505666136781487875529460268325604724538411885546037739205444250807403837776323449970439416904366025883486519012504312573451183330881548827387176786403604446370980677397969368330427226994952028594274598104658653359201446060357705407186834985527397669575085060816240256684990194249488268233810518428822444144167233258937992623441887719703343313927541063600666033198203426165406714369187913774678086091706738582145858514813826900500502418954971831766207653985016757515549275050132902065612165033883957670735610946558592852487239639861695606808602961218985274703426510541747728395850660609486657963282717996305789244641703158402350440650744364549430371048465499670408031431550908530182664105787696005220045269073310326666394177432675956960706965337301623432799178215864750113193214659695948278567506269219778253498285088864581214099058682222798624312394987361268213705401948501684877153882259215431095823944374187829873035648857537702305836451987215194183328766354716611284959617842021488843287397444676620897129211127734524480951935094641029657495745722318348719946196249236451091894985947581815286102305595914188277256096542695235361438212575661997624843067664429438932969255867386319625047711834780056622684045188475182979186881807688018843420143582306433989330852338996213701401490155060762602744574903038544807148371255598566073803864175373316529966145435054084046677924524078407598131390193523611935859331531832589997252742413984674456798510491982270859023822335985621237772130254842951064237854832496191607520291310292209467899233886059365901571844178121738339785220318992519514715167487293279910597106172940085797203952348262728806665388789589765957139261848637233638879616367092094515987495980625313654376951225468763828985706732607434816070593162658710717856233752257199679195411173853177893200880138933717358665167727046928399604585992448835780763626300336610091281137042715642757469811578025469185771261004731593278021717508978208352830117614313483349186901289332752315468770405593788208512243632548406933070378500726751581078727915444393979845827681956026495765809138296534800508461543158505453553850683380498050895562801276960547587177825813615411527865358625388122369718761799134179953402137172397744132053911269988463927089020246285035746164870144818398021558425081652792848301267078669108932164556820450340890381656617121878067154374861847481572271674345558031644746330169955473930981591191981209086873453993092541784314577843375771505211518915998027216447160364238769450449782615867971545483226588738253053416973056337863949463174291981013428605416993450133217873850507835480925325251090581436327930697256467885913877497778833554471305984606281193842905382628276761889407658246317656208801435947127786645417745140303026665714255873031894521576278117716535510946548543083936514472327906442132610767043249190906827131818494764885190129892363297468913782372416919370401391751186491981301024344434265836249888054401861311745475802477802944132400159581523351576046516737290043285316761028858735502260268394108178627044190618639277151304528799353131485293661717032161264830694455759093414478460551063778371776198388004991618746510857967121020288336762213995338748651692024402091514365146666986885866387249895092890798060730998183664223174941466074511212880367072461826929131254753805695149998387309649194993243609094794322608519064030498567652321195195030791453561798727272929805440663755338811545506707967061909261706971690663141180601063585894425840197893011578989396296592430090968697299813459724957952099656623244375601124648667474665294024842281854172242824124679051371199780447319612015725601262946619566950824582865231219296864783825714125944775719261420007248614589362684148791605549318338452282724543841750827104179116147790180788615002024451575266517985893775262823320924193546171421770903706777104222508963877537738451064599852484585970478413148320645688557024964153214934912092320224640089551434224608626669218903041265552352107377604479862104213593715724058476600427067496501896080077198810831975346015754707826622017913096281914123872307543745212175423016094873868615064389970242547912420018999530205140163429795378792069013771777138260651195449826171347487456351176433477792912547590349809486265709890372564848184461358904564524542418516568513671505756144707143437494820770862036018516753344425310871328461563665624579081566232524617238351680753085219064745065005124052130499349302686473578899304932853742508561112923015975980378135920932276888980217307922646963346520802648360966150159127159939147628398832298581880108489499739217398475925321218511466876442390547995373641490426385067735995199513311424629208692454109815657829673882767548021390152167205020784856009606315825691059698467045174003401718501761434061796768705906272988699906634275712455957759844973191755736871975410610546564970266920671377376284050794297761556576175462047619532916214579361688524851963631651565679012959882815140298541800909480860900798211579009080676560483104108044517794873095707224642922779318920565080856761619673332343933927776241864378978984890917670476211238644325173051348706489424326581005982670660195327384697859457717002222644712923076237174357549391980636597599449890577709273352209450917495939217625744537377488609247695028428212845576843365486252539322219004822411649100150890976182513780241299514711016738640426821046286186249480813791211384751976859545914214914121523145847497985276801533679069591229428229329058015839080019006384360946658641018906187104071856128482200399181780339997668129317190700647974044069693130388923653993894502257319571251573532561205908896594020573346049002237830348790990253184005511658294865871452369763419127771183262235150596565092439374511197561231381823041485866901244778066848254876632958173408141967141523052663076558434500642708529793644345963084080658896172626683880146965391746651144015356461583308449713340567075084710898695102879426001183716261460356544726945013861305317352024841438536442429465484379195806439210030713721617200555465288165414918282468430992707920148742464531529210325160837855450546425103178970530410323697246024078234378301841643162390531272372409037547889509059321277603158070987520264930976262987434441384900043013977301121440017352219410196118058669415498770719492516289470710095885273916466320270736086229792007715097513421780988810217098621408390639053877107486089741542281763100248265157765981562394175107290346534958078358028600130512603987323720733206444737141302511532021043266602340396844130456923940016698143334968665018328477012555055145039020635226052968578377115907269220987139692773593078533126375656145199924828114069665899077411616649581004753428251741773816107855285175851157551138186203126302282270376368499996722742479496580184127342317362290583575747487461210869465010163727927598215240102390915013746077432943431406984501232600867291903682233722106669839641109529245405231825801453822090238887257100740150514516683168805067718711643239039688382321611738272686067086083190788495132462534374261144839309669767816975039300815870988795047068398112715870466046010093883078138364193307312314135890967305521056128616833723131037247748096868473683914099982204342248614493022259731991362245876747837811939702529674610975974694242442042415743481147037052496691282885356554586037840015850368436736722845955032812752388050633255418968421895726358675730682666710008964793202144536866880340501345832152762046356098871475261893810789031029770175004252933077127237713337277338650210405950592804424317804693389710909609540577065572345944588549934658830643682753181059536659666635408926562352230507206951187149089077118377824172830250047807439305775470684468051950210789561429473705544806666898554370273313530843920626268502517490545163773446572138965653987405471836034514712120269556544234012518055422320547566428893643111214222750259507912056722227589918667847787008947071498007285953747977769276031347997251480646633710585023616414147169233468779717312406617338146872096937769808057980837125420673256341425116332303545709794173846265802567880772853690068539275554558857359698912630037173055852591619148321514630677069543683950629512877020063326698615433362731988864649967841137417625180436096241365348872995156567574146994446619534714968711782337467999271951856999430643753061469549390078482957469106503028899994606096242701474296678530457742665805396160777432153716830828959608925804260758573081293073881080590539177118310452602435923563034159721033212653009815974634782244934896818101634474068460206028490284258094577807360143436065688431824537207579133028792740217283475921812663272455217543147587868964923289179656113088755045415726678919804665048546723936454130886516195294505069039967381396633635261053966614790601403896651494990306015867036937800588257015455704273286266063248089265691335494919713649058372659302054718692922552743961740047890484018887720356480139903913294823022794653893144903080912459574772894615333658630882853280005274584742178721309576436991031593653643915057259849918547216681131155807619859584499143988964910678434439349861006487601512166149144098014742056235883536818350585645699769650922750840637623800006279835569854155446636370574670538584894661801277328767144436324930600226154169481439257113348964318586580493697346007849616421181361890857774183387065048394211738507417465609616851379578904449563887794682664512239083896846661398347692318192291784126457823032184614872150983714343957515993520753275983298034732054056805304235946420219430026187577354042412904754208974624270827354453234793358079480565724838099997690900473249557437662641944687701061370590335227980939789625107305177916659734597587886199461078977668193028112215523141092360375922569461795229122709120179244510848495241349248009715424625656225247374933852434026579270207810365931702233452022322102071022008666568511503674208436387055607934416847755489509105769364185177846536106850739608387492364720999647199345827413462294312075581842677350351498931317008355514883968435925630539978703135863782184561968292125057621264445423717179309010463161571187447156602386406756942967368104419209712787507981229363884493938632323651836426648590258528939242877223065166685090332533455947360832067681652781827707225166218908030989148355214667498532423210876177298764361230099377847760410315326421508082226221899720933439844703655399989949495290096190409897292711594603723755462773703867833466585011885701201867287477114081366243416976334739448742911333195737492382564899761530571837142215177396138671259410001416631312634555119039853400757433978960626883784691643880707660982891095001049245448684717080456338879625608578035608356027607985089514409040290025516845653537619191287408341992465459072995758972723768070642110379345177141485743549255558390127731568820772109167625615132978141364499063797582748234145848173770587305480494293570918728605059358314041039074594467136624191811719177485969364005856491401346759125706082690628262425165937079950362539527962756259679582203956596035426235101225038745575836997781304190668412280041030922956610138233568947566526132597851049726457611091442375796512380502589929070627912263123065750321769430154728636293172298022742156834461973140453757896584043545278608499254909241703959111594412354871747965512669236973233078645097852273614195678897608533187865860434032595408604985967339338655505605170793360735615092514206890437403542248288674311755423839931533132346396859746785299736401748259931664510169749605911350727458244245745854237997368697528375334358200202691886545714514040568417701084366644471434885282438647908492306486479216747174621523862925794611250953603871087844636343279356840191524335407309996877891344440616822922322993659005048254582018483277087241937595962122889998368489841673640641919185615886791231541266174644528883078398437298958206514429088857103559709465717535300648154077888916278493032338789075006493783510248047255561870322651168021662511593282706956561058647711479225603013577548407350178183828198915669868575006600434468147423114000546985139727954589362363902302274173168741229781716835081865524224563985380791835123262133484765937823918320302317665140220404439606722161017702980843864106557505894156813088782124765177623609025111044317290951927393211844373213342875031531736533128783181440862455198749779075859027490341443688162339787526555703701090637050565172466672782063666089888799242756314714439314276508110629459667007923929372900255863522889699637138645757591252316380789272450429639607043826573015687101058983432002278667034528918137972655232664176209873150117844140181689439971021317912518619010378009887330799044141296015261656248544280286936735197464960950880666521271928857081257469149714547942270027857283301178446962905840925989653608582069899360234484933617145818528919185705209757476783599187680251724784277467513989274828994411329535117092482121282952629982269386041900720851022016617481331811531773438345265173392755422750325407320747135652485557237682636530972940092142788521900132653999133888261297176490232444991060966852909519813488115686912181016987710130328194211579942299731301048561297846838129735146294029374730342643950187071344125126464931406134127884833671547646502904847885332526557355262752374892383546642776594200063336952994456471048597230613574081688549746150835588381912192417788590245478646364594745003293293041017682411308751582531536752265163787722100635756902577598744472684962446602257652459741509222163763555655215154957785633717174084619245116984961584900122212972246541930891980372021607285497433665360142736813864810547795924429432785083225942164532767262146586276017966910411949930235289656208743943913338913176121336221299896201521311894251455700441301683524604197999195546334470045260558659792422374394859291540248100009912464272203382489653861409111442641374148508151062815739816088454875795671303160408015338199260990527343116497337984875161536330538026029748517115937251483196848278027762302083575664606836991689163435016446541159644543031483934974117407826708022899493828206164923328980950295417719389411282158586804767288806473208842855211991511873574125663735271607652492860863078825029526872908841448051107170135816883038230304469030699718281928217837514154812707399348423648237568884127786052762837973578537005762456141199302703337109155509424709287415150984062427463983201597466234545166060956722865548454497785085556401466413320011441741218515447613095989790253990859920197053761543105905034372316230088833766208671324992459840093947034354738199624330688047397713093294586864989344342035024955853081207604607321754784922636363159859678018426296899908123937341405680051391488806099894766201321594882995573833137389959130030233498971016210887906149800048840424904861683467298128655375537077031138924538754525101350447915858569478354586190093795363742121829965996086005216850832973945674816335153084515404817213349292360482746022503028729302974667884925388141952564429990694480750781830339261779849073927282883098057037290099235217788916250210692741860916980618494031789554575038718235526564184682601025004767848548480008395743412636741023349324387401924455160334144718599684249953588232809396036254442292913891100235548277698967157867940684362337375754577729161934382671843671319663499079147088910009532115270117362296870891704558825408918307500065666143629394862148977798418684715180141823695859171183818771784854401811456816294402710290440950258267884614351792120297525021173004611405937969895641135819894455513132399307437545497866412859206918379565476612231855705070169917020601249835062234419098784896098341244933387472279735279811230755452929434802024830013614146487478210565603849753446339750950722106474951575623719927734074863538659943428056456542042937937932277861342931202107990315333548838873576016591928520898176665408470916183912449418782882485059323781784090460461383806916108031843814391171726970970203278795481545517196129607257484998692409219597585537183987132943087259213882006688629539965644550954179445269850199283959311069314493762386954297499462211525134741929095685168646888577526082408916561197915394793983881658839249041756341322725667087507180586314345275599953707982433659863455099165460374482400518299571617699652797921731813444524448082743017913592061981865069488213788889191496560165055983471293740723339842267439208496777159966494295701983674222943463477920618019619396427852060036162631500591869151868902295034639059502430105548383344665072628665199281272646805782469591212640419248219850144493836449096812569380851066331839132338063978971127755812370093898860917283687303620202179458215784390552720783566585401883364252567723292451590138539278843934851086179417653934477401642313913027307327814564757238212390155427248794142579521745729433019436106403420680945459981237981252975358796050615450146092054214179974719127272453378868776253846351172162234396507030736359312414263880192156891193512288545388431460028145539574104824839514763072656644489110206165515336848607054099085042309922794591398694905529615726954561894420564957657505979901508558183513651005759000404301341387195311616878301748879215401070898379431292483423594502110559577003480338560446989454767124850718259028785633847362484076026699264436461002299957262213094106261930175594324268981271930796408361443068717565617566250874672650150399487092707194639939119461126775247696752307664069071384981611922424836342053802895040956916973153214567384660458140888816927857708377572998834846410149147720857812594962363030377110927870302671483436897517914519517978951023470234565373354265866535965262637960130768417391815158513114167740158463755919261162732250794283711753802077465955952640834616768166902271666780473455466004310637387805989938905944721581898812822371166370814883710475451317061958101383428951852184745670730615907531298158576854774778766891782981192426808960153234436365505857608218637187621433575369803907794765844755563750647770648980499263494776413703563172784795702788359114052040494170626536808701221166064373606193158206195230878823265811273229220701725085088447417879101192814374016331117037249877178934523907449270158980354065482697378929544772780493823305623832026970934878784296479200793897044997460151714748564066441577057628373420097122097508416526666757743189081974176453191148003773927717071175158452510374652655164016710631201698170766583588507957592240365889867566636193761899143708876869264414221850355276580386957628849813643916638245448436800779684412810654493132106869511966341776671894633077246700519542597961460099045102327581581229904318204369037314216018816829787213507626677698965736989975453954081706032016097460965573265516251739247621395509862085532928483741338418826559281736389215289226491381004535810445379048940030818098891687079443514162403209101200932066967680484387975248197166873173326348235387812574543729503602992608307350318946407026562880909324289786760739035603373017823889918754026440950445251502504107856964990125681491137941022744680953177970392195002345029299689865330313176625970495154506944615140275745802290393252848695790363376690349680036929190837510253469854996542111113835568657326226102629187823629484637948902938790002734223838976812668947483004196550898192252288253903283630147562815886287218734079500883218755048310008209486141439617103790297538049354474573495613794527742293673854928193850728541144231065071732559472750011024951418961497281496299112256233307639819405029329585152686866406635171025362942270870498731834853267746349964144169500083867933432630178363861850147020359566683768095298585234185739690767036358949928009387274570408709342599586718958238956322888883239503806267794256103521343230920942023157018616184933735658886326801952419562950037209449215635268308279818644889254327813164666455026650480620339898254679150931282996422729157216379685580944991633863955877100383051401924850322861356339437560602013469204064218447181526494086414298362984407893108602947638253333940721592020251254131396949488664566485587409739580240368357896916529797118116747391796662358956327536922414929226733881077067677483847803527777945430346589748621008606801438365914633458191230725152958990297634003608447687039608090212008499094478473854483881408929254055481406427538286739519389614575045180621641790932048861794765623172703423323423508845826297245301650052545319332129052110112385427448759173931073573374675611710523405644997346236973489377042944044083329334979668929718521721868395881941328400414188325274747770770660006538531951101848305183058460565405182248151358617632488876921801387370396588062547923756447771921180696703006976365333291842200346386379837851429199108594730706014893348705204123076423750807856432778281264616277444750553938190996486960788262467516931724418647753683661889481586346710148427411727369998393187737669349144845282352663400847735125060019198279067271624526303637300530263825260350324975464554957460032091120817586495952673558199855283360300298849378454060674491442506743487323245489180811095661946017522534661196466017515267565786332190755954141659420809644772552775432729972184815715000591179598051846496949487734370595399144743239096916395606669800397357090814211626667072985076922573221222734828173547392010802874492328094999549810260686367797743517181852467762266079032234207890409127101316168019711114548257915818605524021533196841086745087751515112849164681736768623001196272461617521374620720915935509021504430582764057992887228376045334348200581277772490584985076469075613339433072945733771043579944123786055374368076304208931576754383864404549354579037913616299073155150089224408729134363101009464466291182072387362870378197032788185010885211045355517561575904778792977520100420113920402678185090451202197868641987688008157933175879333667306520464199938337881859509564818381133064572942371182200980303790357681294282466665136954344090322264086237229182411415735970648517136335676555367679177321476996939558518785423812681344821720568207229586458333057884152348667251549042153669441304921705465297288051570061607984105328188419795642654106610066300628352442951375101396533755850889112733305536930015395568942418614419860076784074450112718066607650748816709191496113519277386189979625881484651411784280876577589153289040074613507993448076949101532076412400826788970029222907715756387138886544891668365444742168259131149164064968692010794267663999141118981334741555239587376095580112940388416168987265411940113898368485868589226093618342612691647601139295535584619760417149366281891945991948369714544825619618523221880051919715897706261194263859625179515515372648253110930274901252848636218314081493508693402789917598075403978756728521367322798808430711398736537994474033969907879952221797224920394307722929984425776501163244080389612149134226449675355890497805871887847760638130113418869430230320473365314650847512720236622194304635650144787797208473931875313712809009709439247061462958911022583172369802764010838181093066390831800131509100498572149488010974564456784019526576956639338502181957535720412052342430000788689417833364029671497126789797668884151135825672564990739350384123770910353668783788405660935464219241190359972984578167059720592528499690122630019007995296814735037703549868407389897291349283697911374459719801526203029056987776452504611103365816346810044914647683852593202551067079939749437123164539488271176359463645573553830641880579369023221052982639026752058705149831490535340035929946331623542258773079743433618201642519086785227942669825020630257446250537162966399651235364969621625596505961376770580095908746414970081599519015374994462041842310553354030100285833795330866144194585106338192058920941101030849040318354509870436973569792596664071569232159210207754673426203404230455813480387643314314542541452288984746745407665607749625104040813752588863120332794775184754389648839216966992911363934607634380644854429415684314680771538747461261842105469712366430747055808883372218697518042455756360548012671984443772171267428323077705187829423329838944167727889234221390711908086547523476792625771597470784968695792871565601635529353269353878426179462059862158473546297048941039183690090290597119162241398745876917418541041342755794494429989234806487947717879668670868006123422263101592349073705670824005599957317047154268993713466482880514061093325083702842119600675963338379025408401004467804182118577145439491131292527553766080801165964596856035607352418989682279873203734486457777814166537547057524137035794261213944463049699190969998391119500310833783290275617171000747498770616644243406556263186459199338541315213899818336159521025145157938140767181424076171093621435480745641186420909016866574274374107361645151844447668370886119472795992822797404286744549640895332469240592471350139955343267589345369479607428450976180187681502515474224582486549762939168897454379967587644738142076962869949264069986952062167823156912226185550091308012712638572161871019614048650436972601817121301879729337819273583090701790924688594517245428564154883328820364890226805953492984247037894124020599279893796567509905123098968741225612349065599072599071315629634774373120194581590515480664962149173407059247532848630497984130109397373603163134889349591342395334298317156522951665915020468063682510921020619975252100886853868728107598973138317945472907258390251149189248655365278108080857729652344628335356611068481598154587969901214600751793344216035160667679081254236519233131308357024808071305445802999396146036228155853633717441790560415363870330743676352179708750880236856790854913552187550852120496970718615838051607708995728195612141224947969019325272229428910353347657723975529765005220346276587709453793831522025684796471201622631039672508476918479049979458733978047402686183818173321732236433027331837893162795461846395635248299269261827029734768688940037783881094781742380165047479504832999830264371097754216762407736067528123165285025839521410562221678188288424259289757677848425223139760724351492954892267252035156424794402537567621609603906177278463018054667088812102669459295009777769975952433852971257485660157760241484473373617760233372246161676270198112885592622442777568023050930469075794468523856012049963530403758042938140100645115810449223267199119557656250564762914428969530282098430895458874755460060472028443761707291199447714577055232817199174848425460796874187478038956353453479110602002510719523465495328643784295529985944899654495319365937274637899856191007689871636427053732479777027101628120236669536763292305012634899291125146538112598724941864577840546521141062737123631615382453213902493298313546550338755184809158377780412834763330855620515884208461117990365491359852535127755055945343261524668834214716332229428215731634186216519184682298552304072809070066394427914536693318509158093889757646947749478156443666294577460108065764444758022983856787498951847182976344890273245419870919807658807303773479081849699671212777398123551030902223157993572973269982013256480893852691810206155675428145331513885475203919410360099059511747068947052757252982343435063854104679358176264742800132214789240497561013740043560109269878739752525743416537160953641630691534091139612708908747183088081399540215844282044483908796815250921729806054093621250407739043037028435001432493613903308666413260316062749706142111046696801923479045181442751956674333284572320853461906139853236826658598474681670809550542191950826990840651173141027944300754227856623696395831438834235532567079432283457699718644017381005114213947695627478588025447240313055213710205630114119723344635473078178585823568647239621067734791778235527245769744933902732997440834707590599044417309442513849477342122171042038144806746083667590089273743865681667193742792035740515474878463874265503642542044994127220443435272441127111991415220660147469779735644331773685535286612037166284530369112307810249529573728661199795187356242379889913665956016925510367573172452174686085884028199486752948702448566816265348951334967106584982892142112576767805219749040441060296424737243540775373074873732690973948765695818890440497364496217154480215460711540021800102420097238422283082534630481676069750271599788541117249739483300583900018539639985381750621274610433317148538481437991910865542602074222061218107532513530431382310788987005160298598062982725153503481781469423047860314661844905040811932303860771165199762521850420305295849916809620711146675898499931976474586709038934128044996749780903513761339500839774495438006825113065203861469872876371455400639562445876593011786235126502773716106924071462027268462140632810347069434914106780092139137154383464965833369252779438657771524327929270381238568957295843075130378015210974705557726911163629916088646594987979457967946636161224759479803940053119016380850123153735915049111896810602841611447830933698388881656553001630016890408115950337607042420569476163323232518654673285982694883212687525973627531580234726357158978142133931019881967886390322204040246192570647268638790025940245988688277917743580833755494192976247648073536135709744888284592664651148861643571912869882544313789775710733230275697599828923928617075163682394571726422580695538902089076707286779938924521848173715532869593088086819965729558134637737592176627675034493782674362823293460626032969996119423871659423702100836066442323289728771551837760301613844095685715853379133316599118865250701495099252507834643305766459361227725444369237028007114106400958349113258851792979821458688563651222921767631749673969384727575827773741346971840888885019638291896732629460245867046202612047533442085676257644239683864321442186113972117224632924155631950048665666503670505164841334881673332026343442027168965896105634628682388401556365728583168284737157342585558889406926520157569052916042743985350245714363331793393169209161723965165759101132246426510313446534181532559695205479309475826724295772894964861615238826503388203434251464711158936316568202531233964693413868834564881864593831175162148585904966512198182213027272571110314654667955392279234847817467981305393257611467105923725975616080274479643536883304398237131969069164603091814772422349658512045385095592365097395888541888999502842724423620604506909224874956279405328581607881864125506378774663717692363634226469219390865981340124163181886568574050439810517169199275962885782573674890157725105322306895852199346859945505844448643011210358563712631572428266644107489129159386127891455202230112534721148229764868227886262428831745718663447642604871076798767204349230127269858078954357866872819288983281507257158126448292763049524928833035258290872865030526121028165719304971667980068012906316646502402373751454555442519787312746491616319450302215509474782925356526423279297008235456483153352065919619981995343058681633114801664697477175183626139102177141034654907635114106397989896274269066886278136021017618582128536966661196175607054039901599220720952687551981694992374542207879267621741788413877888096835494078727788138246804369524350770311510690432430884878351873394856318429089448795513224323451664565854013714039744441044532285670133043590027237906988875985927970162854495306631952943100436266267205477036259695649985069214974037316760408489832382660719453008877480963037992951159586371365091585153264967187406260631318253113509248228164513847665827231056966657248272562422708064206947557655370602533605675574899419715122249941064651426631321684126396903176826077669088069488772951532499193275970567159847257334871965470488328875938373266113433728444064820047681120149273810188808085117295636803564650918640266080675771166524896365657487163956975058667233408170172508545650592169002605012320767623711160820615816572122093126652634962213356913362944876107337340991394981208747155303010811693439941822912140280403218709295404710311585317414005856880018221356242904224165426764677149238055641247095919964616277758334548465449889364035700795065369526653192054100025740455982767770715098066683608594534438357693975990521019197989180626716670458719224487410120742722970554476456191046415120975433600025381383551552794410157848748290896961698074330590888236915403987313071709939559852005318571026175975232006497078581521660341344133763914820777841092161518541909913919464600073639846638610549160304991048199536725735652510598250647025759316766251276450108998187609887915516691951924000970720432552839206775719485833845952412646497843151737493309837284888889092991880458967756224291519299487611533445533587516560408841548980024338110752709319008979206104353903031320057241664200104236593510825174724830810137732788873603654333922602188901099157342597398241154795099003350844122801673882783049956793369268232961679428802130737795221108431225231631231631314395938493103584710592659354829806141606500424078427152420223644742180185466433827553576807818375887475033184743811687821568568360879137202986846780837421628516477842800931949566518156703123893283198414144015970788329105926763563164640673735806994487777787584758873573984051269963287777138086575610984137608167577904167891651173115336443244449652777482701255420136691945765242709158739880296656906148221758502867993135042540884318007287041334379545198699489311728999928367199612881650715005607710140468905928409847883536065828095740948254627668377368916984180054299162426629315288212685479942009346077778362643225642087226409606493807880547180660894179480108738726553464113877015916159911361896475607822331096169102744416626790338862444103230028122959326588601549043191999179143064968072124143463405965059010289053435622122677082392955424629989954787784661871455773143441717396016965877477119933140362968816485362782790643297223130063938164503588852953329761473184434423881461580687417420062618210482029747528205183545975081711501046263277391738450624851379174478498906773815297835603056050862422032841478636169799890992285789715190210555373341393136455727277632855147687209157697826482447287615901226947712398612508537730215436664113623054102569367191980738032977159900430686990920940390345515213440359229582671202163787034590713996496576647484943826038114885833558889546088586075414864539898348554773215271831874666075000358834400503083185003338484883737972901540328032627857579576230031535728383020638248370895966012256870271265257680075191477420548151752873377015823374318899715752134464903379735337595678616790258643598010841664453335853721066205844443549909664912266654956672715123276191260926290034698839624354307240231626785697714099239492358255256718161760487272763683453387045651950840133105726836288878097244195608829006469702624748873775331787756081475292591311094073097012212276384166747645457411429199634710330762074656886703888652611546990996287439899118015127239885266077364056342266120537743536788270812994179097361874867254484439697461283335996363679925485489159404486747806119320436519031856341932300622387922369347899512573843363277104732910115495776554288491070496687767229987094886880564703192458384867987663794695441652786072916277687553850523057811143567172579285200902820381563622230460819644797281883766461981383272518766521807001943487859277405494181465341731546487370915467162095993352574367165644833843108506223962759100290656613049626028233995463157534266268560789561876014502531422920616830891315004397506947767787334856291235168427649683047146701766552466194844001650543882168334620719262604170599014210186687681647362444324489460988830388894466057814050534750708507524261428506623159518792677948077161448680135755154090315804745753617564158489834245720249038187954305246762243294269559488265789834066004660585706479254246213102816112258434387384669512517956449822431301099333354954923611466442322945803200444124333477631985764792723184942000877194556538108596214497695682668339215168075629459503764768330578824151209546621752327743408736133866875811748609484788752880656518295069286622235259950996386565354898974714744081583431504601188758738478281037120224486138371601115607099191645065015082162966708399737561775131193471797309467010869380867823303128027416273164269418690136622804905951615297328132496935005674940114278782449221218048154306716350735084919032078976892377195613991574394418847203722875206991516459362273144369730363077526323984063745454275649847495059687559962635481774285580680937443723495367444419113076974106245501735670976983151437035517061734467059552653152954161808545255210084697103788484802427251373793653044568683892120050366855916579556558839607847411189296313187862171514178434073043551468227850592313591031674165059109114088274706482357765615778549630766870734750828485443184885380493401945953813543366405301670383838837375201292815196034124109701695373720700479924009311056922365001700372357914931595013248543407328199552423018866745509943878472614105446245363273508373977142649895698025598193948085861342948359127384315770502316599460639305737148339062822925449028034437813029376628819152714480915288697622056638124645123165241624383506024201508906545348022504910995605972312238779491788865299226493907569753450397201283854233351686462878848862607484877833328951057679843926403765786483155585500143476220581612982185691006008304343320576412276848915287343232573155673317936140589932682897229033502575074153215123991175123756593387363054216519367677935033929928026632028444608538889927372227059479528504837069262619721750353456269571736146928933337291658395445011056587255063100486927248460998146471997710504651921025209595878028110613457716171346783420563586409305901783112150094242630873080759473001768057615682905674520097366713580440490711310596465646802808733726715564310257898985546019721862604933862923007325223499101457696193472354256365916137597215357466907339017532404198866791500700838524492544321476593710117660697832143740040799239323128973309605184065074399817898349573276743026637536232192515682921046779233897868275304111602200273308212307203676758005346532741398271578102623251262554012180596635288013517208462042026462991795102354348520301166974100166389298451293596864232671281558043964263080158965186654097874843301572617924757458659048401969019031383430978458130317233732013552654977084492906649930166971687927328701186209946234054737920196306749928367094386727440303969404502429961734275209375767257434998152242280750896269376511735212529131380068988598020534622546408429357173472223319450375473027509864565553912606088701755054360082975255189710992477892292825404466723182465790269412027207301398340546217708432046943249145237657758207015995551521569142386951822097393850721412131190518856761887877315306114519916691904925651880579866842250509898477398285515640433461624315318356651156342241968875952995879097438271673050820774407977669982926010181737717282874898469003771199184360496684604241300635662786384503188038347287499671755489329152914516041234390260012808258423062360050198376500812401899098728165786273548777588014867453279003545616837870537688774730419324367703590285313682179500832941123276729615025441116210716559727767385229953603170086381564386534191282830537400244780838477066587281236806918423074459561098016695074850892906111605307661674555570136545526509612954636466351332657338569980093755904909687539850974212287658842768167089795695922203047660284755337348276802782047066811236832391711032769549917166687538880214839668550586044008838630861818529987306342768822307666450571837521468245779360618536204856216944265098581688906351264090101608842606436137334472132088380540877050639279095101771938103780296302759404176596745180711229493098571540695526277883588661886259622443720021924690037803172891825360527151376334882309372806113301566161904667559808318195290853064911268110523145225833229161339257491708106163858697564515402270879482891153482787040082124269008407470335257683924034908926496774100021223538966088152493643056495027726782297974920278995253421404334998706148593615229223073622947635374636742120768114698214992471558605957642669069176501472537741569898827935320184141615719752126224718241103731124416855672170545855704766425292657408609433299520494468775260865266790466188181720097065800543304456207672201048069437036522239294067746480643652608690651807392045925285324842664116926053208118752059566669778612834771027352087981086506422605810898422486110278738508859424764789403758675908348734458103882345341618090869302457113533250478022094925866454470191994624230653482771908795766353865481849280159792123419573156856846251645890182278180469901387754753654085769621594064806009927965335452991367434648160448750421067505080701987079905883207641926544215934889828977070491195002084071474462289643971097219207794782222937220935310760921781196973416318533601725193652974810711938971357221501000724717793311287199859789095031628120114900999495134202215334875330033458984287188255256304835853229803902378761268484732541960181654828635856867638923509263973753676497606056207377488025858875412959867199021012388913436705370799224331342035632325037731672853798989669761835483885739150230794436247534951698229061864235757221268019527964218854170855626487598113726423784673260507379687907958355627784854109731960251814265062777772422913022461875071044341879447321627833666366262307992605513195763705914627609379818444245701674237235108842145812441396944673945099951639380512558102663716334575856720876653297259706855817944955849647133759821129409962782327006579050431706883876551531921057353859432276631103829379953359425744857591490520737233544316138173663780421181594919460858115014678588412125790220642313493312127936196273678081514889524262151320645988712715391294424366412546588757442468622569107365358347238543133023611929928952770502348321454114320036741359704973112676681011828257575298898138420323594635005850860913370867920624886236152905566750175212007712150501545633534664237195983614434274882233236394156342064079509414850203851170656411783557635805804072270110368883229532906785471575064779412924650901976877053493535555497658728107407879524516990336816629041638973335955721388042157992142251451120766864252594197502590710556465617797733115760223163454640139347891105464219917400184870487446186904737756606777882285374142411019850636930920482314650676272830069874874190778670199173728628758347098758189375298402045547405241448137960968965368971637772018167608725412150096344375034688938392459763413858077907325175274079157182411717552514638308620770266317055176400040338414454902035787484746265936074835591051897717795478680772617092909364554307769593071290138127137469438168772332747223259267413295596159842776573804660111682211244952625624896825086158820415836406724027531622881676535672433804650979725756344779513685905706870215215491148578038102263506149410670079159496231419436140201839433830306844134763230653900939385579114637543069996912433630302845038528335032097106507814648965492137839300110082017122517280402556832931058257162794591511416366387434738557329546692422412631163790403481804047624536521434568224623948195228731905902177734192068205698152374693656553164497811182514592821743124322982284080852167714475350294081244702161293026073097493366747810204880310866267582975686675064214683784440410711410158112021302745158737231693062492431359136206901499624710794184793622064375067471049131784922224938566169803241836254525081003097168350390992481563515405792620762171025399592180830525515294929118461322972822755825445388278490505202338438873402153546480134463827163380891132182454723119567449477934090650080269657581910130767558646530788039323449392851654554025948679692708855948215811143659156232711292204245260941885957385981576600221290088466464153863794102793019332425179757297302939941913193210793124265739120608224261633839675061297910909038950803758904643398939385621442355334610694643251940972385318138756660880227948284905268005153891138822025265716667042860041513811841165719863328911972858145727280049055790086456086887011469567578594864613369732854331009983060843515547767252487739312591122703681000597173841972535838652643216686868559478204671783654770563997304633333528807449110530809704329331681806732933373122706737437689163301826921870280732394844925834056471909646530635514559490005411029655279339406727969272162087281118792111095798101150314621394042396561469359604173472411674425405242945017961293306428977293561480993714880026860998541438417630197875163891735931738296888922314437376974144835152185973043671515085103238043798537841685739572463213080030026426308550519415361445324254239774207679466523507505112334653868935681771132947462848668882024503561139925047828463354085935442584884399108830360968158795067004081119331828815610437426097424165277567497381920075982918627577286386681165382869872707746549389140997028711179937882462700110384174779135940801367026187935250980427087766003412578001589016565871993313928519777671712660556400700800363972248243271499060632911738259728011094369323668511549903070311695040915482863021610313127392586450280805632781529440899452212910308486472202300857112418421038125227152214285839355855101162448267051227219470757003964956230529264952453380401503368204398278678774651775744143544113648348348922124208295920845597069730682714046457707889734441291917308106130917370780180589333579267633927523737225810890731146933347690304481615307968583828720511896083981670306499922322542678501265353352431693518207825606898963863399715845691960736583984668929909096903081409345356271380818460191623117935652444008326647811471123019177074517810383804256058504199447561199769876924364073458628434075614779538399964331112250273668311014048558620211029554698577363937256523683804902876028733872054694377192714501998131970397821226723071917604986295916801363532176554510703584765244638113455730951340240514557201103741783981785719316209779187826743640544526647167267543483004040383829131568713910480304837841543477686371738810483325178240611253246517427774357990753390819985830396954920133131393265730466283755655219521760082435231262823589168321164781203692492186409961556303559087717613195366752758430974199681660761565434688098520455405981564799243847449417058714824175330388763235497109860963898819125453801293515016709669109148380715052826715161479060672774677107338389769504782918034011805757960328658703830604596169288454613549369818858720854223947488267605344445730213342153693081122651084284054051666663140498062184884166535175010995512912491236735732006778938955981745127040201358231826608817734948795648694819690432394189962451934501189665058886954692164440463273711846505587367007433142967044304525273122585571121618404964007445500605642304350571850578169608950354228544819591274955124998832074079514718801574619927474869349945690124953555744045874612443731876584402327125947879761349777898929015231936741479070326860535779336785012291546363973077785596728001575498788670129475366880296098585889873516058109817849686619700128050469240197992333401723453880510553508988018703883239785803425067590034843143491002729503809339244428457126590042573439205098081383583848190504654921083844083930466842731771442579409872306117033266776982918592812390683382178475985009126871997239033729145758572344233995143146941217213634145971348683316801326015983464350847756264772609710527577658367878213158060796972074198335510364594597717929831439077436938291731068016986777592592768666652526373686697342851665903702621232601768595149409657799659024089929024818437287987268013541722603917913463427016443857375080628291295192058104885676409341789308628782734880667513279886263433889598870384253618100960083654847092660132420702327780652302859054240712098859696512987894145604855304591684352253120552056076205336306121027638114671727303741053408365330923371978942843346351840185212459648009921088671662637022458178372806034758477853661665941394408213180280901698039904567367536442402872232056303665175355765767972899116043882357747265509995037973709217889017986701012761883445237920601718842468163723432019675778019324462671307489875002409540708840134424980592897105265860922025515745640156778220028985411318577274556338270740652346893804026855233611056090554321101231714251646091544728064102180005480680461112959578241188541594799076875073879546753314348692153952647134053407311819722532936446609512540538696895438365303845555691868133182483746922962769393290242470708409770204080912908094732710685055740198869804520426764341059389068982389182040870084140429094738666081425253158459718182973022073473767207819613891451544258987849154337328867566261285696787528868710667055070812090564675878443214238107945599989464855969584087881705615753036652940758964776414145968807116425769729559077146499724125004923084068837108416105474669376294538542105163142593052570260091567928823275739282921187567871381400399871779018788310852227827826656041548822621428498332783848564017086857881418456862918453354833096348938993545520795690633549835837536283770713391386098938269663917256226928311430050210255912387097391695154126918022058816646596990543711464623391543546391159954245719315164852612020200475106474317129243953736263275396845404430749252975000701472945023554884423851172369197721552200085722169597278411802460826159868443593731239784695430662138336023801885976181058347043229625059045904532520636165064275889217118949747888752649143468631918837428673733140784150467476905501353282053884618476219379912975081812094285646055008080881043241920207772371033035567054773737803811647785880089272876783281447144846682239516057863835058065111766141191219517698882551640332294317506498291337652383370418909183904937481304766472984852829913477028043645438001399292774147524478253518997010035475131287203284580083003217223991477480915313867082932742756051236399092201645919053652042623441354134762901616327060957917987172812040870533530323129097216745938110568595289537133613422409243094550167126954339590033773923428733329799714912466680520697798543874357245835884669544986089201309811022191618100988247484074108725516731982048532235417734176638143369702955427756839124868460794673731925664320418951053350877167746344209263181981035123079510781194191652193985017398049865343049464311460226945700103165494840027795594447272053229508491453529098657751768863201612974800713411204912658791210852107687199466837461817008205420730917637184836105060397726544767779498041203279900811049073084832818659580824082153263874558264886013066509747963891876499018622116714321697102324526696989546103713670969935998602912474833363850562743944121677874554415518058779383197223999630522322029730703359011314833799697737177582825012554508607955649134700566794849137556972439430488652480789197733495864802068879033169759918437381874184181594749319446847449386577955175622828039088532119752757052367780988661721093417774366583482085633313272491566033023184710684418064982948246433298053090784903204128565269704506654995282363568811684482956991583475334048678495787955683368396451098569183045678903936117472063696865829381013753544208247878165878804287353968168436765223456100877022868365139435564097989658247981468110911879101449811431325148702077573687253157762049231968027784429669428761143672862095647558103082423832711383067201743219272224772685181224787653130729301941865916888878602045740149286719571766086226565229726264718879036758133792394578884917507080435857665758336828283565525122538982191369447895976024168866883893425556903776246507428563160321699405032870023989161001351169198291164231238247895870816085655475656657416164423473977633626738752866804515708232977866504442891982193447751773732029509375247731336059479883512916393370875066057350606435045769096379195089062095875711230327925639407867805023525263796401491212627864231026010839253917658646778019781520124089540595721757944048109729810557988956129112246394564168048752199133741351849075895503560630478566955728095380595577892229876565127564005066670245930794564101851606008246814980355194947698358998317957592775624646877213730133799760215555787273289033185011933997917869119382458432185892718965762083350988872357667724486361239134588607953032490228372915799265710693680457130722827745545702715828130563532437474842565202363085923191013640427795771310723761281702767894017511487769453143180628059390118644064513030604081863052091425242066046032050063327027591445969585904616056772559371078380422676367008916474702783431883472062550741264663399632604928098682095078072580547913803018990716182412031903836219478146834748040942438854611309773993152250245531791768480950549871122823217148993547003064821827673670854795030507376486518599158044468964623180151129094824018930997755132581349471207560321133448743506933780874739021366511640480294236649788434714810882703786444086094751043910842728711807788069028566537774078146269567836082929154556100201104574982744770276463175278985126267982381905315639882542043763352962886494941549828215598200218226445358975067048687752391572281774190239777586862996670509585336950350844068908738268407094453832091097050661667535575091677365214880529768746349477879602250190913199967968063767655275441723868852961973759082815676091442973206412498440047105869487493001954017731810778228610497868973481638221762966808239592568221185532157655903965485514451839783446371153849400163169288041010687388028307881467661864662024894916233845140267835208292796014023803614292744129048552620415651503019494188645787080104526184339294728580825054028633787891037182177263697652204520202202131874671820941126698231062485799508050813867917850257475903251466202709424254361471675674000571848197953796471962437287578260328184170358871258261286997662533091272493770179594954286087196671103184884699150308311153192138148336826000468495151559949987751014852641208612118844217453605080553490166274593796682559282642970898763347745995447204212123973018253441813533508126254876422875370877431192676048098540266862698390891019417600597760162375081014085242247577327325479203493031712313310243146002330077439255343794305782158973089210583001818038878388483324821297051935520800743297534227279030469361083416574050367192630792366313881710256457576339152376638561608958385792173588673133889547563774665334194611317235726369708893308733477773218528746148857063307171156266754798140955247232871690162525800423926561722002716140470801899151233595185136064602941853171650179431057853215383696958275490506785695391064655480322763246000769204244752509071128687743803767198813142803464969692239695491431921315424588115384235309384456677650735044970502403360778428590083522870169663427982231780868150685717441909426143876611482464257389129039515644142475894037968736296422167446491748781236415805340112036171726589736542627593397366397077954367245442006999420572070414049093770251285212500990253550679146869776082075320136922466855355866371264412242097233476604580162078626135160147513768674576215097155821504438475289157372479995665412712704349116099561102229407489213013744266387027029380615781432267314110096817173615293695500398090973934088066354653810586027820857554429003883392363456648856814629747771528901434360270491942508216294927086334458574728515954262395406119418675892824254956381365038858794922229856057993871109988431577998241172308612512641269804260605520445046874486978701379151707194457238767775385066979285502345368972657169017503184049377083378981879758338485079917818958543905021695016214525324172219855421813175777050719353381408194097604703261044784484707537457388646736130252063983046230026224591621535789054886020900814904447092490986408820214973867762539654693812649969754658200697519628055000361262614856101409100986995675929259564248669364728172619548748776995897311920267751565469247773822452672455849790519964003510134037778974886163501440065723611543645542701427709381298174761657842009142760130673327450422354173993850657447136909988852854570668529294988529725567350601990179947209911497579718106877162222004653079272093220642320532141902495874369066716897244319156492907829081749863479209730167054254929816043700178455408071929687204074691393467464599335403871003851492810950091109803364581770251225489247761742404505621962645595082191870376583089885026704902853626688848897097712837505837475829431823586490230389208593016160879112151796284434972704056379511533452886440091278916412813948281977442554489075343251713723540818516074890861624513831169677225091220363725554260450359326175862018178703707002624832582618191983900471032070847615678190291602291290240138620819262323715262897049418541330397556102084982172718928800485168311234162043179106653976377879414916817037872623300729620460490485479966207071732642070158969427296536353736615591022172008080294683277653771508885391375486763663741752407026869727481805548165341132619261630440895588848185959672772626750737074712875897531755206125915811208113347659062923144835969624981390448205476315459712458453694829125320537720887276677787039011054123056970775775852431213517580646109709878915992540653461295423985714135144551186581611289006494864229375069876916853540246585253680960198531031216635313843666867315518248018464491404615521552128775066787144558344480291311402453449255181483024194683642183394209796234792353588341724727854604150799589964605035776416705432744131199712582710569883316768955272209718027708867793573827641766090554918522835159169134702624572955223081258857965514114059674867131183177787010125784305192238441737079648380364879761661022951961639294780416745827715305782456213584458664971802248034155133298251409930782665705322389820002143938819338585443558352227425685740535382478543643976271948899224242588552825214165550365024826310512314159947110270809566859627615184541629046435625681772380221177533044388866958700568256514305082908218733778441846040906583731500198477568673148056336205152794061689825128118831606051325771858601065880416345280313681311927197809019598641297892585401277675270051992363535234113685413033089241775824633079034461207106776573243172772004463087017544930034008315162137664535285441171674183765206894010393564075322391281491402710206448402448230969708135406768297163253635800932449185738244381385599536005582910613421458670044913056248996012568745971475883791253843018441352244529859995628099135312813022642867330187886039201498839237297768594895577324952131561661237471084487853270922710499521818753249127117160090725601473841556091622795305817052886743840756608168917444556671336424968560811645677609730066609761102045138931585119247093828676955761703098886034199314720816909325346366642530647217998607494474749877638811274160605813496916588423614900635764350942499963127462385525891878122145054794800768164216200912865389095476067538803418437186580890575526989000491429233352941385741452578448441134610083068217074408637699581682903945010185637497069926928516908073292557765992706484784677036749257014744418858521510343589577450342796814329427034618240137734993098146475513663575858000840633993430552957006458141018223812732230007289025803083854639125395523788566859953538867063568106002638307451898469850829208609102857497581213798513882087790249353824077484938231434451297198171220534256920359562284344534114114171360405937526845567614405402399275827679960276197085615686596630814774262418033481065682616890024523683111204647234924517350587164108063310405587139756441748168167253093977094708737966847023198461376858161441517070816081815044969543436605349809379982275414524354661996767125265363886511968919115722943859156593591242150537480953782557241741187751280260843511141557157448180948116564431947310393373186701108461081448531092240122160462104789732637561255809071002054636903301336287012140477955043626799437866408448043028314335456470361839068645033719518903872265220773206471196346412568519870828263131835135526048232692062354511468045693475468878759356008341488640146741970604466632834539873114664213744486356668727763230811155489990125986140306752085812861357855860711421792564103381673946582222985535095304937484055047037119813603822228739450021973082141804184602311947836399390637430636052628645226762901719640706575628293992001530512205692299432696522871476918532269301079645875031252658768385230630291413296559284766030762914975274018268398176861851164174574243306416622402631915239304267361203188990804364279257756737139846055339516165423041347745082492888549541551079663553296807092257775379539884897242678262759543861271332436918966965811959824291345555190139789338463353822847749128073198582137195568352893453494403216140513589938600717622985786818264107673805364972497222337767162601275936686617019734209531583151289600905386720984797626665813566749943785571913590884849626898506434684314232011026669571273248033608327261030102976598223613996406590372616817779600805908522798489751334391169132336212698283586988486884750055659360443797630814514983088141791537702392965626360084563704336523391602019027389817536870923901951570433854010432315070622866769030092331546044953511252638437128491873854175716151233131268289817486551374035750013050062212212709343333099150513049812641132357907176106199237805997294218496134262254879591103750856189021660227167954650015638479404080849318676998747045659880300869829655597032574624614234045109176765360851117240550044538865484261446377960542791671122187928845384801316298927278105851120954341240119042644809902547842852742846592985895879126159361617521102688438867212374320137343805983293495637970758721092184396899453629033520577425693529118018415956516290371106831889517115584638764913459106161927818596716598441393308676231587802837401524338036059268943916793185899925297971795553836934972682924710841578757000090538302460978001079802710229639583061264923764427401012109529164881248782467382294989868226156227767674121636849825586956053593398945389767483681210062000915966849202231867720191376871197079510064765093404252378532614630362810652669529333637681059371042339384803960405930709421224250736629094334344378354857395393073329231186194898018557475596230936737753137327442959453120976909216767852563076741043980086543951259005303648550764378839262002612273774043583378399680090560150754691538545428062800153663095350920038399089168026064476109627017793118711661745190871008476639625179035241415471223989622150552469487004265157247064941585142053424416158289808249733520527395885878910394092888914457242758718689912946956568907723209481481665681207677035565764729805442797483049118561309810382209884152705076065609216311775560697715993934402063636760926271342906210363847464073271561221563138751120114205248194426294651626533558724547322275662934911707835567384342409196351388755751302825173068553624257435513452035946998569591589736531386308035122591032477667011147087274749662624447777821548292255440431154476242982841889645086189339512377041490870122840911852404478249279764407299394943467675699911233503771606785002164802336760111911609296673364193352142835407104572588643205181799021779949554284738383790361659072255144888638538243477683059011133404644438355936366806360651383653246850065702894171200915097547879848613858351067238817086187748457273149355528155542134214088747084542686010501457941551913589546290244783965088376972096634589781419783754886427557144460247337789942165430460044506209783205512564886324329889264609545389862272721258483465256969952638844597503453137231989411206952873399307235270074984081125525634263101883374819786209866836838074177684936589305554180201496540993991593636046825262425652577393355464687055331027384172416080635461271544188489012598537196059255988381808046716993141144877676262429723718696754292222460615208975578005786922443026327892600952502626199288409681982709064073472085001071312693415475512720780949631347686435841269074792858671654941156877000245044720324193520124305876231537764214451801544068249450922892978433842246463772511817038364041506963156240869912974419962135430139449606704832088251087258659214698700516578088516179656169813168971219901382513360122878566705804409165618840339362564884309914160245603961699377009475299979758259747514817333938626287709183907731633668456967078058582767140125301931196965287326257173861320438950796905647806633800485080760954061383167167616658164870689778697220690937722925797866634476939709876682996050122820582899814824986026559028282800513306220437159279736125436633622263096452614004379539470151192977631298588530324800034040082788114844085001572118762747662608369648377801979932238465668789882330058535806104561291065400886451942636277518086743992270668861052485219849911198125547088923560630923713204235588375780441653311332500062470105120105398754186906273559288131900584149759817777537048958424081851947840868455779875600301912767398480723711445248602935660286331685028691305299475229922175770725227274786472079548451407659533873112924625327530094081851088757261208238468971507559673088322199061335795034059609944995955205546275807597591981158155978619007033937987584211282514026074175815659480793876260168698147394763322799215680844429453910007254155847849280345821077730494030938976028036213999539621441224075722648709656043427077248089963854720104210004752123223464502639426942646855480091758456565215014621188690276857753140109751046965433991148587410589570405677473590888905893505858172897112278808158793683050369843051004354271378550101629501600372964031190748293757375824821434164295122805806429878798685811240185960448588704787152119359456886657929843578036968414289611437155084559453402289289284824187761479707669043222192105411610657548717374828219938616375984097394373322212727805921870701825229193961013402867107081158189554015315960139210461928171339465849896286381570451089098163670474456221512520494477511756970489037364069407016367465685509095394188786914027543581172042546383000834000154360138748030801490889738628714098622828669242794225318132449180030169219715818384659224044190028911303557004534866960501985104830667037520899629186946599613266171672745699441105347813726718229383696721750843955161877896376217748805683451125270573903103789142245086213880804173192340750534926583202328182935209866853073613149556527345681972765556098609813251117733034325146157938304393518633540502844972565636414330961627046049166094915579707109210318683766885274493676753533900217700488640131937577453602008865655252620215306298388359689891713954824141583602856186108456412039087648998473547771081973264770980304872276185012086470146588680810134951725625807698916915752314270645081494191191445778504147922853577968293067240796785895663246566667695982409430422925767183375550873551022228810069647703364483658768235083838123183667486499047662786838361294750217962730661768740870750591313737204606722746073603340811632691228445344753248932914681310863600348492077739388748043644499327257064405425343353047195077354056323659985640452661448580101188953186588394858823004254628700729486953659810595596589139858849643747225889680366660002242588859943412945369166625208825599542329471157756058380905233468028527954832401701068512312439484882048357332808408592739071966667268800997549069979679391414606532182079105555809930366168818224081940584848293235927739201351463794919910258931714433111766836773094176739066517496986467651676224190669186070826899098742261439269497998911783418526590387990940635918247711679605603664156118558800388483261822098858562024122400236499612908295368573474364634038785761611059526616748786564216593580314132803336948509358830017399546038625694338588894258401032865136950751406292387100101247834038232416539427432581593857870751978913081483485060661408852885544247528471092342206984114425339113538599880860311787933751244620534944401113494957571087259949562093864472655151435276846462527779593616940466163746781764206344394111752923603804281358202508827381913844867534039541554015959897746674056726958590504084581013416147859048573558652519052528361237217255806377661265542557260890122768619855157963619609813992768802249934685398044334693671409527976535079896312932133600642619691181690130416990706251363198166055420576761250474484918713521789632073391509865457887034828917615370590281044217536678536326948595801844505354658986822417468151988446263571497165903063497361770988240831735373730037530866035610086319244910704260258721459192174329195252732356911869381050712029690843115233578301610895520329568700911444909812302157413193728156739561985883922904488955756803096913176949474830563420603960909143412229753286532141819766412325636235464676617903502591464726205862863913185927176814423934547576714127421662621745332731686134858480968491141231739249210118399158776709601969038483901663319730426033954759329895756107275263067760539570362784548874605822274088039778111879450120142499096837559096899611812307469257149007750969838512607691486915282381664923780134602234787829484976675068749800806347564115372561872511002182780136750067971775442986697931058488027358667287998960303612634508627366076858264686149118311065427421950635895786879222086636765853680732131352391470625337537032413320628131428877514747644613733277968877289880781560150498444331806781454290812811705605363098154637496884803945959221576724053713900371258810150132692866405866553418829186890345471256958146131481457448083168121176103361924389773026417362494412742337538033710114952790859903883205977876637911778256720670042365978832614511845664904405444098763571797944450838939637469856139076472939363990142298397780742573105177797042711699124816983031718409830720014799769623411382578831120124758728738029564197411533284864528123266422272342009041633179635341951424712023903743624582819984957496662589913071891514000683075319867509713004566718460371639631737328510153952470708583809974746663230379277118762575430614544321065924404925883002220924931085048331543240695554381027981508069494761119151328921437179776874377502383219675862988332667713393939576958540358402708576095429861591815302145837388224741094460206210827379411142508502361347316913672006798795577914050960723580962305278043381553518406697406417896720454942981304416056440425854028315205261920003840603030390142617150361812175363423101742774686721571463178389211765193604081611114423062155220998963018752408352326405433611090825131956291045940481810961607232982885568106841211756251164276415770202135235959186662388396395292518527443251540216982335161433224058949075509793029822134407540569238729519355397405168786565328672133814642514580191924119939112830574895843946472116256407350107085961644879591372727092898200688678311966948161856815303781278243584620264861035804825974543157175784801783670673021065024581239063340190441360913266798202619009090487517147351196943351444458916915218381014895980593807095802887197573190679077106167389239904974631689878088881975077082908738733360997740384303643346722039900871757816594438148589770099856737898752744500179789588519367394109579283897101365632754233224932788212582966099946315637714497534619687556293090867641818845976063212523890584753186080755826745046523905332806307520362125682740282160803650901692270906899848171751894727542117647136535828229607244829662212370722926075833101594210365109328747720088269521160081739293379480075591433665350846095281909272449362049921570831161058327482907105902031430548504915761354503408687069478620390897186112254962078180071517617423109889989040388608420928696315869320501092450862182083582137780232389049950704220639723987940526905914969942613271261628449796859666864074954650506532907333185824514907473447488806847755799335670721141278362448001727986535296630754026697217090057802265508543598585123233273226191103907745736801142262618861409304526332586898359109680370971711672768888249041108255908759677745114547764144147565244541499670423466016984664967909812276673798455375400565405306532167051554106206971651233131662300390250945958779645407950394775565223692268509546291634692336543597519041195353877148170925653264737069616574278529476593011338616984125602762679223716208705518237040513674532537328509374001909809278284664509535285708529504701776060682899338408907353424283558328807794473897741049866304233621678348391931027337072253091641370196281269349199710675663001063599372573135487132334588316437273828987886204044352577840461005902286004773977736194904215139499302245231668634396046115511322277706806236487189432188866854511744784172723284024615591691825164724171284875225068866425550303754619570061185545614555160856839236437225950435292742919170298784614237922353514836336136727585632301104153572124328409572572824504570475031078943046802247526942564758039966662357308226212660800845522352732286212235504030918690158785335907274554677509075549798236161391913878726150444186632144047534035121081310480371104478528852498596993222070479357999025446457121395562270211643177737434420767588753396465083691261705741417776709723719642676537445993776080316933137554064657212467263951884537903416622123850403758838322217382477702187523482804895027553427993783098109587775260774482532404741655502338923943291840063544382401363636884909821430925796846356823265447661483060470314240768054151662723036800434394926133250882310608504217961566276181583957526176773865723967101143973152721411851280587176735299962404631042096453408659090006183933967740477578019460405034202296757895055339330104479970494156295019093201033263567920091717304145416769118209438763012915582923237125425979088637175481094207832403407357698232741158343372559110927003492578526288036390900066315822014706151506907598661343418989565186228192430067402791322839322909253182596323037348617109378056730395829049743908502239954047196692115472429800360780606056176772206521499150882600607020186128687303393307651116713015568694381625477369703877265194417390606288758476470853738521066098660813363684184379403978410591350074069285072796597791687854154571824702885604757883192938784224181129813219549393480483966805990920398188710157838161297010346631948689027292509633172123279925610111376661836860377571775972073909649355979498455675380068600447023133914350546239579745305353733110931229334799901408423089624665782923997507375342360212366595073452380068131227908118945984775763617041357903644139827516919758359685027657306102163032095537594428460149308760604165496413693367235820914783984592563111344341703304224150579886829233532594653658699349592882050756074779833871866803105297001662325062485427263811163135449795711490526518398615060670586160533607541804037057657338955134242742259942867581140117780899615007958911899254959155253340348188039629834330400502456817512600869245932595156489723390934361792135364022486049085916049626834649226342709854131282345682031514396102604590438277279275631476641471587939519474038196680663784891720297717679316711713793137384685476017812012941825870688499409439673368626208559556272168924956678897619816274829701653853144980044092246110534323950571707349521154671409176734300885367179894786700042460237723077137873562053651010958986514109507385004700942791731127496454994541275292227324887833189676944320205721271069701309736202519247033021691100792982459450795063006567539823867354265936926425832130867393792692217903949858756786364942349744690015653197758617512022264660921948845380637448046955763612663735603597498581108349936334089490083972788705818866660754916376346833545076839071221640069579423978040118332084783789928436560050228853630909737615087854881256635779955548920300346080995919908127741481033346517834088406736596204404523341557207128960342804303036874834897041627070980896696674852998821424428362553964761465009564957969943602181151818442571299732408500903891813689063294496956670732823488953575855966590179157869629120041227144152109884168152319605527533835135499737959323666976670676128119869258561572346644016614435700991256434649446199153874818873625895617602564006417731274236078442353531710049330586916595718166478779479531438517223296089684311476134232065809308470704196741653299941835961719870627177547131916013406880933965137485156709519099138230512639433954776180717887987851181842037626448075278728812573600244346038466083772412400691913000008140683606892789607614488608701308185752679912691064450354227938618155001426286533719150208206836425936118145729225986011055402362832746418715533035997937440153292164021114260597745303893561532323616665639042143251573075686923827853603939938461316447796478328469819778660526367449245419877939106362262758867699390147659328876111246848712136616729907276338694911909816858768199075502027367785883520156849109158445841535881363488777003896883240505290207528124789895085381379145643247912077118262626521923764305545398167255009166050781321357893314111802026481880795345396585449595338717700726233184408630225953207099375340783610893055302930928034259341856197186298188375561155322060354835147986418722968657775606730693817246095836287911278440181874473587679859110263392511670895426828570290053505952576262252706439951426965048905185098216562614835393462141708945510720513071703502560735155297407231797492306745609896136668754442888107946171200875020533486764287634318828147048387453975940482359908889040123525839475615199779985360471573142878317307793272065160732825246884179064674866716323090031799620398545742376764362955234680882967371617418606861322494001912483836554058900707615754168333420439267868675436362335120413561370076627646113533913201130291020845055210386183321841106936260378903221593883774342601503434213895925683550411353770367899737163970409963083397113539713290750482448370097928806780198171220792417211616480708634646667678839304898662234017697912324483557148875823542612320310586719935428387353205842543804404888490718236542692452915260609015929229427339437160926972916671882703407888673531452350241558218271564798656677656401115956178418647711601617477107023810946527633105035402262631764181119516579230065167567438772305104350619082667445995564094693349590868147361222339791578506389336038917198363035632144299629904647035198362181024663185280115087559338421459755460188363509645048443687176991251400635705883708040471136837233063357017188150698972311674494952165236483775698846453156761411521168684299299253635269290131824691657064773836571157767077779910578633357114872417469540341921920774246662422332883120375909466113985519283942553421438738588487704907426358555684208960186715053378957891103801684466297443354437852673514149824509807032653260471823314966467673430731466244435129392051824794339303289282430858853829761649020007512803054651732965409828340792199798567788880233942604318237050724724326008223533467986219209257231395629873882278436798366773852106409583799867545335385558432309978999780573798846666698455376191479587329006302796731065799011350260347730243144840090681351471413265801198713071467396913712488660965107504135369462292264066119700285675200208862126058351662379095429601079672037846872152148648424143030592916276128159296653209469058696782431836385981932095569582270071597363701675014166161878909689274397867535455089421811998587607920420730346969939634467320927437992702401433952353169661942207872479574994719504000970007290212893176425057853725718058855996463415699502572942715534380122156572922523458660973977933124052352421602331895628747106699184148657414315490832796612442373130076094075844337136757475796867181524326779092657929336424938249575555249529383202523586383766498074606818831394004538073435975084969951006988766094875142705091881041898843056926255384341594862914317166650190290044250201298461983933890251693206878667635550717735887765524020048520863322780204098382573355543665614294380161796243277004128074412988273806985107920329773767501687102696966625991275762021237928306441400688053709837304428597401300790057766523685749167818338613131717716761194473368764815988657290923570584912208087961277247192403385082324221325632403137966041691007865522054231017842105094295207709050679115194190341951710236901366580650001746492867980578108301520657693752770584312073623590244678547921878939756251449866144874213379576958006732348599839128036418935620532800118662704394125397628759582050623183469049262397843958710633991156406122079858085503407601314696326134763305636894374416003814965786308680749937703089086004853130368198365150799171773240206702777858038510005974167017469455266800688483413315330785318769943710540518185952843476052053151932085599762863643503304065426590788141734059098091271950677343430077683331581247829689392944995852462534614552375647756677950223435260905286923183682239303517420642596871400322457419647673397826395933213176660721734772592079935276666077661621233632771883672520585944127135930932987075986270811395112681102827414013729874291455923867252283835509406340030512650252843880702314232783425201566089113401120695285853771137695992032189771405194153683791537374188778899519292140884652355851195930058428362563986962452685694020490302281239662416556255351090426763659478063819854762153882758553874619645023163906855763028536745671528721749478361730725857663699819249917817473915651253818265941673956653019238376264148189481412496585195030434028346055863620168314989558710964127663069407384945886910792939171366850391916143015002237009976686994813964820827329115751974871591671309689897979380661394124115411250389084382112460100118901205287041874050884661907692660714025484634222276426424983006944558321009341619826434751527335970317942367783717152284955332753639671121361787778634812396411113070899670588139556014108274018055893795739091858222616403498006821877264115385802163924515314809295215124082606209864321116822363157804332696576957247821003449845395283649002487764349990682477263284862273799121509166031305401605220705955869875907768387838725437514852378486531112438667821975864701872168867154441693723060650332708391875595863891915737859739778102954418292453998138630347545340879055878735598421736538225678234265262615226656293647515369206103184077756470780838310006861585822732996540977816428214457758729281608563162737498822368931712226906756356123723789556637166745311428635858467755406716777155654297712056133122792287026861878863368793590378358683217121249081310273258552023346642839880832513398338575957687071703940791388336700173081461849808075840664409122273167672040416190043883455679672071577774832493948348582853197556868841820092701828506186482488824374566608246337782802545035690662571790342869981194258598452684229323291222173327370527679799837363969440314305250306456950163247824641487660968416639535297594147638890252192245063655553941520573130353554897503993910803751121921042787802965775774581222743052636288879816442631454228725020211602822681428771736026360898462548481614908124224250478015019436582896899593497252961839353690597674154179676119535524551947604770476985217830817681695878638544175353445474302429369560201893825980071710568775267918678085689304606587704510581756184725921683311748569771497439000554551900856998047258710871462992393839347953083901775994155663105608134782686542747160518076066716941641650064961283506294411416658640404697382537620189171284502791072303854127788233044989164326061977734059553919078810855803771503688810577735209884381773497079644810825306515932959147056845297727069020489154618421869057501148103520314540494150871928052540133102624808679407399784485063754878096155365721903255437502570887758202083070502971412771262762305292371542296760905981814302379617473432734102209634616811943689856485834474232775455262061121293520902384060528375554182821091003772903405909536691384761036393739123751587001686867661232239727451416885376236746128598919321064258792179404516827633676826654358590020969926422794330801619829720984471951483272076962209438141823242506597095854099440163330166377006901180356750539603180937870906644622603768504961076201983913835289178726541372510228589220735178583184553350294167154130947761246883093890915067002773643389626164992166748369414312116856121943640323785008456540373764157411413234364829486659797499950979722221103832619491709973041687318075702794652084185737792051780116671403584503671439688699275699640155070198420646644284705150871854006578605692446414421585726818615504839189483103010811612101615643743583433226263371445060267288306955535809158489253509131110127721919425472796235655978307491754699878428855717016697516565635838000512772769200102393324051827174027829330106676107729242854534679240772868425939307243088015577818262998864102993234578416648120383942102651423581130312460501546623332106817013222630590808517795253904834061566170591145133122467525400578368968016824083976888596188883205267300270014234847729089193376292885179261944044271816248088593932260144580846272557354360012750601613043801075466624278209953865557166906897634050898105029383877696745511650614665619191063916425741526786947784548192068816766276967785218220739294954873814029497213106997142016452888172838714190548126597708240699550000429628215399630351456831555961743198340369286846742080857061803692544949044548705242742201027940002512733892567137462562395278470568644822347128139025400977721891377853829337631289574249915745427260233570472528121004884800334567710434644639950725283455182726478552345126297050737281267654728811689342191043275607296218690266533759012902781672361563289947461035088366443360545274946394576771260751109687298195063797491926677422886046530515235286311177331357726851913846811343001827731426752098076366059236639244214873660650648354583526335829070898594589359708458533089842246704738772084707915429561445382851328288795056171369193244293376034136943157571256105029091289992298262822324771241910524182295663451316722784677148761663715012053852318457717760701931368083771319663314867292527379319863515403039481467391550590095563273151611861925942842864778492709711655591860583583679214883415398859413026936470068420785414497800845255293812102743052500482423025401345515709205461271160834049853490431693876948886417105353975188576363910093138548002447613392197063124605518139860715728231576357727397297837627254804549498190630062767114224473893923932468472111249243497973261038684204667069242243351999462703484539937067660690271295563546180951667953876465773137327912873167206462873270360068227162031777722770431586699982387002043182924513383483067672694426949467439272762443466658788396400861576826680847654532548556717716717262243684086320255273706566462761561462847166676449497568000651441458505522408871920806743663054160120374811197566699673043465838994171349789100151293930039939642503938714760162253598777427446063828027483990064064061045394857488526621254726249291109767296517130054447611237804582702400722254593878879692984445661734718460970808301536765187142808995864885975312584594267858728170176052728962136473967313929059786920644672551107076751351099288613376535983312118381471401975698200858080299053875596988974027606407977813637890655656607601615110069874506483159684379251091158037717934047523035560669044232285628269833933935637579347355815430551579199509705009726389052869780669570240739926338177227682971936550043019233099441258723464940542761971262204242506306210659876248247882905523807525382648243009170146292743662365120492204874913060041531486092607946052004816656162187530993411055318850131336521366569046450228671389344946507271562285358791454581473166146613536394308891705544596123204827256806120925373756363359923847794281522765624615475091149950650236620819459767368720286284140679555548059919546148148215939779065777263153256655139905316036588098168305754844880071469717499573566999532859510897270935527795598047672753539277114787550253629524893160492620478801770280777200624940520700539278353921790001476227693976875867365056527155502090427966841027233852567406644150298911730637568869677609620745262613902682219313984035227505374654299363575972392643566397854794904315933709242990740969967594811365123741598352339153456501676830373110721190913212277735575186370672094534510663289530138239181872747440245953559254223663338412889276786067474636962355708248103644389801586835506558017658274715837019523545522245024004483677752429423633864778085694298432326683800926657580363148070473160390390226379230941168378465248169579982048954658668051605724968192532235696916274548666240511811340471801004557929119067581604876531705700655764765589561599750961641807824181715123996793833448127161719106091190697126736890050112097887396688641220468471170800028789880328045258027931589316836709740282195933824375916193236103640271563308257346070539048220560625626102820216495609575987220722925680326745043128451555018654295679522612282767279973931303672716466744044451431801188981985491390150792512452243560175989014549552501850141580061261259425828802159885403250678781681339767978865281673047129329350454672287343484650689537277043943005186088706623309245840617685312838023309806314832003242622455505431714716526153238208920410934360001462427011998810461324942408221207968248787257105501624628307110818803833481052768882405089221074254763242415336150292315723231269582160511024806303088432690531112886440374104786914796766262916563697332235853657866925081122979321333573841449648614759452506586448274916929900145281529385140066113796423984162125937815213823722299633668022646934366158622267027524000388580810083238828842200196889153833040535229221110530118346416903586865681408130912613431051226139251744085930475889638781701588206049911189647465840880243560542944127474115604353422795461048599032055839594956651423771741511602307873612504343391593579395038724744870525744634626031116814590306395805565299938731787797500315852370983687288571345408187429940159552037509674698962152283348948959866042911497845566664116504703862017078476637231914610235555228905473711631025322063560655052330509609496846412222572386670697367947699478195681112975621272353721707312004747923391532442592815654234863068664423479327813374109673971390776373839213588145224024432903094085083823492605092356833547666675044586753305097276422926789663179160099724940257818458197445204261028303518938460375718020305658812887823710665892992426948594819748099725479625072853484731175892746448985496972378669327237462236348430840105681573703489927152437351116451710329179780154515451092429070072178615539377863674687314386998623351189625989811061758192934574661324117256916514966242720337790499763200130617656642283272290746332315780887082583802283974172092562908813110680789861984101040662105569943501126552122171433370410519949170834538653757815470154085610365285626560409202648029458369929497320136283973007568995021084309244863003361755332140628422315672461932057309885603815198442174336802381629460685207153311893907633868540190209095864880804763962179619330551469836687934131811234736169458502119882020541094280481919875744375641083443101923046872370788402598589636133509580748443540144277861474950839665259062185117800255248668546790970431823176916158947456143240295862719405836793092404935134517197504531042069645145140325150756158721621087468292593745370636924653306200618396452386385678551566832672838413646439760260033370062027342760811013998006897281178339572812171680369015321824255655229668866722985494451100775686270798864157662618215600400701231988188567494958510304814073622559537994855211971158051431291710920836132615378446077442222027519058512660801264760039381845891603996518731415127048905968907449859609214631093002168950672214339733757180512671377561522154909119015310771133651938251619105444126643463606922337389976536840891715373030113582925889841092434217322511516161651991478498677456540678434586851291054206947932500476225153352649603605289919758646049134295090528973301897749409437640773259077954592814201053358737342109172503683471124256358727430631454458624193204301312725672527163762855266693019989554777305281536505540652620737039375554961231703836418695020684333010907585554540225448397983418448861636877528873329201436503191136848491138229714122276463335051999447844003522690611870204504965801098814769212724160207986728228339483748441618441508058691534757444687186653139740050251568145407816626200312417760438264729490391278101456671494250778080715477303566747044100071698743212873562572329405509824464680636598649430823945953660489287030918812807696132295215504228275981899138426748299564722101771489624628246344417738135507961258349397965773775979356550723042231939736217333822764003388606688738543567458856025740333610771614232956291660204673807100004999487669213936678183582565878777986729533351341385041741799528385882014047333240389093106571270715026407310944035337027178303124649622467021270815226875050306448432802312169002349980993791223582259113623154158503434287408849875562464805761822828317529411305730976889021246634063480712898189880731642698667353418176943864059955385285183087868401275556078983084820102442863652342577686277912350981615362692923489725230432275612489169489094190135111550760464736696433158705562912579857854014733698529323018441887009462914105426521826440994016698881152782233701638737796212474096890784938969415287110721221319564214969276361388892189910743504623624440900110289098846811946951289710160279023155744921720063909061843928146558586427667100114573922370018140246856954026832734274533845851386806265300009365655852269676366617699048826412217082653097656961358932847778129805512723254718303945404540288876454024729551464252898893215737608661477540335219835854327950830480755740302557186934058576056056065239242872763027681199521663361368207431955532892320894748046708988281129319195174327051319830474291909781103320121160709311279101133056059117425109410867632896968872941855762824965687927259845829556409472747143549776117907819420978348424531214369245602286235093754412559860153730057386393842981581058529067998362177855948016116415903647794328691712425221449337646217846861977905199356143050250067180911479950873829574680374883296476724224215898930341562480473126869405381199628542130303423513756743706575374441516283369463344437235385217591931952774212084647932474876649477289092151141932563138687676633030184523793277048737600588977886319663183717994384937482965466353841446874442846841642438276378012520772551341799439490398411573983766176568153494297113161267244950199129729472653014759962231497829628924537934768037053604846447590475766573485710645590480144066173941750848568005159331698276661789513926196571683468391778738345666584312021666430596597441302734471845385547445142870692690162338432548141015088862820252888813729416850042400106640623757694439184440599721566454884988331427004697844123888584729519480217776517941586943108499390558239046216899153754325305901877605236537666568325595508090642112338119079031162632272693844143282553283800594988814089959502641964012058429259554988968122953321044507641020458347057778795240385183019364554663411157618153784091639464369139197228603213532457139786728529082779313632756694666930126405795876963738680931660575351813205400565990260028587578811506518943495541391892933088078531387342132356217554481895919411999006308267593204025716087687313752777016712964810830401408122639165756268683399015970174851408484280233701240943695750407880846713882387439846222690487581099958967858213150623673870276384979178327010410673591025749894385088769113350630989175684659514827988785456850806404363609503220559741703280311152280353835619053739119005907835222766735798278996481262839126506390435929611581460155663248009158579438506404657855167123152946037049110165310850528993778427353216394173233461539823570003735994605478381115417922361324507658270729187603828438440478483385694547781997868567714242467074263519236521898729468846425911567985587792082343703058796199280407768074220233364160622836586626761445227082649894069887076976435146926238469914037807754713792820400758387854120132373385783950609152144319639414405370163521126518573346511005679897366750734132644871131685936019318996685167422601576403482268404930314113135568310190382080527010580939131052347981933906640273873277479421164143220047603622742540319154173924613788622298154447368242243293964071882097947200714645174962427861139507568120717231037497893064996047096592422239307684947002541242475707742149767529248248606697019042144254780675158153348568214948228028453980889498131494723667490532798932399292012660732706504684055223719381784438155911609565538512229812608508827681365438821891608897563291561213023086933220495686379875235470341390676768733900317209473517464380585888916844917486708120437917605701531448327488551015877040904603105213891282725458869824427279098757730664972399218401907816711079244054918507872474651485748110868349506588779839535876735699351622039388033389488506279595707852143501895469309276611312722781328172886071380162109867050769743688282965217346506950462181894540032526467757022813351909587244428163495460063042425446232652321678010463521953237769386529493525637268976072925621504077945668600008107932839092961254059485838468555468746887695262439468666997944723392044811235816468506647156819443071050329488968294051579187908264929639706406794429620771365380748236466405791086337184475476769322402354251817725462265781871786309012993845388942613002354315309259750389504459770469003781114474077604675214580602461770193477163963486520558666152948466216206856659587858998986170025310434589763496850668060271312669690440198708514112751736710073256971844520292086774557820794085560901173913862181261516213368717707908885997328541157545864734758200542472542677967381688546721760098708649132923809149372839952300618850373619017877783597273050283174601373823667658641575338833728097930922543193444123810793931131247033395030709828539181851860484886640134652748050078000419899298354309877573441851868001352208031969380683324390794266891585803367547190751922510869233256293079112710172242146532888012939635482029721605563290041386503763219027030027269265619599263462447513689441127856012983702767657018183716672827225675635962044206127829759850865484733284529326217690144653204958492126898612498665207471194495323256515044148683703353070407133356798112298510289485927801394937787947721998071204106084297720171400976745370343533485770507948908378736090447116617005803145430194525243713545839030853841676578662100166087182689863496243704471332239906449473391317989819904647121081228989706095099478649659583148482724267591161236145273225881674902353019991627680834577719651601544501422582728990019987406484017733607854242299817013800779050790443405389833442562294546748480683119730644707059582738044270337986635160908718352173408717534935748029140511439970226085019477305319748992875738564891533982959512696673081074778169186524621139190663275140981151133360052528861869548912924422575371048204812680093216220251198478878344088956140241619820914060368208375848840835440105535045620319900575476576764475436530494569091866542395754290014990792916281100418828713191231842834347097204059452083325576371693236345915654264402078836487977272176326901029051031039193963619229736556559751710631886514712353567580381128664477700995132966762989630031440942525972852568187520105893890770349997577983779978927794519809941538336245356420949032416464187637524915784130488794180334397501928353444112412917034815067781127406152817346842819967285562031275925618332259548886157575266709775151426588224489538325728674747894575136803229753564627059214693864824686672915973020546807011327331489817960843309517117500012006357583160315823882146400728184646874917225971507442905892910927913000066473788227699285477983519376467909742882804349983431060152393147529397752949542709711175559012725266454770484479254682646776202290645712235718680192095833094895146217008593396151545108086474811739391003077652486463597103320534962461574200204372128320602102326289541573124105439664953979971352126700876141611888119967547829804378157978461415900767681905233332379827635652134265041057012445308677444155728194527372355034300986433584199726221639540595761814114161170420394397157727321431854893526977045143240875732221868294396738040335584760625135266463996737231093581944353415737591791112953041149333177279285947678264745539499950629624654460011147821048026916884839286876729556800720102955901919260416449698488764535804686232950011746167034080872883948858605548874632092935617027825948109244054662863287798360613715144380992397074909111679551075208697906110394408906310010126945757496534528467549106027882144588836696055236099280093485036462981355423682386821544519296275034817337167377615246387672928539831337732775704067950586653211391756057913984750243650375925550332764134135830094771827759946198429888450788215694363538600013132258782930321490550271432848495737082448506875384852837183838995949956708734690492877837229639274578613483439112722763587523249169596016957827704652361014507252974642283650949974475176827150036242646624011560427913522395661874024627664799879884861043860537203247428540172208294001175663746248748849746230041784638026574110865471823242574465238192426051612002303115322142292437147524379704739419766929484164992130555974042717673754073919881392373435780809843149055515086649642359447777642258398094197377384247578962519540519144513531616885164913642399645333729754488100122582120830442100789136445741195367524465182349277860152803594279561310604764995996918749951751927280997345749698040280362151634745833527900756302498130759201226755196744175331016018676146230513363348024997719342469481839677393187207867527442321915060475061506991263512506933337330278166858343594105746574507587395392376687667334048846578026067178637183715064651803930707115721412693543914057800841423472846333874924341305320646908328352707001419312092645481486721060459102395781396254875150148110888683658031339989302036137534064349355350136241402362236432383060987824310541910321844320209441290405829325649004015999261866160517974811699804916593319366815811772032056555369480788174843549013295974631968528247933768124295581537283020009381895103978811013374932480692658344068996432007846739869790806117357695467595369692854216706866637746116942469930478824609060892348181489938463908493489292044912289941472367694669915737234619854698545047316327022204790037377179969575990066211730189328390488306654750283062329060626035347408100879445975615183608325317945470386780898652148150143420586710079474207364344144242850464995151539291534215516223254755617269629308571939157194858535115593059688089204772638274790169973332017879589617475663449374165162543854683833631034926011152375099473291495746276417707675223117854838157714874709674774418946586609034167674467990674524324964846698340433442889288068814801504988811429639934635999038074716183640135138194752175358730490199025816726289204909452646632936584563287797000664104967048196821793499372228179181131884387237941998572630074654117763100035379543512322456267241740632219853596060043327102374605852870819786420527465219134727660386640681742223161447948318656296627644887115699599585067123529466191548174929838243894836464248531648882063621752072270823480584745715859688299547887858709382159374671764549617957295230754914116417772234737317448353221717524452338056082527988860680386766467051930674020085061544594712032240752302121551229266010803590318110844793465912467100193314661726694442050448986222530991613798854186669226587468497897282369950543696383536756473381650523952313456936426185759043873720874660365715352835090074263131230205791947779023017378577115521864723901842333367221890513745172404706774950671054644259734667900898759380246133820412722231254213178999796427816254899962206191356132463675737239836725485611362295486072503573994844739980706975385612125507899426153077327984678584151288833281556283088673286661785240315418262410991279987239033777447018850838586116434724047594925407867833886499227107693702198335378965196461281504879570270059465437098003609293285930261171386889508334728387416842214376759792010494752001346013173678108937920876596389073604196961461509718548777549308869358476453760458642214227860296316110221042869360913193259846563601109231393655325917272833790033200175722251754095357597151928647842182723817253895014920004314054919386598497877777355614171670250196071641621176243323502932450627104156313978252798204329885518546686574983166529789896408396140527231458355055409227317034884183862119923662903475922667204708325523186228494797367780615756716877298367683933098841053287579700513394920351829139544702946230377975502472089789326637874167725135547566442980764381606213250507117432186542975029838709163122557611778589053298336472782576083495168734548519104598387426640976533753640480371439261950943735863794731111413338760872251025685555995344678488121369555570078566587664401760755038635908107204757670621257964906893150912556477640184356270527399972837796045719597450455218507371975003049591251264651844365401489420647321504021846666674122277177590445729724326750101463509282320465439003165714907705336676298714454426262413494883503828697456000927846517111992800754227374306155627197992392526265724828137720286632260656074383223750172737867042833847006935099626735663333890601414909388174266782181918826676378426121620400760477726955287167760241616143218608174614082743601553858019799707035243164886392185824419530034491629760115381240499348933152505619926098760542103277030845916780399417625600970903179687496394070144338554348355293096175892175590013915127870501620535934277308422936323730908678103691752046511371886995175787912027988771443528643087901352633339161534442003929492717870619098910233341483920314686995709935025636224549641320106827133262417992548123353041787537001661351747910314929205782218805968149108371983233630389341102797762208385299118035281030518507978209946145753241964751272535368505111133657041293419714826634587247738879850661100308028597360408117590118589236289297094273047628828034311101285451934834139116749589586101140778015864047940535713625767736092843121260955727805555968054220655435501134333471483702927214045657160361822802588757280953103447474737452218258967233297707831829954617680059682552842799149517964103110651655525053703061087607284652165572350909358740667086950375961096078876740314856837368554566271198102115416178629565463552634194766430198258883001114689852238934350294382145124498020592475522401441852431487375853444183166701625134060022495476326792330992531733835264244557256611197727553300541855453789192146262027534556565061961003286276626313286961238429064663024180072219005377438316770293639094051311929499176707051802308568432196801719091016562197425949205982036035480310062094773847249401141402050406927258575134958510965750839455542946623013171349695908642205548292697889960620936065945989785307838291123703909116056591080065967504752724828178296198074684550874493879470130503447993633743730868951365003816057852250803791195984871353908884759743915640953319408700559242705135261582569052843085007057364127387399614901587260234417210336294443662936188745323423552243665327860925705133493739332787072310250060395522113934478722001765890114254129950422430915835032452307864138125808371063954387051350508173774223890223848280054060365032042850236413415813795802995894405964205838719963910593539405663938695870001176370208826940306559581069766087707844786217305718181706779947080644808933016461254786124517834701492617225880745630227885143760800412620271931393212191042214852421415061284294842551813962498967564589545188198131014668387157993650561548657546709020404107284427283502065369227926482367449594211974231118620254782478146641847663704607252323789727933068290852964416123702975825691338704339389489309743386599915251400580658739774190650298207159820947592152561350983953058055310349052886139423109150483834763711849357390045062759716557694472123316333199304234215416274520806379296279519631177282421400089818959035816326630764224200259901444506068627732422288909410808916340583386466009422750338338774432329059618104928264280467451226499780759085803944870869035738355336061469965169006346792917067041930065164146220204809490807890600408625339088288325601259056764216020728540084593955146960389193306627852398889261581160593200384195138414270416198998051088879505200119833664848820197356514261301763897257956712496700760822203941836827975050573497651253924346521449742539316956738194953215647929802585164995338606391515834560900400624459605865199126555316429891720491409785341229093220880522663042812218736990313739366390440007698083792335737245218167700028867796929027070185983317475267686057692293286014607456281952284130779060693570044148483327875158978314022674288061525290090177352165154145169794845712294912084179906893871201387723905981277570103287914760996687647591800890774232470272767078906709172152205775261791641363029954615154120345915706306746289542578366941846383876260636652958465663269131027609497746462444542303548739431555332824186936785600432463366415695032249100106867469150071031180760859197198026623996212962947991153864856179409551719798304253603215047782699952659378388162535494495015769290630278013051080919238076409734337428304307975712316189918395992645141822463563465584743176760336024875126976166261711254191033483283677572543859986052520709681632979680580937650343959122348091874490346771529503193343679130662159835279034445677680716561429170421015166538376230971541141427082027792520436260536479568553152499511160420152249327890178357819389063457469260727252686567507732682451987469197941050937586174735481333659168755050916707150261730033124880014917111814625068020611158997466745766625224458929659097568667408816837188245578512136712956281483234790532769270852168380170069640276700439101587217653852888968944484521532674471873186789114329285297903989366159307329100365334661491381659245323683587208296507969330564125220167701161777034267546264395820553408064008935406548380623888175573161661754195931671201225783355992702473341604195590554507656677969122829796939163495015173010752356089929445575869966447218186312624380868118770573469657765597120620622032225526460979074046692208305899083441835931956587243340477950577405954933122498879180023440317202873044749455141383062171835865428438043609938277947284913959156870222401710792348862324052930427839364514886673948896173424699052349014074665986709689822470165925946399465148814958098923145256581443558722068508867897660391062434852079553460711936428681508430696924381402624531861370381236679602375202056732091839361171108771821374372566481344052835826434467895756104720152305110661597395946241327959283290596121448231329322896383293600161233634409073447793580077269593235868026692335759866136881625998353101462326271443761260734909712368429393243018382738739939775555005579698463612997916458566597157930307822271508701895716534517032656966366279387560691041249154154522880766174110141007128862771693086345299774536055008816894802133332957010206225747849410633236834924722721024843407614681252403650850867642538420732447270070324379642860887569976294963688701488828813655971224031316622393880643817613253201826858163909795376486203511334597696453425215630435170095534168880197747805455852973149240780240101216648019456180995610670512831309305474705807235717598319423580962717854296310831161701330855469137979007354982199656165474319096385559989102441907997883053334879199740261847038268307798219209374506738522624169118326272437647094710080468305370167405799164131293336432958742824463726110108994845494106919883823219482294504169149133525443136083578723499663233920359202584181294553631607595056935414784491285028532040909883703869365202879636993663397322959338846247260851620933958156381646037989316202229225158723329493152035633717058924285548227011788199961911546871048986337841351524011666298954028177063596687016549497810441448605083800083788855641494284536733477039244502066672464952245406576875262408265445424957130825736927040632085974790365741899347189772496573267091460728385556242029715588522840108037718149060471793433485889372479598497873077481029053298494470350709875926752382847467848113791991847126277254644601905577078039604084768027174217396546866291622643303171685674240338777300190940852471031732101844846141994657027444573333444939068943796144122597884117873515357162301270807027700175572117159283473734984089254977090871564842333910284401308999380417412008976060324590148359066317269841767397680989707756882338855790778913416364118749489984803442457218585051426730374565181639700664708441278179569940979705489827872812260406662042552458558053381649434312096043920796767446672827812720486379988420504519991692777283872350145132284312662794367647249241125565608254577178979771559123958379112051541122200239493981797232580750821166300938622238106340312985757555023027359808590209726809946967444250343542534346428118142044271770421812489172010266287928968714510027153567146389970309741546178648547575654267600982598811487272090783359175852377441530102231657015965386770531381926896832495571418155409147561097976322712292917218279756314945700575936104146783919096405147674531158457103252636108603040367448529009746254473179781583314010035798432667976381941769963311012546643877971408369160228481057416490963689509688595646169662391766512517670543747751296619457470201370628946196843133307642210752808888496851764223830614093492297073647288536177572650892609588134419114053232904773895704866449416189594208882930709028972329203804875856328213991012621610366268871395063854290901133832809596777350063509703505137700606027354908118141941338899372022828156416798467301863634554584084049985186980343703124217405020101667538633846530483955529674524711472430387063538936442144376275747909546588503300923117509376622578656675244502051475309835797637188871790191816746554094948852238215825342043914050248869084310079572820786450084013347601120636007751806302725851564961870362816395317183663196709224683477978513069603136676254867656249083602267879479684300312951581971830318251464039487777590933838588337712578188718163920112457355096723690318697358878111342324442086812391405867645959535924696165313662960267698505082956017950598050723020911540325829593223950357363620213019258566412389682092184869129976980814799888035158241547832405243999726120210955185035342301793845968265255292153828757225959317339817627191441267224097717936935255627686943399507638405786289091684708706024359951535324702798564364363987426080899028136121435390283202940071969677708756130011808420670959887798166051650853880633644331250319752385690171897662948106405174380216854402661880852049700626637051931754244418017673779801998968628382175799351646856517692724969022397488817168566181782175742994586726745626116940850851969748639047841482013629507146690900752210054196045322762412862899877561098638115843496294174321474276264325653652220579726806656810922500070096491528410891591199439261145877485073302366364457225919189911758055476716488931397830153649306126914023082460334392838252294991804879352435450211497420282636474037122882869978447720688220530186332068959548212125440959441180678572750868189879145164344783243017484123178721080154615177773444963386248780821378437951824422968207628876994796750980703646145160492032717459463113176677655361775149490618192827698315040763991383616134767711233554915173550573234069500259437446886731623654877019133265497438916079568648263719721253175067857681768245024351632183558049883046851345688887502308366896260395241268498625999372809027761811774687011425845446670823535194045177447916120300823486280854297033168334466413797038651489326349706976449443938966511686794560667842387703619138217806699320012216655648886775441203738806672409662798512575133820159391343382167891937251804342095221222828464720010719857160015499651922937611703253514970762901244350365599910361270503687054022003384518134755866467484219077751338349004951546656705973909361625443642738650794770641213422542338863153534615784673527260263855216659665294933968389747872150602726620785746046598342777088622770262658690310783509540553787764580522794792240411875652347761090773921311950859000903065515549526527804163392449538855468580872594101797184606696107420905869567398717975833852070537921602748758295427491441637643950704742365377891177027468116371982360487560808055831800976780677072700445594179241705232029981882102731663519349623948770882793087625527978487815766202508335697326307473969632443811132647631046499499868000708389567654244953538598041991942632002103903090203720634786602900702611251766920615057473957383565614230549814624602237790062611947062277897560843415477471754545020172993146748104843426949409568785764569730635737485660691745866033529378873529043706782091889449147463901477884315717874819643431564410085450430946780418474289437570227528479089922345654613434774424190992415650780848775859345814004251648510039587100948209963643630374459269412404016800742718837456702528361132973484313566015510237480453839368175462104554919408786828116888504822909101368041970897994928599944319832736712200857154327879057250738162393804895599101259032241525509486439354689492567424512886911794975552007721709141126950288438003158460931596509212179010333622540720509539223805813056266140617407625040433682785080030511345778009702409555339889640414797051128299701138322199254388580987370457436276752144363881564428364218196242847125357551911554768542901904131180830010780422285189104182871077725025638992257919045294751077959536148735656836051963048234510345338860914380320263627945084006425464254749770639895958975103778688476137816458280098094721363070344717679422576517464990201427005489060506524623510598216077848252826543383124149847757068756616004771656584363421105771103817560534808579848307577574048134733006854986151994101323666064694805054053453788309576607503883872939339876789330997738243436017632480517672421462245155674780959787710982288749576180466247527476608949071066533140263049456286029925458861063398012983350023690833460926339914803535346630059869696937346814579309995669435123751812554083638627343197258934811959820289322826477054806716316231898459108737407564705365613507748719952816966781277778628530623759939159176839440715617847106248847017428544924868299627530621854142470042130437015002093542514903537493578471329827471246810505401751500601460883064889464734007960952747990417554203921214840375848706839889526164057457717074032178961203629894778542766266209885471615508596253097053114620685665881619165627381539685835757224847381287137845092274741943070491164892636772499684458761445840368346637897026862858553860035834053801831637002958772158021346687318332425684154549274253118722148730919168341871132797988207514476482504830041768174517523443527710408979919620905941397651343208207120718809802272135853899711601000349657659125847773942182495894745804819882418395955725524272656193710015963897576904131683298410490149863966555072385479376111719248805300850953324134276953213849183225018846421628447198450901387275188438868890660590990085055715302837095122720973147971951897723172066938571503066524754842610898124981039679154449722495188077730301678993390840139734632691050469464721444207285207984481366810733716269611497085676859050729370494221639361445908306044658232760472443099096722947741122327799787594293317508965453591343946947921171125797144497395688290721390840574594546216269181486794806978270433657826509852476137039608060343081606236729622979069784376943366386568694479437175467550343300327699463456451297455391442876223858562182255910654888320135962533804545859575066967790972615490576876981637542820436991281186559952432358291409336690277231000755675744560789017878533544577040064226895297483611864822889990103631486636813932639119317936006060663271894339295305605706074378235162792303584186188463403705377355247965842674449587020027237837868533132146848216574527328504623378053224027892544327643738106326183295204114193125024850691423665910810354242412627692787342852181311866210455221739993611924900234839087720365271556205653575758573525481695314289279320103225611635855160191254557775942530473616959492478346470741060521253251182456952718820190681784000483606942134531333383334052450639771294379552625064734213198217865872039617152741264864241183938301189819166849495697651688127202624665060014617407925410630189397570241238959888884228305929155425852668844691695646009850919640614811048161753251774590322329004124504889599030151342520375639319026090966949743679585896634678554834209517639581169489191986405237912108696753154982487472709207874861992435824510970630465801523472494322659415406268769147777225999988263956827512341420398971044831632242841763664034158086708153200447789432088877744154377452363497942917779002992957930074720603144447989279640031569814705032750471914018930645567326437106937762692220232860883985388187027443856580712748320415875982570293943884989662320111198314216283113492651397762731729911535130961068797713382783584559757496389637054539246871434091235036582163014014239643779687364335981747053724890343359297555244873965881845458002218206779350220399668124759695635239474379135908818955713310644805113355318612423016483847244328239995827083340947210879234445137135223850172004207791817858936354613170208030246726902833944486556383952838942168868558743200762733308415455126949806853929198117404798582856910126397215553769491335243502427059229118868600088459133802288322638324416494953364766819610815170688683933754046556707780521853069490198473515365404012626539500549037317548199466104793341896472733391722042764830748627416482533712676876026232165249104966020896173418432522071873105429236065122255609164028038568727742347849950194746161559116997869916966929959327386378961069848682738930093433743458002522071920427156047354836196410037142983059979372510940976676897818941811129207216397391721826074411470964051219972385250495928229069111485956494216554331543163899949146482507128343703098778820795155825506983850462306482053077830087977129681538568596589549236217140278062702971870948281761997631608969054687879851089014914391280501008178692597689959960512132769744438972257370275159801945262034231330752929075904297278546947782551528838672943059500851780697857796388356472262221060117074685997692733115071381769157324328289360257063139370052970933511984794803395140092343701396759117367216643004543207187526854104897769195602957740631689543184723570756470759061662134025860856930376853459007331514853137380239049683697216485441966644118012829620596686159287747736439048774014188795207096627123892688182029276841392815379258072228455516088742578538444033699750424904438823473674485021057485376739666127781216224030870442799756976263800249099123831098240644724409389797266789933280577390638073243448619110260041313447499315742386664093335763368479392180034276762337387115588596805334934869026575413253512758079845064019276418356761052635162850136769015285490274367675898142576360350999738005406588016648941457983494700613482627783395368815698860433159745609813869288880924248845538655164389993248044915375854341144747400786634839995516272662912735353339213449487828389332409355673222869870509199203273585837165131572037915152427593008903698529407218155284791121368021930996314680745643470273700490840491377058256316156843911426379503932837427614166622986376862832707530869304168469523444676643924539162738521386566268964333584825388971548727562329927618001538864898912069286405849175823611077190736654041337129835837130670167950805582649189297856137270407011267964448367054951545817335981612371633032058467564604535510932410618507859407681639125332321887303064094432656101329149411249508646477576776399951435565428486640607615438303805327564718064698287064654449514243840821098128069405689557376968835231429658645968496920697190528369696460118093940467459550070763919285600578921863711346400331398095383171084480721574421369155725323174150426921148515337214530037903810361042460135246457715028165943074557628044061812042235125319805013242556350563513154816723619822981478875148597625711202970524017574942078919343355071257808617717898197232094060437871783127420990031610306350994763103772599166108560670436279697653232693878550823634490611105866005991417612925845044638259539548313428405448451388614628138497916949201273027151604159621783962756778864991963443489146781277653319727182131401507528083253864835618567687133854033871408417353015288233870276575627376790841950103706769548813202180002867657471501430556003630672706881454389583209882423117526570820974797457575387359315008623768743766250059130826139368478581526527776542583702287262589871708872063347822153036327208535967829677422478559920504416246175719898595545214067018693696415009906702764963155185732481734459368716794415623082027025840507457758461750761795093860437240844637498836611005185739122368785764726147514591017195109605615151877210622635948474588074394538457515795361266774163586082301707307717633978636962817091765195310670740904053675957335130605644488789355606982173216121679598212227667007879604630502556391985006186152867803361079592037198446656046326604483549975728027648605657562003101599448554194163043446610382914205006599209807226342959548996043671903602829056491379189375769251783650722879566621918201451554544273927401505706537411962543599157835543916057472300250960360670378981555147478921650759591803431865936777194929027011476245131385770455730728405972313780572109375274505895725003690489651528109630988770431373009227981330666065909035959562274540135614395784850696196091045966387871097803704044639253602081173502010523933278269244207974310115310619821227289027465079833254940991109318088800365336505025409334298494862186341377966851698195335507058809988680657263154842699512154680067781467001185015921635504655469093482938507867056819448126259160329005309542032992588600843881768594904436974770464623191099229255376258239856213832342796181783360345506402061769689234196121997657084717958173473690661214485371367064375849871429817699613243891374020420635482245768754374026752795740685341068459930630233316871204818288212473715006271574173406573180078228736242488301139306560611642584476023480696324108934648106486250680726671277679963101988653097215344679046281798599811338026413002947960907232972712632311794818738494142759686259514772288314627649750103807560363781606781039937420432847149181315279887067335121053237810914228859458123114810153842302097787540126536747596298098807309424461178777085587488356929755463744210619899867732730476877138265648097426324225088007906425379958747824367185522824451282432957015729047138053638231084681647276182743962150882063823170462957235223700995950776582555349524291376444230788252315782453819800190618594471703921243238158243113265457280422219192791730424889518204300844975959892542604280816641928342584145386124296626055459268702442976043162683663210869895699519246460222236825399399610221377477204321604035314766046401701469963420163359727039764497867258060017036580462417071884645245967421680080907908911706862382763095482343411814763250356657107579080876481264880865550256819457225342594655306631395249778759538282175564031097430333946399536579526502629917207930137891716597522708788362288240621212532748664685426405359797230326586734471880948325110812750234239570374842078680338328673536425586417819215153612404497381207599788616278205584560174357401221198623185620730171719457160376689241361162514780757126156919219897888574636673423950892503125085600853929224864156361729956657855837455766345807847013642222756716869088121858317911409139656715546350976888200767605966143018726455780285357139837207970437551224337530181469614515396477593343892703453679177871970437567939511311146949950099380138937254785442845706524889642696733462411428304829856423036118948428615991252345556048810009212157326205702432521657756312140153722780138203459528720578422145395718067107795809225195440661921966778240351689873203701083404691562152359468446547275563917391748570228450754218005126065387024891388953298323600616351032064885713924106819492673163628187711051287817768493817846899874401874129949077702006297299323955021133479804268644867965225532216109681697946637388871794604255663540308849138363090443783923761075746625996842957396988290478211107077594234183469025469681537097597435024311070144429281431991535382297582085843660466185466608255552461821427470277733140982510931228023558093279467268490529784425303765238023424383740342315352639571530611866476173619246437800940585306541870784792424999999940241012259108082436201279694250957137986535010176638505544201324928741029756134938893911706981334896248894012622878182482945287852652517836216972865193793192160262787047610834447687199289946246362274921382112447808441256258275525883781526586281372799832871374935969816655351036912442560441492973572537425229553611992081447324256551652889938491359102286203471459762206134993057327537044294121880930340700545218510914494985540662357995425379056280565556213605752577047148573869774773370663374820709509629183388648824765524225445153325063645654147958034713446739156832335519272781387072052939918403817237842686169616283226905048711700669408279204884143266339821182047023730245993342729805626325641959011982156526224781111579573825052942593740850717921945520863668016833276759394595223793160607614933756901738162724566484828797807385658916783526181973577641580998328025334035113031593049987281667442245513179291464866657889458516117588933461949077540524672230040236228116821553494071104230521958751843240223638863443464461430381345097047466213699216880328718845484556981945642060039650596781108227340897966107672009362375197717596993853790706433539048303363636945887411803686573892855699780257470883218025690870328369925675642097614162178382598639153968382032850997176673178878250687760594070697553064955574352310550230969188266322729525077127504822741504245959351414752435487750288066518867970889783009269093267106342165378551381089608965730369747616419910751262703583111185885318841515401727955750881168470590114968475430847059207247222135927175598379547402672447844026528159455136548690147548321367698976767307790800003870473224150160401747408876786424006068804899059566831314053106176632761062598486295035681281694897435902702622178282436457108995497769225520970801559739048043366006058406759261923156825800349580756421091915640770026029362730095786776130088684314648343938690275473451970503330910913544685937523532484211793967583440083812588144999176727329332159960888420805851856656973365656614128696495689866131874920278604401375963731100867119225853586435644163189591759124391115752507320644205435060159340248560894620565027632751338974798021604767008711754927940082270058013417316474720864007400793366220976225200848049564038481544154603993118341709066506558376755474248932146247148397038897328474014445563539030380035365922607052574340824624433484987010083121353636574973360802129163655084094181878346796770501628103828830432747020319834028134682254375154928757782084760429379230542921776353292466391920347575166037055795156945082209039457409057152945214548218464979544760197173387349831524321861283678410068794414258778825530865483023119931029937244978743907984778459179651839346570953374674650905065578151563348521553130207382743751338395612564192771832972485741383959582582234891363488783452625590933226613032378927903731859312070159946965521392966353002181636992607619205673249504714133661643933677453482757536629792135621104585128298416308406303062280027628996380580445146158525810974665467758937586268008423022711933798466410323490454405540844008305788767250243857479051018073874545371853926483486882721123709706032974089627400946381752704647713102109958134474410293731720993085779774394771473564335824862268646453536925051854025856291212498897495684392795310163333881299369077112710982987423267747194922188006223202226617082119544283940610344194502867903854558271913897601840068119370005249989496547860143763956899685207875054590714465713085153340626556853922716128865039089088592595710336367186167489453696856409445784900543489451926089867331897089246694532710950614343536484194623820467465677366726648135005928645146302921203862008650368454928227671147710092505899691190223057068927722320184898564557608056169687866107707492783195752966294159830174252474864650580480650242827119706206239089648961009584129591068901207613592885442553230765913471164659730634319433946370285788622179619500587208916631850805789651311301348954587133398843208441760902801671257870355311659290411719664749066913580750282808498476668423788117596429923625906385472773124476773846175712261661861343418970433050696915244349382504841501144420614042503644956762098121212842293138745946265894634116648538077088777452344366120963835976116469513107922524809081983770103619227281073623036708135259733347850536331792392680809106790705238559683584171676887601617384014654588747309962007815909200033307722914270093854581856105308729775626452315690265686067097923001335255017042965043060511414169714791991398032083619136493864059501322330196653855679123227803939027478366204986089136627082675100433662106657848696026941069996916375496228144920670683092981625899105452361734902456473463944165189716541004854479364369930193740615272848946106068113086527843544438085124994157900259259905314859470589442325357779493428021946325698390111440867781515509713448670379855767119728995305232524395867074753506996953420337546877059549798445277278108831771995737912504011779337424793905409615157371222556597166817543455458256000032812671672065590049154258348155549194608613452384804511695982099169219608230757761842051882143341278091731896962317028552246890801333460073803404222885194822444260197914045423533071495805746532439414344595698623010364994000822467895970566938729423027972294228331598786282305358799651077476119658283465034776401321331036787616729577792995578266130715413882809696193805578098866970207675233262778946447013051519294603906073350765428468251093750383019700160940060945223131436116536264990449757847614559722815676800852716651028605090135515408959608478258905352815224426259336875117429478726704677313645571136871326347619159440609682828389764353785136020798563136785664444252030981815363783197009204756220892581222113542895877912015885664877314781131560930022939004765633186190756753486116333984586511233632704107026408284588322242741828051052366547917900922611390988785724363425175464235186816777270522487755208127280828816096881834025368280120999214773440882278203491772700463690329473814859319843817967004893749544081990061601681361764343356433943024598710267929342926092854872025633136406785224656976668334308530201708567850321088216145534795415894563857893118589748412252388215314530284560372488078554036938188677184721958123653130618356137205797560143822639211111011851097039608837594275810633377121631409364199642454175118087175576538302655294341273734152238235962706056034904709333480356187932180666419143037657324915734809244167440277023187528596503893897652242732334808331326454374818219218491102434638292846728048137968490742307098627295576102744364824311112356095463789223387399681449795107128512610230802459534771677015568024711458927809932520447427238036528168692645221727337298601087435525737328081712577069520744412502172199556980482335267011360452613966773981772303962357263092002432357458641573675592145860477547668965851708499318822507856076128188463623125119609940028427336521392724414969814022821253313766053253117123747926591090432161376661391672225687098907772538680717877099251038906044754284311805057590333796653659642363541548204836220240048376429572052160423702568931211988926729386756804358133166629023253672002906477108153082259986642122740515955816277109243956346464258808207727107967978117042293721804218797473552578252090458106457653641295795945478937420033301444658914167064351762748696817141723204980949770486922885470225184894926672522118220791563935802442987018626699756368294213175073794606163115875721176397123357784034639252193107843019373659836662020528918464877376268571919945790464803721716748889720636190714591768177108960338938302690634625325455385118043444314896642064226572787417246816220789763630590942615713947519317497046899561104062641594200014313522077449851128063508107688658488275249795827308361499130773193114302659743493210808873802473849207540368394143054284850524582834529205550238007725880776354304114395835156782739276526125010089659476508399735828974856893423570778159281003733477264294845574773010765809477175737448711809635310000246431749928211393433314418139804928680912911888680982765338588512249343814763543956760080374448022842389652199252473862589096883252989475203644761751491402707395327485145238190273143013953960024322958029014005661866498104786059278244622021949438710965038315042416132404955631188896080756533480371543303648352641747676156693080475417170218313139096797850342062050588040603272707447444763481000780154839411055788813420333909714131161340127229203125703835902297408326734239928996311526868458309595194011884983659722227331182757513945990341896678710729535644012922738957775043222148364359127271180514673190695913555999409199663187375412694606239933032064665263229853973479018480315696623647427432911304028179421480247427730745883872571316789191810198005275366048297850897342629176859810830949786839056160004620294464253176427605040200391671300425594396818482318457701288819766624021578200966328846085311424274807849369226544629653217969301571756261676414090608406737174727558543616679460479353381718022682256807673033742674062604819464301434424840543381150354086702447394280700404985716709944985601466882394477667923788569849697365209024286965095774982772876628365467547605664763296780972249153300080682329180713531485850482164447613970453409922954291085521544989771806504706368252384867261616197230205017111259595023882252601143917834189055896464992299120102736384256647102724695543405627234564002515469462897786506669035895091274238782237003449529026870095563741971248572934454113583693813984805871129932209794592277479586844096788207523876109707515743906029921739198714885906707836485743822074781971783121322765407717754497993814372249732494635660434804510980526159277965769185676817013691197548763446208530403273155195096252799718642000106452346737159883160974273141386670889037243528571985549907166839081468299006207641202466699490475865012082911704452195716066486793719414124839750950643455484630740916084843184098277987592653780970632996958214494146841937714930575052058218257171338403609400465031342463268141349796488818409444043003662224036901220331272605091209006207386172736791432351490220693328127223968133350532934346182577919243192362278589442145255063021277640981898892578605540571872803182985500121304054677410002297990256577691213019124871198404447464212319056206779720719953770323440641130130227331919314464770932477264290315376129252952362556640621652477255874068473307969450863804597872102918822405163893040755135120979014240342495762202088480000718464644887504962089908797881513664517679746012372167166651419553169465220619484938527222607483526293747437283740323419325148457270282018477723759229415628769052394534906504508087170089751675762319028663934280725206625552104329360110692312827035045286523970246366168095357674494447244615849878956057198090425980799441611659876276245688178434760827779465272620553652310632787467906815019004054280701106114098386765540763627042646669703444732054283553622021532868953807931002631868581525322378943761131818801178153637233084938007753445256007484634213591701079311394385380900587535206114036060198439286939474968783988789815082149411369980389863661875729797642534762026930570889564567064467776464315706109222806241814386143247832743682880845443958389882421538709828175036872924831430323934355921824191231230006779918599143781698542451269176493079305474062739229521856261979015860264709802900482563669152907590221057307779960191634397953951021664812451424689095010476017902039350727553863254909135490213310107973392666963532744051543052121210217006623942440927045563676264711410412680871428930047103060938580959636207240720010704240883427486745935800567735091834204226518525864178384178534825833979792902465611658476898383182429902903619332833517103392921116150279313119388186991527594621812569426348118053549309084867353930266948759827367829748636461887108423866254767138386252740359962972559196763084233256348686601850362551324912705651574932155411953687398649812181452075642708195987668411192175966859103070258728281174070374382881317487146322488861765930895593748743146972730859834452573968296319742015605393411797745285574261997683447790621835983225923617534781411313920565716196081133981128297109917468769840664637547770640368066480557254581771720214800609240934523361182815086317814085940771866974928918999496150602389969747635994565721676008562755873043271011386146641302324212239109151964743870628324548909239208665399462879736675400372434430975715423593707100094396219398443106430459986889727925772583407489859635427735763426996386592395190771125083965438888978433870185920954517414425442766865175362992787747974615421924850356806444128610558544657491388350772025503366657884998072935456061029535376452228587481114506190200639221742718121339029861296306153624401430233417493816335608246180444878671559414155568675216023278997473324692470092782843088034034254928872966683761422636966544024598285829270164919334946876393238010806660736391368441755705683389485085072529036292450489169753713605767587868585987420729465651910995311154295553040126476483862077229069464406389047349154498546342902688418829193042053972189666940026310965425131563301355369090413334603576856926777036710206067004873455867051656731789731797528611359622778680034258350973922196340533496468069909393871685658940264747971933294057756216058652269616343640555438288255589734422689647241640111377418447877064651325755571340225037674276862346922761527819025916684746273169208645367009132100589321613226107313772676164355420631831687763132004526131283049198864007623242745690124364457560422402160653192781281687357280236502354364443627175565464322130908101213758413155693730586518883998757587986758299069504567919824916797341588504008230965986187101042607368872986721971375453519755934712163601254886966292758679836895073660047073373754418896258281359212690226474509215234565707757921359482059445744443998318962027993975889183967651732104031134060472548701568008527603691999330548209667968178099942427748221240834342664765768682874135010641764713492258650414257488033808718763480948820833732505022062536978664728361742517623543922377294665580697305085384100199919367400105877562343958741434933206620019095619683758117706032634302709523151564964504701566239316989621011274329809532525405838532633986018640845958032515820265631344895718203068099008202757226183614689927195307654161611965741487189935535230293791664660716413449168966833199845437676985841629022238122113564823766050875792601346770354747510428042945620755245896287477321571658031853885690827390114789670042329640466246161983057736921186277863165776237272811809872899472464656946541816399196990185017015913459783386561923976417866796157884765383148659355871418617223578886261468604612396911393563925155210721229713099582004042503288792767937484685135517466129529279405874096513332898419646558343000424396246434350174881675160918970221627818781911719718534151911445024690639563522491260562439706717251087756699361743671936600396751618215727342272843224415940106996925669666883479209370895332207674295549627348994112327764559046357175258949279246445114432966252987530587252424123229058867867782917686508085547903387561309867344990261863396454489283428278229888276294941310754865147941408834634868433012691736816206826315309639328852455568910984293440032985542288954354551283315633676750188594221239316100664928770142008022635916769151161029029847460737281288149373537064336722194774339879168465638916435607362911521044729871206790315257422016321983337978640579522668491348492825911882533368444844239309276536287085331667867371819513040668259537198883122931110685087952692248259201746144226462028146570635954365088833710398870475758381854979305940040149469248615576598959971052481525283309136034851655764271077405798131468876372295103431438267668145978546544333311680788191578384507162197300639889556602652612090512018769378550215705467249437204945796986608422986229475416418846878535430212050931649398186942414506602188052238536593444078298288569432859735243925418465148557417921114291019464694965770491437166237988683244891689123669840733696754451548779675892026587428295855213610236108914398267550577949248634485160283324136307355914486665339128125633054908532589404471741406212304626380192304615078611660329502160749827987520574085627833783135271760866568388625517209129840832669839822219055254205803456184163126225807156976644471404158978162353588163063743546880414458579243757993775704977112896426573793905552369659069945366916166166081130043310710197915832410399975666250477707688911066420930969544925204424792406024373814580563523936829840522348378515525468051541280735299329358881433640650132939725559394050127948314747458931992382841996203993577717271873524613386809437477067522316102874392075957397468639024805790755277501592333514014013585031156500458946154732662135139524042473570004655722198728121084195715703419673271033847026989432690807723214249316520869210715172945201198330573820696874490901778505454219651970006564165184469118914225429683200405635876164596347932691530264312737066023376867571327977367577862755407188503329587172736084025614851482839916625791969793560685687309941538703403046626245056926013942683377461637243537826421712046501815678307376070132183090878398713132140501301861501171190622509183624545436171366374336551482031710543028894926300727302090079570232256669385903750910213299360225000143914637182440670373227785783260283191237589769057471411690274843952258272143980307127463296209884544902862808187445198779870518276831187236915923900506271773635200130400465863484570366602469057754748051303694084950025381019301372907169803346002126674827705904826144091234401999911435013541255340079798377148884335858308884319268942525671742642491730663670205236293770352259670772529872279657397456759285164164314939461408565471839766460542854164379536004942348793339751726938181448595454742022158297919293191508555386354921792714740543672053506961757511132388852303608729325136162674427692423310772771942205556430279085232054710760173631439176120876079217590932507657551092178408200143381151556542382860407218402070781149617161974674766579574812406430262015400892406389071957147644973655295293317427661757324843369513589229197246299762841345026790431466726404821985091727870246513949688123244289470897283308491184997511066139218998041297148254843389626371623381520246178171121086532207949979856144273016277416803457770533711371555594034258722301514703087700883301458075732696907245593774681313967134066522674903071960509725371618477965502225331000279698061908429769156164775208547214491707411631964715465216433781324729630843391583884447122435863255964555256109241939972046598870976975118359190910565734071766013697824753882241982632102007630148235095947958164457822184300936347241910361366133020495980212240798726306842091354528921121871385310905347073034672766528594724695423669716829570637869924544475616659065128672885824087850543842936536251672256649123026610559448004691228879462002949440348720148620225579473394291784557475211229132565191054315031865384254805227981187588572096724924417275135952699471612637583011291386342234068408550705029792750472567380497841079778758779291362564769736582564359538588472400470557336851863203581452930517644536010063746108232295218073552456799789115803706893957680145542897080653756823400556700447309110666048043574167911045214318081949336266085763263190741952516743890524396881784587440693247708184141376918191708049630066612614421369790163022963033063151753793462755906245524526847199259527484402100392606377923257182823578661017565410450497274089103510438457562504586903417360956607823833188569461742917437374272414946505283503621890943108631363863672586890609195072487807225422920594767232955942868980781357742374850112540978512891312378288465504055878725562154624429544041828133882906241587708919034768910404650841525213924628895417490311769873953569138224491902307826337365720545229550773115547458957968659227704624294069811373274372543903893849333477071287241978836627992176321737496219918541689651331089108148125250102040900097222381388544363436461273235530299451441298633413070565547202235431947387648768045962519120054977823106325434826998529670490514408318200462804290820298058454573799130394369956933685615691416750226405585797419821819071904772150867936719219993635769338667310335329398664361961135878252199054472106994183269236079119513966617202073061427786309100790787857025323162129514953821351007714296171313491946817070746901664712997814801175377342739178133615159064949214747223034069251789701097378944843836246018290553600783040795548185611403170168973334097614888158623261608710565164034141032008888492345889372991372285760673153086597861242203593366553048796588922898364684886856380670797786225040952309108324985128784424605633365073656076095410208207677067871807195237559678077465199522723871504825589884267305883991709720210001945497040771371355478809380840763670636133226732403875697146339778049730958221389239989033988536478022169099227517310451039967907292187777519560694904015735753924549873176573602513171821705337476391930331368903426052499841968859883132590351883458039960937298155750004885041618640146432501881991443036163061483821350669029585172062788867935465006370946231428646964416506772702796546137927933150575954528991586412756305312872643646627898151071926744907444861608989648403208865849500960827750492438196107635258425072760330167974590706759717375674453347519842932200015668509957765704141250271583870897497043338650885046216343353578560780245233110039661582233980777285244294360068266545202136856375404237071792181432340088400684701784471710500909705228893415179078723786490572011292927559509264785175986153686738675719260847339980802245910994611321973374456475504501821545094451085363437934142012477981912815952312379733536160135278120545822141661484193287219667530489940826583730902164401523069803394442495191938858521662394762498993261550617964179872026445348889499490839725207537647135517734746710496278419669664538354793383579510137971557457529734407324509504300692529383416842128126860692030367097162654144691816919595447649917803918291967823909919560147669942824400485536007758961102265260516319483425643349348126128685531214793978398783191505130199806311913531229449348432395370993690986083057870419725329169980739368136536016450222248667644603186495450497763591406412264949861039514150446217722101926667755251224990257696146013263425238618491774746845416256414853422391665237810241227612380362773082833055691471465592803393103811073966765323361444593322484080984004631984493435995410210541775617163034260997537983636231987504262875024351251254818539660700343560850783781689429290285367862161590799232070687773340653004683222043725702447227461553956607409678124644085017318441012692092807590472768522277236237551139196404511352273206998237867706377700036621616621756660505761636417328723753214728592144254439694404537313056311834262367015227730773542806854773143151282864225226753941653688229558468377626453283423789607507044390852672100421794743186537539696947626333946048100944113905913082813764636061237593926028868880006926967652244613894604762980099779866774335779594122139471124352741262666425725713946260241221170488703981400411950690603573828915487945093128466524385479224904557652263781776909575837307189504647462042494165020068714716544648959765134371084058640554591849087469243403076244724461897933791340325983107336406041054794028501821528596204606696504063967769837933865917283575289100958055166401181270019485458914829270434220153425862482315956448672944387086697318610239853981483768311844861681301380559264913783623349508475667692688305543855143971207525306136218383083191655857234197000082178049223434740748720192643292639755057064394717069530559990447519624882962569514783086573911106652626680182876657830396040583107277738392079448122662860653185394131221783823518810308146137954583285407557769987187509773090218380594940899189226614421774415108317220899339408652036295399033974060505966343130631593714075055930082844907699718323851946187930511472012371507940836417775839036722107067766038502636113941019897327074622748421407075526932384152253123991107587359622844631626829054094899468894981983305542120272284728709925699425437645040568058882123638163748651161512703323496374700313009551278620955023207013578800372894937936351725091858078920625689940592559613885099229309125810916496446548608193839498599356481021018869672674697253589816911596845128247747138315482246995785272226827424685716689114502953704862616838803427400977233731270219915233458465366266647819962213910918554175877050692622176651917864849138821940595321394553062071195925780209456773872116372924153196738377239555760606664535904797541859462541662382960322811107880137344483300542205030749580257121818765221496767452763113202581597977596047338754298836287198504987635711095642373784646565411500971040921789496451465765777927369445403559737076867944616195148925372354809745928214220670255400847480421933649270003435531655404247688773208503995303752525618634244367200785885701459126475256162715151587424370330662789606945857031533522738668380283401524146128263607784006251741434230947232243033169155464027875010231757989819935355813365691741788411300964207615892988431089121493559441180086674232397356128232521837587214352625129511388051283019168561871985024285960963682586658741961439903055636679845518692413583320141531025565532233819258331768752015139965876895759383344649152451624905447001641252858736476691163780814279493906937353962314435101495341391512747094284358977924167356833156073306273737934845646223672046661391776441632491326191509527408100857764103459264036831389977109673450761159056733695775516073842411002975583977036104259302835454471778823632605834684774581157958452101024793229882005610153768225841899627436054507626535629147958592743038357773542769570080143836685125973075283932052004093947787948257496776485870091334672895368322041648556612706572968588748786474156279502950032158993426258168443019035781907104619596939886830613623901454346197824016485598844400738107356944640942424669654657924861234902836790939982217671772888164850228076941447233982782246677897920397263483573632728594038353196135739282213084756618963409707938227763215245246503558207371607936720120801429827118853633317643895061582008004004163032450351230427830194489784177839148832740618403131475223358811062244262918297792406294826708553731985156988918735068698714854195436821282691712277509628734721559401157738356873970794607410855447505194667477253223032773060636033019549203444748848258144977328007210561963383652350296831286896665101917868722664420144310727340344974779954271109554574675382464103794935792989369816977521799044114862671182526305622256306921585593782404175277316058323792387539666849995718117083110725906116771608070005488065935710578557510937464609836173014545290601917292087927182477945985549948413148547876758125904260022883975476391765011708661455299788801908530259152934785494273363113605370673264229120623511361288268864128463238768268779168062474117633405647715635530426916981244725178556457000726276021532668807600822592454747411719471275808341384511539487844659838326155493010128249847918006058739172297369971542752521592815759512283948457804780654166830415027491989452947755661199938016815812600287932378364531925671731256641652023022685827347877070980329466348206898629604575145860224760344800904307900253568094961269115244458681341402294116483839930876440239095619096369773078827978096900429533951802717799523361321572303842873666209059460117188222245797989893659754509707542981186681955072246365796034526339958913390793033729195071817038572848725478638927420845444806326046415814473130389172137278436086411933482146170063585333797450484940927447734141368552638416438949632895142746549933560036933270918629029670429912771050522513584607490674759038770748790334879681626199911963641615894629836100797026650564094754397455352651823841244419003810424977434714696102326185403259487104372229175579447673373231600907167669990903263980669177776449202772130727960443520547932560162894530787425568866794936117096136159527340586395215502807738508494090427739954767230663050663700626257446480588251989233957774513443674807096850248369327885218091607972296617985040219858336835841499022580788905708227599588251390751783336565509639650193735931023799849727716413394175779886153251599283352269801893932717483204261618840044053478989426409067121689420680090379591965264104781064844763336661409469081064834836776649525462715047672351991146963784011397035276100796445961609101716623416598647361578047836159239950259802171776584370314687559904421228186378342131684473073448628928345451187718956073230751077030686157101824317466401110962518443027861634508391368448860159078556627958278842845539704502942621463847980387805727623467776449753493247624966537831808905256302198332144134685896037179510170151113018540328521474683537286231135351228493701820815077800208362122584990364957595639108199321618118301633225357439302051322018022312661969485515946478584972318892599620778033635758058757673677090575924853951046502590530111664522120457056710016401730293786665729405090407481941577585193656698562251779514220461536329079625950293273214362113927857680915189568108837926360057328155157176624174269755877556944451882691705911081659347170742846492066868225596525620154449092656089365844293930839003440920493192211697253955875850112555142222204126462588097129061681604261775961566434748933898885002584305055323580345374004463661989073439363403306321756183524113925573780981955116068265278358170291676515090065356449940240763079187777579312162351039906658140470922928223173953048122953226210830599714700852055520419713501099052243116015831917140164621729437810347378217909046762646147291502093106696468797477406290334479610029814983580002855592810679709388606948835447538119772522246557303281900933062967788662808609914863916612507123802449051153681833392407900297034506047944562582740539014916621525185558113506301184739796809354193484105271710628875625679920739462387835697371953619064670946097035577195654074801932205311433387331980462189772919379175123423632757656168185648446060881674725397909058803088607950102034014627357325846550628588926388397347410637286373784876228300138653030669678736132507811838518897228535890282742161640219818493611364035687667586826191747048711501411387282674511856150582778591061599049103088306310033293284050367169570300462792348799520010398933942463985013791997877539333109850281601129321745856852907736442133564654672025114666790449025344430456606926964526929758634363884238536113127394202781252268670328774163067207670753617863703602066406004609448613666722700876687485533137500804577976111796017830467945153113825579104081854760946340050612151401551391017101024681160776585816837257407736346997703596064502463374524420159484669273975950730422273081056224663346646852956552390323464333142175118687892379055769099003680688138402503405626152119015993363749381453272179451978269297524855874055509728942019482205987522326262702055185035576688999954270671519758200277004942402745243055156746148703865987819555757733156807797620173968289854520267742884663245429746789160311749224682725779069645264284095475318520927557293263933756439711843236629818503219772682321241867651813214479653162856797015574630899740115106328309372500109785138535306136698349885635467242301483036152714076495160399023598450591070519193312936712048562471173541832317231948502678977253316801724724374881911681469069480275893842027268889731695265322039636038215651394508449591050319253806499259181340409863172398644250755491192461026839504665290141409931422842610124439584039271990380086636352070821352279744365716867990293912834508277487440801596785438010094322472157731235362852461497032414708685512183107606527058560289387833327651256821407676132335597236541724824722306017825688182787752546542714320893950874560826863901713068440188564606576362216813972013147983694552585072108030986014576600367623557658476819082679762680082023855466664770210174067336255720505692056326643870309982038912807099829369542509180778981153580174903896944977736791853833643650897552821974355465624571540097944795137984573383801346630556222434309781587604572512810917052239340424057117835773247656354339560361782571849816661258472160593643627137597461455521813093296146204325758447237026572739503366734059614150192062288415060146225956283403741400715740487440449774796395892485776696485675407414169099515433174535025295166711074430976661834681032063145703592948695256684079329160959981103309520074259613939663620080803508734777515689670257153840100831100763438178161527194089907354634577970149048373621960364612017066372697217342633068284431400174995710481259772164064660746946233940395791182602913635512720519365382869706388144958797955462023771095719039164551507605588267600651170774013772588801364504595594460405007103634688189681836982420013811105093070902145873504207961767290408324705098441567916524238215643562368496707892353131498465665535403630246024887852713243453910446850412073456457358592235288739006730761079960444133586127250095079024587856265042975789086820906254594792836323775301049512853692582850008625324279535704349682384460311451501274441163185635635480167949706619288824984966965113476110946743617531227085181045829692944151295889810296419810128654933237218322519879093658444296222102168047615404188707336192464362714473477295349247406520438872260493922897588226837866962470720846586994222276242716457597103304005303007212718764881444465306208851720995204106497375943324264415894102988434418798363238311934501054996056958176632773529156759127813161511221604011397507476748749874675542822838541941170333393166560971321633766834308195870407157241437612821838541897353765340124464825988178226711969168671415671172894461599629305929153508539994670719117082336472003832707691155217835475087230048333840720569422378396662628190198825801009618440531101647297442141242223205106449523285904526028355208975912662114282660556659887667480115886897944697252713983135168324953649619741546416731828794841084663186903866050241446860913716741792479370985634476785193636312025226412652721980564428477472439276143834745891353093564845468874953072801291491707142615638146460915247057231227918932620644192963408944202924101420204222636824249788904766987343334157817151120131302300040532250323653623024234669248048431241698601862938701210664253015903651723821922673594414375186800561871596447335166489545154897704883616168127995806335267625045808045100988964291706278560599767236688035029995979404606513348208840845124427965810119471599965066652412756002200680872400440623260369821126403918089352041052628597127939248328356362514127270520627406284321883666870550586819535771677447992869303317434803369899311579147489771957690473096942378392859659082603390079823976611605712065404273046843847870308583597947197410503491103885860131638885957168840055153000741945375794782040894793962560251999927565305716645857255618669779182960697017853972539118613711628422629525308788756457390527985518648510912613132630049319274054025026001604315414234010492827050628688741979381055728593119414670649607765475646637226993039398429659239259776864268045479093385736969636038842189477339039870803616247789273189106488010585465147581705330029139205586105042157994401132294006956276952141905923522289033062753081840340216954790955672147935236275566743032042417511429239042574341948770860676431034926399647303677962354006606944283358904026822980630042370059319565845226150891569070758430518493743106151567752805426280311829867891787540749589342252426382819709024787043937437164904848986019860184895161784018207799282630377150285365405491264446956774695339951989682447847853973431306886787030260466237763414172623848598601545755954854419180887420325989866360695296546957995597476179643578219573277243543942771374531049377450387597034468339210382550612098116576889203245765082963618824146904476835523701831381013145449515541178776307385293575681126664122922549762461172353145725035443143065265980385556029361469818192648673038338920524035698689789612362936739375889579542186928240863735887459349218623442269713334458824504143794997085807159201704893870553318491121794334214204053974527122510649139540209755204550633246192187604746838638749089004953624873676246645033100028301523315583718553245019185732583917967469608417074019009177357262911262514619688553216048448128707875060271682463228083239733602062031926809057893355312742462327875814714710138378256745501990010858146090229820904490429795317725104725607899007052936101588891097646957867607559671050137372609565996894940893235225336915519391098116783344023088339865543747799928419333844651885816718655210592559959502868368432532844122214738712527380889206552704097437861692564640727122275587108779454793023238449147027323435179552462348667222403371316205975932029311281014832171803946864335692050081499058420585279850761387995731666538121877871461103174478680275097245225513568310698437098870513048998700799046497097695765414395134660993605868159116241964813053959487840812074154100116510524313719879360745091410790757193175301450010915020223258304607221946956132940822997611018510403010992534034881023973630953225624324256235460880659364450290219048365966260268939041086370426729768189941445726912512205239416420656263413756244191536926412330009276297890431311018903358245164325230523112883692424429766139775450146467770280062641003376460089697584855489005815739838535895563541193652080706878544453843116615350133877789971404935453699068617364218206964082209037062852724900972185521528702241884994754817793872731445081592618560151839856156454717362383380951425159374953081934292137098038610233237515647956585745524987996858604242875042801953406952680118706744538048139276181469320974875111918560485286188004634053735378764680282813500981620053071303042063107008773817825331420173816223999026958350417150865319255476748872217183140875126894990833143764688053237358751217586164434258478921962932195565017985547969768990416708627961869634398306694180496452195509490114294875882721365321443190970473458410195140498300856187561639659866624045968341977201249469135159687390642718638155496190314097250672442468730645938029592643421935174482585742286602992610628706506239569746570935119838619295117164103180730231307302052903402383739540158426306900024901406482348932820588798913424381566199350958085263477651357819558681669030458981111319365545234746611912803409307970734428793040148684072638890017253444747153068102436042572137334442060066515607993900350150913867068942756352104601511115475263233524579004345470373466316331783289443749601298213697888631882882237467382671289583384553576619211256263741859012694120548861642344211960658099836256019534678130389251458221512202565687280229718259564383133216851629323255680425590823728744978499386603080087620227050949998987057733851807942417584357057692962482237648581326826465190883202200287216968595977696803056604754317412461253173867797682979452167045394474177052413246518456328933602970771244823987656264230986305181265979285049357681677882909342770477265930799047749883606469800514317849254698912376252963751726254813518190059620187265479235891148874719647980106641859825114962314007293121517417275747728602499106787886622317039316519746946697174234943139091720975213865571758848547393290595910300293266672714999773550473881968926430666090081150837144184717537526298275378828131573841774784436303946409286935085131865434379020193484200970970369784850281565938971415170385263438940995996769365239383441578130884513743091924763424105823958778318410650242874742534956285377628434559745913105048703981558314781113988721763993300766474009276721855210654532629512757644438688978005899991418870517805297848371428754234728693401559962586144201622229397433502886926910949591723763286596871765270752877573552893205611676900919716869683579375130221583844391880488954639240392193047146846760596319492735140210853258217818068560822948715831508881028853436665038039975958654075043615485340406751073711596541051351363380673471831668412450977344558246747624255142123926847322441462656151663843989434121308676035072647129342750612102655436475125952329515433435831259659204385607965523594356753367856443484529026479671519832947723204479739176822341335210997962871990667735301618443669782444722934347043918444604365134637272326038086560407085709271123959669853494780111158483734026162361626423302303951747924982994020789441626327061915708098860121994067714121726925323692432442998189108994615423347610944830094134913922407687911552654027381386008379923772266505283302763890727219079617142098475231426527308768928481038678781548990043034550192958644365378240519274759857346693430917437740079946387887442230597143814291071280012791922367237747645332232851798758481094942933748844741635250149193893384587701263472668283762195918674123370043293851324982576900532452502651490445435796968031836467617903898860324906663158747007010700293137006919932137888664622931180654156975339888535083230581536123641845771065810524444871168186738475614896629137305309981151841521008188966630860583910039424433364266344972041212160431848303975886378680497747447542210995791488356689116279392675492467480922368059923642338246436084282052568609223662249696948523334956305924962368241602535362492724543355170472597085343905678948485414713392523968596761742068212410981129776657527677452568047344590191273375649228559347073574489413894900441611463297811520726959208761727629455170360173133398912649235235941814457401232759527715829950305597187676647135499799645299739546502774799618153165391001726434321080076734036295091444230313907697888584964614659827111584594042263952670752261936228041867778923514300170642035068425243919180697448109937430122760495757253400613584674263163625653482091308293771987076105985131282277472239371178022628189685369507315613693359065569136981136308127366028245500975769742154248059246588039669710770114737696807075585155011174591278413676804762523133907580008789331110205495282311803436078916020354864725036491828331705635521269052265389114883156073622071957412611522742133368367198057676487901924618875520682446128010942937660176033797831762487167845802569712607905528625927825514199791948116661709433853145407106812125734039377203148234947755121055333650754845277429101555624197544199247839495845734063213934448494238576645689167653968591219623661957016258821254217569909086883483920569332330778286455941261850608810477945402691108537720568481792557997165719163278051569452287446171933716457135589411315276952358810975481998980048431876554464540011098131550963470104983069560103626379502599248807885652233182434468263768026326549007211887407607291277025863833281459897508083927235755699985726272203979620939693409991556757160759403189816749263571735584395674353514865104466756699187251774150230879581805630752260223573091107402732615664890776651438667937935079733150336411447805364407676361709295004621515325762770184379306590548703168698430443069755595488846741054112397637124605236861646483185899772206904806959488190733842661009880906033665331229189149708940988034617277523980169314067541475180998430259266726217946365337654155357995022275098365327503616698723367918280307341402098945109470115269617174437332973344083840680022434524690583657918607782883624231703564171968812043676665147151298149725306959208868211411198547667320490117550094409918647508842906904663953848939614684581686904481955607668765518625703305566652435231104710092560608929761387157991800519715941562698040797151324244676251379587715918605300477361980020310195465533158844186839973329208843593768536071794629976889283617017600898438698804403001009072138537549992150011778827450470584088376938873695342674516118003775780382568564861292771774215240550545910289357690399098776921375990974053905730506475142288805890502567770779434375168541206733633958021625285636300618151464525585204531367968250563694498555970743501899079772686498571420788390335500438190262568734536246761060881012829833050856032688491271137764754771808815572618573985181444622819336774570756451684229334617378769673690487930291642020725520736688137641331323283528212281810474483489051194230444846354818408881616202902210091668059877087076674219504564876974029771384866384219745797901494425753557262929088992537799424692952165745736206080860490871886554101020720435928405438419710907428590556940327651396748257166457240201068739079722063030052312228783806988135463947977179893714263122366199932522352799710579368717204216907126973374292716384754024101448927011680903808480408960572992487174333714435712135970918796490174225026451469352812532683364759835303596702560074473381692187229748931083581458718601470627130419580634292899875620508493201114619499736305139487571298337823359512875028564195695121199622979581365427958399647092832198012867079274947043177246746319423274075127019267151156194156701651965696847189265517038248319688746398410882978837803203693343345162685701216244866228868369569600052964428613903484657710959280431499608870914425917404338280260791560455478992730905159287169406063972143014328083813326859276895476959402252729473742329043821800775270953837094999734241349903288907968692614616313963744181269612905372762665519839686106464705146940110072143480734214422896644602875190530460873201139750841563493665831969939772804744069000161485019354232215319091552589144751244583250232406704589590486674676491728672645734950738723638363263910718953424226925437754377217772374903971090296125839208749237775323768358411780124620395323386703693436833381040004435223951845367136627174837368375441459979967272583815331225665806396704308692520356827737221737426695398064933515729980717500908555093388668098088076828411751562316321590360575734986829389256657346032539826161582624510140001159192695493864912476764439285203537562022563709758895089247244452317198431374524748696539869232440167578536597452537527728562368031116449584161537611821034079508099474057660484657759372860179804304942511698363853719640423202660554439305346121564892682420773245087414648177200416893401297773219697490029373098856689140421010116060356361876585489326542249956700842017460342187434887340281561599609598413526504784063227259560450715423257508663061122898832861644435197427270136820964614387802159132173244052919172195796126233724240525678442052376840879636393752360953651256448585029048202503684921814090910923959424464823535007266735894896497517715224130399172629762702713021755136656795249353677174509011188083971519940251366254675758605678289375030814230898279033240830421295943247652638714990514380609002067371052580107931528874093442113652282743143675947515616910235522675408147466484397144435915309540185779072311629819307827916929671726105838134672086630998564842926651187568107893582885209797120635749190721178004096289964172200497168324795421507166791406789081245587354972112783176459163456515413279817855706801623663665011870064988798573479681630534410920403495365696266498972893804093994845301770486834016416890903950030902583364052657740384967654901743801728119554160555486021235468460383527945348713490195489306532516550249206846706601178498560548289185960202202932962193693338826738081858800683599487226091653608092860202756456717967688586040006188256577893978560150003827346248554109002019597974691567561023551343784046069008256897103327215097780210348298547221269406609685159131268568019090844763554103398934963068642494649309432427003781065644257867159100168807997682959265539560730348593775227016245761775312724801134993491875134098675446369627480912137181885469727400689716448437965318513943266001729351175058235925837317772953703330591848361177158400401858954410408118778483460000791050915401947062553775680899588630200567532859546311801170921152291056082142646014220604526894878975085728642839049473132374322805242164379679504860921111504980928485684986619610625306476101225362436971778304203585772364381331047133194717205088527067435381765598858336532951065069358759777918237191008068427998286974484778968798494651496150822359378138686555673996689070994939392460294148244899037928534065089904244065011445841567582582491622704156392528198750433626401325526060993530904774555444391839820574569327691480551821940518832127543617813673215387820517212968573708122326024999692411258589940196499988806946999701365798421575587917602670428638095558429673175346608579626766396592539284726011788291485305505013470703861915014697938326888171806116406348347141835990517377949312137273974766400826632375053314075411983473773897348294646512193457566642809927400905825799682731719150432950513870890814074321201707550794687209237283498197411518740042354313146342459405606060948860828113842930987687512976815940070186103152803935265975915433865651234740920720722500092632604911161664592174491163539326861329588955775842784742097979549240322735672473021413896166711416051960484005167318292292995978509808367857224235144602772744606049550493202324215671907599436895001027935671098142510736730608186741373303107149773379761321621448311885636915877082621402198432177298837645796830134397144755970205852817805398510467620125008562620799240879528431445830049650648711664329947706127796906406395379086064218393585527276594831480099402481361778284905690102577781974043796020907309433755738822295215272723573037227385278060877162423638643128896249351907496137195270610552652835712406724980284697882350797971189941036636225968190481449399308764413858214508895085568883635595185477476330753020014753572627270989017082138101295583824935662720976922135879054239426877741316816371689356687776732088313744601564129191807485295086941593050386428574994270550031084473855949886771025498800404943716315513875324681714947195360038950851364619650318677588266394991115678978442296847053605218525335443989771193362430036426165969240865529496483629053671434125455231601802304642665202563250067201723997728464530219338817063535939654332957383191656765252657833702984586473588399368707536693118153548498891181311214111260845783539179674205626570728028796872948944969176747399956884444552043006097236900359034765276752722361800363915308275534762556648418047727245402915445269361996050110614366753463004773869034341063431361956338373713281434484887856463298177368067059204474122455277027050396874549219098638682242910445988937764917869400590357890731846178989726697053817388711176693915933317698224004146077149322406691961143398719938914424862558596002177565608948906425910184773677796953503241059475035309119733176510461335900152629878327279309983026169105831314926525095347488455973935524552641573495136889189820507962146279414860297867674886646849207588563545717016576615378852604526381742221529105963196623966928262868678437498387112158063588698648353170669352478029541467578794221517045407808396127064596977732391535964537133326265891464636255952538745605311840896382646779239438867732382750215519915541979514231903994527105119832793641693474016522577729725675817150990272294963023435781337214132077327828805510848100698168686251284781550215513926562979633243108843773473064112916042075851938281764466662973565636706494505488498469311878892640168884979129722421598845964945240018016383831876876501363243862254010096127815745092109205898673377057761589877837168990936855017006486613696375831806140621506207939499529942002916506006433825806642610774796911364723221258951372754279712949982411653583007013610965155252571695270024532042399617460995069493192177375349921103734841585295812902716191705618372919182956669624460611767276318176394219026938282135905824225407928802519244007835339393826744151921806610041762235384252372237944430326207921047077305463080406079835774076954270763226918186014181644463027790847847275767694514722215262972134557923247341304637960823683958559759748861631764736891249582594866453321985624946704485723237446467089203261492994426977939821769447292913578063881429085009662092633223680133920888453053072050781565629486868769656547572952349585287342849549410822525860319490526312885531909012126379822083423815385760808364930065994933455153305712187011584359822303287195928094962098701590453533359289659622899463261521738028549005633574507044804366628101275340098150452152415018920190418263234226405723134235239530719225682047468680146675902864714615559360022776783909062819334975388835197878916443834097226642631458726452798168115198054398843289843453304215030108190911925409193533288831534848205674240851198703989230637223607375367672410894990956690601885486631808609832664274728070676125820737506291421594889919535971054472438385533191207236383257202837844261071115097215712571759285088687489634052361630364932671132434439100304454632967796786360916122918335187250673875354791759865884750408735183299850848340255589247735700459581558783697562169292465772205969814186817415366522009766487496093251603493947545311944040000165644607225736816849548834004415591690819268974149263334339583184722170500165222543682266953590015592220129372330930892149543599308007821304843617239439774841494926659698706142436385902934101880398226813803380068434596685632171312053445441417809860278352684864299734296884748701485488279165609212394924315273296876769795943835364804065614232047976387804158882962452496711293003872717027375289859248149023252940520692334885332881464276010445572955067125407016074241882455942040480538483704403002273847930742697603408809323916459905208474380752372121783558423549777015592138407690215207762126321008171116218248844998548201464145329411407499115017243882954331426749482952109774291503812625756171649129234912489591431660892036639786441181788632443867959860194379023633590991109887823645859294570244101563300147145320139245159912712343521947723975381097027223528140031070328303640664903301644672129179023513399088814348591244350052011468570220888707151227675275663903611567436047935359498919030796988933436695899393724476949497998876075583230415943030346910681799860915065362494687753970969794435562851828018463204295831583777763151619980391438292893005053263911739464444401032354513816186656473751740321754464738290108009878410816154665762241272337682458681973720942242533853567425951041744345806906626301612222418997980855108524305002004818160348180971285300994445258502035986209482657549844920159893314948884936750778198547925751161897223485244508811766830670801086045488819566887920928679117855748165952419498996453499495307266752326658390179828808847453243029155767958289633337368823732189149304146114597018360843352152807315325095542036979120761832599791528331122084514499979577011163232346361688724731401082490801514550356573015650326692672045477038899943202314506785990860566554754666141292062601704324404152758635166147230214405144300063766940188103286737655303876814003567643798241493461667902593761184982668857846648683935974838154947322843956200210197598352022757013687156682279779345918167923813143833617684189596195144916383042793649816759166974905736743220947368281093750006767986932792727317253943227958807305305366871104769524645102374946739998778584896300361103893453248827646187073673590344638977111853439364342830557893807388127179808428660466261829162370346763815770608209501295427815275782847832336265467577353660721838411110271332972225765256582601078651824432998102712529309867492962926642707468002837418654049692583267424186676767244928332888243168745329722643839844565145842936160908672716602581442484364448947815660463179635315036505039696045469833225889206472669734852801423431134507241019930331154311672971381270607472430419889118482402296917808884381220638501778839359713295982825732446789941592826914494994176926123622389890032962474327859032984182659817045094127634111682796950361408930566084939746158403249574862343424689414863774558651135392219955624984775334094002344402021550208298133876522345296107319409171472539574749022363789376321281440191255341459705098848545922457219884050047380964477698381705053303973493432592060065312826228983900980479060257617167617895602291782921452055023523240152891664334699181349788405716745015951283733170060139410655500966262308064275439098044956157498132132196706642397599298816787597224534596245610560340156396655523318165112713334685660074242233427601851255393723951378932730776147819829018791538722493550234715389971934699374003633599298421922752908699777698723564108532928883690669130014162412400881315650385385823629809305285285498492535283036337323806533336787592407834140784314825883253607144701813132368871858498288779418934275100143247445891797771716520622860323438646887254868513170539534697362376916596757024168959608458135686006705701781368171186850012075342037061479360140418094493814655674889883960931024630713113026621051582526425872120851110168727681614870682112703400748838786707000104286547205886224889024569174087070420113441302847809561809151659739254220908375066623421760313417026230122687082767600284228183683802374423319723741220822195260950240431356081720004782177373076889386254434441903926104945246273071125260170102111145157300123034159418754745078863945017743783689205238869276910256160737339133607466101823062617952050915913506048553060820232951631802944676842550142002640663170398397690521153846918945867362601671993418099868651967266160893439989963755791683080317564163853665267986603294385809727620946721627086529528871195347380270481351119578260348402870839633582119817937187412170073275925429308183297365702381604498260957078623769551021152416276610284402275278609063014873993470333172289724813067460736039960301878264937762082575912697941582050982645792907680888496879779545369838150971169399031169085664281954405298807925578970679051874824426190968505394801190788305195245853499098650719173478731754224650638977586687762946574285252630043709251203438159370307045833760900565148112130128698152294985701141833499445769375849936518598576990068380485287435013816754225624490846475618945185688051924796290261145232284866786950845195162222513108539196674158964120995866728582539260325578876887688549689621441026863947024687873742369166734510855684708241052028586396610374621768714000634418350800467637690332171537663489414313748523698784997738929178212574597445011571342299928463693592289373548421037645549618882941639487723056038281675974530927067823045783668046129225000830674550047043472726805243442526323591897005028644756165261892506654291244487926812835265497870852184688226422329054857344698490321103923883110393585026366894468831575704234875701955662215666391865210588368954167701346621813617674193238491486597580894701377807905999230409776901280595040760229039494169577830929501376913884951965100854366577533042809225186616819915019741754880495084655236750410795771252985220945659379275134169202450012625783754499271066401169285441030437300216912749397632209384343349056677368246983878269214196566792525257897166062846155382229124234489379481319342771792099825055188953075485365396241812560152429538862054908024318831234119954735538062894493847295005951385938375376941970961620787579325237367356278130194507912504303151259504623110998654735194201916543286341050279042274334902480235005121375411635083945489650282766750555058129603715441744604719093097973229064521855299795087226991734034410615443961534423876377790672575685718602018498919678207668208736016610919830157528022743328241173683793004401359273572857547902480175352202899836683143798078122411184548757608092075440244036069694610466677880364317879602914917919818023769921706903290220794565691798925201170650191018917156848032880373390815710812924672362465335061412934133012749792433226042316991704690162383545255588859383584842303070782411505631679414688709670892444393818956426785420666276613076132748384627466147766892493694095383847502456239418754152485431156201160381285879767402139173490425868216536014985137519832526294676361028240527923787856773426101166109450095966240660109696813700993192370358033897254868635148026866424265973070619601504950098257282778840542774451165565218802344231738422673530996330000135570268675682581315768764151608620028998518240555571081929610106812317926595270047215064822360614249337926437993622680225024999448261201879014963852631476426173255429108951186851853560488873055305544922474938183625539740886048298860487460193430517767879408721116683061143341883693901560700869592384077150142972280612965892725890936845042854328833631101564529661939354467743992289898029875532601587997057809398998479074211019364201180059263364418745854961982527191372716445061689916512480207902960873671564868981886879593566644707309979995406108300435132886185544460100220955576915903271601898535509166533608508040136243804763392597263542290165883055516320717971605895803241076485539562696622536069227923445604222583533850440129324544948814565796164197369113236723072553618537692074621705965041928611420110578676665895547833377328065032415327270316592784183104264465147200377825778455428921407551532474435775766419051699375591315056939861864262514889513386394519779298295647081783408971641490673957744484700091852042533451367013005597954886426076354172154936581116777450590821079265371514339915686087974910860794047222253335545867790706329754487206203296532696316481794953892406559473728944967242542850427616839561832895116797753236654817070996142052187972724777127754727437454324623379446184547267320760731210789792597793170444864244834481665003100685985149529595090267204966198070759658660518085207639634831009816316987061799970460516559860440201596047642494627643612967313872032179244456157217407698747191554262855353508168442320006667652206083557398973657981377171052051814437994591254231419349157571886819593362219959791791346847557104033290517369035744236569617147758683663596094634458712135702284915686040102410868505382257384065815300438248799974048450733640019428563269778779818323940806589073525438685601701981035244878700208031507778287172217336638694352561056392925788421920194031364255739972151645148803327331705186118689986713226595537233767692581550460735515576614281415187035325520095777312118720347486549712243025746113968016950180542935787211962455267386935656044804661102502021727090356745813126044356829392791197797860272887850900331461139323187080126337810780161565540068893215384448163556738204443225534533706240002119129195824621707233954408599623345016510282278968073767259899148006457932736864296509845220665532064352021125156135243019366877470124240511980219198648020757987679010079646090243714796022039923930810432506347360940634857225617030686932229114026978809760681470899889772648273206308923193671914747157039585257912943066633877332916716136806952984159695122858952353820762177179203529981541057262745363795054600024552616147011293485790313926367735784321672372727656342744601131994922753542544062317600123098100268634522349788048636396516731585069492792827952080778674704105257098924961229623963462254845993276033326652343995278979618619582308762298739150994550337460159015781851236516504557396719826784406697411816695036831142539901867272842617527063434226832879230049423635086793861490432671775735125196697789787881338528529359203607274151893966424889650666069268636454862133527046423419482053994879953612543029798109829687893511102852713781298780195667178231204288196749797304578452100477728268723547720629294481273880740808306497324061716390897727500608778375301044909733992002395004954035111050892222269366082501817557930637761703304266463596036975852112337381810730598514863960507062513731009455213004635570870556093594868923874305757006707503182077434691318663334585439804211535194904348250704108857222787547726218607474117563236864353979880359711636967822018143621029874271794559765278812924384374193767323995657570758645727354162514962509509681883419801332564822138454122860425113942715517820083070970038963125665362154982559464135960042988228319089258538684127522828598622794049266698697483182289045356593695865285305358674036053627536231876988369021725483851926731031308248069345588494586653502429194886376192559065435023055959697377496333526326741239210060644154471158496344489074346171182830387284767086446612013938289467275194461320818454263469792254069714451412411074031864684098089341817299801351036995866213472876719348799409475976953291967478082435204823069058262298124649856159685707197168009940508801629047941715664614904798585362795507393054398378767921730965402235930154718517775922649078902077371850975438278143256524784763521733498097924952956328676163395516188449094905152836427764271433589032481741263354220674819548020789846878955836127169643537762632258063651276278569453040000881049106501661392731572451169472416184897304963390312544538504607241026098592297697782095595723196511117844955129958567641491946696296077777412611698901027061265631080609864499392477646579262007213007737099685761567351588583767696841264017649836519790338155231913679779769020805756782062142152045326909384670663005200360454296025735795665748343525452507466733024956891588173406946939977067408002631968578536094903648411532524652835333503737922595092359536139345642458216602922584676101640480090646798514301427810460895031448752384740588891075153450029189931466714918123396035643864072114222609650069723292083973449745980309549796478365190655967590972386526265645484503421647220677768302603296692529979489417820760242920908165073392896935875966669403012284986471039258532202929426676375533532616608538554189843988258174828822423422543791069106742484926701612717456887357442795430363816169319682874938218548429382510847358425856847953843026110376437142093099281368486079090787555328246100516919461249224220359984017304636927188929236352188809276081986358226124958700061166703172434082156006258131282241055630397037159670939442339497180473308853918694599428161836674430846964792641405618093311083248526661170457563521382171474704826702560960599919774698340374913231481960800465333522420291344400646220961345724746309092472768254056536415392708029923007034338156692283518929434036741542142490701789209082239356308739455270444709205502904259365287348475033745775157606252042052156331885143726256792504885149122004176018626348336520578549585546651293430164392417122804343614915051520457578712172789056971412514534445514359248097333133381261055430762534270071379162012476782485945203482899373049520735877630376238939345870774237637665748300452672272260315042467924860506328684341821370562682277540905769282456439897183991877265533580958628131782247368469651982211683121252906558325600388610396367877525382423725792135251909310455300574789029733209180304944821610699767336806684386122154099358902612064376150419343204961099343771033958038829817880383775143829238848267116352967509525366309951846787898540005110500836514294875146852254195735579666593085381428611421844088976183058325025969046064472484362179286220185017261861974157421869940875839308256005129794937438189699071141505804595951224793680733966824102347625935548844162717801584925120263294698189240754115916895969118177683528027401529172243410510090356759659888146482106079415028207226098132532873360630433878304431931879789803948089504945381811736547713456303277850878148092003690842192599004659073369062526704795564844138236107768761380884764674195533748557216214755828035502833418397756858660278616203102777895441242020244657934381527553417961413934697024403662660459971242621045657368399290803740623064646400563673656970480526425576408777305289375183694153215102122551315287581747719762001488819873108100866248061668055128136398808337371657131848298843256558433204678850052738745916699116285625288636659732178880188924024104503439489339418904102579080932606597499102979481660413747855037612875945252671986989077288512318272257637879778952519676628416775954438873253217046809501830574702800756714698284980392594460868424123070244477044220944455784452804768768527861421424517533781620150130294542410819787304638363814905511560808077773047827751476669085369728150282942963084736645270164637760372861602846875333346073897389708708951167206808180405329778296888340289306351523715162854382513023423484814947218694215777426959219664107789740767767451779295833721770937210997172499974922100751145830495609755888512899917121809814672212258987179585240010283266185633279302086218693177291515500727889361652060861491798651745845342338371326570589516663429611515977348952980397369040521495569594962850864017972973524007758978909859576135806924094849669985184207772757735539217816740507189216331313129538517554322675870070500509627038057437623724962220252629074629635939751716752301164815390304346901877371995831375567562163380343780563746018258202333199803607177705806734675396174613959782338049465421188633378179229484638579765555196427895579614881015675571421652448645512548815353380329387918860924074972952912808608092707567127252345981733400766953669185548890953113514758903687473832138004529290550982341225291862383971357510533584953315304160033410757782556347452735833881491795551894578234389882025590357603393427401007091330629813188254055884841268710860540256007805085959147971799246356268852783144206708169225029498638433161429096686519107231763598833359622817694198091386477199531034530866300457086744228948846973225335879659939830283218508547441725778373135905447691339247455284258054032235699559746802184369893131025271688436730166353785495549127006777378530202211848419690444212588652013157224974511711982202064469596337348239053124352961428802808675144519407514720942962234535141737192212451207146006672354795662979233362691753786972294330053889501105267883386219692507547971571476008633241371630736828052328280592850442569672690200865297842054273090723148204413649423895828299011982532020977012860001018356340387711304227516504744446051029747562468937092829254758886393146818288799195788486347044199870194020802918396789669880301374380289903116948926953392948659981702112355124071466735515171497050103144877373719814432101881553021612972724376657505249855726160739697585039423332293751066873058443122543492514845415700145636960752463600834668540152364819351027318425946873048429663766750392135340122875710101435782962119696561677244812275808865275198542138187186210086588411634535604146737499317290482003923042735749923387239455768763226299249581930963460863956129954913900091908198102221302045209521399376280409646987185130562216890987282594490596614275504887815709845498230101410972492583594832761049702796285006655935379186532001806774051267000771233190262282117107521708447056203946283752991112456284280866180889611597453085467273460284924663304189164825498314303613339917303499621065781033475347278549864624763829581355979277278349054561173574088677093680635053723055976314732372941426392300378414610279888232886555127882188417649289550905112907039290725696686541204460349724954026651744316957385701051710913148468717896048205368841470560123224998484199230768413356196142837171008796334641526182062857395729812959840670468906201673308765544664570515040378570946281033961239610331643309274404534893029085265776255371799239422451660167468356186919744646554144486711203854046205028817238910516541992440408244552518391019048005982161786964120328291537223848174192735439889552077486422003399272423858193412728772389223936474487919323715693285093653650933910840861684039162227018388311197235119709944998734746598839079000203031816019052399992956395085220510431820729715723828124351772740781269013362065779914482642490190747354133143349251280921381505880453057446501452673527361218322310115726369292560195463527051268688302960858201936163556501559398385956941343251207052798363872742616262738593496003475374336454434920453835623974660796559854574240147656726440562734999044891865614903290762003939267212872217613004533556595541591867392234278993574196270444617977400395614021813281850774236766940018261099467458497385641887321999795599313137606611514019983487682377286722221499074819853760517114238057006949248413626958117374592309432512135675082586323761122691789608969562637610800004487926530458351854919543339497167383406563458474593142183340556465189140534017209735352357405353749004037646615073488137789907530121525517557813771039236923093673319398888244369694468728428509064894970612874523248634890114062900182957395857746100705027579427801409456588886051691435887130177090379948194270822812898492296401865634376652064419808793527948511336924936963326987338756666675421447684911759225064953188721114255044334261958252870939339836935953081336679173664137591342539034691529720308856627163352052669063079723939282843778852219283262160485045651474654830736755889120920055855406144604625441727129868047425874906020533081704594277719863922933177198295641831206156492228138603352901439467110756508141143745719715633763001135658782206636790977491407785757193117597236626545905102047385261758067919092814676300299843825711049962082745723615383455602875789932700345062322924604876636939047599351094888198766099353659684465748384724051447106005923443727685163206714696466873462996360993103504850678061832158259501650988472763455727090484817880410281502773809280856251606705344417365822525376298295916726211958012090012346977943435902072821344415045096941660462864841463200355828888787176397551276090351310222524794171973489258460079232763282574355310215959612575472217419672127743222889081254635078122476631324731069974799393941308509261890447198894096649892636827301949679001723320987338613209896084365189125799454092356032022262215248665615787431098204580591146247485805666228953915901717823249937222609170516531341462293017046918781072369759037232602590283328695185202379303046479506106615564633553385864206502232845471809682504978884296051344986815076095803725931566618113276159109109801516932775194412970956384169542280552331172308901646197254238643468444108261027829116111539725969604975125745324005635263319605908060489434769854241059021483548462550440826669128833446521368301210119117965189039195170492802886408465547372088773738066073488206140558472440898195326740173865712872969163900820992561274650443342883332617864963295843973643111153231776219997489004115939449542553748064600381903714285009106226581085170168862964931281013928305286098235677512060121716279979045116721894222982279996219184072314910136760825740371324087886259293817126028251235104367544329611498218601174966959717935005807973235845484112291799819499779553254789271026259489157085773534581728656894605783295199517146160984543004014850416716383571290649629214229620021887260722645701024926292318500225892405426630453218479035415980813132553914565975690217524223525563397660773404912158492988160110045050278988592702412003049542672089315482599784395096256035315230420132367421735475013502976464084320490838114927167453219098861925671075900248270049283918660607894897288363521858051046095197712258142878502703402179461215786806033484986965533797504905902023587819362754253755654195299725157439758886237588520768856522116250934180918336898290721992574154497860675454228378928323998569430956228095260972608032507969748469087081983503468323172551644842251822461150462291351877040296707302590019083156016674904191501996679375522757869971771128248841355512221408342579307275492977677173352016269048474341088459202845904924040079273627666289110520361642476118532156142443903484943957282363487596373973480596721232459152743738969427487307804397711791668212647041953415303920820978908181518810614722763508427142001287172001838176229013544003774567447631295916645820874788065242205337521287854531572957750548509974385766532367720046400153898856480046935795434569128982048607423815075842952683655387470027854473334474187613389313236709694207288384041336791606597129559481406968044715628851190546385318036753313163666208049531398678803031479518335834837737089222200186855475413088675629536968270476849250996151346437364045266785459163082031139690639146495842391216859198157770058631660458645201202976664784050999244206744031758298530806587554211532426019270504364283489638453639844686889022232158072570515283985091889773373739090296349268373385364135689769533745284767273564628415375390004261777381881284390857740704161790250682249359881585194156222251500714710902707684405893353108961712530548337207617180968618549384511733936385019222958893581663089582168660674074887072902875514881638440105843241048181104928224623504416188612513646820754589103783844934787282400165034807595777509635721937798855839210817498731800644161524187205442557775945348297641456112514430802437546336875905348185600034220811262015368949646119256155491022046953076456191458500365544272910097647094336448212581217301276722543951194139807260944623462675744101486996091419381871097271286659901610708122370978002444614215034007176797632604428664572662212833297889956923154482774296439509317009835757076062974213370212764856037957100814476651845717498418913463044424292170274226666765330566489219189691841985617810517626309269559697546235795087707232296297431302751126638539889800962670661008274157865141519802433639652594246472647375097330707371520069706045395232518496343912164301553024345937621342816955736938606617302301508885186868894209634900755354088305245932757963802320821903961655001807487381261229754827368937103218748111617190035931837965388286335525715965077924002410352651818263254819628649569048893172510360991187726239869895402377976939799257352870409483705125120268428535160756307121425964169903770770128568403431039853516174645455227130207275834153194561833338049871306950859973321339362682356926208860561766515091199188697768870697161574099365191631381515505862454421146147993415387546852283723241947442480289267772183633956117004304598046883316217467488543061707162097130153079701162730851217810244936272590115620867789462828260526367299553969472603307211758376243438663072387858999769425425050256335590219475371485429236728167454542430850808550961201814743838106809601070500804901045186282825033629539227815207893235312106051120925036493798345415692440106070835413689137894919853843779962589522946657760569206518702296549202507704742278194226140226367892459013328932789184300515091251746461356789197691041609791503004296588919550554707584445646064020617867190494680983348015218251483329527565435375397028344300391169168610707597666611657252804857251376736561800247491611116868308185454504163314070036530440757474570519270326625273953928383823183993627532136537208698773275766740876258491161521450170204493924017130575695970523729202873309112941854639166463423162099637993399729448880307383251317806332595004433257647405609402426249348057729932121399152471614568651288476785710370017570540888640684734543271792858806992198756279268724243945962304311395634160009693687684716610757368906083859656201010898011449230075605162680502732264590091549948658641923512933155522115015246977150587366477844542333878568898982417455876035703460669855730773363387188258652423600971460288375161859379424034783210340608922110578926680632736567157064885529285962022193881123201249013328402251733557033226796647993578588541737353323711828099207933941012843957027728819682425361459208288400514364919995726396765802079545218095549655069740753233489617111519048734714017788495818718800365179502575730269744921981250196698735627463726413395209705446512804087169429687825321090569744606027251133680385127202083375192714062630894674535521624434975572513694183170748340173815101792690318157209938736689142443305914606942872995487533685263425419255794551236393720630157636413210733169563326886898904474913905430343602490635692247034501091020189399061856613971291205607181500602612319607229520402829477914906754328217627806077474094997203836913687387273203464433787694866783868418766112598279929759886957370169754401571392113112645342668968590726919935048543852010640884119658605089676274168484136839217621187701173431794455055133022703378149047715705512951113781971379655027578698461681955388989925793248685741421022991203093282662900700766648291310106717841136245103647977288715660790958299483302823700843004372038786236245932658915403131540893731078584116402984889978223331750245000167384317062644546595472831529014926850226082524638814116169957942658965143306468785208661005529939909620057531946499008543257347006667861247287065634240139384550904786098440062023434204808946542060381471234548776716204142125580882770005813669390382914543947954681556866288052386550986881807861768175446762199782823386712529994708109096164442427607517963433699086308591281061381499243315871525839665747655779794284047666985236965310345637208567811822384499398409751845892880843140952023552077683951922666693091705997233726233154351450714693297827178174922900563376508255069133331941004269928677426223917690647891295184635446558729549396827037041740896997092914783270019476428268697822202834838975949171025884551425143067539196823161588615723254755353826388460453545227832279704749456509207318355974834130851731331284449693751659348393392109448250534326365077109610566578045449795028270609124435848661657652141929474408866768218031201528490889355310777488395155456800257417914731355558466445754257377646937171423988350218163413456187777697274051851902517601259592896872651902852205416505815190016534839434600591604204346790421857325272941186118143845715554665778945673797790839921242489591404064457682746535139070119285451699640507272922682211762436586596613855822754924686756388009599510873939997006128192219972582996512431726075458239789272963600279659356946350669186908053298632175451336067420025356814606656515952142989227419276471133620104934159470974545616319045305666217417887462586973504243263306523629322626356923389417749037789922288344513157020066065854346167776921213541892679914727540063136456769595956145545157601667568551398026631543038859924470770573899612180830505540066028898803766543671517145842481095041448443084262821747261153055792582810502064854441751175269353288443999677793648344638348898655329909719064308885599273579647685323151228718663520895420279115705839813056100120883726955327137601234350289664055399706435095488506750254307452338624186582437528113170567260721573080244689952855892839717332516836062652918037462156776421100898133563166393799968088731979778116186850733760428050045941138762238556885398561040030035037004509557519224117785230036361902702444847382821072384998081430333895282610949549284979587062445199114675361989404921605953553220249844608103069747132151958135947877003350359191977230488387467769652687984200803401189999208135539999938234155123749126791021374908994229491586595714577727070951410406652786202600519527177031103729356765022575237776000180201871583606287276368167668185831105747016070652316947105844855418298064388808793774477164966853732957740613347843847559822113494982097915348487664352132541687191918996558976520375087944158626331028940143262314748886204155960400096090912542203647730060063138705776183494652109508874427450418790933173155165510610421946101191229071480728810626246318211563195880331715475592985136162509491665220274816665137418026613900882824317250347087171971029373893752359216310665307277283345908910923743539391716947062080870814025291326347310863929187935635923283034085744980765512107357380233189627132455813114351120619468557710025736035055591154913058820322837154095591199304877167617169717886358023215541481897044782664094233255894889048706437128275427426921661166379941082974254655687367769696714165321758081360800496826182872356402250892787719271624030950913581287193874427771023445389706400456866092738438362602867206035276709455884602249537445730908772958238899330693135844024634045517495582210002123586902421244694349824240235253316356507894917911442108017071704191051988443414182972397892186341143363613933732116450110406486088448618064261426980410738488425251735595847415468413236811334789648205480583856495404067058647557777913099053537977978072710577105675338352145432694603814401884264771030507335500775432147527963349019088073313952676172916618405270982486688924005312986577715482719258776348213769245354751216896657498681091801261519205199565115858629397314882481300794233806881406499673167975897280388073638452264975537835588561219143315962685430173327875673427446588328285277387291761446816916062350879506866523608849823939870110626393417405316340775507572147207704191340337068565337386819204371589035845462903507389181372197940766253117528154733883653587975532501185324213460863761098198252545016555713020293823396213274261912379658665934214140207332074188827876202606606336319667554027678126241070930629572907201974477783862901250816621317792438065606680019503231144708812638666023714641941446251877329838056702330411046510058196062887286259651491423671334660610217460106294153225264070973580104333882102943795616871275365423936569325079169808403678889835215766367480320486169857692879776500814736894184241016091996180809574024861149455285853153086272065592645427964510282949390487190981067855765096875371535649181625637067486083269197588957211136124048110849699093064359395766919907619594888104970963204474363763473078783726159814766433908986433021975329901007260211467108768163763036471209191927948802639805535343645932597351613086299417540922223858560968216090197164294908117996592255398764124550383586829975182436105994943912024356861827940805999642036578181288526751546116223011710040664554431910630179397452319046811192892634138907712151554624530684404219999363363197912018644327034976046626935432532284539368927224679849594257956723075678146322770643673461335920820742588626028252396511903112576796642547252526384768588493375666282697973610705128482799540437515708208358561608725573621914666284651943048707266308673588639312028488249455763864312619759119637375871342483730649883576987599848199212083593995547585417685619102042625744795488539275932747178108578911352134289140877348046451406934518470482194254270871928966957452538424500277193226714261721130143718829550316542045289927958247562441409366156296014070367387350711636652259379594994192334984633492202622936149060706746325214607983617955511434533360706431436214332629944648766005657286336121639960123877565809280846514959954147460170226918713434370392955702784576659279830234917128163051892496969654152302212387763018379816601996257982218138392920415607889239382090968655152172301090307617842992818448054183095742921839648881784458948576859160807399354712992997001381436518962790843951073689839621578068492863281491461125772108866702248878031308715931082964234996295510497217126321756596437338664593862264541681436206335602275639719467946622960092303120692512229301793857729234072852888580917918367979780424561456594503102916795085615092834668543938554155700342942233603166005309786183309030054965101586750668258290562588864318351503112212265827151865525239199906011607055537436924040735078421361561179243374200537684506191565485698706561470760968516248378389791955814837342352876328513566631599289647451510984906000627255518661020352477853924468333029289526263340545066776720913041278688789576748012417708477932363592154702884730577167845412706846586206881949208976872578431011965948505349142180102196810287901694806611519064215577452974629221217982607144110358434540038100005656089356913360196684973706859254225363820595960590545839629703176990254665845342900710507743021275357995138370298314668304070864984813553850295593998346356771566263649553820721789094477983704435662436738453695396929808545030740898374058448139642164190583614404290435502106156138287422816047236342056343137194244265165002680986390249321982127063808245255292635608370136417063303097376307715839359185761745124359780677764801212965205988134052644325136962674634972498907856721883333398039845019930830042904343524398644184075607305014703325318560768611060715827520697967552105421494391477297241542728742198878952805126345823521025810081006981074141272724473090804878884960128794052765615602427420783110616760657047164558026178723194346049245975176595685414724289225235522235952161474404645270971695825685875434792070371330223779774528833239630291001799231350901437490692719788005146240526960843713437764460243016578980299681450898690649997904151891203540877816364115101378664768704024800447199427452632045004939118238648949561549780493859629080302974728350605120569571972527495539735548724842970046856981297375063750136317246866607868034154890152957689168302098853736614269563915083169160211967292392845259217154083394186004114143005328252955397574244354871692420105423090451262765379949197545899906251680079342800444365615134552307159656128770922341977288612013134644901787555028473188210269522884751382588410245282905656091181189566626473092048305202926661095557060979642802362078935340256542335318176216062795379295628434898771561647437305557706588768714387082617864932077782424922196015237547251400693322977424781456133531780819835777121512543862760055997300186822174196464875701173369586460916962644825039601249924998669851050517742335605553255913551952356601002934157471539698309918256287341696212011464033563865302762359208778116831082163634712240517374725784326780070041203890507707842981292515879658799859839030917180438058342027159090031031547633635452910265747062207723889496981646033702117768276713741689012820161273803891542899582695361490220723042882354942742219474213546460587635697977929026917660414486448429813450277970178527542702146048200878360913709919048939752480277732549504071441400397063210029883895966945838955180048617145852465509705914050989375457198299160285316884217092242304346428787523939434420663831616667657186999162154145167734593326898175212227567147168530940427390856286923364069177738201778562657496178626261268857070835967771801600334123069602700753168279933715050459194333290404013241257461844498735873483908325335210589698207443882863983919444682649609469882345875578017000923847401515608408578283729515246947012880200363852204654396968421379978531177005628488498433052064882789390223881012316750467284181849527049001623093729171381069563487399265635890116747278301549203307567073152068280620989908504611344361479367474238797337000496586138884221384960983095905911580021256940660511402428833484890662536694261201088247338348566058950857425351677942289361716053463791864689432577682500164845681158554467907528889488297608679366239014698767588287398415164368448278804048606609173004100177386243733917123940442634531370001716557149682118245581875689600834730610954900783335337234237546781236272030480786967770302803807227063332882936299299232604766832816943845936323018578816292690088761976513665758457225373273487903627336430111280951558458031081562014028405348989914917998906908562875194923070322924389027601651774667813994059371162196227958733617312987445464231186718372645685852797654270124297457201940258486790856094971290337769582228371254810872191606806841249122972801982931494482717416110564368271516848872357177467680277692114470305825532216091151916556623266243810705946225029378960885183304627354277636666021860937097959616089532906241526329759636205016712430261075995138332780447257554673829196010127166729227191033895028327902004030115691958424847083940092663124583001012538936272579133330270701135502219647037100148362057715222859693455424936624000832984135115667707310873186123643742696777431010895460395605837469908796504618622984809647260812431664597861066395296453222763353298215929462994383256173969751404299176307016766712308794603490897089240727864533262846120744642591442980972237798363384167930554993264253469920978319874146378006086842269032960924768564433155232092423492571481233119805182697148163607670337540762999090675847027407914769811633460760402978004181098615990248911301244031958014588899511534525199185362338356356808328908134679690405582615516907395034629597612097872274610539850696872197815252880566395692094716534576738174796599345547786525714989503366798632396977899269571148694497711884456998880732641038333674388264131913990865360391920236216585147600803616471773553574860944669812504836478291051947912517371671544219870686224927870055728724385226437406897985540565213273155882952501321085486047945927771697746278380150864039674503416151135372327167120145409132815300919591529756691837957024145959816415979324259036369149623691550213395932860334199276030459244992390604007259364031999233567802480839592692052082979555718258176008204155555090865689804356668831799622758767230773375081574161466349401102201424246080503077733296715046465213478125234897106205332284479866286307996858006711898735970957326982692668403126168164459358668726363951563308526499584740904668625044009042717020303753559358383807651184830960565055252227308639499486264917113693590224453749887981899452696843516787410452814359141418066175331900795641642422586197217517828695508558348635542752585865977977472768559711339002066148454176233254043928191735462852416381820272939534029007844457864482909819018537879764681273808321298438591464697443585932600083907915439537577211479743443121658059713183838438509451320439205476386070119030155347608762974727216248895088368075421908966594931279602470942983598586665772948366774719659295934957048221564998749416528928099402540230891766710444736265462473670886312578714227287296518979880471193443939722741513040698333179055928012866108690884351323943980698304418145066997240107142764076937625062088025575676812695870354801212936422224037890681663897500815347102891667147604056881914387188172017183887786208067484096025385838526476742014432932995709541206301078586742618255871611829989264295623045341979294584695551895297450457959386292870164818658142058503882678500771026776556262824001129083299602498839779213814061506759508905220013648283965105113725448976683210937486975212885932963014373223879115001430502130500632164447126331996961451051929234188178067460835813732770427776992545422022125507076616119097179058845888941588497065947531158108569084796412347158761044023057014733277848228527517804487734653647382437673654642233263600348822189130073124153831141291885212574421181292708713959083709812080836087225244892206933614905188960896272794437248939407926472358694241721404901374159863410988149572571925411462266658243938187440692279828142631309977490987795824874292046613986404038014416488297574875049634123154093636101333974718719289790860441455564913432308427432183047050468743439365151701942972242517648620037394360033392663324119162787129804734748893299484726308027326190363086156324747652884238452632212403882739405155079522140735765315845072680719087293106447435566940775061890827104209874440717055318290193746377127000856374799979824863747718121265148179752972709261589948694808675195757181388972837670232550879371247356749178442681120391690621273666709543957918573920149422161318535355406154405908770311419659721759268268095384300834973581268323448000242697544825905276597512020972254823964190772041240527796999063085928944096949557773870669445892431723319764850155703140987865614960032450935817258799113528622835150432740371200138039220021483779440863278379666777713946496531710903194706022941596241589818878409030736884729954743490613861079642928005944835133752813067308871542402706662132635254630329681780007697403445575745084767919675280991994592258346676702785799656743491204112791217627854235805156486520427872554598092871313635118798917561958581160767970006883966583127207878676325720183042998940967332982783751893065049341686176486609441369232009853103159613802494538020711661535754576439692177118301948936606222116717409127960511135850432997343361741826375003402650595787036456224459683120731945906910294675023461088401091948011583395376418280614137309524139498669062504942951762070601226053633253011720531764167778431308298029166862349568500107404397352215768373126046218942485011346793609499277819799067511717839355117409307222533857948658747853529174060061449349204423714157303480847643035990595414823073128674332595011217560570900692870741648754950817384697014374156239299208971787277628977368749946134795177643624043350452194258441008439079412974881995165026896665988082753323842853595158174460311995026667788162089476352594942067384075856761738536615648121246633731178216693591784156521137969601656253341604700697626555891474942798028182648854836555632536651021377003833239117789679993304436820536429200401178834164753759993724611960993209599558833450522980896158860374415348084192459912594721690309001856013855528537771941291171549624230991066014557067469287907657878103874159105887503966825494146902770382897500694777222792651873260425694919509057259945304645421059726509265300897233563447041627621025895720080097583929130966830766970748874185994822619904857929442100550409821539981324322875950328081261885626756548228345724861421795034085061035242409677160687870448420334475643621671784880177885177021624230439827797417996677703718869145572205385179532666681728341978617971345397328287838247033330136536466719049899003555725035476634778152586671684151066456504274590257050829193303108383205165085872296146186338834570023785091391444346084438568489982171345769460174871040725305716115638954246101685848106661762435388249502494562132406464461240419967093197382356286933463267798975473397068361520561661754042472035464905357106996803523591292986916392102371883477844126886168928870649844154632611911714932380813796578982839309258954634279354561043166801095000755948220316880059584870981490492195297251833966801777074305405406200310883537359998414841755684973786328222776719469607645975288203935822844506122620408780557335344602299426372143646168176771729729002376512761309367167712558023132143575728955799741826485514397523270903765318036099592192157425908419555026899204036165055532708082122403640561677978945442293335767146845466080877428451949305460622097127734697140482904409147679000107207033825497184956580656502297419547850788190800245567228957988111715570179265335729873695983421671602734508053088664166650849689375795606354720253447766430982680256855239766309574819233968268794480654144271347457310987922466538451289476436026603869853151110322484748188216323546018794973774037823297677814477889464091892722335129514566190120372095716314609240327640981282665331399632778328958352839506616514922666648004307065705885684582947235334262442235488594976814393855720553217283022218071325378363637079962546006273430693541115236195259575639061021084018791648406900520436387837595619711993720884989682819447342133773421013119872078460106001625189131050436680237941179394496059018977928528897249886181276250214917191405261497758157490323340183428666621542373934185789620807641730106194287970842897140423052191739002693776038642761373820392079641266214341981266604786126878915872936660854911098764529862171349210083724229130387444285599050860212133638277291712575136612774798613715981490308942067445282607410322902034011926688753374342573918116930977169410377317057771395143321479310472152000726737273159688980738620165165078790839974750547888377863635870465690167483487420088965597580346199484582845292241430644424620663306896902844146172053579560069316897571099577166197521624572642332461814345373263830550217871383495722826175508732388429355695885424175418964757875452592566413219901929110754130839382401176731467377234336281971991931529562560255724026437445461057150352765090053804020366926690257869895911763951176013153880412353170602417326185303345836725646949686671409734624852876632042020061592753937626798547713456898648478841299428027132371889518020773761714208482706223197310258208390389235641817400047259327530185701655262943356021239462866534726337939440420775064523575310215985061861362286319264677571308781723889519339412546496208816997885866195429985011457721595583987042590990160544481448948643125243354884947724740341989904194220630365113665928324326330878280844240061590967760427781169923135047980827944021004218975681807007541701262662558731635110309118690874330989381611096262508591599725268151537644252018825874866472357205082919038483722374048446543684997828871287752032464858260288352376741835997515275164399417277790663907850896783358831511181856655488828944675558347223919925558881158473373561858313986371626053531261350814657582104222924261691706956558246997759509456674897945871455654000649952769504034740921726851260237459704658171657593684871160468602551623349005655162171070811673217494858565599621312533738258797422313013621170827291393215847689914101085461506166925890917724520745709648865118768564597250422984535642016188908413454148753459123466284595675549723021047419360771177842420256018592893406269452759244301630877243977633326241380600294721045038272613954900985277629016000956707001197080025706731823249782363246842957661032931018686483636806521729677542130708748674092178143496030326175335370895319743005960168268220013651562394377579161201843195633034905642403666976285824196930375830026785020395808793159852335535716497504843412129996980490940526684634111339887062209784987965840152929606414269140358120532151206050365973052114264983746249646500592115285354862745702253776396268233035966187529430321509276198016964079390544743235708875789145333005456552061344607398952527839504507777835432313538732125984593654794569282186748992187702766977899869727987219322538600426056331055124935552656023216161203841990431851406112598984971667652503586806500321594594376098746223196626447832049198498526361992350519906494941945092218886050467391984669525766272757397085147705236709016379591336365639253989910110239082811849465941427957096654242738011314313334900129083170095337861648069852881569950380568163854750026119756161025369821744717309779009131830676912864507693431232384987470853490532841063658697841424997813214057885510904689275577000308840952944242842123628821016474901018065096401776830500400854060987102109173003280444290463370455696529187516554748899977714238917691189102145157870345001740703439806472787708482335786014604720507693689890463837778129062828927906427898750236387557613384497636851367552519224051413930373954421195730401919861720662267114293949590467774016547722644761642128574805693681077218791522706922880179490409419390705850695511504438529771440036446250441064155091981678485540619530575861831117611086990105516381931233996313391775315368135040521400287460828165620289779443346366294976925718917741525521477895931572813765506602515005722598334988473566169054275098347694131942507151853738242638918997212798339371632107184175985016165275543803885236724082095877392462621801339737459126642455890650876073844604999497018269024053128913359049968110130998485579832216334060910159442816920198836121066648486338447902104104791883863895346199410508482774603167800508375454707468399014594789046941611635415690191971355228122206790555391973321050261676951405827124132755886986858315239356032567206620767751259966118207707295783017980385891631413967001950107847747913276799491298218043722729756844523586383756345538584855933155011711075761488185751800008161429064275960144466473578391892342115394302044556509862636420297457332170730576363655812197858604952628986507034662785714390314919294291184382377821433732190969377052886633236694819980801672956145407059617380286400658904028298230762239300376566857549284358916430394460352338965136475853664040677289173835158309673094529832412088670878772437934863100296051963106787962871696391648377229595170729152102843367335142868149111473761699773226142881814747636258239439557299411839807853383525751386878026630214709225477125651398153918428444702418491772761004142812151993621451966493400121867044960790763811354308352045774060951702421550951660628880517275150111668992802633102641561799948415854644899915145400117437115908807021164394306209883713091549939306116724295534545879892650463610281302753789195417495797305728154063087327449670871523149810222494729356447642633805678335132645707647643864125236515019838907623686077727178483696216552734569467266096845928815681646154844564880730094750267292623133786194052081067465454744807603410306943636191205114505730947845234099862284422887761455557181712181519722502227468199343981569934669375359094684260570161422483286777365606027870525291581964683248177275135690686147708227521437232102655510241900421266954123238523400641119185972221339757117888399243814714601739430138552945222568680082223789656394968193068273285867566125604615613778546290638437003107686726320908339702008567752008684283940632012775622079100532322798713024412543635965930574948461054385142280883953382177151676250795871959526653735607174492750002076121411024720034243413166998239974770171631001021255040289933218047070426141707516715117965599691249697133662779336894590982248515851114828397014610600933853792662857370444533190105454144105202164876752870262194443410898613219200149898919090085970703371241932377101152270327985039190377025008722257138077929958707750915608160401084374063705292318933915709485622717175723558143752418077674712800293192318806970762026727632670031436446174837960942118985394649156279267377086204927105448098164499266575732689355351305146662247104870909855271103601932674030095719380676999019061340266648107534798158289267354409969634347463229997527522785775454309800542459125328292919553224657705619377672932365727597729565983705950097791618479853411444868130301451205386519007087281932903225501313153553518495944405643686903925936724236074164585376011133028588488703975821122831620636980705060601297458093058954771570167678847465643842220707155796471729902570417599682010540165192582170945762279988165174088234525480958481857301577430895054440887395881783024166407988519672278945247679483027578220685390638113851656887562186264994993636155497064319903713612201696508792633922239702733594480475380417184887096968539695129535590136168113210148139815050241667250121609581359257591615243230715671109202700597646476025648098859039194235464595325297757574015375158633811314412576006118091997343281992085568258281832974962686035632860625845758302393321977804009190886677016725096416206275973969184238114497351512389036785666501290514961864398699964498299504196142957865641296189391551671217121513929146671062072147102046956070852126302293198669928498902281888049076520469789673865675099715752830995967874572959343983821647635737741034861342218947864236816879739872015379062330624488393465260157368438329989871047561763552956224279447919223130205116015601921294306577398742727467142853260113027580229926599313525650912968679210989228835762582405906911251404998025850669416610026801271030311829004158736249209096716253721896560496586939408319131410061875986455911808083348641186950138765798544058212854350248194522497665299845788390074143149300819090470356105350314486537537643960471480634744082765240778969771761572172664237142595128578554482881541708183026326946467804513055004605789193668816403454024644765097287554769482972286099752165223354003614773462308228381451753569233170504842062084701673680473673332230337951404242067207273776023528814510318288004605459049618114865186721112803766512727622442914796938917254251495158218612043679267571914870137503742814066573614706619891650551866103234963293170652277956583303673455643254510236668628152094931809550125066895773710950528936598211380512902837945481724721441873518643715188336861502248061692905102565302914210804799938952045738400442037431791514441253176525290484364065166581426494784089376407126878387514066871747109429452186032201631502549167053559781946000484519737706699723186400267039483862637748609311375815766187203019709207407039417715687773196116624110754031539602860540665227157178149808381760477815552005757569840963432893957891325262482695785840352663094830489716662808168806245242938176396011300104584056452263313799007640074607135567042344186201985614640127185608218163266264992108186007357998070189383755417389414140125918295327411517205178600024966058302516209078670070267952779556733817459057072097679575112981501934507750253797066460841263448413661779540188142428506724304737527299301364795020461277297220876877184603961410642391654193941040942335622063655010754307372311926602958056802710542220850639352293616551885083545017609240807675126652369894078608162395824488776162210977287387608697688107699037407086796563538106553877558885021995219837123874441574010153975124991159522277961634197166603994921075509450560273430450763147673707472626148581083106129722784336120039549676576237587547905608657888554315178426535355126863477292145988057685863017222905145637281638234584777767227375683335912908660530666722100705508035984554830822575515312795529308542804861055064861959587055821951521609859839339416104017138164095108678953764318903288711754915819561646594594974815235336473791960655520702195058236646724465105111327808056673705080660781861703370839776648595884875356730228580833284288354522746095615708880363620175380127032866160791199617403614044484740893728594325674041428462656211857935217438650386908612397725874990131749313935434456816754822699466669234958560877177032048659195811240288155831873010992188437691402276510027481645635808080417696370556661962057274830359076428844185951018759553377713629170637766652231737771004905714966420285998802251363914976521379637919519765692801231491461170788097550370111614729625037202190594664788544931485122431468563382717614500991637307255370477046179954182501985863208710360810569583403637483946896921630610871167647826802608284506113107809135163896734487054263323380373159399031334754198381977216790750468121831917676912519411225618711056288525763331385505092663736831116997403189754716366620140737102276554767964645171243821517565915252792866001122718123371622835772384141270949972379644265488874844156402324359073238028051683836296555147185952802707092499032584170625906092163666035213536481251447429673775376941726565659451980710623194095376985623011084370649668026157884543091683795861907896712512893167199070054035650717087682318926078646745895476431019640873126256733184097143332453716668648252953946673377654277609662050509835713002955624347267148535042466065854083140624623628362698220256738945716494135109795570705863603152713624215893290314290215182339002734024216852064422575475901558603967682814561472335162800884939691270514343817651739582359642295316966402525946185412395397541717550454647061053762919967636511646643052738790039755314729062865845192208867840392073756838227299100021084949409874091264372810672820853155188542261674456925915721889408916012366459290504967253236573549838123417151453910723828028389235468804083946969338679693922085812622389041131880318154853695343759786051289462550140012252829007337520612800726723654769180332598999601052927362961696788946165424590255130473744044122549118864809069086919101064890417178592177752617141850082026110317475677976064786659830677535703091982018589814942616431918560904981173518341982365436764279594106917546716724290619476627341997799839053401004825732733974204603225391433403716335354856834438386113709445753836482651262837612000989297307630608536281543964588046371545981747093822609532782999087961907895712042871519917966246255935136177834542491230124405488853887427213704521784946522534915822866519855868599282264699772183963041989968715908383894050592926733197047968223202121373742579221914934548801456693737089938753300970459685865771659842830622440909101076145283130791672765785129623036281742382036897756804771814041501637088227894525190310639855335234679541464583843679355748562295787499354193044665797916913652405029812527516017228830325931790121493502233450826991795404432298684835425799261492300781964606159620923887019985926837197847531450501548702669038628614440426431478407084424191058436404516271475831680958873540128761991530765299937328083123068105557410852932016339345902498932452546675987385609528629375092641046923652296514966650039224624616728551926601468658876780210628566004130349993162057924593816467761469404850009799923815344488330606322272226491656472250873916517011032703432224162708173649780048480780239714757867819475055973053998621853220101898934956887738440635902922842187155760358193272035599052800783113312129851054042853624362863056262434354814702577150063533246930551601961349324540878679341582757129783857579778362263227007429934814595270993031445881206771627186927126362009822087749363578604744839415704896800294540454144902340514532252391266715520129258410632679324044050860513043780322628429889092579846131381589756471233671084883164459933656877253646577064246508647134009672490776321304655055156712688095533377739182455195431217458999431497066892908038539656518117776349103044681671820167992441640505433679606928479146348368992275565947424311901674925867127168833791616616538544797260802464688356647300879154886250540898627113679002801000699028977741368290359447002218601790329869519233746550144888355608662796021890677217532177832431041235361673961865484370883600343617544301554960963598951710388776966798974171081338320313112096620667467705679915922287309678869842139389643989237216146994361641533064412030171435826449688880873707191779574703366048148727068503513903812098547065891291161578383665844364210972113415979632230779761954283435449130187697065596141571965113012694206090465759774722900329396252397448733244692410777653691121718711470767577906168890579275667715555870365256954468894001608882318990986070763623921707883571642351243774657192353318598106953871078300903060376782633531482161407994488851394943408687545158976905782126978690441426459102904292833120764832613496971614083030587800380468749741015318894806712642333315259111735039565895125938725121912467254936931735712697296944908082699767794509367307614136856290464198123982399792877500860336097854548797565690154247959221130681814962822393992898688465426233382889005797870800698184605768036947392739756768603582287826880538769065442220635800675454864878289679721073875731035587120837884221299570483232354358698556055592278559888232813506935230896885805571383491530732437758924877577521728771473308518752181807475360558149395122090967277329078719197762991511902346321596718371595877143219289660916731517490928589305476483993423254630233920714627537244378283089825231871449839139309235744604881783514576583875122135072225888871626342306025630199664102775521160513541752764843575800176725698747823074704234882140867885123755965911132046110368347741475168265667372739205550036331359025804253701538197714286924678710884694340298339963784131782491551495447851490445278185316917356426060895086026720091403882740721436716886838476394940986992863376454180994395286322180510695574271644689140529093973507357686475209740100140594667675079510986011820033038048250773329998997876216559611954023561531451271914716910423831556755158785740834011802511467985387424622187661804751321885615824768176239107902663660717389788565442415931484973145950099785717924199523054780952879052295423892371930544653031963268795102826987395408695808903078945477108568484221823630463472337375094730693776748411112249378487603204001328934565254434408883838010089327543810918022259495901714036378053409088030521338414444347203561915541931406938147295846060484609266453664980645382227298523629040959326732729279870228799014012895466950175711251791559679584258369278257715757157892682112311144060298514542259057634578186430111598087369678236309377758851959682620263526919153779767014084818765617339288793497367333567594186071846023068342533903842818862289606086572310804415833632475889370709154068668278752191168079896287340427541631168910014839884511227493467504819930733499948907952758488370606209676619749402933085350290762796956671955253367202778649772198868267360208572568776583640393838571526204533470201220997002944843937624504483622376866410992323956337182198726523868630570939856621238333903251455506352010747578233387572221404697433947088571630864054926509691404785507890023594878910717489735557318100569508122046068654390631899354050465713176515454265058959909449409956476160567202996525991856713319292431378666397249224792375663298541328891875143926833218442241572732670698000491137262981514845422759710506448526361607202549092330943680339594590854722777647316343433850293917105361285059715276188702871489980686865536167851876335071592341611940046123445218949685461018138709065609714185615231121202374100680712120355393535242268478213627528747780505631481564725824709642417066990855022473261880332379758729876479778817085034185290179857039421828438589953605838658977205826961983001223538623453612362488173852995057198312594561912609033225607634555771987985944889431261207578314926587633917916469350767837568938604493653652756219508914281998665080806190044597971747569568724581535115236966227294550511755015306580788580332277576199907368184532632740186435096985642595872098755780929131611175038942348944921562807461265432577855919702681295869544987958399594627425301425411112007151783966224120350506184398987943696057424756536561251274940267870631492862516699615186884904255281388422005371092011071502801021804570538131518703509539230960828966215658379551514959949141151586181133510317761271747293206955357738740994549239954498197245753969336457598485349014223116428272147952090459735530799194731907331818101172330890600731976047448470465917696971398136126672911547250771786229240852336131582603830364171757210697691849541240226554046414565141324206767399312967473779482082484274639319113835698738571613025344459914619980714865284038755673054030640840664365877683507779201032484347256616715901438929092661142914719903825575095187412675840559050295140741259758979418584906085377288087487060691616755628615810526224884701974385158363327237796584015915561621758791623844354617735716227355597093046056589887090987364531207284328671257775236453090093890604870665189089560799913575042665585004265581584104134687595649035898011951277564782752483570291566319929880075241076419702423621744473794399499843614748003788432934306079296197865361892899264189356492867340836729737879372132305890174516901582504565429925338640317317388280788294710180944345476312733234397628091407606524528273378299529669075019615526816285977817555787711257546271998543986065253067028209772051003121383727289054236775670355846953870710197234310920443820936879672712080775217334705123363805699983791378648443302622798899738960603060488684747255436077034673589506075077245325430008104795650276765882419860972208394093647985092990488820525942206856128150228819053865065457119765053978394493638978428304040170304064308969970402002612941162296549671915633121947345735814125619818982937917502424926344283253701075644973424343173717606160179519564408314059416522130885755583930474875411264723246507886745675429671990406625736450598244308114695169708997193774724793796020079951222569043042581495551614879044603028204232447830556538068227066072727162537703706246898428753973341759480985221091711420460649673666556474888883937014263609427217179299451102145753490363676274284677202879506844904776014721776746952829238788428444185944884563528306481540386453623974776617516215903842792772786482078060138417932469133389243252459818132981380756849483214874440751553035392651763914664564622752751658947102149446406094190680356918697098105824942413367729463120346290792738093346974115532001808868971283729650959151582072287977421077610059079019397460342613912363261833161465378523674131185291744523532624369594455382329194563704760378678831650594112429213377676687990832304729466394753755289717219622319816766679321061599119610786784339853136543897890147528546666187230042468238152966364416969693124661479992277379676460980495100648713019489174160005017582373468033397502425514332270411766974153746309619630023854228909747392263329033308619234361572487020532285770994535959276996304202326261042728094546349794764097834259718471592857962701424831384374478017784134690727459621460354498807165206671462055543856586798519674151288103456644920839307069400615162560682492774128414496866419779894759318628388633464506609605215942245837459644252597965943955787490990235780830829659908632081379395656792416712249660322946051228218169582657361489876265980548821219335814135358536066186587427569656294659832694691329267477827511101358825787890615446649105026749649981362639522043306284755395847810281527990374797338011932769675955112309591875295373758869503007172298696263544858170228351691476529281183852035355272181698709971115855429292552713551676823563008116370191730972147629744368596060482377166821711980555861578017255191400555796579843941996589698202157880579302369143365309895813203070421878028827794137894040616606249139006356861474622629534765097051331143772639903664194146324113828330517214753267571955398165519323792492672685242719864405971187167888798301645247289410912188396744771634326314323336590187077576921964057709635265574744840242974172417895064099895324898351162440532389063600480974912018046718452892512192641694839583496587321629265113662507857122814551994382028816759238527579233645853298528063132389870226727664161009045669074531489576768502534277315163881240195095675126639236183535503848121814179669821232743800541352142412215084309070536962166822937495020515790912341322926444815044320063983401648785813045538897830271773142257917509313143248022505198063532281119181552668880511141004342204666228384392988990162512893061313091050685978169308528496629587532996261453868821688247235405961284667955176057759607248263565808465989879613174785769814119158778338676199036900352032408217151253884207955049103754847133063975747670825870058357232111553595168094517261298576030364762012794521129241015762212919413906558138144511621325464002001854738327195880717641843437938122153728048995390803502300920053712480763571122392798142015333761011472920609183775544940942594741286996314449262965005232243286241439335650729018546453018632838808882552811673564682611863872928485913534692838909208784263000117338168282009158938302853637756223155605651429887136815585788639237116167900158320387095448226284845911962981045896031633569517009614875582678620848947006637560755791989373729589318093817538392971479525231953972531029141835093657663138780045157082704166556174026729126647917463757549904872404401807883227949612660053872619987962141526489552353477742659378644976238027004294643813288538447336309217628231888743059946425585015478487431324654892821034645871962188922550092980195774554971366339031647842667347622457454862651658704025411712291814281959600398617576209784348323515512195419604043772776758764346921233489296574290338362744856223668914485183006095005020651993782627058589499031595527796519589907144448929951681010133254343530862409996950789267673113955802755662346931928016032619065376169969755938643180903933827062468573068653497857925727024754713454104761015732833415452847525331313808684090687372223182060658730878969319896031981022113363913333200848070202801390177603353526604169463551082320712726346895091661022868812704378853113011210714571037654880856114207198582761955303459190212170615398794096553557584876860892931048797205686791389069823004737041071610955857522909440270060238737043846919206384370966130747891807893324387964232836099193652459479523533015624927036369966503683966267135249623841461669077918722217258706346688467338641020669028603350357391910249289221626796169420089521289394024950827551416760634314802123624043950753846793871610022896082762909387518822799018762379497607116005467663104711401371922797951781521131451604429006539561785723177022072916021537151819541480846893852187384226322228960472909349289867017904105296213985024583678153228789047565296414453079157913749731512828245580242494049068633964966888276268844566882336434696283318760598118995795632221609995137696023571673773168754076294057664570073742885967782236169198782667587968480869522755509079725420065052932495248948808268455491412630354313874658065408738759949068249152611218908093666667613157996192600811224958682401274719903843796181880712159247621475533985315647772841956688824481803548209083782312260225280669199985168759900637906335540827972329538621782210102789087205264471030416039436051615104479811514000519880242445075984574010108672571889204422117056272937725830078139564567210263401135403393798217488626189708478714586976260557599382178411979642709391803523356577444400133929587382064073128748049299575804629930935263626188965353100676885446416160065558078130879078395076625578096329341534817632725189652707083761123547313887686634679943894433594009375394833411156387385145790400007644303603504705878375224294448770759533804697010493387529067626243144278923226464218476359565784147203327309865644109762596984211298462146624830114821270784970843183332537939539649338298204076918402909770328609860808365702381766058863168814865809180008692342232291538222693846357610374750654351176860588788413926228181714402892518153536379849769786657360134736102016780301516952052800998231054049871510378646248353224795960794203977479008555182133323593096760012201238446393568860701777242307526723412883651434875547666540966812469528990305500323364649303165942150759078313928087045068969342533912287155073235915723659485346338980041078284717815498607302409326297447992888762370884114850382496871078265962368634472124318237940647729717390898644156130589393110950349755473699586589363446736168724626912688988035871489544464318528060166308003923420440792663134091381242437312541437974054242720315996135091580158611443799881025865880350540699051623472374518113913679575298884348199597270883206209249482548375879590560870605402551453146544484870702246780549533315970387059713510608972554102249577291052869355324571913511499812738223668842501950110540537721300730871152094782712008334873323899084698129562198548725842784354742169051604655455425659861945015936840837796712515166891168811896981889766666542589514144402476241288654448885599195566845252989083036062722797121359809954387637034863168391946886343755209347068519481398032306319138038199688520065296201453879695761547449539521418107361458960829384052694263227564594671639621149066810295573481568208395419083659281184012966383000168937119612689981186642669423897721208538840675237173790084221426884355996574726143802265282612693386521833035972282845226763422173614780535214593292068567910672703434667584715925065656673505383732330107591204868205907303236832727659626073064729459848472642574192018850720803098050019039302287696665811211015595827057764575067676868230661162924673300678586603334849267091641004461722788128451499768917939588285320251904981186722429354885197664079816870572214715822293405035689531818276207318801441830450868142324183835364687970555695340718462190579313048991105862411120773613337967945708914730549739678163991896507605587210029934986761880417952095083705947900803225787628610438993377075746407020165291736927731587720747566766708131119105589215862911863118105309270845723973095626676925135283098374126789894534937523878325758635827164809746296735106055150945460587600857765252480872222312523619427458710127754034256969384717208600093781236801380084685670817300829272112192579127661440282707768823903920025036349404811868337682796692337108239646131460087067296128732286763529710896033156001990068052713622977949113095017512771695488044390824673071092233067610786188259842791252196898474465455496271599903107523811646405179531180829522486462551712566610558849056199856336433358182066327555311396364533937605119961849132658416298102722222908693814399425822294629167426348823101338579669619671609588299762346078822850622392015873044638755221823012535444764835786473651769653842634504681769123797233623708639218654100465432564809327438690063645330796477555881223728053394811906104570713643050200044339287669848153829798851988057958870689037910311675173766040149144675396903954145673347497879037214048239266016398535003329139009256502036686663509011162261890171944361457069238966527040511630732391142697022548260717858134408268736405630628803729089236261564030326794025340892413093909617596252076011515353966527611914170027979229134370586434601809233735464994718447379019351159617197747384097498121731421131346297706697633142279992436938456901643255248032365847430127294398064546019799235204239842922676544032742617815439990413638748852181417923423259832095421582200448563681274449311902521362321974205278922324015152730104399841975589097990201504743478375812781484144042432880562625662235035276251508431651620386618287263103407908674550000214780057687190780155309584316230769326872956308069614527989298210321868224759881421248160850531729442748376784274460401885753197392027181336660773395038534043651101857411074148489789802244539445315451081158738413657790587747255079155883971557551127556053799122433210243952911601503889382031968159692647464322395146408547387182075799979487947859532867618590279953620498117817421920049781379372628423163980316158033063815192521988668149143412727385181243985817014920514813579296966861145707314239044610715040781097979776624997910508126129994164248599251621224899290356408265259187097344163043155369428280403604707505251579662423001570463059919533540297466778742135983196658276716908745379101194428807464731167608365045501044652683482289807948139324124158451073635183747267825349457291122769428765491772907752142002494680853967973197189060370356079731687330948542662448225218604546063805798266006540987316980396450223157335959806713551109471530583799329530279285523671747727701658364534176321430528231190453131169444965775523314149684284800220498797548011216466124123882682550699567435203139592552379107781003629790540444997585599580746149092460131356522685392007669961637761621484708406701523873530303198504856313097888882269248650215351145821965339472722411947811948584987006998157752901550405885785437407671325392414954984821953091774233694967313839931722520136702410854547608104441448817206442028871572219331044165033233909194638316653002193225333988721990100483555424729132547845446195327962216781442793818654566134718747921783575033497147204959293694902010995523179074858286337259953665634097433424928382073448457583812847731350125735015068184514052057878298732578806994815717879684915421878043045777844188597530165037684186360529329536892650216520248060272553721498666703858626389994206655208434813398050223905239466625402335058474252319228450731376928173977161213259862762438696364400180985577254946135817591135337909377941556719368693592399345597016697633442154578513539156521140774382282397359292244171248946293310417755913834403456692489845170323710849309176984456630872233209553294767384867769329310304095352423698359464516603195384488828908643288346553175594815571305680850499819146903574417340843789023706370625025694635584205263981996840899285910357613918342908069032306515863506370435707720288440015218143377898017690649424052412685799592511151532751671386709841769314312312730325339247060338076441654066387700845007361717194653398633072044154787720011215382112970981582878659899278288479993456982261222449511419922589208483007150728097725065661943509415924499096269139472859049295783257025296847440307884806180558327333643738988842662805681876969507346050780843129128456035555862668699155880980572523680523753424486536048750639376489118473060425716329553351132258938681329013019206963768489086816792008560162446399255985007172607196080858618002212304947620311090379299082567933917938279957624586784018121912157074444186359628130194198416042166212776507618208895351421669894569263853733640918163236021181131610152640406891222286552885687832949856388910161986758809989460683262802009834178917961626261146756683443135502366062506978088270721882598297947522177711595863161096873948885859941583891737946659425790739319178621483790661599565581916018959655127335605620791287753517684338997980773502455114933441339493916726477712156829571103762247164781676526315175577775223072874854110724799366339565184665411104686762384308047078100685550372627781443008913585356233825710491490352638400426317311272936530160618173635584723348796148275222841642880000753896486114360767847979020546300414454174221090562693626455784575329203752422749405459277109470260567819219151206956730175367531394330109037129640384051395824120923485841949179079039889986231068384494071397699234560219227342009180404738459746754382409023370681732531804066849169549304329068396092924961256685801849818207833729414690925844552674879229756063862821296102233830704054663815936120376262182413490292887664780720527244069933191917375251078232996257946472307971156276306661081943760009621220590910913415865928485678189208558880441333679712938169448591186921605425217163308331442319349779679926082495113813231189335410691182564911190108233476769070182283737672182358839263422389028550461494252800989160906426962678883897236235906441155406329126457733390326249801589849578720120336027050672730484599512811134407274614816883928119355821558068771945695536476860894673597640056474175965312880147578436260320851423876452609977270174365278435656763673263262712630509312582888623515880175956211054986809949084051082267515552006915574923045352035097583572598788466989734010604673323076703831122527336519823374081616520019361854287972858333809640286491252066834012943239704147241640993573457814961581965570272603384926661918272073946190610137515548305142782803505346032769635780424071244678504962481003046368874614495149623215851742655969869560612681203781220280702192994039177452438049155493552145145753031419350818657443798273159281050674653549327371496015892918682532072530449479526711980082358462018411717895410232654930086642390427680391200244313728736067724789814737885991819224148293072234115666887360599437769205935170499440333937156254047119811949907421822789092323207528736772577260356888176321821313776144259835124488028374399570881171417124003892218857524682843179437964553500958496720148520101413238051405660644114260061375641756845513425726998153991626838919914370303714676205901187888516322681741739738638795602950550600366091547279590634479271388483226601325686972653421705430222869832824587869259429912975414210720352299677906959270902489336805130726387330095297200331617040469462506419426954177182175174035540507053432815272027581028616273780421970875855704973330860610165058119726585379920942057498082389885337472927471042011054708617072860092352163021405752612873263101158707891870248471656334257955792803564951504992842724630551325697974701759882080364451363773594006060449198516994509715748093670919703243807490028418855091854774412668332700254528280558292478226905856736237851037823064876706273241789384299220992874006844729446286058734243745593716955590032298323460400697411154852489298668703640853580483418515575144729495051909394876474731886326180444215332139760581393718165215008760414974226757824145199534398642178484233314948529664744511520445724040426093875378427038822725009673091059658290394219856139788815256409608457198575031870001353173486257522504945025105623159604675458474443326255007782564306493179424204787152982864333692930845863324035662407152205010685719919150214736325050079101996483302473848391369149788426133337173745672756496234475846425040249271336176973813539817051658306210621974239712600742891960242011529604820955943419543256427659536811757269392993922844944476567043630709074435223074182250416537180041596067610117388511011727751150271196523873648816235085275698745164525215266557810295888979553763330479063135909269380838727757163962396903149688746378342872587094084668379384142871221006994958228386412658130179205135829660403477094973650453283949004843290351678678310136366987869849268407994399853034850980756465395364284044425604324271384711474740687109374066342306039766402282727482850843391059721603568031371017100909856795222208240219695566220925189404055317769009448025825709677231984953303476326660919188843540360110847066394450358240557918350973478517871596726232314161521734864728567631965386632146277056173787534062561494471525484566282149952731263784726974064486151688928369754458066915848183406219256841867438808731975662797165999839699641892611543388257761090465232689641448001789987065668426628743469257822149025983884067724329037311878151842428520599395192917065044182458955184016770533269620317829752322217824360847938014284704240876853469827943265302070912590321615059666180824122441627929396111598025552997414009302348040257461139916432078684111973498485625821251583804874949297526389555248109943819691682595389103047606673409370292979959722075966251885524659502924003534987772932384549065633812821322159496557983044058099888938289369482788581587870582496679533930232236910750276701338966266161215532729050742772382763360629085958436839596501059035414504725135420905068362741092194226761474097228548776887755322365617463739792288901851012131297188570037875248403627176257436433932281617607707740002663688267882521712400057910228679463920402531262953783070032486377209367742627498984957208418167578235133248842817587899304735478918713898084184322058739069640372053051626793533672606060268825469001062948179962374590172245863385753700527224478081091805933123229319975928469479925910319089652172521198379621786146197634818492701192596010540812055723960982453946191357081100054798140960003201420871210672111297408903406762378948232319647527677706226939114654168304442983044521924695323914631941885665533347986458119421424273638042923979197160581883766478841724550521535989304342719812240336955620851102346442563539659421917427853690291159244245217219466200499741403964605458952107260331927247177343449428417176136235239848581990609730097075778628538803545931620880563088435222203990070737381668633343768312829443832141979648757620952350152289370720495474717898664404441976034368106367148899820824965769261840661929148454645919652800217223832514906592427208230482736125558149861883236194897776031405226478620588508933810979226433384193830382821561726424980804704659986635281037564883579421467879748906763814474676908224537133590470472042498397694008454393052364512332483675124636161137176194244412512021196838077903761367582607779239939455090334115874314248875892042098638203356441820396471161580236882000396820774940791830701302183442259761575409262898095545089507532191390962024057215083614766930345981201894386165729964606561219644950821393542188144821335428616272728651568816715183128461086584602986799609183731811307712487608204832665954170384140800273167347359701357970784491497075318836217078368193392292301051294169926311772905258163283963218751086221115285846795174985410781501865417206177029487619033359417999083072380599864892550873340889716560631517218503390889022636726454637789446339634071642610467991368997465322151948105486581111590042315696520796431558106388088982567488476423407114160274136427129521306755930853936921693674231691649350833272991645307770058876558186759887324977983725166184930778601712207483906302927020529174136779801844245868248741162161970683626657295776322586104829379746222827370735067081382553261063018988720931492892720860711242500286445941874367970274166551684460915995776636077626155153530434048230415846442187170732981906960977142107809751618578917416993961554132418384702766471213870386928951546675426800454458303978661749717100692172941455085722269271944325589864024527175712298169790858346299288659015867406463370081510077890323574151722354361105514762549468168451118916512016792175720786452391958794047996430949206819664414008496228890945022554174402237672027115358361874573379477144448245990419786695528861989397504388154451559640726203436257866226070094368492586752669760085922685408940631496995452367701947545714215080974637145520451757997295718654677014085326029614046387390540000675514870442670797172081575385179879826421186598937487545977666657390630527169908675435174094303471792064246300474629715539964726914578114141387443883970165009037056519414468404958209558239734445432580103180222445085228649372138154705667751145345022187196942681343830300352338242361594661494460104406075521696878778241688453576377945519822386491858333711406737024125401697425375181980657348176969081713695372625915905178810719158010966383637488447052016109301781177404190212161263462608724894716559620579527451098487664734317795225864242704072002641031168640984992936360416444488707165154653962906591462447451788868806041199821501131611558755495286245080507841447709594358103865729552951988839679641388097489341426949323887668744460392274019746112104929446436454735766695279905237908460060313305746930868273386071169014812554891178578275178738360968880799489900319435838798546568970574298056668273174870666130209073200118462341691813094175674235022608132926423058693725745481833513062064076940988608936610436290490195285401150685780078110557698286258827683114735949166117186944659014918442175654507055546922337284764641936062255244088052669977657721897402468752430640182217993806097015119263999597621373118530100464429714240901609094953409656182490413732580207255579502635029859924297329393173768413949697006510203884038776880475744363539324921100342688661310367761135000491429850830104871575186704075296551142815389279793875260300382047691891585048040255309024697391941835023625410275825424718758856823815819634779097161775586384315988629305072184693001089370070937189421103639889209289447653731845037941021486303881105403659019412087727346655613207055751868740721949273146910904846860621198114590297249870873543914789343347156468675968439986106394165984768334430293624655208317968342126271952103989370740004766231563297138441401418964918948635752097023535524470753921542362219343895513158939351153994549916198491473830182686779723050175310060935643443887787044404710711572307955537681312490040428053422940296250239849662461765599902949183753607709625409920307204195874363555437334185969823223626771122828775753267495290229925857019185264041910213194438839433462874403617032828906810256742599856542799876411519108766604497194647552995466752844509537618945834329415321096937135318111600819529215466471266132119275405140586617916346054597544528735447882850422010470785542745978597242898715020252704534367904335915896903163848450999509858414742588539962659782038471801949657759199425600616199203700062893980580083412012115687928007168653708429954290131360977150282856291042457502573892426836485466717930989528716155305747004866642047801258430081437041601034170353046226195412163528296004315926965449310533402960361889503128686039950913469294238819537763177030666807399071606667191470617402220643477418682316058771385400061761891400249385630766867730820493156166810223050992585329332036919301761474398435062367384493549693654150429345003070605089427878230973341917586185981984621056848491272778544876092651455571976246739218503220563994494100715122635802659437098701269018328013322019935825320023061678780881096610146228968836854344274360758533329124746277233056087112406283732453053603569140666802452117222362958014782340573796849501807148360851798461137899988917720471637631190437866378657924075668019126766611590972479590041496885062464811380551043795027191239797992775539206116609882229642839841576456285826499914626321385850596465409654750039476185420048864284630194522612747060104367232913716542093872770606113376706994893047732925600955789195180434092236184015678292220494713958609346895299269691861462474683153663861498822298264192602266279274861201210317076085428261136409634015136361056882115244874839228291634632333887295616315089073754273759666231243744992023427101094796912874540324979800561422199835348739028356898843003244483256486531320455314683806131952490325533179555222722188751975037770568576343317016697886346870862504176945330834336476872844351786548066030072018854403644258118688538172352865071923833591549687254470067104331171087816575414426206651740489246830246798411727449599749701188564138631990035309321034572504526481249917062179453548865348712788013740414103034593512115636609294158054083102964908769642544791121028789850049319875742164010659963727863562754214640603235177459783748817016614162748195998772152567494009651014663879928421824736897198152979178603127404414971515043131092386376463139521577363014367452498085591867425587664556226018165738019917399230409794845531765195097936063596289764790113235617146604473278288753795942050968839876040465324921629225132810542622213486439388783789275285392367723088796949408181702909239891461338580584709347887899375092788989386910230080075292406519908065488085437435082239782154410105371267677091682340289486267139327739971602987286163712712724165000114300577969066086640465555386858356013094417668544062883071216078381219416158407371925804614551402771140860118940103475723411939920132264009957460577675026795952598446117980175094929394384628906082569397086456657267642386211363345375393844065843543831585811031053587721392564483777975239357437846316020311719202230088843856746449540856859307687991242997476906978301027399857417541998414207456378125495755900315699575347871158655569494759528790866252284809110371855794184582034104151230073514784943729784234778462295379895370828414655674381031667106287479254065569869531446583833009142676276584582301694831911231852778489397705556820259986547935444199615460040033068682743906852218214979301089318286119670003824962791209821466001074669164968234535591757304131728945453488276062102378325158623096708412711808020243551714814494387727177811687110056117465887666464063381037647537131061019662106809698506062663066055679406159524523591546038661523410649009043117831917672865508251981491229854981621351998930500610056736386104310921124090592706414184491541786346987173332806620017297279768893798356635125746843599583909775814183856326005389012438809198032580936642832394026562817756306844556287537442425743691148863913604504348418582185188066470490895876863791778123486986792845872310675091440990786677678665615509601090990407758680593689823202966315037795264467899064570806298886175968258981763036942042013495732428826992306121510480673200360579336936848737716503476916021940238565122987089646609153078376223314202648555058525118871874833199657401896010015989131164680222896751573994675956532617767455488397771509089790371362040103904879322654452505365596264917457411934034587389646717054543619583404326854171925334251508831608377840380676709490851576510130018762180859664088160378362419633705325256528506877757036943023067772747731650728121398647440696480779806594508294881975583708773132564809681247458077849549735745389775770812336052907590435097255010806152332222774397454440625291326445303346395849286569911179204146070097245862438106072782030700610035340254283163559509748855622708847147141254587613835146566950981485406970031344199633190461707698379598660209276654806254636271681553197303269766513752975375092595839971313209203496652538053783424001075207297013656976181934817889156300802807296207986583277660174499013899247078934264632401007126230578719681172418507246386698677563945561539308307666331767987154721106664271870811307462745157285268993037516264231236555578644981752254191924174851664683799615765978764071083938158402516201366545523888536498332830283189506700224031937766442085834363840351874688465966613134820839325513435917429175077825344530153570794422328223263840903566898875107915895891860249095097062336682162909223433652862444756847247033205924483045349793939506974072668596392952106955542582306455998307739672272593373917696576195283304162718530304064408567509451810632256938712590084519923062462445513837551700623079567405328577952605957437642893498101391379190614713365570477513643653615046502022428703325462848425421513757471087815722584268471089969823361249225751471151442684866986091676564340947409187643017917448201856983166185221256210292977899897158364298070018910257577391619562374381240799423219130801991718386102851353633825336459636113983115143057357847522172281533627944507416060301424121049658458277479632637728038180632365797316019321519202684018852501742557859379688405930117784437668558862296401624628503332716322177420077699744336565935121656126493787662523752807603462225161730334538253979494828326104787557554967392612684755710556885016245849825514264767888036951493984020587117435343304971543061772997600162888005198034036688510954124577543587391960754893334096146067605318657423224520725725398832115525677631958759738921141935921518413632344103902080081366424893414230759175167917840055377484591284875488970712526095060242517503803717489596446664174655909933842409741865124607291607615145718391418928152173027904877667911341086316120990247916479271062744032503311178142150935242062519261814736358319584595973468533680785563709404494241813300159230053752206841957424701485459496386720227255510856957111763407989358459093527467399544454695328293373250057029581066581386101556668225008786520076800286802930543966558196912098234428562067188840642665011293140380544857798934118278476066985432370696129827824083702273358413872474804200393158565365607192100113515660083351831468079026197663300687537668802595834528927593751561873179660871623211134019451007150492105121975454892930535748327977749389006629300734293149375728899796761166469626138057612035520640362559971956812526965936822984152442553339091543762101195667847957848081328274937244881429577134729055797656069014235841698687701755842850495149619068681007316097714614249858549217550821474700341084899304638128579525611743796224614968550306509927884056624240095054133559951201840635026689513439485870883256971295305946444625464201913674039624164326829055605351614676421937987769603387113034515089124630616442587956595856654794304567046918469010978506247970492146456656911036896725161592330731160041543880239687899641705580306939780294941755099765120049174350542452656056245333294898193160245324141140899023885130784284879430321847220636905903095197265858772351188073737592274771434224064492110771397295341893299256355071805197245249974805364365289987320179294030273939960100216658511209187991075074922509020390140935691878052281408738252929535305272134116790552881116963640768075304285446092452218744651430434561371136751221531574209463236012693471175844796340202462828274975361990813540993985146984902105272216945922503149676864302526212024854127832760261315460147847104841715121459277279433770229677769807965166334807840393227700470338645698125690474359724353053808934271976262598520037924000248292483467029655063901187125257186600541907285117385265696540177294708790012965654328430471857906503327183591440689981396555106847615565169094661435139781654889845964626279853940830037979879881663063662873864313059479840630249203558229827874430178171901616404437753766929880560459104208801007482803841231434599207426176738753027918003662714098195114052309710407889009262974001916624885460156024751611083589653644682773082609692881131728319224848249104196427471598537975996308920514669641799945579289704305462908864154576335428610839823300370068437834615041540842295098060055351588224736074778450301912690958727898817856189687379854402404541818763558295243673975920333741207207682286329636333331028231079923420363082038422327571523216111046638935480119938311187467833691169779800390399127724635679389950000425322616346715084250055804625446118247392117629134798519214543350899809748328349921473149294485548436706547846984219053569476236336195064899624295439339483734149518137319876644169789436096751415337647065282513399063542506199457695587445417241527534659077980521671707923278761329178299259333074515559167184145529251498091603615753910890688528493044900565473742152917952102087591943668351415608087627175792608512026894858459312414028352306512649441534955121204075382075189810116052881451208318363720847345132592651581339766477310201744544195508437971354715918041268243295971689776600210664731910757800776378840687484603866103110359832283063030342563136571460677758421562170259573675254175547373127396158078925835300050839507098273961699364226128239300523142040060522979719870733644712413535369074007921152586685971096936057332350277660501357959058065920977678874820172471918763364841759557665270277820776909445139001016413281893832152049517653402048851968255510075013596644073011157689387748233186978096359656396257575900145253049943549257847841284538128381417703721841970049902547071732666223669954084178154484719263334647198675461112721093567896504811320334928496493501786737745348960825362417999746235270130680650778439591459844209752609012718525669422287334344376804463041872818406912987866966381538209716259463639422792277141144789813634744038543253739522861060985032977090130863346003171113736254077819895551856789319996750547715694334163402979618804941754256738195041441640428721810590025522172198734273955744123408318340733590665661594682329066492205391981471438848592793891249770332075209768662852069433067105673070484795155738219690254291862108084776330094138344152182984914963173856516608931072235574532047244488882770713396608806981054514597062685028737569436085189849616111641220126713005553447574427095605337049040498281635032092665153462149644450629720206389460215700162453177063253177486892211708253247121249125795856138657372810397751204688340527103114688042069374530372466382834381381701237265082702085677681741538087426845628006623596185157922558401324088592092542832397524148505390929192925072363146733426923340218092273805465706650798171423376829757517390293411054160362259653801305141636171794888978186026247816095666649696993986907037492998069326676815940436517485491449255166387597490178038847887067636769571828841034589624916330716783233108398104937383040402359200729997078770827767496728788037875710219200301447527283241450141751103038163354036790508012379040792064470227201350423436339599309681996598073318519169649426705829800130960317043289134743288396557817360964100908780284194808742336544449439706145638824684228719677485014902082018129046016049940413576396441085944055444085603813768597077422770305499854921956073393174083363444512658435472585959497306535967605918879041845913387556021539730766620632629316219100210400400681577227626601415494288662323967218448323140732679711469644394373544941291518247570184402159510200950583470560425589351884544272968816340290218632968947960389919403210719030581411134404482617408676493354978367122359191925182478903053425494351887098307870040967176425613653435057011973392786751428270783172010079470594704144288568718015640192697126832858560086670090576774278164422055941722588557767568862829664375020880929355550040044651221400752020105178686795298707253874000283343636670785200456586421692570414098815327649153729152236917132123758587442530837186108579443607526570773542487489135903509864549988870749924553065249037026471658298080896835218477056234651032532117056963728020539859829566005717938106192663981034506629118179857787309137311935540599988318775699324403433117002290905002301571726292048603124044939102519194153122737197224277825772578315182199454608456152572228950253042559575290890318436181504882951902074598404046866389773250213843996902369166878667175453644794043007565169694494834045078249187557538320869315769400801866227079878874071207283011561300678960314328783604130794595838745354727551729068120985848186716374726219966101774727727432272000840590636193358383070717392259164685942563275742856939320688156721949232130182922548879918508845164637402767702883443137540856752421831623616370473141731296706764621110843365449769080500594242517722425000765006045015687648475453181711692113397509469385198875791532783603231163873888414819292158595320137860667147818536918204708226445135806777328021349836431613909091629465304172279393197020377828263539433941563531328249088902988913763773108384841299655737922492171892687091860225905981949820664890554193420958832110828653785088528191409214034420225430629091647085152842222922045352989945055005555303872779166884033847807461200124805246424954394364465996630010674413856037000571862774062443791914365405011113775886395372572374917243203694441215315594934132430687939905654567084682692585489494702703880852951359765694790949975673211928632078574396302837285188679550001124070409122357649494339064780998990349938713683581971453938826409947729225170677199282887577426867445502572594526510323949823955231785932525117529627856818104237242190862830770186890439552106859563198873820248098225814539614413195320444137091897384460524324198290310467189270266681671111472265878994480140456210768906765807774240362483542440592446674045285363855473513936497654647077352201561977214575474510589371598761758561887485356331564927863105120879053416100584538336594293517497547370725723311240126760657930948327253503157421781476036688693894704487653275578746280516882544426354782136572635168765489460209853430524698297998240398074164061624921816518037304252434143614128376608270093489738691469619171348834428082359608227331722112758499214131359608944715971864267957068730013169141096441938847075929058958823331920943502390924556115473834424619100777896485349184558769165785708892283243858755900017596964943337692550114070660075015366133498734460547821029076936686962589405881780268277590356846055801717930471383513499241897854798711962845638624091742321618609672583552338106086950986694131289977619745897816657944569118301219402386424689620004860818304233423254956278281360353517925127553169625774761043221898270697490903156224067722563329482924018725157984931171840830839851957895725908622762135279359040076366491912766568250547827018677434551791355032381910985400245870993260681292910491092084142939797516140877717510653959956325932421936477550779014651061127686324419798757844321438512495298577732584652803025913751412923406485249238810218619965171354253374050417824014394551917626017671206887968927494789829958390513652604172980717555086934764716615301651942047888304178066936064048896256454761927527882690734134074361378208788682365884924598312930178720770070671907420338903651386465435138469509626419051725763613988227250841634196437429926439583057477142475308204583229581860948429030480137654308554401998639706000602448153484887457449862136293768970103263726242391819389289319207793690412086822531775851466657243451458741126104319846020503185821588447039842178055841389438916514827498137903433843884303494120179111954180187443160107773488282949600451999051138357578524403584827274145346597139812093177214074659687357495960502270105406844494207313576883345683947328017709274015268161901367390504698353871584968498575488907165190063452064864120041891350745735605751684266058957594584171915665267590013822034948290707632750136436806016105807939230960981584777499979575437521233286951189270198047511195457618571352637797519613652952842033094892621321793169057020161937212241155778686076613693543431002667405722936811503521348633017146566026300910717628078690763851528415383496586527144081440353341632614455369844061606242273084741373707646549619534160042785221390146527599445077766570547870066681027114994533270737455020745280045675397863593219339827330374344102625349289157538965202417402237442836205271272946769991368204625233985795678458352931004121587775125572502752897714628682717570169906801945187245634847072954828267234637782532231419786952002314608453960907901359030018169427295250219590924903281353820906652534026233482854126051738557718955134261607980632106343378246592110166146102715825947079100567134398460918816666246037817700443836444458267182459022384488592678308937290850557111678036587812719175348775830061145888990668500326990100399754166137834516318057827721131001426644282499754208568515216310174642860603455992137884279383684340669014498752893851634249849942824737307879521565172893665131619258712186699243348947267039895292262798437385367465380848855817600498479923413516292597852216459585379437752428381164218916797503146548515960605833407677326171423248376643413817512998066813003852792218306538201817018359382155164837344914377185958838412766493767833517380899561612308288424580527319630563095734612261938742409608019430356504617652722756260628815535403513807735008226447978008280388764056266372330292357221422198007046673505212133727985626938585625179106032578222978200486979237064296612040725407940516103114707071390350343552708682608612287370842068729609137427991727655737504997822679521751397018675097643455702307999247856417814991057803443773824677623062538523358219619229334418606867219402120253247641013958771964031172598021101752810170622064252163204804848990813811819400798469431056464366406347742959052948116702532474329107476151755227636022327742011247729694760547737858214604846641478254160466718456764285746130506195835781301664010994420337137337794895791495310216594062594864182645907944302016537133517397592235096763187229083722937810138048523219284246250148567111271974796176941133269237658082788411764089215385022400134165714345242935209848961683092107110467024706963279749280590342422144485025104629658446101323976576372760997082268616484662666776783308545143057183262666388274276933809454553540779452938748958684397030728471351017447225886167282555120999591805617779327642910041942168698273993569801389020596308710052031013080180846337579523243567783560894289901586815116532143127317675994929067019250322965223212677112026892683790591073747254346379435292462461807922717376542530034923579332417006827655080893021749478747055541304654585992190104668296310465022478490258036246346092486653055579988124573027919053218839150659633730005441908275067948933879401989400411094478123507716493263338263203009151710730426333092136384855216710456618783322799740756276589164714980671718978731854791155194905774321318376974156395342324971849212636067175751069760436524360450744412101067688594702657082033978532574030067951189074101513522581268742304671418702303801470091143120900018697214092023660573279124620321431070936144064769035886613364793612848206731560224265567920716191422518678653815540109945856541534504777028706846157811824375951305609295626330537401486574316872321181096363306859636838126678800745122766405400849106761951566016716924738573854478094095609447334615171315307871978865388568604192891414214259938662110872809436832425179390918211194845685407353256041401030280140417818280095132919579435280198755178677370410219644493522442050533689849329937883770293036168017740234794534004620534686154821436924387705217477351612668389545406974520995353384304317351114697161881623161437297317694694857896752488235709599174232752163935519218724515732608850721189068033971357073144827529338290091531210462227755473674039477477871045123776785062169820896043885278029846688878869508120982738672910362871877009238383614585502432717830948498332068108193185718017814937503178434677519813442798339243807190295315948023585863006165456044444162077728430725299607163210244117924450260221491407343509788624709272545445697697100683212250332431013963686688071657279078451759772112394759617192574306479119012592103949851358787017196547225250489117285472203953052288632015569668890638325662163162612494726269708995245410143513796174333957625767098858495746228425690125375845959015362013227627516355378048770368444815939892266984059618070577697397722156273196113332224675828626173480737982879208008432582616931196376943648740755023733453778452475602026754126144732606676274156824222538005020806052878257814305524017213406602495808390992757632238310932833167407603334450927816265782293903237342919824959179401921282178510209175178680769306880997165527055137275773713211279754853923936849765399778780963619695133161097209633387930872575131898057053486064019274506208208276139380968093933126503383510967094150962171380980718955463961851949798925101955398607001339087381460001870551702624217140720809769327042503625086445290891505150977827895110356938340770261786383203444384709148213715923236324009868527103016815762209834701210153084836216346582725907276416451149712013973176086125319904764535160134667176398276978966642765454615090910658605657902988673978331329447285330056073351366726995605199990839421239504192167881373360932485728657352709153221081921454474936316973372401998605495865715074020816081600951099181172805139647488210746178349706619112002449157343235141001145850112300034831511818879438195297264989868501401598290716316969699994113312432087485212584581904826739661454133796769284893642405822793103078775754673139199119816947867718239599780453293181036917573161509094430576561952027511075638312107673213234532424903904443740023276712822247336345889237676217642352767785563798732098699706553593130717096487700712179079252588967858002643030281870960502755861891824780268920531577722849926261381328748230983935217492860379662579833113893266191952728357789868249504886494900858797198753571133003820564729751325925769564426646520441425520775835416047321795770811330060376500550971944716946498213537919304362518074242759949472585779921153770343132859016426953429394106241770479113037608502560575411442191533729251332100683508773619952849747123951724864711418824894943012813409040903186915755044831926652322959799927495080487957914740346348337150833997463637408693958277050704356386304801822989780676490902576672191692832033692491401244938256975957308373081164305065836547112550231907293332428866160704727601751808273892166132716208566118953071374634677415627959121089829744814172845700806150130235153687281352758252578062510873604054643582870659279139226993672657120258827582574562522641706722133116392244914831480787410901926767782119202610721285258838934555684629249062655538435573569792212321848618431277801138845433783038473900564996257070381690928276092604849526584116910884206422292139400316929935510944602619836801271180941065482988789414535622715069264830105600427002418706041151798352419117740782925951378011613239086563444537547298834914616751509872473537107226426975474022195022524684276831175058898851329838648493864125921508065592921852304822681961417171884758483152354175823451976539036224902908911328087756060343241999208556357287585900708862786021811793804223468979930844270351428277580030682773613458226143086218530583571754461071570831493483086626758319269748108387112339514522816965789599619227893907380994448539376925645686643441037339863908012158200126259236501793073852375960732379744292421078546398592991634919846737090400670046923579228649787638612334065648175464950340543299051201903882662599755389505140519170289823758416720232231251499112975467099393120802347792888866237845055793717437011841019142991753404421884521288378999036833403771964117802096312906247451415286760374155805293246361108368932541526515271871259806861013187282228525650426962430565892980240975435417825754961067650843227344701705236170408827053292775057648122310634120798097168450280011040210480045152163136985772714318128849560400980747191551605847581752541047041068525895804540360024291847532153577737231610027535487474070690513252032801033603302703000831231989771651074813036910889779222848484582731694681770639883521330419884984451203902292084657082787925155422581147518780149388014473205266833459359326480029053793410919888244245432663201301256230798607365279593480659524647065703330703561435541544792829057301274667750699811426989066425937911524749228988742543520294018096655488394122661705920852000777169235381128493063299084607236813372484716319376109491971355256430752623971801002095586713924965357422323009057755199385477136842167672713376114528824210527515191031862519885221543697661993464001910553698803308533540483098918088897740353097044672533457028148435873907240624598541930191243640193259266875600213666870731309982524189494301683684057732437185288080151889593443481629741513020686721753579884442292624223879880667942507893783614771453598809703135691268890519720988504244507015092713313142815864654214545382080522128692924452532588062922085754230699153042988067880646876736631205385012559414267001991712907275793977399533183556679397443110957931867638713965709371539069431123974434995530505115119083137475949743283707766047070375399570831868503988851541059177272402714756615614069841042083925167005077486847147854710229404889118108879547889376270018021251244026266410385975933805210704292601659272792013878619764811590314295026184105643815796290045411794442440573981346809506945300733786091150936522486992446038357289394099030984298989104497298831984036084942709263091574858455811318735901258962635462848506157862246359725509329142305138869443247512338905021415959003431663322475483676730948521155588740107870013405257089525186340324504331331311234755836122326338968915855180513476689951888942155560467747940674466706255299536305718647840372434097201987576435117865541604463855197312098169150202923373232482643252918442376341971360225341638515800852311432923370901025418968227664569657860221442631711451492091148811732877633248325159917761127195908775412296551242292715269561141106548519310155035337550669682955697740751717579279359127469034312155381841171010732104335336923170040368006500065698019262278196960695871063829374117458929126209071474879325381809505036375327924106631076308288298249720164750257502407086621225349475148773764979269237678504165877157458222887545982880368929569292758736060972509046696058010392084034750825687064102010469250052888891634005034761244338822935096768841454831528660950302583392612178592973628835020373331805736573302216256617275477306638063906172429369354346208481345895182641120431162966657968684351414029194283137722655804069760498792514587250496636982215939215368694013966986744818280877131303209169006352317880285971662866643026470400300951467356842887569143668423625864109685944487742233858528509727474578313360366104612636814811218588081323459094370021365151874210503080651158481687105719091952760512287407227160963164400716081928998369138519897354614860580934661478888158734688394354293331714024940798665009017047131124489492690627220729776951010495896607140974735428781541231821271924985186628182972716055807625954748815524006000560591378219113199174665562955900636270256088290224083523260934453616314589433017180866305857146570929171825678415974231564355425721630851174330573552384227060137678537440378583999658572218872793834347452543275213691798758630377068543351625926434566476016886514838503904691359171618793262821565027960673622523239330142393766381225355112418040060704340954396567026028552405984316591878990129067242211206641234298821386044901992072739673596322007097957792074756549087824551041988785285495068634912165866048967188772477985512849423897251291766257918829316357271908571088688824245773791139590522341413613164707629000885271228806881356579848958514774711920388984298427840531003457747475758918777794326047972394568315523793976199994076090598209366061810871106327889999325877575501459414788888744150891497609403598977157832934474378994123380940109261208288205777827668354155273563625210638788875952326204939221483501702113785192525932306497088101398960174013745690702458206445320700686740179335095040995694358446764312552473706263709381982135331502013559224269857369900734328770291449359195756032986669382934951649732269976062267876871524110487961083904133253000912797053387910527115324317487202577494112637479206286018191498196896461262431849476750640466151610552016667087129024733864566175332149903702392504590607975705871592599740092990593760799352412755131033003473464887400990509390424037509679075714391725671143780783725384066050962493437082175601151515087953191323820378677900668673062836757070904998249393281440082666933407374966569936629871966087977235336085391783027216211095944795217352657753720064194484005769506804195412354535839317449103176595260970877971588601779934754617077610747184763847006782338749191726433629052450841839004949133406989623990662445958224993981156771661370759842045640875296817036584217393066783296972273536094997906616540726850366392245914505942285757686286832233602516402418472151918625911834006898909831236898535447323891482877405473681694310515934022287815222803994537436216076303080867497882214149827166523754925172086571774375867573212402966126325800734548199223407874061397161401857454579211886948894990492967620492329693517801698700305543649452944153541908899357757622534461709865443938291757659322081143699566349864419169091061273777946088174585047325325568679097096580243799592340443565576467103485939694333992486121501052416871878855849375801768589039744909203621402459631679259981530502498557863399556131745945476986622934244157139713109260780308465364275726899443635688826645436923465750218982378656823914119320414177902609214238005447330972398224566464948550083020367994206711322925578615289206520645520255759461499498200907310382345174578146597237643757263146249874774729550363165798989401160494353883836161855845305121662818501273999018972277461001031689080032537795586373841208460752916807069334175221313628714791975325308246622159144370271702164007815240005487267933501943009989158710419926948934781287422339522205063964887343468368460829565639734310504862855232322421143268196564852139804160876775729817495616444676667739476757254998637946295113481322293301016294571543069609922195413290696024455858056445978611813218134018150687084686821367829073456158250150163086688732726327019455135700495673697917991314484333300984227917896714109810788935896721002187436956597667758637773646791177444566907113184400197471772290284764111732917760386818581265052316693776208449749215960373935744075773085430928341252549839032852506274373794973839090939683528781984013725115063301382464672833672164298036728561228605556231398396767267799382550270383736506537607825629430286390633980926163962454794177184711274392850606899116220989153926708780987177075463263328481804756888804875112700249759837501589481254991578898875601296354054015229749319453862833178967914266450802616929313091042679190022651793535684325437323209352464581597777877196757695184824615504303262705730337314144830421440345893767843010471960344554898591124774399666232013494457942095619754077402437591254507942645223464299537597810972592325464494180989231266117980171433980058522939509289588507682073292574698979946884786300670350834903456900302166844795396027288462134758448729111773328570735348074514245341939517534731224249021056940917273396202229672319187828499653013571644889656764464834030462090168577235477979445641938478119994044952789553866142132581356322117788267684343341889208202002797770649641493343165686531627702032032089407352739960279759995996335362154816897025753477881292575422072676962944404411451805234546955947027603065850013391895522223797519884971672625082882628301078554331317841460065733317078560498830691110180641114063564361941942450760464116130919682675384522294407944502080224967093568563647657104238961722097716711233621171572044427249242512930820078920407681010076909159551063511070165701523858374279611360809258693058976749886936733365299106019347298900272879979715707471731994527189511108140024914372022172577772678184798311194139772623403798392814034347534219746630787695581672640610952684581599477258366219571421468862431812193081392142906751744456881094336938349565396267363700005527464572902494369268155516039968619581686638678543527674719960887621837222600593884161874042291417438459812922625737132541155574599192766549750761933921054126713861034591573059913939994264297590339121182840235826727490003141667565081777672685591901530283415345053122931825254250193862402709097459553370541064505509580926342136500495743402103519387857336828610173214184866805669119402596133736963298246677624782214599343900286073512899210771618624426411323840113679102068916219592692273022617578355550759315123856187456681791383640808383155432993303322519203402931059635900325845291341859043077157708497721285001954387136354960507942491511568935966278176417774878350585772933362639239261879815803183149440271484578456875902599446375435069915259743867953707296587381416751112192960782208310777211347616711114122719062010017038804549128192173441697792921730442562970163720537797980180799372011503435852485559092099451747333682963669925833458976762350825212912096591380002444191263433542399273388507755532358941457854230317950358764664613662126137378489299211803295861535163397781880644017769847238833841217782647996266019984286324693670191999876401677864462038906782533977907554845232100530538150326022644569343591201649362056101014171690774883002289038679131965225907560495762388420562206684615103937642961798497476965574357286861817382518701404413268156244621344169663870196821077686014471061773715119842128760220170700359727799837368598382923571013052073097678283768221732312504813684681646425991133685639636446604108237289114561064566359635744144731829925807708012374958409548836272424651642066352471592379329702693675066703524970902198517196680479234883165255900434165459041724695521166862516055292991576124784453524772139466696636622645301382599623474522268165852552331215485175758151025623601091624828529481637756500696632865345297258624829970040762517310867284596091855128410622057966104179955641745867485394288937613171423882628683685420003407615538061251867644273710303561699224191891519949078826872084578359970877990255639366938530999351955108026549273793519534016743912557147034459361716494130435055735034263648484289435345502728270064378727270015964005197250534675795672981104855295014417809534797190429092951039916062847384859686488406048980103390025927047068972043658569549576907167712851677167916470429909436483122100322672281640098969207219422131123129887381128860215222774660372528225343001047476906073817689146478344991806617659194820126921514522759617381612683570952568066810575084534000551022810856867725872886364921460646337440664927736559664856173233759047099994910013438574940429656355605280878828987478019850411764606177374340726797402276822745657178594090239554377691858176479209668441190846966824376481143424392634026994156001148167925998785751604235162220729518600761507696667315751762836233992609266906906459352838117389979026381681263148620534650101618358418623897845224251052905735435081440700071304266349805711417549432348718347457733841951751550863431947889275585000745572965854689641445685925429989843437121943407277529155136661711243594400970489750162405209959462178018693077954920611736478674868887610170047999384287822704402102965361505452184387409830733347186058111065286732211946176790842214411399038647011170845997562753079204829933142251576119828995602335244692756752916314260744713750078113098238041543461503830837209992916596966660053353579476997444367118232841710492686415716272349251884978869801376907587741648122075673276585715944361500105319267020432892988778895721184015054093078468358631284668259547642612587614852113561620955516140150111187589460419997213170169910126684735180691708885193410151618842584559235355565693617155723281194932781694545073013410128638736680416849000735910212394562609891037602782360979664893036885927944699389646841601605909262450616190553504792710862313373071456542812815330488999984283394328947087957298068128975410668023627373621909321369992859107706168906099691815168279039316472865360920815978966159866955301709338891952075195996355290036171247901410978605430387147550194670634496923139370095770915376761418719110308385756454761569513538534773515157642125457469110715510850435344838424222413683857769212810372750488609026760835695551079173927381946495929144836128296185690298026751288488186521103481842971997534501818129613338773012791472204715494976057058179540395651052322546768345518186684408828953828410631982184382176054307705651354806630725868480186515065539345457415392252878626792644153419948795975091916915793778572741506330580250319187136425011754051556832915155280744002727944186849987448437270056869812861217031629159809486071334082745302079339887091603470097693507615285319995147922203661013973767492642867080728907531898022322847150128120093109427072525605088618807634317559640143184892510129330580199629356021836346223115462362766875879653726477613342352655037213327708271665871342297923272737778130231195533561765074696732554338336876980123946370519467198909582122483194298098275915254278295632217643073503177649955856068953684884439328894959713936456587777569973365992206541725478490471405567391455301374147844118537993030555208028112271842793619156680338548370037519521853735560575062146177123802050225264426568587020515893442782724174786043578014061264791044576137022419785754748397660586482770627601354649376067797868946104253299807758092636434102697475457821423569034328054791360352055347660295582743683210401143698803923343040256334944706097549485600315536437492966235009424625519177898799822420626420835235955423490209617836336089180863857083470502229037142923008342181114990791048990434262107333680184853232674758373207490357942430744564269369685603078108518839488931743447744489309783542081349541364009228100111013793457432155236440312929823638174099137287071128688135998701241768062189677906085851542430937440511705979856655865249310023194052816827609702045867397745990561750799406359789758236136672892335763528941818312369602297703634169365847390546563987462005074130566764352768384090686793220855461135233013103752082790524849468212736765761748196841599450818470077511714021348933019259107293992267861100388499325308632650946563341360319485283966181739599907997703241860991594341323511651385980275268895209347807485743440584281276738645385772997072956203787763501669273990336654364576374290859543517374054512452259547198781880513896056690821869967563334963497543726941524525818894592810540255293689918158859218992253208427738729483648308551101178282742534433125487890350928637022951344442204926537205358954699116369153805721648027821445037139446274470427624289349730852218072550977926909058406355975994660291035955925789804132636590168226868067853910233539741695577546536296366654833821381455212186607477374780646144169339903165095917447198789313967317003887017298759790031457157911713778874514677776624920910106271892324989169982033413803219119461723405937260250993474570230392642876684501726309636170119289988753943457150956787644884177940255497306304355304150182309137386136734203299459988486425260918313182147706433821410810275766096001504025473707821650639661268507488460077729115998777443123846662950685833009815460957356456464154508227802890055466434499140214849120254834540574940030539361543076887433730442605248011562671593123044058455449707392566717371092510459474729052388837278947621364854714273466489157791608215434944604075833751943224591472950155113288187301059572152789001742844246137830049505052569360754824022702437028080059246610969827852995141492796730317667188502012218603705604477516590866065595688141255232255832656969775728044795175497127007627221478678385159453134673419085754574502887350368499242497032017652855707343596555031972955243410748591902005412186410499194523374749097542819245002214628160184015764652143017878569678470030995160277301823741722006610040968551319248949681080678532340216494024132470882146867426574740736323692664570566271140852191483857656621234384192592538692965608790341305058341753005265101826073668772402895809150348716652274956178740445552821362735841414687406357767862657598831310847995539947365438022713302073437237755344886733128926588192786045547025716814864685653214704043142555871773676043243894954678606946361124418826582388671613169881603006188345050223561904638224917306292632048020300137601760725246710237640142055547476305387570919684092609694559810172071252343172714139395946476304179502642603799299785918380517245841550705071656502599325639891484843453235157809836574276049086179517102603113123627175926580633523048201153609835168834498369087982851062110545022615289668854139820024377374174657267331184348000702647992747410976007926822803375633536519567856553565047389871868706782192696645058765421027799508638786183580310885680709750354777994174465097899427549111567826855458655397973159023456822079682891448651190046946563978593555993433515823196862473918429507157223474848246140643109392305570004709355442864271248632556928268049719634314001886846763690037855353439098565087206762027245351654508539819980167913979599917819912226207598098159993565572343944317466200025631384371694504923516516170615684939715988870135997314949418571869677771804518757076991629320772736448035818913811697014130915600318493007082244780598453472977142621447140029861165763033207771389690162497953518089130385161422331708191792466590338204761698213427022978873161657382829567315207916426382167834493008814556135245503883729669921261200381301471635184873246445059283609986339619227435548999547434261898825122261481298823324107169431486731008185463836403336677822285419788388177991118352022158603648732892114812829163913335690995864207231819947328915812709626911234812464778371334813867289417142846254989031054587400191707518671530172299832996663298672449950329858238021449453367106061463817767253008188125781712623953764263210578563901267960016254044385546656238336141687111300275327209097591460438399950727990647829325511268417079511199369457016434890294454955424000019522394268095648752923456207781071143315828193826028564534381094201024445950315068288289331824717685017619556287185742501798539697855311386105229358748346377928475724769519774335693067892271231872400758105962404711163010948276354695873600533841272790516649953631022629761294551523793389510606451899827710558580216307992613433761500231949296040789517189394556883284312274609569164223940079854235524967544405885608999596680474956732200443732431170739700292734426197130848066622016255761113688505044806395421172554113410054484109262649139865123895214204096318567178203144964160369224958847901356782036297845878465667763537832848594164029855475464817061413526603731667384864804996359184313528841239187981823188561819823459380879205047687907373939504820261680334714570368006521306013897049560840026230271025362975537184964198055008041520935278354574413878253777289731372504091639771273135664452579946091953474986459020323671237298505252693869202046818681097500956458771300032734000752649843640143162512144405566227744331033262277634707563182812680767811676152130803872658046835324152643402223705118148751765543809603610968885324993499601490800776572646479782709861244629942129463424793451029439793639899208667537211186592448107826127874754992297571087164604941354518281794307762339127101981379134385289350301998597360303836019897441516702094892510070490617138728407392264421012790242892504691022780703549730815193508592171329749000765900684511167447045176596094895147045200318154707047670977451775768090211950992089732400680724905916125643805765934748212761944857756655971450933068187735226585206080172800237104369484707218641926907943016360395628652072604378640180706663451754630834852063124273378191123690162127638377630406015962837958581421342788347733557962465094729399337554253750650307422648118986618133442500583179759280657868041484703028658224937360223320342620789769624933260160037465713664765380761577950756273254466196391579417418578524710697397130005665231209337092778690273777973046693640539959944949096299899687149969982633833137430524558349761821069550789916737844661647045757634727947822333153951419060933130655206972527838134283814971863881499619502613149679816019748328495636738502489925615125325815050298347142245971254978876198848507722280780055571768189837021908741312144093920574776211774406762186556249938116143506774850924651059210970335696551680979228907500708748073917686925502643104473162922191810672975833493603054490691999944369667536847008676562783626794089097673357570862048222144698541361144649273263542737325348284689898858958652839538418085529198672759296894732345759994432250373751250004737779259583891113884994557321954542195963024423920900195979099914208556087864188832971162888463079929568893560777109957675761541436597929457666509793838885503424353737649118216865208117194789492240855023187037162112477621699682293838015781241573851037501359170908783046833455703662155535651992092735645563833891948699991467594884974342570753411047914686390538035151973423820047906887819399927936423611423125498328871950852142542734354279070402030357923269812043762761301933344912149305717122679662357175996017093457966854586740064965431299964647800209010471777030451992649937522769022857589792311573205879427533866169044622358317141762454916485819415507509539881857084560964344524870581389320888283135477486229470960023362541587592557932544415966862263564710140478967961011965140652303401195403490720461955094186216451903299749768306781657193405530910236473177935603454299850019822773320814239431609006495327439005672234475873217488455334599869347445478086257882570183346602993623782967083628212581344879019040837990389879633689011999528339191960596260358128075520983471649875149659031295736026072626176416558025244918105345975987986803088037998769159392479482630813283367659355339036288407063248507914704356554367652836119127510211698702664424230199291224136059604464481041164204986294060434888835213810415106566877201614536792070688662334689547857711542669385559877518962458862207252305722166551881477607166794771319853271485827470403772182181719152383580164324538684012433944928706071294784491477485532722011455001508384165111891712942927375021229400095837266376693745007626852491144810440248963297022131082412890503590559521144170113012009213119992449917064248107287656323204075287316373250421332145064754948286215447918832154811571716759293010049557991829118590194169410413505511773413675801321501326907084023874386217406727444726902529616717110366627993099201999443409345463700789474346069435039748628754696448626546746226205932919175827223330626814352475457146543174740058473792564457451933230268143794272638801963620274668283811440812190936207253680404440213508846141689740699114726869094220058858957740946830253140762378062968531951256172697166503928665918890009592006888552503972979070058620521369089517520005628300498766318419948613043986818450471277552880181757756075578026213985564283468799031560969268202268021709027645262236313932005047330148384025930566238435570658820870773820172092404966666647322947520850419928292909669746184023141778405861010483956453067712988593457459520434630586026346048259781011771542835412736730750721727927631174901486169720898803098917044121454412883820917083895763273151592276502915130533286802364429161488345613283619924871353092980342760334762780721385967612903507533581925308368222435478553638130280731968561277329926068714775560697718068734691557754727974170828747317755715271141270056040979013777061484789002662612480773658667199900408183622650951468474402935235529566642448014330542353138925520818064691218867500930647089543214785765965915816384317809523792770781971494322210885142365850875611231117834040237846614793136584645715550807675174643379319824704811993151232326339511394743896152876851696020674490836417031660481938376055712405660553205035278581909999591338907514434981491557215828404917059176272956099161326753281087684934496834326393785440961670435137604675637618405267255839504913183634975210431829051638639986583832341243536434331035735288693240976774145244375510018783873296307586942606030466307781154387943765751474293071077847537639012177939905799092103525903810865943704501742236860739091527374756407545004090375481874760534897132524493858547250439727093014173685000481419002489446309898178605739216265252958243594440610662596821992932429336834859735716345604431864958228279946518467077351174036108048594921910865420699741105138410052880631133429409704465587964278506282112402906283006968968596923548787667405731242709026548452803068662879664210683207087257808364386158702655976883004479757907282176736700724538774598302492478000340214512761610453952593371023414733639032379810082244822990846777512893014190450694355125060263739490715440786784240213109136568548071725247784550037017357359062167926120528219759299257613339297191630504164092644057614745606524234207089996415494096115182271645119420355650812254161936740758436728810116129825302823410734486222314664468237694177556312878153713697752171556394028710474594955825835630049907529677987687085340148918005693523651265147530716149331746697927913882949245001957505288525593117380782930508009998130941374479782801991336903212574290325158254392645317407550817549720757659143848114459566098026346212917532215565240809123944566480703432107779975855742382492482966330083789016009325157524942352990931302155025240847916154190874228761840649733403330152700671931162725500887310341552559010365438679867191971050408791888401443099857158422384193132074325460128611594842605618622163777224481621042436458703826015468692158729106677756947061795150804340861211959275293377920412641174304423188561225023996576722279515026276985131767348254981148025218197907103622105119301379442271794072161278512637716214309287815659919836271185553361933515022186679370017444040059596826174627287344260807825329232932186866712990125405690679273001058074736351252118125379628657254069345650898729617483032994266101016249434746915732806968490677819671444687830926977861715647611990716796520644324003473220638469872258211816327590052126409552051556954797711097459926930305133300698900609143700985163857954683699174559443444624977240721186115267887502746785166116832394568331514967543226940738323349604041111708803574601921385485999266524479430103605708602452253301589108200245595641366169881135348764437977565763916159270857969301805681916869401250352007411113775345314354970942945463631021735581621026824558631713818066942694646049810986189805964358874891976120722248821200375069467858248539744667721159699172558148171520237712991865094917401342928133071948186417522608450030908773658996858598599735155749873111438341415944408342581863116020380684218988972816003529441496337349035307174631947871534469642656881148586521976254039664014119045166995432104250780554031147078809366909262962832301575904903185729532712499226885126929891407437424052015017495968484399545851251481939842709073617830702207487865755741439149081532036902398384790482011303386483836119319335938480425169150757546896739641967214772305597580767860734832409088829896825410229817427851368365239972266022718251160673867329856348722340416804223774624130713023661105403465461813749755398142833702904148372670997330202298720455294704504655528534777616319581971271884907630430678612200902190251070041370127282625046056754270875433618364717677304639302095284266937321570901150335712674139535441830386230158772624387947845227704654346320986032812796754943443553435019506725159106416379931173411615809715370509079621740712674257252558900752711992683072292207120214909973350582865984519723928772409049768856524991613280046790725256347246952461416335668867702881648678200600312268066759424547882273542521017475558233939546637894469325075826394851207274720828159569198890925902503996758746115919580912873617164987683170653386015462095425511336003344728211928406293402570473683814944394514919209771158119187339902628283263390563952977964192463051546431833594365426404145054618224450366601018496316338030326011019100266998816576644772791732290886817392725222455932960728545908262227441754019920359476583566441617225905896569658138406392490434219033627333068354530506046134167932772935118685166430066040187492580168434180256457384564920070322480617434209753958093902790004278118257038673380400126572727226752886393111004465681288416720390352227232353792650550681795867565738647287927833961219218179352810816311130619477561055967725029154457760517020983561623701220692712355741708746001651571445887669527646775040685731904680084940699774716490569632038596597597389598842475378218901233057942244121860484181120579192535258984231825364451094110054059473961232599407401890780379123012121774720226783832275321503419908046039155363356037598388478322387404262761399956370397926110701678640237263469115694558322417805453429048635562793289226796577101820113039884072507823141355865586999173817036281156530460770960990614471229288091446690651833297748833495896189392870264483343500410022630456595112750890445289564194331931683055604606205923940137168425456804144591762522202551640744637687307206495825299156884337021022710465843836487970190117075916902673602776900703058395125137847917088016199606971911304741542638754777811408937338240969697714471392230894808426568804514007806378663764837770277139337531072593885977189010028576433346794506174108705855941205284237447993814535137491036484883196849992948604937497414191912087643917519385340073409997596608195848948139030363789316369369937542655028472131552499596645674277909403813338906369742527621771707820307349234938634253324759646615990492431488592785637080815291602635769408907253725475480432127047239129790025782775209807623075493015548534526019684352708074921712153968580961027493880754330848711096531328247986800351263271215836709241264853970143557534073021435722311847860718380643907274838192089532923686667915433942338409017629004206970430967889469627815763308021876132329550498399923441565284680607734072303587252430289708319721495842429539452481556810461837429318789000463083355046888041014869018543271093989561332337816237405909855788410225955272426623224219339755140828140423546227034218056373189166267121652398092492231184757378893407338184473431139343818204045333847978246908815432277706788287491795367927561161732427160822406051995701122520324650697993587777970891743785168966104894198394450312333057451207704297796974806001914871980493329564058263645879351850497719082689319956772407846353353423669093442334143988983857270992676625089746331442803705542777276919060939643689481587994921421776340833228851767266099038956622958050534243371783351298639247346033277291645270085288117751976270360526390522337331607360179842639957803177470582959563057228897715339408957056393131396313020337251884653039142260686292754409893900726401539247489582598441386803625952096854695441251492329776163823629763529908313239468006718020051389236839471151137391761489261331037722081051561083870200347202155086538399926388299537587530130320544948455238167855391981551724996722598188699876972588687416152663638122792287060080888894033335481685633971857859307545796461268236077330825926109805952659214154244057445417750317979691028373537241295562576850791807525619211418078435330434670949663619632029341793556751833779741347920984059104425079057633011872811803181537096933519719119995684920260713209330423497862372697525587101482169222916153454875551126759650662816603166646682595717902689211508195040782710140139703789998950889749787345082474836519626422931021916141275892310309895332021123321980786620508264567127461383566302214300466223563454072648549292243107850310240887280917539432668250575257860713089140218150452014488056949392896568536677368265726720700217340218368061282594392541421090066592587710509011445151632253125619702544955494727433501551040353806843482014085902946384562254516820633095703297745986292545582745781168461614469679473711709347946816394210012258687954109868992302369613180514321824530297791203743354935311424273504261679176446381416641034386517191549139035161387055387289378173749795231163083601308417979641481712737770614137657252213918282287792099484957280845543580301141477620051524011212683401713356892040434117059542784289556774682322384885580127587882586427341281331494490604242012665203279908033138291183243728258237962584106138467092225463149559776840953026880246465286246114143219208275570618879742898663742260117606340214975711435776248331300704974045613651016782750414661717103375681188073214758122580192077257653222869956305706188941239234395322635319280594589178349859104295734928240197549401067095660153336500085374346677852870924099358283447036318222436773398358354047533659086092533928661829847166356337938682145369585624278885436816157478741531901721531695199165905942604196662641760936933393800172725075301872497589459092644647760133946323512950581393343026927133636656112720371173466158508643239020845414324096477831195457638133171452015688158246545652392928199974777314745747568347295224172421955910756291217611517176631348227133507302781747649153216458264105201306262136361697615926901978289347401686579500489110522285972260809559491575200075960495127660808467024655973800033009265095300864243485704084571510504570241627665487922422357812951451938305402648872230955149377795831262939714801680000139517793188339394202313004604815520539419380743936378757193982706263416705280570627539823580042067429692091269495145043487799565487909029501052574074411907442424901507037516235621085461374046773679045841779737703046938559107664301622965854751587187526313025131680172802715713378064754822149317742629261286751174677651069263302071699597739444076961960773578639998845110078005818124264282044452527800086187998761672346792034047690627361807759582804750017078328910219377861826036239236988601677105670984140687449931476990258537460372391550988568437021459888751357923309525144217349950067817384456785452184173947247392232912886018407742334914789110202383305902491883172639186436304603594135334484324075967689421039330237682773053108948568482696382627578896913999123068403368309105455617200215638232511067473026527095482159121285087124145066873703396499279413267004309116248318690576245786952929652125094847310165662801446080220370483290638358701072514553265337905466758015880757123678363223704269689363502528581451054845107383576075817132250838630845680828412578542185012881613509981877137115906746885087166701894195753808501359777329133589249940805418339221941981693966046021642641229119785202871704070325767097940516781277357544512601657586733254301724799908187482648440753580779369027647622910701510306038303129642609907211609088255637264101086917589384214861110686955931902040906874596565879719217651098658022012692803543971196549395151694060360220599123594135649172562795991845762058300938400508280614058855005310007697093080064039108815324838628632848531890445955577393644331705790053306576143109057299149289824844638931831119911824082050148313013219894599406357662360716922786709164000009810299981437855977209324378613726418281386704313784910836964254411271152361074246875907700156323137620486539502240077136203731249352192685655934787406343048318106964334832845304122006903446531860405090378805124620213544530033083101727098657044732059315274596861733810570616600066318882876710142193090679754072971980067405329030125913351804583740002770805478465123809392776740456377534758350095235020067124942537435843283947376366659432102921818844451135405122980870764725549022786651677849896988876408339583803571134212713934945300504411618891492839494986167022779915958926629945079251174144893187246033177500922399248533445277533192484996538026014899093788227782113547591264157843229047419358548404588120112254788061761467959977957722009689082146372012042446637126609936951151134994458668135016530967906820446133753826085175011715753379023549423947092411039649723238251843903685536180153208832116667983708241925755395545912214045021937462946446128461777210703657706045281801381075146272725352187855431921086472657425946281999307094126562370939443295369333163232605496977698191527182183406522217528010947333970215302949349973586899306192272307860632434332669663390222257808874456822730995095436006765367534579958416379939755371867370745749569569325010632740623520684885169485874531046504830079108393839421046840386767534839512282350795252993666147472897469088350330067215662928018530511259172709108790717885653790756042913257423072774234615943714874468892704642907887309253930333664279698548479498560648826551395618863694778083917270867523911328645060805541941965770082285640709707663909413465995661010262894560346057505442282036299100593157715341332173351927744260423220617166240294374023274444715232243449189195875265315322415753458838041098069344322174253381197615651177308452564441111515831934947044401465588615266990690054738545211836095659158403261863941742229655472058216451804652037385075327022749607341993461736087292612121517441949700056702561509472583468200983107134814656916792872695112080290180574762344159798426477950523634524465334041444712613759130681887196360906375424019698311079363139059606537202670330176206642573159732168825678615098745823087983225514472648997055373835821444774901541879324182937033689503545024575171665395623356419987785979320545710154356498996612150379872078860650938958360161838110374522699851542921256672543746296855379098705172357747139730849786381993515971968067143019784264361781484217848419886568770198268222619338589930699232068916500908270663757472392625492731622648977412563754023927986754414130258345629668137590116255142464669105714017205665556286328541476237637800673366044204889163189729407406872925200721014822974749413072788827312665512681342193807816949423544118492807164710128998334548034077500463808796164971021706048394159024250813003967052414138262144477380726485641377200524186715269461727615722389520952534397591948926473796356126053307361151744770732280752125802585228445089370118185494406463779398799860514114491650056926141105398746851415857969845326781628085499445876037000324408406335375941327734739558692549599274596384592650867244876363512037504662033975240610484804310305046162484924688329805476445096599652920740460019053009047478943311452118808884355438848490270557528028353716877811998474804606261469881983817604078430589915648817529928125830836492514423008319501688379986682023739070407146176567447719446880431296943475784142031360227520453601824297755888322385028214307544250138390310235867443676374037216559141106073750948245712441203019226142181568414976748876121467748621693658438559342277795687345890666988666437480242825896797080833622568496279434680258594064957654128247437911261119505069105766054362416856014569362654096317238190696931628499285802438199307022320802164779046379110840674777670977449294888550780537337010883580352920356620133225992355830597149770108872720844832208521122104421067605859892515648558769599893646153848411691731695893596799156488737110968411325787199796776110665058105637175931630260346990999313361244586491184712828940574697152690908887466856298350188807037337303629119371577842622683380019507308925089558924782186905638943179281969490414802057607095703735414231125538468555095653860827411689472843203980198157522352490926676537568170053887026382050820217720177121415309194994658701245767384122510620299620308582277493039828936555041504981843317325243618351202408377487640831706201178595266384079066147262902268353537318373418343308751512798744100324604978687740326189405518149276764016615551609695828599375781055886752213567882409496741131175977990685479717456870764107143098618740237163344413859502626510755073842308357125915737305900864938485772714318293084049594622192237713469005457751132166878938989054242844741541419624332140543613760665754617535344247164987861198740816142833099471651075981369079457983330834850630791337836594006023394738917011957321876857941026151128451153835000251316083318154050177894801866028459753076433750850857207584962281460091254198008179600087575448237885093688158194826620001719614221316335692473269933457589618869155158475401518335751825773082884884556442358616186451348929536831682937431401279702096239967432438125970742657221602336604450943460801615544564451837269300852244590476254538306553805880356412157264699561487337518687738135709789220562909931362845215142203349863693012110618618511663685980144373304595286578409690994420043844270997116499578469795771507228084303542227613851106081651946929176555426260770495408546226917150188492329917541679561880522727979156217655005555620437866021525888325120659600887647415671958178293007640312852790735304986903408605767134225018466847844778313819165969329245254505574042518717255543137814424647641556557227337564717540457853814332093212364858414952493103116791794899239522327461295279624831861452935830880847552521049655349553300402695305576945907280312374891234247614763007335045967668006783164981648065515585994619793329008009531746304359614939370093080396451498641609378294750149680209106833919228718490666007886513847616879076764060568111361229928768606642399817171895869560972554108610944030539649938613633827724202587947509898669347724099358053888079503867742180604497438194503062674003163497805476561001903272080373669440078195599294646428356894363122626183098414446289095096923107968272064546271311078705315610983630723332667366028233176016903630135866820165188785895056635324906886508775117919752804580904871782893572520692290584133560902105450730687563368299005529884532678252097006237881878829986250953268336802522124236454394510968445038920719697427628706525040145407490558212204717724753730554569175267830517086828454329612351474129137449407528410650222791714896092529937078091249436849532784404140399300712125010443213514489477748339665776852755605571467187990498719154672955560650555314215311836758936875748662919097984174194908461040846292779338876349363996027169642448762341571976286038644760232308498488682323927706457484556750738708029518998802951282675031803782350325090816527196425663741389120234609869440615426175476275392870148299205527538137549830433496874510882146105379136898158930640725224588298758279805826035528638366839008908130744212221381017104095153668956052478133942684803481127232582856293484164380820648747724380476738262033973902062147097214710473920024649260384155151774919751562570022382617148330244582969690214952597037652707890654896459787312811620468191956865098536942691239422934166983431161506243844069032733705366974597714855294128253855523771241611516562337332380674850136920697789108200854337849476022519168373333111185398043804246354733600791063212556276974084458272904269217251382913967501344159040360285794843081640619600233661769820266544533737750791608433521167248596665511677097545219300586253677815863574186628724681121412661056163558483119548993561468234298606074424145592240951814482704726277363343808450090095641944073819750771450801091807828127910614959798772422641279165775745385346821048577759832185700625655785173364844316511830951797099764385541349095786008327938939760532891515821860596218697181572162749337758092629625590600414722013242002968993927835804248875638028183786292831287073111154135055857029127609338381856959271884170062778448771055006406801075806828531990850333342890372091525603729249362234012475283953786667492151630444075367707069045082637417280575876849212667123654717427829204903193455651408062914843362526412913337849524684778604055736829496793883195592207638961570421898182060905553239879258253225733225305235297198658850091060988106900029840913881632157234495592541839071743625050777060145889262799674114556956468898074507767573084671468515258323220061167809449434946934693842565467466626392141058373026864596565879047491122561980465303865105646530146109614134364874065254842559137777399461146919768203748524457014083167273620868461368807120086714703211412376424720015143861719590945971108905744768015359045404919917780112417120974698450007451552828981337837750481680747964863227078512422838287313287645959581857070661543657587942026113251571195221701422473942129374621011386664337587735033525697907204891373349601355468265916654775625040688456665581892283002376535609349855133358226457465310838045315671292529069980382035595407196960975889995839738095884633623077926879728891858742932727450516421891820233554694885843133541460282340189394627001114604346516636324471580011981417399159983355145686047945801583688512264246535420010636298055525682466649424536844758984140373946538058659008180363798494402549180499517101424991542034814354324077352587455776848919415831883048055535106746206427885023343523081742775105660233766662820436923474351734039709885462470540510793095252848959858013053535154811345567490510532538205371006964057306218268200242586719270596234443311301738146673946037859055333274485686253733926201357409554351086849394220728225369796587643863149797772677374611313404938005596470212914656308714248564856541162234925136841554271415026311695512762409102801409831376440613111020869057257891094414115998988636691224662715011437507424507320981796675836074742692813806785453806504669131321351306391450194789658563573917130676598729348379670292428673019926036910839640232060413318951170828437683885579598600850452092088380016497137965727073458405404868167006066187620227019183119151585874584221524444041328206708085092378564231892118626959551059173925455925588243058545249859536046625538000421047011748690017250233538920632662671345678951013747485977107856158206195034911847854706119515994318905243925959684663920890121721834947551272921761237414146709086388084851709724976443519861467832113112789135066244808969312470229783334140228990352722501334678936918294826748473981283793995843031796639093498827649935820944530720913738874450691785920002206342645481962774258472225834069739892672832502439121201817931517742275906149797502958679229610863550942920181524579814985387081494070264715934878172804217483291733661498426936549187058219921588513873512530415765013510554051608888115151490346095811164106916987907129021320728650549280467634568281179699612434129943488254624401316099524237034714864166942478813832718300459018156437712630472363991916862974115742823125103312130775459287413327274104005004850515614824652741812559879039310974260826317485585565934731536855335452118675411381470476759176484730773516131972848682416108871776183169303664606817356466559191851137415869313423736981748741200860343505188217931150804314912086637027414983642163947920557451960271909848325579415306094908925149384985908025250170635597959722536479681126419006912004132273890638241417477328846115266852435104504101410343912886720759166787472262963122837726496406961866732231328840651695375311337501844690187858433390517770041868159408795503295142059019300263610938297259533807457920744957495500040060227304877666979537167471213771443598416683982795670769215484034777991616956948306814122017576353378167543741816487045916147133008493726686475477059045401052663654808885198950987459782219690323335830495206229073698218797717183476884444237800635377092373723013440820875282065020100081504314385115318913672009208310497604923990034935018997881828194928633128794911549418281682183042158977276621862927849117545435783786375008207063948044941345964945663189518930389050598765759957566585478229595659810115824204638484048854007388743524910215922288773289912082479595394972206841948997301374941171123477649469497062809999034898188798759373984535228616668375071140665796469248549677470810470378953627314155808364859919130673197477434322255839809052136060186538462049749698273142578690232047354163421017743213100877554831144603237919539114052411133519193195394524199314310495039807430031851190468011785828164690212438611260333078935019713136582334286910773234348646013157894672644207351355952096005682644065450101110081303601547609654159387528494351300687803022995743722050690643583602320479351181890421491735870028367673821286524830336548222366097166246148173625986982944890227442401269997334552402369195279199035466480819051327129315601083622513496488637948314347486772376299913576150947225232757110414815461309811767422413643452986753294838704354281322473265704944949105217732414265660712329126352000791573259740003386676529465650116320571169275647289180438023501061965199142016715638426664931257722927158052417101136857378867841297995408833993725082172450530434124305312826358790581676490057266414771881100900912777334040342416203404101295420040178974435264247701558441805266255557125008597402286090757166482735227178589466658928231548549864624027317264046283913465873268166909741278821286984668724749243110319365316738496314869888207843031288671439621809704013368312518227952921639103007729299139231363637959700078245742841384552216364990525313710301089557703728184030587992083728750193661528306246551855414554167208448167489589153197303718535540083318365452045813054304523574441476434293813726351433824184178874313344506853470935786248213175116042483096433136689940049692074766141917764898964039655181902668814443140074152219831874677349314950065253088101281068688477978310171220305705958931165279421246765148660722789828569635521987743775927632780235036742854102569604631885424773691735100622658006344051169509718729155116819695352702043190720319185799035962308249502565159368740273527451695392305275264238532246414953232514569785778004857398842979250762408279101602421707263743165294437518083693778361744363131757497132848364071368778334421067783965453897619974059321722163066755134448323461247471572033005744774269668863844001540610366974720515880604710502575479045720689415045942095679326930414994129194146239268348252415771580109645924893388860366896675188513922153420313867082053043771468287032554145754639283475653080108804295475159188370724685715719349842895882579314075449017133103660897545891754207511380312060600741046552727123567823064717499177817872121468597713029599144615200083664080822421004376777159718234837471706580390581574020602780220062330863309151258763413286887490490138814363927139469435988626705372527208470903448341261652302511412119835978665017935585440344056639131594670692147631979869473370503615661849508300119109160624871233462433716872658726182810759045151163817720733373831011695833682240753060686131046553373524519360846991307178217922409383897449335829997691986273451642941633151523174188715649904094160956406468249448370611339589583417224305148524417033435810209457174651479409064487642832067183778462819646001797867088519697657240813380098263752396752006042238989566455852386142355096831858712153031816601413465195604550747444738090620403597097480133844723819936209665945593759812667019580371122038758590507868002908087022577096124848876277464959729738439916342553455885935403576745831347575797777171453922732508256941012715310528754273350839447752438535875470322234332375787669340986998674437325823994715733720897092569938862884281700121377480169676584937698367396538789732007320328314090243840763111706755837504259940308023148641254256177352119360554746391256375153358551643101846540543254777330686714790911589703428557505701650579257863144298376531239935872247001252859396361196725858720295980833951508034234067348388045516037698001775057507933759925584505114397643469621427083621580011531341987490870295164077479784990349071309153774300051121292612039081309201024774803349103888291450409527069962059316548775995155856282816119968641309164472449952466138073584105410576092609338355817967723855593920081338593514016045898325051396506459783610275208331295303590739796307651061388140667658345424621346686351035937168858559325782610962320127909661732219203974583800464452898923603062302684886434842546165128600208138359607283960893204067031154746539496039150150590508127483816261803582564473897495375913137571538709674454791443969210420477145815530883320164338940482690631377447248198126004991251426661610062298604195237486070544825016072446318878981760983172958189385783180535718303347988597718320092194637179677590757393142950261120609291300435234419063052187253280540757195362503497022422520828447850458266213330026460662976520488830715725696823315620299884429372912582015239567798787935146399403728867054091048366203951488235805657220799632245791828051163306975520276827113039986068807467883631524239603755541306347167009578078391382672074177244540013947593541853251284857755250346374376955886667295095951453342719358882948318594071424318119050233346517047860079898940841617287952080209320412422769258835873805332968814907811606251187463287826413186495492653174963992979944479111788106499152897009508847149011117803301823173926450204615851660433334409871474730838193900720434346720658866752759190707785341073363645300337581085853549124483154704566213519801652939229197983418957374682627974327208184607883006639311756085488334693849628263809563568042215791082180265708613533621176570512490635441084505363003916118193766534289531214368320826557831895144255209296889305510443652235065151795789810750948058118783637119278409218802455721962888047978545956092579614014679489432156773772389125478410310678298661158753638778220234280421536163728255701234368133702227013762027321270744799085796498485593294573701068161334021117472733390857803835333382540906914768841668092597597205350189330606527733870875119922717458383290976397930067555535213746074305630705828190969555668915225563915082889934368118695326925706704754811355024056052000468025755817372907355253617259642907200654660023501634907018218118472402182330400798919368279058910550283766395146621381516652733246369069967458948169863737584882655433068292708733856273141217511136460528665415632731249763942676370089061416651472629376287054411120970973673393543842062411854149392343693756125284306362273439413370572339651449261567063709045173283206593922635014922826791510883053795022148617192281851441650803260371312455551768214977651404605155119700406783026881609555694665490230717835137663689697714161444678133311991994119434667906809030539421585922546349542703778402375872534053961732468986051906913998370898607101855875502171569536318486409472707262238264168944847766241523049408811607067655187484379454445833006161352792727116401516071684570595360472425045474167262986641627575871036268527797694025241671149400809544479659788913053212875157357372052459201207913956678874898085115587237468799541145401463567825878152929010745038520795074064456407967468388336604735426966197763456120097222360009088159051168706237600752788548891975723300300327088321767551712249709840798820182632050216890470701397330786417606805639910065059770886210679961306021420092262874814608702106675929462364198536824333951489914625029925948859217730329237114434049308662193155620848772256420128375985778344848257613312297745575076073359447030663857171623088927848297849288732322654114085996012965121309264771599601073346147280884709584327353051294109522332535546273232913208556743159342262141819436590650890070648636791784617771410166958019480696090228315711021763064146950547013503359587056279082584320471342540374581808474335156736789799256443489042935688858599906425542485127217103313682547378988014955292996202953283047444343837191174552078504922261552108673261926656951408625938799683074637926919625381339096673819584977590366078347681130078597993712244470904944771095184775560553951106020715754947533994146956570090705663608146292078122066423384798356071325442703693127870914273163216172962077405634832898760069094950844451437797377142927220322476263306318721464142428663366133000409552114600769141988208894388236009314038556306135663359123638786816992121996659197251357914442142472699214675138531253196289195847823202890815570532468771155603838920799977386940432776323157042418542272661983359857685133661153665173489123943960518487890316556604370897421939184121716827205400444210024366152424949086103898631869014195424474663310862679925158356811765318300410772386814707319415101259546258131917091731318524998258525173950496439970490672611037082306946008321526534554280012080281830749138444876329235406887022023264826444183572853925069862915126004417693492888524246488955908789491529676758037117569142072783277224505112621707492788988298585545328616367608391957011695618671958979687797078336867467756658489311727203973205939068979915199092875391624323747530218223081455303323026693898114381757520589982630161994180463585450021128131757795297213464443058157930483527485045409678103293671182373042329927056243156053184345394466363109841855784218293302935744839115508123213561219572208045308308481112579940186396247591664889213826786188648575801036333476267530520407778814382086403942610109299427321479056301913115581026966126968594888052873804282154605883498286198516687978190525323645835959199164482302444731436449489987605074575420233811863903234090881635853902320490575637163245266914202038662331519444364199965388779250260687622739102027670396062130821444716205928976115324333543447143540260592568013427695276190062008715926517096668959860330762165240781244841123068014064794768118614296020531682163234503785630794329957308867829529043766282095416631758771583428169929611998978686715179599769341517021507380920657060623831415481478334916835820570829376783725649748580169534662654002523861607428717713656437821613852497862704147681786864711837030216143292700454463601369745216247743487835591671455671072272638015869211739996253019357581836784855098322994274575014999350955738054133783306234669490452736813827132009646511841935373224145513328578695876478103088385342193875390772497713183099993227970496846091081521231570128419589553239624515223765918356853696613885808917625743032198600457210885839458915023363256872889912283027112183985333800225486201396927222374686529759882677826705396473517566779291397537601711271442506553490844492553496766035005542555887441693672038738966966800685900126934449544185164996334779628010304945372267291259223011531609372413458215160336801984725964652706821930710119033346859028518516590160475511276509741752549390429242930606493312613143232910045791305140155135610615281576817802308398960307714467555387425748959219152754149279510746124779354411609785643908380787142787396924504244743364262533828521918719967702483649561197909177064847099849799480084236746916719028775762098420465204594583444718538370993120453024379223360784547456849389475557508753442649027728204552645278597512204805546563472961821479971255757108443837128260885922023569025725911170841391409934325319956904914959548576065828207505751486514369696625130213364741828836030926422332088342555676645754816971944704151999564863904137751355523945352799431337033722770987216137604112794773631206594221988665377544401855970888188627803556108026672410509724338914094159221174164313262061942488036152356676418129733913505087440137997815782894691945449535567722690128506113827267549356771085138752263252223667533542038272059541366694686262562207869267927549922761691070073341948371148687958715493399280608326679647158895719030954835223170903888263089144191627101809198177790594804708847661055345913494378783702159469315029072249903260499287294675440199577451924512167946102271249460156391408680080157232923190637001360827946579089483901480695261012623961049682723217872195674601125192298949828812358693639441213019015327212927105271999088034605157245161160696055733427213335690498098806584660436517526620173701896610921058784287387432009402764551386722453265081149992641165176591433952701390687556002598441500387881037826295359352420273882804596549155435201865292700482909597113753443829940763246835104904831574026727086395786400769995027046434278610925435628770340370932003882639488260290331504365011547326028642556156064508610942113745994448306300773448072042530270570373738074006426404910403988149401852122100960661083438122576188756755506596856347182873188652577812982964564054051459883339165150669967734261651412123487743622758278886137427709880588415768128329202316758449633420822091875122729129742422629842891994194873948204323764733666499908537661896578590280381930856068729381537842249339403419233255489820310536975971651728349084518757636672964863968984113836432345514551574637199161028937749447008783242736003258295411904984174280769352499727229348182067154362369140790041330071901081379475449690001581816060116432203186306854812611447370930149970852107042514963652364684645695797144647188250421636519147399722953825093442395446682037829759987194523275031814984475679311253987991946235376541922595291870975100941303372496234669992777131237761564037739177834713905900126224046638087463748127868381509214266649782828762729015148219744834256367266009109307145261740678331515757526552902255811152669907362000015628125767194448881210815578112355308991189837048165328959710502891901546543660813933455029257752085988305301388169892941598335855755759626818522130092837242394650018993298629694362068783494362593984423947478890779703038336069173624958750011734756340219935879236799297311094874766038193335489995604065695981260275570874000121656684921833468276868403356138273426701538397205004455437816007113326971862524738727437259402030747840083286289836728445839303967872654014227997836739678370072825787943308293973200812162102964853833146603450916391059860300941555634279336268339526959077020498940206540955198099028778187490089249802203593666836696601039747557962996728222186677411299478011749905188627567039522442550873871366284067396813509778403555375284240791663205519830980764969803100806047316330844937380995088196369109506421434757969611016480434778595832767291958783795528734248077718384878926724292992154848697069521243842452183011698979090263314958115529365652286947222513772574886086452888578750237796483336888085122689484705001164868820318525708584245261545231408196575784876156479104677846215989979805448469631232046252350424440307206474185303685516450849448408874856041450975038647481746373413450901111180297803079885340239433401287119518795041502737649023354969733391708711333874876692831448207430557549259585370671767279340487626073886729837789509063335865543061742202123613532206253667297375059521239798077177892581880813160336634591879207586293306550033961992399811605402825478417796026665154187787349894791077131979052350121920429335425866126298259027753306625930683143644244861143355831407573753038724513077298791014356086874784069027707885769497660240512762127669238660956914419105218636480329928022492262054950393554200435952044084271344100459194714345179486896539675726411999273506704574720088590144140909866848118829370643889110556692783937255765302333819770455155872403385843458743285298154791587948427217416195992499444367716591616829588105987670486624488643411052761956008970327698865481658422896391296145841416725163696959462706770148339253275924456525104307230700545214305276188428864937205229253489554629877390925769183424225508738686243816900313520477146223497357036687836859716553974825604894199812931756773645093893616833457187174845219825072375518432824883695572858028043568863251554615744435443994970980573937686269505033692000797200628571166696214409922311157967167652812976048995184027512593134246239222854663734194962180635795763849464324663435034670144710571713104479431648167436512370028821003962003366110295262914844121956547106272044740539206163691357550141395678747815166192192384100007177321068198367746914713591650313582244267933570034085195729335000248583769328917904426930988792778090060411609211725290888942229368319102258878045872783236016276945933460754539877814085711352969318452280056754093024911679937265923837108473859363438744811889502077817358735955470696618865723151698406916437916198685268494044713285747888673890543299480001878834315022997081681722241128954247471165797218915806936455258982471463030635960767191784099562525010587583390889289357901006260457313131673179414004720925420491171855350023821584563337982725654412200129435674026571868466320157926293032333583021943599860825919612433864386873351089798197306366509906723727510034615079662567505559393242447648898368461616077161992248068832951453210136397797350894353668750002496433201541889414226281982910781425589207786741632883821793557757067544824851447806710654993065871087622454419393594490276785350502873432741142408312509477383585872420302088942057307030434585210676091835739617262707716919221440919249265788334047343989364608142651830032545065648382833030752524580169376566338471436739256689117925915220604498245755750460867586353017174751532067357452558516553199955674543621855457252356738576798853207850031563089615730699165964357625793662641980780939041618500320330696890847767959449822891023398396156826670763243487707168364300563986092530843186513355512549352314187528503920187620870225235341808340509959072806951930817476205152459845119807760861302482934465969996752564739609007907323859945119077143321698813180865159820647461179590680786961280959333253680906619584782283797864070839596569255353888121051084405564006242482823363892514556499683782688783356890031552091081089448666566220723449667054160726875077533990618850792079957695885408827367916138881959996087549790591738859501182312733505431949770954651256052794638694104377911590763577332517490446339341994341846138495674962305142448667114599009419003177669750599932707648497838326901642429021333861523706997812989391673699371749904054807364142077164301182722183872418797390850874994434158664068538133232371681677427074295653323610388571503021232653055832382884965038670890047375567889025032654591704530597990745593782920064639725349114557728648772056137514761043531788558555522691590478466827277771294283433937231313498354690212430489149104428769498164328010945939768174316719561620906925648602647539502574626594605373414503469670577799858877974700102935367148824609417492752584940534839845485730979398732441454384253993358421948677049274617058730544080003318709937545945624310619298939097458875211655235384899148221371483780429152832637162061293858917632341241077253674104694061724322181903296429637348794379182616430437931704027655618522266243556770753474017288214765440649887534434165752432436195427958740555114071091913567999466228545678693053929120576937044741870282660757784312559494396255745172205914713980642385488476290281030802911880695942584093138035145291983774571250132231275507364474491878916180067676770987473901622023030360819301847871293966736452176731259663508748772383467679407422844509207180296372598045120631600437930823719920290851837792754209388289870420402989560403083834515433182038248480767115609544839243121201783727363827079026099320925211763048995335426187172696043211019240336381255602518324041772845088056526964879340722527324965165869322401950738484214936130633216991069087915287489974348360990809800910237901234544902167632605700606465643181415113421960749613333189571557875992440034103077378190483130457272935340057194408749338124783622675677660563754272046419507109929893556510588617026236386447115697639930416007233256507962270244950433824719079252264319755318705582691528802311294786218643829320316476593368545085948276271715621706941404470005038347724839982240525739227174968380298107803994977851988708614561072584649780409316935712978346040455423396466182349385089793455457100477559996467488961867394746072966419561398784353815100448708628632235699033742682286945021643914761185242387870217104559185396768683127140086255049566559216146221964789539104318502840352090590445493313679142725751095851209740382584306463774397351825040911270276523013540870100930555517460738771230679044488308158830148140632626602306693601433997953352079741571438111634069972607404560414404221825125180199400981100640709223296107276651349669290409365420467376623803934992351708500761739369632711296392273816777565886584194747698552054310666410061539848808753327660331863301981346789383203788245456517356765483551090359928754628532662149905049111322125818813888687079197707957877699653081665785416553925578025257887612465199820278362264049295343267223899323069303936486998569231137432872972224142089020925142943557643460700992979485215905517423159342650422039498151899570875282314401543567920832778019922872635329137104343018820034667931637907243005082207717948855493614696114219407976075749584442056322330720661866260653907563951615244152830963479778266311140587037479909826908065189111744847809732249736529035171740875943314406958919651978293114203926766812737151444892410881142269443720192415419604579078959234920087425952840729134110023149232351363312629515987274366810364230312090508084428303357406432248864265249206126378345168451662645865232038881728140531009340249211408916383768754726785280592875648341052370421732155040906560437528430761213692095673419268690933256086501508120680583365757335312654956561403526402330582232020164860449047270734303217513960869036223302289109167987175289591074947863975766871359654194149329024759450536491868594061342932535997901635768723438107566944073390886335845909515586644377200399925242376258326190009237288305021234494071973323031861497649664802066157395408162292551073743006531919158399930459536581936006749558981444301220375837410329839268888228110688058994829623330852922424707449180252871476396712937063296088686174386936350814097201929428245821391330853966825132125973329482182587889720357725183886477345211949295341918443853428067282129478123351688139156920207195732823946304891646100073467189894120913778011275479483199416249875855843809636000556414115818413116601660060971703885432109251058969068621324110612024450432617924017195471460346278778000059841091117042731897449997787330868228053650165951345191699403093428793238475732805674223123441608867269994341185547022963860672498357631846704353664697559865775849706439689854842908790496026287817577102429941051376806344791521341043620944981228994445674220421944194993765497294596007814882212592205660155644188122485780608777140350731999263875592857956711158019416151009316258860778295304524843309725232027012663078711347644887588214162870731205436560095582786338997344473278631035276353054209385913912351244839691707371684664239929843973098793771190700141373531302307325337569722118647144451857751746188505354702741856326382595046938102924025687549423022672567478804507661038137949754276190304428094113655944428227461462835538568065547593956149393681165595099601275552985914222175940688132850069299563839409310311991116298996689607204419132163743403357620190935934198582552490798040797262690191660450268423897097038131626897136055592385788658704279703603262161597179215158854844614529401792595085521587709705534938195391447038116779982352784512211003694757243954645364772480383742702498874879768255576819092442645001377096461706508320625462281030586366776872870779814410461775126951680789896323221664678289995148806289062583304164280699197679170850051242459737992157934323357754442254119631305307045902340694487326428484283632077525691368464403004127967227736509823158391649996995898960699749546980106303578160930200354232235276809939284944722854612371781386823134286689528963752030923251896033937696637493774149706999677345579144115825254320026727379799802394728687843826765753791434641537976881343506466709472986447085028771536394249669351106021145238825804087405841860057424048567082467170676427928176011819244376560326104635258382445784738860989986248189767207256898252749999605771565227202584194300801283618709234004488039675555353168148877758954602870377925204049949309959459627978893968436111586972192821162277743191684477290457170715670453097215071399331108813327969666859857078438820341139721976461282551620392788280947700978058172188211592169590998928542006506486074051392178917657040018162086488860404974758819671805112697528163857191044047059608941929341527547193672555463948340552678919221746064337264694535429700467792150542166899794596570029598431220614576325913716542436732276554363704357261931277954180191589894615677795617246576893673780266439118249071106897887214737543583609510736537425451464187023479919656138156956879785236794972707623050647975374835980068848167575148069629492708737867534375959051652975253059504312621555650706702913891708400823580798380522724082910072665209337281247871551283763745364490220426558491127026595084927562293429774626062324148191291772539717886593513436307803477382212216408781425987664216829364434831667626312301256455798331595705640986837031738807078637045676460780198430728581345217795100457318957467984133873555842421208913656260513524634941198598004381126788092864700904814111678469350244109016398538226448120219987227660560408422293951060865523710035055757018289436801003093147129834750738215187705497252064772513108714338513645260389501654970220026218694837904938436596178054236564282015001027049984283214113776733358608683389784378313105493482523943957283698159358877729625377785687804338126866512990713546779540020066759505986004432665640347642753220507646054240176346954492919693776025772535992148620683776589887916696086364040457257623827117661330429954515509591182300056584828255692391431625581693794454183410089422011466293004375205126451083171466626816175370135620850160470444018037661971466384208534796569871706798974503732334580805668953804801549372445077814796295390919784878567758685028391773945136753028508605592451482907804127144347730699819317476699867689807480008309082235901548396577886780351363749848278868735022256546915041085491659494127619273000215835520834668584525083683019654630626806569419398568082324829431330972875757562114375943860787672970127624564953496417431532109980383907643834909996377221266113607569759036165904922506595239900547455919865947116583989851121454634250351580968821113151503770835804852903167662780482904799608719011172633015381507953148180424054498811495391254341202899523576729920796919608204411407674012737364171177720000904971440799241212930080386047008151432246132786931833236635799534451538770892160776163917367091840209914753462015713528665975579400480296672216702135676350198011203403462884061120791568121980436908950840461929639067754881715173204789771213719710034450871007990006970245128893406764000597846135606408109615867363881077030576086184067919419882980678234576159716439125170231373990856510602149004527980597151870891320963727570459670958072808698882479184710392863693745853243799733521217021772211866326273506200849801790909145332839353801960112324148943378509762775006580420277081109254847663857277020955836248056645827162124150339496445835325199799278067249110144705826559911871738723194948551591977031314542850779237591344626930650177883649559176166375399231071687059372743241407464607768135161461868367772189303024208699005836215049764088236006271630837850737669673826350498395745963350936959633896846095939266317844756572596774934985648515258651438355846022950253536973283207490232146135746771199628493498060372794001853749330595478223862881790046819526028496668187989723998933401761276976495357123434532036388337823096398790183933398169886989446590126319513382830149545701630106054339326109880560809069415587658943559592379633946812354903650982133507288474627145059779403879486425073424501555298059512045203796196095130875134199271346922246471608192778246980924398408666202692679397417803093790783267215891985918044125967627180249072633972797840025757660967979024382456070804713870934226161031104058456596958194910527777963242399025206276057350092333771841711977165047934475987576591252594647883498768899523889328098343082965093049675763430352392852206445723277014249537425118829375852933693696137545680978588209948631756947120717436547007592154470133833785833512704424479775235859176218997863690068088106592908032027339026315790533278836199997253303881408329954711620943782986986410290783284660010637708097486909315094127176516564965687060490461427730866558279297111924968217937012992408747560402711550511483079367806463199016899820330209972470413669530472288571302166636057520163944023183533080539861223596939606859473814111488616819008270798061457326983566819317649586339246868884836300697394980275903577854644705336286697744741379211900228168563834423347793645473679245687126477748330916326731646923716263637892013777692288452234448092394917645774261636532590368541447562321920482753146629561328386657511445785134108872610255838564988600969330489299466518766102086592635880382094521798957821199560105249144040306689037877806722762829274378176848554202312145318434128155284395769371670032014854189015554247726100684414177307802295950017816569438618834387493821744641605788794538476875014598124692318586899688467423032378720717014225389869306726638662647514726814426990299619607965550273127100269250490310719783325592878702444069810524487103528918303196440232193562653631790322119475596113802097386061074954314431820605583228150620531127207602368813138267741055010470837518377962084790662212605101935366576901221165365873287679716666804323348283829999712820032734913470652085807881470761976566094792580512523692358137211873406540325417921531182186514817572774990400092386735098889591913337458500937424156877207577973038185249348694284832424164154246086714561423248859801169629856582830243834343219566923068993269967904406946061422678850251287864186030694820364381673747780189467974889221962863758878494918404416415148011236686780001073516870514652594700154423335719910819464820347049705261112527045699643616762097022615761403596903524275040122835626186808787286624767215000593182470225068607897668393796989917279980294747720104427749252194791751974228556952705406894678812293421798201622769022408111951505025898180043882289516166217922975358699970087047189626358014568078953236779665262652074481125797823421843648195089483903526992559291475386589233562794366693730850206860114150472419499035987839756786753936117158004358928315108156503446097436017544079079412731745839677452241365367852856754323057999518788517196315743270635996381960100476097244632038572641780292499976950878744991096243505790151333940177598591950788594455431393599314101950104754158810059370087617650257389999402344830583125901472808086018622186045400824844997687878155375918879422554099110101865768803518214704683774375785538750606003706856439890602017861057763401965863239189146773547081555186707798582233292194574056923114557956184698385458807019430137832049813104469220234709551434067881498547690463313207712592464278426597053692782111419422559243682421421987406679292685682852421989248079268762167953239002614835952868469082026552959995742027834117016663495476762520722754816467542856448849677129312470883637918775188943102794352981606819205262841347489684036818866012389576038360140430125036488853705769454752916639658919114122790545905463782055794480797359746061198553194027052855982223413919185570461777584733049098537844308077194839581116724848848622158132378808281034065266547535494820401518147072571870303287256454974809559251672891330172088637471016976359445619499586298489312686400869888540781238033593827092874184992109781974719436538074038929005263256101609430153405824446221988805760513591971885352030574043908800334073287594123913267769531436552362784190183114059144047563012323121695524393107558715419225132736414202349956657678210770365559697039258631090548998644870027534533015215519958118453219430551884087494157836025924282228760047807602563186706332388960832183020986397419391626239595861586821455571686420119346991781415822297038136188501358027329779984242723826753380850808072504206247700078111370888686076418638472710212940921853741463294229741429457048360571401508511556205297836126071594840593467807074672683123639236428213939173967773675732346038751822860260932665850178657251496317246247913855044656368686569307770912967195949423542138647216660655782373479672316370497754338002072117828780229629258499948867152146284838789139199185559414176224191561631694145104234315623678044260669475468419029702441417713317613114887667230940041540164621820226079868768913818258681520428640620694992576538259469654470907561960845957038110324763207006597061265773376381511929844765129349456399862262598211956152685729857771588292428066792265538857047520342565352375256507895156491943491370542887998085818454154084731093668862806313581345766182270888960904574752574438513769261064710986396751721269101405892989190924794893881770319389073801498523701468246178523591005005301019634286054338889588052756611460684310425560388003258983086780282929987364694467669527681069736816695905155673693413150045854458226746998685714291593056485892997638338835712794468235728867819782631470021859819062989028724153472324698988420264780874059599042627811365324627452108332579123371757800249779794071094775990635250833040850968652875682884199903516731759997182957967874863981455387032857066827077613398747008456250287682327178808039766013547987942760474234490235936685472858567245689022775498064187117739858895257172209208425390758611372318672076420277997277205576240700401075996987254993919450425597320724068028009391389039828987796272016557578378569916308598680202345636081813030130634412896703958118785594510515604075920077532265671962905238196588150019086738433034642306220273903710326683875550220517292336398558821585890633965016686222622399413653838720165067701660352688581039199245319722970750887582000877269667430941305900103679180247075835354799520712115573410277169884425558132879362489463345533589311576656247341303762665165038139909022471282217251079137984907371925061270563568432651217290147525335789710877168299332862356129650243885419433001533525931591499879116764645953967182522491876893467230136645681667133513801024738305689711540470820942321915689954823947479939339381293526437720617828025805615233674303585280034990377174471382923375249884966674840913151509430602112508160613452998029154931431817660982618656524363759941071202739989537856077288921117730479493553351784785414704329302123870535773429220893382988447872084443933753267647109745737347500141445608345721713512358108527976415584519764905920966191852368623628847305408999413260783749093266657611605511837085135878419105737328838304180701607715584856409143692439990115059293511481209448423204243072434292515745591012632719671689324193196804319531393473527745513364471234905778044742025679532416524787187835429387666698427819459902222787193491770057917269195247040385713843737011022962927170491899406335675668247397370046375438937253786619379495272891132338434223744982210919723869388306747137066697308270248896339493811499173943728611800467276275568393634610093786879480826992868227288612938615355224538666431875509339730857138421204274765218655189305313673887637831492647225310983223306875138701555892626565624678241004841637440029821303496547979660547561492638980816366194096259843190938027652332997485145801051198754071131349561859226917710157496701081460702643594664989659878414787366305075602966853554856174785426186458593757369498971688943797433816316799165799349027113642809154417172879065249535936566813521667100911621646368374038477147262839951912792331150523409884831222215783252408392321398980642446654536007995737732827921999596587090192560904176328475479859604793007636292439161551539569045522420249917023338100213148280135360081211352821624122100234399312899787551561833108113171310844061792494463483339784201075906450303737421797946330855888891441288988642205895339837640796299383446202149970007706657736503865012194136801511548419106873074815420398156473346722141119886987150587338990472170130237510873319793902821172443262336879464405201697262159631247350981193314387852276743409269450842816115768742854371923084200224451696567867547155482051289873576169308590844338124586967735208576446915247967384715094220287432933920619719752321725205792600594199442643166657732789355387048590312327035792563827840786021834125002603748669097642903648318017643371085387781046144969400298190621552870312463933592691495071503301189706448114542887102515242892280867281441660397601986376479631305083647749139274138980965780420830227713120346875339676958601899187956571704799659853583280391299602172492496862310223781295801719309379513601755682832718746810452714705471783341478866749803903849198238390803107220881802853272233917305718796642620580501469408371775205245613224477855709506989138080058534335749449653817725275141917606661591536922340054785333662718174054625899471341663399727968545206261078430946105742598325918569122356702598521372776844420013096110115129974659707209489031010683782129500505415151024818562911296138010746861020031538368889236951839886849153363902616494528539716564196287922247402488726459785659496127054491265238124412615629849645025470477185050275303608095127031831751437862727942111148615053326409224173096689608478010488035082947478070190971584169786135210608388938373625003825299796337004278898314983007615439507830592919474314720626713686884004589208062767161414376993937433772745444001047634087499755750674033845815144316036094959919977378139838320488637306992510720566523677661073388850611411892127465708383749249948385876343532340131187658950872718681541356012339986987124706634890131324851146691795955945045031359906305307536664102348220839099529675623518873656191748492045302214814194905954196357537407493739166014327616136122685975906690143025675251811007496349721645689796449428597168004656542061401639857224762764859348854718345439035273418818794290210432535035297073217800247131888390470356898111659896886610095304954849960551839533592102300725283937152791621458594104038664742365079540568529631524775007729148652248320442647638987790397228128163466943421672567126567373191047443090560888642180405176238164096912380852158469756895524563534201071426911304942811816615053485951938240067975495529562581585244301387996779595652096647268995363634251911615614787745869977250087230977861534914927958239773999774587044270228531199922563005183079652945423525390370397482330612241712630622388033898531993686016474501253876145870697230301715427102500284575028005018393966984740417197448387934695069328804632212888591519908499158434176792450616384915096820565647284909642874856000981863589269084059260507582311005861164076996380841386542825869917104588291347198403224423897006387069657066679383679802605312153205366218334711453656567546029632774340003067484986016408926062407945880667637727860662164973427021350663742703256736014010223395745394105284573818500516503905857946338348269527700645436411672491983020944872016370544148861382009135893049189938335623063930981462748256908998966681456387554876319513900623552483888021220431254590595383841994574507264926785914174776456870315096674660315899352257601020297595857276656587610534675926094824116587489610610825089232844438797074772169990467899668849025366122928640629185183429928816184825500748552775036561439907702340435673579703789894359731628916755701608633426532006557567086343830522616967619282842155857277804568138504705251982760233139648753232214586095776054486844775737170857222497196314467068464429180974340084988326865973436802253416124816152102594653140310554870478832089356660667340725253833286898389567269478167300182979678830382343003209417300046827873728782869443433837582893955267022113329973698792674218355805830271676701013501960126376575383930664693334958685678161169546920728773015799294320308482053313484431956576342943469404148305163130683757719784329792739444303965864921278702545326015468620207578471337088557073707194963215872121016843242645619641099731732115638328435360482992985142680337865555728091450761437390633228923048002703842308270017697099604012936081521946881812475663859495290886180653653598619671518233144701771979817445566895660104265046898616446439070315590233368897241155291358704572454067380576688756273880278612881754498114261503412320968665105172172521914896129396621814440459475610246429303359811780845203106478607276365431195745203872609635482324322165583337697367249076291582067009693684540566062940551727302110160380814036693935281420460833664922105750984465933707353394770057080795952493667346305304775706616094704776418231310965298215149905693488208551660403482570613319627404536029972533256356265634909643187554372709155773215578217119825679697624918842534745853407563215779280371018835296082764017641086116777702526834545931846159399385832958317606692654773022787203152394613597416447199857594344621371323340625267622743439585500409497927853604066684409754073829005427665610222484305886332159850286968654323302602734763266404292814736923130699966266229340170457646872565148528170076227488750853367680275742448817521700274551972537282947947238429824204228986594615485499794593301114916608514271322570995295727915152557703244284538505401127109588771678205558854200528485096011581217712422798398166471852103557068434196140004423862070413954921784018837899085234066221429155770632349345140022418262419631786376760398474970681835335924174309032673579686242329082009228716872540299181480366578031856641734065200161452181958096211533308262027592200116449128018946774399424961072180164734097087967116764167966827313540044601747998872201648285895986008133523833035969827684942620052878840757164359503414389640085743065048952616047368679443142380638929858085069936468455025201317926560766249492496519972453569689062224470581934263997088569493802186205033382663220180618522819662148545873240776584415861652644024412835908345937974547680995260792888455975703072769813281859625478440708917979077410296721101672946323131450139099863900949667137184263435004652587548424825205682689738514315220279865680249498955736548223420424900125023979203814948027518088217723945155735268876323638926321857116201293719025439623570557620696587773244496939660045027347552618555533498884051315762020948666230250823436628772475165848792792784321495061905943416800528116475645651417216913712829836825234936797358785776720648901903703182245376510189526994082644799602404412430108290856955789588408774662901545918505460990716920015215465368820274212530655117271365624530639531645902393430176509351523328735570546548341547244916034305153149789276189396939062367915943365441257841302846818059887824492406055527073435122009379738841940371095250043626142483399371182698561901023988989251744839667910517509298336768280412113483744860388350937176413435853019911916505868314460418779177942872627137042127954239644571481549064061415851424530260613817768085833239116755673555686887202603267850388213462042435222855531798088114315237475791357273476991003573240561994544196557740125504760589153318900524792925086723342954388299668882432206350142203712142988099460976437490472078626747256610647402609134144468830197016383956078786995319020437881074612622911797398520108663634626518465495372300086869506114915878946293142973069744643998250806144505925304394877263993874189002596675081710762698283894071711035829906384771471230126206847561528690587526246078737070557924997041879743572433749963367601492934055676766776939950976281010543125040381707216517223851965247944636490871922884782727718142829619984636281984280016389602292348636053816363612268779792953023583480976461838155141334998722085892729146271658973227658209825098537403689663728398169401903740908655863999323944496283771803958717275698452121842038773157209346423062829374879007410366670022080572074948869022126214804190072982221210513167760646647726679241776623801369126080499726960298376210579753652684321844722652785915513021519052275734281693304054138695383871397190094248006738599397175368545365874643726148583689056482497450082305225866609754869457671095401587735734996777796599807932734364236500007617700967144072641392139165789373963536446848560255480612925818187664445554224453954256740077255877533922438850749338634665293130363016400690902414342399783569296801624578005710518833579736519277376880182477256485491802130177687784676223214187192801815948808537281456846957474107394179280799145756696270657492802563040229051264329814408210369179352659060747021318791835963295894225579469919937802131910073966330784232713984766802474878449492933906711348713873534086546371792216060006185235441116438732090300510704559223207746378600600577133617651755523000985456152614135415318424126982252889478501202557621689724235725084509941863443482675081962912124957865868446677954292683617778501389267278533156550704492126860374581311689147606862674182766236358963772775699033566960717407234814312819767425764636408711787267655089785244882004023048657185802090365531265510723857751194017969167589469565935847062223706180667481961715063471798773885386606575334781290563969681481533956625008123269922252631360454421136897953944933288164600466117187632561214259322442292500184678656300069073862848536539911146816699621899372343434300886076231369740747229752998318659769641362658592964348663392779747937367676111206262874431992604470351744677224637018014203632996841042485504054255902276306361320386798340858280072248118319977940951162323084697691428854929196823743467245422393181942998317978249314727125923286350360936464225277860672634186470454226062662284132143261893546720956845014600743915208118396283007143398924509440267910100699407634468579910943538997548888742040808593528501328723599765209048735878364716480510659863081968509036286312751680241721767014817443949830850566353605808538786572017697276586912746151384836957966278440010554951254858458415831436676758423293308334270536422324629141620672121715354285246956073737965226403293139378280068508112819857206131283416475873953848106490516745344108512791430443264705521160369188163788482028638415471360001689289384858897145009603284652706247932869274023413141114429425563038299213774254926136337857257701616582460229422306241567486083684824391513210198406411095121884197641846154904988186949834110531103973137425585758491258779457780616667762451290476090839619864361576783639237437441711653034586740393982482242929091075928759102979134477098867768637511455201251064171391477688873995435144873692980796631907279808925469894721791182898210533095011622418924498325227548932272399119622212793573033639282219826306390479410365067417557176445457608863991015506087818807222018063841691170560903584241713009468692115482892611826285099790729054552044600010507961528395120405508686650302202288830296578532477242277753533953684007968879316826916887887189620550117208721850519517855224306186910447265457922838478479745172329148670036416388877978254484443148349455087841646425751680471799876442284594287535342994021998731012380721609625540081576830671610411712867993603088754024187096442572250497649397108561230975465870048536887360275958345493434923125428378955375889278648413220740546146623358248618135625876078944279620226259579751494917916160771316212104407194994366585866488695088213848992030907046620850179616666695403190506478572928469893572035015229982285932888556096848590622338805962718061952119514021454988079911787440435900760217385514176720792730228698253934120041506022359440405359122294428922917606374856535537362829057149090891558209844568103777641026488283430828078163584204714161488334609262755928211287874477289261377859515380183595180593860592051628077584771476062579642428323837037639555768901190210331653773005212893195069473212237654686056916773705606978750564976332319891855604963417855860005117743950976503295980296902369764279508109462311256107506389950715924889258423448060499391728566115127208847544147940627891987709888423876810861741145634653305061856151371489955262090090673888981185144159848690369283166592972775706425009746280969962180222990746012541838841341728801655882244820466685142552215682000457900235634046435455571003124368318646894109962728599106554769167185884124738522367441308014806246165176912134722903865680928526913613205657235088831234401291679562651940541003111606043452729911429949136939844210386381711960287228509272801584369038358712748361174699415873714221310059897988886924954181732442376530018510633800957088205988475047223210042615850893171542504321236224020507072069184273334533889518902430834835762624819790969803699477746110294364687853050641432233753062901990140412182215288539144609093416735777491093687318490853191896265009514521348857235154313820576262134755095996541373976865460311309451983234683017905053604729363498526076387683032343761789530154269891135453849530452679730332223447245741342582962459482776594290100111767922663522222660668824728604389183892830546538399973518413566087260504291781164370121104854451389985707775724943224840045460460911190011447132321760237764853504423115859317666206541084382940936789289004409399006822595414919815229984431947768322431635011316850468479999804394442189944602021070013558160552132599783289511849377537908648381169626706992764855101156235543358363046592550264352647488218963369238823468659509716111399324486373586310821636879997351847649743494268053286055303872686187079815519390225163781351117645310048497308391171516735649331344441018145449760340144398137801393051408608528027822265431535885576786690434158418584191606355599630567385420992440555828629557907923137574420801987922032464094114982510017033650856903623719404107043873410283442947025967581985910422510626888450306740056590478830946767615215241126456257651617483426593832527312915610385650058295789580741641199654748641616710083992654628212734366686501424133793900774634913553057802931399426351329631575603588116231782102533774537212568600900660842639966493684611892606886118158323253385952496733871291526773996051444876104656592887658303695027618750347031298874346553773369524971979592961215660776226406439690950201731479777921545911369999475175708817705790757287714677269368256174375856184714290273924426349548954310090133040418481678397653954412443697281751610702802968099759978197040609110390783629955929146114824909411506372848270782178771799068916390538176830069287187669902724887760995262107125848896350674332896477970072485551993201212820028937080141924568047442959930677722015254882075524077803602901526172872204015628590999285396052050026392660076862481679738130204976534807185401520043150941697335356341682140256015955551206765819197205493243714952714522109112312482971026379933928832261982483044024311983638462785287843627700023899403525960981653080194628083379869109597420662699953517783133717738487146073729519914733186969435903358665777242807689384052140800975477180696542602459332704672957189942314398180909649518308400952250160235189870419239965626108135391574434289823727473603324861982354410719385023812226824184626537053371427133798303004013528669995359290647379714773230160290111487033353186566103450198908338101655859634738417948382157740489186641256494372402961180487726302959073525293831425364395841862586067400554076365974810140664149608976532887845365985993616365340189659262133788230233914552980082095215096424780904851860220574186642996394124212218501951054255155359717846450721007455523828300967156269358361782370068657013113269898660006468380318486252247935340179487057384698578748355600090981995837914243667942405082699093452613468456281101012178862617496504134030577206987650794187643373140019837495861993065769941147594716948346566323937107271227348048080509957025087413155623077026200549631106393974197511442421460744552840430840563644280643578975215206576630451979195443817453934303575276089318085366285351980352817912593355251800572627680263992764540467913580197506843965007199060389699836348357129832893481349470873629035979269541190746437472478756366119543366174988382491024203955512233218328125473770744152024833834991144168478747340339390703202971810720299991757767341305100138837614005678996916781967949508585534776552739261321540460182146526895107732644972201120887429691340284456383449590935138467907911165598654464527573850326799072022301781902201579974521778518896468805761350470818988468144815445691920264561563707862242185010546604464592031054857283957463975848440015795969934773462935941269293154345231663702211739191668877382038353673326825197641105845247803219154764207451718861008192502478369561192429573659155184051221069348452481248888898667293903506634141289097138951720312044276690132218631171459434264755531263735707422930981005644799008958177356316975433726256112793823538457142154163703981959169712961348004081847727754658096672650265360835479773743781217935316751986242961791932255257122799884936153245771035537625595192247458642633211046827710022867890990114870292264764711564247271463496715695310560423926160481907968135640095391428824313857075163556499879727108699940724299612087524804440940018786225142788908853943655658502905979057850511884455891249902693500374654712022530597223022754148032057235455888267205631048074946689322664190977812256903852755657534043043137207313219683210016311112112852874233691530542904753649352874125297520319532637490367936107435036705170645900262798105962149752037545933448085394952480225730385911838691690445201380216171365327153830664211313967561834888977257523443734795900677850876113145954967334491902728849591020939506526452152660547098343617479600107202790491137772950282054249354288975710718399106421731035360161949580725620419271026920942533700883674835758936399701307173958876318100428723109029169504204389890557225863903221751335856708719732191605643724576963148560179194905341824734741064137638682621275369581206101117350049042792186485129571271298886553015702274590444474268976195896918808422360937492339126172266262046164501097839554759581184060488101889641071876840943745261888073492859068631347568661101334376784661924773508251784361870398202768814817635510578797572169557231338980847138316490199182008425320472167842248154205230383046154181708003761943512201137821784410829240689413536822186000705109702242397003988946107819836669552815850488126383104360985460954156076984321393533467374947042664174095912591196080882551227657664952436052536076090629314428022671443881468942123992742826831484826197240336925597692642203953457499413696872730349176313661100906894406561281758904255019436178492085047263605145940913008832540095053387371353986531885626302728182211442515708637145181615209470066123164946978583948824753211120008591179728504856423453104896828590498099249643293082477020286657763530865966662108329202934157917078597330879711961062593680375449761534595326851715631913949535334324920975208702614640521635759467704253125737157190888149651414661300118977446832973082174765383803519130299189056904575178602187829291867108357987927757494420495343579041723266964172671251252691017040044333346087445715239868350722681778096901454711846281392434717924014200193513474325985588532989164931722331319586872649309103858824973563305861405107354626397669797743034150379947715257652602533979051203408358033896369937425137694520829969049447697108974893418153991308698142724519840351451209076859490035785792273390235497189445727924765697331620051439335882575533644890964824630969045115882907778265615744000739138557779459850877944065729340086460002739606050430054477638339667565427756545811506734550414188657689418324808777754807041669558851821466859232433734402146031025656874944441542271595070103584953791044099010896664436705117880598729060442896082755946646730701335383757821571188361038121970393126436667076925605401738193852147320557128603848564735417082119863036678942381804567980730440573749092304615732096443336760393130077808089518676825132542470363975450042938610852440888484247770994027049790945083541465108873036213818576979302119485803854470638243734886119615750255817579242633159513143452527805595041885030423927335579642443211661050663100053976005833879058899264177196184780740658165114917432976772202855096966393869511956003676745031161375844045614147470831085834342705567022534255744078643372849842520661614914462074661041670071333258738212584238659541547509974728286028436985956270383412663832781797062510134987053598703047863276561850667725306524965403134049739425069524335881036826281791379340703797538712231731023432058661365113311894093153532537257579368083267900722934547852948767440199023115352097026070790940659022745060821121812667870791815777744210274298944326576924502494049600120772996806980011505575877138245969852541048363218839837978952004455350347434908500931268331470401689540888847070268110620809407090594992154536241189907127755735962614993830028902108196086286985913924242034732566266605267305679200178155239848887679489878474784859228141159079539325230135463850181363754212431525464211219262513455648479343064932393613249461627193051060568568385330164324802041166212473763319626442682880195741846901715946850794862568495337381240817601759876627420517325607959910903482765503555721051041870014701157643189716815484502443855737343277244388917323355955021812959139195745450421927383088550343592478299282268098234805566240401963781558568560956848434099703178677730428464624272835374068907171194244461330299414848264345306842993961388941275926758635621107045587078784976891142093757884861058438876849683808756400744498570166930161952667182005724854503828052374403653825154966620106485658339280424596012913785566129743560710799821554125954809331502496978896015914641575178942059610306615003412612571074697475482801900948490404446862711235143635720908123468919187936370455636617545519856123505598299992362282941403798918213542841932363057301179513556763483690206764058511689441192001295837372021924263932752610064955908238935338076809300678718325037243098708776987334328621741318075642716830356242468459386516759612817092540825239182810827693061054308942898718223956117232752511957846244303878518522656115872317456914395735112886821874746915813953858741260354555233119534989817356976503718667067114582669745337454638370877805039230759016598223410301821082954160330381874072390427208685916914553700412848548536230623318811754236103741864576731500051348135264091285409116844892889253449863938885681300462126391682952396801331009037987677899173444095401805202709936567358972192032049187065257441893101302440341778069985203204702228071063955059534371465491355713272150672715610009318799625652810974973731701518992615311793547548147887422779502025844964981911410756554799229644716835909870711452676102682815155779050332467975753022859005643556417639588257725507113492176787688489189925216467268111773017011030033459755170750690445001635695792228449769096047304179229852199893156095898296013968713711025295604806649823952882368335658296799487976777131090914934990925075926421383723201661838762785978625728906769973665105227174510172839707617597995689561841357110840444243384960159323586993593766699905412214612083152995532039249328746035496139161476231272685752182181020279892583196751736571853977836082607000584487279510624230912749144868649409921760810048936956984303661740124854173765716844027537155661868791515249631190223079645584986310362500489573476667985956907915280215497944437422301164630744453321830252232627540117893983763191048166453157230897485802146029220678651714820816730077980739879366041639120098886046388532175907584995741904027896603238062233016437622986046063440996991872120329306830344631825875023293898039484015710699118664398010771930768127045464553522226073124894383633917285140206422607672938398406359678867047756674897013214795966903709666900905490668195608853657666223418970492771773188356448493143223208866968787100461151211234771209627835274796763269484938394773804259325511992020443619634683407672984829590716908769455268420289433481594468580343942768535900101815150417617020438927478802916801409122807305131691696988245779333176485622411806489964596274690034479747620257031307252698454630118767454062699875116391380821774896106893009334572260079687647439671723245909710784856753543125954784193777032263605798098587023813547898478296256164453839369128440345649719565886271833421237110130937271180621776121191097485195680721185491854637431733136304333782756542646230223744390683386504612276220728943557510987435003057730554917876031995914031026702816751533334515160880108304958495338609318290219228933075059642639253870340581255727410952457165958316788801218380373584682945456679761919461411229461563623454870894481271617104374143882085771276178414053843712893961760196391133011415462128168442078503983505794910058193797695019771484498238851163892514332445349090294154758383950945639661941208969862605219878591509836915078142414872104612513856534500763906643514720718823328981495960199670666066317700305768086046655870334573546409201956621847683675742203456096980902810470414384694215378657158495948600055429798603262591973777752314700707698629061292041477585064594839434643149313765884821572753253391804432413654418479321277035357410778988672160000773236276197909850381795038206423915445156624210506213311913055810788143475814650713253900652084440864305414344208918091913081772297089935025973013757801026638205650119507898437376213704285560155004752856502404417269911159500268926121866542826435433997954140706594234347069868068524548081190897732740029179055852740008658796670213571546792371468845874197555764571063949539182372583601463176390228330145867828338903623984106102058570440405425131803390366589933361575102923319723570652391877542318673607780763641197077908256484968228801476658791584759783252453454115974160866451178924790565847143702294667675319250565116960446338906343824742726595693104036318967067656568941046656792280837607416240093408633827200604841610823729423853577329435179943666684452382470997011790084811834356387574865350258875568026269222322648285942320577594942193759536435032405899091801426140369617149495514090672781187092089346630261884600020760499177336236981131713907716224912966467285004227212708115331658181187168923769819181260889426939028280186861016107202967883638763297692263140676872334768445823593559220184504294219287325017698814301110032813612460354437952887484744665812267365922220986830256650087018650194760576948552273636818812687002852094028367866064570748647890326789477488819257944504632827867148417807883618289481640645983675993016283353114943697617404473862313719051439174626859454151373174741200188858646201939085734007232130264091443469741420180890680536794437157827848157518625499613586792637675807923470309724511585397943520674333969074028756260415230596151001881086427130415264820582259276195696471866928102296253779769462383004649193623769434951672581834935464746370114152947476334703241160854011242988800480801545256702145184248047660364010444925833594624874184066291380038993427335360204667281783441779493801814225343307564466671820325544415832275538167846203594226038209349252475591636172644007336627243260488937575698925536298497083437962484853303276115577050774218058119261100513282130474905272976390843151281338561161042704477700977715158590349052001477885906158115894694089788757801037941975521699834486633755866203460829788010029666511633066148066508688646578564487716728315542842812291096376654034442055398477686309154729819890936128853334085749512054081970757558289503460920469755227756024200572558163045943126864585290445644604384671195314052176742037531264033927605758694456984887653273758034058692422876162551264898160376785835899716200937049278278203788577697918282673496500544525075432669131371920896925128283534728311182501730563773513882120876202561204833821632654395854101638644821169533442501600951289535706096214339283503327929575632982448505774134059646136945207240500113432027703385885246219090545742465868683209042191612962268884210034472536334324145350211178341198616987153595547315956295788262844717709999848029450039327481367291062915228233540287188812474847050674368664018753731818026134680163407233569596304095718756887361470384017479483940281265929916992628527722946067340114388661066246977925132685925534734580399173488091658165332146883378117717333343095342029212210983688141972567138777555885336213846008757134401499958890058905519749877767608969943993491253742312547491059728860485244385138195658043004326692469386746449800564859080169145449887368900344496352509402984019543597071373886889488335357655125942682451247240542672227646097383963801186694092158564937359557324239937697558047970750567068515807538351775341637300944593378865396185422332148809184699494539361697298936794921660460455522489689856868484619304126973899196607304889723908089930476969961025620630956503005104449654831224400595557805345850566691884787546490063138766797323330177594317880937268868667393293582162704523535571267101431578385885825484816312768048722040027112191295634359805935074519282922671757394947159304423832920897924227928418293226333831098897891241939814591437389003847656267551124590688378856451714699934376324236387757769309857494310371292703648504517301050778643898208662025811520476565084217538645130855125479610052630795275808524237967416101748125866601553265609383538901450147441233281720865342313137067141090114306729009108149555378105630868722534620040631292284559811127918104929387871711480460249101615741816673915718268841453295970021867015118644285140275656598162683626657781681343233906436239653296602430642362374993298858861881018876186670952252463480258230517396364724501887345110924871237906874301121983458447174000877110918932752950965354479304048828603287697849605045310911808777255960917191819849266780127817199031089627543147473889625217282012871360238723955765757200748970088828925950060757583071114312766023174278842116797999631581720721033139929865763843118966423805043816824806418379405283995566224092073555175507699012761954202053925384109218339622220188863268299035710913318433748847653911140605482108818350454490037155734994209985498820728144762287125735595040257191966130377806820761004291572112671376846379981645741698599185873124251030649376642139502363538198623009728002302564426400645727186674543663747676750973426751179331664443861338651867848271590856574394024816906282803819103464230675446618018312949615538701556975475364738330386893484997890530822146723935821322171871295097347311028616112110530633243975549070287472547721901773619780226438022132811562593510560835452097869393488888409597987966222482327400106691575575078043817082019491499187292727700840034937846231874894605657998526787508638111677766283053587595021128209141962653448018268724420295831350446758827405534247835315569681566700290325731501587060581847534618583294699041996380031940258644646469190258786226695622218949765657719795415933863977831450904835011094625452062419478585227990164236797973387884137748593100471203438739654649372121215594458674443458107245514189490568267326935312330532388564993912059557257734399264100796367193693272698198299929963455915327786410253768571048942268051835995414698682948403799284319313142229055366310874719196952244021140540852957739885561960528898325178245687768427983844768429419506422640055685079104812022119017156909704536463857123918660802788789788172005290032482081443145450413719322072636112552858326606824015552682816872161536239487215356868760014063782131681684312362413472918435389929338264952211290607787416662035631627823916157471235130342762331944137673135332287928774516646998437092040119028842467767833734481689758715527250613174141130507150212153000417065041919990734341122659227363792359096486840103930170799703008905323045027598071291883320736037908805047593144059114137369889553559746848931713817915349557667330211216265583306470906676971568488552277029120590586667661806829289444957765205834472070917940110263586810938895088444909048601230652605305407360761222636116277802556934307218909954452345357615668831053823628170016344265912943086352077884686167266737590290327269725279559891108694575218994728092018270351346739241215485031887018011113562917612788342635747511931234515930280694058560488460088896671295421029003815876639144174085278836835853051524945001857974340615285822771307413009626893135936351710574924417213888064898553421670071145934114669675426270194084328264144326252154550910553167781294190373362211863631205156256909428873522020315355047396700422111193839569243766252814409033339969417549570660074320287161812036485072988460076157418345265507390592589824466776664237444185075607764425221724586472360526480821282488682328583204677197859609380721923170771938739807644706409489624824164649871289273817134992784836332981523003048628094249559732249677935854041523520830424388097568169821961967233437337881156204819112105214283700322962265781270704251936058875578623963789171322848760439121040775621636918592231186984766117117344715973021213205488977688686767045829674747624135438566557729963987595659953303430265879118021170579637582944525966917986076759677213346218001070378815235242455634106718810519807717333145690127363297554616239979337547630355371023949787655128063465741279938101080075744769422094784022916073723667314898714451584762126393132079741500443066170526913134051834633439666863270300370726443464096431118213649537265130208870877994792846251566964012406080756371450192675890524252695949422176993017997683948816166314246348686894579324246044298698103873530171066167548596456327562932270678235163983724984369438337034304134284718739048925313049313387136442625621735346688731394432159122881751113808435459383831801834248624344013432218740324469839545411157234386130631492548083596051726467058839884457075791922328339185429344167954500474679284512965791499904511148245487936258154757511603727211544714900622741793263179661546974279776003801825280907154767500252054403824408784563504367150859040765194447727343493889780194706782353565992009074251806048609152190304353746031277999272128427981263991623480659783701550178425243050522299482772603281940032235299046542905718078428882528349711920755545526126034543700742903650438859239422731468666863756945394640019309578136593670601068739795618561150841250963914405366104027441001184106057903781105069294122806576747676849108303126366265668748145728520913699041798607894618854862070014268871166345111141253261796768017573974861496015299651644048880916804613508902187296285348839270520532438790742791054132423276118138358616420670529572467557750477027164542556866139375251760619269539025704166631032876342459944284579729731690732839414284598674277361133490346140577696359260964509035079878532011682586517463034165864253423915112755185368031738376383333760533255433875578743400007578552846115437497537258206602160547088646275419641576441151133114571005090182356667709013452094196633296282244438475734973552641329168715519796606071476372444724281228520512546644069365861650990711199878745319065497403826754791621224262289016520257110104856767481965628043409967188044919517760744425624877647202578095791684310962219865726190984042664142643912804036218646231409666511329938736060821072158035630176677394891499014940411428664173899366711101506226822781745300537331550695407255696303655234387117814069893642104461322272970912852719145045728355087907260800312203925387451564106524162182803087795504592778671959693369813395286332988029807318974488032633954870211634962608850392092447380978091639123511917402268577263768489135344518422111758461197675513001299487707241653503224159294567723126117190886268696921331411633131663298539246878636902164784522755534479165479175844439675440279285858190483844747509633910822172981092058032893570206827756638756712185061502300786631856462091393860541083252538361202885804855060303506274635560858165225877937499882621658093851815102129865746663559015115152621122480136668367546469855978168222990197152060575508620009075027459541687665465131839543308420557292463582628296101637133744695607376183577054346033132935766283158262295794246678341139420451222575240825531337221156198488995559411715218064654305626170510515606928131466499101799785373228695144830790037620648829784652193188778738202753262513560897999167375256973109297037878871249651270182395842837170510458658242475946860135490019410237519025658594205145763966267616655125581756479555143131031528246449844880925087813550068518040035255423999910128711637444204578902341506003053979565758553366200155038182370445359587960744669020983677496419261073529628952848716272679193686625735710324852239712059074001204340059130064743014317051305010908936941211620672253565588904116350049372994522400841485404202998525026087718513214560770217778511362680334802651558280957050269427598018268042289882590354490083034305480011227833878842485401520809975156351836935896872440369518744920786359790234866744892601658359851424675090066096074330628123430166274548507684046743281364090653424120751007838553831956496759216085217680211926984256569140071811267544435663589192172542522445316002005292436888847048547476267060752202248337027579507351798836912326956686068938651903706582544440770381432352004425511519222734170199519099955886655796854878951879142202188803372894858150700997807293504681958379103694909971201296867480938601352919760971653109359097603904505395825772697683881529472308586471235782824521277299169053736587642917549979462436065913927586117858868434578326412316890212145286301223841022144471405682062856148685725789989405647969797034574865784886981037975888971596214179439791887982250484151528336444720171300581256057215209831536956768553448717268082543250752400442155397259393803182263677892377810872890666306548268388439528315610954974477528803337236996569407579341275394407996364007611546796155790938258028555351906855218949657469730576545341530424500920322843399928730014144173285692705245948291553110756062084966699534604323345455043861975098512169480105118185132136823694069383710498410697319743557142058455288048687310903134793319984049199087798913796454004077330724555377130859759980423513875451988050953363611682574953807383013975164266404162982909800770077374052327999184537949094621430238671479083319089145980278233793521729691016564950335346551711501052788223882164155359388910850179826718865559400023435038084679312560210297723524286452742313476912069040681954354785143153481138572710380069345445630133287428442563642155246174792725571512668826099991941426329508529125073461878330657884847046345088146665906162049635705496176883135821178368416770029189236420672289529684211602230290242785164213272924479510743251983793547409544776221522409308214641976419533747505681603627002716065150730726992900596791060587904345906840686391969942412511113076093197800886437411988522374266335779777006031548459502685958360306151560676451305767693936490134099032221991138271411696866902386933528725618252076231833137866463290542646999524805309729982915349449540060242946086913180510373862998350827102049446031913762440315466461076356766242641138526885360544885524346176781700623939785814129477398600352307297287419353310022757534832589729845439642637698311347370674122233277358658224196080980842735411148957653037522319215075684574170436622219019241180800607629166598811939227864183120984558748252261549622025050684313298434039684168611394942949036212151628343009720350306494249424750581717341751715933098247486036094732372780231782007979127713623200993284645842333767774528534358020117545238241532157910034643809461434487560100909943535223434570430569546833049849469827629697713884288073308609897172992352760336185548532265660110126849466071463729805225514477767856012351123944805283573675126897814442143510264634024833684102438932769572826672490918317096260272416496685413247477444915110790894193728841873252519166433765128833779251128980726027994764917450473745862533431505000738786198182812164383950084153489911648036725713463052299279879292464078919729367343785171038913136159727193827339485139262564114509051561629959012313802265942856218947273542517153532159310955956437549405786909699415260872951115951322237704347781716597683246350475293623575712477835326878663780535575409517355504725094263619081929766571367948441641640208799914893776289029829042777342336208950796045125523210377876074926171161297215652363419257998536300262147195970388500979266935690734739054517459965866518720406057128384636231434136529836078543340746687129594795929438132538603054501494955945502798829883085075358876666176622048703047276816815355295117806530137738059207499004623839962861112811210250102929363727009081513761520330647103896383396344762317482421360788190951413525073895067054313704895356628936059085386366682246335805630211235782586335602055699880510891951412545215774812802597868279856857133596408435478007845064624306467790989223334822541124739632776441866998688529551301317587159652192384198738412325777131231969897698762942142909561838054289229411444707798204502190934125237672755160637722529127377855396919833891662773961885483737564838528145084605758099981692989460511118438866216112967502188617857296420858488808538553645810762356560193639082673043106627866457851881915591518145471875257823639062157123891421330106734172069737657573310763333175386093215955624556863139935012890136628759669023586813770863676641509567901882203526671507547093093694952469454647085248267349433382914906017982085425422576244897867985023488102005594936168691251357056196581679579325940677273524385922040998233448960439608781509299195969821418229320976297341652743424639758216225164302302548936542700537748304302847237882277539123587425965708339783913521618021188335967916980207409238170047130809940818413590428401913002963557467671604809784532834430610720056261527559211786413287895123429316917095706118755025221785477885066150930213347196139438881695199327230908131765188020967265277327804692890369784136508075993879893874003365647827547153593099636425435149339662776274187813007626246334697193167769011596322274748820679408852397673320678436481775594831695192803284079000076096238816963746550482983014712707367935544750449098829903529175841677982699305262507496127490490100255099176744074438134193110001559418835500537007709135990953770794417627363889480252674516219219686176808630813673163509609121723723982998142787925692328993599688246172123260558900122703453309396666697128775447494943307995902690103724600391009904445287700886695907492291842258569285397429939158698433896456343837181792686813046443200987225973819781900279070606782175802662647937804353149830298570947777278729883090081413868155518942200270836692275859439117313722378383814199057572662134543819550938002498391911295013134364192699952189488419488250218065214154918227286499503085947668313942374455968480318157970911392962264958592184717729867139635319291550004463798763555463716412758601151104990094404279120033192004174080183552505416377106363442505229462536155596791754503322630870709868711396093825108303624368550214411721091388340600643342838034375448372289199855800824466746202972494394713478051252941909413040766579443127042530806699808515858045079447059653213990782782667881336119909519758092565467083295891090536901795958129503206955781808692602262756385718945083459201745705533211873612821801813503574662204442431064149749418200062742814897981886181803510729198643930287435085802290295391638436206962395030899672136468793121004516632493692356259748724521854449989683644170662884508219142919478634770278940545713470780116327046701783829086886623952662814168977374607209234855068615501204255522048651917585366848424346021108137530213431925193753016160558143410885938216927311844262401703568836871020240932733696477318765334130432837746301766557085830217888026599476588131044017820891515110405678494475674464852168410232131636586755397601705029044311688921097061516321022166210443541271682509710747731566129668720994630263602954622626141759372250291231249407509199424929996953201337428775575025263543694788032142295004242044605942243888534021961033012032514724699579828847414338467072611978230736904813265350620049195446620688564327954420907526276618954936670472675185164174364069475879248612710804323989409034723433092757838750359170362559799161614985263228010722844356649376784640376843269119314576101647750312444993362407374924511370745950291996620837603562957050506309501484835261758910326199781165519257664995490941767673313612005362957648774104528119249193025713019721694143994124493777918778504776350440720590863446757291660862719017184331892608935459372784358626899069985962902109581716839736883561614640007890647578097056990944330710924618764434870947937107729981917523338309067569370046315306691117513692508546301163218066504278974006826776463135452192085119980926638846420211776774573428980508731780633396048328338786889061353667252191588061022436859199722436361463723622635211603426406887853583072675687973444291636161805413395057283653881490091485209861300748324517976438302435586180799746751564482937215170171203251180550364024402318030553503149803652978502282347989225698153399923062812521512226410640356847527807044837544989369611486644684675102335785137707485738147575015928276396717815919108536063900805787043545664068966050896853344157542267025673925987983926915893824937844698995085529197214047144181381827973813942884216987689218189262858512446242758876982572847626429661518705224035040632433275898771336424500774039066119032447412849845059756056296970639921769416292290404141331293679703857323224339491094543835182789906812947904870601168522191851788697749263761621996375413599639860700695243393901465595142420415096506131555494812731844773332363894704728723381018455166908617830171218925976730648367389986241415790249341910149875080010888414205931745903343705497628621408257226959034953983455902326548877384270456496603973717586977268335906090601811632599653715188448423225721773484853118669455177767258005775981509611848716035675884478640308230660058554628978162780115570704931069841368328646282174464579716453789880617906059041606685912112245337198398951928718449996988265593202427874860139087858234725349718099037672358778437015822168936510220498345330818096432154125481694195136578098669267504230670138869728150228713990640872484641818375149623953391233459172281872921958556668635168523487198221480461022723081963105793137601192470584950574865493293701739578133223068275036130193185278795816593342755243180166068688730699273462451017354907432139340801400346242933888515371917832976210914881228518277947634821805279938254328832647246352214140817941641071453911517263875559085706097115241964512076358624446474081102139166985287666010358047409302405085659409560739130582274935288276039218313405124454324128682049981622913260935160942466174704564796619618704171298232580749574333189360019198646996524028448405860661087231705988055214638796779426413952325466790719915820348612730469282721210107698385675375804815284097362688744754416069806919195661649210189344383908058273362943293314767741045785281545503368098494000475928713654141311851191640340774045056545289636833257611862664253589359318675983974838272775825963629835050866988411345416830600709266696095219632271440381012837328890081740091507517107408687084803667383724177919353336455988555136197107505557713979332292949435579121877198165574370531566593529799935400260224552391211415424913886718506550478135225014106747976709672158966067750551520716145422527127252442867819570818100376485670263043303443610790526706374537273479400308966109203959902808055134998313731427600718545538185958424976273057138060546224445898614455709794961882950236752645086992813026192971585379384646801652455562318657482080346439033308261513044625160061426836982749338576189398537281661747421688051201432630603515888007925305735734300980671275383902714781234757559060089701344110824243607765631527905337937882681280304186444295511972531897283438422299241189552932216787228970262466457032772681651948150962877971026540849210597836034971700610367078757329650458402257649356513881964571710170523102810014581673915483194209359217634870952123072509449962875661184174809833777080832721916819417600243489559649735140350106155140321946139058995345480895898241611364417599639565822937777214368422600809564912333584685812464327913542761309369789511167643395590137211693974339365345415124441090944442540742215047364550755061972667373485794633843537508807389391631608729560930347250931679842865935681293035167050797868336210747400184662409436061872212626617817489472214697573068724421442448003896604416533244930402220451163861347928996398999389590034121181892156093276750827770258832905992023130207344514920358516214086816778702831034299250281686576288156973271051596072469355776436708869490079411192595832860988618898223318921975406937427968476288260049387878054826506895081727378580035610085765212060151703216912663866359735997130485240481017293172928362809344065787836639277439596382301628788327501535125886523105261622480496291574452428402382623503979156271748920610654556113261939040317313833628681108642686756377179728518536869975608831341037716147400620074980466882361687423679342267521064549234338149689270902355033238011320212066455921363298896449443958702830456471342721098111216866860567296616328588858073455354878460584810741025337336883118047982741983457861419707019507285873590409752627168047437836078755302375104804065313437265267119225306378106791189100475079937883728292728235530646953162658112656971198808704764675774455609982398206774548670780021802233252699648522386963261020776732730073355013509101677390160352001531413791400883893606936603363250378453398385584103588784330573477869562284469008109002762911697567723166408977792324105945246605152384509781280935976879007400144036353309593529392950967034470257128834935439942738491605100485034826615970813667248231016290734013407124176510147835869847058104038877791867530291905809266163958203935361148432178441073138321868241982997625822614114575765129037953298958221968697919239841751090477204119314429787173946744776492482440695805297564397049866047900045923112461378762331569813660118520343208227481688221404736155010216276067528374368942201808545538023541024090466684143767529766564892222702143506238271126179633107659473573548431160903141619663281441213284201107054820858610604466895687623640983296424745066533069734378783137032455454473975437912132556337541952793061538689111952525792479716590025825565716587243963636728245075042631089092544076661174972801437569023563801384998292177617950076273524860367887114915371070044184000103359108911021299472682018677097495733227645701969273683666559170707923533394428202712640074418612270514693671244749413309411730950593284382771185316362718443068223993507323303086112378863640982440830162738040406947170528251585337558031528365488282258391390185988412440491420962540697449018397318982768508012717421559899401291190614404113749716682790228663821284788460544958871360250455491892056259790816475425480119374273081973109362907835214794190622225639122837896026670956720568554627163755323474995769676290600946718781624031789975535261093516336993499353095204220630368392302839739673531988633706162982468017512198176988996301380793574570405932132423703486231427488366672856137766757004486176561989739499589815797239499839869564598079603813702886585155440987191595923735459324248672034640522317688077133935638609403418943473760149742157463392228220677984030167487040934145915005733180128042741011677311263207406440028708890094627701801182008980540703653383182577369234268902050636472781442380507070868764872845320528076470142871344656195188320622915735372167529815447119785337585778609686616478859009871631253111679607857278312284972381993617945281757624195478747198866958572898574335542587553687499701446898526483990237919006167923717367203132408881806577595621365741546286934681887549724960095083916953739967821323547922700210491394712784230925793082015437621530340109876245098372397477905589153044801089662321492020930731819168746972503109490829124769351396270308038131955936976617422822815859908825304093808485005735903151669852739836800562663761268972362337087725631477579249122875791981225453947724947060073975992294235951198814397752474436521839478691176399302983399137911174313770651856064931166343983659604756684547874497628254375792479076735952970249406995797596671851513007508688037671902314850846390711576556859435611574815511465734688996284005844532592987257103972330166222551301705838443050106096005533323033571432815812428622815655641623255946996843921494186239328881127235654223363746059395605534890598616802742980700810101233332799368999577394038127507309924808639739215443754067331122931548961714799680158991277394086911479289220629053074251156461588127447650300792209299682085146690989746779666187848054629264620058497125726010057076118735920338586821854919021587947303522061005574044582951277550481337640921462212661815781967089701634290669191063769186054157172353877662965295247083890414286578061585232158255492398961360347937673391519282655058104973552359305405813642228818207731710974015012423843403908831557688236176116374350104678863323575764273996355433285240002811226926671969178555416345109079428321112197098940041810002001451812782321173269928315952547909161132381516497314877056994493397405460822468080546390513314263994408677512823540326193805313419508911170105370502921438291076702075891616675224455549767713649672358538194418721927492694479024531101797294370826233280424421422895220563922801563146241336368757950603776748935824373056485640693516953863666182107857585005796195712657080003845909414197765401186077481121424510556769553836025560466500381535488613347123473275457347444705009520436776021587165905073154580697822378629810158926198636784428892026295907395783329455702754690539176415774173450629522118814694539346393425523317703072722208590257964092693225455803540160770890469061529919007481696107811619984597277766316268759599009969148537681015342928618182150318000993700970479189865335482328583044601443677989873959106904389335309712481265274601086995445814328897954274412563973880285838005802755213438848444316029280942930592921562282930789485951478375541871829376715732199483902987844629652545385981088837293726092266532332903769262024996534840593582043238403249626183130310764086427775590324404108808481359614905385612195586395550108811652075073436580246924779756524081703779931351392766260092633414511141168040359837030117142696480259050010581349259858715061480047924033308668117144856320689511735023653744046705618837235811855613944949751430667189688924449593702317543798780844942087345663726135697240073503231932056029460147512263887517013743778720983017631107881516353902205857446880653189332184948048488431998868979671275809068190919012901806317125962787885912278607687223466087306275054622511866509053942245185013159252768553035085149186776446503371486455239562359336158934742245319725737326835896431718136323482764673129363202452615054783010874335635694521028451219278788774177807135957591188237579169555038271683651111819557546505782596407906530875673868264825696586673202545752588933979740433585356609753904790002336280643986177782290257252632535280532343294868362385326632005700395537172182244500924755908909789705759749735068081918295958228002881779498931861842164181561127825159680377855916986608934687077714885536574699521201639510943644372096317168400080457240933557115304016746088694695086176305096350493508446633811318085896489458387707853343567252004177489862985031509177370655347039941702710044160731006379762668762110410206358201777377962652689414653268928516914429559203215156880957332496307493029500545523619134106954337789951326769614893027987123839893169493892938230775748830937458048034412845548401748781312435767611933120019946718241822835579089661787558616117212962972139794315879896797406484563378447610094517040231040604366599916635301830827084193994279294922129485439841478278623793771505013719201895931244576425680302047170835621417837607577684567108948432112662198223389271583568096216917476730324824391720461918885850926060528946281534860877812248900820390623147074912008905057560385542168972563327053633149128017740264314726480336613469397246675036655113903026736008292561555299721592735335521010313714385033553066843286651280847158058499739115079489507682696009740577510762419167590248292844736787339497631104689696191417133542370046654292720211755030131121156229293417691070880113244690619887399339391519103394610892544683743681468102212052056914424643665786423675824483530559904967343283053666790631115623420670734364834802092151061021002520261305322318033774261611135198360742065795608224380646733699607935551529661812446047021567184116971162606100530270079050019339003366460832040977700182553868899057954966598332354835576339083703969625457237515221292183794152330783650978784794101455932200106602525175028683561691272477692827463581371124407998537697689361252350214563621264071438317993553621032925635893826484348148601802162822367939468650601853418410873427505195595504561401703140574953130973843583936536864994798481953495184220993145456516406093881538467764170848470127798894444295271043712650945399921377505769320527523502325794056497951011269734410646981526897027676832414995992653022604662062253948540130648724897256820571309534089992347300383898326582153803759326985600407970511684580067418536685054165302899580333024328390550482573316372619431100131330000749078279314358401449572895244818318599455812026082066578291743988359263498390520912460877309080714077014560698471850475603148549453656866516617768936921114535568825886285113823654335944349889996823629397985155694570343727867806285644067952846451629684195783594014439766856267325118512445611345694515736568791007247838667381428471184380878460355610735668238930207449200660543774672636034416442000919563394590550672883605451593189388699388515532799343750384704970693693370281945410029195765372870259747512952907004573299611806257107249935005249679464325815131147152987521384036373636834364422617862658449702944861178664354057565624139256541131152713125957201910553614397749077146396595638829190773875069955642413530707139604692014684603099275144499692892837904444724614931840453325859556355728523733441607531557928037101389378183829176909355241039603459677382788665414369467305933226317627681379880180475898966309835604975991763112808620850667990617472030603035288536638558000875787389850898657622274126055002524803054079172148594555721125383438530604470520565678971892464267688526095053242863035515794028911459089411060780015463613788549495324593007635014815639029206225537113923877428700932399308384653550303807967934391953560817113440143695332993351834484057162822048883007742284981131192802839208259395013175529253840947931931928621903292402188077137643824895101719445123210026364198943314905361079199942616941011421777698148608444067873120642371155765431285138458462772476914483130523635485960912280077060186545227482091053939199621371436999718996647651435412143226651346880399035274429957251596760355093700120923360290442597616024044005057001926606132140764981906244677761028344170805025134480781318039185183926042068166781027134150167496580809742033415690389983642801950470210288820454967621136584044503794850655828059343979571977489178616049796106147794934102428072421248932167425203594741972542812988936393939096768479044887921992515969837993613333992190431411772283069138580262223857347736022477295063048029173066219050980398328507377924361046720732004670489549731347499796241993316643835082789725844150714924504053247996223661871395458421900636133862961494822892369384331614184290085175999842482397994770796665271646931898192860517938639103605432178443229277272197564071655375708664626794765521683446939617597023334688642321864743160972804124537049386413659544674880743549068555126489524314735380663841631602327980375605783502273365033613487754448960516372553300656337505545322256788935745944450873903683505595906888397105306977806843477181166343331109881500801505466404457080118279873207324530944131571853401788192524533372107451999005827648154592407311538504859372962052684980194775041166528094473267844248468601423795276476100399294007400512187526714338158325396344208129603967466827019536298638600148563820324397105130192944300336502970433073873463514443670868702166162422800256301114398740070163811555148486201858739150268537002674598040245018983303295273461408146908006266952398749391535073658575693492311732960382984439184524877810178503613004572844029195758253337659656616856661993890276176320844616368999349521784934541464723024960350496194122139032067833919435033270466315660586161119483506403066572675135861347397325991464469116269700371126302456224268912933343459905801944293722092317477149356173275968185689236399316972897227992342309608193571607655055477448111556715078281550896086536669743435456722010442618312031383817265622271934118729253854230185250400531591363204299421297667935635604250815465997855233791255935898487783464788052637559660230659915568817193737692060716866685123384596894306904706033505927746699443058796301744039728112156114057344943583284178055166823273570621264195588348174022535531571859848898659817343247430255357806636696373509156665881896555291482442975460143044567056684195298592493279731840020440817442640516926631981631432388556050059475373109156823519156335576517034302774001044526748274867243602951089061420204315981238091442306937231481097461408239408694594312840972552610704115007283625333678034177798017601149972331908311003737668934669798127036302755075171368714796408661735144554840051910541795560310973663990735674208740807603589556861568150055713779774979925021619036024202901641341165481474269414988197029723763119482098978181511394904042140253065777791095790771764317639453743853756809113242252111994086810612418608617439236179522737670482462260606452228379981664556039901349669503378939248635591674356990547810115503664208802118249126595862462374422402394796890221149288846890048156494177063989931780764695638862994637339903193049141072593322114719003903971422956839552723998955742498402904847143989665490776338969615961131251663995357578566487820971548413763334126781433473651883376616686584648902359123558546526440392218370340344608812608412644544703640524775032027518421265271698849284171005842591162866183575127173872421798550832671130218520540622967078719449285371562818133445707331869934139424321936181428970386843904660863609750814252221713320592126359442019806298460668729495672058735855707185088799148271095685159281106747724294962060855154005132736600701569178952696068419386578973116476173260084203440349711684678611030490108574343170662427502094577932711529431184317225194982773561304148896517223322661752082160180444548275939767042966833483551552716818870932934418064899358297554345497648161225793369356083748568120753937165273016973989956774405477146832876037095829149766812984007395597509804724857697451803107408542184748839558758628603610757740236511038554962003414979818423503807616392507169638918104401705100771398327195799189122928973489276085982828179301110555572444497151562370504544178836567089279312705550235116672475531259129686637836109994757380419622484045008823846905105624247800730168980209160705317741867355269167623160763177378584841234236215286832428783941477276489497048964245510084537416713702839754946932555339415073986201657517116873153780482217711575703697803674875681132070564389081381873740855347419244709170409454900884644664968804352037626850374236327666210749047958363500305803766647163790641788046630615032413968861416302470942712904785030429867916870338782833823848245913481034678769642222104594066270433665285814965682802666562115989913423543878721771934082742568968881510779545442202269698729990653834762285366159603078304419899304381653740197246891947696357660244073448006587056105131658795788096419751259788071771011693651055235461277607115347805019587802666460352949271185052257960016957912908626848101595664133940566793090058717357097216879409774010423268716718928300480557394697146190757856363918005586549653608639228764972199659113087777790888439619415060479705995763008315393608212014283308018017681677894025990691448200156526118707536388689775131939486268609620392038368220501736923104750135406388547638009176515069105351435570603976799959113519567697145598356911282453494936050186777391019316613854125442692881917690464257569176600886529649375160221669998760201596949857643696128627661409328021135330162516025435860571587978417744845057053004687294904452494197186175087824628932616818895503127911332459804687755061923014818392862968617276120882709351489781421235360007666662913027115607110048034029270178561135425115485298833454982589589640621497831236758280917993330756094655598483447350740643102984834605062465158542087053445175644417483944635260912522834486431912928001899550638950235716172661045897366020939326786130427069657134982552423656537928576669423632296814984431454224740404999397022976415989196981359631733422627140023391041952964941268392198401620107265977748521518664618045033231535490749022084842720800470956152778792806836034783687705082442131447509823182809832359302057639886953295459538742242480336549642893035377044864621591930895284726970427030053179639984070551023428614219441535943083784760690982320012946330422143756013212384852671737658815598017601831616475802005465975944504591306051717740155820909297970487699510842832593513130972934002166751958630506296609604678751830657495058645977860428231253223421114484968081249766597400700987025091201575617606395338382627793213550522717107026682310325664198682217352982284758428957232323867355423462292673467797439037297867083857110716962059877942766054664264046539250205585476481663295668093227123421020328383617892008532660616334532679053407362660277533385626656665925602869079183298116285570994602434985030333287333108537649863448208957136752182369945262022259686388883378790798041574871541388083561924329778022775405327553049374470066678763505659891088621982062985788050603639271212517657051765434958432813361439178066136910738272881636779641671369106353818258209674409244877827033472637503139434889411331486703858952457360209155778409938673450709360644377573127126084707854668510953543297351718791841136397190823606504833932358786016353770348170352330690482066784692579104890360736932802770984169806095679344672931007105602537052956571953476454310329822906610262050322827550256646612408337483032194044866082451922674647584407267841741106257771625484965981647351691216036392413469808415640020612828608655531550068799999048869386018910721271368623138197085761916145421454289983613416009746189716046721756631837379633808844299660473229423661682395427513646135622098000058395782125637578531556390760436918180061292733450860028319036408912734071718292988439482087049093799426092864667187934737567635010865546695482304582773088789411350180088125215358420849435053177518531317310852219224311603156068620515019405700868607748230452216344165056833553987753509392378500172343286248345337302703796142060762007580159456735067180620135380387284987935408464941190185353828254760618217461004042745567294422781672652423217134332821009952433071859269274662698994523878798052633377800571223830507844957904194514986294982573681862309834253408998194774936392727064419148499869086552900346126843328517362513230065783524298257965754114378727792597281246676664465169854544846582712904388924797234983284550387422487282479223197797511071346344412034205665911422822530839540541133545147961906641162096238993493566892340530202236853659490249430698986800285766119110053197097844510685778919777905917176799683255375314475259725830407974694983253597874304582437266792887221292007893341747522216778702133910242654675376552939331509333749677821135550541961228396141008470732187496950888192540120781666310236916890260477585650305091539663881437193322073374568661702089091761983436996794825709184440996558850158232514479602492089164627617427815411674630290472906396106612827212023283811026522933466503442394648015226217431400518040496879462113281286149658324796855140274019232030007774007261635289771868977377341441560544706749413649311876306226406192020231253657718087246011499272528611472156656133043455769379056751742974009233973582233001619924072684390723552229483213838207916345729515156384474489591393626498862164419555369636658340609622942449409548343958024698264688161418926645409008512083099862836847852555004291903127200872898560210402405655934762153836587163553783853474867812395721444866374266029206633095210551375483449272835833574177447091127262414822043931380804823834094453153340584190847651747940875174958781978754316947089194447123145246266834263049660443993139473501671926034799227229711481184665529639052589139461670033885484030378843949854309091815870046473052416046613079616556758343565924070104882180287041309021139682621245723301293059227915900021957384326745872171088867716658513538955616574734070800868106355549665480881461829617433759856064984131518335720444315569370340377750001569476234552847824109110093906102711115074119897849847139952167811280048913245706322221481492136467172144579906504586925160301466904439243503081207852041587922055346514335826538712835240726944432307953424935703976575565406464484924718347553491772283291688282969579900216013325277507057218877396767563177777550616111435952472884382196502140681786048237294964909520985572581863629531653410754733991857155043080963669798208293630311195526415342017489038631982301233216163106629776694291990945523656272423589244745461173445337093247504181873530554367873830608076384430268646206908533993333354190151353488962059409608379788698300866311206882379640667088347968149579275356569231237557228695172263811626039373529059898053054574363311089130920471025449627010008568771653637859614845732367890074408642614711005794590905440802602601220798247653600458800741122918980707590420837055651323038872771852720132414180564888100030874553782246475187378735898712606392642576962415994754617723348675563909580056671432156416443828776615951507256249049578031216622324310726398527760097391690994026284451159707893259245173829417928903458115642259911094167705308779065638140670248683441916225945653112201863803206485275712559929924709687904501306177730587623487295816183798128066549865927916232391997965640958210899514324973654350806374882857993905218689128789712178326074514490990623133185777315803194622101242988059653618544389552671050657579068098767231806647473151241071568257334596871046757253096346014819120277172984811011040572969825898278855343030644698183577011840655352292669886308994277060480117256817189348543101125048710981872433011012659658998765465613308405234458552571150143186292329653903193748461016855459555570629127911089186807681975930853803539451795922603043731239826068196228669609537509199852361422726222571398231010568052524773079699310404125037783137090687800282205661816731324450506105055587149921384661710747880169941813777511192698543406562395604155176910750412478394635155321420266288309121576266490632099168291707557077593542913369520777718115252420552884578332234925253679353613642909739009959219920960479569356424543033536879168359505277578830155444079103271181913995278074735276740681405978084935482162067273610315515471076463970984522567573676383531823049984239128307952203493032672753085590181838803980267839440892756104199183011792162193333509486292136968351157342428100700369113273757297879052094669008877491562101512472404427013955192261593125361299809685310786152060472830893899636361358651549622536072836254921946916184899134772435272048074607020495068798128093490514594149126358565765557150539349000353434547153558780346460748336419938112445403104194550078391641322175587144576808943547820558559371529421091419258216672107990369909175577773615739102993251986987666611370633998503093693685516526391490519411444066740365834231424748604276581714375411467074403756801471120950961535951941724759736172169538345489042717902982006155732148138526321570374974495595247653300813747035025632060222928210433947587947624052383163963384449037571859853551479364721906145092616734509164168857158124490036793385577760339448715817648985169302063095076447900583069771149790195751747560250354763303268911020563701401909020193257625111583857551468418489185057854482260723504839181616685343089316396437005669273453202570211458560953613975073737026036016817670200483229629157150169003408740595393311819093750348469830306367484962522813226751743684794423239532868354234246593938976526124999715375862100999717073403113414720110228125940123827312044362210244518425103832725267796422947554337732868324007719287816874229056339073156452608937230939964442177700162008315575769240633044338176623714182368218703306136560537288258790813255179891598711353975020781750846704004410516747190628745603676925440786598315102089651953830544991257643075600477302887961428007924818203369545997024206356743685398469187945810724385701521087821968077023480127348241545308068094975432727770870955260352688379373233535409002772729915151588166050391922727796045606427623110462393664527494339005555442558955733476334599995489040022371666826519622699853351864040521932999005522073445000684158556136803769011402205126925924285272642624635431056808654796352413340597514206200676986108095194578113973443407005994544428968345060399430522392975761202174620950035907177797168787688830677848872060366230649285051950564816989181337533331878447825374786693563090897769809290111428753818232551454678684363740840599242847551558377184357845390715353358026551294165044190556081704332361809101897931032918433654188921651674976488884139260072159126407334089800982167359897694502908650233169681600423026950504170106766573172967183863489999576044256620044990203619672250887389100548511089116994131594650232366828446478967271306633939423403875571574799355820622419816656959702550663785708636325536441702108284742826008542975490069186785813460598452627822879854476580790795885569648529876021690931515936793890387907018246978583507958915203165350075094770817722320688762409252613291964990516745346772319044168217158011584130893433902652267317199678583349581963598351159058749098943721909216887284595859907580886216351011149830717735434913637814174294086101732416665532563274212615666108553068615843170542119644270051458594786203772240281652714620968935484685872226479002876184361002301175298107767273430832388384041091519825048293298306698139097332678377311736269182187673267084796663034542968688942931074830614446203375295524034811725532871715689302806213573445456349633619219306225951983593384053508534198701910610302330330991261809242978374814214081081424883111652013409621095279342002442594645913049081407773471957573268494444074191308810027060576038884879265704767015598358222500040687905482629565610423651566754986719394246575874124351715656178203997890936003629693143797378098510299079299701976028297391121750854486349484143769165102143474068352821225234944253053394083576808052531522257876114778653090017199523970615337300309059561454798901611970721172721254605342520790987110966122412681487038808816363728446358259044205725377090445839878923710935776475465198311597409129099337170726543430935543263226389224826182617778595840660309367831402777127109767016940984157097395422196019531623691521191188511145968874290785807981039105652297758421370049652009899955780508277610406298540914045352061414327035915867199431187684854953987445702013375250158242129001980531506351624596050596910756271509650563932242063300929033728392796670330509189284337554901976118480916252568885763300537976809335535582817148566797733582880372255808094635533529035741207843813638708053573672053791544770482741198100933110177079307221325723712307471425167338547387831599047758233068886037860051278972938521298043687769509617526540433527763871688931187911643027188001720651589859178203426768971012376133327312936769865926986698664591765815548858047488822749494238934395455145700359389520228910878395490674412847533772319149066368362565829263608817375173290141745362853101007683445192844038218464912674649187926090097285442956844198408552058530982463337096521294639056107564511793957284400630998741062080483261556161085335504383419495576159177118100627409036304705029376358957176809585530242280446450045211629897806931262827114671513184453231024784584769867181473351034608534966756862771743393913863737383117682893717065998845498895993505828144727411364288922794185255307076092736610341560380933619010193989452771881273429732162577351668127218043848942767151439736634839701707331840819836209878840013428320311184645135563805549287628047615540809479392153862851569741638801470126689894669181700926688931180319490414829909177218909525565248274589823934479141025195292038219259462770575545590139993804029364400451051499653641234557016135987477243678068359479643034770551065986515125578546305026996986567066534229993766144255331020091770906427870872525188463204355101908674920910168998677003883432591299704699637684869050913944101153777030777070797695516698080301247577080492856759460055589535533346861024793071322125123163889500730953090997299746891071836235410655345376811111783100012119435574358558446825296761890886438256961017941442083222574195238542729494466819464010975316215951195368932487926406401258071677319961391289775618159581126894601018630743554176420528102418309451311863471438119465044733440873675974318886757340421358287479540190855525821467874359503383651040202016116661521737896000087419010047898225153982350548514381771458458304512950125486236012781689748038465093082315801201900530399275017066416498254071654782158015217434901116389470997324362671643242535814675854586317106340470978481985471210417927646782434885197340275504949466039748091508941169245837486590791412308462905828600144247240723167130462856996866613495408483878423649712801496959145424109052785078877126609905393899705371476087320024978456994257988374717232719111644134233572287668467463448544928768049052235194687144691541700209157502257661822370826102054366198455204765498785581370613506737929890221207713456669318018225294833083899607921926918488678097527093913536576220401068053455973278302162922663015738211875968556547008119193188518305834389645737380726294399383497709433720292254583627344963948235126918733939245613635401677799940066671237267370803752926715569666312854547806176073326299712501965716509798891483378629856379301752584161275066267770289536441269777962234115531730864078566302440197866558819312539711322973278384807121114585325319569008780966739222734159337275513948747678520955855701883004159735593643081524077532251781352806726978253379070192274995509091120922013151001624033971120246422818840799550455371209095901550747748734147446352026649802042286713963689905031817764858397140615275568504015959213529737957416483537230339484536656271135377294649255464739458356271943565871540502713568885999482702639096242069325024764744233990548740083040725550660649217649600979366661683004820348433530059647562414185042626657837271929741993329145923191752594436208580545305925998304580075845010200214995103430326196343069141593291423759554571051285572372989015176131197553472739769539099815613192625212155329485748985609400149907138420864274597563368141177193423007699809819003877664309833752486662578709319298055263171109085486188674037570088096644624971785642998944204951012148154549224883618022040904860212032057472238478493167474657578560306289866257086634058067013265153173357009920187141308441675336574747464569798614846308790464122467291692434693147129681705144045091124457701852516529141046775501636362527075315361123147681002699193971424074955698459700012399549119804460450378715388788270213879078072843514857504928166488027044870848723269774739156085275290906042031525779753883828572130205542962432277794750241806605408371309188391495515799593106972560477838439649207186732988786892824071178560439129762000793975651350648558476466560026050199595268907879797474400073021967484124360501292849168291031728715226882916701600897734263043809446885312351896853214941436041992060194362220324504283196920492721550870673933150960502528827420714692007337122458116265469836813026003584075454399801707841182102933906805840128759973940799951743987687467467338697492331047282289833818099991528444298521386115703863755835087151035047101085196320148681953100344797347037180224304232727316435033162789164979538783231547196293936717811107193763879779520590228431965513416152984351040805473400450207034960615282532362366657461630695739242527540829802492536802090857215867978324552335907282206915475787024035798174400478980492304968015366268265315410226614298379235715522264231684467404062656915903593179188672625980346941879534002457412982911267871641105580752093879858450843208158809233081122746508734202206374841555532009502313704410727645937814996789830095214233110707338861833616280428210172768081443168548395000393783168480706477401345278643638626572165420851383867503626318989470865113600527259955725913967091795304444638596384107246710765777875386469218089918373349280408011916338758380807078910056280640881048922208302065169888711473011994247571761021748685094742073371618377885625591862847246875593870862187354526281100504982623514360665754323576804133266176718799977478492643170873244976601101138290166176517284873678310783291191961308666903118793317128035434346021504998265434382363066220193677456697528393768528069181201876797451995626215266775091301188566838419853085915310232967109969575601638746610977592092264439668889184364050906504423229851250577709678056477304723174467695277236253525543921685605133689875226626929549233305438956982292025599924716612189055605500570609966877962024456832987070242216091736223057765481558702334274918709297588877665372879202752703451643497787217381590299494339275621416625528438137202504082615390381541796483449096568496805852586691313979778020304685362371181278446400865221159756851631619019247733565073034026255460255646615989938127141954140568084173332681693647788551931036905687143766234969750917974871121798255785970506578115368216238629660474256576913592428418517502766254636932116496495816308889101471772256922222024493618906573241887030623269306817440522035281257897195963523985164589078466581687147608451822336652302875161656769460449236674853395417486757433225705051921228353439311204610336080790732867715110016476651750030247097544894414618852909125161705335834795668715535772000237632851450163338448909653808207297028608090897382077697561276751091358959177534927214482108629650636189505595165790682701446604184620041917342976564937294664579734519521041765302016736931519899184532205208295355802256486394904581922648555668753052300361514185381376882807215266970352610513899811889573989562808080686510588366310103786753112154220607594730511734672692550907039377688881813263115433748628886878958454074238521821647703797728065613038665529342160234492509030777028831691662831437058405374641271174901553222817893663590721843989349053157041246831971108477613107833931857572749193130031307589783006317938612747259310110372325038795250999671366950507076694285805061729473791767198800850047941421637634517008698226717272041676898934023379680385399326744285321727427228056870166712085626942646978025938976729530074457780655429683415391523506569635792539017873778973345135479286077348241017535280802001526523399807318695955548436670884822386155587349847618534596745325151256662201653404273007476610729652984441626907891296903543521643632504549782077971226155566916055565766090008600952736724923449638034923689879484220177219541756775710938355342045944352319086282849883066723086035507525104623836623925216832072482201482830054373341632374448448147709857567834793709960365854136962741448974038919452521041233107889078750501713512708951453195677264004582327688355128069758210341299200981193467564013316022959333582216624554619336315159602453194425348468786177248350501993099473066794408295508789584684830791569189408243827128592232955777651013619906802655522436631427518336547085720937710380201269581825775830395273267576392773609196931977656760076424081488673432788536422514321698935805753969712562811196409291635059645988858497732764334433164814238868890699411370497090922535210047333672766814368195686405786698619219110061988962695211737860109792359493109604986894260894248602199903819802441985527610447000019207016544870955072881849077840386048357861181443269593092485586676804290376386508377198339486071052219841554650574407406676093140497274862709829310400542602482856059664065545089266835188594255363510047497596194775340042192226245504109988604935735676853735118860991531967000390568258898705304445164380049243424416065826613007452807601436346275070630887223326142719333124848358121606872614142048870597375089382014703826739890660041407209253342211153306800485878207778575109799896671620085793200209358193837731274756343598065266173764347584376895819104512757858514940064939699086016812467253177705806883693061607940243202056198309228266010771397242406337161469253656563310952112518752747412016798790488199799485095613311034768548955528178885660332035834870838461324386239408204770465802739326372141254776221711248023992710087863225504981623450254174680666858771487734182827583212882719465780997258514748414904758064303268928684598767440372126134375599541458293150983635497646045113803476517465388645330890826819637789941317492396103687661400611323279781229530917077946800760640360880180406180467382711197190975771447330413141017033952367902345944343582954909901136236921627565707641045977812146705827064606244059554863448988724411009532960101565888960808550705462837003570838567894509676510150961510340755516399863978307537052313648665402687276817201826590623837706158633266938251359548789703657358864295601172085266162835306178529319492717848792867061303053538115060409922342808152950892151733793015669016937392075549904931340975986209508148442534259619917432950449299673207977021675880102025602772978761515774177195824719505811468670745863703340502883049257473173003451286021853052494503794130374827105679707665965623149171505954156517998763672942233852760182057626346072397472464650851252335797637719653600119411744924059056766511838032225313113841924767482131467290414585042027484068568263157821950347691611116924601530477245433194037368555694562067893650992057656121121424751621271752496427069503883165432596707608750266530534844893795260339375598304621143822928759211939024165605656431563319519566488264421120967434495972588896602309711982330388584796857995015087049173113156231706774940467580976177976836899402415066361547707963383723491691450924358409658134191848630796459915005274659544809865823742491430365908564517559687125436517828407240748179923715239434344602322843118508794562215820801285337327016744159185193859155068732145357066047921239447679931915331958636235002313935125911902201602981674468434583150483326560308871458598649465662743290549713936928440442516508463531192906242386284144659996088257583736569639025562820699722174739521311984984735237644697540199322500355906108640149566906931556959630294967596061491123169476183845505735302203007631008535550306929470634584856027730370067286598226775532804617208862536518503033685621896713639632749319555797267874377164784547036577318713212962566223509537280843077521552022049457136604597349192322756717821310282286692221742849918634032968124108062370173255862110852693554337192644194013869899199753228508737482014802076610948861332744999775938351357890035498902598620802044308664419593105292704922770853613195836233367997823707174193914661271585338840888596296864517511921924268225131964730687048907031369167340001413525212339125418299150044800892257621216909695417346100265036684699776758073704608410942529685171499079795018665105808625520344027165017416266445012942885412643334314154249349220148000498323220297765459859472023717981709630545874264547105915228756181858249422189262239733590901419062870066079413125834200836367871123646779010817762415555579818403651367148763805380283121714351030103328405282639565968181127202160643379766589051072186201556637022497953099276065180456404633260666526311281536671224889729304143426992484313491648046799280921359272265146611375346897991752478757854796989194518539044032237029464930591908890391668391238058746552368774061210979261411619965891047360609356892179322086505379023803340851834060923413054620136385475512948951422458741543589545431645440453571048049607076803302842621606587267474340962169237454866856848405279148254630079823351480560357566381534520780810118046619761606432468366828275193415160400155076403575249049875863870735958955042698958703772375344706640157161762504630426419775352098168674448553861617671502300484525267155277292381985748335473284837259218639987421653120321753542133762447728733414569187938925145509978941319063936937572014359752114019987594150337214767398331302501563543405869217162949828685926022123893691890046077064253938899882794235118469981093970732618948383277587164625464911785969668841729830206425505617401595057560401711106847350621864897358015588938038956515223216431905808902321020669386977819776842454355187044905464317544942742644088144752404031234368877716777576964550008150455830067101528657733939149854337781486998076197884351655041594657836583744499218034802169088512947431037181762321552051769132693467069019870037325618629577057388012074558861693429395506253335019583014492736378029093566997590891139050890699614228987755159246223984765800735271862811923482410048243536985687806125424725170650717270921923490977970559921121233826392995537350654542470825116523743717971162632027585447110238531395025980801147890091199122960989031997639114420902743566591538686467774458881740677973990582944292834929356634492781444883291416863438385263334395403452966011105619684230583630295310437175355942246099704687047017304615142296403974271021019876081504746533690862015148632176828495949158091794217544161641455537554032931826471754941877605443913439189429689072438272569336754983558904597853513740772812446239765937799071965716321533420319765669571016913857289418942815085491225443143253186718547857694670444077270961316416849286387691315520316321675021823037031132637771603436879194786188191010694391514031806777159272265822193626536644353424825211243976169812764303207491849478797888732502703785411102519077764390833680636774427798583107220840960828908978053331597295492345522881039944807392865576974599748942166230024694372026332400798288351947028591147832112674226956858239163405563444530882951444035040671686582334655955280545268215066898335324156949887430784814103991315067713405461270379968407162181567528036742249076381274299651117562460242462938364771504599620611824304290758836060502645871959658321402987843407381744650120336301214816891251246493420943947258425640534325536254459066665257098996355941004910843286681529080564707861142755725510171991579018843578692916499404647386600369573215015443294703307637601835022600424607171609541288109943753628068915050258460049687559858288649165610302868528434765591308821777588199865370315102321877589956630946876584058536760252087650901612474060666213470450540245786434808815708700733990912110726081872479999260631629649679567829568595160602607866869976570672188176889415740856169225617542684904735551420995476749931926977953109029194780389378912231645835400115345097138729225604463899595318279428454686413747634309047060684481250255465168192244647660999380497322672843938356988838561517838400447540316825631475409507278223340041390850272997244784725974624425477730015968138885762648440910839936349870902655121597508187503322198270597323240978533961030489923159913402765350197063966156923564962994936702802436211608242550903344351760691107722688724866037811688748329305236751793623049952622993095074300019299650112456560648663344074709989145444158419632308368903547602065839539591145171277402416566370823454560260421008758978797188007558923955667934714732113679201707035433339165787826766213620548441294974474505473732464076229908907066389313383685486078628043088896486873233879802943520652304922676244371012163073346818211452367894106219830173379654293258508361294167481550777336490522102057509585951390738320104707835656659021601235302540278231581566354588130480319062812458068201611077133319910046947773806796580304866947480823422754845572484222578322744387211845632345823408810341768336883031334835274629414208676577251940412953165739825082850811368104336023471038886926962092474267669211049214413835548849899017485476444787376282140031348640899431717920180210436081074866562080196709730609180158785223235108174094998180404022732872992667278496912237843485564862806087725053127730457465989183656779545576887061908798426692619927426735481094302567685606128942522255865060649433394061327305877297949279575528357141167657501295717371695401060662890297913667369461960842356141209784548776187400735247492838002241418260633866783614336094437233744428234736013484944614897067484695363411583789063003928182772737617608782733892414762578194557443024199258145466460053655909675186693097224932332292083957185643756155676378501738447835407241447469544950190352701162637529800127519411398220526566420725728976847868141378879367449742951311075329037364601585097700755939391849296058178164542115784355433796948143078993312227259188821883150277399980582632646653740810870821643833269814881009557262299483315926649001390480314105248938367267054062710347970808997738125466227753526684489097533568448842918576685779225677414523633749575225000190292747245644063826368596948133197253367842947220421390936408360150661332900584653968495789607837064494429737464543729097440463660121194814686584705968753192578041845889041846960071938753528009246070396494834280216093518514851510962903309734914111402532925864400815568347812676815542603031858429342921307696512031034266700046366419299918715749381188032369531365824908246938977513598182460007530762837859089155547488869380796662452288018490396746622754292524867496416223352161697169971323356175607100423983288519880782298473554004245435019416560405995062903111397248121541805116088246079183916706547461518361636088144850529186902177450911565590774701509313681476947965224252566633609356621450857583989049269453083919636467548587191059759836427137389243002563229486289086167367260110943088814058542324524445510549611531023622310590237430594331572819321723805523780445837079924985851268381269914167970683031825144932309435072033660889679976111388301277984095820223587576941591533562129020392906267440816551426345634993271833840303017781326300603129633634625801173163669157766799993619457231136650683043878218414482979000259450893739846484398474368752765602525914177958401253011051987787634359938683275524958944265678154340788075101579184034557972542215905148393548875203924412398373356243955661050740828235132536203761873953394132429753699941768900160784833156017153380227242231779640822150996276669456082213016738755288542630236869139575349828655072047697239881112042941069203616005762206399251428407906156429200448848187944120529302964500124966986035314575505512818391344944689061972567602399019329013427286399338316138919445567989628114467769084852368967693052996398636432964026970983940110508183138603266976301601234430769327749917581951926960627896940703215661480445419236985142813777260663320654787740964555017208271349926708278155978953149385342118392853499743000895971821949673204610254299153958115325708457744027757462830993404102171668199635598155503942385349284020157590715219273413461532778127607982025067129632348573982230212749212551405544376719471806060882073438563408152301896823580467965556155287548899001857479948283651243073053633950588998835535030554134933931805072555213715194120388977133303764113644806184030453212957154950386030273039765817332845344970254402303343393875452343659043326250522131183293130813914158078127835492745242729140137020602337389545098591460282767758885947139999370060998766630054738082754552184284508713805111495077788969874390969033128490923742187958123409679622429370644464489197184156553285789449826899675471631062217355204069980312077465722475790273122806236279980116637930271746057957465080091147947981870003148753073231920431753414357816477364988034494296023579936522182242350409087857214079032014585732410823358559667289819472205469581399289703410854623004883233566666886239141322571027962889534197880786128749993863127180474456469657849625102435415708825786117680219034335223099848623219762202933147063122200648504910127755837828804371682887834806968318048934044851111572129190684134633544311966800149289244676809699978076796250894370251667971147883946135043276214494285670144841688225557528761359260160173411082282817517770671218119946975505847119271413486104228671844460407217531115333383291238983263642114820733721645391028932306413633657083546217503038889509994124780439190193056581261173900049973567641716731025453096284177386655943695381042999764155435908326207889802909998829808412675332281134109246774215743988352126290128663759161984019036325611068306209348293761154471327457242444880586805458537572402184526200637252104260760575750437876575623754497950415149976042763893537446956638456862944430416789684293517211714577854922112159981814787504047669461436554275554205075484385990128130859628498062162997580230824050135685756503185444337616632850998937738253275744607648477262332153694743414484483182403766610209436261699353297565390519940707303441625472093918045112273346313945667410520682097482128986320185643344070765860194223937009574710504949503417495996852061502366218026097247895718149999325256912854464511926101908538730025027944225218062292853229141804173622352816540583023297759001775546815329423314617218987368900305834852739202504905437478926671110278322185971200477149248070904051967645452369252235768553034910209238094662914737365105730871111427751180247937653648103487678146572163436987085951707494612695445315996492083557607313438589864726318291392766426714010064300022638845713432356394234643613744922827686535956781375173018374359939012872271958842761957263227327360578445401336851229140169579322636468522901673093019491180114125996283733857164678653030817715829301592432895089298813489354786431092948149725024409467310716261368346498608693993403416151131091190132017047568209071130696621644227408612816209878204547620870797034515941863670890440164783699519511707044894773369000751576083180462853417023860682370683574978946538780906295954746069749824282065875828834267098179467109203724918182231297401459594686398130868172431721934470160702573101172258554282624788859452826810008542207188384829074497838681236694351855165650901674268088871337864072043810865120434378712924878638172813831603293720428507745084672718751830852485029474089291437855066301267568286543404610113368611032681347159147444229956184709275570498655662986043371908464308690272424162457210800103120454354170200971805728782317867309855028994479839961276826443455047086245646943921321548749882537475075945984477526696092073372735793485172965078246376929185567405990039549364841727976589402449511419296391769241638716054867990395309942385826482006836801933264539343816483253564865250619765098122905257405252339887085180719434146437785305483063963411470438038852070163960939475681795094871275058148248184330708295317467456247627401477636625049576383869195415793821258580006939732278805241878130692683933170098599683482529856932307757462110813004026279489899868101998505968136348838021484373084206686226679185666229915839639376324044931280688988799134959574214702738171654522374436677722833572076693136406505032820969568779429625496316582953616112840890504852115320439818648504725233016000108868888101239611902822837906443435212056229600801687419117658579804624287365706578454421266323285853249483526554726152802089814624868356094016241722822641928623650450679099386429269778424042499856608664841040037468695423341286437068045666622322784498525561796915529834007039811120028211969350730931446573769677604326317845662260836782992809728084051912743656746857564012019021534895205757249896014346497929375226418120953332066105472527336097078902712326508956479180049843431554723310660104332179109780592925171471211185697892911009652094173882271805973741782691719796261355349163307198797294027403185416741204132815631175953162334226625146142429395675767149670428034613019577207160674602846562928293425269881131294248949241240144119540583142815813590884318986920809772529905546967591763706871192389159538885104875570472728390005530722996447045052362748702091010288354516324455164798309624987196982026919007375582436451326376544993298024858493966824262205702009783602086374591760641205293479307589977461665415655753903128833917988865088650020619934653212391807959174485106481829228279523821183988377407856350738741266166823210875222052521445015471751137946418314551337109180694107602054736815986890218113967153505471244079468868556817300997337764928373720980785624230007029814227869890380846723261184434803614806657997691783966787346391906224595367361085140952869318088114687153608876121991232698639091618572618924867283677511844055402405531753192144585955727333822783941294079650460590336567403276950997790847941961292143829602106939040971745060553567457570323776670532706475843570403099350948758242096839812070309905343566098743866230096617098201793258780060576278505002975984255816313780146875030022447583526048435789529564321868199484743682952937603386179481281497280796586414912385489459327555158659438432294511672486158920324064219513672516057714429927259095232455494266775466217534113153916133914861282168941552112014922535432954714062654244952098772990933089958756302087914797638920793854251410965210440672656971399012946328483631370151387444092511426157165445190090243035955481339717844395080808868092134511360399983146194093237526802327344129771862519716675099044360843825025220396943955039156434888294513350560700704603475056730445666252135449960376097163454518885468884183988387146071625457757321868654727044797801782846585230356898210059007250458379988335502058967345018660422610293208094998134042082573568640089545353764105724341787302783301659328307698296609416193740840208661608918423014030255362463547331731234598149220408313278379890308475901905171114474765425813278673000311407874758095268111856484634143974523823704369678284746407852437909788753334424117285537876300918444669719261914729214811127165812637304634918908793495493383405500318598489605767747047177536881757776276685612595741871117724087786005585566936917321077023817687252383163359544837924235659395978138771143206435879659898011126160253696053546376779508634094432020183375395548960563459650848869778515502608459233338390062588395558904913669311810483932796665139992879853248374021933758182811364499640121773154787997986903722857466036960826860584311709912494640602220391121214841621991745655597164177764269398803670371023633227492359408111094631304150925058834351627490817365705131103599793370873533508841582081665636715115646226399112194498397271829928210025314517468107434219592875665243879959220561587790640695047555255590828116874568087358318899087758379350858302614075550953967292250455804885325660089121680352994784676070970295191272961541253844611934490969410210420814234236313037254450144025637048611450852170995366011370713130179732855558799524657044379727850110405417634904991083042560634133379323355895205778612638882592772633093739261674471376467101467393530767856091086940564614533319908123495280658407595530894601189419377313070761174817543592700535642863734683090336754942974412863121423541934711177107490383646087121784984605026707508340431136057611564195461302155352461019667041992037428217677551704126474166154158314178841976530555227928882721635002615308113574428484535624881943826732085890163297472609709102713158949261378593783377394266031377696266704607520960414454756303758673965350687652745796109191322862847124832463636713705504397065772583567424507336736824880927302849389522970575981529722698701278074409252825289908398282596405240271280383674257626313374402842753480066340452996930342621286101771141676645176188373902020533329641491216103636195854603191498102825619101473767589855823815726875835305667799568652381453545745040068832430540947133894593861717675173358999076306622254318674565162873913395061184091995263342036485364419734019806316487626017727948603347718476090340944420953375515032894639367095478004981983273145725973498608791702025418988040241050466869070222158462523278387585985407017523683925411778851854317331676512334290544384403006343362959800373200515252892334155592270872032266216534303986642811579275786234795164624906488224530292375489817725169857308324828151984408589810816600217694669269959412227592505119219782980219502927900168303680773387857868233347154852966062229926484614298386136474664016780968622373671646643637230913836585418020104110135532094158800098006554718830342324850202690632574883218975317509640218978451019474786491573088130737906738824762702910593099513643378413811838087589664139918162821445111994769355207644274964586744898210773193112420966271444053257690831291822630892807236060282607190054979561888728819810082396299108319075394100010030077993720559582111025736728140398889263991983800812963894796367629736374012261601621385948092270637993174454522461059911185381611480624620832134280381574331641944197162248411479840808065437294273790509420302910279713152267795826066646697589423551017836107741873899023414345480835355547177690295861954042591736704042975258466120843182233738614737490767740499785993011335855627899676450009242488830502657774580475602046388868854604694797157668120924198241670492780688648314557088753359236333928297490770095453937659041529689048689985018720342491929476533279860941908420396035875338016907071195845799433228118287127324853910915814027060949020928695097915261604245866649462416876746715694654333034062629035167894243587909981117663234609553554290200478482619575794203314581710066084067770882018242994749703636300677718628181933388122714425062506628576866649652137768332528494349308791605245166932768835185048966260158061147505450265728297002890184759013497459203721398052863462937263676220086736397689545850312542262157972760973266893095616651806528651525543306604795002552156719545474645653079186601835374579014642578398490309192976384678649531267573455065446795145688584694810610536103714015453075642830219316753383202752173425568544686305796964206915671619512742700770451784961034979851307106868519880143900737131988577224392176499844722892149606451213287932387827565822662328725520359907606064455892189025273667307551891195897040299877461406381811093251630557784564695616665906167843721060549269291860720454235102995464515877405395246376036852452147337375438768483660607043777285873105096411063671621094660081838241595383163474041647311630391128184429632651769304445219330759449425873960543570951491285277742155063472366203799061151775141043357925245676964595700179991079048525130067324162493946058648263450670262551717734474553174051667719702385692616486662905602732922911238598659855675354084958143122434253358880372888109352451278130341525377274076382275293706369841618995312991245281348782830890228807670409614899040628122972133419081420621795710883637373136981596929878407996685060621638892533250265023065249476586735054979230105271468749098175621031774911992190773530700495855249112383694467654098512540253992075709521486215381404585111591076543210162285363179737540083831880273598404433592466285770937932417706368732286653380387293676775036954610859266807635764829682512142607464671326389550356481805841604690376406343941841928385911591022652557256239485006244345872627801228968037663488903431967980596007402372053904871280843453474947578300042242286126570875149009108393888089183955853211880303650556861454830534356230681928372259739143127965954503546401690587676491826779892722493377891858361218525598857762723875458176312163461655473786005851304723162465281136313152413837900922399339077603879160517641599026271125862031023109078823551165616329030720544634901729879773024037743329936778175256023459377751834308019545400463145290729037169666408517178135101155704170832066285728770154069963893307494085249964603927154453245488240012847075087524720952324220883971273976300728042515707256014760886019653841817648573534204947883938396715696302772338228597221249366255877485259441841092982258859389633424209755982454757711739885421322840423818761041233544906177916697315796417421730569754463177884860046248115483650462941529081565016367891023817053653586166058576620821857644439909486114158880223708397623780290442888933464438354185393342065779209268216161010398484419548229315732292694303249238275183238854704284949387331217853670363816685156033659292523013388025498638801549948288073964105247216325489514792133208148719018321406870355024868547879189442256871265082940445301621791042402554570457386164189227395601595169027600011762068817206543486994704732124933427177830276941647871376996007428050295255697533647906620125592681158165215349315304668313207478403621205344355297252727186282254083403502865160208956364684130308859207182610984547675488936414877933095979681538627086382861457441028964462618231298847665170214107863920602133156955912208212351361963953220263956821269049057604654459164512326283351794118238562123699567709284653937958093589689243688201988847089886175579105934191410719469530350920508840882859938578248190908323100244472558086111207277889599219736660111828373607448517380339085074053849333094453413034856692667975887596786189234023177514672142862931341870887624554961890925790731621819161028984264609997917749865502295136513238097926884486782419195438794456404600476555855169571877141321954480141260263771683512771982965357744847790453302921179123384151895003480697054707888712987208735269762101813418483416306238039493558718619151791251570490346951080654812790598847248415063519930563599956443276403226739649515643905301948423155318453125118139206313242701917863812377996833704400930760994028381519920797940929422813422698306544679423863849943630267828351509401677193611830842112378716134035284901403062207051980310194604229622635265088250000713185128393279655957258727732622672646244797113424542073775200734846999200054006787016033234273071154828518894241693081090389362020758094249816751779668971248553260543441562402027343265753467809303168076585178280147713250385427465461462624695673286641551577682351217462904726786242648622606777424205606768382328596149089004635215711582712109332165000642646937625493047896232798910082515687510329037067071391918239908154562567957066576906314203147274524979852567260677468121336447113911704520827784232829638014460583431349500188372939260829733472156153948044044180567593273329707945700156830805143386290222062910827593706091874998512250359952171259902838136082608711549747790081442555719454435092116782478203336383034126523453751426605685455330600256983435619198900985930617234265785826633950675132569112848593683422020525569196354994328504669353403318389721855814014793956162008683365615084869914019076822627562847984042209854419137958252620359337374045757107610421025228193295012184017887490353192341253433744754439689845282753546548399409637534527139936728292729221666994089781908778887376252733235738585043024260358836960286549303361126113166075053472261814159821571769948746281165804761650552016430938951083089983789560058208766316472609394655122522794105679264515644176302389224727916780064587644162081811582139843245900576204370496012991045353925568088281240913167816865099540678292812625522615507164036152367076564063610546444354871063682865458760211996571001426325786272160139044628232804395089685135104699324480635192565900267394235286344223573171515137546526400660978328573331790093071824379978165959564416479591170854870123901449641586272995496061802769852843865516267714480582087973446964720401917661116130934868689088007815072767259802850757179657672105882451478570548514729096640164361913457552084740265840720418004960935331960725699681553519276448049496273736199355264508326486850336962831951674024519769666207396799232757398153055700823186790076745995934589964523644068505039030525697316210837253774333402666008731047736313317249735435197214282381239449355506693087110552313655043878634055476396336687544107222268980544460731313189118326116765162486768381056817410311912188396398824439017881837003164338461345266444702051314304868288395832910585898256999634675996582830067842685000931550677908629336596582525298033218917493487363383078015609223910431841703204421051632316547927253657989341912486333052923331183368909343259500718157108829729707415718597435221961144251082094925373680043258976650774670598014206381030987483480400438031179762451567982240880886012957783230178375826016061613127987651052539296029039499405199025956840012502205654647987855611898596435639698939828450135128721240056793362007007828546470211462500051938034530613898840531891157087007473736156003894730308879109830253978812687402340668574132860940725258669464089888986457115938505861807821259051072516388116375277173812181171075157146949137945879872842152044147020913283935793249223237546653663915682945732257178942122582045897192908195405174749175259596245608944607177863523891698361213860648448828229228144976935218367569130475898916646177756503325081690636355512414438295358960023540803536448101044874600071666921835179338047522132736923247091548820829212346218810342317018306742073374822317569062201919524969485875114581960157576982636794374538903059534081928080394782577698645471846344327526051088177254795005356694983842963634474786276321927647889433823843777593678169531847104411145551161148727853052133742625309421453411484934768425613285038758683346913170673371191180243024138891832586053741408711960011873151124606372159313666852992048678160715391591633051434290372656885656207692079264898866433144203483084919266787060134064824556615172718868620255637524185557354709835776156621624014991531881597369554463813156008129986221873325536863155119030176518482527526650016737575718211305924354357386530451471420977291798588437466659682919287488555419521572191193506919832028459360277049323761368526276466276852182824131856535003598589218393743617518847399030062353680080845897710723516641841966546665372314982060850459386762458423967211660989486162813866035322547661653824946165501798083089069426168644631603651741871826767505479698035188385845773860144177118271683382179627671992787718162338585350869468869464139079724556208565408987732835519590611495768184496000880893032385933305720745764251644714368547661258432520732464234378683191877000254208321230711501512203420880561208482722864804546822351306608647276227665225114923106606297755954982920881928670539697616253560962732978811426299360422668596827002712141089646003406373829409965416950733739490839429316811648808501413297660116662037379881782391694182919989518340896690415982347021642412653927853933240172604960877301446310509343765246484533947214307965201128789732481234298336579526209503007835435220963025418618970663792079916733886176872410979458016173875816498187377358219868462167641117784279496848131077356130461281523436761934913393822640346259882927976485682099969039577018487522532286422836804182939326886003944677930892709475926477056344347476646994905362166819390469487694940354487016920690095933795630919892199710259896870452030626911081132942843194365149463372433053716026611463020316665061478464519232935391317240874218756300263730416183362595432427958938956735711010867556885001244056990432412866550469164300908995951399847415796660872685149322976191984833880777349420408748408651149001428697362008232751323593193644471305585241110162355022682538780776215119768502113207616050616740199910950013792899247510429902931273873808348814320339468907856616823380313050630105647261783352586325272032446953989778702315677614448038887262823515967760892125639717235952882996167929472287562750885414156071028897916853705444388790426415930636214955274861472767366329032420918084277501493022318683481125572017316519113659799295304173901465778241430348287774911809346811676349794153250449529270887030950585062059533987738014183519740363115909809182680117749418894633617538657292310134309216576093619727770812377614726567361296195569346661066681101389783419531123562839129731980026859536737160639764417649836519422700780300555721290392589419671409043706169906450978850175784001227730895638106703272445037282380127131886344934007893152202388768184698710335916769691227136769611130990418107252258106849353256318965494212177539742289920313453047799792519872359272069917483785636800555131240652134181324176970610465192908839368054805535088010551439233107887651528905088292150317273937175310525905026008097134631834343163087540322138300472075452863334116828503379784603069859722057390289673203172590790913544788807958244729924743068358853540605184177908074857242639933392403518463025363010783768284541885037563159823928569942022408484872772012224219139853899235357922318597738006280371404452842135559114546146132323713968732591891991877599218895093446273146285092062043422627110861910480822050726255842932845323668330933237864541855709175076094385772941384660508242456324768883013503651234557333394228440249595380780511246273882063197677686996133090407031884808209981990118668467931401720510117196497312795424064673328994922534791483240413090305589800587076001256135121875988168441129830187178470192611730484394866100915158649133135988701961580326273694643295687960941960720498126510947834517681116457120879647319459609108962536401856521003486180914805918943279377280797794042894486381870754750097230729847485400685131361609211951114305515064656109451853070900214469455662273978896026394526318610855697773307460147599364217513001236779481835404719810846022806029203640811905657250855032492411181760873133532198728124709690710144540733883451909646458669468721586574022392598249239249005103593112887287578065494489843084593828077340952734475468749896074354713741130211726274182315237550777258006786336511604627662657045173297011448268586864075904756971584368113785828368451657847327311836892448731219868562007729857170027937358665786856401666826047792037813379044490058249235195491452208745412757678628287778636549738494304860577961492952046978731578646056966420531929415626485455280667505980531806513886243490846535040879574236736798588373803535474910190396812571069247785336712315768004245794263645086737880567966867111944171673921599650300687428325043612533046685712286545705975441078013088931890076274306590061145635744431402776762997132157636519020697148188877831374718880450826999968129114451700438320770676147018693616076689598402638168159861676457868479606495773415854666625068166826513261369786197828179847956689599188789909378848450736923061007668128446721718084904868713751051008163249536408247199164283807729809713607553499621863171009571442804158017788664708377763984429631181553582929923655392450074530423756931096210563307749124107275150275701459983830540097892583694685490217623736538887269120818265421237696167184146849041798835123533017758893026964461859404148633792697169820231344654049090906217385725592482560141481521782327284165137025896338741304014990180268174557738900969464349058569443442213434727700387987961508603473618681206367606097084167912266930352816643564966584846925040766669385907930130061836053203768274874455023628944168491698890558195631801375918867839103119453082723490930669839714610397409087882508706162971415503022425167615826253002829467464804305739709321381352899766640898111005238047932688732233201627229557726967291741465970085829010736506383377272612767029889928508660111081753857680330061865971941262255681836892850590912356758683078829283760855391502544767732813246871177702365153615635358947571644463717589426959082188075659252520316639091963047887214465331783305206303034174575105863570971765501995532643906316288637566388801451091444164572282165305117570395311500970796927925594029363256126823986981232837347025822880450421134860232153755242207092303455484129019402887309701421766421801177595026593660145654184297365027897568513388187819542492442341193779885396263659923742733671375742237292778940633190764303933545145568373624144804584301482676339058469087639778280397919512925842640136941182387800319516668541864457178069866081578093688754271341807526828194906685297905514062910665100891473416429927815527417913802110415792674614121434856904214563484097638821608554654084149062778377166752668862770923245403782684312605146997114693049581342505973664567708873645443907863371778398584066643646000415423697270893454641426565779861361869867083148284368012632652497243099668063121547271860006973105609552255767913588871093461221139077646970385241634837319272006158981104798645625562781219276145748644192109207278455782789413271998148980650619040948102049831787966345313195043597637592089534812825977108720276268283996696194230248982747894837480422150338180480415386318888627398964180359643275897930363545968432998551417745606026913747116755620267944589963418795509092854128672178807743407649430518071755688696606539330989950046133011258800358961327824255573448189545990315348940815159994376260294204769463635127583828356355063354626097173296686814145644766209664220899718264027282531063619366306714841303693765195654450323891948210904129755886208894421865849093763382505290229660336407017069948191887908286614479967388400064325985850831032100406801368476766648525449984556772195198922222334904771996696033065805923414905841450295826269497925001282437840726486536196326221497061963290289294354762675391605769004518106564314712491922207634476210398728385320356238920198026847966380814087177959840529016088735657337928060214147946693447926647083036837845478345365143741988535152076447947805375804504104080719703394261137026524527689876283269119595983763221830793345294751720577160309973437455396904606879293848482606057788040732960517921125922896992609472849796139203451828242596998922276685175754341151876385036672869149327029011411754977912391620533886220913838506384200535575496760667730162709483925708452205573342779926259401613401339100434601944597362495362113811880072148874876041513011508646892623708601717072507396593714835910620386401920234151896276448559774217422965088615622195817837852154915867337181283395573587846604728833366815536282683175901248059884842514818939174963107874660705338486233461952285934978814758930015110348132869871637446602186025631160665268573249530127708663233239783134835978052075256113902968800022624671794736901370566328798723928617769754717771177935507712342820964849368137364902444034963939727255507477535974236344978781198631296784904053497201779091704482835852619584235389727501687404043351197704946465847108496947646954943702508664162019809747036441872842325122090702635606190615483439650444069399334399455509555999819996889510520485175118182572673560184567332446402510521568094761088983130322251359780147442072716125918732390498175576815712878767242950599138892675218781958765957285445265904398452067630224199336405924279755383112240736583180010578114694668117277529848362299337095291442831358295875461933427132658761640435557126771604024171982119722315869623230813566277415623556094684425466350312550573204419623153154682578460919621877120580158175065019692496682576424881654845254489681296226585916009356961582808743700094606230706422419980219796391202874469447905036817407180127080964606225439399688873199029866128819312444405697206755467109323703387096031600823596542696729839306466661726486814092268316477936172058057977017773206258128354075648492950674973143547414233768888479906694217275918655028392113985590592070256612852721607456315453589629535700106215654642830656826416318119851304812671554961979378596269119198842142624011540451442934334793097809464014090656573622680833838344192194487579508954595675580049158307004506939119771387741888702140569567804243763217770104711427368407535385014695210583291633635168193172672682789174841391520071022952413788303433491404560915637885125112008778201655506273912897767827261468386982827101303018930310615570448563858482101366484737890923211655449488013048670866521900168620349620463814781948818005113265826048748045870339643304147709384485451807940583321189539913864176586759415634082097500316544378480407746434083383518311143589893115632524323040545989258905367940267904459264601357059771955582116012768685796820515224287026255620567080350988316176518973023771549690182426537640073805443605886045528967359887549681079848380100846882945049764866001994526364189124392457998050343822937309446451916253062304714347327485063155546827562878933837986811800863877306484246539952416704266102998596713858664338428740047342104334087200715471095577318950462147850449811638456018223224674421395276932252148005887312960686145752965444403883333758221196735992776979428641925053271678937138161338636169624079551785726561777052610581794664775749625269969547749319867215024141497756618943207634398470043704227134340224875682509886754303508268286047173023457572521118445240975924565578114553533641238995943435867419295638603067843457421645124887013797810222334401740244512988910016083998406321294126281973091410938949492672981685397557413409616140289256783557373350892023591241570369029456230120247426742643410783418290982062825624893025286869062549445531837653909220699360988949840339614547347374244446229061921012117961558092813771213110056236313529355225200913010875450918645883772841704970299161972445393820109644515992232885458388248611141469565812050535905880351446272842458762028034162063988651443530227145413600274641913365093814946477392748231545611614362256326051573450091808408344493005867963701067025555366541789363670440031063714165536169810293711334946518593404316247671740093830425416328554385809932881953918906114911999725408936616198964807440127879745271447902125085967785628344751871089154690467996008462852099443189753793499677211387550516880848050287970453822412776476735831900170579224548487093715505510659263338746846366168174205358126511512587371105494572616311742765188752685696428360199466367593968280060390259968989869219361900603885831842933675263659869420308601397544822058925760512304043163055664125467028322474560544988959086352663292964166641176417320468466782062766753569147376438899393546297078685011105631144609285999808131611580230257153103931308713880293981826409393730938438137243107557313991813778085287615237108133056293626966712929292479714955827368690141223919329892643830128469819007874315349891882489017541860045235508223791304578258053223553883598944201480642945559088086543625090477926542883615482305035005830057151109194172707361892283570272392994774705686326759358662382558834349159610218942572502158310708456030036759417346988952274581176094257477834407745002120411199246869955785014628055604981954511018976140524860782702255368561243752768785614875130115682553933157688415172353239406281868853614589254827140712473030760371732520860913127378775300022236093239416709857854703750236949221622693182817911420476431056504052965664523706607458819738636552019390622482370517398060259066808695959570468203656771558543536843534970152006501674071543519577482346019856987505611944855682431096706462426484102799959157228801326814512673231969002008302307111810678425237813561751727493057449263176105917103509052226359962975743801300365064513842618492829818033696600743494715509349983888282071552784937479653163988774800700650167827042094477335685597773293544852940863712950808217801078542939079908875391186356191762240287477229188941365931970607371809087167823085882157723041778711521325756028733315005965638509451614321227682973773802912623709708887094020708904700263789536771513747311456958436740398892853038668167468943959623255117084608672976271344771152028176400301645974412835676943634180236928375527412612060078286815869413419976626356273291395757308522773007537588979237472395137878323083502163828392468220190880640564753821576476718606312321134511457132543511641963352458277728694653752314246306202167529102839311610125120150571548471129279801390425121605892106957160808525830488991076549668385501723207475516591782466773438482022723854448672478320195379186277128635947148205878584869397462923835435632135163887138858127219486525868206776252398945175820613837103192831827524098984913095467298463220523233222828744786108451409823839837870241160916161154782297908335418359781196395246358443267259365659698398823353735669657976911848955630391134694857389374610651116542975132227288477425365829038305077115313910941226553625140343472701537558989437121127381172348607364635299832335940934130819584241202520546576093614338310720149087740720735449415649202160931417509838433927113814315164635035964096066401151638904775775039122063504892292630090710381164770464678751641054130642362890702974398149640970256360438611874531816342589532649085825426304679021558774595288005639349072798620164258276919178690827606276331223292064125789228034816725592013306699622230725961699140433763768540507002364045470973807462691097272927478238604316413829644326005803205342188210534889091003189092479957759722568193506396745235829580506506463137727412485876876817318208458919107534990069553384830104018436227919056391489749797183563160820533061476549874458443926077485540059254388910118358943377398334488423295516998081425311225188921150648802818493130058350383100797433510870591870151617007265181356844177047344611600523264820863417335519146704141754561693163638637656701771460057129104982787673844634923834646896328113550191328579023687101552378152977432727099005890731744841626784681763073399485083960939306889018736467525117728866460515872814058867475599508005901635290468628255493832527828800857572174229896576401780313757521047826606908752283682642059662726406565990568802356255313238237182248302751892642779768985877419951823313235653365770537755384944569830247171759820171726788019974407007814443538031356673231593260348055329591176245903177634410835404323210796809962803030392868087467601904288948058328295379908821501677711166916692381399556369000723262754743791511230911318007926271125854657786029426466151172927235569055588921852770570921581819181958477794842356188788468354336513404157581420958064226046057122024766144636542625397029947280576794828254658757725337348152552181217491853463839332910981935723571981248029652577466850031236213994093219605448176704875590391309025473826833197294055813233023379207731287612594868855830002328377851826051776151379475378653781504575519445499425615005148325813081369987538188425640871508675093624970227782698023356407969870237566360374190685080026391355148183536179057597279039737194627674583456253862842214924161168321560631627651395304161305495578501327719106919482286790126149391084367970077134404252973711898938908598893763736604913705918400531413923923581489483866519119230511183112947013326814004452260008273302115541520133481072940642122637181163758129615038758874359650782765491303431929585267293656353146718026348427550646537749878795590591958706828543269422513246916549050524488360127314433722742653376641380863568509385585080189129463578606380448743162932001795503002084414088638762639629099002142190584134166723514465124104285136418988776053650189134629791304226420249630367205045426046754230227846433859020346120776028664029376775556094257763711983141718529106347838268528177732787954046537993290168279717779519201575717932062126277187699149415898401788845963067628428537420618658888059933313666191634161600229412631577048032751417980691522213117338107016839186539740854700468449679844262170521021308790965156894249243079351154834958958624834061143730878410756726861890475304119608237198387722416397000988649390064219671826904492522715055528885665525806604032944743368640415256467184748332728428382978073405719583000531338544465016033692573031118590420592825656528383841131872011386132338732862866668778591174452681049797046184157377062727769230007340727097743351999213398778433742562158002690827015273132854731766802113726440968283041729957169378528479371524493125173448754517505540453704541690214297666392201059885139067925999021476378389943444689442616918738271186153117951030724648362575133373997643267675687981475829104282210713019787809964234934972427646111819906285838050259051477316101028795703439068899490558449573805980845900670044571691318878130978583047933352172755355460916711014975199651628844662089834348214334782695809984253616533678577099351216259176833439278222480057171216563667862300073969112387661174973033546079613038754714088172976105131307368659148912018984722389979933697036114169532978922027155300746194236708847924470485181751399472746313191771406413180172100863957693121538722962120243152364116302531489708233345716581173711410371354927151299774519051847907158540614431457883354399473104821909844148799869245913604423555941987649315072748781208840509343961936511521987235726055829689624422796232587175472554583739479020973637476352332609654074868291617715977052273816645150885288682250544614539394379974283171520810746240034713151529006333835817326770287793841306140655858026417788821857204235760532642980974342737438770598014950907303029867404295986703974770551506169781759540679402324273618406710163555172580281442577801345802078975291467358384388539881023474872736257382932088153329672434860628157276949793012000274512360235633319431658057741017484789706756593820225034389375691755078269264675339998717853812935350952629815638307059884722702553939441434206010773854495956603401874208184665454642389523075879846676994915801160768146184406926671706987453911507855690332643391703123296779293957170850665283472563174577401568396508759712947723328876738542241189815991095948327201225088087910199775726272747545067836305534434263312507666344313520225348785493832383449017159204653466317818234008355898774910182484526254564989026957018798874837160549534358265929307914310906214663897887905883476750239769904212283579883969840278628262714192161426407759367095597236864175541249461125394231145193416678279878768362796240012240129819384869809883577224830836314001233972214646245997929382325382815086408421100095371305813565772017454216866567260653540772219993794048480629053213456124658415876734436782299067653125225555302560857227090435545209285217894832727693736019563868426197209358516240413937461958564374787885220611987846210712838334386562732980219425777630884572984451294712507728069582614899713491854507972879153430736394227979847226244653243612906544510248608940089886805021567978624229385444404493432996387987335377506670540550418456969396448171712047031740127103970381198559855062629843770412829706281159029913935491864074890644225171708916231899152437827622412576687595581428593555408890501499255980351356955254610171710097394797984203675922892112265992982208398677703137516467012192677804987062163555053386487131560985015624656573726976763124652322387362882462513524073621631631079221785192340277123562460615783243456438798973731898891907180467161228919151887158827130599509888499612232982602376693300858898977858238953971806479557401725829137981641891260297970276964168344758518689241651600519270030605771492617895192686920667967849676096480820338640587234534228663812997970195707214510494942154672151743670536899858246681557058434218163786245863015152208269814858698897020917169279695534879753711693961507808930127816249853848598820079168629277128695390695857970161456813543452050667058753618166790234798714054324742833803531930413103716830197242735869916374368452335205071596906754187685089346309458186286130478843753846835283250340344588241288614633072686262387642997674363944409355217813526813158762266593876194810786382972583083151373124077200932562958623774643768265531092320503970754768327927977854199474012190048499101065225462314911579895786199719775947656871623738497282222308856040137411385336449344153992732795638861156243693251037534197818596140244382929944900215482997057181801955408033777977689042483274303964743969678594425327714804651949262177548446816900287714790513069311139722876532925819764632175552815315634072034165365784644266823863676271543280258191014230803131147776919009969849188556775376331057089114048666702352033737967081774368230310820822725390617639961315648853392721342442200845770735513792366640371069839106248000181113938036196906996277957512670640956423885190082261594757915002482004665288312037588840299225187837017800302673339923403079535753025066250882802370419094377650347002715884507897603437084467952186706417708560317917787749560505210826641327773733149114540124555587758830950394283312120557573408399534073624901790166750836203717962172061591740580962531889586756153037109193485102296656877282576888735462145491274907498200521399962837438745005792317342930472927177915890802296814014759160857587869658830137172222994692866215962665427277451756681917491760405811593565455620728929889626106733482600493314596924435188420285476669235591898495747657720627394342935658648398777948171563458295703027446993927781309483199337844835605232985460305440133794502973068645670656486424431577062308854525770133454486603162379593913827053263088304573572443861253484208290386978538250272883516891422531272117390571732505755035137787905243188363437918067914133231219536578703896881994149989475434646921390930775331165098997566032835194239999363165363249687236299913833385701315401611919594487236503152109838032480684703056934433353693957685454444912339921531726845441074262742968413446372087196002462848616017249073487828007354461032838676326571440770136311871326319227434719998547086099907438396179875214625455104984659910042495936899883057492507728325340577257805457662230011110203848027457240043632764288461825637232238013467784940491178297869597618918547036394887211899388070698029027415388682631362106246193309796331955309219586678057228289835768074513683830812129420010608264163441072386202810123510186167648480629003209227918401908176573060180549550669509598752570538068506143288090720438152750469379474033120119796130615189336395696508868733228338375488043901283469178715652932226167593345286857763951959939783241274829090520659418950105565060734321975806720632897195050682894314567108525963449400139972102139019846484413455625818523826014156803347735687114167279273470360890456454109430278148923291859080731228085425559952780270440286541390270650782264262725038049057323050958352685264884538745926984785256275891379825381469051472115847603535261476401738932947694102608732753660473760599424342612880847233852711921011812324399433888148100968405773950617140885227882301593456838666337306505031198473078089187146586832087972325134358243630649020915138766349999335810343889664554887359139325053994594597383140075736283010289901054782230751410017613032846673320185724936603117385479930603576921453276574106372161443816329956420266392115160156557288148132973103683780257936724182961688199955866652242096622263560655140600078925422681549028435052747684336104264530477163591503337746670273901491116601039436050334617841481209559247528171862171445644259141976467841989578827265609430089806704701707071557266570426597562503743442918590816082265572997608628621733056561438612083146994649417127587325190598824694296350807825401036374695362055166019942372796051332379041902720803811611690028899325933472632431669026927280196872589724576104577094512714278555784949175148048564678446093492902813323417357174577735389129109272918397390314014048887461845751838544475160704329314008485759130119000125811674006741753247866879759596866017048345635100606075723582818105774821544585169627649831195078333469934490064904401554225373765815876529584428578174979895069678967119456684961074155386706948906483375011158025596432460660985988329890525189388833392014043676200072190815594454046692797285756407624172186190824239177219450984884884182709116771128772118411601042444641147736242311901564779580089243401170252961620409211166609720064005153628541329917446987468761827084634436631918530146540471392782906985933405721254298604829850280139069332825487337849577875944788332214942765758536538889109839537119484452836764586004581827096855923913848723835635459866491706031126501444685059126488224727458789564787169810205335404574638023766013159184877725747550770427455418607093573186785810427074955899774314311990431990686810822057363699446037698430425881835908794474627903639058514940415807454119120652338493203605192122705642712694148516402296751297263198261255791574875087991170071202112002062500061646054401529573922926532736982147813210629354460533304450645558442111800442544295886407906319462338110917181422691951764293542542320166949346251455453835332900708338745818171381722277324025679504391533766408403354345773309250752668331219365486145212546503359312557334530484570598453703725983825021482246974666942880846275736439701568911192226145796897664374693929223342094319917228004063985891267182839941993207324509117099672715183507309223153826889597648975960371990501421475228435435358532526657073810770815139203946935991892211134822265045273220571251449457282208323888833210950509198027989620620715393214794995406051926298454466505748808006024205478464001747752276673768770844326470610594186849149282775903474423054864048635763103055129652254249034379239937289221159718461238514108080408302875970998491858641888176550536059863440357574605592335368128929162260185041738745651914113997209802550869584428524364599159338053938829726909360277260111616371434411094213423574720599356233352443303677514205425555973658758803949442966498627977792244305004412461294058373291712631773165777401628619494155970284680060628358287614857507178900082378735382643368208212770662716094589617200451969234678503372980052119206625327992489950917270109524774885416236276377754977673533696362593175731515010612719156809165160140173813723028453966058071572349302062351528261603235932996645508121634442645351623606371387179518374228867896121954351180201693609504933219083661090421830238559916281717281807542465729038758754920462450944868225899975186201134373957592091297008328959885233075139571060165014996994612295125533274671284158987817859482428678465067780229050481984584056014071284782867202707722986538038472028917044915513822217024922111051423597266522692009774418238273765090221177910778444586009901008360645067098606267010908823045217156043592245422594568823401267183571128334994793756312516711168147148515926117423858995459946076676042894906463839812299534529633369677207359220437126034097193338908399272583428634705996581140973747768838303105845714404264561190625052885102826502746411990665933849111031221191847255641898864902185273861972483050402057168112551779159884117808857915446941421656662576790300343174770014397133383313853601129280879995092578642721608868691337682713874649609098051802258047471598025684304996143835416436670755766465919951943272967733707933062933697014657439330280722406977298352605349176469728534296311944304597090175664869954845680507248884304032281012572258590287941324527958414005863173318204426660603500984516347152397505937379895105582237948099047959970334436335704562849660043601662744958748830619737515298776707563462269027182117356549867112344578181559754745700754673911305960268986172257534259317164669822479488142066925225503469512231971525419549716525962958515279966374486181094353644815521373281349352571364980238293763845407435309057901928080133826908738021601767837892861712996367652257941796015280528470423146883328838887737606618425468483294977293736178451220561887931256940345713478959779154906713635588759565306554175833577212278956530647855702077808563057045620495471125093363589517713530202085187716465889109433025794514039598835575520804261831763524289152169599076754833161061838606492859659872466030078889221715900078070264409398773854036535496999989688697736890598446748003252458705371477224924158515556046512957759886805763755704297425193607903460165014970462877763025507466350551978250032090977485148832801231129002751309185247039645353076013651804386145673108010215388516030764308149902923545469261695105562668091910796251932935889498136597255519035615951686004462104682256940249063453745316468080473431441760216763862521456636082424879006618455779675080581209746410872896138112926685376839897965100363082280389720560557143150958149511822540485150444882902172377913228876888775491280686532105289325515659688885114775172249116254520507962875530084539624348783384591400028203680436753728560536152655124409624928965221972378513547975573635981295085884470055091558242791758580623006942794954121175609898107850215256536124592965072342509287223835406911014503195508721427656576341356808169124051736524307430899886865529357689177812777489652980262378175028909562554151409275783282069612487970747250997446162155345210797178531854424028235455493293742484648990903490899360217421690778015628199770995984968648603687547444854228987621570403913486397283717117279975767862690329493305903279474075990943434166553300196848084970345284608822589426061120366801004668698681287734717760577921239434856643030946036588823777833964776357060769195810526481758640842945005539883268381244461223035195895392999869322982075930133329855303930832809965287128487350829237795250201848926241652804989416400804954850860930441782707949101927486022305407178143174606123424869431267271958534489807629406074029737602182239266554291107842809069870292025438000835156186497290037654217720184402906241500462876228789097170322082753429084509615296873281229453855660704294990767252805370327690906049841435714775854956309537451807327330159560608231759458847328458749864905530891355337479038360941177788193860783958252487455175372218081328689297107377971515402722901183613022981113028965894795884908505513638269889598195878918566275167419403957429363594359074913238134291421776868322163215485766398678263397372979740928343317931518977022537368051278176126778851015651355062653004902820906459184852355773779567490151020301851069789974232750392957127881069854308386949160395260289658518526813016176234056218690565976625951239271022503675573765962610293549486966567600805041135611592005292617660621972282372707231392480493063671734754652325872920238314039160359878282077003669769046907714111998170296820858314470873309135683563144830736208726208514356250717706468168656723050026031869837815423667948688986980760418695747501386843577226878745948829552065309934295176122638554771817272088631803777317355868203792996424888494255120060989839255437176442559650660872781395614285416572980692280846843219027382223076374225250949615749754057214046970743915040061901501497360499095337160954877525115585968611949655494599839431738963842807806544311074621614381866183403607683926737643912843202895732646347569782949886260160008902344703002621756988945871140586644682303858294075537017494518440645289036600311389608045366116746865080729793410910553955922470784998231198814040853784158122390705246167254917676908387884566657226942623847897416833984633311584525973883300937674631691919646663131952367473155385146124971332746904119689049097828677834491840205875716682393101219956106954499539463913351627920385215901459589935489057404200887789342330736545260029478727939282213287875221041684010537954541056120744921951356249469758048447734508274313269767885991754282186995100766990790347920015248724273318637372802091543338511003827855627719196956390118729163194486608179765907868242441436746937915472519723622883324477971920287442330145764790296720862741152742780537881396503878006568281384483004774360157144784391980580234770903342363199089397222813196950774523109565303858886373213040092864189700437506524510899736805331433228856497551923103202767393362818901042576626353592555869057426775182718953799550956787356903047321173179800075191720087449721494909826538754232989980684732794851473198767295725946660218293133407976911400201742977093237625937112607900705422210239326713321174076199010669070063292113082473079811383920835096136773552193611686574909516210165543070221084468223352965916044364905917366854793513304947869566122579674177755257345878697389207758771158795553272917385398864038820308247768096048082197827174535002260178183454919205715339904743569125262254134289091445050095419093075220214869841740847073279515274404582310076435091817718443628416634959159228771175594198858462095931158668632088193057707962595038592147937285051647935468380423792789349736322456671982455006625719787119720883926361740226010384632521670862608629971319953518031756959124165754723610073934645955659424858369583894605595017932978195035218334472060796887813179479822890893760548229258703726166017447421352793504881957657155139996195133425029741988998119504377099270663933672766014086534071883757786190238494331495558671044564684363827950958143317123947114022722745644419095589028897261549046770647789106510354191478119558537455249064185229372205216040785938896117245777551572831614752537061073759214298401153117791989454328027269822161991511483243634529150005076016994621141155298142386882473774762094708482224744493124396737472987163537945094981404744821731062691605811231472334227018287567825241860558117395614070577476331333047874578740282106945734026366152394421696852623664728032256306137791981193054632554865670217590588657571369407973791861206138373058774328369083925841004470894784892617487285763171105833127775728879402934113264486978450069958117542855418853212443876413959181633399269987478354895297828685845235993428291328752815430070162918861089732710266064334172140070617232980366652575648768281010833938550604323298202155277671645446529359554629562449758195687674110494239117925162359904982505027046345464529375637407444009946141180715332242977636561827816404861111854373242421691426138362751717052416839828972598704417526388197099919800403561974981469644287883903590858929050079360500929623559840443566168151230012193750587686992012426663681777363637810415542768591564393427703870462770718190080839171717125424648053327808590688517946823888057555072612862567752574121226757818278470571165796146376208826551369188746496665507288581093597463181320036200419774282672386167594167417671059675460680172887829672913002631820616844244505595678346119493840727078124889853277150022350558704679602421115526327329975791636960122488003319153822392237407971656202933830598244860115218425634422128314040030669294796572435952465703293960047179080027936063363610439261806532190283904494515454418903803121381848955440369256914212335673687527987299296792163418085804915101819806766168592956483957435846878371248391249198122613464298650232379176754453465139871381262925299565871252741062015501454423107024340495101406416305159083388102547945830656584279920900056955333569978905336839051801685526323054656338996108327471488743972623530333071244937409591088664029505672520762902854554264068555257901874666173877116764187313327821424267672590944575819525529680521135863438591729693836579469934229352245424704391656364590165329522305131102769168897290073317454677044089691981496438967206343854290231981469966352834762889289028935786217707976808990710887607789615993337701906203753443475879323325210270623645214598169366645150964889811159093294936143099215111758525647888240941416977252998472873567494662115383521988090822585546465197531033436370616470409399458974669553388522895148358598811948254009593298269638316785150371185426392424975480983127013006246496095304412223782965075751583054059249914968784571276015299219285499339858939050968287325397585117921921337382964844182697810307423304855303266850837663852389737486424311200680154522627708233852121729556067015340077607685360823581671283412154282330306301458815730552519297880157151411555586719657585461649131129687665292278138139107613491805624831777206025386133948740948872147712902911676978894946409666956362447478583814554374978179362308556796188593442221363299441941917263211104409030261175345601691599602945172861262452755561147583022777852180896774638113091879208448236157807514074723676835181739667947235461016888477429777691197562197155106773087203746695250080732409221836105095401501811144185247325847912054208940067283950384476640338621532451690111452652218717226421520868526191995654053329790156698669152334051672629949939294572314932316963074856409685096412826928326022350569201378795036150125404389053408802491546319405993344342805356807704286293840812725126906536347758611165004567633335113653680907379036936324807489103413377445945542851555198133806436314224826891999459065208278175569221233626551586724500362873961164953863565453544321148182251113451393024384107278044275634000354058849862869055757576507416400489487684790389052577531142079268769311027234146307268891202603494204101778536002041169422540489276593323376635467449382205903096166091158767980845707170997358353691785389993866180124542495053823706137228865433554578607628289988194730889301264067737032694931819688502039714299662334324508101440708293433945938019152640822554799940708407630467301059756763474159268623296268522032395714946627588811344188488859794925027656638785054492211343270986913593021016213226764369357038832640767390030555614430352076553532588854261681916459548136562603793250005759674217819434745508915289023756141966196031509058162337412987606755126522212721629237414982310213102262036418666563803970080945022715878339485802350674799683985792070571186247056134340647237474973542215624722724799922567200894836917140752588831572874846068152739340481280416641905152698844962052818163982407239415230117532282782308576199420023515683695420171910180223034774741504949934063511068501581331628290730547930085304884649386905529532263569978389789458482248640383147773584040500765476163110713703154244855884740924294858499603258504988161389541393400290339177792684836968952261021939281831538560781329933617027202186588955138649549531855196336822937314761043218364397206370192893588667852922577509390091489992265044286580702831635023476806219783022888010251800123211926222819042100409882258452163904990973720491609408516516368000910286317864831200096747393999763513849460302064064532842967047771349367448434917210416728107992901654654922719320368809489724537776316581470985033644052509941397285214687914765262865084513883702477629527898404813456166592783426390972010748163046709675661438293811667114328220270771393490157607373268048828717314308054381955134370167799099943421636303890158367673530528677777229139009210184888775285072342092614831173504468994450388323439182712589903306691809578950678435767676263248521463758761309859242873495429286358398429042268026758299545159253940848559620173828904655646209120753295183089835061552964259964949898990036664898191512669266390459113832268778701508331503992072641568790801905926267559499578723310669891138646839249117455657496792735607227513720330390706110906005005544486488851012737850117506903785336642036929587526711066728930793302288025164358138861082204923187469235976968880411600006976119163560811052546022650349609994407699486004320600445782629202880819079225716508211690405517561919178404813117328569896941921471380331940001724493128706197920059377957245040117734354772427818552134088448011855133550086183522107218823215949922195507689890077621134366791833097854283133186449250494456161292738160901204668576031352850932229354071114201248684537344924007626805309098543230437013165927543520839245637399992536380342823723643698542518382700659372941920850953290531503105452418246109994270365470912412334989515398273345688985934128585077820206895793657874819517460989737194910194190080755426144958718027380249881814063241787423270628075794385912712329338110370980894046734353108871555949007061465215968932391081497352255410547793919574109096540991962391163820185420963940183776270642708764827085542584994200477355765997463924092178162105777256035218023204979761351189176703395356062785838823700390777462892412241922997733432936967216471689574097485400222013586996213413458851451617713357752859550810065798343986125721398107363391046823845271179544193120288165296508055609646798425426846419813230493200293083289114917346584845922472040117342885710077146916830421857532945692342267368027289501074183808471468130369415554497386508246890974825931004527215405610388287200582243996840602999802613455488245381199157310459653816920888652135828183711064680190529092842734042968775301113128136238915164184009118174499027621952029792296959438825363895184769864194749735946426297735291794646208082324023245470085860733144243440511834605341921106444656593862866645273237681972517162428482463498012939773459169705526624902015577094414594539611772013281142128174452773306861361828247502087452919907085145246051220974905655926567191294087833532746102562344588771350250143435460145055425084052454528724771931000041156824682271224107439602374527463120196689395177418279644645108746959354558305589323836074924391309178419472234843876217135472926323776374585514072802954240069219435255464638097765326451882131193130323557516470764387094076898244986897062759610265925735677379067615901169839862767224808962126423017523631735593288097180109894737115552493419664936635477581237725832543045839483389296620100156684704736167466515588481547705310916522892051436433207821574473690236355616765681925317769489591885641766473084794173139691609862053708917314001141997366224627477306047800068317267402462647731937821077588713313928088758578483772675243125551798268145777270282605630076807106819584566736002434707623193272296803103198146657328881139116185369804116288231034233861239377794849815735543567035306894205251431528818905513420431181504302490733394495127096798679901215245208635946287376732645924507910692045791916903811967733347634360047350739365419010746762290295159188601917419007338026621756385034882074423298038377680539913250066379420517648722414002938271440674114174472907612394746117341985570806587189593205873189799337447943332447279068836337347791418027204679851660287442828565797979277940903553543039129918606819074555395026020718443227711104308977688313378050645450555218331312269675977610436764757476394799326955049992193982796321159208294321887581274398961804819996279494099138497224652959016177527066620213553999349680099398323979509820130122426807408734451171113847881371787697855269556581813769682133243846201537886778850184408666157665970312293075488320549964471429536025874611461878339012626582748707034172434770107051799938888451985985088611882772046624124386382627503043067039046678690988430934038675518844481833896747756795990699062248103403703052649934977952104595915803808507056546747047122044832883860139993893644594952448914268964575134547709683897065807146771556904435330623293338222665539232944128135850909681208508256720601712888579436134185157156477811217344724839161858152989926220102353432342748737355893577759262535792941953135448582762134617733942644597787883899552645856223560590652287382532105424243703057253138454186905763232000333683328082497341706309153450313657279887239936170138929142362743491678201357050282979826497285226586579810629377950693687888646490496459233657541458657183142414310336787558311007191825779268013082301371766941084906685599987570367421845052902030557244163211175554290117734516709583904786900985492450549986459864367734229373329244340286443997226638366761975189710036765709125996533343360213072504437105998717102842766492937463149230616551921579158600804350184469707699033865055805900980709858007549495653280382941354751414465516362949824813769795725646445281967642600786186670746499490694129794741433513108726369777485276245846646113542481878824158889162015427572850189931362829950527435244004402110248168924973030486179445723461544981914648593047658274636644023804366965527612691008523992563526562890711600516455233522632548948699469643874662559152879534607342667449397502616966689341292666284163642270881370806072199794239204414955063686444128504749132254877836665596061869126757709415454140051978529629884699630732481253606909857216708293548415143341639978196661873795933987368335268640728352447185067365087096000904946659860191053714779579067791939513342566981362842296446069953256953748746725829009480469075302576882061293794198057135781605570502195650890903203078122726564247104393913303788694444247618461103501825110541226375478737602688916238962440645926352752413512387650611077383195351264692914681222399835006608237123872359630080323998777087983810201662284616841121854716592690754198965925846112206895617530799895965234543649237922502699135127887368355376454421432295657406515645848742668883247993180457493011003079275005246715075940208354150771323196755475466003840501234058525564484660492837230372221588629451908304800004664611116215525485362488338578385093549836630771627074122416840040928506507543634150441044895732546196853883434846711741999771519559849022736559589112508461121824645763620667402243010239552801160071370230562402899457544539303974102636943387290361839265384340524999694924232393103347043139907167412169791892173704113889348955335825491077089416900750365605068043798983717472588577145335001501448338551490396166885874407145218152121798479305414409754361658938920628203542913117072121866991823650436780137581053338420966393539162211609232385199578884878893562236873183693127764907833728185217102015889266090259024103041564961091145461840126483108101185534518521941479272433967513469078846374213169307412323228042964326856201266749519543836032798479984092729182676712845222910757052672934631949492649368209452718981534328858145784387208739851455703212853841641761240180576636675707022683375098230808732899734116486602160268979003565484055502821061272805553827661286304154786998809397473059848469496403944844160494697395351028080688678434664750708433747284467016044898173220549142253770003994457610207231011116270141263190176506276751189583326157317511179326153419100851272497174926222120475208667544673552579034625805333229273628887622592656617311965921871061686874790524396678168084228279735413610747659233546479356204464554570977383429348979883506805703798674020909880449705755552722446886367661882069018546430839184943519206136721687121958573602464182334402286269816587624952898207291198501731376222868771170849319398250250986854167751239121147149252871350859434524055110461179051337314813584945115451278515122092162756511494706440479356862332814875121292153767630214066525401256315424075029558599094212913977875608902091603636549108644784024813840188254754762826780883187279852150201456752488160051321664377510404071171683282681099102986886412297316508527932841017918582409385582973145806404474675132667546373667014593202035672460715167230657805404204740887400597234639419935267229823227617187645757079078336149212753560220344471436761783858116043547430136015024454895090249272944565476398488607522006625459663576844108924922292730940453159363083833706042754203533858752435803004432507104973613993852134617070330450410996538572865215722161233048695631411189198024166750114464882198184842920414745394679299025253149102737130473468657160961521632343297260223969565280115823472599692607626993024583769646005128166833323930203869210587234281117766781342003754385147505955573091247576850827615914217882047127853181126843007420737986831929615754190262784485810053936215971930169984330816485725679189781451194488524965017697423480974350991285223055466852204508252600969104800847623564594908315603796723226843175029013048383216085291037508121488764851357535823967865468628696869063641380145921135649068874100573802031309196841400783623763733795911153278920892811251898857646140739708232651518411923833961196897221058320530598293958774585893585646919290741727034864702165359521380098787815730169273866087848609236808643338656189477870574368562269595253192225261335473617855470871173197030596016540641602454199468678944898833158012760061896408423455364496838983328335154452202741079273077994467639318798750302010232199500703601305583810581036311185383301621945544404904199500146497921415234566613746084427702668386308175045172069740542266315721230695087897130562279150372442317380856153873818203104229113207018502369087121951671215836038424177574432030499111085477935007849550894590841583475091000944202267704220180099837213162606024323543719719328449675104741205428477162822666842538527291961281020234743092090817487491921717936198281418799366921439774120938533639901750243046313415435686914659275058480119590793624479785888497127733791359394835079308229372776588540053043642233131447099344351254237881215931024169552531552410106790609647441185416321535286988404421976630888857777730663789236512063015339234816236521828989919304690103006201510146054580569241753771966045475250737090484776658185620933294898251423352587789462574498916310212807193369660449139650968854576518368903788526480011788606111520690830954621347650826270200292189614470058936524388403513363045242192376632390180312249532353815477511370903677391777445119650366435937681086604945362629602118471245507004791901518702735684916988986394093770634500115742740440020260008019328563385261082271888506091022021234125227691121790332125228747192235373000317718401931696905034585191617724010355444868751662153888460470208291650951188778528172528707664649730952221648623772281128388271841972313987851994112876457570883097838245982461257337588062565032073017998157892985196417857036466043217049072825822534725249382671633431015966156849764234422998054563383048731682790580000718122110947529291774584534464284174423159421169975685393338428887555665648403312971568049896349026752075849567440471106857891175063969266678400412151279609529473120720346308752523089894037210974772913107026334209935807473238981932754235292868038732728059864056612752919586596579642760641092846669375909399835716651391048502259050555006390013546913196865515153671433515794781786575586872392641458993329473491208673102399253837340146972476126073528673346536192539972984929103151523955593287847113106319349302641680876006723397864471179028583343187168118330398313084718216120521114206980024312914113892660086399245341601415258866392316551703718380734289668165333307323746989114939666931980176464354571646869780532564810926586204763778353897225382764903450268197048935620520037703697115391830201966338589567033672401237241431418586814526717765083631541279889932972177974138941425397135406463639116394451496051528617519971288049211069276969411350601580518568055197374681776092345445506642422117451377538774722207423558585393920696133808114775500261506438204742434638561788828945557377307421578043130081373962577657337056831270887210633014163905837360550176143695491004115348363084777597917690490160291617738943390747313223068481145512326461195989326179503932873692170952896827173818787770521811466365380429369330228113066713065609514879117581882267591267873282784377958871727073570343626897623677264861398854358654673003974592544589430425914753667932557134028450704198471826295300729367947520313658636482871408648598647690420635495951956475057138044543401512175202456995615081871775866263544937855001993627775159733155679749365715054006261576255887799545739248990970094095450620780076929819511868107011727306594998815230677198192837499563454292469304194978702297859410101679565137347306148825868234636574538516595186137457315937536418737958395300829011121580085002771047929061649924689061298049401905920769992641466055884558266292280879479887989290051313267516533296157574930938482653781631282963710272245135912059097769232287589659561962053263877335696781332855365242511151409297170685131964032459365902907285599732061394559619744417246837781666113466041727895106000366350606900379845613099665456551765382809131022415422846520731332760374133842908676978120004384031405430334651975193816350207754849744624927115438839567776565682015934491882907568395520457572856342351760038577405231538092098495539968326284296542117395570893906594043742830297145990415561652878121648592960392833218208854866332573409223284271331888554315929362568024182911981000928174901333023331854156885270263527598719909023748912700510381575419013688773523602715453569437926893983579604318854808712808197295416664914015570507977914372525347680343111983771429975727022956933028973920538537879502094877089573272102271300536285150202807642523879488059995338817068869923434043011540609337636386604448074674762315728323875535905751432896008072353266590938090114599682597505153203440190723908145786680204028975069093396453458754086370981941025706821009252419617492714338676146179077288723936570214085946625337491385306041159674196167129863672565893523532815451860946025479323507056979746385653871247024219518141798193067972468397767220261448202388293114102764842791907083867801328993571365255461106715276187873526900171754196494130530011317227283882317457570201193738293624703446956518109403419934670744643493853190681323916142516413033365211907823367021036867075358259762552659745458934577366466604242687144191419063958691408072051503767479595693967254678306256415296372966396763840826910138973619860150618363854022871760228479068089625609923404794218137667517838354322781314740187985810471620738223382358714676911689033100791376968840325203915011253522781073633999105699295914383531866593227564286658633763447116180327152488465360092813346979704327693551944099073068704016524291513204967193698016372137101280767732071832741385862397064165322400670835904180122349440967608154321487471359799209687279233264718206460546483432327854267759466297640686326954795148158590724165854370403553994686958361965078391287141532464998748080290230441739466958068124391355918205855884966281055834535476950848347826728824281134880812159980539862091284328081025692185765397816487646774817005039300621802992360146276720440431353980937549625118364582337041794906512071102650280252190142889731697601873772086096374393235645985012259921702927933082605328706196520228713277306560043354184503701434566238156186025918953344180781598030855901430007061710660786978615098514344834895172036852610448053340304497667316286597032884344382891233004931715613821526127967571687152218546108188079681211008580953791987677845016498458973961719307606394683296648020776268255510281150483439906101390629647794646819386112571181050730609375035543788653439609119291143271496057746695358156370347925431131098652301570093280839905687887924479454521345676921557887109224273080210522597646933995285490302048835059275243081891796979375391521521888593688221836979035317611233975193847538640079424097947505554111760701595805427346088311894940985703452755710611118997244462801595299710780371466715983487020780530799317428386094535383543852008053520136684584944005896400735801842440122187462346888381074521888883048312097372662006381361619303028357042920616777550556486397176786379838304035152497009123670691419704191205173596085732736880946913337989380339112094343845573129899273796451572189055460506725998878455784392263971515598871455292226479435821829326995588151499922427501212579176524557045782804844725541209770214695047597799956730459273318295184757624529555927771503101277700674206937053382151959464677480013866301103701860349389938104779069228548695328322744078311527472665646980208522370022263785320938822164354291645589734084225100365568584938913353190201796944971092471894932035226400688912443522127357225346920732435893872883425112264890414670016174982277782395405943831155530393777928727254508876361900617300000806401385469971454126291115674876663403273676063955371677577652297124678712016730591869504010719149055262615783088272944198778315779127253755462128226618197205251689927703498087387825454059757081502885154963458354950992665608276336359698444490186681206010481414832028766592752144555405858964291410918657821932134480710704019116909754491409291261619825463412898962201492479364274410070546839323430367838655905709949159480176857591544330919799793049526453175970278501298759526732104565715774655172356460848317426007155419685604649464037266373401806402032358464813640576565392665425788871304607556978880244903746877460408089323782549526832822387250060168240326584361142684960088750579731564548321150184838449523543457807378858509844857922392123619703703920630344073574530045682315492473876673581973062914030532220286574225919569834827279740340472272975593387319778829836469112464112177545134758759109570555004457572434463455606836337568497841106589750990305170031043093803897945945436756227439684965539646322957414223434499525499308187089413075351257261530684550283851644430092617177923413667328168261233845933118922747551807742534135370455765681730557683003595849178699301163939185797066488843490060606459403540271739448368164021913984857431250686835468838919415884615218540625333089279782848374162964892049067624494385140283983582657755396762211329296652883091896955633995389198561267497716455362537161455876108727465265674076706152094192904521887302785309243694795453246931420735230985802039898806269277544349798716377014625964574878517330543004289634513709599926003986363753704491033686299412922568895463609416852794961715057049037020881214800501874037485257895709095866457404103624325820733567183521923912284940804826931963684589131618891838998066784842000647213156129298361403687679871181187525369670264363978931182647255533409216097219925737235638972399206227540652965758134995687502180437172260206656847748955710940776512196550111962941098111407800385115340543181132419275653036218237636639793391412503928889400939452823231543494126189894723279151474929053404067536174562544123554655739843226007568456284913697151906252285334844459567824869035676108207381414411021573017979460215501175768589991968626651355899679782444815278557955278354810885280391958225819452303655124945846532451310549522380528887953400860982337076344809653234411514981875953607096901483952675012121289360178742561060540744058613902449084464940279017148051901568542213033954791651758242563805553591892477797883101149902468756725883391648959396548194177348817832152982969575150639471676777313026119360446101790540429615232188540472883254757768020575552845000962509251433767140181372291106008384295241812332857161674891423500818191170102018712144395070663328351639557441142572434311581769875456759503459225162493390398720050774757194364401729170360329750868814189975370796968295212324613297704031300044871480153790844215698888530471448496223765749780646026710945477750038544016560048875245020432470037342387357139954760833659332757590393016284492924858368452717498533745612827453186173549222097508939681500112672073071811744946334922367082788932336147819972629529786966399378009736119543305789447847283455337984051268151770246006161495524300359748848238726075107356951065839660918230460900328264694165319568034129476937509761339442900846921085369154992963752740723544430513793264808818610302564996858492987888734415314878631713840225994779490319866583469642937434304677678388452235600998086681723374808927548052096687791031732066855230476893203401153559182819226293326644595928434354960365809576995351522119107003421079422368669126859742736669291803911016085845376306643037176695575742999309881161361452349965061232431680900225838562796684349875449682372329861027008034291275633696447141681300679418705510478089651204643134567535050861226135598377869220248877462265214246967064985676525857725257627225475401348814486013620902000030408686804255963456863534901532917759429621124533469325019173187940683037724578510654519858843294581904725459770796530103405203056140835550069306714046965706594558274568232210907543226826517689250803413933333370316061339809241021909035198363948197729517163022442494277235763061086080890218905440734225531245602254069179850351173236306112197091561368883056718259102502665846241450646754289600063483951998193639966329628522764176698827601790616513201291682037150824306110422358872866698472809339504517015090714493759640079630286512450173181495971782988348238956349622153571706759477448429757693475538414826951450879214972894320628851151930514786866477943266394960544698247265259882730177485180208656982211598223167312573815185185383795879493131755256773656507972635169235013757902189107152750296606546688189246497320189449023698476836649716190647754226410006308524631969229962460900346455302890168399226641933982721023486601125749332134993050721491776328761491882497083588802793872915075060820134924188888782944110825431080662997434184033936614009131146414845765876633880916356928942292577555698286993831508815391162654139887565515734045811434098089218106180994924579300409202018891198947062015989900690741082296454609121450818894210422269775606536940203606727369285311173565309055881624036233934633551213106159002031489062544288417012774616082462799155649828958105251936316760087190320418329993404797015429930474195526394559752662801276923088811281240453461992216391646405564952495954280671444326112943791701301118221624142851151403788700275053608414885010893747681970701194938367994901833926660468637380675456390565512653721621623643481875567099522330947465535298513181153906316326196755066444885130978165524070137572830225207465475767892459810497892234596716120822817076881877128855427482866025607807839935189956951234985516152439097320131220512647743463513226257417202562511384492594188459446270360876639714504825455239216683186006679277562386794052006031121086731193012249930688165801629108440266101604971532651543797672669310072529628355099615050677341577997911053779108754227805827158627534399762830804798306133663566516307758707663476599280260174762414139829870201591418716785172696600809049162647666188896194612018812808938267254512719953235197911196917554090001975230980964548930515150802796124932975787158987648221610626927452049995687487682011038492809176923088918797402201373309950709740094894754352289978214291213235203211573291365160541264051475922484391704275277341845754292513427706884114859277957829976751092134413039716064820634281225749971831528229099855152322224446282351321299053164817159891243557478236239687639009527743905899870532485843361083270721375219504856058258674470231866827763717555413227158968702721832156466608166207265562866356302717122473597136331315334741428021764630071206691674831581349276714323627298158931409348957203518755648919228453174968836737730526050520890308805023240836293546119091134689762864416195400915648747718706777332392602969087526388200770395675595017161178521831224541163807808376249406879779723799024449186829476937934187170467418589251297068000127982890674596582028464917356800266565950961947683966589818494073340393736506259886748774181579720139076871108302192107245961851381841602309924410753581638287776666377966633582507592506530730581412516167787687059393357188697862044734242261447994906059981882384674297044441333978362442150298875119412193648837165857204355186448086719062218611164039843305464036090804898850801569442401610246418086176421144593224691575759614602359347867848274947848933137917900018076546602704378670517211804358560813320310280072760586673354321127569121648900325297440309048641169439761702902610866518862736800488410962952828139859598818636339261510567717662863508229550724193071432372000318034342337547843977662048525478589819362354637562640599452393106240344643218525801376398411886048588598571548265703486657308078022684163614375179651768332918666685086341179377741655523940334299028220799894942085444496193073839551810229298390033796343762534583472350736955460131694315086216507490000016365377023739734863081297405088996127793519292846232499638605203548346329450228994138873321915475649942995288949311016135272839315263953402522120878895959298777385084548415684922016699220784045607634385262070791586081550721246788778800194999349126174559721330516164190950384134559423536403025621336858399898743562733111340054943826808325579177904963409518840185246414245976290034054134347291784169019334634308465595245196930202454837104390084066870584470888912482899916947614783500065840929568298128921204102997554373129624432032618454441745067100500706988573656872271346488165640304112955950468916980761264832930491571755819413276982871054518171813580835490430992144774731361227820711419301092662077978505285466902711597067599307233296696735635929453800881404309555156962274798287054308065053623667175713673107602671654873848076706603723046683799681927140148489614219876268993293258429443302486144416310013448089005297092716686616395584263980691746581078215297112566184719461408572477761107785515280674299832004051456894557915367626088407581392975945392205048989867436533090312770815842526847628128589953936119438765931824321055704249809711473905310368780673214666485032645931536059793623445705389591733838827786417592835578183295255638633809174505763347712540137342090210147065777269890955283813578561790994393924395415294335739498124988930878240157595848409313975945944508826902044332189649136839037441508840888946545945811818275231833686062884284274241665508212597377022562735064552783872509983541467529018248756583482307705572645445599858919732124124749648227796600339521446913643072765821354498731269007770481094636297032637331252363290477035239142068822517865286680181086657801413914375769066027398967099172839608245852635313540415584964966003400355259508639989269114500512640498730896177380616284766387167312495637001592928340348123195230832437638125475853944576729396631621760759793234240731909351773481907727132659129666335298039946893911069022274283740806063465623687066499297289390359384621607406924025863463469993824015043057349830863123014699559938719243333843774205104649351784482489093810655461311981810139605925563833875420856947243870862636778874290654664312016710658429269685623324284714843597262775329451560381487726838687247116523290276508161119396997954527725267228067447658511326415678800282561902195806675007539750619640861748606922513335551388194657063148458850918149716996089962608975269773858020098618146110499724349608110892978192969749008139746167394109462926905265767896446864813227364532057818199555138458427923982056495715783856235613895699142880502356254073641399180224562200663905398595904359673659416787755848537562200312569894057774712736777981480215120105531928425826843239836136788257950467226378045754856288531259695618145730248930031680339781166291991568197736998835520518513961643723081467815843857305928094220969891166407367613578038694720070558681533419031570960051706482430855029652564174057616546605015423215305175395841830601062033741994982222638530641426130829931689485814637880688968938820887279781674880884135040370485559455954721400408008405984131527923423748843960337596861063360602638550453138815651371927074908890593256098154172997956170109903743672164141892963625489370393896381800978293337434544802084961414729579167669758857708700909576145729704714265763690118658862474383654359412001482903353228053456020012491942694139505891578431482902963221233709499538888025628223361040704565613937628698269854091232219595593588574573822193141026140914634834107403375050914586253973800488860309435651063086805153197249827528328103376342041260635737868283753458823046744550465458912506777512628812670784289467861455555934689750653659245417047240523025451308554239199739001051559861457525587995292485806659814071601311254606909737408876851090658982642750207912542709390874906701280318518644328679943498265129246637424937770624050032918281297049432635138808968761277845044563688968258501170265503277559890765869245357805920111647285821506603109190775553851853871092688750236175382513961084532577464116660369105920404139195458727730335017280604531657568483086009857915035583826856985095014056054181433423351535885945277597141111689053484348001952919695951442097346292216504319729768673562898139654003521256410051309938657488623379668063928107013951246672612491190317387408636960422098873198564481719853538601358580047334031550266308883446297837281986809298701590073944906259416780854429505583843425168936454519131683611960330706906820947497178419871793599911950637502951653166362383395315985228105960446709756188396627673846131159191669978440634676473713016748463840308612534238232165439742961051499534013289013420253618259723396306425193275531499818071234062565655233122883137283122736412672390028593542569145773891822678798749444118345372130197649130390993592842436093362443521527671219704697061982208437100287525504044436826898748919395823996999733706512091156839088978869852596189564164088206550441660984741643954685567578457239402156585517212050226479553438739800091547642496024878192559374124847639553316467471993844371033824517198170398738520245690963673312117573904581512838414499751005237255825863564335976423923390258556271643401399923214417541029576279617975478028263043602033957026650204745340309573118604023755726394006553644530186917609514487433491062185514079705436442199074071448381011473958445149825694103898840837933879563419987806083323053901681922691431228100967387230699988206935768953063491934324877224315860088220043890041199805400167911740061092630450659417365884848520578061961627856223726866829560894377371410804290260567288131262016956060870060948501688689349622821603732667470223365424591947677573831900331962890719255891935575161562859115942645497890221780046728962850901264285939559801690840572982520110818847837236046956300455847848094150599520863347985247223710359144992139984480189699410926617451806164030422514285927773381070800327819271642922627246558243466860811680950103053644835048588212978457614639357647059887117068620504976325015556500742003385620980307541278728946622876205317096237596306250534322757765402562779524589963611448587280467940891462170961965045006904038930857576281472478833788003950749022392783658142145813648512700999692409409437842018652950535552159709661764348055984094124290217007177786245429885379992453684286371548449628127212527204018867474411841800072675483908766497333160326409986105756432430588645388734085481364719404517353573288908238841918437281390593236628964869238224726702668086548559753476888833649080839821457522151240190570079354938939648774188589121107467465511014890061916758291383146696365238898901427498926845276237440238778152498340201603923334865174003287940516639219612411758743118399323623033048146819453160154376617511112388435716712006788851014879905249556488313316939765033427110729621739243211693251290956233658272238875325188475014487187088071806487497950173944230368391758328919319538772294644436129819033473587061768377257511833655202175733151456944156256270353043863156932926152998839047969864698982405056132716832669880264959500078535575723360849350484450540093956405959894142097385018587991845459799080270525978104486708950344208397351180338470863797442203668150183328890806109317324165532409951621496390650620579254057626731743527432546606241670034698047293474585537015179822814529366725300777457430082186265587747619187931643499241116961404219026555474940438082920551581131575832540678935424192052467826959747368941763895776302225438107774463899954360522880378454708180031149764459172842207355500985710425623819170427975241739081612169742344397729123942579803776830152171774785682813914726520280084990098079157874336743709095267781661052961648229345489622671670308610645280732601835370713983057348578239169904332119409436325508480213993160769231881905058015564607289244250056315378959999772648081951122678049863660258712945604411954054432507010065356235310118844331320651884080767577890112195796850646809270312157914502501262864937388102344015762480673299005126503650547516533227143169229197125852131240881219093473467083584846278840276184133581938992325800779956305939837971992832130799456131763926697648651940826721143906497663310639448443873164313576996752500944067290964979060172638263156347929156828997790623033532400786261198814551054565009956312620821529306168077905517734034090537384983319327007880093670028592572407652545718015379007887758991341571785057537606298963920356546965646507080864073839189264012878452899538655019686704890164471091540309336600497548720617568943575242049259196405747838887136120720709451356673384063610842640186087159254218620505297871630732576978345585717211429008366537988307203077500719210535261633237500105885887459517355236919202888706519965399313684573393225589293449276508798585461035415367453945544735869404836752208815530006796029044287195849262464816357150970256372767595074760778037772800355991655284717312613693063533005308888422383775598561398421935396028029867256264908480034422167963324683206692519649298083745442221704336589754995358339382349818956108535903438446138186797590020987995129426166319734146779516835565622572313710955898681104587789793149385782325422412065604937748027285288591890152967545273530918707427136614825463742234081034246069912980699734585584178840337741707792874027712056807295732475643577533699442093030288402772213678613287913236385109988945590782407508591304002058195009302125882410617872702669697709887326401241851137110934572201117425762586381367637093848541869465559531071143932220384748066172595500616506596591336256205086449002188178175497945472300842748968078774975934826508035807714660040707102107542661627077621002314850049160053610735952831199098397602714445678700039967980357934257233985248254863532916882301925033807127502995857361072470832255863661552369664809811834211396407597429051426586484808420770242927151124487892932775739869680597035007855277370836074341719015807403287837429490954169187804485931810932745250760580032726913062169669525748416747406460599917661706244334272889171963188458452330536567286652258775595139855637761977059798361097062060357732933652847450259530459274661258687599935377995972152691268809203110238663956080059859833787449155900986700438325127564514594406534441152143116734770489137749620128984366869053081235536646924282693450196078288188971071334332709588909925484763971105003208847515339798652119088854428928007258509614346753147800812240861986803628128320486664008511945590117642422378355628923697251677621829780523373919858246840329394335187374772487295258472625179812562462068459179004537957467684036973126797219274673593556230933808945945676334495798889586351877900214852641294051645838288906939727359225139560611106408056439715278958708080038718273454742780949077958151394623162233096127470851764315092516687496765050206297637677066042664820549019813154112582364911520495405024908440460479395660718572509611859386060339069636214523118221494944088877445247853906976472133319840291454486502566123910605483150850629327647434331554608705808536894289099139156281975601137774721042714953975555808663453104052460225798749909274844226397494528576711702108675632709269958508389724089136458308905163019154780150999225939767621419797929419113956839126916125254532961524095359134812622114279040041634478662057653319117883928411905969787531437251723051308075579515525895883634843102906521068059270734191067824069964127491301486132089490175600741070781224278234871915445045938394299915891496024538675810358535274895432208836168258328105230631066610043106066957775521104789201781968948447467667639271323250547965421969804109664408549003229733361723805013454260575004581844432926264822180188900312378743795570161534682683359534432969475647065733651748723557290439558848078555333050828535958802202357261118726355575284794237262817856812197015170546777505322233830133252211266179803535002068225535297591214860790017681186212083851479639538328954102525464466182066519680959752123392613438404767727127900943661580854288461368210109074417164794960883325275230329545696984597106998515396564071789397462062505487197431283652650185275183259879955628789035243820132879511927312917122020772115468396159973126975304998469401741843938171720798675520708536912687433484184584523729738775464081118456028167301336947330414995896582389467278228014503102841169874090155716334527455236310612304558497056843748264545090379858894065176974750813591789222719077838805014017209030970803800813983266588237031466441711430374467070142280485441801401300324921417395595921313751372691967443983277794145823500577645521298166003163458071190163576106457900979505746091121161232441372105551461478165927046104007013901968497383862230926943088389302325467287394781132495906196286501429037355887371051384532288275659233363751071979015366706505864455142982175587780418454424741111948000578007186250354887725923097109529123269347094655245087770970930841325684066247347115841558433594069517808704466672098980425505019854713107055103056418534919047420585261882942780068303129748370343353538204871113231636426424451633791888008375323374786274656843577026115631670801295787430404565595034990170519056037696966497817339312512892477244689861274276819436101457524160324327844289578642718905108564577842617380778364289973417063178844940882156655183958845894722539481824355635631567391369452489349914326383262166804841962208382031372581637994465079131711607621266392722721517435133849278998560535179874515705265053380256019441495781529104789109109724954445408522701747408117756416454245008054833956109207712649663793489057372093476428197356863189457845590281037387957809913445465106729168077755975664116295382771322083702637846789240012840279029629966812141540750566520325471909282858981145728767922551023499876923154779911124024115052341900624340939545760607521531779811707906454277284227553244824764586463362948496378390823169944404042510949726269075523643181718596503693615877280996075056026889350329251484420809507955387809489330301485288509134628581384470314275729356930224965565647549891070704665382954884376282131058199951501192934426948111022032892507275760150767558898901163610987657303400539733144507275247455521676683189114087539682978603242998749296365508994354131282817035403498736331896247147803068500660806949709245997848385005660658212086346661214886026401059478611633699122135133822196015127321293915554870683093655666275765096588226760231899285953322267820270564357890018194504850295606120928628332561674939306098429751212348118341839254693749710247665390473145480170873385918394578579201729261783997365660648080157628142074979501967039008358596567399954791459048289218679471218460734710374282355121812679348689235524082200594064617372283416592294854556754964926430638217015188416034533995226324555565773622569114579994174781306136995261693515182581886350720236443365153103717178582656159830525645237816555355546152228367889144761617073015772634456784310927188742732477946759504753147825061355709481317767137777412342023997053315641173646520914758300540233301307291154850093247715720107833843222288391636264802853759062899775459346189267406362913733787137334842773180653699326699527787607100504088078482657763473469155310532479271676708485169120988683970301950373267575374419554636715915934816715841261221697949001110376866810696909276768720663139390826762738717112751906009927668947701607413345691389614698648430711655279242357778423872315190866327362702825248258559057963569614319549386596804430168675342579549950091589658766146985256035518546640370284837837494204872990316186369717784254604235584686010953416622112389936702103696657588883405079256785396104849668939720303009081509360876987848030871465903825739125090837872403988660644046538106986746558358585662787347643867863068529935521608383205010255500666394871972160180392094902682593436846735638697046061073625110343391302150422276954229690523254008421157230865639213559455551649577233194918312746268855877143395868473438120671439772042460486190231721172864065948090384086701816226503289187042232829165527901257569465061763402619221729045220423577868739455208706610200510263220914725979094231570870447469609540253531039295847539985185892150534163431288814600915915428721137187229327810851400480271647746678916341266721231675932549320588917956773798928322896262740835453444990595884169600802371546351274047133104626008667145154746993106283384702509800492941571595153737229920600170840097324381619032415803135784119490306230586925424605427661577267524631218146135989841654790006554438099322556404839709883038673168936511801543151832863841186029935323322854419016321911029468198643273557767786378963506339514869055151484238482909718441623772044294466594936407894263404174617737417517490666091968674184965630595166310610378879909382670832392349007228283326967635284225933776100671764474361787878711791275863377077042620136148397712104027584846701466699070613424021526307363481977595686375490854283996490125497915611909227415445408242183812799475042007561975717330905626170315737182116210303929231927368127469723036014422822910445002357894057960859211922379956771241798220803992010219050643982894675312083977724751293473048571072544051981847029710088732322620361565837689473129737300274340486844148455725485414558066371358827035385804605529182594871909826330417575637393492459392917397076658394287240206776930828911417580033859524226821222985612987290694174422206820213847552200253459570017705195080297007179154966756039754725114923264163405660234961620434075490717098094955531186513460186646418759401439236322448770979526288990715488277465255412459221148597097037635456172253130182776671336605642995945990503497364147218697520556080730077717781591606326732990101219494393309798037265334585892775430748492461503869706830093602226876485486623834307455133388785057257886967193056165624816458505365006811434470773602336514300994375745250959587971909425623945094453785352713528655049045351233284593246972685164404375712766304152381544609120231155959223683354398579679347215199860606547445087969110220995131904380031555915237641833619968293352400395440067329220897891580440640230178452280850068947862268828144459990802039297177433086910971928787953151675748247083971306857771312243663508675495479597386738142520512196869779997440677831565906280057934594326940689253798236315291102178189101288342348137966344835219563727854179323132304155679648584437062057223506489446494332474771317777380365822349269133681854326312530391185413694170765117946926866282698565187748281023852878048861163342377101572195478977057563771874289177268953031298292713871372464815853284437429773665345254377998505512464747846349186945560214364260013657033611990426762789702820051649547471412905188983645072825882934920841308731789128332159558733404950398120841785945580454850826065878608901028990594706645099811955526243994067422042302922086938609659515386054407442216862281457890287834245796055286781044722410410192621364417072112705499504754477976735003923019506946724188399348138467825841533197866018632231071069102200164731435293029827945251729564168861009434079423912587942723647216133419786818880337939291720877582129608548386561629175229747255004988329584275651323776084941010097435419275385903347663264791180665528590118243954858457903779325492122967154638589045538146098966114226072160501833500563400280131381380186100798465554615505517100977303643723546429982352210211650721305009512858250387041108630002039065589867153113732012138897010362004307163308516733159601728478312011323731356819582430521493252489985340383820705849092349500604286448942337346615282495179723046671044968125832849398820045666209409806919746412295582386303705259326963975758272258199500975352042144795006220677902001228236118297759767375101828014460020834779299973360040495982180556878363530456186047091207315451559286518375618050235308763865700376980999865911473168368641135167790193370177513053009461952923340051636661107284182590667459232507523620232593334506154956557731499363217269538699835173639016853525298387036508236438442507618773878269103595907717404094038543825884345168005316325397514630520801562316594448379400535927914977151582716860655022807155076838889529914827729725472470515419347792921815198992345151346714791207606980721585870811420962410543075962057956452555846725629148606305101074961298463106148632410966640282234976158546963824465191403915697378167256921131604436067291724303055626348149098135369073794877013789923225322023785961981073682043240018564061746747338327398918465090662553066787868029397915781836178346765830785967757979656165023547440469433059115306028806686526899686405675986931301675639807707076314119824812571464502943656250724250443955136671840951119449721304236611100278082647952554709535660832402411094534015391858551894887132744765112918504353830263049056702806570160658973102735807719391093096281765118040976571184146452357738763088569315622068266144828375805819747148367927340126534535240127131268223035605864823661004962586530729323990200697425860491592583221516639613654920397408835350335934860001970161898435935318924120703074334844938552523442475766061076125600570705321178866538910234435259453730048938234457821329946598021220025516347455208032115174952090141983959700887103897250795721991557301878546937675393246568105062444601149508850805148124427147076620143141440902647364242728564372642130928775967916275399737018107221387655884706289512013282881796832965721417603403132681571699350991097491762725999086438179491037226369105888039458093925492705717766916666599364503370683904066191328341428733683171987461369896676449516167343993521628917284524662095771393854470917548644757191563453778475778910808924409433468213525341189737099020271280234396062230605706224892382669513676841752552012077519206078484170056435477486724501354701602324101333203144554537618105675475726054456899835496383247116242213308986636722088038847404055787189226757337363361343469983875348095592165231390381674673503715596422688667517269270554881241347057543891388700208956799171992468552468840492715249485938338345406911051291580052576869185973695590718609132785338705452542513813734389899776765254080056998315616353553718878931104131813333000729631000553462648596411094526886873210256817698500712992181366669256999592525350526956456129439728088449556501776241126295012650713242114305062060896015410168101204919149429390600419752929671594517992797810353563422337874394193075612599374339637254084288416234298422502548149275114757293350528220153818497567414911731520655358709871697181356042318148311454841646509331596542041933622725826017060524066550968682133610914014580260785610788065454863999152992640460914459311905962266488249297871615812966195914230338616832481431406102507546529856043655895690185767013268235486129087198574183967707404640417393696170887586806651913526839123940355686953046190974205541954686754376209883029843936522259019991049135435912565953558499489449559718727927349874368045489783446648383280397992687404995211400328628041857199170370065257975066848983320025366777091484367563313734797163609059976022612418151867603744542125669336108248866843366977851650732391547862519964949547600864505970850050784253876361163942953976844745038903005574397623519048719582847687330765276724480270127194587459484033979045377645537566382439342068811471563706373256461771011527250908863798042548716999861584683492279722243135833691408198582189186911701839952359186089567221329873309364031952229782296407842370476818818324802467421879895152657835448188990301434981707925301052547799561053021272117307339630285547122379554961995587212906606481167382809615977522486079362940576682826141952702814039402243036502861524305752259958562433197281505012147345080564172350815377539076132516830363445546330940557132490565765905751626644831930603694956139341712348027483367149291141429229129613289769354496181496594165117561046302431965125723878872620632079303636895270597373242405002941370676822021584862245268731445236038737886851155775482081139789216848707315913483623930640854406230207122972956708435157288014176173877658483635431508775280343586456016512081377609934570072199776810332087862127061482129466979084309543836312030567949510971569285055182499566854687153617842729853394130516984589920807834880119005487161225982339545939392999945987274652746192542707020559493360547199260358686429788952936750917745252168196549045129836639387656022776742531623339702448910045998763523289659080179943238512899297306523686299283056958978472746464340923304319149851162676282737013354660086196649318841307384179729249331760849790241467287233553562024320008062257025361727405485310514602223406509880923591920426538676917231096007170846804208182053629535393285272329572876667581868986368430880679973578394031297762911542339461523466870383464849706636235035266874147079510787411441589634028642955657949671388479614484456381576986155078974375314158611256053387506656603818158852766537250153037377545679266817425706548835402230315397007883332670529701885142656310602527208722364492754774595239459915830331861219239042674747893254781939494984123492748360134130835604114862944933567605805500820916712040366375626342497592046984940426887476744806868006890122763315455177087605903082531580302938613985388550206250717216892789342349669690015928121527330392249216293376937314992286295176868965671825905556055794143371122500103091894854971424518051006643493512943197446751885827380930314964071693368719909354569446901996898791865143467001881764140845576511733452228156647922159815642771358823265449884822208830634015839696862483732114199981904363486765183172163148789344273041091507328752545514501332570256855405000473638673247592388105128864706744073722522438388055226726215063417618420564010867543994222410745003464372078846136422437583060203814393801596702787100569712667052348713109877585205936217024189227865535464549446543784564329600969487841523520303054693111735328576309328617707146466155817581644739909023543198353654799160080476552470451381695152540997428529069999276714286544440260596357897249636859015772924318540495747347789638196807997864514424662435992700766710229121332982546145220934004423367808589141033625820808477333364757937290743846565182434937427647000008351893682000809162280976489331944764517097431326310941709789017699439385089287850320651546759097255220186945208034952100028661899454001068336860228924608654257752232419150905700980027140728317986005503296908195719678134374848730049447010817517636445003260637397071866537399695681027684565543000929893877941670854404171568123790236668642662327441969795832589860387370841278554234665970251617102394886936853674910807433880398559874701080414722591603145241661275352491375135798886555492563690996921985063299990282573475936961164747024425852896753021075522048949039598514588313031907761230446720552967514278298146381430324280359622397562023702479872713538915380588584353359609611852380244643570164715468000108443345834593130364243498980026330109546443249282125055998794379668095383921397985189451215082947696336754911252179040964053684890688921301059290281228160361346224679818527081370576807676455381851690666857592772345455872656453838684690569669324920718614088097435892847650180004117317183719139492027761089751686638512777468641088593338209794579563802491435610549352282870558099694464379956191406069914805784457449065650048670895832122460504292397737783946666345209068414227044863900789313902568415992480158039795754011402314860212997581910941982856427842748166665040584964312783180075486472014912713520912003244575000760055889747807875621986158555890709143678846573860753151742118778244588288441628351214605360803880934206221082830093830960019172916832123738669093103880207303171694305072490637001693093304807064646289626019110753635073815928254604804581258062188151632809723466654301876821301975336842009941052239415585031378852319245170047372136538766316336812721757891031893778950107200337623617268160533291522243961653711964769013802387554975008002283893675547322392838452424406266616618296407885182337593760713852840072644036199914769860328154334215536704235403395868763685568977798775389537419403549808429620548928092460331910810486672378550080414606443627454147060035312637340552023581093290126133020754860930054607892152351643731169334427030866855079739512082256668607051008268926431152875636084810497960282879284632819702857964722713190111180722631249482793467923815264247977603883158079640677882992436676273958355837412119959934776249690278640038114737206729484635455868785656811821826825123339555723552699983968107486994071153875764477141952115301715783092461412962087777071333572402163672594969133791093524438646217402740273894148531479660541356962104999379971421344573930701773436077687850903134321546702430927382803699232008336662537911046285295930831989350919293785667484485527903541511911912680577241037796388351692496189433987938478558954029340179466809051746897368927814418915693897340678854676256945665256721551091068975241139620217035399325736539835199606757705469729040260585090016743534730664183887019499801013901307805589693181740446316859167405704162751011945691035716865566417258296109001850196665152018050490664882843367450707628611086975702938955076889942133578083297246891216232234423919406162938589839309526526818042105484257608909995960363201626577550891165480271046763798079696145342853584432952396230997003387328718216165215905848750495379132036784991873716568767078217906085044713307456745429781245362528829053527915997729644401646993365448806102360790825437270031073828996627364694108423362553760849775106752771012660720456765728359917640903373557128631413849977391730763559682686708795312683364807758139970433214065885284150832439740166539472167348815099833719721872143806505877541370337017388188552638868636523144906278153966862376148136915251559720159730666980988115757354633364929496146167722989783579607697678389481895164759323004462557271537157959202366927228877034610693771790734200573500885275338137011047761389242461821321984521292059588947344102056777831120753778176059009453285354895471722174211464174087622535685848803776545929541999544387351744559171516906634547787535992361094199708468167950231988011184288515220900709449647022517760657489497594121716002509220133242884551414583033621178988221372862704644888439806357722762081163345313838005298465670467902678706405424127207406809289091723384811271922042961684976966754462298106946449852210156308927823492215772570130910007874347240224886564550026122785367368851807344109438021849726429684867212902199545728398004796568253277444806263023136364348354795706586346263239475243974492749787605355155557060258122035008944037603499217944758365416124524947290119778374151988170141911863820197555174302307350985777466090746720417041960242639799097439500001877461146386589828610304547514082243048005702704686287580349947900200674131342679214728059609748204331831461773665746524662829397319928914174493692687290337611862103615468450710660373423964796903357600923254322559735219982665712413529073755528705796498697606510190705873714673649444436681566528178872229124605784294636847343647268197350510175632610834885079562788067636920848546173052722578074776823618086763986660756743723686597056360689406844747269242907029354141073945939145643794977435437439412745152748932644185973800903317210763108996794365528962610512889543314257051382176226272388629196444885554309384922344642116323912866707240431930625428953780229992776264678452578905711941992870052463567862610844144490433300647721897048649186252342978804534657932625654266369148754090691932861451732107150898601693846610519042639718317703125295819417057351988648253456501701298764998820682811862243774227885756406511632807335690864153214779886559552829583280745582389797777900926168356472131164046693086679675116483399733466552864171035087075272009945907436696007299530273842705768600908591652412446562849204067508981838878043377889587627736378489717526983062794245289289742216384513801781370144407984876291661596082458449175847922286983449235135380027529400125389776648129886388700310970471143024341432599388652000397359162405995633965388320162606595326280090617438026885737418377201951571091086658142184847379121738738994959865480048955797101659490893989907062046731647481874111749453973872052988640979297897707931762913726508141235002787064797991325778755380842902696128642648010213259168791126504858998685325860029835688303985672968195328809464749764351818948349886264684582754743214940185796162728824425476291991476464269573357094323749711107907096377624262747266802454249045490730794705367861152092526567092278590514119819386562879899228173105683118489738290176869359444868343302413416555466204366156979245854591394829563060103740182679623597574354018023555951255032825475354381261440145725930803438622339454901805103354593926836321408066687674203614357563724316825536089479322781141263811729911274277158006987024161103972668786667154107320277096745662511607330293104885398840938890582035805493340554244164410997775833959587380142045589787820586774186227936564711404380214516300217887168551425364174914150883819161238646529204454156916337221035972301478673333289548956798815199736916630888100967615411506084401142745591647459509609068705338564845766689440512238485092995521465674411685518255634221529599798029030995991466365288559004285191838760278309992956480950577895120659193280454183399851389704699944282139970823785277055778374216586765132825026700127876743627050594212082887999574966910091968052815054369588350931211504892474032399914666561635719216895716061785124314822471909593632360210919624498848162315863061714156628780326609550621360621407955483708711928019798378883224959914291264376145943790460859654290720370916131475760099116643005315090405580798606600780162823023408720104020657385585804042857646770761979361919491120304261500042385743994914048014911718292797405939580499371867643059106065769534436928489758820378162588293763968768809890106975272212165881256102742545570982963049956667166855433411738213938476760036498647280528822405641962176992828166926720503290018330978119845805166950292668894637655670570442851853209584693438865991589226782885180483267075646152543945127041181617130207089716570431730983471532220559066085304243341554526152923073176917952232005913725041503101645335198954285132260209168956936157041968185543538914613337194474244868171101731201945887306276565075215608241394710248325820784616207844586295495766442059465187928335113817619351689343524674497672117943367351953376183931817217098417485446768848974581890899615999311139662487575857937207082396897714232578051900925741367567576509762216508707836916470615149599208285111340675630832318188730700135624616667908972144253510568896433793509672675971869567065324460325334954280396284183765761391060564562927083678834653880118034645145943207719709729857083749208462838752586112302276705810532464190917538438730886795603718399304918889450150016686678749774995428533702802755191705629474203561543181145989058742625765251184822150212963915263832009339188969344438982107264797183340877881571158156606454497257301253481069236865525438108358920626355670508633145658666769352808363541466478430416610537237163806111026542029806732938139066428041300190868367453006497786381195119978013827464229941154242338907693507124378483567831501770218190545599877690132365309047669724583586101550186496887935131812874361070186921438095147431498853169498255453958087492345705824201106673957405573112297963674800535057502283302221600113641696209819819042546416498872444071073238864616220089684099917870626034901570673418790458693624316726958583523457859560773593122337474900501061254956295963363415615929054286691790366716091205963400628904674174551924938682738298715377516833688591037570390779774956859433661170404087575449261608267545802581577270005253774184828368420296380819418297625418053020347832967786164263873735230975449081571012812805941622483182925277753248278184945754572234686160106642967278649523845862705212768263742050537279183662578131871640811639138600531782138547928532279727566055618406271851579432954622452470422358164027006081319267899979389013561883170358571325620019203007960845576817115404704468004447033253824129878946971351331938523996724277098354926864645164739240713573392096691929096718597095630151283811505761126566812953717120008484406963834315589691538409739570319870605928162050919847013620664274960917010107158046131099079960067493236788370182580018656272945371582386761738622999379210264007138266414545880095573486108085047174586153657819900324547264956630140792625239447343906452727224296070711460814858524153306455489028723150524642174088537820584866924160925831899561475155780455406519441582771491373046925542207666405792260654199335021760386411420640338346100846942687101968903117063861827864245111964811287814750077932184257726226670439816211587001253065482076401154552608562606979022269517336757419208539415925800225730261610971342417355429545647562587140546935035023786697564855329127787610523517968099712176207100614524219710021487848323492830432746435229775962902978954392881699959475524086766992992714700597120282246329610657483283343166281449274031834576578366361909916721718125022171526547323709930290497223995108207124044323030564673448522003846971434400768294117287531569365960710667095397989344866249625437611532850084903181495602651427474734683108094114294310747025164994550834829917873446003951530825054410349329584313968588946564221998252280423588238673018737921092891173066563175830014430544192925375909593730811393181792459772646564648516764221474187974165095279654513993764729243461264596562656507114051122282297925348406062781409381633965908725338085134299315400879839019296454491265861744762894911739415739211122228255646609356147404506329520739256830026594698425480610661293819664622159675303425492010552414733319345833023877533105041933971541403467625226807119488676220957786331772937036824928624540467465367787395694508258572996885739830116102427228463103149271307764304532835747227674519349832578322721873983529832242447397565072860519401601555491662775833261956965965844537906981738090216430964055777147836000706743609286576197834071718103854213788735399184870986751226394792298717085966785324251120715583738872570089302838672535749402378971653020575820485806257094499361495306526720182004606862199640918543674638219719484046303623177700877722745038473879960940897416912877140406628791306360542147599968690089662518760800430245108898822640166457259853076528320885417238705029783950699873684557980620758565216134208049562247705730070641930209296956179137656741122694077735929448872147397853625272753669472071994674488750134108405580838238418305603657788086867063875552613562646855840652192654819055896065416710635017730066193289730357234605700310279916713107732230094687432077129982204970287468264962868979361929548378633708740358007442585480902800352978823439124203368906902779537107480923363088032826724908682565506102448071497721030521455281845933304167917528807668099715349120719179334757733913673552249280420572968961060045685309840206112770688642357541911388563973637869373979214791468034286553844309671137689006701642022259074306748097526824492439907381075467781529286948740385428158442744606242018843690285213284627115708777404088929682145982106926348092872703816968271430146970089853765036923214133391747934795447974190334690460634292899367605597409645490924899116234642330397835112594840823090725900494345737519396954250195092923640239024222027583648258595419923484116018531062026905906344845909859308638619790726388931618637670891571119180386716011159981152130892864291688699209601244550702602273429514075783801909844623413120163236333188110743017833112040902221326670064935187047069149593340469577042776314561835283086247884164474487503298942985904596768536090930193363022360616420812157988848311310607465818052897111069136609592305381717594829429711092672242444453647082332349788355924442534873797512675886688782296946235492518376534330403943799970352843286496739753401033508500809791460326973104172865056969998211851407888022094440265088631357042454952348163773422554923001773161994600669259371382623379673320905139128576047567815419064754936473620731536580719092747535310492336451721616778243994864332970771333702127793911830135965646068032181476394383840456074240882216667968933056053644156714449928100521683123669124285975017602277537273336619534254051175158942549087114722851115745996358651726449608544157424896058559567462799883130260976801918270442190439038852011005424037161762786400215646604783348028938788009420829017734637519288412047125132683243304413608348477477553618197478071195600845556064083682244522695214396482093764864661012156549891776435132318305243121571741567612974279595306271610173774227005024204736994589714225275246624599259497592118840652079816754988113596461201701546099313673808492547503768420509993405128442345715310103513937119280795270625209197494778084903679552955382473459160085576988837043774263699268794285939576841719489901819159656270180209574198626703464242742916497862381678389795585693327275656488476992803444804749520507939643297833489002031646413507102949372688759473512240584763494820724784346471652099394288490956507821355156906368746431277570765339308564755948595195667060975607363232564758368470861492348387789194034637786248385139125811428357448279733889111246996007352212885461840056519995687220951805696421228390282992603781153112861776537286026393817040133533124453053646757776704766795763688750543865549960243766590145372180958709074887160505443485647391109378904674020386084419178421399747473332968563485220642324270579654866529682310143246732337745246574346554753586657960843453102433788659051009368566959920001171057377371876542994251576244273677875519574021385158451579777080706450729216760235418598158597838077283810471043098944923185806765207001154236879329207834828873329507455776448107898267987641821049456623265789187886186639261779822766591278643251250291272082406874462334905882992012579726998956559530316067148289556643032512519315935072500593560780978231099998466629235356891936395754908470527082692731644767860249349386615537851669319600502613032993736553726992366597402683452017268280663344084960594332212308085668443297747556982305622223566709380169129533841371063201623898989199615737931036977655586300159404044937066571373247246497826591065278693422494901678119433227237762547197755003699223720123947111197219319008170888777832566813381780464345877949479146584230573680000804002343843682186432138769998556987300961094230970957099193132713797284871889573975700760032234422515013504382694346940895625374133751014143562537563697745124988989333097686840534699263418344549251608429861446902336079551963363404032352238288445207375415896910776354878602910916501237493039357936331303005849265276226484525005647155934213497321000294982440890920490320989803495534210686946158547058056547349265672766532647118307448973954412306684632935793532235881953048304026168579671330242242349889218184199619485062218924653499484331139366830941673573978739503865661429120330866210480304314348164200581009220004263654667322179699982688851645229894262581975298877689672868766712315751025696199034046721515443998047182085604535753361198285647404448210687334768251261977790595536760987774013579794965159294065520507738188160871070229855997777319580164066054670161809661494373569006807327328693714839671345598316533928478365658509814077192796187601992268905603234726843365166440923346714555865671527048279674744210064632689546290700912092781561318556133721191893262003045341646476795631692044006253114210702354315380803664531596907835721488787508440280097553552644429771781040140332620490952380942096923332171670197906425993302167094660351066010951652494119510884208282049772528233855393074148851454286401303756061758455869881785877120809018050956498565507274087065409328735786222406252798142884637989994451715232246228398005751334760715382122564974813242863966764823971593188768671465120959633508258614081395814665946482619605154539032930758777100836820477267761874693193754564089052524884692138210346485287837386567579739391178000029049818224603756595318262986665382874112033674901129692180694883117564486440608382137518092519655012340036022724493174478839987892561340835787020677753875440482896363627913691723092252179090056455609382311804004399259788414258650666904682707076608117133962988516787379810123209039882152926955384540942520210001546984232111562261171066569314742197308817917402409596639218829660570604106741571002888344615975817077951628929801235519587872350302375153090613288221651565981838190743094246960875848541335826253187475559402137899949814366448886297564118005428446062387067311472450833301839465189860200633648178918500927447777948056855992190009376182701350449034618388443265549283612702242643057505350692799935855773847682389924830590867809104284966289021226395964908056132358542669007867582289516465666460382813673423521276417201348766713210994323960910013720602423581463300490425210922275463766265954995050421095201787582117336125461996280073881497908907230560945088038151023718453958257132134044886940243293693420291745713468283973733163598733061764727110467064714117082103803488436163737829292941956934220753961315239679135767323539314329361499402183806657954844087199664150910259977749597579051176987675449840394172935571620371087778198592264868722705959054777563544317230860172243299392142200938015868834536551374844670510004542545943378443583007015630344246278976325911525752472648717864082382959749709034788468029054900398848813749484715142415969212359314383757486216925768817408554814036410527784933179093819767984540577596052613621957222889168634628449713353527331252394059034521622405702454751198960528070404267906329653096314479694684781252646608451027525709759653486760590217302718439660081959701799353198353012153103107417783356083057888129541141643235109660745498961441849572219523357853280442204372452641607584079881672481521830720707969385480323005397980236133810305627132201848151670014886874910501233454344427788695049886248711852546951089786407425166776725502305176199803747106910820720617116494092487573468676975921434445487830363998176184735298913245028495160242623891488961571935716212435493873193422827560828482294463698176424675946736928211890445661924027973076958368910514786527318901240334707725526492376945078560803345621575028208302641131546584613095919020426740834655271473117449890144472252424891529822149558739847053444243274063720667292751376858039122839066188832476798794460176972330134780081213660171144302459251534795646355223886003269738781796831007576574222292939477037164186870240634473382498223233058121919592957438344650546979041282383686318095314836437243856938438992707882149688014549928580879494909343489567992833495811361513230718707495190649480625765705005387080029709018650559998545222618734951024989716321623005259155405941332526747089381946201255015738695686642114428809055943758796056586935602898984331144419017076224073397051170597043958242774434373688422197560962233004723168877919852618297032272094823238176292253296393404876047721809776567889806455817001809611504019192197537904996160712419129286552173488953703574540856498884116181628584784355207168923256713177749610026943149673176716572209069363010794983929695677433808525129078138234102356611956135475361596880132296022369062008114051590598940543200154356255329582118135990199631921940505713200992184526644651132458717800359797287757885344979781194316958761926794135379370044683118218170428799774956618350871330630564333870481537422344489197919607076726130925413599741369970033389781089427916953210778492362239379198065301957733804413800553655078301926776809423467067688953621037866748287697287270681040008584721704280056884198959946749011235034237838224717489160550989141210608020608014573678024902740358467547244632054498565126593922383935335605170093052785443077856461274121071876069002462614270065477513412125071666230922014581922544499379671529090454440553872064396489291832003667407906184579992202316735799097458306692663387712248978967455993533918555223644040436915019243504072424116191677956427672015255922687517062665172362547478335347845694690361861565082978949339247447361444576615021830861336428979074187246785599206866528725623229389104422733238526041788137261943375932460600806813659233299929488212897952544145865146732661970730753374095770184601642666508005051843826543428407342203118001334014362960612338492449756452580560295759451696019413082869131025957109525187181860897256212539801156699688390855678094204696235578568449240616461701770305909034622883512357498755727254575918270451394630177216953266067504793335913594934832136361634049835566273486506447695923559393517983288749552876878303322810675715015235542705063520131650715150320235208282799104194906604987330936423253591583364606344278209706418449125700565563446157828248033079036575760512881016254470696007830472925567243002859672782910524231470997601320517968503948196758759947730842639166669571080539928844544452719365686054396876844956243665289657113756673827201228821768921626673018096405727650855831131562308856483094355044057415676404031869884336825502137052649519662492712359079525574256342822980345500694584750349043548513076117937801573547684378221124806373165857564150353513703472413225569661960959746314421460779686768590082678324150447384678060552253774266520632619467480815066412666202860864533121321805020850858131683007084561156937959974815651692954801488962008157435895000443609956713425682775912875677871861593649084366197739995032029323911098826293689041225295677577603818607580407461207978241456923173005582085663226065517394610288746260894508484523190795214823450418172872418631296886953405484886703572592078217186442189451627535721327809463121953370962341549808321296925115424903442648018467601458934516232826944524217323483959827231746202427488921125518455968503683982368343338329939675390785590697119007373189198508551214125779232534951286761454065483928918071045809733513786897941355465424146734345366344199831127281773470992965321972590721540842172603145819679166223507981209754914214269188238138210705100194033644905334122288478432672329057399524234079354126105234174067611398759150420966359830924144612420824992591566943626915254360136957861324562778910314594659035691621189032273385606870421234846435971249629676012953928346893404040137570743490375185262507822358704534899765139521923875404490727547524761941023091187708890044124535670706527157937540359141202086765885876749849227918806973286388433485963021490646910832151312467478469571482601603984137626004010305411623778858173509537989381298292318309312745791963309893251783847484097174110189157443380054666470182066749183703091941368602963307227441962829112469316846310442846501407301055924228558852844026442117481671277005522000465001184216693460630201370391919499293186895040772723505746788354550917447308974090387687383717853236367276896360829903975670969589765076615125758885778606522256267352833045581275899537494951355418274941087751592615537882830063021894055761708208243221461569930333229635710688716787871030171712669112373243546878629041875802583230903520936714930512439778837002094676345513044158945142358434337457813926831055346941045980158638682160555444071872111151170727333879416645605330874092122026922487707546046333659903741011286725596581664208173151405423378759167569399455350609389836340705418313712174404309811370950426103665290407572651803963585101736905569333834958600492157088212470749739732622381042038555810932356067138509621868847861145216913681589104995271593042055915933067131106721512077650940176037401567310626409876297394633734573225503448844028700619886690275718366378589300205192540028968776999754620448605329201719573319960370799084142690069028188964878573492567458279824052516331191424343187110643322327266966713685112505198277010880337448547677761713468452859862110418676869646710012604272215472416943292878159664603175565945245425122614041005019396399168902151433292083279205280091040984838749053707051464280138429021668556583321482544293982790635498101715236716802489500655477266407797958458679636304681075224328185062877259705616267954277485729894600089271890191176830965688346839769702497511910704562111076928436927760002897090938288511416555646877863226233255471579185123333268158255552551316608055213973299015984679034177742879442643425324134200580469020710577894999576282445531968351011722806700032692608497221017523490625889725955854134154247036137328467088387527470896933678309973118354118746944922595068830442440856377997842672342891802713766533239008193088563409858601210835049840670300522376799829193778809955045896511917403308589139528936544266085818711284933938032960826221447165263579551159267869846912908154107196557378756818991716114406933324252833525585507789999658198594828583558328295261517832373979528475492434112896944667504013561919997275059894362918804069682031542043379666043501286646545093563121962331805829930985469187900613455945238971255737129858117422447534672094604447312571247592567059119588322532385909901759193503566672635668105914296423740099844533693426692546161154722900095021600750090531394529655192020136627204197379695646118765341344339904755815352584220118024747700936570652157658878919498217643692585918475347615698401181297042826413500947535381499575865951123918919541275186793791184046599375134899313021164560116195140892514641661049976755114421051376242984826791806756021319150160053949999347361713551613995734072867353144238695436285137401264297991836348312798963570826427450763644629204410503357957048999993201308182847237009832499265400335491742784696992972117214535174226984266308770205150172631302455567706244943564247242422173235180836608964067547593825212684621327951052282270658782629449375428154545835234573695384511576549564330480275888954204497911262941840034126391045543951266436622511438047079150982927612560072298510412064602199001983652027829372929921860009459993188666313240694097491404149714171438013054284481463650165983634943062650369688067005031248698964904970618753072197042375925380184896535780065882716692799804753875261062251036892001044378345753353860697040343247720202150412473161872339919903908100541179085895611413274388579955345674074063202639937323568941079030265217742154577789654248649841387502011529661743053614796674663567283407489916107861456914196500505870223394187157696705037377701605879434751097309039389347117685014803893392966948316871766601013571901884389909841129124526099295951125649494784958541763164984892119575997812222299789831437027810553729133845316882745199139602144537644680746454002027711347403376048371700417078386839529178043434332723852094980388301994927052854464873186128090572964391274499617605137679484567683179555704358544599061368654995100736979079446346470410169799559603647849844613803770181776639564010999830458462900544485168277631393560515016051559434905735536693432535731765685585938266830308108158652500211386432597657626646612312695304851387269333322348906031628424989318612623788236989714138459137333014871220285623313795365110583697699930564997905776745388906646787814704287501743740246164109945308800933988864571766638798556878896005397761094251453026221896410936534526293753009218569149526889856265792404558765707123596339960076396687101175568500378040338796681500334099870677535043724996232425359987869122219689126206121734675959361450277210586244095772828574648430502677273224266832593044245911217586591283230954652272063495687236324435179696944297357991215057747621345502757163023770312909142147872552748126965564874542270294135720368733320332100324825927422043478619440903714339178902565369344642926631947336476141937081993341682316026694180276387249054362145927244583472212728919253903195536045421601010587617356205270849286139048138031997287428062425302679799908976391350114684901090071051395460432665800705215357913215871632047098135722353719443083166558108496048522184447530136662327411355984142665613839560273427291474948402852919043336605688316084303353042556951035214719888648863425424151640485954994209318365427563833550564709736907248959646574044437269330387987177038828915176705918559183015906895957780865871886831513506601534829007284486816035408310422289625184468260329000485492591016438036943202956742858552070823222535683031573311082098986468091853646448906048156385778114777714674360762077567083296107443668945166618826883361015792456598600361653366762992903774722418568905677290116212051548212696423148384319226350183209171416197624439151195882460501318206651901757915029766017839159131549192453303853947259702515600951567713211490480622553394344555425742968864735222219878980975064290459924467416867264942704220977958576836724486725613121479452741108106678873712656063914906065883146845877333778619708078026533869074089238948440586176898485360427520693366744202452580569765292708489192913762011824118867984441324641731339730060208369295465185694051982637174012845193930470283345128777624384722491301976859777507095107735053913985919199321275119592826414625050266547718819621541447878740223741975844277301451399759189073043423170020004629703778076582020276994802152470952536734732503890084917336385653237280616940624136827434090238501304935361258461328461552789066726583440375284133462859539504321341737460281655214600113235002095494838861038702067576639039124993389849343874278636866888715952735593415654286970544932437828065762919588713346263736141690191616872219815451049245710746638784172584431992701856603308672857846914012586262227759490088667813387466269474120356729382381821453625820450240206547765132557764205600962471576653121386070188163570391937280697639321086280977895145613173447086753474683926011283551934308307441765810435769445272651252285700388280918148042050885527659014952653260744695532156473820699908237536971533732110933772438142870524268708868590726578461531393445554726282122189891585966768341091569424334024385456559968601619034298142408729243913190982429145134075412599689072180155987253136168970227845417852365413238804553238191323514418657720282597964409864536619512583325040474560856960049234097462551921587667334004871118807717602003449557022555268555889280689904032496241472299883931468512393740202450751968235371248329947539192647279879141739361843560183503937046017510604002020508676109628345035587808522568411135959321059740990007834715434269165999168532120546012395871131510394003769532565358049476205629099952722544152593433675187772151313215521483771238640732618395015546765548390156191362019032445353927492141176060280401284581938163831892772220480721008481538526857313088602193032621435890563986446538673409905363558826888998999749540448296081450542444720890821900797358571386305293145839449412912997255358036456158492052427759512756064191874474905181266780894979164671693650849569193181102258138301309655634424791396822866349849847255896694368535596943415496015354457406981331735342526517265126877902829444469291802548517918851112801513682413052429962310439035618026052611038099343609677720172868040990127171130721787604983920474477688290290300771270582095093135744981836983362158987943979317408678581933414932463064084039121268950825218097334845282614835024304120939004068596470609752018065170458160825006441940121020894178786987075237699667329115782557879368018493137534510872708270516061331884445723168113384005432604979395586758194406674478402755061328609841753789142593555351857925391389410004592943405589229696142285671492024691484007180659727401067133920634984280878014489723838213689491321214607171779987156447277251172239132877116425911516989244463323342533991463878271562440194713366624978773744748200173113678993413852374119564374753076044932685117848567773727332137716230451433653199279374364713030719714783585126669104732013454586632075367217487789249741988743508390011235948723402809540321076774415044127304136063917798697681947856211418607718830921988284851784878775601124665496294757702888923990659941847887077588492582900655532422797952538040547635405913009156500633262782943839489133649261137876144883937073472707317077337371811061518688124777720728722453568620695043621561903361288389327340835656384608235443472347489762673005686272895167648282007856501770608030314366645650747699648063929456409730043953417580803985866169176882800454009067914810347485072730762288186476991538469857465831208488299468628688859521853129773070314726772083345147103322873819051361829358417162181336587663967081758816498402780666754364491529361035706138620444706600422637334266567109707531620163625977166497066880739766347730763534515123734136772384869031982356628132806260632021938701020417115190581019181132706898240453307399333891247352969545988246262148242376864378532968660604427774230593685889398958850838140702979349947868313602360887918271977628891623739991114318942989505710550227126745987693626693037931935187183006092925451522981693160472265346691826861076122851109174637367810929426721850606235278907936522397425088870881769886586810320758193781923561501323639489497230304819951511738254732837154067164008645610625058427534694759849594240222594098935497609636464265978794125606583393781971748699886609728122092524242086061448719954829356063574069701604845250340840335216931606791619402388811114656544941958291660452101925344171126272966911179077919781765106138694137010451991944172397401441013000014527910228320727387222426642326068766133932414708104541629084921972900866175385485956308782054328679192020438312901355051465737244897540466212602447108502950486657348824603517995409754854998129242375220202582892207663881792918166866342627073818078253844168829259286429790903032996002220104467188391608362119442822564855693216236349378580920347315759919029771205442404627612536643127524919464235241621202114063555926139453459744114911666642844832492208282222759745504322378684149254109583182218080608696882275202889685500249822833305781741329690587422987015393765355591663879980593936337784997492336102537150191295906455158494950520732563066157163611727473846380470397543035073249673981474197560704954173506620172183935910247332158658357735681920881288476455305678586252184862552741525643394585942951760656518673734778810544627385345496741943601561350158501476361106198837941315791057085006044315443299054678187964182938422111017777489914940674387764310268574303203944652539609865655764381253925089326083632107196007678190185741949300261106586582822208282651883836254771436794144389904871720566695004779593514630287597363265198661208084427733186229732086622602936979316494612608136952355258191406739558398366572424504069640482513685272151939025466137897162120427912607329183210592847543095814173447179288639835543668195170817134171242007281297425356873146495268216323998989044646595886196370837110943875164665344146947976273239736285436421521163714770136833098581427386929581520842715421229911760272436395833931157176687721015279961255479553687418735536816816541947801808549270754652600018599154269507465332159133869528732508090809708576122360056567830659955472966215262613239922493025354769936267066505597241053365190894001493512391471016125250997072156708638759423020083924622791221241168172729361775741712867292456162603091526128038527403446505372751781345917730567897573730717108196656093376723015299337943506540541499668297084664661062198699412793963271768011029181035018081711271000802852705393526697377595625288823476748496154771385022683425497055367009243299686149596994077910430300935288181601534396365150057899834226199213411092081476620224520558981087209005509152859576651769825348909347938948961664493179298004015994611313995961302770660855399407288181314930910401602044965521943199963875535500528413586483510494089185665900850823678484152024534425183835125541184601845885961357322584982501386550617036172466357219191372924781131427709742542199737761122216070005460822044779155340041619524653272744271395474430526606751441229212412273186567003826513225050476153812813524201774160438549359304800220834037085059703551102580842728591814279086233853915608560969678014336525584329646460070314070359191802574007028251583969183650497157802429897542945013292727463717492664357905030294801745803683598983447834915618079381393192424974383343210884377136185902534509313502561348432550308056341045361303805216110120497725289348632517404380927535637667284705344902098413900338090091992961187983100707485880616700372075718110542462057257440239388832831438593343206429024985023344603913313987285650537646132480043256596881718664306033289978981725718818632609147445720528352586901385418933013717950124270686233629981950043455169205124744950242840674996990941006615079556685391890728760893864759855098221873497661534689184418706704730957340323319139755524430730027156133278837079495672589389730254216094183635020706462846233054715012203784034129201035406857714798559670324351921743451386491407241416711110697184047496654569015718063991647047666159420100213252755269815594106638228792915524627033819349545359031974329454213821766439739610696979303259108860693534423643803777390729440032222764966584708674733288804334235745236515740721343821823150795487074946636452417050451369965371749939026291448478110763324013092250089896985726426791282927518204102066173819489723273143307494610619039903398858245809831354463014981333301377579986111876082724889722767737790810638540993460259022538076542129848079740769106632519401637250608569704985517593937154173575291550944406716601930715836837173035280459264104875837893567634118359451517937176611319361627529488553691404566748515325294612897944994996963021466014358393855083194718469397638356584634120496237767490362197545386592394344065934146213695584277455031496951031865404689320524524130475282687687881602590486635401285292352774448908756598695854564457883747094688351947185357659915551919374327577444961129210857731693614048264062480230828907287053712168617880962211169258225057945075435473834073859840586931060029715002860749813402146651960965881261839903119537662793360014282077704205982243030516603788772040771585506586629156393686165892352901732254736650754254889722711915535033704701801959854414973168626280439076895126726381621899440638233366460441175933853770130825729988733365850972125621371425886585492574483302383110198347981566066672609772934057109230095443452390511421616560010386233924790473422863691992915451403815489571453685575477014903707531616513151767006960063555472697880918062310318976630675709587815848973754194041144917966541667186132085861323234993031117639712767140987977852342827236985710408181675030582359409845325283057615700902123710973457194044143234739216837886354658853374173567787663481654610714422706503868923212087096249640898770064205070425389103404644184466107032294950348434868512743697098026633593046708430527101238058002727942126934175412399259650168401740812459594293933640351209821771202837501579949454926026312819813062932074090298895279114200419439764944991464287615176147341814531763685060026563159705566983011198570208005957199928901218439576144532317108100327193072599840561468567530232858626091434041465924179249894140566279529845529892877016063874509902432170719033156460105038418736617876699582709956124008101497079403032408668344042414680814416518172473906530072674211305556192638257383887366809516159208314704588789230486037249063006965928082064125464944584152867808082763145951442306092538069782433942317588124583035537414571300997020348248690357079917602948527776735495843103604502469771554532835142583550504086980860985019947803083128296622328233820428437269764917691181488323580232569742705358556637910078531310524136630254245488869045214044234045808907949300603996109812655800816669819048579941863813097434549445990386625190993143797058281986805238219468792698861831416692202038442344924017743359826710929103024876486162483572862966061241483791113781821789945594889512564852230845100728670628476166792810238295696079051187722137527188344274507967296649634322532509916489623471623601208955632530392883988319982989359499940048142260600832610656859680368776357469135034979424383872816139826685066889154024708572050396176436086510687900224168031745358438905967681594542066565459208491640125398700769380290344008120800557295197307668105979152380571977487048702634372343378902325829690976743296032817551205923869081304094459322007222422191803947204757030700698345264867775970050900163711372634152793349138860376781279455818562713769990517298087969150663328642317982668386604658059210815197829519258331171692171003232632449566443319604720508661831341780309538771637794283350738872329196967499276119348206421336038545847142606160867414229778013251698040903989432815500550597730694359464259017498038784093458316478965929682705999382707542841343478153203155024897480179739200774552898668103188051422867939664862710771907761934178728181645361855414272014869240062446282118910466643634216543754663874273635404051345434708833849621088590839023178984966564755156384894878847355269039055890125475692104008326484082680922015982513884399589965410789769481808332601466259929277189394412084405431592441310210558328687877626068785185248442704262684912170052034612958653626176944463512662133508919601345285412004721666099623775333611510349264612932011503565227719938483445066637688616574478075964272059427637244727502924828169319752848503939363624311338334414026841728259494350326655095802171959034135827727458621039408970260669870377627506502239970783901912509569142132091105482923097659752789030857840746013196789329194030591299733974260598821235705877852926700284256341502355362254081299798364649149788582723030614251428419046734581816597033194337716002948051911035669882123497451659622274566639852056630233141220907818646447465010683420147907983961536143511263490235824456848455736751715330963562636155194523305690673310973975517400076703108368706273358940363483194395952443795406678692706766596508617557523183747662376419560459124036294951279818954060113838749385360404744597649060736819390451236874619398651474966414592582503181272457234419405936637379850100562168006328804378089347343329402237240335994844057345957725224238661184304848582809659524672220300190630883329763372245481708611034720970473507243125961195063343901571484284953290049191601979906779386619776513998033140418845414362136156898052407617347113741862994855955505200814687263208262846595222047519311670337481506918583923857069621617761364123550412708716557098222966464192668660798308247812378801065944936429185203133601516690884517420580039194878460149568359801027973243314512075192109863934060851820576865103536800795178620410817477777092572210011968686790895940327704378227710305672638911366644839427194375335717049730421520053550360167470785179577360340298092059890800338641741279073144218108447677598020289834364916995719367925243511428201624505890363099267459034421779545315912689866121266987447826850644959291428812521586600999616062840287691069646783382979287754848841828470797149772520036198879788059760178094713008140408731752198993643771114477297264024042204577525144962635727272627483524536007069359443921051888177729879633974112698797927071641556050497112985881827287240066591251721053839810211081559464735470535505874715593507825447513655622645911486523286339136414100137818188287334247454341198050088386558954798179764179591955037913903124028506997915565589457457761258854384800547434044627780179156200735036107254864357971532390710156247004797699248130094124463471634352914872734710468621486248369521163158133625790212890803165791688277046291823855804042412846117448766578664517742531588780492394500813821895385180670652821801924281556230894965836004259728013745406147723254716642926546687022794810715508140483395649093683140759589267877644604206872685297143511191317607754685634492520009673225751487832855356575468397230126469081276679971985052899396083453221561753767324990892958089424574395200145016474447133210991589754060959466475349536303995833649707211270124924690056501319618923739701203688598330489782231755389174492767194253325437000310815324893702775060404236128277057928118811499626249693409281149300800459407413469075258664481716986999864603971361615937179073211964206145433563399227092600186218999123920397138425158493574393488815285067603072145828031094530310931126249553454871422247653828791443360474024086685399700886548440349664094097269132118642931114926162011574253183625309383152783515327243114403655908271012123612696256074280041788517121026950951182143902041363349641860308884692935626781722370515987889768369696953426646012583559052665388646355283529747939717972432076467686706646652094846151045307348888344719882232305738956119034532186557026208111676262204930182718068590190466321091851870641480674002005476339188195407865830413385102541599205038900546561393574448999841088241526126863401860092797368445137470962532231440250723889078844509247696128149280042359245693065460721931112965631039479494813849163298055605537712350671437291669874182502209919747720420558429376343113424052835222716743748605739332901694883573481178053748663214090053912215013246441169244359067844370209710865778807457067284510796872839593581265099278603774167256749372678554342269985154615086341267836682220901177833429368181639826174868581199219237281689225661441317217938800221656847379252544393314249273171380250397951519020315438118396133704591898398931604256148343374036537603712377307803169947080005153292013927787950147682464400354290542347486067948168672607861717541828510708368073131237631626896868797520243812202814117521092393021527340614496709757855202320729926121398238346446319161086724174445511561239171925936488697878203601736793385781484757912662987356886701060156496155212557884821735662255631249329547896542377980927381745000478597602076944388516193523789730250449456383987368590421148520267412927234832236888005516948483295964520934851706851848683969073821575857236293850102952603070063461233510945016490017452206137550066086567245672360423127845659976298518861872072007084320408110953322346360856036327626394395907498807063389429815008843263994484896763762082203427363141035676208854734787976348098028515710719217748950599583953008661436490629022809420517017238121229249233332609743169893124748776236996644868688659570859226216193916651232889473133009399476489809899648585669852169737809033547444278598368204075092207349593508937505160096548424208946994834905690431440605851900632998274378234812978228376442995511431574020748070407325813640712290981056959324718483390434229021578154053166997338875884906275382835751984413141527575122712720325880372698532845131336661678640091990629487359623620093076832210854874282034486461367895389072748743201939791076718529493098834173973209671178658253491282461145434995266007426817844843662290343828342534237854889823280528531361983697687022649701075240300877974812748801183407076521942406873823568639931448284013759496178573380261659964919286245307817754552510336167827910498282269653350170782797281758589773586050602809103231208150907182954951038114883993652320593741147607831899331528841234689410750192906103384083231563600364812846411994482474071564523801693509614258555409777044320637444976629042135493483024565760758119122635535198458436506348335840197019185008836810334220164991735335877773049591003727998830470449573175504771442580666932352711792903307437961968329699536759664564268723719523040127225548203926788745752372683538027486227024616441477543728372703949156316253558298172894234991859230750759530821169740422810697194897872995775536364093813142814883048372972368906387087333849966991839580027561164977314390079367004005386006605172592970044504374558212505942954306488163226405475685186586552314268152886587960145322138765689793645691927613552152274221147571672997239654163648032428107981800895272464159256652461065900834433076519298418913002614444969942764761910264796055109342469078806432325431296271403011482057628466806309750484053412268366884144208748234149902023425842056723339755959334619000193523168203857205509547711568710378878981083197338931589873327832324255228241422805711548747304722348018239788268057695287483503677714822936704176801299219453985800696839128979481481029039370222416015027354926006890688814019765722198203682011421558897277441963153087269137906259518321559776694297080645510589793812004728020781173742815524175391159858627093745791791299359477605189106326574201458601826793501551146334370606504935129120786585000366413560168660077546983638431904133950533603471245291541186184771130507842403614873760468188470805115211856708548380806056304100749847436023767866082478006781676370361387200072872890150228532811395905335130660441285598966471740942659208164403760817872063803590433273203026216324353610251305215774635868130921369323200721569571280020210277866872386966164848255985816461347770085728476312605631090674516517157177170881035856187067246702258831701163783202963966227605015357935271495464975344959762263318379246446597955045686301602378620315152386579258665420233820649709884322531384257036688905770171187054181054163875174998716871109686474242611430027624990557143811253205938785082557180991299463379624739268867103721958328132965548917622032086272874697779896192792613823508621569075280540915421134904788399736945383299602632599662394758447200868959701138572503684921603768021749779954957522394261700391081692807467604760009346804125854755063161745267006439703204836801849573981507239778785925790440142759356741358168985390090831770480843053413246258784424898380441163522221311079705451338529869844887848114030599499188550349564414131702751796233369156820396534809159034353432654021768826469453841178775353009762568165760597189989873101761808572113191134443058648202473823524507014043470036476766848048839519507327303716604939154941855020755002019129444893337452226465237996579478182417891315462689306723650708509242973157942426876806251291813226445185718166447155745569035030947181666125821281852483765925174255030586434325862745910627737671799340325671159985206982963305044513772290189849874572556277764769641481096687261930631860534587366256216888736845270035863492569077682018989302686888013621963076117185469328233880183234469584251911245802508254266768403491540799772489917838728691418188617151992130399476228584043103675912318930964031664784856203568089161718831726730201164330517030807668942904296899640007143068487687288334103013601088206336142434240928368270733898885836156689214942298489700390313920426720469528017388980992091585937516807868048263378278738213296919702258148950470084806477225653192599499298080528270437479342335487347555684437571861928622318272498187449750376284816527800296260512476711567294375256140185769892903501056137019326033912784713172909494194027893561072085279475895362118354797035658126394270470277758399423890146678933354482329262781535797638839995134653344889361538557585451764828833217118544801738975289794276532144447940787696328989173900148939709925347585178867781006631036593034052539151973615357167929700708308574396784854628440463866151629929516131974790412503259766645414217263832212641957189516698943707139269622047925268946355086169470167412782100183080590770859921382653776089288771721795597315661374784937374193626846925965165939715100566397816070683238809443471771146946388075908871162246443457352123405061754841036571266227542785255343142166097784034882605153676862992197267933954999629724553180953753799911069878269414618368825272645095843437908246566532689567278527339959067624583078327351114769628785540912004478571731272783585447230193521441797432622941908473367975532492205436248845879356100304947370874595754919914097490425928120716105387417323174601661198809494829382703900084059312142301697230622865325572263866882228655005038910717056674455849191103527232319990323209599821084368628048481092548427585721308413271705777229192767348152880988205829706967930319587322174339587954305370634073789868038188914551259290262397646397279636265203407092414990849568462682277983716205257845270445436239399287769463599442798575400259529316031049867341584716729458373867611787291900171406015352763668992062026763794354670707044259634002843496083785252068176541667125143298426944380305068578329325526718878965077811192116697476883244367274430420002914767491406637780292025410238897165745854119178461673266368466379522599276082170205971709301032997910246042424897836384422410088224710293953843697404597491047535326680405810231125884169180843683432123118344466683298544380234293372576711628585051958325616676357692377084944359441626263020876176932379128508309936924578708062339728494176174052937881344676047139822254650888669873666931017785502136010982450230886442383823943038888334502280820525787822128835521599121355962608829288054540264281893521431260459333396956094128896448452712920205281682973450428643045767065307977891080393512883393893279176468272439048539174363591799398102000146193762149363814935921099709283247701624729330645153251248450462521436844930661390941685994868172427371694737896559774052811368401007138107936501859971797691058627302451896483874395512850682622351044930993656230462990089717612995569445267025276063021697716454073178470307707059763291189196585351925050646341487000454862555213391610418685385058633583442972823086038223718064238892770688152337836999913214992716559844932707234689539282378917431671075871413490495782249703981527340097435121262002697431213585458193480478102662948339508900531341954361974179920163497101311097088987798148805164330441945107423807367968035826648072288733516979158407516423300132580557426070974161262645622755829663786548661385457437113183483186067386756854889094208852115535412663250502210210690253114511125005354847448427672299846240423231199883908974623449898244729828651391979063937812270797651695464018695751366882867650627223039013380142700699544123868533970242285698386448905184217401657479552053697980366188762930043381628682423029137445233157877251296537299317231083655296597269743198795912925143451873487158400201003291365098231269948206956337154332038227831592261772847797950927209164169310531369629217786459974319093248386540629617565323628984948869258941063476279179536061859650324549637169461104159282101332352177690382261614202969933273077881819056689277888600710410199814666301071573140604780255546731713909978584692604294684407670548550412343584205809451007548633178977609013216321437056907225092114313631208902242964976245214201343526861356181700770373979433397788152751140212292500251414978746451502869925160778234552522903668896510387096166309365893773154004969270592560058654716713596602276073667877031066836408973841410160264279351783026298604352106414127225831309638075969319182852204051350430803016556749652155813606473172407331047573093566710848459215576706666408905884764149660079716353440643195725912492733339019156661349424429644684138129615336737858258917299927084251478140508671924399797296201646805997005193464156831055091601772200346790862115458535765336924245316850371126025523785131909000023185462381904307085239144348890791125853486359931887063971314788198979161040581664032822526634177520916370804344912579786679546170396954210096136535355366572056019107623878365341756708146616063477976852972009079498980683315388946258686075706663251057665092472714907017712205850392860473070143653500077968586621526416542252478735990296147349081786516796074036884101707425940039251498015758707816247618143929712302044470383879824977816662027906102908349976623236315636490553842665098118173713427339370255892427548938946146839955160069111648706956399809446267957499051965878964840465223413742611483704146987858681031757368576556039517637285452651680678845662574826759646587749954729469403296852155145390071734947450876362107569811912101568696015985749297032777306966156758114102643071511995629267560323852821472938666655906664793719764602017402894190505304938190269035586985140702347414024864911885191203663010685995505890193753330953992920354112546621111697223011335445679172633510343208899107285045533933307755765820259020029877253487743754186534257686861554248635938118696862980801030089151075662200827682703800698107949185574002693790296664124125001075674844048545009605843261307741467146071353240786462070153888882479020775890540203035102266800055198951681424296679674386603306583066410400335654815473312222322806782977928465521343203905230480309452613338690167583199959263326786425931559270126198380844555165461887830987853751093769892706923075701895839648256807028468566958099367548673693004642439592065603834847229183333455135273885586579211280617865604539440806753480246655870788019037622618715302901759453333639747097193795594277732824647707314213551149723328330841348239554554572176549216435984041347763884662319634208975583734028023398090155305903319536937218674110255404603279221857860901562590673065951343744277319076716636991237893206427211218138897010671495020203396756775548379707547854700928307071713785788949916160980387743233002009670963771214199715675039033957970117059384812082779957421598276052430138742087672797026072497183645984974114372622160001834087117435026162031659508733711450492543382522380370742613208876604403669943693105140068097426203014287962392681103135346929484661680355959161425752924783966420595522695361177837086507354821620282790586162800663122595194703511692111669496056516286007843712775025806775714435245312206328913556743556485815191988374433813796713236185767204510051624642723214798372321048574268249613346732584511125825570860311042763068647769932886064715247118669949291961389468364871214124926516812872660842492769311275153411599741798099909950004240541864140673259759599691023166738414897565338004394722007469119876066606560780165895810611207671614215470424888127334844535647497071190900755670135908871856892439637619046330955556467842756229564287806288319872055502222120497271976482353188439582541156685022462052232764885089727118172827378646732703673156230067056795784585736407801404557143889166005393449218565459235002476919136502291575960640302951255608690195991036775137318285381518003998017746198466350112986302510473139383231794659415592983617124030465854031705848217143472543565623045557427237004033325004995372770152093303071435707958240600333382344483628452983127787467560616271453962424449878142676242755652691021523991295825737241179570982500296504670796720579803796879287039045129968074785702636023793426375057937395707550496548086996491280206440975716857483339793608405720610354313127417530479568070286264231447201301968385791958897711610178648831446151351646707269083306409666958815809551524093162921948456429186395898631821503031325847406136993968557132921486864285974308691640238266289071619779754004937475445464556547404237357308679113962612058170818762471493835997539459886078161277249771793039045998886787162368817373106015873664031231764011865096222744031995372810060136786917045714610747486489766461810287157625848906676419567509759662760604565504726969349614716522115189383450896060417454139128796553608338785803591134956305884866696170440190060341486248020527309068236838588879491221343969153319696382091979662211696115924377258595584638694656383654358999494294226248446363607446494573134874287132878918168812740777377457259887040288900709158759858969118890560073306067639486694211773316412298392437789240673035798549735350610225368901596933050427470679271734781337336953606368910933964860082665683601498031448872523784825558127878262073002302690900352108243025847013608990125512381887994302148785926071752025300960342688892021998250512735937908118738867611102045227296126139803205729965768726674805096796562371002527221162889772036886263830956170945859623008796375832932069076786283719565934121249165144417126214536747902669910292345627913442278928883994855747868566879619704829057785581136314528356699584110470427239466485238851226010990208663349971572912839547495281007486002412451740490042763896260226188807683283197525248121554371526546785731824882651502243976908731551207752355606078498141222176741368042598526035599837217581144314851178570099072469591806448312073101121077811961886000140074702433060342921029971195260699942620021492430937809970764033158137653359548071070722737053553716047174426623519500731093706965428894174712491840469757583069530597642057435673742238813084070122931664789947503221554374950432839635960374744743636828383348231031637316550874312453646697743313834673653318019073316315140373573022292660629054312165496512403008352977053803695566775956909729127234690268758254324599371225359036037050484760983740192305652225069394833635741625621484064300952692079184478825213004229746331253663784323470015452327238688165650947890457785444771958326207801599989708886331036565492408887982296467385699894774752952585817427295724095567683223763856714435072041708182863061754590358234987125413577658567528960359913528390882458236811696782171471093892666133285065529444967041307204600630108188318914090092600192327233403937250744818789689627264861326067387753173390675572299022539154554611028769060916164000505198961690075684231105076951766080241812994021848904279517566207786060345493705639278071395687880690357931964224050437113149793954883171159259181649096636364335882226323121194271399985232362188582943592506313959335166462554858319800717346624770305134387347666816330333118168030641628800623665643845044860395411195781678180589564005859857721705118182531886711075604913680588949834507427357423258524138080296827252448718503766376961410293609721456134552405174921991833205971612318373550742584546616955857573471355692158171313100792896775433815542492308139745743515287176825187133514849864182495126706524542447776363487026199180368438550313372607359401826178455965009220873135824718374004873765381929868962122252623661795167370733345433409310845185356708829336870956136540502315891236556984197930166757194588853444154742985468541530648331725134341790457563123868323303704430597447882360579593920066563347077272914368887671353805114091882288135096447912145677412700594337916487820819440045416889567694265441152074437057408558969243833591888586519411538536906882836770238072386414182464731276706312570439492022759498283845281203808572361669146897645457563249557921465413653650522706850015658154951706513561037715358948710686615353030473340657319900501004995151957159258671603733615228391631042261044615595469968930522352403305927024884608595734238256167005339533599955869426244366394822647757422305984392501249558953325968608624886059747254918258253372657947492920261490959300862106675420813938184536182283966318890745474615426625685138689248148334619252211287797443286483407396141242411547209196015332881119108793680932367480927705016184457185363493272695251976742453320095452741932000374964727784813595632147415575516949900668908878804920004020383996874705632132498928542349801499695303060779362118820203309786966133613004489697069931735870100978982369680601959798462536868064949946102674414376515158571576621748877367937921594235788333260719578202425761183239263994931109155473687011758404402481323393450976585471358157764428108451220545718431202413739066361776010904967857959982684668446302561718618723996596096502866358852215194413185344098827537706374721104961869476367338309059359758741366655313188536653407212004211953415297339345368363572422390768021108265147998424539642891405747926079561008140338105406727997838634987554431661739294466536475196906131850984184790042732585465834639125813235815596811777013113809532160504663721411329143490351157295397117390109320601147803860701028001924593669576319365648378019756569113732824909858981031246166249074036364131960826377553242966590819782239673012486847284404086198857602159699550126088170489172333791370551404273705175787724505718067094663721707735239070293064454894221211823185307646480409973134294996979605572432083586130392948100098293292673934819834672863047095928594757539858010506713991985821650728905311793050335001133841111229801521638456246055782223519098370770438442364981178171580812874023382084353637385169605710906795795169501698941214438133290019867163722788343835539021564313332173006709701266165336268299027528224173592140072099495607088080885819289902600856319960479418567196904185952750275249423919338958780002037945534113617296470851333467964889901153706840736234462583416699371196214969720985460612644383453615510496911192413285140231597187863593513547514361330414771156487599025048865654414458861637172569510413958325009494593272388137388510553247812674401225838876434603725157609602782072596441617982970743524937035100165663022975071252393986719681534141969202511511630821549129849152553510476788953140042354408260463994207111779441774515768564206895215654879446040584407409221066406615853419720915798229732705241778294045160793768235958305752387698131835533170453600505334513000477407675403342785034223738743758648139338740838699228867983341420016585804466822810670588167300913325991556385624881446562491613299634418457895186152021587438239862336976194070113697556449809463670723121698864354378825275630378795512167876767191961392784832206046339263768810244981936713194119415859980917409448699490896309988144673687159749390869479238480566725321258235221262024087537425951262303152395450822221363910163881712317558210257445052674517731198404580959272058931761634148616449792873851899102283712158600500061702107331935129546718262038968004782982707530572390943103389414650915917904692043891291278780825382405491981044486964625799377289234142196356785307406464536492713379119995865590901410380287933152179239177003093630615198900957826714126074243573450387979001195158021560065537978825687442576972547430356042157519141260331163683098658853081042030952242825200088241165067680575532232787895355208851891836665147729590385974121580401995561529773574738920631513425220926205812180928479751634597202735317917488138063238370315376662174799780798503270087048222958211757263229543777348448711296495622053321222228356144146219362929696303738477996665989196020325421685365314918114361538762153527500738518802486038109626477410959802540611277483373614536137438964015544460836834724434556450492019972292132818061150570823961579417571579716597698690566614571645722174959060733717268062165716025160671835777172205328426361959113334331395562667442086859323597471304120188011435129383967006765831009934173707733849494338055968756345552137080209188652595795164162771175865426800026645108013800565478007559262033338709750996844260137810977212193812648538591931103526767466938595089324350983047223914595484150941687345659292868427968810482844358728787175384598058334953980879104284025241053345906899472188569589911742452728489666729652256918091554420140250646108138208165845733907461834673788765832104627845192983682784699519520600244698749612228208156959823782370219665197858927480201715589356413820980820778314073235757062409591116930446183112465484935324077604468418837394429225735327967957445264605505279150987447129681143112619935263505600140326118393182417989180715450359370002981176915971053651386689054072529951307207957759941098594712336630905053530621967765905332594444659916490219447511797771206504060253355788733766254248231672984485462289394684757640711724029944696531488726419180446258074097056989039642916114190898159009364480556485985148210071369511599660621213411164813254270010297333437684153619950000704837169210778515892302614570534808730598086323520344156442757080811721022459988475617573034578024809239675305487740775986943942081595781143554452644956966880064035836176809009393033017092942544841747632811122390553041745254136862885846526248898939167767922383249945292723942558222203253109149326876011975299711589035255912930439906051594248021784715532551581180553632752792209027247427569005490328422809932967104830797259478810752003724155593386598320190995666256118774541497222838316777380856431699409779279761603885394371256872556417324783657394345367301388415017712545264542931027847820956347369953942680040717382864583300202162571383978364781743311476896721176826086305916365489812467326031396203002754307935551515554466607120855242174975752173252427315362380982913604393023086798096866564994627215425529229513412288339819183534540578900499391583595242564387586765778009014375937175935834699181889086271251178051911270443812054161457896832738326598787926183024653774990346960066414855283567117020666312557224733400311525185822265412682306162973024754612783053795433281775614161111465271153921536131423867610241535363700370864212673678979131344551412991331613221988797299938904071408532929949227682960815880737191654479288070886054964268560139472582956775232814356778493094351933162808695500371862394554540329919435021722131732229127686597187300827234969975673101577575068319011158201259661889707373031000944892831066721083055546411887931713227690750829617639861394052263037355001078308097416940507765042831022885778973947368034027309264960362671442535847681649402759703355764448202472218252746733112306199591082928726468132461168182238269755963424899710710725698159923345572008094079286497875385176611951404984451682217908455461377155367392046000594954290833521564192519320299467772204721212864525220036828100854487959454933941566783094262007801410570467607528618710711688655509767774598298704907281737445275691914555706924446377966882906538089633037630511782418386680212326151778078739737700454922456090603314741141678312448648405574047614151500262048766914139111983139587955569540858849090334083369747286393167653156049505412813656271445093559173698882639689036217102631427704899439689479063280119079619682828401852748959038382531485812635171580932296011261653980602954891540325452160684252482180373154808939255393746974626291082724031071312064452638301677729804985819031818042447879968532722613515208380413428403149991886830425340631396461700897567299694479394087234264840185405526177931613446800797361612891735255645334470969326110538431071934367597166404366751132781015569956196077046719635491548270775285922800503294928298734626687809223450980319966693728812921708951815589481228987213689200219059288463847567050241658605079977066181424990147313672138801099166098725549820640592818098699582807837890000268503597949979490214090805608319127920188877881002995121441920436788736468336184319365484700617495811268310607515949767176201291180169353840770401091219555557179917555068990403863864488097426958727119610265301578935218499912192966426726180193095742128337091447676826224625819561843412958856169675708707683898186528811568439352217842889452514669001092145604052307667445623048320983779064445431593265877056696597062221185548968383878386714753011738428827073083451831915265878533616720770719717657975773305299403218698260402442994110291832378577629978201055618184213695230846706571839299944740600158456842554080409396303651928370699361501601083261710915291818259471179499989920390498091497477099329780324166656321030823214292554592866550667249537310335212852583482216909930359001504300700899660250993097419252953867705302678425925794049011948839250545202559142421304232125965373132401530792799992713481705971527744263312077865757943152559936350960902331958161679444121145517748371861239108318837142885963061404380457471284924997003805423732443308176573037757734954962913912547240010607651701020847077349303295028157549594901332880219741984321885276154889439294128160334855169113133218336926444875572244071216851407652549596965245936593751674025974599123918816627107472632510445808543259688685489707850265601023341991596928209345713460199222986751305283933663319513372683626507534925737193065882031028032801111991887588527278517116191232794506487699875952180953337513943051380541167609252387264394039100655577199353054071632605077953957032097253846460164164877141313996971794252234461363589726217228358347862165014929528419051084515051566643457178759142574300488274178559712224122364906878262272172346535426256897478685512530332013810711152962153771476431375670060165808355902932236954123831703821335076534774138218611947582459872122833643903882570473403049017802297186603866311094570467117725542097905780166204001399447038251940324668692161466372844505266384624119876307344590175828864915530550879259313738380176306464093795699893730960354540146420801460406477685383487941005507209190955027024432391301320385711304156848200290061334701324545656620636311786893251780231466856219024133789160942243471963983487226914401235999675393820264062377939438785537562270494509433127524051535259588536307599481198413806593359340225950775755148186064899234196014777898521478891014880067752417085007698772673023486945032343280988124941022062021184633993140392056692856848088169015871386442172094977797547331242440759952751142835801488303660141348429286383172698532029159908309245731382099970585553417723503182223097286200260679418386878137369708147143166415068246546110702608047957609574276781468001316586493629678959919315352644972562219438833431857133992804991460525104127789292308508250816262605513850973770634077401756110003281115900792095541249039933468462441912861098193745697828206772307658230849406155947790512289259842103797969874480092670751035154331453506479605278082287253120408130867700210254262812622631719157032232922917181556975659660450269766047960340134102263641371231227966482247596945757210574823418538250483917542959376286742404636370116713316508481369995391976370733767601906917740537871571348173400392493322533607079789523277238661434486943738693129765339581501654807446058911793248767733417565872552508674645589341459651154984650900833868231260828124745723523244632185021343118188498017228256320836602298811294063522991661497744224194310540584468276035008097765921744721283844427944102850361209389319832039316573501347219797790501525343850126254206643893927275504010307716380385095154494199172238799502830911304642204435981291527011414363784132173785205499154093705992810552071170506514683559536917700484240754310826405586396682248446933412954665222344299915822617462745489570481685651447927841522509069827615149817952828161884863096047410073689078606091858164856084224402537876954251494415986751428302156667398411316238860277126127802484175485583646635436876979112930737707156167074173238221999262942751192629748778024006293929219983581926043459338776876000213834548800492201488554142169195667346212732774846345133656276922703235862698492168136337767483144476943341756979629439531854436050389493266098495343404265080206897020257937498756486154999139453744602047138370473752299350682360337077153938419434714311220816728346661217769849036285157534829543930417189303227611622391927414491930417116636167939018440514938056459185096231497344037129011939032513909859858254919501833255537220240114635827811785676503439021975887633431869543364021571331386082262124863760495510849149927669937513973552048400853239110855873187556748699026366540570878858157399527238959968480354247814501933209438948052193438491265616711867071333392253101739237327031776325959502603589675998934755477873901544066309922902223785121442561982011624608591831165470670539363903633636339611085814346801867178589071686218976942864911671431574523786622914833538417349903763347760084232384263633007141679235245582434557818038592135677826015609359402794915116711524114010203262153304576223906061088609419219049997630005191805613548543146525465424839100453423431473400980038424998101647352641369917001978850847655360480758692729111144889167938883693477051234819534963154356891314021759354726827348089525861286395488516009772315417362440155342447407704538200379238925866822409124526080798461507357288096455883953860817669185091166198477249991890180798952015605046751462439995120625596324831816380319573120925727155716192627276022569277587848181988391566020086248091460203880873882466255477871772622153514202415131404864936172496614066496653794405004486526753208957582361322190637736924590388432936128684854133702576795260166176928058501488855723158919696855435103440768114004898637302823120908508853342797960882258864824389653636199009157845922351898513984471853193088974962410014495831789218295762406907091352473422977268892766788644653989868866630823401802479064071260438957796513594759278193365016552596042430268258652384565270398061748199661030518261028693443553510963113147826670610495092621548138141949298313457980380797148360974420900304065358248539756028065770810691822077260243827390808226433053088686855023197600780622124745024550184795709618882265757273525515987184424572588199541530129238006934914786781201981669509241662647870504892001742732976166842679897470835656479908164111528247662019208174677465805875658524782302748960259688475118941929404614357156164436012329650130650150253645331342545908588303363657481569418383706652652609367024612500865863358702934429754106136859205673696855163068468779606524785008998411054197056242059251830079967779566186138334297227601259197486166317705211910935914213911794471772755992903773264553804826185836659343253539037342155125641614138842748137749046112025361328387108585117159612836592564935051063421682373589691703708115231509024868483595814978444339252605704275972993228649078322112604424048527067242188052603859806612953338969818366187751764558446313798100413075607775780448945316350032850526147612671202500059569356809961400993393248949426059315953638569201173351414890168132457454498689876941306686719180755028858389662108615888550951309514339520774379229036209084286369004227116010644449103340120734135473583725597939635661876090922422455751881714628309776936180304322734277759376135167307615684154823375114302552112650493249701083770505946624495732794953167381892456678689979008131938760567772820526144686385539517651077499285893807410703545129285789270980734938074970081524653298173346953725087088719761854956101717147857331814756527912105750465219476743727304095683852245845909734295981367839930301473795386551362969214202292226030510667369423456841966605111532955952999303495230147034458921123462941198685242934045576891712919849749482029329199052691543258633197502002376239087951492877245057665225368165393329616588351921889895310871212715591564486890078016326283799430540216339631099580515636228607422509675924341282787469190980019191110414793371619925948063506665766497203574213911582255874880808949496244510639635200419896285864927583472730023307143940118024889766356824465354231521140145441854360363431299451042083680935834505381874705577614675114025237536093467908303774135983941906664062465452741251761189981620843883272400607230814270636972594148130687552960611769726577242814154110071705215082861493599119261539027446225396442898647672133803920125383229662268202712218124524789152305580074712704443558744171835262159593208302019607989238464488960583167677076159837812187367338817208521728369991919462502958552964853952162678182423542730143107087984928416829846856808821958714594874803777968143793804323123584991286924189076402187101537947522905852254742441133996487534219556900068082260413480666938511500206177496444533552864283910562657606255158814800212916825464773345646735838478946135870310893081129570083145397851487305097386374587236679732840166219639407888719895499984488315576008071048385799537258674426483559416025099226654364626064705381513387516931050333826280758774315231398470792764956819724908161491722814571290408880435621670182786024216730991951875194623430677057243268877550941335696885498004115051127637105195173096365013632897794388386593735901226942150751883134785991914563855017873689366288243844582646573819766218742064421665760823757674388285769669947253340055623466186951498949729538045905556129669300139009185301879266117903991703506715912184686972217425720352004386622930210181286038922829556840586859153565020561776240069963022805507707568525333135771279573829251923831204696997073841196287007475791383665263746552176677412966531703356212601925852677744041422874281686120711812663966482825620930965638372662668796488815499187296115779850859553818454721722390912711066064585462123772495720024186065906917999431511807734574360605606362565607046965367743086540386677434690042887749451522207498624302786552121853871101420152517606654450665543134481024835415005857183457981636274441703753021925009003005607042191170605410351182329889616452584945241924376999014692260674683242028275722603427334816115852519055228470825699769399017179114343376553173896260247396145840140675546836933735979992983843824691515474074362419267438434851120092735117063629783932471723919579609845250468360179894622314983899571321910706569599411867389378090669016405703381094817834264570593158561977864228132656859945549501070222939950003678754119435360626532986185802678863785273037897299621579006627143136816623697513406853493663217565478314503414200099604175918139071338515661509123000190855600376769851601827905989544304981821766203612144147324522903517388066629658961975935837435839909301935861251525614096698612155214811858926343517933303872418742663262624270894080280782569012176227975930087496148300903494141578711076114190399122038983010843826199264706162136554725437389076057746614551372772955960584151132581509871540354113088642664742164718965147213315655344724369816638225887067154515618151164351546120576133739231463977342264528489526295836234905832911944260209301059273087531747747947399475356853010853505155318210178641443630472453861820044904512875565079901058945303156464765317099755840298413258137744353722466689570502022263962897524433650927568483513025921540200262466352792927477802063362572611188920386612786601449907331733487683499825915649582586966449887998083662688658028204132617421538943609394289627565923075488809483959692096133666285368227327904364995551675953767498658942229434554461747132011847328693246122355776054423773118256345004322975775218443566769242266854141380139410387757134766962006471471221806543812224513693193579640160103938369835242140434721032650905269707319395630650709937526457460319927510690388832607895556111167138580043280653390543689491896607992931104143403051245337399298783355760129969883201127332369148368985032199603677289718037609126766411548390354226094796456709031825868151918172441159153426586149302905252473057423690604716079124829914108751767773868056853378789821512405901224924932585391935981268638492924143953349480250926585026568924540369598861495773915854080454172786007032268166338938295372975887075889541978173014003324534615643121216328899882268193250186583598002565033325370922843181987768909740843081452416916397468442748411010426381984927745119129913674737838918997792947362843787115111744084231251189780357120569400865407964559849398209933616298266458637791790996989040625616093946203041328903049132095643001728243424611422327729587074110602586364053012611194315426108439135042618027083111357258895156381780130065264396422696907848891659187342420846953521724527716233789656431863530631019197222957472768438449075276831871568911924324585473658638609581698919380023034579198320769387153758971885900294434878575077233898119439621344319121261107000092606257121939098088518721032415207859323133007127857679964525171386902860814269940749427426701081630624081483020926009215114231179072267992135550659063754389676813034063781910102129999900715977157207554740455887134741341149484575271735143258326797174269788486636819339539045152139889646108497536862940887195614812033081153927827348039872326578749985275883028140100157144232326666548510168818251565596362127149893299836046544917638878048598111069268386137296164046488384167010289062882029250440099386462847055704650397113175804297575286591622392224796405803114782074669573401553370031981639731315438861237315687857803280667398728472552815177573041387059221398806081085445346448941427311645781528841900543602618806934340214931027665410268272176853104803917113554833148964868261209980971167609273374742101975941636452863765047954056715224204717695674623145206061477682834257707873680431839589625026569335443075541740392970019564319261522091694634240724259403829125404755559021967924766584234951078798637021806305082996030898085477528568040867466368223864460432273911040904374356211478740225867943792690700359704753822714631350403523687508182243870315088294155243916621447923010686897575925826434101416806703635220150659699699532220479797030981024705350344990264653884127736689920472119905505415576722006140410533079441798204784254303497635780650716564781942524764928895723087331657853789671366366168610541257752145763703965025109144672476690396534212680881131880885580776722988005048805497951800350898714843623298140772709262597724287842738085262125236794835104111832916951890885623864131617830211949036150009285586014783750694143359220292164694513328123009794322236000470706149338955979701791549430890355184722032630044969706652229694755123213116629360382791193814389110627993097312651346125057206004154547617564240373439493631677384333506107338008821547632935904892256563498975221003045552837754912037783025719278265676753620811111763050269323879028374409502879748398419644568564799877073786888774919532740436702419693040504891202951227245753808432473210861779586709271030415636570608445528544856093112124285157093879384097932855722294928032453874813886212588678752451946001387776070629791093430984200273020519464820120158672047392631588728754512714042209425972686402247052696488569418437331563480825414349053910211421349527556107428678829755761293041305784153604362786946481392142429617279019146187590370175796505314588164004302812368818656367311377308606407957433678232711795220543662366639037842916119519415539596090995525667368445192911180084577544827344983292763042900143937793049132147027163433763433512839934791032960676046057138927997704926522908783062370467890998146866601790987334161024497508257478020229409371765644943262196622796179388372808421770018646073356464082687991584534526403672556820542986425271556898341960451083483194413919997128532016604859912970608716637624096462948421917020218816681839702104931516605230284153079313976403474585146847697483284887078261366180469546157459022128669161795059533100909686019727264908897210655965279111398624770118450439964564272780982278651286897998467978431968349619859668931255516095536764565253519926098057784771586263808329665334753213812376218522320529853325413000781018744547871309291023304329668519861540551520738279305321091907853905864679262155670849758977736483913175055759752617896265255237534769618473430573621253248959300611432263935652628662796201967843009497870053393625446332236634172679723045169732178997164210870994516767965591954885157040828891255595363796410588506333079934379182134607662212387591039441479715355582563668929564546177829057857697523943581351524561794562002486378737174526532397148870749723681996476414061275025706914831192469492364237888257313409687753228914130280838112580705973550445497790868220979297926836474262106479917556014637521849878922438984010537335007584895204024272407929854817025490287262802959366897381728894651656309021993043361011040539636269633167999420997554148275021410468435987637711313756040644701767677144010759027537509811039528673031324279910774031273636504176603444947961986790390539891278491575213609743361909595348665659432959512752885823053273714723502641606621397106110086261938797111986070263574915652115008205922774414559852157057849763941795114597876532379592685836490910444207197863092729544645012990599583868605964612940205517783866608912331609494733721249834699714794991091155709906185974789130517375460260637161952042972134157933548215237747203260620615128570120851135108495334943128539909367026507450302262487356706421331382941409616381812229040515916393087283887319371858662866574118652988603993489227329308166301720042095478549886977592256122689825573855226658985803871840938591486534151323685317412321987055367311584263277297155416291375326689607127653726229330852098616893955361894876881050362286189168130819059051817709743279393710594375931361129834551887669109227185080291438086871471457171181163256508618718000964820597414487682021546933646446990041944736321620671752378629063905681585743805604541239167626381619280266193291688177128009292555774460920960124892002659258716807143551649550583841593924186064093040761273743979877696406389584411960334795557751152342925370795196251962409013273023216332096172642778920326046840151180174608252541698390129039406424038060009594486533944635937385799615232145616851592689478596538941754195139261458046668263216215689723562743719958464121142759072615794994949633417818278447884698326258202008951135632120124437898902480164056949841423660953962533274369027072029673640047294866011699631168916872626139013134444253574251830211476526839089121768258812569865060483560014389072436001043999926774919032997824838399633526866733372341749796139033207523871403134331750285027418553819111970849176868546896309907078143951338476486816808893401966004642858334205564650761331882568274361494513429762353995358105530304128064770946694967221133132318532464358790818858449161545356458961664302636917493253712602538976905185227478538677132723754098488122757105359664576569481514528224574509957193336118989571852195359174106925499092064363619142712099891893114037610481041235987677426042094513230781332339334754847749412903506684135955721858081342912926111411328869016992823645940251406232462044531093717428754456086541228971769604852501247525817443397219956415424837543277143514518484109620865608988296826295395872724886158697910792748296896351752243684484513999434149832313776537802069734210352045412351975918815861223880812591920885546346075950132021139616034376339726947841474904336559439048742040798979152010895381810686107985332666745760776400926618081375154312046943457998430205994351251875215591390364701074119549107178544225013732890002456282610405894016620462917056015839628679373652495675362807312261772730767000252677038745631214789953502740579457765443593008523804986874140291587901319933403308611024662473661818257458738361434932435178748335073200985145319508808573853210282171349301266371098426288638924691357549571980082647175542461530983499059450952359670829082153699433942332431428258061590462172301556744595949627051729277736815358054303920442425211213958591310165333979864622679095237968265127162843020859374743361778745135220324552430072056999336361295735411881833980379938012141476499106074677020600887037432284206686516630881564030811143793166012296821144239640630080709481104919373023798355669159201069432368870273294896566614883548441765975846243180937027148389515485079179874166033074260350713541969926225789540075693646617545100671621828082839114127210358987701580855105680273040814270935540773513075618064657343667536245438410920058945675850097259068968618602021398363136730079990370043812063417745610551196770104145810798023547574240684760800214331858131854837989018157265977970631234447495246211765570254426552681072882034064953952322295265416445512958134872897981086485161103367115341010057245154811755596033718466114701053360864111058755448531714816629933384692555445537273216868538555684358116878873921206187661801421191612428620810878240619498988948540845895376651572754866146421714611221327356874075054386092831543461228175902691286153329844358857929666482071132246904214146382988057471757629746651224331195787770937438829430371709894748452022138207698530715383108542890716840638002158945676805197053174767402269051322834636675940606614503245104596839423604883259537233725211778906249744614378682095168684576110112436446465962967098123646506383768546834485017636333070949258047072782523913523013478082820876049873680720327370999691537565518735897233050744882261838348965527785286046337238413124869756070269358914117592197362489842155271516456637402003985747274598631893504488987407807651237099404285785303873896676448384230307173099843317850757162170448952912420494333144538527617080249287835373568724810208935194927873061601700040322220124854427602429194297661613199779098224524792523592209643208159417374063653929180378782408587564579069589246164386824710400756782541215653845229461833070273074670220142490197101133520484827196560943850948071206497238440596737041329975180370264740337092742420666289808998860231095111880063663680805473311944445827901712899683555497185875437445597251218297587134924938759394633305571070612268076598512133424098801534270702928059932256768127541115832291096035771938553207368392951402221284307005877319123241964452972153052138039751589133961617702691509567957004837935558293058692963460171120794834814262401557891577534928005594998542233300536480516970134954431551792306257503575086646760429358910391504151408567642318780276579969780173485705362185775173685164454147952635477547141257512968748053254200521634700893852413452846602581601873573028544628299902723149473356732317117045516479756545859294256626869311104559185176721154025224627539292325556391806560521647350087339653652852835655095223645184565470305693042193218381098570887476537254464157239132159781963613436433161676668713875236796162555904466155680456785637928787880629668237552935147623525222913960319452071790177390445671633183144706379324527678595241296963293318741820517411709279095542747318363838336672341613341433050830871803932131081354641567964050047829836095764703519825274145109285935854037951642205872558312473254501079943790422671897173631982693152160016919127781779335647817182169509647036119449520004007446442378693434020320385704573677167229192962465931798591131014345378963067335305975446712196919467451695166307154408117929975878712789672078702582892815419317674864978197269755576959770023428114065545527797216376295992328225689106755848728213929852130368622575054563602401664769631579809091443445850603040413286214151196543368204230386081631235441557006044659590766609855082185326527558788652532157475076266471149719185202832942023558030405593673884479758345117436603244480877686693493521333916301316144462993534133974488568376441010996562636208681428339681338315320172108116932600048958056689279897858489965503187566021070050625074375144891886992751937661849878135021989525099920589510807908111612900441297989407124438431856783046081954874071342943016570026909982828833982730544467093961998199057285201504641998559730816423498319298979900534985944282948976819723144208558148556805967629275150211854669828730458039883173347659180474672185264409583309643792018713295960226254385924182660768242788827180232820439605538914048966771323640932767391647154454530348392656588292207236457016599485316635591740914648496884245047630704089838758639831530883189965433151250173938660781015190170313698235251825688776432267664396843369442143312627186774825758106315109578533244055995474749985564711564051452394870747508206608256014784883011128384762445246967024719246153612899335505197996039615387485123323127637545830819297054140230773666194709135821052470724908077372754162824742995553631984419342906864872351517461352935495410337174301265136481460634676725466295187138046593662648655132578341225444530395983891100434946153096688921162715231606218202269498368428101353669450722314335702650125782959931458615698112863240987435140902785988589570766268219814120436290337441666279171981116627658722883289079626938663284792444488219254103248735710472806726110273128508610474421465269300365448767376915189203728064870166809122410598913560018122220114837042404200493930089376048677333495607532978793808922426909453107133386152973520771422641216964399968994293596962685362885005975518468560144660765001638218650765217871415843397245664034450046929592033226280675773614452903369504185425553142554775123962674412143970162249423548473581675464519551892276295470368431999217143025958822824041207055678622414511880623149603306169701801438030233804837717282035263403126022759625144200777231135318287228060510002012420699180382985644749451839248294538003706247276662898258817645270777700434198444853944962634798397861045274732992909001548424455310873563667874393981300200277027690799517703365984857532641595862567487267341554026658345949345109059674328535510024679105853481488275715082763096217344118849804228430904256933608396438608571748608629325969961277755142505024954974416232663055793658500714241957212076843634271585329824374675445632150666744959424037871789043418179011174883795460539871630165313290447235307458345991271241386821677229446118690939992770699491864069074033709082268385164710399514081374652632404989406032292669227055395801331133726846579535843652590899217686702306979375180541545586105300313173995766851307548355040201276349090821391006326024162351108834770865820428646660006437076987262503787169786378529984355254919810672861208070405896387640314212212811076741515642489287603699513694277241673128151428925158371062767825930946159867454471328264988914310536659799864422201872784023570299343300458087208157281321507833645238278223050100497914988805019173175587888313306255020837576944253810175370826285173438464208699887522117663442555784537527961120480262506322542361721774128209009634139576862188193095205714893622271699935751216959000280670151019864458195664570632506601252375157810162694779699550683847106256660727996600220765876628007271190318283023580273565480723195512950327319099819196023108903315115814581789955320603508052201932668054624929024386251126455781101243441089259519597850981617914735466193307871986360270521681159898275560372410248021662648910746725173677568344143632122292642088303179024656106593665328076141647147948371014046964336443920100865134575512983061999031193139499848925295534213103995433313342286560629720624105217032279894924234994586383010241163272752831383111121425725294241824371905787040044931022399926301251449089007837360620032762827401362066539471747345817082888177393956629541659145367273199035786607075241641150715104699839991775972605524799245917845429544873687674196096971347849153743250470490478874938384037234045462028374175125427383419341198133406813827867347888461299523335251969427450250824442896752622134260647815315886316953634121873797940410665037045406685904162704390341807658842023391816041628081057226838183586381218274395338077521802664371273600712519044898793111421741885946382974737310417729275768330371282718202227510343299858594258361345757654061224000195440346217151068194244656106545900240091580300885423150583646219560546532530892566420607524560292876374842908886443688405677717481750424488133329953957347280752617175055725030549230848457998249823875519099375170287460368945938138213920535799203804983104161165738736168135546031117115278405768725783424766800422428698053475460056896860010650620341695426343127382445655799198570309448750363575302050771650199584077306678012706401792971788643037111914071669741120470618636205944232952262633454139509676596603518921346382244667928004101735540336269270149378460869315068318314893338935200012680506999396763893088654572994838038691812039448085446817249626726967313471765431949692467723128944437208573749882586789407746133547782309328430708749445794357532022603145449962238036442696284212482599776160771478352903931882860187784026158556950044127835803499601339832913662694044499172061190749292712051245984999133201151651837566136146213577558479022213852690014417069698228536019551892549314147201183054010472117056027622891267064609816691766103208668226874017327949445072615947675729930727541030352543972172013536247817705916207504563649836965837806415360962581089724781997927754818352401304643452762653092904865970432953045624713087063364774500786727130672152046580520382131528121086975361171994162483735800338161948479281103622324280654624100158689061889348236594731799139275218402185945673121362340309173197564363294005912837608938655002600188187536427055151760324282273173743776370950210670691191606638990288164313774696348722747596943520117269745901192222386392551488524420449932853366890118453458056339053291813660214607964057351801738062996941840066610380974357336472853905706859268191682564494407218896646126792597410573364031269631115847754247341564865322210879084372299503603296771588008424137380774758074502455987915928494870611281249306927028574396161687801663477443331084718840703366033897720507829812457407784293899216917168894511634245722149381504396297495806651741655284313662933980653134483791721272216085767117463149629812834732498969823698671063830671355060838931742688752821627711675742771126632751086513553076356755657090450076595935144384154270364544774583394941311358719038211293432922007133215002265532854154968920992605584101458828970503251833168938404808478749752230588120059589550512962181537523288702963211365332347823228085614079368527279019948106658750823039566645081752945977006325709465798957916807942833568432576153930235562463275947291110617920649022893073725830063512728190747587539607508172723951459218612647067184882751149227889649382924181688091177512759537778281965395526649259208455406570617070630911547896583050580826421639617668421482682559768509543527270494930673665842622591846896202586903646262688277095697095130519043574024431748538627010398752448750033025689301116187773059477947194254215017542580866616115960499675592648606862344065163500485336521719258405709060441251620228140017786464544445778139393789143436183394900018764785097356361842525648021778459808272563092220402157643136293254229415039857654331151661476222386205623532369051904907441781345322128467803248223551304556185070761130869849600413643613944582972861173995061167721627608647617837188832373445606990709713846531271120425879212239738672290575480085435245882409966640831669163816219365003033399763101853032076501146142037594966938293024048435126908260289984465497297769127005106215847608328866430475744830221649732371076654938334003862750253825378234166864190317807050045888193974985532558782490487491585781710059259654455259783882894084010311298383201036020854389560953346186100329548038804228406514347990761972346977724077152604435227408108532340218186605215746842999830449847972874820913050195067697357125520948996007390642673585620856477616672354960859339503936806401921578833682722024380468131810333662049209431841593167758237274483032488513003970516007392897404668789124043622167384167721050490773554773480624944525461838915216855814267583650987661418472875671405745411844696002645994948889322685391082861581843468365074030977418013020760858228946143076694012162191598290076802956401448492237892820703603857295623893099164205832451826488697041124718440891327490681883355949021774655810614357261865914280264680174973906020525630062771964988288449141518271902587859002503743133412372563442566257917433273109077324487180171151287050383606741338246385968630592936285039811461686604328875254808330467253011545307755948664610210839069735135109692132462502899058379670581278156093483294633013115187529220594747209736149888819027295805325309741094008209693120388166406864357684747367208622885217670311892327849202985357775102983425059049701024452192676270805287684480894198204505155771179846447251142091072280543313230888429179436984071199948945476447406204353410106230311706752691893563133876151453706900970703258200594431242049949409172997539355990089074891216900394729397221026077818370976591210026950478062947557974448313269619777253599690807430671997954687786882509413067292530455290649218428715499134294531163068284155572443954539760130800715028110733437996408893225048225492766140380821874705503410025673865912203316099624168781417795392229780608287140389691077994383035973827798246196054484412570163914057867156911612010335492003682923304041157540627059333028871041831832659267899027385970697761659737969666425686709967653999705492291554005178058705212642608528968834464615920568134259051008689793032608088346069413784392197527340271977527009540640857218247187554275312998610169696875045286747995858416513186251095792094438311849202335964661279056223377174309879429030498453023173769135336752078646496608881824996888022401637471080936092171312632523898127681223532594403163216933919040698202060696501732362683218825694420546886798256875192961452039272212570356155224259160852995170799857325490776571052693299781044653312723788914314648923497509101600021509860859532404384035523238443193763516337498763842974846153336818597460993329134230195630604062047033057055642389102763557160768186232164627222643047159940374674129432046256023870944014189298954239291425909575609066893835355010539158005560883159387048107269935273802177271146950435271159183255422916165908336487643236529170639341930429524631996266633119174295481536258515633870535264521734391144077520638787634788221167398450511582482323579931396934501943144722778937747633047216105838317798918617195679743034391717185565495790475791849832512295935974906841962180186240105272892545050804130226152358445148943998385528583819475892016885474482822528340923198485609056081120259193511217226427756152531998227911425351682594396787416495828541012472681575764251089683425964941430920131484463036244342998445544884211787057891416344697517479892940371096269395467555198855113684945118763380707559258542953189830600394408124395348099470634590569671868389270367491009341905142273478654635450685741636444570420111156554119737230570701545832005163713422594853281367302957741154579826667990409772529643813095580129232529252637460854665206126266390377037865422919698061897028642723349201445423175230380792728029313099541374849626828667357845202246796115105089523953558818956808203938696661434097529512641232689160456063682723596413292182253200173062827650323801097548804897546413442086196617111237934011898958181894596073129583176066401836080817523568357313865159787692179795346304556494674685550713257278904206147164887206100865015087032224015405361601420786129396975295852773011718067262999268060164466549102102369924195968463989371551074962830635730013322361297344983437341179577059172874265666024944515127013849337110539859108824991944595786393192023461156562728950730570721878996253388330824601972935292866089498835675806056598785122347798328215600962335246997844078983111362946443156630613735412296755980039059582029009319384541346209326395482956797107692842673825511990536918588066549615715038215574314291400125489299480784795055756332710773642305054760980937201172231218196760163911986447461891579679108327223014169603567254985130929411808611053786617822289264181878909818342928567117014998312942898858692529019069313204606036375212898069164055765278261563076336374975647985266399180850515497180121824585068049701064827732119156069068061471542705520964544523787607278147824608334813291870680277948071015303454299238666858725290127932310021476013367606868952320063647518428402403937916899102059903050356666301973731752566113901362924034704297049512509548104141987137557481295252636839978330310064639318895727889145626618508721876370660274010797860883854591154654347713755610186403459862540619463797551598853872446913523532171567216568000903232035855285100595328792796368152251006825623030347151362996174247169478259012444506820622594900149719033636680306032128908506995904121440850526056199384979572929034517626926166048513187594138361512753054926908526623538183227772673592047347085429400885193379407896181279382689666454616497720625523383521676249174913353103883252210281053390489326421147307198818756873296103240525090992413701636514231616044550745816576985075797076357083824848055138902806635962964555777316826242098636159485548285057430117021510196751119103163518277239089910342628367087649513579234514826308396863770486775014645076811637634897860670470932548718775581879891328959514896933087940291455164757589447632150288019330824898581054398177535642149358574053510705861078270169034301506817768097036042920011870851636008629052075198824016952552772295049725837020692533166684544984369880385684716606788261434315790745543327303857212676862746944412742795917379023363702600191533132002035670779894641780331309283017852708039357215871692788087660101117667700866354102693882955267659545140034591000674155361648643090740664948443123431050634515838154483228997485902483801186726264067817785250638024027685896901209238315838032161017826485128447947202868849373179528907679425069951068898358405027092267078644555161385927500836228724881205571175916401478106460652234190690641793759189128540481914069425865474289273684242213931667243772002760997459513611115105351728784446291817314500147800249832180536190180765969759712944037592128355282202690736500165647926350364335314770054029228974494204049728988813272755858398175483755675177776243426532458449346197502300713344935675592867278863533421674252338364371008660586127615120306816997012966764725541621530104651434001216553316457036501617797397849508622849575445629363013048407327437756230490516703927392175157050132019806192063730048442295612595585845975401527764594122590466752578314818626439085859011589320904475470661977102798645652214006897100056564856260176209161570517487547296611223961645256879074744507317445309744426092376340913519731251225666283778180214687963703563887666323330944043110635639736367773787328162225158894361458653771847916685837971920158311146563868595146714881374854404272502073601208094260878788315804749348151222094895909870335150534509258338049483285774476103437112034902842980590907439979589025089617770242475100900874036033496477740014050889284668175443981553402671743460837332349412084235538867165408911278402710401606737679277888630665077470684709029978080946229554128634694721173305252434196492505248217661239009540907684081842361130315347067396220923627253782464650225212903118528577230426572909912288033549679267776053158276832826215911389929413973382525036688781023928478900058534361169917009426775410545328923250787029861575174582334178278131117564950413490898693382255300343562294445849289695331061348767708415207524332776545927626709997137310055371760824510349890110467916604409554992167532921980639759246472611405494755219572603697453048181304370989656563218886968907245272904769986839581439702919542312552681187635973205230692572400881152640745984486350636205737658196542465206408482591268759617587504270320467320233091813912176602446822811256741277518514952845987350099415742493001346745277355042090941591592522777544701871587045940843626816651540913147315844086713094750550089205151021171431237995711242718780300023215184783448607168096121919195310970219929615396574861698190375619276190828944494035126175638655487871628334137971139860897147213658849222269920031168478504252751854452780813945612891940362949785506577960564125614255833114623145427088080925988989621424371818950088561192143351700306439360956851665667973159388640681496865560781229011946602609696328762202069937761560801766317842651524635499319253351098338751311198762236045970759691948143956079453075521255586425690395094135286367734271836074308594150672757079372223658844649653811835849589710498995490404605031364281001025207243511115334812782892721627143334935246934291638702903090443611710378524114283787334075662862975618876094751377853881942739242215269226334873445048276814621201221903763628943801382710639125258071204286235441724550105573955804640559055237951039648033410586150323384633602603466506758334091701787650903023726714906648204010726846491427887322617387621996209889535195997590789500567501940489656074188057084697748374210079116215448732711817641005191410942217437369555152461234272822259684535407818547751585618309882866162569288517567337964231434122240620874213302252427113514340339267747527441605626422434637861833461624252649440191373010048264146446902166947589190524527862042692053371807283741028930777347959230934650897832471761822877467854392695054294869551468448285088263714034556357379508706950394615107443307213989087027873711538438917050379582915304210682301294168301863452121491764601795426660804419354511450046050855330179576857917367845757619981213415879089326012151592045070786977517842707236647232275239439476596132078521749559058049595914634693503911443407433187681317550436449100981715671003579379403820365030964894221605916301657614011444998557107478259663170724640570281034896511028198243087878689448905451808094783096352673463344048793814220274021138221565192730217322008807889786972269961703951099669566826555183643978526517688909733196716505738308344066047419324228850021048497775113625019696283533641283536607562926487129619792025100013672857462861344053603076851912036644232314076986204709703193197432037531192995162163515469177701612979286460256009273818780800645166700549869744280189177763064273041033557654818289186980251179422243953448517443382251275981940401913935828655750996238754423623431512170750046112819694877833288146434932576289904998212897576076904042240955017383700403837728019770560249877087197025245110573539035699223763983051141918356948172820870560422836405043192082736627778184642887801203509646400479400106812580258031057657201322705366816386822192736354448177304787036591181639759322339424361542128200854869703231136029963455360088063311049616324793305432141569670467195162584273553934039668633119442138104175514686213501288085084548592815714638841523414772529783724622454534706698399842628021447312961059498313424253777980607703555838092034909864506361171921662232931108317115678411402312768648670982028839352309631662053416744505793020480287924102479949350205641627436544162740258294417145151188232922893298727978499712710649919072481061544859690094839513569617803493882275932210985754034239704090044039972677948919361180553487322686182639174009720468182821969228540480063083056079061207198028204191699429166560788968344302430943069243420003208340084777012576832147493301533417872412221297218574522595044272333683960158668145256693259433600287738703812832354361803022833762953037706114738685520498424256260563054900794887630172506750653301250085293475687796886064184152745041722876309772225209669507124985233090245585214104008829706867582029580838339616630421107358520669073725558551210292068576077893006031006164113918846893689878345115120170195368768734343463830973895964648640109950427565690060986065181516130052443787021071764417075957149133539729875428286745825450316751144190725036123519842690618411694555508032167153198817804500172639473116308514508325056110024293757756810511809155132547497010282537759848825750426507394744048002755834877903994625719755872131459953645973584889719535422426543385465992773863640329032132509020399314948278973451442447001145460060387283418584551653063065613359681158681265430293366252567020381502215392426182872168878105518970374729570130201402243217542221733516477637426481410164542559801632537203508109891829886567440419849986897749356088149954977523324559072257152017777312336699362398224974953205703484099049117772994546170718093757208544468593053877288101151399249952573119601864913115369416888467885982239249283928273543344144398289890869970970362223391195244759309168147372167964120262685077680545154604439694587239635952982073454521919166001416603218239072060561284849614054213613601253593212699677161224829464499087467680358374394499559857744129971368306138961276630877376258863687847926910048357913951894375377622418985054093247421447548801175405408563411367416206586346794551746392315473336035212911683743065742046037162215973933947987058908392244214742191424898631477745013115916955032610185740301170877829124128157364653432133118635411542500254439849249742860183293759467702341671450967107317395630188738905102500231407957593893663693170653171428004825961419182001093144699082125516507701280878439566392029316589450747121916558748654829126707383457005058073231374217309006342933804963515886374758020154257622872341242809471481598070662466159694340019978414132771854749998774038824662794878018176078012973500686025895301631263024628156039096332584880070769283177504339487910169805369827334566939904815977913169051542909260884421425505288587752831576880113659711096265598821162877947842279520938484078266721023328633646592465900453770320027880615621188398285448191616762032590125259363584493803942757486735942178804529416361776721027416801366703604920362023052089133883252830599835123891867948441449586294734264889284174998077857594192445945257236155951007643532090775617694730422085446857791556401243632517322224106784580892354602288538698442052163404291028761828546391386129357342419009757829405386065124392725037499774398517418716124040408207576510762442367965748177825110090167528374971802558841506904028792724956821921669593519577061063892978574518724021426187469835972763294879550518331258812201290926163213044291898149163574701110457509960405014640958426622171122492024511671917943891024170276901297553643647264568173583548223130300812836155671250772067722307283320753083641745508955745469805788458871547775847115038055398614035207602079883900392039181412291038727165302337542933333391105880333495962385493246203232087732269457034364908280228381169502203255146586305091567047968463001122375405224230607858549773466376747556807612762746037684953412953232321149146460188430297194066921604455895840809796760663524562283848947972745322847034392600181804907010764350969187787045046234065442114389716463918320279012035540217577230670755246389544551267833920678355123063050613981045608741665133244187881613348094806459840641888744775958069300252190944973588420822509926718428189667231405340119354890075133750803740562879643645328205686166402456366815742910005739804543199137412510291312587903778064511721625990207483879382383586572178693014695043213757145842998589131591995152068560791916887670516980273959913770448224552563470364347833717637003194235539751611892268221967567038038664233420840661210107559436319707371758952765661992115353304081387718160628652727173911852138194488606754374757383845174418957667491652671144480154422719127578431253433790442915902132757172366492014501861461284726848460608956449450588771601695887327047724656839210299444190028922441800733037275375683973063643007084205943434007303271985095201805445355695581972570812291317945267304255467698360537030062197725686353221476261159273215521734958794997573993467374158094587375621538936616795221942192303981261807282319899634840704795347333451097464425811679803429888279847577746712014208236842088996013146453224632226066998803938424898551637997837506410846395459899365340758793257065953134356536690979689936143167832849411734053220860706652107021547628806971045465744446059780798288337007224556749550211627774282820306487357828015933379532265397028428995127740210619964977922365180500385556375708491709690812344466055633743746790569926511775327901836743534840386049910345099877146596111188096929830538554914147819738322120030494388829559399554943714372419351481032680639257650732430080289375746693163070201294393125390366641424792209070661833852873387094003267919288163903657963310019824893018229398374368179680603384367323179796283317837957873674690697704622499185934639484154910012567391434046949946140877346185433200797385785489743130497253106396282872902173936887390239486821611371667369361240399075826833460691270677867956146666983645499458010652588872062414425821950720727786135604716634805635648460110652397823793444116378833184368080089484116719917011265855029316601645718909036229048825725237877397334177349482073181988183267328010046272226514911701133960483193243283036591410060989162401380702975263956122237239614922214283535271650997128700836114861347278914037568528664237531482297143152877554553407959225890634929199068102705478989228066787093769564061119228147535164431039571786772443902604784429526577463135379976230303081812470175671019176042714853205902413970200214430963049383226831922721187824485367360360790382098132341246286916852041582301714156161905688569186562851112072588132426424935198781321902409257379691887576806090159883911003347737224621221743800551111945769775478375135512593125669210653442796049617379579365836169077212182978802391954175132729391970910289088905178961154294466840036395318224895362683444102603673092752233763607048745084113129366499816162398276853833735903326230565185985524344848920696468626390636006605658030239606866796063404618062575235846565293484915363380824416410722410931601625342715110848402119853209618460367845734417237363231239782595649067612274310433773782276990066503818560555686639544076598050796897505576357794671521096580326012433933814366769076979929345335374478675363298897769509565148490317548519380026636430451908277492534836756246875298734251076553267176214289643249289322165803718834065904406183835639183219063909025749821046678716897275549183115386295087052185284193825500444913691340205698833376496422428856407370036115138845021743514936119782880276500140689539548941689625227696674388516642905266462389153098805501690835998870144716845170065088731490713585108222875776092224983585035351583321130323243698164503030829169652406628065322798496866093395355800824119949924159280088117524422830874704679083173760229029977927274961472243771180806393873045535713585129922911205957424340100715099764463362603388362195650163294610562413329888280101143399286938261219567945082385556083217870641613242035627964253767821531368832999243471783967646298880718862142705323192406954020937561189098663284416485556194266127395011993629377993963974942753483817689948748660207347960432775511611526668777619829829328224353361303767692689192583181058549496072399367966574842771561720568448788699703094440689896017999887317407384259179285479108361104217965262530987475548870896378571746651453588074372838543404740237616611030854376356653392495542905023374106551452483973744156218108833531895307657680011213006942998053195829105931057083560137797817555715944220741535626493093610580901699577043754242868160927416555164872546712007645626829109818910597989248637875054709470918209779263251125112411961481654434334350495406663926295141059098430707176483689538572517231057035718776724309077404742678193753852697637357798656302800068570876336924525451857968819782027352234083867168412853705975433003283928336930694437430078704876091137963092029668688134431522616530170710510534043789877925318374748670829853040382261383291601485231332066442126747650459636609660681969387086920349752343915327128621943102642913502296842684874307302530847100175663009290440790565539151506627862138885303857318603468918128815598459936609050177132355341398583721817271865341019623965582497613163418855620059639558735733597493211682398995018193151384286934678325109394523872597063826144560099733113314640844409956197245658349845209050355755305764432091829199465649216938396191521960547712989350301426676877485492434213409106444874500709222422215436608309015355207336260279897208022496379594392611999895274026257768658757582436113225559421138733166020573810343097278956419257378475285592312145570002469491923203624659204893673887101037130822467050410060262791065595264187542393620774817028626004042576820996820923237149134478340357090699760260834306615181776071488643823179294547174492842651022609117182388827717829861262368682966807041000059563697816385418471386483303691672819388074996456561210174486670027384069833732175450388209477401650204005420776623441074923989017312161436141756453658768414708425675784227073072534760519548112392419487462642169442251851511815326021431935529160880420755717851119269084929983487934598856390021824775463738665652729600312769869642486339847682671111699791604487754563529018155363754075519277867321169605421982205176013773055137466931476788310331659352387467247807537626886135757235260412582796467329480330814071620994097060406217226328302621302269227451176528012831878856749738022085676964165308875135158778892588750013158112261478952431209266172553435714266832126686283877637148784571361816731215225617616277113627748608229841863832414383961618253149878800122427685736992943114088043510287271565450183213099172856850092829747984007130399631157701428629199393241126558407687987452173981850215632238373425779633349377776754099343850992132075422332222871187593948669634438552745419943702523797294697458590118864601045349451035737979197379280799696553031138825112182201984411310081586665724697335855945318640315129459342620572519583077370130731687524885093908344620611701801780185084132835259261833397559061246832975539971532998454371395803819361690180094308549993909788138459269573513810211281501229047063931280246273032797340871091752268748888517641650398921140434690048568702660942202959477191295786498102108186606621130792196553413472340274957790823989351651219843828845167719883479202568907856385293088904168984279583984897465577185117926144034572469688454967610264546572917143176625498365057058778573502547315821931504260258699420145756597106962809153934279170303817944622595508592977069306735574594281844780613619976477512367335538105581179087757632616061971548858113856788653872329746344326990590248675354345939506368401574792187994355739335811219781737722463934326116341055538308136829803386394052544920874984250007602781899434884903826502360352758360274462959118799334873121657004547133724858804407703269581248329518806078514850203424642527777690757273166866883564174545022046688110550910819526387396302996134492936323358963570037002833489890453851138413173699145363381707526676870947530632218777036147362580520460969425104518681231315332734997543313428522061580841918536179189185794444047650831011403328172580706270654651108036634094095813887980190777177962686097058610572627741213129497353208309660564097244407378961599733568688712132654606031097612032288649449972862870982680489522538522405761749878729002163918533373197081842283364650444248632204619016982995723975753840439870020547433977591048795815103988712852865688250796305204151847396813911014804454152696221850437058528461941341047545529086023461800405713338105792260057971515719127957135657057619086929098927306145981839604142535867183083916095643257273132298540403674307403459884289494718023862091213582607556664552506761081590000596254604229724636194624132142006309775832910595399335836593930487551099729195498536926370304089618422498765345428546432714621426056916826419734314493580616198437636521696383746127917054179020978602684582980593182327739621285345677147424264848770799475236773453297291728559897899380643634827832488883591527862254888655628692474910572323769552988205429650819488154883074959318173001066628316957699736875624104083839438681635746565381880810548406505677880615738070241644116556238245064956911040808632407182520911748948828308983531871895109436022943123884016870447137910853301655596953141600060896251959644963501756098074704019478702468043854783926518745115998692808234609198319242990605692892391386940466543096288867657478517593730280541675205052185689756035223476805812173791192679746190270226967620533456940263383917302598813660918604252996723304490027048548705160691932934537549774266005665575720184093604238386739303024131327902542072938224533847613665554873316572173244400230259565779339498107150020707592093955463670764777692645643208917383579840945526183334519568104436389699476503224094208164642363551836596957698559469203167395037281308083057021770013000680627127416006085574979513554652987402961839534807900216048648854075143552701687001039863898615666223480146893061715427262697205524204589798065415216159510058949117482215807406162699694590020971761082419383316350102359241261307492820527330164024033236192812782680485618607812425851078976680162864841746010546598502267392512763142207467856313472104004573815860265729384078882947524499527227435296176741307295296435641912658038857195253352966518407144728271933774884779846772824198524385224745245211341370640342702941429081711630861432009946890991140921948628444787176654766436473563318779406283769777787023725817460334229543074943625036445517117228372367779194472071897421616576400329687792331099460133821425278160168955436694271197924190300302333298680507436642236276822764914975121315327957388139723756779954836827615515910351370037614105809379153574842358449576090812955591313481625262579595595393238645876802345432083744234561521488618970554144322226875942727101842253436581400969028558855392025060142156523042958337189658242784611451707414664941176933715869783374418731522159601830802473548879228628520044609868537758722329075354401859768321327137392479653106013904148708802602583593326150683680274472234633844562644821067959125302024991956108051763708139039420823562248219383177041657226133742597310849795580705082273888005841878674611134829816398393589102385176556601005081477475314474824978325681231120957468765908947413859591778931748289489098583245669336778251334146455012115320762741605446770838059406538572283384051110121233361111159745989177181810056278364051406258800237637238338915841889436260328386158287469729905727530722743734094361980149983989563595377472833900538808492753690088316632773689633079587241376937134853423663772952847970531302015571075278118047130478868995878673383668609896881108612308911154885708707758901481522067516934560247063605978371413030100526242718021414019480529848329924020310149773875136126756262039070612002492151970458925819456541067502622358672289681001685256336866824929722542406237222230351686207965087055523005598457688159884208197996101818575606074467777865444747316564969981500531182673970197848328008325562487031469099921669358656629563294058357140265456888663054399042801540112692582347238649782553969505793384386099134259847309755091779561468898962891396808927802344675391615080982953532358885875796847592097540173469990459621862156842689768984862564672479501204471211597330828232920500338194827836421866182008418262324847133704050068273604859133744569833753692531170898606963891004170396679661782729116219636826079172255226974596144379217789086499001342575965305292778280832485273669037597771905888827553178320581649577560656111989366873949252375192435477202901806988525414678034301673188468665970274766888343306321686194146350395839984052399176895056148284861983988998417513326691831021648597778858754698271325068464509231043671826014514964230159106055565484487528031066970059726039269057069951189804003604363844184227466157959529798204913052170149703501864076074531215663246799111553947524920317544545409646259687338021662380629151271504065925552772982109975696499457356313452326947032774090276744561301965940016127913318932351920906640015386373147540200121349467017540232087277938281666069982139897529226815971050429090254925720120751945389403949631146133679250764834560840570712215129478203371575394134429535669901005425734049078059801507007671820724109806935914227352474452790054715253882905448484578112446087330490678738882322494143299170100865135420756756122402494486536293707804825576081749925833536506054759775462002898134241775735755508482234939968251755632229887527029564120254848938175922470776647534754618728586723474468587421547525982872814838405518901787668141962644955561720658622277899846787647879124717253540206187232749568740157386500343688909620466136091484672717656629754718073004046904415120766135065100384728659626077302676867455232430792096539298317596077761714048702610733112050159606072861497805664163130032320752792473967538559807844166767553286280467496740249618179260340915666508855561139155057727473211752950767351640429325822179172785979686537972642516476008731595465319824595326834683027385339584454205057592107752754705602809302746129070035846789790706215358466696607963096354463528783983377812566325044732090091249371389823010973193408710180277068020699487567986811376855581004322903592794730341863423799007678271236475904857981734532488545885893094281462363791647740372515704830436254562036508852103625030715036379862714710463639098184814041548712068582362073737668078742488983446816156336242678489569108702580088594579716326754958583515801606982369997328737698250950034664568243669915444681041865825654578739201936797509431015485944508462309746941232087175082327526343853276272127387601442741758646926547143696281395916258557749193408199120476861690801204798943467436612632613834715579894690161767056093608802131428364628260115345487376726935278761868639051320235969231807408113601657831235075795040183978625253266951892122197254121305250598281360250507229685612602619427216086586105355937748554345786338436264051149393635967196342655769276205753760929676961160304912377553734252172727705226194043966220969479210051129972657382167091892831017338558901633926258924939093517400465430364660999795857652707911191684234246886518798147506804823470106879638328528302398306467061849973030853656387741537521273085147131218566702226662485766238516263335110523274677389866044875591858558596266959453509585079845870514299957091606748664403303741658960823343682751781342591692829327963382350756982815393846759238969769953147723259493333128441214440219552014141844090214286989878715737621245210597261302188393233288489869980861415075350544847697636484125928519161755021169887024893651425796862954381909239141035314529297315796331676988981659168148996571949047874308754074466404206033480873030544315617090943033905728873311872632239620977589227929362244776025553759124893316893603945330428852475532164126797180425688617385645116519827546725654487207572346808125764283229240999098291403393104241127376074344834603957522135680164643437748702859083763772350841228960490589711024790732324393895363564233300523774420528162807850412274406592060697148114085908884166240395529742501207765736582803917235846494556730134400112589984434062286832899560461848618635715243798064210715131686898923244884379611181502874719008754547042768327592906343064678537054091521992159983712306549042626256080135862375066283444059739292109570057732129129206815924937059470748789101546912416214372272771935745014585305765432542895272070902846509638541687448965653038294011106727600557637060002211271459392475374379134016386633075067656621313088766878810181199399687213039421391647398534282747717029869872411301574116481733205288491454312569709019949447709129044634630220405932031033718003505255255148062795645396197821341085273458304037010190599677533162621099720809159154787190665041174832401338628627517796900531971606487686913794295587874481805572284942098296346520533469699452355349580097148694361827954502978397639444121926241880037165911583867225747439232663359550437699428079012826290264200411489132968564674229691762789479974300635427783843581423497766213470592522914055085039879120267620973868304840952410620689487791199647023619669943260141435682691468060879518931036287745579269360668073030921387662810673614521225031337498619531991270370660134646734131515686061729413503951953704894143761744781424639740018315196114055265431534406925434736750879814481145713124845848301512842603482864746407340237868782026798115999685771060593333036948269664736566154927432221276099606402189460909527359882504600143620164194453385586173340135304619830702738687753772931321288900142440156637485266650780608220150425583243331399305862787798910470803173923288302487376075175728539664780610503258056950043921995419403927790860058673647743221746913050819417697724173513114594648841470782730920709609045556767706255399328350017764799302403297348180334035606747191461030273632805261201089668985989184427206841677190139535084220197595286810145193131989787045927065694940264571247938143991147346325702943449716776023268354135142733582391373850201998116283860031611603538103686119266489059465521312347476165577652213524540143346836519851593853431868394181766248310459977885169163286171601332104202376420134098336540544166171716843407693634226564340758748698812525137018097832063426613572041642717987912809458801196678255552826171181493302713139183575944111455406783045131850206880672203970080129030536668422873665564770974045812089367709545362853268088120795814232441802803190994284537911029394835502799827696980910638358324571531626843721308101956020096209360016370143088017998129384511561919906592343418662658175204241972992638953353795205945947359631689804041120537320059325269432890020077729332688580272320644497217298983845663704763557150783820458386167669323494421541725612751225582782252035940095627900335555827705203964431738103830111880133448037624698717736193365649653354015058618174982744422755478804992295480703059208796036679370313653381953042585833777438238270280501787771863539144611858957667214265146558675417195604311111492104961657464363543026994944554478019593464648172477709453850034001776072542245968721033978028164126682513920392666611649358380626499328750152385158239332697341109375904226317928202390785803789826838326820417580995482385451090478473171515306608654576237931099269511803466216242636558250659808749531799427882376949663586372497294283230985894924107089038711983359878495249345586508069804206335841255962554164540641562274898247051036215891612905819678479565664446195454730128557036504270275637399370310187274944788579033845991814063570966297581620593451721117175542937109985575280905565702019391199838714355237500634021563210985358934015934716448315971491197241887159159274684095391718889394211020395531527441769734192758721236271474382955933475578497900862684549662712655919760039713190228832489996092994661764927742067124959965956050884302163780123886440502461458160051399818961476461388953445711757902189407564250588687318104516460795324293829001898409595665038693336016501893926430109845736287360770257026384266207539800877481171299673108735832154140226266197038158649514011290527131158640567377248784488982870429303315154109726521386854537732815748050927969329804837207267123057250305227928513641979143452274523298056752847076148645032613277568705191738969491206313159005931397034204436094384216535758623736411138556130509548563958077335820240028809128743792979002911770339570628373530401079852508584263838525850778575158269224116665029161029102617784388873284546134242001936714989969057571281837941240698312236447520518781487715492135767875849175468103488446798805029693499242152377277651998218561528310884034465291801551922877170419363896837180334825562029914274966340440921812253392226509060503415936347837817533684401602319720546652660236281464780789291333424309817702721063213227425530677530426467140263729719389613556698560348634654246260393133024539061874108510687612632036243248083440173359778406746972944311703633740053900922201232892481884193673262228137960824000714924679991264120679233337392975074417326728237845927690475971459961107009922128809682094133727890645823328675456568244113101282493161016353599880013037852308316532065450904096500961289256818435712161751531058220731440180291125552065580685358063100684138201730182245240993860066266981774922484935182454125033215756285680720455144679578144389572602855422569887551176787294872340788746230414782931613865941013743648371731622965963141452043829449942877748988113931717194124898861914068992350266243091596381511975348654346952025877358885462983149561308001340913111208116377289332852894501851867599162331545131566147221566831738215528034759485636417919976070841067022498030839474789576559130312436719447641778139488559380991168021138265312695273287871632552894299895912989048118033324366870968718967212553391484726228507286581949873742811269964838361445991710389418898314868568936374517296119650054840417540383954953393870299835975369240600941952731466706445135027417038991352803105064090853003850668064455784947434678605499043909193392585353629706842209749598583075050434722844059836262529783628331127786722200907611286399402101843806111480864601665903259517572847103783252047590566020088371110628125219706690422536110013100841164838972959880627108403559069050168554674705693233072657781327948682398128262094542409251260550353248050183470658693438981429922697988173009441258542125300938478944885297505724748225984782404624051345274720285291867162829609169189379378499472382381473957210909797938597532542131270889773020382515627314297456118559944157971920110589972596213686660518366602932113989933043602757092686976454171510069511324192426327981466913028535725031643334685953910987008116610199331252256645774895746705399896871562998413879795530229512069436628183150941846197447513387225051555156058226164223621838007412560305549951227951041543940698556416246597726164785422631111699636239524589272233268298254557077293735225172898746469973887174615363041270246546472530080646111226043205584635224881972426558870806867087958771523376716510245616582575744889688280925427285871960152182985018544998374492663803158730654017806421008811913765476187745889614405696982704541460667131434920274811544374119022732899571487280548372279329752195432636677282729825320514981158448206046099765345190695340880773142493429967416622078318547543433059234044789314636720119092471445689916853817302081380820584440879424499409750481591822467754894868176586674299123315979601704175370304636919069075184749623783394481026888604916144025181986772799108433354310170537541243124042819327754190220099836956731483626106216437571297303341205087524722643494409388228413192762945930665565860533861305637775051124735956437530911253184588351502879337198905360622511607077916352854427858219803171886347742449755790665920119398084842740682089475017132187284305284655894848026701182550961721326285065259522872992981434062957077212315374602094310941883177348261087086419504822153633666315576048304899764527469500549876471386100355880541700718265940192127118114892374934346017337218300469218109954162742248174969111739529694501677438298496248645427886884210162570302304523235723492564689114741091354580329274541045100882975624154463237139508518860599820826846261493383757547793495331272480275117842304661901858797998183166024884195365289388404413380100431926054380983992555738096419867423955745006374464595701824403987678143999539310817570852502386065647300109561251954568607755173497983735578286516573869901654167587483717710090516276334416881183730194492639839909871271092978182276611269500423036633822063799985678951160167532452528795299678479625894239280784197357942546850221655279979806799917163423717211679433395232920750348590127999615387506356771472480618271474535468637197938622058670768733362616407458407663567001025074928580448747298364732942675221786457043781432660623584486154985078397634798712766352842076422151806839396232424478326547865194954327495600355705148791982126477220236006979740424080556242566084062712204868756968419207912176517959598491323674171585979097131563498809588544816757019486015872747426925504809935976758830093495860646466300804996297824611991855928521998715897957092579043790527854716818602584580487476662998332452720490897430370857042221203510329027971172772266176940803434509412214704758284376537150514700265731025819528565290641944612274483748977640918761166650301493363671863315657595899373384336296795850934350446198520688098268519204691822730016103187362788041148955784198316889215723256253432258228205140317665549314505972472902583431370113214340985048613790358561789698172639733841595289237394319040648432557904907677096440877796177765484087272096192902441726307753438074797087767975359265298884660071253193159028201870354762931868558021585716939317893761957172863144147998095338364661751532348502015190230494941888629103283032235943748484887826690231505293200330359514256772734956668967833243496150492722765878218475078093310998400128301022170888938798297233078825285773301933677252749991903005678855607239185146421604414308523527113273659742080847700893863295143549418439398848627271190643642901891075662112876191313468890240875878957558877947640790621337820371343730363187872910817338287594795456266717022102930987799518969390395011430202052440285141940538263504861055960600000272316530343186902264792227518837206756090314283799435161192437224380208741100686295862750094061675393089198758744162820741867997638548836025267974904238993490302959760861267494753262865456975597837923656898552907251594770604964714926750893760268449281840252844202812074212866247056739635952651600766086649578456313495582819800188992210188288562051685112788164924721849882814308821149553910887239993170823892343546783004908772206412951557218810894210852324138901398325425570246933083825061836900581154884473279655953388209122646722658850024208472112138120089660888401675005701247336246074727165090210405616101607045291859380062188641763485960903130480785951498198677385760458685835907352090593294802909895766237566689389674401527619363655179473299689192198094511841562074752915347712599923945132004219518087748913683293511646652469371913160033785218367329892400652582768251330245691924233960353080151825354641044976382535165586723256196720280687203229342797074179674737041546215135522854766194566454874852271255907424283412728109169140677422478759629312349697450942389708260716222762005715378109928655539313463761278024186676032391582264519562526850847176408163848522745929046638169744232985366821068131780776435749998177023927450138325088741159201663586831984010976488866510146815504198829309641925907817059094139042547619096967950844653064699411767265909463651786750873395259984708553877819484397450329438964607251106744599988324663597380539879886457640834489271972153167479560081946559242499627151213271507882127540614799443525848162439148798546894404418768980500709472829292575335535079743161165811616407398216056275674110336768390666800738056402364222249404162659634356239154482230913995712076618872413460771875775581540673219921248536993596821005409918328702118604949503210872575169312744417016927115450073374742712512686468413631481435224115989069783669069295981492853864798572146895197075986489350573161787828597489869418221237746126303136078435254924089375213754982424212208313480435757245099097589308744617129847576875090807076436541011537856487143658558726820484588419274160754745951331627630952171103390956267827845192633359915220193896307797242672722178630310946936146020486498190218352463128998157655937146570924192292033038207245838476611192521871544577436747046958705087123952331129288188594728394092556025971649307751328293330638670557433341331039293608732125462619660871305762350298263487157383686225031349943179141293109392681250333995737199607774695465046742767615680468498426817305060171563279933037280615511880993098437382682765978661515392826177104709095216312626930049769624642424414619863193258199529150681763819847897762351483410654341644071394581465545825785614752215988995911238274726132296888340394480316156937055403872323699605950558599137023415683667969005396689180186104071882782916897764410518529026532721308263640892905424258417447195628856526923050596880607454372745348290647184865230456045746466243131730362560430981606644360986515124329059749261325115858178540343369569988487140924439858391605462684906191890032251097265709451265585193353058982396125888876249342330189084132238926733295435451539752613791961628765993873635268876233563805449835740566562148542169496361322266986463310745768532721363919804582368079334714963984568364519937347279882850191882111783835715469758397268844486350415188112934936301591423521808712115206481991778588349080313018129350998478308744148188036559121435691917631610932662946387080637044864564881917713542716239715979928953353374489047195472297236212637926096481412063488963810329696032639485558292402714269042825353502680377467397931554637492803312147352833486984360522519211409927530693670707380031425807438040665923233589365459233937346529593275642821828416008305330987749326825690689416630410837047126512037762924713825121743253051405322984192345635976187017167434727413137937471514225899732868870222827984935079410083607695828225366189341235394419966568853800615877737364909683824703189459980099452252118235804489594939678609789843319171663986410174684371851400051165106953861385616889133000107272776378699093505464646476237562568160425684851196003612342274113584642146457299274253564093703711573122928467129606634742174472894006631693746914431222678801189144150696118997160961471772424343508804706953430003427723128038584216450795729981590645310004562419557588548891690964608398780600830839937831902062039380727765668955901348374971455703827745810236661540641432589825910249528483288959132802426627501536880368452957349806754171821376300859851657945300911547999378486712366940561574376749919190701733819957637012267882844225317323313880368513029887247763846254657011339202200896136286484220442713214886389610441574675342048392675589137135161021786482220642434067676304766647080856605750438212155070804262074441440626226691081558592385819157384126349107568159865345708082038397462480032641656541822103908793036373341132754477995485884604787684751372337846484208179192466149436090047856947604581707260240555960211276958913461256908139407672254948786883247325498939326625915303259414117858823618945410653244598846872524995472537418729825118502411682007460407891301985533267780891180893699364953861640828272761747386777624894715538355082606511622992196549136855584086513265310420938228448913002245882828321504504193699883379409208598081656496304383826962793217534201068097353091797840944948677042197198550865276061196227815038167757893783654056519194889413584010455089753027921220237088764354393788644443201760549524282610393277541657059744607775541102895704426305596254459897237684754850377774051476163803138759990450789538279582570034521093351410682098384937510686663349827430917382427436078501408890291731524647434237023824074023746866717793594185294896977716851774031760216504852539391257234735914426141923088908122132517451547004095420406346756095525896700598498791277614504290571445819672239206411860594877923404122791917486354192636463398000327113139981197228088539307573464037450495179167778198338712874402545853336189649080625193474647301048982832988501016629746190221371870500022463441816495644270454460578303036594869928634050220545937447593149081962697689835762731771599373564998589194902757506876158926402652388332019090083309140042491970538845127123311216564507664326172538831405675547415651114272371387110873897424313383164132253490285925504201144616212126330878641892687112882084381736558537554069906017564542696080318086235720509615386131620180239170622874826256284764560776727273463700883031400011046990968173901948114377962972195724441884032309015462143549623475480150628679871255631952090259514446466198807168384222723917938959427082381586400438909747194992110342748671139199389852840241069124860727441614461162856628078956405481158665897883756082965372191151644629032292721392344930321947808542207404863381234876147548867164354138289680071729781584281926254056329729857153965126948083769073782658482458377589882355212235206483240513419129492905260729796150486203522448642898863553754647498966513699163674137164245877461938973705058268625741274105591666241615275055216436929862172829722729108537554298533181797551898149346401428820637119988876610555706115825312921993299535712341329433570656005559973381437679957763143304054036369238922731282986411328315913439244322779942592044283382262887312671362394924706719634672796531114453946836065970837489775577801034934122506229449705234186690146630622717205574135588446871298529701156335164307663990427962870530304532547063385999310256451881691107366171374922742075795140991708393788859147246792383072644362888850229477315824948457969317099976083405161449732030625725301576753493214266575746061615129875069854039424808493158031145301544864260316835887907437499770501944679709297683758456261363445605690997577630764636388957196189643635847733840318043702290602154683413180407289133716534601723253274600383517839080361259366298917404118189030338258125486927988616130070775452775502387306349651175049124225125818928606732085821623617513308586063958019254004738789709037803103277770069909223703813870455814761230724123191596653290338864758666498402466200907747845072614698576884952308799859437416667034319537632004878405994115625731257762957687703474650260819926936443580583468570221167393811092189578551374856345765993871823957423327764669429970790718207724543605696772254198033375243083597150921430400183187717789212755987901131265919207358718218971697559703967788894433622528849586639685613499576413004135255193606653279656785896784357334505052525705944758916930907878373843542021586196392497564039417035681202422843897905823006440960273721618178112704411355573791010385690753546906426042325626054699591448505266932067110722449958908173405193261879502905377621685814532215811724217202437539927832979283072464679598618401145118243254221672626382948198125455080370570274671406178371601481486707719903816488040977400271490200392922483443296646652052156747744962122086645600674278989129808806414279533370388289802000868110128470576102078188157026556852210513822066093285364337178613437824370764509808663342250749655020947276123673353326606200026300353726425176895626860732177274613628825532515597698742528106383633203284883730255084001156009282923582833233123923969302988768822219532042069512530451819564140067040272627085780260520121273159270610738806241208173531077856845222374711102705025126333885026381437520813681744442951994887435625905730368952904530345084887702204642694754788066139403754861136350661640993593560474468877188083577269370104075002887715553139968809381595257485581906306550517201445315439085091383296768046063122720246607542371432556068039132069351828150283669190148372433476896954203475121049076246192278734631301557406872280597936988912269030168222968183380307045094710035047947784405702933172870131453285299658316510419311672504940576055199544829871716956534534222317856524104154718844525975434002497796673593843025380110117441595181523697782783023094401084093130992895045903645058790767220445762312254466700773231163791162249607997021049108119996601954039325974552180977419988301514452137792099198836272559112242104432544438374746604963040943502276623370599496560336657694377703064296228093331679469999559055618855139170832921236024149998071617791664308532489212973549314903026884078859213834171449474099504805603418857677777303521609201152528107770287689452576640169052141146080330853670602574660128186913101129061430841222128995590874751456023478677553755570145369800276044795011374548110184775969601730345665932864291587318433266914421159370781999761157274585472938377947455165763319200558312352348260278634105715834165368519893878674791967468341609613123608826484040761629306037768936124531805860229949039907111143438013071611794679554246178364674060685342554118879252772483242929062202058204479671025034733984524951714497977622309004684525242138015757881339159022920804036633560234761750389823662071816781280402391135675792150172585131402744440802947150069603343971264733219291713033377664932173752228877154981482009115925849899593686718635226301752790059183067762473372385000450612025299413884651456137892480247452938425354165325840077473164751181148300254506547699591633988805233350073898841413974230286490360827218508469020378980915816280094708051029495361028696028471356379617701552745464608673953523960712849470377890444594760460372133373484429491439969001889886896328443060804726940378743817818994881880535404586124178020736301572843237077415556403200812084354349440995675549522850927535226149632259333236835514096680092156748699519043018293901735059816802231177357303213220560477123607365979096048751219897096482136277290237374000430919658090531927096636941995024076950023276038003945075020057969541988957419001576428882173688957573835898775411888431505904248032471561195350914598681435925942792363702769742520124891881290289849474530778638926788237687201960314215622610869376155011679403249991869357618876653407469851103515084760176079493393918052972789624560829246174123979677671212856230071838660892466493427589531795721008752856629082783402813338817562330542732655320291540991526790564800047159028827681462520775511746877971632077342633674170276977901575663320989213082819974310510597400584080226305509771056663823908367436953421429661901012043815908609036439698695848280355512919446687683406297522294249581097911953517673089682115715148863566479082409662477669311644174678405346443924460060236065532920453495127028964920371734914456594019794655473652543375361405572936236271089992172788092495312928830269926139325044235605829413845409552084420519648952988672848451731405021730479256037094642330681118282476228637678393165602981221175607346172273775666569676483375481508806044044383965913666298359301087681195514719579803121009848553005706364908158034400076228136568427176172036794945805390169605581998623093075134738197891192644301653454176225421746359599523084719035548982819756480804164764849508384527159147905819286479577262076714239255504475164487414476745641646959065259647357821847327833064050754127330667227255485616040506189771608388018780831574279378414549463871371148630159196087774446633188288011257519379303146135184918978871384905603118181000596169360858084602873337995555137778570167028357628655439904136636747690099869594529520483648882956140118645090574416508577354723014142086879479034165541100105735013100241246208627038309372698101680925212566905477380925192814524068352375295309294310930494754113702784481102516195793775638526847166622300825772648943564536150181044299003785075420164126553883905662540327323474342549063135668371838825003703002559403739638959577495545564566824448757269202464820098694703893827849282453209593606011933837172602268922058519348127340663380645987949929750105882549738448613974084501322105488848978937367122956438755912432903091045163633447401566458080085434422830071276745561782948526076894727108859479608654061706622922271614797652008126852747960702430514544502916304548219395457501636361332794537534287331936763189246892754945976272626173891041180591336367462819822283285097529231430634177024994927725829897817033277834073107099431581180633581194221143307502849099945033532646055530640539808588458875863621557151897593395788950165296407511779694748399302126183762002369014897159938687075070750942166483295954886529978860923559956222243565744001162873114534024179625557667355305488940949746686537075306157229133080246433424441995853255191065016924484919647592257694401961190228979511770045588342865932447772599785173000216418940115285082128735840994116260227603554796477487895118040838487206979741814731131885231776059776660439147764534790884280008757989323645246276982627832915247709501803923769043879454693094756437917311361823891993323360997622276876736902282091404985478097545558846033231384752770724615915419131672650693719601233875319339668811529310833651281758027538154614290126242652014280213087936405367710196549623954086392793415180638502668975573588149204591083640821974682176121697436385668112063804973652822608277159227197290162901384276120700282445767989627297809784621008264933076936922043642228196108414103862678067209469878620764938316097490446685769998546362908355380287757736889550781493864258429227336367270647005076037393773293161957401003094683163356505673220659186858260357605428220614738195558531500998898532602275477624159783133858992439761602058880372927684850681082822520602046341466616800932254875980618050030768955006315848940629963701615460087951861797221627164673620625415759536479422411680825850678181920635472125893038569107871534274107841637783468800410044779106133942065722861679662857273324725238440073158694551749548249777546308475353846484000817494611318465982519866773762383793103427543215428167441031619031247821596536780213031751475421751624786405235180174594900998861149010753471605909280836998216990366573357440750903095203002975850877834845904835642254802887862193874381824493240045028878351368366821242402371815948081259556202445633740435749531981384992312514722460876485584808969952013959994958067695309933567388535128469643166372857269599292370242959285493407748580887635255026008054952054588335881731501906276501669901521100078653568941130264301618598345174775535468438323426611699517314207479627391007048925151857962834634230682127251851520709291563603556757382075569445099682165394356318583109180240436089801627393316643960258487715986058750415643654795002034510780307897542154333738655634404383211765377441160228386871119690194809178809666202105793700171685279615660004023061034782927061713399855827066385363866419794970181361349237455843232490852453642660128637491663177616059806969481039420506791893017313480738212530349325108991061740848517954850760216351201216162125041780991617900184162582593905818505682879387822598474740176790265165194004134428075148461499812532977449762625297184438876699123519506399629423211915090843343262174241738072183326752635682079658767522458091928634566938947453861461907136509606017532417495299985832773103875050052880988476960228823669605498349455559140771773771327973084593900401891906415301123006766645073640932082214484643001347918463138731725936429871012123112366894603755465558123134917950370124215747808231146654111461102288432963538177735162249902573446185198807446072208624863062565050804252027293266375527734482017475352948761047795381805317705782806662173156276525193095681246851847162751951746760595708322150967054548824653916506032624240632960002258932836175668888350392083458035140543402859994398538245856136831881685374546458943558548409763617651190678061644533488035911756667225706889783705898609855624802347328750830203961015210940929098031385115486075059519435731190187835108440118660399952638691000481971733874189287730588878280287797084930204465526851578982116751470026065401561675171494408437875252306997928759358345289492506261876532996396759301710220755143684607599258051061321675663359402642517956091067811417371105956080749738356989395955718066158871245453373321383108756682339372937085965555640795420114098279896038118712750806527361254216467760030713951895656228749488452412278387704828508100403374654826518248092047017928188906628051175493474285291511491995488554548163604616697246117763858667697650537361780620493496567083383518298286564221577609512586373248265484813477807087843823399271045265272329665725476763176052018495783403983313310869025284950626272778964571721394903070112739103155990643835326237034739662998178342473008158261406802733064177281242773345554727317032069889881047169992344725369441596958843276438318787466466346556782769441549411810718197871478139722821407582064088531937521302390394280737035081318640900665616791776823298601870968531104882674166662878131025662045110171513057776192141228888821475946506907622331702269093711918923999368582080605429816382302176526198456178534653905896537165480571901271060447447391621994850252272140479202953683568166638698514486523103812727801946903749791288404540615927482926492343260979379404185388367705233103360318101751695419975077275569731678629317993480998897590680043493681626630542364820969755049960513407141526961780482952854695416162869001802160585121724227740421432183433732422584415789696292377080481037920888290164559876116702804886400161045416864092001324127139609332874857224664384651412460321171921703784528931560075315404736474682475416420288073003555179709845229754269609766833384757858315904464307596151290908642018502607045631324443543860461464581548445603547508371387249949493492181337121786789909592922442955722291162935530664390826271026818692448920024057117699575214093610270633663241902332738591552331614544241043491370963354231619273943009177089227727954523463097755613721216862526238193335121338538735622158319785272151198254061679024559928825772761771440434726553111648419499721536063691833262382660202675093220540732143909207699761901406599636704055903568459668719820116448812591782076820268904012567485718241852435490348499452263044739759898170926563415042301640186902404879480311367199013154540403300089445778210022579023479672207418415151347748744055067606904072383508705623856513834054234375737414752469382166769349499942361137235275974727930001116764650720774088335870621348233052139249993521783944130919184014746260078340203350063653022388088360867798676071867317455974195550582296799544459350909593782164536091247066862740688647767157322215684779415595942217392808195167101055374545040492929890109636880089596598135384402238318891623812492767285111424352871262760977681666372415563718029327050499978596120488329123065620786368702962983224435289736771838008501345699535217985943020964776392522342314732405756026963267573478342922147627358090273516898134606810389169818148167821154383540549936252577011741608766693406234897219369077790707643676366799581696246084976581818561831850077349089015832654076450996556432796497936630731427320441338726829429298156210708400147335482313788274009716599442476779019414225265029707434639700045850193560673167273612834778810647544430301243246976673653135235716379265177787589875510121402926376337449574704858011683133389504880229948226450550723594049222714142567208301480438395468785463746336293933741475295908169386912243152694384296209022944152612870357520281695164025017683619814569612426419052795863856458539570782486845250830554839953559020995744946297234153238399520737127192903162612446608232003542965989231303632295108101252679713149990431217531235463260692909030326171222093458932020246538765934366155234026993980885291616485673004775897844199880869294669744577577658306514245405426255155332977859085785366578695207441707669146116080064895015358512677138643748420439345863555462743224343866243257331614624849416357201238901045691504477289360654580349341357802053802323678282432336873364493673358181604887935113385954733917940844221956725424757030168061549290056940725458862101736588592945676860049345779436148441956441379073524623322821239586154969361457796376053372100688601644401536579942417535478208487704793729979687267718686826386266176756982256687402557397477104793555038955559597394888322956569852642258131903337405668041453135366716532976974414777181801035153531337742398231711350460802092225919966702660878931363164806590148497498415888610218036321872169311830019888007844554284952302231837370950253732351028005602311726624132790286031981214392949293354100535112012356621963191584584283406080752777476874500732853401511736518410013665082268041180392681730100321948917511203660179310415828515550672812616313266775308588360634943137789728988907109817406546454381522269413051367657898929122738103331007290733181662660799705700825064963773850805335825935156673008770530785736097206436072932776938395632982438447939686898476714189064002189192014411588599952576733808258837102743785169006205817051740161129481085139183243641346240318457901795949244329875487123306929758761893145997796702106792857113443920286835781189012237417108670406692734211454339607222136482524738651308539023060564567988465665510630973513939231406079450895067460257245085761890453214370948776990113950374294821213028883022092675285738868631115610035891146586399578212135470518233911386264367850431668973431979235518671149589068537688712578799788247902574821845924343696568117858735080636327951851353846721628943063833508840415330087765282070920173678780854398988387703114693310496666204075645534422683305344239677173385941653679276515397218069742185564705047786153112907585051533970473775571767142459542820516372110745939294018227748339480111782518763334920716866378033965852889230908535173291696204598702430173191304302639024391569462922085303688364672138268517882601373113880048177932426939461095607803262623175310764855089289823142139701019967496836717559433410556827181734690075023599026920837490592953584884005953540549210160037306215278455373810444040436591381974538242560205460928169126523364773083194662899064214892608884856621593620257400575340714587473387087023018834403046700394973333450305438802506238842405909504280489687719531920357985893749476214131360925101791276812537554903720122121473249250468202839943331347592058618573870753074621654717418930321883219699754005702420439748249354709352714784471982585150837001813630256356545524373764999195133330007724407753972530563628350579568201602589957825730313421711058309071502704593187145469257967801438870191089625450997051263979222411474571448414851502970763191053225119384993289032251873422971452581802705249809850457814275372157458011632400130478640051287646047590425180796829025508629035158446000866295154391075308564587376200141363985530438427333399945262479448027125975362659750532964597592282948039567417242766113556681977322025363886460607751823406014413416959341881117054344165834065626171533815569824550291847650129262750316550938966898931341769897060818513554773735865147360145443605204487003825635754109727122950414366270973538950695530958002696420131331614689468324898611870226743532497171898980903951480845420028036490621138998835722034647310232022977094814115747503599787247535231833776007434146480273229080340313730766413727233126962425771090397983331678712649817498670529932865351008319719358157129596512798908299519544520256720904201431388585640239996874181214859642797506140913149882229293663124142182778212891134847923171299314313599302868714139933335002662472708194545128936082369132506427999774134327075579712660540075588493573636852530579120983075549931866721507427620154209456771360801408411650823045617761545964078622164271265582690361160570993740222218550155661152397664500680828366994813249815343883547208050350079785912153234575859446197622787968876428479025341955847279540429547884447203221326535325797248313645861608626002207111745631039357972617241097806371967203974291558342634623748432121215977019765731212593114148022526533602025038909265179803601990890230343198066797955112661489485976621474947756673878591440521576343824549637439876099220982495853262365313498228816542228321914029238282309496793945907022195320283385029837279264812952201587431069942886568379871390809294991994797098025926491999046262953156979467881359675030049293152607628649975609599717928367040371068315921486959424712569253061379905790469053824498418686579614997442742960996931103256287461936822371703328142438467312075982341115540499242176527388942849517180460269092011231183955417225823507566617302410318220593043307682724958963142883138410840087090902355629876397797527595501328505437123234987142359719678717456484650998838131950036756114988542395577752625178251978110358749947706717167492958438806500665826022674507221522828759931989915912948178450135977917548453118897188170937586157964571537249802168320226161590679688552352053177714736809323112176875563409641697461362993867351058625103092243623516235857047592645320553416966062620780020247010368527916680953949495507638634162740871920935622856814840507276411393215186848997081094249064152775481313447947467408462545117546202553058827510049796908314287002269577148925933580234577386223552449012416649204832862977369658877677834400504381050090073432935358835067842651343312284976522112926617331143700936529961995934277822404147623291345489804085735989672661992494528251015304759814723048300649664017461033518827222018359059168418531858022485619411231531417066811551851303071786645256865522329405097981306403428896635321543381711017404657783167900290458874042067266064985272731942097172956065501473947995445351356290104871876454037706884842102001359729577338223887435476699043183390447544384004039486415705402741048337015938754743108384628721711031348097601989374168513158018654575916320584207621478173315854848992446485193653552139877841326975326462781756829775619214354233513254610825068330797370190243391539660839519888462967800233290473742346812022186432517483378125367488834279206104699528286882892666348061174396971302105520855873373455912038605632465086890529612869791834882601044946919704003024743064254981902381236836510196048057428829317463124693552623312431207056632470763091733486764478722952977312228603346276515619187269992867903272909228784979307393092578927818111325355476634389410678549136754238023996956747818426201182468767439167781611833735301915360840819035180009059699203323538704360193194558120368170294265250365394441266351357004670185114157581482959421700410430741956887368944512854087286156123497400037843810971077702705717379055253877037082869865512397010511239027255320935779086365197540926948127543627820309246884021468556492853833797157148687050167522567883150007866362769273636061046720739610439162797283953348637034403672668082662349472621090143970544609324581337106211073359485928440920581274270351660391945206920825129551946126105627294507447471465737561674569855577976168100584859928422345916524085362087447908977109292236330170092335459216865837925077960907849850110525412513060502300472697936275945615995257647084326928078092160706472556658127439007412029511181162309119116582323107221959001116447031272428122720121598653496993025124325705996881308345515299513373231832571907074771283331686412396943950495349189124134609075621444173609431310338684090414565252078247563394989313805559876623020928384227864422114756889991276461609497715255481450860818427498355451230002924668008118720054758442679282131825524256119125148182978731333416416199958922201950517722614511202875720433759605293330539059110853569216448538896043570985110539301196125785491040836891990069677880188978278444449968770119538453370465305786220769265438394628770354654924687869767510098627249792538431209600111614645666745204388441729150866485734884503828503822646107464986099494200011888659247059203058668897936418694971530111374148875148351464484179094076691432048141434397316415093847020125194138693858942550216703492200017717516635050079405705082624322316396245737575839780405885090848874679646578177990173012817456627504823450097906018255995723018409890594574912883294572310516469354973814482465323798224550915541576296688806747671755727827900695903931639975162760923773975748793092668426310337445795797207439577540884378968024434481719887784632069094197640858770423410613590671163846935310254915959560043556723703515440820443916038537784401060331705231619820028352102974491712572058816753005446536923712459047461904497039455216666119452854244961602566094689130317198235825588602497740730136248743155601344189979507239946586841137318034174283770926909984372036193823474827542269982589161287010174180342301411374270032748412875393056084993982039212471763266871450298628948021384603516770825008538986465243660715689880023462745748368906608355854980127403948998859971083804718510749717334513806161952386738622201269179330114836438720912840839046212683379246288474955320750389466408701861529651734025380840661298552823888178235112402588575791791154988055096476542782052346728499724670076989882897500303983017045891010668335489429408139027253586674191447262759723446716917011435391567645742588016853830004392347190668080244267197399579513489257499924498471519890175878802038971626412948538807229492067359615298427871289811080712703140494660493935929399011954913602023679034158376060802728541595214632092053992192454589926423426931225248255488264731823507589476158430954650563266876611079867751263048200794340158964018986102903400099229062965813376707290110440358029589974640280850512653635258108962618599934788592690941467132113467613990561670103217417782059672624964233080218209559515045545604475529243428902269025063074596186330492032771988215200527221911241291268403371475474881274369506183691972846461503955531950673778747499455761036546544522743602687946409039167004162287127076831111970552414971993187944881348048265419429547812877956590458395119910911173809526718399910982930099516493680305603308893307617644657365169454314744909078230581462184550796735873655628017000083405634516552997918236915601354372719468228040587724540563340433450197783787066940308725544114504364375457992089458432611481224101469855353719311803657637684162920400268808204634155868359981514207037337906289604541753896650811602873897300937617153071411434028033148092792348078754232461471614198071636872393078587486830409752271167484864214388752585771180863846085618268396222615510938834863102308252636924730701197277989746358843027316417886554159244335855273318418997964548224996312227773493184202306794164267914231119103924094163471528775639073720895990094137219529603200958625539427795637769286590028234670827308315089991501110336771581553773950552192391018468415619827978907742344929856530690713248632142594138092923055277768483498490986068838351296566405934741234140906800656332633597240880206184737327416808161759604297121672883043775237959821335010637880769166746271150912289319445223123367457574674906082682758215981022121609921327729023622648299787970231640610432446008882196743340155052585103792522550467172668366119589895160559867024280836218015163286457965230733822003159336323372172465042414857480600230970884888518963809791190561518912427697797772347754397032871206821118770092621963467142437734304618001068589964894983636432034175184602031908453013344907403022725385096595317190791508712166363722135292518389664868602035794932129607457169137352417075148888599002495688620161495623920219399216890126995420787430460369655856758836647683191798833818489541345550043477609220893041330531445739234787811030867321706063976972501927279663425125331696693495931139001171564617148339699987456117872441536397550878982359508106620661341779442948425146873031287337728572463616446971405869732694426019817676167700464084050832585966556725763177686753723229338433120489623556128865363349021803663606056428149455215342768342506331211662821978227152397435592263504332342980313802563550645051173253640522164738652504401579140341352806676450571432366503257472064047352480804416013739017337443530445766407039127794783893990750052951359616579847338616559948478994746804708282713605614190072367233460452506432734603296177354128945566190615849126974600220056455834030901458943985833419997484503101654404045132349616850642093160754162216999253739635699931087837342638903907350772090506016680905661897269023811468531885839812514621651643317390860764855001953832416151951535432566685144634264552378240985548404686149359218653074348792998846938494721218108483520210964468236666394666055925804651562465686868777040712536991586225461551620956696303044244116872005142868255758850025570250419978612178727881462824142526218062996793271059194402522965212332017748937391296729754607489436653186060470930710732167384110198574592996670746935227977368116911763596031186897746757105894111170608020137823554845865480314757316341458815613767593570898803145659313230900127405315828287995149578915207098539761632870181261843228581787830395866013818935059486239233622629317473060023217367829556205766145108152502406502433318631653699425764634218665455422866550711728974016709314396060070782387242614132193704595442630768150078621132602621083608887511804341272340087197576006743822194550694444563652868569980099802071959036235803062879422618690174453285713371213920906082147185183181109980722064369265203083908122484734475241765562443704916083624005454325314982791046324170590647424595060050644860712871088127946203615457451381384261166285704879461803349675877895708861279834012571906077242233634285757359873603814001136057793828811458287375008800542643617789814273539696570713805928240927311333087077360567520572657400962341835408846883329696442538734681074177198544228206910725313030865196836691797081810859205677207635200270084779252073918411003490069970280882055582139376357617334212145922172754157781767696621638849007905538933646867276692463827908745917099749087215771088259882771404776324546878273828909312149903219967615026964643346668880287252852908947876707886067929192407231205832318100396237412979484543550876463534298115944015166901072171148471844374873908037525208341996490774156781591193213521572701005202950741132654417649880172727013587391829590594867443189303460491198608689787035992649952189278175238286777131205128947061089314565899883662814492359899619228031968931101560049734621715453157934283414857296056587654670132575495141118480345733132855445312108934743028889796029051892814411285708053301493228410895175597919719746832242870726130188410671449574247200163043294227030322500459432139855450492278126190144429809741051780333203741295950002084337837256484254243887914536959462308971661959539428692634731569625445629628540671896541774589209313511962127587746874799552191637716248914869968938212962992459455857844059211138755863682581290304314365039347903425646358456841505575236941170032829070503341394878301394197574624276376543442408180174968529129192882645499982374144957664019330736891993474512322753437112397315693200731033429196809826440040994645346217544820722436908680869380748603195076361268052099252745303120496803691141450973334058457703772038198997841197061264502728749125747313023036794594173519853422824351463579538590408260818348853440927259280861856197433792867863729373640784821451630710134088169999443609147855800355819963290709149192107314653500016174372457900604998745899693058711932738806677028327599360744905250404487480122803000828046086449750863930662428386279350675614664022541734887486074651576994840736975519848405640273449732927526327098087577307692617683239704154793686226034043185883805086301734948264966760915610862458452678373034344021918954033705700819336084808383780511392380703487140047578742275032218013002869325211998838815882037987247765558593185446042457461032364231975863966975949057574472910300961968900554449200449147782582539372807656726506585922935712482485395323180646881717651209846758351499007622822718937585059280504796255254512836710777671318950514780335760484321160650306280565565646794192675973713426841216291834028965904201987041488912389875136164506872282816614808014594725243596369933529045602848766648227366275382288720254403679099958921261338962956305753620486584121994083257673036303424389959283143082911500322322063599193759985396756080880939669214433552499691389357177105030175833979515055185731908324030125364528658727106422496674855649894526901619443681510271728862600704442016721044602012552812166197805704547488981003771376708590198570830979994093721855179746845000625937488562210341250648908949033539989663573409966247809806652988850186587695597406496008156010871966041671800437613159905518440029477869095990354191636525125941770582032426691096161312322444320986758034184149310951734627836920097716617701318046242545608149761447500288839678952793122123190260838908763020212294091459059884006839955450734746217791681705000123808310953750047183867093923467509270916741020732671402019786672100013760811256822683886904308424530081877216938495494472625189518909982045058945195395051929076781390848226237425816239256670903085780925171703867229185046495656638955433596926337202096520906963313940924042473390951537997505184189302885581956716555607158804878325212614925730598791069181965909830344832836275637074628996580881311592585699941147126926777292991509915481364449707893931680283258985404565027618100092424330574340556123223926257170115074725552803155609144121989475313317266523229760940425628016879372750593686713058088329064918140453146026440241717282745016219919692935993042503385017292783071408622547861765719998629973000952972013623991949378152993882775239481082567292417779262449331108365145749317876633401928133584619953603822830867194527697148589304362841400523667338668077784430004661474362659489540406614086272334718291070264564705817629243652279035555856774304441893074615583749690275490548356828825930781681304838388673699110597857230935848972194814767352452662874508044238469395051105386293455325194952873538547289001948585540651746549033508911052560944501000980921696327494061278936300758646422049542448693980427764886402047796184479950479253363908592724380678371461746904901061993327385498440335207832444169870370840514945703896974054828242137089874197530266519324826559846743514683786138045165195730775715472087747440873435675934818376142025252117552305421641104549451651426401381199720471347624492143534125347363835043977510324670280515506277662126525752055382487244256611111499524787502902696928259542373536371790131376015814003129442433192050794240767821380123161852155237812656749489763180474561475107896724832243700452174503803431563063508999293078775474349712482719039840993058985165145443713381563074071860039686144732444737162465316340327363095134114447063181615091502510297829353925039105647517320472196758317213594860516679370770375189338007505290918522100468745584698599624280300619187987532866798166339533162471068647083191899418002828713775972727869092022903437812703074725343935010686547788712270874113223847166464285706646882089964286873051071096586204170140212825175530146081992660280696050439103659005536837903987051511038903359620111350427391624752749399398021682588651492874681191811685263761982148485824060465046322458552772063257175733151121043622225558834746751556197143565622844139062566597805505507094100103528707932529349539987254714139169892959438450649658396466289804927478643107382648218870114941563519244369030244076095165055504818157652899359290071926021915447016933205073254803303708172563336612736587543908750784802916700552417944638254492143726017891926981873672836874110603857495909671908921238462555945147900156920196973778604867111803890681088809340294078127343974438886364627098143352987756913583902769200078796611245445887472367982678137203781580477683335818945808900034327291688107463176924793171911288142092940369203704076474867010568185836467409872229283089542278599730454163517493152272641895857153717025516046238076365840447449475802426596708686393601933899687473422275476323739569289548886059933835544231060882818926740722240251977097841371344932028459244781526029247984084513866797538469322746791596079051155062484164335858782385473669607875715926413146207989785057334992481802947506718822509426244459734986471927704547183279040025426083297697996618583033408804680925125292439374125342751436665449771185872558543748552940624402107958466785728748252847399874891959147600297000932772181362182804465965640035360744756906142218541937993762555477752530148159999313604975154578418240858677383520129012105460417658737567070848798268599875687718276865493657912235035983894460950122375638481463368794721433274727837277033567669194102138389401657138443634751219698505389319197064737340952276538921866288216831636650433023581210104902927374078292186363722199472536162732678271380190326500532955115953479488382097946937912968113541634850909043736826271731088130684227871339211913760185093350712334271565238404872398403761481000404914975001441515265134748621766157895246688333807169410179284383263631315959362173982565127173068084445212583158103240146422985706078435681022067542815588871906321092743487061022095625607154810211525098630797514333844296735026662007200029737556994843311155149777427101068574781666172725811954334719397110021427423099133730218420206724160936057690799701086468329995116070410153290419090405568421038481099857676523691030216816429656802037935036592679354444548091231209345961986022996123758659802637982825060763487918867619214184113110464410968092134721946282384617031862732123183393487569481640769437131295770736874516314284069679140779856625370724246771570227549601743406845838381594799575954782198923588426069247070879397111774318917222056934892121584231752468586708265240677954438035171938904685183794362416872874001791491267725669321338310194137919919820356124561816955294987893603923197249999592561221459964178176346434565593765831519893749362072843719578772456239223674114714609918309902753621332151663024101733518324776464575648477562211915547652925779489749701673635819495420619853412581098130117078315782479170795195215890220579850636701248807667786897156504858074693409687211391643024697370215712754076061633026139809670466011088858458918506940205015575016136958366504485243586879426275830642781779053685118428932812639389486059725370157741363161249357832265104797247877914359565075149285151419055342842885492517014774106053549907390702123729769051020147512297682136933773548084426397146277113510634556077534413615445751752541029124053567782422199145664453624188689535628427239335705964239220034347898436754505382636028528875328000403955079897645806518975733248059185951425655436603322027162572569718384019208190989891398907635207836121339271077429947659039176625727865590475953475174400399136019298035869797762366300141645025708145376254129582981173469155015567857167423988269667276314969816029840298987098436696715208057316136059178191015879677047499977951165261943714502398358130705370468988285959588509897417921108745739535112438476671349079631401904238504080235939889909600718131671362111939590491805280140012128476381166004817714366615415108547651016809699844504583896647830452844262779740185635049300123365547506772901671567628666062001269880474767741992580904941944362964446888458608315885638023972480924790060215519114662533817441026335964104753114937183200481541240704867842447340230973595856820487667499607484538391114241873217168863068810451536641908995799156226934213157811535369571308729236402993352763953115174593187318824256360947768006182123538524512273988050724103557897084596068940356738412265216303613797774562009574904609442702311694549524222321740935512239977316876121950304810869913873491769511543042200048243089316877068467976879707647712709845559279732345112644860956913238678402531843322011771857775030269933971496025400525402526569861201190172187017613103613493165777130252599720577739929138707750121519663229110132031267673282030191888311650250077919333308583231902320381330026031151630411770446479922269188956841916338028819709358170815418761016495823798047376797237766966641794109751970830808294267528537465295391448067221111511370608720347932438839035523650057455397897197701069499158486052497839866856147796450829509566566236282397228021242452898374977051180945810180747698413008674437783348502621362834872663353886390974750045567566881996387881454928278690636123786965776637746636342451389177218571104858101845681362895126462748260574492207555181848517179079943552695726610685085762043336804193257241858015233132816329668724735582701122996865526043710107165557823742183348586267925325242669961096549330132552917650529492715796293320235144329535369571688132046684503507973248893567897029495330256473100285428410708015054890292016384911727780397392890369698141870097335987663519334321113266250162612046551004942138317063857669771198861131126191769281996392117905710786944993388773276880826350020358157903918546122382832916244145395548848059021494892922978028259096699484898938436258125190100589012360162330559568776921451109586614223230021951058657794708992419028506967869198550159866817825604112806379784918156577992350854018719020416519107923817055546122257893172626784986668062665194485730461047867814846040308479038696015526143417434424457864694942672776632410090108903198667338488750020093620117994093468852014575201800427769946637558700748496519171804475654781380635771576015772082097892659205106249013809310606030917505276016612258768115963334883917268558494955410283042948278052350759369526534558918485852821796561073065026745948398150090545085207560207747065572269435492765529427970731610990098985630148069775473711950106867172953184438646791088647863026993574077363882426293240907569681719310560586429356825421753111102842548567091155589118666292034188563066995200068356620648358769805196923001839235473043265667671913519772884005163597020421615893971647926881098131350814950202301775803732687220320640610145141245332357591744870803813545739243928917859716487972705253484489343059620752127913668115920857541782756355946516086609074014929053111890763792394904028646666336741909932877487586189796132236921336677007768834299843527234631487140577457360065970934477465135031044954015435332592138548135577494847993663548732087759262723620305790258420794617484785531309922735949038393444238515432136198979287481047838422411780258307063648779788996888017885934554406496404280122629885533611041932530116655850916759369084783801643326526369573110191652189819510434304551240720836640065303306809476071857477701805124856343604074723036817351529589999851135731759591606170676209356832175692996542999450270267797174505546419964812182062762208947571724556559779776256013804982579674600736797467313121581370840810880322750117683220711243602521176719249320047879128729462257393143219426606129182795024740339880929949211880548560970782718442994554314710677827425509310516858570550055458522965033525428888574652307424476748784196187262619440238301851584883279646664676742975600555885570332367309039321736498112572739566851972174393886154267446464084561880347244563731938478074833930945227965950404545011498206534082043393987463651349070776299347842951454692805116158870832434245568202643222796202069285212769813446597352855481914526796420477132903494629660076958380033987081368294878696587182328919174401594119771380041676484501533897504417675535313796916861714114320293977252750289442244618966894297981065832575387206677003521209991237424929628253518617048664169449973308766972305531729928476305556988152840770364608899175157692993989487786216890444166131696951889351100153933047559572040232744572912218360998186295805743889122774046946108711657363179078778197357041211083402524510805453945731977799309528416707272860397656709879181294709367108382843426580775991637081257761287320708411202994224696269638483767122638783730797256609983640370306085379427291734490901545824054472901645142067510430772325247118709348800720575069397636210573641483709065724817127911669041185053375407439060159444288260121958156438141335703345183428187284090203476281858848914753390011539706185229089741059704752748811163278949463923104763736948382041664467517096152109368571155776722735540751070168027827384417818789239078149960061143602475209235225512912014667817146507307330594056185330596464935069280853154163281488659549189326630648997463305973100711057569492519768561731197118520552619879952327985413305972738141414852799862448275813500172591961816335394624978081176494558362102934253475882646303182154823697683186027308442939620480932371501972075889576316169193407171962038450248028226098737714663277365723968228038308323452180178210909025915776755367939322411106404017285789081508724022877248479660405183843342992724919621041899046006453818348144590564636632769445220903760930319237262127775589077377804300627808254935448320961258544182349235394497986833856572343649054381284483861148087111650221913610286003733979440272030122499654188473240308577800465470925691100324623940911080356264958212151353316210610762950293498590539065890970234844577091948614323993458576505055184224345081953345736088719688604884545424016065779233517413493252911961949629966717383327335911433769372701190162879759888660156293601961785289562456103390101195790218515199693519556371366541589407752493836868952800078871949337162362211025954040297427597639396485110117068241991216073963631832085658772222601974187907887319682494663912642850636449824641269715641127110077064827690679043602568385269140897004997529420268365455019125353425971579003276739031616900988827491718382631048477033444508171884310660911879692772898724830257864824655155027646072017717952298798442981578344140703872396041248986721782144420887387892723828028498146914313691996091326839812726956967742163321196086194768004596817369295161040489961481842754523416455313850600497375140237632211014104428879672180624558681340130581483656376138126236565715963800501879899335152047567278398812854484730707847992383472021950549010620481715748407061706065061076891390307874978399460569020447367784127043751274053392039368835752392635853963922270108850732119768344727705134532226822718822539895174809975802438251909433663325186465774546871442808419071946296554890500372028969074160493694521412688079272927327753377752299905814028025908945285757031804376079401898077410653935035026104405596495033466461283482527774394926814840581528113008374931578163157496862229886402914734420593011403171243095833939720626454356927246679869757681623929235115230700378335719275815911385487543430382170777306045028015675786460813173188428367411364463635167056990664208827739961088134536447186414139721699600649004079411251148403770028206747351190589887962163177413228375253133388375450205059145432611460417321934961918842737294378850094481714015374566774478974938420969188749864923169603443402802046577263855908104062965982371605912716021448255610109315250133330284708441820171263065351894750456330880929198294175997097696622527717413746252657877894812417650547331226676788328576330958443295671502298498936841652556321900653964564133180291657513240956340368764909668809740888026431244987800290891864415410669276012183683027206907953798537307136153427447915187507526810836491326943978941837245834777383801001437606028830046948622556063162448388522526672726744029409079796345930326428471859181784010018846641163732443267036514428788410356337098485605456668525455204652134615069453645068784491832998923162352463249245514161650154170183599488789971197620909162142413297324142077667860695473088833594463753720466486115992890610101630292660036505271524425153395761218116933609377180846128342352080357353644155240615422677844510619083596214742512849782535977098096026014757170289092775063139533706637327267841418738194130920837476280173427247267624053894776451273357503748458279535232695698883959237943420655518053671657288242220912189057513769001318739646654821022479167236926090723085714431298902428017461672676996432051584398386180258139485940258092613030611565139398572477052561745027252166887116122560681082824649619285471620986637438518931249402960951470056750624174510869111274195490198526267273280077821644261223275071172424466202401805557566820737473309270435189498072937466654973701631160512228377995384667340610983306509533111366582998119203943194449723365582486611932440944522531557573692951288980938986455381789534446860858339175257609144575639816007060799896338308364969029930844677399439325779495486282004461490179162872633708175801050815143959342934479724758077815818335575783760218738417099490582834657708306375657619540658055411283756073557520136141269642066281655253960432000907815901515840542283996961798758708433916932188101947918988820062572770563315224455900712500958896842223101539227814010630332723128480322274616691853843808242414318891292495971027657674540842177151346393430565510123802584447455357068865255768809340710433219019701645786572771811549425943517445066528447049094735282445220350405607081269356485634546966483158207716416927362487890407302699124275153824963510554909371754787910408105011817137838045636919965520861675835368457273322387524791362144344298871823878859499060385878567643455210832340830822262000111479541357201531866763975530494064425937302966201461298612783612007527958103617726144615334230641762373440102028224128789646893477592914128749187136301142648617236614876378634026607463708458473613928785865346834420902790741829154579020396009264376107067938967068905819064402540874100577060775438502657033125496666778127870660268232946035473064490543703221576170394423187243706462284771529777256718557743330470295547869342231953505734766849635134400691008158149198614078918713035468803949542436000357869999317302025353005272850305635027924717679727719339810138161715487405966205669342675131573180630040783530594275537425428340328337277808161941210501102547889732260758160382566664256944682657681486509080106384327048244580435315202597213080566037028614443453175258754750521550381216937967131152365525225646829445826283898822488061116984917116979606643077237830736443369067825043072423088991749449683044665758394611257888228569801169144870025091943550718822644112522388589526360695517698775389580410618774102305854109463217775493117012434787949560461866029922399436359965714282278325652353079245255168937387860910054476416050746798054709815806878271794936549117561468909778458417410971164017572402524524086714280437641626331574228097759332108496616239630614953887107450773015940816516450101844518466290880512248600248000060231118874693877714706792370437918576705869487339120056027655995804595266119777291617846857366535912703467655517236762141154380663353500754402273718776695210096204396518339881499629479015495753315846763804426949235325231929211705825658978486574905007907232978648211114656594487522812221501475022663375887386449214783191415205023658236254197883059327434503909358682981178562803788264523700598821470463148295327106818793099767731005041190430410122387855755807552306172143274455067349906174446871166207268132553752437388937293651180446784906197631610149771919773877977714467055326065395977138916993200559029619429787681232228960101456933509865342954670227026247615231134251392295230538626121212329764835965109160160822927670679839380988263622623928895679878875526785213306356134838815483184465278226438806326206782083385265081662683334747247841165223869208704038236821482836188894677605726477237139207097922330897018613223124151094606427827039110247191377215351742549179501546251241449565103733042481010591519229219411376487348692859506839856336212410842087482530230373114214506294895929817780986499344497225727106669248941429232694840230645411155149041806004935904238597787611570508628074575764095081552543034571089738221356977625100261558184859140149165644104439638476828334708623189470599859385011921346412420449479269009703608064446307131783960803759095007917892176273700567163881459296320302923150600930979919504417615417183473010123952657847035172030566785933482289832112398786745556346566234383716722296218100646216506435122288056140322117032523416666090732911057089569098006290163650437535779379342721004491480216115261281420959200883162323711253629378756874170677562281101609866528009505764847573983442567499721014770674518969534748587989152911858355894496420183306010024972481967158177467487777882622462135700321588784425885220848068997810399414521562633754386580582909931046408377139845636098262404696567153880312579332551890003431343147881422652991409622500884178236264614823996013337053711449267442739023512739352872359012518036947797525968488515258445519270059608912992480371310574651051581698114972580951149923853297033555773212901997430510824562263504999006850334806123949892710224796126613592644202798002187908256639031505273525788931017112143418230035723076328065263490930176181012426148236549474325741854875921074430386947065953931320177216398196026592645177145214092488415616403393395533090314480951495523844856510243577191662228902548318359175024965605159344923845753307070971429229852427191566187210128059764413554202275930351180543430051451947153998856741854408676254182595186555191803005009276065473869561811724816321912031107605038612575066999422259886409784458165719162684568885102309139768515901233280294656154024570188384740428105393850634083190724027284773794356429380437174397801452032865614570456726998595124305024926751864514151848285543036955357845912986421713960159364802446046160631728537064102925166858404987014789989502061871751869250620595421751044582641927217689623717081197828903047159631158768580216740857074306659199162965688980576764135739408485769267323083642528612070549737989855759812921563738087320114152269177679627185000394767482881893906972410847760753722611609416643627703046584170990670935672646915358955608211365965566338376222885222669626305350340861271456943545410058124762083081071908656683907969109745458993680429120970190805271647329442564280981612480913107557834724733246910506124558935838666146510083174954469499196276681286489095605400804079841675268935828333338749106354172354736550670921839275248402184692853209731105094228149399672824938721615881856716617740148288608307252436385244044136529128154404583768383068821898404933365925036031167837958035779952386507529062650988168884339644988066806030774579951361853652479537763467765281385527886689229745367242201449401805157284730257803878691010039479480716755819305623655958703520285330958678204265847210389445902854462329151217412659234861234350940520317033399152913888687462440475038849815020165127547159898010606694974324465354035226045266084068054616624422348112458949416628553724702535167718092886765197409288831001009313539801467268587951144042049644044102263875565689147013539385981972036739573969064220543208699867419796298830213131737411121970058135458637072842939463847218538060160042478165089921696323682814708100277618358448104742560675163150211621809206289263739453745635769795575804825697355352954854819812453672147552826539726050574842868054608195231454252511630256686673346537627537571452622335311711693077764263856321125115080024081529098301044786794381355208177286361672249550073183527902535780672224218049049129366530607368770256141581959462290075412793512557626417644182704075983030441587493380986451914333477405611656400066225329916287520989742645789147699333812314440556195199687670964854567605243766856253315840305382586613323308461758737016940869483706099587258345072510673719694852944459876708468877614436122909273622730866395519760159275453913065564053232347701053583474181273984691159848413994281973959768168892468622682738922501725164588030951409149891775586396709638278342510079541906484214123934736940465103268233736662337720954547943816932070586524120576251802037017689661709420333693488215093306673103247701012074268414900608447114446889516541752873687631128966408292228948289437301206093362009831821754956360676597334895692461292214560537277888370058112676619154420033685239865623508184610705210884492357184765373534189560246733677017189828172334036158440089366847899786678303182527645879317158262006635171058878328048414862739851324267043156369067034577203512236207231703778167124775917360574471220563149222949400562380375628929577157543346016313689354224669479211408516742766441168754936001264992037049663240058724606028623416646264515718922214355331346144580076774201717832766769082525471605146200284652201284598222532127760368540489037716147656150480156670149348033205776216196931687191720376274638479026149005111494122260353166985127453703225212858024493751120604909601831140909438286939167161659293414113644064386334771200041391866435727261282839628897383388200487709345378832061775997542968607228297504564400447062981476052893695568165473744149231506941941048271572093741533492792033354338690644374276405402635293923336248158008733550102413681475961411524187551890375138604980804483407191151023111844850199495634137020859745494375212433006391187507187156737748160375655916014309795304805924871258411341580986188060115656549061101485048345615964274099285241000374683147844220618943459220585471082767689193156331819107339616935584435078371062723903767429357346908489367149037583429268028480976672551953147307966189132095218338335647813881083585378827227229877266586367127389004671291071778935233851177985627905979892741661298892787400695242593691467695154020391018322355765277358281870010752585755050216420158036778901271317940492998139550528572848336699912503355869313586038901166943472453755150223603938349815042052738573575955294601796433411215555647632162910257007080303876403921964243527961957715572039947465655571545460971183485508476478383207819344109608744967147793896149731826486380655374829893617005766915381251088336535706808137871776851168953923678772242321462176304022502039641623392856987308116461002294469700968894433430189356839671002758295686386254368810571373052208695922063353357502977947264237412451626015938220057400637336077052304941280060389329954917875580406485993427748394424412947926596399357029263708287623195445302272989171989738544398782577229870719878474103749319159052958282904098304956261405880071112177303798963681405009969665084842858152723382449994973872914247652313001583846384212083025974760404662046594463864740012835572787939631258329801400370465720735457087418812424842296566378335223927998435286011488648522013011392584447261416724703074639512868643395594697371488970558646916053472900442489390872094771686633598562446437601935904934643775285360349531207604012755900510734093363854478743232818917614073589752180312898388048399847521048932435626827835245406397702821446157552158645518622026968454775524001103949294994814755449511186184427581881727061091976692206888084163566409303934411138658983489411872872430444597269593248099193254794781544008863606569679366013247563700940631731122082063143237336147096337285369255760294250370452056765100057831363986149813088288852293467773961955400488568167509657421518044352299935418616367001776283583222862755659222586472177783005062751969554821442836830490398089154828910514418495729900269737439054193006872738009981459555681359127414730594166776831554327028728603272303290937429101575393171408217649813027343761155753323699407257173658537486625588710506234501892801723199005919871463138531486089734426523485514399953277657092986649869300573647703582064732081971681720978218895831304958830983507017634306585924869801366528440630818515491891437865781682857941204129662093293727066710760639241646922824561095750766899738124367999312217809320830169473988641408362297125281825219643992878878538001634118372910375162112195175105705326335086433164076707657351182658980308193134884228892713301174292600999346746464053580841971761221844055474660881401856506540248561198172548061766598244316109280721854600143700153151403306460933240753481115393667054849134115973444436503205082708163031829290256184060929484353035646864661734628007557714684824990684058991238796851320824906375317390500687574009766594747578893771621940390185605435174514402239620947670595237477764625525974214814427287082446099021582450596771130110098106429398781062185864385668262255634068494879996935333106446011565456695573586690675393704164427564295196554699278402066651844289278268925939526518033245914447095645145339468097741327920485582586418321036005236737216475834337572965994773657428162345349119131002157422389288343614591373907116880530510783085515596283703303441432986810050643276958665228411104539775297357988574504535932834397869548929588077860485164777001051724253832969683767497055333975392164348183077248700281688095730173503027034721954288480865059688641133525215841617990699209335315302501152810448165135874541464399408005844125961621903049925635512759666251684156933954724000070104735526017486466388266104059539402055526319596420657506378150339233174022548933690300910914856111503215549017176438013993788241148885999353342366773772646390970588957616817131801359172570214698022801366375603055199333970787551510031226693411293665818975401386377037110206327683680445142564308998607328079130889145572284236716141125895584997249813291997178142731694158347906781609583261952820410798478454494554338041187046319206417019062319532007001130826230361252212257436004804500963156284558707897372656275192432905653983240339665063272920500762571634195942593321180185871705618839170005513320625664472802023519824174700675583830179387681168958310847089613914479040863567914346009082233620746153693511704045742076687526018329041023745532578907205585111848626290566849442143684654143309132397489566199475423927784551416178601104952545292504673989758785074927120672066704483604607885638319669914821722768585492654584690904900162002994169455666110212734242645341929483993282170371269477558441302611951612377520174108031311278306024020808067477308677657429228880382604186475283073963736843580919468951034910593351576956666493082709753951959353509831778000757264782661856132456982975041691921455366865645773775886755928810729700831977526857036691766725123556868382621422265282440202000683488281979707831641761329993868639699841481021063450787060497187039930992311503841624507663226533565915561874502873027748591457281879304573655309105340516939263405700622767579112865670806970711965676191868601460153824194349939694797555807554844180687472658558079144027844902242560407934869981165562133673591202313156090406551498242149195554022712794823108837635107948059485319812555993851795171290716974408237499719688082321768593306405739623508207636130303061695868447545525863743241819537252212395054952134409524526449461649997345439932550136705817224759272096402849995044927050383027014960081128987118926081273912298721487155848543656289500326515416978397974420007816477179976962936932571306000278628940626211714177338000589253334731346468540702914659836131020935647044507694546855062253912117938069848448560243897430641369632646139320767949919508320839144972805807965709498272202874908574814887921866369765119482920923668011956944309751237781945926875081845818006923309601856550475717276493351856728618564236358506494715220841731087830627539279475550893131810971234916282109099709245970497725000038997664924503148304823173170979678423348563099239232126919959003499238073061125578513701644143475507197514886071825129114959666131980053307432343812184997779117709617623448552156539730371192384647402544447940009399824214105139253854115183609603978440715759746331121374677577414544279944700321302206364438609809307784917058748355051235900342504598085747600579262914516645136281846230516351459029244282999677811853539327331917042934331605094782045148647097599812481826747148928661201884315493095064562744551577895589366719428226163580386464658648868165276555135080240667372836862904093625464768251250485625371047338692980798228072243771145907403345740102720931536210904714866453115744395207397012923164420332544684643128403196741634898386548168799351269413373854825129617683693559883491820126015338787187734942027626876970506211598258100812638947396592544950384463168342698439809626734706902234000527189511027376242921467468344774934148092602257808604354793104291908865527062438011393136712468084572800618890975225884527265794593114143240895338833279492171350028523153556517916241644662415716156640624509718480336623228803831649527978792551761004430958920145494791321492442352996690035960957698307892976074395089290102765307884813503039275226913915457747494431625244501344898684895582461616169375019876390112097795206632282827771335861446974191808974425978118758629336217726700829656660251117909320401117403467308658206313809442122963252318498736545306626948521773751584460955407897140207645220664845213102834049368228901183930539760502858912811247855154324496194907698530908639581166506795278824007914384338401205899082674875326093415392830543108167254335117463299271070597754404672665267777714213645338625872199220583236655500620181146416060524682267260478971486613904047630392082530568533300640200930351702320711711301156198005276682845808632413588992995684327532627737670874880712494867722285309578513462332869472789081293926840631785203527506627162118055045255569706412159515980858984590140591527639436748830669325073702435779356724007738184917498877769823382211903567639830344953872213659115858854847690614033970108457888370854367053633082029675240740038803094666063241477384835788870686218582151652214568387334587853205442602811363443538341855119466539067109607207631430111380708130818649553970049827955727440463799460040265608948688189295224034567944329232910260684591718232121199151876564250790651029750742773802329199506696410486642632056861013752967363680363318374076508069264621854927384216919352086142482933086676423369605413415689948164117811688253225370446286946461535677533727779758483371315991624843237508199316245898762949008523057832800982361785494426145540140032942441404310325286162781318590435998514417412633742836147941353190860178611179694562313938715357901690846349015155644108193043179596860333052542216777307451691028934583604432150460087275861435876231284789139425617413064113009058784951612572571665875061612998709646205505461020411759903435836162352975797044935246871525863311380719276822978228279798162161752383223875122205653832361192766653049522276210752112406408563397701954344726723358847673069502922664076857205152667427660984700161557172669453426912633033591137134121012918860978369993715627478609769887596548210047898869428297892333554533474728853364306548267948390013200339277586714740225022799962041453291869878071616777977279226086342331137186092738918311443864588851582717039325803290480644549224416473312651343051136110175065660963911167258345572108599510282698268450992784816905233358459275610874460274839352573979696913818231904027414809317866301301552267755205443196182027445204867426067463226430216536378502835602151269873618729455527306977421397403638642752918866664918112782870759534280919666624992703817998780789292506336504222634868491437183043921389116751632843616385357753470485435642849606561687102327643747626066666699793939048706900680228974600802960196370870138895545420597711388759261711992132992363620675017026891542603211231563020765010876872819571748083447391318954290387059607337891570830564078069868482594253838403593608857105205676162691710385439139993071492139277687072172726907954109189533834044250446336497508673519043079037546536901655605596891973212880696983746113477546528203712479419961198797035331832910601466813629875175584421641659293888949947074686019701438743068120592600166959357565766553172553651084069192835714116655603161193178127881041858483236486516289604987016512742593931319302092589741860435010153821788128311530964301929515868047393705202654467878299156854822070006712659226666429025405695704712230994196273288969473262511113441730436107092378225962308388341296945048660942744866886516282276618151508776158355831266631299875254644998449750964891858494121417878683330736865709134344135619044844614909699948790679820330623313521676894416844687809526678871450301041589307337088862901336226302542666402879579890914561495876037026920126482329902074262860966898608366997418158989502179467630317338972340719125979284822689511489828387490239251627763591086983237012139241347917429051197848626176588293818389205656622898641375217859428589649973799432672621003428326488522650587773650552500456555168385989318151515930131139105889065527074288122105619940927588647424766721733652328135748942564712807373058835788942662908863139371514089341415019375275327523613220033433351008868001185831562756741025396179432700194860509940154845917663499179636716171748805811642648794133435704995933774749180668061952611362431847735428837154980313734681860736637154881754430102381339694068333213546292540874248279967408544750693541336756494123505589047840628318589358089932064846951750252170442501755853489538834765418079968316004084871113960528606452354397535012768847143570091826535127366340297363577507940408045738654213124708477416527644251119309918986317134368234230210910451597515024366114536404856538443900952755718952499261811456459588871905317473570457518766736885890249387613199651685432316318429305227538804540492523239006326789649780276646288865929252361977599533560046706765209882718384475312662413639094102406319407764668356350344753818775713907826296154913515883191265380911960501793190320807265766008081623058521764887105204860680212459181587153813501739083393751809358416845971343045723150651942351598705495399642118462734019376015880371211901164989100236268992626883456517476717851319109677025485506482525206607489875834218475836058465967678311669239664445675607621781410076290614993864333700362696342600282570928298501851881273863537786658085621181015656231573782461160629654879606345824010172963591875969336420685760057662333057247726011270872523305674153267068143229731840599902421949939427605015941693819216363901670815265688105904826364765063642937363011311932808304719970882815818980959384542529105551988848741385337075348259615804088983234161548210320083012762326519603740676822632967447099668562476604761839871897968054088507859643161046117577025536721855322537012492586364197209774692985638167759074166711648456483313071811974657518056639509605490277092387091165210293489493999759051670468131589849093299382243266586187648288658057925529121805880153943398573559923274342155535994025241350541520040374441194492179922056994526485968438149598565522367426592639123387555577971913771895441906970950728906541544788079054255450738600752480640630090847082002564893541003402508744449233208147359035031965009700710908550426705577756860844280615479394811500507976099266043898505109127274711527049775288114147955642230336769466750000239283110401717236188055498151405048040802414072245422537405682137604122847826878776821419708801332876732986439979894606659805759865361437249928880188970688751057525621015473703172356793647262676578046513062155931738818807390106293194646459635918540214708034334026446146156324917539028467835418537700460208597590918026617246338827644304611709702823149504127621630881350659170587366679334585177683992409884335728376822523412082398020993887914628710033136856316137994271077019062969548454517865485671804356524508981949888113689959203169220726165572852556967144917480384272967511428898870132087828195298830809594359051363460683046944872936583101337430077038467972819885761567107179485900992328848443540810143725659691496057637288989531288702146562125332685073744209788523806356711574573109690712198078656194136052044189677508719886416075997704448779272908747771761616337328565359483378631095585484284644114852423531963735454019528880076467867938179207513946529604108565456532653937571293429314897699605182843832321171791556103645851345307448133851708383654632581741692871254052638434541825110685553680411083458949753952811848896435667834630551373750173629995648687036951837342846621565625406465870445805890265390548955625797051481487945890944655177953164000006119765845489031514392717376867402157250222781180440085125556684023289751463931441464041430536358287282087878657443281906499234245665610079515810080858207573779043698688719645161424618542560584777465286859143242008162746736193809626034215547523571536885719973003695710636437652817951286365961039170732952053509654598827934132140589636662511251423482922540351135936583809175991334908016781321113781301641825366151814391430196105366848153463348915149973584279887996810665017063116598414439095774596496459876127002601479874221950808332366018539352062908062543168919984510237034449506109742542595399398073798925303736862406547718846834014816719079936126274207759391365456756140690419964863510993546170915353160360957523215441963257067786188351882919403771166760276958237648321210910164604820205766533001135808552966477028422309786895096428098164191717683676429089995478260743850635520153070596696058155407787938894892189544206499446591961561173042249233792304549251229359373444093677996388957707829602547145945784710763711990700001994107750288228297484980765950006953408909613931384434914564887132710194236232073294530520229448800318838368316286357175592322499759500896521062963152655849452284171990053629657656022580575025925375666523305705708989784025243093089715074070825569141661956169888827415072018849446321495527470007742535136416049882476250093195845346459341797574952260069172450956953611071564350432794857885168507788203047369823230883439589001066336379155436938922373541609831465680654798744245139775850423323315198686663760117885697593015726018691031335433854168540698362517419523739113708828985136138641476733805206414622964879332623375191799141654292292095760105371354556511789547550413372773301597850639554420750007437819016135629646504734195380197523317816358649321345268368730841974006545188855944596241794359842215414309286001022313992127944307535601195037008164679255019876509870193195921848397875635366323788302501002110289566718271088200215712653176407939514912865342791286080446546757383488568950330622567020726540125235376131784968470064866599111177323978593864184023418640388310235724451665697288216527783055236930017814721034699374245672848019431772255192489140572769716002842961784848712902894844708023189723234782213480797721502218956961413965739515338812893253246042316811264432691791197084033387382915555402421926049442761672123089380353682845241289212192704030683833880364563008636765878341892875664678982444566479541554165978949090629940763608761479421622649007719829483070445441438648124408812482620911307832157726305970664868602460398071752320876811617606920361290220587418679973758866242329904258699746879475381860690692412041881660640608772449954430584114728287002540006389721824839272900307285275555559923791105861652217320748455443645930114110928572312634340688946420547916060684973828319217974809645626529838215187303352661696683323471497778813296353510003031378928616608893639776512449640011474087587528167895306254639765637816801034874341218934958331178443346818150117335746335221035206740602329428617144237892005279849185153205480023885305996713532587914629128550343534461194112706738235817686245245226403463439500824130939853025318302585711392841810776719811686585887110104617383276742157003581665131959357261566890951523448913487654396108010232208563475132921152017989512601249438735219129431922319414903933909156322975197210080465567685960031135633008284436343440033506789253063373785085485843462286637690421002847720105870649843465340799015471986425456301506150567910424312888631287558741001513963282356913995078474641753816920258263349981728044068359523050796139353439890158234609156522955195006000998924630806054421375238698614813703445944564631656012477463671613244963731537182794316876119530267211426870635516685727328430114726442481033920515099729438551693535180510524805795417736653436449084078777931096672142872008885915990275205254731729903496490961517048000778713609445200805876021784382983613697707525155012585948442258733445973767812661910409115821656211326003296744365879316000411606859608381180897210863658669935266116671235265292809682384772735913197791096285246586828602490467110167705833987059788522055244105788942795245875531411478848839369156470451546249136384356918593515065558464063777786960732683587357872833015408100320439912850651940888326057153889100937949728724584049030562913956495567643365383529189619009737862639234340212143621502059314275820537232789246351606357756179931463288371362596192693702403145012772450346475498074724141630529726182556931324687320788057235276925811962513869272092682038983785661833285775112541892265880409939373008610687561372600280713677836914973160666430403856309273720404403312785262675921036708903774195297585444672284599757828994992183888551099068845432727732453050586644911155082184859799624531006204455410784707034289095823760542809612433088223595233977490266944715003297684997415003288149762879309580676287526564952026795788912666525089719096066364366688511124549457776541480988061546924000935284792816466093163876141189240894038809968694099182519504610280228751387133833919197917718221622709504191953125106219143358720108429497939627817022429808620141084540964347631683023212623304818591870167632809398210233614444504757681798523499813327279042405350938662067971301234698990937113739597458685823313944655000958311041257181573113434316660835184135154812927354677310832055357324372489917479968736530893916741687988243167907098208473386758675870458531365790839825537032120268438683115003874819479122036380643456342755412444222591969841024704186721898831601754607615175032702418216398955418250171162904068787544015419284339526460032773111143563778069906873623661396821821762988854819118546396285842331111314078900370314762023381117873974040219701477743748636149561414689600740039235450816769195746769325874964435685967046320012366127796031826760680676282064767342170816883014638560598000767069876328164551908930014738141594619806594385301047138122557220503349888073775758357651319713268128149017065227620899319682547746996257332129057204088530515012594161258921908527693828276185071355338157949045939201465051901699020831602011001132737714452638278900585531624724437543480250725914438588717869363242198649423401021968233847599222177311118869740809596953047843027594529911301021814098490677154154831154398526090760775874546814108369641453358911191994994507012141879819571108165774060259476747710382536938445010562982771012836940397623186772153457404454339832865577902930892550000212527017782097820143163631943584721232691839296221514940319839795273636759558721279349764381100460901781170197371773907560462676591218670954147107082951430571047944506473860724877624781986216105198598318872285926140902444445491928120581038756982436439389510528852332950114291913836347084642488595276492187370321007962487437220096645964351253753138745798531102218670902168469500664027679448502636788411093947431076672711121852594482803525212644687310712988802136444490546811332328734320716504013037632657911629884563530211627540181223426498003199282468105720077724302990004158948118613980101494347025856100064835835875852918673020012772619381931629497599870358608780745340768305190027719320481491785502114318536737470790125205220015870181142351563576018729828236274698158966567254195874577966156789817829832476144015848159119424944888401726465214963194920087274849500084972742084828916902650647465731195341467354242524892522220722903249862004574371755035805168168614721424201804810733501919335582525080341312917819614944674714588746671679582917640593398702225330013976796707541730737073204772379732154094776430335576994763217968692056209722915105249417511010874087735167460258982437493307408769683657943593886847049471373485429990826796302213394160659500775516118811304048018147269875814723752613747912818225400793164176422855018854148226762908729202800014222981428474162283228432430046062253729413615069866641401740057499589890365467280529354589363972565068932785859419858055812687974362223554428832985655740358758692576994721736167736069163150828167793559822867832130565200014298315988603031212113479102691311851476934670872405783206324500761865703275338313786159641993955061567338136268651249600680828550766903283423226670932595162506329931404799898984473387835060668689075779745210399491322387629752060398225843761488354778072429574057992118910294987399910693354374187198005485550168429077020337327034220114591017802506010242963417412800201125410876982366599595360832005103746944031643474621087018201286887836930561461339855631162021563685821701749133596738965917264419911329198691514644525312072130437975785818985805242575272127880143295128896852495991960832093036867103834400324950735692109696585263116568459938575667991265994109975349452400784069299919839556013984342257743421640602089899678463975864702916363651243065878957982969308377275258114602027709646901158239017444996427351106581855498706519192176646746944948045498197295980634792125693188228067337652554486002180145295193635600592910325849233761546512160383928529210338594081368639091721023239326557416814952132305125959455935454962535841062476256449423482213040893445145776736284196190769453635825915529159843874083125434466665340970631597795427943310391109017150516340441281531009014394412311477794199035431677614093383478562667099644470706118583292161862554557312169907672303756091285946301012409172527517286883120269337882820007119176833219926302240242017693241799223191781242131287267204434443550684659475920405152776018887727838984117533762769526696641861367119518552677087356953605904546288808713708527454740934061407861829891504218394455094540350680508719244606382023461028410486573281559566809056542701051854094017840212835164557740966638817582137835774202015227793118852542061665284018116758108421280533596381212099298266299466714356811765266621887292526381095944747538901787546174217446119938568278870991269623833395876665781909378798073774302345417432598997472803521851801798220270051826074607732024315480571201309586093288248837058589734377832217138422372737292497141126985092114965171250886290525164634015867641267682035825373264509164889110505737887494713553916082620302497135661747931780648851841100370752966980246546363266554030618130640026436610497112178163775402366804738705973402932426733085702535635349220927957235177078667359711348867598951116642545968593130390627364555200597705794929363317275856050214794140777095717267333378913174540038604466558860874763078573440501484002688314781764691605082539942039217616154333777353620462708786127347488623159370352022758924997254596819936678454899330304103061396615108092785328053618096570817439517177037922358937153669498370564599721563823851277169821646137857694094962470039548816937329514733140194800717840372611927639677736248820691200284381769477260047754426133182154045667039618158806657798370899089144338290017402183660649132297011589923348416053113619980757198711725439675650420721821651789002768297139341904176700462532353474484674113858647504318559055191596727765527850356407849018740776894691801473765869196984064750885845248069840921732154767828136756078766344884529137123170012070645447466631618536979535374900834446861472685449208957945684900984951812543387041966767151086665344002404657086778348726092525560787438381203614983708614145855780203197872027795127503805977337380161172211783866795138175979898383390488794118221595872367462963822040856520238038241401862912174788424743873263314819763451383646649082317540435985100580077985277571986523312552251067269036897122400740881783371437698653675869209233600443148556218519323072564663706948699260241631800395678456998418264893903861579478131372111112120109025578809523920475931377489865563187797169491709857057403574638491154867580061251350183582978729755123844932326003780464482611336758397705896407455103665409245422320446061316371313859564019542692438046613699414756722161261581529168053171060855062866694725055627588673413953972074748452756556300232896098482173196409385392010583341437212708023855210048748500901557305511677893326197291729810055595432793272453171515412228057957984873500590173505509917343773354845687717674654960520150636902681800119402888742159399842633231860495818121281705706205636554871205779471372971567324219429810710981215162296849303548935416123632569811465283014024074013728713039457372779099151386737487633801594964840563878215628055144817167853754469588646582852388503106437888759472370138424658489979630114612117365183815770681986294092207596953832590554143247975691039217175064300428158010985980737983542258584320061670059824889424111029896652257753863398814903551629660850864348694859210001057532772557715909262982040501785513724482732999414533212328712796634812983128851854070588916190825436962435301515877957872979070376268256055651565172099713887676585931742897414688433221597636223100758791534190874965127494593020094426479129107094352535558022438442586859003666657194663496371130715845926395487837382894187649116972356047894710510410869938481523430722537236771356510534310081221995777002723089192460348176326489357129287080116304002760606477156662304983406854257696331874078009372411539791174654520056281187072915050887579852685986626995076304764265809627973627475172345770264455199526494345276357610565859957364101634790887910803885921861972971942300224154080010125900462696310619562533296633767929095502556952949343582613232921881128721841178174666749557660902051884737485644609218423712931454776398876537805449670921391082073148329121243544439387994811314381692686946700238980992086971634919545329943294900721168773445875009975805496870622282536882581912532716187003061480409197387063602100746898474303043244023431719649941811837932210774877275780445889998050522993360529325011093475638311194900944407487588965406146400327537557062504832020947073027677665321314749929543334172594548591785599758394039809698980211447051363583279777272058139572021053390201733594491607756210099009991854257431121003459340479556262820842056802437736298614345730899838356476016946489707676387006167337247303703638408762728544588073922244669194371803768699776711150473250856902533641609575676258353160513416442766926821363738098251313971596714113514033089041409101173339201538735776078950109548125390277317300121086809690321800452733600570633119457831308808009961380361518104466050571434337057246757089089262145550547148641777186851364109943940795432245378488900067679855609768592699486225676679476535222630303314963108798920479341522018862530611204107859274356593972667832303963319427622388793498051777204935000349197089778460619228003455271756209568061724387211652564858934570004963185800473224439366271275359891605424047940468498580762221636092160899481131028303305738325032700905579522752103697247261486821415481654459171950949679540742475340773809181645505969610139292578490529520151112738507929754850217378841450683618841535387651949847687664637049065927332281551167632808052556822150644840789458711250812977855498249116144349258184613811075281329624894039015874369157942420116077932461551830030964918034947398316636960360689211345846890051550682001819982681069566652156686653512551046703451394511793469641433403936645055590926812843858210607015308989623358862614817810509103510104229244318407348588481433445286025099900488865028261065360642997467759312590887206055800492731861087188730424824654421997695098345572238357008706717657838480778581049069863280170678608178431313722927086936963215122821191362080504537293583583975751274859969069482719750247993155626942643457310415557742187331422461782040263515754542281018121217823943011526877563887019133549909333393466972582314013508363765248861726531057462311307532469152994496869130466632406940720198330313182573945486173543698708819326289325914305939278500720333178029905261082307529888686255464882850707508075587179224237377867653940644021405706883228764333555330159728769072525490525007138431986278299168814732980982040555567938487500643317299488881336507876797057029888827560496485312384542638703362801287486397616552427344965629875542697940216911921922083921669001460137125882920951642051065051148752067584657515315851702428211081914434900964231129703050576416599131259455954801982864351300463979311849495661574656352026497165390301033981010450045217387332432475587777570056341528561374734457536048036824899790402138454636452373203426725744659174912153477884409963035083999462982452387563929317059589395679607960497525136424294772712266592853287934610029572568637883644918171502375289481635002231705531264769160639394873682216304400070425029299378698253303229519035851268727057559844383964714094345515828981863258117999238741059612254268537373995985801519835059236236977370991790341177346288444713411751872267891788653808793926373499456508682948901227786243473471552451469398171771688972904867744838513096886692898024676097133858563430073090402730791649792446854731270681787312659327392659056004327633316926799916826706558110353119119856885730908792136053619037159966540653143673631141276933636289601258039400632434038923817937034020975937784688652817868692656223411745033129174437915282605756164482758131959868686136391028017121051406031946014409926900354736846280661510333703980300277696026465449182298163606651176049134676028355781895315865963783444634344841146594210993733422520100179100115787067562408015554562047162182913643297745032349508313693156907811575855579200743562753933084645015033601990177556510728632969353430752418481403384334324734453980739367416023883901021345177526308322396458610999856820891293814079808039565946987046038093531350383381576221618869859877542732361928320939551339966668776419572221779793838066603587361976392536854520667685553529604673786423225135360705994251061608480188892400843525377120482855554458130697855152201790691188839570330658644693694056502680517701114062686198475428897811081595784245358551171323745029221681683905626294826950119456804504437437652392584446560378420742794099174145343019903680519301530230585784306869363791083599636847329202478355666340240195164568245566527220895581798028941981442622517379818139852641793028383599717118288465685317160052228632383073061045279551549668140499405233125883959825590549190099763747490381117495911467079287561998039166131198053250102326565566613996291348491984778426784917274127302931850463253345523941833322556645981783689735004750030226618438487832945141556960255015415316750845145814553833147133832564475902188909359485009739717021064057412806730955551996236194310512461737252355374727551017370281152357369905193633896916028334756539624989703082540188897829934508854676993114709013816562250181199710028500967344078119157353760761143158610502176839469776915199367431363186835660469871663524212563231080171255048139028120197702085223998679226459641613781984166498200559983593281959905119676027460537429722224935612408561152761307999367928442825311917104347771643520516182454277385706615058041329584092824936667272490778236365904840750361943946243195573574532912524141406384281245524874341734462665189346563405532568526601657216059310718927753279611248390049199682803329928295742337337624045734097193417874287616805368645431690432474706264302107830150969753783207525979846091011898598414341173891127326658381951405898864607157404635225100890812349296947614652096998041771699109664248588202915407365859515459630864913392265916878244868841105665297347051486619168725410672757246313962766745166395295214754907976114089701724796838023601282775169732010692319385563180249124279347870795868189761638843602988279121545025682426591199742057713483685754864471333247859306047668247588729947145798999644061613917829079608559488983218514337147602265721540253521616184494797871138128687500138556076200521973343435442162423608291689554928567418639626842324054733969640700688463348568375442292420073375813998879788767389729327935759790081441299911363339597707055846420328135481118162382382874418660725487591530631285589712847332006420625470044638660890207942397532659243192607862114534424889264561529036650899466189705145831981585339046238653974530923238005309628909240081829271624364323339930582492803198349846251027180463653689755715134571124141498088819791165244381378673592614730477650984684547413947101426440145149687557141556927101728297329085333790856552862368695015878323194057112632417696998968750450086491914112438060608098229407171573860734765131675563198504938549085180229697274790837168735421140180732338765872081732225319854787557005792508809520851019679530518937760346163222709185389540985526401226663934183267165851697822034208836294510370519001449746353820512009371540679555699457008086947155967387695311038920598010012223389263509031104485545905466592337161066519405660878142364200018808446440076631903432550167363938571675118261183526381970845519391508340711699781880240697994460291382479699907833046912303141331799703738201617210864821018705116883592107275395851747893098369085073828846160284836206556814793201551272661115424444774806391671670161727005421997726609324756945761251861192201190418563580418779724231915037767297884399162287147719061009006935535652647290002932687760846692543987445438808304503821020835368789479812612305588714909466372937366068548393893270466175273926793131570464089754431207572102549578689318289358724197675687708809911204756979667253905164822488919821751588377982299924449782936575338850088745623487524027352289163890016699381770684517970455954196577836202522840039557999805134811015649330799961927714113973780713397144517379410169087089074703349446528475920074712608709396173038736755642684028472628938258521800088556384163647371464998201265029846601187023317253511969639152171060895265079372089517731568683014973249047676987406737847330104005729186553650021262349559109220088695255080858963893614625671827412447022819043529980107128404850156303083536207756952071295309780832754500679660349243842310426259196214984575230391756670093604625007229121969952168203851547459046075955750284136453701996173972679631139870790433062054466267731374421591358547355793881914879136212514020257104185467151117174091407516281756630867258566886826495368392918948396387863771366698942858372417379044362708488772357132218907029758031465762255715931357639752955617859244632265357910046013656710397169742240900302308208549908813474783322201213993889760943891418984899418011987100985438214948681645869255106476519225548882890275021772680660798936706267362983339484608683234443984518442080304452954388895407589278142597326259121645063711483548773228223079881417693765221697063334095443667088509367173277707389201173895314527766675683926810818492555791383968758189657412296187765727505282513632010543762485292033280001794526313521057966062911076913660693620761926607705152008397051329584955521513064611387535641125184979534272623971720093519678104358619122875412072036470899492626556023366587380547703066681164561682045564329000863559968809859654552858682900768428315777232709240797659780429765936205768073982905626570489631044786062295855487050939774589936538264225439228431127671253262531845839633878359933286583830210072955107058985380552324717541861459049086190862531317044564867661362666619577957688463154627793108881224378721552260617470366130643721734772726248071386963209926845527194083165820255040191339510018724908734851572596352943913159307610105114195507048280528282415801557488712867359586791949126587040115282505701197004813200390460229812339559289352746371899268590820921225767245038278174481840628204354070562231310485079601010962504216520408441327649890541250092972150783724978081500395000471947728387526257371603695426330220195142018736233331616262836216574662925574031424871131911490083339482666244706123956115113184141171676308816680308375425933395841415527731280758845712717950847627988116129373654613899204214126662558730085752683344362121712389622062823175465057375174380745393481644763212592971133034019868884139997284904883996993677966497491365858800495907566256518644679778364100039572058231893155360012455624896956543875169701625867159881540813348947732068732559262143846398571957505831540334579715584748434571183467609260781468058578505718498168967043555157492322634841350471382694586170586546812682576673148771345013401286831244579172362170766346600670872148246344005290502617875059287501395162172811538543299529426143174330351361937509044116088085056774838250138621933535824784571226591781813421670874448351733981617916459308298381723895615616965434462879185598392598572582456494545904984837293980605017179805010848958631285491078504018462284765885974463136438079522267995537777665972027275437932970157998442205396753049604199489435623561984220467085456361673154692940456313959127347653911067838025958570500666526066480406501183371271519839540560123196488243881154418122396574155045910707880692463819987015728386904825639115052708066448386442481672260687141981935108061475097724263727772626291527830820813314026841344179213820168363692581387942006782746102225124640098669764867131697917585818321419517353953705817330575295627314588995956185847428791309235733357498612470475560218939907082760192395302511440437665244317510908188359352465572291710884568607739110586362845984003933469227168302755503541036097342447771006155543016785806657327150041800311260869588302514297055298438547058301363603821265185236091625193426673908937611102775907041275808248286080612684384139488208514905780747541874863336638714052284058532838893347397171344643511611371465291841360902237764619598779995380960536541515176850888495931465590283700716770237703686008205952467721474166017868610585772143583981617368814906991210398939359462633047249353029872369586185750094027100303638014828114224454229456285305754461295400870838577144407703034884689109845125874794652654569832065125951778990210166179341801684346743331992474133773568674254887795707477937079432441824147664745543515026345627773722822931370269958335124146418944012568944718326124449272992705574310698417836657746903638235523596381409622727204324950965080515247876735873767269713051026568064716652168289614964825110306730782729176067129246036304701216538406941008810856478945417738202058221916493602774514631409648594477837415890981504406075504011517819783250211263477873191803216589190766216442379319688138110125967723910132537128615734751731294398477459402912946261415536922100190862669100967808672533672565356410246009143282307976170184827906617374462218570004874546694848014497526385205927660984142008376270806183395729556252950388611297454444891855503669101662212510785974619845475465116017809144643441436284254304192524766167434167206275832162436697071494807655243198868981521958521735167019497072241891330207066166189201205089252537817481890236391491914223251614999489828658693412988570361154602053388061513066073890580748694452088607346921948107773867424576300738743150950423850377792239917028685646387212992208183107484929526903086208802630952090470712618388617815460517721426109167236245933836980740061195878503690651460968263731035682806002796393352529609708566791590409747170937599592897637028985611637039833139938941818704980501519110960871732675690700508534743547003697746048856463337469158890688760538753916038431344208788382543774237221978098242296020189434765403804742745210873072659091636468588706930094258588962687914949714482961270462462880805615066267181784711107663056462045456342782515459619504502121217859521984489218963843817121735288772072885612960193555887408331983360981772455474232843596921746011990973575812391335599092661638227933634128513651618584407577303039835040482920534865493198993398712419894496807490363099643558081047426179893413721942510581542097725807570637427159665175719294781356234097389989389418260212821095650198958626330293529304499221436358446145373912863752016117026515672318910909570806090372149251306607289119016723006393203143636580797523265362420467329446021445666651227027137388623026716716687177535182845459922848667861158424057160608546969387484757498369374626683075522019031791753467763886675353316567615042884486625122012637215285416212825546156987708401082505482595307765659060589720335101521326320722222613653933174228427770508499382750832187693986919680432166860065382223384901150643855027331990766346422925758600406907593933537862923300317964347895462142758059132962435716153627215461675722468610096317975663350688305980105097487260836684807622620776774755651403162507729160765982117884569196439422440586135041650245603280428269821585695308626839591655080862793158435156810023967001406733392616714575629839917560490442203993292945356073364645760007618678103786640658385356709546555159602443166317628434678049833968442536699535253248467639054006777667175840567082713338458585267002622686983980470344418365953389224693769315345366486190855300306223379572922629995880056838171127058779498282020547787089116985284034018315905515835368336042209348923664052940501858934501650746885970851030713968348677004585760243716059780526115143986168672190835183359044978562457636120325911863379912448447027489592989123562081204664757500481730251663296203908652484652595914234908533772632296938671547848953784409888224589349537482597666254586970014062389353283893078853569164075784627913967288248167723823247923753710897398101572713378319801282612606737844107269078263526344228101749727550213132771515015056176467904147124362309931120244544925155012143257675013142351835774278053568198165866260498967004922877576587702293798244755968463257535316610129361248021622505683285398027064877513694532131981560370688417462160520994204463539280214457869008146527525521379652936547163862943086369867251553105008811743105775797579257303381369702820674560254177963127677597473260730932298067969663256824400544758185978042691037437787889535585545824012031044146222978419937012523313887141944668613453933232701752620219257904154768575159860281364092351126386728762903346693425385227154038543431308551008475057045399703370280033757676919600855801803249615243254687096069519847762302697225877996988428633843726461358993867603900452134102735594065544275969047431198623636610529290612682963351320527046538710587176029935486265649181566445863691536171011369601274326955414709141949082044688684616476762927536923198997592862419169519104791417354617306775837042842885442212626599584615503270079765485083313409420338225522601636628032097070666215812234698350126093373324420741439242696185054603419469928543410453673462700367394115919945658079737731781557218670284449042572022864182929319007355390160426995973229353478543307183168769358671661934720450638133317276523762300218346280479630820987071041746543775031578382451798566353974469034197750166473175000057979300603464737430717356683134688369039986310569224558511512536963679563688774367515144886733491870788769543912544009294985027421375821812302026015777650321882541950748278050945061717010444112871084202002942369188445434694479120711617128785044136422017646402005804117033434904714864185329568273708361672926961541783047696503114213493125909294015382038322450291316969894202099732409155038234893627117853701336918949001498766020344341843123741509903251466231154787767623265426452627361971882219320849891265341067185093307558520899469114716405945286812865154645571664556492947566390645556161322234498165065354203819139760475173281639187868740135133781180982656408655942896279282479629127831511233787199390452163812860765664870660748849922249140518220923049193042860685744315266343902098615531560688194047631569453918658098189330398423878684118367959082626575470366909171950855503459370932644058755632918048327175595414485335554058952027486622977933697266477585539486929637209799241486540845459406111267065429777905249856250643870975215637913563569406290279189272431387744193075727513109775875694152154958597363649810280178952925793445395959069321644319869636705001386015386839400910261869538637216395907830843755612121376787533331099126952073997157583311604026584479067487930450202611250655189028206517182762363330671705762364381184703303600625594649716974960216966605709068448554926205409893762127412736579155826592748430365189766246844576197344226461445839974115510135662215872104356894539953710647927324006956372150052863121940457249069609700529373988578665794880752136426270407531486718749110334273184751633443521919935318418829392793628665680769096653537240095383130362216955292759870468820418821542909858802546486977195958622759817589493475824994448689503636411968503253062322419870624356907484854023102959994349433530950465017563327774844382130585168781479078017971169560016930104381077999203076298272383799775629936868021812888202005643928331870070694597996280835627201307412115990516280516251335797091224861667695015635926660716037379850002385089903230138096012452544844554862135772614707114259947846251511595389835354502470876575421922387046957824439496057403967720460015750958477218440764621986886940257939627056068940119237543642605258658612566441482705759432134089415225356902810029581477468259711862283723353594691713901575200286231660233592317077884359614516623536009761379265017771180973464791125176473843736645926982932364750373433113841200189916921923322231753640972716768704074995795730650025816287944404723114114549878384636467640686109291289234062278593902894833509199371431530180873011777668636259509672940504628050398172312134657450989756642596659293914631076671834109993731672611728735847487220829216311220024689367183495509691648763769310302602018195958119972852910903908092475944225021238235513926628801524568633312758188248387340609382428204323038512926710707685468823780691419431072251664919312346826818225490950574656560707039669374801600628297357169497039420672764536817373213956974281710314428987382655461289330691715295366388551286326495538196856355094478825671263064733752654964379795450287399399316763130832713949938099225809421310649992426679565216081268621996625584037981930649586924534055738962069510987971956895340067814523381746911849516277978611580630032144635542587418734862960911317067364371769127408663207017753319476764247682763105035263338473433511708398881766240706449594622656399470918438206433392321030019521298585339329165452278741757193948275709823146039138637958959446708893430200460350459380183135217138998729111396238533620678300312672519327691762505979380717417021225731276774805976546351863718404487677417803444564097409844313021731755821950426021055948209544660626122810389664524622750227891860543460923559357251649482818787278926810869168682663850901697809937385320051731551894525228064620801237795253265337181197429136853504170582115246575713705631573477574006479899825823512500650837595700122922473221881666825991046706124616896706849728666809241960330950133254006127004088951135880035636458418738304043036529416161815201079444998418369401437095791861452124519759905621380174737501425785517571038069703346701891768698569491823988835858211054375197879140225957415533480568315244506685063620502978377665729817229378050505913689354264801249630143291890744532550921158076847609202962094463180862770619511047067597964112787156273277076953253988752281729479301940451318176678770375406475162654703077234292338672281455577997182199723568717546862544318895425429057254089937840900197517346701935484567752386486401760219722268825715811150532271311835838585787313081194642542975450087125697099485403082657835850302588719378651025369683744674151698681729142537591539317360353993681341039564446253949480771456790384381472781929136622213492052739473635751634119919301383998858698459969216620085230335916719416243197680968168611281522827824369919449156618455198621411415035320774002774781143649892419520644520810993003062588192554564881426866749404376771484546018285492179640851780262567190638230977135686332901566042557850407625234211433444390389537901277633438576505578163739350804999312210969555820776016442527318451583947794130044127341849402914854178007150258050091444971801737668507713961120118922659967534034101365933510556208722397057969191189196412728820318968626167425829042863512790680508738115936757180005220169928426191514442225137324980024184867144704092631447238961880579273287105970253736374162207918362361513873564891736943883867770457222570197039920443151214540961355335020256532503564588755549300091865151475787556507651970882236656253219382824990799691295193740937353643980477229208312589342308905596800237642459923548032086881986613582978979631693254711616542595725841283272153196942741451424687457767967734938003856036756321942421942653969439028601711693466283149684863019160731266901010289131117650295076410403959965819778172177428103771848868610505594853233455503153122400253988286666036781559695311619065377919515020111898365109537327338105188182987205615847961432518738824617904092994173822445337200365695762141479051288242816256508167571453569993230842451411095622578840696764052387518003148958489478269247371237703246323913006280795380063135018030379441799763627371730405721382480225288083847569319241460823828810983839958950514215383357740781159826713061510942919425475636049999299695729046657815312796718137336953811594104267334803406702778374490163134482724503510405974927062301195732776919561603019872602614272399199270487080072266965480837381167994863870723430526566118727839661182229756166479127286687908423448117516011334609046885789192436490210588049200260759827710358334903598722480183894149537043459308042279451818557162726208666584828933024800708850705972739736341962775115919443681048296351760804886599613792216024918897068893672525696984857588958497969271312368647025241617153484568845865033546553390549907826743984909335071006812057573960831878394041601913589109025013720200622716548227007803498563618734386241089336267105849782561879177504884907632404482695720847710629027415016785576243901689315985534163402237262831613541831581232705457890161776714567152982591769453268975190144466291372459294389350549029951241810992294179463824989627952662291912793229628712063004760044025502327635429777474884299447943704344963168773517917121070345656426287127095186677229407925212209289822994484557714044934859184183295461415220071043079192465896973507934961365951258091907497610562915257127454295040292800810525152418618598612540070716341846023238642775169959380802831442615604505371414806249785524181528335648801150148220795290956467648904938786028041863375137103164076216504686340674966816586591076996638301309947907397460135099031974388291378323734882801837229885182922023528053589405787377478364484670066745227373515320333246857936312558233182715442899285720796571852188089275728704874112685183581540173035509846512168136948045719949775100650892939990220980496192684067190346632830893580595900592870403023218749572159671718151869395068660158767534058030674490119617199777713785355620096161642971860747628641504520544959597678927985186095195440732537704249996676080106333760224380291277096413710590515836724620798758028583369956492131203918367741052220292809464440762121834864020962804309397128071073875927110325726139546874994319646685551148677159255940927940689946195529575577276566286272159117355300875417936574843479974163206686412097124635985035118307578273690181159389589188188030502201621620350326342335234531862523886149274048831549789331466002605508998111199240161672903139911061551426583270746642808966432183890137286280605032131394259878102484065674871866376130273534553196240455448936935702727496524235564685208052301490580786216084124524931336726239979646769983920314389609928774795276814350753909167910356879469707313404774313865428558349674420121323827928938560699185731179723152405360956645724134368582753979013097204009853283914667974951623558818193646244653600427624976728969900989471416627731312908670085132713404975709159633634857787482688339934830495387506103276233962274672621636408079376906900025228747235022688473603108431795619183857104758734939483191489029373553195177707008827969088685964443483806315151959274643392664096965566897631446858293066294415367398533969552939010353504848343750009997119958606346446569316644538619566708771901133895600087132049485957781302970995038128207605904393071939231239237446940554609853319532444727546555457353532272736840686193245144634910622103215286925903430997218719352646558463475049872190323546122173407049493183761199690946200887887164347609657020778343502829051260376767484186748084876012131461158575262809458363249091165933994128250001171983155103422842338442311812751186862175985095315527369166560135074257064112725841180330774431213718022924930699251323982168855509091479319450396690461544351314935112062118264170837557315909535042980965372326522189028029298409963269546525955186945800577076903054897639632645300008300126022012403799780617720989888475489298582247918801738284916369543077314026631092721066852267113066111977913663856340989699384526846509478520227525687734629440896894157132747597526344227354438549377157916969815418749154918624163296628062534308919816891345067173795186200060054253252773890117798488129056839940242299682616082481284266201967940239071154488138608017747491724157993094837368274118115430261479696963130517367086281260422183394359812845636998043103460052797048138303983206305368771260299063192065028048405115443559835466776252540220708201045459337876584307436512889251329467426955884518470697074694394593329056291929714145865223625457414434968429189835134891666964327430379150766385576875459998873442519143772660646163438477105027170504625308609530050954667710165683165183579573092104165525800092128620240269400677411516245674817458188208680745818975615683872909604839668491027661060132072221200453521289761514374585017800853125444233559973157519411686459015829189813227477766244655428655094703997039970801569227487275026972845852895475511843674520013391846937803548825105154470159039478296693388808131940205262806368835692056306885896537587328183666670116645940261703306596197425972253254925761874955199620800056594528583695042429183357190813387544869126230704024969942071701641856910241454058638943973129906245402314676377148311686419754169138804754934026838657393714323062579819824229485079405713218368047847876350209055033764859817073633552941770796661827632297887783611991238119040681315962493792377202184484224729557295782611807178925657690154073533101066243469044631252570974175252841578938151380237375115926845219529008705076631458087290270088640409579607998935861678788661062203104975295796359550339096347929541068775372043339725413454370993033933830378568343101901555206239008621529416747080215995285794300329867960943312579459224279182902940164809877518780328287488448263566798726289061728854505654521359422466724995780148902977495245722356768962380156795039757533248956728796229316122969796065222404471165476313354445224237430855296192234172446753774156679228873558344442945786077020151729047231830805424637764031541435339205823976945929869883524170945940870801272906863853935138070299325351646520920373061351491360435401070152572683618361059508541077308133205950738042052313362582010863219104242099686970428440687624950192568038076484472460598188453865374310499007696517303648139011756239152028233281871412821923037985818209852650993258463392942483348103501309763713059824022394829984562706109607191295414856664497811462952605224151809744958235412151645494927739828459039577753505048389176829109286052497815273134312898585181998372323496568130917440451926402322848741251826333228036348227827480022007269512738714110117185657143502805717982275140790013054896712347331777039705859737071447685261892678473823695708745231824376832070799838945287442064790393992633014293161075705471367524361230404664111290555116657736919172433595805040737464815682622516827283056528918867554272342155091770933795690283611996053051066667363550856442160417247887698115446596007847052903260399905856834600759945969249617408913669678315878697663151015459038143195955283579714221203624495583683651394563965216279716115641245241352640113855357137040213182786113553651343981420404554655100868416833078968359286267111864545399882819785002032755142317223097084345054966238449612028238813242026172264503050357648502992598478204093007776479043276997478354900790517197286021516470485343680756858195233415887575307312177545550299072072476109264374163867223857461912392613970607634323504106120786640994115666374241810997650561136275209759935638410587440523529257024672381954563499279770604374976374700136971603210573840310696179235963726811883068876579260481904925063202613552611393878429191358514567704888626700552224193922581569835406216692784252956960635174341951165991441622863708820094225912796076828193304383559240359745975823987195739338862187472112460531864392200372821332466199358127706654923702647397447973743366854056259283408710487092126950994470748737196242818613612017616656533409326333199238064228258485733848912089016788006548113543150800943607301988834099932543426027463751149477051178559214968783072526871905262421841854217730706589802907568334242780147092117132125210923084838981917276293849574922901730514743492412783872291508554595005209189080663355226635812201432526664941900175035196064247081632225384350558906922684955653997215591477614129634179948857353368715645165731607539049927956457182856123161751370077688145665195217230326576554392682682312204670126604401043741223897391368729860007319860477722685294058078921119560572979658079133921669769670921427200604743161452775386452786226758241550035968248834391134820892664837085878825253695080134991977328635734481962088625506414183952645486917920588843929969052574928742792270769477498485120205176441763463403170288735662295167239147448425556316441520836063326999107951422922942840735714194206819215573722123213902253918760409794891806548872816910503716493047937119007833346834887040016904263005686935057857616562443304367702802498639476855595382324902795405970184072992931350643702009296258467396396927324130587470470099435052228149481560916563940780706008797295656467511963699851901790811561308302215446209213442861616388330076708008514206078116262335305506988555813481888283164527830120779776663452803023150162526990981848408631957458128545917729292847654950937559133199958304156494766351810853269097897686828439327465158133854748352330110142072245991028310455158704724484657658233652269652723455776675088337721945187008073262685245646712172620432606994093160827637631682648607352022938579090294292339837624204919897906632218927265999407011708292000588024398604402639124745583242633190764267732364033095331336322583898828243088588558898612062506629894319767623987417647889890820933500554573322871434725195419891466563271881151793895517544423437246609843652989064337765341200058765963161122529739239916557768159439622098224617384201203141200447655693223934191124091339854452105245909108448548590078312234057730165586183371926500496879453973608811640924715997431768643564142120534151783253975781722642947417126745785801782334787347386506492623092442792076702251604595879859717620082411586120588222070951848446446888845518427443216185841868036644278620411312557289946388327254635479670242165128958022462511839775399503523012990401850160532248498712527160751855234331342678770642910933169173626049452222278058185856324718113120584906887343756168292857270310714943683002591335996218051410754475195359671523296349023464109540544880933059663594761933686483933758202254572943116806360247027564695434851154704559429304562450535912304436612360418548011830501901251113285698328833126306535043250560408628488927952545343290862903031087061555380995301682681639104849474552357974270304500324962180518262308951466817348958141761381869766752160580468578235066501272825043083120462278398640108208833816412265949935423920360910667896491246436961783683578563028769814190082957234449559964474355092520184376368301072539329903470897892577253563001230854137042120623372581824769474031250281749015793708518656714926920093593598157847283961931287176403801713649756099131924076493055463536755707252031678473391568090443706265844136797542956290625574487676056648656856282915513228925570775710579339869001929251699219684281041835470917828348263211506244640820131621002799975791581186138164745282112829019603938047768689660340956407869811080695977848587865900263313507671824007529569141786532206133390797508383400344151122912037079317643588688322412515806430402275717795939339849366269001591002640008108071632704382463393521385110894160641678151220331718413201280104130067685443112773994362550742403582016504605112648211109143797930299778249199936465160457218736389431193670598728473403960052195526362198346385245018383597872209239620743961919787522867613412864594915269343138988747836480963143879438083064756321348390061839877618867725041574485604901571283994067127589295356082318166875653601676632452643710222161174169384582509306574487196475444936534747122961465342975297990308213429637730215050753418883038468386169236736422776111828583371462324104545460992588711047783243199921606104925485142067108337164367166892909333937775430434074079807284034490361085551989424466225919150575184688187080949071037009910879090478913638391882806899531307482266462761128549984120509300217078856315570932754428059041456230810164786260098199660381418143106588421158705469325314571537697388004416986670032857900660513998044256745002645231780696209208059415971598393428749206380844118447530206501187729638507422595575992832021310920087856189496516103889097442382291817037434487799177111270964764832141605592807850030289485544743166393636094596209497994902530649449126291973146361961501144671366372993765606527721752632887909575773593686855668718412222140936744640125601007989592466568641548181369798128298394303317403493824550452937303894246292099614902987677737136658536393948223240593373822826491433021684095245395644179230535724446418103258171392362030568570519888124429726169047977032568102233795809180534682668434749877838498892660545591798780085750608608505033225780637106163187401297526970459814982768659183201092838196759732057456925920340847200725244828655626326947782919623316874393850262152333745792111007413775724957279973431388352653224483595487508400648018303601210794094689561249294691318385919828113626856955353822159040523477489818183768104420111554453795594241493610617618194353988684106408442925892134300981632908585016493695676233758454457816108023716325338531294334872206248474490919011694324738735375370562520540303448074634337141108991397537405368017071540207570175345865527587066076657272829773764673591764397163894131655418481925832332881478145707517943927702647383965510212381972051592243015239182886184291353456013801225983711347596044655485851192487582101449130116239213655004914928715648255410696956777826268539628743079660677474188340784658826064019652338136960233138875167310910354700473315775128170629883137677054962875737469165812722508768318840726295394718939363696135294148265547596479268065861776976652422648804060229847683460462004301909751599064475240745737548664617026473569780293320171976155580586221822858138581504984393493081880453619929344831172770226094765778201760898117377692754677955234144679747062327006063908056679978544615194285644718752062998579546076118302784132216646622831359618458561436717636895822314164737347375778511213396218153148831382581286097022758781755067739615966572563787210428476184459483745004295569032621022191224931686626694298827889849500909062883263334025843511529345436382946783376657683420258385545949160506745590823086545821514620238065808441270510430398601389467652877771259069956001447049745100475769141753177062907011279272563450786335585392614106747947718951843063596894412494719902103573612612067660248296766013096396423529218379601550792367057835270254524297426807288901068518701705158265238698767465063732916856687118111136183729377235490464096127346682146703060865069907996673319972576769275357244441613153420257405176983798481510697055367241057239430062766019775956079364120578954666070594352187711987571418279400123914994544876700847225595289418342455771298246400724382790469502414036707311251896476080178298226789723766367963775246692138438988687313395435112401529394938648333312965191694572946486414436934871621880174772761883814798200548266299588513975441505052360057623881461364931838399927419590519139627024685075186329981471609911433580728743580834198179318207342745248004186656210368008442199423016727030655530652188688048901853527563425608160292175200444236378603362303637926545060167119579678655852999870052890892109704490167375849774750643347873348258876815456381478226743630654001732469509227552805291689300178897147315108277579067067695236729406180352212647621139066894611196153922525840232547913178454534443688346791041619686085113964461364109926967654500882356066379293150847319554400731588632622753390679110723332454989277094481307977967720502010214116485316063055742292960820796785726960313866319017860615443870668153296472795757909995891454536491380591600662296677434043168006728627606324595469774933682758330979145633413208668881804616596209739022706866403349589093131488016646117734354544811119382634660008084825522250157546439575438490725557014376639765467930342027389464969740013115508474379608160226713200240542878543500123359749112443803264374691009884068457060529593796591053167223471559786143948366398613387439022531094346370959981843559833195922512173771436863393761325508899233871677155027925033623492410787519950027409483347243073653946140917301064977939051615182256216927284000284972251719236130360519596393432653051885157908367098971658156882086875647559185304833081853535271880139241595617265266685611656930836090498892668598237686600670657903682194767879905911931813737851608077654208706461838117451292638743685937044329319566528557362644579576494318095558749925860868621470795433760242932408218129587670610783385148822530258796521823222875521812182516154971971057555022441379939014734015368956774661341231879156665729384375347774850631404335501345016985284444012783916118991851306318487551732220176663169968595478887331915634474954099672697865626450898717316849914309469608312854494526325997177018573149742724154965683604852955816181886743453118722030458332916972830007005598783607638982803845447570835079137586773844779666612588828318812868405691552104912606737997861937076815997635001427526380422630379399229855389806025880639479497795357298650832729207629808421724269690907587076700436613321457958563144684330305979449774656096324673890021745504783897389817708276901518503988866607517025854854067742244862850882774178665329624814910099982974009217948062499674246905276828774715955334468996891236155535038995289142624808370922448732063129278183106540988191644703044957270483407750929886621809162765335574108775257233911646690969401407118643069951663589852478056116327143870456877769684202198131959756094283676998127088562686692133769971315082077217150266878617974697618740475100700003532678839873984373606340201351692695953426969368938005479727705488956136908313243263725000532490488854609276491237184293034772384303556144327128250090601981670790865554080645813792047272731107454816673576998466206326980506848072377122202755842408907496259360913523410689678327862348484704938245260777544299630998598689215850338924227677891594417925590756392696911569623718496828400266096857546867982007671675904057250481218333329617237170143617193325102671213938436702656155573274406433987992685359328255402474684487241325473813343181542089207645514327412000690369317961148478749494258843177354261734012130179044744768867274980073547992535334107823396730262225854286386709712125303028744747715367465267424959474776636014161592992646247065978083527982562718181487841991889176183864990532345601085873867819922486254376444332940077417204556258117341850526018922337175278797581905622931768572828309663129103817740774354471995113170976420513768773416008931429664359808951850027289797967669879496047435858424201660841872546523171413175625808638819238408789003591282075404422504682713465275647154706998934004415588676615614580200382303617941202033735602800841693425237491017532356986458816094331140949966995921446736834725543984984092343692718573298107257807651222188615642384161696202857907957542337962356164091499647256654086324246084058160156513576602908335059111796632264886371084400209141778977857408762930697552040192430208775829767277402508341421087275539703820675457976609123561416189429380275732848798776910504848197070699159141853486332170537311637422905037155818503968026648372621108962663596375731476617889512747145483712401321940696409507587772692764702472457028422833491866597897793039345283222260042673586199745351039509627971848342064811676015649681706339723555058059314970296307762279117042203932265490684606104772641223124991590070952353293837546290202867073486062758380295270123683937182941449741719483362019634742136234579094213992707405886205734675002787951246275307309738473754303121199096227518980675084348789725774617863110923981841152918546130090318155708058761556483004249656352225627522125678267088578502070451316554202471077774863304103166184844617991349137408477947489297347509397466275142277375093598997499434542145664613988083844270841624263051486297890038025559002764803401934353363780845063977226719400505308825876113313434590005220459968988300852072805727169018810637712156126785403786850959577997195572470684367299348824990958122855935102752290722359125966980747315413387194255051368351445192215302968696948131777236805669549472736731818425126479167763434639970456600062113521479171787287483770289426715264206850139172246483905771920540953685640891946886253719068052311043722963764158793724653870760746153794419857870143558861186940663340385557426061040524699234293778637408754008613486888083096751253199017244417193862358999416155356785532015647545292372929973822607088904114076169617651981224319405153702438966679566466299431807999922834451183754179816235135700005748294710820162361768519580225546348716821060527759120180754146974927304974536903963730106877589891175721486211617643713202375553376822469787150064025100475418517151575250113782179457431775112285242731844583019592778900433188881087611183755866117076621556156488710028735319289038333528470163655495862788774276188207924817705476618630864584351264559006366162142389001263751451638035847370189782205454108303861748962961914616234641224900189557146534548884188835905829037817276913356252343217912107059264497192201187345837394739477201453351915243427660493567590364247510939065669960760712834906659340864589180618892804042721474800910428881769337267748842778027949842027236591125942181767873205772847227454347397001395363660400320988160849592309069807223002127039478485920950403939083579555231601080258754790974658718031714479155504560742783552491694036752343328099410550583081847601562015061255470790860668497305977679211957407283295383569202170161113674835009363295204976604285954048555021858688739678336510435249195000774686372173586368086544725289226903858080641915183034922755544935602712137836177792302916874247760067391500916023950332793931774825535654568056387648687721849577497844322776930416718764436534414273126467295776389264304393598896385480538089715858260883795857775826464944242120531490295169647259733698062181294751890496155489360296019050601400928945846703262377374329643058839050669439527899134673900201316165963066259328426855179981850189551711317762036550068481678319796546118565558504723169678507098903613447813110354835156125652411677084859962479975692040311367936886014592789549062806837864241749398823032644257715860314102156441466443052081582913649399137223067107918031196150013257084856842633872342328208961417361902042983178928680045160141777513791170684686615916901922101382027697994689255231955816066409245500773403895631568717328966745267022015287127223978961529357919332335888647643721545761796552725879416793689240825768393151046334686885332016826633678503212768979528054236116558878894275257779114088221208033028156023790580905002256936016134820016037239137152863804117755693942171477807014760261305895449077801975044452984073133508858273358647571493149888885135740729675087021353581858244385708605959516591695781632813525815029453228831053764195961151086795615566842086995654877576872337767189127862440827061282297285641732048727918080482428900137523208366349942156179233147650885359008630412280951818034552270701205477874938500136459156069078204656444155621121732591562614696143374136328000285553802612234253293581927204081878666602979760322684751131555076716289439567431121801865869338707827523510226948729736796285748331647762716930672752344215954767337847222251789133540329214978895351062414911473877455778522269163575238290454509176555623629454727124718085566392017321444682017929984848560064270129774733965666341186204968186362853139808659900016432482588349152508396622172142033224208980443042857471662210145636252275292905211810364277672758263657655422417554014977033387058928139124966819519098794275064843124956225560517025516363900249510823793617728485848975390532030472062603886947743067601825894786832675209495603331131099912726139107186332296886331365317757830405270762033083397555499894201619934662871330147071268411113126963742201293738703996476594648521256653241736180775048937935753863070352325191417064603125119852537246028310125985809790450046673045174750867931567453999157386884956506074339054681140565973585036577520180084618570317346860856087178960587242134711266981476956962854677678065999389915438408992178811577996495893723357510191235893038900147425504130721288698446392393232548430709396938648581883239400249586464427574911582817422282055996092678110905848710618914854819926243113478698062465200053526038897745224478832785906780775174889607092905473885231491646483365696236842618845701465227604907994415080774780532087974216904076484056424702720762451850567671635763274830297707471945595811785427871272618274049851294898306325328277851222254397357996359048498859022026844977311877664095062984948290272078501599293162321719771645486211768104343077516632855820772312919142644182584612612573853251293019299492145693062435534091427688962744719091696800003773291968831514001537968425325625173661020845627227480389711776790345184508421965470255130897206588515189453679331933051634331827527989755498962990450179279939215046886722939336289475746345094575254363650460517701830849974256714950600176151986311240292858597379768430076572755188381218644783688805011181713631974841132931493464650254103589796903770764146345488461980764348518470605112266401590057984269617628577473421633595622349358233528901663211904844065278216470356591198479004347188621968534027726184869711362049447201346825505450885321784134800264164242495281651620878272898658143371443788744121041057480599111653362640311361706416284735722265962591583761582485106136205786611951514198620180874727971571681930596157923754132127687523869547904315470571841815519842243274710941544044702241905105983615712515041429929013032309657148720743803398659668964622827924476579523225651610346696419382599352277481853703828529594550329443256894599909309690527933762444509260786022928755070559579021548485279849093437823794963198490137704075347276849225734089921133776927617571807021723152595587857367012086576865974642699007977171381698285592494402530291328353098358869695758257131147676423092142349275837387314350994512485556413539922807656135518911233428106593085775028266704048453888427055812663826324651863447418990365390089215414933632989877193348393856018005452138555871414408895833351325566035060568988759544550411474727861278984094806912059577402115109681108295021790212786548461357278318133170763980443502349111990118035042754528721957049437922036895755426037171961618015141567907437030130844804897689389692696118113977151391247813498258048227018327172540291987100213135151939198785983967111962516956710364340883110638160350758552741435851627712172651082830760886100731122700841142772065735861565989886255372974659745221686124311676857260003725030451430292293735632722548178865593409580209996173211421755938976849654814342244243934262959977150903116409859236031223702338747347468831224417229635229637658851280897075192727827168767585509189950852312181619757702223493800074184240916859460916103783817452366794973639761336686270566522143486651432627273849143654421470971866185269018988087852984806796977384583137275661126466832142698199437613710133879755034616226295901314983939658628958385792250979520288386327981219020726014110406547245768283135431165545030198358853782931078450299142853159467636221104675532123567396640650798244635200132731468655831284940270874640593372504158450218415233736978440900266325125230380058311510308908399893222436466977767751640987819895033592776492357510472735317714502403930540347728197129654361789323540669606706253248808401713670515921090909783621367578071441522682103578616362723900535619257652896699987150591117982966798111023734376100585511372561743895802621110334305525155528951211381043567726850931673868399315222031484799101509368602995893287917692177976541018790775735428681145538571920101320940377140087642577750889376982162145711668592036271218966870809242766654310352215517359016355761642821729451730036657403838770670842913796969470216155721229285967982097758676624025581398192795977888283165093966484121041483538895894826873615847687497647910980751867579651452265388336233793962113271261886345745234230099245662766016260270224153549982761039880357047533790708518757851923461191012284487035636702221838280317064504095443224677979370628921668097951220281256032926091981945488711059911565044116698273755499332581921400033299553324338723360584327355329764616394703570518515481765065744324620942241706042297274340099656060972357121052178786649866917681352402517554474724147633714856594850228026811473918519963582137478509738190336424050240988318513997197370554864859753825009566265086587421000569438109478117305643949866246829273931459820277826994917203342782475688920375301156585224696540833381875016955251899525681890220383743354741269183201717915221102714136803840955490455210679029459166750037059652694108230625943508363827332336819496349581101439832558021657290347690550093885251307756883158557379895100201257310844818945149292376588924557121432633439731639200313777613153649364457152600974744650244467794872445469344574646635258371783997969003327823571319410932664319586886891059741542787220250570051430912617083094733799715495003441022556693895621487860922017067387477013316422299949001884732080757353694285473430272429809585158412159545906158852925084501212060231665737192256159088434091064259394710663478415944061705015330098769775319387059273488960562954131539023957599107132207088603408727126595563404735296289034402847506748556156244483343194575665795951739508299365581029970944297665880364740821591439428073866101179574697085565073853383288839121244668753956968023720561187848913853263216913831583673502513657978301622517987218813444289311056542814167049537086452737127150128310452018860252308339112034303079333296335068745811535429049117858994668966212853875998002619722261829140154102227579678688922706642184367449605575793195823031252144930001946952555156342210811399872748913776147442764128634404328473297686544813238870864368672501810610498303242551733937888085949780296705729279128318383160452683284877708570923175753993627194459071509880753081889315873740968572722187210518961277791908889381338137451982414274264246933235383343898621078650556256704200560179418065395626853413169233372340102455411814510400648164296924593107166602499010928072862331329497779982679475249912641144091982861053391488183025895259826437880031941125404183716388793817942732074750283588923477168846201298345488179849092337814955028190473304953076308685487950048024466782852659791979131891216133076757254184667335752489657370468464581521199446884624745060990488905550138548837419172154655160442421770255984972169568275771228206628872299948127218041398246057844886776021252278885016239954176527433696062302282921808489890494912923209333561200594862426105589971773774271452889887922828167174765093066791673397406392105723898131325422076354551985558613302776610910286300481430893520191066735625011463190180247128987753980092731173252490297229790023432921612048574066459316133929092173407630780469916519917292683190993475156767668524440059816575707733403465838563662618399370030191527457456916850669047171363759159396059509543685404358491144790127925869599458956354727841709426555238998190952774042233529587424464496092322191020984622479546269109108787464342388953214139508822901878168414002370319317571476815710859248084449748026570575648070076284954322230439672602328107891564658098773683361223430019892867235876986592023790028965500381425717050516476643458262172844207780147447771474876496451648587087830372814119085687922098846083678448542735418528339974755542762446115172279144870960669684974044783913647102532872861863507150316212908644427510317697805870985283919390263416178142020785843660769009622117806998381243815597363059182098836625375887096172891421356207633502028542779160572579431447276828417472950982867122694282153084189346532091116331031886062604688116181759143288344902306659385032893024784898619620347841111388385116991729392262971731167476715241262361577081459293902561193607883728066538916414028367950600091390580578509379031904680720048116642688078469675547199473489351383457013540033117706585415488891361181673092362621336602144849584790625524755942147833875777879765257796151597297690188679134887969388701437758710133705248006994919034616196482748639172433937340088605395956288412283350286918351822563805482056472756868436183519914311992082887059388765088591757920250283489721375179159300584545491552995155274395686096515706107143722436717995669891115095541135558469370464342006817692603282301331374658561842322850188692827736765667684461756286643226900931602731853642136570395429275603308494338822643965970450942664025693175810883200903354287935176828502000955614027872826828925171876934164215949528266114859199150759738944454095673070577322552573426419552706175137707929841034427412320150769652388136068167260933278557400708582697626164172103535911824901153937439740430182661826768542032127296095938256606244183569890053296243351962783106751522818630582409770791929197536572149487953123620703985192150933783098332025779876619681739095154882786638160454393717447950289628934629650401139695339145381721706205960319884145274046482704012168389163172078601933730919045961156001933581693550511419634566613236848053902686571092711977494485955989852036582837387103249775135536551532058584251613896430300652921111869445278304102552875388269363712490081305159829850867220330442522379886096466381275389718859218730243484476635607438708933507278993627863394037708806197973008485462285083841907108101125145300195703414530054372845974085519136724662831126254361674890639147056143903320102437908039263178789165331234773996981737001075389146803584402508753030303682816354180948525469201390893179836560611064310906433916863777091228176745037252358824581439823677697347289858255336277198262646419358207613851484992234926157091132700503156783613228345367176101822908528889995544741518082701877371384929450040695370011703137135015027221099958083582818493344645417174074146330401186111479089453060773172058463860133175257205244486321523900502788965998184864077416014323872185534171217080962814015209578993301620615065569310017330375581063413629145969905923084023261101320826667896460384344814189239547382235513675538317285482085538051983446554287889514661959058140209938772723235966988010702629812433220061779973208733235325020652313996286028323242390828718831950258955277611431575357502947997791296732957603536683249372610405713678177750748768828163462905237247394040294180595991572757457575771527352181638375026489364866339917375370097680060339763327592387001590329488336322355976123412462259347454244835317423996342015401268306829056844641408926354619324078207005213297848636587684492309001194532274689474641659717827617985288373243791308338671419465533678287200707140309176308114046777297842094952563270054671022538931945456743499486702916075798054925052598473009007868830497371040107054073230801002858657833599826702019895381768017313589046486081445396019372784652458897999712486534982392582316669632008022445300236612055259979291834866550588452846546008897641242873662884964005898309095086528972200371553753177474811571416427693990796019260778512153162360885987010698312288137789630047709858329067069150073193514852783413339619033027537192099703826305740300887784139552780886857110884499590349475720975277669802346989411876355861199529718719184117434845334760443524696095000101179843789282802234500235802066232371229226755751762884215239045475096581771054324080616168973564910444752676267030229773723342678102558869993318618817456495248089840335371466167121642691329555134143418729773924103412204361207624910496132020619854165512379186606053605063710406865642755334067910749711913358396153298500977556775962112512980638829732895828425809003199984927505988219694271313429231895918325302243641432512741638993578786598458766663693566179626565715824607988247551420149836281418834201760261735022638098747384423834444742501413180204322040142165924889679163944143082230272246249130168039376963399568464485986397511054663197062369893489606761355528435017907036944270401251305235053354297100518170263509645579309391308344214476917344567878690415987174813436516400439536484862896808238371434726238764593361383621229288818984551829016604584761631640491310166515254543574746816208906702656078886117766127051777863323564597094547691907974238108622038301312386915804505645850794869938284265596945354588050526371392623162463618755209531627091338503731007042723128067105310438985026479220176236870092725587275765139041144461191758762118256860957163144692603220440149990415724338985555729583237938823139884281390560023407681431570829403113539464649272440703622670385652176166423323689601093767895446940831692932685314695239249283737090988198556363550628937460304130900067400199500111967009406420811992914395250572701741089409940372500423854220451884033449736669814001154911731081935602047902328719665532609852559718724792020046974207181147041768212111038940786029489130144371315101359687456446655267336073118726642068261867656717996415539133556000978153405648593841237455056244805370588127487022508219583519622317342184449920503903409087737067757982505668994496412677188076973219605727273975655127508437826717473489612770778827360198292629833310611297303649213417930136507953150788761714361679993895683513291637371133567014562089153982899396168949046715737163916750091142162193045716568072000140439888515222450675744824234467549736820226794374859456098222565615169140268428495304366190493340907692520521363287743613408974607936903468344875433434083728401253579860772328590191133289827085173908856865233406535211872004603327109677758030866326359971352254174339323033326090173813383928681550809847215433359238652736794066050181579210749650884411137459277744722471015399835166682743246340576410988871982607046006200424901851912510569578157263204303161351439393517039365419354338848215370195528082353120084268692660989231819219551187424696193030825336854284681843869397661498964891412916204955291864250513849414788775910751142440662409048823107693090048142316230419707543797105846453004303278088132695432077550798737129707356274024444463320458448772382363334830944594562625123303558542169425322071952757456193675478110527779033303093229221326947878895827124840053643670745512026880869547682256644498150567722099777405432976552189645170413676592190560965016834212378453349666155040775525701457007585868034910018564686787705482749697483419063948441140196416639004457981448773951676683787765607373833492556332274439245866512836552697362347623647414376382566619075991598065196821129085931529636357893898822428699733773187771756186177326469036171728004257054621387878590405917040854611405414969358337570407751852013538433207487664145212608818287768949102357917989888736320420147167197288153351535370883029111094713606408825742393078885633416229707565509991196009652800216835506368778871445716236921366174127701533134254708294631465734838260138468615012369341955694636857870500622160117946593711115582704867341518070213689649014156334342477702195513667464448629842435836264142444950319116826936953744254183159097042629374193751282458978553819630665908171388062922027259805325011520306186398934351729095111753785117321517724876027771913677323024480264076280720766953800422151714684052615761214065823219731329280126725607871119325721891881393479498293924139414670977807858105961538743962435123662348180255917540769963701243281260739308634086123700383964420359961021458171283491246538328074044490927956382559477857666950470268516495332603432411379701033056780719557433349329409468821571871076685917000069470499377725514316703930745026177523044338985498164067675249082111819190745784673709151980092176025970758457463219870172413982177326099537471275371878741832171424097680098005699722106412073673787721659755506503145494937044254773426866967095257633569038014308948323668771359376334675936527812389350001653297481220284972764092489426205825901449609310202189063497479071383284856373377674243766927333480851149939314954094077156304058699953918113151269861388646636481991736984924595191100154884632009376104685508338757016593182290707881216554958874588787290252921208628923312228745934375664094331897780365021287961284097338589511112781939776807749874741022534207842386939549270458733652308549393313535851271916053891505016930232520356746945932438965824518904277969432050838679638031153947197605505491143048271897383199047433911712692158857335768477142893115837759537755977172560526007633977193738125920001264389296192635309357573634073952426227460083286648845515043037343966746309621346570555303250969106744387325027038947832058068408977813884597127293814133935235464913683958338019703357008131504150723401943060071188395900436583013107141928537829502999486077323889908325278283121546218706442753721106356485893641467158027979776638778527179526636484312439121803897951277222044236441611850449058772062254771838511145665413121610147287123851786136785682091261716016256394113709788868035994096757934877538480852660645257045544567216510621150715883369957035961100698596394838024801963027976005555217343049766979234943293011512737271347064525753775261544942204099791379492267412719292521913368496512474677821034204644132053426915903034117202019459587294797520824663405309716965782028740179096460408590952459580802385523722354089644789670185890711316344807560224115406381910061553672740473781980569920822664438500992449066247099420583000215360529650122489778011963226518797800644812788946350006572880257236471272152274222299260339416138958881144771634190758918044175932525415740324680342859066561241776254135183939996860923522505497143928522039711290154343900954780514723733044540743453956330372967137321730481227490006695695059820829119293443444442275033705810884502694090887162185105015538737416552703105385345941869067626372725014642623796568493268539836551786917526217327879557671135180513060812167628451160281238886938968902385527362134716489176244505877370345046188267089791682970839396315632058549651560409287737171300339021638029163332486810157343641445895908545451759276344765896280397270365320375871598543681835189342625236877351175232632530586446454022811448856422856978990941502703250672882376087757845216738813914268690624828393317134029730769523439511766718625119780146026016338232542360686462845125468138530995236265480949190968140406664807619401044112570779843814807762882087433606566232309336127402916729097822290763571857904111143969986255685193956060019040308280114277172220682486763945719315533794869957891786625378479422077663232227302314831082505565132844638279832002807794523972826316330317219207660919392455576124522911712369585057164836520051719309207280278360956749486383766871270953365530790406526239469895584765384939633839851404825977668187283683772344722774140557267962572482537463718273986123736604020728186004527820128199843962611225025774097443291533379283321687830447470010913591331907166919162676893580198931868937288039554179284563112123088092540011423362489209860919852267955718255015527774806186078610154807831819195978338104492688818107325187559741792018689012417854873947122924431032124309802683119235679159962744352515326794103048249590766606613387884131620442466379841342472448282611880825448775710946532302685778943521020080012656367626827207976476579391666992434310610063511022606327179577471662033408141064955266174967609223301623448757325710061346058428204635260336105807329152443886541079642385551681516042662120878588905131007815838213112299194617766025161293011265808240229459088550149601425956220219519645462695398662083299359987275112999880141151136930514893710062978844870421110047975813135658449844871845369295297958478448674512979020650970892271876562383025821650056198248816274557123164668343963650760485319220266593928548386642906266345643139608983619082656215635595331879618343605771397148240100631920171796377391498441386797182164777306862559506508578402964231954578453525724950807250774306825007435032897181485781206080371658051284091003257404990264009765162076138902734608331806063377463902322647418907736674705920362209873085552804402363762220493431186796696570246780851152502623218857701201325868998990945156638292124576575533527131244428479858216941107953420830127703007030386565960435348352878401893107182427754800040611226701511402498179159242541270648625254050263707393280502380786581855273087927878927718257462579190969340915263473897409825883792063086949990610998769974152795126330276240510596513609989399751196547710752682146150567202235564991614228123040050079165815034431169597093743613465075819751807064209108099937844412667828548006351652571013327105201201774390193069246384148845586172639031796878926289677771298353318531754259903619779007596345658140112403747392573372679618828880292599429688290595537747017123981193987063778071542629836543438172347697843120458030731575894091891333573007551009249848694119646360720593571798209307432246083719734101000635182609718928476116865564393506032796373778268180368116056789880382416629300440617144991868611723431548299713356543457752396770123520919385436513989353771723143630848475785290031192451790790771775223711225237647988653627896131111541425982418731816523452545958741411614311915768116630958915844312336975456027968964804485787262581008742739182238939090555147080002040796107679563502233258263432613189843734778937690802586905501349878105422077387441099348730254916653257719909634937986764197210289031197169935052052114683296165464986671386638153912873964976947137368379913524683668503713195078179966747699522841306003136445152526083297141819616797182545917856246670520340605531136042491382700277948996616329579236271673411220635844775687089659449959512304588532708013285652144108380295722211895108273138872658008621255385628722628945650258101539203885803743478891264158053205333726497097230124186162551620179120581377106188310185000358424195681414466597627752059958261553933823152917547204162617727931869248241799923367119078299033271051149266459125321853789399515036392582075570836709222166785473432693075657683953213959618311628091221563848010501092583318976174365712338639793335411756300594876480890269188094698619684997886050781685100539048909069083711609079331007923747154494822082474856178772046616176062686901446336095698484671810993909513719180547678606443469405057918403257141755639532854271002364597330457362997067937726959813892572020154054488717931534814275926999242692845819917272909843170331865720324997763214965661570549787118192132858919971547877628947382985915020187793111963047148755298809293710245302485248713507583230408243558096388490185344447167748016775715138925677952036767639649845032563323324934935840139349495022297817385721803152760054480378579143483837851352209901823328940712186156229157039819207443918358243372527159938496114874283684652916731548582084025116244810271402254549839327049904549840878696070282603720846071326152343607816051030326310520366593441968634982644851819161305788873817441973822600941435235016037314143549867436928603914824746187690450876953617889954193619356761616456751938817888160775657078338118801656258272327294362689392234944492289302072680500607507735429592184802654359591730992989220435272986436402127359878642387513626308695861281103305000758949696702447174229620923897147228107950645189877508044083255691562414443398187582262355060579961253744536279456298241421060775533394262579998843552005780105229672036156236422294008745853423464560267139667206646019438048561721862796874485139103437182777953556756841151369239792920413796700746389401573777464685382841760874132309293859088828282172033638783835925601944243893746426106736562613344616256481918006565176899338704822995325002242883488636490246816962036871736962759191961054607822656522914812946509057253267885783686244723964112865959043368930272337843103259256286349037695930338390623736795645050202975162972373754680804387196077874087920281908820298474874923368570434328936065160344895771211768334694863647234929568096762317896328219550119706516965968887437946824824469812837853090972541391403370973947650419107357974521031792756226608147696817400154980388375707083056621327224127493902196121657987929803217917415099765898437422065358590214325167815683161492691599505245189315421926939278700882327637587362860196000644007796741780095344263239637698304616622687142441517041515470981409993828345403551015760010360865857345924140738294771077487286149176816789970689455415975998601332215307271891091761952207804135837151723932006489136845796283880849859359939064017992669849321824953754552722358572244053493577311522816524126465882542167022089369096839048810032595057050049325947549418009670410859563473662401839725356063810525976235866748806362155473023049987006995039620049432121956251466132321921803283511175586320123897325929727428756394550410925857307291807905887563851429458631082866016133614085603837708592806116441327622864045449507182875864215007528386235204225309083340976931308090630876659669595641527558226540132213520068012882065584431703516405184256542175476346215795075082285402267755514304605311868998604946189615849451998900387841301171093882425158010950949867613403812085150563382396329285178660235270887805457914237588794438258942169588627166755390796487528862513665319714578287073588770100973453486853282649855977080353623878494690033794554255459134594196069627220446521228337178035178353282471050182930753233738860001536729140748193082086764876415616072651652468709646055946122092628264871754216728002024754007081383692086695020744272836005605394231173835974471012712267875357311767317838845250459516286866416784085806731667889394847489626600542506356048459243156569058404419268998748290133008549298940140267579700626509635167716363925537121145063879633984242734331043680144865999522137029791410561190551191398984977211216610791503997200785033897621904991100965019625120597808577298604085288899545458610935778076735042331518960632615223602168860525033764346246088639127883951767144286957456106466617598519894967392768016057724435202382167227810770644429860165064637770469239446380577158105415420159024604075250515288708869579485921363599349811655548751806167290359333299040263489450229696739367096575712197281612259365641148850574214142396286060526005845216432776276355517191105548425361573673715975601229799634139462343859668314182571236694801424820415273798227930095658038583686107014765432637765813745586534741254661885193636235488580046767264639309501449511560525579734170541956913009195606797860612448762820304174479342154691061550115026179585883611917321511714639544536333466784041877244762982529026179719865291526693425189589914568107525336319994228298530966563209864907210149861092240212860507432499212999602237477902062491332748051789144479781718469442745820377207481101454831874506827688898221833707957927251603945694019095655463851180370043770814322783076070346720585902411843195565121881675274305955020740860712020453100249545282183466187470423597489673798805224003601798655244108877188733891052971737107953200732098254647660520012063794034847423701197179557819883630103423645424424284111777029207503810395021901202361833572812491226028359030117144930078316336536029476349405834562350172080982415415814473603389173675028203361593570996957689971914900269431886927736908469649574159458239928859080502831594111786215767792308945029947579970625940069601203311274082517459690749059725659157535081367479914693270926951843276348281736551261015851317565323012168893413451423432290752632717802026323862594514223492334145350475713827958101672398300773910433241962200155237224318955976781141513368023515195787119725576804375755757688509442504325225897174504904901179295102573198559224652627431081619108800197863788969442217406565793289278756218293304065285985730870972541332962166054877613434274605061497644048186888690505597920831897827664983450125263565921448137167187680473185627634724122700468519531864495764516894356792387124813776217175691988215004479414590043510049459691803062398381522021978080238632140870732873362758332983220588839046960544588342872789831284040663579786062256602624462871616753912585694337745283015178430094851893695627814879271361992685899511460947839003289333910139344303518256745903508380293854328399071297870904653096234309843134991553739776884104958819896735039494874156159342720811349013566428404771809764985933024470246352906538304724378820212579237900592343845505225530350594767316154789354124629709860016392829775481247996856814925738744388475713021082385942033710646528999999065122112290443418810988538003667637300873715113149373748366647472899475485983246262446687370809573238605323603989944605362603080835179302065856097463961373363824836130787209515385419466011805077917432527174800644245502079809171255161602370232790271108515293422349540706309413888897407582251991500276045134287824073878115648475290742411403333790855615689458029273586961874838373726947521727831998337987340913837527124867139157293565110996848304128116672677435686381698646165463712010462205812076426103413975923833282672133150648627883945477788884740897303649861576897615154383771789534473009559356921647855027552218364004401646018909628485452812002253609088644702254269188326375865590333602967818355933966060250215467292953859133022810869089268014939820570858318992921685498510029910926124975933610732319703419782453709183063688286751044640796546352441114253062803974180541244486684599941300902741851463786029910664784700313835954194964234793358172448814451142771043837677633575126318712574099564291141479332989986244741051935534535305742596185412821024996075235772675000225793571877101755076079756456132536922445334727064283033732539152095048048772887361758050936288686758901050977947803637023197456924072385094988005766564203532147912584240669521919387953824853268625837448911581726343530235584472065760495210194473309120859014340412926351857155872067052838622982219108511764759302927359245784446793097325329850440914494347695204585873873315825466456764817411962938242995467273131905190042000777435304734997688473143163975320497517511810116590232375296153672963961406072633933139259649590586816397100138483036742965992439909804344627803018228546284559829650425140166612016466127075591336107346423346418262196767365764286200943984622493407604450128009276941719128736522393879980742278177873276765383927158469234654558281792637022758725280784614578695479890139280903980068718807146514660615641192457723039811432522216012418437253913528586062825201305638582919178968848482411987361517929690033176861776973446484682380326051794510850671926758781759462793051638264103469452909369223274050482132818156228302577392909619720741411779854487064881266604367243860616757391412082594889309614800048423489256187643753062306273080033070726119146430166990054769300025323606367512144957441010806739786054468321345846977891698493461860212413963691848476940259714114631821648645086317480741647907899989670999808719713135187182320123219266724097505883108834287341193477297169272743026573567809165689155423270710369635241326958390881714628497305643850960143855612123282285600162189807630936779327480757200351602526527713816137588165296463782978416293374796190347504897394196654789665381718462671689308897339733047459833711027348009657061392478719866491949629277089609268666145944703106832175565241309026966816336356195973162961397232417507277978938713797844096000072051396089556742862359529424389737697578394716920970311694716587486382676380987796427642846840944373555721518127523060967995863052537647290804399905996249127119408194411480306600706653510210352544548615287017615536062833446048660751245090845459467342116019615023082825396868826243441732251520037409432454208812664089669408649202695442380525233030973914507492644301815485429314187171470411982823200353834737066619016483760358930009725974842929987239430997733609854827239881828072456408325311025396176567425343051931135841716504742224309341460618616275620916907441678687213780145684178295621950661169429412681104023889773039150406039196713600799258634984690096230094921500394290290443793260237909531774693261826354301748090678261492051794917142825966381732016886484356493472162182588395395379858195887024219042808903415286075487539337408995581747359108107124039256433221037207951116356762085074890345521311620315924649772699247497049518823963329391384399919743737804368728554064725536841574095599657283377023498190608744368309049947132789616488831865446385829812640145635638878876106187069265326785512513757316915575842849797256725914986910991787386188830425072313935513877548580751003150246280251017751208365224102413775128067922397789027898693748189875538803783430563619176543753992070398387466670169749463704364001816408304649419140721791649570752901995865205164086757987610684595772482452138487990398713199538436667652209966554932256363871117659415013199307160096990127644301643240743449349551685384987415351970188838526397108455269883635284984712088316854415380451603454775792949060797424219049074056310035419712353265110558130432278362535351211014872959688245436985641928014159514796858956575053845928599811580091910298712160687800705181398388215473250745692591397886781534118005508218215792576420924407588830682026225364031234989594681679958644326824379110315341617296725590073269167445516348975487705874709870760572494974134688663691403925099979352639396959389975061815993922460385597763000866020601358472155115862157267835178052196609513090575533802622356637003440879751590906380424662789718526582876845321787883414942979419934289936183115593068042539361151031991954541319029114878718400610078539550753619884174432814695185710301174030391194642001739344023779505360421782886416539738245619212243636933956777838503722533063610047910386980788530550309061486304385977281200003726705299265178857698110894663247240835453185569098368281438424395394070365462067357252191584965215488565280853353715884832718042213486419950882996838372846279197951639978276290311309962235944674096600558953636652075495603090139113103808500994749506778431823805747749813262974665962436595906988244860550173304867636417737816448293851658133984099875383308866102039675342108028171977414964517574493839707423028738499331819551668025157281847799872980881932158855644518659629477852869743047388534341327605260347694618045492812852378772088032821269904596215727275735989809814204949859976953400629295166007407954942055897330144400047673283473695446694036271471848909240022913431356885870462081343778238892208086424125905585352154897398384453432452797905775670241274140614995962446385087564002907665788391805017380348321985573159600579273188337942854320494079851885312964964688786655814818605804854456130445544706397670279124237489662231633979547496948771222769294161486942368988558949661395717458219693649461922223282474550007834606849134821813748786029360949961298311238808730144148706764443653364867841309342887572417643213015927788084214131583852488189016906422114513422277043580247066326126828628861961045778942677156902741622638800185659357733650358548460575937429664149070779977961471686164169089462774618478256850616518063051839262007878901575299975196974763989124721667774422165296174803357468254617379974076944500675957559470156302555119492011222342407483328272137980938990870729243833733596799445630067753603968904007870129069348895964059740336894255020455478170931510364160854669573490585356240950073434299701638466724871304299021832171245832401667904690852771599335215384974327464827866854239134522783409695743798797731674433575926749217218547508705357949828874484919087767776374650896698474057211721648739974691962655153693546872722216342117783029792489638847582347974733884476741630825336836730397044794233440921752725390370863130486354221453028984019305385390007436419300040310956054574582257536806737645051782575081505303873947995927258431923495420532523953762932623464808890345386858414795731137068468916967562491287803600779100145770995387588234952314342058586667187877528140499112258014961659907754012952286117954965355019704805801130574438649437118991354481729967539977538849843603756361579572636731543450253526995978860009117611804316595272865695316694709321274440844797949570465204371506677939572272476932453888237123289290923959101555774146497175804993160646697557294619052614820693575405668585348106346734372595751922623150608025607062647670340444823396462062710793823419754196583714012585509414003699846116945435326287464454875783109123066761924643081896302377633100084591154674926439174271111385526558786594158749284613673838755435833650648398172797887161911655487849273019547325914447054974435813121699328703386037889267833364236633788498805875806656927631307742833938967062000818636990001363985832093468571688822054067424062200352184347858137583460632303458320012163554288896828080595263118610926108056419841922609575550337363644193506068470848469430605255994085387450252180116281645471694334723490139912045579272919192946015504044245457028864049729635465192810227496425823974519504392942026848141977498005183599368619904524119223594845968691757163834511107059491533240206796269153598700141489013707528761448913054301691247848381838563877429973259089022406840964152237259718200935654297856256525036236401367899311059215468979143047853579991103708135973904040750609292920086801133392328689515784968660043630424151647068711996429992589935890700158270836921983788861357003793749240889200602419827706058252955779569484233006980093474503886511656352920394230868068564861860361102896313025221430257429640439818119577563270218192830389486352179018907406834972106501715430387687428947733161660496880746863540521077832296429288798870122309443286542939653864425202855268067533437569043552426143157496116050528871257233788110221672896982213854700029851077470207609947837652896090883680969006615480007386716586291800111334489600879731133921885246127667936084968206463152578680823038749107417927873078271594844633073183897289421273021272284112554105327146457421564325219343009818486926713132765502137576468499398289209358296627213653658020019585557156122278497722404289962560866018570463643252623146832570687704991422040292524434563248686979952993478992267833810280513193886631975495937255010571500456413582992736152434109046205800992056418711912380654329626289928068124651221761643228001247206093533358851667199263975539515813257423442133893776701352447533465395988198022242534692751790678135789089594834928388407678021045299440225160093627762282397258643512956954181461764638072438028841872073750433727040730690591069439625047570685765142431409555780326204716798768857270099958433658211470819497135321120741771216305178647715894130879788706063746106948751738998741147209708850309328935031496820444110591206572176126374494166454217072821565672696140639009557861895961856944284313594156650408798062721970298781123924103471624844108435039820517131891158290055724337854776639034790793261286551325852347886264507975280153288740452950171887067441152305357887612603322342004201415547616966588436309773791707502982332605888018794890868999893884082266531504672831125152696493260804054761028781022066080156382918971798132417687650803775725764602859949610522693111482118355197050278344711582916777027695541845637591403087770727834767164490176305084049994973440180157468662198324360916496612353206739043046070303966293955862090448183912521790276641342527154124743162787142481213420049750116906489928017250188745020254676470779909532171678777021203422302509977622337794877028155265669671700683657928158572564450010728602335611849938930008074318992147778304917867825781154986822618678191194284636880407660519342150778716894014303310833782362508356187638948268544234558343844467050601431185909963558231786685927503151228590115878585109440731590750240196703576982264462281151197745449137913709812486569781192108132586003227174603785328119528502499153811310807045142214188648410316935472943685852318135406695392414978158106100569800685004841140769958704541470332673613717762777273995022854049500952109671173120093471500875807468940744846687173752611335013405801654326574075546348363437719557310079211708369969074380728447989047113292393323003207793376023035911257800563046759514468742930884647619844368274251105859953512932789895664287150240376053218267526966701744449672773049411101008126757398639979647389910726285407300943508659736706238279106412470580479949011799959567787493205191877831121354093618163053776623299551360184096180734399191585884992321938013711839543746556253588975548099142554805630571134658312580264587542005339393521947538649580251468174626779738992807936680605386660440159580488280642711195177990671597413201483715507758024917430629687101883134496634295983948032351889223759434538021713273505900850906461109048584004934692483259031082518744642009003260055522175983837434994554203701810449635698074319461353786555852772922653430281316663174129407007780259648564067955461342307578820201877765368641758563848514810244950027461800081867661716587214199523516244977676877211933997284796929004392456558997528238254942331145499754348573921003999783399457793543286786012762841674870773670154778110551455857218128167431841345611150021526508434263266599466321488396346330964892451795436207104603184897202269807960312647300385283122916619840244735991126006511606673766511271586038781911129985363097758185849799096503204126295961135814494953643320314245107436405772922697068163073484028812817267996177095125116954960588721710382065067313760723320406069032892642501978726010310114707360551766482109499880619062369294858410489507691057096854100557641710418273228146917940400572120955337289054348073040720805304825897692671863839481598396285798999042780271323444060490202666281970119344186606446942746774099578045744461741113946777973824414719422945734220171314099442471002636966508154905050130049367479716121594401075128329013032345104931695239668309077455535037991757399820342476695451727012988258326291406955941586736204321731228670358643258006540584243548206314362623707737215591512396569510961091867972898966063017811708295690600754243435554635093748503877157209000648126582234501141016986678768680595105182959502190360668256930056867699773315433940852100481211568078692821828595135356310801939497680032951753289917183199044385599836956494059803649723007670892482091370339138469741279402124764701869850196365066390547745293480390542375520774142265858880040260771617830474347839558779636386418274319620077417625684984849792701586521468343537902090394221903766509194641126042792567838020682488536386812686269232211905390514909873368665332980725368900373556735570419382515554202750285641437348976421702252480099056907825484800758437593951171163655232276576442596522896669220997407187123978657289020194378533091761415375123973207179875675522616108828125424052249306096724997692865798836946101852174690644462728254838429052382103503234700967098725372959861647159809881821671736645396737790177373675187367201605911512892593966342988311585484460166292320238872631850179021354338599552100264495236203888818188963608508173002790194776021228243753534534199792537186212236883634654990967061497980533865952685850991195888141056442798951999085660008612207078170010253285203049096457350113867773809946219831131625613083653139720606868331236422986593799846252462671596075824522181139893051405400035727156422764596305301588594714051703014342394910547909687291462693968187884499307773401622604453615564653063867336740717144397275324577248979248121248961401152711492516754506545145259784357812225746593237313431054126025754881678152044640784075008765012313849497736207591535746403625057562378540238001907333395538571690395185752612630571439528517025109720616799505990893842463321183075049480991863460062775397218538775806567209784893669488191746908875588271471156112352293008653956928531720514307864776589823486213203020249071260916762754124570345904542785149498664181961022927265620687468971027114769762649383673869948010311048053047565013734152526959993687149030961508664055928536019572064246446634558314171717710561530654050407273020080910821561785714147920743901766228627369009127117327661545674224930755361872033900180197818361739683856221806595323341653254687362249881197308983605154640422031467287240619933954528460493088404012608737912514687479665194765792295085950055534176143157172211604096208575516477089208613198658070951619367207786930513307210195138925475673972730974326892948846469185386850216243282613224962866567526437449305691111328886495224698530892964372154092618365148813785145800388411292197997026107957286708176273697336157211741124274439468848432622791869878037117118000872785453606675886335764770354224011399192782412223732386303540526310559669653808133639702837694390763566627028143393001647355304555197726470195123833464852660475490514364390984093623153279282947772620762953814196299196656521413416505559548043570690531845532046733741555884011933867292495147869275806132305978869591800304924265993025365568694554463639033570094600121253843153668598043705795028505084986242359745218201300405407958303012871226584052090518126204335795272148541521544885718656792138232772142068934215024594382225661921876511301444652104163312894820904686280007568137788078916542066465195344953929091936582157187581517247154893153880965156844390626752672298451771625515735111608231179350820280359345644715427957826902774416164592156754101879846928767144439888495717857563976954060736463162167601405248098658071894082759856289090286425772096747945544384744963550661956500232219345036362951983615676332241873251727324954122297061427635032695905307169547631727559551493230513383025045613724948637981657903315726740631135047652832655435480871534875413984469718145568789823951796019341392039888353050385680860903797361163899233465410924873394183972528152426520337744243707059466926170885867759535097948654167320723345483499445780350025287874446033722796310116220979779462754022561856784685731017968915101829394743947785137856023946952562885100886078062248285951736445004685675436687218140239943668724790700242622330453265652726273095243432673817504962959282748565778969726387394992707039802373530034204138138116409568882312830891373468705168831016257559168683311571744764385586618937377883902324061657735827588861324266485854794697164330327230424096366166170165693358926637722300921033326721367148495289315896867052261722682742631433083738700194993381301173190573758392276759826617140077631924759962771882010412528726376812345738570283634164319632811001474806363779394870819437456118662722171743372867273856043847560565634806938744611469324422904265664931082585696820263501595645490184746919208664473505836423136983273175374302330110036477463949150958018799445814690217531158422171832896590890978542518055746192004867506438944610692217057374962477012554434045931070196469204991400075890204776802305773081268257868554148380261248427885684005199183029674529928060603503681150685173393386511677413203743632107807242471196288267540160604394259459266263075649084647458852294251115792335419657841010639139317591154695189844864839601978261343469281168091539673749926097216414315889693507166740762530231145547950305178526285835368621307111414511197375357444844519665576738577565367988405017647811139992729467880414211718432769228207300074419390303095016061773086520262055850385055715161330069564779720826301368982586328914576912761309621710406080101121182235551349235398816477734578435066523535203168041642765577948973223663068888615960252378073654381633554470950304365129021874489680879428188513041549491917752117104173464858776259004025435257532317445112921597302533334705026254834081602041715806386136250315741811726112029244047933703936683884547810883850626846087869526697684353076104682252563937311168069518411287550166270346897785159624995480614074429430155674299893223061180204079468902991395416973536862432119534175355590172422256961662564368386984018108512504827166552938521122445440293980900020481235224708870214041380328521127458690778268766062292940799554797928148588268873998168388732723825664302792313156402501605143340419430297911249787099900125265442342805718419073283237166128844390833759772644483605339520795350206520042033890508974178634723450414705193381408116752670429670654338691276525363323171518452693303732483113992727462155613138672299559436493208024119836574260142052783482581757274074144586783452244143782440272274014447686918986267181367734453577550568604918121880113315563940144978100566445369865282501045121915914714720099496335320641580644578236479175957173951683087076268432053279174357560129042910888530799341853536089200181323964108061977078821142855966508937127239008304973510917831714660121361193465292336736512342208626242929997078705581702626966253917207037595688993344206042905912133545230435715215596897065806807200819798801080425412635143847184169969622617598083324878044376355386342275411119276379816551141357930367610297860008288107241858036286166959043006690359240772964383374951610891256461320948054760112315218742758933891046064702882454951303720276799451915576374060219109576367432133661533165340093319746692010459766322533299377315058064822028240152358803230528830508466789934769144631021716270208731255309038834919794344631280978955795863420254716744295662656289899006418619361053398940580521968319944297743354141184752786986619358513972288615203034472806023867758409120754069403060881574523808466267354447153432501961309747584012792883804441220591246412722573385788125780983539386483054638852886983180054829890557730312878815387242911471077800812329679493715083821053613595910509065237794202895739070187804301605187781915955688404279326144062452447454619364619735970485363981870349282378277010113149537586038584844553160378762927660213001127258707622920211915660972368272251328657506224705316678295481794521523380852595773317470029797918572113666273578000701588603723948984791718609254735570876288630594501951830200470580899111818821453210519679746512729650747336020507665308137086661299051133779313247090991687817688408490841905417094415127055909108454076719378252600821986646729359956273229905814022235713925001669781921647622150169005304597337253778586364168229423839650518750649559261843367340638581764188649237716990551609677665077023905192197988900399504615211666736191619611479544538282909120682433597957775494867803570369715875126091986739598466819147254793853280609478778255233675748381222914615012373222249566992397962719823103656614517633005158689233593952210068014751473483621551986391979639842266157319830980136393471004539006274796918782555257248405257235063061892984347972365488659664105204893398366396886225526635921605911075328792958338712861457327690103755565164304550823395515562123353771336686991999392971274882149792950106066029864283251243162941980235955437335237714668146224132986957940907445076046682506581761528110334423952363304772085341823845849755168668711892684085144277199002856009234101771228438798972591659250488392923908067206063982530595438201776844110922043038771971761959715749392771652315043539961347723112335988927382412776685931739294614308249067147552165255197425568210672192724583027375827430752198797485509069382502983640851050215536698747285115206162646641100924913968040983772131171878438224578215908135177494794531790734401171739306491983627654133378548659597537761367302980736527008301673475321147858254036470893036051278253281431707537259636892507865336056073040519826069582944092442862682377276243835777110883902986804548012087709183558438986868713002100131776294786258540933407146556060572444535556704958303984308570249298405784774445160020986446030096753894828859920338877719647481641513818340010503614659993894925228174629428517422979517415107024828557205776038779631783137291777823045312245354398050765432951589484310237165044528047627441494322627790491519824592406689253540330672480490094807574932441202793332310085235697300010050495179917667264434780589945030111014959601949651235583826294706937533466754839564646823405039963314892986264869461809470575451165494290698556045433825850338525551385854515019918014347930872065998595798589783635012720573432168464661954649877225808552945074523174629888807650101254683435650282509463297585638441899590318679113000321594322183003713360546215551285724340779148689137803501305327425678420525529674046020552017769403486323024176994354107953926758419012102667863796581313932899469957651272628135983359938339247533648068557170621551263321971365289536328426515025958782654514882274961980366075420192324032818668337196369369966610258041011776244154461208119832419656680496647152041336346941830899591729496178101886640181117984316666196870614729742639192205472788144418281121314754088756559835747752458422950001735257929742842282536070159155582132282221807607627033213429118556580936145529141415084880048512090450841520183600979266191395312935361601669772375161580071859986043300052551282410928123560459170268533640122592490618434073717384826555326469679626187948327491362452626329645382064858446380152031444787795714185047105373982543766459810514356808260163374348384298447275596073316712661732220796189283893469807517350758620655988682137132505647602334881807913597812567550673019507192078614088394266140699527605202472624443269279379307844329306232935554027545824001201265469235792812850801648501872997915711456835695394701738466410296787619162811489273661102175613284093269303975525188386977105069543855414186682684315491703288615325231969230313139785943569248738306920433241515473740294464962327337911806338485604622285867183836188848019852716296316997374306702098405559882424623377632791089773900079255229391985301754035793431574661504159268619159208794260806811522532682634322061675069008308419919855308382681028969424554212595762057626077283528798930678295490362659570081840675063599231799727443729087782939639373661066283571651025202981121086748676245307972383850726779587404878750871939951456956752845280862777476058597615589648402247355242381151621635955755103102047099116263836607520433409390064135289609102396863316605400793460111022276902090294301006532011364446556353725243600140303548081889656165663228285389521811143313576372584508176832435348956236426252336248606336508134231979414536393487204216003830196136491942270932446184258428313353618653814132264342219307471980956460273045278823461570796964258998776343617289066811850427132963972606422498593115389116309566309187641128885228332594041479520733429218180909270663183090114139403388406703812220866626634401359938853039097750751751714490020399923450214170475954722273222466897045705689169957609823029135599339848808509062227310781589772987458709417335800369601881141636888930197218297928800232549125426902683374317040773490697996992273935035039445807496216117596079998383346913238133150509211823224753372174906835996556628546865615985022037939217579578227487293871031758812777253526197157458662824562705364133880960315726814124513900373933821277208108558572424165243809473915602079991696016561475103085427052863032316774862298517524287040580366875598633489025378204313437328928643892751455467119208438945053493893866849750396144107551901122559314505018213921728992333646693746363219358935399837345737088302926514665198016000601239065436449799630858806886881221188277877572282090443710439505471862162392883606930503878342402013030630405536970624153313003264741398390168061386400969867303831808459663684344490437631175022103409493305799058803536054795770860048707032962506605440505369986890649665630429937301382449007618296809426319799453612820364237207435980164189901387198208973105591236686766928276720215651119524231599172152786478018705167146333005106682696254650163576690743929108229870532596837319209199871239218260528778741138731736258934489155400651330684502990082462889626340442039534385902969715555448405082140341386539882563685001145874270766064037201724163453994751801438619004679327388753491484232577706432049711974266493835567830734588599994337730299881665953643159605885288567744477293063335389650900238407339293023468930413633106902112452220589048234639673360678626466550539423822841299228051472140698105123834613202222691821595821572106403890011732718150753623777898721177057299320607208314166465926783543625353895407332892838329298902889052563806259618481581320710641940217609456326345566071591088376644040047560132015673166030263714206440181102764551322824399702111192348100537183406727525725125831739952528682769182615070512433651239154156049148345589658327974701632693968108995805181052319921238764738225491884695173612271267404597019645443390670116040292350035446344853461679097232348863069290948623861917934314608445309143519693557436433073552922174803714833775740055808764326204127451849792485146709769241344781511262014602793043943585581267708570434753431414864024228766055375104566893624173408847657159861567556784717331907997577384432664683308302293500420813208654621744394983443326391338031592694596865780674103018320549058089178110669306474273699256688222576131092870602914443402027115208209696249673493393980492429634368424810204016791483496709156503309601787561223392376969806869477687310351649504328896851562935826066756316243718427493321496785267994251273266830542989328467353709938644511258136077973014412270452099921920367863272291547146033810537339365365661484185151518405683049951462860044131910644095251681426873488143440709855291370802117486263254270462429739438907443079219443808354623607692888325235412790324194591269127308579810412788975034089434035687993443952731550660291036471278337411853239628543319795746734714459698275895969092786374739099747963794522819307522546592906214209515901218482075735812295467682325893630874286457215005590159135887566304244379555568541129869986867518350592965710122171928289129218550064054239348252931295864410729501404788093817512074684607743429392529839487343254237757991956469210568753796626462738202264028899949970966585808804260928133660189464827945519291698121895937875146525383568438676598260353212057620542827097192826392341562808992399633420688089095728363658232683456421720902441278294375004060979870690120142011717740179688198989975798806942156317697545076776470416868709321001360307022858522821101617660907017512546458821659759184277112865605481743754592170447858362600243966213773628762201232403207333316579715595523438102559912418114274564451693712375560081204839857897968484644537507651531480304606250681563512010117617557120800677323086566618678450507369580114225333280931306728069717237019614567314865616213530734926834825887833923644788432853638339610295458756399634150199584130999104249738831935757044851766456810350295500117724311229321265664126955643121844963072082296439800047502188008209502150022805674860458670223255965881694405852287845123536253782844424479542415169359277811906325172505021783108022298358743223419357216677354628799395825555225233469249777940568062032952154097760513519276133347744913797234590119852731974441650770359747355051477316860332973340577839553661351464631513095446955944650081847115700905677682333845512817800392127408734553683702478035437139300780622792643516660538122429761960142865694389308948450843289035615757449062101596162213111400412738027809884534334080706949185638986096737797444587392492132723011311083344258310430502101005079928822637846796616053588217105508420737402853246672124649300836624822706410288499611991164967071494056960271590012779825081632209746129571133899394580943420180165419824945266517342134218174405909080222511315911147130408684045750226465781445069060648490366434188507214041218193835298742511231378072428268186669685675076886333458928646656637596669204097551179231873636246873287397450097532197752096314960472035794422036781024276759538377252068596539093233425570712420751567904135559440348403893433838479858476474235502090931518333839149151721417168646903367945188648332119749719817919008708484864418506873197535163516400227316455975475255076321272158341692057126114597034602657620159450857238263525852047542462934816204819181314055709734462076528171935353799989210911167561069150995032262407260329535587733489186535953576765935771440165620157926960768499852951731019637485639937340551600177262208284227367357676130103165495765315986037323183593931280702391450914075041441036906422694609272078925687543780811126050449156982165207196479587468160240992911599825031963429798449914687252508852721443629696809937831219326605255726738038433650517063943102271842276175561241859595344824673813355381523628649008923913963311428362208374322183253979248793849030957185970135804703638810573060137071981866033131334553669741106127138783370788454606634717920283499387954349181716183597912462757665192721321288663108311053939438879250387113259798983992362302463258410702431058039288311470681042763584331332953352124066612020601587537916716302072859115939071413696090008272281659523432980811977634672204252871544757974159147069175274210166497536206502536040560356909487474996180816338480896252039460138710446982548520052110122415754264100113778914769377247295633983948792871188771150615793824733811279776649293395633866084052173613232680783738910959100808619090817419064283627041569639405753111838606596642358235836885035499833936593803998206174323681669623820986193323386203824553674887537972613839161429915686781780633727376706147626074810614538672590723714399904857907623166939498437669748902472098439448365093708072915749662543973221997598936414044608662518364628460251412490324850461468890175901091986167239623788918424158624452890059069895571549998342718574992561955562409025071751761989310467489015158429632919394664450588438542548527219911010984175878498701415637202269820052673557626459140510214814569051077088252151445427877981364737741051160372924729272840284847019324124211464620976007296626672359108268050564869242922337223889658100063658566745123747858386689315856861703674197564834199906160341777619808439332641975641334727333037926761207676069197900807516611986235853125926665671557658250352435946620696901848604904330326635797847344373209298583140830912442504917581050276580909379470380514849951179984038512025992268646483057860950377839803017555400596503906571471196725848538560778781031951408435892874401084059195224340570083133607320510740255980086427369379313169227287180835210742995257700624482345301711935399946630264413459165047572141550643418178585500607710974108588971085256080424624056789788042726005552159006916381395530600613422616624670634585440975736290097827471131014692909914211448799014863033443966780783094210222913539968412855614519054659227326365023350785063501666934173326351384885505748230770824517779768590653127587803094710082148914542682125154062563930435907133930373177317437472685139607138517835652204661545229658443061901488849722509163126123466422302442831039486022594606175741104939046016744802023126611884641477066100775323419265873786057623332547989008001274286021594811080719037168517920326994164285183742339845945897036477703773191488016769853672531451162153027116647108491896365889913526390426611494697254789631985066214668848212690865220425172721910213168504508983891118921285955023074696556079920398511052061043397186464611541645171335964697554569135487615970047154526994788004923002197566876770125162084436484685543609242877213664875011874566552500809474695274750835287321687306532534383138610677729481536945340397555662602282136131141074577646704767096794960884714161543331271266466872961061374520412727825528719005431281468279953203270316033593230623353293526844495768077216325789325021456108351970637720435881000321997915282182305702120364069127258209746988148769737546665855877396698858981983019654915763694491203148884961547118102076694579335008579409780447764647312049714857006078316090112009075047942645472325935765257985502187327679201502646482777089652387755894967595864700640263312630441056566544535167385560452173042162435903458657807011459173446773433104867797775444501409941724851231692301263644466015587886971185263579071838664387483416297076549855233838578309831910160652620593449319801903712669241968451107518909386364834293712281142573387681836893459796123157206350828694736889036952573480447467871453563609172101820525626949855475686339736860783795432379747848000764637884720611525320526068148557451071325731048274172336607256326546498426706187910610484974903854156702672364589082884030133263664268302520677102751821372823305730381111921469759933013392202647916852724112072858271866150594482999390004841877983867515017214952795286060731011446310454109605552423584004882730527305617264830354423840597957290357853339546027179282770812315724389519652987709113544236715816353237651305721256466874822552651629881018305236373045771050720387958183907391356843330362175880355108278325114191818466273962767139471270670847214595687283792595682485897946713615247768986871434573074012933468279515235932555122464499750688886177093970881483296374690690129506947676878847860115735885743631062050335613262011243415306074198087706358921866452440919888986445237734571552598356967783011626430395524447386859076237688505089397838280873170221187824421014658611057888398243141820722746039149006512453197891209952697510900188537622841840469510438923354381762391792872460888765295020830394472972152303220248249137652178365137912173659969989005155300358823400244762416995597887927645089567589322664721019038506355507028766415092042567755060864856711574861749329033324244810737400653130007380790441581028734316950813637139272453312443729553114772853960883745093686985267538001545631109885238119936544165077302758087444771812499994094076943576271708625639784105782058283945290471744535027302030903527184289731360627474886915395152096205911070374658430202305633266055734993667677325458091420171302038650257162510366779003186361946431403388334637529501155882645292222595531102974754833515945560465546347729486220138290713948378010161212490881276369373822048511519770075364005000439023519250029993755794052105875022432945639417705976765167647727075979914898947235526092109747373608911436804564316484618669212637135464439022605907493407352671906352760099676699249718670739493985635380800828939429694524205895234162881750999803292392748205283218699787577066857997670123629291481309286605890768059179284893096915654719370826497783823488713575716466034116565566465073887482421481409824285605104051020514077578959476735373339649031201876921853931214863079374678391567191576052342517442333299209560806526269566964188766577575923553599116371490699690912485645104386988421643319446478254021877110143639238491414218274696198862130121358094272078983939788174413176949024153015120152186050803451967277379227132834213356048692972638731557545045668613876079062129241154851845637433634193152019087603591507133945181052180112724077395947349468947888498280388879509378007508488348363917678328267110691251188878917557870325615144278929631038465847989508638558432264959056438840889819507708820306191865759140003507126206621234171976377886582022858161054730812234111272506383861500103945843919950717486771065832535522938898345960249385493654276552707671985304579701896756471803875735566636844932023802099272209165930965142545919872439160181185097819575386608477439024132272975217807875874096597391147640509513880427183692748468557591940931356620077904304248087761053607707406055363359857092433170864564276943710643858341835323083990403815846417185878285440697909168218211925081777742913655282475641632777696837912603961658431263570665623353096348422632909591850544218104380639250173335308009877030624950836360466578485743388981885823302620554056213038767878840370736559657581197949099695815502454604738901239027707441829924893225737940717589029178599526419845467720777404055004574348684343068751662188266475888164888105730197641938357263299920697975165627619425123484581713855512548152939456065765689579093981490975416778139436370610251928378743175615949838032308143306813390213778223127566647505692290035482841488187069702633307209564840385243889924948458699060477640437119803886821639637585674367053765302053466657379921938395657768183062293862190233711600041777729304729411949497749736704843529387796822834296270765800982536928783924714746903793618073580534175035242660182721522114153383005868872068254048536137503365428431330804346726052471568696125383781905365453658049112469974783113502521430947836135925658875221170468650288349401089521883313423187540454939314593634776169889679916937837782494295838695619396850782550017570427858856421515433350453833500765648523880264712527967795019384445780302952193619795783880699183662763982645054560218490807313937889198118798053315124955115036742493262417088208116494835329946400871002822599463280353697267162817052041763501229153020810902567274948620260160507887686537162129493238430026097348765440293913131051495259205037249264537332252699984134731780177991587942927381045978477835329473646052540098383747554387345061508779994443589075443821461487644256335108898844415750731831985893771173062737503229067966963891187406433037864056191866434001744268374712480163816928272261631999063224669131967039759431757486384628089180627584979126062747614985916699992035202172269887497176823278247819323578080692788762865600736847116873037406287260280200558532844550965647364446895042118334697916967806980884033053037873934587005279922931851038350654326664031322400747059038932897417915005755491505498401789441368915587490595376664863155938009343555126649957177344525100995405374026669806485791790449272927161445822414072865711610285525262928431416395434124887988199859911959090041317887825082630427743381121656426181368959948388098414885292088446184005003920540232649053204845729870458522484741294935372991861930206628861643172227560035544687007738767350217552672588225098427617494813438279673686287573724132231790824598320438079180930232291352014222979796251476894025770289293768334025964813945446155271479898172418471056832305146410734142517931060912127535510768028424890457003814707421507274327567071407697030794014237675166717294317373092356714272683114629030771535502216026945880461999569522290050349780556161981777839869213881681970793390349204641620345661116450790241017830705691580662723633225267139580657259941182559046384321057435624411927042101851810000478245104922135082566563875265085111877531767610950064812972532101389922712660986895395699730882184311281972828939520621656767761426742663494920502925276395005285611819286983932147807417905293887368764266509312779654772122742740532849801563697092378157055941981968695032111720179400482080832795732327884197724693932614826597115651992736107355301221818455397080508315435617432941692053625577864256726732554662243871691660396952852433846869344083282732665724166617981833710106380383740721780530891065946695960653930462102825036244085534238464469916588123198941615145691687503191658762750933820815901387289019026522183096620095148593494000437980235153676219096198666799471208216115615347357338477676893371994003463069991315460176297212048888516563137514528478077115147474760055191042803114715918931956650502896598700043531686490878247402540391254519311771501266457515698079038132561846605530702518878027021015705072782804317522104938534580771341711102425368842136520179531235745539638244915171988394542762241966423012182184916524419662959360720788177321717435010848014794340031984618135770969155709387144227079131797225352418675920637801766045640609468702090208942757803528281624782902154836697150207467840662311192028914822149902727038878557140360964783918583674130040985312459849725930540877617196397397982360791949859220521100203862672411824564726338692753725183574531259999532305696354717957942734494194599431124450385702474261905096101459260121781854158405025968832855036964273148420029121991089939040992077053830038107316064813035824894379531256083565118508553364537146930142814344829414769181704364714085119738100087116359358071601407940581279905023756931517152856834637772108762498858028367111580366334439831739892427632006850471260572385985301387896406694439064101327185072211354027074371116251532245916949494447503810376936245427044421122684140548018661154315720306629227178298115101113710360329628322970288006199161003994145992050748089666445347467562776193498011561733659421165423430392762347511055912760304379356792146973194490475677181081025109231380768190399785826107296311967014205084752821562531964359315688774078742369416351582519925145410335775253406028745318981428239776299162376364516387391013780150739267817827600058728599662665024269425957516421363848505400547374148863855364154478735717232685860373957949940062172916497791718983878872477819962233850564258511835412377076597000048011968008890742184103374480807186703241944510347027509548612153300958794785597814371724392142203599440168414599479588491414994684412477650478289854485703422860189055036787466148212563623973062257681331342102030736461859191270203692361679112956090628211609761834676281082028991563380830349772504541246097636390058681506749742650108391737805144818624567227360970501865597545149836187321067875391684825976701220151073841436154346620606916921694825413279015128259593761396439302215666680363109056615386236279553615526747570215636605536060499500047064655055734367891291660828255309046001050278676744159364145148681863008395501673055898161510000483282539625554909621625461025965121583068092961915515153661645396280561374606276721004317576919335462230754866774092992819087426746326910215889565390839591357235081777541774755717342100079936820644219437526209125893199337893659648866563915100161005396804688286058329128491206751048387809543491413820339066740334587018547857800801482338633587414367411327366260292659149135530326226404168905460435046700766719886425376038412578174374173219346581619104458788717593208019882431745382805094409406286600636681166356872211374682864675141628835224185067191500660058234628526239112980394605024962634343315134663602883864363768601764477448786419262383301636862348794130872716913413630453331951683488907221473818648011122781432337083635376003538857262351738274688318296111253249767274683760506770757850234906796010760622399363540557805580224018494337658510017490869409456763822196514011025891985406690157474770072810954502436531600892821473456192090945100629955323297380106967460421626591767289687376693991760236452563285254156851944384651701043872961835017915656094742984252188758246084715069356172657780953390800952187990983939906078244859817833850246704721013512251878095853286273291526377933572653428058619166107765901998442037528132120123821309957827544657347903317225966501896465495153791012766017816089053454905774982846650045550541985939219722015510925748683638731890261433532353299415201828519053697567447319001101873870581545449460574259319943633177766259938113693400025235946192778143695198674187749073362198109105885322692804509172015820429081434541904839863402138742402019586825761799006302251607850710930464047800028080845077004270335345242630992222800177154867215436663193787060636449198623407415993156987824871192052489871046971703174757878205392293839354338539490987296621742298322642516922508786453479009953573596451062401834764928584130710448631598004606748304654341930998063840203876588811525150252342011821687460873906000118849161361382067857027956936443804673623473115561057042823839835396005910689517788859060822817298965673602200397311248334024074795483957602300398389068382554728472041517552161608146611034597006818335850551056643780923229572346478217503576362305289326004212922038814726080029092421225487478206477238766741148111163035337276882410135306011468008869080835219271447017468138444615581149160057371917879064062676583085315784274377390682005187183311302314067030823672830982986711983712033710702305954770997917391706262311084943518153328902913702903083458433129526923081067204394700999860960130798304496983182882824410888390283787774404566841391781894086215903897259887690378554334157068204019997637679125035962962116087800056224016364246278839757880867002417591621364608742157900302699831912231665428972787147242496750590519066519676305743916936978197446155060200748524569375500704346703858422449431040304208100180186512622211752317440051828198627408953849015074890594648144637871689267115657144679535014544522602615251499837805493979843266610026758735606479923744171634601578649004949279358169940910965302944073474983306204145378000130871391934161649293004488683489249999898796888214158603157991037674285248301803378995892981233278867758253272810975887969838918664878228799533041003617555480762952066153205470632189760742739162873599612047593357632260138430750853862316300787327175140880017571764018145554737488932394218366946976466914906166766197784979465808889699199333709029347138869100122881591192072507669860630758761270489806916435428109645100707387029266570639535701266917992147047741045411227591906690535510212220849387379530943808897371425098288381016478990315470531782584391150524886136715021050738882512796712680799951427291419982902225396420605097705330480557005954562780228176134312598825989012642504780081736405768861017272683381160191467936380175620245382221481137230422264876050894774928895132084874333366687501269763195505862084960927937945254511165163692902733072003435899918795169389540066835661895909887766365148999609237770817205303744178354692059631548875833726060763162701958610237445224103730861386812888172828585816453400694532105629781259230920584798960405458187045470468519021671552221237826878621802186764834861950683792788872771000080106618727091295817658251091134432496346470988623297673548108009366497482283148041155812870192227573587899947412539320251908373638268168432201474121878161793479038088414412722767880727394085439285561045615013012111832763739892660505348459471793650248571979210236610452467819055635155183762008836530436008416252712367812170057425871357360194004375869254145888005806344241127290227034308009793110099135988814854699663496357503662754357960577266607813491378203463974233238828821518479156534325402108806355284567161206207093877828995858879272405174797977752029303888172999121996612755262988249160726409628579663731324576060757492134333171513829412509356262114092393932009774176735738814050644765385368774181985556296595183386524071106820571260409954814112227818734268234391299660282778913611966894071786126372500437296545734891474100480485885252807625673168300670830495854937534997468695640736322695479016554173384117725561320756807154788093698549932988835986272229288475282328321839980563719826717353641277881744441670080287567221981941089109300745042728459718866862732794983703423096203092696531777741475432447862723183007101921738194085745540651813112659094811983297158806589030562483366927412957434227467940399204064666998662031144300473269173132797758990693411494390840680961302289749694700896452928576671317834304009075375610273923043076655608293024942662742598881306804448886578086032215660322430323868560368970503883380239450024506212927882921635994772302648873086017293483707997557349282226074028272153544433609900239342434744979900633138617182474686894087381155235698767440145291312317791930204291746358165528383493210262877610308991458632657173220428771688490142626316094594287810757633558932154017481600820832183296863651135656815081220243441111938981578502865975178218937681611432322703151578881771678187481107517706023838261429850745168674187153399184712296778226699228985461733290268597848281785340722269084281891508201804250370171107580450831351506538526661332935480956181981310621529492649124258949247637514605491831076749836706582716668095854074300571940144241971095154115068222593969126033222327189248213582844417155826653137421741726899187219832203099185058123521358826638273220174995967053275988604193993655770164626794011792282643599152607127174718144658819679769053259089503415682424936074397740255828545747130231550110388454646276421760424024533505356332410867562302484821039151823853940360833770790348857287027377709697557324096778829490225979279565060345888649038389481901041905322022045584041884093026419528130418563438072774906671679860352324375810917497413830596423242818478930824964500844087686565745725377349200914803917234869280940198016621080753645444494084338005194919076559470763711992432723939237155262605197600065047151663169440860051734109425780255067950936458100889077094646093298348457590793099137772029999453145245162146759478441126050045605197934694374220874835225649613362099855434789934534131179909811445940056933419243698391617262900968009340121800075829632421227361113704404255074626743621045403337684045605695230372976826131239158937449353023940299524469813204433751234867897544243237019672762324101645418520478783226543472804297080302968417488719060607668962668164142103499413326779212405124124032745168596554233044393615167803662352684121924841566465271925911216055800315213671332940751443169712081906775088488451296576239285790057852811818964600847296379476538961576510702151908743637846544987707493388016691682257088037548426353037927311441178512206811418704839757453217227172328425135770132651181509087695256611858953324777225152157520055467445554613841731732229879681510210037409233435241102584633947704837019655696242374132839871407391645675755252622214904601060827648317396479942468911422886021032745471734334353169525024084448111544194678044611578238374422233882602400275983455851129780456553873444704713713660197360077078941859551626219625342982364826805995832047246901616811711141378150203686860905385225798548037641822991066069599060378777384809266583544334086707759805380753083563809367480729768770905226822558819441497230902085266131958816527449680155420865652875263422214022347669199626373568816752655862554545851414969068136026815259020307980851821222991850636481409627160193555445674456718304741650005533246652445156977817343632959855910991790066779997350155313966543243729085203531959628037409276060787279381345539757749583635534452120129772239363155702735637802399990903157764668412265004655526697927220833987096276004572624468617240870301076528649830449603571363909532787630109405108175500621853435032641025508262019098225989005420507954217950438878311972119200961800067875711986193670365831106079212268103695866105561799909281338679070317922588600786872447280371418465785621583765558191425894549162871966481016737550835577963055793000206797355649910380689693850003855111066001588405310743724674970692678564623317253996336309983443103566995218983326370041224004781486307613855361216134209656372477423393150978050696405709424101778102534269963310995196658756160174341699124620738118227087930401143940321306564109625542013610330955621789692673641271622615450339208188774598849865788490649547305991354340915599584588289137266688935636976709218582299961949306659753846292462625966512330174227279578453634887378952130458790940195545850946958811177991575818246335897049703004038370261761903320548122445212415511048528083524123892140410380018101568428107403028013559647330297014651563031527046422664872641883692966752420406841488190121294834501608700913917041777056752284583671578224207584991430532761825254000388009516653395237986793114124772688385573753554234129720303906178180724286980084979079929251947393877378623844385964778239202233714213589272853988756131714965223307619973987858383858041020231587725781194524434715803373362782087828032080350603290382992701431510120471381535951131232181588597167381104898374153254833113509190598617776668346846690696940176977528361398758288558509722473385826284958823211939511152694253072383282037370360542804664131993374558729555776309218268107697266481898931664209613782374775641451509774770171922970126378162524335223677493125636700336387074006703603832567651891560839051607796681609403607923608330572080040977030219278386659139122141457734499101561000421028229929826497802616507446979336461648486378083888771513387819543857166817653581004304857399831752336761500142250317514013903859096351434376125308297669408647006379198855156215477059678933119273493209984624694503383906407289102438454339962688361914879400831845756763568846292618559743135094054349419605668986142505288952443356143172342499893132533903419340849196070760502446017644806945262564533036873511510373123758442851389840478634782691324983024118091752347370282002775418682102352075758369603610724078817329939162802428182625205258605428220608632394688899351035787245379216419536515637966114766090544635810448381994219445434844545623053829719188837148978066982407415052731464212600760501677836523303853214624439969444344943751506067112299684231099433553404350818810801958005620696751367342938062158270786766026034936486422841889282833386503895518971648316798806797997469492153271328594850106555274766232536580254266757803192659662295133557093193305628071378764394729982475710714932511489881044693854644854723003202604415341876612280045773492327462869636681869638464363630726117017376003427024295830153896373368442794729140901011640867690754210491369705958653319174527732142809713990481008463894852215221194562394271951934441739777158916623895888718718511085226890198136627177770070024598259878739474543767272072473344427454933429414291370345482704162424418158264988008997675360369641506538683298888438778397264778777690720028767692410577221637544917979725469797008379531113696811053314622751127343418821840287908357792534908887373435966290840114722116254596542360686481495294946120270268249228022163268132521506042917228805590999577517883685290526997628562529947076875611193062926431197795436796085192532119944155021143338221958131641633776195657790547657660060951273860663905196778615844289329109986999159841756851048806059036484447205874129319483996286450004074619650643304902002956157891515140773640971725928115404419171966484773414848688980732243287191899311465550186257304646534387222340902443012642735699727037377989008129665423820732253990067129550313853481127307084716198429640384404328395250269378940864696404006382995290186770810278219067601032529369481262757594430942085966698388556685763297365623813737577722369512471940558857763997196883782656413636741396406043742351739796964915116225224081829241874122507679047448768767321099497916673795266356270926974584523452629745651203495388330197343907441236352003370924395262588776527112834157603295900947574607354411992266490038949923277216091010680286006654222375956971957746730897815509748633379788263414841981929226113950640167600909526098091509007344961500962235162630198005436255210330595730207045513117989025568935078859227767909695203804884884501636957017300616747244351246588150190923783991561515260089382079988827206399464083515757491315120407495434436669917200052593674602336017451823100365216876110614530110230017896104446147523398735162949754609792212122640094406959056739099341333329856573559596204227861339210443807162162330043058039101379669361001928966902978712456890534398354100191159290810208706513023128142102373288264581982444253762351603106203840764796320374828876812888118138588378685699702592008817376804927056539203945604572090451224761654089490894989497620707193299614651251998542143159806060261486101690529296336008227215146093746583821099573218972906402630414854895064771029084298275440643131045244482442470651384505124531587467522940240895504615247623393765127053524957351871253684888242457068916145671523702324884624974244642616762045005669241675207993996343658535441717657801295523417673864294300672204841317865384532683763618093144771060588105877896304616132771378605743644067230353079260150050554387571687462429153140337498812476981979398223821933282411904349229744454679575583013674299718014444938644037092498436369745085910355643459665662278592370465308241586795022203178269120292183094793063964081426913005116538683523638142888165421440412473495402110488246394717327561150430520366546462001819578263510818973531657594158327976887899620333213473157479584702609940653857775140706750440370058975951087022532453409306003928213863750225072089849085390336993354348601109648529575047536138368753644981386841871585571237322717380345713468621018505950406747933569090812614606590100718943536283781941275521588300257241262070245242740589632493727603764584854358762581120639169995944585941541610688933882248785186075677516670606223526438571274692295811519387280897326949570220886785650118330993215749672585183005074796260101016605226934251814075745186476089114726279401773332291604837572129048870919627618091276673345017731720067837100480240813121217699010563442997095251574034139875904687087127506540103030989063315119432787904105869906829716468102479711528913499974809064054862679693889524280381652501776719837829300240015974192795687920171753077940570817963398923479041106182497863977963478656990298561701695564685373762062416698786239244911038945122089492336364870205425403825013190114678073407214917990999032088483775284792025590043084275706768624273705911461375941628090497994995465586085967475539895786844849941066563043511560513207457418503532982855000735091511350316614865025027516931901152236806097925939876700321591803120467799031534805703554160062180364063302776983330760136178550020119530893399304540433706888087587032584875777108265367618493791256312785402031038142379510639374430121033121336598253252388280652806151521996182260010696173544810044356689986456477323987902458194707702140085066614913182303429627832269345324986231479436608879701015798609813325758227864404815110182530875630371994120943242825704246916257286130552579901750042004497369280539353790516675365383787282572915005510798928407448065124876729975973380704054254747491169379712426896199998285400004782682388920906287641208629767665525206619123751541079026451235775797552444364203093859572692577824280881752115575345464658166576377399195162400890782473574740638903304216166965365945568233831587316700661081985500479227225744085060043338424232898962393880742842386250787331195515664203652822456637673208635742064983269233259883919558573584842304456105382549376072559470568115996774969968734260353084331730856211897010092863851707689441245929498913174272505611985425141554122752825008021537826870488959908233476318657241349857669470468338006395655771021017553252268740986783614396754267478364943211639768940292420454506867718590766864254622665385234917853673797261505404952212480652429609559120224563728755614824619574440115272752864718679886291658769411347576354558928815380408101450085014296473141796470866991052424336990027651504201606109451886912558398042511594767753439173003763569752639049823822983211888833853336463881786634853364076631949606669173077706295248438025634629027261181946137427181976881327944568521893805493123540430712329918041621863366528840674870920637713250872743600597986787376580988572241851331369474463623166331507004381476044329699245033621691062154096163955849768380604217168373735884286924898782664643764621300487059876882156570689202454495963820865812132661614163367066334238139199741260292251337636818595117032365956272557057238994406963913560231508145084664494856757092091160281133868679978692958959859357914596774836377266463771041467302715563774836915158823615977715274284328147949302138939298568224614464232937981891593743068930537075533990421742112195882301818198205631748122575311648399133326158170976748462065298372325963324122713945762672025780768816684225850179096321760660320691104769802657375777210697023314328360151141158109834137592201492841873880587411998590747466738332509142240608525207311178863572406854743519732892860806996492222930136339317072940409869111863064671281479159785599125016022783754661272859953141442285875252580794934499568912858512188600697392525978925373095046642435462185571055866162141231632511803529538200395493005186408918966430336586522700006152585681300266195683337519879859042889462736825722816190364218568466955884824110469336856728707900037308356093241836530561594172123653012140518966854766420832124719264548832568653960576672959863802461292677646757556283196979646127585847535430165034947958802818233696477787068718959292128731969493155389852491229667871328425244290438787323926337825521853478661813990741447907826901891581232090719412688943557733085209213732169394321367163923245125393418241820528540083702957662156352828671020112417762311892261420204330398417802228105249730373742260071556626934819137312655308308011560725579533815628403827338801121435467546728713548953333951122759548728367156992509436458735834525036596028377204570969248263826447496955864693635459593305906924569684011423873414702003374555675131948924216284614462290827610456470790193499063909600879762419196867133219752126516146087763442613187264252431493382538506588980049157232263505835612550626255202911609177042829918151654571833475050543613036835398459476422875727490802821832378191877043350497418779801326063599603285741099869495015993776876808704935156166727368212833480920213139360177608250491047780320199534338493323490172549594680972066891687893025234227026685355662337922005676433144771653687485680567604829238194007571239726607735974837729446567164416190450503009016691384343485158362588365880219256176079536169805993104568378211392111452893954087924059739826661806140004542737364144000009561941173869257429055579195297823295805719146081221168027549198263941729889116673852275642453745618626843671730279603357927300598499564935918821755871924967175453485893849235160879480154830174263639903090286536822449951109618172845544927713309695634804604323552495779932364786701196396927727297193370009742448753004699076150231035038365596995487853649277146249456933895912125237101835000368231459778546380053868230964684695735628674151562694319075854784198855004652319523984130348327100407166116233035090369980807382489138208637427835201323294900323492382907529292531595042924181041634048777481077734436987637248399811109722968083048843256357960332000538416220263801315082667132461239592047076255105387217309738804770064360185856918094684483344314690917835441462300346072522681986811590350501182630608151535796058257166194570379652468993603011887718571826979668507669918743428691980837813830885092241041185382165830854568092249865099416022645313705953369756518782749708889629361462595440310051661009449466256490362045331982646927663700576723749888767086798485770506831126975099949946162276672421612373006304201315657636299922903355870928217204062064739656016591297138413953854515544425414086429574821024411988810060803336775943264687908221195524070251408223826160519818923624509510353135288413493941347085619330037562095797964775839741072500071107953410522409415209554044538531733697083457494534723004111619296239126321699087709777242392790350351088376312679077431627366321499036743833896112431739981738827971707163070731435208150868937815126393715435524740170064707508339511211576054293573040458570702089939478582651009366128481993551522541870796087854003418426822146937632706325681560709733463280371233066819321020187218501874777130837125021043341294321883418086732278950742211377284008872287823570707372952212330303034336669918106191237416819297596276111066694880549293061121402891976868106103782162640434450693965106761620828768039721521726736843814159995492287250664461186130103413687855941880786650739737310150242061003295905310782809547960837925527115185313135918710420715165202307524670176342050584392234213499549113287625284999772159880308121766710847917543224669904697911940606507338117193259336609631487062057937775631601840271375735998601021686944104954584562199320919416161860998238674779029573232446765051103767457399505522825623761372360960874262213792994219797742603266517998583807076774011208423929300553603887592368445847945025696657531168040907451900399090511265703840205661553425534644879725749093514848643121073334386145995687228474868569582082617951923499689892847242531056862937711829536177002636369081144597040666679479734768698364645756096456326673144285773294737696264666583674847359835047457660896836272707966023572093124546982638509190675935407815011915654688754282753531239631266809436334540190654916047809492198615797828180970303327116582745232214963476676013250517320984414050147314001624491537369302521169379969897605973437055910339677237021840353068710152808921566826501723657020970563933006961776564836002068951863772440275190273467065795226496796738179391731005262734556004262369811776234364754849805960122262641127442741386322690612417931274870204718792532509382537519153464536548148068606111020683739382526215370175690756161599568210836439975531702305583643431310880528109047657322103682037629699533505268429063287363884251271367707024582544028863682844038669318665684646552295163116854828217206357666054399758431159116165601017071438275410183560019475959465198632102604847435427251795055904475572503643915926626529781517208960689934970584457784488763272613665358196495656092805209908715214745803325910092943706290551060985621696088917413780779114551918755655684029878248818433247879947265314630403910336786016729194417564039689265914599734006822869046112766754032686662727604359707469267518032650798995792811415346616904405619021545539476210398154147707380688495174355313078454882969679376545291534988069419893612942829586764002916191259238923848690094945707219732651215295868266870757072548399724918237041793084551644800980423735264601545542419220371905433557560247631908435885330360577642572408866285031309657674291185299818614713891725756215966704864028643545908712555046335373775401840966676340935884874603386776508535318355222809055962037505144060789396164317709477413641956340400007678352645798746729423100052356079991475203499431580444631215339440877173096373249257393840509532155145988797202894226387523296047914670773963901593985909766836825881045830864342791855594363982519776562626526619627461299886992072339235701880216424361852152004428812300215833904788262484844622211865701415699379043468940854612164615288151324956571336194378008406341188173642803453370760783809172627366223330475881172449204092297293595554820785795153519632719560624861056518177768605972657926193808441246453011617875456655317069235120070022374231309268074398599141608705731786344328413289237963601924056531318383535775109912500297935349857601629941015683376604136990081639219539688472446750883111487888826440896891864051452169067687790490473828702213285872353918185336815221451087287676495635999004128681886143008490694994041697383458421485390284290877693093807024076810119569429787296980937543669325040255850796815470359971548125234793855148965091402705801431918917159583263626573320656753034355250416923836960635920251861278747618623640151428827617355952702999317144214472004702927773094347034191121640951702981414211270673757598834842948794223933852309565159891784756432537745326244205818490301101943463975845163232877505181583972112738120105211409858445634267126832164409760326904280972477622711142353950328067356984031103016097593872472060313344981392915326000419035301985535289668135487710559910859252952978285824084950538764380170002121762458491656405886216877301739928083352833148775004789898564170932160040093975163407690151595308971508752613258813840262035986053149251495329528993196075625261470885408784896496575668738655644966785261314538175518061172169699695403276982305263278873084960300074285326044064021169373724765727690997537757116320295817508915307039394758566222538433154826770183225390736192643799222486801102531029216143983605167742971884284667200151844277011954862554431972535246502560809179988413438407738951667266424841680173466387621350255713546900880303237889624725605507850181657464885803342483886157739667207746438854519217891918208312042873463749338799432283887038524073101245661609846909692829685844229296227782729764971281950891881091161773583677946691722325023572376426947045589681860326349416313911283368220072686447386695068018691952622644655912467908644003003329022977127696772692057245596716443272392605383152768741435413108672448323623090810164578265053609884247414334246437348517652012054285956609359307692543911098509530798516852044424389964113409602701525059216265686152643220505660529026858472613845940657876239685502154402335865347787428603207387669320937436180115538110270810019831861615272383161625286718980681394159508883194581994354536409175922651970890160091337858828568180470749848798571938696167903870060181571773635638168193846124396871409338982098232788651882462799241500478800394291223511380199499898297696183559555212646299377833325537091234922542704973339321239382218450898733259446331431401564768359477460314764149356509247049646616573751510068717276109596048610708162842471057959373521848586413053053270615855569965417424129201024643552975339632912751803506932285465299926278799396377242181957610915560838798995027455349702958885017818703078068609078639037140665490969121414052771191413826086091909711021757043665303496064155835444604387896121909733727569290070384908668078254640530863123296869793252344923126939457225742401556924950708992547179013674432224807818287733847177763959697782589025386839882997926684384030240378471032903873546588872856958656801606054847006865241086404380504127840314427246633710154142673262051159571483465450888473538995324546084860160927302949487057311848361397344678973998743170641455144156543347282423279522660325817888355327944923649242760007959319118713999348702531663331984319810109349965539955493877824489091023153626120404702902039545799611923438703570722314226408609399643365266126236806672008689881670859545351824208288368683307380916124632609892161850009405582287110531382226039149972559608156639331925063849686666691714775847665548459112824583436509405416595649660673209309781075559849328966225472489818712691629722806504472907314009333074473601613584694688007532054532913637281999536775070889194405417770793285516619423644858257911338545066126150664547507962434760369988441010058205554851223855054385230054446558953843154104033924049592848122676601671339393374787912913010608104464963294443948252421570315637928622831674596614188187773020033583546773466018899106302983978774046813850977229721936871020394316673905820449794018973586703826164449000050005227498665930975440772428686188207185938993965033329617906974899729408872832417957985258214280144338338471653879061689453872766691917198575268727624527191069037048991240891954615985823745379211694802452322241376782735094335021136371988835026442373784280598247522711108840861844124009588299072247326539282150518025755782961844346747168990354578235759929472020670791156735391395688178093482252159906334819838868535066350453653135560801797138793582340594085235050088257318165416634715441579835235685645707862160170783985776517746613323944251975312493364521177035055179120625902957845638455521476116468629739602232532747026256298936042848476756746444406262086686586093217086399119189700370206019189737614335028986559525269129809445665669786024823843894965540388927961039243357331570952172048853719407171836524818896472396790341715203626299879661812804358246886702689876192452088113424819062125128991214890782367573149198227417438936116224730411511565671948010915280700610365051524796880784681794441735563487544180955268930721702983966979605273272354343507043737143339644443338116735810142891493961059328074382719792305032303527947570162299186449564110696560159182663188774225940010384885686762464501208259070641412877427589507447385432880705743746492794714594909598170884296655347935154829495862504065041868528943534212779978708833299653823644430632103940317688676390520330245384302326456804770703745675587489405521084029240337480615782755806381565953026361927290247942839979710799160052693758682714683204110651491348400663072268522455020203638104893288663362182508615900947561773528081987512603258515604556481719786362667465883485078449325070410972429162105278409287301878766414209343595342106418180123019079772414348081625683604767199034190300496655408981962661278027293428626532209757818536949290483825866424489894290527462862307893902897783048051340003467318065173204192043768768452003432511488200586492472645570603774441389273016443052012236797648691065874755283536567355685808909951957826635094139347053204281774951119930371626500240693692474417865274074189376606297678055068169115362990055232360378519467597398503036505684756932535141650608744033877457771323421869062627938479462615195536332366264938081241456083861437201540584995490547244307878407405655790767655698729417201662458134257940921555556551893281184209165213858893759688499874845836839654093623305492334170201082877205737598622452425292506968186548598440974011125615343217182893365106270412628891940154842340930502547588745914043847436444445332362725217984976773811060525338047673376690399378156781885371628288384838149267941877021910449807358145521007361062134770328973161919270951003046026887351913930502223352117227183783296185588879421117820446015423302658494996351097009001937733912232994097832570627351136003397333056239591268943790449568890316861487065844134957745068482691207405788552150187321205254776625051141661857498190731788084019544244776605914431158726363846301161383598638836973768468800644072473606265032537397959892784514147299069111181157651883349684520488066968805893527864254002063886771299295066689922411131635665539190480317277759570486177612101569519247420405937211289048060189971964269959136452432546609118844752280042520439453021320515246663642029170524896907844926530260369276046422102686262633466863961640523959262038511528250369694099832098763106897651918913577159255744473612108311024627447834851242331777581554390517626447742822764311020181582288479713983739255224385137292130962302936434966405319007331094430475080135209473914559171200731104348720964308858765925583981535394089875047381997962207933242610050863182388479727892584925170515497471695070077910164954492036850651941970501115825222243560056127879287979649583988057874857033417334756134326111978105688229108411555789171152854725618646425681157816974607933148229676349772229525819096788868383360434754694671521608645481598668833738414389200535735525703518050589362094372024403929195573038387083425031249885293712314402602804609338151091435145504208720857941609143846438726753758783837095372892591200426644050285913630399484226459185484676269389501840492130658381050444427676207421102532899373751211108783780223075204091176366254061438618202810866044098628932200036519009022838360717491263707419887325772483307187109774261022306779682192421429671707881842729766807214597169081867893715660688792829805796646500337410270522029211262535373109166322487421255176297305215890266382584289855016934394687576315130696603377711413768018584484526840168321434250413258112829982999621767800865707147547190188892237946026932482595382325293470535191647699451803201188033017847316433821487223773873199327930185417228615629950636395033839637659539274106588788712814935605682364326042483617057137482807974577667440029557448832179907823866596942485402252888196015365565088052638693326531750027119921533813028695581680837555521028418520587542696692977517487555345519047208871911217037116571934606153937046857750245258267217330690294240670957062056834806280815730799687198236245946909530425063684216809277332638115643367023762795321664690972322711835153648888263239458698956469285073856675192520195514127469208319573015977412166264209933090863878247547082815401494769279884890446182254714576490825481542431657812523091143131458064216601531988375861832703139099012108658580212798565738529972118291292943252182716595375378809774976672567265774226328513109096044740531140293088146645084722211024215484479849267991827579093179115885096223518081380363910361765850860939738712052837003531339888130650282693392209756219706681969982198618637069993955239255986696907875587092754177252851360841040479127355473812912240442473642054173921357185439546310529210550903265341532600655338088286060022613115395301928358435047332132560618400531697715536827076637801456341797967899571850725529903596494495193905176772505017541530348139247885363219880139720347970391362412924985735960738357757185226857075267357449467849878572652602305198263178373680526291272546356841123334755752128592697586444930008519747821962771162230443944996157767102092755695930074993840590545007736107231845506396450899950302028762598639394098831552181392840495233546861519635930023106284293423864550325743730351407335050610887790499696467310122225397946622648479914138193320909826662834522873527314879577613673821567817598348098013249320384160146081713012659054517197849478851269286431477377137899568124066223224430410481587851855209687005675665229675415983237080764139739294952602190956974644435320682068280000414257204403717700440895343878126714766704060579522292437889260966506745128222372374277770913739333024987775272759431390210048379371404800941310011281071617509990075214461209705002413486327103826085140085234781436411743576940992916765471179023932832755798353668426187373532556077488898720567002199852987104909133454307058056365254079384038323358430487282408129292316930798033148621130304108233402089293696750890075336681190884954569423178023952588088526655319243544457006949191658263862891005413124121734240818350030010036151219798978366390107506998010848503519030478422508410630233014951341834507793066474809501343305810587872460304367060957883267902049753558612248194361159238042628744819806450404240544655914541822474516862150917810001966235254740604328339441677289110383999055634663624380292026611117724021634449891479691409424355259716746253753918377203400623327849009593449597732745525170862894450470582201704742891473413545280047477713548035064272719645972666863596230195075245295603018671593246498452958722180553087676020292509768806026755605190026319763317874869085630648653301114401006450380203504968705093613123492629327902365617184914919119241109612204733936850070339999450943023111235706851683292240202101271004804370189303462317282498163939738820970029935229304485953486108057914085583412872272987015269151175575160289675121319523342590047443242428771917004885511554585095375060556470331432123421120690944972118785370753693145943258386846683090849601928544310441367137166555485146647072898696617495693022816346087316366935487750445384175511269996732574823591150508518951691896953843295989028072661197249525472213250831582263757569912213279343100072091097898988689847962460941352116533693030149133783345331932542119192917963086898607559670274346357548675184900421151815799646690773625858872083461781956560736869327065209895818347138974755749383262096694947840242521624469379661975923986713520760190816320164436219944907005261355910046706831324935505256437092347123290720101957049745103469304373555993036486880171843657750103507161567630445161606642993127327490431640244967154476321146830489130806429657999596041431759023715834022023523670702690747274766948047173985749741727693237867060731275769896908054153118002385754602595290028340021127949600511585860866605253020261329474210904832126442611250744953570217947801946782494807501825179236798209668281395307798414014551847179960510612781451262368478208789024771791044727625901910785326910244830066981610626140676894307136720896891896962650030800840063241517353369255036424352387120858457809369502630486557866043556979244579894664484521786403062574726969679929655488496171862849738893301211713314030421481443687639898163017185829348905493881752560147892119633698141735698812340371496065929370508645780562834799831521905905639775851583075036578106703197003804461179249432732293972390311986775621260837839512479408144204960859803663942315016833732511009581260159725697387705163972914255107000521070640148087801369920767063601478997671770938297755088330538756625135124691800796685455106860479671313440093820310456123667501150959301373819244214632109400095781571368777887788674896624379239633798903916954741448257502069409012733693666648444238158532118564214519521074136509052608317124767036697320768264180610358106721068371300215941275965194084771708729261333916939027565046548761210590891750322845356149731909384047339488317623829338414105142630609928779040535508832539879547330223636504009675030129932274762343676250201291688133343610948798979161897182114182143640350649586439349662928731263249914029581710191187042462293404755544570384305795157466192735682885282124666374433312542935894126148426411809642925401043717094337639729909530485803867687792887290212064263920093982358038188032282760403588819263410497725736128049170468889697711004759978522360466553634774713548762591006884153998061819776979631094366178084492282811769440177092162085760276410153368416242710826410111127306874370251824862397664487952433427854026361321815019181501312372278112502031602850194119342628704204156646067298499543227979865192448275953386009251775872283813078775091819759001025322438404559327050336446267830030386936326145575761847762350435387759323497407529548997007799491163568654310038296984638280088433276318943926227519022221531788456510135482119487722456297461310458476721575731871104509124718660614430501945590788850228027641601265231314283514025151449353920889537902650614397942445927351879789845571978989834820625687497801739379349246693970920566111627922929764218264872720770235623046403821423056394281005313065867546413117243376229919633759496031553214456918732977209721191683263689098533260705327367251652264491676641664468669615743371465862868304128565288382615872569357475781521233509549143000054628990180052111176860372687943159833166844449030241861561850919728647636252705260913259653087187933975514862980499845679249508226272313367616414867529183249492333608954773666846970245034563211066746533057614871226577763883069240984226376826098194908009844197143575723879286635829162659615102249823268205838182970267707997875519383546155318871419497586614065575390579058479517170118530554168430172236529490976423272686143179661924753421223330291499323115445773939862197633449985512268872354178458038931463064336280146075782057619403766930009019227066218233001605453137312954962200568042765574373550930943621877750391980367902237558339313845093652602968803384940583903596623569778977367255646941531289241257168174893360627975589718009359799864064784861355581780043829399001518554799779304434226622541897883370853634546652053624636512839697932033573232517585936545908587739685129742335250028689644587171208323889043334006468460718691351914205637732693704354018918147152935587002393109355299791122885159648952012531292067391312116735938869012284926549164217209400159298351497198175213718600118745261142220720905496777113294193247874316462104304231554648582843879482192518680788367038964442838720791782767039688271345813580593236180207332137213137869839176083328856785503615449361849895270822838425703985430265385019510487353704514549489900533391301928106023192823721544064910767614619235092914567271562450742417683457228178635372079896558570957276055204338020798610945792220380606088653177029228231676171310868091714940391871907029970197825953249205898826531748750775622964187396985723034148783008641644903295928591438028944231695830237071638325079761619173473412645898995361511111515485407637757872261429015010937156125264615856672978819155753393214801387529068891701010799119895416660051965883369750405626599887501312046833513369986269683051766717337160462828172624197966143338340661041383283268623325652679030965801031064529266590716686582174326962646331446899003460585690498696251206194884620155810805725661321403313674314775107399427634780617578166402488372510921756925735027422205978909662516508571062619926448562374400794633528630512478128852205266402328428952736884945644724230215500920889530061205032075205947142341543286925155254023067324366109677457505960429924532651065421872532310683646220292226590727808499818789192441623339909440966848713620498655884115591863835970071267547737322333288102018568001323730130406094643943696586383542197426922154428593174048866585150746975679485775302210804861870542986779848161189515364574545971209137050368384932035139753361476694943329215253113319837524938896974284574394885409127570906869271924725895286053708417824550125881514148313637130115596870797438786768105134248862798643125828006405089216318136612060995562057617374124233456402670434447378972378064539635920318305520478009223954763820515691755578884616967317021234901779885004406957206220199417233725277941028357363136087915510673494222305836940416885158094807436563293146517064476552209173138056042746048679748496742194962644938626109843613174270723551770244952521716036453295720778626028202018668398782433722467434392232271316039975154577969213554856236908015735414834108408977000682032286324101954025653603946414032966715079962624464244450088966075283525825705957219597060606664955625912141041429084600011716399837488214867928513215966636729057762407372509577695005361971250936547761578247519061729444465421459809721526134316873485906826842213025246800322081729205564756514260513633916920448205097707601384716817026925832728434951869817545607580121338760422456880254623658065932488371477968500558697776503781187091475104797575563352693093244902219500632344010219895969268111889121593570990725162819138279208812420691236747019722873511683727216457756655986410119303440755833549131168405549620339507457345874873603792450739051180066215278890219397749345595651281369468190925115676814366459083882193856710839435261207260885785137321891699454809236558180340864544622965390629710370506481692831038096069023091049182512320847223293967203334190147785557560467565193458757825567925480000330608235442421269589207788936013542722114773447006480346772792573787296700838746151493620943224254230320682730884860151997199160145565599160017826402439473741429672909806258041138171521756980576227618032287338508579848838892998096833607301816221168296713858485738926308627551367473180145971810458934930660806549921306243458481738806298871447801261668889723333922883781943487780337169441227777275513975999920258655899692245778882506136997602554726697655986204898188857964637286235993393340944286679589167095411516876597745359804554585034604290598432949919389971637285303613518326430364155557017369709621088176480970614213382571319502870700227545730238350809556955350573134997294198342074170953971909000194340818613439155278080387493635569703852337164494096632215281001690099116229085579122623506838913469593682477019912396110766807993109230964788407046418667718364462105280178545288466959450377118625631847372808666062435026969714913062734661238391644120084605107759322610261799391935970847450815940058998966814458950064725620376708777582560923053125301143256017751508057563886960169689018240570877917418016720719107660298103683809893821447769291694171579262251287329644028307367983290888045786232180748348135169679459478515170410712840128555105207968453038353039708077198335642327559018436018426305960122355629693851337057532510208447086068654605611208346102958393700981870236524097372774470538515038128868271659749425278185525139070016368135581743341755235969203682131946070080788323526776820661680679584532906899156868337219893732498655870658498311484571893818282239150045664752625727899007631434259813414936976784842637229423896078951574548584073273915959835150760442329437407695349644359851285440090183603027728543766637537560545749382226408519949158662654573611445055584770000819927092987291975297466081777403942295726305388618797485649071882971150679907946017123846233022690521342350623109240188958439597937947828006749169868227023636664883992804246994658285369607690006226708664390086398521081514783003423965257158104925089654510926947165548382287528898961592222434671180407726717650874306362894101999097376128365154113562889243693664887702913062128023078844668599049800734967386686437117588945955015298187578460335062710394957552999529671818972866247641076755096422858943574180093130506105457097419270452045858924305995191741747585536739396019426823675092054959998476334207975473736095875891198405909059988897794928710315393023902496933727877983109735820735951523007385541149668483577133095246052739964657549971032801895042236489859065043673092978847853799232981216354348973992600001977749495049138679767036387365976773318255660067222528437754755203639251563772115542463421910059056680326714077792236003003391206928578999712357796415778638562489855489439467319686225004314612080406024168544048297104970176453773577550931592184253099673325525528193084982881335608225314046704642029610078683524419333810493404607019705483038748477905726417611920013042629568916115737904130931819277593632392349899872697869917105379225498200539678130653798834600738639323913729676201068407941777131729830540059844540259173312047295770173636616093888319310990107069273337191196973480827395543442540363915637144291234612011227627542771632009490258708329948945483193956709235617630840711944715613580433399743400478606494080364695161642863593358048449129853935468279349447372537601671529712815804767276299980259255736843529760118776453712138009437666913132532228367005712408769927090910390660748517386520357181214922540690906806950467261579222818366669649515289767528820399823141841262519441232475328224197667442515842304880221167696456606471353370910963991556334717302682106104832581988652450475561407880391196415938725607026491491277102135153359748514567220295844967621057850641067191253767265782272072795645050385857337270104085986297770817661474401854929726095217444922282759575187370167640150579447838346359996008505288741550697677376151660657197949673636796168157957750385804743515725476570835286558772212969331872540456434724433399772145106694899377065237458044709067657730063672088678465625246068194213036003415837784202539447163222302171052328170726435203281418804174362221721824875567891708133728634319572559764441701223667718454261725841473421116153267411164371682835829717081751629367166335729930941121273347282917283142116136435395459445124665516996847198199463803377458378334622958204351592782619387321005489224418451642760225206134676197605125520940277075512966532020857653472284368062101211895128932202946204438182544267618986072820662034229304169652494574212993179240890380082915877600785964854506856726980341964285455817190455036106200525439285818162517159373477853431699110233998410482694235116394695625235329364180978179429223221725316592847199180959501425193955377462943847560087431779799195458449853611291415652614274649668724135865744405262050118212850191355294331670918668045711178321378499862680515039797533723193961884445270071371684003084094887721723440313584067700035524065684913794755375709748198630419913034059163553081125797659572391728459566072179896823767549862575394851275367276103244068249260723183859798280376739587835348644677938040636844686261715519384200167498154340994017011006451890622610133306042913561230578199357674775313059189793114971976980241801541952889927417495885763049779202587391730698210240678138539409772090184647643916678193244081195154572223099805966430218758892691892498791137735244459813480896948205848458264162443310908185220095417238720440976373775966790871353552420665458885680307664936097816859735623928923380441359229680801577687788384656569530800073590430142354949159117231207756781367870896898535640578717552244791642762259152539454430256333084566879892452715236850208652531808454088731623746599160401485196030654956164142623220915081562601226873541457984231809715521532900911117853265693114626720992054887093816475555650713865651836292637004133727593847384034991382688798496135941040993191277408504126321105908200655343116950852910539463914431466107648145739801772372383877269543209871483582696883314976616440283104335859746326129954254160830058306724673059174336320924852769348978356680528402183594189787887546285423113765997087154524369544600725443778217729973344566036668840676016862265654072420442026104602945679615817288805826091741782865729700339147462449883012328233159354187417147455539036829119221136005585916129589786918653995964736610298388160092551002890508479258371972685864934477124767450303835131690950481615264973962577550233953959376684035804357125651074587131820420903849284271230120500538472698758723827948627836172784939927893460431632352595719911253971234881068152174045645131321301376408332066361115630836714578720058334379975828814774219618770943136502694318249018180759286204799198091954184532392390294680714167349230149025868044961664886463453202897942960641395219796210973020590781805778751577580073477806287569648832898693109690804096012685659070415872378222734205168121023710730834335078204655931202235104037914940343223474359666514177103879438077451152269555718377121124682703788349171278553153416740829752261433832009546714928759203343909859871404570545100818329486237294130852649599711446307779397317061861590258312306206310732874566745047970801454592985106866785669720828885804106051431018897139260969392486828244372571379135391688452874218793047351486903451578660827616638814202343995051167004131255300825333180968635195485640995524782893679334949755336264822250269858764530979750338493803646821005020747966972579054048397322974295845398637424180077476089386928508334628218411181260175996940799946849695185555352420226490667568453176278620208409775964577374475164000139510573210659863334052940599643967324232178653542015723382368099804002556272455917033354880413908773608573367342233529319203126591720873768417582275413342424993509555066676017848118050192637799359682335527827536961308377816444003934721809078639871028505196533427240587370228073098734583863056616969872044978255249817407931087004371693285991822686093418226732910198104922422226341352336606688697682831355345400333580300233422472332313984649658399479690713766943003416814896354160102964840411615454283518182795605350936855384795000833833951610196090250725024859424720601666480653268679383877512663368963085877376277260403633520732547403078400304479126374258555824147406819406717466695542534215257259264513345716920811491678379564346369127647750476627747224672204779818911069804227682268939880968948598550654109833002931110696212627399914576766146740426361751136756745854859514025768999414311387015095858240195373437453064399460492121633362373738955119592105028276577517719771136414879063608682161620352388518868868736780175787117148687174200489493765803455779738051124291640551159542934616280323841365434634958427173863248100786450358673561764751168572223300671891108989570476295230709835527180084477585917301902112245423953067906452188447750994651560579732785503001759734176525304738969799646949315796948556624994906993870357727378806599200296943312751048319119861958362486916416373460836128993075744291198663480893463151485764548962041130455241543832205556381204359797171007465635228793468743046172320731671450417572095323199905920213837762479330993135250560130602298006942977733447220758991852011692278032346241769338154683560329405633459895054577802921261498351869701441985277524289379664520577316005704869737199086599006827426240936959202986935342571088252258278754783884174876789175657748773596001296877174654196269168749476398297322213403506406373558374771367439202302645782629979643897781310262588993797377646262015307578658766574493787295321054578818462841655135089528998024974249424365058154718683581183399862314314911750982549545914807750408213787379389013786321549653002562250951389503420619255403832656082586032092192964575524432693061716836192182676178608549031916383250178081471228101116939689263541733108829567572451152214312206721579308994167343699225512224546797691983755832548989170243466521594791678995489223680404915831444373487618590943932797747931156384343352816512471411638995227125889350460891261334251064377693045676887376309861984693118191297236816878270895128029201383490687355790333427530196297511882122851469676832278126284090582502573593052167144771361857863483153319983561468286703880458356022863002461118387541846713163510580904730961059522708177135430332989177012914647609819698268792325877219393049020100804546977014962008949925987784709103268340670149889660722766204232436120746563527734386800616353891420929292038956716919604640924902256511513132866754932621300902747183793555472001982370930018710573589691788154110690232095281191074207582483127929074880101430371332103356705843180070191354521461075231458885331784223124803362412839038100483481840016952213579490688069186986038287466796186789869421484531354537975003846913366142399544132886614426797459600412300327169641447577298401261692816846280715276351522448543526677506144953731102093027493482841858532888972049883472804756144379155773108242865372145127744469207104581959424786134767009904955032074082055019390778227861216952873542394329912947042164714690349574482543411441147965863511124878630137069922430380759813171385998675183565075403577347640697940069389446964604886269827482806013693678394071920159800829100662916005152431929752899503773479572064804723816698823524470554681556346613293957779398036277941450502508315953187545149226973749924776004838916746835003571237716357536189448421812258605436224756293996917237575898949052818011621120275016229454802879614756048794263676467847220132184884611792243411323391070855461970864853527559492351147025437339217126929678484868459338340737708585475979855728726273796472346043277600599397027867499846026191788209830651442688705417322035839788876283739929304362791234219022670926523555595543873684283811060603556467889917425478835799112597862030498866816914410570913018299716641674168018848363374785123880155629850967944056257220068814397165798920039326743221881154403164066898214854011164241324736160993474914282604053514050798226022946450451194349396005886701225717025459011132337865910282183948189507564290049730607989519978823847423439329574494423830540071249590753681774171945909252014412003255250128678211065119393837601415752480741604993826772061206028034053149831140695842198624031139966060249439824058593708801111800912258585966864648484695578548382369639564632211881024771723663190963337308892306112070514620944423800438888871170105039399077189778026151639525151281908424557417532385557886520857971389029160964904989257278112214661008332109895789408547593801749398627892008343027940514132817413078245359912670135715335723439142521306992573050120530706928324022954416041246176732952785198659294744870938682214401434056950046616912427005834487904573718568357719077769543540934215714440058306222846449124717215843344941684993879626292760665301899295048643977418405076560946259148539324585639579042747120588041555150610947572746886497329925770927140805409737262646244845938769341714532376934687648151499377137035440549350808352005041333604493795487924271137635122082200516866645641713900313380182797243271859243451883202431297257997925734362091421302858983160621688055136997640884949693067187931321674714963262461770585591767256057964670792718187869595721967731470653364318614302099273148866313588808025124971522967984117436580303315730564391450708079730563321902020529495377731509064474875100537029421914772382810754073302041627557281095245073051503674072471161506409621796736007005032538228577436189714355127924600258925803507806609870002204542379834638414605012173372619828336437142280032036037119679015018772257614807427891537370769335756912321239130658205958866122587735644777283756521654191880740932665673959702074923418224891422890248060656938565617778145683166947305951881343610974561908094903456940110385995238208965957130199386848820811319450321336544452077867957303842896256213438329639397993120770878066949889092447429510766780889838689646924122460656402907114765500763170695450598522748635789415968398818704229042458396324902773118046639716904334950954172744831398297356081236925680621855236637469163190960365180685770568094064419609977916953472227556227911209444411176897618829027726631496706134219776436891400509492092329158259223074797393203957509176841074682786198938768968636736215406120981578417185960920525201109910458066081365042301164481271121293080140789916712804721977037615987725654803446482236622563958354955300919358259835310127015144038247860722331955528171814116998537741337566808033979835214925930149204214095889566555362919824248211560392653954314121265184605694677209296213178066825560753397418315965180919445581847640923034584478115071358937449574847366405232134858357260816907972615355815820857838219522252709738128104651994283370289345546152702148345620481373301187151024825479591148035954774072185160929800828621241616312552030329686836916502525800371267718756159676071517589700566995081866069614853722691453166492073173196574413294980622376570216389081995143587832938684446696247279217520289497394049575673619847294169371576341988548581637394468897769025011948904999975359383074649408369500918021232978848830373651641953127270997598184178277890588187542349225955182423438235300642112500321223291259215693218088110449992603900283970644140068397959215054518887857414822757945092992556744825406421174046273107973719803060024168911744644858519174958906279274120741115508830779643024501685549492776247282320719860962683052171880620589473118108205770854965655595800079166146372658481987811951424230497926993725260781706511697415491639559865458604487585136627479319669313792953698537147452168264588938762821835051073510874938778526583807891507135353015323300676420992357613630559087592529323599454023992215660684490599260587322946430363271850191049846918113293635312506260009345862904387961845674920753021253096700533520456983322841018570474028340279386945457705218781112095856325948147189929450203210570045798886201090464859958240815119127393474788886416839763565512561736326434802582531755406466690879679749135671152457906346202106813050018824419331368755731186483906750737762121185786461005898682590992533210242195017134827215414747018447469713336016734177464681567158534864659019501357423749730953773367805230115423012559995234000753863904735499249324468979234420082090461775983516183917361040916883998565300203291953297632986856778972184118087976636294136131944673523723417663736466189455803065231531604705043117656281071040824243288469868449643682612214214565018993488538514382867724393562516118715629945383866709820238091250345077235694442364772219154951809772835645458276680203394814647212827256203343650931385639616250526575520090936730837916843214380264500115237095078004601255065199828003611308549548048623659587203498552744888731347443291129409881617111642846137748459389063859032545018523136925137774216084890338210688692816490440079647335283621342004865874770324706846810169483742261749210384726641377846535641888018131795717860838408489487539803848233533646896131826371786282119615352614687484308841168089071168649505959500242572013356689888357974977502219558114304797622783684321524245419619238702552623151957779479895479230795384487121838641611011139918173334118902517838401870794975365240811286007056055524417797677008012679116755978226135584074553020256897344622885234331272512882091849672962167112381653300803735262875271093707013758325675921471397936367821506730048679877523007213810558283276735622990444932912924587521301007081154992688723880088056792673677644924955485598950498501579847558240888915804850136217309355608689749626746439937996841739504592287128635445125328651225497125749876978575166603441820616383899719446691145971070209339707697470443657396975939244247526718546222475956319050595060357863377730869389093379548165735329878580811866292414894117850152837120018181915953424917158000503483805919012920943729591831100338878945385366164818131469879682215792632014319396768124539391096531013647154367975777603751727720933561777428901793823300924829003225798323096218348346729284930088450222063488825048328494343259856543934335772308784321807671262679644952046622346131668535207988709839377361372192604148096691952277852442671283266399048164687201134298865832457776112344481406196280020628882279784815430696614694344143846186669400571397597733504553182368339397609865110416498842006539786102198871168200978080252051687204582976200444962904000406719526390187168707404309968847958115345169389864199396351318209456161564441036865613889412900077931602407162040337046668225944468729181601314796003321757610601271237911715600068144667625908930953181348231832810584103815998020189287602344075814041570922632818537536891933971276192560922238649851716909035568368728717133021861995653414185902511821125767235617037881772548138521936951792172027761479470037532897354048464791164444156545913544841770056138733520054745108222538499547840299671483703019205164789387264557685795330824581209397738555745299373448850289239394273288976098228559516146827393438979422577316900322040949566987057212845192629310445877058502959722202346934701266972574214647578550489356275396190773677764311189950626020366491509841403219490858172966489541435213128381592086756249027304594405600772946386439714994733319801677788454892044770773283721540410017263895752401559388633037232985670580412733099362479608735913787905909294773330429289786215131591486825384866455382580188948630421926162508762557767005562423075289715238297844961849217914303659479435397519944047265068059199662027273783227147365656143633651471178346366226042455364059601386614833106571305981710511654220596368551213673771657251855597618726462115293021911922744082753776932580685689193608068816061296741474960659091020643689852057172555056620166934851912607303183734881796739509585634513116385287481613668889084293500434192004233055100448616828841982576787940485417905516004008227281077915220163332605703923211847997282230200792263166143751533646264845583663529952024408264090002965225141439902500635417063801262380283616388352638910504110533299206941569581248480820629278458575648591783007887698745752839293091912586638005610578654252349880915649562299138506597004787600860361460593210413990171116324915807351402065003053471264507517072671245528362559792707052875208661923983037308805208116969194916940889020523489398335255841106983160699097012701181944087668394779965883532130605649948358030651686690174805376378022001061310085582716567579183203382453022590936672346085406015553240726342794840988562251346912757843041375309161302958963200615289057442726538646137479163525728419608881808045644291053976165017102477411136835712587601030720601605202878668343597373668600250951002577072116097440913027534699211357302567735753282478898243191364753739169206361088380719633408064204750822093310632777584852536515655500877102144088223064718525283995170785103744174051840213113615477658002254204568988150445188001685674845870358239743500222362639874802115676787235667972097640925564216321303022812652159345994729335739092455687636323558028738934541335504794766623275084234046916385311258978877897557170205855241792464259684407737490262617468924388418899972189507135772077431609851671306879299310486185849863850841258201928771842414978513824379484131094711878124321337883762225627524536257686801391407570521203394287127581193812499380673559415149920792739648549484589959175641261362339009978005522649456950554771810822989148655330216392183508516042889926012800137196692360683565245405143285307624901495184709456504179401763997411596565824607602954301791172206293872040204453550247801116157787511845019624085892823532160549570113050925913351722450091953359350364450485893987927557991156945997647723488397353609068118302509671481452234135414234477335239534990704468100105568081627580164628869190988054355613026487484442376048274017669444079108671488911554021556784038017518449706464326049420484025689712123132244923805566825766280285499048591110320085838894539166732530568796600810339853957865671739679243310658363289014414229869369603282522110377253391749861058863523342133444630513060486447951597507729723622470254606422084592132929939102802318899066218259259359058588382514971445868596175361733686671458075351525410471581050680055317232864347819335046584114173400121120615209720591497603783291786484197067318476991887690992894821985454228573915379811849730982956756088537669130236070063254047498669386759679837610903717871519157178981013398832260237265372964792121773384171843014401415075575594939999351701593408040399786009181978056441223184468552974898564615081867457865774016848274435307675796842363780388050314807683225612491332869483688647340257377382717643205791919548258958128469341364956929679170777854809815334939090130826993003151768754219188665086909595317991808152322351480416699027742602831421512195381273786326943796419299311999037935692436857100734961343053706734589093742318323077325715146356806000933067616905607256792638201537176515970413918322229379060692872392436332960247120062216190793302998113654955854775730056912996855974551830084648847196808664781746144817140232063158603687729974167898558166879404340932204310089225814786609086074561176344903083128454898345032138650589956609798309934617330993876124508293476925846178549784686599422881920885171102177483003919976255518439639532014683736773475395834419621470750339565956357199983248018167042443215374477214000592170047511783616935106365558976768283773023168090277618680246871685850718289612012990411550210990020515941431133066781393580934163516786743872401218312438883685951008566682688151211234178925769706429267780786125969936138636110449452891853761705887262310307771704317642798195452415244499530636224717242686386207401489993138684843319562585046866816910492747195507774160696319036982795660993730906308328823141727026137611604032215264456512823110435111521894412428424244594988557224856636054675723255306600225035603661926141076870774457495133478717496389080335063223956686464318243405989873856767751827687173138778243999464867116786567076780507595267257973407535678200362118013252180020932329958195398949266421424712778723384601011228045040051806951735608669595395137869066554887926944553927454719338735844594377758262297563022958390515330893789418414911152432797475504381448062908074447824634669559522104680782079905290962016023579710023387500923618278740833556068456781409463043209834089329036368707606299232079106252853909658008152134985129926055395771588748646828837013672350250724023105748819333761493355691684067797881155519511732661393199420453476725347503145072991025388366037751358295842239974189155762936806639770146876727689524546233568320545108798965593342210812417200339879821563671311621653001292490603261331582885388030263798689132055816768558244358090739476882180595294610335700317772549122009613761699869468997036616535967113566545043240053082975759066272789210249933731446616470214735250781535248180875148668210158276906585525623512028728723647221905771330727747200983123652361454687377179644819300922139361718853752212103738107244319000805869918042795706882134249412968157306852694807753927657475510835088268667672804467999199452158880657533515469369305088084076945957086761237610316179741887291386613633915210395344189321269865624396830001416514457909784888127014418096970865493712742955954376157562228528809074212464397057422091107492023214629870301537076872186560641487664525591218510070517318948536377827069515747876327912135264797134886623341172022718085128386078704792367639947459992443131895033808258296669630197970161919732174836705997520445578699140375486798967306564063019946844338463241425589604658130349406470257939160220564795100304892577920159975561297540418194147922543998197723220479087128038347760043322959190857924424372463107071116287939353604122772438214850842647724916512950157871143060211485224215656053740488891120705714854231238726495974250864976568071162323339663091370388973846958915685620652580624301867606196950972433695156761968647430747716041101350740044871430009807132127718805692311823296277625246519576369714244952788410499021082992226625846279217588080817820172415512446545887504148768073338889022180156931342315879278411860972423303291551078915763059297266211650474268116970338289742721557598440461804628394054934022569838363006421312135934116338999533730073799007475748556778541828440779192186273357753936747361653180414723305845145082910053509402274769072545918273762859243091228040163893680915301832704587205640218241941740574355074501327936548718457882645528708614519544127483588443449136273095614576422944520188374508050993505918127387791799575487484126011815672748055511702074140497281645662162193580367073479959226573055507588645036432549629160247649791485160343974608208691806501592988072952283704504505127224216547493124517098649640164969825367068878773193115317010037334959007638131507291237234028739598540179264202258723649565227022853494629102584331197251149878669453226114687127625274967418902160280434382325514723825596189422922652742466686573600633878663262410708426530267281764107555156769521085483850971128677594298706212056938591562028220985870006256209038716206872908994414317631860830218636487026096768334511440235167356171983195727855638212267974161887275155240292777587491118618501876052215990452732616852619992192152849380209717369062625705293400958962847480895123634974444017019808750191861341485397428501714732261749878162936981267314862515548767827515365095891438191738805370509349622413279399161281622046350029306936841813541946791716416552781747569417819564412462348748479563224971114825204514849619621527998238358101228364695715512073497999108191241132820784137459581055246653868404911270463594632303123886321558527465670929876387368333602398041290732514271439537493733049953824363415966502350227030985298103480616813248648896571812282327655288633265461932151917986957874651318812699989115814391293714145381782424699019617288397864727370002953779758716142220315155224294829809476407590175472528907975487170682171837974417305790785958077204871194533954760384184649970438223490349138657778411000085330506802854459561528147551221897697825029909153342069355454012394364947932447618364018625380193181342145808447419939192714600813984733849100836742029593124151947889971300064061739526606502802690882512731700879038543780844811023659496785046585016723176801974997691344976913594503853524959889802553604948228402092177173596387489897173008290719011072191209105796918534252747402121030038242514885427133337672052050984631771588088670950365203132561151663568459943514894090652019595566870773641470941342381716647589435412867988598820160512916917994268743208548499908682356441559615672999258116671496062777125250842378473568695645152111740348897043061542716301964789919567108314505961503276025108911555491036425017806955969872190730081015879937052294113120258988348352117966216024481501992707578895929252073558486319226815226996896678660848512376792105414254169523156143364285274217144190031901041011161454860456872852595955917307984654429102237340179163222211614441569600147406342515642721617244494818182978772827107740241859893610663396272937571494060497705173279075024002190454692822658365680425210612878784609655018932181314302186737497202837630606729677162021516611670315814868763027826172170697156934116340488644109527572056602219793968360511763526876113514948316024574974724337526798401751356007639933760880618375494013347495083946380780225805425420742916475099655921258487367916081535587365712623560538607408147038016256758047945691066707593729558474395044967917058208215270940096558808426915870127422481070342073301863538645121842633271871482738431591034765141545245272121467037304290484171130520008538070984479771439022225472161237256270821931024194556663657393935662882341852699824702441175998079587415168859096183569590751229920522332570287037497457616635621355579316900247866804603351969492835259757257489311426622061712553026837936171729890086009800409347852382669849380097722951189068264624468145845578390723246096362822811383152687513414211514622391136364335040319389635194356329596288633427474168882454404087996767412011369087150472916057605689343050389646486102621632337422470564845582056022603593860830404401534808516010912935910743687703305331223431518672386134702640765776652878767706396101484020277166229865553503416653304867016969719056373555692611049231808750064422440621832662098082119199005400946046873668426206636309632612806565940431985537914511090328792120720401034393034183575525881648858927799637338304450193457691189376251319973343975334071518105050230120666386258061487336939668169470974831628895694722096313033262547007893450876383441740125737949741479992621300413602598339828616760325820967308338615933800301310473319928182425774111071269735636109485744379793700681626422260796726129189114512963611575411219336954179021070571721685527334748858404008409635175916712705465835578091328335426545371985711785600536375151513198226759074718134276602893208871522480078856638886364840751103147910661425856243001095195583560310143794049237342727247270118029957626133294504035536188376416273511878928881343300202674452132353066228025796683425664590935266896031394206257115927992338436956335769889826431305225969470518210459005060672549679489117921818627213499564549204193594317220756431509487910014810547170461085561300258713047603047599615684327099209669744250409685357965275968803911774164885264288852855665203979303077527685998089469745925890329438486984466245346826799558413780176717776868604568807344001584043115333874673300791532051850501052259984573648617371705090720382195166830947576863082811087092974609431706105281734244772629970289377043925475336473438754123549779554353501005193365248887761317837143467580713088509519131012478657547874070985585681581833673245334226140268460525827891193719308193469532660852411150739224406993072629861975233954806369735480523239910572991983737856794711654513698094123064591090805205872997821038375875912770765871955277898014978053138243630925596301775611440622752541591889174179047808110852161968933041641185009299315739459831627336783661800325527422299171217211177208729109938446050703000311038818304366423346131712088672965841478473145259923305547997424222868351621304977437011788544817227944117328352301929991449776319245087844275563026963596430776164237030120598061777045433488592861746672863482967783066492922606564886851818772639664287080012179187987089210150130153832538159006793866549910510617567438936673087941841808551932374332016827223083543363192700040876300797992698209430995216177447654861327718422040256474990705447715993334640719985989635204781772064647332313270334354525807579114804201615546066324251928763159852373674698694653117552910865028307460800675119268651135882140765891171355686221731104367191984794801240639352071550163249998501275573577365310228436720756268063787332599521703737493689749038531581623559577127072502389245472308879961701445144567711187523100984954282191975902669224887903756081119421601750380912085722313919949050483224085114742363281304932902019302270444927930519662300903662328393223393857478191683641728911829633507935713394265376476741685378572829905764738158886305053935851977417733924357476062719093827221803914524418930564995767304166410710913457342645355779500540480037693717470053688536640101426962218763846615046417904770122926195476694962007063493329003822703656867948337612965478398834730167719928569721581282537689325151006192041654249470765592621801283604070259647958466578483509458463049546742264723185423621104504505129606492674373208752666384427813215860768387231736763429249143704708551854868262665582403100054974554560327507435884234013434287575861881742014861645043839424810727719179596234650139128836466817846114340496352654836248394927881355265715313040486796428308111867708320553783706370754093786849841256364634378233394400916808151964451651775756276487539839970037961664735108693504998208046907557157254669734531075904336725732398434398605743987478821850562982921551300719993587548133747705148934855356608073622772507218139690797691659734819235941760764721939166542054060746416010613793223742568587118814619457664327319337164471454897879148659762850272600418274287633042562050295249453307922874468090360669400608567075785323863363807400139559561996182967168782127099055179690508775309605721790755518737803584893566816387410608541380815597931831489474014636689495789058494576773227860354092076455876792106359811225918575535330459033597101028378906690633964041979547908276857585336542317573966123280284222540198304539727313615975310980593421389728939589513905554686096964863395370155672882356834410485965828489075585826222904147125766618264176544154591274710625840851630801682891023145570407218349719722752930179653044541538577130846352978785427622712540541235138218487647813606237911780110962628576476583984862506026306397219104888852493146207409736446704655071977175477290089408046313117717122078972635305304693337581623651968236912505209369482109478100130170657667541713343211516183978430615764844246491052504133593856998019049306723150047730239441090679934674395168940859530329259143934861478941449961549034521850051856335355566473363211263373611485532358395592506054646409191933887769561328565382837247841909130543630142102719442216697008815407953004975848891736413643545481685961832148137958427235789253124482193433223934064332439715773085760509137601341883924281229387585101190722191706414833377517231163274232540826971003447482990082390441919720283903679751053965172781580715825492986328965230301775942063668057022419407942150765558885302383933062582340768566175799529571168208362682811961360831993852622927374360826866074495922337844704945951279871493032422813131776928232519757854427670528041643652161141064542949061675108042672420364640763997144308071826761988315213365808106046765913462451989920556428956276510307580899486453455986443889123678720392466409677979301327029345300451485699453007551123245695683099017119825418743716937008058939256227677858889383272963044978835237494339974064219808777790009890831327566824382579700054708386125684163495388665859036342444604664027420958638574956192064253373751307791513258393997879104282474613420506960898143694278261252714720201323703179075838544929454876991038691275268245497024446450799080796703429791012760030465503584593413464088862711626081396676889549636263635737440865159861922819532272974513494354324425924022976079372042008517984504054400675858923385898378426141478317145540812365582094170615919001688964987941418282084625139647903836588988427522649292740434092990461512416353190904683126781936272489646103364182800512988205925871277495630523766096888477770614471802803835884512848583884183493378167995687605563891939785283035666058379351438417175420405758190978228257597787263511638647887367603802895375328537109153233966322431557681796559574129654503156886274946537378500232092780680638737532181412685695850460408877543563363204124673319147836638332284859587976907928727486114258858049276474539842581212899266597521063902597515534982485532585502721911791272041537626681180866546617140102014255815851992331077377825588140878115813388007438383440462937864532120771405401969065955539942598280692738384393318148649405587555830860578504794279462342131050485073720614669936579558155602343853352051532298361227756495609905366918567569039131773371325520300198101644769220107289308268933935901684159944288478019008712426686948770611440797544826944139068494969541934592198762700953049955519446523808888456903162790709004906923144596181270648766217774619907662269934318880986864222197687061785409461871148396247409587906069995763941929552176500713219178950575609096689126820179272970528977015087261930679325441755604786668133162684912731935098656724306337788933030155182653577098799208711418743386824273968965860728950403020461044781115408061142047587325080426585254259816871929744095202029426232003212592851043119091131858897867270135530256946866367289488191002356859375764408382749982137368844610209244415214988094185444675721123914234628478880097116756052513449615695130065513840210479656867870068287545699142052718780698376241380780874305533087794680348305422910712998538594591980102384685449271329729205637017955690562766586002451551536232198336221818222541613634674758493588447596018620126251056331596661757056281618900749473665096308157584514431265978975172757135907110463137566547517797438647933743082318125340804598085637437001472584714821125780017714851297987963245171710803389520715965956911922847420243652546066987556892784449968493968246433986978534310344311565105589884255449659189717585392736425175417051826996526303849293590828595660866484520302785842805420902707436550469964785512269379218200190004124865832033270791195656532886349335739526283983808590385029510419161264773890279515815517091903518651641733459063095956250032136820126193525181726201644913578406006376184955665778548136559438138439786931433826317305158904788385815841456577169177839817951384064117053833276980977922513099279957324685297409876271076910949193402610231167418740017936806402842963255246768208490998866191806370471780310455347940205491508599612364087837076135031923742811490680838112794572965528706989954227040377501726766116652893934663942256044949857906866673842737240826618187370128447165905826938111768286688928733529967292593446584308463931493594708423569749434021773986842193392766621100994544401011480018553555252795670697382828401443613768572564528898227151725417914208435059919055856088027131539170687827142067126718944662280857806614945219446378021120925009952258302685152554120381548318446413427351508497994384113945197387062545580482314068676743440390841275370569382584976986207669314848874942835195757523943428942834185074439423606681910005308446962197341912935736317132276949699654938032431734717790833405990791780322813144095056741786020555577116247115853963391044396765970548329623710045190319579398267321995983395960840356781836950923145654131357580492985009751536296187851236764784355788668521959915360613507635820669130277858462060537753005004150736994467540173031804580653808486492330283699532260503003468245265882827108977000838180996357333938059755532091825984916236595545617764310864082841483167896579571583699180169300630426229013056269164373002738080928466390344577615047766778038761025258172642302398000577991920918063381491159374256298095178201711448327244329669812898615655549578377685110858690768773803366800960922345568849096691655157254072929435015792775040569352455348234255864418069133404955315074611659115551058624460462820852857142462852705528359483219385851847632935045195031570345445177575514646791096632814544219998409132315724653858528788319428118225901756504439875912344524049268673921058874847268909022554616781878788511912307533137073253722669086613316268075243023604587642229849564058585473498028714082234985926853109037351197412490970938606003815772946163754048185954890286377021181882115778958481681288842503158188350505916959480264660415308489152495629974451667064146090731110270037420000561239655182789448038504966694745516905137115450553140341379465926060390144042798973848812213352718814603634099841620464473961248872688737390949437743141916018220188197354993796202787155610413629956230650301043576571752941468663621156047383119812389338661977657987480433409042455021641481494599456797306830214040921202269140948975120754161584380449717736487570451409825718130763769311273135739169507963743696956527078563248330913678986341576932982505690101546224351370461161128182813938883940322638110657905571557453555254609660909210534674888068274077814050167609388303217032429167687156826855702921233636197554624452362220053926750554836249456657546183688083875747851966506081994391886012860675134062645412614579811111223945904145800278220300062211384373616831727704074446642522044925689759152985620154872770444340316249123140340319917248816532234115630422431149203913741336153467957245059262360887523250530684396233643588679355634751724002334523786282491008891886741889588545797217121171711195806580998420199990040614023793719946757785344006607434789260318032354113550227797772045193199501076142404911769304307996589947565735797743968431436552313901968357982120964311154419533776834290905759740002195432366077067975890441066728236721143876236902789387842418788397732625795760560325736424172687419900551454395819748096471891044593073548614680274608698988091073404460996266733863301153852221596095450292425129875373085354661927209444428822800494783258989063621223797414268295490264950822167224062340492658561268274563163225258294638893415717313446196984111885012181051065008535527811350848885191471030419529906736284492797729629417196048349101488268980699725221663111038588197481020842949824170821096585667230940870778439000693954460100071274192438567175506529347754392085214559943196563820606747822107914031823453220193828987585776710760590045477185312168168979056431303265129548775400207655273648839626980976872278105840413738130087475078637483174696344381085254200175783855040839406834970318486316899202744234480683856542142632897141385491851237053134288130657709416084040797185014131747815118429236155020986480029790594558964784319405755922071181910528453922196159896921060565299473525919163333101443868824286858626146974784739798794755955206631360800010128989581784954882952631203607974785801397392958697512512873774685014120968483791440661928271379027983126252454771264120339872797902187071197816364450244425054437885099673527232059452041379689310395325589153096695143615177423209169982986054438137848183886846676176958494503157362550437243538377656104937684492889835244642319687680739802312176504353605804738029362202390519487052822726049492792381471331770370120306331302104381817379824247450500912808693289157636261381759445124714227710633264610378148953817764314392638590584537621092669621143295376233294703410119606884060027337121554050528219618722024170889172020680725309108653267034747564062557867734672638295684363285568091576258126294660007143742630681087474290861278237996002509139450564733048296101005002182406422120664590145560852131555894411090246029944739246159183649571321292060657916591635572144929275909241703916324434240633025680936807198133546167201314470726183382085679668814804065485672487038274404234873890248131243704825314021358180838294939437595678437429318018243914518971784155796011670505829591122119462446951560833950034620143297295064068869354582092783433592275669462832595803230650679868325140660950905929593758817263138425576854374566855088973318692220506151652539922076067590994065901324582586681786986383169052450411439130350969469160215884479945312983024104305872515195469582423063304386264240550090208780556470109592398663723930283765857056207501418504420448261982737989684884430483139776863745853894539103967247008708534121828093643158167237201166597896673940356028104475525790873360622361265050134392342060864086438099674343777195845999599297095431950292121859449441709563846991227572387970435028407857665853271013198496520908090812263443704655909047446749834167811541370122756813337313779840950979993981049390041657045772334076991509103841585331641230914352997772877548830882733731842069307178812944656824774779620296092968429771515377085863469319361493453549308613323845449144134891982638289318024932502995566594200964411227204775983973894076643695689229660309662643827773270151050427858682207916711445445115568649579715757087349134926167051871898196091479054794964582597851835065649433458131092731200680113218184815573353258227947421666628079736483870839593979363652253974653677942291880877110057445158865630813719205638867201216332477719074879708580300144897359928038004228363348442271155708313857604233941967975405206758290634135434718458248657915298186152999047788307706861694686299951953135077560216719089512201336563518458476405763843689959657264583128831244548552218317802610073944134697196754368741105174102984479253562122192014044194554626332657116680288309913457723217001630398837374886068792565926604402759287710834149993494345702637096387304735703753605225720911195190737972411720241838394826976561063571100438962429165313185731370807200202300076573458585624898156723748308200229826040005871770232327804225051641476259016535835102898709481198555735625574275108715538666746338146307400296450104809447533248603848476358421497932934651309569134641233696690292733662591459593449301483632471718167060264325950094962101781631855308172911610715975049673523952627257854231687729415558127618643343998140429544128144842457858575327531462616958910966569244920303450714496771009792171697849924567518325897096499234187878086021604545332170606603772109208367601817646203218999861979844275215340096466408851677372758977538194688453369448884183927973196373717651338940640997389241767776778196341999307851550969805951947902105996352840347828473170761770351739371906010498459488581379112899656995241708025795618003964918042419521337682290827025595222073120414173982383501705031684813453858552102080686832221806810675634974277549794297866500244867445489724103514182836893793475396173188119997228500835547543858679189330243594433066364014025190113599877796637091859615338733274043539966689042462201738251838511881386633659131634426232776593099611226530132607239583587571060530810549068839112943472001003346917679568541801837900952915358519142978909329156439623276581163128987181797444208210095500576301937224552388682533857894777214203672528171743696095453897911252285900151966765905626486633780027099760269478944404179192013131249729089119921763672639265423291887806748822688815957689954885489707482521433717115809755051056219875980398524350131717818323983844551536985790626005118724319770698281216882698672400190604839409244635575648205526570562848435062812921838939199243385715725880092685959352362128249351251458709058125513020320928993694860810173896478350845023772449803394247747041559595946881265587147646892793161226798979479149799798903835177313942177177121471395135511081506674778242100290238266448810995896030804959904622964321943845750254600542256028418423910189901643818550271265086877722579460426008700258969490115424313226749999047014408226085452115196899456489069334868371936669604533574461376545942349505841120354945848437201080444779461175350953052744428806272057450265787507357548282705897438382818343497132276451034422040767411315917966157477083683950475441143185914974344406856870440072046307245379130332643126409832573006481814982318127218657910377246528270244285522511810563381280261573049647786933495407057436879810578396652830244918426149083817348337053458089446137467282465137096473132371081517022141782320805952698075086501454995125936002076121266734538841717812551162996408811988710902464972881901139712465033696074847853196424127991387574510056842651071670419408746241830782662888378006351490138165074152708445593474191741102969336782063180474910830537020332226357178485907344573504809112642257224143123011116132570177422405971170176334505223705754990619770149647610720524739799462409115457456391876960426516880727762290056690221346710521131163649911936940276241954147159474698694233647997394234522732739327985826643645866342113368196036312621071858792332250515355120587346108474156759885322445640647375137947448958019590219890390263311613540997410303347569220134180266457212009473717515372953318347878689444717183129174624173883776562152803087066300468797712408326005125645367493891490781135418712367351259857451491219567898151719635869358906826068740689714237549066116026302194257023208553767667019882879375889841349352174758988309593654992325321555892635590513283086194779872747949767276439690120748895574609964122900330358089665249292387644446162917092565453431420790223295893061853536235067749487389955119876574022110550701369753645915411324461349873402449419775230086570637425109679804257923509524452763252258460155088090987906603812420400716276528478047273527551357652305724713727360262057905107799708025914052068717155314607356075854453425961931477519481317455449650684592408785370613592331109787182265492306812697734635444870381960841242843491703296338672709504326981768018678043511508739764257745229545963663183468008057150343740545592547623906930782366995790565102440876626874339001692124070077337504949884721603478302843291832165447774337406435298214410561767513527173324852540104683492366262734628653030801377368469253691312942108377516329779647020370097841220182341190300761647317880013606944102015893804493251463571592977856884013256264298492558525634425274379335326067505169257687463926817136449689502319209766251269567763379222930729023035659236813205040412169499076427543677101171122683986795545063682508752927404716749987361815542264507695380318262861576488879520962132000139504922461693848416677886177727499183078655043513735964700033643623383207212783292882964901321048393446032749033273865701754641412707659156077865932206805486042904771047428902684924880481694736931573582566430635662833951855394308514484035138762699687589841924340541186420331803854727418212869279471317128381231335012023317155010213948442812586942926500232506197332482129737442006382779098377323926660295884494437211565897326310296984936572857383382368950370947862386506738831348170104850562915898822350777341215152117978143514828254257830932779739451180314656996899577606820729274171721563767213198352368680825452749637476355794833104325801042483052892549441224515707832888406541676934820730973025180311762951231685787120864688008913481240847606316410895059686049843626956470510830317408654918782912294745023349097558951133314651841441743148173935772488240119068562174443177485004704516359376569715306416374016795861045690934012311059656612358030901358558617922044289354959257071671709047715258073997295597519362055911902152523235709168055552946310613465185727496670676692699792647617738339105440726574372446523555818712064526205593367896353115721210687484677455041131726137018136919249027422842814274425639600556582962676325696251441665791630760023325038678017497478812325305140315737567046685267105373793546915204610738716320609869846982020449205060178922686617085106653792960583893406106148817150479691970661421692858323271931106401810021621847692948810122854155464078201076829637959982685982886633721369028034791638911521917405362252602637279578952273897244205444404897437570929908411758441346428251150192680322021307066483889872551744653133179769928213637338631297522916259479066256070126333417646496982884326781837694447053578222011372084318436234780044792744978925697816221417220213481055414438405331659847931826253366080508991344236677289819582059887963210686202391700256151362016368076942306123718956926963416185910061731790902975428102488308683845140054203997379986573289205719895040386282582879283033109269091454902744123885171177626756175568284972081209752059293821805454083288773030476898183003213139943369504398442690702117080146941170806263358605049973148123322030373759880779875593648440933450006235502609801304078995582451790923932322195072699334341233193494532164106419374237862973520538708285850095133021313100956472644115361171706967786560460902440114357835412007037210446024410100002819122750522097053580080284655969726251069537114619844100077928041938550701905620067333453592479639543105116832678600379374795181370588409538572871775800188820693462090856804605914615077389825266346773154369938049240312934457640773739013344957124330364057470198870335326460131158839430971967544896200024174195402120326983750509179330194201953373027271720430839837519411208041883432618941872822460794142604639536866794061409265452577166920272408247336495623256447298038666914949258875576789846761325585127833858082328783999727087318194665036553732529174652928019842481731254699794911851358499293776090695608167073554081965417833687191552987312506785848577317341719372825693742234135569649054382564687958073226084185673560151150490345144296317720057115972624832650671834688178505495791898354338603655098294370041960955588127217493682139161714965121269785974861285413442095903257143340505806976974266724896018267101766793831138169966295039652287110589034788684585367544269729823275883978216894065019244631280610139184786404716935737744607862979817535138789383792713524361818134518048566598783742314568327265167623704839081861736424703692654652053955100900128939484547049826777862590066580784580275986424630349028408506844388089279887192174388605800297959523570085619314169344802409003110323830780472144186627238163273171683754867176347430612930723260541913811053170993296383694406449500257052506108485932258024681521038935158779215711857710862576812906943801841982274697366729276806770682156725742482045373557600234368393852519726921230918075776524670005799675910383722625264066045512973332496209470635932920869529649837542594652745806856738063502088611170059429099829167261511824812704374783104511804710939755267611277204224480531749567148535739660075360751706085427828905351355971263749611280678185354320471859941390559006196598327714238667899491597058409740193618162913679267257123334197416968318670543215686595732818872198725340849552366595742362060849752288975666491199307880978924589207067401546844535102574030333932876528905504092876625679046509652730375254889732107201294678219092686330354776209119800076551925785770911327667588383589205039327775221850344050094522610046945066766763684273718847372100847453759956818500491070882423731696888687491875876667255770867154496764640194125378036545209265100242875285216993138007748747027815457999324672422688570149330197463108474831327412744598313366365993045619056623653796240492517608979037540009906312123488415447241552214500550197563576059207838545315876457904248121937969512448711746795041700798871149944758453375789055703173880798175724138091781643313885641460031410817443140547038399899031957468505430692053105051823686582424311321097620977728411966923136536121556444499223405927553035855805310026766376060886936331883286966944103741341108534343961332955597061832561334254327381602366372019006505774453128254206878114513354427573272594616053621983833934220353118001399406724834487540959990164954599370179046019682057819527669541769998089902301982268263025970686953409953426355038352528583670226117893526179149147169941592035583060455187827334941456293233203738557275125884160092507916069258910420784899001916731493346901184447436600802849249304067806254429714314725273925763050591915369954266914530455641743044492114654503823404497800003640486031348324336693615556878206785775724810715204949128903115908888789358222339308903547113169955583268106432453598766209886436674029619052070110890873852121782848090376275846963218098144272445074888684590093911711150415925730165159574134856558901395903811857374365093148859087502229737241607632208021704120004209779959436460625996145104702688256571573849993896660086916261521852887975671391771789409403228249690585444342157390954332117491328248505130613977271918922744042973056572310074918754749777844834389534322195858958569451390227823491742576490773080960872325639599928163330380504660365209590752261656194345832844365937475910953776105861870439082830404710971663718272173774839516924971262366967805020726389684446297347055031914947264526310250928105916443187745787918564126520795933470597306324687779296395949900679617415730523103439045366651707115077914389303755396812301442208189423713325745672016663845105281306943134948260319022486980621811025843806139126473503505509828156166261033333240370177571847724187145745807855582966711415882239573032514079505890294614783791228416852466357502951290128734990976193512531612754866293188399687887856557234010514271506166348644052812163319203677535618626158800728150093542414020114496419568360363219664736784900129673483230709892182072493559533962734143300332753507765995071055534931451404688109081905222040583304229768783332715310387137096148879010185010218927235107864155559473373930877105310891669379004408110075316372007930733517972520222335680627734418245399171312953713078494283764076211654721425090313121810521268240046912043315562427543037518399893165048696271822033776519659754622819432866657072391254689055067361009248058911240613286969512083911138842853499181216529379008880361339941764408320501470841592415724435893109912581702991493332943889647294418416835424607638125013980377941717318633716414723438527756565670345586548138853293422850946464884329367209484917664719031128233992155816505867747238168112675903633293810558081193972396204876689695916118995641649303769996670147872119339712789021762793456437107552958678558736738801849208878417741034130358579224797010659721920721118395194469612436614086130317103020835298801459458166368070143468043867077625141962273095462957820966463139548998534155060457737923439232616174363589846141459176608868421504929005022958856605070643293307840654177629821422130424325449670864026340221476506467203786922241345272800714168854468725256089932702125711873598388120832480148760059033869732389270634816964142570843319787347647368238090355723641724220368613079454117819777164591065752157897820438775291506682066553395803974506542779091483766181205506130738660381149983121194860952938155151622966606263797874153993018805120854582919533530472108417934806704912676486451762948528557776534886289015945245649216177718174924341426134105027849296781531545685365712613644728267436834268297976002677871557130295432495707881160940631947088518042517524144128559085541691044446917141894243030064400268369613439254421912033698729725086203794861860796420841291837517546114792620673691406812612911387343973311003943591629214910666334682397100120092754582817285051901372383927358637921063868274473025392083470269532905850000436473203215079639794612398920044198013967009325573003737297560760587213984751790406391585718225982743516783352337909654869335990125405960030389276494295746926981579894527016455884395192189857255586737259995227952053852772676254025895049126284821753123560390405170923889048946143168869461248838678674056431297526915508974284445629953867409929061860038663365069912162688363788475275607823762106543672545153836040857638831546516032867764464529063516302943160310431450472353941702797516112375194866543612839182915231022132362226386588845137019510899347556245216369238738535118418007936147694731402197261692399227186790738133046910675482591367234933042405205412309835528178370286984713203713715597946478158339394624904311396522336501871109086737189775073256743711491547724294139091872640877230846863380145508381381812619719979074348868000368420464057283409226159192127408308463781034435356245598718714674738648649621953410949760233261857269645248232943733371406344881495204126228304291336363176483315379836068327109920465188537399245511804178688706660871786034607745531897405348417660389083397446378909128999482394097124573840175269014076186736066641735874990415691945665832538245374303480740870904724864321570895096131126440792924243499273323867407875698928641274718356712561181309967110665567665588975385637495441385849075601855266962810932700492345778134045412712917671131834736699691799266050493347905381784185736189212640925697612694333300212203872413734894112377179158196221180460169816606970312770287986797292942573867725919689934551004544480185700156326476414768451133457767032356058430667986290219598589371279461247758669074451887827317336290252047751911437447526870898310797293863083163910112426091556158910218967758405439980596961570536346789784434222636315897459523631415057402542146418958489594542530038589329678820957482450238633487340467381140959409015864331607853185374948805286674550024134681281072207045147139587047955564569007825341266851419824143885687223506122061631439891499296218409306340772225631432431202322383530663239930011214603788917635937384515025849031556354705043601262854649076681124990960306181258596930555490284378398535926218565819169902973317121339031950918023086120356997863789213382688256487569900619100508222266924993869261220811090880276314725398403051816434973514730818409099600268806476032914590598916419656885362949061657992411009443842942085147489144418533211121224761250531574657253615371999449360732867740907002535053158082873563286861832667607027647160137337452147646956164498432595444062286207248101798385177218238106846603838017264187146596956099586681514859795811351603594582935297573443631227172449715937378184519532062676101255522481357231196596265344989984476701404052195907858868121060399115714711561255943111603460258260811942140785196701309308835405658774504754364222568372952010109611474720003370237870692460208530195158323879576366254513819952045377871743724976101716745318147594512734404873532809756498832913280785135980163680657291059532240506355404751627180541554932380482526764630271740493848404629831348928413965728001762718439514988039548898234496820043496871877508705517570499938104487416177830539002586187557467050741565097995782819434225851907535314965246612376827410168757764536774593567289833868498141545356374611558384050252966734609622031908460397426366809347327785790584693075024852736876106254764789669924600586553125581974121474164158667683534468368449210348451978117494046327252764435388868555563667679728642077068922228657957845927108694327600700608797518850814084941722971164158035253981496251795710478804716074784539620103311313402501030159632117566489597953113349189535220129988794955114068626568269991982781837946958058646143827638162102763729345694616971898258606594877174185216488273170809425315181083726208180808918437837905345582992460403026641710992641889906459770473015951255345518300383517740963651634055628087481938097250521303594583956855074859477131659438963610643597052417423376405119442877487471935029386402919856480482205680581065169462213385255288135551446419559157048661178687301740955670849922737895178273702678846491729079035257428454126947652312666576523835484235659350090410761982507027197669956852218368540577272089201415560057526296319626538350563700646613255630663122176375129997129687244389178122900094663729591288929344925955067249170235937820985421026588530762312037633565327202759222822501325230596814144906523548687308461314562301822683928312451352882568913999023295216121464909786598775889962142040617864463162610551886725762709410819426099463402435024695011978303648201393359649994499961102576550414956752326941326745145405783286960857488521049314769020292153581194129983484604429057033384165235237889437591039438067390514581743644504795794510459147582093665040025855334308497441957670462708355634535555499375777571698742203199471703392830662752581581361263766898236459530546635015357383073256868523317266767748219787006577625819925637350047528552624950484756158428182170554340252067498605462003566869963810233444088235599927458801559227469488194780422053628216374576561053503046138218317123164813463733940578412189397040883455539856778751039482597871616263665482965356694696380897577941276206612990080663915091115566458743725055630354253265338831565348758226033697431183536715436642549041054257837952875131385529392850906008391170481788861697958518577797702749294987922208212978095662404482356158102344806374277478790868048895274140934553987112332986102880781270628881371455744907822439665982038565664999559886404516701792640744623314658163228879178216146452517609930140748993287426839302133769608165282355507444356120856908961374213176698706498474527628000122465334494350791091656091761635707620350421990046264536310844563877013021443348891746420963107957366660471285136638211658971899630339607832717910068191358860148586592656402448894796269078925004577572079956521203358323708936379963274133937125817305046672824826872433711752060473412370180825962798938695701229615996485047899131560062012427776297780847997710536194729240710526097271813055744005530317744634470210599588095533263298750461937013653981124532226426770477513655517821695044628395043523127654283038300127787023530912817908721434689572034946751000059906281368138533419763545610351789827715427855699208649927598903913654485758672613660059481691187184626737072640058634577606375855680770555085048913489539175656253622471289702902025016768831330760600742242557728415559791856971641007706181561380770686537864365827918824710549793167952506256187482823432317939797840684492014230547303430925958828310656707422899840554447308134042024330128476438430436825483029579548185222829142039588762538804434747942955725881021823623190807433873548628356338024697790254060564873762881838238384033223668077478137609430159828743527252795800203594319180272525336521884970199079669368463259459482703206841189879998838988291489088548178420164678669761265595889722498390534540251580759746844729121694418793940177457449511249017407212343255605290132440761765587654360618223169405885083150288560246071168567587230460955467267261702568063505143257190206240021620164781495070402041247718625266576492236028771929226356364078878408830230242928022733482515725236330253560668454773001142483607950306909558810096783239592960784321246091643008234828232703003216962470770169336628527939515823781399789595804742572055667431858640263233430102717378935124067265677955008005541429517721110396742525330272050368316463367593190426450293119087316803169180267154634467801571033949259829758376134633554290212189923923908599175235068534168384514613969307397644988103129877958022321207540988783311354213882306554389985006309870774853311478817148077004007700479658549968619055253750661579308867114333690421262360620674415704357733676204531819719115138083495450974006107037323943485223867448268484883323603380325373842702474388686070999787932401486132838838174440416302329519605399493932773200815688090932729765023785256513303830503796422339131854542414226725351233909948252983225672006570377149644377003687998917415082298486647390697733352611994309248327813017593687038734178538958658938212976656276725031000462691433440396075728917305644002957403216437304466301363794064957557307037614116027222447705737696500519871663993267427544073654397023748904068841968653747979482267552733337762706298776073682171398019946847401606887103311116308029007726476586050777662142858912363973708565829952169882337017912086064255178839132133377264128604282707944197177582341431579588188950563396638768714474122733919078368575900047446946538216564792956693655497645989310903974011878742417886164253422982131013921498349248231163937881337502671253742013144344654110872540662074907971338379121682895274903224456560088019257470538661683165591459578955616248339322906048640645827349881923785557389796808062182312938447765505302057401697430452331011083252245459926090038505099400504564553145443344060418116420180140483068103494844801493965860133832679433902275725303956114025789279505487307162695601067531702097209673549469449079256824448876730780965488060909760942320005670503012403482257794945720918799127081529649128702614344826717512767524690343004393915798228324637899562980726038357038586871610898966834659995957388378472073528970924158139506571994684961929599830715733342949380335886565399877195690405574457011853962747786927365958357637292806577517737302603818404624894664045074378480358290827023614419312715545645205794484989825705532003969111626821248728489492271647149446823835214289804034340407213910811100563095791074497096161949997729691047602151823857830363872179379256080855071469883269832876551754338554688425389860313457033637622389286774907811594357895941440165874275210799350263691174273938498571237453734695077676596649280325766900046095893783554702040081147304531117785333391113407333205012187253328836957941687548950267805909986061745693895194521346544746421530795568221230868985290677381530618282555726503890686866598280807371829187357076247776230637397705558274739131760714277788040295342491144490519373612645992754994280100341972875072907045349592923378982889318478002117804159426415172359474450137935159029757890307630847113120664404792194418324123026623867881622130954685404165217295999760911661681287631639851243849709065727305317396635022979970980821203764487154335096234624092214046923675140762085832341140844764319868387564883835488321684198444940282721695450403147487605526670394356229045437367195342002604976446518933489330773265856020945972322298299689037244380203421016712211989165524798994153137305585603368740763675136163965137998157538334774603928333077873877805869925673934352128777809082746937818636463823367385025211518115417586623386236762018120963122751870666829950920636806637117674017957863078727150865637426365450752373790654541771308657311894628916240603751951192829095097659672825169758705103218951544544634160009902227229060912352351393928988450625392025895912584834171495994430950783120153235969159366320563996330284068587591264410830423354419421708951559982539470444949594529593800771264918392528562470734890374842986772567530977609586598619999463354472310079865455906283459893139531001323617229635712123222278457092928348579300902403514128325737274142861406430817953779478914555999091877374942912449599981616046301648041773079905087578613688379291105282912777830738752362096010454661078008622172380644906316305970495359235420320810197843070081362877207788173264015393412091029799805871559038455978773189333799176229439039075208959196415559670442882799218154379384559578224502169674830714321463215442910660743221094964193188665704757877844865731670851081076060020701443731828308187614437999494363196801533281608671865562109152395139948762293507642311604082423356455342413468104052840844401109888635676431207593523625579471799694339755556634072648175255666663368404159364678996982690307190615780975073777041682056499998532442094388331378246751890341657306067313972916630030272913406491952426096285773414501075549246508603078568685286938936587554043295975157789906400426567987422478163666942907119297871387722788987598547871510933708510692010971234943887003862728491215534140490138159978007281078940513878128429730873992617061366756759862691250007307748485881193715063819877403759726325434560781927504916419357789750747710832305190499156313083300810252711087332140382739635776885832391066866832914732212649753547772713849490157491561663674386981693454592499901887850894628957430534245779118889974324899777043934958853064231614783714441936995933296500876665478009589819998959851532780894061625428657244627863142442180909316636169744710248788624323938647274942547276658226768004736149724196268828008622983146408247181682431977521238920051545630556969546792760522252168869191043653773773630574564907785060899178521219644407601330607160454244907597538323192327783969226237108389744224961949069713480024153940463277472913126024316479178649434786034213014044691052014836620278475718495040015023620926222712302799979725212935047588929014572731066276396899866545652362651295648619593502270885024909447845905926100117020591183299369863751871047565872816549184382069624194050136181330166856446076489700363772575549959223523797270967890143401470711330359840361405091112641058042165567001148213259367286101159714880001869121014357895709101443040739961816456491023039224529260701226298724858820246436817950049305340474983944818348134787610676578152026239700768251875802723217196283774153899580717041858370996239369591380640575374679189563857617954983477754731418022603179521497986806859923578591913152667678870695548171215224129970719695475299739388782693228549557160182148142006049034031785090072838897971503025980428307526282199649327371004148315030877745986998926341840848510474790348494269363275081859081192583555916284829382697048270163679824899620669789008014704493845974264251915432346730553658826098251914932185259664689970532812871024597855198047405343698791549684526534630900686981698720616899413805221425759192293637916162314971075004544648265473304758392156370485627133592308237279000327509527241856115213516429828903691922013502924464020316571031666807062702688526872972147364157994893185414704324379680493297364396780767368461385464785870083203960909157587493588315744972295430843441927704719773988978632964730508425692137261414997048242501943607511987539120395785819995944960154289398614035468738257750600981127977773060203783730605254069674850196516227555093061275896451942491137238182230070101843139187826365535022594673951599585427843327713213262596281267643752782383891589747692566459397428769744359993806102865648908456013264612092347472144968053795398563731431462286990751366223265171075156483061745696938704043463584789316391029372240323654174326944120092227021126177406859962635884603401042997088002134369215629771986074912767362125184227808980976874955488417981964369099882293063382192833681562301875062860266487195231030506977732058644299481775946891468237749012306884199745064461046709958391786562325994519986757394463501940558886461032711868114253560189174994979426271214105821016397605625179358584681644795376943108100928638029816768967563074404126087047676504593049815890972808555674376013145416906595364795516983161669008246138826001209707829764545983689872412295899804531454556517229928223216730903145888135052951568558206658434131797220036265505597057581289616110579229240397355551730662360841293375418066877997395905459027922557074195218723018673424670689253097689533939389487841049120041010475414945185538135964113663378907380617683565789531278003627224910614777648136516215220901544098187626638752928863116136485277597671281354896929805474276516333859411250446100449387627830378653941617744409341044362671833134115212494660534882422261580918264056846333274349370192453111676281057988550677161070799698413874713135013596255191249723060580477650836700919758885930937540323396394464100326942946604746508682564953789778866024794213033452878496816706081898751228128910833798974966469577940533023245050358864202292251405252947138239613998013489601809979144746309780495962239045542259388186496126468810680704243037798419287936271377144735671137323067801353694873155769563905529453229747201762562867462262316175282673724641693237937616354846004245537172100841241364665053642010504347337794678328112688063087080644857933618985205081129977004326323682477534163240782560053685263188315525202487588022264370621229550197729799709843854122460311711430266943702156029463808656176414700316002596712747519961607583514852857996235341495616602668794222847348109766806637117954205922688970969053506071164483900563750531991047060422873617374910401710099124199447992838274745560354628030113997500051975517148474682108919614758825196461897824820582945378788197083377455298448698322455105293971858893610542397209855128120622119593676542742052076624656839139131933581120045175847958925853710027087778087759428439850046193010204251803758436230262285225003531594635376251728251479118313965334202327684301483857569283726404454248900416920315196356633517281199792194094984684243270721142787164502357088934964183689839525957740928066382666473290278812744830655158165457048482000863104021417856044973938962694967543876795160746533970437210277737685112666198256961555052233619789853577683001537816130987304744810003561900618055939765603448385430784569761796434227325274042961098272277440973752649690062282405198002340685748918477270002954939239749597730836132647042012852183962051355834675621980129053446702170494772664629466929943403882337234548377788838324620852489083697495760678686470015454157078188122082928116093434721110049613125808632798029795315966083403367022178282358752905265871968616174607896940999630970399365863301560903234074256612770961995506543145654608679776298820994122180749637727699874775718952025937560499093402473856716730216182136245138825533994720582594032792115497553596962153372040230142456419066572394674897978226190102911110944922983399743380435843221425311581057402222926721441265175584166380984952820044875257104231525481805061865170851042342211668097962596760588679073180972424481129351000285925664108592377056788807964668541352469020762283931755427925918484889835886532192677700361197742546512575621977298371210409079825246883281332188181199517776706167852752756449573989646012597159264532906801484392739878404806887493435612160448349925238401332958382381823266480125089902310615937553531356914149833070700124977462821640696961414514345255938075376463592905816447412807564257410687606017658718570604197486516176788380251663677330793622320278215031210255944000513066932527161590512629854718876030082852658668626012742824038379646504472261714576637463531970719614669778906978798785800386454426489648349145082190595837573867780332724350834906818658428830204739479669633989093215894679620008038545989631815498131663863219858342730127334428134855229396269712835445808582242355727728783089810616730538268820542431346963786542304824905988625802440232718634582063301359394853404841038714915072863759292972155211618376201969150626563872845115070348812539466019590565142414296382258163082377139944547491198263283101660262548275448724674892766528013333516469484716092787203152141743494984533013025313309583451328256065201357685973355817863130866838650014804574952226823433326924767212159992976334382466169089835573101295288048530691450067581081093861799787408433395672118363607202241583914381388711781821819420300274779380499851655860481328543774538178102513938075562197361076299319651570453589266249299670392244419396947887866937704652304414394305770228152707780461908141561749904633201050109882743552682316398032488135901706022987130172424228900958097754886776883802843651114985715475788404914534334228767252304951467773518082544944306273051763483218558814397992752781296126331688896358055789584409466063072617942937605441341629682830135953450830476140416376090157674752109317574146769670747938403832952048512895125951551539189062951633046236068282610098432989452479681699515264116312037408925139249036904011244153281230074990087283955038482159445147211045441805629392662194907419317155247822876103696753598583664027737852755835923858593564463686159965703721629031834052603180963864603570509022052403032506103953424914776603523716973389834850648374005799795125526710630361941660556861919133381828561759483466110016022300892983307964871406104450005023312042903428415807194172297882155470706058498568378956102369196617310505529105478261013348777026454424467234625548623043625612048511178960345072868633435231612400238761269035370436336268724268025995114503051899767714615923809855225943135342898939624208537632989260302848316598601918775458592821429762391140791391141936042114352839065332587993210127241204066473972857166088079020414881626552745011817156281136632826398686585903973014769310420051225834792872101288789571949033241277566676848113126718056173122065290972737485320547257840227052304793404351072761193409248689448280164418787274904138953786055725692132970036362053567365143725124191676784319293292995886828504055991396981819990643198738672213516248116387221693189740494204270449252225295207431569401709085859978198112896836329041704692811140895462331332948582476288723392780855003223530527811878384319459002131278460287296083892084962302997654215645489539939918551644148314231433033656729542391975436564656307329847063985605220952257923576208442427815325036974027156420103285988763897990036739926770942242162360779380286745005014337957736321424919553972924378085702486508461104069569110687853032300575484307544452484967975494816158125058488984511140926773571159346863687072989917279072398226951533159984819381063083982607501712581351628974871457023567339497999476282920245694084944325085486439093702718908644498328663599258504337791698187170744058987138662054670008708309033875271333671155460494683751829026566378886049591802665612359938389170579316066012170136076680285052697206831091247919874921334541955414973873320677520139774708455895097734413748604899899847812915337259513191258487044561557675546748370498591098816905687157043286033592466627594659832143047474711793598386222987893929707629964410367145975517171060254067504515043610894261987470638890953948666851290680820197875061511387184709536495890391633241025800846250887762955901080824357019528836336500633040275360115166889320242317315442445924410182694204835891022907477636446933211503044396241034350793683212749653221509583313733368908129388848470895906716703554881587816025438152381721276260350078066643453193282360231858582792777646993019936621880811699591547221242497303269087314657380374782587001645137027894194860283247708576022614283609510019932113073393683789461484105778429546301084195464781692930432261212535529451973698381259662212496352698500932732869227187149562289699384105035610238524382695895642827125521286395550222140966785497196080289136775513978971300830650333636331941731680201940274855936218270575724546397206821382495691264198495588829827022615124397727114287032342214303309062294535970269248062816335207010621521704448058732036493942426942365372454693616808112899086654304578296717035590685596716711004297164469280763084620799813638973200709015550782039488794396359084266246780655258246531077891688004358008299693241899038007125285578155212455579703774970686111764337580704390486316528425908931695755613533974100125791838015880382763080584421900320661373922590291444523712614374777441264133463000491053483655611277798258154639419619975772915516602567963345167522498288590251827661870169780348362505289252744977217515111185055094625128239155712101333138878444158500738803659625014824248106389583203683255182316062591945784654588467265753694114424653688201228291456810040574497106987814142882899556333898015104277521887614637664680116294823517290917789806234501330358113329679968916060303053440505013375927032102395995988110626852147042910493655010569428957469906006381781224907133027574626424650803210752113071286870876537881126923216567168268394099270606093542537810305148341156633647748492256974921783126110245603070933257889755123545569799505372698510778978280716525645879863472505147681188031600147841847809238747398619620708762557738337650117360719045992733263487195462957068822873716108673619202476532526461816652940954707865944442311431260332697338486563450073901350767994747638002762897194431960330918384783107621478056504340545546464942875193466257398059139061917954878864302319938325329711488721496412679426457783881250668437370562401799424680627964035119347818667447531993607488352642349546090834645450521021442452522411319901008474346528046881566641721612218393592444467456888370996751895418805723687363124855947388296072013457370511589952603684688999762088900453963398967402575332191621699711420505344192875458856706336816448467673908682574784531945239558877934174962555094232155349606384141044730884644829055184902760268764674485358139729251045365811718753172740946953565752717670575368993280973628762945679170171532620325573121857092234090053583287460512642906938273599787221367180504005915984330929134690784441872092194686899005557155522175136395708512754771949848757506614530609898792825993184922849675885679023203756108844262962826301437516324312426403681474960787518254496292961095397133453015761020382209306673441145722306265168804516575929616144920429733716867075047627687780588044192918520211433632970258820791829202265833569246114150655308749570754130387987367582352484682399827511339176016708755859265954669857735367936984038002424122090025244692923069407040434098923855001973917522093286833578106808522878456428960407656465891340681215051571793226991433403972645789337190334456961041393172087700005763335273956691426276258270275913965540232105308649442177182309985960940915709492153308002140186554287210485936604158618686669875812783212544569568878412920646497060160055584107449420163020689176170308426021682464440086273016548351345326548885738061422201742847987608994767324116634503766454611612919839817081268613548078619439285385804944012852065015435780737890578631583249454792459021381392777879726259839723759001342855433637355515281317962506649287591472462218572368037315100434842211120872240479074231760037809297874545799267440953532899452960771414151823060218993871787223815959287014260601948455461541816681802534170518751365159458691140136518498026280892856008857598954131925623666222466050002719140579145194609806449802683639447609176251066262323806684706782671450476839007925327195943860572560537649794255697041032079951278129996056166762450543070484480192451971355227568246993023139446731772140105794402683372961057316740634802209304439950867346245490128479135211714445115802929069663150709697998202268962287322200531418022870479297776931673615607428361091012990200872238462196075394486286635410865036553735558295469636753997851601661893097160605332423359459120201504818069746454820021507862878634315775509871062886635130207588659217577239239189305786577167383916616589069054893712619573716112528800606653650207568706192675991168625616365440905403179448859581820480702480958561639798619674223112754110988677835712903938549137760573178657498737404469805469364820341229301733077660989045511194842122741092134917103693402547888891861997980477710836961017330223888311217480041926361172746841224912462559185380905811775367269184249333568758649151991123440242694348215730118401720702124774402444854699824472873793583449967194178501566862018514420455236686254615358659277231949670898280170377060770492833980004269346947839703286649269879737674898710591704148083212703079846984263446227522246788476963583118933514915460992978117744975855253035493633370496735340546924867106356014171320549858690078875882991924658138573398298002547671358881832934287351057973858270969732232243162474506062020301815310763850690233715024469080728277048845226426948870518136894093378914663244514867664814585954041694593553039511613170106709530478311257180015154335375475307579188058485958226473641211356045037122310229905181230185293470066728224740560153233550332395000066555655543265861739019757370375901573685587371529863361688369660708842034597673424771632071477288637206015562177802399528085760942508686739746617557758618730782781963013366168086878644690114613641379789447922968480080313645459684259071721807285022741636843648824885173223849239031158522668037897741347504927257804281784022326019409643619256403471270992995414270386444316528538982161983926655244618792147145075576929726587456129449028001491742600962097800797386064920528734819264925240417901523847222385388401671728895216620865633591048010555655355318612271017898666699863593935436252882922532331901701748130125756601361506491660891330926316862860427044271121236956694439222251998257767705160342872821839562034344306022319622136738642205617289326546169879631380477731529001245900378411945789851310253159884745456778616730298936729471776336004087093311693125660802362493130495949128228545718926532066556383604674787083691704667366607080531759183690586498454278015728323156042877088804856839963207906267769707823242470980799160230245269055766096163648276738842261351752721319217246151027377958939273625794637603297762241392044326321587803294688964078602238335283577247611843198542705943505459138068880536923375932286649256372854977188814128225908216413353240408216503436827303337333346535598060017221870326309767168852222928670221318851102054165162329795390257658758582099025036036362367654756636621469082158578932194702670536285450826809870134546811137977461908315814891863759828490482736727736044805564962557000610888633868647019853857251568589090511144258328530998037569204095329502208878094640080825936558938896497429317755905657403757260185410891893525789101842484493891126778751959636502766586030001488016231076003583748865541319407636170935153775282972918918630505987664933729455508465219063112115579275431589955410075874354580729272928654002191086845949613316349010150129940020143453230935212348000126793800303412026639501386558285509952783720183351534285688457238406582133484316137577556541786127814452245016422465720078049690605724331664072969173498612732074763194133564436388503112505547354834166164454154580868512574674954244382354190621525436853144177535563461032381475147945473951876421243563201298206626873533390401304375291321305770505371797588653810300881457866964604805334663888635936675959149974287836119790351733219976199685322636028657957395783969763456508825640806163080934182319827613462041889162441465192013866100428106643349262851447511248605303022935413252906857029827677360372845505592176975736519967067180208584899403322856764383942792159067690847927894830562513748023592531859245035696613765258463419313059843295646045462335990825342057659892547757825051090819459560620716830244279368106497140021565614694195096146202039436391940595054964694198714857482927897736493825457119207892118794676117547757702115042304814041545795223980093168508896653863266400924201161805741945227427432928322663294354467133613456178247160977409762444437640949965185573398059843540848158608938410147479272402648220047383264188838933457471219479355765905584223273150241345093766472152474036278847714002554254911812526364106921752155807487807557168724139209611249524077890926234939511781954357984806056704215915395747974866565783162467751335867738662669493381806681715648298044726309186638394420032285886288606930227141798879749600705754270131010682661410289248299550233897129995811136552160230132709835485227089505663542347426010350158721674971282402484124314881646901309652351661008601602005768508631299593914283346767542954341653588818970396394191550629290733812485897380256128687639985888833020886600292942645312441932363091060209920151889782794059484361424988907726683523826017065482657581849066023942266168344349365367739180099964146235981009442226688963489434634106372571976823728953396557046409965233631171414592329397621339089749205279196846626072298024929400650837790702292753325660010105727193423469119825089900646146123200891994151701010876211727688052040072512613524634465812284000707671454527840946650954540297723201767747991288837582712888021215761966136475188707424882359025388176605087988225320280562730109056486789383968878081605122342303380573725467714028261350953814992675852912965067876072219749171354066238670323324679706599562657464066454964792781994802233082010931189510893546637108382048173596658027666018182690481187099728173461444957257915239114671469936541300040857481714767089422502033495106204383362963869425509123628254563446348448474351751390326978931663331321001644457531831719262898427513687743161994797333326317009981387113087387634011515862079085397869080540324598657574620872976159631583101304269137410240215097352265709736395178067789587203151363894900043818100897905357867506181030013323176431248280808718828868316867204200258588554334526312308537611391845302471757249251425245117623215714894102370812796954209497661738993337104102722852786125299935883276010672916605440594044914363918321249549100683822122043613639860656226236923389147600027194482401447152211403538092551088190444310008719717262175863726449762990386479147165672178615515901591163073758454750966110327827448917528410480946338805323068999389458135695991095235644696556508002745327334147545173035935682825757467523249068960718385948196772953280078350712868232524582594922967978580503669011622650519584835051770276141783196882232113440083618948261860688907091099030618814007849734075852096825540703147651462679644565009135984875975226772634502246319023423527784906739401383706175409704496761245151723628541886951484082488208467737556498397462743147018454729766326880418883987116639754692343321612486183716392978466282994178404301822700232690570881444396944093109290416653257399016965361439200015719828037050528659075366721189927222471600156167370968435381720449456794851558193946124830867482340705476911865633989907306157454706542770088954636663676155647495494192235033143025277419625521013956055002510158848999059592182343131048393007750293489516190449722647257946708028900186696131003615125056335409006474936061719382408731260160050779039488372058968862395989873902536201318564700672976055889877474329841341919759893459073579730860319632341957790371715403776894179401396401847331824325411265902978040084469493607862232630129789892169371113373492183806178028172696907397776766403636695202085172950950755671963537062929417750172002136213154890379047404650178307862827548136722793440755017885830757771845070097524111822055667705387831978723650603206847412124591773230432187714719405390656145934740134893685855613685264404316737126469893813260853323816030925867007017903972165643575007223366713887341693119227735575659977285313358180970286304102078323461264903706417906610652255333563693211646540906184913951564986658958881380440658031823729369897160688034283114179071899589863819623813530791882288973253617605176836251281040166640472598173732333292146194533579123859676495697868387093342606502198471889156724571203128363549480193659311811006423688003768734326961662091774266970012607737188586869664055233015336495928193053634078208717475646066096268715176051438902545927059811502145091653095404307508787331116937905173274308884711470533360945766908746028660796293476693900322151920158203880347630896723998608861654956715401544027613143599611315122320080982338848860583817775661249232107601852467953472600394353659008455983308608596753753812596741585891597830179338232061242130685011860816910267641070796617584358609725308808767631612291448160524115796229271755608510489048093987396447812521348987790586116186713255266502602707798806169868462400072676653052848228277672882591797384368789227268491346998526612972587149273703119924034153985694422717744313212096149750987674942013001724925891627217698122388088128063268877065436910001697057068109253671916340362926316257763171317828016962869858050448848928637345364169810578831596831112949721156495814808560020621042636591390017676444878512384621702088348774861372995152206958693998192674729416166708839595803288888683411985227519525782629969290110594103021522623204070581233792236940274637959120392737352343388425456365515419863547734042865877558729939699718269092755531702503968069254662349560074297346046886649154520135131184946931679613543100977556109858012340530577469351958397920426153873455346236128609655964099247492352121890054158507455780511381255914083051211943178618599562925259984348360337748697335951978186734536783002445800467712581086682122846410032742930995622933820123111370294140487640505243445442140500604470933421445502493163552441055008940496490991275217682438244056753914858945830386335862023892293256141656034695555693216846567070407805111128661219554410032957584304484073117852887642345041533704596187926214824959618344920508260258316520656581197495532117255668289609353091792588310855751340228545483753028887521476696142409510760017812250442172073904269833589899779073757608328007797061034673017487096807884471354774872515094828174272218447557758189050146427464628324335347085395268875582623686813731045242222566025357464217515358577856785361960309330183552162009614181974322164454030355924295665067189111659383203615256227525300612451068651492992321385430190067352494526088132164921060911111282646562015197400341223215839426313001835959280986915603632974386545744905727976322000733175112432625707675553840786989480334744114466116896241005474572619866398203541558758998797037586176620053408090122079940254995325349730937334266809110581458744463329582044587360667827005530377942776744260978218209038784708780509901082013681155944365005373885415481738981148319363547344324762541211964393992996317113497157835058557870007989751428534183415718780257665439688889955987401812661625915517921476291675560964935866942109350118378368367361581614419460235870003857561919582534670096529038574305147564165860017621310822384228690276393944229280796675671465358911394942967900392674084024819151338691630991623128282064981021200446441969571533857385486205567884077132070583323259408384485928503101857352750584261620628136885469621886539286375028370026724749922196475006938436045431946452748961334627261047550469632705691282445964980908996560019641951612796344313927386185107323813130057820920829495107386926852330270886798730968569242091790997898472313834835459404342251397979891972115481114261332673608697745486530832755506248785226248711459132236852853864149261849860690272230182119841988200916426776164812567027761176756955955697209545890160536299268641902614681534345016613555355443648567870395234327877744010023934578466385982575993208127185595380483420895180964155825618175461074629799773798219527120645798959712141180582413103689932394950661403339363811417958069555113884483722895125565211685742572389141576703080847012291647573757797151600536356082670879556656047837264894393234970277253820694335252056679220282270714314834459451423144387230286430089348787713219501235087722674609240353847769094263491082136752899822175530370583923162581167251802742731810737339347289291217294817053817652309177046357224703432181933711573149608524636069558094369705878222753716775956320919898145612791005960624951822474046315033361882074754296933069841235920284856417464508373037913293460973660574245398286939278549674683114060308018491609939570057835762055099440246074487072652253812653824041855248371389732364401651212580521213978180792610798224514825774737639333903410717550925707811789639977073865069946441811517869924546986645025138372158749528406039280427350044238765290473867380513231320148754751540557842441063142264671733633639886575269463618934637157497097947283116876301726515592400181280305679299462692748379241349415764887806645100231880842260921970634713966692176973204712698271892623894757202935663939852605259673973195779217602545153230610205100879187468366595473603023149811407098818420751069784324413039110404573083405084913323772109711253186940868127501585292522389488697514832778900971909475437564606473415658983864575984602208887221675580931450263117458469185773805807998824920249094056325241559278331477758037257328379788768632199387641540434026868594348167024882823505044082930123794431283716175554805609005468752824363839359669463826841364337037655070789092859732862230267378831269234111513606051563687289356650240125446075345976003096109636546316627177594118350661678620011000346202204161573706904867616021551928511984922428256029911554764234194510153795781043209634763640161347040496053164563359794139152711422551751243616124353722776838246901379171281897487736803650555523485126306873742137963984586988843154078962530312856343346604177372696438769215635790572278770731463296708881752816263341368246205611732441795232602358900846637564924749875497167637616819340605234484461139764101229125191509977040124839060614055449037631246973565932411575877444115574276870749091286995431575632140833549005034809999764140368854657936894890142451639347455873660536005929856453310373329712017417644165630503439231895917336045105972351853893417231027544852518884080870641115193976019968646057459496188448915908212613389809365701726668082569542622024194258043953417126436240840735577823516032012620460894571765413735869219108613647176624585838620343173514331918299862933030058411473108303242063628233979900215773171775138628948663836340176481324253424846948849997438679260178662674721413302437110492706526547808752031463751262896462145663951797794893297615179761491764913509913791122294015499439535942474427497904008850669003744202332301169395074238568779646289190781776522927831282279513676589906602468512172848029002103901717113801132882130009757235707070265465777861797084218102628705767672665547796401025864524079789718745998153429288647120753079552988949089781981745305545792058660727636005635447286755917171190684296034383260248536629728693402247851945648879187534489045437531024862675611259074939576640366513014747733330458524318142806099757598381763993919545712055934101632225187606882961531847549310687314079285005813507769226035309156258192831627896018476619631149882994020559646513101573511239721552601150160924842199167129631752106663322853352375379641568104574471070740387547298705637151193424296008612401224668066846216222385361478865422191380484094399211547914773102102205153259365708201565418358046299567053707502026563446685261902127639355809089539883467851137174050057063689786250845969308345742741327774686171608243168299254276468210934834152552632332988849193273636508453642260483637788646154945988357170364194089293588868485847284615671130632998681666927255726220785923745454367482628515783574071945520262115782926389605153364627338494300816158525089582115270639034001165057586941038214818193651172028076138813457553231527747892938015498808257784862167160610367810408461030816331853975137525669499432512616640137009001129272647154983719333579144962318514384961647653121586804560712344697187434126399633048955811344708635899807601386955156379259782496918950934752403199033358930746343712625188338552660047106803078219904989940456265735853517867881155145419234384812177245263838839994721956600040464502957065235569041830608755372073653629622081188819889305767299128305264051800854406894699095493069600604371018165939295303977886983093000157398803815000499217309696244382025162398798751396336552551088768668401453027722067706318723538722506153558093416151680963558029151816605025828029091178835191691871194191398903035554315520921058726164181267419721781884944823159895860341266317620259729009761811483987073749311306073240195181561183368368024175379137376462757300926684294576291085389389549435181114554040935269010203970406453917947522968583488916326361994976175894443105902485417989879950265912303344474270320006198739745185096557546148038608925006629621622001075134922494183146680477874297183659080132638653538488088963516980623386353317293962432261890795011702125425343598806316349646152978112658403940166112428009690286196421093027996913677011607701806241898143497603302694123005589572726563188541637308588772041701840840079581408291666986129291945773120589789024016291509125026841892654005010140353377224993612373520185079007223210424720973762676531596264889542270835157610472650106447616214694975951521378441746843735150223804650881997802117888871286702577061335231469269412143720736998295632146262330462708825716445933643029545213080791734949618529446827306364763681455267270768950724866701177228256857101662714100606183903464843761595519535133824623906906317256909241129102966975169082787087233657590083484594060232317074988050822817848171485260421871147160420861273061874444336478421980479357587552940824894672944957629252418460100169390551385849872950978627776375946004378715114869462825227945971695996642978857281973859177013275977026161353755402252117128566025939738902693277964587195479526271387815703173420426831264896813591718520440880891107024812907038679960633530313261462907692119899830365588186287048372989231135357673461168154172936703441834932370010419591227713151586960899066165365804655192563773176502528809785527644083431431728599250984489062309331901319357573292981393336650016284168710758889673668516028184045381306491181680237265971168983419145661779029067818622347928460007406389430590670450742876186671578729895835761776414860347324804482422508330009731545084125380386966934900214519181197253165116604059020593700043063634329504780675750278265789558167008149592668032549635997742223484329788581493445026035312190316633745957391789216468449849225851011068297268068946723873044444886349782658777457406341957199839262256876466237430832383585960798077797412535381918692716597663638883014439490716238773854708344819010732324532863569296010808975862915253569447159358546642641720367979005798637252787875681742155348862995301727354045268252480948486226139275587081309857583248616707248313652635664743668493107319200758800914480717543668235260826844860967548972876128420768835626682012296181993652055434907547708763059252539085579103037654801634351742476235799630834607108763244971613238262475216004877919652394463823234262310318117300453467332303876246376707484050867142815828149391123754894116154850211776991739993074428072113896474981908954155053401749279720657292849257503250262674804067970570811048101062924804506169826632799076980435487943339211411276989818836289285490071152336813796853915382223699869345989086215531725663033923591772026076483769730319292359680477296599874092445386070832739755125095516514126060262775387441030451330056170973013189932108990564225589406435845939479987268653857379943755566325132791038886507863766056893632539823179087081170934130065877870102853417006450652328272079692016258419531661002127680990195341305635018578948902544400804525145859093955605001662796241514261754328791395017881076846349250762022477846414337389722800816738688584657569068337526982369287018835962368377411937573284886575192368642538320248044727770757132662548968876755699770831893589379358949831783544601231210588128247191202630767975642290798549525773087253368694398343951320637526008877989308972249785711242292774994770525817899671324465286253816052622161375231745252806291338304386917164820926482675683458776081721622991759286721732474849463118377356657263306715315894928938689716520064394844195361881795424670467744636581948457872057513179403052317262159905487863435488287947465232944023977906991522314087754139390906498536028603846851595866532337255634199972681683527806964992043717305669660711477318900384687666357602449277405161710537462961425067023156627778142074800258933226957819731779214080435530613832921424964293131940288535762401521901678596051623689172382693211663700621432070032523753770250521657168744139921493930282073159561660616309829859812181381072822944327940838320352029742311998949679105145575673880326041838262320853961639861766810327606514965066998360078385133575370687443121702059171241251268216939694951730594566904313966804141454807648098701638106784552989269133656156524002717011958054102696098904273279135261343390569008933412638197894522535384609885763094364168837804188936521863245059921073901290026580938500968756644644432817843748413672379639501167084559208234701060754235921931061479867512579102851279754981608992619890901911525603871765049653643378084964061856062247576648665030223162545849468825525773294861831905940439106835525873536261163130715210488731908597979758133899191144341488141658198083699830404281331500833118955649095097971374750980243099874067978428840570755904091998717603913623317985677877525298838388975115109758795975073347202242007955257995035534236533714608622347113454540900986950948653649230653273532857915943857148656051790350602123942335913559955683494443750304765565390128149234248950328004422523993867039258335146670656916461110066410173227573396342477949176960464654949537483736126389495400938778273994037076300085505814199538778724644916729013514656892255019800296691144981160666079759537785660083828913745555757562200488639477098977642575740497586897981375862771375215653154302143747293030366396362688817599950140129173737751678002828543337867751999244697927001062456132838060904965293550491250007767168859595691147027537268754838035864480452427778238103976564233335492991943135213564165079874596041126696137040967115840646728659920453426987644721513763083627263641468010416496510972615341214210345268519022078236478582625275463132059550889398930813427488961406061400394505203735921778199429993281067261017323719583297885013596143005744328293175185062962898867440699935587502230324264857413092149759068232025286289399223175684712119982745326949149558330101923988161938923756920474430168301328096327299683368160955552908012004835122498115440602243969082621169257330810483945973693755944175782790101435414411287708632372441618751495423611146362609767242946498867740448108182476733975359421273327773520933280479110973677594430852596612346921286350875513456579865785618946836804703538031473520781738407952115179866663965001820263070040062385862176752675958705764820400373550875381210313231652206150060961028332159057387693458871187078176766079335865098131731128226883446752965544507986427225857454995248071605100285857321697515081155267962886600042159852007308228210681659779160595050501802342977391610829617498041609359608163364810035300118045277879507663360830559110353938073098549887409886585049951845003742580022137713297584767453020519320326374206876306068842148897582672967365616200084409518266451054403669748869657712020009481763833395500742719924801059453529867059915591930524545730003428522619515233869451190344734719104763339676688990745150002446839645241163877914815557739232574440870990664970908960195879406556775844590556768663822841919086163128901078434347408504042458488100494462332601814094817890034327071596010689359142269188315866966587485648895077541456887830471507073063862906755057534718051971827463511459151202454442092231811989762837174881332910981710898962401185067150694770085575055034562129348472922192493371828241500076343461733479367937339195288604796397403768436160690867071571654430020807574327935032679928227323905186385352369707573566654505107580163815371299717180841762220602560546293601610919021027798756535471585972192844957136698269530605911963153338070953415567123502926113358549576678665937828271889543310736287686795587476090677205055752690908205005559409139745967316803556775704244539584820743890376776127105570880499364456619831175433996525507734556566793891668707767519689592917000279829886328728765827819951096012276778839718177862907777698596088539520925755610962185298320762713869780410487918790119926424735331263563556669808744134342336466912283774132684777335043033353630812437057850234630200338039224205101415832771262714823154406950035047666494631408935388863567951925866706289982339237174626669610105585030364658969997915896976432794058848458297719779678341731414122640720098705229377352154150140930534470980591826964633992673262456359403954910020772802270584013567594456355353736551884758088457748813830232443884185969915436955523443983152391469481996348682327759106210846549280942111020236141731427026653829214247915511305940904496218826746192704414244546303503479543431271667393910622224949332128820910077803486113177528297237541694786731436441352605580457129381894207270764137147297617833693817409086332901447801887848605801609933077045596494648699595192612247526982085445159074239457723807585743281397761085941872833728182448681286037913631275311417518805058222640128298269417700992304211115344539064605499284963623807487855194355320160881360687595953674041026473854164684674300057633572732852719585594240604844901956442523877022811506817077440552850984517171625122012472588105640389294757556515076679220844887429834915013659575039569767450968275193672074217184694706816316773521852389124148942815842332470169257242607353919635265733835759436605871818337927149975249496767264948799966650707594132090184798834486179934154031415322312043486039010173545926086665106452645441534728209269985918076018723451855466446528256541998325250184939668693348341811361529008841140224503774617872359928374888560083885439215525638108318469755564034732422400421825861945772002442007290967434839069518635862654121231274689433177744067106536607257346266389155754817631092463337096250604337656430173882400737650657330238456146888610039977782607575502597650669143854997792520148641337792631720578546964553127242032004442325599105019318646175943379262634540498391499137999871793758512010246392894258784526879704378367271504870206876384979133711964876391381121921394544776106392078427775124083226215739791321155411592311792966784092224611522545646861566019058747501844717108255515490091252442714962021103006476069426862439830020392082689891919248522992216320325807329924287357389400782615686246308529596028693684255653169254475985898299909214903930854877926433631906632356949909450625760845766877648576498055845065489856999835688971807185060283175554202069380829142579026869619606050430463376957252853756150935634551400162672094845197607687241773944745484943671818684210532027660351414279361435937412661960728945632628097093434371529381918815620566840251934927699833903212725345755012986864141781734421334284457293808300350727804358433888807986506727882953394174231782724453263310294454704457498542991806798786214646791643758303829259014303683922132066863731493608708545530183444425024520399726908806873645688138716563862122460233530695684037112015974691930263975371514227424010135136076105316281164300490143952183536184531932185834336583129357811562131810919543068023282139636519792395208055330754279928708652434474282642506057640461643688892301711350537741232781604729021958594406589264625758440895757577071501448320662948497467109173621925644365675655089990046836518634142362754466538421537386260745392931047221225657997289060325254015631961841769192686452261929420598850930055855204014093445248777029598191203600341658792096855650957039708774063963918961191772834274375697223391759055710001960385138061306056417049933435212641783990322267703661687613928807028642704023142163651207548719469896185271416637054786389055532494117590745646344049596908736965597264413367808399361490403121013738302042293008731614322594598499289630199142454410305306249732299387324134221027926778844619320709179072064716868299771401990441836016672168436154552440235765532392500946985757066358995398803190614021766816742055913006158198101446028553479306473845418468530059425460375096948431713806737823726483231766507438733263808538601086593135310629390796185701037481643745158361100672914353772728799331883421006179992584676905093305931669899287771219324689797302912626936852082280092795816983761009689038034637106004890837956205390124668970615462289386797513576630777748843964788360100308045536473310338096585925295694221449646962281593439209613484221697106463030719029698167030358062147838596323108279174019051710226369196720927047520261459853328850107418655874375046524862266476650571854909460076797835211792439992414689837142197390580570159241340147994692202951369831679382008087740138494918316631525816436796136535925688523418982814940528994020877450752646654075847308499842470225207595990639179160163983029445960205956179221344327917492125932379106221471532344705079037316534135916429261301971745147470823917094981469932389173740837374022821448887431504356982304880388522145954141889115512754145662782198043155568310398396901125895352465789474181956383878154197754130449608530346167811948648154586841222222387131700567548475600931962290386024509040303943814179600444919738023609333664917862916808774725296382273328215507057918812779272413516037798386427837709361663524417191415165338899233393202750514631413523887340026286499664725435141816622627109308970365586196813949534504575165698920983129600222764575046370815906647104495040034117412923848174528387810328276364746400220916086614633651892335598974891412792822143685793937832355375754339403710486580890096407532041892110313325378743381777930873981806723884062361653006363967271812417232892496013077442984447576599570754611110655698001226649095025497019589876597697038153438359868618092115069501162526576312252006089249859876144141960957148842016529594154956542165976409070510831855218920515845094520751101942895509301288544947689842933844281435481890118644141520842655557298034976601892028532217995053766623589816129897171060932681862840761142689422522073615921845786317840959185995265776720521625941454563679094473815173742892572517344683953867325574019196757305258758678794217152947851698960217685206059660304064084027891724956636023268100790515317564920307829713827124513702317292793244256259433892517581002976296906211157616707856368950754855766558527797334852927802124118275274802264903147236786135165591701035429572088257134176261951586773917957058908468197501052437561504554840983355412591618908463566425040809445294575665650092326331922100111778370703756765915889958021521268399150157852031237697466188193658703388300403998052337769654660943552650091594900129246962189269144602553364129377219216977318242603873603016415841018888918167514391257559090560343718527148348037766113750157971235923262422976261555192440330681168893599190414668050088878793251563328732144603538054972421837894209033615787985748547315928181748135465101814611097501866350558875650754086602835094115014876821420279859172537769655920359061589460997750878548405198745978753737147360476654606651557179398608031158691992681968471423769103534474418663508732244663966825083894763088859083310533625534912177339705038471312771344400759120115487329292421013770096006096638105086399504418937987074073639407967457202131824987687226333191845521733118350039100559594261537249494981755428829200507461752206581565790904907590851455129419585475882531828247270563487874101669639219820938938187067659205678240823534512010246477330802656903474099007680736857898845813652765143320724176418702902943442152103880795948056428424971323158823551432023677484744053986799576296976930647511915937149715192381607425890148846587672085481982430392976911551854079640737257797939548061729180323901902913211303975327304413830128230723902561719119240930979091632201564743979705593409598578913127696525182878904862137387977609986405616748709775769246260778520409028126308971925289069104854579104230761053996401739375666132288792359301808004767082379835449415244086850003529166941130830042862278622912122257402116698648638871558364030604011393161645731719851274787788201451484519977461769915254933337259264318384789967481301789438390055269224336639532304472379502226181200827533262808124001597896772214563557807395207276449264285419690164634216587634808482739849874939472294383506000711815363200866309622331187734195732108781850602127068298474958944577436974767364296981512598158397277374840517871351736531029877172069106909540687774668232323351759817142886757137412333603324654925262325898985659145746744525448968680705903300617669745400464849403705011613094952518264918593097219097868434857668542285760466111981079698583770787709538524298905945909355070539435952693880891420001626409401744621685802965343069827294065689906741235955874129602803941211836363470206236323225999786109819628210365455984908571487327036578690124699962960266663095657354059614223197505568229906896451943230014567352444645319291704999177106348375517542316967192418610036108072544552886293009711537497615456422334476253239083594850774765285078044775658585653944733958962950360592547355872312298027640564140642052673009038279508583550818468183001216989727932284472436474929047651598920043932628377438042532121327426266931178022219421586408417044084155792337829650115605072830819964902341985223870857566586688281109278169759764072473308723928396363287825686703739195975620725954230240211141261512758990848519036044249662633233202179714138533930919540517458137589769030213732610727234714054187276802567834367456049359293158325106270132566753933203034842130441714461046224291201883898106365191025782569281038396536264783303055389220575349161160434934870199929587569283442824232878533222741939047644080072960460081602757328590564083524676296031035017950994218741367727488331546048464634609393814984422436399629895724470614289544683614967993332797658028670990497226133735893955981483182740758734600215698466843219450077501469743944127978375366727483422080188733368334675938584364790889664524726027992109983126048407057123280079628602314187279078638367425827725138448283450373103279859790544281126500460737601425257155704322826957932777866755061722502349172167045232172932918549057916862980430423318111975855011864634852998229228215602474056926417929551509115439795904302864264809598722421789958688257152241298208097476165467488818222866307440457573231518599106016796452868506312128070459580201865972869276572125620932791140331976861987923043108238664960575197031029566971861517219194739772911572203431431439099184775644031144794628962312515420370162376296306786764196073675088718881853250637062134454177469376029878999197039978187473775726107783852065971277549693308274512605922087073275238197382864010324957213437273258185562513429476501717519467989136743975710823002637644205348393377893807120048904118146058172426220553728761583659864681408049377522549513246349648202042711613289133670122041971148980606234696906252166296071941002673223111000714039276158569718519139185620100705868235605503301248769125734167284244097829047007209385954573225279702880029303063242328947788019357809553196691375851357036311651741523991969109403326065439070778783390818259613170093087126297343818128627200023898215343389250671780341289914255765624369382754829160857046835273229264798383428356124307287339099942587273962553962598982928696388709279630869660864019863813887804871826235962622915840747322477379051834045502800598229798097805062051266997919957911942172690042189223499481593654795638727470851892275635114972338055274116147531839556399074902451516951830095249771165894494917914641500168169754242468238922370605595887166454370989001846174067954824123513215381342541114752084869320224668748586843010743683867494182734709268816544649969693449603398160904175516528954014297970408848637097566079227227759725052236134844383426686025170784732087979706505252430616641305632218238961775782315674801399857635655663653337067940699233238037772328910545019587340839197515636231250753373262673703834385533062942980697163675732633408598446213523767746722511186841701006153861195397843554604688618413742169341265587367122505447419856606696193834691440879853877645810285088265498897441018968206960810215190001596062704258339397167075768228662939669164551415991528454193111335751651100256274166449239044839436586819762714451723715157665340411141155092582232882264804399114787001864253436010170164603068875596064396010566460713776136309887393717897862290431867231325924039792593074828799990928679931819989247306726668399672082056247912970849226689189508358137084833782671453565358605166776253498496962904917869939352855336296409019812116888362808505389571132123466544246605745433753439754103733468296716961217310218702160676975818506324267165782593924756266604379028160699475155328084420395778828200597443123246805500808651871715314510080024583712575790970197695069290250930643742093099694226093854691825314896855369573466052523993073624346529294206257929170715872055873371684825223980239835995524157922582663123475529977426631054335962290305261532608674836684782318088949360525843851235066798028068221339990760217558776232309291728949113979594284332597490060218041737949477051182346236130359133108365555836793243841395887030669004188993809177061832707996636553021939792904789795307497776031256021785654216263080379915199215640989501760436554124386136218603510728263646577781597590394994454228751192375742950743393716002916089223960644951761488324249369055493609700442651945512021613235079964465990189125081922949144944588843183786049466600927343579720047526550871464009275037672158901962149663340488722379375324022637641621935286460564394725797118686406661949740547198689620855495631659952655221184388250418177707868831666787803822126539131257017263248949571107133938343685991590897496351454783240893630869420036435203843611207710712694892140597788303391558762651392949140406789646577029736443702359624794437369875006443076286512684119822508335289234342810321577519857094227934489386619514108519498624226053760748756263821513415531946650942792550257290743732653466577938009242956100523227092493828492175737962360614159444161059571158375962936835652139892645512452271818681195943606701531273937705509337065121670032532524132607060800380905378885033068919820651347527682763681034362453529702701699337904889589825933715777777595393604387557164949565302144732769937706265385581354474017624777488145159429106873642568719410297738814231331138435254076231803120881468998428748131680260825978405749215672144793577504770280047277341949950751175721644525047467399122400072795039169987614709082952436956572116787397446111803229517148683916704710515654545497129683329430629421115085835022156704523084313248573127316462123202662152839821200662137370766539003503445208947468490500275969512378021239829153363514836980052016642215096713932815802133456246439366202422061274695976778782791043494321813147887637088466301107928528636517936114670281919790655299535756557556757429653639225682818203077108539823075892979005180690133606026180845074165269852547745944296638266407072521848701852938445708369855995959583606836552141668468268929855449985246152405326227984370166034848389234215839470531880235166011307997884398166487240461694732786285937249629653451038122984055790237205784206025710577462678297829737833969594322929111622436154882393663279109882101013356107460259026408454909092511563638777877620359530427187119333637247510134814938168328660375831898374673056892690385690393378852016293869481063737543735527534192229833565333914333903786663560952907626100150502233171763236578618083955241230344198803027651322220421425233336464307321517201077728729402485274451835631798194499380633709678219696566133598071943873150293588894644369842606300595630499420044028381894300393411528722020129639084497459052120353443758630025807208271959404857451639956095977298845736557065617534957405271994761380580227449263137479465062534186226699144683690717629784646170052888801240225037632888272395882888478624877382614531203346828373830056132528717069538096078689505640571840190318465024740339186145615120522794319307743493943736276825913964446250597611260315541481200070418409449503227012600185881788799685280650225985191756570085999657069356818876933722228642735756871214457480228692445896105326033630910417075818788070218899635319570883059199289891481221754763736712935454157489060012324515091642536871017621980957027475034163697495850244640133809930726739219487056117667940138170423281010359267277597309436358098035649513754902802491577140141340640725932772009741959053710071887279131209234672575056420306116884341222429933303066993624625179660994304502467809190146321064895631118426843768508557822670683105623029455522512155600786162011586901944808333140155033461191756862709193761700173071860032655477448071358111470706834549639035432882513224590906985297922326074771084645428387207138038562665798557544718401180200526539878003901546512316031423085098310343244071177409668008789039670623058603143337284763119837898645579241679149529942690877812678870261664276783390061283013903724952450619144628039655228165977489489600088787943898176117361805210398484540533482613795697513191029833945072554245368687308366004088027248908438645238021930262273172033591470846936654216628184157240462249443621090053743733895755372567566556172882809564287141316809877192748806504951385104660748230874829621061466829628574316937155846177606511923610631119943815985799296338422240514650527620131322116627435815558514228950324343437058928029388627423020097382910997880155133637600185534727026784651209582682133905934841574977016997463728636982141513394793718004019534392463871579447445949079627187267086488547527891335345351920976225715604782453782396787380047985607667909786352634503160785862678200912485783949748354151589036795437820353430001077320220239829439272764591450588371137888589882671695608581191147617170895800212564559686808170696571655968003442179625727437913339865252517983876939037197538340897605056340532770919513367402425557698785152625512244501241506623027314993123554385025448443291737656490056153820641213652386713571729521102429733962760114590857145773639488282173476500176163836421145170660067229001614435988384110095421232739211365785456853564815463828234656010549307022042023688253202463150820926370201198927667097755250411501340033253776133048179522106597641767615141398371873588514037597606229006662114828498830696897335310682872249515308199399785797450618316843329313630151990925500793777505281523736156415805802251026976696118285504238033519627602309051764938001980759044910645015301789229456259439937478071228753035311708114074519162931093176731623882724886620028134746546831932032312016625573664619486610226209046712611687330164844202257604994586371896826669726491872383762608570755092905564238463060490889091405653719813053577796341572450133111222655846862518024194683445373142482392443320865830486349208092481481550719494917318821747368823390540635522797387299366545677331408281287144788815518601283355473014799614202370799609683082298510340468394699897554987519106853687218708151036130277636659613358807014336960767582880086493563103808920832650671899377887282496958968690344555398763373276375404128042033338758646965344188376206817201998922378309926648344085851239161475084217318556235456222448100304625658684952343283556665626075401291054987791521896409277020201144612283298697498948339594496610751089915156581578553886235700445599128238037222164070975981764269521960051246394889052121843151593068479432474904864812810638346091835125658304997414004614210003989982380348072933754386142788194806925452917219571929662684047454514510707755664503042560207501490970553622350606416993308057542835410586805936101728678035721412960572278821133256073806577035190518384348569902475603917603426731604806194886157216464493846035344716979724837459954146608322298467212588425832264178423969406068640134523741098590379314846550441079033358196901402978241105897803636436954967997975092744318845117051834202445069934962684533582816676928949380058387380651927256828065615206893970163973905496542966924305742330154680351442264015748679449035033598926100891099445523511564875572775058658862149765934205345431434797198801678893313285934388214456873643641264043763915904769479246672378856949238965890112751891623245299064617842723551393258552076011919918132910303185204909545862678335354093868565358087517048317326984480058543563708271139393914396130813243296395116120536837844111486309879812681565986969448673628556114691603950152510875350562375803074991579755007615101396954519825505962335141976223865109919259991535918227399892306802531692707567285266506776701253251355036165153494548970301536184717684001331830677768888198673028913413103937566037902176609681604458239013277402116631935828305768562475760842885388921725074436088131188519259862256859053390959844011415889890928318490787569902361616438498115757319018518699195876399839281446624521076980580964095328189718970200334199242640559546676176164163393107935967344269415315448926702380205921529365306298612502555130937148749808507405334818309778421716144441573165284426808529576331847705604170039610648831551469776847846781294019004118937375580236212231410829025532188240160611465654352413300010025262349373602221609316965850705671100505240148351552504059677308862089107150052292701413036078222194351942653515725851547971195781137903419915213933559741913739850196117491679279656418894898946130627692056454838198358684673629811144470540330233793878457914286390759376705218393898530215138184090985920582019594391781186238679858418245614451393096722102125892886416544857176242890305570910474959668331037451325355186028951836389847148062687177614593061726011624322482178850892778446109025281354263148217966810301613024755814706383706904680932116301669707550685721169663370296587947163934622423391112325352149962083825376607773637000022855067934096639449699246486828436935915152861478581120408418776975583350606994082350982405409172195566750834596396911158295777643246112727812679471414689281146403156220365629551185147334394462857455381318042713199527309510368952323826447337328940054569439940155725604307622976481596777543876231582108513399446676152445602904452735337451036404042772748834835064407207212737401831472974941597007513590260110315229727308724640625366061648010992232220267941765716504501827178720751539922428652235084182228322207853841780948614622738949249941218823004498509110392774261784350776117121724664014800407549689562275804615369231323612185823128400859318745774354168044126603900088196240032544968544841220900302808147054121560305832767763510372009981784443604997450697658310678997476266675110551164850592096757922988809792657130407398744197000579404937853569636226940290400841339070171500378869707153315242621356362390001154383810977094705313637088210023174633728828635210274227751613869489330507790940306318967707324253689508291372029290451132966221533763560559786808186340704772609275431212316560753548659780357968041151659892114667089571785712436513199997615785664501043544132315179749361381430084168624048624888181899059747857947710888028372778350450460946501018385149872049113714789294746821799295508647257001622086611101664191383119553645435759445366672133263057376504332188862474654947473020458324319645054656997007975615621496644002211183814546242152766340021956767457399485124139922839012314433488367080327810033196717289460351513670004564357676020688302025329787523850826002590109670889715810238322653663875632376853670920153735932982654456798283169660970731236974894247982873424202570240626028824908507108509322118267431448061955096509154990949345909618383222871122300740871883785465838248649967724015285647893999607454202310612490284771705142427369604050052379276279179544751976175127086894678808689007062304935631268026766152142753585067847138790429322398595906218741878458117058457705807302871838645644851243779005109565037981740392545687407685563752625005315686076589429781245606195095063366457028516199032513712926654321029233798133654672395799270333047823652849838087693546973879087136019935713097524975708484557751028999422581025015198926465759904312903824117614701652468269267685121268645378500044090592425982354058560567413624225490632693203277750807299112246441697763467069211821604207739457871385377329835505373361629587271696661956270890426055429188949617184464450110442867255665926175677104174711740048750056286178021488131863237008445564836007386180852459212289865861349213414127563900332184151976895531317244356554912159210294778718985037674633520389937986566545574263889350431625336491264791983050979986908902559081974117658267915291753039631365920413320721033248400191746750569249380167416915157703097817248426246672225977110987937680513546664546995150442881332940665423672597114650630921982898114814831141940688301229593874080900091689116682130076716492693533007116466773072187195357356838950107848245403878069919856485604184868853242077023383511698736206824087878737074298969403132942114667970587164812244565197403417383828719770260229256092910619678478711927451953243734675309066684377653527530932972260499864629957574498787874903419452032812204329110167678928073729043558081315556071387265821680870630341626507514219573058679107580048053028884409253802135139192401654274108633850009931380179256564244684178509536058598299192422213375757545397944296102552049195012710770154135668835795682690233113426197229048526115122550945219707729727126868426415370102855380401266738059788100204447702337343145131509092445513402746329783707517485135277683570729472608958417525424211717657199844063450079530032698383463643980218501667842135167636825726063867740675428980116322424517214921007762434208144111689683198402588090021157742012208367229073049171479798854149315383720328984701286544078457159024277279966219286460891022659551525994720574356854624353529268268610261821168375989387401738305840563774228274011796082377529793724910618987776485523526449767945032737483964987775515523784815369985366842777975670773135220048697454138104223387868943282067328816362388457330196279228227310125289232049740565672099018319908133723194420367144195787328730530047521341403544831804016956204810507207626849866177979014422514726296863757524398114447598006869000090528179372905946136991918970657687734866839766979564349083261985811374588895367781475747693780950329990073518503934072745181857077246349299734184691755162311051510072770254095209952225102855320078887743704306096829319844538742088345359005533260023389257290149932407573189504474717432220619622285836067179938204869766589730088286334318638061004476147245204884264366058338990620479239537173323989508667629765414034125046193566139843293438004844877200619275266323171685286700880424059003577109251093523813830993756879363149348812725796119880582910453593794066747068270332105304193139462188414234646253063156880381954020283768591716633340178020397269787096653583176308245180050300820823059826956214011495537003953058376274283583061852954114874386176418923766060456524710143270099892588225049549040839482279079773547897489306801860386275601615460629999209647281629914016777759096161188537844307635909827657855947883377580990857832440648553515192528616637748759762074248171735354300796372458954985382003510944876398524853159082388277851043303758697852880283546629942033650018359827896711350180020087537527048386429711332241444922047552557121767427719234690836387530518120914628222298660230574545394716845988434420664635602073218834505415539113286311277036889416642633759095332987537660357367785755580625159134505461139141505095823344312591375057423241035648726113369534016050463456537356447113481752215385035041856885730042402925985878862277773251514704882007703248916683603887299660235458177130182434993279554704862043024980524669508046684783928659274754515235646541734583498715539697185349535865468892762091188525160797244995406451190155995467283757004137203677395374027152779646294110021173104434784427714566476090302446861626098678065640093744448748734541569256339071136291184465561197358070187413586078154077056389495570610331938106028627318014216054245244935048570281805647527603173704123488651399682791812951941075300075222080063790651236699839141278664150920373282474561524204881295647443822351571340388662303849394390376623632337188829542926005363378364046387861066278040889887976425542616765040198606814304576397462396578794290515822598109459657150454093162678254118238417520975816912416266963417860701061810714995277099870417721955591031849589264689120647189347250500949407176879195440792309808468746419826218362977863614501933606112555004133957565252735083505190667422440323710436225216166831361710105828488395720431540458202973564527101639324489861239559361758965310363391504278681030137190331603536290998883958716785577020040653584286303763438196343264268890922495994715873417222534092945977631791814307923850805327462789339266012282194537661261864669367649698086200406200751270215913136815429174172684588363980029945924501327914468952823650077148472256406439794518896000045852796820399301439792808550608704645200198280328040050103746232213730336292844288460001558670443765376690904548424141055203034204146663397913294613553858745192121340849529881796647816308885489309221034615066984298212873192320273088732550672509690077502634193165100720179934542530616700613088840709312003556863534540538881056000838168476804556690713945327341255601777567666437015248756428226939906048471593176402352031791935937664973669231086000959614188972322954691200298338738611094824880809292042304223072992956150716335422164577040118362090322578867410847885506568495715152484239007153968895125795417898958141984690215680847035065945169389765017399947756306819858783802964670898442222304451830356501926175189614456225390752219387359088752303820336519522387546162642029769741393938690497960972415399148684985457403066170892913022534161076376836418477988847934792957365770764431572776645456733629261219605251461546010615465285598942998169591147537824286446164941065053222826697607021477300891681544595112927429726028929256024737103136861877086527252835845568649565937144829952806863955312652391215301153405815002406046751343091177585603881296051279908405264774451468138945824451468791296084230397858560592109818595624365108241648177774215109548507725838919443656265111649273560843474746252467121366833902965223336853624308644323835329357875484123814195593468980812134587238241269775273308849155944956600462731215042354869168283918684411600220583600027523787380590478494085136760762743377666980435440143727598767304371528773754069696514317570720501251302992943146646837741285024599868383968464054583063396134974147811489413472107237422903186519221079313927087931245701425810422581419317429677246802785731886738116834054407022242078104340507834649857749464934758228179916230772895390121582042470995948497320209319545498797592383642869707383518558169129314100415938426767248916541637586295875670932003203508093395488567788831986414106788169990507379131371413525175761272242247390116766853507766215748417566883439638410889909936838402192059620145345088317476535015501168329878936057019475716343285909266046104301953743452952629152524853055624905034083282048310408722088279746401298732941584917465755531053510260496575244619580993011058469976285623910067922491351420307466595625461827908050557027730037878976753448376552712046638570975699903898199799659327814280790825557667254834732301429653260401263148512471603868213064815469781058335639589584053706281178242161459908752889705590370916738588929987081688050705155388715130619211921056500115117838579216074356753621302139809900705553657575211457574957227688643003601487983993024644583561908540814769914576573088353041536582331318663822501737092190327379937115141043315885164569413385568072586256631787520015338513321203237241970596725839027429149375929689880894302645639611291923380472935090839405345983466678542978199702746596841449061844697452319267787667843577497432114752269990003052107675603648926912295156205472138079696932818485792400135681656733663689464844391821501054423163792820951135352148570760880961222912648157734376497062920145977876539350038912732357580111997096640398784607373035458666907938077640149731863886017049595536418867892224665280284791539735441114429644140067212152312111906063359997068140194021504638387854717683954113044953759220845404672819813140839752186271967548287021768223844441010107800607886082041386122770951972415376400334657317064495598305030838071363826197241150073321859572602134523702285937911733077503330832335957249129271203126678090942731044667153912814151229089753872311040173819509701353594640197782532392959612296363281309758701497248663217466362417502167681912704837056892862583574628663917775845269957978761226614997051570959511657000229448220624024247939367712355120598504046075374207900081504578248672825537407333420677684895657340940327868328424386168736625321993860604896032921542300681221979320140671691595424216004755935325440675275580755555899292714898138826591564651243088811129799313556486098784158174437151996091693766053405693178016035866789502790571371889177925325017453627509894895384406646260017605171474606284982832160710437389312533597986909820207936693534404567153723523359217392674618497788595932504431548943241079110607676954481222365605815572303922339655751454723532718061025735104452698240482128443093799913452843771818942589364224932273884967156517813696561785896834560177254331414723819040824950001325398948425095991367384323033880248892075542829155773211629419450853611398089214464622561175317995090013569011034014171499430202762544494561911432558249664359873122104324076045029619640985818545944540487240772325195570714872703561983543076861119402828181052208185569943741781591640325815727810953997842779695536961297778435001690627952746009461727364136870784448504024420317572055263862749880795289675540013394724227001469097347504684509967622529632910572295173865178532008782261340433360446477049632765481734232863515968212120565336319965848239616985743219349463930419885064324121850920143055033636827621193190870086729137887702915733525526776174704866545305233069078986094044643954073652334072328567841828916372589070460669648167056417870154716739060337664652648462879800734144136517867887970532043376041795780202812151524758921613665082820760812966713202314545020499979447593739629595551921170450962221482866357995293415330251720377795384125895848577256882645051359776013367635719537472587232300380241631013120308482772067382340604614039958785933125402436512300231520708086707100806865134964944145214137529633003011795735416355863860403991920804429102824176612620372258103241549093067371135999568736896697015130972029334339804563494048997353205778705632938821029591041807262182495736912505427029679129747315894824365818419826884655948462931635719477770874755589182433353694664164261818909437997122401562127202704740873074962253048126478554276760609514506102513441808773348067687861902789861507477932479170702852433025626395061054188085649894754632467449134723816799050733965524402621603953875291122618036673260255614141588248939648396844382338930081993899676485809703987498208831730330373850864384725554704557407352981573943093935907288416887651350183943092422958079979796457449696565578482787120327381552699950375160270804658657535991981843650880103481668629514250616313422198684809911850473950349048262533544940323501903416251143331965372927523147250448722861038441371118488937087412330875870725452242369277757743004632118535632314378151240626242746033063554592580846148204451547856897462806209872228675679779748269075502255533866521289591784968165736809211084543760280957987004460462591198374786842236090482077045699370521071979922602930263975270385592361471050606828474842648851698008181795695027847044387490919610603077413078841323693843682857625835014952806197539597690074739567314428583119703326930809168510535714958548209728370465951919032043805801075855880500546259542453876208748267507983429196242002761289993843644122588941765417771721062481717517447400531245999159161191865160575385098837303660320771939377853795199349744092921563788812543300820218291470852504628910489101334477631622309071942488967335350462930250204338862068085767933575779121386328284547823885202965760408589633597873636604793640869273962649374724179318741039132338776352601795745912118868908196141601548548003982476028187922289549313006713052098725343477298137145253813758221044700964344937064178108192831278118413297094698486884261905911742509539143840484180112979040836106130894505100641919351543446277075662125663156577334695498464916007479016992386661561103331656185240233443307551154451415929365906255057472420363648229568482631306741537708656619822169379671733977744742027990726874673888163797654973846179042979633010465099246365200055893012681231221778811293449507011925597023801531616186643244457448744393177327699252181621730138160667990877867532320208003666654501566295876155127669272549136534129416349687521416722372926316184076310100673805180489477835955785170962847445681065645206870143363144394282471612248999335953279530811565535676288608300405194508288611664992249091912262302157863866366593920989965819908009216272762157343922893627543934471347973785725741107489437547742240213877002106199324859827954855302823611173247175658711244324258047907936504011751550329896335870982828607027712042179138569529731692385334411883740735393710163134476584623748936751811025151588994480252701044259897509901980553694723686473355919051170403817936002607534761766879186597045963270127017100533787643441404711097112766484759320027610210483013244023392285588046762682550267864307051271077169036482977936179668895966490842231966208166108486853523079010073488778472239453758829588097505566306233478716787469277813488417079174869398336221824364739093771624637894149650211922306163046781069818323174686758363341769605724551795542877707653481068498090252935848338722094542214224826479010339249901126676618024386623976115386226394739819584180464018344648490519181040611899993896162979570036857515692412867796677325020560828162472500704171704680174331157147487860471694110252470224256598234538256735375455261311484227860227774840995049445841513983101025319316116115323743656758974088195766900738304008841893584747124484049439617960315856191192820401444203025374135071125995584839248927798188239711755693502256562128322959938091976875197227678905252692591339187642755032803606941594932145352831062400354944260256557057197987119683939256939572303525511655795057480130117857167072739954113860047874714545701078471651073627644958836194050276422548876429580061173104882205992075971724884818146397550455297890259167907836316663567846132318494318128999139707485632769586209343655809578179879955065247779479212128506319955859252160978811898883502220368192891370027154455777304944787947509980639084693428252526157940006354053048485511644390346390690069150846411770518595020385703907965870216779671657213236636783558800804864596739968613234952991827657444338289865012294624590731049768319143360054685089420761034668464326311291164445922859554261901057105234925994043913664268659813518108147373769095123683095175172000267411312615517956746443494243361039621870953810072443085234016178523195627251906684207798550003673072655231161303858175613385317327004459103388485848866081264761292683073247013219402196318896581199654008785186684629971246195738555941484004612044525101384596654060891737818436918878045107957397051024863700825218900850644105973638147978383600978997563739488726747211883775934058393183530048240794752265107500108583241634967272684419176880385723937693499978253498477841442870474370588263873510506634246717695842260279925222016057844139070894205331169319012919954959328818373420571552750378055006368005049826986991690120757617373820306405604851855578088212207250578098416689738783238748911885061188589505549852572236076905044174522730205962357849792684091957699381206362949347472439123877199476984546578588362666856468587155131102978462681273199573971274152540705784741859589751709821886303433465899363864948513983614093735162603848105113101672332024985734311445621981391526198041564514495891192499463652068971148417042844818160548823078309819035452409493552259217791136774922972537104357254455481475756688176184419569833064395364717012005024118279804451828580291901279235093169592365858470100267842312029767548012688803221464374718488315261004757354174308462249002136900055738919019420647331978126388481014299622281526885560004324726699803083051384913188235829253829610109177663262716139920555995700738041071431507501223462746100531703188743406733899857449068950044844583604050716282153559789525377491707365363524191804281382356924993170128946337576550970438228729812066209368631556619941679329719528545918004444262377945629651632076086947687354152571660653994115539920549545470320411560901266229926519385506328090999274162958329411537499063815481031953761080674594592291688729424192413319056467984618894512632039212749675853237857853014820616020378534500906931994991662247933764223939468772090298140259440368840372070948676634083638058787899750074850702127492804507254641307642031775305534330058480103288382109723102251744913819050873098852405635150662181671939630003032484505749400361980900402014301316482409981827642621088080722795803386742967982496451873732935513811642626771906425074235483845756316293418047928038102352531862651205008674971183493591677260318098673179696068499191759410578740785305395828849429871605012860928624602616515924446401383799146884693025432430966309998746530910313920897079177460787674485024083210904187839081823254855327983557574167379668987931528919483039048832566887852631653115469674428906016767559489855841034166032081494840122367169083107883016482260719902716082620991789671408522703105630789541883181281446430624657307075150383486070817396013002034596949422905678065925599830138039768079037868481666294795089554546133994022775285190415030817341014327047371893676394820193693485483278943490813165904308171813147786181483659055494792868489121813109013246860031012424017795704648263802032054659626204136364261950532017012467635002371730679166393364057247544061471431719805520454537401373115582468104522010487356978245350555274739938026050677137808318510761490217039083890130596689369687601024409673462957694431726247513076016564712707359553310790154626038927012648169027127281671215628959400317467222432964547749857439878538534013456581933750869364415319956327883272570233597080522135099390040598481518548017688455994172586864239470549360390306615603214322794789747227142418240470522616644894128321765836945566620954520254802700901912626711084796031415112032077501319636767490268056443954684151382851058386213961279619211370187718967836104312536490311664006366655190123856036121558632911439128278895450837162160146151801152940069343138803806783368034746694411779172787138091171826787708711307662192368832648564968762083362906271924730369501605221667296448600862144387815851775848999427447695802935359711558074591118756636920840049969764078403831316686871294446402419959133936846644815709009049320847223229380813965791441861440095122567811866521151591648128676782402201180332714272404993158473232423394491173962116957519182534863681361792483516463873071132879954282979905583186569256279833663785119751341176378238367905043585107609398932023854649843215824766354770089432846092032560804964593227276733883186965986236986027019463839639519887524066536903123734544908407662592971026300021492070127592792351363926379868222265085914915259694071021300315421001410349565533537300101658270394398618911146265946736789510797045750237757823066803268180097394425799382263498797167602921119922638087527071409065110603009993388149425412204834329537573697222629594200838940141663140083555980763629748312383147737387253217105194654080890715738158259297613498686822782559625576922191398831267524976089399544433487748435559381848607140098689287817122852897855340337252348265615625318751940516435682074486187081329928863786307795303112532882572207520284801784375978690966242301907249272950112491432866817715585516723747077672390707875154995232005589484968449498300437878061732302762666914198050872692914452747812850690953079772704611633601168570313743640042260242834702249802438773929038015461925521678185394813643863199328039283482871690331217951224969062263666239761181443884011428735501824199112473540739417109261927153722838340639295287950459303170763753866498074320010744813655690615889974086706161357637381313167895178905907965432565563156094567273049107362749775104963237076865388738394801147176307696337910675056068325416851308391080421544331619173275779582123127476008275244423344851325645043683897248248813135406618801447882541317929817844029875085510911219230270665220739921126330273814260508580910123192201433862322914218671612103947477238665213821275526309214636866891407340451716339810886539007708451842855594801953642293680845544845498411249957225953083792255451215909754776028589491700078623800949712624794688531289325563592627876407683767271745478879527571583237335000179635021921177196119922578274923958131066653779745856337851284129027879305421227240702067732918547810213856513071572397850444197271162925888647959184222519696611811654435179788067144867672886387701332149242649838510193200208404487376827506313516365056204934251502195977931978016849992223719818205498141209884490186406163819423918305010506652639315510864125861833116570318164173889648276916338389265330892664250317515090400479769389605232146434171884725546717468918383973577464630460065351744268676037697579077545944022216471685171341908175868448929780563031227854647947486658328220714364150688050972697397650244786531455911979347415069664138108182456085915370465978422729972596934624939135971989352633209896149110030065323584440788154137208539727754100480771527500752356776973203277890663214461097953409026105695689266424369442098149658961440426615551171419356663860419820707158248587900924360101907598679054314825690395151923158435914674031095042209604766446232859251536679735197187773527947022947679794867971884835445825486508775688409361611202254325586347957825903915987080740351519661058296687370691876843161704590635372324190306039911418314498087310713295582476140216509045580538215435995168557479240180041452844886352197189159005659564370246917844939850229423340405010045640863423032616199042530670099078195231934884432524153999836113408105138152412849783088170199169260344751249931550224697313895737005229356254668526876946923949445420206558651989801366258643668673121522123079518698452809566976786181358029740661169531191216241333558785388756679313389275114516328809805570906782959973815800054593101545255049470145482923838705804661179365638421338781058697402869698654602964517447144680413747227537955197803732767716289946373740788030422628222654601203405311981383891314360771519217245589585751022552615545105173636383935224686753708730113602945248383506061445693909830660147296376224577482388952869910375796691676229306549094601436495274228106759465928993845003452217322450755771836630711958550844741874048168446619819774405694833158277411919361476860230820364506081829691736456207824115261468303105985448364677487990435674278224015743264185108335258677605899341880042071979595479110203634785324023524289124592019296554516400001290798605077088188773767450221319809364979346246251320642524056469441217240530211082261248849585436416654181695972835277329756437747777640336829098508256756285803001384154583622376165886024149322589107220377590600792354744473561491631181908387139170960822537353290392222220265023605400299340543398192749280461730075682527748232779799490537288359644424181044940720395909103036742671165229340349566244692105363232846079927372696454714077691228272830348077459766847421464205970315220511618005685404182603786798075092390562471642481197430935878872600712765101108908469355126204668553665480197855274186447484932814737937826711621465454278133114854962215800693975033487841007485077215946844687075608047085393160201231535071954486903085510816331036730343097986301678601351100135831146270952397153358205524905907279407763526527936384392929676151874461016455364300126185522635846538710715477727663133843504345325709940892229648635465565208047376238713159371739679302178146142858464609579123647291165174055809922101150161096890088727839437258340727143767042356474546203260892214467049210948940754783267708707340752268949213829800782921747604196053395614192289103273799063127914759013276111700266359676635087484964134119415984875271543670691474422112744986491034150684235711440652580564350966005376516322028549104212029398040363538395913442950522889087332175963823009658453500342204694769487499636415569680673059813561343251662580982610588502367070411106303644473243851100123668504360418360191486629102904967917871177534621849893045275471413040527999353241545495660579667979967494490164894695748343529964487318435720812670262602365870634271722711213733333734369112859204780123380996539851394355274440799864060953192247594528631592807267702629715306650152545391613423071559678493884163001869365223103878835177928844473694031618596414455550680313366444277364339483494466406767629600032942239316332306664302814823599490254708333320845977262031734427664253593730554322370132699541248386350100580633368041969789313771259844856056520512558955370777771948516856895958898985551171869132911996365338584288356496882652550653260089871058578316668227521895572856565574700842621365710027555951980313740732606482280110380749316043988428670628279589160190677760261114952479690112060958775883391510052566631126120429618628829619050738461936562983379909412990527479907787687933717902371526104033452722592350483343514120458498833516371307529543377223131977776922833262396926546522206214045403870243359036499380091596527773113430658431553456894229237043877958544963415978102483318881302537137384655952920851117432278252199663058999833943852504274034357985047699631768067327809791940096130239744908615368484710997358893281754746175627833564042663310940972270830235819557825175309563467262767045491162526391766562914666575897510319642381182494706616478829974877484443255633349375505895042748895084239624289176843076523905751145807013019983013426476383382595309971953822449011712961027613704215033087854677681671021108875981614991903032255717258995930356454347418530161354995359806221097697461642902986018639861849619437111734573484956258484042019452168314307188879481127668312387743617936901597950187729974247512826364295486611618503957375398041184102227197914668007323064540805321925979189621427464361053999994191271342253325902029920795073062059216558533912204108951216615625328120432887959904450914353359240212976715150658509177378967199477015876711410420412908506086128749285395601444151330463953871849398955116042321951994977743280316608262739609600029194984650600768374434844569685275763481082164169622596556548307305959409493497824179207236749387738788518197976923321831469464463635279193110254659023002410300159254206822359658713487914521428599902884489679078612451883196575533770414123927653780236301542242745038753321267620924504652700115930466407124025806717161942035688355479259499079003049829205015683119230636613813657714533079336058712164392084667525932384540743066477745341557046425022243640229126789808865207562856652866377510637746984194301779614941415509617536375413124569932214985977014771475950013061220652820481738908394917223673109253438173530980439810185515585028846970851860756745690741994504199161026020404402633138760988233159226214367127515640873011693616138415104644513018232676284221306233942916179535791157448817659182254964303356934550349486315736614415326209272816559584892385655723798503952849694354206312717329576791413840297810577969766561159898745492678645348286312390576732787102524753300810300173414609247984111628728965832248078515373909179630855531579192088239143803880123189068766842920199832774417600737352106111196117606010897345259676552387331272370338757645631651130811371442103728554805821921983914189653396045680261042231952890916257530348471330008277145853355588327568733570900945313448881274690699238505508221787148099996636997237201523952923104841757574815393732629863084347185280325295994167545146868092352229756377792141659438732970122501237702550482911861568516904765406053002192345997488131358020493394779864288598644274847714743980205196498252661603574656859080146793522538598103806495650014452981780259803288616185268501783937923657158235855092003328737091516078145504986880597982920111751255245679601688726019569891490099384468369108963952739129289653339278750955522120220890070235571706395253785894686472954290735237014163524532379876461115526082936052918741742683454504068122001081756618091819975453329282034618409246126022191634888627597300250602232386670867655994520217585174654874502309573886534452919463476237944757902424351315278652137257925302493556918313924024085718737117711075551082302940441670015321825333304531878107910602854217880831682254562753932140647369702090416588748483633910303303889125718888684909370299045241966577819072190340939752506017489234507784484727049384575085646941957392898031098656687585144470751997924177902403161076990071174987285079098379881541164697505008934784810380804205521743089080500480794643740021896526945689398320002735406781570508650269110561937383286013639008619780373426870306651825332731559179208933590179383172375870430258161255369830970823171966650277124141598572110490850312334250344914134224284677029011564781587796174066033020279067615881504839945065681690064872465192852828330511702574597466349535778358115437558177630177560112790368850498756879967147604062371847146855108767036747149590066748035041490148044050332207131844413241488555627687773390124360817586793264584726687173658809842316626425326192031108021276017048876296726913432707160963829289808795254512503521698325965092335940339551117846222920292730160202085739849889048036959029620336957823755157923492195407887315133353120269888355843155076206677524379836922458943188145641282853215636499016791928988766504854789677645888380759742149267715262108874302513466160644895587393348679552221278620920616026505992711076920552199776845275725532585415721036532216300332165269290971526925262435633668497489176843105214667026155051675048245993393050198796669645409373617354567474542625448115212998212265589654699547926389200013530981064938603193418721642091578835982524463198631865640190955144033665048770016080325720689471772294127481189688691745865429960851870011975650429969707002589060187680788896022920261044514697055975794907519524830084408975405132056356813456523124274830701903794534416967597862390453698989026624278218006037960334118372052040083872648953960945284920357891076653602267299856529297782342870785228331260206235472697616522154193498535283425518204332652474153310009426672755964693450058571934379857163799184004163414020825488678101430758709819416828003858333113781983258139385855092470400886676599502006348863252859189010388708816424410631082491143249704990887933581054303928602355009938621685818360124901665711621048857618177875767128886060535537156528916713499243103738777178242732338746148551888139371995181748622332884136453404643437063983455502438760911651614858950170503915392233198587633220863945662898445996920511323846405729923008778015653111464690329316797089919853117139106209521685630663191201026590911927435642087774968824464457632528998488403841831753505755479975823258903773454648198320132001609091184069976160366093322693799617730652047362056435328526567205118070292618350387266529858628656967736281729485306385778448314818914437630234364652593863392030791057979673589094368326833444665112044814980151549463758941291514763085411113764330551964748306421548161439791195644524701284823829068719154719653492175795957342722187003865005960265713423692877678836708052487388117386133156757248346159665063112023101147891881655209988365614947531218058804291018601758699761952580104499995531627491071443383179171301796663831797932819428337225029348554864572536334298463018478945843097488255460871699227048165502308124395801279472327084994095243054720636400428649639090714104598870559934349347410200852389589984867230590526898971806934498615302285101921041439457356584791710300489401972772445782565167386684375875576275109732231706969895105574141646598123350390856657335767593731478635004778745305624564543524183874668033814132092143153632147279505855390280177488500919781885146943763696702701103337986464806569953480580815305692989304093840578791851421191544769003587705821108886454579919490509951145609106416982804614806865867717601802123338332768556995633869460754168768990541152824789286486484927436650667607261812659170945516567798484063104108328387580176771436921976879052441335182653029466054760167136952071264713499746258771494203273022209174170207147170204289773241661217510256531223434028736281751432537575230345887556159108603670186610396350351104976212825528823245890550721607616327951300013789164202465100887661566223947409783951947250414733105848226375807238286234490314119879350463891994325065459473689994922792783841126655297072567434711561649951242218611026939320572469307712487956750908503175067979670900358675197505292630389309819177944777672335996220816334599640248806897336714408928600801082212841377709624225812781838775564110767518467597577156412298396160052896972197606829079682434130019129620191498153857432262775915090100536499090678997824019795397174333192788103161869995303681259474984388977133463995926218823214280086900420317056484373795204293950834972866952875688155170695264150377065200006114879942308526572279695914524795912548973043149691563423929441694609256370517218838255506336387359077992809990598761535192320142561433972231579133129956656965358450429412199405131568459533918769805578405451945308830001080522481930895639715283371378226348837743957078744983200770923893344584422316884924043852615303563238534230057395031137947491498449851255239944130490406631102405737183678393988296045756356733082142283316732279129500207978833665923314547548361753840721845369926805318955241752771828388263297268920891454434388126810629563438716284153962043522046396093961357687190006898164998762898399540584146761920463862595038913993025801244246731772523898841989427285217509451142641151044531579838878755930604149944509832148116109160200212758571920682051858913256221754391183771304171397429837508885294482285091374309946449146336796344180087743216833360712597159115051557776034539656766741585606330978190032309058810487340158814516435240918399801576048778262489473998331091979589453976905988371411627409509091993483439345697168061777136308223762367554599576229651885027789244186092861297829375011797864225965566130304379977756737998527049858726288078365375854042451832556740654248489163888893212003331969329386562406514639739171985173886300175622846108427426610651131112138987034526834622252069280525063252454857367568318874502860786710052928822356669663018250576547287690484910662986510472957555508176034845689833809582803589113218127734323750583653869701737429937150596524757711917791921482219643745647066909897562631088037296780831114767889461994129540120203203472612894005989806610584633599157578696752790933658303033416108994119467436624850329019457432937494965452341823388624930475492974095853707781586877853108854215102534431567216567355785103581567855998157875977126665894839487697198198657446268181633985681861724699083077645305304524619936810701511389909947818307584399810294130081696054208211901384353345552678134702996699220502737877269834541996899967763223216869298701002078321385765005540693870256665336177154338901514579436573498003157890555566787721882690975441603167187234906458962405673573634141442697449414183971070051784249004805791440649245939627181507901915113894533191074998135112167563130572818451004894349278519947032566670386856295712765966402934322306864836643171947069108204153581356613607461119969841404239320026067234603609136671022549660713992538623608589892589212488169392029507598461272960262747384903906792841285592336880286777212419297111811418491515840789479703654921362340919202619122205423647623429698108373964970756549980135338581860516799231168237327775708034464395458932847820081001599887998632035379122872645433786534675383319176591885912784532852300923699270587783846810123312090113624742796566067848104696043111005293268142960558221727478132660404978640121064945699523722771343940906467442064482341870579987308240964694983456550226846228872710965566580485169418067399809869253817559333152591762488460637935725270723692288308761539245561990497687013813745612495403394594095744475282526384030174081273203423420849627024796377568080591802025033528325878188512714666030632174635440611797523015145990829883453710538133413236799679523454298018235268637560314487857855462885996421699216908315180038496372823185104927829995993960834766847178579721341395186445622915172551333089050093510399240154597465833104731807255617359012948478558137513894102171760122917198280905611123708315148057523501393675526817691629544577134473955893942877817525113666473368344950296226064353266678714365186863798715192003322102546033297659437659952330226102461483618130145053703931569845145246310456343449920861367641002200474379176569859353584978714684343941223059738849803100128427822319210376264345718625527424768838652342975468903500358700689232262596561283272128117000452648201692566143686650224839996738834557916145700725591010044962293123430747092917295175727267692168020654953093807919549355387428408542482886127383235578073690348306719160665667722119025124734253776756290391665340337973151300829146610365534397397755878593907727642113486258326009848842683943493143244303275419382229665552619422344304921163737561289577464232172498087047437895421012201615241996423230943819134117337636641292275499827146878260295886559368992538845516962544975376438639597811336240879348945863826026600132508059890736561227437761758754316469442184173333521156346271409728150845796861640951080965476355872936758724250760921859204275284374771054909574807959026801601827366305120238060796743947595961676972942578825477057877965149273708943501693772577804648951085932496208224716062774322399855329588604096134726844748667203102960328237472445838991382655226950034626902452911677991074856305225680885506246100872128513666359930048907584710918096181484995542819403667900003839331359419381455011810311606248284780915359157165027260667511515223519442659448991551841385598519411258709906283007757549364270023307455954992322487621807580310150761701955469236869909363341092364601334518810535070811697551694585721638023159541438085349427186358424608020856404503259138130710309590091258250468589438319215979951303004019229727328502556761160002130602629300182795471102444680301735353683836286056199804168453463842790806171543931721479512672965811359854159682430090532449965532898661189100382137635820356778699409472486527804968875239970849934445015966677258003409789395845264965932382933842326643833700048764255622745547999290953766785450133284230262319063937453609954544531526637828661833981415935761376746049801622247878909905354786059802352869439947973148723756543309335145010285257446057579665972572331208009093827895058809013602812739653349401435142774833952333113992795242820581895068274493294950214124138481642794580488119789214216238404279556598231711680500206877967211210214691947165434577696295685324174373675885770181141251312388253514221888138201100019898221550519953063269552636326820837527965109341140033670388324258570948354975509836457132641196110309425496076286836289302463909944731918347808177432712394991908266265770782126234738681934608149767156451607568865170456564814833070655146448297203104310884128710011148995623772111800347679103113036361046386585823896497485912837108094979230435055214990990588178288930914127803680682917292892022229388385353676741149021821100740993012220629328093011040941304902780444828922348839724038750628859701474583238137567450721612145284947243218267419238457008785422306932614585470681317208446541093532602092262294461707449599541160664880569030817381936669268741527806373692309500696000286299801176656069887237215532834833587740246683213281431441358735033527487119681858760146656046906193780776011632071626952686974359725011010774664614210938073081034469426207466639479492787655234548249226095283378069360928248676917305383096324195001118114183443733473778728149653742638845471984814409671495419358052033241449207621979277027328339413264855274602239060883806728981624392895991327111576171400087191236584468715677362715556215808557553525712114034367365614760077476168309513746324481868957550594244849720402365789102867415181336099541571059845829395511553664799332043995890353513114863445347082136623025313842697229056214494884458149311727576624378528352477282648736872960284069723164719536692947050354324598706355720511695167815256869345742829701435331196523491439502887457025616414448847385530756341592603236505353624789107526147536554896470239901683497386270380632319718753682884103022970860329640072587273362955304456821457082550685148409229644206631142366099992788694819034335694308785545949974506829985194835292805934599454354916650544134853712532683936911396084422809821555134775237978400561764154886058933673326487860460278155519879616870703921479240820742801335135379920419283053325230652115752287370432619370814413005079660324044716081311493909706162987859823381642075108879218384177925396176451412111979914202793256750915549384584948026215528999497353344601855054943435869694412663608686140679984147561884375517526403288153622794413520234606544205332032029904836988733557337225420431946504011572087380318747506313847688347219717260518479296257642331294030305768345637558692654788780275242571289713074246352281183570852687278355941968696495946757379856201960835525474845736208458561482499257215449725526223373136698835822084844730035597929800528783473831206424086863398931891124735212905028131622340744707392000689938385554596227757861821340627023455245713390161218930943088158709728516136585053467568863932952553133789186168094595069663877084842559531358717977756872472739826851944710971220610203652681926998413897121794359478201320169081873986188774149660646717377860886392534143935053716544859503285971159222052541480308381097842739269800623202950297125017269535250173757694458976274829416038119916369036018991154997526723225685947402843857097752778209977841770415872290757510181235539984185297188424910059030132058545192517662503635007294683594198369063189200488555940686004133154349205777858526706001693171094570141305528065988162893933150522743262489108054463666302191535898634416474309477617174128871920029128930156590398053364766038066601680105922915894461993061071966109212766685843818499093456815206263119955057714005437604944944941924433262723608574463972099499280809555361227327333327814590345263054550452155516750841741020035104454229876391582355939431556273356312809618176168883350830984667462427712918327477696275418914281937617852331355788743300519322345976640095311371274067909518504089277655896547856942082575305453140548599441917867527001394442154594024173660226155882940884996801113437426378901181746956984066418660735467170612955389973528047179547369415289594927335590283185810865820465048244724714462493734112038975387993913349261370048973553835355580116701777463406862798940553251094448466152265915628298413677364403068744617964768307832230029204226082625878834994953659199929170967756559106258812867592224964257862822312339695804952625307218197738674966334996281275651939481635066274596865552876545675075111286243237179303699663162785138509015075505622960956420998112758286750166774088173658122823329495821266302941360627201374084229665811656872067630546247537602923614319351200605318500162371672848621588089518939757551524723911166297089596087767786640117672211997220566607339827293355767231848483314693013380934871681607692230653124867283844529840839312470730994921711610172741082255153983495855286778109467546693533262176366986337959397213231113986727490133462976627459250730418671454196028416224846049648009919407698750602724817729905168340344333335806889622620073981294931847982022504315427559036230618433286648724102880873489252746679240058083787386970350834079087692543820451954710006514023823784976292830465186017705416267594149252033548084810679281982202490500975666148201906355152058923626916129627932791847307823199127659621062845861473916273789968082109630527609236435079473078072045874579821681730590861322905924865492344255267947030442387294563213962352761569159595256606556670892589753605947213659655216713748469327870480050996380883322134942152741486811651749634302092548297693872387296686690237550099796764990048181821116631472479600169438073986215545956205498964651639717402868261149602823170515372144811516483739820519635601333045199859380943831650871822981844637800832586647677094165959167118831126876483841516844622876251374872210775474042428014285099068706185566352848521913641561640295418275213307423241597565489263334155133799704750146520519929479475188132533020449783577271971355130844581931024186684468439726915917029707644824842346238920607240317337904112302500558264797973508747376939067351970965257770471657504494618965689981566401557650167589348806656220015393816973479579729891451770269993146078393531473993184408093539146045023330323127984885298179190800358957678265541649936679099580264604242507809896831657035331970956832943742899054960176142001471695722886042746726285659585031188657862217313023806058866459003761963052024901051312441117023034624939424385187876351990927550747497406120458300426935282806928460239397972772325943968388527689251660115721697694948365969037974313129138901095789298558966223530356889412465366398630093057747068835553652293601781375155704940486770056671285372674702749269561684334096872642833394134804255526079925899746861096613823429923129993261899649463116838350826964303958004892839631069162580236344847618246904827664781658562729131661077578679975707728962769217840357713876056728919207788676379956139943371115118642728249386600891777466268113911549091297874981764466604259602836005224927011224922232055456400641346478817501948613937895520546597815405883534084756212096057930049398594985429354726636388646704475811275402846776710406322202001151906032861752826818303434725757811646557927915458606112644025693789075366402431449889366476652150165736706249934118441034523271370382153056374628217098492287124304742283606932972930796474362697551262338058035424750223704191135646074362780504693401846324047629274167845153293812051070743059213400630984634081611813824461670003581982976521955201265765459474807769857618989865310156083452194656523273756270466533928041522363786719224033934629456325226890952484781222478287109692235942433649389729813509588841420897316601973405690656448782952478690864379291064459705808694933370689028555890675401899853386967569067067395149425564986385334015382593285673267179420006818791166563461209757896184762376371184322325534243944502784617348852692312026694296053565709270894672478417848385155407685068104911485111514204157401653443537092651243151577836096811556139596806247024559907334117610327431562812023648150634276044382882440746143977608753156938812367127895643752926991465922142962713684447316437857850142689644782703513909975144920540280673397471152770031106830971974735306436108159944495127288458137890187310050273858558028396656093706720121387925264516155153688989169308904156632289196994303207335477710340432919471895507106926212815672785508572514773516755323540506623693317804413013650100572440716105580839172932850552709331498270909806560586523357824976658012539247070519580525773590587770942364495314491714322100946792467338313584518738084085454795177282881661479578906845796650092247915045646993330698206643371028974928883466504174330880972768403141373687893418609160892960013267984379820063704946428335207275148718934050369936343966872937287039077187234268880425654996379005110263097314652651718231194439084634113930574455642906489304514633447273337199879252906875627207082571676684460713800517240074771999671653806186806132760457501037914441144636572940292594193395686020420283013276248006280623789600038656030196659748275991269099971320497961684322920023520269689831633977936774660692950874810794462148507122490194830321317988919553055200636518376505491271807316274539261065805466679688596862972762373156439558670379593293061659550255881451637633466839939362188133059360150375573977334873120114051265001539086188271909768134106776982111103262495355776953615574401363041152804972865569548222847206950789728051968748337669232228306337608012522806257681538833582245759164024175527871356754027407888339406463079699957372016804258274893242915142079253946238155988485114399067911766979585389275902365675972663719065984357533393041927883336249613879199658999475183420714811771008213237937395291620155478266720025918967067609454573425061557129128521654771741983447912231481587399765081619762667344144106063630576658501690714271538831567698488888402160546580622116460694980659658187781967122998581219637403066985363412901914472413606694692062773358356750167711960442622538878728844709927501364072589705501845408501744173144781689749665123778563440274893486018281522193536372374846053387085012998798942920764648352515277269316021807431707336573114412154731230754121614397123895532089510487885014790082048522937115862478163574622237910880328620789868929083880525548372643227224491158555730447501782422295293241345793793798658065687043898292088426215079060711672956756854337431335005651060025615329270890427340505594839049893005814536114837412355416076773579956511592110805739933008504547748440785498370573006142844219354663087495132241577448013935189982370288113173000392611170837705928376884774182614481851098496669484485062577231869227294026892563278987973219800216584999049224032291778574070128522344877190204712905041396772874991315926994316919429956201843314488056508991603918545903865057977035885891222421686889623123624231201241939503061844090073583187977830883657388698294879358746314929794421155609663688939442287903791118323802071042727869260992535731646386617465363955645348908088027353060688238592840203444564270275183564076043092209147726747248080452527977566475138034471482286965782319517355927245544284925072338144253491134539519735798755986593847669478065682057322977769485638164232539601525827568895013187723468630497152844886270782560601097344088584022944422796064466284628447098122517433164676632901293678142414804928251785949644175542517075837145169156088002042408240699804286639213455537373519865941238315811633748088285761061703449622115190912946329727675009322958605836333456409556014388533240921360910982349956589695540611150659303372661865624315962824287296725475870871676039092475412108673216846590457911633622151006610868771446726128360950357706129890686213082571766283155389894737205395060595865112001557408052364147064039749060717540743109950627717211776990780151209373198188550952777699471234491579963270503576958771709319419757284526439081595471209694190124036485606682716817694301604837888625413455836671908941038712514680385833462411684477405428741316494558407365718149419024880109977954350850271813549111037568335731056619687531507264556740959337535077157015001038326881382846528553373585832726613216263998714719554344214093900431638543075301910955646014928740741758014233246120774044958786355906481931931015963890129687070388249046320405456123116315527775820644384510461954994463625409306936735967204476421230296051103546733910343187520887333974625912235843400374154279852103615707871066583830226450789870035435510381875551185699230377734887713010372178637625878402850803717737674427348475084706254706146032077859373974040026495250647992564361995598276920267242016424763871605836974817842395599404048617603271641567568821175382360266992256220901971730711312039782266082963853599294381428709943326160318082950505136881166141685977764947960346961044900475483188197226748991443348973039167031713616078979736111818336671044471988584684686622041927621565183784893583030520683958712774337946074227024321670329296953031188478375471194397663167602672718442748292836578109938733943176717011052611714935152695419412144849296703230102626525648360808479472739014302148035696497307056288187310056546552402541672153918525862714716323435055766757323020493799029502202636545840493773788938272041876084073644575104061408270095052308203770435586895310188531219712158112199647880210460202007937545621843756478123872187330252136562223969518166135393918502831543542329148308907767917505715782455845796404541253000051399853975819961417842898846753070673572969508561887136217181098724992177542993807704527630094293919564690337248957759534736897014306794720099914667215246659957241501033777004095227287640581809079372440588669862346025921554733131974163686900180177793046509969614515892822418455238477477846814155566670362811840208198395865971759621417661545730094255790001372473200751262518164228795330391219852161473439684156426216758583433077721900332857490137557758698345681476346980615577920911539329776314567827204213319209621051132346495140929449875975326651108564872949770474872536981885227380268574592102717780605925246598524419144027480713617570933701582148008166524149522025984538693579436295961891151515321299293206184146274579840025948929791743145158309854608254931507153491992788007359046066936572073560050833489225343852458918526083949319925812073112751781387187727511396146108874969091513460792790339197586274374364345362065084219687459791965952970307462622329219504903709268747251305601585881551000239536816551267364097835796363928636079565199366647128348225239307524704136103811735101583139870705232708728539830456793013756507198988465243253256024357386847221881571871672344022061978158096363008890543290488294529705930648371781420522365530930821507308159700950545820701689953462137016474351186873324601278589962140493749637194779141691031499940270282757123481182927821530830469017911766118396139628031004109595156645875134412010922082999060245266399283483626025199613612318334670315646279106219149470397544609016234368962458067545382120201487459611005110155167666315602183995495525471595283673159026468890893247856729642137223056033233193787187501765694370382130775706004435885497822073927219955650743698411972454847425054168588187695261993226164804873179446875640863333486385152006626238564842053240717760872406677596544892641582759794907788454279315525553540418483127471806526662277585451526172750463139438893415365539094240501553266994096509704418376676077271521112541483168790935511747645574697055569856086461661990376590599979005623806542052171171945095119934275723646797250954739935094422462825821574858159966604317738843171850454637869311524168253511615661370176205665581462667336113769985315848228284260860549525240452324892273806420596950579506976012228504740355974199993289619365730839976447580879727608407888509708467272293336463388125396716278318427332189537432643841840227586057143023685282553696574857589356054190402313358437783037953547010462482317548019849005996878873542354644944721529693916744675144625310500019386137128172631853107789085848269743397303789394873734295684369964032173640542311202470831222965912100196308653128507516600905213471718374078031951314990720417676283768201137955586158627904977384742637622226620642018640729728575149607693350833180592458898246359090573634896526632161385319965169861181817101118769525860557105976596962116657548088226622466794947528567731857574768225393038980045663645098115476325368927181041916709337129405819039033896337621727703115851208180186602716702841761945465707414021356715756055404179820303535545793116752822483304567338046262270912830842597061172608605642742117456031171114705943432380359913827277863067923676397521933913403637879083654852974858103302237755719383931846102493797362729802889990021876990956762886267116348391319037665920899916725220098545381847411543235025673971812594932131264421222403589716066235940336810111568005543414326679632187616220427474456547122153307786296712831934782031667065640939185968020545228994616727415627132494527570975025833291742549179186669628929129971260016545083819321719535380272077262598200603753136211421750649180501759974958756048366034971448566048249320386527389344320588630423550321771953393928930251264056200628112432258956152907746072545724845156609607733856427735707253844189615594760900581407812293563822889357558922543661999797917368173067454760264413607894551406026573452464692262859109140922577970969809806611208194492481678567295000216000114605085666956696326048974926911430443953470001847814127505933891732046624840848702684320121964805869204808568851208182013918534220871366359941557598427304320697837639675765753417692847203637933711215232541155244334200845380971140675675336189569035475397462010448072910980584665222256970221031987400068330001949419242086678927766082621756500285100655088953543671836382779011889378004021597551460260204204148020354376270531651990169754102647735166423081043826814396699556563922014274776656315141497031491481837597298495725251282271830747357722528678218039459673500035119088651267137107028392319918700822361031006233860343167105293491932042707568607310948256904210029266636397730166812255455020881996154711191907503058060257476715108456728104323736421584330454855490190378873583021465351554974432838488328967477660197688908122964631958446014082352900297947613010976660199974286778672135178350609294801153075074695693230565034075546938432733683106171369543494444446490471285745467103337802106245312325279536528984880514062450794003695074715478547980825396157264205162799917424720298450862556890560151648922850791686228734709974269794544255954419825905649295914770267082157135752175717227403847496676090003715515785858899154797791072747680934496833149463189169094151186346000689524892138646378429407248594217415772150163186067417165949143565102651956511082161723580522464365361301346753984032280755564689913084479031937383705335888288744665356733734575111100200050300024093301426483265985049077062641750783532567023409533400015423485726777852050793909859821751891257499211646098764441623166534463277784341777894941969676923562149703907065244824160074617040520109762088488909311563002161808642811978565454030632879945967855274410038373180979469470745606437029837569682565062622503571862435819674737094577263753726298318593704046858316158406195549917370087863868744140658136451067210997095211180736000513677081149444832592719661639077574902041476292746381455457951844689449616546633512763515475413074303106637324495811077577192624811231415698428583822911610095345178737816215778417993226762862050539859249363372118284599410593401909916475336444941327732376319324695097945399415284261927893531372409364731188667252322675288137561458899126596868494304163252714378590643533735670919249643344220169483292901682615957173084210246985173807400530040160762109608011475920809008854604772974959903442659475375539649290217848433745558181595896530257292304567890726193568991809916919584677916931885431710710509714131119272626767849059853938287772563351987722334187486570906250186267078565666206213895206137408115441965934566317283814975451651548942663465329445877247821558244895850114942893251565529784419404601892335293207564668865443929792127835384887909759945168434227323190338258224932489015918796336680925682790047025898786014590493207956346958097489130397145104542263213996357918356453624344638569857627969842682052563466488758977410120822244309709179858810243023565547892432695333954202279313301847606296493028758550573955517794319009959656726878601247227346712032752409720504854211369586814920872847091248120758702050810741399839195789414017110597879862271452927390076821544746423511075680629330894975227348385025673306448171296984961164822472120407670869741337998751381231663799642125173201893673674533185080235763754390897482665152436272114193431978654051932474742567096058548551805753778630053450391567106281620493904933684346178881934245774342402755915828396846124075514168808566089280480214977825848295986721901418309453990073150043886459358655359213231849889726588033708431782393710410278719255402996245014709022295867465004912071386372840589031008521904660561438432744729691784645565688187162725950044912049342698807320974896783895875104145285836507987989996564551196262978543155793829235881475290643086911555305404527480542721679961623565662610386512391444257474636466388325502272847693646762963892118168094956022819779098898269221741281564270345945453145946354167289485045038917916034655946153255960353208336829218623739045909808754177664994789653914208906494615319562744219223621862326506832999444187187833751948135327553235395214599731157674472151694327129810526187292430668912653800360845216282939915520541179817354850156694783204696840894882419915037747539290169577333791780721835255914610930798861619694178628377903629634521209481469263086582491648429675205499480663439379716661767954631754171692741852582827292725925835840214700637469177612130597325937686702165602465814547984101171909660935913347281405445998995916327305723991777077950648311907425771294035437958419319753563182202075519231952461362724478095309949306536668344766199525224849635562851767356417559948001635096436525401577303050937685175329799474100415443669545282247923614166361718361976535045411157958953799531749725081368702324374250098579642954298722240100913068619254199981349199219143839626622669536418144250000779087394005586455568924147803278524671984710402924086490467914271792111269974403918592363599938427681377358275653666900062959037046386798843070714544846614696092421160429420810632100075036485939423755006039164478434317228670094877838626590018352926909281859761284696227666855553116812822134814228951182934752742686393532137279464251994524070425622458035745333714808248904733731833052949731783638584093042603668501810220275200760770381643762193439560823950523380730421697372527921347320877675261167699893093229141757242310886900598190340575349507040593691607175183043208044620348401536438895144601012288392548518249979751955985711814182529801056704752054438823886788346910331111015649218061841154497725249938093613724620756134164998383225049942108483595412957727442041612407120664320262104390891380796516005876760789428434954974718022652056909439978076664572136274288812114317825195506324800817350167323080866648238070308931082096316123519953777095820579075204832769007529894835302762512126742013327787312539946399804570245809038304212799402103584530824652721603837485039341443104981431750621105298520814288596708941638450692236167956517275574504685428470625973748751791485465189225138803195249535796830074556465658673328880994328900652281715651633184078535321183190720907910851857669042406445954225974835264864387404685007701468969705082745374321369814451980370625261325500314498635612787189276482533456138236279120919754125484323118691475394789900940677133117257526207243655982903653272913473011369343880042069875866376055463301685402589908877351070684288013905461958113318822941456169328520020420994380303435034381239386097104378667714684800870421481847578986589351790970817586959453325897947662770739992867106465052558518891626181648486320487125640886749614969888012495960296250581859064544523527802911480358650632802387352821679900327168678298104530584148248148281622948799539333293487055136743528584689943952993502431156948868927000672692300615166076817607529215180810500379921868873558061470219447700602223338385994601223439735748050250272429313053464442975210449439727203344873949597334229915120805294832164894217816787802192566465035131457692179809950811616664619540584459201390093361485726026160272589864488721981212398488462046129054827627392878299203147351615050922549324389849704992873272002586001951663103053340229841939934184113071322678997875072980526496007750275101516540065500658207624129284829154061714037709926788224627210572561009220914678346677249843472540748599752029606708716278928272118934430677596640795447908787422328966971335844651041012627608734982458205736356477620400074861608962339187669206215468041548597996558494508619881932674390457345041821629260353590755343279494128674923875431343860375199454213095347957856937156512389603539250158278099781485101811747096180006347356197102358024926472650684735901970650070836664777286465637065023032606300549981881091331674947025614795057213390558437373543078894417639248355616829621094174165467489552932235947852500150198958510613510192670431327480617185760523682674031048363739710559005933398778230667510949562283006894000940802791440292485703214351695956120983536521659783079940142080856730356681505124173873601710925437527922190666119981577616837079268539086616513373395536139165145786262676847222587572207703188257680183539135347250507332842831706817120311040823424313182990938116881925700927117293833851312487092342154913553222523425598190643780537978378842317805350411291279653485959462564792271250006117631835319993336508463070342418639589413986079487561638904177712858200126685974729715837668477229310446388897917067932845943139869277641454446583945395308197370680148151876016017039671342175556695150457893337796970749686951964940091941381623943796312397792340684817270805763580527743693971611433435647040957880774884938221962515061968436243458549790275487629099547398739299880866956392090988440654013511870685665050237613085144773505774504016806113117904654569090857689502812650275832164166010576768377559394657821501627623497111976306664702683498380589953524927914674428914268555692736281418458740776127606629732258207730211333597536935340316533023725614789673732356186165640903532916182675537502351616343847271490555105624597846194734772621775914342616166714535061232196986846925725377131145543464641721026883215721783455203693343423800067992428988601584336070455242769280275549513977582361885195228359627844927653595113230169267975379977568049475165345482008827178680724533720644801546043392943986522723041990260708879658875961462913405347804335006866345413956296328741767356929489375498157180994507935768928245028447059519509909937346738730019079820425546517819840897913465804122690436118206632235387908638493415816327784121734515427377314020262321158358101197127844330555605554426423969618865275058720077257952192204596614685369520961771792118118743794240471451407371908631362261236672728612664893494941360788324179204290985994822937476744199273528263081842467612109520048719856349780910673568939317990536272186172499540117569194665693809757967636767871034206409534471615985169559496254651132094352372240498167789752966124420485028091129827506041863161326122086189079157386271293503806150656123581123195605764438670651198539824342588912676470548236966229217948808438350960566847462857327109189332837947178472072904878811753572894240293190803979249635407297551333186236492557896229355934733583602755457352970761350243887736434530180537901914897044545987998944242241629060334257620433731449753935331735027298629192288012851899858518640461266770670299588984572408541166845134967031515604251351878527429382994540790018353558976063390738621102640948833114974076951892275361682348302839498719041818005289085088313253782620922017499603070050841379793420090173876594104175476214885504961817530521858181242803036616351755282194328387992414301657773231330512317797407754352314266520289067199938805903416915528569345070240149980601749885560587369385961372806780139366477588237617616232329063411871361022946586125759592833564536163443380404178122877871887324921913889719734548571704185188343412536210285748105903557750452106370947907327072660145954061801665736119427578408841161873874318185150106461437509113515263173879186805500118950002076547294549689803911231897901946144357969099502468672052848739308940077699609469801138151559547917331870603281257504026248608644634878730454213302995373459065283484131820957099416246557149945470710418977359175056312679758244675963684294956979198213940728341804666418777480465127014135547884395535504531920722629068634376860014956243444950233223646707923362139311267593983208641803543720029192574941517594173760031416933140310704219342925270332119217973430168576728037150303939233837690071476301360516676069848594546870631005913148338084841817567414083823185999891822085476929015671918515729622680789924040663233477582962622675996815158874529834853236156876830627482376202652794039393016838905000690071149916217484758811415848236876432383792266092384339484085050399306210128111617447061077375892421044885569620685505748744564343432200256739365791749495601303533904976966500388400594415298309485094408856978961749486642048564536593980195873309752188079933480841660709750427520726698655051632967411442207851502883422169526173892035434387049945925534629248390144603824445541105254529986382228923702555284126437368654776890776401323947631219176674397008032235235588470001006926992100513892632433977805403884668055062389950807598056180823166085350541263062701785201904054994897558960068125817958432676456610180106850747468109300222914227580876282358973218609822606573806479456555062674425920325810217976428679917625339338485048995653714261027286599269420694335707714448323632642871632243722931765969939938244618530557379646878282841955376997110913445182319479470853108347104185349478437481939348124455135280954346547322275893849380389461990325535262407978077895019214473043895993195012076194653007785235245079143345261489051070988714346090756135572323378266561232663687346694855343571596053663737217216532686763743397627202898339314936216745497613616538690548067079021195275714588366059009545122769335657799844161924852502155135460603576359803303559596247747542059534128770274569814066631223417476819707025754796410238390688332848046658815010493052618828037334897438269582437590493396053422899333495475736454174586992392936888115816590633290013347339361898611770486483586394812065845777751805887972481882606330550057457763350525235452500672158007596410991393724940448423261278828006664916058487797802403306614486058960470309576672699809143062681707811800614357282421502346653401791445950273188511788304793772316115477520594577159889525883286473192931383797152680171265525313448442808021982709586566976231225441832399960167589488452786576361151233399533111691974934932904627183294388943833777583729803350081762217277181787908380230235815107671546681182903209140184693340555437366552587669498536750306313774848887847709172027765230773385539000768957250627940042250925124334291763631830028292861167371854414436116246331894226076309614585398270085677516320945542156257623627873181548099762991567284658084770868443067528694222477667969986154745163184096476169148253752414057508309995654349879670866269182507947689939390142567811047714170323052514613108243256054404217859724984397656391177377718244980729612657484003527706113529625925290346548219380866812147852522249551543881280062665860496763687157512704202048021104326920135600795323250883223694364733874507469882416302833806243205349610355943230252697086989966755115489639637188228397858873105063048554919735525876052171738758288193711423160542858720566516673203035996196830326526284502714545220640660199189671291923041426528154856415626052846616013789669847787839271014830948857272952489014167405251096671612464523727831325384192189990222714457788297155499804800295791932082958773374826553064933160935214364167502943913388619353671825143544327727864197907732749573990236958637973853888508141633162830394018923813700894350515032609249588120431151509312017623573509592429022440394009814866148110562481633241128095581216118958527933424418926161626182788478933350613251392264447097621751703874274361017441337819352081136394692686032681753947381845947816294338625876839069819333008205613949363633670401407969456042434698986377605237594627501277562025777750466861017350541347511343801636909422244296313443369127996631994728020655061144877599625324497056656613038167513156871376664907977391193657980945888606676545031341218709807247752892108695882087583945877878112711926690718897794371698087819952279115310497358518211321153772027160835504632204257394998285837247466065623050776270797703873860707828339750424629933864123005872687459247255647829153021947530093689038560453814007176052214367191133583914384886936057867551310456597142361283010951483247080068995723956807309912857738962991455760659536645442187253028429401952995580642945799258782874632451375317035748557034546740113295421665870693089369352955930802218495968817396549487563890470020881867041387554475068010258764444497866345132883934355390228478709523799526461748700234689352083490762193586131791142142478790515991926682142973990826577633612061547995257276015606384782917568960704282613233876219007021089575912668077418531384114385742354600881613500018150996465008773384527982287305264691709903369799518107828549277256718315771679857981847141161339095035061781534971657791321309452233903990157490633913726260354105150659151381847742221506211292333459173694698420616278046296732776070663622156799594178864338822231139805557193210837864406166976710792121733353862457466034042458292812517457350165178914195658053126532473733068422461083272379945868727181080082262490537015545969930437740606440305917198364847107795132652237863477576886751499032192439508297329224794886024845587151466275269763250260420102001516283056067730253980385618533666344662420173423598185498870703129339209172963069178475519898807826189347560561493943905509101320709868851819075423793794937375911653622154370475289095512143031732194160923252146395964851510303463771564619274146689972927104256339054344616812405188782988458984882940076032179214238490253612173661741107740942151807569730175545409348698527601369003800346208073389917260225382506829182826895005983177214563835626576947186403372758238779224554910401649247373409485037036665788267893159323833782263209727509044644626705753232583793008819509318220695252391171302404546552998954705625913856963819417887926704332002696200431420819277116979798010225377734396362856649072254144005912140208094735557934300593600698731707663760991085593595977979797690153936374598766355790914662899680235903359406867964051308334981401045910527675279185545653527967086714761697265522417543420364128502369142904679790839326073769012788183287770554740848917151974216113157480603513414522462072070855661813546542538418936741341271697846674989137142810688740156297274202988770290594021480059979179414949326534611885297442925431453867896787808850640198113366317075814851453352996213592326457419145802814798573102261703409028258522561422281860597958658657414203689124859922960431394437590793634087710986566201651616179683589746752892985685060539149421738687556940962750755430444052561165480795998881924647064705926245297513653245650424795629351127048753414648590245556176033426213616856676742419078025798472299756958397914168320560662681603831446674270207656017592744686626143885560420793886507318618169493879996544664093713463752415589830037940799926887575604365013045499704728654184273336467611282374040642555338692260244602902709537023473795745586376068260961725243865723033596421941087914559842112459277774369169395281904588317354264643285364359039497227814165833953064686068297823162009609846658123837460704309982799090542494084652370009756399741002777048338380793765889889952154967469702299783311274732986109303937310297471942222426592409158960920900100438160149078393102523529074064323210299405869756971762302312071426755998380811571214512041848900116260308270529111716242959840838229935835439474486427160074482292937200265216011135084371878291644086448205776747739827785232265983296935853957533051701572100460469855220059722479919891377539952309170086260077080040125215159912146435168649688579365361561914656592329017813734749642846116437694528806441741453206030293862695215052958804190722970594397755669672089285887904873321524262328864186176277215684590055764875821469176109528737847304213907760620829800998464846118129782161376982119961535260521739404434225982827115135304441611959812175537595745445834942859046642658791002669568677294736995079240429640649124705443239814387070030452464679681408417474469524587658031616808111449018974841648859673241965910168291280253462262280486548075894205150416746613206346139364477295871019278135735935715562456593875967961374731894578515605294024206356427587236089349776049019168527669477447429587916784318690914942195504764957871726510364318455082868082489082951113125085092569329093227051049088714168846346626937505912953399458451467902695770525700309527141617138331031484098486057924508220818846413693011695873314638445928676624178734468720463063991803846037820784325340161800376123126518617912037840004565005917673348881029074272192069170153760474311351632959477929692640997782738787744773873445866095172100112551462985717847497947778079032062480216148991566114440953623776190097510607665486765878216609830749830077267589722029012471180038259382468877269325744714561210033682919222367777452787206538075874462170465445869823880883757322519080182250942699286057604505403335196138852628902649240519628024780074128116287272899015979782324913031741542662347678255121447473053335191169366621264884008458799671579984178767163433558606581720630792527388554314568188127291236607497025832791523991730515369984398099124290287227985157923204841173846519256662232818813856650971395946436088647364733816690417751969150160081280384146049056464819095810268248725030077385957991301932791869613716627883430032707225176527040609729359203861168752398692818518288373943041930992505176253381317148304111918554195485651041434148955008744031704625950655426789044350915949690726461085684114136675664575306693910007155253363772626341375284898420937999224416852622516092289380417216866661412046527673095462866944187200021896782452720727473447315015732860544451455924282062774475910078922169337882236944920058052007317447121269359753700807107405639997984798490406306886277587326469456505920474015788218316940394611570754089201403093325074313010809920082632348192226058386166774499273267999692603229757952831877263453725619162884456953633172043427285031253020509639547718601223730189154589495773244202159525753091509909793963525022365136309657643098410515734888702193375405385408140832697957814495080220685285031578081419556165127752404567370697766752167675730556461884840490805157754446407206265504788110368006849464770995387628123711561873087176736478184328666904586221567489020351646981686070271293304079038041102999253687869744139785136373149196854079031437556213372980653651317886902428792958330957266642188886907186256275622794615868404133088211738779469587260780230250467222612034312807250936224729909848106228360238523898608196027955027934915059823275543021931125939255599687935165804741926423150480771971347285441550522914729331779401012493662036143171117041800130666107276856007565018795614285391841653126918463500788483421994427442385912267372811843095324228712943533540526213817031225938543466301966837286311773199420366695172079854140900802074475465684366229258914015139982894692612436572638971654785749408539179534333043404395417613371473678028490477608699312030630351575747613290594402952224775365027285287113640171523437811894714134116047650366160483924828820271574114639370583816964085159730188857532373063532328848458368721642040990955873535154037449819426721451419518512088916786462811627633925398261159879305936613443598844064971446722811431306229671898180039537133639807220621183219153325999538608048944669454079530341071521509126501403562895416516692694052078423198161494009057891499164179861386162357129985917348811811266129930623472421428288963741161118672817529880738151388948523650692527287015153857663739973009393012863641674678549818736856544942305624711627355828867750840785580973451524390049049593062877733271888104861092617846579800863499874015850472940148443971561799085897369101795637698811621156243668053404833834293762659692690509897343242042881864912886241233169758857924916072292510256760969286169506355721704464218002921978336257297292664043841016085758046728780477883433360851307431367741687999063364667859320103970112786575610127531434176625535019790042482399691528822210186147019531490283172608059491898310250125271922728509353689348716204929510600229430128780951927253636781668991234965906655505704508156099173782677066869173269598909536170045310552227720054759665834530904567867181271380251814517298385246605861117761095456195068218296779228761066570441932390915183433544789352097275824006259577793436641422986953867303350451738820580915550655130392469470369956196138120168016411066426597780938201883550033127868672257020160017678831918000238806123824349288804134650908130682640212714022320840178077890690501316003237723606897540376723189825059357275199077546243912492565980166694570683679718468151637019341578831599908555433744276707420139462716274248818272093166655679457320295105184178420167094744104232232933670960387969399019352460596747773901698471580094363909338183887996162114069533152734707728974374196257753709639888777227622719410912657929190873309112804544525997575257106672903897902119345221897803116317916004553271484622803441474375493509563031454042035139910952569345206642744812605690632018633969199088285725242303640991941788691843243335275453844176470395081499400714739257007936790523058154046174542279070201304530832674253784386281920096953813773827051627895934148815750450746146398028370412984848563805787527494201455206810385394890397368730255359635855027823159573841604839457497664255399998985463636551041830472221893840225498902056138409115560507103095961160076142818601565320137264327278466661871815872692407430982763390356475037712163059484320402703509231499484440690709829433144740895399706310870887246760163197982345110593685406502884464314740932035197410414606031107357729907769724341480330935373268719796539600298869556671453832193596101151690214663200406877127912389838878346739957353934429707740904909417924939490192628863159426018483647081560429864689884340933632834559778192689357133265200900323781769656016975617498285578563043900379258096240014143787467505673942365411415579189575339646527194839153489764699465497026172826052642362761206461950427093885934302353507691639459519150810887823518311918466041518792012179396679371105010472486953613799421578497798883851167884595562883225720912209563105480552915271913711151783526607733874151862826141863725919233910612122926249204719395738742668611725532641092875898383767304192584853827393131849720367544386622432963115638136415876786622744356029739243670406118074812711093792958448269487380284958110594139036639701217265466955724274684863013542962993056809649601413276056931587045702506908630625350256569750861983103720078468279048481472708966770580845248818799099992384658290838028430561314404953618772254432563494127159371979458652447722688328808611282675296537509674250438829299411621376340757356679421488898005968839559662959241256411721141856518967572515473633045422765954293778851659488972379970115869460762548470670418340410517612052750793848893054039221274788348923614455166832225665339667298807943659137736627666037807266141368593292871112626136604320013809376688769901933145459331937198108143199305792510494052121959448296753233339988039382863691334021533875383439885590097277266531427781366737196141149556277740438500232093323162724488791381738010900264838532174003282164503291484731660273344545811813560554097516586529390869019004731006710558794779899036193871459296031476981427862861927842591787751760516796004929444089136104943773674006150036581821277874326732622865016219733022935083144155542036070386811491379616148455257707986767792850219003271328844040475217874914422798251185920040780785224294341174221487726480803817108731377171509282069953555195271159237805384091918882453743192374500667616585035345757667206118697374827104093942301308507584279473097390970147245958563910343689758473893289954444416497729353316028403496315930877691370446693013351785759294765625097316483843959978737462699010931943950235139085781883197191086283537102356422025133407398921390359515516525604209657995163542297299951498039607425645876134978361201627984965137061175794252888467073501550209562755391747441747256968323469769402704720371017803495668209718653097071338326835260420758817183355793533398015285202434743827195260833155581820038174898860557730736225781483951459030750405116377567356769474773593641572656776853239985436828498696352130873527943057097280882917991629757858474423485937616014565715087241980693401038885179258599787131100142659317871861176478843451958254888826882747326041288577869386766509771501731472000872535848289975859565763660107944618798488786481564376978550448483786012177253166047597568696411036504453013868612387661312425698869043427579872225817090120954996280918791940513560353821468421557096272821583547902133701424681573762541948143955064571387077220540778728002434176680893834959729514058895177718083313627526023802485515249363408746546329909269414019854841880113620990580770014626941638213429765362781157625864198868437317165428623901376512347299528440230001100715674077954191854576034349463548615561746051231022185620159822547115629233685167514679709646161271122651492108370432010758975700348418496848830718433126713153326332192505647419420534861677085394570410291506095481281225370517262584163955533336159557342930113674654534964444944999865304625079916562252431699828419163684119619028857720688534976639250416621597280250841097294904412832973232442810954946913768852415034048718634605054868428641876724588280236285673210122504536172716133389445070488282201434502752812433636230970839265284296973374270631615840267267157593170381879730052927245611345220514970988934689910573300117843444202487695569035148990738485850880956606610018152356601032887217163949471398782992383315905494329930037559623806432249599594241812936153967770267324612549529608209373541641189609702576284469547142456104140716311728822144455293531746263437733415072021056712675585830306146483640226178321187532971751847316732509191469045834805149352317666019163889881349490101886794037071608488052037941973095161097709968771906183031603742024994055798521397704800586621863217625423316042261849196022199808689220984648906646233285594880645517757048463974931442970163640945728586034574840303577156754088938795294719403331662600549167675159937969603404655606489224632428747777313557991173058349930565563628592280905969696003608327873416861198985590782584479464125053368998538582868428346062729032058462241413925928120262759566330877113998485569491477776658165863075299174124567713483508228807792327135984198296322954723545214446161418699237359028917595750717363510825153475996648798478138476470877501678107659863547157425847417499729145830598741692812716056219080484925188481285567496715149566335401782593666799622886806281879537462879851813555397302640540070481431832999703021450150730992402789322145835583045064926332685766028674553604460750396348320072001856114559052003517278169397902173925001254648029117042254822451683084235968099397410032757969953626330318391124217322589527109541416420933146667198801971558165350902126680335638413162586510726675502016380408460651346492806531582025090608546438857284095650386846663319112772315971994859306073784818818370250678206091843174790842723388122420864852942637078294303334216333415813245573202759613183223027898762651895826765960403440761284770477261789025314701535503593151972559625397636607400036783148545587365697002601766571094394403344820922449280312896593842637970598622107151551677789613212425701836611332155124254060913386836128584063657597956820226122829257900094458239241240568070447565305412852499871368020212608725543191238296978514785916433879995429196017898354193553276105393737427793077556610575453923089374095013024251338656611755391343427231819484825393085419709589680446563731284240916583891182064972792001205567194644902881767068558838147015481130928659525406482082423955801319760446937764109009554199508983988704198605132517075453430800055723551550257459993364804853600716495337197135155662691097573436538579315745623886548332662013171704397504333453758800511975407628817133113023090248400305778470501416192067162103905576065225087941938152521390375605615179146523437991551165042321950242382559806636516376790855253136723382594339711026703043804772823022903777804769403889376039916715527138182601676966241409233642906699991417396499182132041368555780001411853059610898905990707073530574471520747720745451956240554760691739289848044687917827055885613297150266114074777653958354170869415694232123913481604722773502690152818909289907799207642897476751907656691857198016372737531871184457522080227846155286625915969559025905418809882648615839670880911556304801939128397121215842988151136542780698468291035701440300226617242057662934273461433812371863153670428343201604721058502039754028678212340486750937251794424626212798222128147865966782810698423302694316795076042314089904415726294799569608146342839196552141719407373497803912126500318992568218026112539152113434398767874294113013616184469170821703959840030573889076262777394998167715896174792485083257360510828561392799318103513882068118153215766123682652337606240303236816420502256620539199678384458925308410268073177283330592960447461684322153769322559662042454907296502843789903753252536315827560373983377381057781949673608068413611147774613851779159119030656563272298442764430252924551023899061061525554454741474305336533864927005204822942220386773965450960878798149562460407257625732361009678285861717134742734138042496603966958609346904146950337819522402555405787116957825500932544272973541377557707204841757857076053516040653602894225920647643299559024027603612420330970415739370900541689360535771497734333423220631543345366103251530475329620179024115571869952463932884447096537965543588232628133299776084207669865531994809895832256770394121425249422181076324551586611983087107262116544143003466729075660335403158552770658380834417296438348982378315441768678055594151689627206100467691456960557448745173662257330289236703381582235271677845294299940312692094337866398522466772961474771973948587588387718289532724732669673339835227221730653002081602825073416261039904050925278995981235320334659604460031160142597416194763738787366647113822571119394699833864080402261542564429351871636295829622990674618210355333658464786084962991145811220694102615732570716084722061634243957039037906485017973633581320735442473330996118815900667560168884843027207341446107381572490967835240039503520900683824778075276254708332111093591466256397666792905210516565615647239339681895587268786297190637666455531344234438056513685977126869708193759559536852028057327377035845352762453769707969328419286521235095957033348333315953149985816124092103544589895731128321109405494644593082199184349494356400937870762325122892713082252522787945252049935672126266693602110702394184380701362228681714700773856517740938651617309624397599662042088833035966214744701899822026591520324927274154919345368890784804413342416251190566545784668322083328425482604244264487162555995070375483998159550172884271573663151197149492894779712747613997510508654920231240366992239918381822277740427743122244093679752022536115006985417319723998542688930280990533748156055756827643698729401628836925205093615895272311275300472032104797794213122409719696279230968505638700649117459899876954804011720145166163317839485683817379642880425287811742178451180723358497458034648304731751812268514009681045934026126741296837193002616728272965177863062015325130246297364347023303151724853980446252692438062464364542313865523322483838910054545939320650674873377411983084223751546142936133320568698591295090073104888720555034526636236449053991892209770285449488516872765164787663838877305606593972993728297866402888015981105334596136144086000674008296754508004677270925634226928407303944010223277616099024151831914676430851164082031124776371338190940139183192946382551017311295879509386363086990294083729091697418647062254148483668696459845643276361091896143309031857810538280476276261864635777883804498976354381301779252419087708044520382611254330744794676327726656814576347437302442218383131760108759112965212292107846427987554479071541047163910516791860169501748766553629031883278641680935898319710808929263631690185346556804903707908924882987601608706787878275459162677622514712838814194001893475196211489659272002026776928342399349285431723884159147045684032618043835191498763166232501191407832196140188198430107106925788835420802342433899140541759015811046620133260697566927190247478054312829848321515154728162510631817544945176719317784703117701574408844911021924285279325625155072208100625389033116384791495990770600589150807522036530361811050308960528411955292807036893547028614362342698722147693379176528977983669835852976588427948110731183161753690774946229074191826364160481167693737797758572224152348744238831609795275450415969486978238733892936353772376995164965724086816857612938523310578172390190272625044410931121538939834002143015103213651354208745990196196563341907327344072106002180024330052490718887467668241980905939802978490624584984699971709002298648442793583630380019210577098504253289860239030403185443233146538117537059143423673826009314512090897649090201076411402756941432409001345411491678248043761786628549008240786293586038632487266838522320332660377914313844586448295165492144441982937081192960194805851425231086615394180957884364171355999042239549404835516264837065850751805295305870335094416602993588934771457542608295086417704602060227012611995133264289060791339898331076224344128618668030419599274590952847862882343463074051394656610826081655862390533420758453601518386857756766863312624535380716947598905553586421490094363774375697727835206374655117649525950498859024785879844526488925519316343152541746676168317562049068743492326161770746371633486765409427037498314112997739517233242481607965689375093532591917704568434747153434565382091054580190668011857208991141941471414982644613421861030564214088086651586762599396182743782818054728714820887290831250836048572462336373474194931552739710037103143699521024066391341889358581786948944852098998729288108315121689750205877443575051636350427937582849226871774724083977984525537163955110800846689359784032984917667577508158814103806848160245191123547750803208886779261183073755248268889427988575546377752542913314888683555494426471118479037509417729487920520650913766388947292338394392497420717121311307348255158209271040338580242224451959225506697707290935440877850995206881556141533945700068256396453445070214151585016948497273414562206160984046954225045168517182781365784203540427821311902677523562138242929680685750455155957174376848835243036266372412458043235764297963715096172839542371957006627440669922820952036423886160535067014365600542898136571520763573623863876288173331007476190593585831505178033619932835178977349460404320139720033702228566632005961244271990574616138655744223563589134684115688525623057876594056282644530305703813086681204527192102934491611929814551854822108665206060928161990331959738902545291139283979416052172399814044939900523393716987221716941466222869533246933592005109504601006622188429383137022683506796866583270672241554907275164024188705387910181178056177815901866979858181543309371036308095371584428872879575086334415569604059871850879667054259593172501685810784455953221178190365400197775532530605338639218378097389224404373776539344322893861261695645337442700083423483911292701453863363739782797322841460809607057356951495525910607385770489712932717349673786315005021494258396551531465757306306981041036976301250297722373697101978192123212221253243517688809216061253847283788764062084466972848979486327337303649860128727849641425803880186445543040529109217453584060052233802564759492444717003091136662011353423928760505834895689823866033400126135588736370123312001098892818972765301741587048025276503849048845741683384241713068916778977497369303934196985621629690948477507332387030649340625059399295212250743298012433306300230871968640685793659734292499449670019480276518009407620111685868510650511085903022018803165843489239426485580138331331658521812085909064292107026900067152490972268914341428487791278944438021601744531686246716211421450088709532977869923113749125248647347332886832625803130898442582673201806274448966781326609793192283830034429918726960166356556039701786715296363518176697850717594037039322233070028203588008482676570257343955104280018854827467033249962291021447344987986019892545951559122438061380855381392665783008119745643817394080433181688930996595734898772149256483381158526132608749974921521609675618044853942877426665405119704388104442717115419671650825756108381141189207434195093310632557698776842651685811232972550788758833915037243723003126306072352819889320382085657810610486460975503791636198849438525206101201776095169164881678438619235899556472411137783083178727566175817682757120167544614672752147653419872501556001363959447048301323522371619136210477040793368191241054142214713720877746211249160702555898375270742963850228928282685762144238578982677151660562916272046344290051915647615003842702378108136621624549229752862506618835837777484708822728641303638968281782746568444982527920755897269085464309047244275066298647083606792968533688092632439177909074328957400590905274235566237268894774398905966121836642795159975988911821406843281674961525442925658182229758500528223016027020564736298238312123771419093650700757981492414700538756486445492806041795938385278711708041103109289634799497873195977323525286747009921208696117524171368499159241187793616858266175346775935000171056203942658182006893171347937890812344195895953884357706372354907363626275176251402153657628075937838309394523838554993197015256273974427851908388288355547559047474590542819838744769811184433815792593073067620505448704993936642047150282056852489505260987250191975548639438920511396354630690607601721945138368668277316016740087668671176435238410376788957223867532521772823139863447107832808689663378076718559279017198688972585070528666985939078299385524620635372052549805730062680400045663755953625758194432135713001617491440075190554414360462861151631767451857463470768906733575399183919072520376707962020007751584771268384830805220446467742153761079947465369700748943476723689675900987454342054495470298297527715136854199929280427821163369618866612071037894626186164117545930628100223103041919459430714078767284593836099606704590453987921503378815792805479368046115422346660369878103856726652596564997247209062507414899956034776812697390255800561319031793191922665380489127509468602144195569783454363716341283303566476945199838982078642962567492815592748102478003684268719711042688618893209648380717578581975454808764741065127322018915397536394279668032431618822294184215055031720535438513267169705388965535780778847469674216175729698012886515924305116199172539401235303104255956172837185514781115518395131382662087743213155308618385450647068428975568258646078904808980312196969908242821955009067088220785651808993814175468789664960276158472898427740049018217349126788558002463602703496545166453546593413576382751429057372922536074783147783927863387901939617699175739756851582998737729651324569399638013317147943697469148650384450583309481496397514145173645938544806513756496670225172691569261327919724276234307582627241794429388630129395258047037257807568531772586826553872596786840037454649695404409662249638449211003170892851699588254109324819898828033342850623510875723539521664788922408310690421841399711873725969060801378676525859435963633589887754364377403506914842905427762110802886366284730533723458016028271082531333873259333429265119160938019800387202966984357571216981355244646977703151359457020528811709315222694224668568989629685678913970943169649530282169900134817195509035752364311898171096390025524150528329846867875561994575417035276037365435272866476844966978066468992403220283636947632220817357482249438700950478988282522679686589444597745575407174778871811804247145592055323957140957105995131266770224279491618455431643317147145937487050693942223316482251728505140643750334519980396830285463451941265490250246322542778840875237796507553872063356438537584017288502356556914222464333825267777064619400405499821461262138732729222237340931175629259560324436294442957395868365645084695125639404728451776521429191699954976325397434788037179953604973634071603343412334102666250612332950964693017334408183235733618852753609843655739474449143878097353890432022867870320257462437961809209284543166545614276519139593243293732909233734499937722305638628040805442363726308240364578089511721682360980799671193172545954365085013032673264139265220368937779844171339579947420864979354124239648029003723660727319184180833289113469752164363217869355148512417698410850552656602222004921422611684085626957500018524555206221510351984848164122432979344473049174125929843017379571353290219852676266840010340415435233930795217607081593510515725425896817109522655606906304844436878648193968538236474965761519956349370178741986698339366971004403384365539329264972649149803491250451659865561330669192211868467703866860168689656598925488213469750647166214409829272773055040432655293307360512933054237743888354550390627909464481110110873675877202230323017806223902380922146025572681992549977945804361780752905450426236143428399456894644754826299891680221995249613887300168471116712254288883305147310433825069748049770653368148812636571822822737885814328837829185089753812045164709567249532663457099648125255310076166686463788135116215678582275074405140559171117259974186986458108799479559744926415488294872874750349780787480967331846731911519179413531595663149504688148272983011209702065770395889051942184557543657130566665036281548992657010521137896634199499074275324508343861103780409587528553812611177011295342451752080693425484319926592427539978903988858815379740217977918004008506269704596791500285128721127057458306845264423333219605957940302231466091822229672740793055869902875150836309666079915443501372963251541321050527697269272478241291217577036176359057717347758890490129772470606411403425175970696654445407482412093842429265977945144655477142545400150119555198612858713584897947095135437257056747794634651691463718263318801510573865506076020179036082844987624277227519020320295023838054742755720897706209619065163547477931446775753737487869786269973132618859225389280259410196964460048965016746893446803559040237944416375673341601296365674808077664152481980468757692176163009026783977550483791140429509994577756459206911986130174224395834035044862376758189502600068818882163654785725743989480346378202937980799025410463990148089922860773442935823573782034912197677045707963646405589814354651316747797150990754968281271376246066634524227020278387754839998358390316208728598478970895335459538894872765234516414964313929880368297545924051625968722744193622935953425000421366645825606707033757534634407043299513538744645478825649389224011709255649540994713616596390250448145556533573440363033550558122627888640612110448248844198182759113227404649702605914097201206923183992873228483356996413443602516706314723301452875353388130923727149023424894520613546280898412757801179858759742672822717082436917721884436948345814488272106641728299695290660663663509739680541080325550025549972717771599719530298611624766086182303715409461432189958478748197440019198438767144112760446621674325488605950230328034804822952622454023463671201697563295380776807923378064930541648306460545004913564097740646969552640921992400950642029981050196893972544754014951550558751479253010535863721492208908807837140594415845920440554114820573500890585226474423049521978772399924297711778362320830085559031366325908235762086615278785016268312128533573790182819702520723511207811950654676168000146804867378101034036242293520576457519868609610956431840983022698077943555099748858858138014131618388021100194493237753962741377926184746664750908441999464761847093359150973857735283417434113048956668873748844868717687156591880683502717264470712668120655070301204867550668175522304901282177644989500072611664126888475379085802733418201983333771843537789026377318922700213940779492117927367994504717768154240533533092522212091950589134846124898770894847484306068404311551339932912696331502051346899849678129092970401040422602331628100732692509659028021559078296566926851283995137372825755084281381525926885820025197280047598750541625078846749879839817807914152530881381451988214153799213487882985715589021391838716017366160720824085089577774303717988398745274776444017751538403738293838157097487304560087583401410954277806582081574742532143056087865954715406713115654016000994447082075276275451944849237418334148782259039957227654225835076917143883143606431303711073310687015045871367447852878482013984909715655363016544961142124686072499004084941518556584627747925040406073516711125232163853239099720125342418643414194789390445927607573298286741565828919037520719094770267455880544628907137543017258424533051954320677551614502144083558376732606295523644835462010049542290978792515594939701302910872577211362485458318291312933665371463933791205984884182598654746208620765215526552715664506243599261600990052122824655248380582130907822169611061372516648291048574182576218146780469853071800553803124229186929134695557948350094156420206327249600480391664424999066723615911771709007052312864182988329346457322822607572403473760189713443400400636585499087290998176582681592402343874584234055103081453400775739922993553246704583994026550210995761847581945909224618577706900532568965718589800427396659446205265443027673059578019571168743874160906834406333881320157627897579002894035775741254617617424722420976214008789411791209666787280146020067249070506143035751172347175529849595151567145215137654889937001412868427025379645443365355737584474352240206378211379258291699937827307317518716531733588698185275944590784204183937754518411558185869707327116699155964709388542466473834242050856461887613614833417780394246480856688707061671223790332311702528235208041324256734294074982663615429442292870129688847051526947592685245332774873165371536498766270698805089459894783786837003436382598304783200187156614276400656841396751421277110223642367190175209713278527147937626024350654445974342647257194838181688332109405970870157929314245227433062433528537345427845569290990971416145994823649750670864390115945367322393008296746010818125768310136993214022414128733206721949572533644113251711040186828463277261675808394727296515750271148401877117801779166315550772284128349649482980333850581026803583047111495758467972313103664902802966687032996665210361332701690286083193517186015849218473096045280330104147406490384123323736276499673805307657497807136715222547927493945091662289315762040149639016135308578394423017179045783475612124233819918503934952190370685222010250748444819485690200321219123060884411230492789884555609889442994873776827453770355594357221066640085973076857905650404886803067793012082310282632424196991534129591479469534823126592783976709738423298713042118442283140197435744192936577776241439410329445988762781820765655219370858915050679132294586220755977156843365982042613198063277337790845072216688103069519555727536189567903804693324505660404218759893379535564638557448606022591788588449737725390792304866729943116580913879129645212986719272133541481835062154248659049438526034684981641222217989087367909551380327872008415647986614313510550248860677435987160005554564485092737123463237222327805660556463007755377972436472107691314794159922790180752828814399632725430391116726122552979975261300977797774080201843048398196403474385694825121462275749125786636563279150643393341406817997090736785243140117953697102491748371996314635265439879630822676058619313262544054064559088021919416352921375490004547960188140472197876234780340469840696294914303571789693779528905802411898092730090270190454120723550724506290441804794798690693742188575001542719219213332625342390748821771461092630211582268241384614847429168546895789720892401792789160992993477342385372939835152989723668155089376676291666971158655001213661643223624572018212747701202562920482512535462998191269908834648718239618488973493436378239261488260026806881332523125672440923026481727328283986272770476927108492205357133669964250508849854498993458034116997572054842981060246837664402613855142683506329825678981353534051576857970668888023361608246800820090563801208869376676381266492379001252196798677440476843488387588239483163131397440666304240033701380892342955290391910282557060974071827948869612711480520682064034370946170740615275297705714474913076665479074204680488266754975855080566520057783045443478504487254289350140880714706997710919460842061631897727883724307434269394685367865929071452682448478714641427503219005066772579569531227948497911776422845296199417353233314581569465058544040436441559935125280975003480518326251737368834688755729339348542309092013836011746814760516560013671564118152790435247927142556828041893236666249455631903910773278650692046565340554450300898505438636334951532844665119406557466283002545321268540244312437972631092044376233147436781661335494333757774300529644647185266288667032288943715616760417429460399613765523579842967552719869454885539605404916813800399660867165579945051398871205778866045981029313511476653188091889709870436563473590465538309697446519094035624014255957690683835667686310860972319380847537545030175043092846284895484967397949864358328805726318736396111887154074417220433709955619958201957374346294906137792299902372487779609825301148323090748078988573962258111291463112198091354450747337456364352716233681117464663495414592392759171178967012517101615845291934721857035291767259362704224181764325076718425787664557996165789957656693585463917282828073984995932620496274086638387885211972720453253375989183690394342187586423645137846145888753351644519262802462126388286948429848934644652455515081592975920182960816088095385063067986267812838220845574680224395495467703565468003144296279093995479878216601573495882336430679717381901456865170044859330126864447815613316052089015302347531478230770167582394162538799658548009675379005229831878569569777935906381416131526393593051465683287172549035512392349789799733250344922511403902568289616598227993307103683790792698343068098747055867208392971419648612557415589749032120931673438232323130404633075342811002145769789953441838312889921629874113654356748148721215248913040718145606039467565096294430582666158191811316994119777230125299070653206151830783636601129364060282061397102841244924249419237446780862536611557972611164817583796477046102264778850166460535170679287960579344740514207417922546210011914237547452527564354373787027969419837284148056019506473703791130069528395290768343621227985790071299045525357214878123645673989715181835723377073437244265513035294723031470704722134625807948468918487841470861038987835080912218003121370274649759610251621689014038809198837207010976260131718807863958905150699236709716057255908283882998332740827560165254885811906505993301135457635062385953349930287763190596540286352081218331989193460357077305451824948750727234723641458485023284138864028371101859029718576230558265340263120533356901051742611845946153348725518543566167655524992944445580808029702480963341311426819857852188007885084661022332955816160358714151425764795669380530042975550011396118841585077949371794477479851385236126026265450773413167274090495858436277351368399919183459782164432728555725848286535907900802910482163865409477296966802009161171901606976257694318928297915622229520928790809211389217258605089925456253135501527886306092877074139769225503399460654946783595761321265615714963861616132049887566853047128289669154374960486747719944528829145277652441455850819413783209615720815752153507223481476441815808339129185411647720116897527589559444682943704619746030552277620223091079629469537960069330370563182731360289176537910371306627526464578388292095978976072893839634164244806168624863613515795633250132924507240127754925095863322900557567774639917107091301948147508303601200315657240503366540304489385869438704112495724614878511799064820509761739411846943188103396628472246738203579447892433462796107640355595087484857378572954053162069040309414418379250932847194516087995890633152821669758633262561640800943261654677658224640620587317611489349286380636255857954379280754207484308065832733880966473542096444342820828502719543833030954945060410291003432424079864507145246815798537565675284216172071807332444046883902184968966922880375690899875334329011197222152428794488347557785629122933387956072194085643223365235229397432448358652646725725665420713533606418073098508303937967629951807051107987192535703672821084681239937205007011757815778571703792068957989276834588860518022440967244614259842615556762435184575196358865438111455280085408700313479667866699002077759905677515323107688267001863477208417157293385924269416207952113163373766031489974347569304282483257977412894913631249121064156727956215696471996354413436809030410835354496853888737023593620393773925625519576206014007494383609998043533006513567876613935414266653374249698383869949649795082675609312817652361879173075554381137187730459467564030993583486229325129677842192326352576040219227166884048772170580179266964814393596085861779987115117730132798425524160555421627306033233729695345150464042176171033842941547016484297083827603977661990714093360833924129065997419508465794839426707788261787413752573041100778251070322021867851939001634149403364781347019288934047958447973533502656123266596993069805122415055340412547667151858078703877499168885372654593386100807257807607746447997120986963472486524488072308336273551766604861449601215745863573738835086573645372879932735956579660258179175696309252347099493028404502364285711004577011201334953422657928332611521059904963662556410400428655221117431793368367373964280059373230616201266195330721449641472215053821267865396575001899532077540436177935795016781807065584610914831302479543392628148167540169392771001751162728570430673847030276268856602304258567658401822250453760470867875984331693316272276542223760132623367202395446107936596371490795118255293232785583886577626583026623886458690542936219988713787935886136519253854480933371417680420243614623179723704093086275016353069572371711953218706403144038173116077149966311501023407727942943001356996711884043033399544914363352233767615117714884274796737189823012163417165980235633919844637873080879578209928137231835556245275917882301196526552107012588781447642293168874789259548132737240503490020119226483322365166351148620765104441204772115556857156110815575937960598636317386150637121457722741063283057046258946065058594030184631239850776980052924306487635405323211045011089446528486850888498758020827257146341713975911236440717970183931090056402022458285697971415710544222551130706950684769530314548392174139088970926180774470814670690582038860638011736049077953838213094189314306912117473400840712484278623659736182409006304147242298047733202153834863993295400873970722135687782030393217027317328051405799958512631779575712437594426232420974274331256574756809071031918444720260670307854069911658305862761832221524979690207117017772762769817555556870403179064754654777850392898544232880985602941658927678884773361147959157527396178999864220320683936849935052443183463932486771286695021099010742084128234085199341741999426358999992491369419120427273896566611922380913580252884509524638990134213910393208506513255825776587683201473357187153726602577607683791168077040382803863878898666536367779618462755541257594624038025283618939479439417022265766757537889952772083950309645927937412948038652988092153966077085424809055690699163681804658321603720241083943340171902192850903112563316742308299952782549487106294873017938095588933080306737720450240996356174547085013943407975187258062934479660463255712340530267813457482134530147726862131989623807971581410983939708509281851206362016157362146442131151137477098947817491338525872689795871109056968611076728469778860575824063467457823418108081107912012982548659314218135594617855419707747842074706027958705497979706279840721632948036913965325727200345168039834178760652489968275777558018689884021370606023291615886460403968912441893227287814590503147158994888122488921818934387306849256903017897133840586936398478409283939901729417300849411657212189940172288982903439259005456893315120589214961556355364272348499981111689573651561491680070385066584114662998955041690672138521174485130453176659650013775667103111610269077102277835209010406778918070527006973364303196962214784467579265963436491162160402947797462552969416450967455652499849043757374863962623812811197295131952756558091994117431015351952406432428846075549865337762905900785932138090396087457863381454566789254285719198745194540083453142367622715251301978294799596948131651482146087642085097459115584042133142229785064329740301557023972340232681836699297816278898878636954226561194966539126041428267004142880777913596030011620581419674794409351909423586939953087305688993287690496911528216052663787924533659754196655927122362626514794224363935652879875749675379119031879901651784595610990477817834984429378411064326078160573608201715073256093182024814220094204845567631312701872242921750559629319734639748932511655781317528953898680719315933188813385888931853053378434706942542888975179588675032411281157308642826847367209704885909459683176325182927620286896308459150050239604637077054919444028503484701420196327288896383508255400379650266706631979587026675839076224159169626692914565970300747934558150295364965632079673043396719819313644152670325772495039603599565419809538678713854928293683576825207245977390600289024698419848825657580493493786678728759601224705105966985950554415038320365101634100456744971990636345608094935746238276278421265567817057057106400487687082163311616867382084089251151988518840417520082825628908711755007596223326509379353989949133740927483519549814818191861223342636398830837239268532201460916193953797742312721179992930389793806887937928714992443699858364594588565923845873341544615087057693609412437775818565193943212575650839641252564173812870098618951443895785926700536744676100664770952102907281520956514390465313526727896147953720790153839974441046705909999873951134800575451426437610866238122827909737176676140166468398065510409293012049210715004891423583326295451156769622785177531669469093430668237875441158644987796275629136095880456833212747931243638280444887939784957937331235856817699618202972977204649292040212854175637053448039815766972240793361230175228590359371252499469682112525584963392955384913374110299207518738880100407831929424386871968068318911479730276341174845098796554413813786906331599054133211735929834310550819306265523289042746422446795390629280149101880455243379597713875395998596460802764074322919851749086808672084390252021147085984843090949132595017574717541899560900391269131311098941176554084505957134272879671450086425431586469648317296334507292568939584311696837319953470858464173330634385992730760843758255273796754236523206027708701238185043469493747156667455934078215872755460683629403777179191694492151759048751378156527501254295122674261503548369298523958407815052591416675461797907471608102119198366317758153106880399958461832035292350356968754069415283574220969134479162553170370772295551186665840219758366566922490906396397232153109737356538029377923638513870425210365324677589623286312624217613665652155271219345740985498885597293201539844818628542109802051184700105844296194679640341477763257656870870640136002396389361182504077570073102523582769993953311154373994039322566149084953041949443032969134788168567347916374082239171577862711118975493248595036934501195820897565397455852075912815585969274546800218980478482008678106131486229184534506040281276084840679897295378984519847774664126637003213704096043047067103976334277840259493782489978767206425279028840712478869747579694716449177439719389598045992373334128261013733997939066042011309722756910614004506623373809175925710224393759082443340012945914763514108166676790979032592678758624289860179580812078646442438476778353153477586214637416724533984879865619706490432084160350423621054559524710643818854766092047096567954238612373374249311619792003699521127518678248837028602659205672810747598227502786488203924373390579434456621212716947770707094321540356831055714203661736096427657135828977838664133232163125608323851220202546149011176082780754999332675339538617864971512389933996016470279585193802616814070919392360197690624460292174332636484774354713935507953273442974519631771257460329585861241184490503938046430356454593767956378811318915887528545923480395109089284540768942387593173895679659424850747157575149896567702918716096306297892156550489738744875316694676505591830196057110201943999360290299410395581354566749974986564137078479076997027420908554124112982042744881584154890922981293313339455293950227671670902263067071319424186380670634871387270263710148402175537629485257724446009478825849511128056785026949214695832776279701508514768980670679990568311607582243679014138745243262057491978920643059155116158083639177464751786383212004895545509523160660122328325476332815395778868858146802111143222214207975705822622781873669132080730556022231517265325160947974160228006570524481272402433416254474560647700837124100931063118753689155605475533353155658192478874389931505071734771893316882966077052381185653341156537985817553029229595967124710182140661867530268681856567052472603883012053445593992835521820889247445250914974787719197833556093883428727529561705947915980708669109910327058235008875107854896035049026109136331533785127857995462156230781638441862973263643145226613220925242311339498659014512178763474937244580499583832724531802296539712264514424261675915651368275377470252701912742562821877999972499764283690903736664756048634099717800159195610352225375173742138276607965196513457187100768784111301233315559039560934158632298736228661255528839386017952335771478965523007978676944690488211338781049292563278381174561173293523781631085673078918867714641742367897259699546060196851607073820295984872083548093967249188192608797370970225457353520610700253514522301394142994829795232019820647251024616015326925299684456712461254841362543708844147733142838527467441278063757534651973552435392996805476480284641798260957298979648143183994313149174544388247209708296036451837046896774196214459023073176944887724061814321992741477470469806764935833294118958716938956710834870057245164425285989598790063094081511580094767135873602895602304670705129733337438965249415430617475810968585271508934541738499307785346091285925879239159388935115973641093100063201343128679055195564723854026503681470865428055424475312890363165581450554363574585281939792655221675380737422639167800615577456743543501833029479114000049752312602823084563056998884750526160935813655402246291148281971560776141413087146593864243822041412172388484176538122627944799883147691579149413851329881797817428658414921640894587926493101512245412567561259082359752978931130575796703585444257208183402854363694544637042050055866836796101329204311701395448787272302651714015561824795743261396307779231644182953700901502339580516922467414974533815146120610114241293448442019576292001439812948928757254875617984592031600692721530017292596261865260597552117344889237087151688846175040922589305384844590027517274229139099037591393206686946538722779422255990403420440567320992941610978489053151716683838317083493336308976338278418778134572616318787296185786804198026250469871581861756606012092376120884451138234720842495107922079218704078460208645933309693186293345315120342814109900422417885478825128035142307762521849015468125055897788362006804327669955634941600759993308469466408093882263251375352030662202449806749811795658651765849960770789739079880626141165895046516831967276309645369849358029343989766294353213325314180114063360825335161691729974036951728651705049626687865720665334256591412759320755279215846250635146998380912219196527831948355332267041777674035974714301099511014958993682609931047065305930411753758887355460006369779061210555314990458400145174151556099036958100235249488057436582164211123863893982597622360543499332886306390839661813690537526369279472015592398984821748981768747040452274141934185360393931005183729672601583590408173947289801910491993580026342574376306570711286588651684796981226371845845742022795654140998424756672719692703430347172619672946756597034635911151725954641746052596572905398234119759772552845116341034087305919176039232469850119459163019989798188666374562875440001641111645202889108590136352308512520717401442325575078443595916117163087048221737502940570565857754079973798747862220345554096874909691316387196056136265146205962260716391795518838923792223911628084597491580518341400153142541492193596264094227809501259342209598405668171779464842258903842216123911265287452119591729366451044503972039225360170428652189979545515990524227092106997915933113333024530824500943550917389635841196960751986256559149646304995243625693430065856191176937820896537628831917022527184124386983652329364845818229948226902364492705609793528796387531462992473095358865493724475412207290844277007608849832387705048381148352557850495741029327653566171557608956644385621889134491924425965473128943079589229534047111036185557061502875904788810115618765413912448075642324437589182252390541072209626327315947913328890516856068307404828085701892784413745293290573073949898626595108852369085660467155455021154290261917150288508573965785411296529120521476814157292910341004741323364925853987549913361378999291500287857297064596460446610396280449150116724270465983029328233341961441495498364345204037589009748079708456027117850216299348870201387011495167475914971583768557761965914229325967698109138994468956504666814577518536851213070592103842087402179737451406348002181155371277078182330757734413990517250334421890173826620822849768249688048951603759546579590631880883556786423272514679809685187223223039922439708047170835429257474860396892502179106503772163740483747256270947614114223087885281634601246084594553258553110424852874047574719529974190214120614565768041068676747056070255921023100807203782661182540341494742335969749138457846243459504490524330756115658661507142314870041671937419735110696870401970594237955011976889543095285139601484917554661227839917037502851696679944649313633011033479668959675763852268350147906270878839459092717075216930098748853543069034995676271117360035762651278134054906701621700780162115143938109657540325889045531615651183513273836595593463910043218226755286259359121453092924003224053671317471673546858999727883153699068182122803840670704993697614384606672313854964294506205299842689096221250630898881959191959863419276419271763184381796373354908319350658060164379558778915367095721376595846562278909962256628961562727259821089180034154608045043765543219895047910250855979914652960010146257346999320269074755003811525882024718868704687316089006617810968738878419930304224838043581583714666230429762974856433814066238341306194350237933658234916546248605866507785147487829112033488637599333073367934815019235534144195047801460516791324721137450208572761217928759430942363788145272954808402031627303609768929246500279029535461591369212707255559767005649958083111163135991594055169533310211245784927760685655910136546680144262899428568163801665040918286486517231749241396723777321170937389672567033183016918124399314971491022513062020515445672764258129943558587475453995258685687637842342124200174632818940940705961477422785849277731146454218280175013594820987461279093673773764545777292485468801949032665776325947863174761659912238962285697799543272539883180818213955369535025447882848779917878687238837915279177807279996308493120992217823357789109861612181484014345943826999852387963956321749626932076878173019466670205485682319096922779113523187070239665760430710163000706556018648859670274932211742649566012450322212057850650786014918567203165616151960007652840892796949008439993927790101346526108575990830142202188768682709398011352616141610999715731181847866387452658876464953907252839614836397454647322951597177392716293786452407995424505694345320146631117078551137033496011928515993883084549904174758943015685707610350091972933504418537862782502107286253366610160974401956647644403073206920699789245979985576524786813553618997872514977433910648863539878906623840748212084881332346184880444974422618998142858862340498554136533800470520135928910372641107862165590371799816093624124990872277008030915976524347066368628699695605228374719394803599456949962744685966325338507665005722048954594095923883555040571869792951839780279221427403591877976020836165104160209004807123080143815599905987742170749563597555742923351472130910308465948747286304612330292145196635272988823796618291348933806971673135911642415913219677562429008010765805270164793577869338989387919051462537665628724818740059377975485593330738268278928786273863976751847100300473619564589098291769132135794495627134973634288854076668732381641123795700500878801416244960175994642301476892491384673524997211077132841400364001964667841658791297213337607226013470048587203179188859675919087951278855380330652110788436254380406837657442556208437621382172545558714552758929291621851796162316718777331819043078223106491936294588743903346299021552053371700262667406268491899200129623084428174257455381154199153121451828694891114142373156212660163712000217644292034561709065396776702185647123084071469382482779435890542302977736495969720985658389448302887230531245238894721094134761338281914275528955600211675656731355941238453568836096191293480802090562945740103178757187904694453814325456797845109302344731768315602606539327421416767934564670796000630548912196302438164834758010465488182030033550021354187545201366967307686563704115840439243999670056889971737066408348131808540682546901166760079615206851881703459941685539433603632996735224457868498199132163989654748864978029906237167085507406651094525962885912362637918990656522316094971232876583574352961011974901742780254799416458464579917443671904350693903096807315215605940200814054813495032901427011264819379618753032988706895881477404556244750328039447520219912409357366892550782775427396221000066891721621396872825114625161820029077974790270971869553450152521914666545195647199514856949570603299994286756783670669955112802229733780596916355170824318021286480265818743164799685094482082165708447451311373949203049742931714061182771521795837312353450281974599037864414436740264603123900804428365796138598818889459206969061030155195791351125948659852119473615479028623808638600863224393334100702853904412431178847741858867821353605202020819571116349805149800585915707971991572539398494332987408226103258181052015672144916165365645799357701779950994254655872356500255125249558449542968476370648564787360406964555277355269622867855509412412025740050500157398318171026457674616755650438703834987460093036262839747518673507872042135016162312754439370131041717752751334859596347790254649972288508113897085956824215865621465442551243437763305084538161777956701809402706816372521227969969511162017717128042113550170056626171232946019600872927812538154280853336447812290670145590310428849243376423738247434925613210919221089219115956304059347941765399418133131986683975885501774729069088128467838828869935252996654077145444167414163501768815822236725543103385769345721495149808867118088316687990011386226430362166666969341842341816906532103200593102958162763987740170675053086601246891150332021164308089912921066021521163470672846808682395096160041700910749326802510195658466737302118692006337346734091779078235820559017074377927034871515546627451053123723090522510173439760851570979045158956630431497228177685486158992909226498595930312988658391348603177053412024686940226310382278263430893346173387527835962676881837494002643486913295297317971849729507251011209264485896077873551031248277971855569656434717183783828689281234155464977691849197007195987122121051942309040825489266048406440401429384687476471721177204458134082357244635501412236291679256819381298749930954342338038416456916345042472854800880871034953583413384089871349168839114549282839348341625574788207003837214004678457346954956212583016096774889391675759781510401899411473064463242086990084688717888218047410212207797156647317647536748493353906500630806735233659527082431679508397068502071183850805217752238236258561032887210269180424057886059420883438528192723555875924361282976075847616802932615156395591915621095123718625058504010642361005701271003623599723535971749387054204255349908783677150058546091606062450444203744235363902805173232903565305739761589086446896303446570271685642283999340351330445990867218232479715163662230997881742917847253439604341689068859048311799774383574217641007886575240423044912492976312103456076139609625496387366071293356816595712336939938297133590484013299078924013285409166866645871215691064939877171171398175040128056923275610231493688027069610613497878506159542152844690947815387755730535648739651284904498695407098668883795781234362508759548031591522159012652062076396360900322814575639171210048270562433335303927516275281141309437915210026359242092854920519512753351895326026958598956408012244020492557895241064664353211558573547427865615676459601492463034822469490707191281398702176852896760723042565444594560195132020018080669238586113221433544515278621434027984919991098383480478102528546847407099139936509173810105483962023378047242156938995773488268760416412854512504899132892978820412690431055973025823910790749630867165759633301855312551935425753756769423708163716530204053970960580551011126704328577808966493388185924239325574362765079785087824492533077502936361053990400270616814824045982510285085569595446708970741620517305096121686425439995618633310782125139339095363997299503511940570985931933722475083911361847441681158697827172440151967337873875698961860183953099325490321022558691147584202441696112511119517909116266841598483503507261424675328783174051974184183361148814350826557357111943886912107979922393674732685536106157549976352164655895246550021936752549986887734631828823381108427920276752128837938596073233483135852749171291921853943031204683195048855007724972189731281989904365274534115806951898740714511508225849389911266056405393168934645477424153736425270370332300177949677602031520226652500876812586237477624081942993892578762885368206411946576136891102084469411127588209184359691222785954279577058401431396233749420178335572010512351965621107313944897171744621370093885057829303846187278642771804096185117646484837370861296465342046126151415522705515878762372919204874181437536921580552800209891414190925349440654408463670638233656770980080830391459096640470513383466846400235750803359894712685939462434411334383867494686657156916664481196762682428389632055534802871354597773870932586613408406279479185594007303946750775602598230608935816469808816778683638782947137237002848987737514860763244973582697918114509469445159109112080297601512905923775688197010755589277413633672808983747715199080250680399071382099194129783776341030044732187727524763771823195385559886883939369569592529798278106426085750641564801895750641106097045955097977139853911520265406178865807079238080077624355214982839160377714308362466000502257983057800085058826630800563978884996221740512722239177677211711761687973157953118808602186086073634348701047819434267761709597786082841494409917040690642046788271863263981222949241495275245968802931720821138637548611143281213650152571237072215582620314288584854184298800789708230194415975299741790009272140170223884666767973658033229866869382530833902274527087027593567240505745365009899080380567613382245218093067375712215525676756158999463401306598045434576829913492039922148032712268397401802467383311248826614246198559444390901131684166224599316665565667799720926590529719601563516074199568475663579116663172145949582361920182380706326546116980564595784626695080607352557438656752049746805440502116756952443618889033766338706905953495288786452523437439596885877308060851162987544643806698798694825873669873347681326455071973380655019702618958238230855679731122383519797799587180058294577700798636603516860031772441537356895418407288556085287983056089784247029075686654780120488551626405388462591983758137884754159203456478973372498996790178300545739456191416631105589431759387811901103589641875803889628677261234495767408601812466838641013129282159159363700873663798540913626967315092128353547338378882311655110052569590113586880498404956802743480716363310530139593465913255874178678857684118384020423335346915012174681959759853997768150827617610841388929387412404883224125857779946667735274291021290628673883101518147436365018483320748641870298613306534258758819196245138433667438629477507936432884191575082643047738706553638377678647262143473762926100678299139537900941054611673337831209167627010618773369945140045430049446940615546773389115158674079289497774678123140274451114651232336284211347500291358527399662612196333972887632932960340764420960320936918338879694476160682989785569738955335280673795033467403301265147694225847920517160635770312081347421132763626364843582603801345271349592605299172357425129167063875130039478218890446502543495928463892796766392053056734592789266025021302638678744919964159276310669845639711182299726299241233535585652742159879110619234054920028855146291316124306251059577178477021855560461255928332004029479996454110585083252360877506572485573524670038948824407895017012369005148401336518184722882734767683044950026218911229580619657349944417681785964874431821599601732927224063443291932357688397305610416369220466867038525008545525267518659491179339446273613445222094117320555871646449964033839551402133610649171923397151835650100831596677095121431115582442777978507958246672187882326511720724837320609947485999501778475669218665822389274086151683965834405704472641088522688597321481042065981313562803776208291692097138956344283424988343917395810273024761804273927601874546431788297237897415800115659216881722705459564731053361893970315687828740016124332698934506611558676188509506210910374825700371432744814742614811644249825665354566365802845460934285277510059757441264676374826617080781616110997670666063661789608624025341520514842088187862578571395241385900143399453591697552899756632288075538191141490752336562373438645108699450659115603310073118883212225746828479985165763393020597034943158243764498748344049943219821334067197789005252715369283857293437517142353186786793586845321760528421532938363532583100122029497551977360221887587080627127194235128354606481622990367938508208989990460539998775944463350667499245379232578529889888565514955196340869701194277941307876396582093284454018207842181704433915501083587290001891932718341994509614785477599023483272373097777998194989320950040954386319243158536945966058689205615415223216905538654941205470193018523877097223864195166194740943124901910466892690395789097117766673769407789692726687978177497372875166958989001247643179682249023747375645375488278189009477680164647931790742462184897010983844268078456718783575166519421365408436731569721428201860436301447520550790179395093780660605438333864170377775593637803335434412386015349512693970890870374630844017237838665122681273390123619026470608957944703733437064378750176640885678884880520767103621478814394192952539468718717695532586021114815724464143227781987768573308344425715165488896948160487582180208354482464151204399008932191620663255835476529702718836400173347023866371075109385758814592532807088907799764905916430973973894714896381059670854529632922508362623055147437324375998035569401493710337143806741376058102031729816096870865121760465876816373294684279357129669751437212870374004826439195261584943121027275658382208137067276452006402886412491354470211843274744869712913579055804695304182319068973630723694088978285368926140438237445826706343381811886320002490413924156053573651082970351849173442204655006919789760814350236879901228730958523823249728356920622230932004450188414786847658416796570427568258748324636983627316493294126756565272686545683426029738259215097207774141997933600073274523477402311204417510929774670516880339178134946726732468614258656105413612534919051276747302446457057237743198474727990394908241385199118131328303640038141893595945455019730560293883197735815546388594708232590281967015236868463913706936268795855318322029177979142168226009724371482713024964735921223131348841620815519977713835336417876446554826461574965796316530697812555484004878025815556896471204751178950125012491759275734737445908614059870409012562353995812714543741311733214008904981862376907519517907347445195658007935334730230924851119747310947150334000370126978583741362955713790320578869816148416333396516116310267735125657983158537344395801403308120763473928694204069042447340633838814325266841810067591125019734578368342050511612826947093455444170060428881791736002590782696848837863976430666726945678709991045275008610413028097823738900464359428027804036342778750629564178280260152117485539765426487972903174318824744715266536253263451574093900961794124686565432247459076696720558505020200510520244338698932117057117174872392278868739059591102200304835630856759196159876686665374401585186256065414319645148270133950833010465947378409006317983320396710741791535196573811000263666588426748618985352565186976425420499882429471034412926131652109096687923787851394653743119213516096030516540884533861909985073987913848602327372786065560409894271406486107431126352833731772819034911824599816913496512982893948911999125940999590529159486146195398816590293937986249825578656489638956686783202717976760681072553310284864024117006810044971405936190702930654072965097738701923269051696444716911980970064190714640046626410515441596720033388095299480018677228798147895610296024122162869560434134870054437740188511672750577781195321631709040682354712316124232066612609543539964806116317581434235940904405374240798572636633377811689803069364283780690104273545782749071568242970919312892821105874556126791815096159982889322151311361828559546499565018677840499035965640163353948443997589133268266944456164875859764722549322201251161647264011545979375581225180256501327589144273421566706803683141036053208800403682847960367496593589117199356785954571058053457178578025487103856665079040143081640944911249051005321249419717040658525190415271148747186370877597708077737789865793815287752453870463611472706467281289599278161523877393366770022978835844139127589812231872079467917503858172982970784157581833865174686316339066055149765351157144485140443066117322383332279254826369858493582422515203004414215552576812372956894925111011903040564099426610801685761080272085911356016964251113851531253157111964955587166328701316897314309296183488342082015761561117430278860489001371701846989174772802344148489254128916944181050644492157414553909036370913032452913838032850101894421500903745037775639525899808171564929644776094904680272645053910330027952136627165462219015010157387886772274154345101994428658391021926018433858552035971150040011433174649526796727247067515436696112228006776930225707751096949656051009007661984136082360752647674113433141918709589520497433786070808515052902953822383718037738656550947234975603012753736424448755615139118380799585599009073342840641625034697611801928607778747541720809555883070987818882862149781100784922207913447888726208318284071296364853809084409723058498258435734329356930125442072537768122425226647453341040132123926283486760320218127575755520208172206834966311602855998350238756187653974405611323873681141539385651334077720245672173935554414385278585574488493915362466941458627048410462900172043060981635044045781597449055359943604484481369410622507487175004994236617770984012166047222131572594405935759656653063306478487274261766096959652862460868188197199257811408092641353399757871102013334314763886439318474542674231756854982016984745343259983010280260199253330328960787672390992936618608318289768047349734532670062025893603283343821269356693550640346374359455207625366871518991305809178514456599197916243590552234316514581480563091752497444060726005450534529455126981026874382956896333199800054841394417438382421979611996276781814968142587229428044605150541899088150763973620067383694189196453029335574946657466126703391130197473790790321033610368985034688139180054488239530870356326306531248492219637964657606359567279526065034772729976460359637552401007384880275807388131057750096618995994476925640033437562960468098383448483533755795785678365320506178675020716604371916159831266374413167879049114298756393560633640506716020171969630060744773749868355406367954327414456955772604504504357110548043424110045230556710495171028911350975982583532999491949657939645483170288880995594952748499983126600349749828282368676925818974774549510876010688956514793419289979355675098215066643326818663070359661988938028408720743327238999093607142601105050387893843503435011419269967050851733729339350636562207002206430722264610770632736410246708597217208332480346284924830524638831964959027873839361867851265744472305789400052317012143570710662396932396588761193667622383560561260946578610206287152642524569803990175385630967166909141342962961303820467820539250112414395188981501826507223012558981937660081981577870732603610034797280411622041885545684318655876669152476741328703080629861938398141622245007060144578248982264410143094735653587730753368310952942950755408741433901112216894667756065688491449587346818310286499467956886319517596803232026636042881411189173350951781138245461391383096316992535879404344159384479697929741934269918150394568542253026239649669275172430045022075933200776033737032571506194978538515023691148785388012641279714922334578066964158265868683581545734354471483691194776233349493946454777610528336770257039574401080266574411649093566992240446869050985719160734696854308664033953227974651639683910223304436939032097471197243543454312369545631474530297208379295654017504251555816350950627044125006381034081165593867843798797361340735110246741364975958117367225738979519906678439821620708442506162490061072714582484587890776999543105262810153274687587494369246163556677840364579874998848902541029291597964886637680243557891014716001179127552275288528481049354180116888271552946966985689308681313742158113192475481885054299503190779963312475557441427097395083745236821520460884207444211022252456155620629152049850915954978172201874361156906592474040408269426217554368396321209977663822487849140694232483052950792660166510897284677961471593609019412019420063162532933375024790256785396139206904940098552732250783899257175230889711130656965696397565923642693203643497851028367033235748682463501148703534823499754410009841583057995333833773281034537028498675589672163909520908488009474821698173400481582243151425113392418770364360428234690093962262375043589646149478663717386099471971516334180430471580676878161762618092772107085886698776229826576800402881984023673041683239812856116422330611666855867092937652419249463631780130311582730803771693250468666692148882651447838901167964030402605606819484557549518802720281200628048273712218945490218141879823699692063498616420085760238248446546513506765871153769066033220779335401236515287573730142330694181774354188168488099195221918609853449249343561523619287630037407380704278156452674445371695487229583152313515296079091237974474843558549883637576900488685721769108888657400886283451798950219752588039815026320031478507231007983068491979539399006138084389626635322392149210980909397719876636561529132527459682543553032546125286083558498067140401400082969198920827443126664251289564123346504830504155230919477231892787092585390979640558396402401389599283077684992823593739289154313258428598073270830524588064449651617429489439873255738495497561227044760402914351077079219197282756773967005418969400495085854632930002396564726733205949809564668583877979218477698900885776509657025215123495092719854295320508717671149977178675114025497289492101420999686410390560118316423968811958757603081867131081715165965042485710928401672752687760524125504174562412210392745513483125192266845399755782601039737008589581044257311156585019291798994227953584761724256271833863038873398930907643125598685165416433296438837094554338217717817085958302643841910747797645413077479511172868206236316019365952389102656776432428314506726827672957500381134060963966274652622731863526259214773104365232246119238537927111067577857456525264169408987446569120982071222613078028356039188270992226941122670989865971248503506346190903167591652072902307753722523343687206360357104078693075922833072709452042407636006669266829480402833691507476211794818567581894962489129929636346438481871091990532893357978134164848059667853303530862153342063127906628661020276769729585366031664841815315080286162060204708774979574651718885316142387413092627110547630338269911005578224608950735858235987863414980744141727565841776392618970226778976561043855304960865068883824005724940858659942850850922670181643781429186651097732139445522041842675131356728832214688538360704993027953310021024800966498797042918318036378216185741036322130456083009358883055433380648989296092274415204420057789794245257119519328699084100370290003169167259293313264780222974516146705436548456834001079188853669091275380968474807629953616143539780714660981594735184377216187922751441218644051665875569817191229778602560085149272354431268918687718769448812984007336392420824881928876078392623299812054663339706316158258320454384712567719586191576500548135394903368761464520455149663867266797225525432958184779694337942744373592941178899864434335068774726015153652942143095927995012874438213586719474869085081725557154190769076204417711640338322750633208703631192826580043314154938340285097862081405491414844170928658247508032414836197062323584702613993764079360088299911971177179625729507295768271132529749533921175902266238533937016381801898976631663825265210839754392036077690203180635768167506963968767240349622168874720521814415197314859662231364188612370107154492645527805634644383840498014939835070691017547713943550495599082349686557582103343924832234551273146187607755038334848289357501486694587887897660661904469549665618364282710421255664925259800863053380295005477099849906840653973434090859966667865067577346688714993479216378256309576724201209653643608780898883620432063405057272144960155381122662749522692567317497143366929631086827950001896190020567479176890462593041171504892681330920516460744340026688318202518026248792465618769560447594620074558776578315699490177890189857801516422522244729106088301600770162963329416449484179721037098942611085465998656344400086714659740045254409862265912195851587039918659004843257135600684849871570760929228900707055108838501103223504182457875788656987831162356669666275415433067958671667314185106616825729722534765091014876517901181786247655081283484719851726327696482464340349788873072904503073106976304344063112634802449971959674160559190685841342964669521614994489891289155718197226343335737692529788771696791244022278733987436292674150644605768046224452663211742806579672028839158115586271186385912010107712095794904752724026019840461334197868987816953468165868458273683131205515334848126797317803367722565591293530003538487215304262019041704643313613823793282059285715145206745883701704219658995589035973269047681983284358532768848782623818664588392968328935473404951950324459844194382263783275427429529669299804660683847684235371109660732323548013873321580042678208458252971294902258566393909524332841651491319603179753426355228333276998640543362068292229457853925327007338859184471516181339275498978810983408070390608184107558903121191610920820063246837023614923489040739736444263779682691938681529781612195774721725043558189912332041591321894966853731726048583616283855363595270222959562138156786378940766431247609289353363575969442218207672360968231116784588949047977943712590077921332860797063222748194159479153504990415851569155216208141000585920676211593542508746705064455938478281152371238239408407853744587826195617803195974382533974926425250285836407435345250587586521163477741838865240690167833034101167631832008116688927618279327334971094631440307396946143822491504867735633515680196618302161828326106953065784405861057161151146204866680089143713022590114809276104285484651521751521375490888874025330230284499800294333245268823691192772272674575992739330101519612927610951873057619093961044355228384564478792672348826998532754096200009894166835830031915250138804449633145486821729677862349137883748876623920560400186625949204498294978675696627054779637051503421781288460939741828001778411877652715529362348078745617836496886961818138117684691158010816473246113382273579568269727055311037507961819628647453640378035953031162441732530432014319647765070055502892781440277994847114291912760148691869610288443695120748910290999605654298641152683990706772406861407189524725788166059145801519498575522546097521950605176151750513863009392458945073093693732489387696460648775824421405301170346782474547888634135445109902744796468917363192247156567570187391974480830064009480771508917059802347078144286786782864734602027730398720814200504515362080087602549993609503722666865766507216216267082804392780938523010760139123103294266840017391185551499638035411077661314023890600046981110034600467699421091905762525679536279939276874339476834333213988339770360339470682163074105190523192303533921095929151022009366629295674311169242435108664231995138679842635996183455518452721722321711138535624798213150875201306835293675049241500991684543541238597097463054138261247731442253798033219155592150369053902016444283437060115410805609605449999187694073114182083329922169680768615256011385923033541653662833874750168332526469007443780309697984483437420902921943371788961844001565626638381596074570632804854780092895551162794467536468510588854502651319028375776417457276690710425801216197033450306931799663758899842216110056447404836751059902422195806645891623142998724009431954993511352045463016795239258663931302274468572937471154208845245347704211709207758320492127539629045391412833172381461507134166912214828358897171676347828268279550900712253049858874415228409835455733168894167222790361618011623417585552506571864652559927183481825110826038207923788808297235757092461808953762663998259886887820676457077985525696332004719574822431204038478778334993684953021127635091112946507668702305689380305638052134781712680573310495565862801350086524698863577493533916056268011046222455056687133915102906628835038760704663867537464161287122218192569810742835724918300062091353622098058890172669703474943466934372315787348875235320257642718714919133241634111696858768102497405518595607616033435424825245716312349687419546540558936226112191122540990537279974435870505658927838125145234552440757475808539708107154576126347999099534681437419047838678165738485499881434799446624687893451307947396700251166963518780314844637597820298469169604839482664879079613179712561464468330575795049342912095123456766887959445862196956748227583872568721396070335871160319049492115311264190130756605762339731789771933494332687136341477585567499658725641333352836274609192701786580357870234702118422072344020008032117848615926538886727570785654601038392625162340308150905539599336603411585761248782046593845277594510497507222699758903916838042640209925073029463695292160974950549981002882845655670596881969467743622147481834255945562843196057864232028266699312569915737572419917108819540338330085888500156375543983185716366533936951614994933814503971473986730771890207506274815191753363117205967962566758647693267604406094810191927061581635674657796629228415912163537483097991014922763143217637097447152512333030253069376072923708487782763271515899715975170377358858772960967002670709941265512891774080575766481178958204251868039237581338677353282361559817134590036570318974075101338052183989192566560323526151847201408727324441387704822193133659133760054594886865612343800592081712995510625747693748722643641102384894753454089036714793764127988323906814361161377148760303404591634600539736875971264623327514367597093404782356368017570096389552039412481404038797596846900074290390033931716331998324913058397847877897923462838453530777818060897818200259009266674886104706872756093849176252402626206233219126956286129547444372575390602827827589196961221994391734550011274543686845086456997038053630812638069623806269129167436087366843525902409928956662178943620309770130919475162057623056947855712877500288344941505168960440389885553666571548426278362958732122155479830621655864725077592595470045814265980489404187449411427421509502579414864833597798579196806536970714860286244168497255609194553072121275493120217700457778870683542923564653813701780819610810290905837795697103986350993954038434813139822079772522248907998754119317808162373207066124073509000686131220121676020678636250146258988006729192842690982954708145176380252108092917728892087821762549802379479077448770268907252898171280573395399618912149622955243519853891508527956703076424732293764992039510700115497167118604601992908036559562207829372179652567357353660407496407642010750186422528188457909392799799947719133161340155646719288062066570231942064057199449178026312056541994623538651101344806767085258339417715165994766461063378461280011098464306376730032294923153390759752163508746780831184395921678721144564423161326837681071429302074841232394632431330075745497229034768126069322570121523738064542765155951306094069544653430767946684641465124739139028959651179357775213445867483914843234062512578206769804745392715244188795531770308125412487122450489336786827421535410176968740556360136910596313470075931730412320625788965280175397699652406953228090113176644711698589207720801056382626147330889002177204423766498747479490896253211617970184853547150358993469964249711041236328506558146822770945216476799707919197102353002477802784609928047547292743379205947225936004659272414794042429530315385726025179970463596778087568033371226681533732259960508606004609697044467871904634053539806932864808128078768073006471444515621568379683080711292085270095188291790428876872642461280948981410526040862442839274872471497749329246027382587472371070613792669483987620512819768491610426498797122759183178867823906438202731406456341189384784705770432912973358412625215558331136991682785558167518893179264466492106819559222146441097434414640121641991518155931144755065770793082852972201128861600209134798475357544526444749380875163087476624568629298260212310962896713317752853797941415140217800162969493049043721279862816393361894304835399331860058150071606236154209211795864147604699681344781240659951005387625091609467412646977552523162911899473434426418645943640606349803598315904536718428000763908495937623162366167554763781091526182762284399116350188952248153553874452148721645080712318000751939414182675062685337328724813392180346198664469289970970217799414406022547864293415418978498263257654374429312684767392113136606841239168945470925331571533344656757563607283084530936355861960545812675104445792827866028065467469849528842308159142885673863638129446873653992333608712891801514617476772914221927742393540329496809602775762717058707016920007205449499801761873641146314885197966283696216880049384030372781876244568686094693247642339981232937347807796724977237036576743009233018482907336668190748077616824191994110208618932280177987826342521076826635321370299582103229413708498634174143503580825223280784564935153279327719448456612345121660471314971512581351476252361030824132783197778653754726547789851738405544991388355454125939773949956208857956923083657017660156855683694547908495564768720465788550073072438720152524592759902820675804369812095585530551566535036338924748256342207080939299891522984024296659186340106421294989808776830787015713361834181533897210507225680481748690365586369884395245192602436584674310663490232919617079629327549944951219074406487186732044660015556790524555840890960766496884488985010326363768036186520406851612485051396153296272065986172472850696139252563348346512872130262093735846529858348003067578647644649448470679376566975040737248945804667191762015232171772189122173467353702591089623018939945077103575346134377025272697179785146555787473303820301261148874614541368317361788649878527998026316451746765653358664818891503446504263435733056667258292537133979750758143125286230567085686304223436745613883396229466763291361156708485303981505994361796578118211372134817149329333874223392575489848540559372306571872483951372471499351039354466574054609264626612695916387880572600177908779519872818140436149011671679520378292542211306341119058655550362955005405846989448275494031997920064929330916133483844568790369430723523781597741265945974995280568933621918236787842075068607268616300540931786739396059666946050594028094476050334485398829247762285271614961900408447662724423982513816191527053226619728956254794290427303601366799807017973825106553174968589619679855974131805223450399267866813982683454435143534866449265869062337143628927426054368550754459682247844948254358884773232287767562230274330638726705546512266625982794570335534665927110634459200858520364472282096295401474308947269798529182130134082867154847101159278502822565329444290442311245980712257580101564701965861353830239974071655725843252004022617430876859771987700616425757352159775623965610544662769517028279437528502821089381223271209540466076786907098835614439968996111007091848124034670643465986365780475670731140722787637830228705142819650292213732454559980081146046920754327608268472918927440369381417708808772222822467552099024530527895623500692207912997146449061999043730785436321207409350111095876591161649029093380261999450441232990907811653840638523869221187585009308460332829943991675224143270941309328177030976215605763459810585452552746945371907663112155018125466334806005298189499458149828325650665049347606477472939226123146612970361110834948031101113399108903750833391538735094493474429794016654561980729309148040975620940439578242783984900258974279232928340166918626566666326725211448853757450587962690018608817398900230056760662955298542601917062011263179639229676688991336497968149481245638792336413860527913211550448097845016772878370419221103307240773872614154328371510521622948656706669705221034051947693485873202141919021751812403242595666121859306968191132190999345483211628728990445323383940531354904966677832064728360346818026351688690288600912371360800592721431948731201934359789463141413589664617710740704005714525249409055635534408090845236218145678946093842449722220602741666147065679988862573089754191753052836480432485750606251986226647210498837225150575607759617826068273982141491706406652303061781022411014939293295906643950115017908110870933136919305504946608758048716632857140241935298262211068298507489267958767806186966565789904312616613474524806683492741533669539127466760954689782164968890588000989359732173605642772760761669178116955912727006113906161205979520750265976578488657018155309339831122347932740616392944464112192179884713485755299942224524709407712544686295005846088251418778299277023700060535642950573166623574035227995417105383886615650627983784540134435481505379837482311078429129332101071050008580236275631693642316794150515750523954175037585677107239608602651023956159749588253901344378826392520434922422641875926695707278915911321706838677366021731591440957419057056680572033382909204955372882156123505705487721473790841445988029404233165534969038786827832851936717016686714926281208500854464297052983166731429630824733312063600990880957669879566765402118076702532997405139409742971624333267986596583455746800772745916588700897954643680298852614809929307640005825399951803929480040618762145709843027674031040103652264455372337812589093355329964768265264446928996162157376263430626147704902521114696663254222429227358315594912718531596791696456972159395142084138174056687787422129926404904424432724235472136852202043150383251410759262323178845144559126004143382109879234967423488876285037948047459854867832383611072131105421365634026764715876565038989163237974043136471121665424410169827960862005672904051931822281347448164740691647042455494587263549677380782657137528478688471729610835912614959271058727739572859144579635617749628017494098672626938614571965867347724257535364286346914975672362236010839656539445164989665383768811888533958786882478131389582558642640901455527296921215361253934170622537089167648432202741345470009939857655977387079320609832453142244542413175204787785428252478884939007525116499576592235209592708922340099870097492281351025127453574370307704901827953883956178048664852430316267923694515916159794212519990618732911632319969631537500654594988596267035949123104471819080142201251231105146120983531541892663036001305754054419832000172900795220406455389804694821627742882840822479063886076887410468643330560288831061306983142521067993150363924606492515830591773609347802460144807718222034173309710009904714111604354032019550234054111006411889314112813078855791015389316413988805811241350111287456169493764811494224176092971011929618041530051261444450115190306619878529023824877960945032412344810153819292805417827737498429351635253094389346202750781765219154370152934793639843230630969156290107274381697875591845278410912182959460784284563519101063398551518045132003247720317351023157629529710404301631802500793346389841243252171768507458897373247413207952754733869099408719155142572123966553281907844433172381493009743873260575118618811740752564586515961492776174617603632869931071890617036489583437389353373623226665153657616438737829867831355417476830411383363719902892690312047490072387538358018926009124965568644864788586882579386398202955695613117277536215886991464767832123153150628711099450442043081715401348532885176173450779043717078436026113905498263343716294063921606004066377576861769389282841536929986695287825780553691870332817701823502029631011377564308103749609818366964800427776981786870266316659126909530803036381712947147710871270015482745114945144035557709641894348646236388324845559670901274076887025052126847272754552106641503785419535801882824160428140214358354801710026839750810304969311264605271307417459770766237247568940202211846201584150288197515467954964941728741199103555204057023091838527884044337901590533926684546704767504100636868952004545641220516420384464324542819288053350103035574883769592269558403500838534208687743834800377843741378478009009381154198380751905662742459129399119641514003884743826249185313225398449447171424440574226880095714399083268149808226097250558972950402547626018540113141415912439118071923761504489371607192289769927580439578885026806119613364636424037021370720580906660647935682344564900979779339143041593225068065065127827567196415154910127165515035804530849022193194452031647143787690690679007579516191437259474670634711526385422685270285693517556222706835631898460032616272758119449112010664991126472962327656322393968422231557829426151646702004890216144136230973621313212573323414869784292821096508443439992255178583265519294568608083595372315307264553947510584531777790713955018467508660777947319368856521673978334799334843528402326767155083401137986861257607789071398916200074503629208395476364279823902935905583807523793492143338662446297527410532410314826793871681275803336670677293222641853317224198971638178376339215257937926274462837670255102240138691900053199597607489268316936597711787409249797922363138334090226522550014421145875038579819786025230923254336113575920139354172685816559803935666741886229689353846895328945668873479086058444116199308538231643164726019071605047906144280918395925134696148487016589535517227733565790728214185139831899806892772239815750110561563330034674157501606011128373912986624219848191698509392793740324382361988582953539170437496578147235352810766501339699990959634073821197685004269545140237185603880429889477936250868751699541937536631368020128954508690739869383103349335868547568065882697255091447348271694072919429572006882606724904819838149836218241770134005302427187862589898699882111885453158219329949756786590508055365447757127687850790842280920535587929181742356063559180200334175550696008020576820328533389074122124787084141816365737559045339812305210156849304416624812137264976714182953978068830102762586220711773617804840488424071799218095278117284493898771349941725277537170103918157860950869078549950312242123025913858870604198136706507201485857552443965751248733200300135955234712659828724491904130764140206378610669490242794212507076462205686618278573173187898189565687036961876580050511249600122758675413934411512270670692079077307501229932882645262644717101556626082140672713849408134099275416323103701186288096143633771431308438560569335398261190062901599987538818064400159190185145112419379115801775722530262414836743395439851715558682919072413521287614454247307366710365262749004038902484350722410740680128198242657434450018625429324940753866476296998298941946194697460335608013087649684858229796815811885182606550452103166823873125539823032570674993185766457652645614485594348058645764922052229425311176580421117445699898584026670378520423498803915935967503258663462383480687736348775138892522062692119714675107169365475046359296988209011637689642781766532249870727436970324029604857646762254807630590254659178254690202558166549624993400645894560318442595731340831060478950904324069543373434670559565176575856635129204237967758754086531206203952920123952734894068964165802523175725270837442066146798298294430967967236507803009295551081700752130240764016008386378093772450007518479026432741768538134175425891514291473099337104863319860580751663587883813928320481908748831819764833204799276099127740069113648419495358706116886406314717064136157173671702532794083298660506381681983706822502965114367647550899914252081145277750093065401889524983636779452369221447176015613617439983870884857703053981486847805156815891262442129366890248474513943989055694106571230631052546005416892782671898732850098770411147338860938537055202225932508059475637331410140957472280433694002810153527061485113794708135612992610886713178099904938204709277869566139594444195841762116477326365018792681830686321834970099649156665173056503082958699785364202864868494510036220516572020497278456207594785246099082908736164571075981207945673725855657398654819203291780902542936990277115644162842758645635579111992032860905833683882058829972368054431528576908622568125113284646417073259736845105843828421191873428389437826059139997134982768604543647636033659081340576449814666852526533038787856025896069606907696148987101956111749447363153985443233652366451321437963702105385578562941594443022688384779705860614713874977685901155875664942034333593778439798079520483700493084153311440810007712612867905703264204761090482928913383582149824827949433685968423041478279343194440272915358232330997436447190062334378886605275536346857583325496951805230555071289825069652009604922316817319852896539982173752188980346696450907859650524716829470641389328011847826500825542398674771055940357339052713335553169201672859871372671150857584626277458599779313235437324651421052346538073967832488206709611934522223948185534506704677912711185353855730891833288352293876544633261503905395167694881116458958185293234239363735293555685969073432045128237540805970402195152038398462265925206977112170644002589950243775316779368047359438383102111491323952220002011483344595818126193168420314795518634119684605352261687968369917086302238276612392184876494359795911807875459701211093325013725637824103263715857205464569425189120751396002562878141981330857118528103567158606429689332949141731527846399813251239745191314988955336139772191952544156233712040778168920851960322586494613703109029581454364280351431970892138178751931238963437646204364654264190975642378608000229788595389372008195887394243004405717540917127775208955432113021974498949423204538052485597373714281028086958888023947585478413927365859688413484366403955798614712750345584287631670809061997004306841337501139507535260709218552199757473462786047565853974655339795947876598641800914456567674394542539980280683707313934713557309617545830678933963682610818714319718982150443597510552771139373869906186404757354176285919363307885873460344660993732013392701546040102791788961189988947344326215351799747625835068251640108288950810394227870629249360922860999002044878523809545026158091735598028632704515745963385794361559850891386000198542146876552443090804406775568205618651809968543613517249921006419447186442422491408564694345654473908296895777649274441665003420573737035791448881653350173675375699919806188135606438489500043284317241224882082793899395152355828914606127350489239634412623969789996798173641454377170602610503140515067116684112774945834753808633570705966224442202582849610519571910560547618353655940831123905917105654125978695490328197843475276478645715004310746044843344579301036034005021936333529185717162978494359985755310242277015275544570855746372330095325374057070949641420431501935468802268211881687517661528332598151456897056850048652783582946786357145556107430522476903221049648984329311103243599836716043809561569545239508936660389614451320358292104808369401986026484027117276895572679700631678903858842527874607996917808342565194141392896146809985448400449615594570775864515756041568390903456277354994678311056599228864555890505607717273234475994145778232254080276052394490155169448816201522783085266485060142868900162023729851268624497009399098029033538663693224307800231980277388643646827331183069831360322255792332529514748009254454840584750110525673998394332916628154694368490345816986719791464483147625992768677159759765750528603437467429320302176655446204000594683147746129796613204951891791621369992229725687288533655918377747121230591048248567143145711903088389292088211668390758527083620142078252159063450110059042653508634474409518193698243943735624601593614061209069149725176556320901896981226779689558148613891673794582303337360546829856450705273680610676642580808145947393473229180941535826150629396758416178926516162180903812635905949656001943661807011724786318435229018882726433795586651610139916066052001093502798395202098592026948004677974662360948713724399215727822935010614400701567120811336316120616396121993364771560915965679932372427704042342864760818244761423589805745219964999377322849564604817055625741547045431688753473227392245863000408280184983799884343350778559427155488654202157060519895179813238541420821972149036044323656457309640117424935397998538765217399851679483423284355417046972024524026921455678009310232066512879238720474484066470423355370553701809823286666831978110018524374133330842227668071443954785558432344432592456321089272043682052642747819545702336976686264217152798835748389585343739243786449201209340071469532665507613940444025133459273258399787455363490925698630764836462841755303672654853449144097941044282217947733610761394084019232785819956206909035229225141800436373904844948640324024286186571216734476353225865667337664431754525375375765338094899159011454673902186235093043873652416681306736348330008404199808349695066919438065527045732880165116735019154920874293036714333763571233037561758687292730670549287995981970925163374445226490785718361385048688393555450441342829765233235676906195584233261151504033205142916347757594090628416227956414813748296446750807984266202308358990968975115265500561432958310147890452446721599417891696457519346067475508187794903277399063482581063943655629968575466595356026336012356122071068938302747638269713890921042522729832566233127187666912649442754112384970825030279609103052729574700091055667043776122332540007927859295532364611915926415594182946570736795243556702816937443607031141935192264935412838130205586076950289287194972624988046442083307224778993245798460864912039427986310464655077159104132972328286159616907359836140961458971192178879171270201395248334809183819162449562865407393163726702341109978563198379417459800850954236022444614128878892174344646243324195466907112087138976479908440858461841786945415498963913429346202589060867981190776406353498680200275821441957626714143585646558957586060110656586648822653977115800320950746104572884549873378863637137461754786133022148539634944478517554306528000145100723794257344751251996762776173196987195030621948069211417230663904646318141541914271271101642422859908386432522075880407356775382302528997019549474623102572490926911388340045283650053262990273387709165247338074786718922000740655225391625479128909572341253692725255884051447765747462198690587354073178519616171887646816306033709428331514542008380274203349088761557111781879892611019573339982874232137215787400145035617985310199441710713078665563296950992417861712361821672219916636034990918989636895693528981569789842067409080284632283088825161806967500262728450626817553267632142838845025374866069488148748292751726474961066533858290890786907308004206394658551152253726015881196244841286373330258600916358353063655739730139377435581465671368912113852324647405326966425333566345278976854971470197668106357853678285432492203499055052815912601315849710283839925265401519435258407293056553459506494919479087262819071045239305786809088280386488544585132221891528369454085578838501684199427173500648084024276216342047248040841508137282619424316039181565095784069033759163527100946861009097577155582120940953147908463481971521483613496109180884640503712454513483232132327268799717968187811481242530427982478791975085563989308464475817434926597764820936862793544812577129133239012218468886433596183077244706883232965597193236054788982443851984622695263404824433171843076022075680692508920029042197154102579965936342484809478181530579783436937819590572099807656324386276595933761756808821361899371161236673999692334394086639310688723214395294268766174901146451879335840211056831994653042184671624363160323883007279031573673210101993353263870180284232486177116929331167250252730601216952262966403842674996935054188831839194934201520895872410698689968657982478998069180784264188936555614032812743386676172678719485206574883173233007331694747385334851721404170690375822568467868663950285154675919847373562310981478517425741505493157487549827905297749219301212129395250630615541181594005419309333242363335446574995641592287718499367466388640593897738509089848890590230507973344780417775953143640424876272216211633037642204928719165051301552732970516127901470605636900881936477522037373956374590528316323082882828259245385680734443393815812410203573254667391799290543504457928714505691580561773171065037737797702850023202609888988084694036296983971967052227870724000941971176695894062988634510704761702532608538777069908641248664935198933325112048246088135985773039609336365931217116917944369472133432418089993862041314519776220854201833988584432079296305803420490243376667122501481642322491490675925167927278823533081378988280001115409127562985585363964874607957086753556661811657529148765608710320819889113589805287584064789765586095954342817185025795434664644682992744367478137015905744429940848599947476407630163246303679146775461207629576729613506981928440976063754152267568820378175237995294096402947806643849293765910800742500618111807282654715626917066378960487389271831983801388427263112155382154330686254690020404576194231869597731216540896023895212947288169449972799021256056492830904642299498096773675816339134046189077077360342546989746199749610980433181238485995527406618555843710142125433985543820868579945345910984164115140128938478550110393542073118014491700657921422437666658945996395483275546160778723975591591113164405954716541416989745072223574632914237116753386671114859729044080153245318850495444652390058370700990087259486644262713649087771265824259915486698216102477910228795897816899537638871485943249629389471093044546899972379459153703772300878473826946088283244324296783932704405926997054221297356059513493509847482625828270442492928268760145182763313297457079878182718634176340680125514885253785845229224752919480742203639325931089393002262203215877800887815067818561347235087314940039619462731476532364068954815935713378514836963650166186103104227554037672530634609784586651352620438000846967466732976367577876220153071356181245063403937411080117752856977778446915700317542903355390471677393977379931243935210065870314801641111574814876789307465080742093027313802997452966575086082504768561005846154535996119780712662692575065187869119392231477610200108775331555511484261196530939545229787600801417778154195747118797936318427462486013223572421148770478596419643921755072353232780404775742393875848478817058960073968505358457446600737731155960925203215604985889499505107582672578164064389907867827655767027763631310286423053762457157581647470589345263366896231725439293575617227500277158273292218868208334688483453929045881544406728005328085393014638793554284945571262609742244555402551057237215930273729922242244287545898619712808466581048806989945213469565319010560308011852606201045688821670003871794184826391344265713227860924637549124895679934954063878366003560191725230349412931435197485695418522149008515999645776350993152649775357111274848687328630336591051239660247337605814893438229087912307770291247971203879349510765290149625409949528699828470430685943996923942099097038488842294807420372591368555976238603819039010900147864571467235164033229438933950869533833815349576891766763020005000996443134166566643171916246134162895156655968727129591194243808993534798102860205463907556718054610094306593510317016097043787707620350361799642671135691947752326819362623906887506495119111381941458830093706891530581456824896969638357013738392574998808265657605892752944393166481956004475702970877486997392126621641081722710418063493813695002936051004784167547269124775929322897957585964959500481488051493977334806700908674458771945695609775533966016219406375781066820935701841566871091409202634995051721730271185432282628876613991183503675773990455706882163117076899315060300208551349474240328022336520209976136074060937137436998527372927025240471496357568292275857552281391938528516006097218120915435928474887472722412872329912823705055421046904341622877654068901330813072853448307179372268974025500585961648926698024484992181755101562451922484291164138899486668096615018598896087446537907800259386788191941161151117269935635505916816053720305209319866168152022979579187992127457081341234288220633803601072016174395209495591673905025084729962346939865741340553811183332206305342147468189147566557175331612538508138197451431312069289954246240132740783201464658422142191756239802152072620981758475420896431647335280835058968607593838446520427875603450809599488578778702437807153741796989682331978123022357277328016376226950971928595010799582720327869264257452059919258415086979343373274139909279613733930790853341882814068160002519392103187053568851982977548285655026429727616762743706856699691598812807555087194138995039655549776924217816032508071154007451666934925530148268425356762685700948861127149631702841471777640759036665020749732404298423598844055818624252663010125638918075670193833261017725250486577040353365029721283669650776642263437865375101651767353047473175360571386321219115350782468195865677072701810567215558983029681604062608851777369986688834233857504245596555413441348246493130501968424877834330217045049373101114690788490687456655711751750728480580234049898409073474671748499639187207750701882857293951691671476458567962816457894174113893850604518843173128703935813039823506542114224621070535053594413448701296980786696715467171822004418298348027289139361120161688102136161430940160775196492788737143113084703219477725598110649817268743158874617253170705097802451190881164164279917590709907987014524947050827611138378308862181718393995882612327954620137881497342634664627511109023992577578598797349602264592400521121458109471319347121279012607462063915550040495422786880771992561006036857722217691720035573763006114771490184421954574103499001878637561298776509213682848078666322040563989678419653413686092171178428358925811832977786459348284487763252941362800692363060588932884163396472151648788356742232200963164813101577453653279203288264270851952510684100741658474155718631513467828041333112182563987934780060381136351296997417499261402750382582309048399983690852031440289501067099746785633993641143453052807031523815074192577376266668648689565550740546043978845270160301182717324858470366455348258499985926866299351647569684285384364485028247598809367666959326746593483709717400061381850675019442549982009481615579362950031687275403497980772683109523809310450858794972372743673038834698152220693607425842935430209866638779175547254530063613247486713717484500755448726083333685085731304736106810159254657183829074323745771323300868193983685957369291490388679239842148878866890318871911618943526040235751490688602244051568801527180825995651360493942031846815031512125386052575736688396240255904498200855247344509083177123429929103762051195808508193355858956854944828839456875423942624520992073068620661221837224334283691155747755570670271368074092734906443361498871537492885286976161583439680361726559746280087672792984160697818193163927005789878184160628553801779425862873662775566906105261696460386041516821163773788776472169104017692029470412024668062511741096586997620023237242031479194512560224271505049126166513763209081635075897655188669342180885352637860123579847567766371003059166264883652829066076808399876598911675646372280594702339773647040225908782114680100158801163312468890673703321686518572687146198928691579984778435226667646807484006663705855859919859700840506449289098728049375817160823696359471922661599321343946376047235762032153817524893215733245004452712412817636057589753779489710217202253961618175450385553540538148191645973075279918908769519883802879374570211740007473350072448730128610666885289064345992126835796002512047620487672466313536271801949504580680271156694191066713415107296588656872786215680546674006925613468008921284953165291026553289420795311698482783808130425108207124023345632101453085666830497024029089999542334316774366487805943215080735450313682057938679138089252771594945049438729437029620934108533031223828432668452331419786757076183973626838466013525708878836736503145913438217846147799313236334803205712313385587873027178139609475839744577127494167617317632158014862745807845019342325329366887413208343238410653915887574325728808026227564683169525874725111177572160418107306049195759249587113471450903725598361818472837970156083768320337368153097632060589292096166312471705275720101635192943577309600864941338095787721667667268051125704289295794618253257303178993083648070817570881962583914635727947710797532586244717128289498307186252281861892941863899243329004609091112171247764907386724045830501082778887300384426532482983161121202107100154887960523424311907128763400301801411347424465169595025838222502139485150566684974800190471029425393927814250439550509994002974566334345244103186837000815582414363235196440289916521403262613715337920156052857969255722290051558070333476297455224622148440901635224387933426868201324938442717562834570473539363419862966006608523200390511120027507275912143146154346896042686687596244132467895958767464839479856553280314624772914353569821897495235490231965284191846200830070923945006803474960873956641245833362946192366650006487593529786416854458009750245302602356033016046848231068282585305236103941425856606283273486594087214145054051649415394959708611863698670563917133479309715945636894009928585706268100706340027363408719238340373483074042653808086440560782599943026707017626688094868312066573131597218005154438827509256554418741016599576481692475491824559940608591516711113333307523448008031830796598147560069419929233650573096304171979807006544722540128755154730111502711350625553946202698620531091749543537553503360536053587188174333814004946670733650170327732547039632358983454909426817991620247267552061449571721038403929739623938513144785133267809849936733521386384394653319339539954891139586634636519992168294766183308728789728264180324175912493485946494768114001420318940377978698223087675046210332680774121634547723405249400316600652555131891558073648766211130316758376191519276780654083498375850582717749105599424664826075550458181837996967219762277249061443580414135805074132978884165534784322480634645873938679701321437424651909556490836401542683769271543661063902312184431856600251111020881951271428561901345052067322692391737949905817877894397183765355787033662726812597044343374429405286084361118236353827692223734062515822769166124981472541465275784586282424020871807735914842276065377518643492233412960233047576068061489564799219200084141051121284901560682043393350995401426027515647093222362600091270223582810598233420577250195339971112951666472847361921225927198629732309461342120152707849155879081887803876369382363977314983560965356345791028718663225521870370538847187966652900463819093887342288137086214625846819500093834350103578659663954249258576167602803509651692309884862917884996842628922052920571442138860570114581348495801968924123993948626514532254078234938477988816272424658572679365772402834942098717367277209725570471345806120579305923499474458272055403782761421816020852127432715460037949180203139203557487213717273093454853958398586396730896183649918447046383216583153389023024795658517056445239675478796419915084805909399549448539465266164081562202999970158549035444182601858961038728285880970241125684372660610102916875577393294297034083346295956687221450539312814885381334821625099944829147852333700840772182135134853226847443966481753250918654509143535475631664710191346323465758341293808979266915638136426245107288095057835576552207302542039914841213409459656846694045563179206543320047726673480657917925349006198833636619227857138554191466425208758805748421956572990443033481240561620728809447319956689166641826607809103376439430276797384890608026926706655598276605784760896532256119844463197600146708638564751805346222181612816027294119227629845544125510260381163557728720125583356745461398092177383630047286114523641309550897274557952876718104647567898122845238245062937878718408623437811775993340615049059281570245441849039720813701028531665589919243992805190628294832253218092420062268581267034715073038906755914065847050537047642041735233307305621651555787880757795383477170120568857194597277438512604735088113737754360002166788713609782679522396273839392059573908253802078355327197149427367477133117946826909950692664657153549937992573685994678889049624161727097791698381098303593665834934375426394791506349348819155072193504159349630504655478451016343496644284555397039541280279076585912374287901539718240209482112533002227827681361646611164619739359136771305904777618209753508033219561270605757883162816963174012562291302157546666256761295999016436859352889508679915033973994374569609578496132919815938118758256328782143094041714025813847125562422058900318373730247705865165422198800257420023297282880536886736190306844810599666317762358775862940786241705795947401908719267149685046790695175441068619862022645978510963685397803103487820281043842941767496029062379537728316379303105092652337151496378337121486335872802507868482974357370937608940067252629020276776882642385210747923499963954314920853578531995526638002540875694428235640813220353939689202108455387903028275618898784346925877690218812240456548654531324446168259523170751108975100574247834765807348889676060255426896396199347232275941031696913162912887049532265589609204505484783364138496331122896654942873481223593234125114782760754699435185925379379641496155017495178073529295855957136750327487080173440763669212310179779473864204690578064564851057613543869213954434209099810639237881196971518786619217608475467570314286540763219636698358127612563687606525183765448757888016694062546789069441402123314924110567300777299593434866543891036489968878209864233023081382029716552717177061124557758100661372921372326380768142244470526724868808145267985163894543581451465869418828004189479678810849024762893870739428846452877546926663945971270779949611595036302582957835397911764706556366226628147754864380493373817460943545555862795686907221552622022036520379662585410823770403098448411865177605089268758199904756886049662125844869955425071905970088191139360437985176679734065829110423787931262027494751516609226857542170187387329049074208578203697101417827987342242722639874864836886550405738386502647905248618635214115646064601738919923871983598950746258033737233653740273102237855673590237196822867498339839948793916293754799796422377024779399793089756990092596799716065978492443453963637913721926324754638492590381465338983700106453092482529372349031979613907061493938186948602294998389512388238331302997025267452673016602660588492505121039019075734406886218189677595550802472343415156279809530841964410596704412304788970870965244767662192433397816651799463242494906946357514546498270327765527984158766469825992823320134655741437888119755751100254238993078114711125472618216196053086478550257473387272097868412377924535443873757859247412672927559712128968411998413236196370254257273048520713075607228246560910917087004260472905387537250292004405124249245630216786376449782367735112900538554186712522967702983761598617427245406399321365368039937844972782039781385648435995319963275449043003790891574916901066159625255065444120374960478278164213356561585258003598829618237970216231844172186431604734280734686041629943267184333398554183612722599053234643705133335538486434245299414192366439074158242162784399480873617005748376054136344201976324421907229306570780944463233225698569443541402186969287116676873214837875770103635665934083850601862242275769190028958436139731321802911174856417432907596096025775876538133950291455726207963429610101690940609034916214403845718125525706792267587775007457098119849671643579916387263370725988135588650268546615727986834769591386009553508469435746790285468777552867074343965357584165812531459861333259615806871947802040053588095354220142824928997940027548247232105620274421827879476418073798461967556089873149640301647426382916852963995669799874796758887356318284272572369811410211560344250763635502647661563078571659945249280594747926636504130811840508237392806027837622234842915666583198609003801866540827533321270748104594497676104330726667841474433959098527485299085759841395317083631817254589395662467391185807576222509543447796588840474666852648116931372188752009631696444239230675234327141073787514411305996824553429458528932950994248232811726134022888722052862098178365930721498786537732956560312547371541814045713553744612147289677744748463469516157706615676018280645651384672076344394405826463472762554113819834653905219919810808594245398711677053386916353346078923659207616996554624086341418659840661283448353492572247565937003058419371962928987680559136871519748368914180681013989729015324166646298741379687931405882041912101690855131228639616975201983945647383041954154563567821106826451779608339769731602824827382966006434336312633779278348882436730367034733756122235977133195287826283180364607710355937837312064437973896103584266058087946906722163101833020964887219500123489767961827276556256559346113114176443201043518944321927535887344412177216905661577628491239348045900204934529600683489244796075714627228439245306484029893614198441003496767021076576638741708906576297736047261945939214298105875715946839807905450159836568916389618101403789676857838320091483123781574372163190775959817294324585350235834859253306406663007005181418455743294948584619407986350113387742565015369178716880282548240845504998655089505480891033851558627207529798756070493734187591104084348284608480430342230748209138668075565604956801933554802459050456851628186522860240153544992956996836867498389603200529379283117264633885237191785529592334040925643023986915688264799082072684734216145884891808920168799187988989248272963860536062772811421991821482789251478648813138072029463501231795636560208926577472168282706403473768912883516122516882659281580023292251591535905319850755091038220152685898800240978340771713442207503186205230705795111826984432326179000684184014245090100258718870999523247112047535805177519582439294234059976271212537148657784412572188705823189319593727251053831319624305587781121375010515659843133303207229687471804198367955099879414145477037621109989314813544382461344138956798421703068495766259612541795845564923988874305153603099954685442984224150157615837983758193387459689471298377981216090265984769082331521671199810511275178504294984753502522089408762720499150937531789458793296578148875145608417159436747460433893998316059039386576094896801238746634013996732055093036055825629479460988767119240847155996145684063827305066251917946743861630941688981571759194922133174228281860502651656956653621134534035424154548013927341169552370497383213949207655808147987293667000966717154469635779432548241417181269783376374471233349233519273409410758977482745761074475846137387963828613615921975005016501943426421300511550622647058162434135521817792006266841563987327064211160009923676726082501676515305418037128560241850279570950987049181470750123682795003764131468836761023198890249485427072009959962054207943065488078914269461663029687417285463583841118455825293595425350637637062278482611968940664122532541361648393021659336678445771591012360176781371605921501278926076845919315176175426269078714253035416014948818777588248514208003375142236614625726265077541471457451952017161659571412255914486305848626083999753380023194949677660302940368384106561050517243135459998102578203608035268709905213612935911427206873138169020101069455678502632200562702659708530450364754643832970279613973671951510437031285670993464427595456831213557419051821408034049141227256853698789305342398541177687153397458293362300383779304831616129226836832185944501803438545908690873883799943338677280838778464674833638484783805820218548613418507405295768218108741458811663850247859088571870480091025126868454877294366206216429337612214759720294889561017982096547514147013440099810944762377523679265267805189734024694913602618431193782675394823135528953242775173769667282378964629283530457031359780423196781793320883617712612428564160944854919780726809306704985162186421352184187111878249091600001885074562464385602266824137388983244915073694683912492678822954968775572288454182966911118146829208300506909179877123967002134278690381501319153582284031321698458700246806140959940291814481997311870811437206822543487447967778088158165781296092323484215452941541836331779743434792742060699077013764188507953346698983962269753388469728734989253734065707437051507979835174590434013190516469571224458511092686547409194881576472259857907539344693474989946135542640262276710205739178924143645761029088907243398916400436541126471328754432334655292404582287294238014359728167867425364940226001056943430190872281809264009958868368992366400040140755900234424221652390200354210533552624339769541664642529104795598627097054732046982786103707291869123665445972179387026318054427053688633547240799625190067013558720805833530583091240595412081402798629134600216511207449890559625524082996602665547835851406004408895619509757902441920900905766508432647948361699367773302958126826141282467029061723064865989340985883167637053998068413272819201524926396065098405672285561034530660306412669889328501784822100032034154974836468340688643846428401741046736739528760488340278049081606875725914536351320296209780541183379955929037216502805750401317997913861515502013955017104601497603830268630739970758521624227666147063560795766254953816998838486153757423558265975398071982398861746110268794730586519520467648889378810309637618449639883598760405157210066557384374502765845862394934497818394722529806509407492397583709278291333874551271149466922854169092562287617022292267191848990865450739852737777776637800761333336336686875873259071456164784190728769033290556545259995215620311011451515781893306352613322577734870692846915586225743296896971515783709204078592991572143864180631035638754857491333749677503039882002127693948316817649391373130759274166413160244955826912975256540161823478185786172616271134420807115914792247149677499587959464380736410007505203272463131307925575509123949192314976460725198883845816200395063095106943015305208849316591164382111842434467269577919178443913025554801742362857282937689830322522973788712575714694351565453564108741941945489585608739235982079994234747520118367755454237878244898775040504354439432167823721627992833267058608163872195057434048481128312764469311108696441087055171094380487768251757341683413355389902640660868782024258954582719504265798728935834051854572635885896167017604606788956687662762401362604902784390985534804244746537270690324461946767035226800542733898490443558025781413613436034739640546561796622777952121281114444546074981883092994919846504637641306869742905106384182745570564391597885070703534106258707235274807562759314946913828665792547646323859929562873916980843891641634827450997828189630776221766250683665014173162208271296319166634542397359382480570419988787346883980377948015864364863522799505021289220828915850532091677182669421460120787712819175193136901937673255032825902718052858275594136463347379544016013169223423924282285130188208240115189213189580412461338642019439541493469614679225807467023087700303817757042194393958527010130165103887595222462362747254642664886018550536944737122358446832401470715913198205702869481495268339158543719837395862080511008670206844974004618873606533129995439734631632121028847007330366438333745659631693660918683681984875817362252410100059468133563975525452072527965394299405831334630117834693487436177060677206884447252706820186223384568458419147554937514611342831940688556245701916902941958885936890389952402150508530625672135975573655632725499949914255642144263871255573407842968421154856403606817098804155709883697091410172736345821723988037441393917424733562903411817973211297863806341165636047859721597156674338630077847565552513594038398618280264671789096603693388325983080403831376942068221092611355605094676716215521312285429047803385206920065212419106136599516243370734535651643915996025693885263182823324582033746212706933533650942984363286011883089976334471346845301670213421203654734196654410532861129959066894413461447035497127136051883744414848519199509909301723905965104837639763554746055591597802394062533157412365939147977564414755393625209769469643306504537150788189725217820390611921175802455523959084121434430840841157462379116904657670025588138380568707364670888205841187612093069319107266578489870806479401964493207078272697549705604695981462808115021391414198122726387859630002730383455093663491777898823550858882281612182541636972138465317574433566857423251123373357485701590547903341211830973395766400893778879515001910067631046690082911643065831191359667825393402760895435476020719925763956882866874258021003071973362801633969657608423445659132541406263922795840992739749544352106201452607877891959266849317168182614512289401449947323003081503317745685572981290358881979795045779165651616859975648106545663470787558013661481300091475010724135142490535751100998052452814659992689225053665585024203319551145466255824567146121095446140090047255377141482922965069015885103557928064986153224426864251845783524375160620151830282871858312239793495563810374072850382243771083427249677502187712957561156316010519238070837024491464497224729598479840045054183298186086577577168448493185988257551278225196697160314376913330312952304464581778713780093972999484255253365070853170576672990272697768024050105392714794850101927717883981962511414527993248602032705735046425930028977085217428279510556643694596053039958428891894559191788233632107999160369772818531102068329492046566244862064789292403572403941743706518868383847469828839734492244900629629690237057762359215100676499473533235203786811261422449063903851986213262507656626421801160750430700201170754095075174573242039729904920884219304643934247487326550597237456186962711138569978593949423242676011539325032321562006382419517615740521983600149525934092874308112371254456479348353542002900936463504450631420573411028795216823323559448079068076838325380362243084823173298561521170310112557384547661517218862208421789740072112425912258542635819988671106405916832532291040709687986422923260084602269709141020895396858487177042717427533565757348022545880390397882826743287592568613953437106666519995316745186406077361102959346827984544166070127388407742339764534491938219325333142290694516289667435740517492469395517296807474858437007857527551424279741987309278302493410281327898646080366862193918766694260429910564920905807731366957885287082047462583015254746977998716453220112413679753777421871687453711728103718755502651345759673558944142355388427133379070823252541301241729152017823075691491761598780213444534632341015702688972986912345248792842620804210100683351284475111772357992480681398229731213827873919829880147190412128024450213154694351957210907702410818869602381741714764230045960364612944408521579170317689816641171188868530211434978930688913390699291941105384654590287093978922564080708122391329371322436856526938818942432037974450617642175970638099134125359720315010892379024193393191951892136184526267621832376575986237816420886216146183059553693395414485151226655049144793119242151259445836213669303189087647417380319257464376956594559843777673693183857296207603197924789981083512399054076088656667414156853182006570509872936146158186034408106497365865764993119808116361433682099366609890966879284267694128113585891608245030029115536271887441972222559438850660331347806481795591144502038672950487429025278091853254840459806989431145769709013087019687460738986221746119900926275261912580965780735843330599912876718968012988956047636922971000733789189098926607234919615408280038672783765891795558565011631344530872447857831911872662109011693862590379260247032728633246799866415814151966907646425701760788940299595073755522029898130590460794051173636928526311211657818015506745838272687628821352366778395516062456352714664929838108182216185871370729584020801406210218918814781086431451257417403426563640355796041536280213961983423002213537878255394606165190742927326326518088091178431546376232151517954118893587453048375259665155811555179229573929824647043447574352363481468611041402688706414313136175760866984553970208739469505608222652997691333983245853467860542110584835677658039638186709755998381677605171958468733111341079618379164497473674378627393943478107018562023050944068120579614888730445589187983685762533020385014483909775525152260141884972685482195199932203504353010264657019270034847017627562139312597354048034630206294662977363025891052723871259746536334876299391499610581834754152272588393399970573304938893410799382007131305560695560543072299155526184196847143459050613973655923891431918813954118732687901536486566732007577358297769954985324803882764113917223444923269124203655430854073167069337938486051885793507538528181647946608944924625964843093314733299675700650906381983487725410841011073750533857361898528836146168647199968695319601779464783289839641564708356810340532883713874924317144453171771248071994322952247570251587589531556242818637730387610023431240725996051986232020845208442101771950478798680790430703518872245013921883921973226374264486098134286558607627143432565158752501711466362961159384200245155590248023917025266656979495082783213268934508395282143983755272875123243938833394122779516186415005302408116107107588494409769242779737056603777140688004387173233338644491913277880166188385999368325410758645686113977842899663836014754972711829902634883320600366255254574453831926672716132478518893906251702465647588248870618137864595001250406531073047840544205546798125361708471622602597054640228596278528890718976361007612435228829811288231789838830224446819406758637859347035588130825253042597541004591110409353693439063787135585698107103835792253905361285581245458837053073810186049878822199133894890035287857324502152495654976338804494152302820813420150858855430426424862553023313624462988940091464003497630532161578183625842505653512051372643963042186029213271797640267262935402567400388367432353423644856233418687326452773651331472804803865185342381773592626606876241678946319798395182349814090675095028558700881906338915553934845021383715552401217426141003254513091636379468978691891092005776052858149283901458465814746841610030744188225547179957857337880066060815175994052720257724068284992078118285072287277275431426022890916568315744931620992831428959406872329148075165230875876756713543794228218197954129957928340977805777292562375743143131410166715921422016076215751753034040078305277385367035001582336850511599316600626669807534394970402057472286716337409086598805605147356832888082736337627056254753164145851894173313591790718751686502097967422005308407707154508694679606355635421663734961440303541764231393159993557346085893098255302690714480893590903748781259635691790824031617061542358941115655486210889841514378632210109535715126654224168825573641957817473187019260768287629103489222304921163994435846383286002258102093864874241925671714041745457015967764059454666025483146625524410990621118706322887844022336181618680957238665151652460908092630473986223780107649658321579127299702019599968680540107079100488683075361188258537465842576311660932121490855667287471627385155625785042403183129563755592593650290915479978108172905633105128535192581780063763624519407222565738316546086716115272303074744821805205283455510939367900242490732193696515303506953839983671046664872360469640157780322883547624802560026955178988801956321068645697850062121333281178285050022949309115230135178162181555397254874858932417720414778416368783671521543590563009201557824808388964355262412996760017194540982936861763926033259161250768023545154923944278507713041431431529168707469068921535157437343810327558119226541875156812691704553713688558811169887513970188934114835262003953386864274299793451898506726012155347965145588719927668292210733813471104594772083496604454651683119216663913431603625626635534281283764507784260230739382476694234577015233388501114128351036508296589504778611844479817426304885182621216914602535823931620445128006735596242929553075828810910205398980819860053729174392410865113773270726429761662849544592589192734796528462000764867110413851750058190987530655170888571071975089218690297218796439642093483875478089762435116977655118975936991918113752367042968206602958568370568565350717471710191357787500057869760844752671827757257710985713167069853437315142241304306771847725850756804902595048806348392644142014313908669319563733421500047686403351674735266471540370436599737406158748947272865740343103403263885025594676952262997179827676567166392360224180201929434588923622098507164181637423745797668771361669175058113737494262702886211652080040237376415125800596067898076977784223130736775368737888488535347063780597887166966955722642396614196817185025351755225478958279006721867097819706542921316355446984892043448187228461283947145778234575753206561822975274472481478864573633968668815720641670800073327451022970493009075694894797852450532488743464060580057273336015809669213411341056618604243566081743760224095925179516400920135963005181371211691290565221330366382680783680974923803054638013903595424445138809465855518653115492888632073104803845282587233062861357382675451887359650908880494680595195425894287121051095911900700493324961268996051513167762558996650027453649064030743237845253771262885084117035706908816670202669863112340653676143304934932553380077804433965854308921425526332643100533865520118775244592946653168116355076307137905915649514292203033320778553136212565051943534753939271010567787995205751815591399800196053790178124885707528542337968136601771905557009310631367636081407483198195455919794388258762964076683942265044332252146172334929184879370982203638760186200931466707387393694541291348986796143185732805618569111636798356676881939371096589785928145307874237784174359653827226915256261998929529339108604563677649831676330293308974867245463128075617191792658214361085137747598081955570820945546989455353449072925094281589703138461781052276895706439577390789075710540733821570350093083318623058175578678557778642483862749697432809018781175466822271866453122716961482031315047392383364520767496948546878402958021073401108617873848166709557755499179195486157833657703161636695896753537743543619515556214527020515384160550891596204667029102648594924988738100495207382214183904449346678016728687171373899183132258815008512027679705067994125113799229219619440492129292442191168667607273892719345532125272758210625269063743594641695076266595518130879554430724584847518272008858835860497252795466677919230675900219164269669098053051353429436429755030245976840664021602018004029103866900990053879744048662592832557774520397153950006394842320152106914611145850846751993899816130778629107212806052929707841713008395442446508163873059570736231767979245392857272787751767492752673615577739779379108898568096292455507274458586638042274482141598561796822931284330290224472094933258133962923392717313191610111096339356462791078315718729681792225153113963255257837498483080317098588509490552160587469442153238581841814076092461295488319490993034914124127360314731299239532194866741455103771499796077470762932681361103851965591565602960513644630042174479054756913076642418865957477859281292704585375290365001864827951096180213380343729622779719983477421620563452558419562370040770583577767196040769455241207658646815494593147824812117152997682131672599957456314603952370956540024318893321001133941258438622800057678934341945105429744590231922215799835195760668117623576656764502146488161800875806721914902048260234268630606927635125681739765512804201793212116872257072205083053991724577839248062141174535992699729988543332322978916987302830147007582126798856108142824187858465796736837388316088875132088044848986979096420567998990167781690332071482245764794253564778484656051719040869457123831936597631252903187609404539722566848857703797164870080159873484501568610182348176426111032788983954457765993855593211590559499141126459414934295757143029210109460752711626929930869591298470172793380355448144334388688108156338331832108270258757534718707902998102075331531017513149432115422935316233683429155855466464374363209592301060045040549370842987116590630795298233486611438902386768549233396067996990871149647058868390320174786142115145190568157501667885690368628607273774968877900329742740600447929344725242147673249714611416053568031201523935756840050396935819265803613439331623968564490310753678347931161163502380211888555322133670416567517728159907054084253751385643060126822948941068077117787569945183017402715606344964186790345136489360286391672759230855707531296086828241143017636579460365468682591495777364831336211420072497900420208776427638722864834402853212157541796057015812382332808812001338646407643111631760019931872321844627613688670754148907820676401941368306047549901016257646203058754575158895847862206274460644219779415489019529318885342448687779707091511603495012951963057251346691326036766944834786257774763100009892935622858924114246854293846760133866090449165998720484373518255733365680503786191346931048516884868165515715085171089521646196731650800307949275047189495717403429393438813382800133370025332964615230738105380003161701991401493169004148943743141244721682258041949189847592699011950343948445814456623893025516671683197189287179633436849040066046521353225578310837010392220122009045167716568873199444849036596379699972117585672876597615362858811384710499009191154464409354651311139710160402462297731647951786008772821795638792347458249952190592703018806100027677100760894707233748345917090412880701938547112355665612956856908838321646879179204093412449817553437874688378381085610611973772548271312412566311664399208268709125437192780242532297712023211277774400301993376276394518533872312182998351962177097951673679683629513164491969855073925517994882707311507658229800735527493730722991554181146596451570987246176272495689357569251125088009763912144189634827789172366687091251023115663385967961514274396076015417611620298165794284570479093072368193117647919988204179013788449357241403990801295911634571271112779045828150617166388438563800946157348275423353771791713217772778105436443634442151574716565349068644479227903489215184289802464775870236729652903572542770429757474030503488108733515988094283520044438738176265714089509852312825063043114287779781237393626668208757603669205173717065261167179312664850229161102270335096978914643935901642863985025782290309851265942861868208093082049114161061107050450576993490894669693386179107218039000123283680993376591322652946485986367164280040789370238173670933161351187122088107714585232504619539044687475797032011023023826668813097089791847314604558792358404367700813434286209426913911289713420492047765950489355004573650407906971675754114861282167216640481348478826745236948039116276853589943236821485112212315941897577180504771818261858578307006689309419857013863709099131261659692110422426391873377782936923960576938722548936576237511871065689648486395953475510300902434366307464620371140722100364006055824424909037149234921244848991503294419402925358516454066618703240467557181062290648960975246230795220984089039489821434223503069839735423385144241986778333156809218940737841473943931252705590327966765634986312177238472035078799027900899207186044551062822540581671299369470473887778576180166415399726062732980813430132772337154202712106219070226599454822124379079404461334223221546878271453221147719237229021871931827215503901536192230596646074800127513916449051424057385469452823605661721566360645618506968662233793980800077990426412254427433961268987855561490680429911490410437135173230270611119192787869354480172212269599081752285357945657048190822816596806993075225803333247745909211534522644730324561554411996518974684140761450709671947887511108130795630301293036359051821071166357460935771128597844960042580488829869631263948270898594655129276173378744252265846568595851344802052110589814256366890364921725320957251803617764703370986152165520715314205426525218837216308571972833132860985669209581387488768917121956641496172934835686128731177068917498878360782279919805629059874511601401084971956878111921758508847250416168028790045248407064871178944934413981766117120360576660001307059209316012138789960592761477197585424891551214086510320742128552894507638759910879431296345404992110022860946004752283990234259914032917889772255828692915056282588973534620423300926248868157315189692350846143145931517495445130633136434465565193257501979493127990300193419573714650897901748958446366962612097056346037632852944003260895064803323977363073043855650296078136097745006736703871723726662796786842928172166799233957751430260752470488714788016997664012027902419271794507053412828776212854001604621876447669479310554649992836553397911548737413888240207186324476703944293322626655702325005588926324687799759334558907501347825995403864468182530477934468408728689195762527848788377886738474755832309397661507070126098897841070891548624166772680406150352958967993316359971223682914611637448908983527573690071625278461781686792936923506859103222597083958633443357789192195278328977157164574584210399254185601520599240844803239621187209021721177609667917574915312495418125165989988794843450911712555885865185827263606584713393986094255986307909086841340003320753634185601017780832932402594578978277993724669747815897408999648755987454706702328946885615301413043020877573948409193394486869191165816965774884048632123545998951560077664823223552189589014760226145349318292424433897864241836456564510468799525707330232099101230475850177531156475284084091162984286432825928649933712334604189153967631725892434788383515954340525477234082773903953159493811364585544143647452095848949480676691667621965022779180562471335360378986542815969490827780647742954061910733790414462244049320229275772742591600032706768606722112867534325608731460425772097869152402163188752847499609580581146874220645762467501344205641711989530359884866530864316799495282131380313437922559000125910432987120490767036304383231411462125355805030010059786273391586376161821502733835692226961019661180266005001751024241674347656875769412585034931402856460394169237046991316790028756002553379227090785531330607761717147859112750744866985438287851387014994460304609229963574320949672279147004449443210388416833760315457122489679949770948031876808921413746917250890489666616375932403952103741198613618625721870654930686348187002186569318067737384675282688882772105677370595258568429090896810059629497090653392615647839010744189685436435348081007701777690877798929229156085164074130115523473685437214473998245445312041484571291164851937129906050144929651813763134079543014839300796166682520312793462962952181579625288135716617086619295154579960259935569551782603575193868711019989053233843571445038034811513908048758979986139844099688448428064274679342765460827762558823518785715505867403794585810571416462954561602238777717000233503041405648235477964991849700531432719586614985562150874239553222504870307167041051962485844376218251030508605032530489522516110478485340937087076696184071920596570072925354680351589778421972255371585229462672253178703059819612855406542343723996149970146324901245877410916386598419900994140591601933608498262993970873422941214927457569524058701874060229287799099916003079644510948888007463217689649778248624395508204238100468911096722282007316367539043527780461573772825248919952759149741483962171351119499971336281922744649049566995202823807079809782774505673858419250190925746742903296826206699104792940679320852322767079702655948437010377675485367222582874350688375839417965092961662693836792505815416085342875505238022545899756884741643954663578281669092609520809647569725695669359464553580651175849793061229394246962404305070101369492143626370883726620052320480565810001291509211900396523246536737036221581556126046959462418394931135610300437075757004270688632311762341974681508153271535067717136524741003637494831998350506619051925297537560308336592888840545247676038729290827230748548097724909095379198656451078071508678393466494742508768457871402858257445291338981103853302535303349247886228560069722699778721987737577076464024226189411651786290522859691859374608995272775050008834256039798392037539065145662702716839316111699627810108937059283839953165174448851402080143888933787139739065221827222620534869654377020744648224105775459068573345881513241225925920571519722239061681779079155139528859219602692511933463631808883986738586567477351586307100575589252825701818027874959051876912994009691897786951198242296559410707973360079663723387994156449863598968560219293867436190504605782237557317478194767905370311908014865981285150424852560237716163783196263661106264420237019858941398822630527138702792566530895765402658407036801637417424986748557936362599245378801280048484684067170116457838125105705581965989523994961445647491614015065349192827469382206708216182266557244919671430184538767764496795152588256988980467553413501216036578948650360912892316753420308436701868826767868444689465428617357684638180357677513688481826529569715965189272669490817061254808775433332980136366152244014945205467134459814048424408811773224837788644975356150026393934297591641345365078396250892817001170419621859216962939180850587927044178744596458616524601333242486611172951443304571135700778416023449884131847921572660537445236890460539402938802374209458598615652315588176071297807590179691634284583424306131604096675566162544764000528836061529838958111424694287626436791031442916974851523056958971593768281389368519531219262075036637182946944541136523850028947193923781584593858234432569202547619257728634389318494864598386313767173020322577089722097055285654061430493220770612774630185715042372942708952669315279952231126614274638346788764332530107542024160706178893625849613218124007416063717957439877435312556811794762057842406770931766120044754475226824173439671748932728663684865583698580831177997006549744885986396891878167323774906354184383657431307786530369198384253838935651134644302057543711565521929369810234064486615957045783175038508798283995022270560732798918565458875679724179072817951028250836967408901004607052141722115732137759044513874420733275959057236041791582918372411879996567672330993284106762794539564590772571584010758873681816428171936569484250168225367339338303234969542385274934309428702862228684351573754455770393499078446059126031283286239087177239922139368316521858170775398874235985883494021947879245682791256384332041820148974926996794256935620731078556427647649735982408846829546874522768796217756382044372502517778958280336117703980897042192978611801986960459796401314651383373695457104096608600795371122708095506991384824284129772603207078243755482905954594497537758915518989601910148160119962543752329620192465462205215732979533392864372517142676248528655458992856610114093846333508196683983021266528110665586714455851459398253782209615409368382591783323138583070206811422680108983258412168561032080752568311798407789018215027460105985113416248359748672553359383825896425516778904998791319692328987106955050288516828796034183893716593007540596852855213499675323938383294525289802293584981934191359834057802358877625414844405224669220978567781199945103557583590186185998365249276858072754926131417439644184501559708237673418257320674541209902135634147603095092308242388340853171184470798350567709805604947606584730028400263953609120440615701698100991205442954000084208763940136858159129046563708809934622393833278551990836326851504214249122697816877703127693185471866343733125030370754942160719379280148369125999119251452442504195420711630399567956576254256536741768361324041411280389546246383608245751174448729586983572102491398735358355813903973234947509378556574265224600067956678148220984675795480319092126572908541083544136909902314825251269302402485654946082256151185070113106021079952910740668462554586936373235054979727148130002943348212069517887881252812427469766332216893163425427873953844697984540366165329385813940894115645742726739850154156538019796293386558649652431239181148287612487167118290160630422947168555497351113118675493994988049935197911984803817218054593943329633791829005921968842484485171476052755602620007569398151641371958402285726421913576319377760893784784048176895620948552120911570252940709268230911800928571795434598585339054692657345746274613096320202234595301399793204016420869527081620099021257203290818761423031447787287718037239651297066335093039562408614918713518772980996469747936126687189419184768069074509247589679954368980952123610939629821784010636559753983651422642265817609246977177846738002204950365433486091068114973352760199835769345975059115368190530787770332185751100448223633447334794255754762354559826473675035701441337809817855138028699826156250606722885019991329199236126652257953630970224764748794439683268128503445105945708664359949006421322595418715739702418892607348414323377961801354434233320825890845009634037028862336498666447895487630932338372309236915915976352365205184166351733515911637989753709864376408590291416123789065514763941861147839644642448511132353969546038317775181433305635758399435090540612264795040032885521872881796405040493201592461393510397910985323492757216909593189794405947618422426765347298492377073592505954883745345502843095701560067667110928634294348470619267918307493916786082420034735099539039954009107170008621990592163781564146304773542164164582586788439610883295502037637010633315047873380130252163785272544133660690562288296438127905637616791701299779865131915747780031297383942138015875510105488450170309405475718568975231675757144309610209496973550447101117645665222740913684589618528129529962820898801458126771706957489153211428738313884966741374311018731776514625396357608111497701299518329614276857688857934709667364527706789830922804918284573748529251728550872018925177986991989271016818311503273677987234688349092329522307192126719450055316295228439651075451923938755367223019843880267358046423288922734496041903513438650164850307404207187238939030489835885403207045914160838141924407444749362484805538213247408940732617253318039854610720397031045736146490384106795322986463458724834659968668059457305496569033735384383254029948546768476783179021060584408167737333573113493064293596680242713983624995589175026519408555449890801496418412835674442627760140350206585285954665463641465760121273898938569899961811769945440835635683785278919559657326561822567157872591683809793444482101051676595652410938630782425691887843556545173486202308463587197527562922760777210114270563267105100309937645595627826142024047708965604625772793429776672221593138538351178696018714769126948226062305114097973387465529674376762991924271820895600822297751217295419025127738088701305750324394619538473018437968372200411294544792066550206933166277174680035932482256752974038226730363080096516191613060057929490691442274785707498876932599687957155261847982332571734522366095766181514139977056547685382860916325018098619147641303878956578849200911780938475120702441020425320160589516993594528973188913877398715383706530887583815148282215778068539579129592469909407112290234038266135142992699121120073153837137724297253439355081944949202051400769802782712208628979813641479418013485731539396551230570057903854158097216653112008802203541208161728875691907636198920227397719508342395877650591802981969920876761720753441906002680607536927845487180443217256823618222777207856311420756637903946249088946701084941307739939546377677234367752557034897799227464919198476354763386107718729444007384474003055738229958415897548963260404323111678340770588040821178262980008944991902313624130198445566286413694949195881270315167156677702678310918473014164387141981626466860648176096054630250093539780742394158944297430847372088396178118042077828652664562474685314692565932518784376507223655608625775251337545724510693017728944651235597277317756048409058292350885544760679977717930679303462927256701614394746634611149424588573191824717986029109424493696728924472412518099275235144320811747858020803395821934259045224387751094740865852674463160257100277406000182030743870178276148388719286782171005779631793968863560464563621865412656706489047978017408218006206810127469985686452878112421951676161436262648580571991710100339649956225114054620511274007806558171502670899525747905042217856553512752305658046359508747708700552702372966951905556117956793585712052692422626378884674893154935871816421821058543390868569231569079050267643363259068852327898292270471139575529775647569154401719974735299513126381690696486071397332007109804290154972960938621915071707914589340774255967617565414170009790714480142144921508966663888838449496152619436048008892901888706343852048636719290388158412636559404085543136715841304454827252387867299651681542912704807784869123009515264888846165430025240776864185400288545727431102811599321721042234169384013588481962971983982636977334944647925460501200933884376369586894802328073146683376166470793484709950002401121975498465647032928452017653945171532716304516335392357655143183523656344587363192036511725152827120788547622288231382097425001622429184460832354939265501162613746790830644190664409033000222354247546427495453498172840176541719347151701657877083510330518941078192908872973200739997516694572340782845679925540368616185815918949703490086918488654917145870634139895902474566371791892262289744858881627997013253349204701187653197133671742053210073669046144796730050211540626175088433815068930529522010351249762365408837168006938392627517690348450303566315113766052430432050591848677489495091426266286125084009290976667452537999132875547183128235013568887115507981096014159464945607145379251367301072756252557200860520359805611128623389729790437593531950529363499597153681381911306906252812824188839072994625847514834448705710483892273426943617856600550821408020982532412581991225210589007798079054528817012335608695409173098250312576931962052360229047760096960134185840222162373393027626586549561976929095868681488619976042361392188803345284393968642028911359999915027125746648557064854603013095336932755289483688727026626893974326810225966059751178786642135665724436645823597925209474554249808431761324836199560247495765925377831907990289554296120803567792531508111242792045127775789846769040565866997373834292609216455337934585529926192086900097125728705402040176310905235275513602649164333826745376191376080378024039007346461163458615366562201720778582989789644806333495776630544425982716279963222327537709568573789680777983114030809466973345112750289315520604552314672660784924397745900105747454879775440815497396017399254777929510166882796875470920128970114273107836019812176638173445830981560354069156067165381839118157136775668289054892128554732460504686247383149547580173279903443398180876173195672845893820314962136740610035569713318807847077687354602113426910865644572779191782830309538197629357992024782239798177306064249460302007296827000141188885665114093265181510520246812596317690396369168038285242659747389850733734614649255969711799047624122120215350120027689352675300321030251138900987683868996763040882529664720907902281804970295885860930252650756159114566221562306616404709186023915376099821551441603389135498246766664623967564383720376291337706328249658865659138352927091951935597397327889449338571368976679794719103238814727802802315563824963338476692648097279215275152922943484962018974426825383797782881742772914150219465024032320013029441622084487590380104101754100264297062202021432205318340456622056651427972435413046118276684918134540211871921259989925020033577788555541045193647283580756497935404359252572929062525966671189537524651955674890234268707282950072423651802954773093431377985682650712096955927237696061355073057018529373949792905972787173485857535043804401411232512771485836775400847378608078976186297029793684468254160570863612351006814987660871262470303932051917093643740595701914635859954070021229796295193972950066453472524305826303568724286205054428505400897288138585702351066485986695889439609839124484353286395438666632987090788735540005121240374258803128800282230251190308132423946694025419586016446450085900054184809588395379310163793917934062023734254148336976891127506840031796669967519358417024665028860437207963788237622527017997904063686623976672531792308375416395982914068340980338987229897727749093799509574644005695790723342841967567221742780880766302572813482286498475991648943419059659881717933494555283718659417752289009146758292097801787883379374590523328454108950309154683757637365933738629659273396203503494171735914587871672693868310141894500836131452160831831475833480615962358217249274429766336963556435275621829590676823948442005890935177607869858273179738724141903213894805899794845627986107616912365836394764461348990411955201376548785731178113490192732894057026199334005902839985915308747166581868895956487668314372495281521843625195613453492094502260347554559655746852059219624903419588128111181221314278287603865940898660877140932852831287722461005305118104113223901183665701763838561056842934713406378332338799500926025773447623842898575149482659438078793916043488433705189313888922325245171444057626617314701555942849367355585213367056702622159214997138890074228441074523237031300009796034663813695988153801676565872523616937526812010636300204620789356089197013244596881021693922980301835901153489455602174722912553960060032979046255755358344403331602574683626265811260026293752960648291123602378716170040012606247779732331358673847533463326017580852071506310785798468536761525717252586458196488472433943500737551560238850987238457427083975438568553941951798855577924245692253565751884798290285037177343017657424622673426936539645882284547207770128820507027952796680291711527636497338505172170317357288402000200181837338062647893946224340336423269496688663691161564624333686893442764278806302803101209924484097383651195926350680933433423663862369670791924189333880665772185743364957427005982216310817726889822391190527199761668227872894943105220574868558040584566171724095163234719885607397849369363411058429201661846232415106058115645145127640499348442365326959031934589896979826091016157068053247915630405475578692104109998261531401880598544908231332428179471197247521533776738166383708684490847980481766349289584390470415400132769305858214641938686472270271291849037529549927945915753983029893331052913639174606198370328005641652653176248771821091685567012044125351846514154585150654366435095872204273485904914470865865605674284134349497225362542786326099085517740521641703172464875696169239638043030815759557161025897772681021703654443619965834719423402607981909651446348996666416546454298578488296723545191047583334432403682046030568491700221428840651015987664275531250372359713231849852674695878494546138030898565424208885674119461597893613866966239504137423391793235316667890864202423687096324699261982006553315747718100947116074459755416306893986913597237663027353298821840756378420722133995135078171069119163811204543803229389137467001092080698017299021593994819183919986229405125831999447044208475062793941778883459704276501834807012210573242163876158790706927188245501586373375990469049247401766493265859055537553579310897276363727051775461220993766151156067931531173884859154862524924149842077004831741088197164563962507749834609740227554148425561728694296510869440056612969523158267252490651212829209419274597197082838719605505046536254013337429680986176544297491607412410525929406852758445751491835274245218078584382791454234891286586408141161542447012573891199351743946308978949060178725319628999244083943134952816082631091787514733004184963527227816845714885058502737981377590584243295224204033351339948395363596993828905121376941472007949601939813282790327990283864127149875072442998536255647362074453148930311984718531532204493659039026988098792398918704714833929121474297305223777046383922449731544583247910386644329126171176727622525864443585467184021060017561377141853269396731880470724729846555456171015762673382265603018032581124434728773476911606392053151590290786992507830713472809318706254666742606770799337559373158985707830061548233094882129030582813041686087524282072241425708062275943434410250913642731494613946766692929923628637507891628476386586561977753804591695579068843446027533261324549344449270243246073605227371454198193110658842050111419463879938831369890241920393948243164194457996657866114485319883637991670418500294869431881567106844492961080757631459178574864990678002391120961274128398373114482100750785995235078456215208091278640246728086071763149187268908000744667970418145831693554487842670614056403987461127478750228826926127117870627397769654834685420878227706501650772473201830947341244932888791827152395247545677821456689281956653798008412737843507816057176813538309678283698664468218278608344961059071844240341377036666329928889243384297206137367826042821777988055190785511250212250502258291655060770470816069480486813156341491967412494276052472961105929320746252459135936121350598305815929597753505571435739576192989315737010040856283805281227554223030989294971246626269835712499857426385388579861397233608941419880311993422601847629696488305577952316958301099515615192713160649656859788942304202485051202932281006692202300328752832052089443924798838020443802052850142080887038581386678320950417902514525446922762180095126791156383422159643350814036654145875027842708116064396052962954994395248206534938487269379484693140810339440398851909080375974985816402820298489051463492213096006904195231051141454254350470264601032539097537617479148451102087876593199571234796881379200708742257902853076228134503274201347907584865934524368741574400416004441536222530631566592523298777865509594724664350292316835905340367276681208342528434851816089489145292566234005209342634238461592653435994795779487650335766810611337060633233904184370671414786550737285137482585003130297239269106678782947959656469711647291479312134724317210842002334433115766013913123806483346251747676482936159848130327915962194436137004687137374000865840478563768389805210773048201457330642230543551404508670608122130114567697276784876190599253507690063265753220165045289809645970006054839013857647961418996861238576061296542978813641413042562296126929903054627808013239783737643278044211781982982956552871617684537922014213223835781593367667388058388543466517540914233943760385351570938787320951021621887341055741020322989935937934767482336144070377741171039661642919411521455825800058327250330702037881914147768488544521592513177334487224655845181862389004955282351630111872812171121034291883822358753915940123691671581533415171108470918417311784733451304661261848568776570858419151219412513871821344624977923882636331818471397654270871751892355731830644299519089845608368049910410140880618482250034578352745027889747506423590418044994549803438654202763656982512907720437368039106735777821012219358952887668143550759139947814333796314996714199946091091067971685015147924230209878826668538002576165330850602669186234145821203476239276272693264713089486995536999862738946425573799031552247755336644632258855630602299451781098154431882593020386185103704506495919673384873151533117023982057666883059932994231317336493436370193985953168329404747434659184624020530940159849479608349257007783634194340353355517361053355090178759578049397747579926531298045813346238528959520022139201438393228120482987764519118666697974014968033451926872150116146859704223805941666585937359053401456994534924481450731705609507975559146848490994634556907867940766168923288093702710837428680180098895139736513143298654360404362861035777222209110295267085596860741240988001380840321382523735646381615958949138153798904355663449471142903788544986771693254959407419805729335625319719191671807488171665296144968232247392616005053091193550721004120945009450920088054572568188000511808636051840111148931288534995989659954371990365940091310231379849701675087362413792528439732313097416499062958924118127039644647351734564964860253999377961158359803495082342115690943912211706002548954542910787984965783276989147273081786919588394155835934245027665265457222312966075537019016794799240542741526817443298329073383219849593695356982901914893044210800329146845560039719771859673240729793505478179304076165434608454896525066911833353082531623755227615906270955859215220817141113235218850861786495889557704002168807460686699169422671635404297838607499899783956564075279654215464326711129691716982778269858384459453785321702076507590133734427587428755017015255527408404409506570527491779796724286759837013808359517220301118431940530560245384566836109505038083698957500285186916746501258476413276705091986025156835796020612091470568636669786795727755449430125905851614551169531059233738746286852466582205515864600424663088779958277657030389206230009048516667883314396714739952709793561504627683493899818453400855729178580846762936896504046959812724390902224394714441177989409087870998188519893737778670902311198146597576746888206061552035533448320235844646939809417283328501452082838893115917888556926491484118265920033980025618412768369093105328965388291041257389855671939687532367275554013781250875768882813244327347742858108680546653050472429211081329558238456214736422229928377434723661916768581501464476697691882555256185060054505260383557045305003958743258540337066926584998926545927173907498250483648784222087155450199867334326123633265419757734031538217368872957637817122757880445751561487410424868986795351817618353217390894253405321133258849216130734147089303503938344430298883795739589566219985087354169429066666534552088537333022452147639871637279741284803455395708873520590185564937651625861167402812072837551550936255162359086085154708950697603805623845671639674582544984684964102618464626374446673612416175698070637030190592311321973272536128128819946983682055445991199955213782220789456597423111921926230451352983782235235750663881625240459736525647233984869815376255771799239903113598179072691664404753920577327991772776031959705564724819055136580106899011443019858890680088314696945471988457382153270532177738092490673881614939833127870082140465514140159185339220855700319222608796480024303484500076726668861650754076727611877926718409452375476203836306492911113348154965061682326025469486593804045596450269641838833126807758893342761157963851192766161571314567105741251452434448190899105846439954164183913872486432964786212813904237024511649218254030165460237477057135709052009621923971253251536371535263585795867549279846622652982009039070992976054624870274267246256565545283310684101412722987719577739294804800929355307489868557006164994626471230782113328423422650183062165735947798485522960956432039826480158607959039321088100222336788765777278117929784075622778627722148246197753171341742455162165940878791270071240588075498093259966114602849705748330316907636597151093774903119047870242900396077922787771985272650872940753512128832504497699897744417715735397887695252179177768227651635613655194724442076349599199228325531627494918103337712928146542643839478188833256746232985936587540843095031976021843245310408032644341437250764975989390004666535843441379597149079013494582056350750597075461842127731579405378821873057739522663717194532089093965567700878157215006068118794029534050549061089094237996081820871798019141744442055885433466541461444383874471915527844848408631643058618352674497876616057857038743955126202065307247947813643896140107466604837537133723141278219599832609474191739439476414392730355557443289090636147030714824582232892174331375318945146608452741267006868832861166793289751836571742432516870515805863010747148057327412733814505984953792942328081625958019505630299709543658553137730845419982240687092618987201674267485274110530847081523710138286763839295962676087435333430188441084015774594128195042613008342481168510440958585376210627224014980495827886532389854971943751306114024053813576036157026420007174528910049839339775983743984460762198295052049419902432863010163110641488201087503467085908169716082885385563429834075472110265712603984960549481967483233070000748266115239990390068257211413764053883106779576158387408711220843213855805058231937727787521507912629588839547423715029496672064081211475283747009382162522105996284837103980237929952740800481836935523141794464880475972564823148408483542500194780706291135517987200584765654660766387228558889636486826404576776522497117565726500833436562102676673126897928551428560496664089673726336543474621025020320242917291838246294407913043021747939094477870370461920830521394249568557723911960070332518310970613946920159357639793605227999570504148193610874609100273923610184249248441244554809118580477464341778861840616036653195066557510915243024367144958697366425836795667306797323479656044360346003260837015445088849539143261587737868389545691632182012060848659376247034953996238262537403108591421399675654272200167453775434058324399025641096478905302282011950048801538770018392976093573859906533109903633000625985217082657619191376634102799142097435922021302380732030572634814285820067796072733748297852566336839960198801747121689499017339992437061182798388252788511855527794909872569020300434631432191118672931107992209099808317622758609616324005668400128807701590763095813701822891652874744293974029903624956255440884938853950552729836940144792429531409024139724127350623952312658530963308742789349711466292735670628784036913264371024124735054462641230247225199764408084053342627039706597506913228086115265589359416031578438550220808372160516970052599343698886723301530825982371074614998454422993510854529918694562747887659108115421530068590613910084938013147409265451981143918136334914991311165903847539267207585627362703884358517425945325312937039521361611490700645715078990457629731445983607955382160095380830955915037067589972560197393455520434529672538131722848528400528590012147447191039928415756557983724234313558751232627728441538293912434974957371935744264657202106599542325729751286806268224116185934797918380293715247152000171668720287194249951680624954877309017119043355620590691375606288376056591736692497704813267043786109569669775317623032563410346512504263776130654425807630851619212121581987124007886357878771047806667574440033909494550511755278900183648845174354232782473711103118403729663615828393070293921516044581483926919142315115491748258893252477143221785200694085970653446199946770943331684415829856832145057305551310544634473862716230231515652506560068118427158595171257541162151310926967962235984631781176813757313861368934023701128037131061557727115513659784762053668164456146746218831785726994880352877238704174162741644585006974470425601112421195704623906847710034691193981425027012165609667355742876616341671279753975930163575958208018896476409693604174987544592133162264375333694348494631221870919670759533132427616650585974160318503244056580443395416222211418187939361899843994365061054675230646929480026563114393432829767726401495737571593375488841126466836339110625980444161457823272852634772374421835576158254661516575927879670870556486501638470802618460053316623579849684683353325987756100840709685925175296080902204913448461624077140796123174541541318158397132802837976254197756124597493554831745006112842272860950318568236684415809391643900566950124449271208639541738445777930902804932492208127750376258622926231001880587634364458448541444106851418087146462580499138288515210928263843071904295768314995764436527600814871262195695190801999581950319162902007309238328449915476279730380713509262224369897468373760086464757879686241581179119116933445020150455564780171153391202411644966764135328546329253655177451052718670258496121118420396010465531454450872561459916461287568671512000738507086667118292580841076753795001994502359412041547691524830161282878436799566578010775895712228878978121746771032144128706507016293632320826005712412479067637972414004212417472225405204759982595701358643898937981042541912601530336571505604534275585902445186792877387217897387293948315085901402062343478028054703349007647130902572111049017799153741875254016984864687779508505113775192571672771792460743709767565467779849630355934167548124848681257485526021661865651029702140806334942843768654627331461881772236092420576727171060923114321186950557695253789776076955887282668880491544922376438597681599991107141455619927512349914389522740717304204349499630191573536268974724592380023765028681919674542457715727130624091624719212662082099374691290220611755641533267509625933149262460525286954739455108502696449707587616105873287143973737100079951559329792725463501343984145861807257864269468795035593484110953789889589027898550378955756060633000247487389778831072677120018743185149872014861307826677791967706212554443412997522088673194951626278246515087698046748870175770666298446242699458085633709263400980920425462629393661856349467882779188986782008550914020559113424912414876308172240392938920707235586308512622760714363513426495840781605649240702459072787973280161604991771837353612085679635322369270080324475107658961511890911334359303500942391536088243630294893642410976122569791752959629416358038110312663030675729232549133537119261573281132375520952682130728622323736773220124280154235352938342557631735081903315386440591441685214355447512276386946967243345079743071768244211373908834847629590241045458069807879147978315421619667586058841305125225018072612722834648142042424085769719491341933488417411000829552321441545531724481057639338803704998844553139325180068917900865209573150784408858611755838014441101037037503899864158377569424957247869977738010616331247057880060749743221600065004990215898604526612988899833118673007134423526303814471175235255296803060292645341523595586768684908750268851670100820517066305838301642998422748401122115956951366368344203227242317688126140759057491788028875525946243700299125320516455670389170077265214424059571936072439476860796480608582541503397051073681988794265480673758558669277642906384110643610733540358601767100918252390229178332206730109647106516982428614611581348489685364376301140148511223267942766660313602807342270802659970057711143896344637244433645917285596581216027592953456624531509065487035150518457205077156666844460305946388581391039477831368910082548931151138480563771660683352424931143840963728448027930319124347902163393226888645438353603674677282438855329624847867952942564257466817015105169509313093016137729713130856051730258620805929943613726307758407487847412275413510487366178968614964481245180540232294763333039215795107587625854314225934011886982021118085055569834687975344370980813386571460547066702157232838056553641485443668086621847685375915481194572899698953220054829479026477618173038370967254494134480400013398627996879004331748930992423402928906310428562615847664810104877280649783936919076325027026939123086740235827830947891855414994362531744223703231347748843591374718521832844461956505984446697017986930293080630476637757853173744000632961261972990310116596327592498812698755148746549365000780024420021916663854272295872465322141091653185905422801828035619697688158585763993249407518467379927808163272118559792136370524369805832423158315643530093504907432461957814666875959435004560173055210759752816785308340308298341635273474873412026019259231274452774100818080057536239407360789513424225934276294508599977577122342925029158975188695525337182284524821741665339393830388326453793473233282271833120318646463381459408445771316657208091723385368244667070861705835167163716404635930173168895346328632052423110285913624286884790009870908349639362246232707565033304989238356668748812618363973409866767829132510064068025306192222436779097072036851821253136533552407331980409062619233988412896094426264374785702709717004950159373046732653203087892044957958596992597772260416708693468860520294887514370398257058880579717650549796427114079372343943402876077921959545791696551158755411247370502301319140208200591858413961315138569974087191834984769706540939622173817167385372265613374760486576656782042029872532749246427680126983800536470217229194526013596218088701118433475427693855782042729527944990382877516442826901373388991117759778299080064294890618262736549699778058001088086563321884780138992287545643864040367871545412812880410341505615400375882186250081694693532983729767930423766497725850119409094961664449617754176086115534827720046845198032838874785600831008829209944370653232489797314467913276702392563206967834735915597690164012972182271350117674327861701963964549015004088445106700547507979016075188812409318373919338133172072604753429715051157572581588023253718342696438211413942286000647726585610362935049585856091548463911403894795599660007655714116111734143904938716809520114081652197800474124112843677292003007148983807010947215680937155453883559652733150228772403014905924051215669584881110237732936031541087148968744352470782273575358224464484028916106131133899054738655784885938933542691124036142754506301605262766759258190334646155312092341574749108417140036369600626152379897884684531705677040734433922563155094740579925656324121165939241309725313577324070042123462483525569007724582078019676376597587395018917551873237381220106696015145315118982179910872688703712611740202305174238346223704791918967262192376915552742452152811409988605768871175452216466283363485392300674394265345421660047962882257722939457629263257680397746529608148859404293921190893922645855981038963551997299868186636280144701692903498006577897397545993602530172781058384960861753327749950945501620906324312314683824619253395231414711756318059120731237252884646773185615088652516541223073897581526309747716822849538872234766043187928031136689162602186300544793103737964288641052630485979992963705882961711556875533335801918015004832894449211108908189845301700142401818698703017608602076384322567901009860742924400796618239301883884591171595274832619597910657708846900895746054055300482561768163394088624533141368825219801738161129261536427963940224190056917222396217946405193204744314408025722045654579524550903844506790858243552413384696692362343025697026314633989610922643965241603107692723047328225133048658475847869716710408907996050397182671939812642658495208650751118670479019779382710065768713712927293214552400735395137422554089347052030889345312233128671617437776662522336514732939341212609483706617173975468825056413622129208832014208685289139111663932669179384558768646269840484461635277190349910226890319946441056859922874969690872847273378349076764333143402941848041314434856429214694370931174551940269903628705955059680939994489111519854598222535393309607345563895909061479458708207321244952705310699648184221515530668433223244004605503006154597136899959353374181818218406601273727443725072632953265641320301510852661327374783335529247742198014194313463243289611629202971758281293279261849661640178717133279130669089334353709446444632567422346497267637698714376329922236997091532205794964567118605998311349124772362754263487080889705299735087557110611881022568092934461950200193577864782282580959840368688313159932074231915310775491057557849827467670389751114301635952193942376937704774567285920460452516209460146174812905119663314413546221347500195114245801377999696733989367419298338403036357791608735770487484493392907677977637606785129571597479517907360768084223765296746003178998145436873656155163879329711762443803250901830092381473542339292131258320121662924243707023970398322868869467990443528395412493721314631881408149591116969391555325897265638668968648456243844872662402434930963088960777519982797350134264690106098281618618706346339180310751973984532362909766803191547282884841244343260832127568259899455823908241542889032949593589924001481933338196834836963635029791677199433789654781608276884970853545685045472270664717921038803758935140874091063112796343995897758305322481973801728103625071637595069131948824762671383980569336067404762299724016031986625667102807375140407354912276823270954075651002983831736905303450985067732890595688333021624377877602120650057757287226665403966919148758975353778284446784382190315186053215586693180941842599882593809981174316313724452965747013404207397066409674445255089807303783494331753304029919165675176894355918693335298925327286595013991539444520246045189094975704475795424286986967312779766896336647603308655038458207628589237260610337558864231930261156595946888699514552190038727837262824871898683529081881395886851120831274837039005146772814148395156836552116060363758708199913145088691676121907286270558700254069023121080100522247144503714789795329515062451121593988462852835258160151363200726713615486374731421709923902188065169302002965424927110483771246314302452508732621612683134244109532226111809338336956854310571230195624710838910642494229980387287112082628809897384111051841991815897891153685897164506867068208308628123191235802836182972016226724371168898526081710769135058263918068309600826721703128152902784204044563988795018057111083556316794956125594745083832339929295986290609148596431378817873293855969360048192674424940713621939491719542307876158389342421892139852865561691395753867993452048838111633254039442205742337974864805472607515167460091582604891378561084593665164669657549315563761839375854204901993293351920262356907397016837171845832581199381131043460745473549299591484572467596585665247110819474404546526868413434032606872767508103917666243198236815108087980141976244161015890657292928353887440892747737947252398858311284889151453232378126977146336647603705367005631867159346540711564435786670897741147916533910321554370366712525743835632279370816531106503708938402368781580280808600738184490502396547274599461247682491556212099982340146893146978757081343735673063791266536982627435883999250076376941078964239025828438494739483327654501994950253000382200861380370978067741318989857330220796155441307204980726398436604237880713412209037963861436511607485722598677653918804241330179581272141576226864336632003191886448699124905768278393196828450434994803286669072193259167117113921069275505731867062056624357291873491364503064441007795508863082246467623038524095920961007789026886388848508860204053172104514025123307529828658295321742801684941952564735334981117534813489770991889330021731500021193385662443554431763094565134661599364397046094009814243990314919131609406812579385314477084357681011257752261360569014300488263151594496465666832678323587477676781431083796463739628325353118372377443979580897944574252835474121181926577974664901594553612844474214019579312582770103887417868081561113896406646008980376414634753808913938570686517253839118428015639422437808376391963723565813839583917872024738387878311904362950816827117234660342946342073672667679537767650379164966893712561893613710355189118381314567999858944387810891103613140977301521198850198773562037839096643237953399306062637551790129597252905509076009909291392188840349128833563548509691152559386457321267493761527005564516199272118987408261892073917648615348480559472488594143751376250740212428316369974056329716873927880011223699802753428274172166940109616265991040227241213918127784880393073666624783753036967299146977497481149064777923205441191659693733226956097768611448231541368631753592887532510516005428573614817596633907343199151739465616001205283461572042902066474087269879065507317423785602871537604878260515162103053544729312607318324962817017698797301251434721328022699601718135593654499767274679469654711791888584854611119564373885386971613596571311131367077971081885206505105958724613935281358057862099482855058555816653773681104727658970088946468130565144067773341645726253310061442420908844460568860320305470078576915886496520180612516000273064571389121131668798722686071357979284362399360477430861098431268131896780367341403673503194466813671718771640923386953405107577614549006568825940117195836329935345584320627123508968957577288238976479856828394936318291237411192751724822241521037667318783605676925202322343868580689015798128161546553551487655610114027382379900971991578657681363542231715846388299294902190153922437600462578575320547253743264795295057911167869866018923559332605532568872850866505404661633291523354561161060298003216690045505999669098195334311240704863767298030786904547473036682629299340490764471210329265914745223730263840463352005310076697412869860211147284788766609319664708860856093277021447357224170633834101631598166893288755425728281206286091997182005247551221926736440092564206441529934047192140111474420537968266769997218708107696361517630454535074579832738534760965454211980126508936715138691571390353664942984321631115384639665969028889386990460631192780650203956913624427147956301406417684329549735817228826095534005830169095624991893742778937717571746627411326430053069791719010094014734371705485389698599028157141782963496807127242556677684054029640302603585797452041488258854282176102531481974175626688163871757896499486398946312063938090985855741394228239184863750828928639870223490228491817458510794665323999711279090791564315428190959090140848418652972228668879701791214702372412750869978217070000796578525873955616763654160144228882581216329689671404688636888806020607720782745013807356123700461079663274910488966501474411364120877619469462003723306327823707530210484067862968440367015631140724168551743396746379555385990477549480915890328712681496442709419244850501070462754378537039109840146831132837303166211982198508680426048265637528511515608164283236092266409158208123091182426681955462026699098361043479429083615833237737858945860444005266737959132081861994832087138329930903923449892083618892873495104709655642764124155992389108097263417120714099507476174256310501974791374584807921040244743024413256585725504172428786737104871217733760563975508560555015798525636022082798550912091736141043718347093869953748266251025276708200966597358837496887419073024580102920104823761047370575737278660618954478615808652520885939788958920317748744589552732173999510529296094971193082713850592299697303199028069929558238185013641174582154697611535547352238746697191658671095443428621333457023571495692890510829779536172153809184579534024183889164449535305712064104998276039187182812439026335858791339369339242417216377719251513277756234347532160068286858050907332385099719941800669925238538820315571658356276470871191500671866669403556243103162221610124199008593669705410855747025930489481219859178650752630047084186387659809767761535092060851663787528112950882146292231826614464738540531972591945548901817332275367395700062373044189419363055966227190907872486979072818373639042700008814166336538630470001590690510241954750523270871909341736589606220984508558190098344398412630176251835875043687122788801267913626537560848076357522939600441772123782487742375200334690513966967812748849436994227106276975958952053995398161852244584167095232558306148251781590649412949293805049871229874633120134836199902874834097831027615720945507343548774643659343083005480451448693924968645306207154416190280268842525324703235148894488993133329425817365486334753129902731643513110867576958860560432392381282262514447945428623225461850741649477283558234002378607606830063779720604670635102189153223841184192700476353436162815399056848473342112609882600122954947253522578817383556225621861912159052989364348384774312589679527890905611664561355698694771214343007018277858160378320014336697737349969203354999618348156968518464069249187006550190692391193756216755392985897206436545270524676116222744004286500119223116622395332455010231183695277679573396465732909414772285199732520026841429904128593144396749487399924365768982503032481648180283267705357388370873460333758061045197429607308594740705966490188190108085021284256214267089298320824414815209384245458131443465877853356902918568620181296141702662407172581006360574356142848321096558223767792161801459453749897686141774130334731367353589422531080132772825415840379170377869012616793207044498918941113722987369521385765758933958074526340467952597561192492474284311624187816277400538935222752785076422033838839545800173249611402288748868530450065912216258412064035889964782362240765704855959298230669641447222459273960113259683503769303330903448135668116460193758928698044836983247248379061955546309660247830116937132660043690874945456252788237312531125318279920287608801096829326461335964654834913304842504131896341979129249857259733953607806721466268904799034943069754121072718195644591855600247231550616504143863513157875226227929417760654750643101249157630332166893959192719431651824203076167645959596019088373197178481327062943363297905921927415031448139658054609972664300938755496396416382679748610438405997811970898072643487685723219423682811052238030097361432414763919512688750692820250622079942395480953298002514114239809659141901834576533547549704582806604910643484534255409233172372886883353176688999584924312967120425667891940843191754980931382101508196049867562962075008651843447895505562137591318544979578832600147833017820788374724671660952608201236602160222105461069393362062080898566892119170404444812106090875540696694201698289998190622992481785210389566382821681192367941281116187362497491568199584116905472207037698466005925510536850410355999147382069072357380232449212894352560330462601882077052370299946820970718721222773540183549653334563207851963023008785598252096603964017532793092306932488353755814462236332810441794322090243161969243443860895457031425194115102821294449709984665562331046303533728131425802021938127270374148882041442717144449434863121251722983255400435258463479417680463433411603067801383362793497949360831260722090527746382436762932449478878817618418563623943259924838661074260320427734183779169033098918293525056969915932257449283198917967541452697631054610853324109739260910501556094520745153822210200323427117372834340143126546050769399392384104322941668329389908140865538194038594909063952554904380166538196330855231294068408568502854314442860476888521015007831105915673665000139965994706650765233672962884235556027906472796391511980569141755922246557192246725642578979784653709915216618762808620875023844084521141147332026074736765690412787356223889870717170355040897218577842938500282516635669341504395551290389119417361278807643880143333580051257663288997664851542408671160027264814638648245310294797185997350697401095314624397109675634798181663471171972681271116273138441283468620973484871889826547241655204733978062876060028568357090580356231292781003700404255137309395592215943585611371973960347039698583832120382754679676823058512651598840493416465543165560919670314474595666439101068219634186649944509958686592686133237237237919344016298149272722189481473397674748019072120578560162994174812814185619557237415448222496893840556924936063458535907217055698037477880587271536604283474111358458944478889912592842385667066093201443030535199059473226062632548019838584687363193279157578277477705885950384326168539319145683424491260053428088517160894382103585717783313461906185485458866249758213602268191558449797063323591305373393096396313878743819563582540599603827889921596103334589521253251397104262339953176342661790164752323026502890219247845442757372463884776715262838667296364464874401907133203677705448332473542426152392707275068655464619435729649033502827033582001863629330873343586010140555014002213889887293722580843895640866968072700096145194774632706380663484092729845523935811021709808823291065006059575731472690166466406510302095888289245450997581726674578480387043221098522012083599358196074371256440640535596559927717010447238689774628029457315934507800840701724786726252194726607530852767928576693457593845591012311481482752854883300037976480409062176948161538927926656110778797681685234608867665466327900898971462137644763674311164908384521880186555310988388768923874795601266114116160584525177069438525779834193051567544409173587222374580386671332228769233471448841939676771046595038511112839940350898893479955265694798061196809177307348773231036909498307286280980331041017453883660606572177762703859794839392754700304160845600822955958713237539948402810346554969058678310232661111047401472420998182158821305338802089481491806754936238591262326412385562153041103762073400869286462856413418370513483039863992259324492442112326031516382290521635342009973957574297906973878751298595064606595304640270349340615426533208319842803587605002562858149145969529671211197153957402884196653852675515901052413032744809619822844613837716431993078561766440293506631524474652731965399718069820647626642459376329581467527692551514514700358591350136913754328415550436663988086873976819098244837648313879303328247545445890117646336773622273429891374744974458746525765336395166751094434210295128717272744970144642170289588330528258871760954430727498878772521694863023643421967271408246644072983969216180768327617035263300919066132292314726131746749627255756831838671148532828709155595617296496123852297401037591677080523451872565958878608210438150535874012565980689214242140183352204251671133090995555099415592553043903957119604040584922680906232555765277036745357508552242102572957332076444007658828536826725021626486404865419228618873203295561581274808386467688895740950160905063261688259387057045548080286253513060174184473252425733369059292852937035137247480552392752278215078951465088844865687789034610553201129458611318300424228555526611661975985596021323426177351759247636599986721669486279924712166385997217745095965236673813123067992764224748107432644868489159918227554978998378578280759767979496362960755245858257325207254834892536304140347823225986299582711114720584271623543210464436402993371721804857165138426617493963854443103745745883404996266055386336781173592680338265537121973014484296121568379670837948121882131359122067207876346311142721871950444575425386006174758924954675760925799618524294128352939088247580766813215326450074164717608299920521984266718737857509822507546773873613204210393474097811844622497742786280950235894734400892781415314953623813680467229651519240077299688099427302508490016144197061217217487953099392857849011383746710329515995107488136513691539481330805172071184615139917052112450366884756641560316832841508152894724467089210104089628143269949428067119680333923330445821874686983334832837315871184835094322218306834473769867124232435673068524110892214950963114076572499573710131952990336161861642125980988303970853155980102836540868226601463713245745484671131593378499171674853993069960469721094329781955197336411564667936628374566638797015622108112597306224534199927839274115228932939876244232609589962964763086695353314322595004185381324107973344621099869773166924811320077439662795115842932931340499828644773128353325414588066881174820104771255921068569709571646506619265747557872473675417257014126652728229446007068167595504634052384058579033057144799160680645843472556889792503028766540309663656700943246449777307532123469390604293403697302090528128756909143342376527900744969726416841241518429877182066885653914111571143940174545697703675763168172906961415779013957819443232860147090022556842452826675063420066037062421110026050229779231239129518784935307284575618626225270258833715432229292462681840070124132890093452449676740792382726586147148437108593682746531209281625609432986933180104494029912592737516587332552355727721062721118936310659927131084092471942378400508757840258311836608551314334256578633879445643476337114324507917949686129900060589160412840881493094224851442725701817540294088229336124299089687974745358649640075221290976040600257235315041397198753743013740147122804931416388762243546837621248656010728667497060814877934333130148590895618831744239112158848529210254661739917402105506514057806594096822494347359018800571052191309404482510180708070576609424134248854956559134529781188186228329223706322986767926762319021875908529931506375334576692099159072552526053354740580127649379212732308119836458282845807285703814975832204634983328304726817795564633650500460884042888272860918618772451742522020966273132014280408561846984698287473403796389982762270122706170870645447955161948318562601491503100112537862140250807397386462887754875948254936622712787467048742051286140501784083504481678742915095749835039782036579749708156995619173485165173418821025555693147164619846741979193675095851691147033202516108050064525014940828441385058049811675253789610431900522188778479787904748943508304496172420382492052863183562065018062160148423910533761988204946428019939351455193533943095154140170817815341868328830594139142748732492191941287404765526788973369374114655154650816623669617815260740777743797578314172623439241766474932810685388586266054346683297893153736017008489319279789178424705109378212158396430154000129319503921104181888095598178065867591094508032021191143386049520771745999572609495097988052052437136643054418738144712350446640835643409141866758196623430816644626770682364757868032567089848671672769624930846745085154524113055585879059536376901131009777123352801931968218313788566740535124655142214006570887506624502213120114176899094345817035128542984468202542657583880964171150183135138127172447632858889673618888335237222902088294064595079141913054687995798736820060444991730974999827464374330591045000157991340530397621846670000828364471615754602739381326643619895078165312229055786887014177874358542537021955809897287014841743653831606444139268395879924803613892236747032718965377879514203376599413850643049501521547491898911999094367615065599084359587002191933882147825083889084669716862766432098829444967175628669201500794881292971169314138450046392234201693090193327591523048309819854747177119391991039885992828169253335583081612838366120054501558943367941637667370328175081739618933833371856340049205149645986256406156636641395872398706157082866696056505721085492511697538382417243995807321681792286627803949734844524892226008625511664752833372550944503089448077004768780394573186420000004824582294163606410758736944389783996791234879560644629004621919973491168028184679703038164690325811288531924179621301719011198208242125769830512363398508339376041270435455177828718198215491243431578279467594534124707347558258986790292573216527498185493581307993634599105672825389258589548846726440424443528599796652694990212926325503387934168615313181760217200160961860928816418886376581494440947877579403865025605507888581079418619773601198324614956035485372228589288928011409728315775981818581750166256585964284126586056183663890864611459556823301932775668409313890393746973709342802069800980171188406965880089215955338539836364058784090994802648281341021552861426738914337827988139385182795055639304782550359802532308446189252966249060829349576969531329617076526390505201290111492605445385305051740425041198557418063309286269870888254811306634293928392152136847811903383898872319462342491530206866013564817898796474558567102015670825283312162133955287851910274392450472265581401244477525767733482521281412748090788203882113389012186081321211488537133835539669265348742056531542821369087936365184942947466439719123634206547642988392984163309970765592425702079404352747806784530787078573831584738240865336022797842828435268645121796527676858000342795882758742737404549319977378636840847537990257845975534355261682306428826269380736740598496175360515535886566878519061325016871234977061209142464487440085786657054370671676329439848654732857233617694436063696697451880106364824317114552810699437214267925934295679864904954497180852840996259309370709674351887262603677658024502230280811439433930268662246331714353710827108077190979793635941739262352292465815068211231795330600355893130135995429521163210280563554850382014811158400338741307634582824175060646137068982586559886059952553045428858224325805351413948852909373133775381405220497454122047188909120027775612482534463256605816638852136965298360638478890471760795074759241453884151893917936494038088608983634262801744596861465591334813240177742755807127361449565189677802163170201393590936138827512705249436239563171975145957331598228196462656792725384505158789501505928562280240243669114964532821623358935657903173207229472896806580235976600149276329877358868424049342052777569112760711140674527175756863787118737079113165591955259829553000062887847460768189319598740684162584474330512175509118469176707214159354575562758890812624401949455398620419174980390396912126703489261279231239180207424438967106362298870577437030019692338684399721848500163748850217098481640114396684445498570525023850166303237622084317678239294548171455472422638811829563033989782940715477148388423888467136368534647847896559658534432530308588351896483466066061846392932596433149163543221936496762891667989528475709514583271465186076544308983416000615078379009171678878195783051115362580758767025820321019919824370793191237207062171282485423523764283629138788759172808346722002674903097253695966382834313172996772228902160549626159290881771918927441114509601217351146158258069650531991841734579250919987730538768846357641643323166377237899143723528632437753735563119369628717866335430528353740180451221377503993279501439518662610898830644038775203187718712478468387124648151027569424264291646904844586442864517556066467719342665125782889089354786084284031177698514148056626808528928046110505873283482423449749901157498567768663733783950894622141001683614388887240784197018551214634644428542993542537885394705419815960012863816188853463813531340893604550739823913097715922688952017620441475605534558459396440006349143720474010804585731041010715568328728101952351454934133876718866525533173214632925066590999084592789951042831363758194559675570358250566156699130972255211272564421439532634078618417149501834276413313869844799412538844185498524335045700874039037497531181350946527632294339716432604617424965158729869516670108750165290721909654244387331508330245442656241580794942435063001328555440710798847465883094269087798164696185583135243246563469474679281170346021394352692922335974186899909190147333082890111062242355367330018616961269273875624169817931739832357186422770392103427801568751851657091078018700514256508494472501592932185181360940405404288610606222553655356015049312251968956620938063825779108191721101230206432481489910771812814204034434283543191055471607131513612703517009485041740655736230187149276811107591549085480458257812281766826487304684794959335743302654752877736988336027463621598540751744104954412018295818986411051197453420386575772237140441177732934864014016253215536925115275192664639173711655393380535252618526376196220060430443235875634153631256081908859624830456190640793548028860765392881252732343758513141150815568953646126958173455696268308499955564947099651974660746086928360300724563623805875467928460787247049506974964483784230550343953805576105871626717829306218783602504359216856788142679498728204972204467754740473150249831706410182837665524143583327994367212906005755157849075022773593544866201577848764974313122653175748885338408182415978886610927804029445174349635143229755209271383400629733867441370202120351188118568694613325290628699256381274547048473726619745858410236401910111088233664601761765831111731636213830270557113019635024109748337398934639376329625259167900808598984459325320821813748947900902477864716965219093276019984427772892626133573714761538662000868205946875981601458409103525726112031483015941860033544498913744396550772907545280103031530722981509768350399910994010010282694221788576622042888205600556253829174465931525473109574317388002363967616251137455800347024641719879801216603250801848716076879572139607950231671059445273182584607399513655898595445365490708348555023417562314542098106825301733286947729127708930139564544087144625148016671478804594398591321277845465443731131689241175775216812104950141210397073249434753631701210636756530390735981622782759773885529947125735318236303906250974985704550832862120053848836872554386609540464721210044715957770263161035277467673900555334543261972638269000012223442187253433864116415819658631918384615872676088134020279669501690663904237270785704449343467745318311841196981466120146091063783249670099787094660005772374263124883460581960793654317811710055094964276961170827645422299938424679577836941714187042000291795980354061022636513867143454347293755420232447154020973464978740337805574123121485154292740817759832743216981346290718991290596677905253154229497369280836460503923913277833305098130102116593600604384595283556011334658142373429308691045752535130835883833021627083872702009094722492332780395448665665458199817643314077690553168605092624764082435731099400892326231639394159213691055839148564289078175920642776883874803027540398065997718674034277276628705797501632039223789219192807430395281620108393243077039577529935473017665124409960002698109736951967371430659059177550113008805031296123753989658169665952228916255669685364627895332051362852369412449585967436095313151689072999098899762451380290788012285208271939197262085340782985103331887897722352120740320929370200711478311630921708176873280867027043689764421444934724733380431867530056038436902201140990345410354352500952055343512167827485626880133734159085907811029714503125225608719166114778997895421477823044275042618763900304167535257609819141692249912222927502011598463278283883694489566198264762042023473390676996279066938603357992955756988616596892765776969685661073176442431948581047851180555688622112782911379631313795567776127624902765432382991259768658015811390316164576228442987237617512769640719120188250481572801609676429029286050475050488245315252933329009335822857082163747135240180806457517709713305376213383522983166168251441214352015561666095108272662018426509050313432152182461319419851297600216017769816768946986222980089109876672868326254342751255474603966883427506555451564005559968959460728146872391816760026281866477641864563294361262880133021022550284953790076077512771236909342713237990805320598512735895019926845221501955872693641540553554493282206143619247376454616648212360313821311354285225466182371075798619307780114014098272462039028871898105498845134738597302840438483579005725106013064015183103423160429258778795626213399441825087222251586921998810900934469442805207905527012223115891456249523806161704652406145687231692603454163521551836811213467922425168444368261559331557641212369563422913108438616431449105096232592001722303166591136378685169341377484340753898549948744756399913246305104962852420031896559124136272394205712758437714621983343224963644315698705311219841939249912562613451072582870786237893136597845326727974303945918298695527408482285242986683769752560847667475390113283853132162901441545764309611524026260979190410930077499535789171551274313473949690995477680156340357914186105944633320178406295784616480806988876943750743176950997288619492035958627873008864763456784050528303426870870566232994222388157285102100814279042469399597282791790511296720286549704554581632674933132254368590378653081602619586466929187047939689131415425805213746654022179826820519776863436212569452049095660967347635107440349602748487695507976174439657067111662947375692028816986729097305919471427908634502095766526193586085548597214669115565610355663850448684785969592466807847080963895992279930092103567967755910087814597243960073423041159235938128361474809292734258159781678635103725962699205983502383864040044746294207209153909582611713310744358954354899229196322868885291718686200847972320054980366426007087819785925108777228198633194818276986115592552633495148635262540499165010525982207776335741478601678454664491639972049572970351861184447114714812231961888679989659996666686213117409362038043274331917753934132564877212995147459360134681088235799151813373450685621223883356388870634698501687227311959976183697911865413866364987754369131668660605458071918012408675141861328406210655878558256761915668081811510947461568973481143595548223539726452713408383168459302162921141508941813812784675834564228159462144133238496525172912309198810739538952324705659087434273538260439989173668834865974834158133433311502973465442227466779402163025220251174729248504809429577205340510856564466894793196697386061392809838737021524041850663119512865413824055647314180515355261648432196044979867780218180071755853227793936979013797076324620360297916575736114980909065761761137472765002013383728012328224887480650301350464161547922641983813908545000743986677140445548669977754511024059867182098371733457951904883429451097690716532783438779929279595500633653711040672138133003400899130952769509402936274962637617803988133210964657384334227002149323801834177667703937720970211240260162619215670838789857721736665295437640313920634565724196869114229042748012296123121493205447413616241933671473971331180403015763658062131555131906238326392710203625356747087802566381925478766563665508283521333365002927157098183118904627194328229248087328752806357202258934796738518059307131811979534903518338203042928200816173728819275774464174278761658171511093339684896046569480077433368656631965072688272569856080193925542216846235807400225472138293162634909229724192038052567291607961903348657592219554245683075984006951846453897006727431460710447261038123231461915935840514692082868856651445375316014294816686326206557551887611379652479786836426251583039075141911922162236018849072277329939131017706702719442292753707267200354390443722078749241229120239410330061148411324994949806324209002144908149013523414042972803463010815628658552835608282941334166178814593672098709421669105891094116862831623104685791400020147363574413391755348884374490658175594898782225918496528700355070657498392481396270298526379904945563443023859143121181145530485381722968876835313998152484288497530816607126149202309449753752127716165129110734824473531753994914986905654964136969159723775321038786587090224391348239727949774182046769643851284757077334455828719547560369564530710634448869591393292372971772759769526944024203356554393309171093334924352289955642323584217803788073459128273875322189253315933423986593378113325964303985392283269583206159951490641848695776587100531545695850523564276348591237860639494546730210906348040638578062459770708586603882678783736327657923654446001459605485950745227577630165932703375797205686377305870599394571100623532852126361086308364218878687590040740353260627380316023210153678017973296364122958085539036081374981233912600818809351512828892095771856889098889585605254032138999724385768795248830330059012797609681699111679052810110458394256498578397476012173207280384492330817752852204984796273159643088651550874061134066847134255243680614498546758821002572983684080042376911899927686925432929475961677973818611559978940515575159467626908935939516287646975897823099765396926831433410130180420879908069769516322440906133009989655600863878360233698269791291971013977211874091210190405887423738605971728833847344119703289200560426270256573718432518555268966183691370130986405136781597996023165611169875729464195672069181018254995309483536530709190108952940604709760999273195241236127369864290332780339767092035115977257924844948709042161522850467167722856262552315281022631012459764470964655110355883586845278709517017662705679118666340851279741378604190823896093273238236407185555800646781926374331691452859698223714462899169418145863729915830885980244150497119302111176103179788745569810806786943000107284066765726547706810539376943689343217138240954956085566103208138589819656726424660335853023165624668291551132633081586374499586279079639485550178831549595252359199061327895959958283676764997428927109370539344657657290031903168554707905076814834393035573906025657073936732544765838383514294717844925980868434152535803051864786986137474089145085409265672185898739750716143313814498749524243619096715121601200300781282350593057480326658138761996762647603517024635150471529274479400644124696520622846887477971946950623684093275347201489170379624340186498428226662637199084031471282727750910289753052345056948787869361149904468665180583090921951230712586998292612511476174162472639143806278868082258696576407575633323678576037144254107742252426591153866940131827427941785587084463311255031155328112325051574166972035060384367123796722205112425697406386641820723761226944305629890497940199112089240534254811330930951610086711865619282308779715176400738977877219079975869704320579852807571604709773378899582207898012213320728982252491859492202980709236571653449097399724796132081267468385045040064657872704133518467752377113172407497389484370091688611183176365663851109913556093444808784775838738110119919693671127993433187156248480197476807572085699683582526992403032238897794682860937821348740113068840293076503047265061757933677148078692109969274698585345714328325050397413725373211120609216033485634796045631181099598567226668553667467229026481046891520739902355188121635456452973056371023135883839732571679944585499614138487329675354392774019578936762174699506084454711725586274200554936107453415560255615417031311168318644139695376679460358600372051509141142425653416028976535842889962615648849567625316809877444060063863628663763454664679473194646306023644473413102033121454091125195769119409547112079266334328653509554533968405235000450949954776863968948584392819061043939951878024262019176966549804106944996536339651236540803237461508349450065434303383134944347144073332468934387318044249232328909775028052021495756600673943565444298129146627672646469516427007000358216719996126377314358332679843881715021254594040912328261172720966006999256832659795585370767374683293597672521947562930938172547566125290002911278431177390949399858092347568619915365206007989948819377833201211203226663480221082397468164193378155766810712899797055426249055409584805504573301861253162429849072513315323541834314369250746191351923178341691332602944114035372857849540840631679040306172201929328670234116587300264319192977735473173343591940165112719316727702632318905501135315438360321534961794870402673663271789091556536666497663721701231699900526921217181654676089320893075287527403339048505320978844149208206706963275958403539682431829665224062830725454484550100189089047580349564858499677454099661926277826156925470013389165944469423547302811238853117766675440391049396569544504432706998527597262147563905979520454204077722679766273935042525325614646526934066404059956368891520657581007925931212746622897325437071247964657894473164367665544579201836069014492519430342232978303018278288711474688332965202138458429196875575177969556315467420406285838656816115687488899228725364179731584196050923619405984102447143327384687812348126722791154787115477958956360812859608517244397406541639414005630987001845199387518919920148533875647568226095164720994504434072524096284645476596274228689276907825323677680070115347413931810105486539416999446047845749934380289164810734268193411548086257768359553438986787970984967341360113823605832925923502637005884422981433514831817543827805289152572700427551983273443838975461698382047748988206704857599572896526305030709945259400992455016690266346733373070292485154362641950102808813461880230932847214512358146468057368310571075058171871032004516777646981564203703825376016745991490192721530360047881354884079268501290426831777684951084600429606478511345142749771646485427653621367142745270553314616826864365078410813960163877392451280593538391067712214500923736268789338494818176719924535203568798877999804524838361638640191337339638286383255871409511124900463804691787497482588883411693408518011979456972446063326496688979884435511827485544939385442048657142274108400991922737776497981847003342073031344410865774379804976936859848688107620146880579897128679406241441885779381063060925854633430333588986292865226508048009056308507538693174414620739137141176015622048925438930399787623539713566153133500187094887825035718172601986629192693201045453296755179079024285391241029868913168621703842970721877031771163603433416174377545651469897078966365408306985098971217161808086624883321768024638389262136856613161811556868651279126770011743393696883062021824725627324612334288601974318060815755245990030772737698353768855823817226628647421803510783251835139801762339328406090944266650415927765463382795043155682517299660548355640633742582093297030422024729604797508323980905435173008442869952595673536813105345717334309423259992245071305236456953613150723366472674333573720998807868430413366816233349695813044923377072531548364765866457109111999022111199332841502730835756116872624901442434745694059397807276371804207693596200427862208380739170799716501747503584504116245483225514219265611454175843221565423653695091140425760753772289548399398910060588008045634217647720323539904587398685472804339821517899425629597900356931137156066275132207522168705006185260329239996453939395620490936142581130323956927465124869628942905191176976161326596747351938073682637408013165844919482107906699900424355055148928359132206067935414385810906118752155341805509298655993573148740880919234942031668555157313297755846671254160956782800122915655934978251060037583410394783903270463333932728770022777170718321018034416098484747023746181201286683303139177010209651973679761820854849120071215108793509653916434753547466126677742808764277655583947717211036099337009991721036929784197564226521871433981742570646005037048729979697413584765181067946688437876494895664705307633628248143683466867127324121170166651920081640684062512455713642851799873016958324806911336653999038505191488438612636661062230207943408886897256705096336482602386746326518375419870015987006736327681745244188617938223460474077553863861943512613238604278859917432622300918361798966435282678179717193471704838983924639315708769256335098230361044613741670380849345280751284880048428736481679475406287685611928866713365967950775010780739822495106555491781466037644131570863319244714422935722256014620104109482245929433104351858603368619360136296207633234025153509318158704884767994855007785787586841894987500031054723133515874642898131896237802039969414397693049602511535917517621423907633762770171796611313370439340188514334140778771379207883775866710773505053393715029427508757816987396191037628207669857428140060708829461817896465807017151938753845720999692381177784962605633828260265704683328968645646748169758466600198938300545035506944436320655991667921254896906143639874506612358306042952364257034698626159325935662792472557450174413124395389815582665342968830976345065177671993697960683855118883542360946932707901455315014239117141974245521303701396448027657839525617340862003547440286968193598080047201672303548133094725657908557473336854753506150612352409327447328817828762622875285476721429400216578461151400893658469587892358526666332862557489945160752236965896075232227059740976066446887385419867666822541272229306970855686901093981053956467651320131030142567173174330592767723700534165247636448607058448673121148780732393201194317824444173710801549994759288121570161717772365505886628343294451755634738906804292293212532831486716904932847512043883815233355885793738094161836747838407991929250517175177227110320054805379830830441661213765592135949829044233622749950662194260226989268035464641080387497480404566333449661295693507615559427185022492294585917365289957975022649039807947415060765974849497043066223163444145725896608817653939931014011704309737480327385090216054505841434086304702250447227729484802948351773594710673437913657543850704880964714161835244051099991504648793786413680439478213817475209628048809750763915933881871869365201292658783845058672023149754355660187215654154200670231469452811486414254060044822799290091740452782649167597574865835253864404622075355667075834809817665490600295542667241142355114664184534392808982248260676009193809206918630471199359652475560323809551521279534826977019083299429168557874696579650727478203531482965556543154203771585801423721302043304518304491901797655638034439800911699095647091891376707733579310879436032989574930759953107833619895907021205918233436109420016746868453164451346770185447807937713391251658393261132031480730992737173568980832207583938416505341676247343071835421127324213255762405820735367803599111085971048124216357016864095048989223421836824964194071519424809084905190328318331439863603305749020433046083581941503521082843321694553562535888159701074141001060188493343025413275569894970314468863121845943503156123412726094999762304885430962969330471997454500835022126019084161932230663874205621980213599275147827929159261170495652571745634990710119200727529022291745064376169610921957659772124968229979345970941363314236642319791490347881877087520887494813535787847660995165468151068513506175312563280736751360198757644196717120715276206641526119435418647033254322986909110891025191968396140706338281993827573887844163144264747877208929341104866884560956186284184517575779174576915474988236267227584306682060839627316596979804609604716171911027424250506415414458510488752840423477024519754081547213604270784283397543169580983292004756271462404328916232376884905534093638486899507621638043436672219309925603235967580034270564484289158125778155232107573785403324064474621504879640005324694682592934905323550108573383817623605277440314309359115749812808354900440993090444285913107202064938990298777912126616596372942474600907840769168505541269093073417753449876434028267600884558956973195560560750998843786343538548830943653448840090248929726582126087535196719355150060798897098450109401407950651377056037137213990566902347867700929503821244765843893942089402536004841776981323693671248487347226928962446347299438753837048110177156391656898859392774239751103191288873532508481155491626749362599748216030219318385699861825595685580992578502125561454278058188970530160885188491957463421421809400279983717863413202935875034344464472360898078693111402744575407525748712815866081380767484538801460967936955811250381661692089416822043175515467984429838876689648230246294485554712616483154737755041334949010465936344227452070087450020577355106432366734423667891260273702574174148525724861935515906840265794167430867998962384869048349130801111790054012334427013416493898228424466380922963352492462486212940794469695733837335492167677485947490602430860036757706057909013750793537622465581108461941264726165114311274789976751747198681279872198014260704163438624487849304672304583484875077518323866313589955171276481933367646937431067047224378907425447238730844513944979451726932116927195284527194245127001170649055936675109179065826662402077268720544772493917836678458806034692789170489154650737647287655194197464599925056275230273067082689176771854923417556184770926823705422945621565433023792409697838993496788318410273492117379592389331991806825290645867708254504648266568469005050998927291490920927047427662396253554807508701868111822853897156776047785920945941958096580285796168365143215651305648141592800449385857362250682063812198645722292316703010215719183389361179376711335499754225227749955262194917368071584545439166747383444994524286036109349151077555587411732792116374724351118915020833480283679035354610564619935971868634326045035430665199544686731331778152311067343178125812539635973765580473339713537073390784548467484789613205298773947791972252679559494809942917139821497897062902190763799810919779155505494166949925405992266883986592350657588636141838015392631109440185191427859790516998386835754628476353072076919963863853245075024716122747881889551339793793050238564537432776893037765441566911687393798961241457201500360076208018807161495846723970403898032226164048381202195235554764728676202441135614311497800580380747561778958043496420871126446847711613381017328678692803152952836061371945845567844789287634311973880201152007533161993053894737002578644323894659776346788046829193947756487419247079598093152844297317146227014323329653049346444876594441856783462425869522710362674381059711869073797173041548088913169197362863940533217763468904528015426513896821340047880514491155742223386249246017137123371582558841300544364381756255548298480571426185505000676699881810790838296623941284264450598775028969897910463364420190116897490022661617022599903992348163554488913545356970183503334004550452210113273667583246771513458202474802364493991854954816587653787704310450902319163046572920743489809597890220942311670364948850273617256396538899627159714876376387547399082454579203545112882539841612937674509884373430529773235742470706714461512782483108237604014085895836486831585617746354085586849123190074000794707332934654521113041050315672418730167050358592427205334931492207983830688147775074538690256702382862013593994445824023599277911261587656691164748308733568732479970230126765171193860023451352586573264077610712413745337081264108907935556695668894492929860479630592309908266169068203998170929427696226010052551109584625950989328707272115365222376122682735211976015659092687571423653434434286186767175534674598620362871938173456496956504053601136841373626854845943416825831026541623035571392853792681015494863058539106834271913963983579975571921611126475529013258422423223800168882783758712150913756243618951409801343584534249473884676023459745066836467191947711404847171400407818911788033213620557040322248908714692628261528797363752289963679697777154573196630820077992293466300013742887377732273197224645440709008108297397036633387602470273679191402473043965761966745497471198447092491075369150814064299776257086084159972216071273704087478216079093202515429851313240681159453760424378564625771286624216900096246111063876911345988408971628207183361008620322198333190757227685491468757459697569540682684424439921544744663719892796364496680681059329275799983421240526372211361778533047404011780046681117598140851731953342318751331117429380203240189144611160972341129525068988719044096802815797990737330082712734132503089051731501444759210305358721553559545141207382332700902223930127976600416071807049813965821798810264403936976418496925083887440739364257837707696245246291872345764701560367651078035953040562115368955714172935243172897717763075626169135285329614520989542234701613032628394305398464028115092093328244236747994395774737382620260595859544928744274393358512174177518851034179102820931714287183792489069534628959359666934320721744100445763016877767033963132374404962583122061773070139302358147462407568731256447462595210297385569493549984334602598460641581449070805779112751602197447215014588461223768709107317784051645371229607508360149412120931743662315888503225340767241117566492925888837286355921501465523938146461587275835790295095141766374674053622276204188394546388557138560847339471825976407867573978713815428890212190335820977866681738818407101700902264890466855305719505507462120117952582211731522472139014755651016506383345191420845471457082098832597479200618936741445426149059808634137821443431188386753517151083685103533352593987317688995940151631617457295538327060393151254837187934611965522100263640549915024824296276264101706820133867408032340490682598145970236737893641248690908816000826624267706631447198898437095412088907716433647573320433286819648969442527049560282285945832999239821041394490420402036136903856087254468511917371572278242057587778084375590552597293190140023918992838608832668890850637229771548669170574918033439186478195083257514256409894358958784102403517660685128488930606814638551187591177350779506358303039376451507167267720455417838025124637152631700188424865581916665861746960785039037039623189037529856771156388106397146326830093002547229879828602074893270580353363938856231413723422353756632633159988566856200757702169941806227190287942229326646734747788862148361900334279387483818098314612244214212447342081770055382752471567183014363466464898082000550439076282147327904211823563782947988773781555249700402451851543871362681382135245004607079796094147904047557150157829436457375974629071923056966336124782496111987566427556217484237635605386175070636948620121845148777373055190929663685868674763466571699814057977872347233349027906140911838398388199035631452259275430583546004276773714311524922333426360609091514350369195013384757508150704827562650760320966152999054230475269614881063635142715121467685039471981931267551698835976130122705721290715896234293345280236812416693507091359188291840114210190987593338935630042354313815725423579604129070302214454706224901445990211318933445609258861492919869147997634366449234461247207592207342515622339467232489314000060749305709790921949971157584335756691042907863745959970781946965931545855174590036820895858119219686305846198338104817790802641091505314967698052345129991939616418702647143324944735084579077417148263737894027159088947995384321548345383561061713193613672476235478375409657413300818780540115073864819683154435105666747089929953660424425202223746658610693907034908776351388898260246268584974343271368901089885134527027408797952682260684233636522907783048618224311497209639075461899118556391439996763821589880025963648112455852795783956851671048815564147933359161016410086999633995968471391754631907702791504493181972420496687926926385585998129853621605607575970764171942134726706899562126449093582058732534289610678458068997977554361969091366781639464311865530002785124767176684837608754866382042769246739347410361902490180328954933337163387645832437466586661238086917846841680388358641828534278925759783211066191691957720018748803883873659438106190566931882206612916998907380027217637463245200025356037178592337450335688517914814179679645920602274128717639741043642030060701306741352079416483347354937777189602543993181021122204210328911947879333905764755327666449895197493172840143949859397434692701839448838954566324340354310397678156260066322682488518861821042526152839372000839197982289295553028542803172686951190667576816493337714701096618996854767310990267817530358768090124294578305591520413232060881958769323440507644469516259965386302505780401468133302522321485124842781749926530845411489359650148442950893599304365204469899600860371217187401311258801905673451701241817310738040411198047845027207627147200181419827086450103893353103259523923363060264054429495136360799772557576842607176127081819910271932224427137769182471447376333816184766635733497227401176098351568919759597822475221470840544191571511183059963560247628733846152470545224803208049558344982052104532845955467132480551840761490236164050545983620341668045644043825565204771250577980750881843129154625248089888148765424409110216391573344984109316324061661306478248422371716084691057268424028090991896265053190865749581239032141565677066425963603451121443079536203208184194381968099835861548397421631022262153327623962860858720510865462180439142480331481491944579302265670934564297935513271999505994721231430776215967248018404054478737898869856382582953665906210456206321612479951055784874398039957142483496484999552461383956182265716076032985768952111542432270635463519554035026551537491367381970208056309906852136026193307097507008584141671520615935861714058327297422409561596979516747012439576319066009247999555241573633643883070185061366605662006323916618741054973196387227470404802156296200884121159845271663169070769416036907194741371689323326339167709753331327591425385971079623815216224205684743298270985744278085954683012347489704683948708428525315451904268438526231788206678510394883456264532671705361343624169645210175406027087930194795143437085196172903725061568125150022623981357997488945806966278062717070023648008147377558413614656142518973834910373459765182512357996849707317111970537264639681745254724573207487015191795770218184103010998490813017695089060935492957289379097473093349577344415245268072019556689648886077892476936066776996781863806290378451620326571967220358574830043231082654000309764945343865943062602277918252567422512739995014031487431525350530218929720382375313486750215646769695640441578998853731430381648034201602032543019328981131094658149558807213021442433703298711150770491541831571041782361778283435392422849788763250471763999913012466009552674332406012866377366970542174050200653884151114851071574513437422798770937226870339258382170780395124966951180095485139279851853911251356162528301033928447347432017623116592665677552278028816011056530160600838409475815849091215704721198344958796500365369607807474268202383372226194060750268105715483274180170775919793822436285314961074988736388218676354189406577949817415205573314744949106099829997382284993469856146246757139983305585475157109314357289840953453459785072567095295350061819330527298592757359081018725669680569821939278181239064781682301424375936256355647553597959971428137930430637502324522802942868453798667118212294854580924213842582594550128253086148227668061832372894018414636459851409573936214764501475002366892492757759276279995198083229239796724809499949778319818169697102009274101936118147366987082259213986809859066269414950622405093626420472981625897615832884175275030823208034589152938645520006835376608126363685219142492356855119651046455237892294423177478576465658734675217194793426948151105111914994836231566204162453918118991423713006104198525820794082761011361464561373206864151167103743500530021455432264238446225902069342494756015679515493445247095945811346184781746698203335381666253284733217581096765117693282716365857803504757090119240384630952378162374444286995498439877385167949008678372413454065471481152835092939679079948605603547902233226305502475181540660732014453468878345707910131405641510834525152296394465332373890074748005349084883361457653019906479561310965078051157037248920283391657984800692792260659006860996054100066082903311829877893617518450443990871863980427770604180741596190745397340566719023863308745549757076595021663715528243785788964562050097656088430321384958251098150686626941104108882951231108477386466705706724126544955711789299946252762206936577075854296796431443055063388193405147868492022839591714614798826272256271249540434339942847109091326261010559151800305955552661278439460131175859812929563851343850026788569090056950316776964640061614904080197562131296082944983128166012097702932897493609107233242140058893289634401405084450260700444171228981743151013848734466438466834585422387779617063188488782477016832366526648022149954672644637134965469881187877612330416566357722878842382768547402257452755980851887370342929580022427681137585514022278037996273784408650694151644300185238078819008426769634095622037595249218540018827036277457417740040488520069058521554770937978871642812749806484717233776258875715357686221441042665195643292078352413443840608513793298015308401138945899048854614734579431909046836248298915142147040585377347819292572747415273503096841811618238329138599068556999334557602452651244357019767989205890835642345243603208488582094333179500919377018252333670170700550626136909325904586372086390512114294042423930349831296732716590698858148524712701222646724753469716339426797454954530596609257462011076088891174469356823532616934096355444139424090747255720587419661010274084645867937896188815850106815467666153960574557560077242187116889740275321150675923167113843268582513432771389209638139331316703289086021207008676159417166417954216861799871563516113843733002618918328036669937346127057892799270921812364034054162780347927117725557247367627287257047087235934530644460036527600475442640451343138655195609367394459010921290425568718167901949090308462793411409544737432732329181886627126857133845298835586617229084959753915927557249547496380548162806006700610081428643043532877956165355017672744748012165731273017003757782154424460917660237497879515123590039412777546547787479667309227144108927280060999600294786708610681279934073220474420583358224738407531544108545034112548452811548534671558590573610403874143289766318469323956645107524243478005129128611157306100476615856805492420276070770158916180188807818597148290413658332283520160535715123545171584341656412518919090411831012648402385663228264191618737778549094493015661776210917585106725647921564441341722331677834374396354130846426271507381201717403752510025899730895126960024759611906558078760911543076088706127489127936524951960201452772083057385330835669663584686359422583272945304128242881518506713804963253069934437383295638850106046070313467311061138656604794514977473634548336099810740651230195690775922268021418653281024124175098697081340307939447337758542034798913874895468675585343068639407968840607453508053380442776354278593535630865334473226213544825264787703406754621665414674491908343560009237859383471428083668959131517095529719295480964888085143986779485625501505164337019456082529021321035743755495085049032221095081180772307457723959743756591088402825634864092522049310866374250167225389391527650861157430442929714019550894505635873609782869867599242155701171955668273769411471465350302105375364002734719380168703548499229725336110022380255057864520857622815362110239511036897584074556524036410719130646994631338259475027934769205280545533444161821025334054849835282680440331547041721190690925790375568895821089224366933708793595079549692413700769200111953063542062336648058944623579166712683251258145567623424868078108475469502532665565843262449807915433280593540803794631540421514816526147106053363456405807254032231229277371832415466315153303729514296679708171519466360837605680578038620947627301280298848275020148581525169892176326691125768484036646230406746191506465344274984790030584694281839275433992594087551310981288801055322189673218622277173668330235598559101145845080317621411589500451541933351884916819512648016368498026185918880021325613481523768516681967587087485447437290579013702804141982102260010662051878291028273501205326214557324216286928385292583676626327478423126790332511146921656143904395910514067397509827434603764549532510982536833554258388887256560559416997755584584585875658770290050026913180145002097470748980830388151786165367253193718775383562607862855866128978769920876843679488147144222922300666934111918515393829020010934099223988551043992672906132892358625920557224827703010026315011833149304115462826807867644257113057041148768610032969436859198519168603718349180824320045456277860115706106394106050145235856657759036414298265736953179159835234324856671381152001477146656445986681720182537264880710637826173385639237249212633342329136270375848160912643666139865278618987678991362156444436097568768843760338280262722747972771946667854591530619661153262351755583570589880598547827300169797621021828234342755159737849903553876595404713935419256203893712239117697775646604717141116477246620574236443395994652965185304894466726126090526047047139580402355367325625584482932514825357351322361871895263786889161599751327396157523453867571950377941756660321181388436403760613826916253866851831396412550686427820983681095073648639408870021910031564845822033292743730634241189804576454696162227880283091413218597452559110003852685536023046921211466839794431942373029657377912039269110444163930480483891646707072177752368746305600302778478357725717355669320916763558698706026527441296267111356991613177904654988603576863357645805598354730996107992801504623918286972159369830038438161173145901453886558618645873954727876788301338651307811854260843650389026313069742380446992013284854378989672193106574891005548094473066399687800371651924629111195528007305091133522934266499525008483698846994486779414418445548125407609547382484894574690771852046962864146098174216733362861935755897406699281464858186285632392814159192625354080275949450372214322286136704989807038114558541655644363148968144095317571382316498933147406648826087861354705021700086164582935949333437995015566207219171190454814270099340878068363922914890481267087533396074362970964277934158640107342064518447239407107481505535114784663008758174504957079821114387656989013463362497496233666329899930798099878554438264403089101870151796732782083771069975052909526928218063808187931620084140378058282301238285205699395686952281177643824941292715237115237503824828052943113592816913652524094049848280981941051192376699944653024828704087112387502279574501613490972324182225855026742150784175923054320432407812067769359666453283282393327542981010465107977902828939462375795703349747838557315556002575889584854201317874516925549539565462518007341919948509377413826854493958586922347971001727978530045440367276198233422497804238100759742416233505083245186731233932852990706406651431365545213324722664037391425793003182700893653402203458810376223519556619746334749832946114146833398501247348425401825168401653195240808433432151727255295825918403626704595740658510664184906184116743435035704026916911764632395609834723448770616214822031731763004365542688283798901826499372422896599611155205743265623645301580184992622447924471148466638856909024731575909043726622094526142278608767897085997624714437138028256503399833686441244269054216558290689419656705206011219406783447598372829052973764996780496746765034733207138575829830538140492066631812789932438952750771719450377722601283007384413599130537960350984828468589349150753628479748975944740353664623437056772613677435744640435075034402319382582357523825511687575081342356463249111622745493440864112184293816398058662668320598085252607312483115007592555270704888563710911888884759900163844879205694339085745592930879693738662182652540315874770220994628371748403928945148905164506111510768015664472535312276188865879834632111850700548201679975267822452227370642665720307272997286755185902669538824546191116501714284864985261596170431441315100156131673771904846056385847873939039639270267167052659217616633260873977371241619451681080558305258545988807546845718117456010560964020897337701722611799496371837890001326869728756517852496650269224151516126601851138106733263612410677398259624638194518653970355326312162604469773862285208491620127798817591352236167370228512494175512594128135022732379356932986887509773133399272373851310826686525944753734660140196197459893560768094363507044632374427521805297844653622863077061477881918414176055466758569922346028531370178999371865391885500853129094143538134098326304541951376691904264376903815309618785421479038713658386821422234760802027128969782188223505577495687183913198439815505116742233121117681613508131862974683223656090668908438157953579088203015482934128418468220863475774534429894388118707407761341664392967196988825303650080507767483005391367849205583118521000794893975824049712175389151055873527100186442015540967911001965524344697305794544339445714249314663649818677587493976978554409262844061142841044677797890430575739894150182824398549874947575507331071067857492239844727600626338884963091402481122821303271257466313400901133346472509117005222489514109739146082346154053639492069652250442005407372671421906965049736021036760123086057703229531554118278633416168098346296153837620469256608806430766788482165056331418950363455808849721529801890684016682893377134455729625349969895750566531471963249300386208588435915310250363205019318416875979381762236225197434583072839276801285269620214812419323719366069204461138057160109047829839679517197690747957425261561082210528741341946208148366099684541606414638892047428149396790269885372853810795872392930386454882029428271519749536979277356129525883188399687658312721870719452162849565387173078711757397926249339222187288649750221278051071412900075032644019778304219873208193281980071074117280227277312776389929533518932784389735083286820987515361940569925156132719976554045196919474650315141754281669413450452731236371963733931171169190482507886416082202479555424706048698452308109205041033890161370654071741977232668486925351052629574486586617070784727167173873669080818242146169072294559381518537484417159843689854518107492381210358052780327920047572684252603591757783268041449160327857631640298730181184886135671180091826566180439510949949462176655635922849137067692416321193638317347105103690613413628989522777385561840391057397066009779090747464157546430763859921799427836067924359689585863374648093254620986840433931440353846200846930707235088725806952830228636732482862211771983043076510930414080653078841255768381450193130625268247766596150083569431370744279338970040551721888498303548691905132078737441039799654113307372011471871254245081783876953681848308944438864051353364263984225790634153442791730823235232662562454942792823293649502665949247919550766206696420714454241888473786490060803897734028443398828141273225099294623048646668238366712847356819842144922457077081370751684116722652161229668436621828729999654282576140280199316713725685499091126222769742380613592493797096507292790177513743076738821795672779740983472062758625836098353884260952330949964246314864895707945822485749110263283628724602153693769614782546423768757172824863084878901749966325969391728780719756732434655104389116006735064881256184543653212942010584929759154422222914878321929535907938020152864091165074842250884023663623998961880965294742201839173389043858019859647876952795306683665239484577643240593837464433336605028236481363587005979519139883432056738124665374063046973111064967605058457159010327958073006868766441818030339600365400497496705136064531760524448136701519256662572616608804027217240623262559445008905087345608038272073112711600709398736491349748019962157697000539615399808242305075963330268044412096879817357340290291614424490450620116884813043771537978041655687857714955446802141185197550019816199647306671077391182430842417723849427722365884153651111503644637391723525625724757033030164764878979242137655565988879197282574194996594434242370965993027594224949020299959356965291280234337243235611329297047542331148415779992844234338610939694108311624889483914686884723341856873797864162845769228228489290073389378313771550809777379542541304793113815078756183105950598629780727840069408447642328313060434277569422316931989248053386298900858360501174317382140438302256545760861776189464091442369188488631096015036554876610176629175341183780597254343821920542351198917059664037185624581692274127766779429907379528613954059406109271551920923621871961447486294226288596189096762977106723327286103787838542264236040175308473231374888923506299128281778908437452844565104155433743321641179890457402298679174092879341839520920025908204913005569572969568573036987345006704238591766591431545591492941312795299808924473508589139124700139880670458639940934882028735980106498786558446591848331708963467350879196393872260386320052954841261743903428251003483250554341856331110336195617438768490681201262574360966583763318853120855177626696967079582593587714822206700880306034028098692438422098868211775611032192323673495738822411486344004917741332266052961671156905250322251318221699256221037902828497531884424829617389390423621060579493236404789357725124196574695562736678056239331396246094536018691435087412561698331751380724266680731812304583813402760186287088146344261307436611921271749671482879066657249580255609766025415326165596431820735472222296878861563462959647444711149157251930446009095794359099088983294955681915791686070735660218969530826443950039203527053191203029942700179229312012569936140643220622044358608631978771101248511372119770961373967149686887621747370645483154312384531667572444180900707946098417200271558491756738128479385716139411937747225844011893446762870752949495764512830389875239324777850420652199706602933173200837500025802025485266489386650273903938105310498182747533454510997721684039991754736508686702240988881846225690918825665360167440699952933463325623999100820399562571686288912742256108327363884441554858115149528199022269051273775616342239941698946930239082358345455627378156938492742607307983851392875221880684706878253783951609033937229130729149133032848055753769267577660883624965595102089828238045350791137693107039022711462492179225812350271982261619520330304401427890213330079555086839489980773732761653680334650580272494552390607361543964232380328126070287350684389007429200726031280850625281218164556599778259509907595815710195015584105287173582846077328644099397791864196121623377131718067229769082758239704657151260549370425569521502576980458235098476808170495476962986460952083183004567221455411077304381310512076337549039235827520022083811719362743977000650118052267318816292993516815655988113644355354609459396363659574980567164377115678021370075590584432724020050772838949436154704329977175000985091398662996118143880544113517446857806800083242183462127149018511807845680758738545263985866210526692905326378484200798435799750348276879844898348030504226151945159692111650239000526056677508280010460967445788758333227246557340262363276224736915313732849356614744018358789620007338046785581516160427378896570512542338405874029573276010878320985611749574072086282953794718857705986507070139131559244926132082455393706462715426375990345974600847256667649600841647767395973381730089237109961451836433896775786002207925112022352207342022544064471249316344784054466037246159564789488647230689349261375157704893050864635434535974985313354499973046039056191891084108942078945296331125655449962058923583910525512480564281014417874673467396609812212833340930342603424778765841630448886411534969212676145617062965775261412773641210352810767318750015376581060268721604549283832844219544580620267920664907791351087679075002365875813716496767682463309785794663967266041097546592321264755115735005713710618156647499732513727258006576589928591643389154593011599145785165237979279176534049286546188125914699055961293150394079891782962429242554394083113256629284898498622016062114411196918959055862175776169176720204081435631589462999499708888853813061978102258626345147953761301501677867573527600879565480298527334677451979566039680111838922370198376689502201798531100541149031870471676084790543990418151681876745685001602128784133256560172841847335626095476981882915192601481054039641095077204978957659778274747375338363138840932579720464236214131282581752680050734313850295233628455471232481096077967467945579810304784840279723348011110166417155622817012204969964630049874640399971040626335421403519601355076295254838352321656176035209613474740573695872427648903056480461865570845386267615773085907597308125708351291757654521304034324851893552278228983217040066591224315864699968634629248484110893012211622434061134184141885560612154437309804857491883343731276408277978243805529311734586158592388839004539503387500736911336470079165336469560111630809506272687526909543649652540805119186772175571781070015862235948180509441247683352384311807352470818796022403299504823277188015436170317147419790417672072550525334174771619473034490494879908500010168834243673538371956943110631239335481944930652910344193681537037420326065038511796974406051649686588589744227190948253908214286603128969083310463743044019385372745318903931467365987437580591647330501663045068861480922762875065755834611588241618781901375912960333322882562545485517392904171247153077506443996768641502616567366291116451451132040030984982370369343482221647182805937148814654472425864536228520503773720470123934997047392116508808434368308571719071765993466560853692532463047199494928861431394621212519260356687429218988075782276859969554776306001390416070746480913531458195962217893969525184607354909141362308074842507545701706684169762988551278339093110241653660130126623395474955326224475614548348692023276574710033359950834275593306382799368655518765101216526870142745095943532112549372812346415230122131588339513699740844973881589802843626885952152746051669470840111306403437154478383970617079714963774796535574399596376525335923525296767391331723860080548854296340428345802051707784664130706173408106606181573300685706408643234703855896346245197131825639303370355921083869644497085996193177178470931034074976183355598540602404626487190046456778330104607612641924283120148254562916919263276415444053983752509057539807131968813288739834425697072229500213727582812844101624384698318162710428758877950960194613861138835174053162809675031910782523901879654785901281823578416025252200565414221969727525222217153591165725762943250485027037811160085739369959079295391815840384613182292990886426201965381293128498774606884144160305378264096046574838819524621655447517285418335754084379675814732423514573273295717331380407547124115328070756026983560009836019356227275150818737336579294898152557573309032944643727365194711605696334002132291818843579655244001251848419747286538502701617889892104902515614893436370169045974546156280268796343161564601084898712480853532439638155249508565556969223743345339393558418735958123727326123499219184039585339599617599475254752299467271108722794123800349169025174533155916679452049777462505219746031957258190824964038369308762342994108450008867623764033143340586050657146236574970083829430242364711934492237517930615461315054634716839247438549084083910515685256498877649153174322675974153828870740949523506498943508516968712342894622703683539982155665253205377607657188784627428020415673331389498530241135975846874506441670811349082824073195969426749489693618541965262507821915672078503768861061500161628963027309739651473907091422929847203970080722361484047200769433436066285186351758058924536515907994516614741940217972698622250318372138874027221801438486130270157931304973601368510027524411221421236601230603521615615589495133969415814046883947177263541673312286097619169792588321646501005813411363285545304282340463610631132630408056324652042424874672992937279702875155842012862245665034247490722451195894604631545018934990259387146945184207650573018923923274870686400553613770777391986644413472652992274949790748671049842029568486928118740557306400293395330265826600564787910257334564781302001000942166499349567859348343050218190855434433304036624042390922959590869076719126703734037554203246614015496256922262133249602251802114089720959857369993940568029274594234576597750479040472018252538772496288931293279028905493861866249563210787610319258881640098329584848741398163619746173465651357323330889997666508782595753134875259310025480398806203507251717270837986574612493181728551208781409041193283408300334028173707540178936379566656916943256099817317151234266492857569245717442004285534494562524987321095251734960338403633278923858912939729089567648881827349094509902609444966489826985533718358068790654376842675079384111189854989596146280069194769687205638609317972364421201100801597917293148135313518010216704719241127742410354805990999949023866329489618105918790684164359115508434610776728319531486025305572112397092537028942356381477236798885446335312245345393262891152356098970070454596642435177073211980762824328187728110436517201634113840037904783238294908896405528058216312051514815873928810480268315288160051819224971963289754502391275965286049345294873085422025110758975727085127564135571623426976705741811784918136996533741735165464688382767487683752824104081324258022270405951350796766479395050946582896084857302946497303884387033600739457207759240002503588223868174278846862536604140602772096198902729395598013198012846598667242321113296635985024283977301012361620940140176392579297942233833922371933136941459287674455324924867189582433233066879160291879477842190942059172021257858860213254059955186698521964656929220720604296091557933976452445536409603832770717204910877475740398147295094193084812762538649171615427606170366593712823057552052352468382174850289349714648669733342163475635320318601926497361019944926637604347457120533903504806030354549604896749205577257856920774037042018074118419950313405157256204568021605479386920161168415159275371759434785304468780145726074501587300319928002187109527012534531336941485759338896613062656759105758127892713790715908870139081522422059644439592300014367273184243843189044961690993381498818682075117094604520417074776545586701922791688347015038107114901499857213561500635189652953532892109034791476056999867807748701207185216186292238431185763559027770725028345710340539960077166958732038623643040094774056201663487896605982754558255061455530248628169260382178046737871989386303583643664208218010242727329315128727564884571400725143103127259247941188901476125248331085258556441203070452482326122776419550829331354372216150082213154599497864211883818511964770126463700135229687782894322089132824780234002173633909423698826356312879326708597155314058960774505903786389547937654627101122696963616078195143820293404891712048210383049985314479594810882119095235314176930046913015544236898177265965601727533635314097439719261012564761263483765021468252093070180408342013102189776960870858596304320862315617472063832027097897238248920781000779994079121067767769756020538329145843829090642204588168646881514856181860242364891473607976174209870897912335732103023068351006317135530810035727355432267113591820825487156859378112251622406687129885200282468446275193960780504740343368592272017572910490469315852711126241606256069644957047484671135974894904683776080737100417257508319100691350405304763805665524909105051828749344575839462782740708122551286032584358076226748186703360877594376700934432527311368662031554091069267648987636294942770526671734599819843247167532167286684374789632529060104599318575220000354503694406347216676226401369710857469298305762735840596766408987143150209079929577744946766418845097129754940138936824617496763178019012398054114887925281543937918563035199084932623009474663684233906220314205720240899447596397592267242479018392560152233399042427521393480443085836087582466831992889674301255829449621362139597826648501178576962031710166327443811443281305316286696821986335568298277347837533525599816580392363850150941120135220823254492312545332003244921926418329376110413918249104606636526998618567990417288464364420191873360820947808084710533739757114496478114640778979892430110055618871385839870130869603414864866411255235369093478860710074217625752010831903357286757040173333709800966779551641121217217442534362022119081844104887606599755628420183028041794099319699979118301377544643405613832815614790623899408670872799609473202237566282754541761620252236124821887543952475362987995871651190717915133910345850279871518252700847973411540650759718709608330642335898268185460858542743290626937305596147422877685110678970230115591938325117623703179756904172982156667660729796410385552544467443680996972779429476270194845179907457065122422572277889850786106793082211531434568684944666766157298438159411424424683255501986414552538451717497330140557424768711829810197762434788986705388043597333628884806857247053418123260632422033641032504835989523156268076367825760385029868206467788560901608765632429488668540453399768718241923578394633573026941257899498305002061427808639561858436501309936011202084931301070046695857057501671287631815762114096849754052250098307385479630213948932558483567006218731431670332248508497440270016666300242129784555430418255844614550936723730700270138139856945947677415480720833109523047000156000525528446988217072133845680174777468789296531427727496346792552463233123162997466021640378527649892343327787668083237941591108027597346806747223616691817831697900381532579802663165693916361809189539501208461543546653658248487422020822181663344954903936034196568545529944355355042491613315149284027870780504370976830401748834107160520570642823103038918991858401251667306703014725492506172493510026675216426867452928180294242936077567724921932041327130251119957589547465834350428185295189401880085302348841271230475557791249446011234334849806033331344498672518545694847331809951925452418576385274505392692094142596180849544302831566285717582815405139253243495472385585630723124380122526436715291113398852344862724008619126427762506428516380307824625345194356541252512195798624109585325321233269074826280514965719379064267096451054562716607879946762407565032955607214839065948990671277541540684215636017113831103667156442019913687843488504439130804160615834905805998724640498235400635506467018599349701977344738640175593112663927480321600402304750681896877549610599191913656279646429378733296310030747934630450099692967769336753430897016062068857595682154180675594194271764044045083955444346499285688318168388680425023635151076218286899156278854694350981915184977851365995293603871219741699168728688010785834991234392253091517696556287089283461400964870420555255235306766068629780919988663931389399549049850724851802754914765768627754263317716765831439869467528901610361424205099090423236342311782347998998161596718900403173599406019647167167541996291362102249865850147888507061754944474003642499896468438913650012671012486391159034085035017333859385585289738748213449955578581171248969326293017854913379566305593674886155151833255355306990941832779910832575787288988860643497003605798092227275011225317908338505494759603052423186849698695723456676650038671820041441057057940591738204841205755275509950231492123102708164667581201094173940120741581927889071168844471736078800473725961778325070664084263230265042245256323718611637462087176417689198883553739428323990625949563255147871365272289615227474458296593288202697981212157002387258290603308939227333691206387337847798697963845322030084652639917804495630112873068025038290415367343307580762559624679362465798991394533886204330499789279440339345222567560181211232284450761767047775683777958521677460556433423178622800292154597626762194457935976545986456442590316966158316962357614897667748889981562813119267121254202926657637460656331970647825293927855253791061524133943181047999258814487037485162655598652854217110161380135768630047536053159938238682830528143183708160055654402480463166753425854479829820136409693269529450095472222674126883928080341227146967662647059334372594387262661982678530980386606493413163780140657807892781969073766696759789327400476385226939165157743926176186117239313820117300184734728544953765349022625472552519399834230979864857485541297692820312010401981891058422307856631080174228827291443369097356705609682246579960812105941754020849098663470390610687543929594209443613648064909789868717308618576454907651750474813881311150761992732190322401050662607756003158802041528084890094790180691907115127864351524106512694507663860343456928163195309416586388855300035739597615607490992113956463791270008728285173262794331074610793578612675470351240158237038114255490323183830045936329162983417069861340141218585372269356272840884650914165686302968415373838650512618076349392455107066637838889063215395059486436211808213619893527589649172411051057822346187511665425265678127573988670735250410475411488083771785439357333686241009751682873263993279838136536250765136437435835479544132996821058647963255112337695776314121192658203873228666930861635198948891408718235450401644965275266699290171746024837082101423090161302092411183995542257192877521524334136993680202336043812559958283580437177838878976685081021217831216798889638120242347086815465671057549946281919658788281894038725149370498265288775761390782154048258441347848451390208844562326488343067108788190044735288619077628222251422625623564098064690907894370652497066905162669529231495275941851217743835746861334479212979944242094535164922831242594414882490854858886500545056821692243111282432037004187245190984853122733888565129183752202620738204396340343710106327547175755401764969481817085198090238909941627053550690357642397146023914843979367729412921375127155798005668924917274454431760782682704449202882419867543352143119189816776043989540766091687747338808797460875603503364566045695767446317574954262240158856402799597632413657080630480077958684975224741622966550674672319055981659960166690595868954584083288888537650110118785676705445260929458521212717423302860930428901184078131536415841017930077773415608038519689097573814305861714979702573493839869063441680313579796334021146093574147748783656571409696532755863355257699679054371438247583708723085672817808260413591585235030649203959996373509929542827225996841850153004668163161776446763307988949473654074852868544400711519307234757167546998055613428536147141488153307880060981608222216071428108538959999254894363366141685360221413356811413457688177438821886090700996162350795180573187412661156923517580663244117360056891677097244324099825688283791315255620476333660104551600847377349099690536651850922374587952045000703295477453523953793044074326144667260319852864099750690158872849803868733353786541426448152561310388688422124597243920419662635335548585631486433446050398717103297638873728632247109236711522982437327140240777851241549909377432105315010991613250274355600190890280733296910666491770335703628255513169094838578073926425956864227725600382512915874417020737007417898112461792102295837136357153066890907145682133133043660864325502361550531582544330381845373001596735027306293683826711296443060397756093781533238191277837037676120294378988599635942310485828509826869815805617747971669363056444690474472810148624051952015816005764069719552244862122143514163320726698933410312128410253827019609541661810952227937786560478695048636266192449232223989819988792119693530849129522034076947718214505359128299250854098982585466723958934353581504948593111159798271885788457960946896875649610591893551932623763143705354385519318444717080285544394029241343560534500346395760828740020180099929490073989291988811787789239231278117930686501990214071825858692227597814026856807777427494061766092377659401364919616891951851745037652218908404027352986159783649199253807099297318810989375025708384898496920842806717315163524768134586453169439191634698512574421207575333763139152598635046644187900114151619564099862478566295703550875950673244715088920469381472041155802679624398211429350316098321368480383723203251254324780440300142590851586519480221674226852929466819325258672393678550930385499764384052324998479779826253995728513377689452971054408433161374392471063828416511156819639753427207093483536667083477378941934776110988058890076725251777989589205398807722516601419091855415203373365773515616449861863810649317342506741949783661111115170157676728080783521951663955117935690513639403191904119395083761961969980645271757889123512110310201765402212561532966259169604964775901079543025257200111019231065391607949390637326237269172226819359667716449562239054134944989922571602779721110817827274682093791261390618639622159111188712834289457550876205322972123529742203788673563415429112045991889667039980660172490794951245810123320743445335856454696049508497946676810407857923364409740568820793673950653463421343044082655187279678242115180725112316468303590681178828649265315305332851087119921235951281049751480275349765026884650638863230897585329383440228369034122905005732398354839337223707252868005276229370991139151121557921893515835086894721388568688947913943764322713708995276803004513499996147612007717082422309136294723846820691403096768709667860952455452016684854236527825855591442642618235830304637545600358825636398094226521078221366306554462337279754028720255234434272291307578629910687805190306004337926398318037719281275043184546944907293175878020510290603526369808304237769901293665552809974953728852528665938803421758736721350329730704571367384734435861361256585746609495711065510093742819292313771036860780206919463307979322195458512622695716268385220641950484958706687096341806648893454825386268360132121818227653922904697810936570480914703751348888568940016166415916251243835725348672897981506034503811695530124441156060887758234366019437502400316843159287915623189559001447563619356065404992505547731847839705063838929555684506163913120143160314335700409824702378939665260720180202366435020976025005143033374875974938802929182920386217241029146189836491892128469757917118136209415675820305786393420435632896670253963754253065425534981519498913476537567686573279768604506337703283201566179781077067356055713891593009373508305083812898593625836790991973509185962916983760874349527176691546974858276991160475738733514945673775345128899457136458729670174935195867105796243846608151960494967446432201098053522518293334866274915620465011366528883785209790870567869581931277732090298812337840556582184100944427760515124120180608291873754770306269690404622274226522014662352286733653713347741713054631360366543774745510619386011499987749758795798685405619825005067243960214083206865951726041624550039977891873272088869554189995528249716621063720271488941310952513263871294882179787096111355835471931820320331552475241671243102029843585925778827003976613166703892660540597247479566356900148541082095820290285486199117953144415356312964133178797638740739187320959880996585900713586187602277939191916748643110932324685044733690661828796070549157821174968582941605175478990216361870091946521695810219572114888967918575458915973272070213559577557983512262747796435267332048936217889020927776780805671206445808089708941630013361143624723200561270507434966200694521425111136175669796841389656956922674818685602987119232829729108511632905490600467101667245508926628279710325315026750199443419422417398168920410510027457671863726182020468046738404821575689776623050025602953280703914267750732573797138848582131179137881835027454375307912167619816483419816085102687038545590260415557126088225347944701247463295685615199021151635800495515877275853165438574945570274198524297710783488805815018463912983114600310409668346507032655273853760181840216968173612686132312304043185730941763502876520801889877937171506954585507350343071994138927547961524161623026646225738381183723627607706204809714618023108169513326478825093443304183750828258159244063378118841701229744901933096450752540711372152259039110620552852332809460382913525554256907497595047902288070236690026542845662583016836494160140643543999272544014026042789241421570716194214327271398721162962400556608156700266826877730656413662501152059768345620637606366022052331440132409912658815108386480459768165237927234514842835582817554907331168519186167396458714332924240263639022683897549596154143169791233197998511537695930848262812146222234012046971839726812194431417723134602515108244282667362797783402932680622643373524346356573015640493207218179322127078767953267584596944329854969548427617649984547516915311530892307300541931536982614409773095276430621393195360109523410598705139751436980519818194876207704816809389069367908835497123219128812698060523760357172392645134484651051135491701434141658014836124041714979147943707482898737666884748779771425474514179268176277423933470431201044548854883779270567829643930519759506078673585827882809117851661719293011307792412248410451529726036805303169701269711467141280349520853672719436933921667701543249775550637264882149702758483518609750144633401180233379948172532870665859399116917800486370200560607020754449864830138743497462532899943566035754082381680288087924928616950404232714212747290655712700842621755290330557854520680141119936811712237581443185017273084881701180058637341479527039530442327662215118540115328635587386683312616034024582244640608215468262724168493884521972617952904138256999054472328583300210100977067894042513263393708597759514445747029914203655072056042300604363894169757192091158382491098802681073384018517083410877565358409118788743234798571484938072229258530624825184083640154351573872272830770664848969229050240126959660830061244864860824927300768883518793562339774386336895907365231376113772700941492299477216308692523570677884522248333020540053918771553776530553507257021638616950720432366768370259554498693699725938247249571434601147355228769958225783849318940560731962093274181679412250637908671668858423747028035188480994743703322193983935327526695295424853855505217272628713447660187472302425254135871243808498807764712562987130674401812823332525382575491703440133627404611074605902517105359451731986813329449070759135539816489586339750644774578746630719420795793429990161464737272318444635551244706323044807477731879056970118210622748625525396916039619267706875522830532083979574612325575224326247131951294070975591633691813726295270161294068222927705616454302887944182619866863722704672917034482825816868097054098468157274051425562315313246652136485620920368162474061712702258713393185811461816681828504464098645910662594652347859348464411556388108175074822162434745234200240788542321926594777461381797801158832488658692618458174164313727217769577162204825108415729231945377846945557055268459403618698148830719813582485410350547708206452344732842560399536431262646485357735890231818659133792630879969287321684145239671730662928574277682881302877888508072169252786436116127108789489036745038162509764042098494598040579675470043370974107938372626582093051772675738532785288349058481010814056901175981889783457486726794024292572861027445206039968480643505062140790872783728255528252890049599855510899944766091474439662161019093914238140283325287419260617063052914945474632606193795225296114246452916977704897593043521750063833716369356389661585420680456302333830529837082008875551900752605599370488212190247996053071715452323566859100646879683091477024251213799742133472383257760033141686860528217023064197687177577800828881974983597959808030843160698530660958601716677669060909598881331552870897294525433465238621151612517598824778941490379216186097440051009185840682409384594487643959249475902649460026372882770416787621925410711125322940732670510874513135960779302953299008480830149324712573631111921503113001413560284499246649370177206366733225928189628221710497314371976336644173446305090031010205250293481874820449852802149303239003496652458948888148182290612929416822811647976744541287749247499170722704146965550647866491524981825600570748705115730797437392085352290210343591562322470123863763137748587325379127015639689733717794446543279073683308142376546753354665346710333417713752615418807651003461849337875089366504209344784232155913872168725540988522058240883726688335371366373011160772678265849033214266495419016508249915240819792830422592756589433174402092513748790181641289559065315821822269358880633880006481011199054966200293196366109120438433343688271989157722553472236080821937106591169409800343639924461274429572253545773595076438085541375979009708519083240351131711637189762348225198438090164876952612405091092286451877953613705267441141420269572040300762532186357756786803110321886340672800024975072522153935922970513796819892413213442392221147569198983273001420717536372309034806561591435927555138789861527637928707436605373035609596338629255033712039643376471275315454417999353789966193518122135357951047348029337690331320445095474089162812621006950703962331867063313716234863278550322840868725693233471543002831923285459230109583506211304345831170881244445314150884963405457191577868634159647389576004299958200893222075068998546942949617093344274845698930685429236450142425831460964492146465197772405798463610823195229751087467857151411821989612508012334162027599889179357234927261020209518539721303635784395944679577095535444604980817151690316739412653858251713137957026298204716003813388905941441160573670865753890635189419277261945015831489606167908007431297293527762903607219712959395955989326363767491006196665486809392225967189682257211049187951159182671704199831821426398416111458049083684612409135940790586864219932893303323588969897640627299429241732670623305720898485944618127515285743382269912935166412515205775565545163639531457433754174032434645707060498038776891997069988478004311390151593550608834650686997812419736290037276657208161050700903709068556036591140763677350004064177181885854595783509104548982833901297458449753553361633509031732977174174655206270136278729821728428630238868037760378438271119337109322241555726357213874769984997642020920478672638157654591601363668058699431979650399004092537979074048918463488592430368794175234402232415152747315711043202494466344788906731475770707021549087428312083183590524719074758399531660389664039537683551078059333229041395505017587360957491311983606128914124644539093449940744917854218850267405299786959691597712194251682826551752009789261685158875036103120584932832596511548110346272117170554895858908063629232416861206660128409385136787952829925634644508385904970251313064424148774237827639594299870722955167608395069622827734870094506095614588346627054584103571980614579098250322601486033460731046571155278310276985755690456534710475975871891221488061313120378421176868003573469315946238245799994471381042060619048306351214256872905682452595726247485846691330628401025758358644088246494452783688428635338877090526238226822913614697256740918682180361671934319032955051896948661464010548873040394585235133022282334136329623464122383238365891029092897516994337692861063320394571565146124398105347459623690073395908960194843557831135614574480833416302281482220576942562223243675658265954205345491358270853703907719437372996295126780217334570330381997971632401885012959988479137778963603650282877447034405589487535244726257609299408338120510483865795311141739330928878534383157649285787474159214342275147056304511956377660302068031738916023143167820925543028707401476105154786739552195375592708169517679616108150685504748628341525708694074721359402100318110008057460849879290590724013062280783739407273471957027237116987712442960020833167980090255583738312931790259182918933882752244643613325030973189692043279299311657826217457648937982911914885033799156164871917140200353318552825885432925496625150884636530583357831806597373275477348850083133674073948865928691731292480698737768736418324378689164933590921739420699546678469228672051293787401364927983875846371152365052274865828911684663738706500160878040442676915200755451320957793392913624783793520787345465535870658020073726230561349599199195266664171833960294444553928405096950585910162623678958683757443360069767521675733890871633303922131649324900248938638595540459773608461088745444219982550134115429228330554751383092235074675421076038898352790664464268151614577095913888480889224062242662181271408436950762620297871887769056666752395548681904262307929081487118242007386912775245033429856720699397593412817283713091928892892523747235428091216755538084745669307560097074840817236942608912676607488462371856059184055797147664617389956773024735593457970764281302669169732700086448247847869095096158783891530405420026380805171514098989062899937531013255509083812533118142442013783404287988421758378152781159701110507828899408491953325149866387869071645371555900212591753918656281826691675501030220525933022802600148959219749409549287165291079976549383772143114686689279881204148078833994390416891608710252489614038170953195402884639853109248846697308272339665214734279793945664957432074564540372251493911316727819242752762077590542785221861910560288556114964780282552342707970499165813296305303432852988547416737858751793365667787036396936857457481726430891412718844033539232157678177930621332224289408234612589940139110850103270352992569817696485757326513882968234781514552541080577408399485098217140186891956379716053742507295037368533413215830461935938416548980144381164620261968813938101429962130194416952392371239241812744884955921186081024674607782273758423330594271773062640157815250074102549497902590753161350070052941817148843688921408264009039884046048301569169843269981389273919177834262271767777889296958295116158056481377809607098808556698761014357729778127709662295373303503235389890394869326187110959571617318945654046413394147980556266518121362585346806075488711042563446736841495960791051386327674146773382985558726005381013345692961029335024920984424908063238848706198215587323374045421335509451850545956879721347395212279123246088147400945345677283359681030179146066552813748704043533495426541002583575059096319725975728772443661511592308788669370791369215037919504638020577858045243348192240814697811595498539926098770746358718282562977821192856489531767113351656667881174112546842082145374764459789448272080693734706972578327949865207452745224150758138895842429111601046667683371193528774472488330690397475589348893696895470427186110260887617706895990432980219071488149463136546903684905420887870393437776180217395016671767670538936003895623296781034146191829099301113564294673027556030769720105450072736945318893704893975174745882778168337045705935617564887343811198143292685545992107261861357689605707948343151475292698921143590592301980238094054415468403353071549767888865069360645985745387908301417232565064179296989348039311265519696051706451277468422908212472888835900211056946186830343446704723225659491564060721870725547544885356529202027758202901152785020265858850493763718880079215639709730708564658561701798121675141140698162515117788773837114688060283942946536919227192428568299011399415684269401459237779950817150988195173824065518458496964819359060338340073332851272848537002747904076500565292890361947301927352922867119104633010281593621402105011362299417448456383294336502727908261369751948076390030452499575863657932529929812484219171723406429475331463411831705315591554691150507872140277771650790150008856557224102676731472197769830431189945739047106226609784151497969108809454668463254769194616531859641043624011523553128737843140143832190715311478484886728841595497738771074099116487805836244730234475732236092741932571820713071032735034798482269936772541862617976653740420226370004434487156923832585002562808663461447336696776867551828303426921572125103358907394568048548930401589863496281465949520528519591843662821613321555848649569865193329941500612968360631301904440268700136692561501670915427580928569617309102356473945424982102849728953419790571492830871977785508117837125609916121238155813747528203254706874914803070059994304519986389201208010706242282054812886287952674013139141792661016446275179591931020093536747335606458444472795812711556043905074740841551053013895367777879736757117938714636208942166129568027860144030136832503729463573051296822401329146125098842864388086389968801271872948558715537108659061541158498705896952724003227663549326710825234673336430864044654599009102151088734790470423198851816646566035954984821053020451850854932248049325699370865978514447520912786896000504854606618621587468954393788502211304251069144477662159104352852540825561464689773954055633388339580190884481106624840964281730858921074338942753682749706571032871649377732802939757229962883418982576322332452049497947313724275994749830957880709699503389027226979021302707413521202349881032210065306507505043359079625265825739235306153020622177775297535249177794347714303216655207177957248294166473139641532558289088488482256993926694960911539466004575634423641757310853730940775891549218902992235016782976480755651353326427881988323990824495477941815422278409422425237924224358956033450070201462129519097650120836348120994173510084657388938242131989529096950284096562694572120121026901682736734301502507687965932876139461020430196483261419584614731221595496808000031041291690763334308181338524522490417876460319698587555232406498231839605831282519869117696521651862192951988550126711055873549250320785236565656678108985216883467163611906551875192198413787185616126635149749297326826554675459226498004786889538633154999803105048749732780630834914675748908422074988193766297190341337925626592866828090518187965416865508059394281816829118487183492559323358895787694604760829940311254623352577517918392049780729536234545528071061521782150959512268206472130039516654019910880554696869509966656076058895412188068499101969285721523836305882097734075626733371265567118777170001200654868842491003841123282277422864916264895171669573437410373797150075284854032547266862866978313577876860250132210916173929159155403082593045012980794036243041701421483402394668593108043775604966035166330863332019053201962555160145407920628593421094377607520725204647201383275989959612671672597319453357285519226792119378795727244401866604846237592333582109415759023335375172920135985232017589531848892638706930399952284015097807411310175029830041901868904133192324384878372452279032088161326167544952485679097019172769544207400118807362181985524187057828742196440933397077080899921136078623050363199497299885145187272216515070096349680286086770942407057874273494247341562723360770214192727987048091548489123757683964555067997969627776240235053693523569352742632288940953236734865158560825928082864188762610156429274890232760436287064449104016958706457152270116167425435696246604054570984806747577355549755512986660286543473126688565965762246013628900218991422137119291261886934786526862638825479318663735561005295409463016828487752053295083114474476467019788947463083212872929156655009632928992193232007812375263241099134540907474370854904777411797268308454835757742436543190955837024228351924413411770740487627405092830948463870110354643840719018521392987591233741419863220045898297327326213784306743163400047662651328755894671907484188850146320139465055982252467704625006856534361921241639449069651945629918191738467853570224806799002407933984374363623717506827126825447873900712785640325758329648871537873324669323140775665205929223698292764089006611536886874748560962960466042429652993236392911709935441139160785607699033988326671473749171002020673812407592279527592166361842435662216277928133681368599473931020917496914812352908289665916417663263664871659165067184525172927149760372167816240887227348326246671571290945683367028183587853181412382244666282700284876487785229361864504632726499554672433858650537210330459343629443811345176811952018144258403231425321318049490560831894470670607299541608748898394183548872179090283277295308378500803055109192876048420908286118720544385482635345078134575484987460055769289125991129507035163563792521427413563234926277759944502194167345656312447080839280833902880818811619184735131413050261110842996692048057512714912373818594778603616316103650823690822461964601500967235959375593222832604016758231428736521605824668725451665962449420581711609647993561043220464754838249580678948564027919499320222991007297319172914060985031353603985308487275157411534302122269024130098749477181825206071568935398957638716918804170040115840335737943950901540182579327827314162942915261999280733467190378438737498851120987200982685458112915227629578011571494785089057593843669619270491765891980709590231412924310544970468541719136503392943492446330539854392619509310860410240221055067808888999714096143126601459426915919038069922776359709300407779159430554637692246885636390809178496902439091657803742948887100301747703339822068323544329821667010918329476804542996185898469413432636914757583804433696149373320962485680935691102044231501944775471147766884379285097607297634745039766722764103957075722163038320916469646655807213422674562699496914748868167611432847059023399342780640120693946413196309406020160449720902396302506790654671596662620484520244798296792987566649933304886122543323381084028536538782715271104614914120654974305818737016031804572547374502164356899145970471719796872867781217254215944052097834823874779211653342727108225597713399657546325832565923218722698835379036491354777396032005786094857784615727842579595931120784219463852456116455343930241927328531785768118959116376401872655887860905668797855452343552334961846542081106468804223858161499431813371228201492630922471414747715333977758066853595670627849796821728148286652527981568585408503644320313086757374817654426098869462358526241628404100608828930091728847290274822316453042587439507348392796007023509109561716849351478567978474334799325208541031885559261182498796542114289546000396239543268596384020183410438010883687297777160971867901097878887589158453365935270511287108222259542175925184682700895997383196071174865763481608955917850928484751314350894023080760477137948429993314558582109098696694944964918772847012334722930417410861634155019750640488993064364357952987770814984400873622410511674984191110006295653975073010428316684941248597347129151801341265235244123834853467899026813446395375572124204947112290757522155148350626670064218929373424311492917661366116487127700382390771571310969189455007572547884036280212299535259099905210491797935092223654603418133417602941644076839404622869871583845214762061297218024545202175216855570249936732056179909724375031486527468488442350210065179803834658337932712649213306466005931397677730860442125135147470189817128857606413584280608040852645150677615635479752807134568483315270958863844423587774167581180255918061332053211921981305671162283806686514549374421400581614140593933815966428992154617178589249351375677078097599431423348208552002618733571805855507426491468054789287698364029035583486027995528768368802919109421062847763662069738125837449283289306008719418129787702395953312377860147019578497806032700652107737756954916005516698134903882814286861040339173176182549488377417745057115739690353625194353963573764521417771843498402892358550048270804179652923812062628003594447505413746326278953475243883343616483134710551172233335473208072781869543131052919227351717734755695817007558078671763643042341171128962518253650705934468399366714663441875706038044948044521903531613665608591810366816417767229009313842610604504999104727381907813480445372943721328597590567628396488782685484501009477198262443055209304217486061535945977244572090578481025000060698118742287788390441084217323144803872923962284923691099739566292138102459069351659911729594638751955578460323890692470014739305151598113937413953560932329670723768535841975815152416881257711301748797465322244746603866812848712176020041675440034957137039416055767346633556651394877607933220905066653204519106487460628923306130512930358194707348002435686628328060903628537486818544985323418400348039650619116644670571777901143631442129710872387161566505361465739408924733679238652171362227423401768283161700700056748260692448135202514377866690182921893060022301548941319724618335964907412111848323498088161949452278404521331786746802315807337465087988699590136982977000385816920789072408614846177374155907607811377690734510144886121881031076559558744098687805586110278144003956549020435917931682686652915630853347620843432703736743585464519593889962693660793248123960714519577171545509267205448104700096091141293243129460191960215287934195488996452475104207424495096157396623983396371387190819308754968560912317331928540826127351050289071127229678798296081701127722439971386842101977390089637200306542926734025725225047841009027880286877820530248966083644539301753658056532174382812634482086572075736604648337788121548942020813179975785300823849393349387792231543050700326667813508688538440164593513669504867217591756555202358913629994916975246935350840021773426184608977775079244163835410745601112551801007217096856188833219400469993255119180516822781473465240096213469682612341086796987458748104486964782812644915107067263728712874292155684453222313649003134175330912226823889700506842777173897163082821103069705708576359665659985693126746873330285910910166555935588178517460712912203870988305894486531609109743087061870177220749703286100414919547040230279207387552919302440511304104213968251962312473199114103976758101596936340337952726752516828359955749108584479413676590447129332903550935376545409291942807188818797926709204845020768130647196847960574936072857913036915904206666108850328118199131219597601659206397957397348907852642375172366661101270896319115940330036883604455472052386722447875464321280712234626841853330829976971296077042574351239723684567025014876579707577123898284604791479981939367381847206297992620047879854330702410138638950763416463531079629689565460176248257501709959703070467215568674398270625251402518214563705441061567211761178874155510671365742281173915106249220942370240410881952326885031888525852153445853419084508180624544600521289672228729200747385287457078790286986491667586531600869094104281040508727270191145608197912609324054655208225025024895503518954904133041982159316268089518109282825705977975957445332976474276604180590887992602319169856833037898777474671944391666864668047301109900831803008339761971608226298267389409545205404425141044509483116217338847661905556435259240648404193514330605704656852172976478564957364528619243294804731617118043494557468736538296779072692525664139798964224020663417980495443374289184687452878701547024195171577272660707985304448700881669367600995525222248663551905183180997668081600737408975470466199936259642684528130341614926791172658272804845808017263623406709791668345649325805782548523885626550113028115819150154533985904767975056359351487374320727842855089788349068552683082387510258510324262987601206200657095397460447527700411112661918783632737257897554094428325749521003687012106478527460115621032496537382491525610840370108011025929963926018678693857409360747729672637364183525160798106876460835601212486920606586018766434152151131247931729724514221919409924371183328916314737477051025050955749107655493266061108593722737783717101429350199093402135443513838189982288146374928507720336576088809066556338024622849808339444477867931376487665068374831729270197444156331494532131414704486972111867406931185087911185873766898491830567052667305940829005711492847589206461204362125089747234303652898528324625703646172910022452990742969279971004192020050271054472976856619986870942547587972508717355459172839576620710975563895263472249819699361601148947262708515733575641788801630530070372957635162180134727482636677786466079338848496262434519176709095273018607943404302479631792396471191825635249998782285373333365309879893510918925278969724804614324375776782417721345884971620335996735265204075494536338223203112055641124588156264274206669663575004189189264333257522886083829304191609119190940604049415535912746946203895064282106891981423608114936129061042934339439306789272835657907654761906289296627774077822253265070676247258440376528144860753468816078660812658872194281147531322093914420516427247606145813826780869807110418906258738542746359992895176011755793296994163039678705125547521502131623612664109501158373806686008072425484812802492926060364985167818840701238147395515232692802125116103290748514323579276939338229591157747328685002966640524104596799896767258057748476110883077071323071857543893754622044632164658265164630533517878889437855366498174237038064979729030544706674520938544130217195577813250122812962461116056096406275240612481105295327594412985782683499025343722031984546145942058626164956858127450364740158331846537051777436353777325078828665320157488863263112075735792876398334949472472450165803209705432129786822295910580263027065885717086482169713825766555334181501002282336754493999165814600588544648552080754694141509440394876900865229814995459047415005732322858834164073070290669643876831587094845849522237689431890028246088648065847376629889624648838166102178719986045621827304929169966532288038138320154008799039630817310114101319787749157583260548673498800571312078892130099608380137482508410256682328218937014892974132760777829050060969863725800362787328618740245990088329992420336403309664922945020626090692402386588997019526752804014131773626236186236907073735961373973161562210795823548698666720161302417768269339911282448048052796846215052791022476963421814087817778472009942010358398988966285957685662296610286108040741412586660157258687724268104485430983158719079725419556781751507387958612796957204560178979340555799638410684000807256971426173117531818688553838020336747290366926982158324388147906568508316417145366945293411901065572437756149546986259982395131657754356697202645689945634081337333065967936843969070889840489886102929776238341755887902902796917514905667651048514957061151931329443289423128037461283607618799311420015409122900920880393439220523391232875703057844317376115637355960742816558671526842198979289281361247086511629377289969479697625073242971559254831279582244653540260496149253549184485599319051352974203643129993279116901742691506153502832439905901432736432476926015075900251667304570513062418656092215934746000901016079948840447650050598689039776202322870265488183680620894012841352013426084163804720516928762164322375642143455409235183887380852278835271931583637382897738229039185461053367759405897678952227481021073689804346655113158830475049681331689272947671057749891936705968530313564560999610951177739367973764334392425038902724665586693712299578617704452689922640607192961354116761009508602896876840701767733608774596564700818486604628370251023942750430514145420957522067743553246529164236434451246443729961148794009799460077360091281952304247316208552067446864034629506332877636886886936448005068881044934963096932373906912451532440306582099525835375080877346699451272552098581082960805752153632462168714548342415912351075590679789069937991182708107785492441395917419025672442651130127874981834230887473149311125684582429884716938413867109733409120962163235266114468092768243868942357550248613852389742536829583679233415491363317774465472960658690139545095390463390994118884593230656166345957842256146757400261629974392981091271074064774044874648089556421277986921839213390296722534008771111718971656877822619147046731631723909782677561618519062183149673034737298337510242726732477403999229373264923584265864020617473456813583820708400212242183770299242529863341222916110477889438214288722485218220597831021548227896869079839944682510049806801192822415808827585715162315002357364690970144430546862361302595009949864524717402254633144803486759199288884207675590887229114660510342805323758958037217785090928535596823953263387992200672790928438846797863598870848377063194622704932581206364226755346841223203418556632866644578380762522460529539066968867541312307377393120794870366113148440308388121449181294367196283618857177624640416279306728644749454699561497928590403487783919909973533044339586081492389501524191788700703249133059747998195474449512098738584061113984938401401617104450265008671591797214374438775379087208327329067846734491880568213804945043624433468514343991678945627706429371918068842958067827310243430963644408469254905607961476879341658622477860304728858733922516185861697621049487881461341077367225946530884893523948370249240252933921457221426813015816349878046615824704117533977400852499995519521547291476361013028477627580365675316762031746678409906280665800816580934377433183255727962215605144983022794129095036022042881828405695342679722356229682710365127980483671492009908265853612168756748095573662581316648918442570832787283861022446050539244588845878360679522130272470840497730024310339003955002971949808808607462325284212048880377116350379101016918273092700128234857352537340591753166090156322093107719705333367581056005360184117443704226754884697427037482158858018761044979382460434987804503274506979314492976340112984385512934645187534936832869705082674119073248836521771965890717097053892114422631775677340617878014916046791350905207737891273374607118894359406113604304231338909367146058209959231063827577311853579281204255385827783055668771530660049145095015708190422454050827138152765146567025783651674676883017522167471683652423192271011455576174734147745226496747165482361548492678598219767019463678345165821221997134570754017243580552446685205235394223957321464957112521057884528253014513114386180983496817769928662158404590796272169841165552633397658140343006950746576212968638727376479219659528463819582807456447641251406264512104386049758151808801981871417734217446666059834325567068828525270911662166724809977968995201582298672025488427063008517198482599019774368973990015635901439464729969982166844928296221490725182243276574516298483489613881842330201734635603182604196816663939777534802274477475265456545186947869712636797755801573988412262391272310377311526343449435973762112096081189395798867471282699168067179218108608252952080137151825790724565219078391000485082625501864065163358556577376415004888947382611887970168590129929876549738667274417872792645164644956844680017186074505399496933457241269401381400343084743002699673249105371444823808432383009687760594335051985266778483547922858750694392758374420596029920416717477017543952104160319604976233288808239803428163607729491865339230384571325217712566624812075271206049746365482156390392763078903992092445136446769454361287419476474204707058024757454467878779046760576396238974656359115690234045391166934025723967977235681228767485651685948716570149075261344345611671328009663406422150139203700640798804930451265200533690090430564248974354850044918576282325449852722031557331420331207024912066526862088826764894862853855328884293575061561106480730901001400031993512959058334425422495758703251363053321956574851778738647121028753458607423499004247052646072300567562334999090458290223105452876224452602544913233986497321220839366569017313275298267152558594684606838776673366854234633318050861887480894947441612484455528641487398985087645272892994731704526105127276197835871743623412355875982394589729104301578197283937924389791428788292790937299667351856936340035275380962161567451560721679907816001611712802228594299040444400311732419649300199402318541523712230971656062830690851225622100586744596406261752920252238767457026376771716622637593086201340170300337218203747961335480800795633573104598719667754759732657289567046207032579500043597947394083959360969796137541795242365719402873840236148535412787404648467345566669511301122787965926100800569743961507065738941034862412215273472926922738921471018289508113086459947917027080993567190808392860069101894713433087580083527127929655427574974782673440463255097607054020965630028282436959624283493496521667460364498812896516021894784423480989645943558331473490260126058775692904555355352043813772277113979583122286229139758286937830033331760456845356428392827222340669715379742015992746943986139878414583937302754720480471501779150676060344374159420021560443265767671511179342506912557343513462879055937817636927472284384370032435397048211152829898602306668831651118231771146395961441378683007357525817038272656872698938155534272818739342386131245001725337872734122830516301726819565077575438305092806243376516546172155932247708738407024281175864443954487575539562614699530732171918475140830579659625723309512071529070617060623888875463130843620785454637078027415070654378607710541110967385090987144000761977866850765900234073797421179434359147645847276308094050278116172779284954933726183189997773651963558436617066450275638940031175820283165905120181377679512156101147124234593509786480137844231104711560790845894208411985572353830343226190199602791356357125609052638066841787669009635372031908769094155539062844456952538253156727415709977644379314889906366287555460169830808754976074973320279422532275124917027694240798696560340933596805850106230243069047981300742715078232446646382652743366414271191178719016775221843785860125361799666867554868100442443199644579731123304432769735345566848569896984835208472200768969118758478150676577084674897434554532521113583771970493388054106730731470493254991709128879333780523841333354157951617477019808765252358100938597926894991450149072546758157959510166465262967401735119905553925045928065618730712386177456771476832749319488241271657074419653783490392708718339647272270209881843364635534344990526676421663784096917942467607842347789848086775976270624413832098034939181484016651692056495957182094241804945456199090371511628840425563422979011444069173925331564790002179829386363242109707064132854205894918742759436116282093037418605017798578542880954949681530648828693539690374084040587981043502827173299239134103620528394357658704593514648106226949529476977721454054482238358795930700634724091505511656213767208221763528202743460785871537529201068017026939318480329573135803897934580372896280901462824423532354277187499002469215886184352584457501166429684408514420755864323464161409999982673111238814262579350217903853290771311586900737620533106785051730340427272420714246229355531892130773454224425780191721647040338038521410421758553469151144697398770330455348408945545245713863658870873250935329768568493859650184072190849665339796960479550140988725698592909422832921329440546137359317048250684455302616840446099400229933280634869874589816350237102836024428518728176140690219400567311817451429737150832089464935864505688298462628948643076225960813211131323305315380157972631159009310055354838356637464601843694644414122257678020017900108148450438807083836981244449982024516389975590077376932570667511601434947186511715168473467123329365264498472279127335046043018882539966689387905426720426164739558318336861215764951665383988535674647359546574809644665996424606911964137031317359876498238610412802796096910815728083309229867102197010544951037474682531644579539203685604286856052290982738492336001290117813616274130642961977950631619898710831412756209681739719356212187647039638452632248327668460131424776981026054415582849933498658871050012269750085838708927462855586586409716127956864542350831392877127241007604189201516320815760379431181287730660962775512612661171799244816212510212539796987981635911166736861317334741376079759230084658324860625202723786094674029389166324457327258602270780583398638587637999327199675305481151762695245003662624210415929747380699747680922356078165207607639158544595776638017122848547987864511098930342609720408472800838717801495613450944149093637775698421145821977622532584969314747986377245886652020351302166899067426431175052444990828811096506316006524726990656836811891243635122157453022324880231215334283299544944842834952433057674604045015249801141447425759657675944884026815044375189158578735924429757807457887904058305169756099220350668387808082467133123502007997371387353238763282159528718731108711545280014587188370370795385857598097831920974886770912349073632900774567129018355163872759546730035829442644147015392048955477363817617293140149617552801247448418228376891916560533704348125684394838859943475629110223779934738912227165248099133203284977368118142695613903632416954518623454205969226590745362765436456367992360927934220484454518692643658096161417238338801712956036492395621193138912756156416889160289465047724703878065077306631323448081503967105747218828157531438689985140050843930183020509658333577530724191325517541971640865713726953697977900005503952079146995457523594643366550260356739166637455764612105149650649764887505210319964774735359581389769733508883767279287553855940494099677070134663070304563107463150573187788661312844929577963040194631435579160465261271186375017089415384588931432267577263447965087856521985233862715948389593879919528270842003669900219126774893380482074196722844021297549389986789017868085375903183306390700398323600885323656582919856419212826473479891217346912972050703888382804813404277232313842591629534991919801519515944259984211326618359082466983528858635716005373351399400451275418967318940375139591171228779087171167085748412793902375411431947033312709525923525962955692684011515571874844627129045172111315506268552980500868999194316940435742099149189846912346415832421308906829115956665778427536765557700569361523605898070824962019291045052927514045212594197633876178490812777019230055246564922119961523298915103080992119820725228223915488391125087145982809348510905416966778516725707923696305551678824992808688269513042322141461287602307438361695325322132342924563283241892204837930654644099805066884150020898643509769689165749361438417916294016799575236397820763135705434315220267716409432957314118746984058570270154528555518969560238597716857031362340391044333105307207364740556552565435519703359013223175616645760908329519272401581116694823731020187932749085739873482298921963328906149431208864448979044444348125272197308456568056279927222395793305421280068496114665737774595004343701427044825451835576496867297199214039708256815992024071636780839215382621686876819106137384138362042330066952831524281089509146566863704336873561246230632872753614140690107297211710453817738232519771505697654182295566793944143685831691934070314696885662060257203425841700289097731805972343494514582390474367317236781058727512218952044586273629009708973257516445075690385386174703317606736802389456426044180001633801281460247834256491954261646981019899493749681282058825777822702740770931127555190234913082133041814030277005933120336064013325347288085062639116104285389071832410804033882870335987450766397724510896715808984713961917742342036357672406341842951644023468780224230376056419668104774575857829252040176543720096199618848594758514146439189163198934248470646084173688196693727324091182908388615144097236492165081815228367272849805901433952722019840066519003127459927151071872321056327394933550744021322640662187393647666858418126147345206366968930797017670985743036674158817295648289281014415080154271471152934084225336128711319165084931904869753984005857558278918638828006484881644998986165424274578200294122175331063108200228040800242763908502489848781839817910105012955173909599996517348470577482102578342005840649058215109474337623006221574595898087065304033430432420836071956549369806424972279928397077224926980894264797626167503926141758320040473847096029801226660259027853445682457329446516863633301154538467802371924704916479524065544240762075146401793197075814372606250082883545484287690967018637412195789542265641617845581966402322996220042895220722110719179830205020713447627315953996473762626742052886717807087896701655674021665002491589020942694700346275128587769824398494153740405071469907177116875363559112863381991044578821390896089079734486120713039513266802829840000555644046419831392311173216971376562111720817208160954080856587069551177041155814994077276655059090834175983779629157723723135577550471015443952026615761704326709203503705133584808831304573296650322614614531724126742303561107857569351948797629829862623172479694724448560753198300240822601301055278110440076980483845697711350606590271152096681795665568338287802471275289224550574194276913491784730945380278306848743038918637011668871289561557601874520065494150195174524289372338524668135819283439194755442725673468463615985249013287737955821920130725490019885878944057314492980212902816800422486546787776393809764421833821445210700919639032824887159570466984711390793806637888967855942210171032127026543325395710727960796926345811252439738000808395164152704108549875733731067757588637310722003813173219359389520223821388144527434009593767518507428850861521433301904445576895494089153274748269289834818891362011218001831895412927143646826856690335771224692270459517768433155122052465603322657355499591628342157365304850207551503320360779895656355968274285790714691171938625122094737545962542826847237556646053277488226088150096259632411732565491589965191392029760377781738406604805259115657050398175008750838277264520907824559035546772575948562588803967554006979096364930088937652288380922532699475246965524355321245066770304773382623276822162941829192369243231080875085525469019963424338473176007012103198717787090638279975358151589715452321107722254768873674523453797506306750138818190213674762966252394729892568500997249611023471148308261721244045145859717954996830825685313205460334940692165611429328274199531200773355208695831834348950680987004930716057200061485692525715277198149217723255220200390594778727151452392368454590214274482189947062435007789106757531237595384717689056124208374647197885065875307708251173003695968252249785998912444537254659599099342651126065876163888450348408093437008276474781687412907092883614030554134655176761030767910607923600604308455242678187422465733809143765387770626532343890527255998648413149632380021271871747821554827373610138071669461981899478010754866324123230891991245118110233770063944420928495460956961250489689957319202683736796246461288589608444696177608584440380692831552398394781885100987294299755195929247811837392451026912267939801398488781066344154450548941797844269572308685005092359261471760888241175647454705167945026036600290680081208247262467971062554347918383711717963242098645668400931788655511133008752257895492425069663884167245947750202611976869492805436817117122688403981669576365836323083303494600111295195254027689584897707334780242276290492148218026717285822066850584284699844708375762825218547435714971596367627533471743197863808951496804904525544113859298580568451668389489639242820092587566796704932634888059681944546051004728744826568984747287415150357798371661846586722390341587282741430891702485241955017863688926298779975000239279524870573771250031049434706413391939648129760091265807328633249264175324971625048074178342282780281449795126394597155536541320226892935508407805356400934150674342604716020302328064457321617656046047543016764299365674210477994589267161581690844274772119980541418570276005318049824250528316669315642324077797674660111307057685698324191225057842376004528905288379639584889317333823862368884979255183726695882360328413226163653643729345346670717034074222238950869280950484083842342658439060085932591091983880312019626744437409244337045928950917522518324550156215866617870622213521270234529072499952863636990564004098905655146987064668890542272491983873806012546090730962222478311328656198508843873021804817303029345848577660524742280881976888268899946330937532105385553988927128003344843900268375834805311823694723120320084476812790435990479371602214941208004620406082039987004576576333456109104723873858133660221460273756936167462791099151511083444434540186241795548331319746122907443583026913645820345411486119510576063594917911691918555586109995020073036898964446797847524426284179495098319957124436311562537925351718533926457119799723209409505711630582515425203279020928416932716557565016499063375668564758151112636829859704682027950841669965127942922998793172135102561760587487630278021996558709317333014748562885692483101232406836988538246115365378288773365173884699327781052204467438778361684234849603621482040540859807029217702209563965435933987784897731503293760614681136143042465243331401647995646817472103549562530600175930585413186988339359023276823602983962169009969359626911120375813735736568689789130791198926049653888833649329141798788912152687931235315807008220612124159938204642583569592161109708459807240253531533924353806375253022622310207328286336042021269834723120658774095687929418169456675352136035246568088647407516784963863701954253909070049812473621315251045381269657697137592024633467600530051798358481866826810678611910331067149695277327094682277900324180188079851492006925105641174899101430030133047209261469465482451218341575451211859242834160657475891710770837368032564667616581224154449525005050870728768441707735603508094375370113130143876194997453233242999250794831914006383506958262905286786791936838327470086051746986686876099022880711168126104839122393038116615992814050512660898384645827000731975837118853646003773311792112671676335676473124607712219815989054215749243816969027019610154461469093549470558960355875980906109370329775535950989425884226354328523018107226600477905246854259505706348547981836320306737476785484298269702650090658454331005173793600856048893864633826040803425177390816995240548132649235589267041915782057034309893655229579519862512277298043786248933396989215860697986635405653407528186690377047636760510352000951943736296769032820506543915746567853813776092179914949119017517678124352451573942740477322870315159106664571529545808609148495557360641001449768497093344917308403889766718106284024772206331870413564134271530879939573292354217869777055956082531898259476561170889318025252537391985396819367609156439129454490945461454423463530144326940043842310050122233881304431149651728386263168394579869785824262455132232677078355815722677271888203001538985905825982947842543018736359182382758531645734427501308792843173577666484183753966882021189269910274155571571856047870210230833385910065626869401235090534225825817101614676472304486173209092865946888197963611857652764978527440702617034081682696269277596439998950343765638674145195911303521148186833270631370338109156397148899840976842689512805223523233658761481207246933202150590998418273395176826345818514239766558975426969873532900806699697579187529694979546684032463466218893328032200535803575343483102017407918682950640901841658664581619485572437793622267580424419918965110706898828930102663655488129594625896029073945494557017536052752814808963576421901837744769486824375457833567868092683703194367637387974446381739106016005562570463569058295308960414826695758946240529973432752820298186295941767333679101551627790355800477787135855455846313633347950334797264298120547003346771962155212550381170555424323747816218531230861575545650221971629368062573010302873501292102745063835470573954130210403995046436511178774624294367881010571517526746352074850209202783479237699245375082628545870361395632805796368320859905676435632945987017972182975360816120089598735833062603551970000335943463116522604480662331989691031594331419820884795232718289110826144916887125955300604100447335163597326175995431111194091242652956043306609465858295261445285031652234412009977573770459614577886048849297493324973123180957494839282515149195276489935392530598129757261471781333258273377871836335034847614711909262919080311567568958284116371229581170474691391322144095937532881213093456205981963178341543030728021780363274074664587695935113317687363127288536414978216993976324605405057091382069448643316420331653032588366542388720233888653855131145841713797653445290608706309896182123369371453562506613082059448962497386828869517495380384567672103340518049671809576716941946631721630096039439873430961834592740604099823394678473385510037358748576079197240956385389585063066694574328847322258609080425249594900056032764076811081205774537458421236880174033018179785328467049821560366055479416573420906026123266853979280257815271257108537333781887304507621705865473164952876916462882745223644668756111251293862311435996274059143790434086453531285603068311208107085033792103314936712193732449844251459642532792126538787871524817257069479574727985572785080640693031060747920189121662059954721040739165732450382359143737698054672237330914791420064080846137799625350442717806037233965625341628484887032892078841173252649275018966045538018885174802353237967321315579431001181436173799135028039042951132536850297530051183310793948769615411196773496193532385428693702599065861620544264791603227833120093060626313174218631649483771167054312122885375657208438744096700530880505746219240369302585112054821894258567089067815532737387936131127562262161655755825899994928714538792526387878078688763807859867550966166936287633235976656204667636109820526016301531218445031855054299485568110984338072642106539501753979583344975399148366955171676779403520338374165898239463837144212897316934360417987327057325786670922382121165121283326878368992466279847728349249956886759338980079937042247406712531485298387313664275444703205502506664660462242620120799180770776742969815803965795084554008674043028977080202896168792282745692524526298228710532372171687803079640885636552922388070995769883140448060426728086960164656823440814708056687502950435805401844196342869961575813587207965005929069795520369769536606202499403726118859955444901769938581065401025093093226756252968713698752059547415375417384646957390823729758059304856612735855597541914883047521574432586897882086202288406003320827325078152388791641006916475600816621202463191306615675661755146707495960401097701489214702666364768532598376062274556222201845438252929129499074622521490572834168880654668419945886296788701943554153986992499231493014898714218404802046647801092543577799161278443468519300024791467655718965398071468503215443437537015221864572916752184393121895984756681185595977354094849038170336159608931265484967136454410202896767612790283389492651239721495108514368271700720598400988432346539216640088686494893357235991646366544292081183110385563107701876341191828941831354508173401020534515686772246840608700931065149804011928347156430458917443190129051959101264024870413231205180000577630508380973396973416382693817479874409862209096466283431570847732224492162511537326655540888996176012564300243265839555134762251507687568041434131594810789751067365094216480994387655039142553346833180567645981106290533427015555301851567229658640738885384079293335722799809904922448866883791153153460878881222192838368632001608969719410597974032342018303451381029786507187773819759959051594053755997137431873832572149582723744938383130203519653269979060648566608657535446113034399582664823935848632097506350964177900108464260960207621943105388159680859730213559318540827552556146982255313468222029989086973682326175912280684084370786982256131842869264257784587502662243281513588992892181408741727820024417395188182364358824919432262728275167777875088718487831492484337134192704395672514797662902415907287569633064458145901199624095768280691891732432815677991187750865390272462803223319566898166334894084236647747957240386480627107097232879235322879869777248572926253206566475526609699140248789694686975318667742167488867034162580011932232046763166307505668067838549531759401121794379185867521530289019208079354523928978497171657606499485580352946308155625771019944267237570390856281150996605510943852437442781499919037836539786222864589886581846745832741303125922399939704954230749643196295083757950604807170986087830622866401308555732629909922143467046072623807489204958980296273169027222197876773613753237519989189538476252436751310252142181671881163387746213901292645109772061002277778417874299589917174828432023471860615248547641792037047985380551542845514446503212788776133268044166966197810378623210424516230719762736936049938605284720758603620898965884950044376581536231556861142183951210824955997045265022069926212650238971801851154898522830333956498677107091639912724802474301881119477537370346247595093509161662438008416525302187866240110758897261670340985230499848212535118420249021165583560273784204337656859151721561211255382217352921660647016412537349088999057749023394397844477432479772059611408602423949649333634675995543034287084965871366477599712684020672938092705340448121619068706090483831950599313856844916016878801629192076141117929638443059744537675339800427780972850008356649159109474753532350565820500826345253033112428368421820607917916406722046304201928330469823083194985693554376490211090114452162509394720510981292741250021860775248651062627293287641786986810121079278836501258410450913021438237888384913757697500569587601826204719028795936748093273293346650733560805655470546360529138860620697329203391913882225488833430080099372377093080357086306723483230671537629626247746741624563805062238278187071759712779838283600440279338289767991551947097195561117724815067227597170739763346311093205142255178917550998228419071610259496356022687719897766626167846468254768187254612051896793944741465714744819745697270041489893335866938456752651655215193430064207462098497731028519790129723606872310147706776499095572798907458071760384409377546889889520601730607295329143412282357293827013610339165735025310462245353672393938205593183459137557922843353915459934678162897828278214778760827112594402298036599805932223516666168550356985594871803716540496702100569997170541097421381556711530611553081895005936810643338187625469873220740949558013165803127370746545309472861144536033005977898914139664619726776228027594922510694159473273051231053529517411779397746234060981739993396922398699385146661452121096173067778776826477958701798647451562493299546067098535347017371508387100671276826754928104915760804538138675135624497378330533953006060822193450672303792620383647970649876213000147223148830196968201416099493573496025009848684424173854964371362556457284439635883269058544824747685272679826157860263375489001794785284625687560843318865711753877965666427332593648295504680268388133691592682591542768139435627187716723956535883618242170052724738988857851842548767972491896651479649919595804687909755518405782993304211251267029776440490253823095116617565893256113907562696547521967431032835942269085586704608684476312014095381174465835779633769490368618913628324759439713432465579638993318774986912499649324140621866540534827857135762817087437244497420217141017214956089568081013663184974698271378530855153290980954776929937579611065691070037568828273863717324796143331967646655233636177024355912464697539515960660901193511861904736297580943023796008289246708893704803490465448254337387004425039215347423012570918713921643913365327715010649568493603118812797919617003957686290378547967038492570669289808207906618321431315263078775543236589906070251470427255310149026174501502348381220141835908820386615420801150378408908260940602184196182605779353809657756159840259106354134009212643436700229947741254727504340164391312710652200144636096847757841338360768186098926795659098615403779617052691757027916525390249791831394046988951894898312883785965456364323756478611252826107600509642705761196701956780447409052056636891992577668989300938402824673944813830573266240981406906392189509696120104676196692157669501892218450238734945379559343462037098799656952665458635352461864626007544633661639180601223403346854432275115402746531867710624162131936882024904545001965233188426719298277261674760606716704073251409093436472653181303434957818780164391934922725192673089198949973800400056526704563527515127577975059452770970672969872032082360912531945044425423808989351765060143762598417674269721778296437599103120903377397666906458773828656069733545946230160194730042955102483695694064254277826507178933949978186415323631645051862648456138100882700953807371995971279369645993101183154120088457862907858134915034244030530391618068259379695995097972861028169882820273252253246850246003642433838193519680721088119356189064218158973070445313830877239359892516723984994224420960300788513879298235842992586864948810798447329513718301853562591070907934603982890017906585248625673421462264309182193129680693423708888687012566861791309158085606398368711226425639310379635367082034647532423596132427287504699939262679087808658740960314842384798342773327050009465880548333403044829698296916024025773363727147462320636606423142206509400557533827410929588567459160268340034118666953515654124453604120996233943426725725155981886086996300338251336193310402894947956600746324724057923886884720726373378152240452446509122030487306465330362047367266949599914203951423060112879961942978907859792638174521634295718668935362159940399489202971237038785954523032709235802147221964741961594111844638891659816781752571254718079577339251999429525569079902618379870477871172981208030764424039902253842445620183493020666193555881567673552264690345909013487067036031253581256487581621106941919017642458628349519176220638802564233320488453090644131313471481152378389639119712270937603153292240931482814423427519533187811382098393037989932428063316584285047059291357511430820779676638048870315688118989640433998744895725003018739897222417498075366874226834740652661135098154691004420106114834482865336026186849980789487021015090136864025850804224533249956267305494876525089641629224171476864939852816255431992465686455968033210915095189319177266651550735042895658738922984606322334003369192708553236652022513109057930767428331921356608065244225167969591441634489290508348377392004628722237553883837472689041958134537176009411844885709182433117541289867501853984686434622659837255941179093270985138175707043916363299207912150667478383013736466776620209352407048402023295971431891163328134056000666831870517442535648186442997629877356712333521743397620739494495529826395429285349678199973218977009511647287739297485692579128062130347445084227030848952452434158668714436513924034831980716077209870049038186105995848320772594246753953966587158508861520489964851175917146124319663244113460972198969470497484342082208355122637325194898669777052892658419712710288171164076964539101419560722666657265797357213147857043706478781799691393190419776690558870157506335017179506673579770525641909845318919246768181935138867534941109750816723766003899052199985230331896229166735712418694242759965467553848441187576276252653429972402130339464706307261320663865721526564875139515766199931160347504782216433551476060204921705994489208446306856639340091797880983888146685291202501147412159546792022552932343170724160137555520792646657373741393235043893721882604194538739522326327299876369076602189639757940582200052950397999986449460981764695000231861838072662072955265257496277769830030240777604641802068388934394932665961526622668524201450101666186123286716883676032520625271087785995499329061507319779602076599044817701342288828560503460309470419750987032439489810171535919002901368060610287635592227634534950014227440240708452586720475755995821658433519172039301328392758578067428764819737269566758360461511930794188139702745797699763749674955017563233946110226002006534773848993207983897325330962286266216346003314568595717163162607998485349198847176239530630102478279978298891958778776272433254317059595814144720077043177094293962084189692544206363543117511767076627174216022052102333764292323217978516632615991983206590743201915286843367655623031628755004418439118055955036696991688215664992701675850830548701566719771541948758282175867793382617451338823208575116104770021899710400422553545846378135066515989437845701838864876100580489134586140778692984245649804830288547340394684188211550280802790098829374247702673807042032544231912557387360346555943090105297440685972398682184320753310082134207743956764032568673428539321962865680171344348892925922564072794505326731607486167533607737576031475916081152976981768350696125459388459259734734057292821777074621456260604237991077724249468857450308880037243386067249758416421680494386218016654955217197604171863316174649806871951035990064830949617934668983489410743431620256666756394689522992910928231077689826512093456222766409605634624614619000727544152681214044077683090024399684435541763299117391317279153436715307707451486182580119582100537567173169274987865601600919509103029736198789907772411225032018304391181937773611141515147040909926561896884262914656896549185846787330986948491276385422720064017514693989552911842207842848321451164753180485779495245361077742866964773425774280479878362611096727828564308481649311127831991424994960293588842263485691633114459824124773022801301295671623746364208784997356593252618071349982584110687583860080871175934307432803712939545085662191523341555608918819180845446201285447464769244797747069877721182992476994962102793038097121135747245075515738424130443158380188044891326871739678382693973476977501343775132993797486023245985254296801925517146976048391138830885466249457041793283017365890315698715196938439571977988524133502175564395141432129229652992318698294632540087418977829215793983824377393385666872006248943445804711224719081498165739734972521573098293201908498043570951999063250934709292834087490738351669676689766009620407309733466610203292512085650492686963097865914625992100175594571036713573803290373770535845380252598889326782356922531127284124873733507908238515556325092171329284864112745526418266737224613577141718711375062884451586057651321027537801473081814525040798632744532071963476697166644248435407571950698632698346641348140562189209022342397248214373739033652656810894769077694356337136755354811185466780832223019396709047683577012674896143199611979279456794681650770228706335615016443898557929384382174704605237796388371342614362811105197188953790482475142168397715905134512375651086913620471318714125500916526944307631549480999670452745640447858208379929497369250540536427038647659874347608747612223242338542205942543530965550872247627055654393528029332692710282627052209408470385346820459423696737620476426333084502308760818289056299472558138836262284500919113825526761541237990553981778951202023284900539196113910215976429307497566924043855286158262510265965967341731129646235221165253253248626519122784387836777601478887912261414294571692166242743105821619840470328463021942074768685473070462406939600894936728761523406375275884640104015013485045838132557104326934964831039249150127117808115226682660003803469617025810372293231188426296362211246783535696082566539601882671548937024446318346764238291525149719463112578515036341294427652210870364514389850278819367701988561861478387159730460095590944106896012355965083817270969170995643041880516471167639081312663802331379008395352165910630567089048631042480072329764617033923276272231625852617340796341215142907512873097635475810468553169538106469036327903503920080174317059526085005138125995719285211151970628746502841793787775045453180715012590730767106501880833765862044170969720789694244446765793756185636186958351698640926824937525804748799831190334454003207083819658892261510704263546712256387897670714320293032239628227642070291752229990855516166960915856951848497951110897374486168022458654914298185732843881143980748768562812647946504334568109455873968699328846217037065669066355276888874819449962554003666779360612578907407577402815056521093775476137224580309044538250991073397840046869529184087276077890364509387620631932982396045775531140237620181012847826306467697213256093025148247791363026550404725983126783247605588762960290578051173544338181468045212616625070846730135745986766401800617742913752061276295669456198957955595136197753736687179465068059489188601147392870135352870890845378955398984210522420545859102375107531609360962932774891218484081921736549166568614726928534757180700725411267468403917710027285193757621447540115713442798091349367264109860486958962317255782880799448036253624867799943488774186701115110419565022627734216972037569600596170325847578833736862644424587117095151506758351375886964730447724591906611655726754358678169627296728134593869314747495163013331842299646153855856186699045062177125834821983519128676010355707369948417793682198518118290855210208580100190644236750284683149943426400097566043012292107263230808898004361082826220574165772498784549064884315948190220373518417653045883551524663109496855999080508454629190194643047548057222548854898415046119091593973156233614210286219498375928198205858004506793262847309547107839793601172653962755554475882044849289469615024550796261332718286616447770871386545270578041971753444340622349464514987248016705068746512115582131879154824115146211467779451699800324082200622159188732219856822733375335801219057712790907444956324018189104039686611040992550014777135336506172967183594687023245514173005937795642921557187091879889506283591804406677484571070724949291674556442340950327539443725789223181001666022318658246150897613705630563580200786424993275749231764123865248918144886837274957099934696563386919158403612786741768041953997539874152738051411264667825661135701942304685617954543699193420196165026324716659117872775134977241819545648982681998143917009423205032231739021904714110671552775464818955586876781942083059175523548000154085703407908416277289730813216019161260420033762124994197429423557381422475674803097487721181473939340358835892395189817064722984136396491795220451450028090377846038236485957203027974702007620202273032407371021638691501396027985222398206538546211075305254491682068977902331456357361672575358187790824543286287996185016849630719693546867119155802847246702277370596535889913414184523964411654215356090043236505293274901884509062671853271501742614320088451609580253522205491160650559080907299441238733240330033870481023430667031822604910505835899186400963552242531453984953866782952770096469785665313737076543815880906840354296943127001666355234696090239843784360943153729095163577549032409990029557609279277522751912751773014900751598867200721704568953158352110064436611505204514308458544224256523592357963031897369953135890558902730209426017190373571331211130636652535119408213547125884787441687997743566829546857559515339664494876030781186491900787650243682566675140036386846738407731261220457273996623301895137137881472206367584681572973461042151301619170012621243501860502287756038454942467525909029489279416876319185694302111165999643859733848883708443968044068091074143854086354514157055695891154582105908906949905615121307317513524994206867204295805910953812623370252601832678587735417872168260362583681031366090583227913888450247980564462394345616356396724596044247159814494730287881091067899286734811655205252051425063180133743778293668967606728637261397858781975524831984300179017306810665000593622420330174847462483580881449633657593754780276018201403038587059399893968609043776242899870303243838544536295571162674741538233551441152984992334705212878823321706531071945588169462056303779927829615259779526615264666370671104637122060339549095380157998990706750193187932733028330371281374412474536639047925951532615580196931410323706258966225623710544435279475714997694489483263980642195597696758236003607100795481776231503090332356884795846543258991125781903432950912116780409818506044715218790413129108404693131165326718830986837092593442680859953354823640451619666857032631679953152880804164984130284708682688129438891696466739311653885354471884148773407606508667188576203063502475657995096128547646989881007254568565867334759890487651620912580717479692898142867014425936428099704204870174255065844850816637589388922052081057631958206070883357053772287472809110706731180167554521077804533731889224651060534565337479358543539570747514636415798700396505209285216535733036608420055139932527037147321476407641378409924469469744425875664892782902524364996978634999839463520593088319624130817215370891226515298796617578918094877397048516039981988355048244203181670099986643466920933869671612376485097094713552630924735749524798335536545847888019287775669120791431039025343962237962013923455477880959525881811242341797019845207025368059426600596988305260843610868317089731575381398193793351158330707747806903137807994177564249722033606004816500557729583170844654396447394180536389664322417884377767911559245852911416881404104667390443913990959042064701128310208915532120942902441978099892414925986650574094657833139794854705982440705873497780845844067740682874610909366770085775951225993577473342970062677913506356580188065731877804159847858462452385981646605906934490156333228506120961072918636091094716405693999592194165580485947965421956608407548228061733958716358961672706255427842202146484856718583899785307619957421686017119709493499681533331497052946997201932160280820246891770738344668664202437095985630761053338298618672737582903060915879132140377567914762561913968505129618348213544349570389722764090768383725742769120401970530789253148255999950756922040208772908787983253906682508783608193129645981041285122178899421719433627292085481788732142051547437982701554893711353768102655727140706953120841546616341649516238403646376220658749171061714935535343984437734658294853780330134768446082141123753462411105942712218031512501979501465290174806127907674446609124896003658400849674878171253354683453268095848954067876194052698212140316274115906979578676983287733038033822514984902450603223029824051367937083911374566642511848193647195109034313773450415091514977878370401279237267246879841103314868094029712740153573359908215460872084614305369274845690871342609584894195033826658798163669831441756193726096983867711432781088136607259247888538259178305295682896775954809915659331512608571740067651474083459444976529774136342583131239297741332810453932669238443497347798630995926511152738431469195902019580793252222438329991157871476886791443127370172196754440966360219552489102738062954410081095730839849375090183559140238276790205231187571099387913759332479808178564128406135991852714171575212738306032479354599074651683755472307997044419509989620260597822399616196779090636671685237488905858441051378649054847803163563943827119117271631025262051615102991772673584747875361475207638020779065702220307499519915202401346271229265803933434176367234985941495919748251018956411990927057157067541530392097313884393988354708909505247572102335514139581545138796742190918299583993652048868567671482840822012445749289011031788047952846560891529380275278565599260119006913895510285737375949051703925936967807738276589709176127427333804880591940965184585492079176867036868993699806868870770232430890077288692356413194058481371085391493994545075734310313459437288937444996085345769732118133861387895414038472136433536321648448501849903465825915659959082505538184046839206289206738444316824222821868303397143973897623913479168627878468116146856244270605417059194343560928253110941034040291916730460825827343315812613642954397361097118637117401562197163231448516077508195557940019124171652965931884698916076118279738265078282947801935016957590314155427140106419289343242731562962985223904821545758196720306240532791368625366904172892690538011281962805920203026371179739895850338629392316967445208914178578005427695198837395245330882522025828040349232419515422457582071442103792714411958402557494682511542969559996471845873750400607856347416268125690451669702444818688471373155218583146677829027093018193516080066922315392565583131161051077332149440722894646307598656367958779763520469335237056539791489906490681989354338332772763990626259388335379277181182188794184468899799059668763310719342124277670190497005718001002818436128818798648873895373815613512104909099239048921569944568889525622300241271866055383093846065144953323524897564789435399646027114839182036249940064849552242265545526768520815086259089887163979835584759438058933367818703708141016112671737160417411075417570328123719943183104113755587917753929876754258181123149404308951843023612658179691488094273794166648023729535978014403054555556978304766330288781110765450766557237430759551488942100149459090442252207643427567559483857754919977443251753238647517106257664222580386955386539378435489965596351215081456901570762827353449112851986962735128548284213871252552983867053123405409296956199525496646577634933194935614644929540719294419115784687674193894541166927437247354123040878642038598316759533651523962865509248726177048540599720481588205158980807077307234770016715957130039835262280107568429957974084659684055998673073801977419945311724161284904070768770888948047508363074535924846573063500514054505275924160366314329906541740317452177248994283458045367195734505621288741662363033832155495038359197443762369876064940320576690777132333149124434007511104429878904306609083513998372976080373870098881474034126362790325760218309143722923908769523431071307875158992824000963735204586701763081280788196303734641221931983111662720764002117789069182053231156574914589577411523751561125925943418919402916161994403400483514815639043192901039290436082945377220400439692956008719247176391202365516993820275329628250417410035073860923702932644914584134358967100910244754338560072418066990163116718350181628830140696191499368326870472835922528565068266003572911275354350297657935378074066194865120194815733117156228473808832902277899587598883061124638094120345406914280729544931954193772571587453660799817035677429894354897735550944072753330651573247282693050474884726904062247051943767203049658514511593014561050794663385986040447704100433103468900821628953125668474658653673898997696804620122964516742525914666180703717432128923762767423875524994401243710854797089385778121720392892167237813819332590964286663593762919634265227566990412554124526791231991128615314116323450262313008593599276856898371561269633450980120372689693095923439818640340266091846525617384377187221769503307951247573983515738912210676703721655413026922100037803414421761149424659696789924986798195673189722798900511457475934864061258988368145824507464487512148430172513093376450624203531938107015013793868628978445599787794177174127424714092885246274502833071089344892264312137941486615805840804884744312275578833242554029631965259607456698324762065818972194442063188592411463382495969183835571332172866367239933660289544840133351948808300036298367941633745631444270567478572375310136921854273880067676941209947334055438185486654052556229626296710354366214158758798866443558326814438689239108264556669978615101626000605300695205304092074265254780304193067590177381658012597708106691547724749176097776844277174717128069756993428276649813932393171097323638348159161824784590854079706529210005039993540504911126430042128597238064143607934752962238691523449470389093211064346819951834761860991456615150275205331609654435134292942799162225860032004238512596369511158123899509443310184727448857293451704958602572790041435530671882562275899897595854161822860744270922068246289463692083709807205036716203855976964637318650739561074078016441513209749840186909302826121838154147290381857760824600766868000007519088367739172119448267192024088773668112314840791134920311282779775195893085524393304425984994621932670432451808894060571615830439616467503065282511001010956014635583856180676552468133360966189159524477528956737237992391892691154575055794086136771820665254081876068998575823888287157649124602820307203882445700706415172290142592857103380911106638967447475361708278817931809854949516726520601544220030170747308623928576091712230064004548138509563579126052790702471742317652528031912108380767322383843327318683148573426401376187733863653750734433370990784073091870737830204115439160379511095681036608521654830424460323689915325948626019119941875696235526864697763586888911704859959557006223102108819997244780982338391890783216555350397184779208918868318447035446446143176991950526129390389072305573223799779792677715143725684575834660736813316515901316276616929356209783535452223640041383767225368053977714108468156041120243059820407985237233323449980512767947419022212097896967726082339819597261084859661786500966391683877083907996977652543116906594575029267812247518013002465182180922346435820296831551058823815088483298461702781139778811993040972839070754886147499248494752857737579960051204482931342005423008089459294193368584116530453144026352146691496557428816418470907944724004227159229244326340270892939866518979607926591453117478792631340009212058796922595755229939863974150547261733865890110281388618906500011340817904361006841666911432976288973376846686027122466340767290491451080888158716942438899709783536233907360332070868556620952577659364644041024243452456962414407452730334321641449700737980376167257683893685644130085681429238302088801469040187059731060190333535315542831212374923357976501707393322684887198433697020272874481684012310927879534381416663472189357223570927116949339630451171236897784843905076559709469708060609678045481230291441343421249895201223258316682694604527648586254190882109318408813269357205711361631753261918117635032176113651383511550840864893654276698690123061400794245564689129328851914128004367297653956754132973445391502842429173369313006818295435998351051126093262665861360740886637424860117447608882658039376544280543793208601759914745832704722182213900679726211717066655252401644402640371846489928956907636070715720304912136390696291178631206321313042864793667323288783431835804729461581529196481853720500849716467060580737660402783915335435285399313902631296786647583460196696850775653804719253390176349809476196258397168408063614106335427547861169718165114380284737215210493218626632223281593866610656609237636998574248424241982439529610303324863692461730761198012355114335438587187596388447257254885106179491956199532194751355158680298671172713713024663147326704445842193339324761296899879699688775115050100659001499681594968970307424455815075307408675232267891117259653132865495228728630540266123798672891999282166569363042525241435911201617026392887036490202346883240247912164745152097702654445431395943591227167856668544642914907118255535093421838661858858961210169587827626006738484817719824327448496936407406476845325922019622842865736475053009377500207250410280238933564736475580426240541069296300524852407621007028399155979054373196821782744241979892162902282432102119804187968528142629341897588217113011630929849401340043895689359182711037919884630088246502270896962301487106826020521725432890214495504688757741858069092420627543899395166378467148798731154115358706655278599544983252088565628056423026083899041423659442672284266700067289139791605303368012485561933429816470989908335304708542617330797581304187086246237154074290034876936566692114199852773931215074841188317074520731256992987152867703349971985539651836297502921108724038180398023461003922847289275296082694697552204425980496405295146035832444051319790475767370108527605426923265918307172095206106801137653463436541490508214288559085219223646767071332113741861439934317656004669127293907634027777996798335341960938390779753034611866683719975543459552026736919395213643963007005778325798402143788481525242129246517219992546459392226034096335597865431894118145780143180180748754728351507578669660051247470114370972222351877968639684036247897333107450854325744721181224876293676634120574817166973469559453659409254067080448191271823966025871056801316129438630408707356779622676435667885302645995405572656476045464131451876186195749328415526549206552147805473961132761979304751013447110770061395808564921598168859579453498661994437388345602034911273326310640537768720365724822381094429584522044813937105885537619281866415599886978238226005170379527579489920812724093801552078444095824021935961815859214130212452011529978359483438406715889862617070943106221596736061021926520230592008600895261397877261856782458931313823758174291076345209936688811837976768583931570471664053145146722188434110981191177090251583544526702869893855265019023274953507345731600409820109028454484810777485723717638336582602557239266101149430081495441452303817791273090529084915296122779910139405428177639104787823549276524117564853196822082764762335252126410100400192663359735497750215758189025725986923848868690601655263122882684762715886742689709143805265906095513968975871857810688199891301940374677223762088983230840580143060897494990240388017084262110644175641583774269844468782091796527442414906033150896430841699625399908805367503288531090999382792197522594586296640788979614138784174210246668132485128978163848128355607139467506108181544052549405912855154903385865940103269944116385848036355759671747433563750263653587386026181506576921776318940848241291940997525465001037746368047500926363900356584850907950285454578189968304940697912075094941865006683324883671595056335578595398974190033379317199572527084467444509652232908908492202554485457722667697750516587119428933603083864157862818270619602955653013760309323958880557945867305019282528203122307418570000120337980603864304134829433965689747020310130974859800151231291167680004574862917208398988356492062171632064297218994515698447054694574518785188789993671276409897511304906287341700114075507190232056547401451844611962253932513398402413284938946028814900038403571521532293723539812547679165205694568142859909460219404379587669460805283544632023889108998782716247917426266273095917825774783596996218266610774556613598345818247994109457592911220801004192964393246397808965620408081386863367132766712149869596718319785154983304817963741287734542270536366905863728231722968393098197429467414167100040774017898702089719522464640195557032924046573423121894052597316068217848200452741371636395111446025818705856132137725169535382562091731772728884651701957725597498313656113669193237500523476187889738169494745332433218296939934222298136305857882102584052103657992710414861901647000100912196496277281273093493096981339402671167186485806702471802246069456494515409950721570351734376993698027699441208324971255368303044626781540240242149072715949073743376139001150221393544144018165609628417151117708549073702813600030533671636348216729579708524280058309814226039834439074786335897433182421868763245886793634113622617033679095216002140667073233567327054449526824314578921789710022709086937321193993893293977271815872295729876646050486299099901557320678328343201471514971828262433615672944175026613593175261563860854032015365585190640972258202452540796780354587425351855291979027592030265467763861500845481507861263861134714980872034100288373701260913479809401718759245120861454491745856492082755591064310732939020401197975763363106660260349029444933706713509951170818204382241117328967760412609020908454328625192638882161223337557718594145980993901768637773824707867731416810854391287750488872139953771015250533209777081464372709682001668842036059121587625056250821128162276118390138377413393114750754276176309801547605743043325462554823066146517455779096915477511085216306057075135291815921958444077113361512367635611776386150105067172746323007588624586576659369974985041259010339588612497110262482679352913784894721721814565966256909438297407579647355955570388967630213965752316992833973783537609240119933634880423521089151685724297173073212616973421564320987984426129312388177811765741284056480698553289708603087867095372359551899255828348821722397279734445622698706316536946442700884836918462725362618238256382118891568215829949149090209573917377873347019913177913055484399788600707928279312860513775528845954743295751874140688123443741654076699426411234652544801899796087409893563466545102186904844435097131745966693739571422334017846223583161945515743589444800903845984877193468347613264885440691843525992462847442431653401034732549765194142386672883784335393544753198352770428396633724737136955170318311379624679574312857273589923319848384591991161794365515734306671741242377672089799211181045990057010767146132404022493465458570008610956984453452247015588890721339656206988331025207970769482669191579579913115524940903235220552123224887871957405515252772087714248102244959014361125469977385005729466709050742628443975391590260566561653445443872962781810247225098882609081531248363875423930436189916733823496456593993231352265038139608893046614338459077544426075708787605813238868125951196057153285472486273136078493167879246466630933996982178683513264768406361361747753966754758577059469328348538253795663419190484492219689251955921418988054758482257503453243420414220768907079141625909299222694552646699869730761262405338704594803773331323869836354434863962604865805176586692063743188605958464418173379141182983983004201010440720299954119281583368676073659471915083657255010530839346432182564292150065019432926121123628661417409693915420439794874354119991828883330674458324102970618152151801889575833535172813410382497805038112076627510566063909370189029306836249397962734870085423984770136969060554752980724250431726604362275832914623920253258134286709875345986203147580440923078234561385614206830739744499260958532977185526725613395643076763821943788736132672170602617329660378959625724297618859300931703470955803666008545221357757521827467164241142469160028122826958841415130246684453755952330926616201311036432534272498559944161066044174751103529101489150151703658241336237686845442712396117009748292071931705251500160127407095563433949235500469913478161687104671422190744453497406838222228631813118422265961333657296136965439772025983907983849483195454657702681215834872297973436643310374191964380342065756545118595542293951124426886294227229749781745121033258992787835393537109478017536745606265152488059660874960533243496349013313912742459436379021238910603630546154171263285450357962553479668085824342503855480196914817103336762847078305528051401493051847938016330799006287286727893992709567420375923823412406997561978848692634197426098080458212890859395119867673225499191859754019056167105191111083316286772704423410945992134211641783420638994590621857118282255901260126902462453043762737290703320138536328300177207583618488495384407934052437346113769135891107560599250682175968283852160045546987691197415791141207580361143561322148550320886264460924580255743237601889295040340799130259240883804150860320754345546801522296751152485838151576421686901633270440036278322833346277320247298193585505674203293710477502408853784333735431475632802853617351657757696248230507257898821002136224476235768356782216969017803589221525795684821872582017078542415797156906008757704955964286683099314904317529600226913605748043586263103440994668528829976981441325557458587622462137773596728443451615454034638253498237428681405455559394771751090007619534932524924918869478655333262625856140857537440894558782642993112417241917813561817285900775569616172888871710453726579283518357126200648339091279878921244630335869935719244041116873380867452038922728354187307941875859553511040149750776091623225627221907017489540085857255609219576444176107715110429918711795563147911248264337699691827857375686069200055412078144945548596589237065016692306271237246378420750543452174188689772776212746442586446126419495717983450391059799539199323188113373283826056165081085373318499724871399679383557712449478693060364069871640957979539195657412727676294261927096585668440320787719235286748108378046806728649374024949326184081021804173649068709862657348735370757452673119393578794963980164250055034299066596934336408949903096838044178593314927212027988616391683388621292646080216044036412817554683159293814021685257557412544626094455002624182803727609226535358351530049024442845558524460560606862184228204923685256152317336583398108919258163732934401255876353902829510405632726268478262805952337981590773029150192035499033150785813469320880545064129312042491712133576579423555378374038604247496393016195143066485841808254302901477280059267332813493244994862567678358736349396627559021555869509344440389000549558680128329823970365452411168089988447698337035966277081575995004011375443233053543950542778025682562680669635321261522485909730787892902698400840908024943893512252379916117202290841456339475813570265575310358480294439220379838213688231056886863594086860631263954821165591565526311836968529113028971811301278861102146952411228109302771058682466488950302069776358956296630064571089346662791930462058649964491053831902866107477753290965743362583616087141185341703834559422870725818749370213339536880748285009781877502363699118858920751701107879594404297997171877119642225343368325731400564252178525476337125350179396387819035180114648027281754423797169098867363484128465394905315790211129162737246637215711141685912053773213018019272592966780340793391614262926411058554669200901224341586945022752922680968232008238104910278404101788142093950142676955915114062545573449952311913611060938592446934209878907531743530424649099642558256629060849749229896421848995495391309591830574386473277665746574317651157023002114863457088244844063149050291280132322394058419688664694053595178972350104037190695340033751537388066411563838005956790923833110730064676651218208930954656723590998234950849948257175204783451969035572534127149152144950331444748936448783850531401443799405872077815061912266388883804986854353688528851353583160499877196270461219413439714461010188206563109769153324254727084114756929752489450643413714131118735367580918580284431509806936501293842742877226988259389902470764515951387275781499835239944779876012049817766586133107818424048627566349272492288501751080420862964820967170983920881001202260758952795684894092445797230159321306088848451479852573210168465395347448246385815955222283099051525346881197992274526798632658677578934737897167975750774677200634026428915213675669963547974966722615560274569503099944780252261540801896942170730035332171061947407490882655464256877781088099624894098807114366720706444700478347933782257627571350509474176732044603858464372341543282111429007052718751910628775643685023278521288151308348641951399463149089256222651408153242112332882448941015937246001186634315724731453643252267006996123516197180356072890079547775860644249081828406274429126663019842698924667978251995848735420686328700010586974084943800638632217971664581096093188738643409681016096846593449322851656751994260615212136153850229131763349930175539966715346355043579631736405194698845166174427069207324927576235333791466625513057901450823131780273257624482710085314385781807986539357416852231930208488464924473952956363151003869932282852538011841483439392426014901348263358558809008284673263616739785197822631759920537308341305373864290799721835913915322400983863680889148184562891618495302087751178322167165706607810236050600540132701628931146636603800192996316880866430215947981850466514150721750634340336247852171730227797195806788158074469991646014763740648608345535577185276928949188742262151553121073342232797040680538762688745343013540740085099119776196440719415482173412659439705738182416786484713204372536769289374610228593235607044762673149330931457014938366982367077562150581233327202249904609746079740616577257680165474617510234200919637591023430633379981954683525667290672760011287445181363643941555024742235794072326185655043957263404263225162899870343423894821098818215079829573990473298236371203999085475135010889600660949870259494766976734539167771153917885109795706447532706372329529179743457772101047047560000786828568204633650135260911295016088879132855720321123727748248113921528395610131249771663456345040046565234131787775814709008650362938002377820041630386432566878711978425702891979266152588378429571898908041742662498186636040475461514276345340407223124679205368389878102240256864849149688199170803595597536279633214303580275782541085544399022536586876811044059249569390646884317595261526913754526533792940108485726981296292221559649853151436342868486763811970477848120836664621126890629851207777297104537683129082186571923752804642275434296201215118393079418468380604054648260633742971889351292304027861023420988447886541137261973467663679378438795097927709554963422223961204776690187261628651263300302497463144126965762704300496556258972659014465742070380272588009098069445175152238890040141072934859534948920556366983993964430031806005587711331473103092013772178455287144345221101631232462648604194514678347580656658117336745762621340986144413295144280049903219827866315499387601253083888558266348192205583149501424561244156903744446672020025203973906241830128998695164332272835875377074473972544911340793836447620128815298008466204602804290604180413335006735832955786526646155450974860258061511038544446602112386671404701821510502103582105518543051947870818157243280102735114276893787026443236807687169383810806397431451753869542189017119672375269082959272295439379838791849132348519688910629031250423399025492692340080902424508054281101191143650789585350846049258320890334629551281890207138475959766030312424221694101088612714373914406430178481676799846768401308372257910549911846434900535433437033309422574615707710471627063503514082211918282368665665785023099197309686856289490086097051368155426245738192069380003710173988825361275814600232403970627239402270187932968830452601873254742875233620262893862147031919014207743152705008335901434222995266026279759656115417934213610449127807451232597189849159229976872920187794029206991545483389240013312287464701818686980432158828589217591373151645549025168060920517184260483559310659732890459931623482865325849382128387618046541019513547755108348291580776381842667555310283558897169543732489476975215192166232164876822237635440205761893660161040971144280999324437101456275033122732345641941179130842654520823480556891204067450162967554056259499682695821679766822970625320138627017970308287190602924949027343701495616515183421291684563209740949800847709778205681470936943982217960637996130044360776465847007850018382728381844056604407958452805187299151107662171238219808149596775108808429480185661588943295778006899331065569851415155888069740313469428210796580342385033731967483259830691239839835004269587323361641007143350139039599959187244731275630246395296199801035402899020972398160165974871302065234974161123706872910417796254679040590294689851236994999514381495827838179145829606223141078461586012808379514166036512135881088416747009077460713199243369888105835160155121513306282212733783962700296573701521262393144388547776527678685936121959788717933812365434513895494307592273406202305962541620722314607684716503884824755239693594616909766950453333908730645458463338032504021435084457020965055469765572977690238685912051763414962927343146494475245621058236251187067007606730150063203054901884621100730266729996373816507061094908275951059883117697705572358912494470421233900690808298806269868651459295410899764795628402699492234482081172588980524211487979769914706673185601633219650025059894413069052285544747191846249444798441947085820659165522257698358069578873856895373529375287385272895868907750995572265434736638250494337018356816393089147931139935549317322941634760439849118843089415856630858355555873604811244061546419514312530451824250608143154302581174497044325254879618465942147429597059356830053079107676973873524663279698250430140385377499280345419633987083710546848194224270254938344732879347769890449081295264289779360275351321304177151801385722992985429444596259924559204200402853753619503240089009880858522695495837969617026441470604925848991413437460143896739581436294900989436566261829793494767779191660301595943917504577829873072308034067018492833516224086544689160991851312349299646117694107914223260990458113697779689708182860948688414004367573632637407152371256925938729194194657633715759551606728953604737050681592533272543241542614129262282019518246502234845976307131093230144719377161164453646560869335771367979910194669211035821348149147676217064177141484719370929390507212886303076396741594841560963001805455107455909894518064780912737849715515534627131032619167011302521864583711568114081214753976555176329557994542308265713103012475504116741091144515509227975999022753413803224469897772322607936925936021721038356479096159563587819981163780585602487746792888418229440350680593807367747180336779643087257871399963126637114265508139822070809994179367119196898548102205593882980659871932381030297441991623812313529744484060224525500387376527782621386390014204125361683639202643694169361578581614552983598805807207475506645023622897933113627166384310842619244599000249741509283830887361216970665080133230715197818666134975563378067292120215827121095603518538862871085745380770471144859471443391928016946626045696331784392534265101126261553835620591540517063100635653552863583122608945061830548784521785260305982101724825936370095629483791131625260062267782333272023968475530170882264202022853396288990551076364801480848935655702202826071627782052999028091419843762547488753130884753259514777063349021307621388234284878184103605550268965065253628188428434787829979265988743295101100415085728378161787070290077345228531705401824016467174191174585252719215551436219830287884694659838715292485850803750510660421601166054589612281443140131324371761399012053146750702442277223529030458884227036508423305924946437476283826914484449631191016634555905263753415482578414519690641606785490107400260830793116604924908552943202765129440315486677156279103422319662822467260152673004222455097123103900757736864397521516484327571803193711085990034823162600471754561335746509719853761215150657535245826087410054660700129629139944813328053485921009703123977917312537769384592882581740194923564477289851194365073950809859952530602321605423067032140413401281034386483145123742549082743398269611487133989449980468196863159005991191836450054320241919566255756085955897225646143561185426692204034015845008188215823418851175471773652686355630653140180454047422064176870385555261792590409870038961923573933953497794363794192194584386374622738898760697737948444812187071718505707952783355450240399453775627528219871050064152941187431013261860391041535704445924248944421084928476105204665267763409223740650214464826099357065650406648386254139506714630191437678544034806892434393944129038663562313969621612854840850147457417046306091678859994146997706028739028404864679207297500556937421650508866766805985020596223804056284879661278712825792707129369728685496461702943359989044058113220632559124028646470554113050138151169964977523654769372677966227484774889123628369193314759800832821805662869780690093241601950364006208922587274092921709468209032277594849997092818980444150210973215839205750209894028531911743331221918540498761881566149860748329683825790204283434081457585770960685020440093038821095219208220862773805060787087363476455420612018216542628410371811767202402943277001408924002034773236561311585861751038801724719387416714813391537379697996646558043226625556685861604572198768435933294278986599228420006028548164971225478657627458469575548207028524663737793410726660484453363700607561970838750195122057707580963365635922722724031672192293646831596839408756964835250149355111020984603357223398005686035111991854552296786726094415147292527502582619558069444607569491328671721139697009781157503475453702793971705109522071677237868500028925121057723605606138343044913207794241595278878477246407986430487912638721001811808259870325409271531908332364343673926560185670663495375174906994927903770389940776163718102461350517731062631513066630008847792851205161072277785343919477351278396769260312349811491611692307382451267498116255051169456195974472479544693565086492699748138713281100266927558856284277858788517196262408079016812054939067301524286590166152773505289520442423226253875540783988309510411381745639515833034658571451421992131177516482586325051259253928028322671611025216181817793194467114584401380181981948988134302461125689086316207025160167501753530355603131607884665015828602229742467427524560323011744975797540858334964520000360520844768636276784625658191209710178198908188449557226700556278697945939816830135351022740348646104752203655770342359459006129283687016485640372954727603456554109105745331838183134680802193546361790801963854326320860007831605561718385491397913252467734958029152370088027202338030954836853716044993400622856229302481575484776673476876646851138865126559124050864113867783510408731342866452743928848884624013073263532051083637125917185457366330204324779801639420391823930524178491658489105147480862247624693723842488843794802497327237606032639228298058589448079665104421657217723380250053178834999465312124917684858013960619560680952661435897224780712054381344262485477957646546633430635480085583111955787677782725983163500551448720326119833428538853684472248129525721766658296506701024846127861276138106457728474620054377287002436947752031352621918985843395230672745749412221934882061589288024859836178171782771215328861047804213783555786697282913338253478611857739763864721804322717903297074994154257835874632169658021419134943012477112227516737356696528610873103910626245720492167471600070745131788808769798478034592538695833068189243399560183150388531686292199292033281883314080200382130661482348953114922945491969221418912367275223572691790139605626326509080200641029693886800257497380026835536171088831685115939172314155425481498603730384577216500236694091927120567746443837004747262492865522840384105559169706950348758509406051916164602423337811558433420603260964862539680789455772187082620853695690073620706268485884652458834011342457701400654620797953578086046070433876944019222124636651419367130263363813051082418927393184441796566938665819454613112587921238093349683746112430108728128339385587479834585127433917015777655491865850135745981519928838766239780277268511860461367077545008402992879498038746843808100705042048908397603993767853588658059619532999249459352080067276196298190066285092202088738948119857588089822682093649658321020743990727454953875025101657236478842010471842366992564676217939171678201494406833060831318526040735901563505723910450302444734312079717241546477095267132942970265824178662008615484560672598940049244103520822474810514823143400345979798367143541523324701405075097900683361090023799116413385680997942807313122314544033691034754820771989400290980437375448118695764249035735395957125761447246909062273282726136120125534437832327814788331247299548097902301671782904628860608614498049509107154758109101562685921287813901119248453082044405053426658427096275858358044399930929608197162400996433419129391969054012644399463172495941172111835598543842337869935189982969610408766737702057587500688870105563401220514195909477588254451327994699916716674567080079170321699594340257159902840027777658015571169897440790818194431520784684444200463284564321597014185312153258743435950511919760849931373695671715822282892465273534340682852259854662421876879123033231242669009642811864246584369053017461794389094440384442301459117096081830796334156985480964796534843411503534309159002038939217706341317302979429663682579928685432247901207596148333037374438993643550546348740616759827336934935517659779990616660070606224926207932273123489165593488312822229856623919738692904875555871741383588246205164003829776793359368214088272069862411982865716704162819373797273861923645607566552161646338089028510284005619574808248694446011849623347079646428450775712601915315062276495500314735498336249623849383972347243002750749158736312247981207934791061114995377671803671986548812768784837897076829254544302824715705470079189286079230044348510949336191319301976961431948633577261510000333954997195980912357967128527905258833243135724366911118514840185818185485886962593112486397172067746249469839846958862801564613522264733352124178042202910022088157841398848946318373789929079755710492139885170938215794029342008892135948442947897147442213395026538888328096004267326134890146491012302053385818415858986231686784583669811740420408650752422009594275234903905361234731206480639064468375180506972640431069362396513727655338727816441051048410971084755297560910364160196003172678735441843451395415060041297654152157497510264926173641153700342457181687287841222250112619615479211173736597212159548695494150080497981921917953379604460196088579043772851841744443082625724836274169252064001962276803756813894802187483002362702186896896689278319344463718833132366947364430582161272965376345015195174346246588910191649563552359307136889606119874469103613390722147846768101769817993837206710800723565536236222518271382640025319742050043066178860420185566135549173787371872180747455081730477766057823545697682794202612612654467891198507643838666157367035887969493737914349652439959025806411757280488721404920214959216375105000664646738634690297121822592939993904345756929003916624003143903669080002246682407026594927292942434255944218650673354974928528383214004160579003750434951321500933268940856516262364459192193997436021679329545793558035750964923159851163883139320861365995247452674804002945815800009402526138635863631032221392676702011699665866263339780868459108459595073650201840768395282985764190282268920873695137953410037741958885303036834937003692856999168956655582762223162441596741464652953779296237089309821789441664084275599508750442006101851272653428038908900896340560515741618687283098315204899304735787920408754424507060129821150594502586008804437611844566202952031196321645822003187588111765215482015281540227536169172070866879820840710878291338533870860823650755619508771268662978862381104221855220935286778342824033084122446189455920271840602855970019705003199122055185502773559620079510525812457288286254400488724789665101722579661958886677993340778995220123807356317149373824205498025992727320637171443727649682697642969949571971308847285796296407184094964907789537768922141762926715159601220965463586684421795756056115099863364403436335161144086508291783550563278679704386929992087308778733918335321341287994132760839873465929122988630341850196332961454132041265837850776623912616406992948999575945945508942611358982884404493599904625552195501025106865368126142542419709097262521170899286317425965402388284097868413659339120096971071899673358209706281080553202201930152898712925518646073249007645533084749957337952078056761154841984903911058857546616084102249263852775212825130913905674137056619077909845184826690886806380066008891897490889497009813385389320654451418686973719854939464346128422401001857914513757075032502428546528057793060375312507070908763551225498086126270337336144625660680241080467902754642338395293507677580640352809949306266844142982158743655364382506128846181550776509473359123602012593785698000897162994091903747123945971465886297190825923781494054103704954005502261841447931930660936633084982772165887579914823337488334896652270510245000100395303785287255404597442919995325643998241073330801565483624244707894145225782977968049807584724749274521343782225401490459074990564003717633004535399656024072120922962545933947723835828559920760189545340597606448038983676049687263945421364599605886142124055220677604302562505560396422733628787144185275512102005648778126928529376438499306595644686066205701940656837321798214796756098158817051325168183431214321220245452718855714324112888786520427528998036524100429808558233656526458687516814070790442366837364868940426669037382499865221328412055085728676176316316445310381435689803590733344008110048922273923251434716011098346603047270455582190708181802870365577419969379809336468926038347996705371020172700720730935896759247461570350441552101013057690862109577304021105198921229172173287040794954055961652585229537007640689137590871771734314519451306966460934996559719049392153347203330979938235488243115831511459267231507062954519659779662621538784173048731200693539303455349235109000875945652874096009241530637570129351272974647832981264407865429536508725958697770976932870474713070506824201935557139429976317727924235920902578186804291817967708085867265263931564559210419867112205330647699045793600213428353466701870764763384611005378430959215072404547712490931409357946482037782068565861435770550934240186401730322698047168145288714070032656531298696796695131418134232494922526104497755288045691741835697172025377415401595135557242488258736750783004958472706314156079440311568638549211079089378438364514698699266733719979719293016090756770105092964273243029348157688526515066074247733566728402049328556799335864911959568549979059097326384719598861770738902494047864517878046961943678538999680892044090385029150088225776315975522116579212129694633075178608538611631207465030265919885181462350040674777043223776837474184687191126638375620228691201844212036769331011410654315808872345628744973824494396659437146855035144509902520173803854135338851121327861866925637358659567218385389639792041057296274957808469167752556726167539576577680300323929570651851976713525081102633403812396802746047779509410642118475295488141084371702823019992701699203977223875855697535473809068027363258412620343190001093546745834274724191685225159205310919535822425743279102057348986966464201113520281823812038473320450659595427887082007567991861142606120727705264521059391522829993324512466203697623672713432778967095637899470356002415937511197272643736122922194808467475215437602045539524970916325398096833273114022611906925661607954436233466724276365992578528554895499618965925220683421523242070238931381981462549800598894433725916362041283205942225540202436758513543976088586315764681060834360374436360718773727609893803842708315685282815880413646865188925552919140677594186238132339647304457032422848413637972512063590551872603384982055873518583330301897724164900759309064547097006445015040354999154171067817882554123165575078411093339433339197137374149816675596637496595952422196831556658954535059940489437680477504001481159159894724007449834968641846774265910422450523990079346929650271960073724276174860855617119804494596457876509738091522685456717148774979012614941113989819277432868480413947615422545763177501339244460959014136348948484586926493910540868164078128367730961232117815539486729368413911363748987037555161924613631792660222422295832308982588382072035701484030079539443903896572048687917188454866882631174591205785576267904109553564036840845047948533337908362410402876898626505089376233571494434509412255718375576680071413481437600649557034058633438153311500971642051170303423152905588287009572000729637438182430952203991279398654557091547102214802952439221511287413406084876143999263929735444231062653737404799074645459228548599722393788662131566246169484259934042765347438566491088390739319810813739090700789189915909939604135169010236775964994905171025101933105641080526477412488525184162259417034600719430809359978952762181455481695654466151672759544091857580463970333704457232419062040823008915549954630950829474837614711576062545262651173814516619324122425573887807439059199555512886869985528514958090852676390347775012596801507950621880040939215513208389313719596426513212771090712065834144652718502744941045513890505855033289757172866499070985487243961922007466723863533537136243981367230365489844426471755691963320582798030759199522357006864380585350169292048685070853356412693924442721518808212939734491618260846279132502985508769476371762859217893634055475366611921147884810057674502125135653544073581652317533520487030645581381102035613770466868536609338342379331028004414805831316978909949191129316256951045654079404775388994256304280901538042051509802676963094123890846435561592770590764746173334836867623296206135503968243825962120544814084325434099093523979609175325602485015664035745742628496098417445095974156587790251337304587015701567488166929705780186043827254640330959103929423900193899108641947631159323192760180047075850908514707775569920486399320014263449907985486446331903732139925052749885163157119880183123515035458363882678416974055055156628203601319458818929041574184030985797490291528585244519500000595046311288026794356250941127771176020440612126448067634516633965163005691897825256128033806603362415521704209508455324193909549197860531589336603674951806256275547931104714857095348504658889940879542253016708073256118520405048516805586731033179372596946184021596915484637279824204972093454711816559529709232771597350135084257995162000676322378879168372870763398381471779956815350239300235228159531123929948638323751787431325317288812055851931742620257623877538480569381010991624224137894465018031017197386778374718140099764881213672152849633070624800565228794556977297285168825612481296687560649743130327799466629910618828508011358873879513967950964644658434446416830209823418352238442507843755380261760589137517877833824372058663061123626174367700038203500798394980646399222400300384418110476679626485842211432483191894449171454111415717470128501316312665600089604999100544343713612764499510485345296294686424701201214278936940177409501021990597562312073839755127815464626511733864258762617016987798977632762396236537894125371589816727897482878373294037310647214227950227500215491089859072140853381575834041184445060004240765177809802806500717921715924141755156934283562606542667577253379639029307320592666697588210713921146066990107531698008973803450885070795661174467239257933147715386735721018768421199104555664376999884393801259352107424853610535934269435405137653831828142608024560640949023684082925395278638006075438836425316925626032291460890486824078740274342968298648092541152452928977673946446894949129011845899806848622111249199890749686445347830676305565973869615032436267762498946524124488282467413516074466502937067642789009975455113979666475075034405727737823454829781891667572523127494509962915337601953370174653184417592007829614511876301871790662923238808056135278028524561295632694719459375228864504253418167864954896249555794354794047056937017795993403316392193569289379693213278237146151717903872467422859600018320810155928959705878543944688279338070807674531322326724936659906095428886157275131751338496398059156573103205475282488653842415241076240333691713599944222775160676964437291293673113835876934501439057801721957952845223397415981483860478375860156652295048118006306143354479763196436153178071893500239228798869437656277435151407070500271441384568761784643639063790495711151190360271781350129240685585487130989001638443070350301982536906673960073171078522925533491019411343569322624374045630537539048782352649952992105453695158656313639645019133378222157238612468547715447131050666935655377874089043181483986198235303640818977971456082301366515545949867144298936124161149142463697369073063111106559548244184935866787150711601499452838671158267016174744169674797211098987119466138481056582564528241683802324059379902058473083089130003326931220423279679479141658274564746939359643851616408210971833148998485756043526736129217916857593605530328094665578283345044826959249988195160725294618837369380443427469317245725678976635856401043795991980219099414835554313082945475141218692937621953065935000897041630602162037378723469888849780639268790582548166964890130164362337843271933982331122048946737784398916174192673211502366002945738934035903971478806703076180517220610654259627081390691725127130348468184600755330523100141049617018500509207333139392153316662881901235566188779933578286578087957586829194543991507781727401156874662917709457834235175304738126329415845849493105488351374629360509985484436438569836002394492884365307316065554372295087510134611095125957542280173066498389566008799023265924367742612830685994548404962838824631709254022057036760517480244882763553645863222851168177344510082259155938497990333459100548938013250821813874358196871983545392571830669117135013673806798115155339268410189697390870648695967127925188510161276447475791751528903050786207827343142675005867377857577154520464428768265139395529323973064026170936795077866753295995531959870597001140923559594603735067931791028934633196932232715737878326156178290526928291513988522667682016715640596219343227030138951765066032927032364461119796173705330348432835856188861268437327320995853080317930023070798572119834180487972936656334848227885316715456629925418270493715892639219070227043348274523990081279074436881075515205099119495167036961631747024779512812773041062166457931296379295705126313736508376889841446150928932706398408886086639049419581073708714843628977070926513063935871534709917192302574676158716336328778903303032719713722360325664273921537878671603231719841760263623247059080680437610900399293671782960656812094667843108001928855025218473346161499597499307275938979582683553549219334074152982510400287927399119179055492090400006871505304113448562721204703162892827551619838255055862744432810707295182590629449421770656401727384595562252392015122787729295515624823100669217009935920247146380987388288600314328124967173903388177867100118222696529550927993708795404488797514355797811714467532230855752465914371824304019517665798791004976877759384405873849823417882224932185237180081700231741458573251063184200587441981955371947719585553402876069996486608963799384301511189705802519083131117051997132520458659051408438942403819665664184761843717565511049918122413782316126735412586627886080496755066970878173810671173191633794879056300487114775287395056394546950293276073361942090969162654910710028406136846830303282000141353299934543188439070045432803677703261197806492236709934175252103214701148889606491856446297147719756637299026913352182029106239287656831226422722198053265040118569926920638228953976816609410808531870275853789738680836862757371620542958128187920849004426098532953120828041195709182502058706442698657655433338941267817513685072397535735208034649181344329878781705953054614462249318957867432558995095119768194470435165267946346563451548528341036835233581367670273497209677350429500424203032914195285307759367928134472009611164667162118263460466140587161022517663125964341390333111964316166566450582599646523297463990356119097608500599326465873287368988160951557260640475688196528389483507912310813189514202126380441864842941022410753242361540805178016637004217094088863852590219035741886497365961832450804244562702846423653954840975072970207305917440655187895921926155533045250883098517453348596580066680446018732507512043936936889521188253493507047553717226560218495684650107207927374081623188319169678368907929808563597726349424053268691226044680156262930973845843676911170147156941389004744939764775860389302245384927933187434388102313442847763915342920074210049332284800027191245262289990147917446800821501480920890811269290422023146620558179163158794982424508597520629942853720642403488370391895231269340919342261121675079953836987223108278663732753050744596910188280116989034758253558473327569983107014421016190372465212582505575593869809518837484178229059763539681020917434792807131589836185336497328761364709251696307568205142638290106871034983081695352368652942384258948911782918175965494575537001240872872837282997884907372325781492594807081721218213269936512220737031021480216922564963001779220912523921036197851426112506941786291389259152052854329334939342961860655890546197044198032095449386050617896411939638862504976856152124429163178888138783042310561562321395290004878143563660866469496867179407272834608982587395963578226417082050270292820113713012748463756470808368295568558462854650102583528846570727347774727269934553254129811410189153884212914410537149125220065250449200416828200041576784062001918567367175525519442095411056527101515142514266124415227870730575228752418798612096695327610649343382922988689198716424316353948357708421341412728586717434760828595248203878351146323001094617612598756913932864817735611434339960104874184295333602596221432696834239121592557114026372731063663339420720682605491501830957358863259849861544124756252536043741416152344881935807121346767063498435808091497977621240727794848648527286025967249652398530789468751689465796713270213318388762552570242811513876254705201010143035961505741037765431081844568985043212820276278604631377805202784847586560289345812228299364009552844181142195922394204731813005479948806376223726328299868911531866665574991912077522995293224956991477690391284120975154914904767376974590955437631620684873345261354616125538222718421807891360168855823472568366368623151015857378846756947886537948532372372128404179020394754639055062649673996358140663403657275716184712870565354976160403696144676238408448006140294552013419151717656600647074860993133994196201119741615149676566941904788232040194338031073343510539707600655291378291452078840382148636247474475873264517180385255084702046935858439054549195112989818708489181703982496960025138499102342803979596931011186167098191720231290665890730939645046093327505472832576513410770512814049970054235270623398730229405776452781954471040644830172799228617307180694546890963889452554264772939094695748957536985613560113986209855932815304546252752524313934872491419038086667434296286306193229491052687499830434136354509871176170210987614678545626833685083379055493874224706294006014222440891941880519826749726685288137194974368824331617441568499175479394380631992431093572851520254066326235815547235971598797854115226918628859520089454479231788449293017071045154207404318252584992264258444838516085129282666254087839818977444706439301714891130858766178305370617713828183340566425217773203851271002444833018691315962907497797389043563508528343812888500541356401191515700616614284356576611015936521236623513373698474495944057887231224997108017647715486641446293943898038791136987939250066903495382469595786559798158241436861081047402789129603992733662194342642639266991327448858343289055955565238514851046223877651501028476855460474219270897899297755120031170423986645980149314436083959877199202593557382956725286298753399798767679209230606257990835062141244285000166733071285157570807607249250647784167755080164917617982881489596547926798168348602336952569556751292795360856662870182344378397832454526259495914730471972011675223219929974992416807618042262839493984094382223805820882494444876084960680799401436842506789847617472331201028239613286356297254384330115589124130844002918035587575133355902074621504804938658792834359013776473151975980513912597379400872105368015736826510127097809609150069938134253885787290164409456425489193764423823067528100005265352572092473263637972848703013613168133311100508781932086935498698323442705627645292610083615448700226800609699620465614946368881283894338083703018516733730839427344246405181552582879252181809172641577821393137965955820953622690370041723881302451894891567280765746088638879343942050808089345796460389173705916930570041144629446268702265448724240019161416156052295441709445580826434131355820106604152135637256275427219757024868665554854670440717056745708004103126259288389171183600296306287110570517289300370563118232514463230025686123510630959319294542806282881486318229187936615529090880660924116971880226200220290897599194069495028580093088739529193598408199124931911992859368007303115391831402552296376370658485957986971209803832008334186286663362118542894878459218664508801569752787631075918240707979905871423110660363173964397559169304804533987768683293053455371361016002270603863693213950410743819286672957478676741332721972204234825113213135401133818488054425886966780251494052224058640171121626293963988671266405716362642224835962185037136698426692858236398257730825969072005831627413537447304574916854651536352153748774356914689059131972057025077791030674504851565902590445529878757654492231249343154353009076019239256070141174950321214169326003687837009478973660721063313672019451755030606279993157597152747995572661522492947293871402261190447458963381134522164352846239841632194484960014375277190333175997227042918346490589265191952736341968003445930605408412153838256033352814839726402887574161237040328534204904509778025427091396921273433088110324018381931599457891389499008277942690811078957611225484047857231763519493894811577686421205731644560646257706549580236273989302195681296497318275357579441762728219806949364765337110048592450063190513868190963530169863195184298844810657678711345600128177199459941877832217366807524611754914029125306122951493038622717029290859302495075201623343856784693484460658201008027072047803124203431070869935759805312756331353991529261563439718685649374955259646652824913364729913350126883629907431253013666424296104903466453330136457153254149362565691169766240247676898221042465385117347399349184743083729122562205995303787696057474408247707924451819027787245794561289233498020092145397821298705517698541514517500151805367291957106488621820354678232180774783224778953198858660657367837876739465646003177773845573196328895676140158588798344123936860283061046696132106821598682762306792070290477841648657764755484479601170722248941998143774689572494975443403547212695910879531415668924769733418427734576371688872687955409847621224880462192985288084400098770062174392862805436855357410862611177870487951987731622469240184609634033851011140898753678688287446620786708694262422015539821052845591870266756174949746248500984774289312497658244357928973986230553302144537870202049500337793095712568149449951957187314334014891357348925290678040533438261162352297979734609966658564258131538236945029240886803866936258875222661758512945161814521140471791214686290602372199626433054966435362950669982845589600648324409507308171214229175826839249965326353646354601175973200547189845057011649499809807603472897618104620360848353919611859260849800093689189068114462272984210157030880011052497069102748111781150783779433723615488519482728546643652820030221366760490614687841222240658304911248723916279625166082144148977916301634696589059377040120279791147727686148655744426116963970565925296623094826992167814202421045445074919623892930940151943272406655806234809492243366152445251033341141353021210806653654183376410290527967243947105699568204500146770074054316253434352243306224817010020161423035386916904103636490317163139167880803736962971046991720031437751481645753632858503136442866128033321754693718559857199111423721141443987415128619253719585549441189425516887679850739758825920420051089780343704194750207291966932402928240937246710901841718803103995419528872217683879982748408246651573580279237316463175460242975400247141886013225405714730421233626747178775215964226443009163905366037247428264115444930771777071532815202833286880999314845182704251778970224848965982554330722758097933950358911292670377611873591161578498476957144907079539546004192035935223628230994072647133119930909411422745521049759821106475402952414804512408714884820164312573122033802988872108890953640588465344058075729657830057556025517029649355916244896835148109960887448559762942948651869764185854112651209616469041658296104325929948707436734842820047259301347727040028788100301401840350453857044369053781687907182714648832697732855662408858716441929948116033984000114200125234666964817904702304119540116338193063113375212059192316035505957141774361469826758798470309185941591975846611759730570723589055781100483198278525196218490236963587900202452812877951834069756503331788149088671911760753812999501770213265792379510558699358314669181446489185523566427620876656744437363581752839907985187617614147581270954576607200896574241818263525458834156170017192031506441648912571676337681058539931193872366771147247701249100134180690456279152251587990382623020404753400162094561466321932405451051596990790269471357918037814473103971588246508600001852167037639195594027583080739594315161518297897657901791700992665023652232368961861453180673310035325909158299412927589210315888782719018975982908717936906960817142178327987020511516811225157119504802213960287098867880840398549117855360318176244292381174015057306222404733740577757885624048739378623824055556758265509043055230808299976713952987694884564097507573828983103122249931313601296246640068891220392630507032133376435495344331147273518642436395501589088336011803349905897586831274707514797989585087476958766777613747980563257414676884668342553055730241688496788073509149129324342006641196358730629088582892876521683619320897537892031132456977790032987982526025875887750120078347595701111630129057071313712078766463363075533154327996485357874633110419677270984351351866040963565844958913162927988311650577323794770764275358329885792846356992795172033605264943461620618619861908148974560574039404086484426934237971905845999573856850372517532721847962135959284657556951692499458390583493096948941113071315644977658097072239420147328503739284704680064229867640935811927783127707071948204680872468081266473174330904179300220597839587839878966922676316360641019598708575862675352749057649401984702411455361717306708488738289662885306493246421502531534260290675888630109064587321449249843248777884072780945639354194027448284457188577216928476539284548142509454919559415691486572996194965395138059845185697451598825238782587184617266153755635876493695602593028359142941179424961738151567426606295282700933295150741302633719789340217373559591921708797361954341836418952588587732516420710829782556301856828332426921438026385223767384376114248103612871001249197468765700341809561251624500146020661158253512124583965582670726864734125516568274546425482592141185555009273591746841862187632457444232630618052076772868251442343385740528461392039013958934679791380820203925933956866537055035925209359498843518336530592284519773863710865509383879421086387311232688668389959569111006994902231623019345651636533260571392446453578630137763635208337884803155323313453291786604474103145216007507144428905141546808715058014951062708541992579108039972717944035090783806558706330333212496744812846104883562471987407389289580337759349477738963880442262378586854037241983965372917204216255997657925191258688125957244443574373847761313797480156349040889350645652874105282589108189403398609396776873965762877104132151333918467406574646979497393630572782366389620007987622311688696898821547482828269577988739783219848275202697368802715364609860291330928318888312327815483776409840153666624116383197910384754229779920026424062345021824463287605817203178706974751237195834636984392966019959128756159433285781336422744558832094154477467100410083441792501569410067765057771426623200309486039477692676299255163265859972006448499582672061854856877720129997422437306645134622724783069865233033911190752370982811709479369216958923523726167442874935199052709926265001068591634873993180594838082471418458919905593374307563215311270433637010321349887382620050240274089085619780984457438580003685026619472750951702919548808669712966450654983744553469628869300054428015844441149598453413941081753755719535296192515199578770864257799754390218792762692611621022753333257824359972453076600754549205307654939259185433619851417210525667469660071440247699604947614607119374217024491891189920434214838051761869796039283662118596183564955634695363724469553771672919877649915259680385796960158399715729281658188884270182752945185301343146640791245895698088350799183354288708314795877316347054119390861708304754006388529536908734533772181669276187090585753321585476385105401615922545489889099815680722209367844561122577926221507972439683438155296792653956061138292438846826490902639855956941437947007586553239392662798000772066757162161727978748344476636824257709154826874714745825953543342302627989456930436542644358075049103106458497424142896524435103805573119459126484321946733590671008109801318883685288343390533761301045887060511555191706101937244499620377754881263729582260896230776718666005571396290948185484111729564553246597501894477516819236700649378675756071046137800674500679165829106075245444762448067398707091275292735368040819074107526134862224012741687702233084095989961055765748253898612641444541558582741344552339884746380643301353473897670333604476048690283221943838433069115910629398358516741306638482546650800410740211721922290437074928992442880584792648486043445978263043528819729496873402463699943913617244446460969776364906133650148905019736314702550636819479326089360683916980841962837147128740501718917612675057039831469285622662343944749891402060353392710873736898823760471916977329368706191088537470576748968681068716959767303825664603343621294473822587526121970405649067596263688376004006657147812206114852875887412782729062670656597568002824353526535359560015473014583405934195475876063712921039576974987187560863632454397938279234480190737130533418004605956899654586044926401825848263957511947117813743575556161945878799984994802549528817381497110291328133748000935339130979778627476579749111712058419870642575693571472610748240897926680725896259312562691199908926462320622474556597226138977685571757639401132239059836702016610136083420400873848302412877928179504252736578590018418564333525463986545822637484622980306196571046091089003103637692591653704007181328633331911454726064455987726270544352624426035803736632744255877995572977972275585198069234284485412596705231116182640016428738242464138064341978481157772475870975036355247072057610263283732868811352700352879503090098321789315041941630550628188346526632725494189795109073954440191281071824274309179831998894616293130045109969757342655953974622808787103779794525472048620768630296707665371267071869955475998587748701332125515175383356241257821306528562008675945731824901326790525885277455253512645485039886832514437647411696113233367690754594187102423973366950584716497721068987580806883142125203225692378030017772953361640716551030638068711908644484571034372279554422327441326867343342729664109313863593012529332216158120929566696984698003155054455103638976129517348632828321440509927939949702018369704118471409241932301987382906009326931281734187070238676861675491841635389093092644129290755586623633997663614324115075070679768944062136871742825956617814299161773777692493904360230628102209540445454559471358307795978587589023629513889032835983520338422226966060430905978460113944379689913867332141705816671217818600001858163483455023832376987723803649325181077686394657256234915066568349052063377285496611263516000611166774567175494673048902391006543109067219509263282584634374336181081118170787052965518125108522337559452664340872508699896248687507069707520349988059868047868131303143639119846266500536069343644822442065081689330424807560997627348048072744346475467913118521684285713523073576675146023681630137997256941347464677563522807602841111843871910128456497724116449562583676103344060679973913618915418667210677566829415805890342728096059679884598801492014133093126138294136313873717436798790410993427812065023169339290958602989176131100092630488820575005736337889874592003351408341109966696265639537572372865657646399364591090758349211069444793285921502015124296901129162631199105530362540566891897423569967056866304420085920852534303664716665621231180088708345801119741199062675845061285044521340517602106928089779262995171160067224844516579580283062742425368909278970758912037852583524317749211198548685637191410511221664623972972959012566637478864816818021532704098731250267884817037118656763546553922417623056798058436347910218237713796355912737018636936418996573366616585367145185907357384997041098584507142805859498901654841327596212783383977842432804677090822084131483481702805586018528625437428924032696011891676282538101767145159217504884423087394593380394808903536417059014308302859415600935401978810904657636150240348956615912614783305073707382169795294603192949963302202251618268110867315241839046357771271124196177354513875263002677806747313657307523813185297436291828392859151703497972258092204952247161245441190322369880746548839179026747882937554403831119654883553941499200543232112199331694376711048635887699612576124660924409485307285615329988436579360899428123611633761570656407659601073836223783392503532664940311696502281713468412945502725261832820829483308850147504638893675970602171133982589984367124825691853414614258050496814721449803218337483697408748681138934267734181068419427187806378405233050039708816321105354558402512583788644154011010714187251468110447901698872595944752342600835566347697288188277463652230740565293613728237862018664419522069392109487596591416474829751575607972040560503432645695407831230183145186084200445061414173551691383385111878429914260143155160036475188317140898163730751917528980674873237667735742251235564418620647025270232147518140383159837976077812017127356704539712641790719852526520872831836565295975120457081012632537099391640394317625061239735895124719332364854732300248710286583414797121732733502467455572094838692362502487488986100464945145086834684276476342008477973926669053130607810991409168986517373884999418771292591818215404233204161921382046140841480102855785225525797156278937068581821283137291014558412547869593818084865096252549861002170908525835110324466826227907254002974273604484943604753756953993905821485395029255812649412406495318238073615920661939351309778129790532644536511628866862818626747103443929483379394145025300088597948741475725462339814945872908488015180945063417976735319483003610681423648463085974522204085757875631310507973364236393082043602278973485619389690125100898140719112338416979796869505635749329421566594862996744619744381810763661878589785401673564408798009543978181489378477541837407471359883252296878097262613536563357429646939841580131866045752897916296795444076857909525110270154390862287134406960911567665152762281752811358387102134049832768444093353374248528193879990281730980148313676770883344017247126954665285107948133665005928023671641654689007298744160150494230091936382163122841537401042076821979365062748907582805302613950968142532068440257959158159152369840371739444177280724988057150463748240414779226000569515765189788854615814742504528338188207018278980738422319149814432183828803571063656919352839509280127564464206228787328459284060335312245277293294436127790291199079751453330374810364256056184232847250111245343925234310046432934626642174743898330533266694101523451934854654129032419579890505735204403125195553744104531222335420041646241491084793333401870332926416567452537985972227873285633415989440724791085632364953008306889573395556341789114476179085180367889052833566401905444251297280797119743008231956694061161530153420453947309751399983546289951605237474120207629601424676983495839738337719260041706398843485885486794135182073193308756348495235180519395077803495787611913982626534539360847700410615598761633773432130077571389822681968349940649749788476120532757818342306847241324406264775193238948841508615718401994366316062989638108585550641317950632360277602214723789549979970938443042314352953532500054882109955150613333457699075021702786124458130289796221678490682834920567445776899138329061822244223001758983761151099600235168555099732728706916188063726591442852018253713438101264757874073322505704358977810139096197105902702438523712395077700873566176076125704353567940869084481676419179331228818055841605381811581622848762246463513060980329854218315325564862286958108735085768098757331747979949779816812026500268558842516038578243854171045900697261883656778357947504770364003622219415044014878581829429973957079588676687351774873417433979261875636808316493495871994252915409932918105439846731428971444191326476376271023841902876011504901776502205902663860175972085445869643096434265459994264997716166585133171292189445560731585522897137829203582908281780817424119268663898156134609645204694233672568330783291595234038984487962678503146172249411672881017870699395943092622071137163690610748148510419208682163346375077184178152453150726788933059285030961334235268586396199087276937465904049483447965771685368801215755203150720605726742564764767307366487458837852722482318100948887867015957209287621764924279135822419375718571697593852908233936712385267546488589137938503221095457272303020440187857231577940902207094839029113015063763988261323792117586767202076509413483613209640407255400711472010749781731698700121252920091090773176763332134256935011461994379969915990855160977414758120753152051849380929714841228692223525573426834833946115589297143119670717415821029522408773683885492872710392101781589887973267837995538786130550360434735409091431110199465904361360103488134956736288770097928889652353098188735422362067164494378667698576760290330857614450518343595100995861715312955455692326381734822366257642228356602267208064906567253934425458693850552870465520324956179071926887610786752173143453562480425051883762046531893839662372252470257955578859714866860743926489580449325491248361531596279088215849674353721846817094117818048066764822166497968436582088734926132783244276930129595920560508385490074302373221132409749483391399914634926032048143036560369733632158591597298620669593166787481950912441499534178872967107796067802788753443773919248978534505485949131140075345814224183794286079732372167168022196890799650657095547710061151840555837925653137441596231902867620246633620334471436861123151951097230726508911088805616792885917864818161684280437226446013702614064950337257859185053467528865467447492174754512239825103550664361678250885896300602054954296536527226124155008088406375750550838110114313912099212276457979809073615430289377885952955161968358837502589410984351788281690818140497583409532242107934710829272779696476398192731856663376510123130102726584274842131571592461399447436975124033129340348654041943319821436281988770365787369326706057289783772591059838014034876048079434670709019735312746839579728930055998433336447896650076021628311455130939465866206765953225533255984989884270025215352466483423471131508945224969629053388489609769086715436379061997055645890277832369924447332422770985002202763697707535504570961834884868400852482614481218528361116792031370800914277458728483076151582604533321020254943629204299904399855479647983621222456861822910094752566448449703654553842058795802104686362369491024612038199264695288044989257672831724021751426800010553405752513368959314929256109225962237156566759256232777895417569901736606592934172386494042846804535126492634460576731564884424697282485943712562450872614292857793373290050359492177811549185066478305391384836998452670839628324959638985615898129818127012972714842276229718793969076319701688568981789984604261706986074499350419602533845154437374744416113729303964029202082540979621133511885172295793229857752923900071419946485869542418882084749576664346670919829776929863031697799525522606844042354128942749152316710977466803787998131426716192747480682521143024215199691564613694328548041756128516322979335520211798191908733917379244561844251569430464467198340588791468431853983961052968991809839350797808002443609057971850954830106979250279165519862355385743672499366368878429419688460071444041792159157697761618185227993694131966182600561129968568442620063761251177223159866804116095288359835428539788718093510968710055355935323239122041972917209628706066984005892745188710714958154196613621136840347130226012313149124357030630625500470319590279956377160490752118021600338707806755072980040184387569573354843690531082563023931246243014608717084972511860918046122598522592384786272432678820612640067696201697810975327956504847686363567495217230279904141774569429474021002559331300722743319949138617619791179619806442017175121634933990998731921828839644702145528860534505621319608565448024584313154378632542679105836307900318924343343925634270246778754740891840987769181358582914703046516353205113133152365468676713029566603756904121153680149424429909628052169995248972809592677358213674349969510284346986944823155193134855703562982725865550933681481073760343219123145370938872937322106096444868637799112242271408192296402578351291931385101879620649967995613547234595056182956420828281024824930755098724390004180905739222495981426604681733691324565660062140586973316167423819093536751308350415683471289633124675706338634142606634540217113375390101305622704018711438396015551574995633675192531423065599073111203631266840863421205646184243943717764246810841291984160645271827977885230347539080222972622887397392112372022844664671486169576520071721513544913778256027202051629466559202886957066190559004904373785163146048948600676517816902996967520636415449254148635917223920753189840455054995978225909140074393089873496577869071665443705682489814723160327815019426092568229628213207458826634379970481283039489010525736133322814528940486403246954368006557227733201381956132629047892363549512389994726392186022109348660006478022341665337241540546166146525314395403954922411868492253215658644813726374558780790040206411305016050601625825591286204346784280965962086511733603443234930520811136692391058590749002435929382695059376686506539940429909573632970981928108148789801780326519914746972531350465622368574800856808493470623668964504884325731628773293713308549476828360608259068949336927416194506029676934974110934709680392789746707211796677076795894515286366566970446746390226326053618245980903425640698195962713264821946160653821162597172518373918967521076955880660903049049074099426497455689435725549607118955116543024456415038617863111163193200244596582993175926827146103035160946262126856301605769226316487058177994750434531114830483545830405078342800278871459468537532845441309653264319929264994410232207690091712147383055302019236253541814114380837697569155917246702453927796117443346704050483054544714483147162069300763190284484706474771410856017632274150371790366124949469597320786792907105900330576999958534807584099693541079907581284538016644137311294695766215974257498056372924752735191927899301811335302511366346110386243854165496517646351043070898151647044441187333338745050768591521179774562416665907231044984774562582240517232490968231686547488077542810842808540098927669549548379216191821914135598312769763843958677950517349718039052934771489414704914834823266417850080439080449160625135425431874610658660257428340964989734622934483884184864045309715264938602395283996051463832109533325419874308074117550994012696008641393019008704338880748028385853148728606064857306799088009059459091238129219990059519337043942462410789112042337974406125540983619044049601354397602446339019526337570681562809852479679244269384585979254947603732955299497203572468004896035007652226426919985774373645607619298170536957653662628399939407340852245907420166814721983595115909198588622337132707254763168867928165695361884080159659480260669865444584422157688915608397316352213524209295513267571384712050775447671212602932238531800517236699997793357397420873793138114302058581055179242592755237736745048276108694179229829341200431459357721113938046952246981697777170615498694255240609603273217901899464051603281973340032945882858478495706977388846939672866892351656061036094246526648366243426656178030045238487293853652239006945624898741412397422571793252330738135293808195619878507235656098198242726664437124119710693056730803633323486444195620140093308281949071320149388616225671236459923454611939294839921187574503068596937943258563873546183870146210219082425590940139353767636918935883581294531435128621014724612041391967362936115321046852235588301426698614687275390210071371742130982413335395227545476420054887596103695192633297855183981252409095433445985920903399840811762201191835400831048088169997314724160427364889267119251178743241736961546158690322448013435598856096079269680995999227933805532728409347192756885432419991783755187732959604084956969082304369654689306638794060547137434830755068556384866276113136817131660016849700947093747874717821403859703966859347700810406415154604861867939067880087627024222608847323938846278876375187846281914159028779079601685994111843686341784926387995121405469917054792572405472080186207081090912395312764155918744938629072197131001298740140304659135892986707866669685718515867081048419962494066534341062069098949164127129091933345540921983226050538009459947942205973113941866661555715628852961590337207990126963083454992995231435857743214719365339163905783623535307402729242220898913180599988451369744257068608589239192450524910764333421039568336721062875610459135570569315244264903731158877223558213918337568424871322573504940863254348183733492815070365059792446663720555831038070838977007172318246729777694760114806312919866523568815651180062359121009015272811085422611269015296374520214148951031022372545836091252853704898627982586505309502401922680086491126826442375334904050174514020117822460151649185342168025348360160743589079378856347328121794942695459411159446862571423894122325644662733523996512335050323492558872429937836238918909823506999562648121154879294448458611064943233876548239577282614730837467467735411683168350314782579229615090873925848238902241629803151002186529164175619705934936154791428279364752022771782038975947273875203497065955175120858842920997651718139809876724501629425508275443135551745182598398624983952558488326172755830325094629356105353632392585325781544505363237697447152403358030901791323203320120035525802103735104554644999625266583099269241639299959444431211359144868663213814845952083302290439748677928487155081656802489977535068870055483406767791276921116328541640710104082337709588385710689218318956917229376273238901418748759261271631219387827380385262870284345552298904121704601302159629505854261230304934092549848630390763863857797925030795412780816292306095417841521830086669750694131464982577498717273365119310283225645228490972270609192913222780984738317776009200929758185065115759942310595774091711260942655526977754638014246324095281678144455705079331452122680175140225576204527868283696709377602103706794157890446356692376986399340710923470665191527235994459987566382091839417439814718567313502979667703178239687622101830224437063357269963371394887392643710388722895973079122589006522805088500669116922107949093013825492956090118543463264816748846177668556899848477731523666518840033257066436739927321811408454994167721067579526258965647746917612942773084728296767361852524197887190762473154718588303891572078604399693262817404094352673700931757984557437603200977394700867938796519510226242239076672032204407757432526570021655711964249563234745341088286474700359936149903642194998648098227884535590626847714270755954942815412983335468733058331821287295394307003927767454026509857275751593336487846890121208319867849057779820500893580539099734555275213552114926136839346025620717609710333511680809834681620177091872095722215598418084699591370642144988247331071597124878511955006270116809220254367078502986072184698997558801546520208675800697354086363914826377487242732475403334210440961158685852401985804120717798948085221832234938784182300550034391333848272382653534063580197662454141808207525692831165590571346100435672769483745502637735916787189995198017489833846425740305074045592680372731723823778857353274949561542585666488131693133290407216364796048495062514902300052542621366028187699213782733198517959347904992952080740674201255164963985819349934801727579944641826124687707111360048125428814135288811694548043458416123489932567547104937185171654717498509458480794660533977685022839425649151647391112546111221188434148359854109626981665776426627142605128823644590269525048172664666689443740321903225988278997445616669116884727194032319318605215281943301284616820309636115807122330807287259703903406756145102993050037041778172835364324087802105211844275860935316100066953477503079747260469036714748036714961130255200396255747597919507757757518882636658076849418394763797797370262947569070827180555542205334682500500692195346479803823724070993069377344868881008695409478520264884497034404250725767512905528638795241652764582400877509516101966544188839952578435635218847830023952212081780563934952747973232889711338724325285739488448600024811395706267937679877320395398572699929124244584699527435582616930627154756080743728395801934272021221588219402237270118273064201611709660711772732661704824275259404203227360446098960582187726104005416021954192255620383048739530945338103467494215997363608036852079337448942943718774959334210445580194261323219344760661715396961236845092687567297641062511276388457694494341866739904951087993934863177479606843068297891845858785900375579387418233122719554999104287508655384321924330141354169499018913274187248465476954007086788882140690718550174466355302945892456508501710558795550868789571228542319851202199878109004062667832734280057084835982894449772891948284406964413383994140531865046521490734205768391459174657410945892011004255875411077879693382167216616831163456126568489056489127715297050213945758881834231567321878350322443293293622952239262372750670606716121285794074586424298879443287170063156741610815480232207136442800521009292559637746303330727860832299082248360940515460467622302026087599330780025680763830561517367813782045284875644031333509198227686912862839582123163547046064770794420788802506852933913059355601429867446473302061791900005998231707503177701496742592452627627768338671303225068454383860119759064947893102952442031018835872423025195345021340754864387566916742575319719488523446747619664152259650651902697610706282609239983215657067097692710942801725929405140406993832136311806954197453211978990904834298082725976762216856144271784434656424159026839641013665906352714286205649300446502243789829449682893839462529356205945067704985939606439782794099175802144618493851690089245158974791432514332251737051744001276788623757175675191103702560807052418522055595393430728723625695421935010522407940411968925430247943450435846005357345020379676156578880196197075543393463963694931006934200776386918290990190041146148323212442968793760467715255007717488897819609025048437989980940820541823842659066449123242443373248077213109617686360845398390981893720940339543490938075052958388161487259780686079298020214243866532208027033291578472396083060903587214889175953943835087791686012795181707277395157329663378966414954712104207291065273407519061084519031689763933734393899738816616376987587050684845158591154860073085078646693205602081905890653540158561221147105168331844177121193273784290944383058591919474358213987230629036720714732786157970175136006910333906393157745845243500053478699351827464079861355587718438024495048651536097261348562931453797904673042213058499727644590185086771309148693355238625289905192699495187779377749993284394304459452320624990099647899756139922991830455099244615880987645937403447157043760999681216536667780376951990991382659970575730438300141184762923131790601781229315937278195702183157044371245693041604217004107362485131549138461375194505651426479159332578946270451319855167828244611141996289189192333075946920505013683040586110611380625397472044345867903413500716095261791395077874105207652107851159849807969568693553247006736467222134962986160177732852984124413029942076523344033523428361020389503324386209628520755028518713215415629227205047779268221406983023887381279298062999685797235052191845668146356729014502972167616801214459049002023509754367620551315387224983452757853547935863807774782149670846381943026192160720102009491092705940295320926785942901553435515873478794001932601646937869706137245053050232179861491217154459537735997993601294742733839784589383918906207958228669551277427372225918569235791342932496521189817901279842469685036125133478904544806481941011409214427891672637193657123861350408369543653281711512461748692670930530299272296036939661682959586377810486085470996336611420465896545299154329930019028782602619051977144686015721029949590982529703219788115180718786818827598081980821030986556952299590959611452898187433232628687100904599651244174003638490685863758045492771490119591375433313188878125242023153733155173385607883226695398224095039735433245117561519979647323100760115748384528202090563176467662445779906435662250806389132894382204117152436499593098910374855709128549693152599179898976736552498663635515182603329642800992071126773387771486329068676193026394447051713835541407553822479078192254385479132518069336458265321142556422999524593337105823320848049572985144171298232848957274560943228985754443095714303525222417654800818746011053541948783956229534343640142897427699562290290689721695446452600280951885503617930875214042692075349125033865293212580676552949690855124441953576780068770786233649500286195973204570982387799804414614345536391999771590688792366777416187979400390646572446488324742998170683944712548319046708915420326124471116496046948941504949737615744479642333352691319679252739200387122990349021741959405891794744473451023597719223850738672259750692842799582860714290416626647950325873962797256754794332383773171483270761578664921310840012087885509057192351127201882488678608396796469821943943666114478083961777448782150596084811372589442133484754624659273947670476126285631693150700296783982301185414371464355052421643827169081184701896834287424651851668058654115080135692821623745198609319913589907655309818589009253943291705857646763702972846287550990925771281441576288163768391033579728778856037986148584702739617600632171419151980201939525972280348316973052278400070710502119068769891592168635550301269375670293918074017477060005963680250392518445731840742317933559428566527038653168019009546711553007390081494271912409981103642325546640929074020050529327170755814156323473213439676121610291289111558178272311578392041524964338351955069400550715181443437384757896954406594508973760110761737083026307894675366038970289382217028065796508325032005556631263981382994025052478555967579289881470572193264824741778893767748809547385429197994773057757904608897197621792201294712263482021492249659327149726085501158234322651288087698885540627312452596106378866648045531141959860803318853371277555070762100084063871883067091937282766669060979862558396951829136161371956457564562983569060740876966806904403180090664670801976942516896292961954251449031098558591534591684488599426342377876618336945567840206344192764642161452651264923374350285377481930564026698110552848508993230685327550413205979990275976249082707734466582035176101522923136473688918224366597678609642255634495321799854995330650997926622785226001206414622053873499134228323065316072725239348906044290121738978056347384299060312967569997112599959657893878522649088210251448107950649946243957567138940282453529624616829021597338473326458992667879016356972499543962990676725322177343828969930669247596752262250362966059317218614459679124165707486776998324065132605999741915238320060021317063551486257651272284962466218753837613542438133444095959008859369981180979749279887593710613269445105386040725553639396918892637581886040319238534164883150131628637990836368963296424821663851281496859560179474626314973924320064409375119292154730128981411789979592745921071372104923172539439440035247260528444266900472860136471402881556876126165233771461282409112723892443980885431805056347459820246926564265478014598769322973584597259735163085625859170390953589064687241669956767955286738219701752183766591433305467513963563127255543026221274441090077735870825238202409294848278396544961759674510164969067779035439065785544973488188749839501336867933778473711606561658273894441822895806506692185887132297159545113568745425671639433049365997827315719719945207687190316557193074543798498163591792626458205762561833724246972764716028651584220301695355394022276384577114737982032620089022809912977914907299200902260283871187074548597020264435182345823397044899574729528714281924786065378480390962337939109043324541075932904169702424063831491805948387312221861528374671301777417340798687613923815803693543097292611512586801483739745719775961451528497344921558129823235308057927196673013046970491130940275600129831025867979185370145801629526484807619820661321942579528219021670572874298927095760712303793639982804148269243561560443355291399928262620469804579547507382087994636501144227816842137691333508749199544291550841932617198294635939680264857871539723012151020163848844913873845356569144014765953331651127890840214551845698810711892693073093744076946673579256920612733857893523612340138260212772972001333143604995911667344728308629467739569644100490772842319125569766337330279623307700415817156204715091713834985372415925946790478683168538495946979732334501280253867339342172997262246248732303444805584688560823002130168374009484248326476275818102411339381897049933486769590636138447056740460883144705940321483232205494519905103679435747820655832405453372541327004844705951829913928945969358647740928567087523743945782699516386664698884063827490417648721114991217068673146140557161644577906210426896360784331069377534063369600326399786205278361757213008775627981436946652216672597366980789633386747208612513612513222824604102960944130767361248911672161326421489758829227752445852242029466101711961837979411957501354631567389010675406607979266141356048262473891993305520882921989555142186879555280895058117558775923343022184039198819625113087655596327137930874104644336283710544080157313929726487958943192452935872991180679479301755512357275687046216393640106686845852872923488880324327011870129040319737122947364508121897144319752988140049211644593041106771540920044963267527520834450005366099354217713607804150882714577665407982885997866306428479504956644239063243900383828975652247231991744653337266781951103879616804240216373297993733677785277207409911007209834952629651858028410945983446724124896995108712383502986743436808290879198201216239276238687977656126673987843037366037990718627993059472118561708273882019279395698765429526655284182319997624347518566364514109298382004327539891925992036968007717540921382015099832315870702003601637915587633383891114149459464368398170779444636825480380398479086031270692055717839777397732963470465713760242140507157862635217214336675302509176949470927066843520951714880702175859428960973679630756954323078897818506193474562359271318379447353041186143053754975240437937270438781713962760287705236835632526149769461076325242567041622845153830989317483432616244799132125727645314558188700655218251036228030702880523907142158340814837927468471515573199125294740232476063976526254702123546644279781418213421450636313595847099898695127490887363737907393779565255511556717428946712076130613401963677658904402954489510048902662018482986428329542979126491349235004810430725187627010899689698116358153084168713130017735395616377759585835131115689045148425550446095011181150595421968132134591645624944680155625710573092627190385069650228814645588259060489514069879796327016856487788459236625081830016175243525229179146748749995861435464658304989614586783754768092165444488913118716823846708420994617398115590837609217290917084962592961420897377232454065361492275883629118357890596717255207373219652893109778825535407246758732448098678317124045044564461466435059602146384793672401968335439225775207185937761434021248733659857748912436555535762118108338689850041651676699846821188305280922876056373050266946873222899057443598856726697444810448396786045652221603198928876508854253631546662694677525144445755613889459263177469236139773581526150948278503231466582334179663723825163356289154010027718848906164032168262955790267418742763646379157822690162431848689031721422646292792658231844902407250235952141063492249240194275708862923021883488260827531320664509038657953194531348242688349924104639967171587590952010797781899325929762991720316732382827764855249868431426617948887521112494797983369211721668647009774838816656848269765758506867697953288555167807393972743253524822510478362849830690972210171266860661632413794937582771513131110672763651618230152746958950837352966940089723182219567997705531322521643082512524475077723465412873473277861086421682151834901514691773902545173954994895169665166072041060785484291682823799061073017808794632670067988105511593322155562513222751917352131537203799777778425156195832635973513619931643259222227326484347030033570973851146875075774185463634823934640611165158838678429345413660825989728383041828807006636530115603986377661446598133554976663065128033783247248604089580320177513252160811084937216453284640079596965155705174525033148138695142269320730154522460839422048709511283574291196805007916871599514695373067441820442589290343675280879742215183850018093639308795980478452249835474746608529380940086431937679682580030224496617228207671814396932891929993657621363365469195433969893824782216360840584561562017549399728219100002742924753270440644024329110526754697585571180009590924019111882785138942476603026456184096823981495180006354226987758672785634892906517769386007967703826706133991422103811543434020165673609935375588595382462076824162197901686474691314770512449903689036294093842377275330844004391324306687427340957926466870479353410794976868604367183859406573952468714942203076010436399308624748152161939609121638381003468257586512717236976128595155086056711451590621303427001699076489891037507254105426842561559705704890066850079123844765158221441809550470511314561137570015630298466298385192978012020160373607218488557664852055082830441743771073306214551484539400893148546129431899920375220455723747281021591911774804678766785595925168255396242023427427807609249598554687136810086974228454185582296207596314468110867897977104927421966903175057522672946650223280735460849824323413736330547552727175896394759515406924486289790191730077878357887922081275108341892357926349141543064513749839111358517286321117218389593146217421545217029588200674610754416232512356307056145866713042737227573152312756534312143222193534452770940349613137062169532789398476638450184519951755040447916766351893255143729389185337579901155302484519981445252053318549615322560354954536622208524627029439710289363918725747165099029853533455129796015223906152898152096394405594394151598569860928530546466925661800959815703806189540299424321298188226053256398698113899445508781313737927596352275553045062619103983011238478701750957023555966809880324960977076905174683714435635285674848239847490549372056671922451755919787548512409126517479256629536105800930520726557618801654991951409419704919803018027738924594894588699451455339530235098762444419320086226525634462256750087309343996232752849450635316348799030293273527079049510826234000695559668066948227917454215006980910268451589041691318210707947707628431151462599917923564247402949858066742764914532817840341209007005108414091179699212029713735463047960296369216725912857247106133217272875762326965020439078908229370917127755484873755867884700428031167494289346726922188964568172441430056368739072348085791673063004094096723792519785090354341058654030446872055490599402845649060306316630300640776755348149567569882908595020214769592517522486383904389238490211590305540307385893507850319084274893825011121622159732497001419246527536345959510312476314165634833772814569000608903578744431951058043160654559275317866995528792622818998558702970976370444259277260985050808284164954779340205436475225343089582965586918816855435543575086316070511440212561123573152655912184267187919390842368835293101842353774996573178736657417322712801661598060362937326876689479078691979738006071954097793983094780907165567665344995999656286413548235395305866900410201996799590888290212006337187570046722511002777192231700714047860829263104041128936703500770914357126105335129110694560493861981163678002766477028719939975318667794880428968233933155954889973188848306601439180055120136326817705918794119730796976935550247548459446219802436343662572730361067440467440559483632617207256020379708403867131238704867577020221083887005021442979522859562544056157653042235635021709538725629700152717791608070198735454848196350098450813381189485833939142694627149910069542856192381454245304750692396670841620047668058239307315636652872432495798753977882905441047243382101390441662743588921463957681126423986611879518203823498624250661840352591541949333358341337938113114080409614351206270732475822950383769254973406973547781685366827773207462537743624131289146561851285086685061291374716084949371261278891885981573970496036326217191444215481093604647158354329917853486004382985230166978756269232885841731452795974819856670072638821497979880630810546727792916441514511275149980209321302558557094447274429290836393344532050879982012473758548709260167757134582787043488760430226529859641667696948157620401011294316228186195622841668455133396639717482522608030372950794217657949635229359174550470771733512526238003911627563574934763210145233325630789455928001219007389620891695143055908235286937383770953096011088022134122266327459139464409540158934658922811310213487850641581663616197274255806672232810659591884917611295164967860990632925724038363090646268518080919160560430730467685287703053292224062186534385471118280448116799720662168665574553039472418414509180117335869228211976508056017309925332347206959635248372824475871258609412911837342611753578722716322494326517023634752794777257678418883351135291995968804900538249421956290613479959210352431413364965431461710279956513415093838271715607050886150986170689823775241798426760999913756215399148867150646597459186677876911692791874201764887277459432147346818099431933388167611269240319329029417953708806144070152583408307159095426822330431051980515665411631128435733783018975972039756104313333941033881248167437207115395615809777344864565938085949427725558956884354759735050274791617094625648188024878298735124441992168543019307628549966778162357119935548810012426495141010012624157153193889438133851817019255370109122456466106130832815419166535700787746890342654670705126227232337552209049909290836391497349769463490078807574297638671308323812993051034955311244952594233003019207202433315632399285081673980568412028240291375636105880613352199170907555424596769770973860433342073674134066981148511928733205760849584255455208835812998265209651739117064493134689246189510861187642202325285700577770660926571693716701820313051712119065329344698956533128367798829286711759710018256793366064322775460988821837724500598596801589417406996524106051696040758092150913939415621553362124915120026461839655981560341754497505901217705781593969746725770503131924063520904921807408698899691191363669280604686191914057333867866551936487756130109080619298431331212466958313876836335010743128570724421333189095612781041977594278061371300197259948816647116818000815353443514107383662557355723917665692119075806694776765638472984105428972288413548549608945442989165317255729780578556542512630911016096025839471235994682677283369878595887300945594483674900581411554373020507209160202050596822291969460281243766947384260237344645013562772963876608584627213443805870219092644928723087396800672067978976807875214413561617102770255033632593313797355705198172263100587170276558604769343240839014912167307669289640916484779401992986194907505817998340570041933297842381398023245685183165126875033899271657482814150704757371991879341317856521081106788693413145698082905677106291527107036928590036255991143992664395422175659060346153777578022051331323111060717663361448842023128980647852062905073459943110249069562026007768890971510216287957128987043166288972616655894398916181344583812518787188723389929436189031937545393163493881675488576811060934258690124572689087341163303580806126410900587271327468002689577594103201680369027874005276911159970492979203103928752308958835194338644908880530619427604107399907759329775672903036273110691325079097009605076131647271670753123995295588241494305256523616226617720843947385219356271411833607681025731158341035433041712130815528818622030260717632745818498065857659748203897579047268944731232526272041579443437805393992769857523772140006315832658384887217041354755496399656931488164542013878672644140014997873795414760817498843327685342674463863072265403611819600042362213520905885559292449728172918652028409216722805975707823091990282384805946811766848851694696412169847187475577398389587431849829503057888470302021531588323151012960171841514751416538995868232897214304180607360664353188927560219941420475465869137752450367957779945759381690132042505556735439772179489081122629652804746773853852717485886549262143840025319171423704989021354921682249152195836427823196210906992384081738379782918852437361305337221211671858642760033249296632299830748207650323051926362394559559985141011718273860719588637795129096809193724468442442999668562577698114165545667566204844500562578901864294609399043209455356927518172359672731027785873319703292460474291752097550488486514281060180436950569281461770473197087512972256311235331548389552811634911289472733754248466113498707335744035605911249087799637718600706783138775045130393237233939565615575026601182457418192834385933001696058283014349813234573691810062495134663943695915932943627029530683817708679708867139044523385451165894038153730154872902661138617866555679346265623220212246495230144839702593051382392296741174644341678254451760585750982555225827113599752700945099746900589483157393510186368993662909549208330600457887630234362751218409039176383282136004641122606435563348312233683261469342954136958090305332601244086181013735554726624514688587076046174703925988932262244772089569100115260807924406403212462865218786512030551461263152052499890400146267747775487932979490891049567136052697554877142322382086896802805100994213112505947910022526176409480836327648588755752140863266546346812951134536589000367178776243616703793237362839147138945727559812308058531752117082039644151806641772404133536296172687772316708580265780228771166154522129409279906819023368961176447878522204318397901578164229036997328851690937474359192080662924771374135129446011676024690403810618814990888898742325137160309221698785887817229821806402280378193983708513571799598023368982923007727246377424935611502721156632875560472852496818548778755358703876003611724057620617805073468064599631740019728942426343716369491929971987441302636651792287827437305523190118274613879512523838308443894947485993154403424234915227512419410546771429248513387021332597210376625459286017219420223297413520737042411197451455452029654980115739434501916765387200555256516351860498319787524154418580284296484572844252536884755613150013720220682922921157364959828385321208924778939460377046739837616339530903078097151922970448103270952885722153485433374395301243872144990335246283412998493387935778312303564799395158227792446995175185043660835266550493487113274072370291075991714165825334999866503714603941048132113110131515762442704206866591095541057736605102383540268616567455807597808597036755949793195554572968952819240953146016291665685380365620993410539429803674251207131310541315808132867640358674265170423162332029785229467402133939527861969773150174660789023550405153567837929858597532294091703299591159963971117906167515714405146968310257643709050346154648187398621499992824412087600074348223472226241183711231054919356739278907382313284118893193328074776229314256562641728661733305530836173719701500112636170112218204683730226285249839892903670766501366774543357414217977596282352889501100315726491499018214468923125056697406687023463338008136908038573213183320071637605449137450867820491058308277834542726807777137810296995899283811062082005278937262518216859446963490002443932143989264027264021219253575264175366072495082196233281910595145060664603617984757800892439536141537949590444734905589371491326358462564531267279494143289657163322915388872318384981557723010820700874297941478210121886819244072182043283769334402604205342794234466723658299780042483956648125908698162417165338269259815137785611454417539420419316347766838292793096924250626655843200415453741205686143123034028014475756428940771233829255815826391453089468875498918256546716535682052965619786553139169602285657627083593472562295448414624877461966281734243378187388997651190574189720170978394026105718034797428435869990617522593604827181515303177604847189161207417864971069405881174680320368901703377062870859921555431051606064021238937123179223290503505492471826331390818148416687751941435147002405741758755707698996625346103176780059284344041774219752685028014411374017509795087685542686746369551811176555029921488536132791194148507069329717176510014157757868336872168063339149663703008887670321761998545317811153029608100846458436945502083751161981730479376783098866965230884400424710865797463171611607898883574248166860159502687067679670596820158736326512951358287475092538165184568133644896930958453039709953587135397549484990008569735963155305480260235620701401455388302237806168107441510457804434015811197046586561130939533816112465021707810222185990967159705039422463448946294902401254577746760051081374563164542735150194879168560707745913264929941130936523483045035620581843418475093309644238544717598838195524049335248482691809347527123053297300519097582555862702886676658772083858669060486915945314061982833359529398856739663879312294472164053741924324677120607930603427633412246067397595689949688203880350286211720808048558572063310435494022997872933636981777705177253352315405457269848296450546333436338161490816435382238087100900963895789869671990489982523467044667984701421742974345194193176638634516760291586551982338624502795428958939925902537789491557234486150753348280943731644520025673384319013234131168335199130860054922213560547481854914597446039188403828699079376725798957620224740102103142617029211366315541790649348897345232943218445474855339534806559148450993271633923905677018562192470164589613985285789662208357377301396201156617553989769002341461362861718192639249874333445917482465860465882010797556870733672829029033372146793091405184144765947937204945927638059788574566845663945017086606223082741423133411922136406152134621179294604053281800480182853217134196826699002255145364695883345625146660112444021358376486435451545152453841083302942597754538464577400600628363933736056798299985861163740459209277241095669183698691132175479733721660810580441256740613793160247062370115790072417172147000733933337516116175131047329305461646840966083351342214959989703570582899180391088660661710072389587632769955078016304042970365708387694246120954699277671493911252782371008309341565234126656810672642698763428603614456314572119280577781308510800060397207314250828932920175553942695323597713418441640377557866450990616293438272364223060082044365541246053996867420816432234708737069334760951877562345431844611811605770144015181769025044281885650179920304254463780390209351517124550482807358737906471168398544198540568084750251615542567467463152151278990144279572072099703349873984194261641351237959850087889786069085324774818023518444023603622109392807467393685032247769634915238982647406808175341361546925396122880597712675318328341598534919133198323349833028903195507653938769411840957044197695317058864858573911855890885461825674923069442859018209057187379438777981207806355630162413099243750758960949348261912780477604030585415642044826664272100923674341609875846749955802943412772551512538305915636893115852051259340122886745998797859275445137293362588858863975579360350292047777361033872140134463312649238755926631487631694589629449326714097234176657415158476038967880051507049621157402345051523892731450188252141812434518778295813645123680232603871514237029789127307922837985537552631523578147712183008406271888667736297956896775129058104675325188485837267023236147771845305691030092545082470176400975630963998881415282261371386746486990449703885193918256307018230973263305528484614991332479641449882744753354858114496223238813819311053777369731853188821011504116075604431483993056733351296187782904067824367129438864906843470917626745091970212064917961717354929684533041049994090933044508970423179522527159263767144914606676406187515106706028518432419553714662119933958986872505276551782261000603998176077517663607378340446181001070161740104116090399568407532943678625505328905859029309872600524841312534339811797748538330353691946537641414557050154695457063505950726012996785839071180429954960267846168137034643942988247739970896446641714469563137935474961385077280042418524253156958236462368809997079499552341864113875958342106175350059670383212469032501457451078722553562037960008955462330703883513245413461459018513992907882056199111918431430522387376169404783770472461139894064408292300940956615959912180371529547349242666629773063057918034780997778320114923118520626769508680771550157019468059099851759242039792493109162367109311876480985142632339683924397545295637176552755558242038434810544405059339058289734806118741999247261374512598233515967776715323077776297224199994777831355441932138720045860247032872158461974617794858003600735798376351948526443790574987221182716654345164592940642729866474760649914095341925582469075939906159252403188322402729694462917883352553844093916358829652415586670753323131465578642423129194321466004150097631393837574342373238069516159280236916754520810984799772983039106728304699852773601757545351298321142589050999713193229797800547911022392005879770317573340103984022604960229591535311762180559481981348364325643309407418390289669067386802770622155164994834412580821105106973926802922217529978046087044012667868793102980908125594012008383972268441421971593208100522655041326569262279982617966454395283920383060912773475274148822355898515190062232778056104850111332957577161890591540568141572027868376279894629994548912805321265624856035144553592200898887852976907155334091368095510420533660774773478455160294786245969681109737133697020178240878331271275130653223690161434203735143231856173685647133520065624157066512389450560111187452554440833025811921589204348419678205228341459874804392137626973470569396017052088092177475119811479010267349032294398981274726571004886725398533935189480546322116171443051510052618490504816602700268131991913775454138919685053921451236094211111266603019182766646457203814521327001371393348841514303893047119528686581611411784139571371643177865440786537764623890203026537395011364286583297584436078031595920193541418681702573199291906576171435920795874605501568536144663211510363009536294770105909854931910588386227715630223653340605914750272474429827705150656556983097537395611333242327840255333448339831406830207737428495463807974210135857036972110799378414362832135720527838048868014676090082312400007501916668169088643798309277547694968682859516280177228720145402833106704688048183461674728722250063788971465354373590084384011845562914240787399227800575793321729973646255130890419724177612047551369017298072346843701466319443468258843572602396525692999302363389983018874502364411572066601701178515983747953599549635495183110863762379315089085661382378950289399144949107367141096997512572055489345166373201131166889648480185503562607230477590180750528113988693996736981897462892696894174812742454206652224727461589587007670434592260466202155831605788306705262510304385323684829196953795496855286877932968299796832949873729846805909954849829964705603315036120645873980118089214205934669240331856921636351532499937563299925731483013602321825775529537392917209422391017865495698929451338905391324773764650140896085524564327524368813413014944501043494708899236861257517540239907327591376119032980087600535232625735445546553443286601448419227153648507678825446726608078344694121382581522233831946812822618436409176101120518872754798008615058949875619680926413949332411887832388158792052565639236403097152259987566868871275236088081637394760053597075389188319026347165593869909048722020514014012022530309166053330512911629657172823564531753149500006793802590743504715056424238346228827776013327015719851569935372628554675431206954069461602866129373898676264837936511581278933268987056804601878653233257153382832709184537237090092170896088089455015829564769385175349009533914651073693690203701630078973031422025514109091825657985579373673486084726807181683769918834037291707477766975748123200429693779951793358861401866798874658326506838713618153124345387455982538276204657012744678697175402428427263775970346573607958616718408203874994787072234042774344007781554614030565155720051602725614668953599767491276152086857789570894828510957863189224679510240769927521398312498506828938403230873870409864527903544633604214850633467574144924709363827805632223514559625509001623276358032258059039383323610731781501187356241897497058499966227921733655809802409397955800127364826877642469074158212230506485561044451958970014665868416325720905535756870409172930994206566074961083888964858067462711302359878090890695787189252702010993930902791539091018781726205087258824043522342902010548300708977850167152301319744472555399058936153690834634067477992019002410645118059928456622455986461287694389136826062052046915475830240584580755592250898464308857358254578876894475267722980611118212373878445301822682562200161025934388107618509750716066054002230061976566924686725449992565588177770313342928030433786444589738327388341962484381970956845971397531376553300424023147610259889847562352814878005864999150413192381045699273958990969639583034777150536354295973949836613946138494606663549128471865124970919491296266996418875212868590494780849843580030254594274847119705748118974620901588333803070504249216336699252549807601441928300372731221967579357645462872646793909266322046006167175163364971842693255488536858316373644788628035631152359283244097588386648800420120584010005353509067397670774061551847227165412935651080358077202962144338631104524229032754883583158861167934172862743260013541600010591177874220843828028762243432812946659002407314793835734267743019733045820218140968252790016033528278117757110019636644494371681631108249413065412758184431043518587904360149270682079926263651417725943184810790594852049237130202831172962145008251835386344440493308686860612956491033674987307317741425929693496693029963644733451930427808945291055976767199808894314409394467681098441522145981228355506970168463872964412619561375290954825663273833616668417732324933563804540742122150858463317549867840812014825109161213631819154573053315783432378424637017845059495848324134674711539268044540100706586338829434810521804292121315897417033198552075414042589090563398086001736268937800645158997589309403045877385046412288028934209562235684327790120501841813486846921616836115819557866221868775232460743655844020828567230112026581043766154382291473363473711748593532813506856177027330391742955566523971988765073467821151268944435952387219553220963902291420904049636405944393208280947612789657266155310946339923005253621385955976908191235056882601872080458367819177323816603840307236271225032530777273825986705138949970101462619271164887971436071367788116872673728478094998093912948351158915976033800898991614539976912142010403413828062791086340818811591544126076457041868382696222368222928145466336041013509133632950482759716031317448828282954179480009155565845179129577425061360749589215745913939316609724949350670353863924615258725351654729788312565978185298010467565760675909403073561803219458848806841595454366012946692668305960200677349426233550480355936778419464834433281003747600857604621297154261340906803043386167833456447436600779607977049079888167812761280534061006183221686891979976571999478012743148651107531421108014495662795008105118389420420233014519612226643593582845351196237803713602543890184515883701225627741055609992782762553813436293530084228004559688102601882328114443784735809191709572574171427408318062976524870551327062603691970680566083671574569253222476682685508717731197630776771114791798343765534200768358078475822308094517259467343520126431257805373307978148214246859565650024347396449698796187962835404714201126205649164947706073350145214804487738980408857093777739140290993291614353156517957091061301291433437179509960762759160533026763125702723301724106271048233392743540823828204397086740987299027448120913096987128157592412941900481706709359697805059802175175064462708744493599153429583525428250452630059345375621931200106614865589976514022653750547391310598945328628662573682608330645276130280589507362679760041706357085718654775787001246639797923455461892663855488050530331794436686809097385230737080094841594321383226732163451693410861543271483537210739360329439933212239866558155750186128454898881232796810447646017446845050806678350785737878672493183325470142917997572924679586397339232795654276287854538079983462752260705553990148202591352510753513797487205395032758536869129099694475049406605206603021862436414067247002020534636411865663507409768054840828235553169687846507039489269428202107397863091564836358430817769945132614097313027305096189991233899130392515857433457516552630252251505707781715087836454701849992557545602239915769375489241681771167110556353042943650722930260506747480823554325828806978059669148861649662574591463487993670745481760350176093548601822904362967660997019348637222771610855606015006565250886721461686228873404606750991277087246083567132685617135982697755794375655456292442758748305260369023182684306263867140534331202905594421615971863418365720136223139221371638618142467512132221104782665369718883821842207877690845223045388405051314996405368344326253126840689682362708079788659392735780836402539829557895954743097915740172921484743824404982082203898239413076655775203480527957165173622573552003920654200456600200986455811524757732384441581982577807661063551456850612455711901026658475299406295627570151928955693251792713770216284277277223987229553749052465957208007567648996811094565241959562891678952300476691012152113675633459044274237877704859538947663425373044095071395767162515472182588780775629080570630439098104467968516545252263759845055969577603144411451723986386325775578748691539376847372100425280107018327318657103211050634002417653805499033215199874222902372590410405855481596825373298549177594286845595427054375355755766154544306658162822787579264921828418626950803421672101568506888675470966586557954665833406972430037098639774678968210780536014735506632765237620637727187544914347487965916310446372940665276406835784447453588686236276813320892773671190557701764754270762188948198292062771828449293739833497676081751313197993082525934943721096378183333062627242087453526190971371193773411318494713590551645358920124902931586632280341029938073439611849994893659475585970433602135047689975392241106799587489824772077323340452768263548253148703240225226591038921852023033700699443373665666009459502698906920584575788847447185754159919524671977912331360277540410349305816226133799332247040778269561047996976709063818001901621457213906263574034629475934564908159857895437089535818857230115306090751267010123634739330631013669405410029128571247568444101264720365930614237426714783113715760514867901950187149136352347477155807309815717874046255558552256121707555840800172473304867837612095467584441438325327057093816298757596910327461431279156653575134745889087746795765933222744602648298627222247097095545416633543044712620930362455146985763339245555628707059265658170644152929363497989063037520398085800224765252371859396901247191948974910901514891453747416439490607930947325518160579239912102584544160459275767900180404625209101155809846589147912543598940248578830768737325524607283357374997957304127520049316441890183813962798528089034699539918740181994055363250026014223519594447382023386182810797755776894401959933468139602268598519381951164860552607878436876899525016552513901651854541458508990599430138290206697734154429008905262798872340022834518407151402552760548414760256536894239603099573919934823975296388928507991182517814003179055194042535934118148933404165186012234632397590854756161025100176751134547038372449758657635077238290837752418296816128423798126753574826351828524567956253786098967700717698608308022361343576135924045566031749393893027639963978232698512745295853668079425121810905959012694173551297649453834547134437399590762193061818525058973044155840817463516331624533062759024665180424084012128644396587649190399326002864735317973343005278518897541739713338721305833039405983119832537312037235103361808277303612909693679059503362713533992916162625712364382761351918153875082544857168341098799726350510637125091593008518653765388298494595016099771870832015145385339578966261058072111278821594758090521006728821871170191005120154790114063532047396367972054546792872546463715527581207424146035360213416359298383759352508489080197955193922181390655363047621503275431544573193876167490398796256407523111358099330240690700331633861441941079137319974106271939811043801170452704899347535478690069400218824204202130842422416762181061225181068815890868663697065027843647475612399728926529298978379288012601009938063404113573370302074492671571784288104744896124905257275594349747179770093776518426612228109905313652459582143824163389182920097699018147450707893802014262430449723219338820168248734094500170961500834592022620519261960228278637340981145229653685792242244322484607609001434033729872535341809472273718329697213040381554887908117270091664471571997374939847259681670929631711149237179872860082862691464461538085782108103102234023974205767471711370044941467979151517981404140058639615096028236609968303567506626468768682942242146819649022448589086402924148229341990252672595727831211164923094389764596626819696484009553301614345042512293968122437653818347685057374903973681509660845904302556228205819646303916722459627919287515865760044243896973563106903336764606512001457211861282576446159213825543262437428342141288155730642179810029177192417757414500496052864026369971947252069374441012328442582587919060764703011691181764504850103379436271672545096970581065565093106158700044671661522639455388948587465266896339084092126971703561235009321093541423180421166567707086320166560388207313269250658168967929895002489561788082385751724197096079426394956361648497395917906619947195748864909184817496317164190388358406580508661853220828996118956127940369330669507049278335733248619732436719063104421602802040122514940366301715586133357666503164513006483452735970155778943596059024915147777957881595825729582910154543892608588420303411954291311027712211333607012063508791179431424216972665253902601421906740905938195802418269775933110873684941342635525277073374051406477349607353692081776096008510051230452519446397426984249209713558768361261117161841033246468080928251810613174699194905324533322227451304924257417907324630466853197273113626388193388953093986682185900373885854699834914097803668001682378136886836884012536745698293714577120836523405256628878820226363873183959854583650020199489596122175833485545364163704526474808289617409051719841537977978646575825883021462314192688883218840367085779629736799961500997673852858511815982318641706883216167281754583905441464433533258717232751149718384191957917033852176982812855874646559312116693763533432752687903763639239699272428524393683571417656267271500922776209372901217662363279042600655534750681284620089326059514553245384698018350905618945688008142128336997707472080605066263634989093930499873333041922310224734895777144440233838082391095366056857465808183331246071624824718003034025983736467167855406746369066796788874821111542720697078760893631420083404977138121578790152664944283007563163775010733301042999493957658607104473010371045310025258463516473191867478146043863544807835654160314537924407667942185553885365044734908467376715026100356301894285086870012241091750526471735706327951242856281957486704416507728327763248394340346557622359038306786065256406475925383726242091926243700925229216397889789293400572317601630247847795388213560848297486188077943803825195715096425885140540377791050002594582021528126368415319482461407252092687156094834029942872451158580842583504907966320439536867289349332186524469373861844268830736090110876618690856443632087074108490052352228586760822667822613582668427466543601515234454508868000074250127697799484842541279111702094091288685217644596760157898217500762510955676067563657453977486514239218978307485719050406597783296417049325174781998032837824602329643139269689634643905160606396612217215940300740543125110049635712987850906905814734292123573618236698269371967317169518905581487048420191192579080711480830350553035995450641914367989358871697778970178887280291331855456640002201213159070350421527547400502582071681215645856649644347826015138385631912211690020672770654447408978577425712795400049350893753969387652339334968245995528430694221180135191414677642311365935369724373827669232069474464043086599820377584981068519656737989116704893753006287415366104661890057529627422304322304071816559836187555701123241040132754404697158599622745478083867372499831945739583165501340672933210579197857755144073497859109141299188377928393860177183093457317229608617265112445307153642009685124544501778041182238198265984942002288671322706822158766647205282203303618517015678111684727292479906434253326777467606227387027690451620717748514722856733597119725821268721728370721359808055340200115047858692918343438932415308066225768507380422885167725237829290718206040373592156908284802052974787324446600525792273221457986137136315655576267476869142710906067008111514146339361148490189405556885399904281741879566867025760012426318849271645872318350495877581184863239668543076660298939438815625577444239275589297180256756009192219801314153933514932230449063662426340249988367758831534469236841118539743529853728670453725596822773662403827720187670354271599815705470013909153092667759660873248755172999908655591115687866467508486970485399275027124407264926068790373515794922680283025083824905724554409736170405686971885162124367297284427425034935400798162444196473198600078661910500008686703512429834722731044548922999895974470978833969173277443819856506585226223820649056291984197623429373154080323695499638419757043250737824242746282871447629505770456361634392206361165383734071595225694289071380918482577497137074823671588846117777921955887417471960894260572057189922364422670594123457847082791359927468758168958431383406151548811839943205210242214451595156611434156583523949459518373893156538477195770092114965038001710688232086081312124637095095415017069070170419009825691963866886901456471946504692151590246362207651647131089639838307140935863781863877295800017991992760540614138831794428995542773320206990602594285532251933438013245472700024408773844081299790994909322252335652061071545999178097927088857938272477881971939073391371205438582761535976186661146631858510387145739016729957281434247778310534357251807011357429610540901840193980898742222719154309948351421357394546823027191800329395885885517797043469609384167168957188718751449997867820036973752239902640568205862718860761304258677031902280003766443261625532395202063884557376866319113258795430864672747357257602602773889368784388140580055822589213720809332448894017052677907609382079806748695831377346382935318703478378205276816343538329498097347345444993134472586508752082565793194929878426786237069319016495660233193535474197623775902741054387626966239322813284335649400526954104905492189782881162928174542503686563742609927749108837596203202817676599260003779072437117357730866990019311974008351658444557768733026637478482270870857060570762553585871199507168973893766407973135236149640336076993198927251643359875277470279399561810093816569400775123410582604525953890229575600629156284668781369837711373106926316869705696704668694362232113984682547637573164807825991635720123757616312701066185372428313166128143676907719184566406756466130311276563791137265772626271040051751155995047745094270712626815796054055433159634747377262853473952756925839839894022829935287843075509006758860486866414634031866650430249832604220774145793399307509996831480193236015759791884461202030705998461633049613431146498858814051662633131433806158180898460818955077190330228279057891888250748669831894993455718973520533094419413639615481560118642971133340067314135494964626598385144043327271073909226667350197507469151319802092503790790503273367553335573994016680823336550325147213609600079453759239524682322711734155100517932221950777157488448345995048729129384227910612791967404111322864324852119341717467669075410097939657617540694634284788898444907282747641135711862002055268826358235733431072487242116733043130670792960472786941152691934819307778683667323280107076829572858840253580215021148241120958809427268614581810515151219755426173366088404668739279939240674387890669110194134256113583771663686696996906234946642627548310756007784345775249033349591558713512701974826287653243004994185898815822310915810606870337370630160608782932784995824424666809203002891174951947489564127836943976033026974134155132522644204347785306356328822829428556316625563062851833813217235348655940363939047524520087234330520316851914770899788219420008026951494343022126707271146483236314907748236835211108745402631492857268584706060220343247483705608639586957771658093135916726914952687785606658196887035872078210943371234830404594555858498291185319111168770987628135300523569130434055146926900694612333400035549194189701947033553737346409674446370667790448625549238967745476369097526696547872680627694159236593708631014118974331717454153912643553504925975490673927640732830566160794505024462499194612311935832158812623879170773113549364232127276213204165015884847408832674747260797702739289104972790536521999600312671570384402235124433233567129909070292689408193387736108008685947230571610959391354831826893929879024092755240070665991541159285802121807959184505502156546977740976879754253357735953852594596642851185748117313416971381635673685982805064547350669802790250735773865737655539090216022641123153692142978843140425706010961676834206068517097161106630621431617059685260111374358029868991323630106513769074785914814771042600749933402455572571407114665427300184313896999971314233174959488896659749825125260593360355607936557946070730589435004520899755535540447509196964027777281465036809643386640688033763909482017299836173095576102299764083428010464598696504023924735227848979981018365954172024566145746497219902010829076794027726933391479501269852274738293358121281165287272661224197169138219293095054167368765488325751388894397018360536055404404042803412300953328964003077240472747303432187091739156996760085079676339300557208715466188649001680944953723590635373913551499331022835478592601371551852778061493915413547302903338352227135381053356947465306517344679997604588929989653786548815271647882677946346393660491123680060755648439411244181127119658136249904696065546396393611782872450283359118428246256327704290091487472291952484881275055595756037610566701939739349721335324212937891222300872919482954412279149754393186816991153534658869597837825713329315464567323408663637890726315465941444620694387075837699217611391102292211648459934059864051634300591374690951821048415214026015211467783484508047095825570381401094634923867489287470060889304337386095401196820108510055984620733651311889433260607686605418879505189606255832844123528590455002481201879723999287950362820245992604239582698879360477512588514778758473159313514449584216912842570118785838472906901989243942193063491904502887959586855061566196734391062876073749477123577482984809581111445944917711890654960461882621995692886811755479229898663098170876265708605003960701889027303573140883847879750143201587206147187983828534824890786625790431422007294737653434900919562421368772269262080277439848131727343895165356244415379402540044723458461130503970148220154666584760997478829474899991198217584759095313650534722656353369029674611230671163548632004128037007714816366419407141199089975383349943754632685307319490497655810308691352809913215987366737156829949569256959771063540311623199023722228746700187010650292952232739819031202071159860125371269340867865537187399822416277304933534404522726554721113801990788506901465708833768778574094315563962254435613507861432371576102635446335462542619230776314101167497285994516625883509174670731695701836708104487400435689061362572919889999523864108970588189100383950128534412678904773367044055070049004908236074826059497442645260006065076958799227345506386058466179707535510972248775093677453895002157968530084188857671048822919908282652339150692075684501647563186711504499603150233386306725114561804475804672041616784918567603131780515406794569316651237683017721669086521373543428197563781818106874143391372460815312535497977766002568929531388263278797979259087498669887456127046608491107387308804471353198315418086112554968024648636113556053707070895757869070122134905068292709127898934061990817954199097493162992379381062297985806545219859249342365993247595710405704790572269180560721253663745903665094364158576756891922269557749876555471635231691768433141943852053585806621835963791881496941136045676298954747375880809985303835043170443909509296750449847443074778286299824608490129049257542346158351647228993289137955344861344603993004736979863493407908925984655481865539497544113620196950358249141432838256096103772823922216036129685391324211128265187090261552416891406611512446727692242832154674345600590437241803430301046433618348230850826454371605192513958821155768314702800929532802715674408497282588615792924162332921408785150446516902606470376934757987853163438706399153069659110613297638887736056832309792281618831914874678103155261024835396614368926436940639500944515384988430147230723584799215832753913566579373025671445182941755024500867248994490234930255927253925749386442744537136958247156271549305899371801753625043555194217324596879235849546388553636731698204965815889690896369739239646358159018667593849623448024524406465806822439782692026032176241263013192603051835124529836426704783262148310929768593510917249279542930520521880709166669414332860994609581329762620727920826171169197154892683197519068058536811016687059472081788960252817322384623788672498657191400820271077342169821273350973770606555346169323415564620024863374168077178949993909839838722443090879634687643334524690226252378477643832676549372745225585804216675687887368087033747930420969280240252452963064110100374940953921642735992730920312518151922015742851083318549387228040577065363315908368886038382681362580541126458412430522734798897732648048998019156980296335556210671342316115650686237821007074157181661266787079941332110897385197609618723529830036065309569992980111157816307042301856833006307424454097973314099048895821251222622288037850965957530141474676303298495636763566355147587199040151949391293220876113879875756411686860317536909270433478783783229100725969092682989234425506498596904953321790957315229561669035082163568035032908930912374147147292629270289906693341489526240436967986029620680448706304817022826165099498357467769230422240112023280650963160820123237897526889714043067053494386822989375066192358024287390467138154238197379289203725964959210448972557998633304577641972244398426768754662007435473034475588405040223192425028055523919277827875298218763005153291776776689195531906052027833821356850038646451064221632096806498456648758935576299639229432488989523614470989908836196540228537761501170881530305799883370641937377037989743674338270834088769373135367263721402225468201428439476862475911574281995074299487255594994959887746413816032762158660341329385395799367667209973491320154248001624208657762395750804681064106942912569911236653501869714189836086970843417110888757121183089315826182897721387882213379587172398801211551589880531002470992875764488310384902325023668839791971188671302391425103854500503955019696877418391996113780132396308684855659212905238897668027336916457352467954689178996280300555855405933281144504331667580512251376359640135663780900954631487952555392694609010632348004889693254034541722312340844707333958647094365025173867482763360775330545441645940621397654974510885792149235436798608394905340656342571873036257613211339624053723379587562875335377284744027030673650302757565532371761888224520375872253092523627714263639483220678050109140105260950853810836908146421707864780405058750100016374504538362983859824530832640568487364091893693911355813798765213160620169992054765012993947194738805969866021780044727846794625391060416859947264419036824604953647705559397066055934975826733958099931043526296157886972313073344744418300669335770633932274230954384142191491195695314175110959976796419345358288168683491687495027044657402797619170547552252542940278159030731232297614999775448972433423801613487282858593742902236421697118431593316854353787375519198760000432722192224476927792975654621218807632139307745607955703812533443452709197280238421041960365455028758550088409821367484594194680820213324900019792690302555632825596971810804702350989525903696103063574535043184352902433801856227795397755902769742242955866235698906848035961798549875361255241779444104696382582521613401463754931959834628461353688254442901858629519946680470508651547384642760253614097948104228315612776568022996630409285845839740614056221975856123737290363795748195408433860619226728354045188743447853198299030214636611248772790690084645447048459224824046930927542388640544124253296346160949443134112365937054316478675638927308991934718477161541517041267191236314160454511568934487458941864700836861220085397525036702587386504524985581614743871421951071355539982495447981285657647619520642980092156798568216904823810421094512398282720921046042960441785856866204359964643018991039752268634173992248367367901466234762939921357524112274156330981561375362150951591845643643398393264546201420111619188271424378496970800242679046543871245362475736478621283560039426435823197540124555074526865982107376569540963663275514092983385029196899132260385740217789506525468147492519173386134831898191040525007661769298433757749625216470791838708446736857523426206662504117837251993572882891503266236624349122081377643757407413536818520146797551355178162787212360909538729674000681133168757110690772100457478292982257326096480897573339594865858874135429025763210220143002307973928823976523769721311994111318281009513180463329899561523101444430614660995585630010911338174387630302344514010941454174992684152817936322716333367558416486311419994035933573534582242671407109003531411189975389630632517478378553814873287718837990114035650025170915403475570042643309050881216001769728937645624410029974417705865072372660352570214617174658856978802312537503054627329381783399317590081971116461016100476916420268253551245376514299012242419385464196954925120203536883354607424516824988019863745249530143094674308452830241808368839522062527531246713970438806914314136921403475238321970346538991750033051777101864762571713555742795555417343250938807188386698715775452409816382966472259775094163759108299392264381498095872625965191571288092972824154582575852665004279402434863787507824830670976507327160296643683458270521449700077697131650418713531687422794800056726915453606860702117080954645560554385063578534407883601346344995180117572489029640363935012305086088518612112439796726103014061325895593816746181823471301258614365112090998989272096746981586393855934135655935776494135517782614969501162902793591129324632007582359782798740730225933628466304379720278543284119707512765487200593390424418460213745254982641390994618034712255432559154327698539582739968732660171019238073861846829762656913276924422704164174956936367797281544348370186992894230850180446225676845636961570104378859650282115892547739265870821930945116367849207644948939032582926965272975772534003539429657824579234722999972477111124147290632172033700203211913917128113463260288864274287174305893559604456377800126624520298016053617836723265078845678857090184322379232490035131975450842250880783712994678343332518584041578920982455984316233968649119708398017149726903219522360384388983511226958964130273745030434698691987657219734249768305408046611941666227715300187094888897976182559082414591999196652472883711011188720671104351977845901159720850281094075533081398030914339561064199192110645713319315259753375121741951033296932874385428198262308254084371294022831811814981098451151682834729978913777696338742681687820662969701198448237364174941103080884781361678952434018672023925398791281928153456712506218699944551141956527054512355193290996373952500150009780040452128648930111390257636046217202919969258168870228869448798912189709335060807350722506177689693453233712891147879923302240958661963945784463809277283703724155607389865697254089522952564415879769799339521401665954432498000966863678279007093356245356070882553874791072501702710016718813965011890481760844464640655195884802141535643160442972037896921255782955750268053887796810533008296752985311173779797262977429401661706784529969635780480003106449811764916538817511835955724636910611856033851935839984118312162036560470844276617896015636350321497557424733435375669983258723661856469451650576948673936512925305297580919718063419996417269219359178919702474374756608840968380886897026813400871712794877623862978052981975350938731188408420569031397324275423270519022596431366936051682368416017846495378719059518511230246140470967712743157464043335304225539924140951091573737235745370230361325715012115883927691939639911341583815239509676250929293047856546687551296771121146886673547710018446839910482036160248249270838579410799810113188841615454526894257898280140627516397728451555518009422112917636074499321184302080624368036879453255547326169930531487115125765704092487667607352632118023169958125803394223484716037195910047599026195694528246756333093788167746136508577516389850532607997422093813545936697789086878416772170398402859081849013942087793976256888384395869970043402172677898875256586824264693131514844797063925564247583693175530620746346785396519191429265269502828934226818075502733674309662771945163402521580585128023761395881138718985884927737084816675783286454377495690181617886305018229774510112100622244632769204788189358678842229929697815351988923454751672809910600199479657134233317798048795269041488316400203844848085583370004795822153142779236281579731729645238765579927212362938632985858646361185314437475998418701242572939549633857297859561683200948309603233454780546820797176555457133624864908360320724021154214025224047979524184795769749990889360236069518884647149669180573766695093698205864774609789035868605507594684615438759628009276045924878691008513847618114110646437586173642309445789310968324448696730613997081409201089549615145451519717089677512579373734732403271864840711077575549874143326655348494013365235018642931186905687144710208869285330172770750224836562901275115780943751967549880694487221338345882834417422297989057683231693210032083406674145387007870306165992541342848977794495070028244041007034547594378574543529488776159782053462077579525502732221444202467290474517810145317221153023975125917368590982252681449662499061634891375310976825130363931283237852675407956850146236409251029201613085927754774698604366737083071867924288716700285727523435077532044524959904937403988790119700590978346070268979221913182328332505691192600015049496802477982852378504681690582782016124047710779141475683977254354031485557492793066025845409227752122263174975156225965264760377833844565506474116426630709388258569621720772038427663427754667474171208214904278965163753578857708294891757638014167261078626257009709013311115258787264961829116767092075463981468017043959067813896937644637605535492353717741468940209653877707710864434480762309589416339579969172227438052455131590659696684924181166409467716103702744154870676374611057468522374538977877675333135767896434443976322350119977807252583684733544702153439163516145055189374960435535356218347068797693928528757174471217952669079823998503146987064133863793578378641044951110701419100380187152236369973892245124844560771943004602707962211627964922817478068644967876270676255448959345062336259788830674186152583347931378691236944951048041111804244133994601698096392951861891588297376336474694524914456447678588750249312368705721652846558661162732027847147162578296691849145299002182002150760178066240526125427046453431747298607224322093370101343078109373238487915253797521465218017712248275952074163999357970111254017707555108488847951007497618620825020349618856587954292370344029946822671202146461244351357500882710234451193872058849137690974433855423182571924120848010176680782365203087816499206337183185509971398318098484700143106515447491743494345641584183539220493003856326064698126456875140558391002307788057449746408750042537846311693315884518925924504801088233237090302296686518235215905196104921072292435439435185374995352673029024918893380107718279076749650138277300901201540953666235807284451233298832234276095880322863532076080604110029835855410517111817623912856826338073776414925395491187483488416690286716979842722614230138641918680929322418507258505565130291887206460350829393296182647822165048153563002925772782548583543049014718998434845902586956098699051344856395875982338666902594149963386959806073156092166495127430406238840166821604309563065391660804266318626939711772007929071379451482205059182982488608006399669945123166225261954534882646590157957324054715416578227403155257166570755084738071228348022932607642196161393803813380478930404293484179251833941822080266496721039238851488256203387595954658039405444882179885910424518119417380416790187539699667371867282449542283998566164698833450425157033299759790843609414028963755978708089031825897860763429623522425397806227455292129141800380125827823271252648744785572409814087657266268527772783490080585493275845526531715924703581604467644417573428373242775786154842786262654766865910951063830432624019844980294564913305689781070162238914938753390802063578945070350677997208264964010639790906043972671255207261941868708586939063902843292422224201315048045006224135380645460729477458614141969238007201100674686049943668069686996570312711232078454396815770636206745680387125151776271437675701469751523475835240005815754533042172183066823484543458101444168452647930211033182259365400370605819568213831991792837494075156192711379498589041329923957034838809117311963097915008640233721098951629447784262937727733729395830967964103585609370020262877103534076265323656809149512894579503032913363080286173033619549526839009492406077643884099977983277320246516384634253298393209564389116464212362594799998129319837599062493403805230721998611417191468031481957574006851720193592036248569147445558742631397476153834669703133794678421900251670109105911248086734458638060015145965796983294642121154377860531907436408573194317876218139565212068084366428770827177399084204629455780052953262436038439506712770807096646062042168677396907820128522272796424121012929580814362758325334703533061929848579278310665929023035756141141586485616660524489090096025778148047912020770923503249652164219029550928085697914083866682539950790174169224694777503279985960039867854680511404713800181661994106300654555483177959537551308046227730213836952370074141764338542346911923380002895816825444579369832295481109132958920992930567000313948621881723305465542733262995444359642054582703947008726233999413186423629180180674368715705161812390714484513233731500315866758421685130470387308609831372348717563975561187043110454621814030580459367469745811318713395630245999313687323703856349722193919033131423828943713405355673169376105863988468995317121624354001411768450216293964415214497956392415492698596543702462324348201834512189050697031273967108147380197896001863002169759314606657484525281922635552398640247670260730613465977848250209974118922112219066850458954237664488169081343484661111957363713598100911398010428045690950594139658012441855218771996057331720746121607597658178627269837973417686769475905545043192135286428389670041235611945844842169255135148070931240303023991582706189808882481919661172198346091964765175844736107841801239685461483407885127840064306617461276191330547235902226093137640166041218907709279506637934768230887659940597346241858078699277151944569512381697953177213946256308450857058956658978179285118356991113673648204086370067442095921934165454452133777314286304798852627184816932780973248989230760666904717716580489431198118606509061951474112489773084642805631321800321136844588294083769110677518952665820126361085499905182110009922257426506046782324363203501758390599872149968533981940306243105978693506754464645798901706805865427397455880435871284497752556479664490002459394003282814766766513343280539335525649625022976131636277033996841365467680362204359764295638598575902601957258789142958854424762072498233633803788349626445859512093797858941028770681150182746451447720565242480725110491216096883638994194276870366384467392772716161245205180585854797543428072870542583106816525216654221095384001554650616228897748950755182667664507940423418071356555649614944655508717838337835415283033534561119198674140767702307172446268396750978013758342365602148098862027430550982337119429582899140719398348587844124334986136543131061851324214597805874316825208738601576420890232385693672638611305476313222785386138067546836643650060580405850347808258421117521413802422895902729570412054666078019555792202569457405405108726575397870081748737161752674633866096978512845696721531786965258561343629449533144943169417867639290028631605348757116947421925675155082884069785325201929162653621398425137062946621806921255710930653087532277653037433480104074450180189094832906201216932226816368929776707790652526813527920959939775330030929279873891005902534641663956173164185129938620914243281305071619898888861980884484444657580244928189102364777893866840547247410059436537343372842092030836814271161247253982959932938132745817807818675804968839577732914958269819897929621753962279170640094820176075049459726362111979340281177555727087373664021968620219574328898476582354640802155439111248701172150842824152809264703797774105695274659716661141411075129309969577349649496767124628280849314083184036962230444835438485697145911123727738208515115149604202743651893345927716089580341890644724968779965226514830497156058179460435859538211834833381208576870041475484604450273581816633154796391309002653449428029177090617825537117396400924657545048556364577879818076122914416704803238688296206547085161062094981708291070206298160197502771408438000092434284352761395050109869664116213437128989756926051276810373792514741459631128955996298570461107497564158585985456017555186321232974339716363869385548692492249786846383354293911999314711346843777588690771129557077438391883633940099909143376542272043543591191577811394307422091931156197432150564615456732636297625831241743647111471049455758986463830986401127771302037610943564124503113842364398872260868682979463341220744723845272046512624257695015058251031481133349186010413862818958382657823883012285869332533975461929314086180599131530807413226821959156037735201230067273456705252994960754258822119519348788862454355669293618189831624138368132895067624017975979659624736661552512538427072404786061816355347749868283983676520429342009406609400023918120466240395606021933689979019610568813360647251537511943979997230929105772400829580442426118540089312432462584582310986614942502717584419595186590765103591066264310390793586358227953564128536390360429964563749030326571324340864698064980522745663457082468037536685437136064612331372894172423076060006349282387919348372116115314030540664782377357182482238685723804388311495744252938867037868954174344160127321006281660712775780002725570549175431527147865901817430454060363814842025793440539971199794257572238738875507780869934758296354542248158195174363724011678297785341722139423456505588374123192023297073267205457380710433687265981060924573456844634978606220670656395863955439585642635729508753160599501969207790912395670419958881742322504813428061822371030223513934028663522690085265785311815480129882903426640712342281655439705121904567633819906547083167728835454613666078558445023317194534471063452376551832081211045451902013898394461803317804552840871452342900417183566709298405068470808160391722416631292342757876505704468512129472444843865615585714195093194855630155286694414161966806001045490783166685116829986911148267241785155211689801090201293272620955747958132252029572261596360577638681919015893583425464528079092337900196121173228450248572267808883495601680115638006661840238386221226923445586641375812811747582192072806365600619190769307858342722150538982446533131665157693927269325678161620241593844980025683351702100732442310242299717310708996267250879656420645718609125673894394179879169601297529382525222293214871192113967851969091028957684908618981449877327749545304037842530177829099240591873683673655389446868992868812453344629488458894556402680905100808065023313170774390227308344259511740665597681295658242792954034342691701762814269933103148978042212831794515113896928510347843173498969779741410570132359326126224728440034089028893854628431673050069655808401918999238595955635162089118989481791136501924378984602554635163099827891695983459581647943511834345347456430730019000314264596055483936216706075355446042296673493673830724560996654228515286567807148039467907990497642981730182962957116758785221937002847231900305359122873026813769541693048058317856598052065925783522680300825553945188494331697029631919302003194228411879494592149131404169416584860991111581177077668351817294713386534377940103208822468933296193015356248297364530209447330687687178667577624287312745924747269748683724292041337456930919186942388316185123277795234070537303435690011673735297972547897927031809640491585146522102052817917016869668572803838702875682647100833104017416178327874215275695834462849424302862989155797482536912691782316333326151464232020379937889705953272497427379893088426593743739182415870764087132562676427246824803381757659064962375175051230443568759195130804117414381844706415876081965061301072543664378538557696962191956495720349150844884803043385294518218758391561084024682929209802922294645311105533901240994177357132639643278104571827932382785909885513113433039020714285524408497325332654413209461394884539748444170409225722714250088778914826392316130622729692587548510286760324474655180747806208433212642035493326189297750952019006426206321594748782511268434917606305211805420588359082965199325634957315641186688744210454295409669326132181412375257054415714892138583113922275137962329086728891118359448932559127275254607642536933515261270947143337529740049294632706146426119997670142784311247322905842153283816186330839120795799123297795252047090134065358562453346068425386194658074933701037446871843394650174242709312012693157305805448420912000340873431597088695631817953866617835597436837867460756785281621801947013288266766815907038045906748906840459914675036633349159882775634217604627095815193574199962332750626571335096361895450089065497617485239316130152081200275636068661899742652285804502602257497540623814013761273615818086542378649623271201782580850274294542464951448345708205215734406940356995373918187728518087273687772451925016441694613102938505415043094899802782539873402307290191956838716294847918883247581057698666932702991271170282090700450205288798978366347421465272443438259143513361228552330946662134296113108724118253679318691041316233124444283992504333575942067536695281754574560402899657138497849971865899489450281573140571842953024778783458670297512163872077554836851241154866735675111801624257151544818908711248086656836804241065752492627816815264728015860919375461845642992167304837195491301547680916020996969538897691033911521924149629316236626440807077839264684442966095116591872748494697910681014255589130034729351728016138816487173783597641163469932201812035850573065177682479108942808220097057704558431169190571542127875107846743749400168098170320689957291032878895202065248246189746841174859408966263175991143966366918366043836049047962013109522621260731425922595130981757337596587261657101558026255030836441183825987589938778249431320782919269152610919122527430906882905482827358045402403685163726157925426935984824577143866266133780664274846503541477455690135007003503031302548309565063486543924424860268397334830296835608529858519889109749476179704643362846772411134201020477774650150323906765756273577752759418006758946234802670036234626010109307582924545943766837183612740391345220458468360706204693402325984752507394986601072752798919096107591366327447221449343882870140000116012299737952574170224684091450947763854582251007374207758614281816011311153169048771516100840329809866236146213869837903011692135652967849046372310279835736862650982303004689626143008981407214121834763106611620510475095357577144357817833501543051732116090782209121903031205837295025085764322218010357097580781923852481168759238729925891994713175438539096584208467733068758968987047985584263134560497243306400883700556908911884054384959954285331241820572755413207024791005891596966765831557760073455373175941915778181598902665433612663096099211679391910662711299182799771852132071205652908164905761595419625321626967188474637423161035457737072530337707569176441266837112566075286221206028370187967852968355582640591607420944129065407268442840243498589998336178921060183999807002411409323313076331499706647201313798802404157152573964520504052462488987746347644229073600231016800613394887064067954230790698975685045485359460555055014502619027999413466126692956711712529729189228307782738698367168749531320789869265335247292335052602910148028961937719245345840621528126979435224763671140308701012906368984354817206240006720424356146685139964887675486240493525789082037911289229797648733497545718949251737577844755893729934654175362593402369796988622673430221889978125363451672834137058520045485636134777254824022695217039547981997269179144652219195330046400852792121377185472764209615244606516962439547666924759632927553435869164543068420412290166418208632637387022558343372225799348389915344728163649787472172167621119468757162925474706236622425162211129896170739142834663762216299756181463266558584667831254776247691984890054329386597126081525511853380347878580181370498685163671889961555154583727633048429497860639691084809085050077706338098037952528904651755687679173411934284395993784238992225302358293861062625108219312131449457425634065055282402733653408502510665262308673810507454659975150149798867150911156364575878894421940485258539282276564102158777164390172391042257795107083117203872014223183356432261244290352234847315243437291500496840307471195550653526707313703296530452010904391441061331034441571391081029292572700575285094168145626897915728496182201854254475879473668077051956587971381956263513981466896241282678655011934492686150360481679767210502983026059077684011397534108781848915965005017545117015859854286019457480623199280418376817299948426901732865475537375458488855730364725403586797669078773192857190420812320398039832328419284880968149673264144438605688484043839992890350829062473773128128199314379208167716870595481733437395449132190552132853489641415438321888726338200063730078779470127515761602644845365025582172126126361509383089979713843556562949927856189889912744959812598353185424979602987983890897798506948169266711343603475615857381366111530149034235018351788848078348164876565804597918185752399785288145400378410217248130319847005942339676670137019313699978485198713344683576750758181691543061068069406553012654550383691247025931460745937582326507132861222565342421230126257284544587634193020287984602674864873677108245440980294914129995509275407419120037154905459372308770936126038824776607092961204702404498987399165388469291383014851307223659361656847142453926447719063366301195578250691079970513012116960061380736106688221209861671162497300816402066472511848809740078023834276313450700422621591684253103523568335176437142999901446511705065403054873443086510295564883031168427912199361274707923044242827765847903461155359900345020112825921821060512971070369456228845159568831659502655746174320594297300722267414841017368742973719080751954836919039942537042634159513354450806539958902723838161589902017135090935108991248330806891055487701362683764457465273029442356423183951167109453574758951300790383466858337307948003991165573719204637758421489631127688533148499105854491166340803438179782732718583171551186823048661714925427710532629603054528181693581549307630076692466042088713685855679626501615236751000867229832468368306448210383410176760150600256442956310935998787174122922602290963634209288907259406477773068699621040473814551960129271112803595684890379830208607432830244911170248647321296775774540385126154224632775157233599124526645543147757715579906635870326455335594823753107271040847634414047547822781292919507787741019345834444429009240840697517032397161916863788464790760485042986484080727201676641619692866821167752850962275737166996573007683111611362525488449929233485474204533390476108345086132071040936575768147090674128882459341078273704628847208346823875065026749567913841350234636341309852942424771134565963206118895391386670262891778800062263150287953019880701069857454505186800802041990466318910781024603060848264874174663398372515750250687142835692545500531865185764117345307655435417460924448296062950508017458008750354457378137087667424754132781504826379080506305783073188791118428596656225498963140445600882681245614578665433249794073447684747571752664846971623577463162483518926571652423385953964040963604120895728706613976995921975823985195332938008006620126891409907176043071979845643764085608557845766626553016060187372972232550729016088179294002679694288270272545508824746198064351900661545827909522378072237014676745219064119829970961338157490582036019424946329248319655788085120420873378113972495569483938242855080113990065641148556570480203254077500140963145347728132166132254547583335204319743701202616137110513137473133861164306469398364178272276949730248246254808487772668168983002727282027529260530980826955286421153529233426818516702164830697105057020968571829994023813936604746484278269913621724357227129721967832460164144447334520014068751422565501727818251666421878166360072989136934643515515756653437878833051371771079888941602850640828817379896184717756543534522782141441602857795712559480291965977512440155808939402405657003434127939921252781094739548037316871861997708264722077908503716219194114262316532426862641748693264732344160569197312156810240755318035493327565555218873152062421471737220600357875386435749357885731723065904867436859980973368317096942540470457497449841840401573791699404951589134352777390762340445948336557551294691211466500766037404602582618327667906786873263642211115669908305075664278767876694049847137409059040380800073549067165100362828926413258379222989245098784204596690309220681221604129320176642495830599283633173614295216634727212799898942666077275203840501692125662648784552885172350289368228267393179114986047275400535727168339191693708055849335434261117047697064337257450010968740535631199939787969823079885937150001245898319557735839189649537124418813697712316651122528628531951049908646511015363865438471465921088364949033458599251641344008124696028560843173885227125605350777285998382485685788024691372416780316821625739577239556144588738861898434291003520847175822669501008386966571206923387006600662885672248165144995202386088947720195435603603563582747041950336552402386590364728596210683178478184792838594394099812699469700366826055013486327275350515165197015552614905130420099772110903326450997681991598011872710382492402306490907107493581302818464195460694610252051036194491510683584159998488831692117462234614997343266785444366777453154995886156692013384853205003363696353802932237006576872762394262923698013435086511463036148264514874343583703567786547891442407911740922347010557060429922470149167672825561983014087894910369321916796540128085023725610717768072794777998700456024827509200943634967551367364646010324248164371692506314561532875312112124477698378213925091593722029474677571328271633189470675374992240282091105037667298019476592354974173638513812985042522572934938481463866810508346630425681003007412832774766499888122154265095981311753154503119193056212099502366584947608301103222823200170917398187190174968994134885126590919156472400232070429562835016716924624537554183110654597353957766757514015827138975353833120450341263690219364886051385757508377967848889267757281965374041280278905025080996039318318610052635631546349186323599767706199227556759367715101482301083481215220524986851081367579194869639799726318502390110176680366193988246996307812006247383952247604379680673641410261229731966177710696738282111257327233527118586875801527861418210111299382955325716686263238948163700284448121841948203106660983176079843328441084885391401614994847054992053572379900782339310797470146692300000160141742829602367844662548853716407724427427801670614058095176601735219757324007609001176242734167456099709840813151672505832383134492034937265662108061640987925152306658004065168768300980775763940500946834809278967931254325633543620360411354756565727193221190772900525692850900878455433772054903886396071939252231239729471673492905662227992165509424380192846263154987783668105534891822760657784456021778795024990414079728774258508165196269373801078629564294125002863158699961099608622556546193052294584996158988500606555897147008105341514274631332352520442299331863378753449343564062709781696169373348000592978267245951843607322844067266722834610967518777805952705097093065225419590652524503297857291454511638999883373164122954683728169945625863462181805662850327530543076808817698615514846574809936684403069929445926820448249359774357008892013139375363475924985095188210047214969381770782055584604386301697569045376848072727281919314893841714952876869268218545281306054274773703616541588368438507888863842811209335417945117951467295092045281585139677565903529125806298593533692532021256701805202694581004867860774218477104946819019188347622351737711257461772629090738682792147944832586214099501693246052848565944210398721138187911340562354191033628878607213432358079787160472872071511035174891809984218616895515294366577795767148361294180112673464493373127740020027065896086587549125018257502110745222780323760735645083702876546926807429159090587846514475715461831264961276090196951305598290804171077027617127139317934680649572967046677644483579171115196954153636947257389892601072945258035797385789515030283500523364776592150509958593411958419559172083811103923426477409666808327509203977460381653556226232710226422182190397766002303405737634344620816702996550486397375682289495700530457215723590247938134100006691037780906670167116876752312163848076415743354805995346475368379736071027859657733525871293334436814321414796721862046619105452672278420305253085844693295310540870824916564357702907523757936044795991120364683700801973221901526210570223071170178845932265087564249931253370108837473319892154898317149685542265657260004731955539269880479383100694192124549267755957426842648494964714426436755635943829544707663960330210590985566396907202178219526404356322603653446901278911925852341321264446519921174676739685942113094034040735198613948689529480025022174944206692646548175500923193409473594165105271813633145582396456185051011934905989139006262390165215410824420476534425922096623411763554598178491210772392424001462591707400476690081069981573023857947530917349341246784941096392799264943483771631626482789656139999443966351298285151579722774835958020205968861319142089848333993848087832635457042200669870276275744263577851925416705419239271048070025515013631866005216446602813820704760745113651019440835141135599875256935055781926620301288133086770993147125572678553692409430776459314729126437356532582841018034459939783711270507343157505236927289174084496568518904033521645415413954691864975008181902007533967738558274049776611308801552184276670850489102036538359655459515980514176477277941033583528419896179263402354032135073774562121580443098852715859551505735578346247813801502399238002358143955217281137500023179786289431679722810184398905412898494105245982716462814418101483673091361346669049042209466090993233510416841241502289349328078521442107817079301557698608724453703956859122664901731576509254878858274937475111682024772725180829233481491376938410188610668881224172538438622836092362739346460039031011805679617729534936205455171166229776668438570417657587620577691419534582721680215714265398437157717528401212483998849993408158460978310441106446272557354099194682658543541377623249206541920167399006882253981406435220157298010473766908136727519215488486280557142049700277706212372207952251384245631863063485296094902018710220754351713512014929684971878688617915402043763387104934222427323778582145719782855474649252985676948102188435211867284578516102572357022293941070761338214604595049293778242527743502947115429523664305515319510474346186864549805379002430045665284203204557469063191222688544998649302273394802489095954273747482467477220793177918514818764154020792725220094271909225523456754345420064905083821164267858983508557009573197395445945699644178622622837300856428937056651346681818068235947176302238913264360657044548569372693464974308515916064945266945934945892898408697182836246332680983461424434732558714285206607862875866027972323904571809930467406828883194039588002850679490079242780787128078159205426011787327052376399564211100912320750372147787077498556485659588644366606169356810610706592668251010968350494218730997998030048748600022726199942780181159197577451436248398509412020294788163670899253667703625884971140051559314486173521375061045233692280737145983580093484790813290836391989525913653067739898818961463696782369932531437894367158256868478890666777331323511996869392859113165737451068761807970315762116783074881089957920546319153858881472936097365555485017873761255736025553770621554961316807340094763086361162861011393512862932300156762305095343065595470995202823259210115275716901470570662663819391759092389561420837431422511889600609378036969836220685952066802805601640795182600359575859136428242381827446014619459005291745894397189825480303186894750490113649332881226691963843609574071250855813608769046993484804573741300359693013346329087578287418787992421035115818522204027028058553299258814160538694415772924066418692768677810296869950221806871318001734827168305434719902023037184542494051957262917467421552317448927262754835574375451197609075542881971279568032146796705048633667597323604822010849332446440816836116165204497228072971877290991882211435017040733726684529470402636547166608747986812042320825102808286218314459680313045679849806630548419564654403515718087705502108156292222603151721897097692906880380338014383603080428308095591228640039832730881315244341277480649157885588516685899318987571759126211734206916078402671400202467067739319201107541157877402637244428253548271966909704536075292442494258240572732654814782877256701171205168313721168718161230835377242406526144680008502341251590029856215772896942009469694891136547374330831357334496912909970572282270564594828097945595225655567490748385008141155381777676479292322853247749844366304459600832067330093308821786034815102139612826577125224683836353559134356594926498537529885578542741257571035008641521666345999357995839552611448594682215813732790464909716123099589459314722379291426128399271665296154764216554756458272069454275827027328493156071409600530779928782651451191523513678634895231732762124287275020637974220961823438730120774106197433537248409647631257010799991449634575346958251197368821100212886350750933779150781655475463894021221577661280319589204697952030844233223973865786575574431743565542909342204787985606125285121008605129684381751267140698145833503569456482649574495915616981372673876959876938736644024555537911830460071113669016446389052617068163407765682254565689504813457734389521271101848238182244699904414778993708387484366048036708193021194801728072270423951907426524121483102375010159273480845691681676451926044519659028255588432069785349871199678872245247779774109472071421043007682698918616628806961427252842508040502297772936455731463394145959132255632498626206096752185840723318364186731982461880668452349147630808494574692893006899205550721040851962413936619592129804724159047873720290285951002886567727564452762295645898399160582068124845559071511076503943381875314942262930073948557778407110426195868907470996395896779707027658046588229183159490865259355096350643778138280485802151285348813141193677091924683656027974094960600978215191278189892593385380212443423567087912971452401144431803400679579730387530037623504737710998459921904326771948638363903725253697357878978285139113134170487397315517606951927742657291760370849155873320824916191242101239459532288421611096006896362173649868409182568103179246465225276830325338056144126594443114557483791221675336805048531981689614819959357039534585424743767819936098277497010328983743791612399250988053266961731653719660276988163794538312311467685011325709464679615259171816672046040214907692577317947334926547827800017542587374693101318673688113905789604183315879936251937198752752154841756037127330323683479000046760817213361414276836639049296573296925338198173155109618908169116826779064748251408892318840972510567648366084292601081442804556572399955574660251869324850842446432150755431217924186326102969046648252993478127925661999140662265388629988595458085042368112271904158329394250098581481071879488189322174456522135891075506294272423987974371711084037045821920002415150789865624615556834040866974190991269388019636258632194068944378873582618943521772364566501751086466060441655622970021050159236575306216800849676755724500166578957497924501836419509316388115874351527429196104860624972957964377702996717565988814641271064953239010385224491858529238788499689938262949122369659638297000373923607635929273510143371676405485473398101046032152992038745137552896924440649943369678795005715841874506852597106569345984866091432130218551868375417209344782605662921192114102219284495516653184665227351861397705912721986601423531427058219316559221721441055746270827506352185005691672764487835299430892241930732395926565029773427507788905468392696363805106378601804833749152514169776825346205897344100062959488186083725436928391066372740451476319229615503621730308382910773888421901302133172624363389189182373675166473059645865200563426978583159779915396242548393286125784781410930622029104189230435138448556194404093937219995640912209161728268402769904683435026315200710359765651923064977613772791325648132456181024992211068151378161476560587408062378389741622878513476746554756209476116028562483357208627123533083490307675422884022354482980326646040686223773331663149522230077318031075299814141564197639373541308821515851078615793347939328092533827634094910746952348540483625292789030963040384253014422397547926866584940605995498141112656170719112180160823209294807268191925503167417372972759980568736696114502716413573025501959575607063300624576495813051943366642196098976707925290801884568568237196524407601198276197503115157804092546731358250464852671148020102196882361798122684543169393566702496404883472549705497687312342922349711517038044650689617218894060877027426533722321955518367644287981255602588036979160617982415153087786730773395618280766209207798992673166805434374868356444759939739914700382309027730139945992261126928506905636324237197257757868114449911769828298430100920944570718370449424385310090015958278499091948774205556729537903863647807689448381329439802191876910470916285956864685926047416361635845580483604202150189915258946143651638876543886161668298148315785882978553857473363981421368266854509594862583527009968698098498298573928474547074786868780733257623281842904707222296253168541339102285578433630526206742069521227382961054520098940380904311048301795696325846136943630872632239372854150397193179723250223109864809466513042393720669494065290304769556697536297310638299135367339493118822062878841590040324260627042025771936620891002506868637274798146450169301409774960513085299316537256331860529730114874889902309893967155819263438249730615510080969243795945710496268585512422681158302255950125611660313889082750873191269325441332929610610596941474223384369312575815144516130838296709536190967031966835546032020775774052665137294101491975755582227732575350332033588216385477971606670603533422599288541848929820135947287865573055548331296194594376984695559226953934784028086427186060602950638046857365593244446497005171834446721293039734072643269366771819424381091696931668193268907711613269649470051149882942057378327123892271440820982804832003991507228217873349896878286952552815870914190964771397415312270814796425857569251486555154094560716479662335665708333710847393646902518157825022030251673850616285976383603426940629278371282300577662084490413569482546896210853587764194151694685860247590350910225245066943252392723023835519811189081978244957052349567153040028139446615210596185056016175685286482427860957277784259095776653930200547948717742392701407214318192102637593879914166357176006742434024109427632947975252866961714441264494080647903536889901903673411242113741008020832493048645594496017790308036032158038018543138244687222464973274936147397460612956893363460463171114471676232730653025817049714299591740077321182581335877339397027429314775956631714492059919453273832097264757570155525651830871272880055124483096274858685237241043008874049785393091046596516582437397725608652571718306031940124989536960144838620091764447461699054757265801945553292380980929004955646096581853178255696544878468791441902546101617644279112060313532433924851327049986618253932473569115583829593323980283513622524072855956140149615952336415021853360954295871646049800203200726435242160266613027693182276019821791015633227250206630532695992543942491491343696914492972920522650191068169138303224721538392821332625206630461788847594472668621412293081156187926427732289980280561597884142486164676361420241111481496044334676290475718546218889623900262604659906481133188283385208703567151823076680195878058159219177488366434616701481854330165653578582761221844628577080911429146853935371028427142861920664716095303999189580586476765977626497626490467282212121873804948463892385477225327208451427612717109740258856100472651900643964663684473025441686598731146481848745024756409692887281468556582543282256883710783209296781342119142790922024135987289931748382719143333922169119991438303744100569178074235101766291726995737742761268870083599433953807537109702441341095283085637771919171203714002253774740368039531836855523294310530456096875748390699817018546561999107942707429804806003596975551902552672084889594156437865104348661978508393139904276224249718873898729943537352850215623320209882375256885222779089021655067459266710074191333634641260499412765848600654457191396056390651003159190921468607963149474538998200155487039316926954882682755687436223828200673540475938377412892706412594980328485073969236190382992357400137761237434809800660161838974848525945048049852446179700571290064037196244467659230598304717147545226659092996056763680467362565440216453071641268329647925978123061667821457736300708296153011562857465812923555137812889364620769318366973968372575483243670410537416815502857261175752082632661215524623892671397169645666215159952743516630158271889114982722079003124708769302723657680482995157081630396098198913200935761549434789760767620160793531429449844334692384046116678779668293043313055657582607582174287475735785495041229826238484815981993801017908266511746480538922990014216361034954121643476692499779864737424659994804798812439260047238022806073430533283121058983973873344143327885179888131560983222984210188997722540394433427937437071637742283622539068238362855081596783239316207221979896070433006846795427176875166436092612632646503835979122922052175440295650691298292153554354205819763605524041937673732450037021835384629083797711794143371681492820118462145090485394828437426475272570690520033337907839792724112621840307978806721698579898268689610150614995243799428701777026701692624414582030114903090838559584112049968638857309193780036780655455903407502884531744075092920194031345492564091528209817883175734700568344751721007229380102049506650915955355664225533619912275884876995219345526434471714432240642771285277303075687861692147424033647581196995518444807658212415551765242056227158438557481152941263887492790103307907633869614797074001061557364311545872684298805164883729064143205577401312150280709344316369752729097172460066426107493218571684635941905458673179292881051288655049350338739283229328100563527019858867783685685419137568944933086619402715923649600276504901839082049046286418806289947823142232286784610904574418494914502967949763427740795326843840170569510789389413759655830203411935269356157058017928427251146772694958520773236261343984742595020745851246341233103708351581239538022457884090963828267877649150366023727625565744349242650341820530861110327778013707689826708430755304177603075689111366504926570573515594595065500071425366255860972228577182632303215842207504399865089737237436204174783593547125619241884322149183625004247966845119722372956297528235315453977366310538252379464839102889242573672787824934251490709997080034163838221172289656129448648736027409232526814178520101181168065257638464405324333173855756042426127701942452083316438547941641784588799706559706469627995064456641534300085803663180777808711947028899076812416612184695747044531832896874697646510749120748823270860125439277032265628525158384981113416745135519161446820502998000562569199289889019635227746525687409228785751740575460915975655174871364792907846003662107177032664145683067978031304207494272671388566861297626331181021984135030272744660339512292373315534070014003648193452736202822714184486774750533926701467780729568948966569485341562361201148911448276969572782563527431928435518450095231890468926245938773511443207361846925289228209041939901358972466533929454199823826401399373418132374529654658262975206218633926884851055799813481541354312841687754626737787802611268668136945937287345209098607841030282339552823957055577520065582633095417713106195203845808910218272056811716874102728902122260966286475628010234386482833777739563524195940522898791041358955998668705993838613814455492264552978560114316321293497831428068916760418037076308054023071005977118628274477609560680165749749811998699677833227303728684016483175804286539126637278937934073755179690561527666761211090525270867083200368471640157856249194016897870679709051817813552763941670786722569303069495409175228835342706964864188603665000751725148132088685132673046089983365636164398985478161847037355917322826324205363300025870834612979915042287773448553426136806625875369196159583777737163189833803833337227113464810356437105165148384076051187149168816406121899285921093078610383632001458701184667617385065168102457647774279075088887390285754692455052909844207262716991764007712608720138559956842687357483180469086448144816267266558629542161544748005260620186383168813019864823566502444638592758459128987332926128501091796272461298011833429127269498324265576482738264665941941175425495114089547142019075031215794663662378718694396993312599319761937531034698990340052202592326212548129482023449834593367152894770000647466535375742825258269675261560277818255640485359930226400632999222916783149954525053640563116323042878757060676268626580073317988019464851567090055605344964255276175737400875991056546659913735282410737976648036533250823035617823374382956850223118199858027859743206348853811465962860815348183696201082940009279195504818695165481584758366409794082286836515922331426745550359716445691707494025159960191840128103175333652963386989494928998227073608895722546114031426063204358391541403385270071330333702603348149009783197282336386330327724572094652351691470450226161961795878593115255665300586645364169403838999434146696081314889558238908584230798338852934237162171799354523067199242885596158460195698019083065961651300269325805019796913573307618524273672169463191658413266488197057515980325444337352628674558425086683918266068210619311134243237914395066264250620305419262492976099726622492939166510082615345105714754059695386498809333299688778589831406251523989798204044103920973525067454146517550220925290607332408793143803795181579173760886426386119864265878601747398615185312537378268538965554407601748443807924994428594862844183211409746007149825764988862429241990899295550752760226840064219527816742372969624231782509738325370873990035365261315469201734614967317808882164532093764264515929441597312629494451961708678541353165389285991322468411409760885694444639615060697940703601498135403583936236929631780756125523955116043761466235482667892849807979823688190407237629822667447934983580104204174353145162650132806985701151349139330209370113697685415095539788756472282166704850442664740124165037151990770858095052399618430614419628657000256451317885351904207499531611494521833924014130272694121424020879095356964448392917158023475685967512950197412962505386399402481347407838825972280124113787732822155431509121142111523517463956572273117956239550260721121864668504251130205765796034735368184003513065725633942629356249037250657536004859868126964099191555371941038111409430117603280023307299909234332036970279253585627953476663126594196504978169972583518930482905686552203186579974574445578511274120695829440914214313922111077681646425437401222723194591276901050094899537562556954973720373535193097631321256144356689204646815946253548393797454770640132419761848209221290969335718916922223736395351007216292030150777838529424904634765599693624496888836391027030476639223031542909703547812715428270135686769141719991089146989057603702557923114140051358985007615868898690593679790767659273778216685085166223934304770355193415703399996556570016789146988227514071505125739600810935762393016364727798493482002793865666472719962462922432382738010766530428719798930995684443892955045100587519469714514562042094234136301942465524528140825458498297091491291837746954714156852571035684588101786568337495802380117894778909139823040402735188305005054289610535223256706754243131971918419516331299286479304640089791300901550527878655967894499285163358268872507718798072738079555111350543835549378085391066830088443165967767982117690371390829568511242971698929520707288575672267296583752733626261532527604327093650333231325408805151552399961192760098240363644697200905891259736093401031185886064857927357192421972925643595200037439404806178211774430924596761564255966797597844594389272929427166381973075548611840123769926752048368479027973207281519590645038731004030598007736165568349841182392600685049705660963846263020503335743941866280535339998506266019152295663824229299749686222672378036766786493188269985234669230914320748464031437767265358765930733068662540983513389769980267739448807081733983904267126358478149880150701739685046478418565832655094688286160521699558454314030685886477671769612750649458593293893276197646031941641867262029912319853220049376237324048615878438269199379050445669708460765847721285124987842154504716176755226681408535019408425251627410149957417365450105188067344054884013946623898674078356276237802736744299309825543233015903966738019244869933618635140053354127679450717780313576505560729352932872880244793921435211333911571016928326804294740210780743454279929425124624747101331736624278282927801020526623290501723338455535293514737138325726965073265142162824202517618070213337968500825117021312703811502884769762463808131052348710544143540757979784787135592285148255279419538645314491863092225313006842900775094217211119882074568000472474499252555486076857337440587934616134357450645353636276054995980957980641793426888755805559563360964836001559200301463656540343974170529004003622477873710425238586146330166213398829217006924403017328728195538742624598072129359755427105158757049494469038934472670550331543588810097071996465131344322679142413615512660654980297265162941249787147215479113624702670628627783102422176576904212616126771681012425783237959275191549932844529256092285937039863366865073422952873509333947958854915492425482175033585299671292247540784271109540281400318383740069634759412528722097983704433167279281002525895379530917268118062283760566420952792349748961894421775251624381685572509384543775144624765341302242834189413902381116182603445456149368074297310229382223966854206837220195006881117550482686636553433031324565148273434419173405238501278949757703745551090736342692130209127333750977094346882240655028701891255171071941085700381190475663434133013061774767391447947676327800929853680497406268883743348524771869513467601170634374587294525328624213413107279057344772085358826025120038975712461260907448635769217052802135746915404857957417984249683066254575642924442812653803721614916116350717557421220347917898845551611499102679859765368488158219129617954589686725708700358299939150738159483764034194728958641584363882141961522656882460529177105458839231875123340221222648649705125337226597041282387729323046316605522104270675534081858440034024606333473423537631579298803684216563211959274909625029937890451079801989598573526387565381452540602896476715340745552932618827269531221317671845510921534582620015001293634457625153157037769184009055827399104518643342298004345935594717873469673848500155805471478451942596945873221695500933631798454382847900650820972657723538633357404260403882719186550085440557182930537038158490538157821008910992234253569194393047905594238244166688422737274832214526487825419921475532529697432457560495471544911693839143549231466285378663268357870675907721862314883855616700521599194894375111219630783013692869687459709795347538459230361938419715755695098091789677389238796997841170268851108862866528890090549209619113323835033781489759970912939435877827973968433674734433215320711521627072375499521187275449158601332966109135519349812418830453677265702779594947767500380445492862041867682589934831339645009225353167866659402751776420452533009453453835662229386672650894957753750798369713812753735910453745352207903836833974413581563229069229518491599838175382653557781199158932186751169895814013989663493324785214653014008502825464304224403011630832970145813263760499301582746348094414399675959987648614235443511298888593217292801727427344725702366031978049401187864486833965418766310715974347065393892995217623115513519146107129925096638379828620579848421262657971885855888272128476880070691518232148078861975151721873117741424584715200626828632615251808433088830247529523633931002175607101285089442533243413477059415989960773763418932415073297232980438713409681440049187627602054040311754524935518293995395903378388868899183890538141383034305778753655774556209710792559373197047089839252636149391320227270910151149938426939859888626004034659588883617894897181932227521663836104248895249959868585283754490328759173409981466120709663461506350968190421652062290496933030074273915891830151603955260530197021093344838327450332908688267643945348181730060415522673550657290272411392052163171101985671152458102742713639512881831202088641041772699113320982917967973466711416911586154825767666298140523224757562878398468109913092748163224691563522832507753161896268784190946699592445226290136915534601954091616858097986595440731432407064333934915142064530878721786264512928906341280632955739185814673913852162833592069071241928134413400884691732349899443767281632000673801954261236871756791116042910918521113169510428770076943685789320830662395094850669660804582430857089479313602888900678273998630919855995439696494815905631803614765837753160595725645654379414679048192429144235874555027818701015544610932657993837068132403964344424926454353057819671012844990424262482205036964124139271083516770401257662002527533624179236542037673634262845340046857079571739966952588406307371465390770113746242905708546802064862852344267894783833781981142437708431053533184333698198989289646117636776946559127405511317418077848921410974235602451037713719624669171640038610162583008147619260538988664741303889937766574058037740939417572141824996533625928711492301182201913367327588921384379750018978477928570000807947052993045667028755155983819643054873484994840822443826775237623933807986806211909547606269673649489252016671615867246860337859853462937738590959904901481033790043424033076984197359271462136748376342534592222983304637667655778570919728107270377688488460340125418485699665415984091578025609850328963394398944693774748039113658101627423426743406409490042535590594619173079411203453064899555453385837412167156868283827578950470221796373375703492838122477117760439025197398416023222492091450712489645426279637901164465978360810624018578237510301429611498965223847386374716474310149047110325918434550158252417615978669827792446885822807907877544937000406497142279230733580970348944772435086833358476283238796886065307093218669422617141349113706296941590066492562128710694739591011082463123010140019141144415636177292810170670181661516433209040211347677594271434450678529115567853810709083542997548682707531748656156648552283947296258285476363899054848190302014398789948012501286200521833672530756578676801487213402139204371602178692895601698877160076235644492227005321391456504088762225329417343364316515067340844983657910357690487129009550796332049060389407804748667512837105652704762687339013385708840616427846587884210636194304841969157166059568231085751040950674763911720602677975389581603024368460306456668049285500921349479974324605030142621340645536993341164754200922487226712904478083535244805206160904235499174734596268324073779407437208371904109919453628217879725800073556948608282324901604333824096077986320159502655950648400033866228926094836369079782446817723369396235133076541453363808397237603332016686625936152652480997113666385983986409833777630872822749839651212690474375083099828050624005747014715515701353923535336829309432135473716724801420483105382905557433785814757875899926619481252980453694680772272099018544571368491857619026841126721317786736884931219859485384872898911672729015855785962192001049997429711681211416594250056328454646640290718809150383626216933160626709878224255977314957776321893748200097555223911218111067234174722897030903916254205078181567427836844904723098624905989841179521566567583030085098187369415950850896707611592077255764774451377883129654445782483110370286050390159696324381134980409933115837476161266883814706000379596537948146937055965073416973744946655478877044963990102279577622332109337157478425236123427341385087023477927908288107307163956057610987841324325058983601282667844870513123023828058062009191544463435590820648975113998574743675054248058287925898839102727126960435103724974440642641552584108403486911771494541089322401788254904552680753389083433641255348234586321451699125849909829162359423969770454685631789884697579572291515256404649117388216460324232434241653607285667577147111698373039707602335414418834421329119503652508643261656118020877128952726169625291939863606489061373204957387011649451029183190254061468296290318473233849204684040112925286698465719978194603640739992404622238883952841158535294731773524820446348407291249929997132221133529356141643372838845490515678197034036476375227302004770313560294897971387008446375399808942327922762808965267677415970201828097502861870039409223500043797955456964300359288556777191153522470111372755403178707830044302949758651737992717503376795933792785393382156769123712181077759312639967198145803212828035823275904377847290225394370990822250452754451239024965537896754432179820531615757175430372333473800028274067584374094252363073182807303709735074632617881026060583343095880547235809629339750997235529094164706973724893130088266628125944046344114811209716294730951565134784744643166171014931047727441408908933114738662982574101571924541452073706201195880253588483706835139868220987382998988115676853848896098962981485340529793792906315705791488736852318018720485037529201097668109745227021747435537453939555438260332942924385856291311529069715945411761170415371833652042945485345967207607157464617736449691557232257435158658734631708852440308439264828565591680700021274563831927077626053284787199785634368662777404158348183917725192556406136999099197311155494481444257876708843056051038215315679758059471616073294509358640782285822584808982985399542877002284418320042635227775425005597667353306811797058240208658366721498712260271829344323995850231379417586144290783220057449314463263385896135353526382408292628825009422563039379401501142581712082584339950983765260376317515645524930115411528853496036272447170303182002665028290664439911034918082138434709789825337296025064249485679632704207202878345194534689788252709281916738638803496762067602476487937548525967658797892179962659064092234753841316133646748309910472961844322012679392735367285845391589340922897248514948765040938600085146209648041545032938479595578378028648967082883620129473459333459826208871120498914742243539828763016849737584850397930952677272537529127726956548871536318276725822464762468359835658862964198131020819663931714435633702756282961275320703567103826587716326499908865656072882614154381974410587670661422438048033286051141590213280403983075848968491383747590461801529576566307659012012995250361683124021731886809158614932564143829499072275176248117615853575739256640929467365175437583564004408385897833842573553055488419716307148194224875351208872156602260603669076712419045917883106532537169987406655509621795385483363524223821725785378938563658128580004960173805730449090202594927248628517654808457392443204694543243344834635226890719890406507485371426281516246843256489891535022269243268422125796124850765250371364709203809184154679194094692672464660379209781502262726492404513805528459876518870434061900675218509369736801829629430821304698929203485246976214924660176044904830478738167864113069541036177190747350283825775471098817817547012551719017023214361101487424918102411206604148563537424735449895730019963298034311468052905553134110643034788408746543145889179871046273238118564327086255797189867392816983789702083715300432718980349459796528970709583370410216645583250867473900007799378931724132689084017892755385874956181540987658366153133729633129639151109018234237122027806607913717229124987744814519473661668438839249310142362967684680784517310605621183939129111978438923549294747780418395892848752213699983799195251665389354492341858564068898578523182663106010083368339416806325334847081047415061643650884303581811611560887851856625147912850068768586781886377766759218149176190441838918211970734277552072310866253181678119266413210974560724041418192111626448319877778677437954129679707771024032259938692233854146047463091585469030596866976530893766602860659663467060268195579930571237623014164343945198154383784621536899095332279929632391902176789010018261919578269799471750056479330780080587228042255135413872993315356894900190208023424334783027537469503110330966120676890631125585427020035475781685736273915054458774152718642952088187013589205606673123022252908663936750949962111743594525439489227506709479712269706588373207037382323543568850413105806034815332987762964937685550706131572749348819254187226939136177629899172569380816357404767733373057843057634477583261358975615687990375337071418116176530838723969365233503671511521864313038056198568777220155885472534167994308212813675660182891874524952408766836906761256915505716509548145010100810092889661545065141315737928950285998398891546176315005923646504561866878948066198507118924656722983016127730880001482184761176712523378927066168023063329329962867400399097809717154046830585023731369874161099142229871325713404583062227917613237520768647510532933840246099589115931717069665749164613858189395681134286822516077137696191950907262164811562688780977997332070706934321518031519074917462573117633812193031222087099085913065953386114460560005699981992602527454153486133769318895128367325736878527171373404548063081722588332575449445179499083684126548773829911606757498106008274277894924792157465425485711087731237844342843255302219222300881219382932396084447342441214161020898851971690572661819293294923345614780370441576400658235025343090071643720861936045742564220871917924807586910073073857411101112098421800630819136468475266130068436323686343410284333510617196508198462378936232066260232838730379387557956370386740668670228635490448864270225242191803804351285814476401464993368074281279812965205202109119399871138554962102102977491317561124367648357041939365505786758179234120387422933037549593758574469402290248311685782435693348628789282910735672222702508242488029080169113015996505436147853542485553546880894446955119996844641016708319077186193502584469863612241393713584464310474983870072558368626567077427867137464850956631865023686964480618709202598241060307544864060715676788405364431451620978236817618630918899438946845298521233012668769043119569834771588237700858712251568168356334741470571060447036777321711489901212935889619579367858525543939164855344771221009222842618938051941199532895006141768207595694629595021910095393614643040724406754371012072687469151804592256414323176480414861635653630239870005420169662013053086677856774268530637714407620250184849566675983457093275299831105393502709108042918138465538816734339031407282067328069482560180697033932475766275792490301808587816046865153024081283552049509568043054561030023020881973842583584738490628585942263205757806166207171133348710238515264379759899487001850864042437850530839489287121938145348067596325451947876020839428403774071122614484497301611592251971932432102619417434195308328862038325988770020372383860479637575598937808751551860142049043167707802888034764386288406236175065003438322382299587296846448312674003727582348129959139866702689873015064706363396213208047068503628676067383295681592291099078449944776131296915721584634555859315779707809290422213925153071809406356089372147207885199712413930947602043739621213276122691918544267222749968929872574302330434925462608588954199535316243192075604803261249702853152716990631120268886136907659814696953437996071575296068905058802762635336209183061772158874845552551513505531705494061585642075140357193896549804986450568164246828091909000149836400159966657866836852325534226841969934168279260668877937787688391197328859723369429688224553353500121836200572136491918474405273836830685488348558257101662725319057908236377244042721577486679777355356864765770404942290054885373185199641571020133652582483582226289598692648823126075216412807061683666565323501120521357793122669361903295263881754346461655528414039225795481025123771191879764045439977644930861297474888128021000158651934779277534855926579278278195602736552232561303308373720449883006859663227775559034209954302182185371872002988238659979006451979197036344050319697866638702230729926129980124129682316753782392733070695963404425287990579889976681534717414069483055896957579448281180963226244003439788422729857960277449828007718564652938277858170403145168783755002688758871178710155515571759123896224128128162048176111377970270473014579603260735588806980879387388805479972239884802013533710361283634779571656109793268662208094398056246241921840252640230837544815741056634704660209556130514117665019202460361256040692041621379451029583691806613822706440539752859050165908696505400363959627702563011316865536653041330634698828355586630770067412516167804448277960868103486149107441352926250364881159100636684503701516571308916176737054142115756031714901973882006293896220839164416973718416580253955042199928369384560316054386342557776345749946835008561395078554027204130366763108159066877928965825378779545139757004331532148117098595606250257755747155168074575396414120450830603659251224612650300805626401284430443534516983877776800407737971066994595424662340188618412797493830254192599989369035482773538245120483190324546348881211649185961014519602707041005466310978436407838169355625615396221328595773776960480969834077809690877038894627148543295840385061850252318908249841982177239187617132472134132069879628092628576158694624735994892402449637908600246410698972171451681226811345032677892016515571909691086427275226907931865260456971937140996962725675447256451565120675816037218256924080762371783103164720480632844101420018126970026615304742572504054167223363165968073404048646845944710231555308938678456929329060288359776745246433563077557600303092721515652351783964205076294234849969977821747504361686669836148940826237568865251502428291078959695195410153576442007587265290963711072884489843017018115582828246278635739242041114956591804154543402539546348630042590876579372483490928070185894413072544179248871272457764472544075002738039783403285123422401816594510149980015707209572428519623506533995687384981192619311736631923046493039748572216669171400897823767241423719414356674310921116141299396160214931560929272599698968592045940434669694344403145788180056696644605159462503238751382868707436832889325810144452172254013941556019139480845894101292665330937210332780825719661556009621170533105726742843396874585694870170369892424124397143548916131720628927327943380224631128840015686297996541452565802397494256224523119560829125227256159587250886406047454235822265426925522333160932690914264390547787947382085002320274823789843153948372708841036118481174786171622288073240445921411502398163846130781685058187714274919250265216637166802878742431147412774756222474311731683647934942500762616908274095688603228094433279349676548696201868244420093514428859712150659651922949660545221671741239839684556396278405308974344128629554583565203153110891160602733562988374367669420987292834094419143851193269195185315137824505967847497552916147797166515066923939492268581485001391111893977897077012166726779201035094457627507376400966336736357070499514657847499586581036819386612141280849842190521702102619582624718816482592868585811681452198439549808190722643171058056038518325146765416991079107183026678996262876654377511998357116860265385268636296483213435141406717771632737864701972859825531747676877578358423267043838883575577453595993564666982681884652949741850293765854844243222993835552659415339396717636920210241352884840159606373471306583126903948627802243689858009375238056795077640760364463861771381641292667925820090242916908925451947708505455527195136063179985833185178422868041750786566892655095871852333067279161206111455595114018070007206803287893912149380852046527982302846464008158667832778417103522463939014115609587149637935638182559740158849927497131686711583514381789524313126939781003433328907746374193716260924153404022289139532769816117186172905384269914716378406223792390045114761053045271984135798775810211467711079726297095432175693201397003802123508473342638551825277813561403857847580646525035048634858978350870166452205979531961150447554452214699837406408497724261446561287355675571991909513034042651082061895822695596926712276126320373921686445703186675356960490880880762473303874399072428427292550220394585033726380677399147082003126414096254723286092713791224715839121589265987534694798368759622419254428466899797338545660434288003846535424884401543305114967739373661116402340906092923947535610498295975533634648855488483140263859972076276206611837862973858335774875135753008227715223928249930401565528226905747101552826030869097040023502396622912890977405671673298917973952038855124751947358116904259441849850378098411461374044842321245102413087754069805242727995303499192209702772361305079782666405035614704658020736514442944377043652465443654997750948702980700550062627616564407852859162168703574861644154256695010546819146619189704463629242041159949248249370948472132191218430907240455859980417124870126084661300090388155868284583807329417980437351909432168523102140928452099758763472474238163816642991531824753988577575204571628745310006175183513314493041806919298735251696546587129607227821756473370186175012386875629950053404720959743173839005440486208621316579276682691480351309294909753641189011462049563448539893513186431221954269128485287933765912042553242941925314146374196592581017040916692700069240806900281137745820278555821705497000412315011779162963241998236826062795223025977761238232987733694957602029313882596513792048752531435628670874066697236786672329773698610157259752440558530049668367635599723525413532817378805880116469751244290267350590588065299858279277957931154487920100224536060981589213200603764702460660705748262824200555241200410842477285435773068676312161877854403724552642735741751363311243861316393319089152627033112763717084739583870389445148580136045564429814305487789572313625483803098979032474136318286738394145692723055302550452080848858609986246035338302180811960328735340186522781167766823562995507515374215382623792422364442395267971277059437789195202218381492946937392391660086207556404191087650874079573456089131404798483713564762044704687904860979639273988135970614638159399926653041538571795914499478385575978949690572689407671833475958380630653507016000650658594378045387649909028060838162532405029127436328470558821422206841364960307351889432252120678436695944950159013798750373930751729021653082490218161585808537784951254140204697108685722757165199385523971059485702117816484029013024002419702705568059182679130100808938723071704782761537509992858387495590727320451184913298143143679483083852929763732968666640304690702496800847276397197635699475186871568765025611104397918301017825781701453588299538727921790302044876607009352090712640013445683599852173999520024801507082849776529531841384795474393713760148837849827187111848211553218731328762774502859870018576561000900778925936527038542012135574953445278544689199666712389916419945595391941712896695730843098441203561809070489412556930723808717630295667191547804478755825939825141204259901320831446699906634607959189786856475422381737377666509959701610972113576470368035342953360068337577492987874089354107305028896291886559437304900092765572818275223082469138971011242877321608594007543110518181827535072414185749801421431831509465987680575143098671780154400455552088417960095477124484696210636256842517284598477166437511122128657409587029746395014498499691692012252528835053343347719921038261583540747740493356478365912264987833786203124161399457280313403716994150474233427922604297289180438087607548310766920968745825038522898895050522305945955811108566888203661652067167271429553063270208198833671828866260157478720769765381012515459642278804170466885581127556243166100396692833842407225457650440914415347288140288237261817237599978074721171122540504797191660488207512491953182880984458481535798668079080614985476781972134715669087477519004643052036161922461535195657853648994185054586158332129596213200284078203709185189308056275958670154394235349281430498295701597089148325185584042594320261658267590582969204396317590156719675028398685718276469509870196137741092526445458091319796580668359668057746644506771105332087176214897914466880249864144972258717308588745725301819348806253111826722878780475816833833046009104173961016569162667144821022450104222865980354645688697929515533773343953147222233167411909330383739171796505191631111563346288012958672226796905849328636072147313701099532538398211885562256488665321532459956214208314609019793213519975765450033773949970047196812327080911132386403841561089039017054824881320747863333916702023261436663284219608360901235121080954869096358287306453037377960859514381376285846215260868323749574494809082111383489041898460409667618001342384548517671697933459210954183140025715405892881489246849716905779924114279885913089993203106886055296574098422662856205913371054528206090025139622456022363555566599243586127583688016621767920642580025747773931655607479885919108878100387514255857637827595868305089167365401242481435913213039836618688664731393987052547141244489710133159051662836741354720389898429585640270505427270008663883443847016641771061729187601741952988516910380712965794603684183980158388783610902476323450063862236159176939132623568468623077669792883702863096074277928889961280229439153606742860803944619495584668383305110251859072779417437191607320784123499890610574093403765446320166091099230116013553551721688144997106044962717034042445963908187747079980853710373209231730713208298468932795657154764818522765200223976171455611284607565754488413550011417032931478099038855586116706042015273692101441060445074449660652892266477733418356800738233001367552911058834609411300531522209038445100596333471736554615737891173435965523536232366993233850098066936829828050449853420117369184966416608045803034682098963320104202484139401369512933292346154129167900573374698985776710839863326096036440821200574876654813407648523082101546160259690622905409047599461567401961990689169668723883142449833895693250624874795353089259401526526593690137961169601364131936554360915984907314922933454267353350596020962998859624480969353798064533756020665329889941592718785473795126453077298148628746278648081501310984043238202924832036427833092500266812137610798253031005440068426101694329435447403546138322630116419080032066913400515747556738643964002200219575924338632953372733688193719256295643689639772855517468363592620971468436204197679671925402561113704770627241240034037223685832086451135905004705187903157890029007805283373149830446594473009073816516406662846993725131658303178730960151955548572339430720172813458708032999316863558711309114031156357264633692367005367716828967405618724671396708981255064612843887088516468309157903241322983401069562946846822895676519632107847684165600206957368765746102672222520156467939230234216893787054528004861363341921331061992595478527000467311637811447273986512989725611769754751976049970917894504695984560536311555113196582963741249411811205716624334516572990040047811800436200283832159678081297632777651263218418282238906480727723948872253748102634641145156101392630623255330197873989582389006938221756874103916533525568402919227457532739340004081904110380231882276884851614307451928475529701420186290442300260637088987119411848739271242742005969819159617260863163620819193593969776388198054986830985296495848855084955169135001138978894612063935629985995714182142822488719289146167760096769541567480425978987283901908755208913119138624055283574487147836537900241602922807077649000125038457550664025465379961197605144609939982573609156001968272230363261382367574031652027521237154617660807714489974136960875001307106904843998959370019513542065698392044223468727036103334433995663643315355005568884919714238165223160282435363548579851033120650088202781012562652350338502783243957832260933348227438850237561751973069260489171429856352101208999004260247804323816400039120233373607125369319582298573463034428117817793067590567377233400604387140988035248245247726867579098554597940152369350886263380808373344283599411060661641497790837138235325789646748453536787659115897098281835437505671256746613845293817883371539132379090109459523460413212296682700367047479896414307434760490585115955421825621271216379052151705618072813301117951215947462250990319844712463015725652562281287965015228811067584488828597719175682963654128702593376712499757049470588733487433437183558554362122716411370986712630811040838018946640738175840465389914375620937904071534790108138056547232661349768309521581779755880138983141848297278662544915624913066070070909610403423966193759887524535526807568915519867268961235343532067357050081335238141310323293793691031549595927753205117396290805995076105969598631776158014961771108113538424015151396067287632273143995728126360639427061077260818164954486542791627506314488006193240777632169551024282291787554232797982836768517250407240300221371662191321312084578101533261014121904511035243400259909436213884918545944764677109496599942717328746362639308553670271191558154318811404862360509485587121660559930827622845610249298916619165068410311537052643315159705421144288015537072383818834538049753853451268277840398228081367649633344048878972888907391721028592952690273649524640353557483842884937671400054321341696095838628572158593028905204681893251263466962288025743498351667239092238680763103860540705126796897323358577557880744435599608925428966530954513147611492880832104233291340485647855191179308301828966841269790239236470409478042312855001610205651414284990768294065143414353646550272432937098479196247122516130289439370245935042235315447335738520077161359249558974208737214141209079656627869516448743802393669300510186330078806579952404194000076647463714362845087811962894153271287679927804310922271433996460899549698903996775649791513326034901152733378890726970330689934970596469582017306919510216272388203432243443633191429756912657728529128585252739945367076537117095240090846668751550124243285930335299019385768382055778823626430176169939729596774079398728782260016772932830252721436744795464366640316736052497770808049583465215804202221464243347146251797996565900938319481254229556032206405514390029851122432585414840269515072603059352384497723586646447008522733410266992951135298283670333321620482203755362515381890271467516674725936790505962785521761499344347763346595794032087304895983842837237260603480985413789718766450272431689550106072279607507690186775572182960347233804364812343543305662693107711607173106608065620022287405540840016971805082782194231759464921356067505224873192156939710979898713325200280522519261005433790515154154985907405012508904612578089885418104571633158911786119908943238111060759826587761823027791253856330685483696594537411118272696332860453591874761396115591509083594773445829680301800108235848696669871905304703676414065278380982771555709137779951028959849598646566577224442675537867396229507818812636618178065665890884065754353139483818701191381261876659033209944725248650282821081901001618987992152960247802078671573190516851427379943721023374097444721533823898954271419386671288759031149392329071120024350146865435881562002919330974585760623324992021384678755507926440534354310069749058452590919404058688878737655881625216716856585760760548499719775550828910589368096668106672295415965152260887869826140126503489953853757177048944585909216314949180244540480053940880333188077031031559898476702767612517782116313041416336162294864167566748474424286885122385916775586172810818797277232676046474950113596154839304135896225900490061182504924774449679602899354973637114128752495981259903568422855600201241492495048542035579814217463117126017159325088882132105560570453251144851895597329199426188006951996393636972702220617884942947525514085430976111925926567208356240001375494824568038361786099201261043996662595200273310356816214208176405363068361793807728348913732709871805741301938955198364192728631662981000763035412016695038006199288725492322575853653416883876201924448189914525337722411064385353926978052451885235267857388458665990780466304671661268674769623575097815287475029498549189799696051928599173233751761576590367340463961314708003839349018194143989066590169711159282662106014130300258113618518299938633231495346238502344174814626033341963751100267239256569526429778518339356037866265001406605974827606500095103660132654541135958075868001630506322685264111477837163624518452460014027545232616708100572768523013323409593630738667787332416086330972083187986665806497524585938423757511705382342909471413778982923528799569658820557354952674619594051325437263125927926561506171668628445048690664607947126632386615945928338671979130446099999604687033384342904801576045882230273126859234968998836264210425843110908385959969668588014758666932258807467549138042100637233984838156604397677025958339265511787833419079916136212193965807518043375676396264214364589203967284579441100711800181799927000142170408610856030581512064256147899466140602431833936004531492714618325561584008472235828354427746240484770578126518392436251041974542412972547257034249151495561488410122001338032514261728909577862403263027179141469402668830517305139161438541554670761501823745313792680701255940367759350990113082130959531231223612683614791929229734945129068591388499800238798477069934325469928229730228498051434347911229226679599888070871383666101712931920258596356378310207550916469463766669700601921631570356802310140620935475220411899390512431283906573005092838824822362691529283376745965798643865470201256892893046937285654133670257608043155191909552214864605712064837553398333154524187693247899302067611885318731329978930715943478895295300773970690421429818450272783408893873625368066893810915434661650549767936648202075011872209775454900959467005922051450576558013102242557757237165189896030214722942585702921861659711670508954153864522852312856143095772355012320116477264471046379153972840779927090865394314638219897791510357837945417430412510838383929790083882609117484217236600093659864003377540888019628207013022208640410756625833731752637563058503047039879985771304450952293740742558207059174051205997603543398342815658466119459598610603238579192103425576850624713675066257318699759923689409768402791876378626551183054977638435823825947758036654339064895716767779471044330638172082676048602104040437383146887112891116338775080609158146847152941390136130838528681394517854342999696907156950175011966191726929589997412022879470098958592156679289546640559251826371126643325050629246180535911633395442798063545189328592369383504367922119767356642438488853459435740247087352991197855941704593349200759343488530187854365285189419045830901071140027966304064393312088513762748224742054370624876358408638891046696328284131103941379861992748257827982290607934726403065271038964192338825330415119881209337512419440629752957157789358969102305368839354982281592632373480424693887315582756839104834026877758847737982345280236857032085429094217367159300856992270109948351449479186855204127864197858101031955369706452612751599851358983757273003624241107515313517110140957136014957804751935889511501082912788131810830087340870504587542792471344378107552271638681287504306197869334359861995600596219211807607887580197391769783215563976765556681539800511072993677614195887451305516480388144933786025500499735235678924599352105030406497571504631239022338284600345318621701753265166038741777495185426991817813443370379984832300019455216465951511571411549150723826433400319556334983799134957040480678769476796667935348656234768974061674545518072112144002774251357916718338351878146420325523956314665336024661842588808671071667006783986018226269220946982421602830576315261343468959065126621192040230975250824829953239827357748736035826302603984597095054292498316927471494638195124874409923925000435478252023508936781894563079786490181299144358442475478275647349082008248988139472849460648124560914885191385149877168792584757772152918564775897913415316478897276283239842459974879788309010262772171184821475284216930094287254142132954447363306705815121646565824453205273049536189331058648348491199501824873374099437315115261689909692091139122851065728700557760481827111007904526314574778822922881010551403097344869007799330549744962351148382550461259664301240729873621566441085289554254466109410550718873473659274368621238474885875087195805124972754735571888714449072875229723204255247348901992722745332488387569064303140417417958069526424363590245051994664074227992163286310200436437974850656809058838818436463688369166539734466705612048884946847842783923970950588114742325516851203680737103568908418412289541343832254453507762085931179176362415903971456654332312790830254871854227679614681622139305873115028830659703130250632968689460250351378957584714937702467869236678069036468606827062788515881453280273727986528190663316539095947348399651657430595801653397532989388558155701758212042152528223632685871438796697120235587134251665551465576362824955005368845742403250278930614296815439493658596005794364460053215379559824256931838147069052339456471117281933225859724144052876828922187044652504439351638495331868796941824161278316506069192084239633071580820158315125256530418654896068164742140070600295095094057774597134575923170952638651181316947387275884630214666151052005110925995487487104700167969726851582874962685214821227514591122808371210098997441727072695470810536335773040462266537234802418348282693380053632152371126111531515589424913655834655353631750089530507025309855232490616845007531072925158512992183167851710833487891024718844875631980707856203627127301858693918561010863210249464442242467769273910940726209244196465819604832178577338027188393865022914880243111788989928974593834583992521251660067480797986270974670767157122693015694235262734668927268315714918343155734756648545885898564249805262367265733943522502664478204094332922377066029579127270755931564172968259038029178646798698146390075182925716577746864379020635446675927312711296194069146575875165680245109932855947793032058199706982940516566655046582682723447850438630752967086580852100752057037788004163645893254483052395756524658094998841356446338101224719834222249710757498861634187686358998740591294989756836232586995357699173227741342454179049578511847853865040770082486699559598982702130792918324915595604739182527089702030993780080794172129220010361838233866357068850103117637891567524373941476772055788709268674448687004586421665524763264358196598088386031141812578141811569353984495314606449299604478027094801615772335414593166139409327215020742887260913057017567259725386138298427719555109701478771246315218927754192929572991456216725346660654188314075221634532495535536074038374298287624742085520369962684762588337738124945333458385995840617862613491180001181211560131597140739692600877133975301983858094334228766448533893277398754516070661199969223525696830822280435285912948579614248996722033734922273658107859004091711850025939396120097875498587217106682197969044175845913787990125744338757091680437369407554019154155828955031626426227376994172986010140813916738870941956327727330865742648140907691994704359281088023562897968802345229750601144850450023113650181163811134859260281140971967800419041407041629903950138551915458748896586031907024065354445564363489326500847324193337921383566665643175432844668585629731461601025931775270852626374149643856953074493779697766850147414042483044327719381145473985799060793593190563779652552842091390796902016086431273287529519862240744880640947470384225936255876292969421365684915345320112156470940122341840666296442063954894657959033196885617449996406110346192779247766193923493770938686489014265857358020751777325504110062281974236772967489307537001178938052709008217954595247899507459648195760171186698147860289546835047185700093759256098038434315124938196131807451017624993595421202180585855817466413093797682889657611279034453366713952130807578287836672395517313132890541269580896870318150529558410655275158049928544845832139717851907946022790115180768079683979009207489321531729200914118551175034910614580971187558649985673679021527830606415681752388866666088872519147811694457025490014509248093674519115064117564611310426816627722047551330921609257209029559102560844942613837556238644435611544339337428991930681824442458960086877657883996064426659520994744962451821883264254518731457474098137884553775332742710753247257596993117881616999066094976053395934973501329230142806433498608640042030650499701940743590201524793658470387569154985736089043076461967634976284515123653268749498824153661293303971228236449135699819658708606217625807184653173576569098609297202069431191324230539178873847676370603465389077268848739396931659867327182771690124230838799475566209191433766984459686514298068834379732916649074136813261813127175989676529334067452266523762547870214059789738874053681106780305497111236477235470544072767639583023092734638620095383501218127856905506410139371188954350625343236932938970871093885997116250135435106920114351758699678210303490756666814394099126126558621484473039546537765283417887388315014086390984251952560646602851926227530309944511735157584355758412034531896352341129547079669929385122882378582693122040761323833488047009384423883696676817463686566331908452575481469686962020826574146777474032047699130432925913631937307766717753887793905973478374810557914642451543024091705291439054694403869443110555273138571754151693071000040509592229208779040485922219188805582098579091910303088468258236685092097322775912423722362936480072812341163358070406981997850479334317967322649448478471658378902358915234939484912924539228036289378023008043081149852652682262359099460178568367194820244466282361770332528141326666348338806360339442900767614464033981873445182379651267016803325686362941930143275660025852388490366869791121703574852581094200159351638110297958308838347411047997547776426111178281517476909656661736101926408368889164221550861317953532355936900063965498731720136236899631796990433334461069688134763946797550339313374370109979235748473160217763002948801046028950532236195598629877312020210605523038932334083903672975007690207289782018562096045777344702583401876717420464818792846117351146835019615218806095209456249856887301853026631184799912206589154826956160867206925924801373175064119616479538766432391586759057378492224559936723235823759738957025096205528920080393532538729846256659695422052941115562710734075644046075679660966544367691177216820787209934786247659353183155798175622223410560831518540650459312330702226772490177375469907077683901008451414247430949386044850385762230020277036346630872921331416420084095469386055940917590966487296548878540840711460647466662137947788252645055227413192015968597458388808274300533490046498187614932261792928866488002673512379678516540305046665287506414592402232301753505500977271290218034106573147128320303754773698004741177249733144667527415211646185513863269591689805542248702019653388787078202690467676363532853901489747519848103304572980066259930102050273080936312920018900052272561498363148290058961896708514184571809511820459261689886354984998957872277866626002111212870103982213449739890995157690245633020764722089495002207357343098647662787743310837375240811943817820096949355684018820853863492998729647523362348037425603888901690540378674379767245462090321969866887716674963111405303682473032985550399865970957525617287167443272585881795208476067192913550642633748369638791775709508020040813102756744175178410943108532229147228861140800048405766992487840112077097224734075620271192959019179010976330596973905626730101770454815371212810522814825791997883990030164684278153527392089730304961225881126827986503197649231204452204136754103029783567071582874502567060435414631414275053961783127161751046624750446374001363683943214134152515636812839822242208502943436420104291457811965685979154539094059052068516914963838944320307482414155560634950393652579884420109303840684639521436172789699535893674766662438785620874372257566787732764170405850578970107718870987265662636770892684652735084550793675510407005560743533331210123627167067052532850929993271258703439542386799848044419967920924781307889937896507124053915377064423608200899742924494343468842538548186815730172527028790402798392623769200887524703896582951054729286684906585533659259271017110690883365290472966449817040658306341621741795305358343654124919693755221851192232589585167578498484437508801861317944085481232481191527512383273183793222072525272915886540959910651166393551190634661807756448669204383834787512963543618589348335616154704104820524516078309740026442166755591687192096890715971753702715463742419359335717360140526662735334968843173268945230164758914072230755641459699469694299363528172869391744055772703498789509249487186951994121533753103469915615161836071850203660845968094282545624044636889537829782556212487518654226609700008922389972191199729255613853748158926458948041780994113000950053472505372545580654030038303443151372792528733649482816319950876049351467409624044978631614644103709687862028715325153327677700228133087501934289115491822410155260192151906386608676706304783106294246119419312895532098855759369044357439842549961446002716908976467632066021393219548897152489870405122956965312265419111710381193175273416886441421000718804957051903948413251404424028333900045779096025115145752671039600760746353086397423202115429269882168310144753553571508647383825475413785211409067575676010547296694091209266538304318689257932533535856452329183142438925943740851143778292471091519294077040067637840324902610852295138812256182825731942171276963320229707220786681764683958540389622117623817223583250808922881858646440361777204658183603873452382683649340317491471888372093545789464308925348877868167987795948854840176136914808492361935630163460452117279256966553200910347754214150017908241978308610742415003000198017250426684755616463938690419362978952113145145246545578671271190677288074458420868950333051519183339388542819931937527617820759039933673801492098194348981581789671342554468451679076412261263284591401292461568090626852059426264385903427958612738766504682933383651285979122774172424071741101696720184960321290000205736495230935814006501995919343147502341954257653337341938978699859016894824690748178277203141364754890855264989979163487515919716093534459297752295130771447600403017674063085557767062116345234685322309775470986800892729807195432531751005791199891634631267333008254831509533551802239780583011863905226483754495115055556058940667352116275819593485852159398405977425850239829345568264056057830214872763608150593340289543944064639044036774423834721932280944079271537242962511137428306561745923015224990703113149036342404922830585734112570097048600877973279104804259884943943160401874976693150532550586778841880705345945784560694959747410047317961776616240955762754350714460362110538109188165485839176646523912884950357114241222088949180283982250326116782165235037630974704811177125786168300398804471963600085802205430893261691540625574920088898704088183824446117696253549631320646884964023435869952010547805311963363171637409386476842394240444115185933201686494866639590582636899418375945993507697751167268261389953479586720034258529385569977530865581872062367893585448884848612044383382021077686559045512499670375161428767762395742570105191524219359827005116798324638788089509564344295446903992332272855699300514267731203061843989839346302800026045026848805301907767746812691281338266714896149873767836303197729252994876189520570131309812764544577492774698569149733677483156783630977037584809132711466866552391411176734750287401922540477310336865915321697505607736813172631858551393187930441204354279141698365978927797907744305782480729810277911024602925546757098362692601307605922619883456755099687456858020868140891112135128051171761193922833994410122657644430953860895117550812020560787168651267233616540678961811731770988024526936904273494624231868756236759591193769631140633641656217915937286606978339412952995821947069748826438636787272828708241436203783903977773910260899687163806293244757913342367298522041635007001873026697889032257765731287464208839798658511667858749680437862176014240227960851121564955865050251359114552081478352994152375120705964101938675535354553331738644310497621308717255683052710828214855175090234447404842361093712370138491326660467375225971494986322913927282665585284849702159666131016376511187742833592703062117705151424322087296094939629059387034170513364138580138951995235903045110454674280364832036084696176247860542610003480599926866746633086276982071155071992978786126176204832730138092929595596490327693549982740552769525249579967980751592727412763918571259348965480814147578365822134661927740978031486308688498920688604899497240467847691198913940831998742703411200415897195094877694781411406257944421359876398143373885863468311627493416100781284888169216852597769678513572415729144657173086386650247126490863044102996063764600088033207527325366109190304282358895078200697243235858067411591967971138501980688864065805007556998031773372767704587974403199798021954778840559866722822523754258263238802288226095994322426794242167369701568599257324010141056812235075964320487670547285210840664751214186078375475375942623921091178886412064233017122106528075073311581248720348945897719895467588649977116759369515795727985934295573623155002845867805510317502092979292060035983342874628788785310780613252717348877969484715779665733900052779553684065048642972511737667229289394710587883777508300286048381724170476028977906981516375282252323181320380282099968175827558867885403702172895477264029885395348829281296424423030883014405832908553383946912100671454824421584010353749436887508111982582461157259715639121737571044979117217679825509680120727202464695593495375396381602529070997358399550387485857007174783270303574893901592866483075423674118437657575671600384615899684975533330785844289529922910246909375368461769144111830589717353754533607493170942494501951783738702067411771049953776717810148687425534294985100493084736738024884053329611918925269564627002438750877828526417711351977452952201929316574783838243878043487596364480082095531479072904647871385694442811712064031966004733591918245901165025989252562593868159487526858830261438018027623834644906761126233232988239865515764215822765684844154592897133084852259328470849569029895661609212944286500052656222122624594446315551442607083069954495767584497810705199304047555862084721716252686129269332986475718247637130142721140474409606267114442159373099571671674568341852532358044965044223934120821664519793756647545302595085112705418377256049869506170675272491883974594465030976688273137802786358075406064500655774447799388186920416766894647021901563108048753951699170931159376411547913694984524821430847409876327781168787784878036970264986636164023028067414013362452942713754262136590243174890540257882838816090348996235588693044446506103555477947491670144482642979805691718724322093784943610014497197156068014193831877255031801036281542858352288345153764610585365963419163376818522411509391713105873838327562533872659377992189640328061728764297273689920939865164312085911275432122477941678940892194328866958860022202394690519905727724418636906518820438808557697987106839355312265101679740393996824784146501559775571137460217085897115889649886628945829011346775454828135948981300490125598296620496189737210464680347325864573997209550986362463683614248257134806927176137924822665637044545952339330562268582696382206679836309818520934092356620693427599282678765288127568870759886182405678132113007575101439144255358093891096050230460064053821819698785694278561324849825119973143622661653255805935741082691635368361429542769273975642474171424453158540909374708403202999096201575190558553380087597125210265458532787921456112252206131706515131482900666903937195707018161464800183877673207423340909535606086167931498531314985820386139288543659438211189849528832280663206723565938416210437379666086244864583092859606782760364655762112467048297765967304703178732446945211431171176816230295323067745837980822814095445071637585349780188097880606232748914334588482170164796124682688032886447010419736187106470123833677281703311914204437590045080369934558980199699812247583627115843497874512208802920398757626889600666968882993866352564492054578808560001865144411773224993767606988486592917725069061647080351633138164663341949614066782386655980966993838497159569030265168974410736195323770773096691515639136017460186430623619176557056510176685492266346406101096675896285201093460246863519400513184065729299739500482053958089850352602983841631599557466879045379941733388787642774572572211943526087012746208308861441419757060273876506820624389350619302418370853618331341434828862491947228517637700293083137254116770406245538490736223552276944330620710330803517097312336058958017766752225931244793810070430805953797730135603012797647564036582981050598437268399845716430537666035567182026935255390309227380416835769563137920616099482636942676499433196956540882795932069650785860728834823251459949546696226541001633146249111221272995832272958611663404048596847281164872339576637625505367041185212483486245046962590999455153860502765534740391025120276529796084911945243484087674911703363885456002027394675771343837494977445418909035084261796968586449079638995109838706884709815963311730794282328359640808707744014653943571840682558902200683111103890246497521638001236832390082555615613449442166904817832219084454598643014672364292640988182679994191469339265367622973709479211092973406600699356517907223269363298933021851524989098923926069667362907760296474609433515274508794343566652637347276003985295801066334466349316358504917344518339749394597079879083096514563304704328262237495215174361074961194490273852118842678333217656442331939532206039823779164184167550785517093051390753060241947039800352812306332651945905213279248400931128876685517900044671890709897854869386672446829631726134893654734491655742842726951567486325012130858849625271580808674915705781005994464248485523768731712082252621215292666405491933873499681913661307121462839249425230014824747799195039178033874538070965648859660751942457140830994395330487271553915297844316946447579311136391822307875301823823156727838697839307277093835505565811673383963893085358949938940608078417504407019604312827344557338657572320590185262951624781173050204709040257632366521815134447807939032955254579288976708524577526438810996715924925632011889285281970946278314755246011646848216203442400026701633338342965776583947071798512525497875473441725506736753915799555696171962070881513378900869207965642557222427671816513928877544272893915955430413703445255239490186567310560183229853877076257652093679031675260065955493675866025039012862079707517112769335057892485034733970152629795922496845215092834514358563527783338148618889882212446945814785327522933806244555581240039953923802335842484585969050927470517300850293007443545931089090674724477556281637061371419181387740849682304511736764931342125432342153629109966204734482542791911337085077835849176939511234877325331674359883682591832631154582556366027514204188634061688120402219450564450083678979300678758252693855778526954324222515908969299593859599499998080494831725424893046767761819268349877538676276465106472376132157782370764062911667472435440567677670148087743285363963418311365910825785957096240030485029675532087033171650104564816520837737086323160843120067282594298827014568455345981169129880729881532856384643731124759819270908357071601445231196052772336799845068289072698653081635680761285925003208421498788916196475736868349664077317712303785784360655327451506097222396079194415203030162288621664187282718473283594410037375450660354905921040360578919199810598251463151147684720054082079306484631715907384026820635651750216330039962962594987138372135400815773651506375270381745498180914441276845611186400372662100177819593760199515352090376529893282891826493130566620857899355911098591716413996081026018703489305531782357351540735763051154052420722169726090814490798433909133188629846655578150059702978769775893308913902868593182918871755544225975400876289733579553334422208237446377004231507875733632542604524893316015781514554999052133731495914789642834115310395608449799512726407217332114493194187475704592608742086379945515967442121738146326810707333500053656514272394837575992440958991892104740381301684174463680243789988881154662119065493014187623521855016903047140109201731222174899578047135532725670308979418569517770849804239998284961424443668469106645431988539401970602342073976877000174181169051329256529733901785832369504499024351750900495593166151805497414854048313462933805490909489283270380457873731145193897918954320595947265513307626360956835225195775344524511790487417788441200138340607929231806325115852863535255099030758738061179417695302354758702351048312640468800501888101510138501646005734994625802037108628182027924722527382220493197588092638478897419493462090868490448064421090871895385108787392086088122711163319308162094712968220700019616635615516144639538472089548632289765146821556202228906171871163377156999496994604509323589855489247502460248335477789278279972754357735506812781199714742517786153443404059169338829307365222019121612652190998617807153995109697633070110573291437614860344917600568560090225116027167664438338202182207279906796618176392788337991045374650788160890752719431249188690251550100444501914027391705343701198458972615965797279605584883819612240797338120903053394410901475976612696489455329860456190135330071361318926740509491476779121844227437996908263737228379144253488901262851449097895866212595384391300718529146444394652506591642873795530320442177850620110692348332030042412991762388797658219980703201343090926446667015041176680433014842847405798165981021878466327249154046798606562320788726304625088767241329010653485988055267968663511458469726538789576434219201198323673116453325755899568990589384868916078520793200979787918352783714153133280836588333790880136758175359508356348352174763040295695787365378131562530967429211726586865243314692383329463271229372250482609534021011370830165570916806893662221209281539774326830007887219554298929171733433865752893231398446065764649228293981105368297133419564969494007865708278465782828131824213001946239465042930995008405456832551133021693532513591387916015149965404531969422451516506643011498358211914067821598279608231989308470534955025982968793401319845152069937299796347454310192407502559201581461949962417108972388346726932626796168299372881944773454542165495910925048062185516436886106415194955873411696421539436568679509868544798900728240205794970356652778456182434875587656725232747359732099759035372772850844660055734479060430160583524076639548002897554436435180318109985756276438959463677116486051041154221760999498543153572290304609905676995896397941029213273276672248171557630399469064148086982710086160971853680472764686142799948273896665340082248876168128461542220325545432371856845908130174979930919347192353250895453856649530633860166296583952417672186648744266860858474943160157846744741244054437761283860552863534710087617707541531041405515975503861691900855901856584145050599871645042972671228063665158799888856401947457660329859333384265402500787713322127679922928347698740980318106388106657583704245025989443656329148646458136451518393550371399780339571917807876656288454116976718016125167705304803626705314483158707469215558125356181171414394456144017676387765074919899690765673182539755605896140655685737396792537805918767729470712045286286082904133152297903404671886614445071493577693468693466318461375252152890910950853757697202785948075692649103814396473140493023254457337791231217165820454820010373281560157678847440652768646664078888388880580355143814504836131183652100912416906215615930474182359816969715156337236168016408911242457713183217447384803336971864574753190506659266830185378197828486102052917605799568242737950500663815196620026913409407183846597717284749814007786888194587311322397759978322997463532397732196588523098746211018232930349176579525824944339255597651477630449740973404043026786391636666654439979617292963957681922639418002715894350529783592965935416164305875968003230982375974814520005265136186704820947112833681822408458361984257617812408236243723713583922820769982720327715677683192630513922969361477742305217386267333322792808217799207454644121879268803238424563352444142698796244238012575489668428262237219461578850134782683858000819353914708040811201701918182621313690317246272138321320056842485547925534796886925861622221413663037760713802609081190185114168649258077370163773673215230311869685426013432977546830176291392596889516132140275862298552953922922330761964337576850546987159608317336062204124502602150282473735276013740276497840119039614780835642084226362710203138891961321533318207621742270804121022016535664404524317575501079076411581440783409311784806453407828364905229768924318714569101860201239895788083094276952022952506376639108418171453798993783845241630707582635959366459015331084690380496535948846087891761545965771503236547013027751812458774239673448062182425020793689199451486731062216217748683312635402193462373396295476343821443585811783009763294477402779202031006544858143450400896031735338923453530815536901327700653351633253869592079841960672520824679738746907988846966166061883755383800063844546852451128806105549292928239976494048776517912900122247168190842016994738033639609468405352275998178984199501028268936478376335542183678025486437757722507042509962050695974022564303406533368503685620032399584370625807967159959839281362105972603947141370320843962998644874717016157064638578470150082115480080677326479373813582142598277740958630715281232832618805027594820984788244796188872364401837946053567597098597973289883692885293225677221318794748399703794613460763078605182797963184502879619533301422020992360932018652155987717149842234544703551480795839329480857417092571081045822075212273129300227472785038856155038368249459201384191240854566300184141112860322134312724370767798336662759325238809847078307252758348404585133541922760328552389285341405451191911803166522033879599226778978260024965215644811248644765557210164057071862187333338503539748713400831971021278985299465285714978145084054948035504042431493845619490919845828998388185230691652256011300230625248547331237311471971545512378521102226518747401352268268610035412869950177944778222987148539997664438818086654767817920862385679192259673694963916886111348379478382815243595795800548494299328981438769633510216123875341384551019298499330182994549488027699432582915604945086309749653838582654852701071381018523462509011536559999625836572723342070150585630808167299134251584280133954959940611604221634537665244154726898623780538370703067971618592753237750091295464655678207702383746462048627653464279828673268703616522982636239603134129483491960779766893382298018062167114221461254242164643560202647094050762419888606831328993219596110101388204251542560158535996343267664139785677705593711152550937659269762637070523323829349365193434009025606192647204439919978387611074316110241445768713066127935361662252947126178916635494495113858090446367320592004481149130080679901345785625588649591967383120853255149503238324469035000644924257072649105855855446906050317709638608786922791653852474352385786678107432937408978193431709893359523439933367191685702831669133596906027442506333697462615012579032012748456622612600457872565915617062754350430571304882279419109183138778374304567764420470230583951013867690281256838296628131464802304318412156481481564675052330722940540113934135187150616730951564766217793370091277255530829294934595733252022545055929850129694143079997135541510402996137327585695248062582641546873634543843773843752503548315683682988961059986890251557249333219206853806547797949093153797116253793842206102648475661762656760948085625737499823652422599582611436673108554041301813606660982711078231322595056914541347170385488552987462034659680995112443599453250035655694539310646574204559448115486943470557156533723133555179287183202735374553397581205964397667843441792388102478291690042483650877017097998543664794435759862945355506322327101367635084702140352146524177238106459708500039537079706729812236574399096178585292207805364339091879215392986264855402105055332140557421487423327784470148232753846211363693112050458867817392672560414562990562732819739917452116903818671348415684402105229651101673448177772072596213277298944686013278526132841878978430429252050305771286103797317358012078483167219129156707700899661869776696057561261093216800024717511744715684457064730108792585809154078175602669106984308109317158705307524055629098721345883263557180904793434773937037319406577968271203918945266762975966929172086579471709282516993583763659642989219634550689686128349783431561081647079649553846163992924808381547782385011452974930218092144772190921439762645272381228960011276242838654864148887265383812266324041434462549365057601987796758651559773977100824763338371419312847109100814614101757813133502990211257513834421824413194595171322233147210841636670161181584545764591997315050788018300669594740072356972139075848293726086131205541585011519520881275868766695505197421433089286831784884061288302674892974772322134687124508843045076336224889113413626829554646392073827857906681412669968124008036837138345206271942812618955987914936144934079252801834751085231790167276737157702612676273933835935550045733187292604592591162853323442663050057781389232039940513505987802150038280748032868024374530042076904027965259406765302380518749811540276904905470224016030717860837595275600616665609661059301920436838531576102732639838565781640571414912653546362864046275375797660200558857381957929160719030735135220467206765357586407232938255541605499282657198654105803645429991863079112711973054319368933486577168454790744598912724463052375151678364132246555632944684768424791250295646308144891912556058143051852417902321780322213307856328842297432020330065127828054556443789556268671077200571138782781157083404771479184804840720508112780592114505757612806619933970615971424081383451777234988448194509844653837822503563010577144906857238456917455175130120772864057570512894703354414726194785933437183972227355883641984509629019818525261560747769964230353846913443676992908752469259544879928450975319462406308170846988216257776066432294230654421811791869179057371666368423574694982979031642124379256000643981349312430265900928018197831518728063978540864576507854939200537969200536070489364309799386757784814451554523371617068455738561167252101222903095657485170603520594236090552391804434976510708290565701339497547559953532067842127406315098836017923040013934083598401006298539022201532144608098185758004074007799102035868760811165267465273020766839787857646050745848223449795056754451221570765163612396799244032228316608364472633663791911015356147276105581307958151488415587161459405203926605642935578571296426200985085518674246301055423228659355797273907372749937770748598696547739167141710919291468957569279587828871659459516245661600957332837179484691437850058661347140424659587235227479615607009818952357994687073947976883856071301221799350707426747475619815330051261917500508802174123438353759217692234180095002072203865120465877154360112741528911631025255710384848438787285977399192124892471900144292110044163432028048155080395961052792725159993559081862046903937724374178704458512785905851598421073075436014156877662016033477616211768632296908305033864219936566333966056535362808559547031770460148704161389617762224044987995428861788057172566234530822518779080728296620162110537433866626377101590271057499035921681952463034535292666341676329441894132306649813094794678093200937603916707569129789876853617912438185177930399270712994961189694958301222793755653057963597770471007661137892803572249087971410017141978174539198644993873832131589439403669715897682243313390346008378314542729030471199641693586124264195504335949553448752244275053350710772461346305599524254145836347013334376627346696988953568374360553531335214717833352314426452253037010735464343922778127145970593579949672911144188710472571492865942631193726761362344163596743932380833436112393475234599908532227940112641135855715860747819172019522280640359586409210570283654151432044649146311878310537771679029246384066874279543677580402633182609957656584396077238878430159779884442579222935889829791081903042672724981645101705698759747113854629271949440482463228079070799068131261579346218011216967224131014821569236938686041139126830704741624454374933916786553257317960486845928231243669653055205807815595533613629803858628258440968503590900421524105277801889611238253202188121373551739882822117737174119111586821237631170511479192594632298749499375274562371036784192381963330391504615244996286636200283250667327672242087642369917501328618981323096561148084523095341601681547777125162622851225369589540979765016820671177058274200842345252310024913657102304801842350709538987281747427760792618425460408198695806353566546898090077078578779500237785403030030800358567934315119927816616391858667341410473502287983566786047234455869209669007111818049115763557487065825428310137902611890209883465740003341201863927873907707894775031703761813710868598679721010828574915694168894149101647587337744315603813946169889794915092964862278189597366514482666952341408310146575880498158245837480564440258827787810252783558416401959446795444610030543545096226292877854204065054068138460301775404100114790016232529283068180591695215751659090963411475482097288430361975209123626333270631914071025285217676239403830664892222317982603405029934618949993361754603392585197753814220231590995704116974459125776994567198179566526219901130926361856678405625661512065087502966155377316457212304441937042141406170411233331746573061503837290034746583106292314086082177366067952161017674217864076432205717622174772664507677908174416676014394026228258445472714714206737795686419257982383942453825099178230309006164425511510778703660422769080787086062679862259465595689108197905041111985686152500010350501389725291627276576973137905930540735070198747384796036888352530536921081272561829045752484624457844472229597657198928877848349334806202693854261800843574379772884157957286487676596626497502961652147985715356352389142068495428938027972445688441962715832887002054345108035990000967477755533372592074053819949946232849850298816833144987052291269821634808050684946731900660149268773551614755137865958070002896708022177006398535558044784710863510786246152302610483039580136586234997671648670065588090345081423377235356142725014620797041369713233937874099156600265586745647898346840455418190371991265647523169468597396549500073090846255935700425311644137617500644085100887301152236740575944150124888461644429734026722984973634081448778779791192963441922214466751307948148460542170350188807407198561147495687837522816707353512750513458949745854082713825719199579883965212023717442734251790518221017720791073101340925940424222309854697260411903414878757156440588958866543453872318608155212888201024105288583093466326320138735312140211549572551510406609378583925738094492756329100573711061941116373514760270295367894698273800528292958158690174610219774975891743238257610233272956729511858169623527714246213759918201392663841090354131605550740352433783402242136167028265496911448127679508893200611057541604355746553900727117485754484583512639008766291764242251674031774587827382382611952521080349477335589355421901413777495474860919137063852383268488595520439306648434161249710890927830188970115428541448393763126043959664514209245748454059831394336650730458979141911268135170945634978975346852490574611314112600576351786122406985694985614988022229507336610637970421730182122278800228623087919641422459363521596343734411551108118902145631845568092657116320169010694325913168633232876693477380861597848948037274508554520179831662613788347393326032538250301552210484118291314724766826596018466460301260210326989203106437431819384488289351572158918741852415920561808496707301988950600541225196341201249253721470849436759018906240060649336824548989181237618494641673540366045232001928720716056832437365081197027797823218633582102568514017050904074582793579269637401155639858370014502833636337131980268342646240150601724418487019606518658933848896737248329260242439872824501683849174717269452910282289585859183113209393851959598352302598036075385747727610257339573085812208815493003525950633229601917965142375848137189533584851026020330616668886352022351067764157348762804114940985951198128956933037257913284220516310098926286710498123035426472096353574332181622311655050669307786622571167671930867748798722572290325603471287505797964887217569783674317064305147949838287600312469551086796723866944056213347446664727251138406437814668813971311036957138867787022816700255396725777204629080084222658366326543603091195461928907549644433556947345473319378263131626947930283142294340918241397474550122173074861030161828197080465219184461150836602753699270110399237621910919643493177542917132037895472001860157963327659557077050064052565239433019695280308757606177278200241857828839852921921010560157128394258722382711786707036017888745673593971095313354951865193339084885879850468367405722218345594565925426622885984980338029258345983308180189877164498299576798292862440552833658385301241257919674215583822411085474022266173996713387652918260828629206702256022253244538404633156873564537840917711948782266455010375792849009983650136483304189286104321272201155196046255003302173611851641692025748799887283484590055399139605850340451406350720896686585168333841696049107090918008530957696562767648737798510065732978925043028135522023107624628766368964788830464378525617638595175306566244143213619849672969460762338384588143987670065969649023703512371416877158467460998495669964510113367619809632603028484433485155296940009836217101340941113924141914066354580397316462158649393353998823433786637475333622236883051781866745180974095460455089892528817296327057281258502690681841646869470992752810375147477391719892642335301026645318943309951804483861725364389016517947168063878001438107108361111595241027915881443147974445724388870699307397741931425923498760458234045539304459721145791303409626856318587790686870358746673306006652960274720048468560596812791067804156570232369031527544349611079473100569472841379593164186319865048396090117538984393116109279622523925935560269915337789553332607535995470438484338600286521855934487711192590840101434439236165560806748849367917557972614796983984960734753243590689991716396668009410901334370696428528011442878549570371467474401075158843174632828319603197150213953376961717168407233211946244154129703729106912194137843103338275543074716681065037626569623698822087624051169237062080814318815389703214021695968438842273921060471091864161704254733253680524489783217903948038699334228417225214327262603532353879440726529860597519082312702300219748879277065170607788791509405628008670156051321825634191876263208927439032141978921906506280050015787909667967079265830521406164575704663038868541241980107517497736230904991425891582543147614778997320995566226937292132817839804102392456859937739164710966639107079831550123764108359124983960188558652795094769019091850572418767549977486128928152750333697187267085557122178489953875053261835564723885240294338043650982841015962806413810231478321029858262451486048643854817150571992991975348188945676898973071359266045816212003355831606757941935763186795158773572084368367535393500827857389416554456090004029356061633485130589763421594789472390509420340053085203327675353337877937775526358204527884534114544838138076323860247875603795490081419757419224651884003155856529163384024361766972012307256874422951485939859344508607997380552736370295064730468500724215558797143162650198753082091569834353823676724786879393136819371224644163932975267356660307206668251766888919049294986564100270078258435272680556590057596731470866082462310593409630735588053210228046786434473447751124063799801944823080319069431799993818818785120469721649949783398772517964677789474906237247818780337467518461560891283952412037602481708706715145959844842431565344996570684711221001122994533072474770758786842102883335345512127811186056401105239405506895596229203722913919641503159128991743027572758697141943346356431822879437095426860831642692778167200471136928974079500342673906484058856146979892726326315611991272720057146070908510184003369984348522967182596891281733382273234412387038640610677162604255825467983041030678753021318107696714482758140812379437739347925990267067660724579664746158738504232291856392197096176121629414620381139239819124448394329579126445819778014857964680621352643516786286676186592124103395272213069429934942898094806688534150829380122712127532691175804661029734270313905915414846449362135452038158041359711841698718071040932857744580386708452024146449629959189283028955944690410893415428923618459296510117405183622087547570528176598954516215710595282422373070131460570757330911642231216533772731275360070981501142145516724556996345052997914409172436904539205135894631976479597257521123777174817896973928159187264494411964502895378500657853663939219109377000928907890578862020702622617792246067337137587349674750766253416041892850099719300205404562487122155237911363515516944416866089252112268115432253474017892004342488913854354954696891057118153914045565799783812016816927824919140419829657712276723239301898013375443643056473292799210007758225747527832470906168561379551511512948002402771359966442389324939631910815045850120250794293244138849008502191939221619633572294426166890556810705051580837402789092286074248516167784906506758987987702262428868685636108208937417293185879411278031433261526998419154738349060053848716553976833162946720968439494548352055854455382958762194167584553733155278770231504201285509033531409257605697562666928083608754337299347979837695738182181240583080760700796691527534183893331781994119074060430987121719809006013646299355806010441864248034943022175810110473510569770760110750915001991917100671547352550957744804262587282609763187168471711085389347340832017515680048750677822349164811071087659478775284387781374817846180801472909348860186914146204653341138048765884822815799961273342276406871041529184806139766668873287394928478655891115045776081675089352538471681606341164671906879255134898263374471966415532935145451501519518965732895612416075237856470156812113721025589736141205621521193470790967325997527290278289814037071932933171710480960646549718476954513095779984638475639237204883783998022048100328725369856409644684653239175954341424463251552688999052435485464880134937417506478868212281579369957048123774912402814756136118432266212757933626281036299347132451948437411755124770217239291612675868114297586931846668931134289321182342617125848036993999965021278660853196700903193650746164378142382818964308924432675551223571961552861623481373276199701599430680141314965123401263487826613431132892177721097324304843836319183371500754646796440574785381322813659452884342329489827761053489655392139664367837478320468100289581915356245142160420419151171930990789502918229235154372493372030331169416825925619267194563076747876682626767834393437626507891681352811883376551546993865910983697011096791917836469080356999475812908642022830066577025018183659286968208456875741156601116535479950513260044898646353603180271707901915978060256194555135124450732168241175217723596894384594188603605343736385146473273091393387315632821182129091586111093938927149205366462187444124272506773588001736335990110756330286243814370936425472480186541691917911837345736200082911464024161278240880704174797739127242224547469097525196651713077796873184713241171904134565460743771308566131536875953687079828423495010980379860168346569814049737322581419526682157726473241710270777816054478294360498280564976831395878329812558359932118982827144119053211354536424866518255633445255913574581014975210003048322694425225150882771764574841063027621229971247313037165083687854751269769513292955977329355552433316671564937426446696808784988409169707926651264356009507222406776284140355942820929262114633118706320423173531892763020002898847799145851668588933383033506365245683746492588413903950138095848719232970511680088119941916405206390565477844844210248271025655922300228619242411597126784307925226837974806722544386367872917219005749360952367799795108882687363531389015574598126369554659723275256645344332096888057605323328029727339754891961861326801766310234636425819918579962827300190848789079566000909334857263467009358511114812340592324015016080529459802242599132060077379184914818183146524424100568246090115921616953690549958270511992231632669040893668621388373513640901390732862323989741732371847012578386322699684113962160672725195407364906247169653333332468249157164074022020731869283960375819730269881464677000407404325887021939249793066800465129101193052696451688464076712661166493309527090828157454827583036839318986848465077670423493350209715287218224646224678342105360507413445314119197866360236221459015393745465664606035310581543374839234922210614548028390501179939054178139973681739900334364981358904134927243056215587429553546154915480795452160109854999947878467349756093070449081829385391338385698034603698519796677285065087735277868678698868331637224507808070330556651811069707194022556942406636662265803606184534920667269340641146773710257616160114910007447898204026782651136867334352348386138496976271975336941705391292286291806224307028172129254045712295487846746761891915656331633080320954401663064313267254876367380784028536724447925447277433291420430586331245809001094341014828631384684287950403690037535415488015793441502691080193112261717377753913807579404638429039630699730303005662948727794681316886769579590869897634604276953143757609170039619559617470739879881469992275938751146360089553427417331061225668198159970220234816728510304698849424695082118666832943376823258720362767914449547580839111947165990470115910998537770591186766817501592700303892840235011294955167057427933348446790348302415255945002571656604858211033456724977573403014449553031627942832161230989222478938133911781766838059094948852528474345215650916821234031089208760594212505391991076603790633985820806004190383536832057273367337969401007930570023187742882200723979437480568375274739310234235016062993943230012589904435003526800625363203960402390581393322222473230636781405670190297124682915171729697505484225994062914880674539880117133317764698814512131339217424822847877969308475976248143850654559990047331253280463071861488895514894616465454944886668772243562498633906844015131926016581747093891574913460278609279966088794506088459112645083047771390565074149773766854625804579509764805264837304661284745205196123200414524955477852596662489507046897177890090890264499409482265307361066780932796554002875430071637680576548386060363252088272601335927801222254569835870619143045770501925678493679656886273361119437428574253015861120643603101373845882379281212769220137892258792899040729130834160470138392092060841579154905272365777798742343228637046795328288571292171120239253430250021072004226167385700842512032399104044778770978898785956744492746459790481749259376164985725288718122923539671867666603449568424519384828763768305861994599895476536974844415629558810963533088922538335706185877825560398828358695412568613738917245690861127774547957749681105037365975405312365511003474889227657526300969229366186084377388314483784217323944971543110401086408459147321648876455814963971601769628819024139942133046807467406489041350337773191660674049236317916250292115572959273129236875194769732189637059251424084508267479188249637339458711717045466541137101396428298629632612808493770618764915363867959524958638043460396958338301700723329338283427352964973363160151382956497401872566741019620194420383342659962709037161770365788017548878877258879047139738237284703261816598318499503117368374338839086975348342758909228072081280018269818571733122333600335153124763748297996238002328470395165277021814754473254560209052021369028983157354102316064481944953795217675457533526669419192152665581122102147371434476898502232075639926348220342349814795529276612735886660804189038264989817380034391474555066028525420172504568803431610923175718254152423003255447026264870942651781790338601721713877744702845953861999051497392276097573305346514255143702869461835426216819797638322900735197607048293821331829396383005743016769958692738076285688541883168412785654521413810713229448909522676656172735287044451704616760209763956366235349473902827511002300916098791667720272694455659476709864795681278339737611787376044184365563361050183219222608760084317713023311759298880542218893466179119155379134181496428506479875331971218841324820911207459312948397615821292440431349164575796911662734866314018784228239768785218570172241698290930061640042296753346923171194067082619977239651950292126069826206233219276763672398024518717657201317676284563339100203656077903732831131689361385559025415303855381966993309961308678312552871286641640396835172819332449747989966638849241317603247949098363726483268756355961930984766748158735424981559329530904316902376530712024433122661544808686945705290298600387577705085351364290304739519694365470736846220319330034826362993196237861605308605751716723155785999085929506567216015934111309094250001773848871670964814007066665579643601003332800944487885399468306646162011133132382797085562965630990194050466593684387166348833529500953966827352980998445727982276841401336177700801916335573843708527315577409123826881043274130063440338431213364354099604888297917980375093146689472880186250273841036094126767434557726243045773011772937763361212275264343682232210622331590266490533530331815499883786739902483662095224247287396750356875924261961121593588403048676936142629011715776304183421872125504104505207368256869262059143172448943134727511712840319012049547892124600001727328201660670606886631457673054045421398941931878525614849011545563521348301970974886716209124882724855179028582320626168467201845014076344850054017964126964847557297278191989155890248013230212711051376279002095695641145051425289555171334739529169321474446589455578942974259464670306613074970495300669603970919806025843108870310395623385614170898059410180410640021885278682938686707118749127205761107883568942031809777563510111239661571703536366264351335628913107609632333976677103270817676059245723027670543801552622158819964858350300448530895406887911368017529519343305920194918457678969159889564197300887550809608512491868983543839268704794157930055639972560060764435634354301922613001556144670661224904323163272250833438454921607358104191566815966528083640333487795181252113476743202127977235231956271457531493268852402850058090431067883596815345603662504443520426290657228634295677575376974224459317625616380934426628298417003476181098848115436065975401358263139644818668936569841763195525872930409119563318101252444839315942544384271959902941024513891631672342005713396084395033076578284209436787193921218131716343480455703834980742746097110339248261777247923878338893459014927314220604037265705559006305836617188655092625068811669063046922802568897288620496039357005045094606057183420187843694317092529695004799094766431878371197378201430838480758870487206286194293390446639433397326119360501346976161350176331908346967043697692813847181239342227776244821842163652642592974998544066494630779030242964407484099175359473897128630477594504730139872550389192751389478776541230098707804368339737224278177521369887578543024214822319031550982844025975462302969066402280002947980767632221744911307384348148218036477056999179830066746518471699884128729377238373555736353563603034677182810525034728339507143420920668284518771856682476840215295282626134375169380788181160496432541089925819085949147617645692077306931418610270916043890145966400785282015249633759549113302538734572232648221193234156527576053434819053040414498519856235100857669234009831338887488485138530834850787106664111029489523897346585849644641476711108190375601143501020863519308715378332579855149111454196415408204423142711388566193913770172404473191388666071891401369957835852717178778527760734430712619927007267509816994946994311462955339319577957923378705518447974940471776886797358484195899504396447950037068331310912727478618085842562141694476111893488669752366697290661920566821146150017326636334547663228779209009644720134449344222819745562662364781053989540299594957713142119724546782889952504112899405731063088968579619161609819768612722652661689605126345819286973550760190731418120136414591901740468993123979709980911265660469181873243270190870213396702096493114706161349243148846821496089974700236448901104062189987536594551993503141330498787828318798321397132785199234500087200632762234107973226754154699263819870696636159169688709117120359656377850891181453432712052105267987457152112915894212471787741981542153183038652797185103297831723132549674869198820554527664370990716041320467421746289720889452878653431381384849089184505313293116048630093808810462026250595801219115092528774378386190239972434219469510960618457050735039094880757380718625824763118091045855325287870573252963061752326780673254436220955729666594801408589444165220940177202513738671079411381517438008610995966292899211224508898995418489640735109538741404727726256096186439886630457211794926293154874706583639999733239257110379732391580877116218525865748865564460967709071278499544978220673869667412238256393105772638820362348222988829881505661232953760648786069544923448375461555581917232585338346032722654174583765082147101213169324871022296662217310286234231677502033832907029556192824225256413995754472823598083866580697290328823885695414968700952875880426172744785975958223675650341737863324684482059147841172635155030581820599616358738917086162651286290908097792052870546864201698635801352621457192098896801852803064518216258927367829230017527937379766097436569725787678470937801337583153686192502624084496202743048234011326606611674104806068734190897024389758727547295252949908730790410795699246305854335682514567113621365658107901069106784997649593752863720126450765090807113059323295402902263662276782847712682697885017402162069008633592661015312276059678167359125705679502508665231323199014313697187962840913872944509191455927905219544672634117322196713442595053392513881067605728009767166992332928100415190256524342665611213700806534816956216442393993554341868595125249990059310332789056465980710125188208314400003216550462340054838608171515470183294492559090074846256357171834186609401949330357650279669621413512217181949343721102681667510968012664421729926533194713618921502684797115341075195863889448650666298355098740749000655587272700165759461233177027132610566862117204911541409690125684931450476072598040481721941066712290428539802025851861867550577493621957835442776639748781567325698538767796228215021683869914306460503861902003665812114811908348101230129336371566409750774898222096311748739899296747814979597693289926661600723899798052102885753562169049742639881794869413978770991125565190420204606009317178487278263095734436148979546515719887142946371741234679608356209821219107617312083496570908785721822879659462571817288559595126212443045060259884725260780727806566046737446083099628366623524776781728530117535824943624587287740884698735052700309252589851341520778252732456007977444312509876900667856522289317317542653915643014966623844404161228140156037709670708099139050949583969638642759635644412649083878733711456237702141779456494363110112298617549961871283603330532506634528016076021691786634169517733308359998687766605622192013210185153134821729454676044453012898492036989676188398663677710351946470935762159921079982330487247886156727836569621866873671605968824040413625088647536890856939992830209716802887220471011985721020540804518948072588510117863326891894924696178274858402809775660655190897407924038586021578172173772724623021342230862928142211431321605664373862051272967732432378824863636810960551239079290930678485427167290489958942932566516813089034568230156401286953859650476435309526888854350407105793421382401757505540734791542700167485000602561073168656842316472374819069878718660089180340594014491273562630942835315236835077254473146668601261536098574080911142025164599374984013055691185672409191926089234557640403173378529434141686033673125501169563331380674197812860098545984016572612503736018972736680375490867542775958636198279971280728360048901295096450498470156693394185324881079805096677176892044940454901914813551102843111900251647362814862590251701170218616204352203578316447013433289244914476804952177421037187143152653866167275290274164380575730353757700922521910802402765470803695440744720595620394403848271145495044341471458945211630075466349032442706640402258606172358774249757375854640189556357643156888958360158347358964816844630804536525456917654151143168135533993203099228455229393189413656060188895735129565849513398269299167339631847941424270703273946787192842808635894311218928210643177654375939028109093446231904395192075800478148872080719006194985611732709857512583274790560527902936246532349889545607803317540082916558770425411786981782430408079999854011835955065575156942992210907351409575866332003476052538255463427546609230719944547438480043344054966724091468473360619532746617379589782078315973425363230268115023279547276286889974067596556678222153112417686443749282702698027075377009549977020143798428895127905453877535331450092326774977415533804835041648836128653051805080818921124506842613007490575571126558711776284290821858290290004896425722689994567341485597885676654688666002594872735767425652980270966842524656466293562063002611743692194961739646601325766876443847472102274407124675267249921595659222783974893627843857890725406340824749344863614881035363265553627921311239866306429432655328544514078730487355329524425741138386281084320761869068446011678614417698191568681354353958961759991215626196446745031148434191152034443044067907170430816776291941627148989583734006290880560131504392387715835814146370607548049516396235507758870405740097064984956646886244515302414024130836449080590651890244144896278377101338863752615596143354029130636356236936069998382591363322688425322529608024407415011431213962512220118395145094529671967247825102473644386121497530879408066679705823635373182937766731229284054557082135143616163520932950980087214099776966467626802072311276524622655469798398687046024982189033799473036399802346630258919869841516316633372269604263150941041774777110762910301256099359706401841381448414586584355770661092496221098586613892664899088018254909825727019513683800357850349839250015637758216504045737130704279891410381366701382864347737202721179062258717243548056396227046986081997009454537521121886257121221880876873002904914515620542027316536081407247918105680002705440321729351217405338348242166322685015184664180767418006201265378011164026124148653107950839289572936860380962862157594261127400171516191431443847450378925759199580471811160576072637271266595000537978471927888195043211563662095281187863718736090151642963960336597284285364951787567234465831443109617407957967455489872468684767303615610919790333140074129469828921750207367052886914900925029143888137079180074415760679692110867093819195535656967453807139090928629173081354132344123440053719480491510146539801859251053144342073971566173628381987070860300418631335100061352644440068402882222919268771379726623900298208284824234102870606812928067259693756577606379635935264929164846112775138197190083437094347821283227359825251435972642195379436833461714382173974625654990262767692441524267335711254382313071624213559367507185463162668832678731330878472433808411659026107601068105029206159389743201486350065797814883138560675403007123858374879108483302928914614746607696212146683205709899356160426963625855801855197882156442864347400211425884066049085173916455044117351457759134953252516533329250222405726376095229153166320231973308650874515023997574756511276871745554791564971226224736351815622444987982879734777517985696889517407576992433348247921565530383704415996126999190065861675787567214155605803358224723958747920949634290107865354630413828717002363838811510263417428974034734456606423339653206637337833443919865004372385963568710603097928427466267247886325976819299425730110333174346222037442106002677139377442136717924048419832141480193039542860112790056059248329944471362570470884097553170115347035174633839856003077936061848788149896260806175225918746248798820874327220822065932029953955257923630597946355683881134737755009407329473207004286835262165767750522537230065424900123410826581591935325944659365530251543782653727736670938358550202489179101712686691990820681257035452034657427940864975700424078580459722653773400424491988755960116477804359466487349890808947334218332638904770155193507521720835325242497950704943068350022228520218141325410737630600293111967909021743078160113456100033376733891500966081430316264431139409150963533033843870405230815298247645442604822739129394792989595225109155395970588832688056573096073768724211912741364313514707169095903933004952858443030692526398770626888605524393080485121007601674336624464147351367437101058885650580340776132648026822262938857407455249470212494046275223850227006577136833807800028599144196837554650969873908283787305583682226453940452571622438476812962188226430227648163006645924732028346503306661853209999058455107685958241703286241784799599050283817901300590795472926781457429453374728915481114255763334737612159211853567542617150891990186135821786997810159049163592800984162940176105736341134006285002828255093590813486234657454915774880312909395610566556860172844180668745634455182723064620667306361741183684985228364341476873505344740137640707639798714645031243882558033264260626906651743009808066948957990073091720298328177233366077944649330429521958892278791409264852371446730939738655283001171943503576834996908650774741931008884452707136138585808974244408281998246888117189088552435554353264611732461919473617356994390187356871822710067291015921288035988260801791487006855126110088962474854302278759930398343976132199248691809956143804083348449635479541368118643342979288842591702073896005595852505264482191394484361966893435003467182161033407525591725683180700062692355030937117859252994477895833188436361596656845726108567795866248649663840736752846716031164159538983451485351529700694268951231160487898570147825916621547677373085338371982398006135217930275819316143481178562218352926070493161430321298654776161759887394051224750709244608456944145613536020922139075887102200828275317838619129089203879892012189485290370132045863695233740290712165966447365785029408910601511458995863165182509061522983225196694008426831720281720771779473075441379284250155961047367428204909810739646517778990221968844141356804288011231997039199803830635449793601201242361144682891814422512081291022660198982729658491296439223839297308185406096382469102138013814752119571336669232621421177758128924706493971103873963718307625306204828753332451629189158887070011871482361715024540142487782045271879241125456586477550590762636974080131659224490873439226338258273818797120372022049111246840425120623318490723535973712744817488698189710904098048341045446518273099792687041142154412934582212609133060509743061494529957738736055282260457583329218512879968892403217045542060159599835814857039531053889031520500407317322400347043506705567185233342581055078927502952371832672400773045276999503841697872085641931662387413639417809859023811632154036607445449416522583312522431140512006088938737261810581342671513664897591801963065812348464227012803789018601841553506822867342463693358788984986557802091408331387881197608705006051038394759686762586475557664299762341361092761794168259445986538041639688905246682809011877368979711424187291472648476553695469324459803623716011035137276365669310590656957058436286842078684696776059106187702756072894265429571820139755124892060863931973812682172018947437833111329507463464952764167461130809683021554125116084919389124373221233994956836954949056694876330156987765820515605062162649731789436449092703757760439426228841898630312867208421545955803044825436237350043540658481491199213104123240250505842675687467336599383323193030592908904684257132571043844841620487125994779302830176315890577055011250260925548717225141675731869731409235864788325950107079175390849102181722133599727259318260946873462676100877452325400757013748090384300105601121497709783011926095473167729796700513215264587252688771564368980066446435982248975528197860786593261691582728475202363080850624929755228714671195598102210453696971946700887314014551330485981271936460190083494329564805709614023466998772237020301057106746692548240775627555840926694177538409292422834967192985766630547536579190826327336527492120090186083770901316469286188584104929042643532310216371658901760485233299202622585834900949312890331360960929742863196398020837056381675851832681845454154964381805048708537993414206707942572494732246247262546784212834239269866337422776296016309889525340551116166154504338253622114542124013824900946901338388306407286728885459316396368133837515141330514057939757902642403371890136983751680372483760464028165048402406186915424346110672029733695926765557873610261003178051880121167831169150097817199241968634649099180733570972557788185458241876682662955847960247038446810544664128310239526142496064977901527954896673804367614358972225827072331868927652626690261566194603721643955716698619008300123463683582883697285913337928670974030254338522904289557496901191952025833016575623867433419084916114467828800844454179865724397946238960936488381854516067957398360507194308619630998423024341515488664297985702872103877020449148170410752974454298329220118916960516811460357957173841367215112391901528502129626568056753168056143671856245313914240776588310857297560474368589614370462463433744425280382679070409141550334723723923672684628475554131249187732250131925760699820893986518556634646040476296867054937293822293132391941980185798602161196909209649863343725872553096898911321774259337792364815220475301239883721365208271213131423848208617735774316242289614391665621050373789558358589333865029352132181746448522279665260334476723463963547541154683687905584637002125940933908994570853059373948283990978354283762607639574881739223937886910166175335604337488745375671175135289955937172464659068612932416292635335259334580593773160716807107271891098945264058642106735846244327209402979187497910137384150208607041678057197240120285657085696697424076096625750200373681056415557958555179137542826203225803120810331864863925250947897893445079954106885853502995657977904538591278847430639479103720391590681323376322950591128426178122924962082711100298961371692407033092584796745531199415272903028661674537184405988187675299306783998882016970941605878202030335375886799798250065576826034617340920632020558538334487183332459766038519123360216398122528962184211084960628956873219832243830454749682400433019431629920473054823345618998139975807574673595735680381916493237676788527283629753638412165747567679093793297782362136192832409699907220448917861976973109191470332089443667374244915962168370695874165831545202004804234325731148178209404616666672772819872656197284065650334464952471997703909610819520854069213073441426417961487908031261912540101116289599215148534451990817889955682954959310721345175338089027895865599791028418156608672316248664936171885548210963803774813507210255748027873683621472203720047393938666245276243979802674017541499987444873524429680581730189470275194527050670424765925340673086390086198192159492305587476171528907161393548890858409942291154321375336857901829001296315577807100658291366084394987014574264601646477653642703390050910492475519597392931640663979201672447773591771327115687016573395474549338227501828144517810475146889317372379230651491291270286541164578991963014545211426462094273840111960472240212537080315432761588544559408150388277675679688548543903196523301407760163192971227515490599449351587423816482430959801491424191842362678031348990818954750616194793195217285473273012881304320889858009102994525221338782887340753404744350213624385304582702770174337030068083307999724063454501354513857142793317414363603586992058915036533369973494813232792427573055032229688657084025339085618803511238813610721006318713476752703238009909445435029210398269677712849803893079231764338991000798058726619209781589307021284926421200334770897247888215387881493617802428860942609786680601160715758491217349509070732774570152595062984038570485271693956490895320383965988455030317286331893444695756880183103209482544328125917499485850115000142444906508316121472442018354007882581827380706810531486542278585288759689245941704187857319730529594697542242578903310568944606647702861392395004474269436214442026041648891759484674287330820733278240007883294700201652443618730889539128967762202829599813910748171270070825750210708218135941462215678535863563983925462454468299195949961796733607813764952633923842400618447911091000871613809390104581331524455668165082606536143311732903757239672134882787263655061439910066168114073486733004745254875579969893590163683795204146147134075627698108064840541388388539636201543512143802651265213378036781432622309179504818823052523784752648140373202789666234659589950152550816485666247991862515727669455371166117103366833009188417751648640856362559102549959523326871023709709196280313604568178999512082947315327411534647199043436218059169188729762125241906267831856890207649306187691059889501931658502744223615270786561858670537245375521346893969245692059759688523194581872099555028641678858521669166487000525940110372532768059518727365091725641938505821051326276855230329564484884359621685943696685311672652885669587230552822262294635624904140950997566619658543390227456681596050300088866856567299111938418933621894508380325346312625658626850150721802078716576505853543065173696364078331410245054511095456655057082020464022695356387951785213996589422033172261104426283365210400074639559245903002343153587385438144236956273308316634626077838827870452951166435427674952257835442507112886751156385097528857889214958967261547385237868211154208764154417189808751123851620066849255848566967576461698193688228829964901681241457103231036184405427574530702390706327758626500254610068549375191434781693719805266777133440685528646638305805014775407976912920179312363583558354752845924339057103313995794304897155819139721548923036746461411263699685779331535484133589909426278445871470791558452225135977535425944250291077400307884573831557813570458805870869368927383244875310855863857323472103760068961017816060565630730175674033596123322207671601990417275491125571722347646469943053602979634507443920978515201552992635606098461919219631783065248696488412479097175047288727230690650954508115662454146540624258323129704257761783166364094623228370044161170682572466390827205531250173282576482124760123422437117090783154924743478709044843275535527541698859196554488365767627151215467195630763671321869136666234239165715325083447276991166140521454192959082951301908556353040616394679442386851783136964574179323565698243930703463742592201359822379649552640318177328305419178873125248704789008302945888979365492467667121329177256414512658835747667850890731928886053706122041002160854572210602757821927393928832447715405238695371579838142755178960475337283663032500706148972940053893254519937925241538868647212059355600198846737756903599696412855972883253093879569888222734681295966201386105116457018090194254365877242227573599448815963885209835175335173043531316060112517446805540168966349229797458846138386309221274720699525889462935032988202301902589608110162298730391077828802843898838942175115779665209405018967144752800255743439222469809908746571947610923870541917965434127264429928877086142211362742590221166303166592850602656730787235734182316928316981005824871999426785819151010785715103039027905756053954859372029368158982438824991494432064325250549886348884278416154485139192202869463255548708764456048568248807059919831517913044975031629868393119201899732128261702972356708838796963933646591532785007204720530016842522711690632800489732511311670149967159295246338281214768337801757408563975207526336408523910688672803024920185640345427081668341258637034515405998851280616736316417386608547136127003973282722490005366112276245092713819545057290812550401236436674203512335957161143245539833033812649116008407992521817900987953004906714346985967356833882095334963668603724797182260856418147530226088655753885443307457621005555629020639280357871689883198528591937130580614811181694554449500579184204083610158731203467259005878664233479754463597229349202925101200962983170293983667305160245586349354343823563064490580217364088219891744515243007941067544571951625507240613322096109657363583699650210341239923208014817160744631912391341662900142464628932192458042290755657287781873122798068061205182048981674410927756597149901600471488914717164355551251528471152219964854170160429298916255101011204789537686831837112727185696753305085695628034000426552108809610109405105740153813332632065259193332941929038552166376562747782576298473588462025808691904349409323361390418826575986195811640258760064498174820714713592034835965218998313911135729124998901060558407518207560179662092152250867260056743297815325240465993833702426927514305129214245919187820250843940816529275680773331479953301045155960427363650866208548137685380230890946876197525530168241246565270929287155053414966836300387059872778843684626876455671542535501047527568511386110938803463729397181870071431591280607592649753695286756970996802169325127143434692000813622949701697211969286978068501897685652661217773560397583086082667456690005685329198890622959172451597489629443886078331810929198215451830179620527478850690892982956529454915227935616234066610110672096298773159367816325713681684000478975294138297929065589544759783469258398575209696838600714840300479890633192653946291036034002173238512983532082479211082600059662365653854695723303451275673045102172989768636613347944578447523961389870040602125076434576574848783832718411461261109614657740590970242754218074246254229113242418531778764510890955801693257045525497586403995581662992893959052381085417978889149431435234075892731300440495104931494545509882826380152480407128081879837934083352192163671950521430068046530940147854599768073167999006139751545189268871472411272193837120470981291902615305131838036047199643362727123380927844713659467309999662835011977846155584219148643748078259650097737931359026617600761032310240495348776444481513452109231691970271497500521555449663649268065745620619202004877948514484849603944739780854650516359790266850926590774997510625863618658527016461451933296197611944015256239414076727896681283465282228573955740769823764675846571189069222010554150645713172471421918664123582741286896155262533439906452309110586109552982108834034303070547583843897503769266866684896930867802047976190759636163932158203642040078248348224691779132374930405400468430802963881667525542166241572288017950354730601709670874965959651501221266523423655861465900026021647895942379291020374083857657503404951121876380265932057288845846990786345191266810491221696460947133355091923093214012121547972716030520953318497895387505520283737902543228121045428315642000404826897551307289797350757699764493137458111757948368830314531183619156096450622159227407674078774597501036172373946418740463255638613771307634690214000688734298066809538283909902402616148786797902787735594624995899899239183504419870044288900929647334926894406914576152568183534233353126900865243003982167793845039890474669927279263100025476281952775719772185974783680001767329326460874829588029562582755168888903791653888878867334598559261071537937602130104675392194616108257402668388547133527621914346593320417132385233461836285470430105958551141472763213560041361529697754385019816153866845377404117944263276352623981643869654908187951597242037138044538201106913919189745482753636510408223716425575083550283787304905264222971849327885327588292790546813307232158767598219564566425609396086077419755783951731803176023838915397435122113024739220121713286258552322183063917934051690359860809701698797828250790084655711669758883125976316487877760439949039568940013185715019938791299942000023438184140107320984371903010637196167989158872838949126799722307482557908182962465394557751510293131659746359346658802912087991813368761640011846420414601236493475350473078084017017683539649540818881730970894410179939325801254974233173901255148319941292351993655833829076359982149455772392548518141629378935782095723360534866285912078837062196959609845712366148778318363222251695824430040929338079314336224745868347390760756325935142061169653160578239511876270787292783945491863536839320513140701116984370664667610276073310923194072194152093160797911596131037249863346173129223361818250275875843792027739261987191189143579987168234622856407905944509900902821195423473804809165504553690730360871154218937950247842009378384742153225394295375911209429298919385822833975723909515750046963130854938285079065709502648102065425687134609666767169219491241064225504698872361554529960670343439886401593977944558344044838742010409136185092978963093609117971492787696757182697023081762337966063174781423473804281685689753034140649494420124362809889163246369493157760134882628849020668469285499987821713351617755544141072543964466508181927741253717771322419544962869219719475764727003836116476754575766413259878574422594744815874826048292471183219919615700023472225058555474266527609981139428896026203395542971230879671364491486448009939773577643722909237988518642056547112679404870416987930813887004396125204943441224739632916907665774778965687585369792269491048077548324717042981283864922999707765530558549785572150528092096803994243723025005971164248193941589578958847171794135740660466461256624395257960089236354738667157853316233313545512176508662396868905897407036968973004294950998332769915779552012099006494317583729679911720203439366928299448463515739534701412979629973703655644569067797836715211064195876769259418411900882290192919596859450962550368177813224586254304873556706970454291866088759778907315623314943749031571731543703956274663129703713898790607592111631166736360929816096605321385288837820235172795272036274019362473136728569770414596240123516343128582397850893413497536004608931488042526201298252149998559146782909866197376471992732918631762302657420439745812925251548127586495726408279387598291270286768340560111509920493947427156830953236139305568954925900109514526053666714462025607630653599533074486645366527810915365164670409680409852585834573942893334773187069868558772344984969741689908122964711238217584701018608646296572667286009718767861406049508345597358314520545017970515126211237365533681367334366935234615524932955583095642705527859471753850152890412181957844529540465161899965320436693716688223201909651045199896738284774025993894644852734695949240783436518607142933841235398060054179861199103348219759319044422950296960388203202977428517680212676560778774506855073975445387781113792408127932095914438439128670033566908748212079787269464254380637053882028220316320415088693752030471605218570934600952989832085371434059226087630077319632148968154825958364619719302576626786614812832001029899001257381218589557927503214229419205161110675395912069033308288634079136784992120180238887380950452703327537665035372021725551247567014665322368926101685902762305354023550608907663668875978578176844944514115970706907930740718676233867139639956345105270983301322264608493215657906232619200994372479737451593451387862271696026131558949244018385250643076485712932897930186451263291624207530172036246682079929605253119578889518436069832668016291255560153970355547018513862735949955326911280346487067921846757573627542570961444821297518138203838491413390069726343970385768986748328776375013464068571088754804242434363830890904632280432970234414030079950595376053602126680088488349905829412362944227777545588434412340103547911255622647486776637069880939958499748215183378859496924162502316811575108926901904616636980694777515906183939901418152194269090401921014373642499339780449840547644518910136924880671690060010565805821240695832395218207639157155739291117548361666183475562003394369056615333631992913244541691001420458279932439239973981599094632942296293771768046015554920598487326106914006882116197811100303960286394603386082405220085809255034081138159150815218231144425220704833312476770857644747411502336081258697898044524295573125480742386447477037448436996596356698418829633178312314459569265664262277709842131798803892297032555793496693587924887523347240417207971799663350897618802521724194297636588127253046508672251257789261706142764011288996363380755733262406571461689481364788562044682115358097474179523148948624949470784131792423180229432040964734546459806771805550377361254198811853318936466939882107767733865627796284141763176600214158130026794137043541118573597306435556821336962152295896538551645327606879099686692347640686416837596168904892703682647511132262645621064680853455905622613174258894558082318894574773410125729527106657612040779843897037021197002197020570687108026001362202123078838455580409323866999073527868726550175960209900217075497141242518169083067439520755917344464190396780502296095702374324607680641238557883206625380313010404458376204328886660524181489620976019068772728554947671187910452691195578691033261931273368069359304305618538710906822283771406333663130039328397141133229512597701628741419441968041511419522182023961659304159960075149097488378165457920701120460543299873121806207789956989703321620204009560743627201615121513018858566881275532059432965111633604460160506412612759061099488018641348268242539877831225084620988976878359256225416453009230641826384509401962635917428195443043515110338002105671664205444037827255296324055020367444948831229034746959000298447222830609841375758441858124755931249295109610729305015111506326146035799508460700126459603280571612060628833166876158497539294729377768441230824419176504525183602137716407444117084110973730624575118681993472490540339533726633460427547866050919953583824092354851832013709196402144575993135042185449262824979504647098875015970167658623216466477765729214663460795952366519753367733801904986924379822275327388570640652418985373504002912876108173211285115524232429699696800605813025658564741798544085068079924010849390490411823082352625796536431095916699051776469220441602361706547264087450333315538847723703873948061461117154862455000794126526488668255775132989438988592767341529893563566601466603137007366920762844824318686268496169639401448754305945892587036876048543467926976333866263599268569658832146169311756863648834572063062504656811646872679702664276928650528515871494506834870351714592119301063086801150260850719321756871307312558024576284389122875111631968839809334827172232062891829462395098994801457960810660457720295541675343193038453372603414829408203338037224050961276463832190586629874163292075203078258103277737488526493197501372814565277060617950568917237742701083899388952805523804521958839054702889606764036491081806949838364697124613092127370535488364603613862328700178831291063584587688811822289194631101642481335231178430789546533521334468178046118192061167201657352880893820010253584825719966931115758841859632219746623019450934264444257495021966821950848659532664781352658641337702416372394331788955917369518626565775580779000315000021624755228841811224132713715404568742057272073492512336719777903887329655733017301246296524956789439140913008786491874649765683969123652400854779848213119875873065099030040869181026551946685458261165786722106174464103512116847530279831142605530366054633189675818363458969582113152392974626265564538160926131707859208651256416449517594731496456305962322419029834746116053799519953280401656758335766208694627552106317127070765258528449433357505281436447213493997158636521428182936098144425077414141428896444858642270530603638173228359151693125088870941746736605739603586833552521468912807022758180184279749399598596328535879179566331256987761558483990872356016335146328189134249761057086176601373305176332791546743488676240165290743503234308264890768584648969412054335459761840068287996432325166058319833512193920483326615670504060125678724203690424015994400505925333012643710273278114063941084755731788638514779933590109364175360094894594455136563395354283515336878730014472635349221295893681859553126275091868953895282474352622243067365036017607329958230979778427269869640508269435631390292109987502264650108389261635373741634352955620008624181496021633776115658133045020862175696796111277178661158068882533709783844997229381450327436616336758444261777065542942260380000524827011861660755650580721875769824838144248261234027085472737080598237494218738269007697933638958742324543830218233889087186697375594541989868158220262396998925152494994656590468302023674379165672739743668619083833309562802890377546673917297459892595110458261654772381471296616631403277307614524806423498261994306346566552151319873102229852390449436454302741006144577051760230514310101760990641468775323603049446676979928329765120005162986226564508470810346098389587673392832145469040787041159755222981966608304041010953310368773972743319157814731985042631611076000613614461294589841207790546103336922363749143334467406040681024188094876155685998892336806917680197053008876522869147765902930498835437292901310323107816888541680991424834608740797330103196783021209988755431723314171359517008466611649089680496077537874287999451447607989163418239201510915573299401106873373223989957433338429492107926140779821299751969941334382307591292094610077321394878481247520892495593251702760312890893506414116220415723898891199013421194736333012287819486646371131491492178828948095257959275547844126144600118324744535099548665996079178543227322485829758186028611886936713449534848380452426375590685962204308537646911696357845375665265443469572521660057156255623596950399440888697457751355023186299063312555336502345038909514112157495653552061472250363487031260315166346065593132128700140253486016193663847148620536972511489720368319414940643114690909498369176374472465194292124654620116821629259793849936416308404206700404793196778544427869316550433440883034924571952753310681506124957055214606770928407454287114058999923824416388719715230530964169065642145503650358357969081546898157374587599137631323988627516488300629145051456747803783899311268066709655048851784499284913807028674339301839215360687574063428103837185755604120151512696708097044662022870725950828846985442455588202485748979012650751316471761856016915302581019605163289927507341973778382431631663276880139377738646731041278529062543113517892481515126492484456420205512670216396376182819722903337882236666511494515279696143878819040162059017635909131165511852169207384214382506606749346241440725595528661865246874977390446430870200914656051929991535117948433153977443060883355089068482606346562425486235133858219418147735364141158600319274014732503846458526519883384546250732709123728663575083092546547109656573120090586260540753488069680122535702179484841680838133032725921733139097387275592707898762111953697647925270131727321287821546673122162547525189379372950717700135198168613948094029805852171946092261418555192187446472649952260178427557116246869362784094632461165561980173927923750601904057436842085516083928356451070892620900231705006303495948756061127527393042496068991261167678047351968928939753039671275011018467855180340282311239642520894811567544652079619944954375081954962436765642973242328677760959191566068158514110131573153314699206638747430474495030679215818443717253973878149814699014695652751942418926184448650149871900878345090804921314037790034410422780072857025901638392577387665794144752108465191015831211378292945572374415330193028685630893282128487275179343319005735995523634287043399117782827124813249858913714300488854821114583231030951419238120568801757809092783462787099385477020042689387121915491601314941708330620749903637858305130959718176482934511970686987532599499376520191250149779092495472266902888225737641293357157216063855786997912492681720883851208566799314339313389991557502173207881390249629317419238935469089544046366081033208402043840823331633279997603582880348016038609609673549053174015381941970587807626264675046995821437118393234085417159839085678343308367300351869502407750253703712769963481971553161894167238450303818365375008713644254008903303302380033135879146894100375128462878649654995217462474449487755589606745077181120274932546666524372821397317556564325428789180590328646746524217664379630178310340756362375876412561080988681476277447461109929150443664376299601996120665356118452533443175527711553329895049135745963344145377431554121925962926571916925917451319935989108189239477203401372214520683627170773302532224832266901634663748186771410579851036208281648307427328753929684703111418445930058092567333677849447215374773464854892982283220793170532593994273509430704918676851543841064856333645812838856723192480253926727586036640949338131310147074351831256414400401111418047719354957589128936204684384446431238443571341158488373129638688050326779620175780466853792088028604579748330998009289515605425364841978794501466861526558608963580848892143978665216755049635875156217365065726030747285242483047533742788722415784924949382919383032315453652871821778846872742503167973068178713650352221435320827794695161930245997880289271659109746538179932313406060227466771230606587451217752703065386989254610558576889195112195676928437024020135371562191646217293228260938710783186240112835473809221929126529790034409251664461639301786697588551734687105061095689804933388482033549405420094560276926096998860404403350673994180934808285587614782785096351784201346497879591288399843282955744643530055070114179717193157642828404390352395180958156081895262206481297687272748039963429823305529269913518678773673453029156887656696875881337878516382562418214802969228035794055313476223999558530541479802515428146589910265456879983072450946819486794180573815391588482101567249074714999901226149656139029978693434204287949558572713359600538603420766427861229687126049496072334402681679648680918930109163129668673888481785245543693130530541058877836452479257327582917498490457550410210673198938542703642588948374052516137993091819590082068132221303109602490646927255364708542655748484026188792001620387673004484648869126303815411725921602553747987828908923089682858388325008111441674070377445457093265025124633434380311132442920219122927380158633213970127428536156967182985740510805083361180417257647014525493482325072456257358983635229368390919340086126771193178008885027062781595974384780479383481813573744020642609637103823304042798823503377961830536527969633525550979645029187753915020711134170731706037808567935549040331611141713762544492456850154101295670875770396915625657704092483435268497850737480390842075074776084408348036354342529517252373640564036959829222385080729226632661477133013021718520199614293302015039855175451975613604077871819140490919171467164731353801820402613125501696140645221619918606562137529138061440646376118531575168241622679325839383616914887912737478029470677824096993057608900089595135305798112731364958020343869971098380088112252944465721620583357158063867347815879039803084028499598470990566869012521199112522250613939490420842893912974620968077051127346432154265848382315469704701419700558170861873723687028476662582862264766828732780312117161150924678051268667379114927954538155422321110341733372450546452124130096635523785500001815361671410307932295630019686586543940592997335714042288055219543792043022232474940473649414290557536878983886939004149116561939978651607125449760084718930963208786158598862554601346884546972459578525067466744320820115282165875536641688878351649272983714752562143535435401627702092289420044440784750599306766551516304564909708332222756204004996458563886262608745452076465866037754885355870177335921536250692925792265175335410112898265441306943302068432651579826684966094389267880947131863564426690869795038494442374055055827281358252303366663206712529589108891800516918119039390871218853920825212587785488569894382060375220513259894059211781021146574868962963889589197800195843934561158164921034618616638070274991439534298013558700675684164359357508725635011708142171649946272599019559557938276039582590181390902381928496032559705336294585395252210278315241655450411974260527603403726102564014364845813521770827465025768411825471505891897427709128157806872354994895547339087548022520128754795548615572956907048867373592376121091882820993598253040752916979565488244427028150534619613436170010410703399002425637254301232103490136150994362811125413143079339048084214666437802294425358570914396679149222502926070715160945203788273026302421870041204926338412844565771740903828889680140580378450314084500289207033896419263980690985531624063366931758443175486853041170413130543673957640239297446160796088621824444268372751795318398052078192670116356476808662209328600491783296807640899383443333924867925678191334750137718340316805813930412555005261644765262357575087146032092854002389166257231896506814474979792858648261674606510034276019228471037424598648644965428978855663390173286163828197390980334288700542529050584915251724826823524131379705393750709841831293421397108103589038857206886228900523388245195018305244123300383208317086393028777264698089622482678811389093337963285023490034345144421653413037993257206915634907674868229392103345139105383049020882075267407358873028898674371702645695775706484515198266983877619613963589038090822727793346491531072739249310187669725531440549104708799201559923979777060636290122955439850495675525818841098894837547015364464927560695041718483645080362884771508049173578554345333147820174851018559004797589271581852791574618327910130243161548359104161427957259498349554112351699525372235712810646046027821857223290485213064335576707431063507885434231046734546832247963576177631824732210488667601317423254172818697165191271031468712559342283878742043589608116353547540291016241962908301064192118722102040809771093112670315964046697463458366758654456216729018914039695363337878001700595159348679087969630761847951525277735919753050978052512328354615421179197398035338376027562159811714940839701256761480344844590685363775307313382919831768621255972724425566533082190158130605832193989070757381680206837459955003322149256578684642704471799185721145426460598134762315488048551492665520587691351297194429732842450793677566598461234550824880046531973387639609619350683897609729750413529589475615517803609642151155066445468593958723074135198850257914981316880728001828081678834941263586326088037184360342197449150017106251920311563658011348942107691424721460623325784047473172389011156607518039695051495678830716625356022877620432631630476306276401733676343331541907814234143171547096339541121600868658626378985238345815002940204566438719293601980598104560115899994732516149707452871919012104690519681022698233296873507957752019045285952397794823973908252976559579657695359988643094465584516200818276156199895228038813922675038109616207554343971946862192283081213469510788902118133844041939286879234515198283662968576202669004512511256044963696953923789443334662589088818502623119504784048291164898950392468021922885800465859110362729152251401912369399862281880009597425899481884392208137108560608815378427611516012910602901543425841384765839277089856442750245267114528875957722030424892836940171439910860156864901989991710969773499077856350324240352981658182461400371485837887746580279204246570087677762821029476008103289110684178014793986145998389301121369298705405654542670987009929114795231559979024323797830354045848117917824491622130722872342397040339541487247832412068009729584838784357757339645058121563585964849323644670495817244432808329649339856273827339907251589362358452742504206109728539858142992497843494642280318262618599446257314394650731763877928291677754597097590512892734905030085961338338878758405630537522714560132151119892675135186344742617280800837454240364555941792174473007943483730463319864199941588941936095425182503281620527388872723973123577123410945038251655722498596764371029197448321741066555605173915375911244452171485159170099057403683908105046682734126827731765038109018837889085454825086185433267208835758028604125377157185653555826350132769598239522804513139773834393969452146848801532465733542959685884141467760882786095618329374315359084588125061929806771599795512915383713774843621179281392667593504373058748384281412489337888510816904192458969211659657246341451991245067469818255905715856626544370090599702359464210169734770787491312593355308756456491929721475514890615563006263493175850696304273312763355417568035930191033831008864746784544343040520405278739592155488868790194551404067579869488354887733294789245302508351855382898271373582034875665306448552928967945937122582620454814782576016506092592706014880017806542640508719048890162962520506413762411009599214234697812281655181140801659202825435997933043905938699078671305292435120139274884626655593804308919941388713076066879293140508640166537372567748050215074997423455096387314458310433423706044539728512278616986018191422555675048640795599770929939402843066140383919238375424638677494007789335137374561855905885164073742768423745225447121221592301975871136795410943255424690055642967658681094544367667534219271035116753623734668539081827897378786565670878186214868797423015944257582221693282682443487955092971641060194393773626884221069787734567828590255514010578342893159568766596004796435782618415238738241695338806989105448443204330424801700000260410381412735755049297290103257774371020343687016175282207074245987528337087175560161369563768280929672722825852678545651438509732361690322461530628352090180622914729131081505261545958149068060416694733117594329414928164113013851435681269803821564588998081491244731236598464487364614028091804853826200385693152253266825633756430518326176814166337995822926518736189752907898084719488463067757247361207855579714690936865286947311020550899918873251026060398544808117247508624080117525571109808438733828974176960887540275161231520378451893460393443696404255145113943016833800458972305806800012667331304281227006578097715438300862488255327330157441949491163597870034089962172522800006371012734735297014023510166894002204603456367937842343468761601556451955037357422762270167313239401165502986447941087629376980155900813410764637523328015874491422803204299857626879234769165257929337150079023215166593432546780650582984282612440127267804818178288349847261133842682649583187515181858889875026962516024469208876089808486442017839635545000311350350557230388451329981503297460025401462779856879407631724025117124849465244597685550910383096489320739979417946714506535101091206529306200870697336524705036991280390212778222892594954226539102661317529633805405882850816141870520942820291664107481762667417886607451768607699931293685553812877377171065687442439536352851475716017859079831817034368560568274516803639841012548670575034274860382249424313132124686328487902806522001069993073661737751823710144213645434622304614002595039088036223839449492965296288270037425376447906411733466793098348213952983392213802061761975975758976352108217020373484762507319971659652748369257173534543492065895034211841705007210578933412781262789508834831931255892667866906718121577029637500778142517719544270199213539349375724867824668510415913694515743932423011295922153173426961527751479396387756503583851424520216991661899690823451836363080205255825767088369749104746808111875156393497070655692044568029359437846637742879720308611189746073317064527248733644094570085761043799178140571948742135797747541929062712852194797324165783919253871676687933591000646511523728229958809654997664464192978476849264162638315249053499448453330668693176803864988194138752883190770904024248823565762474405814161009454262335171034574823998056970359990161310815680092336512481576804760795632619149601585211877899401778858284759483562570182058239338069156811643308015882349677461201113264582303573689610726899552765153889596967130384363818764038768275369094081801853287640945158108930899934150619566073512541479765745973238752061897631508320035211716204636807051293881351188498727711249395514759853221208248091298098864312649002384157296970849609587009458761294725840043474651706069320336868974519399010429756871979556356355184147911160443659592216465591706893940045576839640087740678967787598181022036168852526820715540143912829549473668429766123913382361626796843705023558357519913116096933768615310791458501728170415759705480676645767856284397579109113511401434143599527882038209104066909062155632576973578411790180162379236549440794089489349621082207256516314432994355751325811626541601840651101613733339914235296823128486611109364064207881782212720537955400159216476212327427258958047771946240802560713795141667489898376728527816454600760045346206079352223545130314310936797640690417767203177807972393269554659781812183170671770735480106742403490735312852431004493268941331710730006720014152203627591340487232816441667924085318512894187136482558138074380986877502036927703968605305223216801623831888559232855592142303477493722262306183834853656802777917162424055272351222719238815076386714682712818145809426211522391368927115486273148911171362802295207441397088579942707842980193314491326281476303669201433724943460858854473965705712503989464896161110436666587443344172739161046714509362105246804711446250365927401724130437538774377167835470549086904119309993003009715915927143408514225978300977960123881380678481507616968937191094283714936954786175687750505722251707969681878425260753704318019814210722654040637313296639412866745186783976622880200635947095412992959051854481060489819882045421046093895255837210664447633928664792538804476749158163335287416816657240776612058700347357305648537298482168528231404150930933396732499182732336940283318835061681588468181724290528903241435672253867221297690685733610016141180785200170697062150589907267918023217276419331069880130246568006449744713165475860898881177594680672194149142282097524661610635226404278029772414711905032424500386348213791834956759568388303746988164967353715564740390286386016660163642551505927345814269283403096922169748734881249351951248621379930348034349833484170220243932646062140544485569133109450422629430844139019140597612393442542370757638947825416615282843053019161333733895620742279256222761038516098538580840370052881241720696592153553776062895217684564166441897028985942868542773161070435847303364494967540070004717407176899350060182369355497435054552293671628513286332253552535103893311580779047909104194040320699114358542788709077478924776955038249567442417209509201421684973693811059584142055716044160654113377433918698311503500693209903329993434123090433916403762733711670879842396175688205646256098218585007324020921950181352362438667319773481148005232512762574485376239022050767160949618157289215523728235364968252669722639081450966904916685023655517589126709833382930660169744679992631158855998110242004855357667960875059369010760027961669702850587177953755528412030330373145190210888691912912205009111306963363078682985455817712454209624313186697554746503254219779402211486810713901621609474798335875845367980180979026753557739819034581994780879893542618126511930546631721947546148883562365774402995321890227675806024708434305008123875205230367473452275003914653416813429380306997520302065763737304885372421741727845964675656238832716744602048991919146507789457581692134446056145538772265263513121754071029210944509529872049429950983873365896199970059790195817429065969378459330594519645499138779732849188229019702480604097670834278009209579447572872937307750081129894960003380628570947156031225382145031622526826962053533069562704684366399180814391592836633779080805153960697970086248042406697548507882829827732597656055744612625195610275331810742200399553037746141159908188784306974220204190068576269961663166918913215727198443592289134059239222067303319539053830371652976628134707288868855882790276151835788970152175111502159381171814576089263883676791196348720941754768037638526448787249162577963867415898392893075636042788984318776688177078562049955214111688482978743443147080781249639272004580948494518873076082636845514364505295934235787985360864382575264384521019858904625096505986804247948589737665456888011812739153586460559996561429993979494737914771248582217647754164403314604497905908378282921711827510738715246207956880781907336509119728759798133769006142271799344722524347742483740536463207824918896705680269484290557593593078404497907131477085165873687215349737141639918170824402436991980117637401279453020210099795039289128110905563717521071879439121027103996720352887379084488881087683058278368788596697229593034604164246424707214981690512818563343210145245141256539153484451468433554856306483218460811670547085376733421751975869004479729256501387579982637790640648730031428369563220012412702292119998982334302113759470529909125397302484560510229093205665447729376256168851153371583830122438231625671475668811669260108404004090192878375187208167289419764043257343342700269211432163979385487734028570717249878890090477470134764055540308264277967708246018693538671388226310289072597939742711847422480326099220676419046885576743925814045144027485318165329687751630029056376718641512836920931394414050449826374588958676178280224555594253627916813195083383202919958676650882568767118773180182873696741256670356908702038859877749059597577487555734823557622463452385369588534878723458331689730413165685302819904807358393179966303158534402260983235612190030037947961647435820717098440490393804060018469617291150888942865586460114684833933158398014364639725622384302929315874634340806302223172361938379530383899620820205600101008253227173958985792467764919616978386973309861958798222680507318797677312032344707734033459145319953648086495273830255194251278432706132335812496783784984926256663510669179674922618765968409268781195601439542230492396021445609405869217171205770263542055227780362532475891845945029193011621216915044870849343317548016357946872907880305241946955572311852196438280359173333795351047861893753072409700452367383086489740429487355327371104656805487364929754779639166505233615763261145003893976831213887343676601145792409078010556994392523495767594689171660832502260311080018111247883605116665116938612382427086665607860207187488283942274237055779985486835632730920657585688008906685502384465938066815906808089023756468909982859553766935673515838268641040398236927554667808245388092624096382234554691290029747940646172175514363695211552931566783584855282682310150397014812171429687850039578051363351230178349876751643851451863872576278287045098040689460058925236018031819192622324520914201634338608555767860196107860774984867340569514257924273399963162791951485895950912417205353367842550197916402945673354537859026385721992353202209867322681564824232013561929278250365093642763167710655445934562215640674317926074124387522345612554034107419602280146805714095306932066661365713077985748369880910341581073007567883551721788100085999192130909159137002176574836817833703300218067123372303101242627590146515958461936610479841306417615976037432472929649927026891294315849477721231889171288175449273573734200119345116664500792817672719646551679370031831981507528631812587565668138119962552758433917236525373056994629289981152700025590040915508846061229133066563345812762443228082193734921645116956359076897232994149672711857777882983144661124925789516101904654770423696057083141036630028590611885126567136590225492046309655532714414644920595769715004014966306269922068533501452501774883448977528267111228077837095426067029591971815253754511437313865908035711285188703947477702335922722223820628536828035498414771731279766185210983292331920861598926216002564051737060213220755662291720006817332036395097659662961181940914842293512177725369949629144018931744322786025780659087950036551046117218279196624190425443225428411918066485678430268604956092447038742919222078454231241095789141136125317091713354115412341791827186539662952635721343163185497789785621927555084797004388498109142786788316498529800724769364184578110523105028146656820025872067877424511472736824171265238134569304723331303879409915422208385191650953503530686435478717241794795511208626191278426599412577394857704051416099891186936506694608385969504246764742954733162285474539736052257093131134120774734855463461823343583925692307782563734297541590791493974645206479498922089408532010844823578903477974903619713714796591238547290607120133687532388825073021526118042565616446541018565712979421977810282477356841933885889239250513376106364627219559118710287959735908842867158302569662935424560195677296712387213786161684982099768261720866499892644635990492409697667929514481243381090789362181144823935683843760478765575942192264618442357281127420998581514970842196021116715755804295853542054690560763935009256871350147599803274960987823419654968585516233694235267538748024129385333437366514234809212786193693653201588022214566770874596259258592019374019134159058154884693704231637960123071931469677067602510974699934133902150675964529760686313865702970789592362504516213276391404769594879740300901681610576474954011217009977494008864062166887399604312954764925215887891513892863726980688370611227633667268837959341920407964335138702998594514529504903116610999716748165808722663216943000265763997321561034977657378989773675939413863898743350930459296112301601342584475350185974372606239053538317822648906987061044997302050303204979896298161823826347822154522701999687252633338294498354380692767085699131640315456443345025653759218889413685256080840188044544734782031588273991284308024110407732392573328955320800073303973202914467994734861323318939459654989610023282832317818653331273421151689934835806976942283153216387816105244462191331070733285851223691960903580193512899899837319350966555005188065201175308708007591728001787305355897373304578965231109446547526394073948424878432851868890204118886555091930266794908036559094461985464024517271967300380253826106776179956900750797156850043526117067030061852275712546607261415199644100905120971852120649469216588337116937371859039554909994742479981249893210525178648880361925123145772130639726322767980265404571509864330540272812334574316242011260546799533852552586992618362381794464400662452068146352407455894657082204746356067503039221109701294435732202474119673809536754054721160064619164124234671751796858442725365565576657151351770409677582771735881945495192814596238022331431676900306035029947988331077336164717305256974392205428284203745579827592084133428151902578505392536280545228209443537236929424279943173153904999585305893671370126618108909969951701320722970329066364428215141939957968847124315940892785211782949825887322861844184860830656657148546355300675679859520888769861949447873504056336281235631737607839074604391637936785561507832301348401189004633855506343796830370991846950406698378656021677870261980931305296112958665712766382782964695315683682311570429021272038415059973042725700741424877023411082094564271385685686011741759276934384371826307930107181131963380037109635869663839525377962803654102962358689624385912180647733305511357535474761271235685386515876719679686021241930467547933798380146515724656745730248107582492316281702505894512702728103013178785963068331905666788491344266262097002400138113084071644225852825507882909712047517682406237353327030854362380464953701670441355873880263251483595000573931348113208218391227744791480835699236079199195426165718615783819837736391647250113089337715891820203141569462249701212446805385295993498695017756019109398755051060412922968059821836333095300374504704094176550016138249137638688263648245380392841188535377762534552218752933403846820479962024331249796339128813072204957891723556646302585245871558273582743211694804860956044662747375944601527455929999458215534486851207443273987659057741779547130209468102293098641293865591935169430383907214115872213902878653626689990660692429134576427762405018422425231543826452367758803237616797277802827362190603057046863669162663959613038609600828573652033374963579730927020402504625382065719779202287321354367087867221852699082432752299576913141703636704585669923245197922142280854728976214440034068264501462106224734454747615434881735872488471482452005623782376749183793681293756821979325149768159246191429818589455220563156318488962032375653551323248840064526167763053737872965013220984999328011550223841024056839509943629517821849058946701523612376507021825641972786140954033081584857764079770250582701772820056305708491719603050957369164921023036143991028197323271823731485851890182981328169310624035897532408484413386972930420848193596468451674929833332312962287620997431321102021701012102968840967894360299163204681848609866909873333195420139212607931097082211161177939316438006377594742691523890933167738254092819720528443271529530546101550674924926161153131013726930566791833165510245479087971660405454270595353226331986029326472412827155015262027820570448715844764301225276691131471879678453974618393363975322329763354218127824166420288959005166653168490488500550040886788986679632418799692848504534743910756240087039217344712426530641431283795521318955694543942214769320957236849890755794557514266026962777389327981121201041541823524681714516181324612023649529937360401492111657124510976238965224621198839563731724729592059199293252659102206631286579014726386722410446113905154380587139715274879174582290394473483628078305581480133371788995960210235174632310315337311528366884003029426711286499371120141724352231450357864927622958759421731796700449985631302274802782333782253123701816207492782730919259202709244197526259533080256374739332073155437863570445653337563404377517785175254336685971644258989343101674267575708075882658411005079143516811167638718285175249518839549425053789561834607142024260586554115353022749465881322985438971840845440821473239315342992674219890510356013795018912957682063494897146153771984511875253916526283313197940629171951457094450936838998022652613354052819603619829187507476421778824085297654558737452873486444381558661587927620341211204214692311032836565768546903611050321849297662890815158136182791678704494937510516057018715858383572679923660282362855555378081011337000290962248804055224837913604624971930561664000775986614792462223019756803664104265967520275209555901770279972874468871018130130098096355748068115402200749035701578203960695598116584425710007991355410651874463802202383287593953427341894613521299684950588987369749409392364538876017543062298645562621785904625725710530420245916097039292883166864307031772725181048710037414380239119844145843826041894528470467631672530083834882473596985394392286952187998402230135889610744908555171975263669994059637892856954951280256104193089145242871632836025365600450015415199878807618674220086042905238189931478027605853619600861350202456005058074568268280155236498368832208783108489315422717768538106786906139625447074417311928850711533036553441977310699791649342419366164951094221783312301860962017072855896614231486492250137128716027575855964291508207512238347765972808963590649405108173041803669463053135888909901475914299304588485650532221716576409079138199568033033913596726303547730360318458926163984301069556670872636069398877407924643899857081097283983029139712599555861315943825817064511478660818979978328582307658122482647642896654404960718804143874665986589162319422211030401166890235628197088823773426325629090020800249513652497799737338733120537685571453061378994228044529887924217977731950236822110434414188970886729808883320595889562552870586271629420740548593940329158814672604405414908955040490269779459604685435016165986923732516484752792681416321033156050598444863175642399884015001356164856561006859340577094995705180234415269858554346066411252620172830448106430957871835095667213019705207840089387733832002961555988731974207354426396839303488218399916093421285972329097731640519677339447539488022063607654338620044361169707064564341686731217402727346466081965692346236984670691623565348448722745349261222458081225440239095712878299940577471465103319271693464511504157480022623623706753329376485969099028951874601813342572338386222053350122846227353789973987839847517054767378597118738213053736372626614777521529815807737621814886041582194660753291388293314608675912496026531851401509130640074263870390553452818135505214319523513149499597674085888197405904310932964544200764697310731189212209751625910283870237778378610066127951852243202963483873790841040908694663331839363769867752019992346434974034608794390985430146586182196626304559968657192191285851969717981377644600362776231820600226848429323463023550254916322838265872014968602700293571868703316990167178983346276807426659286189665809807585143370977351445594590310592947285321065656350176640885488289645824921642207906989889754346654911002605806338856936337780156336650466432220689726233257834255043092153702637597481954762314345440980725113101760419676934598969132026447535496361553661490229483771548231605094090658941440828138051644636746349166733836813208962087964689905982511379873150796743805004863450783159789848632029279862371509446777954649033621878187258956481363625130747668796274482458599903301135938929281626204188722064030025403565449756544582109634659359755611011048069785436650403673165900282921891467551580094585951998973347953084660116425637535868040368556104084890226215833507069004917835752793564629322297521024763348027416725984430772147256787249173113464265600349889641364889996551099081019332944136920514572812140612507794371267692845547407845040090534219877179948412751769253289971856401800446161146612599613365711832389380905009706549426253543050134864918479074064961995276656029235797051503383595690068974372916798248651981122019955815789470656304863977616096484175432524098761565088278286257371626482195912374118494002035308563155252514715505159213464593098078015627014623877037446154288781733673337769914710788015025872391764861467072824230071523607336681646772142192019480303403334458199444198449692433337442491970029558473191690443613440423113105909062216603557544416624154796024253790887837747393337382845515659096242878010366346694046449577202593615797101868921446769698813523168062766048479342325628530266573323050761378149960763859113147309615799626814632288392719592912358505930889545828234352024565516940941555156182462921220954188940322653859663962577461864244545009474641036352589923314625993135514444128949200792871711910689899623011672210564988274837986140876933016542090907743760399407638827476201044590662443759586033327977591610778841093381898739511027669985907337105812982709204257825332489888067637893293038149171377796874374900890960206057731376698286995133297681366840677021928996421602985797689805158022448689139262529539124926971519883618512746941555629917684995023689106759473788176384052431730143540022086483871808225361931279854989036070925423825875790774473243799113317644597564458625337681947135061365405707570952434855941789440479496024136305244963922775302118211206173974904171459787264063853913997173082417759830176299775531602790269333080307626876875265956206901974581238843204890924008464050039163916345819190353934023019791395373192733727559271132680660787293299012241026952397263190065133954509254415636168311488161388917104977278226116191277404223384494857547599843730203476548043014083844962436674705073655590420019983634270678091599480171913724348952076063712810266987836345793243103829899566097956141904237977332168621210794725821230403307114103243721755151166564996089456020874684060560725221747171391559579005571958064059467504366552013639376052537003717484447799224220773547880412739009249136274195757084492938892430645752910297917497964339528688046907573055947240436824425704373238677803869877938187768933592700687906145487329020032716316729124610684469913917782231886318986305282799011875454083255817265109550228270070987582950176496623897029359779341670624409647740926891694338654141120023218686478810721912641751587955888029781664608330916339032213923750296582625228504247834029851293953502643406668034551776577382850871104208077800977082668735434434358494712940281409915084523738684808135029898048380860352914463221996392831971862207674362260452038084175904087786636480774935432302545335125982166705324639198609343347472015118408030548761093721409597750876025836881117236505525382256912336983543762867768185258714920681987167845575972029304524171968684230039446511533161854359839562528752026746151362043810488528903019786920383124013771723625173929769092978158405253735814040814232063592832879924069933616715689690044746590984199055110284094615696792022620830790391419246862429494982910290703160646816597228005125889491539676096289501094995305170880482894047722345972956253188532576664926626043335258103442979572921961509411940611663111841385284825358396374263068230280413051777533785432563733673176687879122561511259571310951239959425900305105982117323927233830047544993409691181223676720375807191321824035075300111947629119069439110896123149999861242029426472972921705634138241669566783478438866098289048710224478613013786546652061638052005134958244965399298590578686334450457574093664160734308458364002873778745229748245944619177253380600990615579113325997862158536909766157835339002635538348925463472607613315082094483017701157220571032273236205040918048211522260215574344786854988080936869779094101173640912312316313544614020329378755681804674715751541543890865934256350229885079314707285221358587056114459215928903806603892454967264999209221075540863257613160876559121527738756155780252630237538963340516209664428634895947884348833119950219386416280977381238660181099996889208802143801411812478903326005544215497458842106356186147720455827261041306520391273349659000460467938534485765153938070300572041000918028289917732306676560659381971308071282791652800201714417286782387619364537974610476410783579988494173781590481123755983430852290548500318478189159569839805250865728267882599807482896372691964629857041636917864028820912534022325494349285388223110897433452556673779575702412653656225120362383523114933290183805205387565467322268339278629956734994445004388494791593613780670683578572833934486048281772895119341774816103779682605840643357885462075554144976669137325632768101528915549061576866188911960478438846708478351019504003719989245144502063177450094696537599662227504288253359818054344407862777584754087978189908573485489056164084327893029834435724358102925203907018581275092902576583600201974651455350279214629947072142171233635607648222086037479471916137059266016780100844721775647855956156599611520842084941313595135297565502512259828925168545763194635701852368657758773546318558625297469736971822747948215915415429939453798525222792423872166674675645335662314146725674889994277825890355343084377760278396574573095511778792424182754430509635580270349173934258950681140793551973367290732985002035692856192093013750793937574008578955495681721984704376027179667626081182734917420886172750651161264885852309117881931946984817578596875462863830243267759577062052039314290192110243087907526116541081778375540359247582835562401153336480162566022868225900235823579164773554950381052296820470803841394536729544915001192505806782680470838723988420305762271628649940611212343807999437446222055337715709273096943460172990721225336794232996700184669291940430585132954544155491690973112937347756985459033978031965722387773046793820250161943996362972932571904428328513431879413998115991605938698381773153874091558421722866965104992675741710097499697099606990803016843578949443693179924938363308258228979172335273982938802864490928158879901974301451433345334187844604394789723647532281965364243964215229468211345433712599628665090971542845103502769958315743780406395530387397487135704800455718318419210032982631955082631970793483648516155105328747947984451491400274021146972288346265225161671131705168725754882256251648197103862819530002457378802608785949731747541183129264067300346243151383899412658824143599045685861542632932321915230990386705079643618791245176222792668494651514012002174567550918593063984251319792292556761902993144235646780010965608540375829185054265029030164805765446462130002494981764481293821129152022101431108267703284770808853034523190911622597434802537515297003264450183000122637023221896125080958411645800920809878991387553788500364953648907284503343260924862025284121478743410282805820221243462626732107178886390820180259400805535570632669211462893062636329321360753250125296664498304485407286309003377909606467602322280496569591126615231010647549782679517180706094245587949629870061709756008258190811085132312623677519176593807290450873038688485254486559213226783890082767967825902744273637455992207448712857996816045784626023094747315215141885818181881310952351643291131891645862719545000782726651216903191512778374358739549590321669374765134112863651657978599790241845032461424297827470947166365208405195002276141846171467515548539591235285130569177430736467091885553861704705976973103292050170845011172679886659962711581002365460381223643076948374748865398374393927782999782867759135921905641067296441317288309606594922071003618382480808842077109100620586706555168825844946465745414142209421323476647752469992485871026553496432370187228492184533638300453074697726247362570577435534834617399911640420787660019886467611251985304693262992399907990393770381411675378411616628915470621839352686680111302116677001838782920192596425225370119610561494832988283648524666120715367593194814588315856163815669699698665876429161784403122528391207079968224526017099600855438444402837809150180946367311648320134537074977973782937863749292253828861886252867115048261568137508521915751263363730851755709139861081084053754328108342057608050170762505222291825436236986482769807893399952471396100857428829490826639469014072308057385873589005098429350527817503007523876558340269790324627851257862262452652820947971502525029911966376530863558172439575459790568479427977871926579424333872148846748018600414073021756161397366525394994655993750002243332163014292473280995935956933477600652171966034056845532105323061767358817559736294820516204308115517956961325456668625835942404622773871373240844549466396669898617503678520626646485532494050170697788027274936217148181257865480700438943396579867444595056711074231162865825934519289362664215791582423443103002232741617576314007119332289544198180329633417592272709607349786194063873486928659332340815602204824565228238746185824303880391601943207009277383015261005610119729308239255088384939437424483720169115653182939016417592050653446307317158413929095111518961856840641728777471635996414598935607078534188880667685981823531316615429313056729927457857726091186974203303455004339549341276156357180328179440775168242430152154301710324036897028828600975868176722349925687117458245128334900590797384886672544153359646541226964623348554603514537447228678984660101725247572681071179042925076695949195915332351169140735237187321503637812988442957081424090901419360954909998060502205278553702523807669803995891371624164909982459193685046240508053412787223757083436735697524189040283174952456108980826728016212653935635976621305772867456244850698798632595020458287948269740554662755537419298792771737169780197211008437748798610812742710529275741195505649238208243243346754900949224487271281329351698837218197153160248917627005958716998589049162698470939475521570708045758021135498903844306587034121237494145535388262192859490278055060514388139791712054083622367112267723107504054779420752497408783313398631428576798709558751400679652008820481215381834532932183607361461028724668627594820583005269731805599900420221893119262942854169470867201523565464625680011089478872737903065931210201109324683412099916278258783048516621688451256971759183023616161168934208403860425557744677095813893940394876447331054021484551030701254431121755983268213957387035282048091221153551667942558743887506534736739051520087615792417962876279340761601759124374463965346106902695471667969918891519998806249355201260414931777212562822378665553695687764129084444322235922403434992127367273490572325413388408802860166248366167553826961675930216685721516470949986114036538463332746297144093634664311170686955867364556004476082254330159266799272183205102043934059795869977844815257855200197119387502254001024072573518720118238212154587642571302502622208499638253601709167354041449266674483517023639647814424471244783664005485330847751784822350314907277657511629844926808161958155839747919140930950082719523171884745298754969227988396343916775881641909944758684424591418683351070258351059201898338459058815559452241453883597542232633271444798397875482233385697062739006684521647831545386439086689055791179463218937275234002681142521702051244455093158740888514649351074273712581484163515386861115642394181227582604693524189309197177956270989444786001890992226260965050383809321985711532900113115742158463795558747003247173892828581332320129147019655924830293983944747266044171150478527205766301861773252394878097009405930227802831272582533011573396104063784297475418355502030934862938396332657412210748990048023380766446016425005330862325851049956918307315448310598991155028817363010695791230937986435372352984694560519851981517547627399366046645803071447362806315504926882608720986026204392151433280994559525301713409114751676234882694686436878632336488739018489711684872135740805197879868787786202146539798507330518616129681892391393172050676407713734747211749095705037590891811128479496177591111412667390073839436065360298842809463673704788967984701630655938681656083793150333898455712540193624262489381166198046837033944392761510606418622414687205876492290887687544946815496861238307648414290096483818278494182426752536608689884997511845815096033958816167345009464064738152842154359757714652280813079729315324131545013087454295556450322873236531327474719254538778530066259909445795101775447172470888411264787725659616956615873658267598324113816250080276376600107263159393493812221479688430568368616158263609389669988679441708116636452819717904355952891364220869391975517634535945435675160409968523925631096700012364490271638637664882544018820005101854404056852131365007010710737052017923188760641580513398857528687494237767688159726601114225747216556849549700934937015228117044501650863498845936360869389166263682856542631178028453595878551445442968970912352620194918057541391493858491992748007776478643894759293312471814404483246409339510047644910090120233104251397414334144010361382739244604891547613730777658676575019198667797754260505506726651935856374638846369445497143388291733022640173818928680540635050855850632171238181522512067503275959204410006842446674933850967674595071324329465293671837763597668010997405911770655706815275923474981487909678000659571414381287994732298325097969498660491140026855571297189031085708436135437920259173286770045282600555151783244413798601137730884712720046468377339017984647438350133615730078181180692542336066863585198165623462059903947228634737369379564255552762747480237668424078512348691253464725999150149981029077477614519486322063063503537826638522736836732146769172587131311968775101705655506613412839590715954892498005347997425471557466044540365244675160431654232517932437284181317959491202203513141189300199574000792626362726438383140039479972226866902140772289835820405401098952246050627230572180281106032998709896694233307772032506530820854099805863338204741430267801125102913430736381544825113585966646047387331104348624642392950996130287579698399624618473431408030482715190418155851815853431143136158403361794739877881552880054177368284539777621346426590262255306528642791393357334688318741166725723886501997775426550226694250667262359109110063795272221309472304984014023816199879848736749902069524893505268718174828084391129157685722460271396717306398702224729569771638574809658283004092106878061294705624763179501453290311394640088900626062333944516875974291522901669768172257891317077988987157398038015154290283500748015672902072764750212491179271914672436141061534476564015212234881782407218256757096224018701844313754419244542470221661472109190588166511230596497690717993291924821674224815213292457084989474217968569424522142528524106347608047087254065905668404917831113177323700464160298701053589544527182218009833605598758997008069600346738535142864774661147925994644484030958550030374444064178848319950029069702462483869672172034508278019565443763892527715680548002146491400424041115333493415233289879351568567402905396493647240040339057991250413191202467506291480720016613244552298565130943966784674300086996944355079621010132665452401156465892115148919256194810021338957173563236016277708790575750196524285655495166671621028538410973431592576027539008779857048359350006103587165788115312630468946083470476149684343399320941460793840671422411443128863800080764579916876219907961641693672558252955977504055531832553543224858813706368858762138881228624809438310487055233320101082965132368141620023822463709436059756900772528389739108481928356205264849655073668317355059687840586874108942734875716050421345525010973217144801238922899989600550876994745009874491330325679636899290434847413184956811040214219605385634084672861578159552744428558546800909960338269615643496759054009786701065088159482327281692034444549476174053659084899245571536480034151055777677045991046971494435642785297053084605396708451027822789473540602227882853115601922298947267247619979271719765810030769494884839296615656006980304911425828827324727831296751746788986000879408740367229517250502680499567502080992059566980548162395138326575712128836727861823319306309505635981537661695594742846746116629708848773489051814581139125335686198018023689585136162863014181827951807958588009759464074807053733580014466227336823106475033470025251565118671237099419236360508159116456913426232528590126894452934683006091373709918386430666100163495290742331677818072132179094246679482491173748720255411534510019336659001944177113864013987188345666646468657417750524210322200272756945742129482043094726700947609216076763977067520922548647862047195500844914400428026900420309091767389218583314244534518410173830669388690210412411956035061646878827433789816990729449385772804346520535601877657095461608009416697815404412697873751773942930753025738839018224545559521862039304290307725469218480287752422067495356484408730095062304646073993951028579943372852366810517404454300710097891750147314311556986905277890530608613026642502494641946667930394746374373316709780991792285920391134035176200424399400550281564173528827185487613552448592831106016003206101078787114102357669344468474853988976390551277914885573737549844184914056920948135590663813181865046872570721363479636211779566636156564271796972347154117795574083719853464430905946271253941738400363186617706974007948281125700447398009953720545113535136348561529947613818813234966812428942599086320168057086811220706337443121373874379765459888312198655481925817185824736684095112064838826909220491626726051347293927065401524227921598098226650962469605845847678001411171806685591705486026709185183909778648463946147049688886845027901340559968832681105292808668501932238966190786158684842068272750628010143344470089866997784847987346242002739683001194339036164249884924640006606592195317260982949815441687034489715172801289803843639497224624833757166585214079521328833897513601903059891291449122002416378783885091191501804969693757435630985010561214371347296728003832440062105792836341088238028890544813172324209935728291977518543649731900817001075963379036239416022889434333435914924545251413432603910246875381912894923718968350468365203022331587828398776291305544900642957034463660715837147138431461380258121100489950719642682777857854697229988686539025288500286487652091442244172283719831972444675072955264980077241847715390559507385354726419642413914202141587086051384468444302871118370380292564678481477239534887242010720541127729707354229187464007163379043822185282341516166312585745559769391484708817244372324781302418065866828751538934853180877650511579194919121211440833474257228397613697779043759868261662896621442669858736096167656291796906074580101194494068182364777533168564806123496723358763442369492536235423126933348630264591386399939348606603629624332752278926718356012783725100078126266835124465516513933257417026844460598332246376707490548867679640809578706212656051212100199340753433985687985961645428795307303874701977550020309334934868209519868980490244392680355864750868671389440648879043279141491128520718532207564203157532889662074443780234372084892461683064463239210725286535303441611051125894508901962351483914732731103880473438544607625997250563779023478670682153819734735045811838381709158398278971647138510426215166340636393893479046191335551418316971742246056975408448505000006292586013108519611193384354212708589198098231273994225571030301653909653717041390629405719711216441345563309358272964341045067922798997844695423778849148624785679792419904202984898260241104286893852227567386091479726772368806871303588365220084859515872669702899417158896862130629104181074324325972001239039416049105274689037886387544842184455333110232137759329537807000671963434105265431656291792460811603206486678217985649757966539002891844071039445478577406604772850245233325089778785557671534751706855444703351468938774217255779147867488415998391495200304308939354273773092901340058958895027278177252404238119723917665915482247749545847567948222846566826033711083586700183610848133567838160294900890855672775889919223386707516206508908592283532254073104978467338800306143203704428048423920387411944100142634472736805839422733304602875385306602205638239958567925548198314304107441041648073131295296284875521885260460928229715319860822992485477134701003518290843939019156343331241794063011638442297521695142937019582040076079202872975797611655634540253965050683577290594580539461894365316617256290677938082904985116033528246649418436524514918633307929940720472337587903923536221673265371812277236029902159041266935375974524163889758575060043425967419001141994430563606944505517791011850886551340034618542977411757750114485879110619443597143986496614702139539082363042429541416740404272206994077879709002431263454622852345813936306477818786276654151289441647071616074714330225721414483784340216820023093510591594621236498227645557034217315358965573236681403074486491315431610376128796057318896692156193069058298199811486615841124273269724882035560148014096608793412879834725857139252464357995860430551453833966816335972174885127777380220770771644291768220531131227429819430609540985498467595502833782543042109439418670334820436805340334193901082235497452251560084575877542483631024028473140214501828799347814480559212674366613291412133724732564774827168020240430350939440886327019318596262884752331836913824330626100656061143708479790292000284494196853232751483834073858901528337265078565369524456212638336567194710167462241795205797671161336975548199891975621009209935827205741196041010855103484197665107261578934790045872546898914147995788459886048869816501502016380296033736991018606229010772094249706320833467259053153862045825070096479063068709147552524009838767426480113297473923066358061720739332334771326855981346545611647074101152970047015259973287160538305612579931544711614070472869852176128383904674555049418606552442525887652743463891434915502498048857519448510194274262415423950889809327716067943511472782885248469969141613398438215536816056407658215391376067467036240696835060460729174177149541374849448045793794525741222866325908775426878623617542441321644017676054092781620682947543552608326615714187934888898273866358183359773050392487519760018461181039809031883771076324017679066282580888824440507098018506039795111788378386502476730608499495489031946781701841531018761412136882764534292542772567500382792774083084674107626744273418436571150976646860108786125499349130799096727507660314677481207675933646991362655063471857400602812624789612243968447055011488001557277581040010397562503130222901713224063467704688968868681909149907725581362135155925678364812330938610210244638221722094207076067367008898344258005844740168795978324598917875641533772044601522780369539913136635304921838167906588615818641802110416963728152232393776920569813409168059184060082861006926896802497943917935589501440863317439913883380910713965902368245795986981768611463316844092472637121843560042911858957630009387155008247744101390587061671213998022802436496487458831411981747471465855155225009497036760832833532155655888824019585718112585869054376673088281698373557325892142447532555972296292067874058316961503772202134057210509905830920137642495947303929740797810848055816805970655060281637681533926287083785070207713864123358739318590969872425240352720213950821191890630620151574340616538502596429091742801671184183219429464355927272168602037645793976474449216050285450338118423273578097355447712223446314907618083690664216363594744839907414290113707918608112855451617355291140499488614599827368373899714179120344604536566959696622753363927850629876504401216778025931241720828118739187507603437241677446118410228970616021765242803056615986811981247962567828918820114582654713710335057853847292900473792356759358258196926373627739761582987027197610451485665748889583419773870243462287669447640367833108439428981329735324914101838809457499693546259058289119242534010963607486995653436655414577152464422692556392062009198453092433824547663263447756506492562300399702273168728892375500563365163341633220124068763580969970675386331543887926101806994321594448464029477404766010694657499723360856480917912039870012914950256464150960362180545019011093362903024458004012879382377914758006327965181993294182852266258319663759694165864146859693903362911683768208881749880170391893963314063655891741478451104926271273935691032016437211107392597885145164860948628792027357917997167659962701096971497900011254505046108252845238602884480191000235068954651385565830166348223921076004146541593317344978897532552003090880702847751294808296890921456006742396260562085474812380342869398808968831528269311305899631479392362761235560880595639830442425024362751582209473683900986112288569442124498907904241214475393313079515475765613531148754746963879693589560393850166910635585694231535621738850637825719145754278373339601351865631907494690518659273368797616193671340557710187020523390707695352038068452232056668442336675859154433817964330054504406864059473503251671044940357970181181048253845412457650815632722991617190129095064726697848269737427901626459534293821729322859466589188878323395158973277828392131206364896296979842070643965955033618975670249324403101594277309746558540540290208415969837507816994641596596847462116985859780031846236708792809306062635034371926490164872370063936397735630321572493528962693002531442033338477853062431144730734655972247691794785319581151648693166738127531740828378810460768591759371926761797739616974339552286601767017664446835293039603791290014707835400086425640456231811340558879193587889223814169043434614036148158941245558630685053904200413433013328489088910444965072038392579770266127089574959121567270673634664158053019747459737640724753307921708797824058079190062003961014111995877963544711127811022628769019178654159264614993905912564472477768475681653334685421800065847198307500932369529912572520671079667879983291076321543400843609014127278988693661253957743250834097287330146444994481940469572035292309880953598964952441047345463709674663170395413240861508008404624596770269712383563468344194775266342727360373558246579425515672221701485432013165121838725007111050103300593564041790491240401169840893877669921201763926717253431868693446329141057324352200053198261369494272597329705854225906194981252815442765154503416891837693720566917023162866616002660301808047924833564104051867188259427283292393160932790935085045165732739588068631797308166767381858279718453989264816008626191038390688350965858821198997043647328118251710515942975891823392345968806719241999648606825002985163121463840586846434803103203143178668987078490485283101915592719490828181920222889156491407368439756305866401981961314728550881809636158010792197705408680096747917449636066959872304937014995863023707540078467408847410468351101988695209290532896146551078198392546916145855760257192009179518557286849369101683136272670905583730704620777281911575452459524932140987078747400009325366994680266088300931903281300845064641302565662521717667219247972563585277318957566601955359086497557242657475299407829191403408614551325303050961281227911704132276626500637665315708839895356103155987009443058579899354250243342501418921523118647752452262792578624571244524256551200699453240759100935069832353006146337173986622842256783973401091862916847742978657734785707061785615345219878777749089002906836598639646458642174242256256875752264012581327859566102644451204259278344448071211465068786170556536978454298407048616621216265608435924261556607320282795431424520494406516723255470614169629829545251289717144560442505240419897012507077839717049596974475972266926692250457453570486755376523511816521922165485858674223773992966124076172900045560967113429181530070778490130373819773040624321239747288152314048001661324836679649831487485466597784792769736449175229344088721360689885752323779704331523419669285216893568113670380242833939751813288094128851802573489093713196291611096692389069234308505461426153885960392938590879461001006459593481793921652450073424549891706442713701215745227836392631887405572358836245302319049851963159796173121191252782802997819823526744617815598781069400693980400799493500075783105923439611331541010919470826129932586861775988859824352832970600576408835208590965961853060078433722836903461139992111813588572769103227611546715624522489610992838180739190160535121876715109020742439321104967487871478719828879351150650792046302839098132309234549063713707826916762965251966260211273016131348518713711388145280128209258467381081658522701878568788523681892092690512293606415160198130623864113294478420404772113769646712881544769786414975141607593359806942106645977282199992615434947449361956918254201112742606033934966087955842296126199582971944948182059716962949163761103594259402158068038486683739486287037704631001080756035488657319211583362138605538453958636867827771342964072372162470042067342995762311691665748154176077893684135389806972941797954484128635946344374020442966015469652957543417809366992029185514862818422048222075712924466979388875547385995193819188111258288001767114236673080198175428552552061740200763024828395731820644908509352976627854137919495622610569805196723572657588077671572271635815303123865839845353722138028958350794933985345967158532784119846581189244706821258572088986860750115451534827262323303732567348244364771593514038102464932231730303700353316967671302051768622101566980106763243834605557211194242555957844973209169976592092319536597890185797644091814116968381324107708536551223850550441978808702492725126618338058752320044172342019878753765826913105714813977544063357914870219595643919693131133869932647098144745482956153512382858692725860531219420361021667615328113663322107692497946587188252204422806444012871584433819656885781078920057644679000283419140262508978445871176389356716837555619407513080898207823137999373137244307011409926618843023626570727544864443401727657921043760674341816467444494939732156093704114280525075820178531818046823110385891336494680344359879269810271311253495116417644757194570301026190950635707796852712617021016399328275429310098387214059562219043853872958379163387893869816612685069083283775075403435255187682022361780568199152437068874459541468135757045447139539708002960995836131430426930916680439935914873928902642639885804161020193534522211217358954627202252477883129129526169865731496176683215051523741396240511826010435370134849381610675891891867704589365907937437513168728850008608291994640875236028895403659815951074871677321999539574934141070672192842630416278754371374482400938478317073566091923479929262736965895144185643952971784349839583815880812115762187159636915590922374417176403958347122629827300053186898819233169371803123830667220358821615884814740583500992182118737094182954385826927465856384712171523521341752657215790178322899515340353746917627386530208293520874756142597688576621483225009107414984339481226312744309600313493103641343568672776560931681041176764295637139212927469222993831541864117810183467106298808436049921701307173230550450340395801968012921985531806579492765727386078688581995477894673507046067025111924038326649222182250313645576876787470444939083096176783714172354548471286831928812564348980581310499336597071586076743807097323878644015965657249181174452530311261997473611935714723625820398380648485979169414989973758614942888480077318200270248425781767602410588120625788190877743719554373303801661176025673776200544194605952550403934751178835930296845866796432328323156240045821725574351472401209471864789756594123299881654841672418602212378329060412887817175240888380357328476402178940068126801691225991423567096308752708099057492910562369825548493723731720435376442855688606172071878842978756832314041159879326856385092789514221389712292687655700076062657002421081351333810222128584040660360077651638179185743304823849074220856681471375004447015457625041037874550415773057839071927676033172756386136651955788755063375076841446397239499487406408756024189969028580467553666310734537632813155764102592455844069417107137693964576330532584256494871794012498070932154103387497807795705294077745209694341977889366533499687447658378582309448747577349118174950259350788138084114352151227367156039810332163488513236676946851302774529803036871227739083604918902783865620870172951723661511117277728384528684777798180303265711199304500312793856366839328386934264918655933107328048029239545498371358315725365502311934133656630177137979519724729019881855515187904674591427691621734730567775764623749223588599369300291302711174585399120540655387315170101908349092826990484820887438501068259994829975122496574849630670414734456164383470339256494436700198502205415891872794027462508567373644881219758872957458895800057644332267104100590521056817425340399414688760177715985454560367126005520922780541960617088152036479369667615605879200054205240172227887381415436957716298401779515224984361120574077777571566185913742281605273426021895920480005685622066263150926050699773701827829621653286945153371525233663092237924299030644914278054188879759131599888946988284318411057179126156213693949375710072497702681080490318096780155861090782428736312834929011316922785022080189305222234690708049362847230414056478643051501328633042618082769845726573796550198016738853475356586775333591865509190452190113964648825322313408695161124458557965480565408928336076189612344343143852533906788927662441263003158582832013414641204830530827022203374447988804298992957886461519499322676897510762358558663423410810255479725861863809235179021287241044584387717254641977766162963470859634760224265324142217484984284954470828694294661239056745282464228146056132781665128596790518460508775763982151902573812184316475984121799161014877979134022312399831572875371038908305796682494783664215024975557799541815571816387548598907775856020789620186317173834750468337173624158182535756808603185008900692594628804247442744463942665932869579533138998017103877463567710372232014692336204270224802828799301310867823400758800139777709109115974959386339713349517673688638109558939336060817157749533920488023253124488744470300468547578911235771908874862991370667698274173923728631035818091700077160316505404915926410837808387142914600409453928780054336430476112524380183030986217212327202523540401313250488882682267628217703558351302427534457122625596250051655640918509399145828745726010956498768660789699059870774292436844415172589513174874795076133808821070999716259683700560798710646601777736426290452696266938167464431019958316330531650733896431799370680398254754736080676679962761944432552818833305413772963378238115560347134273138395919192370120647541590727314506310605458026950508967783469817455989209278884451564947569485812245737038802857304323217577835169301090603849218568571101115189908096705484920481569037256677308744842993938593062423319012665362096095128770748787164951885785483156145615777617218376050930666166976056352086454117035664096505545997557308350261422220098336420546946114114760126696965921954431686874485260215260357564132139160160149619520360038109382898228824340514388323114686156661113085438648888568319545154042211286252751771064315705165882261539377364319409593710813829708890803520679119643065639125865450304109203442639100298717288832610764093806937708006569580468674636148288423707443560775000898379382033403873216738559728169372200116759119606562453072136346830607960571979134281763903618731456141480568653773822228510678217893782877528113640973057223339501313590634186715437265816919368079196970662297751706902966375969132142887629614863115422439043806117131041119210188483630875250302269959243669148858270299341190393762579093442180634318110849210932191588799992076649871335191318935676440932977868363846931279168255468450605181119195485924423114445073818210860811685323694867372451029458185033792305859938896298265476196260276629534055423989034460543754942150680451122102530475057882348611051400418421179933590431057730434461375885372323165406592233376241161384475286661114418117777483374903606157239177560327116759127232621541543462299169941792916158912464598744390430607346089591958951165598786829257202136063885056618784140825266270252668736840504060235326968649367777326463437393272681682768209860953456373357014056605273558205143604641193077943390405888097883922537300693923169592500012753778670675014107903503667648792311067900273242355324641977397704511702217703138153300891306900604297301427956151276326353689239850389105295348714482739734884620722000316510082532558879107008010521921836373463314980134882665428157873744245970932276069256543824358514477550872247743095604357142106386739814120109232535150905058035619304967113288251828834363189159344340272647803384129848225212561001177786663897633405595736175106432430643240093008229522842623724432711690449975674353302116172868334978942872283071559718758760583283775608864876403121441477376368276297193522168946344275225053919213203323486086628969056599545077874650053344581248423554924725928463775407456884312399883916115209929476626659437710135699559420756256282669742615984674832840206633727927159849920961458863833986553522085872237596687690020637432734614800058771665211009048513019995264671616350420178717756785390584402196273753822271577153332502692476649494032146764139972566455356481435716284742462451345176669221946944695197154836599120521631020142419154648816022243684279454596313510198316130231840758285786867203241730361942895900537563952118119661124130495129691828301758406956031263881742535000014845415054082374995557797913692336975807773273511586397970865736750284751990427462567330238889561165057338742564017577783769375482022353534519275709527123672087899055365506103308502857660118029479609582856167738759763481805377800710774008150483071103545935571389687922519797324800138216716018089208861465346746291213825667620013863741376954929335630623512175008350683386000530692776995248104745168215630957425016816722089192657310685457015335852007133865378912067149049554684333945865275804958467322157095742035777784816440827583992529028207716821603363641026110739238231769883949343782161311956958845808662175777218730234833051692896771674237168105848550047768065507343470646600014459550183978873468886974697426303720544160372791158483057939770246667713880252817568104742678899969878836911812003822290988317772515184606927313966993076742193479345133916827530485277817562470663610464513907715469194932010483169609595843321897949947579585669752014381085374576527052376948231631835032755396254663048066147206825582738230830857599377514993334198525150475695533512364955435022103317127686222530296250869798442812129659703179240142130169874890347444678467603495121078974485885984939242944526607016117479443863409747720752123311314244579818851508187433400921704066184675885401264126857715328790296441394597029280650944204515328204401438484152478171826004932256633584311354793566237992077743356476870377711232989016384167395393904329282970895679793994195652915502523444404133561635992694406449670085234944756589413727116238182913313820771570946170007629609801763749619638206173272010541986140834399160328276664514252517602698147785077572530192390162229450825240571017877556902112449720817146273980993993949409860674447556345090773105362932196980765723274941911751040334406841259844256612263564529617472973566411427827528213382398011912240908432801798954284180862936449699614645860746262520573215553075899385746289191064610842173801762154859477329124553943649044295449796932099700822171866617143250781620709983217738199419222540933405907388984476431948132641571630777567906655540650552947419110353606082383308457662198738090702303044023416909569798461299806765271996500327048823750274369766645916465361147513436715107760593789865336090947197170067876170916814446154620464660743739714279352197447636120029308538251008588803722724039462275712078912547638700876351549637032875134190711637618396172732965729592409901712828886671719916217358837464470510749438340474393698856585337555150360980558755056849177939280481495799118740642927968114503962066201837260562363104010741592635845345289093229124886719120377569003145377159265908062338650928710054819982928573346046826736193863229969867762268385599230708172690016034161557172002960407805675557664394702313621006201603916451265483929966033750710475327187884825268419484091782627573898262492915382119185511348558473209398036054037550536856087009726625824204909505696616007745128712781619693427115611282783254067630272065323204127293801675848275201033138640206756206121580897080068988970222030504685099536779270754617748662821052875429485410128503929908805374894614402011613893580320364750746879170300130761819265270463731842815476097957331374328981994031596818942332807750458755912569718980892962950924619392816878218106312347852030011625743436369618763710633141840918863623815917229204009215369328827721912652062029530765189456509077219403682638633489985707099864062675710073795402974900437264473845247531572091071190507071454829932552896318801372272765852075231225626450892950742305639193327169585823125325337254129794917348056416282455339085810841518815254552012616012980471840638184646790476705056924312404495958215083013862200100421667350935065212322210178528653269763246482717387776578449755281774073716517257362221137653160399340399889274022036571313618739885759304189851085457549361437304642698704192148274636434282393051247168441039033073102045095625055045580612574602672841904602084733446114759285250779704641768717752258763436719040531692243407451419956411074997466351953677221108860417177435133716872439370797960586308890966830669206302658430343857021255987725494584787435788128329191704062028707806513029806503434943895216323327074252194776318326314782647942218011029715424698986563921014711095203856359044303074317211667696531379002924217739507470490000546288304571264476734111869719145461351400702746717405207756057877499121340439604354240638836079152055484591197483575774468457933559640009511953702727284886070401482678823939697808270855607038200764547202274982317597668884737593955397167771399250037966397737826640920819175375833179058737116440169775664617370133909668935838759296346695527888926842259472212472340306111039209985085560678024828888777373921167718618073208032150216533736469897554394382857550236215207490323116784686652537293824143477452558673872741409408448703427665359422156306202009049488485302808693928438838128559400222386019281432863598025525830855939149145166572015361728702821308002815636133268877209870661573436531504858042694451642195313325665025621721860162374785284618859856285723720876821084815897947527494087502932856093772913341760856863367197016051006912879075300615613509292314481214285112319790724310299940813991587108003055535855220669035608748110674141674216508072111998982089141763399804465222188326473700988221520662216593582359207122744338236835889421056025666583728095351704193460015715238647751074564403939870969941206454637800054500193863490624820094979012090743623750426871340694489950015337434162877577698750052105588833407264401060787999417259465829376275239893292988140090381942615501254239779735400370538293400408253973030907279200873263209205277220791175871147929590108572033868185808822455908760308707793670748312711093054768014234304878623895193775899137761152855240288111029943058802784976310503818978977213914190987828319487203207158658824750403025536031580908261931190020167510493139494499544665878129731044580419092053738247487287513496268433141110975422720481235267047389739528027156714537738422126496278361946132591243978649274912335856001610567251652240037583251712939594964008826943807979965373760534141356788882197755788077092543683437038792028579308769887311756131440610895456537007483956250940131221239060180723470463190081837629363147737343006203696017889452608788920200747935805889367663219480704926280060604072597536349123846228045155970398762922643522527123486520394121995432750556138534467335364178946106503944720974239315001704314204322055439233132121304030231055940596064414821282687990800133261161025725885535665135543334149739193900022329125690588784941878863785155579883012738965114870720101509294702982589378911026241402809962289453114996425414854111801643151033589710404668689691326192437653377890208970454855360719684343070187605136640794614057070133802048434859193055262511830756839738665425278185001751333500075946647417259130230022184939083745210314433603646129337779752684944267880742859812469472256137670919259175491546040541700222036335611306634477274644725676760326108133505695351683347910015016465139520675005547730787005805862897306660027457847064807020833748531190229971992617413498833160338122143642627192242073285290316095429173770816396261360160738946891442337397648835160268571023784949248346864624948742707814857532558873361983075052655389595697395286816661292981950203342260184054967400917127232981395980090867455147256914183550651767927656950943023344687339161507525643680525779552584282675573615531666379374129998317030382424932290711816117010773675087629239722927649576162617845792809937748788388514955975768741128741617815273546989351438697797192926746385036887212852740470164160356510974924628061287288033532259272664906564811371277238929457740921812241932583193489131061425404605929062181735220507943428762981270464905489164376838724511598014491432805640944814166032185287106636781180893451055791677179817160579220938975641001287039769895959408983996083531803901217303403802926436323943104035109261598872651863381538895956443078894085765549879848092445743566664398721828588622245835092048703441565900415603928048967392239964962560503101324585350854445281182456004033409464587212315673439513618346358052307040529859550595272324578744737373380294288302936522669475177346958346268956170961727026685086772712169887773331825317747731770707015041196341555793437682483212771305292955600944839922070025523280203079746633430898014512931238498715687916754600299952529335954015398324510763121711537404774174272921495178868045629314435261417062536092928556404761537076176682578194912832953806528467530258980726427575589172336359275830017016140922938415888209188891007175996096437953138530980763745851520483208932997533403806589168742298547610754420742432661760053349340840862019779826192295716778813592805462029740584918044112277186363626967275490766279162677021872954035104393386837777105103071631784986995030967487209816263831695188785410093791981149416979630471494340736908441334831147952135833989758648062771936304472871103837653897365143261460375845868505873974238023733777854104845970021197649839938850803418212412824015281938666787214238001171051391447412234992240200121856602301004570746386045418833353643337394370195324592181479453376123754865614369827682892599467003785082742140898922564269390570422949466348445511687678435984572839420132712421898505633187629556009231989683515794708687258874157985936254587320746737262942592008366821705975973901265598955777792643143479149667749956885120967279070251742068505339552093022828670865914558620872903813766376761714505157162269292421710530854457496230703263870228571960951111149116889479440767039105384792403375078746885751439309047940224403636031207038522091491571539098206291655973581124011449140843216446091207490416267569198618715754128284296721244406577064902590506511478123942594036314591433396764757967730282745666954736603948226830593364475493195572537788777397434669052411848847091850218379939760424255549350278778273413684730809625986302885339820200467691831595395320338900635882045081983811239889571548683957178998683511480746290905786069183773046011033389392812877392663193769841515226647978616962439272779706298534083937297516210708309861763462546014629030866740375096955842900406678705628275258621168608482267165708454872905389891987677300489761896567996595747169490304436409365818335870799422572748616956987919227335880904195154878221353215959079686550768727588535014152314968090544264634763881023545122902499378258270006075841159441418782243375677953099189589036359326915908509294313746978218706594639580645959011661430266759583526423842699275780209780916595982921721158112007425238280848132372686921389422455284293307467958492314058592697346135098018992216566918065261858946651296341492683856411460241076775337191266829017423164756278169434619762023010220385937918782765493575439855649495413708984290745807295041442408623865130459915313678014699426940938490445260983963840353648909039989558904837176083859935784199246276855132683684086647548839656839218334462082635352440335514625332860478821067001867500568553912659148800757797331494488731211769384398567904282794979090880423369700277445250966717874219785808186467177373872994845009522570687240616677158645445245072790165457353136052853159447291680704361034541131305858995917350848639348257384998341752953562091193803777395214773762919808873159140184407452742957358088234631410116431599236813610134011190487997395492374924144241533468972057584863144007163387744165323844159051281404191062295347808589229170982833740594514339985590718016158227304631671594910345567617648223609939374989598606035250488840439604195293968636212051926612107961360775384835335284721893751667184908497083277637102801989579118048043573390917051566034075696961534335790922357876932123581559157800405869558367415805695986142213654329385526982380392288522742958727884036841174633428293273482764772331858418424812307094615712393986725602532761482682675311941634998708620083838032757279145268662119556976184161385786158886022127999452010794519139346859689903124309826526137870968460783796300235655607501332750747622624466245132015273030142233229968638373572932486474802274719808228919994280035465776765271724602747833304149877403644989328311896057240872771435945900473196849627160842814513767219030982768467291895272808164016089922477539019000046853764587969653508154912275528528331196874253392896096585574955026505428754286565695295478499096105676486691349689819272743051985947736782557647654786150258550913430655899015536248402003218572084509624947395083481947453356607944663212121852269617848240803677032676836461174144606994607762219066304039481223808403805271701775005553147667020192417366571996817266116362394877596123073402252900879254671892560315510350595382231177783900532520568487613660285270778285836357171452325441092597229123989344118949756194704544402477393952443914587482386337636065780178617836200655040035328847251004914871590158942932189906212075808078746702754346686767522117617123484561917718902069685561014496000238044521660967629883309660648035260688309596660085927515258474916854422777431347185396892000831422957972622930442782620354584103745373769790167296385881028578228505208628054096564892437968661033847297788995651713824282304026095468593147505570404322547348387012836605679204434777643557462310390868473356580385498800022248643981254552226233138676204066419499590208245299028831782415056393319836437783747511982066196126660094125031525033044204999752221108685132664196208660509336432798014844212859420674378357362073232916319716171575966336842763085558984304428714335585241365968563876414045829402866607927435195775593803797203336999986048791635944813230177875722025689437791770232807971474552783796995437644896693448954008457637797504690246209414100210981650607121384377542114736402860191642205461147566880720742115251956429307247705753603042933708978459006709954156877559701244569248592796984925584554249005051680416808751289247842795609643584129243150520584503830586405106497374828164077611046907853451050997372867439364023229658325436163873104253937453639082258190322315261929738010392333915135777163324383035066539703715482327317808127283814794924373789692381337611026080700255031019028744656618069925251344039574012753362421606536372606773824043199472124470366228020578149635873426881409080803563497842583795064935844507641051008718500305613361283110244213910949065621428860287711121736562065680945003698675038179495777514227755191207305150829995596401256049148653267505160760821241321468183333752462710384128787023270917769392066490847557729638077783061126155191178553941498388481613033083836459535754724608984198808284000946586574866402919532401705850866845367661239333293737130159175007950596137859578332090756732637837139590461286257246489310123044929479445492298365781954190035648605492496035708628464411619778856170271877669620780610171157352787365115401739412071931219747110109144093553146354328361909613018511410141335152804254051422557270230298275458210139459523895179692674141583437508598499023886478708876724985514821830106441940130087864594090387478334476918190355621513308603498750335573688522892088047156691495643707392768540056177696996967458114318350336455538160216987715012861921081253621972336092654876865959002846395184056516807176745956249007893493086448031207047035079250897456822721467765921910984673331174057438540990452776425441777977076042807918760323774148128495374191317678369882014182754901590314682526034043311416256998317410805278029648017398958507234676477179945531356100170448247439965179068998798030987813577588378734280634169536600261760499544981972288675102337300962672222007300944049598170918115278080075244313315273807410458619581487811679197446814354670497419210500929802019641635229967029817448364644383573515010629297091685578071817629628411703596698925682043549842778434402160907770976174897231782532177417732632755854306059355552255782626102101104363689889097118761558549244296341506469933359474990870136156298661911725091620790005087085140627537776728411061641770212306492180900850272919463594190395029940024601736075955322795036350050702726657414181371919428488520220903089929363510249339415378888053614722759646513174468176243685773880687290111755207906340626627915848059248013183174404594431244199805925133744443864378179351916154816386500086164750113843600578737711210348690854073452135143588886573685131856443065457989608939732303879894139714890307770740010588225783623240717434472213017809232887689455089345034927355824268576216352407723736523240954032272343358786943979989859119800075961687808862542384322937492140116781729439789982821706577250235634214938805814134672354013655415797915325931131947108541959211964128336814680696314357409266830334361618555558762195922697438583120323737707423870174087690761326385305713527144831113250642178856938634646822912061263412403025645715334846466013540273950539871813606552828935481506854264463942065378251972892894831528352596324976820377945874112921996032883668761598721114341878444029279111129139070775101498568579984197780687130634774039679055508889606255000147923676020973543571680697169439422285988475571072192087863179633746234447908284687225520030847629577553643045947906267690439375205966995240869351797019979933518774963527628628555806183695291189285260009690544132391493073979793631557455258725947299628769350901409922857173545706135915826790822551725580888991127336867400461589441671937440344373743821787797397983716730307765391732000734461988308100188199891728012131430279531559974693395494328532406823214350154899167182328487980818107344642761331969119017648738702718493252850968576380953245606579372332557503917740775314441958374766448731772609193319790553903806213513390299451229610175362883679518138840266823013088874677851336167619838029629343641940177206462739673317568756106267580486963401086025713182228477047512936823209627934621968286686576944947260822082702359771451505522154774220203944097768011471394525047879042519051288618633968687965714598523325786527250125385001970131045619385230344572101302384911169704030941435354889829714749282072710524142912737567137325926501582571940032757247441206273692598625025329794267826935211677656861740714879281244880968407366614320424585945885373014982493412645475164303892664984776110810181526843040420081450949675605302186468230292916145502165643428881809509866618324515933223035636455059452771427122815382144231250675967449857579023872440516559804079182309515902395500655480115251378234437351756136759550651404774505393431880657447948777845626011415882814870536721854577436441104601006427052073688507854695473509962828579620689290672816867417887137399483843253133914018244028352373095374469870616688927779872057451724985617025833966945668828423689657353086105229302769580724446696468655148592776761039442333079595764867178073270798573230841732738051978433193728142891454007242973039418768107063395505283682461226447621595414982474115571054621102605077185571547298690260999218501550634075081644140112607651005823760378985886591786875628497838701660736402383771181592880513447640287901721813233847368949353575315118788713706735806471484772987831182581849587103544262225858136637000324464587433072701236705887958101574048729408443784559443482947396342737599919550708934073240815974399599640624134469866398982622255759693737674196070076190566425114704500278039658759114213384681713644391195442622973551640469438476170150527932340576239731252260689998518116506704492442345469452034500727741048787333494317529090918391853819530550706794221578259582904711691161050758194252021795918135079825276488851942397192767028851400138734446117386412269824452684367000202903433777012863903276084799693686524410719020090254288102118886660468918371813231562755406055315901645691456183597845205184459499875242489939072450426881402673084591666949659367006559797603005989713028727007706969855759749068305305982101411661577125375062329890985450741844357675106835043439264353170400665959242350607376935570885971825382337684988884300373762551105286915427162454779512473099274363738532250200462165062119977703315910500311303726674291219424325864849726921097252414700800502155328596469770043826240147851092101331267772316116605874025431884213762370263842394856709663903685571602305722748866364177117388868244105701536287120396319429821572054045948617808337076826985525442870136180691611300030000685524765732840268808772160427332131711340672568457432611212333697428475358549635249205578652126046712109314160728602444668361450448187089388944685988263024385130973962319989386739001455368939453097031358639127237813450927582956314762399302868911652903943629424147763015217353486619671900168399392840518781373358823845520987483341344704265392747322432565356549419787532250692316719594874351591079195761022298763639690524093339843735858353577315140921192820030907768022611960734340316123601181266222778572297643845376247720167649554748743169630682646684309182716238031718913124839936791462302832883717666189871166687441879070690210047830532246915091346883127692870022453538990569098528500468602838112673322758120914496187271424930891412486700173745636398632677548152467010724535621560508908042467422152420749383423379955075491627346718961385247495813433689012438062031528431806417856975492306489046181939688084669366847110805023206352228956858163203200318355196202105068753196633554139366232880784412449066502795088253305808877332267556109775853572267635100945709160844246714906756043385342786869582387357223997796970667991571758328888709464285779939251790077546459086113860754705766136375748673749292137313735354601287387790564550279512695677523751549844201220531004019669825110388748213206503117394864805602358989822953961861313321214798444621370286481171863171056210195010395459694507262291833221401483687905225787719322056403206245367630362353795662093825302012230452083917017932826278281087949188255898418473452444009103406613450385415460259551238014109885258784401359540638422289695271989119458839173732095943715252225058925954645390874804320139456601916401511205677490548330725193438626976331348788992991112647664170271285880991166725490903701391597455674642431512280639489293367020912399846346531771004445151420409555456790903747447188238318125044373687006351205178441823570401754905990552126658659844827126678132306080709839273386676366877327026696588163888293767738199904721030415734515881003401386329297841457411221040546926917513418819122472414237983986179291390489929325518393694809373236271599251415920147878540814337663847276300448991609208578481587148343848600987283432239362741788287680077253246539068773011925317174213825258852492013398384969447272538935509761758804377251169318825382548702688367128187923268060670468685796757480907517667122980104383356756373527316813884938523726675368399769492135406467949689911173288304206458210114245346922568147056504844337306819174109007177788422288770312989951655523302657978862007508591985057865426721298595774591886573038294349944803743508394031976048518373363048635121465165881738516714467401472205681533379574477724411059287082657533049156022836485114512114576077477816278188284792803720201635001336846231005836982371922127678647701950454229276047972603181270353028515842535675001422114347395022652514152125786819745087627804486143138225912394962695298448859234423573923391531621657106755249404954881723043867901407708474475210415653616088003908811217715614148452609790151150932879696563845379622566092133948773674344761354475648556717772647450248287189568129955182104440201343274730863679797611642811285907919909470210371022055274707857319192874837476319429450483174784155674105045901054582162294623548928131854205218531045175644640027513761526973306970079589484469167683189951562106672024558065968664558967134582103364186782192114149577423754101326784445426978969159259940253865226338506060132930103366026208657613096714721324338177814578909490024291129028390408326817891209642921931628323705425587038693174447890145087508709101654152121345516880182301510955338850793362695005942423032044136336030700633631766581373115196936351821859534278156308812793450656380853289435658626356821767243910959570861181066709036136099815927730869362878557226006705506696893030513563950574802284056404113941754085008325813107593507657988886336540956638565397797627312726907106509080124038073943804200155197198684027267076837683807290435251666523600850047138422501718536944954317500569535666932379759652791486602412022826886726945872229387662847783300174203048216630336112524560827600054275166388640512491480917910666062427495000472718399381720366893758423182149753638116242574578363984329265729287733714978086213088914198830128956775689280507460930456344297125504667113776911911350183941064111703440270885491996087587148380813120730771968796177506782469656275696818626685467953610514341749998334761404919549468606485759131119807311543994415830314706306642300778394674794208711767335593502016470866301860259303083646298192509816225417328986215942239858761882761773611359874349891262534720305766481861603252363250375826365330094753273608382075067587050864935682816823255688660148810123650288812108522796596400142469235713786717480944362701727216918579518974910081646296105969674977475358092522699101288036182150509403846478117758976105004517315060550604922659591111251779322064139948662053287208449403518144588782662026797955853378671539584434977836875695450894695600512703989780169019219079713051152578037740461695349218919250137875304964915837752946742468312759455077358910402025288179244262051158320337095079331604457030488722064253221621722591005701906793239287509502493190043814898185826745312929938243198440511447245113361752655541114153539839191229356605704508712531991587214835489014216025844522972025236628125303406144785560835779520747836887957823676405218271801605090749522675672093552942944501967555544893587231726573825344058182408470537467388464119648318865580139040261439281032598992372886819408061875417324056693671079023199522506507047593468021165002752107251795281425819017972816510677952857185901397783631166755595892840341107878815121809312284078257456660727218765157228657970212514337150486985775847184060187304915282415094907003472012510251901590814622786822028924297576245129077427030726575539541172435252258560294222372760597422446110020656172516487029747970468644848423506272612503083153120698692418161233993793530668569561324526197513906333406032979917742848578981844840839253525791242875603256940506928105603440575366540777630623921433122233776911336892467030639942314628742067543486887172260156887094035717557598334918319220522926212364063365135018787700660441535689903151924009760207156635382820719697678575125255998526807461186878167543301182451728131621587236001240304849991111732820808318088350501833862885864024914699514108795626433020624981249377567753683271404477552619826561805934484722487473764214133519418795338009648072410966461478938878261301878038306746251347996354675220983354571283441322840078960945269357110343728288792673935885834974537950303628360365489972214114331271365487970090755954394865380335325250697051186620043778123743369292730329900355719733069069282418263773205183263797375156941829796307741165676204500079345716153256763461661807364448314360366493077487331343956791097079176893679966268048484190715139754122686867756957191978128713776046567350180375019042604886808334974785067425482147782313130733060977689674568674681710169589093482236848808895490367937898325481879254916505113004522615696884869871689773436858939760093406231824505392189555220314631247464767661496630207818923604915307818272389285196980787066535684771185431414494175817001428271178804695780785297212887162264314954634463120686531682036547772009957356754437212391443363049662556107255373179330632010336412655447794314059496553560581437538754721038980156377079880802930447255752297858447125744239942756693809285478150886001851408634636190405450120571398877021234894927921075171760043281264653147672838837505992858946891354843626900537872813744826932815986641474915013818422506257854814333386489528294016564196672753646078671319044587326230498290466018206028924854504628414626270957000461113043877942781947049386927391302495859373061670798528691092126870712748702435513551042395719055891834401695420609191466387537141559763737893370731731761387443553074471576256572503213823397367963000504095717674351923737838182754102817742030894407891200940713417950152141721228244252646929312809850004124569502225669024385213604177578989923960547382337440263471680993372267099865288592525136737690636225542227953769435708892157957702539984136931875118192170325988841326415643974843123314340402289856434446749770686075507137252489974103470220216399012678644251787384503142078034843846422164456957608253079143367112962922695022595474830533497530670865640379479226564153503445249486813929736342788942650713755469078448128847258463397734813386429984362582465597977183429382498685811021788257397404866617170332567561643188622022508603202261605768769359164176458956361044776073143231514394048830376372957229194430755385605108401377996002646659420699524492996899545503349072483619941412308016389216885239870406686503257999909923150644768441443884251108362836467740346830691033615484208591670668158875903443405205069949231063710882518565216540160977811784104890888843787200138759916792164232054298854690712447347275196495828556262919444553898259699052596227519764584017948461663463043694584583471225152296175518961420561102972468354970906075784573625328279373455539074870804577830617561363743099110643055375854714440212376504865506625249403883031324785034876813900193144229661801234366593294614404685123768776261357453598806779893355694648942272867921199182965555634759119280711863548396770770974146466722344839110909524980522649163363024475801277978209736296018245869994214734558079829621215071290684381795760802153530741407615658449704571348507549273825138826728194671252786439113793826157818321181952010605459999888246325102040639795863058029063530217338183052207967828724862220237950403888264562387869304302651066645472137196440011179146598666323010877016889503866719667195415926910363099031945797250581594664543569143365974049104808210712286083622555252671425101093349198533295674269768905910912449323405802689696457705795024107064076218988668975425593510844090173541867951107770523168809395623951849295585431253672392966172307034013304511511924836124255725833469627530391188254714088781555038673829783292711233184022253174242217692009407098672216086070011545158809315484413370437166558109675958136064210669396492414810787544125400148696817387708401628593897414528282422567726265644085364780918650102011092724126046368233992018472345442379210484077192783375286714370663523870869665510444672071994210605039151466605116326755152404647750195653220608644976459671091151202678085533630213797653473086374745625159189469162244820963998573807786240940882473818070197848608671858597295491076495215344261884149681507023653036218991634805364036312642624696342438067629131207925671221324315750167372740190554328789780314295466457175723946398373700014640399405190234846381680134939264063832533407384937967155214358337931279708831004905155775381191257727121338329806464847589080969146615675051271189951522208518297872856683914918488035450473916534215922922500635890011998555221946105623059364753346459818176830162281298657797588522865439499221078218553645697214108204370278176213162338448504192771093220567798253703220056492314626370624062338887887387216355376091930478237621383833548431776826311255563341842515170815797845150267100840140010061766322233040257017280254218509032513183952000294286083117513917304346480672844969971897549603474872045983351046033666619385631476063807268660159613238432808809257495784596197197167664786472876250155369464949280188497395835947067504301084183837468223341615623007806805212335055910032017271512743555781949948708946917051338248839196516021295643420062202936294573269110351295838568158882719036468659346317244161753508221130028277447571341981469104724393913700891462241987365743062101662684329847111337490108788563792022625871296306345090392833569161714385433218322673038370153856531930672619941337750186974345227305011492932402200046253978779185309343260068644284065084646479932020004799811786779999074674100776713131120379175584888186067835626188118384271711632930007262163043177134124472523637244109525960244344419992021741993188168185263984138580773781600037112390909296194705530807394034043136525638370378172228403494705391629733566454909168373566261417738017893682830387834712464331446671609761527265152479733269386193757443082772985658309697787918822636600011609928890739549281924904980513140901201430453999296280417349251547748827423373538391416200226743240912813638509135035525638222426013706149397326202518219386129260477860172606551747890311942907568064613018556433036475769938648742857063796343102136062283895576037270533241004678469325178252258890198463784959891008987746046725444845504824524199510795153034583628851811400322995994499901912699997640966700130007164915402912015458147537281579912822910768005968578079339580288777070271166273215979391624504395140240768773851398968055954271684461301111016092176245908197235504692338928456442271407483016374576957461398458017949945387796102145382905970420270746062792575053756106964748932692420880632340507624774576938276513985921476028330082908883521319874760888117080753215254154075448752545730359664270719961275704705895894759417540303233298201125956857395290635316176706586746347663706125153667770992215056550600263111168737204224283281931359042489396901540430743803608727235108922745956354782712000441197604342079427256601220497482135343921210599792201448131284514922010815087624774655387837621581471999704221284869709841433062783336510211257269351952812036606226592284703980875770143411318787718398180894974257163232712115689681070820539186107467754553058841102367688818294733467740487775307097475298685048150027101430593199163273861250745240567926466185594059284676879182499846777642825918092485565607594349410555321550737582581563207038390924244198858201928032894718584322271365854215513960532183103583555228483487583753068123364950943475919771943954804821711118599243683042354537721527356439816503635792627475151294739253863153202395169870785357544074488975964289794610580196898476484435166454384080028919565028252355951756294501132324351879601696571476141297250768229699589647768328546832516371677809451243604288569931036121890412698256633738341788552322469393683609662594842843132024853861210880400634098068365242840703941281449845675273928457197611317959170251962266552683186376004892614475816105036161189742943643472031216312471251571141138891146946601548160352191944980769291982493299359966907557289473602439629131199341808192539271532296624521103863333337568399773610501021776656743065842407760611254907165485724125657762795855416607563329150747300847944188960475448568565921877613464636792125229849179826592890407002611218018952389883572796837980584471206028902136739980178338135764806330998818615796088392505384800542822406381150682410679712479956430777084874021917583303403547154536940531517480807478573182106757181477798551012338140698534994462737356481703341139819101662509086645052181127180617144161920834217561753260217911261956977662829096240874967817400886867278997445942234015445778232069730684068477571114404803742969687694381035122912083158793643394028376806774423241863493759945593934961708266797824284237780730355769390271818169561556165701727575916681309800582018802923424670040288109089097472644990515157508119855759140556654805172459725869846139921580772915261847854414902857523862836909374469142339632584458337296649399301322780799392973736620580580456784014722561631539720147229527046651930818093347019146915335822710461434048970991883875243020183293814775476879434030868594668872319575663951596229242285557531211585498522649975403933977963349001256494036623383673531644029151662851719143573566248504405542227782526678533288678747866086175380944393719902484813105729650646172596577114656494049965727283785650257706386662117288058994653640848018140528614861180532662045899646227392098565205427313100725866072792778773797209666579410391173317436855861212900240217999924706040652923444325257509150118861712735187434351912393950832162900999639102799346788320812141105399621070937359645319462418493283248035762755904749177899759067852484447156271309027024389112283688789962876261121163576488561596235877367409031089917925797923779269957878723115444081339862887041647974146755547240394794328534846206759596064972152333586877449894879712110053055738364335467637086803195639927997753566117796747275706568485203616552622795383520363934975779373287555629997359354326935043913401149915017663055332834583214833911304383974867124202058413144384270834573404487002716628565242825620991346291402190947688267469346316040935661111813371756646715483074312324930978997091345220905976133993104525936270268093997568409827997039195533618815070952947668233306184298471891538206299977576458487806444151671420178582042564308466111168945317333180887795998730734776342335480948520317108728275735894141008873025252677740532549676650249734097580425887127528572433417167017326560413589706536903266329873898459194257357158282139826862155153377792857311058199473094654160952233603199404388493387644308049908052066192919621406738900424319415620173848684136641663853226854683188288371275723326273990824409354949404111240756959904807719454480780061552126005698404252865067915841747660569628520473429580683918731302021389493395869749039269042372905674388944668500349180085219522419982860428043152983168589450250220322322842156869880360107546156860601714157780899269454812262089481827561685889645156835522104293529417341371045697335572362680573632793943363003804276643823412604429408950323051996507584506180111887914227069749161134749409529346903930046933217319862467661319852663444801437339091935594427467925242124479725537694440574720333034426293505310389030846817220101078870291503282889696606927826220960553754283333621999392936293058354413674778013660356511973296985440167347054668247411221128401899021301052289296800766992838956568232138834296012089738912931809244276413235690896000509620138857022001231753661976897879168827046222603379033465560467706187745589228164456200969065792872782615137020888969894439563138159775248365167314735425493211653312234955417931342838473560665360906884929898221244157122691821098979636606177940734931477816882233072939562896441229778575130280517458766337283220560988463595311406803984322711310643996440024148300904793899552161762824669163164482751025565061342397495967350111610217589672438896385318405960864890835912589338996838135899960294633606831537371052283659334389090416843149984315172674600172962861366152080089436038864898615160522813055903024236419576296310155557877153025540100386025305952007014534635703586374364599924759804055738146220456953554365051983933073615345166520076772775979813106028368537469912955317528514495209951570895283051293217812441754477667836275578885122165208046417446137311851913863351682376249602424783554825155071959261978769990198872828575201347808166777991742807303251207028742563636119394294919655384607062551674548981481132225565499175173668884724247225728975857522747242456162485833918596765925658053230352134001779553798982070172978388210988817192922071245070404421456967961982278310320770465729677727827402494134191517036927363925694973489410681291952045284791390609205960177707697381874454989487737337371028903567163915218984635954468882636679192569009660728152564222002645638858941282200232009592066657180382052593304110634267081138051140493161861184579402583179007482269310926230287139778794504378365268275869390181397841663149676710671845231855132166401808068723087182854542063803691226779194871628332568357788635058767912119347285874403752143661006298472091767597198864273964182004441954477019498518250523897400225490549171183650492036793686979905349483595025553367171490817850523849910291081107314179723361751507898315998449137754223211097262316293518946377067168875198412111485597756488845761764358731031809869167721720014712597147855040790714727562744082735302413223264158102737246425079236073998285045493177941196440548345228838398806035618713785684544103698917417965738262585294482286070500164794438451462341096000408629260821516854706523981043406212575356881739182495463072995605800277320350205001676178828188352928051609869045365472356598966165372895035316492419951122325517733245674060041176145939208980266405901659197254268022538778090011992733761038219569417825986600751843167867590077042705668896850772697676423740640822622466774850526483143855238893362552713356235101581628814204628486236703959406249137128010181564289541467853243422662398719826566517936775311036997218021793432576299473803168544349667454121775782883485167020186662771754218000750874516543946601345735156034417397864958687375837614569227853540206462429222616342165642621917329558559049494040385598425363764535878148619846916048687293962250182812342339722366349263538749088281484089476328293316433952045458230523592798470175731591158204233508945007298734016559724944818860446134890452794810896539898025346579975218375230392263682209209124042311235983319406589272193404793081332604221483609847518973206160437819972305380058862740672930351041408381044839067773260819966902273621388466733923863832380891402247664989738814916878563689279265497178995339271731501622808739379400856755602905448138927424864676299849475005165721466365020489580766228893678705472822480669028796208466276141048755766249811594967392552805794592356096684202895243914028650988033877820798609342106992523421108137110203392624574970131409264220998002850344620037920355637273506330810055497870716998571650053974740301304191632717871265336222874166049448414625811302651868565034933533030410479390499686999519854779689844276768729450216101732876472849390569261782808750538958987980948438151660442972338924664408135877875233683025965106372060184261375400390669279333944652408028160338271504523578885260098509648829654194442469958329854508918646834194048945671872287822760991730291523006616574012958008663850015517991417401352103169489583223950180812997015928317937354577161604646504006229172805665419466876811602148557248387226188658019628508216370030613320517580537042994766260225245807761719908962299576060012662643734065134170765365283138485753733719873396377663229253999715317472741196130584183274016218944404108200068910573743916242117722125156034631041345250017445207821911859410953516494734837199271777653615291030536371496691569689587250624558313277480985098728482515626639081974944510650114892465842182357964142432851890053309324564085565695656844918183117063280687101343521581186599943107870816752953263962819980036517931270860383858665590835523113955954790464264588389175065219493218386997703790699654486520805505338601807002035236319296058008201292368976069743839149732475139860646222425332202790656808917814238722928360458153696586981924454491090607864042018359299932643079397472010461572183469375976752253174626543276529617878686084030949323260535725462633975692374667995920046466312236953994477145653161940085642581641174305052399196444378751202778522940727728281030183859441159162703514396419633466635070086645095857110484137914916499637352672465986191330522462388247125391435525767023194208963859216869653532100857382242770402047608821572409651076924892667171339835339728310217723856337475222086300468830112630287080022125441758161404111774900031469557911482996301068220538413847517977247677020152291621125010387476668295495637626524535778530699067652746590455558571573827671568654901950972627249757883108454641607237654400858665077350465389106653812907353638482708527706935282396343656540785634703690782939433321674387693452627608937746982841644141873720230326249547775872086518354864609921831020286275327025725164406682682750017156925712303490931085131849007166744629306567525136260028705539733364119435308569292393712522574553244301598007437970072463869678561242130201992790495370117076982518605682035697694174016806872717465314023082408648767432075576452899701118841016682341203999475636710613111012501610590912310065454933460681416734318636309799446340203583205874476033141491170696513686698322657999861631419373969328292676917085302575260532541037542144832806420360652716186678971705729321038052323088720834870981573525115138061453686795470953686539052020869736718207211101446123168106657365548952191165199747643675832275759311748298633837583938801169849075242488401257501029306343221058672641714837823318143185780250195543751811031093321893300830659085239336858001991593377468524114032484638002294870621871167822308128365920219338261534585836366395217246540833309726044626853821130909986232151680037064717648327499942549156430084646475895498456687756481374039314756084368640652070034125704322315285269141279601296833183883835202888184720570666544830039741974867887772680321545871803405159232484445150825404162326195825619648949054920578093770464923179773415935841472428842504137475549225130974828944735171265829116539577754929885781506182471686472095679575033274935623859503341502361437095926793341400578873094876125496918105149185820796658301553743241965322481939566680467057695763647053470046566700213579649592094298738710482774791404479028510343346307519059732870500037192170860145279194068307026459984900782814972022847288592178629033428663305215323922119193572172432878024295392243934443484934819031233075259493847802728192677777800130908781185096082366490930824179792106922260892706269582972855972075497891318021794109994127595184620807520609113941938481834293245831859429005215633170411233607028232553860911354722465362548334657195963127583597352522098848475221331059410171276516312563303355015788887125738402086534609333327218575783812911167410056706939302241536750504983235283786401505433635114298707994311587220743909155839597000356570660051687517507117504229656256189396282073567514298301648168720483306474740397690544380373943556132156968385338017526609387609906365511202558362943424783324724782615625647676218907436815864046342355338049503936934073383365560867465968221065952213179243906436714259415995177816920956391392499790356055692414628000739385676007646915648406626775676950353079066587533838108751998485560659780310113178114177170964641209201802581092084046059422544225172001315146615287270059732329596928469429220326759172664565164452387732577408561668775237641377308105378951225122569661516234481380291366704943417282131691458319771923057814867323063390902056677785327309362763040254090727260710269270442762332016592481950323900295364095534395921774372472879805784638387865303999006358833219385511125889031057434649957655032948306051733206478215474539885652959662602028230145154824138323420742743755398565413661429219109822888372477387325790316629043753884509139308715256202748627584940999826597836702775368689023294365017669383121399754749435161044119550316738625807412604499918255381641177331316460816533309212136937760221870651219775284680299670163149196013255448474677794462305788769742331304517571821896799503890821136094118440160572009280925992894602405658609032447435729226552543481769154615595712251399944399985038660527025924049016167417039910602632072996782095588189354860525550138593403687890075535120347111520078907705584277151943175936467303714920544851547276354664598207056369309192110951338241603436130716029901812132370095215421782944390326051900352124310764701646882395226565403039203510589395346683967173337474815624996225845390668384074624100643502592730190062304712583369514586164889843186262108061325239097996763948801234141911623422165841297057543566793214919103695377350013322758332711984834233221101851421910986668323494840362093836263429485671624503472512507989409613512120121275444174207385734494158049267109284276164359754925234865135443930189455039970495695702469478440402557403325143630840835295765009419738362778431997533849662254613746592978921359560875720609165198313131171683608960067120615643785838046507895639744281851360371185856093199896111777151173663636772660985909792568176667188112052531143757931717950824722084981825671488352267753928629114728308417764656923295138314588080691497675368360614545599369598462973809708099920891184469146206617489326346278376876427680716692505280758440148395960896108252030183816063697166918866060480553511660485752769105897738212991683735022137380735277617257484937178472929585086273794414291529572849455199179523426196740192012822830435237899989589828301563611692826245761277789528491190274218708254829036531736671920002328768236088403894706819951482345262119228414916668426815252054454807999278745242027951213371523458132342204928398986399883123296394908606372953965058509243831931430043014694581579697561237426835887612792177215683427347581660398987523364266753906782005684770779495110579730825978343933944929630852176434683124848549155645146558678883171609709593250501875103527871807959595792280647728704378823262831194251842908845917348974175322853702990143197482450696470596083979770230895877522020870612648756671772691613641149316697809690395333862706152025479845859179732721267643290418598938259983348095928105804607346171757371962668447600687319531450621312424497995683788175835318442453789997775763190367150664857959454329129834052347726224665289340321212114707322937679889892214659059306738189793996943045022403040757703108841554489528623445155435573281862018054734024462521765471072570184016517629173450394845370193100019527750422317263618101758858151491089589548461758584874908347126093534566906049200132018644326452345890087014713655641588884726076879992688796267280480621835984976359509680699297403196072006078930111366660043105576117617068572354281076555395997769067019857765618650347823285428434175318004163239995135449342764320399626258129325910022965580737999720672553974101458175474671276003081769014180097205968550251831428470147069871677591841914327453265923216417678202424590703475720186335737669471146321479328751379934914787603257556802562588974096448894967951062329918270656856485882423456235923972595667071370147172176958934501384759669723384248528633613642853249397019377103678418041085699468621071897000575357411956113530758244679261068288051042180135186211175849809620891308386545547454730184367031957893166612729136721868990613281305063328974975752089018982093151487808523915949966779331933503220489016812950306870037460842032359489519529788238011471982109308877615580702972929801137270154722292879579540355810178751379865872230736272412491767744184206203900319982482489335205934277240231954326558653243823770283767451730295038889531713898926106200695323560304766496558009968860366013980117660168759308197722957675088647897311723697571562207653430481440288782853657084995937394559798363511881395383829650774125857709574968656707251333390690133705738414797180032508583139944617190574509341237477830843003025822760385468567008921311270354891427322245020792042874675882711667094528175944203446959347878579503142130575993403474165668870854388629780147218019714396178865163843505268002954145995509509523943524630328741397615851547808136358833555540190406587369747794440613023721075559306568057049922249162023128211042166157330788135496406794403206257257736484001175089214344766427031925758926903205451542368773830536709419738870532794860624746214335012071981640324017972339569338670649989327171940188723396396920392072469457418036901930247024329024135816585415756033147738485674717766482671431813666458688064459783582503647098063422011465616349027486086570363040925517419870571330549518447912188677101588315751594301828446454679648640466314005739514097113620757052976428062255346781493912600770332417631523943701955280569036917054428412448009548103197310943143962059429391571632676786562169732807738356078583321801749589141090221138593971324496805579713759401533564671526935993807156124850747499919711353084413581462344921762100972844015094330932780319925789429699605518919916346191878141130366948013134260344074352293340643276684792538800849194983298938114187841940051878152618950906446939728405343138369723951805257638341491037578840071066115022046905896007993074678830583182828149098383495936861860796188712224273339360120082571219513216213690905754539895959634948448872132797259788753316531296747074337551393594716857922039894210040693749245311198485516896105572624486020591110437513939459436816325893759016670935271006298580733959173910767177608538325196302122206434819334520776571363634828238195495427535269818133623088358814897587144682867028121233564255578242602346398482638405592756826577642259642330133662872539087402494181609227121055368731984606777780856207862438511696820028251885025034891006824515889965788349646512222923873710204363385341250969884948283901812644106836146129452731062508591805484967582192944946851570284786485175281982284414737341978227653075860529954839308747901174706966527617903525347547081534636648749603503624858202377438969479246883650371091725939296444835546238686512709449547179048675500209028876027255165660475471493230500124773707787135289653431865603692381607556292134056676199286093550376577139867535084889142594124454670235404582890453767661408037294271695449018944321900666961451156285048009618665959097631715646540909121297740767247646288272860477715578033141330091306067961157733764819845739905962813719480023125433915430605260957431010352948939339776015518809631917540946635182935204115548401179215473967868769725809756537827300373794451930892844015969805312149040811165825532128261327875174448967398227116068785423978520265813638532831650480368174701523819783054092424667597909425662018566080015952117176770018811133358436087556905658819225180264449123563237323196123754864323571684700165480668400797246402807752955392453678306071517213536448901232586695419338010804192784493539894615373439257457437445406780531623776908821280166863763791872379942230410250271631207297513399137464511820173784596623175081570230695234140409659580094976239656461745655849323595394952731336535469855085724305470699413542872263637751785349991431881818326308427028253166396450219617571421403009874035731595215128074234004662550708030332274503917442199259225639505398935065071424920435560524637894611670332317979750157351948450701532254569118800528309761275797956255578961702741356572176897361168159345757303969959434101439369569054168062321437948462198763651691283565289720478563684954516623317812115418543249172142493970653200534400888595253829642549443449616424260000809133327264682151176938082684913795057283611640165923277806510653564400244738987126168660407255520755994046002895253036779242795380358353208007974733848521203029903025102156093465378916193568479596158183412701827353456968876331191779734804861775813105717327318514672410467555123253425104856026157970931932198556002980652086458643912027099043926620095879330885364642927480923142561011856186753678496290655730932667632159849851793926381206443968299580567110987659535992405180517651951728515618516915212231962072002142978394799491249601700629787412711109543962776039125203180253142826648781345467952350379764762533934865597744110779706630534406850192964887750177735341759176350558492812123614126163679979853524275661069466047192649401661369304721711340842168997467208553999360321535127836824616198708130635203328992950130241444833748440064917065348698711776992225670253381843062606525915535622280996683649199171430539988879040378797478214988278434311369817385581311014794190717177075387934396520412053608524094636920398874866073772762499277721352101575766210758257891214255250724446299758301975719645610612881693901439621964309524324835034229439756535576385259843044252848859607906540546442403762579929721947412335517066616736198948789901327089997411527549130236921056148862916763420884911803447592746143150503670604556346997245827883926120629775202007743469964069071169691626113659244967322756094786747315333799605202308189257745088033483087198483663218774005448837764046600502811298119329679294823301935609369825392629547185089020388927505475404533521039508351703271557885575080564577606596820471705178719431126880984013841062066079977431907651639066282452118079801356518483652504475552450687047873335763109452117312829467394789259902407893081310766989536419257603250112963270398724008194902761829525636161152310326922225468979096825291633497662625574930889163008593019969998267542634615000923680280729259774211731693251643379734074044072878807307840712419762402357406101421202168874166115542905110108797089724056218509026889749870642067827445665098330694924658921398672235858019345875793947947056592041391469529632983126319795128938427620001700067368879495990690540896016346480770281331321526860271646004084046175006981145292726764178129100728350265571853704011087116301580201606577471948212271637319675085307497719360353308483864011434894297215433395402617345490764086795079066864186753059681958077401483071032404691766789270089627032732161935675358802792056186885050877743992477124529127919237207425277123518952213051359022745835100948977182041331541139809532139539572881382101385247343697766864981537161307896253577494671060089990816587596088078935961476100755820018467315309638992539198118196857964056630814889661529557672366327041808155418622570393119970227137126161840753044641738434549066541724467157515948385422338442654615093469842774958150326029329776480034186126200583624909498768280984369431706874720883586603114250637422469879970943700224192708041563441938502836752453314705248188304225907887623052942070277863025905680390833010605267102204717988216766328330398270185435493037388527505157526472471636487583023260984553967240948163803742441445045406186419256022921105430038986769346418059230507396983069708424935410242849463214060903853659879421596150939745104594754916416484764862885740553715150732423354609613322201409478056149188420831552083840052200839697579741192487805031359772182250799416405838761648143789756429495218189962215124606039287126683775776396741922491290839924632607561904124951530445752147724780448786143253179038742766010178068490947330931805729350195451664866692086638989291695524174440999078713008652345196187430272384841143008219405691257141343268808427342270670931355952660823546391577188432725197329795085046404728927727458412550820603559127974303497678238545081950958665940379498871441713103131442071493909537675156634694083939785067807255334325387128575974869028474064883323464743122494296145286077107892378298069007411617679079983999411297437875236275526063242277471397277613212987384138838902568249959202881996965792663613082596112760437551699848855430545673833037411663547899246958643869499400148035861996863983137409447021990677143652886989180604234814180065405472880764989246757914478022155109100779628084037411246778784757708310996452102046336323335567753172941067966982166334876261167218350264133589857940008647834932111919313804880686889035061267275462970758577479074569867303786066677290367552450790377516785819518895030434629315258391078815040037161526777751044302843701873842169478443111453462630324072730869929832096767241526966506984414596976055270317424611142012334528990616319174180806687559735595263425749107786085519787866312479197094667363686066281926702373998869273510073253038254688013731397939869673358609209318507743220125871499527430172231043176744641229645163722732070377244135012435784374600465920547336563284117455883558318971958627283538364085487963452279683501779265480154600499205880046841126752560547443486443063444041341414811010814522520449439935148115041329847610953342661790968099214643303431672653643069324689632656294798887142074614163849078547457687970506132047192807547975241378711107470824938686354772507959662203689644030869215145643050822769872396274551042581725400282088026066049954522798890467458288087049789831070301438771008229148649308538336728877204002083231369798724106639146954159929981686648004542948848562271474160981445517169229350417378284553453709263741373288938593740735145868943301574963679418049273666906828325164614851743471436071087359342696224978275656870696580710244307687738895050494658300445469592412575341841438671083764995373119409284102129296497984788717115390460476349059814365293568160097178527175411540901317025834902985456927841950366300211417514587491901938401438384881026605475038653669878957424526932439408582580695374679747987934127571707024438143625137647519176349307268668234016234733997600635025762144057250017047736695753239166022871098606050272513877613780740097029304610010262656642776081834769187410410162369112537238934341558273303789259038740626480569337178083305152926040940812310651092762823409749115712357733590652505145591729166297805037078434034230604637099656941681089126853683592326705642312759582743179907161077693967082703494738985535950871442024155167040269628659526939230214466365360946520755648546594030040322847448919346800493751468722910679755242309422660351433012701536730016477209266294644571040320209800743039988645652712495242713100176952075826845540576438332106157641402481343377159218491517512487959838086968718153477525697746553052586028483956859494139212179740000862623823002531207771541067356455062902427642588275121462487063275159641803720814530446713618475783053433972064834960758550775841184557059732859970409240822161885207671003215877726518027735363237219973840395750428529389538693796226358334144375990396898185521472564767910200050510988165972603084337337339845490595733714363475493714355379399819281706454074314741989350997727797342373142982100140878536304350122615673721282690059932951227426288986293057918868347546365789990065648234908345107136605969219954954406038309688837545624298021127000076346752458773567191479954584564789357918405353316626591040216668200415762169866190762799815737407820528003039356290190431205884000874827344988540971124183010721393734335314571272075471145821155588852918473852309827463958338477103605780705898824112378624518055541159035765526785809098952387322752440982900066136722256352725439110486872792408221244173950446776650949901113660363345496232660774435046845100155558571367452864516883819968769049722442823063660373169904998214874292486051887551926298655429328873427674089017441582955607322632456737680202421445429826752698101457153482531113659988752946775187511335418786046138167362280746339138384274356623396653938560880703398236010953603356907938856415976349974807583263429389039322197247251313976415191112640815581591976880801941119989181980906135453366913525252701093504687336925671492447441383310400770159934449999841326194637441008212396053990430667879837979263331525491628002452045841095877032243024958955858938587982574854392653358438081397098400103815970656703165986568832064980843415190479825700939092592626322674718480969175496502504046826102793304832091294557520994047394255713495399520552536666393724292420380986715974015009654497464812804511480182400373677347839886274376165997365417980604314609692841486907855717516050727698191598184256220984935367983318005781732292054077816901484436835136571085025726715643067902722065619667043201437898575889483922334283153968863224264059691487601561609739015416625151710698027158425289532025506817603927903930014438961532743556235667262370411485945477166098344788670102382498031761796883471220140573915659091595060449832186977306418644100067281996300321430321423861339920196910117391581221582727926032790397367203610340129365137329448640949088819422402737524865681753937734447172750427877953039047641729349752696617719293601545541844828672978104227559454571198570632883253798503534591788124101622492586616943302504205264160417844081638289971531840628219129169885984897094521923569667378840918650219802662364958068948236363253330910310645130072338075353813316608886251409160487834554305317717964768504063378877295666567046451729442807038201712025886832552229433033265638014970813778085335615247164338918050609592131784071059898683433480646348057636410810221831815536446579370782091622101935661449753906424484563394281290464892289156426107081575308773897726898502945275348114511151032145816586646201180301325618644419214561447028932786994299443218891014876165173406800704823874047567313776491395769225996093209699306589681572432340979505605383348760384018199780457310148593322741492822842579433631929657923977730354470768317594152261490570957831737234696829756899044403580117031956210048223072109067861207126387622523377352479686914025127454011625924364419655712657030464361689882836216931225417365099829185247946933817718606812610710528692805899139221341429966092443014366253078624963678249004680915303927694922189978996850118304834280232107521300393426920055214772922802497251545907710586573520299028347596075204610352384498634632717622839930920571621251912959768080089434571622682928582636759064254529559235457723602578541900727157764275581952554010955712462773170107887355933682819263230116530901133379886427873228745402589997731824766757967985487441901071311763805774817187504130254017119993683421554672466718751017393943889638415995010343799100278426254852974316144886620133092761097422465909484136082604471213462923896912266277807825610140312222125893870058518332634135596164669000178817677495944837246130093056718366007411003854950593240301915172081591718239553652079799158724262762591138945298621607673051859280511300233901612250542745168350229045352805239187637611284857230341001842302848762595151775842389402162628680038099847533961704941558531344206659232801067774493156556163441918288194052509108623716365002473276602244989763243064214060930022315348715907022900693183381669416908325021338365074123862011906616391032278135341939567021324748262412588205440334086471489817243115698346047748087147339677426635954031667900288103906627952686911052726908767858224778825918597229267503263506325405908313472303232555761206346434894975153831380657683558262799987535993557827469231414481080216637377938439287039995407213271482395376621820557344731771274098155406935416882273603289527037096466556408499367514149321955085617093092670352718598012594370069053803805611822556615747742066604644533971476469656436850105053084205235411644992274873162631035922091664614958732416280140583571730128788900515567905276962883863590739026165808208109713997403108348521942470923549967259087810597448044956303356689528396174467495864628493454551782262353105102761043531539020861637848792060247730410321618373465875574522053757113780326920161223161112264065006462095657008264906552390035848512315662997364939430517391252574406466289237310016248571630358221293673696232931783232411762765855274358752602844258245044193691256311748388303791132557314679957766258000489247486362886212972135094895959418357953634259773025702610724688965209588454027011565963061985467562077289434093475026859882859957558041323798105679887222162147377250610856538569952260254453496811961893567700290802575498672866673558328866361821600021976168257270525344577106584568049427473627325049189962307905151153320631346762925400259702451999247121201689162621504926446123405123811707317426014003984203623378834530298170549677132815827411597116536128572143641824976809232311969274836984292539917352542374644861499958245163587303912393756474639936433920817042658774896875662474729971159829744833488615673455101327052303573068782017963577458766177231882658270802526458620331307295722415245508037321055742820129580618487402167328311484412825180550736662725414471801609375455667377326902435663667001903047928689531092910675727629885815497946906393570710484441193606250706394149558654777575439062171767202200267257112305907158088822458341443709654182658806229495481784663332946453629195519453649139992472493538348856685155724427000554100213719371979658150307472775369366887467382540195276865849022677594070771255453833461552569614535151738876119021483715440663697321015631164751353993033086153111108073593925193182875619216467686515101359420045991400426532094258423862397882510110810952282415802078096621118365090244437397666897463189920327202479961046660523899824964204313864868806888069494159691877910868898276220693321675257554747454081053370872394460738014710537043826437501270235023347040287814627593417725601002749593941062827183405871735673297100039428349595507886111605533298868880047478689693708797873590380804861188408124627892608699644106431732828499485610092358337820396524362993005939775059027621917182413651366997893352675704701601004631848598800747031769639868920102027656951156820069111351218214368784167150253804988802096400423742732914431145489784837245988025687159488384732908017888395332398977199718370203997102409462228820436152802652077263203092997789643311117298403104036018216958384534888955368188844513748925058712076960021351431320934832139541816258768428914387645057786714406311205735670619139761887424325702358640437743747857532919589998594177377414034239611320229705485103496090810664999436904820851494389202423408588344869491007105230470846322021532518576791059021334982605889861598179947242905994122488022614565964170407093727829474057918253962078922813543474255477535944062116226337195343366772200259310708972595481596261079179839773920611346970355954274937274244764669153766945726072103143223413092326132880836105187025499906270683375002833166379826731273192144648009229669652701384339438530273201462846616226041445648277076728378240190113533970097981784622076099447521799835083609786803429340639817917164243738776250951226318746704251573964423012838610805627320179402613964666328402668014798074211911131814820400120716297805082424532842071691066143352102754840430766095395482705732665954752186005717599884587981910407556587846772261685496779698545545521139308383407543240742555326188711972993374645231985803628114580877133086420396658643416632028233181675301564165088735789550036563513412869873374871235010462285428577415071381001775131290888669763684570537963525526886115192434007038334465683656685264992099268749989939413228356106450907076686367606542536387295199951740388639054513422771086431994223253329166433353512758566681577335645400873954416785216562251237070587661737513921959875816379640902486968655704931808966983988996978153665285332643965567183441240695739809802726462233144639092558738475648365664875376126994802099274367879917851273949577194201580823602688160792132529546213627577089089174640437618974185183758774857494724372259518060789980673468309335264251770344589114451151002502728915499956792309253885892157816740876574070565876329533970208332964315420975334741718748459712832089319376122847833017039424143187277925772471835709812684773985990000726129876597050632264308452023475405154075712628432981802383529042020345713687782339101321774116311606535602084744133929922658097735183497066509041491727316976676608692780140166160722867265566213253906039834045434232391115382731519043767027402912958286379022323809778290321301824920482992611345703642769013190130826600629762141231543681138086736698513927788958399482237025486996051227092412204174795204089567992319212207639953200605849251254271642941244903977852719898739027292579190310876043247903574918042091436576661272023907134397745364523149042719906923645975196842050381090473355704457690067117627571551249617106257146638555048639365244102656070053498951454471366897566206796102499818714936686533469471620927302412647088517347638714421173732556026717450233378916220305738203503099227199806822577398129211958904006043717312288013830525845237838935558415926508213768537816636809395573669825343204386022246002566888576147759859214540205986307080083030527365466300906770301266866887810549937912263085498756026719780256515143364835467184301719816917044638382949213403932557375789798612164573515601542792239654359776391608908195751231627658848093179630219837283328850515808060846179315280087557743406263086399620445518021040043174520497346288152520851679898360850679275278263965693896899793412009108364878861644746268904247962354885557585759088254712681990975758093062258243915294551604898658295392518860517933168047515842504783742012268910416016653618048268747561840289408980659683476180559194733210511712091067225458543818430453244363217785377955731834876799706040665024129424403411714442743147194406049945674817559258741113639120547028921576989268516526146485131089457367456067466433578746472613461354294125109679611366651604017050492217849414950848882927413366540490631280503920874980954533834914535187063223820938704128062250637775693261826289321292370495754060794652373501868919675784913550342206510129870080200217321348079419640277426780092264567329732712973351000028424868762364079790759075800595933528542921523120677563178487272998203787655379468899786500333868591056592665106618605757471509648491325041355358034559330479021619775076034370829750477297068203899364492501227327248301925303948281985203590827862567620749989406929982817892771482358893176087225915948829941084537032068469868193871917338223167521712095962981612123509145841557396148657029988317118745917708197971436417364771827197325947287576624578318041419001326552223146215004299480191172617916992281676962406526192104865387474336884375837813053084700215470222706494677002609170015936261888713488832102406173931833808861932700487613337810622788801428230096883516296554486583336373493617164081565339801221971382752571506457018344518522978284504946378883055797420098692768609687460546630438646844265584784158569499853281557381023224409441054543266126335758921356052404623613250512278079734624944987456133102289307719296940695512710172838100697684809331076167305599980881924672004775637895758359183909739322990697038398238030009480581709110763772197762155331240154896942168959503193052481528709833185103099275479836519291069628976693081930371265103602084699969515351404485237226355261874625869074642048201501220717666681729058287839050206786484075957049431781569105757456669350459084922057217264741709675005442022158128571234115415049525710527846925671016308761419389996058536385676890043212130048604255743045751603564806393082565840807179153901319666680029885887636880539757884186005224108619233525768695322868880538604608384423039850250764609823569904537019831834987878542333799598584320349673110413998981600815485748399201751833959709310192105410988836073045204568085680339771405187243487723313919851405094465076821227929430456938759003513681814481810483123521180572351875166606431380526675101130190439244743198670891136639224430775112755557663653436937769561536254798064048302648844544904262562691830868611613023943409432665865000303937915827640481666802066317996354337314180519672309786084310149879048546034864448377134724325236957908787491645258151475378366810846349279239753565053486592116863762907627946580863824435499086359308119138752721364769728511443377261351206555257969708561865252375421439899207895167259277771024725395842966801472409032300668506720746980207846803903469174077560964875816342358229406087976790673132172478222695457485918408155393370732716964381310188822841051369553639994784075134229256124926103961059318099535907470971054817527275379332864912726642309932037154105358678354400693230825711883116894204413414014127854785919953923283950257094038738700519534152035191382303912122051668092002760971379127499335349078286290677605485513858863032772259285462759363212031833344444065830680217288250571258494327714195177685235340118236705999404842844969445362235075640127851639735325898921121917241392970735542552691440395071975468605387751926687038768812310159633328943266551133320420849903117491025182956563976556657278474944333426604557211519415386176667598616557147666671162858147991415110741918075501297606038554846273997701352565512887048388264517737876649198969355290583512684289793518252342967392756308925193065049087030919710010862836952553481057565620086601762666929837332640621815616011955265388993033829052625845113572960414481758072785233821313362693007980435858251277397732152282374028174314927510983308741695502307212696273075923799992194464931902806235898841076685087477279177437350766490884219825489536352457913972382349784310008469379450707131862703243112629783543258769325210554246364430748420017300965006985485264498959244735514121647046513222600285599787463270439837481347898945229309022080536232928261633199663708118396594373743143776424597311041450184112784595827334434280583696872191636426896815654326379934450742209453203093849952087554128187735231748405653658365933704497995695280905636705986640066630963842967374755464471739095324198431545513626359151101347210763334201960379899307722926565684796760136614462766296412843195608848774443359375272232984562106554726815087108452205606106530772223417556787974895878527723430511706485423238928062067063315202373144454252841513673877426655082823714138263847163920490016367282052101921285569338032692698617606448867277942563551571571570917939985947020970790040075080637718851207148478580033068890010558745168619282764818584981305973788840227201349919978327787727879646712803044719913483372790013516943085826378696048899874181032374265161530096354363876682318655629899516119260655522844249896448433104502579568728323414686336596961891545798560437204990773514715294971116191702340846757823002563259343515278617784363807850006358495415934601834728473277435518846750996162797984649872759091127752197338922847816102772430022607162769478143693111660932426370629299390419948563299704923202211597865263291137262553720992189762650330930799791742314436363766180570775337022881213584290643991035954034432051823039958405183512505025532503364873723701246354692111890119266911655620827021285965003656207583400957032378824159688421257131265529482144626664009438127302254623155354859912685389265789195205764283237210384523507003341166323371827660284972233049039803923196225293677619261685165889974486665579102739819357535031670378558065521291134117343972582238723860447041156858209156361280970224092857536768794700744377102186167912929608639135849916382738609715178508256481533251651149851362899922029383785112595368572434177071101798418866320323575362541288931386833518643367290025764791008921766641524711694375885839568934104835172001449449023040206221482740325825992223984725774762775699870690599976472713663288907335054564366849748100140843640433889431781817389916645066562252231014865885546624886344607198454674923943393141206549462844213869798772690881547630507843929447125588233621112283173942936471556492739891052623915369054337898856554165021017008690822475654321020388285281112026430936686327685848142744561135133712160394334800547294251514681711601197473191061796388600118148248583850072117175073630825524090400859636890907313696525854221376666452109750292443401392971927548756085414283656850750796811804542162077705022429214421873895110986861625751521113689151401758426721687559387652306078390921121966038442445359001321629602406662884887683123600151728653974332766047499543872054256827747125250508789995011566507357296424306575737431948666445244688205343458508722789869287312940621856168587085212152414376015141533554799007107273578567849716724846668671552511999606125502642163993064269406629054832888239134354199306295265904384456427215563567651429943015240628323373140435169781280794573695867104412910448847704590200120514582180485065527780591790152608778275528008319819879136059575217910094769379875176876316717446832212366315889159922596351600898399653535214446116283088788451775593161990678627577181602178724098552882726417794769230476715135692671478039338362906798874225243737171748709766993572209517071803234735435789413714885351966373473627655278137890182228671776273367508167064241490155334085125349704285448486880175058174191886624316361608671025711448366185439997513000048633551508072054491402186551756402760589146501159521830638408894106929180261797434535264856955293221874215738090611935232371559583995172563801079863199375274618414990473772005563270085245385858115611480263444617454392944344050450606388530747212755912118089075514780916222931637295873379016064021952349540634862183811364116661544511942638304797794445558486584004293785114681172339069803960784624321922355698688097539281666890866111592265980342839319743853053990999172653078849827896400582950351374899798736938404400691403701575664463220649345374773400100541781763594316157329680485657607120112535839436995896450868856157449498793948671728126024745150523345573521780840446671932306019101771582307394141037309422603938881437637330500592099453648111729877206985843193831275562267619641689370432775888880651259850056009000558814989665759553014707365120470188252565360203455538340431278246795033574058619842492510003327834319673005622792725690247476034884667704321129336106811401200573286862316552227643001370092416974541494867936854148136013156660867894218267916129139861046431956782132879228833523916720870914478353261921311365598187203488641427929111868512080201580573671148536862084409344969918703119659612214237964644404826360451690214126214046252102876621479277894717985521975962441558960102510192254914135460373669005975856508553335488899462131792931684748000748844471319861340470777779731814306401868741815367294313043956066077228227007598619642974029358878100751270221948582818890221458005597394010692615750401268435575647416435917053360720939623772690285959774712703647325343078400745080023771400795653925362994830859181051616043201954344645540508398535224546221815004491045969543585177937951911576545817432707457856899781280019466717205701780682312990750376207235047511572543706637329523515021978765444673006102177847772656369444625508861377981084054126975982391668623116299267442668165640326307645783108271901423541666571465286475587301049787098286321149063704184155513013726847203760621981613532301202388267493308693868727032109961581613889696174574496986536663684034639645475611565720541922280317269361810561293360119130158655774374686085394500839987838833549573831969983226767115385894386973050329372344528435407475374341977769764349631740777182194702167472296049085176863452785163115712667947343352818071031110078250747319684055962093340281323249785274688143099777442355927119562903963243552044292545308383074994357463234532674148571398378899643115011517215635188666417615733751406750671939905476671117735780867903966427398209578100370691782510891865656331676132622612068292543878109974954257696004391662398744415136561590359064123546632567993876018859871468569984680850926086868480366833210400610108939339819805432791037813432101210627510478632487679499380910697225740342181708115175066161822310831056907823146486481429193825030241507505010475461282458263713206192804480130199286979184308302721396686514179792863015395619040541452207548640206276990555941937038628648320368435410091113740024177375277866421194483472331029347098752299521621922980871334656086998492634003498055238290161036899355598810458905013472720589773187554837941742303418334293133116629943813182260977404019256902592855351201839446208505971641276148061825260749757443798752034069259799442398950842020636198954732417381140154516992451521845044887975233802009208620511782376633363079222352860788106331453457852004428011207963494856004064100587093112694664501954725698047185826266699197861813640447183938555669391176609503971456449826513246356967618494743413289499277745837679194427385265922830302436571087226397904476947711347227246508827151188052658736103988034853944392475711598586141435923452555794062171373134644617671773345879312652030970162385859996114839852873133602852738316408108899788977431851885884410266788904442623840454866719009399614639109574675370984744789813235985084376540359629662891351468758302253113460453236230451959911853180277729314068836809605608420207229500002267807208485275664364203517751514662473372641022953125197030470402409585731804892197973089966565883264542797747465369759070506673253700709973957086047450015161850803438576690644739673068675295144429161686788478949623546626519233177251146504181470059461808897302142480724688309281797575650573292007556894539449003112976090772547087267050927175613817215676230039296227132340176245366615106842186472009406185845545139954088527728735318888034334040068102548206257290519473508018806630446874179182414888975277063135759957206096802350165776787621416293449163385933200627776630799052979493662351646039195801555914699306697903999121529453857690126162038806764590422506108180100486806693517992957287066794416271634145507149346338038020563856366358755821477295148626214644484897988921946222757811811948238652453938456663205197129482014760928300013990047273166524717138306905284686255097589890095563829529053391203955992379263551234520840736664460596789585804049497530254176225948661828984702674174049111345866595641855491844088061054854476927947039310165415234365695417721711927077943443112232902107740106394629772050159906926882980052868317367691560959947472014981836698583157907043583787040235631583509770414157823692246859470988604258035117368362546450076318196591816410762939726824918076066730389505548551704650690979591828224859306731500348608808685920895198479857741547844897985398872650035177824708234725221699944227177304613588592027663998081276770170040548033205246988433534746346083132502917199012773306579384345328418992309903317685044665746848901024252302664058733462109382066443388693768401358079846904389468203215219067190995352873924581344791289438620740779375128417671873099059725042634885420919011127827904738776512511661939794245207450484669764328280203816157424133685023173588918297325198431102384388978868149373156571902730196230798105109609791446213063597436727662743846604071070764426674918006941949809039968193900753072364256056095609289814872332098705340586353109977256626708262627897691245711475275872084949378715948346947379105803899007295265359464958003829872301433131990563338452490155322347363855894360723346301332068396409585623193848134670580641907211709508967377124856790081405328081551402077986523958148319023757059312008822140643524686138898327428790119711520062208885352330067054878355305086229783209548190777421928091839617129650148441915290394999199678441923565675409670399749097641121673710427724876811223488167364168066004181836266196896443977751320764832295578629860583637048683610881797660319696707428720277760921900933216783857954710659236383332468615326158587088844231971001579722605878976381181118817178568672951771869665830750995030359348360515812341655518637971583637726833226531341011566093527079869976358675434352125194869468776763755792411278948623030124654411309267702065389985223559829975024445367420943119933729163393417870125518152061673172552557317399869115517530458549432749780775054946305541343146460297162542495657108629538731543975515379151495291699317818028128936133727160642167106641719185087741485224922920087741078260632158290099868294505706369491816898846449977637469137218409832300678577731850687299467831074251737842735923244000853310447280741028298776468277044173616304604371362702159839041688408709998797728583074963084994664105698229957933346005851438545532401672952632311850942115924395901789080288423162013003725803588409286214531807120048172370203488561728641898446718362107736501618578248490723733278029874331263444771895535045160022817720212499291725259439214771378936207092258269842299453773885065661601945826035933746531925851657911199431899357213540744317631872500184574794515590283813054153084352368665358200961766238944894532687157377669462074553770391042481110782540491836282276275142739316330424548791056294751755535091058386250810962458751603687590386145098411736233027448243892518508917968645464348859720363352199292685144432041769817590775030219772154372660884540532681860568395559646594434498055361135049989578303484293096636291908481693750164909499977132458312171506101374024588656257182432647311671628868944533541240548652367399322364852882818952495990896745589762646789995385886156115217844022360182679599012272317147946818791522857324743478727364074211683004385231414484916721045194700785593350757655718798549142658163432988535876533245835798285074795072930162202606310275357712388571754084825763140304002388640901297156768189188416591966489111402506962573673007468983816254746242433833703444952938803566042707426469781593378511763300407818927436882103398944567815120751009141561774280907377372666065174551590903898860629587855928338108887841917913891112738763230451770657952415465153162457555381520016489534405218265436951586877538285406951368369731730492206023070252948982440613165543462586647368175096928314373517962812817294490741854595697930603319371054411005069812925896591788912611384907857580729047038339491912793251677433307525944992788362374772594496120222584299508280212282973227388737837450785746076628529118296106793161947639791078094044723577405178394377333540272336739013376356792080751980296348393856285625474931429351280479497121297585209838918387691586969935308377125189979285135467661888012877339539399875088817959751053815924222715571215357761164679883942967600324007802217101561154369199396292908784955815397937232956741916779478210784979158532080216692962134513858738581708406864632846307665163286602578999361417813398495325159966102220225144312268384750963090165227673770307235125352637234678550077322540516625728541820821021812007175586743944841471527828474622889679440349088933095536243154004102565366041783374300470098269095252636664118707251212125641722649999633943773646708310574097685394608764454115814665832021500254394275258703817974126032785355149479181920109011959825315478914647969785405369095066258078586315279496745546864368714598819065458576618612057603749548477328734819052875006287478827662259161096449234293942245954816826234160558159318880535035575774231305797699873701421915965740965227220171144493471399385186675398426124725443610505907933052248887628474974660606931249596995283628217967172179526777299005706877927180066487650869543006243796706392515188862625244372755764954748299658946095227273600643723793109208206072154330765814916477064930770948357271465315925221766841524611969425488515343783516324087518964625417229949657880297630838985915458580108263416640284695617852799405727197690368635255892466161838327841336541146765530611852168270880295166614367895349516402880888714555322097137394167269708432450610495565896265512505391124969191145271618989202125175232584045814040534477448861209745363678461291155111801943427493641038346872050807983300258663453419835541240353510635645478402651211539293467168985269586977571177085236709075391945822786624811987766486373438026353794585670161662855424680753034543743052750605642884554399539713151094706636050653051399432083675803498424346889080111304888132861820450827275405210925453023914280915766898970849402470057292878418167182138784005895961784961546650518901653823014793019520047130438266619266227566397234484522073137292946746773992275761651742518285329519117450803572567073722092994440740633724190367214555441266758590084910819564932445537078812361848866323880655418335555141156503743640667877686502568965064451105965892821513828147604222585682863640297635205167611043280645418787254378275957522575828748466071637621509947251404648950575168259542802942585110991497644775085838994954265042858803628057187732707479825730808650617838010330787876999781435957914035584754642944929726853883693513319985475796150991652104979520377444069964701162967857176342457056492269813076418097188030134452140753079158692170217972453210400383738149797769588796542998685643909605029692116929287192077708656529488943289253784622956307653122176128610653283238208632026426110842328367234816133268796756371389235377359976331221579372397667045960548950090710812021945562399815404600176626430496067939890952350717719562205328485010447107400021073308661407294229500247054979611234537022539079386100872899403962150191123494674353022339985396267775470050153774835666965776126559368734451421112173172723416399200348233671398685268225763063467567891458674896885104880465048507541297652296915332652451395395943201953348644059846991995052818736715102943166494234497936658642588653080844648545674105704770853976701195675597045019598734017400927524351521363967775209857960752331004824049976246050314131996077912935497432542580452797376689489157874727406304140050480603797468089554074643250714722379514994582803416545712083958480737084684357979104124156474736253845188700344735919845814900201047482226876291065765744412896370954637939349870969885460287137208234545221406436388870621027954477721324128354023340832795785345242131069533969786411702605734395820642000208644906654215114643576119859467008397551138926768187881684858907849939688200007639584029210533611692512883871578515192861068309938034213878422874838198800125561054159881673779729079867151631817721487031782988420021812653163894634912151288906068560621354265086883610936115347066006824548262711832410516238036071795084022304522731772315625265095985046773294419176882893803812470045070730773323640509227696585702110078148945550929089378460406093502357870827757608781973216657588783290516781909164743439762485054814624158955166434174097663301470176086356394934204026413372006804155951793847303382462443027577824046070833073005372962748984571886400077268927382527944358199359811569238333103571518674418115275348093089407160612029647640761430081532543001378619090319119042124977405470311614773336712351154698388998264785967115078026690365183595331515679407298184998681295125940284201746604832175335771551409979621741782344031569056373012259214239205558805455124192265401665577504132191259601970878600722152135245302661513436911310004888907174946035886811225788061010937296475497439817188357358017207064316547509682564187360043161184483391435699037212363153814298395447906366776674436189708900724157972423741272882073815891899755050872886557003389342829597208798758463555126588211766029726179328632646036470949655234535163593391971301201032007614703637773942532682469346115565234283199837077529326976461503805534160129327644677710393895618883615534748414340382505057094815046939870894590218297092364713552240612558170740610342968561654180830372503644297458899143243699237378085119836947095011333366263756333878566578791951292395147418018771639350929246466767908472800787562946776463471617592151661796828313165812103796015770933606219747917791127200490581395193673976240187144840479292272536284146402274810318677927961681593429995510865899788341305539959281864752143957202117730220421241178834276850093469760227330756112688036821813605682404462145657473684332804758836872600890289091505047555329516065870140414058459535268091904066461701908289109193042957685981839989619142651672294797327196765797109408290556625915807920177182515464325724439519566364234419742547801332195479898100162607027501378247856871799360531054234404315237976431296372033188614919430011161115372011597262108282851295255057410204738557606413266383935813096428188629314691084071657775084302420541165714140548589329730644960150797507515209898241388470958616695600445315602513305778715856091502625275509288177683145575898759492174509536198940736197494426711087863862875692955977338377337790141120437168126018216572532592597848757665952193601257152392160246315097039696951913117352768109532235411853045887400521110891114384258502845042557406576102752195061502270179900823972620141432110060460264689524836804285979205841893246945677801311325127960654235706032856653969506391229853701715706907716169561641976314760055035109499002819571120419625066243804743128920066755739309553785132849025706565973130324382886333007970823219835664684520500506434065415773587915137374775743554349346773262537510856831020041144127342269291422302766505521580716578632136633306374754278123722170888402555080934733610714979668706192237554268821539600294155933396670357750603477963771652721513327460390391507827602941550095977204694739046662333964185270944305462958740504994590679766943582380020205845717776098129189175098728170245144260857744809150393771157503318071678195268996268212365297230782931698450392998112676664802251402874617484476951386029816319833839288673869625652872444410565822905200574890965868596076150466470460772353541152446721144723497309936227637155143597432874669716748443479854836734848054245058364627933866914976204414811970491749193591837172794739753681308721360503681100270617929430186112625418486827663347213305985126577362482660872120635749498027438469532282360691513963785538466294127731653918047266136675365114275223222167518412353014504221311480022535108819822035622709303625515232718709195083433644215153006304624696903499644201260081983035451937901902579522148563846972290313486321123900827605166932090031170016596936926978143560286841942461694904294969305107724821331314283974776076456593677555479309584818383419239850193205736343442685657506962295816008084485882808384679418934463221895094288992335608652307164706073608512493875160372366561433338028603792420426515936239132816395195667004153127461417316063583666991799924579285371350177940101266642981746007910906566431808848415657317866293521679481497707371994350902648507329909469824626594130493064626680715806913746280715501698222518642562601764329914355877193102059094483539225277238169127291853989731373492645148539716062424487776790240438865654412242662492222215953453392888106919006281700703506965671795176579996142418348908062242303794179375114420221100382955705864680563697699903542953822470976392117519023010691291024362530508404964176380615574307673188502944639020461546555786237203307015072828479549090996862171218512813955416532812075806591689610549906313693606349127779486164484243787335740368766967884849918512297837746799395583525262412898271446097400482045241475057599828375205321668055323744065507316926182280860274397900177709896064140642640182418228386931933797840640671042500103258056082911320017419687636937141390189142673725234233921749002989309896387991127706707632747910702888678408588738816555544236924870180596872865985879996612514244944939553067540380519866523266423943861072148588330585670773648367657916407849945519701928907196147290188334860496889449237685663104189861699095091829104904848335509351485118580282258282764201048034744776925208390465810290518479282179104790686209114354621420827184344603964201105660153692177892720799523105137706892480102989002329072807651578543603517848698695081967337025389100488228207624825749517892154318531965922374341342642202743567406159565767577168054540470620993280366926943198540830514340137104669694822410076269094976964699978964013224280299486165626004030619066282319483482097759106907242192015551733235057581218700106667927238036471134173151833627664954225417002255935303926384907787239577901126126288690699433928995304401624879201301662857796726531249719324736933088556625313481339787848166606423405242527757248669743412945939259948241377172030743061133654659803565004998960527113363188365866059901348610292623100887136057726399211341927357494182016209947734962886353256160273239620320157029811871363136243492759479614301627965514551020847749542672877376246404594250726863822274347698848764681292696707338150833950073414369646827054698677380767066348468315791421668925777175668113407121450005033384325416363059128875370399084905002613846505832409930597729628768089511310970925377253629525916861937120137444014312776589562955078917537152008377307234052973792841203087656197651928625677948581492599693342849361026208010180599636472032812874147140267264812734321131632103224336422723252685134917571776400587391788012445036461861160895203308805287722756539010098718138507712173397295680489529203223681788784243264454785755994943243834897988659914053776345550879400303586818625810427771796527985550975765586758995430670799674674839710953950268566063144163503490370949698473425255776132326824638891755632550445955731850582645570633131290850601657437104555564332419341816068029120142204595923561934255619933792433938601297644344103487752558679712256325929288821206878937902853352968487680264343221617454558990786532594926388524021525591937708190132428372711768287397443538123090361085032302606478468517621109744597874830988080641397575247160463216061332878886481203619737594919422798576371913452878955942961367648380773680851127920844682149959199123596635933110832856008825034163351727888039996424332672064264727404250788539055261670329356162949413120373457757589405325307542495289277457952382293070164451820465703236673872057398754805188994766966997191790037378842655898201697903676124101187945368462609369168908553181340682474880291667133961538068161133579859742385622831619579434298195288296636685071983662453360003200050041090727205661571039405178705743637228273295170431398731826524208722164222417675665682587583048738531848557176430753505070055123002024503931570691560151145194262962949710635565319066623543344966419609302047727275836834637830650899798332342169690453977202708287377780783975268514011304668209011587445840912979139301035056722873386672609361636180951937818845004647374979501262849597623216111742862145249253894919501256491590170807375804385576508531444786576426333015390217743083207171327907116665260063040804819790789990644016697986113777759451924651521429948796556309542237437461003510230793922734049297352438879269186499860973118182303763541471032900572179530495347588086961856423602979270123002808442910505811933950043981042785254622295034431050798143115764351174385947965408227000541543988161528847653088371428484466977265084016560979993970418339948370638667561060162229695915860615301154902922961086265003499384567596506791129841363800806917547781907127179284373309179633887614383277480986501777882697597139924479126218573754359143905748609968410978291021348187665849150268336512466357196260898202045802260691072952774703132039971767002031021797593291074567990975385713453975370326087728084598546750719627197856213508551228496252908148293862033212052237804856241195103442148101622410533338210496973227217022396899211420621025324693965162572117660144771663695602510684076148006136992775979838049864148152472248441764113950007234024900652010240113737565960400245215207045017769246672182608921182632298264956035191305463521079840463590974252644619962868936105390502883740908815456048889381380543577720560964244622351223869191889219537731293503333062672296715263366671144093455633744871072355996107161587590177996307325897748194150324055662733983257528628526586547768530895527055600129892423157105321741093160366645575874131005826826156732635018767538988581307367760579739994946327771505469560746891325401696350637484293568640316697116722168790238683692184029971825255979132196216202502278525176238191613871836523949316100432180561582000201024575468188686663189600774581634243614479699318592545419504719166697354940406673067801705180655855457009042642599453781795649405896552673611197270845853055619810274208347758613027540681056318823306082222993107092662621888779418807336568112002191887820092651852053907973131772946376314644956016355237887206540851553254114377104561335663098835953070274546969868429135325994513474429645017295099502761183783898823814911943575347983499636557370116940477015129905219950713362417329987393144378816351728969996514704908845095594612397362241316881313282789146914288278074664523820100153573443893185175538447456194629159754459997872033773106733194519226053612303408292835642599717063322055212101129658013530857342675710458714723282467658743246095643642130514353708066741744775340578463843433043941313921972324838045623640715144544883220850488526020929627657162628424133943515827719842415202174056740614375199654350177595898003063686006960930924696043483188698086994142374705764779408185555712055536752887107595660161323064237488939356628717650400593851312691724995822141461429638992001753111811186187745997382464359958326219933601399587913282613964218629051772193233140476708150287593139724899281109251690456967319742693975633730577530112202715467039975593204624261010528393181633782142354510630234312400071290252224959729577580801611679287006134811386200797092662269287452146594223485116774468131208251131152804417754743461742262796084963153428465297512548807811447179776188022199917802199325379879424358247201267077497981767935909395158539879955064625378425925599711614497709802979529843586406206752601432754526319332538712706923656383697675197790391596728471962250234402352515402293499165590631007297663791078727257630582935867543278617871933847879783894378977777370098563614191456196578169291420971715237742654085583305199329630968035340027799371278441818417426048230621517407864850443019296419066321667401137123472988126975594478612937741738579400580968706343620757709442427458702578619191750903843044536053607194560688270312866223244522263715220788341097320407595924379264749789571869069259543437327180904494705583759591277018713007212795386980381581720258033040680515854946830861103809141085668073607945126946989699844093976375993533586641361364297062077839382770271461397679935280360606452775222553663984039256738409558005595228828932781062237881508462576601456992243397926062700038629950426896592161153561980583621788404284266189519714276000891159015413162875946356576631683622681382209839510237296656379800778893101452300676250858167325990971074545239713538911859954190662316263634703189894897084880781219152439531646904555151710986831405062565946774855571124707110583230549199211006182601255869492128305952129043914773232498433716757485822707171654110411548797070142676580596301940484456480186231811609861825507669525222043156779936963502775615553550190586731592433872886857699358405125460169802207206586874607929989783143781108453735880419418169468382603406305301765783234684885858081393172863735455339599540374250424200880998932470736300557712484972913753817362062897911026095294189990015374360063127383001069360196669112504045406168878100704854789477710184469414588159889682786781033676403295758505373765369230615913111178680061788478546122786830981312329290975621761252397252417964789817228515475961579820179785863921446249538161579070953695698597948127112230491349426969381342816777728617470737080751006424607446870644543666180151490491740808983663549404657890041288164295771007281446120770506160597646699726630691768900094531909062825210067701590747790500263211512656570401277195511999588436047099352425502011977237398692550863042198896144040063528471676509333885926204505999107340506850756543150750658570608187878762572445610217750882598906066614753848882903412228210846829272746469894169765102414789782050198080385294322170736279964446985673681178727977454241154746098941650730976496721743143713983503447904914965732827105382017579856602180473815850990019475101789925387158797383614215083032104876936898461930668065385429031432519019408550208703025180244869678590229196600211222843130351678483551558353684246012145943236694417375457264976275705893872598049086878047438692009943072808468255236428795453870014230294910898829701888314383894317911306282388733646962499798195999306662794747905149867591822969009481201492102430756305326220804125312060692622617276702061664265831731940925482890147514763316712384768413791616984901820215521358092179346443898013300794115203911917293711794975108797215385796161079541248146709426875441306818374448688629260956371433184714788403087578987286610039901097791974634243782943149750487019094544049799010543113019962867776599584396810730617154399069031373337558880141197380740587803769979915759425556984450808459702513505304614698255150616067871060876155745871811962770846899111675134547946869616870265316647278420548825569981537684892017319185049032484483706367525990301219506356624994701387741548941727679236470162923575525379983976502361442155738748906098455638995017267713049107054320272649702914032140167395737052820638186805738441161971589052688963045221510952212404040588949233454178282096210695795297074248483562752106963454296300062525787612539130972981512783418034718918445319282407771059156300044504754139143842564284077522060500808366052676195685925287557082021432764179661742169642718086784015139297252366675155844608331133761052601939109014511579421512809295995427517850021401407285861826255580064684652767526879768768951236480965208002570963205905483478004461148346724524146171759038174460388130059420011791006288188450846472779469438881670918899148241301889442946485029980784835242149334158053982649061050995214181772664357146298581521367845136129047609195536321433550206780806319737024722251764665519983135337245237012530383670180582899427122889033879537405608755578500005495988233507637025021462644142885592939416073689630501729352774502543293644742784998847634519763575922830476754055833839630377937497978655018744946701279311666584163582377247014362851370042844094291579821581040180192470151074289047286068976271581224814248117018315231869794540450085952482882390913366820804776117847581796533200416349325333878646310256200552255302148391550108039364035894747418634288934934052162207048071029783717652180401234700225094963591602339010384730212291964524698979724699309174170088815025417694601122476038083852910947192815436500193320080550490972373972180879202593524955494575369423839194571824149735978167513255921582650808080354590421184353386336365395136455845904897772521888925002530509705394489742197869444720738448511120737289441581056120486219651587164616882844631916824158328769110678044471819936705793051228007397950305111162766303602706971991652615666897743864659084425013798624268213117619087720070170669209879747406845897666137902914083983249792105611931550661799807419419969020058210463492149952230286598168543915834704462900154142469186834056570820236135475827362002195425977795076858171309268497878072164697474028067967718071947556240116413533358397020521184439027396990697754264177769379499013248174213867955897158986239963325965266706707021218552255407148393164838635452866322603060893199742721355641713416549796566973041716988546881720930179716521738560420313367716335747668898152764219141546972029343277628905579316634651563783078448578114845784628330414271229749725975175181380751012021005156345314771876862887826783513561062666353116442160507608363408187917738710062659122629008149939953981865385719572555237792558582268721704023022795614967430908908703934226540620502865908222611308062671747969149241675174236573621569722707840447814064063580960976374867156782414923504944128467498237636364505714356897113599079220588835258170245174981756289349691396755782304429350296460684572520642043159332188582821605570012506036003539193472891714484898528189273094669817820694614498428850199669619951389246224197545986198480499589665614958288756655464379858344987502358102818978170449243392279908221345157826376671262101166739938168601364382733698413591388885146145583051631249769862347643758783736320777100346346017898592373012349792741199096664034554238716521746237989460966122669835674668993724724094481012706650052647550716725708644342954581011431956954411074939013361717408125343478990747279703685860191392005701352536664946175651462272952702749763434802453788148591057080744915449460142562323913946708777887943959602296246348769989573642502099879223682930734186302428522834162130736380734259553618866278510398413088871432759994546678877653593952448870393076323451642101534945527988023979175313849537832696393139635129779643528989251937156174483141519915769369595112811905522934757653479982412970773252706076064323847629543676676893155235137334250456916184610902612310706218627018021538581583932939613844522079562965966476016937523390568947856604250323176652419226576719060942627684544804787745819940847401693589930560121247236924531174580360959986884494937192404738970632634525593489086310246420310470177744181950163641902332476969604350705089953642898629230815605225443161664301632680709533836814716337436666684787810065845291973211138821844262249375130465701444402844807919204912118139165711778023624973870025155864718782258106726368890955244110800516985866501757044562335886259794165757636180450076648730166060197736788091462495309991594883379875319999444479273791382673570691870916935280526101565356636179528830598044210052077835557772357423504985785010691958462188181460806610754611808647694044831566284947431641511556889446855221047509624697292011773523312493130748829135946080725561239863685706980587280260813164257186660190853318418992293408144906822566897903515281110242920013187005159045476115514870607784590438675895721794586046757265575144191342958653820696548137937916034865377249485720357745151391335287119322722193199402295581533556506605137660194845824655927993192532833386464917725634064558697111845106951716384729643545658183104389392764487129862393886495759963891603446307024243703294622866371171412506380855917821920314590329251126122608459500045661167541949813529849083497043898555430232318100614197751009958256953308720974892206660553686619942492060991755289061248753314206724196129990355183953670114810547335339281790627069367889677014595559076248391351491125364148579953110432241593762927664088019705602872783312410014187396697677342997422834055052556791708425919182479758011261791437818655764540745434852450923596000211627673293277722409451291320248071145063790289750075096510562403550933033427395975151927908386128537750175227093836056481398940770399353059352996110163329415040138059333883075811746916417073497759175643184272731513288659514124711279952211429818664127222402612374311798309632815945174284154370750632636522032840797514044176175608828280344629498162355230415791974180489085679003600095286367098856949100022904511516379283374562470817445563640087852492706988002044722051101390115755964936612712269661183623464025148608722731758380853316180083842033138381781611325831543366671137248150519942186383477148719267186193716565448252502497467414836031746431039281155740722976814698006847004080830534181954610073668466108737200397661722120872792873867319977390075858362758904159052990447637707843595036631156824718159070779848451446129175500286174763853061643945332606224069966402985925678032160350698926882840625786562759127515924058397714313156793793791570371095841977312247101358079456938392733251676983608317374198965874801843613705729364706578624951551189452617995124295943341848144755340588860558405842244079181703431107290817199313454059755770911544955658498578791476734605459467306253226557781085840279456350023396709275437148904208774794109249481433063673758494304029338734632016236612602560505398017320671727860431601566360301355744018789876799787169262220476084294787369405191831184307620457206737068988075023496363784406667417703865493938825176558320864967455645040247035691229095173935224245639057682278390440869068953494775537148209067250069403821985901996805126915978174757895347010310372339692018014747411149115470105467666762597943863707697094485569200593720263903290627823941819051488447419896463531465849031331782140065943894636026510795719085205608469799441226991873483621630023769552233706692133021955715010116474551811861789514961806544291127259180263039828669489170400714582480612654734443238858600328682419096868405324893362404703301560759654788274326569961164355708346511147771739934206654283405791151819517713174341181245325881852966986590774154601897970701846140979032974750498129348072598228541747156870085413976154905533089448766931539457838742248089773127757801699322316804969892167954262164792353239775269461549905344944355030413916678783131007602153142616537044168923666801856950906483029618469608510228827205917078555035740672353400350510707658087068137365454783562790194388449909945542576825984629566187746908870243518118296406081764116815638420110916075236685009220636529842240020103940028831630467991893631561769549182822273132710859699480614398687217439122681074325861523456085959196195874163927656445572107483584722256486724486909855163451640987599083790508109870805085876933455625248651890854894766612767653945771328794285821855380555638998078109467600299249521667695727585085924570848087396977085257946298225424500349769781356614075370883361879857109307801690322417177100837152516173556302153548148147934155507406858089503609357759915854447261394754590689507970222388436516911778600310107746901591198549445486954537795260528901466792855559109914514161031715656949030247102144860749364321973947628570696632195859534403157486556842508984865866198258628565082679122263646702111620729875834929890042583722235659610806704426061581382014695727696228953708902084594773291665399422726819219068771316843596965874486135987786079860120776432561530347887595085009523206743531992394954737153862351631587075801964188688694432472540011498201214071135617275929560332251711277061033430724141548347267116028645075058885686684973280168085904213187407392670615032946672963125938327873375678294560625124529514725675698465065249607298042632783191751745216748538813051346125823326994072248470732178021173423897033772729931765444843233643074759517330298600400046265534806429127411661814998101680173256679711594749993128239121412808704979831557276118867756441709026704005998188636036955959614181229380040712197820727369435221246870249165552486761790497640348964325368876677346767679971929713557091729306859431939348321365296226320190246665754301512050084284199328133742008865198426762161254269289331820520852332025425478976504317815815985694403327525646060544505149870769354370771745496641394320122456565713741254989810921109094422442164887872298483028827498422259667941430022281428788930407367139219422262141630043361086699244804357157520011420524545879515303164793519407354550469613730140940297916582565614945179334247226657688966479501856174730395678215709162902294149237455552590272012116103705948685117495170456846928280109858775270466023357933919892410175041883436892887792676014114995194965890710885297279942852285874726118521357100695264067769645319063436902688352713394265677392907917676242666737581373733756393902447577154935490783565407999683510932499002722847047037908909776904418012214531970991401623553742596364248514836946372330922378382480493387705329634122672750332206647479988392604158666661135401842502213211246728438754253725713806303599085704882559978116139183902517326206776074804422301473945806214233041641545187688429601439204113410734046112249310027215353310183521981521089096840547440486819638627379187025778272567926926199691919098376256961972801635971413371196753261434979565251588293187344648837530257301294074392540981386587465200717942551399944532642301542782501857789258795005386699676682697794285963973075183973061621281872048192175875563019643302999445254746824333803941663129976442774145370239107045471699571552115400317054921749079506112925692801934280691983115826964116055534476755358005871245157189020316444675458696227714716922971777894892490585756789760400240331274821079375296000714107587274051483788884492576267865638148116589786930494023003354908619171912776806665898335124913166770291460943222823829159182220412250944354154761288662165901338352337322857087475299089847124247883940096341195586898475914736402583749762907244259459282620216583501418575332641109172827435386050242189126521368251693608584456686444214267788709919110705301115315648253632410004400769879669255707061014142676848889934874614178011440498458749572239634757518958086789655351129888190357372210211733607703632596000852585376730396669476389820897114351903545731805864864200877192156216413176689026917001166256457101784419375383939150207102257536489520407077064689335132429676158353365826767390430195466113234012831451687889096253598848999711709342023963508153140143850071284349064673963889554332694277378340650405412433430413108741189116848053324027362779014539348593698982137289400999011946962381962225558878667071119158228461977359600656284119011303646631198251276531371356443106210516072211830104139205105052251499370243385772952795616481457577985482047772768733494460035850257714428636466933763116531539798764615387491092229134868874059924950957748508120509674834284605725887855132323070257929331130156274509012625392500606234565664088980448528573517039527293177860397421481132674005855352450943140512550852121550480749198804141388608538669420268054570683965624347139945723769232182004579508921083638199634887877111279124061190068464522529553256503278766885582752974207748793946955720969102890690960052517699975558805797208731759489207310420421996099226567114530378383242490984798556067379900341140603387163004345873620979023161356917918811626647175443562656015739807584194386591215176159317197510140977566232870712259012244982720439346457084416874358264836108612184346398714242453584660216115331455686438080258118191399745266556691959166286581592021531587047633490438701366995038290376031124681511329115882270078290731705313464508874564388790572859305190323632995001042658522563114647947567070735385975990484257097845671778813629546838033150851091751194585790481309669156977465401666999150260868220520867355268526323724760725255843615050139377688199195611541001456172948263849921319626779544948973951236779435604802238988548892347228130048617468744097159954265258476606648613096061080299293377291029450286398714652534939457806647387934078704918707464864430233619588685539402524241746368762554019389199470652590330097643154174600991870874335790471461570571674154336498247189418949546336538930988786185388874401391280293024757842729305972859258483353190470992130596198331671295491462403975968814417761479335107687849036955020310257659992819428264244631634080948195681838359932834158887279055831100273917995598178818999462902143263279519097348447027102149205050425861455614781841770485734546840651281691432020799999960135652084548339057927749747432855391598437179428325414512129040117144010869192736223709671298047101453260694751779487681550976669584795396692109078350860202602376140243148783249221422011317880367132780176775158040696651593334303520280067080506516715966346283268224950038645821683622652272488351118201058750102488647249894538270453114670085183898554741610987975889932006395561302694997330685635406814398089709912417130933629045854668424059500436567782191962621275564309775411406553002203914984166125290722103911480278700985724852676113069507050360827426946725609044396258362493677686659078255828900564314132601173698490725369144569529985315854027743166139963883370007301955208020882883063714578252211103892747749877690076720235068379243368598047807480104806343359622153847581818523178070671942121728169292458480789475345673696198064657598658395370150509871395571102376686388652722128015767137214253680243241168219647710006499263613896491706298066353239986208088267594727515270288853930434793485634993014896964037733555195540479212291926388774477937990207858886268638511123664063102603250629514127579403925032267408986553187874166918448775752845548349446418743686915698389964765398878920344697407316366601115078383941509140339274985501721745883893866631834789707282059268614577797384232897552812798519166501323187718383865718833326095553751780848785600512684989940551075050111449651754491986735087373931960447883663016704238156951722051045723990320220596074111876684074038585147282439844100788994011540017173113795020298901939088785051948290013872704687289354844173778231138340348714740819926840292474598988630292301829552599670284721448531335907453897525328631611472993960391543737383284571778751878121600884075274087351071203121089148396706732808059779318613292634526684948699653075989362419808391995030648362401321027749791223101852775041475814214776611341247503613672356029510132189355240789444377555923473302773390900044105618608544846316087488221903598092724665398607135887658426370865171897525456410620194495001650179236044416299600523457907558639167484483595866814485341887402824620673025502646937978457554608637118122754117243214085009168750763754968421163070513452451033703408617605287586667799531177751151748385513860978010023271773093051694729591024827587076400951711048406821560245614232239320962972819880708783666872698592021509118536631728730462083670509564796574119295956086272921972039913145893279441624284472984430523927899295649256672293909090402827828499907975816061064128814399234013125462243970530138020158797340559980454229358292968165681183791795797471925545175608053903947197513465397479325907719146588321004951214806861062831409290197814626409477976117868510987023214778468110758385631798546817024048501238797371540497989680018560922326605630613875173981384991549124714075961301902775210424304292280276918943498429430174889155080364705530614037319297932586098476171535436249491050490919415505953101093560173886663120001057161509623248839152322897832522311036140437833006262390035286703758257768174084507362813357613251130865727468949247593645645018270708202010463439823293665307237552960268501207875090732166991783602766501779954002862331559372863756491702035031083527322649264362507326337355690164652934425339762556393473266988284728345512028234267596455646584598474390958799681385122043068512297670103970321496259481772123334416407797621490986946240092922728374215884829121070281637864147846377604044166829939565844665039537227385906016805821756294604751190539430468903484636362008418464473665266137724012855485024058993606993960624278412770999414797713886609719451711395851472993445262849315550402409839557832506765221367376592240772179511158157966772036835616565101954594104700488087613748404026245303148621391221916936112407314985333621450999865499035746106560123728120387231706956919537453163910498420254977846217811093452430668651356690391492635787896414280221864907330248835872194211405744226122484935156704377459684284963957536312028615378957799289448074328666477011306445102189709308639026134460048567932068256476422258477038876401815262606807227716789104661665148501089114540855603692182079801304629794821671266174528782574522318878445345801775028881736493644656210321414076291454750717428551107927026861396465438406068453176575418320366696307331743555635887908783571093604248595098685426135726891772253402112610359660206680377511177987513558332366200568689010621129912076388119458467054131022976010461345864983009294508489063887132692961009943430196061865697134257256861720016723832605586493092275160741584909374789101698689751049480126577505325801333334674861183741723407574424053919340751384463391840439218036702449739246131429234312525203313805699282657180828660466741234747091857854022511949933545264095131613706485304694178044023122009412822594697134523525456693800226708032824688324336086099596790117135178598960232813436842794695191198967408764418391041175117779184524529274654202964743661285888933127005638977335627112805907167942373774019546241384146530523093718769135983516035464140169514513118700972244908260836632243062338845609144322750474477410595933755264764747185588524634828392157176358764784707836436552690985424335171033515286055560071198685278835982064435050178690067809555868435711053549442045710461324771872089076499407485072646728396652996963107764491552294769824242973991431970325124774329049084444833965227868619688946788420147944115197425320272913648850297513144670242025148544583725390896345375649573278851485268907633231107931103546600647935212125254840887921367652811528657805330820784878925532782619194967882702383757363508873295051927305985678396551453745969679229081626885268563036685216450338258619481974438017943577091058349787263395655729601092601519773994446341811366880954982898432148755655440770296269564673055709681986307264737265795099655416832628007405548955792359822450781694429775196950251138888142253965167927092235817305712861446959017646111701805615950075921102268346402506076136300423753306017136585241999108092922147994989942976444336189083198477056932530758593230481889608811668871029516413902575230878614055030909832045978965418767331292009393000952159058399929855625318232470749740879320423174566005383130827517102913410759778679827309012503036961080688121029441676643224279114452448772463609056619368486773983391730591785787429614266736100206483546751141411119545481166076893746295369522220630323467100844969965253327802079928298804440014024240867947707401829225138601212743803230730948667400478535805722403433633911187088725133493399867096660586581109124577688372202362279036221677164655733595305487221700390760378909251515275697737307847607134499095773449760937413194630570887642400561623345566965126566901165311496720957263180451974997586641242698321927753682650374359678895898376151712455985859606133431671824161032615408362767516589101910285991258422051097364164739598396106965366181255876885119736018051065001895735841413156606016732656770542224944864713892512431656016148723192960812022668571489388322352795837780701249416188162030992450821848099999729548360755838607450128588346231191253109522068854241606722648651354231250782143369538236357125158521309581426652201818695579632777879894046718425086543925289232110837459317927242314076563827669517287178707652233829619180020329811355031483577254495359659340238311401243843011735345995768350719066686791104345651594649178934834727956653909072650880089171543297754556855053365887224117198908607706694852221149356649048608532799284804165647421366611860642104037923447959723558548660710817180790456045288317239348197215560231999073397925256448803147581185624265574118167939297167164378755843505869916995021675168773274333149151939665908224683874383938492001707362064015370034808442806057569481907317046786340556973225899611909556366160877990786909038153949904009095732352933186414174725589176944857582562388583878957519099636467033094082026438822345405825454199388653784619107422806784938006433640385686675652073803810510687483598591121208785865608282191988847629238144598995198034811932152025326121424866199044717348426103711324494226918533998846843927130302084397781407822963696024228971580932414108852173229506199740800716049543621021474687745538400222761727214246758865819541365932779829375537236462756935736058183707847693921670321522288382283325513548665201489048362688951600447475042693599625788566576814977473959492256907459095527646784894496290383290082030610439729699796983766375378689417636355909802764015690667387026781314634425659421550065245785969314031159780505385223810917211424982885415197964371304484570395049248479890534494805528106324482250704170590069626287947994183826653916249151888213896072807818053276680648763661152160995571600157892460721697740516720360773173327049260655854912714150389045653762125413841102294185255163067873752792391182706992728325586038418971006511743096850771942895752074552226724225538512694244060371589827803721177917804722291228213507629384772731087978027875694483381900034926466187191778964219110484762552298764006446740970842187550379635024285604509692902127725906596898902989255576879505768615549569895179165250769602588017629153153018863986633434051119119858374109165576758697696094759800701863282229274620755280597747919029551861810009499178523586397698254807094411333082554900485578774719693063234187341007557548783496251282405658776813597889910609638691799542949720774147933047887468837208922789695092539983567559573145644632003131270395568828870134289007906165559720869024616377603469430073332248011400762956302824505985743560475224020946722087036282446796547766134126990037408901188439958268371420805642356298895398567687424685755719383984351512140900371949637308811124161372093607348045543062016311629086367007364854702796986108199555363416690033029967774463393111193702479293796861425032045155526241938120936583415979174945696611536106399099386366738807780782550297069453350495096570828289596324528015549647563274762608385683846642282384172755112002768025606625372801774923140612228829104595374266106034615592283792427274104538299894021618620331788114973340851854253078038932145747384417775314152491497300082539798003550923142309243821415100434145328270020522780169106046070098305092236960344453171207061423176993218435205433653291678804687042130916772037573192167274791148674652092451514674852378645356745429757342706571741520756673260975324708137708145899510752651777308962234369802234448343696034926976053885058029152519843413716188764880160999453355473737125479312497679157290225035388183946855840838425834154193243558388207946476103819123354740704736630547147838355360108517868721578517283071864320899702482219621570219793304386617117665649516850468989935730613393109574348602391699333974933147326308925318817829972850273636793007839384822094193897527034300834109639219149520023044159338304955733703753452518968123383361101055568152880777628349298545268693744147316335235492230444261767719677814269627369873445846429617454852729820175999415085381424144769980662278706569822332550175462653713643576081642316532681322996100280587803716103895954800608048514600464224284740360467362964390551259874631212412035722333110353965375664784314022239979866056774259544846455095353591171274535691705395092093610537041080418437581001420936640230741264575863479033138463558099405594694006276566519635930680822746484802608747758306273424050794973541842994181381181370161885634431572177967516692666627232736720604445164123817644330261338175224690743546405252708566919621137952010574098365786087382062654766399710584948701892412276161663524085295207367858925038720741989453133756978171828439011374137610297134705810980053071339541260151816083949753042899808076558915680220981520106684534620511084205444597722019839106460804145615319062000571942076004142980738030451957613033695745924511918874815667606129300792029638464387152214684028286598370628452349210366012738356548479018776974420884134072511637208030978022445982871245781152467937635827396376306048604965044060753462281649082032410662216873932794676327218479537961415094443075386038068905956036643776850570973629012362741627747120011587888423552628012200394590453390312137156841592929627855204293579407105392303039263826373491311671031445178323821628810043224765192568140425991501777782618810628784057477460306938361581577295140219085473601979914496253437751446740502473435734934975397616219323369811746786236303873880696437594211384857863463353489097156301602900471213109095123966275849982783422469379945910956556246904658157544105428984095732351730018138268111508431511202662985396127478614952428409486902115676781106345107600595922492817137346345990208268640736905075486441376591274541991614206262457553643810935128833835667908206802424765427064548304666774102167835487935436447222998618653247074991816791317499424016584635584551033111404499553223411268366921678365028643138428640818244711165358408280472206521791694583645497466797317955451990585700381420567687044655710017426525685614686635737676955000806994351186198284330553854678297080821687503464030737148610252926688807761392619025834539090540275101803675919596918838357199842899793405378406739272904121419550681002358379820426262247280039621628878000961010989689317665438953068100256211997054119722331030292805791062478612239068712247434541132923079158084362046553851819196919019855575555001628529179546804680445645140046406846245367599267041173007129515935796230064529779977118463886676963305096478182529346180430643880606861389537871861121641662482840487399467336361441546463705339381213141566888240691790902755069925001953976684722062296131351855930200427794141718148642290283136063722085778476808844183387396602996933143333151100556519228779388075706108726519200428344778526985816915898252602516608245160851592798511590419127749221198821020389101434706006252419725452258242087884148338290764995637673295707727455500853175798827114508764368154281462275739486754903865515896654863562962401878881277547984320193661619413428929808793666125163092067801165473638025839793368669754673282954659979757588003738014013413243752538371215491008952983538596364899364227556695623250943772261094525730707202530065069136012916753012063896699620994841445529387599012520046441980350293243080445800816295331012120536733784999163350298468030230328114580542948703882750254996740632873524219254168378669623292600104224223373295811633555663919650388156009523452207157994106778954664544441333790713490307910984501160668261596060665893636509895711455249677726287975829151382903880746282143183991994450453320520731818824702137984182075952565563791142572267781321322627067433152607343515070006802283770144252681861827413593142939551069511472900053598098801023468669509559375670583270060281382047738214243999895349181900066495769868258090331678771679294069825737883085556953579246910741949047551241326896034825449541312838324600247298263280605880018884938112138904439406712033940476364751643102453535153006309510206845801795944637242082654799932687875742209048788307151907256765897052879529238547467379613116110671012048984178726428623828474259742306551845480265296350158624510249555732320596792948399810912461784646353616365769814039556752493738332830694427866080319621485029596601333400259664169062940879740216341345999786001662187021065445046610346344558821385902950455394641183855419967259106779606245300287544830516249813496569841569413426750085456492877839967977210969610140164516258041963301347195771675913831933812955705793227385250641990991607919158694438474164408876826316029586204605285337623199693638314995220595535942958677139585793944579887209644029355258969200702762204818491328396682179263893131606784671978550239634166771671832068254539170999886523310596574155437362794115915982241613614225951792336781680918442066194456657607798378443865106649807082438494053516926466376205941717841613095534171547363143943061792202867333408459879523632499762825036673150725255568310478707758186407835765927878985370266991577002280876251940373299680769303959202740867114832759877572113552409398196040266702953031651989656956015899427789984980271670147478010505188193275244937036188108924412122306065073145407833536159941145687392206811870861788957523073143150363015804936459646335214664380570777712292659913827234407315578177610074750319831758879849681508913491625434876215377015900344881163030174049219672825772754350858806538592394735618903971192564696060334369176890221857079349820039978467378371362109030617663971595582978495321273268551911458849133296802192324808761870707631445001681341286720654693500794643153441445777707717552883030682636879428375002117045722863320633064968161651672453682676604005601168261880543819875984259209668716784382589823647032344122713991661126039954601856588493999598706817389169689909088542407401552397402400005000935222362564433166752719446022464236607981369286808157459774781660302817028460345610108562331054539277278563593457737163280032525803128200073425099710777086409105978137242643347816734771525174526059246414563683199507130814656759036534910495866013157037669228807557363122825262047651529566010948712617080213814108252664282045560974134882778724522732837928909000348741706133911286135233423334459804871058098813052675499323806037919113484989539251836741363204820568389294784398064795413524982988306534560035917783785236898907310446453224070957307957280200854034057153155478749076671809755899836294801441979919373602396792420754053212278146053380004360703885953852640075418111344698982214012176037676940538740095586416497839246705997087317005447657835216652842512727168516007667631696543439345795674824526731254584478448395999335046508708880611285295837428678192497360895047177125479446678136407578096449768042274677385064854684811901499554842713503742829458965186763441306876516657364607597981047188959184969383993600919530410548113203824646732524284103863238010148118873456159509382228944125168810306221156035678503902244938676949404501362536275615663941509000361206996147328403122461611906478299472361712550056243736727836643256414768814643745891193202355193889532703343730199374367463227182897255076418384920311130341307786637463786282405186632727920891903526954544144266078423073755608176831542248069850213950981722091677803621258714021658611480343391799610950902873914218490314995538146600069581652317969287563242535582811538847370702535691464050575742387901251993342222055884416157370019947706478130539178139333974370109341870926781946341490867015843513690774168857578078239692573269478345448302043780828899512074530334213517468680995878884607738740124216461787990678886115656494843322840413513688379328347431730914797273261276486613904630250407462736891039183313484438154642511362042302828367352624351629302401728228832822850696550264371761769012652987254308558038492676413764422409793192686746264778405089917821877265636344062977824273251779852893851608089287896046971813457351819518426211538820123067343730867854685969629776322154848521167953213081105097537809605720006202774097986893841728083436649301011830643551185905783448327816692845487047551555389308186524595730770767614263006198404513181952918862169765419295249879760529650659991510316423154924455538822307792538560655070521586544921725154273661838944131950159563883345539652418318401434681866435256018501200518413347091712805074042733618836781787044438170291328207408187566927777926982393804923290604143600376656566716560159496475355114128520695091615185620129297635865218653198857757245899173636158574546369967425136731804867780011106778452100367475136710597567657126403935605183391852164123618923989887406705208588581634054823547021920101733461339548817571748485998240297164604898416687811893276997757278108694470837522487731401524822513898902704310736312611525533069060449706532994360198028521225419712462571702594693259761065398411637671326377308182622506268719365816994734480038531568515082878007371365293959064244124615202556043622713325658115156016418373356652027356419812000345529688754569973502615781604926995665609798374365226499745011534199755025525786034395198950247253917342533967616547719579912205581697254226591795613061651325978349674049319046762720635267413065963287079783910059693333478612958681314289998376009415785299161679070173540745333779672839342417848950845154329992969009516378932424676702461583472654624700715089991035759918432366135363661285744509961643259966493443151160224355232101610130528740252766510002253254348463959868036531487649332878600523847390525864642864971142524344136401940441822071793337600465923360939094673752030033517150125525584123954281218876077990057915040568806392123430960361322383405747195812258281094162735865447764895087106630986669991946192554499447832724835331525195400357907308255525380754630764336419119977038116855588116911777161591474550313663325614538273052639265273869709317440274803119247657772664559997958521017103898670234972998711108975833990847850601985476701549862330181692156694306811061866059452006894111360723528371750624419825580808477732499079181350712025042435849630207270411926445654111377345067713249669856222077806493143153025295636671629676184048872165168238384195510553322217606284077638361842095110627416216769716589137454933428772921641661967083164192566511404573613115150932106683079528970963051255035517170558212981110855431562191095680358816947530236221216349546158682186450341584551043073493823995217310816033432098805946004924677991589918608246154530281083293741763189816564919535447704705171969625021122887847838615270001925763182489614402950629121169232275247173955708052218393233318333125779735702905221168182102566843256703767359205125676826434771822269253397461805772926630749519258618668283151680763868588488770935949428502023519008698439709370205903463061094859732784968719037667443182754135843978479217860159854820082804508636501424841836345234960972659021498237043940311260781124261640061052764450219978737214268912216248160024513721649770422678034270002043061440710227454489495253256472792796540878757675341793702421586228229252888606976203714867457473849064206019936895462406434344176333844570808745429442119893229409388838713501795591056964005177512433134788260846182287641859569276136249342305389620181271549972330419253465648718818154326351037778770541798636375258244386767983441297432985550389186114736597349281340444468268687468093598623808491328190009464553102015450359734309042489653367865205213366774612463548023117312917254781859084929084991771238501024391489275915654729413085521842305966013618012076936453552363724064147815083561123393333443829703339557857075237452197117949488256866387877475570367694985539689081282938767873261233891908112543609554149537876368961655281571275517858248151055024167185472583616696958458584450533552961211738623904901587370363075004545319418528774189342967128908727718797686029033286443363605409001572492904202605934080463469768003948279157071040123300323695929731015027604657600805248768017297129418035927328849121356491455479070924605535244017100673311209247976463287533365262344289453823636496660180919235293760287809811887912234264147082394963035784379641586725126348741066898005591470931300051473718026741833830267628678032734583039207736669111320941440635638564293401484072577697455567168013922467305014335557483399457974307621953279082749278194577172998498699141853345267521776380212065334605170088262100524560672940773295181790650286007100549174102345540946791511760981193544328581981379546916128599318651875129961796599065292799481387845020137254864057481698027126204211389213826545979999649258708835855734340375963913639130744895534899124687465774894163302759955363458295495427704714104446323145769154308664238141824112116528198467049988781496920282490102592409536454380444613973786870536974420238126160939120758489645493756859890009103052286446623394135614329466053516086552055319584491048551758248018041308865530876673159281843686366983801467742021310217085654281133010423621711092357150987465223597975815894906516519885311958828388270041863494715792920433596807188758593326573493642035793633808354205398322531706102569951224482797187750967994092291967920202713731465648741530782066643231844939113149102184183278404384081325569400182490198805601975493175844014122680327987389388262806735645857623245166442745544524009618948037078740734000008711177559728957641157606655261895623580484313525083723070550435247021781022991711289368614808316731276578267374653049350854928744799950152354599842883565260882622427835785954897448771344727389274607414675601354284057193056780584544267179997646661797085147599968458238692452742693025695792906935889034554564439599556109928025047859989486560577817256728409099988979260313664686194234974348230012538743707952828704086990595545906173326189689854550077778900015971042940038770867863085619998910122669031592345825777851745173884290507578817497237497290000769363087749106826292035222953827320835853535305753621054435148895671508542316882483197958416406822145352170370987913863420870988350325661414245874642956051291827558367854862577915623791367791035764422256821650817034230543949583224094048457431397950961145917852036527205596775367212151167101502868211494156327747262184918134205205318771194163964462362511843164017169896113319955412438339292691811065932522255754724299214463291430208344382496252607887586483535587004055779995004832521396059054289875096941455081998895438176785656142572643274604184035147812971342468821557735981149261867417568046180996575281525969751061544135928422086160754767539376258466014882462745701826187488794122417231927415029258245157468557426066497100556330492505403543712950739460992537545810814145432435837391699945388670348602907819024763981379589461239828981309537299235656330376345661402835632641193851888405708197325753125391631281965964244929325923219457124178831840875372636762704171610457047783556827535280798280759813625148118892616646748809172532328363303098412851350309782139122203422081254276341922518490513756096139480786724440171783224019363402532451901272936510674090186544308833416588231002909062617434861920927317247397417940190871096068132693251443619395624379466135236275236907225640353615342555009195090670471184403300019481212566578497542409592396825778478705877174201703510268250380135722006219218572868887632801985423645430831609305559546644677928755539226690827955315878357686434204209122427564965138231219832526371710289598401175564054633770726458430161545737666321521271065870244172054458258004784111044526680702693803470491693281350101208758485927493879504852965900479261885216370565281774458638415793471405904415809718937690759079472706706357640627042321083324020176487638138050746391524703280558395887315501862739036693031004704033269401687376142039853553282356885250164829062350685949222111081614954896690927917606642809475355345018642246554425811645444149161346342942179768589181003397808167952188468048238729851107696216074603608189588758089609483961854862866699699125559307171598315738018960439508794623050051678285750914432118620284542427199092026868932377170645932661817052419490702129985444152206655694326886049219457390364495381838113711435394969750531142387826041535635391812866060879638086288441106609987196284272192586155161710189160194403540399305267516001004129187797644241497066150843297467211416363766102469239250753544685705584351322269642885090221838462090876182257511386187387746711292744138577258825921893641128905165272026202657673583607571494962391077261592736312929605251466596996795881297892919171600697323398845028551496621971284901906775948081497264445375303544589703164101116862828560077070257079490574910338012413045114296527685071511122532273389485263915125853257353048508249714696713423452151392098349933338958891962481203117373418298936558475637691364004024012238535889077088340676127708034913231299572863461903327450615032249214708880666154927217397999413270353580365974105186868517010615876655283517413119354693827868911921278556623956776533009281231256741113935893027520548213027484218202749766694479711164007021123535012737590372815147215708892527759343714713662845671784120568688119394634901956062644721661599307992301746516810088202479171011363714465230645079052433883671575947808519686127822504304791627981311857451842138307733775819087962852571802674177043090919061778480932351838765690735608926520662656931953982770602724799224912295837878792387031741445860617618033033352748834551156840946160307868909809896602634263836241238731954471278912291239813890556999272138066324831386422559343800332039729727990739028865495280415999999722954136715368153698154412551890961769900317888130674203309470006460837719400087865991741920158368822207483250724662318671854411801331771680157073427418237695596727861777986225569111940093476686135787997104275883414428544804994991813792802998831264495155155080967530261879147513302447839341311221298361923059963671576750572679157609641375334740446976841922816672255322028887774228889451851950421428448071827681511486807690217869531453193431624591329124922612726357454672214973943602647977991530815564582982191657558312027375136543787163371568148081134363624284643198963016438424100841293624443715948625535143331259530915990220945256356016486598758925971622569753266780927525611682454399517612630399506983818233572555211152294882073034818474498946799912089022014570118200933196930208559405441466922020639928739950747634195804914972815385480793329655520173643961896217251133654622587107875027107644475619368936706701022016332227401550252162549136020473138903542953145929831158905875939118990078166648107571173190718905055149162376107186645729602660043810554744710410396434855346785225428112053828758345413700828057139407398493053699450618386651271240077125519159406127758519866511158559029751716926286511358757523130076206972168811604362288216276559478889699600355438461115119863033250949252723811896440016342365373193816539087684158964371457477386136615332182111628914215081898948530181550079861255928828037178203154807052075205513234061768034793782208617372625047087219818714725203284321812825525311790326801395344653009666260693524499278504378901580097542386979559538884919576983178631732276193312639487297002614987686474751338486852952034600319834365286986334670442427883064145050632319124136359625512881706078479866151987545402562949707741471749133631104891900669628965684564678644662300587206366376272462792044855572677301222747280706075394404558027763723246345588394343765247853194414448645820303741570061865324808804873115341086770938259641733837700283495239335227104693300550964500576094675621084112299884654681292278464487447582391580163668418730460904284678509213498806998696552240833767350791970351425756465414850278102266709315333013605931892637654135058098209748932980270354831772564371701262188747742108921003648989605787414293598209545069066814709018016920164264733968122805432007809921132729303800064866455720236576749995788745336272536750965054955428960264571124477751126837743278246124075219467492707516942932648568353192178089206966291283762376670052803309609698088304175868266586336293765083029651245507599457798832905454880720998202204889951224985990271716897127461415968631081239317198764023014410314494963122096148465648189206568793934673740329150958568786536256663260601496243910387521049987840695961002904335103655742365659504333735655577086724748247375322063593103563217540434487188916262736964320381485086756262241367139082067169382333985713350786364125898934853882338519910105078290902442216750612242427208471855437937626133288437215338873837678741942223057950051216712911319738069539091007872629467033618062015742803142497398261167352161170619223294889857653464489522419297229019982892804127041101711394783149986855261809841687580933276920615480880541040952034492520886512118959325534090373755940735785062600625898177683941142970647089876156002397086268755937009254301366014874874503883552227004450087058462534793835850538969999211068172434959483860598907566152022554238340844525094948431150553572239847983042875575788340228580708126755857489454912776335122522167118295362241389087029032214800990401079850039676153680198561607458630418242251992769704492912644399061266186672082935354792955236738445904438679325442983212153516085448378792899895948103805952309333941631467318575051478637834139913141715896867117688257389911239102914739003540127845194247759405480738424389097173359506376305155330391845772127055203127583199266571791880966048931781776746995868621812584366745539536486045173803791778336209187721137459658228878172509208463070255817269758625281055455372249237683610923559979405155891803855868543155986623279492317945072627557646637115288638024808026454694568554004843696370607393700217378526338806826165341490005300606255662199213715726997143503401422019278766579078496221124303381322870388683126496098441125259924907752677194179451389806069344359336881254025776425561619604542974091285755355466100964158884604030896223116593328594415489076074619004220722150201156652622968637421983017597900656154172456325506487001379964773984381140827214699892832174831597916118892880154689301181674303883753535348052776931753318398435136800398014977934765976103901186747568770112538841118684648013168812364061707955099450561412165902987401485006038504591544716114475608065315284288924711945868657322789059703981186396958264481976567536068401338535098317813736362460338661068860962743393339478183416256192200150858673115720684293691835068969795989771145995010916157712470481370848630010770703735413627388491336399625333060255216578074159572970639036586202338859031012209448564314690946830915174279772696118595385088016106019129189551195445340092633276292737304201388963962115098743764091503633208141852069219256033004727714938477252946231158533126687292127785386505580785883316774293679053984063671681516272114864449982435488798741011748305227710339266925635183109250883850770481954458329654184781066025444543821183635389327724274148946536918850721016053005112285370305413304041889231478939732280602093629983834088820054477702183797206054158845064976644724365013781117171874707953645678776651456511404308961087557375536135067739530119999672654425473268215741282546182537162038238047683275557199047535414006708024553598344499260210661583589620419028968000771121532707261886942983138783995810815821878050398521120743447282810249102946602803208165230796880151526084151133416163248368038086654052151788887459400319336080076048774092321885849756032937803195329600284857280097414915532221337995339480282274378001448081908808836309405458147746181719876692136509008845269712273069428369720963171288513934563961591274578434923398345559298531956642474996710812293894434946045488569233671131901280846456697939829003546796400433803028035616735441679872110012187765027547072462902303890049962951686103244406667655297585906507352378070226318327382572468308433720026126995541941685404513327022585911222903058547753232493234183106206201347332194564832705539953259508484447775400082573786986433508890793311425366068501868385735163144856920363774065561944677101302833854400458646766220723310701643319979477304231086567168627579554697931467862553395028022471984588442923564751241106641239404499067963426744576004357114836070975342260872351533587405864917715819724857486428851980447638660441908620749798067771091200074099535698384667550582868864891472433455448134909774296509242943489768620389818170612475387448366937796865942838348521290600980053967929889182767290653339723898345559269179787513378978297703666250076570046411942975875173688486264904631656924702165880481528294511763130350424120584695729627948865153109905546051925311558657896353290959215591576628398527201111019280767434333367426591866058485119696122259737917481803649335353708786817574349302226347125113623808922614474701971579131763303857530231376795670356976879338453871180339684218434014282508900433069672298849326439874022641383667115498182662197203900560464987595318560271417956699528526385223398169649999037993115852495360019196015640671608769132505375863508190958599350814328019312487170634274773044257397457817445341513319322687613797452546530358033402823060431778793319815452449706487870932718175320554621701956002749239410611015906776894772050189325032661492839805286035087714416105578298134414893093668521247734457078653214578124028527553690252296316668202867787568452537161394591544751045561750024406506149578478352378906874136363544720864963061822746581193058293838483529739702664455475739774684288983680843534732015742449386237019621168850176527313230353842557430373053486662581557714859459438061538997282003843178414946367089277680724517118813435545163941055992813649545735398332718719297234387543667644717522417462098772280526806601925083981696386524097434918830928581259668048907372417371261629976082322246527856339080245156263388344151684032801480270035883001529470115559846611144632093509971318185658941347522828113886471041986035260605226595082288206688830070703625785274933275961445049738833713185198196357800961822764903983256187873804636302593410483475286415457977515619677290807276084119700749894648206307010887999853111060827297556773466544641098008041036551936036847414418710115904322820583871180492991325488883083141865068347782285638994223870819482423170856303335790890000243311779548197066124217628278325231077865164557081894707787866120529396782081511327371245967662622763401253567987742521934432955999532315031379035843294918681068194959221916436979940300370349053637560203755955800852016969773877799746119585691454859518889974727808304971508154498119387098008760231349520216260867875188153880697380142620495430632521157276327097375137640858747638383320518398094536866795692905537892792089922701591430040729587933911919433715225859541059667958986908167776401131533104773947499284504040518590337003375082008710520312673943029320907469107635011879251939713621968979927275870041075631286553630251033721677118428949902881483545644588707592645252326832308755811999244796920728537577263933633347051190740932013005579872322075362434246958738194012363740041510015090856646436333933074770581142748336837896178726236929185368446292940001567728613397908525331810038676114175924814206202998180491587344224451862418375085487207760919254976760808095463838819802285802890734963290198947080721026187403538750365873951476230676894245404528769856225005172822560698344518779311803921066854321594332130011765152307343863482447245224411475794646787614850712104576058723950431423558390104639981774695398629274845369537456999263027392031317577918089896061075868473177163947106782845589668162769893759123221012038744545991513933915259838902464194620770500783548605389309843401774951063061530945154348868537516152319241265610610936566851463783258442814559196002628787026574799058428100908196650551355859843140762021954455926129057186189772564847470886892515431815125404674151634076959590104974590716535857837854329390229658187324956363432724803584928000256552249142814661340263649390880496510905316968766044218198965229613148844323362018634050746697647985259276846493882259120983649193295705614643678374966005642771610917336656359986430122735101000375087383448943334799628027642233810468135862434476582821620662321168389404541256438419477393740358398681700006317555053045147897805916440474227036505735382259644129210416239534519839900096648747996923024796373943648105279197157996383371025666058140007503622600143206052315928074638606972299711501543671386940384088782184140435666830595725555302603515080427299413226291412583924501910631495539743186938316205717958689674480104575084354229258371635818577637305812860816156581250917554419991697491417139390221418270520689574255680752565448452482400514192054901668024439331396426949032990776024176028932480367913222302065441862713750367622873095480649036684025691091305471043743160894555315753318939837379974542773127511340088838642617824102200840519816768312563788813814664650783274825036561000376531136716569795574448704534584067711176852086253664863145211390163791844660764920561536759320083566499926354547845893790861518127549719203656295919766587383346578740852140993803733541147109557557990388142992915685549021688902953206588300867884907530605938514340962171430059120309195683379536527268102650550132093938266563397247968238079568694583090395093634351341993319807099472360103356566075877873202100686306563718088978708529556824874971112902241802738344583539308318382298981380501426887081601552729684759196240396672682163484491428343593699904143902844381927129862023731030786776630218753004802604606236531544462428277254117323888210542948843957373081858766682701628230854219254327459335718146306399475499256530828585279283575284582444393946102396966951044486157364648769510228832075316598591128133754893598508217165392429273914128487256546651063834075781911736839962926296003734586506251803047415954464618730816955282825078778621999615125435601202848749654834950250426721761087965461428851248130938633631599080361491128257776032310004221096452230146647068686788980900221835493520618556652254036110819454131302553264377547280541190818652626877647872303147039077150645814080573602762061603307764274597759374904915928556598329800292489009651028918774137939567439167719615422759014678050908535427023432481361921346464777003782611072360223672346224585717051180702124006038853001994180647174439445983352117231302306319032935876347862636084767753203411095532722189017504531152959302443921652013011309532145631674005577628194220403394018018170566428177458595066852485905718762203103922461161465714870107491546696826315085131424222779595609232407129611296649752588662262819457628695291410817237719848185560174817991565202927272186070157787025875705740809528030991642323213972414909959649941003081414104234266917642640515963389667105146136412328109870359839089706215570583368765487340226743747552295235641196372162691687928064265211980799889302217750877632125210439147981529882564676019409971134851794927398180932675821252586891843183305083872753671804693810372672575206825984288676187424609042975571658793813488340153705755025250433758989153737692616057424172256998660301844520922692545068357352487825461335741685025965967802755176471219671041140327148118290518726718699374817029919730774798230500334775251452217888437229283646974641043637740765825432939777853140866225728889469137339244287492770837705810294350668912845323166641335649023507550278240181364132256211758067713459186924548401433478363701160950336934601455342832164627064311662105967776347698046806271372751502540500844149775483007483976474056062756773142982082363548230088997168269331025606334630690402120213936052681853611671558968004045342711371774533306273540336539829682359254359872298479906754052220156994788860203723250564731851489952814330162376221837881114255202686091324452783231753006728136564165065004587863569633708966262578908593756954822696955213985130126340340767073427079950671207382171516302808791415044540041353790671765673353094944161148641569574522625899340743667526871610146482307535669496023771086551402573506997601951589170589467797920714963327216410083728721708452798484273793328343123646628251737411074808324988716024283372339590813414652185517375786339499310470919555684720977299960669891324438373647416790520464803992910506258695442889679301689867632194897707472493198158987068314795248412895595044729372705964226843661291676665682836740572285416342255968497916089249437241974292365436628695341856625420912420695662925245844158654565497985023026894731467843260881308422327325028964309414330446265239097153693677610843467093309868927786088375811314137536952483152719964057436610083972037455898159228500041895839377971971966672874897786531415045515912240469087499221403720294660624620239239111080946191688415758707479986670404978904636986833665200162728898333389471049154400322215973956183136998078716423058251651469579005394984163954528084025109474147123063350846182239641752821181082953957720428673260020266742475591752783590102162300065871452410566835967149575680866297414251412248432083173898095715104425194938214351483899646507654793750936659403052629427149201185520044876212346412996863192664961596400262784639431824500714314744888474505647556116736946170696941891538035396400233799552715605162485310147270335823406371793273696044183887932196183346788978851602546940762638408074097922280881240890059385185146958749810342943125749986421647275655100200410926335477258057926798358190995900463510845122304465689003972269806128133781442696411440031252911276056390682016042721647589652384013686130452671979291390819895201022625966607672190290457241895327605086013170919193965073206950026694227246111853136346599944898073269452030419131858852805434021692680221612435926949718831485910012373566822726411567232372027323860321523830548075331729983824690847446729519002214062977006724826567473366204163886761226269081739048696424612133585043230814649121970616075732922376652016910231868552228309231310987424029773311306524890029354108645172839834791501518921732457980318072560666926099662972288110237045015425673942400096577681976486009238356391565027677071418669501176314495861690269283147705439993285411335691553079478744428979154585423308776546012585913353100966658192102683797559137867636726261018907885916664911928201193476249569707898725394118454265037467241781367579130071042617689956072531935184843622238337148723220830736014702562157054766745622546153298092359916109522652019780888714424330240037719263128714970057262674763984933631325310471686960398452078790842608385183960618463743471116654911891902101143501123090518276976077034402829495586809468939330406699681347514729089489639308423850599297686207303243751743935567985790131849703060993704853830162746887542373552031719540283040221747793346774187788739587288139584173819383014626408259203347406744361878346858453333984222954978942498580289870578338686529618604613607893267868210441077487038286197932919882437706150607327192255968086553710657254171095707060653213872988777798513381847195138672324860532284750086705114419022831250666015444846156194869956334345042736687719782066359813365607129393177333750582274350188207163331200565439828514148510124487464788577253954051154148069690149568657846392973267318921200065628659002953136793551024465986354939530454040742816092245195356578445804127587525686666905625648868355624074503228520055841388672363660377560907611811112116088503360081581606422961960875023025482677686208432363560248106800855162385074617784968954903566837466947819037309831667424446855469050939662162278506632742186943736921765130655741700655372558399913330601538781607147609799767998053646179491789318612607470777330628243350948040289959954205672390407528784878975397333015248753268622435376274769713294089179832608373095459376576856013648245875745027496837091753924716515200569839069156687382604506585825544435883870962104132707204451370694405832208651338180913068145330791590452375741859112404364324290917796852570626039808943819194358302521495842603091338385457077770835551718037435941665666895274734082325524758076437713677262450694434681855628292792352226142078149255650871412508448944323380332618458296538765376323950949139522949385348036597929526776789683425235578571785577162459600725969446233522775742183441012515933816191397563450119425093478963903898472345933700081290777097556357314892478795313743559296657412294163883447335889065325594698727796377648046971793331139482103465596199757237527932779299563989664118825708239327727267581855088247471776929631831115527139301510107058182741283369403498935908065000416588040982472825743197765950204837413123111182515903936209993473879017317867230873528754994539096944258915505035255416054401762513872070288417270440235370546458978333550633713771493182604415569295089399649520008815581997616181531571437740003036469479812992859467577867881805306570021887421197933163100606230241369721609772596522999616997747972885997914279094660239468161102926669246188184147520500639232416379209382522590008091568884594818449822829669750529788271756795699027212249492348010740984926893967497207186281433145124700097983134066116287931887842514103140254014365312985868929837538123132644581825529316347635424895035856497659433851593644012379917848076782882053495586600526182544072955783635166789449500893649234760988364373722053857262799786714106529490109545519952956338377085450565796813576715928046292643606861924930661209242826016448715216039602662336380543595433343191458018162328794660377857350751700103762259609349466307048346048905348726837930518426276562231781042100209897976802829170779952537670045930337502131339738068410709163307417340957062364714818131241961300844103434425953280901649084453357392801089665595730504206871473464322969565167662604037394227375243859870124870786525384671674527449028980207007545450289465998433431653277488800961803484813777455825700405128891626020211274639459910054003575950247832186818617797018763803509448462412632317648791139227758647270263070267765761089818456833253970798415858982547069318273404569268088730311669596261788568937330639584901793995483583346457821396727631993944083130316162380748307196239620279830008768060291107275601932531688827575537348972839685047538906191973257071120176330406683267553739067393487430332529274445551859572080705666670010832979931856632400620019621505692288472287725359566679527049279177329615045561114641820865751252769586992217005932714460186808234114929482768947678943020629851740887168836905242570690170141610127788292706011484103476035494095470798721693487204982195256236862079745475374329370376648941441117132111306854797933427496688992926598593092811963561654366014435818877302128928412660709400492378485852935640149605911304963024003840727734694510886482354230000228912667156421231878070264332218519037352317215857928927527928226034187064492787612269617435764314175467267808509246960883616516083309934003216341348192227037367288906306140029985980505621970546151483622892889536335546080963111142972666714543812978640242898628399364487222553534179638704156911514234798806789428150325117293008481773030451265182132663548017063971716847252826885505870833762641035393370682089527541438036202715967235926722407828690909842098664467095844599423804570177997038530897344643966028906739148997615447781353535776741740978012616060136934390170719340462561725850284624145458371943448874655670463677409072770958069492250402968359034883017936645904432608479194061005685018932714913119310925598052443009585951473865340191549227622853016679468944186792513014204453575156129192767921866952838810965838305920258293310286661529848940722494447747576338911533957569876281923962625918432558095419819555909938395748089194713728261653777773665315719969386727529024368362699486028867931190080038478218170271106956162897851809803466967730830522889382419104389275460263137027125703945712199583176475971937234464262793926287480840780620708014802172515038164795056831849120572585033120554031540226034648267337793683654529272327371570768022764606174687471976607308279145501373941069862242997870655169723107308740413321139756174218517046141518490549873996334568543112379621910770334748782372965684792967375289245301092344335151958941483320639023769432684590872773169445696282347528493941636797025380121090605763679351180372595878983590687173320321184129927286103174469582526046407901035441165228323229850067753545134706172169252182900807128383878601075044188469000364441106784551773676018410498134241673287456990377770926433944326966112418326109136817804642923494490953934637852114010792705647550134026270211113538426205609818854146392911549918878590119228362656088844357062127954043004863548339974869414956311106788218627049372769111692999716567513923935259770641631610878662637137480615068606394871324803121622950630147444113725793803305214182126248458673151443690568935357658138136701009012469699751474492464504171031651414149243005983298709737751188367886255698183090711796478772757842156943877929140389835228618148302553030813734736595426816792591920308073094124868571874396037887350969911477968854432341234951383626159792069188005800799430562314224007826212243995862371215387154824802512759381005742028002212874342955623512766744605218804486589849310533771934796138586033580904300852492079353070231689382657132604452440544202627892452937184320672159791066666531605082258706188269776970078561204535278089108690753914330913924689225859836515718037807758160329049262021168588191984515131586389986236419757096835447023640496169575286589643703880034210710810788259521962753209296303248414613249258931178617495597082677799319554448131810266436688532508817046638602348741860348152506673778468663185046517581979045251200920101191705646155534304931640262974716006655569639107910798444306504416057362655837928499201471263105929684427721501691023439303096741394822627794735912262672872639409049115204960343165638517000536011924832044316972979252513542700972614501144148700440425491538854040966754125890927832397683505761804879105287816719393940910553555814678645176198557635115113565365980251649816069517278157547129280121957603444085652577409027874967560101271404309462247914938134867952270031537984868120327760106966703963990274213465414269079250415997254713339235055295136361172402608329328847006268711849374378143173187934409172097158077499111224760142458661837863335204978994111580030851558655589542431837163843838681642032064515012588855532480450995539608938440897818648997359397091074115297039021512048969425085522601070371330159408145622387748350182696644454284027151096571157510332761892694865082544226713133505257982258849503545063512738659665156400723691914293880412957076942387185884685414823149392149927577482374217474573604330657538917062064537148452037112566637031456013553288399217726932784098511609392000967681983062292225634772070551289450298815108952188510342928234328193405002616185092070663949544075476296409408675452141228078251212974720629093936537582510173623480859010531849463561467031511557164714302657503897596667458025592016718799634683240438617845495199327486967405169479863394512154067303880108716679145944637835431796196202802771710061723724676939672787740208329341227456531374815949335350512384721016657347786067763357782334919223902489900946643927002437779591346082541010247500826964385608617191843899408369031501399238497786833913575083763713426642082885512400775214082226317631762377270900756919780011499586682113235007466213460921748137655606590348446145849265022295808761620493565683247994572845995759991183172647153964001850509972557412868885887948380597802681965725053882648557569638648737977788045499746096840645098133465957504391334988700248650364961243153579693877388112781514158325199637446876397472935515042909968952267394333495558438354621589572571157247288879490617671150817059488668613218886555806177390880429999787314994149082637770072691175529733065721070201463758551219997447513859392751255137199017255072664063958683666165477279672937005237697276430333884202028234049074811619709018200714980273142410603721027030725625672534279901193194388087394452021132806918370498075812260480612622997616556108024902288295383590342948017347499295533240409777047591352348875901042472581213067302257783769936766470678153298801881298880441854418834779937711013715132484156393330858596838092127247564311694205621578785863445006114652640188581701727197929395174283538558907503503631333833059686628760571722964581165342401721231831388843608541389204594810753013350419329864278045904198599294301310081086122637355319548860825544718449204957990339232685075324385853540997488668286342665393969840405918823089071922470777438876743256791410901016170890005046650092434226656364783242496857242376706396049749969517754962794097573023614672591846829982085953913350863323615848664839729063941045628769485425206384445836227026307324667931279046304583780618054652404016534716710643273920018572648855438214553686934588860974218811722489397300911567909043309702939528623561085545101217989239229427237092192723185238901937791740295545238115561369504041052034322805250383705874952641146880247546838620621476695375952140602535830786502988483954615826204914567102009373618172679762553156021119918291266000880531910056320714635481119434404848897157875759434992495949376248699486639877573522913888810797159617047713889721089964709621180015059592382018070888204291801492263577290006280029977406689903202719261857897902262874818760481319262864069461319414341089748285251692024553245197551134988844103488317063741102495854405875768072751336206614596649557040848983832150338237042415716147290830382368978955889684252535948244253745216431357258664991128480978321841501774034375949273721521715434243984032347531122289496407604133546841669138049655332765282575418448304991022950004844091281391944908732335526358280967479307264062640685510770605874584354557191231147081176755546128767815136926936799459043076059051063177354305874425038741734754162116123255550802830932287302943342684397643456367890407174362607627871820424537899917548239220042782761986480372444058857152952083929570952940284218722063186980520154041081313564989856786749458481045807862190792168023994100284151366307707739541048119689368854836461163269142391479245447734905121214610357396386235362574006249906470043113996898082932753432680119271441537675027028834485444041457480173579434188279332647047660765580903558564068377799497847676925798401328038918081776900323446758148989700163226237584959045166254653182940591112604418695815473967284845847854885195495511670439991320281454778245632922331545736394383291183649704083715206848749164445889286198983216507509631647124050160322135250402169122277021909726468842197339371966249143183586749607737109293176932328933874658518255305466297877030011819398813623675068052788325630929664582486837088953244027161926421957943563952515189096321418418167350314834848079905052382145682900247441285813670319415681956667481242999845047118820927843287500581588304320835018089775076730897859238438208650628796074526867313477678974107313364888868609146884438051512655926562224896559963457343579909557037879341254982111593944646019919013763892931050301908768669758051851183160217900218000628461540113941305444369861863708521345488088393805741987509077139226784231885362412479735358509527609997934714089641819469353295348133753446916497166650580003219243204724003696843089314219120899405298403628173552983859246563350249912021260221097674519236472184871558575821696304128522434790850478243352255244346089872920452194997017867511852304719351317312629866545129367360464839014053073041332707170082192370451078147111272794410915394122384891526348555743724708449494355064411308141747581034626726139406183875221949504126160217109806528540859655298304679142853557083950211316048495839999954181706419112304627241036461858668046089202027962889091828925242660257433182445167032692022794416665412905573766915732954140140926418411641284478364623778449749040495610662415452860764142080478175008743016151742525815728441440141818399121219469473751617683506998163113265337068203377542147771548556442908333787792588716930867425960469339631680009985077839079468690165450475398180362640883099946677555460392881601874542456850777979079992750543932237163638883218703709967229221586117661004551945491086255103945045631842531272416973020563767736256482293059748973882278376588844619032928946794618663827069676923275932240718692738364329310225813244587052546750370647768158456874860999729189145578118815781892452421430145200086619957888914541424249162600978681415721120158946680045164153396938781283971731090581090948155403362740669132528802385033772968287777543173609681018240752477021865877930989651905749799623501163569029784439704089153812573608110385826404736895985075641890592062710741898522583306672647628562841200255929165817262919796798140612887687175234199205724241967879615988766257153447868564914752749191270373115603785567933497593286719678002233775228776172035777703235914635130235037507531986069152660803677882087248814249056974847400849433594822194720734226490706887873528747068275523463988470650735443324549375652408195358573638644005900618392432657591457447036345267421308073040311714375359045672904306870358161419515248312951460975943396324005111730547120582016941074984996639216776814882381870093932800213679413401839612510464821581400136178279316914310364761305941314176762817059256649081695356264986198171344099012883446523339712807578869063143011739133901254151572130745805926468076750738922615515361018552444153439518137589632481220806954348376451525584434988409713407974723016609368492487171125706942467121758213784697918983786635993818917185329637814848090395836521696139568892197921830950963184359030951426828708334833295179405636346312365772961753431559802719366238719587086736454356268286621052471677941868468513456455141693161280267720467712937645397568028085992857810640159487162394504484243752100722576318458822863947892560890054410187161889972831903339940090308403369237659948715624458427306117780244545083023591508795548941969083297933512726598539416438928980566023539483694705954082885286440812368196057117121428613025964108602668475685921609942844295730075660328470864481146129906389462262799821733056366388867246387456122374464384562713982456271167798112836212006896442097789516203543148431507694246083301469530770720636847524432686274183416272630093883731810479992900362268900505665647599435089484034467065731226864915146763119508821239382219423312731764561489094625129581351742557125137422342142894822481720205589633445084183360733545850425198469957630014368693752370220265002538536017572407767767774581759939101258961220670376200995164376798596124567474972486697367864843691125291002447259335792568297107107234072385192289714648200127750942494034127288392094499341937595542917193207369923048688208040661310270110450593614439311426792627962947860633869781073799549001915033024281447124129649870153266934491446161550942946371464845463587590193249136131382973728842351811217449929653151963017497403901904716491112556518138982755187205353113586853690400404253589305026475337908778483670065275658490717482628736312243135367781760227763514039387727492626943181666988392313996880370227328703939392307989955539471701224582224874526646051116105340288380581625863392854983457407640623905788030580945424371023739183699392774479587753954485684548093495396226633100628443374931108686522921002784871577084363716131485962992820938044462653922553942462308500868913103781358395601510387892005799968346466223928423769519921535505385339457552515324052195651778152629982964534928600553401073090097501593522902474844001242028058679859701806672567731387585971937158225897623284967783718290504910386857287024961664006307172423543234760102016597471095203749130618647571874790070214205208781785465032934819714997028407497894438635909344566696639016352612483294897959377465162079577222025648680390748519181470087258496825769678482455685277829743886810717812786532694066325588284561473653672194154055901315657380227017987325717949535003708746570080301994662447471628952633056615933026531180764364655576001702382045150276779117341176671630969244826723355788315094732918975654096106073274360424681935309372833822147842544018611574410079729440556811240006757654127419186819745704697529065926127143331950662428716264914364509258606726574677551041404063792927621351051508631632270359501119314485918569587883392101329922185201842730118975532773780406627667985338851644518602998817008274918727766696706920459110933603725377244436420319109605617461750449873698695962398134750778357000897969126914009904046451249929964923959477085002295445811956249057740621566858497046350431658388062701000432120650586924302497778628707095610622849466606862596832477644051891715858023500631296514969952891526813626713088363245187628673853055758530459293939072023759044050796518858405231091139872627781079691561719157212159614398230012849576298858981464783723533867258568860930847956175207830367751001602251710726733910763295459835348417282825376921011913130444978280477378463696180561560777251875864355478409458945622191344953577449460465817324891058164074844706987124289876841309446338224621109782217815565467637159700438436276656930336231975256532785214263544027497177611731542551369445982996007528462021132798419658575369800705971014346019940831538196844888947930922614733924693415529314648623180109331671635843015115620552157802475837014731873493440356762636749148773937369461703374021705278233927968049920695979957413001597076251636704445811237167525077261143759626485619535280233000156850418673248774653637426809728351776599829329812273397090485764935952553933221495375500629789191741265204115994116759165620389661781015492976631316045822120827795115942333998079647072682291855884250786682373094949003674580652421219497364920741255976309271371863744428913264271596590794971395815621053011538127056855768687185062217062888007732376036659506544653276242315688251174374300118991027434086183128357238341206535801510879928326366898857990700594839120998350411605896993747449723440597927606147139891691785326787932616394036878899860494140484142930064124451888346018289463368538079564703410361280020322443307874076303044078216849828375236236191769906499260415410669565401923618347635271393105553562932511935121884949884011593034142258582458782431881792514664641360155211384388818289279562032376439055205404120649799419711918249134938091488154682970775455113288605740178883198755183306130177215115682121527592836934758502052600085659786357498846132903979965013690844416194183407099888787980442104102643173403345027200287948691046428489931642726803913252350701198471531752563230775300964388431373167714067436118949285916606468414956904745031633238320719064098439468959704835122563487354902364688128437020131680346709332281833880299892058319439519816387935337547866990786051455580000313890340195839867292777241130035026479263339837815322301258459127523687098251598064788037554429893289063844141872939247901011160693720992640248871590055325491793352704762750488063127702879317527554208251355116338291667296193089291503251893348336302150342295479249605868137225841752440634842439356743924990961512478905379263222210801062982106609371880623400158271159756345970117868015478682430421362795184731251386617660245318552196415313925183331986481588856680527135050470963288829374620124673159355314593858945240367161014067222477323117584165476268275757640458800816128067236615122970684370578031413927083754037388324438150474267466094924446900577271589437745654116318217652951619349095602639774597875846138299454338532963767521548314730438478095037288873895738090647906800976766877839627179244778804445114542000707037131641901623105379230500669213270951907088721846874240068321171415271709769152850069567680965355274105066147716318426651331571312002791762977075443222192877084904576302735934088477326924365883620432204580247175045726633666981169421382675050671425186534877291882913728633201566145141701740393401684935122135758924822923636286850421330240923476314636293029779929000070215721234621788350005241528020777595982829648410007673920403852927619650578725189790336267944986946882846757105199127873320919904700555155555304925401381994376581494111190285244065716174644958158459768026126895831114176095306272185264893411550946126381930986491587125432050566327340143131320536220246939528104364352895539343360688439966870750514395684300453788231484251957476668795724323850966281400873383406032883535221437578150075270143379766602334514681519122497169794107296798796741190734740349829099851935276682851287152192969220979094321024978366388547801158343732196134495028289734384334021628262585040758018045949507635400766768324005175599190476194854632301098075981728573727791570722740217234152982723930731142699326608162612710107743036800589168419627761053586994788061092649440747675917708982350649872929555390885579949063085188232761406137301901855962310151736781300842754519354316480548128994635231926614479734136400603327743575605674580058138049530406370533355837140313847367883248909076857197266940176082302104208291245184941801613349110414038035348434952065515812758205363817571383448048984493398027795674385313402389335353834034943314672738824207694116745435253344535222738275838609888698064566405202371751199605446879580830928364904217038463329580700998247103424297232334196523975391673161112867288847582997237170591360023124728066732901444155731422260058517096800570270350067434266036000550990010155927169403422105874639556460365254098957908980325328663830108257545650368183535303907235627648048581040297584870146355590711386641035327401702192313991127318931155893777060073705661697587065106208865299771542648000356222795434939836684161076840889851919584519132531488367797606464519436977725463304565815990008529079393769848642551591125360946449051468084165603426461877002732393262728153970147956630366037218955457390119967593270509301030104265362806740545818281295645356570987116437051033850819215745476468793467526346252820546669414139332476200423383490212810022161417287263860782952999753887616217674991356650084624846171516212728532246598340455364952046988981263276887981527970263372992169086672986938486147640626587651938458360475032872496767620044256131730234753944128872771918542486350632735735176865968240902822313985177746242621161333080926395343930725671056584940153638213812833932052581105144221622911073708369040709728221980931657192792333970390580011236833703457264500824919281533192739821145556761588775807459768505201968430311964292691858227323791523330145250773781708575476160064560310040021403649409263290946088176973974245383009355836282219074536413166996763143720556166208735618186759973492807195743378299392936399784135683005511702506748771686968837402901622522868237426198005084764845173202233561122824753499406394367535078327239425166492767258022720630619382652767396798090686032298154762264780542205333669933592507051861614242380049400534743624695919004415865186898449915181500977842513136225942627728777412664048698749031072123822816444955405628936191733617858804464355495104072581955122273883964885977571201418528427590642069432786879139135418790736851272057251485154868947116660044911608454319692854535933582727356562380760505581459753738302532601857121365637999780534211268428691408473422503974428150840540507723218239493163083772520366632859709783029374788602290773546212706579124262957727891546272821018131404305773695324984266520569615005864604848059682518780048629670922908768037383668405618250074672782305903849655348516383020696960908916915574565911479025708427932546917323521743639240053751311123380554542536947635514324770252175722739583998326253314958345406417307643521592271246680495541640442218525349686616056759265820155033762675092652334765638667590193582214211942448574083551099489681565722610453289707459927405368731518342853277809606743251899030759460129851453173052269256959247160158499233620748626965315443917667601761548123742141013102532886249640312043016879311965795066578660418911236638498770746906890978213141799098452977324158460744992496031815835602416896279130213812974663297663294819746180985807609030272843875405294050682939782953422032563854264846368198846562949980901174836866709541818278431136404043820443031577405151435100678245152261827991357150110356389672155985115816980338595657991827919875434954949686926888557431325201279146970824364682461833123606869860588422891070164845898875894236770607649885133379983105044128878550704492355599673407573737854515901668181236555252602780633371460007495398518592264591607075674591490639673920331060932712860850770274968325741920220931565358141774692611268600054741513002350720892961524276650909255656871914805914553112854826641977198432846778314780796660068773727110879566946016897884962459149320908168410449419311391706903098039267686846584585972068367116278528055186069500535858106590459245094854308218210567675881340642621909309354233196662960260029829698139149901793940670866614876449562760291169214661808374931910036605328898431364352614168160184119507889325593981778002499322156753273275370479010777252465831829529903475103737686419795352182875814890268300090641001958775975229372208314732420641144433028334973163908575464075846278118121589291181585082312582732479651155261392499379512627629280031728051369224503711243507236827319543071834177850908960700205707482911998171069912254437733556892052433582305802844961534680083263769620859844268195757005989833331668467954518728119104031350414596106776659203738825953109275531905288128348624310286329572119260399280378551365458280188535205135296858158598570930897980591707041665940927212212520705951458400175289017227972221174277722293379361088871661625632978075630426289917952952325767969570840055478601217023659094837280763353628211307437947355553610772916198181661104533545836622755874698365822599892660184175313205457676360120996747967682596848963375390449457118999002780905508983574724946685386743925735935401680975834100363297272037919280750151966752764162197484476277930751118556884607226141578232475090235207641480261283905984981159053023865523365619658347871513015643028895908599257682629918309915701100675084499263482456138870543355234903675785256432470018853708421059941600083938609268325603725504810169653009765894730486194820122730641921294549056235818458296937957694225097145345837907542743440357089580450311497201792843440562905457276709521720799821191229802247566598469777122812772799466966611796923641914651502564114875186456987570811487335045735609369347106322027602578516398873573301691192602722763962277241385172233886028574417736761077400473043433447870161292259551420688555616529337620853042713191230876857562948338823776121077408853465567739857476625839164761559221211415645349686313078444363465206532158482851989748804385983250848555186973067185513984390316518085075072853440503789170443001469566331563696158497253856745861740197306617733806739452818866927132392096924822662058206361592495145440062980083025296468049162831502795105446286128148793308600233148080750766328976563330094794296710273518883753490874958149009270190826459251889546691349169655238274739343365144576121626165185049813758557734141802040529315790710370154295559544348612370764776909069074416657118199373265412575810235874153000851551473679712320205175051449851384989347484583629781760729366939444306313205183091941062536776319598472623461778539380797761933908682541117422607337115848015979510140684291378733637039814010443373592975891075281326211706554058321485252894996962387804091011873172906937663250371752941735693520142011127063505641290587091945337092780343891963435804399047974661318808993425917338742132850383621374023841983323314683294798953766278858566267119544175635644301662851355409448678022629392507094715432033764805920098204920274554875511588814507726860646370586721564214334580765650803394375849645317374938103732608596111396708408981885186743664525945686647284068068453582301283567412738684810557953962761398766063980753765628604621764993126504554796048883449448051049031973243857919771205929297358462770172938055809965098117181659702117403389850148881080442896659793192607263458548624257149317373558677174336569293081473438793615317997952693695036284164318101862890734641684890820355741230679266691476582378894936665401308475379846530334338119933594744692102317572728598953807292570035304360427039235384727824450282347509824862217766439459935313666026099891473584848448920217947693434088809525942106601772543781744297564426650555583984522608995191133611818387224968869365513935381344435768622887535354206894241012393540676158968079503445974324079210173906814598997870272001282373041060075008934938976411503347971508868072159867542060945356801402007985220871028798768719540415250575118034371726165385323571521692619041684820613187605957947937411643226689031273676065257962266065073128238859513438946956417196312516495801540441133340964310883533028431574886752294749306952623748154766062512776620515371025181861646797436148357728102586475059902835479545912940951008102097963443292836463398861394059356240110615874541399711049508621513828065110430616051965302517291720893694604855849533901679487978246092587170860993671132843125387636366918854634635892557550894983658293050550152213803344191398344240422356352645889318454123917062521431066494555337494788176269665543473835325212742697151387254465066426462357033775209554148493210399619758914773195348103222011631286539238799587713894002796536046936129584899184658028326362706597736959894689552405849061187564800944952931187982540049028193932465537541226129194508635697234202557318657242706845595123679478111292628487035614271599160399680225251767052186761541707489977057963889339797219231299355282374468351966494619399640784561097615033596605969742992123272212528691866966586562844069332770108039452863327520766069989742215418350261032619632253212186622958142463975634044615769447776557783575933947040388994096582247713676657470115860535820614946172107160229528791773822114133832771410970811091189860640286009476691885994004507393774929438741222866627571584952062084058596793451547103473371018273424796742602556462979699810037813781117661205264855000595813248898202921858342347907722552760408843124433623831448178689218487302148004896243792770372545169612106980117774088715956745282189381100476001062683714293268272644817572796067399080759951647351198533752686545635099947095586285340231268929955417437330309459158427932181095354341761850837957395659546186075805526169251423612659078684988493973597324134266425977107323089688462145666840070525688226847315363315144458595211493145420449685240729528148239688754195120786893835180438079452628046879596937751042983518863888842970069762822592268629028976915839195197331674939543707644210307405376512155925287313126588270184691634531407470693564188761245446637789380237431483940305474715234274926105845981395904377928533546625604645792961526971206932630168948818848298483886769743198327497204931352077119046056988727074292754042006279247791859271631531623013101774913152353969417804452095816364519010396484065624441578967847247180558453721792296552746769843352635247674267670850725090651774646276853685976866041412047432890490948885369719711652320809782864533391552706723993951413853091659237146838139096346284417175713770155829682451503876903107490865554502162535752866400736717528854456951896840342004607954763664123836838898054722606424409116506557150592715468217677015368887483187770106134984909706397681618574595085774284639598177853443222340104988307270674315625815606120927800181073163395420805817948820402717415270756928421562766377173246207320695050738901854227006456416671481459597341710683271480022039615980933555194794427402577628945944987842157879193214471454538959341935094516296951453840407340734313408170593150863770418912119646800737396134725749161356836029651998370004209898241716368423448159191855703898473061605416449730077189891994104623183121665453202670345217075930760872729027195889983211412202988506951944425394064350394234992195932056062168077282614585206928045242112211940719869524145091217815465593361293757780841186778165366065744089110196221515369104719639930452457436858157676996657102249762528278590964001230367022508753677756322709524874777422669513584617972175558892264841929636551716419714255704635500605181567921077859763802557559801731607959341191655118767898182723108882374235292279839361472600619462265741705829391510993464141379766806137704522347971228494889403445586359623974935974151108940552475707788911493811078001833229139938596305740533628420401745970678693212417315502903362666805778453590234488161072342975557527952936186970082559541377746100455947526595194584750420612843832495496350417473863755392730661766328019569039026685133134868825360582666559548324626379029183145128987810361054889215270343164526926511318946783423233519257366649147809999563971271161381116369616162997829783173621756780465583060563347397336212239741130090087456303689506115496181071610317720886845799973566634787458549104627349165804134228194611872349082824723359024590492288041915231752592206193280786037371842875602764860122066320787606165546793092804682589177006654784042851925318404948353960831978543604024705109834724315360444242631860388004019493946813163285558288799473784508844607652536890266134259927655623141628586348236728020083090565632999968824776990327367683844062535648042487692886845031151097926208095890284736222583467626880203575862416859911886941238860852203918067442240290749682857752173764988484094301750958088904615803023422179658326037147198554473584374861236601613763106407655285606839771888896577995923632840711761627321363672768686143469003184579681152073327853803228229919657918575449186023846357230618596700095274727529748665107673137877327117842125458151937015916876750411668522479614139656759139485477123310731752008287037480838858506525931305674924619015184956972966838284400678246323725319415018320320505663152705308444159011072979592677402428034227280621085025143459808253312865245028436201478914411361664485647944277497437049665704910118384331512371104195373021323140412408248078142334059521196662398521343560922745287080265475313433241593271552662902493642771636605578629177513797544110523718852848443333008249971735390614661751577855327703405703508773085790517374716331186874601001866162660213646552777121607055124945188630866313791865716123794312711254348539389441774541790144228141548724301189912701719663679091571175605666074065951574454882547633058285538020012715254845309791705730362169937688094550273606967801724639962253406685201337934594764140675902510311857285900667658488405352912595650204481002654340027282138009513698176771671155416349617051542303010494775803980177454022272950343542864158136623177923347517080475171673363562392577772017990036805717222758618889634598473347794643279022797669775104832042981182418529531506901213403936867475858898418558891696757322232076554707636468001588883675233653810443256722193839446475942390638253565379745172292465696624852990549954178113306858853057529593192140443473168160329905811712746853663671655203611000219094897758257063374665445866991633691050539460900016673438989380749378370471143039009012610689309078128079069758117551301635865802998500678257904345466166433869305744530734069219266464547698538244349932459343679646839698036450299322124080895568307549065693231869611758250478957683368579933460030988918227466157471783608602224467979724052561050165332584329184121087324972526087000165473878275573500501070524292014029928764514730318629749910433498535173632899852946915593299804277336603647154709887260856965286305013502151168729076494245001905124927394170263792188461943867949020915561062254910451078848992256044910823492732437264059952699835890946435192665111850899993795542388202524076683875500433135420910510097730773324411601293813834629189662300743143632703815457096854618494119618583252496987758009179313330896743969970892959054651164364900757586713735725761170187474408551069716072893038966641666904312179620257037822628455911432819736455118292206723810281146061252798547450233963292905202150688639886340077152963158239882493390857440474850642384408027274664754644606313785224335673129627910384683836293386826621877554478491165818470765322221935271187901322562853427801117332690029653625925188275964756993915491296582483168158995339970950061285349179466918667714354515879945436737207224524407753405505478787097448243983209282507219137795694002342671548978271988880918469527474200950970964701466678666228729274856577522830598526341741534026773403663881903236534079558932980299862816321495982518439738910178084394558444347287783487126739626287590460930554211522664768029869578808780836649307134920192210383752268903666906179828817736570164741708379377003525623706834963797814857997094790947307394993117002995287743469482376487990001768650252156164274888891210012808095567216140958886225030919653008336387929601780475443261088019276130942475030646031043773497782444934291224521817303533757061730132854119808635916395186618004475516792776252988249184618508427031687069233006747281847693856524399948779047075305145556732697959304839838746038565078443133353341802552495953772459989542071553031218002796726151856539448863496637800202571357644611115900952854744963514269900759524635106473001315285329262126826301695825552542740819017816082276397375620746505558825879100785837458341989590796276416760165650814167947295187852907944620768222708224378647227367659316808251502798053365732133804953328612892380652463145126946609444919980189652455639719952334057058844907924282996289888976845589161641662898437694055697318296668269435055656969452537826950409582869150171024511766873369377454975188159844957108890735753070987873786677206280842660049744373806763078394335125273933196186377782149055534495452750745760216411992287534149669622041996507231041923750322063533683675691970356370400310230009508442238245895773060773975119217178673182310165688669492432662873265522868037961880247884952085239075218431308320591064073333793380796819338343934911822891735193375592764736552714072432566649295786342373615589845376409946965093866942164301775033645900591146707909367402084484837492816970912377193069680563393721324117745410862033445326102928881593784873061375864231042945765664228088822668898068425868859401412577976930713989014366302873466886635496330666132879480268385588421012822895946019942798067511209174381203434964294629041606251853310870105457173330674042335668919738385449574937450860543254825723963633918492193213571701684329736386778289371844968320517160100990533269937094071452720981531056926706241245721859292743154821944009181950293765293211639554392280802935780076111822064141866020151583506317456059758045165377033993119175646113135089937480370404063718326035210790874775555242082450787452508298949515155637390516758332759553705569070285836122282148772287541650584589481594721838825223043421206491454528443270419736805001008945779631656055196254056366948157911550078722367676867513178628637001978531169294130289169712068461991806478429057782369908791786603873694624932341042342934793921676378133089686024111498169189993173375757589418415380455590217710293883176171739980232645478565898289506253041222487629355717114326397314258408966461721540576618476326384740750438934126739068898440327133741414034893872858102489803262884111535734780802651487762272472685762017428288558228283679513688946981821466299263291343118271499701394676383289617195346968783416307513050450366980109485026552400505589767217987718500461351074185279793172826993331760891645996000996101449729226071529629803984550020343886687201138002962361168083279852082731668163053258786299274154845125199977766536828049229903641887306436473991890934068045649252046551215664349501898696285926646549736926742368434449015602104978783834164357238038930400892227152572530693701680386405503245629839663050919744513738423352792928958720126225684772548130450837125624966322722028719201122380242367233009199088903171121742864230656971975979461256438380844933361915686347779588711180879812450707690212171330339771184114658289896682165892212767303572284125942840882981738788258451311383268298060262094622491095932947663776734190552003687744957349456808666504120919877053745418951338477422847811183392735809499060419357700763599977433091049590725261599546015383330787747991495466191838789369802204845294281336115252675313888684115163728041448958972695920709883486320918761490035149626575402737471068012411766497518664816787194108565993739773607170603112372196298722777998508983971635280671869202916569680729351706600058667236078003610419386592117912103631018507417816751792095680687264981011020455999925974309343028762542874304267881694759791813958720110344592021087976895727124638485295067636107422322717777417867678160593952181191031833402573216092592065540140959050568218678593690118052907455430105060641708524522212597275424037996630761574977255012590023360785127545889658963514347686466755753042937847567719129966582136046476544495257611843013546366840652475257913111379204366963233266929265214758951174869371369132960924774235397657536482601568732286853014382954481093800533811432469128062733697260194013254714100236936019851847361063548051456525695333428526658489414993006265361048297318275189360820582399487978719387209133797165586267125693463858543173560932225054629177141576386242033708602820383528645171008625289545152752932113156320192836222708186676233491889500781277029474006510595294292458210241496623547043857858498492052297096633336417869356903235553290942799226320249191402356493616106503936936938363711138993907263340242742168636540661418801833424369312441626182821102068609972045833401299746495496919437324953472134652263174995684734372661450441670112440347926023298294813938901306691927994451991269908927067430938144379504660546680246688406158774178601272059411407194109086671828112264786248339821261548515408179752244292402558359392261858378686945791988386549257028918881894574332195239116850488237623586782100895994638694121317895898372332597235151789147708124633168779027464657920634151728431501646571202528949129224046660619492945623727559795618098949531054929085046386421521023270573383692537626480664413860332878380097112231757747400534430438936719301500787966196347639205762258237260994939118213902000738511157591792693812822699918809319850033416100838270020290477500251670186593232946972148339967504631009016612146559279037169541259184455949705428803538640900655520992125631097655271064320449233704088897569790094288049192832541545729108832143689923011017125595735495184395417860459597153693562028323431047115916990223859289402505888484423958378889242911146221669487252304215018884519812956659318592451915122810897422126601709176287595949370200160084403347649458986507316948743742885277424496823266491680850313701436956045707918471169991682687187974221554344015308310403669299878322205247588501981351444605430584825650582402101350542303029234450194287892121925072455200818675404033314625191642759039674021301632281387631246270104500915876688725498382845585796722679581444799956430023223414789387599841433023832538787071196967409046297593180295481508014242378328871012081592903405638637140043697537788302295276198272760253992157412756916801376490986841391170410645584188482298718208785821793012541486558002099474617210110548876134722096118138978900121454661051023802049122675420946628597807241008628350201468440379532290010717323491725787730093460869337306238351781976305519945357506933293586258386031314825094665327248463395605535374841526542591082946701554853224306305328529255166163838032891826141984628175144740413279507110366607341273823024793869421354116069636185562437455093708300487909204679681373817195487646466671091126870606765206369852698567017861692399138694189540077943262659326413742611181252615582692730556280179738478221325452909111889287164747553622745228248402982726470721013548225852298420757224019833309537650561872432508501717586694873650161499215195083977222884297021237836138189806028572887050299578121389635146628768786089064424370931718895376007267835075109761817225164995839454575919082658198462206520414858114485176346070356252620161755630421458777171367303902994165517427288967870697321520197152742759435723600131613712084363526914562895966240971437311400329131672963065205370435315328480883224674549315045275375296583481906205208833915229644756248364866793767518576945026977320795605885537501696916105204749761209402247513004519964079139120068400718550089813751601515564330879607600237940710773932479136249078333166442081240147624634352012682121660639127779467261464790940028400878791500498263913888522499520509082172522414310960065646471501868703908102517711580513108410157454536836857497203018521259538524633240432363596785733177756965936220774157989406786306215300214639842374928529393762602733431394647255714741121954144293604240962440073502969590216118604621095469037297336359616537370368232798911796585057580523009823142319530280551206320636094246814870944838549214495367617547533405527615393684116231827068404902579790935572463622938068699936055387203379285991022680917474324999882598954870944245441443151496250138341114273248788065068039030490498521821659569464721920005694726589077150593877387132469073343799230581582920965142332139145804833708733684286554349512269341249202474203226789138822152995364615688467279190091724171272391714105339686121604766670242675172033481504116283225128531261116139813118356573832757021201995788373560548033007985668983600200003870607259459185454953074318824629926122869214037882584574856482051709908939922287647878151187193400802059165530844020591403587508154973852142712410308808432260714745299621301197754545008950070204924370763490443085243787009154018320202898729191582197656313564382629118267523668524391532397556902005436973184735362775617159406104977320680268985975644480117413478477925628109263248897420485708994045101525697033773242736409580677128369042083396848979099532511213270914916623119369031778065455643199616075856424557437594159325730711959254233079456122779073644893807775892311401294413594847845123913685932844827155772548433003255230172521679355261347217768011286468216978886731441335180443604438793113256868714912801120365462793834234705981323551254907039027130339518856493392806100008032267779281653437530591926004579237124143106651342899889225602125436855674778098068272465388193498917684739515635808519783377231133301664568717750555732302959010991491632485473209516688443285944775567546749812894570820917370686195542284316620576032666262272408471394427522110407742720482954620333026919450414015763705956574887448011190831315447952190464245541492406216092794254333742633254450798443047760437381385004675193987285875822500012468694910800573344296923658704300411328776189398631113322708294446788477948053807226664436738871676545504866722854721180930117451792962321597862006681828262286288134687424746322978993575039405956997351535205780391857293822393110813282511014642847194093493908291879156006007162797254474197661947269996373255808369413524291171938968481118879006644648069728920767067265375447133713380720125858426367905455605393774104585491503940518619942493270693011337784866834900710782307336014105081426065988248262240459675503035202387581333363112188252962837220296633182955152947505770669303412227487376621953025821323054384776336629421806675738298643691832308988469162627072176584561545372695241576754322836817755938102636451111108125420306613849277274227029729644934812845784430557216736937623586665782536428593663025302565959291879726099379028794200324138149589771899769381182067723652784553500151154866767082882955400035040216143704245357139646851376732998194656034521296490659006948186940656350054416063166238000311289785553097472564686388380276898529752761296284854265975211742265595794557662103133711658217533069529941627431416472598038260065949273400654175073837895791667793657639327010170725214814850092147548414549556984612433770731591161542744314534669313916200102342979981411664534106718705260645017757454999300982536664079322602640059116131785073510312617936659546654443418663895530701408770725379001454873469100261190382886367453121327036462864594347468270120960878391642629393294446630098546993861489769990942849356333019098718486395203737119041912420209977658662059527231612627557880663404640491020681957768252181391453109152293219219767592326051940047316635339139204451143448513663031932022353409050836815257645583684414762357556585409871967723027270121421226682827558923987439485907452596044785632088092880761559282621929610292384535897492648283648189410941889145225747783565753662163007113466449800727790557814375309719206414540627026185069902823248747682083730833614461844797850857971310851429873326810384819206834822236650521714938292892999060591138958923052536745576823545484849898844174371281595853767942986701138703763889606630360705632020187030569470631034871211275471879028123511679398545076696213440476366712839020903489920231852691115855228872297330045542501732397891752676141895834202326436155363189434073071128098161430306337450359860987896463142866334096823284443085248448685770079806478694211967339553661912170879872698056976399857245418961639302548904033891041737069370363855115490740227002201594906985818133123322549788546570621918487118265833290098339233613914339845095261413727284299042356208895795469417178453781931400602406482795976257345647990314266022049495064794795804331343103612743413648801047294859395201148039207575742375945563963364723353079245578066345522520972500577121305353685955797641862119280499288337824782857847904501854922385230398924277304782740986735674238638113843555377524377201851141761368583569577283427332953030958562202037771885034911281320713081515819346912062060393228111947269164152790073543411508154687103176277659794233465682336512031430689333202105307690477125270850680876541550035613245115758681215103403761417055768485793607610618989395093326959279679660790654278523984754527409331794505182674130529290457751135779712409984551063191438119264938020211108462839243426527099117355863097209311453266497273139613809392580356245201905726101577040667047842381659337640321772252426801805997065397060812210891498670817083163944216947708682383848626256222564756215929171121040529590037623349710299914869992703118389510621830314857085237052932642665791560398095576229419866946493513076608510894541067560632036994662033467239811442670105435612808285056916144258632866829306508889907443236627317929904918993855755612211244337165572595013059581341318185723116058229279233328740161121257789038748822545915877434013702763473914336278006384128388612326673810845792584699794221240830820743004254970341630910036571920637848751486798722634638825467999812033771481555665329987996854010951952364183817788425426883976397115052110819209044521985470478157512914807724632500752241037594319646145172474391434311080107264232315812449808582914753090140659460513463512108794692257063333065094609946405368481923646253302705911011071475863811969202266492481468678820718566180819111574904949196988682595602916031684318329292322670045984827742956870542956325768727164477596575015148750380016396877727063492687128343663277243781735552021050083693021959653153716752069693120987870618793060427904757323995001258969926177877370327482160622503435724429294132543718310335133428024145148878395184672817239690665400624746785585711971099231675485517551174438957366662898249919726539140501735192326869305867048759177968753229203437237605483917133854413185952336179949305709999728553100979760173737279477614740476067053111465434749990088984969307290604053133743014782045759721265660003191092252808570661835299573801155366266280107227203406528634815182902074805197699372013495374651326965256176680626968639768222474291811580766163884337181059995974107518130655381281450429810224799686134181735166195439840055526228146527714671878871776733281785324347370902939203357925779253118350820559610552211246704222926845445952159128947662726487082057502945556607084971196658161910643326084100582710527935115434506220685795925590023218693074288209113685050956968526045296609476373081320924365921449694243974597776615975167093714733091356431347740452071712008951314638805948535242604460806721286428687914088652610497923301449751735313617467059268935052731267583628434187301395532525324752193721833629087967869274958620092518001410196321813160598098312912376850359940690689130147877877357079497974389336013389909429430415048054051870782633659226715436839964636248223817527544476857404832111875642952538407035135606541963399243397259777603857621997663319734440955615048423848038257433880982867784125264190635031453699926165328974133960754947255659284961873159297134307153514356630384401884661793986652250162334525753349678443129776299023110977704179576991245888797607873603068423515392838187155041937309232965303646482865584136720488258702483388039589725445849102420466503739476203363107260799811862777985815808580324108611143656628908401125293987665264534823965031294085264910188053741116543190445648893423175940010359899009251408282490742812755936042978970261236942747881748226234407044013225627556133031226777565360209874491832291964801208990791015693792503215353716385267225539722304557616872389893546960455492602945052677420468025450281714352501511163276989617171230923901537979513342504666723288944932494935748729838025860714483252877245326168525565351351677563108024018589631397847764092676827442002993707877327539661175281642454774676529221686004869575238000817376452538088963930787738439341333008649226023520450902098949321694821902237335243327889475388033426432738108998124887527323755408653858395512121955367742171905442810037477295271596015414370943000280368848192691738288717963525730588214715809556849423379019840236170758336019769637199344225037854529723689624764115858559879501182070820533475821883019260060798610557309970261056538042629441418842573715611945662770013173353284918943343163231923942865796502956186877622539197605235170448508194044986074033559385586633239352078154110927966046237167860374733540742078253787485478195848534589416431172893987282297722404059290378212351221010508237878145208305855311939222357998938882863944876567656579311156471192432883016237111665154969874223618098050131829018124540727809832508444687489512779672599197761626369082101844803291092403672034395460266861488929184695449841666759840174347227070741964789366802428902272713891760918305947035088435516078031927761685801832035612025960648229528638175141846313551805801276230133919099310008541564400442399302408569184042865559268049313981737967576688323200097750309872784611702794679164922396407197527370667229996344009940094154417516008516061852894757500340580133887847126994038526607541306416998664341285852334876746379423923115695500394248422949088291419373833651783319786271311893318350578010326731599862833233201920360157364404134474638985589053086663976513316231519831470268554798045458800405966213900746760097139672156340573284865889599143326371643008875595074977794918312522905769655563718246082960182572847715098740412278302209733700539270655037624506522972802340174146144994092727114091461028832284965427008953127746345217272225846138380723976093439965108038027336404708553468069269263630928917156465214446015079754941700986353977529764969662877942164177045163759201093149594583676933887167177477365382621003539721575229245765233785794085427775638810260477326772324193098688881535140497642427708218047906494198190001375657975083304207201379656208792236799318400505900096515140103470254609543830241260780329022584331534911721467424456341101209987860170745080290705213619350123206300146380440136503620904672502242986308106831748996319273856542682936974360147241021112224679920922047433004570050205350729509815412160619356176084940812391608655717146232192572970163508761276649206350041452166296990434340839172124843934296273096432520828851937738221461336728754729914644725583487121183765402187806543546628274274679473689740308197261776417649173424001332334434975862380831832781096820647011894203401446489763972248381426400518902080999553810540636740854021183489637579926762590320038635649355657282600785011573982733034526757517226603676096008080742942951649725081593325813803878666487357991378399998610424672419245723514377979183949067076152529239346973868261522166056396827891151130943492623609662415666363958467062090508615670966046640045855305516496473410919825494833435301949630522996237899203251391143826448636585827920941165894810094859428695158081292280518104334843449922697916628641277234337270950579773150268383258471411574519152854836586447138544363220008947232886738101762053312459485900390005289259236877184863409236593910976378026135353972622567598384734091441808805279998377700028225475503583400549274695751478357178828412105600169370009132014133792092022544799488244292051093087282543921507099593524197660265991744925885891463016971284040080270823966827948205716450829927406640662083221287280538099802196425377482187559409756069578214335497736469355812710935624247823796604741430018088070392155340135533522783475154063993675411378009451862487989813198965842104310886521408830037482934585877666629197452926677004230882986469739375658544025515445206220423753907640978110747841401237831708021637466594970707452940723619091170688991332237394276969665989271648627233292233092443786330478616755518109607892749353692525305003894817018329490443816883460285184043847892491688640921212534553777507139305760171187302648137895359527787502313213433097824542677667306403535462964846689023792187711431114264694409495668617979923056212862115894603217455337273825714982738439649479833987375172409155930984624155442135807021608611166867585574229607480486808387855603738276902964300486330102037953071999618434315482482643165538488682680329283629998468167817325064026805273343201253739272770755269764822464388040101004675144511068134265676201942780323843541094608590091487850755850585082252196289186216840717261253368222776111753824668113828466459015679433011124415071562063453727446485277646165495634145533517112670867007183540610259983853584252034588304518293763687698150698792098652321114228802176693069215451157258060524679491744205646144200851293924951106578374895727668963164305876807023611511043073824074718810614468054988570157993605410650969263172188484934294941882712257918745999687517333610839335677697115783134550994973334096728140009089134502317953230709690096536980177059558349281263401793278048305932403992709848540837279274665443184875645436011590849094618203449339116202326096568403251676371426071456031010285301517546871220121390524717112768120651732681361069756424706917065928770663825800899795240610554332474707112495321047484602293193333903405103268770240827802161283589617567667203666734920426297430152518253437599120721796744130623547353566455212560170747839340090170166089277200659175935211905600971003179488225797371922928650596557744108484609623019080539174521244895970108061743652118817889907249627957203710060853008569024428857383970429736098531359325534328408527008825916475750523321597816520269053001011103806447825531779626013784795261378116230391682356771092508646485903379549604667284080105164366032027809082695636478002167015981251266196710163782860804656831878951335343795445344796687692964129685753823369229308772359319982307921080567108034174420681470386529935041358798486703959993292090778629555243156785080858634107693077905166715605113241182314153304350813114282428039610836457973604894434563257434864434407557515218541104684191351023339621313830772964582236133240775186007295190431418754275865472831469386222137937077156769549833869226621367996676831248211518229955025993130097617799692936648225147218468955052564488716843840365072215173407818546064692987591794167244592053700567788082073210214033716260124687754249677122858328995384012726181143881369289857016764715449258282639001582600062484757162390128698289573534471584802590889434858459115734590194756181776336021453500747854774912844327367723946753212789216808102367874942014202392161203744715616110577340645573859527951021927681599300085530736903384616874892174909769472462027145616761790267745386513635386807069415300809744080481353993220358003929671879130065640063890877714275237969286289045945903192013574754875078273058933766886177163261959620334463396684767526035261276155533158463644455929866038123145591699004287897794084788253523238820889951516820859560907988627502162596104006095914094043855600421157346924473135741601016438766114445049438316176615545677445947774125041773562339250759514851973865707492997041460254430627001940269983591673078064756762652457961659728498416425024502662908366593425502842048175124793778604832017747771588018769491687380973504737465764978795837528725631925290779105922511828762349096666319047909426306641705316917751827008818492091601708257573116291741487330102939544240574916626066214730946225962845239733172860815974805896053618940339682310828151895034326769447907753217601873371909325322001747793081841666507352251560313713425249188257977659650019796420227974291089835116398759366036997856482486775056880384771084565498508894900592335223968347817647409971802730388479895692532101621795428848718979601264991420462410008736332973122203015109403535908032866950251469072518107198567001038531665552076023636029892028429243428245595896796101188603999367252058423298777696595986645885047153381541852056255183265690356409953849466651968852693674092391689229376337451988948902206816988975665053540443423318856830085198906015706194863934695213761152477515269485919898957067970652396601682179975818904899144902627254562965481137982715748449029164923455553319775124261393761200417591140350944705689057956516308848926320737941473200617227822648510710276970051440753650285082160899472147949522587708761362593639337626055961557793900966325876848847428851824335353389211716334847013965301248169453074645292960875879414574117605131602671395277834728584214164605328015936178280445243335081561729687009035523380179861007704263322000464880213289267276151367386447252887711792889923805218071075803668241037403470230869352698945137623854115527084285550444893260154588709668026395329901068252105079311246592892295085765412679555961066436827596772817137367315373570337043668939538021015676994959875418224840364609280863251008255753462095537757813595528479521281362060529067487024268035869219215131540889509092238917335338610358427722994049729254749428028775296930761775843839238212133898989329659108959075721636138560423740220046857447097516431086924786039201392205514794583635608616778167679768987030667739186906243153774039821445879013888313515577617430392852135099427066892153136576676104356161742542124353147021463269212990220402447730773543933748853324805975816153320171808050264426378271241094411175134409704173338067054755945828433739207764937001894814263344505294725703257189128298835750821956063550052272134433092425688741259321426553777823538493507564968938211341135768565805674782985066104206946263712721840994465264206009175941350765426615591117179986769316762492476016276612043700722345310983083939176878423359177732032171177933256003989685291919179754963752518114317024568850170115016284750110564747458185885362482410421547866159042455457592259807320195838612583200857447195905039112620558598702734427422046957397285270384141953189713115802073263784001791715445614130210650955459364354811968264772031764292592866375616304187150546202046889360540756626638701072262755573988774544221011277604540311171015319727041567704639614258927025902257813071672371707997992915355438200796576132875491283365707741125156949979761212677280818924556818242359135148739439056168760315320126150307476940983004117298634738770020234983632874834084297419653607249960018262527629183674782199587517748128908078001981734975550637575960431511621027464517455012811788547358280476561796410123426801615793300078608768119120353026090418962942197112114684908473114109198810519794513804733612479207159652902271874028664808566146680406350273995685806668102015223743460638193601817367878710162816538336534943631225552851505503061768370688608961719380713671455323553929523641316224400364264440940245383655063112575165423685644676317543556110852095818757533164269728989864965247105272003005839280458530093371856795990304778139092445153832685067869359236537944466754577463061468982405614703363840377270895974334255651701317908303594820650726525114476389736011724118711632851086484318352357943502735340732296701751770635345461907977146994273106142634686080380423445768037252151412252515636516717730477647919969849364740033048835277792036454586748818183116112013752590036222422009151148516846632231223507678522934691967195822901327366144410831212555341471287158671595968818914620792719624870977073640654415620327608221521522608401745193473748401670689530671148641822147270718706694729109741073992155995641777612305651242397128378888208344983212859389857914851726032919015948012534103927707641026360920760952543279659352592757928366349028186933039870646074975557639123216911322342153302012098446517027924760015817366111788114662240923651033821998717470653199308753648492824050677622154868043936247063218507949246345910063508699623373819387072834441716519742432056532584915340835921796185343308709627507756317082385212302584228093654176928298580427297405404445182237483756741265354497554820459051478776853978683908302680617515394616013317887753628734239476024856341203476377896752099643795628680369387801327488150395766901929035842591876827171859031421504820216779341085125460285533112346539237913678163970721824097736974945291496975809576845606175009998374206569762093544419630418904878668207136287019186479421085993949213008534580311149352767420798653851768707650553064851442286326343380403971959739467017935055444719546921034885222091788324373896293795102527013038711787735230112093548398367025840695862583025762337276001102205639516578730982221478038833812967679096297166387386063558086000783906687874638801423651926700813831221550963768522773409471721984350354398280601041210609223063845519096354396176982535489802458928678217241797445082784147372160211540126424118072490857337012094267342728287028002764996562027648062384546490508579980395676908049902964986238654959759988500471664892641129760403620087192756329440518907114676803771275951651500952023306903045797020519623698710260298232143712633659577649572826923591202504254177669793686956594211225636793379941920494100546730725991139388881548538875690729243367148222920838551848599440990994949843136439433330413901927054779189446227313007954767247712465169947792716550666461051941624771090771853802796336250921598420929054319981428820197783313850706832265363170687557113150627364869779938411798062183116990713094136997555073506950831742310451343057870639622024268578655808508006306209704619906782661719485196129192605356875571865654064119800878538538653282388965509150273343521226535975128865151392117796246819838269058068880818829680755456340093716933702356663014063068420052134897635150983844792324445112848177080002659708362691100806858095258774455863525266204600620713491117682788678719536607257472944203094664507529780740304323953352405477189647130004406266079422655860233536996820330434762131640712189623083732414239385007250425069963792712370173396356873604582241469808898680978118858794399250986440896339071236871767999779316018073442040386136333994084633753285862671569690871706419009921203022779290292099397594747448783743921004064717058206307252280043812634401051524012079234926165079328553587902653960128136629242005753421432224631938558792931933637109536475483323964851464480704417595373192869244112237929256008013389579321865522415051253921417519856164204009267548611809284552572518259406934160268327624255961616058152435806554052582558306371843408099049317954155358264377660962847750670783936107272086805435780389963827951331614040210787442276260829677438398973542849477421895807906963748655378521811054314232365529998461578343208224574465940725054479867453289571983468411334446557510616632535411316221310821852462381325581337231820922543376481935915974306998572447562383878063966703179658134750439068414121722143253924063577116619800035526352482923452838442468684658001555936895791132803159664778502728330336894293387800081848849264284454340906368971387673068189432008739407896760927932289500284870735735362915374589373007703049076357488059101286987220209460249552352085405283988152377622057609896429428742652988768779373050543958702027157870140272279493322172686017467896710800761965570375579310778967264410971139090162937465964731621618077391123608812706981456811998925126513512089154132493175359578658631521870056938730382041187001936662555310914520093156587854340427579045824386903277416234409259051740549274228148674479903959145780321913717873111904583687201008430745438964950941310971122243430227971389167088832011841813639242571429595982087832233971516730042168117403093171716798752341467853576840833889009086744797651860533548049355562884686227708670878409595524740413596088867434067393422354267965232998164424411381222490230198557653098862044272394584323575614387109089469204994750599671046976556361315981800019153038229719371085707501563415357049914379248924517506709849775712537937256377757830276916841690370503958160971745109242037026342912384287114624285317523157026955298926675663442257319380625696958493465556597624772361046123263293395494601799223517029197362924234305919140959586032653414985101924332697559557718546928539895039613664704082736745027338271441594476012540101829746303853427672788807643608673321118022129817368634957402636205740486959919800795814287729292493550849525373249999225720889112808833834734160569176592277015219435757365415388356146068875764407623866499575241536532873508074022674520197819006359356742865156535735204434608487147740259867905307143979403598487693839442336871740756167183003534300748737909376331050896991236064061167320929769284930066739775706041732342183056132723173367722629220542762880152443089226637593942803529823694013636853478848178792051629060295945441190016004901533200214569397240166185128612887102950130956760085102322609289438349901666269002476124336621024979041136350355463378230986894231343201086471991325647512008078306604939486323326497685546075046369815865246138656435252881583979122075016546026653610919154937996437127388273163811961603758758132554476845128313423312398482307774059396406961260934918172845908331097505946791950132009440955152558430242906876380577057391681510976816700852844635141901523880258090358193753328453700517991317304730380658261085538832012045685990060941179381440297933887095955353799860993358018142610735022723268145193530870353138186481947759053600237189464657276711181135142636116454265608487009509487124960118538020048949422368642028133686282420998115915385625881610903019510277305721600074169040821824482202775691072133062594087433831341812793380077942176670427088974227858837919472080452649461689148728934400924670680407952122834861446277298446902815955814900009156202023039205445871791681409382783267590828937446321855826523740530549824213739277885401063333165581774071823956564127426667946902800415938785530791682216255155794732195847388421347533240612024952548121673023069041996497857401354535954157744777246969902283731014293528222078672333860013314995086395026869959092518370211202580783672493080377070171576040472392026108725086631260322203408781352035555796002993530870511234143769559539908539703792320890016518044929178026389904353531248039792815679916156804182838498322583173076649076120729867910459754229693176435580243228517689916003835111052307465720637516471157996660963873972428194680966569981689694842547735114928514905372779216965151708621842573773810254080047754590481525103426261862706018102841345135632033381521767492103290406932384699296492389024731246283548607241652110666275956186870273234055695912505724826868795634564775627684011973172874823604672104947614052215024327013914801729531317074560530612572648832805036940621482446996873058634573586382593378243433287350999734032865991995901367421574171202548587046343414727777724803927979007538926664434574326637041213373334336010849260181851550574483113349146576884252759251502102571938328332471553134881130652224461718182612417066602927117917379863395423037973647778578084187406959809064412046770870917785839787270691622026999731019355529240220821507444242492871285192690744720082843398324706417031204824824648968221083510519562374477241353697458299758180114807160831690550937644609765616350803957831789616009334192264245489199650717777269983941260139995563091200208644524723833253168098313910134755709011622057255029794232037041095929185150743031369488769026846588656116926267945553755076009643655749398731634744869692630851269698565425477960847150665875969004292100328276907253227713578475757284810416783978491786574428320501794138515440299739736172301286189806809989340764000594572848394777361646904244299120082395277110370651110922958229869736235073066914742813615525804009654236018603333793150134494623142594797524141122171426808464726976735600081018627940684690585112638661000068232461440049261050704156399443846618940895793588607101867885147857145170872767115054933419988592569256261774927240101458386709692159280380385791882696900636020323265420020002886281268589197318636726704486961778586582092392713478378896654935626703422204958651734188438590626740209706936381594342150441586612203116255003632212813827168341157413745819310728623158103647843090750852081054129035341728619446728465316611526107506885913325123681050210960354691040496956212362209595067313232251955922800637467507683883901691940960619480619056465581922375640077273935267183035975320898752299505397125525094339178492711066748812980331712281786274476547335863110152081046872680750993824658566849825992235851589397744165018108648790711977996505086639521931341106324234129558024406797437351848765326931406507849542196009292150560257100934216165383894900300904859073879233744590084969260000849954786578138345917999233267875746128224941621224337771064473537418759300052006229980347157758011280589649656561699556773064941387182231186026155461928371021118301108285646712612319127619865311251068917179177875208166482426596471615786770206080704559404384382417581979848273853355242174897593195305566787604228161883859488013560908880709151399079780188854408411107634139737302919174005231126576021657969726708131578306571076894726104015277831114646028586509787206111256979868613499115598301360705571407792628613644214227106117641636234469020593781721992742295241922776487260412705177755832335287126002648275652335543816729333100002031072432428512562142473114791168561134578863577619474462795309941985939735184143334466550922541164046204177851178540695737537389315061499117395407305369054094991671007077774323101207814971581620084102794752330329413884226089554604091871442359863736643777710294446085279088401981920973198605380272928993526262701647486873166433764409511908032225316390982890441215471550691208442192862869318649789779038522258597622146776098003420012962791386397550571878930827124903668158983222709446202082710978372476846632663972195430863974771484526738553926475331914031465034338832179703539800322717690342770712611411260773022924364815378723305245216366242318116046814473419252407134815700318215294241192261968773877324283755614115675411289430774464960779389008507834180529126836985981627660617725062223759495291032106253179267038094247263275629631779536316859102876631763225020909128324491968244568607012954267896210280189200361704174092594530040471564310897360551789018067411724526513834124091948020607989655707889539244445569593101836066910489978610410471790874391667818757068206058878052245858276215918552065251256199817977773253210514246793490956580607902475260879644109556640981446194821135426864062411774230269039960120338287940643590229466843834721031853372690774370255593581461497350315514045231041984038760053558782769792801583117158189739096631616628466530426482654322089854349731608890906527877723702422656356417629498772217399416534289930651333398512342928568446119383268258981823007362178552030448593739264249015140890753180033070949801277040834415866978986469494260406924772646474047721156480210302752216307276236570953197306834642970693221965636075244927536611145064773408118733376401292966826613722763533861892251627381348633657093630755826204738234259899030716179078998855350722071061789659576381831879538228390215781364223366439142823983135971217844221367749442860757222855740462869843813770878875774711793204634360827452892730476685115120104402398380670925194487872986855245806649162242342118900011330847656186620164952726823216756379567813097177015808547249852041471916023597515713715941269520599315820648796611215608788263771615901213624793424087903775568965473202229257636358580135453572670039677825961781493480729806275343570580747860992705816723323494988476686854084843080286707278798722711483295246347085668383278216499500336904469420599878126909374297062247675235074857118925057978926070162240744854487893993644547588669977990417718858014624140970012218934269375925420088027106929295686810650291635442877836099305184516404229222845153409279973524444173262913056595204629920099843749690882746181240216535964838440780175056675611437654106103576991118426673929698759043614865201734086772982521728708810480123474651035206401200712354514295773422386600534670982769196901392102401302692863232866019851791926090465841951720168016412068303070432531377392028894458979426079306655861043971820815794573325537140884536657696650113445690948888025624357355194980458671888525259231905326132726482544616936598091063737850910713725835395411193383402129227327327194709011064563665805831513224614120405306881617088208186404065022479736660883426314382041581272011212798330873189882365025301057263790231381739614839233842659818748208509937037902923469908598930643266567389467155969070867056470852240040505748443346536925846808124032249275148385035685951578309605966517535759829983341042801159401838023519671726731614574596493615609060465105262318177961603043208526116294087535861897672902794351636020741281496585085468909886974921408534014001328451765750302036397307658949346553568384237860412567845923397193726805680251413323734101122347433532949853873426867132835023992970768553120494527837146943054144090395536487865628703632445882046726339417249736647856600399373000926267707623110343385095005479829512283754325648695432816721940806485117920265786889865264384180726432278854016463903804265338044883335803080890734622459976008004798361701396887049582932230931450716965750896392025100959292578431122676764189815486962190513491626143736020745167321339238489919376182094855239013815806809822497005979686106076685482045201800638413962801991195892260781316417482502630806431514701029790627929040483020878512795548154362443136732409578112997612311593770710940518257493530215403128940534635399807770051947250749867811846544606159340066082270073011845625423326938838510143950015964822561949798654938634027773043001468763178234006205831772437268019961676007180339350528124699682647260153623726416553325357351466659171237178974138812525501525852722705770365981312535796412485444187594456997200984457900833652077966989633884877108866202974990547021944728808557043244271174074943381137782798758177751670574106927144179818983968354499442424916289801394037105045952836064095927648297145756987460826837874012676321425961067695936438912562323506554801117727399963174991001407225081854075926013722764597714822911972273980516405492910062685541223936510179495334885884676852183845563990854602062084737209723050724352600386189306439074387887024842844409296736082897512847609043698713193079631466023680533800040666863328074401341504194369857145326091431512357496460858419128827476766000304613746043949656466299089186723552472922463023379441049280277779376344866324844024120753711697754543706926616896106358975413336973753604979999536205469728244930897720132737580708956596037188438348805687043564716070896916764649926209542882708336458867151989181814654917911711725673001054057266771707148892367578139236971457431157154277062139058192823227278486734183750503297436407566722269703073710869245841978167925662381947151673089791263605547238311908561657691486641410314692141472428506783996351342394615015544041824969912096075294740837681940922120729249473884949173730332538244250444905215138232940722810970054188511350788152852824263159503105950736839902462834357699000869570473962241998404345107874445229113393304686865517700260610714077346429910044769618095088289087373652828919302830222835624203297222334473218343077319396032246589884944704009002504160830813351077035909451490232034252105156121275788271759958044127227688866162439353019060261753298650039092046668375542080574704634720476227217931956123653935886863725619285209804239035488412001570828021210314269731701323683809669485554922951275576846724167909362572094643741984962527164144535829943253361010302811775740202217510509900754570115564330858939883712508038991917874871078163037074761669077303144902659937925199177144308504680390932248788155479879553084961397318473777768805884145194959991724690623690289745238357041705319113108961875487172420033610578431829988449733427914957512548812038504621024954692919936377928925385194732623370981933271185402674154701781424484791004605354947253793804370123334942910137998589733103152452946563274697833298483648499822322611051137910007075279877008390281928615704490308665738308807070754428800818493681800913055169035786717035087677534739368134112285951527971397947389285405483888688075385662922092406363478926993731757587565637478918596533678959181999444042663740858008744034860091420424790767069782721334835557287846477137664986798256784205858470097912673546364545233614983567574760156336951601489562933650997491746798490208895028203548641245303116189784626101783620333870797255548424197260890628685997916460495084894632536203134941702271146033265091732699519764521659986551011936230422134861013919166799316216706243299708586012432573447130380859515586332449856152518894296114104154408001095088952642452368669340047585208434187685788524947573294189280849942433641557457218169933373519983186849769075938333987082381634183562835742609180170500472756868365907687088473853379911682149455463379227928056763976724035043619605683189218262824391646477277496521923548190141231063123667818982865758736475403188366893499964798634063771898406572478802518754375882598818866757220598032457629613036390387403189622261755515288323846545539299456357114379938597184108590230378538143456539593809525172744736560930453123228992011626176088974494291136153419660976000982894707166064806645643819390957430159960670983204240412829712131978605076656911043810891515577911314086030390786679578996199958161983068276289893631790138387067962856364365947985251330798753457589554777370898828696296442904532289587956566860934250345887310649160655657442665914987409038786595323669695493046593929677365303150574388125370287824692305802143612203205302087265484305052563065397528320516618152202146471662143769346174741177352482194292371701784309746776904124946539711231375232770511238070310436650953896439428897793591880924220519388690730072339209822907106280537112637015031682770768762976549857235864527346317976777277843832310164699542154511299411177384239672507465252106072133828744394524429448497206663050892340539085857274141396219637793973454800740837108300792111094517193409889986195825819525541662105000432383811478517621743439726187435056075853342961366076832347288655267861145926185791752477440926473530953239759640474117458405666547446601391417899224753161483015207391071563038722120167891559857785570034312086628647958139404443717215259544826615347729126927135356117144456938974162742748020355173316297072520334109014504146274128264173582795431058096902663772356865089615168422951541161501722347692230144393564330931055191492073214674445717670722591631449090143612973041439289339073728438947298042015401087929163912430674108288079934555385642213050040882470907331261304740404554120336847407464830071044830564748838657417963980072652492900451371902832637292259208577935278216270242662070183269312466458232568055726688278531622280303039606604034103062225518936861181279799248463869607316179725939983825608218397191227120040633754578788654328521134489903566740081258362858365468050690919914593267262528838660057332258954823477963409357399259945390720895248002085906692715056857507735957838746301246651347185802026594321907589978196584362839682826159840289030470094688964574774359594861329271693263208108795713852100804269860884811551117206818136668798928980082404506719757683799863260039978391963123490215194728937062202034435637915872729497953836750363460611420127478767813041788875232850660229591625850736765806258916636252276908420204106390929340256400713903551673435886816114145541592680229422994613241476452355127073218680543222385128151703985458125770199492035476960603186023127228202013365874464755778233877258260092192478734895795539823878278984956232289499367846061667033053130089019099840062384669831580847296689941124878459379010624622817425749071553322308051249195656388048738512153302453708929203449754662102039553589731978744419026704287329356360323012646634149912758353041679404903979988274191172696014479424482053445571023345600897083378549499721323138438334868695416870120304642321588306004898423542803854982170623593095792447085944264160468301050605393063019498269267300905993971450182310571710443220620793236528795907777104530810337169633621627673868900731680390609629848828250158713405262342469856881960784004891113840584776802073575152146054057775319044837470462809741952781128396516647593056092423626811584070650505612541990699185077060896922757257640597480671040126921352401104178560265675184428814517063464933203889827214031285786715849193302333548139499578160522178398922136473542991846475477769975729898147387274669356909930164573618379857865504809313123915798768132213539966011867632602664435932937168634740394900181618201147598986630133918590244374392285797770225936158591575253105121758062067569068322748269093376097987233435233179140356475852533263604318050315556850734470690921287054668748581055056028354142737589610328889142243387215899305683466465515385391461290469355398301143290681437467613299307109189287596079197917041581726653721705237923822834149418329119018417071428149015756686292545853621519703839763678360493770922869412607301950292014225470638885731128730481441652564548333806013512137284556619557252082132526615889247050319281803629705021426403195100277771223549156110206638339494052275596009287307958068356291375123629847886253884997212423322196158113703781032180591968084750398072665902244589240723335451594176174791047587475840430914272193836333494252612257995144488971103995955881648372886434879813118518762760539601344949482913400948919800242763611886941102372062158800244224192566695307384464646977904049512512214623227932647117779770510572353749328446159345005304597837771192805962153582348923452870790698022768097846699439144696498404280742208607801174697465258415159257783256758484971277375377234724524703737959291660930280674071946770274851031273397625507478046471813019975796118793814785838777467168133772952591874082912712476836852526107532607255572355470211349982800618131374616828495427671747848898583949883589378066632364562305480923647102235803778087464490690074885660207690661635693734417909574681605354809284750813115165887793617119311950411499918691523233737458195857874790962989126194582170884723163934954935287083010731068153069706064465042666332286186485699119765792672600422475379853251938469123966043871362412725985745218357713229793946314183668502534476096039956435782030466218810133842565977009141421266575794268552882407847820499478408860806097627085356240069680359440523008325879918025718797212694542844619149183467533324704162045935307850174130778271876014316755605405771825992666253220738558564219293958290048043151298821906748846135108421120925211528884056569499973928024197141422299295576443011320926824459790711914159825152748904302274010467802955240447360812353194609458380014557169183702760627536891937839163924052691389392380461016298650748832705763071478883048795585630054201944861391455408387076289692620516708596474799001270819187854686152421329487141730728480364650553869274499088465905448301018815971730745698449642503590171348080785198393720668084095631673958586159952552699550648114512262002266843416265270318932911004640713190321564460625613615017727878113201584655831281697135749723950865580946111860298488615172644748752990277747848480853073675467586108041182733032576887742065084558749104200330914501943962550611316801215487039752886832222620086515726306772532345727555639956911331719440305581671122480569950489067572840244502321198797632226689026979370533168547596017021010219779522214008277307458820628363126564098168739764633950604991104362740456878080405815347695834754977598377830556985565197047943499661663586633037519542437635010056941379694084538597505899476460617195531803917609336689535004974079218561611087470001447080213240869639212189894846325469564477178830058500991021595284857164099000295189399830823507613106863721109892607434011058717083404820509075281344918164420407961122964787585135397322203972027528780812394195253476207152603686976762237522902631352057020555303227184253443534028725348445223327983409077906582021688834725555581724342590050189622457044052856157001210292226844641705422625346268164265635701619512618091371214937664728534349773957331588491696644744832129994566861068118173494763291915532240941509837134247017484269078438439204255948823928222700186677269839665387829508369996847190730372795219572047805526580948245245261331971467880282440365325955818531384318963720062749111939409559659481363670549714464929503009152673482709717473229215047201811077765437354099023652209365977748665053153719277620342923612301645911049320288615347907109409963623416270554964692420759604207657578824115194542357324202160659354542751644932790376735370807142517079103838527202675249179839722849321863152980513740484801927288578447377013634385296683592160796737012999200647437440038268215739384334166564624773545096348366721680045334073355738618193188522594441253004683079855148537096764472452225811505369954620932551349424401024907194062756784314553810706417559020614519257536747210006216046406839267414230402412884396935674505778412302862067845153013386119297449187620708078893901309755200167836983736386436231599408794849463166739261103469235122142161124228191963741523032502431211873140738814429970332502721340698989228979645849022074259833645529198200960998825900550149277032327668081505626445143063321824318103969063773802069097043163105099171851207192771947538781772294940473632539095205192122352688468132722027434460401484693978086973648010177544938894309388960639591033122737745759634394460245026383538874700633298283782564348279345742230100962912150271427445865160607862694176946794557494043797761253563586526081017027732451975558088155650409108412075292206144246028927168472208290559891555768588045255968105164424289761459898779586542599195590796988600773073776503900187590453164210607557837518118990509077899973258451203665980517365212011512076407075032695749732756110083716454828615957274418763942951657603296344741481233993258954066827576402255154148202942306455320802749999536401044149493152503067531886513511378039279976190476803471660037095966596354450992990051843285953429375316615593162014150919227625420748812850912240998064119770203176525613706589991984940552543618506741743746852483811300271067874290067715404975579124586426736551790063346979563513129983129058031074704418549731821081374467762847801586686047187092634117904991932184323575097761939350112273445849821416869527296311086718518261660647717658431254752774448443547125717107902962164471179745534612848988085188523073963907214763874256318132656224933428766709385701887118585169906068323358946093809225012919624087197282904589907013767923411188495507626742631674448363405137612360190516859858228515363401331881776664419909740719758210305392286011281332001997301900088211795259594546262996718782215869205370578112267982958495887208514360549850544180163757700387715815110139616736598112787439646064472928884928742521015788816534056530659893773839151689300367612758008073565824476665274451459648481892730771647003852037736288697466504846628546922530494666823845792303199422726799935006618679073315667605145030536298113707872693050779020824436611991956886878831809006953923834821122078252291704989543825407523973711318607188281909665016373567333606267841470061668070380587600269220499093039942407008041665915169566948870132647259148883815205958841926084556324860039485803693717041248513601555374135744571561491888736430387724877609362952465451807761004595139182933408382982135036911512514880154354537032623026810089383106125239158239506276164597050665582618906787713673554479764721773096386906638212592043401272530259780944285795720784057470506414524939763625519592954876394331823474237361387022815170906201406588989342138000425029842866163972094550123179533871508207723218607549699681659410700892113694036685415383937913822959146472322004268829573810756868352597122810075441908900066025034665001075615936959154840524844729293570687914681320161647398686880442850292834302241939149956972865703798083909050892912618577277987687965488253384248445816179788440226196554324235983827662414960912480013944574555743475524676196528093028064849221473075406041876971935580849677763692266329290258733634610125810426138430921912659250582881692986408640958787107435942399046423239895241975486496869384085746136534054350536843114189419898354716355010193529863235481191574786103448215045523789781803979830763983078344048407080788115278820330916700428618265398636987275175864625898348936542015580687286084536772951422884701647089884434584214328210047509810596268972472446239500390068600804110342729925501685138055984881904226965231124266716519081350837427748627156791484768903774387796578352783666480538835839738560776769359730737601630362290800839425845576718980798683342674752005577029200542672289898993744373463139078843274823883173928211692410146844964984303521093030553689877766763589162098510182519176542827081174041684610127839640417878896066294122863903334201532119778311075406564071881815021136202252509926632896218773379131492273726654450917875925065599617632220175680222838678714630726169783730614003108368551329001602529020765537809274552448896593031456825688424005182755204127135189597574673622767118050824180994260522120317447822385551089511853056807807001992435982343647300533561562274888518461900483268034421041662955838920909230376764449254499435235242385489279473331229009305067687220397491211275291416964106193213646433136357144044490677716130460322144227908084882960622726337962497509716141521377506341037012198804261370847333035334186412002218856415794853699547772601301168424885054994552896112698388114721346202430815725591987515856632855359755939869155911117132575067847877383638404973209408785789012140599096723964750161395293436814624431646243943665953603337889762093015199223836728817736504925628359707177894530190274422100926230337665552462510772408971424876159182221219694499249680793447082555189221007295683761943797030756711285314238977192843059767163433957635474854361312834126275048283455564708122184122251953253417758575905424120096326712812802961996830954220480141161890472441431619248788852500430368636011983116878068973133966562138404786301058173659397947638919536484125988523231752616359199057407627746557767656954330319317467736477976128147905804974379686067296795575412672316895487429950925063659655195217219296972598732557979524743931577650026004050631275695336559351666049803037462851528014247776930714478928089837254724315584293962094328423967839437641031560289454691491694798073360413776020458978018824665280874125854437548264251887254228869064021196203248768690774351387377454659042706115611381197329324346861707509134996244096561025487647949286348913599620948735085649675536981446356234287530340797098059229323961235504794551908691368074237983329879611012763616164581625311047217284708370566312473939565874611624041695110990074021646941419884588942404069957353495294988804554565057630190528216276306240887966328109093519410213399464876037904179827787908578034436922847104296108403250175590520108219337160580226232177652071583897244348187215988915568025523132480704653749153877934511291018061798120696471289105512458610408704403706785851271795520129828511335457730218884643912285227325456634280803893007981176312188660064294281460384890266187643725385888575960593864378684199541582490528253902797442054345910866482084789140173424543703117707764856916866838329645937407965719777922732927734400465834655454104095271984977676077784705224405314668930238551925808350387876242060791776042221886192894910529094327959835885544139703718234523304360627366943277381307423209012651903665229398153594749424337750812128423765858333775563699318737599249494369761209383143199447391753292143889025042705638572987644875842642591822334582435059641135696932631731831236900242393892648928688332318862988172033420482493291591403604365200269774950010482346339995163689713874526022187459192976248836043896466517554894210607872931890124289606415499297198517107993275938683141356005799363240621786313839074110809443288099245947026700675365904130701779824920765331944823889287296488015847976084473483760914970986375342390324297267082392458934227332286754296606263956864005815889906932116114984619319579542695063489195206447260985431363704480427591694707250324912950281918981793445727347641625228523051003705180972824659379367968746628995064334099676220573624884717451454297351574614386684412550746062587980754569140165161968291440275624230958175155719607932387503290988075339878034957082968177387767855571641959436515397629791504246579335067276304583320903058445878671524522520014435611150505593561132984991357121182905215555333846587120877193652113556395950897694882469968553425343958175421631875282254597619238935476219313147007491258664823727723300115173936023981173122449801348004196759633091322053173765060704333244766166274188603514883074129066625625667908598869108353872083648105664050886861009551044841598971878360924456468180073744630606421497875913798980238397742084406986091030745325360551134400351966265531543088917509878929298065229804480790700255589088611923166648917843847212406029514303688165869909145177340096567233266821996101133215270169577170198357809973004856281507087047732097170787311991163401069074114120534281773099803296146897634054234911876553172466235936656241218377825445401309043188117572054829013359008612885735365978377432859269834449996543977795722111954543359092560507243896354670668696217030020469511282107113081927769304078472533363529257279814090121476099692755486286508078449083679307783300589668430177719241916460475776135753446459343433891276717593545262544166939470490578061964667164238550472143708133337348155134925727461946210410158834363818567768496129422079345877170732493912559897180883483053831159218247113208051415886402238345747964886532540491691719484261255866617723305356810724540415332594391502631849883253014675772328368969839642823514685326021459473591636109536053713282243584472959069467492952638251421647521283402007993348700532431998104403617279624483776269064927316010399423019103373598123847846586259691896586841784307164232916731284597399382512757928773910550930930827131855069818842560214350102419624385827166468901413909618168834349111646012465586446843929572739050566574602670090239472712101505708390530530405597285661135113709185114405151110952979353848130062803992838466912055103291889312291624677187631454877069797011379177017879593964734885563329675696627552292475137704682193250770466824350138524385739218089720399100301677146451712865796320752942283832613864599948097700806210651526046218272898906071426337492184162720736024849549338100697135552013422665812838400375947355972776436138853076305479125441027706431004886667587758389027003395216229191772856496743242836684584808345968550073575590145803339112505043892451346643343001854772923531138575104127812732395891531986544115681238180812133278616748824940803151357247842702741261509878764737374598294012780608920183422870980496357719793992011755716721583913058490688158390220403589590455866892633875840071308924152641457064229854296606355215303466620904401133621806354500477508526258292072859312077197779466955548053481630521443041324491781533279995242865738003470730220667161461727506384056756912218919105467500679293599736739863494525674616459668710925961995789602087057728701202542022776560121565562441274796754733615313502648339377599855819143645393244273457285206491541326154950498926937468410295829801878028144012088519875138191721416460527419398889616031678881614711030615077255301387842523676276556926199962920828811498990276136384381579999687521446272411013692438879487990555033295081244403348046870923542976726582026072744298806152119101066545291244596423323786814520302582852811654328478476977007427287488883261779724292153627473193004937365829542583077409761180929290702990271921882163783774521347612239662220881012387915733236820907163196807829968104738063869534262657256577992174266176302939912707168951196820927353517688326698488369151679693844175592150863831163511300610708865992184031213733800488576926333754062358502082026423122559932304786062826737807859029341186638845773552173651279898107847466028906266889592240176065540165653178337072571572934482476110818836676461438181413691540062257764784460023200970268556836691193154597423063667598266558774931494309713694028275671579956924970417047091419390649536269037602550804743845748742618470618609560580121025584349356376967612571586860875274953295114201428305243349190216518529623086792424034392342018130142543800982514970613488933058402881512277224527239930405817540345585292723764172392980142399702769033777005915985086927739642066043657861725311128080873697053477889900521174631102309456693991708334585031442471087264771610282632252834145487891058757717839449340800117850020044895829706328352779863454962502964125059421303855976307125908714640912091425662139119455457098353159409963864183973868601035613583767269752539059338594122635662606357429488356728404062986633979471243498686334433671780484683374945925264120820996455860733152893026476382651823215570242104481711251724087821864843760432377565391000869980393649144556157165580626728775157901033161305264484021076502943403953268037427484900047019756303789528610608640711743833701720496083651673163767523480406298823756701557221372577113318116770015383437529797225755745190447061834776279652825695811246136969624858492606719377073764612443606469717070993994419233621477855828537079145859487708272927418977878774684657478230976839746096027975253248035130680528283460607238094944895131889163287200041559861545251510324505996930765679873136169714378078043805227639570801765957095607014337065730157360849092286836602956186483248470286534118117366908879541126887311611465448928731939250569124328502983868360399937197791950268135849546442363958287878729248797674981483372926108480397848438824513990890212191597124933783929171692361951695822946772407588161489872694183007834898476601421389667007637909417544778415001085491242948523384211460676440284061647173269828610412211149415164288734641373497817703864823679603229573624322668484969308362024313087038228606960354222078827412526780136865007247473359252823310134051614122700909718033602109718932517996700094874300263489798583480892352875025770849030770697192977280855227274036615686011154622114464106174299606826861506251103719597307148463505516072741670237593063441562888809003657331112728671137297246191703726386002662675936730948799000480128208067272104852047250712878535150048323125598361812067199083790302471642415417431087076419297590911393401759934807463701770465986426406785990621276904854786284337881220457447013136805888921525798825153320043986223550234026759695203769121222795940121460901604552213998741170573372327007966611920311740640747902032438606500022987253082601689789609058201591974561507892294519865085780379955072040432836256080187790534575413789488868322728141338505139433119746487242621258411107274286072176537525880726142858618506397732417665086795187135488812122061119228047560341603933704898715739174728207606397785032837744588174740199795024627076866109569753684385769294996865882001786089455331150793248711107682220130975406966403557704663049582694921046416841497578634096195444692378606259150071495322438132760924080922279689838639042358113639622274810817072035426686819177471036057684299168234569997763889099829062428392460618371013734488725290959626958062032200303123893059732823382239645090369861033500838845691851904255498896860085689376613279173665316678644269097815831571570091998115088618829359211397244503829573691921080742537030107222914161092226864578399630252921377775034030334967440102148698477304595903423773254887552245731066064148256510785336717252521872430202675416966069408303216667745063125918500861921569734579456703482542855257876036750710409443227302518526415615915470278680430856102048636893307735917683157203877117730522705876912954897473284526463831447069124137668542447922696413065635777525686008440246981765379547998973207348720337977099218572132405944553334337879152074132404910075048718853088471661790545483432516482028549061920967765851110751391764371977098381550446508763279077420646055624443276870783685309607883316396439303114504954180003380556853395384817722837520633285999118763830790134035465343058222104409281078712050344375164759439565831787613518060973379046765888767703481342980900269816288070373537490872491083850321462946789025314415000023394753779373004480112494213754608699748633569484119185812576141059473366675903706723392893524309724159629143463968793071308200539575588603826968968373880889183659559595362627796081404333830787180425512475471450872643089874800666122504802161151052307154078938233863932271839914954497345254003242446660101513377699098857762556517968311605434687584475723854697492271426346161652360281233072828452849023701599514866971931436067195392955437928259945791891501265206496930658396779864603585844600762111628155505504430837508387712632016525662884511059633149421146149927497953844154513036176691305555842583406808634744786585038390849394227003973913818110615084920420205664698443410885431476220366518687918839447668644969921218430027845450783500099211103738921565131218523197959122458447588027998339780615922924729007196850545995373606098408820293231532087288185631697931694757020953700092572990466182513793618359076532171545583245120550790994344928551701474285251948165838634121637518600792915079962626142492965727944422174511523420602009245909298661201159066807989123070746720440564331648236898810217322669816461940733777041347818162451128399887252712671846801681483993837843075712621512509463359203763038712517459228729430588370750257700917766533294693944516908147652213078949264514183274675368591486528519143458510336690165371877232736736636132533950899512730182239288198413662487768884590312975275558285295419299781407754803038658648858590578251948091469815229398422792733762200412263576805464432756232396620379829766517111817828155515400949719216289298176893235014967786594476856186578218522941725584085042527988695115851677870945870890096983328512837345324543353012065039562994669738146935663146029307749955255514500311906393569852271548973727721801624671400161641095910995063693113530495938279305795323994147680647161033616639829314636674846150011656520523269946713050096214807366586879167998722623237734733727563158428789345491119509445208693200192295665530760856453727537471691223190314800658862991620245954624909582718833198199044259569754902840846311273023132662358404240837573632915047901820207737157214643399362748531367883745409857848589642727172113897810178595787812490151737201748101120282878470804380909295567865081926659998820721063784978174776967188043968095985257142225863104724649957946385249397100267500438999207475330780053345087158609317268190762022507786972375603965640499360299047111385137325516018789202561220755661901272909402749535751149892925009901437566256998132157565835408078456930572122356256390389125201581444489476480479563471676782009160130653827318729459119204084698626283749536404111257860849618923332395545477150110104892667647092920551393749492209142210969438095854242404927363077014703410629445583474841774381763222703288690682677485241955922965480690537334338811656375346771313668132318395517364693460886036901712133425822781237351189738587341196126732514367649619866768165479974818330343933732436793939600710529686501459503955775140138512822294183247199907658611851751483360334230039073233251699751369646365183624967162331842468674809726229563231294551790533338205899430813998201920920017146005406857959929825553896262459187792769292597005740489897652217750044305355846569512106195759388660681276803893185472112302125794879503112396326456461847069899353428933269184044600171965323458450704676656196438433080984621296611449509971356787215697873186160738676281734360035179342851788346016408043234210109897386574587118409636298584686883294920541457583324699880759006736907757648636725527717894104170809915031332653246756338028728854594643825621604644421265923492565283469380182563900980712678498047456444060148981024376996374840645005987850085966610887565025762588169979710855234131204828611894517136350462089333247193527255827960830062361275697727966219412369597015885203340346474642614346966366622049909142464550529362981459406805769006925395973465625189174399651591356543196999507331479378682541392342790827103896787974408349121205596386152801126686877818551790923021335375264086657450218164644646710165977781805705877637683094344020419869617671878063960231320278126049327245629893039961525461202823917611446144337150504571413406336477711692472653764051926669766168686795430177263864947516733636981632455563197466868376957580087590763810128149837016329928506973016154664556587313353782302804705424974690689414218633016285909288461699680801862531874169478995425512535449073770472534904350546956701580094559810262689550642189668147612736834766318834567134225012724520596952028201702404244813914400626505103196868851670510997832240881635755795831930783088795935486055279614002154726476217571215933684470450856033547744704285250902698002438852547806287544565586030760828109280149777688838867369875626612617025174007694554305149566865352890554387258604309412023353544139032243793764905261768646494457580544998880996836865952644638614777784785324963351564454089566484921604759856864007859551017995698564621093415787733344557849113309648478963415731712584557149341321093760889350310702248119704330522985522554318603511555913915048167455903382227549898987493536468418498765249369212456685264660178571608363028953425150152974729948145153560430204971673305925866918593714031661724637353895021828959161314930217916988764278411621042966349167707923245800200772917184423375841729192448232017409301531389002552948642039219086360192755891709224757439632317272562233139043044515958233297754567671450664100702367793676422749083301282802487628048067031765176725362402721145004810858653999897968331602976491849420023335428299066844570540225327682569026909378950648200223957932526988920088376317003827798671238094983340962908573501561852444530170994665375257743112359050325980596844503550251887799832887318132286370177377896832699184521649782567574092977281607771875520758203662241343432027637873070844393720706149360493922670484930262502912161226340371729407004447920368514160199095022093232994896479578593295211611454992859621360213643585239019967440642176264994568072601801134392981062067200403991064986218656291004043758983845365052172613573293139149521998403530210563967646544700773917776839797771375553859682652776655880463926797905177645036865921195309685831413219948817789321335122922232776552964581282707320414799277208114436477646413095595171640776282776695741514324346081622362683090250460316198836803723664633884972477162671657973173008314437936360730707703382030450439546099114595887855974072069711425690112438511833243800888353812250702350015249596572983936741686432168195942659594755703270474010171736882653434530066511879458334341760051124880115642800628071046606162971459684063304994083669110721923462705252620218337322552683883238728755328442196389527515780840517810388989465676033011496919216777926274945058468904256125347550007711018474311588775846519009351636948065704967773612798586380074271815280423728135347871925123612373241229552170720694250606560017882377046953350762129454533488238421126483516374950003395074618873930945015592539332885236786158037705398424938384149849285501536012078368002374668180512038949235048939052025934506099275950331622846072514840481202283854644678913706720549297788341241398588181203613337905756121034033497895423675610867406494464159410396476246459255581564978228077242083602723576689310621074484989847830183092363720496500299727186593044489277480130242164914345878346121268884017575154669265857890557026239677885471233369925504168794901426882366244444295979764127673553995737784549411995134849498418303541856303658813560339803502669714722159588480648157830736412682629512568258196593363089422501202537822983795155675064678967120369497160328330650288106761545713060962779503772274579029386689436617214060373053601629405729075720086375397457855237163481092315359068573683020451319089051714076234248399784593500506616161595995007430497568209406686632633283608856046960350838044665692273546806795562277092017217536022111941571688046853298955620070114581317824924876729042445867188082041180070574589783996374039490733408933386790517577758152757937285634195197551080760802397707395958088407832188214740972769572267396416044265765405389197997189754173573465368317945091509499743663180287281511511105448292869010822759400168102411881248925113507708950396355893019966693962511848153745670417031274853002383867576181270618432806084201725975845530198732537615289160547712373619627457425838472531505429182960076010526933466366680646329732255861820247247882683488036630185247722755461772595835791495738261542720799325211141076814644190983728267042344287999573691659583543291558630034494295443244319562036016631228909479528427646078601583787164230576008536496877299512945239324703816514971586272211625247945329320082608935941193421616042678227051389960679145150188542120071956853964025152363561321084692043273194710345775571017893271716998997986284881497330440485725296183774888415225515254418872645616034772082386058599237127566243264778959470282595806233818303227999841690108884608805357452543356679930241356260553393542686782029074424235291259040431577285787778089536868376203485255455399540449941274475195391063328770366300606390517801460328031002761148665004525762698897901630716593432233118180074920191592986603251834416943766311233114743960252515854256344492959671659928830209989292598280181331437952919047125006527551632457205981954167665721462674385082746583395104384365518157487236431944267849351151799821563726740891090197157373253003696686222858024952237474880859186946032642985789885529167317911432721490584845083641470963520794735161481018873858030903489550425525093528824258131702639705434896742344700597828209573286391139906451838358180539563972535634827909524193681432593983616445666630082683278842853934990641342469079782174331833367869419988580606237039813872769815813029722051429948088205518480562233900723237726819012363309302956844362404089497220174939132744646776686280198347782360699015158093808982906748439797666851829542494055169116062157211761196046714137795978401910797135806027408812087040358157090973614089240436760197528124979081156957351097592501848868215635766431659457495342298389748706920440483181732891948926003085760218576444035063253042167029316160273304032813310363737254758568068431026750690998541406905048991166669300145946509948218768691385884053859664966917170652285638384544465568528671521645447095883450285130979021616053083782642678091367436884415231991656179095323501348855049754389273295032043353512596785817202711901231193408309810485498034300812463900984786414060640321284356472703926816464258019485709492800967466145588282139143723301514493738749428332046723564457446133916445850000804387370556653306202157150659835475270712849994721075356852310252925774559016732481853892144720558707753295841230667955968973683972469269055000072925547155807414607896751541419227746632890394546886185746235978624108832876368751621067746955150301335247811775821872927038597959357064201232528506031992422596941040234879458716309602659286709916761605572751862059380117835474481547411786404070396747857633099753686452893262235872716830919773976214539076900633969533464176535663492958163444544436440459273863144633636334420343108840586290000475260359134714775383769656510679600829499390780441393079673909412757727871809199250087942722129484343926579486741451194102091558896397357789949221377531479730578810799953564998648442384895719760230805903514719059649022156956848196423242591406238763422967228421023314651320218432856180401639816657645253451742608401559771427059055868257323716305578975182591472844132438439474874553366243810498798331005494705699013038413933537313541703535342222412812759099726839817184736678466060189324615351853137389823160210716843145553701208059879043261062627100720090318882052931810894171791652964422070634504109239874306174912276473043931015549962967093724607472252949857759375107137178140344922689046693428636845732822770354099377375288491938915856397289315313139673005318940905920268660360510222045784938505888337378333565066656268359211479663695066509128632336257398645301856270025294122524775813302770686998487770958819335233854493971280057708231023210591260908483920083855350270111728090591544406439367206129163833936900154935901850029344531810959766921658261996506023887670979435810381586803806615519393244197210227712942250108852516562134242692349279233632040423561018460483223535110328343384710302293760827106724337704915726451381816867448598212699829964102045668466582574830243829527035165705783499375034180269114366868081646878668353689540358717197697489312147283684145448323511342315696478917375230515926901829723222845185082916578315332575162185094489142811683721700291782040138618417096175142197676888469515828760021858583680962693086077766120586713011833169541615390489541043965831364854637223035008282025596574893722886641662035533722940201631405339677711772176401810479401651904530990025782851860598302384372530131615044671166734562311619388768533947899553060621739665138070770420711585749412386114728665060345961118681988211944543271590129519633586707140102773606566855195915230241659700663549197723179418752159619245591643677280924397558734407711376942880312121090370753598134818809864705399428792178824835655971659986057098644845040059309446856678454397718568285077164747056016318938690969565477740906628391657219679560025155994237067006643531851048289577817314171460333601330459439788099282301294670400560762660570154174921553603039430536139051045335957872765831555159536076995084896500954847772502437638740013670323524533723800288674797934662110112085078637140028803367542909249120397169184914465933314633355855530231142390965749310229153247557913015816282253174506537204512235256989821322120502881318965127066120247136751768641118642502317304009321848609497389398020975323702167467120057730927761147049974483551141985268156439783533565342974689896411584483026389638604581480272647799288103090395190273937051533948855869760902315302463897290588418930923220466602896676994051731745340178447537084446575505044379187940728064684138867365598428950508097635800739600940914043419574243213489823021954078990301485343451408190631008081821350622974197638448868244450244593053932479848939881909725395441493110092317261564122815196419399074733943392828164545671475719889097342138731870130024450856193154252513594670743437874088055955016100567162977294390973143629916578762815818446485263382401930001714794079172309077034821405833599809781814928386219226492292910947051588390532855548444004474882887211581171791028572324040305478911625309559663502230907153810926164308764330513776396591018977339590524888814050666361325178285446465379994896378127808155972157742445870060406132322552271662022889312178509248838548671055478474860889681364625308176293296987579346852553947879050215480313784657234778818062212273175931151854217441571700147975846526249951345533135561130547611118783500908497532138227831584708470558279023143788279840303772356455845047357881385508004400510125951065054817813575420747082107144837760945866346045909380907801807153480718640683630179300964311202730241818853210323308694031102775291864442146695419074172584955444259380333574441062339426367096729479250619943966053369168093871951571598582885904968221086362015076454114173328890465114386867768892822713850505103695640231977166397566655764169701474877635670942734192057869518597295157208371255298886136774475597307621849705584353976128027028088918655638934886183808593937941980782223817013380327485265296642546900710818794423268762040270642115418014935064910777643021658938952343345799950560467596169284321681780860610646426310206219626364086011685976241190867646132028257950377489594838666712081379769963466634024405141164387005745088661502086144042061704117734520142396951075147262163328882458973146944938746764260702597423308028390324586523964006137316507404417180978922069249322520141214958820079450891638768640564217869945022572679632724058908213636293780625586509946297740362406192593740620619872507204397780582130911973369545741184671229950429074571776479709878018644946457311649460460813811455540257686207914842589339578567811168255337082100542440084417508173998105497881994827945733681126018268515154141845647069247065734604574594508809090670099865147508955570133798835514989967186566034464028234898982677135339891361762945550839436848505176238887376874117087216066630412790269797731277418364625260940490746200562270182444579052447217838943567610880293875799883856137348430165243059530594297497438066863468865267776460628613018307433723413991295992777070763645292451573406235497900726019471687182618891443154974791077073247229683367500449973062757193565421235924991303088246878647847689713512722877876213907418856740483341762163403886999351734131273144337629963229431127297468783931161546305034153387405531139062249565539260290905041642032662774896189921350056234334037884907727064952569105948630460109034204970010532539042686531336296753814673991178992828917686959050404169546139708118864812024890998034806175302926698901745269895469779206999426175720163671939571258056264923226198313362211899178553099705162091610005461667123108954361605980779229792558169468366334648392928200921735408992678213860671141772487668579043611109262885864589488501493322628127636830654054806915639909483036478115926890130666885021504848387893994649850409460030439934728777169219274910415329188557651163403086828786897895698841052962252268617395316307844263764531414320791961480698607523120679132339469446775305244449400552018896369981151102088801101452710250674662479269780056660918085395512498800171446975861843980011862409781440384031549058521975632011162763547599919832991115719723769969658932833118190218096760958404586337234275597592905064700218485870303077242450815484926458294948754647491938418026785196366289608692941261727077025892456588966035165490132020322676140533436110839905960311290930806053040493737355106434930196343461468396101167983210986901579975000495330870731669902507465975089930926930021305494736357830974587812717225619274885434208946945646056707543450733142352068033072028293942702850787057144177368363992744359504146659533081236438405166747758522023887168389306047359797786642922485497874361592362943703561033085986808927175924704770041253625130565859841770402865013777433371316623748908416646068081464329417409315676789771869104203094347092854358557889114650433754323929365798957854697969809660951568031268387266345570897485942134490014624975639800129806184619894679515008211033315284838081096401649527557031631408255234380118459903892203294822900236748313709700404981206230391293739241800355013499688290512763579943009728789828425048262844236570128695015791824475178033402147943100991319517595988088165638157648459328063733046577742932774916409954009140426485348301563164892999742877766853773938954962318232608092469762546772242776823558871819163453569010367564123037668121728317504425722775411634284924193538266511904966050728692732728073983812245174993027462712011636241790506330016837384102079039318054563774167882195696784255718294522037501875595528782179913304167211156530216551897813261292378755247709062713971786069804991907547839147814276929620383478499278498353732149855346809805253786313272760686046337153787583497389746834766835228702244791014148570646121706865335301766392713867568903715448168624114370120124425921487015203782548379017140315735486004797043115235636110247874972718886637534560363622743024911407554269881599537459632221117430108008659058576348285648728394263017143615010878276637576996302054092287696848618931464723005196011994118344888103052513684325447841319444078141672983522309930930491629206747569985275547736622827720186750596908773932486126115016088225530711741975450285164961462089154923488754955666275103400410848159507438043238487192344360505595049372846299345106558856550783289673057121218978951539858786194808513536459599588093579444568773101748761633091451636666402020762876093484139251376377100457088932518862193328073475711337076492835971366245099316596854241797373792326742723772643343256706686718149091479795350567313854032344083010313801539232897978822046571372031602726088880585170081442729467647388603164185121904432109919076132697438897297492537643437911173560278091901275728379476883730329488644019334665006662942372782592875760141243387656164706365580588969945461548949808513145965097024793949087695145772866282013370897853878668422119169541783959286458943084686275053630421253568834902950586880410406232777489135160070990178525813503131901056339307590286039929355974414257533592064691983782025170235749647881137090151722867614950530272103762144875075682813851680172416992433131210371355634670604210755282117915668626476419957117111728169053055849127190169309602509236127198134056597261440789449432931431461037635008519157632315823838575320968567517116972287143101901415901308611829172376778680731700655387011277257078512278908975179574540099480119987368494541232370249982818325111680203208864925269078980659912836071697006256461476993160672378818247206034168892885960951142158177057611841910685726447237750058027444126446481219173004773089334709847560588665383486148681852880739939961517525503711266345722434567643199515673650107597406774228168977549356763606552966683867308415875689311229538857470445566553650267219907173197529592720883238400672040131930014209766861951956363821670460297552040667129156808501724104455965282305721534321408810034722902032649533846064220969103589189028535056415071984802579905022847514648740500572553078031190714405798578558225592105033831763851512703959518957691709322775562859540964417946295170307921696681227871372712179681408561056750413290233998158860651937084096426001811124220825352641202528768329571624177793186600907576986649306002671892596195890866432210340341781456349196623906774335301866459537922128855967475729395693837754614972391921196156037066480245381702565917107868699154348681469593771439057888496173319067710805615978150179259119716389750931338164764420608214005626456406525672305063758106498327057116983877989584182427465046247740256898697699049607755898453440848934446037151416593943335570507795769129456118128802137364919986297793330940079883391980871046619665133663367412885913808724003987958627353519198924515647405792324481194190332995050546435911250351103442086450703703875268081586721850181365721478942814929552887819748260427045988355272184336831426030348029753707225774956432836749222439454907539183809597237478339030806485949703894245915519724400774800372451106004162801755287557692458944326074552354137833008850242530288650728630572755203798459404716893020457637059482550875573701379207216519301224159373082857691937478301383293346951958580875514774717897998463992764865888163228670499658319380211392436916494231067012821235865477702612424974721856343950284281237014105893232161505205426226585106611152023867814302081890379385019519588746584242425748189750492719016777667337536763031984033693078108612752330272624135261028946355304100295228091653103971742446889182449279142303953977362524481275370176970777181035619536432789260281668803754222807053971102737964620666176821589686701150835351225957156284454151633007406085190334453173888448696447465030302082910939033720780104828702004520556214642618438619809010149883543381274255483360204857304865552484868961704640331787153639579446992143793199469877275671005876574319426879458304741084923524763670206856982195319997975923277667420481677084189292207691449436153575431568779363016400758481817111293935157659184123303343760085820452903726514549851533836319928835607925749023511891407699279490721542360468213151453577848481457690294131375684338369051997631950751426280639268755916182843995174777669294183718418885846299848038799090976921629867534256040597476765961642102754940609050433477157985944058695360493398013662669853727169746522844377400017424995975380446610683305927738170108314213263415810214588081999423201834165820623510976324170025170055413231050742092189262346556690604321973371790807864823303815801041513452968595382229696606943310855210252231738580345555682537125595767166240613227416247508516693928000236417808834627311176510885960838163384631316366847997314968393557200374018266878431200025826140091739418387152209612164106469730995433646728445609080339530214731343440488921194511004484717316220486352860295806432374236956566959883327889807219205925716091718086920016633069414252718330823020628581086523151637795312131665701121350196787536327369960691391103881644886725302152452367797218970837339089445792837436856294912559877770030360014959584961424276438473203305679860462358749347102170238227084792164178553534302450342790031605240286473042770339710760890867511227328114516079405480137705347550304664185226117166586394553312237335995957074452181922175922538736456546601275432245528536424688588528044213665415470856450423847539695347236428083527883148435474405475227082060214382881941474886541159181474493461272145107872245090387864337697079959152685372434229922492689394329174322170986339734473502371371529844122459333954683832455007826526572527345068429366704805458958334976378353393785600386723948220777075551289149144476073661214348130368345488655951294353146729443084677796025361403675258541368440281620611942585437743945515041111024820296288750945665195730186451604860988811875800240448027300257205522757757577771073183653631415814759333693718266315369296751267212472081119451040681412985310600843644694001649901125396297613820280292857926108722241541629806718677373483235913891670944871276169704502603397838243829465578036090971630667514485932514990094697838872073189526290692489444077457070812046167740206133270886799333324951488697654327405723170756564851346800050601011277877845003117063443184749060495121082115705227285967355057907516905575000937278636763552482512114146843842697102099151350660105719030099198717083637134039100490146488633628102927542745027708479052283510758457661257954385301583722410007633534226645758063067858240665465581707934875067814558467237647257587012492478793083487756381614015320182639138903074458401638255394949741650354844871997261864149638891200666457677690054028671867341758368365456967905718365331145582318613509081375713771577792078094184362834180011176140837968194231357508223849447344915386589507029427637762360091756880770408787758446615405354478857962618427431000983961112456593222857823284060934455357530460722576707013563840756646700264484208840926989951038348526220042413039767211627226067582029183091533968186435437641891797756880866846055308902303927556653445077332919051259001931583627371667453736120545995961000862984047127118643403327033211385631645463943138045757536924062025058979388431934093233552113749770613251627575137018074829713057294989246479276310487523953496055615788196185882813623597308905567158075260238700130265596944673619094513432469921666555183446685769624402308611796273255518362557697154196531121528815230844458716540523262290501102624496628664616794636305194327334614305769519428493145714236611640886583716640279647631842451540068130920004792825787953259527876873894339259175683370755297377190230899669221342374014796774593815299258199968167119666021216248893962762934804549942427632715146183036315788365900121143131786924658282568218357566162959848851933831144040781467948986356678216659416172834681477268479534891620698456755000156492493515886071162092274252958207638344433603608454782673554914189998303172423427888979321938595750979455807547415652759493541944022007615973575346365781322538617908494197660640764574786671770998119877966114196716355931271485905097438175828436773583028387593350052709433517936081785355479616974594407843399627586540617962696847186253019912005303370750395473199852485249417003752390402207162913490408300804015932681023644229484194960288938041291942741967235420041613474307115942366439135134012586115500727440828857733940800880569654426882352989092711769420258567747107197930215133917111156164165024662436617445505091006957356455992793975286017539306035116293086742188420714797013096166519071471894286384897803800840495314963364001584896533308973480961200272545802884647721381297468347102444836598671644699678198999369574405640706625751250774245868364952168474706906363230679024756135848966745841164427779112819982312364851325295217978058825707750271642105438898472304494393079330781994538137307718535882148304643018285481453906828184564907703387212174233352765944240810431414725302072810925636999735796744979177871277018747994147607154739656448499384054498379302007127444514022567352710836760450911571159235370684830194922926177713709692871299372036586442341515904945967015988784364545774507028999343327961940021632999853261704692730458694487447975238319411186545215545989773073830167952628983051498716171710566283164786998948878429288767602120684012148154795114523305959136702527334698024315169586961504398769242668663242654049721949293766757892817822966480987711775512985773804590165657465842602004247867370078572016037217699539070867783931405029541690819256002997852430128916781631622698835456535449562264423415479721577537333194218270747100111143003982342887431509011203496427425997953353061850571959935217066310962044179697152760942650421466687631253772747231693837663102466445533462626101192623588200339182803074662622122469274342646442250996489666150670645513449114804713044355649821199872783605722772467195105122976802785276367517175586231647233012526601181803117754503059044050178892691269024581922817010043053630207470801481222577106464257178385078011176396949999547846635185858027455437205871195883859834301887596320785189320074991528169572584036065845171354979746056965547897535662758722532889368236253526489352691977869890638716400754599011035896675205443349561910417134578986387950707330770866324560398557161160725554692644973657954188626132085375493640242740605322384897913905091917157041318108336591268541971767485409950385075325198085967886279837784653643717676455884646255855677756303187591054600641133382064389284966555275419488407193837116180001020261474562258716575954214002615305235001593971680369312280398130523206171112955993167590897977599113847331790684679529204901994656700130395118163212060594309268534441121350432303184131173184973321660020708112069781258193336978592400950039899166872303331556968946420741423108329868492435212776533884119687551959392780371302462122658761607714524723942480355112024742946721946076643340929551353338993527804236150989707738593040099766942826142379685980983293291573528565487196962206158877557900902204084441023348256929566327816357740760302334444562145502879684437871106189913444438609101012723241405543605802271018280383910190529911005465145203978441131723176642611986454171765931039806912614525148507977831772929754642202600218890271487220147021174903196511853882692243324598903383673422327825152197551379415339895700327665511226602553081095278529701127767898070223484310972702522791870888332222114673340921674559361614510744212312625848018298956973958865922401696553401581141077431635099766895514937170291991360682180604598675655397350119536044472431611609949065248674448513528147366648132263121033659222955585298286240077601054198119835491871898185637345347322244441077955370940137318748079059261591427767617041053772972116186994430281100529267717434749454257831668438529646382913079391710980208398833548071471980918607511526567047203005337776756392522083933439246286872121946515035505053950687470368039195435813826444320916677380150775745738000191786511569968188058853105334859060028824234029856217742139100204777092048943140793319959692308237625267064707079849640667140734818006337260870180375675674192752950559180151308116135415203155439225896884743619761004553238814625042208383437390061364697332071480164295187984049456077375979646343752944879806889669043154199322691914534254370729714498457175990945142333470270928983673692430802427319954906458137709438726614100934906899822390268614429767088844065910977714570097930088861435573892120011772658451070435226437081480872351508757069775954804865038133063539387754767338957201183349286628992311769121805441459457551568584948845685826973157274211986088165759017803119264675985322259335365708508425610209114297278948458538561441366858362693751874894392321690670255142003460233819574397315560421741828824930639744886769250754732282140677780863881563315057328286444624329541446872614900990276047962145432995054214141851664207615979821793125212700231580715158778265312155772422490163560952086575835771081221255266853848525016318261053677392706229400630575734043002600002297068609966729936103702047329142771246106840598682051453739477200701457363363803015472272988478583732811577908237982123627994624626039130034797051754861735397141570059819010922250222057850351899798140932551578148389535589412391581705479426153770566381433900912310030048824204531403736793409129550336947627009665431354758783362369023224686534641083538658937611831255842890547824128519249517155297384738554336924692550547689544104793999084666400481742495547988247752455820996927710328190227416787115003915687774710121984351575019465049557547339306126743742825852078864481892398744444584078249576072581116960558410416992874197459119775816779580369493407695559568648535744155128277077228293441208500103294170446763660975964639215962656887547065589314525542955060614158488475972066619467374926827166908381604962330120394017110710385695821740604106592297564680384477612147474097935804011563760078408740549693758815970469849701968805676146375469103541994416267363228053334447921796146708849186550330002091516072236314593418806711791139073434581610013175497290199672825466752401987540139338045394836213222661998549279560431697253317615166232389730546998070541125341415189197058818935673828910077532362402016414654063118839146487508406039815016875241927139720888757540438351292570694157095744743580489996282483306210308078775115838214791816680198012147071601704326943480860005415785713878920003698307498458327983280884138123231408162801753685232846509115478380532516156851613613432380418647821841747242776913656463660069352043674427727762825249311498707834313667282039256382359028936952342570792673556987440948647304979308729117793482274207471936298309178432505041831034114513416632497854249635835233298015708529268829937460472531720219880791258201997647900738393058723010451164154576549548911981655074265460373396452066626579454659773453325472480636537050607393897033199667159908498628265434940769179392097719534671562502184074633260183604637077288028648335463930865987135178590933401169784045679058467356758617666932543157748303035004468399811249715745082981581150315911959631335771202651618535351208162685866518532014115275251279383786112636684055075294276866809476060035977463276209531004286053569672599677995778445861248522970102742556884219441859138928580167423121446567407862355537905934220805730697710989689194418604145950348214501400056297315728318470741223408298649499013069214321988670658552499184883468737876213284927524276349685134689638568166182056269348453625197353295542657354776117629068959448340633572815768416484789931465526090389127522499508282930664886756608683870112572370326037929321880101961191093611172334647213513580155126664285190302525243412417643758847181292864536237064912292623260666142626781415081814685271122220728574858726275809670874214663828855155902334871156649472094197072716590399880201885011642101094955256316738021260290085881733175390592545570555574041775579446762716674622360131469424588252211730565065283440393420640189399703093081109934342689018515488312895610224263198354897797318110796388519020680450807541467846509363671254131224444536862465331003087545136875364048392385486191361916347596991216799217407570498551487962122352966160038848565002300816420376521058144638368180242745207051784601106007793597669583823669822408860600585556670375073725082021775911648505530548209234894970542397805490851118760823567495041902563085554702268480196786634646474309236546069572808025912673745744237581296953178441629757214129192813769075758073094827259856286028160668796757446215144668927196753491353663556648909711373946641481041301669068964134045518178040469840779549417807561748484074515685289165775890823639301560381289797692053301663841502171310327437444494775099373383184927208905388543077915901652441321308326636466937296156687871658198153635074911683614823523186081342940112623827582470934824388705652348685671285198534097155653274044016951102386564740394875019454976939275191618378987231771458876440723805693249783194128104338901024898185183877708686622118770762417820685819384332899993141073438409194877025435501048055685915847562827133115882865396520904466431681526578285097742983135646147106850173561412718415242434121625187262410658803597472106714151349221244073780684933184026095348589932996080121152844146797181622958975618808139991404523434640323402178388715609865165543180535842207658600082022250416389518091888284413246827080909601062868889360358632800119287833632476676748002646464068975638872858956134543396329278981419809254153123734865307368552425431080300726734201657199787130450975391607468319421437352879139929468383959924535360170018154798253392516653581573955863238179130597312745899043758887156727158005545101189864913252145777152914258188066843197456618787961019089005929916468164202480740319495503388947938284407800704569652191465848252189685265879648144162009303771683775566618206637873893002120386041596253213935782048516403646997116087661137115967011953078262915987817503388111682191923061772720511652378228349862643545777295707897322132427225351547063925892753421319472598722722728900619430563289486805724961471758853807457054738979320409846841791471899934353700123347570546663145184611197804256049981800028630799246985198208304631846767489370612338126960036394997448052361444776913768265931080530360219073521082137400656512950143948987114151359649474728985800963244971140686400102106276955438663413352068499341979756522333003283922553354631989700881848251467103079083930550124834314790644464335150528624769409837747953602997355565050038424042342101775864548940502416771513216573865113037183710460087796450264355220022841026216261041879486784741329589487046993318419880969136362794299323383153937669340591620188455137236873881876870773428919150260482551423184791043021063009707662756770113167370748881479106156856380674384532533639720466962360784141691823942700611218847216562727210017681214872543651341800994011023114294178315419874909448676477606411200380009411639656088597948263392531304807795042712999674456566572258985986540845003857818654651189765201227124917677709245127859541609582374979363946114140268775160236214779110731086986116012921261436931966552428882631126412718082826874015478096180400951688455809204839205780331047018599388163767371949617628143105006916457945825059508043559776857576058327637335565059420933752000016577687839560574582744610447864349013011549092982949384902516948486520153195279204722749043658369296550273603572266807267548337930291653551758522688805069055949653083552557570548946323315475454821121578079758647370298072787166618658952441779289993109769913754830542178120615374762464456026793046070901478870740339207148430111978407409984096350664906403953011447362031059482834648132392362651630066229991039144446179396791963107375506845683282078820112182072130807026194902456960788889736156388981994967585993908913710791316256368639391042927619159298837166886002100670542105086696538827500468583793401465524385403274861275803333467160893840970802223444749516071922259973987441587388292289480535386361404716086220264710397120347948882695536488723711166002086871466154215871594414245870426673219987486209347312310545395498692167564618538432488650789832197240916481344036489725678411245061423093358054553266569667735576640163346328612371499489548931544574250646227679212505674602762259509225529050369406403688521907420764737317051068277687851306379465432606287845388329772169660258545204309118160503809534516039208016737199673242321451465202118326364339522943953616658413604371067881877703203184607927027778201696961330710468789978975826923267013391969305527437866565301109156420768954693141268150823752982366596198262431931298281781990404857640673369532601886521218437405440296386441154248484053217434001655902566052285140092439391075046418934962378459499755097444799278612159004696177654102428568219061841323000559622301679524542186692995326978715469359935964456419204415361503131561339134887783166500266072648929900533787788576936507075310811117496707225702204325311320932970457026621460626165417805293032962527446483420686957218476143777545535294230270622955500923617957991013593103001702553362639096534757079179382084338241433267520915467431905984832777046055569950394829953222249398221940815163547697755932090427511843885869421283777713670077906251491375800881383246609191184341495779618588932773285607326590219839709560628026448655092221078769233608738870527894894322299500710787876601565902972365315861492214040180644552969670179400367438175085587698500619938897263465411122442409839987310814041868611165025312074293664928565790954466685200457145832070578327450060480064524548372882644904059055856028204421218308308981260375181403696125377480244387786979751147182628863810438239086308757427956537729323642775937310861012934679208701021105577326530326339601240034348727452760523479508199679256177051502402403235002043338101578219849599954224272774374529966553400486822495736512553465278336847160694990394659839161513171876075037021748418764117788596394766692327598174853685792560689466745011345174309941065984318363295548385847001710244116298917601728996247242817438205195610802081312833939954478895559786343853945439921098957001311355304580467180739632086999843447648377680577940090936871406080564010101850930718746518379426411075404552526836362740845227489438756018229135557529979543741333298375214250922720064182651704567031204362694689057017899777955166217966570116114406951496483910420606410701774950556199477404824312954668751945591093470138392472240475504028976226962922676366433206076406382896479475851357649252745610512698125309531103376517016359223312799324486995094636781491592492820107494678203032618590660113849053096879803924577573348659921194952123162781748034843668139172711754145319200353307146326758646839559292989524111789892086387225912956312917508066787922551626354367954113576579041990941781568505289158947775857866096732900079900919694951631324236416770893705881937569208927231998514138107477333738904153188640171952533118070123636209820384862442473407816942199702120210075069609723103274121507337773529594697180629939045336844761774780105820845572211877204982994463172422955200876638928048683527800593217215716100617697056275913155257279728508392066927106634269251788317928927967915623477869661185628766771256467267072525891172847617032022716611265309412948426752313356334789254222029537854348893896318303417214918680749355788764760555820998683888199417231958119633583190023554254985467080740148816992761724633601063554411645503161936500450042249643485665672868234378434553847295876073165523088216436170284567791354185749170049384406548583682917207415746266789202813190992643726644597099336296413271662020696808504216326624309791714918083422713213371411101542049885200268301203652318151438824622337088775874308542738755115075873351149889239213811850195094978603435171152047395798476620771656592733195162029745199994146587002310883189958359376184979384391413488757075322327953770402104776766583807438536710284882382000282691286308976977102783247094205490325345317285034896493391196132940567585246233812618501105373752011562805212292687547667224118972224199528700520430070280233519343038416989087149358746421292172386673904799653066874242476010326739683506530454281339260345665584546317166776428680187201945076953051076913717789827931716393083351811276480666319278227094086407108156127402187844852744018973867064123180688882172217725899967446473481615502356126743843347618390582947718098891752936754073679566210946622228932197323571579099971032199456963805698854684174985764500583914064861001293744540509072310908617951650239678523460889335008870163343815297454879137506656469917678556774693793376144982161973211791177641983153162405506007769493194995535103833086623845904297383050597807489580153467749564606939791786373396760665908417742927758826873282465846195685876210500988509313561853801427276537466099819537444381015849118698168324645900915823891342618169155281196051003518940889465393864936242492212575919503227241634336011369694055328922217626409538960500200648721536369074395367021383288922530994077513486107670782762575435068296032204869077851213533299148304437975867184177589538634771302280737185975998576829557672947817472101552758807285772437586843687733655282115740250435598874715361865488220114376927380321973753121133035365637351424781243705799856341709072246944439578855347941841234752930015597133946451139629164816597092488171157827388123837149437429278808215802279893622975216109801055652542813629727192555789804311310009754164206048260952258850100022583516468802621390160940320819091416675174604079419902193537025371512877336005353279513078489000932673574877809188693981267797700991659435155673943280662493895915315463644095517805201891943473101608370053891078776695961732207464328751656523469260383214726418371988210301679558363952045538933272792712244206546663308283154992938273220935000505013631768288978160583385438711395178754562501224619247083517877536285153884964790404749488774594350565706045274880102185184791837495481158278313997645682147768057920259684888532323539542138550491927109709145772497133754584430277720838413917693917943383424235648901259309397505792929826929575528594935291007842386848949935834901694822872952228217190618868253398643616418974488484651982537249778020924700738696839598140762248127087722205761364405308603492242720559795055045688842080769348107468219821756560000573254298535075538038724755705427517531661706434449844463576480969056007994679267488657695327905774280617755386627628163370025846700358640214364835391517534175593282871604622884556710783855797557692629391159066194738302497047865084361823565207998436605526408635713765040851439492629951239399026457432760030554051592418480704136182576237947050432317336306332430195356931969724958211430117047162898080292226754762818183514611521158947219968119379378027976346839666098988355956173101051852928655602403868566171926477012055732880397691258829839880403664953843820694679563544722871461791364113469881306262718222023365477751639783445715072359393284738143651118009792171442690621472666592933896176058920317885375234170770754625513069459985154406129528814035403939287609366775719699808009518694609448069413180378715711393636233550132491982551318606063162860096337820882737509126235770221226743394037719066138381935271799743290946426070186591485400906263020412756865117923627361639381446671246425122704262020131584274867653074449961637683311947617341541291866108236125063639126151721388230445511160168771287160540004963136358065347993148287956280357964294695779202459791290532011164563647422582117676284699649589182547956846638983142282643548078425600381893439102434769996392475802682215080777063168148687042700128061981084794744311284538671180335511803621074375027642324907362493608515284414012786537093598669641378043841504465616846415024222288408051175411012268699685237648679550419611956432294246241118221832900936281788320862355304925351725893991137933792896560457362958828228097663251279495610929593607058014049083142322811680303172364712689948134529147174087081934578698873615247196525894109767811504608717444179521345410192918594129198520000785194917270413343228275292469186204239510522368385621049209477063960998593010766024490314876811553737445611410314719524926383459481588771223270328846663958346209669191856393673099528440772899774865553766283470016497582584440585118198984143304356945495202136801697611458313581182194751844174970522871595169655939609511489123127462691462364032716217164395252795280932989494977203200465572214782729276249053876468469482743052493249793828947559891185729917852510989017904417295376491755332271648581387320786588583758468356024593148267455440467438273279919409224741100519557157480565238593509283653840465920419140763301740922202470683391256688960657408915580344388981368841082127488190206938926323856595944540772232715401016958930516125600759486936466114571194104309691726002955081060423228417751955765739099458060407884210839187592453553250625123350437524057352340775477457083791583586478641771341312959783896854650838057708948480881821443280585659137093455093395545988050609122989571987122712073641601978115750096790442418747635134686850038484053299152647133289020323629838957887915014898027537788184792951352040078333548194383251531937255865406108633424163883064812630786730342384898647149523071021779462716372997388705872544940401393374951509300308643611031254611392022503904020097251459611503919556270337579404616795348198082020223326283189681001706682615005139518753434897108223424557897262585154444039560280667023137625224148540579943938400746605778784735644600225541912373375874021350586731034690001722320113046925405835744366641398967090770377906522900668006487541751789885312454974632122428547202874973286416461425610760348868414709197184786466430117159009269625709865270864439372988946753481605192189643419852057988467135719904153043017217316131282557962838841059141904391449581215465237637858139045595367997911683953117536079386176531664250237597018692170983056219658114928248167777554970218080753642931334774230390853217355871948846040344691340701574016207482908755533566888239216472931933654658494135087774130851991523888855077653845534162520813193992652380892583922408672590711027252738710931701312218954024209692124820983261952975478611710922588315312263903830751472107978012587960816283928969945801104570318198327019930070084038143373125471863886327346368032270587413457282209983590420368548025837827776488274067735164273720130421217409026175398419066734248704099333976692872369549796832348003961930384757420388634287278163677386920296132953729081388470980696088413857395613052083551082810365083715041875758528331102797537486672680577022590622915297647824869687456533720207471826492650241288703942708263689739029303979639927606251371927581350010692543929281069680188815239838919954788264352106403735559439827776837389806865210328517436116047135184527688713785808588426274800349788590867692351049600758813331911970625643722395117494571427478287334688169826254871324001906423916341880820251383650048330986148846676610960829326495347097208819757592029691054806204036888564599033976836298827730112551233436449698483684977124405977252146585046927479871063745341638908368976374441674665771342027919438521517383660395193884131312776089278487861595931556753170522486409851234635600894517115064820369556731350413816769097756579608018847527886292942054128839635709952602321863510805891514995667604358619411222280187787708326954971312604085786002985589457635346044285774609621024281654466235367103295263471315231677000871664177260414242203832239734836768695859892906984976805488218768067820884152230736806701451736818216406084126922632099424072023821433692133220962287876465292071050289893225932505205254814279438910060854940938921471663776563638288522387842895076990774599926665502235371627497231544257018907360147244954938262407278491081860502788184248775236464000396503382614985527745528417594642414384656246469226889971452449031224573936205289657989609202951343588086319517628866331901074875757758003086249466690512754550852342189137776561955924466005371029635049356944006611146397235568739285818766047591005109766268023502134939793684363756797470406894419372712012729038783070985299025562820339738567298127495883734594006986716458772010957940586409932036641055485218933391075118182689542455931298179424518133471415952611104109392556141314406436236146520674891361469344753320939245280684130786251735964726789418372284293102407073726455071736456850014690493095342606826407202359630831787382798165442213549697844837787257300382130528992656958127252106309066331374350959428941272018010843720746401288547657341987219660129525299944405455510427288040603618711922168608328653825016294616473212644573130836661631042860307955587256523233116516670833203943005894526378763332964150295962122932008499136011614434290735384083672520283422316926704014539009389915196555056333534278145327530738682567330261073408398765811088830718601568371616389220612542219003840961564069488188663299095585276365187599153951720970386720390810271237537262786473642557985010603401731248794856662073217345292622425036320121309040722785260062390650867406861397068791433617964266160991543701910894589354513953284597337348588882953241686113532594504849382333106417785625758488404055353587399027128253661867922998747930919508451553278358169631069357704324522320733032482522437409539145489602517415416172025437242857742485742294350843261948115042296014193075449703707826607618218589032558785289017601218501597112590201653150691742471448436159331559975314386341127098521540793947159647157668093406431323431291266700825007941073114446617251384020304216295127488870172047584997908103949248357232250205602821114903087531451144227952239322440119051242166413585892699925905236960244462985041469617582097676998178678079678727995747884610251825781550296099858580427722729951651569865702013317702288774763182899188240743508820496584120654341595158627797123055696573681376263767211336741562468057110531481074120022519833043621344336231515644700006635492310430770890458741737356654746396151206862324107335425819645643519250101696727874981450570858920110622135462456197791204674731776909619440565582394787144912799863952347988015117996854421706108998173733737323258755167726395442420222239970918719903526538828336671047248539180977691030115781959653450400854758718216037989301122733866938610454230700921301372886457782134473937805813267211971993875869676767913867467337804266787769658475891129436176405279018782917984858204971977330703006719206454771841113346759688219072556110991746817937222931715203205874224806918863826999007876722699372424356259131621810042450518474260842635983508877342266307720795217908544282641832437044889348019663973059541661531710780092845306058808859205322491553053762961669700623377413507155330224143286201375659200226626521532805496327956049303759196784104634799497840077147599669926829869498672844621727702939857100005341689275850565652915671509785568877310260762265239633171778334364750349510741324189743603694507155466639566092080900595370172194428087521572805043216680198140574623259155480182036475672140802182444709887846337307689636449021418682769879576266608549329088394195466462629031180517857674097683323817331138631165872699416789734557456106675652362087875299975108932502144778792132333363082636009934977658959565445398332998558472786326236836352321235533240614133831463973739005235555537680114269688619508790592211739634998236540507077199742244107642441797357032258678411584736750603885208307161361543959100937832750030782716360512650871462451255953414232050547548460088178715168005013352718013484996643707416853064638793688241784262520097153811939046862669894772908749218012132148869095125862879602837756139301449349987507727356720645021351296007897615185943677731294715998420067401529624786470570954372864129528182714146798573482301204754529450976590408496613477464496507901811263267216704525390417917580332442078043640532877074743546512006657945958625791287852478484606040667562117925944179002842871797446035864846255051847654477028142046022717976497276572655577798880471267926681734741035035102484863801398387625276707734590418970107213653792027252363164416488186179901286169213246474279352713384265217820923663487527039827653791086904848572078326776357645532461910344041924394220986334165307315973681817355501469747101301039521858664643636003983025677408992332781735595017283241869102891896458865862837023385647380488094970705652525152638203571425038955981373154050381854798640705833857945311012878427246773453653907258313447681586632588771561303942792548421932012591621088156076330103042472176654268186039486144380963270685170838341850798704472183524853660790626694666794535980356459304408442868203229570429915184219846317096363612813877298736016733422394788460667716690400410840333837624467019553700280268165291685777956082977066452502326071189452362127603934736039186365329626092269481092397469764522458672886870342081467821226049121767782982317857283078348014321686449732335091527633408270980051379997236695766233521102910319452058992136625737132976133817287154860646042850154017607385004699161821735566260469637154900234971517085279964549724349327192895180865873750576326992797228153033589292224354464142415142184304457027583885733243229961799272813558616339574507108318019449309210083827161574306676221995544699154386678826864272662135164400307750135107335361840721105314126309877164689027545752822361538340498113989577077745153249131930484730717780764397225244233312554627074897640483162877930146101427502442049409996392651630640530288612618773722241981408080262094120215298712529909145222814370319201265966494580776318214901214593060723656946548880396645725247312989597578619997883656715026118973025063549704026722819798533082145558736728875506994615044787094887416061458706553767410936794006717823976997901154584724561634510038438032408306958549589345068527369393787472937175124473872658388895882209862586372994533423989806756036874261863956177338135606864581371811431236246162693486237085425109344123569991729484198166632689870143301208993977513068761250090922778355084837908441964916996478438804700732149630157149533851009035586803689233784739399808732596317370317993788863453558437096873466404301081089057424653155266084197743532628738136788778567444304096943021852294912973386209865993478344504048472413464717471056635101810033586398913051266260109977562500317371883606898943206103135105435713897568208698318278467574472096038698308629752564618955453350097523055253103841733475909028203366908904947261790962062662280291874289004591254193691398679049297480097988030783493358856396880175533957464915016639675722045076959117191350406140861839171363318791241331396169643296086612976546249179422401442346576395993609474858182607053981123828178748806101612734745315692329093051792722318679306945666589154919089763264320301364308558949839302221150123563200236908013822653360746339418328648154381311374991119805943260141232765307649624606471663140936654455196332682821830995335134869779310159067659877093001173368222513605289341831986613690765437743568997464336040758490187717351948012630927871994265822982203642992733131626862025898863890284305429730333991466393789267704747934089138296579721967162581634981765422087967033891112251715654321731507665971679845211707901890239282295501474187349783542626057962178643861956308466469961758229766590805572869317417922665925572486138577919716891233670941975571603253008091329643356569751580977139991979544620443022053483726341846990281591160875611431717532211457012242174846197161846499821110880300668715972940095999517987902153729671910907317704106511357305209793700701286428284619863685752466749399252063999269985990611999195881448429336116504261983639752717756249810502813806024923468674903619448657123019702521620560944185630115918054308485508548125270061525730503809530448757508480101044336888255652600934203327641525673406284823013190769302486165696459205696532370595335012179780541921351195062062478023691982983760154184677682014577954022815730609303146564625348057369432405712676368367083110258617334415918240121848022939424119673729167410259054063819774637628027558454909712872273640284818308924478112388748613075792658805716856532474069957525777538290812228743362075832022512978515872036833692220247936498619549424619476454870554185190352407163438159951932160200302123695407997344722889032113246895224689992330569394930143707306443525391321402555302177859582755791167038617218213192834961467700579064889895457626723295177239761750115892936171383126153118995280858785347506824764406510613496884166294231376557848665002169215042183645460977536052493025432401912412900388709784313631474457569298488704054177869404684261545642227738418078122293687870110689109843589631040937033811358724211823424873246999836887270678018402732472687033427789963842068931234122716679197784863388613617752872238488830263940840924645971424357852507956181406297219720228679854166209156759982046307394115645430778950780504268871787065035230475023713460138943558892249146542014688671723337802951213764480993743175093075824948664844184016525869685153618306557808240180991347866110823497249981532007194913646468506745298083324292965248172669348087425486311279893372584660692006391752590891986550584467951970097025578879054767458952814375438148527503987519612660883049454541524189910520825746452955175701915931247997223792891808374996440990808203255716216071052630697347112755656440740308971303888273407915108834982492579373748490495276407414974917525691181556800732357177798074853398382415010423955677509040917336321796546639876348197556911543143387530662170505241073344508579088676382777727426408249441320119094902966760146862608634982850158928613039699073894262789285033389975691531764094559384539884225887277966777621121840762447205698485463724823432636547056719714923226923307415085788903593148196078848977006880220325059173407647390198475017544009130204379275549768311513128069212539180868423158615148163161575589241436794288298561070432964127296472596834680774041527256227788481867918263829715450447675711342836767652657765478278974134212803306954955505121610869725859625225227246376923804743464449071675541607730796296275132690380883672198984101042880540390877215048922595824147232496410974092637882182372740256712315125806280921437177623250417624610090170911835206481168052511453518134047743914187038401608601230218791783379067061859360975867422689049551999498266368775264439046489217703488373779095941518789314444506616559675485006062483406716901639134703011353476736293188851213854627072342034682134471251687191240203514882263272142232884377620722020595289758074003052888669634350317260978496199142067449808053817486002628494715699930369024111569758601251743544752481718835182992443750652987476037332232569988994467524719635841087515676288250895463819914051530148205976140977694263892790169967739354949651420018110464449942930792562524571246342353880507312167947294528691904122001877288133693510370264141763183844035054682282191592354349455582819048184374504417499338422344125466018933420707684743585618427622434760201142848828234103909427529112806933562579191304839050676878207255647486677833193865931162643028871711985219021056044744608532114368625599746037515202263016532108470979775160453852649028143892523348406277173595852072967091987011194805398929726019108354597688142130167794062747569260042916345638435372846143502276561255928622129243210155986940330040830905852804350839743867955379680876423240085192404288336765919911115915373478979873733239404354562661819431995498975807727056533264715402372587437650632560894791121168416584012308789568641334730253912097710371499285792808972329549422634819986514766158711832988709838259248711924511999320561473370330403559485546099527963102545581105880649318513260435008731769295277193726782640470628690758736730203190575303134496799617070504150266880809524261155476978815581169264879364523923548962424791009719617427874239006691706257897056877609288677451128767167251582238945710452814477582007373854441657011375646201224485130970029872246064489014532587340058367541321033838577502682767598912518442061383819411725537573127091302708852275018430926165345595985070677038494634347997635706697296166410463961373054286481882719434360732360591081560877978626240937165276972499255470657664328669207918444870002398862928447755319746707620319208847336209888803829272444833062432575843890103583506961070438448484592675317823494964028680849434664620437050900744728733758139549112173313720095781566668920007576447498233642879959394875657961943929640833023791425840994416055862874660539644684547875621551306093287844206449247939326190785355644513962357166558726387823254682194675916033437311043066923073761671421028600974177381294963367358647512260789664815484831199877843431272687040735923153600300411797284601342692510875279457111599169844942146796440123991917242973437526206285875298978093805556521718955288806891843592179789348126305869544325555823131141181337601718160667710252892472508895904135288124540919495412110873568197460012704182971062406948453690025696216001764564707156914228652212095997892050483705467392822513989989955808428326503279691963494155933153004911514484085005203954716453527136574709225393830745030689039651884281705693643589901770378966084782158233421512263724926965816536171054254864342347904038644586543099297441617681204837996937368195952672470502968986403510981475451086454410469364812607634127454985160608182375872118505747034605747988671505283745051710141216653279940929012316627280337183679907784674111389725779531526255972714378302335352298856270677880977868321990058988026006616971380443464591832752729158154438402983067125649521631525577686176226091064606339887446129861825477666799058849931357570119588680938962497523475433995881888582490073296597509194226190133759403168246169331284681209530449493657734539066919342554461262074165927627193065153701035587786786150505478164929327520323771101492042942172256435893187878306255011148875779991919858755445957145492411930131961246855179378823408275136200796032836560243661242147682011397086058349875194304001904517279171081999054254185449050844602817822226449505099786122085200072877596824603807060263408775664584830815122864245063040383472195962379357857729863128791251113160618561263341340718231280825660070912764994113796951557616923165501477065169318061874074903939487734855277607058712982374628841605804387118196363739291119884932717549676006287990161304371077520714590048434708211734113945017268574365563611328163732460328804400397317187151578138327388663589496743759703890722040422473348112596664710270839729112981619060291681494643312753869943850355595000742428258624285868406014163886029609854903486968116200952437954815857039924191718102770819419098083968035131726055249023345837343874115431461520024272768140434930786539064887761193912183909368500118785885893219080886100222752012461049353770979266701579160166428610319251489412489621224979047594396182265179926648653706345402267889628456243305264109632282589782610215699908575668322695311458740273475962680901820773652717388026379682205937445868380607408977762260606638096433961188044472015506929073619690047316284257797629705146447535747595795398225304518261243763915360118857366090713465502538952401868066684039779332234841779533607442108696187045239129064583191440860014895351660281495080987410701434734772193979760408425957179846195576285385659481218216722231215808207820109248464266590268441628374866718267354940933159352867393757625459339810947700083919320543681707221571282854918141231375521353762329433266591108862115676696836497016366683964067690997822629680702390859336970544263580881028751541550319032242729629674757627044613313827330255464306636539901318887459550481670576776214528355502685007575236965329322287991293112663863134315751907852615540289546700235412447103957247580653548238070314656880844954558914357623695447533507376701837793460199456952567267783804095361264544550225258494517240338724178670742589282674572889215755397111884378935114797670498690216676844346487096030689906570124415570998685518082419506550907782501725625236226711871514867851992398037348552558467580954501284546869557789315327123616007532845310779473840165874361449207829212763979263489591393880621404212393216253674177477980018404074909464497096157900686480825485799365028205903020386466406463121686332856330519319453528672422310587584491773638122315154070883763983384692512292209327087714127208146782787783250884783605527252878277852556938943709985046747621441138034938510989525975912442566556549853751147351938900604820059713086313019893269029617511160863541079846059019032387527050129103462739206721883597637142750898954952882524360614160693065762804228607733739142547136486125223718142094266583577540487025704208824057365477393654166936562589731792271232958946304535100917636508843722365947510732759478034558481277893824329381887289429758087937488411934254746660769087291014544520189905618431594951650427873975726693185002326953476591053747605405638446592502763792207349691896260574355960397282905522664851676808663177346727244830963571404370775710465232448137941489786566400672047915286535813823494180573524677687544291872287213342713180550965008300322261168595170411563703198162770599885501067853599254474635762516234246250638708957596702424174122927417394400521728262696735244182249604660206657648674693922373611513972831326759757977209571142796056415244581112307412790611670026492422945234074843368706595233763954322398883171995278552562280419471958238791696743613869696677580700020355127956505542112696408000295510013438927619362783956974188861606127720961108835343829796631008848699374959181832573326461836279792110267196466076055519411875829946208609017179406923638725242839123052950364430425421362308120039032939622884116389430457677446076686378819827988856702490291319327094086866344005787448461702102284989993117167313984097183922439752780773769254366139408283131288793024964330703039437346816102205335909573421741583844306381001562514806267479440572403387224544867559886202002875939807196997056330307189711173061259496513014717199725109423937535745051019953429225591160269499005255653339579411084123901940684979560175930412155275915924466531747079135493845090191656463378241918864490887192595321528979554394541300451970489050788784900172380728469883110097152137158767390241155586639256111865426484362671236825978196761495224317139692770746993541271393780363364141983955420956666421953339431317762717201465798898703876164218734896585356709702707533859565180642993519302781529997512634247776703970528825965379983240282594002109226817474721375732919065854809180833856506643299713931561178933530845773342240877689356325039173043170639369974722151742007908809516309395938157413123531826368279183003505472210503479742734648543621877644780549874925318603575878067694399989354386976338032599086979830718882427448319607748067046366035105821628492056010095668748764701576337716761732300935121104024899283109661103583789185704775896532202871778348112306554833461921590958119881352913693534826004786676889302913716293755656657243772520666120631586352286858718377584599345622413586550816715508551782479086434162125352497282350378316210450421950666039806357156598215777867953888405560520617630887114386026798361416005297480546478432014103102406144201907805670983947535112169089293144350812956964148183874802350989726640888833120022189601934978006496841433282635082218772441030814003133226632956291139062144117703191064525113820838201407173602711191142980162906055947387583470219997439559964819865001277727147116079086781323559813833529874144955411494380529187467800487275299410960214438150136986261639909146206141861642094875475692122866975684138632358695704534546305345980232043388862243501095359340643545611167049137318847690331383174508127602095735197235679902196082091272998011297277589091913772842942252538039813952283336253299956701016012655215557115676049881588544680769044090905140506093517997027147873258138819261738428179591724231961376062093312864542090028276658360069450865482819551561600406867290369403520047731185039355390513888100453107667537029552654004247335249862075050956074594730151477049976609034858424032624178423661748183883559799678077601611502385630372555929108472220363822688287608193615885688357026308535029575225488832434773041612251032218141643827555573277969119416283311882289148436864611069312342870185104256720283473056582385001067651610743515525367600587511187074509466173801296124596967459951555543086363176589829168938808981493419012397360862776712857506287225062807023220379206715991494817421221385756044811394283625732963838787106255569521872502141930276313482499963176884036963477403579284960953233368532098568811047803937558125355490351595342672587044357605534545378528190458220038295148914508347675557701869978000442603929520277659567086407417304794106411037457467066034520505486583858625622540556921530735565492026939357042823596749028863721133036765446553756342080895020540255389914624891203006166098308990577987640986256972422783658160872626531540026534080188691384240710659768534895701124316739945620984403106781251690097786853510247748254297968710676858656135821085914808145147835492524795427352433768465867611534565093909291948403938347485235406571550791720271851880601887935197399720651053513405088579796346849534077995276879123148740652459481219326658498769196505371775190593821164758195780785619954618031790680158106663274236455887184023907579705825561877154494534105286629107241195603739170482894255961020940843835947142121437929731559727584476538144863420189182149577553679758800443000936433142084988176582619778977004666792166046134244911639886157899739033215621313725481671665117912390805586871880929067806697315454228098474992921646924273641167848435211101090133802244893232475530057936792202802501541691909893599525285030549508312968733854960163477848721404338363019609156682712556170063962496886058034792639377944131668056081689536877944011933071820013036453266499554436718032552506674268230323592324520295414466019245171073722211900917928365139237986094313209099033926509309842162838021981680318483335321102057329559620505429106744162473506342629287263237521687884685088603927443352297191948497740138195012217184501136099570365694123625375536098624939825540744960470298049935863634413774654504736830021361870981195594450289918272605468046353929099924185919674023166084277944895318340207307380273236793839407253410659656221415067238891497164070455634882457730135102953508493604831004597241384785324016496968556041653111063980789525454608189113283165513055873587963765407253546132169947274846434935929361988638514334251282416071758835165813189356841924867338925785579939089791717809758182728282369359392730029866345277227708022613703765691409805285461269771487356166704792173773585483785663589168157179936668187182500259961428878125036253571673296395648968236901102382678239094557472947074947067182372569689384210075149450073930580450417428155563969139305504325195059694244183931968714802109265564943900302505918015941593229897975957477698736712292452630176710395069100687744221809613990029981138289022510168689588621050019827731901177906307259212316145307491165433728063506618816591193140974464883134352402335694966496780509272243405277926609552953911833923526141014651534686482922232539189543757104773422790716983144808402715056209937747912309465156934695695512922611510216704002075194464015317707645948131344272688075959190844998853292807434800875396796720661566648748607662567370323713553592522601761505171585345534432052893045772205019485028581902201796667758686650118380216678607912400873222745093586935368123371561658666270220393240532883804897558395217079162258865686124147950320501654334571468884602025157284341696051190650166732435140735869929072556791563278767897628391553374858583805998213712342013149903274368488518414165981810108595720815525902139422252752536071496040681207913882651002932702644262071226549960044809735433308025837227976091070584041274120698228480725071843088423071323834569844055878007164787472971722056273751102192771994817454292140722468231671621885977743825670077412934056098560152180774566542555222741194267124368227763958618378789116091320437573873377805316868252591900106074094155183925318616133500638202386616821607560857576599467734815690710780287480872758621825264412607764467584293166536531532609726935099334259206912193076088539096786318470779083016496889141436915690596207703567489851002118236839817747691336655432534426672506594707966846752320426756103147439604085499548796170007089082161511317285973856878995311803947113253916705869612881769308506081037064471780643804483835861737685816354795564227265659994160121198056517563426669246887558196831524282562414097272666753527515825139082695500085278177540374038551939725671636853285313889563973305255676570711572592946147461924928675866754919949373609892754303609811274116607510094227837511514206417204859776838079957834820419079054485461280883542061418024986188808122407262715703040390568828091969168681733385643010971768984810465782567837233453536649625909752946022301462151803611131362187025572323169445757821748060733044558990429808802809333146720800272456780291482346234305789401116966894282162423705095058937033040613689879230557269659128305498674978800579901085577409861438553335880964280423358941116459974874753852229940193338125807247874256414647051314873300561235669712390865802204015161156742188724583103106648178216384185608647669121565473374476301944585189224844547064071697715515800620302287412027253301578222808636559118376100127638453792400531366558583402874106831908269263357003624783475164033213513686296713164460694650514775295950389201607061083116558852471641642374482176934457472276321485308719886507155159225678182141339652119294031539671216324261427572191766057028237200971321486280611355111974957039293952878601023925920733220938137597597548397672351409474080992977574189029235849565875027577900665333187311132256942735595310610985701975654036320283780755767653335380182250444438433884407662767125106381812479550698546226800715960684992062417556868472120076213525216901029470566728282011391446105899129451659671565278478893181277406924474716077705036510757365111951069163549563964177397375494124729355081266782604140073514482073940792867173776848217885000080831185105572015592820908969801171842312862904791414243396650726752863395427130770173337188652762058390341365717243682434117437665801154117228540135234256109031233807915701889981191597027682027892670421546036073720823738342121725655863085310881531715340713522017974293277948354106686782428434358644935150605990597837004627009993554137590188528108643745420990251632130152336359309668019944640792243320394161614790348511370155522377779116285626332919576067570214238321451624953343383682943640680521227870611496091315643890862796641118947392032575547386494358916200803344811545507697944262575661651601246924139196270263344327560287467564976858308794710712093984373848557386765572969753203689769447281145371784016194319969627557349212574652979713195152311434373177093226438998958303109722957772081186301835512041503134581714686150299256587744747337249017116161484416328714066624192728324030707881932803321890496881602884085886020594748453126907428546819243814306301481046973579755359835771009901333356059621242623712654610047146952164918578014668858414460118885795721695343628633212398078538315458106257513649890784272641882306549741246836631653001169334989163377268305019878310525922944203342015029628779635946919508600346901411188114027896620510364347431914953074676213721487554891523988087450586274038048178553875766019780418411563000992634910175044137412460650617265164838639239995441968000182487387812488767348924235561393693177923472887957323206035886193391806420149714081444315904345544011554069558994931194239357512605771161091176446194322388961645038343156505108836321704762497146691695879962349136851490400694488133139123756581495617735806008472534613493534388225930636727137485589213347265561200316935034202520381666932769115764303715090001254889560756987127232129067311373679704380827579822601470284296064569559284875268976482384368243722043761722760208935423089786896046447515604553831621448886489078217170944451232833664652371245822549402004623795566745423935521881361079900250834746010298444251507122114403188894202040164214491015440752432109445346033699225041022321623548873373888382376871783776610114319626885279729579759784281989168289514455726157638287012953867991773946262331876543260286011160874545361172427545624784403541926883443232240357882632487684497859024628360702743757371399818448908786130536241734024425499939846010050261549095578808655856505704614387557895268182248935317585827417759708642681866906807749675911771353862322349259180818879625059407098598532829155814231505598833599589741189433516724962574079987619248627904443991565786293928734311277719411042336794892633626059443226187801846358448114236970312085988791977761151732343909341605144638588578687003290142581009504159997222718030718697960555616947485481819671404791863799745798221284044857275665024322522774829325788336046540705301155588490611539111889748596439633557110139320892253368516220344599744978891185630868782668574779080272723105021274622722050060871676731894198101070151258968408442969719817820863280861013516651099444276937617808124981624962565262890096055810833585090216709730751615684591417678760316725390407333772866634421135734465574056152173443093978988590372831440073505358309565067424181782857552710942306811631816866913232560208014921313992781584022967976922161552487160612265630924439006796165759537208370434464690323785577510173333633986884378279641478100240674849491574877521788851843555413066572943731073466302842522257402982049973088591752529288136697453235381762924619399220656784382675986028017562426383589015451707265140156060416309713805097362889463952663035428057948970538638634588683104893800986627484619739493027180296362265501535188247877626713634488628533353235281203081615442787856649014706275369110432678052911508099759947607301952921605167847441433690647028064655847731992409983423628423905780748888408503035330129620903624247863890035501278726629885048243438828252548258595831617948203236817377670960173746435458312998108986162476300776742924288461861821492307313509825395929883604040667395747835451724896478601728142749501145702019853790511267303731136585916478584338388090220251393974119264701391221969832689637489232651570791892238220087742681848705845938943696521151565871009943344990071075062737289784317985391640923555801878804997379717829452572203967655726490937345149623962527284572202657216579534523561317153430614958910416319933493681067830633195880272712640303699695541672946472107466998767818318658521880945648072500030597599225478850476843282332434483041047106480315808129962929650161628700529871022029983038496679941680606346504148665946091931875312361077407650304107957715142854483672468107252987127337460779892643793811684964297522848503017722738771759902137896101411946382580986101026100880269551305214764928650818125390354256141607354500193391986436026744566128911998083123405416593993664053278339722660384106147533563121925339296996751127484954630146741309442015805305663616397260096254189721510438780927486641243526854184120469855981016192453807851053870708926176830584386517642016896037708084649472119350552544384598856997587554188127429449062648389367081264850765365197951478901611510669376946503853358314503659389398908639017245691368822612318500775702623162604698768769864658799391181283421463712352419315369487816025528566331692560980311570324845060138167843289660803925662659601817958140179537914036620478461506888473364027790601796652926030195587226381169692550049898716663110663183657598271468955374426251121969220274607799797566515798920832619155075086287687555539127546088059117740421309959633578282951887996022064683864043815080146789322479827643454212743211983287697909780280124689542891753596122818931372412638057335848205946965771024911626465706642346248430384451947706873815690859742107752490326258279714466540716865853084209560350925737281328644714652694536199476926908797353656634276220464815051970386166735465004492027106030420614730163727367338405846361481235261776420450239375844007743855959633879322611641724332110831590951964674709592650054137045608847314730147851620849808872554928272464232680399759911554253726408326388368394695915525125474094893144198342712455668809441147729052283301480832544194587763624255813310077272614139974501275052397811217080387700138616714979989151070859813796573098035754587247044873717897720344144961021447977270423269210084407050540660978306520946620614736973076101097487372043244091622960771222066579090007058702091144664849331825363043690906161873684795093065369751733197019410397107366177641745950118284941321837849358631785695803316099117813880030990681443253933170800869164519810918292914561314086827581613849317660152932068184789410920496024781287888204072046613559360852281157134466915459932323472922366699252215133055166873325785369368334404795568230479640675279490011104083893499554154074873875672602952322231263533785967259304301034564855540187479401680708863700110448852552826857702943190208924947590514438800699240742334365375159326287104130203652062147107222712100368306444076485486104932083920268869939100313227905013496638557535002040611851312970362472303822813004688516866342519968434238468933025171994152170242899832601912913773186931650059952650813605605065477730451299755261822769639449137003065062698870108216096104119646135747368452759965372519721233175493098169924118978695441328881848964685192693573660152052857887786105371448162656115242344697524128354873123605543641022212900478769509999599223222199381239912718072077185508165573172648772439744304583385175550890366716499518108230594628884743150237684202551787388434695545546451687671075526651558895007619009634674230179319647555197469990576567598668119239531882805703145052523951505362271433203092359940883525752227319341058950188303946260874158080087695468258378901974771557748073603899859234616503301923336848002040742676130208228136382774324001365286113602572895727510574433176178672300046221374704413134209076993726464929923994564345439345855780450545660864680012737169999274063552212853789639169515952913709991718111149223052663158639585673088698883086534845265493059470352218287117274220254766011020349947571304352214046069741490081017121045503279728877439863331188738615126674622588050929596607131352039734223704902367820275446234005748821677036286704388583623263056886228091646330793349866816507414778084413343665887656451347525717072020853143333463057624789771628212482585755121924688102529371601093477897658251837047674802895059370662573458838619859853731727996976813447029993054558828260906611691460103232608260869271786486053814557914539234142289554369858481694334847844304598800551146736924465743571291192916379603276509699351530457715859065077638388407576442500499519375547018408402110505763612464419534867887230040868618430415774787555432457055966810671451063282241374710213633491108468158254523517745620433731603127917133807993019008843137854775509988313099007206440831340100163135777477821290216327957069026461662948554276267512869003640913408827188996502445566623011815414111352012643297876173569185777332075641778967026406850577907408934046310960307121239314401424008176265599204335292079085631741662380663427906628875104499378090308813275227556224684186097358015048683083798290341223539848688965802914329396141494040123446263361284567670556658789582912805637161508517444125066821054611140299824772077124792864412081486377217157640878413350555690142882738813582310351889420158858010763529765170720109108951118927429470478070907017162056683086772830411699483546631195529991639184722312554623197355709634166077271847379576068594755073197746176012751206258817398658001589951809792888127660460667107135352798692981706222648717440064370038506710570836186368601430261729916359656064147784393085051123066813991902324426892140186529807184871026627377533726717193119298518187413429870455870586537853991577817344058653033030183780448880573348344054949542907307800430830865664090404142096932738580920688618040153900545058153150557261539731071352463385775122442049720146439778434440936281785817696847459114351334330547135088703311345560040537282774331375136370749175436961677867820517169639571991120756822441152679510648564124072840747716866286351474152115122122342124404517626314467816579560102757949410216454447094752222651841230908692411820361858748876323748817938499135888459805019217677471431247133347902940308249443180292130337805119672372714977155970127047860449706290177346545795269414403705523227087037480353221666196284063128475163558058392141380696843555574138985402087454909883202526643592361375515612678679222005561787803307031502307312336923651562348909864820242073903893341734163070665817219897123840708259756760923355972529003635100706259840618360934583066116806122550011393441798254035316039866898145412882370432019011266130310510536815999188281690299437478218215711022766526897701413016908423757410906093206072847933020097902149831495710531188045690307602112084711014368176904556274802149993280376939347522216832023432709090430688815737348711179502774069577058555789731375079298013210960408540971804730634478967002031751036232440298026100192104882512028121565615809005372616474063521743262993574341186689879147486319159699647558460249543651026626218218765107799081373559007168522600549542771116282380589117336268929328859550899388070033973909448416720042013854052440623454408776431300807478328927370626315990039762058946002202961299353915454295792268699464316449243839959100440977932782865073452840770412573881610600834881614494269587585848318929269968458903873158429799555575923332815160965508908122843699842269222292708627773031148237698550977478841254629822319292341265593795543839922541534690776282477317137907845696887831860626099286377896587491999656430831639729335606307132186045276867162280853986123856787244004112337685423575021973187561863002137447078842815995316940087215909964242656776875062300301163660510550098312470577700311009107648049072191360021609956362531529548926391358953235229007659499943171148099460542640059749186241235995384579382614208909354107225678818493743480426670718105342288558563326952039022097817438256816096396670609437951277778434569984809612922432090064767066174587182134608422390131031493603129211769204997956521053023433073178757907081542751771233406252155588287906776633453740207899983999656842753845681065542472222405408780842788834719983113554991209400522547545022469854538986338202417882049197105528566899181542707748642307246334998194796965146910628406932210654060274706611953661320098960918637767570280305894310090325639597241859576548748840777284279339988026562140617551772044565709385928445304836608570786789933806171408274268999889144771672108739348071918687540210611229587066306879554866907457712484181745836843397676705374981370892116593884686348515037269263604678422366902001503009525142410394057813079199288292858635080090628852061920439715179946223436074149373592775059340455802084598903706803748605109654256828778977521302518998502585576718316715365880504131842396098468289667052513875542858456674656230204051384565407391274203213436812257982490660446301553098005883437914297310956008530690771283478498509170471389769103107461250008467791449677274246388171011657937112975763757241808721906671748325770201896769455267914729119347734121468360062581786302432326056276780751727147115740200239757675792166737789850008612018997129601109103070872767586794520956381181596384014915976116536156954699429382743511266513729353707075577962396971773473693763201547399019052107827712113167775440573399312366674467429526319842468157408893414140903476020684430131861385329161336179609862782770576515166294012937708645351738380724691403928651030632810327495583087721777065898709751538581651971041474893161212568872451620631997426410898627517945364568016911008587557544181942053836076645479137315447124505899020420597521205173941525371087111964026397347433498587323030513127151771556890277558692230690885041475726304757247680298959262382102942783953302051832058165533234663181338994636322759722849821577016068421090177650281153468678741023550072988842323208795086105235974520563116433001245647861074934744533132358372273556655068433947962488803200611482392542593739900737565751517489062288752629631782523170242689934446529466737093972680068255694582668696772776572792951104979754508719165344947456259875917457565742002653355160768095628029558125105666875125980867735474913347473233446274157993191807402090709628896125704883904273712307252246877601423614606490166849218708935942109544248849442890424674615852806356398985964708349032976269172969606335498526983755667727620489162287777044541363363498424760476598771388460412980462043183281269723685845959232665420437128130734721634615575625655092001296778578121584729102552664432384985593714128956840899615981746283049859369540260722417758890593783583975192338958302773009162240188481256902740439763172305107134810664517165437291365888628659012238181307004958741141011440417210708918531598706557503007624039594523044682397294202233558163851974275763828165295415704159186755080136345346044385171062229852233952521701728033441045100612564749762569742331752160374305628861737823286325667492542380394448569899119845191466141749932015518635198673000898006724156011545122823173525940597310947373865808566558190524189892555582057009294199168811437285359792878431581447903652757019114407010188422398996539732382895749461968525979813019936489656419708889639336791668984824497019625723660212392085858529482606982904854895424273310158410804325495642988710846642090533282501498085772982802193645304981627939911395977416712648017344258593761963585492993197525154135375375474275280481436144879756486781139216741522358933006737523939968901024650731524453288733472907175591709300102904846371835507624566903221759307986906871578995631238537957199674966801684254864190928349854416588055595404530116585712159785745984887467207604467879639640870753699110375868003054699851025651880354396732522264344808845279703902112818052738151993652748600470563898955070341026257002996156112323657212541440759178537574035153440314679018865269976896599739872843291106992662617764128640373822570693784703874419774799333698578166436249005107135920222324390490624846294748875705909117731042400847176013600567088250137753358119846728141793708677248289823178121960210841729015649760472374589994250796510978184034025562026252179948189157974517945754525072798865402812788114885363211864645659409236668891622471871537493425463269194561744124500536731769047693533987144181995225107049904861210297922665481838690761107747974094567402548122343179382723579809237716756283435602233784756997822878215037825119470631159057917287454199499160221112366603782747075265646452089374162839191422344418042009620670416596236227737902159989571746574604541044891435968908105823387352162942567568882777009812611536280535671647766041060046552299556420229147764979877123894840444614038760254065169812297771910522207320861507055893324675135100071768780158668168212819175736370636212248251959681767545250585292235460221407713915666743528617912954657065854945370500402525112564008385648098800167958451646370658423637812519379431254100901281289401660101889809264182761284581257419576660917540369414296200069979912010132639531096469123742265359970204842704127260676214514609912186459682995864234709834533135364599880719772836008300981156799308330913564851208137879886353213212983007447490888863857607339488585181495243276255261010258863807246099669282553191986952756518381621684056816923542597732032484382711728561390128882851256389364473483409289844389059902245167081295803829940782895150292438213140344344369561176479581499982993921948632556649964839050005280881660540369344619047742183608545648735755342019368225363989878247683801351907639499859915861361416875806520921220424400298994435399158333310251271058591921896848758495332217295618562710224055722596682225827651503999922562038454345252871732328641529310593997817110170986032261531419542050633437235304145834016767801586781295985778728591475225947132383502304684764469127992382089542845469176974902051076023698014320578598766564676980795647508713167694244747667544811982708713595481835658158613846550569170399867598801999684208312203393485822592593756827458747688875471567994596315852311402831083720983979714043311231009337541861814319764808075704037645722533129751029029135294897725136571936410477902982641773178988854032882792762034303858696128937969812978698404588022951147730921117629147439467354450190777428900191910712072977547337758863110733589456257742290898576018352843578838493323031548181971390674082101957896889380109313627219974278320452293387124196071984028317962501856272658308462747109070922969093486753463188776032341173944104286505462909685924773720191170377429282455303915613974195766474650751314338660409229294373574905612337531012289059553320102747339968029509004510828220655299627788728865355502703664198328291031625754920512212534471318481624896240778527708901634367127963613632298248865588943176103606453435808991670646827670227963482866031417739512756715115784587279136928447745674341933578409121235443126210527354036926324701108691586701675899846503337827505664800296406905485153996463536387671245394376418109443077488490246638967540547428693430083262304557012735950119755499082297082716638219900422205101058947333017721144104679862893553306678687784542502491410057815104736506879251913509506061543227125249518142226262049880986659614256799733545378264285645985816944315388988217180752041664029726306359814572163335064692555410846998568911401088510989975144909564339867610989543888864429652590852388060327759353192631735027540609349575180178505188582411868551767379380015606864621040417959264524884467595060119203057901756966949179621423275881655572123175950184615803102191734704060245897020745725811973537960583838963936408494992063845482892077344325999448003664704358690032171840156889039207440292199376334076109265879240976282509986502075585641061822002752925612224444345719041365912161627908085781969633774606854197234559061596962198116194321269826820421706727383687579184861185307560467174402800599928183869585500327562033073007384378015712268317141778165913729894745083113221602733888808500727947249172824263109465980289476341807766012402460163132551583717826269345438992178745033014128006972247764742461728139747021051999706603010139725224309904798633263754699589224582833776529147796483926137129210262262397197298861714160444827865702428269971966392466591986674995526069155606375112219666091466458266847116237632491834999630506110651472000454603296648857171440036326640083785026029681653977905266534989166081201974815716103391035820654381696255669676484373850711727766192224931559027264861207510938694299967424940238828221022747541848237157086693437989074199760320076771249138061392439600837290667245753131970259213235633712262084857455866791851643055837506571695329232033673081659808789534151513532098958568177705034401028905662907777586133336055203574909001468451139697031861339271218338847804981855274276095777667144745279323497798395469142029508905005753848537465501615742569376703654852014889069160865644996472699662965706698679881555797981228242322450264798167012245708736263391714741707182969267984593928706110745905511761467271636051481422981229560148607434666459330328007198281835308677223364117946310915486700000574320668535366835041922662344702107267648671118934056868725750525030615064731961629851040320712263526584983821192411668934000764003011745655076175854994216117798567650699616595288976665110511868855564779763886607150534786386269925587866224807712425547537744400284890636609592389395802523551154068579139719017253130757542495057540581528367187095713433739080541385324357294703554942727572306098259756536832074102441374460652545740190123074312081013279732278310664292482515799367133960793573248505896207481005751587606725840400398566593904344053549762336068203177868919260893260133226351076209496888762227988077631848672875757768624800964901497494981820869212201271523085455442488243435946174185049487932295924129151879376629158790941912203554631357009406368388951310938967477896263116987342388744128251010241253214155269018720486443372216785391378509615586812219529870473164994013533149928978936394079371994268376977659298532028513207997781051269016218226730208952381573606285310297706394299629474332739547458808875719221624852558066221230604586713230198589120199524698499638015745463398845142101442833608849483746837411872181743113848236652496765751123797716461948862007744738243417645333142206635246268989112658612014694781916668098251645184474285771292395896146475928510226364001262157471643130629563772152492809249918911599228005867904088838269889647217932999841855039321734317955458230814777641083600144174955208991121423220102417759638750721942202757201418411669812813345838919748831907159674223826331102088345678396294564036106089612452867505720462303006491055913404560852502720854994261318621867581462464428938292684430713772322966536481757151663578355748217035945517244925766558216828771365954221177009168316945203568874258572559709558455292125552680070789728124250251376195650330149296132016617455244565982276014677659321589086466148056219674957221662574713996891584578419611298494552444344510193243938403025229170441448968225192007359977566402791907526269905412393122426871147395349980408546136757677577127018352641501386352326716258506912198339410704429527013085752723555985465056482948433387472064557094960851948390719668632648735000317196761878757526061120944489513882933852588544118876310432239915594174063943779606353814827195541698196296757887899308187396772097729536433272965341277442692842130909282053636052308785123918609104502444516279579524366812057939906205675980661259320324463796452185816538115652568529694207709467674036149727115168747863377886946164226457650193133391742213026103494372836764782278450959434583865923366681542619942192699613323665842752901542280527829750353940722584040415125322201747918872291784898507552707756333847057584430301491764663923673718955345014826895857912374307693376519559363690072867307901710167297974877640043478834139260918466781207066936215368263939028925279508804413066027854587757090582342207443386120363014617206421888923323054621394866845147501211524278629853923325047756513721492052586612755105339276136939432807830587638515123329883476376521001330076716698461036832109364383617769338570114043862031674016910373183420648982846142234530567798737591503756197391307004365830960877449703821458515039744733526220430024669745357841341047324106930468400337240192291326222775307410839888603012555406494284970752304698500474645215657282834647941779541102982719605325371925229535670985675517409426819814002104793889459198210615743667994479599513843813817587870176609021646099008603596363750436750149495690577658319233943187845968305265314330667481529219688585462512847568085268071424775097140068693756254472732137279629136770074655844455271706350290389518996333508562255867657784550300964916432017671005753301617713459259512106939979520872505095702406814697897208735085181727713151134565384301451336032471366753799959332003172447862626966621923425683052176318351389126161968010821761042825876716023693684158190815783106380445092576394418868765775340509924990040658669087784894867913207272481682052773456766644110207233966784521625265783978116825616953536099062397660940025609972192048143370188701873733287122255663757521858251604039062593510463768871511345714374829842292011774705326576576516040017736109874148670584184155236284056614473735633116800993756617788627822827897904915350057363820731265673607362481325876061263189480508590148881960184546882899269291932123595131809463286811228974317506701147919294332983224772584552665281269821920378959564013560696477144798829945491285581350961754128808379543808735705447678174178367804823197459657236473171775308821762481310354670941888554216821325795121329115569891666795098301112417814524262916089425379160443883857969396619743374809534166101964564511681929468008565400583337967174680974044023907647580194386779866904886209563745099404624861617927863812347291039288477914326773433806119960240889779737114691651270615391011685877818355220365056194687737845901850829541954906658574287437049902751143567624690005307094327922381513186531617600471534642852684603811261517112176024601167771680913824253160970476434979314244424142075064622248379149071692696513584424938048832807541029133191990255019387033144428138664100298587093921521353077737893216654474813675821494588042792595478875749081281052426395845376363799918765581193156820006813602544088003167539049704579743604940254955803182173451790628963581283689608191013043973712430421780704592147737508732034251649545505175111337594566428431184877036094920247683435619204497421330773634457580772735036913392427002299067576127162755873667641252293294573635214875359416204594472454149807716094262436521611488586772851900747621232829196222401218031167949146743336907247456737762701100653752476583607082587740112541137762530729494430313059454090544070588864166029272267961451938566173542044085248021700035144557004806890787202253986476005121378685171396446268761070464538659373185870382975565283588483110593157854876725982267791725578287347356213937818403362476299440512275077327364869199666968480180577569831342573721480739035652569119159747736662900243783179390185429563132700976331042822867806827166411889788436985302411753260490113157458705307287665463571716226374740888316366986385618813495483241276123612331559366075086841518111929620743071293395708156840200058531816328036452788440060972573501381510803625882509944627814705246003695201401710863320158222066302204432343498165942964783234006862575270916607389405522584878075120879621958326878699037734265745019080296706825320353798193299792622332324260204774527961354832766316401024143652765978487077514886168118185494587573243985053938084559779568168880504709326810933736028435580334995096406975466249452985662195853693748745073959513959441790024290562484235163268599881449316390277193621390230221537892409894567509619641795128265706178947265863105632163801888636782934639623577144637539394938522088324886317988729612767045104328900571485906989004168189110262569862484669056598225197723521573008245967548971860281995652245624670021129063428910043046159098663843911809235769733886077717584599883109331243926181339300662806250984222800186948374414990236971127646765330511250311790494477996917332728406639588987330187072220450621318960453541547201604104492044580310201215393253327044852728127461586223768192789980713713773059226370084297221522755679400990175273346071414575498340579706071540735165013399653733202905826005913932763381030545469384472641940729018126681593576565902662174704218980873576027195605239616273507576768771519646252831606104932613308250082729422569435111955940313010841927166013192721633731899670517429072594935519746637489291623829707937504195777642345016150318284749494676703211587504615152020777950928163756167017275557382357293983476730459350123837914569680225463599474743156132237363752022358572642118669645170498708390564948002070847936793136437259846587827617496463144114125195114485389793301676428610309605648758196762892580381307521336727469887477242362437911405205405890720069509629983520314203397185025042935218582157765118598472393227909763124629210312712598535443633628724455182926484285794077764393542498374187822927237954881346776758958606573800212148207129557797727061260054704638650917297164124548404644371649910061213111896867772584006201970186238247830501842115254521616029041819576289571173315527047897169163598504221716579081486611838971816064636249802989102348342346912238723582262333219276062801565456695702515118492976400517942376328721243319367948470380205580866442372556089816069410631613553790106172319466361785007679675972779728407418519487416714235492908924828701897314961874298187979992748563255795444522573591880274081420631556500186934244582354277983504372904733658335390420871177801125414972542150157445333774808392560679823225550411657789309543832070715028273456649283067834402083243563913555741311468294702661917713784996679359710924876787619839531255611011046483905018703029110170298450179868586382020919043524515957464674110145870171670197514331846839417718618227736054615038803303390948457783816446280096881822847667213341558791722456107351364051554196417146627067634091963916519818038725239273717625040422848338119776128261533722833311689665453117883076834700075558620769302728679157423601923624611437878796523395202526874515552312075917688973759329021088006697465661921170472028975256663771927005595083956376097066806241543961902469976512997504096984954616468127822663540697801778105458904755626120634549864338314361453694148133896599195191257376627054322436198566735451315209043390826081373598252525256150296649703362053641484971778035808490803433194530433697739236118513644573569046510841015565776467131595256300303459900742661092563687413186121424909654311674507878666855399140008985513826727940670770814246188161388762947112444786035434122725134042661512461856823116876589409918327263791283130255006976375933876040174784060943947958727057467656649171634263043368179202913319650784435211418571772956057656436317395855688809178801348788815688334718486382376499049003785347926934820754301703721853486447008111089066867097738161077294504779259635389841293241418478120043659718766990457974062782338791820097821097581765208899151658872483804942028051184061505221811400566558947155545188203117649242370244134009642153462993679488102351387082984938039550610866767721925524170852872550565754864193210714093860492422354677720423186376780050910599465310129533287466660588155762073814933977209487247786330915917282731302074493697631813497982472298824849915253044309872366812507570193578188510718970069647899103081705053765098101283678707535244107797144869377509922618244777745204134669935794784449753025186315228512433776308467237783227364479090480998330702757640775086351452924531291155287382807945555661258960651599407422724529147612441519891732163070377349814037812135077832748381320099976927818743081176082687877703446008800313047328918328875072198716133478858366268208037644146222663232228214534578533957010743742616632690490148588470658428707595218922308075801370506023208615822058009019653131660837037349123137130173489379441752293169607957376184189712988935518782977397194133194732980006929832269057071615734296174188881058005522917317553291378275533371003166716797415493043802533256765784979024321461831464420685488071521920391151042482068762610506682848496132711392647423129590354512487615191974765203580050042778328130182630996910046423541063520542331974923766126881327366746662754496639081087991316382929132302262297170035326161959047869323886550961726109512443739772245297984943668902242696506989428078850626900477988630517120021467169042920152178868888254470781752922440437316321478034368618327972010997584442752229862540770518083158749903648518526822802475017970873781004924846891791241185220239293461468978522747941159586892774204002204737119220900631630941432935189737091162996349349680597784645425118470971458347184196508305923730183116358883779781331487405951723984801347794776337850204723257864798234547254124521021449900606953749109217222743882700214166901793228614387631922142611116262935603080010809172080824100894061027403788444174265943628209487576854053455427595749574972841511781676703817784249430425759962492106027926350793147073652964307459355836942972721986254693363597357673724809518100480281858597512117065798183545581649864207652930613011307236937296876910552416479951863136859633997899741547595185672831818288113672015526476431294300605850527900809989180397037389913889337466009375923566828201189453899292110470544748002308659312295891022829648165424074788260501122095142631264670084421240042332583460220741479995588122057443474714997982461535821353867485549711926432164812831474954631922942679991306588776937014516430464133714103300355562131859576682997265136432703929657776321558000622802457427311522299561660203206506028336129026290568979439896016619900333911794660599778801862053723071824680019090350821868345213057413777466336437952848867234102694015600129747010731643540370629757163847847642605520969397191361881034233726433918826898816995987752436071836583382005849845825876984432587763748093947131728203227142664914422740360969911948237241252787404276130529505988040973173697420003827571467092227917907697804596964212802109042504764184671908128999516916669912387613381364460657424487194510156575291840308181418279476450078642363570358967668985850940095712497507219729533620528248341104537693090930936251627144499972506078766297204735692790804838027445843978079469735913695280412210930738676446778788162191683624782280562364162465451542247895714666006746297669738697521022774905065972270468261016882470706957181482170008453008712913597640308080991448747179001559799171061497457247708521411113681846972641848911521952462134030550203697602787372172270702776062455814399471774668568905552383573486680436867119064049691902565516917779008615525115949395894320456296177939537426905254465033575706686773448516073131409736184885370442146552670161121294723132571619833843033196346958440730926921782286436982165218684235392793548813725693395811806330208387142202741941676884329827685860942017674890748253057115686661095843279407170268416538199917563101089178245034904199803708315546401249732087323873757033199638035812487174788052495638809773718383786803383657728403807411339516134534001286222229615146053290978766279139582912109035896035894166151638818055032261456314862157902355973469574143573544848574432325540403540705058865170870698085968217741910362130472994231092477526204760767847972288054381270461969455385677083431229378688915297953033766756002918282144682731765562916567106608856139260175987123052469443558869492705263117310272674637456193892227190485702625998798650536449503570845498393066214547951490281225093152712683709508315163529281689005524087468115662482429699568444116716040235178845508691444510471201898528772453731561861844660479067785222780755954843299347569484115984706028180298868608357140138318367887866343378659755097290483559095390500211025176626301984306585524625516426721902972479306014411325231838285507249930896652090825771586058066824094276527759896440042906889316012241264887481325459278893632163758076928936375452896332122574142852642635354469627345668074870341773864122323656226180329590113719687367775641215430088765672261622862985672346788155311446690545123820221442139347452678113814999777701849244832630084594018424525704561553795236072482062502367086088337853018331009616055517657191746589299852880340138997028811066422909821352255055435763674280945495162587535576663004606827735449947095918615147517401745271902294260934918355869102834226794146755112845749309931814271718272529536971499488683913884040924203744899373480572798176649979775311903939407104251883335614781370730727721186201487199704950358669363599796088824047831316642043595282529102751006222865484603374490335632457766739838306442568875728449962572398164001453897527621746492672526556893673038083530305950349747166298065873521076223865907456025454627423561115828392110198842920639746953495972093881163966603906699221372089179802369278632859534139772623339953904263179921776302549878098712211679075734300147657010163403078733177461197383252208985181626266531610072054533578379599897928398772802905985486274581640024430758443152301081262157519842358935664171196764209483544718582966163301382173411513824026361532370497484869683909331849661963537559287201810790903817764311480456863082667656362200786181452321014654773368014232681390904819638114740336300387775541736443057159205770158685612305961276288589844968519854946914283675426152279222022640074186553362626191808762426811246176900978647377855603849168639004226659137836428260101274345227812538381352010379971238640824693078026172026517341329714937953487647933992421224535624370312076126054440456265760557932784766806504707553683629455385023165498737512525993653918077141252259972821832519732574188796100525048065530496256783135504656364999492472275723414523666981889401741850501928382461888614812131704807852281063300110524767166291581946856480975260924092039810891721736115118658659115727128709080922008271166472730818130184296600858582749165668486513097026721336719019848911739667624103428995234463893194350211793214588745883677564059381251767659358939112785730956019909278892047686422089649117516597283469164898301167351339515963017011395209424428220229970690814687381769809679972240135858142201496771710593788577352190668357357154840042892352597474393107630536922155148883141438831044225968956260525725017882690134440582427100070094137460082261979929265791607725225557486463981922685137374307842834761636684401661562788542319176304137483516157765045429100212368170500142836661214903707526141704477196490301161615816120230778653287450082183123803328205335141100908237352660574758680154432042369426116127872773008783498740340152617223677346422336345602660866488860606494901151813165890847589388254043655332873335402977189945228888991797330178596277831414901627171976356038744449035301753492779400900780047888101639482098638617883455270033931493456365948425392869566616278537244494188136778934024079438161788999070261791818548033246197167483315008892557994781917722737222442599895325264936091521637972401196861899687046593335176356133104763419273956461972080258598060779157069614455861809477088450267882139046511013081401317527752475698971113060132796643472743387016289990960802051298389931469978702070463555040215279123998137649701547677089750176483764401143669858276328562160768821147301510277117220372607275478777010120373897278325628302565740606384647320170743188788216461457624540008643925138975194678602088263238356448210708477714971819198596538914024826035714434974905623454221233164199732500775597137660967681788343335091338408616893460441287122845615305207150941099330629774198791563336151251681673490120816091081211435986902413074074510464353981000843284813074802196356102585472347804365243275692036180783145160538172469200504526780354406482666278455458884226853601227828585067586101329487253389702552545680099082766703391926477691185568632302245019454933576567060640126754911924871065468142564262939757995420726092249169652255774576526837624830074176790077237679369531079370839462242131445008609397983342672627338907537438758503181419692599603484780035519493610153128333931844268538569458250358533774695483812402674246076367896645230171922374522539268607581954721461468393669852776837598952736907744861514345675103049035373917730877048543374553519462542856699247174669723680834550840941439688115105638074532463093245090036776733417562390608109974547114967003349664940385010823906185531253049705120856739212592010362019929756894428186612602541236251007511009733946286694979680693828637846475558430528403043103822801029556326258863534936061174410916625007369463484782523663376514544060861788731267111467571902125247878777820718365412413840188371264925242924993677315374845826665836344150355574347205046860330104145362240363319029366529971420030205228882850687213254774395809357371582393242730124510570524685117658754997995699186582707535170613745526585629689833530130575144300237626721115591471355164328284977395096307053324884033570654078523961141532707211859434291784626735676495137004696795164048419881359412553206304993743211980071423287008710184938471382322472683099211729861301735712564376478040046197134303349720881553068219013943707428504579263133918491110048387985936264905566349631457087868112162478701607547642493706325331739680781893638633509050970149361154118097169862246956931215131365214920297040271590976318297602132259895749305776220947640322051827388534003927593512306852248514641328012210450827497707236519103750997335142601159866346487645841826715362432480261253940994686219138652225494014567986333692801194268373459804207743008713327053912206772264554597735313701512123410664370471238169515186814617961378041396335005007417379101579893872459315230363127866595750973841696390234046973976587803663073748410507125174600193540580670476468002077811568344403923396388235062053059396817169636577536356325828811158173140414808089078627091335864458706091541155908840745426300763158793598350711388678628109025481610468949202880866415414863657673363173069036563251251749962383676733336867750237169644047517047773597313140899583759192595981222637394931141273920326069516942136304839655391131573564156517140815521962690098852326632316895957285338908339647968671822848629850609920962495552315650616907195344462399128698678214199668491830748207024985244486749724889860968091445318635617186875360742101019388195595684627410893343470469095997471206198546413675060182356893849065716577969636087922142832572502813007197647811569257608580796264580007076827613058025122892188798595285303815197363728649402114981697085127410156020200940169524756686133220902729414772419576896487367855438904946394253502044863645927373369221558655189212290592656088066277860205624166204773007157714828247692801091719608900484380019559576970422168023131136231386069870048592006183950996978961658034393553767706642181895104798685641680059379655644417782818327008077541792813306072349401314629882637926416929757026676073930974009628727137598977459627859572957236857374301931113675514118264042105135373300332260383926180554566553292602257547676845947777743176859379252066768295857656152871797919883467516896072078201264661281054357387972371420099355642087163452242741773148273462110142537250335888667355123790099338088477675331278824219166766588416186385447129704668370269781131295349791895839840375583389765204526849547791605392197943352652215844969685501349732359158101184669096513741410877932907451497182689598136263490364829241155542786404700388977018663280352619273524498244336028430862134956517753555059420949010809036354829523304198635897416567189069184607130543340253914977530360081000227527269291980166936418862755460321945176713302757131033887600945254726983979837038981419923714892179282247199163573642404311873667061492120634803430484323407109542721039093504975919366178411017756954461754404519424189158928297820060967359464354044899858626307808111155934572570353077246051137137779300683334892628701106388642769333813699831608506150656916948151765525272728260948430102650759194191704321163775528991436715060352307143922191548937233914343597161690850232658641973200879529735324868224784552945418365297359186067902434228666625326063434145748777723857158081843727097460261731598397976629015711319440775674144024075926971612346344168332516562224119291216716973481399660991678500863054321908014653597728628279983144118373439524757772597196933245993066319437523153078794033598499078825910676430485104769431958375713009508546961443294707995580245525442003442844220163826560162375290306730696202123220316498200164215308535824243504936276398477087984346152880014062507166457298683935367639650189938348827252081838201358521497450457147736966360607984006956933642584594770508955676362071536242213284344350752872962897305031237394915179164633274508816043737557546583253304153699582333010908081925860084421155128688872742859774401268475354047753112303665402297887836090720841466017182150825757307649862592112132045928151819974456472820456060708990906652394934145642785121864130911261878485296150991884123065495385670322715655494224273191937099134300733317156390252791772133008956690482083991312423117984466554272899271567450256626624614529082999427957735470289988374001746448789211804022402740971776001539937423864392673783665758052854529586158617294093967540727849303125307784568548446961941172297011049655711144496153089209198078332956729423607920598173732216358792816251574677216609732568405519064858256722505415292068420838616446443391609788233863160149418158119742033147432751520200934911003806794720972298360750950517061049582923513142083797004385145429621029262331649160089169884270007511724873227916241492486719020380791012385604280532851706691579128762680677377319483408347328129769055282051071391658676723736810041647587266544356999451910445963297042442428538831662956290575985788812687497868376629097219764310177519097852729558350057571896087681063358121416439646654148611277706538027139026718669635279107127425118246020667074296247440387880511248937513003210203356436656649709934175780106735808108004824856859532599344773242840638450802285623780972623548623230663754250713023467321122889842152336003383484777355851122627969960383739932385700242073869642315399242031707735649035252722040994970223329796602057709037412300351642657046528478227459199695036670332087051270386019116482994083349917184646873873390801919310197768720844977759352249755221776960961815083486695733449621737446837458061625304486997983758547276852276574545639236440624251611840485678703056492996321380822768381144738860947007568904467200001472514552651856625178138506536823376980584351865280968811186864519144791900863731958968990817719995453529238952547815435450890325912953550538108010610616600263712977812405881224355921373577094035346041567842215256285954543835586245713844372020013523248626384441540816992331048568634797239748356322357959104970918617816343002745162595340376305511517324368584144562638435732761676603799591430715105433578009772976870161518094183912477956715778213074175924463224042154341656582765008422221223783983454047341368794753058599868250220669051928251351410180469966412947189216810078014199635365201931689065676936771460226309690198619274704050478560520228137371855384872010055751026351591363109834955369777028685664119027944195041314590994185318456797065810042281563104465072071453602553322499635571323508681652056735300292993963887599884930566390222581725998664082654723431507349534661090516497295082541294993237375732789104166605679262317778379675930898208697107383621573727324032917067811741591454431539533134919627515472946329661478201121761728789905977602977646564774089554934412719963581479029028654285804708430215344534734047970316999485106949206908503733026787731342004121478424236425785500620551906776836564844303410282644982886820067029302079524807021545494647030045952076222596999398323284513205088157187187790109630071920059733359094870777968703690241381835037056968765079216060531679155475836857033794852443485375539993776302364933373818574292385624120186581422603251095841029797732913431855961487294019477485483625718654949073834368734412544678138933177822587089769982645313681206065586886510838464530183410801611734633718951895243288717455980979133606502344228133624329775808211946951122513656332250641630876520063672552188042436905436137004126087756396435007884512535079060677260201046495112183916619700489312094163425000905120569830734667616931068801171986340410779126030724132562673819452585154568190035592247876360519326156038306149885176560302515451130480443977544162222680907407961284016076764677048697169834244828356538192864367814389598302634496484730951680614597765217871779416946000444723839524427443074328962551375309328094512269996345127670793131637095778474086289763971886264238930190184381515249604969920829957470217394188414690600737987812855488060066282983493517061287257301433585771212457740161429889625295942149850080850412848876641221409670511719869297508866182057885040368128787058190413744284564504019828025147337024627705707815121504971663169855179436051276678425494492518959770342466802785036686571074633454633284581566313817826151205096056488998684953630020287670278543960178624164557062408255057735483495508442100936050457140653253477601253747948839059481468219894729271425761608313847942755825949937700648284223519130523124619153930081048657046848330676239134933711320836203340886608429919359695070336699445113893992794866600356708945054009187912351097373346158330367181055475616660182329009137091542405890127595037238109275775103239808354434970835566431446713721423335642367690186466142718103893564560167046051573475002899881089695436199562507616455378359822309660597086236330752419651912978932514926806764692851149855634134943380763510580773213399101150499730207688091415510720393453227330648133803206305536456212435848810164646822939839804544892445420070952503301687881597826468725559070574536666487858259789801700059910890938346717836942334342091698467137720590935657615835747700963190659899801439324765971119618246173328421455111334634172099959436346281437337105637920929469748065690609755414170178050267531986399846899684707929424122046786486710829963029766458859528265562998398328064197184568453852422214789395168825749237801289316320815173728601399639737622562860331728651280680777781906205491685441247423830090371221478079268865330837917596127546122626468307905444314390205845779543238115180699186987768768436575658547206609900177573438551442060516834506589430470028174158533670451680013383494102537606963363701164403405077768843193836180711713031711142328932931898301042564640618380068097682223322197262810353756400708944585891498233761107711018475831337986622741385153189984616507963205991251421871254842976709717501840462262569615235476169931802039178275272751540267227440182236844290144823118540924493523938139320924604766634861411670910875239439059704522511168721137850596096863080753298587409586292721843624705938963482009037800732168322221992786374411699440015399518474012165537277961418817690831410451327458798409986734691037241984935134476388227903857779218202258086378686999813793783336658273741108042896281119962277692211372791400037866875152270569817718568030937096745576461692636245123438931705787090283158725783453643038037803185427266347200367089038515086974493793258311203272767689921371853000172527963061283072257940254082037223046062894943967160379575965748750339980672023544229124939684456706932370016827836516442098346640245707106980558735754923070354462607683851279003440076110758264371247472320151420988930753265009605988049837451239914979908971107263264859107483044558476268893224694229539173811184309241642504040802365242569449733338738913792228399650585827088579307629589375203791400658137420469214807266940973930289947846646482555509930728200272261886720210044104417659441447913577129319437881289006198774928559318718519905953183585799199278580405110930320721760303156446262766031970947516449430068071691440401797563095818568870837251752930945766592053394330307855999887952940469197378543842422272675049875552195025037936489167237894295677519515439662194441598340456075529213211885516053202472081648731064320021115006854106928757417919137960137465356195940175564209283666997755957129383013376039219813143628717209851324326381485675965950259926305834249164522340108660989765569165101515570985382994624173989555018734474733201451232853427661160285084233590631177355378920415955431542185314782260904566475459630542285207842719185807471570293193404448204745964798555226524169588712119508460142732102757038620772797643722525345267827661870467491586254219704195827138084879647186386664667590341127219700842829973184355243629083469739962224221350968919605797282440618586830059566003553582165350447438149719644031943180529071734959406754791464479142323037383280266818017738523587597181018279540766638168213145715852437363531150091418794029940847490363071289653481452139551758547105463351144683260306912771857684962625475280246431497671959180208186618813116654135571579779985912053091061394646308631500440293733989829689548243301055984498066242291780958325933580886031160815544191825063645723955755894799070839468018384784781653437610283714977023060564424072564339938641653131095699993774993091646356378867071687795862243977865167317101498862002585191143491464471855102202922092339745857581841620630264139314920100783640623746588357560451808423119753230946091958618271676085919731329058562982457838789541225275137073186056634972595625817129283186959787042028851801891388813504901538800866762484023006782895792397649327044888824437413242428698303522933551383531988013181835280982301407614963893016639132220329431470956670498322030736751938552952183901699208391571867877951774850752893769299560863551312076801526765505646182824830665452514148541204797399934276282800770909434397605487602996275252719167765752269212712765356850344011287504254267109233860755232257412463918641646074700120498049097387240946527346463468147184674190760420981970210372110071839850644626561368627994813072683753543949192374792166850819174465026354137883616501909435464266517881319051118649299512074196884746977489097557044137535192152284870113971796465944224025633176603540652445475494551466529826082532219499557360039038322000772706215626175695944524059948168796221506818997387987674668470678600010920781970966038490113363179574767103338187726582402760444489391687341816205564019840842924921294616137983375176596755017949109679206498296179066756801941583488730718622456007946586839921082915719203304893780903725586202232693644190487125247989029490691164130919773141442368394851262054259434907946439102624097760799906223463375247049015749376740410933390818561222886682571303689249237129054877193610364862698847670082626633013546384042874143342213085783027892400128168210100856987660397529457933545435230085737389819195446078892250458096139656231155570321521772258154512551308037990872359418741775675851831305785689544426171162671396484613342343887653153740178068228292178685306351318475597643700820382839827142233811842928827904206070151957800014592091330167902566268918015621017816043580671522161358124358698865583721866746980413108185891731739454742749687568915557762169939142203767244242662372349975506475108920671008343319030594140948469136800691123651437657103892116254506436169644708039770137191918573910464830830063618031087904510904165438041598718000062670836683480663024822745850878264131569529410651174285539910791714750849882221513565965224150747969681877704922273193099126467542049242681908079380963706549889615677815260522044386974354403937562740459188582998718546705417633713401042125360208089155387124876530995108641877088992880283620454819896897416829504087132490054657063302172584829172044818746768105679446152731467265807306061886493061133289640786314185270716143678147997421089782869599215243879344332851731609592755321948038364754375743960095269010415652357174347846005704193046906513072097035210408258639745479095677445169195187495162458578543680629735793260522026198012418205544196021652379754058683313831630000018733745377149289071536255792641828003313930627255712218786891630980812592932134853933875803271074249311436801924256753989671634098499651133529104112560946027245668218475588419478090552393993943858272476044591902496882986568608252607237838876479109824372896746963987176119446348447402988108306516612333851050973590701564991578863543003265690216866355394580688486756225921467334234585800872348328258540579462748602705599108104439480605742443947402223789973265185756104202779067115501346803169705161502860683953458015198421462738127626473123073950919126686639512545177709632482331579543432890507336505192149498380218817076199552898827707171882397161736918502536573545596712859853562336425844983578737099284322541020740244388786086349805855912735209413160952502657882894930285912623317754218275181623902789044679009330104256681479561273459537681857083007713665478265422142146255099321929041094031450385745295910291541221592772318473630951131425113282300735902758759262437997621818700029414316805535779224012816203925132154944769529733927704598839858482608417662459596989145377687284335619697791668289876334424782295356208668604919565735118138670405664353442992735973422113671218302340225383592670944021751599364341594996755223960128452852624386654162769979268281062875599990406242625384807978091351459802305651768435023697359460094748372814163821564789313301279489687609163069246704466083325733911290080720993239083233372676129644434002837927992456808383764912165791025094856348866707065277844687563319698944678152042844424996310539513548908078410548823033420934338218124150174362876662851498379469324095826755937768956297169276721658068748634030700944780088176476816752238819051801419125687623388205455762889723058768054429486654722851823820654640730151800237114240564643619419315557115599129566237024043910419135016092489891066108075332518884235923521994254506873677526217512048882885037194882112814895162522526567888640567905769824474054516075554575520168378106086077058892554733677253468176644313894813436942021453123888533962935087600451888722727398951610428687530139065624266979561294760411888438627934756392456028092439883762973340271162425289383857036973746267995666618696827939385688990785000498589240397423089062275795435169328157131434960329981469097184015862625247267209247364667743928761052174817452620247882502513281042064482435259987101826330131749494835298785413963885604978746331540041858149426896699354895085942782415407985383209878728342169943430544199425866361692205447652633944259053255123919059713832137929265484762781153991743113366532281884654596166249642070953393118150131495710090138189253485111061729418340715621162394570245295570241712818419679911253300819212999030227736262239617435520390957129456471328488546791166152049029714792187430663627010448893159395899046941440979568079212628040783211869132454771957248738733090142392200515670453961980345236247696118565979744334540678069961025886786918623992676609327382541472427257618711748034515651763128087285930372986618542180194496854050304998407404056970578536671388034713178870381783545435218182508708193338993853018890914225347548128621805236870203470757945978030509202134623739975796716589484071108728102317656404669290756267775767850273990480776585913110522141836962808090149081329571574551300752711716823261202910274133227789910558365047609349003455575317860389015731705926840859762017025621290237748293886229000547730293331055110466847414890446182369684981725002922365670328381863557096927587471172421138882793090186834769674933791704774165026467279888996780765378579123369506424708840492229261191267257403210380714068933161507550990074944938504023808825845578861849117305013888244840611871998855878954884437440273773844515991190877048435429464135839359451639351721749270001312857457876240411952511946077389503962270709176185178083791821675370140174064789920090784686821413142815608083088194407600595333424879375132396384337875230178118090312273996517146797594766446372548240125362457884959637231614753207213651506485447260590417993824351167582350672406948629486544209636192909759207148355958106290756043623748442650211333674138420642613019380103821269844010925887976852367155712111492303358692248300142264044487683108951753932511519041229491174743428658361173801289745765829663819818185935362017505911907029192463862686253206336047011936366761630896221247171755027118067537966890654140066112552773985735612476419603912217349820951572725825386468114370452160975267663892055677304957100782718072820435243707660666826901747969039742926762853194701437990494625614558033336171992704080955348785245982330277280947810648430241950675673959556254977379096779234095597328548423216233421639475106328379043988233982336042240215714493095898030775434547355625794378584500267223928423745784567516804243474516442147013409714541792992722646734952856838167357219264402715032260477388423443544219889317015851315677499882489280954270727381320280647692262797454463000987577396476852459980806807248954818628601003885124923415501772653754730288751351317516762484446086446713191098629739108243077302649434652125814466358874627961704073805007561404174106287333196306076983956479023673608932345493541802148773504748942197365341485331669214825578675628796967003037423079487488745329037706823000336262884335100235345394002717369236671167705787616981546757311111712546029816442673166216951860818460794841365427249094057573491501207608125614154304607780780889965523371254087806461797263763215998648749405024139972928719140747598046510216263665323304061437400343164823269136662780361378168645249941474520773085454957437183256857666093632878291407679332305409287553765948538990123446969247625357911620739972465127438119020856893814592477416642819772370359191332145794838050758048606841035017060872974043289711745971489131253346679554398172163310732663275664014670310208821941192350407999416075946423585958609212642999047827583446002371852920823425158956943954718407779478321058808498284409631648135227596327755295849195248738054897723077715803416557034914390189485219531731819930127374472299039810044844530609575316822840063196080013294396803035152054055890370127004967114714468833015065266011789060915228718981795918698725652472293989851218459052030630420143380681758038566377870996996165400507703595663599292197836093768269683716200081039257965457672781736854326635620578612010352836923109524912697857978555692045033177309944601381123382591348365719704509535643528877387448936049028128888263117963749194557123033171182590738837261481433546187467088440221757869270586339129741788723620856908938638066087197290922759063764969523401153912772743282196784192519581877027565257722166466403025668055657301241164035496333645035973039334826958999370120778160928703998266228111268636453679055928155078684061881015517073071717560830936884022064500602157224126111671961716266499653386129332882983298326766114052438006252385889805617075339584223461591157653046141207480568239301282072901231913264491204640647730550514043416319806793600181965631175524301068221402006550573029012498167505513926138800878865467527246047337539608671467392761839805954202773019777990137955631731145630271113187336296822209662170714397107875633294013364352419528873239890058311034341387053781641009164468386488320954831982118620510021180238798865891489564311658233575715515183618320276205988330262646503199723673516225304587781739465761893342887487789278857180111798960837114410946786883060156983522753787232160235535587169529771918022662770182698217649431803050634631648580310925677270243337126893077800271975526000019315094656919194917322777155451957661027060410608558691074345181101091088817423036403432367093799007601511535084942573069104596590039601898522496776071747444555393191524198759615933129574626765574164224596074383441486354245067660624029413264209984972475102667097537036144216545330811470190755378035482372463231634257056075575383605992023622444894638791918008389594475801244277795970738966690969173455239482148393192126768717017432517695868394689196457922122434960598212889706786673082633809054245365303215889393681335670968336719710180538162066293372313147191606167596350791786994876655531955557716765792727316331056312960079839537150331914668442660039209332252073172902451597017300432077555841593026573807202806986651169206719343070058676261566966120325520685146958175333882431732667060068940838290095852380862537152126950976382473929995369749872006726836056436817269056505722924022605768238491011009114920612434399562862135433334113698559037794037389108115180082882039826825734685837602025851094671828275660613150338026827025376900338415083959828157834598886344282254520254855545843395330612931602235040378136407286856401875335426018682973569392771430826060858034924822691689899349646259613704544715063737065748508696440665948585433043314763225696258776776863183639250149737826541675487733902623371964556112337562820531660766238292760197431626166413357945782406082382064408218981596650623992682290796254506450619788889944471492687234748472185850572211490470726704890342728006746937010675283403428616823503885860198115869949945891556488040422403054062169625190970655807568538990110873471489813284876981299359384863998893148024927082447395701250933372382247822025420715425703444859046406717433580220547062357683130279990709504912451377134610905686860356248733160869188128515892505766248502591019342643538983507518952358828827085302909067973821295017625474152170293985896482018893790920605412185196013269919907146149156920423964077164309944749189120277466365839275590463955947126696144261727754090533013196732718009946586072104117100808527405593101472511879126916183781033272762138478624704995926356756998810522656707481300635853802991726390578726424155153859233303560744057022513077232878381087850583585651044843050527218020655392479166755156578058683196840332598473136838119266470840094596520263113563492498111084576454737620606066188877776089336577690293497779660173373831865821268421959314495149055500677321163183954273588991798801993532649147264494345948092438041584249330525660036084642101303736539484124223867042468984860832741958714648831286073456312801103489174481732583584875402992619092184408346515826767059889443318881592288951351036927198819882317135807731512781509235679387143049434148366407501408897571002020351297834207881917810145530563700645114740993127123203679809003165666373959842835030908592958499823735437899900063138114622874720540218059647773197872461058704554192233348450996596347087642382514449156001182177492468142773713368833670344695349614451231468086309793231042067642039076368660886979371341237152588396872419254724305806493312561561571533669555306711156815986096958467579683121963492062126256100519156087844953563982428068292451181003734079890655434801941548691319727811632527393140764826327864092145727868534818986875470595970366774897511314505615836822121804991152949201740197657703056754049997060362793579367351360833582715887724188937715120191245131499525152364720858371569329379340323470075332624173626571988155702138485070502623907470969719982733659066968808679258884128811161068837935220057385364230643999131254692934675165883264728185085651042029973759691828856627489014286492519388015130366037952823908294814280194688310497622694364145018458048532483704035803008147731527921581098419947694587714736326564057511036972926790140469485923700493221359122833396629386772671518383512125866750462357092575823108618016436259080653752402017088516056083616988483193827268347379602779546807009953004383126015984178694690134176610300156361168982958593354137785807168858570715401429253549521104357989259862156759034872175735776024544741853455821915708875892627991810264856364983587483640922704045176314710027718624766580030829042448979174959881775041409375345413939239104044909641678837105245271063091081638146230672965171290508346542737750429741569885618045430647638451048737813580911420479445049101589127891920022319644980508044244597571183735617404243758385565343984174645997384446314561314677258438157227280023812161649857552053532441568789252853191447731555892939089160780681684645399827123345018367025767226498869245062502299212786556952488556164885556722454656702407443287878693520803249080822402863977747028097126859268887064401790135937320771405592291503263969251662841438167018301085240109553197381224244131091328641004695641061438462466839394439864640429013859722541561122347210273928018918968685107819257248675277236482183401306778007619688059304728907586948544357974780982534225811583086844456966151832971129001068704178727486575514120978504906424893524059953643440286983848534287687893713472774580725087128568461576682722833029201325423494930556050372008692178987194640058282261634202441398324607292561203943419893930458835600557327030164864994140309077383186462924657256346987743149072453269217882925317848169953599884957883739766206127219562592529426735224412326971386666382067832336437609586845666285084069729914060269490068410235310614518760491521743330421190544966228985134462657710821195232437635759767957153288813261205112899162808961253124860244018255740660375634361505834440438601683052996828871613003389197935600724936061709221606767309286266385457406475633321960306109927475432224019825373484886250119936897538873574794767405969730578083956436897803047283420527016524248804822914454468319396534266452940612070504609666953845387609799855493939542534998231573855042964448487641827407218469728767646084951448255949549318097928935240274057160543693694346707599821106682903340343458198692639202991596602347680990899297570479472914830589760147552137479618003354090636300821051562641084042155194464724877423428378934201992200096373789450136405262035979737966466623916061528331521038159985784599668484447288058737319792948540013153286379558314379846728604554606117116786374422739845191779953726895574403719375844460026684794217450237439123604623367918567024657982324505948931560838766467635889403107185033662307443471843363981766251136988513734762054911237386441506168789155916987531616824907899078203303441407691124985539497434342830898661395075850944252555101682229084191037744652128262007581197373091655472021497683514285482351383958461073858114090316848864123308660919024691150385916241712017633486232190331687820640851043626966398190869959695874214095733132549243492038727604093529619991479536285036685310501721784156195165939129091436230273600205725130256993049174498806475495502566994341161924034226790364582495142679737029371508709355346201590839430236924734622004896418479707812138782601680319758451818826839863854166539511977745921237311027256667320998503371461664456524580649875731032814161510828145512367643633388476165599039696091485912712499881595342644555040315505569883102874717745337272419144823935900112010507693089300952945052168181442175314059565341142673865683192745809095848000173996288141498151996785176038871189421694235452190626681140690071749611543486296781891804113237764850971510866156892940126692601492099401703659068496487523304222927508389607750990253084191417512074943746891657696936132869884163854027304517679563211954011493084020584305253078509974736146535088029271555745207466714667576248236635948301251999066314180665402235799863265177513443119019086449524281175668551638866470586839266507759181827691189997494738756699842084855223214566061397059288573014039991528099041194314639673599276605238001560638738401197801461733347247123429267363027987975208470351272761835112064103886683454735839321554902685973726990371756290329742043050481506089725018325474175866561057547755148281743238804349389054824570453704518719155194249138462449699798734980759991442974912147653774475083960042544240945090455187382267113867624437194592178342072893646360157052306752301922042632900866227825885840449040012554029945161759616296348198048822801530617136362187613081052132758754950305840204141464881224777210563359221576355682186848007225457424347188093690805388944144804865128870397833268613914807767530559253530431769908092173424733083410898523324237201266944863125596451551828394059611871797556551100378933588317437920689649753055333739800003262318421377678100299879809861090099207067168630436857688277342645984519154572371298929297642320945784899251662675863788232339832040544389552106964083367340754200131069311553272676411558297767491231549283186515727019510232251496845596724736951621923949229520935549404514362990648747812079459920409306840486297650879865164131669625089293576171366639514411486537937058941142974315815688888764213042572045133751236023256069200363914058216199491642016988334262527239576845666462246302011458205801501310273351548598785400031767083843087066601033359074782063078852359871363212968435526608499472548776430262140348256717768957149345306545026500201072584819113655569980383384477869683410224520214438147038807506098626950912343125945241494974007886955122108263448521876511218598256961076631569623716532116190254202860218151081445860576740857108270063975474656264108428247093694552698853648880235996313738596968829940841967282866807288004627776991020943796530120973010633816500428950392190215229303965165593161367677972565106230264883907282051418200467836785639421545591086757520529005213599098559483824071107830515747221232183866387547753650431659018998609954348986806633395774397134924722977934119731686308124794368735723908417672119369535052983096472999451126754831311497411206383382004034737427971835189501882946779276930189827797506777636675731897465950400631201961330599232747820696846240176353087368130293421794715271149220343933519216455825841116661953565468245685231470196597083449514981438475152506395504939193027254476386992837891575731036848467327293587915320143345997742696217163979807789819771228001065408924733971051036609652291000604202220954822215818311079665278675846142868010521834911491155987407623363185113824243740235255473180416384608955788956752779281733261002532594324954840881559622795197041498112450930186097983300175096117916008949709763572515494385361668277376007253768193086753352728985174157499654331287766857215372919117632600441825083310372602787506284798412684257563015458923396766972300071370711266057461033300716745004916357929132682069393398885779583538157894525380380568641926484850635438405406259237344405324336401844512117887015945672567682693759386458668212678097446690417266639525340906804167389911155704795347539245537679028810561861746946962908707432229420909762211136992294251480018281334938329581996462541867542878105774662012306714682717804674689409380271574784148527592176641108047386448189082054963949934188640673159716018681525527868604218645018404703936852194957323998517089462895620980840178193593480826511222005026964717747217826231603331757028061412619759994105034424624169161365972375249792707288493142206075449876278992487683409084445536768133284025686196902461316059522931004639079523530446701578140541994001791993819972979813719156908626057577174004410034795369702545867017264000218354294170718784647061581995805695930041618139799812061735018678457860192473727127916603129445112971142949209371381683186301760238727762732091064647252191620691807154316977817807504371076518237297982890151363188959609586164263734690003439235648185497513997891172951055301893383141067012934008987180610013595904565903836593832021079111045275761232884343969956507808718080652019377059323912228407652395954763329661792104272088612152425199606968792290688741974038214225411072731581453874600617758926618101971360145393099941307333614274518599256676803525506429230737664721475067797478473144174331319177304900407281478656793825039360679447588660000842902223167337990876275148925280052571841195636745329848105196999128702121400899916417701894726102674758564564773964190146447471630630918265723781633260430601667554240366010896732229846988620245112825490228111713762873872141260415838471532308799325834442014396003755724779678735687577163512579090446381166193765216840864798515560165667359696246008911809165437302955535983914722975365889573313765443680802661139580635723358038547072295102909422837137756541263195726005002757269827387319522405143185596868897131495649947865948941316865358375383570964428142727997998014148505915281141275884494960829652875440321845552718393067877193187410455298683079000674562511130588147610083265450191546465276917115708906474665471738351197611250060947576074262281092866182116139593574638812376627010597880719253577111885465532996846277853537138022838033601654136582618326669570488103108656139969277321833154569827205996207668375886276989820947236767100367425486956533963984798129742898171682142150465001216595836018095810100121407613358923573169317532882453624336458696155442047829974247615482289241704175649237446305383840671473053903043063248589151751997281102403086436925985645056132091623744042942807205394751445941057026843133138663306182700767179047940363811640973783530954067895820574494444498932293503468359834122714720907109097582727489684583443627904045965242179768938759564012758685298784225930533024376298360798641838579391049125780724484685185442203690004071899783235128541558398099856332436739367156514296960163725923057496124334593072766670230723554008995743820014989036055109518607283944536747496080257149308435275602576186697403279639716726481562999181320892544430966047791460780242295325706170675085760036329969957849656869844145926698569107446672693913261812259375798788053215566793529709564651281525189703599941429062976324697235999013173553961084733482082014143659625447145423873158919474332511809111271689390271059191215902086660504359699904738049007160160230128452103247187511993758923531881998966808654132047230694911459571031332731559747736864732744822876297766053795321875235260481049017549113966990629077655782480142231630679805001227838261888028140917084727198145978299881039070303426734023651974734437186832864682852026787603027326102850882248912088341104885253352217713917434556167322813695921366041688625402267072304072678093273539522146730970054595859273076828975822818344159459307376625509634411260030913751388418159441196895013234579732801823593726357269825851152120326697891353554080331153549011986811336447508033949535588951726573764598340985555861108810218482664679779195266566837520836216484236018331694592980359430270718789462117836170395309429369493435561435748570689207940339802822741276557990304734421156695425072238712959846246096575906262918613945024156038352519058875019212663026838331619386456069992339551790149215220373004201539952697763570008516133980677022393850526903873806409010125178754715178626248601097615254393917376902069894532739372587844056042577276217978216737827346627144958809928842265154435458061446181685500575772472926153382949476297111431826146936104530039122207572115409212460723719361026956140829484028591971392400356960232072888506218699218397860682147296785204718905955675908114359777649974946023439930713372224881852752172121737376702818679686669471309439706240270998071350139385930834541564903921737988865728462704509440497393197030871742675366844020696450493347085230912362147155406878182180468535536000956026956259909830087956707875379243528017903722333241432468425933071596535840245493328142752806674361059729921623675709800762157947715829597140103654876594346270407170079401878881837801111387344466848482798492020213609095291243184958721081385818976372897007087442451044675969283025469971254335967864056382091228602355548141295063092679770521550713572399805581358308431176430699905728299360321816364999353738030742828182616645639174765494895349516810360559777658064649660353633694126777353696896250743701919051885624620334586593637900539328504368139340108444351068724969790106834772934819830900124369023905810674726760405219275106242653775735710661669771665660367809671453337120170321187138321210489275132249561595008621462250140364441464909253939426813678422251934479873779032763822189724081102553773502193018387649280224340513639166656535082369447629522973751087917397322975203873081215231672665956932899711897145694144501023947287892380629073828801505858198866667437240643764400670586979723732547281692181137627665412279241936435812390891837732068276430394720933446593847339484318689349406720039768431951972029719510604086215557724967393196736840515177324555863705163162555080925845481560753567535613935657192558545385342326115636017219159735751464051671760180342017676708207107213517807159140308997504617592855801510795151450444255420819696811712994976112843851313994107843254966963237481865132706290552688562334961542107822906802096488483513266823260081378770205603103046246045862323120712654025189933366324104234437036570925384113431667162298297801379114217330315977559396562644379622954323066346035796721656751580829886993568341338495904195956965188311224909030688521766627024385997275068816323465821190623447759803755444818565379361896855714924149379892121235540834783667608405232042891808231484987738226278956248192069252544693616033654361361737029426916799461785505377893957218850215393569662093750686404663482976285713366053213489454374971774206111767329323648555976314981719094520021444487403238942983257502513000058275752578285347478237364391657770310953990116470578070166861679921986042615572387551976893708636854405087101946534880901347270371543154593516387762669874690161930112599322233821495230030850805607856122067560276559013835935247407165985464073491291228689240750284765418159746878650613184203314015465828578878755446857527447689248288205943139310848381860112102558546067098797267895246532183842268709875806465334097633918448482943045702648614330104934569611417027144805127579187654865761469560854675855881736747254101893001815393496892354563772734875881930411386435707715016702466528482544890320541003916444377696403326434538315178450016183119596644951226019402657388879653409344305384395110114151198422163878299942008880258168223606029934468734775515488032220354715616134707582092205813546583053014544589632948800517186353492681310710544232724285699893356590973404883597243172120941470010671750140069619360628088991835694125092389878540228015325843298389504640445797199523487135292461765637684686861295114734180527242765305797810563075745634183858723586586722787573575234810127158459216615453468221669249605466898754698242881461447873485067142142967264201023726221665332277947390500964215914436795222678047984854826302459339537070244241164285853897685495607863443023021921258330385454529724179199541439843402681293911573179941448564661034391773769804915707831563007702764287245375807406340475521095073879079045091052128344059449178612598047040743479870022916619500146580106404918753743008102552994968943686468000944603968569985614849524839808926259567745354276724240258060461301684465949166046426450226149349379766484803966075232031394948216923503554839934725547661455674659006544643680057401077252912288631959593204403416803353465863318167848328110886013553430940503122957482647414165829531688846788920855931697552503321946418766550134781106338862152150302813761400840650103187807333923348997265283556121048544015348425007721321685231670705412048384991905750188691421235496427241865358379516312488675653975571681890502427283208269736074638242506141912848622420947209040192519999905900552205503890895762567406570029119987310218673725341296485539557628988430565401936312936129446206788063139093855416297146637332566853550253782666852139495985731397773339487218862210923866398592203020172022402898925536136638113793098799371109378920821926537862715796639232688777099576136926432693221766884061344949941006924586874477975826807243340692884070565575202459286729244756942360930991389002613172217076622415330502138289073644213642554921522167679373429095956244382255805646533562010901712919283796180038445568868898002994795693976124438409976024573502694889527844135552038166417024794655887322158760068465034062944695826087481186675194768052476213869080414135305640756125692223818735685152677237739519021187405737375094198233355029895211130378083494841117112351481423162577331457535451949439566193710808630929567533119799614076415302599533504911569901342654022640497685214895016542531563410077082124876094191466117551463892122116271710695916832036166477246623298491011753514998506946007617375097303279113428117246744007931574512490425603003477012615075838951484293350979984425460513269873314770301221254570472670633795517304064295184303882885789802363255865493566930577269434339950621654078933401179096528639301775114695451444890520864789696751453153135866477846470835138673122735083456028338871990483331994377752955533847187169708024293836987149140052244342931416305601116442084958115401755917380726158050561494279682793321519011143320695503549821463489437987875065585981405464691383554150521398573261243863003145687181284912444270799122505636034031991228361523932669678567779704169336142511685388816474197093345009759327178236450349111743167713793314483654590792164467266818827157937798943409435982150689239414623930661367213342553496265505098755834246248632775257227788449970276510460462218472794970986110809255257500383810073619392410748472353771757792515774502026539339481673586364957320166293892910606162418530010913022531374387186826516881041827849365006396751343718877104653672345879708581017339762097866932243653799604109898712283854162147635670640743027904174000092370606589051458018004347470041852396097311842426948791326886143669190345763737262421278829482754810493911888484643297359266390924626075592833233824872331375010211153169010964431780877356083103928476472514418095326204984071301881355544011902810104018117255548410939513093524443862638382468677246247009674460570102605409511739675287013291269693466946159863764850196422766250511410882511331879918961750165565634862899844921985140111741680679233080386073207519832106609549497805002849733352839057668112983375887848435341831433617967178165250476016943088207459683995217082825368818169246678264641396500731464898809268298920778001644100009501336138220545997625369589028465530539173648379394473661279000562053080496146092019450962481898911254655793434735016875694985439671896340325879969006103516819632570665565501912395369981554647275900211907279731580302540473201835577040203225493641784393434629550996727292077932541477262124052770772534045800032335430490286718931264750521132105094930353055687025542266845001069080353112111239103881671359982079925880402094164213058924791971687416780631857793438924009435585778264259517370828749114076403537584417972837554027469654408624543972750509161011177797987280379137296176740524825456373735638392275035064072349197419116814933150907380717809079449743768741489931157026154284935657433365132818742989683413158960275528054290341666152724193906097097449157276078782548108147824126996187581791755900662853247121105639418494133405130535180778339480267032130092226607367427739172834999845230554817387992486088037706036121859407452817874819377388353141766858790014354876200860646339946625398402159790589781680321858310670677663617581220184800327662236566563469229362109073909125565076154955530799231597886750766892361473947026510039058876074437701482274951358961016092879833324729177089607133787722733130496853364645021507654979792493973400387949622326992251870654399719268167537371383304720161288064280496410320127002186449752308255515646721713563157465519518880003635799572573512968305581145994335188642064103198871339482825483003026971491083036793553727788482888720880831513647228466458273653640004417754210098342868801165504451459937481890661655771447298243443946486527636515855084201165685873199518405323576226631333609005454978113427912376276168685623163503151383304959859563170836312036572291411250922520743998190496593862904239786971258926434062874173372210837586393612752221481100569339059101401954339002011519484604498388602933155297185141284571216046646368243691898666957490441772801668374810135022656534784785442233430059873569529345753646239515395812182425389339013223179163738452503382858945520776262743395517521543884963479868161217583925399082182176790431750318686305135002088274379846107422426184641509869751182745485565980636273720810985479304602890600720852103250124411814414162525426754612191931316021983955435640750269441682750280724799297823446810114544183689655573683913845568138573733052022991706070100835922382591874496417042726731317806167271562529720926979917023341006186781154696935658080927939653370001767344200271734566077759817636775305282993078348342252650798710000491564287104060954189066812887008364419629925413684935539849788932333440918816258762868022904348605241590294991746974907403774276820692632128747779107439714246312921822732085244415631678292158507218663903086184424543847722470060674427700460210356249564609766543166351770618263628257877491290488721787673630401000756930931783044401730055095868975042950638667744232099591339217938374001229542562514720939444708514822175869633484051676078730489982764326460510151165008644139912150736332500497309956400766668875543896305945218473972700961642954651220388699343571376606858013818338048509313147149179760693562295495344195041052663104051978626066910228121188716363067171843426225634007620094552499259128341245496849570118896526065045965896127413372678426186760229348707184680122832526505353829186894227241846167215538245989251114099804937981469198942440672522664470729568430919610948919887840218386335722533050981061449628870938916159449808080051792041566018678048384715144983496884893644753621923472771572911352510211222911588343690486819044024347384174338759667990414812925823854853481984072121920452089580564143688709015346241778775466244403456905028700511463636362621161445677014179811339500637729716695545012654228604954891468496130574176204716182222796624117530179648777914981812582836675265345489044375399586908273334313560285982133745868008548320328603261106529559999633566983445501063130959229155580561918869760164410338838231756499830832042765431917095899597636471673205676754587803183164690904302455958426764146951278312324655548323928029152765647111327187157301917936824984737576561505916938359136724354019936550915130227516718062078822179045948139546751302720472564787647762094064004509656290678509076686605943492099006601058172753856987871297190875740564999190398280787565877772167586331304637600656179094419938989926242333635867962989170573441081767529905200852293182108339199932824917578186225089258588525829055073334922074459351701371702487949462776465699741746433404036311275392660362849424823731643380329991937507465040121787818750146675937672455968273247177106286836911792658909391789519400446046544558467762727772665835331855608284617031461907586190745385499682470905800849290701001359243826947774805875925136444028086519366820644651246295412075274522305484802364146274040263687306280164341632018405749890600225881156737043567002467058118896713317856679135252219492324912185202415912456475729614335478424225061753136670171238962048813144901226916406618995476470143218120503992175413042024544682763291949216811588070469377631191904233425920030380660011909822480206837896163937002628622969738913621905025748528760874273790295152970576175119178329304974972143409500263249073750088787994542250022545278804670854819851580917178957376283547522566523966559687956745077413920150668171663918592737389376167715364584768967989629279153899400811193365839285483816906612784982922203192833045537457831768354639359573606017522838022694880624639678313592322983890939223607638191919288018663129065350848120917099322124643557486852807557487610319745722551713098288702453336044802144655358808759443749650648000379174834063595532944283764045187124959948903495429993931781055875295206597109528195506173804325432822241155761641379588009847503016654678918042850644125114643573926989900329051773004598859546384259881654767873331168005780699016445693213609270954969234083495059354527013284505631778576135828538212371113345412093083759138085872846946120903588516026852520230554888594064685487173148295880398514103601295330059602022510671251527434317600062863008979906245508680342383018275690243968076743153660478115768334239165073799882856613331781383957470623130065768739193589082529141130877411219626339684347612931990899886798934749871604062431023653981846050472095394403581646367978660283803461941795610894545372195781434929725435036950984185502769996511446994729192168243895652516339345497192428055820907016211670793754562484814685126539692482414949744457662177702474107459267015787307897046083500925541142455574742171826394057632226758123904576440552006277754569945643667785453003357143238562550537640098100174538260364760285574591952186909200527474520701099802266754935917372242833301537127313042118688019901468319942540716911638732223801367720666226584883465414260242094394944124040929321714592499469958920999196905016639692692435657130169107924601897655531402800044674522865082348417144169981501175045512428279795484898104810384014138739003551781068646241959597626582552471453453779612315971949263732992298927407196073687346013211745000610099948196820451805977025965073273087554296847874225164725558133509085566877936458268531767474751800774606633576539457050516970229303295101768078391694603985383718507365386498573081922053116831638223144193310268785088020314314542640889298868276207976129847889461171735398659558537173151693379922452678610387259273764606094106168610715414418730921947068140513056803947243295082774869795303716504569601148970815216419712362126057897387584335717803033397597474578568254921832034387208798738179373074457279085755829494264923858698729074984721454493033191870487175607929363467109690867155258677962044385375707234432842627493221531996676416897689163785396022097097867162260485154103719299335303090087033233407207210019793334569289189983835991835691846041046374009261790864547664482761763228855827401728235913372847065265604568001821404063062074696874900345111794305282821609019283941576177957519164988447122969498276948721597151740742940067932624042735460259838136310630890572082030758409282383076187046973505924631421241099725819418414326064834724632369494411236770176278146180656060940847472123299365429431465763798649308706043481570070663148410370044529920030136368991853902500930471711666410911570732318561418579192335278474023172708247988873287378072981607168537119838682153363338240185565093874271556771771871151358668352755595348726464786934356259157174976614185250470842051492631751442903193952384645319865891425236716312968297106991916202489957609396645538719696382313632670101873562132881205182621067395586271481124481996236455538130518978395983939134452314599632353444561534108959212562935843145010437776975011004208183012836251877672247931288733021635319942509184404518242856740292992035530664395974981532951744307462239211306246129199195727127902014049138155918794182685116958103340674003332411129195621146868832987925552884947290159484963044723365552179776812451415326840762872757191905394146391731924018759176324603453143255808703052744557639790330362435087609103091015438041616306214150353298694366159020215801248620265492434911100556425218693395634162797007815125251904241701589500581942143803246899376080895606190169332764818213644578449793065265832916550877497894058714021604265837672497434576635173126476738946457729251001599805825086872606259527054441476372699694817073826732441850920805805804268301283481116795848166642351891055483963847142460760653315756878276998808270794678708402523666901712005541564005747031625886703216869390421370161552026713006399886387821106959161168074063488636918666339398414985164186629684304636262031873332469732675309116610627086946630225282561264377632912252533848051185746818627419871445437340296308038286271334097836010282627504673200737809972366589140487952215743205693594148678049808864046942591316628408645692145745348790840215017279064823481102111072619047716467276777726717737546107791301402836917301940809607885926045650875487454459047658851404925999339616140977174287818231723048211914272387757870974117013088523172185340438749213792017588486615369355414976438524048991924136004400045928855736970458776153755263294078923280874555498524739432403131876425451342049694223985362879863437076698822868023450910580032617049417609622997855007745055204870408132616928975258962204109501568674580359339771092912253691770222323155592293501116195013974043339845872696396812458616858237521086749659281456737716942646673128356448067278093553770298687997747497639164493126601258446793812215067461414010501220408210554943146087493468471169067950465904238065744338433829820731825364266914229890577119038977562703337284806671773340443653549705638355856286296173988654020106680823331975666362749320979586113967083001612474670211699704098650290238877603542203330890007006519879445038197816604484455337024558592427339193429495417354183990885656707932335580641461953605251203566622529502986912326422656789690776631167321377640918890331841376889060627797378278399306693347613616353860640135595117695090679342730622329992594965069967448665148801887104587245001921616936594848822837964174367222888660042858558230952996323898471623411782197715589412821560641493729199215101175106926857403830361615019145482824545964201978370675138595095304624462314308472902817571423531514276347551331393601596551878930903739525239888964971662092025585485444957897341165565891559455280275567748880574018180857017798292625527456797041711340608999366009086406252085990205169808227156686074295970874247734272504807260326152705761982371434027984535306932246647280198228903402007345991559568369079043090472841826993739134819680200215323768868696249548087942998311326054143070919707951044460128698352388295330433839893410767828816085609099555036596817194428197991565700275462216591524262899003491033326204830787419845520246564036675570785805827340352417164695573906954578019436119366103625970535826381444120940130479252809949850028666744455863736953978275761379750945907327328508094679223378953778859791624009520738025155262898821853795126524195845084785132503842749339090412622559478203245057729897362137033088211944468629156575718253095540705504705504723935976720290150338998798113611837978058782646723200086149594260076964651592843114840172320431015303891753016208896377891826057543651742118190414128632601813482996688971161082579188628470796857347123009774056195890528103568532832865675122049857606973618442098914936407114876472930176484645537117003333295623114801760216785162030698772954831054662724682606859697454168394612486034139110136688881333962745473555367513857949329921647351640521422795982603525262192739549239739303818649255910112234511603268147731309336498281422461194046110066799117523159032234621887042746200238733271932781329030818752260586943559112662486548877152922106413604734404905783884628838237922180897200442720266183632921257266466834032058246724739899923713904116434426152141922549406704068575243849057941913058850414595733737806864409810139369488394858756557456483678665794148307424444124757031261294437126900336051061028061859974708302765708749543898683108317971951046620813907676427352067125651100157557802978091078205402570575143028482780571772839506288127136433723893465942371099320981586383684969137931342325375289646695490087415960238095052292494982117282521959582423717666981448329678161900417846139848242731090141032531308005599125411705993593778675606122699051716097009622546027977032443312983095533659304086967880774628123249449223286141188515488060024995714499429074796423952004360058439831555358287170574734779311799619764193686360086922843922739413143729762385862486276680448564384089131287187249266684632867999959028179310547622994405537903962947223346123264760960832274526988967570445184731042608036342910991523225168741969633081308478392631959595129205028056478313479170742212871750911292365992787471717377941068023891716137188487580004550486448082633297198707318950712469573445162502256067342324009636704189450680782224110115338755564290156792044402406719517571259639835668935903108410346289376831846686981140779619967230648566946819863651251772275724382075989625627140935949080986001264881410882516888159768738110718194523857845713050189387926580728153911256816301884906891824445017683353581092426611084238972017185376949513768748884690915644296172317065324861661420634814738024972060273266463229354107460322110104558879295025275567508781267507775027192082802141998940216049069227778411856219117608812878549306611834134673660580677136875500876317551254091333808837673226394393379664551001580575469100187604881165415474148074027073969310172948533618911796460923131672104573896356945717674154139118190241307547420431425031167154832916316350716104143598763855951480295642758063424785577841227440645332214677730548858345628103537832855096170207987195112084209187687245680206364207017533875119998600948983290953231678740995307634602642260497204688265624761177161044140777771142564275119156939070879128947083810568887596448759441397656968738482798635798241805718168561866691542362291419928443192858288758715192428102934734434332722379702222909941319063210778812845056517936389003326761317179178321249485682768278699674619549182046920777571350169540451345233235553563259726302969226985671193845615335333523397441702369530562971591333846940039209613119766242437419946061820208278306669358426757315320723647630729768921000120701614512849674427968091513998305518261284643244180137419478404694573050931711959864624735382648144454029671559808197292545366260262844251896795131522992316148993048633584665847968105138834952316155045405124215688098935312119580998254978115596317093846771851410607339288566882064730573098971913640979393372113544706507467445019495296502880664339255774775233891050651298948505548214736164104931694849063814177680973583830903139213622436078544223818806516895567876226963806269536585102049911038756702703935686824049141044239700783216399403913400473730338526441635493857356335710395828090374660591393033241706409646038465568488034258559276456646885877821941403429944133632813571489503598836996140674348190828813809562960261028541895600107158557804349005282462519543555738332332131424246908895922813905581750381552139416838755545049816875945083408001466910207284387793963324156864222879170607574364420356712134780549623154859497639996262742115332905796396709812312073035452772837704738965769790286912322910646965937632492160126560255357803979862629917974365705605704649871077229408951788915484443048437341359648772717686881849690003982127901475078030398757078809362784840260672906278216817045001681587317551047657739083645896428320893373798294557229637257821903826640673311050371678486773486531396606017495208507995465758477555209953106842033557876490843816384987144527025198203702007596530182183236287912810191766662955846128182042081096861209051688190704337538908550349386770954432096834593804846607672353232677180030112713342659820471544853878776103728319117854927470354829521325144969555863215366232674446486404611487636993129076983742855660592014130829126982800814851308408100440963232674319012592132197555968517494591806934492408704961581604574933306597515360659013884159621324513519114811455623320163319491960587441294791783868456347504419065172481152219683707211519322343317053407334272475388194250335633851721058110694525216231252046770146972272206730679754572721331692435630976247498202050815036078213592461011173066664305212200252255708649631242397297663628254047306114098496927965407896798960482373032327236118873454104206778831164424170683467613722016338947541476235683300223922348773435245889132740027878856689361394558692039569779714226695359650025330071861078460075592771114866802812812415354501701450957575633133159876780938525444192469455521987926991463018461769839132377116592135709657784385022563475405756213758445525131969337800231804007746257983534137525946752004720499156120720116096197694238658255446442887945798643350542502743591202588914267234343671384109151968560898432257113438464982332956211486861895391442943639796916853621553950573377600110836688566731929711065404755861443944611029296824917736918026876939630323005163804384400845981140080865625861469022648952187790821245556601421303936790846685295090517322926578439389090166863990571332904362971291267377080451167578215470329150238012067855716763488475901586076048864529538491564266234845665526297828122973180815098971389621613683967788382523992113075453478514555687363713909463262563880902018634680068023284483668049136614302404345582598352452149509275726442231547575403222914678821708305450302933362309331358180487685108661023612282198382211576471682331549068737729154448233208287314092720190519523549756494618438658551686924807922381634515637568785046232649751517077802531903869497270450627429785207617730123271624724188189087766527233609545857571369852597190309376276481860987815188850015053862144858534134968557943275743249723874736202258566041434829394087944728618450481057315623155204231402832160296422272840996030240144285057461987148131554509958821991636836475195365276170126551777726509424089878128927610512745626363921112666822249944750034291503511725772531522726199434752264048401759116348253517983999775909200045069914975571317757857122460265827645394597031642340485755621401445847348751115191609307446303382203608846027672257212525785467822641758120584916571182507516827128945420138244587703526819973991412619878363582474129221322104010644387494907091066361784112727016098627758643271488039144409934984302857746237514976405170497215231518152155933407419956593516072290242988435257115802091234323909164089111482932473357979443677295723631753485643708490129182960516632664297607356429758314911696238740709427867969458296034427418928735538991952655725816988615912954483422401289345078274996184008649144916701432812330081407937439911195690148867714736549744503587848516022737387682135814621194533215709145306352654586952957167395959002689015101517571554058979077170456842730318186868978634105569374834560735720315904875203725880789970324256418548220749484539297519632652714717077822841959299392989106951712648437081436609352414969020268373222553696114748935838430965691700930660761244592173880681314606626117195055141421914507752427209749005411239295865140218258819485848687890144623243594813027618101451172881014471761849904477073360135518522491758601163814863820480562435347573271558251788106334850489683843714223121300201202139875591100567477376685517119598960023098808984636344749218962478182256806370716182477901533662047735419996694407162689543108940389148422193453898808164878901902937565933734145783270443697809787705144695885314157177013954573638081528300717665503642529785805893294006198004625469512943270251220627094002632291417122735468042085901938048858963919660388041550107044749723909164618209889995747647447560306029257680681053712566064375461904116240349380156825496950272888875836276965506517979337560574574567539387817538517386681322814605279645668346341205038795100813123178787456040231205228314775499980120956790684817116662885720644022649382603605675657308753481470434799140145743853124051484665851422586343380554163241708242346503197448586908453706757337392075459777969104937218814855034797908335344975779723861110738087240784685838281071758981484288314103851770435232328357393151357099884061127830943712419144097708358925238157063246680156091178588825291069870432185666208857329442054471948779636912239017783113641386346037863982260577899426030331736621699448787562591902689052048807653965687908287950121393425727177648849065618873254179443727787090472544181448007253620266951189376419948619092176069183801466745885072868494357277027787616458674721974551803579416341864694585278342444036084588402959921802724253086867486150831733059873631611131559022092240032100989234148943983283977845251174612315029461461325156287773622941206466648029609762031549885427664325533184883822921207490790825916416032147876804342800419124636162611937794875964069429257865320973270169440571895685817672861814027777058854326361279179682694694585918326773933448471885164148410907173171438746963262760608437101835579884015663715929350705465577695296033224203274916994467109379311083597415162794506931212639268450717928851210504872503088138028402584283729790582283684311975184876108940914488783744672050958303317922274437009442978682140816998230357690947362797983493684181824551198478479203265926271168863168189848430284280696413992354274618965920714091679533380499448834137898558835630423860253516539997995334210639440391752587022534617614893367333107541672140891029819578882258345339134514344889957674273766326420970065170780693894574914244256318526185948147511311884028797727647727745168816762839162696432603272893780510423553516271324894764538344937305431289803101012089208541878265148466550988941589795656991765860457658736305987212029221008077614069395970587442948635469251589731470105040672245672953356053458281128583346999325558748453407730859361698337672678642155078862982410931985949660648269173878310137721799088684308363486716054813866259796069387294956550296618282485671427066571810284956184893381782504250135212385054626185314786292388365706211097043338180544150700628395201516116000092934322744356655651378390150740100807329643480115769774006853035608337893206168507831949962293092418914506030548180516808297300552840128912032684452576916056911364744320252058024383914267622705343036901987313696333052575342958401168150590860280420440757350714509971158406960177865765192098741256895315298998685208491367587182155737036508285431454382098185575916415940205153824738592497319451906719951854841831346688556072779822051597939069996312338262877834942615829226556241932996469723133853635339233192383501863317011401709720849819571199388647684566357730094537361663749098502446460850959370116745481783016106429190322944554438326886900850969976086798981874430466148076131096043473368594690645645013418413396594227179618352259402405707593387810307055681280797269022315635267836798788900610076547205977071457347306325419863891019014917962223239226747508592437792454241451276132236454666607474001581558939171172875498229969141287300418919572550819681833469270031455448568346144950114722999086629394781409238474782816446099885648685303998970092148706114195671519634265634825384894807028023147501233039466084601531016155398225565531153642978231471294825174699329873824488142544532413623646899774441736410080504657510982310871243273321296682698529818929020618103795152396391900619569700576852312735303124359148778852634766421865454515411578677576114445779227379759448092458481515752701780112221775686456377893945953965809757188672078485606223579117443505608957326192251442566788818755526070104902475454829149215782884786454465254154596824306499763407282222506261233892460923604854428916205584061028639087650271269674989369901541208549633421957244430966633422156811704067638235980369420316122280989040110027940315217916254892902076688300361598800068562432120210807170197996141137087565268893110394044737412188925770513033237523940376196899373621559796335208777909028014356743354856281135052820142325045846823423181772469011033510641434226002486819500436264069536452580650303287241213272538326531813641856572063142758561355280777180881080604059863401638777130811406595622277641974043621649689194461120456730952501037673643530308433258528717564580059829675688917475465918494354321077066995166664656712113024528370198498233758398773143854223292197366465045739836323932009170547301549824037625711940497404415880122368866081542209764282964836606750065050339352994083590606844986368381071562285032173809742046633923379194649164937478696478977489830797513947942319338761908518238929177424604171906129994485479887181640760208688824222812439619387264122050800981634847296722117653452854257645634305511075905496753726335215871815788440155228660671007897445213615756622626216681544601006912637292477608065931086998691004442367825662533753765948346616325310012779585674430511133092096571873716299360180543187131618207850146706066527617895385053453406768529636072067006984424363892542275291479720051651155024895137102642207476622504404602068863533614762736415302415114555734679877551980919398569602520383165844904934377831414504853614754410440703709991170418882959075789414552252529999188433178379874906102787190015628079224656750279714701573659007776034944615478101908037336122570983786101573527412429973096977776089240435187607166223113115133269424544884875946369936275748602905010760552060465048921990247587840966875916856211119731863992830541499967131866029092216032448560052217679993538403419473505282490552284470794966516808767043794615706123475388964181544573472569755443152842120721526011033244684577174548610286407566295001462420749838353996640857316253840396112198001340630423087899098138898467479869039757342671769485062415722017461712831613110870401202103306462565747984711852750732615410883011757139665299287733212898500603008853013049386767343511530760009689214596139676361600441525710950746706702643816483683961211077781111631525392378932753803681052123530050171473918007639751620376180768217827489609791220445898387005055652908065529442616248205861880703715324657136000165722937806194034836222560040725820396458597920159028060890106101570997550973616200403304325506518717349328705554604816231934724249128175286195117473612968821830321216980843783225468250689016277048580232280937810882582050353491063961349413653264136939369448358944847193811011994336261935074036602203503833348608328876614387930603189365218626937225004482411340527990587818076244895169520004814989770210565278296638643255450460490033944914424856827065310681606409560627434492476385180251296687403520057549844139919329258170511759418158784804546008405973214110167732537695402552522170870757663452172853525757614339822405089130127504284538536390128903328818404964175835567586218613891164693629659003639293186835313437313381797579785599546849374925350330721834914413669797822705391538948874209885934768630021148681461263318211661872598593437329140505205588187165143357292845699426828692358076447901436379050155678115637058890121757939532289017525397499190876199217299470192401801307265995707269394341836468710833223525794216940896748775843447859567430035594605945823526713742423064780227165591104612066633499143479985811239404855913862655239309521985163878454101557097241101409918195357602287628142192759607113090494668865138411482883172979728602246158065323490323039850054936810397021283590231711245105228559796614521532331986910212206852933258863336495362565647500393516701755331648231011339499856535462174611036598060947495127730233493318411444498567216209375542928280309946972019476253655459994647893951689149092569436444694132487531320748398900954956023942474361975106248275573994921320166095993525379255898808491808649836496190789541001465571500547582493929503748726366197146874062453615330974922851140894700588525769099183642519104732796936401361825756621788300663025574683310338411813593537304208687804033721151881138561792329279927076634316346574967080645423891930271079439605502909526773413007914799461167458909659953684251455878984017508095207323774202866961699781000970287616204454672767757404216048176662301299790558581772443216468618641262285085169929138286370359563761452915634960115478197878494579984075550596337927786295183302182026825264185134617769317679065974441826666165323963152175782831872791438057909675022111288545147830709704409067241646859959429596488959087044252731710689954818048937243222571945735757623108421484272828541909367988033157752091022612448826260913441051969738732400698203258432243129675103453171740543765720820208420399745974059569613371125188830770539171680000174820878748539871177598533957624594597097016580705361024716649611446635136313568630321197632437518195152914153424958712076800816834158254559002563943916284253878973639095625528919837006984367183455407859648090132350569816785298980135346050276237774686604656646750782169192345401555616641173850987568622570185156296926140848506735040361730799054362704298765750862124215913736938898245328918013838609538093721656670256548832724067739801769489384873647704964856525393322564977363215616467856202945621626643718785149611499686756828819896564148922243384343071595401661590333822316366076042591727036558150254647781260427191069917394352301892697975573598747337078211003588448016271200718674316658691162818978262949101558872695592170323536573770015443357049011054075270949551682470417665344851934468630943063370155137240950957111878635279884275825757117013692114221993447046159944571352129877891920630904665735800859041985866636430899865708604060866978900713199326463579117232417992269510078965386146481528825037002232150360462869781234583429734138710381851195733059720564667042817013384186738124373825614288151681316382403569337523771323964906368738990111876918219251690741666108128929847502223601291467395416329483144318776235851001090864660648659263222859937002819687652336135883944756815809739957515034879223096510082995890744535367525238285169517048765409136967872627648428729810979875276820535992394556732087314361676288113877875959631003061637548113753490344505530338102064083328020637216489553229774750124739419730511868220639668846699453604132788160547129647802612299913858764597509349002338988080921444431731384815311437896073797008367472815968364044394412743505743339548415427192563595800033976798707244984991598636424733342654783970018944378164105391111543885187138188148495343609598114583603900223002264775958691442540465974026174923413712445743283459840619207417082788982941166396997907101125062339729781546853732482804715736324520184924816503396946284228752488510552901105376712490106293313793038124284892866766922554536845169531930762364946268486445365831152584539067659880595323028938829709905490267107080525807371883250290305664770882966805066033936934354013899229180363605012326531798899330450326689017028908620664120924562179785993896049217061469487940536686002044148433934065562890814371719808908483330485681381698355614473306765043308415334717422178472551714353615672072373392368689112134923342540133916661145700579447432864325642246011011285611307463524554484970369561158245941814745297879544865485109243379677912249919671957691109704893495047109217878416416836540399041304703860481719970970670473934529625220379025061024164622899438705214383274558954716958009692635629087836488219682166490111028196465177950798048366187342371285967258391432175319803081169482903704490844185377799659880564402809872981423071075916889550647843229339022380756888678742533318575654678542010514080566000130773813819413169189620586655950519190376332568711670846569870964794538580026309994453984661178802625640183641243679540794886240511422112893185557476489663616597272212025395673246659811426807874461835290985033706719122976053800416604178866872399696363672816498115103382943912395221279419414374255856698479314618080960948530077446115678006109581383947549497107350063923102496605254415992620781610832985664884563117105247642173214075321117700955763249801467371957340162816378612310916593579941917153788876002306460003858212513349825163170599726293497149532809945279796336822173815587011870917391577603022385301729124965816999699916408136788647325925870825528881797311554860599663744053902203142619429078443697672856584942090914190644765110459524285067763388255135820098493713677879907148771375401434028022716483827300648977750975968458717306814800055212667826648107358828430785539350289214411932585704025804415650291030020362185061676963395960591239269044924369567989137956037018985084033189575864509580321192227082773441784486571702104479647630772862746497459665819477672894120132742595904609488203546611267670065203948198655877351387782103085989074971360907173814128023934128643678665753804415625724428625447413309301015208035662267757823106639875783718219341922112025516703037253006222012223727888322584858342183279400499310887513964752412386702211233315058209277330116551633894424931798911775973861150071337887035881665519522250730163663720728372493890993073985878989126832991544761330974044189113168059531676472890502276557346214757215360006850710468460339787979060629747087158402345172498483468111230590519836913349080468779914759599787270446358447985819600907211847908597520127154257702472976008455714366255837186054022898764550882130808492494914558397218526121301240861449254309591287531804634497620453714837225859817124099280727777836401955393277215957341039555025149185703744173954194705014243674495956133497048980442096039958255195894224612089463285175502006995586776497909537639856743775756244472485005882657168264253749678767996115201570145322533253623590548776274306331830367290101433888099033277058533918303016063938470306961116780988401567357715840406996401884802032713623348379073110105313177852031468380700179386834649218815542999802793665030658079251439172100703269998100591832927438271289782800110164066184693140216144410696315859515852093702939025916255234178392982502167439183897611694515944475822957488622288541439156871583792008989696463186690047345332829990103301853161370582158592767401454768416444130527567641334852727641856955100565277284469928218126197282232922248432941494155865839573087310200042360711902951731350780595824908191991816983742220006367565705700130291453860890055901262554524452795844471040252906998171144867258339362679243304375080799527881099785825256554382903344008187449626014394018496624184827239903753346766228265596920237365713055748587051694918561604463347105798455130281880262602933097354989095425137888311482450667842235250728540796352594874076021649993587020622849819836474892606579260988947151985243254014236367949188319288142292119085743935164282589235564086469888094506318117145593666961770748305905061460161504661914669521927483563723039024337101687016677510955554512371106428661906564676282861270745274402616195445487807237628835689850819030844834155161383156119133449280046151815372159181638552115113050093467385058696101331405319724194765918025212767756218616448257420996835928170505009121781257439254315515439855884134398391313837345154460519073413969609524526098352132193223806604241904313843142788476529736313410260061862369676782645705172831161688094953896089635892462096675028389186536540882511958574802545344611483218838276365636073099032912707457416445557689570215982711288183833025022036459102836578735404017329949382327238345781768613090949193776956978696066257547362953680354054163080792936494533950463461183356091835224414052677577181105085211031255259880559428452581228295918633568135928976918200777900537717290157869564411287108167773762285695634939823821824786148022148692186624810993810272881257666785586974086136796683299042878919675018969906669426431298232194844669559520498482103121346485302769683605427549129852840201705333126247169016252141285140080584198567864297670061041593946139893560217458773691354808916350575763111434504389347590860384511902914820940420667467771985318010822861787905358944544444010405378983654811138081013664014849915048150497835930093516662319309720042115450789551621145381058498756093906992744154485975674846679333690983004309384244817427392322614374436575123965384976092255339028986170899248906708692853396670571284518811344430600008759358341555041161590452209871519745816231833604378637873145427695255052751354455853386048931157154941944691628397524792192314960502763952506956183061699660848186958216649014340833401113403745114970676602474512700321310114147643379873303920480244128011027538710955699389080291867480144811042988677483172296382766023592570619746022843493240052813421976756857266756805644251485963505659432234751537403319845060781281982227057080126456326262037710592748302222349881332931878944051498433396182850643208584136611122863518907593321216519023986785485639853010577200297999869028787165257793943755939187945001990170368958406891304157070421632213515675786970941307133678532598663856360979354754593238933550482209969278231106589116693265227735298112720337481604392857113088751721214798171023342611539366019052988769103731349248105593827636479294034122324905321062715691135386897140061088872215071757063095816266746663299113639602969295225885938695915112371711458481715164453085206950857022981372506394644962137026736659207088585450820180494287888446956804030509855271205019197347673824583511071504422198735743745704134193439558405598803117403155030700829401959308792164534094678404904219990181972868069632472797965867137174572820864497944569765112561935926321648402388470921201003388060663348013677435923655025909467054818679681448180371762028093537803179068834472226328397640141697069540055201514193965361631369431793988468612564207094056496184644431658739385756116944586392248297470476062243908356078569912655012039426834722424939329288411795301250363234046115717511565929344846037906499811834110268167047592929623979272497375981371628760437004979936708909765068626614050772727363322131355052816250770918382670933642473305459069444397881430536992436245748733292090635828587910707712721480356855337890153900508544893021982493016868697231585375283198248829217095353210916956714638172907323377730784388250392355332218657226283905875797449686501991772384568344391994888711409569465925675621620011469268323973756048557886069098990133064981080073247193958755345321818407445205728561885067257843616893959518453790480227062772699547770953955265066181175019488641714303709598698251399731242057397010846952871483548720942825379491994142862318701519464977397037602415802764476447034837159407270259290970090977523433239608632383485641455794835048801729029091706397892959275899026160826365566068979123060894495337994458656451149767587843788017950379114133362663198322609934656411815353184325302060849379563918197012257316556554385791514885535545386006571102052943073880907077277715715443845150721201095012393762285801091181666336887131043422080185805063561027870364896615141939977270983935154931353529343239600063153612102347412817646021042468920336349376524250027143714574531188434020816232648270073444064975015901328950081338509245722146905054896428027887015990275010285418223744933460503642159213959502417280666896345789625704410452314744272110338367109392056016034438126268566208594808674478264895247515827346029455753457022918294634561828897263312587050046129544358798058766742135685367479015900955344023945389199393752457611827313565533341364279969398603507865793420317340252636858881148746573026273240015762525250929055142405816809334748637616558992057772577466713038021023748567322458316019978409956487346818229405890757089668280772897075744813114078284031733332198447262832779722871415011589759618917563897618156027860103279301532570175527381781676314881166884815389167975981864325297527133657630001087363459781610044802660437592538888252879402656607518173495071046774545621242481461252902753461008052082660727430941482584783017904416121412060482358067531535470233154091683109525481888249821099132097793967928427161223592825276111082556756694280028070882007239286463806697830594672294001047990853596524538233876941222543363405568992004175457116694022724194067001169171608090489632406328264162456121086740605793309412756315026885671821286571282888862981495342153908774018256879512880412248250599524567446340447033930990421627070946511992749813002409961663813881390800981960624534194857517073229155045022279992447082401551381874060383116449597916362108684421409095908025639376867425482144984281423548036990473422169459632381175387260690074274626540516846301198808659512748932125477431386408735523827447274275183161439995729254122837373894378212173453219046878695986903673774157875749451529184173327555837749810322766775058785737284293431370787919553777363920137794886307942097363372696795944147879675437986791641090449614658627067563083456306715395086564107156522452119736594787529873963288088874396841018788746178173525505105291414694635819610644438769614956443625292817561259718561772235842132497839315284011811676726493217828989195125589879350339554841442893216255719830282608758621896514499172233820775334209416391984398201179585689976155913010697954245598444953320759071242731776662032283290094095896791404834120718450276106799940249842984062912262293368549384804966378660814953261870163396062214763291946468012058174992771534769693197141661928234683750804887416323266533073189166379572261529469813229442480499609813082640613741527365960087563925144184186859140899655445662894764993572550044361615102826816880481860490429944766971934397871961354170674552321757730229645070880548319995416555252688114798611233059606378933752387843468351292569948406003254757079699879433762593526463783327428411381390872911138514305078898827076975517322566055025604685964832828150567949147564030942175870986501110666211828194660825327029769464529010464983171278502617436658909937410264817167191991133789564253652221869155606898295303205642685242754689383144391749360945356017728921502579515615059475854083299343624718110131771778214007062909118630877920619681060230153861451949584591486267487989649987816520496484470997925573812096340191047816236085469362813080898627133958417184887818631167331650621516774594825238691731665698632208273481003075712659941655233989058744876661850615843591104611437829309319367801978891278164337539987257515255024505939304395885491176386140988468352724695328547635468430926928833365536564759666703292891875257674304893623402248023029927656774195749718801190064359761525902832015480735288234401601550964736708905704060921626131319169624817602042555189833504895667904494889509905170733930466757784761859876895806160948345966284886868809331739468144568741472157463858415709008618267807534700813999092232919604761507639042704513157412368467649373283952063874340882106214095708285179577413527052187899110870334777079420421353418235960172287549095434153761435493558850263376212612171936093268236949570407700420356222791514889334388485317989118865758686423042469844907740328001891098540167679860087040751709362958016645694050782372620747268967364060510660454633052037629356689557832790143360331889630837317401850024057370811275390535300971153874887877398232324091725761407481496873623709647281143414218511000781822370229129092850696570084706247090024375435424814560913512070534693115350694171445245797439733741922249286781650374744817135851024676484278283031030481989598662891877791508081232419439162211962305746396759408570349654918747616436566648747762009213795686437067061749694088520257983776948058458356282713323971150347169844185216125759861738883533577675268463219882028759866189066139531738633233853557887481644563765814743840586247970270166790392913228430444562886421255675283744468658943118301688777527031895648588342001628843425102905364925056090195999191130083228234501142851375857508168994610508274377949159421664814493915701726357374155496517487047568895879371087874548247082563465982774599086469799864066489930604239740276049379714700830947668057624394674657616794190957292271045839372237187124263604918601280071286591558191739732566452938056248877457141857942823871986313229971984506640701247669281820331687149106204280275358572889359663783272363954213650302618267772453721453489071710976655672115953459977228132563049307288348183735848314458224653585640769761288147469172340584385831165503465571225521052290839398925332708154331382830577873451226394964079306410047922153512307650243617754501691071145602595513190740091626027922067312520544835006570812617203340803784264584060086684996302786819438625353421762809746635965075564304469425773725328488854279765085340709046687572825337667429144239498664532095866777673990150645846221784400736022847834173613669825758510632044813670868128425000316734245425966104282286434592876769776486250761369542143517095123058250527614018133288313846190654342273652720780471324071440495152789938292559721221913052798666764137818483403814596450752827104610717857078505744918683967695215835340040272775695408613070849254158982011048810430821193443695896109249857938748336699967273929077805348505187175278143158067041209218182932941577071909796876449888475095633384748554174307807758151744247130474591985695025665018741344946789894636991436016599915110092598898293013952570142272591569008075041434886796420303002455557531842662436027182096539795039552544531959215477102139839818563138786602184382980778197735845778725079992413504930783452796442501442110880156896578534037870900977418649428410022554583023690227212356353144682662773053909815087868537935198373446527464042223623949808066792958322548975630142708012683967822248503350102326189505466355000017360700274850443812154127726995592578526371896571333666755067942233430033905202048306135404835271211681896539204228139744213272670773448512284527693284627488049524782381885865565764727112476780514260096580529571633974525081681957757573181213290976720080464412588904403147478931869463653297075232630003542104371725229804456499071621271019892980089889260211031279263066837114541599141146818320305168736530658587592731828832642435051905462219391402805740663013777266996638068696933292013173328942094768999345290612305905721527285412865274461466346634617075582151066007305939837906228509811451750452006158252596068169983961323227533761764040513735433209268822525899679854830485829777552150241086687570013583476331356778421249343718732871914144446852246605597042559683857462266566590134694461850493083615546167522724815307120146131102741413398649412860158938412299434751663949251632523183958094889419025268927421464993187140397942091837579094832010504896857171461514213283682292957089656615169845387797695501287277206027405912701552404531865132891963721455700257988670851082097082313864941562359401370528027334658431663106294414863946947311577227661490487927036032946163333166194229173140829843216619487524871929998934866684572455259652296397866164444259004062192693296716786699313390846661910080674796988353192464477964672680125701693595347660462411643081871138936860440506912908612431287006130541092710708987243831538193921793716255726442313669713273475221070098473660360063043728603743421166733060413847875358405589198616044614376567495134525199764738840219117668068355158992387682030223034285881271144318566166994016117771681787867959376479529411414456477397174728848262622680847072192048325617062141041175244786584845398511001666646608541421297128849855984655867967488682537682590594505611130500539591658009204451532841742878236988991881617101840868221840306237563052552185928050719675873427216351034989502105926027546974007384379505190948118162960844528448905915894046596635836906272398576674510922919991589233749837652400310109009189279913385323551361855750473283895725178847785260545452133776274737946678618265726990958461492580978239901022374882710555505331601582762596537174538313555181247581196117673291378246813719255165781497038135431009199637069175610015754800333700903785597937836633256251359948143698028290325127658454878054675940465456233593760412700323402809035998218053101116187975250114255853131592645039491742492427618269315325585925308933302717259140269893915028370670745592834539076924420959537380756502737695643245079656527685401445647984122389650222543101797725899782938239938394500396745187222688544784306805968048964780430390518527242818430017087915694439711925237517860767602454228222533639353451329489549380996057503790726900655280105559807024855667302911006068144486245349320836561310366584515690703213148861609916854426293263796005377960638542707052365222084760655582376229008781963467270655054762030237967252999483334240806789414329581882794262986951154765828336627932356822409329493899179123602283590529254315451296875828349512134710049332303288837261010922715117994524920267542229186638919072103767256229669514402986490520128768816295045430359750825638816932783229347415554569741576933115730866892881076045956956613871629244544985175689718044133021782567954855493729045629514749998722084603077758909154904743372891431305933218761612872317956765716390481196008335963793359880874990906231899905917956853523387334910237552231663386287063419687126497436996987163706276302681890716109327808520131924634940961345143432658560487305648925912059496336740577066360901024615816220733261532469563285002274038164239486013672625105249162048270637138883487327507463455289513060634303512577745662418715646224371616532310181904048407965570300045713937698316739783454727308089953575527980525210943291464504571534090824059978138344228013337575280805552452449889311854554784300299286081469899000671905195948737595125372650166490126726515596210234509756276058406073150264712551931720961540678446482402164212858012844262874619501038302863054366590297738988430520817627748266249267986177881940935414943296665424703034438277942653368268862096893367808138460296988797812251204296533883699461774881090339140828839289325514303070497393206440775214781995588965969042281476008774565108310433850969226094945110817741097604929561261699521562666547234797257816789442835409914247592032785691988176980479112061658827088431210829941229639115586637082878714892669724523669961656135876925685239432560964171403832825355407799239039050029060983089293875739199394106045491524932278535105327306208017152745983754524934386757239047948239140645425170461415823515770235316121605400445319775314145862317524300339807567780554229542201633871927297009683219122989851556067207690633860647939269886432956665289880427291222936700722877143227704992609710215512799381689124575191607783326444529842060472491544726677189108373695626588327229109479987626664320754212217221575268301600995074809282138388943887380899654587259477284450574320565089790347830319674603377329107676031264091094987173347470393776155085349381735158795579377046244520205293536312835488302153142606093717967711502029882401255843878301869759227839132847441419257128243991782572876158399295411293634230943031537974890591422750277865169419421561510322862317924961312885774155112236858207996367898845405204531988685454304806865375505755583092158814923698512216027378283801745494915150438385440004213562808852742297570021678734172228431271472820279758440156903565297833482249686947095483106359805070343316687346101976534113664523509432472126202809823367809115909729043980032686586368454514813089568267619234454564924344604818410071243777612694169992614154249729635365024897623496428204671745607575287891102707907987030557134168737315621703579820829876461608990056567839472136493849890638421987227090046776536773275983105101210038244245555025084544452809656790216981173629319985326452542413856343927274486224242632497343170014406894860748144050996336133812110843243918169123867519641230859947599014848213099809597584018779770205645250160852366723633435926847096697874000600006180319551607076839207126058023127035324676089187288981838176932623207244969036186481930432814253514609855571707272106050558796127858835527885072381352086415898394860857239292165490714871201177030089457885224170925741122227221778632947696371200253390278263833303220724160417805145823928307863330154500832431727400687795852071364208128320471781537460940852262264725529759159573474921127090203109336967876113274525531672478571328070263623973969146547609192473122149569296035431079508277673530330128179021951858954554139878585487008004893582658627854366645870299515413767636712662068861506590800682783634612188748101521717982645270732669948273610295528981224482153411107426334765664885239094958139020770787329767318952768027451328552626323042768164464478054201351875546679672645865368251027906735885770502010259873157096691433192635636568370712605987252502152216821665772969161889808349805994358897768130701092841848209659414489923601337698425729551212266551372594785191995115603020764560957279869195200410308244825720807697229241571742237229262514675977539541405140048144486801887026380452818075567152240800422334505062897261314586550088981352329779920451702321391950918205199251794745845896896289692766146323244492273435446222713652491590725898624089710740298591957662647249939074070016291024807128683028815255492548069941523108272757960636451441474714573209558315340571003436292831307332262818395329364621110575503656351035709232338408441090834399068260075033862579870243436751585958151946119937859733022953149500756292647284030641277566595089773424219377621316927342533452966916779357282121604451166739736047599901017037775466495183069936674178395693499565491987259511377113453418829677176226561224007985579979247052830053033231630400926162808680151577891650417771003765467905100330299635865997277454401007781641570761308687119858466615492259619683772283667552241681267799240021840310796241170275724171244080429397859626930249818284472746415990825211683790694175529729605517705000528382486207255976600529399220345818789115950013651912284530400690698031794490323641865108113961618231491544700508314082202838638820570117319348991384560021666609069502842823699999356327072853401958852968444646891590477931228178714703160078062376461350626532090724429438515201634973640135938446472223542476636931419067319095970341331728902185217313034596083903790762332584329785584923049399241806618623969615781936809611039465882844456501549610516274030676595066179016140948011094755022698275161289367785793362043128884147551925125191979706113182530566811706311166397219098654598446739640559930842451617848469815010947813958681182047922699409077732135060767654811963721619884312498795102135053149182712892360625597589288111131450369884098268618811633083693769107169482066085544210703663620847628098646347605873781443825673479891378508118262291379328589861126952566686661714495699210630505093778714681968174223510298591767534210597398520001864428862618607517851258083355652532499025280235196459536228517911950339363547357047615066133092077477502934571307632122937368880252427343612322915560637242694330603156647253508807555592832336612843281130470103212230730185714529677730537892941750941564911430902684850622550386825816253106299078459865167201317836582116911691117402476987644978614595745494616886457457648794766567703153452565812760719812892558165503362270523097797844171248703986924489015947782670061225530232199340118407071472965213825900101741950126069192107488267304207852270743408210346501985956922166592065770651116576375500717426656684490216508596008760170365548047261673262718780120727579145569935345654685724875231079354614863791331544711583817704812540551518118758484136083315357374976819709839961997342093054176279721664115281639052239928862406520106109997127319909725112181333544988696179059185859917907953961975515568556718150245810358104874156608907743527464046893274629899292789186236450530349836390712754555836589450467802221021350416607665885205759118309751637049990450958486375019769737014353840895192451308080281584468898700945324833431911216779088011290232679339342366462872188142318104076949282196192448436900322335521006078008046376081488347059543289500348343549072767379413694974151390074289316171044726640619477931132920692770755771297047590809414297610870192393394784783877566078790824759510832627338165082307886028751129014433904759138293751309404797380716003593356452867330788540771875039578207455384463629499123124652383206178552676318802106676516666655671296682650420003567631721720625542822343041897542085070645871754715609777917737490600616162429286197429451561693783497389644267334488182765446127596284143594815635534534039962352956578351408426832389822186649191776751264184926925044500919498045766968115002354685559622234465779200063463965253407716285118334311276107337302829436506165459414941651265094367219495567219688003054780984119759690387026824775910346473330023850735392399222293738115241981801283462984427503216120081071211733283177992134740079364812385243395459238317791120731255702125283656899566110491416776428283961672358542757079037416350927449366745748078136728610562667385158859568244814288363202201291975579877554150538967401230078978457799265612918400881274189492570297778903527336599578782202632603425620962216669201298083823823349872861285165245472248797130337417383721717546939024613632932625258030900669799685037140322438592050837690714837673809800554512382234692127705791885302230252603124193805245907755225527646460731970804640272489731252705726358269947484435834553564948055857569525813817623960299126387204151971952705467787445500157479800944803020102364119590851956197476984635912832559638035673002694453369202516978102823668562653840805660402086648647233603086763897515690801721771153569145867474608263455061957396930715875675246957013950936008077441809894403815697188377276317080125669454474333804785957423567484886132446320043419298039131040605279625595352497148214551692649044550164059730737358227461384939769477276220783048003872627990815618271852759951969197704189707124240667431601891792065311932642667901483664747826381484701313306683593828427445128054158616797443274197003110018845318196158373630432457772765099938747893754558295238164420996358004297338769989642277852875333350448505666514796729640814489625916514432929909786266272849795124827841985739478232327552934890062573075011079897673399889597074008176255324080732183080684196642684562690167308529300644909637135271947749671855494458599897009842074386857680974865665053277260306785147282553334954930267071699190419637513657803807838734356231624237855103752306318659767131363691560269105630719822644919927486256960659569865675806968562980724839957521862742690227818033683240924170693443648764466001909116637351358836129482438886255993269681448595919393775264368839656995768870643567483585008504649157678160235961525774801808475791989615178295351669030025639175914990919379748230494477574804581073744237601049553333251750739650952957507182504988156185574968354629167384569111552123504438450055936219610721979603680934114619443577492379247232914586556774483496223657917510575987454447303534805308903162868040754086911750790014944036421332529446424099540103850029006775293439121729267763531940333533619211262923024708901279890245928301697736253901682845820115296816265100818210196023878291139133819934131026355093998591182114169763491584537292182412614041574127658914797646991517844535181816214860473164983928211583003153013592659099669071133755393743184256048666612474323166584261040342842151275622180274324188766041884491659085906314677162145095887550623716051875427805969786306265481502631610681133070987231394985172060893555824172782841184039790942622403887721692586726491661142721044257065762700652513725036739463844252675791518685368622442888822229106525348677167263348810867130974197997822628455094472356504632115706372942287627170049451667744854662939731069358095247781184702819852586679956213246393970450283322452601842112609654272119027102954549894783008846966101928712619887291776460584161957447100464634877323681066045978350589847603029590171203753594904247064331758599277633298590921881155391339185343686006599310037699080111095414246520333365527821854752179291301481355365378245437414251998284085161956627306802096235426825240436034225837046131133576281476953249705511896395778347416314620835264030831719886060151402010244322235271434127824869851043892063484088253593302499162244051333081943579577980641054413059379514531621083326639010612069219941121001849539581857218022697138360754866681081122529701078998232090639630430154196361643248339264412954439145347933298491819771107502009606737492480187415461235149647370805745395572682406097030675511109902135952598560203954190699678990382503307351689138236603052810636958550293737955125229344144548723271560683114861367425396997373194154812568043775838100575486106574582917483492001961481169203075320139822116947739436060910063996644008748249484456308681799361356463578764844719180728928550969134673440635293617034799008753631800778110373681895144766750768338960182281269380753969480428940998273729509128232159384246169049106524188748588503843938246447585204929636996271178398330726698225982292517696105449435504154148767800755626746102386919488593414183070658150618005627804852124480393152302996475368020064285112988335513656067867525662438345011103320442391571170912910164348926353616653021882380218335452602392420052827471631769116242664089550934913797132293158550768584422799436945503294338432771642925947319749915783424309230340116827493142598119036825284316106017602360896409800914105989044303361727708219706742375504991794610729365448921278637148497759017968967062590375460572957930931576524396973560685857969127474205066241614801673708600759056855579605490807253721539657409995417719411292359864097948055428052142277534395991955470214648248671802509638474782592870634580591918737219602548024963822805429413655082945688901300130919347736525608930047120754681479229789681471703146627844364359317607180838247720588014236791965563922449347687801246585534814203341579158164908123822078864599633749449592365980855222210104994904312511013708317003635023376323397624987529159664052714935088019479858631131660205438252904288804815876214550558640099971937878804142655894883195289801391590347658423868465902574622385220264858217195576643820439523001168608293921985784057605912887849525660421650855733231625900886460891508465340757482525283005434494643976518425840656623253027291958493214899724255743225385946703384789619591313463102778756103249914166305218284478180333751849563413712580596464100820832590602189735836375470021468561575204756104178122411917044448565105449249417028581182242595554882376330638703349576691015363809080323478366659880783110279588283209835641221495097570302759606477130096851649840828911723372568739571045882981054796596684228137090306241762236777499209399764806014512857255598034866481726595514105122443165469324417751111804251351435586763891302848939058802173269214836618570791463347379149555777952312575954843329330630481367025265650442094921065269073069962741916228324660055262269357998454858714314913171393297126524201809884064843165589184586858503598747907472441687245048823061362274390869646439059066830239507799221782474765483023515496173404076542940204353000822498012393371289897831772371860759536985441989560078260501171447965394434451926286070079424830843352379005395274386425350986173258698950114807686532282695536403072763963550232279406285945504562518293893638784097551416243004957890740107427766467711236380608460444247019234110812047469957962433775778001569827049896416755140389873062412119468199646838250209033394943949863881604901660119166596111097487871830900035316906600781628744267580597259559849328054780807176621863293561416844550473212311280753997833267607748410151119325566438619512474179599406284790614214225120258370217557459959188287366347208938097740209342689741003460781533530316742960985511874171311473515486145497482688374755582028142310470213136771658460295430725215182380325630999775958450879237379319523000349195668448715680163310854765333562424494261205052592199595939683857142191423651042037742422473583700427958602631418545203193627994941659797947859949312082708468930033419266465618964284386498360531067524958363149794949885724972844812123924288118418419059703561528228487557773160151732368543142613489326180323621169732347669693730727977031604699176644068164311715338252348040456788109914711707931838722789649739485357624730142504718341244598682026661514371273458008662659351812310564028545821294810821816865487481220558005121967602661263450606235967095783809937118344399169550703722203740889977851261603292759880565102382171700319027503130736507490296957246166802276380569413131983339778064157991083058139340378995545750370703689681877218678711290820510179728798286292351283947939485603727670761643757746564171927182591613105515216656194704129208173933711762757626265033533318390298192314526669232308582899895345746212288568053537195824249930499574524761300487901036157952338319358603673024718050733506048568327749754717909952328776161274707569999436278694323004827807591563422979671954131186083803586321892692991376850965938672787147911590646455870903099776746600843532266360175739020907693980336262720772119567537278068516285182829202980031942724918423493233694951138985805396869816129490015119675468931441640656490350562082388057949658966701455836484938050671024485255970573944922882736457909796812632231085736714023614555341954762774740141404593325647431894870085354051344666429313361684093060712320235548926760621672766633941286372616515279196683719336314362138513723369608634206432243972430538090710347636544095704103079330125116514277665124054625347282722354127738400422082322083464328234948717199183601869026115852158255332850042831205312120722017495954359274431392725311153825343255729664514245445004631501289236886227071645597449586270946464979867181371692996772410676170546305352359042841764483785925021453495613821422580082939136951727620387429859594241115882967711643926340116570956790701439330114913102891275619054110952566392388607977642753296233511833616762088561886175316081087523254536766617333075331069024061472457323882495479233008468483209062522605900555832235968349703321514913430605650952695091128251361625136658755983370882221806301022870992367074532713113823408404226494550099722889096307520948164474296576966150381871052003134440332435848498899894194525288748475252762547618778370022950602594074646285925309572018116517296136036636319878240837999501130383024551305460742047159678715083380680448718393117749788405864460265546133066497800376514121151527615129743943319619089753718126454263432542902754041739991103276159265858181577740800582497120885797167951319161588914670737619667037150281785583554655427984978752393616285223920973140163655130633417647870200868670749912920363702776785605504674097185448551691766168076497799259913881031699366349689369581559814538905703748613395985284534307960114172839046431260309180175569468599119622955401438447813406286263532641661832208592887369932183868535700667616755357640452516311081762070258820427218956843399899863519182094231864200958623241718979080025812436998268415912721492034296724065470554231937475812892600188818488026817306361056374193469968971713044989254669649621977236707345291147015542372358476053122863747614993960374562968025479879058248465863384145936767470733493326514617441507252538441666049670568959780797482231277137356800097280128152443918281758164883949054411983770118595981989496700628563796933977220013698999755413060529117622540591241051270748625964577009319790777742994867728933010314666386225323045394926720454911999845304519441276466169856527267252377454834593603067617953155828879897146589513008151712844220773933355000232920129841346504657927239627257245393742307552603265676748054434236757573881599627025035443097920634291046489643224921753910035391297778583351246509603565137735195091958597891057375893924250744300835271410548055502049445556957788808180776952156061264285291647901575630882253546061950973590135731158173026171507638986019394688735718503035141427234659306266389348830495326194714636752662274266297946570832678870605095425256791003555216021399041281429860853140528541096744298186392066100614565979484604132984951171982787890474622444694747756906094389150104969410712216422065267913509791812087717120792798447321748267661762347368223218246905245602245889442854321319627606917554023077978205532090885765469520427660881992403396158571081129954128271351063063055793636467955655561409670682127825123899999962827740503485117520934824330336058382448656338302227633114501326610153783614623858727566113554360476073308404680484034105988367560905446839846016584616071303856778438633685478063015695058104607072903507811734453912585066269771464076920390655871733633788690638644663588403633380349806891357831039717706509010480043429349087239513593849996202099037548178204494565894386539462663761717231669881421408056013873244997595254639024527036931296093183740368953709107965178094580714033250447091974674627323067148725888796536557296700974049586496455140638577466723787439255807861984305673952246321914432965042619218424125038175066620931411500362942490191460687435880715762958044916426627806679173763121080691560744285981876861529172433269608085506892684315856431205869631905807394115567625510405898202750566738072629267924822242982088687319089706518225115542366710264416301393896596330722337501345307555354532733346624560368577503538831894368702768234558204996367283248002318894301589491936658587309958364485972095235202053040260827109690393829976680426264613833486257149414935579444449657983857227861807812012163859682628665678277030400682885780647306063130391911891164730512512131901193363862861279047456259746041770229338992872250879710834637452589463248510372147990483723236164388196014274534091465833952691030508903750981105318676132718738695413462196779131588956205404221331637637971273990538153278586123209409034434479354636163547873959081160854331258644530616714723823805058212501108801544806306858301556958112084739282904668972813753308665641604301921026643837251008356458631083745294131306421337432485625894202797982527793890798000429118898729077164939025464082807004423441961309699657533043855332565091789539132571018455704124845543816601317122770368828288726646074681143084909213881530859987962409119898622468609880777805736311404420729484420719428583026015247924631996378984708600403310479219087361526534818797445953650313054481076964073638923810884193133961697810495448443169304295168910141047651704993560796417158576111936415522479014982513731502131848572221476953277465169054014739373099210766586041600294451707377687959033031237213143850437391651487740179597585443120513599625636588752980681652503516911227200399746435488152586407257745650002679929742097791620363455818223860654536705467251806785786601378768191791338105202772133081293815646914605170522701524045680779874821013419756058463997419107885280301715514834540825814240507822044031743260361288518482777712455451381044361485377860208861174233273733024090556322470520390508134682402111719137760570154779654920560747856104996310991170167243096926558419571479699397065353104552105167533549819120841411427747482337750364443097579513280359711077952325541454294070063899997433027033876956730345146355738192510534615445605623375445281511152154602786751372217697843268649491255846180201601499696896420834726428375634992485626335607976755960154868446182260399747546346029623069400501265489566287898349708307427171286286712196608966466931574506181324007355399408707826568348801176429634805097084816619025768148384030613596241883774246528933365541344911204960055358589684873922354839321842544229825690377220019399076923973305668897487293905098530661453346091855476988824697341651018177324147688899831335357044534113725297054434960040511994768304771930177571700562416001948478262476109604037403352527729473730879302278615638013365047162327931015556300042050154647596318170192613015454970645982867436658183816856442674665032516588004257721954658440464568829774166145338783218445992215293142992695220035959632735580743236360523139594665532395893551171451840817034905667693359439362812401900156232278387506597050149986950218389749996555374136190480408044205863659726531293247755004119298198260310091299687158194208569691449880553098079635727033617047550123469805614910534411454590289251123550182071642544375900767224368092497397668822758742483865797031360625127576207254756357091750260519442454053963971308583348585707523445260887990077022199630508971570340706436456783835429831079678308745976618319291996242086297760719692375887626569983425910760067509377219113915630076552455823567074909105573779944644211302195021189352310271293293147741890860985452640484724876508700995395716923852390240810824031988378139981618090037874720799430648946988977598435233617384024290081652289196941425048767323551013407368545761681618950352628515936091972679159925524709196994719418453468797209874427953867978393575408606036751594771662570064684970364122565792377980507740288182717060513733764010069074007718650357693979178293881496801282634561759918063324597510338161273801739295476541065633886969136742731939543832670435184770805298575525912051359544170571257363937254963481878027004018427796603513525175093412751802937847872027182692780295336983761775937041615814218148006495235636297787057796040755578748847633184468846416222953533193728033701892562748679321559697238144092123552316833679943339440552046951041032942969249540327665457162633705027841524320680455185749198660531531724119415820308842307111862237036006345892658921150502483114847169106684906500679041716967783658148783488109602356376182384229585091797584684511762260697323132866403482540983881083253871354611935587927479671694052388859063668733873483208927569069689941907466314951736806290499526990557272811367084087096874988526358522264974028831246011936962272146912760182980079228765630949196372538554055992018180034850865268825116677047318011505864543279528083153566754557212099893021175764980818562134191634946442213292897176042491668302126190143680960784829214813868874277030133658506063389737795779363952147022703565715222261161184121542024254427737156621074070395175125164081521120602759307877497025417724666761890554147124337417558792745195796977024820387793732811136562904867128141012794880397605379493284306247676461606816274546572474677205075504301228728440408653256817646821339648520363580862993596862675586050652537953659523453414160904975774530412133192526689640695271878689838724542205549695503388881930866557269873484170123726942358890995870442621554207372720442149613927028410631853233170698041445158292981171176959186576638304997872336081090346337985061642376180821226792819916328931873423221543975559299065758670297659988798064598315058348950244283990615874143219659068200525208556846614520978869237226729109747435955310969294673253746023296431900904846257372608541344452641901040087130115782102736721558065338301015539777091532431482476173277369797809646891033698359887710119755459683803519398546169335543124464059480742787424461387438500658518516605390044086923938526628875743819902293102137075358177570541864030781269265760044581877409023376730474861717737377794249956830555189283950003952730226953247605871028742046284728825489729507566843061303844553939856383901041194436700905665913157230363780163705847911834062875375044813602063658221308626336576583863240300304202282021820633881414604635756872121275721496240560114697189561251341526015603628103704939036267000544320287365494225941773950972072007172746602311752620022226897864395490178100410420046458398414159309872484294319367871670621068402544631883557538305096248031554258977114802704454151416178658310728389369314163128715441760119622997429866679536669392365716358017564632702497297130503982033874915298803791273186830817901993435827600434301010174338038545032209535987111836932931379534911673404207598394987712018641264835393504678638683824622184429638194184534885068690008025667369923364695569282900786585975098010769346324686311744317870563354850201540387016688382564175020979163076405670316282828288718177999068921075308986303012591712592807706649505891465055211288635275678393602137674458196440232709785614593087000859456387066163641259295247054388936571243025058526104344082443396738390028633543145089247877527235743940545972414271488673318340214056897049295820698324280188341168270914428195635323419499044452519962469604951205791160012865890494900785715817244735483854246799936719219988244588998112626459835918647711808580345777223344181531177105202472501602106737364992845257941213012149916218386914120050519935946635226739322949184008162957356749606904766915183463683642048904537715793002632284609432833699674797917264761196652481451136861217920069772385321430026338232237675260770257453535698717953566538143932902887409524226105981075954276857732961496894171281185123385776433241578705695506743440763374879371921619791776131639491483609117462254338349874131948074194540795881471962702746058811190101068340345771315554637085877050722198867391719194451076187710275204284368605261946154823543519174463216394220244164856633150654966549670177265465405039321092602351933738016576059583304821857478587101905830044807686214193991149547367523040213782341509236635637195662512941731644668993051345860386096772338718180384140671920367618442219132689567110078025779419930760115905914965629666416877206279282312076620255985257192920785641035650112896511438400722753328220768207311616911512778190647519810722091405800503505211050920958286521042374112886774615841525509213173976866507169600774377304871995959713602028799400499876935085971231926765919205404118376164562830201754184961251992436035205809437143460591341251725325297268432770953564497120358381630019463845874366853050415607196578868266544534581372887821787092245570712966432521547879615543300484806468549984543130608957843487401953045243039974252978514502493109932877977525046152869893137138778535925058267019966731740209336562748555378462009286081772864040391572018796573327862428209619606954085068369207424798809568798274129767512662072466006694297286414153861584229018302165749711319491375550823772076860553772330205289003004495730492050692043574864054848871918321864366333919187314047338681947776736453369957505983915630655419674564833473491601846253124055578148593627477952523676179341645730048120662941074480867470004940726670974215346604936571416583316955902076078651816757742627452403784958177331640675499314782886380818834140845986657655453723582452851609181732831138364461048502572090105065149795154830809353298512426247920353208989227787436987382773461812891485136543151118423920862613226171064340150282217410461723508935146836799019428992292258819731148828461743493015291981789185289478590212678833455982518033715224139547652439528597979158464587768192394354778583612337936049224801005329066140182662668935741773411138644298481964225732860304032135015178208889742990130105802673760818474228696920457638535953944493016426027034273201144645568944463906259081491753775942627971527475243267753235569221021491215769673514233748978263405189567838957745996199999137552237267673032775073128572858499167180332917732567692437516957536639480749275890462338338870586145834933692076546067593933913552425176155724443977374672820023427226007038792513890155795441093398086989383918089202561936570942405933679351913014333159147424745091631526075638832199324146594998296219389593184894364266382077050280458496030500755094338823008334606033552135465976145795573045472678212563812984137962917315274946846347278476753359257707207908876100398113999012569359443424606618494033050126965303370828781536296499502900573811176911412260528947834678640923892825316826469950860243065566931016469351994395789512565671163449452181359786611032078028693981294746648763410556648260342642116015746411420904321804283777435956528797207525111674389462534073830884698486149431412234330255018202282905812120127320110169722986154955373519562173510468664136371500236142096771478605432510471142715526311657436024158718551054314139862163041375132353941334063162629122675426778980209988103511274294879996902576977330710199925145974496240648863753475764751049897364420916539174913497604630680599063222719589715897411029629232923007943831829979717407073112027079680770662868547042544836901647587769851909012188468873427831784822121312453953912062715065394074428359732608686401295344219652975939720286141917487077308008071507148310708292715429502910049916424354571620692944678890862355395567199846017688488230398674825999590194945606209778465708660324271739100579888735069797896723105008384613174346242583224963806072410427887970606670984479993748295506422862272702520840830016167376924673944661642281494715612627320465416340273584237145395958675364389496691956794160568466179644265971278393078767915795832377036464247074366140162968522511958556573513786478528241674588769275145121527044008026050750578682336272484464865732612995632389847776704927581878907217037952894582708941025870313253778239715995403319543422898654897268038252460566351302417602858747978329020111348785154047571629413498123267036017603770009819233088002556603473389147587182368089196144127531908152697619931548753361290879968915051041701458209982565943048504530025811547006110873385227293944519252065731055716135529906076755368307822694256241694436349864784014072292311333453024505654479189974816207766767868141313589685176119636067420711267110888900340822365140819726694241943999140324286388710324102874175164958679408920520496813019017305173340311745101060513526388948866175471212148020415410337567327366764114452741201503053475417038022203408281943087185623774885027074778550342179306303720320646798826907526359978659984986440475080856569698249209734966891981229422415296328637553717417214977282214276286466872144351966412794856097267791802008602084755577948177372748361027406831868702031960771946139587120379963668722853171231141519393931388140715595733474455793627361283669070372926334016263795460786147050156937831287420811531552413881185641608530927623796968928959985360440755642533421011250814319006716145165760060649611389426928242614219987915268257104904594092785831179756779593135161831130468390303833707905030346854895686074786658074084586221773081182754663211347368754291750113204926083396391961274429243713971778041078582337610453487808712463327305275018371668674145726163821795137126720963804500295466848934222204679001954783168405524495672366771247043202579838680773035682429181387436803788259984385740879947376218781626206786234377714962595965382988271554130148542324104630757502858160637307093322275721642558365281505015805090319847384039194151619203593733733025488649507306984393893228392899548484400389357070481431137111457707397618952554653627512111892702451444399898742009017075362488539127961417610835726911771716603326921454393624404509211928368989684950306557798249670485621766037600405874116737256262891052006194899767634732900162771663225318524956055152333168214595292954963466392726225892015095736014935949724533569549866505605820693608045258693051459489639312517184612731712790431098804805266564737360407431604318279442737694397312422157888114286237581468585689594898887705290405447969810738399608828033940734931003806794338622597301115960754642903656782632997919279783552619729671422652706076574915748401784830369400339168102196911902719563023272347548284060573253320212607952453661881235985600326899217114595929565467990791970241881825863766689650844141475887292292617189552344345568622398912635283332782840375441764399577873197489106869542806712545431084222562664085091650438789473997889534082188973188634384681747909861987668964844217067515128552255195548513172779129069758484117179218858017052424159197953077128232808931542032087299324333707844603835382050951196796059173650237029160228134142122234510400203057463871366815283264564884825512478928262763262060233450610265883709565476298618752584436381689768844469563468732647647217676087719657180512578687932540327483211727510848264492110722102145296471784883882316331484438299633626968489571297440616998745800241910040196220085937552440585390649721470409720441936400470377256507173578000401664926896437022626345448297444081985706932512989895257930712137289520894975269066026680351349921273841053245334173241192710829482057996221197757857302510878638981749994741364669714168712847936922558987407535874641575993765812438372450464718843862729435756405594163784144641002646990995639741203867153217170944356246452519606839590706788549906732998094025891086028435813210482025553954142619724505121422651835519241278998747216485233034493539979289777031168193953438547333116765054950867204147565602455559875199806377373592910077322796934266209551553708417063642059412442002934708556615790751173112002657267134661814311931455505349806852888032284727751647237605531812161130165501802710942168865792156157722305046715681480369764928825981836291841212841185111610164899436268703275276365696765023016520612588660609893387710376416996477811484407676768342674253100006017423179184668104642832570287846056276512402723559819027511302669352232053809134908510428707897922345952295002490385752491144755194388968599271684585599609339800897817760204610872811411615175783934552308096354182341964242805856889869586804235190773431938105896326445985396763401105720926568369184013248744210619312011409899579299807783907257917128808680136287002949239535353054598350359009053413566529156062041161448144933915194543093964492347549125272906619901158042868630665653401123087251673986730619656057899874651608548464438553974069765445377035121568435872010589505764251350794690515039818880132188313177405424973763899370445674837812726579129976712582316325594768210646537886890379311311085546816002786877793595452392208798983713492976706003929790792731433699713435585084051590149160378719971862141855694225127637910489644842009570867444579105065734373629115076802282663352620047865264928034148693084251929228098772910833857536825034921365608126746224480639593799871684230101849773471797442227446210461040097052561224363804215822934660409660454089272240992179739320830598938401863657591256063738322430472376430415133742119361938931994932399095245540974850467518836450427060994375492953985145412201806692636820089634488597097771715874579705601132287824696725887365949183264646977371213865370846339316321103900154389011232390246727051419350691540225422744013180470248179305083431423118436819444984082166032009237600829244880912316643137651260084304090322439325326207087506464592044970488950726994897226229902286855902330314391307487329768499620948334650981948439852912371440122201412685399857436499647092015585274850670488552436105702658958915331187413684529235452471815420218794685290883665019834049141205637405099795038181491445162942012050072810800606376800253087385725526679628711764435738144019072077966225937543501589198760013699543946879951263751475140791112760050369527117655765843065455613974645492564639891928986545666425282674324505874531510707732106087779227627667451660987503480339678722052961285565203536565617821577853722056978335247424462812046923157834313456860467396121849840291931738930828939739453838134051551230075724947248010218415302422092144345108265555511988140807596884348182000231232286560349163985086676366775461970969406539346044865898120027586511082997317830371016834841133365904710128015058399199824813324546262990657640317522666561728966779282049165771758261791066414036685031803978372905188191577375203736788582240918202347252871836531919812315364397103533277605498580200238847083020506004777815076849824657817470088278954353723640677865256741131973829560372517773481630435107439615810252077740494503447731507741706059460722222638624886988353902520142780403179155618461997332191174017239406485632855828103248828534810218806307362511983489568187998858108712884059045010523944941303145812015278518683464485701039232456845673095331803676741620829042205928122281613329584942099672405735516785849611435840580592971862920456138058884787728243996246385238433382667698581501169554247744115051565687483197246814477681785376828871440825376814290200229812062987313957966728539890789326664644321822148605084782890548204592042632342780893920264644678584345435779060069432509045939533552609055150734770975134088935956146989056214020862976271200851097729065220661293325019271883392127561522795888627894210612564517944186264328250097741073739433700290950991174409151428182105317534745069349858497335951600141923748136632657428014996233156980570495433623493890145457820614864958778052758083626296205932817872272940090150015565591274494116999760421631135416906745795822055807508645073483012658043173569402484038569651107193026238958003564319175787631907023939330978183360876917773818701105318421065668247213170256513879917067918620576927810768561359512809853904173481888997423329219300821429104969887377527954005330273992736874668058774115786803361809432154080611480751593301229352389965690201383565675714683092207942808038731671472560210160338334000659107504490934024139131948750978092711151746420900855879268618470595974547221038871260056757402072185834768641168158628399225210572714185116531008091665750306647098554636945012673199316742433351656685676885174479896814478881544822612054485881163254316286687211264313418712050269157733594749394750064724505683750545678407772326327965986197168757854879912943619378209694642268076268654812062886601231250900945655149584390820858561232941808653194433542327890621715863071285431993967049235194689971671375238620814609427793056908489409297185076161673095139916258137270671961710996772674423206670965807309787648247525835464680400559109519493879805645249216335202084697308285186653898137558624623577217990791453931630280922515306213205276074555078606869346251172378794024902922193236728586675271047738687464455122509874652274404692378797598147868777906179513709972816189682859050384831933571878031886260489981073679708481757329803078909639567702212177131694920018085634390086860196274742996449335011835577892535233540364001882388110837836003622041962158741601303912321553686079746027717042104162544192117014437461415517772333035131429603885753516696887751042136820708195776508303207440075711429317044278117407798442463660589049668109618722989903609798476182713075446418172072001444891595936498257600676631143657027944197255675658036231648569091934472071460580155200419525286780175812050535701112143915767707426831821470533654704521995817421026348980480589409604732488405363857665768294406709329267425319062541869362455272167517852252563252556335207596470363643562867368209596906977898276090501454748229021618218500713393958399256704910632044738483340523023677467144196143571068749932912351929087527507033711396795564381455981623983519628033115822257934470420717289527871477212010199856017253232980580917570192819721234300825619883834242454129018845331616581938893929419122417448962493721651008313152856058694488738970007551827991808133195828257404963290249871652473209892224240878334080869736374856079236070790709858679822482812662684926012479087091609613150485728190064566857810751566733129673893341512927761945880513715822744069171053059186223730067593714242597548070635992596325945959031443304729101868353337138650263983438070647450394234717867420450604902798216256403166166663025176868127021311070238109095997543553153934884712825536294523039810994400278552712549652573304308841742609985145968164232252486851481234160716943189227797130671474867790453248335014771599728354724770207401080147543064060135647173065270635036247081114390998810924361453446497940448773960456642469424115180593864735240952511955999967808234927866738936854059935448802581168337288394929362671005175441659964327529318804306774578521780439791862963384283079346996316094269972817692354540491940592518239768401148987532348260567046713833142437210364006635970019093262146859897591314043485401283713017036773262730466437525408800211383526493348206295282605167805543661917486405552307427096029456246279378431026031194746801502937585312205642478663084929475766146941470815400339268246530903594889241047410485378914091135721924818327739236575856280517360298205395091017007121697694676008086684304562305959895450015381403761627651874186917732726451732921639583969864555817100910231955081202128794331697984250789091050771356546115792633281100274907857333532312210255479576461429524557437341261447851868731756766901264334347446563501860185715769576033716660588495257993242654647124114858499835749722899674549128285783248110383663819688715998251524629890962146533088838477280790561110296042271808328676353236339722088102137362947824044132585579116508559382584123219600889379408018314289274739906092386247210060205440628174679675153972730938010027327987880761423937965288482293546045802824969697389382237750250405005414322428209197721456428689714582645634248807132720886164817677376433504397794563442238499250955984531497482744873613007163741383905348954423559162597742067900898038981890987438394210962228871676161207837720107560752464852118737830723123554270858099252452596066053425809355874707669626419616870049817571286172575692869452413617050327667503713297072242505592712917961358836704411528069813188404798220626252855797196701507712285562261766745595881034606242803199992697253100077849564499233094313592685833285518442905408654204871609262885502097295278114635276399639843544579922319518378835101237694446458573674267342333716131097558476109104783838395360349157616978454784870628507465716761658480957208798459052677933134570227279475409485116138800441048547625506276750169981668459161885889702124717340653780336015908875509916058666407591390043482397305528295779756962676406224885965710645096343899169528781592066763436534288783970430103033616636480413887384285521780622240793365532344950673191322699262450328907633191412003550035351654137119189885916490970274954842707641342758445911110221323404455271115398652850469384588294888093038655518801797801418753909273344174113962285049372184396537355341560493073998651495264809982482764809605313406924660114600067615524702042435590334224948994393845951589234110315374550462489781729156515687129667498609200582828611843586167433392844771479521463782189782488953228154462811786265465391844423845197569720317256520379608750928630636739688736336555609799410985368687338268721556187898824794750223824535809277259424531064137262598629163964375180769167501843326473237535535092883621243006792242097035544259813576439176585568345678399108653516046826749962117517027722349090365170042633825465383499385785135155407224412659309056010516231487237826857667494473928237072645866015661250211170031808839736904140279801680621198731206550191375855897190214962053209498027342477479251249221611174555390988497498402911985442483946974231178636441977139564833432509032553873132277626583148149960634445932939146473618154419508316086961993973435824379524729155199139602341935297770904576303776045929560226533348048212088637817195475280664462771946892038698337292397868238779327378673918843252958597696477180308296102934441573106172860546011985255759140160566760403997984168386694268644952743051837089560487757251583670911135717384998108711125947564501024975735306241356152319393198922841466672238324531241851577889867852368229247663219592462932150588387321989799638012859377334858901243392472437689309402571051576243402563052961699562750736258474857889467654549562642198688961212792361377650324429911333694551798769466616994203399960877779148450709812248319678949365062931965179983696538591300903937391011874025396833879349496369563995281814905797992534900650599830667551236903286996537732700494659118639071310155810521370430056518458109171175989304891993039743548903082597493901360076841945063544163444706710817620294687745501897752209252523057201161358468606074217106088010868194266698116373499332859714199101367034657805150859492489285160759593400909400973038618002787701282095198459173928869404460974500265740155499225375287098768759088716337327920419811851408590929172075588241161497740111661686829010290033163624913855683243105716882908181045961072049144355277041992198936745211581863653949569235288325280645461368908504664092058946294417421940570961646450202606258556726388460614633145594606476491984983289571270792731198790521040271685600307717638429373988970514750659138327293149280493191910114133026105578913606001539938496622185203403854433320174986414957129679077602198657429238131648896047293185922463711393178133741098850261091290132826151348289925989523095144494951430505735596104893182772874168432317923660646925725506967868604491267024270898539444311492270010196470565061198345871254779381425610245855672499351882693089471976857405178406368152100441458975928191707975992136982828618708182317831479089982053362063628789519650544706659548516548611783916906206795869794434908492989088606875253637556655810232393916268757254253056607112429542417169065141966830549221480919463064929647974341502094233735868218075840106700432252773985847029150899570718163229648572484731167636637041209365884833255396875454056383228670617134015941096466768520682747215510821419968352365575825748591084273242464781538983713719642471634041489031679168541164484837568785459164568874055780993919636650731599554306987145022731312002454367469822986590496431354982198566926846038492554090162777228376724788072362398341548376845760135545095698897545362671104897463069151342232833849763217145331890225681775874393283606775686548784138833733772162317279486235536680740479201395668756214925180069103483646969601758806700597864206316029848841863703131203325844974099976177524281637418351258200894610712303507141160364917671077901008733128378422697280124011704201363268028973112582534254043003831383431780826594460225009257635158199525529695877601637556917944175204702469625386573264574685109006279461203633153730677432939774097687996891629778608818404069653338719965399824701029691048235567365957320320811489552767632199494680739225558089410282018264319023702246276456659946042419655206029618377279876260720322330637447335494585074083516868820375557861747171806784625027823337047779461923334368347629096021982138485169782027364540507495286879700302309402710837012072341389825577418285296182463585769920927827148834203718054055624871120501367724140780740855204968006340329962708392494219495020061701054750725649771058887060435057301330447394704249956199558720282809285066835006219975460579598985798820673691828543447728008421031897071144397550826710503938851160185207759077543174819578156535920171219225789199293983271166745519982200414170104580761348828055282253663253305111080876936013556487840458313117514058796461266303091749162617813748492189047444178318280397223425132585704874980133910108181563323648880096960088867579184965736773199302435477270573266548716884131546050701208083207701819616623534638542225743042422602248242719692350344723715968197419196269811059984058137061020000241467303895971931711735798990692634682756702812091903069874507956339213728724218978288784094086642966487826524566627635970589262352720426789129538507449338394585106247967990531108769011190225790840374203807792888397463555051889102759885395264748752197327096300085814507774986228082447755646997411571649464372846836263064307356649655158347535897089108961450997874842092801374350684715330213611190310515554214493471882721420041086764823560940761567666028767263279011901752133234129404488162741386527187309361042646753509580273846350626645171668532857346648539308995883564177971107331556856672032529090372346487596174845006673898664569298535547399943552205812651852299784854166069051249420713180501348796439356814961628285895417144688858239687325978999988303115151356412318128503005826219234120775048350356434586249656892673670493550305483063645626997156147678302881466095532533312104060055575835791629726073664238272107443975625945650766147320865011095726361765442203506369475459106311577473562301471562890881408464284929833354640979678461981578840814276919546238117745119654294929050575051398483689478968858326754850571431030288481389831083334911020476070592181387693418013391166311042092758740338154468875109670411329999307913978231419760756211457456976853627992879398000858643891336593292868876279941760490625560169484044450940547391880470135003768572436313719516275747838951674765536550714126800517081440072687265330359890465348767136646807953692938341806032524046005922608593733721092950461646679937871943302426405198913191484388125785068577776421235707926699442380638205552322449854288141193845014341114779722813892887636772075746504896561657112989906387865344175597247957783058226503323512051324042049433132682667014806666328643369211224466638019486387639554570068060269681553854034634361643940840889431699566795767953752526073020259211942233309473508248672636717693060289499542701270247461849195790050023916817948828888543487140311689149023102991081662738197165821665469945165954229398459848000978532427944306659667662838738169874270823167459814638423832538704460628789421477366060294119185197504390691719552436042738643722833826233966275181649085063895710380678542042046634394099879349582981096260551845793540637815599753464617425200104775554915651344214320771991142160550275641890317631468170249896810793011857351985113984535101354151502376399993500853310583037396100737065479989747824426514336881933301066674953305768731461635988925560288589175135729579718302003255177264193862523446079308736115251985774828381107287898411268712583493631510514463764292199065134026592242249986274051989165703464798121968824742325084205755791521664027903372319921129740835340282589998424014778639058646201047106149188272524158367850066165212591543548066275201240324865528798804340598942549847491768885906145128020497881985486670501004699518271941612152093689553384206165371587800900237448552729307443427658732527724607326810145272219752881552541292051773645325640740617180063277203041688328947142888979015813134644486754624672079880176830273859705019128473211462625199608876856003673199654349343521169351242693339850720064326974299847059611143168352500273900002311140696234791407314142655886131245065246564465593856793423541542464628861412653564658386153519048063250622615197691720236745601445086204586354372550976603529846886860413285590311627864796160235703794075578735503934065342076337834448804031820753584851822377515442657109621016372391174969994392126202349247889516382913639970529362672650111235452393679211441182264296399825904609978933454293592735587061683404926775910509257602818655529324327648903633009385171417374972329397353532742380301801299150751599321871128500418614159499408456798961328916431256237679646580080618754800004910209836851872407108760297981362629671841218175914279904078274737172906936141679873865573775167294781263199209903243222867775334255201961204249572077151595617403399574284764132243896583081693081214572947142986881114890294866231314627845790720475703460173565666172252486551130564705150084977684269921015149049055612219054202127151431126897848623887719378208365891618322246650030821462737344421212357005716853335692720240749491618285068633850908054781744630328849079588187877637196145462179087214990740939724579295968482808797306071261242177313311156861468860146420756930778611639141929232124111620896755541209982082649814526248352472579677398119077199132603146603881836884569830759733663034868065412394802211920060914736505919283301417984843793380388830153085614630980817519499857533797300460643521955635645365444673837625610231397371073107897521621136714203884147622935975019456923856857982903743158899898445153431072864038686992764005064941013763505132102444592430019678259182164635457978314377784851046212108432106753289360386757209346605076545681483612986328826755390123383758659270035111122673865734888238319782998490045008996005990477014984401743703960680239926339271246011901066758996625362352689366124894571774073813798536786988850268986757869050488166109659007319441372688216959461501305725174024395010958598932615358768678150867142680290374638499216310142978362807948020358707615531165479396177986434320223228002681404841440627197221980353099152795654204794625909516681462096535810648400943959654736788644567864163665602631225433259423762241372291058031725120274353482250076272212704674983343558478688443180338318206283143087323471318139675041794088680892959381632480374515210305854433070335507825176906017756252638725914952959326303597979463627882674701266055276099689665796145193567084449046816137316284797126465459492146540525183623792649627081529474599144072608133975912649064100382430217234165448664409462330486833430046630505807349279367249792174378220335403944297146625226031654757339025715306427859276057115177395650374789022393206276339252815876610394799851185440472177431183300830102398821715755605990946267309448845128537482216499742986790455499621975279177042101652787670031180557341277791124346797534412594885316842800195480740671544165824642609112354174568263054752004579726717378885310129786404365510611222987842163498337903305584229422960789539196094963904640185170868598624976632887479153684483089665537970450795788436507539930830739623558424851443592758254245333956833055062899848060146534022022530409143826492568782387259558143182380274622994370991638749599046780122056221030239055063317950444727999653178667119246799381991860308747992160440101501089978726268528887680093749488626596232877959181085969017091746634135238522693712547769807269289377993340057509125209159120904922994546524425610869153244382498115042813237256346151982915659685812544554287815315415921574843811893933646167050520750660605556863464472860137964479020134455904261869281991213380554630329953632955509275456519950108141653381293254604501296981725745783136319650363382220734970511918066554307616442699662507258769011134556299079959145202366871663085002723520691407318815312652977466741905548748895106587857472863829604769484071273841824704805331453819718918167101526876311844707049612649648719123937076629605388457853571782549462536024656949949393476416872161526325823586761830483687947739239167964965688842314444006037008606046999871943407930963436943827982108722599450077488443505367305534806065160626728971682457733620157196018567464130395507703857813170304834348278616482314352139510086425184003241320681604279304726372725840409914883686087117676526051826782942046493648396826841763099798705333336059331232347416894517440557384802387420031072255106090628729852242640875307475372666926963960244360968000652787888923922743191778577922350825355622435182991168913981551497942872109389239857989108014861791085193719064897201043948370319266655627688814639196232017848788638776424889728199248329586293929154319811045722036856606398668460731730853666086259034346367350209566615521360245185542707589957511199529547236342735234486171250680975789071521189475272709036287396917773686041104211073034829270887477255217456354318610545387716462467120229989841482305734128184523345873355123496208151460798422086484770550293100741588862654311947571846108654735452497239424255591568346503785052186144901064228069834097168378679754763116060839827908567618303044373504121071972667034538668369590684640451821482515523447592873384088848242018072369443918219473750937581721692977531124207029123998404878205366546474547969391325572978021880558408220300742776112111413718367005531540375064289259460533371156084843184846426707724204646414895934436293022022733665390073683406938300661902518507287212501657230735084548578081973096326229467922907353790207905395705930313710687602952579743861775163664429832713738980290635970302296691470065497090215097331311124470690421003796655679369645298306124135752463731221875929661816233194586978082409260206756630416100579151461026699604006095448678359450316747407380753190847153690180819216557727979077489013132287730943145809245278942164590721491226319587314396021534792074123534229738893739841994096037100097667363245250068776375404944481727256971073249882246206261189115484726668234848374084401591487180775104134667164291780134376917564682909163954346890442405964333321673424545205468283277417821096992486675391595560958756332337330171304383920955001545941813672147188635948912160674935962057093073240475084412111920440656749660652081166773626248541083996274745197618662048659256427617257478958738271121132094034487406792713694443683142007603629760576319576574303082177871523657479668986685790698910930178441754151253880756783127550458924627497936424812802819561580138852930973301042780615476542981579509415420895295707413401543472329356263661264128259855035911090829631325943818194686303177996624541021631018825367154257286558716222215045013100592901845888691588591360768180320186510471672155547500706189877149740833867757948964122133756698606046070067072832191896850604042289565373314000714159152747365882188860791907360304583304959109189701915182104179984233757805636222496413398789497257131112329849785507522597692579779943290489834651791125356459238422412566954768588827224444997824921752818023506916937456109162221095536532448304750589635278369907801845748267147556855530657953568545721152363448460199894854710155508225597521940341968999116191390701843417449042564255536570939442598579531212664400031187992601084227115843391598684485426206345941235183699240396399727844378920451948934330276680422279330442478688281267261396951695534216040998386378200688380655842334379987233039379757287506219796815941743911977890247013441966693358076283547677122251113211455782198793290677569554601199539369499176593245760001397875974151985306797739508852933746862832768874594327581295051354293534540774279834245167319534460969469585396492750806167031991466149670321610837842682755168173017575570945618311888614302318015972657121105247692484315615320299926398560602495075886914237237370916817175352637395380108929431383067040696740961450626795690271173795343287309526361742005015629761195974336129070372689959721495299631650436224974373455809141245834574220382980881569842708937277105809967918339778251037659830963619762234735086531570511372394337089763226465848798630952821086433739613442553047485964119321276664798316727369089484287984477061267251369747691605187931817074654577333653711437318283384595115927392067395702856180590061489446945022382525190333223590821012828867133412664897476436119587852975233033393762060075768924272166904609653613545353474981830076294980707309481080046632422989855091019879252598192020873338769145853704557157757692326619091764219033988309923714473722208208028463930004989105018844231333742114897984420535720096194021897836780265187877013563794344129020519335187261243655631545175982414027484326748953426544456797358712320422665285535012796501196462390032209300043063855727141206758665156272265057851435378703486535637756940693136835648870398703962147137676358133828670596384633089850661692685196533674549357233287248616284605303905731367452613662400632462507104556013146221486519676209823798928785887765936045928893906415995994004397794706167201600495831389804656204077751497814755823640563084176110416402269306785024664157002124132086407727718303688243353177045432059557108442793828253261194016774861079126779381577651990901500357696316266502074465992761579824015033113556953522257405206014494415280495498707616576684280358859970836732092267636959492431737316742998426545155289213610313884424160305373248077865801157037583397104318312743148138585039844821352209996652853677029797738027609037053202721273179795820649160206428374751544103854421699034401500865610142086357542085023978899077526750239368744638269609118871711622059858031196981016229928231040427690926109419066698214807142275826177424461804170367671263440771378474840423069739076268680102518307144728766403089147682263636767872463523545309744835855904740720102640361491416428112355457145954833142448144290498779507822065349021188295151370181223454271621189693879169252196253072392884624396878068876313031667940593150377753270280737068423644360384786116337155453836104289033218564648360563384570215345451049520299395287238368773516664802340010767944733622520157009640822911686769606524089323739944536897875606320722096652256743980009996098793708384505861420915634202223810637902273416425868017814010798834481769765106903252127147314354264286526664204461566100160520017942312579389309310569485461373264348116868066380318144398118270033163808103450490403419615143065693682823936654418193601325622545879895972173606414009971171618931536267962703526907642510774729125838780358538096735679833139058907996586232145903532878691413841768386926522921860129513704077589038501928568293964506499848210708840236263148373458847554791426098981951452583326694158692033167673105534526859443497281624993359083248340683649848121836846202468978623884225368951435673689103600878279936220568074410659611479247855893842561428284644678709204029010659931438804955938072337549512758442744937308287113332384527865356598657266484842403324227619983584390646035994420098978626529839117284351751309564172477184471665457656836853865705601996523712835932630423148164339997265907308286955491909192110064250757948066166500514717487574406451774206449351361497321812558803417529982426779928180666141982327858308271567923568125323442759155314688437844915271270746222016144282454305308220530327682123293755722569760312217770121822994430804503511795332907417370921096297834050823493983443411109152500760435700488958139392281477286407336805631278640740153983986423492564899871373031019807942367942236878725823942556122993634027188317216991793209808646358505042386185478391422420078073470323432525491112577890820226171729069216058543211065953286747140640211894410252589240784035701028192884342731612061278998028771890056006531702930400998066986764611507101975979130787516241610596097754665295790769993365124219610156924351700452060880830851346410649875913034760188440659841931628399154567213786307900670423827299401846305386330173538314688827270880944898184882595660995636352458098196251321377123909616457556893534483122352457264829347205763834386547812389230571862145898822845818143515368574592840952154572538434050156568886691775690455609293939966796656280709319389584523741944888843242722506323039246572528399624236408542235776930932451282013602602791018428352837957652224475759232830415911767426979859300525432831464644684807671701836690286007190754708895453970735988125742404248592911165902177203494762335008529817630885302578554263080797622442004419878881118818246038980362197939956014506013048730278693178587754785443566667273203363040896737033984390696731466837164082363767794468031805302250663480582456971995667415196116121092146595234058695306303494849896409738340756643444225931493221374122562779467196141183886417207302142826262817832671934607075164426396850001927013553654616307629398128307724635762211732734110131631104049313982248729022274454174435905613159479792924234257287711474230976516259301570644896470239282751524481668635999264472409638642114179207167668968151310230641560778707825504690837980580625560656257676108568054171954657782361027383261099315228773599701099675004086385942828252240644723037205018235447866353967861829839194263506462953040381818498363669713812851259198681716270065158644030555216894726529809912488965238806323777077036439411203097236650504117953634670895510417253040255254999315632531847828247761234258776037389547734808266373550853724410897319957384984649869411084698634045672649488301154819511471161401055076373419389307810490255247300466927813534085883898168420002149424361975294452164659261950545086631713258981924165609421739714553051608805012362999659812211092836862456115660398924005497449166759697733335323980280603554755497001692235097934403956339549563707957587308911621069345154387663451725695576149903765604026280356263899880412366494959871705518679511384741976883926609575599545771438705625918124072632494432522093873876705167097067436697986501537246639955294939794463632025546569673433701588701712162932534606277897737399834685340682277535122837536229803988639540628506365938642345568103684524441283271416014337365995309295311464360728554507933646721923035299669441292187607000136752101401417693734747693352990194836410161675500794632205548048292542620489742410266048883038819811091316518952285557498499299077713595318640037653582354780435592351457527954594005066031092074493718245359115445054806075980891678362668898815198675633421566933504647143130101070195284855320521889637531521960902618500045922597096063334258604344881985739969351981252286584218417654702620867790383486789176830431464676042085176006110946941330766745711763857971340626600761788559808373495282011421513169307512595350457884294602773096632378107022608244718650868287810577648599807480980633530024673666977947781943839073429255264949967582437532991283480794514229034581244185941634108428496622065626663670138065325988899171044471157220312881402317429329502679115669263286824709324037144773972549675166913598825826803180587171452387609878404450267454021141200992397191617821732626839376539715269733381203239638078907966547992410547515981945086391070840301213322153163796662855415669911385151827430838281967534245379601326375075968688604014222389251886187181576578774704272126118059068170245142539964898152817332211320240416668168701983528424828781719490039683325865513039515729259255806602818198146874122965974274573178432022077674222566725987749396294734007300998041102519887105271915838305506872257109592779129180959995654628776247660848073984338063840754386530929697423818519880250381472430038056861626750058614100534691237812407383507330936762298922302886845636766619561590242687216951933357903430896399690892854481954673161103713019145753943791809668459423084927182827664411980981596042858433718386146655750506589882988385875914231239605543269984871778130989763335563313948715488038189221342764884984829495657508713555344950763565908372397457646591200283717561267089054243114903803590961632799694629278298852237775337416206024118891181686689880987638225474885331712283570596159281709429246546639101992677138718907600821101771865525023463412201708058156539934728018386904507145799839023496869595149585352657944523695031210600151766067906601940876541811230696281073240428949106268376706925583742788344263488551036028544150389684654411899765748052035683702429519648591161931827968064250931287460990302905283639712479908445542746235572934765253619727785494606969607725414644082072256818018057665768787159361799064225231531652820353004390551221522014432118499365371689880821405849930271400734080721438430688960871254232726482041124534330898390402976134994918095255496854440547426721196263278470620057713325556214267074713511694611554155461113820474339934317394460353192743583450832802383543016259302852702450232604129924496469055420839417012756969279814946997695730639549130428784619858014784351034232145494137294778712223639820622850094160067187541159599204307886816457661701486105917980191119305021555920407812798423492346353633669591140778825434157576013878162694374498629911945568610345207327799461599570865377085212161604444968394058302359869562217606635984621352225218612155425393360468424277248447809476717016363384895527615300818616490086470793527151102102709995151203087047656628834515633053642243724155634481693048326131268177146343825688014877453520531948446810193234778315043264732740634098115458504924853317930424603173161730748279025995755689470701608984379649957995202643958376020380581031520380206678625633311848512833509617726400050975929550048719364758656877364886171323716585016926057232256428599603936102186309972858596712764735878908239417899256862958728794972987767915753636710475950715912377023959433839444414609282570956641764213534077025449962576658612985626451043508269626965491027572917279713393437748262815703096410963800812032316757353200374139366427511416628894064151383713879358858281107156463068049908883997227844793602905996432313291708907890921632985299290122003252156386087500782981142305065667019269770995439934945115483243015360798569609419595269236082649210517848559837218232425992628601397424728545590398538084647465129214865925078847711535387105081762715946468376835218065987076848934909354974344836206434647556650861920865565252410783361450793807073373649924226351402932543213863736435581018353163338798876158205609946948889968828926269800234384562407692890275647500591367341861319635878939249422121084104807660697033884634331885833120558771093667683376779068792107203108181463415195810161291750411572374566050600651129901243402808725539023044036378088563303742462150196334554801408452371221325473834985488293107095071014240106076544008785903382911827776052188784141728112258201660215334533827759538364521611315390932459176434163052524626594243033901434007360632064506101965972286260041713644353757468526978472719069108425297434743869342466256817706789709054655417059797564047314661852346696363377504398183033015973555277319751596366927867658023253743074288442149882115084164143173094134764742636362361562368927294073970568658237892839322886983620868545181139333741022495266250147627941969535541528586360094780142966734282736453032951033193161400086342785294334363851039094092366129300065757978628555161192316332564553538840046136454635222969445095626412746776842603234507350048953320694237483636224739495478681111106537250831116714909404726993413831471818662703330483914651429277508701312228714108273825201097820934207961583682181144257649504507229517195449701069724976041416003290039787208763336652363949912714733919947235304003019199956856629080791744643665251812972665871514326285849523707999164808974262503157690268574558375025405336273956746595031991031713321183327313558986948755066380750800193074843662130292925121702847398177617394774074377390189730126760738767178722858081477049168858296815351650671479325658458776526322458192086893281000931971132962208932568795134641526819929250687112882701646000856449680458204110422212972362585829669636786543697293855635887933572409367199518662701518829079035248245840371099990278238143761760203673120467738676719991081369627433626619477827019980527135683527498207160616738296773067426950207223326181025090981276808761531129909288679165821003326358672414859700794915779508851798925559810854585168307113079522220267410121731331040183930079608686991731623037620624590692017891807408980811017334292617483730543184471089769182542803907779492672925648479662447628008923413369180857259779784981172188447073008638658924455222498025822758772102885871576412514918545608834626934800834121958994081037517673139908050215204313628751053905350839697848824002733793197094146886475055824831655930228721429168204837378411758883252436486464682900992152545801334632011192156978036967373886221123995386441993810455999209643436829344351899888548671903182338643003372414192157303269548391752470059838588768354288550397215179771530725814246933082253939802424689199238300219843426985983558586031162547574749599962967140939617553579474719970255136545263035538098526190374403196103349027709541838949036731860412563196222215526369870633998351497450821340600328060440761039375373494899209712248503646283596726504944825331222539812827871795671840518632743835155960585586183378713431360154143499228748802605267138198244900598412040007242658459457847952975792965167799021822302952585746238580189164695034891462779955277390463021329698986385776140761045630353491733597411752453425275164690989595056812981765526620157859285526904353452655116225712245031142610049302851679165615546203464085640957179272532722097512025151246910925441162414972861979031982944763233728931051460970445934694541752575053226668110081072009837207306576032533357332811592965323231046187746010191575517401665932115029540728618281249193602743976694388336657332853035751051521934857587376134551944198047697518213389268373164921486944531287376633507376585346927070075394381187210771727514711396306145101367503411954087430783184150433915466027566616261762694075503506557920067729740306432244103831538337240969281604040742170045983934088465323830775676630257749330708231622819138698566228286370079186968465327668480390400595245826507712144373175098967880300774380836393999710243223452990157330122583195343475867922551243695371037124546690465579676288911118600781669102286655557059725491085617714932237142523537304871063880782282432533985572832182932485365618887016178081468485031039056544351852446755572931557704834608043230011148140658462663967386314144385697025755950519650628483689726872689530028114805853700213495978277159350135585435425720008361698978319346695683960707498709938387027681507969464662156400916775638083961972010858153841136217743851249205335924921185284229104843635353934811142800572081473964193706707666508980610798811002202710274009747607567980471914570687833660513743387063788519626456230571319206638878040998789176850594965472565820500229475024608883639841186026181955464406407921695362146123134506632904753912833386364307834188350608221910878068521993617391749923953839165337689542039189434386525313587070522795731744148811991055499135283489014487370146733394564467362079715999954644595903714702837966961020601483327023432917461257442650490276159873193857699931605074362099296653401195384544975565721310813859754880664804908641467108283504550842424389915856688312061779384190169644118343474503351710465357895802577740772436001265273037464220768769835158020363534270486928836961496109037072988569848913218310218439632186417808470699384202109044350892703479409493690448154368654251261391432988296253930105895650073959806960626979531264465549794205756970717811615590697422133671897117841219139672223505442517734387688604784191606100867630063497377799729656726303530529019264557546668538775707462892498297958764280811331073338653668058311183355719187770477127935009556976913719577096002558218020508521702955387640048842553741224552410912149781602869703605561924879944917573908993488290974355653506342430419925474349486644752319372901859552545735894630790336505690823288327536190086584298793229429139988355372080547864380267272750093865804222404214800146458673063365170581714510327382837669229020935479196575535407382631252203018716381901921571499480019751077307497602797171927441922894707849058266623894527663289134207997531688325081934284528027995028994634593197492233161505520612748030424757236337193991404773250009476169217009579051954562810636504565380145518488947030437777885601186369166742771846004227181748291640096097465906498816192461909642191104358930021761009816743265895950377914658481081599406673515743225834100277477154698474600391519196698310443730915394449806243458414207668443824573016150224029557170263207098596061735264954562682711347967394432866246023761581592693821484895622154272769702598081569005939212800130427604935527043752850798066390202078499410451252646434343058322462320984511538599826668208234892764201589040078448732075459022516427762613015190435603926602980119727706169919224967704007414915732736389430556576972831598032992948770468024146081376654614377952274668789655611770822343884758670486322213558733834443509392457645643135731215088051822212201283666102438566716694692236227683381773046739881370617061013758642311377218663483023006361958261603725569570521635739006628501089035813744847439264627477905982884081422083135452201666449832338794092415618093063826242000077314129019847356190715538461277378145556148947569443350226670382643139072883145074252197244603264336446095827697122353166988031087235812564103452136264840969849361944210575690473350297536058714952419504343521999030501087027186833742700874907267725826541027630205402236412040982596763618105526477331843281576454368475496468892513499246152482753692930557354248555041123018903255517125909197218176781000558479944122968184549070182600279056702788382541182403167835704446115603940404237340268969185254379489695968718359962395329295372517543873350026178273945817147349895400635897096754125925051285096459684755717083866502785026725400783534483574601276354831822088629869650032286686917946522392324966752630517467493468351468357382107421534582462277514719488695674510720110752335544836692337873378759018628277157893911482617380838555701844361105294442667410437689179165494235116852574128763725565596140939835310622866290212584866784494309482706466145781949044137872513049632046513359741249769293973940432414690273736182039359552181044074480824195173805038397359541328767613039957398556648183234779806988632068944764315932318968798358025666371594397692519797167619724079964328294372165544162454192646418953143453912245410337477129910910937336333807820635777537706866771645679533286561927155778556883685314451902662487436085634892155190330272542777794404664341920417003566589700020468239659319255602952380868878514570114330758663554509056743358479557869854788543007869877685692700823158123719742659089809267750985981484917196158506481165281692269279193016240477291712335745542612089636302827239199349696046106695871406359480895450454469112381077811058285165574559025004321094921704332386076930691917249144920281705848055358178074627954361860782691055302128490355290256449001091942526830178417447684481815353729991057184555336042802347912389326685112847735984746355860844273204913217622014911030837822138066109592229434016480580088042120876666285200606874649559313313067610155846726039537867087814206698662409710834481177815974404733806085636759111500871466199073756484282530213785129772916836318536129957095434523918600410049330001489375020764140658254220430878247689567660870982900301361715774562947621222601997613517794672935390868447166493507367225062798030201618986817828865958888177234624621389612422610500684981699894119918113100418756840152945453673578348466564060302429963817683026245554718074118478942541851894183038734741980308166277098020444353072302442216368732505429774463913316331809147149785688607827312273881004098060278748383535812834712326120259666637171809805179677795619195404832516359428457089886071999641288495029063189080742118993803637419028287635261476807342151861972084421422592530732309378846310478715728330218945491470571348287399620714627270561429246545496654146942205123502625555371506937068243169788065884240433309622646828221476021504983718281479343613155942018112347536950159613937846238026285146253068076431700703835435264772681475972857078560522162223094497974859030259078770060503641498332285175642986014049368438730379622633891274414914172635239208716779585742235223002583800696833792620813225137717222056541823108095064967951331171665724863001559750271662110425584025496818776841750883893017803414450100644619956811764227550728831913655149398332929061701806174778692748491622980614107188478685519933266184092118158800506969037525675773793470692469152326292453890884881751241778358083542407325053335716101120738800006600588600596681470951843866875659118548937600259779489343092293751550743242431661380384793245303229297656792632849544294391333003154506562465416488071173699444850769607336038131608252194024005663327285281923378114953841054350274694763249519954281392736536619259368386141255862964285371667196468837864852879046612139116898036120333795836945892641746373107346066854793879041664830341720484872729160974003624238788288092175830876700730951328285984913770626764683133295506280133926836544017057993967785556325856234923227102258326493630974493870359926911303428881430973382540738936943204152145656252151007633567260677338918173433422079647800805229921101955637643882344796252781905299075980019450700323429081566782065653833337394224802707374712546601004898870360925814228851532985432651386044726266488543954129277762554083388235445893067883456531251167170686071982466087942916264944636031348313094157802387372077431418133339939298509843000102609542692305331996856416997349144537619484635571890095146413419291423470901338868943078508505057951214133189542902059397326407786019043854456081443824837100267218147635057623080770473771510749410761611031839346283451834865162541112185711174376438604444318599708386379322923959489411179695000666155226124124434355050475209284332089251331645498487458828000417920553894232640215409107684576823941585161157896398725583100721171905422038544504636586064688295749346789586862426181624113076145773933700903181950506014115788884588180153413620835623298961492754501009528115780657587714654227906543550574128344099437826579998382323770456960690178677901489017315989341148585485041577476465497654124831580350900083671459773007713162673325765602939886003622267407666634496612011520131458319679951137393261097609474029140166109185062593876396940312868657115840213583812811511186647650175153117273162539615516048288182484705024798368022577905094160566746252875990641153848533500775163529782326598183233415373443206300586083418626701241240119919481035740792403256487556495455025212275855943063732996201409878049260092252249318024219746375829223048422886964569604301805827668052846615796785121110355055143726747011117774387760472851274021082272533871842465375230759742699700208992335775618607090971655855216634501053191701893472358949090724946525034412560467511641156392910922187001381817136544391647889689344492515310388979581186543962403818894025367955644239349810724434150238970538510297730916621159321747869620453267017376519616937651991816257962180707556705824275784061853200287588673450515708619356162801552345072362001570658648835688408506781494172994989250212794307462414630357625954442484035363824917132899009842952427371912948123647990999133937257934143288999243028528329518441806268882440324301287141958963161853094071756819622186433950344769429300419975761406561948219391542279763168007632217144436975558774067900516693550379946681269162993555134660161786163139649180487462807848076279820754746994540374424522343469300671724434513082436752232988325120236503589605684911600750533817696777325268164804588232596938832254297372489495061093327324081585419108536413665513986446608453947128687442846325964024777298291271684446205960737918110120793283511574370818630151384991759773438190631422551377005475009829729904916722582003621338841421882793351365987468588305959655251169918133879230285285505919984343281297525369087451792144327460693242593264728894891940216008353987466318030602744886881282851975129395306289327486465270170613419174230943203411524389078491425852330975807042635988850684771480581316707601424206179098785660306450851162018755894578580444938937113223548232392668677283819188822935555705635924378053692212593085289357552006001358432560338423533723340232084712671192530943871801955685367633839862909444339752763982280551840341113176147051436375769755822902946676759247360698759830090819364346285699937039575859447175124476148535621920336516777787258273323802712761969607890675085655918494283320764809643499685482929376948788720878482026025958318819856385512995718726639255205261574887568565110954904967410037965663676536899836957106744190900980639381888395607391009784848625536097869750911868535856324728505551883042270156937572438601116097138373349590634283322837000288236725829097672004255303235801487489983183672883876992150241624942650094039544878218749329372406634841213866025913366110175644501925379289551680677015443710278658162155855534706433259834732189812949907201124899439873962350705689714185791426307477633382271166260725559684461858175888217039968033389415444646489816926474556259793003335645952902973189202481907885838977010215810345011179428993005612754558882827682470575026997315073917472432462057921694878059724515159611640429672929555787133901023269718136417839320239107756940963390179852957543516923256322348700542673456858162357672391185081433719638677392940012242966447523596896187801671265273079837386504734546704944400965959686000698345657712682939182197281298683389297999971663022275426116363826748779040752205949865166111020255555553829286118379370239833244049384291762761563569185086077088633250543783351669683066180729111630914273680768688323882016163348377626712686054422338658803404418364320311909378603312158797627360356277250958325845095715636082216311450336241008991128908438112859089274461583768207524627586953326634312812261341290554761951611771240174340893988686980515489052372937514685224259786039332390084742037376300124309985058505178150991835251028193879419810594618454735479397789799364044200376584675010723570377885171590076036991960841828972302851846147032758658463413471662981388263133716330200013095585689449588442670146869182999176217815255788801445471185983435508797172852632744402205989307906437080622915717528574558678883926150003321596615254983113557259476961261791299179104557613814138379083104507377438868533143979494862472439752097551229830871499853792410795615331793364602660038495762665325651993592231849417886904249467941488978769686316993828586527514554551037873067512868152327606456932463200614124220508085193434392234118150838555919320924242337451531703507240127021485431019528534343212159995193552466638890358062957067886241074890363245215973410821723821209949223175119016586201893430404816558491518543229900499272068318017545795073576432642222200234879111201843854430897009349198388403621499048267857503984934063718476364395243302219744755822600609131358961849406887389509606465100518086474054989392062760574546631766398750383411791373995202058739696793908510012303122392026554740325018110085357497568231322668004595007362505462491281863466373279110912580300032400862015758217207098760609114159006529609803824342637155494599575867086729569453541468412941585483002652160220248267272952788047139280564544035487642472353087618406618900594431898210546091992561707542789931059211280649923809233533862171888140512280870300286698185452295699805518526750592764718585616246568029274691937825593399517222261843190272596674515296434156079149594303046114071690117832364562761575101476816420960511688342693092632861906528081334302394437924426296376031220285911004961985753631532788845117017282687272033023366501676016349001841952932845649924370566574833451708442657750678674481627712262608091262725893403000228199943825145012744105134305576521696667972770410602963444504274875031471529099832045382735800726431379067362382577247612114979166806888768927772271301820941856271224081541226658536304921192787130149029282471501473077595593556726126122617436612256119346836778701340311241155894316712800182347596912618119503778071902519843022381283144700750805647641354378021149962930985494265372692062928204887287131908719665203276190727124803451786480698854045880977545150836451272466445072910542056147958877793742923586851757082976790644714919372812325674905551654070753089096934427633919802573873743406669574118865644445265832602095582947386990638170703695917490250058030161693763303716329069057991300430809220688407299218675208540907196757182117613688287734256830215896228890426334824304674779090243141430157334297728588414154014494907033663906846645289763502123482228748985083743127706964446648466224665242501044799504570704353849765768862317383598850627455319593185357383156563317134965474238023914812162673825840461321300102106129924700684641253962828656271374464477685794157919667603641147654720461173275601544572917805152402841584536556933127342195462642634123736720191927355227673578107822968112566192017195102383224535218047573548981850303063394798094617851730712970667147789716884556312892349388125936226185305000932075858314471031554344602644157583916743184131961821071279466505246994524818728018971305027229760500195980075509553455906592529009359407647746685028445078993250151317206329758574759320312392326542805459674138969842345923447743554533237507708284109672821231510088020170727109729997716007524320928415026984555440123600179000810280667052176710982286110103363384757664659962174351005150357558527585969456193046996489750141403370686444002882561817337651244826342078127619434903677990224928224461761912077424347153241633930537715622184776859592765782816216456182150558630551015742273088582619971461298613708967809172054145115991882620442991590717304551368678268169298204999527097517328276308765862925078295877820646390920526436467272565337285528430929776052965859421273621776720276516260148184123373064175281655154162300746600644285657177987386322814578723951805746976517385266645144604366153341314709659930645549392701604221158112573099287354652024135020214081529797463736676436695349541454980041311241797300713140860112790319026895920804383122832285434695934033774942996721518662158904499010447522596644090829190505193288128123634582940905515559639072226218652774615959464456755029528478518165920005330197158280333896517367391609341157751466429380744547271321340842782260654422042476734936019981567335317823065436631964231644140420038890766872867095321034530671007867781214864542317749366543318968452003950043915134875836089263155648273810010097555175725733167972599732037761527111576189282604898396284715905517456464324693961516543811770136204005531930585518055464881745460995806899387714449194189491803828807442944048691288244330096446437944115093440806701955367278028894764715039193207019778101001713556748462082194423942367220227702192429654340004153438373898232183706433287862598042897942445324715755554809279980303382263421601507199268506877050437786974719208400159472392484093060152015599386492083816992415027682679849721399946249033035594985549001573272621014955505068974291625142302586038739669926764555261950858479371646208353119696028992047555774125615376457958067535116215022219906947408390441322377079915575943484785369922154187284813365695528402669765993642248029703258222937200569269146640114143114938036367432232967406551487785790761933587801783086827789339148756569165492478358858015918691095176238402440268322445586071895964393533582443217430727877522825738506786895162862704072615744717131002122961284265155636264928902473784379640062001491200457288848883987547153838034655657653454582940897272334638362075490545416869147089832828090456145391735093344126665808078267275992003711307790691743070488137659216932711186940166893750562440632092712805195476178566044163068850839992623867688934104686592026763437278900221757535445620601913608307604047029359731709643679167520979392157101122864729762294303437279820295661346985883118018281439961364070139500899515529490373616542466396443787781115389750391498252119001322445399649676649905128026798370700627448162739344946029703925096898861808020504166353250595752534853658297841590723126810011979876571305700124264597897899011814570788953152859297648775177667152736527269210414541193286154300788463720319114745651598155464664513557850043953759240821478218647193335120925006855522514201912659213932948635140397503705752261291512613639868832815065243272461232674990773203160489609675871869654077793804220827054947023886953264178837737108209843353565061790956307782746951652151559714764457964965742409364774358814975661786497397829547505048600819435621743066408725501829421367549415697331149363199234680875098557662952204776490305018790906389496944449451831377324079268652680180672138019087880005586676641113406417379279247274359862472226097663996421919654474965007592489374741235478797869206498301412786381414693375303653152686910141306032444710765086355292779952912291063646708858848589584564562870190550970230135327941129927193060986892345059757653204028700282456737295142322739980795354264000893514309020146128872113557806933866383454466589968283118707771649593180637359410550824813329104160536284633062580137461501078913489399560678887644166692046973965587102333605940472923545614301255159270162968592768033815005991710832498946791115625739642359045920500819460696674950157694548448748768222587475012475053673163064009920697743721017355482628813557864370116934757055096393347194176221491388558377307158288813771423990825852886077161528570819144249702225824832947715195417297476665871382225546764874553205799507806992273689493163710661352884256408208643813646287072868927489032547180435373266578638091504156469257763014711665306511898460291445193748312008822754469169024266821359834910452313172430194556746420360838741125306376809269408507473913081270905428342023718298999466487967880659632708078421228461948659270444527167656661677680493628628869952947313382362692090384721051347769996567327601453089376984390875192112977681520146969859477033891571326374649384740672705139378152589516449299019856771655833211185028177334337344623728761074204978057596135078969975636068640607776121513652422619310081996550447411490324509777880096175681810694564577801217516085514778283916982843238826739151642510349137763584298723327805874801142970078141846274056560433292048265020825427716800962828170887937276015832401683715286537275478451463030069118309935500708327058218151749494549367138800256550224956086012033868753626963835722090654199120949481719004741647959098523995549179924421409439072938594003441305263928607042495965204333784588339709657983362613319855412687153100596111591100789858906195213054246022848351272430191537204342635162871131217767763472042502116786876047468280216684034365434917082098236901593603589595913730635754521278415511021903009603998923977066547505007004916771214234547029385900425444934510334124636451111087705825191024746615553191547233828943097014003344074167028753969265396455099206834753180371753200606497492164771494958479380052080120210441624396150418982963618269879959871250187667395957034533162461584742279160630318497408666959438384385307549172950048832983487254827428046248364565937183957621732828260042016407244572848773506152946025296028136921451465257296564198174097721986881051095387634157312458983304369955173913628467525394293198074853957294500016173103097956090203070974149357157842802431303072993871597643636089663478219307683459084114210167703802699939901708923571388236573218724372345962226713885020274275393600955441607328498794864463945476464471944617882098350913305938211441242907899824219623003544958455329217346188735656319367697079135340059012805153179334619366512051729777715235373470303203628484564938203584975538331246867733554526769105298930486288970694463038618638067011326235806319624702776912143767779518911123207655434752723939993907714866508939553503903080875654382579296608367827533065968401186544081800464175750933430548301446572348326127495168261660159241647367713825611074018386476323677167450036159933422282120271323564837902094618675281316730931342260816785401669020371997399002112431312507971458183760911431037531820074745496134616894415196830310971537170819367763893774598783521633158733465137547259916849522787801011715319332361312784699926041134615511016975191884649037771722182084686706062102550698568023998107799668969343911055685329991944318496687361054498085984056988376741521759732642134547808364805474342444785875342571462177479084537662289141468986668095847233123533994302012624660995137339957505654824813790252354669384333901736085572319945925579440524402281316624673783139168047427097066998882856863095512930824527764391524982457872040102276346674361607351047779046669502908394167250455349817297314307733291480462857011200660901404525791824760434262515613369194312931885042637434082378739075902951379522524239562554135265585874596514180029947806448498042991574362838154228907651116849561652398961239697445892186299110602444368512728483057545068830137916272536238169298641567044312071373645891694953586693050818009106589303619208416215623026716812736370172034033361089016500293904936558646318750188176565366195851917207902257772646215054103337489639775696718557051592056888178575967258044801010940376319734598822251032769282338134494924343874790038271690704446668577075494517619181705478296064503803084434151576155649156518010497710507690749284464217717981970346944893250401522968500520450665565852906341174278977887014294662504999406910852377418172244519910221441863456707791752500041245073328069247931664547110849996684166228401258101746388480954993685647307265530713717867615320285770948820828185100200235182656537861533611209831621191797542456835085892011662486400102627878300409627965299111733764999721793945593496877585523600366911664276078683694856782722046129007091889637160378637568307265325810692016416977944500068853065675831159864436398633357988726300721628208099017001144971864275473820405182001441748288194336281952579734887774981303454770577588564214916149132311061952788214164026359743856719521347070539608091317329180197481755742791082918945559495637135204501086236444732997216931910848386691680750319450667120065599756238819027220106797492709735871086351193622838395253314220280305446795678880169613087050651032032200847246812616488933048466215776245866424431459400601583231751855908429388294154994185508435040458204333387112258085877214891139247035257644311582710395978840252125286886937661137062512304287667614432358622044492000142824270296841288658613995987570481055183853388220410054954889696758662131349415474946624962005698931485479056237043622683688196282470197679199960886364046027116048300704836674092286020921003955116789143351205622034094536102232264298969238150169162079997184284308078753497227348098309773667488984584940050228756721041452577435940331813425351433224363407796613974043843366327557320626573335258690033671734498754612277254467164608733533934692643626293553230491056885720299474719092387597742360597924906679642537651473692997368401090362066688639425639030412903035992575919183592268307313447196225687326899364247311407971574284423401000654822074240191396104475800300802604283158595181680936527256377548307552998246979253798964907713042849627588480329936964258095357263633458252926826479062544754959222583641474792583194070987465533550227718107939428424858562916342509229897048189747028542855341509961327105881425674287827032367559432391929801903000913106150274058314313085415073251783175611609673490930116026444214054839103424913226685203647988931399772724757484118677579630425257622575386384862608309409154879687719434754226271967369496665777164143961474340276895779832012165345255731242829357190924498218349488807185440382645135351560657018784834449774712731638838922748090079958914534332514368907545468607548185646562583853394810415597064352392584462448753195905307694396206359399845682870308615738894076455149371542792677896567009296302726092783837809770279192445017318482682125707840277439281192624313180366962644943025285105031003975778964879300444102262490091222654688188139138700792595061742484563451653005289386030706002844397876617788188660503038094092416140359655463333122927667084729332719984686869935724638909947416571230558027980680888546864001098309964916970186185015301864742914727148725386374581139253352107855937445980517158463464229176988276585499484507774888095151135837685850542311288900156188964061458801468374202201387189340111018269611199692829157583178856017138017624609229795792887813231204410484094383026831103515221346933648462837438554254519537954879656645625203445600782591502695934445125062778394187595532494842974590937723850995528230650384056558277338555420905365809992510533636071477179974235232411165474150912902117091532945403188761531335859031725101559347827372341583585011102705346545813551254739718825191081017474531676759281306150539176009186993835076674040162927019540135360936230929194083943635316668022213545577111893589637504812498700388932022335435885532476566906146984973910590217496289499301307908328755798683865842457455915163643221225289428079119228352414236293512722851461143890405328260291119059129523663881517392874539731882851205579568102131819236445730867550629156754659324641030853190629101590043786976752626424399814092806425249469076463757006451185118633225922455067174050456877921287693426737563372602164914447219338436259202080138236387579827201128549815194560865133954952671106155083624299827175636249227011447387269165610306541448102074864222596642164017192869649385570842964377075739715735791333486476628974861966589207498481190007896105545990579811904937495372886096532476780221746240976792510806322303632487557157230218187824256153971664498451000766754163717742059922378467600778116003865070557529651855991142922706504050932154591179257449576271897947830233527089724180148431824368380551661108020485457108023603945934588378553814072619618921718703644136426464951507590780654196726910390601558959374333617630992431047586235176491949545625709354328442416776996901969836630128500192998341391196780016519531481111093818268212035237134403783239950889728913017574752611675545188644652668571024669680443553526216429539278041168531490564173593988246172961208999786496280164895146357413166963262332077017418078164386084875947792990485182627201825877780272007615993508519313321297222249828359954402844471875199669206185580528354416905505015655898386889054071964932601902880910950974910417010520143977862215659397669601872723375189633174438505805609458301548066525678235164411978702282837455229137468272759526625266529500379392327417663877391907168975039930565202412063608508852746731227143561799109412429695411993853485171719400288051141408484254027169120950810427685983204889414046494311688890788898150867901452780523183370937113627397416770834028760699952063690765799338273809456379348317964822504075315545108631144698729134017376170005222556765563442698237471066786507636766598258890953717658837609740565599749274035468038904504321288740523559626906614717522696200104234048902333258252455920180688342933772171452944374815789810863791611745596853739898047281692995425107432324459917019916377320044397995452479575139523985870135693792380667303480537859430382059498641122156191696264750289250974161514704897755636114549892028574116411901483006943777082122876390373557355711273145288019983694612322167491100223123988800485202548762869351219157533746577807029161236859832879546523759823464081472081752988025812929035634281070774117686742452433242809208956917287546903843720513063323866641605280350557466517784332434015998883375537202059296119486519694665661554761855655639876978889833774335058833821405973748182064445311783456400663643541274307594291554521633518080141374628690109574822069167769905154956923460752074329167461901605842464700624580030508365941214341459721051212233836632983011416642508930015038094359523714922708425602724516843595521347459097373532671599172530742423333797720844592990159809972280769281802479362749314735802720186198833170997026216254356131345022136717992819085849381242251230126496669883659899300321064786629930167539897668498935417876940117875062432633459213424864549254464010619149799880668114910227775692462043491894468884315952659512659351555388281876402230120748550406148379658017310912317409785589178659848157864228123542788641139575702997293900381235859866452507194331788550147015650077921817172195221346322061956874676166220324375114596642945368344641422303551713157068525528921615791089919434733016421721227067399202818032873566698421331904689287380922863121136580321700952317509308655305438667468489263299843626548052328841453814969376562996535111526677216068820700019638446135927722054521564795555774442544491270280957598610095250166649234354172352341142459709777567991063030011050739229105319491340565483959038943867162806728808029579233557564229505957496050111588246397818602378015700427817691387119982664993436873786770420852454062772586326306632935349557044637068684923260097645287750840369158055213786971897129487996079169080572252342039295308312232360274455251286307158338915754649321036262362099537280995614089613488532993011279593888967311874073944219290003156784988961111893170959166472428715972211371146181800526600221765838727604084236737900411702476377884809599790538102125150901357364912098961063905554707452756979087720871020748290120026878414730207292453291151569378189955842054253509824251306560171537627832611555597137347427216690032115386943868164007443960006777328744998905222547665407397328990500231947964948543840447686560945601603210970529431176146308905937697513060931401799861198446980749878898880613787760164673861887165361752437395846154026065171844640519250138727443735741665634989677045200626098486183778584603180778685856817969797237544023632321365089521930969792853902275543173104815079329854901552580374485357873488118844133940645497405471595588862125735541618747283125461402169388058839242062493045965683789721572634290266835765140087919801183292412754573182028978963813998980076701844248169120025211977079834521420679365477485988701071026732303984874082568942006680570855866720570562898744459995433267907365226321577874346096465828060471517711907239042933890460768196023344200370095045792542904250233952660619283185048823583038429027965317256759644685742076726989446705994072403843173271530283173854671887020319198443572219410628124625693774027223731943848298384846236320049663152177984433980606021079513844855272515799466804082727900235858011806659138531784737959429964273510192694806809694933566372933627760195810651617724409361929654190776775286344714950447712108204730526689971600831665910873593525615489062625224324186904640398559624787751104626091462975328603412040895178118382451330529453728890054414745619281870216254930858534442638559185938915421527000164230983713287088033028004450222359491280617855056858940316901563936237885999405491449527794221940192665874864545117889673251855872305433332083715362494921178988393252002935482185623436805115303655545648437376717166444419420727623997459874195276192114568481140616511281524465034923800743468630443347383047498798717907203540355768909005102733673601852976548175739955381502793093329712469441201999787460754423033100680344815961830790654801796881306645949810198348577613694835924542751018759085139944114244376525313994137069280521002389889081364724512469169451017832591362268724432915498421255640494438786314118769706526145498692772074540666570219924262712912568279284223144691884675229086173874319692660638977734677026561699428132644351985347960980584986955854993169783023882844960399435191982554850488863984926127965214468316471620793847890869171469407907383394215608297240381139347469724163685000039920452097527663794040334660943367238373907508705721337693446567262352042763742923526904066880045929391183684885113829306611033853112162065284844261616333810196851888809308334258950053637889583987567740007117658076054551559050067688966048998236276380982747931181316403935149478387176230389509584771520745227489872471886702835175074645532273938955199378835610205084225966868935878437054351295149868598572617803722691244018509806374730405700274303857223504163289397102686248809010542784481586552483606673301732821251099261867769754590078029482581040531266506885008205807826334755500714106188100956416436811572607282096555186246802976205411715663511171034505757367934810920275167533977913936943050937480648473824425858779468505540882576021227574882713132981070642312948476742648195988467962984116203031413551991462878814231353454853111626914148233640309549659229040948620891545097472237025056850758147474126368567899418476243213403177148580080461685297980850458101833508103680499629330628078479544052081108558028549391392190604796373497939022629042267782893151452397024391166533579495202900229447939177954579067229633530864125579498283955634925631072722989187181843888986643870703946384771833291180584463619845409349280541280993795257080791018374956331492696141707465075900900715482063472775810467878090161161612069099903711399299609337524375047880551343335957419363271326209276242431007866241430882014269308862861738173328741793747609123803253569258702604851811750296043477790368385975966058711655043286331989548499023991028687642096927871216617052304593561986558522938348483282700737765259246283186820473886994990568276034685749676053048014247932264002480894217155524446140543713497154813199505327498418665825626567327057987864427749561412503152826757712613853098691199045429296343688239753746383617793138937298759071055286798113464575530517820358820078461237832761428081319385044693005439210860462570259115976099392782511755842141166699855581738325279699895576018589912257500399813200858018087715784792465120462021906403476375341901387091633289635857306471230346319827245878132364097092309533688212300535745012366022047050799479919124381533805589901164830777364808697881635985011782542409673720852682487064359450901123672366356325211378140933462476301137784281707010218448258269464948483930302940187065819594023704849120269328379880252167767372913980376070230449790648973563966538684522508190704997017693214925016959811822711223294722923166486196002902949983188775397520144233699213458731440522931389929251310980440308436850189392351207069382590524070710729952275741355127478322830314090644091991421996408391064659911815251789464722307492286652385946869782360171072279410088524722858097991634458100067804002953651580013003249260232471211555119908895823522732061121320891975030314079551333715645169379113880150588420639289938406999462887166735991374500310153548729906724216586442945254261620588903385666681272944072991295445152860101648890693321542115623844109155297358651073248819776647415916411553429141551005408724142614201936856427829917079859293824760356174995606009483938321319345899874991117466152352776843630949051544509286593925040626168203553449120150477535090875778061207492516599038897287907082361674242221719589797691287295087124746885747942721931415331772658807596436168388847724545047553275652335622412185725863676935468174693209365939148613360197949937306555115543895417333525482588202204333603483364327284398782625230267978682113853535448570145979194502673458491182211963537490282576010541817263301991537453908190899028799196356576045230694707161869579672813154347994414010101213766479201235194078546687979915764529967527143281379328781555387387090899437687759840464889495367720895744672313131927289758666347288811389795183825523782641719228194054073829301606261530258353002248709185882984870259892180164233279291551518476258076844041151500283178329247465733904402357192267218735925187411712982806262458980116806017775427106338368700387309424759418589544797624015375208534481713715401342871810307762243461561162139034369878834822279985259462479433535622319447905498315761762695321132609004848051635543800536398570071680019397672990994871961527064091754136174725935212143655254306102461089395050176657949267044782212247666176401751980116048737475185429252280758552717899088797440542224166726484084147853952058590586486159882630867770581822243401697701179930943295777033310968200037826515142202659378447650433531568233765826480064113840323411612679033160243710860375316912933454932787400481641453118907074000336917275338205068489955007627150348673576418858384448782908368949897537025375881250490307251003152212858894413783521851920909514036006688115181615758979993306353098597265026841256576440446338169114821695642380075190502028595278399049361253109410026210280805858364392681156567168149611887137327705030142550383591577300030596664103694211686833889724613907529894231818661336674474179156641895417427449503962291959311798324500484723335976852577801859659547028466242689206865092178532850491664082216422661508595897090958551297079068121203969891379433807550112805620250527831189301260437559883067694756783892058659739622680805798617302659828306847350621484104787498001662764733817409422991789706164991454621882087889236418955654606015539511477779450055211557754364888926482542745033586319190263338785496726835756474063939280947298632847845703468156234394661331203026656097849874329325362892551733795573255429319130279686576226661237635678416549308701160323632999775608504169120551339336552709792974897684489041820796844793737179781340014649143793708820446386172042733125037779344773769312568679223487932061378126893982387955302323536770952555482889500170434616497001030058545279745376670526998382687859283924869898188819658748876973938410763293215759520260281944072282482429294855782872787227334817527173087431466718320416632415950544337929848066583685859712345788049616947880394657474619036841856679370968571322973087004033249016329902687409018458389712814362257868992242089644664140740149328579952539786274922220059592410848370309945301719925358187886376098169400113883038116400291937417319243396119111586268518916858996954693416779569287856619758951042680472215183517846186186139038796799093405039890875455253223123669091111845191544172101838127260612109652802800434235291445623835150468250663684185384863525236995458978228104166345842935223736058295007579856674952934960187398897530367435674142798928853900702041073598819275086095578140717041450710522796664518953418467244396469123213964050037138139673510567238867080485729807779126019561901996257065111866944329569896977417669655074063244784762985410583481833230337202614757173796867447560549950959762354460451171991263760094069371340056743629182881286629339526820821696861210711328578690916656071426747018550544471818355854221464467916644712697033611025881316001376806547582978317064934556874058622622898430118317728001841417377988221128007310779560761673037877564981772739906698889737254893683573464818685795119574125389388876987732042074987461563700350952311885290775673090430361121107075340678953783036658894704280215702666238429947249854941260278524449953334969267048518158913967428640943823377126844753837338163254690485841881867553410851913035622955099591575799076422731565651249388018036596771849922400425605452648779653874777858104631679422364415134139413791716090052285137922052385246321966094072974932908493789663777581810128117197504060325986212305957243483944624524013292996442432454903886705869646881095097016743789240132210601828051094019769574431932811312415605188079354949503659360404558316229767273495528079527617733609151081100655062247055264013827451228351592236282492907713706115059015869755750719780505642049020310175008426603534901802946489615524615825292514021242552328664618942168013531992597724428675491324787758758715947994170037973590458937603961956840263449681865588961837908605131237129202199357683709161302776923601302206303178914402713494028150255209614768532703727850482644519038543741204311301649984074755758045745427338741952676504978649092432652786360813353263135949073187214763537133132007928953912176084323895278866401395995608494645605801660528749912671785883707243708596216548272916625720776342097463348384549015224869268999740145762710533055524770721152077071553042540689998375428884797957674638125162018034510362390017238476029218607994751215222393233452700206141262015693465372164756885275405690008999724589428547302024862874502446454131963685666914158563959185182818258770018769935399022413803424008590730237270996988717268223407699282408906574139188328966932827261504563996656114130073610081788425295367575542311072738465522849672921280996194107960538008953927213059570275718385687559564637256887287551091926534489049067086160505031681057391928906383538525642383561015575928544920606202454514723811598772405943586602420522574099806793608790471052760474616364296033669833579973399702739000933958858506201959666890005144324397982679354199789168726320074672244491638355149022956608642978674798576919756318603416365806895781400759545637962335386816636917006602251026871160193750381612297889554309755770819288531324117168646498557885495384214208892149064063971472326967204710279446568565295840682377008963493160659200725525102543094827275692594038194140410668658265061273470442689246086901204707839031489837479177556125940740826795016121091393950263817282502195690847877003939026627943329449035721722899216993831267544625881140335610633979948337654282463322073703024168898632725103372946710971485309416529250166661210356311827868485891334849011310523805975986901189955756905723978814575922139580086406460328771089304344368903449318122223872752111339837001266955580573802220643806679182409687367376594437352890115037787123264001738063655874324308780215871686202298519930325785303802561631571479418106114767941708646979144509148850208802760406866265568789091513245478374594519470743189067460573307843770953284814917470449847105227425288853040112195924184194129837804630540056280524728099005429912202478532155535077285242455212184264804446876607430911343559102624850989456056078031497616277915953129576186229924922903501406927278141508633165199393699593799706473699173075183389178012122572641153974756319921823930318262261627248974924215140379952247922922952283862566278472027781499898752152898604887496470316557930223003098052591517647983667873214403545691649047336555525603627274856811892046976603850858026273835632569305923283067197116390790486561572652939364140435937247894201717400719214539598592948498617121248241857834447559439993623320931223373663937225852519200857704302427648686471861304564450238410003944126405665261675495459758696876175688847969734933620984482180437926862117754258286374789315239068946445980479429327360617535719632232507244581020291253454343035633593403792911543406175112170017182861235085516647290330971092830177975621890302515889457668155038408172743586045329564969438536849012228261183778197117980830195332388828987543907442369869655486267174726898812066102051449154155153169392588998171137132240731514642552184170951516876954777319581886462411280355177813083563587237113202268468824576418125765133062438123134440872288749579813567358201510493664194196070470105724220795018925282565595821647019162651953030494197195423583386255258797894664130970651659690664213711241085599961444737420562174071525553977239275753816600684153871162413789620197497147816336713733600639782168061836132458323788387566589854656493822139225807210733280362661649760678526721494302271675489981240602059247223536790376409044176421543486353486466395070157559239278378331369257627961860529181457581584104404277157688435851369466697234026617381513574746894743076116121087783781646463060069003273771466548789286705616085716105302204102090435157562901230095442485060256399796872278406070802647106207238143806249580488126841662503274943284845600875767825312715562749595915926550260105751647321750215220358400328533908402507165738445407088850407101586049887465825524753374978633589184037733558305468911287471176208311957993972101370231867134064180469102463904074050854834292292890118340929983185960890364422249235113892622392421729901627633628910132143517234975929465276230346938115042078933295893258224335497910804851253941207713816675987934839680996204773306610293950961339763957061379094426506151785657122584036095574800380293719950677306400298748058632851972490524424582725474802358639613554486958593732098200664842141625858824766313277938491269100386056672558266759467928899935422599684408186401366234097925248060025039717457054291334192073794356960012799937488241150517486571768308170330944496297922971599642809265383286426427511693172544873679874249606314559517017688949555438104654413096378476004806611645588778141660987324853025052173262084525386639752688559614759139570050527092065245988972786326390006816215494775372463071337326566832073263779649648599337843523081024380312017471149077003533197943039741118134107274558932636092811760321898292557635971674098616535551139162262241291813529709368957282140989731312552415483576153122312648755016074900426264775457367202750440070651693438920130145195984621755504686421588316915251009025630617115240502154850912279817442460363433117635992383731947987114806902118906670430840228123365309076406502805496606649100993257175408469588694721943362371601274171360342704792957094875064317352491060744909850744256691695969315623236095006010738427397769327139673395800902872284060636656302703812936578368212427687043761307677178587777511738680031693402264522596071674661718612519067791325263116165807008275907685231117609962908934601711296252107597721093750325343248212085187683891046032264580757197901597174641055043358660850068095947181639339906704873945556472509198854182848948578920644202429249394078610267231469229213984166162780944736123291193926322877520536343274648320375972940448196501869578583102026232051736449653736791310077413911870296910294034310838313028560121813309538987557318229603959130882785403426206645498454233773246969863180771183309500265924991657301326855002906350970181323257471045007464979940812394704534582111403484116853098734891022385696929443018987575915537361767526057770333246600718307996026565392185683440555959440071957580033993713565668033896004876419441718347193113172826001945518538195810221641172223853999613226140816336381077295452756917109983200908124072393788435300590058512362917600035335957165345731642131070727133799843849980137668030213212313083672654005945771096060430182082194811826990419555139940141481174213122177650865956829308208088623823860754965326642564104849603474996016994668888612724272911436631597738858902918248269583131843874622440570522717249956238802790805786360298560530115673214188142301134685079861445553057092272746714897075170273679256767979708495107208050368218371050117147372249844246897199010073073307844162553994600731540715902696466405104918443746113316767381310787826890419854218166108810418418761211836196986355591781511500471855950988335485006137464459426588842533445994092932150952571251437437089465214926585189672900509356123811474321174759064213884169971075411488762304327492208505938100949125903449664110553627140814969829042631367758042324895504606433529054184407671934349142808900336058168144348610469542907028780879772784318902638942371707943514125171470980382345985551025469178820403292050463853002537195469252600206058123485946590468423106392275584288913388641925873030668491348791742760758084449062606466261651882396115054288651254560769289689856575239907039838700982510990514253997301976504680392069064585123393928340838553098840061127876676828419132945825923202991978879701780331616716869779770484800393271900848439670844301538807885467751645244383744011259719034073238255070739602056091911760078193292843807422913155824320111966949953606424498411411405722573139192887430557073116892643792163009361882322160770719369506920347289487658136902627506414485940079364399610421367172113338605922154617447206161508845805068922510940176080289182631600559723729055439208139059910813626273401984355426990952886910643145158342410938408415243553417847513913370981706877823139991738653319619471257260169744185904634642247299253527696312682451711724930664440558546625232583841525878217190120387703772241900247221111629487744681115860455494620726054971365547842541483999383673931969635921259396501612801477930511799893233478324469158911458908415974832678074862030023946204346915203866269171764108365879905986377548919677638811934626853366843911672426558944971728095437202395847990200091745468840256844334744438041060427793163325763116199776644750039461872747903626564075492535585895565080909034041096239894760825149594890841720245077977961015811238439706131416544529401701094966236843629942333792724909328492668845844474790118193066998100595877592136973346523517270338701640660141001684160858006826006356671909008928222801925085411104942574979118672155105309753933777040676560842865564002219708946834818717036579620939313372326367966740762246728215187414464645539281131552377269507015455471624347075526392171142292687600029868870035755668236895275610963889178051345991381303983300286028173159383207204655543145529266618177336264191858008985857841501661281194585061292615656508778652419665600710211479251602180056455315027314127376017805597152751952630879844120537320908629309327255520139787643634820891642526839602442603835458380167958519087873810350478726235108760754052901395821326032187841877955364356832457859317886152413542681465887543658238739270012218392152613007276164494026605363382221340967725715570829807494799695008256522131272984958549455825231967775936762043223932471545534110133979512461837674396606237636623343890108983055122757139889007496870269861469002898718052668094329797614474773699664954919978477514429083821695472066556568096623338535435365806201998496261002935931429890583334894365779060971534913131959973911599555502169563777062125873430180721490280859359636570302297671699563408688003446778752672104345151527288034648613133606871361172928437152889431724752619540413927814732082710901481764310097875751908771156022239330001016121795518399254928744643418985865044006904129202195261661708635971120224598655002256223004632983522439356967227669018879562172773195285161475307784996202666928694751792747139272666184421768830100921437579776583298571930701763619169121677491506347387047925064622563179664222283709281474068895546129482416488915002215796955674062647780085420358230123222159986111393296161644256079988438721998378695344714412210623073355561886201394305486665372709458482098676506324599306359409749054379446055354925609847658016138700104503226153051784208915602251993206037909881362685978454332816498785387768643775122100857710856214331496928690466749122668938627352916364247738431802296233456876588233045889641696209890436960830038928032539913081963835243352453324362757832691838058389068997099144511893009867251495715697435708546478507622945205242889529796939002830241531762386201840802579886019556335819947497641037876708139629665697153363686633762715849072855260047741246710538986585472852492530956707393120404631569210074403940429985095531293588087368256238868586196644133911600518187278380828596905437891136553323036300929448516699877863796633308731999173168833688802228385255769811456697249579074445991646313464156124665838441242663121198119651204856849657020467300508002377309100916017202721952274763536739107638222345384096712391618745342317956113618866118369548828752752962744982457696399755297240109549903839859520017329704116831956407656533219043180178258113525521194234257902258094602481835501804938200033932172528860148924239299814460075448470902637009464891103933632700324097300084540907053900405000874176422295861484847325600212160635062279718067959084165949022895296797584727063393090168493726027184855797521447621946607709007749481517331143515949459209158807760424969724155004382825818287610811556589609825927139255243070007725127813775010289452203581069108820449836455347486800312201809059046213061959898465311691918382147440968286583056041328433075378856193694087856793792240209186589209081546441601951416076206028755354484971837731730117241546408297701719574215761498221419443948034000201151777415569606243326527063208363717297654844056021633550969350058303349217312066329320592582255359078857396402047979820883165830072731791050491713893262200695722934384276509240068351549226547014489607578267988549397065748579121883357675863648331645388143716820341557694054777530547055584478638174336562224516101122635305435498559635376060532932570427369722522229482994306316983471693879265024020797236223146060630529447512992293971103188811364476850966506425926700621220036249019048962136880353380025913900981121510219293893289308277501859777406527709013609911216961149838442818204572519988470607941377164841584584686318658754850556712800152431520718656759701540420343745525809261409653250436489495879403548194989798902681132466931150917501481279669986323120262445646740515571723793273695876100937781521875199200883396695845690503758914103443388918785799346426853014457037951693852311621608066046177008030537651286435702647653083888186447992274776244185819127809699167382523336878449081431183591229067617787007836342382518547494690381867447389143628694837504602863302173182642409615114748469528945831511978093943147847007166654008759777516650877196470085540386276909201095308802228032484743718108543530516977041036477873044412372040128359529612379675029967114633192914235681883364497970919741724655438065367017558331666943868439545820697694668995274135904560946426681696654444272120163834450014613144021271708178047321122096545487095967653916478917338282467729677095949174003395779074188696781106241732875885291754235497532377164519089007730995065071320479059556736173866741778918974635241141224044778810271774517054870987393880270953602867939324867739114412413746721043029656943646165449790763885694215773805500240094016109711876116649941693101229441154090898550675372794721860455937918742698784619498543862592899912068016686631386455020686213584350446863817724912412045342675034941303945637597401236837803443146448839961363603850783483932570932141514948055767870186904487470242942400646328974043634418811075316885442348368985694099436391543236258354412550015280702217775563770098492809507818408399877585965893780225088672623211747902893995556292163036579781217491543097173367360119645410035016978010858145967503306980208748206279317853807164685456515771980707469139715024529058532084365726822980419088771008438141264978712826708435307588773633925259850797953652296101313976021948967954859057093587695182625294723586768976167277802052341808392752176326600682928892785687402422620433573102931929974936395400019309751496302129798698759710444108210454028645132879157041078741529828772598224074786558949749672936073123982992166492929538101448789935252924831518804007709219499059553466153302117331707531012541701582337804161360023082918664148459116888118769356467172749110579728195303971570944129832382748760729122657600307990192405041516873815106497219516550384285746331411922008596950251354241432937799768178815264267783876504864205189075750546422608840300935682917978908255689719946392108509530868421794707486159956928347039048965001108064232137593457409948343509082658879992936779991049351764293167922757406157726946277423093164550951042104568166460132867502705392289488958525974495670949344682356705754206626277115694904384270238810538657363938875971985878972332569097368391683071525760325288100105054245803592049679883139030763530596580571284463470565967513882304080469271550566848935650884461126422381953400556803204460605915619403825721140530123251932716718334919429985793678413391845366045210125595206395849623185786451765155590952810504310291547648001630431985913047458325167646831211180191587999444225396225693570572481397147184983187008768928235648356664982435097516183357872057893819001456628467015435025655511054213299117548767740135609700130996392059282811660605131549536153695788657440708253093856408716952199259281290566183277037926264212379948743420348531093325766871030983526703533914404183926957202946425842471217690845443271807206788786060154861590975053082111069293680513174302600557826618497339771244598449357873540642410220817564083293027093636823845944392451257113157505107880071150900957391833942644360823146368459492988980745845757675105762422992939884173970023849662932543818752313698039226004107819033238875131461366696428927834033109561598467691107555076937365728682279668826158716877726519340350374209786149689820495679357566474694499452363724491535110671473351929889167688574073544023979589150077611287010926219493965412695035546335433485665875113901293679113522038170699838715049531559498138897338341935108746817640551029563992845327850191153772208634248116445099615424422215990091395683569568145319290439160549836750163189027778417695989247979186404330840614664338701299884343577388985266207192128404979277514498840024839136462190353652685863354836784438707931499418933251372427355628851718187067344386088059839935709447228481427449515378454430693264871246105499829446943413262526977147873398542654254627614661863102331900915337188535246163442276103713426022010980700900780317995945173725401441616293439456526948661523690950415123364671117416244026459728375086258430529843286604760605851015888193730171953322724880684988400788795397701418990698087609297624725731728174646413016010715029612441406778298806642664632024563685708652623739253031979296421217545271744924800306938971055576108654694274710151192098269450826052329777728071035034904374843140313197760152960907017588015710324924533571977490471164858489818428763221100468083278285502754426395146746033583377392006580666918495072213111277712029259529556164326651151277010745253654979168658021496951113653928597690876640078888938571593993625512678599209330301124230138511812404555846228954783815211194916816249058538325768698797689340930164721145944615013006380841497841483226342901309285341972196941891015827985400397843311255893170557936762950111473473226670413297921252427579269672691059903700999872779843587541946115156363952739384953284022651982082248893651138126053864579459238920494224267279381544959193459926495345402509984927490812460212307567666865776171519222228389263647285797548710951317776173680670643812963337216304168673446801561109465612292048238712400961792786424412561463783828823941581101128764080857574055903385844730135344322057771149313643982022276874710178411669631509778972618270157896945382071165490972188024274517282928964056362591266321701861575676776461224201106322620998251043787413814104198085474343982734440203309925010984690993502300736091027977292238630923299122566112930959905067776427611198880032630571447625732884203525379116989890107244989839911216492475171072148526350797173767226633347073475148756695977511816249728660967428813328431273442052445271407048574315122185842452779519902691262948452950648773420239697374610372599043255394546350041258158857575500631826443891010758850597525006375570543367619145320235125797532361916876265540798306098902592191515234088901753071286833988613948596169320446149407694895419330725503890577381865171373092022367862990827078560918941436147019097268411763546472994435219911964024660368332556507091813313960360232802658702989200913450697120671427871176401338867569165272548547866688583033061459853581426812562709872633283769377339555453236349683178945431066321713353820415034691970723147495262529113900765519579617590558347490196200132847718422122364257967408528962703307252579017175626909854587905439058803930717972606225854717068140784937660917595241296436905437078045825299474646004257081530211767237742597798829461372183286460851084938170680426668959618674995955724216196111091072651596999261864519328048034015447206501508434452140464388624709948362710994827764502295786961695484123652820536964883304614917709662981840965200705272067427346014815926530346640202626555241291803708503815292460964614651949331253186218579666701552513835960714411862726875731490131575052669052466566899209226078511128529708113650326315665699813752077734060641114547518035491808466740761347070461684013151783734036208810658812991391552639106364165186785397635764786638196028542041773091182761036261881703782801731857293517087239937720966947062745282824045878830193541192513438758638492970073536385258477341792572762844389073241201968765676845865279758229393207058396661911381718944022395433241526176856212875503966482848959716647605950107152274839871542458870394765209818518324498283880104083951434520401023886359911275013393110535127770057656634599432245509661014327582723930374650017323630934345235068094847437894263940532921501082999685611888777795784852434288572609436110777454610674646367614323447162602006549626279590042220297364715705630006801978977297235674115743651405247329432501885690159307500052608690137914158532414721145568801769813128995798739003997865917562049359887802776327056677294859040819955961928019546496532918423632443777747728332163708623298142694566477149898557170674885098344167774050577637083650065656353262827012448549690600014577427996603197222636839137899630202834281961296664738294724272317063819643806897842967212999427672906531663829330319837388276170730964695334462577256848475216717495710052501001339923186728441137422830615759919964906524533445507068751470587662345150507739369122746856878461220557743833388591704428506998301139893692359461437957065764666357995413940893749186439546708446642183538095178398876404502453814682158418593167641381707038034176118531389729998349869096507345002736452738622167032612770428857660385550628772965760389516615004525750289431161385159936188920925360261495921340251578031910891857522192264709837229068814000639499245888407090429463699179578491016331398925513206452351824978616178317820199143186816117585089052336694389228633394079710631629280914661156651848178452646322086597755470948821009491169516495718982802995327949824158322567393027632504180180139443249962570895848515637479148929657849925727164917479009663142679556100433784821969389042698121021236354948235862636903947785701207621452304087874117440401897155684375096648688963672747596834993383814289329561519928369724859514478689771472044246127302054566731592154532485907504379829550370660261405571176784393378300798814431286777270185992603185074540602240371346944278797271806305685874032480646109557855909429839611390956244502017484426665715109379608617360367226840379263212906073406152845182045351531319931175679065611952655362788673580606662582679623083571080590572152438917210429432004941627559386976154439549038679126601748803573867696611839667767107834592450771507703143432066298064751085508032027691059135064697397679796232285212964163443501912803185154413426610593346960322373474194781216602314649931053216078359868640943279962843830863472074381213831496366301321687545612698308594868241143727546040236161118812107850022759905015980728583804833116686572610511667479481810076866911115991455810910038930030282398391079309280944392204235738993027567361293031021578255338196054580543931547291579059878548569788579808603679573734668865742971724069083260137847211004213811470031279748752116570047498794950958874974902765949246690598412375123924655000143702218413136424049185409024954067913914332143139477783383692817344268384393276889578482078001017957547808712957226925640660065484284230733703860933395886456111026779416816010539408884536278470832809389801233596032563525714453710569672592377432659311000071347140233882452959037502023121635740408762252271158681079267043356561216394066728772174704348453102781741977490905568184042872884167803132096272573164858477447491907062437926043662146349020585608579984139832850880030347833772657296655977718149520597144985979138623786471500719071345387896731409190406247932843195560417381006948226445619439618223114850628570286566175692626911699943134436922004602391224990157709997137137726131119256360391138562468326398036949398062532350999721157016991851888418433746044424489822287627360540990726868260118586817055588529305543247818550970118824173077641733338446177475796231668714764439360036964935008332680293080377134919807008345860958150632438793099081996547212839190182815149969726379310744834511793704272999715853943651907251433861052502337032581287302759334598002663766647213831205337328149004252327916829781629426183985209700293648946297600472875179112549656231723777658594685400323734334000674794348498884052349747072723407636253336772105610888141413553612487463449112585981246236914106603227258500749804260812050140953619538093398029242122555064855190365586812912925553325635282031748168760632406583564193256338097165001657479049339553192059569271611637050104631499893853922377974344002131243608351048921080470934853523485035841385033071558160675399116489554223183693612739925227378611221013574342185118146750043357977720500716118840534239984757504308071856052716937845589639037758809458898961920603082191416764825845083883183645864825206145815484165509048315702331854772438076902346227137662459965456297791465183990055021483119609141282164803982070248729004857420352316328118457059335275832348301347907713683057742262368065444044887909808991435885457248187827560438393885755131782664617612924339114888395776012110829391872066620344110018628150029831095178394343984496517276507524859959003328475437692409001912372917550408278999434291947813015814318166752729457350724337919554428438614885588148758241974470644431822591919993296510676062251812394685731791939468965509942252997545349268350514878254240879977490034805738830550806517890015376766332920306149122000567577934479069215803521060763498890602982325974607835903392217677222682781265464752727728279636041459570922676032731132934502297780359954356325608088517906786048323586872454797002714724601545193205000562035395427239173580256544537059447704573876621486496754099150853120935240162163928177156205736362038473099108687406740194484943895659399154779886416509403868970588468693701432514655337274221188266022182412265527327353109404105591628983641993744362591800814974621348307996193230443914013223566147538955473202841775810515662028192843215820379690594583253470697526438226169469347379292170549317076389646354069075637701733629647289233789951150228453346365044378018608471383213726779508690954799233624428051614159397272464685849638707589701024250745008670676844727717398957797649664888857580037128427448840517278707732151801457237711603008781659988022134778314997295640749459112272536211317636515571052932037029856004951681391801676960637793784149098215149926062244880064983875917583067418734315079640247461179406059736332935604066772329416394130605032820347951065125912426076103738895139882103126147909816532401608518670834587901934076044856987632579195279799190109874258841167763620544207045224331207530979770915568107128989914548446305242173297649167576333508425832386739716240109859369276944176349706391216263714423357551450814010400781383941658970015495312550496770340125948133041459313025156449613687068522535005651020593606586368791322169912185006713862097003460212969244422494116975877873325921307438897757633470921128317492412284537453782983873883897210643837091855333747821764514378800076245465052761976622345299840933799704138763020538458813068195631909190117826914677757918779961701479227805981904082292071163778683073616193469099232473092453174096589960625741550501284454396354156815681705085340070096635675630223019604970237567683835360451764115345563688039734050033884193452227130448590163107067273033872439182985875025711623636564449145772410325318918367509802115767412309075884864536400728526102343395758338542156123922010096689297775176078932294740292149381558990722646775720742495669453470550026226400867692529836735663487509262408829526729314888355242630000784058450329612726880933355917091523137327528653018615047604974173242526622082534462913657344536453177243036093792435685318981442985818248133317624143251921205140295309727016851385024630327295315598297543654447331630091093031066340620907706533541021357263222690307572627813808258763429842618660268478598963594367462435252945931521679269577006452709036713752001329304651401051555206451365804447074433684592224943990690358522461760920658711030365285589159906609018087028466197955903825935747484771055440938810413622918532750451807450934763975226701980962020419991836883788550125268599818465366416603644476404746608725268101826048893664608765283154296413310125603873524625168174847948606804879042843946620067408759481708905161511080018600899681756985008082188762917442413361539967810427137459743035318345613735637588615440989412825058591490374358492351551160796760470510320503824184745483167985989643480657207721923885729819448287163066694548701196762983911852840844978354541640019612706119803239900897155764894857792277831719694756634134648545448085073979707257078564368115594285186537388179511762880894946910096815797528910011008199764370939748629927581135225936054666133804217735911314926612247655614981537887666393932057637858126399203150027508479971037435658979029051824689413011880374345852737714217715264556898304738263830982623780676401368616594083765815660175537677029431785573753871970935373304314603239877212952202785645298399643165061108130105808250957276992076147324899532751510312187281372778163454612650105311642145976460374546572674031042966940086878817635572545978221527436759949142798952646182195321793473811514019957902768871767217880103169077524238744488267595042970116032147248260317889189169435463525069468789022941518120717572922167842901493423976265929974022448099761414138630879282739098478896501163549720143452436246956144267445082209249279685376381744091257306911840205428657243023102961041901535442889794266802108293842295284961997148258960914416624479233560153895910265651496316203422198194941380306722310962909859462650162349118388510584052740519374462161777517170718886205252017236521510799710686079858973191688611559836447163880566345128796999652544017645543214123889459685304057202277745908975772473406479966462140227625078193135831203400539994429788676855857077210809463329473829787441769627618607707490553469117533757495471311113995102860386356242678271605409872798047160857391116710101418293043310291563239896573175672138274318294394080548215879101172638546465075400716472606011033537273072416051044869957541893384117580681075973420544783574449279619451363550163067289291541440075132139966483937573682501827636654107592303573527310104415740326593840418894230099098464497150449655001341258544646000107854634086466278228355767784803151384585060028131889175701757503092606228887686780333642748509866656785733406173478928805802106140741340741955698378631683334644371346389048116963148289582319549102917653252515319530245675371401594889014357944611558506848935919718168461806712199428317461269861157910181514432543245867627506900304101485859526697120279909908882008440698037697291854807346843262321893421734835949650140319679973342872231257947031793027478317927177458407347086747253123706691773846995290467877736601595563547418409401348130638034950205690409680929086356699152087938927037501564546136973661422572511640621625776664486778098305884723297132582610215747015336073517168121327553771684531173887508136028379523038009389218423032305958769461784250654117701369918678449985423217285417645841545365090197232493211474895899093616488190972310895150549953544378285024383510111245634369181965839541886283868400034895478882878291463780909186101385913881693674105100148483662003540832903960779107281359706564001978244482607279402826256547624014332187171791165427533260793329378890123408285566096419240760492758456931458020419853061428423212333855028220765891180382338114531539645958435711319878810285755088652564302952531526046516514820351321480131476065587905403380266110598439800089403373274160982811601052024329159489674550189394540077566529175135548079264488606731209576054292664714201661696975100079862901172181623326254868839222375154218281976664876593302479585406898846962215530013128707170887973345007240207433874448663442659064673379549453779539761933027544263178726874225662760034387930209511568535913124590156931806331319053916627149727551108010178421534732181349065816342781435791590375807207974528619252931730524129675986121181048277083209304089203425314497638539626191377888703277536223909721918114579617308402595166201050312412987270465049381042759305934061879698037451528586764440728764132419677452386411269937825813842708764739568783636872614360713698889394681434200468409182640585742312364677548862862437121737551142760648394035595733752118528490993217654148775083137591638339340577513376798772673861807280868419694828901663449972887126481026967729795650013764378829354623600325827619522915747798600703207022147691603337540480376304704709522667365238845323661765666822116323108395332617086083959397068178183482335708422392769286733225635187896765032844493308440417544650812579723393745410664472130677078393468644852752322174256853029907036443902634116290035084463716250171756469296555117249822543746888512024700251817799323352558507456696469010815159822092021875989293358392434358106288897077736338416413706972230081192080498536870587816174391906225525414627422958701934680527409170347567419329458532184079474110178802097489103333748059007924356717394978560170359964623575030273508189177215043157397781158708385192264655007189092264478475760481687404557759165050816327893818547612818363427636576267698500569283233504915056716650931691844607030525481745269825938046475270935243107580382441847363063374517115256838525019144625901064212118556277964481564475659641056938924480239585901801681727634218030988419644140270172977401758694046345852424220693532461918762440971013996584631080313097400178085978631163376676032752852484906121004192851991604020960851839801560454962946486331964435765606328085094498909395473240015924361005598583902564664127607820165982553474711805630117198442123114784011267457925040373112146403507394578494949171282000540060335497642024429401203409650031335302397333196820265863632322473761839887879241909114210180102904830372409428502700117103241618871131173012163168609871176116648000960052987609401269604531211426512778224299364368454495040527120112631100704297902615679154950207449060293994459681387639399687234932078892554351136771073332830410048311447763573654368973823262623229830357241675483839043498991656250979050569238273404490787117737656423115401329874933857920080542644193208572272843849551971564270149673941509101845778333551743346392431640518921208963257497671836132315034110824049083503154601458117167967895240440050812079253599265183024956756976894225619212418735778856748276044865666359074183194332257138550374074334849656603366300052656684009222685016532989015412437512038333577267270884636369464628093633402824714573228573488249773273966005525093072002979528850070763931507076522131528155858113548981397046333077236525362211776391826598872785447292697206676671353485732285799814213069893787399136333246166457578072815255048982218895987059974777432300402311569196917411630335646711601097833699303543631484513417126528519295645407649796020888197529953988415767291062395198544293454722072235025988630949058831647350970259240687205649718583801028430110340991958942530377100737781198697745900543026256298689517620889931044493913499285662592401735319267218696990185299773015967435542658988515060316280366186950308213182984148215772475343220171297762155503582634915206983133571399904062404121515686311022242480575539178437220914249174491267051680617695333336307583684389500577621307665002436496809515151531887067350108331548785980126584606094301294540163595332780578038257662884290550227099132810465061714167111796128444629325414072208824263585077622438959270108317845943305386076907684119875404571499282362930611226218517384727970797550029884527155596981600197571715652270385945201343416289983059953862636893295463449995641472843661517139076333439944418059516151936992214871728617955442405773696813901121554833593336144981617965226583202296523264592168549444330123262999853645650864488364842611738551406421813165688071386973799802821723897850315145592617711133235420965984438130547960670226583224125445812358292380013381179631446959543804061164691973807682187982910367280549075447381729449186249617707801040644174668875289474027037436195378990710597650825321799780124602845618071545634171183852117104266163048667061642339597433917272516660210526953003776650742243471281755210434175267742267960212675517766227446458251655903346960043547022628638669819082187042059275816858749968200743155243691810625392558382406513233604252746292535258870328654398537673512449465944933514162583250932053252065670742305937299201883574351010084821573412629180545424508925243843794143328419467325793982538875581402971945060651307569530676814995785472028363904478280006872827225139510400160029940650053368356560113318265395700387315678175870728274456019358886778355844666016527369374487865963914679819877293959355201689857176937534705815473644438569546915969516116228386271541144128648437433163970129407093746572835795152084404082757007069062679842203929190459311338786262492230951482135772640758391750206875833635736331994862199365783614707225698088063658593917520370982640844485125448161111833181833468729132780635890851354129567038789380579260079042997444310766449185179837973113079586231739076050670838569047927596808163770235822387204554235790663803949519533922569044739994443506197761366076036215077368161890574882162990818308725647825596614481309822295537348753382065299485581402567869992635117761877655431452215237368047364570552430942050771407715779716540963707255304503441766183557843582880654197847805025163835884504527536336263829179604020943394720186954466985518110746017555388087241329985081669374845763469389971906610607542353252679949144392849766546917543226376957828916441190233963491593183335866853702674217147163006307331614892629990860140551809229892863854610583239064764260540197329578381056722271350040678436108251027620168573281254237447880286245661063726900691845848312973497274258308745900795755997068207033781497480487408670538197197097125784488478646977045455340696844239943437065510799025087647822593862130189745335967666698784519765007868038200588230664403564160427824864393242235859440808105819526984578155538868644543080515718183208102243919204305401259367034361724328509726369459667590785191241546835517588773595960744252896620720787204631951579696079296639763417935924011486982630718082022209482066496114649240823883155641804651439726684797878852819815457167065613701923038828296744037337834743211977090938310966645461008158737986626746499366131340285917502590717282376013597868577390365606823365261910366509337008980628088764318695777574962266999334668429147449941332149247675645751281806527334804865523337730139047676018238041565282859913908272752265387987190369150234471703382972350601411916212799036672675656516534750536023916069918781985392564114666038942686946216794772195251037813533463840835675155692053916913028478220991521847902460696476950804087216617913060532305654347260268659441624209206705152662617706584317197237831202615545400223806370030489394656055417126318844501363237326497449663539338855024934109004974451489447041852683241369977001235653432593386353668793842727830912755335682783958932426681736362725124222290239015744044372648614133875370174146657845883578952064116265417560813582762763701131139934604879693964810950992025847356424651197853816075733884634646319529108805246089878013221221319207248652378421569792774093982668013315160878199516418696571903432621595234764560301488750697611481537728904005240297963402345232207921305634377320103816710960271209955295077480278483888477884248998244334281784952886619535453364051267569715576873284985528261716245329531309600874864886580789373838351260426943807885445352565600383220601883355654049994496416958708342267332723568769319785581849843331210539231779491707069048790988251654761244951988686310396477584450705502534993558707357400224439043030226447421379995814188629002962403881201233933162153260892310877766305138352543645807961566827638446491979431286922263785204730651943449651565596863326300195380671358540682319259761234156211318720342458622387236504859183576553833979779202167272611800689235885336487205378941729716168201366007224187268957754324361430413741354994597692397960163584350846764040981072972986971905268825317468573490800270564134641252191712580839875634508553570035912195455423951737726814335228343305199845421833932113088325035284090000801162379452657343632716955287887243413573460355013873400850266154087208312811502559590757945494935668736101716209785136441590278816344784961242429109891237985477962336730224009957380645181239191656864253666384194801179972899513161176737855023221111641228609094461976615919281276681587593485293543130283487266885240886879184474305318298835121642047815269704717067663407043053449392751171400937368731257406054917331906867343325740412843352536658885797236945637840713315164961273117163745679729839155080757702511631855907343903761660546604766889769041372672416253862162364384902248498159592599269389871773270357731178775266555490182328697905179660654671362813614830197152116724955611896783932294335081782549635734087778746919190463702861603284830819590789537879277484241725669415980627464620770618804670837704242827967917301488265962382306017841330756155105192468689882461715468013520657889700502463717145867149295718738387262577332544292683696844133929893328089728756996818679770944356981570298252530883575302631708051711184609950192345304427526515419372228333211740890716207186847610124690720983463769296803332949044495073402471280758695472762062103585103222814717312099946494101343886228639837268935118303819445929033352215457411253680984918402600387738742373178226992501313655607027324916302392279575779975296737400102996493180439662684672952468312028920272031334647497198328533199075586020042458884728390878908964248896400954413335036255833507821273234725561223674283497994266573362761778833819718198093378728391834514634166517145983479651654567425672836530640015486237332090746051162274402620326705416479170557945382460599670274811027274639472409679884671540523203660741712567001076419523351332863757299043569374285666133538104061631884213599804117488075068932550901341014353506939810560646836607048778530125691311789302541304807525450420730568003533427941066196961430806273723015708472796839087494666073452314399497675087336501679953046175490167341595697206824156013855729731767122497338264876968991574023886857770158936451534564662953143229857128734926175540929081814092001278289137452927319530885760836480793348405598496188517017748961420222362416704484771393032173003195641397855658423745644243734109562950664907324767182219647242018548899954826618683979631623827680783400932261967292531883577765584300573840454276330989249333214733458849483386852984938171603014300477845300658808564619446596599907282228136802545628396280420474458799175444979243730847788102261223107743923917145107276816314372733614575547473330534244781024807876538622424789231827001920568563178968561373839547054351894883424084774587194570010839938602587286569248158573381496563253604787977855933330420253605081549879142365776913760718466097245591483429647144615770601007149535741039177517020398217934796130502211706330434676531495586541462139187656676521564453880769710773756879188025502226250069547286518105836936593840963038586487213627927927220682433239173029639989785450316220242839215391057230754099028259421817336804623695285860974657526298446666013258961586045487160613110497483213101477366112431715719055137086401929768185462571252704608128815610556119422971255600743611015834873375558067959522913007375036510002989357129962900578184417145107502836135597238412835266691102918195470434767184424198500829923843212345130214521273431601946262104430942961133008321259354708656352161166023857665320247073202228561024443196897586540937195032746933000547751328509245342572768044177861530229759370562104684571078128038387341438246378053817852727406360271471318695324636079991261580484364650905032987311942687977362828301019491286652653721567167144359095456721372360231080736118718486737220035708212861136027176130836790429958494145976541743382584278323006331525130850084135830262861770603678845584870979891891687480429574855079976562016673521809859983422390522779123778228167124844236772609932289895760084763658851845554440935689433314726718330561697646434173371579831729664051597756326917300917362733966096619810799969073687653057041984673889568585330794024057638835061013885631700266971244025539581976951615637793707772565412073874994766289282654939609052673881606971715133563952846716182795395894906687935018675195870135579426561397875510676090197335725563758248011762638333814805073999402553041608324874591801369205982933753890570966138666036516058670973214527612618240784850768124886162691571758180398244808717981449077839981988023694537852053996270557683689136847465464800295354005099678766326576401223730569660883045129252373767637808773137292927999482286879217608516035724543816440724801898415248278914405762100511672217403672543769147350576088556096784700425780896469242078213545368266470833360769169447440861449046982587477719683012342789237523436774584847625065756315884760052963731095934968371862677327306171521584396274429131549430852644767043964643265016965346437730177410470706926414966598431251760209494165919191182689212563962077160238448466815538296413130583039518317403177921523348126286435112513570713030382272352462571196335246458281823602758665581192808704205850800537321500653508876554203521193707074878842389649890814319703004024064296229205680740486063849481629593079925517453332706706735962114098222702751724053285271914969527846226511392918843505744215824560085502698480294407254669421822975569406119943139711417410850015321764101649657311415680144267894172969442171931255580177443660603845785340748337560688149402417453940338861976324130428762634200591695895299242850923547681900576082018759884903834899112999219147020260608408525112047845626656953408452998600031981001651840465454942048171245601450942045091169227069482643465083782518616604429361218662750078571049268063082376468481244593470722354639265203981228790733688942486506996825389854695827642772708839580218582259969570388322942963266955500618493982592175768540168739152437412089354326498690371660838515697764273134743092482947827762178517346163276069840819134932807666492687200569431792305925099477302568221480060607461160778108019524273221583070272375763631305948841206938450307481771111293174554571678680105101262963010030757174764512023423982250491743452685324799828500901833688203509415405325927306277808040713195064188950642668981601349858990016602139212769636751233505025706835606323344637776413285111707170537504382753486060146234784486364648648072283029800743585396716653252400707163345879541187432098926627673796464085352512973963202182873701460779271622522326359905739560769110640105048676440346204466044286995265457434244719197222552479188339512935734899872495220340219731830574536645260375479493606258171834322711372736252876368645876834930899302827214660003548396984565108022243275238131983447460327922996202204680021261436785637083088903137216313083572204757049798302243799510447474249445077398399780113429803698793262232452208784607231123683605537359143251404697708636051696307606348931888898308971540724334276717933862775208862637914790519340094974194171886622974835970875319204671452500107124588982493576607357898659187850859505644555515806495784528293342109293774537324131872597368920751366213163581980309716779006632722391221727956742400610855802788359785910818795201993118401472032764908962454948886771241680736124807717761450268466839537979347719466094545986284526813652364869745279880610626579499379252993618260793265024926738401233708826367129310503626243215105846538225102970833718470387094895372300617280212226347906356089349485601951818281558364651945553007812744568167822936052063190726552744042824940478118578814566820226643236389441060834754732270725026430378852196526238078693425719680909943494391878658988269808666358627828306472041763891668690880750773568208493386017014041203467260940070960373531048074347273782938073749589485769170574244285693679302157399342771222362425352291685664909392038681848192373672033883436366756912330673761329041406095549247755521196734728620653908780524416200968521489540798833348318243435629101930633986470788774501403110225329529355363723399309786433115442112925896664582238496581408665321865646419656036406061738153032302590354752487082996209244422432403396791262360105475851179758763168480949980901558780166050760170272938341401034641764931956372109370422095662931915270126166217273160996520583182838230404872315039798073726170485538605025524603173652464647190149790385069709203782811358176376088790650885048055443276335530295848901880348448205567704439013005945235476364868020055154270648134526236834186840036936263293507989444118674264255011260132677672911018023432226818903255411069683355696589206342030239524195993364482437811587997235448090641294866542137445102849864974223522188466006557278022326297863615887872988577991111667687168892330838126469324319971490857205784526201165590157966852196942734421550343745819722108712133530189133958432355323489389660585150152974231305518671046334912247887801379603092420034366719281077891473162296648415092548271093892323871203646028974830231180239469729316595724720325605832894651511672772198597024919163026028004918312095780926362127473028073605929418800223414285616422775904392333553004038287973164056044062853147504287203762853009280219418764403516417243139057340810213463272619484222832528833103433366488631475095160331580950886302696670084559131591477596195799107419760738296166097732906735974472143316553028386588216624933489295823905495177254350748532838966659583565578450783572820810444844633192256543910523343913931120367347487215914143462801863057738645602409116477211389769236124797952278422808876800594498605426277414400632418345470927268086900594749114079686384305357706343700980894252277323552159304985491365941610690597393137628682914877936548177057887461476210254664461942215067700980173063830178826634184136252053198555579362328241331494516104961833118201100563587993230354912095519803702159748245172399760712253429870386245199867878212027732264179472320879151312989871043779028343232196290337563600073407588995985921777261166967760866187569315944389122829146476970033183182149778811091616711751063043022546288367075112056907302068507390955267137920674981931314840416046602817749893521972073206492982120351497034115189836986613015510136428109516374393472548360429134309604644337600038616407480311354266882538534376532779370042138022772965157590933193948185412384198231208845972940703263852635034199340809875960780528769091296472126362738074624017616905753302592369768603813912345813107155312515642291271965529632007542518941082676758559749554295662934211550031090604202365769907692902488947424055492218471799479768385182105058716987021330819908873088418031674348388662847977085485013653024736537386368285765122908615423733516465486860289005816716350753971013832487164409634276070671169235246916796757112028994398520693842301806952656882770270338213667726805055446393714519657478839904418886060016169956899212220981684320453267529356115123832116150149102395251298270960270995478091751144263558732470343232962315460071542679862786644866609539572636895514141786415951463653937173899030784093354721125875715218156164988970759161579902262192021037493679582112948029485515662022791173577961192032846977490700791956153907460039542892707883860874321919790347759474863189508385641688516074664111679807066045929709337484548666724188128997260220489733391476251912058239620613518739387529549911454414286043917418466301620889384533477569582231586356359008852082380215707715026802136124206586142456739443526621390743302836831416816824142302280192449530682403570914166276520579034733905023966945775352253115691822589951918481627590653385358509418993875854637674642065205814432335773472993214528868659170011626201232245754809434427369465243165076972946858832076267676301281552305502273418039933592411065389457190387426800589117282062881734118422245322766714191762052270330480929699408743844503057327848656234233184318187350340739299842773189809668156649938098713391020309306018096278196087728261225391964466898516171666068763493499417859530358877074894504504878699153962706027106572135285559829185593343082530868991165889143265995870147128557832403867619813336763573644185576410132208847997515552916962377912390162829835845577026680417163410526502658810004960537467887999339914488633856481536498698908215007463373644385735782207633855808900585000569821650300934207402355128230021007830409118756500429049032694870683732440469880647164063667396790302064242261256523409497691386300034397400227799539588611403299906178105420924688296825245827493539137726867304522891664357063377780669142122605453215091265937810773006582160229557333879022949113375743262433839079972453244231412623413430323671647463677903205318071839143335222045107647517729486895359726077720014468941716546171438995955988368301641061616978961425792997087577023486694132836413092750041930065013001223627538569076699709163901693322398082238785931104597300779055835447531184261872400213127173401644879490139382681249283387841100339952447387233335363707587365903646101688988145242422581983696704733444330254155385410451571375595997511072371998970306439095535057546239998856645835883043504652583809315574169141561302839737339202129346344547347768734128130292487835138802139324981362480440931800394235424627012599669792047461680456917647442889304374700162995914652466292163247289569397834523049263545200138021477074549128916034338886907065779696548005617692467666711045915766309644233556605716862732337739048797289197379312292938292554164198733548936569322556187727600596319379358383744880953815612911001541389692487103361160798166970156982753318353886948049452349276661236976411725375906245242419022589302198498454770789550534678862873329566949173244174136034511811258256601944667987847181813489774414606989748714750567327301232137852947953600693497866392944895146323120316193437357161840488062009420214699189841007541263804655405021791498764938912190252797394493833101040035854231889315641651312566220354741171879503550513338483069455235943710355513301761767699225591936428530706136061044289537333888455213455457609268581328154662453660803836048214329899253642359043907154440114166245230601576814915175352954875249706462183855320415229342899802243727612656815118800321653867691180770031744868558515506552834545629566333786624308516194914151481818697235985085120111971575973318290470265226499277308134866299047877643003593553451900411598365833004033033593874227398959455790581861566500554632817284132785966015912620772447544565586665051221817332526902158899773166088787250858410920222832201038098534204202879097273623129580807096544857264904562542965863294365269510114665449739951492049159059536389846840385104229659375579674475659534670117945436220377314939049230242358293844817801849045057483253388940838848477023807863310917810243296762018955242459217273345302615025833000696977001923147962414532673302135308958884457322555137143445538164442481537502675721875232824334843799201186685777658399198133974200734108928227508754254376897690772568755994398433151089820808527133963400638383832988086191057357879450796838439067788620881591379561117178165602242772686108287365768250308584788703190823039982514956528671428046885907720481593446634604930849841232858054193210874862641967269961001712113818754782969307432561548686961621914701973697048234298189224635952523074268467336524682077481184532119980317417241504026975002714778784147923262640803915104476226401070567444300726031882098299601760517108697814089389469963389614749832379863328053572390392263711609978132536677675114569882593622509060684817911968656913280039432833117870247742246643660988120256115007645574774269144262394929672742225373646886946556199348126542982497975868077604398161392428099533585731641945252202035374774192341298123722877249719632898143739797053109217385867111004954135832122662315574416959063124281583318913825708489136064480132004367432621790215052647242515392794065534236517752180120080392564653910353722517217252025883529841939330858717610755619064679002114700029482649928538071124949932549923036621667005838852395905422020794410556540655816257388492173071303488229582887201818607311926435494788325907448873754682653947878165083605078250680637739425635235057849815978958162020299475181070407938266085350633383042373414761036328056586780636305713704183310256731043874385817354608946665337200714325059250337479807492845568811319797102391124880214909964699399938426415117071309013906417243684673859750007703753932264166037604139374219382179267944441557383194751938745323494644511950237964519147357492944239784615314754345768586647982844942999543226520985243061874561369045497578996427751344844854032639574796222494561580064440320709965045933314321726665269096159225933957821283884369266753377641563337968158996869405817930623058985684494637194495908336233048339799584863983758963180482485327301795371200557427709741921415663922465938421730996366761889554062980925262959916382355094758970060336772037937638827616008167380538586179277563224740333958858453929961957436086459509895706387781823146630444925203388533778317027843192801921369377918213888675222381518232392444616336649308727945520602327950888835986229034359208531764710503021334850965520982947566252713814704029017087930054442705541025460160150096428305603020255838216774438312473595107148027888288504439889330070178704027163363765817019244128701756207636816921501094838678176712971963911817534791194677879395003621824577439269702426678732328325811832188498680115621525048504988576957458458086446448286396259157956094349779774116687114009014680005076551371291242466141926243826346079152518300071933676579047465716686425199329491597525452380799395349979740554829903188707770079251993949097614553855111758263938930954535958671458207548551958000338594772822705045521004902549611473672812325125247387214444792357297879733478181343845254452484540856834322888334498707099817605780852683735068542857815817188031670258196967316310969864169017101998151575011288493911373761911485054682685557385146527818767184002272829628530865666366768081868863148521071001177615290531615834266363854821756320575528900978376385487586211470103450827458153042541516150928245895094440255485162580273341363442735629980583545183669771124802892016255888786888754552561205921284145199829535747370369170272693179851851450766097351538693990744906466713841266325742156632433418963224574290207144642038878564816582947894858572153442004398917939975836974178313702798439194743394756545102611548716478206671031741872461276919875461183848794921114012637858445785096797102203635432141866313967432410613491311386002321267143505560349925224496186533270069905172681048380929255125298576851625103974276069155746646715541366721402832424887020645109597839851742868358364041223030335539845488326440817358738557202972874371200970348946340289602312168664007886489583715709545014682663156539698331867378923672243661647648334775310656645177504772494316949633586115055361053891306423071395264018632208580553441068532517603765739996814677000256896725871469696336033083729894079128007815934879213892912163995067039025740129041283368220204304324332566334547725467223176051040088947677789979150528018728673893888917205430621506270294140903431125660169808628978284001296855513469675075172287112125938147039526539549241850419726011149192899812405452245023174194387638205472500674826129209853648286939539845664541288979111630077039114797097699539811857155035026575149129641268548796639881576569985977797210134725393167089243983551295889683592551725618642691610618522136649730940305413660643779376709530527339904869625111935129882797103136791942065447684212922832588844625251901874126729627917659300675211144579140441374844797947911587906385466865233793107659223674951996878033538133498309990603046987425768293351028444502521177301310506147752781608234660596645064768937041539677078321880478362402639666528109970951559176337271487316841644079698807811488346899392261239898929420457381407091013052882493758023806418061126691592763455895480526595426207475169144290154037578666402572550766308083394206136547938712649262991441536878521300474738466463325323517775064900339967577859889347721623368336679901533551022974871062163116008323220538524002741755605843331993914394233318992209565913944154332225784709978846359622541605385773425739912762646529368791964274476317648367702964014291697069933915511319464824030122886363328998040821132605673963677231164526713499642641650300974152672873474107872537666664788043583287492161893335246760026120934920750060026361642605404802723867923880518251752058509770377067183706334226377058473117566810830772614340961989634036878916830286334278862860373334487324418741028830721119900797457972721418304321878991465965355226842826962002180390579975075372247552772508974332245503828545654846104739252421364105396254630568780735846170839345012468112341264035963452909310165966296572692703626933904531726611453921731925391151878719126216389145972521913402072086780722718901832645870018214288185703502406698147396644062426786389104174062092613831378252540096640997739232358354703926959990482115750579465745098097589225732004764965357519724332940239061744745459991735315429855783690668215619410181120599560153385312391863786465677242942624103545256688807510479020114717873101904636110144923536357082590893930320895566719798902538306722668966415045932783346810623594784725220686399495529973933062918581782598488792417701430634740388648361160469849634186323458959691319498643030978504378981285606620689361499830453520974227154545392916593241117258198861435835495151452158995836897648105446722211920719634924659284059961105250914769502634532367959581811852236265845080711434743227964611532380065152000924062524500291368537083516790016272407304518551959223828735284368728602443356278001201107362046812842408808196937549967842411129820816306490118886481884052173064087569743293687445926224986000135600822723120025232373680749924778260090841463265819612400870331170530499272699986607336733853059796823519910298069911056864808393931344533757257643613009853196446631002520653799773744054653042467744249242504628922639405468372473419764258246326121100115069036557921407775511748147083141706431992486574440413416453444419427186948618813578504059830699467810607401698542978590088949244849614242642780833789140589555243897378829272273321071987365751287790095081252759349364758378268651224500905354485587896401105606826684211147833998477556175600353422026120210015605866177691372778983927275337345828478829490102673862733276063661645768270374133775991272690022101992266515491208248510966063249828480935727102595887792624197954634349881328829363881948311270199303724952654582542109450314323087297741021836936792489754778920375672551969492792680252875298510608687973976357622028175502899225458591369921568255653647326221811809839244745798854805742420909624226786138091857846453870523726146577445968330292707074505327505912023172349021851944099077130487385012418745760457568574937985355182422881152369214337939776353519830400532227061063733750123596470763752809236141964686627733957271725640336818712747058801845670667316376915782692740141514842957308908352520593451001282169466721688270238536364906685618535170985683532491382891545470875647212014631548245013459072210579738117308588024587690709161432868603254901765993667397281707227041921578403376963837470449962833523791878474946779595656381816382160918379034515173014018579257031002057759928340458141880814598998252899493224794678396388141438975712005703075273704038524364916856304170889885146204672301337525594311300310807006237000024680302208659999103340314388346059524866521776202112734765868988538439974068575439888135109065618015200149557009955440649289077259379452153378619525362145559178056706762974936324331332955782925979541540015220919146250248879580673356367088088983863365184622580110199339752492954734784116605304015821213546310743171328571875320704998987141755169349703174372756554998448406216121028299956348837686895238491356105044657346269403778594629386724530469165749948093656591479656676715489879920466526428505751031099937117753578701971639559308787344997582508887995046655411207904203465249011494773588366994628622972550582665212823283305872635254176599650500495904783043556383271487764308169336531131697986440450837651348597358037039099767539873569020786661214220739289553312872213381888783456673310306773602064635447510282102003383094817380594954905226086981040466531031829871208582528429966391718656659472937692181850907293255298948428566872884658379407861046027291539593580458056135256820477582079358344600677204688350738826416019260351132417719710197204336221694728952395238983363297422064912402531122074472019681988641083861315149689230360887213200984480436623375069414363220117836185637429919133018600068044213385556704011981602903656196881654834499658429480405978464628379787071262085272937769239509147208587991278779205187917671302772589265376959082259101794070182703285478874218232972548223673128069135349731260428269239259801657644457337702860727351368199904223049828097901467951184082837506970464597278039863704665385356397249109036305511930233571145496413363421764272999308525094447204352896034755918186571080043507805999580494383978812791808380203901427818429901807349043647973783247557342823909390998756538975704404477139059912117622723627119478555257733124745575445896521784891296312354009276203540393266705807208833388454331008841521438272240901725087820758488909630931731592800523186458220702074267887563540317773458841144557412253689415078476630818004040569162718210162774661569648647815083599424944176700381753511155757941232354709981506890771707141065864367594472367541041023576426683030741033266861982437073354584623878732758170141255566389107713074860024624161807522613587674426200601158370122657113101791314219446181829858817928814878448968320420965545088631335226655481541709633374966224865100001515210365053976401760169420991841180251436186061801932355328690145438119288481370981742248580981092544006209096558977614594971517095343228365848833875954367903592582801920944813791316922133019818157131916223533860320458784410550048898954174847870747076842776832546756250142638499936005608656634856933961755101467305770864202808701012284421917924445297539718983741171665349664374926318094510706666789349255283972612572142736755049864952490072129461568607281740070517323235504446488051974767830809530490338561337735260069209592729933207730629528261472786970885028929905625356797287071377426662660588703007332729719002084574848713453855309933361432813908371941299226991916362619618462133658541225956067443630045270097955228072800961296100744888591806357876139043700749408628520076308098264071312934199653760265820162398483206769628579303087687683544047521136842265682366325086870141467997938469937124725854400829171944883578518905712432024516737334158707062681333339558621917379492625366672782071119385359511037960209320380161330993431172107613460603755654276430636168642682702265549542050531101471916558109488057729893842999868784337764351517551978477460741013647748135612274847234880380469642391264882322641098256553606689171296448634782200606137923841799636186853500692768709646579539721748379100053212143640660427927012944486941361471043794946596768381663939873182964004723350439005325863618070887223769441131386242701430148583232250220052512419306630166070540567784411663415127100004489640391086881706703812705624321035913601770566731315404868150224541295780478758449056762675676384450884146219216357231480538813682655555942064238517512062199900640665196369029346820308679315534057734797387343025152313850583063993056945521468261037660655850390403484908007548942796584158706474633598442228024496564719911098949818704466634328469079895065924146126180423694651251686833163616880114030048842133722293023007156086830886341312944929475971770662412029659335958674492067865812689667889491778188312776511285749395647283641373739186743920639295928385028951515816826634635776482093516554727741276523007801824909148702874349452277978234434282017422091856451692622820586368620720876346922736060368884283399302080925250166957767601788568962377519298176989667312655050280686301663966508177964089982240807582994153505022528181241519274292334690916968697597063525962857937715817078556741532299016398232140136383159550632842244835645273316278260534890223412203543144701360026692848689783887616387182078731586919599550735471527996049854760926249109227013974969571738357043711147563817760511651807822403732193990038075457289379071753299151690922314828070041487977474640512734529193820394345027214309748254255392285288202081362646686202685890367609360426110799263344477287519398417760892242798981206892888349934337898724415493823493830857224516706194064272762713789703293000918130079754340180415670790363624640284469490713703874579247198077909236703253373369084308542386376841414719158865977624896390227209019633174132657401190015518665077020554484881455676444154149758484540885790347057476285223714399553191042724231225455316536703688839925609963511651505174308907112327217442759659456056402246956335667766984231569185611709136003289091344951253883153067816353838659773312411688245814044206123252261130035947337769531000895837664805790777018205286199147732215808792256285429981676169457889911102887813839236689749312236549608757150622363389066187552644404725163004498844534164778253899526576804433508379768224392736218287599150426882711612955359492684998843451054559347497824435739889860001455857072420109262561658967105641603832209677512830485229121079774830900957542490185855012154453471645970782788743635003408378830954419532267185388969837328502076531199309773464726607642351595801759207611497384990325992102893364899621604967784884973854635416669189921934092435355882425937003557841939877424552554616407015586032466847030961099383685025710547696710028599013149257543933576496584384058837067915471801618275377939134611116497240693227902869366904242707718026028075984928224614832250896198119712457124308735650666017916305611650762388488745760001633328754001779766414938015812243880932114250510469463827369849006108183752362377199729204943750063532020452430389484263868915960559067177442956013190731828724182592243030099379431705032561459436310034831772792570229111260472961992344757382053410954245236596661616235469782786358626663877109288065295402824040500872354933570825556065661999443927899307207667715230847102500145546021757847963955759764663382163674934247976195009781075683390067911211667461923911584484670938642454568221153733206617461791274202540646055397337988543426731942688324844515809400176877239144334242534910409287641572152836523851485414645816442244196116196481245546811661709946985598871836611782762535116010333996753111628809491539875147120444305637667220101450955855957511090462132959477273305484840759878689646827953767890162836374686760714749362053500247598982473234124775254326424684062433231468241209513874190492643418320902931196631078421531781515930611710448279748169452869642271246753570738796718267079563968762069657685502513716496315609849579229287264668255334712407360124892354582140251641094616280327799131793995209205285659338723264504436161170490854933699771463810514947537729843940987030882041668280718600318203117743121165334573423975446692948711444822773364644841366101724805620278965376539144424358167489288354955293866832128062107657840820546620451591694203659949995166012576492780567447239305876136742736110106452600032137043138933751559884058598334629326647651983632697601880325455415968848568965572974439835227423592087537180714204420315237533432812997594997652224186892319417313838527867630312859782743080450495779040137207366548785845560828800586903226349930094484966159694241080641435586728293247444305043348432257617692918807752041503055520398082384338584570802423750612061021985083696950787646900337671110276181554623244791513306691262815679823806589604388304585960541116802790429717720229723184718230613987709746923529772752117852046282736098549936114477797595816494630837662472242067109974289632308827761027946674970053672297573519989245142997896272606550575193289929419158882454097298217570410072378469908758293996472066441694269784248178469677333460407399088494928113323950092752372738370585785720805314056171006396406365533417628832827526616626104095481291351354827703271361618085313342062303191880936574898153277397476135828175158696981917795896007001963000512720066418764553591682853818802623190880150988443137434692243269400559081991799558334063262601481774278178100659948852432181577951135653914140494283251773533805665569585793713443537322542847700117963066407474469753367943921659269240723672414091287210686538712854996533742752209770082479099059761482671797628642743093616831241462493246792666979078819631708302044167581082846109267705507548463603479821064154389744530279996873288522675806941213002343113332542411865673116906421678594958076826911560849858705433654253300186365723792742743292259682363597484302509586825196621441917297466330361728638515925473903851139836351687465450399118193595377081498712752932960805491668954933677485957785245665365345901069445953408641198036342375466243830866079045181853408426480760061534019641423180653177246086498404331717808310528658662933198941513276982576350393143019191459222932423428389820975024940552991721171652916724474378814192491066591322167624659028548295658084743393478187475684479855240236188390063963111181258326411103660964380071421425789421534256685207809323073308212987304348381632166718719613432971959727669770581954216927554986734803494409008665415120217806804343251354333318191737207361526136042173177614072714403333624110522000686818266450464552690897629809596509210544371959440330252135699669335919970292546524447548409907849349207080710819788624805479131210813577121840724735806397662447225036232104464560994182803142549066115145305128884761205960541800538715361299542904560529368996869042778444441410814411295362870843530974014022496636218740789825616000947376266352228066638923259578314217381591359786922517922069332229207706469491237976050711574199954536955494836201353350224554820907574880142513793392879406869193698747382553110494860150604834181517879435487435802765223466906089487930827466502293419630987672254297418992283668714987642127423335909294525061297451889392399320676260807199062673139227496734566898027009575123273455202024143519638717107617374446706032940651626886430340099323589078130378029335996159447382022209738503868402051656520650932267282509514014405461478007143125044436789765611991059115958196314192035604608973071166578547543814117737752773157481192539518618206095486024617489450874198601264082941439124592185697418022829937000270814154009790359724806564866240613213036169538348797015266048674707375279856256604782172885483826448629723026011787274052199976825417442708004913766822154018537225403644678300735824054014115226784857941185494656475859683611634326977804937433467072072961199160318636709704952402376265536471249998687472296036559738467324915802946059346256990399502673381207355486682211654121825295481771604256952857590474932470047591608866475172656779173070950345317194116036431124796018397051792077245470506489462589128087520641097924284186887513817689507606172664444362004221726688007792926255348514507865559034941914226636099368617982479134403324968813784736924653149547693567080177196530854015935938767935135535021565359763771010636551915448451903217650191768136863331260704660705975480823644395308083678966433557300006114261674356694678134702467121863694572217147335101876969043683604180076486856859584729511277107615896399579656511327877175661386667823080478886340207691956447674302391370687059531641142819196614459627936201222881111142734846473029318787572669866311186019224833157698266341213933976784718942488178297906342578757508622586725099377740647954497580589809616085910633713549588902440751101350944339021448682875461581042400448139667247353796177137338987949055680763871800503868530760797942890394924064740950402360523639987271696344542708767361652843720634455014056788554729733750894556769151801035677488318410218938678486355284185632418172870254532449367543844593400923314204475496187061973856426229563779550530567046957592443408470302825356602226356510417774320135987396484707341843177396868271879917532146078566157534642453921331254379114121928476741775152076681931707286698559856969046994391124647291624854721685297941865079288381858814070973981991429194873182888954272930577586550566987047971430247278966814316953135024388181652125312152478693969951042079693238789154298027210012045174018591166719732920465633942387306223432056708789773437384870583359720023155010560948910838836428255354895780858681487106733431695723199276145083564486147904880202242461115994055400678772043246078540120069723691925885409276302372398723500330824523118795383336442775460165624085220873387501151730799219112628236811999646912716263958597039487761297074360704773461109639983606288616976121667147154391421782992999038572746855997451650280317653352104509376307622119320523151658426150581704517984611257141428904264389786226904300695066658451293827801126693551366050487874682454525587921744067056600412623497079617415773998170249978186849762361831055956270675193219229207864115628985362288129455809541514179077473121283335448494004626384802369979270866365472942195871717479169877526494641592213743372795512934300282185338788324300341651856330652189878943966571980740600775951999492897958927480789120505400194075904095828184655950490193955426140455563103877552864495736056130449290757063988155519696784763802260902070077451169341300281531332445976820274527170415494945028258714713791674159020095033689034366677966463280010484515288729009912394997879289504690170295171541595805254629456694480435980213642391918808089989527477139234799735432430042758311579035196934272369574966383569959201860741626632185547143051321015740504334821227878177780489144603242919026137144514615669653822026956563468803858930614745471731240537248388586843411716245017759675352109442658345420393770412986120237014091702719856350367929672697675185614474794781249568994556714631171966611962896026144788410328793107826421393721685884690350668210232007078152065582865168107784124043241745807990002209435087570191944464786696881427879445056905732281487736475250894118845106955098721567089827799960299515525405289117995472677987725990140567513330884982499262171545000547641690531842241773358390764120102822698208596667414733313937926585194105218853059699614029564769912890062032690300830759126380828158334162606943418723987927856113184134424795421674794308645166004132490245348462072291836718473766601521370311380717962376969292473194536962960644432198852205232171466113531189762468098212498145150267438566617498608965304801559257225901890872732701803347407747157750774977723947348674536919865709548915267224379893081165965165652948401637471393756549103611650685986115983814549941414935351480535648232740654122019881442173461513158301615472451976544371304571625500051552752484050483228541137693009203662285086084758947206796751730441537047277454675271837073464380936625300470623276424757423213636793229209184795231001383662495683794511982459552840907166690953746262189836113486641600859276202063498135889378268456307150708120171802124008730232763868187790500944431135866494444298943980300191450171300944563962340073322355661538363656834248889481867933483874959520920165444133828784408712120169501652271934651760366937269359768764484607065339161410666552044570950225917510738666322509887152825043342563523633129313442847140392719544471269732047633605665574920507605711748874854895726835964128890625291915221688578912272102279190192893464122676791808598339399550671410809370389242650148482267751033655750459544893578852283372864987427253449399614141995427430297621396643181202357466547505032586882137498688815330026261382635655335453305073350173252006150868089304505320974121598045227665563245919971153927496133419320309788598327050417758012567169680833708333392555252169526765641627197928855470396341544904688473039271366284380965028902233023254142230632290879094264764260944154603190722445129636029911878009634173706852617953776520807452606233067945437997702722191517081061231753096392550892954211373206146604400166711434600388658428000249155180824879936086210988943177446992939996302388149425770153288178734261667940590873227191661548583718470416312844584383673937402162451295674705007306359150638788753188774175886935281954399266840338315901116130410649848751842416382012674224866830641819479953386872656644565425355872162142160969297084944534378540260116575454426793327831858727651166639540510214795392198504604223864895848963528138159917146797546862440205501270884693798738238316280562665545581147904662905992265664412890180887985481298727383053890144409256809600923438876291530221423410961913492444009764959582200750293450195569579342807684537352071641151396769539853412748252374310904456510052894871728488027403266857704733925052504988964379492786040891490745904040865222668049679683487472984420694352330088715543205328325074905671801237364004253111499739793111139020616066726683980331831687123114940216292440574334186416084557740500265482518251213852784098073634957277463829678565709315571906816636124854779973371594289862499445910959563851574312896943617124953067199713005518740129473507414092182922868420709469832497264922150189199528967511543837986796153259898040879264115414717258339742422976125651836235765274187309315089837043885332812038163470413113856707524754785324734842521081095258623175941448819802702265114872652075400104705424573596047837669670368383761648661780925086102901237742362201544578187864819839826602515657133402990646076940693727043625517348349912843489118329695557558627500605370116105357624936171915468103238499990600939047757025791808627060627291037947417522620900801674471741640541479465760038443020129797701412711517362574764078193028555026884166059936452189786415571632775260184189692588782740597768721229710058847997481068945311228512834761321820729475757746048245095197173917900723330006967647062382044540640474684654530797237917321835774577933873500580993144096568971047100564295511507169205151250308818763371993191053584021023737328237258183386550977797988251231475090517755631822303629111130664533358858026160178684088333652074902571703408254692889587834959151395096746230371171423446188690138920786410641429523046571944921415477738875187946833664198787004112057266779971328342803916492330685305088250583971458732426084911059372925658138398686371070870993921440866421441500736143981407229000857509041756037937348539988919425698841517914903838500101011141283095522837081356887110301104098896710003538396037267296176233024018039835973265722251718675613836388339582919362613198457338089888917482806306973567840710341482920526039358287271017402384627183537393595582192019045364047720375911188966842242133439002864223830663648105365040749144677900465564692361361491316375329404281582883469700712098211741598058712960535549326848735599051730402845842984689660936218312803414045763704296433748714594405411156321253119915722042472268614313026404763639365186463805462155137401705755936384007873075842771768044691944740170556269454442718340402956049959179202275940459019603805649889631967324639322504076744460546138712429953736508270352935206413014443663707939564196646365378492588119705563755383152700251752007447893061237665655464198100074401547154263898648911538619589712652534737631835505302683710538470839502234847950173626362301115360563969301011603270146928865979601441980812865207449023053011406173981506936025114898948097168059844492652591274537654295461203341314221399445290911081438275619251828139455133852408006441847071862249334080675731795892534983638683655441021834976681697305244425999731190656047983982105013166218226445691951043029134773816948507077135896926523435317809719958001981149049537435063908000248882801138945358401322976291248370821088905535905935079334548659859392169266118552273464164270984318174895193944963232114515897914161643195391490898542247999267965528218512703887172226851293955394848244200465089552411772715721588196739706164720074473945183226465765906872665535818997939304069424661821659736159637191539602164925369131827687781081440780457822659249283554622170240466352334119712715408266876339028309456083493685481441271196580247773764495477030160077000904506919625760318573334215842871692288756301796618686316853714685501447439432270304100974554165877790539162993858563162428734669251678041357700317575453863320532111657505785639258026739502643859038001303739983680528170761581538076069507835174475788818943131129512005145401026260726081469739073007467412900293600154833493545128199824534114199132420384747442215822394547176115041320040623754586330266696279485190755549107756027462563666885834319123283026638899645679766106899402935632989075359500660298280563500113933354132919354821691237074409853273125785719689503410576958777049774327688761141030677139555654570798334999342524835722199433460483006531714030483492240561878368114731605007668316673268521230223634218473611955774184291851690649828146806934448833039618199220380977635901822848239937616427763778968907336973142638832081956077919431751237571112373614986180093895096493902597454748604168264304265825613863168005140495936976455093453607630538897096917873450928283454664821282102952463299110526529167324887337410690761337644102057598697273161463925665667572247562593377885953225957230730060432112052603526928337644769040395122448095450891697830065662817977417644490511841280147205469823221638554076851774787911142110621539986051495766715354766661212356545615238645669985769751703008350282916949700392016986701458958190940225465984779474434887147331630526791406982460127317353386060864109580775584217385807793938549241032562388317888297733808697080098928220422841325931177304079503560939747494750576532342490172821381091056060019931364417542135225377336553053958777417716039820970741471712609677726740987060900479638374740413405263636929478613206057231467535310405188119932099672274451405852129992670873941941018965402630001018305115766520026859315006842229573627789031517446608723874301941689305223595547954332776018421340191353194886931854563554070303191991611393553131930228604506646805260761767665529135065075092113991030079601325952931323793540654148822707344256347141218729816432984141166421484875931227242930692984127008918681266142977553629876949415481399032370384985713583869763046353669578339105492721949246205411030907511922297961799570412505665318775975203393363032338454674010528153585703411175005002071462512704494385953495718192079575028625044194732605742581726085860379626635946165657230625776404717906643816138230788277314254251068335171071743870675766047590287296566322777215840390714108357621786058113345425225352418831264421183462242936685496962400660501361032906550138433246398138464996824262734483289022732828992963978161531731841458314618538017419647113585439841766716547467361745353926604956719882137025041565276946736140735328978985700021789586314080667353105118890653779235382778108938990958050070388178096444483232885763998636831660040898535448314389035561811179061226257975713655387578602564106956635004027543003591745829987628519282232610193535014089859859047370413883392460270207594280353723600000315911378311012777450129252965251728999442826704458480365354760659984646166552485783451234423596970034130210497257204446160137629092279447897253929915976610783670659417877549911679350428380533793142381690555752484793595552578494476363105747080151266382258631335046577235274531068205069501363028526222888896794323573783839103509585805407291096246735173062040895779780357209883741416958324359409663191011082293909296651345596663859858435355142918717507233353416953559109582034840161183843364173186044893170702381711911349268682070148261134847575232738257287133126625678669739248085772906346130525371974099792078481539369680686129052881655150405192260162099839081170556358186444422272358059454483680487927229677467249730212358626813185845977752696450012208596918300682867353772597144923538264024267358464754899253642777682591047044042816186215869881133797518239919716312553566579170323933296299348256722617894906156001746149983181625787343845288501788636378265801681996949132369441244494054168022348055162933460872553846530668134867448004783768228148617652358674885573096452566909457131917149756114251943339522219115894177927306932902430895930028661277433735983353379629565074009422701061064411721851179098043512813893918216895045162890349556524219562464267142890232604653814162574685153130942790136611332649547802935692583488104107303868659687631014829378218782414302382381754011930869702250899629369142674135872859164930872004558401997655161950412830732314875146152840364125395771299288924219925679799109874578479871565239574775810050982125867798161815453081254296755851091456891613478789037117910682620795118595957361012820090259679563622659495075842017267424172992754509909134622095611817611346124120982928799969967492017558043361852484817033488394536035105342527568032756087527346407992872684080528649329697564265294240794685170864368792669846980858494985953790133858829394046392322690239718503477907687791579002148845664533259202872769527104636583899406882929637607893928377465517605268764630933456102663035761060793677418172108036095737669336928877581284196941750617992802988062577797305320462397547931448630188933386013982955901244764633717468680271151231288346805103544386546107403495258206891938612828056655666717629862882074064307823485233435384356218206527647024992993907676750907265865329168988611734791929320725767827712671681570666357905361573615795217638999163953108528628308422882230682730546465104820448044087881093650389259698534913381537460198387151683428205069558975652445816151333053265229870255736237620365762365893055200063616366877575700221837215057373660449919406461093007964075789491366071743289032174970168261568237097123952951823248201467789141799493038143783335014252643584097652261458417623612829060750925280890284992556100655643006054962421245851418684475214584088393081407778443391367352894330647208717977854051732082752508437610971642718666183456447876728298710425111325829891735954107283871839904292954909482584071666297059763579761924369877946436843212615554929325179263863075278864246068385828840411832862895447242187990435893154536369369461046845168925684139714797014777088536024017832848286522914172639957236493439900361890038845079920272799673525008764950833951146043549747464192015048027156420828651117018970719551147525234746044060912413532827578426653384905324539587370101352034010714176241099823728701372966377786228158585933994978919656961716927671442710640041985207386312550409122080248119629596725253962749792169900256746746864225907917671076317350631050303216234830859872055339996176215117605007621675773455132617879880756584547241385663638052989571366078712953195526232679776862462220230931289096829670517906305279650145351494145536151870606940135594623766384119490134364551304221337324018241931655417660526763573634237096874123111074985799937639124604472569531608532070971004590980388315270333086566264361486025451838676160947007553199730639979502147335601667949152653575378224441141770569388987341172430359756628035059511653406819737405132495552917896806330078317545670039393489397766986108324074440413805286764035550737020616575105101097531826679332623335217715502330497806209619251295723817390656162782835158595500255563028921200544628903085860402488323352043774207772967264502774226231376771759976476888553490338166476717763949272695709724128358107483850622095611990918833395900362634159007559714011485345307783861854825760137877487449477737691491948131506934785312215195663548712688845925525342625549680651906901818335172791098525638365560469644769827648894297714937950564705762583306465794610221809415196786288715367585357090896517660111427394249799289853838236669237899083156608733378483759079840608294593432303309531420595829451298437534750926619858151503078403268150582097720775093773039330797940718886745817521613442333050592999727282914618943235679444638177105667714774429254507743166222757511941558232064152425007698127124356866593246514996670054854335760403069007454020379434822223710819853987872114610649126506979003345151806928075029027591459563383454086647411258963031904481716837100002171478494079362377794849958561927535318805837806164855912046062007246666520613528227349759573601112814577440425744163288643140199928459116074319541315921875886371599311238711418569381076496363368882320156956403020621511575811618270866829618777215143868080772680824267197961644277820882107533759553750210254849697448158719338740122262554504826947779587490209865012225784542608083606318107154882708867044560346013839214316770060271721986337535357947343206299775330906896686615743359457047945536981932379949905046045588533730481671508087360289440313697059948797315718131683671729827369468480448515417413238444428968815365309627646091699672922155565817646675499250263084624691879478987543519006679641527699074026611479016975245908561562662705099065778508751390842694910214896061568323396984644674513222372276749330598386447414917099893102474618631325510776755570506158245759042250763884437355118351218262726465339158379418071281424091407463690013087386971661090869065761266025197895308523720901437131212466536884523245407229583342334744264897621269685212893199707116244225093674983332336637594496512221909408950498366577907667926398417194509764381534878718613796100142385930591850564873633062658864875423554994784627003666237576201554946637923374273948647856988630813863521597986594835157282712239034596083409731122412960188424777187240377353129632648220871736909527681584940661688880239693952944737786737008700997760771385740328216750396023822309264329122852170441975094295987371605191311197145926752466905668406905851402251397548704355823008983687965866701127594445345978946965206737365003961687673798905902475983188421707128800162084610285786252953214378921725956922216674642459400810693450371811182622275047510097589239023566495773369243911705653177909230785667721500668419253238986745326854128666656473416272483575169739573493915158385756182399946659371580903738293950937084109878853906507856093648814657499875574379062496021747140774392031419155183688368985903954091062670267177308359288647236082141627741626527883889391866432577266572838370721745141234882019240297621330842500919305811872999129909110447161161190419820582344522330162754597099741646954650086320525763773893660675274601307161054805146851420200340083321043405515100940795268235858793104515748752209304739657041316134008891583748722521435705480600886528825785854420985598949098817986491112255848158788859059731315367376277899639283854660518019131696651677893157705723987648527030678189632767688371401749930953861218620227811661082549214761135839348912968094413843620615534340450128187748104726662356927736743691128828112306846377736968537314784800132038346902891001150384311128175884956301727635853197327373603612070112004116053028205947360540821317960736513373437867102307156475929948918815403507964378958388265642113325054618565729408473761913153933755579434242830269296495448442140746237906455958388776110781497119510780437061746689026519880260933622005553631799074197423321363665112528314063776747140844646410472054389515024092516094411578099109385875008551600502577030179347781831040578166488995805652694142135442184734881813346977903044079243210180584749404861395056749896921206880095076728024738675662774849875123533923543897285549558221149280718658507077506748648974628754562624874488665496559982515191175548480101882778284400690193575326971559827090830685138048466509500082647597698372371496136947831283690949166779464714130118219805795062005216567757876909237345871440177299409305925494660173991599443083237089987436094077499195366843842415327487354763099690785832437298077110378747097712494541546097567934139084888594166040139297595109804470097008790547941707600742206073003606818214641091001383591748697495533564515387053278455931677347600401041808500387366919668523265271349698113454893088920674922228692932743483166580773987610838264078036736986422898014487426214356708601011402127943925188149102786852415903353804195956077420840668153462516391720486099297593294950080163958557911911309853834799943327796548987383316093042370974492648577076812380518135083498483001018038174000188008297240910504040783380630473952357008678194355613142786246919662303110237777441566648734114548533190471901510297362562043284872626843292798559121208924222927731819946035282321043506473922611576828657212289160921127450621564933470472962716752692397016646759365026527432602238841377680626932520616402601631769066871388681032678718695165251226643857847724590304011155380402339207627184924677264810965368631437011446587807508862044258170921721771486505529404355943668771041216997581023287276399898768805869689269793199246281308630921282393852171490945814516494057177406824197756974058101272247836997649946997498180281635245640704455505260006188437167232183573065709668026092915630649624500744772297650026993276634775342005710045632958686109722645699848134716888793694336530986972401103153423126915704786474679929047640569876003080010016598628161233079537373150238700814194787365010275177566888223625400206394031839209546444718624647302733163565237975333799816334336245092470316761446863423750216021102874083847688333522393299031355078321774782308447897758048352049364026341768806718824235329202545781646710677291688424169288104086374010416013488264245327984859734004592541392567104704251933732437861080563470328651769743650483523879534575050384132308631129885067793120363872348117084656714546818347808255659753851776398236520549801997714363262897347791268130510165541445822895871304191398704288668967621439126132065773679945617322803514429151728590831665994169289918761074185103119133028770376108163227375795571970019700768115703566894796509939247321621649516770850382267353064436459186428189349704814722931046487119116701504614671314732566681634228085319436847212105292946069367934533583255203314884213724223902656086138674911526748569544913823315075607759058198379847771048172459697150310253372643000689735061473663512114264701951266943337845517483236369808965830994001784679878339954049257392255562258048527482274497831779266770156443050400840957070455197762387312445027989017083627045896584261040736545065520312474655116658476095094157362724591958017986863137061760190682003694017942350068691742960474515331234137519706272731540682414554614902173760794233009368718687693037870016662023121670655054201003081924394911017195093407226066380336303163718839946310667705966232812959487454701530432159702823546911286662992595527440692784285759828289605109187258935255194936775403568539186813983370958946111823321027449900118619400514413229919347570656068842426306991804441508297400372081479370752214201098070032904884670243830108349788518894089856020735005525756752533539923255273600920142220620733991278026621326310514838974143969747693640325286202439423901700974839571239466454017548957649221541795099907430182387494489913933693174031318264934727259398907647120760560750081227390631491212325370092629561035790708456918710988428080723468105959235671790544712215290076750012874760723172007470013776070133025278990220939602603848859156182071222364240696911450445312869831402560818989181797956460833759033161285481875520751704376610565389760416793901507535184013426679257554002841541538124450788354329101993202935375569449707476947124340951726290748761729568876633443981876499589613582747372311937151677213613852059436885713256732155270101368439383855153678645731927186330004993949920398013669158724795589415237445828660742430807870243877819112667149812219307154488993666146889587645602800315381227409928796400440894412163906340425993599156532741138519227721632873731151880151161582262462790986260280888820658736181376879613168007153699245123292202427672831119177034443809237876365090163496675909533159922130245859923384164844198972957046337369023459280044718450169260375430618333828649206536324368195620300154527884136277529892528611051220966234884483405145812157562792133413134954160259504965176158274740362340317570203437705104503040321659110574088493374522163883712321978236768730940293957302451330477026006367429513932897993450618492189126133343759879743704582763909609183117910852861350317210009967967696518319982867771363824496781780983117701656291077191307679451236560033596972904408036967651785268259178579090343590011326147618113743177449024876285624961487930129173875818432454732739027465912980866671636220948910246278728814640814457954180353854500950624116837453713346779932968823088856046799988880043572949657666682982889643376299616962490108136364195633197303963769296243394894977024990416373905569167692566334976894542249517693560729152298428090321737354447946806790891359325093714917713890480576832965442728363149210808539522919782480437047576312925275862209352181017665928656079105636018170248574264111319667643211657520875958416749548084247344536849334423344604090973305578211369254391456135930684772881006560618652525629377460080425323625296875537417301824752370992340974109166676824822750480986656871751126809207945274474851072912450372359877399017867349282025542145454626951603475474652554783899210560205120525148048600880374686186480124976007582732580844778996604213904985653753377276852571734107857129506654760691942806225901309310990496839465885265664670340750714098164708092917806341706379012068434077704571771976847585668926274112847759824216353655833189044297122740726208048228458474370452493571963708548957021088008616906790396328514779464452126255302857058714479023365790867017547297685246137741862783375966057395817436928873255312347087921384134949418592030456383705449989267457095725615789632171506222329883769271955485602328412815906484289731925398497582255492247040138792322736136319890616604555765908155017427654362086539003614249259091220341158561185420371121687469317067085422018695302960401829970294786792563534352348861072957615593564802045412026595095620260094417569929576120081547365523782257925357579836623268330703706653169797647321243920523208604830437630979464499913809812071430317538070302925335798388269311054183529699133328891232251280434638077513164350961035856290037464388644394868677769091765239041737918322761547922564214564644792208594496548923773312579913926440136923838660223625814455844877038684987392645722403090225690507189526182092291105672963694344704344277407918865091737835473590788313250428258554937388593917283840392748143597226522846927536301223994759160059446152407247165189480281182363586427402892541152177110604394962139500268243051295787334493375531651144680044213212981390288867429478160595967119338910259199702442223554826091583005619367997967115868127739296125576959671347639055500784497889458256205656619726243283911980254393087550539325736586930836397851779295915265271288268436171881268005696796196842807761725462282107004309873543177250943178803580664627433482955784094886803212188408817219073437984371430852453699270257411353933947989002193808013540820503198422467679190461357137047292500069168736381140018498967369227106699129703189234951317290126817764857512421812496672020591636802077410628923917758197236759067791707462933459813029466307482328718281531040884385857543479710877795726811357005311946422278241680528796792706733085152355630650647811181200936824755719187951715734173391764483171346500232131448952885895513029025550884496294406161266730013888212156529224651238313963229404792506503813390804544960802509882785504805070308030635204598204383684778044189968935429806358002974766976710478785838115655263716327942980806146331294602759895261243532613623490709204778817887867616698250192539033754081770990968917316423402425481550747890005901890087493147207367348603257143211602755258833238727445937039312167823273693229798170793819257215750710275533750395460611574014746847050443972462822413951640809076283244684852676214709159304173300626521721152382602817092227980041314291346997461948523506211150229258942102267275495197334981586889630306851978966523890637435318228508736559094124631794553570325935712574156553215854487325564018638525013530888469277175527438662030649007507349435443292565811271315102215449023692050309800262668901249612013154106967115143476502754626789680392345201085433695005057861086635237285252523111666731117720745838567418093663511632798175177987349089634784342379526274494591231049409539302028861663606777125085804016954127179244856981552858567184049064855342225238598308500921061966348538061937356025111894142639408943980782243351297573264719357850063292471831114813360718339829175688597311712369153852928948922834352854517757720830750733844807191844596324143197205066839245943076564101370886634742460847250025196000000559539902784501990885503107252578578845682767543038534107369963746264263973627824849579154461742346528408745817697193668075681540380126656776897975118724123092429500107503109992104316382210148431795211337356702449989629524861551127264249074964285781245557610902772946369414944976589536645576579829808906191060311920588711903368111661606118538249083033349545533758307860329207611818703414820326113425973314564204974131189974540914801929430425580888126611556140566608763518099691362197210152076788078171329832227173352463738415296230859479130701587882594308060257183576268680022860736702506153058836786652719993300632238010693537074011107647014206718950870446054479307716309222741346880894309459568004542221345521972403324274963374958457903433207525570377952317163508426260414721859700719203215520395835600615055148985513992827144578427123869139006181610742854699672567215047884039679736090258448126685081813895394660547943160446118575969532902810587334909794688899265194962125739538992867637509768699817365137187195372487295648521266015355037658779806278528867195588777844856798713913681197633206873354374387308324949680967238669267973559578198908888444164689387172547995520900388399768733353980736093753648042270699055966795408156391982731036640816350041104599855584533694241125901596131518334260946772385506844872568045241594817731244254728565164244581794482329301151792013887952210455959577128381555705384231836960419470298396453799914317936788508403242251769629638514461382528606178668583904089688549534986882016298765593486587107729528020209543051878730139076134652340267802260915660943800781090309190128516714271330691520166531899514333230083511127710465423485816894067640263404740378892808235305118446446556444422583313972678982860623903919245032898122217335319238252348699264435434830849661515615667818184943196285528700133052240965448967072995561984828237900682454177396000453629533496398627484814671476086131612917562107428744703550749101411716455495809706111596651932601519603041418469722317590154334142686300488793719025010956232147695042062207052034213632229502097308728168171140070662786159678061746891945567918996288642947355179279084199279142392425365835795562193098016004416853416260524966377059287773101610617398109685971869785043715175871259077819140362504162041506270824684712557782103812020411855179559814281589357109706133406896560170023515184834964660570458154760475301219444259096669412577609068163912939856412332929646580508205302400460543848724234780964253556733372703347584925121223432010174517409057315142895759692411233898353599866543036933907797904089048696310278253119176677198882123913020716274600307695994558383805931850605682690151451649801253543702741133996584647991252260267915340391843354221979728556526282270635934498964864830041132916960538420340203327547629067573045849293044901934680696692425679870921453702943825314220996334503063261096236960452516405418463012245559689544174722287537153736906928591070634377170987416556578239100860207596229272347311703590112008737650024923957475817340899804805384341505766229701761341683312209744594904179594357896458007525375034368819102023161976703876883613400732032660981610805067807685476695089418945322840251964047843146109164062750615109911383119415879989151237821039664099696936518675100195126386226571586836312062853819429644582124405212513460598184705323463378078428755655543161609588556883563783391582574362414674979441552652705141936097009867242525462203892873119648310474627830492786826830574383930994323535648457741230336681149823774105367042329129546385524330239290540980017575602338185806613367396602999094620261753234851307490816020302161392437595404687873201737271502769735057448222004214443962888998002245648621620078850284902317763221185163385854920197500677307777705847680857191008842008230692507621887975527865565435348213084487317032227521846672347027353802274668646682384337834894891767649598262625933015967691729387550865986350521805291154239344238670384794432331657223637942129603144066965367270921905791444294346299137730819879402415560454277628714106197121356850134204065012818858153345566850206738327634300426245464145581239232135222645692373770096886178896381671964310680519526377474951149883554335898690603781148081397894811651851293470312329523800142609662931661133285337915224606920704310493003208962282861808380613224043904566924619839172800351033589674694546477844811960927657143553619100048179452099472168590176316848439729251792174944741553426616921413058933633556275879574121607719367688476595529882173669532574475218893772800516681326467229671695996023809444168707597725868807857046533174842662464532631948357027737308747138073522289253745762071585474706381008393628435790579737306664925281833731531092519595880770238608736905608399099205460349927440126583752095003266579494306161036009693802994668244765976914063855338436322055228557824498543285016881078288456491193463526002401116421417587968828233136710055042991693150548740301823647218618255855243713071618265307712727354620692841320989341252145375194334962032058815926137574646295624883438938162702504193800319890948923507639370149184049928242026998843209229611354235320042455090157081815607717883464255562672925373660428279138919829038369520670502623464803565186717435794850519622826131070065144786072759851074474883549153455286061419853866629529970948064601113533194369594358446049464233111658474992960850654200577463000678414012862877832376673917195829221851180586999735632206050796986454354960315298993938085806401978288666987973941683897170980469855993555421906676929564849903106707020811485222421982629326914517220439887783607411651717764842674552713618080599926350131273253906197674916224846075163003685394255775344227733290469229037647739331223890418662774269473814725685165905100037157474478139676390870593012784006690515922898751229836547285946430726252985738719139016026563771991057412405154466207868493935861198345765599680504744882991560052678159768764107793173274646220787083033007871131175736216499328511149777019051651001859990745508002848949513377163858722861138774440962018189983510792432632656338158551052289255749315758787256753472053825117489311770618996226512369624161195271159979359404424451573296861500674568461093803546099788928483211234595488249652538267486156954587269844834442887439690013284321603168525439881056619960823693525017257580221235786988028417948535354057423282026867044235853439072981159685777462133720541212844137938422329425812701104626336881701299197785205342534866793301924587380850301199364695407556638941704248384635832130200529756384581422155705427272786389033151034316353968441341964993128601528823360099306788223125009151033110116757500669445890971126067149325191569382363782345331308947559875942600230149889747724351570798069112601340096399757135894134564909014721911785447297668034023989147688795686039394862780387910415016560798852926406247184664918130889396298104112141086026142861480254665375311676552759242567953322111716943215569811033223235399393657931446496744840307451478477323705128175677815466592659322743295408956893299327857485199979011225874487486881404810895183750606959819313710170168584324398952865130446518478245400776175515039552525692592247566203289798525153998172451037055774986410399472966564398850503139500489476585359981644930225597067548642807302858730183148873442629781812998694928582828960441865407913681331566336635024099453796806120203720259330039471549325928639711528470673395149819357649099805648639268196807253565599906183748489121380719147733965132888991265648594167950383603908930099580840627023369797635813141162535199447525678398218065946724664425113904756089411250248080880874077149437917350359179684100844289928062892604547920970303132243902459949139726649606464505738042883106727020261439370964547643404183108141780022367440083765330039541096682327181374826928062577263267256595426509162962521494631830732213883917975748096254411797082189163396483228221694309666258648452058004297120486890146960610820187509132858804648471684882221869237181347992302443906018658801255941620599589753522911577332691873999659140292805016261767098887583201269695635695550806872050803787248164776677950513648298710121832454482961299895076392158938722267464726598466746664685681497965682092924633518525066010916191902790694933770307458611574566295054054313064824953152884038268860962652653863433879386030139101334633145341117605960622848067636381877803426324025396790467551768340461429358860473358627594628583497629674672784065464123579687766032787134358632617917642884185761956793731455755574437927976130443581212138140647987897577567118657170592930069285341943712558416158038943088711423682000056754322456559482839021118120559652394892047587915462927948303546774550599574158628315965708372723220494510400456244615574071371551301357405725309305227332782809098189532139788916381835517817939207884532619115963708763966373288164865386416336949568446328942789580666218556984758552315033641169645413818462953125287408330206250539656171678825126101720734550525287907551065367066510636922750613989047256870032863323333907808013633555256579346718988167284266699815275841652060368497449456519021248104145591574307959537105993826215195447729206822535837110637424777003856906735551634201552323994152213384515853053254343806581628058891860952921568433977211001645103621430984679458418057391660948578100175621077592713856470093183729586353249244743919213377540998326648633270936652938600931488943899604442501436947940286098309798098993344228114276345949253750140022562069875239942456443866720181500833719770560285133540711502187596129427081704771466990075751249688207357784308400591395107972737034944200045604485262799225470880783684855372958450186284450209092187634900813389198842061046553427458574455002680578879617739752021031377880589970834708040060942040700960982956116218981998789301278688446605948145409047241991752553246438327357608796052260517225928082097108021172088184214847622892158737012628941579904871428774844073647698022559825560682021214452592197569977485534847355420953422021739421730954493843464982079738150598118172185996324721802474527369879704070474643547376878439697498759877106575085834403956833799769493899796641350116787577697015458759389596560387591165709865142839986764470428110057698000706377677555492774252693566564055202785814322342806390648569465571266764918132005051389228702537529559192123918785936097530985068366947584483287310184628490070005461700383646395121448360594930024499897403951289196424809502823099658096546677908768312436793855159308854196189558834819217432412206046509455223858737097654141958491713243895849248561830162870786677874530235361382010596436207591037305154128987319910604556445322938934684950592852125408908990458133256175371821349957924204576819837767661301266985539961704141157271954125449817706644070169920094178156198868407736842664521185967553565660175950622272230106018196927572254855058858288490680205359341067491809027294022572741417961822101316608477942236045998417696797830713833170437027848184189251816926209461960840314674892352124824382593879698933045455928565349769462923351249498387628955299744992509725785043491184702828724395385821545740953199311543546611935915537938512247926378267489870865892965688740756027111500949679404211552403287469587663985791451349060390910181463122511226622951153025917022259233535774020466987995390303852043354323161342058036658954810874967392061966620673105760417812348644447925127791873729105887692340275809805268669079409932812688598939562009996967384690095242677355686041007636422791285080205451771121179481546075649206270492893809183600188845018584723844124872664085937881033443529585227996938826777995838449293684658863595267920953881631928838912270435237490333079824731776192771401124941788554229448510303169726275489190510742328142712306059354900255045823426750227930985844551398579195822773120981134545999013010907409401113762191247876221453808964548068711704314615541758817195260448503690516488509542246574278750670576512139053677056651048976679294020654312718835037400104054741128035999392808889219474766954482991357188305601094657827817155005979102535949013546307832133631676499917186583329631670192616696979697567384545385739523034463983495145159722092526361743961133470818428170529754931968894743500411564664012177376581215688170422462904791517839337679517325891563236315525279789950992021411738438462641340843586274584857883186968890871963601138074735189763501650317227534332739877789954497775136757724578534663143986738604813144893643245991848097121891736282884233845776547188095268450701621532678834987103984748779219906232401088271950975030514044932657599364577590391633145443275475924973634750991252669719696701384782926721597012321023708448141893876217877583370337488929670721915636556180437737894757797789888190932382715094129978920811462855298924813179245496936208718749765166656254131773456793153746063365353750293649205355187660998955514905072450316721161960944123548852564183789344275095798677383038680358705237066584512995254347798692426421682409129589440542182083541903068218974514415781525850496941211781984830200273018502127233751113770536408279866513746618666714301849901861148525709791354717683081895102687552687716094464496250746556527302887477422240106460812699388009747166632004677295329449594202083103832256887757832525932296054763395087620185075420073506904846278076882073515244188865061187871453400379381963872610535436156898901398638559719831011030897779986280663152122560404862190261406325686270254469181729625202245415590844986035022246882450008386941602385515041418342017447578378210700876385979948103571161974098709631707727238668137328940368763013604329743403291363062032055469600261139896340908031810394162767153157705147004647103279193049841843386392367440018514531931437852955966689101433047629382752464327644756929968877856919369264704889788033801967821668896941403439186122544343065063513605365008310549750863609829029403783273864982251588059610894997382707499239145865452353197053533320539444014982215250261399667101885088855584909802948803079241254949309821070346600063866451599944642161971133257895900714208839899799160375753610078562984162503264893697614000503286976157522832348114107784625784118091336941838738765944740264281775954036650538471475834625555139951462621825560021709472104842257449379333384926886861393684624858136883284864008249918594115175144432352791088631419067152483517053088043234423629317338682690568417973692471638760353804861953610964204236527158902872480520154300505325812506309494298401611019705614129132250626781638903225781295210009183803126149309627315685469142357007041717936114337714444687052837028548046611097060445457046268796187256588935391865504282962312739191211927267367154163816518033616970721001845134119517720916606194408692884028103509527412708885789885383877190592665349243298108046960178444103041311796672253135116845012225011012916919749246708005314815240646556784459089295153368036529686817248927851353550811846061275555646002429930122811934466336145004939116016313134824187627451506809807811363057508467109571608416438502572740964429085659101233382679208526112710555906885576024007210763713551548238202319570862481986528815132217217009084049099819010328839181998809897158224195225928286643480158220177493166057888350159339114445218047487762338505923911562244268241292155263156122990410096039408609540972694804570408056694670595053358425178027701058978808767314439933068952172190475939469888214552022293069531447052024233665729512444963752968691628400690075944542975692518397604370396368076866393291766551007716839909887617028049690860968713588075186764209528667595327700697401368489948217925128573213395683141773990532449336238169040083886891686090861792304149422568436694591634924612593665498626801666276472145752151590287948575089498882886610297588301244054031416102847612138983324847890450656660100582407465556503819490098854969482711460920313415268976889512774941181428448663566069510715470975699755815185694797382331175836755657919720501507621796748386984997534691217300424357076152023460581232179092362257339865539387564677567094452550340145870404005606867108671682808385467075015077058663913151055183960034930042217732279570137386184537922279961846875613480699968422580103857729244185139202028537724936072506650443752158541752557785512300018109799969766497952648666644435125505772743965418797445942678795001203463432522502822618539559080092783605275521242897272525854479513307031818322951955404504633851766871576219325511821031661970497349663471887171151338739596714621007792377281227691377478241253618190492160724429864104055284524551912066817853067627706022372443150894162721324901330103116146462919819825020723409387664165878875550323305053555670115471105900194310948936004930672887937093942289658832821876237567997836608008872548169409178113180545407443567258840833341046691754632057011762173700863445804983876564622689286859059386358104561512910230939080561114221339940269096414042409559764483324353811697840934834167156847519284897864606745624242196307174489919716675324305684223165818420972078820724378212287223606567024289532707447393150636104781137386839728350639059714354028533608994388214333112343712709076364083198115321747018841326329417769190165767652536550404177988178618926114054728366288623239815220129045402289933477230926333671388332423882554010406015775837833695843569680703226356190139609653985741623769210493623486813176357482476759058911778635449368576983534461625068521519683587546996120823000954238741552147499464120507569344578665951234368674410339809786764747724441643261833178540111408307599643739748367711548219050866378159380516683911398086177975050865694155793468875547220684350789480973014236242640107461154156716088232531499736702361930947112262043852934622069099547260272191481108707130815127863721481984068668366353747680791164437064817264069543553815612451471628896285707095759287217618736428284071437696725910508329678558217704121948591175350457239428775157764880679665491115315444075423645827995790628497450094596192372427540828233542896505222393133118331568387654432699659981670463022323801679673205433371879325961679117221501985809986304080008421358984926472759812356464293787544466833768180462796248127093963869040086547215915404967090510199292315198797019994628389852837007040337157776747031203832565240495962798853470919059601124862669295632449740371952944260253298600572542059019291850749066177955303703617373537713497895554223966217813685410731217713587563167156077514634572740518187473319629113317234263882417591586773612991828422817857169592273050824670832477050820398445940965050987230093203285185884219322515450723031829076376471907388667065892470294659806390354644306689419793099044501022331587345363407708647436366860669664353606635201517515691247008948743201367889976673764470033946130842693945561270098298540495422473406000788140587308740795118035042624974864587033262532766893048780771440936138845181338745919715227726223174807989776275685328294182413149634018287604808199729144802768778761010940668741001596820862123365281722364814150684953354411031954329796903621848834273592482009731478866439817615368198699488011840006175465162209553846897539196548356369076771971899785586660522119428080097392937321181650710566697430802422556681522266459732274293705002299217658833352377836342232859810440460523467218009039932688397291515752105317775558330285244449969161695442203894450887717113103463738537070688290514245685148952268741929868075677576651026060953080780408814244056831674322335563657045098519839623533972765254013318839161774619647055522738501576423734475654519805414203840016862936474777236543348486785573462852102187580794555018155150970273094343563534393899164762466314136207645170526811633443592727995827168924469994489328705437534915419466702098814906956953075090011183447420079224094423213605527950612966804233288791546271016957459149722695817442377276307287991422038105785924553388781187260441414943066356552365871099539621454430013855111959652455186849883237049192734528982350538472627068062832975318233491830478531640302985443806245276190434771608268554549973243317440842090026601800112335308623110893716796686268565931329334959648473885283113236597376759004972082442451234145593285786707788254063570973835457649983963467821834177340614718044275405786641786896595648529323760743180690422697058974146758244947911962293004996772881752701641348396045737329564414295522624579703876823605981262945908152126290401779002469698155295637140339411024614336785769047362605836510682784742724342188084647581561550813966277786730997337414440528276079298315396319050913063806306652740799352131546258047334129643308956287080562918110362990805028694692159594418131091213716357978924590372577671172387524510725724122371183686149452070729948342751385499441603866813703978835208002236754925589982448296538223260984634457013576309572364098212740953016358484649998395550523015790256107830863343962223845405619541031881960685199173707461637664329473676654389051604424010216774596800367370655744084503142591127253307187099671751954838650280408262510368632503676764381078894381263810077067956434705645834332750418282466707569135155288758226063468304203822597727149370924062290707155823166824679167285376645131530244841253057964960719525570043403621665606579502589806997596530274515881975624126044469406995182758562085667419276243437440352002480143290914751908407147267737224268827758727212418186438855932056627745709811352315181464445003077630373667711962734710885888182559280257429551090807472905880154221599032901548930609330873047013824991547446304994781260670571960432204134891739889124556358792920682638312773458897130238665818792756886148355188724764705527984746271878837034013942675727256301667129587041176809986356427337439747612953159790026287902197229314313925082931029592431456591642416611712773425460344021699120667736968139009008952531488347808657318664245269065166238330885711729899270385436167756712063065096771642853981757891537894546631135419412973172885321363016850400473085716120736025175987530274931727948764460322080834697363818541925163492790470918856794557012978705819431781465425214294938650955583715542363987906052477868284188672823860532281136612961415111070200966089612539955191753442435405786106294412431886311612316699464482825206667236519258473288576155327411757051038898718864180290360503138689596663204330049627995865023911306755287971121234943078975668465048502224956497080042350510100043150749474217256726284325941826606071252707279792562688590713091645424270752028808420633942010787756475904908446295522321427911520508168780955293306724299612940742191811810656504317619569681763583814558218385192152023730691990986136125367906571226009226340921056199813495628457325823169386521618763358239157946130400637149789815067501468804553306593371597123447171024139894903541888329536727056428149334153469833441969907440011976348329503839862507018871927802204996523546167403513202631409446588357972943962668831958295320998510657935199065145524401520521894466227038851896778510403008211187089177120442502308546452049209234676530010204782485970281503775207901981360859619173877563164945754995587459844263124823133000165240599628454417541613421398912259188517317160810722614929658007218859607023736865576488136866184570512657468278470985906766096707299310103979076956563478717151848300798564117222279277683536226088257575590999704115008456872570525720120028092105543843952798127514859823753016726340198915938876051211970504837686336944188819435971587283319728199901307567438469990954232647870582957729609237105602139690953763678905664326070829548451820681944772891961010121140808490824674149956164861982409221258451670512173287845254242625874210939950853389803468366435473488936373603662222047999624564991980917632923295677667599420746505435380351365068366922948800150433289348989329444117996354821270178012076732755069841599082663262746678539336985306022287327852156125517736223270882514342277951205076799952908866658448525958088458793571483578289609891599926993531398915945867664790528684925523745218007123748345653995175787109981465324798059442358334217509907212713575358766226600690572953199257753548615795474053477299876463195788146841021742386810283644604684524153899484406082994250832108225472791974509620144728763241139457054069477530222841302811903470337317657545335480416245892682224446312519171790617787413705443442065086550135890561485684555343292940382779419125852250473978343005181765866587034909095166703195822296049562543611956316940670368319034252832426420916452606605264977766774685074341887514313870539547191282938392993717360743221855180208381482945443797793884816322124744147074722494098293334791401079351740431504880821315913510507149539950648959658711924190666582234947492217211169279388544319240097830232275885285232510087419260342915445756869115917352236581377716716692339458347609455653527556904297923493285144056164421591336525418590413605681818152913688911387050803227718018399060395376007269715404849368053114371438151314774572746918602002112013534616784187121925904128716803999177286217331933492653289540714186488162853433068114981129423369154906904383253571549403023001175739554378633376270672625462690725798806323794184454054568365924998361891989049242327874713861711190647904462779675799122280011109809213056433036826535300502050167098582874119133806657026404070009507325662150733487775097261430064799726224030493575064156426623446665322483884153705311934746312860544951181060692757225961051459898974608027036403948582863091196033724764867938582390160038565468170918827809695867640687183420429786799257992513352963885791680864362326874687920527478737318917256594476693123573468912943471910810644154143553424873779456618702632205088511773200621644230261836198030285023785204771072114036602840730529302584215537202565515120524444822684415413037573328968421558714691760090253209910132160640925677574165784779368331061642081572990137942249671373095500678709188854407060443257862773880006672196706068658144297598844615705238050904002639831513112802596431145266909689726567425439001513695789298001304680922462823183718827217660739883880154571395939850843810144130998713989519079173983341268605565958693935253964853314837736629073014498303155386768527424893675884636882790331757108261006293554838829718337241712712102365323015946682415003495619197674329784547374548615470107396031169075301573433602267625331968948330819396293112480955934969533898663173465944793987881839079802664818248192038765482800939034191076138485656333183788531590417061891200073571043616404175448029897850598278040011283773777658311777871875007026994985927035587200256127297510394454128683033466287084358227162858259043784215014636284396376508517087325523622880629050015089996042743208256255351395766575346674923929420424180713096679391591281424379471886760525574631796808957261595390241507585688107412192559805865300344938566844211852948508025100656802400271817529103618483064160575045881867590661502527749057671354722249893497159981931296024846048948933456423536051085327044060388152382456367569641731293505606041886913535010666465769012296501367731456573579909577453980935146618971375278113653945062047999522197424477905551554558697857070940405147765168737019313834299590129246509697773180516354081173303067804600798495374783610460167157159825610188725437060370578917051931627637222074387918648079401392088074577434943219366387735066230982884516083538595735625417284810088303801526821758940652159689603163237843217100709419233629603028094599574729540494592677046917279611333795341979600330933299445211792165387966305607887911136674904206538976621308252018535975856770158891776923320646851358767425235138110344138487068242891221424798140750734176593739754050246116116439653151906402052787365437513395678149608238751665634692324739970135845752182181257932866002804427957442039823555542373696188181238739813430294792911413378127028836716116436718893869354632256399353321902327065413318126323011319997400894131473015092735986228802030367033406597358828338480286179760740469751236312524751318204541622810334559894323806282903752615936019794427720621488264667768516146475627645133002370885311517642764530759870285123099632627927816645766936684136710332721233461703824099939133952288751815361554027380996808352393743851584566569046450434162907093405393941270181540275176471116521189725562190592647051009896881816001047081661871435274041954330096072570066190033904338083094949764848750343846202669553017663786753711292518399998359752988174654252544786481662609891961796627429223627979485439065008104316367541100130340163341876831591566425831976728888514064959907289568125260617919034667595506870552232292237757450863390656751433719302111748978066066621740771258334959710540093710233882076479381478925008053768569854205517922601602402195964093717286171295106397698842766203521743707356797577629684237913777944809994545928135159040081960795901953801997831459976018265904008993349893531771512533523277460143728610679383698619096311477418343413322303809005120430228509061766002310183761306020829793445352699000015297801339891907929229121922087150133878947203100867937675939308424286076650145162962039847778122042867004862491226552282445365249129156139351620197166084653203428288767462363899167780793564622155167338751727432773347854927532818727398356083652535965396342031007712496359188046900862993136851063298036989138468420682764809115014409693517043365851305007240902470384807504132518265321812140660760119259318419314195232034228560427299847773839432116411595911003746077292226641073752177253016153109419839146106459277277185395015106159455927449828567182041689452458652552431122320395198048230395264635777473041059889331316847919055258766322731868785877409779553631456749808633264039728463906940609315428398820599449082520021192353807799785976605141023318002018086482246481667877656951732549918787360113131017073466072195892729802150393174829842114080072473692827969182544158167866389850261834418519124567701075192930527757314417797608478685996434474880461573465508110532823826508622971393809779947405417466318436522455613265747412750448574413059966110125151901152973069507477001698559180247468788853119282341531708411674262896144176775188591694348026333721231862321514428684749682029903738959930305141992378795894249010197454178456149118065242405920777835278752669007352597580618925483648678046178287032550344609419029125378222310619802991833691136869544966092155083803827726884328264042206629126184938035058306587013301340635481036265159223979369269565906803146420680163528844660225358403819344284328968422758790124975648534651621913983859593021374642866674816192129202671071881056057799965096267606429762781404943800989697046728600560744510584291967678778926323999403621172684954065788805236611792299803987752511720837315960595188870986791451256615951412609738804325528400359392972786327512840900956750015859904544690124627328129268445887225962438428738911660236003301534083921280031143367877137054516301391535167799717039860262437338494578628356676942001218161838742529636240121998993359246703696278258082848826632115635837121905947810459529222628287378660913273207265035233277048590139295774781467412519518381727237477432374886589625273927706171186347731144623789485945626801174900561342174436798999834492925168621745888536211596109173756286624698838574768131793192927441325013085282130262547353438784640104868276705829273753242364207400252689475133161186379285930476496118316477748485984024616662107773333768376351216506067712870272627387375162531824580097086695289995292052795044343765808335618764016874314576770198976222477125488484095728112898314102682705223498834418074556364507891233555775652596752905368108470699683013053416750968797509689995202384242706321514913925889118099470976415316501096349926240348706310571079241222685983429254775886031148251424220728003335149655102863016971334277966961151990995191461734022625830920928047513928741175979701253820058825896040314231089410837392154990109932068845642406160750680914631812097788412580501236771179706917943128321759098851451786879245541045669100716704477952726430145286713294875511760159616023771835957805539412232116177104493790610200708759314590439046358385538110682851147100067668046584660781950176190581448653405048036951709183758006264267355568956035567909931932512412234377978989845434405666937938383353771760180093103727358100939239721995074379371696279217949177298916058813733060859246235995731005857674670566786395369115593304908657084073736669369972318143393363642576037339880403268273257793667253437919957164385567915274243612981904759191971339056771631987784436216360471536754219592322786632815304742347481885754333892209505537876673093464758333198037043983947922022216848269530567876407544430721275260076908153650945971761424931965932513363139373704724393432244929640122687069837738837247111367489790391324167795129773255832280773078406799607224807190745296972751876046869731197678040110952491861068668300701996932058295032116953013617696222237721446668974730304933013192268849071172651674349778139318976646230874687888761356162163746074024904728897149345060460118000817456619832970377440897130084447723896163855721902689150749012908747724948657326781133986648000669637783181409192486287623550605435831529967670647880052899293736037986201157979740126343642700140670677695168286680597014832677509211255062839765161845689439002230433663640642386100883371107717367983885383769436353040471695054576640272383137412387806720749498472812192505668168161910766294724401156700298628223305567034615194285452956291290572798882014420817492688108161604757148568329021206249522241870249735401312502869738905312320048228094276840955186991669684170939371848726327008446977871843192306023052070723428286755285482100883251954735406257933197559466452635677174586499203982809416486095083956660843204534867032010644867041848557144735346370841402964202387766172005837576633017988904612968524664425877175437642472864968272372965405495702702001719971714894386884309350269191427129211853090286737186320546499303037984469394407417567144833416581493326195437388348056943317584487585042418907986505446787498732448849053385955694661630991811271900013481763271130024091981795539166884455492543389406526322697930492619613964904248791282695453563065756574610607911382960522314634283545914203996007669165704316100587580388240151307927787246904191502138381342053611227649139236731922243048308329521496974656838486816978994181376537547370697375358334067972917881458808797463337186571435034253816200397423231874815044500509425353410919217704214037401761548666197784447310139031253062606231010720017448887292242822779904449127194734515086619701220992517270977898185299185847573886420072499037645550564628279529907579336507151229468096286198094849182948258432068452168521730322910963232472969658465429847900360437982261318512613196491082816480704219774497188756084949332027792442559108152964687288401055046888133052058892448777957318396197177092311708413426369930016290824860035055429334085790431623555408470675492250560149190338399003457428160495256921678356784090548230286089573745950705926382316029846813630946658267419039274546004729788531429705893508109772024434426359796014583912976612359812059100128059844745079157981537854454007346216412513212111223378527445506759652936082535676060581786651412885159498032729930279391827916091848555793171758150143689079462469546596856654070440471657756080666243970877694554897812890770132213323510453255479208045674254108018923476184780711140149338658155186426622618255294673313974898247185106011668134722450108596224876706669002839788179541844244600309046508431545625869242005274854044403274464261212726884344363670511349943172080513456693513735566048115379947786301820641345330813471082430582861308442712296091394112147418822733539446972714805941111193927148222297681300838622822821708328654971132029276968462298528113692134059247237087140677565603549898012190291596529056502636251771449451871408448913879520887970731306456147110535591375659463759936148738799469285629169247051119725777616855756900974227517733923498387243095937249284348734095221487255060007500938253677812754041040620907895630901917741616386849316416733054753624654783710505154247015812945122787327163183472660206250942145332138023551471159072758182673452939764218707346870355315723684968049002900156731424006932990947132991751678280146301040897589157328210332047830364732387385622678521657319254719528207245174680515506909244048760928739586485884287658812453054036668212523271662042922387675616083297814464059162001234857076557356895503216727172481791544920628675323494011052908911136147063165025760965723285224372053331850161279183762883339106740663683217280888015457665310714928411800578549046662843754703106194032923910797381378319014396992427183328184993541533971573856542390580446069937518129062446882022814295941944037953652942465673565648732811093848742516935729288435878396814551761436895730375893781120044842011689824893173151048633704680188574484564893976381469198570768075400788268095032773303410110659180388202520154789025491899814767514144808337397582060533991992328073101510230065644167700885193155536409854856457748382773884738382112237349993073978608480578735879605801855710064328023719625639299896788299257757016820512860655466909404777191789122022176228781031849659080712758374493772867819062466159676230807947220855809735304402028176650548187543135841769110034777492621522307547778946625914467177969650366392624340322178938786685628098324558671991765861527721750310490167565394065791468583992414489672848812849505179290670884981211848025492816695683698862642340537763858344504779731765119462744579146211351120932129406789655090645826776781649037558143289714691943482830488638335729900649007805672001737410085967191038330834716322721371325445591354299545090581133387825295785361216931197205410604479075179749078378223097476671154730866660950617850646024481039100770162250706877809124174903441334934940983065735892237855813935960455610515723427805889360450461980540630361772242476325724435169290608007920921426812045051231742810580316341607471130062367992719857723842435387208218818319062684675499591728032860466747581175892835809722703811994661876488371808486479569057964676716905774399363072769597712077232363539608342326195960505323769283151706154755004307162143806161390924616529243879660443388669613477981032693629348027346059222402126558957486315080622472664309632275424626119494999530467798332560289770922442914726643801935409758121652134915288069831225745253883913893500674513956315438768435819796287126110995541536678520679421763567627474590875878509657075814421868278782535036431455971802524249909551272854266887320115342444962322621701026336492434949985961991299877806033842340018006271407274355015112261168952032635670483788290489916461943837594708109665218363219843067478863942570382552169213577569248776024894886474556326124265370847222788357105143337904042551676518262037212976755012817123601040267679064742321954538158091185053669839378359610774542978714501750009217422849967053707844369921111342507085010500300354451300638547566123622915402732324624024659979678912713512470940514406023435911265138808847481346822609637238997704292800820799514994985802173949621106873987284821246951738631226371937425498367840697937572037942733848793089669597499335396088786098047262593001635307934864378742007643665934392409389132218429503798768561131586097917777479387606071028973949765609401115416287317544155571698803334041379046201871718246141876361264323328871462090906871452667976583928555880771832741336759419393818015701384390900930647530610878434148391658040243532985929340378586968563476759245574897455072076286402806152827963152743014075551107447529885073833440738629056513997583703689714092572722066943892331134583405000175700462049682709209706723747152146373360018134392903158360439011230860842116792192739149861969273928611219126083953944860174716387305418636305467833766816433469367032978544412668661611905011519388097362918027806215521234871391316305117462380439737486074201218333573655892242568277077217925414678676667406904469769704849508790568107534690361181947261354864889777670320645124148842630917060557113833203820271906813800330235452733816104272523374750872978164602006177321007579695479394403648076698351578308916739406407820138761665976625550975877908814831700903299755770029463937235939797374067029727327392951300761435597324148374098791135080753219487368579318448695742102827093861210563537686077872558757929184856152741963913333543371070510718898221478308408537379676278358413655711439578390266488477534927942491521997940688792165321067900270634347087536974555583591857207693489382693702751022268309298114078508305867944159134474749363995045239586224156066498656103323796021978637049822821115666288581302784744792842206023309005345660215398650477408071056231200024114158331894721978685860054938554420006799751115953059280090325634661877065891521681616868588965296254347774166669114567325134513450303375640028510004779922811648663485022632022884923225904359721902105228751602360423704257403884904558825342138164201387735929123581560345096213018732224172658335776357074454328726073716202783494358220083367996072273293222772302772654696397044591120281373856662758680112889283084745545869446549293784418412656402071558958169106553854005286792192441542169185042458774378245162670421669568796460974113133806778160472634411850459552643069827806987170752978357288545515370016427192043121677677437369606490184109297705051712545427856304062208893092978620766430619798574389452511493947006890412076234883061134326233621927264959310312694405730616180807997162609234525780493493632326271135869614710388618403668697399049674806931445810965835379596594912446749799423462016405061427415459044463109555585480739432823264711300470752201001353794397203990858321901181813507669435171722629779137246898202644686430704976293895697580180401167423626734637424159362167606499037516728779362353011498964246964368750648061010568828837760385620867400744748497433788639860534552959613608362733537212315582835617145360868291397751670106934918715325032962020154385916675083856230316784888957209362433376999423176750402740563858553958025310536618123962336053481100836724807783855421252964828901029757557613980292125015962205340339399102750069342292057642999462921044399498410921600215811810772779934230066558999216163686653419196553043569268496256608215307163176493071119546825234041713407201405915347705115444740813573525930183059014599610160923224130765718524373999442275569410894432150855295107835967595190890137111297417811663218424600985165167954604766324878636839091734100349906553366734916047925196436224677477889794232739004540412685688224025114069912019463036744316193885058713974897381720539602798731931213741879115807620481413253027906167179201690644325414005449337734426525931190311544090464095429669747652258134852308240506697349178642692710297636578633112462649446834673743614167838170003612101904876359957971754457678042983591347531184901684537634618021006672358096157855169228920782147114083107896842894045371225789360114180492513648590781386645163592604257778916835460512507520189885184906236040858602799200573239120594054126274805948738476132195347761609656182304753563494125475950151955476611237751288934770427358244442840638841323645930921863362282319582900507359148946346388958739912354933242544350582236391041724695628689483542711014386686511820102555467455010220352990387346934254058134315077945714564073471969549507144942193195874395097700020580842687136518439929285634258588942978019804077168094106783801652087369801188344414175753749164896275185597549426177611206605577932880326478913179449432622071292400437570168118291705048092665997014408863289160627010292195490822209169812967548365024446219015093119802929397134304606858592860976158023374114520071152727751334608999459767159103158545479079743523784568679741009518235440163122203519842664952361119203891695844225656122751111373079720936696752723079255500600890721794362661846917990068501484246944589073989692654929395791356782348972380920567709290219524094090598192285884531975920512311661097731897160404471844392590546826518952521184850204799208467834832748937788112078171836183742164447060822867563154484731255068253933818310959113015080084386311111266144528878977851947946635547937633500352059550161480662755015455105672622011050787494571508073410762601819672824270815887949790148475899087391077608372634269205467194270700957344908977540058855281806265778445353597853135239118641230000934096337066592072106031193888396726816798438635170467869792221906187930794489214923901278312580629057716234600467066753176415086431586948977342672970549756555642306400125227235034939826148175100887840827354906056370979725447002137000426725588616472073856507858052898587674881388270625034029813936602606298535318714546249508876208903250008277997985691340061870500636893179989365863556347738603590547886994168156962997376478130268950596622030310474217197106834619536449575486101829362184116206599172199314205750882658959572887736630056693360759458486411868268029136262067684216568687901531953071916538276712293310658086935428831317053573010901463542338459911217734034742117204818054206886067581770017615596847174342255922205184687781574508018008994936316177759471750307895072498839577675152994544233712479689230713020689667834511492238671924259171327260994557904508814641944906731849179133248733951340170128184901483676130235256626642864023798292631609828115864794420448799876781546256301657874927509663969335031071609518628614398281254971140115437180839541450263147877281058368466357817704031589914897037291482902820290130152196827318325681141498959238701039201694265877463253303643392099223415405919826473333702284562775358673308674267533044430971747220830069537344055352738069135789013472482179797678576831807124600646274781318201171486209830681179474011716353568634940233233923079390530537699663263441684253647946465463926833579820946657618687011244753701068296748312424378460076463688869241016000034785177376217483465579267575577829153213797704576416974166342303028791026038435978260619730628031223129929475548656461781511032526953640730245689582440966623332993516563508127551541973740551356851002898081800197433513390260079184738788562210724136379852827593390463590115504814769941049576392259962569065078116413581339320549901121226037474093343859384754499159001455651607619446651422086974715629723322546153602061185763962254814518114821046512486917710022782069662892076115637095335013791444252334934796416321852431854918960909057673536487655550938430904707105190097547089983352878394332291675380915560550667466479138971613769583616499268789586760474272147800716783344802385033433498687451543783397715267726280346711056177076597477869203969506510302888833678307734180896102761063373361006992530053010344813928747259726587944727353564459072110368102141680255451190680259311002680917899123827743065128144229502596725240610976014091778648687914367289857929574913560852161128146416420454481203658114327753799982843989933753497263311716398198901317072485915340578671466122377559605695168748986996641412718381551523151169127650099412012228283337562760594455057984148494839073009281418631305983563386120677368354243145862066737502999214729273820595362242190073217398502102725558328223068115388836016226471344639026227635961529807629689962456931899099810221810549400945201530995014185317488071106574705443323248860710158495722247795743034993110831320634502758155295286719634334510550613380788768239416649715387589895832141729449556043578395371835224121595506789386522230413967427695229849622392434891015106069201649896138025861381285205538657841330317559293641017831598814481541128891759132488130258190263727361007159589374589593014962916282800030692586776983328926342271783572211194969474077200787323705096689273948714925135693389358299836819594086745245892298176897276235158577090041142553343009441325293480298732702897372076144342992873002180656263465323606766932705698507228198307146045645162930750682824275536085168953330253788021141238460762304200303967353605283095293589670251374461991666351608691323432626002022710213445873322266249747247297223820853027618760938484716025131504009101556522532854206805351428027246710512088095577216861001736121932548158984888641566854952239560918390169353448907986594116459670462642452364474764798102014852485882282789043456792350812431782256997139746362420707208577583468287451624055960123454324847339060839864905710612547097654105171648863369084000509267370566800499006479843922372770276831583823803990919496531936141423655306003993666750206046552737506483425498828222972870242583928937791499521969398457286030183486436639005714703606202147230217063807393415949808365514326426123370869352302204523407269036324890401682039052085718783528964871917197382987240142587164754998156662699083861373019995995790647609539222337399620603207195013859536140793836890076347862550512923396520682334249180739926846409464526464938751395259419180400941267702461109010912439979551173002385358944535362507775152695815991036326355276396971150587460612954369680365347097448190561809104680173200185284307915769124772455986032354064398364319844065141421342354273539051007961340718517697017389938890953286692819554535641524522580230418920411612602880732718131828524737626228921988772729194301167003333324684748462423212853886275282518139562551712912106130812820330395638320971956927747858678488051917415410496105401658539601794117339689127506429665648465216132179356468085301623287764571348411965179339191321646303272312995004199668683443295176628419213854148002275374386320387197695793220551631089378186979417377913810793740059114676946503859544848873303073385068481261852823988954688704359187118136834605041283452956682203759354919402071043947185953622804841332202457009169418428528988168174181979247818258969035490699559493837644402751360506444158678480913515508797293616845780741835727904358492586206234268869584357123183087649526463139533744561091504363922269893910147678575639148967748750675817292229355985805615562535554071945663281122822356750131934751797000067519154428877061051967971738335154058354023866213040172322948548395471230502527901508946190328242710486313633632074926048384753268003827598014652039716620567251370227002582145807812662894754232910857368488189356112805511226329713988329749631372254014867777482644328774001405247460691203262294772693272883489793886976746387850577590562603579633702314837538230796630566495263791816507487887627094012198262621105911918807189754005628325297789867274019274433156117627169530917985774077231603103835983236151853240081556540592330566696962949092312466650357273876063523268573022864372501438403576740889189172477393197069754574236577601482602822450652034344884276152543653490905426880558716203697173875762356825336892574355739450601961444804739744999486237272475193272038138948589845522070066499308635950479154193764558900585594233043459812602739169202924733161525909530015556739412425825100255300384072666751112223303757662949714888778846683647763840779941871309234174390105278847017768821420211624191818391484938366452551158456688762297858493199440172802054207133943960309110984876907241366954879345076848740526906130894204071456188257365309239368885306714248956780043016170184261973211723534803286064033514225477492022935877427434338455840765837151436041231156908142130765749253515615659732124785577173680782381610644059409437569258678454923708057282339515428717465439816938074246831335907065992741600430056384238441262215473457194317422983408959554165127341596156003961847425045946389440819713840094421310005089981424664359251994752976402841544453247152614614124595991796665049183585518266877295711673603097870129552786691406472466821008257011079768399112698747859888806121198068597411357852081290559475695984837363921302190837881713660478656214919210000894611215977499901684074379993138021750370678980851124369928631303423557128813235826373780115351758568544480968003562752941852078121799527728264609897189206412780557150697113449847877932132040605541786526873462261952127923658140658386581433962719023765231721464380307152116957013131233333162725287947306880949448809692250715228121655004403115434951474642772740377759756795616581732377402929230786476095282688686305922538249401600904771706563561263504442619081744939418326855294006941901010634165316447564603945831238374242059997751519828062871293162023145872407943207816365856769835041080433551441597044199589826385451994215801277578700103709722752287929488293328683347219328941331837736861442820679918486707379806837334785509907706349924864878714257082178650573276360020594730627714731436994650367521930229337696319688127014629102903215427312562051874425253011711198304050864766900857144615250594800088530080243126724185116883215956456719111763598739278529145869536757448848710382163828445679573635482116731894594125195558202206151634708633780753647831842758848535726954538074565960703293678922220822182306464053137456716318313356530176705813959754227793907571882097744067975060365032623813619708577626274268392571841422729345789137535982470083995304067374901503967404021215684564358647927026884474107274709948229545163928008212956815062691679873587844150815375431653215798126233459944562719399937943004420191577445981794249920438333128224652841156199034678208279779372627215116815824534021751977335343846177406942614661548218596734512209524584377681499501575511323075284871519262292222938540332005722096897368352884676152304410105876425951686986694872829290814580848382254935593317298526331358511992246988789682791910564272402653449248043985946047994188050912437841798986559809067805823520103370614690055757067086679498583677338967436323197472080849543747286023903145148845196971277481931881104839000843029872324585027934562914226118631458178590756773900463550489523506511369879301530109942985327842415918893002867909082627527546561255265305473057779838976566535818723334515598055032326820999341620209587935402306358783660515729591567539152462406533587751489502747533847554099829887457214543247223278860763870676244799883305872361439398222196590039686078246280141238916332496202274536031308668090756368365189807197178763312321331098792609404636305268275887861335435629812765388781587784110787155426379038263385713682066722689446251869947654706445136665824341273778298643684737554705094241947606551278166710835332168124444716455256004769034748936939606127526297148419020697868789414899740173473842286454271711765747215782148548199320833370268987704676780875601965406088468766162492300380704543079879733038998678983613816519298766680711350572312010915169497579049287404115873980890699286851105910244228936763979579265921592431517371508536932033698520674574633307889931850901530542728042761919538404710453639136995420810098985345849911660045989340729943716041198644568889498436049057050475370399942743455753292367213055000323981208300111242310666527281626695751162716564724473205364637633141239710185231316147962793637996060052602421081752280170600446701066997291515429099289969433926250177874466834697202992771710195879160731860592707269995308380685275281897599054940211070388172158253006760762014953140873648936030841103300693987244679562544127682309270198133648247825443892797749182756299751483478777892500509813104232461404441994273426100577155561579328724543101949671704156797379077446633491844672567006624525857639169309809268659180747227931073956806370417359808288241782008806421154269836671843522130760996157216032898513042608791804991589912347513727754889855398483825148059246638140577066051689415064778282302349908109425989488091645248861556053191899681029132657793944161734757945095701352154462735093198384647470243628674698060365816433693924179516630825261014941683981955231054538011606728174611867470148627223626267432334279439590590428401120633653470735560072321727127803552837174790480482516624827448982997083428161150272593140145905816792721620994146345123070305123815447628103440559688798120964713226442671068741843998044509004135516177340551170381192052832915819175663308685058000622085781338750648225061231515340282850670117952216788480010481280934332441572540213057802991730025618687918788811429441391571524567200273025261526818873585403075901906163561980698946809545747654848266301229899281702987996836467179549060338729974894475650318583033149337614397415112761672547636535443271661519745857385558652671354522129807347625318523688832164704421440923337090423789046540927844124229830138818252938302484849421947738183684199158842190673009359644104418687290939722772421460637473013731003610931212410993145197967750730978235880572007450535113414245235405349246644210823723199117589290904221351985613382281541218407837832597563064150525211680622082618559412743340208710427681328169285018432439956513671252828931042117615727640359324141806354166766653524494506034756894305954422083830291267691120534387525904155392600521746732352263722572933041876424774069626778525774919792934541651875295181775208144686509854757515408386409573513343326684907168165089138144492020852588084635569687905106467345140369469758633285981426714158086144448396575403028942548688930835944157525139836405355545562117032698293521587043342326842184542940856304245534666768911603682012739813786253266022083820577453466331755687872683240415529953074931475043114432714174913899596028958294661181755969271848090655223484282392896549630197554077355787525958640166366611203790941316102030545446763336171823311093128723391009465220390178560537180215044503624456200048000412247569442093274005085430103506580167203995175090741378957548679237325194572301888812333379505664987647796947004962556366525702791334212824120888388324572796495175004196145050235973415306116599599961637330323690298465091600119043286967788008487509836518572783825597890198437650456167337021206932089968701144498598056731202371358764396760639989395863967649300529735892849007650099673419641919602952846832117207148204341781750967933258443910386019095725555755180305544405880089911180290556770779932317613313271336964724553085495079315284448078478982592800058227388660822855942858184535960283626884265002413531286670372264225772687992771255717065151485964267410487466040880790170442116121706447349411143126730844280491736792367900121352038803717683088630816400180316408630893901533824320656074195614441047243867952102875012445935549941846681479488015539803817976265253410407432637878628248409691790563124723711377273665790790221149160419508062653082498244163877779095176367888335877478300018894280029371986558144722969353499342614122173224397541326503803110014130550645453880589221879777460580378224967698892473090729164702652030176452450316413468967015411075328612590119946603151916406236493757290390832709604716178505889757352894781299358186603659006337322773453188713764914749832086119582985630655339415307747508108630012809991564044452899414543452944762948501555318214292098284198654151164277895624402271163687401612319320119710978037638852417960543207624063130912631509427113811158629016313570482972807513129295122024772468443981415918986215653132431813331420475693485764365367665245395418958632743998294020823568595777400869867459023327422036957890234077396551472736606336456966034708219231198179150243771528471641320202323183207056742524141767808357742804811286276538368817397225076123248769228381858151387771699786325325005872193348777314697149249780400194804035077994101825697075424248288919972509689031929800522839776640681844079701559172846486840655272922872805425390582844544606175502202476273959862004223736234643241688692452089329875508220260433837722459002834757605502400013642609464298299455953774132905988705179185760234693025617275979049912033365636277625915839619487784645526503475966701453058705742626571168872390925567924000343457415104121295629257541131391566157743284967384149366097548446628287763661402776388285224134611874251907284074446219506481814474916378589365096428760024693633217784089496984773548560617305938170192196420816496686281415234698118152604385779972453907368360875795899643261288444650320413678770785866467826383060042132443820625991698127995703431596790660685271206363816345964138098156132012616020937392441520905670418986858256600041124052045875462976501993081032903621670860181962814725794017928366468092247202987789246480070072775763970608069493411704567306850347107438632788149525081675104309876712721556780721037066442249527730469617252502040807204069235428651342035808124823793111390725879936643251342178518127143588339921520999920445894755720092384803417234874736808845484724297808496082182739466040123494368036619989772851902895584550109232076822797678039897521773862459747998321166097652297421588038376147968577865480532016345305022807326516357598824618646806612865749191843485325176351547498262905134984342496086629558290954910900339534783944212080035417827577838166676817723319632345427282814886039478617309691147586167131316374089423072228939670527723419055170004182535498864582304601892037220561290938709778717878731275358300859125644647210637486684622610041933548074002452591116253663661143534752087960257631131897508180898936045173211885731917221751381429954054176980643708249927234179996794494309298448652928102585313937945677925324320361985689008633897736571901197574705393973537234339310857690378231040393290468229476684806044367639118491029584505564365204754344984171575073695454346296705457641862727817754699266778798435259931450016162908283748149996936157811649916686030380962221363928414940302340924423349001955739552532397088289472142454176472693364161439270427144784028544904490833737479187640623785031899892110706130107257944885284435243952225867056395036439338583950231269594521193463031371631947416934838257362676697448312006364252322954166048949129411955857914634331564580140663997956146859202924701443658667568859443714793786424442523535286830079346220976992232285818047255958814148438825467856356714713170506679012185353508953380191262742341910084360138178927545282663412990943397501852138954901128862762162773412301886069386177204731329520883990409751777492744962751184300876395895278573239664451631187518734346527785147068895640927465716833424199051921837401535067189024830369955301776857771890162908513276982823562356398300406447157771779600776780874531806729967607262889383111317580485934460306918947264657438299735608822493114962791758248805744173668954672455132460262491259972022063082874517737602531399293218715362219233468868641720987578538101553314335750540001769007105923937652386916728776350482728692263501578745575147018005420658443268970374384389192173196511934031489389890394702576822239717618066342145582692049525785417456937139205205144123745099872772268386312660761035303849867026206985490067865125207745306681238611190681784675855908382507436040925710683841201855845870023248392583293692334072389039550954507367418017819532787861323555948776244981252216789478901946012208660287891711207574578048100859905227290327843723388197212080446223028576090273330712795429666670959793356994421439970736224371219686626999088669483525210225460546021673803849442053335916294767452278658910763223986907403547938094741713449592234295960167903291352795402468187747606745346558108674082470763829582786365464134961819142306042927418791303031858288603361638391755018482994910359136912265014005945518557690487181190998370486888303351310909249719121939264542147953003221043548252565334938749026311493903096260000621610138091933456010712322566517444197646993200732219175330353795870040699324683326168270963076587900208934831321407295089048065433263241600528721443232770259697230562029228790447719769049620331561191716249817586750392032612245026170773388035815254154106779128105747712886763688728442342986416543051401131293197823465077840260248286218581778718744780992870208753464495072028336505567758405020770850211892526281875103061943621947716287522666779499119931989708225669928652711608859014056672395906218266227164692005073761922135930683404887553172126454906574516925720952779611979790671273727609266045119784649555011583213606863886721832021183085859353123435210955136373407130937988004669561351146883668252978912755496802545758966305814632303996514401891177378926752970291244735692258915917622769380098472897427187055862341341503037920591961960999099953937150199067960534260718930374401652881072603837512323786904520182000808120418302843727133373062427150562661169533885377717668940087328203587410398413241521466483389151809989217901276553827125605790026063375454106462776761634248132982111823154616873308199065236797125100495958949737962115365315814735766331994667159814455638096675755420603909651889198571985787571920939003413032425623950227333421274751420069463909774816184150053231372694701609268733596270536801577883101029978567518737224593119980991147626847689955090944652763550338825024046270720050942094395894435982558969811878446578224349338329032877595677608865516307892863629231887396283835984661305787931998147774564615201879547382493201446548918042993820494196339458495035456177389858180603550160560274715909748744924262037383314137589151712881023600701772479660677516428980199554553086563299367108717721036991559976573850552427782080559881296863035531527436526286490441318275485936682964854558101159517283832003982412776457513088951441669267796486754031329445592061654703940364322894916374551094267798487405535247002509214109020771779294193873149977041780353557788489502551852887449425485815019702260189743805802363476629626786459407164391888475920074865482007383699425833647778030044239858407272003208495840673763776908974773536307204198117539506396551584698200193764021004807711438744260258298838249484095260460848918077330908012880342761458107414251284234751177203122857120449886152261891761888415228152812740034487313298624237491995751300523007563255467846432351804404323457533233449592352895903343893284857088466668718078222591604971373921048867755715554379736972816575141811018452946053845157593554868213883367026569363444724870629363163550247311378629705657671533406538141647951380118545872890922470236762125364740486875140907197933115978767861851010461473781803082045593073730338601436464299040229618695889186631956889085270235300811874888538304143284270665163494314176137131228664368599103402662251498452066564020670596115054115475403381418099737061950327026591800822736218822867806843893654619273258617016798124088739751463292449606374588782978067315314940371717002501595432046197686963702350953645459324393536173793744522336425525212479631454071931004121437804289688533066467132432984782981925953010033708679936203567444021188147428847217909890891921570752315030616393760011892141020758652068827588732803003195184238449787622943101298409736577288660695237350242828411069493387307323320717129870071597463468399104328967442853162665009066235001016312331062638593029539042216234868485817349532343365165272933737004856798085019512849581835372053126315626756610084354856119159240520836984791435701006845645146411837440855342369421878678663972613036451694461168402985167650994530058249826776822925113248052542607691046918955242483914097605382001621374740126311819796579173598565864217776260036598417851690816174074435470964375543981380066724622544051677273352369194452640387298228475834236671084151402727495836281402818463655298295693278839580642044101865312791876670931977694341860076077617906238872517238108897592230385924783872149369076374415118811302793895775360926926638169909956325342036784555514738461755366659015306953191948462671868664121898001463372215203376322179503885745815541070763393226254980383224995250994595726126863325424139299840331712163171968299649369221370142475956335414940244356904871379984872608670370609837856154698938359544976413619364536669230106424205890481560925519449993754167590755850565827374561549986709045639354292921538022775324933337913091142608707310439228478538124414203593998730149097571003043869170616729461826389147622408713126512152633992832235754936816538903917949431656057521418630562157702018696220115579317551040283470544438067259704214406934745786677939050173044745435389211170431123553245672437233647559123653242569565878340624971885224674290384380732582717281786914354644479544724560699836051390647609387965630038575154355134361168703396317630471248333909328513387471868059214150022259397712192527150825430324479549298557795526734692636975758005999522439434377443924198521711963889177826645891112548999689022045815528939430275750342240991111593832153972654574371418463928494856490366120325370846740443195569753455204897335738248167435714174923013047160516821914476346050521024828938502194162123541648590897213934428912042416558491286664365657409715336777004874785328175976528894196289161198398661337868929082184471480414134429488388837781174164417308888050291937017460669166062617138665446776881003481976670163543867299789322687741650343606473260127316989932992194002983516868473118567362481906539052971780766857012937017431302258183970294742115801817291391958384405152308627994609158897718328644262994802836674042259495350707565587511608557844489414194619747745254965984808814913365469734403216243407818304499444192403017213228495985246146507154936870401635139067890167029461549588425837240481524460435967543516567883815396864478448882227836627608589608998082706690910711179083321683401195603085556282027764665113990695336907014409343854500459715681168146056104931189705199743065169212883689318730434169940407512437978491492070818305150872834927495859646659823069278692401277406878666883105849639961331598708088254503552786657336004215287539201189846358007706415036116877955376876224182835721602812271692690123928756643696557377001080150384707204571306605170291660154519265166190949963734614115047616623790611422711095442161269094909659302155616057831635798761548345051661938708076001136353403873587627559250515669550583099407218688755197875026313464310951059440289904165882650521304793739353403879955561995185002568982840702665979664239325154755628378457586498610657198324038962308648759906368897218380181932457607881854299729847652269091297654399175480977822672713389033247716708393484520775157947301345621409789674012157511808083720744586874154503069612590540804683503791758303100095424358031954088812313979301120459068172932824361145404452188783030762227539867808593614162277662575396705293219162503289190022455933292810171166487534126542287366652329615948472204470461831631516448534758855311240571196333591107610100460757022377998993138265347132616539244302383622534776802859717509951958911148315067248918469427011948557234022995421346139782121859841502018612725318918529810567633250747837859798358840728603643634027321595039862630907494431229545546518153207571827299604407589852219984707777031525721289885134263202995241912282120440338852437329759367715551162285909298444119292779735366725109989659681871851885072403548986686790998115283479370423316937443638247960725579647668799390553375169356705209682798779803977198998670976646451739194388383779739637190126060673374145302072682751845180009179695392036061651289375950274208273661882778464660741900611293544935397972803734822436031052182126514161744847100448558798364209404156110953377587902451280635533813436705617546193526030158894593013767342930482131777312408310981811183216759224450340422531748613859871999822406895774637996569163591721995181958909988130217277202585425083533749340786735587421533444322162604235566419477098295861250436684874030829830825101516808604272628603554608076464470803776456520860760200083274873131418618315180375564546310799605676485840268266155412662030761225350026976103758417381151483645595117740045812897307405807818544276425427709797642887216623291807877658342524605087578255800941264430283085649293678866380716297019319177679390509071812391126530051405819864484454283782983576954083554083227902097686343545089386995305486242935239190889160972612911209222135627574886928684264244586844631755992663973496995900606924487431344200148762476619582294321244073276980497147139104297176240419555548620462124418992998580192264568539938823218960637272914535953889913827428923906292950544232209014560718798937815499121945896412468050039172496720128523081880881972825652153672987923144406183295027260878666543198221580785919382145026410974105772384322679002713666354128387394663240135588964582400843031350493105078732383275926341011299489860129216591312543487323165319356717475747543499526016694542532749515786575209185990230238819369974755493398693332022252896031832651339955118570951611316805749317777136566647269438828443695002343300294691057755129812004906042890575496548550588288431193012676924951262713354843917652064154864218321385072826341978069505254556346016118295239308464113407747081361823413877784216231249285304934667930528004610460029594775711206055108134961361144829226753463465337877516171668950535648760703958278035637160381042356393471783637609596564617436820383483332029933471943081761209152277981283363431110661567607073711543740598883092352359929567949784531236085745949035458084881089926995705281670124607007263534937890912908006701843548596805820885792689798580188242154982128836451964992729747974936097682335313838543813393724245906199557113983125478221529418637448488323344864925302056870824531505030978941574448823046759560981543126465911169197283593010506853700532096002810379667162598151986735131531759441551160777334650503985948875606327917452968997043293743066917545552153144194076874383033098403852095764759597333734044554438220276069646742507555904592012275887575816361162520511071532017355600442502397629192490364640784758686328899239636023280886849483435049036026841995863827027084792010197231460365495704582971417674772623755809915146226832998558580724295944310102374367739644675099018365357319603115754585226658430101004708081993915434315913032312058536793200683771341673057050840461969289556954281137867702989970239144699925747779829665296709645749936628385223342976603512234068304913325897915605981681245102602010595820277221169742799774905339315089119131787471949120284663226197292772314175057740736804903059838696225964131837492398203458927121037310913262993634691525002962518444633360584033064548501523725236297858604958264652790054191318509007449796615879567760076922655561272510266487474408740628128027063850962676776445892852588250464023747382836705249676362002095723754996191926312060782459744232664983096230028680254054284697926950011015017077429676937340968615790337841137146734700555658583685390698667577512926729328514642870525713763012689034728358205429623857573969883015439074206452216748786838434241114183729484399676335099754504567439144778384361490303478810103109818897762722121934266931467211684750583989645033637848754924817440999478487881277188620076031733409678984973442024110974154998443181825916577723383342427354377618072455447146255571052285695322015453671214286611384619455536329906563090009063753911439464798026448859353654147352663736266295313239938241810332124148271372275498211588317556206286211882960104053816012690052274778546585446121680950063977006643589979841516605382229491148474416774479429248906107806430874679688335839115509537117572100420589197319176960874742509174264699006195927378368101002890781306341779805071789674893974883490886132180358863644290994881847689871901555588152866256871484405839405689334848434729278132306671228472512483788566789488535165053566707299793910863342106523340183484892121707298869783752159656528904659250241490350085281245348306855694237849521373163231691026103647464746770989321709606603538801574547528429589052908727366524408619324541625328912785848017216649199244942982276566602309436435769227296695064271846140346913138861701754677104752818714297297219846640793140638353770354391135728953451397799124046412937421197724357024015736291968967248833975302515313775869665146016061051159937591306859483743747655757352325622667666800000137288026239565763656621153412649965846019577170117999993472175418642245695887664173155489926740005849301614851134603735726626923831353000679090006526182322422203485730764492689721928392880606396969216789359319025018636797578640106720717709147981164012822957564183295272514677960180703286163400670571182857255000301561501067958074026505544117187420289845335982421900522383534663158716340589049310683657767412059214822265000804353137260077262613939732416129654397129989427227739767007878735424801888119203963402652086003463486377912800020269299278758631949190326656842533796305649892060521762982172125643489708921729331848320894396926501925506192347526165563138167485863595508348820898732665750833751612548656692284620459977630289855192492907393355747498749404424353894828682357673086835363379684929259428470395682856325760716173505450618702425558052881102657067240344770120379722265681924483637580594291805852523255851286410148132057415579341015781683259544883309461958187507770613410497680399199930652737878869144433093591058275008475918158535486772343624665021878236093034282947374907378590959423434588925897480435681942094818049408183813767982279788661417319837525823230556544251436949599388550817705547204094569677566347075021920949906042242986240173750235324191366501949338653037474371521920670238182584942046117512802559819777567520034406257562951721094874335827579097181373510388749728298989533170442178239263591242325080685934625549728593198559223610648800914131250483256391450005112673158353386678319142703851732916378900503095681375997255618881571903175819789187511034179632752795090800067999624343247280847253917789248047378765909395898351973216927182443882694494578268411797578322057269967251967940918039438969796363682448747069428667115646285365362652091483740612502263859673260145443197604096215849909692899687429858919246814690314181877868121011197308326369261488421644935662659023737245201198996196753017726783818671475513659340194264010627531696011364274382219269885699948859752616302810707072216770909413195727554877629799855375115577702123928496007247504812422828323069341135923416280587378786427882076526650165869812951331116096299032986812707671035924819036901978197188183975095091645629602743775014518623691525596198990532028410686560267248159014971975696264262993151028769737642651083958646859800060781071402848404474631898936021019256350857642960593500973037937662071149916145069152534232351243146552675472085877616848482133423349137042447715911622990202967097852439195312825199273178912072657893763027802648542813805592933753463308905549277903344147645213375875259371257544333965924964985081462843550947832268633590874806323373525598869469132821129486850479640298692840186024575285355725316249667305449585240874142419343790462476265740963282187034222091425882907806310889190197772090830764180493110499682831064453656072829042377863040324424509501957945631847474258538762416678124902121099513782432017960251787407042622804831339647762634234407363607951734679859639376147215203293325552309500146204918961259594475662671605292907222143188279532879377923685850989132344519201465016719997516619494818242997228562671886556802916024559415695231602077718380537127910979488175500381641806279201974764525373620633668243249878687787681184133898761807928124070344393925891322298512874119600156381115078406290222939910781314663426823669265893637308788110545347235635885448174506233992659516154030098943202752222493434160317361152245012263094751852586715032251011247402465556429411486668740563943278414187145411000011725993688641091130498224971185469171650036058807132698218278907761636957745023156545900813867228924816525732014125821493765973168687581629499069230923468879595871323715290017541993312366254896668935228278346631571385885479632930954686439103382849570618271010294190595547763704227420620297504326257660022507294230369221681842940365611944355118506348252408465514580333418271254345383373212120043684172175706418797024719086758233949273210988822274180396246336664316539356780925850950677751150870592412444570266022211795124700771761004339933945856196271997598526504389144730398823007447261861635384006001149973950331600079674102179911016232083235006338686143839705311883024123726753318113088466466356036113560726918418472370763103588456036634353329506535659349344748650658996448770211270472696651685324639971425893120781336385704031490954282727532773786462622178109773797807557862253854384051604166102295543537766638918039741423220516158592573970955964688908828377079164613412105637814941528051018490834857645932434382299603502569832136807613484514183675545089478351591619969462119142304500271485369793271617340928708234455404032742899475077531664633315207707149402895823242914125944813665525361837609715074331946027544927693596188938169468995441634527558940120251155994228302602282461027355516470565968884297952320769863504593844484730425267250239609524149790115175055107381091374399728176884452174520632195215745563858615326262100949703250351748776566771497181333446058955322540859719395256031547713028555449722850567386322656312367242168662617762723324688492379515494658402993704755325646464736423619355376900217990456420077022470347072351832567826638389408974150858498493801943677011829202868046331262388946692428025464522651654815632432458343287946547274684618167305051734588840240135259064982574259299704472312543692676514587030349153228654751339419795304569176336353131118560217595802432953207577904852411610016547790187358398478709892757699499851488599584566892195356524666562384001930029774940582991854318972548459861794232470838663125242611978121632369440864572387399166467102344133138979222801947712880243396932563260371540554123798911893264463426536270285765621135813458636143688086388925297533218544378960210012360941597359630809846879248667462225261124537747275010778861942536818485543781187218195891235466478523841031684076785268284254241593952890439462907305461081237958138147041039181565528582323390315325725203746036337937365754187588755229178117093716592443311638791168138739289332807112289807278967148200916158407526146911203004226870587024669286936934543072331057542988025274537107169625911142116757622718313212008154107425916803295969736913044943481583612408065242171162710284788061182321660225204284508527288464812362712951746205780339458890909592796706907382011723333282703272087809424575672591869887183644588982061161152239026507006466772853899517606326599105704907468411399376651620448225802463141818092815674496645346199225850717647120594422206210399181457154778433283745942473401974743716884435079207297000087526677787967993434163923443841748713301498328229992882668950765284575301395394610525243632177124196231782036490704342040608452847700422844242616678462078695844669061754423430839013562839712441810488966310246789507429511117136529397331931242776029997374257300166496093926495659883240397903564156522351618120924774360501456805578799158683802668657088551808329130098220715780339944428519164913937530548193214916520341837506270920789701726111899566389410378774822022237575445741404021013520169201161400241474822822143170123984224607190400616343424912930996416498386741370509312148931334047683261033736339120675203247932978698713439698080467196812287289176474136969571867546741774386723273811193916570866671700667844439785578787611603109135538275685535687128071498661464329044055458410991637904261927182057276804675928411803763838237412249746530454009884649695639698096212755544979173324944738311364114184195969632624663371382312927993646331944295160000104603492941774907589712283251577699781178013330433069891673894418568811722438698916541660079051648947187230877556421572296999529854557101154712231114198085956696367579506783094582249388017833846804299364487282206788241049689347296046392573383374313205339465622404986719892693699854262779738808668915465450656512841438698930772794409969325863265043913891478366514094772848215588620044450236343016135025037818993529321728259280439729439447710374436100476386894438291691630328199659932642746608603456223610414336751450208214155928964856228893998586053245702607485914367099668489401680304083610930563709954718410694542032291906703676941503394056846070467136286624279198795048361118470542931374103683467233941193062548424112523632864356063640193996592708689243831938586839500079828292273223693721223818206394294807976992846943393762175789197773098832846737659591664676821171664196824608450743046026386951914693137193280314433770342770749810254049497140452555599854491749688392783648038129635180702778832048819940426782513829012558893810645523170039328800948664017153843104837810361820847942046343365667289193913681662361089206093297357597053493572737868234033899134036058132596096127256109448421385452476673538362024576760892359318363870232448990239667551573281031215480956632123695065850533028413509015916442665898219784355189233273590509159194864288363283109735136227602049637934347704098277935602219705534998882802288367139246692073300706439349349724212301103148409424663170265918140466809723243093271182412540865073730083949237846434912331498712154433481876536375471857247100139955333274593888373543795429100741422210107194580669995676366196849934496950744679124710090988800409438342225411394895249530693602496424152348689690011056670444226775538133916184946279178621331586762300373101399601324008564976505031486998649268376255823273453102046167974590291959407674769614380160521690266587134481771950257882976099452116489788862328154680359489363123804885629337791966529279697857212090705400034151349684345940465448825309741602422392752168249057443219350604047069763722045355228485747250129110058678428116657092480708694215019755068465560263076758975106115282357824081496484333058724063649513682104141383640731214993645744143074128676641089880038132019061911956048644915120773887793966431660412829073358672128674992717609696516669022169457222645918521306454680215738080763266564136111439257521042260939982488722199215134390536420538482817740607300792595537189604130686793288287816005304650015483411150134513862056704173445838271484551017735389925393478240116172734699557998861135227316571815802734053031218725130807380542004715582011159052629769008589103245470960114849939864429742331959884154944077872286814031818931243980116803966053727844977212423646782158045783735782425584678590518423535675593728277077357150375202190454698459526567337167158844236276108384455208947894382464410950888148638330986089923133096920670970428906652766325395713945282404425443583928113817263815632306178792990416617228957058283360795470906227417413300127731273067949730343555019585797127260150560844203232164052890518096038879939221673068293420590913150938584657577541976658922879554909721684715205417643254575377930505826144759703872723814574800530710594398741404082452997853646292304392618975151401771993044742708134459626376453988651408450235268959068146268848755545065161436734259478886014211496633539511944687384353977913502693778710372420043101532911713539877379127292264475099952664796718903888041270113322498620287565882508635521683490598772640030779591667173881681388295021748624011683678795487564264752803126784501814198173331084366325808172066505730642559022233485621596380514654092330817861172950584268111226316290158492563236107641816978944145252048490720992305401230260803632790537601950094989193407457884789482979423919574049332413942055370052148744529035383867017237991126571176799183854599057530430408622638251219945237193896857064188529768871805501921753724173618763919548098786629528430135843782333413142017810397996298816820429008609687394152977910227737935271067397423185288170601618169050853327237589510249016981078446502806922026531703327569287163470240682969464263323154444591570151184611619318163909306877370162948120183475413779728715249806453037502654561316389843122284021233934275779001416815602858225416334190415808805151854473267279993351218599084507711954163395169681533443428528592226158933287698813956216706900669545852562238371954252923871459945663871068640444803434789572671363281652302702072252098944157030396134793926073445381108568549288656917149415678567216500998215203581184441526080169082132649893020192812009452772561923664501433372610369330906026062316804969062185484455369008117968400299345315763574786994833715449467653097393135242852243084392599416599485613149152553390521040642484364147450421061845871975539382927203177610789915092899066043642650811215948364333326608426913653759741351511124055475149401872087948071220483685779929727298972241614539021057547031556105197046614732542456114695121849938937351262082627964857788265771147885958477978398439307683780068329748518364970604416919439354291082110981811865357723340350947721107896605010204347836286744122379982546417041613147381329952901265412819354007330977001707448537790464200352287559202990494878293374565740231037479904509237244545402606547236742770890922025485027946273756820341999124275143041254052939735855280129672348971145810899219035564165761373009184254145518336956023992746844872577336875621174745680214170943179767852006545765581699748281216303976104854042322346955575412833172039081510133491831391160586219337235486437066203935364135164879790037822120079867512808562559999429630504496448891791040719143632704478532747121916957524015632338686776143284139047038406003390734058811644734992796822151349148177705895925340788348243412787151373803978814222370161814946292229798064227292606477599285554954131212722891555723717859978346580958045529972683002029902280002581050226468366060597992705827081029069175628341919704067378231951134571903459202024658950354668257558128227140094161441064274357358142151099572763128172602945869269885280237541733566986725318609897577213469511276007850030127659703790124820930179769663005341987451476590819851874977916340897834903248738105106698375766299468012538306201370475364467807533469739849548384106448667937235858056019679876724604410744973786540581406575428050850116970872665088220570220395608935630250461867428711010826899735989918802190527216749804194982117557938924671824318814442241910526841631380908124957562921174754915028722025561943871343533377301061678982170492900331087362187669187679101342465467416722383984411817460050433241922753345433427810892621281283862709393606579088166432555686179354919803759525895266788350815889648128250237517095644352569469925146636940456378500415174181237442497130187407547592292376020433694891875629301953511614610627573107361736353282391408251011185551792351051307509047902758095441711894687909517974251863086105923302928454437514290662518459965434891372809784963095191546332233684584360300540867394820133258847001963946355688030844876749485726724273682918484301153132374616354034232431646208133815656345650939622008480997667681686352136992822139494876613143262152974203707123493390048609740279244551539416291625518043264483399712254077024961946327035825722240512447425943488566943222625984042430267762841184845234299399157409038396522311644553348097211678894491164790386415436117303453664322424353327763773959435097904965838735835225371883358456312289517702944927432886539873741053365526929983928337541129313356837333668912540979726234770279199728343510941884986785762735172910041498552391906484074117064025943943380555894645628842597115889689042849379327618388930340308756147379016928771530263328775461470028160666357218596878373130792297092896937268142855428180861796715051922957561209632564983182204748568761836453476875969697931210363979012311272855068169003365532600577501660058764147093475585263386963186050332878609063434784798431605173210035342707456301005833807273160502140535451626018220983677070065334810461862954729918904749666380335430607277249174871257629262080017671586320292141542224219646698488517792515534558844905335647589145327720808195195122572056335225713539954914451263310242526733286397155971417330645632905666226526108667768184956481181233416013582241968766301236889830715107279828437077541049368108672868416128913168488421404473537241895724823579964766514822173526020110972297078324497513799724598446497662130469018273550396502628464511171835670283077423144120286440342109910100732843084181052960042818780475341783086783944501988525266808349764263641039652075159143411266356204435966038116804944233341151269786143918915813421440023245284374684004425051778646230529952574599452554611499268342131592050880030606557972116624717825479047106132126865944871291856322747872254010704199870459228372566192559480196038089717265870599754416034620437134251530954098622396830910913167491179550607745881099163974520436433882680274692196735017704362335839144807717204669538501046957782132864687607046724483909425482677557789458770767668763400930584198840669190259064109080354382095544736198008044272659754862221288990943791345011557470658663634433337157519695383245118401516377874872869618816254431219257369993053086556293961629283561669209498654445224650274521812351531989408446205258368183026680640279529665690683629353146747950968714603918180165456220541208683431721982165528090302683418670065805824823117020098405641217046665103915726289463863537310390683215543024400905655635024636901157126026473008763815382377753047256260989263639973137978693864791792186550943426190006305299851204059409265281615727773404845095677552138600910808101802849750093876687099188653731012441413160804930756585753821161561054021672117219143218190548954374366337472945384686737772338416576622734818814018972477053719657708077377225257891423711452864071484375234864952451178051120852966999694817678288340151017438776023505867197389036767681609303332052806787400704639396966958758926197551349218558901732863513066685354643764450031979051238184611363599077335043581265947623349373249463482790216525871753698475014601389522140643666220742613123145254426017514186033275833082242203093978459470766721774100975824891723563861028878973521788146021912133582277160483897177083552737070424700267759221137648132473311177906805793565641431811551559227859645887074251468691919877969952873902357767030447572918621611971829475252697607744086531597001549866961134903128087774070815250345048273823565143569513299075363808716334323379416879617021009659579871144965832293741067329076673991879473885439141900666471666965266859510345117505115769316531276333095397423145580952033296194815195290683013329754374021522002788252643447831780952529236188596178106366063509982580205405896296495786583818630801660122405831862999584840673034589588867432405248648594833353498897790391601109899685914870546440832040106885263245151941904069986894309766952467069097103181168947717399085625558648796627400288541023559892316109119429285748889292515790580001392857837836486051980455060984537168438689046845937319762962525767049538716827192563829219037771346366222719207989282315503340583309940486308749237305738874813234760450680141865441023572811001032712297668681748170299163855650906116351842923815826477346246475170042672087185564120685513107202592035956325071732078672227584914167858280588511591614383772739923337821910660194284079986210112056346789413517996694088189669412452767737226649373253344193138228697922832858052999080166070789444750016995803524915617919707245632782667568730623659114028685924303401526015912983664327198568496787896668449935005117697086182670587642688407109333927431172762153967144329067922139733294200383209638419076161928726537443064729697794274085284039535156891720473777435871140049724986111418839750312310887546791473502355406686635329976120995016800683357293815133020411255615179609532219910275730676219833024196767427516921536473452703505915784009587829871532543446471918890217679514839921386806541272611912214440191373453404664193823559905754649686835730369934460836621598383045299318928996657188038794808224273538867023080341980576345586083192493206936260234475330455057042123726038247768777022278942052443107744885103105635235924849558864806680650536107264382899908911140574929057638716784019881477794129279294787186607031675643978907139400923908449298523920431761481661858053590838129555673033998669253136242956347086491974237246264228589769581183480083731854751697428864725822872125635038569203368254387127036064355588607193191821026454869218514046622743438259695396165627011656593274706646419033181030038523091671215820180063075512292396392311009969099888728005701418934409182376720962403517971743062090543139531658056121786539604833705718991904972453636031352972267752658389459502330428604012542741661937421778431799755139073593095620899693306635058292725281188071416831217275445825436687925795972781338947196199341085889901624867598842463508719676912892375366944270085352701936805504091773508960312026654204378610781906286339704862412595061114201488739320738894368892649122756428984626215622508920889153850597277170923181075167584519158672369203201829533691818002992320183440285042757212090350972143834934757354553176633662170676674122025846185772206288519108888982770994130721839657795799794543016184883677881058175890819956296668748686878345493551505633868897048412118342358419181018252330383341117556412950034951326766839819315980178895747412757058970398200790393174080035080114787084145442165972110077491825713760865657351209431917177765355872041749187681032962174452782450293038477727406017057337405492110065977573872463021540714649705620680775120341166187659444253698875379191204212904150743687989987118226990996630834393772929646282405485671613418156812637827047355671244713768354367837492734111692948820888098831789398724480161353513020377867051475527836812209354111023451321965069891461197418928986888009801548346561522999471660025908255294195517223413439612724086163652112137640418468434542987046210837482003165321852907587849863790375044875833100791908377435292206225946083949780726044386216110087278486046991964267624318568338568001596527590851298993343614935304864102907703859657230505759847926551824813970707445816895195957444319631546499107631122459321201149763829943829178215354744109913817087948571439358721641760827214311466257875434171054381212117995784393020934756522639504427464860423392482350778287063516196925729867145004016770410122378130087471552241851073613542183736326496353797118975254222163818373989055894076140325295087964736823127516386079360849804648800235430645784033621357731765829069566227779984618769720568140119309455735571409323565876371555331054352091620055305989201330401893478614800202320371913739758097734784029022297543426155830823980451767519250176440710407434752689295217088685530466892946014358007528630513633010437521221684510682446690885025955873056233385441531840905570338240176802863780294423267851803011279025550360467421262879176477880274370891682402889199195834563070836806854041897375683409231347302996248828334898062360589180134384633816671145382596638116716527337943240234230919575430313576382005512756858324594043791335513558337405265286176068420009249915249943679363353576296538053581952779250917927203715613911507874058200869806802516234280391046979444260154613759681438402164202208643556808511273688453304841207172354457133971919939581044080864859933173331607228880593653487201389562583577210344662409293852183802410615910588166694836895744458362862424303186870327079065699291888876688286851057461078232021280530708522389221569833361849583106595605171792354773009539888946336448276182929255802954461658456415359050322812066808680777704182717540651025989137333219791636217457703529659866538911696906588303394066028024635266970404810772124575135891359172399549954159861619728222065330090130713689976897595924666966090481532581339527118739677482706346824018643454916044420824526389266464638599194447441439178744903552876360564677091849689388806828873545685680165084510424412407897600518109767448158238835304592813673388808274367363505176328672225395791279237483362626551403997060963591623701167442401869429915626649815970394031402692514156231908384608983604089797931787489976548131882945715773449572440463559803691793639240691966341688307385725795218186082675547228747199177234412712405908424974410373184008134016794105756703552213578263010176789769070104707277456561303012277773703014083257914378175738834662485381106317288232350109302208725396427046347806778347905366880555762106552597714122259215610858297280579702234942393146404987579867848706259013768457064556972197900043137379133545393360572823042682756166415864291189764998089831530564989267546228091298897465416294104238305522646914481313305469234929637247310288896381881285149578177034915409770893754591173393671952631549289626191968128957779566975623784671859187178539236403584295694481154593471355142223365099390298931873281439561023791568496853248550698199400250685372735189736407703518397102728864569993599215568066189783078961801657662620801040299319517373128757681981041484115137308473884346123107796908486254069581504117633898726180032118606179152597185407108450444248356309283895352100265966938333224759587920086384836779299108659984089475785135071075275647006184759246887703108675700142102361001239842416873347762036808535353064491008099184678540716713497720702058453229833963942258696539967286501531396661916717115036740831136217752054947048648764011217450810272593937766435633495275001498290091954754761535092249880708240821914273632508340138168982031286435282666235074204262614413606097315293278835308742175597468166197838283058403096963808429382117172151029548980150367482423606681080719653009424695121637443465221742202177854536877842419483278580623948854273461879859322883872868606695263745552728717336468861629675435372533498727433530000865481167626842112226683217689246761371317365291982176936205954349013070996976100538301321734479828847726871826737659363376356883554875763219450134345957406763558273570779439854795119166088550317442825712641925878104372103197768111475532890125008592376113888847763030614567929036838393395967675628928806503344838667575052585703168119047473717495359617921393034049219409266548110217558319015327450532134441133078356332941784811280529214536099195488220407555356499508243494266325544581048403295373108388026566710709206669930730770630110549873388457218242468129216548807113044832808876117534746025848379822048377310901265902979857419024160498547337558969789926406833997058660692697243737083436359052371317001671356561489416935754424316387865856128124680586845681243313865313827465816719032467331694182157982849182055521897146101131361374084507046597589156904395741498989567207905903491543747575215040811851379564023083441707288453392884270244124551628096140411019358344101239003695657780753520864197793975527344268837858805976683109740385190980074104220265850361419550914377408840398885185611843571593781655027780622943890422082213398038789793182994929222107374182762236186648913547849133307079694592277556144908092126196449925728857471830595732322645553925379034078181248076699647428021793239918493647870293374934671491367740233147958594317336591010678486270251652500117478307334387290088693883436310599897069550702316968287941955372917734459268812884100402129387233747013153260766973862899150552097431074983471907736265281139659994157879188156154881908329127417613089497835974734082252375465172538235033577103897590941285694840394275643562699781447913276564573845763978539874418737389682762606503382607153738629347642093446360177542819584179607555300179015737199702036106555480143486357825620697251115789678393940773490619788998021009773389141118954931928408515163148746403243226950681893108804124756342343774753036828561882321364126693215405384847348970154972180093749443852246797111627307958170055974510035989240360139963972018409232715033151479017239602666633365563773009631037475599638403820996459253941253704322602884736193884208147522178079239515561403243015396905449624462386026092864389375912264862638093837736590165774819062417081553843286423494761146160217496473042958159351684648461637463232880239074292563661300426864567733334749932805499065571831772062357979123925606296327988336529127747107364041799472892247815360673843365298928404248665062063990585171391767926298975222484290799116657774101650173419052967144267071894009805493003589806269911798016322664300001554919906865056517528772538677753996937741908261967990869406916736913220863918287942561429454086543167632761636358992456614085342606812986327132108383899906214810293158992177107986958254884423334717424730083350316438205509682507144258066584536121332056515398755553079780375240090282312469586712937315368657422806152518245824943056408576409084175949348750169080918080726363916806788321606952269443912959362839184625093517409986972872903885537431470387170116160150323277126420817766975407305650250027851949255156106616107602031299804244072839292558068197512633423974430388068920573018363890309006035234452780688562346589820338177411919860886565513297062517157097529102089162333713313975766734093674439486225899182681021147407232765894917415827540157986640779599032130883504545655861029232954101713428988487427049409530405370330997812594445546575208492983901604064601722496834663038671798828838811422326471330583225758985269445054237289326251980992490874734932082133581767346369799438385334923890198697047837368543502734799241605569871562903439452591508913928722855995095174662533642574902302301789882451627887756546224585322864480037520610167404246264679422770554557258579170135351994255342659532656804433807300354972191195569876621810354508709421854101353021031153610932084835088949577679392987631841270516266056545863512961036176993274002602916604152019624586457451324352964675899986318516321171620433347778263494778175497121254901632355745940412876895346447066362168561350246676216973127204083697264604462950282810768001366171515231887419195610840727172342924828632482911575173772263622752318177517082052050346994841910303097980892318245779970305348994909040485895021654949983500624631411110514077488972069720824756709684689130368791797962502117302191428520419811878130195997916669706595878510785406275104581435020027713894371509737577632228245508821740128262203213674151456859247070050394979551304392217885662623986075254283545339031891778725817439072711443130072089170644694051294252767461055162981770342303610227825457803357266344313780637966968513515063326291063218379226088165050054670027365859910891121036696261608625089203077062891865415537866497804674318260376132270214740370899724093836603398753905041486179945804835104736688179396641696707200936436454620164030348700773019172207255975330743183000854188853804677108441882786729614661136534442090837368377830891709177967242190805174824685872768414230085689372362909122447426285437662909250191856630278854733464175322305996867729712426845539963503330558704584239491041235674493333959178011989462435497722067825330901821256657092953458421421290770965708445995547755030812431452760489428447133217176923344807878737004160668420409088579755467906110551703874325998748343920114883983706434302485337632645515235117679038112658411520547150479448146082065102433272697194166617390147819521527958799901931019603814320971814194753753238628707168327345818873679911733074541554737737570924144504481313935922396497764230378838973586031883862283466329499507847556159539415641230538100242370657492241658195559081785504488614581712324610252780344311540533932951998273331896873993000477270378039721280601289184709180961057516303219057243901498278451536408553451896934528694281044910286572431106963748487320118539792774960650729180848216966238744693051288350888563110905694620968701787318031804132945060268755409473126105061294074859648350564519530493550703827357375379976078238539617991851101777976331475788080043201274849073501821771882478935643728460664896700480856776751609428005199050222112779985397566205369161295067668181654802668431054294149326906339125082573654183671118390948300616529867449198233409827873574707565075889722030340026122333285844045182076743640572975211954325463067267923947704377104713934992069228621179876535269582342148474342139290417582067648886280308814999976569945920788994802404525071418823070679890072019822004008572263855545108044848552772864412552190379228534191447958578919054968338344964445433878126571751784055677857525823847865817105544654707452228068931436160986276089034855255914061283953857054532309732484066249429889436632817605877717129337837335482599788245551575641516383772528555062060489744970807766528546911216117576556876021979848836066955793627123879158246152398151081452147343511924071915031915345196576088605300522833905677618917805826113892521199594194951699062203976116197260212569784936203537999658833980946876002224535296532211276884545047106773171110370041313579095648575251946726265978404091635915537814957023906026017057155675865704332810371759724975647341953972299148887946703585338433343523482589860713502099756097530208742160690134338607546137863160577464076947399189674150076787121314465462697896403456549483535623113366825472808552690522999947696151329259079759237656949088483349193822681833882981483809177713610502707542083509896252353515063462092490335306428145689532944051459578055803772006955178507010254008809453354491156159471719469060234000096063683568949859866190854703498660918722910439305823367103066602159869315029202453478425956723915726259723599461862157934506236548102751275081400319522682459670385284903398199488685854247469019603197108170481223441413371946090298950057636766695063477279989760542988239351670324714716466203669688973592314064205906068557691478444036761587353168989233800050939836592101993730393288911050623645090246231471433511903889073851953845474007616375096114455588164549463842674827648799183703982948644614063665161924240763653143815557732429456607801271924950934712659086159704140953002238904022343089517091452405565015269277709988611507410752023428802910997265827844119173284953876905676430765136638027393383759231288446095034785393441654356699808364658441486876542217080535805229729494433457765498473464249147071841401573203182716895571942478292702851444186020180247530174204203106501066557331521520143015717374855215731902241208599567964213562993903680908633811604054010745322858085830707362298205862261199527164611483701870364219771071197284325460187333772066319742583990674185927040667579512004984138199965443139480640013421535379203654159733712363679475063930509954628579459867032343591687327899600356852667502816457205669292170995588083297390760511048976696285821423001669581934872755410176279624946260419432487608019398967846312141308966899906365208428244142581111048758278553867317767773438789798897381308798767021672324886114355004328887621777488907278384916166505440063308594630807485155693259049115553566799644340385835588882793146323326794489551492895997405684936188138723378080949407809491176873612438559575899331067582902832520560784104849413374023926147057770345259954676733427174039212688398908695455131814673261974659221820282494538797150727458484069977761305760457897195116422917827731091229322655485684773196469628408218807815282489180707541488223328351503930290131815811180278092523576766293573993761689014672053857611054068774437422810861207339628454265269270980968223910630448664183151247545801305486026522597029462729430272826249927030254252112376685279142223282691531197916101136706293170030228300337330264424480985189234289137005782900339583688251326113080974304933990172036894337392951137256646177603769840028679567514194675527809316193600742236535417838993804892390311605213696176300457845270394636875820007203352525811980766661588513853475945484283050045850285529394247235872794293064062644919094410879864018698470155071915769866688798688442740597018379826044817242363602780941646128845064345610364762692080827781050650892027890955179689952468951089146154839862756600144343573214536653621798620697672701945538656817954590257275095028179157411014367401072426942146532369215683018486292031199355386032568673585789575397491196883399680591256370100615570530695083587124563021040701142067012768643379908097064463275798031990319381534435435513488035200709007451328267899439829320011775652822529852160288900517472797979320405473951448629940432995578663336110203767158417967786937653602030883882247921346873470735162885650593340210835891249061244566056027596857497418116262740402605298076454490489376856071525016556189577690310457310171587781536977554006979361375696855444548453634303859707368434041284966231757416045903624346135174738381054937823848401665995641371683670377087185311717146651708102983663507201766911506928778359414811133619682340339132548605538808134258639172108490695200578914073051966629305825405203335923544709888674063367813675934852468154433171082451519626421284492878874162945309214014394985602101359044339730246155282447493113893301410583202706655232938274849209263676414936921210824762179918661589532951795387446558722475119463189346387850889049720712472982222278250177489878752770083917480592834354163160276530297123008132059126202188260987253541304858502199869491754463347754455409067121901083996674985634049025221804200675340410843061201404098591386166599805421711713000849332820257742175352320816593817339798833223983903266926609253784223985827796077624026114509318096822153050145538624877524652987772156635800677034980084708089032327145464522680671894294767908151438349473795276467336421627398500299203161660491675461482944481276762440930694298387323245376283292161230599040156901139870908552980892821517404078005143952353167392121975112499513883267292313360494990385007302193367768335799844754070586916044514659922562573032202373298521133800845366298089229714678787297579318994428399656027900951941359617333326100017853817314214966650314193503818726459539680011638548982732434924715897779241001759654987275770503159162150295384323408911891729770176968932989443733262790416735926835245651826719203276804279742357772290429567470631049074637512332752628872414075151029299078488824274965179567732816957432795546254392701028748604858957071184741626370928221952076137691682916396430983474136929232513785778366396759628884270349172083977314867732445579272174337140489651919083983987902821717492894421271019140923268571088046516458509707027832104712807705885505512197227829245132685840733250683976191886832864354331279121188601067654584261648993595981640621783726059323094221122783495917025185435762505825380390447385480595628028328247768192898384342493013843011374397479806678746246126826871605365913451204232452923345907980184587379778984195071660233640895915782652157005341361617399810979392685584017384756740059143696573459151323960131249025595474947053293323613845013326294194300739077069470779650946791083309680383118345329139771355974901639028105203529919148916317569958329058067331575808012793931152864054701690989528373027987249363753651135212894874447283291084410706902133689249795009340854762296797185090122079044232307513362272974844129028001635074583506101627860587549927892405794349561832636551584206187815153940685259939228983773715321557337628457893124322037582284203048429988741351516099530493881203797459364532151716939288072091117660284844062434321151053253695307014479683777377177825589248156673676792271424968975382110832601665387400538100075093775858095306016676832465857893680560728807241108613265988621976130130899103579972749447661781860834587066767049317091779158594668661056905774592934675685757683913540217157403807187108955278334139436302139780875445473309878317594716335284019162608802685698533084713100716872848115099100381953616824180772227665099227379895601702428165032743314133306967088497579554283158471537874918570140705461325908220120846601028750743371616559185376960425597232261893888358499848423075638543762079355630956827534077751795217858574236613382156123742788700449036768435707684427641540694367623777146811393925384799334815928390164039058245038454799523802011288332497934525265671175306716519152556000172116222648660919028267044318676645520683477684816624453319829419783206334309165707488833830141776197460191288178704887781900214020811238857213188607378939273269669073547881331417962736948792768566561364161695207237162144350690771130315104474124970465467178785328077616893954449795989452315791323708441639646557026797174046385553013838482527324051274908450608828246923336081016803587338693230057857280941002701401679354649777494078472924825470498909125217645566103225388632475363359371944331475388033525238465160780438667170628866133203888252321309265724836298170489493256017023068195350070783988860954171283385307020577301704333516600302391706310179410811299603330425321327892892724675600973901639080752963124061613612653366075422575113241682366305084548944840288169190958756536577412210557640608057297023274884896750049980170517371279666465806377171912550250973204796597157056395948502872599389855146477305398302003221997189533449586215393170552216975517153441732469500984434746542739149642242139551873520412610243577761371562827791652634985653671395686260801297872218922754089966061577849898266302061684607936519804756845634063989896565063812533160663980375041252816209841710645022043435181590867875526042147844693386596347165598017539797768652561829802657278195372628858796113480208594872199821857428400878867424576322878355069954051779213206480164851563647546314554634604398850862044923906021175841890859846893726033725995074451655016443721011201515224859552500720605181118424939317149049034968255186626670544740554941006751505174751237230193738281122922170588950466433452703748283508123107075987274497796541264550471978668523616421793974441893262924571397577080166651781051717524206462501839592897087757908341162228957525085307434300461733693987724341301277231043396659360517426505338531101337146953640539871046598618877802646821805503032527858020411514733555299348588192624483662264205519039713600997700258890633296854901558920337262471280923731363049168369239861577981032003416010238434194737020021321361664942775231661651980979583318057594343627906254718416913945059149590067323872959045082110175896976247265389686166089812245490070830929832053220339786716651842413121153688227830377484294368251896528871264419248085147933033610528765712902088128617564565969738522431234803952525471442161581840259601341388673455341187378528812896639666958057255403003710245341799869518390390335600673409527216406626783465810932680445826114431517135650392427769614413551693971657845934273851249446328472576550576573299010104249968790580834720094537727495464854736039150733144255478388146739659437395967330746605416789955527605061738700362519095673339201353524218541125216964122483163703961186298206033875107236122914872755733552643354664321302146407452623982152334517698979030391493949024095602656886558987444431661801860749654555382000726945122126926337866266762801115476147861159528878787808171713176302520467168454964414781431173307865171383265099731882415820983798937622143310441765162363751524985176166551162326625252453339458903963405291135833136388494082082805471490931156779390273929553783537055381991622955431039252903503375927104195241739002685087145577736911676482902605469771277339703151999899373247983850822017676325297257092294017535104726838242766768649943541003155336532969167344880879695811584487718799232350217044394217279731106929863239693990150428744955157214406403528928745758707544254484753065385046364677905956710927064257803435409693339668182658093478322741697050306762232121084771418772604094059706255551090164490615184789408876280695645660077658436184178713321826767038776203819347068543144983197399488385318158349585958650302055550942882701203576724907840438887687435045475566928204589892698617438379757499300301043804653628475933608124357953238236102292296348993156414845687416374779676351255678686840495213922192799669565859333805119821910007356656757937932242902441032609630802564099578513116126838437243534102509651550284062291989323983605577549372681234698653811172336012702322125742353899777010427159609782191617554408124065866600420421671595197945692589166265711020087757513797220378536139169722796519308027278617601428233341703625939028055710228456020072169927045935960793613713161251923470216248056778905978778553377381383964421489365185827383937389355871185647872989573814884933628749042745948511165181459382206944416619861590162570465480535111777127977446213582112349490995350926647638055417720698147796302213742236641139001199144549279575698857685384021637679220045349371504808221940952129120634742201815858656445253129444627760652193861656095264211596844433154448522592265244175563730364356785925278711996390899542020152338436723377656724705674098299732725646152625111256172352633577951284307660978064556043828398377323782652954166896191168638924154833746835357585876700944079510414124421055734984767854848031219180817567678048055536821309346116724220825019398745492050797675019279562315508563907835365637234773744708638674276715469122979244400558361262489390534075255684621858337431740815371911536633843811601416264310302909228863123453441135126381431298533332513264451322850532674158062283458983398794645183906249210095671670051537186454242602670059604394670113077545195199088149323033299193850084595369037621134056984555969941004135956950066848815654648528920165203721998451379998363135630057795525199762609703110983713826519085457994026855371458087515567145303609945148706845743177514565205670763641418833458667441911864685564217441421835897472583547919297537809751199217572453279461316772811592001511018151569594011784602712952462217377119526602448210592791819246562366252222568804224325435299606162211680115013388766442344588140337654099538939973882850777202527748484915990076659468174095302747093688859848560231735498251074816110052386681367787749714120062417654288104613447582786967485897168503017405934690019033955969889635368449616161265458216318757990230954303129014074930965300709358399140281651059821717032158766378952467911489662649958953208795713998650863793432994684084107750440582977412431033818578201404036315717159766056295944499240324665942514718791057853399524180779532233737986573059978148880904097935742729602011915879835370993354681277593700430153628219549594057493259437601348118288158023593286526577439922359385214747085483322004905561149096678008259857388266753891375254690079068605777126238880646908915557320968880726793225865948294918915307806876084820867915364105127391488428930237408297302017596466539589359492868514193051844395611437444428624354351615644794743734844292101999734601333912128464776418596087376072353101879256927816854150577845143940036008488380770211815151838909174730904520525984637263154347084376101686629286177576964741804144004809236995787203734602367185952307666399646466991530995148657233085653364999336707576388814713287979252407480339657072168245597632072736297884848153550163308869995634015962714590823142028428192116034989221375572389266394585391598478594605172791982678312170032708447086070911543973063819859507809300379901129674928168113729246272510819145354184367310371997780944929457741050743497029417619643195053401827700692648043338791543671200528432006440830952013501413703150374089235938123707745278674247136268446947430132191546911812189655694131747105997663728090118368798561215255937778998012253701715581316449182183282210796622454492538939042114441092547119477324993723250345732451059892471287022256400903723430026482209956588085697346198398628712651109946329963042116010236530681225355327551334275438868899317094946927579006497528617647142117959498402235877290013522785871444103934999640963288248999346148844692799919507812445003284599917194412581279911904962957974048191140880904082685676659131494665334980921189779901112540412913807098493838834621931861188006313734353986901788680045801999633157129931377279430756885528337539711065282465234007188928418555736580477747383336783654056710099037816685606087837510694099988509997989223479246254349419085441123227475063393374723832417819273202177288259336881371798168792759977576952329684230273395038854272053674546275684406372976812851260885879492785336762551648506982946535166488012203677389680698494450274529257935345700144023477467925097121353921811575054952942913503576339570822786524202689301243990069875868504059128392513202850029102683932449570066687255602075476339055737376513054631580967296756066139271957441530319873630386896268504045484031394468933692667106350637017260552427106992395723325872817525385370862241510030573752423520399514561745434663617918473608518170362236061842992617701033452785212119095348056111127304357692499413590123246357621037027559726269009377010566891224857042847786964331841802378367976163543634369515860488321754143527046212407946480465663168159064552380616170299690142141786360430581261570157036423163584666648123265380985230610325334374359296096944264194725063185334203398592383085276955000994497961408187434593277963970477863963389959296130984109331023872169440072258168688768821443887814300946215238468157800755582731785594418861217901868642684702932737785787116364191907609752192902320471151909625857566908537512469967209702146050043175572253740637803689950723162377756352409226297048968939266301616466723584097221766359436535792273033956824799820070676627529509908162949618267145893128487592679480373768348427968595463956629674501538457148286753554496913461894177585593457481403783930833581867767016680513542673384779367124051956525113920698618505656270880683670504773354310283894754908216591525134360963234618805605690441959054635622636801260857587211662962335242109176245309594715842501597999448234331374672772542644511197477949933022958009386537721221870080552265536969443655444461755130818090907145557391150201109613620929711595461367600258330273526028275302479664718898690056643767589406193779460120622781131038500581017638133803134080886990977387624309216758418352490123087301433421287843800957200126288520551349226090083417478579319669370509540349082619880521397225459595675669347657318859050891005499406552663169449072587049749212997243102378907268545761567843982407485951451678649063797146911912348192191750923859590156310219306791773194718500022396989317644772494498274051510268089847182191719657819137672125077694294464813786743324623025375479559768415194982607630671633081765866900213712039828380295213346346274094737654350841173341720087999057192626990011471680702773495362459779200689457076615242332874763351884471427972908960749459302019762369890401146970997261845958737336512716034466130410425876036458678721383039284270010773882718115988925971801758031909376965037173701429051639654689936026327991340336987991793866520792307652254999088289274516804926383908763760424519335927881376993326736000302661817130359168687200429884545714570639087845801227292696792518576958300672982550506064376103363349196089618224017477907055472055722736545607887980531270089624236951289720893016761776310304635632833026645702158371832339444191880651855278356428485509967136122040195325562296595076687474314197712866894356207542690533062730958516537408187050869891402347745630616680717074672540032034081832505833675714494418177546461271663951114941323306427339882906313678634074716214833638579599905510842679702974651279276250693444247000135055824895787845773052488334026104805782869207673675634935879157281384899299963711291351710406453983670371636182279673568884648682478768256495978767211194230613542804515623003028721375351776245843138517542842855887430172667887385847512303371416991078764939709828572645677717699394898455603582721684754119632947912472094011623317401877150880999154544992206304369972967651000150902664030753655010005609055555046131397147137742848112659612329259774229338048306002730379424368091148327562308416417944565614963174488269141057918038303981976126545800878512884839814396481540458752987085289108020538527070433904319336662955192092354053195587373752460646909706192128434977671549983410113517744798421776149989688060213742500886163885812207406002068405868214384612643852581416446681413120843282402255727725666587281192948946598409416040238445841852641043532711410765733236280224214246573084401360331992083020761265336712763318483419410260505343604364520533879033446531000635406352672605051956055617865887885283335911293663558723512596289087910045014486148401811697894145515819685510524223248844491207944773863349141510330164733801465064468071507285877710666061445025925626434137224822010577041930372911699816842616127936841295223788715232090541710787389078555280192833752113357848344148527918016701555353964009437113200555342803726381205287768113511332687996641675176746828858343884779929855867662916586917169339214078550946363185083320058614589043400207897783104558131278927555396760900380261136001833629259939986730309810614623814961220415354270357686668128050237800367531268379833811324496728315917238300307431992813433997170343449047686347585351928089982258349273951923163483213574319835651924341571883354481426334791983987224813098858691983511099068789667095570508824116282458030964551066479580493861697739354094649021257507185136975504126862753216374861259710616130257528709719499771113936072719265517741566622284936434527113548220520768493548912810757381854498821210990816233681066614082963894939299299408319623549770359038510991440766209351824561808706100992101672523612467325649909786082189125213910177723750953616032459979253694317796756409582842017172446700676111945376120743448648945801373344449191342032435373323356921548363431428407324273630089109347700335982376909269459092704782024291592916978811999660463199196061281342493655321071093270697521420230627716610349417847998904414621542172833787135312786183690085851692522434706916901866380651063318288493114660785786188056622209521038061224535877689962974688358486398695613353922486856430361554464883466724783752913518213873172888504283749840263383583056219296130980753840663059682784526498336354729219280635073415140117670758406023424589510079233508763127527812284927483532654291827246662052726677900063494022005568068533207238901174931418615432374329477374193582957357545893404339155572492542213146928415404787263115312379591356080146341673347799580232484019492371571115400146646679257021536727825826844330888207500487992420981788843540574686648655390672004532851432505956826835572976368864952627402714258925772780733654451623491192110870001678107684635251496042439924410692189285821640977783181108979249728101797536203934329636451581953273199177478422916652471608290241931101733614989452939106052434599805587142307588464876120040137425100879944387761017330107525618918148650993731384458025707824002791693429190917696559727599785934764496140264782791696821580355739678067756130777284739449738102243475791288669210358376029193434300116421773437882704111412934435121594943955705792926536899031750185076181424413985460254933612524087888776173970872666238338248102920017256931545648836190759322160694306053966856692801070863847611486902712319317056174043967304762827401473530086865112380140834379971649796344530719473183210438627752358058504670435717732874907554334057790691726665197632406031437135842465078351378046246376275643271090373435386503128336900794803381684529612304257089348469772206876898396527007701927820289512803005676218567330605831089600254822196386423668148814601775922636812443753561696318890479074664895825425605827132400377291066954674371412230446681843808161158878365970782378818542966867352784512811843931937828569348299627142552435547154309453702214763390414635137897907041526199678577385208485969227979897771956860972532467729489062261268423077747785127813508802454389327504527694890475748038486880902295504067980416131246970726136481612399655455537182414756559338716900648232123673444440354542334607860907238983423975192078943713357874840853932592628466502536829728709739861109421933802327353977589651498393339714523107292920811581086001569822951680633748140419172790271303682717703205609720988313335077434254801679385941392273580069143070743338275719811655995790119562091878125044678139838253820414916053485072214413990181582976059620014516447256006874280035668267133993061466560608084505920330002753454263482495096270791860514382904531954140222766149332536230543646283087504040212222997985277019914888212687925420633843341801794498649566783940671781413125268758468711897616272197653165283368663086885736491751662105984759604922768916534387918707138382371644784179176714291864947280008654942602531920440028641557403681172936664020271783038730957556883932551446496068501439583684529980076626969388300987095812071069715540216166841609180724455864334193843264127728860899788064453528450278508173470053356416260546818531523285410737827210808403106144310531628007528235803917163180483451262316924174663834076061028343092272993411524069721534337610946261637978834097966117442457085850143209035288364265581001109042202065760769049898785381762914130757376203240254632886382831198007747233708157341702697840201594540625606828997958889121630161403649591234183730841807312199809550995177467190412928355845620601422921716073682991830403979169801200830686033741591319087258747068107499548217215439768063759672042661732460884060274509183994965800390071440557038589913419087297577389038974839285887582458768339303965237790396704038351531086165047038498703879519621370884925485906086666222315692707056217441884027756788477991692906058371058813374567628763704952729862928635081673647750664640423713353995069107733352479511242209146338692558941765642400032228571410475315214421499444684610062612590705717011654422932090799702293911429321352414601635031749653750301958094343845961134454204968843039869870000277251250767823310189066084969886486837994620403972828392831967931448927576046052585379124549258706256176861377025027337582209504261994744797387218382136137895524200169029529079288996090219976091585176069090231722179390115880610085125856452786157594242867139246849173035900214461564285646465657599247051424041605998056250218541426062078023347183597169667176414949615587014920449421011331578622854882844380138603401343727247388334933945663782084371406312214986215308681482655442496048194731420123108211779106361834982670063533526512155852200422833306826818683211533236469260287232858675108533914206502972319165797969934378068693149482220621383932686881908463563990162095649651392126996677795926128133862771091639710020348047786988929361467784261061267840272046168443944506167851899474358350860828706412274325264763072119898973899135020309385349348850644907852731162425509966027877082190197142901219957430496222781565203686696137735514186723261635791741115100500305704491667673471048445814785974163608789292488465724894904747987177219047457059743742395623175338254934610831336305810594768209970843808517861266837895715829753628046199616570821050725040963523743361009376908365787792680744978200696640566773050906183482829360382937270060491382845914355240977942402511383572721371353748362031221664990493993226202409452340312951887546613153816653495700362819080889407358720906053142288958450685691753849008116110559847500840389666876250575291171247166909327597916444967004070859251834801330736959122121622346863543437090849982080907971513103722353925021794511286032337381991456612711386522920532142003353920523456351197051377848960353785485901583594718337828638115078563432293694750778576649087483658588155248828222396548107105476759175307551165108091141340386617337428866342171670066285384216592835314808439755176055517663710958619982558117521693685858386012642117034738813315548399715924307196361873463296146314037332378521132020355403979744821717006999307772386918416551949776594752108279990387112673744037236410224370108255047602403583076814293361935336922887154353787988062989875967054013989789722581602015447944268010658760077291016246003262818421476780145134494658272014973608381104541231045803432257344230133508928388489066224107998847136901316732530183226994669699515473978951503029576878840543744361204669119505422650932829707078673293720502725736456286070905518500370651329109651411682060444012242522732578652256680673615707023732784716660287444044915825579582237095031552938456907197680242772402412883201523600978811942475566761040056260243120208222989919013054136303466176641735465428457274362877346484694068279344029380124081075532055494841062844163409877647546282460514181945287891623916969065238270722613676744159921260960318504163722838439758783515093493071790646212903056356707092685369316484374122842845080964108578880803553278218775302909519472459769728322749841485913645554754192751716450301218470495894297848044696874321218570611917507960400215988048596706497657000476772371406578376100998049160589535735315512995530041432736250476776898373505190119201963483865388049224778443710912465841706640945889298025135295690352354262618336078461389586432264637923139046333363680448103897555308138808956846154484347576918645949284736499024973352109707584533627217376090141212410455365304411743713771459310204787374376308894278453927854232556834044725678632653095212297771313988027965745690068440841458203097323808013025988196754526220463505949607404351930635746860610537786976697414706278587561645672322207842978924762178370272497117029191621979635719636025376884453427245284460832208388201858060514221330013563998161016144266213918735311488146356025943502783600038223205385371726385108345183530078256280980270158919163113486629418023297939753535465238560013344531193423585966480814475143855539791009756800241601000228233805514440414543772285492917667120173833242711116040007838486343940483954274466046796497763109051393664759815253123115684011266439647518777802905912980979437050853909941734823138361243416728635166208452432121057489603491345934356758759166982502673923174876700650123955443179511768070896509713330814668207110394008877415264432743719504627927937912674825809052927306345274014366223054267884088106062999503438430555921039845797504433038312131195890899828421172551867230571518151195884871154145179773669372966017138433998112379269619335491734799045970506641228019137911024271625840067902488524323336326046895226434301701885682241073940074106680044853764789076742676960786577855734155514879240524161065813856969828790699732934016131971456458918851795766090897582629111241069533828181244117660804127503976083587782998202624787782273915071218910716649497556726460357112928375654352528748089558555951553333664632585796046579644121929291258888295043129408192756173889528388827543940372680877610735108075037819648243699169384738004664583911620879020245470053922361006224412244971725270551354670694046438078634155406803150966614947284569388097857041595980063057816059663969913995302782391684976998742652330352955747216770909919776724466925503183492341729934555907589938924514052886117557568038342834839179314357577404815579383930368296504013198279603409560195711408039701171694498289636076664007408454569605296595958248597239317346210936490935677365936377762676374676529196519294968794123173149979008976474764093419873332234017711953416565277260361435487207849001109301964880246106105271105941038956951585785548421423912342710922241557209082866367645101290133487178197038949750857445951065196138392235524112037794198644003863589036683075395332284171374749811353431787558042124457535587199023439786733364642734240484799194156683756797330459858850638889056083975536636445152709358434040507104744343239341007494194274329339477550609692511143648095192479165921245011992272453306682676987809973693433785616000744163767747693351190579466463539217599647187583242593023259420596499681313793331409947174987567324749135277066389778509326834524537521228795325970349805126954217408350088581923135207678694028195434926993657948731265739582396063403215933571888635732369064094554507638911897590411549836302893009143749952457264173885987960346093187955875702095917610191321306974001320826433047869442815907899478155778678444975632139820875338907850580119542898849101763471746749636562586092244279254487546310293495579720151628120123929503985506587027222230467048970310287955208426698724289510474289464859616421191173458226860002601612588297503592416898517052842071549420291173533902913422385605206990323834185087801994915788706199603208042764044739899933750810236380557297867074439296212402883244284611270275757914113258099295576722504994275227824861243760798616838531844880893895744801232726767727603482615175922280662452950980804233997680877349898046058703638461818115439990890589854497347162072531349612140351693272412765666953390160679947178766715658622784221706381658061584896249622792654584438188644386877792649355875067795610526526482600700684129055531167215425172876283593221752389802743216753851966942115401696194430777773376782662627165411095122106981339349156349035020389258403635886964422670966491477288264877019961431588177274016755253592707701659902080735299604044739427946801871890677030597897909648874355532010914982880809225817576623019138292099645115787900248689889213922087438934477407863453904013227912072664158437583557921753372140472668971112350494097004433253403637343997638748495409230471189501931478400934208929997110646874660058886417345982807887371403987332977788055159712219997954598723973527415447328210812584198010426447765720129755378188130321732413006340404167183701684703611501035876825462455853010561372723339389259832683432624592154770263284219306893740460438304109158322379289661588768707306175913325782520202722471971923739524987663702595538923649053978894026987707496177082515853265663419267467125205088511002185409025339140665331406692191601374182633177638556167687262111159238382664040981129751511556230171874715504690216013210734294806764000286799778554991856649455176569292831392754246108648553807742223739549556827492697222726817911210072591302819050332926152026085325399739501411283315401575080083255296030304535514313269387835123888778540011489840105929418037227837753549637019730081642505902696069237319142965988078664922480376212405600081797051931196581567592040096641350849319398050243698089536070231465971624630250754978243612145899348929265108400769506713454686162595256508119734095751514181425676457641562137515623154931335503099067495457722674043413297211234927959999833556565810925714196431787132842092636046269105896603522329254401198327405019942225374633559937387873240535254441346281994140836779391325937082809812679093946538056500295293395663568793012485626328535703013642309135992424397163456146937207276723048229213070170317254176989039065413727696331138492459891951301504225832488467950363119595480841852791169578214603697355529691373070005271170744994446935048507913960911879928875755670395345394318510137536025653724207833612291868902114089074783863406664629776281261873691073578809877342239892785540734964585061607522148464407942233003116942983480314246190674380477928037397321680208241713055393589971720579191510281405051994052847931754659493341581760571376385336394050641609109651301565683381102224303460250476130869660896292599589756721091246234217869660813820228894130529872613679514774513119317234136023789066786230217820322793390007759022754600295237781068859912962851623507223706339805280833304068362692506706646855421584027729850551502031962850332909824653347835787014924011116806634345996474469907394296126972927093632358674610569428204612638317310050763810660571787204046362520595408447021107982647762088521596573396081513102224495937263479977774360057777812361234718907386315648703197640058982825713055224353505541521168390383489265133312456220323885195884967033690083377857015148095479722180664063038862868963420900616597854365372304657066047014249464861418793935980327245886069285147957802502001085436541705358935127929183504015389067595529351670573155782026813514561286015556875655350389652831508659492820265249209681350422880458941651153077319766912005147613014589034188273545100032695718589097145341990990928224139828257937265523367831518972317172787675297060441193266273867329258041952918907194462305380856147443884095590689273584237052814414260780744253027972476366261113764866058688668785066885936920309008686579010059168701825457757338782277856053647396836875654155302165709466005353328011921172028909573541237395294950196663967934045111864659741175616361529254157155270263805867176630103708301988296005229087821280709276238845833651564010168859696713584412199088695808111207664018198857313147739967999171391067553564021128496122916475978955409543374409094018275270286734172470161835734559502778077621087672600758718718630210151414214088753883583530054665877036779977389626180082138529319559432242033249082061902858268456514539649534101225737930389544107936498568756276856864710976754026003599267664009124490292165372652756592315813126019075395355808553839661047960432068972992103325507809677040206757004285978653844055995850482128066396150069218028073815966235782935440795147910612548309584197755881373204664353032195113100438012978103149581948830108209237756374367205389536469035796996993842813287814485504917289620620845593458225073959464970359379318732606840005338579496537986935545133131276220802278718616389645819683885045632304124820453207897817708039696221214685161303699522070505142896703869486070458264777940331969626007494781791333483331169426486955633498529413139259745589885249799737219554677032665141515779580681124179808128487492793999719391653795418906559069193861653266824702096080491202467459639411157716909103634993409017434962939374262387256154665977853580027074302692742317422449068143938093887888043154223581605465349216152042711908617664503210734083815378214684741741743208198127978637588435568288596192165798850528096381545855964570584817603251736942856715782027524156932769820707246593048066502666295387924197762502497540041850284369946836597193991492480199569369633325613267542287411567060639072676415326544254435757541124912145353292320194652610282315867804603278945016136537083364252121043072893155247875815049594613974992561762768234756306005357888099205095205436770260365857907127314636157685874586774959086116146182489631379865641467071120321332375431993443769265129168727344535755564845419839754803961887250166313670078046624193302233889534563416790460967659613021400374408441424953302237132379708212657694527293673219795326922473634753329237652219884960303215449008326790687756991034116084952865625303508244735847363855341497405056506872245801147918443110525440568183564269845470460838684623719559549202201144525122122800705609547786641069744534203061361278809653100294861523403240909091482241827938405584549206004271776890454274158198334559532235824143022377389241453732466220715590759375306322187624751050336548881271718846225609936372027288511306387880513001734138725182222201614151944091183025653012198821356403779622332113087572209211089123486337698077951643478383801371403290027609566334757812398489697699430900192603531804372336584053308874559552378093179111191018899959254406644654775341205072155710640839570035934515128303438238298009611208681047274517059679953358825882524816945940634651353477564727887207584077044060431180940940165923098229387289540441026412605986048447544849955157576723085311763917172060676836535618774404485875528428424134944250275109008834655978778373543237404281801954275714568470419888916807012875908151204444430463383218266315558021376185041597179009305687699068632512907314456482903944406669436370971442670095194881045599242278935928191058252183795834905582233287070483214077989233552195263049864383139902939513959136034912653544034183089860575951745498281762440891945214247412851174131461273428747253253804986964371687753391286231481496453562486645568436854140791353479597873344306924330640899637105489975855103368188503611600811381554290134789085670909448132247488328643709156854147794428631859913312888607594716928796866345134241658519185021404412804378585475025958102252253922087346571317696062332941508201656989514640487103368099219864486116997688217516228545831856270922327079962343806824484977937067084808376280265040511148699699778637773103280866765390544559032016496766676377615900496690562750754352739363593794504596726526720185471876159413124637763279741070227084272230611715327055804126135218448449698331132147018212586232808767833846518366536594108222228629960639715065660837106265865787608629305217165092600679527715747500659563924802319154194421406987819410860289270944501266677265475889599376465849545870703889509075647759792607275952386607775569510173345417115632230550756083511319774817732956432085272408382570885981609569544287573260113556970503152238447206028055106341653631456983133344813050501124420991561210718422538401199290805989487641946314696267229837431154463515072571317589626245343246957510739311263723110581337283494488762535414712180710776284788174819556781782387997959259642190019399441422055667241773029765574373863661791972499929612574738501483158202825976797469690182992316726595461377070517083840164211991031735318773537934934292462534174709996947444882958158254525874320686301654196216573949568084920678932530166843802442600103874610832329759331585450313466281769636943005365595623347711785108543089626126588392651255944303980469769493624628904541643521843535309822626908236045633595978031859576829517705091952090075709322706468952696146581305634813534981725697665277261000097648749562175694255446158809832491007052233420956805463053683757003980968366052462112767508063373935021278511646150559194840783668387898290714411425885379669199671112766094300994001442576290405098057342516165332687253344063318987129323929165537907139517887031998380749062629587202950451959392166287333039140866829532722365211455480524886648700790597109134831531238443659610752320590123807664859642881982411509422328546781692066054798943262081103935206443594121788105672649613631042054565943010067898091437963623586533641531985127963034538940625457230632487889568213522601272314054644021972996095382601294240027840575546419666401579136616766812537303383203442528026747633994330101776679660525972406800150354587765368230312523149246934024648024254165251664044109169359945225766849767461471094927339517085390803061509618827288714013200954358674951266256317949054231835705301985546984308521321072939212161976263094776761057940823298843524719786481949322471839905276456734268953302243576805196686881289941586102920642689595115824113093181999583102665663755124156470971643657831739580894886511723267857239335169221904819785958927806222747556471374647245250445885413548275344617732328848413109047170133353162653400350343643965963413629118199130094466877776165896284490769554805319446902759211622475254812413431692885892106761917090828354043511677010163422445538559044873196005486588229686226176470645550324670850904739034333895930550122480236686989559528531611408760306146757007794602330965916730760129465758127045099077006049098534123246075959621884952569790890922198994404366057349608942645583993992281785531406096082213073088291308269393503586531905666720505405767271023394258534292741763595089451203621667809526264619494739409311666901722709122885789014047230754999294311616375140289589765929534821397185696136162571581479409859752135134776225216053386915729749412460527437386642883170314452588951531873925882573606094025471688698319779353312437221807394718260776102756791403076845436164434951407213635996590915266162702270779668767245047368133510211216410537101188644768903935673325591086845193291596200956138238333075171810999113572894594571482943579738338401070282980624775851183812397885602861637655726508929212093606931904595903205579363466013415837986290391799602906748075543347963855562179111235476915690866230685721885999644802984681684190158262106888707115931813175838291404501475078770601588698897256835599317891434525121393397875580838861499823241085788773954252148023092861804748773182527185043233639910441542195197193488970873478650261045728883527116372627440580205075029745710328216011491816545181884852290683766861766922015831372345070018077918742122228447546490400409228273551239088580117520485840875897515170504989018188825066254846075043234533949481295916340836320273137289134001110732812272884308554893419693109917433535508725033162142697106590538661959275491107566612736970284187507278624306197285442028985555157537911834323437324944156078360123643089720350510153955178190406646392698171749521301316081032023121440522045354406939189748606198236784968377149082747785761575751418591464671966726820120787598711215312760924108135813899914009820527566730005388822945303887987751875379662982331322985710800140541434351612664035671908932193043983871342283892867954068049370382809792334195566492019849753928400225715560087326219851352296278789992743206609452101379850443607295424863519261029060752171462850392531875232860172282906663006858930186616232045712788361984377973980353502222332455822000472704942953500339154927674924219863739534675443911913267305685221240146913329930307346615738298421640118302853816838846869813248722376696050545142603334864796366991043613818008436625055232932159040923306418754890784238597324260510349348714651901233843627152906290677498166605727881481637232992797511025586483857594963696873432365099531597224844565257931063699448208372553732698495091828597688773172241983690512095750996255045158680534224967760184340084124255742257929421779561428692608161287827538853066102996599579977974787918539715216750990707791708796201721823456651126392827547944855045261886239326241657361189658700244776452308588360611648463797160512442215346725982088028146035303231294741391014595849868606483888753596202817189186958794624090663565431641952321455219736077485620737021574647961025659198177788895856792740999235295760350474833650942794820661589033838346359092344529589519029055762320287845200030571140356413513907456333376866986411828111487045664543052913561779497115991773211346137129752881257713086018493722872083466064588425623079315617097163407520132500058881678435086465613051953831967497091966943125146871462915800287107274624228383727568736494540188033228348039361623707077153689278806363534667104476832590237378186397697526479341733029010938553073674684897380787077114767612603618669807055008186159141281864512909354445907463798351301146845529941481718121011946426011246317149828193433816408589968423024327395061265082405237133351966832785406958529344602458507966720655684482957427548905854616549717116974545705497896477523586949058304768200005089643442019585543907633177481473404807902887673008588984242390772772670566249929118363331610710698979426346448354453851637895171236338138743449831419697030806758026347255962943487596136624077124831802433757901430146781122945892999263147258184114213472088442955131086224596182589350820194968101566219330742097505535004376265155269517722412686865030964515923178607281828828393377618844874327845814527918355249431228513727178996459495799361015582086303851310051532480212220147822793126269897795379373981631495246233115983285452928434440496045060126077770076003061095948176844291760806217050121258274462340242418928022531473415709090220071400415951275855754050355206788205149550171893307020382200567262575318628912786471495887275656139820533341811277360562061703538602968564251845845716050492624715388866434764642901824250713171719823734595395015753721402045363006583447150046915639167255157369948110161139471611236565673508440142168576505792400573216430333956943454217053092142931219762235012614474748593295815917942702784945163549757918436680662779786602555248491270943886488548265873266435348679822550304859676763683227294146053066955629221278337756460931758251087659600075752598431808198256795030686720856897308839095937099338728307705984412110528080441613277738634511823939280104554358329872104475829597381875259023440530798138352418421669944979337943262095178288469519743124857222338156620743601146048954011738214272389921318143897328717771641182462779518866512128745628058548174082313402939308655650074229259845296049134520189055431748973415052010946709833443098099854468172895551801860256675167497857676934801631411352373936254432789644450102375031017781101886907333473048613366878858022418349653147566155619038204229667032644846339661031773215960589776946321515405877282009952147791626290698893436691680227345739816071039688822793210135274436476384682135360708832535275312569363384581491856553673316953371067871176518044889071056104286363653048174486729590689865261354294479241408510035449436544408247238213368859219528788807016045855696747630763477642085495726666254926178277797110630054904711263062640614062177365518837754628747362300750186401681901452669660276349387554799851247998218849848314220045009185211269191316449452318539230458073416336846677523603970797126683181692891256440984092067762727462493101331627731937953255324897900581867773272574856040938053243806435585240853203101156001634840202641041916634157146611286616595920537474432415703987533091440622883935759882812059874696746569456852917791027606593006643171523243534806496788362117167461897976291277215046273616331802321358511428596096048372801860233092856679425631647158248498334728892054122635021489141854950057972571684940542896672447542709934699003788058594148838031917473669851063869765641634816262895681898192975255787823292254244385357725065409457685241001636122772215052714190676062671159890110624921084951566750860545137145349434309496535000586432496572502485317565890546331289177662508097263374390779853416309424766399309589923236105762907268722462632348664228874166916331499050665437177922229374164540845289647769960534801555902271852367458390167605242038784889541110755863536246717076494087667241834222940276890492647986764425274981963530598480402519793844124030482511886461963764035523115681761542686025206533585993244094500916604770851387107973179297115936839818611560946012819204547237825657670659988539190182711308997649336326428910772848888392285677593718906383138071331249334382926197428483574144699767763597945765976629080683451905942441441461215920748103107164694404474733825620105560747353137466727773772451547345782645253911787980694907238099874596367601102174103492296144314889655727911660763951773698804497316584924240755339549406813804838455389773577275165513361479794586121906024603879468026611491792210288967432405445018102092501069356245851803954058192844231179809266617110234136560879815262607786586133100488065059897974820854854308865496724236255017085743791084709853696446463751031727373526548664999502833273553783595097266331383375466270127601918144709623572578011246780274499649113762272960577071094786035996468412387891560584202952849047649670795695001638682944416054197276466240269527729555116726006582503374901818054185520324324214766586335508166644634115660930853978113189371415622009605180801163294730230971570041649695942166868357188871540287077548646152494534797719562829215541584612395265840155235490344991441647337462964413290454535056636776497769596650955997372166006612358426452475734196993443959527801831700034245551438156103537570152858725808752925805381217100076067874002220335597076306044132652531596703277603641938697720509378626589958071178782301788346902100339347654669913163787268815597276420291282150256341786789690559314138774069161267918307767069136979053039465227485800489129278080977268048504832534696888071381262262232868405711874347899900773859519998150140861534501821531890855614381287656309506938820410613378231373521671033512590771474703125378856539167499018353743076778740426977967205275710557793316603637107341864740735397851198201683038006741198127365987793835545071025801798922190638689616813860101964970278975665079196888672041753325997700296897822559931251953485150123073770254474995822718576315448671342662644069293915389525877198401968861084594389610215156840248483686593943445051711558473821407294081193426171940892911500269496229930977326174129610993463589638382732346246169950903019277635929627346892497753458553965952832970627221629240288590830179038127016407337959385928825021427688339675316962623690188897136253432565253753400843507643253609256725312353748138584979994627767860980695844106226773509100556891669641996111570306978590957639261199148091754317046657283281061856439739225273368345882534255629325392685489397371023317105834747413510921810353907827208504722490322759443852990395979051441755912258352227030730243428113393109552805964491572104005724285042011719305641658148589959980165885619706710611549743698484120802877451094706651657041338323888115974465203387489634166394540498267700145036073618321424029638825404190544104408129801065029508888221894663640665204295649437115936404384561894367474669567800244273392926257604019420689631390884847413373553570113960415349888297900112808624174975906617341174415006930127764803888867015838560916055796790179678281003964839531476136101605615475626458138542170621684828890498857694115174120552313632051364295447163289042189357117354509523130014646031269671183216807459168546245391738922577778677235329951563503498817796230596890317434592334828868001387342941932135284634524707148759443873617777255755017610424314633125124464626956987285398761903438684011991440046640948225026436288955903046825329601294295879797822282027659569031498755612936929793428643410947514660717818542682788265368081456534611854486118650671241937131349588381941068352684635753793435690440130771612685503295341837832111735353448433176482756024959600127576191396119609169188392429862557470759394741923335972551176975124750745971193114438553379273424773601816506512774269901022994961497675719549071937023380168997540678288903720102920616165499360853403681898705656179959915066549888682396137013488026159190804207891532873261400535151872517886480952350605610428485192046926552395282183961538552523111496870580136570769206532771170756089887691105741299356294159824550889032473256256618188680039758431883717973173881710830556272261451932557180587828420364812979558212106134104362734216942778991291494824804059087746366274184124576215440622758358431007878211563973098886948786880795032415199337362578540024103981422794728608270698909930659555420502398356164240995153517828569171389325781630110562746935065500263660857460742122127474270826674676078845791529833253446707650468381765066456107645424441586061607810942484090939317961005427444261235683376592341696938132213614653977626516141727864145786731260906014349938798727937810836105450096575499680472312459064623509232376183107500977669365772031436263764477211435851174945014663348993534297139864159670718492737236140389604706353415931573622740201560371677533932469823995439258516127966781994634123784988120103677019944030746899424844748469736480812977635239145075134182165967740713736128998148399535775022058918302576831638708267552589985933930444752715402240661475450067651070220361726854951861505310572670181781491611511371954830088725510949150893104539907278877363054755369427186705651780504098235627309884108649203847682414630730916953528865790277670549148136759479225565558988376016927220361488339233992067872340863944830737315137374380674766641561111483621847637365413839347648714160385863617869922231185690180612259764398403344909021899995251847878467263546071393344055634104135948487991808211687846819080652402588653561867680941109545268564906506996422334954687234259905991206778897215758889504826837406218198972019133807272861764312380563145107687705587818577691837059030934972484695969732297094494436689625664936723958592851981458767198824832632588028945290445479019111847908213289206823092125274903404425698765345328995740485463049823663245506919527477105642795491171160319931894345761965192057295200003913552062143503494333535390418390693736915155367155237543131013946413781050584271976508839567834080435587506336192886556902504053004102591074006787038969774985645497403182559074023705838010783663975771915923551883129696347077168279353478504527745701980639304542725923721008608456527913373028246569162496073203641926009902244177410089153557742294270258231358283821179889598760275254121130536789152035030897130519785750558015182980560721237026727998755115544892612765690485044934234713401803653348578987190390115741101255303511267493968257488370593275415637720300018787686518741965520787282555475927866719788765972017955424611401511098729491306327080733938099149044467530912304016497602932624751425574410018543941261804350730378579378641609695034890870730411541618711429468072085845761459397664386744754597208864646613190837615644657585549228112762969307605151341128984712196302824848772802242240642374603773756453783540136001360714189301038735491287455245305637786980323365690952856387245782313459546399004704134256072943593624402622323950164725387785714207294788835111198302405619251862578648936252749183564780697937047250432684835387502267123174316415729387180923682908973307851931839839369792058672554409497246145954907695731271701468742767264811238441353384146462319572364400827236553456000571551502740938464935042031518753965896450815279415468737696089431622482586342530290237835719191268660711405317022963319028927665006441050957370489782178517729127116045149568222958528161137773079981805033175784687038697422279185743620255441414871009982815108336950054941913688631158153165302570894760822025134700965473148281355124871094724954184067856503896939599113673380820412306530564213067162062359660945436272956070064042580297643483136496032645909093641839256322180189744484198748714618807794276949734151048529716265318830520374403393128129660744353949350098200871275175365372387808927869534535336186876861875710653152135674730269513188081738364262567117873791791515978302524403266847585194699850176823589512522034246268672076549966041939198164225528403417572141813307994774639308582612713718670086669972950474339044262226274483139376966632274927873901004437857835024988829769815697900459456902433193030583011519550598847875102735216879266420020908224104940074513532427720578418533372150122854377128984145503050531578309245989977559272703142017741946890466459406527129612041287592705104909479904847923555131663444124922240127993604910625245462268838382609212055434897109226367302816666992428623705157569657475517942037189529569812397911775382739261080381154966385624489544089986809744474202206479847493488367863370951509151415538226446436440573019036318951519482335724988703156039239214015697172671025798458694141973246792390769106894619348921621088040777647212750350521756261120774174938424403772254833786791643759711928831051449249336075456062556193928845079481971780497706715762308851458255101741843416892009442183451187906940959835033630197729358689300199665442609282251996213326410018033563909280938893307245030168478257433502236262058989782075124817520937930161948598822510864562659635525099621613606924953982437299332091421956432526586180312867125221031319125977231249293203234976000580808738024411384550479493401116285538727339524179056663703519176612352863154455081560110618662531123262196143982068081108770772707585883550272239884366619156136554968793092201360980973530659798215910426222737642517418152976621141940929370388099589367450570689040582740671175250641377600756207808070381179496944577681775804970695920440013185179139132564173164805351623823630224883173202258649017485481661812931341929218851257168515952629761397686283896655243978711520938588125899957655164485382770730629472748840043706680585515981431126250838635745613120950758904998241858020517777919265953972163199615700607620910216150030703783343350223789895757988874459191408689763350227904341329053015054310994554696541255525550631908199326428120833538144679802212720828089900126752362821378657827160685396573440604887967609686676060763404579114224191357243500374709398505555738423012347831761125515757630965048084631846531791209355593838302506920647746373285930115832104032346400661101096759864100211344314473159294638938453450293208528652951052471164541919280336301652042793523682646156588724817736015125887757130629270046794462553399254774688446999728208601439835727227861163753503640271834182598084348696032773696144925385660683568710268762771351027936328718042502470628493152525062023892602605635754842064499338094911684055302036908770462281550539544115755495471440336179281037989777024064496250895314518386889012378437528949089339307258092946456961472450592190347648325616024071875268187072078111994670463932112711709993661857706731415843271192774411279441695575467964143548019586207305299428314389703624933530726220143450432900463927002127204005509173942295467795540652343956800323882716628250420522636122381353514176234277217074896332288641481488635326621863557585594604408353079319546414210098930291102804883436469753900345288389171068081590088469107640371900980785309944386439681414736107270084475081006240949742739344285897107080113318751200819356246485864348904057495865093214489051458768561218574610367288493344361698094203863751279580965103029507314265149630048718634315033080059549946888146114108535348317627570636277041409290058138679679916601152703406539906745085973610225245254595172996217057139290169373970074051456661054830029618054374010873229892753240713502844991742622174953129596802735422387921247261912761125840852060045884018878390799667889628673572228399753141371202407109593719502930671989472106362543983101571431249839817145528605466360962438813404080874692742201063102010443565362667660182999947454840118125152742699001287580268543121342566293443586647066537902739345827931979552559216813260938958620932774549275636390076459921526725186694333959551837720191523080609421384662698584406636729647836490978494450370762731427410585527763980334894886392172787764067000241018368146053550834184075049704402108225112176037718828558396479262642213166776562347501835498236462252684127497644321782335119250732180820191761578822642032854501523194896114273033438187358325444850189299437718709349890083604360844178990573724095969030867416106935594144377584154307608338070915635176187801487512066118150225990614163277526255934766235036153959394876139324179581992914099213799859694971335177843528940796907971427676068440129178717269458615178918218471814084332251021564362147753424671299668900428771098697838310026130468988381291564125047790387316793158872857407919983958540597947642422616640175476470928943502529088727522923405619895573912237300467297337077373337644223646313333776175705044855314685021266870312730539973013524799956272251631413766219889613271573099429447425066599178506791949570953156632376462792342730156757762100160559527012057069471407287548288549289630480429325516754271923319038822023887907330024750933876415376584143374730909862916555355042854614174811798568219922453751768449769540022954785052238677976916436094557064662891302588406192506927634195626920936896007776634839526082826866467626914004197709435034322339591800327484794788844768539371239502256358245893918537123264141855316288530565167797585154742421542554375439285808707053524807814972522994119766764068110127889801037536456697725812061554383601485606983270065417664821403690217973066338262645713559258107655091048493145654405114613691141739705954200472512303300337798454322365512598316431765705972084490902005401448266173773292743614373731341148570976387806023630633446452968614998920252628115932370707617326607577654742941976785739958618693052770775529863051092666962330672539790944551174804373302786733176535999936286700942631183982570568078233246935067509527721664080137719552892908330910042088666484644556190017203108425421228852603431761392111669818810054825361032122429844886836719892420454070991858153275133466188313801032379730967997131872754693293633123721836185995154910860736226506775733224483582602973842980472843322109603989625079215707586712886147330367445272106924673695457223335812446189107569235236576898706304744264466451420409432386282804167540044814983624720747230017046042129224101657485953458884364387454733196599650540563340104090708201428563656272554144425010241959950838054303289052409136969368636234736686676961721725972411056155163469912334218679339055957954573003125882875900671135842971208146946878692387187424919977937022816646888837132798316932071394838017735399807394986760452287062607356971080288724442081227122407920676191177944450509637184871327119203857077406314398993056591329550797432502423535690156274876901202231876853729368349599212770229128030905737124473038238403539337622028733177307397650135427006700016484520651408483400182776689386097903784257489336047959819371815987665855843461604325095704131597788515477351853699044116904258921224986010640939376582193965471441930404327708412620106046012064494807053844956752143517159733489042494138149528035612936874587458572894848613991954682846660601507982364893820736191001868265520603698228232145737384333112822673182939474739822259799398501821714815012357915098828439705694231346579976370286831549327532253696784621172624278979708899832733230140036339631534820095511990302494396986276032891917390427719535971209134587186467835516309928492959395426469088258739180797598183470461583225422246696549099816001078262158545830937882962065050513975456663189680357321360791953564763794139302847523203258175106217095940208578729056275793940982082797947342199835512735220158219919962855284086032736695576238068073021492586456491652722895909768618855063259686910052246339455207284246904934673759688792429158274231801978926299036065631685008678465599030424785866416211592193476288508756859433103224695970850641964998225051012181666571455037882357793006257816652814904953604854761917832349676657152509939329708238339781115949948921717455689121212348645970770589369544754382727573848936972630025469927862784408218844829893114548806463090323854345738003454961879659169949170830127948085444879661608741023757845317177021711620078468473824276180147561401435313017875238429810635043940599652415388824150764394462182609978300818221619413360068600948236525415120160115124755291407249142830402469658191088517115667744119635474281366732463563340954812514300209929850542785091038465770787657204614245904000748840884714686579122759724451781618711445833176153243967391718952440639978645132458256425416491350861392758379068374373191419736956777662835951489135218262657330176196962077912993554101435139956649995349812302983846708647778485906260823479247456390773869208128764279943953366804814418866507372232059282906398682286668572888747412012165098785244664391295601768065999049666590124979780443701978555905728428860439068622879219744600261533347602157214207910902681079055481236210650369021795975050092213846674729796476498899758249928403911583134199588366018764685365834533494204771542800988417471207375000218055636545788428916825357010925198462914232782160318948647085600079261363917878111603687041943390097105800517551398869426089951981830645166985584024689460227139534292725204755996550773701556833077535971747615404086399900318963366711429393090506568687936106084808276676873392930856548744457195669058228602450819862032792442199296328318201942669911071587320205944116199326002324723932635139080488340268647738939653449934766329895302367853373319747274905760219884365225702239622954108720204464364481264130215422788172358229938641817620376397392641262546283487191452966691739738928762367823534403617138605198415198980200688949597450431940032287745530045108415422378778141004663492528657159631156873042630869723396823743539284074185200719246440288107719631021959533842088042189399481799723399317922292400172964521899489956462513737672886651400187951676445841166063980556451725594940168263327213285459190395956882187032926853177357090977682678650001142501963839106978910013364616392908082128169025277482425069303875384592553229179915492360135470239345049659019053637976539250927026105739240324010522474842405124318091789576497541871919677960435799770372759391720989175964931897859978661355351142211740845060542002567236092938012596926941414689550120180238961370046302401884700735603142473213971726803723515036860181397902904639580156279795154010089409719990162398126108098843970249368810793147510487931665408819178146499554056381823363117403803989244739764407427149850665613620381628177768152070639201619273262282846370564984100915270402126529387536395465868613265833004562312202840201844172983777226900898043431666410111154013638016608169760928376987087886716654902510940993900113532892787248147907200118146642407900114870048631639717127510555709471138746903559106240011285494259568603060977327966117131888657286112768217792621724380384304437759963426334146714266684746422828625951810868252348433542566316166486711292435999602555885629898111550441779854291438253000231848298416566789774600633211498606123632448342439895480974571965606540720657006914803613543573048676801335940417893462124876895093082247965302435340153924274467936736925781153011243394029061261258409541629580233841121176182394793174365399873201853456092667714183323760344883312986962023756913682029551019369448198814195027541041469570729541539385708231003466509767695707183485992291451543876417315553864592741183394010367545471244367484874169695686101538823395362877587199733138893437827760089447046417420843999332090493292779050425603026435142815054186689631664566479665153055667877267711298226505554870138743690508567729201867852456505646628768466409995902947288382999276814748902356952514615172402694068692719232457917226226396379830577603076286477261711039448877446443492045172193055326198386103589275412887658743363903544335435790213226096665482169684621649687634386255326707826538056107675071072259425322733345432269428775416678081991657833544087011867566419260519003216399009918739071212867748985607693920585929269613050197763494084961848056709520293852982741603207826102097169990268314955638587230105566100387929813764088849282934847473303577910918721257174268089674594290015969218895830633792315318638781959700464600397399800958958407814619890559672626767643823056245402638325823152639956579459734408731235476837156715057016136828421267291081971154938691266527404692688865185755905674900467960810145587070201388854027571959709999878104073614161072039657327232246481504418277126834524642062165325705496370829532969275166745732046428393759295099265790020264752420605508198362931495613457238603861117022032527144385181064879545318218799880935176545394518623951020210300864104023701862549819417682698564066896824603260965376229827981831817234877467486741211921319327380977185877991627598958516637164250709077971076307897328271409812400768446568416279654012078661942568560023822252576756897496373030831286477152203413004152382562842152761063205460674676744265466130595997967735985955105242950641080780981424363018491253712778790604389696016498418925473036865810313588589498838391310951220509223505629029827668907642705198306138906549577800953286938425127371984213327711888618685028342245946587614046791954489795624819201085603225561106243350012713587344416716671968187418594905074110423716009513904124267647236971015926694515400692632192788864978575267982913771979075024888721757187310684175690899668327670274517776803488340685718156071443746019258402960244803118676765628411974489447872349444389145728189881063314152457381460831567896589306027046708277416162903450618455263953411839135263098668776169298122135612058832403708092052402432484748087171744213875213732811800484318583337504685468095869600628136535050833955672816904823701703152769660461500367018409969971071882046992544590780863929550485371230184611746474351172906048958634635494115403828123303888965722339466967398650877720781656338126742357345726223515488508591417941292686363762101467720576748542843343558195392955794949875539855995177981627081248114038549370663437735061688902041580241550535528977784958453316375609247296691393860789778567882768462457528468907712903471983808332202368338618863034318069500977846593031521755077840842971987075999912490380163230620666541429730947147933872424318310777550651922799253204189099754041825518233568377053200114950724075295627370177579952320847843639875384267964776399170185310626237427459983348627514307224950112481356206307173576570428031874298548493736484828238791322503305401110695664751658586364229256675219962852014345619983736969862988960376240872909302769730467234130255753175352580221638183156221180738384496725811188269908398356461066987893813659788240124666699750922405917904138305123920411070219369106609119240547055217635689846975840875950977587955927302228532636712004355654792855454837767474991768686837553566941158437262381169275851348582432332574401721685991451393510675220608834741237412961884139193802793343033449963622425377283728262788364696042933352584479935925597337144639028831922243059849276568473390695171413530695224404453963285807848444980727747248726341786798943667062422111892849707245763913176222707753961186859082156037002941046920389231154918910300738292082089134874152937803346195902592210288680964493505157625247892228998768595668151235621901185608380662128707622534668009247369527327091710432212915820970759167913003304878590596715622534098484348579984231119365969330188126353700175828225652394996715062525195063818265518151767855082700243109657973420805204206500122351027930315522344611082265557126362302030756910331131886897606799687993364598055804261215951356063100531652889451957126661298936415775698590261151674211016016334248410154446345812253644416741452667536452859174737082367706355915341781230135740027782355886383940967030182611707085302008590189267506022897159848651081492013120822480145665692248191191643040343479177769533182258204643031059488929413070272739317264901721360266179170067850593027074461199241848871275256080674021939103649554926750674266092544289056959263391117078661949183353337752486892851219110497105437186759186091499578056126266621082332671484902612874831214488400328862357718955970204249797268835711124012800725506227882917804293087989751148766583898185965592333477875580903661832323330325464597722736732414922851565731268926786257630826407195958306021139821129947734392009934201549838599515837994486258858483631850867019820458852732164813837257074152590224247790223851933814899004861178257258792944891341294007871348623119028633148434898256865082510517355466713809924559991002950981915959808778982408288793377468432067150398120636574261034209660966313564586278523205477175385610394973500592280070228091089363008123733150507776352307229071431118237061404812357511497230527000381174929578222901453469712781699608929244304766591397512077177551016693722976278730448841579695551492204222139181468723512806956215796770940357478281061356397284770909156264105559566092685948039106838979664580872773290878028993020344060666843400722941847771353910503435323082214113229004316060442462724577870211723443673110805682986851474630922893518669704530960734758750108913790720093240535354655511336253667922330717605951797067045954540639659167122835341152586161554008379940795685502928327976493140428017796202598685620332702464231074815460512622046705797733401457327005320303784705905610025429694620720837869227836764340714739824340236059580785889787214216690327544826926085717693754242140120050217809266465877088065004559746863948155900410031116663264212191034750291059472741957541330100072762400568223684378642765668977782147075842867298968401141723665046579309615553246695704653927887362179146567812532451567928296511806175597614108125692104666632217680176383510792245082512800251517772804537825109076777528779547215601813325173629395877769199318966269436105352978232475938572349258100667400498450744970843718058777690451698365895549243959366001509797275682444509808718197550800636679941435571865146856094189543297207745898298224203799394659792685646274271167690270440432807556763421197933032190566236568385608817799221861785297332334507307841265946800435135088801729517324291501590493095254796140090422030191355020418435600710957350924585067051117755347175482746764926737468771704071649313378092877759232417440742409822725912884302783006565210343639437563514388258414980493627928405815783391629994101087286678051813760225890061013393018805945668994268935662861940437133209216650277767687259923057996743408844315055006284656076299712386410789756603612585793469817793287803820950827924270186935987527744748103725761953544652689946594884006655236232316378116343628918761416804608829177586665886957798557966720352621668242026879093552779429003574894900750414276644441638594986492448112357480334351982648329751455397069299846956842875480872271598707989803363970621657062676759198666131323917199913628607526184648939258315474563172959820091890290340956013089611695241562195344526091832247938843689911253605176039886568866307236601046480595177240265451829448117815764952972934014123970804290751590578902526888350447548515880530390506757152482643823315170739385552047217713318232263220447218078704349470152807368005084185887219100593587375141917129786496466193237336977533119685448705121217836928811320976016841920127808451090427457816650588909755860436572708408300850320444192528148197500886338606970571920249281335928974171071853405327088327714440369933896056036978079488426508052494413873918657962427749295447544545747481874892075439067955032923342302680773386700924974201211563636822993977895195349504429871748437692084380740726220331802352133232341258096563912818728069496957647186926899433313317083723627269106281429130879833265487438119082924778882400027393247308934949867219102406278028273343342143595141516476691258592944509458839603413830809957853544380944500838358069235466075878547109541592430495377813900664450761937029953162620074772738839788903126733300684697711247368323000723052745207295647919587397144976398372412040905242213881931922128186792430837818685284512706901972129707576513612526162908967242046400856957023321855486144057674003526731929496332874450434560897747076660455850340026116897049690218524144760541051123622951911558859549008159843745163045276027225151333374690664760396666946703949448472784786679510868438642770960628327250443883272629609309464949059025352041608521253187269399043141331055793982416765563657546601521152498662335431511578261675166825401357965453992949084021379844441670510012173756610055101658360449130987876504476456617972995405609164368289212305116748276563419643223541062062971222232899202334448884441512834374988942584975417312880203758875445718448124727382085818068124211693768536901501083723045758880749129400855584645265239291178075061876613521232051202656900761668839021315969338404535686247708972383158010310875141864042598327936531681754518262018946621236119216739631044070899970743023533044319382142499358722455508081083305422747299444350841968999095541429969767465805516433415982225452029580442669708941933020620657169147951397302734688529450405682023485818910873504586165353783081637542622398674780962609892252346605364123946874318945331860033125526774990816477065311391996906565874786604244563058412182428847309437535993323594438649618990216111859606288841458712162300755421340513314440241379492538026622633005776675938351014193833036144582568505736536027489733366985972186028783388335400617967722118144847062827276543237242502941169296551693380468651434179128257582708359058084529713874987779433236623255376526201400443807181635698562827307309864384286363192920994618317043431777355694953148984493519106911627850608799056214961555943365839756095900598714824315081359775033169860021113253955706837534395410651697692060713532625911086504218959262596268142295081478662524650437193200549947676370055863070300433426460241046173143216289420134888300413979201779427752264003235194184189912366498130351677469795958771773540173111679362802762973393792790479938828283600797108375904340861707495448790543259681532043684850988385371860946374822261932041623095033648075356155858197089896551767387694801310049588852901017467424254232823543386259646309271492602494436225374652596024288988411391986833049177976593524306887785090801492883784597781545837704393070974625241497670663401878978488226024651521806313542100789454514274148934403958464441984788317308944227403556731811477086542776577227156785098362300202035881447027021920911142392706305094430340401623567641981829256133111656737335313407271869233762514901592536942106686101756216664972099134306767906918397477033382596423958065030711462528316801134144822750527080410533884636541099993559680295545926006298430186372694855331804383888516752193836389339761278092592283541209829592269247696750721084584200794116015544308893730438319962191505465857243641409841175557647173490728586772465672808861493018205150817180602065044761208848195191547940644492304668454218847293545196601532771837632082437994931242299175079271540899941459915754783476829496004928870908466678717291858027030485094817756119938248687447757871338134101477343640311959401738415842997994383848676894761700414257309611028800932572528375481383433544563255209526219056657554506949762842883267765866765423132195677803710610610588564171674079664083896759004536392157104413087237157966835320897819092968057188867657252356847394620295164550890583937242567097419562576146932441050548917769418281183413319245660193399604678304569620792241278706085703815307381848366194647058788589726735344239386413251739577289396575161796535250163290440080518348993211053176010878972429433428560018214088247268710558101368654203456711983936775140271821341737366021410778902917306392353891847528635903588977996420742586708570931548103524805627842269316070906261921645101720132501574130709341332895440100467308333738430608044567016500099059687613321999601312315988296706013343267678116899282252584159418273592274237218769430218678726559021505242734571515422072044453244114833496742586426628841917667688990451303367816580302804841778132548807344212580020681093224238590504792711295742123420632428274805775692115176529291831455414797726818176347974793846389556902019495839000334942246152901877370924863421102566213465384886246704312085955322050438150450233906937265657445482470522557434911498272969266922967969366722530974898048440077727807141285209303125850865968704104059439042952739560007477421740310148997910400828612963673419847117398375079949993960772748087216398301384027559833889142297081269271214625851383547630858428606772626858299922764677947048855827331836801055377128532941758742137831027276447030041134992789275493850834031219435535005842158557672134164543096943365848596335621382332780435944602671435746979957177778691329494780628338020781611811626528655766569605213611311775242695424326478294272438438650081288528259103808664683983410739582683379674984775338768814828169636747417385043736090720122452870860314720762949775236466509198848376496642976471425592552664217527490450323959891859494348764693820346281152243103574891082667650203288042842083300083993526684650385517542293319491987575629123772494509921066702629453702036520891625373588226121592884326167743285281820364644424605105903420879246880286212173503490217371319509029656549342439432012508273224464376597303713305300197300788133893070124289146676297367983132585067001342033095145093473676597280909599589987284920267733370191122933558665659547641109438149611306020715259933897474594032716740643683241769869614984714924382358419079692353247515338130396383389280911149629375476536777997592419803499084539899286279839787184970334384651691261275194725939707832771841907472986902420428248659187557183015814775379813559040399738992935484027153085968581073794322461456316520152470507397021993668740806824894709016226474433363628559809572212136621328126398535703095216008930102195056711782102912522554763219559853465569910810497794794479519104187467389587585090765594058095861875797711242813569578397102772705069578674883453621710556533572038363690674794908371506545713229753052447100911403277940405677725166961327698002889878373328573365285550107273575478788228361975315285957878578859463858663805820301804424115438512086307277748279983127411344784376213379538570702502805857860567223239177308942112805443004328281346668802286802706308103351174265444990948010804395573039015857318930580149080308561788169756149339644491789603411360129291922133166163814751900020561965196118298923040967979506259812414276543240175469162723568540803723391841864133848247130865121668240650580127870730175561390356967664016801229639206903973805996860812469420907136595021603024566221136880256061102587150446925885656744569408351580224344060110315138720967922289769185498617766670944334722249572080669859667822880541755581522287972293249369311821254939700755096798258697631784446013401648572839189503561420330262592952482639673520943208818413943957239334363224682759299844347224662739968500841435170169497998002805052277758349805866372376986084761445120876518237955929020922372244101820818647807513310662693100377989999328979479857077840784122046874638690685503132130127818540483382191433394960678742253730188937729055293844307107970428238648633318038248135812490921732193056766161669130505442984226357742524958303092055711130764729542735808964055989971769213672030123112235946310786430420472468305901033267888895300027315834532716047176885864782158358900917760378039411067828678374841754174618137862086569784836684223225675577162303305569570101672298728900502036110740505893322533496826958287804088173184571916099781692302162589637394468738126276768882585271113788667494241278743274964928780431929341676093256891222216430224407396584840996716200266775190371558617557309556877925443856569229722200451750775419262980209746061217193344820531250292249282454643625468737076636258272485667928764334749867110423590185819222806043903446263830723943331097160308197629461347973739400034160694243167217523338509135563105242091772815834662742164873148617662513805079119957272631175603370538569989937393935640200103375047832958571640419247989205113674605308526417914393517345322460523972050684316700529653281267736693077496110134782309513299246068081013351686998780355104647735263140562189365663615800490747567668557122813838636168290058068023465743704697167683530878192179266091846538055339883537785397032298434069802748359897937362342304753463794293765256640224891748325822867984968322385246835679371031015472191269941923530436171848865633778080109912972112067978914331031025634359222482782277988966952551262508044944225141317623557174773839418491778566100017031639044931258642175123369093508446056531999954433052920551651321594502194694424887273264385445096567177736985164262681182329922044571757022120992266233137451437366399062534947957688237015320810045516877124925074798830356268302963545234848763614029474142469918552756426160511473417495739654112130167493376127400958414022668530645774346292583128463320370113453546807032807088075193393664892342668147850320728060013108477626041190273031261641407514597621917032671590718309592853844757740201117859214659958724779313726818823786827775723737483592206992967320864266155985710851345884363099079580300836951214200717318641334560579194900659820702012085344773725549749338575300943946567106204138135596065130941914172104422394716807774572126272485393105422706452136086043400085302602856196064169894667101107797997890862508528092770873963238344593010796423231349844297184332441826181767184771979910590665119136646510288384121156218479521857562186150573157283079176461021758953905867067554478818309082516357176025464647862314989384359196195767783780456599794515317163235633387058679133434357905752367420513771547758945970237741844472581298203104453957487429206628730634892902809440540865506363092238588130511572122269207889551490487148259304407033515938326626976353715273708565659237468566811996477182680567340968337755078068256874523331807065529038645184251169397534963048934760340720038212996536343414252142443713982428815296323517017341260429188778142136464025085852184075891274006715956283996839796560043005798509464757449610423454916372423386119108844619060490081183881375404522704977693834730529312025505636936093943845530226226469441655005183083602234349757095156451228263746931413383904151489186042507251941084723921328347781746103216441221128412726433679520736948693292170788459664196705952286047209851570845968696202221472655169700920174743713807218914122446953250098083871850747711564024094740907727673101798448720429159796854341022887264452818364670676562112934792788467050616318841487058078774701516340801706515426549635632911429602045132437509244469991887473691704740314077894001537065053361289970108827316916659959434468370410193092472612875673270945982313432774522169708749459059152438109126559749448042784906644037860476217071413440341435307089965092160875875712333903240113231488399863062192735708863341496493142256737003432734066169056983745342438870639798057784737038227990859068390795492446351083768581672683357418075071833249450240444878769999047690095845368415398701864257612339863683892269628971232337158002733214026690856179626497938647393940342899920102005761726621725549736325612984864706406063198647370565435331925911375462990477325903625470298305513913880702540410152746452146958773371485812861878269085410770820510072669349051919578943222665806285703311975670252772898866206812069828551381969804930498800094143632386522106006200319265632333791746141680823290135383046547481474227863658322343574105996861649268166888427389767576089389743455470956381765937758710475973344987545219707121588563224948270391425420806464466712864678009113911655083404743297827978264125344492201176341461173281492347967127991906735780271631959310837085421434842623204221786966019824703587236364341447338798892656628287331225772948503809051409091437903963357411214529508874559003831434663329042234969361200509045310723171789830510848093702421194866095791063723634379174470552407657795431459250433846838028096565085437635557641937444393301698459558469990153453279857129285443625637976827201289231516481504499405058996914263817277920203901340349480767534743914943841048593206789915190836377132720166316286386976723181543533148129866763899477913684937120747601561704201898668621548869071651491086475118565553842871284866657075703853584183383930201045594267658430562382703763747192472402824431343353955178515455491534459633896968511551139182990289090099034209835520987104501587377251248099741474753648480410380767383896789792199039301103416038405700890608004758839752894894390926287116273248326765670553273819561511676526770541359019012040627256049000993161128359030056028541537333159535563140288820949082402336355560734627564907007472985011800160039603065491091166642223224723832166137066451334767051307909136196630138490117149430873301576642029539848517043313268567912987424781258360849721931037696197086952664678743780383296666181616014539029694766244774434115347871541634830081020509723376125841201734168524351206400196252197964453025604254861252914377423997405783443762455085295135017914261097113514176609382745125745634835692424234333616604070026879560408749146014550492196176667834886630508377003037331072655471213396002321826425115030106282490610141763332440540152908384503490803363614397605200765812835120009291731624080539455288475649865785220533449116858542625536524585828647133329360357098487630785420075275421942849880648704194826632945832348514533396989735559182099992169908494270108957852925451770752201422836104381029370130705691101498759966681702480639743919852836483328947212170262686918929974034490230417819005068793286630784343063312366555472377890112649953450001245155051744917641261864454421126722036407705595468341278885576030047732817248622356516008644428288027293293718672611839786086084352522794403385168898528667518636619562304459685313883879156723476523914858077377823749545349081310541373806742674075085877799808336749639326727727540457553254375257324464924835133691001933768598561384640574530911786808463279795443634202923935510869669526303353097867880285445089913627692001618664388865122724151730902856549427546069282276144089539017883450539683941358815486428632251785913627659098468209758744520351329588310048117572389883366518604667576012109557888392784304338561283378851804414640029771171404578696747123332085393071748805293845057453212136188410664470860181112000576398371574101133561747221127075421294320928284141476243653819495694135751542143347226085234171508461270702361523802072471321396435675382431283519722110671969618573602303973645774354718496345858469643344026549193880929686878552764681230036020995284649040446473273947343251972327568607770495007251055970034539144956849077672407715284420968333392635899942155316693033621404611090416289276435943265264631666553989471738566113791063405965147635046789611938500203520055144595911891347979871144701233492147739642393301322270527204148095018233006903215290532797019961311574580460161870360331287136999563328527334368554328470105182730396281219910592977888386983002861482981786690680850498822088022282246514211375490405010626301189276449601894740438166361398817742175205490230816801731497489125708359996187948015941873554931524806709535366500777187166857238439139726377658766825584218572320903683427125278744057119614455519115672503850110883780249433202988473257298293695770706543578924700581670098244803203725440008403005500407884385085255253546487476813967877282288936574648537251092747278133158509879926488174940529692498774882554325172949217604927025956533161676874790142298580406920123878446849580177455441745841498785649540814006180735691559078962737824175848089778147818390982004566833992035995201581424786747942137444363354472102261924583330378361470643183848859417966716050255451309543925609256004090072317961209395692555596442434225567809976011424549409496509424276714201288063441053108152719695188515234608248241344136737746204739193203240264083254471949101181242644914586434881893340450150997719883153390062039798949879502590986095301434679920599520416888139244707441210522228343846532500043302396323937845827213167158756698460659398497650327927646984925815701823356677376334497935192616171040231642055311190709017366857991083729324548155806381124220339347001180526642592040293518961521976877295170421563111266671882754871095712158068227349706181021193177656262556764452853922097498284285889903578428093788821550750634301112905855141447331158597157719299975723570890638258562837079300799631335712947117535162135252218470891969605205050790325933434322277080012945295088819594961598729377770019117748590086826727393043483300868297304393376812229533591438246650545947329569023763129218883296337586233047479497053533644966420358282025477405255659939661770629246231950106688302330528667870803905274185994357869063639028050685261363402747212279704549367288095784350833716048914777483492046481798700570395863489892014333024879100871710830556851736948644870046928017759097213658107631645150390705643099923404260342065124054153653338101607069193253324767650435300303389359988826360294646017948524541237874147675320668320694696013329003772128759966452655446060767259504504579994077513084164267531506616081477629808174434502382568453289128659806818156605716256271987280572958471172124283530452178008737072244955006779427574157901440972404284466227216999667948970442305913989745411823456558069461006247900513031406527463294561402651597642042293953729645398757948301836336596779373872047387431255648563070791689895661808450534595316366092482381162360514927372550271458897547582236373263042620014637377132928680613736192014975567815235735658273666105363641240630742013070207153308410017767340818504078114548655324569646775811184321630056805865398231150890796673886785750799011404699696100088075561290784402406078904140919298500512470605827629714264944218501897187429845450183888301055660478288792382557740365953340544791466583919863239132280216748669584192559746319850246882233776210792604655343078893358838350013686314401979239088494331639004686927325064451272878689005695533883917770142448484878215268995707100065728573680374230859708557312516277205819422537028515186871892455958357690983720547593939878375289580798294193926393636336294119188767549008232418696812237096106299509067660275504007296496427770138444173507520629949198006586791067925973309540597551561495483847968753467875331181147532681034893090026296583140830954271766571046041916302533011398582198557364313193930223568213030551253507710893820780687544535183239427254456489295424306269796998480991960308918744527702561544762816719706059164495497216546263571622399137985147860695558508479055410248535880924426271117580249034848620036623791644478372359611328838722667885384222168742458515220232576835523301501315704123919867225440258320226818885811519608888471718911034293645131764878278722246985173737802826754720275872040654523180840582043064272874489723860690320501197189963790450420760329766239970183359264612172905791883068068704252730828168214606729220456535627376431939982602910148818823896447426857804548983219912367368524603382892249652233178504069071107200868033549009466758053739882942433076630152815575845351555458606642071034343576155012630092911934072583450908324431498497790605465406957359573098377400982292899136580072697391423321738771172842957311302657422092353996812796750802604999607767689916735596780877630047053345461795087595748374691264078271829167965752294671903916914593151832045245883788423287913125161014321804163478452273324177457646221276807748324416320721119247930963825667808343950506526185610818370927378181033995429410890138040004226195790517618209217800517933589565967651062267931628536494456104029727817234501052471746618767336825083282824501993220082607453176029035226135044277818273333108493210227789229051339334850148989721072366247341117868395882674398072210388489434564872017228269543051017919274738232279492321303640509810179709434101790122574811895663165971912619542211105446365055413397113956448446977477233007277985643460247850167361753653842551232472463714944801832544501246972880798497511851365227167935698371396065187383888671427666733517198072454746668497752412788164951182841549008959416584421239234786465150881950628580253167556513781363477047590451448194904407547813917723340298602305083251648140960500337931146777076909933893502060305680096686251320581136371086622575630122928783977856917241366075998625133640921375935938655463970630281472902545617513856641560996832971164145018978061654033994853972563650067642700691650666586958703867395674836428284944534518935718571984594950506079000102110440520585422408505872573007411286878105899126227481098168413691618642872273081701244333419016232237914648361084705779839254151986112241439608036642980523871097079726168255853124533189991252844026483480199798848716850935676943461082625146768956493612676452958714273195400980823302567887616820871771579729073128961518965888256251201133300644581495163642247470165445465215409649536047755310671917399269628719920911764857382411440141091152007074385293356237952702414605800314651780180891629447619179092736124874045275683308260696304593165865288449446010833587219159706914370384694821166579241630588432151425068171766306796252421334872776666930889990771663893856348005531947685297110633846338488271405824421061400345436760666400389793879531617938556750156688685230104505191559590055247153188965756230018955227309025096819146662838576073482691947618436077790593739164016740080678833952002394173093019554464605388363068947957454387877225502669481223674199093718378399819486456015790453615294908688707521315140239895098105266240603680750956287641986773045235446700690371485896478007013740996984848540374114316647649397046779775894458880707446814640491532534329154765192546048804825761707836853985228264262676956005816032427301990848552326466834793184273263322674472326399263306756969751469407534120104334051837142739600150443802997888287850212968328207733596696439573558517293750269527469330987667293738157726711450054468324132727702400647954274375458426419082398507198799874142458448212936048109112779260714169494574604068639845623043063559136170713003636105130486798392355949749585801625323939784182686680769611158739090429966184054785910991834127088913461864282327317692704264820622703406618673170827092497509190440594036236531447287224430461247378399772600393956851610616547428969124983293459622407327112280207048585607178982067264625361974610684560741514531182228111952903170717831651117277672973725613715553027756563550259435854096991745599002676880265041261409172896690623368380641145386983820957038714404013585184442196404385490984033565935838010459892385534764632502333496443732901845455465603580893242033467824201055332844998445658398857824090393067955871236462116914569557055185310377539516517392182435145113895117908451087119717986424037104802543423025536851146147732945131701534569995706570112200845754768633494508952717948688925162256616934891430508782128371522733690097046843351959490467997761721798486956983102059104511299925776769828001125705938277469044340113879827816902761141229312056106378706609754672619380707375796803463419449504792295245541288811827828505270710273122149577438478049031036754593982927807960474788232396139010416765104128419350433221983312239405334547195919512936710582024872490374837769432820724746922641121077415253293661583219442814079568534958043658785338965726186418655908237314297254814486028568165240210233023060120867200298736375115647243737810623285678948542749704869193775421449944356617664091302176354874245629468153894576867894443595624048840202457231780661387638216556274152578393741062382588509790098209670188553852625375477211167420483879684298655818557477310401017978317800395105664005855952897270798102537931495426898751176661898798843333479789763328104370676368837098804590554763123280805527126683949801583560213129643934156075628760608509799276901222364528988342141430320248316645328648834803653137145378049982500202020965521285871471868033170481566608045063029756542392207057110233657913037263484489589160799446430393378014148522956939102353354732197949363572092070634521718880780939139440165589898192072158570310092938427014347888738613873682712940656992984246639025948673594297434285958292806642529123927790183326439108188936179099679740636126725502808399995284394706538282334974437922904657051956705199198951476011029548833651059477727968017248795567743553560937974889869642362531216984871910902419068887159707069638409657417653947950822231866047917712544157797660737090102819349037164337132626166461073067419029165241507447467566529359854839094124862393137768472291463682285775501222085064516204910680068495863209824387052112268730975036242039590570525405505055754377458657851098140494299651670040672226804683234289068436793202939177949651033450874281341438549129475734461885008027237120025229076778696575976953296406272338090096469262197217298108077698969779608197025712482357616277784802756149478821121169237304180237766630989774735500333716961270602661486113809927330125138741553656758465174724867313660856101005247037535911131424455574674525734413753093032691833632917876324286828934617394152239207001079999987218335726422948731072928560376009818303463045243675176576019505824030077544566673886181374818294840078081040903305922378394114115020997365346169152631549082145914707213540172430896913124869632787665352653002228761859076281720929454029635384315451060820791395527806770533071324720934433783197039107551766613536912718906241828458468901065519554817785417377142305477276708778144813137622554037516424475408954516070202696521651635934302439852261307900926924219597735513962559187752897625960451478198892248850294407346898620937900840624459262761716173996945234890576321156620541028463091963558337347020984809904531992580264720293748761368206735026701423340602728968641334762934333319785355536352203814022716739999985718685092806366762407440588645676847636929430613811749798954455807910107372430692761120197577578532837000990084270394620742791643040102463716064820303723542816664358959381434403175340626351822659411359710480451019646610286780909148890689686412545819174482272982272126039341111673799515380158495314893832888378914466513466605358363770687757216244925249307980937079721647391976204302975569315154521558613743621476836498775766424064165574179281369188056714133494453031001142000922619643235332661069619660873763277735287003039875266102757280670937719548542353248697677750040436759928314792253416710347728966178391468776101589762596652778787023569430846804084523379198960447653669909825774676427555722068074182061447436319348946325390508937919460838799479993399252582206098454485512903334421084414031041372136395931494618573769378493917490684573676313437111366496468698252905830932038304643623181565701438386683600385896710910814964335580879992701494641370965253267704734679319372794315697391987322150864208003909486030602400132318630153785860723638425566906831856040737961981063669359952086272146842257488302263299031119038673388063730801106909145385366151109297013379130230441727566568787847721852090392349621449388240930660699765210462360317524609626274261748896704208177377241625880145821754531462345733058243075831527597444280884007726761190950547712456523133511383880918137129486065880407238602917317458874912466869678958841052618360499685576847372979558093361394022120997557672401228980881574744009123545752558342951079388666824569942521584307933805536676813703120500842549667050211162584311112962377980257766370647040527951274516298973714145975436246725839818038136716463033950587294224133302963028101331676251678064552926376273000600155385004377598411134835515007378296301569432061017176528167549338023725450524995864563241567933116401656139257429851730374321842357808034468987988494162067758026957431482545123928962875201660177190217119574497801493389450877765968073052446581027585805206599307414441972563087366992696382955107608396010091854687523192878624449047191598147345691798377283420974886367403057739298238060961710421420384844541030709188969101034563738110487179618471173260909191995772196317219556834905553412949638708789771390425890685331685980114041361232699975140084939863330429686377195181986469861303959011017314274137652386225143950566924779596157000000769450486775829576445121503226040581679655074892676619035152831575647222950422018944346350557314345157922916153429798696596341614425804730238931703350022062265537051595626128190334787408884521958877477486457496674417405474717611036359575497927089608233123167965855467767414408919562104725622718275756512938424872337709465031878236151290656973436012176318690954687641355799685519955702916348230328632484598742438523265336366061063886110795959051828205822400386105922300179333708720208935565462998750818013767524155798962237152506043252044674369170186091191855279464329619591742287657873922253432311750927992514903326523546647221577971639735709296234260970355254924274544626661737960429648728250957818183886853925684245322871168456714958545329570559323772025036210113409014419668957213333151117750253744040667245708168241464595824573983861821407846756287424534126172836793235285218250880487644542278014716333282976100110856593196188239825012174168317618402891921174009178083686856755325895020992699120251137321053760935973291941332002645909086525911395180519520652023854571808487900727993439956218340361075540929919342391629395241046488062735905662833397849778248651172927203808582425257739051362801104045613931473688509493926251421406947641721314878837203641951357901137238948425845241173929988537949493946795889958597108192739359793171022735270895061047719947456093516257068891207013791049971101731410102234301391491200709958915828725931589199421329749294043571628532813464533325929332421659396602598029652854621137881592347538525521147124891268973542074586826631789942085208730417768569735396904545734796883785638985850228911645568567252352181519778479028353411614913576765845794359515097176667150625274990423003276040400396699907724189541204034656013111804312270266385084130218386665696072395249291557241951546344534803056112505080108885265374887842725757404398459463809372946326230810102918268247500807738692198358656835621738817691775534493024920253752742281063819007467057850601573325754483067226685162290353027862402680303138132171798691860816037823024082622853033298001962926860586717739986487379376997747305107824116215174649421487021153621230069128746635725195846948846779073512103950873428744029939324781213051901598707043167142160268587381438693202775511668362287902605631304066551861764776610978029109103603217345330284917200592003543504136801926462612496742134445737317598662433871176603965428021803529710715829300378796511491910716801447337348340924216853583323468185298588611171751931332648099024968155761229345193976903682735724844514892164025182331803727660850009920976262959937978874728507718369861128642422212536092486317073820215580280099044134408977365233428158592148488894790557141762525809913509487328379755469553464703915270373063950165011898564866682879569197866480166560627843588922513019447102514470334800615914124922515738476078480200163030338820041404633659658376470368701828839031625288843514190428587345858230001278226552929786214059258611697423939891782964596109781582094104446765917726415275259897995774537223397379903180816192168987331457517499962740412630691507277287415172452675616927996686577733744079677070528516453048674251845123280544671065439210993055830601947996829401916150344097477766761447186903276966783290264949238165453878285109703836215389260781618334264145310286443682579006082021600395737874902123895995706109758346013673440753923801931241267830085925558048961087469046807790101808926833804021905262694920099224119269888062849429471031063301192499242812684474475027408033187015716645558210391114648909792950462934582981909426165823737547309656185334402034540111921041307315370662787908552960156798848905398979923167928987614987401889608882438542447269950337511724037113803038766851638161345363138346765511653652329046151300216500484232324079664574501727153256869478534371386956766436794287314868538938974799235004899047694802861055920063350430509010233380852413991717245465208851120426025985860592596758153523716409570967512237836524464885121878177430752299954811809979828210962006837908769521142241091914135469935648089125173760962362752710640885199588003024653437545535630957643437793389184076190556427110095667081699060949470754625099473518806945025539725877992053100741609076503371241843734115657619965455318499882992003446876461860449526900208219977419767764133153844634618286283114948189160588728273661976206481243657740389900603377894224587159551532596657794159264229732762027028134099248979817226898677459610362970341603066325340113238777984796184680926815552530171842087323801759611731556331455221400094463115475877389295192148607273847218225614374446476643723225005452990123610779671238697467186407945143969284358976609570638439497479683461086804932018309662471778125524758516479076701500777136188537394472393926880249732194365034782865764372893006924299923585946190282357684560099523148023746660839669768361157099093332739620591998992745588353815392022552666730323856474407571521671110587767508545775991970468827961891124668723991250373124772978457308273162961919198389717225801078933643734934026094934156938945478265014840172433952756813825695517542833939953020984040518167141844667729489210459119549210264362247423407072903166521806943534865387525028587089913195972459854644514939637761676538894110121487842422614244388286766467668350940885047025883582571425044069460024025996931703317046829351431212404359754952312934205879171351528279185876790458870625479649401179147619827712373597040617870005406703582175071114363967438359469363572562871047999012884446769188791302520531955210318112339010628124226661536495313275031597223332814045451138329131073669937737266860949927863126614315968718312054745185860933265154823151803970262398383362979917231781352353231191979393941238801391110314395327004616149404863567755956120730294773085758883935516943914706603776561729374219760145371489861190674315801887448340447233447654219308700277577700783991429953308265110740880634231378885113845116457629272288652588579161732948845064729468937932580632637775305920660107830508124845719225275844375817492291296593322569985571718444277676830140015252611423864137560294025635004446421188381269262583139489204584104709800192318785171204157332247415528374701574690012289130134743539696944864451751719551857204783716258011729730926120504240143320520277667903489685872944811017512097370648561719073292243843496931566043147547622187457329048867201607058616290915588687185417672682207647560924227463678890399590532505342041104921719814635753212477676689901605871473315137196893656769165123392892093335759376880513092965322846080441717171761466673456793695422711808252256989487440893824939770049620120262094391500078592416251514880813024003161089590343167836207071434456147250071207623524646302133235163584601680494897225375763383393504314677531727503451435565880849236429797534779932765581382971183193986411348597260734401175830594390645148354881433333976481076252354646979934069689462840730333089270482599176344874885385238144244240131120303743040761907970630410288909929769377255080491741075345022144270748547552669827646150635420193083053472567152320471115715348900587979260987187989271831377016933945279871347720128772319169728558812950513093656348975674861274221557274129546287792097604988766068444487670321528237757629696761409366450850766106944923745008227565084073597463135444592241403491323074781164658929713724394719399022448996986147832205623093039948987290553518443589782733564130278083053706925122139856616171871892427678836764541648111927410038676938062548421986966724625759610297754287594689407830583087891476897204102861542600171384933472708106704111855166633215339597045639073248896164111662085476166877817039352677740941193195746190511874740200888156401409280715667873079537836242930406090360656631088258749697642568806541246288620684105328103192240817798605651474800577446447039012489213502096133917734751949706144770278724008065157790432124927477775070213350456589903160186054629607917524925685073519510681517039060511341133646232015331778799555757983250083053301287245836875563357151332415602699252396066938203069045917522312479054899512796327073199421984175740105382139734561536702322228058042378567298102919958862730008778485716995685837566458836674822590371324368967738022036955043861826059428891204933119569388697857561484941946640212361781797914258220897049251459008596823906122705034995880511688703768137620868457497127246533722327808146642512484460422537888889763310950711468248200170183298135598656550276905289777295634952411563031768198689483603189008985576647038332820454374448393748509968022635628788879945290571605741020666310010043178074363311319569007538769702012439374273767650698581063990683918936212640692276573835800786961389503912102300570958381951354574089348484504783574693797090866182737741089400517841925128096138233938479562972795076277312930897606664282506937881045886486600564181649392598760230768697763723243259010181433003220538466661130667982524601820055071988574248775591901366394271174932005590264583978289651383523604027091932497518533196541889325501626587754574145536924672776416182719965064112372149362785114203939101342912325505415798931957231724866504438210196559246006242083753973286083807915832669338947497563101199147429777983280531093598628668702481067445988991861014264079400050703744893505416108847017098805349493119088441766802678468035259258290374435297598483833745493215346805886204826182723568073429585615521933825441114132025062414142219846465796943600731509430369306456535403859227401458786455951299678423458098001721040102866236316363228979033184522184852109405561240285038822937863756096590738177632909994698333435306231592510786462338739662429175253930066995795343046929187510868805949915334761964891016649330331051278233112398323722502062052945117053568577344053803061086374824642398301656934510681036019518142095186823958118775598934128426912327556620395527099967682971639628572932817701553507550010311566331307626288173723919480892842199352762896030649652207522294328832383646593316919238588654691261256838414198617285488136077214345798478220279559207068991469222497866239412080212591230822993249447189063552032810820102943687614891644894034275846399361938838745654045329607598500095711310117946612297738981941776339876880751527399254300534014016185221224130534631165036312849662429574019966339047828916778157373816148959827020468101804904696732548445920433641663185092022186126796417368310201878407526721355160143620156110669463668948655692880608475537508817438052286161218852224404431766365295487192593231819327099582046259455810895279564728030184020651486978261981374784393532406056890788428976954001273751166815701884562446579797473262001104294176181701436652292833311448915825550384898717917893857350614054167957348933145841335282766115697522467671307377528841593544995608461436528590074252047105990902602240661802014279616476909598989172191500875875887534993265935382044644237202236464238857440885378967375171168250105309715065050112208406616548040052354584675713466727691938920578004490682176870056920702325706619974939718434784318584268987171662291988693082425295329186008999827222035492612607602071430053502525042344021220069021627904588745311023700477597795229269530460291487971128182956891898166532498464452157421996561086986438849991226249328671860627768980237177056023461290280149497166610526304097235027316041843486684388246156967033100411831148510692054710143948836853253344517079839664836110537958085764469108122369785533207271630601454102643999068296922052093454997750486767087408742845544553833444519144864891593063941514940815019270703520096306896431252458862247173137422773817450255147200984247510481658306404768660762104439636617152924435341936065490178465344684471023462330337575024716373165702350006011219732027733750868715634117696232762098961769918932545012991445830737108666647469146348576878250381169099175929632210800114774746666335326791038779170083138994546265725750086928473945446774606365012851706308447354424683805963155883120496096396360720698976065894806372400910155493999556151619889829910380699026346239066855007863908218837014889265352609921775000111109875001796458021916156238891794068588005360377358539414592107649199379882916667451909644644708769286028435399017203874596555166681003870958309148080771867515278332304037861165536435814606770007114039970593397833497610357170558617098619358088399619028375401845462093102572802016262184103726691364126005765478773121635404085676264585017235355318062494818101907897944489349859290608522933638810684774117257341037353848292899633000548352720662454653145525291447156973502392909177480293550366938518107685327352271984090708436008527470158150048202463300427224811373130547207036760061095385057886537670824160453973281214450404258359297238880215663686899366151545929590802061350588900877730731955379299455931391830722572861986271511670036963881792203197481995743485171156886689803112484195434843410550744825400605723727908554851723023418250736987925159531886881444800829373132049579406131637932553469691416821942643556519279323148744941737125440369028797506928114090616722359046415592014667969634300207643739038831939837909433822547065769135594807988181685749979410733334589678893732300462030358106098792144859103051425292810725721707012868128287820877929962809352204338377533694491463825185859580626403063055381430453328892772682972525167430234505725041425014280038870632411610427411432507231372554280507671687478927406359690316662536811651534736394787605978274735940861290658652348420441215931011192915642661500698913358088625580884009689592753865317612410518071826608956865109875541303741634074075239071077062602790713240869144871639441495391585890142712187424018529689385814464197345975822790900517284897319985719319724402143890117762618706892418322510724202420042675072328407470350490170139011977111842647708370344869695117013503400483372847183788707737064729043866024509117602088577038726094171854586663128551690768236452131238250269540736392325553653383813559952545638791612989699165752079847414963650453968561408069994837684832568173461737815280938932919630645985873973496955602062369630796481685017390207977800749363395185063604333701414636425771760609398334971668126750993230301369581395692130643327216566596398485235162885601567346409430532727132254345182587160171308029376856532896523311459485744128216725173506772494292173574531066377913900827463617581322061587257239027463736999619356451886113803773247644972242272704027101309989162439987982151756853747027113698766394348756361924421852507054727417489463898506049150331021179537347972981058403153941536434128169569002913101220906993888400665786446863818075632592414294257529877528649671396899017827314803712345399710882868580918947046126359876721190186657678001134485804152240237096208516827964503889371740929925493042040520431126360578737381027238932239553486107134675246029835703712331991949048224586309393932965295760988453433024808550204461258667138724048570530213585858204898938081130229011461678013845777389670190124496507608856956413285845533360829820190844775620414811248774027470600570414349224705724801969310203172131849798165256105285926085565893811647743322329210064795349348499903284556508748206008958724601080495809854100784085961730334364907469473384255897822411112566486138744332012760412524018745842507963727997617670233982629401909985535304267025873729857176889085299339883934274534086727551260352710041614531653413435166681901008544117159922527288215045162253678051257298772503649653605529693742496117714612510282551189562679016371611901211088708964593255586763432375150856440591360717124917416133307554280422191879468383469708324525294533889102219735746972700032955027680619451922900712316493259543795418057246575072506054872547481905754859200445874553657091803663153203360420884486600623621437667870159488060276102049295092050759208252657667749317106431265661045087751108113020364860136800623427619147824992516505266369383429287209037727665472142218950252336020706749737341863363019607945056866534424101240241660212188797552746188316699643499983636865193535858235832576102790827240215033980244491595938669511722833519654165530951933348215625009795022078691237531154212339793866711836645795241705370318555300872153078793543513146505147442182687963339600444461412113171883436139776642978242195509216035241729422387005051436363356053963032312302130087606256459894073904599212539818893480368540508876464341778115815077620446534155377523473801336210809214417835442483615511365204468717709503517208440221778125871324000869677959838495258901712734288200087121271454304435249706001494831357430783849631731885554389652655442000395942808036933213457780511432907067448746015130533060618089425930969108718928691476025529839318011467747364962445853708807189793080758068240823662003791942135464979143048484033305935424574722418069363467246335445653696488482642028866147909327463377753769368709203605037886030659201772750960009314890604945468969089055997084871046244250984239908928357626002890699132957468348658675077819909477920085036284003611484560633716906007509546620361542674133178816002551916259265614169232491875205611683635958023372050623142466261417564321391029794375088759671433035379420552410485246720453264730446957543610411268594269165064265014443543752997160998412102680177453616320722368307570919911505585685967630994735126590357603303384650028273468550984482915975236878673560659438578504761068450473097917353387648100107905784053669840070010348419002079578444362381176733753385983041488564248150675879767987181129272530136542963398653889823730296445891302937872500944055195525667178948406717214693517071365913151773351570291238289963326632564005158483229295302133324969622284803913208470931964121195734798078853133484041962732864966921584168969868168299231758096732268972995553831030314777129943253259295552894345338614343564568237457952487981441085556277340362795466452411277664915912428567535748616813181974877306724705096382480838956584361510977401657021764746944768367044237953073002333730993155949010606590636674078853362047079164940669293778363574199603656678643504254025816156320599471528174976583846707160013292215924728379936182816650172362816499988287912430638699430522392236045429123981415270321036561046899156676117911432834788967035403055227303979095810111057101586665364375144140196572165527445958910751615357703059532157656657734198004058324591450182171990427739209492685640958497192876246150819468134250473428759271766433288934480134521049451404182435500554385591048953851996192005655179910965704363149279121521865059698396381716562325563728161283120209754048968598613972728888686423886979463168592032606681012197449277076682887827681194055318333953249462280629502298682942366988066696618175762790546718813208985372292062205608323602724566316215458478253253241502240905749822496494695372210438468109994910599994970267148806745196910184918156472043221853179308900891287059972031207776795170427921810393353503939271500527905887569823734038966206263051501441972451637751516961911003670783645878826431205902346593142675568990961759427979236887270039721579810992941546451089674256321189609471704641573701267427650022742153350146068756375549814711797518266247250640580796329832502395402397933242213614961920352726552231644787367228764320841920780531788279811107964730731443483460113799581494294806792558169138633881061010872563693992878303696505617826272392811928574610652975096205750095801288463822819762698061945982979918096899143422058284895483053975081570396588491697788223248593479561478767269110353889457856549214577579105705073975860314088095461675302765089355656491441396715537198365426644399871171521301848986319007020001597251331910114203046026557093508033882000299376131552374460467341720397498822295847641405517591625581256835213419926379976985824430176218952776439234135535513885784349891718663261917318918286568872296441536258853440391407904849747149770168951827230975401911534543857796358121238627401764240199459218903162287342328048052879751327896632996288561697660175556897865330510567784834970957547268364919650947870820766244521146273635874213368183826867115354655970003045880916348517728282298399745585724900560285233440593749921596197961339295769904800930555501336810934531472037512891413332888539170413294859377864940138615503711212581590338631136849893522518310390188742075043030038762899424995937856455542410344136505452986968043374116252232234199839471479667070134208569883437305066363368281263824499262303249719641249772174655876465065487868169569878884977855603061042940042504569092161171933373780564726266129909126763014169412851350806995513768441130199782491634794350942499920082197774576231981641324678993185999708834244307395767416056728436868115869328186120590442736281690834113188915102637255407822923907607009594750260404982040083299610527159448678883632977604601305101786253379641783650124237591785862029760238893341073023824344901360374351057723191864692091005859732397902180885986234154146989762050214890101131818619136234015239756118013058915317152099625224772369666374969418925276277968623445009098605276176941243501296412753687184097774661167149472983417063724844615847943051464065862331802745318069136743398271771748223380806673444736186994527049919859988045494369393368438330312041484402317712723584095875582784307345434560077963458518463748207659888096069953921447205841877135621082939998631116580113561444551083509115544679430377927580778303812403299419195361709457868373249925194093269976272831683389289347740404886601138524164163293301720752455930490967233885719312810495279340516309833943795415166027216314187318889225076613858687694797408392763211765537634278773998739291893822043344674915675537350835373896741478519288093005186386730470263437138137264844433884392096296675316599072582802804616604597758023275808701310312365854952706330280839991632942927502862835792739470340430453953741903475659552117334011569019725628416797218694075639030768495766286215098060436546738319033856318957567036627644711407398740322064631954048171979853647296879881466077435368809059008475012296312884471024862319217997267992830772702577730418286290402248740078570071436050158143529093457063011016104965649307083451735589513540771937736309607076125464221758038237270427946468791551271343559573289494951776519765078664319171620835514551204904052883173993362960331269765719953896449786177156723394255724185789872777767654938988367686913609002468992846825524970014027787348519725179589903711685405861524476460021347097566423447837664880769112439276575763896456508059629245655790415157695812920921034457612042707097836630520926808058877081888694339975251940675290596429359177958532666353088181862568926592122999290141313148192094271917162592126038428671638968890465567543881799170858174857691929863952162561491305764344021676657886401367587926864560363687924242058269155374101736086525446898831497958023565073838693774809757761803218333995199445078766643165766766861668656837405638604291176552036414880272691853870681022222228331127970403232649377725690575713675999023878561904675755989723288548748115943161716430302605269708913230692736109226008373721792734462645531597406863657185387736075502695414622370288812935806219854388435103434851463129386575266506576566837611270228514430721806688342709202393930396605581123831750049018827138116842806699987892493022258384418008496593466480164940719666225969000271188235151472022560656043015494320571455559191263286125474624027070993529286580308580116884623689621712390312397556723659163627457899753962170516252456896599666572575892409410254317558429436607411273176877874865258159889479760074776852704697744747323184213190328032306668723443196938720854093106479696362813850015986303660552965350432582298461720768174716727750724882456279629051677207500982912549659895730878291906211644625078895140885132683294084706083363784492892726434137591805178338025112141198563808436482498205391168448783656989642980959722981452516521346621007372055669826692548088084170026774070919284964157346646882221912502993234261021491550144268863392678200057962156388363647088757485692745507497260494390020129065134556360409306341545595640393380486098557432949746091634326852049024148506104826304503891110933633958431334227280639044279466184368487094443951077778095699693338960980852844759339030255321646711612615600877791848372606709085096257884841216887585625634068808974155118564168659820430838310389341575294549576473757372288162081111727408024444913248130692807452439129605105486690145360059205578957089320223223114353405343105962046365961935208082809860444142003336830849934819158905310907227276804978297238279291450270232941176542595334608041337166410525341281252676830165529876491422083939538639040635711569044949918004209663144764268861121016832316412297419932357110576541596955811063249525497535237409813474903554238205758223147190883268086131390894824704338341637098551770583699132545131937348521041913145308957018088848952436479181598581612792381261283470460397211303568214757086502862939009965382178023530803717115812194574919867445061359406072411834973041387116073490018509859330748728519110347935990187307243952166508476902030905585036726186121807441381939629054246481943001962284837782800027146017993862998897215780147630240535697653733280793949405531098392638617884689576990776972835089844623189017557035541240685744922429089498759429076491710780925670939148071939141660727875822998535834197102693721782177008428551531599871298699529972359259194589219324821981247683446017162154031882517656953978622939781082034729953276065551934866644169822163572990363355941657739574344390544200982682656748946364702795149965530036282171291329691537900989640423986151361389091438137827519102253446208187978424007657414879271630821119152149025085513462978360601973323276327238787521951178462302862787958680884047990288958080736986818817598426424719106788065505522034544600899454638590156635627750908142767515925605727161409737081157881061840711255239450254575280354950327671271617890225452497285913292222855558910064544302079438564430872019543425835389115986173180256719871401657571070338208736572911439156751350555940741554327927890571550398728562143542866219609422671375375871202946608622897379324662000899306460943979326403070936948178002027281047716320485983420170830691895849924132094745844042085775880597183462019489401708368048878898282133067107975053720505777052423830185411135130388918025076916655404421671264499471444164631379366851226210730446414021624407098446979866083644471478397287872042027547442292229618617852064789120598672893181407239294662772567379447071180887276994811057534097566629819403176418047923839440880105708928435437871991703843717627491650991403920499842413496681727484294177717534656759291256420896871095073883912563481602457845739725826514658095826253825889016995486025117232212628414442051893560010120542597782781860840970459908421011075246874905515821982465802991173601632568608863216096969438324566000548614755611756092296940245255914101318188511297001078083722543395535783406804187425194522490185214796117170500115458605466852968326993679354739043041286171845692051065472695766815818750692226273220882985272210682483378668066814399619037314452364089041094126267532184432524771901632675807985104152304875751826885303146053660153980623991969633518369259172698158649872524618454942529602389765262650643055764519417341180193990920150862725816279682829387278248269568980017772370538937728636909686700659811571756846007739107900100205146747197951894389696787489418006695245311997841252157347149901623289032845367559082188378070143500763283859854387508452528757157370803565495090285720526257786825813471907505314659350558045178921761980539297364237063800082067935467426437698481830396391644087534933898112801902914365437711604581683291885642606399648714839876976910049295825599367511024111724820047199679518363551701390912763997076262269435937397910494749544627821599227993940262368025830056200540525209447539836223112280757440450323699765092555520178907087936171814637745270448130288956820100302639747490165940406890112310233207716170032998092437129103639981152991340930146469901616197095300593511818873688477540785635592567980971971506513194710048746206999907973463255127330956611618899883257564741446982797247221697199376643156001337885384087276066542275303512883946789965033511334446519221370862471913309392381509395445908072113768760885449901875571882063523862683740165006860974323825955244853907268601560599822266141493775626552083261666635280430518918319667534147822025087906198671497315254257896596031854060200561224123195470579568150782795392719886586583171390906167487223427132169391753100359581744534227408918400118460924935973918010938189333975040382873743091243584682864106246931300488367176250682896992925316968794166443885392441930514241593108824550311751787704420353030311478784813427473145790090537652607001951653585752672595900131719902687923669249608431420426111776045684453158314434789269806606707632370199290828653255891905439282838237339601463390781601976258573010353726104261301132416502055724994993663466936751686646950244257175340763879923731973916841433277189454376562122996707048422911369524994641645092742722494035002804724979445062812587413678121377252767151237087147311080784212056543680179778772174651638142460511170594656237655333810567236931064887127389899690454960778419470581257701998662662169090350540748068143055063729671398902675068737837595655664925426829829928455979727528529987128339357542429363200960003427041382896127336585487661628224745722230874132393839811818505379750517378601476047967046679810120922952624177902496191402447980007774516583355232408246511124109157732195000144763050066379982719037592780032244436337520151831277888913669936204344054052678879226033247718134657043112472352976565963933668910633992272797093530694279274475618464128282099432515290234388090452501231708632067446588296381294220002237105193918428462175387478929353492043281479195276279679327212241190598561018955138187105653512241415463201922073314842355004613837178857308105785808020582672705571147025378618477277809317018841453820774727809522003752570260806875754847322502487515225726056893080319376117749674804153557965518990537311260318211951452029433799713081772300818976071989178925371992246440539183221447989992539413503252408900606629313526971401970993320038858420342731692384788007684341615987027631745016125182220207276115837197024267548895738791624558376958463897806803507474562867393684711403130065824075845207226585243451861984608402703509898510036804791076722822987195619224351596481524043744929761487535856596029396237741476418432818785419400016507571537235427254138077191820401123664603818471687433087951270488257861875213831127306355398450144879623284267742143145543863536194632592703312636236315594180689402075872038014923511079394928792731264059378085653890853758828328607706216749133650855660751900464370283594854809249448628420048972252025190568587835402274020984015230521903844822421904758075703023251712243956318671144629744447173422572367119629216504344040123282465545545254901704561210046087862329135683765479554371532388589350396501685495185466302703050153243388529747129102361211004643715536151475970420219600173420952931004670929494691190472058441906884233675089687248977740231928297625843164135969113618889765045561214823109882219658770315530516954092611088947536619336508872980796009115437222375119582951015860650584122921486191362365995972049550005693667531676400480608420716135648294595251076563434651907987024205068986657115835842000283770571787551249877237358153233059852405892396849043720383767940350833184676218095431865877842585542599630731284982930162120650291627615317306926223652915948083843403086176242772690531285126191078160041161390725875610149527330556624661049936633784600559431494500673603419138828847991794060982323954941005756542254813623654159322672175310626183268791856374569127481359076978800495275517027148158408573923256385174751742945632778656651992048183273012071014725298231910749313690584989997980528675034859886268412200169439467568731346760396899192133562758600899091489964123076185290473541612376250647262307996483457537277984958036483007696725746087174253934124252457608381904154290406986746829047872182555738127999842333378097611380325649395197713528102237109634033859277549413108100799331431831228111261718938842276752940365264280437680066548088874763177377841524900030300226025511776946882787169591940715142689556158067708223079070506542598170630667754377445005989554498854013733824583434737806086824431076697432425102590833277283677314067233686908387731556175944945423457893360519512091055398163576801274800446302805609116821966746936559332655522548583305132388705206010695042482985549164015304175896335307940947065520449183990241888777819458920394296000843626627089857142458968960404825797849922488998432377187801870916679592960581345997841725526279917679271566178169956804641790314874437252736295165927207511604994532380780371220166951156864543306181256106377863735966198633115402006920557967676507575771619890226552707098154580619259798758082225997959753871972805009283427809620223122046309598894901186224234426944665465377322269485172118679119526507450186115847919994506649684689617458655141687362715771549519042058665019624506952019423403444026704872729429987094409779339381988521314277396174454662088930819325835854173201327201299780404734553320794920589549952011226778705721177302640102581054238429339078656498587584038907516812491607059162123497169573498565231131926906076356137923232265155886262427858305173313256577306218114987159592150334305101310004060869787901232533116453176200880321094916161862707345232704539532161194689791620280490703246770907590155982050620854729431190687154932030824283148988497857724070996899041826508888580979115001077993983558964988528870416924856039165823304233762772360761422906400246691511785080512837079953010919393708620594175243430749433783099803079501507938555148471670387855708813208436782064205752622230172284137875719484594165246231375688612310502980068248648738155212129297331806659723058159389852989001638610028280576068554124595962530498072330230953996248741195086813612233429881779580378955215580127331287410079240439196158951047785121875035056506094149077570113527207929158732147507135500594899908231720662334171863880903413475387673546534345719564586143759691459085573458528184079423631730653670830797866273577674840046412899020527392203384625049528368055448696560502848498280547855955896285061130313049292853721803358475378086843368856734285371394233188603127795689396623608991904924072489545226885196003277158289152754891670675352390446690271464489413156903703344179618778543743818486388784260161368638781256185710721321436319275444709831580893817974849639935892126150293598484634206917338293631895982120957673764399399437043689545877742479622708512236919876393397688259759068711660738493172475178866716703781097746227776069764009910732648313782210237734706292699823752922709494988182404971969139589763118485333641848194868367292533054028847004993654816842345594723108918528704453125497438183979371252505195569504439524430333736362693385136037273582539935830113236793743754408457059635503467298976262395910555350612361438182550260875969141893144072699249407305762475449404089582631157496156792331231138664284569287892040964153048172025666121596613945663778919589761113396491851464850365870086430656903843150777652073401998168107749919744373512942750878114092767368701577093768738195943970119750928995906159712105182824323607031129332788040799112381303703654791938559360142189391910553842131774867753978232234043137570873366951271656626605385773329725994493322450866668423992183927685091965890487752434968565826257841858683528297130339558345782643514821677713331660002751670906970172272372332134544948886994325584098295290321780222244858211228279199250798885991456809918876060058435996509489076056293268288173085799907113677296052142597854973944651620899346564308877002713907593307246967764617085659614605957814305654184797681906401704531225100590284237238029589168676392759812860898803833196107455969860549119641579100199322974004480859096093963701796693061014626439307900630385471080652316729387494557375241888844204572018713989801050884501764418813804230216257605313167648210617775151894567370091803721936489429143866064400555672377186067651256032360479584186377012832702717193587836940204727320538336938013211870599691847230236443254157694589419444861259209720912690134792232879181753654237434496908908001190910113260802681271525135870249832707951604942957449388585499089568096610855331202086757471089330614908849084317817304220061406110293008909677054760225567597124850428744517064474443094847223989297772565835617730055119242482647739688690743313007998492236472125738165003026507602341602697996064189134818901133673755831339843706153405315455632571279335400425045126327278374684151313423625935995307879699255191945647080589128606735303623614361393248854551561968821230485653363416248712483570814379342694085442949208091925174102379027741644741460058244014718212759532922939929769916556851340009417935044441891092219495850278492081924356324833316666263154378573062643756630824509400634267074973422132960147230658007078012613516978155139294779850334712448321628386360983712934101975479182895162177452506623731228247589222460297398700137312948814808528619869804244288938028394420326078500661734648319705717689035931180204309470080981755032545290866429206319841427289514119227802798614843171237067790728245921702939442224476180299859742572551595718802091275528952755711185955428695838675971262161332678500311655163199327379422491558440242359410012808416528914731049272513784552909590615701635287440546698327888552731013318181219793760727324425286754461004338703299307955853651005343204794404671987874447223831828841569384680052883727693490560420262575728954478631627963866753838242830495706162791568684515596250668313852205730482311806217450536321764541188771913079793901724392632261790715931136977671474961491244347093970773834662044660886072070530549158244237706585497032777773627512957280644844449317660790004287836250851237745588104933962384364932719761822935951407435243708099689665202686893518531869420652535788501734932181354321248437168013956711826400499227749145663004087518560543261486543129588266741560144006016880174180733624101971638863893791913834576778951816452888947394819923657400795053392020587206485625031472785766692878263246092585959457912608329710897856057607031956228368415824634986327954012965236338469605248099331802285093494012849558126840140541164280893213407222992159682410147474773033521380573057215807722312077371614469757930819335720335764591823243304717777269720802081475775418353407030240975217910365297996401295760226100890799773268849073982151409665063129120771255206666753552390957435151407068126623194464258043686479875060559633110362613176454847394214840215360433403190677587651959709440734989041980682099657399296966012611966733146811505166948522126536602014956837270273211091797938154958154395008850208654645253957409310596767281795103116870592214367719598440227257850248321439206467182265562790901523163738633526688166132262843129742900200880536256929198448942930857044521152356746758043692545853204185413469363577580847144311305986591214002397200669148243556486951012694678497697389213178425465553372108240422007798413936310047538369379543146553687692718364179099385027861770031879782259617452786671479391038894118482852273856992154894665043751896475192222222082486687372644480184999111123463944816990305989716828621943787134849585314294434812833161593673542869444966985271098763920392644654114354080154479011809400344042116311983597609360055845564116813882132619387229094927080895880968394532762442014973560699849726365116916370292798049498915939723388098701831947996342077611870558480849922654885242199374058351582663112058824406143909539993802931397197905907611326745514139323306431867438194658648264459670739756167661572658968936297626445430000992672282394345598320242619061270043894142741691160678426435486492717698694406166533808386188057151097975959982449295063153694095554396142335689518007650433106311509585983442371675461704720565715345294366768810013861918647551827910749350745592358167935743481215750291245384343075010995454919511027808637590904844010838470675172338973484462113434318098907054245553753221772870353412575942152737419789798931901403003154879564203807047832685374665106085338809082073917354369392343604708394852437296779420239551725892108157332843758634637934526162594065986193556315315552898867209711217341423371766481688435571275128517947615938189520204989060558473461429384989531667404747535594182627178929674905514890813480537191430061656713675890361149306914119355940957213874113166647407229435843791169857482505889309256832185374589987501259822719742559418102611731053757240483242947170348657451264810909817178040486710910587879382059888482411710992528303662826768143734839394705961678601894284087746794121168695609083199573176926071945201610455559245912750642539333054333131967194339826768919437421206581610943145571558554952409296417290758795328845701226430041467263707621521090814814447209270561976934780349983336201250211521138273494348407058222643756558713874149449814005204079859535844963396414099761827861734767705166671735061230403350198978193782584248225103792570455716714206477295970163518476845105436945953604759516183457264450116418850374680199712699802924602313592298799154926688248331471062202252282564855378153907727701936224134631548721694924654580896649254106524355855883443396696242228530992662668303773338105942015569400486273451406642593382577688308101580362886315695834882771505450081300861477025947211333450560921693471672131757574238864040421280586276713963145108915816203216848008390945389400602483369034719768905359849070867158664275292988141341546132513946945281160178086168628908632008805627815694188883928690665394279133350905500416030591689498733529224438654483978835946912887234944581783175786178370968843704926693373145102994006059060213135553660528706483155100456303041296480846755108070369336560741430827718910147203914406139405891111954605601976021215874220297456531608066151213522599855892788019183755346596794832600614241565364382751405557728406242740271234968452341772310426474942467345677399161770037719383419120505388979315155138331451125424373570492666529508166815538018159211791577922630943563066267465590098277968180238567290582860469857780018128359141818956739597129266467480186701622248051373103654893943607386648496322234450538291111481921397052754360316307567759959378384772618821176887069290262837352630920915556179058004853342516048047508743611205888995590971150584395517977221857641548855707172304103235607704535182853752660622882314160698349593921119268117670092836694808966625378844160710434852103665504989881689685015262445356946192678478584665210294481776651509834891434818095742849387887634570633895971499486022889602272626778044436846454291162056974928952053303889415029297112702874938887291816197034004651011995686772716742731751432820834798722434105682562683795781978898085954513715680798702078696178112117752328455160400589793381838536529012855094942289328900570129412359598803026318211114858099586789109115513794523580714603679445350989000580607638146443633169496195615179071873974266503989910255846445237150226289581659077791261709208613018285392263423130393293240797531777101209502044519685130249195956478160137081842535573525614557378192952486355557260286239423471725747110735141079350149330730413150691604961623261437726994436799949257065379718591200757962044160278277627931705964025743907118071698131004103447539403096043707716836197604712885074968111129197370556502184053479402087204915165561984563440724096504132907853022536471677274024157295277725160061892293834537202169447251342368978038179321802123852344191556197200630021743075198697357757930876738678226329768805155223426553285022202363796170805357965603497156473771363560732969392150341228924291163878311817368712445938908143551832585403935994366078208273290594567205429096313328462422490913352581586984888166742934068410227034953312042219144864891223835132937778062492866205294623443136292226829865517738761457126657002583507568310650126202028016718011336063791274505175089899001101965573912042416211904510252371351379180874220119609815864682124641552988391556132833356586214472174702494901844878331944197588621420112830297097186103016617056302495453037098899514887933114538509922149133038066723255560563955246889036391887288667120911783323127394580821235445699419648912318202523566836810994939344680910434137262606234916008900991866564011777342539498439815045703672999417336103024817948582683715542675397966378077186919438446854855052026531963017011879187896509782362372213627788177458638303054039334824509018372246006424220079627793951345514782557022737318217861992484647810778534414505269463803298961154773375880525144015940671862832222560771348482475702707716328139567442926351024114763933031751671829388748038210336484979795552755281142284190600243993603800182367121669661197834320993923458346195197916663660688510379942165559402651212205745306597991885603742970345837836011231424668879504387711592692189231716295850262417611600845139611027257246191433451570447344321418075071408616203054975412071135872202460133175435714325601869930381562109893156935558910135019617840496122827612964520077676534591734804728598840083324152568559791101047217953287525978232587248602823420809890829249145572310528095842484790557991467408799780764931561785080753211979708706534917512317050814756487115574280938322759732927906867153426903859464181593848837992526991138584239368004433674835916210669035638559823637811600075882686063693704494016300886719315458466943545248988228525586083266254853542847333033937833199808857993656407106923012356178313281301389866834806303343660769346972011572705523769094100696853662123917783282548317830368920635934143923104816013088884498772530051442779666065974272055067789437701171024833133122117995475093591234774182671640731314483474071183636046654843217191771954744096588080812166874810292197868756551777799303274943389144517131662776528179942042236372104866489743150126873692217298402333974734528193904670965814370102751436377928204889207100355131014114220480565934192427891563694001259932478150143928162190263597177414516018863341168256130091987478722888044003374281209125442769019541366425550814247343324253733970287354354999887654590943934351542443270755275593432484567330343680992288998348396981644789145381885766187543746153999146969604282349144550290704813646288687993320967192377380411308067427021302341859515430242521742937607715753846427712169177475166155263232263820692310902715104816971591435663699468222784937661028729492123384444015625329303485689329195513241964597907824725623977517094082815253210943641266842306184118989952177295121636114322478530796384100484581892801509630556857249680333906107176903348956152625623786669170124425365688831642211602071142384011265169162022828786555486177590224082326403927396978702888362928665692688301635501984556286463980368328037242027641770068575345515728228518406595326063315180922856489075655624816974156766199742926397427769524026287605099095772640188032786445880357486803266771535040251341333756510433646450801651829512024242067391925757448573954711523264210839624575059150893497955001327436788790791895862034398696302792001347893396353936917230661293719773055414143236472123079054698304675448385045852274735338098891376105189051546504606262385850531363597617557681635001758271003407866467949547962915073889542742982045498285189196676157774356255123341563234053606400902668338745816094875046612129690085158496975231597723689680639070489283791185070798020693423902407136645219239265372057520734242726518502147793822308138967392277444541444276940226427661993749831603294239200719068693806694758203652119197939027055275200013038439006609471851666435741412369082421459233014070964568004322980530838589073021924818507073121306002786446693242358508191980936247889254328292262964070187034276150609994633340719882915319979152033161265346412446169985790908229673521505599207346251933577433323336456537780785295047778703468689723463964328602815974165702855346307419735237695238670317882228849445305883490330905674419423158676057830566094234783552542770878554814884472975217575321733591584360188293713049807507752172216849827628669961869131617465999778348099333959892444305920509020646322476610008617029275119481473655537054150854337888241681912945812115347430491676024458147481756593909600537997119655624808990212201570709135814065443907953262624544176806905600662345896150539844835221615746209835864576099919005655091181468211642595909739333582889093129934081752706451860405927948346734558694429721215642503928087883289114951643179417615608886835585412203121396422396183045270681764391774623617208141290293121467586407782965373592905729703289108030384138266748835602259083383522211822946875687493129860137195561890754522254079322728841162954207792960774770683700437160435557331787637234652204728965295734876353927325481030965853860451282282776616186295543224137016732016483931530727315592467557987515344597003615708093836531055684442244061963049390392399163604813845213387994599189394399992047531249156898067183896365483344007966417975619122948542520886932144669751735442152171839282604424850494804016088719199845210690561756253892037489215200460398857262148630409772207590072771536614258646799707380134228137060015811598347500910197252838202562049978091934107845505421332988177144641893027629513568683393720687581733952167010683029509809431333103861182231532975959092958143631149020182193101739639125040597989115012636287312053872669517202352472229720971940460348305019236764665135671621128836071241629060500216824740291657163297755780698771449216661583206604349598563482975573245328539763888862305214700060293548522538045567295416871825357229573516004457594474934799620817912846474122257681990621861699704351763474919163227607320261776448769693686789848897180613054935350909173076620804453931478546926540236751005381423343187856841433754838123776036401193161248782464270845455212018045197366867910458020286969642925520168045344459629920656084508267057114823200057166153677219586351257502215152586451255726435663231240187528857651110791166790030488645974961334233060319471326196554780350917375331679674734644013535214287173273866754648441250877219939903957089493957435922412756096267695422699193387778059089191173663150762980909841751599742634824472559033044499325408523067543260090562391656407085437997939670476791804457468970725049087919823420899158871444875324070996917962969134042928112690813033456450618613241576189655537486269959656655673840116117696319700194617701685575136475988047933410971124209844333297739837821612920439905202455333822633907321887862413688618174211598347597224071770473109657057909241315227285161709266425769813759658096624079381273359916823750701044289297207305792179806662353208711530549023601678210485052079925771954950873544328583573130464152216072291327957787519920410942633921503708141977997813571680278856856442545285199540109924158771217204047768483278463777400316383515437679054315654169091347290317143374857988271922817442790806125533427213163956209963854609850264082518925270083695504597703732019496019668031547453634801141871260202969630088079933816383525405415684226716536215705688835568598985004505121204661076683770135306840665454478512954089579676627671967990097556350262858982159591607629726920535753124320664646595473962656764160332128078703382239501713964959765696227720202693528039959069333234688700311447665882579179530497173215016932366156250044994687278457767360114145700757895823607158212023513265733375091163522169770035199811366770909768153579518249573156222736523410932685221032459225847997537141314835210755410076257699508894865732438382658044066958334828215395441201331184703676432784016867075162116086682099932792039319519959346047415243269677586747279262085492067701538200104413582804102938853266759607485877725353677256432823899474628063517566474048303208645081788860144680587850408889770766308389173275397623892354804244312140230468225380841003033661166723378767052920527114851889761822263635918130530413966584917110429837015946825158117210807214861144383401277819277366572716582475025160564438941378812277497961149151104406496122760879958856267544727793908492751326316750962184712248869188272397509169130027820793447018406348864479983545144690306892399197200161507619305916483905248941639269710929514841133225967943101244198684063367155768676722114333167349112710031289242769865997911210789624770675253999547822992108947137437933591582938742363941781522706796243817699719652000438092555415581980276848696933382737386263534469952617787788373176923170079210368159250603908321148072688387438175452291080137748389891931391182273093000358767065936494868565061854528828824755558455503136398996913414289202501894763789648499022303375584796963451998882156773619933983592487192304487815092933311947200334290952194583606601667912297472858517049699115395910490489332550201607212432636750312457888914716724696673072930375685215477922484665809187128238092492896362662136859821646756739008860976646629927189232362564759911038013404053391224105266345628447910627981907337917365594047632528811801833583672384487199400562070075411716517932943898010897190576333654660498446326545521382604392350866456736613701296437910667814364182497806258546625364219284609800262382906206041446421037862411325183875114414548387401764463648817867651620047036635930790610406897034609197358554239131753930874075533240012048944091755622372810881865483830710207034810547762433486599000682161600972143471621292794247941562305719278257581835068436556715244431883831731642347181903197118788014685730380358037738089119092200223006887210849042092810355682089933162967917683086945147148683058757066430645395937128670273155623326182727469268463646601996918170473722360765467249051049675450881845279144943647970707342590156390013390950114512991928145920651865980320846866481898207898854530837664818529278756513383038053145066559210630291831791897009057172635828346475776849388640347374133953637106486647522313367753516310923655284688533054326574563819979795520743449954163528859987774735903297191426250872689088298299679895948146672919702488824020919722122463320882133795451113936421771424261265300676831064333141726545691253682302574961484284701435408508494127606288632505689581546866768823505792358663575279700130110365963721103512016743665632680104520287022787575054115134542186016502987579145564673368527030603336253874167743201677780271456926875064988524893500365000874813461623464914491009027519043754480644291802024081440246043079625875093244755260296022110909383169056333658462094755343782324778099095478626470525939953937541385962235903794804903398036981723338251130576854292167072012985240365380801611290306539238530724315105952334090335740046579474289672786896526991347222551216166832186233813997313984729293009334126105945699261830458648882604800216852024068091674942675563945366524360848268660616488984158043956597560267028644520190020936621835263059936701188285506556033245754149608134501585304912562499647809669231962915248792076373690037527141678106937444101834311413201941409162663425952343237758350629210525902338585969883924639148063230054194985190432286037798931360810444217576499996248674449427365989847396192294328057297869261356352527537304157104928373644859062957161275121413787138627040853612012903917820144567535942801446607508981148650238885174246759507472638949034158701633906682806464992308494529965930162518254316484216746237334472945570421905417768429159442820738756535369552520664087144995007635186491460027720986570184765406327919603957181976093937769970117011494584680798055849331036074139345037869793157662265712586814633068559970568631583784758836291424888205446577835372687832580712824974449968245630764103625531923470868631472172534504789284752492906419003500214039068689246022610844752182009309220294831997528108529020026226197810775667806674047460167405989505684674656500898839559567545779223535583866277167447068034456212228219253201164757745869203130637092882286188101071221101188793367741615827735843160910179570746013920605227103266666553313423142474293227185661054625305585186287702412796195881318923129181015888358738628871782871252994571416518896975308144217445773846462125785551151463752278731615128356187120358444218189981686718996559797387713272256324186294032159835409164670768968872297251792591254888645270095296944635570820949403364180855858793529799061031342405317484244637434537359308201094683986610080262358866818229490793209841351912292113398677113218377626749005092349838533772561034494224651271869866690021377498836457233443842094360462737890031614593787374021507405121461488777333936174840648878634501192024294327301714182495594812252786051979441166353770923849829065015326070646505061246923182980385360099719628927034359813860579165181256596570994250717790824389532125240421724152164168438734918311783566655214310177152562783558524004597386701462563210945456365714753663173963632126919145540019794688230015806799561910677086735733834089280684710129822930682159510305072630266767914444761453458956271867644896440239135662649931390683366480590008262519669594623038076185221490717778732233532461161882693935848332604733884012277845210622114286673302899997734017352892040879244086461710355030609320038753830801164348936393351278155710286687693122003461151922600226298263865244866954696700746246245946665969868220740155916771101519136056640353787449267925644413102085803523376334064115859187597169800355627619702132401601196477695487666613618165009207750260704885443331939381773008119187273222140730427434197419247081373236291482658851863675149682328351377984458127750336490400792260491283802944614377807861666274872774914029158906732437563769768593331912322394692708571340825358816927363456150944033516328046208435154491637434978525491014843408146700957540322763288967669234927991040199909393689502185048029459835469359982277663220859303872873658091348295624312540223681388693697375957899134748984832814289917216575213434246700448221823583327234850147925190335504010438396531623220570028558615577316541928053648152583670341677062907408757961784404927766465240406931272460096025224570238114598045550289041398137868737533975205308922000061991905842405863557702817772787971266833396099723536360742899374630198427176083345705021339801122125483585200507040109226570270711103453519771896837031398112042071220429548197957485035953010110842018249153922052081727125849645450564983594706141614905380559449516300440355090263855247209291841305474514998573677039579551277200829089646468817779907340545038352184224798159864760655793308015520480655335399493569543191246795136693438712014052616318370998729324674358911376400416680735921920567473470720904926208403564783436779022254445491187551858045891173292237246969279727620913254391056886220929619613743526984319970221892409619147656733896169138717571371810429350769509171847537641093555067808580077211144012105377246857268898931726933198550579034557415868191484232305033498947179985007495591594584858481398188947833761385544295126248616519857010732068019095477767611720695242860886831214282649874509752270672411163789567801272379737340851817733360460551482999821678550173225235539672828040881888079746295497634689713118172676770455705046634664956090928154946193872144723226628790255457519165083189444296564105315126251039081678408404644606408912833352543058154502945734741718976984272950247845602831860314189865437652058203435200994627388842435795147339033147656855932853176543816830101406777272798559264922996404589839821956031458856277153460911394755353456047076908043628587317857049419951596646868997932977309033851032750610388370355480777097719092090871951251798985655987313391868197356872538584121269211266232160087960143768964453383378738196676951150598804524341390598640315892871583671808320316210980048821140333268622637318667452072855112595073586744320296055393998556736837683167609588845302363635003624594217642365526661601667121896085393091672659425795153198086574019335775388095195660523191442586167232279864161088012730311452750929693127099583353340443611479388589760329248470412118333870807810687470125888511299797114649466433003265108651800182157670631266204311102330555476290727742405515021016883140219953096128147513162371537409011352786916175055572550452784234998837576067475038548335179163491324930719300276294403087331479344061678193700489024755074506822383683083474421960496760863482738556816653806391112506511478391757720928870350887701464910388743278733149474246896649211071471825433302754932221317409780315100114963983208437838767775053038276613992735064357393787703932943002958953551603911157364920599854416704122431189142799669535877863854766847237017789677042775176898514236085243491424138760769664890844293483292309905207911932681556086981971356862061321231142225357579253655493696958379296733863576139888808505273031376274942548509753917313044363500304271571337121069608901638375653505392958549435685549132633452907659559695524103227942583815075401203277274509686424791834813142823760513633876606734005393287888096735256573968453937200058993158410858763310021766652191024351057034537705162258880324540022438551137145000042488536649911203185148941679773342278940063192905290144426134634301001990391011241401234382614272172178530445889274187129544428369158958810611498623483619771075063249457393837470743774460547344306530606106653073213571586491527553566491023218901870117343225667906699247573436167449012412294614046948849765740726392800073297046665631978753244080764254656937327334531168596193665491517578694539454562822943294860102558290312063874683752145267591760888706478727128424110967262469869682452554546943283780822363661158854005815266615319172718168179327613402904556564806935733601672220111219211850340881793845814201346390770236771631871388449607971635554155223645248534872989601557464483678175978082867098593184911609906926374986799553842065702916770479270062102591833072313148498923263214739210875783386644099083083553710676559827626467639903420457575888256243682893743221470177666404919504584246937098226855917433274800841007462048638311895536616137560238853637927474854794406466963490856711699739070202102494678525250592914475700825991294582038462367453077972435424525998246303739851588365577143427232272881363212828461777510856567257071567386529420593836222645534348291197908313590952435373490766365038291736112103451354052393994524959348197708824706526262951727040411792085991101861489019872753537403758786448753932363934719728105136623078052177361440941246795384319587951129047738104779952591410687503013169135389247039010972220320274613448811308242472470493052803617595439052012250030550440790328292207875165982705418175639367143292720255697130330394057273747572100469706725832149939572402737138881292117995022913236470308527092108859503533225214018195147744951600048468934219277353813135983625760818529659261224203498897371164212953261227148281793596940161958901325479752366368336813481241592542952878183200803978297632081604328001839892612249326595450790045780572646517216129369774057486052889172720376497740100408367272006953475884597126530913964737101273271444028166800401214868863878552316105602468062766859217228950904287930167791857982129916448371875108738182850928022805357464023563449155907218733312416417080582038754981135484505326531266520776928170679785068241397077806021328733976914562651432090597822031519753632821189170807032025026632408386638322480942876964860018139937901385170500721985735815009367631116158552003056844640593845949624210891415606711077710133602887918966141020603084454789410608849660927039747044768651187491048219869273247624198042679166853888119125596301103925842799054831250593868949420198232836068644603793025199413057976742988462838460640204051256506643859408783934528051237912801672989996765931694549199307898420670076520514481193244877927332342403347076560076921116839376876034337275758798496561313035251790709152336606308447330521995260501670129020335517386179445723107185058278241314557231075651623076460660128905375700187543014700990781333991572764022817747916290310704792500709226200294948008856793353303393759501825999430927630708152358811464809532424325234291741105740129615007373228465962110727735104875649444818424887013594418823075239689050448698761342268055098498177445629276842662872708226121972316691280044305117915125133035084359409004764245976193517317909123814911148511215420780207533212614910969738169993048565927561738488123101059840821534148215933755879473619712457770548182353134795377727381202768572738102173583399240425099569581209236908443194911229683660658936880216199231184793555047435470938799662911846649446277977603060259728633722307655952894570525627927722530273791036045682351439030713599846371270877110023486868174449985114985972659849714788695080642060046035053673883033524454084765034223616023743185838608147213052335525976761537957597327919645750382735741901299619245770218850952196802084409607638427883670765052807670965788273931376406651759237226113067981097961997700893043098144769575180497930375016571026534361412924622245786330543406849362349615888287114327945811012424665301168276145376553803307273863092027559215665322561889202457921999082488379649804439176368425093402983028518568834305953693219850541823540731331468716298803409400777279113416033942509575181486553243704115300512659334530086930071047998797501684410845048383501044041813944766887825749832251547277402329891660488965408420947930924658362137051495478452123958952563216600573729439105700706362659693306272721053473868944661780806600458672266620127970334656393804858055348789982404406742710667875034955355625109545900785526959189660633342827759860429338797688376136677607230396776084504666610007186434135863108430652016453661713359765392984525897060687335254305145337778827492087075911479722589625946047019720282395603710791908208422616681831526880230253261484320133923862751444992916110528365944254310812042595118544865814296189573644399242113750524604551477343615021246558690871450927959458985667802950509278782760230320621633771095240320425752358427651867721178474736826179073327189114633784470125268888950343264691762650174075125041452440278105693561847039193288143283016228755187583411249652798459764737633635384261608306951639013723092779639332881372008999313835037692529393645645357083820879401564585677785207056885484963823947370659548701410753425783572909451892344761282832553356110644950580900740418383383338202904705811802008655116234544491087887924547599307647606494383145186979127482203368684947403081586865537441936904459502866586376301148730222456833779257757856585064634726697271387905277857869896980002316956294847798890058455814920809099412159664683440710634929439690821243420470295119990751582905181765461903828514281377356492088440797701264102697377419139455881247219523997924772328972486964591936434399741647949896949144883294545156495511191477978807368789134107375809915158849901305234030892387569191073586318658533627909306554733851900050445104121748091516757456127596571946532740356819106620691224533210305952184202572135973024331796450572758459069270666629939048711317991329730197105778525579665988348518198782684063392716882056830760037501129873395279496745858032772329426262527912643241497308208657666989169682037782474064545678448090053452887071100659552157731488258897157345002769258546825341729427828917559664203033731390416290392637184999382940731240569754136667215530351616171796593721761275407908790751812114737691489328304641865731743054607617596188152961991052774826221427659076447309808750274854080563373073855843889944315894643353489543535255742846693312071158934368390130286236580357242260084878543617653176794698153291529712383842616915783626308068260293487299756856485725775805733692832500223316837156526416266555035002231285097168335435386112412933647904061191152345782238774325087180488938598553382308623857247156877585093096095164862784572227107235512006364965628813037918727950618779450508844880556569031094186667454675251188303254664728482325759440223607170730609133862707124380767772408828306076617993002330738058062092058047915210447167834649762372986338482787956327576467720909411622039793770527973501741319035771936539987191197844242989645631820884741155867837899179466897199859975835120873346653196019189278982834227417632200020961537092887236891161367824688386274591961807765920345643288613234173770826791637617719557816338134327771894999081057209784337764737841632161834304130644941061250827406416196986297439455409109180641680112099565281347591427728947629736537110099794135736339145509279550391319265590189315089859809540094492877262322934363213284011501705762014989874186717505991649702080935625702954292366268510985976260093440631755161112833258290868450402532757518099187787282641335479325910385275177651058490036526974989687934467062759494876740989475696198354129038843772660043350050898450455327413916518107370519232764216809129619642751521162029861962843444204063434495308685804491721818811492770404848119654768137273759789329259332535474805200335267820939189148560591242170349135658683469717926125526314970614030397581975885618353748537975109803790645057536860747507114918929012669383996232707702625687348212657175778669801705033119474446079641725036018265986920177277022692113197564899449023673029791345811645893556140743427722784956213316099037777556898444898491215577107223208039999322951425290885498158633147605588865001960133149959763907151608269645303322048299796445818218751683698073489067551244246176303445411818550096324507500749247587966136764184516804549465409650786557180965721375320799355592595484928758111822505901814000480354715463279697312896620567052793831892771750373645891082872846128271102124319132498066355369239772481773744501380431272548832890479003182933832901499055956975756431873043285136435058875485702674693439436555131726179517824588613250880486331035576753191398000975022793983867468805827276938375155744560245385055477472628010895125815376752641907684149414803270881910313783763532321126321552488475859363116820397304086765794764470122677765484269547065925371246486988181502993481857088622102106968730156061065943529971405881072899757167986661659903230129262879802270905993672914451628013984085541576058449281491454740384965367004231921632677458382790841825632385872119173511462305546376523227912762600864542292953058177977642445566308882307563861933776493296531499640040712672313147870377995990330665449194291608139811081856407183645092573547741686913304490289109590756395307281221220807485434627442446836208765218523716002910455015144928931921252583204076163933513252123306841306454745967906696219681231665120693941437813374432680833439504890523574910955070873312782416639709673996494489686129753400820724310364879770185813122986145471880115041201259558205286402503001862150275568657992151812697139626850502033679333731435723913497649745257772827347362111978746872774658573860380246010323790331713842980667963128128402801646580080726468146051016022879578873388214489012111912352863010084054375210673416342853859324152008734861690895767274541682320084141751777784800418348456094209018503554000550493180958486493199869607231795469877223754994855076368417490367998673719147779418911736916989777639135492433124874852084033973585742639791640799835182489164489872279605239422646026014402241100753358260249429226426376744452382063324254589297275755002708333507924291320631129900410876369911967382942492549511542206730531875403206675891015693362444928619567736395023755851688537370889055736156172935631951491727858720221413850351103656844401511764495309102746381472376604697193210046806318587522341346532985606824952818561971239643418469147141951476978225807034618117059021425481288496888904791552762631912951760564441911163219821161547438215483291758123350096319008193038539879568286044485126140572199120377932168231333566524143336623393016749896607537749402175057478323045980180816482039497882876189656974411190580783024812858226529797213688557466248397460515008944320199712365375624508177729755501121675849693429922269668698269981078581627687958218721073901504603613136671432097927620420070158337396436729823083396734760129218549504237167959468409616083875354836523129047508045696344736526073955374726739883314254272551477412964956947643730490221719374198709822997149275637944863655729631769236961211292368400444613049561967739862952233143911820116237916902217002636460601016323410023594704081247254887662630550350256965627809517638550212574656994246886739073994389671904233818181876453101822126213337445768529583296662837859782316402526888590450287929735340820459807461013914661470037125842377300957493041855412324132457123775279771205754227117881534267262499109682842762941403375897248000306327868485148840924604573639387291478796498033505552869828342243468993174856662675393238340512519761283768059239994395275296201805186015145129715106704567886434438056612121960579557131132711962789175319419092061057628884819659180046804947654441496540035281363431424930047247754927006989378968146685965766734276893647317397297127500590833221238975640285172984460359525762671768770558142198116258523884211074011017283213197589940522794016615161491409406502856334795329505797253645719660462422042185948313366283638244746827499044243231519435448030067653625715658003219258226019703525103515751385105214634313948880018292126723480557387764002465980594957481095031192386379062939328242803031109721025511089241598838324538351998104602115929303649095315260626357026476393990101619786789214829913493632221893819254402251509716226961395203749402933416033954206186403608174074937227177250197136258163040566531921273978450861941737382265334920114345805849979196217393616236894360781270574128329660443864531611027407599912509584750527418737174134947107926592584951462053006787891311327847263081918437155920744751831617352059852022196904274322920263816119468463559883993647792803586622662311874795794957212056227269090458513788901117575748285898758042028713713349581127890279913391191262880053351753958425413114662748787010082118861014497510829134298526126262876031211643521813094822670450110727104131603180693144100486347044330974199426347023306653600762223474897032772901968114097992175338042234319507559981472124140728639677180433897616034433108223061434657281984266993949143078158911170636469413539514432462572693163206711098587760653177695111220043483625501010418820295028600690926467501561745153137221923557788718310133200542546452073939793231700008185729286501367468007214510654315286921015333477445376897828141390903105854700597077487138184519770073781517874689942670029617710530469403774967390587515077762218114907216120478704025739895643826234222055759732086354288229962795747223698066997937004154376522475791645019485067083604885796538803771647590549799928060267814097090822065131160232596053473319266712130271577224743543024456705615438231749328937117983184200894591951301342456063059525134560110860364537862897764998929307531784935619434724085631183474923580873181474735116132133096763116914569688973915283657630673278339194465754524975107391141789721210956292208798707915359803550902261706159290789958946706736808622744687563037649725067235938425674732087799292252931954895021531987195785921934035325468649830433752028810193434998153999111250556773097721478738166869954404114611791094920207391467326041980633896680842076393612849879925984560697413563222207529933819176950479683384355200701601432715820460402651317277511052374094193634037099189555209350794989284798814617041886157649348377629298729559480338546264538451008379474208473541495631045728122126773639669150291357582494713846971780524202088334813192694031706497043123328650794251772009823013457548651095695272200022581318875963966910988344408996691674537494542724993802684410409758907941443377995165161380660893233945617762281640914257738975173376541728927947223712216565084888936026818771214267330407735994175935231774870789845521031540873863502913687903838594534233901459596593843050902177360653589713484834194632572536522013873685037624013127805788245303887946481725851951704287776769493737934031343549143405857878841307765757548127487873225265691939692846058593073348042848977274182096785399425407018648375059927769217394385707791789179486025169822520329513775260005233554054034285976678354067913156484268059542857226363370233608414074235071161721205588532015448933239421445847453433734037379969724704920543954923224278642310538742035839877172051946476680364828992878005467166836725890060959935172094918997711822114471577301026164768154015283608267185171912925114088276204809153788151066850951629722392800461795489179561365201006896070558801419532293116592975571096083221714976812180614965474795712441446920836494489662618623287595761720408843161802430016382195954757766407089999736482815231720762609673900205522636024976584551952485848282231383619337377863278033543567241710416835513333011044208895970064268261803780449398176060301800191036678576640840948913343880118595488305413037549266280376180481981732178334094568040643411474011607570989329126154630983046047875313359261125899465482482869080877737207700499275351327127025598765202761573529060050882460498061214945156337803888687540842808922934317735857437284461478190163978388491859483374513923749150706640492663796345809093624198553421587694692146725758988032749352832203436608897566971825713336272552190683685451966324139118029035051884369311413706629201572664048832907698462399541660549482736469410590920949187296556102644394782243489262064695182956142140792216524115803506171195304840096640389518051263666926265912204388413699051906881478221597071566730677582307158290942236310487778025865975875559758276057104909777953054229643421376217614588861751658572576490361362433704158798637568227758171513731684923687435725140733192545041088684085571006434601743994548618107149909292931370440255880944034915104118552749451231614940479546069343405277524519038104483662750892632727208703973630553046414625111859819550164553908576292129588756575197987710801902302722589212999573324701494535698428997006999119144420622507681693811469940077217410570011591404299508732528259686644491747774831347296798692001991910333706280184256208497618467944769789350099052847596273278472283386907099170869263070906727555604170089040967249039158619326981296356689966770552703021935177394503698004838093109338715068853248001422505960869892552815621966907383579981016988930380896904192414247446328033173887800449308576045330359508779107957225559888318967034993352903386737152721620494400718724358884985330228814325234637151867614188837588949440199454562280332491746656793722277740568092129442457511920221208723869441324206875403283837435389696094752115063737249455821291705763104206475304087590115829504817552192807543574304330515351629124804163092992766032695589713258895166247215018411492315941477646458380903549922812871786813058476887888299055646675457664494361599242692811167327263442832772266321028687309813164984561137641969268104465781618015121537792585544897742198643095722973129736157038345017049672845899046073395619584598590592243222112033849319177274764978512324442293667532134020998907208792059112618250805570263182458923009965487448282461120263955765179748191421220845632193893255995759091307986838919599882000182823630587655265771739804656713369910987206392481571142193915938013045883380694300636364368296102870840617359724497963101221943623231694854150174549712024289155265703130709983525670853507799515225847661956404874463412798792211514868305525532023902712368021943569337165497654833393036470956262704308628821997786116739209787884081211473198782700089309609865388821612258815810309113829054338056194131855186511968969464923302587788495994908564385786131011266552920054093232261921091182763466992496591767983451637072755096879843106129633357283933979789659394069691428813875386754126563836760580693339171621756130795182976865015370834533772489299277419010296476698474939932603244071566218831284782710325853402634265222127197528313201977917147931319060360335010934684230668217877238387518505637708163102314627084727548059622156051790605768458274905034127219858154527318382477702032206300112588048104255148035257276266112633161107868568006816675887180621644797616202463323855390915693144552236295445539264452323448518972963895369578988815868582382567866231802725632309554334548850201394969043650550376981087883985194365511949792996266724781473167775318196099265314370670344280517011870050668569895979379590230886041507859162869343980901908139388046527983741575847807468023190187637426215036482327284502765249714627440691450975962432697452364581873277092823942097829869345642985188377339066241073060524719392678733256967560808827304581062576415088695396163204926316280745666353189322513950566713397464768375007824302115378544360756249560715115610995805025708259509870894829764168988534588965309728225058187460752615334450547146437520153308584834023668275093956851690233799157890715007839935830195468715645561663030801817902977958346603419901785689505149604300014644735502831909236169442637827076661340381111798776252457012156609318642170253165142039664188410780581136163283441803377025954015391825352850799813422158760159734282865583724393886314732052726828084925142522060320218784153411446719427765451240103377412439413878144501980133388114163628305629961164201120884273313931436358037300941645843068203755900061948449145388062104800883963159137226115958430587776947603903099347972017216467319186677231918186753127400295042882485266275734075740696131923035549707016404983626556355205217822118155035851031075005016899721816176742138527314134549884686451539627101607725065837627296240313845046190345118972225493758914556990049973809744000731281767328175540834789793077066346245757352535371246989128291296450166616636343841698996459320106410986301697158537072296547136615430334800960238009013126287372160099506502126340026820501597516155859831210480400286239582350432113665747553337117109154935372670692156572175545046182640672287116818443319838056541487586505600436941254913496662365263811073161672734848886007013484434962388066246224789555100016508027660385938656222942487320334356708307293485550299771104497110217806510849671913476816736420958937824787388652354320091807974187717549231300777985460123091468981074094673614542167285823460686291288237559573430260502947611765001336072503903989147834572138953060996659619287210779888073776348381979359098790480035139428867348933117749872818628970435226447292650405657427806890497338212574878611276833850198042802015855287468505302441910695896691255784208462890608722251363177858897465284898203692110959611660171711080172208503930540062877661755844783223772796081308848698001393227665687370720675835397265067950419361359915230410525593445309752223942840788090221705417760742361121453250473981240857750305780759451933424877151333616165015104481167182640786566397385599120111490108629505582220730550466990810692443162825593351724083450851915159064839098385126430895417573610097637488954614201993921817310457831876326055133490025239140386439840721010245586938602242928906275961578393410751701545327816611314601571906779077751486231204321088472455766323691266534106011450322659254203433563182591310142020025192163179943023910633298018337833858991260181375546847020704944334392300312510797677882096012035517385371837137156479310438595487410876931625425533459894142334153247846705562149764360533038058079172440674938803853393664414957057430513066203259383465370761005143697155309286564689517803599692345310137379042232604244354457761588719956633611154332618084260592028113252784917986704075384395012549471087123827563919209895396883811658901866233267878465212708469347781064968950816849521334724997977997239431624510413265671748124921257596203656861682785566088469016312037957489498831929281150886174459253268334645576619596402453192630527468097753003841012926768474228587369330581383179566117146668583840013562832640565906569339303783087673749868979534884055887204624885539542718960437017318220015782788621292342899269674791119716914562553099650319259513917459145706726410443736468667977200942677657229715680424652815548370024897921770628717752789222633470606450022638985827905383798410060395945556332936609422394354296340378222405080472324652847959932516549580495829541295593413221989458118665737311219996805288646651065390503604848756964413230737105223698784261729834715606334023820778763448643372092034863441413351932209713230970950241193916285297783607945795902793298029587657693394037178336886792694826148290491230401510081716031610341200240831262696071522520449321382110799650619275349995228708622039511978810630419512141062472503068745058025435460121688782579031224819540226599472999369336423642635004680319679979599610595261465985033117917817466862476636545684308363533678731370457453913712504773174069191455197153108721608025126160517665078323820991373943509609091547257893496248986445976556525629335548343053999440471805600928586870760920224216373883718063279832905196039857626322493965909018543140301114170590156766764555563065896264045534851067967894490118725819466699254689828387134835289906209852726191432897009195182797897183861041772461690342084041016474479145238406498954711280732407626628504526833731284606609279329081148541793288535503311159679946135507605379599565771373411299046500244296326060809201671991993353369026334838221872169888491393570186164582931145247217101308761734670374908165234794629226406911977485285609158980698133793650567053835101341623947324101258528909045179976220277149574351458810984167363585613479931908762668709002437038706410334376476711329346565404170675585383367219391667179571819204060528673152548683173009411469914023827294347665395974934320731196963635349907592664393246635114420492676995107295228787197997521504509959935562777033292247094075021563376986431127673341118792407903419009949827603080490946115768489774363350721762284805533528510757932973890271910578815457129840339410339870077816787525941086778930080612800237525625006098098335376871248234149467140229062205872478356582219469166082224147185026812250034411421155510228845553579518272270434650385002161988209503476694746835130401149900184062762833826502162614645220701530785382068790112545565917732755178066206911149439051203226343240203720608521155227409753120871566871494771793093296168350204489955649372916424763341638109587654870742392424615849653501044444587528010975188390517378676207833648750751943967764543334166374025284244613505538994866929790238933205114745328489964487143914258502898684646263799406673948836825276796973856684651322956322898847868881333283921813291002878224439516323738241074181541311707372218671236760831009143556058530686179692134338507222213774294326883704444069807037675503927651802484143661804059038706375441389819384275444548614614014600307409693595267131443351750294758446809740087744820689285076573200827814008334248686561325740948498363218469608422441944041367396655223872290593200055464242000623640498505300983136573989585906906186942235329333662671103261778647398987519465658285179903877602327816743188156368620345147426968988667454101682759068031122963760600132560914889619972625379965731864671709834353067369954127162156862667050324842227607677074847882356535876811514412900922961382539005718166776125860388055506400347788403986996393657765475763971709978547693414210485347263722364566499581609554200029781149195941789473973419840395981382597455675956617793207294388394249930098827509387067833819972288845328971154008783069322305146501479203464760442165632462490118449925425840037498229969198440168124136962748544708349335254054811169469748573998040623568877025309610493479884980686196282226871482425448258146405568073967066666051197530163462740393406227774223906665434992543021682810039893414626836862032126389899494508787684028445514540304611865464220929542778036738046886761500618009896313181676633288130627867711598682328293450155707346719231423492425950629314380338494714442698145331586399515491180461637785337003426338253606098165462672361386531539621269333963591053650030054979937598110321051074128907647295002646687097364388080215523798787900531810844781788990481899627141199839486461225561864923607741706708046659018645100187649835450717127425663013473536925626268492298808082834595196760134445747538625126142692421890340080151840594071457015885334054120556998836476872762194447307251386118843076944800527577719621651086317979376396464420578414267326627561276394299385437306865587250514296347087211651881810420430047241310842891016402619825324006597019402157820348392540879738244103476418672480522952147131911441314455580860518332576644013043878335474261433754600928913026303482882973670920044793191937359092869595448169662401568020792027693088503345026053944260498335605366885983434683142898160750287071550002258769975047330237008282239154384143716988025354027818673400283202319693834451143837709397478081331774432495054822156524385799176578086779592385907650272946996215394963557702523800696087348241779612086096216568446529697993518428251496614633130304733437207415725780652130980390876927265355937455352336347684343211956718746579753443401148285127629151738369240778577675523593742109405219271821487126922705918262293372488322563273302700733199759740966884093069539965502396416979035889558657709420640691447086294455060126930550300759859805463939966412876753044301108781735825334662661571227391199063053089204586877344492561280017284384591970084158911687177495935695145233114872324966332203669111324180721691498525641839827287129551622831844714155253815925008408410990639903881813722807984710758344732118582109514149840115224081567527895534804485796792566905326883475033407978586276644369086307247923856803945937353000609159653638465835846663347899661780332946151819201488894505802015973454424673502940769836228474177775511464395826628432271070662136758117205050418020705269408897297951655768444557855902687965094132143525925821844292918017413020470598173998796803589675706391787270585515098851438013618526482175982644677837668059813841353765875214739829188786122337421256788568555476781205026966688889608224918042311348508129056815684501656766904619447124664801287153120384488666669009100371660569363966885662174235708069731405508555745188739179817351871094965191031569500000370772033739539048192941719523065502170491064854649243574956999614657267233010163582273834861056011136379687329696062389445164377736033464262975271756326597951972190829727514782693165818407407314130855415334933587030407645086502681505233675814728622546787595325398664196745563084116282926768205463224976857511525834525990419794129853138196136418232102247009237267638075454288142895360837140643001179201017800355064199508482512290579729039504295119563830222511555634012846016177605872859738137234722567353250012598900093306470139024791100015856258813315519876838531919851609028547550555045765681907989298238550116542710932697973612347663016089617917390089927213724321949733983390889696899942511564133798840699611069999660229418928343125136255742361789552749330022200937637224076802797323897758889330920095824287431518410494856099010699575340874320109118288633687978119511939374533290846909907284569914799820813014795505820707380703705011395566736343439467359858161374950811492762179532597043043677359192109632730599230926612051274481740199574450923337234764725271714336118624903936408784046836401756358302205670284200139499859385373546984444131100992091138081725239441748522373165656335541857744738533156122578857928207477276661893879623535465904230554436428518859882776981547741164195544701483223021285163449462044442762083517419446623269157711130765457680863312815205786345494866505231294493296692925299139535913120239676733092948870037624399457243367222598335532944176799383246374305903940263670199679740799096301604148604997611361177414255545901964606755723002129817089766931355976045039068332627126141117380300894276223834765296770569930929257601354300204367970345988638918010566300783714745104904842147202914131793316105102359010126970241811953044336360592578908202350643584846611779039954018355950783732919834312462679897426616915198200804363295609235900533907754441916378579554468288292773410921942325811677693414857397122564977644615031748668560395516326395445563273435726497840922961300529608211833237272830713319779721068809644970307077965155841777565223761300059060845830507099583575697726435573879360895203672358676746499700164091708569575332971974567157653059235782452679376602232742149789707327709010703091748689709946151748482670565305442971707502878749155115773187230049593975864510473872044065726203433019363805546540716920027912147591108719948941727646228536099418583648657159372970073573439391281713666270198858628350790846304941351579892677786598780135387740170494092398187962150914596952127162616940393668658146004850819774551774770816119695072560096892115786662769931413626825167295082714376555340879157036259226809489314351781810141791610501112714220708950073546485119896116409905716026012393646535088218573079132541212407239204257652494380605738288589166142869917423003756387387574746928534998933386423525585116741088158701652577391280812078040333033077716758342158858287830705540029794468925645177437696750544114853452786432793819907642087133562565085447474372628021570181397709588347327974901798039764252677856912538556416394897524437191335672332792245335097312104741798727671303566525277271892586908228775425547058316053831813735572584968470119933525572667471445785932687484993058160604755075393036964168009641965417746717444694888403599111421674448802196035790484166471806820690689898269177938543966117713760679690154006412972721776046177708644310324896759974736385195779087429558814339038156745292772089251652685949689314368276341580336632870935562229281222136708783103816092619038066554783265894027843950308246107608471610513097609422446875347508631857749130030945830075453790866589182215712842855548739933109681716599044333747994138708758369739020093444251671357374366083545610538279762054589341380177695868355813086346616451627493747632632580729445719305679708743303341833652391693169976763809020222823145247371920153565342823080379592831781956215990032290048567328417396911011111647169606851377601484033419895448481140948534762942238480463071963448893873058214140699300550801259702505647918965887572287797121818787111613701006301737655109287519344404309466523977784476289320497910983946678973497650827484147996505670816472965969750087952682632017417830967035598906136194421325134191079828540861636703458104412871363970517774764672799745300530683497850377537325126650762148222413441908593621397987257938914178746634960561964176546780329891463461223753447962952356723560152070530367822522885867689468798604066030456594772443699351177546451586198404881275536638913231514475165549849192930609549664582459082319474372754220792429995097985656918043148560340709648269626503702124228412628865205758667072188992333206697187158446343663855137321099695463069942663855633573956964268982586591805877933594129887183635332892145561080525595472451560584253134181878279777979404193392349872837856242861887527526455674872939420293990302298582026468332389287211407422800039606875696987694753275511183191403378279432787978318428242682509015040977813971790319205835854673924798180240076181074940950044652469055116109305230502379496663106540594984539144871589730373884517896987683027248294407000458820889468850976104593181247493253183612542810170624635368674885221409458794422963289883798131628233195769018242341379195521467453586407865879073844064031492126952131173169793464096906655622631352134325445394022620707507376014327416074453740125532611039392402298474312288656875336830792613119972742322739428917749627902228843343712712117123905849308512104774892588555523256776147496025185527837764243185615389775898564749635525399785257880502299719950216062357308836053471313681479656988847919451938550333645765160162221651573015297260300834737015247465366095031635508743728463179213714568128880154103822250833647179441271592558570863512715243282178269607018291116984774101522348434018414957551605041073465142688873084582137953622479062767489566901107782556739777563927894003153015345124835502604132134700143204103397172641761613274648319720239239569254674345322421372513468972049439756702080290528832113182948180322439605636263349676551660862622459799754188952279169396797823036229615057710636771211189305708712839462518423237163516055168078344660419651499609265594764079338935746192497522518683772650190126989789424152722349533810752682855036346505554080857882273123098677935120952927123435145007855054773822325655825255445390874726796480254952519931320799625419818940004685015009404929993831085887781800454884083199632886883211059326880384662118371365932898776739935203707236056158276640391612551272393232043565230752588643986955314965753410097438932406292469569924790898801568433984845024195306648558602910137140768470458708845664359653427480702961420234193693372593176800906470532613115689232200293477461973259971506351108667078106262910188439165558812004487956202004093266179201885917928104118930271028976156115468140204281975102374684669768317177986212316157759973570792862686189708289827545813365985685262320949662584092521489178498818385932622765672680336501503174262268411357562652146850335673367212639828437357231715897264568885929081646827337863745956548601252462621026074086183800502413644625198737896211973836280629457533520818738793912429804742355437058526390065262777703943292680398052026780210018743395621030007882652075009867711058429393420111357597634895547018136697376186751418644648809636304253671131593636377393514129984727147962837246401313233294911820120328688656900761590368649270335910750182575738338135406375711049305922609813106463047544643986054222358064620999324063202235952297463328035961880053752307518117309119467062870007203019255215284409485122178448435175765578681172639198128677720917051718134745939722560368219939494691635348753720689009658789943399743123517288665651699488842272635193318106021685385090682413535833833585947712020107839469744349668878313186727790772219813118252179254210479299761498520404746003864416246959731648182245598452167486250172104259338918227490336801357826255347877064046755434702482586948051015599036441967302565028110105082545670713606726923613598561445397487253747898055009376821437990211206609949524673521582165859502053083629265459839400551032868891275822580866959462114170658176045000527800067362896290918865492033646916280950867141461594455724525074661505927946780783088660613632400190255141819926987318340230100930939204477747590895527820915135903793891810799100071106744129531436053757140047515579799493850369013409624741767417398411832360745333921945704325916514377110250719829554762730335899016284754474047274873523651873944047240684192703268810015460422600192005228944183054975693643421244928244991090653752111710867304928735865584967646758337723095868496321884347841268369788998660027056403487268071063040786223435330534820105626468819863192987755782645036058044551805826654286890591499338454201924065502266640514623280061930634194731320656239337838161723261689779696340153385210326097925807780037333118029680206292402771734632931257445236988671082731387833114175760851155540089249709847723142266932786531391159618255421402030062660720960790645867250457972326826469142723470409204931135468822934534022934747384232729635116868631664730706002676872958679508227851688615180459484242692463177407087920253930932416968558227479147540435588224171871996652543231026307214788006856074824379951219829535480413094761696199298928526482485304012432081863184997877125071647721486811868198815149335163683338704821043910213440645478180745909551825747680681658781819990163933011566732080967039675404334230125757870674158780892714899388190610040632482518446325959890184918778975957722772615424196134087448099749624908005051934150774600805813892125358032582074909717682300644908723427448250207037046347215425487804168138364414058537915146366108429679197288961190533925353459919069962283266064535244446396405719324679347343334845848635072963163441045420534394027900691951265344040116808793855707818836100748379376613467180591469122745400322655370146591757153918074875052272521646624411442396939775733649521045023847296627751259721470198105186721482289798960570897036721041695997855914035926626249360110247823702935134132989108874798025588101511787199806856727911073948681732859379222772952540744861348363967014733178055243378498058801301931235592663858274954263562511106246034585965779309443342953494672188522705838943523608022624320121453171590741327230730484042633847266269329101415034854863203291636762799004945328954487728854946544781782259371769614440655531663106304787857952882352142427179139916991863381001837660299281672921599804530824798717596129258103631326820046735335077614758467521364480084580050337876179332767022695528500019563177747391907345482701974696399734967310585000994150888461826993473751806963535443757412640419063807860155923852315160567313595124672861837618982745227315403884791787832717386005966730905962307623527650232402924536032027651137547671730460646111770894362582960209107459735363500442140343533750540944007631405202093817836211639056028500735653172029343905689038554250865113632544205590706353197889705529939723695662407411221445993191751878288373306645997540925673969686437307624864671232664479203564588038248284459423634417222296459508429178916207746657818167871381689223521891321919185618312396960428601540360042233990422310086689718669623933163507380342646685796752308262037154865607064768625807539061086869451587454770453222492612284258011379245125923384164891852765920852337357366919107624103513863009662819833649846945829985339949288406986331103906593416011546135027775637914237179056744167730148602570154508248886787364870917785689150067923251668091997213973914573108491120861861673326140595404550629157223454638803831259278644433132232388427888828372944031668457867582639244308515040909749822281802416559740425013521052027590786720501540287828837104998778800830195699081354790210363641103577614507563214740618428179786416950870606433981753654055389417734131133001053758406524415133483786819154164987902501821319338573836503852230122254530630790415231715539469053488516124688545339547563735915429648981845187728709521201972664942805806474971680663859415380973180595000214903573040794880034762938723382105180471024031771565415537366942793980772143471589034137312934427032734805644459862718268627870184944865869463708166967459211034952718047156180083213915621838976117805251485009423302300547999895786680868612265179672217623846773278795422724947834140867282581822457481594901672000760577834182025913672388031253531992885692351579109058723717220469949775900836504927182120968509572206784476185099711428164153018904046646435651284991468156625673484998613154800400510562837741111345712953709411632687437594272468640533119796215355899248145243305784647163300301462643486730609242424591950300085113342218428154461551060882107084970653372210933487217299501745910201119184973709020682068779496976535998450695281761340152463863040285029315138803485224134546398493296088090342489107992291672464821303498176550836237472146386210977102487305303301583123654981631351050722369818806095668866851469699008040675438380463805993283509662514656880087771177198980233919379267887795483702548253212331692206570376286150452424392855345575725106439099694388737415241300716889093146356294624416387725916689639319724670486890490327115385521237292357903418408610901561898992095763545023167788073052215788092648841235617039049068985750361620506949293840051182188268842248566799062869096587012638934945747757810993728518119261287518653503719421686481368684715924693269131773717676878161323150699790580284608851771058422650883270744755861643489040016365916034106342961121789666759334334214656172283476449104728370522523769323001853001280936062698713960879088380100357443407991371357431121005776222052297075066317969706387541921212128668793645609834835459503584154284200003821654092732276937882224066736966225185116632245808248029629507726489487912570491906066330341235641382700278426341633545155622943563448522409445992702364482779816016736571771661016075083427640800268085060950804636952913053026541125967754032334262910951496931158323659606361006522949268710200951690986122757748291259154632721692593799312270751786251086930274328036326086174606768728386256248469175717599824429043299823711293708473356656337636674167092031447943427538747320470085726976743261907801647152962957861897961755751089159288898488961030654094774054238015750937331707010760894700241912825062065484317758751339938402841977022062458409331398740378661180094756456943294428161653847908031194983333836318675918946395208484302569778855636900405911573822439656189617253895870502963342655334405406993750011262333569975801762194592852737578264879631539713375161210000160319929222385786239493296551835457334412812149844406655326488468006552600884249684550482570203646300539096706047295847404814968512749253132394423554168769987806254091440096791021131241591735634726813064746007490775137115186095626009828011339721630776767982822634355433109765714784103027211164947010885708540694786973024404583005157664241404921504989019219169181888323968847286317928498477074153087738586845080240126500376384184296126114986270882723130570319480209667963405570577808088609992119691893462992980588177587316448040830854343976393346860905879408399697880813503520812816725673110183113865727291294677457194835756673808335550429755651035033620279817473023495941130593951475954102447561982565540981414136661009629852027324391365308634268664930572059342545730612772386966249202593161563873063998107590349722435306482094617111545892919111763618305622013290688412445319950373872346503044586790099469069073412274989483123740772369220988396787558290877919523158068147233968520574261280396590647779490518508678796133760606924007260544497006833929156689095138148755551109971847014486782548740564308119160508101152962230885605724250591823854488694331939143884673575501171671539809724333725284615059784169780015423488983809464079313593591253701613251972228497543521565399340089420900403765179690642010563342283742406378741816666555981787971569722156463404527491029982439105152494273915350604528333413404841891701744201116801619769202138201702472032766988487130821980419594626473684946037803516771390535767908320122313923068834959891462766957503425346328018959311574347129630150479905271129707772495265737610029706797964322122194414737539122651871661011242984858830439934154333447484824635439152697669339872600831244406217154538353375865381795804289995855583963952062825436196942673996769736040178416825785551331567028542982417670429456428374228452587107449637775163030548294479513180574022350476244750918706567481813817918702283938565377765017409251745747305717576461233978436541271679035920937859220197884937115392921837503247046350801552551949731059961984017295170734391847410441612212551980112363180204290700079054161950639578825041261556033800874813455939530032559969465118988161225532411557233041063125971443245461703571658481719946126188141507234850369293189026877247126070878558766554736000190418056109411902074663754087264521592480063150178483705776648032757140872356982878447045977156463986387822749401840272382568685993152410247307921605839081014331998668914400387624035005814281226643629502297042456010837462182290308461441734203296453596599471025778113528809379795607770182452497361330080858658675724823796611258001654830623460138837512577078894438308973937859008305688319911530862848991822947829373527934241173284401656468661453898791732512601281181556870576067876321411500039275362966943705898532181578263271024996748629156953354898400779040661719050613377608181736535642219573824788705868267019814856535267417623630562953485137486232248754808698388285782469189191108633661002900962314035692540075685919580448387388098793914901449687682623949365488573329200293046331453903576330978268245962182514985544355921259039082730976497944259318828870248780255228758206050389519043844969474759730451091378636624441947951603605347645344238044962739251588872331099759017635412922411548566211577094780994909756806151973122115679079300249852450603513458453853595957080870205265353527385626086502341391549721088225096951139560658569048053210453406608870025534849869412668706059054076064601890954631155677860861786114955997770987919563861549484629760839065882444034085704663520018027554697148183889205230155936985716067021510062827886681091343065548313168267777164899953254269046515956319208493648162912985895924941689015589895024032182306133627042950092631183464221910364096913179796773251309964140021552649838039021270264828259139851831022087688969113931637052315564519681906176423350027927063366791326740141411149162040152884047158785417035339467532169395250193091841525135760626542082969886776732330307492468871039093752510745215836563796634574705829677946145020444410316521823634743293902571041435677803303756021544602451192462885240476034975416265616388200781057439289364259722756906610652049563001919622235979349924962958869988086079985865686982677701374156742563420733165999089800530826086362821285778402083646531600799467190262468194588244578572889407473619638747060011668672256639053933801334634581346197601368141530506450864699087271944910482698421725635994379832772523514609791647792705462194505229460021257931611257957679846788124039208968392385033392091179467486465306048353860990963261652346781142217369680691671744752082206035319478966086532885642283116919197405733833342414479948211869421815525773009549159996719558626218848134866315861921925879231506673400559006223562650407604907532766618828060843440351417041945819778877116342412593490467460526918368641650418652732367953746929956589971874260879598445207932519904748948251423430041705288463005971440222638610159974521017844384075626017214883439895552054063663767558181420984279594196939504503424578357517155844987148364774822653546836056165930770470958833984404904538862637832237540421110422211815912554779766763548396884447068910505104174473424388871114444878872402484403010923440341780949122564278715976851808810933096196961973278298377605685254213149300717956525094310936112680026063322351226643448581469678871068024326357597763189925040890684106748628703800658181326343908177574793102032586148680316923491896477642206793475919044848991257477913176162601697212096741049341038514900983592442766989697638838524405857079072368303111332025726676353616431475864088758905738930542505452016316802275091765274672999368576554009114226692836590857592129156775163323003518045109119931378207302070579088069762972144009577907890351349513577988551727243895534857595031219390657348530319621483530085625000837800977261845042625063131329435765812524597863958147494693444243286834937554286314086655326902700138938981153030630353035789474548752803215834860804106568281634486933130979565426309109226358763019308498424124355708067636294328371561869356642130409775980969388953282825795074375397380417477462404867066951393776241724469445448952041349746202854748198279377998337522840464792089756183841958040884611350033993251104396568077964808401784195288858658523106581118161327166992315890616650129173544076314298818743681408527207873726753658013733796797678754047771197807702180234046731392758360354713518538770873208164303835847153071517902727864238546425815300472557894421343349710880702819242607915000221673551606863857380938718990652490497789915708454357558408691853029785897942817150516347938990443104021356627080651856357526102841317779903026637912186508818586981716807012536162216468609989507037272797993287797118599332991956046710649935679679934143544021864577707477423773936893827079958262503773235746454012190871967330910596622920662850907246961966871429349527206773143887286089147996233826852950475306832016633986558536378680601655859449142951621235688127515277379329285877374772009848071184657014170773150401965696083208357086851090257548505901885096593454381222878759544255264643397908635931337704063399588341302092883581398195613250928612700571754066352095897201017191409944456422277356688291079032068582830634125250118479676760932278598241329295908495269569204771710284922223541213737937256745518878710356271462788180701057490683908208148931222705822838681074685440889654883339713376844282812453838252282872037157607225171533303699747237087214662912233098038019408664275367895376625748611267194398108376261679652395783745754701422375389815605013744506064648886078114995529311271889445647359736375385272460811447655433524110993585714050657061011678393337573801472069332960336037731804934120022123100739733404039114279173912853465294777936088308993032639818111351478497715722500933571765846541950172413405813756116856212744058629177794773877714792809890112815435754448205996748618032595078868337594339281952895330756726517703274854014811693196305985094070686208939100405130362459464770999473096150543937149493922990396721557672988222884539072208975733773490839711824641470176856904993833563820470624133821307626173091721270273281837296837966003822946071184542615309650708819485009535852155980132086855563869418350681082442460114061507548384421794917782812370331762677179043070953942826152079083330464497139748599834086848225583009186048582733875228212616047978358504293840492498691790687189425174688803257663933537278512314358665939791741852040326355023579183397548013915802579934154383100933239226651847479982915646359417734242523394971912615281901766643398602676992165304543038327931972358543513937394043093726672570878202607319614964814246880704967670882908549745513316895982719897860077198013259842365612482978543348307698328099469047283300237167983630046932664409771081487026063754536799179958732559384029420815826375228650726420034903710127502439465999789550649808640200946150965808423556118200847018067494650745030524925055661637316979031166768818862286535786170079060289868539679701888437832990258406371577421706894205076989865063030243840826481127499989080097096746911249949279139772558656722537214719289478706530133074787211589698425253214669797567698995527733646019489338091237287815657610696773450469747106100868855029530327530500561736794657205662048530487252141772656395731076106309724940542647999858782573882757451603945412947715997913930955224005380171462703832897663868332390673205210064129792072195760947549492936529475950813644118603731956264824465508036418396088090758422745091881336152393639188096990613648282695965489669614741224255252022237154356075962569196791438219914277987642082016090181304969273900682440702346255049682888077666765244751261489924109888679284998511550096919664573592538964928471730738323638478557761058176116227339177342877502401136370559852039143971717109212950224343367370596742438585620294181019378621988288882114693269461850457534789150114427616373623274180618692833923854429291144543237422330961383070448497836192366488892533121376746377412003859444772097443012115543125411524785240352357199007329534758244837418774039525158684197556979736489287230890381033884264817190436258734108859709716005979165722670294278997396426221792888268533815532195871636228478920494029573849695374243935259136786837854840316761954890321254865748300189807782188754754410114448342980052939623082711187232932189923758534164753471156047814379514844303588675292619044029320713855760054150816178281679378960764452228975901165779825413151679058359649890071702644405888793400751950193354270194868109951183924482366590777640636191972609665776942250499387910919636704287552489814023730660913040900158505112541640733363368679966810563688176797653653177360570292784387491348518449461332606833405689464013948732819583088535094817536893282846122857425964922113932675630571709876077859258452928235994784963653640628272096713646682433532858307940941522802072942126129766411925360425537629960676202588736604354598419834115472798232658665980473931660062096430342565424366978732980056710532224541321527174010707328691648721081391598122096999047098953564440293047163873618934065443751364384583660291193135320181411476782111950695259724102365220175222314792107678076371966189627242971716417504887152496978194051572294155627721397846268967685742390705417282416322755608796503368689852831954099875120902957836373974989915221108829436062687730828995885737349670658541074087406274331225108966864728576365187277296334582497555600795024173561509138186309092108688119957027605757533935853424735283242434221313566294766872436357983946619858270492391143488900176512766006699575201882020788071177805090540953049301654646418644939024680367895938743275347243224119590686375975092195542341347046132782365706328343776716138735787578918492266115544644717729469542637530887230930472807056417115464603482564000720398267448750035367944811949378728976730268370881137640224465404688074477402145526531387740870226968561366351333703234317152525553922350425651175152373365634084475450049608611699120653077382493340850975314187344254605749631163433420402054830465735154301340307901438788591623497403391383632057218295541342722172046502586794256722957482199440087455097702160254253997322887474952994061530553799926200464720407005442907128487894068530450766185234234726853355597453887955468924242630311918434624624581831247598397593172644018314430328218558888932741038062074958082962016442624662635490773588668107932859414172179131636434996988340619217109615605306282900742135337562693660342717279838521183536278338586708818729300915551559588984056888398317284775025630305799996465700950202691057308467702833492761343233490850421589475730397226206526973907419001759011872244500032004360502792776525618049414148964492290261011351627604083505788286204658737367106382611758862112538791980877604827517477437515994044001019453954549513043403986647245405564591943481362373736743452111876818995063722670048785752514838083163678078828121996072660763494203152936212873226103333079786701175328310318522523733426587240577273341136347752788926642690356658426384838700047312982880580287285181378691472936503406894883377602522600661062383699070985718721698866023146349292607555525875846343947601258510296916001473223930310399714750537347587784245092514623061706105679345497379666431189896622443294517525372628731732239505108526740174403203177240338224721135272065598404128122498634170310464470554024000264776108047016705454283898836013737219226410283558918151110299832177661219838826261467488055259280066000454648037607540327625912279920165972609079077094106048600770959329021965443934520682472949927040831661370895635307999222190852573967594603214302429636345048894916661810942457807618228215016320549473228438881231558745946822598474886485398545542055099844116936122303913455255587935574281289644209916468836546464538085770641273779797730040028891268693145938897299534791861241702173917398960714189951870394378890601341335008705411012016772542437260520277691473643087097168478466042529857642992119289395870965298186278651909157578533087845118941312455249678927587021897086173973753812109083192954686324373986581685770834458880217519350282230847393092303802277244320219655374201380299373706851776095233316330252567934823751012011313547608202800712273409636994482064038391863615288530289654920629018035276100488247020843116487261842872918808837351679250536395896282927685200645092914349874577839673916488160198158992878265880055383576824937418718537438472344991256406106474547846545316284140950660213571386695009178202239084840565472235647422836152604314593449077860567959198999829735871244928567858051957827594792563650484632343729724522331989899652395381995359406062355857025393367074818142355971430349514200462663383982895935884697319102426107786671712246091062802436745856699115033321772799959904237474488074300614648731708191562483737164945397524009869799286728377856089520805693512182088982732047681527897862818028615133071815682155245147313038903807107881303147066416474886469251954031657046396299311425513627410182207561437850376294550531603729361986993785514963210629110645611279537171654071565390272308164189050530697291875522249787236707630882224149111351934370681982423646678894216833590722104608713918849041335239285209367722228094159143198909275267538158609551478210702019793140248875378546515308207049532673238948006189959515328965856718372636900344684087392064857440348090276619169890710873431416142596303329489592414825283619071089517504744392217207239856160952093351506519575894526714623400275263581713310518241197757408425430670645483188295644804285909185301276550304900984531895943694772585903680920322162407982597540068937584488385475084763438387858609188399766143370442388109084175136333388521554079636272119078060596910009307035761123793372979132671992117987159514263803974019374853249051841245126050324105934663249598786782840425249175989067461416935433441946752084336064462003073071096157717638342652370918666651050542119745073123192028582064066279788712563484493534664604373296576939782590928343790613565022329080264355332387824061628468118049657310779817654226143687261523815019459204848751911340085022761591115352421076421577134526904068126932850643382910160757420374231304524189170735128299611577560426873374239000069048229261105230042168287806931404864119404647444038396319994867677107719767934309017813676619040912135708951097177844630307342040511802572127122259297411815280279807008331234570090460221955943050674823039299747043451708054991498408532212096167558059432514941851350851603861170220479764643204907903354818414931284400945934693331839091256617071746533710259917109656680900293370645015892917390503480930257563712313068353310079289264437581288062502442620047809414318439970109614890479391906107158629892124592297397189346245560497356073782906542995100825384272754521244330306119056593022718669433234745917009608319127549878481300155993272535472920343624837747294337990925695745463304132595970065627943829076493734941091646383526744701022369618201301090306248564999722377575349861595922465647378662436652204482356554707723523125587655155874267683997586048535292015138845157304986604810827436161197759422662883168380794664364783824057545773856427508208204626059551840648452369637347453910961265685790072531944906029794867332008457606961296806536355573466739084440246056480451423722602127571701743316784850600144021242612912049097109908596225353488362015697820865741342266783006172064918976175154513383788956457345690081896906019683563010697265322189940976663656408699696549694772458265001035322342433969569741468483088036608873781855147744474618205562228688607788855111383621550928451564876434427217479374064793633176855867114250012838957069881966095203293448195613457333077346497605714835702126978612388307220332836269931544538971950801820148753654501400018305445766096895769486688408297179638669257165077592987434798021375369189670033609557306198233797864477783174245795052749227543199239945029469747957733529452596880082145202268657182642247422354011069796221059864701147395727482972640749446082126718137488690068032928903960331254274502301948011865634180801881804477948000624143307571064124077509575558426063053009911945924428112010600496702466022174831648764688828912715294581816783567870117487988179774648038615467644822768343048500762493831529153665061261363390276229846738366924412206916401251114289471304393995334654341021669857997151914496863609913101510948383030870150494414864994371158957626744292306102889640080462724086981766519989449661722046281718788370601869221519782006499410386482308205990125918382691123304406238231141330240100560527970498663047347060402900686309861567875438806650741673776946368441221565639906649820930750119907712492395755287672456234111968038711687363601724915914705076615425247191989293226908537409816694943020779565652275773728714514895983419131583354780211428015903974431866869696365922499571965715263206924132161815972439655965334097808366156599007366543157301343374206803785473952100665744241632186545404006306010682275020124946296307398928673074647088745794873698210701975969532762152128881778605742541010432481032005444931812943852223446014664001404703723759143515829915089219556683997277105132514368757892823343803039342692613061908044262663145110324346962429931298429624975651563252342054591705943625680964570954802424164940218260214328651240170771602773179782316564309261821797985185708991090312816824568651599573307214077662917135536833626107859380574243114839611875023772702290496345435972760884459366806930908573849997324106752452257667973923956968564137384455448401034122648165353482653452666604146423565673408730482165722937825046349900304638923499893593952077682228197008757614483252254131436887189193859203611576927289144745521161274433853599158974220004037020314088505322774708893976623825629596022886449565084350693269192427074625680678691194620904215028280770669600826256064977438526833433015619259188601631662141128912417062446358115434909320518340857338727937479285157297346290578481852093941231409035707837791648307289845294151763109976807396394115510482740803544405149132164852144962232452842781217797686130108271457039409101939284450702534821137258945675394251983827671190405745904280482011278586541694829798059968511435315585154325008224012868316220483838528433896545714983186525158571597806080516826034225650721978571062285996072730977142668231322432126377239299493429854590697390766829199132923183770660955188189131015546606992978068220114672232094715956062286241793595668966308496071635100999540549485392081854329543187868745884620880153756339967651779223730283465331883881184025308855825714377021922122632971266770116423150408195549764367907556636210318255397872584662933745083291430754664893098967572880218779469602379684580197240065641297801080755193062567774786174093368392962185593509993890946470608289570135027608752186647786867438039967901808038789146213658663050385412142972320697989010879932670460427711965033290904070207664768947991935030427478061497216800347308201068074130525977663163262329367628032680388707060689137345113154121519557112264939508524395863328788302090256766851715951160127314475398713453125533987440772370736801416260936442082683267745967033648064336377359614308123622470974839598612489963977309219042300120043955012657764693228379269470195484562983450944395009128897501591269993579245127607515220105526022227801996764465449971132607021274920290597897176124945916260949840207997587080174426458610901802057527603461378273281116103207499666765924974153961927136974185128676118280161453113235404202772904273608543455631933104555620528132042800086557352459814749216996683026638986686636563202447545946270581714095931387372818226844186335846486325959267074949727252686192835998006696321690921860497501940583885612195756976921711764758338379401102657399406703206406340455399163484356717223381941091582413316875663863212102303807763529397468875896278200543517650264918112071290874794848066550819623093786539164664688156990861470778397298192461550087464564833865923655641082537731899920900535025552706849788388095964994023994788479528993135310912175295690526613632403954895721922021613535412212687709006715602387303484518863832115084455338387879072582961359386121563554981582602151723080013505195614301002267133915311710826531709287912138191501119890235578937153371532716619008855000058912599190632503770822079031786427530903812559981079346622953421387342261714612817213109868870097924138703924214309952611917998989858060681494595798071269383373067986221095986558262345400392089989780687385272948759964561505595240050678956458840515747056682133806996546007250875240166109801484282185172719922271575661865036280065285714571613010941051796393030848216016466403525067092647888395977844079154793163743758029667749473274024555695719798155197593109237564436017557693668610914612777216479478446575337383573547886519400604705757374743152655510860457528926411740770313049324736797032859092485210694331422917756238914893354624960275857767640422487440503607333244698518980636899268633466257749460164014170851300313335161517731176287402351107793318708127498014031023048037605951070539583200176353821512515139082197010626308759970133224863634851359676356040598965834562959895189657884362352758698562112888413574129369693604997499282461930169290677552401514982218829930641114572837515053016959850385792210454286242190977493162138994278246828279812482784296574217066691415200634928208121817851286704950598844744530022994995206386687815499299495127586627614894698891200049796247646644864325677855689566092244366350318417634419635164441511780892606980895324554033147266334779576798150055233634107016441357262380982474441163776467283503344689507418085434588507260118865213737963062070004240488123784836957794728425522345679626213671814655501721973826408937753665902093069189515005900675432372879989303490414220654861474469010318024405209742980675378336013219894281729861183989667518053327774350210521630722886227719565826890476713568512324563942609495731446325119739679172934512433487136818787675189093971013658504920005976750010340781300408001773849465087565450040754494409639145923387238080769630877568039248761379005403086184819119404834104086227119392706246759086244368584480854518069916459262893901324016327571545779129091100393193826699626760037955384558365248831367527288524949826469867231280802212371370595004300313769705337745079881657624846978755387111851746532710560015818671077326078357466413217209680831047913312452999378232706270804580149582942154610339931993055165991923296083020858635384854243877161591752308701027386490442636890924625745466152362715222702869330381268871578746917080021342939364273351892132889635499025182034272558621164442944381496358554931872793841925875017908942506209285587537760710445052430674768920603003293234955568492406582119307763987236252359457898323778863016473267990521187729891770652165180995534563228047361124134867587709521048834214699401780843000407388340077050429242028898710638070440146937794257261646823163875103520138603423961477089860424582845862554557427935121015844038286486000195461974713840774849225529370648163248514435935493549678265729686471938150673473225863042871558389104222860911265960799000247650097379563472407303280916004556995502816424765042809800141840659973138979874984330656040135292952431351446439890525531277499328652169429104813429874902325535027260061749655993068073641684204768679449337326984937437197989615438365284057236643112436514531692234603581903572054442334062898159878278836095963811757514672881736598326754879177826623138363480325126641266459835080222464353034068151483798225506107322407447407874456298670963778442892979784482994993217637678075347338004730262795970985253277044750467230603726870819300463599578931829462264517032987044941905963548922031547565796650918993444327820876927663336498326107424670492350717688242008611042825450736177007423800932488850894359155807229145938005840488272469120811898467495711686524220648670053949645805674902110656747724128998300244518936495227155671210870039444234161998756720858636138845933006150733850505270007750616432307735647019985317054537847026460934511605225193550844619091329825414538395185154699587105396107519259848099989243318975581566012000438837983001731498006082922057908023525995704737163452748647441720877953950351282038047166961740886176249935039599679269289817050891220329653571148920888714112979226576816247697180831497163285227732435679000405018631745382109860886086310307208257317065068815785756774334937684474524017658999576237153803020699041934583876857257946726674450520437308629783520833364315087204060423567957384186877670348706591345582050027021419917757592720469687061535550348568927189065110351007733048780737353228315073646368956817964805691899256424041106087868696091744745913582111755685065409060880103752618910262728417768727809067205266948476857943397516128768643153292482422523469647815086324883243025722809526388123578464712560711220676285057362912675177086420610136358612904447671237149129133773084475981593499446224290163852441648148106280503587072033414575570640391932901432973670839412357168479712475544163884290817270574571924561524043083896356597281528397745457970953907153093314694058512793079328635231453429519127819524809616145898449076669812782692044099197833685761876344136591601012188588301341300692651986053251798432751930904186865930347040417064774383245240762916989099708349833717346599027176555065661130648930395711809055634708424573153940640251249629639344034203622232173964167102710877260298948948417566138286096902791737231395443660635395790208814901963002084357522495905635650052488125275604676325353775655283049222560374073752915048793569883015528325076151380397611091747778820747770906416170739776809850617697096883662968870608616623475049804901755213176679595777338192688379401752786908983796910809034632502971947122902166308907267687303595459744885531788525662171538532713492482038211944111337301470922374491602724080318396762100613699054608867941263626790074911002577628616652214612459488637653422156887224299186875926545163740439136595704847820410821089271494085371746977728792283747339513074352215796603119389038523571061519469754082064762969056044036362224308781612605932818568605794645754212393842066737738455236583156289044175803126063381573928493411852462743781389535610436485173689084939899968401832344952647660611286477368997332838413539352449135684120497788540763002536225375658056540218872004434935594141281268285981705826837063481562248069060969200102163582930898068276539099868952015729144293714033755038513128249248840867534270638189162873951818152441177257311130768440489115747738764292631973816573716296506406672211387773944661847564486140696978484822488575627372722738336349390700050391455206023702882519362991052823551422105127422225569897133091140301942977635143406691121056524608572312955168907533944928609351857493631820110037028928909505997296895234618847953176294311458156988873118329871557290115095820015271744712655293489490075430565507414123174992256775222786570649761037707432145757927243673921815009478964043983600992870724179590687783970450649398104775367635405753636057057197884592388120975676792936446757932088273577207814687499513055909843589786388403291766841135187889648131691047948875197787826741660176432548728581151619332460591364484670018864509408772833502754255254596801919745055021621646069216737268188173001959468332235307004593598628787198675225414039452862988946659020309562202419901920238817361506590096978926346621355735194903724704043684475921572395267139749664242280908375376586767230423556383618954954318110030412385946215425735508110046607469423530728975638973484589074333946696994216287955854737620092557107123756379893159918095310062706785616754431532360880494917871960288524151147917625431004011898242376180909614723427063041474001026574177287524757991167438040605763217638138113996234379178560499240195048665040514926997753369765022630419267168194924138565564778663968977700230803137933198554262902460497474220075997171494082728736521002819123829058044466046391752126720324049667023371581818016785553206798898258715109606458103826337797419894484619007333727027449002810248941511305364552593718589338942409691822825380350708702799348423446315017741573361514377414518364452051691592508107883887597047070557333612420853413376122561404555400504494358037706156214313093459679714660305008549917989204763674411634974650591529454093169031678796714922309297084077880848304314707090622606497702972748037266158878670073858091911576408466900058263858703879338057783655661771360567644027734713637342471365470315480444143026134586727703882436999317528686988766548128457654028686549417624131786888022488712519663260703176847879822912903018412778867096721197651134232013455138373693999844544688923167672789391401089011625971944634030111932561493982823418139561995847267968577097406815870837852199000573502510941230026822338170809412286452491790462461172477424340788952003869943330262312879052639628289910109444130990319326230904295294109420107452605721338073020161944377216443393946206029418730041950149395305501130272619937884904978402092017454708894155150141213819152463634312692886521181660922425684182771342604611046013195941577909033503901217393544813120340454368148568600749559494630095984958594714016235995780457253167189862622208258442696006226840288438472168820622888369681725675809556028692540288768735269887951388763339371868460115474940570467131173600715244686963541081381987776193877455283265549070375916681761312109744131504291176520858819718114848575792387133010993313500143939777029724153215297922398729361815959238412161818181802637139767248921344282025581710597143205950138553307735343422405807215994782822877402825045997612551228026836853516823727676081783518809546311556303392471188693727152130125036065858891672920044856185881898190374285571277276058027780190214813135990418086354922887015722254244330862793257669707709082923391044565235051944434540763938336657915991856988852843713018732955834708559921852024835406557592854153719615080369260476825566641483018710537191690133406433437791218681390496400001828914589531846199956236739449112398206029688265278374805742486367434011182523016185727004673163563252312715739327066642424887625016269069881994863870553792107194152833531827244747982696979645148934182117246214532153208051214000503247267607900240795087395412127339750870941100082893511770207086528161400937036263829814707999857959959008585811717379533217916825861080146768085643137283527472084697934073078243755907553174715930130344849674615035584217188902934907651811646419018576475925474447424276688089312965689127153547227675321301729725304120201723900167807479063483108068889289823518579387252201756172919631935033352310259910742063047933657550730711674459943062169087973522816831228335133837391931120007409303529240257267110460061924000829207079825188946108916836216275671691758716730175340011768464920175537336932709649196050460918955152963232161913928861891187174818601294613472725988648805371074519033686965626832754064546671720435777170286646134551596555863774964834896474248769279459508653988398824184915322831601931129761607086072315579338653159019459954517909627012281387237459726042244065691178865959947417622023149992095963905190114602010307517602011441019803830095145893071501787920605737787694299226911045652803185226543493476586544701483146005375522248346098725791883363188463456930860341362223393797813321685587711319149336318950245889629040409410531126059185273162820655233578654095323595592034470667636231097918685033850828181673419141454450719393082977850629276492017910282156106080389926706177001859291892064395048833664004510901668499164131828954408989536294883497933933236326004133779148100276395000223321311540793773210573132332216331095259977482869122126126448615623856960202854539091014664599491988305976486653981728757315243581755207769611444280617616344000849545029142320163783580109309255805125426489138602029023527617188752754669976607462741239331634809054189048449813322242343038224317033379467339509702372760605907922528365658374999458585948598352975832654232553984302812263766938529354463380201853044928759006317262364859360569653516758710446881530570931086457226078140765514500734615988692838034504361910689873237333193614163882212821573570384266917292673358209735387526867671986421972318019256543013237014782200744214939761366897621164393534212530257104280509071640871672641572703459601513412321336368164970567853983344996143513946816165830969827944428160131188151717966759824591844517539821007481776274693392633931457891813111190738023061157665807548214930864238117009287268214170737410459255096955191943741381446444654395041040717679389716291682883844373255553555461390942774150002515847445195094076961901807766727585572966923013875428237513869216841380329521539871867431890577448871794267087595925534643298475002545808291428411981224249935618745713949299879897869082724540477748962156314578477335063642474223202993834263206913096219579214169232209662593226430772396301642721347988931871457717398260486426864657455633298703263951318874209637572150053068344612031517488073779438030034083324154340566520467316180377616019948833232741881335927603179111434503385479635831135840548325841143011196998978303759699974980588555646267312153278950996619015616350672972490711792869683802116920518305797984924602551969753075628751066996572074541769036357990587759003853540041383780761772166750818004363251606855467097122148561034679150582010566233577714479091615424079329889487057685431957504423332968964796023133998031390601353401081870812747493676612141104042530025145907953582199991351837560829376219891538363148086549670418670093201739001409305854259481473012126456004538528331025151790773271760392500324151043035429334125787764826608887575807586797094120343527613984566413568976638658086886476188227402623683998451370701728815325109948108965098170725890386900832426975187418741524623726559069782751134127057528855333746339687292783510164542193489314676997285290554557226037741936369866518070631386605705398137571392471801094541877448537328132793616637038126861635290550372871290155521110558648944945056327844027889352412441674738210952652182973701135130435661575162577824497774316446236129642070091309331979067597269243352997550605064305727326753815130005482503121799998169198768388160161931091429279805062862100072111972189341286267006242311180329102613754164202547868306227838888982919075961018969251056807127027120353751361374217703953275758512912221885231510044455698441757841708218028833998349460061052363475137033060487958368726819114953952277322037354005289541133768637995602350871737533219426187173437956948715105597461390843021507395646293615996054498680164244458624594169958130639896286154628545818460691943673620464675948705385901417331405926169422745768766370014581039192803109168648983642490010126889677818783815400221769614557110819627382207781812566720645946841433866675364682509244743826267913248820989268116776605797086623263043418451385434072784206308911515556856762067835674256096892888603816114323021175317031058782161363745399807386899950223705365664364502360797298261366880110434222899677491816468978358790130006553956668986648341229802636206980577357243888661119584880159801659501260200085894335137345135252013142575807332465782301452140025435595701113731767100678935630459047986452835887668380933378271061614824727802322708686113512516335934879437128015837933704045555936169961531194310017565254903635264345270205392810344382848772813802125894681763813275402073069568560787971519086476278018744707140846942579757271079470464024479849767628577177773029465588851929823651802032155301410462691281822081331844759770211438359468918905789042659598260545106006556176385623793525591085951326615977731472309303830378115668207657314159133263663086549695218686208937944220109367348550374615039011891425806420213548039156847191086303650150465100053521546198877758337409709538071552303467558008812143404854727875125346026288564288716492967543561193997039217453077089981446749858214365436582989508766842083122650376682344963387182550456168008879331827402001144988361101479235465442902553459830569496053133025030985742866221007697183652454894603200147219489782840856985138092829418875834511717226599782361536659762143735680624109137205712847743894581189317401258676268032684258186085673821346287506943946973442534649598633659938538713325879505471738699494859866600263675574587194514615884819933970766645137737678705359712273186546739841136418763642801898879847626032981628828625823696663707596647096861377045188872996890432370300119383235798993199403749710659599380643931751843573161029093928198136358294151969167184238552731693206303312640860516901656055609601619819591338758881211152184072640237288712177428603722551963137086402928895269460671253937382958790417980062099636183906781308072181381467517350554874059365100686380971119468604496925538037171163516114211144903071718120428053434822999708565065388932404122940615796429051412293591710940280520249875130943963319039618022824766729191623081054531044219185363557592132454312924197549362051673853967961756307825053593569201899542338790079637102657277940051121038503651224989478461917907742483800579967566487262231837754602937604369634584779341132511310249196279654974593693628066114814649673993704741127213062792939497786745244167161182441057574125108607704013494825360903664705837682075230989070279996021785870058304337648057208487121666269527494213864548417115723443954302424572305624262961431491403968197039963156064169525977947414605209676016938873318261187046550304722667178111605082586973967921923530110171955938740539729018166694269878010552242341269960282047860533215210828070567865316116300800013271396936717429561148602848964311477053368480336241949557226289952193311802725332317811083761377557747575294472397318652278958815514527883035330947077749362708247167607175187489121739432988661495816919213179015599141922125292962532037820628138792800969578059539480132137647700433324415977826268712403404359603384668683261915001710708354226076251981182274754587914932460286335276982006595187586739958718633204001734204717263249965657457209687425652449001701231534092110430507094212798836472185201712386656685818930462237460332114835021876639108631993991145619110060332988452060150076907623400261852591716389197666119213957593942280883383244904731672728782846554843767818050366361727991569647726180701152291814478320810906576336339345588798885658396400108681179003545704656183191999589673918121156661923146942401404052823963056389606700468152942255206121480957639088610143388793141087967874684644648271032840320584335602279081624542119572460404084689467022378617652550540833547359994894488346479734030730539080218142862295451453120565085847505234854806971048011872223945426517432657366735522027932879064472440467844072511438204074283718038548784376832089833613869947490183481286451214978165181464729094855805802934853919305724151597407984727051010847811724452298914309099551679878802096083614089038579397155867496372619600874304980544768886425037776055939475778398848505136470660272000425686658927824930278515533423051546448256810085819495630061868509187866532046636507912601938846955662864721454751012635055726931717927496872915784899172257396570197613185662627835674513883939172520422620774002199215322412596786050698408711263374634903807534339565848176774083507424504509972443023846360095060760170655862450893309194708746182989947307726202012664071517817169100023312272160294484750882494261932946080758479778942604754260230744086138610044498440679128737355264342473807496546668943267742924853324802873311448636523313912094588630803978203250222628231042343972561551256677604288422170961356171910740967477265819165037040628451506300193461628046912061530639920981575935304451901441762953017334312362032995847207192662735869790174468594073451990878646404937463656298080124033660753232787305131927946803306737377991039053339335393192811835031210219744269845417819892436427311402318486325779084471993846719135145947468321912259779682800086541310913170669925856432964901610886224332781135563372235155034664153498444757815765730989127926142237693923557731620647968347804792091282409547449089987127003623972326067379227829765614204814278586004093530832003610033523018890875114023116573831405138557401114801458172745513286535012801330350234956338904278477158634076555257001530196642192921999253461363046686318375792872140098228495925849512407969765189388460358881557097855728738148894992202112453366033859800341860464435452626512927382435313203957031976065853993511029756034557168541936583769320379752479407846626969791791321956744405445195838422570192948737145352505223571262383610920677432411237666058429838931327566294993751484508142680095345893559447589168031413160800430756497741159064371371942231054260064174723369888618946037993767952485712639662477896295255963005595670338715312754502518670817814504417725378210117304181320704839686249266730617980471822855869868231182379407822729033031944715227590514723005125939870500153819783636157076456995564073347611493255547540600106164664290525657100595253669974458209727935000151502519720288870205483287611462335627209486941495278972107111839993254200791892727054598604623367190882000405531297382554360195124498617994520719064505198696912503372136629000268123728675514362650669680503403050358188706009956895172169473471726831812673180525053252613442707241453958804886307204392333243326903649776158903930783603389134711262502970044571733986843877966636770690401000298871889529463523420330599480642823358771052393957493821149589356634290120963534926012183027533933618338445667814116324102331663797972117749451313331875783669015602607916439482393728124534224010738275786672390818370538165568295864330977042436856997529321762411978264324786951773517160449446090960927739738583706525320274456247383558711784590476919492017059599770870137617298026645964809660600433434309000220742754164848620799551832991247605421159129225893225947834499052479376688002261031520930104125857916550709796256815481725148073772463946542764011046672583091832156328138308452796605720948032593742804061853056197787114876199800266653232522925020930443693215878189917127248109552414079609774052435208500501344892796639077726156569529214752513401150710527117233834019855986293084335235911053268520764141140448502378684846026629945911568673384763851982234151631858776872970957296508420259914685025885905196952135676548441476085281151652383785140932026779438892126183135791530578778350950107573225335857159316126291048157237651084208954142438016512659047411044305687319048824553203515148288384559408080381268176742267108750693526303881348663452664521052522701873763243573330238290784542909731957583964719038957538234393780472444724936303173359971128942134822129123824951169748218334653310325110265492301412431466854222060095901655037517424718934331240085602267782256331518404945663251770416025192939586158905500468644730380153229395396707511252615359493056597116315160181186591824308986965476291079069760164249054037125703362016643556466386542971775334920408334512766719972816464657271792805332298386866763569383419867508838540297913400630161264351780930018719258091751416064082018280097986738431485086872346189860923246074110149010890517247366092777080852085354330910784563663838259912720660520140752732449977248471830176839309947736471033062985624639970216589128168849575163236682014357562628656205198101297702664542185144008738627983516740611169579496718474788417862857503262191822481900765887702409495093581639021648189128243547828458053636542934556232363185377399967814784012035421856453965547364063953822844586673344420590034389183690151195079033949005793042055540861960202428678720016096772165688169087195749166523195726446582239170597540709620216030628957265224830636781579730349133258221641529697535743837703768963534717015666538507816041951970364181490990487716821369985209286326749831956501679936772642564313685782800907632262666129907250230465541879205267849737213462709725384104355750777815445726728934261237949033625638676473037238689744620140831571857673003460124842111670737810256661420803940280959038817984258373823208175469095896485696972485247445618286092494007490220022579897315306310491257112842446478351436056968230012392694274691746392477949914316931708866915604860037251873462794472409969372749252654413736663481467376187506118862688714606424843610701359871604034248305508126210389958315092284717943721035508487133504120659385853865122706534867128699994525081287166008773487679813694436168820330681143183273574932972063871625343026641855995794734039564655761116943607962280945315270919480511537098163245789265194606363775904182544530616392208184100437059893746408187058910406334991361959356908707378855998150259338637044803746894700183426365981932635874873654959226778319565711260248526687994993659861887707872633851807166154300950310205945630112953535573184720069116371969948775265357825780686289738295294642724236712632211475217560489936658647117794983225424933886845817067387585509822120159171431741222618843854301316936175977782050575925459640140490439144951992868029836626679344956328003553171332514602977202448448252754441533040696327371636473532503791898480127200066693246669943270152984515645279492921600674127647626079495364395706017980335370432638925958268905695588715600061292404250437902492674584656633527422283617926293015601009238212189792030719105312010477054303165148619542741065915298666965700838953036149835455213296337990537325804382807531600029248991262967431949159365208819096997793261593317258995390877604144650649074248361201640313213142058978360908006094264870716785689103829397952438026518823751646347897501407271518083568233639617031779449390082075537561963576295280993583589684433812620157512644928750972073780702695064199226934145708638425919940312133721150101197487941638242964337404306857891653982015578293669850734368678147336054576160280945335846496149527939178151604395110268672744135038648120983836807406926212070925321011929087080800465037369942852216484324163061196649228479047117438183768966717081745033952760490430833473250633075609835470943699856716734846504063368851730276042693448828848219911856469347934326476979233743835697883131598502496095179855921531775797127703968528978898894394238521594534207503881311911175069501232699251653695865505104958993306350725258264073509264982866186692444409546804217394009224881698194552364756436443721525319975158233600906065967283062982363098458440445052166829939765456970278336098327822724798313122145189679518986445582871543544152435904560948894770248844760493543818777555741272541644618774783556758749801896832106617079239530413693327400822383272888520469005311352025162980990124799695999368667360132893593219152438075408401134030039184856347553813922106690820295632943994205187039336590007422574538202627205460954059201942681957135141863313457174065366308003879065185626436984643814082193668896693867046060587947710974487168786034047120800511206458081073174451106763705453262310141773517629454177820969732460048677852039499600497772180223555717554242882614216593264538590413141908224079458222169719587934985716690394535152936082344895241581576164220375136589198807306702862650876191959418445446428297342249363399908926185493604938692979108807230817443881620985641044168863437696030803226581313561253770772591154531900811370988122538213384547115511703824021728624347702970523874249498625682432353722939426452526723873551414141744332684743888702361151616234153284709764738128248188377855780334010555903525608909525486109413706388708850145529017606838226928822432592414713728085815941575438218452226035617384548585337980473645697471615723369143344925329137819795699950454554132442915699189200343166352929692538810218463685042425855097873384110865553217311172970722789898432857658333527949408635791005602753255314671233644338407133960693771891776897233454812647727768423671294419953020699804635948045094946982902263560033358830325076677736536175066738240314006845821888956088911628825711385855587803544510870800318879206639030700141360883334847968913175659854291924642818387330074669311664546650796940251137325943324740972053415317906058622875221897011767416659239036481394734338640851731612943120949604264660697326780291909350219758000126412629450188749902819110057493739238217586242667482164549706043158475786741815370458552347960151766634992040266318964803795846788077637841432660848750751791344052680792066396960136619887236517803415260299941562607519148711521053098654222656272750660638627195088676437744134252198465072011643814319367023432592873461455418302767988561802533172373923715289295204939998100181317424165366017507324519989458565397495932765313194787220939454636969978465575898825047351768137256184690654958410509259064226272956004269841782076658861048399876838834350771569817584859060878349693823160534140700238279329668772298504333023464856362408225297888698227735442754695606890506981967375368645362121092403343857764787025914883448304652603322424430730094414329466482446481517931012042024779064833014107925358323128511079251503934122763321347389517902188776183909020202408335670690195955542989015972161580130955029332152599445482187189376083091371712999432959566241680797792044880765404781096080884631627661937760164889551533868193582552960630137732840833174924585300560826253602121766349158149284140949442642421434084120675040093410598239396534767021665148834428292995908979156421330538099957935056410679492595688376577082459381590816334142391547608375573547373646549278091299229818064124312826438173325882016863741649629640156845931892185283679019062512409748407078045461707808137263911771072081772203296906641588697972755103351871385717934369055578225604881047049066392236572695283598703962387010812363204408572214836143022256458492379802220928288464608668289206176721830028333029249000015238831128461767826328927167703421423903763894766834635099863737087777193935888617529558661088292607053283945398434228801315408157256604809707663572279067852696812879690562617662441913466304182580821254675565028273988955852252081054252246025694878382061909246125194288239746643343581723179303025936056273031664566581495679592356505178815209337083485680364063315013608642594061878514551944198440040150937329516151290828853114625894235023693729877220594776959848951296454098349199686760646666421660522798422059967888931916954331525310713299674689839193333395176124832778677267127009320951989197056209234081387046161392355092599111894718393806840753635984408012152649354975894717958048824416385034873899722160579127780908733682038037836231352279302750434033218353865132260569410094489274706479853222509419646594354178702666701375614014066840013041200539079801019854502803513909621280167798232649588308013818411260281876624492367717370141499168922144578666382800475713288033168703160326594802287328774758058405874267757805305373177991826378853652467065340691966832914728182243904865966005437898536106519509316557890041876984423323739133509165781056558606634118594172223120831812881094660458465400833748830638581257353840287701295400191645559122560568948524926254843060697743234123502023832824031013308058789844351694999482762409800876815554156426671775407317784615012413634435356188501631458608937046072063330268400390430494861442881892175323007111765795829234384606853988396640004265230094703703814081289051418820147870494367637570528527865452093126082274639066775288111079908928639743089904616147271685467038801597134837772369062409455774883228004002586759159692163501410999238322259500688047444962718431145945399252170235295016401116574661852375149843961626546359949020684830532716340029276975198502518055558609491729265891510280532048847099631610664872957813897079847474695130087150188058142401972538966727123268580020950288418820872220874323901956182364338476550506094595721417040706343284469686755288835726352346802519674061788929571616727905131328354861052555287973964539645436548187616685569102620996571505693154959857478710997039832722907874074893463919447184090458065690661334895362180364604258978839772435504406200859815462438898961992198173253769739068198927940917694877002048239883508513873889406443807854284289895372999996196141836304526966446870289847831890744959079910306653198454237752049004492484017501895220716082393397382450879490912716925862927442481374385319598435692026339720009021509592681707073148050537261294521978494648321661299671764953619647656421072721222926528826135895361608546792736729991553463397666533219907633321889723617218202010161938692843285184800316971003369599690778069962023425025040504207929769589153764877474421797341546708945579080581974739184534596979525880134698357431250430225564477434925769721578723186548230926774990042658531048750025833978761211105279405172253526338385913717560171738261028710583687882648401155155861241476389948082739732685829445207528179316579702490131556194187387847951653409564172771506549306877227369364793066172127324123049631756455452126791933700530960540578686164862400559034397464404211965722208227001384690273205634979452605321575458135928790164401600139159273741727855468280238683950056208044008522632165656174978292243545536323378831732518743059265482286841688021809856158535649048842938804887838471045760442717333812512068767307872421146482334986436689987300579732315367741736501883399160963145660660847920291702757814304173820261618714836708359316934848398280164950443369639914956788301701223941854800582363394596062719631887207195737820828674698366093863908099416278939897766902347474077095949571819377603156748421883656972786659622589629183761409322344348589642533477941468432473689112688855507735357636899522500250280289838654329515163242581427578186399985059642748718109325540960954152761193951218611151765531024725012039213634271737697971279497012042416210040499088552646777866560735930154533925009353177202617166321976880315335206446720701316492563125528272016751628406071428820658153120157975295612280136402476428621499801164262973359225292438093945271158117855153454663422763429309273518875202961321990142880844291700763960828043436930299796022649225397084142142994559036560861057765869782463766325317588316090309379740746390445220856459501099227822100289908643602794120976126117451444769473220333860327646860941422634503092838943826882926135574521505456150427245073208505551386028311925989413692814596428353371120930153107231005661175390236169875440970588611428512710086548780301316834115266766068132090042702494375237290362235227456188098463376752500499313483479261209155639292701938999635411052226523325835508250899621465519565345742748296457177405552118010816558309463239996283178607669102107528101284346862230409079390007732282560272584567541233074737808888936259806668081305021149344176720033376019800017737404023980491283184271042166803680600288973526591427501955055622919678898572755907787062665712565567184878767949092805869423428594463471903170659573285387952998242437522553923534075352251366824573570520133764618537005976341873709732495215719173618799097518386273221693648305057909187727029251501194764506739525662342558662814634362230404463125987404152199830129254177046466891909028299232370053041128117306662652278281000803375688971528073305156807530230605312175461386841419387169305470669428475920142186058602822956284316626498377425348199216985960534472749942266468929791365648408083497764398489122103955341836103007955054023952643801397740231905493360500851022916017425766509765717224562613519427160068083825960302596708974621329982638929274854183625699751515309637867799558569348545446720548448833659077979957783670575561548606742042882538420271435515075598198676935712907558312982389962600783022228482451311375134410936324332415524782294896093746557588342324857879396539869898972279534393448395968743857207378834231966301191014107102714774845716508896889916881838904356728408023825109377808511063292965821423657075156545979651933400530683557332019872882501709336226310523080256857074018671001797008533552371842026724205509520122756852682321679879720373017177890758725669439069588880065928589177906655288822459915256989543590021236911626651490473681476068705368743101977540809603849679849455330884504698630297610384722057119192280488718632726597970654910070971077980300542975513518768484322809095518626570052684172162400585043463103490473316615532195431122312690356141053881336742940344858818344706553436788989899500789785808755395919519165510064731408174087619817639508149703443481879306743945049885377334203256988745434400078224745568225046427211529718123472845658259604270067299560678701021679411839145157433437240241512310830287029086201827014574241799198294177209376823253101365124735620659613729769323948443191156933214205834709973377159203570572570612495793422068199464573782462890694457858312251492859859064267953790739044006062442091948985817737370772226473188186788336555430266498406180544451699032361469208207585256856671929357946468104907488252930503934166968135265816430365187643100525298062486681768781477353338409300057259786624184842644800140897293094513265370483277581710951116337660744415325012271362366038262854559865823419462289791524414042013848704764948208967041335012903673446703514562249602940746482716634338679786969907222666841470377461775111555424598648287058921716479381431657802814383751661271484932222097061633007238821814964507149623455473920149882080132131472591159772653804777024433388235369360675747043465850730066346045687677505275132251317683480628371448113301275295590347769996273700593941944852051526651540467350859726242590518258365659407459016111618965224249601969950277669313505658928514695374367424076377186417667272179974956962372968982340296616561581750985825970767525051367137015173083470840919258048070417421428225806307639519643018039932389910236326823830682733830964675869524597388235061728448499378061062040409849329099530213652800327301384932023571860414551132288070873255551619598295263863922368555875193029234261689547474582032911440383389510286019992589316564307991982204446488748504922072850123340570948458695872727653798220314891962096916558280595361797745438637178601650150034988021824557603313249138216201923625154371400390015607427348715345574419465295377247016263389867748245440235923798575985575159661467795281686087810304528941196980470510121499979553827937803545307228068331171837668762844195431731131939029178361679205057693738910667224465899179005990945570567112896583725281702284349620453292484943653803705684402337333404978684712925858173471201871304737230191349113361386625796832716465162287407158385402100695160328718157857494422017345882303438084387113781761268090286844552851725055641765026406271026301498940761294269890893736233804652416554913631320515395452705845072659578436198056919860611093483245749047304771622492041547011056590545185942975635986236748277052960891982399098642217222879689394706226540491137393922720036252753023582957671697778256137287078437370071433103982106441882543028851186856894132606395728814337005191277712484394218505071351071458076112679928328379753519233164440973929082888364771205481816540222208743925436836244792281931874426127344241228975531205261208189605043571002448745113253791259067616870618982756352160884698019548681552977008722253886071126771556361337544428856521937406073987354474930558742170964118336516344349767162863983080230554478082497270176623817369743892497383928780579775396573859196720007288185681614377396031806765379302650257706037830558756516362633771742642365092147999797026106701989908031340680545361223616026045599684232918161469522446391377263441261593404892911972791130284442177540513593870160440567720483850388052087208720334204896330016992246875443154435076601476800150211485942045756070406694159402156008793130779733657860392277768233710046350111710039227212627320082160612198158895219902314567400074569735747638184142409991759175159292912310357584648974856948789382429781573086007268903529102889901469684097684455402168384722655679524255442672995979223593727703367281734371052755930777573323353714266888596722224323727603981777357515226032342797916742079432659244794511544909027231810891716133370028943319369751009766247494996638583874969787061503172272171993908902518223938496406143831363871799844259702060757219917363977974480671987492844362574660923789061025256976795502852466268819195312639866749351794906129294066745915964134936997837267377717904155521110136146980805145150589304856480978657035310470663754871059987726698996345521177451121649230669052934132832224739918905529858963730331235802330821546769019019294610419196809196248113104031960506442789745575485071369268937819537491360568650826441198629332425881555323930401157037862210474726877546952306070371653457001724798484912385147613791861817623260066238212860308284538522170353950723693665868399005377130711826667888098359742017429751732285660773857006134668050780112371126403206895683300163412901759353398851785552433276309430847825414115332413990801047113261810227590939105144290067788349934028690045253437428223037510512128588947250839087147395385381026054082077305388947612372761014445456519327645863910917377608703140623776717183842161558319414688448314386020367548037063588159505138180760891870743381605226830086502337018227876317981104946403948925128450050580590988156393017912796201479964242991149580880449782572288759675490772381469669374602844777146323832019613680973453344537201539680302026366221501753319047812899845212368509376520609223891766682237297596439097783698479437804641993247865975745309070738851015629583655229392225286052664016772113211496057062554671511259021780214401781104643449406014718958114735077805577536775270009998585339998242753383945574348642642202476163037785785904973650439556421149483565145694857240936361401101342161234770986189455363431306397484812525911046281370438783340890241816451756683303022509109283157231808121478994554890589120065540617037507314261905492786457543642621681242007899563099566347011794837080728672535396182558720750463340400972763899937134739498992997988160234937694467278476266159744504436766220118952295065120456444864812778666774978481053414197210368224050721257507214416231323808213290624371136414735931673269478102123202349022750176889955423332506377109437514270981994528278249534606501356077510681434486724167702257925918637942461550608894622566528706915044084572705216822691534295442716538107021409299234838213586678682048554118059359659989619899577571387130314376325624228635674978523297741274267403383733215193855740805083063385019705459985367942103080143267937300162869198528445459985145109094662499900774707309830290287688467517585114543134660927278864010011095237208315557344567419553936440645571885602266887932615932677371433055216476455958122670927095194462293506305409561442444073635820540300314699122856680971769906058096440455592859365051849108106422198370700444198231102539891750851274222628462408977192295803062443622528738868296605664015337587705738574095770656948599937362542443779485328673953925119476290742240758377263758044500971149271549913457309373972389991592411972410148316840671661437270727758642413327370613928587949081240035352509681256772459320541658109657359592992838476835426383678688633234808590077394812774886752710200523037441942237611691633805087421875974740305245821698243903910406645924629176573657649179922488572329916365313269106590265889231299563678216066508126865442641632943611523286646057997634563657429188484424234120773875297777342057377022654729147182670137191435297311475245316151509410692254644678779557394589135230805131284340271488851749066381202999161296864897523111569546768435603730029784080763987255285849744856157384457608851533565178607243847633641138227494686496082630445201149037671882651982933300458487573329252410116882149262395940633451474137040233748729243246947446314871937256889461433274383595712894644524996721483406724232657539103718583430025381501988412438283936169858276313976086293737449256789011364382457033578499867072648882197018582423654281337908861825140750751413907684617382592792190994925983540257492075790310257569374749149261063330213309978456686464652864846068622004591637216620376225323791498712057315309313173357806451858688963514450222791915474377967369079894623330427879678472074128986145701190234742900010575857082450596954889212487101195886357539595079410379535266044818751717146344112109611543529332031473359211412124282630571880112819088519147285343490032606657872342258570854785118595383437568894953567068809428214516330317024022716331405102569200211833365815416546430114266561537921766311323912820987144287917790931679373496494733843759706956633014579341423693623359851297715829806814923101388587580699119353391399602446851039606112669205593694603302681844785069465147547143442979983780918168616078069805096030125346272428255894576269641974707059244352317307268162583369923054413528988496603975494424654800765156558627168052416779158949029750079889413460659790107128286443589758592388581408245311820767351110913639910443991096706110039612618203501179753066716979368272769922200562551539661355938085412066494753739358022531559938463915810711589699334546741171954374065259780036892038154800694864116216259338883298364063581641610665890167222786643306699189248782718508296284058829336600784797864288639141742470642281104154477739557140523105678955562139656917018070124100049110785186167272993871085280196606813399077752402055746357678848739096902998548842608763369700916327615978914945879678688760862994203814064705487672956954205826958251421005698782750359782938830545406188692838928600723063545565498545833942829287361803379388812332322408755980869845876139682399921459238344583257735730406081488417475050537100574029771194542921718461676476404527814079242961492951637826844088094703659680927007623700103882607842075144125331208913283618532237844903872569065258943697354387867081677627494833962136638395747781779695794055833123150049960382620520112663229020170338191225038922186289677965893818993976339337252450597876023892735239939249252652146860201267925525616744698451513373619291292842356243370759199854082550339106954195791169120411039105797481040179350912039417666872919082893954942634989657101663274049415874137240842158423399720450914463557114076121858783218606617963993548360056406215535495311000719568197976248396780558182478032111768360243009424812353251072307506526273200445879059261898217388888999158278205659938504959002034647777966752790723221637951011870781123713576800836010465807912568535093047965434556000980771550727388688934541108673385477819530229411152720767606836177389442767379217697098234076991774711394803113354742256048498817066670514362979596084718292129292394031838687049464882857607199035241971761484677827042063172606229102782668835678921619249578939290676450434215046414408625035820121725637451404829149107438044082133423633962404624740529014545245071976937565830785420021857020086749830511406635300119447580781182993952635196251795245567010507522745646341427653384706415916777226556868767073878845159347625698727097411962988268950622923223909657643874290869909363732848348013406160955768687335892808062627953045106144691408268221214584333424891310782810238977499774784711526050954210261153933282847459609483440426420226709996999035836128116049070357996960128544260264513935132782472810799862643552264170639976161445533873996456794319523230606795327722395321353433226602941621133058472253793424809314496342129672477725899633280100732421623668542552549570763028943440382762651295158159322435221724473333182728198736208693483407935674307186436690226662291558604680648966358018698447905476803974891814281908577633338701593172810800504836999151495583321631140317197172679670121804809224162241832518909835784526282117134160640058245318870346200426840413208933575159389287058607733782217310616313240596348195348438867421730900176440828334582033849177228550936827325515849493036464911144461070445388977175580678242578685620446958287514688087176552863629129799259444767118649385821276443060731765992940678125542189441265356947640122262429266405804495441748352214819134591667724987674453484178831634886665739143795231957096368424510889065054034343884057019984171658294122635296041556058693503848173737745580868777789244563801822208756688773603948083997862483679616810991391612908673000414859125830511172530172671178977380767853258910145933586450629555790089572776776805221232114289627956429666957526232013371527685302782803353741290459869790622957729332401104000060037385189698960134912847930327331023790830530596498046531114466855251000617763813083979282967730328188813961944122016832352480565136137767122573976593295029492696995620142158380206503279843888386703890557067386791002944926703736697315135978655822924269258916596437662098528387175682911751112833839356535750671424012108367024015004021507011810979134999543408994392061405148978187036256767820604018124877499544638231809200712101159826748856620738566538151560000888030266281015838725256858784894172244237972754692645963598275623272039116356025532001549358154998264052124931519621483374248120969078212366427150161246496751574926475569265471724964518254822892463210941120848693444548319374485645787784390433008291688234432722962974935302291466292607372518384126371317225761877962057725063842812541078335275983091790566296674091803994055225214117541362383207545693790091250673262666616983871845649797699821473664622731445202717185132281982917823371853092439643903650912338336191772183287455832116323321557436121543151681885993345610045465636702025386484756297658514197477562069708367704211031427968097097898197784379897154310232199944705093644176149863312661149439402200499029565826323221131541507469264727887649048054287440718364618655150609303010537557006697757438360801282952237128003509477018766377195854444080790070498173594718106397676932284414073240806087698099314109996780710864390242047549754446847718404468238966309452149004913346235914357109249899569559397771090925568458825460877132654475557035972215648660438171817804086409844861125931620400774154051862275935241102409134191051960010809645026823662723912159694255939220958638220418289896743022005924208296298575721754987747129349968177912838699396772801438006257458422301722657796763755970731850434741108534108528263881015193765431752512286868592159688945974551613862332779361135308241495741064832944936403145493303680452362507418773343582197702739623468772084882165080454063607017889789074339045536366827709405088491454203284722602415340370005736475423554481149812106157640814778951983559959958876987481959304207649316342186596854096398603862654181601882268026108263003139292522438284980981849615816207627730150105314252095249901329160340439148524877784603434890283052362142127889838578192394536628394628009681481603312870877798777829678695635914844298814688344683468113332350521886269080506529387293079076369957146783890127265587584162602679801537743307425191399514477971190075318709483208729180197225526071005705730900805004865518283288711507414318374075493000023522031127889308665676985167878690440010064925005247614338564936056970459044697836941693437255970941279220682227342758308727127982171098622789282076304056835168625199837785105444280804080357490664777844009341033672766986781524250494256367223809550377244730510765248637429409477279954508305633859471577498795910191115345036532292147160142851608076699220482469030953580626934220678653975190269726751457636848080152569918237933343446582830475280176218859069987301130299898164460544274008702760506350558791181053158905892137060276254408222177648446179256466100429871319810516922508925530824429465295624864545976422241927361542944899185518921241030872110851887519158241656929833227079803502467596399288883918694947039805197945143242792478555503985656598638432800802060891299592940454576391709855577175082378085088262140088754897118922703347205884072963856347401183613717959042225891946702867720070622737550916875195266376646430930524159119827716820334801482068140639308079252103223352840908158182645127997443575923777806927563574474906497092593518475940819307646783826045128750100710184545299982810808573155358433037790515721037248555982069964945173534522453156158690808739476749786770371288142838169470512404423864294217283949999106767956080222495069710602218870299026847983215188254378433649796244129068009299940157029528286504758509397061528764771264110576664847080203853509207763058655078452351002612747299592251022017737356973973633715625665368413836627275127059463601156392578062252940475292253251383685357374251447536040708949648351860142184651192724084201425183062456370175182487385302808102580551621660386681761532843847338292273404105740445974573381951787050692608448465049227280528348246635635051595179056029184883311066841765192177832756166681228249251245927797343474796495341930847956105878438259945748645605671478715946017043305391407438589930904752783330830193892272864140784083455578278295280164916682700240483753306293282136191345138147324470271109138516273053022127883733906558409171481029797798595074756603042884861562707443712794340841790687976253307535990573908514561591447796981184185818963809321698594733235633052588552488793691725997401668571935696120326357965901293118763028087853369037177233938868403420830572727923832642987924050888054106404926336426460220922212313551095099721396752646967735889175660455045066189875208120530940820983724568535902258727503888674219675172507616959244417304387522913864276874445878404213705637928922452090312748269406095457228810451857748574116798834766698986244954997852998527998170790760094669500820432021946286502868904932205157203980359779344462074565525995807476900608678577830334407874095616410354659208426096137817165363734859992667384158152396259002531692256967271090281755663752261137479286948534860654554491742976008204957215089440157547225438772821798555263889760918539619473232256238826048905674968092082676064914605430309878673900596947094612403595393221068644027408594492047399399502185528661849933217386939617640452010761818893870556591382687532584628840936855170523916011508127217811503146922836904069114917785973619870534626332093500749892634068988137994780671050105959827306205899078234403585330084955735768861715501294220936456937449021134642852068434812869819214952311342775045484636816639197533983036794367888712056643953832338045189575599731202307485853734248936195012798903828808633918424665131420900087340779179567927135336145517009620280248966448720670019493352307860494822887162294144957670999738821537610248364492436680248985193477411626381508244519218728881392146856132119808089429181657850159020412410025011956328704996836315752612225581249204774555420774948695396117591863806561190493375071427523745465289837474064437611624864117122293615273846352692900259115048584079108240048320124530088655735681678215718285449201527480953444637819024241092652890890369025009307449978185201968240737700934215875115586043011508597549835884869244759794110071251263765314697994871598825973429176550054734238048480359891758325326472314565311712974140761087189457572523850655112264596683190064489664954673577556481215840453391351844030797714154013830868232551745839757140349048197904771340255339774333381755596503644456513738675143089659356159928503688722370670281895665268563606051941311510619591647261627980479349034836559249090614479028112733797062212445998826450424310680660928221887813171940299986522158101583167451520677871272830433066462423694692673692438979025017763348150378351820426353753726420103304126373113736434630182689351150716404486603305716746309747247170056456169642256894404336154801523077496674067408347994256319865868574694172361376472869391715572489237564054008202925659298130964411381975661427138336814011920382627541613776900277875159535509327033326365034649831059861477912376809678597647419887745768998751410065311859776483469503706638527991188696240107220736448612569589093346760247475876012580161805831552421890073545645194705751853320994640372589882159700846365924788369645031941042558936368140294294566325952366402433685698285824761184254952486005525948795060677870565091450771973054047628677343128582826875972996002062891482532689999872383626878757301126641280728297188682737275090882826240548344045019905122141007587958180878833925060420269246087509426828910354150226260623960024645602015426517697037059449537074686525126555366868257032099765713022423704117186137315869046380300605934769192041892436881394643402783832162341656539830765389926083301697591098489716067290670983991218190339421125740085306383382979913038496803920978357451396844181350694741591527933289541797142934850303401660706899564658023018444048010637820895645200937319125053231897477330971105185988698365642293269665991506913424712221791071940436916128414806888462669710277969898859218817468480079533605999356246068122617913458850904802638103443063756373793463906764270989953816965759965877729477320933488140823461395696418944531090111405215364740172475931954583159523736644889741271400973091535109441973749140157987500824505562326149900058129715801845508183064982666453105601225305424775987846140349703214918952833347392910121481438836789056764529271495437276153155612549766444829674373524011311180339626121120124575444863441454649087433559967545091464532101324882483248696121342860253433357324234525909011379293796788899557494059606593669103939209526834153907643450482519725896101584312280898882146966521626788059096584060769493315846132450182746327575259825103765717278766178983306079434887591281264083609663444573887727165406297886931240866321729108249182807837197078613512220152535828048809791046321203841794699247262448678358287816370369301046074532234212469307119955522596787073873983947930985080190542503510008735467086034059355713632790878820383898021975194041898141610270696701128531636589324962058123494436012615830158738393261918075395074005216472177534240006183840584837644990797967272426933380308335684737766030090701546494672507653336110657926764269079519814204340719976058429383156448901368461219897383863058260621122570115305450474867050821494286987539263834038395260327088371177149005946360397157469900483429860174209856770977298755715122186242561048587583665327170445673112262216809460798515005146949871196953715217196169998729199182939862220792133986181453480824421769577637354070453055481582593865507992534657141883540321890635221223518721359772262439496370031446634593710943265147949214264940382596103174652095364172947469840126810002839978325256525262900898931234526133833353241116060596034089153502744342124986377583021140135526705533350986274961414448561418763579602603680949883067599528462553688221571752810581024593424579249079798551627694571452570427375336221102210641837580633825674006421049053143077958897428769862807392387767070683382299739174412344564783268129800397517622509628718876984341470517011599501374087834037498669354245791368741444544362207762991522676504231699440220330165456106777759046354869690272799128049815536420255689085506475008699670200298204259603169981522295867420031062689826921553189439521252332509762592305180382590908670404976058147733398360939413545065848457609138295144348709353606596072334099275684965863917304113731337034613231037638392493754245943896793944710489932974394054814872932792159349108147901336608630923545804727425195098812736204474834519862427731019371948829763754022411673917082236416280492426617151204706590395271112934602385668683733709353314169111740448597826482481924456156270007042615312730025656468571438003550501111815568636623623358704341399276219592134102102474620197318853731296702354192839849954419391927157874985309548830792378131532038772326213074467052524078032820191826310197668997726057929491044159591959384672579302384854298097784215184168634446909091092172601216668292850430703644240539214191161458332462598987422068570535565608433514810099114480405050078017181295879712493508124427850914273300099619403773926530964858356589009437205894436925026979297523296295709826448492030381799871414602561869437227760375689966982515227810709650245941674798570454372874454708946558237874338772585018445954680612774795035912687047664039353765079326745579240456729160253678032895462686872655770861591473598595167474813181120491572273282868233977524785243934487226845683437496726987780599063392765293513638683010083075199146252786004233094872186097463211112430235511331728059415152164714542760656103026407904988667198375101366332637653388311321401228161014269758157849402922364651572867308578949041421312291004740392399351965572973094826952556041802264993785859946768442822473847865154004188944271027375075552452508229390312484186416928587486462202712410224265484480010693985097615577040491539195078031936998325715021478137799036444545977468400659441198456670183968645246595156629572558383066463201894996342346729044861249832579522892993082583483464739868114635088297016845381710117636951872297902493263440202183909902988952776601111064935964118944505560276182815891722671425202587426346933020489667093608735482754336597905712652721485746283344245201443858780861430915042324950814955262960053394881185128671381825888465520387559762892286052945356946680787142984771805783598255292017712716634633077657091565195471535708465568090142551020040322787618716214098739959196091298602896000054070596221456962541046816524781159413796244924557447382930616851443970182721535941368450402728956086110700055424412644953851943949494717699001933786575953251565676517042611912239476479008163197106697128258320284910593090103062836294213879916649076146276824803676270808400715462636738367521980816635213508424689282597146118292181306953471551997017165685574069214656906045083428786619029444397745002523021578707111636769625749780009712569209159540906019167600285522542274703143174536598430020666947873027663264344501049232745701897156252079408122404392050975194794343030618990435354533651582121402888546726490425799565342934606345630110919710919060808747161579708106472984940291191391644378900618218268569790396901367174459947476947338532981745651739490204285603097147164576870183487738116682892299793943779805110682563114263551213337323983656902422738439754485792887192489955889945214184187542008976558176758729129019531857749549231049611286762328652514430839906784182569782317135369780058634272420510225675509528165706018192779131011674952631636249506661382556123098658874982665358644650846028250584403003883651099491125419926879765476906030692693375841795304681725840176458972444916325415398447008929394600984392736291492210124313410500556773072806512086942812225291129156723226203912558410324854271844241913807178072226997479243068157958460396690201634664382232518213685322460790809033756797479233633689585025429317877524832572443931495296308277480556075163582619470710796699750290183466750542800151167128036637870311087196535132261841579059704995316324702512584189649236681378565803653253294136525465590990667306504247929319461014913624329001681454095194470990672064803766123216053356813146164579798234782003498191965899991285089171785445306429432139864050543080876571527421731035296723567364465490157644158634902437448562380895214134877339869863394837954793431653807987069676796766394198426615837385181064419377155004461815629530372904196714496637807107568363222995160592054642202023054597526586723737994280894640233293707718906119533439584586791763302055355534866752771377489491599528602664652944123674479963973261350640140210623962704907806221862560470880282633524196334784175353107019077198671463995058304521291819702200421610947853869876280057920623962426797119019751926198546830722683650641808881424817325672571200886637370524456062725718688008465797167723750362241078649566475949560716509001888468035560920792629557835254716929081618045979074090528648489353933931248494608599413115152077940661460869609944697054102883734090013998670304532948094249182353321614716132945409422596800698296436435311854782828287474133364978014271953931528546698535671735279197995601493258121663086665657593905037795852139970772817262367601189413237870676787609125319186261538011852880229222750648869642441389135683471603269277113258667685131123494703842518913680272304228770125789882105079006583000627355507181943577475387061147781844062216866602914753403820050183358151075734592584719486556438729782961685892192151184851310606822619591884404295384432220481382913711293018138216786021410960587842364635700474084388932352604366380122276220161017557293558285694041516307069546045969802489569629271733610073459236493674687410729999963473851470189598923335610244643204570332333771471048106600094606989016891622180384379315140450269517008192257992199324588752530075203213364403929804215442228058964086231150240242439526809668306529959032702569432341530240790940162289817505145875353434980791332282276231827116804199120419666938388848439946040799359558197538885095154585337616330173756558629004676960836955833463430075140804414740529982561387437498125629460665999798810735667680419888263668638990025307322974522053705509675999270545142080484636364962040150411506194689375667891203592749760909665033385031857145489574882037208108858725409359895642386664598169842191427655175377802382455034952701334171307955905981458593284484709086567194262386013702027239953478570950475518387015577375921770508077919509134565667754463398952823645926069239419570454817969420139688420846864208078711035245996319837589087463023751396551659328150107601815253446729776708629565770029186311298168442723836249276844809413064501311289146338921425810923986865966098443465603637514276741075798031555203106714591266476367352887105637063344367979736353320402622558265850982073490168481879540904199974870648942291025239057858846859174676543919187840784608902650107349678227683643872767931552212837003243061741350162988652059307797370696229305027621340179044218010264053564888708916554657071778438521422364734848070362394436840013921062049942654825978063233514573657004501589204340356773022035763632300671368520440236147477059154594139963330179101519020245233404845567337579076048709160471626455116158853444938768754133300097283836644753653260773331801007541779612452238244339610507929543764120623176478011612155764369768045321102407695410657658781793456356627420002412956470917114325338618166378562124877954404532099651270899788824112202308668225194369009399724224824727729391075487592808587312077623267860159882233023698310539992323923517546196419883160214737750313847238557441293731451831486699998340687204244562812574401360798476071576734352664503749787837286453213097004240198959813393864665355449212378321794415375936837395490862700259295094237533365738479923047839014623679164834660739315150475962942795803333530498767944292719795022934305420088656110174018305138684172745347153688624798226691933553963337918368585665599976791825950811184343581800992717599279514558177942126833127247910766939056731961083585057924583795381253554364255489776003352728761268608170656528595269718902529541693366022118970368993789681213088813619245242264144986465552370315060506952152750574377903682047199115569894189949066751537628465797478713063681947137227931188075432250465167720487324464307898359735145420139682288470798113201400476026479318869682684534769768327263326599266179352398048494457131481538921679675431924958726067275963149886409383060173943810882715002226605179231854415755287866584430067882882599939741505922040967151028671463905765654500146449884985800802619323286041413524360719300988879952851961402556728806564579170791799594132107600726870699531678844041002850089984836502828351816501350740499982388765918145288938895137536091705942121450136971360903818565670593208034475339471227848564405007648661332553051571404973878796853828304473906604367757883402180204793905356046223293424146915900428623321656537148002380687243801633966636595796321717192897579588120400981831581057691410732555351507442070037929520431322254178202211222991973902734365120064688023648306388277518623116045198169913613329989625776510371273998437373106332894831139323367656901347351317061594419361171844516136169209440113703994411236048301299803797615368937838799237481856813222692038084373077775330287476393159231016513643791832990139801973786993035885751011680359597898430225809250582784759344311248293727434572838507742746238090497866199451913835266408790501868999986292335910430704795413576419046255260487285443448084261345773874023348562191175332672680366283832491679106788335845785612691944314491616159577203720387332538772631845160210747127439604866938681374902773195856812390926848281591784126574559530094931275412229575267570848793848151303101035796175832529200906592239535204508973022292887995924297112188115248930697593194538600650133151966703482809557031177919444867713219103278109801689284859121751574062714065149412727211029960100818051044600257042737933471016900598483443578793970361440522037734115933337376122295261976202795669234342804924182445077537412578188420878837327479662035462501170556756910488391743187007722255748750039852547452710950588750940168009546413834029379970259024417909096159949842318205318256642138524312119627645345352578137547123519712271299801984702769729055863275076533701204841549201595188827361831214965418884646010743329404683794403103131118769219765289815619708554720737825704684024372062031301497662870171742327746277391244716582732233363966799687705279048095222290621171788862185263908458947737325514009218236114784182778524278783734077942635248816205904790665234727656113411324608260491252178867938300205002331383502913912618879783768758404573880100925118472271002630610575932071371951220489663333482448353792206830781445858242712580591354367252348988929890090182474105513031677629059023618777955888498270289423931189111758699885260315798655956226911240554899305541282230705541677907116838155790666597016325271535076126259984576134109761354075332972167432795302787354434827470471021905052832945470142944773153214068725956913969565669980410034060074732858134010233221010532583430166545988657285778923304409227435656454560274391656589020539739202735852666827955264208849929972818132600399426422977104497233590298146559233363030206120003111417226622750245200754702745673306524806971245669054248844263310606972241041867913997393903699974212121072335401887237412361392270740277377935856897422695592541757757820181789621625695530671121635495137174222232927283912405266446057067192253030226830815634612429931341404158100087035628768069251812833915291926962093624792550155598591140453244552895006335707002559168215335076077836556995792923519691680642955997410711940730778461778717770541848078664752414102063410842946973840516770917948914939586534646992906401339833106396091822527199286527581544001943360504867209809122686985623230312458938327322919552115267384693435893148083360537377797207569978695019425473467300364112870934567129703688442815131677644515695917655339503079286083817835157777427696106517944727462704649904482597681152405351287609183054520055403000060291462657515759847974746296942410352754714966194143234693876104237450989822689599421924138398001559581659084636088674281533361556013300152650280841711467440836285694097454944122099204044674789485252868777449333270166317052815845413853798531337855516300477915309007960713672387423570442023199422254658075574525176092776547574495582000199884319929566924934396758162334553471578565917364768421847504885839673439366774942522324343349750474617609235390361702200189861102185709329824700663432039269486558709121699441197645207723912073243518761374469255595097938723570190254413491802749314798786613536739307621274955200136383611342185529226006941457837321548684276007487996461333230035358970965372706807811920267358766114487347630075030522298246178006328020826311472427066404001688032141187253544056938564770186582928986996305686213439674838600119736840068375702937570296341896118203996568100522750115481709119493791822084787130520622767585182620085531456411880568595558175522854055179183462451813571718114078979097322294068568533391440332182705990074861413955040739174584559093378271098644065444023675615571156872202919979361793470279382653626442266621679613447366694604365050913818818481163032398522117610467692779956572156832231765001715721671599370894629495329586192529487166900994153181026617709201694529231448530504825523475112742135713694820553891056100660764797492043616728911170910085178949935742035264589423605587877122690576569080472358403278739817768021545581650026100873980125304386622199788728812800087462548003689396590702018617773270587712795270544283706745649389458988521514714802983283912585476766489167478451728732048019164436993870739943993044225926122882166872994187307777132532780549259574178753429027411077676796019323732436884385110200185503169740675429331035539590298355639717143221290387128891320580729965545617629597336713792586078675827673912570093959217777635151879247397063436607324940888605789141786561964261837435932196248505821406782464819458422013260041780626506000274971675636009640171132953683870746438857280805794158700728630710220872151907864133712072547504165401681445069780257982747277440155131772972239367104394067938702516335641239079161201053856288326542442924676822633423281691530898186196266130257230379934842725961061215705059627098694135126054918596306977766170855310651876717392433706070543148435568987212238253334286582385205002075508521644549784986867592936234063032787596505698944002675035306251234063898819786064845928648044639269722279405971988542594661771271679742806006646111080350254450881810620943000279690079389537699974456210381181842793798852923055652238592283130316683590961139322680342913466930362617835217312419124884977431052896929406740902930896498126472335569341464077508760370992895709700702419726151893607256107508686255887604021715244943304785450228474263761061645666432808744471130549915761908903429877235340945822457039543260767370289242350432920225855395659115437178891429637834052853330749663281059320590202515875827950406751262703281929114592022924630198189697046406137909134600679100048292184428964287471862426663607239770537908941802197972797019271985172642572359388331399068525091440474680433105701846649640413781961841637641218682982178679558218604200999251636121020697238555239322389507123888090573088953173756007810303115312335882032877078926391393996633518736604734266164829182985283093802447924220811058552220867325843600296776327763431682398618478367798166594713825489821734601403262859632268336359797836417487647838270450095686336569618954363580374232603931152579099169744388207915412401760401990577099003892914486253355937350807669972526366918801381123261315331256346594771752192423020491387333993363679424424927422607127446524093179669504291913177505363509543244127763484522988576897912381001204338098668177931423932234731974648378896254483340998537314270436824027613731089195347778320739773296952484643937023946872969970184150871689255486149902189416840898307880982813655990340550716329547752385589024850204895188633275733109056445476856824005054921166990737885925752081261120125923326598659516656986242609646724723627344648674139801229617189999071088646121995046915479528927741574870901619183651287528703006310179605741941205561961727486172825131263747913254951112334458644080567742305927305995549248086744503216866730962507296344943104264282828339881016343568383928296558271496998974711419994175481349395905066767030562042992303301901854726111359049418987222435442053741373033129860361351628583558151216800262749081006271865287389411793075025778045128512819058464073145203256998132913153023664262329456391068990255525128860535282020979079499053525317128566131173088041881588793221822501149151050849076506968854324621374413566461742779266054899896394272928106639883581249980585448143005151646300521875187296721143307162954078362628329910402760248765418834460878906489918383574628904099472771609367337641369642546700056097499537055829614429792490313985758168791579805092348312417021997035529153201797556558521865547969807311233509919717662970719990831737501478154888214713349985294097786806200013473953537506497269715649409623811913557483926025719583035826702829138077621769384587658096628335725335952931443351611608539219596283249688763687161465570469585167203275016905959983850266984941618985447204614437178634635003913376161005721212937272533432381860903711073603413223246751791614620827534495221978104677246972182215032363335090855081828123166927034948931699391900827722549517460770112851223450167555986002857103586473185310272996411385344880250878805773895469965253637229495401205007969612150721809141686808053198418343662101800859262501523250054908673574702517966767415161191843511676133721057008136121756356165374886403233332571756907265475452804584798279574372013933080383863977207321042268374202462000262465358645763402099838857476972671918062103658364665714542476985639708189434461539266537073282613581422486082895395109009231377157103012088258910610807743535059165796621452014045904825855664637620393816838409897560846100819398841019627959968775153262261008564384268696884795394395940784618231670631127755058243788323567462565109520580111576510180935728205020880630587276344524034322674627431569250650628532187633639912036503207039293593378915692269797439757769309520231444285177920649590156336198066399299493558662122780498390254138736249886337428891867000070853714060300965635235186146538439152537122488577068259703281996483057762457717240450482532952419766858733017611181568384946916230579718778233145953112504382319237154895203007513740572648285926056753622091465841097828710722692805236359307151561754288783074854777413310143756323921633728779315300440126053167591467950251844343475225904602248171280191622212597500594206611602750753644102215566970818207779763946702276495904173802859216227126001681558626611217447424986220340284212062248603946825428108452569658363942808993319529615450049692793238799513987574145958125301513811752161328110579972745961365831068659162541664842791630932206281871807268244991473148184018505313873198695521882834831593815636058361039739861004074275250695991949695316784623287353456432576385442627868214602690374003248741110134649462911888082506679081189594598531862594568873835519303656745208491260959177851492041842859370689717769859297193347300436987803607187806484184845880286056162117762378155427218987270350961278255673665455637324706362176366520099550606308999620700807362367789763988147120523137088582907247188350757035552625759609640142196078545365440138077940582858413320621121310669784702840720946218989740430149507297633892557734636502932085630585146605161868859212134735751956728441007104356164523903076211493064688923694413647420238516176142449222638355148425357910290478850798124256274888089993424829005887762261398432270780850750134331932266124452338003877146182669243606976268189520773281423260179964172085053241872118768643102048503955049200844104750817571814552685965322820744970713825150374725914977432802601350065892820271604235217333698381865433095233202904022826346798674940638307867958315924943660034955201762932161429611689901886164760118384385161387959222784340750100640803138914705160680486237193452773479032727704128680735940177956472996444430446996088093286553008642541404235764507509963018156072940291963590032114200240855017180289465901571643212575434472170666274577881899974747264185058206591219244066339662410637927360752684421337129754352715650693777564957077591004126037049133206183180216186950015881112845320697556265691259321232181506486844408763050207213866001683960233090669976204693536033580201015632328341557890977253494789044090239499947050228209214108287622796684245298453507727276893892846389741127417637870919690111223661070694682648310497892154209234316945422980918762769133451363971409154328686706552653378419171140303172541671242088163012838574464908162287298138005076114784678860838471813884657582791070788100969815638953078009446187671734770812940487103304871957024023680183024619555009195721725771087098594456381715458495418455497958156963153329638349332103707438810666919364760916706285481150404461218225130818448453166516850557652426399516187303002951826177645668180828919613538557783956796799647475791181189891530383118754853651271986590884553806868562918979659642338597930159966198037531953010774217510398265794036703614740595426277439801531939447224454314227313785867357215621051251466363732046490773671490823825802279968782480852254423529526116945780883859165961285512023351806785182587367713680332463961787193316681362023984597568133806724195973271601344463163445080502741059350826342475845904126669226657964865372075278459105851716017083970898018619846515463479884868761899280886994282016085303853053744358101192105542873220910925891079030510131437364018925616731135239611650581879045388105542467702687561967105655326181017845727393126960151952080398003324050000748487704213405051375153172663487165457412477850030270903254517398130653955526220704456025802371762831030648036233517741138507892621905134429206074690198418688577806683904700544736255573019709265857794818331536741945683989854965194740311345260278825302837697772130172299090347571141002696602569277992074852445548275088516934975417473611329175838083784608502369088264870336964081471996848094314754579086324249484984526014619332871573270489647767828432062782714809743600169780076198949527847344270756779479332903309705083809267489924948482376426198417847147366223060592100447618023839096654811896510513470611121479545862245195117210914672567641206292770618279740035321543264898607029180254260157798313519820850783833178151175863234483965449113607320608827726543935691018521513078634493086310569490965073276568305496042585770375699375028008308760808898584319851675702487135658291598338395339191906181649006388088911188100239365466731930762529201352076746407738111340954509132642707899664606496922792608795328890142493547334566438034985868936583424727995974349093820917005244453390858461142361446836153071396020701862252930473221840761902286047926455352727103511331467301791003861638003753204326324814711677821331155280000114970782120397642303913513848015297327273752043386072416590219049861824455659806900681534365525458915519000971214975136388587292409888252514902074077952541068386172920228674228786289428800593741667445453060518801328544027527572215460228309453376308401948109368800726976014908165813914717207436603142390047970609665136977586110587443179756656310139545493812693859884138917117578294231517396456611329438235143086430619893440606623967486016536591120333772791649717847599523772125474299726849294816542867782081658281494627675912003801533708282126918476661842817130279505536946990971392882439835229835406656232604872695748418536334289693175092521142271771705433097060617238621427473453902473117309136094519640907820656981477924630098424816589561121811631710572628545322727516822911382820361420321591931447823767434738548543689741671941989790213440901883696971496004578658526775245214845440930311898291359843897057848639877021046536438333129180846848601816945053167063521860790148365241295496402969813119289825010618818529312200435490484212204932814696545969036904242858690275094897229463960987318435559577476101485936455967632036736273133152438751035884136134391517430086206016290520575676450776489169056936213778219603410500153582778731404514173476822329725556972519304000931557385812889093152454220567835335924889774778509376747592292344429633721419933802550465326661562963141299136637661690072957288479159447007350310314552807825450693886926848078624494884314971817414882783532132653786179553990489288202142893195253274659921216984169390055197512778605977834885160407236759088168365972031524490205697948598269298273717853589362764153679092147960293199656402635344887778729668931634603713311159128350521317499637450120884603559931007260242637555792143538642252594995038388656182796691017659572962720900855610832109411292577875017570470259034621637057722103750959884763076181538180644661547175948019604533714412982024424502820338253186376327496866877224377431669742157501826747862798572182605392111750484435927735592592519155548177682868205985980867865999876499197096637540109185475231949859619721785809001744187422635703334791502605616613685402414903864471671301122512330206620687878789799861008989947768321429677712214691917850284844616756651932632860564168895039337958288213095682619296377170019825723850929641036224233326989683809798616337817802253686050494911666529350935176698393728218461250296705493332373843597123223461112525112295912125973721013918685670601933954868817306856326284483105366851371917162169459502271256964979680683275935641080288071796948081803622392831357497420646824572384829717481640502233259186946349627872032390165420860260222586529704281901866039479748313227067315582508277163066697558181868567760855644655123369234729836005233029704229882592825886393214945527822188820670452637496758348501415023450177716738897463555847878306909177560437478837067924244095250592704951877552007430625164857591555124393050642545134545128360934972765268962541427575918117198950046853977041622536658727064732873905263944456750800172628373637735661603812195504775607055453416727774969872684815539884549056047664020551902701449767823222883446173304101657818318115397038607308531074109834699576638742661242361412021816018893015549729787991474426455838664112219674511255610646838288910303655079446604209673341444938244500860742463629734482143114049106405406831475030255044431682479281335474856496164888806842365248071275938092548987930041449577780586961103531883916572407260572051369490471987349287357716665027840052530238596379123662680570017439552049596882696191114880601338219133014919215109727795341011267616081524996938594171654668645254391825850652604238634158586191415166963225954191876212218383664505027370677393740423783802562402858681304475474392307169343311014964474896466486227893193982942461093502513546397484561049624026026795278815356226271133048780709576344627323879295196714637353003139509941770971636532067047037548996680506348850104070318523248567086535629556573312241209674848265663208844454171244947463717625595609610108819202404276557569668958920784709031318392008797926785362410599454882026261575296183815732484645974792291942080934994996355984593132278032134828425415947252444329612418558808187170974457645706272325789919351717560093635375280324364534740634716605069760069886809821153208335345825020340620148186806066746934470129953878477682766103395249758591266157666912913677828126116181021647958444708115864576250672744909245950621703803520421220732332407754889728921941248026268050097388249509087976545497988337214433899523240504426811397076737788218971301523337369053049518657041284578071964042928535710718425471391183701103116390396087533616755829156865614892816473593014248067535991783716892809181952566396681553180226042715070044269468713077656102024922072558410502371039978301841824811193513867382744153973293715679061087095764058992251715414840692439639247477024756114020408736992537236997994811188385882295133212025562251521825480108614849079083627236933175272624845818505349633383267849773182203485029813422530567850114793985633415637395218379336291232941813733373415526998675277320036010523006320420012916707014356450545759679965713898275453886358844743798462441402332493625069283897507397910150609595983268079390444506008394744394722481377067895892578253508902462282661588323286964517636994887589774670249938052703423067728894013744185717755848985625178351198053798851316653042986548680234613550047603296479967250733649735511358033354328179123341229119975227086486120707447481409256108481021520370077659611204574636611951664059955435039057535901509094914161875862258592603379953111909442067395957212873739220231448829575684089527575217893301219446662796081211546866304000674615231585993804649517438808753305560506792909056245350135313707590494217977382577721081040927591166361348568713824146520268745212609693846956221039484423586878626261129681367789296403004571830694636689029065795976555971587439631845594236699465240954460553827585064303630269857941081740499543919911632018739830673330225517095366649678883650412736084577788615716617027502063060254055417203181591343094926598909643146676064130296062954517734276811063107261263765640862445104098736447299723919887341539297061503503598633662653896611831460152220872246549980709756852012118640813590947062862241176181126551040338114131567856565623349497389021561257154017612622916375568751196409061399138370636086836560333003831249837756577769826510260362952509862575590458072712115068922076468249344458302396536915724548850381479239082112955572548662164185369930776928896851438960225341802733624563490436268048967657771361456714791152101674842334282265339650829514047719989267584863445787636690824330395943237855832448792893277983470393584014687248343673126249596642755433966296006986563240382635748811782411824324321255679418717658753976792400640953567870617360975879039384434823064942410922285443778787580385846214421012594185066531557986902165760749306456495181103609971827436871549735306345147166579345533986667148670504363091682961246680593069942711756504665122207733424797487589691455402999598431404900491761005615101100316110664027094950478687249282712105812104139187865873268240756373531213344539613185235764279151870412278090053922997363991416395468702693264436050185364251696447926231099795946594529828162744003047395684351868469472395902847359097050774065384653452314105145574381901552230365889606961574489697362667491981242527718173864539827477391390698030446673241242481447080585400295238545828349810916217064319030951329446951320312670089118439323580010033490231268454280730005550793117461220632236484718627861190984687872036816767153768851529807734298713405875205379168307836709867067983715437822940275744170542593079200779908487729158491486003289017426911594184889419782859685489711289500998542507029029448164120836303196010235570574976308592032092088046930486079112449989363290905490126726486466875708781329435287297136063449805700382857359785000254541239163697744268457846657839336896207043189476829481207568379401721864838228402814921543358855032175965324691658864477820617880812970451599274403933268113398167325439728343710619865610888299256941385262889170748949262521031825704669326434099781614964079217915573076582906011022621413556770203737348905944380609263877652365187172245208395622420049478937473317187443731255586435557642103356973614372243815989985576078120182319993602864917431589256008166876560813330850959760773137010095808803863079239861419987095346372062326750057194385484489765441347843514935336153514022720183311259845534720195537722345337936018903085657084998140656227405345386759424284000793506750698153982928481905015222031457926736021014392789376869042032960964758537839620706634879908939166418720144941992942375342557791313506872557370306185306783188485457933790121999870799307927241365745485786609765326307492407425778941772976873543328792287805079924072822131372479759954821346370323329348815784642747801129717279511415736548993199437734377404806975794594948192616831286189739085332421194646799572141511082392440329184617163261185483173640073269700860785288162802109140434092620055717053623406952172229866397564713346519136941303250352105981847442413243812697704708551102170243928889904711646202352099619552803570215360109700503497353679164937074820469960874666959114516929632559190836741892059666209850236385323201309155144820173079319504075517035266579225048393001955075986638108895295382162691968079426882760024479196989430563906448689251784996595324575258656947293599254219601280062705861237792700730897238399398943080618020554322683937647091381406464954026737402801873828999707457535459833753835942217459904713042953375270584177089980520035545509129040122707846396081603608792478162259807174500747995752442755257938329219371388626564240125190752727015500763811858406566578356898569354351831322347021296018330941693722618729302004317468991320359479749600821106028416886018629113213012552645980314141923076849141461287216702197839675148183507284223112215528131542127891544368090039195403010163204186728488324907068720461204020670953181986439133414590980051604842713300181754739403790387090668776955358557562744657137264887741619637188834930578389923347765649419103951892371139629796111130052602126720863520718685319190807056854712520327967697879875733915952901956695860652705427652769087595960111742478156129172571609153544794750006640183178008731134438707211776148097284621967313160805093700288078587428851116991573638375255780427392865451671798747081146965465729474771228325100442101155063795855052998921038947462387663396569511333261806604675578083298900886050810077921938252950443829431367867159717009306819428867687549928260501778027756564366768380886196005165596329025422229203751577932889211955942815738676734756906372897202814253813162557713338508004999274228592816008905160132951703462743443413275252954770822965947830472007520450333479390083530623661701957385722700686866022744321088468030350745191292900844224781598303653666292269560526722799030762177249076960049868137513923422990927838292462688915626875035713396935109498513744636899639429227749437273115333239093495379568333073998566435126577332295882401110093494116067091168614958081814666528612274013506155877807718512759127307364209631800204268335460852823078484831079577339444901883379571876135183519956257715952195671713490462370862850380853182641277910188298138391231654932398021819150009845333904045637665404455842879513123497297487391554262693431082983704905112912506570485903589200205719990866172512491306398488301053490673293221278657717939662131618217917028836917039841017352657568071441114294564363249534250291732137837588468499167666687376479076255218682960367777917814843775189539702379825696823797402713841785784349949128451248167066260617701456206374766426612220250010168922028808866123822000621046878914935581073085194770750367048412837709311704005359080864756209035069411557529606928271419988945269785187627625090950908259213036227678893478927297096804133628165585281373685248301999434462172949147884059608896175867440872531302352305717497896875306311621743043447640610911736784000823919509054272087956601602017005236453440861144808614510055677325171929055100263165247865835247770639482113768633050380478550314497069405260701398785918256714381932762984514756167247316023986337466016104930807598262922639720592160912115563662953700472776115245782932857539178495118604823291878708387611090770595949549225761692603820721726540206999457532251240989225856929536017268186190987626678801088731935748062475724332427638065417185311823657756039655008169104265675571124639965306825412282103756066442920646694260330993475350817390653876017683701892722517503454525455078611134514954278765714420838511701166488874516605924450521974743058133840793998526843814375978832849749789576295649602763840871139360851937623355214777773674386743572225679330400453070744040199227039184044644082768795341569713944338738401320133684327479300228821221727272455059455728776808699253060304703494320696551368807643106803705510825850832195692352028071763300914636921266078600745300409502130804349178264231663850506620542839638010328616768674816997172178476730143117177233030371626472155500495713736751945229846322073964786285477119762666002640653954027935000023849686416734130702069437650466832219667882854590192692633884516766955088027390471275753438513909425373102464555303902654768345661473614464237047910486163851794997927322251950053050658149732188370094084508935084993945956223708123419117927594021640272953085145653154907270854561438685062648250625938328708799738189116500839243635027732250741142110786560989735840095671335508029798037881555563873919492745782352245274814244311436217664152030521631833151701990248599551172537702269626931319509008098558805157388303582322809780403623778699094373044744909995857076405868302272725547740712913154303399199786227340284309072723902914849092196233583908711771193867511876080758665017958166168115058167614230741912630527060854716020910098713925181503500700814076758527540120976124355721617699556394885056742427380609590483393018170324778355636505491156519734003588398603424353898864044415519832695919424831586991356694436804754433388567180895807705123638534290687368468143774675195238559899215783464888611516154893648062218293874764447228162127182124453344273384338353408377835539085907763451389162707343621468593568133895294934885089430911861331193376263520625920548197531788833964782991970936155254220631809585502779308617269328595261737719396877568714682867212531774259234312958454913407441193363807706308972110617484297760179883719563846782840517176381790079784845889979530019612521803109477815429296327525193300166454600740480503078539008205634201279730304566063974548407557656792682445782510168651422668332623614505574500273825434260367346865194223163573616205518924044212686505425612244788535506260878926658554718726938627288271204764789927768373772867658180225341821523284578570500722863169000427796178241089761104744057945615051589711950314789028351711507983633778272853211016189810074448213783079983183951914151954278571395516188369451800356848700146668886880721693307516948109095734694124649839089333128826815564797190646806037922536693346190627155177778318018590995461487856147299621602418212566197979689208833668216586498814810566422290914859130938766882039472235111752450702656734067481294514705224650694422596749221284986671659236422547835901759232821746435858924858867045177466516419167670004260628963907717088350451668490962785012179877106661810684128443202788919569032877081514012956152336690013015845999291146331246849925066024280778150559191228849373613346869026470054915125022545264360864415694250630931885002512674614823625363681947795088141713643341908126223325570848985231785943877367839889479452948665394604697828457598605118215086276100677328253543510062776787340309486274668340962860874179593862863114954682455075711158902776162458096671213794885940686153969854019945109288986008467326606016464487359876837443863534493932917312227136815259468370922680740227857892856952790338093594451412022540103413080784844027911531476175442682229223800434547264048498803857069525859119585793111498306923083887124646789245850069881295913384732845813873396769666736793343251742779931571616476929189162275862046906327856259895744319707183253419567451867527427445201491424469573646494355982329913112811801140671681023456650252007633644762897499773761664338816251301139379802522333982459945058995860266506419306755055419696754717412573918664096060415147243803849116489752396250557249186741643080165136260895195122804137501461945149082716549058479014697111132136823352979334144501493130201764835924290686110554949671064822508343846598139000902394717208534966883172819075544927764427792092895496467958143112749209901168077431057531194181222529423916952854835549462258823886983213356537270330046723904065443756938711721110777119417551062264708798285801319283502678858963845213747011153570020693150173461637850231894662866841536808545247441549769315215501294310586025652382731199248273250208870133571595094344103305689293909940456795893432363875065560808139092966893108113552438515301806364306001418653721519501109024262047860292967795182277032274142908374971193184397995381595359065774508041752162095817085388478844427466103084170087917881479227795667179242790686285050027457221207936642547661884261381053140973809459465673652625643723878768909743411983700543198370877160748861030617023868853294087499762974533187437537585267353487279049174851005371874302747323914887377865244515295965619776880963189322034245491246975283468931200356510545419252455490807888739025445766962201391729845044735871008641250592960998959054053355305592572583929711143254746546407007040757633753187974219719463539806442625005153472157963738219536421177658457986559573475430494908385990473528900014572171024662511998684791881228171437446336935077757740989646447952291969199036577954577551931843271535199370135406411391570531462289351654629048680175014951975906980321243672060946117733833297654934440718047224472903151940652681852547009599722631060685279857757776472739186847263422680672130065765740775272931631652817581080614926740406895615883702276063979682671249722708837928738702278524623392200536307729648521196665944314640909420746780244080678757333351569478194592217246932638069863415379878820653046026840808094060629437129491175404075437104438879614369788133401371689336738015676161375140171076581913692746058250296634044614183516750562865288792232215807755851399655505152596914994467368592860663344332986762085391570640608160489706528368412463211787242473245954319606238339118576760566812774135236122026586517880525610062045903944862465870251051853270043697562710053152162493900622266697266651750167925798546751107182132940325613481112439497439913850609498500256904243456398857669055583009373938862133126506074379313879944276182993027588968233213193456417713014031220519230882232787156618206555271643564032560425374962469444994817183747932302047015466126947108856991243060139622282719550402908452507563154959321021599599905450730214477752010584136865512042832197575300482199564457767195404197625091294537069497146281040933822546379453040382712022414201151944109566641562359473155619006516156953070639014910639100077034916977385841125747018669741495578685529522215627359981856111832735625767458072271408578524722944232658227872856224351612958597480236555386595253647193959488718791361787154587920765971698246103464734598619574807848664150260714746135616484172718894719690181280302555115019063164949256625663445985200081630846195533471858240188256135675191565416117259195241821446256935623084099255243597095807024344400597213065568072350642438394783323552596232528228078638812295750667747865197069302865328024402475731265908460671918660992102982916626344168376814207840319242461677586124700264379915715269797290308756893451849110313804886577576687815131911591558527594801829110866857033408764712406192327196191435969281796393553163436447316046801190214963756775553978423751758409725349775037852171484548862858417254225147638953794100183764825756596759419067811535781667601023891020771428656755366640192228101186146889712279107040513111223205078349248963980701408256732022859219491801906992200872954344891137564261434448972710868842328321275747439545376897878186155947290150789383522327540849241679571800894679532089181614803132462371226326863038626422775619062396124721046415755357054944944142300141815106665062906240347954899287892919964011009010304404849261601810656206753004158174932143152349364497479013195693277948370492737385172464901022353585352266477460700169906873639950772707950894808783032944984815560438829809171689925765372398327208373124462552797324278655277607026036754549829919760304175595932304075791304171823050219276095223188527968407421556435963927261215582424178173830626945857453126207026582261751934044188029064286485434625268959443296732810023708307359698256957037191664797093594492481906292023422119624893223211513407220463704791323974466682996194289945013099034015533235682357542440849967614946326517908321001301029208700494059308160892555808419052543321166362237454156262243836347386583231899767963622259942592143695237988842827546645294954963864355594156639566964517553765090356064900362636932610772841740499658053705432230463677104772914067300815313319328508869175994426052076446600293941970378946555467906847958800634776529446369378215608312746623298462941961115209398817012984678729875534163156801993276089702325814892091310097503829501582323450634197747574909320011788443486125408634162183360071693883306279713796997511153154643584370712628348979710103650491774508912014665654069399701265897762716573221102109945374991989471809962255176574764204522635455772572240949877461899815650980199939384308070408450474656177758915624149597993269344354012642830937462610682641727987102112823963546397884395112980389353864777618207254194046343546869662579732555891915451078441843641996764124824676055405227845559631032288515037386815666999324389046112431233992035527358420125287144760026309184170156903874606749347428793795329847462030352609673705002846951361587476046669742147475170745867794105954831219185247084322349886549760018448620050835483572746466979329331054000550357766168470672284172944625775453883193150448856665497154216058378720987055794080038662885679112902058484779147963610380874095187338533662103372192838623494801300775775838822074325007649847536359211986856506151727344081929044150660722883918655444921991081215431624024559329439187007995409540310101989854701373315661934757648995695067648119191524282230261255249972507964401786863881361364122182089039288087568952926905010092097056769058695255893461486398333610275896249117801079583874260867551366836063024374270302265084408573223187812269067243039520467745127169481535505115156311338078311881400589385890208806989730169184915044025372967125327720850198163942187764947151181488974562805561204928165143854442630711616505964402584994667359262336009960779717900650333133166801793332988614206430325478983583489638336189600568445476649747343146625217857171196610836556250430366951096909578221025872448064686145470885884715886159647877584744908692432526289644266127766896348809428338264257997401385237735196487127761823683283748141647789532191002230240546180574039073858296216869208312899953525598653667196479416079203989033507301895665893049799362808289535718130752633927937943036086993682980110528873616541445581594596310314957082679723354903476017275846601712428741503514007216490264814189667907176252418862142805099490051607962235464059966398471628509424705752967242496508024587615078675701392638915032613834806532825067302243043776263023641169856548245106685541118468401313553311206855817461113928115009324923598074385579985103332274675267277344526470468316847308299925531803223508302076374557172417424829972298910742905990978673533302250359657973447685889671033894368342131321387836942177373375464127234629590616487667834649041160345356624747582903902247057962175125310478195548761629266067838541140795661226753003989797428917693164094091526345373670037424902191598947317308215530739015845095073934800550131375208598217022531940387219796978140868538166041349115716617284481095024095490639374133469455920172940986790468630655128307133581161917853841298321944081577123998959515172697035201204163835456645627196770999716361707452973464604447759489036719545615698945695143457353769033699130487636393074535773966445954445200238177625742346658500208471458196997904654052364189996252090596492737165016788125495508919316647693864713704766253020008556261913572716076863340180516196660936455640222471961636220832358466848230813545746769569681338146124994562633269881742590892961939314754281359694201274327434886576746263053038667058117116091706635922146069328110293189823391359347150541406925828339424072202171162201255770530714690173908062815825882763892382661635802665707148959985672122294748072876864159779867472085630031561890465136311788625209495432630965451312407302235623867460661085940159407246029231380153600159130790615584613274303889770788045224344994827819595033829383361633293806819451016452060235154711133520955048698853923130401984214616530927484879986367006285033155648145803117041174165776133125575689284033065617533144201906078877108019899838811401468988539354477283093433944295551980077155373605498304452360909204330900302561900481408466058378804323855685109021989392489235058056539664172765590605510211235035583999247208579904056117161381635148132811249092034897550694715857746942181688769072652184288004046064932298272300139126029857279341513555911388625080271369214913763435690115817465511797534846336109799263339612280756024783879620116564244417650273936037993237516833490859138259812628794249609201909778052339475116819729240439821612562719398810406220241351537127534382525205072543944805064360998354384488464259504482153355608288472728480354940666841798882672059564062197575350021823228429596333764723503691873925445649887399899056291019901225437924606003889292178650932049732765485926166871839737359012255325295352500632049016481793870275258793005962344971080733311625531577478224704302079908103900084202708259450703543950848655058430440203873265968597707325221931698374306564883832045291843365835057446669682075475438181822721937811921090129303993143934846031527635046534752112103107774519931181531332199625436939758741187720881672304449582830659723990481223624848647250184983932906909802196447349068020606773591958766990913103728608075527612343259314563015580626614785965961625946194108776612411206510658619848754168113772246055517926335985828721099860203410562068756746998860354234821892869561665308472867153804977973983964289721945482498944908584889355363838769784550789706827002303101075782936194853516980675369059730819128146985356651330981440487759389030196471436972805679011795168854132662592315057176151129948893313128882263415521219710978257623275422754315036352431529567085556451276960946525658872538683780103202288665696662762204523446089403534747466358393358930114911531740056363991218138637841896352401388311131231956403457941197457522785530271277805313356680638741938960918014681689604194440600939588147606443988049691632633326983799713709782129846995865635590407546753019149446490108042808984947473446708909196730484149872298159454190133317257784009632854843763780674593856140946670737032804439654207172361924452124075025469370830273833123504825009427643087514054507253395012157108439557415854674981805587430623865600953944650498102319673600310315917897941027394883842606000623490305993026507468312320264461732052516259057230444943524152728599636604705858867242322290780462557272210066146470784966574283854384575704980301077847299441908363384378935946067401561680168456044673521786614649971454679980674179993388181708898999472745822137855963830804069901367971563842955840037794834347369329307974892795827813166897809230290297648005524412136675868657487813597460154169078748315200454017288511735031232102068617006663646904449048727661113886861597306665564581277653618067348872823186341695834052565208079618705796934789586866527242815268401304223635910020178675503978055627769604843707590195300389903970429974550957555982659455916037236465528763798713331041055158089874911646192103736232589858263167188411821374108747031760663731960303852401225419548479501849011514899292002066317017116759454454473704641168923875816530581135902566740716539913416866044683076107209678618865358435753513531458752500786638097626063014681331641945738473115194245033857351384190099214822014603177990883355341996491427048510889836412645542734936843560161887054730753130750920732926150963640145777068438978034796573938164148783184329691543807795758031891957818487254883141038408656614829315454913575480694296192153677636996437045507958532088113515388398382161595687063928285826450176119606797896738559816845663600127534502436189052301765045307656819406621181762479163074051658760513414785218164161609278926898034544081794938128953868295067851189081491313111941749235840020986491399493362479047332530843522008981907735899696285913327587639921604627271105491896988866061963822618031737137710744241682950660351497039143044362883703117576368914376089098214995764717949183948645227037321643241498312292872004934563901812409893642084433364823670029927155636395114493105527275021832423320249311070707380206763516991271457313329775120734522757242335525006237740851444194779807587195986503713563256349739168459547382756059430691147190504553158865345817765521059172531549964974369576868435113089432855754969127020069280874208812474549465299487604812523297463597667410543153840503790399792360113509737833925253085262448395703017592970778615011381053771240491847382862766963332974525587976308674284410483163892320120636161583237528170741776734619055716410244168471934955803456016498550970548538625927478327637848305238462216714134764062271840491450414913915206414100261943327461624945787788306641988607880364455766300508534846348268886763278380334037312435525545100829874937058124953985487246086106407014606384516785978236356732766914624715513724320027056040228818841455027211353207446381674095180215320044850436822449548770204401850981264811468109578043424456439310044547028182954462377405275678291247529374285943190915210081404038589769150000269586152266269512802834658171440031764973485178932259436313474953761721801635654705271575682579195199978492049377480214081150864023243939215287892123929794004775111496500710818093368459501576657523274759250782105643200363834162007988076516895690678584605012085799553704149608123060816858152157539256291573408688804827324653069514539117350713332683126323439670854325932274017292790389668885266404639899403021116210750237915800152408847611304948902641532523560154951915781527789171462907583808623419571386481912944137452899104391575221634770718999144543281210886590977696834912826822260737940902977040135170894985420244010520925469551515033670697800115073452302793062432907126966748316035075137234774687798425482368720524252817293423165051036213471661415173759453011218366696644746763576781506763535922951149146461090340750609347282801566230563081739409004176638924013144032598183469248472119120352466179736769513572936799820952099155119906805577457817354401251963720142286275119032664389860113665316488550629424234711067456061073301221448524665029884580943284430754295195468333684469876588487972723808730245201077644714848979931597315637591471151300493431420775840372171724495710603748694433854225436903701478554296065844074578618532768765026581839010039648022659396554786378169089613344747346324652069027665535333481579584940993104128267717882635203013193965989028497086445123556750189954567781247873627171003806966118043732151830292960727071889595524854516338822612230755476733690923704094115774922465336751426283352018180688906559803852885308361264540644288082346672111919358659188619496561916767481283155785626397089202768281447142928497269159521277322710222691841912033404551754065516248334046364595554456997017025173446339016908966738145224554058559893503569654424158235303197720868066737852667647087958096920944683645102616777545831972805647704478985346600450693165854310455391297249160777448707782384725884259970486044993361876079257388781405044787280295681846519592363253530256012238773568616499190614441316200945524974749124993001129123394477653627265670259054897156754102539349077647813575540330647624488598493504925388530437663952979227305609216793620851865033907338337175161882065963784289096988895253756676083949241193437114728233581948414505266820450565225844822764756076593131512071669333181009508129116379415717057985961207641306216810905303945076087173759226210576394574550828046745670555486581253045953957945991313076398668682316017697779785192726280088454793947511768584353527954424866539575236125117766473083352168479580440626202397043515531649011120002262996203635580973680181057077849150619675381516745661574885094534244055420096214149736441003190833015378943342357450484524801221211308808218798078026301229167723711066517407890984261036230170785765192358940876897458056140086532112178631020563311842460524624863454612856931126131209528672576398864956787673059659061192217822205703497062730602008849168469461303946196123902793350120986767110245583648258773084069007892032848532596631684741948033080415727092440478031038336880509189860536326675011502937911162244971360406918827054902251202852286417801106087969305364445428132169500528929794724240336438619692944619857632588853378855190765401806034467894646022513234113119409347799907188286543416391518573619902675268737672698990761121393938744276042404189860802717540965223994749380445237946740857644811809893713942525118390813385562028120228934393025064497382508587231872259771410051694713950533082865789579851127684920866834517016737393389461929289307853175423269369561367597247389762494047519635095462360702078720473142025904747659238116902231385160196263940981832597854860561639308785459665818280237947784217993732092772441131916315801988594699403826321558551513472311117227021240146989316848924543755121006723182948507480991078580540683760792157047328724034316560993460838930330226195945714759577078970709175562339755713357286440007656082676162419262029188909537322363349218609400792352113990106227914477147921014808845409531402061830459407640000719679083474317760518344035097891137162089828808286431737899601711175742881244638489804679422328838081513835140481106287440597532732556650829258697296984225757883352703039032614565747532822896557790122395065967917278304995111695899188764525102219730357958858087745565568612388825153583813685777590342653553628487050145261998445595178430645545565131521769333091998208146624196225519460758002100319163707517422614403582884995949975924106458104481713563041893338154603126832360693503972068161932764408810591376288142103177230373055883522179971723107750717935534027282254731014665016998044205287764945162475696732291185424392200284052667153311575400650933308445940074744639956956565602614115334370062440725244864175259353192985513255781472178476454491964945299413250300674849960777810191215544176125330364513003751323283813704702366575358521802619780440644029881227456729069931307976762675061915042543447511390191018141063657557653231324592128346172518446023623510812024085994370415467183251466172065610281857887547645002917956830289145528822636209084605679697258657229432970233102832365986405211424920360757995247637860355286183097184875210443181085891507666383977209070591408982643997875994498741912236393886342280897910428281747435806329059947360486984437011038739909315661856094825215502249068673699014496890186131073583020638918615456604706524391133442445057213482884389749553971238916477463689251344598556692973306311594465415220444488850375429844092254428978151195972973586614827793997606981205124962141951515022293952997535793840582439424940141643328298518824662862233587540337128239276062977628230433752013408597399293681698621726771020316547004477238137456750255784105099878437490804258345927616635198194084369886301281043094059868326923400945462824731764236744868139675195158455721554587060036278286846753510092113207025196208223687842863140249975573719265546147424791264355268734627610774981209860948081884756325553729747570897155376310214427156934388646013470282623194879927378503168304241708818425348039569712103543543812378562006214669822399699230342630624174950182567518028061234638698923982056135178669717988091765730473762018651875127736924722229604738570362551947634937856300468211913305956224845129306465907062185478786366417670161378453574039651794976322972569385246503970439496107581139748796893162839578479030240983827627876837497748114789109065784277003299784050502039168114978109179372026449046363141409370977198755955074905996884940581654639675742497792358026889781251140973721538916551449076890040058479872711364492483279150232662123129391821663150933410723074838382102423769140072329082107396949966205208835065163352631218788744436557865404329410967547998530457372868502330022098701589779708223900143907141647098401792075854818786963476922995637641239212194584821869224201885573962493862108560383958669954972497302712999038174487327582753842428770748102136419932768618554378751187309408053111845896979856444527576154850330071264580931499408684590500567023821871786956145361996335373720296445351274005025817714383742472238358559718073886590063437104400427837530801185949480504205763515919727590780152339622806232460408805101521689025015742459429235890709077630100020607789878152971484702472720951518420437911433198917758075530295919234152621748508345517743530908028834842295449941392052823259108120642206446485331927876225990451693474003048202051254689030600679416732929833298122528511443672017531770700336640672159459753014557669644287564550991062957229377253414228762043211532930077866278596067210173520042265854200918038166968024830786459037203393098669496050964097131318473930654800259951937756796655920298701690171129220822372809621651358157616777887329358345502171565407636232462989848910438640180652117654705577172700713406050875183361723917223458365994693785836538881774204511134751652369072985788082634869046466453517437757307442926823615714931066759418686867428228096918582098474449805564061589895911242704974875183483853068328839379020084920288792532296188279202867509994706918212173316821010752646621892487980426600469816945445382239810229661545931882133199060620449276160115826963998621426372805164480818862424417934452094378476300095915382431239378080281212022380422258147416645614396365341146678392439699094713914265542269769826251314810420323058428044086207470733107553005449752262204320384269976591806709065676085674379919694664335827087028902615448387330909826867423424690395075132639092727731333318906299852435619870625402041086521697412876086878817639026067932470719187547475139070293701831030207701406725466067949414308541342454667860872906154492144755280798135334106242362989810205320012003779738309799527428859611142189895839641738873274607537027422908463043143518912797013547830805835203563308809564906781740886153666180700383692168673562102998653374827514991347676308174227189847163746368692390031567922367741650415739433903198700008904212831129264669428447703023332371744283637203020214627841279333177639697168476513816405806251977866505457897812233363075828254057995104442965226068519787437436301785582020567065816579503949203425827853291752956661277420505548828020629381139343942465920504878255113256574978684728654130968415473010751434536441270158009893987535547631852771503066122661510212830610662791685750084284983684873878647826827894251724576829064636294654121413039924201053799707331340160760193089043893833888590297049984675818929047908864301474847903691929912538398364595718154294808491918753173519438442198112125942720516857981055656824271237149842191430839112975505455910426265343873593782869341565951250286167060763107598268876648619455267402557768599157596999092343846343658580432466496300463933180510875714832019472147131867019109525491373445369060251777142849929698460661850435843211815500215562199660713808223340731812287222802696308812517836960470066672551546484136538349567975722627786731768251922318120223140579990654168502138674377979835355741567875034732208759861750947797070279075693972235815068703797598062791348497537793230078343098644825481014047952450154983060041234157824373234206898157842598595280556703633361110346331004972494422567773128644806233282144573775051576587026999113250411162266348494482245105620639069408391566862999924937815654695832445561953801884650797813019025826058774800361345193099784818769267045155959723892418993565959453802759244440929174709991594606900954729360690257467106291827874720651205062935409179237534160732809548238778635439969929258175245596730954463870087185340096306985448286129915391615061904940500611190490071684083621504115169901638704009956967189278883969048326382101225384429507127868878556972019595064700780813861338389804472001138285900407233245517310282557763912801587085602396374015841757261853335705724110091519482691936926445874370453512223341562875810307380044206759959296649206603216907784236852264766733822986947971650989754191466372401270941184919146104991505301349467269222772277706252927328466869703466572382127060471274210833002434782897470221262213542908347217570962119817826366269157246113787274003094251037901720361722133646035566340857732878045500542950376219949960705223549333544179597132587938179479537763586313267153867951520828571282536040496130305890735054535821124270468667687625999335269720446061422834070951293883336246470499926073065294501852153915287492026230377314198928902423610029808806634093106962208798621891962762221714447690835657372346446775437810360059359985410890122234140114171428678782606196139067854481108782375703365973116523642832421622504247165651802545435645647122963211169649370040587986665491273740581903208930942388806207960259027452297980344806887669000667855950643329539878482470376421885001991215116094956651030988409517252303244417422287388896544899962012837622187167329838101636668501418489361345482961377801071777977653588256365309244185929038133660707334324050278679551676753027777298819982017929992314397600129822289274382297698946752355927686548716205195815041344183211221907003920182499250230144293317237424908124948590194434743949004316280637017420346469541564039899131945056444681223165884017264854404319371690424185881917863912793790458402855231930367326428623416543613329134091898180053396094546572392305615168190819392523856973066758760185134426208596248969003738136643298407322101300522823001749128635449007056802807607519194058238570629676397565643064069017969444986761782900086919029848520934958947521295487775103922416986709951325892029734462161786174226367911751820157493913750404523233405631580560371401469009460458487300794511690736573795909952800006412508693512366982034632548003132922616809094992479310180760457778322383796804792767562190656678795338985434713470846982088935560580696349273768738662130451645680198056145112751976579244857587905300382247178301669247393355646418584575016848908873887223226976421963865500301706611410790720255062688388918185892010989222294843646547227739842575145563212833837222299390326126771630552772951268093927011058332171119309141061800351367356560669797002704516522088900750018970723559680880046584487284110671759333385049562808116860124146228538268828668476703263526385858957409280182697866911734026417281197604665852631010895920553310436357041156338083114158989271534515344860432333303291847620232960341362770030339431372314637962223734601828073044321288679385938066910464106622748339806425414481686918550326133934464713431985162942678062724643498518050206930080951924131497177246243934828713697964610309275148390338094205221338246568842061976653307267369469112313612647119949037881205757666875673175011403351839561827626066255978032091292609493246831978656612201828589402224609472621169504349281426101265998713188249713366921624236121058982120676470524935334981319401674803452454019396109116667917631853553160989149299010386430417459810455715858063669914959430219659091819419284702720693927444399331947369386377528164734018507137421740324175592003710086302070385583175280384716221388401343618471680689786696836254862141407017965725649022483136862299606243835091462600667663809387490977116812006407684038503258001960692026051878014314725875103734132088747042025428063422762868811402232195902770975974300032374479648838613553986071277547115759794379024221659747423838895812787989935321444158391591579478050711655644064847431464922013703414332963067057484664372100140436033372737925044436913843950854810634688979338457565764089010122064651740430069636136304528066179903494434540801684427968596848257442266886604448758508579203073542222017663104735157460457422408011173592450145393234950978784879468726594087096569870932677561488182559730619369313609491739381978932322244611659338115394831811024535938769284291552014991999250156213766061633609553537287342183366885105212571573958515924177203736843162400569558574392127715347345459554515036691561306776258998667420479117689593819855151238341318838724312051709739814619847670435695811344368067819292722164403854874828064871418645677822810375006550348238539426078690878643604577857806444385658865982552616068991876620437434924764420343720994575581191221577107626730330704210088611749548062102942472647868373110063024860255311675604249026409996561475966658764193822157757050437339763973409227155466133718420823186337647949189728739276215917633003031144087705292402328510616814909197772197445629916928474464342391711354635833947246415446565468911314696744276227888032538338253591348493530187901337371695596734879136309894365694194751254340318327913592599782365426705540382458614810091821290903333793346525319577368908462872436108005086216504516951968917485048246193455325331796978362558139746776152035132719653740942117549248866825420781213374342470914225927887344972283261757458060135003565695563556622853166843063522312978388175273404150788970012832483161471546350566071164978828889352188813727077060345688972976727390356987954229794396353453533026662640028605355884130574043535244294970936367445621380354545228365943258874873404783710570616419127521002771845644456200608731140114774674601701228725420652980868711150700666651700154789489208473258779184672375120961609642914334696723701298725650069479954548786460578923142123397923279991010030830388306099332863786256279491663812226166588642163615903588962082533047448408188191334579977120610238183870820050771186310854619283245953465748980009688420465785436328063688929481638326096097976050433707036871484987700490795035962170840022189475652396876755623604507683796875911393694842054362088961397129193122291469014716400104479242257201062565997674946477785161070035366269597856017241041972645151822964905870730708808129822672895792909219947541262374381054290199447501023443063315474828076439074119296334771303952008048160558432871994146036134669451767277879545831163192341474113930435199595024660297070129891386700418673536387381998855172322878572374094861034580849197635760536865884088121962522226514871350385708216968156143974025213133999091296026696665066458951867139798160265444939050454319152399113544967862999006230013591484620845588690237418775704837039069222819777700365886896285553057064920425182850959277551217190959993820606105880211435490169802062379898596420455871764263211890738739035114226320001591869401326784807562079339519174282856714373347107598765011350920769663230641122553652963046773568131383209331337490870089234471213572580698643494033917614176338205310973477213333071071230206774334273977177121124217690405523225149150967767860736346345297328366413261453069961720317864742949022312840060660494638361442101482526874304487239490035059641179780572072296320352000854131114842106266641110611964126541543289345549517901770326820561946714034660399508730708021714283657179155846993542092003828559397294606463292553964871353881598136712711338162064787236678909116843071064892473697035832770047335596264806943390665748367137222603182227652736863981493526342902297464929001240300547669650896821268893118114489788892919342264559586460873365933513684374426063281436334079542579579928636166815443754520507382146249562692821590984207902942578639343005703850610099700779102626420768084135657648722122842882118285486198413109054530562002046261981450755769094055758444007092767973729227628681923427902615451388161201520626627067148598416459454318049940464897491386100596636152674815218582201031766043317613533541108252245816919650877106100464485847280634379207933017590356616505465326205179111096805238604671915883560720803459291573102795622192089011678245859981149874245131578058083957075443675756608689619667368398575526157153843586421086508922030468864599249790250683014288275547467760961685757837099715378601467518309932295612718299696963710832403986588880825668553212333663452517899393616496178574747979214510167706346626702895804009332821795073088180373510457415368782844028339287956280659786040763965594798104566731863631853981795769010206783735781516732985670539495925526563029132205491117952183038248354431058974201521211101902730409763134563425448799641525492703757688410409410169962681762775271762391683458737849605948736042411621255539330084657363493137615732278789277644597395006728646834643771537554780789075832897832295516756344046339759744872195645407052987555442112396357294716354043802519340752309972791648380406961019183741035225526009108231323992424321134860031608535933785568028511589649084613422798875147583277694355926204424178216334854062046784021863591363320658635007391658513648589033639246595900101785704635589510392342036389444926951578482105511281500933344349818377025113209769132803877352079463499841799307279812959065023032091247832612034500472471702178730133049559489543109054673414385051547187366794532535870577692152523361880343398613417570897014468745183126784773419439912539019520360494884726420866082741468600929167489443970687634740096734959318574988694353361570270844700675096455876413627961303027896869448158274266782506657516723997065812441485871995335148347892276730353686829152070717060076529139183236296839780144339250242081953363405178973037983917800344162832815667955758723294723847860923148268730271732185270791638454392295007087591332101050779566063656635149635049904245047494274467507207091179464888235067374918215075690919970132218800762671206993521639746061685294441722520913219496408990906345895275916551150333629206426881263105786813407215688112930495097144653311020776324541646701849345653202502343921386117909338248780918881899160759267019460965569171950873699469499314210043347427114595349402999944564430184798311411236409552381550459195508252129068416156892679201775161525495047028245445949808364371779294518596235330587004746602327386099116269498742656013934652120577349581450792232855567947744148250159052623311116094717777501251138308904735319149053294809619088906154671367739431002282357308827546444995822269244317508971771973850392648366358735275995934893600023659813185823124696448587397698741673057260627074302185313072520894571384854261834693929255064633447227025644399868684982808963370053280934224650197221218348705914109238662589372481633836894967993446512746072863118626926848056790494484634505531426546157483529741041452544848724791518678276720534847225930299367869516256786722276201304502001127930191814369959072012860050877985008592704487399169912185423345303276051805499008586915713776224828389742222605412756402286724740310106943855474592639276227567086383812706279240972332301509467560353939561945293393033608998202571834462282088157510928482697517423475213989015625743156820918597912753870144661155065222310620315138591972070437946373248053493908412039807312842999544255069659937100337580316136092823519183574454639992817866157272558757112094310913576191682315566863324942532557591161365250169205716493563794636630859496714946171530960491109006320298784983917223674091136934608537233542954952701338933637564326879164634552418919091188148390434613534158074759259559920945976909343882672753627577905268820618769752091399459407551043819624769688541044728295988883277974112963071832704349968305276573875720808243653843859374651822292521989992624704487840655740829908443640808687534459094116220019009364561931396937209065289279806936042184645184216539917165942812156378912805184930987300999755489216771664814819965633666251823369427426693468291186768394564410991519829177121052238762729602343369619307102676310906555800370627835252739055545341689051148039843303739023462401971742955611488076840773736698028182900485264288643919502031037232176054009425715636791711678067813491455025960419113102481681982455202543270312477838069072262026442864988270826274518724815398205552973272938378106536792218642629096677843847475393878361672939615549578089244908745349187158046606344130482659545766612142362614417480495098008102863382838760234434295851432656875887010969051319135197452561732329039441447580132331559542059809393975785139280651713380038145302199794189940727442738639788629867079444667713109303967760773538631893971119639133794938118473198630238729472905711743942149411553062469065446145431258629067684280501354318250713555226661540337094572948119651685218903768210998993785153659877670968447725740698205936975160179141921992913212880196328977476443932596534805022957348974986361410242103779806201590714009639560524262993253371384282171530369096972840868216132268114205618865713157090841586018523841389626921655631457005305865280083735706327173671850877715748178291366234759112234214872383109104154957145529113752618125752140163255532933197999391031997400090035688389560100383458957702662807889539502985834447338079742290796872335480735108258394616818534931313582249470998109619657980533103493744255612259921709297364360854826724023753853817854356374764437038522960374898387232897925754009261701934060292827236454895428546283999176119684835410460305019189669523398228834241950904860251221686941188407300764402185798025646015734424464462222951660459603079841573531807862860139738343065680235736992103008000427879892273700609051934808931607077895201227081119066695829778394600479540719288437033454206333505214031611788043284667862089954705118579977637430208697497640141276810661749610084888923948385178967784840909888960639995603799288575232225445213773677837895899002764165378257262971539545790762341175283374419952220574212577487535821723286014163534949053091404679957805281936078538605710080858428055176314751082879350732586455880043789429393908563249332490300968269967538985697814232447580070509149332656789615975625659757683904573238979996835778518936311318056730103217433632960790128396327467063767299779250524772311279665432551332498243325912940451252659592278309430271557159150902842846777686879724986358052637805104558864431286473545533191436109452615814258671343837192965562199732747266231244540433535846102187178703004284476629324813180001231947611342250847587453528845011035489018723667430889576715668777621822636048745999221065036206551992138345069097285633636671860058085658424703021943636293686490527433117080425364509533698552516133243161773316137500697534319163489757675162871644932792944205314652331834357752261073934587684483879293160703203417925773983143660840542784001072820504325939324251870578653433547476922544744440505155133850677079037609222270801859396691637366485214836742362776331673763665272638372765143104095156335063369209240115261629065162337003738789904667512327710897161488854407760290954074359585545246892928745826447177782310178046355458285361348086042999655510930813510010354844505655682227671213740064682741080674060502369707248291385427907347269206174113921396515217104570713366439651037300362429554906096494876005763727790191623009422182575194969419555686461722534720702079445021296838383974073675160439481480319089983455914619269367039994549163612779604060093526291175608183566677932791158151249379066319202073249784094514327801726165249537431164152563845482346921859372650218794316129014153505997356832740878547068347914158197018379833230451076921589783272770805861865297532800974687900662336619793585554746805351185217822558694247377067471233430538041660938162743720047756946955060430885851631399564859419871132301796297614753066651136933052381369464162982058819025257002796196401576747004161336581336861571066345370440296690079571696017989848189491212625261014284782675739349537501676833843788812487906507675968388007226997253176716527653689944918469864015130573956010185417280718729167684028100815768457717651335421478564717607143868558756436552339185554154911393882349437679603854906260239080001397767680178501705863257635951503148142240066719743661885904808197866238044187860168242069331350044754775295429949521626221760862083870486927603879997513234307595815993015652688203617537370591877661377032394386166518567960292457618238657256521404476694996419291229597953771665845606644005698252739669755116966319957518750803020507558484858684525300487625179020556059936770325409918463686724716485643277687544681805674929540866904599522513667103457834707942058797408636645793884264985399338326693047527882977654390172028560443597905999373768032170579656260089218707545972180429018867684304983883479059437475755312416234330625569663529166079528056686301645720451215253039460286222757858437638935330605234388311998084855298589114288888567167065250477415013252954386820207315582533641539001964926510585219030480262168593586224404652161256763212372326436357426568862510064030530800772403144058327677761724601657130075015563626502876660253483597049528660104040849623645564812323416412501568759969949740033452496889186162239735495286705758037744627271566646917648614784627643658465859148550741122296631203454783592499011774818824226515846705222905359968325819160473079084508461210888951102366870980923794865547879194905018395728957220548665298831702268493169666746366905064050371910534739680288842213145296609076365098192300359225797393591696158556089380109040845829708825204792927752490591700365260666914868428114258973788139419797864067077900863316178642882347443478315333523705402920946010194072232930532769516536923487498027657516530403518593018508812775011241742729475645853807219386660870209017472886595936305176232765425913235009115482953470201162834652429624540572015435975752767883915359226769075534171830416275761951032726552854028373531721715187909465497286885720394464574698395158537283801845540466485732679716024857164372610271534927365825015577550949713807834150140212655972680080490199152020978597859286643386259841171450128646304823617372736778169076946297559571076611529345612934299921712630067112411818451350012368812945062539494645945587471344263308370636643221298504366455317057666331413405995387692318629879773426202252563822168465318153113980340603253835788915124067064467468276755282146054499241576644557735651787642896062189772841789929215921122633942299386840034910505861003029549303713324719404323564781561611235690680854272764995367231215830187875291127023256604273967025466941241191359877577588255510220905351700895268638434132328943866636286498405938452616706498161838088686508765619808221027022029450232311779958483835774824412464652448581013917752220353840713042487211635794684346635988468899744945945894553280386232819247729666566033788863365660226563351646123917429488890062489048237793532272920975443876691529223665247760905042944680997976640576583753030485747472317601997540934656918945288716760325615145704193515676263052550684738125130378109208118965088080151756228725339469388092377631619677161738918685703676457860742257736432874971627890552541055157015925290029419477973359042183713288936868831196928553380082114752908464578978095684203727346338026511765668604656253872898951651389057836546055692041291868616726911555124810720411643564700101584492107046131852757517539152256794391357540071010553598862031297161403583594994588085447162710612942958174348906408856294936994916621765543235264176252969261524788942989896066166830073428502211154482576006098521106087728484057561485503392202540666930689519524167106686857838777860350847333839640919970064711228917507105320021818729580095113609426909235092852706276275650598237386324257957458431038779398561382125558467536287734149911682661832373394737846919232974913549236039079222345875928610744942903015887010290720684704553455896405560971554047416805366610431136921855370762720207650457336934512529143897440850918682381347749904005993805918015862003499150664628353410421855718802835151612969583244413626761707643787440957102540301015036666692483745203860958451214001898463342522531001643031158683018888118631165580937879120472489522252467707649316283435146439758669835323631477969830964229676634547010314342849485030181827232389344612974604477995023337174704898523991768305229589732647271701912442287544002102415456286805576936699896953399669405463629411981400009559442889103045852717943826010821159188358503559976775368484948020830976497086897865479878649221903937404032015808900124764492745823566151383704413116186813459809027841668186814821573484665120231987247616121383818684309395295725993240981638544876188694405423939108171834767158866153198844386623061386256593864205671866058657311081244984760356528491255543730268560533908289258790655292428852341072963440447437173409194861946181868019099408154427571356283432728598078147930586176146485245092503546098714928112616629136024763913074941318912253671186759008854089585886000894326401664274197508156928198032014369447047009456093042657148349418363380467268966843586659852556005746250408968503951854229040296275920742117688213331449568917414046880963340542244218380641947514001419287356338077053046814468468857887768025697269021993911014004839717735077146265226350863976935210060435444589259646413963758529550314683690966067249610523300923509517392600304610714893688028280629421225289454790204417656870503256243621599356523396501133049546271411694769077602956579569940580066946003140169183547352573193953735305072208049819688901489950038392671109348297857696985709659619866753469380715792936472732461561433767811841640474835663237910893890687230552832280092592755682641935948716379143359793619272863721470688873939938652674705048435577785240756873705819210361831440077812126559777446438111516417544357973524248551952711296345456772394697347195849820832422545076690609316565227447236556172523456963544182085593634764527605434167301488671564469938968522657185013692517547383364527371529667083125611591729578831709354461765260695136813317278104556170844818754692200130074692818903226914978755638619670048284972303357172600859842335337513930944391011470268888812588773682934188659614137469281958151102248186191345332804329605506311987468705943573123332362046383899605434222947539009545925237894004240251412079359166640426457662131714537479014545547692723503345421855764768446490077604439613402605389340224303535106974407802184640477426635602366364500915843025501389161172322463347882856208492343541939666158566185273179592032996705947208663382984445754596489923812520012345566188015986806148460079372727090497066892750876704311626350821571165559878432904920882676972946266882261659509752043065876506168699201129413731061428783316605255994492875938788696603794190718723416374468477589745303360902798323036940891401427840468948269960537163615550421804160957835742958611898681442593187735947920952725629789467711229768890650177862011267774070557367174791894034126861570389358788424608716461200393882678056334685256857324028507080307023487049471293682909793374327893121663719019092608329783701624605343542635805102456106829035202623694017949006793926854989988371576701426953766378404154936956786954655570011279261942920490243119851833996064990562831120102268786453493505573647924799142676353678367452093444149543748259215967005659374909423221324082299641983538452034339407348377179593172395787686591095177899328421375514506434907395221677216192268086145730873713601853198936000224734866745926640924929257754128266991844904543204154388021352633917390358469242143380438418445313244619986353412046283745320887948854481930491027801524662386914563097216812336168475848431976054365144578267691959555647702195733728292712829455053531608673601950695829965426800203037795090738554360558703799249049763178273368574521053702720405271772066288613327658626643469504849394791939438090401219430469255652490962674249673078169867606947379197077926489698831412940000199298027668983387766258028594573898844078916325920249402147830386003536460133801879711363129475725242605053238467448610877239371467692730165067290418609448197213398937855527584812633506353535775848590691374614626702920103614464731432866547740939007409926674249607848131580049479865264915849217629710224248249082257751466402196415769960632241145445713170951681895597579044395711159257039416798390092048692529103865020410437018390265328104013125070512037180815800612760499996184800755795187856507143667606664116586800247769413705883553707663805617480555158995753175504561491173225991788171549382664676299082806949644682649856981805764824505503807669378864076600689757098025556776197954381059555941329558248542434116280735192959135462682371776745893767983541393357202792283930015576651126493327557150424383577004558128617374018620060489882846616353006722247637321385109041193480280644664194313181970253538409946094739955832852030520969694581687164479084874508511129177486331851107323200699830155673116134087934282099338969620760465671152679943606250133646394852906464157115457618189596514489392413592487546502428298633199500478673835137595175332958544605353324051631917940767039991677857596661059414996441959447702960732058229610373052967359736394306893279241339465950066800323142554257593285950939960170815290942624947567423531536552185619884066740671553638088405961267356997366396493700921643335536307770447671029975290849092372276686767350208997276130892625001401120933563123870079706083876000331801645622692548975060854018068914189852546908413642701779248729684360822107931591334422163368317439852284691815478664644279013321035161538790088036394098667451223307290325219219296619721600421115282443850882884285609926422997031961505647335510153110891833595630813028294891015900317294313828479015660733944870567199919206195445189449947782587818062578262593804229611858759431271027117212676864097071102237151452282987102215332986465746936155771624803365865919972185873726479410297182461143913311878028317412961690543305856726154981182742981663303126586604611004004115013730283127175115674928028247269431741657824459577502549960729738480321551120608034251343493160760121315546407130192281346451762448212391353001134794945386963591636633856178606815723671572502120405822718683497091276553575350696285289460548572026312204483545340444038180646094944373510152499749932094912047226508665266522325283927910953640270142502060823934516605150251598865424170035376835661285369613012176171394970225222483784392115706928820620595188095201724497995842684243774045869911636215225007756905967815884812703277048133656345417140687314712923176454693491230702416000836042650436768261697614624180329014690943858697241860056644081760243887506148810279964479305738907309212592957946184029811212749412835893955439411361065198679026524736227620469205752912982707608860583945295441494666226385511887244783556029389315956190670661214742898302520560264302337405082391680657358962278491934824805408061831881731099926739528572436048875819667444280788968624501426623581447708724692999216188020480681994866279649364436531271393442311853094522007079127946996804289843083744799818663773644618431112491912912127433877146250362884146007667693935455775078202357586960906650238262792389914770842233829367267655337071938163258360048589345209574563574616503589968830030396105361398321700951249528744685760390534671710801887275931783779290329472886997788762482431111609253036780266144364324931173025454942901340594144485533001246311361833569890642705973091064622533420327252186802566435330853512084658205491827521872339940904444886061247918283980379126494551242840447732636729702698191258895436588320538178311625208337929286231782064915107409429693308206524514577215183153464552271853862157112379540685372891319841098114710025537183477968350281094411099315025043823733730856061787228449389704542754258480551115232655504734197913494609362164254582347792188483274107393454768888958950319524677415036855122358944141422214389221715415751733143588106431214423668892062572936002690391094004791741592316116415786876092578382110720814462903587893268088668251110103607881279368707552352090974280127512995191654577842747105247468787630093484895437749487898725740455981088006994014360071990085850340579524569005114658172964031884813633731798535305227392418537805651023674799246812187879240945439326296438664528283643953259575235215452960796384444720734864211690186115587483491854420449319876605820782366784133732842293742192507796645973117567841562244204529833984308524991548301806228256096567974310153228507675623886779239107512916351187452055320929698787595994506348072599671646020843955616604937612232252226351592368066381312954756276425800532389518424308132274661793722504984837871347228365910769568790653209874308766193124466755370156609004347087350084202396828058824190361858380908826099808965784047642202327892479097670157456193830066852222012162195979326693178845875324213378367938120030714401140719302245550371520088371984814504235926910405284703469676354697295429921629987963081959448597311794246496170579654889134396212039404786075300904676048942117858835489909376959204122757552407383576888303211190625789721174021136399102869592071608232154958919796921169597290636679724409303767743708085857442464960010724621920617947652746109026007954452890561637160252200854738447508183030991842525969420665557024328583327962740598090617672829879696228374544355610366563700616770024245761245303057180380472655762825350890378052617829897570566494100460722535866874510633799692931782503460825654939980999825832501515778842555463879814905327366955010993806891623848405516981930462937836962040543747898466401336709202297640194650360780245420727206695796685355733947807687897476656605369478789100430303385923802771742427004046798721578860551288135188565641885795240747132183406983343357162488143875762747794326784437294710610666919595157984727136363360123330693671711663704153033244846359205966565580497599315730115982570854409033547404105558000561689617085974106264435568284819372087602635908651462324439301476669437011071875448666235111847166627746810401120917565088020064978935130545407871737545195143854106788547688733557406935473541984314829397876303234657262132990051795586123342167536965438120178846371478610925478849041034234815140695533253737868011938991447823552654942619840693720674381138931162588357887840135765214229542221852219513055168881182399982526661106815886082738839848495853771628248329018807272194016027318734848569659710604386447956899167286506765110631164486397390665611198038556212361737812383652661958369880205017744070051508596787518194901697171689285120111894324519845276330896226067593336797063358505816245202909048822249320780303740045047625841416361085586978120858808940376327798859320954718741735497705990101312707987753158413802810977564566751654582000652366542631220078118385420588951779139667892496233205658847726687744613855142296887862873360104107452155771972050434234332367544620133312826256199765936181519018428048008096216825446776133265871288778860682912739230185309901077099225205387891887944117078767039843245415987919167786093978856195957718005116201026221407765362873486654955591330805731005389156531767969538248958260824712670618207494512024681054617426275894633071103451262742157943442216202779395291272155160850623091515583038937671027963754597781579620343208423524191405164959695830563294172288023379269261895212512802683232650950330909138996085263515278422717610746523965089236222173550641544587547160281474763408763348392298108508355325972977921811855955142764625845748486820161203712278911302351386622689763975146610938097871109915030956958595727375143044700732579192181200023225394788707939367195813039833355636032452492350570505444924912325411904870633329955068430605639802986820641291829077250087947304138166090462613230140016380093528855405136817824495349340402529798114538673205556205880636894739097596117624414441606474054939082416089339828094487924641677652251919481916519992636132546792591288165671887548062694113075950754864736377560363656512802676008211886751392824463029574826921006517578299881397277505398653040412017785572519333916056760087590957228866953878822016986952645728094788993139247513799094206316917602397860375920203866410310243572337837005627794456970699313246384055242554757258495984508794725273792004322855892911223822907276001412884600862762243706220263005632036124173013836556453258615369865701842938908100575064819784616294255349287732358220917768047996488906010194029758628289939840510295272162214973235948310681278549256298296419868297055539528678181743516858013110614642180764715485640049620875181205298194668044604271203891648201453846234938898414985736056405885027891230758138448209836339139694893579406019426584780205513650204618997577089254363869130021772197845271346873770673299013897224292182050034339077639865684712266098601028548387326361754320379658785623346071355164235234130818775919256416041084040098652097565996406962496143799079799367942798411439369400705724027205335675447440058952817478446832549920008388059900090617250872273822718089324545927844351168330545941921782253794940738550845218521405807760429662591279838074048870295329222562391949008465704785783440792800686498884112497404408956659296073630025076650472372988353738799803194197922927963043925458232451667445053043887829530819268078427370456413206769835035375635507379653427819087709882203534123838897343260820338482342417402292373606836461203577985648854266265743072653436554764100074020373753567747313731077506747151320702531317371000345275359327975056155780184927776384835135339846673352497695455773261074071551318095444302616186733853098223737555487033339145009022198133486437057044185389001706724364227246839531272234111934248342456840699924984502844023941109434239422027375307552850643676676378541578260464850611340530687165470075910695603267444103071321138467011767284090159018277386758551424300421813249968369865170982283141099723191359424588679403844063740458722668493836999701379918738453020839997275462858010280048125942093980771310061218734620049592667653171962813816953619020676978120970238035699567119481645992863430504346818309318178206451321390263733341652963325098672349110113205154219349474157319131211624603412935190882622359396212155920270590149598783815093922645636550988433371709666715043377911549705922710771654650907813644280356993120484017064127311125474443985070798447368102052983510077562846243644242531869457308504161376296018018936403846692395999736938561244936143341289647396290997246831168621484742382373376954769333630537822690994877926278248484740797257933393468556620644472212273268519278174742039320940186748849310193873587278978488911424848347589684012060517279857354555740943272990434350289577743731460060873815144841335546921833137260034363639736861504352572366634362766248120933972239288545474527180552984316741363211775045106919158803795395644279391431495478489232842350456432009066267027222926227249056813531924204198899657022264565090715722993774448467866278828975578131134459552676457485317270470210813230547521117684245661776686503591867540236015767567964550918148564425699775947301518275781397378693720680425066735153936324636541791077141594922783861091596157107902444949815152922641309929596566658051415859976427728153562725193927850192412447674542695078216074363486371314514370383715195356158285752813280311203611897086903181551360664106351143125090499304641104310416473417398511141557929454968105641313927411657102793351062610044514854335701753770258944082010398016757521331824496989484041928873810503658049490057312388595998979174438573496576162124033177182928827518373698340546381510924625697471448839562113490494855001818288901802294979821285677162693997892159546594229431020738864871928546350339606224960147655106823359738639263088180636471581599724928444845844869804830969178745349987549468903255898057035914543469164366366347092792613815717755634582284549734115844310700196466873273453420954474111239034682665861629373702933377219435932492096406255062337959091676502650252794644308860828200833177823706134473545501729938471641328863366741633620395867439179790493301495993339930766486075309495697184976997821625644321460130173172033340663410774047501327862065406686897947503084155597811775791534415333066597749700807342413489053277126335943914158877567985738045031067384775883438730929887984537135440328763961116858141366223314102179846104851381163583233021901011253097048759176428949555654908255710150398484714959108767194156623603967572414993540040336541501373424268173847706862997644011979780787568664049503920333369877966064661700980020832366722069363243765288674710173060222766438486120445554167199127456415675680320312504569675937835075324897410700247693723734127140974069067868688674045788096208942086317461615863502446054902459456006077147302820537732150776000844810426820679341667888692222470525390937686028786805596150530083264092481561923700282043551843846004705978831139705755017014300051719016707144130446185764195712210484037360057126223869122104861551993780004839670491909875005688959514517988364445956905311962935703884680265565370498848726692737520001531016500856260757265274759077882723729019663412454635057985777603827980722074422853082798838915790950632523181757446281258526474786089896874125077337991143027150242704764259047303236271653227820578732443674911111355210531811365577464527075604175968435448663770137458360628189917446393170021714367296899757142563308200977357992900659688217720445012341719016818042811159270083523385759306087003480476294723238080414862090279440986311506477710843869962639364029581249633704468270962190339911436339357145881636308133783589017237901901784938518314761654870651387095999481585375681767721341133305708798958710369626724323166110773029092630193250031890858271618616568544445000098812015195017790923515040011235460841057438106186176053031297425046455748965762917040298903059153283884039695994687580814144866844114175351750546454730335691464779706651898308410567087378715111056012884548482430587593934981276068275304670514732945277780047042099881614561628335960858652122535135680836564930038244750189180726887968210115520594680536896658661679431546792553084737918923142146705994440729712321786752375717263872943361512959860457876345312509797539702843322318302877935203726387214597356524399653865222413277040588395025503823399908351766132719539720744999738505524980524014547618172298504513167779680609510385118722409192852551223418618532735360538466592618800359243946064320209677141222301250171978706566757687303406215406624531187345562970964739160831006269026377613630259740228641216990349525065509075058523491471952584464140635648789439060842864468775830931910605793374285550575875275884687801533097580767855005938009494168997764364722068577470355147355652586095718695357256849429999800122300930386338331025974008084070418157488938197309771304000268184495012111442246124796761842710149512736246526478586103928125779743809293512713314706451722689665775704650016946393665065331639382290837451865707916771129284669423770008314755006496056190030180684608649529014991622889024417941172967352586224843571445005250383810796569183628407245384894121392317408146507849389848493573654544741489159495008010594901582670216377564988361086132662160469156902746221231113380373707930758064474537057560678031088303604246072097481934380967771263942106663592196063981612540464331362761945165704416069566712601327920468973552868107220109984105788344551398398641011898082638647560241292007460453935518411457954998859019155215413301364169538901079658560591241791913035223254504280705100363778234463386201138824309300019043449130479595826001528314579797967775834056196935278470490274790540608164975162245782572728921570344889515964047171923004658177282486035034088486063421001647034016562316679743776247076950715368086989727812690891768993806922555060265137892585713489557855602271679970756540431579330297869468015435943088900007884041546759641904123491989272564360951370243796790814736063730000049431115854700404372845256904350878485295055051497079089078615911530955940087030220323450761815174774831985541194153651227540677929318585887600880886501206890330529169416361840581083249728766991301529469300753830891200076640674437373599624127157240092790759470948111248034128610051819226027550520103869378019750007273816358465335414943776308286052663643812295345516979200314189632016715822740405066937327725666802840055268176445677933759598602986555943305320670899414727275434128239206807321507124513835937845820769313056387111894700778911460025067924544275847022700249394019590265682328268823251314890411714183065045811337018260494129877561715797917072217664532384316186816387375477189523434658904442709329104093488637905274532373304490368463943315751925191478087543603542835976221246742104469984605132321212101763945202848855975946307383399210633275586403332868825532530286434287780363739180408624076371102746962150897174310152267497802157541224298051870787834605870162304250634512236216463583196154958244077023919394750752487399942123176869862467988390586146279110301488384805700903261367666295381632239775453340462075378352556149010981241042750639274652599105491361329917235833749145426377306308929648925909236457326805228032784221309683743494970900385043983421345841893999255238151344439179878436723009629633507346606019296371088668843799553516779690401472169443159241585827126995983023999525923485152458158632770543980200479546047815307499125500680449173650941672721523375494694872881097447433884592764537778599576318439991413420576767498633764386634203021775589065585141617372564819067647169663847185259485091889019240480862703860570094242578045664517454274146488625689441943099591448266557586172267498504693200295924273433909632354414091879035733227857894376563387659945141435695561063036655074039430918121441611815795067501386322768833149436624700563958342050147096522813392387050412078756249769377809996791580034270481464631120843195379336956729619441791728449345833874871859566752903035792131139692410332412962448255052216493682928095052206297575641663703196413167399075506542484068776323831044780099400357125865121820183330662436444244082276797870755781849788230010302623199981114581907245462798567981795960501601170196117432651620199367026019516752276610170104413475214705631647512366849636934747713268322884546569425153978235524638964010049247985936132663614528808568929713430418723822225610245342237039079992479199827463065756585797236940814379533918703559601101319162949688348958241410888632705426612149558156194311759306654223989104207370707389992292394778503658944383463975697595002870394372231221963723645245728362759394284940935595469895243340702917375892629521923704669184496653488162845003164915413343408614484895705127602869939712784450689093272462611443040436912125591970981844645352180489014841698788298652744204373969826933598683069121928399868306239281985245202446313595166544540570972153375294117715716363414052971317953435320019193174171012112032988205941812366745138893932339330262069694836531493266389595677654636981974564646873164353833768682787356937773692399188204985719030711492645391786902851356365041113869195204420609457404722656829330736071701090591588146378132037921637308896104806573663680648431406623754116934564050296378900388061431898984251919127563451304675529239553352939921683777638408893045728182281072923134424533424860849044561629609559084662171293636524591357736445615607567872433379802583034866233311094001888594167435660997162476684569472166264914797596656368495382952010318821699456140322214334651468343949191131463500859154652142179539637997130006459974430818310313688301912762725006318051925179560142801136413033253723047089994435948867477909735144437882492688882782684865464143712170599658188760109918101947799874759004278532289191670451927341657259487484555938942047137655265918130146131695899258769916816919663171955160131063727990667352628744753296704798752994961273088034560426667965535152758451583833457230122784658088484872411816545283468337919669933233684406925020686409956663824395232037364472817242711667424237030065156020021431130823016782566928562118370831914059769345807700129483922758541083050413176272357634187396971957673019765526862026247215642520491927541720013726922896280464664687732483445126190695865633138265688072809862262740815939069382296534152766867255096508750445730039401554182615474573048281715425497672906565822949357049675908299831157253185109157215104000669381647651998424761674568453602444854201604909671629504185831359615453360513795127108147359995449209231738407922800217198049399366692915680621535225207209366397845641653790874188529557956640340331386009522858202713909304339304903778548890078150450095574193190028590192364594731023479977009928650368138313447162382540461137894799033421701011351009434021559471135156612546743120314050593554054228281051581062591028137348835968454416179804674354048810224237122257018983894619775774773158743492374776220329523180547337905273245153855782388425837091913589604549348674426671167218242062309072009128944929880246974979923532226073621130628058524447953005231336647997717044635003414891330926808629393592999713265737467644741229036271304669731785693820983418438336177441490601619275306351507507933245425264761565173103956476682293173602115306649493965680964202262313746362296500902648090876458583575326260214992995284517513929302840373933678773760791907496149458527317005858868778933670819450299750352859116123524872823766455576698857055524026782049264585544927507514800972291470758580717576229774555175192748765270513999200387410384136445364439639598295490819141548989890411959068570651242784243304205994982103949785988038478238707932082548547764387742356309643636075340984035682604986609821017892138866703439664725732460603251238711242000878839116083811226529209610241530389845706587822528335756767452092590240916224505410489778420726279111039883203484139786959489540213564460379031518648112357656215156389671059570413098602797349043240619806612403509930173940211670561504163620762655499112119862330462081146769597836789159959151298113790302135498701207027677909757424619748796896337506116523813895799702954684960690326813573581554777709487534105301261759653541788681041558226417385834648485422585901185756230262347032718186241139677813978289345715700897806264317098859794721272889416000758494096746754342743776186151811611245197262965464304554752631477363608522132547543537933221617155668736863187932404071520310815020050472451226131132924296762401813050579897628343693538199765630948100980116818032788155741617437615008588029492500832861020141535627483418864981954341672093934112531360658927558075950543887722399864779231001381350340383309850625957730257089373673006191534371674665684033727927523232416157806087042882922271059638320162286901623674377065720298162674135502623736015481580327980180313971418850948472903679715836497046605991490058408493775668285628342744675440772085114769020844175282236190452962792273052166825252650676674493805971652139352455805431316761914150746360954338103732270541422755830097940963348331151088460042284487843875926943763604353474098274663891787912390703515277241803372102700676496582572476842167635292781198265939587125112807563435699254746858260806944665121046983396039182378228490606750394062864154275145858089517169326164995111328178669132013943485814086037906841518735317885730913994815963093219338320187130405633099078844969642853846174181823475314634144755011417859385753129450075552899774187578690687623288099369102349359126029120673160039200739704034383353204059302877661675017339949140514320858596619291522688664023456951685352629721012775745326761633160188068598801789805011039759309242209064468775081224378286985515211727601081906683754840117369128688789419518350600627560363643531627819750144311601388539659809379977198101307344492748587168491391622971007105055739683870660833869644156175460641512407330408979847161764262532914515165337431342855900400072642597513192254987214615429643637610094221669335942760970617231877169950869270838444693414184594919659197317281337655685812700240575482581274823186167900594674079690218031366178038343028651344537681066791441960178884640269882712178727866948183841850722006184004609325237850651900486471780894057337510396483123940015651620874789597793926893393843024252416305599648097933184906740658859342367338967328771039145437482884570529228371612346556836970599500714977721051303740803085735622159840837640416114143270244859440422549815419463761881988630045565904999073429605526164517582782093131258134466292207863316487008797690458287504235496988236007831476471465929337154444614303671248148658342347261825038208082508044959310282813847193304860048688944485559171189765436512122993203062987223521743801040058400349505112723387157642763926009664168016542410232765968569066219253156170984517307168787065807933096791304377799303184245583806764587218760743558036859970690667315044935998493390228086184907537585123180570178787487720279687106091477711355717295286113297519991206209316428727683537939870272753815183156482225300317827430337971208322679395052079942372339589909288690395132258424566387113524270313619545066017703945940779837010220196999807264317287922919956611756769318523470448704980993158300975965752637115903379786906177729994664312663129179026140729911540319361660972713960606537114508247217211723085003801519633883564874103868235662763423886088423083367919611318206064919066177082670576997040556151492788299791169412122157613476477940710659902363734098686581999038058259636854016591217423914532314367877832638956574160793203710897655712319944713500692058473198735568469752533110693913427292074560105538847212925763133957653204213771818275183472958465429497204505909757051186515702016349495282311356066332030817078388840096934415736199929971281107189123657749285886647311728527384217226363028349472756583019419725102786228672220588011488193825649487369508697671669294357812436088422572489538959548548238684274563078949052262317689564040900760298917926488132110704287034882305534173778494637871935489006143733009969366165626744794939226683689508935449657174675743357757575805827969991600925625787805385139133500731253493041201574766096710857625429322237700843472565589884198847379099818989376228725871057348659975153575093092073484948451173946175513845812463325752717829458624451576372549003021128799771226285808297300925817724430384440647288710781305687781895338911114135287881728442338953599832123139521261755442194205096894561643276432429314047912290372075354775513998465101781968391935377594784658214757135691254017611855248844368711865874019535232741076267827997130680666256432796610551231604316900465774588512606535574117871017604109497293903097793865201917846816438343886615044181667907275860395258094257394011006909486502861824103201477809345503035466104504211045866327324971193581443064639955781690012717856560901079036184017243436483713168382598943545127273690511821485026307820661323326934528756291686722356652380215847443043413441894437372689402992688963706517803392517802949453389145098739971281352942435493493928541437645597142767892968834358198566740300919061266433960000123109244320378213998677118803122006658625257078653958713227377933728393257647861372918984085083796320283550408081656489694769571556693856275573192131827195776154341181662402960657651552437041282601288047768257647962029389391603310136385450743063312008031948919987341177421885728672852560801302043757583958863639497110655078393806596651060559484311287423490533807807180404560390336085506667367845792535198122903183522661344719568722831892875020544881825687880211233828698306662172392046884589934019979522871350183725136579409662707319945108666902390035209486823251076698617119530426472371108042887898507244878509280008485259195970433362868100145003312292207735105017804817440736015363313380579384276841194537198918938795289217193668326244550818141141859914272565205870467148316858677478487887025378881532021476997913031521355887155893500247104180075649566930326308270154762344218053293331024196314551800832083111006623330764395333970752338798303131284713749460275783733366974833225427088321512247712032813666988481493150707533395832832257156965243736366128357660405883721344780909390528160719888940395667306413095027372500976673787259111118464947358170730725745707002763721447710210746343331486211698206926612157157312488080941954716793050421867683114920654998096336279271450915973882489919144471864872668349112620875233846889271211525872909109060082969852569690895152144559345258447596033821847572277158534074936856938395438469350348829852405810689167950517034645290773431885293503202183991566148501122851539425905581683263814521083143035207392779857641200597216990224490906209656287014987242894964601234885324256514657287797644689800298715827730464720485196837317847378048673906748179828803560958889415963210824839317975032589050023233430461155122493107084550855691943120727096746008086868151628975009859867714373152691478410198929277359256978617981484478122279091783529000456833160523922753858342155289641529695877843602672678251223282033743385079502539921741455210554359199356193372862813088691583903751408540694610408578173669447696867135694098822166529171139097918022582139294977398704937100404509883454606270164510905045030459064284750589291146425629914735786211951681460753894724592223122546973656615674171982756211630114230290609313966721204193621208900691618708097824828391447298384457620285094615417053642423872714993680394211778541768756323718161686908944635431164623354978697016447765290446529321892586369436113864606402385886341325482897786436751920595942862083892608840581405999764558639189192187377453696063474004162937293883185894780515150399866234530383834829066661158006932751039052288623537035931610399904015207980956098211815633454221648684323163208194509587141193737061858526468135259423486298216331719579183603279530887061262366686709313905908069740164531730396364533606716886485274777247345993185962443248396789486048775968058965824330192031731412937030444550983142427731609252297998671991982344050706606881219973207406081720712288459578387531424497498163829688959135484710194853155302014132661320786290463920035196915392814028012477245397010800885619433032048741573257734974110878318726681195120200639699892227254201757621502830972861288065445473258148936069173402809475256568576616900245492605672730596298094098708034239538767128596760848165117696280361394409445223123468005950236066606973586182494402767401727078511148273663437554367464615920683547274213786974378267360133653738103305519835638436644700309010946669711451625108406813410488510431521348785731723414102845314234137447563638805161982279415966199307206965454268782929507396432472288477203648548867996755339660811537714044182599552544434820298708323715774924498223472144328619327436432383279663847380145440314476478524159759518702937651235247108619989867353288520459672742065144309744637014293748451173531085404885823790056328385209492017924950663651524654650441163346297192081098721295003131610062991492867864596151332975601686433164332592969986912929198617666581163840629675930788784033103252915494968838596467423160996602948740989249841428804119626120060590304575118556971083081085895130527001581127882339995038721504457682754886564644779247643529494399451454309491529158663528382657866794974734454735382899523591853574989705816118107989368535294632483494901772798821187693814264255444802731115536652224966021649649426343727929395769017981052593032760649290721291934435745745423994981349710687037338712560323157398812297689452962983582196289601932114153215311735670399931987360975455721001560172947695845811938171738437558561888604504003139155526220273794110413173347794279043300524970703509005967957065524100500729488892456428574370654598495044627251657934125520326476531496559181179813649241711224719908154738346735777411929721767595445646086976573436902744396064736942236972369303343639121507457920449026797227230690985985121294408193667170014421981825507634625588585211729528198654342614651046897455295024244323957744104255812438036626654696252580132161473418681284284015558175297969516556947549881348912154143538458936157542217580921153223559846243057630420940151312641823345491676006710537355077377756420188991627751012715310857939234756515742036913805391654189061374493623418296950684616754013333395534025593804719336162100691685530680100220689734087618612809053622445612256810716020991906982010504317989728890304948213854601553237034088018673730915819975737238345360366012826236201227892915554465866416383637347454457488987576026719634939797566351703388934786104540659230935637665596459246608471155685123758606103697921194248235213571382414013681753999484375707897011809700517653477406131516212196126900996078999689651952747928038409473628179920128174933206141082266405183721949291745753341867631150800439327019706411730979661342072144198495389213349734735846288346611930072782796820532472668694130909884716515350349698109111390032922141087568328868437942606110150542589045771958541063231970164192682311556965093492463478489605953811005372700458808322484563150981421696618008038889400169269373750748307343771095909981972451450730650836303930391488839961231443459778787069414020329963907283645777547100048539032456270447804228572491525093690128869565549606754607836775893125375238928727131486633523021292948205568761121481911929814477805745461034499875638634844460314747299240024025270306108936552562437681560976026987402836154383677471079350683395277146973043641371129420100241123381166550258130339528890757348335983558539247449807242077444027349883742128979046812430252719784215552116597331710862488103034684637199975463218508655818066963033897536763969084863011680084043437792189179146867533569162262632616598136839528597785342322300561406488790963988938406986230840545102421460648258936552514341131697409664516896402534222715610020392681696004654690663809108807589380239408984591761721890743587822680688499434732034315019022858936873499433985984891567533394859290116638689232129212600833732067414489674131059420901481706895254457495321503648034583873344801776213687620016680218958302836569810408235928022023868850387661691146909987189588117019198430089711449498366352233123526130055130114786314986221082071567799317493484305579417149885311171587235315850585379853510788742503811939983812908644800448044215687620479338052869658749242215759094546356066545005031587380708615593904349614873924605989214002035115934589575951433957112719654406803984549591963866181922999560205801411491701118778637343896029611798592322441410873474684239989041175846728206901681642134006159438849905521829751622511967537720378427789948934456628660583362653911136029232658346498309866431171573787027985805067173790578478751715133484841650258479533571439740931115753621714376120482164941915407566073380924400057986991233180552096661669910084100658668678930400115483049939298383033412035370142066923241320672075307030829014655672053374323330818455025261729091325408177007250617198456260572965128520674451582440312339112148329763334804141074666182914358610459727340952777140733463938269199124215635828623248682096085336786966029763435585668555712018860293514879812870277917329220687032016536618676297642700041971281063609463908487966943841290673724616320959723546588861029422108618893841814657600287223125636853364945501892363859274669386948206043023757312473405039345076396043505388654655287718940235420589608888712843305883345092062922047297308727881492325601993881642936180105331945998326986888583922989840993609471384989344616108032107274805309059739755234121219176202375610085896587595385566894785318905900602135342220146780256923786155107075953769007338664391036363464364323157779710968001724110639913080087418247707095302409869056388505741486369007924788288620693588562457467109172517174137846012376911546428440962276992486289923433879401712525727195559093442542903570169554105956998112900919162685713242295484967863120854612821027479842976646860784329605426751526705682764391699734516903253422582859121669359029872987239354258167201281222814961526550388235345385074332760231670606992944188720021658888726686721177614643755360062575705537991085185561389902392047469236076919128927139079419860475812588311111209209154397877886696751432063938550432535750086557846646858096893653725785647209939281156393330583311288177546742891116050529577815264267960908386703870280104177184427897379243060040380605524386284647383433959279095629846349643361101607458681452753527036392518729898999573159021868917117210326827672584024593394446757605700508453156953022491277033801785440864603780313424962943604975573731585144620335029183164817268006022025789386532797572899729641219512890381350410617173627787422637260359377928713400839266384992111733567595570720355217224402249169290217971214868372043784245720726371451263169076289642434013525201383130666192462645253185189604240815813638015139205712136064815064316075006514563505971841584157146856791272529748248929451260758384057026692729197552710775194807984131224451119282995194595177686639407986151138554667043736045065645739698525298518496071470225174279190313313149823710316203499088478334476529571715049045252163135728371794399032046410699225585085772762267250728473966741002819238039416603409519140343603868614534783583770057620676314508199189007221563209796058577651438226816769415083218440912453631336005014169650442341525338244710738856506377972769854819878580451509734468525890516786838087710839561947852906741724561286893432959629624950687020095366531395370338975865013233464251819545503529414100179829870449116230843669720817353668925982423185317611135262022262603771940460804271081539499331856076642205920218364694316930861350138775668264334954384179573391857686182014437726821303476235071137507999078570364224297492632342169175654760126075807227051994080598205940987946218740052147992156221343380896703825816114082274202015657975193679747395905492505852035688498675176923548224132390060228114489002205758427844424786325289211000037111713724041574687045729858139436157362439471141048030659252891397780657344940232327823282898919844114933923603834853320765690022899586488722980063904733049980017178497860459012931775050918425323370552920297995030510599367682431552315712734280591574876395211688574906365645252808669090883801707889262108182730631170433844349095579886772768644078256359509154559917928978701160391639090998607882485481697934173660652463165541817343605828690304683485555518896353353102476560298995658121464087246488610084140039972429648718393204532661887729723189846636744144990688705909570812802950667829770678497810271138531770230080932926399903849488460183219285670041080091710150759481047339132386356215767734111585897269328209991360945375287965857260237394901312516345200326811044581633746425720762414570502799676254298006411099428215946636050070243964708042094755367074493922817963976582325225120578482125143017754180473035057002135456339207343072822365472590183964210902543874547588328703551012223180233747785182568463598311225914720934712416586178941176678849885350876728841987235890166801923407181841652509294278420679015699497738598481942209369296854392999450800675965699479619667003727016985445703819705155703060880969599077764501898730159892536844792146756788306923534946558898115947450600854118831932208469553048218913774466275902289168572982987534102534058143370813107092170476006029993022464289544626409836446988383874537952731537921163823375537583949013278085807654546204688722601811912070495859688937308555955863559808243238021515724315713374317010867431490105552860180676349795621057980368291436777007869424647045033496357286533610939219728582968204458431088911690651813868000268709346178084779776217637900336683589489595373770033571723412481741527430753663072478039521225685123393950196878268550053752039388931601197493937933639982817583191365062910538229874879696886686618067963206106838857117951816892131792255595137054016078824019651109786243916911363238775219719269010537655842818405025266062575307306326773074982010548606946367268662386286458599072561743947927452874585074158876874786644288544048237219493706570142800427176182015781526532792684968128319123037802168706624747617862352508277232574014942871738431289933438142936567263819541708124938398154988048150823387771404875565839294035450000600939516750013515059538931486682701624638506822853100000490308483875710367233591214318612491797766074603411282934911074954760442876603880439796902625584007678318940791270681436970945730917939270311423913503800933725368511144860876707318795297070749513290608525994289281938010434869929760093529707174992697691306028100953494786333487220252049886433143377816477266330841024120372436961829128704973275289695461947640021205756414688918560006948209135472707866647648229904185523119715210899641392865797732912034597841720470423443478995336691516191692528422786433576922231856420301673076692055101539997051155917890578347707414276665446045616660818159075761804822767409204831600395945757001001753718420422472250088137140631484446785533859752607700309649493868861687918308853838219491313330956421081849392136744449459608700704833150982542125760329142437155638690604633588871949748569543806738610441430009743293769975648957861672461935018333596302838316121142339026471798294158649321859951057049815233816813001027284277974160723652561398207799222015392360229982891613662275879049470387090955281625537078896485565340320293024311451452891943758037715657391322110287491528653814151140570137874620444332658775166955925096200303883774596026513298609652732479838510082527188164189663404123683009987075782363609152424549306410233820343379709292801519226243347096652479840619797293212799117789229548455479449468549891090680664463331990855645425120172353612416626499956316073678362926481759231764271257006755943652017666952895716188446615646485851790626010282509160180301291743878488664474820300138882925346630266080273061028465523626169788968273728178198691383085989582857720732139481152301577324065552418648533685858198329655326601389431568701144883965904893412889381598796488956300817383694696732006270488227875466545083705676335112454568416956430047207568855144038602204716434626588598220199374090199004523560428883313040044670718428190083548214748042760899937297891949977784151781777139510244957924400960822813695224401569853207768235300828480406396599331771991496449929857037131116218331021183407766688271551604625868812496581389932111912735495909728814910226274302202133620405650863894646575876359087158939118222982671532962665168767393868935489623714565556061554980551316189521290925489285723248703245585846350568149572781723570990098461601383147891848960632682274745969531284548598099273366722093932708668826337418020158134426353291621666657173026279354475671178448622901612939717448754300605025756700783398810216510128936261128201580379982171991208069606013744237580163639785474352043601982504253270707797615867497832472123926013088709142017345540149440594496111505027311738447657314479607731126916312967194254136631491879042053739004776509159509064527441769740151750912043022807412456886012517421751612990406780918287698275489642558386060898051692395754099016995925822858146510883099365253053084372667726361191798476705599371083951404583047243650123387559346740337832548745319477511594069273436483948664819169131574244092598271347811863810583413956456357072901872032718299253371180517370581389926002050731956554405672798289767622393803522326314864197068952840006897542030967881922190857355462770718807611267530989733248635629576886615566476906959342075820864069726984381411838305547390695852987138529524736092200603745593909961699711150832226968429776448443659478238929677836002930033018263101702143091339689159932851516874846593832483464801850335609047974589970216967880037311685988359111410528220356024722381306902979422980109106780000243075421342975892058394811317845760951554940963240293738770828681795834428975916578036823244762320110902090587265123180595640515361525974590895933462189455454518261754588429694673443318357930814587807942325951985297314050804329161749036309510727618514861658230316024732541625158506121529159205126263844714731497341193737994379454023047228369683150327465027005877227794668531266741720665606308877722140377607832526040245982165400363439525647373254005428431063593086631427109723091932373946707340700667901872788380215646457038216982051923330045337306975603191847039213353759263538933624022744376164010620441407074049032131609099868081397473888673956589183922647333969847467587216277654176351267501481647141938940104284482315453919212762482990122583045490193338969268108131050610922253883830878920089501229234382654335350348393537680210442525980905824128780617545739057102396151369197113703929746349008794090185329265246750260982650527737847653825220544479363550007790641194303874877220970542612836676563159714885200597558954980060742061023545144565138364405440773832765864988197367447054245575972095136916304774460247830956582610600042927304883411800697046874787365697173970797961229246792932308046802357162340214226814739872730587377485232152372403187935963693774853915536452306388310694357995179808618883195759587202796148963682510955513976158471665438688888351975580472534755500529082390966276776543251728479613612708412872192671305561621426702705776711026215466629481003900209508507447020354563704077101968575563751469322627504641573281541944443411491899322472104565544966518820296982869512554153474724774961775439866813892997984550100505577379005382751060288382240190989315300268718772955569157960115766227553611496242774690832929082514254041461049565525545555224638293288549600141433580749653386204244731918241892700566748840182527974467991953245061698326026067218229913394390633673892782973729713221294651091542390991976392222556133021294966646078818193324254152444862274355873762414231888251536679970238375218421333706745803469722924237140939325200068802327121884354522758428743149764630834871670403038141485109731990344878716364717029626819891178704353630821311709828378186843171319591217776147251841330363388165428374702027733762882619150991923207640847348831218037605514443122541005812382669984894084007856531278017295016864616260943308940723183984215951627497308767526567031042513273915220399091980974596592955368738600325644749465752666842415956806143339650584410270413701601667378961176327236437987623842602710005945266338198289304809136936111457319273365013109814804224953239074262542851043058757034370554030427379417932976508245588520134445690421904505325833720098451246990469721498963761679710061835531915856232324718879220406915990219357155097505238246042161803235134640289442938935273945424223683438778173843793462484615734863157148275586733256366030135795692251206023055916198308377841139996172941539359793741763574276244888689281218564290638784501818851158708305684890760945517671106502531590071018965726183198394452607896208078193706040451104596121019266458446197943697568497630636775680917091887602037028037275012382819356831141216054450502828395382901565927873322817008512491362588259917772935990234909961942483756417424577149437330487457238702882016977717332636490140735329467192653317548773957338732288205788656915131606248468316660332937505073439565401507726710914537915599359729186990139638970275369271502399006767191894366941888953266095777104638586744069784405827467552609320637450999628433560742579591277596157124856053698314832129112893008182201792745600061565622119296443895884696983827422564117506877368867924458387091165986935777813762824253992485176135816004939879636284897708305404366909262372531086665760752297949190418821096764151532240436446920854565755648353933822994436989207308576618111819826203545608653986318427068086049351618894293330604968766186710371657748321419126272562402314928150398333244126782240822901558695773981949643710360285456084058997621696313747677549955022730614513082011066312250118151546617468752059025782543765601410596032766432997340755935489382435713843478455471272513549886246000595057100974756626000926335664141718986174048448662373415355596766803088851290213526065615412893937970174002181240341900446357183784748124894269109764577262292395596391290088932608389542095263636524285463250707044840444481348826463193812320036631578870601689766198898868101943544643600880788827315617060830483193516924551616622850333081691125124201239573965104684385837190807105484895606165353615561794042090466688809153836884065594452830563328395782855974049874129896629758531028328365435386000828039592803065410387212299332200299427545088942951882433805199166305910627022507125634745996352299426352568478679282262112677782568876893866425715731888373065127515966410114871275917189375122572484966973860519636029302341974197677828592424716629427695500374596022072805158292113779764334407408084637858902212055004032724358863826375086488896946877185053016948033010676666458838618585545158410902925682183690725527320115279629272136361811624788366961403854039237780653210305572503771154436730817211813652188956312963562366273302734044150547079495499205427754222420479107367196661349602800177383284823931612045819608888629152074033704673767296819116346133890343686468823060057717061885905872522655254142528805836750771886967514741631760797418314190702928432885669933015852267041832305129235383998561721082041712624564676006236503401330169117614752329543704901926119904933562059596194431886679554787830315229155092526843382674166090548802042714443104766232180983413839146503642052493324737492187831448629320884868108744448023642584656397459534130524554874174298432052588005118345760875428443262354974033810480208562045298107695408164989553358412189789270937932395751235088138803214391512588484540285115938053772667104589564289912090135266093208138044078403665509669204087223975338099569071290297370815038691101844104566750296858881773873614766229049144009998614335115530211387840713189198824979260464131803533897078937563395576221300279995159635974362366181892646238122688412996720863125713000745357227895931361738537415742285965510861905401349349153610004762057186462608659075725699001653475876626428339201214329592690961554455835761602285272760993766185487592935164141623271517228273896795909076447153384567311278564477564702872103898021918616426014058780822354867814532710041337483087988441234648587762685058349161215504226232557973328952229394506954550799633182664369201385397535363985990418853748106763234473197284902002902868539189305894657076004220767085052182372948462560891479900643446847139088159614311848180127754602255555788960069491981840293487389901507545057893801406740825263721261956016679468728702241130159648264759920484861704266618615536906022705301392879051323476007079079880991389348061240662023522927068511315026091897352218270743847100850939950894327039363693393761838388101037946461891549119684273460546393306098122315366070376953070667461746967469343655018386687748863570711146034385016819873325916224234157485162688371623987995078093041972646958174988484573957450039930768855699979957887257090829102580688158703104789675255680283207156994022373251094243069053833116491412156817491584330225620045832945689442933314189168128497255057354325990209425341425885648569986874682514383376549759699682058378334878474024803277267647199877669506779881139047885956613482312190299053434738355562097079107736070974121073173976752957192961409596238017191025091284919519161822467491938800678628695209046057156488283514536998342173196395901173714252109047206086211167020848313226746865294763378952243787869524604155600301836053306315046780460687501354865094695887242156943618706569977970802441058651826637472758648412140770786391020103490003786058707651254645791611597210316634292437804271779190097814838601283622905268043457536125880231783244359719597964401112785102548872749164623466270321902208075106110732570183983591280516245775565664279748828100459146398726792139597171297579581836088397432099323831614281997457872432030379608999794071451498628595704127522792789613741081881323851866783419681832181693494896309059211366110083045278591440360254858380781664219441430204134725741711999166142245342013939452729483125936669693935465757427095858232799885500277731633824267635729732586320764491805916581898834485327924818501860939328978287898120290607909162947924542652630706400795988162739926403351286474799935557061699835397420912304428895200547702346890576054561615681656386868145124839778177656199479415996141819523206303103922233434352300847274141939860482919843771159877903724245803558006141369279364785478200660957952989074642699833989737197107677915954253966671309166252181917549068312991928642501903333050980376093833884917690547646089780389106922642525306768515338377288156933138225566437302398093614663824788089207954868125831959476915858446402491117579861755338402539587568387838745447426804926454877287845599078280364859236150610208090626751349241494876112437240231745899571468246691153595783993132208483653940798402548915307814934047846463165562488032576630504696660435024243794790054635530738690551813046215509986281482471841827397460429442137164497076427419549023502289432001931778553786369324110280459822460749656160338413245504071338450174424005244878457723602908891474052230462132539198015391281047382575328412204176944421993028324702924104539009491503895329826283218081777483025182215516733109721799114797088091012695048817159696857030730598008882082052909372114419298836428463437581987838653235636928397355425052000729333517340151697475437960587044675804251395403124526613096748399556178678663751297391931955525646729067757600608464037150252587401637540287094332653804993725998222278810619339958273991679907806829780475263271283915176852485522194511576246374877543502218819616392120860239541808631894438761510937022097636152872916052424960676739618710142477867649089833264633066561842643815196050103114758586386670392862214835099696252934337851849754071687138638482409283482058234723911716381220222202598119134516305363036505507152758780192522467993412279976710180762608814203949219204089294325748096221342253271196975309468649461644167104147695881725598971520515478161166964552214076018930347211258161971664117860715804506581354536515530107742877567819957049656362427318547216037720215766813084485316101234928001039566373723952071217382604405228965439174610919818621240446091823636764279859198833524956408137465397780653292449033278768434642244979304565131130044033386921553077406115898390315327590168183736702523198126212196983171377080691846574679161579264237875206575384350144075644289811748442950784070078511299560823446741278822375740547274813556657737148267153742036552554109769729016124946485622358453289705256193706990586909503493083338699518885688234643624667947755906360319466673858723125900429948978619399335216333074185578361345391480366411879606104588372222684524140819708936110091255894820501099385024465479413661927845435661498301588295420285047004164145510279608262429256176707845444878857949064145395200262112653339053341193619605873103731419117609633667679606430303134815475874216461084540101645365197372188590235453643196814248062111477109484386596160616299037335424649153771008838603124177697955257571300773519019478378201965112865916250378718107564887234833345668861769217427524585965954942405851761398349971952652425028640055503173188786754990381627151381910906646968173433109832962601587436422317427006196202615735986321564739320533312708224988086837634436558067858702273256594859136246019291183058414607685351731152138643451766575853495155507596785148844461214851977121340457638830977405035096540164132409102506515579974751184065593207308380955738931466869910665698120553445735852932250655654816554222641158300193886968410052146782472074601076458416668721637894948744809687956210101651390754407008083655891760568972317206015273702800915753319457091306455405005114492524623833621935277162350899273578884639134688426432486062099839049762849849797596245474669824204254364578495026513090036550793778652042426199001678060614324050972049666214242783102339916883707359049795052840673221264522570694198349641830319162460346141596088982280799025637202805119103880085054078328644192291727233431412782093288795671150320735221735434006996414205084407545494461717090916808970895676506805580273066675850259375019033862117026266212299221948020665295168136525338308660656453036940465678689051395086059649843873584187317526959590774466404415795095490409701653587870189722955001649482424643052357719269927609500453621957518765827308536314460662163142660981902206967551890309268079709218937131698618566320171943815041547613648730033687119175730282803619375907880415577719588637467809064391980236048634380685644374257343556040164160926166844896400156809797356722023919491576414782355919457912552264172744041169619197164898322383191491611832693751665023511762133829678421880073180576257532371463455218990351898878983642643580992563846539137144705941435091410831597830697623439480578444612487000451435863940251737457335641005218929862712659604028087498436009035572509121498183598852213230833381937784907663260227045634036007594527792093607578932571263534804242019725228510291854007015685126750827048093555709515114626282586388051665100439186962739402298246056776602540329194925349012094891016644088833029839194146728096309262497089902944983990776719459483200370488531251075086601411029943257867900891190223089769487353820977777995810338573824549359614916925889040665944427068666046200025214184686947481009011986671259656350738771901552242020187073172952386365450038972413696733930436447043540882667583091356561116866075408858962730628271202119288634319807932320665373696220969011846387473166474326281229872478884601575880423990476777320657212437463538725347622392782603639500416825095492116580209814799562923164220886166910843091355111209616229145878608781652813508881169581590702848019286005128567704775405818445619601690912495385768877582178638042730522185035017363239171820238424930440100663910340221278331872537645088582871164844655140957190685653394675294090448805320367352116003542102946054533294134133160684481634148718217005210635865620204229934147489495908026621994116572627540012287259505138604698132791002206133982506926801129315335299571925974546727928682145527648822957249457221154789934948775175902816115266420621611978574959340928468558361621076791802106772955309095415614729369010100605899815190895045358421484925776254589166132121021831808659258887774166594167998004961429971723514715084752942805598754467285626229181589773921147771979331270984082129377772316729674673560365151176269147471388698793334851060338914598904903055334230379129532240082520754596388104375678907162791252989799461541954541310044386283483510867308570881141438676404773108140132532063177227104816834407685842932242926013875335777845065494806729208239839205359328267130535550262722065199036290501694209437627770951029303533361836742679468705346353954915752691649011945405125047137239163291865450436674651958168722205753842227748705179383663945592587339714163641318637189901337583887448736992663550309322454488214455843752858320475730839086894927613209878998307230976278405944804659683367856430341552226751351738014104586473373284982761012829998185735512762934025037008641915759533238544801216579100514593886613178067482494902083108133171237220473384995806067789145341611971802048273010351555501381337575415485493523941261829581950930315967159332362089413057604696101469903804583486115496369108405417181073705909511550346062172390478736605196922214528789600187649118136470373889152687655619315654143753427529381576809470526454538462055088993774648508284786212755738685081649396494687274531592481250521426328509459670533331230029952886404372012198554992619736483510933835563522788249398859160295000773259337864341544793451121914448932351528029609120886847122382315364197266738686942659752087286937187038923199088595158632955749704688456951112590936763015150157198031930792610297067684288904826485001072105594904386526309337088456231190021873895876011942316637306256923142913285798302572169691425716456607884964493466812429926959897387146752319336704568241665907650582160752756862224631741264141364543697676496548794290196027649300056974229985353283119331323493598452180593899512112145065673065623398792424689275318921616518029018416925002900422385927629175337240825547813331692021343223051626194855489281889001034543891027950437015392459495626103375318410642244003472782009427080641516159067182536254688389140623729712173586712275027473556441350931628052691291664070659312049560366387901533134401254610215255929894176188793777293851576367477600163922331940243456369227549601590375543930581943969165677418926720848499577775301654302055263475226925701034914833606304836145711739740635954192120254427619642227662248242821772463991231340588623029871521436865134568646142787253430583943823897226320532755925967959595225144759474338885486473787396010762742594249637919200166552080507546540274815997570948681492235796657436070576363576474754987439135182521873609513353387587961296894233547720447285589956457934504792917102691632766464196135055704983732298220066415823433665357439655926285115457909126756668698173859143186158120053035203043007030408950494054167997474344295174592194232412880514623924757144339355728340436509341734642728445817436295892648103112656833222445946595064462110088593058157569734304082335279112891844895047940635831111561154512085071486686977826365008890904478149829984626727765202469634518096345456464758106033304220000131869194210547771785894791342789763537836679616825605521849062475388729265562628910598899846610782843160672803360579826976970326532433338139691973463206513824797275423202926944552847256624479245931246258764729442085466467741316895839987196688362414699651450337232858009401100396821274143971427032074545125250069705661872943032919656840703914595854712095688527213954063349265541500344599296681111175576616042171721864702038764810057838842941726896611565108421080904632402408192817876864252967265489407770733525338309171952150368818535693249485851403244769395342587753460977550859694002929143918750944775197769255072429998558754753414340211124337381492265612104734528323551208063181433126956253240340819833044932179108306116030683339097602007004127048072144967003455116189215429498223196249320450139152060570880244356081047746815931676816006936608832900771373346908615075796081365294845748982300265490126711665612661774648145464970246104861168527041065497537127001319852722506158913762111216452462467877142629972824679238360823909302802277522994321606242560586205988501445813474926844520311691921416599019557613770987687656789317141003931792477518419222034433605203450673502210385998004703208416693179842577252707337724296489066795478274346892722329997660017726651724046361147675130474222900036006705068396782334320712475592783880200087783367494020414531878169174804387562961591997637920185240596630669640793249805338026062840709894607915626856594233372109837908149811179350233944427362611023206154117651007847633965293203736765124685258739959013897837492520460644356729445725554502321028535286654263787489165769219953330550307330620917200964736006686246828087033621640476066911180901602871466947854212035054390061491267096754728881235550679114869306263483293774586782436762213363981816104262664788130039225100190443961697726012536267762420204307148916220664939258130531978008951094789283311465824102651333798636813404473721501002789109411359059628449254640658292787443193923325940943027032094221856844619129433021249030038460222061564328528456198825756883702935861334105375743735927534957910690707226243868128751553864363587977814036499743089695710731541636358387951488067863266456088492582201696340973726740171771012119609093948371593748952974498098152622152553111698801340728539866732993516125321158492960475708540300991583924012923791348765267996858442422486180560484486822724683123101227342666132852434682131214849930123727647501015524870035863012620581843705546911942247311226836101455690555984401049500799407744804952921414792028649906019720096952287593641149196675740911682301149129625645994217304286591941984460056477485421233251483097840319725816442720623078476176937497199576026774620109403744193374728268657819271416260523702666007229835777628641466533298125729810162579674332085014125619314305397407843194746870931975373725186223073155315338475738838661398073210593424187615748903144788048683720535031100202181685914016200913346451533955198936461691569069826854339853723420921820546523748658471778575222539318688674165738305877509351562491612796704461683688659873794468457527614802375174335406539473396725112016757143026896288312459377977664780985949875030471283871167878472418873333394193715660382063666433234344369485229055235905147864000122121121627800254618436062155210076139310890195741277047149966998388048577982272459573360396215951183455334486644164418788055935061269265334863440391973362208621880628471192106409293568025490568524067128502867189439644821459435346953651903206495422942013658093688270814583496317842476076108800782475491532564900476376795700951855254745937177195349326939547005538307920534553967074236568708182159211279578116605114606432333938795517276835241160416132470430716843632031459532051926439578319607391308554740923541787213349271773864051459901577743348283793923123694264825532636798193928122023797867559560533065446215967730332180674387136316202076686380530023896210983371013224287988554964527366380584127504022195412993796015192752421506982410725486639702964224148153800062056010461656643954128435636294777461118011881623406560878288291829618699354348866287745192905908922734048496898502296104245400460874392462772265365107047604929653562882621725910621574987792901884444051368446348666246436786574888797387357655332665929462947565173575268530192835796314720994830380052907534727859764569651756565811436918354872256950859997304539102398501577646703673504224448821772535776963425913539024324102432415003286328948714043714569479872867900030926662748845819129618426170264001506361460569980417634080879992997368926889591957926131025658041414232181884970680289887764751435066252033404656515349189800854113663048388690144937279729543892198737850702339775052757459525080982436300600393530627320572938915479104794581665255419040375581613255024073831768239445379377398646801852368109815353691446865963138032106775164479881272223931903058348085595327962961259510528884811251117339129190416274949075573833861534553311782495619323431882780920915053642195511391962563759003319347622126897041488986699792962605837956838604479018314798281444084296045684683483563476388630186227836819526629006960114147315864805715644083031479574996322034562368455258793461705672321329375628824213509117337213774650661999989674428347259912376668832316930720119543115073132021145654826957250671450201311041674137908011083337385176642202479716842891348628110508679399072755637462590893912987471530629173976251771346585759536432121155014363213977605562606345771009425295833107511248110396017414384877567157140835559771555133198140184830427846005108609632350170537672507031504026779038180844279534847500580635736900293192870368216166788763214070485598564243462680141071823139775562536534515441499486337430010758009497314678691048764917225969112685962783204153082887077107097853059083929705025929676503767892201635975857014542689571083413958054072589507387954416792893071461377167461532916237308363107534646877006611256028467648470172667840741722051371885035587398715115513544130061642875999121041632719738566913039662882874296537055435222695707804020757172752875090625472006096859106755192901626158832277030918164965394345291888902834044954818674272143320588923314307715018078934654882161133256129069830123772788491209220035643127203994885943584854389569794861662910525269581276500225823197876349015198028470980129005825030941387550254322642381864446580687355054397984558633971005796428817112106349478557481498993348003381506836906059507082180053247244982111492748501999036500283331713668850057222918697413377260086280442680324301759965505548382999240247018480167866118836627740658553678828062138865460999206763755839495242406498626437556321863016945743747291396492662114603947700324766117169698624305045658153561454829982427137639313095876003000295003320326885362877109833506398435780987212545428967052432631005227659204073092413005082748321950146544290185738312018091739923549214517651343028418307336243197979992321582114230002877980476358130404328124890260748318397382060499288586560154910097861544566422843948511803560142529783200549792707391356763599817582513974210217708115119034080993769864064221086667642226831891162878079347580137894680421356449127230481363895837466183960624152167979854569934727112106775972434048979937861896526086276018414918475560085270645491989850401847099886668331302319461885516417544765978826664626064224965269295294799360565010422868513755148413127290914376539075513961398386061438042439063082220485310144498322673284963126310657783689276692060469280861397968463862470013974723231587076828597444790638932006871620003942503810827487472947800880863442787818884312167680393461878275703397580688726312405978965785600758506935044959255144259021078774994530817044817761843572598114982826094385588835531553160862957861449325137623147695040890481929229931890423050826634752377221534300269584634707632361236834652598035287669843744986920075572525942118323447135926330936331480583222375734728714922893382390186740272497475971645974319689407953184417145772331878696033382024391612278871584491598463856943159712598977595829579258476792452213496657126147420472827739129838246866136269809874676307279917215880473650628743531880528200507536763092147096651538645399266133914588990140338131767091631062803564401282494202023437831780913071775105601782711034766864346215527716670727702773461654697085553640532298316547258916535494780709337511265237288718086988118399584247277110967471314678908204942772910192976807865656536017927365681217672173180183963464330966074638482471863688065428595250958990877946849317826122173164025817832673240367744244077555261646550424971899024227713167356304227321836639192845192630514200817897115461260876435172792245184617718934905755395255379558198195664384767026138922776253572322464243939598290177563097763953022503391017811942595368425676571102572672969136533771297109993025923603544948861722627886939033246591562273702934126471719405930956759650672208669122356344595120414157064979085811833879181228170410574455883147433756081008839943057114836217182071571177767522091729327948944640681517007862284698935006893361863669624228566051698903024840099788248256015568597713983014397116443443800726037235815704306802610355876790743045258376849169356392504221441373475795320803767888759967595677462253139952973617064842240474003068938466946378281677122065408602034081651971103041536838443731277544149111182791854579546370207489834018501054453963453786667620221651872189269077243489227937599586620755181768583607295609863154697249128893136296826821502168585276272983653376065229445895902986963164730891348650841773563757285827864871445788229774754529663466282195166030846778106695012381918680286155246508230453333843093038924674972392783385083384879200004542025583195790313770245992544007602535292553065846461218237173608159294680734902352885314559114488897680774553259829950409339752843776840140125234558019578204174294557673840384765508202773786114416963296025183730122430404738822839824171618486176042721622287084695826624374170151988884514399277717730721392903067892236979072925978909330693017490456558245173350843633455912851786212604732164002365011624336694731032676598211080527065886929232015120491031181076684295412393876905053094118005916980377819080465550870495669131498412409773161663466117272135581639554591334326935298676581691761623273163562728651722365922051954226837450059314988515081567276762219987216127240554587491779257780504863292399417657511342119536931016029854509367305249794706773117687373344841675400128491012985870876218006528350591983531367451266478549501606571918672926405841348145614717015610965849156526837498020692317045409804279001435675093926822529931722246737320390902646137166964973037162136576586950618701810016807396800784101521053439058961699355875131902523156411941087952611980701288886193201753146044239592876620721252675796805971114244302002012493695794847210246914897381372561484345507277787982785952357661469291756022338353568789649777828793090506298524117841521345102231542783331518965817831984203590420556585380359416091434243674164011538680636874310201714250426659946108042432556771700475748264004337255080411796286597611950037858433400070969500272900225043241101861139269149505911921840559710881956038750326691711118376899050533457911141395093786932789471446035225397475043635610999935398311494110232243906444213158313866347550533457911015068899270092759487796063014850969524123249896573060552686871450693906409057722715033417276391900251570466208175885234267273211568590411692716200769634810816361465808921525352967904606302813106419425100377167154010681156621678376086791418160588019898860263684427222858295512402386853513059009397192869736984971974099901075160526275434216147888151130514801258958127838677634217893876669371044960564732471447831520133734344204737273965925130016942167749485903277110170583019817757920004274115374611265055232343954643435065096748873861894000301327581452644319790678346512769533069418130662596941444759926192140343946124064752568573020582230033093751993087179492861678454586849424275217609558079408482974780154368224304953203005210255748900368883782601450711344680222151160237636872719717755188265280842214210839421101902994370540703578092032428196909075957774727700112560797871137713493294151275327913696232294744036096036602485829869628149349713932186954276665645745600362202200293986160748301749022364673096177172005944387771223477843480024486780023078138639404762407368197354756892218130024375835880146872839546960877598012058432647867308677295104684036769006074940954291787810932367046982838494665185406084765065514103023550145530203580962480175486624608887026140642854456172202140589662155233817353021227608062980245877478102771167346367366672883968028768000302034604511159411369826328500166708760724756359204454051542629433554790010647420800142563034095488994893161129255952515944653368813105142375255661006638547147448445300295190183106406282992529249074253432734556819978940225867975687818121762569988766602227122597448950775902597784388950020094389000911701901025769294934594638630761355625139424499348206127802541809010365703475308645410367814543836571955292571366678528263346454415057274290249894266947738984928949441659130273550320558314689219012261539032875440472120653653508641349803677713512809582638437736741866337521331530621513706308392756785276943779030420804636286873755777053642257908423844331850487184187761979854294161305792075047912148464216820155109718448800550927890472177189987358742864495250485764631327542074469373756366783307041552976979898065641419313652216279612627547539919050625289657982536006550898451835286980300726174903274757997556281419522421304690783019591873982534377657312761605467426104602894330240166878452085798565899669270248759102492967438759490466026270668760144853778758255347386087903374541874590593298304729618543172250337136698857001660612207370435953441377651198454276003031527100917709007257705756110559879800289767577097680125738310340081729345690444024147947177338204194058431337537192785189105055236713500362231325833542206910830839772772253844098623364423483323855398353117016870410866254289139411777613492358932726720998340445833843144134053195895698776263800770519947008918146493938105301747419909680736851272865043872657471012199564038755431274235369706760179253430270835585290841844451274553081746542844976335799205880222009333909446407597061644411516749444304323183753512502644679279656018064110137936041966549291279939752880797623485336580990864682798892636222299384541649074955404969462847092737350867730177434842980359968782202786352643928522045045806248447897532406858873559782003584111231092217462835433702748428886344472072684642261771813689269242227924334363671294068026283962419461651923977045289694982470920534982319226918577817558394036612798392388676500601265062099283050600143164807035121598672000465931170116771032612445646111375599003734520834702553647952114653258344472748900813870422196498135566868310900801176153623528769951961722944426650823092738379982118116784207649663321638811284048991256076002737023768882626953606029747213338768086731201717134558637456136446590219904644139170812491746949546546902443584921999256088012248766113329058056266359451245256766436862103290996895273448239278253047810195685411432169956166676126418044097946621163096732662738082211015278393786914035218535919298087163715959305331655119459229968361538592254530276418000563765748190465042099296527123371701845401979335014017982827361881448023122463650301996157280228648436955316290237959500890006305013761520507159481155577386263299316634864175971411921257076813693357440061147216736390658964189614854546241591278310345358133449364758740998560293480462248886571349431646284474040608136291356068665449573858775948104164555769035953683514985926938851075989646331392441973983512757602549129718240836054047692275026540355058150092234152533658451120981181605217817227440877761909092885548125707961416338472555465028050547599494438891480033803237251312176409447676255244140822723539847805975035310939449876015601753174814997869569979973090855341087466720538999248803387695075629873192581398553081151006903420220866267568296077862416799116322693329111832887251719145195013572645782888564018478937025069633431646113562276047685626810581092141690337814922580635190665783929761873408052616225980819387535243738170111926073228997255359142688792462820957273382243294398470568480281716491883764784900415871471850431576173119111990643760035718618811754167343540630028999647649619379416697598308715063223419380182846953345832661726203223401992312821703324178323895765563244379586150409051441097185663520715293143867276425820187601372973340917362315856622837294551041564283227330008689891382998694549695158851841266588962075263657060951695090724911565675761832444984140824664967046388207347429449034809884785515128470912116251322467472666683063008031262093774025591628350995230958107680916650979377863931161847291862216663209192408170054476832239960230250463872117394711887625287586234769035988985090128939334273210053106569195947119330864622282702832335269920448398394378188914466045822736674935397027243756275470886821043983463148660512615972523381361877639411174530926760247782603162193381023863158127676840942920224729347127305502754321804342910823156755009528377829197373574422882832634602795965163148580454332834817345125382164012683908968145364058257105282570360656920258143162333576166768181370489778797467305505915425480688281078409338701926797013185116346716758058290768429201620950050240838755731757950399181199788210421975778951447095536599012898222895106331022408444915843502915201687693694486159243628930769486808874413938092813472444551314238768457230802877516442959671818580478478649659569846493016623864694089534822109615082000019302419192665494074828880390186055505666893351828895141128763286274877645239733441624308569426415624682980476289816701992891084374022397463280374965804731859031977415232417472440053373935393904689825185801770850929499941960246644990264786533310473294903769895850005115426417098941645839183155912466488570076336258670971152331988504927227102698534264647612530676691584338719188586661233251761678474086059338873889833337564120897320770654171361988543115259171121371659487096520682841619221244060984776471199245497987696295965072409315451471322949364013476533572725027339664375109899039294837609260539166353512331893022098349287679715711457659534279546094207921542860257620055561242508419567571267134771743611752534062760577702952503634400320653456589451029131006488409218472729510971764163120082718098286778169256874419701221810970873369713205216915218052704791651760256415897525902546789488856128628722184258638471498703559515167501129121850498755374462666959475904414533117292909706288760689298023728953138743697344965627953284017614931079840223832358482848273345412604244309880822630294639950801131894563062010472825197942661732585087222040078868584119658086788109841300083071858196676934503945902175659882064429029660580916018099193369368200986131860153102863752022886326252656335619915377976532270976172035324622140687097533278939609870671379075742027634493575101299019603821325684112354592532639029610496254175095362554227788248438153706897479543499343750094904590789471943325796985438506734271702866085063582551212866145539325265559153923731708168596495004794865006550258110555806531802420322993299516031069793618342805849474844269408294478152666517167260824915019544277498339726306999831744020205166230873170460064997916720224576085725690328295568597377515012011090777886885526403490606847484170110041268680683047713518136239329381048594482287876000546037539848928839712147460650470923351500309092074112775282232982247932280043453306252333360235038499108030030029371995422466854541221501738672126390930445692545750446585225982149258579210325928306393176254995397903247877524538595796725481592076954102521454238299646605071655107523013245121078959426268374768997584243503800378320555125768501271425704298831555298043586574435096463950447329991770722897528562217571950724111195692919283927262089646617792982774026622981735264567914841081323880106210871953214025432482383510287915901966405244537809497319250329111625865460022070041906679905109820264022085271480346500917090569194688534308290396808387443747843464425811439254581854036475268013535495578566268400550917611583500437110050099243899145016434396540595820612295252636039953000129425329511236764755092357443120733531891328900593841554797642788080173954859709324895400256261154579970810258863086059311811554983351723670226584757637236179738025565879601045031445858032918898273816642039745274013018063026234492560335710100466233783472320320063770916195725380738704717169249359567173865825870178230591955595479921201665076791301943808603071480521028069915300306083090082723981984454811317673762085019429902906500870463583090840522639495325785068555373862309006157669665584317477076794763400551393539992803716135596565729452640087567914791761042220944168760823809321170716526039721155661986562923236705143391484085270597070813801167246203403115852407871400568611069805333811671421095240685691611889598792542100328463645515035244893628555789027814652403074176680497824698035339271477698024258288125734694252829027087576366900141345651338128515191120713085840165900885078924901740685637419052927900564618264253800859100751628502263742882469601446702060149264118364585272996417798472684665702820971093134957201832547505776580007451963843506493138976303093350328084054101799428937673842417698807798810371665894167084470002365881173624866395975857016639967826123058692958066945010325361014838253795927744129241339479023695926145497854790434779237411502541228815263977354249196180691868664547387977434493563900047148257314636024703535845923406735321607659157834165361665661774376510232237641922024001483154593811657304440380452374554914304838183537453785307053089635179072690333650812145248038115938315978319892945762351360067399018183371287662699895743929392281322021354652563940206871269418093206008547337322203569200614063103344438129719263935611055992590032309222046031540293516228904195807592393788426229313607857930105260405825011349309348103965621002818981510381026377101538089835009380644715880900374144095347067019355658898112930081933879878404027532952306750925586431767253455227528870339524697091201692794078310705412395585912193973877200461261093062933025917735070505241372174252483103106636563014582300019421252929820477991783153387617088753783625752588684268669463654386708248827150703142738514153109615363514369072281174947686180423130344130737912727795511788711721489856048378145910841713781302915527130433617598546359573102220861562285451761462911009673153580590461386900544822806098075699638851271450584950596998261875917112944650851783367839003757071664635931242549021401706288097502947168554426443751501866102162917157204019026145838980743566317580208660078115733431041529816603376517125121356403903089524322459076422500974600505647897966646924800833232367471163938703684975500465342540417374065174327587298295059228992212124622677203894921500626935872111937629595432492998279203437145715890123175576387536950242473926116973627436425818182577767827903672096502504770075132719280207713314274760743189133359807508875552885825070434268810605741690870547505327312374394103834052977818111496666629204967340603381833585403821339026510713530300648768599220914938397301893512511743534679414390966641218704068081783550181128425554837053874622655181182174645164500084530797563317478228872841553671916160830969355992106233630630327402102135807810315162903744987058118541791211947102290298819368176471334004625749378315766391705159914930876032268754464265715485720143478182148659831394548576799397334282763269324313241340026300081774586367185406342797948761616386981408835611099525672474796332535496500105370326798896532660606900765289111132816788134915979871324328308458197456596796199872473724799772296445311234139844200086780888781029178229803628196703177922493192245620120533426534408474371796423068004513259293773564266103719934096471138938213227998884516858699332379005794457525266610192893683277735388057255023508895977968013174266572983295260364596877719730183528516694381230052816032609847019695480237052523047297771115078487234827963473296994369750067241714716815614575718089110165097945736532719838442619868662273932035254337412015093328681390978232149806299039819294049500879275215869858677176909616538675068530144906873774080380285625828057439208716531777324899449373209148812584887389764956951357766798185990246259488598739753922177010597880548711084980203998895656911420206265291592142758040277534627972774950142930582710980940919758903374103611161968189240016814661417006269473887758527812541863007562293115503906089511636687901645579227977624705745692201537722425289723324278926751825785162867863392677025554429873987324813510024014061713001277068113897012406433316874051325287383699761119700797346232688100079157103516409124681197705409083112107039385722057060325816344306968475683975687729820079411185420619434044467710378803332058852509106725474946093977733932606808392215412988433229443891506272476769027964455412654582225269844390509674046403351956003654051805591037417314449500456612503773336863553482702906308511441166426378718550844483249639524499731210873416053067974009120514281001187748977148029092664421065806158966445384063231199800221645662790936592967551583327161908791408376331436078560221922093142900871036259040057629802109989741737906882183202820146730717626271969725371474628672424210389160173896537392075470289513937319456898907102127822664915227308381393746398882499202752597518931044483251055641288271736054308948095466488284331635709286022713690452868034849375486484745502710434034683619470785975420544852329248826238916846867351593416597592186082234317611269458365706750159279955030089450383769778310853218878128378938361076840002856818852714575299678201433569258021779388125641249220839188395624184961164456282270648949432290916199430102958373607124183981252030560487039335228279368638578393208271483353100469427226548267455991776711279158307183354812097600857373555425227121716398671045742486185821445287165346270142078490085045289371152043316490700754432259635977273775086596911295850315790057945440043772845815915548981201697313353380325869578387463648049948371824518613652336962946293785296728474536485827171140613399681359013479332536401609131448278782878214144001466683549681445225671973842974956635077958113484812962758794893381234811361709667668407928634410395839714773156786804269015078727714963925206050506679696682797154620279337050098200800156382332933504167350084347694213985984702459062954021093042044244539750868227013683574368001496677283972585447643373268942229618603849127157772999698899773060485667120428094297715997204430597115551481354083231015304886581251385047216853789018074588250072625664225901556274826346267337636728411778124017823662711365071935688929130986661538616997503480727459367446170831358604277202284141169776068886429957688741053161320544297825945619244358688442748138484809785597416045777434165069534049593000171569104883527614696958994976894826277946651597280956388683299573298454796106342153074719887481687229950794240732320613771793435226510147077715620554942252496562380472944641838507991170928168400010317564087989355872489666176397026074097381251101268230762499320149526659223894911840278707500444383904908030126401074850836581176885134392265875665304865975563136255163651489517058922049496307039077203593044586820360988812364300743334219645504082050095232079669257816054135165646246826286352045568940122322470188381084285514282022147360647782532350965851067103094596103385534126398684660375453933151784445274873629006767034711871374702634397259075245004862610026275949132246752989748594601023829290447185101191292837599941316999672033865129913768136826566657504142476744946516115482758482916111123644825284833263236459332322815261178907732880539344612952758009383960324548910611404829251851381235893738908326405468407141708347794331993741079344404825652236850218141655457352065087561691876120579504493212030833298489934063687326400227642386163941869362762040846469171060564736660316923764651627025448324818196445783954726687692573438793989079137784123678542619835570176965943712581014207696851155422187916757530258469176464327125785681884801958933987364661357688032788265919811160696897959044870976980907628851339728951117169666064229893146015973301500084060086855233773114248024512078966739922851262185708512430939223121054331757713868316476043164966300455677804055257561570058967017125782885115237117094921682646371952434929818640647476587779164224024027580945797223175391572219629514643003733577531677053174527633882918574393620650620505652735901893266682587795134084403118896741095079333258180392220331935304919942674291473608288961057988234476612558063412610100451933080571580133251817711558596142903909325637043747595276131519504241656810101973448110627283260835942087600596942195314816844926632234659982744759744163953140015444045991295115063258455754161730399046521368453326342295327005314039220919022632899366864729846250262910405445231343392634278285598974043166451563440943669287513154369998651377064377634950869539545278352082662337381478851882746930307246628640482326318101117768079385704888819907382857298953059960564499469426154487086240847543013983962696198996122976436576880624948878336522691650947609462288695949854946001643259034509966290136850388546019609060691607861287447146555308115963572453728398015490672653786764755417259334509240738461826247324324581962577076878390888351707832127687234334925366182977682882037751630327009705134086497356869018219716381191144585103056067267452016274667607936770909296659052185458609023435471637410855666520239662509119205267353462480456507039002104498209633093361234491731628815728187905685042656625826482140779826782663715047425740483826194708527678611565148995302932728232405287987010677611519233544040556388553933352781277319470385738149806596843941380361862306282984772232022847078337671759258434792474028999251761038433853538539457577367493501441125750373398801835574621820191253248857889599113027054468434393305769525685244401244546909155644746628501007787473281422729831205257583187186959185646345083088236485213401548251409382027591421706706466595667434736347913609921289388623170022370385195161099409413969713878821414335516952390612907152399135886814884191312853016355845553868204086063346043252561479041007337730648924387806618995269445491861642297050279964709371478581038953131185760122727586263928822218119504704459049640703669929112631186797226359649747640117809522817947915799239166012929282622094414470459804905449604960422046236706609832599918270053194818830663740190009351086403517015765957140236132442307524765269521453284525470547726337371740640730929574935560355263774426828826539968955007049997857736031634887406385918659045362494896987136078394781490472628292103885163602881849153617977960793529217624676504559261862248791122748223700732568242693994441093209434446302266439163252558787483522022402891639568208207401319109510482698862330264807558998745531674147481152838198873048026639518410124066009840673982628858975817260847396766405477105326124147936680936252101891414443912890890372394429858086651869403093098628090780398983168985917571805123412077329180886859015954590346112513531643233760500225152623964704182435010848103947495833268217679551161776086782763751464342247934235804905171142869468778853471077246676676359444360886952659846214387194797876089963639195039801670909874829741527067959050553669687357651417977353820514457058298093136257222890610322968028083934469885272400550598410882520743130512716446072137991354128509864759830721752445447391247539960121229285710780695264194619384777509452405910655950915701631930743547109100386233957628633505466663382747508282419493774226524913687321130557540265049824861874829095672450185779368533510893482896871792609435883964950028499223437976411665105070773666922953003681643297341163283411028940092985329015413384437058356753061737189814873159088337227511873127644417269676415313397066119827552934924911566125935148609723646118027872819517600374456229606688795916596488167534779087290483459558828091085733195466435317993666357989087009806106525324148036617658884450069364191687708667034918701262853202872417369850901338241308168973685229352780370340522666028078839359491780834712267515816007105885298140232730636267649586479034044790415779767566097779283083173212195997626149384973971565423369477369277983134163197371230020589012632406821683646363298558505569039928810456694355366610421820992923898016441030898907816739098372823198216676403554118623274621667653238877428423963195870734125098809937236217094848708560409197439362004090610856778770319549898326049104704754983496236245028532084105499697565633202491652937459597194642082602892503391630076236919734133309552317488877196891759998160338631430939935559302655765867520915605253185625244094787635090436557998260365213788959186036680234179562447845065051499418368418709636308062236065616069742237420034566609081852041207982106814532343229496399306183856826616918766037468770068346077370077104852582976502150629201860000620027402451032326986804752395396170305424499748406292882792163735238163076873502803498937568635191808015437770011264295114721462007820776909352828685578251503970822710865375671913765137213407407317626010092527284944480196556207728087074358308518693881489054255780933286295419585169379811083459945041917840686791611534375919300833779372449041837317394401568667166845064697021879448867025757412517189425654506648893858725162686986907310437691485294319423285482194717491765707601846438563551188181335745874310344693763760774742585464776792244195356636052708276847776831560115328649362146450390340946528243813475914391607663705398908346941661909393741328283697167748339548113952809576483608608038709615411274389102678919090472447963652302659731704424893201845763557540874590598745538968121129716182653723588825298551685128882465714559875582477762416699978210119718257802687800251447010523457169600879361828225571380340382440431718139068745220919894319211448073412002854451449164924763531293683433866143816474566268636233223606558128867369403007114258341103685745696808273113793128043686101674655721808254040135175604243446151216095878499747174621219899461030920589646582476293731950181732619336934774860449198424131088460439011279186440440475890302016103349516457325831538330399316916451150678249175751918341293940943768000925346601933239287953263212463007831900610107007142502322231597203574784856467425741843109262109299059497583997582379430939487480247293029307225109110279828412989485860869037202795100711914977153668934910309573096053923412516797457878431962810715068969809770273969989330059828739867376997817534977186206368848250280807715935419140922675424239122216436634888116761195573762504155673184502362241999904365441987611439542973328718511254428322286820170655867624195624948084710605037421549005226202794944684737908490878758206423195573711547572041172059149216134618900712039179682800548645894666671434786855855349134452841607481531192291096463682247556012287670962478222381354828511798125987399063621164447813526509248864934571656880437577493421126126217448076205516256050174299841318807965508838820118566125988400920939853133295694667669369986891640815824268547751541185688221739939783332475689742952887009072564284968181087027936148018540621675353721879867210031547469776189032920300455047746927746652356810696343670186155216583784041906095149841882160788598014176445063498006644821826142631959629074076626862023442359857345937748235511042479289781739493039663414383516326840635578719838460092050777783101688218930016901866839191502986345753575453471014077452377286441172648694964349028189917444910925975666867194824315058017753650100567318761315688926889885854959919798037394473616418816941954171176212790789972890148839785588828921575257818311331654719647839661927876632628364238619873830522617921755189936207182251962813090988590513463615513626411952519453832703307360759916364787988079715026067295053479186127636810869226002370221401138309093000653729286218863308868188752089433655735477759856851511233665721806508762503798115801997716195002711263487728109072547185712466989496827179406260655044006340215233186050313323622716373957779680579722401038177224346543847629561460303638389376468141757144346504669857689018579800351776575500654959430451107917065180610269902560931899966852117078028930043109527370328133340574835372703644039991430312767421159347099782855344870792729988858096530769201368684260387593998084859353643838693280530047327600319575377222367285296478622433164466694453186507033727334865478089870995471702114226782406864683408735656193768071571885995801320232829901739906290394509585303361564272857487244759592883653450727403683520025445891169159127094831562778275307830833674453841571163920874210555838594264260288137073345087739860877731997340494244694301405049241791255803892158805939822836916852912114758470073767989994330274008031447897936177359633582785453351051403649388488595687887681309673080429531064690229982113994698233175011368664063733087691891629056953719919078391609123294404171317698881097026407482444042409793217417421576974763211573029866299054576496885632226515244143202821222165909802609433824653795177005388215291757887515820419219837129037551519640285623964604628009672750626631499345655290180366495446847380353014377954611851234205971162071897987109595231987957536825286279129535001038289031827406018018515733866458750042288946983163815619931121857672051004741373171535551043174531690164813548690483913768424663440188377720856795190995499560129754717922212325127418261318780369772808173223306571647343802818973878188975585381501145582197184268894063382234189950256506790804453347778715246684856252219791386608938622258760616373057829823464652307985351389859419101153585450789054943446408045922111174061840385297478065904087538165646967688071296256076928085141215251055641435710374473964553745252057443598879916199254939204211542550973390611575352954018762123684896196786810981920813138825022408659501368521314235696494382128006040738305474561450679993140778130248396347711579535563639662498828482030112491304583957507126864133787093760805205149733320720686854923149704754917293613748010641234062989415631042986665446811544514399493070725757225709302774951714623221815161716614390038725883791767263331126687691062778574910630871143392008509782094137278055355581807833893714795725350826492399434842726282756035410266770313826153496060517189925019444398097837962003225983088864469196971855878557366603509713368736784899599114683803586949375779467480042707542845147906714073181611269864074776669272971489237224371061030033116644015955830824648053781186444467563485633026690146145753636600450107232503951105277178744175232156016289024662772013385862727286876422683285520994514404006548347076788109730955018484146714127122889435022289382833062772220176040191376182183657814368097391224229108878303321976748266626220028814238974876789190366743748575908321808770081196332488471214191412402228342640977205348298628248214338589957082015572799478063451521831990940226876143808876302535977831798329295967853217001719570749428750174290968336640529412482152613622777593052240967177907294013757218753198099073527552011370953508640628833213298121929998664447794983981336360246883103014282696711646267268623081620297602415637977810969902916623068857896417606210479213724826816679384320541767476949305278709583831164159702103823510569011770800819321773752869063762876377591820100169304059821967409516563413389478213184514470052853632132034274131547567402637305187396477790868241677066278894864766028230571580004895472353861134750784806418831377334195207811386793302721273034177391357976129895760991407349259848166522184733328261490701920469226687688113524907454475629128570527212981817606285312687846132094198406700828128264541966455861305100167463614950203606453667460907500284676953094041387798435195999646942143532438062230744907444720394650180061679949732825146509829461315299991745732198180941931817479251939329464756018283082079937745737978108350988820288532462096856445721104089253541062649694226671257763571813661119119031621488478643867569624698131541630097170198124372839405188887345083524682875907114088677860684672974741680427994682978977358056030518720038157307399344172503748581806239729720356559773219655951086579286935092123854766345222579279155621335227173024081591059435865508401753674880087675249985170503560932275657846981458572086173708255297999588361186881294580566775909769735349891492717222078894638134566183842671795096618760542183978985264295209481653608048639158156845388774738644319493192692720005478755359963730697364713317561031783153565886665332845559906761895346668594320122877407622885339188555960014329577206087997492590077966486527081327840839749702834585755300726751197300375523518011190614799895302494947876051425350436590884953159889800911124386737631063739444675589809027790590718101173850288751068316783871051485798238162292111098489750883028443733898198156234508701621154841575486809602931000698362098327535998421884427729700503071088182700924219542560868914729160450005741289154666237811883218111884288190395237180021027006348588309369049661978634111027762320805222874379064814586520746853440285570778342082988423443190143337207933322362977891959881238256691982568612644253045328266001259030851058491553841952644810222875584571612651301220606092180047442757820229431033915411934239228837589917984395953391244153444763497219634402202800642910085578763744295306688296633995523827907387981982702174557908203448209999496416290442131903176052173541728982495524787064975083202126658359538358219537988520205118988133353951661649321865750639740650529478116068326494363197764530328012425147556733476113373057497028748648880445221714343918734554454627120182259846165659941777557859906714024984722296966901139957244606414940410961786113135329960360226844191500948095083524454618430547437938713979125806401641768707076429517000614413429880670605922620822573370256415729781357495182690446410348927700277189321226901022604676760746333034475382197053109253466213638048922191251169993027123493997360130801173547371795479146222170683849478495629224030250076386360091109725201992616353905522529985941498293244928170724162550299626936324047566840258132217082103486846788972622628289589441333766321673812816754780769580461163187746268545515648969311107400742439845228318653087977143657228851523295382604107932666248209654882137671147822527365730088906887544548328396296038598055477643303928785123426741515203904013496699676818955390572494863319717815956792969594354238293892340074347978086376103210821858508806151548310366173946391918756031498102129375685045962542195774781796981772993720907210453007929748103143198574602341974922594059887381341712181745358751237695927948781246318596157147064839418845854891290421060924531682275261643479869214133661185467786032912666528846639515902671470174960389971911088561339743914920866358556767285395080076005072055812989977350095822492132820636333754225859266692021734699132479612851141984214315818443652928135077656798480368951980962746592484649868612398119348170656153383602959851346998254015644549648386202274753023803348777939735420043046304685007114446875398325668644799908216947834096569414103806182198871052064584257578461522817000393032179687501098547055644876917680949980773083624875702010482319759868689294162534034832193517133412641641595610443083627181137039399818816236014480758175038709793140621784136179664469627615441484086398223449167138172863719544177610557385323700443771675322339916366788776751058578006719216793944728805987851773532357547098693716849841777961454955781910723814262488549488243781799324490149120098711708025654084144778325071560792527689434336867269013887258617559056791339452477083856214311674993430864467200691694372733851728079361216162798104364670422621595846825424318678323526505888074955686597373677876989717958327939562722242445548506672282285992882390022227047547244352195630571757109197595734892824451566459149579057669553962482450719932266900446644190813247843349251097095655040332725091133927874167430388357449413644906946496722946195423685218399056051074753469243010862771616647450078051153190978760755554177237432012029965709544362700001634720716469416202814515619667854706074257010617675370164085686278893473184882651077660771047525104630323929106079015497944005528803837430814360253852075132892304131294881100521360072931676720879916554669754877907356555325687274174681375284242354184221454207878236262246369795803955750391378355092066402307957200785255054274512455423934622110102073927274171473500221277136640142652127465913982559705189455366996353875569756146165563601360783088198217928093308459164080434569969289894925387037106649378280218160169555521159500147841088961239674991020784869479912233393017965856950439797435614851573701191068308087618691720604880480160763506759374983457063129408623465975293495473902824802614924166137527698125042099531649211320012204053189499498781699513510312253062493536828783676781031137169292810660879190298665672923099769685417072505045736067753417671859425655102752161153616315301019189817528194840724218316448668875443722030492908782821841241300088495503426208396426993033780886669099924181893760900344927829469864242808170360686633892639689864466227863144637210889192208931833077092182091578256394461326554858795211544465483202636039044568040640470611856811117147483190666173811567065746708967330570207999119398175749192148279541760508764691772264386083896896881701609077802101465763360864123163748149338614713269257889913401798250512278089937697966977178582885550282872478220657455371368681314464122046829699709419600794824479444566828434102918516117094214568102329488969087220449971920569095195126629819962899872765785649565112391088270980581057481996533275878416759124007318683642249155963619538088770313867839064972416393425992225802367150232407552217266221379532488911660097665753901468485342058788037756318208454715282618572974600758106624351456906195540766645166409558125303069266447142113484853236474146215560632911052066101277574368946858209406607274947013810038321219208065530017741453991083214781318871543503616629891010450493503162372049284218448109411619386046292308572286225055823230595447779552393536630748547597402364030732093072514841414337771575582487965837924978125525690714084211004276414406125339986735536258841359259105784051262502002467519763861323499451564116791607304248219377515834198242753423967196278847654189177754273504329403077696206469446392377236372958487024733688040522449431646197018149570296688580688516887893736451946301611665706342146607656963624189124724174980999551470307036082486179368461315496352048732465040596199671233494880624513141620290988474670874180390162318295793881306972774024748964459579880166330658664443847757316657099695528510942069473493064838240831263258652465207588379304560818360492311283334662327676025603042208607998131641347796242885441483484171291049434747547202342447058249061508903926263525900585611518362265547102614227092990675435987008698034248827422759823773226313543064767574061186567174434767959481914916266577613002387176677539082437436710375069711514603043306221982045516058488915893299085632148840780524371272141360435757706460452868423838992012178097837973722536688589472251703070810216371426929768667699817709130972879413810461210740387702147405250723975828549139741089101701990491879521028700049945689823336878353920392286503620951848142505656526812128644621547560649966432790103879797363583225636475988090238491813996115341624251092831188939494599946913311303333018337358606837548723658786402344874658769303317014960836162901014062400764220915930494936831540986200907597050629358978043809093808875251266061731902186773036509671330451028140573076225624425883188431547502666890842579201997359543124639166391554696057611013989175676298052123460734888294306002117379221827638336199625614836041789892563195366867194241770672706713550294912778490593860243711406458938236592580027911314019844841141225763263708156389334069344834794244042768404027304592013431293421551940731489284048927016098336175712461776361998339499019996148694672920247287596049510906985792159896235696124537653378216828777813315895390254501524001929211191451037190213627892122790111357035253255307321824714411735714090523059238809235094003981661769139498804932067287040404583041012050422394924832943462314980495155166962855651193044794981853380126215208665196940780192408303770382580872219984924514834645452980215558263952474752904474261043454120703327337064339059811425659716251170562830417268074179431935260227257426246950552549742212683629960328951825899351882010876302278990411862921337574876048442743590434254061067551274783775142589702225419144344540418527517791070404679835290825627083728744706011519605421438472592287556183145762857479460637072568604799551192945812830920798699198311194873943474949834796275383344321871546903731971220753662186335909566461625388637058624931032512720772169582016608193594985451643742996142583452042199010030532794538150244296269759609482722474648377273265400030812239954230370388264872692348109177426622996119940593196702870127538893695915760368877028540560350399584493423829192036750856884445691874642754894150600184911754275985856255852871468430886799622563714244446413378657123839942322923624902372017682626467323890898199045494507722147075980843302393676165543209111403063187674691269291417984776727585737726693974659870692479942870026093023894517592511520295378834304972591618733528376461750865652733871778960417894644587975879400384284614285322560839679183632673237661296045773512663765475521758299576670212966003856896570082952911044713882281738314458341769813164589159191712340877671915894125531733629469272044985149622939975841178148245816476113567069459554318571417118339309122107066544053820749698318290313514698609934856958365700013079468958685239945024758250987669521859138860315519061396413734531899384595541789357767200012396254353004773289553575750660906667641289598260915704991083922387734880469600098714596029822033558446348498399347103000405247127951742200836290895469570027663356580805083362940677375004244164579192979459028773823334886637779097750468491711261857742725328016295820102969787358059171548809382125643533462799620642999510419372788903800400955370308416868981807950415267774182316585366629915096288367454683916384007999292849561047839581940761666431057665768137926406636430349612010539434462117829857507781848719105575839916963215199373151461249118968763948517393662943933100491548279947022925504839677868937477136680205321345824156649782591928355552128525699548250071020081253490718543083950937790831463577631791615682090726461090980441540113239244266827308488383025698517410111969750241990112238886237403761616728391396171661695212491368406372294928742066111137036388552325541305016597088464826861299414381041002763544332171226681081902566383467962997409805346525233540970758042035419457836656727819059804900217880378734694868631722157635054747559614911658104611640743195311179982467942573329221058251849526166888195066602154600155741921057822861532577016237205071162125173457430771153816796085136894018396439392263129626451711209506795371260221502521851758845190166406434745081614872754257980710092162658110175181084875953524916827132255580317345883484909822701345357260101871867109542047832408203782319903764685136873566845709295469549928303091022950267592619949664187277167949932244289552791573254366381473962937765874947386212559439751309552972900548671032401431616052832596932051810745739393626832909758768203135633812567989641495745469450185114437751936676031597395385699413897797034717478709400986772345999589181833778859962727836910515263980596278107473403812124762687872766935325648894268094070388903583080848925613083100760729302807192000098230105812422377389887800503873311279886056413955564801300729579257688887747807811972006187786813339164922816177041039000660937492612322949235340535100628908093421834703229305357278367192131378216154375823240952612358967530232328438438089077759448958187583839302934765004948277768363822877734218549955973918895220390850045588453854232172867079645034364477285779580470120946259120210310591154697528568033772784297819299535550581263343294899474751649205517957923197823727146405963400317385180792016894051131658620786615438408467995080737414802286165263475948025790731727116548563674178467514709623552837544448527141802853929323883673033391140946464843352506434826686625622520427507679370357471115797906140329138378020941678430256472406397053778141900723655045520870932181597998220474587328595331696432931273025756641835763245594469083876235948762133222397602674842814391636525224896843209323310562581222327366222375130265159741331628326239780217745547046838215007246661488560141287094061229400755059252047192663227781874014765947692850114752836480642848123993830116492070746494760310304582471914721492225274642741346222358786331491978929386053449041437028909542182727205523824664267963645644967225251205510643777128361271815733238935079405212983980831622082585238297913473721279244687714069891801646359555667902205869514614049148787340443621516377151647069570396323856398614908066396509699762412932199217904770200191761900523489843584125110826812566872091173228752891038120199822807638084618987797770625341583706229320854347430481906454261259256495825916891903005640226423105983143112306083842936646449978301945345315367199699792464001517720154403851154826044810533361836685439206247820910790511761452448032239737191515687379349912497031353053116061202108286758275060727097454090694421980723774666047549704215452038995089715026889412331067898688500821653979615546996145873203237559366873754875573323161959233496252961811953471210784570668422271672093829915880025679775880334619587388014266812296561114712549738622028154392125801656564310568004227757970193656111767691963753761535969082946551983325144429087449339750009507167599513470638615451947886667855378254080544166305551566099800433448563722550640079615355081959312727157318621617421224827055681433353749544909697592052533830175498568167197948316504665439494437689368885831321726368211133325367670852332472391146295492096919278544392554625261787780023542363733340005863369716936770652814373792996260418313409088850322949683537904187940919663125465374248602921894234145073247512578456679759182679794127374509376618431658534596890477681171843676100520161177858640392851797111876477360262815445467043582637994866770417839626778107827084750931101043994460051929059074608291773012228659754214244292361165036258996569020583651720004010448844546696892558932181627483409621560531479266413895544827119834545603969418109614900572512597231817256900139334019705021614479460667740433624667761098829989417247243080302268680300260732383040160413089748392123118612659982760857436842312757505177387269098246984193093517733610167099250780227842964986769350007262145072237883466048816202888931133582588439507808802684125540389722889321046336481143894062979150965142183916482188129262447624885109022044579390441480682531973208238358717394677428464935653007231584162374229879929311433335033349596943190736208814912117221078762896750003256303610131285206632883962011825323165775469721972920605642251112881815841400963463803995688642132597492714338811710813167538797393407370678539672147521501031491570627371237730926612611874730440656307922449624443866137513164221800376238043793399716101801495635946831636872618575976668926393585321920344807736492834400525483777990009961137607563879239738997271414422430371686741442883197411377584583394936392772142141565263626513142367788208742302991105326339640575178823569394338846101514719380659307131035480743811754005122724216452288376160222657208373583754821481637843722354870671790847955671266293821197607773255337708664194820486279217016880101197987423371724768948310789717377606396151612454456519030359112972525902744409209384480080446572755414386207561889487532356250075318040538815398017591533595922439748829900461194175906277019793462791972987526231279148217308686083198283281248205900013590490206943364196258967292236067672985887383076138025644618276835926396064712719089925801663759596244786526343087442738806714436069352079724113630724170935275325930813178588627261610579371319402271330293051531738431866703935927459279617941854726660201842585350317718900132625478746797509572746680836340950988761210908823224856356422600621606872861141208995534873811781804710404821787005225008620137131298923933049447549808412093309936543710962687786484784027969690511742705084225084919549573149037949983683873617787211321476442633490811465216108621149330609195135895770921888297543909414858436625262842126180399555258697803204154287455276922784315437376991448981103016082717315798542232254772642624953897815111408633979350518951555902274903963897015531254705164155794958862506648069133515038229081303501059641703529726385950819428893505391005494888964233593894660532811528098671760847221997749974870798495975686216546890923743857144734012325581594625671930271475390132849355300825223442906507883174270657789612153372328754940733860544321700022672818725183182707699188903174270355897643808336983171910932839675285275731742171324487665331571933541290237432253544463171434620772779220641675929294211578887440821834362244863197270308495938155089726662779273070252163085321002953587136452428542201199456634179864320432208689998451336265241857325946683719746764508380995445253387118696640636012087563159860468669590064955692545965381822875276293136931112865873431629781335398341235038784205851439744781316012409804213251123161414097113377125544142375880346051247506152763057397053488308070697329371545548110597784206642672929181033215649000608796543552633363132715424533878848504114742498009756463541834912324773036959112277912493856562777069816934593896245278317972643363535970174545450563239387467068901171163064237996659782597557174684350375302097730503054431268209043468836284631633195421624636638845980166165141948121402996732374816188279737035085599336937344747321312351505898457776880221954074114332973294193495774694968126298891372335070701253512107449615585303246653428432131512267151922841306335085451323475665690996930867749473129901490406770195518656000435083035495168284736776058267493322960263237771552291895958598378470274077512859240754707566557276435893303167279870324019295196932016926032674737075411231528637408186873587859419940461636712282968351457920620470531574393945117094214383709009633954237301885164535464177717765422371403974145194718419123293647068434043609136040395777010821836836740339524997070857322984943626062125837301888156186324583171778031297258895996557205380150838113358864841361853859063254153342139521023166681143356967929663163240945960492826775443058416437703468597219831941697962078907338042576969892949249396879706328023884947495724237495021715486861699471440107518203698393275646538244617868678437238019920136417330459727957819978797664255076521142154574603918002390023530852006723538661347397491932424442815795514466701473138927631121258647784672315050969795132866750005127040677856592746170724716989234377193353369930704785388610858839089651193666203972003141938119904331740001720286781059818044008776825298795748420604995214399903029602658363857473555166777719236481125081160170589828009304058241129616569524013291279485587271249869487448584968096949011393914245124852284803970248009192868135922052256004739088665176568189050390757620918762839915456602057129105456582906091657020961245539347743363472550487735569693421235513739251309979716941766182564138230994079495835678326962154954990874721127428906520046073437628714275848122416883156959958406746854480396117843628330103602602419336643183517363048210359013913757682341424243298926241981098841741097746457098979028398762215348498341784614503435334245313898524824302304132582386911177544431207730953658538899663471064588439034547741762891814903980916049995553204630836684919703009254153073788881279780111702172801503468930701615561393201639020102073261875093164773311145568004473564056290852187497638405488371536857264699183612768526729742334679470150916448804970353106528711692961942005318638323736601143038128763788263455898362157248336953612774022188813771827898693231569044559155220018816656738512332766811034649239377832618332253360143984234511396930990587348532939971141767043736262160468179532487226815624918427378455700164904108838504096181773162619465848372750458002090787100702710739953123140704124055827317239169473338793339799023670849893215865230149553872276597124824072414225352587356215655724086457964834390545937109825253308558444675487425268436131432631112652460774195575308292002057839664717562989477862215275264224969618160672248044361385428353174879138760596128423764606545644363814463799196410371606575067101045793814600487837808801588137241063365620150684824928756263338578345345904848761631424200512892298209428119272634545026946140778358429542555444480310538038333137403406901818392648120696276653552755019419876883671875564079591733910936809072309219324245863988153100241204296626374736611946905193253215964487165001717679007077618512707844413400805444009512361736029526202226710734091187034173818501963655587969940978937169310742387209226920374460401565867896981186093200564479385150854801928082645921627709826445319728917453042597972135832338088565509383123098538436248130752263764612933514147193423132337449719384697796123848046896836103561346496532064638345453119973974558239408565293084426096821171166053098669795237451507202223734043780408295704074774819617170211214840183729560844366853964262024032417660049676043552392014357159222132695392876468083260194340009907666791845860969602337833520267454902507557476086463251157076605477740811629464302696091063184007123757752096824257076996959759136746599206957958569823763225832644138269699014218898146662995585496646534987887019189736560175147429121670171495946915230687320107241947905451963686767310547400032342924775938053311305153491093137667878752625838766421054230765591459560922135156806880222863542417347437653838219252436724507986134619975739794261658666424648042078644620882527586430436776273053002443212221655451419188609603148081049250430463668854976605054756821224855918070950566921545623659671409889114548865618112475193723679624991334869069350389237483287652779927763881561097783032709220121154551449847559309703195418753974710381764328142856282748250739492487835689251223888180916580224878982599470532450328568770337291842689222841315087943124915631969401516747989175468145633794009626958904937284238708921657054453337548663400565708347696562652131805432141984938804750712630450303402221702688850581369965106221688140072090908418903201542589499756073112104295286390403774556299908883497440261079815252501826881192870220234004630926968762245343037947286720905335667179741235797328140391816386276931993123548015827331061524780317051079545955152545329284293608340017960764917779308443928142905087224641642691586929360353441197625560578123616457217083555137260319469134033308245830897162806820018943490082300831525977045064479471875421829112462596703239623287133336565256255690629478934728981707881045251364144697325047679228751682398008024875373682935784536994740628057785715748523864929708930182332662137404062831307278339411720896327319244902152412281795822067198205110553760363064705868121918376378257181460594361505464649876078554593155139423398640774938510755151488770876622757934716207340887173669229187458621080223143533736634768282199788434328085666313541193823106250766395070855708344174023492514121741906618226228815518132168785248747142276430948232532109883782277299184826742696817572114704518301953794177053400878830521126911042037551588088999259470687277471654605284313677385702297328018254535694528186107014356452739475211984122398549239572516836429872788364835746927980071188474925467411134881857373225822493743030452687298337315458060442933588517134190224916751398508527660868278552932699703164722188764850363224091570196184204496508368491736267529829625970945325440871438125091999808008946165291174841660462235933988552297026516945383902259222253967942777932226589831760806833501059451934834066534594370338705687086746489361877218368837967438434061253246000897161012880730080019950046659525799638203943099534017927227567138837691146912163119314553383730207822301517445316993803992121996526431587463073238127618167128701490593345833553272426627590908597179322617691073251447320653333886236558725336190668066850490605934471333747473872171088463795020924077084151400318225151348331007674337604698191694403283706481103643131444396625476291068648330776039200127743467139497130498943600386302875017382835081237913623002552665583812270221836400158910284517905347838035237813384532440474052440315071677245247289482495309009758502398882514406655445049581942253302908765531009185181440867428424892196673010060337817685882370385026399805351146800738647681164739712760885578639131456266701880047226205143706914473759428244589571720557612500183490223058467013394314974961620514147039430721379569833637516927286001292186583472964552248239409579685648663658492656231444794008076476011433178535952951857095076112238949969127474408891984998635174429356018291506854938163935634424902563238785067932062002291111882083828760986465735854242821934915018074095606243690333245793937307242353635485775361727057083762959697677811792604766324251286557521981541594968059072625687544281593975281826354900362409526507681313961695743508058092855536125713736581280229478480443722780808536677277426900402443491665148928793375415376759564829925718660650916686122979158027871140566813225170029252375183391527469751926034351745011850627429007929080234485878054769063842357525497256065393242210997940313793528191512248005899016037331081771689530387980616471987092526269705593855515204234530975602238339090690144186150060926519895366561365693049276615524813420252960082366053850423109322439583895595272434974087584951188769042282897213420410174690721713530484335633698764506210797179650959137363520115674226239976634801915478697983864269491883492858877548317547222426629888843361189855685200598273675173923101321800127108207232704063879903257205668719967015336578002783455133768381875253100142979393972332721811158098543409815880112460927717980565134775146510051841615697710067187131258498496256179282122911504728755119673797043858846692054999596214938484646284381683378324592340832037689768497189506611308779662284445979122240423384387010693118623942093739733030815085918543148691820090760949785064168696154893577793674219385758106790184125454919948041196348492210873342263534789623165791062720053006753845668286002054300074104101391962757254148626444471564953811948006038998833962146113343426785508946351253956571321728703366802988738166776191394952659762947825876397292415891458993407406824273706684645514886338726648622161874100244410156474433384013105047387590509379011310333833491041798493603724902814565635226756054916568842145992843859488314423134993986594527134835374365314733471433072982797614464464957527474752840877363538349318476465744726771595666036757563967082902969823092131679653297392027452152189836301645288408802173133392100974575640365165863998711383327959925504840040508327503604176837211410828037440792744758839814225670142869996202316179492794067639605785535296730479729608242308725607998085347261234709133943233770654532923653799729302677952599177266566810349832687379870643280810727630557546634275678800299826445485577162440721131471114136441966572308802199534468299081894456731995757955173937150118100553622756322954521466229389826141894951346254765446317943031809108777286007766562020205227576377778516645630045468425353592281738320283572617472521227508086942535258025023582611771995954817383874097389623704299008401383489977384924854580681043768289797985359433795074754137250660522454624013082752066006305140302207978267439145015599657931293867054709985718197879211539934156458567307587133638338044687021772661571001922049026535526317709584948462509120406602685359902362917775011507132628081197865483734069385411563677380773832686808739612900728422614724003975965476437406083038689702160702650989514479497729991587164121775345299520410798249538494249293859443833540881189800996850548382012391767398641315870230784269181851351394645637644903010802158816429158421779262146638718646601906575177137950939371018629446349969720073788704426152122277371131038607158235712920242865584778430354867219467526992864031266909732698269453643534361683985940099896523495376111672127068165437092986251763733004566379484448037706666171818444822035434333805502513789115221869531909188007617011219019018997030119311853088532323267380950129605678494836100982523630181543120200333919111944744009370306840347935282336018485920459484373543896556035331510146289604809278826781508672866273240147092992749912127158918268556902179801477495086831546451447320901890778489106482877535983130373430245240769740462167830265355084781483868529936912752667181308383431736897940028268622559193088434154916484643441961836366638589645671064804150892384549009249069639180480435667142288293439665846629766760280940616292058902716662076438627905574458440928345548679894861976812839941410307368703579587343030552389963994709180936536093598742125731461428792698779712780319474882606685669642082280704658512266592087343307663621626531524268525091282432591167227870183767315208288404461376904555220707816446150527349267162132255554586784681641723187312929658743551388803441208652785419074834170009534330080076373489719449400188454572423471422377396147988714370069394602135614858726788215941310200631028238651379478411042761743241885821262851223632179008516488639274674190034133882471101495657063304874367794505179493905333932151653457577152710788677565709588172204690278442719490035626416105306502404091368257155960069405306132706680531541813334323347649418892040150494711435009820953907519434521875785647992908058461256746596540918406550527992457621204809312271768560418978937973563618276884340150003302135937974193709503687918861298766883585609420229245327970102773504514223490089162208056646823238712976344373410904041495533720178165878720332691465505250141949450471654525012962082480121696450927748757261626263743341481154122043891019913142518586399153446614355465058890730318426516632314560358520910401260064157424575700979560010630271293934544644712175190603156299022114636950953722189395446688019405782955132347614122056803476418061101541788662732559364450808895875537059817258885445054961199861527606269857459491237939186976420427197214452140890304674551805941458150417830729804355689310345013898554735473591697440364386006503357856535334026504729123945537550227741637328895436993382147349908874283542074360584577696747277885988818298406887687876744856527285119896401182543258517116358481739296385679511112176202761348315411553843815492209036777145831497518863415049114316704451082036437777241246220650444199548056509832863165844994342248316278012851273018340243538208028283647592932398356019863869753203108670769742235996347552683274726059145052375737713987704875593458108603555165131899744956124670309381949632012721681502922361584540982792027180204231041410942651834998306341136997870524463110359305375394944873326660571072096382699030636946981746317722901227578590752624672243058856889096737807890255223446687841624772101714259657874133906939537733431202630892281317158989818669150623287378346990089236586148673460362102416197169243898383526251761609115562233133166318158505229508468394434528452089345099019803253331519560850803909203655721153528695025246565354932136721268690089230629686896332712175806927023065198524012776546400386140248677439832676988851907295579934875438213186197756756909727052722723806393979136811275581426793078135487183002350397510507905479876112830311848538067379759567274690838219295620352484357785026385735103245296635798074967762561295611607839630277703026227649829023770528943953726787694848021994545764483499597253998289078246345545321666228624734614867327323236702570439840753361306622384648737623543136499017207619145508389563033766070935897441640659099992570645341510384041013588163506569047899824787174681933550520243385669719548879592502900575929891163851456639322433640401605709782758169354856279230317512781622311221695588981483077952709567825362504349657196453149815935489434587584857278117907781078756948138942305772095095707288824372157809646847632970258251554600632115544623415567375750258753418215245535026044986961064355943719670825875767210863839652000641157357003422080662355445121786864954173001628481031605294611421446261294216622235902420749419826157830488568841718644033570739068564576182949918787753041102167140550058829306360704242327302575834798658621599364747168652368005406584033745424781681800761967717735980595674251784962242023680157860541785824721664835204576533829888485154231664149619150336073836533108395443128326952990580870812504354816810931863535211719378893101998554176414165885143970442815324420995491591793324868597167228541165656472283208156510929317083849238287106825549436554684642435432610906815413853034792094947958937165778012795537022903128154322681071149348673689139581050610204340354577284372243094102375484021723658641268058316043423109654540125335003703445782018911529812867928138465870267495283636862158054565258677873952341450008262002824338687414664845501931068164575945140319491347854551426074061055792261332436239114271084892046505828028539077576046202750689008224667624800029703813518500247766027604996059789444219582965913917913589859837382697872836131934788825807580296212644518851774868475973777771486839690240000567517953938759748104626256285260000726928183492355637507850014500134639517007515399958732636733566685434454543209169991294524670187235028100527031060149447844180963666077821568410471343145402751167363325096633136994220171714486128095037645550864740326085001659298199623372646839620478723551984731197944495832582450924441560123568421053525687954961601252548492065310840922537079947196177302200391064537477074238925949883851177281256437028521371303909006911658570791926717714934343572413788318725253328030103745226701757042994925280635382264391514011124179036850138305185353308531917731650693649086328432946176532485027801875685116431554305215585632550545111718508233810110552742276271193660035234171416161031714143696052575396157858990828195593609131865321848555995193815445636663005824403774807981203093040319754243388663119830367281421732531638242212503401843678688762481169382711987912968732400735414664718070767190116063072134912972623735538497945541027907077313096668999367491068486072470833288591784581034315320106265103233393058722566342396201090509181897762912365657496907711454465359813536478426040136248950643944353735639229737876849641333690142323948866802980052125152061286240998046832931981196738599952585234981511887088652216750051503667188816018311481601773714931773710644737411289013642121845844423676566292288474900282404162070745347334993720491294894335541751878686027748273090906199781465269095407385447606886805223332176962211646858108096040321431037854712616132872903682696753214081661972788543244071908295096567460272014273918631408587582840643515522316993599378679050589007999059854311842152847612655987671306794787594366305068912599389667996996606055972025753266716465616312562299100692452244194324893729953858178566336414932181319888134246384522096519166408327279966559310214016038402165425808192422883847311854595854136320382834101775689268447936812110247406416166553345225069140053682405799890690235032048784237382042509086189061330923930432078822416388164746640456543761069671980736274591520264307833073179735769527191992536570298225561131701791592655392878706692946819346475681944803289376798755858284452565024014590008995454783661944579957151770324940895297268535226342542927205260416833063366576457754431146222931539711961967654820554713273009936052213219113563689055261655336845501189058786982452064134637391174049054879361234089546375165502196288220179591856574064969441878856319602126679823680269084905221397518636876129985964980861836338834460775093000155987717092239389291914345069201869989888670561025381801394679757672285996521278435373382417660968484529786939058136162061560823327665809370882906980875746862927888765200554415387188452300295901946635415757784365960784707835397937258827483182751759425359754247678440695618437238191869600654473155496023409865817462889404087829891533730060394891592461742909541836155869644700057825852643531844635024424407348146734854381548094759156520501749792722344339290935413036309974326738427735850080748364464694797938971726965461224844567004582463143456051404049312470844439059723161052361148241444430239649494565824233205548283423150058035300672645232247632003995303540341373577964996468528782108778706307739750305471514467616197983963525696616099011307175926550924704529769587834927466840544811719915972351094216556175152488685099184801930556570307858919081290382702036285426906448005159997110389790715799001293467186707595456140004504046588220567745676916110310019713830188146465355450891895159819499888068843056048039860661884062436993987580275049975195130367635458123671762597096721370116054478699392515528742028360800055615798159693058433487933426090537800768140023863249468419627887685787721048662898987646989622307997424438907645628501811650775955400523742037284666114753913136434962016508135765210518707447089527660387739090803227946317561473549067075928367822244901861736803591275190689621567438571049053479894156417179084819092289465167528036839991810140990468401633361322986261108621743961905088294740399161237961536177993305925493728420694314044163715064770307711299171571985271104477326395634128167216379292688011288313995819236044745976299865396439090078128689794728981323276382685084104545011994231423770815762356289418053228456564016028487002539391553191636481210291048090233980438363445934809500364303808315146917886294474477177378302942357919834614464406626292874608553720496110157724901566553729050141075063249786419376349597845188971588932747887508241214359629212258514310776012610625168638752382590673460162454150959421096412245982792641114778356627172337712999129825596355605295020721037480947235933357318468567413314493688733599175576594924886095119330386595573079875951281501532034456163775454025933700000600813969049161228724593710379441153158986484407997217170706798945864619621569308771401058669098065129530888929028678546183255745283893160509222563630505663591987557046486091305444850546674993217714927976880269706221318498486559386063356166833406015474774487345704994251640799456607086208510436895439263920982085007576331388417334110019651137129959186308356155255948490514563834925307264333630929527779657242170193089505134719222794309678017361799814439450868842965972633088264106898238008311129002637396724627337509664767072037855139816404597622850396716088947701570756438179053318008386153382562882977381423756614738736774917932228753692450113785560510809762967462779767787195792575669221789554062117371728515015567727128880618158670694529735320999879810884960894423765971267019548386589122945639484359062714705681314022534296846511973550189103953312064929632244372922288186868971114248273884974546497073006910674072743410389228732372052210206328777566608920790293829041102459609330251244488952203617541047843733093577310308729492577058812891401082764402694146221020109433616022121854864010326670660073191179823397451339245286312570916890045177566419841835639313814264398364305857985243039863603642373677598181926109220457017402501293123626986205980492848230995796987446330048063922809090872483933595186431138643064202187545741904379645091115218946470098035666699528656837446705726828618707970556790765750722401827993011734000779390861973404911504093197837093180912907262888567638593577684144343788787566895710496312170028941065589553517007645236032472338160959979932615916430856330613203808110819842541442059665849480824710043443979499179382700284500181750005396103957143801909301852338512250145026233607833158097362765350049409182183733301153626046057038032395927493611406123045543039952426066387227050180707663403078014558918852093227076898265088342609792975374409976723397261961355300844316976999601140539568537785842345797982936604382615830030590484193188665690056890473901373574749305345539530462348562211068249521014733090360267530131348055134382506606652721511333711839602231375160576724820501270169731099134689918657456915537880485264610679187393891956072984408083201636669771252748096325960765947337463515060837842089068696543643264125332551962445300612291431817759993751961109599112617584883266323609653649265233028070731555709238934103640264251199007837527190542634241359051822768122349082995052772713913155715405256040131668994561535505224144957236561765686748854986894074360567420016942437648191518052218025652016743001935531511884390303354723371043866077425712014614401399951237958542366875639508738789558803293136545991738916383376285307953422548135606860987620613467348095911952596191101867435909646221779879549338610492597421305183964316679725774953079241134574082658563632874068127703060293816443081431410020857114595029374403414679990419223366021896890477982435797876832015722676530591785955506591928716641565264974436448630920462398081927352138194175089894040497402973263182619603496544516325428722102997205537410423096781580945755644653010497552811349626805813245786140625437283430370896022334026715032795134633880559864872880850009468520016010133808545835616251403526145259039437552760857117387031099278018729120660556299382247924734530186957312974211971705267293216392214277330780066009999648929915654990681356248265187875959640726636516302648954898862875329702466145891315980172344004372393478192747741322662853560463630373372986916573458157342444625929601333173337309655014331064106476112621705945954868047356087334760727221392385641873498280163227114450346436301993950198748439340200305989880122928684984820702779584801570131753398830529844956801770246919824606711881678642420168901159578009739446294114334109083247119403799809326689823963745464566222085352244416240100126851867428866786323005839642244660578127521898614379291740601368857526242205378801504910840024668835507491525680862390420328741244842370922075956463883171842568556107766475797149513156341225869474729427937854438199273214173434802784470653700371942114516563449334955813423196468625552974293496549096333608875405945114801287538188205183707270386341465018716332018872870174589175078540332657981441267712510216217265092108184276560920033136058800000619975765681165100121612189519307818443996699114123954569991748686021468914939176991811219031797784568416429821481351699234343843474466198183696963078236532939981170273071887414797452250847303741479811508985814796122503496103204317985896024158346908512859673954127611911750229850342839415477403981292765854477677690632086746712013669768117747984280220196118746302081173657368626319547435946653160770840356194170813596246742818282373416645090229206290641051630384875643924562424531526626597782884579921715190158313617864219092746845748388529881599322538403897276453527593521401046901402862797467424279359030762244713078364172014297366896605138884593756052063863253678199473872054452949768338588380819548505126055688372440519131010298863738160941550530128226863375051923024408562068408468401495172166957361792724702142706424775323403529107625595151528943656375432414068629405591680536031828136075104455495485050631806292856260502660193822701937306276028588235010720781148814240087707150679092922104620621579791805825048713569974579150466434291904696166787772468005041898449953239592248916865340113837021650000742755774072048143809810590535255186776006584533964582055338559631259273635570275038276764115219290378739250899477667343210961410275507549487675958971431870655036397321828027142557142500995282583697039387161856997831378673511024108736752662717960105941811105064457323667620179002367970210948065414909817573279257964567210723847362365148334443689204541185005674899639200224048502235624515107711302033854503608666963395831705971763144302852660296593230558632136823586731975416712409660715125181207841265871968738933006675916783992803992750773204930657365998822433839369808497460392760222672472626224028360182566611077004448600976299290733518580802796699027061320790584420659753380789747180165946790511114305271395925101141919950605547611444012437130930336771017097271068519713800486973004484653804989739216237918360234182908847151066208577162692732074143317362933205327948106566872075781678380191029719130774386423867610359480043501072844858486116232195203122116864565074138662473730070143933127562068448459334741875511733579545655625850654919041404827346071438190809298588322895947637426215005740849500504452818698902014229378888657021489579703118909656976308955691960095384755681203943754863604522980042138928431768565339939065311653740671844886199847039086987662263387717089519240590593922986733150884108587041191595612196135327480803072848222873357073554433234986659250526352809598920419627158749730012285815128645821604698221634408841471687093209173658980998180805580350739592741316174538181132824584949916275762290763006138601411787269179680828627320921543545393828689877512200257498071920171262647263929834196666088071002957798067669641189357350149170098021094159533012143900851217393388361394552140388781971802794575272928847320955967768779980452848074192470308051118770393886684533532290464454897017805599929233659413053645783216288564688281263658500116398988518872024248701094919139108008612203684554312456719557932293446845581699747834097086794890596176648204227063630054121333939885077292786530706825807321316951607717150064741119914182343449716353348396901600039693716123362032390098098098159090975806765262483598852679144187765180844491205253657092349794803411487114015489237136051289160337425144465659892062843447915784766431288923256798957768433418516912917564830114504287686829646052185814869906564390590676744861900074874748905441232520961722065559617006867990286653461148185313338415282864433034616681268924191268844493240577653424794179079725606446783808893379132817510773026786259192273614148072589351508231880884668367565010855947457851475962798703099271898739528332673152441594239748048128624170969793692010596997065833877865974955861471596921559897339445960414596276759019645968762919956099570418296848165629637782940095856117621197010951097441369759522479112521631447477833857174214124255941708552996190436727066164749718911875170532101794707766126612005249475674682917541517424447231495443916330811409400710310048765268301851467066729144836635421354473240597254611868798587411192135071974940981246995180060182683959290383271290721001386618973741086016280410613826934476621943436228614472406094559490616985849296588700430611745884198310105940243879186147459764246380420315347720689044675583942856242109730178602603743733852421549892780635388683596860820002848850381445833378996346452014238189485569702903197328506972556928407825474738950976687753522236219184621698628393713007595690383734513521353468146723599264073732586667585204103148518034704437189590755673875423232872783167464837038279031837426706392187429893823186967768384245153431173843132577766214065922988475862957224668818772214262759359235301717877030943148586983915349195132065029706234138316798052393695100833166546273275217312086705068765005383677810760946525241495830915579462608607103444819115791115839319074368219772201577405152776998060817237898037544662705107478416770361692845472943995939159370874810172304031695920863635508097475480179915633693835628524536928794998739382306415425786643204611756305675727287275512637228773193186889508630194247373594582322674311977096535394230714257746670639927928324109851465398637872574534077865423285548753293470852737802206875490982182739427816987565751144885036836925537490592329876904998935658973555588560738454265488422494639610320462199897823227517475028517824322062855981608628301241415194936920623246487632360999133750204047819617396646008628210252702322366477374649398119351885589012105263852497873704982069863610797403184536332288452548816711253104527905790565507990776432990277606173316105876421971700688812091445085804647768060075163525611179394785725919250238878154664736744036608151730531202774233038402051474019941587143866355857482553907223212476501781802578043376750287408865562965386870036792452948247893218533315711273380319065689343626043127804423211454825913036398413990234709285867271067515863341495198612381421409555172751898671148220698063926783114431810634948988528099123988703778250338647506983065287881527912983408842718239597681162020137431502185101749020790621190780754955863216065055811802433433715464446276542055120063559624891821597777908428945119977018757806615770171832893799025781095508418695409111729943971587744088524363995748159673552412827712176830399042027123717707536626370382917203102026810012082630648182855039140729587467042637007911381654532581372926569043842292231899607179031260238129940736078934405409828424958578820599390547838442567295597500521688206751224719160835053883195704890785129530082074644401826173288193013875078565466993044110670659277295693286922146553424889271575152218299742428173399006176898086149475295916753012540263392370608917686119893566256473578081561804709831928116592567078195091276353759297852004806185550554630678832785185061091656762050689965816789142744351348286653392719008382876424407270379482794131678189666595438746025754196168961594706609349135088131770321998622265007433975334165719222037844304984825610855165506034971563330073087598054878248683307004564780460439032396948512784731130547261332730808486920746209414206705502883037551687403367642195663719634599702414216623938643397814675990717225964090604525418411849244058735461118404696052036383639969765164185094099838631568834892487103602167125356862984150771310792694197589260408376985922160041789204825560061290806153866545172395488771405773964347265606015717979070732796145419369497596349561499889732416831101172389790341550028755036960269350750121299188417476125609889724112748115721317341885472980077696782213060968616550279837535768848405794599649519782827593852138384257153799990922406229249227018226077264314555516574945263366209789618752720741792554482415386718601848827287539262352840535184650605757603987048785915119129103431184845145621486343066735361032934315295305506835166343033713084139651574889504839397568011474236530214945603692382884208595988799300917121914826251166879838993851291463633452672422601327006204399456196433334876063406218106939950658344889605548938162079453788769906315581135697428303267437855188587630596480400630625956568940207842993140397631910467961146137217157717218697228125037912868970904626343223584877302510209302655338717011718135157149603337343792254278684606037529137439162295855429796655448856472291086831573152256033748858759304022093155894484516636793957333488875923479692400249039474193539690989853831573154471669437380830425067116246316372996306979067994628053205658156101236747027541418704962519738456252158393670128647806330385161178438047686506841815083903744324530443020579134387964068762477263841739865811876226049282812528011975523620592571186494797975542399521432461581563164290165866045044799545179239143678345011197877634709881929829583294309748194793645646464448694087585027652962284278159426305511921216799445001156931149368149869320300862125004746119476396296095344322692280993785532415196791758256908223632276390968600154634369830487778329480334002390040759368587653649798559990131023939698894469619245416561992425878209120723318156168503908942702207599841369165597315815999775533982665650624164101875701615588094852589553436504702304460643518685815378609773908864208247647071578225366370027344176687993480185610199371187162174446266745260234779106329432431213920740963088043286090389503080390644448846715380959447649093511239551654497274567991866999149575894320723268840062959443024075668340314743854923944566347053518487254604022612742688813964978709787587933236090421059565598576869143895260451375662283097350361620562136145987536226433629179424207586991741335351905444815930540280663740344847718722306472267563813317448597272691299523521487280267817708122841355975326628008862461157901729138415840642494513777010326721094034916043389530969214222876098889322837273370550128987392476408865966605194635018667633617906857655422876950758291393747942506738135641082278172980822239514453261793016043273031298694943280186841238833265306252631364128076595449049649932377105748277124869570228410851319509756852125714468422908856158283994129309020682599185843578783727748093819726421458152655508341877754134885092745586052105505598969095153815724095794719510740049569163533268816209291250236362051853726637575025834252597344891270826061045454517349014549557510662781954446147539427691292467623913999723940243331758150461672532719603912076611427029326317241379792872822895335982726340548543281305481432965056286671078721054082444096824376326142779147232677456216569483020344741352548276942083818069943134129603523660347262314679138262382257576121107747305590170112634403681119845974983921136377143545834746500070990042692523136090729832235337208491448642345334470495849053418686681833986125968060240947556451600892732380945684144365010685569072189376226783234242642417631025280133788828872335730122009325795809050367371451978587048206680381326056107349880811252937041211821526628521454817465386858019125301600045458143469477337204779225487826933889636780923347566293256831433709437829207393928591653476793050995418936426494658691279087427670987068439628792996856575693538934597235178211803267772632129103460650515440194693886208742728525732939530454119781632672241054400399485990453027115408559646531810256097473072605107292569277526025048904066845276556517453948101057322212246241813211581005077857529201792328985927689143823574903014847908954783755070783895711045729217867674965953952792956267859777909294070153298001086180920765804651039618266762721557573324804867194795604791574796560319015036426949290462641849021761675890917450936328604450410757237417090098647348596974267050284462814178851135586518507613406277992897648186356672750826351901496220964389276434419092947233570320597097111739843612904809691667682174944866210432278537205510637018284335897710162863865507454450948126290259874882810676314719023979614729888802648426640042226578346651714171983635734661870745487202216485833829953309046818347694375216301736754030012197046538470797116197478942066809670708220551768617528351598790483792068670420821155229426244932130818532510278278756206879158403565937487385138081368599748296378070468923875826252481413077746073629109740511465243841750984154664675875335802061819720768991320762224967250158951030510146514208127066135703527724282498932986219263022350737208907888650153666668044240545081368351105528399491185788465035879031292739855603840171591221595899278797511454758726040284839838533459547092902791925225581885818796682010272275156880396474824283017412891160210644235997059564172350995691614093357174638261826028249518764891929424794552884245714245607587811246205046314029704501448432485556030334387626386327216327794739093031033045485122432756394451352833481996027144579671355306994898796334856176422552489719733187804295594456326750191024899490373605106100385484933486371158777635505696480320413894895950933871636277666569915970171010730739580851614704892786545529993081507068801313308674902026086060032436590516897988366824580995925270132561266870167958640678938264142579709436120451645545342402113811143123500468567948467610342503385774363864934651707025810907465439600179983875166329592273179721181770301523868924478287925880206057631774825403019372624105414589266712854735069741529999560630076189283734425148466260581420915598146117305122843324594879759126484039099751414108462212205741778629653896586127833869451526165288080174709753787450095319001687445954104532548359331896985790752153584471153787607225786189274854886644191369749183554645609074464216429445697471875026587442113145234508111993177011686897481460595324448478349592077811909597692877836965142312972673503764116174945127442643206331592813522312961895596983834231468439590463968890926178671306552129495325744880194039811535952291357901329717537474139974817803332597741323758688182240173816815976480928091010568220086875277764293603078573148173894082273042540900303018982099784600983052588298816229531992215706276560004001212088195095511230436757982944277896473809366757969163372588675210292795663449722728111881682308531171671293453993916711488533514896023653024295205976389739624209851343444682039894028980835519482748517668607934291447011913649143661998514108403070827107359264966847553847503766924680495190518007231494148129257429182854372957218609657229666760435867163667518435625655865593755065371835553030525535705083528768131516674869456184073931725350934523887577092216324771784290337937432086907774170287698771177178492040174164362516157586139758742842062398767593604508534266209781708819015530080007797334321529089690309323031416180091956570459287747910396610684117444912469259235837126053131211638144173942277075418214079537144148414115102597367975784398288895961185825743327728209008030975967957039939605030089057321541804908215035834486145212598088406406239946051221418632539290722048220357574291106712600742427922840499068317019061875718754604954782769920648581749340890519102563681779550845613116242033483044351791083584129546506531392477118304801674038351152812418782897859512784574312317561918289855284567253785671105193184030117284461322357781537324608684115498233542852134845847326102665040232445815774206288617686909338311505857906119082215088426558829429279086266889176898021557881321003414355851987877993496270435701001263265002066412293586321458942073879628843903657762193068278217419286328618125564971904097915237381691261064064175356252753378631587852628913289986935215867307679631077513939956944876700221667425430794623414186388300256046789791681547429130857084064704102996994048774499433216615298541024320444360942962928018524001435820603240123982970317479319647255391169210550776572662157290131469552007248172692577739840533773752201207865451061681939927278842176957130248960430498341550200876990433353320587654243807656966691814627317048454339411217246389749395518750827305812400031521206849379313376221325560903186039831530574170945602318900904862702102677878776775660382145176092425339762559450282113852118070338044457285717353317371949013232471644974182487241694542851347440521989555841475070735522659121737441518897882893240108376157200466494164509089833976238203960316689074537129571785040924126835730244154645992604470347290379689422491138971285837006241882390733285274625134017961006202583104564029007548737644408417600637589673973656396787458387752789921233764093481559180084881272833321395340775061093649375054367572379522463809056196098266236550424978545857641685016629036469278645656854055583626143209424098221758742959668687340914382263906143597746134933770848355496827956770336197825767128296445915320941634004751990228451204295530011200138573749930045131137298950566826479333597559440092548236712996893706890111944033248211746923608659645640185622085328139973980784789881743196298301910296030552709641629881548065672621401422718246469517503942515165408958436974101993947699914376221955138694397613255992451300859386648724978378893696340944127679810937056218101622068543355263449668679230662837841800601370156563105555217015993211517940397407039436715781410211828620470352088727346165042723641357766498916556331055146734187805389764435721812735526349060929570582653086055959466397443575439057133311183060774406270779251019977347423541806909298829692686694082499249735204381490290122149223342746851007741378355628866673266708704357178457460354257690013987435910899822894223081715880768771363474315778694042080463598420901637770566576746365079786931910310026846365858740967931235745212807460581323665847901894450525819243824697996646408026688549161222473290743168937270559865020736675689343687143292705410911796890690120004279664994520532916215352020408596166114002307673422583049788652600300936738834288926960858957051147284379494282204557957386591850622428126287146811217451544220246449257047125539154064466682195630685544505709239061832194252457248885187776221782385616555524405452789930122733285229171855308026630899430190575724205107748751532694544612667280190215418546071883554637806788749344085931074625242507586095298702899446740328811201205425631772498968024835384586656625393359583681160816068191739378615100114838460236358818321917426499408248560556754852986072932469573273605513730217428947175717705037124920540075436676117093132381391358588893527459327597470673961159642074872579093376095480156959202741859306836830164733004494148633084120832979485827741074420217845566904868060457130600924734210676186057615996403978357046236537509463887841470135018503288880994636215480461958822490369097718529573727872846352004358976511168799576919209588523075693021453565831497727270576462170012259621501601469977395708858304270746559981113717941777572680254223771264993873513581991283604295382581043327211071465887814942195131342217439429708286864764438528724359695082549604138521368362914048557161608044912412649423087133813235206926667676159891027924860051436755924604900445839847705667067110545469281071410523654595771563995224567657860580413307014385144081185832184750728166034875051466684852691283350693983558531516790135568070473349377109796464486907819265682970596088557047540853858784013669552115518438244393812421210625127111124389191874577366098663687811746107451205521512791785846404292249484067863597925646488869035128093137264486741516929887003629603105560336052100291131501360704575630776497473332302083656521309575779029607687774534209050308829489909135093600306494862356975844459400800505216066392494322033950945066261014836054378402770951959222923374673883219512057788081963624766586931702035085001262934269140484881596434846254708039825619061350504783056574057821580308949612024135734209596641950767662973381533740859354554874051282727678433325996259476131994980628318972200633578929391030652250963335132398157193539675360497402519809765212320183266549707283453005630807005540105481497143750919481925938501096711511400868176843343302439640928768661476079296515528349167339993864197268189677361506936631995209337468815971002742538781054373546083300840096712070331998346520487261375679238913802624465898130136062233881557179097253389247459523558700325910548149214326663761771261687983623645894109571858887896508094181620363426425255741901400624294599909408820850582090750151346148696111437452513221522443365875741923829406662172805632834047707612706410964422107153796480912129577312845953642837462192596835479378447124831233141917600065531217345153103786762586301189651053598242072450441203233042603227104123938259738542491217942756854211788532411358032848153781559699212352220200766252710373918264481258028182390556899139221554065459540872592946422032998397557257226019830096856760547724869746704370192278173821019637495494298229001717576136005005907634749379994006049418232315182655264661004244209843903536719668673948373358288384579506535617201360466565302232026231452167961050709534533527348159052991173828674635376783661063234441001990390827952293730473898531931454647023804850313526908309402574160953515414942421558500436715181667126264165203327701321691019657405057401822559598052559304874077224169767805975842832141078446454562303715102088120757319710958886483827141132898988583201909160352373293826183009764096091524522144870587108296200684435355660557058457156554891621909251480186813539516819690782578939492756803104866963899728311735724078037498575342408964376885959764337279777813610082193998949958299064283271544832342090186948296979420728247472453183448410105032624231359763462590652337786636799859922568605185411683135590107597424848376312593516440017199828653843678810359845266569269216427223996803604695915810896430202130048317126132324389544641042917161399454042643341077359419029250859051463925610754242475425137088536255860390705408731520135198221121103477193231549554714492254735449022805720844379001792025190849123160170392107849244354529220770323752095848884837334931549724566717869451608657309527774089979388224451864670669587939440940320042422376191280125985529645504965804997845116785423129943295679034924088567597268752430336168035820114563830161018925258493102603129870669713222715954964900604548241811445613920909795783731997286159438071888420727407314894093395344713187115432127973354038226590226301755028346549529693967965383631675390356061406639810244108232276511978047132109893410040329580557691725024981815378915424048830468377924096943801762650136723969198763290154852484711295291917485092054573563782574852400209068362171716762675852253345545347877452410456853192601187089092343665233315527548058846440100154488527625448556525105077987170740131084563695334982452472191223558526499684074142080288699416713399309953731649529785749042204577766735943697400830482043080668343820877006886748086538927863462295892438212992006472087953663952232068910859037621892747525592718299444861213383765174420269965488488076450681228587755838902901521408408572626803636846721367490981502196283193670982876878580775806275352727604533534434413998846437544456600790321071601877783996530623735111668022414990564065376935715266550505281215670840631430823207683766858848330736404167151221320812816571980257862071320845212220200676767141946368203372945566633409821139962141814447130767090590979775823048302079402218691730538175115185003637405246541488654849125418139560678887522836806462377758226950044849136058595209389560639248266808555372355062015192239811285426722787271829305828302734210914037062754460997236088023946697646347786259932331640903175888249263852477323435751389619686642442968828901956086514784885705681309274640463642049195612200041921851979414998978723330611263693676425764751488071918279268623633724783580110740005120580813041411755451432656673266472458000548149290730065339000356882801068857110941597583548746061466575396063282947821504556327670385883942315052513618236161518856067847830698577155581222775090560475392677952661013716980775144664922639089948369281815196058460704514220917439933100447324735998330558087350370028331140214798575796932515996383600890478274593793873160497491837371924047403719251797705572621526526954067781511026633107952687634933509345094788982753311936495213368978607431297579129840570534853013882782843802398107257098412984722996638918297379689201853066397996047777139879497970764538686430091603808763183690619998559527285109130780160903081795331889768154765015251215255795684635882191293850087866105147552983519353690568295440173897610570958590587141911213753985840390566941351039076958051686573260546561528502431267417464334909177697648331182030566823446344193238659956369534550163207707919873693731069128332186063305504123093618596930091504274113962977297353949490920712628102294961060753241794852495511703244499107857193029724971206863870040008630934183756196975320278326806695234543824379817844864360426645006426455244842392831199086246195489786071926791846140691750416227271217892691685020133197358871995482799237975410902004980722279031247184943390087381624951315846448719940040303387090218271676708801686706486486374935725787811343646609711215059185249941465156477423340134978460379552569622942984264505813692190487756940301056426949056310355432174376103216135551527079643104375248802443457868484815088832444199454416057338807938501951217398290024252163444867243835571801999582305260221132124224542349111776252112965645915117880758308136987203776690859084653398091675010730286764815737798102806375023235401670435856317814610257379976737863506225135283180535736188238253713023372647172444049727820120907741879838765487841785544313611510263264527001573530752178833595092067864116557064632830384786192632907480969786764615131514210313424167677112916597028457588457722888652881637894157683577662912451179614709047033747000659955550095272319796810925554798301712441254500205283558496389406844869419244408222532700531256519465225517021070172375798074685178595791144698441206550631632532293450957881727229597734730711768400635902332329276078171566078155241012486252962707401221561227581794438114143134725918132533809695567621138445109818126319333849700692685629594661648250540095684311033799959250995082841020874786832138878097650053467999858585734254219159738114815959443520060721066038811004913854531826350974701165359106320943933071108415384924265511860922516007462010358381308182512256180427246733957517017425754577615853632628286890167628325368158682237293919928936941498709034934751524753350530565482678463442182508656119021920584030652749225065913898779986346352163679968538400203002812511750059793220137557872951099312562888029889034542483289328728758888013008835099452345205374043604884738999737465223660273865184622983303864006010087871238409205699066389448360550400729609510879171698301012132747592197959669610820517602030138015815395492541824349421429983935556823460356572243155081384756673931729815416885312216247082332068579642236461608008642944457738273881120252003250927415841666236117020439593177572782276742063423210244658159198645887327690379487000743316259325459747559497592536523138387144246773423670923660790893983835806142067291510616951834187509873967861311972369976609332009553316349619476960557892894501882531187746017935184316161313360881209542653415431311413862761082527144861840514805607215934293899584396823574896531709977897932277518007275075412281367679454293283747799121159052170372667171253890856497350380313692307833085014918460397154688134498182247283230557231993069202611353958176559874446032939974702366644260571292125294461122217253621721433438758656895387971163410729076552389364548568173710569424333423410494405071062314978623556902551955227786618213217556497277241933602774918548015735337699865483707783001838696835797081859636666130407624963756051335970032007028795909466844954423013780992130590210912968400794742410165601516712566854853335979001060964644323512218489292771462186251092817679000166003127712852194613791555653241972008144261142836328112024383821874292581890264084211062195084771223230574999311007248159860265721786467192967931192782406369484720823186416244960016106861226796038949606732479961692968634352854721574305563840168815946914974396019729624164138208891627536023179736165034850855980199332914088153875163645839577277811482702007380346216364478128757767718837810394888441379339569713630939451669766328429540744872529889893199417378898863668920213529310902476431686882358642063417084803145783439569567701902594055984595100914441354968033505086883806016152573892250849772794001409399027795610020296265890624451756087602336699478753465585024058181307905654626466014111093829824325387011937442972425198529315059535205321517550149056952304832434535604259287976498021016340380708064550198679318522981287279792358523049837803653206802149006646972716169573314105424938435585990789437209256845947573854630857717517047799377243576265268807927820943572463575236711225428531282907827074323287201374621194177826000037012207715574264983805256547874122924265580956210897027201748462760481194051095226713004132096344934928476153296573503418249230908295137715233601269368510206614111158109259019953296920670036900749095429509860183637554867616303817030068026378474559277120169822063948776645512831465787505427482484103993351242248847007145668049214377171952257875639883725308193401491155396573463571735883939259406472072337918607254315276772205963508791904801580755117216971411482089712581675306177261242396617232516673643790247830908127341893453842571272057876392313369048269083270321156232674761481535421791762870546863682738435224552225290300588260193112157050915315393638969973315076632254576650453019795805523809711862077879148189186969021845772957074672334080272029669170431177142465983389982127083641897695500720770918577518263273468015195784312141461169857150545717836675936380826737492790483298458017445081817386614209452690320128923321170173251747522481429280922629334978728671958402141258896940084696772737968837124377938733246779259137050825747300689351175688128423038622806650083533670865891970454421574168156185271488673506300904598445822236183136568656490094306481615463886565109588852842852818142798839257722567442755710962601753420191800152816827987409124733843480743417583195165107838092671309327788350242707732252303697437772353443301083685541275527193331116744348772068989345188395227230965258568779699179480489659206341815161021649702658210483355004021294351814660679712480212296831503494408892897824466189248027628263276896751829127710041045572257050125770247713503851438087828727650205164584205894314726008227904981738284263194512578495739756023363406529362177239653758411324274590601413273020141238837790392395355914876766947178354650098405081070479859807094929716533665057724376649146755047794363864366730638859170840102442769550955746442155365794309457723703280592188330669475592229143747984391621323692492835571349727617600270058404081211478896429795068523690435967903101072678498687723394209474223594500692107475208848847587020563967394665881351656774480428621717070015396465770785238328115664358948400151600800090543679809572444069959002378352807168632210175229208234956040859017736885631930333742196366624923364052551777701393998751419028693245614618129543218099449770639680950780324657459774707074607302016852233846380727847255474135392656043170238062963652476252404215703109199413058125520149416324878826832097567131840077204284001097317344983696016346356820494664276538063660945678785889979221068233039668189448005866753185968276191808117413989663757207612338225549802198606017861137398510385030002131548306900250276718536336377504614238903564907394908557904609594713526668969844113942425221521487236707948750168987381344911330197034168696373802087910330038227896114233353643507183055229479191232448588190816237336585745617579862969036610145346373396098745313427513517303738557072574476789919149260041241488960202512076704903494898089283057269180781639053926362780241086969414060690921757961038804446658895972328533233484946710281639331368309916295938030506657782713070713524654881207811570225119776867991078618970893573600363701485239186338359804152036524763810617712424441829581863333028237785852974463545086235503789337491861749154578974292845485203256034444718862409682310745860758754967491794395294262889430034000775017117136724442076036440367410052622675150784961360401966192192127138298548799408027294398933794749689771860478086855475166680845215407663888184098104936645952966689750601669831416205305450727702206769714728076664788124272345417043599074885819726610373880755670973892034474728362750071439967404630067365855092874581980555414620866395740239176516617552054099320943397332926525123626605219191149938240915526430225992020532028442290748363465657428452376604161224439021096267861932304718992587789129458747835278737470205038068120904963037639272769912664333972224612421756944346615402079486731366998315672286026648303197484211785929281559325851949255841070883770137596232010354906427440579629327248070060202059263013193476523822065054028895675579699434924237588113648457010847685155818499061213390588831576874719939980455685570667417586304815027965103217056955748723987899829896105919360980905556305083773141324911949060708490735713970143901133140663180409972246274229190945270521871829612868966562208894745430190457123013114548033442294405768936566900579125073803065451893878434452500420221403849301062389495003355728079723404576417110810454535659865843620392226245472005675438482337362858870671766277658394817411354743842210538660989428061098045934850688333190642454752410481200965483722952281829535037638602407507318261282462999073858575646488984132879268420347374462065946787095580801265709428248447519596034474918094954669164843639949075223609689095270656248191837511533027348470852850447034234724986920465337259447742758914618987351786169993094180204127259119768486821159101812165614376695230104376139894381254844586460774809479381096099614172392123243028150210085808358521334834134840497273190075963388278537235642176115135183154597708780104778766375810491352601899286411813268831920415903183632851785458420045373208936626622465666071840510146074253729651679789966080429378747621297066369614341455597889205456316024168349413506932506134815888481940532880493640508686942278858250912813217693434888006741253122814876887769199100727259214784122920472492214307753986332352233528109620279444577690583413632243524546999601154331628234759648828697618754774800525896607833202758595322410442088550799515702781330275880917499382793930427175171742006119599416324081114945649600428022175994339944082218227705343715661736215328539779559876314689732672693944778886506644922268646318811282843490632282964662056669746933334573889978794476249025876515428743503412925473195778943195505687652043533009365729317103046108806618031094199183533192249012116901409536479657633007099812098850161428135701383201991163473615733725122937179692376967546901429699067549504262966961540879578276968158207780110463983797607001843048175469280672925669895555778007248458530088818270361030974254434212790400034046286876942566018895974857019847683168085328843224891690792931547463787753764662737336375670108579941513009528882480278904385422822295553166447659822965846741379085620226976125043537661681159097672862756815198442636976730842702743608350104878178087754465981785524975526806383579444985924969159942557734380883722479161230506499274087008960979724299369977026262440560683602219620681830308061696540586931807061276779388759315266797525014750838776016779115313026672177284506547421019180640609855206551040125842409718356530356972375310498371757640718536075684964536457935772660780392272254664707854247947602584046428259188273761865511082914698606086515590211284650061285606020465302845198690303215753121656874959481565747823993800819419589926000618819262232174306101325181601701154111779511577264873933755255564993135870487978260778558960503781086371873167103675427874620797624519653113761297763585080960017407387869636328263565217061807214290428766798316249604005653330059431210823684230427147335467604215647132448773638837264094099097939821027097251401584375574450252025668580707328387530931690601131720571786343220340009396430080962659235654046895098297122092653134842052688221630070869652097316139740544574510562899074586687160669973127443266411482717859442620873649136945489139903364935263693039555482981594585894820620684443131391256545790063406361874195485638036096661731436881043305895421697167061686316026848404817230538337004796582905218247576768096087161147396477393888294750939045369914102515348122036267548257603687217285442210203052352826305452324267638483750306242168342190300523882191843674481891586002501961200860004320572966731482066301047077594429236084638994763767991853738331245256193563759820868788958108662350883192679245091749641040108905146022534922839392010215124756707883812678318185458360812728834947184570293685339926333904158925482518956198438009540139546160362264924332852552021963696028918878709148256673178373773207451408550577768419436453653096698206897876809665916049984799660764933404325023312348224592551663514305569802062444545259359987573763180671037422540255244888359840389174454987284160562819727965162366426357188167911537924453124055450990525575173611990869376124955324220268325717395379293618210486383833512925761366526215629286447464742464887138495263930692061069938237390764073569034741024724311863122294765345850019546311311751212714319672576563338577669267435937830823819659230117060303952326222266342888951882505186696901789399801846287251514707270489317535380979035851831647786464677029304357877851599847365690659500426668212888495180051688207349425329189994710779735082570499870206990181762540428489414235108943183170896579134535585482170098828992253332279128804719986395251963787003806380371341776973506277914088243187580759510313540861972124001656431327671008585201094831607419973057596029490052585461826291839106863663993034598446434759251042096697097428124441477022333531618580359519852942695437450055513834245246739361328289453146824152032411153762405629379215933413465203316905437825451645636914565363448714400771602540754864118953995209804051698422627906121021832753875594647452494590191881491494779447960849997610713247117140571614528938709294241049988237041762819945626908511773591764464102533111817394311833171432330693536342883810858509749685776996797144050055776690747934072296221798526675153244548639392406956275797562558087230257237801116801114972725795330637481545484350022537385327820927195696470514319439506648927680858867793015624256034493354563141671700423277344288128440478788914129879573733774698210176890736355965562383422062108555878560890604830046627686234463564885921273349515784621068061523892373283875217515627569682885302573136426676661284107966239817111480299341092593368315513244498697333611329217238907389056949509175028641883315134397184929998272845395121437039646637995880906774481796239950292567129216990264893161006841500883390001556074226411365082092905720424770443531309472822643411676332873102501913777050420095629567275210448580299761085675762639578373630535930636230353562917361052099272903593086211978293597423139227956335019097061558016330416795402259094775898845216285579940025791104545685718803249773195880739111534840929154996081064939050546397327409927979980643336679016821085254429247363107495829096763583282193570309544703514515928082928489282119706193779188746173193637793109543266269337205555833601308540187884547577001504408114625684459885438828824133279448874533201479847778590649679465004007670876203347279744889701419126427607130862022813318139296684885385382702257176293011548551789414056397245365226696616081297599640428860723300705545842865442476697991311594173818642233323267147604321991585359483603881701490477822748418707437579438862982660524717707909572897912319007698967321217963157968845609767048728951492188084077462343406530115420846310033242316493984262116244024397532362479876947686199012410188090250248339202442388733467395946334510232168236095923417697439467332799076790589463474987429695600701391836451171137897441249320990825002930553896902546807307027104301228781346319084349367060658974150207917191684093764651533825134225230672870777712242006499414970787095087015079243818087789378358665414810629014928623844028730811966876336907620469076711561346123861428946798846447169665657452889693975070715298794371506374571352925306126448663140970258314995476809403571229425526392805462641278886095339735073771572605211859266658937315753866657469941467441166027835613493534785657026629598474859337129748223422650345201771710846890612495565941269675722643775046733263374641141338122346799319402803462807115420171577205514525171243325733617303970657966626645268076446996462849453373390122941228073038520655363486324315104184827409820481469131447792237506944972216493142146727732892522306586226096529958432322185719656288295641499363827247073209873811079265188715126150361941988902937761692453446787743173696450786925966669131264009066032388213314674226289515033282213512405112519083719188746874187785819294848225602214736298591080134752165305397564964528299173185485906712048295743941092730128934718518178454403936529216103603125354997454279012620625750107617754396756021505928929918443690412557612828905679520078528343849069514181855133347227337015392852325528131155330094373069168865589826154953423799935942083898393879888776046735421955144705847239716435100981140437981111579549547523696009119620440965094899727525781448946791276096112083197953542001872619796842099245593417436039677344566033396039652036579228193381173966923618480425669638158913666276141144574110002755531171906531760381910169639022075169676365924118274914561849924955783988964487971512750572330855453663651654760809633576430159590738889252509026511235370626860339742371908246364997386926618415205354917143057459221824974991083542102787247221257161977508692962114502989902778885247183652905329181749894780232525288558083833274337411736242022636671226643032485526295130426183466873148464574669609249136755402868845546013481342236597225687911875762938910010385924410168417329407323745645772943212132433385005779174865489131393594183999566845013212731975011199927444687933424306775953776101355827741884218544079051728101646244756529445217210409231119934384105152510789454453351196306781055082043515422190223520243665533327495787903545831091994061176553434547413873972949873358241840114153186641819357862836941535870896399448376989062096573593148080467743331671449865047639537167697015806198309664994979670495069566912245316920797989867485093283428151160914303169605485826462539923546061433982292658619888418985502965074898704501920230744705119892233203333942159431448840612092444973590337174367896706225396282513925042408544987675526963484743534996706366754909623933489425558554299951273240921796153870673420887522266920852360006793150677639874770953860488829508139474489834603890679600125793123770216471621468406271105363289205151217751360270142648477404548806409155805910697451537999920577587110086968609122221203374272444422300764504982197553200224000207121693438408088359586325412005636747224881338223214488504755392024606170993204297493322936409851248992360346541448650217448494009089282171180521890293403039600108348195216984082852155366936425771890318964941441381270367952144996030562649420164089277761680573316174415237255759032186989479683562653173104803362116179250607152583621163625112341429071143668754468377318212801922438911609155750521700069256949237343471153974666005309621150862888346773489728011526327032683220993967096765399665258411033774599998854106511318525773851336456023171340669690410677297681862264597737394156904386237258463312155618626658940138302109686314821812687252147270169507739275032303119337784565978478270253763367235539797852031058946470752890571898872354825209281823877673302700130265679771030150465915281816656280614947193761856074673457395491307978387510952357416663959436691603445769215243999373326432621210128129498285792585124834334942464015293498250890017074413515444071158097627318995242644732843003270554698953370682872387772146191181883634047912507066223017297651859511128271478009402072467401211534744404700069454001813010027240739285692698884782614140432978294245697587855528304107661731830164759072231941200245732060647652407922217180363416831578710200218267806297363832539297834799902599058027182428073059745647640192764022774976111918150975679588278284917719271158048641810961833668259297935335279569393250009895893974645668124460789433138727838152330573473053641162068789734570469722774859347917039260228960723046367391827062267192311607137267677488980138259327592097027592973512314999573642636522274175414754210116459013402182270058853831834600796753079329098826927579111570894249190419317281029637807240338949646491109155481910973632790301212420247337803286488528302417722404818094313434352669113011121924390114705621583770281119797463556928072344335822302696931281309307819593411714453898290186602698677828881067017185298831150392617911250816062631176392383153522098302575634764338221365263390584272240898506802289566207072112237799348629210847801382390458474830562605410616974636832482108299904840736503552208751572409718172183149640789358544581477963609939296466535743609654865747330472785078246101959414219730963452556103976331613036438344754256712102902302859760762298218406463758019551871363685618447253801289094613739203335064123675075302301008336967758009345476543546979587470150417468512700641545454141066027905248824951042639399894974149503531473168271379755536798065277153009329377156170782097394915181000083483262572007504735658500501970285027001260831671851967266722976219595171242463175511101845803634083983574481782892507833356546951029538120674072042752382174206661350513781984494851644769836238877165391006603010804637670111774480433702873997913317214852604886734625498517043431952370586273092024282790867549178424254895203866615037599150818645385240649189828942501223032791947479545264724090968780913663398943299266828273660435848564989925860086246269723288374870270660443819006119438166817446191242540279221429276473898848250031238293099934595791475477447596831723689020058327945792552844233598906617863815012638191786902635987168745234877410397928779870739840991418150033101898068535640561322844523158707560770716033085064695472484185686092470728981142141394946179108281771016820103508721716199920576236822372323391919741863213475415510622005045954837473032202800151600190761079518236723317032932203872047315225433443786849386343811780107909934948774633615726768495515883236488578806699086471979295511404537157539305459449479345851525140386786391176406650498707352176319637356323231467822006694418945732279022435127510867271281870606000689127200431431986096221253901461814886126765032241546528689065871139568405266340984935420687758245857462520265951629159276904461908203650560912169484214948690979077551498054467271619953079319125838175562851138848927576084247492039602611200669306309511036615286684034472836557501443954720027492955157105198815612378160822815786353046907180297754252340066073707769532427621037005290866454880716596721236723865099861573612159068283764892283587100021880527587055280694927011234126942585976498514051568207176937383435651815671677212326135218952654648978656244690436099125090857468621186421391156756017007203096382478377359597823419677648274212332386963462748898158135821594578636277480653218597652660066194648076072735591732458235842157857883312619657557054893680638393750329137382330184177953551755479013375495655358325477179344026882720905890484549345944796425026897071197405415681600455455351624182260156200488755128987328953106888094463901090469798598007611895948116400386803249479430096471207303364439461102289848914651348038550204065508870075601324830684614629390277950336653984849682532978448973379630091687777423840882105599270433141517167246292159053551771789984315176431505480470967273896452276237071513897289301325219259695570627078317329988207896403626496690656875468904025948659626867999203188418575236415020369373647391050410213502800267909011210264092435463066189948540533111557327528608354454017852410013830479024695964610046024348213056215750804802358211858497098219233470843268455591938135939792909993841384954730663093139268987864809455791124765309452557280197307088268998771213787747746581198331447932268037765717109749416857834935040443736106379235721818732916166128645487728747937964407060140592500361553105667115909478597630850235930296800209294068703281284822621279418332304830918793112288175120506819500739927530677741653605044960560394149161261025252536019041453768826114153716318237950615531497286248654743408293017393533273286941197512589866243806979755071087262355396205873518510861391674011353452442434870827729525375482886315347962431876810758187254230460005971834152996844849401591932415232370572432203837292289521678877856462715823655283959800661516444702111830098980194185919218292132660061354372370316786169448045330665921712370071374334981734207064054914490610794444917502564673851642936796542905801316107754354567514960732743465433265424044036061038018005973179349785527842570916318527320357774537301781620855614318284244495259927194510427282632533259197972235346434090101454098574204230463033702749872166232303502644162509325654675353319333738537043411076590982778745980763992121953027713764491919632179577449107731720028298923870667152562094097133659061106290510784919635657841408318275674383480018165010808282030459130989180020516296312152058257718930818989890546842331117030847792026124493592328031935841747898769877005199832623506823461641563941459619314046899333467127636917910212353459277525324184970305127593230338632770767563175159131624352140814404365668021301785953565431693696670298957641782928864799354681979989903194138982058721629284165916844614705846518154767686458036696801130876372425872517749890643747494872930898207320676614109587508618020825886819078572898018959289184770098758949165683716374950909263113497568361770442301525199164666638541036866953883694670353300613845653888819253194475370349059341809451581329282324295580467305392586521612486589153223514927236196739506791496649454469627792629259062609994331554360611070639199623514817197193957747393466395611531164362905359485128837781264836386343911607640175011311333927403701682702057390679556015952270765419414849715727934396137119291242267694472493262925675064132103005906057803344304537612623833640552754928049344397385781636400098360972139430760628173947589153172662976169767941324523986950836981667457011408794933083006525257724333660887651473881237522131267011638878536463333728907005269202600389204946958697837098569639447178659199628545121946656186947925692649361267836008725212103906782269597279472196860782558148124091793319945345168420827786050801972727860055106500138578698102142511774506200383887047376276681577792999160328960139529796936435699477422901059525472932523750899430848470380073469353882030725953792927349123413702637331408867741007291050893699885835143095262811033285645297105064943978233575906118084075254492500134182023757541769138256782002930155560004914678520815637974021802615607664803206138461728753570188805431733753675892214868087789219991280918728689560752176361444535937801019005896576159009287713376409720081691140937285946009869310652053243782703065165421952925153265570719906762526702656013008017710574795122307169135102775265267440808418071128864817216823647718222137908625606833996701161368324421732994832771250187966700156929399966892904226536208445576620405010329250232283104276622235616202006428785607843139150098341406551207941015673064435462442642548749143236190789008151800885820045722941982738724542500799780084371666012644629440889633506495102142489600001220778178542647632351294703882166440344947633688572396507513758346524594205630556606901203192837946448754181545570840920175696476368960325680011725768144489402950684654601396265650473943213108408342576821787193011646886649884708877453945768193244045363095902401853315893003763761257085766769285474614854470582301895294735327301686619997921299126062798057446499213456442003769031616298564460895418495195177362119920629080780799364046785712874850479347511003555282454593230978238871006040345509846403146616621516069747723650088139983020707345235299590044015883243208961205538458384679887565255283854091002200064606554545619918803117420762456467226162496511448703560152406574551269817972779454561950804494206809755595843873177961404439367408595033120901587404943492042495385859410095733652158120654640126529072784026155852264426604465346867793678715875152229427299168359162389139049478226654482344440047680199970519258860469643602017196426941773007585371852592540196093224565154791210996950907229790973705827726776847269788496160325839024551211943444413991567951842549090826434493834101739119822564738300779411886328028892449804459113700900566017761127147500801720096658771663093378961793507913080629658207361951297724106671337552766565237976750796763816211321823789616868359322769936785381691199511544288079301986273102304073365434852102652169109699389542060787290626274825260735410528169376139134292872286502494335116985609099775542610253814319194665066861997796504579826917886364919899882358172183486259624077901559518244167644171487979908440900942330058669205137291992240899610763179339546634598262356031988721593554315556234353460478940825222107826583473627269147125034351039978392158265828649620373794132690286833084665962973926159674862157334647184398774527554002695567565680488791995486805751831826811084820977288752032752044416966714698011247619230949269783817315518804104749644695627939761503792698439704970560891792619490634712532092167133837953974601470976274389012213436151581235408218672447432126903137929046903115645543305302704855728543733751407847155790870003999683774120301294978720276754606845526636280409248465154441241822827638272585105322438083178519259758023256538260497189830182616825466992936325411135239765991920451275611191885519163343903286886439861623100976607436442515843551456703929572264848649023721351552942553754296449722263733606187606331766833492350645948280674687154215731872429369046545567297191625142836677510430593659740186765014546266231199637600525212531686073646411513374457065240061779866517485950112944970076834212677646208450227706073051425912872407849724653621568222983676473945819211386612891946036064673860813180544781917026718148778356755424136861110558545599930955066980814951290242440231465599683982870818069605835941581273091570069459097500948310382395611309144201883984481846802599869463372452284194397489342138958223471088172618348483370907932813506247346851518859987031917309119604882191236988331260092213035573062187147543042928515684006160439745672055312289636055817445487423574764444070872686099643430673679181270338334001646149421761320516975659015224099694745756753406360981666858576055265185254244098455991843539611157294213240778063436234176535920054171443255618215549197240251151077091675110781246811310033597070897862803096962670790159657700103320128943596376789329978823511971771497156310943160566679338324198333265487500347901518821288150532512978202705489195168930569518259964414937323744213881951238684752483743860520711142486074924673696950449449721735511431069193617122220770230595564670000304730866730174687715698860855077122658351643340334381873703344494778547737800030646452683632192085630342043482696468854748402834344067286313603682956624282117340199927948563821402139529639571089267524323187069856578615834192593904280386924972123754274058291909364860495937662618837682699093436710769055365283612977124457065041226194584047484513356488139022130538083293975724038645823743099458437536054692138191141891730346154068378095719811588335415941287032832532359612013903388617942008547301794200808989363551366151518862769700493552021144530180529279437959981155030110534967786602460488581716882816945713857057605199989687903885965254437780072454502751707232963654453193061559744666402710253709240434436553914233155222012587448079615578321832669704626287066834465340493369971532103282850254159588617325769503395673005301909221793915841235242337486908370033983412103866173892745021602091255802742856830030637441886900371309804703539865203669115064007690983867057360760575183129387564639505465746481229370361700420943747223910427894806111549832403521314184687032803844220888877090234384835388408329894529213867197180303694256724161732172376466864512899184834462547056184661664129664649631169303742458027137997252510053607630132246204914058660414108636009640985003045137924421523846684686511611340439811873410287476252338205118410324095350381493922746052795542881468300650431659524389664513604349909664527287013454400407475674760549525815740447612228021980597401714068375119481969094794564504805992433721084912858868869358724307985761597725687690140384073976283848124334099734296051849731853067531640433836001641374544741418895222854134600375692671065284302445133811678434952378530026816060743453627797815717036557452964127978045278500793800347703036397757653734534212566096140677464799759297248297633298143129989990824595829272434042974630454891793347493446984285087332858889941499576762258405660840310850282352762192071687434547430121096109034010210661699440266612210478216046635455625568054826002366625815209908832028278944148991151036491157049580210827698388701373731823713785666599619403725540733916860041642501057089994613331948623429971003084866802029576369012974577979385112650615395112916768611074076100777455253484015792827246650839875196450801995943334444953170313217949827413182008035157503630873351318538548458971633458950216180843071924908303705038963324287507365189992329573822578428910966377176815241561636945555865412632314527997866001584217717817203056837760373147596985058324671493079254771080193661734086309451480338004418364421060266740152149341604554649639158004651228020087092660214037795752977152414048259226529325079432953526423989791038838327245049364396596072581111344979949028188777230473084536403230986684645720574669840726530205317744723767965380350110447999259994255848929468687327654415392795319824356234898793239183901176087394366072263608191961571677058024227856983827766458037426943124846980039862956850775933683460988669967958616161327675215985697070482303377304924287940321188947310405729910241619512183037150947575814563398131067254015319295619248484981697716665754931808660343387893408739118199919228267071504018880423969192961429840061439187169890312527093177991622619872715100592093185996862584688565183811876606583450550460523319264371764205162234897673284035079637465038661821558310340122788162838314463160183244791728027539977688075284970975864466310268156911650343874108908920986494485657238088377051364651281575082213705981036990896598368233619270842434516700556982961493427976936996116712014524635596912445083625847533313940047108074488287956988782037175190332732723582347328554813504149411889119280514069780035266517253145659590806250292778554353489917420458703519993661409889800575922453899553219465571742380782671758544078844221884458597646789127834689032559678234010683031576098699499273196667802072886250035137416416989455672287242300054848453617825200770814462430351757878930929160214592991812747462534378402852048702679774009338034526886524262317635842144336885073354575091715975225826978291320916252535961290340405043722423691986688992305954048568702943667077759978450088585589755260125815600485368194261891322343001634148912676696952922395982782180397289368358221689613729570363654316989886552191185396441023390717733250345936158387862729308884479498177436832561549473894039445517264563024716815961360681804686774959905189956719916865841386008169098781565814806379507683085327266234123485879642611905239305474661915024296044329342962866398738952423600233896243487961968397526155391793715177635822851063893650572914089453988882130116438456467145986699956601929841198041993360750004248662114924442695003602682103797557355293363526725631897163744107178159127116401340475447503952059859224549490967321292396732024258160456851501841595442113874087257965222673908667275217037600218454996991021147906585710617227255185385260320382714064856844319754448358944714183457063771749600765783147173037943436804563846388943690662145149202532067099748284551554791887920663976517054569399280914903805766192565150391239888680055920846678444378684382411368613081632521156315198106838967614020855553561958082713733557557299691907262241629089640800847236728217993025555401094936368140897641411955248566613590598460404122984654662644695609765826005127687146929839776201971694965951893142365243824398075892609904831257128898854974639086070448522488114798157484522636742610870975260135611174312982968014402678059171948359879900316757505406445057336211340651027175188729705772305456419256251605555902212198555759563889399036035386571631323572987879824128143531353401863109243124799159173422759835948894910964899959917137990719924988047844910887323896712761361689332760559405227550597761687526985967098755880133959747395501737943687783886208138231230504905248369826610924676546019794062520172634271553532639865589874370054293350202021802270298575422754455212814136975735647053632168244287068928214856813258103431334806962935990065710455022356567133517380339791044961619599784452555483558092017018696672532139276779619327946444747067751517085168121239622823580273633083818625726951517857598202329528018335313952845731783575471091197901221314546543437867889205536711664953349689652177889768099513976073267621489394305587804724440089833340917408357623079321811981178759203262538445391933141882592110858598659080363363631488052497845560279326792698025789901190140104137732236225968022811679569563176630953898118045833683073740431323253339701217849015915399620405976933017051990918983282326849946511177488609024772107181208224883207396295515097488118992581062449871239387464806840327720550739741880835707189969202047072256017874969723751625059024880373916602694972761792587691003740520008767064537137927623780849618189818374949191467324046366430336338518719847653004206583677701572879716630359509298234220571691168400749204312952856976776894108892890469488550881402697313241268733206396401264495821649174705928398920590268024674059162217302260464397573556534428565152883327981155766558589364186160521300513561672951138895426718777674786741397699029830098451518768552949096875999353779742490951562329586528257785649415658028131201953685421717345862612030190283154565279280929365255465399639876882253248364718500149537403695078976402935502962724931274735391048482155898055804015335680357888428128768533652211577072273459602569243780572958022352789829557731640194180519848019973537319989578824873791074878129984096595373035272326924904889440045603734366820012995185669534920860604711378920816017039925824581575827196126487396011753296366075420950467246671793751054113749053580676991541569861999518212646528778026963593279049772922336285709233033530267739316617616733460724487714024785375860038772301072567070842158628414852974431544826206818639714300624619415174632413697317964163442974633792963910216897712141496101071747105680014169113631285321075704999155938450018705155057869205985279385759093789237557053551769142743408006518389884514701048070362247670422334444672542148040781620770448742760313285839165003549024944187796264446211757791002539690588586031655521024329081609361667695366471688834923609834986747334358053175516321114361609561386333943889533353888397562752443785884061559808662384399813456594167050373686051870417771647487936357516856837679603931422084554104349621556405254057473510179159579331078073760030558420785254003565323778460426924441808569438672919708924725773485641476870109865921302940654075800168580922550842900167396072098317134493826366413744684446485884644632540801595778956697366103717855901004023650611290264385785570679121224319544959248385653453891504616312589838970079967544612714819293484248245604297832129906335942899313550530968425336112833538211326696819992363487816870285386232128257011244422758099927463343809320040514466667725169496163965843795788725817511643655383605623189680463767867366103110809403744571530361274220561295960076594294697433823537345435789631213334079872183621981427107496090531963451323593714068531267749462789345186198050486046983744281306692417446157206158157669692637619709957442313990804519070494088193653902225547984495154117258294126191024159136543098564619308683751167350520952581338504692646796542677049777686576670564432782744794304598801421876093242196069107842957318709766652781155145997352589440967993944616819857285454589475999589251481443178820776534536884233820299394934894574394055523073028843951213196497620726972632791513197123636843920546515887010162750639244021868938040711553700367278389934413647965002547135603828702563533194648463391716995403578428991395965974002357725083822853647851670604862288042163661906666270996398331759860755531487547664169415713347664819115354313847735436731625875748619623966711325861632019043072167154881221127076095988818402289744625849306694195305216887496550403584111116882757182481640124404752196931917148469309885698332923992611309431406446743364283008019265289469790522680053262775021098071978681739873370484769153724638957840943713106319704316781386666470944631308108582865438543499623728215365881799691325939768237651034858245244531483148534066241729710069758943634821760975762146238628458844464594123221589944878292947829271459748705556007945104815240886994104279683062847868248020133907780610411754983214368501324580258881621070100169901678710098688161520958567995364222504144191156896421970683373911156122002548121933905791768450289080118329126557156161324550659599027343823450452173219121582814713901406126786923076875921959106548193067701916541230145300524029167989464637009988929969920259355153626788018277028424791253064572698050387100904437424893944276278204502347258642268740606105087862815189750303880535346134916342748233995147484792202932323494264862919148147528003036738174804187000008167981644821144242096106274573932658910194384647593251522604707236571910084249306750342815206045197624399159111645969620015164832958061703139843729747686522287925097863794722028850310323129632465981244043752641961473688618823469427990227969375152957069109603122223277107090340450915849194221525571825258215103128452164667311007586174953878111879137533414616028417671118849968274050934915097935578115809581995338980386021597390575296221452934221274983454007415600231615434748825122147246612929894133765604464206581340435635362441173218272253454203864690844561410695351600026482940421229703335169221592107340160352728874668590637946184071790413279924139623015272802249852850640386230094913914416656289422037631479228486473865519196158153926744344357729502839821962041252255363105282164700093029730848366039634606527621766336795400047040382309618762308714705570010619824896294467783626339666352841073912856876580382634755627363232626973075152800493102946671069677103942836877780484512254259590932615341133625026228358117324208969800088848901452128080620524983779371851468964227802164366143306020873589583299258028710005181236788373530860565519681296012277265651320199241372482651338880605555329735842136552111195693752836798336532297396836807909682941248739219295256118116346724021217683308238771194374898559271166323966796752012296401500943705014643882244139620733280375449273733308016466261592891351468552181773247450256726152919810052816608910056674928025127020223523497925517630224919282186883622234560646950689973710620267458388723418337489492133766676802322448076387152065136249486244337704106701748650263097712750458918881877172336473837720585979569226859991534050893909438424963945339073000210039835581098738197374175769257743868403312826910345724128574273365221908380737704886614972299445153332298503696449541662292013313617888219443766852027263975712912339494131265459315329187529919336687259808680891555660636237935015461477587250994557495786915869698800647199760447857674744642066257479065902986536260377446103679987264697108006421876200765166122657553336770369336432524018404141229924155551696306267774981504597043988355588025648800527074882898177259276401093781567164584141682452787278339979609138126938425370897421768630726818722655132310906598075346975349875838685488205554561011100318857403049516972778137803649803353036496989975967812934368368236148521553825207516164612379709128590541995586751628754092145494124234695726633489297261293644885757015379683315032971886255409316496007229720484910521084500439841418097153594382418733008430907315274131259540183698367710454328987505929882647187234579930546708871509362281869882497842077843006359555203778449702768009055366111819467942635241360647095952630298453645829002720593422577569875777296123849191065033547775142312950625540546680167345553357483359789240537535944556642601636479213347938187326524738477505452356250392356743493702722315402233694844003038214506334621788859030549404122939444451713773773570267217889017912052269480954152680654218514771013796642959410590695670413419795993774390973398177173441982970230394539227132298784754739856265981259357691504825365170056779681550644762600430628282629358556148846674545960772317633714801169769738819008044653006424056682602095820459433262536358528999097441087214049283581925103128804808118290338900642361499096282370455273953389753487788086999325769229494246588147847617464972673553153236392724578852114155538516149909855423340307376056565579124756530136239243343229376353591639282636595158106547544262879272567443389880865958635249804577294689878706868435365793155450778957938832235147853560931870793552427735774804399365140045354439747598281186018644964704330088554796391256518778916105499936358148313620812432220449769705522724758050495293574741773360109818507821545357924771390511125534586213378022345833672289704737011519398293015614997217349415551772410223503002674737042812020316627736635704729253224211455452174099744324810491087990013013135437983028198989456051895161288154711920619046408756084937620037844924418018509301972815589688846805261514036460160616508724775768896598594911365473803567567457583659069131434955993422742348856807402199127382893294396832623828786913346146076026597479925764455724239344900436154738787069409030932285673531992482680846973059715048400884857414199971155241229174156975383499296024056545180666565178952486173534852074269669984280693754962847000741387211253371701447895312856276146309804777197872429981987228543209396785441764102208458118305686663040626763988121658170767681794611536940377126083998846407251245209828030056313531250406924249728541783832433334985260477194838764006537825824466282310296052744212401528363153906421701374742281226961122022199635826447133861945857891938077698610235521701837316277145965221203208447605432276616171444279517289414094329220432730440677566968052869787931493194792307598843720030796908673105633092472416799943154113077760969388958234260195603445708232454606584698929707447741724450140618432205176567991582756791857377301834454951040846966102704950381715652327682860143666291246037745682873208011821199892341149566928439072839827373442645504541254405973166272431566011938493290672123460833841190536170146422525834881644998788016932834673941986638444980477027250525652902024632740418932405572161917597229708751361353497855783909934905348274255445511394531267526183602641407139354230960923087201483230613681462393009518879805621550238610508727867577865218892297521807769728883967698061161505457110035889913832935669891821021194626060981402174330418278115565334844084766692969664861303326070641307890523984530557200458949501298700956106201510350685587586023112150248255467524718034540509640250778970575382862591925638677312125137783634919986573706267658452023527697862557209761424314614732170932785922630713139744231139152022696692945605072132334437722166055143281257543696404137581525832695327525194912952894266266201250545186305931323624620428477755037866957233957437262940169366981683447005909439089376274931799346037034933425159058878816169282415727837581475625142440147555444604292540114880347719824242263479896880729888849889190838454234675858277636214268566011643379799148776869291719386704603477435135662993187635103192899403444797692447757998934906368733147024106821875106428323504096094923572033354360519494873182675444920505126132562783560129063705599760683550387302265332460109294480622322327658678492033420192310011386403772453083741390144423849525468690130731493425826632849633185717601519890248965944863962658169478407346431185114599579982408502108348589151637189029765949952425851900685729014533291960279767739602911379474683516856009034344515518046097870360937573837908322614513272649726298990444561166497327744833753170439775472111283716542770438569782158750666256791149491346019782798711461697932630231838391684567777417654145644341528095324847654140585876953930029750057786419567570117648280259325883625248868677965221481521203374969261961705753732741159109520422531587623655414295797377331194150563074866040672133289326096554690700624400599027166988407357169950072381570904844738133829895744693094039897369241524393911955987746984135995180196587738443573936838733670398028920604523719588670903657796319838455618587899779737446959726583582265792912789897443566299155894044965495845470675356552570441310276191484252189428677759179308341799427838197396483903237833882041538482558425965998183959931807379133744131975507787014939545068345554799130293485020307314983579340107719687578153028117154562394462648506629853565718740903755112465064678348275747000858979821180996968117257046529655305974294571739556949573813659019078765432018093591313495261450014596692448657960408715264787835148357248234232586702492649434382093194718545789452424160163299939027262472475006762332083020529738468188342967442181165731905197240149659512892517937349056326883653927075622502385445901184177464700086802742515870398463855477179410215641878474771262423744128103928535943751873047915868183281913945438706598531700282800408540139191874635065035466985996532173000277247825464440093647511860851873550884957520805389129311718916549016211956557940127046916792537744892448887582086577783891753565454087540782086265177314145187076311014042525574348369291671890196208072529246335885282488480739582626377560372393218098422595960737826455502084187712400774510985441532310019302621503185988811012348774650086885137846088107628417489124484356133041631285662329720416195336220836036349962813308275160687652175680116565885877439004154915549272164940009341050211016097069742888195894368400769202582963719898693126810328214448066280239124274085086277083201729083040859488256399513299285186170270083315197518490900027259656184496463876956154721008355841121756176127469450924623002770467366199268649357920427620270504766111400697140472774430828149654947131800047410453428431318979535757748979756731740238087013136367579007507955864054778627904890735369278990590547360478988749632382382077173838056393207304881383699437464737781662623850693779686765631687187827853065832691139262051179616895008248404550051886392513472868287709245075053430328391326509039697105131883598784552480928516977487233921863901459675024986579935575821737811086554213568368350812061197690452917178582601779406015098803847156291129919109884318322514450840237163209138833033350509893655946795668708630270429686672705644036884956510794809284259563921181281773287762137541722786356830675606812080717267973139385993387347729211975649566718564446177012165633953949261685677431229990176526258244280681448425607797898501543290662642748282108152370760019304191863593098305005144821817620013968507157256519021614592723093460481185308722778690484616790155661613462394006182210086668129352047164354179128577669908151630528240163582309703671880326729952242320368254299370748022341713819740355402568967508696324945371164199237129503159511625754601856465585411942581285543464094317405433075692008469627495059650114301684504269507142789762212172396878247866461234525586743657273035068593923141658416021035807781788629303167324145776878768337429029290608071427101500549058635283472999396763026881217122590283337137156488576856081251439739806548446878502570726616822987544568151041912881536302127351282847490897872996252648103720683282084957317940205955816578818723248266203413396095508271572895600796909143601768289405573911160327640283832609065599612645790790693198330988086610021807278862002909744574507907635558678047734178663879871003470355321102030623853900128945702757076245260121713996867734820618492895315179818403308617917991157065686861222372595102716573622789997272706899990889311492135020341434093197499647485613987505532073873583925807069364526832169498883857135105698024609704997778805140864580527303345257025501349896369177805245162051724246223455212721900125979032337252551533073957343536554700197622264193894096117379582543393612427480106076087320914442187209498466874473742430906666465625345990002643147488260509111552003554344475878865238235425872342463830257127746072232047822231202589533505580159798382227450792462726428463683697989060287473214323966060145013208112984020911805043675224998235404093638489881610530050559780448364066301298839340239729897192261074635531718990363989072442629855175470640227710754210319279781119478278501957782149113149126677106604273055033026356840683580402202110064107600626456013252836734787640579481492624092073686337215979220888707320869904319856302907058673463865400960081919559685118600140527147425039507472584259272870108973529697369486073919434890261872113233911651952403374529855345025003359426376372177712358629387949338472652224760153901434738694769332612370206454561560644711424740703191119750020442962972788910239070582159528574919264064193957008847559161812693783819035004667263006354149933530182377506170629675716363846780375937333968364730182690417322336141848937333662013393679345204846620528155405555344545525116801372172716818860785146069143401721388816418816247721501291266446037388496231869935829632613370515185154693286677129707210460696619495006323255633318673677145881684838754798905343483232724537484928916538992371051235677620961069476011483401773116348157703250802430242823245083213077830312791281152981677261276593012695433887350157524350909138976036394244028525171040468090887336834724395690812088811575612615773286405064524629443956813698444286592168108767774160454656866105603732163693406734167743815980937229392599266765728251538894853031947714545387092087101486053036649445146259908385826099087148093718938459446775584275240080531719575965074254421169393313916790589300815989274431749305056387444557103098578582846914758776662883381531482790944996543539298024476689863495573878107365506905835349301136023483097618300062506225304761465331370147613680211141223620461220534756857800503714005643434372305505389709195406104998165200420243256856970848590321492565544324276501293355591335038289515566062793493452887940327033140439627921771441594112566977990227568519693855386339903275187871125788717571540790452889473160845955140195257072292301501694324064469453846184899362905452612631611376955962033953282457550793952403057173679214569321753905049311165742589878071337258739357537451609134763914156661058682039539657403714614908173318441831048552377184123617610037714860878293585167489321139316734581801952846661176747975882393868017745370418717926365058327116114862349173663708333792681750430453822307567435238014680427219989384787833944149811669671090297625383654297374744701436602580388073182542029272267748620573886874803911526698879725695131784245436218997086971666646917096066415191412851298070345260038777113091097663834965046683794734233218655345643264368938159439444737624177894730850578334409315858792946938719177159340119316129593564808679530601765730893150963866689367943174828858924576032890079138516363187948901682231535949412642699537859135526284341384595468401145694977222805578201691772354955917781947223871797571247350429760554964390895759156311522352275955529550018864941800831522559854968418036236206500580668988589783519362199745647629618535242944145600522884520121861075306838806611976327480579758111227922429948721502973568964548820882169349010656427738814033796443745240162286616415298976453132804417681427208637744337581113525660099966408339177458452770209943766244682544825735753726897532197081847910875536104391703787318148874863428587237213159437568302010361969002920148287564945919615887922726238481517028456494547911927172064240770224116114269925213773285126533524564156673941112270345044944187443317634752786018169830521517554404092987795021960595705424778726199735509957321970278518366437780562822611277229782301974062347356134675768747678521139732180716457566289745433133031350732925451866349885675509907104955932660839325479687729446635875363974116835476656197448734539829895734728847368767936980718224155181436453176540343105673923527901182774123441431514682019313091591835514355388242170950813953643099160318211423737519645797980492105540935996836168502643738485486990110453716892673544768038810648068655564163249854015251542342911675910050164451270222388981931386641049135456791037491213289636500005357062375630006641225626883378394854782532277812159600505297421536404512154223753687187074525323004134872912164796293366921650483773471600413870548749734281259245574826668320741111559393862741662232156093199477132200400091226980686180653650453146563667421254496358488392619162104311320665003397002301880534568662796038631059818241122392369779590800284376401610607366949093956722758509358215710882377655065551766589449850017271337981141611744055440937064993203849395926339315589994238143613280291959488337109648207610679661522699137496547227287313776500433897514745323509047707324347907299822367221382603871926449451571708164949868572237298679755317197653382006151283158459591361121880036827062315813886656047281112783531766600286319462722367969179390705355193705657551052431659016923238815777341201292205977027179522841936377191689670331247714530450881746028511282033562052573965865509617454635287777933147885635958345135824447926875148694835346543792882146085841319126696481562923693436866152622420465529014288657096452395216824114892256069723169784291249503619151961445640717775955670323061435898179295549835128038678570377981631900039064267417225225319718674029878825818691852458832613876934822029151203534165249663534912300564105213928986584233381418587008533536169709487653972135587126359507224359176609562529069202455049462660134498146745457832300546318436308176044431332239145449982676524548491023108001578760362825034913105282152101301192078575703228009706586040592852077989867000697570384648324479483361263741088690831236361397732388389591868051227087932377033174737845628562872343663415130932063129149494230309281191024582496486416656047193168194717607724113753654484240712312790218971949950846643597828596422526624280085801602244636573004201421032691528962430192216234492740611161074900776755862731940082932208233405913290210070849733852945988651302431037577357655143341917329715253729112934299801847463170382324633712459617295595170704515627129462524611211846695637933927740813010273444115934055535340478816214821426583585637159937732804028806866957296036464022732319066790665551702323664107626569408529828385601521849167441899104341660244151327401775766386399219856479659321351917661669685664330159392927788928893907591217019655797035592385240075764250619607627632152556005870605015266868134934675227395021138414912941037334692502143899100559299579194354164026989108496111021257969234972650237213186245369779613018218848266893170702197437407264191242414503466318192688343236630029667998588011127238263577697485310158215069234090403060556367774537960543587898434676377897142024147975570281853794032473670769066694913645605486132234766748595263345239015544704813978365309164426853483610067213835510211213307700168557111834277535188289585356630544596973322628533626603677720005533937176871806622515564271283475918051743631775520257128895815208570943442109826986704456765023086935513355163985212026893115133220401559909420441382452624186819673004168761826847808452693140610631674849252241248236481959315648228488571586321861807679450563167908299582742225950078743723248150798590325675508689556971393234868180485351592409091333785804981312174949894867294094169218362736561714557348657799360605798883782401515367499530844922886978273508587287194113145207845567795828214516905312299307284439349239898346969351377942394025789713651034942949829282602857371216084448029289283419476597067933645183831246239205352896111664480261995642933145874148577190689446254501897821853828295409641493252241609048690218454350300530631606154881743430928267284427249695607676685644929447836898044064546318296288851217356145738053430823839470044504450987935263092473710881937852139484021503699787130588135043023281519947486957560495197701571499191641715789063782229233892225289315231315326750514761709069326441438031935111773039957444007220147079644858386001085964996561552213779724509628304439229083877349447039400210192894682105984398707385685323274543054626512404316513446528210254801611292554144468432674355530479876907830947968050647875799063631520814010907623256841609477123051953498580558995952883299004160447817297267765965624374217991425033261495857448175680804267951479605204886125374753264449868589228644116376947552227994421395060195121415040874522436835587375134527594099543383947287141192239093021554451408441674978524913756055085542718479154250988228020286466567263634740506946742090811243520856594287313939625989823383646376450121871572222099837764803181259114986120159592881467159814278857710388506960770046349554348101057476521755970371967993276887795175062947149077485354348853766085099317614924014077922264551919045116563347358394934690317839781772750258934467314097069841280004957588087188340333180148468004149157753529085460966110303287225578650512843615058386271245101376930607764236300611786721541326607614847370838184274293287938768262015717322517207505747254556807178023826192911135714767599838660245747027026052353295019780559086828289161348505171154046609916411133865686652182094480765420146998225329407498342232261498677894518269843844159410041246950128022078458211799360257406638436828491997724941839561805522628054773857500249641720017045451259011541097589730428980228321506192871065639817499223778507129376350843073148508442470435892806700147248332743376582754120189031197256534639493998878760061785563507469183015266137536902110660831514734041779258053713422674642378886418479972129575786039278873304441041911519535583934411424484003684226911233038201030041898855508067694340012610784070259765571787607977053517689528048979371425938631978207393275985599150013174448626152086435630191234616729822730741628628090963939575825767431062711431933185914890779769319296452802274965652617099720835795367148364856326453028414159505319123516614202928737155132642479747645316239489847710154594667338735146284099595454037733882592993405156472363915909179059027942269328339639338326586294913291394181586131161148431411678177217148097378213246474848937826843787984807238994256580248884175424240463709805276091222400049440753454611568896724011746039701664674271402263749495840231555736043813274813047474408461831151832744458257606656416544061744930204945492224118296687154991120849978943191132453761137281298176722307194748636064942115815534395297678823413107913962916962354128065681248047225095843749667341151246139966430529719906010297264045482546195716014827890597407238623450130176520657821764513843242596458596570299721617560100265734843854907304541176881094331413755616887817992977601611025038179541412818339854597492030774937271454824277643972941352809089813426369358249618419243544495772304822968465616174520231144635329204674392432729425309089627501859052410870210428021282388372444200952577799145459062644874992243184665227744383840060253069245250352253349089435859160080808981197594932240204849849574195372769059258009082047368279440295175470899173593100243725382645109232032799310840508088074744039072117851237345182490399059331891459697787864970911608622265653538700770614374311944952151626668481898807982687862906493566241701283626051464837436645789806249850081470332057336050153578662512006339976489751195067679996432417939123654418317393757808855753674555292263634064111134394096895282395087804466569093191328676989862319684758108105357247409980204968781245059931239515601406720474079137735974601137071596456556816558641941275581985607625165272595937188862631598640199420967628089072324580294263200382202723750987832115729922190040499018984484260083476753014874607118861789878207254929830801209795620745043367438877756347551559862854312698794981517154131259477994482181094639481695760208791797664662148863928820963969406350953088969335445298582401985143876899151754290980072730100290554247364101788330816219023371908833428080811921493651059678281667960732969308861066300446849030509189537455019666677967399473815633596203394881551708938352291952515374850161958656487003372573073198339281208405980155053720196006170398623675795324720097868797088047368142463167200557589715148986977682495730811277220102448726846439796975791144982742194268168612846734257039058809234389843821491770005240888893318469769240309214546367245049957113240452140100451774812540498411896465590374032788896098415095859673147236214596508759989789634295242513435358479427336106575675067889583319282649151016735883653955234831548053028168062434100125134346751672962306994909645096680100356381134072611840197024774120841956721364476025259587497979371388404789478477753635971090035804027788815263662308325660881537823381789801587755197888549383949597549630505126453386702754232214613657435112459540037402316094268585765264808411732400720895304449292333637254318257448838271414983319751545814648511094057050119345427608727494832704415504532240828775155511120797280280677814430445784113184823842112940886274688952464369616667754683253709200851149224500479356268947513432343425745818612271822236066917434678119429340467804932830965324014269431507825045385707600208012434046649265704442344110201722641591950745625494572016262329853722164366239255769070770760495835875837184108480974028879684113106034910936662355544930779751320820262137282791874294602924733818359234050167672093552646701143746041475551581499396537341387843219241976250886616712398915232009392114357011316834604867340848734751401073160275035138767166103546298314950149697320830832302102013053645981589792151522200783889837352763950790745367127314832393425936876639214232491299838716293649700254661896331361651068797550197030507511638730355728589816891255497602438471283811871406406076601636936191751469874962745818952588655527967207289425165245687562917409193155726389090777781536998569061701589772641143107029948908446386205895701211819261702675199343768401285422075382219546876805714514118913083463485619742984530226688558621783356327003886913527704665581095835675614515061660920932415956694439378477618071598010887933074271968048068335978106116203495817534163342087976757743774534657548573110454665931181691781871651215365453680766370759617579807598047988529582603934750575293325967704658732847526386721029661738271886091670348664286286885964092732703891202687803578854264258894596448707163639057349183151773629405644457405078493461294829014058522244096430808539345002548622215916982503632619316433660480601016278825494277962991552254878500097664163430652276411615018142520540788716675754402566826973846278792681768330410459536411888374732462788543028659341787877674128559663857137895076181815907721361458764109099581766193446281389213307581000879397624907275973285406749379087104818178973758300773233727808797952341679046463351165397187560142222525505999049495828409582408554821900104631393187653464351647295570427049061317604880462235123982216169771999058711732462742997852738205050770527060841187428130085199874197150147539093942567595288719464609009044688430751700776743060976725032197936027425483102011297026310342090036422967541759524367793662686310647884507168296100572162696134775772799376629366566617194827381257289234008572314398836013378080981043392024070515379150537023551214969856320042215747128211030378645375735855430856565822692530192351583464502789505416205130572371243613531569439940917421879684504192205323222357641002032417507108367188058471804631412155766316187561746065481550628968061363408266842898083334026715812543726177532311103202280817958094707565277575605810295911760253876524944156925745240314577347630363306275603297311049933359706290075942661001986632860805749849901520289419775408292453653988240094964253749754376862555892221693877651481546873816730839091060427054052155306242545319043575705917966108497712448142919782947572763768164105630735649005879769791712064811313319448820677541359338706122256363009846474876368129147406441416532436392916029642107636128298110393447099390920118373394962578919334667699863741239851312786866269273469109051229211486780427002248907407875892345566576626128077907483938801916869399917515718908243312465598406898414825444634487211685007747732626242030757099130459141852342177140189888105696534423853829076863214711219640362617361336754481977319551956781723762661742413042740065987368328585680062381841999522851061851464517904158817431843993536769040695253046711917913695043667263465877286288131793510366706440283151892998948471584585309729591175022524436245227843385705362591658925096176050000633693807109079283660883915238220449891258249883499764416089184717121832441846797979824351972549030614230684461716554890905411781413415920763889382880535000751313716339339059322061915407963644748977069930387505864519283998325529780419776467162438879069178025192717809342952652688509887314032514908917751095210467747557115448347993077133683204771035221749708764331755024774359956420664207414333625291717367002338747358492521975671502153840840348599410145037337377092280281002424712500149272456374719265346799443341986830976428574455018830568278037606043169457304590296788472561349037490625096963788900807826323479565795228593505609260380414422117535015417498467459960530904914134470901770060285722436735712155782571941018356374600916280663538654313246354449846763699322521222458941684375653105679457144718226626142235973190041920262886912874290299548534596284066335953690767988713362581167145834322321055084426575928272537905657182508757505020589129776883856481572943369955951165853020955420682096154773010445182731494761630372533152640004623401034275311182689798648900617515022606287385071061655578008248997183327079182641666396405956248889437398657960882436575451325863516174271842360198693978750664531085679988697593785627198054458885278493683889198019268419259493897204968300058120894170218886623904653085098880146041449117796097921738816019814941653438291647458881256172172579627380585675715736615657297412812014879534340513658553689285457155333631255577327135893909220349585331476172227698023185551229162569951066744949524853739563116929798261127596247566019126616823620173756507522507290982345906761093513085163278920417958373303787318454761299759870182632490453439103697597560919397964629531757814493653585364141095588452440004445013826008885460965227354892271584495757069312550495781929038062267964571994114985826278669951113680840861511443115954319072154553565340024889683419146133127835176047619733758518973759556148670319043867791767983865485098442435359034961544800607446930063185632638082196623854187091919876433108718950075987066048874006102388911064402142605297642679261685020081261048757161294850800986295875216447060432948537070710612612005513605379783287199635870918162582610221535279744348438926851146242328334892993729529621357327156267777157571483022779581592194569661283778162993522760576097472475280265291782202004376486486051380262629585242994258674518923792949570425044156334111058426504959626912339826303750324054624113382386286778334212134623448369523136763052366832452282347231379250053221126165808926542337419363085307883172219147250226783518950707930213911377227683859967105662903082784524967347390117163569455254542248294500443561280774190513318532381769810276158983511871768960904695963195670292363445397068762927778602491116239294043527707758170894523425615207518345270380827888502358377089501366338345096528839352679100846352792268616790771858663484329874538384522247959122432914258763450780584742121240726073187688573737482817858297100184515532917733918014107084750225372903557639635045835311922994364430381606320818144104953757884477635311976142613985241175990457850998204858140582354994555445283041066419429950407409258608444823015480182911457134320236772442786226189812653232848262929587777550219324663678637230651838490760906706068970421978991863614359074859256842203163158269078050592290638384888142371217985381470208496047220534172103315996679047022890435909590319815635067641780569732145370489426194627926942887491301569180302948402240489382343606273765080653244226466929675474534836616931383607520887368900810101894108991841056561505669658443074885393895302908338108807859869611406087682406329028765218088847025457907762702064612894575385487723312898376581558533207072293273684549818283403868947646292156192393967165928857688495352571157556440552166028729543666496381632969723136159774761862467283379684063176479373370235847372944889144010732402409017685382015346691951766933407580557806645180572131650929281305440333383857689438748895028196706511572668405782090522091430924584046831584796007327936369201992799197467296921276535217426321810095470164783167980571705144452915299135394157178068258762382946672216236766187867420393288221873214801821436674115120276570431193028329495269400665446871697761972083462801193323890729523564877225334937028514718505761202977214221829938012818456098083387627534323394326561120865014382213495127128868508512034581083585346650299807942265733468421719816297808964646528061316631508730401656487801295912313925059255429081917460216930353841469100292200606214138899781000816715216350616000057643231353405381548691724978611995173511465135986471178446400107114499060319865384504176365549303087448869368333659163131728432777718566789672945906903623211367351705032110282174290510218245068010330124009546473618293294190451714333675695429829175104208107975944267012382406848854686511647618871295010259929324061383887998027101476543868102381596354331668143383428759479058607597356112212979424845694773272117266972239137152304110965144360174012233748208968020497137436915376765104294631722335658846680997350877346149676946605693246062252675324090010017583611167310328572141645261828020699487345332457526957105538211952729053835288321681608134862834276630220501997396446159142461176626242149362506075204636997199957658925550317938770081295875449410396708557020595511923940143513329784789391512956405511429458411475387878251720583592963721602355700940549757894022442529792880043566383858614714404791774555574540295204132958440296980521239236113975480311059060748262607314215923084642059219838192729879214019112134594075064901392217387762361343540763747235581311554982856206830394243800272193377926118213086762325358086423316352860177811254014048656199514945657941260463709614399286961602818933435884959613054319217056020672430731004381253227840776944419566475061601480200335880462735407669779880449803910785858222875830461010975454720022216659955823014542013945820709130279590493108189427118236805636111261729217696203963667189123505539840081301366582617811872037193185259371424544810706386090264533068017170559768373339444513144317523870653279908364703622678079045100475601211078284950092213742002666826280009771870981551056400255551761080560351913802956459698308305410939349987722891768006950451764723602489051627849175324329502785432980941635146779480797033569409286977295142300086543606534243580337465409327799472291881188997406728989336901634925362617578648930929971311450834430438260761556679709638411255249942733332675746505679869183799681655598972018040251753269124195797936365206261968316594395085192898243988938320655525659399963910553231136079429829912484546514694980984426535616430212353918281970364534806565727539905880396270019993185388959828123267974608660551685255121301657264082006783801510486418152651446123208909083525748848283538102576900499291005488000622614872213829906614782022146814785477582810315125728870488489490825789148097725978545232893297782847703613710138476500503610691950794471494809088179440258612294695916509415258147257641832096069467613791682835803003101983748726978436563597062680817609152730913424313289126910126751851683254689214468107943464810565146021911396484044960558180662928113449175585899021464709255922948043946868145013145807292706121581673608378023701294528541007084926944594361897284731264401587473000346655787114441892754917010194016197351757472294060973809934086664553849728116236441388359638499085295270670959267966377831251168975065983474819862497803243121841774631406625019843779285629927664507865223021915677361754227503576129905064264508470584579769053479558486642346900522124243783604797678784146233359323015190356054707258914979412473027749258298762635126134316810503744861809552278266245253942215811467960772252635895624317300731014536679201978962839328767913533519425161821974096850111720805375915750787854174723788835584985445062622564356235261182427499126868880604256163588561784270917460818089021807688765705336105811904866166649264285859462504842611299258500059012197573765439758689003189197728378220026632486826872189683591557500517940676475930249517489416158003433027376695041136150133577041983911616046437122101156451308238836648690715474026091616967011971749511047593159961707934546154970558964748526643279275816243561491515188688007604597173724962563340387263995669704446742412463826845095807566078654537730518068931691296038713494846232731062478482309065698511133581187277044793828370714268326948738968885534242746005487203648521879529699827193086464285322866992786069012588266818390959414440824379192642590408575415075398258996448613685560119600282710831501003275029234312444401817986309708781005929345203733827889716954364313789900429543029390063581319241193679199484412909702721980125306934304953665017569825233025077008618959531011860783935557140847543703674872785100302765498601955498132969184382375212182832247550556055235861718018991544720021527583983442135430049098600822166917701064104647809550691149809021027053630474975934892411818831890660423328282895924744012486570655277391973894776515612136726049513241608199028559428243775935189632951163983998612580757543297434250743651828551859361595040359033682353673566226418528203170992989485486640112271159801499467149493838514811733934035506903036644579699940750829029496730630498557123612630079459194341505154957915098067249705799919624680603155534689537451738630617117825919866024385054068671433606175816304115760626811478170320260794127760409902201195158492347657309722640270103930641358835741181137228714508163801761146209337480557120572790905344534101598258082123585773018961361849968454698820537411901668648074157529797718309412727186518549103924392957773965726711295441813700457636468964388158991666305625022448468488143051325713138340808668645363018523468728887702752883610291160415399385431448058607985394467689552395966037774244320153607622996778455346179576480750525174215351167480682005017248936142423529731923728865332697051908340058254010910468639346724984588257024301965077071439434882949383755520906137812922090165026009348281925277117685841361755418571487201675965576190005344204718060890680439893956900300720716698777711052702190942091461430160629821697672749871046581177017771450041446076485357891346174220321638694385376929175551463521556919536634348411844590001993851639910930344917725838908019169009766171844564337017416810539872075419095241949513749288718014206342783381182667222425398927137204278260384809879451228700643182294570692735731943242984254138402323239498764766594931888228670317541041285134115800021263616101027314715241243745875698859517611215780940885499918261643175170542518077070933627050419956018945414819229476621862516495536844759585192760859644662517878387111923853902506718256582352265554461465410183031501260649527895732715100701749489934286492142197575272076857098050285356035160994911924890948559727130518187583848107921266952673621621627008518246086481785693771664313323007957886950530046348647413010473421827800766307845663595704589720676462981672255334883111897864201510336801327221478040818189533351635179250514247789278681548629250993171316581849286649627570129940739643543672038707652874908281563652134659083763535085091634616616482215334989137841895704215486205016041597075243897764198975552023306360094174157829596337126952841479404889584105947026417289498075530325750017575387662808963512466734462544459779477232379654065831575427533691135162043382179108879930023663216472649739324120189874242702298189475825539903615645281368276108252833054739086094403014847691587023913678089116651618415761348872558871837504385841437188880241715371891460591145782170016497039881312939774442834127002260722211409276340579138325105180310274179460231910017109506061677404415222778396877162969983731862587852620275437313537991407834295315226222079175815661767814995905862597737659321082755346527689086628448603715125113037860083031136863630156535996012546028814865187919742339763034950626789447292333435255856287715951933085030186630204163054059780790725047980302155193853928902577315525011310601410192186823623518626571517457756989932639556547406306560782603634632646199080963225292264905346647039053255510388162760951880559192978685947700268901379376958743839821563869169611704971652519295539165933948392466987878046567300388014916139973108491926980820716423596957099078482909099203108732253166515784715223964020747783126345490815666228538341891540387615750682527702067416225712599724594101733570490923890974292122945255769530284815904074769566465614759942578233975571420878752770148123328811492931575136392135797444664219599159372624916252618675417721119096663581321611934138485244281781977590912123209549593192445949399760385205249214915568507574813227609156213627259703299955471242106262358977558259784541701973587382819162616883154714562018539540982961215156666816226251569011888542138471675425831882612910716459778691808105412274875506135265864379843579175495456190936564260555136630109397802954259722869440123970817501055696596360487966380789414758117369058252222783349163363938901669273285719901981888993206570709412867252700972962696290284156031615282513316247660581123371956541307858758770469278831219065989349191403208943960115749339203140545046591813862747251125573509669926356670522404533888717389808332404888937985726032435379164825324712705040866008495329332537622446960172810818626651234490752726595479432813785682878280144095461261761080239377972448696419946909412837673869837246058046608437773715738999179527527287424261344247629206096354507327682272380813227240340520145278673516123165881533696648344259717883316865415042483604872317115357370623940440012930798989929348369386764788374199162452771145228385994821704407581858504591376142746043002279685475127095287582559409379296469800570610400863159942352996934568957667095723207603749539041222215811025589433955307802283608992080870189606060342394024847381818918837821007403698158482117060131180700826366497469044255723059006473789911050880619581146511757800504146014723357155393739308875934936864997156422383888671655700540258176631127604062718357688992167459186723215081220733520444078826032138237092201905228896809322015465790235900165372484679859353474457746630375573571848760087231474949169147166612914604960247737698458113873724463856330953938926060912129616913758770632449433998745987723779299851883627184948396775995125505913589059039156266035420070342264950576692247041293244962299127811458226377779257871502387951504167435831319451316235110093359263420711265643391118287306274957599112372707947022744332188850463017431328521633427228000043129176316997175845417322560533660819052434034519400080622482563003849347617911570182553041990884439946999103825678098892911663132612708748017569309332910685108607880446621565969722576670261425597691275726755608800039610532250157545981177265581350059284660801498769763022477024330277413194841691730947621347318877966287387110881694255126752983594730025087355407077126233875737815101419049676101941855584513586275086917365118434477315498076379076840089709807621107430264308842427184652441758853778992767860376936944738978325432046859195734336706469972503879653722652425189141819657980839063465997995089934655600849213111477393227138822829147141233985374970637930624741033689697696966925006247803021693872166646260965600547915064628941421368669903695146207076375932055952927977555552201203999237196873232449887727304067681895293918290952985025973504387307866687800794905380238965119189376329568574534477666265634348861791068803368505161033836186852398819198305787349988779221873115786545379653043194857390656919945455404424123865900504985112690033672558934242299994751596017538984908179769352651286788517072432336025184605261043077518814950213281359885285211791095211268141389954829498916919831889029557680283504459094775985180930393125675584926082072218857225725199164426539923677573601770081568274295018765169167777167395717322853829066093192046443187094721780557963249737649945409192950705940839212367656317540115942801610245899990303855134257217655079433765248871410593250914662195498993138464504833919057205730610566388723082459951390846684113716415506520641987588142255687887274397425890323133572180361987805853915082098072217688183320171862581773341012733427630452953304961829369794663311490103447924161754747516102433924904232378732570685808612630624518229144430525660468736014950888210685826481416180500387385360117888302302644050524666514214969770163658972993493897832564780556174639337454124888376404441254441402381016315931021043164293459045088302753473983251093233585761217179143532031984710090315997482598822458408458598029041306685526221994348621009825767073867704071572572194790860805939516565310343509679178527218427420730926914838984251539946366258548772278437122286972533892109410971471459860588632606495758295594833689855792399156654912245381172294372234375825886570950147137510158072192285242743930951811233641651245422803992938794588423471832742163223397507276010254278355883253993678382299153339381417419729019148482234247408025181541632867112719734006204719893052692972012178670941522987011987287057375824689805470722417049009391534085047513396948366661034482993412071431894779894236207107840780873390411240978326419368138263188590833491036737478542180396050086429500153934189793714025251612429460924689531482022130004754969730874429729236817651567508568862454219927221295708190493267736188475146663020693620862950544842203708874190045453090631882718744532227627410251805574530920497056250875443215951455527770678671609443811555253181460877528112660945802039877535682120368412333741986803404333446576921604247899829169369264548398514978522629709979455269669653770532256884022546892846138445644506594887364821557756142458949017829504488715308414668243210506894689650060489132609307339115433534139308807922562712768883221452742635597431610857314053773972240290750439246497806903005159285431773381660174717356631598082978958116004268800456241799751297239161355645206626113285677201729746458513240498387568854839356206038319896802870752986963652090296270064100650325864808198140186741664837465705375071542076465251587139431230269751448319858407199806093151279204876990777446258394544873116783150549573257538095541923726715410923584607535831961557251478979800679062872969155199466798838361026970972455422793517146588211392591184439619610927157244668545148662266418777766687789336941446358446162215448508890684621346983501142142465779557246533121185636026600250247721758928183484184873406490565329516047458021476432607328197543389284780520827622919471887361756321410266019596238969178192047706442681342304006613964292062524641496232230877826256008715985156252169319904917546552171069812450153513127031970093304072477461372340376379729544814201167716266488910311359354068343990599977677888322519823903706333314409127168283599400197087713753521056346790601740713028230843152559244269678808965428548677739556959196649209666634626252403790230735306211964441710562740525211796409066297763520760607325349766300259314899121418477596066689562599077780525327359022040126326080468982597973395886760651320170502371929055602417281842331563266054897250824379194272690330675131744523167389099492803553383647822841800685827590348476885031232680765833340574863939649711449196838545577921395433716161194809613234423025473579898661586286689687169355025522316802864145758231313771832769220004645438709443548877878404082931809267264233412722279894410952844090259232223698477151942128882719436870594417574042645177837239738787502170781744658410971321922808169560039305623463974422157017200368128704423836752050614758184651027345427048136290969660783716705123869434622970538175531724005243514967742296507438800410891003052524277431157495935637651302587841820506452509956970779371187882689070657188629336126660524188464533136687320790425120845972499015406280595037023046222706994076108374308431908815486114923105238990760856491952187128371699992578540245202217252719833743278540886495618067599958475525767911069797693869435328557303677724512152827355303165049455879177618168472102572324244680684616766402195885501336983176214981860337892604531745746479838316075001215287649146657235380220176339105114654232441909114186865359282331748918561367895126164977394124395796023198417178012727557620219041288797835261325706130172225198543268983128427668779704795858293405159940722812988207835386575376206915080857157214592172855590742372086881878072987103559018655990929566219013111525569043569443280099455116355723584153184977025919557435725158458827476575180352372468549365781148872822308308175101103948987760133026793945082298755505489800641505052960957389306633450865110689964272783670045921200441438149644501222562821791295461136327396358989771933728306329207293974823916429938980570807489073145744322990352361881812555553652713719696351699381237543651882851856453183284496171188925474211903197276762844557633776049463614324262231658495575604237252991180958557005048582654110584628644134646226806485755567076986166126747603323949997453682329171070472930332898094482939708505333802848497865680440691653414783282634542623059248523698636115732838581333760681502834149858772758702584842518914563750139332007843696971853067267198367592785836059884570202336079101596133562502927174519263657642298553128024051440022508798604517458411199624597252722396027472443703203955414946752596841189335924717190447567278151607512093033714448998790571683822563342179651727516225142802337143502861697863771901409197144609815456653312251981503259947390185942809906254700031946099199057473675341954801946168375605281925578863391791520969710197852626133139069704250412327476245334487184723838094059692370745073226953852233354661690592220481170497153651012382782345530618382891413544692889190536041542368943499761476847872816546506450089607766244315092763808135563560899119480736864347501900367997578695063717621732046980021049037593457911634940291916083485343574106159020949624153457872489473856924982738277519795209343393882693191186279849863649777257338167130358426198227450188937297046278172692948341981969618491462967767159781514074066967821839800108144722667194726123907527859757306045350358440120958948968744976351824474247606104534818419231861260520510572760445322112196939806130000121824264446088391353625159584939589707996428358446507276151532568212760757350448804645529254057512918432430685711644699568926454147304236478785018022157624242355379346529767731505793795213558597858646186728120849722236623114076930079027221507985061586493923922844055061332804903041130038232997437406406909612450118895823428249662025125526569630505988942341527331416059230412085789256416694436981016024737515852593124262371771467480029462888253057329403117887913769306626380822065598477953525911645098380069058012614103160298833505800804439252961945791476489405936205806981250844084816677590417737383319616878358043901868040005392054524822433968344791306107619230078141053332973683295488196886907966102064863203476589491698910032921905121795044856086480445580348508915607094690372974597568827510947402160278878749372249082147440711323707233081748494039102370220445327337707915291168252235686927665475545937346631235639603186534785052797931241953252504915145073559838979007679303004204793586971276057876536476249969095644309547293502560603904692505325851804750367669139355638434989295084454125692372526353861827230545146445503129716103402685185446274892164598068698487836245193573981727658587080062003418135180047632034379422820520650438766183228425013043942518797192422496221132400116751423475575926043141826953527033017972730123082371463082765228338370922865707106042181535243120237596228770518778464301113540887781169749857787705735862137899127252253860892490436715901214878708445023340699965138456014343772102535090151609069110522150940406644613069904512203178962268548070999470218177318805978978817314991995157395689932848964062466546136454422322608216228987688898391304496171146370505026346988806607477238812143322775718162488920114949081987833631206038962327381647054367547196067734691579914928335890550401708875444733407887484362085707030148308174442468183706607039362875531107760946157670730450540031078607102314384869164692844642710124017350527831647267765821892578602873260829321805362384834017818805344320473249276899371453258394834812803223088074786997403357492340400853622206552464697819794898096214839484859828172800245043788737446689262551777683993272279302596864528053732734758303506211580595835238425207022492465016489991769077235732800809269806785110261917752478175256852378799076726733994772345880296902104351551949047973857576174988776928064496815726189126727592270231732859950115253563287556124210437325188808985415063881812718088013894587293772472956097932205591732608050394061999629297206451752003540429683355739899086693561084883360844670061847500671638775557819154920676087681247797758275877345023990101920599306517447214930208076243352859062306203366386393302088193155090639888878353130110234767412403673758819491871491511321950416871432597486553328473541412492064224837276364249855145253114459694794760096635672199229098086419443924797193692527552904028154205336118630939615008906924431653611440158880716611562396534077493152379909558486533978841839073310978975675706316963943724505164560648968299504814049978858600260678243549639968792388091367843395014298922587942392335754776296615240897074279306429299865503111515061737953361161070461749468006599212955653175573616996870161449776959180541664941508875065666666691321216117317597388031579446800393999710018111367546942749100665515882041689349732209966237080137033961860526588052515639637324386131505465046737239373743004722388383557089121343489168672914802172208829253167236279853747437440894429719576427674709545121459978576277439996215238344150222951915379576656218388065354769880323470925669819171417517964401184769094741515450405308163724143498250598534852245632498288502469320759612829100772753085752703973136231258202760710255919823642951410018264348052833548260073286365800837776711196751647762693165162427947151591062176607577024937382180801052839403955163816302485387683678462755212526298880500785307489476523431828462608125560776989017819238226048854054258510928802885668111065705286142790396767306410163841067750292177552566937355728681153445926372647367829531778176600531747222919724686384107728908537152650050441027983101443014139258935205617693510483473498373329191287069370762465165061168024617693063278972393300854136682062644399759950760122228726572292366081617298620347101623296927635862247904214246707420120961630450010435731062287674203848080820170271897415875388925054674177236556911629582477089613864465643843450066788902445516212201958651465731370079867365960450190691719749621420209310369426169031680748758866873290235317548696885458229351731542960729459326605246053959256281556483840544784528248953658658337916153583744379345602016052985313773769429708893125362329900483019060613115022496486903042272214559043517817519668180262435710336333147530164100551854186678435548172991946235439590374676695766769203181665830864173479966397691270793375640876035338868256073728464356857419932309042393635603909122993469229965108515554093602910787806605737574522387201271909081665414299901516186242452833440628613845209537206407848418670393211149502351258971337304677442655590601754986554922597644198554096143639391200679219496199550781403660498641828139925984865404341777808855314748257632272443562180397362042067743009616240442973675496650871292353708189934308519141747024211335864327616033748730565610326803531445866602913734076259041802622677968529125111175925149581682448137197061477825619558654552431942892700640532794491926688776883504765724598743786556146025845852892203376481884880420310508584721524157887975519853857910068143403024409308948058834207736852000302597242732209671488314388750520801754579062824883898602401499604660294444793914244837859855467973891672270737164445543742149328622579390476542686173164473834239546735763961407602095408039378876929066516410952900537815891264047465595651184295774768396198763037721493432580805182019823953283939652916144296982796854252810800186926890543849144464667911241988229164594615486198750609379677492912048269614006068783940994683030889263285928533053074247232315636733527804266296038316772760442415341355411590370797608722317157117931274918118052270406672640086233014914782635709762904963632489832882304294617594268500064006392831737540016184615857418599572403601830372360226693588165305626522594754924808799983403724883850727930283602874499521315159802650878708636844110329087576010542492661893545678843588262364115608146674529743370722961407444496979885350771831272608489676242825632728134919959866821100110015149804701195314887204444981643626471600784543883743291837361011564743728749653677984917729751094770295268607921662701892924293851634297123391624283371261759247857991448370584953169121687473237570559156174891433026647402496867320511678046253378366011606146020412470212836647825333744580785566103093413700745136322018414377913293776788774678638802187799031216366829363328472942661962202917859420405200306897790192004417308781751108409921469306080195096483260542476318223945700527647293340773321072290739345317082762586409936624307179755302614537337037092404903021053978081106500897145725332280563303916382203982990886354192405244384990120526158892484787234231052175453797098744571341695181585071949852659696765264623888533397577587627829094310964647019902284890634472794310907093946577828569407362910361381903469728857203431401349830274047820186217958010597661359618476152365984407634173212142968486956141470383489931797570936019660510063900078494023462306088224608192571568279651971291236813378596187479141940697059114343194621553657593340069415761361307408041622181304235942777151582112547248188212384241930946639604092242102886244195362610627181739705261768979938452820342509669739610502301805238159603740427887029473095229354002962713317446268492299455234618980858689253195468508043747747867510474721117587874031757389675136286107892539416962881728118626854911777193590517606903915659759232210005869500176065669511668664764196702830392727514902881863887902056782105520809644444566821404569323824269301208622003061019267952636179353899124568663122658341445207021555101333471545495516228746761548006605956664901650327512649642785689428575769635813978657868079837627157714158429445940201364079177315556521601326840550995764134194246267694500861487824355643732544194256609818793857187184504702223281849211550041959270475892473835556704523784058499574414197235800958435123173545251449580571087465038918759179074754571262720590770835314278689786763724693861347950490666148502937108569910481624516779700770493359812919162192803185422421826716842849323508338692439848019395265499455173066841670663462570899591991440418785147557999807621743543302991039672116233594524048630401075396263020800327133768589923674592690899064811985635857384295854514614085377886965974212591608971674241431217872239758775124498008327723160354730918649626175227368796450047695740348885504068527851986648285757218196459201171769358737809442217021391881347764778056149658858839073402507988642654002317293388097050057838218252392738046895362640850889011688428768378657258242785747346295998409264614374483448130785165620789852835278455931672079327438859801686532899196637794688632888266943596596922066988388010162665959838843843146625860927420311471534907576655339878147455474842149881783279126098781644557592531992992285065236721377362834624064122601310703543108842873767498744345437380182407584015972968976665125831312140935462877494195667412090274812430292753559001592385947373232047442058141188329816350956240127191957413824267921624401183257407893092800942930928840016338577709241773317802619874409419724828066965604906602898889370118881821638072988679811781102167287540472541111665461182269896768936927037337302915897103286112172867676669212414912053817383038746712728396721451744270518349622055563802687200611392865481196335003820637179775328858068559892556892691595831358994770621184399573538351085204664820969304486725707638857346227247641270800110959024856261912635908322071821285476081911485545397033541402743206331728865984254318896075084792059212506801774733370497343492132782054646914211303837071527660224438878085225935786831441388503323056859955312868938984390564246740896435056089057179480311859740099764950456695671864279994716828135218294289797915029245039420434063049212936084672325240737065647078082270636565173288406673938740734044342100496874052074479554016277418738466477860307877426860411128522801374710207059979136626779046888423165603203127409891357698453192489752041538430773691360327795287367333367987686929345726484948072645671143640196912749641550592374786327329924619526506726658600463791138022590296000831929476561955749301831960228639133883805675747015951659680993827926708274043285131436209227617596277839681478993154849392790547394629308346476692438994962610855132360894513016940369157677414749513473123812845774636657062250973819763066995150381475992047335134273775595228591359458313610084339430970132367702025597361086767593129877143221727007437504120742417299574137940093246069384833040306034965017301340285431003576097078208174664663929375812321615353079501145460509984148892849200247779329576332585853188964868955863148066782266897207412225458776002014502282814465539158408329795226001168526858382418625968434274812421429785383296141300629005316467689367107815660595711268220507798121017311420044071934105255357906232490131732345128812555873058679724934792555552958746075242931787172212869072652341260325422947236253721790069553557403719735671844749827928043720619335657728821509485411542854019954149560118326995875364770078900908849083775469748584238734986644912534631795822229052088444823170649143195068653105538765813522250572842383692935767665930921434749955993163109087013027478905344519605496940678920342305539803013069858427622682317514171050881953215263882763607156662909158606639832676965129738629329763171978020907211076393857316859377387549888061693556289949979379047531615898252564730694626977334388599358791824043388049830296661444951593714918529377919728851917816126893981360739118526097990387221739820531984818716577454907786019106096610900190292216483957624906473384836941087525632549257769485177486989148621603984527397068596162812626511778418639714274363608552215528655505367343890335501995263121321204587911570827565913290939717486982800293795059337008237455577815494583045818021676356591322497122217822793130016937827565375677257940553608031858488122809712042913466955703055804739054962558238445816372434374654675804288538983268711752093277892236374870374790535650762973820574815555696039194189556310282733536377476899582917547860910139863498912509225597849564272957103700955246500462531107455741246119925781445854466972899048568988962115890484279211554613490573384560453736887815575671778258812672052214017390974155717125675135234158359674561662941585636027521135764886953395404199864310398839458880413858392746201317208805637611731131264983257850848949901366234163699862196792625855748447516314930513827746184948210242629762730761031527111988871709908734092711400261267296641687223096205811898204633451682996507494789621593927529914425810344128415318791833460490316230037182742836763940037090093795602692842043312798770688020749823658947100627850496159361567225007845168998148966234614821885274399795667766078272767518048070174564106527718575533612255760907768655576200391277220773294301168906946031851654444517789618014242115512436517120551839609845944631187904082532424237513028605837842062063211905108668189162357288185206784028374763308570016799545222718381776423052906557183694862335388059423759919729484106021905129934524836912703033429225423762022309436600519518970780080048067752709661355039139556576632577745638255235184301085499546787482378391178672170228420565505143920364563231593213687474521403494501475311235521691831587226029579825447671079567810268321594378697056116513892608013860480719465278276719424920669845189502732624012187092599349393236844433031760079150399891348462573349208086385209520483183392996810527951283759505199991630457601569971238318100002268992155300827495515526971452599055944461760014458751463754932455520479486044763934256463175425254749033916000345345169083212749219729884511170206771604866714075976795327760601053889541417262264515594335790965136186265579259353195767331840290353830681724944161004926314144409208199119723895998375833249433287934387728812269285191455036853098253904495166449012283116098542734238869101666784926437668922062440999790475053706048876171128066588100138095507937081276084433779176766897709260238121632312715430559876003870086233930743795398144012972193828463106940560840627564107448021082897529371415927957571731145535507998293393315945205653060239384774523648874827289984881612141576610815983314054964288806845520282537157927960294120743505931605407910042601792378083316304027774606082435627547097932761221513324520605513329696623834213201764644105495519954483008885444657850174974493454162387648905665467989367828718669871099349293954256186319155455834534826786004634101594327647850913251611862343720638856468034314681476939877819051088832958403872973978132163003624645170834701474016790380176279109782767183865103518003267941145973408260727073980011349685065327866932793196233532322744701769166141160754328590740365900320847906847066939828804554782640591792086071604541819498202176113063935008739173491132767869354759378524501448562123159184272081313481524777320399449975285736724905529251909260326671949060833591990335489421278005964371160774231989788525658584128558414568954091747376987697795012359826603879752809147104267880800078026172591423534058283091114603691771193007580983945990809477492001132530945888164980196247147133221480741820670621497890064758360276551531177140875321778641182946357002932011910839804958907796528377448166985085408950761774324554225340314546530546223365131567135923161716223505191616188751593271618012837858497738544660881758814104310908114089429447710204983487554883051142921239551376517437158474572068821404581733161906912002105597622060470902685505527466012808134165783714661660007555336987418739180975883711628819573852196361015218028161573816262996962779854217795838866070275702011343821757302110522041500921673697087945219362820875984624206193782163808356237699903949504990965718012355900717590132700935015462802184625011220148608579790398736628251229381815534563464684170635970433483761913398893368285905933014635131240413731367934429458957872559168849814231097189448368964771666610915261300426550422740409387654628166822263582825891963697107559948278940480429615007632061820085828328426187676015981484678934530526544947644445498404374104819516298233733973127852281452823398233692089767841262488491891857722241877059198107978721158068415651704698823967565351778499743062434176603088905935636392858080315679711583587155455032800628138430347400324657006685854520432269442249522312172726680203717636864479947795273323954277116241639494436727651498342784352554284294648459837883588701510128070099147851924579281506260185612329489971898912179024652522605228201977821215590228335613939472690545008922678170746388450009704586052623573208661288436235986447555355572069117062430674389196574519406939153683170091883956941895344576942842520455126051817404071005162163268817236089635083147655933757506180518838257181173084725939407038885633791239746683436750140888910568507886300573732175235006696486795919900803610632799018022687977523411338271608510452205117634833937182780194911830019708445394952548176545313212906332589113001132743568684051745990900964568030730912557912810853770900624816413649582595315209046153031602382151522278153210146774782512272276827369771631924585112251449902996152522162283358664021485750547646385961361023403217729176358417350257655367575470385440555165492736377091581972162533923766293234987467960580835955133102336331905617880648175582558353923888977481984989505604612519357128218010750920382050402625407801240428425920327802664288891047948211572113390465153248578951385114843895834651522638664330056916183091294472516223751036860383724324388892081842968087756577269593664881525440217830516968569551855953012406838510388365171691497872783641396952592923847025267462841903478482510237612608452692730144861716910022566396149498619380130158833665768731102927429035213584946014356723574979620009426636435879989959003873867227870245113866345171040378339339158974895315232725808981683430529047945767652856561588653081076002161736730046020464165174138370001787350605481940995110034742669650460522803571860615278979994056431802312137530436350491283514473590318442036777828387993388350369566941827978256139436046759104238319869893797310138969469947708436431848354382352847836526920799418544989294898059504042358141250816719866514628814357793924327945042757025194886315695982685391303643628244433111304783011973540813814728255225136993489829296123846428839971408373067474561640149351002971197432339905807761897802031717800500047760855799584755919228025093793265112647823119626053226297087764314031441442148181773284884432723116892822449565981870609085750049010530698879217501167554208833579748021893820165956718572434141470095917674283996338861150919268544085189057274461411129700059821425087707027546592263368660554980832751895790970345598839554358469146672908480782376060529908052268880845851581088820856413506677736646570534120102470615442621913265612976738427405194609394068129496197510134907411418823714845499947866558743261856102149893359517803218088074704400057709945103297815950375961022947864657231870892082129379785206239862167509681475467375319396666820848263071239427383992303560846568733914314326627081459381473655739671886792103116477376278497706040168327370084262546069394644965772355792371787717264435335325354714154411522247755114533664564303126128818280272475710019983258218934304311443923572856151830690600981421081789943389973093104038098449161488690764358333453322556402121101518412223183504335342775925890618528155228697878877063259319921388503116416858813843631589682784557637049447501805552228025614067556563874790205563419263817798247281884591374165796346410791492539408610332770524991919030071268860408442336293212924820266175285193350866602515573076118795607624706189551078849249468283173821553969429108118000159318367475845456867908291683824923293760511940799073703090059904500694861370190705777686967086507764745614230780495331657145326736215469786183132965826894030981067641973162659688566270725188729488063801060470278871618285757314821528669933620382788752364404050100314345296960076479173144726248553501855076170399838975027265856160312510637324246145934558532615665716600431090370516307306513324993413153750668655615360768921022568454356266144713986878661136426023637520474429773661535905715852797659352952631887342670087700896611135154145635274495128883860366149040974924202653135392595035430737294192180047390568949435346324705940512693729318898266930837980485516817360345110728587889899749331245071293188169599159818643825256652279096014288948922771294961357890436246836125668246823770870408477669262909458841671461989191313343068805148308892012588990997313089900599984213026881067641781421106083077575375372663883347733280151725318562926765842390528152324705778665654509403845732294521584916596223326339528794957073375776663435203739857196678635595678678436019215010563197233440907696794158803780106547029934120578849457478002177391880499881174181043991196137115438475762068407508910113306053514955400589283288927304761281607036290021809081642130928779767309940334250718274051473917800062566473338725687042006533635552132739005905628512509709953971322545258319507574338139185976127710280227307690852771800748296834942815693381235176928860739500892635303310116744175023076398952231731944297627486574847309835213122771049735473954046801630011215572012917296352616882203543539834278901479463121643318753472291154243739874178628377178696740761188734848918845971715663781328036636955615277060151586739553134369660391048263209272760572988253675968754040605140415641613867967147572468801421864022723255975517897097481244564429318193227178357598917540098268673734344951185996305632205685880485676493449273471684967126340228164446307412089605122297539982222929425225730826700873867358848808861605285716566864850978664986936352347877267830692959665358342871921941310304061620203880830508960705561652532955286558850715219442842964983562522799798282590724502145203139179287471964983002788636263106124210026865758864148517062881808224229597334274826638343534195697287742504441843728088292941377132073398839145726023325650780576466203941823337711816352118491506609877162012045396454152019339890449745130276238487268627963378798536134790788199168468959739616114619820016143800292898556701930436190231768108222791720245148331854950392214982249531807733583829558899568248747043217786592754778892687385691999676466579381806376685505228281931589360908829313050299670109150400725342635963868324839547177113721759088184033780128125038007459823143570445192891313585383490755327220497984833524232196945008802845149878282390038316519683238589303812206011402504948552246140269906284995593797078693314501059450665757074383005068162081920373489165047499147086750832613171026637739323679975360074069377550427628268863794220860354287814317275806072664447175674235865282010328720760844884186469839079830722186690380675543860277162125368518682374225186773066513015322483410949910935588324535547312877927290977376945000370057543832929795128641889149753354302868140122001590954895150589501717685723926094040069899739499643281497929170435806455415098433235992246595197483950175177819785446065656413276735546885110892850640506735545704749265781885351532725310521560537584949198442964840775491804803183355381019609626921559254027473669151226917740407861133242372479188002964437355593498650158904661802102141548948804738469708724866832198750908084087834687098425757318382197665048139304269090912849657306913482019094063137194886921726507343127902036942227701584999878636127163608343312082668277424968713616144526238981365827423155068224763433276713396646215314373961167100252840153085820457415659148589607338187605952481606620288399566772005068790900879395194407189863573333363340548525729980342320962199501910015322879416492546718846036455473328537655526258854337831545374330232801260026050627222656052953582132450896186567970905465978171255999984204943189858396198183445168035241303036564302180517341293968135089843065953943990739527117820859409012965489919919787386427903023374876868244380848234490092455076927867583393853758911836460567224239652079292939039465275637037349344412536003803061986465689130048416025854743559179866403249973450942355904159952177181223982856568753228002328199406488936610385235667171241621682676924236699238954861248151426687672545271558518498637645172861816002927747918998967520367154114338618640604529333328106577519087527142665340089968136194024348570979183138102725312080572925258822022072979924097501755168472594277110868565197264725067462733826329887560951863418472432598970656450891393414110900087846887719180956524625670069941448099796704876150185785682668766913237447160760989031491298578190692798838256811396619951811885880846656090305615665837333281785119146312848275786144666563910025560875529691474840684858273672992194709207942932021972964605013621860683600753944697419866910155077160257062705725182176266849301757808899058304096260715632014462590472207384150400654101555719902068657544790539466670945107566061206398987950861223460283362757410015230355751209800668810033898407246728243269049376810882377164724127144828273260238727392241942469877444916602921991493250614398909397165192932409916532259802975467180674561053337174695824120661735717833434122965089878682497505954841223189423053332621886377648990315596401632755527438423202410417666196682826732343874057342064887361308386271475436173947411392245393892746853105771185331105832670493931412773511180706518093599038218288229295306678581914051929320222030363572530727817937734185120117276417183061931412470993259987109700145455080879210121312824871053028799458449113941392348032457229517401096631952457684903871582508516460633849958733441148563662688013541999193088582858740677523328949336588671250353510348010750035678520801511480160143034762771312131953216663468210142838571053769687970477759332705148278600179332511462973513681653654063736000356314986844781794188024409108366327561576860825677053252937785064126389612816305848310626960611989396824616955013041097491968453662987703754019135711854153638615569414229210931382156738328720371198745502757040736381225559470741267808523635850931475301370052620906345300547208698217430424855890061985499244811446929325595065000221258503644594378603399292688530502435460344816404987097644289167402262672011277622193336715240018962719264971109961223661683828123354853268706459793996276920882108180040487911124426803489953345951134412806243488640564714726616070879657731734336617174113665509370099845613868524262337219042538452106103682313521984874121117391304506281460045715513556283572491644337716919769628803829829404134784519780644080842392259707766852949877035291894483864274955312478601556921885411926479120457930549923320516537567770534420623179558032402951117170334785585919351440788173560131523851679981056560123215991128269425510399326321723037743601715551731827859445486184190230401964308835264320057594427429180209109249570769875046759744674872009719416373086192342314542139185873090106298199357707004760014620399057944968159145960195611331134188248558705977613399772571488627978269926974252086845792220895393365786770249570133609662478457583709136311512794276183326853852100248400747442922819923258078085108624439827063039788003610987270458441865935199484923222265666662856851673435922684798327525288053224065989302910944626621536725618263521691380793048018267725073943057347509440515789114685460731823808757987398564480312310511681770799790045846766510546197738671414498872239195931136251539156778266881021468571828853729449401292152961737262517209939489441487892081817589929122464296629483435942516813148410179280396763049579355831062460031766453853893100432957378143386508372049331422991900596783400568267136882341661877509009643121741523215371883816608786789702681099212802101330051604697785213110565568744865614207098745120626128268532638513145932104451006901122039904554661465634403428936376201863369899306386663895632742437696624736571470495093453232045389883755458890627366889960327779216440756342072473945468922927542003320801274569726115667030571259235200106123644614704227962629839545290832031578277811706661855011934210347689488358754218339770467896896246690846423663577493328332836428419614467551698610736388035595908357134195324310384022207500119771692117127203968641666906478160524578407984076621084725050292757471688862227253289799435602998599878013278324226225472632744210788177570341790793000347760439231771926531285674682359442159240400506290914838468391744280601673488363592544621651661020555445374903202696457163942329965477713747295724291067590294964638343518424623103618709277044613449868310701116637220954326129604440557685225750921393084388040502259719203999859796340072579595055301176574251991210495314763948116457507550511689869032937014985930959617718459079708972371650784376610082114167038012146141672303246489957668368866318848184976907512366848126526339610086308818075483541945146713637720606392993102773195646296984720169606900571492892336299303906966574562357694067858376077774479994292109243336205653406598415594219400088164580904845493694692471957134300694323952082243891746904294826004443468370375134824340887241071502490500824596002147287954664128392861726806068927809276604882844576840986596533998504275444164794759045406400400777618582303582480595358750781162284336611729738342605038541093931281670462129361955561041035758189307996695086078447765537180132792438421740825500093912670915467950207283889113582825378608774018811865354584367101340655624285064491254238027499525840369697335799627010368383250656249523842332194754820500486560626156730044306430411257609555798963724493448785253984766745516443861879153158139193205828689421859646268107084143939289833879291743554098355382036584775244113694400384463770758806491678021089471883632982751815760783643935205560190194291656118148426256206916270522937877500604136522088036688347465443261770992808613398944067833404601205009675096385961293469196386198455978575938858390880766967159916725894108910640586167745297483798537729264480653977321020388692298773811334072682054035282727417155127741638258937103563176545708159568481448450389941448197214531457264201960793080785221038326792895948697662231756495399398353602106086884420111461918670810833923818491437403608269865910906091987690469864436630417091210736301582173978055138073765550235500593689274649783397187710302245083623895395731237301675907622759063457503901694051198767257265900780186547037119398643029637127491744435642501885855487346245899519198757805616613498974465398760352240421899687742979556006349156095656832164644995231699855716745740190238952088223425479794811031472485323255080329691609323208866328749262631236488378777368876533233435347601142706100810419676560707752491555979288350253271041046799948964489907476111134622441435751093489796342194183297740787763031451751658359057051502232300716883093011281242706769724458498275073146614202299026364284106633806939029088669468149184456774863846723373549655629832100767148854597272293868491045908183349639745822049192821087701582425069110812550972726868791904754112308309613649174871979195714082192553180507154819739122492642230348697618793161950579887152537820059744730501807414534366083834972691843667302497547959758880485464359575372061766000855831171880145595030939475492689794237178786431115628768177080091214687043477234513000154355172078122535211332836957693075485974950723708035394521356765594576223371924155394094351876130322424306050594678543151537873801552459418142212615171686769029529359768637004333265091385658503888508009679620729637166462047783412518533583653511773186464177102187090819573568245329562970520519385999060526615313201431983420709980857359759684882018281465343040307573123302096997579506513636061726073140043114259018672172289974221331701997269733347804772211169352567849053491302391675303861778113045899177606339296376830921645958019287914137984411012530769929031832880022614606492970213313367191222808347290303996404754987378552333695821979511302894614727132202265921998417546391617154288281541720708503363630809699218805448703797871462215422287154757862021165529815987862153127178279576012474106218221181663497696604290549445417786266167299244458924308330665568106419049967448949394314734572656359984555289874626637622975768391853343779189879492714126579885646343685005661793190627637324126080000553834967001963547717493439103586311001520666316858186678588783661992469080416358510064695401569352291024739110547711742594785453996859265850531777267341211102321915653319238818513748899831668159450011598826090006770920684103333300166328618081366108382224417426099440460536869187729587861088243427688070233807160178533004266874334423892245469690598102918984013748122386310021392605378874503979446598301006088530092142230758210062095559967799604409703007773934954623279181019519839173543409914785718131865260962585581058560262250687050736151247339100715018317639876238254327571233989605791244520581683279616574580481023433148855712145028559451168634414261933187753442298516837474680466468015244871748223792007538755149260135981676888562011161096284925786520658104982622561714039815385951126887549356869109877527812968157235132804628377649715541278352906964196193175645418229484976141890820570327495993332572072042285811943137210146342963667829255024370655870725778082524315321932942405351521696933240916829062120727744019951344266804015322195463643073155339832085184841073979914814642528986527192780680463870469939773602951715279940007094275215439844144734659476582408189815643865898814873197537516499542686390677576150455742417599986330890548586712963494241212966091083408714054782227866623296663958321661177196935240014871052638233123526448270093295269119306621306936968631229994156772343460025294871388109338204209884010437157929679885073321751287552977400688492119233159834507377009445662031404569069892562305910853997620827927597671533020021700156133707741165390523083546927792806317463066599010540202281158268601344853699285861907897406375488152353350570697960198371941228939342376718020300877147572382743259775959086359262670081820481135702490790629529857716816284182633353579938996461665992674134673454249612329098039212223068938824336961398536673348389757468367353697569156834927180707319637767719216904939680300137563024605338139040166958086770811285142375529691180805448007341479329513172418637927872908796159578715247761031803328948566285534147546545643434470252064214237081800855751207376123787454401734345303562294943064718284957245776654461329565691782551378441402817028891643571577298815749987824932357458990440217442729108460885473407823263092245035371935405209736171630792065322208063135380129136784997992810255751187302642924529827548260706119238832348034048782579965495022364897160726506115615877469498781747109725461666623174112048237869844651292981442617817578675230497295724410003856087376396644687713423140637251308349710945125559778250403080957961576833567463332887586367973933097412714886270885748098487616664059932652665521324358459508208788113893779875472188777881387708647926323568084122369669857242631244210104112233479583472295056397737355029350840961791712297754480324550597957745762983278812050311154224923697745120434702273928323863582988929606044747960100167448159209835250259735979780825995364098069135169723808335339117299552436519537643275389041323437283363236072514266386412552014656796934883192194789329026627807675295067125991231385502650773367508168747221770417651945561639120225121598250049310023202411152623847216950390043803289801278472505429931523691399102835486731404516690215140228455774031674683473478173892126443054679826168660130263278589665800823034841504179618519127290759463839268393688278647809611522082146372553876085276598305697349020912646315313607957617689221914317320898115603045361174032967634789252987192918700261183219258223019152631057850038893866445421734688222591748877449920537309194004373349329432682537207725674442130881584984165465665832096939194583255025129774571648972571351393819511422119511051136237202194363410833377377577320846753244274811504535717589191778604260782808248527496137958199640306733697948069681347176193842543551002254259277623271353656063910758547837349167484495499711530815574471679801631893060437478911043374611128080948694809121578236794715245325748206437014318062119794364875425324563938660129411062444294355668543215208442423398989185597517410583648097357228785030514735226774055820260211333866198716270589682218039090430850897963071996520215359560399189382165211872337020309614757278668083718767157142446588069644083574265410688448364571150580747994890476544228458054957421210978836565914285809901798977942402175636808228400414952777424011193016555275592972557677856443865021257040039158489094508156714621764011654853956298032306800437900363831816900780313339792777043307393991388445234441954808405686492268178507055471720140089976043194461022383957372706263222149780695593463380661583947561652851256911728793228512819336595563661165037246222214005764895434378056832643695839600627104018593737033699434768792182484121775213835776400774418472353988437469605737343487453576378608504773088728815769760635441424669578394137750106603639647493685789605004188763486894332171910862189372902338182782197120496127226284958943226801240409411319489102439480024179188221003017416483362648337366848094436491458047083064213146746039388259870713206273595076018858183989946158850596341575811679125607586762605551461777167924036698705359697742945515679507234462004975945695944234619087510501138265698129849102478410320447786215016476965744974220609093408883832761283818800950073739237734786360962864797461579514226757958667606024979586599481172566602974935369210180019252744718853644584395071007668482343427932836577583727921784354231499774744391101780078085081634749131500875581218992668619874020201178428942867128758329534632604640238766668661696415215935680845770284555841017176361739835864970355151046715930237646941786647152681663651848047887833704523482296157340666762332576678034382395174700908938283887342019650909954197761879928904046746106949677338278361482443355746384958366188130404084851955884572561673931998423748413222194336334568355969493425220997705051302686109039330692484955024666067697560729727613500351942479778653044997688346850596825361825653246344887821977202545269478659547112119405586442826120399788349261956712465966676375211506513755773332674900798364332786853862241044843490462054278513114993002840264724397366984379001217443486256662572382800276316847871845210304664853812183104372399011535642393536306768184759549693813804768493998979505222636761987244595687317517814856448676941323976762234005094741864367390827733410652526993791698148574183715109081281190613202561758868945227623144256780353580088591409279145501804378475489777170562488661017429632593348352574063865148078605974416197024893762580279151352783826379612314477567238990319428632755779860642175474018529070350880196968588813135164862915023692881181934413621356101134632696666312428724576300410646607418341823604798703171335354911453346534043228766587906783363952502294140211763484724994124794063856877707314069145915516922039136947861798124600998017655702649079139081457716596310271014771095298929625655759266362322336454335538998952371132988497200583947093244866697565372750886795867080796485720599358204569259020267956536611911965717325121988197345257302148722277203914733060372925367846502173134466014521921382677806627175761962452670591585193751418790664603441055011641179527909312492908946635956357879888396101249273522314866855188150243492547718944437089653039652633619260503404173405736261943275904290230688211887684090400421530645630464672197701461147420220968475788147337903623896500828470892291582271424613504407080410298184923509517268688807662353681720529163625298869957291781083474407482476639631148155188145099501940906202099176365006204127988667022709628556605276914958807510441045000887354416131551657744909661035086862160300357486186599472391799206296601879450928462620049602886364436549309132648531982047368969629102241120893197187968516151412706757474453231530317808963286701316632441136787279851269767144922001516725839106956700132851416823099002073781401668128456048487654859857021335291082654439538682933223743981027537803147550170928794093709061015582014006315152202839170936967636031728796274947611056221892270026158711701893070767953551397169734637672226326511038118365787675541758757362166107423294571870588614969912252988266670098202252061020596538924275577617548976546341958292283080270079668513754989006210516655785848337256985835316821319551045642475698412408640539773307896612953034321050247824536183908495884205727287382210719561848483982341818557309549650882734525561562149595667100287146743594602480313964640192322568033409343453389980730428835746457349592368462757619218154891903308256720289061634813986885532221181221463544192857230124706423016766461897400212093600968502909394392357159853655256095029986672521180281180780028435299126078075559480974708295042831646144857631066813046272100430984319246371831133958109174148796267560101385102882093425101417511969427858687919068776545358197305600156209495964409978012479655321957511374523754929739007246193908614415801385988697060880450002562644204779332563957297436879952355576981533941349745730889935433287629069248790853630746430085846991111475097517282615833610211466370678043634275670305187569359578514927217293978963228686563228945383342581980804081563208081571137841819455461167012688682348864543058004527897895104743927183667424231333057964198378498205237674723662844690172366975650385509838182330295744973781043769431257234229677326501978174924355930229151431533506211202229742125312337016106975801084557415095781793340138567083112689416951638701547568323844622908196156044347175708295049498785250865769172925800708126350309374854921422960949498527200343443113220351261720587937320345932034642712114596246129631222704183292910056638529451506047594430146094253374852485105369949332635868217283624253748718815626044262687738597786447228082444156619833761776212213563519000798205792893382670583031971633023227128898645096109617624179730482416354775940950131525781029842858339570761433794797821780891954278618767538139469708390876457376763395135752842448360550438615865055544409218757333256857272524826891620366343896802485457506499391234455184812885017400769058166710824145842218382177666717263885748972944144610815370436436676648710507740011965643491494209510185454206667526172289989126444519776870003309892080295068677485699516528142095083788517735027244352699325749812438766255209386152084597853670972640635029729267645796346600270702202971522440338059467838875557949952641576541699196872531895988545260487740720140004473793780680332105323959960964534685582233939557568283591359758125335537632132593732589073207666197602973895129840627248782329695078758356846251398298745780240835366685666021124566407546173315199319499725779450229429445342931108393315309717206650765207725597595540212976569209223344569351326604440017599819787796267230117075225647911125438938955670313733912648808614765646267868382934021288443755352447206342520672334859653688342025807236279522783105269469325241801698426434171390410269525331566013794251090941449942191744844408770713545152526121113898852203728356902190688109635613895715292324011251908607433252042252601849715586191867020231604072680191299471196848878098397030920418421366255502226960073122946099700664322717445673919830495904530289167515967666004493378508538167508360980631906244121001440224906716734777084935525982132332684985075808969379803356327033243291582830452985372307584373886101063299322541444519972977422821148138908246271739591580702188442208387610160802495406007627552836503955687741331385416143554330642890428704245484581941381503730670323281992124691243658603734343267987761251193739915055295971310694207747169188014676007639553255099927623428004416194652250730622007434787684670854488776738169234675183746926403035066911069966916486302875123342424041983891740826785505411217157123396768790070267550096564359279502315652086447660524888555903932039434461328972063087135524200302703080195355548164471739096390497685136576037912392190671448560059436464426727334104625635820988899667301985067850770817392362081724034026850359328785109862427308543994016211741930355803807389783208057733662899527579416845835880036986906903113699459607501834546192936606729962123306018877097269508139662831105009306877972589235971979694521610073596390312412207926260938598513787021817621585141925577845750400654156128405835743912082695087261246024691291434297162980323295436270860587315843866407558237396700778190257730449072739247149150074382900706791132156820296235360928896947170570624024926669818932385214495500800148702497172149794475075748941584196361016572811457676485257903576475121150797952840339459611369436208769618275273087358436864262791958816688000046396872796078851429261137474704302667122077944735591684254505295503314058217174822847250802260961221862259018264648626170323509616900614664235385769257485978733395975967620655095982931127753514600828413885364882657056121882238507685735934397114797936067272991355917719104072616088270324638315022645930811891715005258790579385416385737001988286897216979592620410540439276163957707776529005573863547884850549736846687885316740135516052890011658258546807682304981471310723606156972340414307480424324376616548921813867851439251167089279482571821910116964929049634485986883905700802807396399206429599388477844559317428997967786109439296705092891977909734751911740276218847781223155682396265386728561321876418391265402797698822492807021931923338663574634984084235831755204083974135656151831530836867259638257836072210746608858775504858167545599335932456858422051510793002862163945323212525238735149407247703503888623736594677195022296150554719848512475819876885411340141189782586995809286928538427013967203093166026499683977637302685105822528812342453770986906698167919603325630986699733407865197067902327927109404406827370002278649549245790430914574309199531766894626507014561020452273376516101618199694625624466047472640508180400411679580004652916692026956825578609431189424789995453006209629788940538762454401925477070182269815084243513482806740280141493954657626546754435118910857102708152729362666053841888372799657907292062351223147055938832523387430489493639762717079872277132550552593496882567088546958959812819632872652615054644038634741439030230791350528188035007123437780518526076186172892794706983293342890332245691265282023411609579820169210547270236422417448814874049745285413133451313045393443617132079944759176326813513444212453684205536962546809852800377839374276193075434803700122611292124658001153265932021290985837386614820607377310766542233282403970762493943980201747160187173556567351999979843705735555812378816971744028982204752178704707688846141538438717845228850282659068757791200616966939625704422478044198949331464559140424248517907096301682760883104541127388478174840796316902801108571312331428805897434113836456328878554110000211105959455330774443527552925655586782017666122662470900700708024158198724346369842584155225796867961529379796648068591024354890589533676900746338907132893438573596723943898080510025586866064814843393096745359915278570982677104752384791253373034581800694186687804494991122734012796284850338560779981424230672303926137042037003092840554234311029539046623132118684182387089531071596416558948359404733106979000822742152628542280785985742223105342481731435995473794202901793313481734984667431086990574239519484330089803840749747496307380809472841588015272051508717051753779344507895643496587416122549864312358052468965308802560197911877437828001741368527801232321697727692326951865681567962683129291495663519555128597690272737612598012009518054983639465503149762636911799457802363008934359576160531139532757598883142749517176802263898127063435217427630960355159533559027167833450359079285318907871240117609808558391962802688401078862398924022381154920744608076745246798940171272673739337290059888080985494603193244334803469365943165031777689582276617953413018802708816571899908851956168108566831068962580745873998123195735781795212598674116235262234994630102225709668274812773011481623334796042281246062363224741004853941418177870138519274598414708873458383707537950966332753154541046020677279447210316112728081123091039113951149758599138187510539725799057898482096869460971512001403336431643418205255848329608475020476010507087456276779216852867372232892301947894320786674015614479128065909884520682758881077273392947545328177411286733724503719254846882164435492396426000672570191101104663156817236974784921419237064236058189094465289355299430067344842557339127972853679291282894354889076492902998128534804219573659801271438638025616256126483793968655974040569347676513055105302999172784590549042054822665826571192823041155475284690029953205623089848617588971538656422274616076653323318187639082954025737704425993137137084907157359882654965191836036604295996371420033931806003545878325169591161083329879210878886513368824128340160524629365909775486027654244144369833218601574166457140295538178362975316365764277623851186074727638578539915398336529915444163183051447994017251337421861478790323392579026745104099465092885446287629025066412752417545390235237578231303464557027464339686069474650365458200799388368400006434611909262904186375677114250896408177023859771991680043052396465172683938810220105787703999358462126743668584303185709608835097295752874219913909071786805068826449610805240938770978719641359428412085248184518831492245066366609159524109940466207921651197203658270464216821928418204123440338664412230822820296246975359746862713450863002803630887958547112969851182304857133300597831641686010794983911390286541906645340705959227095150909871190245293389922545521968692926287206553341404166767160059383797425178405864528781180910504945166385674420718604167905521491299607987909034883464925700738101754899289154674847995483229509227268427205175458502774732087362075592052631926410657275717984245298348878606549277964646743147235226519345452070093547137329695241426612532044156602788299310935844330283919422567510230925112835957367845178832141992247987087564886701393008055879783665182102335510061089062726456473562210299998793115679989347369310919428923588469011414246688411273910307365662294012857180247791679118414233099470696692267549441709001301430032655240280832720818356353600968877273910105320250697308607841539112060701139709697270354765939659792597149576287785514079268330261384028539854499181181630010282570059941172118578894277410494958072256800067652757013497345818437459856393857786905090407525128401117818492118070555942456041607585087441348615168232095011671030799994242241427406965248099487594135905816949227441731451369950429993453165108950644107750935553265058418413653693521097653605128578824479524763759795816511377651325421194353909848695955929970544874808892398459828853766384477636729900626287708253140045774146038582292975699324828388582671950103771203297096964688571089727160885338220830793140751673560747453058650865589269405742289626043997932238828319151488258600131479327522412069148527709640235466087360402811823528143458306240480415839176977236230788852349047233097196169629457317103356779402598413187052695762260299818038472595757954470685207819676177658692086487398345728836911488147386750340476566257794827040991416703663740204407664747477599883375355512285988904774658470625581941913511076522886530441989601564565009455166578068529789413705357054546431793056542458317587784113758194242902550112206108155952197043276418719802282869815612329389471092296539076430847303028879590932386260683069646220453592437918274007793585701472881467325670080181614512133066044958385177268745117941771176988736118841506816994993731159197009128339774025800496540490243950678333292472236974320069446261681124227230100436384857922562158875059031552159060290685379828222038866691625387818877119708619099040406599252142459917873024949469511740689228949404955845103353941256004438794286893745056211696583891167079078173653192923431853704522072457570343145232619259609083832776794618936936950137956989021937192771332936051029949070949149430164044419147292289117454520611300516869612430286746609305159268549017875573088474622004663231815708575683995447508648321052972861977222465375228598005007132881637572712339654832645819021263636347206557290030296607896558898642121306712386127282948358950609776889076555364491851835146741194134645602292569585065231248162465608398320787247835444907421819301333638463790021502184065197884750043500194423696170779784888777986682092302808474116460523065151783507767209260324146884416213839427392132817948411010966900966085816817446787855862517756209552531932820788603950792412830060159228126343648885099780179451879251838732505957159810622896892120794855149900315917108449478248700327580630653369260908124016772335830476230313129178164592454867661544038342602833192436891871290562308910213925598685226326564696043198299361592439426142255340228937276356314817960648303572140570005247094522346794971389576582315452039811017173889172460462714669946041076648823455457251227977901733055793170553285763626529759981171539673716042422364838597868404386552369099585356418836738633612381861705226409381170198499384897291796724317583207366591761943905342819169850029267057755211114949764871475353963338312846162643841997103826337044318519408988627879134471367214320230916913825202295738079527461839097356659797390648047349132321379196089285247299668734955796483679246210363702659882312077235709642655183627626510969321680495480862539457070952929539247900518475000992503880080877110448599583598337941018184103339165596261185193604282282847937890647022490673601430645505882965660772694847220950698908776456104989897440059926502462815379117898410808845369593551479960627743372501937885313314840423825799982505050804448926353205407475202657207383680497266238397950556698641476757816619358927989019264537829614663667311972993981510920792399442034938173754974524968081882898864235470828944687544538245976320523346279346355147614402655646269492260591614624426029944952758559762032963311450293143345301672101874166573023269966175168531906786244842063572578998156100044494399039199062031694157293722749429102875510474695848358336214923712073110136288876428356995909084010160583116552604959228004127068707451698145762670980005040997586096030616492939436733994133380151787609294377590560535731242509373436770930320581599507846625305268980344956621076688617342368523163384698700073550401745291225082087240985897975011309564983080454120071816610020775455973842656556344641433809524069397968258397886099692486395317139052499127206065869237594117715603583184398788563434647490803288144161436795605190032664695730952554572752335923917035817951937063373434278575220063673776417417913423811623582147151103565834052227195379306285746877571997657783121688853885151868450016916150268380801111437594563906717366152728341892355336846343581112999010173347517611762774610275264959440238217719560193690648155241239341827091774268110991664649771720500961184050356995319000878907845488680711033841228746718374609467545761605083532913619496780505279798521641867061909668559862825550469408021718486855565684289927187225370130997459320697638608089828598383466037114000231120039866221471223428905003311203290807805054071855627503641483915206683390876321922485632947503327321220298180065634368072748564164878833998263318284695334943835265431078344803817177529531302141756368943566699023848705859232312051104912228301691460216309316544577972904801284773817497295931345878847171409281383051322147916418662816606616058281256136772353494134944128288043121343942878258698884197487940365609104089580157493615382847949865395908637797538927492768700852224059943325888518050451508089088892417992186570672373346478720845399860429204617275984022102710955112359615941273428543310474969387824593753611219022337972037655988370218644827434753105514911685077150172053542669821854467477031001988791996188088921018235271415667915470403183646316208419722853744038650062725900960248016625855751066861529123799731982762628364328645279303560120415597405646671235403922542861545052440601246510138511128887503349460336047462242150984029090313074053213372797890545766663671870246838078114406982273078142072652081750591425290184660607869809898128017415105544063097506435410172071133793825436231589923117389698922045165232219153865509003041717875157765562350329546610788765613703982996229578259075250938115311096233549189329036599794896041724669828314455769834556408588925587507438814388341548189086819098880431548480297718406236175527487447995735359218208917853331061490718029069209085223209048698873229771171779247928202538411344985458986585620354447235958080776155694716599444629851668139682381119232978397553441729822465588975397487180361540685354313635486175714747053688556515030232267929176479313955273022011466605500807565936083267330216552284545978307525996696889867010377039489688076200423493487670027837208196792034098570535560213380367120216658365628008455899889489852185090383945255084152238158901163540632722226244183535854209835047993048663069807166131566803466113791844738815648570261581174655276379496187728228427094687258820854350471119487016215344757238703216144487047681611108280829810598383323480865265104524437200357129636159061457694041013349741475516931201872362249136842068032822154604676346865366981930965653031085083911030481971771231392436791245813968412587905095489059231949419017698257031255013752815350595848918707291298079583137656896202542410179122055725128628509291722941890842366373495724019732371447534590035159738131159457556518397762401157513516403701538890713896295995036540525263972538078255466600777305842021096667179381431199402795902538852291608036233792124408842690144737030291736305437038778365309802966631026267886291180956814494440146027122830554070734198438607946385147460382465139904683771269899105987428471519025174008821090315578015140328872155458435206882363838100298658258284067442167441037429013623602832091917811410463022375755510364823834049093335792352363274522597026081365231051233928931909845527160349082600632625430329873423720934008025317584019757116844383676285989264470780948391288505715940742743571376232653697430688118393404050514988105353416312838166952917509842737798118753572771053260048381072620824912931505087382155960729528964236166439394105577879802812879173734532915552619522417736825301167839798838442099446763174065184998983028468791312440262381874754429376660864887060270737245132768576134857117914989692801203680868684880994076812497177872881137251689737830483970911501974473511334890426989895590548866453275570712992203491909603981852977918396484954870131670687463170928625285468868335224106085410095718411702765451964187173844582532559326108325716878577446344926736480288595238579596685463505282820052209527037832716243281740022939602383244790333037802849586726060522392220544826079756610503851646551611844765113768084113439235708107181942488295430335070901023940000111938835207238683809820382810882094874225190191489902902453797116988798111426555130859101201157701049175759521440087426151626188473445711515973332030846778701316954592057105631031418936160136125118890789102554725635519544565774435626750876431294586685151755245189981624197512565179840362491287844704817241728132623421736621591098095291314308778488207257809103921161613316251118389049309382924019506661230868008900677488738243270059279428738484388303619383655413545218875571631859653890746500383049649250925125599204652809865805237781486815003827204666162318473929661016516056117200079601092741174651349910203987712237105176258439038562077870749736046780840440826919312855308178832792968082476711070940840080682473823095403912251058095346686094698736294067836730595658117788094061527064958784647251129604887679137759348602652995277902989444458044152396530362851728112103422992008318686870075687548591858491158303577163548652674306853068570522457761012042007260697668221849488202508030454112350490000543270157644812941592862749132066710563238149077829989692908719162091441863924399768766801948720606455213196869235453381327734219760520468099021927992442497096217784533353333610002818243294919694575144020306204998251705040610094544938078994040814143218589683142690032208094532897745318791300746720213757547902921997063420721945945434191525382852194077698974347674104412660691864091786676342976209791467464348770201700172372658136520825301587230281578527456502584276956214958917381880148507462945342959582855504631423431807066360716699590476220786056586523546434231849462823794817174609308486783399478428734299618887182579903414494570602981812158214867480414619930404651711642962130408970001783623837204365153891157022090339889784726628966654859848331838707952499653340723547306322492338631063444751311836053050117980781981319342655305849683410323870319487590214531701175216690604987990012444380562184324902844364415815981332600811649329408269432056599303753105160573578634420976351068416637243479781022558975245208091954542184938240372348708520348895700446671694006162349472626640174356633280422881626475731511055800555941502279171815109645188090737176106060638597993757763257099323160724205112562812165923931354510711286506764625399157633486505184732276179798308642564996086723977098634321853930715365710568465840307265562037138890002678312145352499413282750387704812655581575947323415192505281551672776112461113905177503064560356564580645278715526240627422124983128584895921600262775111496392554212458465562277584332458672075608016968416377691705875111860729675562091512666002862217160609389175277053020828013912907614810494078381575594328065282281269352504195970215864382156544078493629802952031671376040632203333251433559687125167639196223112566188737092527384973217906711740908900143193709942186804358378423268898504617469421235987364001614347712955648736025436063149818995014306275168483591264763476853151607020264838114389972238549221926647428747354307191030657679515098339787249068057674909454905214709272514165485462421770207538318511415178501312280246832017326257238312843909187015939797878424903486568184803384679608678761653732552713631217233487800854224219725309932263638951089667630122458684705407253174558606435125524268104796904630754664871368021464056476280783425229592010621151356469124477483823096821738417899340705364625672191769124521216637518408955016899336661737181602399671889553439386793396234380075326831454956828934656514803733628798540517756502207099881932293921796708472930296753235140814308212397233963892820429845814715627632102825903867335900926203463114312375536355263560843604498477539117850170091911044446484045688296509152669786274561376537386287412469718468526610986739163403393950922134513613061267459352386462289410127636369880522887874625056932280438959869731827257667722140624235506635450454494825555063504637061018894279735903673453707718183071482837366763969738570628605481162724760780088279638874628052499522653752170487138058050075573646815318092492337904589818574595143118032970276840330176670015336809364804577183176833865035746988425328015233905323291976342604934575143151869502155379631862204874283168612794860250247184506682784646636881666812252639447655155594723129316143091560618085786745844732372238646139620718629574518508598668683409778440373929795706425546146359567133984905246134249203418073606712955722918364445314068280325617439179394613817276936172018206515953656059476880094025586997414420016072385986558616431139522840063414124707729503275148875429515946828744164420973161135846519528480754577770593114626449621337836841842543420382229506359084483283880214306969691966630528765232945308076557404387816870764824315027149277881050465596911596061824014616813667793512259831637554720331294947400910139845694755381190536171742459652264486575233180854262046132528614905277005649614150764984259958697785327241666404947267886780523894532491245652579107763775516756209323649723404733071101095123028217768275066722067759643648930413370416348441936228339550527963547707578731202367098010476002005756571187687941185184032259848426955934639829113443667570874512820835480823731240331196135298790330812669536178972735902239793240082350786226338714113088613360706281308924172954492758080226367872944043791653952949468184170288279306956214918139040186675040608096465945693754365748729137697985016767850668159741653647513095433465230688678769383851485197669502067592069863035716091531236088323536101286697146941234903845592754680600329263659319213897764306765470479354689167482353010698848359876639547692388923960704673524408276265669520728221436702044677456732859718217323783219319553081622803245205893927684088816629088307910938238752574428624065403815623664015718296428886152447929051858008561673924146184231960608107767660019906936231025869867407443381729314448184597557237231313507778259174735618813043558717863731148353676786350589185102481585126290079447922086180519907429476929570728947853138110873937994664620840486773417960034674165968981902783979081590632770809403718167413710496623885403656465515971335454392136951168771191006492211697188269445852092885951832622270657176091453504053192871845462099987516430607367054955226229029454830035318139782018830945212605808717430562884398204936934746669577271995858090902295056966700375785406140592736751984973102280063590306377991409394430530977256315924768645429157464524459859474362612656833915860028817744772453015479528449160961499250520645861720045270752005775984661430451263795537848756903790912254169128025946934301444947400439460420820179955778466035457997340114433674632431749376481492087458232849244963450082667030267442983670151260196608267136377232776042046017024417442559258578544917373072357966298542765294111175962633082034025095021061364444650330063217534611297564938047954196402072340123273781303693158841211210149063828297160638141618610040327904490901414628215209628050471299349848762615673438003119760544946823104607545735733337864324139118853382732069190082046587070798147156853058385944419690621447528830913034667503649460198406680341486734520203199177095823695598290662926526205180207608754293369238986914392565915317483468580099990199450838194196419694362818880397715639141732987310154713680013481785103867483106495330993599762770030554478554224792780146760202727029480129352812197210812387768742816461306135473099710065932475726416715654697061559944634327640788132740536222430600634981800830273545709628293729321672588078115698260332751873461287230913008757957496760984564063942237632110497732103159305871356533256286513491318334083606693718602560192309391792703857072776892395120944018643668782945852917071767257007917169546634415873159435171443533981312340918225377075064112617476679028135649678494662448002522760362784960066815169430905740718236349700299154963495294753243576724746212829455844909887465320092962900158501750193830440487569550083112226475954215042089117909638141065541160230067312561424518987521763739365275351809874434291806196261442789662091240005625665594701472061848858948720586951762172872229262471343547802631218065077737334185480303012566729703519530650855515086904333931238572528842579051161718299444213734718172316684770212877261436202959943867787915892505145482571754884579046268346567921689458709017929730436679488010444036190630259644123795950940318365758323122163874577904580500887312824073151731909672075718893843221832308175196440383396779629788847001121855775484751395775881969589130264201022605821580108123762685153810686639304848585825305378572187831548867321185395461929299232444154542447141291395714639357658050624226596706244987425787347880604148001610673636334776835481252838305725501142983927669935250411317115531747098888607772897886643457982996184920132179704850844888927061479486396844668864869801880557241535705963003093765010671147743118744126797278958378754118125949140209649208051402449715704411473061182225177299105826557361090167167118525320070000849212404137172466333364914884806037218818085740886102531057306862565969917594134617946948057069356446046250426683282466329391309278778915786839503950308701324165494416328130800878743965438370547443215667896843889582984931233395159199753846246362892605409319462880274807250844428033477292996248289565290355140409951456092669153065673580092924403140610164078091552658079727378981180088905990486026895000617689461666543234421620717464093796541567839932389454306006397618581862367532491434213583152046291785967849051421929138276924165146336312877679375582243816827266943276386429980485291303881806836553332995896933876496339986275848690917283548903701803050910584593705269346910611693871603124426448533916444783218320286383890471239877362286828929790171042011705842291805800421600744909065236364955019029311339003126366200299986627378076955284683414655834347950500050003320493297642843270047382527512279688403494948011963239027993639342522368006180262955028883578918322544448035430888415063498882437374036977388817852264351411948743645076615998200191660513830268260879204193918576729970515773290528179328863691458536437177729595289948511788176816242589049570015270958845991987338096051685721524019351952342993645495600200193066366397995460724629312633207848872503926772963480458311615576082192195829921439301792319514918467040616555588282606550859263485138303079311242391180862104853778713512607354980974080849586974028400704890861023410317106066109367009222545759259938621246096272049528344649190225645870612269515830683436571532334822810569105568331367618112595778573394876568382178885207710325382850461426126849676525883695429075593617662087392705772645802585190812869560747711786268419804604179200601798292192705923336713289469861366987949007287296156098030960020750234279632603769133942238273664803322246474804012152552996490834312673794900469867081434935203617163563481388733982507305936178234359119127488339501789088449093922124094632088050225915213765750987291048420905627609141939182162076653518705468051092489576128854255054175823238212641127175809904161383306282324631944650493285844371761381050812486266222963496574685749578278854937083649708228585654135252046059913871848138692998103374323078473075717584272204542736633827556446311179239285370377703964953389973147988976943884713880544916391145813941298741315296083746903841641541566178738186481730418918899240418776768207884348096638236258295142455233395762791327912870745507282224971005756962310955452070112217384220098682597336845860237099329668321916663273277013227355010881218611750179168272014253331072998373631029549723607812471881617447276151707866411961363766285396835533648872418671482907428493673217297920337573372990905100787412128783912513760866563279807454627419315911320573684744592742861336505863719578063594527587790705176222175728038733477967101885582474954685314891967986626306998348222336662608105245199566988204182160700544362123695348861736516243123491550898076552058711593306804586864395438718782154935561293400578975438214299825412690174473015342402003718569723248427786054750864469913161836349663333687806531005774851114314039405677926101979529763219007943865369313576265113206415309196684381045123807350363017631311421335593944134527341868655506183608406878415843610113777146747747012834628758431655188286274583405998386811025353047193407010400964554690079074137105212508405907168499566439367586638892229668790641473585903125199778418733333775693182899406883199930176837508686895221590438460215806899763733542292341162765320534286393265966612316773524291595197300502441612313599615649226356209444724511586429814286499570129311420965958474190724235381086437879684469795916804016546869153330603861387935217344844125853008195604577085822359374211476599784814819188007002617693377809785530527700536281252758693428245018094541940951491873041135344334393326184905073020599231464291156017812122606166341024373312641036244028770298159655479513447113388428468346358669115467222614828354436376955302956536432876084137937092697719778569083875606283065245428107190495121798134096414567212614692186763365999806954226889817395028383143873782772595668274005255101201388029257803623971578642750667045347093472853076614981705046053591532514526949690508617894339629148671235160936961944874774224538139627145050990685600358870988146041669962166076938285157454346758888386476271823950298322977673719349348595101610643868087062077304190601132270634339320441675190560520284906103536798927943692290021328260063595303965998571452389676375582022002677686513384373153659150946405578294806211035396918193296108613865835658257038931842425183316524324118288500391296935755460905123791601939602156975145988437093766193077157917518473622099612113437822882146519718986665211693603197161514429212521364896216120449983891123326796237099560406531049594562991112484704571437404059547180571949416587641855784832811359250468690564992480184702277341966689770817788080422854890582675770197318997746605026885463819663803404475691106507555322900967972563622684433228118646631786624124435758075147868647109488591893945098166866945871782493381408547302554337001120761434517214267028572257991354119823460923871152313124059452772181673445396913422432110420402386117939777143335986865914434488638245467706784679443207138064165977847544907720655531745706693233732631245905502687340885312176341367788874658714621703444274348839685586473644006179198857347980768731432583781501182367963317988230714161184690100905778258829639986940958322145805014738930623351172315063915683236534854466254090073282827079578405266380425155722358975769451830416064094900481860690893945146632882610588862822387944382513477143573706859144066288192607683458525741452028328159214884800269335627836876311378788474853899177139677970758993591041292711619376291203703769153465194360597282127423753652337753839196491421966337594281432479410461466581293337343755376552837868200175390306521080758028394925075375709422808683144352649363227293175517315840857552826710628027495925430529250821296282233631361213852682588204485756299441083490287703070793311842754374200337782960827416625743234007983402504902617976679068391234691389131347065647477266009522878294026072192357652031953916610172398878608376343175372074952119578961525416292612433859793864361345340532721121631940713930635552706068206650881211411805480117433155942691825141804443338104939915644361120463860600023972539216064713176222699021650460570775956382072933465129740719489473483489418161315359621895069716255032829478855292171265070335850762232096375839269935454519812647798569128697391213715436877270286351643432340376647934017320032011619388079565384467891196419140511562868719207495260965791970074873579268819859652451456249379556867569988553082061190618722484098565726698198920866799998136340913533475473991805757744836318025151707645387550229260744095534161548187145481389261017343769078868570576553559963805733820072473698678113308647491655111826106930937789103876496191711801083752266576997835553795046681811659301682871201354671761210789778226507660376934964057026213064521308110635208892778742316236345380312850963202745731451124161560330158855127304867215730611034801700702726300490540640854020396408576227076465354370422222040612353304278095110950823385411987011913161536989477248757901894461185587087164676020962185932244462371581504928719836793684140894729780588740533506138734327814758612092186099976881035901562791761649903167593503830766854215415341494895738516053728722987678420988459516618592997412440585519877955415224281916049724950973731127067438047041318341359320517340479322448870611791582455935536929368564135202977999503667661139979525194630936960968422746080353001984094767290757573830804567537826139099330578405732645860078176805246316559427360707766460704480404690223970991951116944258393208458944569762646080858945407230156242289621406982400399141719856228787101416770066332722178910676447806512000919644082129728137344696787175935809174972453870631301411808744709482301687775823863140320683512892848779367585837573282256100341614452052967965130337943989169800870537111010966306490612639015110861943985566910580331345087990695555173997675736928889332792417115260330120372892304837472696744750946956041178753219279168543990970141725185295062648073782037775906788813327788705740668558791562763155452359411105976161194937273382807270091664492420598697143866187614365942977941012389019648967704082527552599380816346006822311569539928054320247561598354348737062402386823625067236123994474554345362670770207816318995948614100754196635845202032185324044337089069547217035287270080037742653003435591950544014197082131052237746619087369036965984945734999041458319749418524885430122806856335232867599566025665603335970451124045849741217989293989435978046994785602488648317170258672615255062892766513308475088367869313825891709833822948665727821247810429329996025801522619881650315675974245514045934454528044324756065147801684850641993659556039936996056190662193278377681986859203637800471255749254295244056138491097996959861903073621461147666426825949206694057453930145228796005724766014522750469061254642119714548021144461309631801186185808468449152071615105810490338252980858684407559550671861349774794095353451166609946516480953225963336808835051662783295299640585633532154709795042148207290167926419952045973952143126921566502931960811676792087971278275135903930455944268034132544599049530221023846162612936014133359772638680315324353819473690388406114258937486834212474529824056555455021363357453398049042080208728088365226047681459131603401075825241338063131883361876069687588125389252694962152317646261724341335038622471343806358228700798287248392147684103714632476838086373500179177338777020288550364893491365373201977755044677731667624041265477163939936187085458382019046832635644489184617381218738038700234156471083187284869439643447281073455078559198275952636449904358325726794318739609275042023910351680596837297354054709693301298289937205897990866643014526748401597497627423235566223943499358638790624466224820338706408474007730778465236843208857459473851605826448206826217008647236285027686175027873659481230377897716368114627872649060399932363443576289398433199067786924433887772836790576850143536283475444925678850159364516280898639467366189247540441102116837298332469753115021815801611277871306013562181164339551541267409585541090146420915252761570117769981588428573368492844453417068773103971291394806727676607593769895353853828763092693124866557871714108808836135032424252284996873128236552917548710680619473226386947209858280730967828910004879659243210627979094246251981701509431431137330322865552115427830203737923020961870686021483980785845458475634327628861170144250686194925858735061466769489922235955157589090252873479731695018026949838515059398183041804974127134937871192635116781077130130986440057098827669406024597919898635357724087830162310596765981117435114350103617812763078991875612808916310547315957844045380076018307931697004852129224586856134059500983129855464278582794273188617627896520755224842584778962637046190913167612505303021702398846363038046100009556280413479966765089505486897358117023932532868461767860228561187142589770041814508590716962942653856497833019932375778023941862833026758565896261143413508097003378094532469905529625857749506580573463045398379596168085400856782007463135794941950738925810830688442802349341156950283200348465560242659918641235928297590075803586389447681808850274969151697363222936296921583027338642205341567454437478328116932251312612149196731034354484017646350106095398486179643092431487429911588538491973867719530283612215397732233237496165497872164740490184173873655099775966214270656047198432732710658202749452824542403021513354288230347214078368390503760608785826242818426915444323019584404544815527212833973984131371709433334663178446824908887330759215557207377970167633005583933627439990870680493304549251312453545102489676251055978904969944862649895066685883677597128302511157008225998714123751864240926291433979801601860097191660981336100546907921980685027527196302120462829350083413347871348987531602532641492145279420067889784611067393440215584965624397765068838447157640865991031633699858862037076348874545408122362266156105757745053884920062285977146227443619676241648445266423466646481305370621102242518452315601754168071805216568214107293044479186061077736300415824130579099748184642576208425192567837109137886414848995644568449878979820265870253925571415878646836528374098378452510548761352707509096235904576935750348239060666724696937137450243580428122685272965086323483514896945325332351345729757817759008744745761401023556125249340471359906176947939402668034177732021981024035215981509233974757830556920606789655819117341231896182514167584937846661583302282968906517806177601399655463051153706937763561594903855513127859858860082484178050206279519981858931098454929260620673806119589863573211525322392062785394991028803755112460048575678888574108765009611565191582572606698044812908816539557420716860903348650074671745291135491422657396082080354609135637143112629589175375654056512397677124065121381578990637973109245419909795096474831576700821723684179131524063926067292369504296123930633706726684563737326879341976476104946139290993236651771849520776444378023580501339074511687398033410314651334705070368520964762293152829180440396295976458271783860873284060417197885243725660263292230452667913646734547794276521738238525930631425630099980474463621427753387091785397134312745131518071333432330006528231909065511550043779356999789212695945546279655827887900807681664477983319356070276369933862485730797547641314655402595875376262637998487227907913593486437144174316341947288778179666622177995766815554388412369954319508330463952073204632440983196376840447845175210569390909799032517348716712224877126009511102466701719279130148198991889889520534347551868290383354421846951949258505014418458259795237587976285366503928153123625252402500724814492292161660406973404513480754272584525085730650675828503718878405910326976497691555462731181657761318280427265173532712007306414744411745358451793033359320511149935001036334958826794637806961611802942556824454964349386098138250315281434846223374803734057756907059371850715248462290199319888640778802621408130687583860495061853094557121602734124450850215037178106942467179712095750166806895760497631848025831645686036084994297555536930407525689210553619554472063909974100504117732472510423717032547371382632852820204664014013573007401163094862907063703055133352504159152654558683763544638497454744326436390234922753237463350759997993906445713178793539695358120425838246371929723598650655524914792657923084539596577757937066460932767606718995256273080801984638503013044715251227977041782194757991536078507522883589978751504575902177702414487543708775109814677165172099228604836698005392096725508049444438950777776018378623318182565347110960008558096970203901099231287218375233180036378584255932684183220058463350164741658503128074305724198058259487544443676354770652259223575781552113178468096630081820787353633993321952035864928867726033128407494841049243839149121503783256979134512428856245818002724402345304159066810378000383548722622247587518809674424071506457361140240554672850729177797537716729134121323753353356014226383259595166510819644109971683408322981344068866748205359348050276220371101752387756495415604742014329940066539816154121674773463525548548175636480645485004067143867188013780346914322632080634270777604919211104540359249134143189201626001424079557280242556805747099143497977137720279249004771056354075108211995784309715827775523729798171428506167907037374331531543991674251026657759160393914596723387310273841753503758827444780378399894104145041092254964706062406337444350984027831845167410979418529825051381800216437598199994087469171797791706625282325330314267320569250333172250875012617004986902162692562664832387634970819428889581977597749948096868791724843613505850445955536529801465501103224967609816430987033654539528841077397697823616454592395587313366801842444341703740131086819313853756002175976282782644224794890999035980340959762446555781598993225013128180496091769961467341846191473841003334790568750830814920606550244125713040242446696365903595814043007792659525967402173585578510972391232857730560842629039008076473820463141810894179018400957498023430526912369763438529303446877251424114415488510801789440903024645955927129639186797552183588326230302090269615329720051215240207482128376914274189160796307987571745017605527932088350734140428267894558259002974088667568899243241517121516912850363353032255655159133118067628326124085861248727356977232912822699907596969075165640509275192881651776329029784124199246107799312489592542718725555709285391852952460615549846603019499554663867003940974498711088307235842099023246797512173877720612598953145830348978085115768403046276366044086839313241405123571762803935129121209030641598470194346156118217328294865224876132065470535581357735469566831259597307852670447687817205951128413951596555643067740890581246759897529734438493442033148456776795708558118359774424239502935244490784353888869232937538281295831026301929178031017887649989244633737697697000068482668344513363346068335332624976532068007611675047980729717538669802945533243598550161450679110171525354126584100064368616793456129854393405046610709006155684339068783133895635876873767811841806687418794222651378232226650993060453920675378750150457603431502832592546595105871631872081423364608343778399160081684912536206973641368103304805589461273458127662776159310856129239800557012784137872025043811666349159323625379182335265126453894991165932757282676578577999918809779664669457148633776294920253411948053859364148560521515825149492444790906141463321494283157899593141945368578269969806384864185965265727122152326050160990603495502472815487487480474088879715088352686920875048236594388605369903985830767772464950103662500826615708484976422367283250010549950912458788119217306034919303136246308649401402443324417663150130147562469532253179929971881562628867439705777244810700602040028768307003923960202788554503114952064414364007283727546430805947186406377200567537444476129722912918842457128103945129638635354502146939655007135181350658346513592320216955575322544740940245036843634886904750989616805832945086349438037418604087553756703496679742722713449034126792964101851676527881675653899919669088546298914300332611509917397103064056935683182436903232469835120002154251703457436542139801494393834629395371805277120935002023746603977653659599033909264452271888974920514461412312001894151668937354564920358743970070448671951898828090665017682837515534635836005039476156211752549092126248908220482429095823429826208202601748795577380828069187922812512791668920611521365235035507475635467794316556176139902646522529485157643076324961875187737693408947569910268859581520890509405199628915564902950051774271723797963964229780719485949387598079722947516835438881576723865197389804095411747159415774179769953560974469446387500986805252457456948377703589524279393223708864963947648171122259624404952231182060811716649661461596039637234724472170152623209363460119898457087141383318941630200890941407719187933347693976232179395735474154073572432004267692319646337297037529929973385034197720452285878530945868992052857692319226001651031979823593102114856535511260453340584994446768668684664817611588960386686286635661420113099065310008773119324335538438358361854244375262003563331677243075491280158607683162738047834748551782775928871642918950761793889337861677588551273270162107129348439680706342529815815483371396117649957929277289530511805972025433893498754912244663583212864653263512687775204787686110016745568439549533986648232734580151022007748423646802656644016113065104997102561105573400414363929510547087259098402851644633711187278890646831578688081774959211382632009233252228439878883900320170717549817937372420067993548192804267554601691014668938680697115056876855532706801362870826695904006170506045906530430641836124829647941296961858059293311611226270001516537787782441449616147495038850197424433701742879522059105295650807749980393909709153168084966683086835670682400652101275441411428366026358905545527228468842768681592719291034581184995581906955475994385391212073402728972108989299690360592700578962374790330032621503390624836712313748614811018472057699917471430039382739477745594451178022483447287901643776226545684128755955178624093815179459278556338570398884080212892351027264878234132310427464695322057622461732218722024607963269635292591543804001444451380304357146887779396227908073793057131322547423867951315937187880579501543314738974088048878555440489751027773371163615082150031850788049594767744749492189629069674365765631314510697358283690150301941845155556462977782381345472721166264187920862816312044138879989651237159960181558792811960943151326301701862891026238162992250841356673669769437949565969587330595747956632663672864049248741483349562997680686848764354443539021819109758575585230605478671796012611808906508104552580049533079672919678829547714378025114125278277521450201512490831129882000482311253528607804151181900880356416859257776277471936145824247488314820174984187499888740427271179550292025758863708800713944974113561580860192420178216567268868406267444069550542673043601273345486091467582747536556138415972921898319119028628571799811327217038661449036903009955463463162865890370329804069165830218881282535983000162597164875675785301571504116589858977927400523455647873153360824188794637789338366097915178032554943601067927594771902644463722260232925462802838208246507004611089962789843471378125170949384745784942912979526739842420900268683509152841051334808625392272267925337114877303796388638645010459729052929746654336888775063352050779953006727847604234049474278360009250858187630344826274436482391847868297167338218532161918853675958873919176097424303400382748947662202216288604923561789216944043485963843769064084587853106850918367524599875551887368528267578738440759193942852421686315290729558246159616928239996083462258571761223773445616397585359769771150226903749133369536581237032040654851706387517024837184289413030713945747062734576129158513938432654563042146738444707142254614057566587713475916080691555419772472889539095327990401798581080147755746291139203624309990476578349599134092887510496243345971244519249618211817140744947198395334582911301664457793075794097707190326494132033471797250169572846209399879199301491666010203125357080276378456467603727516380182222025033891414194549030742083208596209271369796918001128317388683937683252531402551682893661306423847657265040707493991047805566781239906011326430454121174874548776633028165623301912821343496252228534131867625571233154231270125478611760402314126749216579274409924217099269798325076140886043960148683528148919352793053722924635522063613748449166305008775298562943571220818120806197004519970665669915843586779159924474656291871457048555245785439494005559849070871206284077432056241120890690514885384932453489774248000069528674938997047087224614383964776900231894904934338504671224235073058771713155816780129632937864797482678487430246648589966558422490472316237261698410127421341056381995748464521102613563207525127946295445819355868466686459392874138311101822120605121950842381069065713103764799399312081561545424832362709965594085137411458274370246257153940267817911534102806844959964237667372439897190826298447177344028472742527619684504454675183179743153430367543287726999422640278832818547097261430500168552992373980985577024236562987711806627907891605761596702973363807446451125116513207564073138665754194668620652752228311738577895781991485733065077348404735733921534927827718197077671510884326245604849403730587133557393100318859807968442020964740887054501955388133274028993870817690820128482428984225116572076453326591541322750334502704612355507838027410676408394814425032527709073076244599577354530144439518068867242840379698351255416856670256217816744509904145436215755905142871025057061312732688270172909231454798682178188642210485572632598635692778076235796037053977139520763242184225419925883246530934997804747454990610846747533945139794276742161507532449217225586101664410369469973011918107581615475029217607641754315054780587242375674767372207400482283845955515785881228080135848363201300868039844359848497511164351812149243715715756537863625687324565571630377402251438282328532260083019050310797943228930472410004993093506309475575393088381339651621976623119017904340549440736631675377014365076615599841327158317820822171288724239850983251514430645523228418594497227539996519385454470704436481485258192421972136819432529557841754354375308660266344254099693085273789015095795956341935171631650139207713161521621614592634599215344830512447398442527607821494829732302001838309164439233781180187639626245104705016040017689459901303794864355011490682954511592771643033329975974751370674663682419435674345939184056487489673548165181298949575786322747757537070737103286925580229995363163465262582455697592308971691476277881432754860381814631681648679501047070919522491050617553382059778710500870214984926095310290026621474639798098066600631441112538373866384818036018283914244876628520428861943355505640288396709841616869085391526658989758711746055654346632420116385178223507515885506475988586673024950927936086696466629524686402808845360435571541505401440390592476801753961573264659215579602509802315342025766498958250501324019861476362065479457896332846674338729830765654307254089786755195707948499573373243905108229404150491004257244747180510178036308372112103439341409527746015537083886773662990008014353397948157802695316049595000298005969166345512059307094341230290837730533694150657402370636447862521344006641283482575539311804806481969227895503840134313271349160726276408170156341202232867535234437696205067722257451233362557980220397664482050299916778993053114686470515852484276769085623784876275431197314884301667893202719968713204580219027706040582983968790862460327236743174626714963634330951034997673000402697190436345726650375139818405803357213425104225401786020689587146986479100658722896527403405238304504297106960066832266790046110329885261555114460924618371358535600442830224143873404536120683813944364305923071767491219950001588067303330514191503438147052112979910150959111658767471407012823051472453011094146814246753208223878902092912306110001410030359953904773649888134265496030807100154366967520676789621826030888864030195402804095144250740711315185690681890706350558998398626247846518850418681560812796016557328459802136882154296785891921630317059474601690556256516547583464647354403129881827835884801824270522707054688232824644652997174817562278248489654354041361214349018476379690842772266806213939895762471737700341745858140260375694319167998055007966237647608124421995875826398048103641848984636903558927619005605027919711842639059216951940572798596321079155699015548825527501414027223390522547200836230150760069065447454619875925914334916166707163405573380943058212786318074009046140308384624879139939487665383445243764893812610478989539519258541957249319019778988595947845850474460670595968974042488267811001261728925047045744371679857695061118719441083207800701947882182917525714291200102402709254845223318458305263745992546633537072972359947184947507381083016478498926049030660662381298704917394431417756263316215950140815283356255575506769558784727869750606253316144648106863732722625473013448508314918197018258719541343850059567389906152894056240294782899054925869969205220388091963408141675791923078486405677306553657844230240761591654019011095955418609894073038989563131579041232085402941248272509284811765344991744328205259011763797098304741358762673524272385281334778122294129852211377052105116959509196030897927984741654424116340478875568581136816041037160742667459840299501105604176907227305195657563413868049149183331256609527420066017601722624231197030292739734182558127735638208053864719287861896782156602146394463229927237169668421908375764255507990093547304755179512150298232581103690681454580554088552074715602390285631565801960720175312776371387160733207823114369719525621298889422768704641334336965038549617441704262173696034335918591036562001882408741650568236049245084923187132778811439577719820797466107076110772260460385377874597991995295694371663720552944344392807685763928553925375275555754750752550870749882961098339695700342198847388854940300377789495485051740153259899058132465645003069215589585457602214029242921283077045245314212809153410156124646246227573118563484347280831204882104460527601029565208590109941021684380231020154595620840813721275433367211365111900461716999502448444954792617939416307335381455359333355913528257573105282059067428895694466649623740859284878004663823685981472816639050172001603501487994011097829959201529332346492133965790002699150443825384740283353658344054758759432160240145775560498184610800332523820019718334163370315209229634731181622047068991965372787450615434499208440178311175301651221675017775034998651985608612136055946052143545048812265854934788666175642138960466295630252826679173589839060386713553234534731232011161102924265321052108452221341108543822991111984289239415595552543927196847422231817607126457631867655220383441852807766414680688147611050995692838931436292068235245766968304442317507253136134438187781037464188225537795317071641579833307694890847081512758688289714116440027820747609356234046494281889313276100399203573876675159673720932505878668747737068782760580244700497027416179024140141430542734512525027344977136761600697182816694392912511019114871314893576578717684349969507606694316487158059566636515945076498161623302705505358861433311050114453400379158658111302660564989153693263954548633343446815990858721139327088517254448183462513493194892338432300486315771512826273018710852487143244992519322355193755342520384505406989182386664734847867351492820923272855937795649866858822290959024311903415188557100555782195836886243612544036953375559104642414915830523945951498416299722053056822025703641901906817725995187339936914500006640473483629333254132685750354586176536264799079494349857582746435611946414697914572747764010790076593710661673363732233525498438329131426320996115487485427397441055631630213002326730565564437185034222035879708981826229378243414036451684858897612924408083363960064359225011232835755060242212976183833215156944170341993692622593060449219405611562570671261808288534551157544040463916840282092129172894196993532172225222957966637158202369213108071449766172067389730273441553443875536929779481100855756159672579378591074346619787814365024797687554901396882064365961664277206424522016654707849473401969938750869368869602342686473948256198660290124203956373855535437274423038623794003703343854975755373187425218540813842839031837237005214675501189300205454729776836603785348425212094762249920363314721083862687348873575633175749510202064663646623447820396747695265695686718691998042291909632331156083542946863267773465586930491042655279885302363465886797029805292264414483917293949794398092181627367155078253732731610058784900486077835107451696369948472265190712693589804269174256042136899849400383119840572232228596229988728454706020669504262432380733043338767334137282033520054562776150320138184179236637489513243275545762480352953784821732760376592027047938771869976062854511905210395118836117841479420855429012911650072260056115876667401895510009399868646535436130299883269243544953187637523244176391588275018828134926090407913922491120745245765559947760190236017502705095326621729131327161975507297465296226363072300250230041583944473059879467299417552889336645852355837674168483656379003452735693473505266537265886941221917353773129546757945895980899534587376582488151580559305120349298646138180963273445404629704327303254495118892403234938969615365864938660330978710429026021982772565046203537328879659163489214017594936663849577335510755708358600003434045512819388998520720429810060232935369084299182985207842973639825681936058063762783719893186394680377902542340291970895074029238980010832744505259858627597685838973462243102411740224016097444985040087728431331197797504808556893744653585886644658157305077037659134342331424241632946916126216617746304175097336435193490905908425329238365286619575428265861408813046615209562771408634786409820028145835822972557169666380587059230436588748381822317078477883683025903697000276704380548279504068086212700140866379300854561132690232424314081515655191126193215552477024683294548648288597638662471688015697706927207070954740792700694405072984538301283482229749621369327692987755566995944890838798642105427157840399610019785469090533969060597955639875603708194272970420124782235689610001910014536353728074586405207663401832320422943284436151840583242816611367794767592181979318918874953392517204906709207098015997290890480019871835244264534918434907785383439854863982795691263648225014138116799842648638023437267792994434213494481084629105227641840224736853686402462046013641303479494291859721970041063341074247601192728175594297656544487876343388300913688495758442966768754737529612474505654026971868924368672600843595342981067043320975001783304793039398089379329029922305331246793215998891939258419292953174136721187125414947894596012203895051837312440927489273676157306747270282466817224176692434951165949470932431263058698749483869809177895212987908628291515011658447146533486789378524096920855647418881099266839741287089665475572312052060222093543766207026760313510576890465174430929706490531344849820468017667127327827875238286076286417381312077604668588948851430591126311314184345909896844857165303575223218792609040365209659630572179742665093425433541712194720018679332492692298818490255230180324299614929230200509796011995791840223003967473264055495972569957382479294989830908048002983857900505061799179681269844147768251580594953097367656531796236012572355802783174960063829319279278582587840915223691704871577084953687353861400767602125788188867981834776217643911922643320070411109181335593257323928050016181186983251140023641771047748576163284856023002769397313397937743750039338488033591873419030898757186423864973387046487829685673669035953507070667095521770413628971572528022714971786490108542358065608849116899249002541367764214454707229194253255390948632154536403986220870396549894225959432089487775399437927787767331264425757570947923556974842180454531058431935056215319875099741206914814257352393053373717255658075463246972341354070168232039632162526766767827591557538114688792216434827842746208584814299009899263941155099191148610210805678478142260685604059684540160085550407651180221662615277190106084916223039993180812936999427247256049997624187766656617111014545626140817230670118188803444397495134513179701034912292985376585619659654513510170500933807628858886936047620936339497878247282242688816322812512251781659900988630187517053798301227859687707273400991320670775679007366275746283346406628519994999399349959868176768893143538092447911198353528874215760779595688604225600555429748032461670857288244132760574819638927223274221038315567866806133101555879121059242604942546714427078862408089086059007426049938988491366198322891645252427477170376419307045937726996680161203984244061762699059337594060546050885467576390654061192321233778118015622219025436859201161890374710117776253117292533372621387211902993507926130667711301799659801414948922501882543677168894309774151370986151972891278004338609206931862790129954139789871014978841819187355225754571876852717466742227805177235387594284369036901220743893435038120090075068657980294880258191728319596464824491791860500830051885623889372545308123594817990442827768121674228367191379032179805512783403575302911808087326608504809944700540372490045967530942759832311530435648815225807792878873482684619709964034619543094768449855792991872254695430929170794501624386510728031798071118589550890122354592487180534799257475275902794812318849264329656394068155866816404960549482043489813055573221918684819824083181551005406733809061567727699171792770190469320609469249889639372859040918111113635278132950170806158776827946125016434354288950318059536852711060924161695242401208082167729187216095844826109867096760912547601441483234692759119842130778584103038977542799452353625613658332668449067917786834316814626341465696595246179452808114408524391148651842147150595375684038144669004037306257597782697697986694220334102398824673131787626244578294340810851592647712275142470512819587512290465657303712176405626903439110480420542372296204014472390119950101597269130533967054366557029890526805881008480228434769236167641553056708867321922658892154430199449625914605075942314574621101134129148155641375892610446622393673468229362920672028495566075690177375381125026108719569726380389666001462536461697753729700412135492320061074446074552535836441353990003630558912548508392887722345247180461665514870315610973128909147488123354771181133169510967925217188495381461199421825294773282785920885358753943742905309950552895340056279501553531458560242903514748880707108646296135380188161024188904228926018118994587193552285445090704430902449979840122981416766684901447840979005253828069475081435361437979985277573631949380099203800533455622834844433027921299950541831459054329503906596452360111363221063969430686534074262439170707515715894219022786555800400541938088426713356514948405048432676407460148761687113193629170578350521234808365701202214944756464633608916070864295101860282095559394220550940151663295535013237524755892044877259211311315132188716079497091592482730587785390762129039490668839447317769513484184990872238714413322363619364940172224663333729194054348606592368706801548049193001248081521201681073481432232775864958941895923700336606567116223805016429516992315779756216733820713039537864974585333240063938304325903650170490066596506001663518026680978709509170579259080960523196487408770349587426033558416950762140690785734229241993024830056021968805061460859924973800074370288283121651754902228518072739015068254339511607623479947321558005698852884977503906975247619699224703501175384286494779854005365067701236946040163923217837840897476483464453714075237682981049171674356325000167025545060938531837019589062858576328986022523771877889063153636566862342903416224191734525402721376375518771803133960814025410491205822613317202855287035031643054556135584806116934415548472151886959638802505027328831570555340523315572817456512481196030475748264917154273326835234221174637426337487946956043905960006550906297120206126932347181599314498802751437722911137281537834085908410667240264672805710122025419722015021854351147271230432366769459868997234095508440375855719153105552218619752463877335025234925729992993065285712298653726093442190595073760111785308013294742453076358041323825155985794330057960654784302956747987662990141338883125285577364621801358853934108158728122124889791444214710199811014776899761239327991384072342827960284368967060994152801713088086926057277907853783813769559247818222759065537662120344920565163551438575026618965382671034957045813829764664656457011788505075420973288461445326845322874428405029319102530817195616012397681280043662749725334409257873030354516012851062687745155845720245342285601799320915396354471341657172051753245295368501252456953589739313879427531097275751839447470084539291216788040812829160857945393003930852793425411388576407381853883379666430813642302849911729206686212524842829599592988913964964519052154086627853280620997147628912891916061828000134095536784350585131704731168370840096626732702850628406374943327723925467148271901193194327576537415381602558934212421322674485145894095787496812448360229588066447442834874919313459154114956316538708226328382858592200395688050432431317301802718591983941672095245560948750841517544961352016602077798400502563705035037251605802638500397180000980727579171197528007141772627039166177600162722798747044257898006489810020521226418853892632740109724013854815517324547270709269748856491309819439706631610125534973155905866016889963777825261305997411993498445582568460826004368423738724679875401503553092788278435185104018529009108579302607603859155696843659758823325651576146287013280774738683335679010203270244386302352618819818113823249461381226866681525034915868838793823590308079236112016657803113297470425715794130728006669842591425375524486200275418721762586680804726108791337835073440402543885196948646255381920722952366690935533684927232832562717614033072886825650176975583023850925866317970278641820500370018081320440129570259979320655346730977571986917834479711517956661934519206582342658120757740818808767385474835994118244528461504608869687977712320905309921574988677864786401303758305039886921309097114342570726402805738702439834331173840071586565645862486283747557354248920910824523454225721666109879436938012516105074988839785976521292117514937354842721518021968223116624509868976969072784151428812255189172543603792644499290696896965845908281401341142627793370540707053935161803204354560162428619601460579795325095914645345694576062178826303733199962782915143348617860981146168804770276869841818354386459741792046291112694731974718813369149235237233661259831289139677336294481903519119855209388780330082094183772505731702184416489778921172975121132477733122886764245788400107649861558238767592261812359518429380583546909437512179971197697419304818722288874638715429002099286896892504924861844824905017597464377258313858150499887746270265020200487334903838464053464362655643046105068881330976470402632686750688634105352664926730188443448729082470457687762508197139750644133090663402072506715016276961532546826723318629782842472910118947089336271572014658192569309324594735468328262727665325716452249982196611966847580735180674209846104554746177578967919900407280671623829169063696651142565298122795042229913120205265900301479011910119526663023356963335242164931834135165705535374957490318356562084339687574388941203979961854214235571833524635831176284418030026084602173214717287442998867171515931276692881031369557205993088734674568174020709691601029881522258067455101726506149611701345921790023746899194602906717071772037779523626404824288940423504420084137676303615052966462643515659344676783819621196837149656446697144285574256179933758974491997025240291220520429689088173039120771782519772018437877607751799370387298636260205069008867616365009602762129821926057008703889960387676184847295612698728034896652915394910470226251415110191227230196913921127845443120339337877061578679016681761053265768656180478971505611311152115736399931953158149857328873954500011383012264644735501042636874081590662729272869575022513119441674534100434938402538739891099787165099353746844412610176362655746572021451170596267853705417282476181815160578694198414000940320331243112646198640957624643930075845141925709578655231263099072537171213865822727185167992616410602583781585722863474974639119622316616205588758355845878253759498191153879361038196450123466556909908600106447020917257306599043898497154467338384612043243085392357547197244012536328048831590830613860733999216640116405884522862781527996778941350056652151391775970787519858510311626436112522385299422289118179525944968325607413613309105263659573531377569652466581538017712666311921156848915270198068794652398482739559953658963731429194158656982383403315368418736187239973115165751365793458033924079354918943318370526895544866907993799404137764687087366198744365990157408296682992098221052062154629064291726107075904494076278411105210958274186180679139613266931778313835311785485931890427648245835106572385769044809480335380897433858255791482968782898898651182850997357779758444508440628642938464047130524326137743729512499250758535190033206389874959707219460308380318454395860611367700341874687615761572767655603594681247638074537799463112012656992363059819869082745132842943136552634933065113357868702306190008279670659791363518175654229635469344063327102797917085697288224017510401921181114590294063559320979464193257943922954452466827022034695972762296660546301757533660339415257448163946415692069650979369642087637760749297000619332093008269809640670449451369060834259735380481241874288265651123003444068889067094363939566657204954932561710765254794291319308171292474836572835203047531552039448934942242472105105278911517477916022398784717028167593954342363386598453270086121192529214058563521977360616482224996185166820373764090413928189771598743243361557421188039498315071328925927238208057395284817096578937697691951927260954666275196947579712150729326871067477191088172680292303773222016466301144325102626214045858755094527234197706530174398394839320451451736514420854905833159733488501349168992324131663163254033792318758570174199801772382601323057956207950718715454946033501401123833206004680131065234232985875126026311891449658304236093130879900344760204376267609630276438539475629194053353790090320620779267642518241534555683525925334345899538529045381028722200988714510293207172492511909323675718703541760110616887270873791758400793212779588186138490948466275055501964374917960196297960645083756913294496208525633522249535020585440136011384470805800662749905719599782878417337854093663837094907304982823346327252771025444333503785463510845622907434966109631000627563653376322837695948629096555153261005003252536867715052193059562727724624867698131974603093516555687790308795966160414276627744357952884126980820178498091727541711843186071216900773403300675923827851774637222509046809543101025874405831875902305082354765744153631821985895101819710743843620669555641909074118564384543892556618602528793829830450680646203947329743855638836691180385275311975683381383345726726300150915661918100056409926170007596424606497710567180232458923463850016664103319123516243750049536475322661374253924274932475960398221368667314352302352218284215897349417862086184565211751494989651220374439390435733551707041162229354052828590700607858726538131452759240700259664370624454141415274786765615236916047959944172098408402093281090946492769014864994993314359531335695006222090946067656574945207256258507542258298557014029465572117765583358860548647873978484279810838455421034289242107252369657312387099550450466922408674912417406468022959803493217556480455721787606046266751189704188619932444553519054501639637354050502659488926459274140427669228878635735200790317222792837144409473933794130673620699057660231603021028467488000526641861446338510898165909916273334979458070985734816039869597988323784299627457421583454730287494612747056591316241819114964162456375037520523774201902276499327537900682266931212715545089882185270883867164724966636893958541562681691882294084271417820297678508591002389403040681423422748020549338707538659517892587234923549930441507321472644306227863625958893320103068914031155335933930294124083704601758101301414129330896829702940862711535644295338100288116544699142385730291231637240472088068986320026703925590561344350572915199183239425946599075056443053872477271334588240368118369877825672452615989436246104107834076310082697038997328627905565109715024059229448824081400111757234723236357097768540470680635167171551225443120737071082052879863428942509210107384727473736373644184728715392340184518700168917996599319954012430137532368693637759622160288490554322833701479115419147166141443047454748345234250238003049660194851953307001920430627655395588752639341278720657011728026791073747886724628200375071175477772367773509327640337141587883531588258313310824442785227774576116345792812682889705333362678039400110620940849187306868457928371561039372562737066319375609319268391784214750922474209994056962761241457929920012077205210396960013912573407062149091579663567000545546750992964757155284109352701304740626796497514484157630423815055684489240622471044482745433917353231001380112752563277333650935241928253749556065416591168376830140778055286660353022867835020784954776784247941696092192489980457458180140475788651854297585789630177161359364556968670220078388215054700544878025060350212201024194835936575474188472592301564135491009386178390157910736629663406118892360422472198520662115963373229489167620849290530901550119034504932575102243477724552029124519104454987822864539823968822547743936104393650230343323471412575641369842992571595067349574574639103940905451573687718089268357193785722047180583719254392262240294869960062335321715809973586094469962424529697765064448255442918644933571151574392047241473275857880890006376913531622833729048432340514580211702650925478930556958112115443579962917726564015213549798559461321519547360983216220276963729264976977906369414828443606174198742320515018256865501247573233763621870918553317626530673606560540344720920634277385391762989736316770729057213689926619783485561017494664681486797229161979855958698683260464334922865970907782258473514216520574407474570993098329737850047318923241337101447816365507053098169425969207750731569959266629634838389784886210115007322669425234920505008548674770172118558188053029134009829151649257990511044639085995811728678243909343709758553101896678057667873702476018909239443701499756925756062751479670826067204229381751438296763970275626921844522272494549686298716592628943858369536019746105015592992182477638151883203310402167891918797848988711736218036106063009652571597847327121522124994308985468763031092328464816074661441871123017144282541836324457363463400270258192969399502018681785447840449841707369067935873874680150169060477072101389018682188020871192024302037691157012423889060158750204569166042094102601857764910962370158134057688045968685896865628461409048910692864306779819350565062987294940217940221786214447088824505214719693805297340790661134625632993116874641484300365299529450398311976675003794579306710379735078156042903088063517241372667213203493155893969907017198831237888382808283026193005135258677551282686359673693077243502354898440767965604399586258059853913800131613312262883069644333684404187664371387350381616951410665421040979457347141472563115342215552507365425094233067008889077674048736010011966592313173571101549793902266574333556800204027355651297349386126053253221920549294130780704067933776117504658750124856429390074061136460365486756935631062780290230529672196260064120912610060423717857121509249044268040071817578882781721455352970307924516409373567196507333785811943673787469794365034874512136817550762685759363855944004519661118799186780671374545483142457852194092826158283144694982098901982611938367077917931204596953063714463422590872174988791988215625641658413782630232716921819717775846006786426568670435925894619402357984732117109188567407640331537990279053366069953040945300064466154502695800164301445093767642064977563609848551241764822934654815530422703622688947638214861476129138949749393654279198723739171847835577199173343900930579152575356953393740699177511515265437275143681516247733502869939746073230980927874438021662623685303382606493593916251719596969773003442639592023845400125699021308219349426595804804242477208477077315366220375313168143269889927816553164761743271093800009244523939981655667828783268357735285927769231693023589359401699236727626646766333890369559919748457280622420702205662346225754910206403387377012130880038703152378889285167080956230746135641204628980372830800584334157508208459365717480536386235787083999900650342926260661006873308669637473921376402352261044620157020791417347567765733720390998509657225277535848600983929704461898279729869258328650278991204363292703688901982843060566736265135253934964468734527150265196830788124325016326097645165350418447702451889822828050444523072858937209883449023274292655033561460149766315314403352921390663599494211220926795305395584580992133305534855009872998791176632476694056903267807637813488900045135202610346141308677835693503424152395879480222223686439303764500342772627940809963860462795324049004178942322002087988192542461310001668036169406488838871630279869212354926918520298744266666781930913384908565989783622029466850461221032099541114653216784883044207171829160954181333035949705452466428617294092861798731038683309839193288124459212756179330745809773404347555151532127869074109814266330303122730535623997528624792152846535282120824523003500463735375862074731893434216995655231406225677873383075250915244890958269764232731825402951549506837096699630113744106939207287193067159702284116621012384725836711160446712440319511076649845567417181989515031569454365697198912657660573577545361290033510242578040576917457755167344524294142594777352000553088542274435139468654795271055996222905627025275411077305162877449157122219524417540569292664297089101106371883221591839629846101139393891289446235855938815631943566709398148674262801441281541163351955154031264422463996284284036704553570046905617573055134289277985950972869353726673104975767543379194723460948967030185738307632927808032179543847518681382227456693902413803790220149787651368892143134179323805459421175397216140664917104262015607658848555414818988938733074005659523315898131614369513357617987953377939586982349935320349350761025026292507106056209555949539816306261403367608887561538755837888521713234659827686621034533248626178124688311245004400653869331638116829706795845056785989483668078937767793779180626694849468346506353019047878977349051370350036711330005446210160224313475917046896250940550709291667880459682569955567289087226346247686900292124873078891217711023068521965925008871985143142348485426540351586710477219841833347168512636086299998596970151984821025773738885075412199398967087288817792916798024898007432766866422908595586851054362551812673852538800969837787210432999705009599682917873406442306761080454285579955238574672041425565036747205870927732649190672539423261162648897755446695812271059072757398606178091340261972095081662710930946123895273995673623403237762026752040074037292674146214778332551581752831304862591409542671978134747200933627150007752989525406868621151610598646889275488193827452561601771542512417048084651818183658021731268050859338262639326626840618659516284660503946882471291438232751473860414169650835046009574999157969899893326562130226883721081650463851478691301336764808625038481681289069760186789602139025076058356170009363192147948380769215618577599330458103695983314808887377350306504606533924639117478523994565243355454100729255404944134681450716216996986462098487475825644505772873359754976698868071623671679700083048333706241308806064120552596438348894866902311825896800773439336341125047296416163711718810706046996689953638908119140131129307720117013561153584756231035336063030980274411827013155933067342207336199921236876811001068239878813914510635620574886574466429425328390653578648810297695334296566130082434635309997984294144271721900931710564345867791642122189545768749615931899928355102340928672133592602587504336046841713627485972116271982668664436577589948318518846642209122801411942201799106790934397231060945088891916013613439261376151873242116482627811603581218534358727032111845753393705405415708329870625735027464801083531614488460855051782296308915072574066231586484686890010920230129212340528747407186993691205200881729366834560144692968228492088884249370287370562603114266533402742866610417682045250581379895541025934010398994262050490041112269878986299874880658867138327615509174397309211505361475179474267794846012257913190820124393125075327051198335278011207379309880454475013253145657263339458746501826401790455190975078165646560970294693815784516475380167793871828354404971940916120969342391573481123962452699046653107237679326457869148311186966701457352437737594580831718071256295668773748309630980356824703380129439213746033712091941208794481913190625378914543796713860445969575116798873567414983805967009085711601029149590643050784635100932553043106370103954813735503659364439015256162172414675756650917500642674859726720764559256951788300724106101037679766220789450648868086999270126926960182595393742090021635146338274625746887344247056246620623562679410658246915402493739510299466459524886186185920624606726578055815090635646074497065289908437043107553020828629290631292129468851475308543220177328195309209965109298876608770325597528645460160088146044773378454139378747339148795209419407805651181832182067660184073064304940654661084703530786535953647483950259674994209636238082771691306048806157177288798649079871256604879067757438758722659239821402874599249617213021891378549275821469245533784535818724089541162356303178479647268540019421722805630068250464383238595562690264565891836085476311016450540087666282511451550569882747919866603616671654033519677510396111129171826603684718805382941116079311761202312772786251675488712387909267958815321330255737321778262903302468759054409962288352237595592894113162617314765229541321650258605353585922871456734593236523267253520944726288029741848707721889398722336023841877162654340503851291729996108835391549581929741333712953320146283472855653543320737738295576579763778304095418261083675589203742480585010328026320660367541826714176216776237602051038100572067799129783096099233084286982222654034674360673508905825440690136923473009920452859295820605052438017514591380741824516114160932040918322873902144155424512971404651010537906760678485951668904462156754319296791850562826199815302186814968452951272498383831161893118825027596569003012073904414221747516740018329702705558745634975270060560979238913867724202885167967145111894246238764256813989387705999264739499781863562152276213409860678160040798287740626572658607271212274852916393099075967856488187630349714036086622099506198741213282256392928023760432062095329992411913523946380595794753692394523922178159290128286602626991677568044746651855358808761425989077289341113124535226052523110532319441420452297726420749603079525502738565354513535747770838508744300977542299210455381893800571813981827284681147863043369588048789561307001678778252523041132431616571078027935167003285052604662606322446051291346702699657830204858119327235022915310635070440906128079195463963228394649326384096160393713238612932306392175842723146261730038614155877027016017599180904463158438158925818360605298380883595642117063073012736344146064994175285263183652539235188190045766599222050764866720228296044377183320101066326355100856432700669177982983320218136040390069081204235139499936481997995479143216473822340880520679515359464359561185789128079498810473025474035827202758416099276686294721848348511727526600600742671629808728117654187659272046653934632407877533037180087090419141593090486168416008589571535163927868713959838247425813821490532495931280967969340370652611302948547158629848196896614025066911003899047621885196518609267352899544220680384369891042756862590373089865212819463974135607221548770566871775090850046211734147330748342530732152804103077939314708776931163468715504434537227877420971482225150865815567968786747351016817767240662140443954108198462867714212204096999492747941976413244573074733368952842695565964816568317329664747440782931176749225744404330598422226596492547314132136074401724017236021037864789181984348199987114568511146198362284359729650463054033559232375588223500349191840500116000268487084695777373298798008609435216189233582015204658446600767991176042949632674276336488589950225555573918678676965847342362603170350616392096658465545030741683264189517048181237173091190655465579231443830864817375796917782804667516938040298601513196195043915862349267477570547032705479353037651906517053268092933958644334814403431304739031373658751516035321011754689802271324629386449354927895346357601045581955848875703844196882196950711527909563644457720459525422963327562464304846159562464687381940873016936158397375633836787327371608300517043427625017972238371900354376616020990918897500621938752717035392394941743482524216636323783812771120054387553602448208752775613520832738770864900246882608370182882540895539279172125952478797020236474279892381803276266530852870147630459194834132904765571329201725661094485406573522399483232627962350909340371045964744410205908873598383625562563084042794828886829413461799369851526693057125517428161427694910327169538931891005586994940517359093334518987817910764750261235661519655207122602816927720215081790820723618539008306582190657428501738427871376842461940449625366400800842543833829916872972515010622334250614030458240676487288755569606366642354290851264818272740468519775809941821026178387427810443556207307116630602687716474403514718433238700167572504050460998107811211432835180873416240010166239644740953712530706993330116364636324607690613437745065733277770958205265355419753887172994820424163537449439438482184726771285016216307550196817858240454281462791886709645944104939748732350925253349734820512498112784753511032528955756473191566739372887725110866627015273580714364710137261909177564274705069249672550300666122204162882744271558557226171808534074451827279520111022819751241640989488822030250327935792732585825182189555577831625082431521817336990186522415053958323735622346846540107023181103128971951318444474133740013488425524015922465716596797716908712217792365298924328526379462727579634804780586926031428230626800574917757429176442828055592099207385278802076440100332067748306635864925773839210463204952476739918761108485654572838756827082623121171967356991639180897992181981401993590392411991403784943943939730902366013310903336663777714917832796684732560785317594201489818289961115488741272190838737159318721673014073821264413442134031788306225399883100222187224140952861115368644545248221173214173679808732173832001004731923553538321810264842259261922453787168734389150156649718156281651430400523909371320894924649102166032661272389741113827743218004820871089390776902732287196854435242344907482229016858206358123404370272590031084681817100531345605920855314705459504407961815763645111783554857839905177436327844672474233228438640092195783681284231277257323540866673582711987734221927907230216165919188080265274937950625408812784221031583554908299398717489573809215331539816265830669539755619982155858578064784868279879944588282134856125630086799769938045205374174145706899028476550325156164929886914278399761557509437278806634041293205044345229092383539259737525016742148999795230860589830897071501126868845470116517525055847264465871898165311605206073650468185416997950480989035976472542425573311433184706966180565432548149114132228278927345164748701179707651434510794168532938478040771904282411271270804644113485618367975914546202755788375684202979383736848092585214047686076982496643523871756541283229962868436687783088052189786940398853440827812568484025195916948225730915998386930575246482051417986656143982323349263098638015710863954470638345346093831363380734963382493292628646988399027512947207745368337649201377574605048298680727966999087423397760840516642924713784900877434320719597445771365356945724423911339140768488753615744261104114109452590527729038576109380069762783982262973904093400256284533198967915773267307760530459841485158105036278465759867213451236337733065076047194431525471255239900714265207158911439959334317986167589275622282202891548311277167411259919726667785501925742164820588920388583118120583909231329954408171597490245182895801055231586014031862404504454885312566416380494118628829682759597486484889250669503863354597127881860034921923067123480258413187139621347548935725334695737374910806005433950459433316100024616014855030099384977146316529146001762310129782507231893104489639831560476524985542254919238412324329166667899624662329532861442380359275395692688924457177605875781009127499452756541164632417914063705388906811974381133928380854552591563600126643557479120549001299415052755001540143105741776410766400132989423424474783518025538899114317166280542656110553461195426200331102343053797330410364942226978790541477600947805248657397606623965289863306123069114288688409924107873819406783441797234068649986044345084897931014567018569312514237623315387180994397727376492300385921216098298194754902876163603950103796979104029913822122896462070522497969769382775885330130178410062438560507790269892826585335726211386589213978087469427922508990531767971071002328310723993545879747827255286803573238181060443531269572908128150622502592984336979166797144312579804082267977717630810446487248607903211258182352815800585968002964433882721971279724543801297167878833108128683842021542410244467504088643020994058662330475369835227898185380495842268205292009856943170405419922091734972437331758327366109740365607315495520635773039850126263146715008048115659745061846856020195114595204447581306042344274540942375542619872263543054610550031189906178698260568008347870638833629616164446552941918940757176711913102519878474406940707927935562618843699251510643900835591980862132251643364028454983120737188420682735938207345852670749106991808067362951597898968412914356165627570931436928227683012566979874831669585835100526666235555037994274776356317366289604690088479362890868273654551460036025937208594167351804052044568247468160384941195810443352940575267159813055807958278930329451370570199267147517321922553268412475098968269781776836488268157729577297940465487405357373698634199305381643500504174027234800924204205249075887008955543621202649861345915605682159235699829803358092168907035413363427606879586102652560809119548873582502109439871357667911216728518621084556638531450614708549034227461569650610277503933465371705581245098965357032815034648110024088770156936999744001996363856648905549240787921263849941650796545628355698986546678351872416305902450936670392728271692904827885068607335370617297336882853334041414313542693275358327002070154913814684837544820411389524103953080645733613524699418836505958803798842559301582617260832906256944605036820055249710630061586762091981695089795536107183030297543677244000709384885556838506562618471802976545412686011931663808136135270422015547293868356364671737979847502144385566708248950737489498296750158730162383120716856246286760848992756230199771863603352291940149251086985296866232735015917933162502950490285055528733546412795069133849040930266111318636945205159435928094544491191720492197389499470785321143162574515072281620369481615164077419978690099730123176658385677873208583077258193181896457840671296224097043016409816240170185273809092401883022572452295225728518817558928817657496667378320699590916087787685895637484454459695220749297701663771979888851209884018390511277005252640461142174780496988103991036192570919455334178711437659337407014228546617758089120988570600226877435397676791095325990852188447855490288598145329310531819229106900229093356632709815381606835195173627006589932632557916558958838844883479590942433746118987166924446923957578608288603704463492459937782041396280598231063077987907392438049360140604587271587450844863358691808230051189672851884283976531689519642260435358888123581076409413349260296255792636844603112181834682046323762349329993879484087459319388915062877642684979643634777873768198818026207810498443183818924984577210317925782080414662394040408125984527238337013877115894775552759185605418682291825123362639086113326199832259752045786029979802964554641264210904374586529769982531384323336439811766012318280041249051989919414108193979923517598058882811296685154081824498334980670571922823453133380671796708189931517504279815098448385703971501480732618816324582735595922138205670295604305486209259377076406692563480787998714195378070653661642651829678537180804641709327718762446364331220990968609936166821120686277634141963240759903624004007925706812139135015604823437378311010669707413358706194191279537762539973748684190516160918416275947908689449874913965471478986502994087547339968010733584950902288487221925616975541788851073035866025207924263287070317483409831453015816382870434683659622667354302978568630833868005295687514342647702712954351009991628141476981915294219976009318687277038467243585038616516029480693598202340679685206618076291790494782680698658214438959252052817743902592944137269142679807444002644761768604911041739724379646940743170205098240784226452519312681249030524792186951596859306650294417824544341540674586688787301473011323458036943533998170563827542104764011661331308453607736087086238291618812567613440290498050493991241672814644468234544767157668222152109430882357152259598020996402581887851274362713424549880993881179157831682733514341254212427239913099714083977209230437650087035678234270821353316340549096842936280404360057162167130627246295992022690148526273731352305495840471133161143720964406181122989408128349801774631957998024504024721296943516591981320397009119053395089564576282021775382415665918084488548390267623081984888190846510455369519598588038073554572449125755156373558741301859075573542932987475986278263215056316490659284913758358279326029437600790284855973389916645052905569034731647964182086044641361292312312816992969290695752778980861764821120047687180951969403601868504779855955961335322120170730710744623211262655772543846360817103208228583197829002941999393525070547042373406449189625901308595423803111225007537057891482344326232257093223599002806389531691904451638296251087457332356776344035694048589547574017464389950145431110610286723618892435662113329699221769816732476021312099798519637946771434395649896258506441866942178557861874906483588602255990097894825132479160403242861302066246558538653720275888839402709877753458795502453709387523842729182313844336203242475362647104432866102358979723914081421665042673692654397118392153685934619085770099023888471362004768196430552982995306272415526695582022303801110933632976807150387593137429718762699721430711585792003106240965184994475205534592285549838156163863718053226874900813675074510869430646714545316308035148478536063826842050123644807908083743274426102601081065270329342497071329612601952417050486604871328120666676479932065666385971211136895484177224082337695322170285906304237586797661204796418156363708764730738044090523174401512323728849362090731909361992060636706884362439654981494276669481124671937419453106132204972953506436564194254545595013398289087377785793255209969847552889626169059516398210825754194855867536933761191693705146733610696771332546701325346861105667174795757178387429850924144818869171092842024814931612019286403019072240889473830131975225169375743397093161392113537115727773733369268415381374537371563780825701354035905488094953583406482684814576771278387683780702777086202661255329543670233980654375253348204550217266078885593868767794125831490608359651151813292379858926499856099649994475884566595825322414070492674553152455315036378208960256034926697389342646509740709376571703702250693065470044462145868437768536068967337614946396572662531687587677338948497179660724270307676944898911625996403726125473214939644356460966191278831727977491563151997617870679440156633071655994070512220004011279813086259803137058290115825922507018163469777444199627921635925643490056430797436464366370868158242176652227829005393760450849283618208359905397886371243248136390156911876996719795214158888797829993106719178573156899233818072668324899973652177891693140685348386407797600229003820122720980975163139537123584354876616523222061910793248613015092158134272366924948187793081183495224196248704145890841715701815076466979239246421917446839773610476896167590279748805624437241175408836813432539346548822940784673829184820958112938411465836390717651922734237891519748736038507430273272473460806452846173921837634710063993265603978837134304286624379855725800499152429237421871160127873118287009429919082368870636309203431315875790598690241511557031322035073917233308004782292081097677655194760131865880688627160612232630364548272275029034008900081322438468799466729005791874313928186430353851245625049081310274312874217122112398277632914831900378767843390903128072182962087421959854417523427854443722371745961700275244429342900432265631393553515573229756617851334312304864953533153097225055308561571742496765792950620355376282446126066213754142424447143335132749410131791053097060768897797220662314767431685817737304874284750960140677408957909063396883854747942615533666632602439102924838901792086577280034157751595696493339105489020849522137388860014947059369341636548465056812511477162743721911490258747225753433693497292680657983803394456886028112069633346699825846056895183589527231018679957716446347991966777671737642662903805013331630829802600240261649608640826438494499345406227669010782157878248348436372321867365237913233373809053492614988311602499577414278580671452777006416231588700747453736464068889457617201932170996092540821649209694782146696054003129192616143391223866889112101422256841243978390567323246178074367777634498677534462051849065109416523429647367157554276026027793076905820711645084801765300128818337379352468810525339082182408317271120489102780715131097464426541934356697411415850116303998332923949344431607024976388456981919860382887132336558817252034050383137182658533998564285872041245222423671825673419555110674188709181627980371182124254213324519890333783375527488402441852672545631420368655431475374857664720850588391739090367274262261617632816291624033057833989884073690384944737523111587563747557047095119265946587702190568134756232809029287661926115189652889793047968275475426562612147617776660740287448311235231095332840880690286868198649932730452278843232678213121519968450180616605159530041869768157610714576013487090611278139113451680168585367432243187950229706186946537407206367532983794581738919506510607890572546894193739528456317996505058233612702321950341704978443094978271305501820340857189921134101131777643361125275169069314245968521292673477769809234267963234067604029033709045547307624833443837366238552849386047645823999795896881944178007769810614834719281949640292364396706666464735500800269287979435389244127384642822860692842745730386121387818243341511531736969846810374376537828606961556924093667150113442260140834272304362951150833104278635005633695245856255878127525510933262212795804137083085083696350631306778503239805973755022112989986325460116366083114341923909898106548586778073194834721997257972270562121666850184887533758637984541189614806474920121025412816725067528207787968515685670202388009074641442293223493412125726647816095836616504011672379844117138169771436012816129206091724228942901321832452539547333472494680779343287535475263243335702907535172829593638061262677860282098350324847087782965355880954484393029264874204055558033277451585613554180418342041306965252087494892079303876509290219580800898677770168057437421596379792904706433291263411153003431154135994918515377990560235115140783927756753127383369229065674829090566367798903905631369886106572945448751219503203889106527438159407129706706625656503782942021729425304543747486638283008563862574650340357134468813191915644841973932288058037956650758120665509135347535548498305741027442212616848819236422315857991879960563184139625528390784870879260243547542021283263541863374786307191757855225701582599016905774843713701353128988526495614628648974232316662156860583660019664908960606723299213025576511093971038360011580865620613760061232266474229128619969004057722919971662373287959907426702665283364263835607681357200701023645523930700550844368408722574886684961920270351458009362009972589722863347822065376614804176956023901521432225440461685861969893899689818337024064447324109018421018588708049546327241918514827580980814601000626314084165376525213629071330086296990592402995923718275997241072797005284410047741985733985306441589699538048565585049654900210504853875942481291077290765448330109742131282680267163847847978481944865395832457080253169370476833794616759187888640221122058620898947558209187738615067019656535056809256218646941215856322344379494115606355536299961721952075860938237089366893588929558696294109802411921197066748291858660409503838599157776673770006603347546125341190293358435620188228412513515375040598025895076717551995049663358858004791605557280335473878328559306883280081337187906903122681895648836161026587922348235982452229140486918551159652102378407390962935287741700149371182872058017719530183980929659915851096422465359856326473832063300480524379823576476645413397404621447872312918074572751862133586887623543812530331693539911672344533385250919399540389645088830732065881087239829885736595320119088404192231068983704633757307748037140975080668673280885516524270908009371230641687181829544640223882047010146570031556124736544179114507626397864283537723213277067041337715986645195456613201216907617243423458114761943709068436529836846427086872206721629345268311651552062616849777014783068941278277973202918249501680933673217501419079678649675619268291554049763336234925569623370755550768632769361426528829265341052610264813867886483696176526779390274288591547327378338557416497316196254629557524430501176692846350056415837692422389902044237661831289371716922441869094524336890310760913296782271433497142055123546978094533711890135904042436847166272106865869946430761874276698945740840701892672483400066709646731144404598145616386939190844947813894772464423184362397775666654035501444426972054029763403775461955889182057359345372236945098226436438702682878495903055523101097396988023237876469879819159452926961362376505442770877818030886145584414094528055944910478559260061554835046174528470913896019969934821875928357432276536371258577544391562036964669608177648411748174961296698507552401436797098571581924416438823184508140926924380420570732339572079263412503654101566641266631174321278263761011364706590078391878299144185435309154934142790931095954543973702197883561673509456948967621488706088346263739357857524520737203013656336467309819512143710441617573433099474021090410958635218102126732510418512713915038894192342269122453059290848902050470584912848173844474344191768944178524726316416882838876027636250570517505291442892455498648729259613878165340135888405399328946103862386394313640005770160929142428032873514222542948093248646815459677291870601697630252967666358924788910098386689052450285610523405106181379051214083288814014877283702462810180526928992320967565758354882284442981063073354946078163501961409391697480527255260519661599705544690811899045150282031116050892078293393495927362428140221011831653777164753120989364702200425516224844970064457905170818329414673417025069057898227568447886654209259588253862275105583364996048860427276816534810271721592568937522542509353429459654081659212139055435500276258398406321550586446108256488378899220906427199624401527533199031484730683887638454788284589424653667636986681067497241143058229244429132016515854642167455269510721899094269881574733131368778328693981419325662268417534169337647253067767185513831209693043167700195633040343383282001640726015816313804471705684527048059952271569365452883067813195297073561280947686625993144592022854495334557331768559584876626998648477840605447616383960953481143239040437826606417095777354607750501507050427708281277653606996429695362520520485226608517749740697114327396507819476498823043811697513536818544735683125334669849994653795510188158031454125358211142338399473628727761897350798827012411384788085719107916281166393896003143616946499151827158882953454897795982736129010659984937123037848929815395564270450813071631700981415458407490682020402697513708344282691696624532976881297354497622289536229992146193706823205793533214968416265506062501348148771703308619923584189319323841763481118686245623023333330149365361317055915069229020304018870597584255300053141639896559495664526793285082529932475365477961802315642708757162776427251174909246522735467301680757468107244664400284222262103705490121654083725396077074081085800473693462174564363296682612164252680079452309098519674646931304786870778382594380109812202757956986521851079216387701282750218956490868262107314085439493833282544953595685112260581293340854973621300991084203360594971073511894468098436926165797565191625031782729086487680988074688505032641218632735851321740724707404122834406888712350234672070900422804377295688129364598388488149537996782765562116150686074857434198767863102428943043159869952597480037949229804420120575974445678687761930307356832371354143968398757911250180869044545552230621888299311048065393315726730502430041143058737930897318335558275857965862975653577291346967915479586655718468234090570143382804929315072775481350423768281962791830752398140427042835442092379444811878711742114322522923479662448657485347838091519024085489131587449202843552600356400683051916001380279116613857177552391741861662581346524834348525672964318540329403597200742117831201689493415221240188559908590715815519701779250044194023742718668962579860787895538739584157068795347229938430845449632832586821994194951335946978708257739362011501480588297668117217835725349736261266211617541948889355554083793768655405859905973709755947593752098129195426278626546884960920656315332008061188554255513859370544014973144159398968372980451659604831757385828798663671268785996202336843321286261747894632557101978245961067654530315035966370066500101167544364619708841639313277389885728358615217825300419757359126510970617057973898771096123852206573958395406473074564695060003434072193601902240892871421357250855929303126270785943774587838554478133373062888898731536047071379144693003620687460937799738444601841952606307743793784099218810709773802847815946756569722188070994129436926992874038454712863800974176866169389587333432996023138939079340074432745682716959375042833716604122010269145821268599528062451781467766862324430245390086160998557056836970645115746646747206001010346445083806146971639461429424485995242471246293617236548306424085885985673129259294093345894770726923371575711714903062538908216317177907433072394290746676555294592231900838339038640248708863977554064472229782122718084698426066935598703311276553306473220677351545436487268877055096250420060096267212295037626715300399918066371357132145132608113266678365819079628393358726104723548449848693688702311465778358286920863168846153045426854839321481887602671553148725657087237486638844383584151998674099139977836438478870501393872071726498711267760081244940051296601702305906170715193815133839902843725691823743771133510773749484550455854989903677069073809299640419397464693237146510317336283632494067161132890739550815146995254135591854210984688083164143640467520254486526502321567030015068726124218769530874408713221827866327011603465007156815663734491765623314464339923549998130319959433815365302147115394131669777761560587933098102286640272506858083510809596339000723878700009326849479399408210953114322343995417820281863875608705062968434769687061091257551353728662995701047780142563571395901728638927394959493063603016497950344912050826923413731128904804629442695646001833487102839236199870222574836267347624199425667824702621496982306634553465150803699497703074260078767834768553847323984089387615567798210342727444019204193110763945984890871069926707499861033066954136581935257168122535946986847961775734546570524758736644247733941162109853814603859420390572305463724777920892724548976562126063297120677111686404757148891636758302946046975347466480113643455485375375543566124893098018139362508227950886073485757154994874310873783218463193704856788118794840824781360711404752301746285384061415176705037887499911787150477083452305139437958422902120930355227825959535484979273938256201592148908110539280251846213521017088077366127975755855027551508052156637613034699834107610753240198701459113251589139180553345454290940791879958612837276432348602636540996381402967947037705805329377670736801152951700619800498802702380237512810894606894506242403084631090402461145934327955105862431266052240036228678234981071661336647578341447820411135867277602306722132870928216270599487663558585987603485356163985464142604555500115493854500617492808375967005750279622742185913602852027331772630132211587835037188782232394066095893429779085508558773161429910557379880982718290271129818424050171950510892686833721925347015456347686179044172347892239384993158870025627005664750854134177985325599254414564266830899141455451347230611594717340951872653033665823277433085587400946274993363924533500661061330098334595112202391878660064603982042004372600401219500014631234013541600689847391117848905934810360916845686743089952059476795417144072780574291307120236619716551671237422893302975825371771321898616957011055121002674835353997093852418789890859225974021640311270096000700883174450961199086574782753761627500040829033427172439725177988697235472593159277899688586002696743296275052489802088935630514796712891806835958988731642929302662530559977949201081158004920043940314936913359231698081899941028907145876987692159466129371852101647308421503683728130913064882942770101888089166346163113003656946341467865128710652056630820231947857481453361004873803336318200045488537944225187316075206589500619865394862837384644850125043647082765662324499340035253297818719375240239988560700431512864185203865714322880422628447553031751879571458115683180054015078669552091099962230519490383929981732886449920378552853161032941380148815345969445241359773301561258692732480221020023479910606904487108569169619384133362960442524084246937539934697960568710383063437550754957062577080836723055681587283192952969414757830438277573564508883565036973879465619351062436573407713407198599548965188751406953567426563553257470169118578396163191031341411316527951334315525783175114916224468226860335413586689107688482525083026550191494556950228796255232300719469454979331966823119094158759081658068833418504025945361000825353399265481361112687256228003051805680545013635697547554879226250825204698993492951755920818089980651787985131302258780282681745550085081796995591264815410918852593286117947313490571393339744042505625067772447467436613178446755677616788527146470934408786386007281403432604381353909057533534900888605212417088855763608907421451934474079162449277683195110704036541347079889019109581814353955505057895145498049137806900687517457035367863598510491853031091283633564390303902950768462291383462606756307415778950350698135181400189208262938173556241951621881936029179656165217739684496938456825407315817688621935226802799958813398232900096065367058123506233156277604818071334221975366066199099564534045722270196769841013093477690701186245604357739310753719621466182107977100885178744164155004073263137097310692278016231558664694865029228836231924312004860106273195744794769090217558866492930498093987889985278819580562425571791798871966351931269229530358682139135695022645512387929291077035648132933773180699115488403621399399190132179912758810577185261046188214213909699182538612102045759116945304414871809650583226123860991066081305222686619736345280629693975362343917507009207758268851415075786189045673593649144754527668425128722383788229160030795907410193824128712270279048800000453967050357485484470334625536130853598504791617940312301431024840276039347410870233610341684112027279295818121931981853925220180212849931977845607613805606442229439237411978561928390009089737690070107853881292101420293536494563881747475444001736481442724633250410539281173841994356716640963200206127840096093197427768299377138833382151704141885612557502833520639336065226607307515424976710473079956385653657778386684074104561608566915464843180325985793898092999457639002862884255432696533191312468916054993655496192252774950385236794354563885964805495659852685684875799981674316047190904467465818232460557687215404291409363853338365258232375940855310874389097533117523556694252879208768273531956865500989967588660209657597375623148341332968403898435812743847164528819733049705272349373161359825380412690631973246898710702228943706334549508352781863677979446517815611332114809089054925498226949240292390158090727337127127513060197823546088532356947636344661600857765167735908900410582281913056704197564700351678741624790180091268104511523788250282468469137943420907706996265378153369106309264244697369046077451717272692067173404512596528365502043710712828471387597222843772234873782633765508843104124195406401426103267074735170942695885595476587494110363536005464638047895166075366879321181216510702375471952712973477879993083064386624481720699381195385073977474019005530202823780377859420810750901355992710864022969070433715125370942701189479410392213522818860280063853618054046403950628589710463679027712260648124777191433518479602077287123167414060784026163720881213211296627577498649527445628496262238759924289275993013409954220153049922175708080927403247259741912027788405197590220183793331743904076742997724748432872632013005327599637970380731188919877948466310076089263702036955100762925233904868266906858720625704726827763507368444150020778375692000667040904706023256286379002787842629616021869483650971599291557572833288710061829169867520795643845133554225850398423391796978495963942514791541685680251031022958044102890519927635002684448325727111218937183820835334705173088298486735709091042462386132588620533725824783407462603481853806759789527214998987411606723080754200726420299226084010580614864168809349739275524842859905726173581033673894619761290924056978547307590626220192486214050532494953535109605839351078052304788291874664850294357750386973258339163395943644221174728524884410536889369864169714651498965723687118535575528258699931352691229445592504153754457960252988055086357482205586908159483377439227058370926684932411516074345605262419527975421669194178298455486984212437194376799491852649605177879567289042415409849677161850143739340184578013462558504063044758830021976265442265241879544283719717263359509334241627157338708216059182759480268397593648188271098332557870453080957459947811265980387675540679240412590313231594645537815816109112885623509857256342269833193581007189730308161247806466683119621347153762698787839845901287585742554355423053141217927883982949614832653251035357119084495471790950882536508665826422104573340672860093180031314811359450003203195863141821036888089241342902590254295204257886325853204517819103871898133396114623836272071436150354616111184944292939216049708444283333473516626140071756074200157000254814354334618662532707563243856560110224637382525279747602078696024863709895424335680714621386789919134751468646010908107059924086184212937123439469324978976381807675502906796525446464012807072753569095361985001270511759620238656275600761807599120562905607460172859080667562413303848806828318109851318084983204073018004054095875346229196515538265698006351356379845000174565594891032744119103110266490799923448692092529549961057825205612627998505752043577710368716157309488843475205008685413358867279275022263338708591382466485888931106604840666035585807374854878917051213165596691480032186939659720318217681213883243546070926176135399501471264440317303432250129402143511140143224101748962111140703112487691652698312452922866204824463765532832792057161007169369744663056962161123722069663571649299501308917654739863814868228997221416544422703360664677553142597595958762540460607148120370066191105311262384340178417069086695591477472240327398681371266895207047138499795070440086320519742895230219504362279808641050843449403939063917751320157729226571448907155861703233878257491777595813107184325654283721491764408018587331264825242759183012161321184587207767119810737374663634946589653454820359304233811558148610874250830261255095179836978977725874596954895449317837464463544394815429874317844929258221061878436516710464809308458226167950594231651837060431137949354292795686176665970837521173739366851278253336691224274177560105521246049710156989903597438000262816329204272010491604259301986472943723916928393989284052515045638613145939476477448304134014572171817900068476953805677297291582979011528620633397986223881024211022180443398226765103436361093445903923576701493641640598965288222620894927600345312670061381629207869103374050519227092818324966094898556744914336067869205895652755164035926134572086116245685703216982180304166197285949310948268562629687421844390518500538825390401415717787346691662759701561880958349569003040414225467635508011026181169061476585150632376402152146685824611822762128501809685092551615682292074530797618431650830282067430372626578522989521974596686435619613024925676841079137811655513910746880760414537804426556540335243858689143627665687413365725890117126742023712861276627749004020447338063659235497861023912135428634103900023117041219627572007728460543600268166216975200049206108654642848947442697290924426165817534827414095785270690958329304706499013623809212095839646798398170198683743598237319581886146730534103022564539212877787598658637331616296932457949973847704048136365268220018227364328403320053560614437206957382607588166895506878703102390393794299838577966658455246265740424179019884689931359142547125028275929416461301275215356460485414030213094069671601299129149291800725033467870484861664439781169654111662267527542565968280759495262386191948671004670324495774549530369902330308642232754533930130001562277494548567005730398067969658493777389839041205707861445830306708372001936048028371651728499703225611080781681834441658042073928903298353149354253067304820872420472099955808525623202416132659387999315957763805703353678715377896006514281270179857135176129959069355634372892483389926840935010948378037892478601037898297629921106966318409652044245556283253696361946368992628915968516628182531973979430799927696434436271102282607579596821381030741264567713245276570044483919374511055077579536197342286037747657581650569502794250890305449453646392670591591278386056423869474925882030118341883868151250527067724673621768557303353677175990561348044792283274795366475998234986902163252890605028960791272882874567140752734714622299109709685055170724794493576336375436042206399027519211500528677967796825432543273688855417101546274333671415688547202398179091377582014700280930901498620833397065434581753726466904597975414145525923842788992395958665564398708203176227660256450849936709880920115776577744302300437672868524405322528136620297087439795562798139622238800665909882710859787400615636403855955276833893978581266869296196459363553782660191634848609251889792010931470381120208011161947753405241034523096296928779021301132671050391926366965116352871894178474922684002542685067349819534675759023788018922601311484488263929464825924488150853775003994690596916507930518153707756551751970502822857654981182665626644783545428719659063157583978932910379419891980661062939007148896316811964705709094699497768928602101604829227895467936930140072996551331741496442013348890911362221503372525417095033035595939338209313063395595638204276570321990103493765352875289985423508530725791625433209879121607273564521796414987077906821180522210912629441207033536696795480060022140434242845104748346478440683466350741533203163214716236260777903232764566494344621714600033411070321906169874593050929347332224755832902639236963224644016524474135553788634794905899367850063070318727192399752170760184703709982510496730689985636165759188674180079410169047507253239721061508077118560854218710781272071288239387355857387793392170915824401693855162227576147231973619446084604717396679921420079718916583423061207606776922789942495585693453866719046559901840828699875524657930381366937170534683881763134084780175212481658377819643656890368371056673271344608373085122479583941554265149354482625292323243796634849341393346457665988819579814335680701875444086319899457387029744012339745326543571970803421142458629752092093550106197146518768953872759927478546085937345107105172784910669638063247859975035789104607818468366318928197336020815089703407895562984427737434003009808941193743640590182137142691583187471071713245342266807907774580684278612888994547672588039017249437478737571678994474917459446067025157816252397996573881835899238902125604725110194423336702629256846385683183984564597897903880142364160449622408760263319262644600227434897071668658725455756817228808797657127765425146037769761149636705718272032579218650413504816002940287217649075692713985926181288541099291350486757847164385809752212302246441817166666403494537876110848986504233220709354733266649808656212586320920724085899130448675355973115109503064909461008020606974718317123674300990000228897866066444024745974671808580840631019960211816807144494564115908741206120675313436833923826026875101661192447732682717370426388875289137221302835529343595251966312939772006539604378547909110611760370491375628433798027502536815240115111622983816481960150514506695889431843222351735744466053015361525740095719844598582586098407373312388439398408439660828207129760794639910512341245342769091887076257865139841101145223246601678100400291949593663320675006388637720600243549339392213631415703050873335607414120043517685864474795807582480008773878137482458154637817494312389306694942185529552195135852796929252481532011648225434889212270037782936546222883821730522644192103731293645378993804145178374962395243457607659615875933160514046173664899098734575178038238085059746855576959800286885719438037001468593730446589539044350607149808561178021132416255629006227785105334942416012828263703331959239542742468331803923406573936483938830903363501917980955974598772174271700458523648632761148529255198512443776427968745253344941613838550046604306223703340658413146774741943584940795930094226479837820910493058077053548411219814101019936318484626563697602114789258765253729125515706226506190338891572344636838451906613473621532381155469829495155300785106297748996852019045640445485115312619272232646022224463688092443534331905319997457422732139742585369969174366737220792430176692567970285855423718022886094773787189616181923114547302395442320147519531685916616287491523405799347977678682090209600662115186084613463975866760602347946426752045982880046259561653789591929767326155821058779832447876109705064183729129085662815239942602033338366760512236817396247409202928685261878958665058983686165178684116958896989197306479636527310859019563662025604635778690569594453259144584119747071531545168044566880295407923982413880464727270031368207329566930980505425622919430895767248265948690070407249401982591622021117183659234950741790456153504962438524906533989109399036986778355347503239817084297500216504096793384048280286423130949608942455468087899830967745774163697762386824319307493878444129916782939838881595035933881143487834268127844511354590332027321312736132125244197668578397966387812910838005958684209624473214512190594507720867816728876320228272572675004714897423761009146513472085071515808573988801275591784839762234910181232332011611214555351135068478247011497889845572015807553284610518112353572820240320738522181656169415209347593220874658817355417080118702723817061087913585346200779204815555978663942907085939651449932635031277319372084047226338087676814960298025575471562179347873446078121802100192420135645099923795900288310586918315443043770427235980570212555169829600439546901775797709369529069718773739787014581524402122271054834079739635427249999573185378804767137695464783936761803457806950701687266138099296377307143548858040921777702059372424805571050419888435212524909733691292002278009483869887468958913732120288665296754280135265621466515825159063445758803637225548182043475852723667636244020654692006330273475891628249125398412441702855384877462031080571891322769753898009055262220520794557481883723139747072407832682754492510558433241303919829265181844657203593250600827160077900130298150443213814912886868566937331832038686478851085635288477817461597538179465179019641588164866815191078758568573875495364587578007382863625179775361370989915482952292740184425821426714680573501884348260777769546751014796477412589740817237081994209389777281561762091046238268609649706783915242520595044899371675831342161079001572965405100346014280253584345614516984313686776579488058206818969038903975913446413681127063612368667022511943516730490954055400714577601246924582208137774643568310738397077589150650969551678211318279202478927153785451881223371175566231659213999597794084421701701257929007540754853362060206747698021778083653222588450685589842591464260704790941977015368889941279680264314246308188064157346765031056123484966596569088836665621344005269843760559784856159736552219354712031122296623655530497603402046621549654813788894705413128335818414841117828679394796923953337307832017512457832639410289662911106404792524259246536139115782410236097878728299403388002058722469242547794057097119898370794794933903777021703148186300047645289853503959625063649023635202430885775894875385213179405180408316030559874721717939633544637891094466557430289384025814820629348317952926904631339296636017729019319070768504906977384699033204414237739391927535771940692180860249391109013365953162648238877291639741982988589456470745177089942816704040837635925656053369217417187642992387413181732286634898532015974361135134967969090378831384365264720148127741963779835913823342213994127258576027735464046001661478133469021588591606667363414645334728945558205172984885357866484662957919756652229707457301859234289487732211904077699647986027802381680107784770113120807503306582284747473747826604352636884663560399304802489934843433305318028111022029830503787705078585326031920408908246542712238858960739084303729759659867378428642623532477015964034206425752448114409016977435758233730076176466286108336679139155514068579054417147724569493226062438518330344549714875087587367310752525271014459052701111421105654908070721842222788458495632413794609802362109163097171055976672357734874424112978849499497157185155356055897679162743530883864746401483882854629759906270852779335855166524831676200550154179800399468473902348801848215206000157920324214281273817495436481327645841863405562369375138900282773101546528621044310189913601760117135124367514063126427801658666115355741636473739365578411538968485058467387326746484942211510716901030724104138293606565413659573918436376174807077014281243211124192765843716942784006735354987778815270745278027521567619875679756920209849330947576777156763554653994007896646021229309737876124361086266721760214174438668647275616422136786370873844594851620890561357184256466159709753666744081548869970696485874037048172539025610657208516058176248598270387336903885951786744515965000575264467398809895146122860548010120081492692249314884381706987089603173033560704730810607439760083303090161597140765215742704229479995901315985397025076248989315599246780048092971503861888022588847909510752124892990622378975625870190022823363488413534202521968812153095639756134552024437509262523293170748678665134389411582159711362368268436649892766095410612339937751811395159665009291490739627458849403240716686223558273127505729511758097487298197115390324529896207618719038169143851999816481909475909775720713676440553992610168700878790383933220577164877181904904198053754832948396017404752291182125755001107642536056999543884602810278524973903533719673581844704138985949662072866984230677864732271813819774477486118790096112514271041952133974903427338989148433530789086387837306719970733074456019294015741679275575147862601649665430069475853589333405169024350823359126951880036442830873835254342013539041545565763150145208992417508985992073226975233556461615561377182100850048460365122246318135415394643367155368030430625374863402069021808573025171326736711371335165783795135917212627284548668084441962817226735638260793919365696674976679744903690775623462940528393685830952641495383652407484656706400162595685686176419550327064835284608926159222908463539408168060839586532581546682113423212943119840936380340507085475036755296369604178806351534665065330378569574991214087974561888936372733398182831089884122353203804866472685762544527949602387821040063559236368593620868992188990523180638398067148252639986007004122675620692195243863018237961076816300958547956128462943953764341459488693703552397301651572990500569652505983891026083039225618005132770563933596400357945237067379635121659621147287209940904179875436073880182772157657972509352982094917299144051534759001163017904984122169480948508487383291305444118362148060926394544417822076232903763230758241638235622452327002017123327855408622373462528895060464783120828405872064666848006252864423333728013061505606469382549097925235720409084017282102774697044297903608071696714630596680125431764752536047504136611928287331318178640059553803064692248828030950619054595606940615308176248391852987288969814745596945512161613106795739234259956066461138287803365867840996197362051130978172320938479715692412864615345077603964081369661937092235883769047028778168746770744300814441453402834391087221789744231032171865897273910407044961358425232340791860372648605077184590225258156412390422929865770179479816128603961114625358170867745350663255030343456633889501731961188738757391313023243738856151283270354827764240041761716963341171717891266760190847719425769153064874786868077119831568296579780742412614073438912198986327487933112872570673542642169382241164442574828574345069314308781189465051156163034576498767466523780389500504132171340917180348230252134095750874901952715401844937530828572670346528977793922897893389042885731033762434571644410533933901145683852117824713322178755465769022234012179172562628762679220081547644556975756403902733923998490838140967063974350760031543079476925136967846830167615501557625167254818363409199528989061401051733946545269200917444162140190447464986711182130924216237654279580678433339376652873961645820645786112426312584564706523478214720397966310816549742688505129439628657189273196989221492870009534022330098105369651127512206322697366316410286230938232955360822914561731151766274855433153125419796831198230047943324597472457378803284431674703010760282237653903765943275115394940697176571734447803828785494710539256750905634807217584820739786631346018220920926928242258081175639549923926542957972408589369117700927234463824190454915461257600641765721737486685969235773000904765161580785490158765378362524970409979986347571685011242221102332582871308020723441929029438841944549567542375664098635758538200258099893213777375181445057631524908451253617536611112576523838449282134579969573742845502484797035982839333955673260097226357767327829125044115504908104695606634716561035401204422072561989639620966488850612512669810334686954395886763167963851647227306109905525489753857364619267735033493077811436757216050175564290839435710027902806554120626390173859159777950802345892646702412387388826426681662304653628360825906086155071740030928311186756149065138625166860689804313108635750604640403920413014026620617754610595121580055180345656718208637770693558173687125836038048117232982896864213517138652173121890976253123183770716533638542343382010641324592630811539015091993496343832596237287338747043469507456947748951443492531347964536860860249132985756194916019552724863775056758251450802198559004316642259612006313180105765056329180932358463137554043810548297762742720679457880883359333530542543338207755364930537229364587918917504011785911067625161007033884255792746161669191013060702630196302251286668912029722049076956182402354997807301123212642925577527228041231460129389954917954882299202259954184837944818632199773040034421922854506481786343072675941951938662763956743302779230478677198577325883291940250520044132404746698826300718965972269687547694305104566708979268760109739346045395318524234664618066615799309968829896834893616988024550081551371032309048618378166561814862642438440199545468245440715765076221033773702496899134039369390508243682450160536963655029894638506353415460844035737456502484253188060359455297395172066328245175233286997463094413622316687605027020459526969179203927618380666272955226324099894355738014934619819281215672169564896282838555585883461441945798457124021251911548099922211209669957638297316554287343309511741148455458687538876856405639304092041573956225982389938420621612173785934674772734995225402013481670140926960108617286514588755487708353867161756844626080822382795953065696018564043625920566220447694990897138509041021078962167716691194358892850292034696002028574726671875503816987244581929345786264190228745032463246609252456237150012147131267584651633511781101973125213650514694512385235959128848977377006188267899232935552508228278803133604769943383304216035259671692110660960354070913527845918560970796389508215797226989319784623255373147409027710498941798553197533782235009848967487495854586646420041825916879306234202762431214922111666232092960395269822940467824017648876941750549926452108162228337232368712425968546254352602882637318707548171711373555722213678324897317692190845919112364017303867198409129138516067742216390712421196679389137192798221326538165317647559405862792275187823044666080138736496398123588254927692752147931182295626218906244644324216478585967882564256278819807891283614211903878128770955357647259684843236093750328713683934142014032165957597068087157927018828249980694900887877912351076910417673087895734590901575065920019541902852983995644477603175410937831267541033535308731933506347989606643675680429022676148009291988876874157146496307497474273945335477118772751355851360189942577186019610032652057756999422792407287928495462906586551197181892960716310928922324160180648791636535549174440704261155058705354430196011933298817141539274612200442092487443002817937364561644324720163562116781023042486859234767330229869815441457920822369261001566295907909410728269602328989986923293169885334881197716293044860667571422691558746698524206509480284132491311762570026064829480966621051117671336027940056862014154810660339847844682976174717413852940992776299475759721642415516588062687454737730142642913682610479340661383881597575778489290577085380744726331338544684393058847232890108122894225193921339618801774309935708055887378244360386068628299699061758151252452715269535096945900534272858164121092019778472379275910264773954337925874631864840809031705783515083763205550699151998434201491087748396307501376514332655508689321249239021576599698190815276642951336278341823986175906868659820605597813401820719601563409471024583721549760319911046043509609982494296462507742810910758571681149379994159277048776442022015114918802874757923044191068704716225753273408732975741421788383524939807581567301449881582948558617745537056468236127290659423755511147829521649523932694232872590859620386372039583500259158226639878294120960826511599976442610896721366028769671989480909574044378897924315612041412567400934093062100864404040011391028724681768262509428533725351583806004425630950451963206032170496522202556723960477402971552955689938667549171318999819956763210932419989316350811366468276678680824263432399047810785566533509128251124830628988065395839514325664457500422066495201133973692128425563955182501366073702932789439872102798055694389983694883573315678680286901061726019158314821829383689042849998530590128648421152301239703929261403033082922200026876162348783528910344492362549314817522795997731341018475394991166640309416490952405350635664363682756532106686938290491410801611984349747356318323185013629192542862475390801349896918575893927088339292721567028647009255834719323535384532240719274805876600260558963049657301936757248372972414055809117102192445376321484919418375973298477086124866083186703314430025022759641847283370512431677491171580532471028394455675829807800905982537343475240683544072192441272135340947997017676565220313797270704045729917319249233788450262571038218021489900354523177927128160674311838715506161675749489712565588039617626352978246814764372603371240485433061868308731325945218752547861453670711701023903687493426709025241284412757593579601080280173409899445370590396807583953787060537768966994630570545944824598349645739464840038645534421800430017258170609175317761570041104316058146139374625648887244150673536919871660683057402117934176527572089832084474617353290174600204128446657135321272007374520427055500661469984091476813098842137588292380836573603533890546550999508710276589901107774628805655519686131055127417838313405068342868769884750349827976643662580389733280919762320870275188012145501556093897687815731798781413528479419950846336688393411995315045063079039453341184716677826655770702448390159679569501186707083530241504426923868446971203051576566715786274689890754548929775179068339860976514885412513370253853427443580070799293253227831728475361864117671956647441246176257220749457793153347226506058332634583769068153084970334438985439539898200451700043144760329633113482958382048785730966154278744520279870790039551312285971849109516222741984685788297217941620148820270975201504847189858229632564941664967073434586077580761224773864217493235387700013337862878252527477131862367533534001593854588351601515357104124123705970255539657662323158822704078744695264351416877390075984651320488860846630981235040039220632542436262584333053979824449336969945266192169306045842211494983682805505648801798156187796785508887702286735308493586171018544421267733697802130131832224421067578294186434117248737782501844770934035177266327409541306943889706950733941384190807944920320506515320205383996870845203702157657343430848403104786314251631720337497612093711624242074550955394389975171764575720492702800872703906972816710713598404147686861320279544656369842316923506429711453383106479171450221585084664875256744374186960638358595280190386227818789628385147519473816972629115582217418770836270414522749582704267676057387630925189764589614478562574646056643251589671021888972238744355785474650859747434244353139867235777672429422898134232659444862122285118984083291345050221235014001634161685616818080714086803899201433157472916118109759992313602676371570731154559192253837045527395563513011906226382704145919220734188480324381598921774003436044565828085255727269577952349314025242020951836554441353542477453247450070412454969700098309297548494277616083072440865941175043647343747362502741797042274637431626369633250191479427013077977337174736346290097646921580028428738092996026002958556139740424142032170218743951798785917438128960291715381590121141456384973081880785958574973116395580419538098043556373216222036931505843518034069185419615069529148958268958924388413132258719790073097537875312691730370093033633474823922153874410683340090129722356768434756326407975982536432528325217289252116387117774702220154409616942132814686724332561393814952848559104795023463487923555104057370054397183032998384283890359444362318890565079029592088768320658021301160942849920029406695019246952946710503105812507880920843191205187107630168292567679979368561690044244785637836155085665058384592855009294337671809064630608904801824034471947234272404310001633049131803615286465044160340772939729970611600420601594256221855337954357311823869463450859608628985619837386463716028810680377922083822964706662798571711902957811896455775432647249162078909803329089792703691287706372854719588990883896335248196690064711444828303484019916077698078831829344461131608810662946136499442598153626408036358693266963232523255606839455348989268125602118235543178556929632560321876123319716250831963633215063148405417674519620366353352733200719467679598962634734911325841155303545796181693357468902329645561684027614269057507807678093548583632098748797251902273864669309128532995617987003714421321256617521455942923308137848643891330079618921807696518836218316860919414826791613581958675484569035312499763545515131956130476586931799504134378940736360733941495152889411475612552685988210061438127550727284739432008693674810856723883976797549894059680325945461016796865440493296698061114833091239046825014986657833347110396919240658601815239197112985493730994650218911864752557739925992904631332128421823755955997925110502760479483775959903584634857347017339714759178403764193121008586469885942519639826403186443380087835891256207397912511365298055304346940667887024099461050032791640697098469946895947163735713336717513256422348892560181394044978104512689648202416054904414381485217831376675933277487399594718839384273528005637871294614490456246966675832092405369263978673296184335246850177316255255975211765687598108673721588565472800397382463394520615869665970419974576087322604727403906043411886149176717817998025708859581493732225342496651989598589376793145441747475161705970068589252997450037239560657878047455385685722711408440279830777724338872057427865433643060614917143121770852073649003810748529084321485721338226551168585253106986370092859889548978358159351186074003623509464271285701039811667387413131099136268049994623453600302180172432000076459524533797315056988424889610176597982980841636489853738139142849341076448755694374873812875241377494572738853863426213456710093713739217482236413375357783378861246670272860239054040455916099424422871400666764340799561670301325398164470543166993965135507370888512534456331083688865756247564374418501995623647937663336561828443645348204038724716667049868604143327670953756814555001126323635874771810324314285412593960082827415812852015566410149786188955702044981364050467426656004643137056451216491890499110367024152144598436485011424347630851514123429404215230451718106106895349323593263567047973282049831177921159776555253391791709257978954900738748247943696230662001434527227852465920036752189124301824103843890538200056353117834952953684700685936571143262878228123244847611645026251679643402492665569994764660325080973838978571161842555200687699349257637364273746041459852855341023485560704779199846828025925313672616820748106287816604527726709519326719280322066492733595888131179605029898232612644321220134560365821686160323309360395370889947417756628256409573549841412963310743018671716222720620804801763576743102478872487493424332695274890793863401414466241249438644424447252270580859452239540720592537699514837972188301420684522542972046505218876205766013204716976624219445028126836525823720814443360244077416168986135645713312664959587715834251117905011756433619047959829515735357844448953677979760499162385337830347039989992801756399723606097838872533939130022354385339389934284161803902790383419448640291272642264871582754796004612064341029750264945587087990928815039553297181385646862574570972743397802693230582981913293328259566872372328125205586318626675580104221239107891534918218916917658834427244770733819588505787530374169579978421650751157045451534719649946329678190126100963253230288536679073768009088111546550135073993636081134254340644467230526944932658140573208161283087779479177860877905550356876922389467201108127772658846331622046808455871572317831406299035309925181054885086602770784458026736934964001842554035644189086075002013401580554422923035833120624733308752409854459952205219721807127485463536116314110313750347622678194341268819960005002300695212123019731589612136496490615354629211440625322075591514006071326119657691383601237025869794284776819076579160307673520338727458308019958619287361675579858188443461019500909162145296228652056688090836774764243421778695745906251618156135097968390937685806348990740186279345857819410268945961289847209629251985150924651230433836150016183884376525828002454595020434201884132159508911838100511897249348609362454280510303890933900141968624944834010779387336695264060803607643152053277268595212450188907088402352424326551614153769017026950728312625281030915450905462862987587852372619264821116313162068561892612208634018324755856453116035974859724891972232527938476056456288868087620804354644248114971740804019194217332649199853121596361280001300084616283298836430886890834947275626783361268192605286254860318999041440972653751154488773031560445742874159642945396483895624719923802745807474898040315694674491121890766388380674429964146863691527843741769854156457836504895811578001011630559932641560549979168243124322656312555765169266467866852044104773908585119666872470147756721109238569689502539221462947578682902593716522921879360410745575695209959540767759874019798701932377782459557867276665535000734791673159847275772205608326806197396699309130649357518965716679167582024410439612081054997850880936981418453989656812700798073706514680566940870928117189622660982283168000902656154417948680830547934476683534645407733871775950879947040861835356813569527333287374950905826987981128480953484259782414793525127354625967199158655861066729190880579857841579244897444993170407398654990259605504010852207111775985223868274472054704116155598228830320114243526747141753032253565449863280855667162907193854067073081616869199844840502945192712952602989011083158356346948384927776219881338532420813128483184680197039630100615742048886052582197481462421686689220971511629429744750165945656961131826624186437581301433541650017972019979543714471739899274037028759468237919732455528910493536513477032018760227212872542393762446966914065973771129710116784454242110722540361986854308426359795018528194495025484206708087585973576241943840798551966316847361168970988492850377405145435810893855415159847358210364826100070450748946919236402945328733813077541166086767435761462397187217710103530908563141320350378787524648776269542360409335356858448714396214894153897853775516348512437314599028139717424123580709601476460500207816059942530769218627858266667595339008757787040476122291959596712447540198797559707479847704551684102462626559806732583620178331813326510617790112979941349399853933002884592708776364219558876298644743912041942538920188653933039968584752838979988883889574464556288917196832160897799278612371570396843312277503189149362996177258845894810317513074859178342969476920995912022452177270948790729782610520820602575829720791255537643763320939122006113979164518844519270705790622134375251419249206734503586684956311471593216401778358616566917675616509482207329187771586509084002352289302559457065153619673740852896130906754436938436078257706088975500847460089024718315937399316714034238618745092452367368798493138182169988143567995712508615544840594054864012115290805305493746493544939802408038873712501566740832307338978208965146419462976124315644787707879029157811318383308599348671372038059680628401218839873330562436928501648490533800151068791364284074711130966277906747684415327772520905920962202053613686360904288526659804626563686171396111148121318484058397173642469732913481445513786541086852881774386552434736210104730836218874127808331913465847484171342677778968263178032479534736506099340997828689238131900640693829628464988292437357763995945568027742853872241562573592288666107962191507085997991331412851315447901411237456894545499778931878611728887242921471144624504686009653569352365226164640127962583001647808900430098694889277183262552093153846070915980656892233066839686093953138572662036077926948439511644083721816924755286662106702842224169563480003701729395297909863114281976003877496845570474703910360912771450752693757270446328159884640250162415336790194577743261660018121350272618997199443696014841090593850458047658455496258325692791298193127260600206260016473719571623317737061002399858216333343963953044937628717917731098797108269141051164571761025277036757951085366978124168755122220170766497308545790045311049486589719926338158391785471423159348308176185130781947514926751363760597233163754127330221612354930721368674713863833150846223729421558478460625620929769831013449372788033238966372581273325356092978618271158509141708938200129341957364917540746853960674638951551646140069068523220072570347487951400851272257740633240304876315184725424562995871629189624675065341117245876375858801365483235243203613837965059091267993505002499398355874548892735682783707233582278786065650886069053227248324713267736835922410799787385809681489818269892477545171726350602374434020213677669449953977858110442793326576050187621931652005705197385129505884462570008235034490984995852361148498693087541228987368385708201530879982306095464763167541613801486661178584113718167297371473768977413636285222788305703053655138602046507820630001068236114675183405883527273943230398336723192280585933945815228460020904812573098246871752930735732836702868850065495344270937364532078211628741710105970841395126728216057371475918546969033836210641669305624539780875735273424768492571140394260907563530363958175068686864717710502210538025749607406688899178841536898190302063069792148980593914134392369584257383397425838874047657704066622256620856126470605605564643014585333726639179283388034259167584577623622923227323624735290245390592940612876436202930232892970994505387718106821317451773665980855195439814304412063717741448594081918808077676956431515999270710609862541771141037481204544760818468007363062135938383866332461605778541698639345919392767664939398963576040563226821979568526447829526535889781686569545203611267491946119362871287771998987449905576227959730194111203916019853053155952923032946218251148193472246400025528902465881988997554835094176780600321064537539307806294665679739023695189993418849424633866623501501985481838157953808246123646477977853051925408508489346852960026605436727242798710002947793202739764647004516900735983756143369877635831968033039891789307472079150750172244448177301339937937150755985957902072561195581836326001315785978502866932236113970221822800757707266576533531824709445864144035225478714386354221716871419308068955509810131271711220356183530754608006078408965050161191421097577839191109972312282904423598025603318464545954032090391302855342512744651646659588094989332738484465503760511883876152141546113053589078638569437913838622378576124443286973981998080521129574360782238413058867287601843037484161606825814921825641256633595508835717926913439566699663371241118440522623945259191294119948275391681566410533882064162898087903725831394347404462773548515491934785241683464238957826740895630248227740871334121077195495232197742999973965024849071886470423895909143762997195424380974833648137074334708973055448811957198159021475942284618342089797911124296736119387499667060962306802141699487738522022760010316244493863815551175775364631859011823719707957162134654054562145943992423287751190804794334978514369227651650076875327946695513215611546532950580479380769908464100670658093003435990127775020269707172370132664779648063422064625957021301037295433065939747584578993375592261452602371936641086077372649864874388353265044088639402384646143537291726522486275439404018492240960042694034148303872884157795035894900259793524080053259601050819154601872965741855704436143748400689409668747637530158545843756415988335685087763286741144517520151914763977817683310082397142544356620103470916127417955227238022364222590445752846551326990499950865404497308077516301103029395888264679052061292380906188681466330408393868852443654897093398406928829519930049421745539096743083197430105474327576862134827370177096851747593260904986630659941020187173387640488658373192328539829945139778215332943292628278130402837630518797527508376318823543862663053300447507837473913886144197912486682629639586704247654640495440484467350896439010351503461210512593592425526345826186862217777965812782754396772542231356915069165580767771653665098069046101421281452833633296566955913818200277139945928508036188332785161640202208776090545700285879927103209323898139975097105371432459574833208425542919447614769394870427245471620110883243548824776683770785075188746993749027206695449824187869191262785073970994977745354006352990828904883395809786578998340654038302474035406902036478789706046158382374247800508945259377503070791022932163044470054137667167444827517322247384754723921673036696516692929803626452367465942444321907980011528869628232073187460966343339682088176755044955869149798934784753090274418273590120962314702517639975961946633376659885050831507602039016682551548502845638462870350984110388601866601135430380309563802661294073714524870021399783352329981470229234763905057630065622552127012982360373904003493453196431552568125395605029929920386533709233632004264268168151522295612614380172713680651675807291669574791309622926024941087217263025413462424834207461821582112152101343101881840438430192616675054945303502387115552014881195214183371859345249781829665300822000706425439382184389752920321317488127735644441625423827643903636213512024565003897742768535732998635319555240299341057117858748662161737899101846314587955341553979855974195438677379854408305657108106406145233169705944598158984953909995365739742587431409131741378817698191622708064367128205230821448161942088333689346904134154875901238329140000798390304556914089905893261121807113387981928740143107564003310329188743346518284964335643805171080769551446959410131356179872179350519762660939393122757201773392691838342784894208266034009492301987762403867719217917446671715180569943995623038409395823274478492992047455841513049678801335131499886796877229766887601735745022710789048717566058054475884266973094762542511217276989842567263350743936108785425526308106708779744522887176849255602221660638744443021804151175239064224890956666744988877076853449511581364205357120668086092897744980163204118081249367830217918402554886457551023406994029961819892016019952938404530065111140408523771347092975436970733839758242579441689977992110425576768733280055867802238697328575072801378471088873222894305943760151116944375463639726206995932872737122977095091750012942798163625499569228724974391490894972562415844502177670793776762949601679599960907512057005099682252131553692324060608998270962406333514239970802661846277825720378481956553279650992234992485933431011579399267404075678672002589228054533698602706338848934939628384882030054802640161246800637733352936126605387324037828730211461407160426793020595029789734458070627213471864123331603449526668160608236039769503993163852285646490629048781758217827552584102782428070405892009676617484875871569546191063561208362028053024937182660396764433110771808067251477417670265687628996885855406310692866886921063032116883023465064727558068944546665873290657311593613959755369893141267468200517666660261443644058299741730654658425250774777954719718507311671741499257469999958971777517901741578912704015484129716691999076295864868142776984900387295853055389419158018747464299654687395532654034055684306303872901317137589301891540476397587286004185882297485164538283866690539382610856565158002389219804901654898513749315713247967354432938343137280777728233351765713509677155791370992680031109706232887508580437647577250706773478270721394127704871448519413465304991061533906539253101294068239436855051436936406024677214833867776753956564021990337372680357819011856769369780535694138120944610859168432122024689406530607739461596213336319940928746544036279560586866613241649707886137042114917522275963856828068062948309717159301759776859230737238983735476189958707595028958884638845251735419237413925250973859419679377992893176588799897208252553042722570312515078184179588842436157225146833799679826766008918110612597108972159412673361468700937524373407521369970254092114274333746604799430896773805348324916628167466301144507126968856461282193765443030691355116831078629125685801867864456521097322253471696842131155263084389877807357267622045244701510425445493587667541072981160719848494018319445911760970821379003483962081301359157171947037984321859684269551120459756805274387347810145906532684781082641775408886735773630111145044088917844311950239807854280660214042449363223965197595169057825613320533642854076513849830852983074448443035022828415399906792558615751720719020488488098684148043800661880354995110627907129748346185652212410122387074166081367770603433308682345815572461398414681401137640959557607587982767791638345928468723824730733783371536793150824338120123974384614269181824978042417252454679748310829445654683405792658671973970505925196108987444452433310887151642106710349710032130900289693852243173994778787802736972217462153775645710338240387687505156334365817229124090850567810227899739276441600981524163466173857161459725567397990289622705540664666817478011064521704611709541302474358695097724300729452539096627458357140449181239133689339668078968575492885956228895962978093682327392633923822716757926705967898927049539443664390304316467885480642395912513067789520904385102410976931335976358001610276502989196451992520359086638512581260655062136131603644823600400194045125925527872611882042346125586609428099404861786128525214609325811987877368905862968391199245216924699364684156786140773211979349742274800304042975607964522914620550593868645320105489128371462775617836907802193948981103900722898595312969293071470316938018864252291253345686868481405738609994544650486042999268082922743359372027178599277595322820773923030777853156576948919425575043664015581680235025258688689176280656871172011486518642815114411582935608870290755132659000060326441204048018586089745270385955622406905957279929403499199262603899909905768553551732856478623064938771253910018264526984543836683586910806189693722291619872590562320457713125921863261183921872363242035715224219725529666995228657503305139504543014249450903386991864445036681995327961619421342573901287100589497815815495515253631320517038870521063348353591849674003470897648952205398307436582753023701342849171719103071039168297669430712648465218050672566994704744210191507057654016755222581342335048661073899282009396502027753002393017463828695930066084553540315788385554966840454961372161088739020001573403649438800375510291314756685208547901005456246796449553859751001765145251356738717780682792789352785161668812509318886673802645297004731864417644803299292155827193027517678269645535794915757405155454692419169797743083331940683273638549870284234952861374941144430609966717927648912289504490220382272747449209659783986000295396276975178292586513684432933553282019748784967231026630567503625100205460444473469384218070875843369459705574854228215684284143813794872659612964009769172777733049855600235432707054761207329010123119015270647405843800148086418718450914670783862094685655159389930882791797224194521686082891457272770979842879971620467005581733364918305834287433541475490135339264729319439877404582569918736547746506038067758030210730004801050359259141923286676056419777999070629232042101781032806210765561510818315327934195972577136091220068399728643900663841174978885126778594140073403049298837903156352365893493566486870961945252781902395820819556870015746868609157010290080095306510268269123643528970900305950808179808381149559292163672096707843480601287969590850548503935928045901450431195623250295138281961777872638935256674178135139138844479118389796727006423544100243866815335756679323347986630485472975486585327929232131953663384172739315670407991723359451702284453588553540462692837883825903739605485351475550669611373756678748039508741815133929330931658510138411468223611213455935604538180831605374986797546473468588677819703692886229981606982883699880544811128535455013876734466509559525971511572736743733610891718966288120708568824035715418266659044226265856916173935597183417201997657986077704104567563805100354588095888513848782049069388593427414287986575415503391347870048037062925025766054024891464129173784694152939569817519157656292208341634282608818189031097020523373990284155995679853807349287435681682886403844058416223528141399959970187848662779034346862817486865664560088656761284189643936418409219144213573049294062253468602823021328193227229763680193133129403336596997617863745472118337861788991653234692934185929423618153224746030107028163791830164158994700449313592550114360934116918653943725637468157741150491239363187557255182140559547451739815564265754105875518693559604726279998295259868923840006325097293760619818226404088043621184652074256303510449158850413958540438812135315001828626950327623498589619705070121647546182706340635773888372912629284707158069805484298328686002247817979648404998779555628220620243633548782886364104739416815175333891292717890645438023166690070322792462772281339534956095460692738621957586066267255979182151822118530823272420834834073000363727324431501210339838914512790902364396248233944967180511370082572056832780074716421679437220449056778141057220746627434968942162531043125331069242215319656475524466162574850780572805202138197659265850759271258245218539564184475712481901496630912555934088289631766165806052980117480193089171412529171282133615475136389170972490365848652781196980479373667528217194639792922997084281332051991035869900763519543528972836532344306779492500782420724274273645166115330898810356678857722936490485201819061286100685941499976874586435857311155094883827033077099421635639752498025032094708116453744517332051482939599589973613552522012000493397743376536933666320706306413434235273276122366045070498077395349442701722925883425949378105696040107765223136467349926108842594729294511601909703958247353725207257514878618962406735338715953340999621655738812604320502530142199386749067750827956323811753912800842074508257231116290064878878346856339621378217106617551488221579096512460164767409706742289617904204173081142118731025589764780453249287404412869117323391767105776490251681879900760510631971691207064070659026677637827171871271838531394140418213410221583068065494678028130810040039150480750142734682186763583543293683333004613773658445786381877409851547254110329321649720571252462174040789638227394148373629823737641411672364229994298909281704688874716975155856538302897628608638353674955643055983013050329088242450808187025902985567915198368441493394056804089273336987078742883858833512170432526314000251922978275029545210964260520342910567209919793706330944211957837956411461327286524390924935440125520789345557414367521860110312866627350846834529196373157120458821285474760219390201556167837177107441091701099161691383200775626152531829216465222304789731307508360323979048416288374345741682562091021360800574315736271411915041327456977574425095921433706441424213952189728218804028565212834801101942830883004695479349294618839470320366220941859559551513964148014884713452300301210944819023616502340755110576389862268885831498802633875928897943786116823536655267094141510599307594283301472213298636977404792339249950734771346602597620241002572483401375676480946537249044293822175762857528167938226387787404574167008968846637342741862708508494727457207297659135221881619705018878987132627405231492443234805177194184363024612763068044609836742606318567820264128677104732170933044440506382679829383282656034088498988999396019972546468720290353382414430650875089479356620042615648646255036865043986777369137450779139749399064673155485080753117337771608124461162337155414630881602808453253138976680319797077060824614920713227278902189915389815953455384112831569621646846495597949332295607654793694609705318075617550743041051240338992019948144201060972850079201185467559248910281228035252742146687767856998039878531211342700581124670409815203000630440672612280825775077988287588104484097204491307582959097614712501421129243292837405127392736000717792818704598616612914823389098853210196732642302304564570107297203363903386885332473181412205137735972821829695051500042559990716546350432736794091881880260880052533921841050379865089712599083508513824904640611862234924436574122508863584994737618914020771052067618225020475626067375823481893189258153697031731790634342960731924346138765002241409255979027931197758580922845637264876110496645556667808227207439107819039660029891877991826442986737467481574063816396153309842792631514820739836405170557038247125810871167742204983625020577602957518368654794551292506163417943780258156059663827973488139679248146059488531394798534611813370833813160509375534903926736512431160894083623958318082964950363615997589192124976196051347816521932907665337660230778281786396083129248252662229066330984819967352772452629325684877792270146800915846242449755233516815520616183479163280903542566685460130597672707034804536291797452618496986592904613790488976618361696037476689371029227757479223587257864476450768947421609624703015912248759153406498622666597934104867344770419840070648405536011661960440032243167750352769004147313025354727038247557346252837404505453210833845315580220856264218796728491582728726092406940407080331361743587906420410100930058870582513378400109529521150367608666157406484319746477884211375837679777871549637984320117048884508079203179719884911655038379967529296579020976326697541352056485517622673504126942795471594481523642263334518965081856683771114950861134924605628170053230811630015020968463402993778152612828844664281927063164054859321749574365603257060218136863825982807813929989922830023562111740964513260128024826222880867919876028447997205843022283645484459711226178581496199585141039721198419479304944506507957260576315785247777295640831705309792393189395269626538566094897966730555066127974523686406495396515431043512284959183257264539745731990381527471562813596808979569601692575639190984309198838355466923265728612866743987896468620956757589909379921656294791923412604961645565207149356768697966473429756799181995107871330660529756931375871595104955129412323065419930891707757549832625418997369863070644458432793742340452189072897801940204179501937798314895813896655268154278954508975471476743120030136804732536548470152292900208805671529381428723300393409833860517231850410470621333958894245685459299625584558187883999987998866232922730947909501131533182464071266883859612203226310114733577606715121550042885856998280896440731394982591684763207718813673359301688159172731761093874779103692927311863323010386724008705207972341183151959497611586459585458943739412152461727689724383972355904468898930325013033536848352152930484265260051847173659783619812165677914367604981371621406790782683906934064229495246053543683056414630734464156857585479157618342737142205767154588409570505406376015615608835606176447158920004260017210636862351947240059916665416392172013172380737493962238467999718057971986472969695002556688978607105799561777406118294232841722453685464133810167682897429232284743839168132996823843158000451092536092376313423157886267495940320222046419379401965517926520908546373356712306211373491920627782194134314998061794595669952698937270423112359535191337167647509104984663655969936447354034817089910882107555107896030530728190063891021267929066777530267445361616460818230184845058264010833450992075247454926528657009031694547387211967936565753305696333337085909918810141118669534377388921924447936251933505548456705687707333754831665020585708140002993363243856044881125561891537303210590817339437145054380225114086952818973612680451392931698816397434229248088046042547118742619916504730914421166966267963644481094837359537578947715291940652779348400006879809593810058905231704327298288064812888359641619717287606364896549295268188286491243596485492372261797020546434462907804418665350840029944184571255202492911583145526128720495279568537656458851245614669294711770510078204075764868501699709621173786580091754677680134772437552957353683497129294454804535584311387479675304818620064701198352424967062070346203959385921445903888774616704898551170913388233628252729624392445402862294321758590977734762046209170215485217999120644161194693756180300097759154606904956914599769831476685331722511063088077518868226014572316050366675252303087013166662704673586629850320562497679394318816781424966773052719354405069064964417539194318104393007387514922225019915434348069513259442232222669261518363055873197008223084737446229355984513283370745525201947098646185781281511980564321471464456719419938009168672776690359847594851078714357511897954953659141595754621658386070841409743154355850592268761024349695845362263153115433797984014131163416994439436965504667249765210193510096277931788379355151254988136585368334260639410961631525941326712359067969248620495797709965582537349246832974077603850409301475331544019197797306213055962005393570396919090875943549396536347297570569913622440679803542483319525171052506360326411388086345502838873615853919069066439632962505181052957797178961345321236018285260321503674876394933974269229762972660342203555728368860558845819236052269809177836319977645257407921688341700867325713691606128820530781339208908030310469999571206960932792667935015131679697853606854482907446216888106222474081339537824491007954723972787505316905523677223316215194008655268545083033264320342000235136791030132136481976211057943366602169556099890946651505650809314432430755741511260466954584076259223038283989207734523230655234484366645086319167185558013869634999045639642864612137881838818467746802044487387269616507670200303990344761068900993334947088152726983034015109413975166543619412757598539999359873528562334194410352612736369309514463263655982597686180819514158011776201625471730107987269810224649353424445269819529140414999977509305719567782979672747890751190149297110503219964762073043576686777835688990366648679754115329999679634286546864154125926628013214078371963745715146795095140451928896946540619365864595577848544801111312392700127558293964557249425487443079900769715500689255544105743050101602303993015947313405278680995089284372826013324074391220247979599729669082000965320116859301213804618691641742131392489640960837182042470867471209848105317451751559816133018710515861640711486664712955371616260074913391010835412327019560890333985431190482833719417127396663832655468676223401864332146237613552926071593260815018759178261163127881625361638837910433449686167398300039224113439578105828670231597247225947492805619030797676131803650090625862965398311553969583667902681341359766925695963827118470210737234181454792996460002523274880400336621131923960960122963362218918157290999550718213323853138088010037036794252779977853566731154586624871960304375673425780204355204238226593400155374275616139143839594732616844924498130856008759543024414225438502894832051204642615404104793462962353638049777292898101445119314328612258660878742586480496768689877194636652812339038499741906774352300253345787827307150574587337986027030441879000081469738251335317671305059970795577502492439647027764787721089672571976905143260554579083721828751990391437841894747218519593118734289999788281649239574504252446694848753370940057013624927718839473790641109538999278858188772359576832967931650644776110205362719581147297627465182771123906262819665652474603821363489411175741907541889810747662891719958234408892846701629794778041805775630078609009719898721905324880197517598876591155309433519138324887352692876741425012632681287553049288492560893589251108861591642387462255357629821592332896826134842819387107732893837891635297920937071774720024431691055291557692803723175806722664464500607161900193700285840108125210713223080447033605197770341994508223661130111045306412586524324182294327987348393084386632277252257909922993081093603625890717906026614121139269502918772534632018386664796139203421123333343353568497647694137240429071525951653747805824330649274662447825859419285828607368372913235725571024441252392955857839611491949296724370120545644095708519048861068971418018359946757779000717000481191841552351008439417881843733222962512670184838593824405848811489622463317646436556345842014259103354822040339646153175240139762933367979784523649484253554435675291623658917759786345744830678063887787246579108588362632605692614423782682610367968530433228378883503992813029015450960720437170350745552794610346832668884193767743944666067479320271551596469396835327503691712906011293767545318669341759893755129226320370913936170935110496679853006325626980104696324156041692444304550797123509362988829172956132204333534796713111444052975213961776615318043711400358806237834414373339680985603440930685102113748363401765600798230345585387539282454844900850551096116867905622719370964267727688598081862868600490070150635692692569463818301003084991754766406026725604290708192614549642590723363150884202483390072448214312187071959994207262336670554590877733166607021211006228062760424768721798118185240355235891524999033544939343431978970506158404370907200348093043924764855583703141356607235171308026169382801506335622235543150862255042313155416079644051101390586315700739752797878984888100284110788900137651541301786246998726329841267826776719555852807684494946412124437889432188472506608993867103643657563749392606002924954418325774975116121160474777853010816311405790107238390086945354994058420145198667982744216915081149781630143020804685574970792241365327358640054631971457982186138602141239307095343411886981086427197571616691003564954845643324779587225407215941031901816420493687208122743561110255779973784394506638129412757053913694856152935903787087597566509055429562097354254985306831993205195236751646501816765389709484313515822691616403051130350823770247162849383129437753995575607163149641138496735546883573234148719909675840912554738336994349611058011585104121977479124708512906206579354594747219416153594220694773457673120096574540346837672645833717371558339404947728623749929130311472072942777154567451214749284740195476288021364723021026336410383320077492881991351552909249440343648087015519703552570711187849443893550669755980083433308945217557711221710708741656187956995953042182265178558540744440384013943622595849270516736703713469877093189710145287697451384477805634763656238106776174190893542938699770273292729339609266523246168249044138946017069567195904342518773078416073122024718032472740900999470366895952642866743682574734110132576835680903431510028391478925243302712872314120137792631989057943403818785821027693626808486741526803782151152704265030181311653423414076375156454535106730881326114536964341897004815326757145719475635212634103779880080657984572132643827614831471380279650298286879139717318786009032664304758924302079669241127423557483917285435746217146740604118721705444792354415211546411850020770153160244404838545307743319648338139681661979309436178465319556988403971655615848009449829668374542210727198724537561646278158391709920569154249910668502617646568627212617222641023627794300848937930857069700296463900238300975102923852749092369697531228257592244985579231905337525026833951721375055415270965163594134895127096860201564784288885939752549221266506250852110169994316507257142986871566553851691437465002816994383734443225228843401528113066630236720974532700641330406235488229774292845149125844747025344642421739179859450855835529346029402810107193718746269320244365504545290337523255772078250685783370622244114265236560340281462011876967347046579488079091829333475580022860820605632043243946591534170737848886344157161607480072665952105577292204582019237887475578703064998722169349663447595470256102623920441637378167046659738852575261838864520335191894157890113686064041870507947328439492139095826595430198098816626842546538827776540155829251841241790778624176254464798360229689212206690669507863590201060867196279037279278104549735875789604977200543256737769450971502037057116404775874936580172914629998044178430957423289418601607635813959212831962539108463135536597815730615610427219665881199886533429984188332097342887734612735711894628541378167446571242075008604195443836145682166299053491716974162930316701458984325691411512027856707299514549013766398170711535303817644846794323329415722235313227330176415575418624677188499195475771359583917156115241808973826675206986839919322857729006469256651533826064881759090829766848612655065497899909096980506957258107368792984780790113007128123853340723418593523368512697799546017909341146541301741916889657853487267423520141016174299269743172429050580228908245363306766300305626939687774291268161453222399387484020018072478956045100721223048341208436241737861243420975165358490692812454862977991407148977961305791620349688019175268268957484770908528654293380447543036075551230265878721600018480476452846723878453858248158413398972481322592186318883976200692190643298145523043030787861965376098452085705911512300635973692836978717416339768590093468399041360063656071026733835810160906965200061211757731489496540337612826250874175831869730383661419029165603909277678787943713341080066736900470394083883885233852127937135502174648432333990867934339222601948188336837387759697646962859229364435143908307350193696946081834089871746221069791205059199012882215133976875103755534341896355091341368958633530761820065597326212417327393429837426929674989209870515329727444889350126643156233551978771123716479585678265788740298562354768467181596516861662459656386060082152883092243174610411167650891229392655065754442966652095437904833274581995537031978600747922428917045259422212903996321726678307069654674851055504808881839216894397277861344842201006039497437793449728224136093042970881601532072864814358425973688877852937432135262056240417827245630295530896560141290552098253361080267208508132353326998631346302721892475379914611395515262050285037356390437827558285584839508113738280296397932311857768806886125863275527892502055330874855927616717156510990541724546803473669024267386091499803769488643728627161441205180721493567237864403545152615010544575429640455967986572950680847615595556735789748685543206079813506282604191795568760646461538868186412996303881522337846305638069906061083418613137627878525305451094398189440517695456823337294197032312931893792837480697360124175208839062639977098193101829286004430274294648872689118221688085088446692275951475432007086213026337864818425370809851264040128982676988234117722808530161236868269840563421001822958936526752660152306130987696803567871155628376428898039200190178780614403871749577601992393200219106339200336084951288800520098069885823589871687243602337949465049059261989058059981520064585965050062380319240798780386962163053991535172245564322282263403439927385158812587496464147208834463940830579412218684848142900571923339847165434247232395226465316538778182415622179168510393494875435386174822105992089460214080038270406542248055741538904258366963846434634461900655900768201210809999567397497080634471774928873216329927021307495337135747769394489831934062653506709747933575898447981065217408008252372221151586651364085621679644898271177281250154283691605832994480436598746333776288970648147482047099074991518007963539731397078738500951538573588117723707955831262076499658379022486245427553907346453437161653459892738233454113865689153100806800722734645258808339104160419071189450319168902323628215405073237565973444024587187572954483028627544889496775257515917472415162420067791013344196242411470655304193001738418297745032426509729094344187583682836429600228117728982781220920472499204314714564061257620018533853964924298638446871378044348096537548020370840913421292483232954820452490289172854506110574808298565079602996356637541902341317724730312478548997132823643573138276848133072833109318403721179535096463457394374170082888638908236516173434370561364990403764951035894691744261800817234946935158418743197369562871295780234296868120603407835378043259852050976135867864276890002517380082339413026241912581180503286834965770621927632892215990781504625868640467131546643076227260404842286362342241632454836919022108420078833213223680593921552434824896261383956943385014974920011890313429900331258176054133859417448345996354875757102073212082260992333427346059718716094353861010775559306581127117136899679961984667500788677633020827342887466881122806285995215711232224486849902606368886557805290789080986636802939825989286882109888688149270935689248464410959092619342235574006518814468705739561762321527881799601730320398561977286594582375387841216632027211802443371252238296154384869493512085690243340057361593591654868288678406479608268607107943207428419956871829699836877596463354078059079511868882857966879750558222317277115007685643109519058612777261490345971713591694518512334208659280443429224837572243654807302714465490115718437624966504177078422208654436660662286482149901176274106134394011615236280692268000606710606949961735355373136267122153674340020788414224072541310490205479999441085255024137898940796369287901508505824749979974604816626992635243943593049046053246840092111576187020141043259253762896578100728268542504919273942072276411423425546807732894958724492230914305308457466473210346544438697528899084724383184685961165694190805748959724909211283469853069278291195339145681163411619126752171972274140490889521484667272917955065387461266090746023321640499069621646724271590040834532508712673544954615155658400614541013396463328963737390035096513350903737447993593667383945987640767574835631462905381619015521771657112014497681972856308886559234641790215670589245930690045654454204417804109355270181684528993163235971111303662802077947288052191563493915593105948897615225263889656907439116416498413769271446057372706109614586636246706877200897604937093054998315656789897556407768998767698908420832584681783870509920401339519976012817273361185430301049005925099574375117255449004527221215294689579160540238427939993242072562223501691391864719114351323743885922391864785956364189722518912759309826031531982960106388484917378395250627456638359370046513131502487602904400597721166226798072233968975083177106007061300998998178556908897939999006043462045449109722640311814100932857957594893291629689673301890258406989626150385786090693878367142282232207372452118208231356583338967378680849542628522577375196430250157361311887909198395858289974753860805627926614898514409915674916700867380852213050869938931681746947733747198096956597081631132256925530670975694084957960229759643070632869085020272250125004805666289917371413522119730573146918353098415654137794460080724332764235731080986581438217564572270036815168930659596683101144719893931420301927405977578977260086962150706218118938045095251587218854977612040260685381744668764033882415467211096109847510085565970715111457392404779724471482817504913658890743804172188401869239377210298489456397197033266389350304554526338865746433523863765999766959079185045692208118298033162046703823055098752060196601837815113756577585439358333244318305446931092543292924225580455504911565425860324685710897380382864862250974970929025778933290153496996882288635550798157753009751794482874146547966906814025380083509944032856162426774975715069304527777250417572189898520544302348910837006713047296101448021019247648689044259985743634866399430068372122222680771762652424195480585628148198544011189108208612487667163943575643031237238111502950322935842131870107252091842686714573503334368905016669492072753045173962215882331108454135786915310926907598384578714353249883050153677326174359531998956921794765205375854020035226681093229245399281850607781138776128892761037517789725533892690124753567093915552639227907364487025785173493653051627799870463020877874735303865103701127658610957632598219748525247291869521480107754015161691193681463645005523512535143135294738638241796004029080366274175692773492619775741325778124994488312756956921612073739781066754020864948747141302668285219456127376588749383631930865983416740859041965366656689019858998066179255527032185798993887927191869302287006735940956508799287256347968110590363255169133914207113227313073782927158883765179884876238850335771129352546909530964788595093357637351076089392819304733933587298523172704137649460902331918802265240882261508595360163378084269168343744990360798266867427807727214718403179750900658328162792888132372610671811415836655625636983568413927543855460431416834897720398545372976940278639556013086732449248460212276711691023145334029272827035240163856059076705671692880870999972232070789289381098721608730918181240358690016076647153365585699582377798599406864246038692146053290347489326945425790793127248015139696443676461763497291458137018736914517454097877135997518355458071849209883778796263152054624956435172298505682382234973035038398897685097548380932208530743378250662973938779792879960209344660367984617112036501145951824837312152664947069106080520376517960815250181795770289808236151083829946750235709202109337352963932521236081016162936588705390264561470074988202307983543650481550524012651107522225159496524253529696890090960887706432810263664066130383479468997235253176747329661842259356996984700725052960679995557357813492277663121142656228784346244682853119546291636680774820298628652191409031754753485226843411886557243715852388335111732575001482196947855209484559352663320853345736909581917671416616333758510404829539156747085249915482403624052411798143858849246691681077525369940459860271997196218389854705509157497317901072808906600659632561737654302803202900861261099091514846609067072380714573326809453546389676643338994708848145194466853402603907525735298188822255997275650501890134396855837726561775479093355684281242730637085796968408594889910262101101103160818899151853277206122647591027559929886450113197324804640010011238912616875708249264135056694885792011430351017696682730112758242976664958008375185289783141984003904591863477891653010306211792706059822516400675535136508652865152813675394390898782451867551242562232029196902240008223187305933073782549359676766715576879049031922226298813011354899929184054504465179582239058287918453902491676649824249646470629010468719834471450288859548031653677442610204390104674442918781505605964894934557837833766400874708777650895908012293418758225506029163286220070819023162657740457850904662944005418439085215653035914845996897197669090299871047403833737022417423747350807436924831675965369702970924544617361667947780664446001478059914577854313747852394707537304332001552446388431608983918656712518172317594604194753716424500978985135601639179882317458924242091294190638212371114257538319299039679182838488967882190498530306830278625404797388583013532380917446961806109936163082634659292003532345638305442238569884913090868890446457606148029641415400394953231915819865006456160917590831003543485582041532325966963139692403367674065402691981456967834141300359493050714788297365830376151263095035797650467789248185627440155634409216361237123254143001610106849333200900280070968115543971355823935732542283712947698007429157663953732081895717589244104872623601163105841058637236189793764211666066487461260939663267221734834193888580014331930670452959011559857961305106931597250322923039431403844392784152516006920636126631013632399427502922272516485622672285949962628797042799177020060467690553714870343532532041270294701067653854945256033632793063420055382128560051194657743321820885935209359392429321834025160008114704431681483075416665756484400645883302073963368274977228258382817341779530168024002383568908294413497313851571268666863434878439799222694485722008550818028723697160561635764125786340147595105415706301442447040105756902246698393590145087476472403572150198017043278226080325965253602098376000440587721183226336683856490471214025716728280272848192385101115431881366723072053167314628449563233213394755561267691148466442850976341990465376332772580556946998565401903208608056317889987908990289123037797688392039464020001961758393794775416435543064511501368424691808094399288403519994671367100191462873525331821991003396510840543538395800439813471318472712654503014611083746937902652404063793769201583493606171859190267886120866907149463744584833973882668373382994670874590180016552900287612804381992082265922264886832721279299673580296537116437441123292394553686059603992439757757336252063581124777996876766019843531018603956163158225235754779328943695705839532195866970253191834807903493964389491347441197507459598606329231242336904741200529356374199835369752949182814044159164790007859402711662410378890290820093547015211873503073981152099944011958959665757473577748311995804468950734201973665803461860939908501017149820705371233873700321108447708761720211748639521569474998558797193020633688050357396217238573583731999327327475122186548393212769225751208168853375991263383694678799593948999808678631594294298443107528497272986439030559836858756930255955009597272240932095484850035589524748297466921683609871423710252434461194824932615909380417156650695749071335253954959489595917124531834645395780889485944236116061686066782489456699044571156843829196394153571968044563995940918819829416939429390867425978635017640089400275695650225239293777231681998697974283869006271972601425630847213640067014527592027484399931367504759256130353767112587409246238134770798022507441933368595435184605594258404558090130493739178776913200744850478060669443887957930640687049364654832973530302239346790259313557076835183158090976573913148966407966175605509057982402756926293079039126515177870116907082421399389447013210894786154766139912801757874213636235694706559462890116699636709034056255938434487260129466127951628388959360643171643826254428052229427062926814326412451571486795216432248099414727454237615687822489457110657005014171622887896604543926882727479605915433467758588207155930991477525117115203687300481819063920982987451175265966951757437509767275304258748907552579548808291413312341450995935167084212579431059864011339487545271892733728584032588720740631547653655472032785804601972021002990441005951037907803907935701364112684421973547815161064273652524433502742907261573148653869955261508876167877916693600665590257599983211214319949853051194941983455260333867927491310499784010273399613886148199975459065187601010901126428919492132229841451486060706157446867143446896365596424973354530065403439611066362687067276947583782067539035259824293096838076711157573679030380783203654927466102773149546564562965083381290809779897743502838950594409586877506779221409517590739689960843472262154067109015504434158363708840205396906262606517716664476449276100484290022101532624775317692300842330499189434706280158240688285713010326356611378541798433601317529260973340435826866265242850586940930401567568252728630673659051016788178660728268418346181961565382641753740379185727850010205114307610188518735860961052684978539636540213294762928866375991697754295734461875693956872898556622976309850119221165418732715681080037708773080233542518311172431779858948019500088059372463974081238891150944518130314913020211536685844542076798785765015943450747641862431324465859917996747651659348905618952087343662482751478410380177402645137276367350289194844422627321069101977759820218497296211348113632533320467725207050816187614200295405754438691654732645903149035333874864656573065873471218975470837907722122961584562372407712745395460020805095267672361085478915897166303686968061254751995711720721232887704288645723908739850870913696270936351201542370966414666517263705868078130736436673660908359162813623813333480146431758385344719501447753690368753751890628774551475568879155598901435327363018352315429468895745027104032903204618301669481327407653026745988096541279008310459495170733509536471303339517687389878019689895969820440246875829990584947845198609998538167465316503707472352623830131490156072567717013407599674753959579325883331424981807778794488200090151220631425345227494032532847718517236340078247535306606014544870150991405137231027734122289891455821773420023427034069235955119752839761011066008249840750229610592372255404132235130812824693722853059408068983175905935857750828691883860336853263821027225882522156419594709449878738445541419409126571888007197219433718378398933703752281634619207597152227534838703221447695552199738463248096490171923423739298295443551221250403419717888787884558302090550343723499431408062395380397319607202645378407774934101752001958395321735830215833721080160006298875995793300559565945664396436079298053320368513794517750020801724654449577672056354115185263054740733064601657536366203696724646246980118146042435414931169437437556378977633731731883754101201846732336156296672832187706141382118947459326764668104401292547412883648708085876067517737351174224317279385477693932104246217051304948276119338834859172627314705400084129030939449336057371521917515802105266618357084520184563071679109048857682232485610921250234254465562507485857877389139191721078413432208116403610857680146253646735516907444439271868915806328469394196179097169069656624309841069619381642929769103827210416216158926973044630867843218888044318943320114719571139383737166987962514993989432258271497117952448571187989461727706486808107917908749344791334124814990721639842965319601066593025880586334469107361550094276340415150132445080881137226020424863508896227318573351320502193170297803361484282990834186263686504838228797354960321515371798436946145909507655555042545943838480671674881835034268818039021085914271899806996772909821581392452906160272000099272372915798826344053361394353507618706083843228365528209108733769646754251613605725316214805283784231564197830424100856790554081820230393329182620717301370748722237024263220193758745297719973443540109715965629185321845036523469865616793999773671968333467665259924104718866016042509663498576468220922420527144071277995272464210233965413122282513337704204038654217088245967571229990747123727907262211697167111929301134331288728191310052606891421590085595949396413481007892221097436751625860104416976107075793145692988081986870388247691417452853207152630672991702959626443726432345782389940979979628528472593099466168160724579658222764696559288904421383475641089169214308194026374518790344546638638971901204484819409682557029403063887387031053925357883508398116536833437149870133386986176631156601817537335034944891170900398683280875870141949908716893794488106006874090667834952454335496209547388586657424065239237900382031002470798729315238629028953494201540889196832718536111797127054044442780011463408080932543317775840749262991672928757463060759708054479628258891064436019527104944487818777145368985883478177483169925456783384183317844448682591788293947444027425444481206010608618672845961293148391641258619835686909031310423101822688253674897568650190992690282039943182692803055521353561283174890663124809375511041066216233386889493279115735071449343253985854243399883828108342156885782052197244547726826901948202867298324786378306711711232615723746118785549392165652143400220249018371705075728814283762484873914042176413604722706261707717231185416256413503548119088969392997272526339061891683411418636163093124871905845736112527834346368578798408856485631339651126360532506868284803004413159838203915428380664967500149933819685043378504956236211179724054642502134560045013370847269285440661330574173263786614364424172467440746210714702671087429604649797492534127359841615789410132765385526378273140941728640154439388670042832346809081796133751279179884983685834692583590173244161019075570022246282547836503216174156818238234879647731334949592492918021976919883939327143843290407449892827930697676937486281046478416590143287936908890733734618856024682964546676684005864030220227459890019001603166083881948496665206779269050790378766928238820706992067274231230043227832011884988465645133533496354028491557514211295160655324081833241353913326565136231755356135712615552334129531132108511685387969957054206626753714804659233877616346947028096453131553345619160698399020961116572072561951346068974394219038880035122245958849347888098690070894861791703245870129169663917115879386121021943027460487306345279381401547287221273840348627586284155063345195553889741721553319717246136069531569202676307625376096092820660929189298084348433064797768200062071261821721300528885601641637095142234316852886282309268987273227029251963575746179018173267342135155528104790662194580287245099668773348780761855402728900677644264834589388838667290551140689905126048192860668877129667912621602068321921381336323318052089664041399744031802901228044076166546332792655889010989087908160720253091948075799331360472843271217478419900322210903914204667105047356426548281161400261943034903808987019645126681536994770012822128401950046816492230921944805652781818030206372650234478405445491100386712104531179897247936679579500351129730985782554344386774867465005811175400529856569030967260528876623147127573553128832149619328028483316403289669511988586713727741662594261861177965927476124203781860529766949455033180647158428963874009616782170567849500638203119010523417299414342634011257234516930276605335537067252460543790779375810614998840726131559930553666726468120880592146879906094743278315743934614772986215222728629502396970681744492564318528029807293245930684590217458843902237386250858709457120693285366721545970723235224712266576483040604482047795198677171345768169074569331852064979780932108233252749080128485331237041306860176953285570188899409196106564185114404824918899048453923625979492782020874649549942432759886826126641210467425420460076907844358624062597508626372268301508772548704573027432873755367684635966485013235629036084251568396749704724898864780771890654301133620981274889646406484298964873981982040733994184844638616181204299215354987918969694347566548655467188292657191472767513244661593349040155132781906965598599351290387927918321253845502272179056735954269117619388517411817571076798266273518240542016520769333503142929794152708811280817440398162629948340656560837060511989422969017207309171223627704802213528653165189301791132643249330957318899411588357911423908689331765576299430796390260987784810788198523379423891188285672013583599580377959017008692686721063610410547995476720880911134293999049828224110528069105107410240811821289256833090603006799078368698046825225525851243253963562748101415638204414358740050458016821447783669106114510812082054532663384633274987162054879731598710371889677295388486004483518641000326866505263918454757648683801419072022464657211237519625193509306663783574277219346571765730303689251229566407410487545278044547932489897100531058144160347297999088106604756239611662548118509288577452882423686030846226169918090983153597492074296613185068842999269671191892952959799847097729417591121603574927332856358340964782494963133811801727579385527772003006525749212442473215294993271191146010266157797432833908719394698092469295861402545741996496814335692096703481740105395297415570488866237023500775491652938255500640728061492078090226533650095571123959074211868867852935071222623540133400681694131344353411888237882314411415172233235210203111577699701111151853394306768259380361583405156668978215056148129331469427407621928919326507455316894318921516391067533217015886922835304695935109765906273657147353000677368420847484762091858508639752445140501421896513763669681608149369815668081303262976640370277230692042446584511312974563713662726660077468436706487485414555475834540445005798228563309234848236114000922999651402530107485479177043097161958525377992402388878499215939809942138984330422125216471174566801536828835348439812432957928040444533246415760541421098647323233835113980270598931070376519940077909963252258349290278458076004401671298822219849264672729634913243365268412506215470796291445742412397276431683583212504970278745139550969731722306393688278716793631419163077900851716813302195981431752932077277122746982343983668089150038539081810565784548752611833751117441732807596987663122648477166266951108900916338534547144493132648919743735066034524035441054355066652536855551012394135045896525883588110335988725893100102509652001634608672643965453773875360800350737200720337990959489175221979095841015953740178589981011961138243276825987363077623606448157096927047122211891231589538214173704587444779290845930917693037880126670945800152733540807009263281414317356616413574311969012801801030295832775405383232592185732431249897704432983799688062292904445836167258857990160597556528439554711676290103319625245125991176023313682464613460603843969312633576994139494676856045937930555062179168762623358907282020577259246999865501058567303604946025435703510170470861167470781977126397144429653014665009973931561443073934441171957265566060634407996837157837220376728683605896114956661189400022619969995765742840015996052835228660846906191993163772452891378729634483177756672904694307755510479653677732170690455657000922651397156539358252707536918417050499476390328401570906303042370941608580398341972896202283876414997595006899894641414077278495733715045680151465327361262441047921359728832454668485278409685945470397068101271369557262053020759138769979881127643138682923991164837742403088898612137782375729944834737605529251120000892914437231178776003446247229598008359597025267627052586550433884722737367013413445023725983302208339320670619243182326686908778808554117715497888906337217484622057016108697816644175210612095603445976530899341857124365027711912067826346638867349303320273784550094912032271343192241243974973217878108299537550908887293790754923596794537195248629856335524079876321748186085785625640805949975288651776687031394294927749246518710038325436912514497231773825694554688600991914387669538841528894954586706030171852255368395770353147050790809977395193722697827781882134995253203460966040401829669733509272368423740450171538637112199933240108697420254173689711194454377540154918056671957594204408961065562177089837703145531677080537364194373594634686668280869281581990227194116616008668815602610181955716153688122426943059847609737416855017298149306420995263977248537786076017510809184356670238699535703207943578308694703846639429982792473708200961119518295553389780184203892480635097705154012277954321111108413596289388057216869065492235537855916048068384471887413309618844389429141279826948916315264617389195640556220228283924681662654961854211141662441057900204449247049086067040278864527860095452805686940964931066098885423365411163604137296832959308773953605826680606127877216989187774689191257353365295979430553056188547111256776926739802804100783466757367792029355912908194909152485001242004557144655121193786430320016321875135380195873051740342398947101159312669012715458550735109586634756101309222626469400456678625739401517345783883341415199500336365782712217287066632785990222713868125512503581603741793453501781669493730665528828578861537047566991617741987925837316066235289962726977326422927902494309049765447902317912811496052995449968849090340674146439650697416433049293167390762595371365341020340233663469170612746950914277626793221514262803911975302351153822835301513122377508174359732637393451667379069535915124785346820733467194505483663640301640472627309357031775442438918481848158721588550071989242226027064806230404638541599250936813930711940807833407727876606992097790404041161701221456909379519201949825630552309007773854776476412788758343909345404411772597215655758190732787213460879039908115389575534483565255388159421141936669433474659655362146954003744900684812027848273072948228365169319889558233204537770190260980886020719018823554862685583111998261550053326988874912923645209055276504639926297203491246648687038838048682125239914705986623812434030226847047733600142251308358454109352115843955859703005767479916690152951964241132208363116487204144897374214165563725574552564374084748771456289194315664501812542775479372881967493556395279959406452476013840425063238122228615282018883409886315431709070133807086697147735425809575617467661051789028820668289319843027159724925164244345119312263129640885351719488085402759748489795424543997279049662107855531071121659568735169743141127421105800526449895683796905315331642337727594729136631393727029086746825131652642788048954995184817923068470163558508559977872661602556267825954485106281403466482278266472997951686873293818490505508940329041229364599074859802562976376492082689582522648987550880229267660793579767561260464131070193579708407185169518706207685690113813615182709107633384303801415578277764847420745617999034660766351515153663115597863685706666048885547784113997026554903536537083587426961078311747794521022927829495628383811808212243515654146689504333621729516898665662870003215029571002734809076864303384581032844474628364019324440129937494530637020126245228140649959682144600109182622374200951069418617186178980113835793888523341638721918602887819050970662001449889823136007047645705301528559497378260182761171399051216202575877896692551064404587141486250110833813010613363145599363426990688729778899460798166986174090569370856707244816274669063936040419150560430957041815274298505125318428646354169956556571994749123930621609542553332105825822505808260203404946640835047207137841575966436503855402152259104130469340805869299486639453262208980392622463829069625637304390716314709349243632340461467903614571816635563643084286152482946318169442005450323052949017365947663830014984408766649540723194343116661780515680839732905819894397502442884067367643392854541381760157277829076836222853862297477648332964064956029768095823423209362862726138517706035024967093826309438626205409727132056395642028430131225288194954203340104112014573425107336457582675959181280047410200885238002384060531935611010731027809322373846154200341738795048567631634436545950820306686363548823298996877081003647735932303029595154281095169837412214505531576218268355758122909474435474101058532170879030029205603087269997172720403703603365931409905312652797598056160021652285565701543780390569636376556834830765399072643322661687341598181160145770987047651916786990596099127115934544063466670045804293271345068742868998246215469095028616479742859535726773234865157660291607792986446973019204462085803556190304913863371538310411413188869516186409974695661156230463819612724591662952032285907912892483939901332624081280197919551436372779230134598647664863897325141161093736816281264165605613033272672632936583628049538337166804010978876026770193658228301075853131881794431961642083570718036078972287027910985946178859676291481060811859874056022789458285454365783564759772568317441227872318934938753681629889605889219905226447088901772762079758940195531621488215576246967998170445959357293991770156304596860181373067160060747181975026248971538808396533992727169476224769319367897393524725890461412751813076987279859382768799133692295181955926826550403247215548051263771091478829120545101750238097898427369972880698992128163234841883381232945747671186751405282261602438742778182144208714259765461276305591667560221703829940034341320168971256262978366090617871504771873299438606197274033936039128885412546647815020071961049790794114502578272694035740174605819903496471729515143820163812422410564522717628614334109411768554224669763840162814767169914973454895733605498485389726978670821421737460011847819849352757368896346537467711633286058596730694292136348168384472436615197003704844385735018498728630192640788286778324144533435900465246780956927424601439438546136587051935615221242352712153296870236364373825848471086031369116153639560603413336808750510902043324282656327606023592874972354553887982801639928198327613419554274824715560731115599682147040707147535455758597118171335613748394268334301477251811407123346385630645361988782444226388559230395345329586164111883119191661296441365698694184107957934287264477118490900038448919877468803662075737748928859954233750553772297795106630317489308444147151791412547281228311831168815276920568807321141425782689843105650132703010947590408428323225265585545064334122898297823545097996861230485684642822610077008332403750816294255782445926032787542295242625451674970162028645370812749207465272233935591845515534909155975859519391617418501583118270063520712736442325466286190017472827849475516416567493449616755391157516810937276323258985843696259342842092699813088247833318252515003713023173803394190919134233930172176432754733229855044733144094760245729356248499970904931622390536914899082062422171875865374771814889930723762621119777233348098918378442637106793655831279036459002769508433741805573285582091590821319570360749412840608760935350965032797976524778067117601420025568925433426280773493807199139568665343153094591088699796844443684042077786391055764624056043816736821508370894402682436102929664235948193676922345560683942459345590656615123903313388316216202977561416599057698605748700323149615117050706924872608252129516195190925061261935597352079674787037159600558423104892203989573448582975859698884142559782493097710880633937075724470112308977454895578559206320273307157153807953500699233534730639188587601834120163270525847761217368761550608288829615961623464240743224041796917590799712290175652663878345781631838497655991558044464345231264200069091466664524855531921467822576249747984524738887224364336354007863667334755715593736572027443124358267067098009877294044474410985577886377538803082384764639506048475651302769990300748016682907542128837452937234627852122057066004255655748022215481719588580906536216220031451886515663219677016248729673457302411819053796443651073667949842099956396470867384997375720375031408212277992321085311481730641392961143154202843412376391076415634193400027472102758050276598834191714779185288584503793961973804548681360758458469118322429960817164509775334975337242016980507445615487905999088538300725447526764901412128213274510595307035928081873496855730321673557618778578863889526241096942273189480553801713963934000169798800285373179382445066805469160959003649803313023716222927220662716385094022227562935869873095150651116491174451091542504036868999472823680276214076805617754168110647979305404281907809423217518439420257841562111381746412470550444594750850003703497668635971682353061423341158021363177497214712187079934983274077833221223979496190878125394023925601158533399477748841827930356251788583159319619227446947005193616571298524571521636006778301891779400883243596614836942067908934393382850458766189164944898346605222402320985530009703632625697933468947373661826299952667558720020987238256787970493063654744239793065224939434827350790322262324299505078069627722520045101503980408514651944479078695574955605329207901380284670421490725099954527723519986507573460757094717940363813638803002904464026974792903568422723221712599273539990483857811633269204290322393897921715061575007682965166070580814481790611573420720201036461299009667927233636544190727815379071527024651156736919516325690470634010847141755239378727823140962775085744440931978668146738100633527875288105862475274458072383296179645463931771865356908882766499757237696584141337994720110869368394310669071940161785556115053224621193868911485240616253537084728960569615286114661883663002261478220261280323059989133284171889677829778334878746701144565904798791592236609483329391522510973686646553332754539096793150586503680377977230799934973122003598790321202744913623975862724789610259841352110348948297956549437452317538292765602589037369876994398933137100229231550032630171475648392649280815516836246662722706770040437931395496580805965015390841627961115008181144552134200654998156995451676334606399679302215520735738980756939986542522422543863422446528889887419339056875282485294406081273825424600639545685370641122425898331947456466173746012367451796111264471043430047114222319678697517434398289403960008437085336598750292712197281256241355258109565721735078371351190970630574709364714700364360321225821028323936114795385227269560766890860556279243778743336259335936483500505281734220946807655066841370559873422717984579829992609516994869163323944583885522460368408179150992552573231623187528558119489205778650114654756070603261215755328870865324916014519757939673487176351295551453825178610931993719540643123974429099352455527939585523846655313531013291903023864274539869561284518528833472846627603404177369545816279498877277754884240487513120629300708069137144291842610920201230960536779673111859988804154028135021456684549109107603014688772959930972385312756765740588005649875589258084935343864121179862260848324650808255854375190392268371118196774797057504134564693533032626010076569997878332672736119357898734189352338001688701169113224130639799173230943893812940434658220837810743225854807932383998998981129669755778629948596877644188810719396244198417484926486576373863384474554648593421399957733983281146048131907820908872528417919424184583001937491378552850353163125882695334332999925262603411163299951811574079485779780562762316364864650374924197453938489144780514427801377990162185531482849081669271536776177956915899030746458604123890485566788637475637938079846354308833442969611193122520982660078611316419942989925495698344003144802438076498186732919044318059912177406373303616281481968797843061296185071576307982769839410024002553826334847021849013155383528479710114417868310653934886913630554749876958904391835422097669931680838894255504667798030228971240534545653984278266150210995877504028902285619711844430775106416556572932470848255428309145476544503048017861329140632897230648147134142642507163194472621833863614798415788879060645288072868167131322791079590183065850250360146950786995257076469154924312934639396481993226116960279167212054549382370435866117029327637115863715128562871027341743900866406504949985450489699836273174404176181684347196190281250107577623282817673543865470623438447710535622135432595862976901458717789980272720134188987086187090866624294590103160302859984655085302490877203764636208948058022581719434366573421015065270789907795461680816555834671707748993341162899912119779771924393848420480607688554691473631624163689042890634350335058181813891155008513369241396502788487325924583452830751339318551604923542047993782415505850804062142296397440035830513347140513504713721866222426445152181929504566211088103629126455270452656290481214658276825103972719464600133362765708633689724174841678563030512097524818390264386883798263519186575408249332244828851943173660943125538846304391549280891643685640109679177584664131042013500212803797699093760850872143651329279969067501479385028086011465533270168724045348412621808175052385065344765010834514435324870640744411530983068033283691706840127693464631212139259922959715209129144921079302810953639567233608114649040647384259400159318169834128350141285021209140937447415402351674198947023553744339965798269709065432725556742452339084198077313153301634744172232367295190084962962834424992625893723577232249006553863625853603932871186126592193039363744264095336420093713549363133987619817422334613724032455396047805391116009905272686263625506133932990964067165214461029376973185081523748344661567115754430607050031502536461270369747651758911685988928495337518138553022158675252009087724675167604916934524928352357125008126159828754910742624775474878069724449478376158969873403261416184226109333716403799815356326278588376935028677613160790235505990634030661620915091415978203996484016823681775247615158226306145331010773815690735976569857164258445881023045732537481764560741821261314539980347863762435911945994576398878713625112885767220662619561918361155247935798683419603566442080618221700371076941013223661305366856929329109685865500121659161906085193139545371018720921832719123237777702257923267168910876144561831922529148490856299052938302977722009499846109435394869591876110895682719761242724277557415309458162063222247499538353897315481372601654681287901867750642156657072015213766322513068284426811703512173836646336737899281774684703075838675316077047015557594736635798980646192889927488357235359782429367449680685075796688923120575618391182508590643789021987889607785381625988824209290876702055951077015757947068870592520075838434785255729215287653623607737504094035757158408186719522681578429881666019671152482841112985446306027762880407954141636491688986178757839560537690360407677419069868914383540729138477220955462144566217347843152411772427507322005611365340897080221078251379578978094411759344370334921212830024744946264795962132736451864804244969710671208734863154341834250453290858684415726364681706271133087878003624110232870085242667230443286083339970998082222650835043327494786557004407578095892190345942345549350030876474329812386241832800507515741461566653425054825496024006821235429890321959271416790819550555545154588601607174157296056501479894337908058810788064801004416058687481369782689693708780049531583452902122708507161374949325935421110691034684142705536398955670264852765343942636881876131965326407184571013080678266731341142064998821701038220402498946713391294947564802655622356199257720964639900521499021464504832885364947212648086171627738915708728817861436580143964766163832541548633536628337687627638435385684579389516787235883240595560495474430951982103875033366445183932456509989770886478637605969563859982725878366082317496026124184725491193443027406704445820534590661262843062737412822794670481886671502645501608345554088929318344384857099659685983286101055930574829474634994391270066052345056389001571911278426458940330850970812621608378577289312070861780435776774994079880964323747047266774432396205387359026163702818362096939286478922854685150107930991285269840373998835151824633942688817528344575800264787350847705239797624595294009660474952640161158558819603816943410683882987724307262805976502178982125612327485609376364243206051979406050021812866807775222088558970531829251155447625661190480355901658067679302569074151270059989747653828760011881112228892519695512733330766613458060863050924990972643990796350084513337147648665150378903455815105802910141972862188092720213621791801962722432141252671677499297621025920649861844990095775193272811830454938119521768104326176642621853561777115207930200796270608161521055573107447970697659851299793129634049476917113078777817444481929549475223654715341434873877849589040220020249754293329420601171418252671991485623728829003005684064412021020791772618771735991981527298091914122428358342270245020630478464907156245746170438649439997443224322762111259456186610778463126790271601223817354376218135956206032361754851766377215041934688662632937503738769070029289858610619100513434284112966588424962462125685286466879893902096100406215862179350902066003672066628735121782342631740811890240430431256575367302009654197455321235768651773892649604285910966988951537031288985392514583568261336232986432482826658180262178706657406465021228655250729941972052292816394281311232850385304742148179651187916963903089419183737435731142728556874479945525565062194080165433917320669349811203917053265845430931447774996627069632489434961778703261677782201536865394166261493220366644358025109288505187253649261227876831877884706970740978733072005587524885117173159022747425642139791984383019594180399195952208565509068999828383527644820757499105569718789678097419724940788686336331575977773673487507527218360330893686900510013400263432105904966346981894008126505444430509890201650801655660572681690045173482084752770041065705339841010420024566412608594991259473765766143963580655705820375599600632499784324439802966493058343986812941090332066944842703511440759171608521241458771934995896992212153430676771610260125997138786729753444117225879990283446371820656288128411331265927234839210614035177928123601719130909168909209627411707423536979753930951746804838466543638883224786175099341294334438537946784617846541398028448221951873120888613345302545908996173202421978731397359414669084763926933382134488034916671919412554090351148178210984358756825272830755700191541394711776399114870158906578820296668152340932090020289099337130270223439126218884062072733419840424706635606144321399065743946052080428589252028574207717227555860693475172028354981315468616005569907865835768071290878687443716883430285205782782494043971306538296263089067162665024344504974437046550253990307812554860916447397325973128655043157581182761596835508567682742135181164737509707427992110696962417995188524140698796403287364710487290584417358304396979920894904008691333979554061703427773496165198284036689263975284538962348027696245377832106721383321358949901919592694450096571259924051508023446808185615581433248278625929145906600735001523940348337914108383386057249628337675026344740073675365290967909067726659016660117479909323897951190053741498357806765099838195172298772999577873794078709335299112922756187700326287955091801352548933528410714131698552753526291606510377369498439050873399763033932164100031132360243222498862434251110908555892771198541193479149678874287231696325975090020918437142782702835082760302418863405101492051416460864122883722766281346750418056983554781692686877239812581091070165388987197867743785459494273682077762773269848725073960486256895975676640195941711017325769888327448445001511459762190346267205002400985647313279980813586670944150823835549184492880892472402471925455124109539744688927165914588242652978670465182065220769972760526704589756702682781852117772471938311838450383342227751276507682196559341388214988213193974214093614537016933391036591431627957424958691290142886128130264456394005420279732887565603912864326487855699225702974429215503373294747904034415520236804501381955055717080589353196104552507120909421040286132660724361353499905395247530997188872557149752874329682057910337362778562864354806752292808371238549979831433627617812842638412345128197561757374196959970958296747568694858114351755175515551690001488463943850899222158835304975614070378647468806572638957790590345931332052479598491753826369691562122137919925230561618821712332870966713620419971503683021466708293255510121673889081294627818768010565590717279595561618800184321988562307248541145278199668470302985136906602311508328799008788376109503898971377457406455826280630650407621490009254482054459984731991665920837503729015288520427229375721507451050598576856868096652274615391345873656485513014916902609849600200709070012629404666944254953244003415947564630505632219791048468442376018667907252243997305787921727580401345736683898498698054924732966146707086299765476696296424493832851274000884093695643645627154203895220026669477053059237524656926688082319936500511943079729098095545128830627046131686444267806833629402817012038529716743257075790976850723374246811764248861862806711016754023168705220395000044798613563802911927924118102641450336142139481858112112639972543577030157089282092845916107524007438607566487289576419115950380470033345654289781467425861678925142954689158852006272285539728776106590507894216980050385711735161591182311660367399782887688296840183872332164562018008469532030363512882898501779301234375693067922539858607185718744173989369686432750947656917502340339840708822994615857623837628435590797685411686562406568614743043445377444436053461963222927736071159483438984548283957416916165081768012482694961835357910603923607801547040957022964479122413187579434474826304214462660314072260497698593708378738350253496881101927288507318070727632778232207486508956482243508679133969227354120637612501745881962289039353472982516155001938285933460488365313277410514441811533998427661691824580243618129755631045836357850655554918243162092357985430026852257829948936522948131466175690404762519360693802470034609915259918703043344063682329593575132785187747649851889729581322792686932563922000551302442432758619040253462227919664245210232604651522170091095493089128804953628295048853100027284925132545836704116038155417736137675554403058248526197175301824414585760538096582920439622335151120429531258672883142650378000629947295395382811540097799753087883793135434056677252976695919483046281962859400480842674047770724443561511231882038965846300855023888591014348600108293573728820213198426735242830592504059988053963486377650892248332660487535652912999913399107615852112884873905251570618448422838291472381056176110280983883806240765888959095021793649545846561907298871212581088355316407144928512616477912068849433072368330070064123340124064326338938643346983064096979378363350513657913241125694132585250416692417133415744114332920025410553523699771195335968048753373582923287755284632813217461056284905460494068421881943769502328228096040464376147583388446856713391125459398666106931076799911865091458256362550629244054165750680696986572213922277747216789367582164975538147778533901969721763617608199824863464929575484420295375393687485338210226591778391400952936007387234794862452219831604332396908869667942644492313913284454135913477150538973529243420084989872005887028589483807075737439703584974201914664249354157597822606803695077894860641527201291171532655185060528316810831288708574964924873761556102292361151005722467201491974290143279619997437809874475595378471867415724973269771208420102316906621204785466703201888440890170417619264034087697120130027440739787262791642058145390261764708158356712096559418670821790718496528344960190763049047180310864494682985445571883702020528774313999532527596136201731291196336825729727562404676570939483704138060409673169692157609075730346298136995907303130773046610457191385945920446935447436129541062463466060938853679616993784783356987517985608376444141581599443198132102358673311307994601240800109638473589412129247868829230503042640084740589340174241032865200134173957824862636700408129294691500636592811428472206172094948291955809076433809569220192830986089045815360785006500186646306218159359859672319408639984442402966863565270425415072212765458172779588604440729919495397026350956670376912677031839688773073310376136661763247202101878600481959854051102920899487574347010964443560755110800381865471438212355313984847284099059060718670036010001928353682881832774784362009115772484781267069708036056515279601399505751063078266763815562101989868960544221199350321407964602539050218806614862623821182284868339164371270133109959367290096585096262584559117500873958772206128733399418547434839189271805052346995097111469303170136091461458265306480979365303689034197755291741052491010174673025291877598435861868575139674945229714135969522239710351764643388041498070184288243612086175801056468144774553131652806609653119605969093852683887875605026650859175910855376652035083762118763878882457666086978296384404510972814480592432743758413395685702510742562511937624752733434416629186516427072534211106293129046312411591555289966114307529907334930740840765031484791841537506697086328178184834781472132190852916973885747737009960135602306844445458350673302616877676660854257852575840790691014202087645429287871994500088975829657653473418815071915558937720241279035784236542428604149544249532748003133916777849217659377786045524814107642706091467938676551760602380927528179989734429755510098465501064857321337504287131614730324813008790056196761512119703204253139092940331991016454618714649348506679015811921674093021350292534113598370366980312486222619102848882589568388834748208879501738019505052419230639933153771573879824132754324948906969435777086183288538792771704675161615469379015415259448477156293655252212161880618263523698580257835199806918938265691272498216100699757508168230210349416099023232896235783980171277652009627642367070180108700237957616477651525791919649042664845673776761588918781677219439947915206245850025279236041374508604674519318607402873114932439551583628193840795166363495779636536678033948983477600247228083303178371299109805479872387503010764897520153054048785808140531999974831741324330505996050687812904022544413101372938363872359311677274496838187886557310581724834120598805396833874496465016165499890057089060717046034528520506021806526359838491554382261136321018511903466026551285359910828926164440534340766319602431431455161670260943048935835575390193674564879679774104524393947233879126251093782991999835280520012098370975324141525884740842503630582035365256193017396536929105770955995318284331903623785799350675590534538524099862827777363220641938081383149643692906370352025139444445281768281144179121029986420271116955592578490728502312120811381640551189500114327779323006773503970250610125904320877398667199221074276559819613245772102582087258372916064409150378827226514325110226644782892322551957838510951278580051615032947026963208696910726363718130489515235065623870156650489062270018683979797105886228850205435582911420881808685703242349735095373821213355603765981203136111137308969566095486064634857239343953255092265596973281933185798546029554386504889462018959859820980368349950299241950875827662310398423456934892025410713805110449820373928251030075042336667396337900898197510495896340118031687030346091610479872128192989748318872512805277081239807340567881104460812296847451224783077363586312154493151631564019188692383838208253231577007430817754032664552556214762698237974677093192005928518564080841809977335123812437473216061258049780185283893920822826778833037607229599290600268172428651782295395014401284854092515932520395097891995372286121326098207929034696820157572049002492172313116093247092415239623590120357134426198232124502986289201895781744213340671815077808252879664181941205200694812171021586575898545841992550820289693407311959804515299003777381555183650667331030197577741352011962146147968786374801412767469617742971585983195866804314515430360396273318723931032419364588870698335977764505202067301611435329028258323600921184053136746264575185592033078380228935132098444652905339525289816004594147447464964425289327871537677538227238133654237696089531623964393267598045934206701597355727664630580016018288525911674165752650353240922215056803139722823099879210856327345904449453467270121198566313744516464033462728595030543477281892359635340830519425396775635141622130408716487910867279667496094396461141715149543586131406649153051545393800893815657358787818702795843824849592386469218212220717816850705304749466284120467481318011817257959956750936217430788254215124456709127804693916344836401343633706220949168042968762478643089273701362334069964450117281613311524719179970024571483567104812077799677733744691938427865265935102224293393384562359231400249819874296821498434711245013286316009763750073577088470890440867804487398310202721645469787650953914932735542745248094957930633505288334972154384647419286556155203516926028787718730435174992919014054582067386219876442696466347649182657893888928707281365136393632545143048184705435326119922858699150252668569387323561891175978523102523053119413812310014463132262408299833243555353085957880111545571066421741618507618420496467493278450045095716228739878196422686863461392534973466178900465976044949754989915166663055233858081578854740571896241610715487040402971821508129353839294025425909628653824372555602509627180073971654177794310615176433975994546498223301091704065895548502829776377280213021983013482921989619903597064824897306848370027604787855462420820014934809877866506233102485067671657742655734811057144624147572645580207516485846661463413582692841385562610859825945900738994757467477825277013300060246230885313203078370367078824875517753040294351678992427933303682484409417537844771478146163085887751849389582031528947234848734708515416981446635710497663736441681468791688647941876189780386416534923672349954284182092482988815545920246771048351160525122696250931697545063137762328556790600381145917750960305399787437650529173966010866651670978160266689559458656967429129404523594609494903407521514507252558808856076863642280579823263307891790113126440552063418357868894974054969804437725780809130042917841792462833409059681953876570082808210891028793400643950101239410332604190449507336789471451572227536694788523580179998431164826694013863663588233038660277898834791516536988800904889120598578886909426915908881648911707995226836491444435778735720822172392963084339882195937151355696112792935705118143685793346646570859986235925522950289065426349874525340748136584986475318357587387971184088645307055119973445734670254044279726820931962399414547884474954268667653407794186653906949671349863055350234378825438027364030021631104156060500563891019953930007385824611266585244158546229326583196015545654704472097423946900844458495261734330545258314635729667903636346123016698900327772624379085807432441011170271034761610311838055707755257246645796733734569560612676920102024483116441027565633488171019370593283527229391125150998135227138218749761846102154544601154593676959870921024070535515141455350104759373180641760766604526473383222699893527893067890391490308080475002285754061528633631421430071092579077131303766291540603666583787379375018512428587501547583770339046053733000733628770767922622500411897828133469641772866115187636970125711087386420725676676546193594218024523972425303875801868779459935279062667013012084350795397853478407401132632980976645794824437784785301330062207392134873314475393453042949993199184870091236101952121480746822316877924542796217208872801196441653401737261962817170976794658072283603364297895231825200510453320399313759046757327538812045053338195994929061554464404137627324741106880471873019708322081329640951195057708121328938233581880338782568461250723027635434717097542252863991029073874005925999919108954801531508147782296419014103152015126205013913039758024362576980661516127483711662414255859415280902054723778072529248611809692206328316184331900722001793306034018917371307495002133425185315338820322118497099257644695024342582874033108168982664945919914784094699458698740804796200246558795845115033022143136424309953807058808766214681189817957079630993877414971095846142388148604723107407327165015692329713478173936448938975278124952328719683315062834450087338894449108850678736634736740632700352921268164988830116798596222769916185906235211892021386327765617041028807591087105347892386101463477499121949850685779071309910373080897424403590046523042221942962040564220574557587639104619713164484253653664259944017698873193534700554991310081867803908850112430917339908533857504281111553880582696366733558122051633081642317934620557599885640528194165319142118902209225872968401874937457181590323136314986635749079915705028804155064882283807488591058076419077588607867815424598034409501748084810374885233419906247936237287429257838845208771925978990524914432010978048889961806760147300928806686383104182916505318734971149705988228322415658921015446030335621627975384219298714039865958866152279489507712481572744554466788736801488469389842744247560778527836450334194723952077821208460058481006445852170631294704489135266570676987288524685929187586043985771987881693575135312258561990516885050171795068036582059856433797129308350573687738251503904854362024912310373141147663226569728080649122788803279499456886809735900803281316318869862863340926235109960644810094691984411475315623209564472028535046918949927111562910403553926246989112266046541367746514288858305176991490429947987797047707010502357648344637053070359951464136427722776854259350629942287821861637513376054317438189204537266173333891757420241598712514123595631388573914579589485296479042982847492610444090618324332418203587289009651492844676817217204943068363525845763911512837071942475709534773023260531872204385655202944854577596101654135892229818157180383326255070463635142803083280631400866910543053105245814921208085909829226833387371225667336786650495007156439151596915570490427902811208528746500589517377449545956335767906036892312590679398582689649543120004718509148590099626445386412088752468574760851225448958917676091136264966055937043614777945968461155726676157348795357012266874697293956802871727592900621396642871830443365501517476933614417969172955663982478216612343923659564984601311628769379447002253689662143602108737043099114581323529429281541026556529217386565634306484374271840606887727094277373952324893417629613185678472046871587627632393839808391360249077344078900778311902830943052492131163088781514396544545737782263125990946625284592712067977877048366790293207790091914301066067342328521038284168594277146821215115788721092952762427900966190360182609019104235697569114391225337635936482015404875884292554357554233185117744056451368867351311281400884494176475583203715283000140968047306810036807144577997658425811202592803543258048789144146035321132330404665954192813818771683737265139191949023773644865289061729796364190286450524872399595527968455228060838246645864999196772443436396079457772003455334653887917964018445307581830514608363408508448577354061052190183039263268637737379953738690305967818503816523763975652165195565197748897799024691537635969309129793992833499063501297438704251687461705521438339595765997631385785979367950527461431731243306386001477042330069815294410619866919235409701547097159540738841496415080824458833567843288744251288087669022828875954627532509275772485769624395075432454822648861548074914031739838579368653213055417085387198034637087036358349989930137642442659832803653640723314182901353633704187818746062849857128547369257070367642540477949514012075281597191807956280183684647504907854963307650409247579370495471110470624322483638582910488397886674139159465814786254324566076866723355758024561321027966515662395922049000441754320265528029963953121296965032855968080706761422642532672483949090076005452902034389727855279913478784384622451956208816400556546948597145571819766497215366763567679980957984771387991001960547548607229305865980898824400326390483630143338630507023324415916777384659779356744952050125081278941469885050471103664330581795157361723077494741976844389344797820291243974654892314353373782006618724304201521226930938284734864034954138759561675543221065201676532552286154967365721042720801542803434837596514904294082067336517681757331631979627023765772755000003740578351275812663801460446327732746360282797700615087376860746150155492256681286244538955246212914820456126361145735191217313903574651591650477360726932439885193331183408584323774565240175624844897264807700842814465919258003035387145941691400132836542650381912030035596982706798546478573873365584753722504668926817727479894052991091323127093560591104122968022495774154660589856053314093088991300254105284575292886300302982892969987869770134623122863137681167080055505235487639924837757386185228900300537232683653801972084828058800728091880977342164184149668616812948243964895260907044088460715777234715512940416228914598885025620443961969475733816505709320660610379445243932514965013814172920990414408190486175806582041553496689310343878732506008139187557708658303374176596978290607562403802953351935501663090624758148560233014039850986902290249726443632833709415589087516721234904338132264507841125260603668782577899502236278424541256478710981707127141072140996096044232538136440655399174041557921617633658979327898033209741428094873704964416832085834966259230243638028010496065543444842586431448886713999950810441271728465383251588046001100132694688087632144815044106739935427520215092353605313145676689800243330694809220124106575073452512361379139884716172964156321148751407851708731112737499251579750106065105437207282158065283382114559324204219695071698648062515584279963840472724928789890100931334866403045019822108841809318082576711147955682063937671408576040495260873465670975613167591643285457804664178511321296038762301810128858438964153184441267197296162092310365948456722564394925270063135975452734187359691257920845030054924171604160874611448752518069960129251111498369124790231245389139251839963293870025952286965403757880413052657638319255711391995647411452607884154769487923938123633566054891284728468295268976007509181150106292165112092991805099574390788548322419314783113669209129793444193488215046429306478775658625378054697521126046785719380582042497575198622799095234384755584776247442225923406730921142673252439961046004208967269207732869170013080030889651652395763239240962011262998396920953545641253734563472353290328708923580632876552174649348212313122309919505240429694391294116388323499014739372210197815455497281954283622072378825263798457623763722416525862025538512440510715315424794966285170441679487513497757815933038413202522776557509408199781334154592115519001905714869832625127720295313642186135827734796856184826677032421813539282705707459863519887506793967995336622540123467105237183593579422418641294118962223677535402160775348588744021189925937045140630716363965496993781620106168143503615600015216726172305874254493155687517904984619837891120267222054158915787489458161695974425907347049719050223374560133874878525748305350470158885794755489725603990144331390591185946139645657173573390068848511427315907818563815079316417114934314423176287107982092268695613164135405938577765638735371394694969151352889286960996243217756878800904876556102585196876894980692482510573272450351309189893551582497165742774525051890869354453353602486000919575997542877234390801800064750675779907889379082823237931017584472387578088507779521189101885117201143547737759706594944289212244470112929229137247050491593093321455762206375352373172112408348708984425942662623018018416164009645813730856652364362734637347166278673109124954906866317717642646235831336319917821559881297747500958791485397473565731990293211135319064470877361801452927155131762663459932341952571682591487254617748388914493675765652472180577386189876760418135616901721666941437928899502326902518174405181408895711090570657807338247987743507309085857039836398401114719627976286906089980498591336299161338394114770912484730705458561283447307182059149719437045548409773609191574265086194893719109184222187707472959730173257108452851972998823998602915554929243020074917268584390669436631331591126068597313384584493019752681635222631818120760967555655822068580027894023269391040626553486726661394031479473964303726383292611464004880513185118226549292752311371305349491377117156241790164948380012485840287117672608560599258454337277419173545993007762666445637719797182292914646785952093101758896662873852598887527746144688836272419284908083948477898940427150001356812724962469171303201580955802652063092561659584304935639013067721972843129533196851584118589418770815650735496778028189858340300244761850822770503372780828785154436207680172493224103292608777234469085326869817208739249359933967277484896110310989976709143614315749674273272640392986171696370406418064624166651772747807757244204890227227141259559248395633246124157497215545755787120712373929645035840988361588000632049297036271024468541598854043085298662524836593783384250283772009349350882559037990078740777900143380290583413596372574697274665019704653829646049998432198565297255570328748156162777871380969734121237215520005042084677654921566551554107209826179953555078058971613747199730384895324332332567136724949337455846519082001494534216361647177627422674064311017103926333252299486675012279177228118045138028723610066158547589576577933616357901046237231561123783149539096806732025390308180775884960658706680201010086727110978843789224981337757975347235775026626718586658684453342417832985172658909067472049692921160132796246994674428042337703719295895467663986953411173349673409959026761106196229376832349273110694993561044147563619683180880189221792610626126096073822434331986636008333394969898174490923360835375415907510614914541520964070369390332990508393282897964824781623966778384792533011134632317167558238117953340261232995093923124499667407539030546358943351222289901819589315885201956851895215032016289525148974901490613907435262358405467851830138942914332798093266572847308643337227999325227519266637857732192480305383780495530252089354599847728900650051246644770805832441135979576844809540234425360265990069727077523018151452937918708593628833586015612532694887332003688424896727457670737057411790780043586374640542455273646780224920042029544411591078516778224702627855677704231914955589168558916840944352693689718287118286572125405668147303712402946468419947148999879133865546066584486731261430813031430680874514545952096941594089349202934863922378572955130423464010096473493251407616704526912450005122764885320599419931561088840823133237089814498034972290663510467193203317981141479167081756254831268127503033316161149715931959711157705331030290097479879402261755061880464972577644894759746910019090209102977316932728108213651728584876821893293820679016937271471893483988904851190878598844111045285539220515267941260128113630468878554025756883020508891346279088689353241757080762828417055281590550408429922216327064495370427789043202340379619341391450218939757115690417704310932692786035988343208925905380703613765202666388503027868683809881399085728311880088823571653657841593030487665531210478538139586701789412642622502440413603043707568157067041226094847841570611133611846876266518009460764919499715565195908370592950916024869393279489538047315500990887215402207435510119213212172723527517050441210936969562451155603250919212185697440999848350823135740988853094456523433748893893830289893543861528501692415034711728551758412252154385152293250425036334656743233369696635694715778305062450944586846854508886415295130339034487800614921551668298592108867015943854608837473948035704139973728619489324664246908189536845742766332310021624472663336419323726057948181120913075578295138729441501595021423519801822870808012123495754061494514914286201572156766905000095637378599266677788342094994454710074608958429810280134720460374891830317449296195733904663926761204657345997820882723795558623255747450542978443132587269915001714873065769609359387486018693466783323280898847816866437222337808988087809118816536592040797397014262735436332792264237742064269189703401784437817179024355519428481490427048642305619108529619496285058708643045555433234703159078866558714230086556635765129501791010605708060700539580228933961659073130678951441759362685753961138956863983537520465950000986712873904717031086194791762886663988417493638148317787194095906934404871258427007394034899636067085771232449649544674167740980543109473203517282916580736229754028942507315220558619226688905786640241420488138743900869067572030999130352353668034353760897215980279132135475032932265071261719027047123091723795210932454750826727063403966568795950638770614857158992586962680674885454517654590656958659339407165559566114792747786201230251848876680342235741192341301645484045701756639721936557253357419508134557514242600100020997811330153199692841608171718632511871653286369881717495557264728753460293909240714696747051093650230058400864968924038210347997272951777729896224027324414606670170202244180952440760561147968116679049846840222504865123717671558496370562464233515108352605604591491787830492873625309663226571891070419783201209040914710329710757683664786217730867050744356141733642713907985030550838849687265095985387878088116810032985231960212945373732610813459437211751982965428485178814641134126669750763207730700882948330326449749142881608352670398636987240342254888476204072455515529196550972104473663093873502607234945884992426022855910416891907546981884121641178631450302953235286528808247276261580615075165055713918938152612046967476113783044340982642630792928026044153760718094569943588373831919318350507725399968987743100155225429729920805398120124272743406417507538802784493975577552981810494358637886182665777316879857338860415178345481851207742290311825304738732045778977930090119543312914091650369457359323925935610094089376724084407873974077101518206645425363543248807229573852319966854011139358418085164737150900674274596937637445891215420524286881930041033746258198003046351237481687049130051153228071664999647180860741480220065243878563323303897792671870795495174654809298175752168690823799225356150951160621420997747192128719885329620674363575784039535876206383623439820628532871258444078498621103768208042162447725714510695308042667515582174947406135090267151359006025094001000380406076587463081227247624841445133813423083772734057342880071454387257048957983861567142698621319982192648091950487703983296942051764580163311873962493446539811085589588769615609856696721658407596173585859600794181783883655532019527470005338484137269697132766431503506640416344667028459149799835184089879130448419237374432646279168445585944866599114317997353273165417791146154385843181884178368210794194875295780856610033181603305206540187957075300784498162286262103605833997456009258785626005079387807328165743639736827115328930116710966981615185190104357763831478239619773668578514064557480134053634512031516467829003708206942522915030236768128287093401271092214954913638527425968000360025509833888807295102655679180418713821378939128085896173362165320870134563138550067425896481412571789162766492163829985785092137154829830192547485414412841519406784667349227297484671071492577671680492466402014562416579603302317860239108650313308136913954898434609371295356994689482471091010544978725119467075816936593707922159301065993096966708917156489037987503894396473308004722009827885744373685449330016196009402404440344282219841692298467667037941204716668245810563423176485758743869613395250287257930387137319481483369358999667191675068641459053412040863733827993009515930358209790370687020528796096642283017513819442384166299716680889625304309458152169787317024313230656112683283047508917635065020351444491490972963288989634941930727173335416045531982263250407763305453819268660749314408653601047373812307091473284145460152318277633565944736226010072261502445129214602525019672059253777905466229472071016202131479453630679693599912970935826141453993721214387893724799735081856217659793290974221303636549544768985734589480541413085400614861827852531483651710993404007019935801781238936499493377399443498951485209187969133261001618198991062492498631157253291956919564243063568720870007425559185932227043479914550941373173838270666901476116849017584009500826940833768811670859418556162697849831390127857628874045173244618482054161806062843559520151746897969434146723969838693548657217756740698780782478999681911813535181397899856585225290774675360698788270202099127089223876294469298627453989311390762289906584834200693981478025689609834115483238610110559747310751055598897903128768000602809090703854579865211509360303115892570732594447146453404163912692908122432749375577582014491642229821891361679306836050381241707590564652299031831275953252067458841331337226368870126134962186774411609755796208777904950664242144065775078520573207044988627779218624626899878954053396870254519784499502670970584391823506686727050939838098510892689690644757249118872978312039101968628031305622692088108052026199489099965308371765002509376028182205764701894139953562314287852777252538018017609922539206153281226572717351868140386779711776763985637919070657232982705258155843325978009314494639266953831585713664192770640734348361260904384085355549275254598007745256409664341947642247580810839410321478076274720132818096771439755981398361151299618825980429225081683908686173790454743141803303329371037099166863503623176681232898459185052156761817917371403306795635742972619465045945022845316497407078316088748597354700405558386954014057018145394717263623905908370299230775119984362654684110361029844399971730011443689995689073560819884429579781470965000322191385932332418561119005149473505362799784062115040203012195522846330868574192127605827895176757630918529976832299074056320850343964062443568193963037284269178342879604414286127703557322831598333555959899032440463761584750701683614247313781586420598358011434885134307692458041811031965014385070693223133362162266565416140064260362958169635645215200967248992873906655005877504745354465534746101048509643573583565998205911035498075117669989063423179588862262242198077202039195369135655801263321041060030071288695146128718578520049970434736107732144023787007762333981694209644425806217197792420927757390483081402457946778285462142337825530850007386033865479918919618967031052127918317940520692439326100899538025139363358809765679463373151869748831109289331043229632560703093418526240955198484067120980504884361647454474497989887072621299412701000452721524381910769607663407359324477494459952869814873685786108347733351901013756139928304072429029828945949080766547932576055199391402532935059694013555256787148499574456981150132331445994749456940409260153955095540927592505883343196416999313160022320716213646435711383336928254573469110552006396516764782844206355646594624668229074451448948819957393361117474873362190322524108189120279764830112542781566167364492775144764988636747523042464764960156497046064115399107615127997187346726642388265159213173707114621233885948510356441133536874780892647207480479295944138759696379237222344651147400850836262225195129793976843944789154167413992411250006445649520482581275318436802666014609316648351819682015652613434401669716061155774106507413494891978471589333283482599636712203067949789049178770694275266690279218240449757973253984180930612657687174837121563742100239312477808861251478788079556377287769871203933901777626177822993475213914141328183383337875556034734907070033451062935850316056761252283047933503969187534570765654415235524689079433158921025499857342465204736705536819996251343002979720891774766683848943395928862227142677671989492750951974928965716790901004060131025459907937533333188440623861261163833565125978652646086217636856873450039299367226258247162643097225850013086228529013789513736089344374297147327278070851917637706671928066350391300152849010310602402276769459932422778721674505634236027176952032174332404277551127715020610109354666637706407408528841295679162606119874303921178281861416762224748423394129020936539265057176649273495915415323456389416877086587097916859015287789588797478685442890420417620466437169246765805286775798687525697808829073313414636596514858657317907973616602674772249909144419929641502845809840850975945406466089454341572551074287673327274460808270217140921055596181320683636536922383100444845005829714782342016435831426391264150090729160093343793533875599319854882605915501854904211269047778146080319116603214027769675049590689954306633779584401913662115240192419229457410605411738321089320740567760098487972944553838530098430736356377680044820200103343102582376486273234658992523287418256532459492114982309635006189038535795898450869080012105633758484697221553430438179996260724175624329067578119627873613742738625145455164240594918568820825558896929967680274015797088226482702614188803226622240914504332974978563961339279756771242869574571475472153513198304255516215839089862720140482030093675506850961374434108631955899976303512506596923471518030323950009059759061576077365774455778781228621384954774989762951922014582961236630650559236829753751802926472815404081902690026586559066741297928478489074940508130641670920667894113370568648821349677240976570761062696241721929945650314344428834519071641004999942789673715243269208938958247857146943455066626339133718856577882070658655322892646623962767697734479536415777651210746225726006723135892729802912384379974861074051737968340597083994318231572750296489084149162449534725741636965793678294867189088245032523770929151117425841550663773856990254822543293303731981837304546841253463993842746790927615626212360071624887233492440305859968508002925601714202284074367192362242556170649801625295595194137582225189169558242031131541867907277625293235328391343533715597031826480153306436920251686153318233744784091874522634734611432813177807179793814066021890299668246380624144856109796868781740481538207767131023319159758790761699228037311021742551488484431385101372371080033930763815358924715242212200309125762605294769698179276546029195733639493383677089032761327864967427082278194416094857702657748111432648489848525372863790834014147877727677056107986443586278668362242424949143121796670516781453520805401588080520697214671213892169487179841888311349068491774679521115816936531964836169752222082841922362767341064495735734008228192683981417486055490001273170668440507192122963841298259056608089651319822209263664424869795170258456038724086539922650223175625966241028339628609711860208446413042350784984324705900222244761163001485533882126871429379767944256270532428174062669385823377757532440703260517479946489827175865523223800783961044568447275901349317229964041411249378844708995256962356300826576336043617482277908728552988982718547133543174047941316367704246515301039807644005971600056126567323849229051453126587414084961103132501315390892262530402838005387290244567887978977065275785125926285689917000295942574506766952441289545189710650812772172587855351123219197864482609187114905415362520672919045045686990371173011694734449925992775580476121860311619500854252760085982556042754910996796114348356500898588046909319577157585960782692290084076306424961333126185487585676255536038744381648688332800196164035062370899788166436219013569728921678497523030245580700681285011286095184029691176602823014348054695529828493271664770307373822832453979535417006183991636304748862562008846747902521137753276013592918182806246562548627162386071051146218320554479774071478758106907290897423916750070067544421811616520747288902527824443265511186197260466750726309842064354560896602559342973652598248586267800984507851567851911109689708751430417061775310261816269207273631612394113274795251616451432656176964910850692467666978003860639761223235763398063163615298852690586383623335729383481875179628015041657237632612789296662679692920914699916809826823571879637061176826220501937574536036973393104065849683200768153158734358416912765874669472368838143591573904750153930520519249678308217719017340496206036019979017184536403516899858426017126421147320428636952496472048990092815819120657126812084651438119592401151202901735743618268729789182152864974374104662409604705687097991693622864709125105786489807755787542412912295714470397819978358260692511000214214397607934843168801416926248548720801373042868454511597948057787301388034046208172236551238957568535313721899675719919944221928715296195506387662827166977007420971690730929630171009942979592649768374644196520197838457514034277920597747949656784237588062074853901579845676714628579020772733993454259273839270027135585824244838825935113826836766786258895263910143950667005358426264092643146982149617152041540376422850868272294558882379491365323620909132425407384906013586232859074915046966671418661147976393092908072782423691260902665386076957034064779932576242950977591651284845358754321240739651720929190666247706669277737784630437432375019732372901239315871921028579031784031290576216235505696936670175934034362758360796403987338901367969793125521544200016198795009329428528028455862526026871562922378252756724409637018209027085649527874834308494612387081551895458272656001318987029056920633981869313987817293152430832128447023775643858197063453457179855088255691949657995508764186857032640832392610390399535957181784677587130735479723058996855493730056808550836321252014269949303790111246943747830152794977130847312217087403938412682575584625724971543912087876852755175081917122154642081454243667311038261217969148436911853003858644745610166231873556070452678516208888612586299103825572770671530625620208223760514986705516844775801902514175325243064672225622138164961380092498952662641367630307966461015653264689675844174661586033366207867661073290733112781598263701711972535077335689334435262952975389717198773890595487337916737057455945138190515521340513875720492529675240640610653205105538354551543959028206623955706849884288818356840827531734947233828060396800958449209437035534426555431660131048558101272727237194407001939748581577354384795254790532440236710697399650357248699718083122312421466644930857523321381063111296200261699208709259479827213442550933162323952407921624630985099086268854774522882996665099940944927514624634564038566515016377924819375405810032927853322496200851550006824919494657834987948084254503550954526253037730115601220966423629762327995446658744300282761576658014757244034697852875138474525762395210815931967990857611170768918522025249671516087443359252331171010300483213661704252168326808079944497606242178098891516863527985725744043957470329589942259190306827532640579964961072246074353217435912500913525504272547580560787034891358764065747134643531057057634300395973566220114358127502867082740714533622682429618487697385899725050731392786635407207720060606890869180414146379949655895829647166905781461132382840854788651299587794289195543311664287298870511945302433415229809506720288231591984335959310602100027124525107793597485404519978220670623252688636821561218626541633051099756941992270721829722217357461935773446647351753918640582890887256183059861015193001254847529510749406552893142915883335815045715791453695811455273661826024501671714232234604280332595931713177111741833981519803027216906645055414189124805482197640912336246034098380152819325905552549985039696776925640201193197166242183357651102215606944222995603115824887443619921903718477338440984716764461884792535408539637061265138175655398471684305129901163239169129840189880240914610820789421131666848839330232638689767004066733990256396556455650172033460378880167339984062540005930824508322032973819599066351087558899562868041388699885236211441309640583354359005936223564457909795696150676236221615403366959554738754077705955507800136028127118471867129849475753916267747202291929957149500910960154357661445587067468447383115907188615634096243606782861941119920216562298798696279642875203261248473117141751430728850652370583195090441321190301290387255629730788214985280692314046568023424936617254109219206285642078714057832471569343364963877525458353546655397902900268321161362503422514477940531553669640442169920609272777088699828876178057302436984469416968737523532019414871363837731329887529122346031359506524602614730866363180897806833730492209308943279722385754729833114680876228312867080134161918062145076270421241717011504697983741309945572491288789490807235973487599132596769149772312535896319925814650064649259375597489387590002324511174634457053447955194323681316705271595186182128442331807051015726976984283202398134846453597439290253239870168186166038517664227337680722513350147691713092123220078773901264015257902077972610196020064366231165949208759719057620447088276519896510425011945756972787823865965297973680764334107042544836498522165715654450973271936358824945263610807429159101145764161902348087410053244025842425848180507980437207498238346309122418258053268941494676510060757346696333836752389582776526348965258028820379605178626593921334457107889788610105240598488645055193602401731902080307312592497997455619326896625431587817820793990598671519953434889019517704565651762780303852504872314214076212397639310868607109738265691423784369324960214346575086678713854151806111616656531488581206854493415071673427993761366171544199372866657233911073258831650118989339526989300311219776979951639829814804125524145836162915533661788417653401888411800808058021355756742546566944243945981515778669312839778285525214077499976801999291037935981859242025186075827854654097484024070713044869329579509691212797422366146415725691040381506232231096469492593454224227693398898506917318103673215323996332201842311563367044489653659634343039263340265972517177868351860880157584279110364104640371824141897051105024486881457728197984036356393272845027413353921265699554712352144175412227106809018821798084765742794547985095223895594122538276757200812927360813797768544681376136190434139114980202069600611775887809869548593530147456811245345201870123514628827395644394805912122468916286481825771480464604754018571925989775246816098323198987785152241593907447963992455078567199851345501813394159444427864565880636726865825589205517348415416310436829499319249330139758177697227398756544686430350675150306704395354742636553634192525386719971785936834485252706422023536952795642033594899483302347194478474457883005910245145296119394121807530283640017160993587854556766063872466033118677964267853167792743748130557377147965833792266950106359319006514346219185467164999874756438164943564790571271008486823555836060173733262300762524688136727288041589385661140469255457597594653918822579810464367758743023379518601045594653345805315157631170613172945389301141329355508410971202475127849622284902965559259933600018420473785907231128957308546501859973779632007918021750821327391280443236856872961872348652099746821702457918327835138418044636990552964476467361893224022169877270074273520246735150262469744484868690025421985248520101030921379656486904011249648988279290970072972682685270497788245792562967228497927722339294384147879114324600829960013996647489836161442872380334028246369783271476279799194749127906896896319155494177384876612754661894579681164074797614595845482563836361249481917976058500276112204986513091248392325357163964499162669469094538896473026079833465254427969908755607586074287140974751463750509557662381512393788767415017704848718426219498084219916484254992702960481474913887351150302089703524888771971171975817189258394319449958926814932075170526734581010297775758669139972776684887853509515765879107625726591119960241952941656874669998782866087594816558586672871732264256162019998889783909963110369188083103590995637335821462375051962222280563107413254603720761876141302568648145348508146543355197241193243376919275954736556071436060025962232853695952966080855802078462699229611525604823863000562300825582416441221340642701130044394896882923573653545833443371834086533052873339153620119775712322156946402358705434695912466084603004194416441598411194404751191889287096003249636437734177128625790801879796844730060945627165177237855384961243432041499596531242042654746325474664758557504860898381878106689622931349031830076255308491210689300500286621312501380356683272177102073654467746092497671786735925711037257129781533298970202404696165198339434635737866009948182012271134202979595692912002819139820644857939701091255502392969844649560854721943071194894420494503389695878126415516408825099994366062157307926520798387817130732029923881405659068804769332281607377533944417717964291786100998241936660568602257330247743131452445695739964561013057337936813045830730385935556990150432964625269341212994054658882023170202018453523308619741069812673049771419716899528387801341773638736270544026466208202298556203632387449344162824174903769691729084705920001887908472243203160830408404554320394760202410363643077248166630108752257641944848787208168415767653593811903158279124805871782076839279976450157978652894280538102703675122945242279529170328885120147520208183087646610193640277312005029476921869559812260104686447435913682079609513241014570363630772021180123733953370932492013681369455336850472530291400064580045682523299321678341485123747415330825826307072641627344959903117528221022864821499400382146121980815029270929287892902594923593449324267867771415361237463375404842410423108766992751547394949800962233347958973955564799091405103192651751848625672025225072038213416505419295674981471960271105667362792952878695261110829560258579261770741970498684761122207949419941135358764343444053053535916947244347179442212834594410209110220123356341681258173414704336353104118486933055063012894778910431234142348085498911556203422153851404062190130637882093823057637321856811779721283034692905525852631801906958619719946474083258511714560654017024073850832298261920456246328961697531642997530793344391088240116986756397279372739516365663330265981816718626215044629747156186198913789756308901706807783214151976853716083245007435575934696188103010802471406517133129298962852415803511454089231762701723336033953863591482991081778738890334221822465426791226214920015960774994302063385874108181623084461140969211915203801000757290383054762139571409521258841420897676103173410381248753977927903074237828206297250304855064761371948404545813343929816837108300846518409579319703339548143203421834859824000743720059855120660168142641402643761100961068505115237324877406120415161459846300349594196572168605242662129803334629791045617388169383904523984626719683230871608371454413878247644803683343872808687500078799307994762102667595166748454599821294234374353807976525568213760448723729219574254298572509057640392463830928297437654029470409419079858290715742609855159488714402486899843828922059622652455904423524866720149266227108099393366234469083970232244826130678991848468141479019923398465952978646992667096484637845630304494920577492455174743032185059782422467487095844131871837144041339870998965181135301193580188772105704695609595019619521781926326980106775819419221249452653355544889347711357794074857014704995672913082788184507200864737559397423324186219609127640511018117956543079740170649497856335422679840854830382095318121370537599216030893199846289859768703820588689005810828265979436872376075636906840619652346954793246865303450025700651576609627299185608085865771589996710845182371458893884644574348283934056079852294291660383291205805315639125743485702020370544014033896024362072175005318169414407840928149586674457562417322453735744887683033298003806904854013440454730157420739664323316677508508440735554878671031661994130408398736925847063875855942958999669298473290413204851537201547580060563248637864010680865064696996824924711569068066728755179674712691875031811268929445642911038414885851953036949471818525063281969929637010393854268956315572423001217238844013357362447139768424879017093963908346932262929929549381258927783564475355302873773610770407722273621753057933781276032421883228983775158311032957443233441519557773537739374642876747740410874434857356015290127637371529826233031763406665707047987844419393147174823082299386695709747535225325554215976496494073541831738920283509019609231932216604228939332207370988196553297201252212730349455502573142772923475711211202175565674298391754802868105345486864783846282077982798841947027549111766769802166562226040438793267101949108467302291592651583499360952017437705196749637826262187703089235256573353694761468670657284411388335750951876125700512349899669892806227256897847821960678520609979457384183319382672354134109678181706836026212050433440113869235195294634431150874884092790095721538956076637834798707575285463234706571039216362982484588846396038395932125967369149410372427014805672693025169039348356744524097651796731539438320297231586255847455696250146201755682611743646140798091048799395406373175640508537414520696755608804094790533055438384213377605689503825759160007159951765113442645071204262879863605819078067012125709849875527882360317483036281809501499056181584922834712784906127213893612593830699306471040013210701034280537282704498873702335235111907712235428079857521496539090092606125380031362625639241527767143040964329035491564712995313907806677795595197325812677522231682657848829702260661845381332223356756016724868190731962401979693140682832922904098521486866425500833551940141947774567672535128737048012874089154250813781723845212898625640605197729634325541437107379042861710860537110528034275009715086674123076203958255511882392065275393570029667954934082369941196890294730317010331431684868331277667068389143722441597113643890491885774757890677308318130841636785960286315955822481872232676793887607479705058213414953435267903188894732110434945914877673439538683990523835383891694996650547254815351188250335159571076982986630540064665814777506498973329701850093999695631933476165554504624738130921393716929592888979507855205266197327929306483992675471974068404753117040522606888794602672989319641832588798706132633236140528343849412020768169524147728505632467723672024433009427083420050804972271942236282607325130589852316327653086548939277409557202851559048718801577482895303547930531591430401080009284793049047109478272427507169887063824155788294065441566235557761980398383457401860543524814859989608409624338208281595719296405873423793449049350270805749209259597137566603431367115709741694450822527037707611987264800933080831522769955192366900985565078262335807457340154312899553604410600810206870976474899193725960665715211091580170530771967247253976635988415919362595195340868162913999007467049340821558362295689178369624429110042038848596293142279311460495654799452424623475549298248247629381351663250898103282046600301642314049226484318943987780781679578097264248162265105431939477397459174989475646210591489966158121343107588939201921106183925034249932953391095128429824553995992936277748229671658370436090179457844510031643395051645994173583385515633227805478165003598934507917427297804256499866167800714288321482640066304332205317384366382057021873906698480223305458661780138647908060688947952081918998151795656098574326277755122521404773739008327841030776360628541832196330268795689969152913313751303194215592106574926776692234562382200981802322992146110551375243097497474153333918360769648777116135070969339646907761336187964032572831150076239904702096883959290748607922125215465372109862876485661499573695222865212120109251534808701453432907221474581086081923103586558348837982417456589311626809159416199388806449630190440623662994456329220515445429768372479593068825255794710142938317709429588431123741174462717389914456501917280698380419195895924173359352964708414336128191618615250272137629055276263847311915209768264193812152470215428844353783046065760190671645964842447063748425630293624707203570738672940822601831893810621951664351719923937181754613972998923302088991500379543975438508590365779619130860361823694306771035441390479911819833181551048282652859067046663491292226081175258976203050288008907232357888081455671180339310073054003278005714374926804355374906867701507155133151512028682776201427877447283309068706889575696326747693790879982111354997144113009609748310654826270785071939416603528904445740616215729269514187500253349448018596193493117545630176091006398409530231696430878852949603444761378102121691810896923474412303164669325546693645133167054518837844204694754873166079339675883707275036867686791289206077012711094830353635108431341566031939566602424623064528072730833157182313951914352102311106441656038065805485256683746935549129919754085798747144783813137488775315834963973306874080809158063680097758327721076505319890009349969503986658531707450397037733809327383717357241632912016049636279453414093332188222549187552180568471543168072785207702868635073530839779026990386850141959061149988894426538232050838354821863077940626660669526173219397595793809661433896317572900852502851990841298814313479121603699731230455744427698474199709060787503425265855847552557341291241212761972995537350055504381544441539939305228902512515828573331894211911631824902199837151403820412485135813540967026392181888627728667748186202939384652312906646823346374630860047688334459368433229387683776082159830946251366943953477224188104112290494978975083053249419002660098647741344604104896169289166083741980732582559114168685753513291604623626634083601816675914302186209813309481556494248807186241930687490125833442370318312870983759639401816125000843385575473693568312409945940717794671392939084476292716944128012353341070880305047521386410206273120194754949312852884069461036152686795375372076015615982864252543257418132672899369764649060730836809950791145764237537018999251233362044398031547849411479998091258384546557718231463636101612234683923703326113738236380766002589599520662430343852137687292967569172235661782687815875706735683606366000084910958140782733239871295320640852924456461859003573682008213387504784667893912684279859847220573615162760264098743216917857381445195652417946021709743565404395984507885238485633904704584587358608877447706323496628333918471961658291851220119516791927186950360857373872481821042214814542790546879720029629599860349119729212043918029969203015856620939714014610292592492525066401338093286153654917379315537705795382331579995837871521380424989619158148267173107147240920214987174192607698099269916225809599093809764178448573217851219924699851949716302409562238905060796867940954791049851691236271366081274712444433117326400298904279944689753090757722267501162613161583650822105982337299403200556280832566467504058964171369843352494380061817700790811041249294620739019540738213723656583005554412575273156717668613066717770020654046790079388878973999427615826689547345442779374382046986525392062376115982211049157157733138332387451401736652787395331890720377072026767460838421874346221134522738880848627616888127260355298948977617863223653999834818710894922235162166086455253745505476799740317891312564425018362707847395816223004502263780134108362681507963150322415600550082768516800177072326657674662104089716774010502864155059247683885611565708409741949698672336029452360497081075318145808501032421905333755214682887369552082611899965645103524274162465593152905060248994993845943027982222252229870135859222289764826883833529865694244026071862573577284594246364788234313639284178046169667534454614726176732517859298940564216849852722227171942104068893602017461288761045316462566621408633678931832206586092571928033030836096392426466378178431316925817512025618771790405406521662107868179914648926036555193748674916170688164094865770419940144202990918756017912420262057145819131050336564731512523876548161430749043906301966309364039469934349164596865387384490725246620032899710261081566428896238797379537377428108441727639542486902760891821390880567097758798625319723285483482118850547411538192378210111833074774361060860410621423500102257435597880614081843940703842923805295456435464974583113977543063034540315697130790759566662761692692122820148735526110834476953389433240134483778436481360929390274005934824895664223607691934453918768006985325977919403105539516287409020388279569085744301107606417304447537188112385897286890675472381068509704172779646733017315179393276155280052085955110039941708872116461927584845581565774290097623265517625414031509691404289194117454794403151813052314770500289494005695291689615182486656378136064886506961085626994183344512837926571149780957041387112847894438537720051451083095518383019335700770752209310458341545305982066570390033325408652055130000673617559319157372593067789457421517829563363204724196755300848441751046141894613117381598541628198506765084696571153425810683926991407966701831750355429409830030942174979243933481638256702384879359496203429017215010309029926597274556411058573047235674068582505837870511268711746872669854273244294888138829788724813008471210775037612155520219991262807490973764697258940304160482484307983326091543889298984307942260629655059837799678453380377135949739615156678276309224357988816643366407752182478824191382716092634578068732375691814194683523673374453769070825893530860445710611680043423359058071104484104057592922309145075415128616861002152288961191660552325223451547091684044031090852822349411387380963286886635791086556821385482700010747406116039602372443325321453985353743574950433916565587364938396527308580557636344498043616373663970882868652817347555463464506151722355050946725165808479363849257721829583411792814370550317316298158642780208898888561570853311225419140394708785251973098737354676870616140750710613776662768005175980200146157100818945887360838067524674004052623358965186784275889636145830244002695178293104670209470022441202770012703385877815954993842186751156703063345388274382326322997892813451430696320477662749675433213883750980253751914726686249146468891824751841158796546204550726011071903254041631718236704263982084887778913030771363154072059528958301654569398037627773727869182709610524573688519176449246037919600868002965171284383505112381426028431694282993674942556589576224726836415416343215688148815765818843780249139831937050149606377591797388747567861186134609856374428682308001265744448916275927191004225995138977873092828220651108509056260593333439424523886282065770011122993073413078954438466076298052758299349165056424462198790580306938665092181282513531738722179138596336727869823912467318588240604486328234857539360507953689855895054120230057472426091394456667751634842227112400197254890359756951365706814130227753018721755341059810819199242227375922356743573045123433256980898774474254298453657200882645732639460235868784204418105310610074983544656883474144657851928498913803350627173397652262878406565405286791142482938607570476811701014295567646465505460515917139635489166424482653189302803767974913344384565176142323182461755909340366183603028923104062280186073120409477848377768933898870839339991034802443294811014625687151648221055159336170389390860109298045977019127874982248385164830492013165268225931716019088231891575199582623666084094863793307930808774503774829091512918704350390190646052110736477791481270016995564115181107466655711245273918989899258900699106391616782889866193110450123582479196880426056199714095002504466217021827793331442157882205577065158734471890702679437332074895023831307104827949502652933304529771426210620752882875226230896310607678083329785729198996701984885568117285785647310615729665718002882816368878689800238879340520511288737282060575504664659380064967419823833832256375902534738909276159490775708052359289856831894823270827019328157471660064754937858034212776566285713629251425286507931022602694397587409225699441091801079906405530066403901745082056770414826574746026483017469226994189552187632482820144698071566766962527699653784220727136742243023252086622949640387049941444658323337995056701600032215286047064280570601287667658894413555378670221789780114573629126944729133087368707366373626906316389898388725850435332279668533171139639718216197804811428195209673442733514696297093786680010323826045317026143218148006918520448859277603335477879363516696811380447949960006397041469968356658103510541210778119936787941903636305610672386259713903010539764143144272294011990658468198970811429568580335622182382785460601515871275016151103131606358710575954743238451342168825022429464479214603193288492445382651760990172721773038303391750269369853605152850522544433752566990373857153807492271244063677026882082026204558142816114084802593660913287038788642330300673409822383964944369304426121792614871436712004753678622522343322864031163562875718156083637409365741863885255565446863326012971146088112757100105884332867178185977993003330943699843549346574225184856592195326994082470445059555862149335862063988973498457762738363975928268774857161180355941423136702609971418776396724921895293878536509470443961911244546867566399438527172605268426407321712525420002806639854117371138920162752043877683579731394705137587504048023592808847751277002825510641458169769975066827852650593484601941650342165633415050848826203463725172304356371798699031262432786338498187525020122858289593501389570267874352539133495487394135270095521915913159193668446133511690511622488118769012027252597797513413816336766388066280605157379588922816596350140669981032776085012582366719055428830657779675599610803155505979592720188647835734113917943487830803274497033058228070141683353256468990469726499321950720912368989135128648232433942360457396755957050185829998305159508254731673173089033900683065256646724868269926284543827999537831819210619276220283098735376735553060088243518135985441728732815751629223746585419323287961855092640428211521887645917402539956700344094014252089758660071554114698334962092819163459185000421895207535295511614825235456070302400499059361340552927927758445599001026170043413484694832581234379398003333060393485712607382706789379487521706562151452475947136179358354614264876809666891248355155191074135929105493710946273621261922693585919441001541715013043740235928226517263919503705578157824425153347571696216515713174080087788158800161530331653945444319064635309260803056055997855626595961939471828610486977620031245328350722735740449063208510784157823072226999754167149843152079477432598396262786797007824913971478833148163871444143945357219506439396722041128338923452548012857284819276002686693620651105507988439375549976235918716057969291727274266626785685759742322850862546178505044021963066686833255851726980972369883466734366148166152869418300616322068463901041649891670270795319843605160739747211660499713227140228180428792121706983536740186199737334309883330696175471386346644808075969946832341709073817204506152456098732330657683359956791306548546404069372623203009392459126128363219091962957845004596730911763890578812679767987109479432158269130284798518605770064456383931803887942949998420778515072296721999164098623158757279393816646224433173818421699372717000509618492569058902862796360549499267779288093170598731558131905035469898242586369490290486225283818748445615010249005944318401678726731188469350932608920148439771264797908986413068403241720682779995486664636921519276889842887121165672825959504073946542955025686175030499466464843348466687354077731821062434152441892995152260801766183696830112611794486410382582461759672711569530421369132913696881253121362906205054524023965442639490049664801937122174113825563111787855111881879095814504891720081857652551746208260286540095255572407524954219265120959904684326867060683064323983396036390364948305808696918079126250115489833885380148400902410401850159644475587296987731539675385833674411350193553826254036489377522453531198496963238765074215431448696929201035345943218833490515302504978746468264080875498241749249409900092650081315979837479525635092510918149163336036046850694830631034493276131634451251011724658923319183677184451196954411787402957981922808836779131405702128614863594292280067244887149373773327110731488114072888863564936550325438798581597774044955032860787299349495261224295089775060606198105809920352157289916247484204041675039869713058589809862007340200486664408983779035895879922683810895660421392369373892743286583095777233931009325322755366754124372527510484234720313660650470793283877935680094580437408255907624141798265180334467246760022973544382807688222220348137122880788178011026726970547782027423320580668432798261729077690742217922021836655127013759939015415983155924133561298815883836379544969922995439740835699427464738786670458092109064599953029411766364542686376984729334873749139109096154086166605438608615880157420874735339733722572720423496245982399785513952141968232224732860243888739049764174398455860383646014901866291925882976006825847303294366291604637685073194179269733921472703549138770373096545353030496331228286206556509132548704180378108993997119688772765843410240015127836622142273022163235720732168499519263279913952337392832002533748845526511378437702334142852104196035000526385815493922293987481726848862906780369420812520499095157785438359024692446973173986362127257963266954142746943556559203727479322336592017233062579969284452130073730542116735816872990111349608963063456416062474484991412398232192278343253813279666997097427645282666982306113318502407479960623084149935652756444534338645527574764561291861555715345410023013752584770130997309550104876347299175867815209579744547931725917210411334197772470714204551190788577136840497024225115785198698827389855753132314761199243865601685053981464364614117019044806853596131315322899473371249623495653703369142771948007690188717105151746488606460690436151115607398602141694086245409112353818703265466824573896769569998248622285333080103775602824501712332283148497541637676988080752382185207034977836779996667411292957689393201475898645140774039069282216367305631046138671546474778725510735489153976957817600782182186561406180565607312938091153615135625120121503652220248854993325309705302301690649348034507604244615602466014062816712425188015815503948656049750163842846921743922151152519817728418146548545841391717071871525670656536415297456937493226085963080347645722625532916623777068227576963338618734999878750156886219052778561062773246086771431022256134650221765388383802533921996172610647510495744213011351868237564242178318386308449537645038090280055945303925285349832666971791040846912676832366063176598032251220016587262523705062699458041900581846575841945659290027003786130939934840926235894211498318413186078888618555121327858298547132872198481773134294182749973025838277742102941092148147070564552297395309519992740891947135114884470827581989538485540636663048605292986552091199851172986718686016413485200213776560020411545111003086241099178430797778941244124785760232876443961262112858402704700255459124340701012745239217509281037801627914365365988870358949035300867019896400360946759802937263226963470085824863996425196798079833513769756845396406069493172308578979876120014673355289151122693770234446135196708187834029009224125970067427655742292206320677723851172193896549226356422863149352035592749100913560999171684907870340702123512891284831889675394033208746417602719075353429005153177574852637270515070479720347198140211292199410043513942624454233156398247952381773984783221600135216549485940339607547264643872312653143918188120183576399689786692392203104795848787087440574577471891212103169608122019476459725506382280178413010095577118418890523663543915406877103315515827113314755813638440648200370324538442046159350890899339726877033278449035097979578749816925463901061594691732275918631216921007532801709843903902138400089067865313688939168066420979348027847777539483089453030481503504758482790195530592748515451805205538323806436715859835341364235430889421699771908641480422577808812369599851013141469652861211051051548741006685569691666854139452406181502146617607800406442634640129701069714736539159004879409626436465928374382424412887297360595069419832022284859276607469755037037326170896447356712986119754091687696628659647268484814747824367081026783129996394934009463359586437607291756381340129490303554079374257058810211317926507242224699921937486023619716167937438979376710197224194589941120554391171268190938989323376358764266190481641839707749304557433795795223799815716582313050489398764102284220545872084167589216587335458956469489034474798135952945742850625414167937918960423376150408334938820793828613719665155582111147966651058443438860087620136411724350872614692540008293484249589345950787624649427664792433065004511688770756005508165879565084073953565105553168785760670825087536794813862578554306621766876473104780864389235915993538047740139998940896837154056567334041091506399753010266811503776886972348698196994064391736010560230907916084160203897562936297801154745590506684097240960866086349223909070910889833954583370224520410721045395548768506207972739989773643143734296472380674238853651027021918778849691209624423475841096456334676290385366764539294557614020900752247209822769765610015343443436926729968576175979327892960528998690445387656857308422661939559030080970723568868168843901599322966841902567530935420209253734081782495706700897447830476543226790719289623831090185976216845457067646966996321876183076031610322372478175119883573333425878872819620073969141853313997848887754273982439446474765015705372792845722530122727985394739696536356680590159818538323384048507299781855531259098830124340716843935508050971378106543274513022448848284086440252673044046633264719940441906403131047750870864471941509584627675406156995224177807933264006855047992163098167921137216984350180058751085169478991402355280949011198178572222061343365205720022496362671719418127374919149099670412112736571960235459042583575141959617055824879917206251373357170077676422563218333966859252329423366047169300853319909038568499222175639403121726477658864369824555611565328464144081296733057543017359099551862310958081561683555460751722104401731627477615749518583273036663339244382734982588833733403985859121382482539649249866298468978618503870601338366577286171424948748191132218200931714534564013956336804727025662701189077006932829337128351706722742405725671889554216611501493201571014705893018529118565998717882191552729530860181775418500778222030835876708042325199564850191162801829381734489122405008723824978509841552137567531624899146382486444092769772742566847801202565332339684395275245091179668939339752969564974358560825836447684821018133428938070817055752454340411933367661774671596438220437872754506398983425743702036321977563434762829049840698938424751080577579144803008767840948828782097036532952952406694124527663522223043048615928109831018742804259496787133954041361376228222352497916485577184895284611131104127170897894938580871218335279561405813616011364726098857158692671034157450964468579485178545389333431443590064569345096637850958101853412702687840913476582985410400986169955539244207671500991958612216099293642144209665070478860873208855048050965095925131116689572623042530996602098630190976471273606530394344413324634903849553550737037789227155853119979602726558951413484121125754868528347294637898106986853915471301578188658293222170122778344008967489431561023401971472138483571320773409528906395142568373853918644846736009115042653444381853270108303916029035453047612479566453532900202645563748616280100765427145970709915885186168472054833840036690661004808444182509131566531460784940874766850586953467326226081315766083900674150569808034474276013635448632754272886316043784982360694021072610075436032632672734228171334893008608254147425089672060663519312016866650091098264358059840302508325766058607094716348318558269639422635775388869068663176240989487473506331651124408853736747247121266856304552406633303930030105837815532212152895305774068759276687324651378217188699189090383290479626301019457151944814981089236420842131639854722285621538009205253920910163843771213614859278301404931081072717307528426102991317669129177839766614137293266657911459708941602285134577036089108903235466952525411755205616732577937006957156800675256853875084153432768697618906850039996632812224990678666679297986906210121717876203970946263969209978511374486896889840305546280265928563027813034784099565951260063605453319439539931969162336271467014300882384511657805184069549859355604646466824612927722903397476979124438534703885345590756329907723881949384261732317348803380519655945597761961888486019200026290813933302370735441671842650836096650589210580361065757499668497142050920777008295939252043789878147279423428610324643228705726252271801931242531083511971387022604785375636745087282392270184153575425071149746241611721217230215837485650715820100561634909383865526002351949165283201179460843012705217697550647001488588115988904332979495920792226299120989249624512993806237187682730983007396998020447538310183968387577104186245614407559079085126819769424564809888867210668761372289914532907206946673758206490993574630674136680484740601223453782609573175758306011272711293278527307088957515529859462576249588642632426281834912082450176251904655080920462214205964203741961042244076424303490835516728792080230487470357542454123705598571796689256014066118688006358354708322562448944186146183646580901704197521003713470331172040116132288855940715652631205853091162371906854397034841560387213674241178878498020528015502446644434065095681008635575443106203866858326745067288362806315648766543786629615276831839558262420172363974078447613900919579924998987846783689402982002589949488796177790409184403511762326798343833371271290651665416523482193346972435473078278273802889592847421218249739721783644157553667291939809833801042151894206038026107356053860156891250890750896339150521840581769385440828343735694495322336280978869934526237158935248635816410183328697651779159391942903276283225888089266409473731557418061041664435380327803522281148258143254502343014724934532792417067356930028520283408886931493257149366161487715089809810492414969735988996652217769461838195111126952467081524271892881849430560351751133585739893992760144282368107958665759295484186154400340642240987265073680808287863124323986744926774173297921701998531076786661311945208611866692727614582263384548804512202244219052295159853925006647931893645346151448494651687226203972196607828717919460700933774693646493120723973408043700446097708146432967661563275408309334789296501073772650740007964834937355546791124974042230497643648713626146280264721768509763904671897400883175047741730406788485267631792227835538285245098835821009293277409923373210217100787904748611195581144762071638387100933581893106847233298879219298080179595234424968104558376031513738262870050133402527078686634372721879108011059693269564179051570749899953332772996978689463105968684335561638788131572285273039281978129705636010050437102593733095109262978388261069061348208335723641446505077302276682846699123464242362774984020570489475328763304280776017855320811271800240772466267784308181382574666742101775834445682763881819156254372248400282760619859432605266576081218743285715803321817155297619132851660848355446393094064363646448052668947694911282298906022649765566358300495974854685321915760788962577703688213978888781115441186928705515131892582445755012831939445869143382298208949286372976372156323609957508188054619609710668897176486089352874450820722393852790303315778413538930706401345330866405324497314439001613287707378010111822772057131342390985971535893929896082249012325694355335079389799542525326855904838385555784831357475100830631926099404999932726245149976302780427612327756960636410932155169827927514108277030663859711131021518572956120400507723940187169665474132837074521537950569968127186009610335168268220382027297170926490552470784545003396477227225542456616809008329158326929183110872829766417962509539477459083887067319410226473688579550223565930630937772218052205550011789854305489280944303624142801676598703863819217986399305313335792093805603850317417991756064134723990480417348235978961271923183344672010562564943178042757084191348961130188713786283802558864282787267743405050574105023747285784111429355549018663487547239119216326684293293041121916146761858389476628801909202674253149768123432904337275617858462635659899615725113325319153909549435554376680086496558047432926040866878914085552054212795866688419402016769185234112166943677823720848450519882923183408597351956086820675693354904202798398375694835449505916461366388209028986590772421374738695078880602090000135144260914695320752564376419037731870735522163198468825288009102216548483486283845751297310767329142644384062310693028842270720212559704563149329582229857165618753427236378760361642305737787766113208888177706439732958611431874066424669651827313241004321499719074244701455635184193019928997525475257082732274718452064170939162839459481636221669764512804693155996698122343896336616687015135612965440726798863402479912104478883178447360022793294642517201291576781836118950114892029087973429843245290890743780934409466310701211643320704036866140583061389046564366665219424831728352529510276906249126630008087775179276041943243954942247675055205022207392060489047766138959447263245524191547506915376719496650912740885495097815090180217999461316297330996172812995138709451851964484342752602227079880239150668675525014266322482344853323263289443365872002509042220231880140170516242539616330426835772241068455175527310669247515588711566213061246523691609288381207117151938349723197606656561535917757811377284180447117414160466723413683352406052850013209519136242165513178842769406034196823096561311621368779544792584319743293078123726384074547183129227701592621661744260516393677922930826185640440741631386903465431952854163920409070259667729060574979044335119818522273420114009752665864402267258011035787567772270841892732886291793751628328127440480403194478452431184004612351013054433866849005808246232494407832106792155551484883974573563077184344273151262576738604416148739733099498657026349768740763824575814169905892839428887180443125154279613507243332370372382111162031720026359086249288746974801129751426668447811542146658411465972402236299475118611778954142070580724753604314586281893938691840460958223176114500521181424676272569407153047316290471206460407901855315627428495231513448846743754602294325620890361645330755765445031609893021669026301246931317168126258704177303875573054277609306881637803477488812024465847893074914088629046992011045549766825172993020206787564543114836837911346331954570964221126655414010278905826889006848790792602245818369173908602220140344591212644625759232164361178996398796967750403274803587065126588277882152359794839198705207094477905536555866264333606114631592084381492426112283989416513364466795852341372470851537506877170039184071357790656561450387022416692722311907243003128607396994072920971025698474555706241161078863595520768870259873699208174291968301395553446890706357217049789312306469127091967888163218393420113010351946576411260755728275139404545035303385092925705168907127006121353184253680218946578461765637092558692323614226668537126998146892491431515697305060370582345781988764902699339030509577515590191678771810451597390710345857384518786586529209716099383364559911718091507876602648716194465938586416469364103190214743145617655751358895933664296098723002172223998188825018261277041002391693413083838564213952908080987617868141167621817631227545418331024158781381138288531531348192183475246092425222405069714248123713561272300011416427599700798258542099660823045539331696551165737466072755205736172068121165780465478007764802441496592446456485923268044754894090461118950615100911168957884559601463657216212922691224041338659249441779231724444387012051266085099459623104897600454073972951150599978269243806859563802607909482237696835594160094196886072150247608793014943224630376325876200137072511306549424297174898458634508388019945072142541580236499118753813313708600305864673433536028694326635336689549393563838838630466347002315210247433589522790690711361562494812861973759894987908429810226478558152137969073801182027202164769441602013754121040971322842730570807673332308207256934163933883659313178796863221866144510687048616251714328879280839380033847061556839944672735468498441799829196244884025512743414835990973970199142175306386615829505759564734093553328650876869557442057685988284000556215368965941155474420909192755774489805419670863015332923222209879208966299391124931886962844766937383474116553245353164352590427467913901836443761446951963253821763892651896122927474131892351106010948464666912748744258779973128674161523089230917961049585240641252251765695521985303730984816266893233600147332208323065618560955541298227625615899181086279914858833804260791237225464399378130447885403620596571518505112070528724853548949085349635654033133401488852087115655947929372119948429201697093486023186311468901101352371800248479280231695933561922127831881663416698050736745669355272923670128405034937072029885834605018432451857389880941761883623842295122928718899707128095660736193898393893531750212335194660193582201746527311392428507183938757197543129798952628551476221733377161865729519098502042248677337084448514628948473962999891884794845705831343083124703110069912473557123356244103304486694939056142087130140997420367960185820613724568085954786758098349871063699641505807473901492753261443590133644918638118312294699595385064538110533987576712742557122470988816470226196446199905097070888643038854018290293661846792209982453613334705632611848309867859123918911863015635234809600651974725540728561489548943158264646505738762294347086529450762809015770379635578475252760595175200303528794651595983459977524834317823760270223941317196377930663855533433998561938304034654422615279357069898307034583991378193738658558769406890683026274728210672417457673085033384254524001310013995322399346715821873032620245131567832062832214837955366750078309468997450910122124555450642023919709884824798732860725618449214954220373350714988636640706241071542101019729492325416945881355773118254417686103341480035565404436757154662672782774127512729579178538859136002260975425774144559096078906636761510188122176835092478338060545723001535147682840466521166809883334715726007284692233873693094112802238575637052547530952567525253645793924315568288465608200769039342022817963285647425656934015817609660582739276493576928690300751537029889536184916349999589560225303682958451358649708945300770923480984240300163762533246119214835649831788765452993533225794869583010895719844221767721866376671028892275367246728473189460005091800376405316804377353909078315366854748569835009760721715345087200170347082762826833168520388028846661503091894625347865029705596857550276855686654895526932332374459440569208894773546857959112963684272795699272554064062453933124187650006934914416863112148796622249899865392410988536983658960421256618838104075494481417693935335503232224574390340464511342901504813644453453139452696374231280226237994365218756981094443849696681166365147083469092302172874565259261745754615654073496012046682327856611479686649207711096300856169530696629364939306472538628122416040673015189953569488041875294996036771196152552871530546368159373458114012853633049975316263695927321691048684077636815806294528226901927482091007854779204376855527428892420888754641634845938852056029625475425888527213179497753697523075699301475858910559180182952942193103949931002237107283084523589970130307435658788119243917418295444558531754609227659120547334467945608931308574739418899984482238065277260633591644297263144289845509346927999657054704702927406767193397073451082622650060175843090230543128681129723873787179421287827206383183457820198105073623370308113324664787708176640562614812850319524532953239526914246702139856807507797338947173416489286210969088962820461482750468885431294437158696264947957634170882880335627899081842575761494801115819013882068192970001898997633528806816728546637489832604609492087585026846131699035287967426089148461255990963490901401820081416972621799508187800436989757460145162873125046210983000149482180725017323633655129142090651569433129310190764062843839901404907326326906572758407283615361010539505143515781008396740534649140238413761647022452745020304983981605378519766313953722516527694934929660723464040748476441644573340981070924016537154600703451365036111793495934785357399209508618031204080002113494489066350761587102540151960455063664270471387195914096280323642011493229456842701000295961560622410284464131972503746376240877225576183284013855593606812940033069468382278302639209631332378908111734911507586735558654075030912387639571143121094828695443600876128061478655961236606195946810799053855603879119806693104358227353441381743886156330912517666663849522428653165631908146105777393474379311639483426486642622438646989369908789570708336659947310710710423224996643009984426292930032483591142717319129158845695052642154431562771433890965310125119057800915420785119314210200524913886056716129622667780654491334827008147981170062497860815127685229869951154074203557107357734582520042379997663666351333977947943701096867302593886913729271807091610474082927656265388338640075313558442153873273871712621776023573377376315757289222500806513312497393313100692944705351943624453108300155311586220551489796083800551152305981002142288812013624763675604105623101941463107015317958816075011638823633482937179586463910355691359393585623062129721528372917154322070616764609321565652147343788613014230136416796033221639605073181198430969974951254479125198458188459281839884154985429364526945638800420139979484755835813786320151251796489671158246396118167971553293501752043566800548355168673324776966201533123825846117682939060768173335154801487051985275639641240778215962154819919021032692433969760792986290845705798170037656003917565796472477788090729036099799727028899207762490155437236851340930265700208146085831691531518863995363118066025733447154495808244203472732929298487377612836706970205029971522746922475078584436401281745475079213705965351583383692931441032170493900307172522829353793770292278195941413151356608388360095225435977588802796083319966772297821807506608902769045894832597659608512447529564161728562494041931727322809442149210984480045460612969918726515663663456947267142123827276819146587765737589537918919541803235656627984364052642740308219515349407990173332461914078716540058517271823563389131851392408454618515830569256113709349335733283254076897438903131688621147008388013229110924359483847357840600744994287267034889268657795384768144851104879670885514202002897157107027635448259223430178595819693778249872496570946507605190107478231524889874436642862521269412195248168842684810213285008208264287464128815417636130123336501521181952495600856658182774366513040938802385491629104211402400094651897611292447054838436264122151761743792565564963210654318574211998080137153221370967124242459564462027254304503524381456433504311146177563431907212578622866341428877777750179268082566838058916062656133337801671867445611005637618700842543268171293250920068593946016465158800420285158443772818678762811639781951528761576788190322732729142381775730748213244351073272638100909206029042062956285926355634597193267752228964979748631084562493176652267230746131692914293431547583882032742153000470440222874439147151410641796356445109354716143883687464995946874146964543890357053899124391832321530836972478686754437547746960696172787703079189788381308376177337417013075730331042253784194901171775850544040040910270746477642742455548697874209310966385125418087908375080261005791564214374370357332368468593885491384905891737153059178916954387426480888519214014808024189018070615265757704639122666027488080290955380516045808381554492241225751323722271250590398397958380474277623035153586711906352113991777489956183711872306623177981397330908647281187825140436137584284709651076446611021724209420115345833989123035640466145623395574565848789069293787322204496458610679397819581093156596145164422060127175140601275003152705490042380961151071715367018010761059703509027022029003040098208370716065706365396598232889667607472978166673392647797339637222045031746349557637299255381168942633251527924440712561766235806902247262290084973498912268891668415438236502071955875279440567048011872759773085594197859147050702917500475918378030088974459833994906782752708863511420987012440582919843578131604595351061152093453338445426228239347223951174972013805399247519236085313151294660566427395660997726974930128451101994020595994062236434886428865511815020322565238580686317278220215073721346220886541009715373869720698709723439554182680115838269532431654258485002252362244278782011962457432613212394427529709010679920344506198279686644257310538095445420047978584386405635031278182918039825606667606013960590418038445132531118085469558806752789836444802402279809735912929064149793512230993591479391544798429652183736943176586712677722003161910433983664572761492154162104736134167270778144926080013180192893047546424718725158299569152387483747052937672783002036366407617302613847632889223115517143609098644649145148746433677976095384823319206653266293251274628124402614593684152211398355290661518515594165546979546539133880041661543609493160263011514781445559010656704593771980241942211061662095408138150876534382854383875285471125384206069381822106223664066795269965089971627128157137205269170574075291503118989951602765040839340382758619060453705696896925583437369251138716610833963770053659065577594038481392677745330590392776651437321238017453097734719175089940985916898550194971603190538626349728294239929768017973335575517613970246420055209253167703051289920075488412041781122068059432732631429734207485424679921084343371801632633141939543791054352277376317434001582304547309578405509679800660967286866666832861038287146799013635319150824412532651576623720670861512485978633986597294273841066596654350099609918971032197375301220224630935999250926007756757572944940636720395272884519614191449805062141146443210003405487046018436521051815335007191140721205835433559418116344675688845391951677952525681300447916787621437697796372620751027840357875888956889153931300973678382864815719222028913972368299511482520885421113727223518875014327935151753469331849085683754368433146480726209369190832414863799573358829705331830972717849018496058960571926685478183436195388651250145248007327616046023337887153995769924435691960925557069243182556147855289596905562054498232846646569765150476511999494632153603584026810378139002315773332615980836469696649551914084250723387218063415813085579084205190305046561237903689822340379208599808683209912571109526219647524148827195593470475387094727899642337266190740075018265873591783445308918322118641076913680971412866333370668149917549769671692893570931088908234173677273030617360843519685987457286298990466782901899269080091908842238203763251737178777295578312026162139015519722703693118368878172614534146845122731614243190177712040599313390364687848006882480371850345153955730463006970603388214388258526968514997753185368347301172976564420426687956608627301926598949488024678648612612107194071137660039847270897649034317366666282230954478277887569918050191859291616597762342184219050233303093970116008766729315046079337700874161023134055372170508767060826229391385503629625646383744240716998992740696201161507257290575313525851642968600733462354851345707908180345096013601286412062781810019693516320908850161048672567753243397466641245926750193701113342292033894203407328871507400051315034924209887120358805984600887660768804702334120284216405268396793639285405342681167901779540093799430025266027343793107576172927300413976443713792675723750565527662992214470532137077797493960364408819008411850511215959624980170768490180350542054807314080936473722906013902999292463353444726428826097324228239064627258513723784760836901355920781138205745798039527099010540001634865415258350551261396468764685024058317633398069054505974811502793450193260557205292379903286280393924521154036909040678238076120628693781674811918108525867674779521774425764917097199650231489501743126747521237043740846441011426034556716304953577781064792733832627814589697887915293561712262350806486473709112708892985124389302583148728771646968029378631096144875061732239331808284958714594801305696110062479478935986124446795010768709448174152882053839567454047626342156187541696111404904914538368497620628887283061038006673043013049263981353350370773554716437873118785686888369309028678895198205540470060209154952979948291374012449135786490712099263627294222917632982798006661039048672705682645477514376771483175958829195775331918140145186948612634809196032843485829767583126475771455562288905459735200423882570730042880417562555378841535382041818313592529772074544492983030966775391487333513441521551527325816916389877845926990314480716484237448878383189558115566370299201132329107594389667741163453699803326730478992344637015957009280539752721351830297426718891479430191609362377831858223179453336359553877174999831009298030778412289674438905673411880876416692186051183270869357670862919834714590236594378165236056063494236981515952543848694165931132977951421148598466641951902619388011039834803701724651842147765528590399876943867226620982630121120287438066145556821617341230837876490377800100025627985406309545546617834646112775330721005143435751986033782033999935224855344845717073957096012728813999385195071652030028807485734211804538910601965535668592024067654997384308398441048201363967015046749624997015365664876892609477939799438254674206771071810010168318156548625747722062378902251896512434951489732225516868382417767331139223222195289466948902174548502800086079625695595799872980725696497968611469567311362614225852831537926513112284077699040934207761506708546793894063084577035647406976154394904415678472986920775800789110972422706440208698281611935862428772167754643697679876630093898580633468217265915511796637855288066462984994606093907581836647880387890750451616870972177218893370471646912381017475501705204172222748127254779831141700532948365742767473366269315893032309477020815930526751152801051211708525325185937817683469817562778548044576720698018635285802914934772300814701976187045720509052941535419548430811421081981599403793212005882241344673250993065796740410870028590837099542473957964739676213985131426628365915470028758828101413498658310688758915838122118290501498129475811811426531123920679864054982332553828201452989113548833213988343260814549902903858387821886054977439608006626549560328896838502657138207967723274897882583832608536534134146522727311774923745467040597914211504085341671813508503197015485259896098769014342264506594166509857969396014240718508120676905658846838954529710153795270421413167377124752695893564314547910712148373309464067138873508769959342211913765035348204237575195253447077233998999717294672170481040297799344953635602735174753314032483377841079292269995881280384712540339786392460993084216300982054424934071913554703870447897639320789853405661524935459881364687511734825010158575644358173053099995913200263154584991970991976518013304690221824598625342120118401776845302673142366376647152885293932431767137721047452890326000887329640711908417099328993759363959403589817737098501646464461306221852127907618949359595790575680881003004675215628523977242598840567496245764437915539051676684164584761889752530237917525420699430647311720231669451139816765881342619630411137463002683169095472836259657277700842168887577006663765189053075107485569228696583674679593590958785116829656690460489604639130248329429473693260042990648971065266898771966978125929042596803613022790303454869921752245315752242388925954450764741223529802599858908545803131186988994307446204542045701681279273313191972012309736713007520844381648191692649090627634776649572349482554819353326492492265966791368952883054651691501635376199061836381365833072945163438415986090977778245050575131760148408449411931586853489601531058886543713018022259667489394821665352018844944559244495868408191881975092126916221787913258058221122972575615575582591042765892553317287659050119622199656128564543762685746417297517214967082631941157640642763623921889679631381271847831949379797079318655500038259338106121092328719621713851266919345644189597118211666217983581260605065342906935563905857345190861603649428677198051770353611055954740245200503747546455665004427392919336990679964173253020813128038733689306570115198975350798454887216043226195729494927348229516389821591762247156874815019193297037730064171297226280173508574291410404948271344747577982812507867853950623987065888305022331980625671123432978173929318852411247382176902954443238065534259180730396430178563866555598366385390321851784083102148508955845092406328896959027825027131353265425282207535285807222687468140535633798981243733908697615995739967912396680465806061114718533418007287118435852375850053279585668182373437146802867917457634058873446708855461041715856592799539230637814005533170244582718593859798697434516803068402138130578221701322337082380853754969536040176166734136002018079476419820721514258550375680988018674335164811414621127246864623801641887867514144395171718964298051262129093644579556472338327861423448010437548669553854191113575786266399876438677915951246404079480724556616830615479121946545028545955322140894067506711465573873261190211175498117191603578631384841170129647937873016422542162415128787512224931407332697172843421907087658740609159233973207298604728534701355076022177387390527955303486637884552649642648546853076963623089396287461955598485652501564719132449477086487762709995076755665474279224532158959116103853525270996354107503176140371839488483032802408072091360600376263699254437248151820986918052131033325403009198885765160148030525004904708873347183504420612362439207710853064043093332979098763356513993558727952063726422927043037609237377077094587669313300463103516154802558956672030956480228202659307429177288360458331953609533078117617559612429166548411839994111376056559900210951376717030266931747551865597202099016327555490469381492262134079985742012736176626816843941301766690034563420048662088894722437098935482486763595920619048446764214971715186174527927664538470551076129948464642814624834612433958224313312039709676925652605248083436074726389503800469365973995103682562354128060618367665118717929694784925042904111678599398559715185378365133866507953473711264113827818356743793360357876866343652250034326759054346449183044221962781467470172268750610461491348317104778193162737043756558591424442802968497869289167625765528363929746951655342746219949925106617662835140066776222127402627021077157935381634952834062801931809284265208633759116259841721975696294998244662895696519533808245739583811488667919292764497069318879638598509667559471283003437997457452944846449990429168992442060397819520780915077563707641805619879886005749988077400722536169828163994059500561645698304669021327651864150399041779641420987451825568964760469690415796516457845014439954594853470632717135781900614753365644143620811910590966022335673735121658187237718959009668367047663121009030698757826781080185780786025638329909035781929290896012813199436445503942216822738144111172434457641630895877174441458661499172210532307048024987538301880408401721111341302543469531949234585955791400621023106655917346803283385000353373442521604155059421460288253423733089599265335207027998204604863001344649957015598926689499727724740220476209306499264926592015095574891154126545682650359448343853726066881644234910019164167207308955631644681188382742365201912486164666357187715103646781329350299732312720718724120614929906252862837206041157211596419059523917596680162304130799454977350356755870826998277040888746391232110887713966010618574291081009997095069709104912720367290970940983698279435660981697754763309046604591687593855850206640468184942039172246929050667331761253503198831541215219162141566658842862234371594648270649436440576155578934431739920461522661752959652254973742969233900295752643656360700011524046179039562393258589760610061528455932533810444575370611394490390564647043830579554629480313952137547053879803741796966168895421939850989052774024147725335073625229244425292247629354682586694675000437930029255627333729976347349481332473939589805894093531455195144498134821911198106418111292170336129406378488457060018102658530590608269342191519867946361084287214842429744595162824420726705993804401098494555446806455251143789359699071751130353114193372367290851808256456080871153572942640453211952783285949588547649896079155390350235497500852549201454721420300227500423250217370921933676050124908456658069276919930214546522268678708640980488358415071981800323863986630486919622382340653124069038214558128825493576513567433038465267235311772644450787142780425619130005475528205856964879279847592847494603823447043541701750576427530790748507014114803501433655824090847332443393774496019919638714975843318240548814096293909070979330262575295511217292006966895692207647042645254992765975985033495093746990531423287753406388697779667571740099586483270465057912286939988351643826173424461517766672911494092073937827294815804220687982551989338997128760266974538352091819316701266003532535952736101058211951296527606468318029351736549681610883552846080682721510442243800674913088566129339750968965224789941599599441569891366539695378365208742103541149340880580437593981617372209372392010943773926810434349668116579268489643204444253492330397191461829578504623815903969959807833892148817677602613982038943660565194955096777250340871226461904447063587689475814627850887734394983102916066812104548820574450863297047141450981273205440322495990682973596015349272782692312625575188246399041266321812319797442847099301740018051117819080217517782225821758107110409840021479498165750072051919401039384206686387877717496675793164122137818341483162513824837509838492894930101721650193219398073453873987283443120601292509501835235412255966001220719733419760701458814179184398215554992216752050187211554982095859878089846024338311621931353564624084126935636942735583167141582439090968171184913218730765210410983820867800702775279384327619126303447845636434123158492852643046059624494892947254953418187906289299561141939012763835564970899140844060172670707503467630520555566514215498357623487645222161109963641557770767481876587729401276682195462756323537094869384467390969899144731833989495764761779654812621733831142031544240038820969413182226553890820741196962483633860698735117817221315121477057676111144590260443664166783761744367452226195007344567441242043348497331918504436592307636832781662461360254169556043587985959982809277554219942454770256309628374719398877439592865592510476582367568557549758400275922091428241953369125446310578735935050813746370267394203269727936982374809961676910290449036922958596259194995545105712886815761988107476673944695784733577634387811762857205283204752527078160755605173151674756656551966776266901125133002134520103649084986272655219474624400790376736069745431899760732961742488366918438585256709658209856227015064036542189575711138224801853696265385426565316394297789909621306604475540292741434841215491018819571217776921103820414896859493307015924432337451170979297588282186194213706048649653124459908841699147416402204017882229366257336077051782599419750373057789957582208868128850463780783416048244337827360117765067586492563151530788888231475954318077248915832642514571833749137555845965769106243187251451597031394977249428353876589845601459192226787539845850260096468849509187727875722305184764629508770890373779513431444754586693223409034091946691314993072808995934734146382102679813668660029907128394197523284284669008221963033220131494038712095852048029682937315844670940744065109457738403133613268680591829393752416335887710259405548882712062319007069584858721822884192867116956009169322850728997564723772234948869830618924406620436860130485236438972251388811211782964384795252681340684189847529769516201232361732191569942693550787364269468948264137448482358509431007712250190346330462830999221239134741524622700297221929112057685919727541240618714852420779644042443492348650980883548875468039892195382272300001615038651473222767418429621894645491010007814235412812112069559051198303862219415075240564183636725657072171152675725815711583584594157147368248552272354084397534926251762873402114073003481148323330688909979998422309154429468178731025307779826515470185256190490162881417942809664924444724161169248127158388791813602719258080934061151762608811136376763335603725650804585806749736019611872410136983016781401168088953573838768168117446803382837558488357002327871975984393760951766717006151023458069012837811010521870743279125633090142366653191392151324997109167768154143828873727062502445297287624184586045319593831533696144055671957118808430734334002500845371135418701058140897099508796764394340754757944959673666436018642492223040467826652957562589325125000410569885329413824256546845871591504076976175346349123871684188763662231677862502858995653359191442265147120367833364362316893707355771235222815462186125450224582430907695923005376869391815973274599388035169381949247897442858759930170026430863230159853298938975448434695590536717667415208620698927174028106161576254518836182020738845137736711792481959944513922579484957247228953356503464278916163580957655563741511859926856566878600740918750207061730100139189244073460902076030045445483178580144783816879317896224685398203688413326791234606030301055038768565099956040524452081182830769448236610886979320043083197155994625432894586007290556844368846614123282782324001292020032691886592908931070666778418847884304249021474375519181559574794930765894742019997534491904117437351605879217563755559149478228212675268744907885676201871459457196453980855747516302573486379814745390939053180275482422258149349220115673933523071427148819517379665575330582565270415334063082311770778264259434237126024889894217974404557704129967757028017808314442461230235685159649986314123117929370316915082256269406103912624718755144085905371480735108357291245298242678994676185526255349593217609957630083534781547800679921332469418118352737505213592615015325188794433346231726316082606779260379172373534531150962943206998488082575751985655516599757183480668359955393966761458227199487828925037977998930516799689081708778107116940228256944512547917139600463972974058546635585890606523006540698990741375238396549161902375661242514160350373685270739233439110053381320847807897588050485559913957601641986060729803113856690992710289010680153981032631095750672444949474146590737882233800166755025519334910509010969642954806415154339288378764421057356164302036163904488789595164372865394974842480661047262601076570382579230930684306310253320240039922489415696529138998578990152707550459804053820967271985076988097938284991886665679756892278096882965504648187202707486867633414279361067254963696392400944696645339239023176736130508498790876484881376504947270947147428744335495130011835558127047371905740937239640338098055256010272654919705494447048778986631068944341342680403016523361883911448238454606786731225682837015639016749456378345436573812421264144639674605999503646755860955992023195793924309434931987511436379529682949378987063451773501137546594695428684052976970177553638550719640552909809992037015529425092522872287857561474012577647354647076784678349218189352825195563246974370843931721706736092192685670315762168523540324261034746449560674605588520789429479931697505704949882144266774508610842755306712541800109896869598779971219494614571494570314703948835483753014207632945275069941726801751040571848971580398918811378069160734172804460912201399266507422777247799750904777963015102110534079219480539198740521060276842548960635411484859925312645036950704216525520395400564077524287675412473699502506344479434386259599417863460079249690990834050223945183641412476311878056871382993711698609116058874909889985726449878772013809495360105922694073222814719020564097139813768496470313466454535139544730117631009144411025846257131137348308625468981797285987257243018076542138251731007609813129663084060296895801982982938459876448250924487638730953415693988394409087947281212149743508362781428396331137054283189668191126588941787058864506637349196110627948433327704526564460544372203424221885873546492767372416242679828679493938826622753626596066960763276390903747811257380723123467721642677982102094113584013129808935428806730239415210792440318509920320085757169122839243605231499218516919559035421358106938800943850992210191120732245158158087486778455129332881015641932611200853497674566622177133465217637437620789393204005620516457233068249560882891145575136642187299290403950221946506381589517770140181615822264450819807294470016907378715543224821792235148906150165391059683221686824519465404210627524360346901407738395747021874438149654795190663188217607350222285047171160524284712775250298367162972317911199040046905946537894632639232568021491017963025758375317780607234731183201173697496101657462970891808431709805936827772351329550372182924568993196790847563987370151660054457667727935128377916904860891339298740593615267369467385263633103072942189381362005047209216429033847772454272673304027233376519436685476940945768389422561108551246187662526835732501274622441580266460944225668736371729754460475782547570839531487839529033100438776593850123532247466512765000639438310726657916546729441461050644559276291571477592048895292812039113638903118267556532255847486518760018223492105442196270918374100029257813935171619465077716780188165956337753763264793029446859610523752749431652677447524560488798254932858972127245847744817665031644367056092848189586702022516381147460262656835296035175358698642372229611980122735351077813618400781020635129518289832256184847323934842016940097667241971780609881459151633916466260679666088785208000868070407533722342476967717275227662841894177027459758819506323810828048436900987977729907887674399190503017442126628442627117364786196481953228475934722077045544461619684820852139103582259933278791776812174013411870865894388495920342989714807039022750348225357545903781136983434045841603175685190787351668186084948285153900287451917022971625681901903204936989253926567908027565980020298417333798043145928327291188810153876060048859649157529170444769081410266748914713518296043294026143458858572914486262773981347019033822127974971655276872856476080660743324171924359965370412696810870703949355395095554615978976553766100410419877542039132494913138999448180485585527485071279446237324150787042202499131230196114785707177499645680168367066499112759553310295269935211042219659003140246221682053576339994295999336763336857094042326376210946716364745149422516702128238094516522361417505446502310510762399941181401399419093674596553506463015129923065570370077918835323666274371732293029611492067568883539181868986541801918693624757912640680255101170996568624818155391828050910950700553523207299526097989749575176518843043371483673979207324134875929539497599900634596422573206572813416066259572183183110459557291856765582651953777895538704823935675117088647157091344690801433681614356187286716039303303268785166587257525157410898383274144839821604795028316793195953190636880867496165005930784784151961880335109099941579009832472384042921218579638945415168711319568115778589010800105179037059562228245753680749698703812397765997961994174684887583552338277659836992882993304069255814748058315520667916204222254613312150845592858771077990018791870626894752903282241456283421267349131497194685873086702008892581345567107707770636800151489320649357804896349725941617214250695856908733572009431343608743974943900435700746987542399891331700990189485190501883111272822076811847077177536139022310272534143191274507139865438205782697914516250110588340074755370587936434377088786791354659653362766719033144241313192429661342205486885883162553068891126093873395746893922512099156107317651153260942557742915633694277189100509506448132379195611375036782876822466169508134637714959468565690872545876771762175599586039193439284396094879442746388571225301589858513724605331042918274554893406822354348586893443857901683606647439694637152925292772257811272533445877598361347149184634071331237587278677642510493676308477261783352603858553458571289351300664566319552677879853623722448224395399784233228832594538466952979006607839346046787964013198716879681865755259987779873678344027443995015418459493538154315520212041577261466855339229113580180460465199829880295687638395418083463747529832058215458004718471125261940182894278706867400347960356182291265251344111979512009818988813862406584107350798486772120185752467088878277275848255701919979127088271738322897432059236407273485155725937247770117863531319329081375564877475393172332066906077894862896280058901696998035519867665206161351881433588233240275979838538384529488478642131484366609982317410848606947342597245131680266380504428683203132229289642477982543061221551177624721258023560751256059610836513585700624344232795594105054765846046897217316606457019637733748306619068411498627248690799749152556962931165823701492140332388506046851115512124416486365970948080663301074712021786615838936755970519588031488992642708196404247714180540358478839614378818101231116351787180368602380375478476710570400572822872560230856740481461534126329180038593909135760121656010281654272048616366183373932308073709980077881341961160658677043278981901524883830711634431601676237812725358821331750409074204943025830806522790319869568455766738013107381685783453204389454921852095017759320787008302253465499395358836372925991714123231224660139884983803423731581244193402844361629684638538509623366136352848860436869518653283590866254694456906698679883540438150228079215511821231722068374912888888061558625955988127117219837704507478247120458009146771428679558773256825920140873469295586183073180103901484373310416422948828020982435391820674898781227517025220132841368343753637201595218698592889479729724769054509807743519454087966425297429309281666687317924034928083904628968182608186653641556243967827684607578813575508248793548388752070008054443226505669588000867719069668327228014181069396553663522502844960231377821350422989933927390607516983067906139603187323650073743603548993681340403496542028263990340172901716759237954502436622467425382866116175470331692047346973620200463893481074752869987119306046813140290627988040775853747080873283800766478018111704132893456159396782017501027761021859015880986726072002879217895779385379163914230479348760693113628506819911823595818808851095628840025435379120993621659479272113284174754853247145324904582195750469259970072633497289796143751928279700318595955579383551343869839461788483370257530717252275184652737849238531389887458323273308155959946683136710635545703582030478667249473636653086627308473514937321170472653874295331320661097593940967710563024605137693919979585401733037663328727011107121725627669524989783119247452874917725258376494304960202747871098763192084804173977021957335390942506143381018042405484034401075348857661464312914495291135944533179712243655850960177491247014441110382432573416712260191784058844796089224018195396343176416016029505468659999772379644166532089219742718851667707848512502167377918552978254333660733859595269134704913647749739281868745311482247829716761680879657904540029628727979115220916504668637838106541076932044428436299047542259243670287970116010889333683609891055098877165625352558144018200383285380534369822616790585550297288745112126472607075690265184979338605599902245736217584701738688168731324410461312104339639133305499717204845768230013968672526908371133797151082459640198733407209589077765240240143680083987871998256956391051165127379549712030560585856993347262689940148307073105975189478053033810943471316678107608219907468240618168197533509326695335419328732352182411192249268420359335875114161700018879760012645066875753965447564826429079003106629933442032516414682801481374607070626557215992086406210788382217566549105641857768153229272453528119859227525780869720742818280311141084200660302965907744889491421582476868434652605528690684830738788296100332517808645491850797651343960980463770974161531158601515043709781346302012767679370314462668482808027825311898610095387659961659766643625276580282054498252582454733111695950148792423093861748384956454589563351022532229454221473884510724289786901382349484734494940790237316853643799064381214028561559248647632736245972382420109991518682237478027020302093507321116315082411928137679826134002826173428999972052971137425019872361752461587592946246665389440185554224647854527761152901405606619049830349030973372490395844557286714701536130264686774398773398372962805564881318193828935566517959505356849118348517140939098153963679970288554909248403628032221377068972425830870370649310533440067691117396708015126075232493010344066123435304970390304562370081173667204856416653737302640946688797321573917229619805062833131722090982563890453602041938662654788805598902197962642815361774060746500879973729172803539606140870717890232719099479308752870144321899597400027468087988417688393936879122476024757313517796897696803593984652255238174928798638946650833220261248654116095144907463149153486990894595671957246572913950924882164764349094277908667876401765070689102100629803370015089362453243075173802117527409460899739581142661069246439256207905226688116886006413135323207980599582134360026783593501236735449791169593316540738251514316236424071021024158182293170813235889082560036708241459381063716015059284796009292166439884475360821862329556384244639842035529332272696863973086783020116416199038922014252700556648483934281699913360025375654218640296016487287358467642198380375895224451672788007660617729902649637289027549681658249725302802288889895065392955987730206404153014695551423201849425207523968280254436088338175859829766619708727154367336661115020789192592395044084641037743431626430188093804551827249019335009028302712951884672976449947757987320332589355566949146856244008255518391477399234830509812065529362515819418993147320051640276501369607198883698930688822325625253295982693640150681033123269584793906627972595530690080229520772573650681925469903382998936857129087823591199685135486698909217163424008794314793560233360386644374098891977369241306427817126210566527883456188772571899109125696658054190571398375805862854932620708016812897913227225275706560819217311358117912868926481564440014210327561043575160210019969424710473950733823898795862605253043385521423787215960616186864348063760588590869869113092167677727751602726637977495021774002223642918826674100920422506783455200624175260454330619933289997241117352403505367033638440354905035703158796205578099511320836347533025380284448398968380422277514683346412846518699498845532605590678688789525527278868145790373478892394962081027444618764504838005947946363490650747673964694018666340693114231181461730641559222495020424275979280111594683223354107987210784703960187214514645121087125489246837502419514426908522294509683778893599591050915763597006877511298837903527273452113138741107161318409249913441611472720059872704649608034913967466258653878109288472092933072669490194459664988663888629261634551852841551968586148862983807391156221004540359832527343590949292558311624682893128591599923175636516857581889190198876372042413710714296493755588125039983913914167633247590622522193369783013720979367650401271904788397710253581938351916242341941961227407722554186261415266945813353164490406610727036162477778712239860361113542883209343134634415615435214842627471562042035271114186645147592501652516239536228429813135331842867895424152217400345708873163501248015146551045960609298043940422354119485343160282837838511611949988703905864424705702346404685991804604621584041895112422403902960554534555902024023851589565140071445720035422137559836162188899773174254616048794527986766270683437326438125654565305780229423335131127316270471305586599671643397501774744380328328843388648533554079778686945818405608492092277901961271014120622185272717416545048351319961028578333977047940080230756863569507902218739687558190368239405703458346880758150026574426127595078132368334496265457019042090275888284244121041141245708486059810036715824969666885458414602909063180113117969844729092821189207819810870613244803720293134446751144386678383908173381277303482083122701794860374445019069874306655609560597672046539972896089865754257783407120462287015498511528987467409417520115653354189547780527121923269540720555428721423849663861064548032943376005075888115962595432299766600318826762255045570900476885051918375200040974654475312109578647338113780694433968579214666058618870131506180777116822148981687218076163200559238399896344226835553818644891666285966175875418224547791734943122599779238346636916139728526265895389825949241301952440757559824136139490030938826925981652840211065917162422299568424023662389923470318792153821676765974940301238462327619551493713993301326311169887658645328870481899765184211668947883743358362667677662189665467460329970699634204524710041759645188605262595884614208432273808026205223192526729712752912311702747562866082429480124819950983187997793267361042084837795219175427530541587552091743064482805160663787571463743034319879332711229523430823149862436468140433808414857135477617856406071561873760896960401154829445418947546204963903868235671643463156842070952325618953347838289701027580517944516923905707676715483610281193947655304021643979588841280308385579007980594055352185831868479411436391654790483530432473328974460340469550423432272465525819021178099253173379909230220645717874624836507016684244342558607623310654490444277084618258240949319245562742076720781469629461559737871192837049208180837193307847961819059009336464073508589320435886733064267662404743366384141616671588856984525441559277374030357270916366902888721201098199832906645069456254002580898384347348922943742547502738072780030795704995039475252874280028030345936465440647581199546499499691142792602570030451313474534056032690416953569888685423260252526937215876618176229002535297016049917645960340773994215008111592205910016101759466921078175536468159306853484597801437165380726118951161910102664502405211090462307186345071755626206886943380435263908760478076962296027810688102865125708478543253617298771630334060266472801598775006752484814252223474734764410529676011012857281310567912592149251832671570233067340874452195471873052702917251984894755372465202526374482414796823473338367972061242627677448378454282660927651159664269653918478169064488139327546253946735573754780905254878640477956908168302813966569545661523594135360140950363153631323164877949336556687269765005479575927774603781917481609035048304374829786260308340490134369973608925570415141467073990338047391131239106183118070912492889569543983908923345367122208683006177099344726183210784211145888383481269940743241784780523334133021645051863758366160465512080674633747159122946802975381116016324059365791099407729748415134842374901289362221654543517731408264083126996649785895940234370513650225147745089455759895439333982535023386474993850996287187408349409872798363698187353414306730116573839463660620688978572833046609055414767899448423278119819086300869849547507564800940943810126131516256468047249018413799883285574864512737102937997467958011977480379724997231420812729362767885959821715047370804560136103831140851579977032635143036255390086538737027831345589712684344455483255411920708855951825871823517311450798407195439371842376212939828229561267656547694361151222101557569065567114399828654403032861490315032831729489122562245930517937650750585213727285070244730824455583875859891094889272236466374649138418612218235720618953298150943947167469239663705740854657072869930518799237377376467758693839702457723689944912724862335275865773226905773458390105562672286958706549733514727407540570981538678320278856604603069590747924243538526199924094047022977123205781823542341089973634514258181289257644657918789763345900952730553598870299539677643537145058564640514529333005586361387425406312284704161578723884758246423293449105486683987265991088787591153004505443981108437581830092999203517151134484183486165198046790841219414283376853414116465652549627941886442403035847170778093709588517056153354279654543074639476767172482251999474333773989481317241775543585786979139608174144055253716302097778647506694984174378726386686863093285021529803040111539820807245156822470113400681428016151712297378345406598296412254600443548579216199277946090622934157068975322044324602905483944917915871998075188188347203231549096472633185415878189123388214499170285553389308782388359193789189847746644679053559483509340182381815293656446941794380239671724006464010436665053629539672152856298606846211203439105680063212499313578520272226801382178807814714176254396430942413184175389462613785005768203694698377786120691285549165013960765848762825939390485261754019008771314709658405876078695784192014966085215286917786940090703741305540692658100126201166371627737879006066082253655845851548496577811844493575332828272469059645916524703718640807502138954237683010945659372268572489357776811005775537925201828529907914977553395316914390158017159071732661768226926806601935811349880993166199495794365176059301354722722628317304874253136412464607261088932379455924969431001096830856678206297878119105834849112087172766312242141502953055434545330682385727327763507625510231816208512714716048002266678830855020297363311807078649922860593031700528877920020716858931478124271715510630250770901965290556115846610824612091460095289417356532410706893200971571446875969254340952490396758111509078550712795748751472346035810522146504182774005732777065177777539258521082653029758641140634738409109773912901107110584301433047414322951751379895357613394665837675399289273664438174907829648920836453936461120480765506251136993283038511757263143756583337984859425162933521180816363760359987245754005847802070750199309620985456773953588702445198235611938511542579176546467002750689552482370298204680229571366259602037999646157253622068317748332851909328565226981920453355365633086116042848968451075377016078092724268573296687447934707469542867381772023446360814686789817781939552046860222878952879513709103957725988400742746590057341008039632231559560298162471516974339319385142138210107440979924925269004298572070353021383435730745856464472642669782378749942456367975207597301690149117375200942043316194627794934675007955213958164540558468345507273052204953341686197454729133115645943380641900709101373200458043045061025359299239028745863886600007360977374719808471084344862651701189894669217669044977231518389430927516655736867449884635194995520418809882802099538494352960396916946156307870138267326380750346572980418163631544139540154489364951999894499603196822070137351772019879795372613249141678986451082116511371670189610287622981838519183528594888383681202246288557666317968116609114892163359039309927767066972355035207918359261984904317339520505973729163413784642605158666513136617599690241831924218906032442961154536432663875595743643832013414240475069380260156133010803237471049972503431801759877920295097453644911694681343712533498980111452033261231668179388292664129704781720587897631899847441293382585248487758618970854038302341437046804969003444540631879452659519315202294177656952925554515381763228785431725158268034463968382712827542721470184967562803509084211740637177681993550806514263707434524910451202310099464342757563835139553055090477840413501329686138326193867309554021510223394017001039504085910606778466619288133711449933868412965919063616299949228360916019329969798083892814788778889007293063977775783313856597594085893401381159167371307764035402906942434675957145656789410767406601733739578968375482965894976541231945507281263635605044004853298856913426453329442019097893981820838738383365171206667552902648707136131551604511078890363223299251194746181052081857121622997288084325280561159985484037232705228809912123500898288010541660283128679563653466270688308688099003350500411710744478264600866843047560955971328341285089128813034112176693800149443471935920144325226861998064048750586917573606588333592388511436035385341546925693473704885239687110246639700987679224698624195864432030809567901414200939199673292596423541957138496357706989636389320057486173920197336826797782893119528278602603435625934503749816364177996559762315797861573499741039723078593088489744635476549886323990500260601946890383019628876376633377893328396298379689788718140160975947680637233801545255018787046966371366877477093927075069157293859094067499769519338479672334678514401504240399749859094807864102393317366266833854712188762021008634267914435995101661951920880743870567296808784093900470824775214614436724161123379980766832450758917564471663808792316147312438701204506654940257711713955816999928524161009313583634401156840130023247949734393037509714186715068341416945334573088292293648624841722469377632323653245015246264787390897835678104393593250989056384274159450804689738504223951196922120900883528799469758906950137600052044631782757140994824088304998118650561599538548900048941075101549072844826674592775779355901644045043563965945375193034246412422297366604912454349013637943242861726595304116363090510888469764398077491940922560482089030139601868222121900615659539202171881323377420345435827710738018555385822584950559252632887078711795708331619284087409326083395132703298742243507645655634772545671464758705055713594398611255567562798337120481249554957337758395058064438460599427662840972512725622648602345695388481643480003553413199778802080864410181580116866137622888624821181205641853604500995520088366030741489096414303964223839069074689420566170567413473344319503921071060692469475094772169864617353979847383124462736016847185823748279761461742349730865396035499593596594107382600156373779760119012790916087361333800437522808108476877563596639285819975950111902000181947689652349337332371607334670971881238645067782785449756294500253546635021184938963514771832455896141155563795715404171710175734289686884490505858031734849268698919988228559005309600376799277787297709380186115107652230165912570487620645859779524333776118961277483893377860380674743819050072296617776575101791671125449502907243439107148984177066861879694812533814588710611141030871432963436223845942420041205434814329586378490270891814945484140836589337458502828757794282155397626331265332144497889690293674954107974866493174566642773728168740397661715078861597317374638049435402511841136410261392435497974760641299340812647116860990578015140741057406928199181774431176145182531155642712719259811043629322917468488674925430158821878017898744511030955891900523364303945880720425701475824264539068714852607198504709423207436294020295396199694532139335719837546523353383221520134462714529667627786006215101218289976717908334290707696856275128727971315743819278479115586904538951164881926011377672116373537376193258599016767523018738188745044454597235049238356844761537691531945375088190127406367764302018653560103698132892269102717355796349490072828343862342716507980820531408857941556968915896657729391751195939020215035454653084535914364858873164312603347997215834597555970760529011790336263575084244820412582785121935208375852435024512174855860841552035946050122111032072121665367421039409984071966544817481813646184482123316821639414374641794595811103428239920882039250957038370406330771017475161552955876636724436558988054477853623691762930587970934004332775285286520617903309647112085902668855793061648677400387080036292119599348034530479802389222839480763056782211851185914242737781879402122375642536109649803652738098399115955830411807506871655675758652950307256654542858288900298991221680545473270419203052475595563743611469461704125915097464076922020179741576455791924529004411413823291299063227444891578728767094485910390634884110033019350207159366005695889685244830096920316459795856654341789406512315768231068958261048259718221691404953918830054641984721016631754867997736015663871600517613112293826848603419950149407272802083741543404451094777611515414992925274531006703215858310139178984718400815279710739840491806237610882294153595141249956207018010031887940664392899168366509730480937864477681112111440509638157017296168645280937876081693472325415736557307685916660115278186988551180999581287319470264712950902995302268060835156012879925661259229314484981976215716429121478101213684613606496920774032974688508984105775486881053346829771751877266919374231160446014759650840050791283894343629476638594479675366399691426553116553151968744586986572553075205711788750832474553117057314975238804395455631045254099336054303277238944990169752477008586825237604547286417530656567479672555562685072444296350564534262827996438099911369700633638075830821419726322863628780420373004693027168871229357905106396457144602344388218098262214613786246863403175910696777930433483003228998451261825420625903216526943511923441224418247098481467916258038604865425336973437007262817996651534722042840327245456510702856602928941801556665559239033632816477347890506116740338041301570572756894168926285877373305636403376069575903348829410549780515746324872974478974903319110569300226679157451048144420704140669964970856841281204965892055683236192425011413656651785937358443953758457949044844227189006258423630311936653183841274997883464297691066669311000253232268582724875647328232752264859298271573366745108251641146126137176060721908558796598952197839057673357098875330857218087025158093493849278965383101445017227281704407130636864947312642764541927546569011869959027221090807207483931179242489463225403132743317883651526047306197792878901099339347068163925453698119623311018039632541155290379464557559733475049883915396444999111854307320791470328400691140490032121956377479922703754142544597504301731374116335184441847511603654256631706325927160086242790101903567171293232714351693823727658810560274188083601092492555188092628456401097309071328964196283380421948274760583227994446694531857232145329967164955138659467707536069352880162885373581955528870524835636319187327223626639067011640674126303886672066526139153054678091449110232612140968615902963519931245728501609496917859701625413364033802020274578802075350595481377070181584284987652744655451663610428829449787805538511377873210620209437404518455770994975337171514045999075239265934310568591548316806145186237668024096165973451353727374386150821698332785616973792871762971980223209190520325245009161490506521030825117409816017343551118837754521174098088957051083449998913071569304000221205625642989772656585292870605464693900022137015354410356234319750399394907422326530199096905863138865694859966219543675631488481689533458929122909505608716192287737218984744615113114373548441085388793210010609255644611138763592407272635701036517859575019031011743666662865687989533633652289653564672048144792349312184845594690614413405735820077030082157888617849654467556033116944830180188051613213114432221850790648878634249777095489793912933472899026190806452068403321992038138898903131259461319081093387347417479518857950366964423860770256162760655702841922205524176495952518241625285928990585197816093133639634963301269163934399767016128572751127190470979071658098853336232030148439839594001556867969572608035826791790292675151550453820248210071796574267262419057072788229596169729498575303101032108828392974655511904392827794920079620001816903893568246341838649816562371949351448599193915633478376712449955791932192224890614822699346316334882896161074372934142667321783262095511835035657757028108275765032896066160967431256689048008588198860396386507126622181656405317529788398442884882569926577629562991698453911654484247043481471180530438442094638855144973650962453113441643985137399790527337532813524831552922861929750966499303238264634699758120387766500486349203109509207771346641549403266768296176929962122295150500819500058152793156307893789966102094093485818696067127001444469311646064046544825158493058075695288256699135018839046531342664368020469069967383762432415653964479512493184985059181034518277617532932332921401290796869678650514718754906987189462811859701830574556974750389742725366900624234689918184353112098172960644905251636877046174251350512868075312865244600153600246368399666047412580666115895142865508799036581487100762383905339672062114168993966066377118043626625487704284979679705240816863940801732114210152084700720665167614730025095580874582383545238735851395495423155026196180761346735085092804745858035764978697429352883299564119721386953178686994294605064054934113467324762468344324786783253043612970404029161641833988918330648619645509803748891954772510047499213381641113602496109132462403946158886295752253551075625735490999753137962947849590153231066198726607791639669150497198346035506260591808708042925172114360182672849767397532001825857286330462083625236147726277104210304056874706225016520322101791515427137279466557603688801495339733809642461263014154240276913467174405647658061861474260468955502498231739285492076875653969332458061323467302977036269709111913160636012696707701154814447101856658994065364486806718672673149363355048181479070897359307319928025039541822716367174456335745512483573872630269213451759672113528260848080630923734328810547015486749604641465514908358248421133332222419312411455237751017445533224422695344586371241874204363949965553535106026976134350282831229594709510089838880825998130583304778576339321369028210318589769143757561575337834781748391951919753431494581575180550812304953630594984057106110214892812241896657805194199462358563589166092694967447503634727837599939634828358989452295294635515047881208617835509824374874544413185220744977925323824668252664741991930559208024485928871026623638970939739468840071252147709009376692430134044343073757555594339782264196758052508056003254258225350942298023511563143872882428911232595910825793457319180464448581548543728188657844476806113337846342951554814527002809353039320704852865870344384325446157319002422371407305161226457771491381495830450178602438989132456829320193438572239733793848497440740777809288877966316663589373186143755968972851095601167033307964454648704810835304352038007514464341104331344785927154158948856733546852161123252752752866126921939168651703147817149930755216409447707334161515813595542328572747980899832173669642018625669815889970773455184637000277647887785385061797507252071228703823844888164258907444309109974287576160216872167992481563327942789254305593525525030202900396197023116385607846794833181970423103989368413642705796600618279093344504971938427100393556001566343694140230997875052886208522719191680207647776206711192667905015772544964410690398991412773613134038148615949226829443125992198890173586119581773779329049495042512415689479087150277015862064762191110799904237096364452281577124997630276961434591491314001556282689987320689000391212275629133209502718774732362328677277158152331262907682572088820903386305188782052231236728237210578298560289913990841970079372968367183485629982308496610186828386838586608021223898988199264256695328673291884068726045444471565896267188837704565941021329368255875222423530206028765326635182184668891498112167087429849844711031813110241645249061719349262405251439921734863516748802184693843289163403175068244273783165293865477797789402127088390626139657910091494658761276309888638373402521986856397947437733674904878952938448044421706989290168652979888013189781964419203992026346105532807750396751580639431294044462998293181653750620744264414347277839046139020900864262933171991867374481144987583574407348520867774233577230621089271894251650973137318276989333868217537170427120040410599791670269034351431520709889067116341656146337431933398897277319871193763040578933120553339262315522508912148525105319114995264784195941545473035631179920174716325047265183056471957898284315313197220835814583963023887773647758232582743369617697612482900780829412273282126186342774660434838128155577054709156131041828074183989834345910704958384600945433741816683971095689078132568406408563569040487220597490909982043093345713361904019261216312211078742689476462258276932776371127401711468717425210184832487390817435251575442869453066727028930108027794705597074579460327304561085921437157037856846075707241906931336449215770689001945466707639982755351451418616212625022823552794004124594744638748375496208219828213801895159648686645601594931722006062192267735387610337417499824287947525083808894775626063281152418169990659939145337650378188955155920827689875064608423661867427368685110665639337888161492454169049527870877832215994612904573325460938822166310392311847242853282227463466706368252071713650379005377666752780486891638265571096835235306353398549337039513809801586699124686405241151511357876164906453556399021388936269772779713987281924543318050255027366436116554060715204696288956032425829707613786637199311641277876651756204654141196510604361577613777449579654495465340414873167316597621777817605266378060021697576554935072619002587539335679528320699189483424379133926573714457246053508361793571758823927468750287290494573665610320580198710497766567819789026255995417666993858098025588348651674663506139365467487849241431770406518913446696253230665079304972983138572572773885687582534842778706339196187230608969513251868933280275005590289043516499803603694486586167554802093825031191425085578328485191332808376543999722018172390305887450722475763885289874521119371136417331803316563787121523153039635447246284325924829951244092680083843574967166081114079720743964309362350309527196066268711425270932201057892717338729474058508573765279726815338768723533113028055837695406454468623370359532028281102816817065244038963004625264979541909761399197586690159440232275513351676207532773192908288771740693828078139326018560177994453474515962586199799425670427371394153328874098524153184653726847527854537186835004880497331772409058527260187354957234396453721810747983426590376089743966283762219285679217248327417455019334544297770418045570027957678899948932791651989903521531582257037624592599063147243309911693080763437138360447510059303886435513299347891581359745567891598818012853575134190799313298764595306817752617085299163111888965328909659474060311068966139330020862402570677738075249937247301247672884152163074515615731158419141283264114503264136623932489507956565691269412154279847390120932460656847431130448940633995320563589997613544453043654487664960718669025865829027818744432587242155279332688840800722493324528222575238727219365976368783882288210211345575339585286868066128646365182798924142018379023501705450661603653648845497507147067324785917185848425734124624605105722871935632333692295066793098780063423631143189830746428369703338386456802752257125628920756623175329012275399283161674792249138457808677408064663701849541669961125708803863381810636652554482984033321654451108103508232159100758462811374968748448107687893320337251899828880548337250520493453921403839109946287648268791031375300022111656745236292461966437740777150927390979813100616850820020688386211674276343652341708740752838934932499937579100571947817943808513857916446976644095225953707334241221906903507880755666373386713655184583943073741252279923011700530072702525904267586529659955301079545125800890795890585191961539847141409073639036301525148740612043338258548698629600661224009899426793070685436639863989442654415195422115202437027681304801635195567455343869478556047492214436123636100758131954030379918649914818379447150609983405990702846607084459279485347441086216498676177940324978370017373084169387685511106145243999500780352801796981385388083772039824035906019393361554364367130061294283399467746774868595772893105925199228210256674736649163217329855847351729067713444343617781585024502855531828599199642570303741826282836868870582524106505531178752176150211234824294240529093512896582100569450708746957502796077054969788040339476059794619135782650703618791763384963141484387109062556416940261719521667488138171180389184685460311073209789092715598928210786095243101716775816912377891211477984681271646870304147460245161770799290287066560184407109774273327194878121330894752818995619470378398833446218218668264200337820259492722337344639996159171782920411134747771585869599740194575693910596810449125423934955582121824709864503404487745522981447667678623686300312203472368583566172774444901881783069515623163380498939943327672810038116968243898738923988007907626371333229667663860307886155597628913676847682028803215279282904229750605789015516244840056386142399413826462769576086124288376446348942339176787613342278851614202396847576299289921434229481105290516508252337018762041764884874662567973602907877483465685328262635583603078416802636818948216449569556180826876470571480731361558999737935878050616453627237224381066403141863581692878125161873358365161998951435383520443395817382867867399368673123294208214128143370328106940237100442931398396658718689915875144312511758001631466139213097233576072729232920874357831801253012997993845987931675971388071582900441823242752974377488363327673396258016511108064787225227110269274085996857852755925157809107717432595118211897510344337402267518628745942190444438367033914558780483143271706780466618588722361509837323180069711800565420574411078025109463069219924628862531772827668221496930825883089497311454786561082202823504615775388286682982688265681032384143466002935737558636979124445890490929585832380307009853067624116729273637445150144628248452262735273569870526472338578640414007821005161015108948886928162926593346739688932759151085057209373827645208198512202376962248236043865961491092521868572038017997377255443956913150894742737466167204856408772271384948674904585548248909657813582286141732298540642199041056613857888771705474556372061720850218943534191195068610817834726875720397671175484330856761700007064453823555512724382671329438764775682598085888357844763039690108469276659583611738704012389449782725918777366076825187288908215724423282988741278978832146421395996330219939065932711489029063014450760843969277260553532689780187932623423657419689874365390576368192564073672948874076770473339048856751444053899111641698518949584830189165446632820320138373038012043198485252475572193350815422277593885876581552471801289802584731956754467488159547239194115022553204452575716523071997721952556758073041679527306834458154807439338359566451038240314783787326897548255090550628238826951153679932487538822825307495529594852170421416884528543891087890007898287500427966250823835751298524393848474611627688856900874083504785736927343257604842451775886678507411017556693142973661853975369464013577194268385047729725793624414139926025378829839227576513097038060604658574675792947188828192250922019008505131326721887338706234500277980563306192260405194208058612438181071020363063456913713483349666113917225453394411179297331103952778241500904965785613004187697694725365951218574401599689204092492448791049788727083948650514192242471439408755776983284470792022851703793515763014666140742087335460549305459486207446467464922739751058670570297458269673281776735231147051005369066798282043961112973051234176923613904517762590514484761103960102379240455154770657549725252038906472608053831425455572818939809400702423532492102132249109233811303631549982166439588100584069774044308930200224323401480695580713561889073485602958441056003673916605023800198732079607430999839037143595607705785717849796407667534656564297346412631868526528869132196729914141844257862529548620744240629938714659164610624441971795259066132019022508834057473283710333530544890629141480450624448134690598229995077481550045575190360027401839653698909106604583054027090797558255465555820883052056894705878698054441206983201064358689397981968894170232215995772503770031721397435115130803718862396979691928113794159795041908792701697955150189856434722539921304016425140305787331982517869642759288002223820517888765353787975543437873658113213327190617441838033748918525092734033397961124304979413101539166983621339951193151299283003319826249303264359119926481285767539032062030087254317752544557375407695053039781487844392707393085413455986461059388760944902453304311710463771813490751759523234398544082818048241038674390426780989527768300893995605897388790006547224746589526458725950719911583729345208155616097968867006086375404974876606913452025941597519392777111719896338629566365716919256290937020681487743083042771556286616510981079331304170449443717898971764563970684894826850681819474279086022182404883469474636928212932118879081201951588132322369414225214473069375132709020460394644596408275323896320113668430873183298433290061687103862157276471347493402056354978697767132274314821523776661202371094150589335852218214831500863479077709082626952035635271041732234306217519221717924458548361609742911571839081477210552020786298721032680263678981249539934950304974777618283525269600503551720974243783536241493112843131335290439007747255846706623607104997408093245241821274538266812711358949182991460625832809316970256634080717029075316702983965627590059148605716168600356914651509185117883562816694477896113710377705119626439229582786404417164077166025231836048019724705593720236781290089836145614654567313333757128821599686078222066832786780057019553008011777484926679963119944931105816866748297901709073999038125714317323983353349019818760505275438645106411896659280042253771386505929706715278894881171322157359917772594990769861020618010697021925066356464479615049831046291290018822136680612152678527132093114927942052733665095103690588247966691886820948564904344738108712246585963984852316136859835568921244908777240412224252702127528436843130187492279427721867761648094226967753165822239145108998937494040919263875107664517223552905900059271131221902941052294609156435166186078607378079746440433538298607678142141388649241497631803519158195282722668390333567564543204959188790802739318964418968905688597191593383835162039046536683263249684919748784658424664821144995263011297760165132408936844819062158743387817660951741459541030742772224645825169320343551820548713567256570367115335406482010994610303419366497107517131554379491415420181735423080431108151007387673984130541968583514430984710248938055603659364145488624621747006375598585840708818700824749002815430549499041791788415431782824437496698177342050420120658929666274150152717391600098415574754015203746948950716168846108107038881611397718358652454306280560107674993754014623923343925275011351035043774454154788707720094753845173301021986274830130959999370621293190992125368579941208197422813865465360512149910547729254248020374245377430869840659726786360075356330324668651876293449608738223551645970363659632948186786299128180458606416157956404402867087186201954944689151511604241727623335878643033888089591292424319036569482924915017287622830589875695485224371428514669040041825263113195514233193436915176396560035588770570989576355281285581089523243313681250683216740927424031107684054352997522868062885954047572966015145434821022193978430501667019335553642061549028203356901538831585287236012746349948731455128499844961908298321507471067944870480876838842530839138203906033559485086053607367904322466806612390514709927737714730933536343317071164132073741964619083128756858744217913240103391817845436081296801899615495159224079965538283532534188366877657542476211138340852713863218863523084171719314361200268555396580475065614721252975072856474197679918309016891121179397809109924059826221433121091687157358544477939806850167436687997147328238885370770786412763917388242147444540331602408846569687025982323300803812840853267602992617609799448270159684332317964653782851109479859049738126356058587029647434775447218852594080445728134542635265602677410419507710361183410607171499805462381160755365551198302915247615077436209311045707116791206108226273121122613797744386980915723986802091377627252293115799585018521983110449511660808724395662848169907226791197385268357939113974097401412296067630743759231952900008124298908214511900293860530390607302628807017237119751079866466230494518594086311273381171874396635432551281188773685475386996084036290840735535562547771812351926958142465625873827361629485104663678025241032330158613259284680020458740294263204909191966589633424242378523283325626502205923080201421673565966489654777371502905320557784211710041806656755790055223727944162709014203694928163409438907882656861525854116988638310121709430596298020371018497564677594305607099102499955614279861023885412447337680937613379848127787851094426910993631812207868907348718079157432847084101421027432011035570769108938989160858096368560399881262068638292874373711217487459767237119069623469918878189815749631794451647045365955287923401689771796425189518060301315768883272846438364972809329110651476904482277381727323623310687632296518075941427162430342181685814525657269769042494196083889968448351771204153788028166872274172391810930434997640187169490802087049992560473562337585520381179898242670074753492438587545986842112813092129738781663293401547510214256377482174023244137243931487338172287983003650215676901843221114403853703352212170960473208303961912961430047601980313458269248693335021589328571305191258762959903560882600468868523571734639070404589222708034567981778145159166490035278332114492075657153064413442594847681619440438618825427085651464470653299557747846596839978183955163560179412761692240187327050568818407946514730825099723778823107926815899915108091118188680008121288999511073355924193961906956203196314289924639941231854570721656030962361248144709207571353481024455253569010903435339307260303129747241665356530836924603934032019704696852862284547735171994318529431172513585186133367014255110084288103845007922466549749274980362973703414795063342830031091626406030262358387994242501726184543905974596347311644519764451474088875579813290208795873563099783868435926691666365158362569895885413202510284266922004186209198680576287597561640219213885220494916728181929847251409105820693104625743131452504652128649815507103066697890662463728884655247763994365004619316686077705929895712014724075732244027247095705989332254041621724310517112961028409216940642721323099189551661452540624811010367303034577040915574738132159856620174990258376687799793956043900980911463466961755435381285304646068533691078986578778011083653200871563661685679206166611089388333281613715139911263432782795162979313569233655902673728588896490128417001601956436442498384821787509562483243482754938888136862938294980009412711875625977828973033594913479279811465477795202743648501703781975636375732298197845431390101030506086457809923735517758792676848634544158050053204818475345529166081823393806294339585905941898615033415060736438973351788278872609588216682160538428370064467167134232695397510266943363161453611523463586112805807987771094547269412666107805379912778147465835570008253930834214365413478418607497239363660936714815564310919623485516483328042902234047523816728002182968812153635701844691984454271893064087644822338543007851920962214131486265686255840398826788105407723737608116575018772756043416546123243308343637727520762351158609149632689804117800512193173642088595707641165942583254055532290578875564686625733365318809120882286791847198211883047276111633077488640966414944409689204702212749446711634772906369389386998689378293801634070658056031557291440171261810829757689188296299058845388309182858819601505080584309693797599017074479287205912574535072163436628663460305827707467450805561353490335421933266393474341973001016498025752493848198525871059477824405721040696625634571857537967445115963938318334482327315142866673403284739482156395109141043096850199932687771832864395783537933955118555203674206277046569814546871453216959230653612833122991553431770016735260857490974308091048880779705143709338993738681049455791714281352090704378521136218794339256874529285598720436197583180316955572299203869321398446348807954802317013335082150351446249176280061323758675006614128449868274830371384692712242675612949166595032121683190862616374978921302694484829994543209926986823472574139014391631420400175211485552723361492690918738963535566270484654646912976095432748867805106711670954353288896945318217819441136178507791605434212756177945446446095432845979127822498590508306709286639260264290844543662893964367477333269271880305878959545759577901605543007101516188230117192398370256762865665958813491124849555454166109034691345482974529163356138441034607055583028292339557120971095650823015392204188274500421260750251269924715699378862834148584277308086318132922311513562933851650825733692711132509403873793172847323084328379777755885743452012421554068844241631824376912281815486223380399810521375094420726940788218386470129803789291153398011608057829322135456419352913597809260626757016587505674595440535744630036475478041462704413179615641295442677692548251518919058844752900045081712318005886295690413329137376200140702736169503233260106652753489237424182412526039134440689143690591474763823570126011108205463298691748950579225152559336872999623510637721506258774712787726290031334309676387174382978767626904658156807326989355398622031198106292103653413310048508352159993877091338852838616004624856700802917490922766903416636000888779264165630751817257522455041168210306161987743671447763924314337096818360834163405208939507636259750795065338906204412181675385676626570106115231565035368551647716493288937789890775959573752565464518714486079538398445975891213362171036416759803824770386479588708179975570376096323709440012440167713648015344902451488990109491670981235046669414989183947083357497068169865389844961102742859986280386019132568426625840797224408765539176515206888194535424976234049834100886970992195436309281986509605477143624393343136859729459190134522923823838172994060619844538287200755776626003208030124289334705178883224217741245954668538624571478798278246501973512166864976416674250190181224325046598563760077977151525071506129318186942950826828437746877274224000770883615862943532734001242703685711368855210548612506265115265270720641762729498899841437952849710816003911141846585278558291055221804985455768053928218034797371734970267388241609166785970443375198464194574672883557835846019726008928488881557277531476327809972070082480376145894021513060819397967908524201380452729513834468176597765511209142484955117737915819294795315908506242428524557752725342302606372741714306782439813416850220892979899408230115079052177274957385788945139838385626923197728535381264969752319502233748376731960298955762345449044236400402437772520746828511689874240477972964705121789741960627025042121342962056080101585941375681368972235358364344390393464605277434084276318033912483021754357823378169066734135747195603285131785149881778409772636519769440511579494127653958142973582618005705988506197034785115580855193799335679027683208998153715765440773561574714112204226186766570811835133280478192128924075374544043661921827685031663128822209792194393670953839062352346944661111688536283656745279161947713731125970521735828638003461864064187583012532625547749402887021917958953943446517624739873157878099083975031019464105776648703083175702354979632766163700164692295130438778405914356868738066862993230910168890604324682276512446335554892795859132854115547316973203003447974281509022148043833981704941443108906136088697159148445377900982394514210185400275332174929901600720827823039136146569847870652681719484095694651008621245228700167890215389285731217715229852421375411269785880591298422010914840610388024951086756008684563721419961076790710673801173722618151912339911818327509670744952006814901475420730649704228637571991671796733886554639983763342492383558675553749073060593800506559649667060492530775391928680036631940822303623880753557982984284920253546653675325742542682433452363821901197156686949445111499528657176086945430688493834526010937117135504803242109459666122975319855148865698100266115573682695804806954911814612446990953859482605179504637160541665457892750053945367259103530349316341369966446044458839454548030936290150454790342418853383822160533069268278583597713269253025512907185843727864972728577436800393930074188449406300256255529663838301597097855110931428477930237056469881161087700777633805714257872266582770000726115982596310771090971124577823965746303416349374361573296574885167682364617409008173648024100508939888473916418409368468962494392047325834837839697073737869335426596308780342078829925834083498825361241583095645188380188602212290509757356566104725588373523914446992732700422874736384804473305454812278052853710490716056590157552477082627062110216869863034090673862220169411488235199325839700026907487079607627161403698185349727192309481593305156250175237466838220430754128300552245038098483119314102646263343425624599559324519080257554295536559343516093834687852893699962704551492121773265867672837134032264243083885943096209633760163781383508428920644186327605121689913391291700103420862113514515982820399323987019135900332915084508319144817730868090658391626939599724923648128725372096660242285863947649281403431675628813731699177393059245454380580129623468606792592712833541891373316818833437954206478724368024300811737700640486981832471248801612718522280900351111811632143862767224269500765552600489734180714378710853248018709128989321247633440348952539743796357236429757028114745953996791052287524924103312771349631418507338801502970471532685094008237400917360013910989650883017587094199812064837412659414999948961652623985224612923062646478856493183137087680954114360333937558932002532464118677182415539559696036103546073891342058895328466451816229240130664321605982618591756773870960115769240309733239189124342130278470420866700397779972739924941822908437418301811814058183137686758368015358815932798222230793593362886258504584327234827823082138167562661647350970175424589203642236047302996820706537941744108732984313926405643308307077068158667510102232752862508720143775742779919978699926016746347284449038485834866556683580230127445611484851244742220956380596202652080429344236253704382057141623582314214633745773442467498904810838503964990580303851409377781138540888141654811332099320685768548343531326176856030653838797205982643813420199670453620363490859604813894404788689159640768981008435097006359354085237281556887458211223723460759204280781735033239388257003659504329508951504925668251616096665875531716129958988218560792587150522651523240626539147530080569224925065558041139944950002109060963053084741849239574312802503687995811638268405353773223465480169246691481008260717295154565945817854608731288967540331369819088786395440202053688096155426267528974613070665809386141743944161064101115608470974105571070669340983076496117128960546556245628079715373314852138560773015610061902692252884727800636737452900581519661783509742065740575054722421183647340622288286013122911523586463121083949851121908478000057773085330856904880375364594494777148429148194475164827120194406490925519994174031745209147908872834084161211435224269517438826132255768210334067870348765157761335234758259887576475875816198815814598027559345102175000681035049825480648040488860276072689532192105943999228551031022316160010756092182167701388587662702671797181576370715663747969331198841701514839211994239159726176068846876223209901662540534544462213639474556645766057988927871371209978892790906124048776445044748771857455439997771999704346566042273229252831078061922923313079671400031058832179610946614046731395715427139757442257009071921208047253568474954071546098272987716152813200208820290812366869090678545509391619723926853830143332093150580142434173490302281259277035979936877596293563025090218934532107130516524512078554295612397810945049481341262624733276286964545852886288605579918053548661107092575640175604729403911475340798243533620376064590171711369949445909871756468126667237248788626571043374461322810189255925179562423199598174541625121616859888994728505526922430404782753655286909217199509043051412310012312709319765706220754688176990879027486588846192206393237485940115143096458264346029925184703295020599902641241082682846059934129088980463308205333512056814841242034652986011691407435465931995304711694733752536503416570005834291614403446600866529734378548233964568159317513208854706105144866292333757882992530493455838921953291950107241928891501262063111506538378229223934139530815602909471230386769269211560441726749482444370298008583044202348087129816685998591378690687332260179870317853308311564001828233326607214854109403372752149164909671090679615769630638637217834357932892838741165522729659083198822803505554972399573154191408365704665148264623370964425714323696942268125633048479026753946939206385499066846933381337421137567803992358216309677319028067587532996886936084084749607455875357594267466734821469251115250559385407253426832656179699889745177884133418192535949269557410008345952496030099922852198418618757163621141457177093318778594270600479638936217621389893202977083540860222697846697956918844843201918602473965906505751641800835780477537426294338715303635880335719861723601320933376828704416575542911786063010290665621577165021422632591468686247524902549074181705414695179401534564852991640620448097498216895320626661416949034921996369239401728539134929086653108930734764093743491938364942601789633482837245128288901793285986313963077928757755619335107762465579932870961673141159301728169947852608170210753967274329436062482708516525254005415563563689557034982580219053903309095273505049705903346691032794237757292106377384546312203444607433962329524317172439274225496323734327639658146464503526451433824201198689225757421590752882547462762084720040904826167659159216286417867134689337783634862391262461101247863565229662005396071697855427040583276970136025923133425685336208936643029114387106156298892549420260092633772511101666760745410355893630692099180988875014836108217445659469256033123480675722125029050900233209354580865763053819676325012145626223228906885100892291676848051812786477239235314334978812614552786608487996587821450931866731331451648817753993917621395973108431985643359700720506008431780066534510873139087725577375751148195972974791055504591862305682997725832413236359338941961371923386470690556390526468893964394608416504150213547668236033330162891774523445608659012355205991026287345352472303139283057228665692091346121626351729205229633548040861614566272442192994616506515224193392569891574669726269345832069381464468500211262991922891540083784121065831349935370831398579667242283603375851657316723308849516485543503412150242122292732699909714865552078175968509644275440807307399732865042252056988428464149936843832953862542183306715962647706558702027073910685981067428446400928497090240186940567433405025875687446766672338067812510058072336565485923229012828200657227729297642789059390788370849485898912304591808818592181715706431363642216262906777276478718512679452960789691529161486172406680392238470994674320935464767327669256391276732082960671425863916784728900095486809303774517668308127927456265147345203662687863753237371593086816882559268867213461378310917536265941246401142780657744226909690999709657687865968832063604638138524937706486437486209907467693142018598995702455572102430644390020289949543298996288968631946822889855502362559075703899960188660390928307322906998846935270692601030908077464062131840109363474099309828823607140862157849926816748450668760570283386783152570516830231043389201340424779982205996529485335391279340646770041757883881430748768230449702277296444388805215130967249191197409829885345233842476703072969598168384515121771608197942232000472029381496985894990641931415395196954611492305827606906894352503542564445708999650391136914000798556591230583061650808198654929233819143106002345574404320078272610387694875172055861778486611700103589776658193629586326147100951650301074295119633100461266749633163522828646497155362542036762793015086315692700403344563784561196120598103360182334595978988661875671018317947974754910402449354599663425779520834358818534589633383924325336703921712092292037260765411354879866034608861316696045455333368420138669139074985150724018590619819783754573467333759096581785657339827459805990838264366602125408453366445867870393392298925740417598871730710265414308835398097691115785984481293162363168641143217426490451008794866711793135492351072459596619610928122579537155340220052294024980188514352431157636797499918761596245789227986222505479542639262320849808662939233341143401923024541198396902320181696597136777658234499028866114850554330842339727191304630962478501480886993069644195990444485264892387515022831672222086305624560987694256387836980147967473401547319756925503411558740639872998737627784330248355568822954759199702966232107005738269543957438966845144694920094875593609102272236485096857634691846882675563074237015647501057304085031953162325165438263312608688368689795780122383926046724378135986887364088987579747929581181220019015815129043048015293151254063553459822863084326145207892521533362544776384882403865322449572318236372449014413353482647686985083212667192251844430884113811996622135007090784061725756724382580991088556007572444181137103856383837245530066200077032649453582605258127624250941217735985586741951900835336590912064357653525047744797052223775443751254888268417686283835812847592724649696799508943552716222091608394346915364685399734003218411080428264967758788872951553854695143887722241404309077384420241184047669683644785295309546917794795112673049758116257754873594911326218517144523756567048283259774416798029255635001130406462506994431101130368160705115076299404103632686149669537849202944031756668626140982247111192573088644998497549974145646690333621294661007218930494506701617863698800152704217555700807943360039716354936865916430765236608163279311631843122888523040551225644681958028190922667222594298459503384989048088800050509058421850036513147183708233868585370397175213134207135413962142246839328038095252022820317389029113490920830954641183667967348880259631914566017444536824933415728310857743802066144625083051588180789831475252514840515659702267669257344881504199219427605335338960107293770927078911713660156411521504668220345768927952272181084095709521955574662278205607595716227179332937227288528483489455525036928656113996100482107641857124913600442824958828041879591106055011183067734633996610270835132472792263874588079819886997923798746129024596700229537981256935336353388038531107507417170228937009234756249136899147624439584641956333972401331398054395792239712878447785963240748144353320150934351104634954491204192545099054478719410483261213314494423415094230847286533267550794951175305058930473149882952291068817386732601274366981387354482269407981034825192158311170837882932545278052447891070169626263258325680423114076621933057859203395413921839257127809632184162546470797553393949374828712967441582200608841963677805264648198902104161421194597192653069255672749519369712946685234878388358568507020545708791766332035378248997196044221241701784214218096401664932008124916753713127736647580427246492917441775822962450234475703189114513838016033138158476459528254691231464968983286189543282169728069160843973488839564764042685030265982157603865071468347614877084031522875697725906438757127989687048977204940735276896101225085615314055315546394909814915748577439501935041861280492392107075619492893747435218817200193909871498632092666128033283739308765186068275953697855700417513629765087258946064261507957671833435160359012301261515207719264845052991649252167810798806453535515527711338530107278749531349376481744498842902864308844280736746559292052239375429996148692877107853178780345838900084680652062438558730739925317511755488396279510461921946148694310257450388433666569041177548813307782910252260614961976910332857324905844955670852493464269186751864693283003032497008631065354264585538743971884370207582561513625357721644810510498601942017024673522124095309846344738581190850372695772142059092051092274500307122710635298840316688938633010381314344700252272778609952252622692475840342281424614055625850402920522522221318139205633515636809133150543420502023338794061982489146797469510737631429762999391168752248051807424565092103206033704964540363551914338184593045614751321190140625266795429248039751522399727606176820926589753707548898381116120683238812305071085383665700506347691050675505822162191246821444122357668751174217863603465252960503090155898106969444759613616556224840281702435234750708193286261891731838723495003068991689242131696958517659478093780478105597919285407485329813656496609042737590652614071731802134878877407557754054032996610670571926528825290255832656983977517065532726074716541657401985311606425882140162467268102791089443870158224025840947033742298058728342967312551921760985254593117669393545177923874796448762733405829624063359126612619225781902565041204284325923995930351973390369513153208569810078138983036121705279806653322179402367824300453592104109700958893979275595563096343345623189659608076851211850993292908109172641631232864986740155425293375285554145851606893529980313902205952084877562518023632093281739481532762577307812560599385655095583662332467393072009479626151747789452795704189475880126981098905868642915187177972172931887870264331840824856300458274841921071992161208812324524520646579974874132884776071801597056586243286560035180255458185554423688913880115765563856864097177865549946106475555454531729093985019139078192744891016581847239006155047128743757447886898038020420798688797198149419358725535725260463695277917477434472630831869363721957170772300186735586282120959523991462504344987078059972172635868518378449318604663072549129009422880193895484641192127219781822965888898608133521497909123815305500636482365299523817189947356692124343795679432304870437177102967014191900917293553437349006235557381206971135739345862510311426272428560277412441593611904121115738007091544101783873228723638312109890891242757152950371698610544342316031876101945755864266642915341304006587564726615477082420627722809857491510940594648250868445589407024220481625940576863502172319085714805609599805494528508500502288212608512761199983859490895092386298602320448620885743547303039739711931249878543679624720812613617424611358896936938659506899712884652678357847098871807246790903815389240724873189367226943651092642774267639978008461407388799154979007427631655401087570743764657458414959260731581396207503975673903223727643633810012149103923637495574115457239070314741528989850646713378691138732852436806870510185537963075853793461318214326060560651489677394782466192858188713054614838952182085131334390655631712476208069377833412726852137096487249229818406422850223351964239882756757884265930280161638944365222137957698632862294433011393030287776673801934595730941852193432533354620550416917713988644564075693697172618162676423050298826466802367415200789359583186187279480636689560469180535403657232571644826773227309757729812236014972022790646723451670984430179606475674767368951673255741402133860671892769806828599519891841342570247944355772436853818294787335081646591633866234256994522396779115101389567101736164683202112625124343699308404337386569094542373297571214373329232272091322374338992080381133503832370610488981987349844664261561381082256600945061282653598294121559864025388779493906420173630219629628099109281522160241632846789998998402587697827222609309842678720012352259607652465451042665727191113605495274701090781109910365216608255198600181339403404859468619480815786778972316799773761023646433388165129072281492300142592320077579437802036088623241196001157617280900400782838164414314077904936008204806355740792082747823208118639638537883045967683181809110242301182420220153204629396655507439191600238705630248398892249636975937940248059791622424556091310438630484023622711245334172966357991944665790065858808697116115390019832143752506816996753460062674454456234865451381952706858671612079518720378119693577881457177637127046468004833820018473262437323048585716063778713435989625658619987659039752253716643125978787560265626539827682642653417038669403709007753781039106419230807872529956571013872549348412359963808722947181721139085433690182226709737570220910147208202807445725665369898873277730184199884889394588331826193448717789546593072744363927953034840629148836464770132900764497001219780316479850228363982670724257219887578999185908294214536238787634188941411830746765651357248190130392599777264031528407432235787618219338032736411172859335526154273404989284406767735541235150092731342330786180251799771724290183980682810700298591457081974472700751123031045929393316193620380875572291777591382671230593201615877081512221786835261426810840546902437919595735699099966088905514054622638942709955918007467234958744208000500757821670054679786579210964527559395307387903267758840047569511940522954322195542124575000738029089504258054154488039010642564698885954101067353475829602679324081235813110296562320868123186270587186970439501234342582565548713541132363641159954850868173235808507717766340241119979273757152282742531833287033062531381685253333947918803854118242765671316570909605488816134175658178895399756535907568292895460119316519148565672320751563830681568629259988643523819786529747494165805295129983640738446849119084509918291083136422320283324794439359995041772811254186582065075559786846920440361038348817174459965254208657148854455399527348626571929564291069605314606770219541322002776322117071330582526903025978039053679763514807983489252748482558750460914211113479422165182538329725191890041653565079822184287628485087634944367251821782905970227883304925947706990736829827167884559646583198897766932486886992750594803682820425371271082643176720898216685868547980343025537066094924424832412400895248073272666387272613838375140072568904047142293516576321382481630613009433235094170620192954787842880366092139042430007110494365639830658637238670341521624905581256644327838846522527027778079147821811249512016267513782664006610092821516154727492606845807509174421386675303491112195453753773183479161672170979179000451531379868733437648345575782344480538594300942511836962922381879716641881922412540377754779448373074081069778565423703180219961644576587810626362430639493262758250766184279553818522967726166926487900586655954021062672608342669434114710479384124925206723063148695166602112081389029779367947060268526607471247343546448075708944839138506747974089608509565496438203113441132567896577741097278132384501666629940970763929063312403530471709606329560085896245769964571795954647065199449015358745735426036200813106524763919641965556305494367220584989132923013039416021988928186124668785868297596322072701076745854285621758333876331771297354863002509010262988134087870695551106889500552100026176805851551715007004527423653582954584837439358630395678971950456572114116428885308249167759201562312289044940870950875196357800848548256601304757943353087334641773704617801419100944640831469002434786734617806734778402605360685517102277649631632965583046262050200515839440951333379444157855373531968275259162745078297091282968491407745099047160254551865696110555451077193399475737570111485493190979670611986304108113149679162953050329965809696106406772084005411295297522741803389661975273933884557400786632036300288228883329791106528471942236545047597606321636342251861986384972657644252047932482224590160667291845120547965226198790341872825589501161316057009516281052510144646548432555136422174010776671756076933540006359574422275896390032443219200153429141143248987671665626467340714983744532570433812100351200054894540017174124333332634688161118320339110608886858445631892435290907452429489614236412199559456009714913348913535015173452838881146826085979219638566788204608657967477529114507017495403131724416675858900776063695474437146842121257865164268425389698854220694579278836129055660441138305009977241363634326410732383922086033987808288904159454222159761080633880461133687506949862844445465353039895260835939948469503867263682829601933704108862370970353366896798894186163680422236921405318684096862409656221007617644481973811671498249636170157549501446574104964368172416666260242047673000630763967749400290757825416818977977492231394039328577976283906423282603852004843876038391738834513084554905806712015080553965699488120007749887835708542082262096658191703452009183958379807251972873963026474558289401655728947319935341260698156544829545394049146108264929213135708007817092721939313443119201581361399271109212825631378947403107280245468005499933011016313658147152594672289575275746399484686787768947234964516376394060512922149516438347849734021443172664090818413639399325989898332418081141831105849458574299549502847056010932619693732277382719695730563326773209811713343329450276161681970570465509421065449746664029620459470312452359495960738454337679031179802076404283950663585366646150764534760518511587702081403077388864950251817314253438473807478550074337829550957054795882275351532420113122080694336630947484627742834256159699922170001792830348658270155874186822099606475650370293281262011716234921678835305474791162369259771656698628945015206120008650416043188026853645389255595377060748988535219162575078612905205569461720634501734854455913266581639953189738658203329616373141098650178659290291391882457308551257724110117106706181305197513959302187897686860252404301669997886795864356355707065042260329608956340737029843122197102490600374927166811079023798755883778936902958716418665146896295214066793843624162164482392872607429145502902978843972988730949589635887492408317832664845560454705768765860148224895986765810486127544501609928902427745884419878686006707343902436081463406485795900078785567504154125621618419280575643743584209272241589554141554965235518847542560571752208048337540802397588027684602837651938967738592493876432986586467879670523998219018471767889547921660910386982753217035923575159662153378985464657045146102403677127039845186953902169404876556092352889650544057259209755571270183786088573645194730858924746334608831625624101668326285474349647079768863255566356276054927818279443928365757316605638668699245026258895330953816148449594573133294511980770896840958049768575864921035089683899554388096981290768859041158039038681993651250068311390048741592712294487037795070019545916226152042343791094041802348694532845015505936772862962906177316883411821881043452819895498159188291400928122309591302824437778617854450601760039058035115882374314614191936056452379197601325012566700234753850074546513236302105382968802123216905293723131562385224978888878391792990893095086472475163000853631519599321721192476804377928522042110696144309767562545603087319051309085652333598175172526985071296987536323355925349558492731663534811561489017898271721424453375197589662638135521531954459704417341494013046571492683179435707464416324322960201490705979318762822073274772599863347070720981967031997193943448824857704537814091411332280839654100017918253715948321378393528588491124565998844631590248610315811540824589244848169260459726926965401219775482538990124327288790608520868157830940462881795554291350101307393627610807526449853215286294131945903461291598936957259583173857817514719360804913521568494139856133601143889861328294151191485805958104028631205824036936057845057061561026403523024520803013262001757877041634502068223704814318580411309832119243129624872555864659129868254264417287530611515510835442070713836185053675072227573148534007196331042970266669794431146127970224524690710733396126198905870603729322663928787948967749068385615040446411937240296195317122586741850792431415787023782989277421808918744398003140541971055297417171177230844651082397525490607918955682387452462477203548063941412964201913384330620633945989074616340472109832872795376852019916659693800324130865776013324901758723553852296195891033613731743812030382329440707458879016539813267088993547626574544447847466112494516004579161115775494700939958651659690360347655120318346828018090929409509373293556260148119532715413438066129634772376079922153408363914746961814977252486894629643603380224406530055509220281083917375253247680988592910886468561017036809648809336245792294789326177030510582816251921755296680108640886345533653281646044447093343966267144673968738603189766934730241896589268986366620709558536310843805276406563591897286362490781931129008949255027652730670451439529031702446226544198671428088594003540810646226482232023228116555300535105038218586342770445567654388809379684466723524661597814146334454292320554839354519169818134173415555909135854754615624731807851396522830143393016837537884255169308955334326479103044781248059954939964752643590756723122415700654398974405424206720759253546096548539861395807050658838677992852323052895420096605322652252783310025141038256951286405178464207133677882552495966383578190243131752078397702146786383556201068154381695383975830486061788013101453752529711055007814958946928826765321714309859919970394003842136924039727260095949225932546117633456110940530493684551596527913658647650502473955778934624877209450761565435320811022153684819237968042262978235556457915139406934971658736909577493032152686341696759151723660696725467116338346250060997868662315230919484963080071197888639690029380431692561016846930197769122608614853457416199583434957311805469593869846797806738121717163838994616380924697872800442698795612837693384568840060868254738317600792155751164791365798243273456837864515398117768403695908480720763837425440889974056538345225061379776360118622138521949803460719099758539555348416926551680099484727667030791009078011619379774966167890135528068623358460317066717125925886655055794594541574716691955440969592847393056320634311462114175588965174017342038190827439928377213754196234439935805349738525133580221465123786627759443863956540525692947947738987930691529909290070863962528627999292280134015192710575996289212551902334905710287942117400730926177224548865970572355262056777213996081815255027341258878691230230453831610120861127679511758617055926672976394994808479580865751500421288082061674185781358904866986941981949873985672088650168587539563356958201358120668913983133881190487904347613055957903233180895198966245003823179890384474121755656078167327112654181302536657629532927990731735380178209074125033923114794114298593515817117041481915720504185204260658582036338978816869863053852812102906804473252427313127406199715820162420721026144252305822561395075413857128641613597183808163623347920948090675268626447177908364139530970923797271039318619859054127479788389204736508048825184195551737581340659040405122791536187482955978456689742941987398307650512061909507328363393567377866047816329923317839513130443694766379561803777572551897031288770254814506686342162165452690504595099301792297636665772588131346303253793019457276372354815412905338503407959680282401358542101224186511263806224428475875101492688635555700499921373562361522875349357726216668612587113001864049672077802055766080085489322962835771587619696723904944678833861390313182915358906694696272089535682742771829235615099609522901943436789721313096252534446649307563846095769037536205251898305892606500082870650542465005113243296832372815046882579509513049309276352728261274249674743897037309910222022303764528489263172382658008782892237563860649860119914004667658389883987796530033865143904545265229904067111233674758586053323649759889575772051593377658304967679004079266740687466540258696771523723748183468240343584750788310257435817152877340441529862180152135570176385738552504518076575895812523519705470287349370090910620620122644668275637322647604434954049551939713741261567280970014799970909559511154862322629076866179207248060558143707052427604093054971773579810712103367812608422770001217394617787122807074793742585295286036377902265503972565549878645530995566268698163029259607728445627353520649884986630831671490506090918195071838616507801171869215975172634842343085269269717007154033823074025546441399954613056726740688108991838196902465962148989442373836646215980377822736088758914750259558104310712674069105256762739036706057460567247478988327750706513111981418501314252901648498315737272333614944635530362953335659926665809382990457903497478582344895639809826763566216042292120727528311894376945753201295734497880578946283847958789096053640996345629625407463888019561636557204525477783897468880387252705985814449615775929712251250517903204638457589640480610801154213843471730814686238851745248009068271087003496886085453597389585792776492175958377587725392412010846057580739630961192975784279488637801409767191237484873125344526683258577531591923243777230088471434265254704170432082088278526844090253721568313516496273599833877457028047397660141304307162818074571129351474820922997031359120596162893783183899376023759188368315848951923264429327640680330758356011919586253499580321298500242336009800934046956055951791743904779112470191017116599253334480953387326033948261977041315889522539744432175048667984491439444644982722109631212673635001070625944482453724975705015046727004232513804311874397715255395004421575767236764515262124649935056056815082910127593914584655954561793859680579467832193066927401885821015104761594950367907460034471486778415079073605204883616326633155514112909476829583341915393693203235204110562451635272455275070048523286659893331006245603372131487920726984230128206684252339110010941868209511624866778880516427250349197117784115210843176038144735665601173744507380505007922844512129950014453768205247368253315109646225002114484167805002344210739010864863507958671165992780194237385415089044298868072061861549653095281498618492077246509766428195213293729143000008900493040401114032474652759838377480947909404709558585013888295297922273266572297850596365254485062745359824277615865894526518583194315370630690054157778340238408851424873427815207737831396941476376152890185469660586410089044535734216934226320103305620086170262863393709564472271126803255722066992039799750661478064916575428426748387817687701059540330317219522173077342521788121379734687678820238447946530782074821017663501577815461729499580508626651118845204832498251163021392777536726011553686713843419858197265942283138131619842169010378891923535260648581717548948720088712639304339566263051169504634170046715713108433991518856011555634639604689019304964428023348808116345089977485721882157695104052989096960561877671007307411062680977965779595218450266044718856582576168017668921984320102993014821427062074128923591720078162030214539129530504505608779284657564592801569355303653244233676063772266217653875499503752807930440755864870054673659598301086420668199671335340435514510335890748814504570900714557463368697012082099235725376364286717171757006055407442313991972284007427349191892871936360906784588190320757773807486118655863125702365734682309890353995682478654599246514477040189879847001597401955919926635517583931225560258521261934512628477896741879007398755772462909212159897832412816323246773677728841838628171784349313060385991156967372540439253261666165046720879188548257767588954920221212013178026897234604002670699372545614375820264821648551531628618903843836168757552064637377720011593449403231389128365369834897749707454463963370016079515995556074048606668103853964856556533466200680374197911698097937185732936159676427221490141198834749646546975695068438664391593058778583993829312467894587269299206902682744704045317845965079677509115450923703439014090849036260372280661244856799404227968847024638594195090398571756606769254174503192995369765402551588450749385687481091524488867529953809471200255521500699976003250839302324486063190195519995785600943853715315593332699543075245230073249974199716328627044352793822049709151014208202053745063179701026068580769218487704454387691068151540983367815480697889963269098450841914695653806299611890973379085148192409249487764348475710529304370470651891231751262676096876432953388476521971836303742176001210520027028271548479397254955344965326279197515100570849457175643795539138399393405906530082330579819578010735847078970013659302148452704692462600078705937393557114972014624750953246615954363385439298506930395553100499460121621715248854535361736772694427587846768868607965211312445504550822193721272735711773875018831775953892553163254459403330700338039088614588783226901120215054832803092166602579391638263289577240660682796190360102832002536020301036689175781505259595242291319900662908705543390964317874915462700080717549028894741175206446012291068061693690684028468944539133071974235815125219206324891703904227839891165741884510391880836404789801173368803510413944341897078641481190212300755102291454191933422217459192243473459120908584588522122953781393142469539133928248465053714125266774872112980531382212951787655466997109539593062869866333226684402352520473447212090034231791859121880971693874870901369105494327482026503479242555833977767428095853068109207977495483265126102771677908226997370417812458633763720757874605231871120650430746725228957132215792701422636846875199089351118475509606331981223671424118114417857079166301514118752064495970256982860534365529459670443672560078716098396049391727085512634306941852070399160598906416059244534232951944442406174157374170734025242886759310680359115025070241233857492019469574561938707096293261156377648523482219672863251450747034692123677343176370190515218518704372974328927464194777473787336858591870201632642916940791911429464177377607533025612531970996359285864278684104790069536348066781306102178441401272412737403359260790857328338825989763199429639211876514344396653829577791671844114370346438619945308664976609256734999543559260742467763165469133065197026587965857930596420684451855169352193753699091551819961407074679927337774874760119618192072854120594978039150945446813320780918123396264964744620222360238787283157079471019289868055260688802831068672904344707006489423764551444454143145758800592466629663988376026576635851935688806426688903960089615534613850294889480169887714606838719269131919289877829133240860165928486059837006654056904168994889742425918280423229913485525745323025333393083270078623464975985745857344487208101492647324216083055717228957354725620959966425204487666261069124635419788646552272404013934360708545906686451258795492706669291160197098585947806215173522234845914843818282364132348608636478908185076079623486049367061020293259097191221885637152511362040668046854308965526005912404267753169096002738960064142877245542609579986926209102947311996060111304627072239876079606495911197917049233988751344138123299870752670831389570236344212722874100090094345359094781038495305002698235945714477874931553250963078862498459573502401066952749346546895349646420495893268058204367058764493226980810217860246789150466614655257861679976476385793568848905100029293557702380743698564580678169010161869276902217360783365565275975114539094817971308397153233628475992914340656081298019631403504274799802150677357639211868820015840754592140426345278995887233360741711329570446643517252579248284732400259956441740289774471465347957192258272663666121190013416865046077966863350791674150473992197954192895818902350577658139979116380374703784018926353764633270340666645620628361852541920637376112413976018342814255229461283675844893332303528305738988545826340378358992126652293676824323775102573760758498259599170127917294620749953125986842992644385714040402902850516123124222859584296867411662690772856507433565991982094014999857923619982337187408428137642711294255685467422301808971647559683898991093110396519685917125307479289265789169210180181936235188881765698841727348891653520606838265878671423851299930916367941268083387825418675279113889992102646252358967517184819023480356018216040188150232246653796211793386696936062499154322187907965945164432985741538808582564172806507030928812131512534491830609950656584487339128338189174266189852889260066583422118623564839047500790039374126952063945597728139493587310139138122173727780710400406892513146742047553830099799015807305341063763726937275973998070035556443852352822227925569050890016036763628532414022102619116470707190649946418082493560017423184130899453262950211023277563506765246301229590763169211331146857916297207705795255819330018448453912445423034233747025483844019239431182908416754572756026241745935734641096180241268217145928195986618855010946672798120234887971927035281564123900924660929917391814097230553745831251486359682049755778950842075274079648196535584909668491786122821517425552340236675460332352060379834959238876964965543641223166440301905766360743456805513087124195198904628226240375169294679464078135468480516092405258734531649072743967235784376030889229002006174636909087940339295702979246405568364376197665461157559092516386163857325486110606034633982091744397002058690576739989429247960053621522522410421553498506954416176580393287528513017826121607170210886809244406893564795002572371615355448513104863253702100200957954946977630217148358515616749513458605108611830993830764360591142418156621547843235182269210011335347146255974230609354594041381736587683355443025353643979332165514754576256402585839003098177562789275140341711861014483979223071322303020132600293025389715028179740492908286728659439173930078011223714060717239126303420710386544077814370915238032101255355246303107457423640483839063119053239154198360134894719400872680649688131126906307690377551851399091781451020943295980521422982636856843500106154213993145006985667363167243407581151921787332051288886580662709755014281515461969711582856090745317909661103579374118930325332951364415525109845323347788873120300743508151603119190852320013723996843115693653001306240934815989069172317207167951199177932542190474179496106980208611331321791938958332617759318412213511817594933296484336550858985538854954824723070868695616486288467719503103080978592750261514587578046464643200622209932364180674493644827602894864421260631341403013033484032574420900212993367590046594641251037508483069628257539631891353224949701486243227206289281887033978267772113497614848081544080026095769972204066483123917385107716179071543611709809592980156113446693471793368472916258891843617618417826377191735968566254518761539011609474639425611247394421606732997804095771459402034908045738346895786150314151802882736661943190568920904006609281948992458989084718420605385830372720521729096704706666531650468785277539218679301100125412576939901537653984986867950738723042799488286276165004784962121677850311087628890617208617856276958844206414537077550374927847892034152671657396105840460443269632798625018749988715715763590670586410285906809740879957021734078372903942403414016058859797234587111546235215927377699464419146470926907981695033411987892361370842895556628994002614648042484591128828728279161167307889273346627450558947072297170594976316819982439395971137979699509663090912992300999399883358259617768394140782205935618008749657621064204129602198760321903145697957447602465859725091317833660309704874791257250356248072379629073242203263215639710504730485642322019707916718110468610320472361440365352620502966231164050404508615376586015493017843097763661210741617394187270643690432164305036032310601234162689505520769788462842243774637747726561995300673919824451523023999512430575996091148911038097453000244061558290288263470136769590751005191399940261335781397430055673702011154538218452808118212048794308412169735210037949711301502230110855780178796320301356539680737980526063247189235445343014386733436137448728124973417267857889183879257897969567467585250661115876512415644999806626763142891138541524558436363631422980635058844131071249198044915596822133224508311494080846430410134943779467071526053744905968284431804463452848469227931579059021928484426556827173841380971261542709045028623269461843654708555856423058563583012584349466102680964149755197366054512986405046459421820508991834655978907336546391691345758764221122055748687956689925719945649044290644996197193647252614089919843492533102359022463436399590832693210728444636111901553835010262010998413578506509759095255159394250261554143325827301930521938063652159021771086839832389372696934978345326470852523684374458926478454988290511487552133526646441916898720239899445598253218038421045538777707842061967660343999938270249937217220583590367269277171737309244961864400003427394465187295129240649236150651218689608079751785231584615098202275160669042198914258407876845645292085361793302053348674865761478722658741584147055220528605304982175985360937049327793201477761248171673331510941897047889604966719162637894339106255790483030129957163146190562935994397819059122859905133214341647225992273024157789727393531696171772810823166514343264139420273514964571847199391826461489501209588865993148642807110717183335055536129315395996865534612260821392140983138351199847945288609123721085335689035167553930063594963201183003112140555011659545636338821443822602480729059795617796298716350419344077314191454985618389595978846830159697989637285331637972202160536004237055863486208691287840636326821190181246834352956163047654288306965506014125605057714483096307283835233727797430706368454317810261471923697854432325883497100297508783781015806335622122180166936397358200075027640405340854439965657415459393236296800052269878377017271425698307506358666033629944570139869677235052540699723359818189738323407603813113615485808622968938307897462155042848002130556904169505851621524269704530181331212177113609463275012490296594765033639031377882574240209740516424200063964368309283399688413656097614839544244718984755170268177660004333077663956127570889593031359579043571237654215955536197368019531167524362058748020406350974179866417238126752289218516998166281549115582812296599287038893867438711678696393578249693013854894622347134039825860515314578868366444290152819612147923542228509188042752465282483654739423607906427260455214805447894079388521173339733394841972241614833034843950851455625451564296345899255559125443400026135043520519108233121907421109716328989765952500097769741855086381229460261031440477410521389319047399940951007679311011576619972148266404838861222515078978724645720829762339407011102434354294356141499904399874765162968385398368859218532730689961131195007811307560834014323518654781791775091738801191906744752869378510366362507822941545543348537397078506332007670513531916451401569424519511501023769034755347020167673620743965990383734657539858670059901539419103858985363301130995887057288452157295479643216590551226082474169460522076044813879943159602628539108485734724733835533007297111286106255600352411249844531105807408255331876293836330125197126321537473809974714392967332192332013584677739739528490194579690523230373214578916011736851457480200864868085351093415787825144983429648724995062979255011060303707393725884581700572866126107374446785939378509151250520766210181387210979167343046848642102454055856679719473929104340790504085955594920151237575129629420963267492036043368221583208532029954449823214533651199114791727449019828153579543287156112425585923422887894766250162046947915070016581877593674892170023436803499594395548442251417482802433130360831072815585009571431884477113974186823757751730340625236447841797952255165136896110358029678524159775088183916706996987263557901731678918772029498740482421585429227480424713608479412536850877800186147060085085213085629940197358967859799729467291312784817556410726526219933715300216828150442531848945245061668026748047202862979540099564304668938869614170619492909707916125937137833068441128261444675694937520927722200472309265608648880472433032745797226134977419895748335159449644690610884286423861404803019866675042834184123583321181541849725411782700935058159824866837794372299585096885427111126411986751638043795519483038454746732837477879213846889154398982077719485377212073524166453834305497252739180487418683284620195270443102936213134480476019210765832846360519858362765397183638409717619089313024206923370064718542763011195688715369600564666092287833176347225013665465405017951775801670210319427593820868899381056654011926454141679958431711735457204998060275778050609707650792792823141048415130878298968359844426896232188040822558471673113607970992946272486095129713633225509158284814783256098896868819738647834339561453275723830999419101293119507799464265149758395010611645451011892465150261467675907570688485463238419570831399768449857419084069360425214048017014574131924900264147817907555082823315327367815336901958031732378729247658303756588332697666508664218287985200794257374132944232270574350750727561417296741066260509932699548132906700857365200580686859667243793679905145456658717336268956901563692459212831610597599100932588568689418163859635935262711852405587005966684438303061109896401741496939027472144334293705247351470715015312619670287634110218453227371992367646755478193538203697357309593952560319112375748505227848348646224971377284955354918420391228653121171538229175752805955896455160946886548027197940071410679984280385070549775878905017542506032061544204751591841504184564588628469313335727667562587588470207271807021585141303739340284828379953141736005445335000433528697807545420304907062060974250408824227897868559313026902141162826160159818531310880180603502211826196898096840274245663547615385807563582975058707666535085381004253313357260457736778407736773166023682821731286030527136271951475362903683853557932436149499543097002355214067651113585249664803747262392540758663295074288295839851100457150610660410803428742742418363757536638467557027765964275178896707937722685665895550682152781404155522131719353279297984570642532397972201674002839814693816404075824253391054233705556294844268040047986250406345428937729588388501105666589490866802254789642287454446311472411075734387131470820400740093278835504668496515578048387982735906671806128176481234392581081715024702237238742868379658954569639616700801482810323612367128424422131099732030046951381326628756784899671826466104065501463568050639563772510101465641401875223043308952891018976068911578144441632583379467080185946400734487366104394067987385216613784228196284538683580440134653985303833020132541983467493832623080587501200552910580387833664489746868962800074285483919192301079286000109464403112645726672626264362816086225709380034624096600610861555272586754828991895431985876182550932075448758307356528770576741325164652290021140344066004519143788276301032721631534524027074578254609202482894638965191027429850445751996269471465583079346031233479062396934197052725967632041789549560361901097950905652967065005118656078463457808344477152049421783766773466582554912737359586263625134858809563978084297257631332578700482786825631511131622073825789878465762503176158068045819175324443712210024711081024005182462194144027905919899538060456119608104972524073297231767168131935691344374036293083174986708696530790175363812601995942654908890419323471587973259078228966839752302065025812305927717310918725236936297886634728321734878697475329345373860688925411745590870738975227334657276581672859518894850126617907436931739301356069047369172667274278455706839729153353571922806277350730044439745269675822475405305536339128260730553495886943978846419600417696720875584758009200432787783799935258415534999071328083715013661009539426408173555606660773824173666989866115432425313699490076249996859393977676007948981674245001379402378677794426980267240331318357180440329104983186139714332180826955938637206259397307892255889017845346012654317085235528063386873619216263031352176918337330098587898421218782935966640194196545425584267711291427070925379536943188338394365952385727499745861242821743425825245856996177734640741197577142457015245137900504916117739375105606879266487076900226559878220430633886127637498385827814577929719757613218493278113121474091048899379844769504295314957573845040172723348435132316429874940725389562358504724206674504338918237188593587456167795011683127252607751503129308673694305726433824885036859157655465035360720053533795975184591375285381993326528936850981816352387978993843310936224107894481595968281459956799826162284020261994666461084962598459174403248505257431723927586246804406745988518024295563704853927310370518098316137987899029163547449579813094106959392329963360033114826563749759027122968646457386090464049717052477122942775124043977634548251845293635679537111368997937839192040639383553789343881951413585633683672606306981388180907767830308197745074177724429144644994010703186343840529171285168058193767499567609472113991173970776462712404031246836483007674311766387567810860161473803582779317605856046161305219465835785935474752577060321723479754239257971959401142256178439064102823259466292003587237505454345320033969037755219432508190691764457993663754514420315138019901951549685842899028012338907347080453341699515422481523275917941376391923154193467282495427068417616236099591421707715563704837590335519657535581229465755711280282924370943571350676366252335329394008064305091646198917434562097618428870235580279300636044830749598065140192708971195471528739378692961947916712913840580391769000825621147207510395769851525935304316339761556290003444900892855882433597884071206273616665621437993281396530496946245035342997889397052679071613801594883704892118294441248612659653583975136928606372354481596975029252517757654423029357382108238264429959289784421918819673754123352000845344506641044028018683895019948125698844244217215479508055917934148022873302118759628373786924825432973392330297425313771549609699357740433848167085601831660598774310657806996017456567860907964857946012437452224988410503554798580428144590579670127681348936874265609885816419348840337449150481789370849830672445338729531871580328588673506075405636826217907377312150908801495238174943054154251782479780239378193029753018887314577813530451747446032072008359432845047766766601134822394034522874076676811370267549946626861948657931414486120062278617402023383658491580448618372390788157095699023898718589315141516728335932829623938079284358768341923700023086280116567347432203186359782322256128055314567730524044346429523034669332365974791504791948433970188347139448357006793359082095866876239331469640682789551606889379132945823465979794920014765945382237259756771804144345543993758495974271197484723440578372461649039575288801033006836454128758786191461639846523951112322372744771723624252875510563069442356487676438497383171478637133812478542753878977844276143915730910381618604138116049298041998904159819437552454891152155625298071286345377722580013621668656183986859943606840115135481130358619703588443963861313279840395546612207732329499524695966861509320387568716486253611165936703973200868893745019332160287550876490905042704229761149939909277594660745175767907193880625240140693086214396288012485197959750523127219472308293115557318768435903224915044621480971876809740956797059497903332625235008896245038545010485182183859565291188041923334732949019596205191111688156399477041848155914537766080737591028752347556860883719975501821840150190930657959635889468317901447061253416468067932937920675093179998303810059246744283040802716281915432641000620417817693887817956776313453196947854381899086109777112642548334781614691139078480610054476462929473237470432611244694282276880771838229850024554180000511982321136061730266116270807952181722855978135018783029725061822798421148794574079691460974734238894108106374458769245465454100397700521619378427125336794393586876980415974803072185997908174530564238235724621749272652250526517461230176339680289181164491738904983226143605484397446558389200218177603849684746583779638828166964813648187234830775430445069849931580113219282805195348095452877896057603257150797830166176694318665881409578321478332816215188107961468393078284642800547145701002318020899585869031057592067312180109478081915532065171018097747519544928410701283249645766850838168113863493621963914679612110768989433436319570249720495215774424011473200122113405342123006482390878459507276953525586040418051357500901060707563859466645438926526686656833733304912735725229661462347090660276404251985805569306766339482322691894113402893640697961413584816848150022006961790211668093957267997419502093385286366133940808642666080966706902733848985842059912156080915609639385385483902023971192965235074367797754590585782756342831948643595133078746433678092776497137651669215181272392773238760804224083141983857700847750290762725453954711080634563282279290521975308221841447684871133641314092075167469420841385070145550663675013893978716913119968117652658839025679718612280009879775076886888756221319860738900151492910975106800645269173837172778184906927680809197859733575059502942944473157631667820141884498030072515647911165294709414411776550472583964847313115221506386678763334602688911531453844690864188396279588113758793071398667462166560458311812312006823447413045899115198924002826062516706347090220964455977016380099617902143917780258443411981127936630968998687669365955685617937513324268779143451797853045981501897049120979696517744997158703158001601894103685875463139540798124166563469081288045888267895021677667381619150344234160001412659702449177183906767067958178131167734635631751318880668040598368302733569794380470780316975471937909229560110247040897140100299824772101554490667300495543883629640893500373531848431824824851933241110421743283507753705243322491353083936471339549612732279279616288396742233169227765225426988037865337879594610425831567995104051506099364675668411993270477189913492850460029626686264066628501999141757122085899270384125595515499849244340226615526007266316945941432121997600411049468445444199897355118169420776274396751477307849013113314070240664314139281391585482569027892555254711102540277952777780086013389561932093268561414028874663189495711036795529224534352917826834521087765689299346611422172221403556064945751285191209668708819934852690335681993810821662293248821059602257262710012831278212616565601973954117243916968189515450680375118525032783380948933817684797456310790847712935282329062395484225657264919751529976075218515586585875949202027261140017235747062942888969600854214015684209634019394994078087200206653681726982800444540482299988726562076273664261188331069428359000467542058987246286702479014861207593587569208889333165648400922567622540991448443400679054463160458717757471519030784052952430736159510196601299802153338912662968733216907937069570193944329280226913478279936842531305694679737802871818242172154712190463864106466708857264057763094757846920962017813096521642492333838614352221127961019858668601970288715562496994127784900176737343187964521712818107983371965006506765271049675710651096659345148513569740836216559491519269150989021387516805170906815621415095828883796704996505901113785797311248112998830928165349947840277642168963920137073804203152898467914438507719271848385624746376445561309777889435268200797807648395621829068638822374099563560656088467360204330280205155411543024162284612501749716679944297876434800440819048652200889708469258311825914467780076785409038605829292937172488795941053841367905148490102744145544119161278107288460117496292813970260997587198394059763877706553621451901368858291172827411566499574481944519751741463387282258221671448964320940377159319982962192354738880440142009432445366059987450004222082352191854865301649413564134743477061799190900816387309545712349556207798976817556207342475301327530144951575055931296157865917942254661592552676356244334961170191535888561944290252421431393909090809228341254708060585951363598317124691685727076336895584645710452193858853151891510498259004089588709503703342101841649644965432354205420588701613819471123052063264272274522907817251603606883541063585671765097926609081234699197791425711562277387198909919585496332265151721478316147384574200436849322361848353210941391912772394840815925743147288724156081899638111563899174556008361925028777881392128790432895845376750179233464459134785387500530839918575092065725000282556629248996179370428788806784622407272146118095977283325015278918879191235561141138830313760771331140626661797454666135870436951249429274405405714674238919301412854716973302515382596692855184916643646803038135080293799305186380440608060883395487770068674534554569923886814176639214790795291361793952411906494660860861380314866723973412159634816086960016394865065436054196788634412246959960803421327017071306202884422921889556635595752165946851495262996347529890002383461537798653024849172701757428002505182858924671356650246081537202206801511934271069419933900031064423826371402266296485199673355765547731196849143477343538976222048048897738832462484822841457281629051220353654166639283141818868466716767480538070969469984616249451320755188101147272118636151496731983079259452185351922927332293577939651108903732245641098648094681142820452052863872944971970399669707168670780850122810503679177820688541378525963393232960338454854011515188954021933603727788247164499390797750094931642926548704316568649812948996139015929452837660214469020872465199373293243079523483902840264550259827081410432459097533730731643705858343549429790338375811227208880112249855515728843013141632282069627383113488424668204793350628265011238768973474378766373486396636054941149392930433790848562624333365648100613555411106309841561326138017116352976699409792707752647441713382413449606810238068889514894136564571025176575995541633973618959917610859652963186555183717502333015139917442450531794550211305300097935598019580233520238132158264221725671564380921326507331959618924474299723382920425654565910858680840375516082522924737297084445233144229180539167597300275899182103838827562203421861022877510003130927664929318872549679046992913095212903471542447018269811845466693440838705775588679880975944137484760194436063919293468072723395373846008386921451896585214870280723349275420426152692160477710117068805594222634608049147915131253280431672607485203878970391346138567287356036462849395762013943964065677473155428589908457472460890005813442411340202991376392784069744225932048829261004119610923996321308392167489712146280225153590845962387172140457452871563342384029692966037258410765738040544791499048458082380229909708141566796098661710522021664420991553188927179885963520555619343833918150584506300040450142471012033741453884628244320956285186007822726153590701485442707876100124679459474899777009660461892843880521475356794921872315660529995642407809287849320064662389189453654158059065794139726637839745068467230440427828855784555889053368760168800550151260803275275164168437224974438186530883524225109362616054001813241181895350373130492183605785896851337323239596270535763841627181563621588865552010409272572210976024343098900292607006756629404642692816936223914972275564563080995953485687077993595672276765496200791569533762194527066454851384875507012215057384761559360353773924130283122637362593302827657174526305526210754823997236728194505969982274606271893052747515168116300334541339963175121700095265097427834805192557448769538847595501956276871054753013216478609455096835252873809886084203766131776099793602054059214478139005515493785744442521476395750175291437754934918435355796496343692225547645271529184168625624273567899994532189661146310032145970513916293515030024514190346547531886693174589329490240265501790466331956512977554312525461560205081334806531465684362648657253391967418622169158637565391483497708105724763696873834644427246026097270514051777756516645678619461819511126632042434308504576932473050151444932345714692318858721586574709375224413449633171954264332354644258568325217730141779187938253146588733574014205830965924347884141326339677817352789930454390589667782761446353868480835392797140351436668982932039249883585926321486358029207624527183884478627561214097797599719193813854561262332801556862084324641818260474056417434947162307257982737401260541756389095927859632364568779997942459388441072821519352302829198422475099714561520066270195464977102972438949399124185865197523830195660906869634030664231112410016727431640920407833718984256777249338323157278804039866969604907323568841343593856660704044341147025708985218261899885664303842534096275806699763119690146070927735132834094162827354582559840207578222066721034584786738092540881725225255208636213794691833385084401812026135163788141123172844932031573324013275437954424998515942124335776313048337857262066097991774999696445352802436916266397870151713403693329633614190504065113831665440107545857060330595427340232506638553807591156062276614005891036657532160131519789150523149843532629859937018951634348452917254790279683225942408889104863941170419960424079606892099648575146732593564259831033565964339696562824397468737375827898455921130530192912932439520466978873052767136644305943602826036650802226811581812060786210084794953053152473965976369982341523252326200604694337338506130970193161640448217321169176774683350054913770730295984607299657425615558561088092676298289671782273627934050321276551647701028841550572637631120353464831574065600267745230744343424734978705265112141007155068048584583796904946795572857054936501827256930842678520247769608583997623447350885498427367457424470598953253114385570132693262626228363571337497831825655213972445492405628200005180627263816344392455872236014371985435308632720040904348200972146674718565823461670679146237182893652164484587258534232288577582561241203526436487530812010961669726665354059972065938703759766514973218372830700335306256574753080722228314155779581773775916631313546159837640291642402353810210035350568712128037122205296377770853329698310145913973243736485436883552174231362714792900534764648133520873190117022721845390560254358657066788711830571217684794092103814551357696720126589321419037213207480138901591323586134415928430296474545759315632057318074469257755694497614965529138771221085702189668763628218850122551108808843960266051126017077095147921263631070852695375114966257090167465877622077655762369659624986962100288261601663070503498036081699200783891210880334068908181717374623283307492891343595973811156510253337258088212917889566476915123947769795136939415118057715492103950067962889182024950530811839113570956102557925403229466189178606442653536706829420710381542208594580696560899611554471934761022515923017558148645197863431144213033793068459137219672338939567019449505330325842042904099168952226747604823558961244825385147051143026022475544845594722249844334151850208426826482950155701929953042908397573187551446796743474214967499134305746787239325938909688525148933150147178441996943839334351484384924981000056399907108193064702497534007360332265681062944494123981760252382724627577473266489625399952677510007718497583713564008473066293145198037840304404704649618200296843897674086266763809461314674458957619368279929895594494640042798523080247308144070022313521659098481563510372553741128735470400795654708026783733591275908909415626913766809165198243084867574545056121059318356179648347962029580061384728666788637351971558875881982875497127291792079622679439793348334602584214092969347633744662184855805185849816322645108080816169164057262570279954760063374897390663593181837770039088047708607125262764883623303190982112484346643008558655103285332460618394229891635825886197227951352846066024852263182823812918607595467633768802632640324254321325874817618656908680235059805021442785484579107182970401365351144506441385299113344513682737040057568074297643140949604418225604393547701272229807416108976247562426958008905851875568328214307209724268031016969561832491423012711825742723495455906525308749271032700207844935755429485919013066260806096620869559319074400009424584167261784025675966616400731638596834040215811315105431066565072576013376751184358865529056664557776749593246500921839803130886466057468427784164024466210250799135983748665804064062693302416091917893849604256566801266047428770555835071356740648388719999975080634195643608362359270714364292851385077660093957020642757083708420787156830903461045805287046135660017793183643326355477386380581417386064832585669589521161475671032933058727128560923796305101211306700427615693155737579260216336101060567935619417824464489232493271672378433269970838636151060454899288917809941948587370448218323371902000465911659118434914022943432945903213177789414289290713488721403623232025201312603774572485244679648746685015339107926470978539831746400817830581459125982868016620825003969412504281358126719431521247245727880326975252149179163946556478983530592785064223093304928397877912178912565713441055117102276601749577363409289715578378293268011554450997239777632783045536464433050713013702445389241901189729057597632944993293998244092440819022001839414259846272026544276061925110935380905937352469839115944033465931474865159274267389134080417839772152435185514951057422384718765115076117615084996194119895631305832657355065720411109709246873526864656989611787933923662881185130322789287159441492257621183366470872983956947657690370754928196456621279261154424842032386361452522611371688468774731508348745127979873562127987913634136337696209828387728293956387556832371344464547059027699739285335921607174587551822525059446097486040323281586546512625561696636516031372585630762557224157422090790034781693427403218804762593935151838295474283769739190881142905116318772874541083962141413292681690024640286553766013584280964456567972421969021782211050891750297825115905556421715076079860404061454537271964662897176471802177957039554532213435787788346625351544635082492709259773778654127821431637723624737782194881244405515639618452731851444334669368456767004799402975298445817663269253378439314839294786277881604459326365431853636229716073966815372803991717885626731331467064466791680634524287828782732790078355805017683084465291601866627666948147449769589511332677733843379847497150234613734296991557309523133240447710079879300549018833130299481722815863390201719228921002252667738709584968222688714768852162722351747937253542059916641719691074514215895652993206161206593622529816540464926894894769961579903604009737498140037832076292295250248602502489273434466600044223907285168925942868955678931169753099670813254224957986635592095795517882923788213220651102431250461154897554697121563448309117775717299297461676651315989426424355687190299794108771775423155368039015447804129432338592090477951453478521408220563097398828985059537751495202838299275165813475267803041504776965881628709018036608791291734980624194984074416532775266719556490148279984008825864273611616945527034138905084698704203224483866367063327729293583030687138097413609169761432489051108388958794807035550529581394966466016453385728313360058001714177559297139281298907378486273016980712887409285810899308238944091190250473173391145609541807717335293128345268653961255170814064664469132090988520684287392812079854587267284720567966851325291802140181773436557195796116646954608844662323479210674985482748408068348608198253196745966412855030953818565546932464580279576595752719071159588045041395096913376212157821315769842431234837432760953995044391379372985275131865133767300147984990295309740827167983362476804179584506247863402039521215557569872709368095786296600306708805473310920312711635410023635996445966798736164651466642145540471966762855659671721635082187675238777716631586669203884106855247779955573161340673734449766831157197463372691949290557908374182776284661747857505071021252626135297936691337259152478031160736021658050409374698042015363156877824268528363219483057753202960266789376200334333212129682688855108935876717383782025336296964728064416407962491281608127841453541182975999187449749663904965784855097744305001882409139554442129816959858466764571131832101580603080861676701598536532541369364219061244959026412612376766314003037325759935212085523696269175790462434809733889254411525733937347116558185300434616587834310661791719167230741239721728547790627981842491625171175978126932707310182512816567270065680266513984526354922396597124517711701671221963778353154882440733755944884825008570893065333613346061720123697988301742160025606420214457022016080249429682295148788670057874147565143640197666774914828873946542593699903125963312386022124462721982445294732686073089559133765209037224670057968097281500218243177989799225327493501009198318993506031238714988038197952881106591513904203304144906725604647063389882414948115300639284802713086954005874615491563205342146504335681089974857084372040765734681838984359672735065149574575366038628766714441074007765226218187060706718005030721430008657035592306346490964506088487131027384351341834564248024304916478400006251971003303321908343094774829483982086170877751821691325193700747352309515334394396201263781229073931525664282877076472605357737119221138767671607869253190330363877207378126759515540787504374520671951718021554518401605841390890846362633937580433066928948038046807465752981925209506160328346093298791660473521075741636333557443505747114993292535436642213504434471390275465758005806314797888561065309893706063861253763179457721407631375664952995530133414582726680779166579848110388431904871574638289763107845202629932148463457094816877667978896070647207432515160581315035185332394826643377052268270553476688503949377699644088996685443097272642242738788747667666321569170332205843611526129984095126372211352652479536808305997911388563296900930037470889978163387047399924678364473237267427751123397252913616012841259840566206534445490510074474723543058487588346237684063745647965332654905302613439276091509603154760616924783350967077780288137032832998586067228254518030695724846128296439504540485689223180219179925830723326230661370018280027202388665111501887173081279394298268913409109151913986492088830205929539430364673642102542319840518689062827371771327160083816648768156029723185128147970822988063098717339337177292881149171820451291954880047672795786729616556226146646863381090329891563434525998924039074775934014334304256125532579939032970818805981286539835049623788911173977345101696546702568919045918867875420834768793031023702686867435720752904467211269948904326597835517039228888889252266287243775114266369403688116913212268603893365249114931339624645065998404392754897853671079266170387859501783097251352953893035641585197798418221400043384886700540527710505779130719422828817215557685479722714113782597060330389006579467026865628142229468356357630318498982259376730943898880243308572550754792226401918587887295354662728206242669894557936610520459318793522811736051049306477448622917519375812142344480971191429248387863772732243682908301620294176832633933400049913623321073573669316958962087941769132127032892146113776868068655540323945448014615036030368696045304951161620559973339094713927113389939703680036941236751766548780282856274536654931681859820759990255723201554224060399907582240944351399667196221382595691766550512756286918995289846618764790109662345375827928448636132908192744116713366902580351354847121407826427893815861371309646354654961146948646330038497787314564737737661575881854914278584556134876776882517239947512688022798604710366213647073395497195068601109538744680583398614311194601432582384388997253882572619669268789336195817833084025856206959831478445353842282466256645169031637419843504934454328920030698985411845544323974063748685524509351064620198362815770934011596937904044690862009000613113850591943750152816820085168154629867156003464205083517526281682880262122558560791928275257044726515080291893764106454811379955788124083707746811509018659991815932729028492762989638393178896516753896782821714263625598756835013513987366964983036086132029712399569312536614059901067657615369888944955176111454705664832801644755310107415084176151406888223001059955827873930990334417835839942671497367951764268062310054543101903394101865571068788313003049818054532608307442561063456954155023370137694125765496430136393238906350230489639862482678397164186647746322331862154134501357103807768085119278632832589202825082973787687627088131827636884910439073115139293455613358150318196685809208104392062976412102262838860789003850831289843410892478081957384853287349466808223702737423249835791201597425968636906552618513624055896990326195069951422805806600093499472606812555351705254915581327446925144952343484513684555710093558323894100728201324157722358390492657965400812794656011747840566481604873063648674168035329448264789806076937202515422607057086679870935376521452327210813732378786622035025685237136916742772647707480771639766506224401192500802615674740177499819350704702449363432445665348332241090324732235316675603022963149441544179477215893559270817043149238162262175199685052562292086116872942759238986336238755907501206853655819150175093648852111703281460771307411460178937673498151661626284215483201486530497353890632567384822604995535920284403678277018962931664822572486527498132717787077769198961750548529433327504367096046581859967194915740917022977713814579385774170809294093280742999738329935257893651437906634031663017886523298470680281761284932259961326166153231541830312426565288595707129737863393893051316471623751536285985250226324540956339354778453008324198207355738437981937913487541214241672630097335997781379719304960300385625887764019748108686801109404051768529203517480158322778653283591902886885701417329647613549439224483927508950154742291231396990113220143574141228228690366138432349530498300342833288485799751687286978596928133799206704305530338484272052075427596107980417050151073765600386473513590965274308082210658998782116441530604460150261746260900932818442596423284257391224834783869187259187708995078319359551823470800031282499535421354107089896164971167994258615323295605963076996507829619408085670914519446237712240249984825669586993361285840241665353554322427704440080168814716968714613152979942557814992922028313020783385734165432713627837365646218310478957330045932214684710403609379868117101652974266264292659191078867451362511581702994971923384643724141702101951487474691350647485243776945500764099141435041955488088244828667173992636246150186562592795738711652742655844255063385319233724452501001514419017344827017212305991785436005527149874912914160451083390097416655675976291995030597543935935334567462604433636664109615014405091278716859855115690707404086163845340270293103055329457940705599603693615479012962490868970179737838431718083716421692752310455180077260688982785083926973598714094350542936069668225649453820315166364161622592970993894496812108459878655295286363578790511313201997042251783226775970348516360937836148816028858941606849447668455298638689376690107303134588100914007908302939116161867851086700622500448239765707331308414164516744823949580623394665951219427933626851683838956121081865610195728263015263603580616042662589596188038452723307662902818567616106908971482342317056809305233323270551490415685192342472600697508029975813378294609158009093242820865498012319817316103504272342814914101234799897905160228489368522039500239826985895749011332002252449777922905052812367652751624639043663168902029754620718009198985916992590924097466354102795444857734448564703297003578304144551357338735651602574865897337557634731028200971618412945781697256022694098727098267015292612471447291219442646978392317196224690216172026264742179904633333363395164515913766739933004175969212753343385919935781633208617290166221249607847471363035934120573168543106354701076426989512421469882783340470984584241360379640518966294999260429272480347896390044173022948552391938499837518856278558162825718046739562954046841466180857994746319926779588601424369818987297817039893873171996125530427463937417771256910201233018244132057467423160830458071989016612781077315741158131181130113525073084804710306544099218371242069312982560670428419440537375162222140789792861905181886787746161964671717359153020608697389628611028242010479632708040221748850640995320079484151996015535760568186605940046010749454315729735687740230482588673490430261563849615407691742115056346115505714022323985948853722903057927094694041490934437439206356121025323049225186014048276807381661081795760469194350823326846059793785604257942726636113405185577447266967937702353847652400455109700025961766293678756252452348000939848739905798823150562651472380214998291200273989935087613018207310546889034385213828925783508648795860935794850229658285783224857717412046653927011825701281525241484624186446518133045718250749053693899538270964590131139060004756331115984183760079739447448410833509641340193045872664498505844037935038294681478116925903028391124904758832892562566616554958669778709910658514635004204836059698674477889661518076530443821851009476625100623663196133797709606803393989985831817191586745103177863928638075769832201558252123578403213907136038985351195144301230906644934710838246144712615411229911520951757031088471095016106379232200032575300203854850050117373371991930762267822088079734506900244729946459768132847262995446118779642344520316709151255081273336111616991487741963692775054981288320896022926919114726741138170109856274159696919517581779202773713366802867570558068962450729449776184003291173059978656199793823062432557605164225525510079384415827309611443185938768921491510819593561361342051098562037398943247329477801386058705656400643507110488306954633755205725276027720006705910017875414044908315491882747247353828142959897089658116016791395029074510964533761475127807957400393317371209719991365815007871200637038771561974682871106412857937076634422235100242393973267787900844381471302921279554693444006361504879677023141647994272892778942726757213861938153110342276572757588505791181809962726033789602368614658969658860955664492169804151058524436249787687166023504590870768774328093868466953629412680838736678364116405052531400306481747679866405304792315992784284211955089751746115411221328910018474179386665941771955868246119539455617197372231969528368079457917432063897235218978994080797415423611994131126351435850536369681928482005599897313950765229699623819903742760473931008765316373850298241315819543853969679707253703848034109452156928564439439443702606692276259368681636417274064945917643734516353850892352240240416207629067479985666525319359116741316184140498550176885868699017510931970962570430582071938989727615992546735099146491855983307078612705262981282744801247929514163237990709732794024703071602881259541411684924589607477291178697162596766738310526927723226377323887828529455175556536363779234382550401647785453214400848317672625891973932735955497501596765226990360443907811924097109417947354446561779182520420792677631632934732430774310255968279540379413910671943972757966627347012639451867773689547209518499774445967501204286604478273894929195839150517996419243251675085576124155660557728310916924886505322240167909115476349056381504514174499065393939666617101981718577107691293629752887874121651617606732435022658768301079247490059596134377213502580790324287288708988843517419917669565791788454270859023597067982197289875111208580915232205387434229887895936503900084629096569003074143376816493160724777131695039766516166753604779641726264257787669599168871633018839088145201287061246445764833704764165924773642058158534372158173699557069340852119957832815471151258179889461995449573071882020949559006403772631953390445583949405572483188874277867693129067428372137385043429399315931452893528712676317810517427718177475025816169813576401242053737292018066056224199538774097383602673139983651287193955514515392152720454426555879467406791077251473704183404240900449506037383741490520089020377923158442770196887402554054322364798692058513509602731851843009669078005674437519065587474615154729386165883152579564266614482583695395423440251929383142607229300122976463608617619763453685635155953966340977379692310350687447395308610003397673015479277364800486058475470238927780496154793533912277393864480556534232724659163483734553276096990864813494551418873481881132549037027132800746473008021942360280291678525924259030436110943514435969526338048032315376546416342638328442022085580948679545213457267880142039357794129567013707848121487240280961068638780842133904435530778496512588841404508805969854541953273518980245631933348945197236594816434794927979639128033428553383342803564809127955210234936422529430449936202608682259212620759899136906026772747138581608692504862135222665615357381059002427028209381923139308866911933889843419964158381476439273766579818713186014059173713563325377308721526341510923500639643308763678614155646465630166270218186860681693370010476778520840577333254252996678166518479466785846520430019191778637449847635019433162368351655672792718716531003028321800628023948546120696107759492053205207710725424881388397807956016468509687140644307846465139095655278731976976985242355185437055307215738066891079488504795210692060124736571309921124032035567843091183571317993132388957705830301084820139584486105705386234103178661804244647796376637951537763054098648424071626091456058170091700088461734449315236884164992475568765002244060856890288371892492144750981110155871663162792832366970864802176396337184305199981126124362553865851995378940085947781336285596770961411959736844785065683186603538871311656005756021962813301652569454606098827896695546022506523224189257032936733576971992821563980039157197330559977321879169417697591215565057938205175666181156507268195067829356098992606762748064916036615640787186769698158644990354503518931645753932692812436673170785598785288229565640441048002799963502847285669841934794151563825209871800829587020942991701196246277913523596832732430257176834407168073961845888543623947423945858140516378054656655057593882361510523413332236653602628622808614690718177054932328399509378217232921726536641663425670608533446388508251675631978469516629125732164141257538222129905260256032124120526974310536721561393742523347759743463192870523857699917502111051095221098724219819287704131281269692663141502121703964598265932646205899523390774405036587375624568069304404476919956637451521376624692359446255005007245716178060647886836664710517893722345135021035909761288569843589417116885539040787166241432795237476052743196655974381799795009710386772679499827529630442274357071697464175480760883674240104474754042596516457139538671591050890029468759383595476324056396184650646441499822872897308680189673309917013444935339202898385355312492485904433356858031145983438969063075039623351361444587035762562899932161422827072042058946233354849167627446142360561181164236915109773143125320369691990093377932864277987877543966549118692318177511854261224577869951660876404019151559937471809999297125014724572379040841880306866503076119081323773869759220917409879690524039778415954488925555066593304708103751064041456036516263933362610888134626218496609567764351292932709119701053609641134539671498089659845002442715865027760071761267617975981918642746133453223508578947373721775998832719344283577661225449165729557080778319019284973631302761957551882631192675312145786075992907885868477190532015386583775557937706663129379177132796097087069726322040060124099803415412284503619715659197997725612504215553235453242954696466265276136350484747691342500243268065354990458639649031643028089693598249732843584900239937581911049997060831297877687308502882213833278072039428995329486394302754045263016456638913732514639586969492693897391033946292524183806462450924473262228954243826036634008349048612659263657878610911490514282687899667427500462708553139973360455023228266012766369367686708892289747875140590366645089674268945249508859698055473768023731506643899959157236625190041416129894433209544705137218970246405291492063823686870899994967356335063894133724176836621913909562769150288743181788235503634297685978941817495683764480728884229282266465534577699501838383439324032930113780267598522776727151304948507559761816200542199954138558543622698009492341450422944219494212411201015789674549257115775168097321580425910550652699804571511069149535176780648859402453606756254791640083730755113830024924719333365952539036402413766583365703876471222699761478109367922361880381744723779282944841320559106237470544356226289918164483192734373672182693587227708758544612662848870356549548782981738586388314505295069863865419814219572747966999552468875175616791727253165600885686391375634143678740765977889379824679627266756422406345094141572412727460390332381608028263796094112341042844026323298559069233414430928220702420812422272458864379350767612086289425718611474555676575920846143151130505533893984319215746831593590009771275520256509501204030353916873686502703856666128725532520643091362023229272756544394162626775074306383055068485859411390166604483825315513895642445585856571940333940850599874935601937641274691493215744128946985938185051815496095541039894616263618487342871971008088283941383170328735234999074292773165107902006566189551934171346788666744335788014131038930619855200226780039055976515243365010648844392861485620640843387299247882865476292786413312728731048319985169642251903150877758349648781553624671647897509998782072965346381109849282185189078648354873669311775603868960870611188798407766897426337466682995417177427624232427196153770696219726045433048447144579233354498880157134445757840135764878899568000403674503472905101254040637410170972400128567916065921678533751079143142978523504181741399351476181136117047839057793544855568205232939461184456039246788360534948569833747003387136776543600914693504794039993926445405806190099795593776804359631788457852039549114274184583444874392432078929346608352946611871506624001277743806490639351590690920948620497412209062268285522388364519889701609514342154931571931846989006712462568632570990863361226340816818888005179504378061499315426709386229196157794606642650653442869130196561335565257817713975323078704549999669645499998879325018166899414387797598842382300301451284651532272677594909283791421433826993337816043901651148418989977134753475519319038350450788521502558097003834787781657549510242906418679330429133930168893338206467551174862858382718369117962820821190679912096874963798161220169904326454384104368675984988051457653670182733122883908584586772614030557021039049372185638909502815112721949528038966063801835038071454175475197438735421725011416246277313679497257670167032201117926039678522806195455911570705962643916901482952503946476961220369617077429616202130139931713163105585458382090381700660424693175780832037147315441519390694820786507392614185223435251907117094238870918835748547293668555473580224127227151777556956190082795207316231915318591970662556073771101179990152504803288525629619235024661430841561299242596457250933158934576010012544303175218612915105438377404061108985273772548707397856834773955076332168420981104285342058222050477954342685731586031589547654292715658474257403409045387910908372832237035486535594353826370560116869888586145648306037827823344021373971136282811085920138145248930897740468938855410096823915344289159660849956654534883396725819193914459032687205939210448437255264068087205783936950865540615015018417565254301907019061735283371655575271654468841296016547634920959067674789538312420088815584353600666834076756841394797230716582617380868561333213651614091673935078767875645132917697708821473741112914153431479552843952410097006376133089183442443831546022394010163961855877224367745966145339014900583211342986770687693525867037100888958681439691337362616228617861868764568647635712333346767948105109817211860510940173450791750410388929517939804813859403085997520332559167641354117220574260287534244367850094616545563280829339969501016645074302749451709704239434173350144813396050589426483315982367658335006305071882691581804954716074009102958068276609921694615768181856392026534940261847329205295740692523047159488753959876528210237795596784075121604305128568995148795441210712534101830053213082709448701981114719675067917761601891677278331053097909334605558113732204656374871018777238126930120633991591791747344675560462466135267413616609509715751870147655823255985119246982406975847208336521788280303647271213091955830915508439610896463626193091122062821107954511600470892757700080477759754601496294862815649264131815959212232229052580816364387196514517272522181793200719308831997867574278726820729796332981625200563393117451254461490742001642931358780199508142611998763582966860033465924338116467555813486229201613011850429852548212684547351052326384894757213451850350467248785841039483045211986761483611387382777808200653679833813527132468265508606776024050974695132142799999461961289111869389663231244075118276198447420662260354695426653383757656963204413706933830914912592318686870255928591135000027874059046021798169862944260068787722083545050065676075127949352129049676205670759851144328823997767539429439752675616185486223980805260638109376800614470833573678380783142209886518612810033509454784862907588268285238391776424231812993733370354907503336628456454938915672964415816209520774149444219812751304329268032789070051611122363799559734952605422282623671716161430287113013433713951314579762448311654915153925618211130078678931354317004015054673311138403991811872401781546265707642691700438137794155116351546189185596302120519354549428596631941591836679090125689877525039947833266701318989213099187406196118735869178251661894753387097838955231514659308895636598858231405860166481323129122860960691437404953869451344802136194965911465700728648307429755467421315381235614980076310234115409816477511805756364746168983743402327884879509320360271919835254465081221061264999395739155704955669369975956708715214757269689358142106200726511089471726034529545989885142083983275113524429353497974613706787338490405933872438068630647550670065932722284230892171791998128961053508359024750239266911471155902521152650986710587286884300826662566851193111758403959870805283192032921981171539363588682903286941202789850094763997845850912606651343538565693821055398349236630239842035020691380338511450348533233244504949307693169913457406599560027416721042082688102428262880965016771014528764010643864966099903313193824052944578669604743056562103173826855694225053885792117251243153329059121451641666439861822466460622703073297150642568763197097957191643712841500532538259579330164052642544317183045208473146614111259653267588080961867047662651159462735207287922434510954861149732805265513523298205540280254369999494499364229170058700041529092386840883958044324980391702046512746821160023357950231747814725685435938471749039356124703940581691290928089738851069382662403519364790992800726965280708089124741479056317152749280978542837303700542177208552868318151645973832104566298754196309147837033180198623095467358415927665233278694454026828142121232743648363102440361444672629045144956867331236419821066664074457789634434906889770247004373985722125864586620192514727675378463516714890486462181378041516420790786019215338785075309078818001151982537358338072063725526134788100614350697911413369066168600527105439790223901978772335414645629851274869800188806513884758560602522046157865495668066598145447037797235778093960701109839941469897889602742168126675725621234625750142921576555213727258556294868582666628935386816661595440191098954282839541828242973844147243026314595329739647042127053390310288151996872418563161339674867513968105963241272503732684964998975973469899769945207556634505860717821368201431769529622061648124377880962736369404954424599183349832141134994414642490172836563825052340095631842695580630638776437190486880312388007304164805888790685149175016390416718678135403386642555258802783235272698674828602117859984731989834094541250018248254048068303639296492831553413008151094783647158949157463824708191240349025870707189958123525918957381018680859253109291857447295730588208830162266667898937007521219696843936714427437167861891987418340867878253537283953025916481408015384193279192757500470973072489851895962312956749134016334462886505331196617754595845500987720569451408244389643354785475043248224158909509950184882271065556787555040225893638984708801862838480279235464390236698099567107488778854508728126339333007995055183285194451583044114618801544002046322484829744326548885612491864631233439398432719529113357653341020940783803801170787877695817630552046371360165191119198475734389434124727551055052632257624040113941556194730082932241446660287567434292923775384024899306742900984465482299833886121334253434740567768643729173135280947440626633801506592166736709924655705313887439992900002916391649063212698759902089266494789891820992116004810634253193222691314912004483539332154011609863398564430257606078845182338941040981354485942159277818553559480964389255041497650126463351742425005557907652565521751805474506456643172257882853557132449990853865308384157643379985919229537868172296224324810490201915155810097073085232228262893331557354696772810539130600844836592121652507166713181426068333793137449523509763564897003388693822299389804446702016615747663073062377980881674243208425972586117570711945252017280853234369062282058447836480085675866818823295501498017308075023882712064993008731534897725895327740152218697696324247457388316799677587887758599356058570488295370241073138549444510241510782888309392656506698159068045330618234229819268040662808507893358602769898613462516394603620482691641645300070852970173889523094063590363676535682644978147096200441532209246586269572622863675960128952959027696040440806252539958679462676261495212253714362734294052162497688500711396211360733413187737938844278271880017349527597746906277134403803302703745740419368290379932912336799632523926165909831763806152417928839124768083048450458096255921553630441849091340485176104361927746903382275386285713717524751157188686731488977816977596872963592778496807809602917969128643268839647876610589049145439499656870083182678818646837432319420336650292075343878663042064793942286810309498721522959439852405786843223602392383520630812885249067464025089827399066789094822141362782693961310020452073046947668206187271701265243405585764432538415597709893095848518807091875813375550459634914721326928364609830459991136847165625744553317476013359810527695446147635900881534623234586955034564168128807723634739994761786767311291022431797172910731137265676060666726355014367620285328973031662272610381326943630557623833887235727687514041472321095494395963179513301113669873546325067371417705339684149391038496678394268648597339371001340790296283900609954197222182980709220362233366077132660529431442757785197318431056439318391559947046117110799918437256768916661067537971811516203563881065907996986059801114267551182425584916390415968438286121562637308715945781639081152766353692462363285882918300503255006082730900969440862215795632468871773831068420676616757388273425480084462818306798271395014235104364391768823925954700032467380674732924385217605991282144204050549262094256280208642714198720935104604267588408825820926194453801646451591091644391830031005960189594291133101407803624130142481793610445910364981518831664749176536331559585898622381523447959317093233625863368830701167392368121202074120258184707451506703344539319097669644179546687905898250712754477760695289525097315417330210287586008099128343701083530697712594157066533475199851303696804586144112510314595961430300779011623548463884977042774869522238676153155559491789430785564480698824111140121131198356558517683410458492544010831693391593493026243079930232519372277578850377077319589232154074577005879400016893930957178759378210093333925716768426077603036394415569392744394129306762493378412005307859334811055472702686923077950863939454409252929334884432961808639049690190876020384718846716120537392905092906224398480467667846135390927230050383057901688402074197060310364878131646902634121326088360220664528846086304226392044428659468717055022535817030629505006711718554242992051577638878462151744643622619247934383707049354674579461218387948439478891640215215827035495102367155606695983601595626104005511032598533144325854563672434771621594278558748754044871302341032901317631522822866042335879606700669427958248898497915894953103318837415919874539711191200682572783279368290878265104297758068332924682130138685989854009562850447101656946053651943256447722777693556705254894842179392603315104445035550678987735208630051827903511468965440183336192015984562907447915116324018296753328954765870996640090539247880930078065381709584923723578436405624166664376004197818238764460570717721421689827717899539736440741557294074823113335409167448100639604100348889524298444162465973871014151663081166218112515859444523969142350470543913918947737694727375286057271777460347019907060343508713176528684438847501448483503008225055403697721659551452084930280567657033272206425646068582626044818095491423820577100550199907202099008967292986356495862586815795670132459694281643401944962756508261031278091480441156542028071198823767997055933291649374593128069845321286213800339161622467807670258218663516828610364800740290564403462679263353910030221591359682393908582740234682399135687005633321718309559000057914389396155190834360798036996144245409282364736674414600415441729965329209105746996069562304650693347155755652972221675008406778614753140759381249397283566229145626051237704449126737519646206531442417882455865811485546386943158936951737942995701244917755649647679935842613132153500311754943940822837619093907456218392418418010521266971823603041844133588938440025391112037051601831006405542445864191652798600065563007755561403674368837713612904072864239039172762395872128961800676152968386709161684437566066075414031554632523352071825048881592826713929743419125235822428744420648818939125157700197109500864866978182466750092447083455499578446354542236913561528073984998080241803203748977577487905572108610133775396741346344942878140324569706150739868218360321861352856133131082221682976988324029264033613861208527162132102169064674201979179204384430230477079603882251828384048131767705215357018493736161960986255770266392017646456582111619869837275035290266661815544004764332017828400919798888633431073272862086693107856216088674893198458762855384670660555772313537331742911266629066535765114336488585902654099191116656085619146969823223411237877162428534214736513592145140158619958340349815565460729372293165155621997624525981475550244520095014292419655233529345678091764979631447866869530189216692786467388766064083159056577954314586428287302034530346593669136891694759426675362311053657527140150391347063550136047802025946488015653883452511557512320724965014066587734551032298206746811213743149480140484564374729799387638624555399239200241277441201350089088290279416658948817734421099990573591403306221487410632473383567160544525423432688254752911620308273330476294048385877637693920674770463536691014839973811632888380103740905712251416683996398063348976030988139505208513599647556910778535264819860769703827614449511829708970117536611955873749052901004369354206619432112368101993211928084604664096050933556949679623270794706914136152577336437150042146031255351583546254633484855305966824503743224745063524022461397757189055600757283656445889571607017240514516843655626630350595049626009875694193434839754168923674834155955062835011920814795459158970761990139330336695051089371203167202366055213599556320785073963187740697689330307335815229325576310782816117527956000906828939930850224920353216908902438728032184220138806228728108349421813067802416519395732329915796592662433531451925841491680013132118014621480123426316258973758834736371232918529935468442177179033056594096144023787551130661081243042770692071380946492403402161272694884578359716145336786539146353155424828962733648242769705551756496650865688850190402567698770484407269886645323035264919282866587643791714278540521429082115660820868407075440138210936622457519479255613762249603760352951992433617321885405195442279262144804953787079103118922490752344992289426445687198479685226152138155629723498768989529702248847217709527565718401112332835724972727338260609220716065186832442391451310804095685803938164009789334701555992061888903523308695852545534265159424575989054037167696369312578473046306850742325672079018183984083671140858034895767123803708991545043448567451240775975104441942239193716529571209562370139752216598748526657728716688114398814747651754824185564395723995608578031543176269187587705832582850470663311246597101682122699112485357708870850096486108073135851056406403856907852636325223443488931472669469143170978587492100547960931887782713919853048333841064352711933569654359374279709433925271116212741850527666767969460089090672852520388095584065054292191629331323691906244873364220287502972426349120917385028734861510208004978297670659195834655473862001351400834182299925178490017862138087963779170785102289046088053468686856736475215219086481688132974600448967763787111148418195043517743428915428294673887997913120839424109483669414861114868763500380442310020215855053991336581823061822561287735676419030816402629593249843239614490517362147408916361989576642143259110622264014957530039474889631063594998542045433515258591491677934406376669712391529878066911297743069822431112126863531251811764061448657857197181051621797369795819997045480671401282633453497200796386250161630697159084003075471800072385922191427111400963436439136679604064350311561172363466695713529801534628231398577845127618969988071452830319346317690913015079357113100354446257062320311662983357036676158728691933646056068930671091080033520927893325601588408835649175941916049266710289957562096361512680214450286747406295541079643106757836169017988728639275823565165851090475834643983088887695578824482109314635973033667117563374111899549553986921103759806642536676152979168043475145212840747885450403644782629488611259161712381163292018337820381851686019169244954344640534944613426182868560856969955079284304914109717064552241994818404114246529704385402182368058361929889964082501023456270480227307613897869492768991202020884199910904151137216976802915926021308374921550121101300815983826619968376304977534112825900527439123995017034830909665425013569983854668856790921634375673566584527996166751549150891120008277004874654495015236106052763742495153680583079154890751391712507190818327812885475440273810893934960907412019361055522488473673371320300048531376893450178987279306491199040218804128660360743309799372411769984366864605499965374303233314885016687499672542690940126418316363270222780975366319420493487051392806273192743962984162403496411384661814890276007766830700659163238562105958478204496944348478019615893542880370827880341409349076948573760238257272937911683042459479779423614345322493589465936843474939110238340702096687664528260840832032623975788783212129908076402795740576382089257573938340622903620101554727347457472636622423582879535388597602518113761208076639442685152281603294981308828206612075926668780798017405710026589491323635783345654479945041690719965346210096021287248634405520125254757059456939357613429768481224712408250311345267129981859142261192410832429901217883346160951646762950033780209506952405172042524124232773185057285577620549219694884218387804793307953831272874004549985658155378655253184995624364100957468859014193709259084631949871510935418499693096620001002627485454929972346961800794599332398550347694531312289487824144752248931043090182111468674334392334530270303570451726894926944672353582062022363178046244678267802971711351662721006346569884026125117458812820219040396894782723780667259117159973150867691606362337957259487273096077867343564643728911001434406070027012630761412394279545612428542274788453664939850523808721961168919571867624322998176846645515763779409346631707883981693118201046611192965374724367078907555600960964823656342612528449893026931833027441279021148698080896594491939323215649075071626904043732108718403033485665435045396487264816266940052438265601618404488436527280942025477285048491231766075286702040713489702903352025278400473537884790484956633806393228555546281716948175985401310082186383706157670654834325569952817505465706098184306210160996990434966960167707776690370128035178988997583928955045716381703303721216953842959181014788328378989284256427499812547514844500770092367550020635288051365675589052400568349710288875404353785383147453493376696496064713286633041308479144283200504806720834516668640240352315936155937562160938428336947428586963572459539049923435668745692878469529185406699311366517445488127696958420293657233962905097841516793682814932088690485780639661510123510684430080271903244569303690211902802402588533883177260707335798443891569514699308679478169372054010761449670327912602095764880869214964285560571703150155559756780420676155576598353848019617216170242839741097730811894752857119307083893146285803263109878736854964071240159237888860836609466829638049993676338199310156875442922278754671957257537157286725892617153323062191997555172495056131321454590434801399237687204876429006630871415555736481511910357142730119916782745288812646749708928411910521177095586755069818241609559893535569372904487268778025596258363390645986070736273112201347989051821019097409940488898492031860023961313163558640294752412520282940342443324417250332284432890116091901771677116929997437692611046331801211947911380014851856956508178690886268513197583283804927250222323135185063796159486338749400355175297772815796917638471900485298876408998665041731778189269255501350236752058182175542374891766526915867759198302953309574493035505164754732172752174524105363735217331302996956216836128076506567611547359242281474552385630803301275832337347931802106903079019086955732097080813436355594500895324200119993818941514807289542918459337992410102504546253890917341553351449725979550843260766294003007548302008517358011776516568890496409924360027403638838989451973907843121336845558618303572742684630087533078450116272364735670765348519020468806000315371800144144676155606809535266729654081868904424907406752276864617307233368495487853567844332550456058144715719870612247674458467445709732811838163711033865000275538091703932925267699887697568715474818883781144599026392128243992613917053768978452142392661852823870053566504362143568593371107995226273886909929673045343514029416143251131977505076770623192532086865657517209487839045723231237782894074015886166091695730847930426222087251023831556830185447124153254196987574912917119132228305697963871763073042773539775057351817311191997818143694683564420734616763266284928607124954391418090015061852709182990559463158211077729348660103779707803377312683781784391993904777822589952973796582199728442902408691131567358886405871389719358472623005288894619283376435472636225761889133134887611707757364076461423163250136272734037666726755565766616358413841268286010861775978509335375872459539316335885882277794127821016729263498362885405442033899307484515683240160341897650827035769398364929566050859955556359647459224631217900866274205264077815074515916095624899788061168545566608016962427125585094404476694087037935292621674193244729994005376698081390091343056456722894524992965261111898861778691109545721779250079367613001874769733049124242404523308269742272150219224351282833082699159121000628479247431429622270376047974513506757470663438390933054611846836835488864597243850799644928467722377531989892691969063035099956774856808459534378217021795637304895720448519072764595821236503158809694975082846085715401648514499545305676380002897881872759394002648779775805629153570242717689017504413791981472568717583098342588585197277205665934665222429466476042910231196768629240955892493267489497306294443123648410501389958140965936160521198597920952500337578642835591572757000711289996096014416599534941770524744480138929499840512987039406319790198771301207998981219558613254262134331094057342918531494565855562131673425475802163919766957074978916337532798960459681619626968121259030141143188988425330194170553782422742052519775306357145575738196953432818085196534935065610231531581594841858168739751800670855197466651191330523738048245847520675598264767697452769812935008916268558155206392315654340649207120794074509713477363900312086618980763758891237424347056329915724912041813441415263542737349779592431687448382417845581600390797686333493510125107020611443237295783680939042208113421964113277045431364860430348004161054857487352347564337347342785872940267167298973379081925312751159739535442137082321787233085799182141107857105163571473692378552818925847251855957257733980723240578175275885613570166013989264905887157964183173594038972975543442681748734462031014137443044160393988016564749724896535115471365008665068126608557173890617921788839606118312097911195237124077144550182302368110519758159861618148365439412849851512999306352408374213923646014648225240503941581771862357323211529732263669377441700358451158884707601674437901788510054601237953949862849506101067305883122921553111727274896393958559321743580374601382621117573214566022678777793300733690953299443982421619206441342645642917831060687245171392319246845325159619019155883134684065252831813623529374790846144603761660060358204318688681256234610643278807812724539744313272602933164205382693415429297560279113485998533919763141915125515333919115647275829491642714572491491625196207196118368809490574900278914046619114225646440173434964316679079762825826081616938371624166789299219996072422827640181329937606211806528904597194818046788483437945697152465359424516456099219066658207516893984393276231811804824599154554945943589856483666057217623534238804140274932538162124682685849440001182787695555477845348581582156699650218402641822219496006419991154286735530918702699264197416227721896681230459493499460205780513820234574984226944548224521778569946960608886184615254202027579918056854979122861361130488937145713236840720877429285549831824612398175990087627132662782295295658296117243921441157731945664526307705188320143300859279916390874669637480418589338122594453901131521839750937218907904560456920408873503586166285700240082932242539023487074271107161149394186187776562939484462304500588642304936383213340917064214613508602580383722015575112180033085841216283989054643471325826804533969487161378377908811665366795528983434436500704669241237549753928383194358360163646999667698264196559058266205795946644257493900808483097061448007669661244992727417198551813279356468514772832774831394813297177628449592275539084846132735947053425165461405458578709279386390045079864406686698981549661408322819165303657346009268055405809693254310559880364328504146270010116730608385860025408981195641800602220006733940622280824406827565775100568741472114507775503153916201679653943354185944069537327981962765330140898165482861498540315283004852751998703638658876274649017644555076703759930049370396205875467521454970986989629223226618996487236470221281085898143959298472518968013632963099363973568758095459280754551489457868333213349003255036624670826654010627583719073203031268899626946192328814481478446009903723919658093450904244856701162002318544864934762005098883083545759851660647401534420407736121104332404222625406593303047024770198007114888389434304913727777603927227828128655024430122132508610539831573351712060010341254865843159878689638589888920564499647769494313989281025962332250908882746463682450973884772472859712623104113548193836938101450869323012841421343440813764059351923930592880231172730506024109205010874984390176473765026869360772512509447761874972377045163096804162395797499706846899902459345959040651482786755510296942798686238695363824778980924638118760991949210982358342842120619369977189634998965339183620457764120701108522981640864875928217483219626258515352024305670896865602402856462801649536917187412739303514427874625428540685895347932300632464974513498257721433692592313628603872115314927687629057497072540960630876714706320181642646219544310774395888115986183362836842531967946887859910473249214801012962170974426044791332318326911272213134283570288480056755215496162911488985409252090050415158489609659099526299508968114065574584517688265561920799674819370742622224631802683326305551913758157572214562276438724566707613902109201896514747249389661290391153138143826921886371538741782034872433158706164889291397151834714014647294613976156743795165010582327107712928877861402654691003009955308984082974693694569244030672148222528714915210904483244814525872618919321584999509517742977377123617405533829098501005204967772449382987427597893941834240432020923459437796255685026951903346149959426003678486260907790957232529964823474046942451852400629966560456779792412238005047331736700814789554085809621421761797851308177707402249928940483019943269985287177158796080060667348608737796982030711717493586641113692592840766871626756956630139495551142420935339302555219110798247225885446314468004676725782809584815424177016468096168864687948832923292574339259186588128689320996118106659592900213530816836520311208462108487413541228171176092814550210183471566908977492800622755432261678126616652418342918919300582645971849669588212396993167651641299385166256237408104850097617550664907788604864462548713376768212460438765968292537571177408130321236566741597145188761628486296354739311067109557768883837555154296715684597420841285134842007269071095257996963373936694527087056855351659088003728870293086886747667023113718730867085799031584793698540002743935008215133644809766763442244802268434252841279586735639033104243715142668313623891681903343386557984570609611294822630240609659280141342576743585456307752192982631971729521039616899465837395608880696751652309304341221092533879632618738341619583112537138145001944421134720507183220544479307932211070113012593219236482796559555088378343373618033301071944361155097898725571039855537992294880695172705687618987964026359603122957109246614034829128329360299552209942349703750682927030999508802875099467268603905792393470361856132377063184603699227444382656946261176376872075263336548449317429300564138790816129735079905566561388551501180409634827392330339661885669505171971047216768039253624314082736945798444505828533233232383514347890518498410139057602243887983239817022808079081037858344409565361236822760180267998678183697819198463035049186791963967914535864049263046292024341971309937283082678880959417506151894636719190522582791355573874963449426188683929946429271722920815576636361024418394089259527650149196209764578055015567075002135600230797805340885379783200423244774118935268302487510692598733990355875784761466771494069483786654621951361626663749668896887053024110390497616426736896896091971310898762476282757008098797707844181514074828152385576436699549574960635521337371220278926798414642436906618060305869917396777246821651988716266153236683024400284440473416026290150593310192085705273454470910765895103648982277871784199214786220161568255897406483181291208543426646613581812561866295026378103688030570845936217070152886923815474291142338777209227783059526345608900982554809801272559316114591080322205858633358620755673121723942974859292780757095352894458559824345264419600736864160632109415812316706402492262826847845405148683772725710435259344664641840333087108871848814612034742394195926087147270456185804497415118787175453321291246724300996723214349959742905101396514619038134665591790011514067566734526329112199910305573733218236705339162838330032891431369788565337677672741777393931249311568646782561013599365973695963234050526803821797175679358346527923396491464421816592105906631250021104206904118150416772992287129175537702102102848994293705952346153504139784653295756699165314029286712975193368282440736026928961435918403037641673079705133640397226869730638129420098471776787291078026166003647406890582035615085013119219507852213643689344051554386975436008556724485817566676609448359541020755104535051713978010612171802923486916649932654083930973530164609615841719570406876475097357384068679328070029546473824422118711326728160931888601996791710495150465946860971825450508689950114883556742968779505376640058699576015972508032768875506435640113635815146876765453135873588567368077106100138436239193860894788081751012791821797083612925884499844888744788662085027189719030179807029360305190474431764839634895721535152009318631311009298425624923264637444546669612721999008337072708463807254304486424743447685941587613887354641432311227407820842336377877916670862948874514393646675251073973001925190789577191038432943296763777082166277582252747974550942774122122466165315142676939511411077220949269920779419484931752348516489549057265799602154434449822653717580768478800355374150010295484833891544762627138448797301864783315066798767297570366236461124331164367365931518391047868276901758517969390622300340995323037834230206109563385018227152542533362668922879014248032201913984735723865596445528808153955298325418882369837419136834631230064459766430883489841966476373562649360247262036310229799776829518173826693000119852484866057345373864194063231961868839916482044408203855699649624487313667909446080548001756427392408039147320814076045795390731391482631353547624632450886213267427778311299317713276099761883371149037519030221863452964292848912630035048713681830765186666338812552631459558029383595921677862850441370557683476909866998598315749157113860767604162946779970109225300074186601476922923669757541098924397383992832318056187326642045492552305276463635733671792035895993154618478750858183734219002362247224117598862418376546512394830149713777866828922007779853503500394916659331480114572749391183141851133517426806365450414602206491142259016251579877916968091137377765846167649902893662141205660249223088986070158490231586550171015660213059327073707323826645219092844766975482534150966147022314457182308232925399924074561948323193685878904891203967923095311944539733220125118420154725268170614487542320629151696455281067317209900619762349227142095846511414332867519587026897977834350247496056961215371191798921698804969258596781487582609242182027086761713783018643843162501992999089452424589164246791534706053031907269804039951815126722068572490195621927526273187111521656162956408533928570593669621806262607241694956700752329920524963768242848737663286057581078500483383201315760567262796713202254704835506204864760014345995531705949622370096222479904254386020132873087868718025358850439356476483264922387645957098423178421781086751449006565979577400313254648875557317249904815715238743733742567039396277666379110436166646937503127822598285598146547013927331559931955464952860662197002410713911752286350449346311608554442938739169828333762395490343914003690600013667141383054516308875466689943252754202969848450671471215909388950813130228976954356638250363301798701333926886621923559436503254887353326947072707124180931506473988064595001861130346137240243818011680061930286333237648881546779335692072634171597145511121406987543148250987759190768427784306762215876433819743940470675160356131949250207486765368323083751573256234131789778272820821594034301370294491994616675490174680955750459891526494802495988887403586482617278364676475734609775561836649021068936174527568320597342154855916844192312463261812919443619076793076456460266815973840771897722257517283719110044095080867544522283548730879941036589450638199695111927570962955616130449323175604663543398389528791348660257029989298913611486132174676438718263375795585469788174174124887142422477313038783082244504410885526174892897188026672424986279518201615564703874980875603348157264112377920423913537263966896373250050903291964792480170934914614525871472111397916912865812602860964777384917348658647212799054963828780002315474272124615502557496557367451644758963677171358386742788363146233815169985624518215282450378099538201111463924379030305082994936882075947706919281522631085775758812419871557476887297333233247001882824367970206752086226457597160883764857677744325821345460728575152052949603648640796994506647233928459604734289822369003782850420258641673644557823578621305551548411631322827874965409613311307266318771286434804079664392467725458090096500660250395839572733420587909660384764811227366553873824845589257867705688463998777184949242185169833288468636663372717441826557669368921141273118993576812836067633306469855147177983050598784830904847729735849202245613325725300567321904798176139386844835601607539573788708149445503776310647664058895225569328037142574488480343927553628846612668892376833318255845722743963763260016557247743085040378324220021599484050281866473093197034756319090142824397858519150084525698562470531006675208263002693975021340506265236908109800278326538266641576351306835202133100240328629556986590200281667895613879076120171210348028885757692254122035620462157528084065642065094906358410184795666810760211573492410041662243400253973077697679278565630010018476470200741705418576369270656912124044194958067008754551329457328317154497051197235501267383473148479722115177762639331976628921528808838784365392404314489506399898762432648654301967250998463197386361688098422785176889536132474263220983820939486825522734965907260689953990879550660282556457872783157534662955582914018422027090862225912267966472486959994662062073561828304977448976900955080038218884157608062995586317229459181410598160431273496804173949278833276973877326299611488418928383461176087286168574109194960340655465087878694638937126694989012524661378300254771522628970341398539187643540312426187334515197534131416154278220884487372940243101681332499420020481776839793115564663813577539235767871581380692035416460924904070846660322948764833822101899881008359862864958273678661917119298324717286572925520080666400606171610566358881568097354621835339517566806688223539090690893323027229197633002303371876264766874807820954568230343371293448284655377789892037066738366946472108103616495205601057700021451347335126732601909938424864047968263334997008360554986001900398169720319439446423228798412875140369954594284805721690470749769734005102588115205041654550857907791252458821784800673659297779389038092773313240019310207733331100230750718493607652987276063627640103431326035478938173099065988752169016618911940094441251837176141660134297264492706187209768493081682771274480971320816690336688051241767960786003928004080815473592029298044021137020288246058627332047155823541227641274887898663062368385525550433761865808268359664031561784641642241334122524924494813567396540719785694883662696595357753800085174560494341197590792466402377546937975876058701558753765757748731239043287737188768841486285991677684050694656770244483719739018869306878939000011799176338017189031289891366835212719105459815563559360228733714081590587413026857167640034242400073655320622358554215637579497946398309981693102426670876857318545808410723592112546966066742835678509725233318996753899713188428617666090192055971702530806742665276683877288528547211825724197811913770752920961880760530119836421882260191182611113397015854963899372258971829689205182836013574551034950153323930752349256893598070621416102898428906139702182825909228664411716891646877608238442648549549019449166815255515337339938160875420372069601903655497698941411992862906049726550572867327151144879833526332197361497185692638358616434242199698758553332706738433197335343932103726510864834058752144429195892679753062447509476662070609640984239384118733398726058767562151450164034186983965269393148853470810445287777166007363469963232743271765755466378741113574309702814614538299246208725648202547264889549033930028584348223563055233186391521364112648510627263575330228936112627585374274962160323336260530970290238148059435340467552820649117051871240286709717641082549117579551518819306128952253176168593654666080838461451944687326742271598077501523795423015283068401226810779090327521734017176284610146620609584729341447032103983258107948587594587105681224525398727357034208963660060447860731203786912815602236729390839303612263239476065311479239100972479208679792271081049693672733916052440146203054114635999425554181489911625695213836906571848562456414830864589496717654839394323187808185627832430079766634095840316644645995049582812102250457020072105254040447236911041281047895644324519809380514631839253407675626307549279093051226352915886007655326429247426877908046109855541036791618870338476717590309482995519163779237537535365701020303036324629753238514310907092691974632220166003121497802674426516165734840411814479236071907173197645031903963154811801407294523663807972026314602426763516186131153136793612495121006318459471336999679693488445385784729137171078259157336441078003438666800281457028984651924887278185108535376048991443740431021611693915579156721554185815322393193551696125871701757309379258708776590280376257516375403476511536848368090958042416779953240250296209175044912171411815352413151851747862540034079046899690114875581803421715011996578155403239143652364525282944988970232963378303913611503165059858244871136037902970037392961739339712384291197189607637134588395440160742424153289173505459048260655681411762396550076335469644990907324845164997307245953895147800318803634511290861298033645258458991946011607338619267686768325957134443843203388638599385247945889007365430687009743503826394402425488007940736456682369288074876428865226015108988539373989888015134532372114344368553153679139560834798399226705349647127283383471075853648812646406289447030792341784471307487728233716966988338008638689167217692757525529068790163893933109232999443811205159137870197454268565085284203962612452305857141603318600454635220329705546192983105250766667230298842272263257806558592299949199355775121413731824782566465796726380458401643998567041315267288288874487298446903519231239612379814229265305932950566854692651943463501476859431376417369852609905402235561623867525984765055213776406397101915942593911248572796618390061150631826094793326165502009026248436830385694151976749714759307280315179838204440011405220811669281203763339530796699655236079884779799786712001128963474004183313636170639273357963270699920531397081171454855861366489489872061100087626090777485194070335637980350909525518535054507009980917400526433915420394992258065454668026203369183168277103136266984740715559144745642495347889767627017097414392764533003124423670181066655412721651473476153931543546926052283714478954659651279031538492822796762695316935982673882210425470053407119127818480807952349879046641334260847048612083350544504964562873998001526306166559284487119284513031500510788091574572005800096145511656619174865742344304599893837619570116186269306711763992704077907847873951431844072498178918972528413880508853466382925707873767038790435497487061237471268830606096987282681282245842313504707849558571573823071442358446069145183080474284366519694926957154099459897598712520346121811878297703243503648101091955400239381325997671289869229347263928221037150826503726762942505279614376526877144807496612667769429661403948244771037475606900753403266201019015103109771447938082668438765395091024404774228880689929643831414848413388946934639848845826545136640026511773211529369013993872233073580616564655260508886030796927947875056898003830352517202269474298811085470656876581825499394609419026215980735544753093249607676640603147744562813921172180705409777736518567513825182725217914119823690589369585190930131733309750021901034708566942897919808477464432440693479649838361203110270406917989701836525011625545469112737925896667840150679747108066185734759071312974101401330156749573508939110631621859211365091385293003640136254241877384204039844309002059373752451399649882110203100997528359347519904324544174343542524335669338100804284800051701918645356085829104338726661342436850269061199674114101703436432671589578881588738699901282850711968112575336630340112805988287413957140236348434964353046309316805193489695034176469000583007072696458474355006507567648070854725812248927949281438587438820343553409027500624263902494372291998221961855247965052348197960908115045591392267387555443816684002074493939585504913116366305817188893788328106643451871129096409518114289548976720558440485298413829508055590420384044649282053618995409059126265971466657670983096129753439859299791590342963266334854018450441269338525559253577204579249600932966637952305705659466757605534539146218782148929435393160158660479590200478348149713161425099010907003154798484620723502071122476878550762412716223134409156666494091638434647052623949689410506530606905530391366829684061795235895014954303702323163058038781034562721639844462390046826154728317667427641045836648263280925754702003137745340059255131363727767126794448488631866951307752338448938220797939108299162733981892405433768368666210177359650992530338295186174561935115907350773445589881672032856602891875260586397973992575998977603267585866486758815683602594414843634284489746764710915377312537129210583815571215213780415971589178641885056724031477623666680633175318031237866380367278528363991377725939380907699428537957247293528793170713599451954630819398753994323927635837613924284826538541231258226398528380216071331241978664361317016961950663253724799360057512557777145033069948432951607355884687138254827930963546617634204279733465580534457500087378728010769185188472979185304833672163640808865410991485078893330630812527857962450625079422147447764660170396716073307604555741617223181756185959420733806130264473444008417349853055673858036775539566589136360936774957542422926819686126261297964445473743485026946225872469575171426492313069750192216405007657351897742745211159186693494838878112616002010761215759595304993720606264981074665457126631199475235944747305940210399520735755872525660021085247402808799549450901238227603682913805924100622258206629714794768373489791173645574834889760771725929824159755124917340583740032138810389357183305407782472468876308123850031304305243171427199168409707759595836469657630248894779250333017709331040155250543325875100807372200086738294928068868055680599692789649939305647201430035641757442223901044119158083022278157450971267270023937796613293350332875935522806897812294813397712984759118787507940053786318469249497098979288932058642428429633518192435511168102944819856218792539638083406151434137217835154535452144306500362092105268325543013519140279465694038970972986723033778443237621917040849784176083257252880486940733558807669256692197147527958282127098285970674838775885618037598876578312225110303979953465598611425559862867740760628411993241276597483613839776085642868221873725761456415662799923296137810516066174687898838299953759106681263045081573698882509515368562724827459259884158712195350470350158715242093249988369124207794369855178269724639497021420175655891786647368001060857233344582491968504175212173638369377399341198625705529332939220595348943115137288722803291058554591949877359349157077992359296134806936305497959679654729019700424875895419625501192898982698225320007028723126322313737302598064653646382439479211682146597520720679671666849842307718748914308855502310061446032137150731244989450771182465899710827173941188327034672037957431173141174951631046846538174417333949120416786214705969223771895739487988496395546310113016671012144327974958372830352052935808565919978146073464963580245272660513620142350544513026468614970991643083072913710565684718306106609568159689774770046725310055252269202675402849918543295556899298188076841116424612338228121647800306848719725897014107522742684333874508525619379459897658741702484745761677930059114978070464200188282345958155095478498464730012321888523706510358359438129798254827202904446653079324001829479980352643657832633057521900978172511238166491814648509764082907626926977135501347107101978406245620938483315141172128547812001495446420469023887726087384399103312121938816437827408068389342944547728574392834700035926277636625909883940841053033199457141406371872908987563152360551627638189216350940965084958199703990738187967048503466963363955273674485666185361124336722100984280482618503564415552065309999947913867399964091484206703338703838053969472853826106384057143430748975574043238368294834901351726136832998253198672446028408089155654001166301110005567544975016464990445972155922692130713690270324554857810447349864531956142467639991166252563546070524665196742644800448997478234698730624418012563212600662889505631130733564096081549482453111356972139998146032032533577945306347706797048839880112389636618762149827181519886023770838105652056505443914566941825203993634571034065394348230140561169701014270549740810303269940776985287703129346126225800944973633257871623608331164342390445432176173774598485749065905518539487492091183001088325047269760338885769753226123229029562487704134544479821134174694704436512378427325608936004171624402460933999112570725039184753198094835007364138194810831291189942097359342490150821564235430889105661744189839352113167514318497844459850340320411335085558817735401181660397490940155914511462890928529811865176221407149271930605870342744823759423311838911637057586096160821697431517542844493185854706741959525153242749643565796864448398449001892045994942517088203051624473101985397287982161589074147965090612802820455582034671042387734877280230036004835256973154114178464251645901576557556946891267886099352497666475782360976219277320053151737114336144465706188305602576033828476408982948739788390234257777958526543071443000959945797896958572807912490752524595239315805343908979506061421917438979468999542566125237994834207248711226932988484251907165266318276610421544754673608973956468969352523449833829225424296305596932272471475055637736413333192370190261048969392261390959771911708017427992797287002354409143992193183097231875670593808413340267168595191708829504895962208586622945408632032356833400310035139204817227938695575488032309284509527860022789206000755434294711344149023744532365544915729561691747308968428136280448927723790406008105376763230523014648559628154414292060919827003756435717997101349491562320550544842283008250631149816540179395656649670751136658719616907352405174083763080415176188725675612212072688275560938720452078853347106390202533656738157624635861740183916395986015885796707717948961068026230841758020599923972363368594065831342879080247599120568015109605075973781216823117854062620302272702313187042228663495908493797771319969740850689724333503808247881975925627268906654608494699035936726523958723950824666669474595161722293539509062480231624673415858008384634612217025299767398780627213781820734320635564583936824952729929106376479658206998253268067876961214795392679300951022278190292889887962026553540899017054627390613706835098874935677084830828367072521481953458190008475103347526825646732024894947372746470099736025448027965668924035569552741610926032258658040271516620906990807004426311993369719009603599652693610361391317922486901496926767025833381271249658039401825865223541429422105230303220443287859170510274557212350066911680605033270367041180732614194192592355629672967611730982268631071124441235942213789718552754887847841606426374051819825003500358904100596501004969296929202841094820478578297626019884168967927049315394197102331184771947271398452079625389621972250322150755442919673765750110768314173571714322589769999155704129480747367783610995798055006854035896529467760359874024300626900595430737793288456763395545655848347955727814869219795419229922034422163921217984997026464855217251989063872574587725824195860574682362238332597203345585275088823047511631220784201793734340528779960683197273180822517407290813545706503331978187023182327986419301513211699600732875281898592080957645963887227391134979583266186746150948649749068809473206096244475837160046396588303841455657592926721232087690245411322231535661186105615433934692125397815138870182274879316606541783772358783013684522475648434283465441131595950709169821344840316540335919687430784511219153917922517613462735542680494630211986509071997711613435624174831165913491654164031654714057926873023418637686579573814890660656838000424964921860314457391893143263500388382221113256765918625928355936380238774746942443495857560419558983779457955837983694636545350676511351304370919019418221473171648331549264218798894469878544525383258134154051838716890445069241265792933132331965908675425945671131588383703449498244040129134183110030548238696814824828061053327668015258918708701765603987381430018420346753112614935219273880674787796837032731110592727256105590136699762872675736477371625380073242629227514770890919150815234370143436651907147784766366143814261318204617355987227281740772083694490818946658995952765142259420057119257377670521901972523254331521713511988894625686351652036493260167168332902691193276463033891233351112788793883023886490842165219545951246242536417568986400917707875202500371488046131461238193289296579227395717556943685225838117198130133154590491634630297452467107413116189953582291735660280955592471343853657714697130309084662030626612911808492533854169877068458979903231270839291021034873053590350819788241035597913790722415629640374851153959467554310923248616133154683755591753065811655535005581073451436638843929420917013288295384726090359132982915821842275387533137636714812945418883102149448026534312738415944492526280967157922935796343139557186332100848011817888662567194799638391603276892814737483681150976246504115045180043124256933025499693743687710865176757487739301742362880939788958160583126678425609424306877853377588801493711098035679061119588318872698486227008230645636393833810400488373511513685372255538161819096788833943361312551557906176363257924948449859181615970412600105408194851114257268345113758455560621179146327219246580419806772849435370634180206125583313016448677276352835851652911609867681202305276465994785057500426278491783562887575861302741704661788600019151898174049061898791350331545288880104129571933325821214547323321656776675874952280467773757828077689886190513108038710650709599073800746618224901794560969433759364024552441110771131569476997153151607241527357125354064735369112199669515913171802615375503952822905934592447968639294187774093458383840291258298162440820501839907076095917607405078497126932665759358193209410162299760903932436877443860024479047918370881697770035282080059672908629285604335190981876540510692394583452276128086172485834299284890917982780630499530029433865663666502999149205485518327878019163901565636885585964719494538572465353904299792243865455771475792626597934892147029976414131623357030230612049729375785399815581936814005045672372528580419891174758443833498326458846501449991173894030520153482401343783410811176220031360565301196176947878211291481954735671483409680998183214407834833779889028557616181521088276043955592836483171576797051779069744861230907656430389518520782126261805316181873793082526375606151823993108465234629518834053523080254408818123379941650503983303151897293125869870347945475604709579473199792281396177473447191920160087359415436490689946699354357633448843832357886696020107021829901519202258076720763102569963301116505815113843638002277327343700771452023166519708589900771512905514718672123090146223731085275126532943071127916231567891299142078934966454519220559045769904318313268677416886900069931257839089838337140391806133267601472106302194472366627128649539909486346999820958832662450975629907954314477277485453091804057544146985113719705305111210396934196434618106900526517303278217227445202908785906281698407485189167634641749937125513031170711225190980564825108059082333688830419200331861075935021857425920813083109399935151813659447180770920281832722439471145711761003293184012447647779583119037363462041020633996958451140029105189809218888798305680678857521768921063717875657473469996043018376918888220085553666331270445194119376041322361447315310945673169897133853944351066212071341891851897679978251953148216632278296795283589209812401563846811041739101834710610751221149674814777893462455316361926765026397983536878617883714908005568084734505728823282162495739473956384081600067007350823424525823008416189468553600732207348804345876377341706511016707733985464926017647536596300334299805256085574975312909397492637006687641067862239479264203741771535806023252652530191853512091137286090544449193320041879986805994320143702278156132924882727088399639479564747191692960106762664040731455241570916520889239883768848948468614226549602196296275488125792036694856002339355895694938113119616177274997826283865534068804990133265475052674229340132569919926163593264416335702101306080896391706967188939209619943237469085791867741067677584345426935495780627347879189136433927977218283365698832893879023762507010178077393309007449744507529588652350741144353299376328489412747863243835554941628719640325563194980627001742583302223111497072360973030570256392166929066656164502008992423177311736415976170358969925917764959685517345379469223478936986001291206819073538003208521079089985322243839277976916305732230214060378216879029719295110284521429687700661493869546079763113645694646836531096712563130635664898426003431168325226237758275810260698475644687100531868758848772256809009654730628574675992036257621899015200796557285850625210908195571529192498213982410111041997954129252709193892754692378116907611796200614716427270232476771234411655475047136788885903558382777346250660836782324074540070371514257701311474757451964532259483729558584268317034150019463919661096110324381160753954200460402367791284694238938163318061123376652526695819738397936613173783953938758924857867784803361785447171710299594597727670763890369714427080900485435535706602476673357302208515086024467496372152897124367945436209596662102541329602532313352722134427287401382393051503658051246813252717238432141786506153022970171775329280234318753088158054162644365734423248536248698519818052548578263341268175632506183623570940890782613171302966173677155586883006182214119273539073700660040752628524995329539183073326565879475812068451836770513175543647870846943054424551482966886532494561963065803730478288962081714950002185198000840351699272645113707278976895514869683872855980027555829574866493830572439219864310602817203607410578077084828235156676015654811354571366011429668088648764435302300882465795749303469035977965290773052308221353426271428857400710261660507630273452533016137030705056969846702011499695334071457645151188816898241278770571966251137377065740316274156906582219525255880295633260278121248650240945774802840515614716032658613961983782252035154472713070701669755137002028288529835044614236754407030868113722233604368766787772524499234029496860889483415787751112352040820368924769036688271629877473507058589697567851905340102618771861561192170979434892815504494859241634923075282370910040868801694665341801782440714326453378866776262648350706860791036864938851231082030387598516717471085936554026711587301893093060010922977121616768135209645518260885664234220060132232940827109557133721848288144865033789029597130889251214930689670144112057587726783401275620955069424720274296512178358363030949782447764745098231737311160373972949269426588094929387978697579442088497402427589325716141309663357959890166102815929816912580437330374724438316553788146664721993599796008372823019729387717249382705072839159652361889752156992573825706161304256964610568561974522318198561359720734843004756995168952048982868875770793794342582624660908093732227355882245939817538722719665218005285763781414962574769045277396929063082691859498368701959006983553177544696583047589027831564114057596445053487540419774744688589672440954205891035588050347391116878681484738931789983128901813203373120639377282155595574685772450449708998079392332346865712732755487680280920525154811747609282337397990006659452582003885762063450766123155344597448699023912425583104941649413983396175529098069138265694026167682851945410017521209679267769381722578473547721739115081130756506874016501287043553062986460100797768931428527467609469341481432747185120244178282874129893383719008412063035221001653521566517522827783945406118953310168829608573250088949751635248349633548637067899504852608523202993247805951775177550829263917961811467999490275386720211838278859319917993752393381286188656892159358480038108859411669977528168505233065817865107335523644506447429451308039089865625673343894999442592535569463984902133384029841536027839289519279290063850382102789139338588117977081059176456398356122474400050040703173356981867897651094405229624973547988629370453330457913459183518841294093609637263418305923503048211889143091181481050832386108650752742970177572724725571216889617330534133433715576032691935399052288134602902118250677427823615888756124051403759801077799536734296238225672593956572099784873272773485250949108714206814430649434306464126558198700938081421891020363892562186474438892854686652549271135695034365618951035909047519575047630226819799301621298813084211286394629595972977731359068238598185376327640583611290280512501266471471783411892405950929534948493016977146086342943565188736761573746041949877513447934260838263458123946738746771889848446876525124932034856686307193573567105375289443282275249373994078314005149869816567089424337316358296149498063938791114742225733998415776823516182565626235617246065318570799981274638534404214864513844937125402612719032300952635557854898723208903966683421278783587416996932896160090792596358996432644970019931105491218655375447191311766595479066705873329532393116044538326655641419963189764698682655606882831090778213784890596636142822977989784540016414949263824103452198839783178503789448690601292339208739823658388090736507377181073417940446091044901315269300119883377081169107868358393934180037841241513197702224248649535126096682999348519282661266113273978234553720150467748562705964109591517186611564893902532173951052852698006134802513203225659903613403883960326845021891658306286664165315616649230095278427480109002421969065116700270610488598426276011831149488793931748180661530049640871424922751743687185555455504861354833305569972364738584913713644330215289798093194534869298847377837017084084924010583089060540503482093242419439729013886327031318273859397972499417615421675831137838367221512838356896784591697371636085807760944585519208237456257547475773993876519324974276281525008900528015235185445196245472093102457305627162744257285576153042357005742458516839431364634187607015213778073043573551877482014203671081942161983999718976529765296884969426506948756495203151065042502543812716753152422073568143064360654507456131391875999114166219497014042275868242563194103914887518148761608629714866617698265864043858996682314099629174672276515033016524023827155672136656596688859889045949465925959428869131724289203424321559485128350003477846296599705539919483007415524738995053126665688672942058239180951308483232485264589050808065412695854074589291139113758715008003008087680011007497397311398443478750531415467764237330783734401070715228798398343924310319121519511303704943779033288446393935061868536299390943664337862663878495278889018255100181661577344119015456717008771464983731171588138900584144515769460059452032599164539146958487372223227061181989216644092247297421119313323972887676684029993523418053741021361537594484896520380225702687253421651732679561527801054601880121287216865623279703928340456030823625085067326330524389957068767483080818359461645552037529822656980792473149105549045820260659049430870770023736544118079372527149609136165242772642498494233730379799723741957423597053486118738017108969813044480662324308961296029223989481347623794907196998460089799718973528011569891725588620503449458410874869435044504915594785621617228623544845049908485414839679892629397430418425435126866125642782045057846844223913696880303634739142499576141363881197734330576731004984388040809283938856235744784569576638543045907081202686633607284331709283818929691333190733214458829604297055240017124859958512916590432099281573639317122093694471207603224634659258376719140518287109341466234115405549977099472000497008778714100404250770123315085700680561317185064549835209083121830348197117250140940067186763544348606330935201661438273919238726307921261874886727509672187477679900833302266955854459621970375180670268005880790192975841851019649304486553107227623473644121621011551823715926955738360499628481292595824654263485387707257931461030622120674602645803109253698222980696890454568050016184851729375018457731518248611334712086331542315770627571438748707119334845478776834173564736866828131044411104953566544685289560329300298694221922486558745525817739834833239146793976519777854123379822478081393208953447091810000627954244706057633274654481375723690694914545017790523353756711364182772318357946953750942177978412165588240204809876231945205051040799922814271360486599538671239901808492379609349910109286363748058933375914596003240050639545053582055293575733477582330755710921140285114192431519034434452878281657022276764640868481436641493297992530720593287121766671324822405112294074058370763787559850991173394266871606147973477132875437740024223940236560271936053142413501316055921357886022050501041199796044215756676905702728520423665665349972983218066392092150630501302758018490054357756109647906286692877158156360806443737248216578010662397507424321108145924690894079340893218050149084294926212181459675374263985421575620342891871740735566846965234815779842995006022092174216255160365067151618959169188545941740781037525819649495811405094004724843117148862539458385704638163263429455729037133282545443002633610504952213176810098470086717503838231533233736312139512550098061616393299302560890244703266601880773394785094459805082224893572137823659779974598895371696315251902113409532103670121456987191927497173492648831138356820323796658618268351463358275709537272928042325188027981564908710446535225678142449127527422928539333087332096776240139693922048361526104101088106345384592025872818576382925087685765456208320109654199196695622467506840807700943300365189889005045305118354183532816093096202543281126805043637688957691749126052226491286204577255501256513954255388885942948383766596018668831528900059845582118865039596344292826034089480140460281848812769281646772198938232897705744214189215543949330744625291154505476674877047393979288536035591768230057564308949937070658481015700496817848996669195620015459774223982877335089018356678538306052480244831688413106243144230831555341354877732730772591889651552225024443143475313925002665480328493611604686507111537546291500214674441616115198739400174075714667603825250997667077062877727366408018566530872106538136719540103358541484016992590172517238182335132306796230662022255403421452685279825093928165176349524347154820936403354466934036476267806805470634492790625170507866785233183434247302146789091945745150282233201098665990309089441009703896781994343796646155064557922606013872155323294367015282926267542515843411113061751333005764173792001532198325397715947902706950145201129203536096937224967305451284940416437649872919994881828524036718424788145231072261376642498943103425035066354831954898793002569887876070038865417627455618109411809599647111448329979100292171182740888290798662366949820895692984485263605146423323041716912500425789922261193097309009391119057625294271049867066054877230751986184780055164389676916955696255420597851081484570143166352399550591345463070825137929532858909950743943910053345240634718890176433990900735478546927987977919570838543034598508276207755570321888822894479817588992274012657961199228411072075578172732901246976713816993623117682454169339290684718730509428693006449078922992865395813169043362154817240897025546003804195891079877108886755170235004751717693530811137170401443609838710407361042324697022019046866712352090663829200556932276330850192153169744040138847235726030491902929120279141924182901486107355696113556001721195933397869279184503999558616532984760693460038840571220697787418210103062369266606027612881650908966242134788427174525771986535267774452509379886431305284904600844312752907399098797058674630971102859799715215403021339170367221182899553960126397974824204931428500880418791561041729215456963728338758255198826586822389503803086614363490206988460317862637798670213890497923761826535657457222779395925664933710816382754973265316828810238646222166814454547600559314112926972937335911849510903828380798365263402972305396846318862866653769868265109385951368463098318886706858363386755922814206373256998862092312454434464482193436924274045915974418535200146017633411410695659219462850955020195647105661175171230396504280288468218817745660765628447997915167524568353679933593417443553737004962048795365001940879614089820297978352077391230019650184431041291534014106980880927428013771077122964915846106889171105449027954143666518326219184952980794540216313119049266762188595234691229214313193036703944988178263923169635290517585520214612157562488849872196619429972542691615282320095089126856625237841781473424297594413991739035437927666009912242981211173196904761022984990806729429707097730949202181624711271916098485454873339621157638049389642516418723535209600176872336070111923276100883622113021829896230523711208738911438343586375093024592590922360293729386911890118358589030369646967075092004091108176385042733239096920384922550235060693670057957139784187082871322655754037903538359722467503642067041657602142989727525571430618796106986005194622838989393517113407343756717930802909653743876226364242096366006570050086838945613720439686273106786587393401234817328835937279436996719281607094494832336155791237489953437206212418565471137977575599051848354454487570208905485933876005166107262835245878162980989693670870455205045295237017109681037541133669714396281356400472396524409196326293097716796913579542170541110054445048833446345438689769366200037357315008134971954722272287814848125799226102474338479846995352514548353685347914828297038399768975713506527534383567072428515635370607191068781342694041056054990467339767948742260721955736845219018564313405511440923951308194765505192329935118053668922460239346290172711774783298554002240020595149159715102238182489679362657444759838488073151335850540747595588538168914760807214262364952509926723806089603597103782742462673283190408513700643470718705767199296293640377762771898485365777543228850015677097828374694408133999903699944752663986443588889680987668065861727962611156660113204385793057977701791863234331520569396433562148249735484617850064443417645741909125502647480629568128520314749895076369021968534106979945713514957516324167694850584623020064084536571326936360927129285097733442348275139126337028517462269447077958880178945800908580951891117099371155815484910551746693431254449260543250782261889506984417330974474916377102773179813173977538348190277833014310715330677611618419376059072294301008186533929697667029341311169877995385006963996158357827112113234117388504869786040612355633739124774620813431227823746152057881009539842143937967277156195428309773515202202584005640422520452888474933258362395408723259825902758603784896821257410317690517988850325609516068976715727213505014423329501639029621877056330827333107042298981618251409475071107198217773597917300931662262134840008961572200969885906676106267958653797724477728028553522136401771389570231455642151057151282500506816687736824379715204925779918418060889479225864365322729466081181615799842628454738562436549400135039050341168352245892134656538232816766385493928033269879960636679222724035400942070951116817330175315320685051599120131162518277880011046688167853171301580443458297949042066424191578257146322095624397263040614912909357925966449327720310154389980159766034711680106613777700175456144306107876216952357449414896682069847709766403480590396835119207710054460656134179492061186109664283851507075816088728519879650027343897451136832991027473715392889692390211866305493912425043645023023533715328952862999598675675905587106809658103411858325101823873892099619481571279863912933496427999467158272710296012651242428235933465634748792900407358417130078620392692119524390447233497966653715597259799755023144801926970041088944227837665563311186990656509358680527426947744020203108317123149004929814709797053558537295976478215474825238084773632362394646400531913560223103521748169898265172789234379717600370258164600847711578541285354519778580538118589203520637206975135177277880857511637340625517884087279059388092669288057069463580738777184253590397962763417137359900220807284496474893291931058324256495967176782948482166300044387989833532739818272638625227106370651938830626725189975746913850215587326345627473294442393583653228783434142004038269648034002511119657930941853682847590967251832201463325542251990069843613752946400780523663333808547009834549596441697086101524435736830477209838605576418291845777337254068783161937840038224543513149224518550252593704425380496029874078964885171734201272860650082289207670525160536222762634223046839964145452023939425471555544292819201867898587002631958098310716449862476699453760983205519418805727221843475969393031654858171011052131283496125409890256414029712124022790124558500882719658907445443441179433127126750495864046251616610727845268095699405426009528201476907079795344467822936851661953004015170399188754421034188161322918444751150144630720181591805354160113939776107040679496749414018919878554286617832531781819749625677728819953159923306607850308259159183091813151517687686385864893443128527692662103524089433896120434453587089158494831991061039489394887160108594989492816881276098410620304365945538082856019869950232344840358224831616239640135422099920999945203760347373255841782929958037546945032847040755899620034394794539495275517570859967545479869456326962672096056698413770984759908418292414968542224273509924508277370091160190634008327079164571947305655528488460661365857534416869708760244980019049955646658450190344217440806358074513983554943369185012831198473645677782096745224413762437726606741703969776429819217732522657396798898149077608643746254514672531469463309749433325227544651512980099277193720528379539205409191908846921901903132217520618030175228564909844049240545784774600023192409396651860457715015514259900094220734160651558780331502496377334033104174392931696250621786270986166844486575160577891991913204662191944258973372083905526166232282786764355906711729017517095643457188164551901052372383925344355332739201108617298444806436480749292898480755024347928755109151668304858600926814059067567253884840218922743713975772416423890962920250206046345966644384480557838055147745912012166163776767492027211284552551311001915767528718779286478874744077181287527546178710718992360156741107410042866561408234730388308073927372477105753278501594375743447888267349773929644826162026571874454493197487373381090536976036061137376091405217594941698240641729088589960758794448299345311231255853249297279549619469882902698002946855901752121759492594640747003887993689487309242974241093850564456697216041811781782592276819871689061137136195375917279353210290851250810674541364331155738982727930114362572662164571770526307736975777588755276075469946972658001822427686265010434238199483683980418289118706018398969687178420891722512798320484425144875148069158719014806425643394658150809618359197060489356453222270320219949026970832239216132857109158563295824424279596926844961293488685050906566519378729336861761261432158819333263813940058786571163868438250070783304463794361844316075136909785734381739368830099853351635520846740608428031148816640152811725460087373087598239142303823668990312871462224502263791860190059800538176302349871538688301380732513069123611965837081172439179430062078974996458814342017570175302159640721261260423164846706783229039094138100339681880241719763622844967013855174949391999430794165254164487831652384294945973306048420719192518603648231755915277656626464426292451138155285133673664987970167468535590669624609314641078590478869675182186472486403712945666484221696069767161868077839439016432929858368767800980770913679676512405401677021173414524213644952998781070743531598872568659752198498874088299131648860197154905327802181791553880791542142486854290801988373943758499333266630880530803017797950762013889417991468631847802104999488126903078805198327195769151768193264840127382817014872236610465277127719857309013821894072634198155450670287930226344751647497458196373937229217204128275121936734293111174637277999988133902228163113857928632281428344708418380721319177296656889125992589059210353279971933115726257936292474581454114021528498231885244669441179066708878062313430323961163770755111115734636506574202249028524393763706165206721005212513519425961404928334099976332387137294509698082775582064891814876028030148397005612532720284052533322057073989655910219939753460293268623813622317808531995278055493782452574254033676452922267122675509593556939026216422134543015002202927040945392019272706103876780605983513818911936653403230509410834776329122493765794452871331430415917556536654720617530949035145277140504186344702335029606230258063021573275294708027929643632557475415667976629406181535811112061630065448403409802370003038152816638262626234940575536923421814843508198544595896685621824169236015476033460392908066231504755406996282182476507391922952947906555805373307598850271380158836444896421235427041799406593416152200989096741293473681220234798338317825377479792780355221523685920064616194181386761305343339717345313617858920061995485089143271732740091667811834488626464449734010990230201939427178859616092687158166815365350297199814642316297510740262536931732580131581090241751372807920114174469695471653175477282901622098703894016101304054786729322246366759234642466928350038541804667280482059482277082042310942371545920534614552953616191644835990727244644588209389833584562469983739737971809421374161234606271917795209504836460035786307132071041599409254972069950177786359767028401889184799296197064020894413179639550324004563168435901680739020482397496519792791316221027916551548011866220637129565077116611520308455173430088064748095123472634098448424129172257141678844382355733888786155058407419526199039647609448599669999254120749305918590693900193761492852543653250752857908594546787289950826886202333057351891142955003179132018398116663280049191185497014839795577753273260427660342575150879320117899216580664428847879543245931023077624964273934028486627807026811648074494212379444166002145768106787335687467138036186813202915581301847948102529851799252880785266242710703377000520185769187336406154250788255939333654463090067807243554438917917182208235567780079104821979514960352546357890181596736195720196024576924017773649525059298097987501624195773850993580343409431358514130259823193163161165142466354958600897873427609282694715602429961380648086265822675226616391743339646196721728124970821268879276305604395905565707166630598109908545035102603435360693343351938376234090349296956305761672550244730147682087934983298551925150966767349623439742688932475838992221753380805653659860017060734051743938607095193922435574634978248025767207223832018175019170391640922632142886314002771004157474627304526730541990275804347655870086672255438065337302950186046644192993591494506535553584382720124620134304939667007056880409724126777511075311736267115313097041489487110815551557545617379255136881388061829536865168430529749427101487012788795594112144544180326649008998281957955572156830654185727230956974042025180516134620850341960235638191894790354043459853264064015324628056961893622896436031590516194613021124314785469479744426320545613411393715751149169011326981038852354592178546663648469449612877617968386317701912630357237468809825227537511331317938998588670973084201296395309282599164268818105048324252816464971531206951292950785506546055639093825464584234307622569737457306999488050831521541453871757508152219730618813430394697934543637877188559375504226515333820130230016360973913699141404348937111324106835266783136799887258752762612329140634119566976417743167621315191640308789520671710894085576454891115133538993771862941384600155748230355195057046875475756154428887458613617316165136827825178857417475545245910784379754570835840944499617707710549503243658580174886861541866407158843812415286903392415313464330166278875098091855819878342586431621858164568752625933292384397950908778224283611111892230334302020463643520821925700471477813710944509990990377294452837655096237993888237506844999269648137821868808948629943475023336747935906021239146669281534367145803085068872768251142773202117476359938965490532029121940285470172406284501178613172260213010937543724165191898111616686243246097145942338011191179856999522224979086922736565755381107721526016724628912858858220659641226261377139931383315869591120871373505671162921867203176711230338097034849113065754815203731432370175833929769898809114847298235401407621676610179135881002555543201639466101463563303120092081509081011992513937347180206326954558492141324633693364084126647550094228174598096390845698489956777492528990852152109384232091134234469158028233052065192464364283204103221336122447314832969273170356312409261847950839577708456873558970563956873481304397363422523399418720116339082492087211887314527037267702323981386123590949866519235707464303506743640851009187435434443038028895313045491014325638834676838541298001528749707054311545691715917226018333714288078946513322999635591862177845243717957478935775380707945831762566356832206508660671114507143008288524142699898051188364442628849316311312879680197305978236741929350983961326068175239853344050705093748486789059998653593127807583871854863015816962374683234014610782456842477124754161463476824702616003269420500075069761090749065367514533704894995628208270282819962278274429306440400737494892936431653960360405234173900241365832613508363079045365773888388215288987958855825139214983122954867392399800046177439427609894494741226085261777748485211220112793919652270724148502778218649269908067581686599718613696808525890038470648374336603344159812118255861804937737653353879182409701238061988890474725305121565340105828057988268226811254229852030092013859947244316407730300841823447853926959596801650019786338562418448670645878149219662764271081345788909596454675064861087394445567038873316981740091415368116353662104518462555468287055602368327744638294017691767779292419169156882808762347467180076273273773379624599216780369475681437904016883043618120509874709726092084080275825412721737497378147800465943212242035942627463353861550024432033480807030116014762948393668964848898686276024277259165462809580311679944277285514772730617616159525816251075953810395799593486918802089871686954181799279875522132540522292615309403544324816672452488152206995524452252407765136414822442155225878916878935591371058883931856629236737826595528719534743439116129878853434712624745533441405314027289430285508295844742951641275342154527481016570768690375856283424624795601318381474158116637351235126642914332444711560199337682867317828734163437272792992666500133610201581274258870671188365105581161543658667989977191996554752499722902986317789089848852429249356679841535570699424915776043773460138331854141370018801597758758628602237028927123565395587576718276389563532863525742074850252739475869280097212697895478330894918472796454602603210373750513938282445137992666308989375998643313843725148040555292019282354849633908055085786692537124917370737859251273534291521710162180389066059383220911579592886466215997031399083661327315648846850590817255412871343555561623179118367320015319795517507465649734868503096589643753463926732727797628499693454979632229798328109409355649875507902210121579672325705794599105867880923795244838267362440705812719503045729959465539081514957866808535237399261205291769030248632358465436503701846749724067991404945944202047507429845006337459309455712061836054169858077723563041246436464418297542581679395823276281357377361555495641672912027443066480670363502584010283610576336548526042775861246144551793910616597309911889833153630797305006485582160207995177217497175980295173427914913279466525813835195570300768252757069019481464623562961314766602658062689465137074552133024837247282433647695721658309399142252153691178473546255344134553311656661673749361166467306641683742898817166004874355254859200405413856025661364156404573419228786700645381128807574308909559930002559846227478939411996137110302280631282962846792162401037945719817839316536489078301194107242061727033329278546961575108230293995318470618295810945009369820189465099947453806513944664417399213259551834129079052604242484005121169716360891617453229064063667203379855111326665053576747286793270512013792060188925602778445407162746900936183395911868706253013680679233302165580473740137072384823013332615072761602744513024591393723637090215249908967022476589482501490230329324036671053528482087476439667158060253240886554576833686754466407612927901360000930261573915357057250622131894618016587415698969393618677527620966017391778286702688020558994987827739254464633141521549502856671969955392471018203204132158630837317597113047922504549564834181479051107416621658312374543395153243488268978179974520415556516615910411407238879759835464079106891039666139906653479946302690769364332634502720212120286795552168887801466891534248555834014547392175174710971768902660233496261064004877310420777221107539765994843954134318354169950656752291379016706259623938894570471183215892651861296987559281769705142474790768223276827454351270985025000510911742605344814515630373694178602454314713089608273688548535857130595733157416138509182888398091274521130875842188572519625688632323127446511646710245076047208068972649651574276121707801480645837768235803074960930352509643793977857844099838145186957325810524592271206508474828756381335061960324361683717828447617245977720366857864677047209858551583747828552079358511009989001230988582482759468912671244013235842802601320039486645216309338642958777325302111419167489885207641124291446837054159464557336232087266275424587498951131188606950374187219083254637658781605369900808920573609315532421818483733669400006249988721117136720381073212594958282559417893999432463770730908686443878239335544524726104475936579943360089047108147484510944567163461014285795996833382466336598432989236911330489139145849726959239819047270146955380650623627474049018073716027378683017739001550727923950884123856970385083801747911629250582986990966503410728826152360095332462533863470748705911936153113937853270623646442069905560671044818779661376887114136500428252410987791645074988808391724297786869243523167910200268489835254571913768576156425917979826565018916103955276511099132787720384489247280169909040032676022083228155478706132030968186389134162487063505609852050754145656491931815952394434430303170258106770829594857427869090836675032636485605769677681569689244926614846002181250221005835272758440558322259640732017970262336717113651202838222578280301388174151241613322344709886195135189511649139617300634056971839499538172526249825092275433380849912746292590216473882503127011749280365137308129076339703987843061560651974103373991590571776781157725242252651619950577544651567667302771643982950685296037898374949132327691246288952144520820186934320562916176939108505930600469415841488689298151645525195515344231636005267565429198861860405521768271041596438854551345943837591018930893607322063769627535773466260773811660837996591033928554745614269621150206023060879589031570177931314286875010360753403432416409895043461858115842113978477433831664582951337464875704788811337013204439382078384946938616818966971617919426945519057087878019540822763299925455014307839294053246125299130314388709955989623616671353230451590258548110132253534551753423208499877771596725643735216407484972013668251237028919011625951426730145115406064277549449167363153362839607902973031567791984277184737944852510894470722794369626359409039789332178333600741588331578376773683981098707167101567333450852422682695705722001259466991234106819209719963634823736122333132287353535591401999845155655227464553951255486853572427186475705602183530067344334408646868399219665433831653986010220244192914538817272524686946171358497012741679533575877151881474822378727601600702363223168827304375411109111715941296529281350465591462844265942804259378849680321235205948862226359875505853900649510167008140618603870841163983670753747370320024458079425424184143230795334320905611894077795926924748548783352464028961477627519326613633790974908898655520199306304277683881109371524770606967530093932123058670036572988320846896129424684185772314050138605328799136243546504663531322797093748883931757468420487450323728836381571477908195774632082785544668567171565265898466758326751534847555580418398084862864664267424935672592827724088268358131126415842719592394923108719921227155281434185879960866571308001700754351620209988465413608788268728871705595631641839785297481848681578974239926309840169482257511360338825390668437425510186731885632142521579183543087210477048670004965416595231294340184307972431132193159009673384419234909028236690692954427773079025911018475276371515048384500561739224906579956278344909236525017507710524871181768957624669133971542136946997446962231640522614713686763574187877143370085668058538973656033049116973381257869477004553565170847195560094964437039465373663367503042188332916303585389183753883205836565077200471508915246186895612112194755837493803417641945190779880710450938140922330731491301474048430369324423369457047576320386062266466613404454417453084472119568872204426489632728841104810694122262251790283125888792483192395600424253992459125072479268778343282456881736236558289972051248960295178286225075737382083775330696654601755096453521331752930652147374646531890375761262803196379805381777271428414687189252613114008813492435385650850661167669964725994972750037035685282155880629320437226188569390413137375198877401855154888564720673227957110243051379882716839248210051408736363381922888601388422867675918248706945061235987840617357527784805631496259599940072976525837199217631819188269110523138752257787059484832354838773048275846044043704903774783611094871442842878866119406946356861827003755146871511447780392993875441421373635838761003949069774644543441881893258178988722348620612630481411419361124549069904831249540976550275487094263603249442636177966782296157541336162132480315176685777630926680148917886462446331790845825604181121466449590295344328634880449165472878453221954934597490092055152374349418448973016773578472535828202879155120778706329647015298988971736975332891844153226597932911855442712939234838866237840234824815333609270202476727782725315479079387598976558876790356415315283857061745154472600634495455140087109287013130104382323660784324662497633320663805091673857636633915642180100357476166281364132755930842243143791129856712693313678415075615313602220472798257998728920806849053467333853512672389811453676012441989499844218294251646110979393121687944983273901103871919437643015125114044673986324405441912526075086195012849965020078745671146610937492668660042942227524622945016498898384197961634687083867474345848631692054160748052448277024283420457434444982362560606168904371039751934290954908468942852354545052771721706208263287292621875830859461861633290514693675248928001587558065859121325906850606073190541738886625336477041653982452075955779807639371717092111253484771807983973349033995030314696947901483121600375803699994066825434309437432933086865718172354146865865909543460263251266262513360160036920335153861784323889443143536374870136619701601444780196356228640739380543452044263927787265653077837121907000129207680129111247203444924324421799818574436506981886879410560053055190099609118577592740767994965184827661171239132078434940463425339927623129190632399565737469380994503762399909014858333621197619127845130296568327138211256996865769269604395211446640094673158310315993058094746483312886907179407994571884153064458116171954547148145241495179504296830475303648640631026234580851681201139440815254435979503515244237130508804396024500211976379132347524005665084369312572377704721696845748722926979808169492851119109234321811896243884306736106293481934641049663025820550640587795277775043369720406522187514344848425798017554761122845774224870064052596395030819022765646771911482341903954491889815246230000130970808062380623355844388243411566782546340342884090312209420167566517219997679112687018826198118428489794472474079123925865783750446244443460314647161105522460517550020039378584951990111322300529361038725821085517692823138774691368627963753259077305796180143252042447527835882691899649859122839294328719802611731669530406184348802845540950209130819114223657908449063229384728890946562363030660302839329418145938623145256967021542922124862770389444821260960231280759274251256269130750222367691292904892179260276821658826749761136885883217542799297694336205644534313940359489126926129228395953397905530731104481064819150176618134841931250045154868218632686097405693781418349889913141275625205096529768134122919969817972626477437561179786314784319632437172384652611935081063804403362983023926142851303266861328191747120453760644804275930756145938488876098828066120908904936385681313077349088317419692847337528754509437883418228537771108076381802700476962669112612348536362699262138503334147276230328601721264656162960407644442621138591880557943985639289075293061753816258259397109104432996567358219306589493127478138393731935184471841040866323670296293005418236153629313266693085271621738074869306590341764614424702306759967642717545125866425435050617744571079697813621021477664815725987226210121563852147601644788525025014140713485065892828683777620688795532783187100341124231519387732020595263312325876627266758205904057474954937187391140758449233592146211810695299127540933579371552710840594449247050342106146989722818638160969089059735390882371603983841166198790458488666907314080165486539475410251782668844445148361478883053334392679919961336494379640381702020871481492324059927845111696626191471240205173920120046717547010201230512751266115760069189333414863363163630974067107499397164227491083220064338529713501691732933893302384943340808378696947650033813611746345524444137628155586483963448103218616225725662664262872808687056569843416737882494340694881662310458364558165570282909732975611475477208329778967668649634443605235180109311239479625666025629787880358934277714069359958201702977016221762700804387125872807404923236964775053425446862120184911663083719237287553201398074150654254010338381668801344892050023409510821560010110789651316008545288812752156164317513033929114740445541764342174251167526981744729511867009000138727422867372581818772832393138770322424868442530415992538303980002278190824709246204019367405038614038639822467196258503241529875684638132804422072564082562297040901401245052562077566552446140003394478293048687869870297048682099736665910461927544400184642316672963198247723105102670695600944254968745961125348119537381094854915645242965133810628982746710198981929267345522923249479113174324653207047768800773034166247422648647848395943137071435321688673381084619474584969379353862078358047898851574355046357258700197898057043678586423862255270115178352498987040560445982959396488203174778260502616666349700427976854478307732028344028435596528568714888025714982724997378477763873895942406412503050221039504256277176223403291464905614797194990720596525924992031245278611599532485975816070741351598911787161495355062217070212091763359439853578755619569180562406484372515407823878578332597233360767012260239217826747080462916361460504529619791950497012630846577699414254956154479978203171930060830832041996000484823623896929168974668570752718253541163527451655135466550489626361723284699314751563281106616842026343069245623724609119739362251195360886790364416339149694186645659280007686631088346213806557337110668405398110192254880900509959519739797652856011035079056302499004734764278329284479800317423013610611516575095431312265665761515108087934890314003102860378619034263364888584861001809030761806101516992934187587686481869560998869879584892919985750424083155431778204198792426162075080035627350338727997574452622730300656164261021029066688409727321002225551540686355984653448750437069485216552050468725905047622325464803073078723245582937322700132347101332364814382585781591003947919146810913516552022505659640139080609156651591119782982569153990957724039093083196123120826201801355219111690605557331954173894906297112026903413642186863182808890287223485256756018751917105996277157420464927891462881041162233246745463542998985820447325979947501762150308073916053616323542692538664928032007788838097655164490803382370021431288141475902965962381693825428465893242505254259104735260038330712198952369115581931189702970010669954748477913176681835217458999359433510886841731764332969953518192445261823094226111032860095503441409695440568669837473397038578614631981881445665492361530771877810322924943597339067338184268808791134863956389698372163226668812480509373713573734826167663000877171854268710914393555907623350710359473932145670633708211662866202606944959094138211781870012105734228929311570349463817247582125461911650173360992614704546940982204965260945628604695442391294848191926002338317475817140398225927900233156924124850117768976152803696918193874962577684505850545746975990323724590076935967294172708401847565428530926577300787841845077761932989513808957837030272233051128698633061641005448759579478492174545683680233093444946735405917709178464551254004498217662106726021132067195672496928214780766952089371574886909463307431868270014123046014247116040067805443690485126088957418330932957848682239147478402036086026510904535603636616625959482285537777952758330193572083131465414810744577835022256780892808588220508896392071709149552535108498474516424919146051872584972157740865181520406203618729226104256637323974147619657078688691544010029229008694479147728858235751928285542908545078205447809333607777466546126874306621606559864821363802871239205419364460539401652958273050341810431972741901737856182101999289082473666676556378372803966279184285722412369251031163724632705053815126874581514541013941132087523691811380172968663032376681984360747238894070808367357107181515725467234081186331602412217158982122698406015575652512242808676422675866334140762297351874964912597704007684700265507993665203782754210784724032579203069818780466342551442959939330197752751684976995727155617583076876867757859791977161488821093819612245464434352491952039487337538473843608504888971210471061514529498443805620114599735529104210797596068600778872051084904526694610064888768735869264878524602464890866156409023414814130108053880054282574469492288930090458965638641546845590762560461819035561783036880737687217682877392987125204770819570797586008274430118561429320832334818172158610689072879738133184181948151338935392776892981758078664445010498907310720148268088301425622158663285119313786945942691674030483556645933463008141477647933121283337610919408544751362309072408511109688259319522728357784448475709324533560505051104863573395031923171179521195917362875459157135973188226593856559755800061336563403730526336113819026960166739923540895205889641045087016974352992843502607474695471461170992729774334172433171395321999982120282144412811906448673287042055869534801183993815024191235289386648076791222804278745876881066152031302263413114424565220399028811252884864516103164827168072465257971811727166359812720930702178327548364304909297729641929338397473696262370734189782502810381301976497688227263557419018604352364036363507856092278084867634292527363854247237914645767108983515753554631335090808044216747144090835078301065339255797629711724206020805009088883573310633323609927417356747975023776367027277363149964769520521394129256567954021040925380014025952760932868661366042010560291310836461692553752702934789018251166417029223471011305395465565254998156065551030759970091230522659498550593513004458292520086367392159546487960939743520767378246218270121904444069550983259223043610413837729035618815161046830197149450134693917908165611255858721388994504261947504425994406665528530803935013222236917884575205318873971634295573655385891423636710090183608317865035375739752352158258738257330713805282585067936054296285157794915269648756161286598850053011438269990362300231594459059503585961553986940560430687107361682460314283097194100367904721588924049563924599452858472297804719383013565899690075000594465303562437941754354455753409305624369695840063006245866848521487565804664378092867545228655297469033696500908548598511188704741414180798557494956484365299802556187969558580420033431735101382013056686311024572656823087294917793816951678212166914210959945779068464765505734061305583259823687966410518687337699055002579435008004203013986393097373013783423695046017578281013201315847683635615816308395664348094010209513672366538936315599499913678364076193418765306363632191435906479268139260027649202998161119674847404789017067041063030260315489675453912205114572114998427842323121774205230159937218582887380771996791853092866193102472614824064603720990276646536399444476122391571736354935541637042333426789823442492095626559846998308245623061192790845686826859221036763408653613599177569936610575416291999916957801893494424459409404530464579972558078372277279911359473994229006122253427046876034214093269216855715100180671979609443899225035879183770413022483194562805242415314291339417283518850032346118461373440500432994775238526461354626861595749652665996047181616176550052430384359911275021361693053518128953106059648958860126412006149098946424866815972016836030366209377418808583065626418572318284736788526318926252030000808050240481976601177203420708709872092613898371040471898496694630769289862401578518518588327026479694230655189078858555684655130100238770033969442883336660608671634068328642298235802920145921602672498750039485712032198275578531726460919403221060471004512231433359604026036476721119788954584302695027828939227564468302914917994517547197300801460043657018477044369308587241185475193840328765258174962559488417695600251345539428238847872418489507062468055126333539284510672974705500249195117698907485096791710918894582703324777912836651568432544082254266015649955100649127741770652803459891298160743052431333204966175293828846090275752995130884912122803677224356579296053532495069201998807015514877671422380197197389278001503908137793475945470159734802898956691465506048673759185887837979688019144768348768330997213557709238030028528289080449970306050491961865927752011452839472021954904280059825184354379308342067887607131236539989741499999521109323085901538901569154898752956263213851997310044795279639442191961748042630398811974805824009701339008119752131229035100115626023149293176478695176450182970449052831107305322264718952627185684251880538438497899635036809907244279863629198717225763338822107735356572167150507366136460419464343714392110999969912488455937709215893662504501759303240428640249543807561359028137193669670472719501730828397206068794923789831719886817260215162621192892252862738916698139509001135413213666754604583183931328455536561078206323450747056733267109608413391820306898342337566617173299149167032797298930904250813653260987046296446168020404113436523433904523634313523073758676305320691171875075139871381498575815422032048332290867229899632647949782506267586278558111177445172416291692844004735916874503753460668707963731234703130634620672803261829887190927571146879060964662319977210857686364090623873567452065467439291118073935610813074778447632579694098780024830490143258765091293218758897062685882209209746180289299591888002792258262938156245608691437038985822982120438176554006618654636638088930305443675656013629829907563949872426781978250746305152861056135673476474193320627951015861245981672122741456908643092027023671505328161767803836887262871289387971731927074965770399301234134650986298562076582299798870867228348303011050304030929683127508552040964592597540751358753245155379980441141925032243363280473380007657340526948664719879199130551664509145618758092060832137861955134417114430058584822821906829536932985374635158017822165844429082379497501515429100543993568789141760954116248302901535048474163316149896584531937650303317064407613310139613873298352170734671913756417386566567188041249063707249792242052855686878966841492233637414709230642022975406630041449847903196168338814009454779124061389827952866883922535954026012391498215168267747915714801996652972800932283389215599197854258494728395571303902959610715456831114657327343543303436337552488633307047117272619713633469724601244993267590487306287499779330818674373190169254806317556928086474942038106295069108177220366009687578092248934003797184368677099025829993186759104195016035839533579746705614410228845923698853168444441810962121767137037686594145738516298722595728979036594589118275307406010520374675001925320339842051503328337284247805452094726995303158299775504704742983511297558377928188767854783396906576661580335835059450365648607688402894370758023153632803360773606983956850295488229608382285557062102327409479925232934992752941437602896655206895872989477857880567152287954884893174053900638492716002315925157668989454430017136162401980831825102470134695466411295326640522705579103877810036435760427331901267694104376440735997826578857694855783414288302222888776432195746344899543284757227962378303712465175044390394133818734918503447790283301982764422273754842785202248970467288709980150353924090986262740789404454681297997432961271249542611425392734099622538801510059029519810692937532134804098986153161466106627421253349302136173178241812657938963971488054347177636925706061877672391456293395571790200384664016031339555114177793440052166410377994721664336057370747812079251426054060887320787228880764937502855002597449366695580287925896101039853539945518918724554139431485086846687033126864326246190415383740778598230919172431193982487033716620277285811707367545237660722999996082475808006929856042987716847569279641363953436303290995779338750288202106940451012502276766490135974550153953985671605895560348192417635805215895633034820982028689820238619746710540014479965733060087384016715992650680533011273536476374295068614940769966742219719890933240083803092689700195739080706152220715717912952664704163036731289518193102405694094958451304608894389518193885864729109435486633548488084330785290431878240208949953424161606572425073015259161972026146458497866540688382962715339253918427093022666462323184058188153505947865854092003456427526018088843512628078310082155310824826685277023357829500164120547542219145109874383885363329880643762883374231312233322084968972272604828401806592695818930448963788214644050312615324011998785651953852419096054017834354325147091539955639905020016784330463015956886897663842412818052315576789036408255557135466273479719400792990923483750201978056189322580220612113222344612101150473986233334138382419931155599764758337020368455575306793972262609547878452516338936791585531979712029340833274584060726940567265424340191083561442966981696297506751593542459353282522056678595465988727817245232412112408751765356382776087249583034970080468744540114029587827794677781380134142083258386640606763771277777539041364070084471121076603620585359356014895236230173988139656168323731541281471001344696858639592690342814188044768164205834972069087610478359534343451142160607517824043442967072373678354671610357336808059297412925939290236277623220433246719200688254330621075788500796823693320344793174840069390989129827294671353240885679359463770270639890128558318701795937687923829439229006963538167551193901934003589835160498234774373796592642789130755966475488218636564297717385089927565307453440383600965763303049648272434363433068330123121972206802481064972786726083321068171883920222317019447552242291441725406255142093611008535076769218148169415216690552542373320325509443501086405144714246024060529700650187051754965669686874911267051904291913465280647096988867811730074145387891850230499963871748228490461799843206254545192126434244340047682640447709609789668280784237124953655020306242708104558875049543903504640288169153804797622194046277538658708545709170157430424093534673146747528549770616748307721462504640532325243236743191076015337746025115762899967887103658293270966919133955594195123070206727084240221470744113588507468850765515001000318331479079665161658482369315634853852827865854273678051079468343624214808373582402906619116863520301554508269258512056703018381960292775172024344576678026502290416134479583101016896928110690853843661503637132646865428104836742756410991554564386932978985984447077218903035347235762228461471527137914080390070438321368982520187347766582074002369243165491048424928002339462003680171046480270953533550047551796337980659624856402905260238475115577574573668098212740901708616003084320736352954550521498072179431906122158830318606918488014282296512996293018031101495633605053120995038590403948418124489349253694593666402264898936273046711656142101552691129473507405892726342882043718705750630170224566390647705805820150252948555591989225801592706259679774844236094598577866991804656023159230268576940814179713223253706939896910715523507806798080084659974013155191044631970323299188133757011153775439219612040155564965209629562697563731599026126283890079594849558696259691198338650402163888430399746941651734347832178755224390438373081476646248146502196329537473429116091197529309896727756643832983335961694080218107841409022100512141047727542787752569265403577811402634505173068676558176237517386686400356897301358831459190608093783180928354309733571539351274231502440937786997750689762352279920465505675555150930543941196615032741421731105507533763188657079408869524774584521154171112247410437078273403964024500084454477924498959414170576717107316071170321189512009701711928092625653555397438815260446679905339529639221883277562007584673964609817414471914723753600917254228070390239650603556636176101567853791336821627218503779691777094959734311769582305402929772975080543838630538867120020907727454070633936476759415410703513524203741969843199075644054264515527657629429350963243251216484392638574993937832507069815417960837835426265670180145504681466452201751375268555241358850629025679190476653139248449995522176948865753622892316599335483978236503981079820893298438976268007309251940967998242769944274481781399345886472673908082727339755738601429974412352472433705536771223310619564788671524601100502205547033427122799249207593340302253887665589880686754797527267298565344497140119061928884490783552048087323050703648290330900905616277001803802684789277536875983245415457950219875842611398998750457768848253379075165226362704362223431390752309688743797230642475001595627618463673732125429546794685852923338574149431986433153133870122324311049151697466359818297049620957297216116297126613532045179879562625531490115721064704784207908955595805443266095782175305500108387407337484072722552742075337840822870112029656690764994741055474380067927567924229945771857291254478117228299501835316291818916862217478721988070978661780625709659909816659899553416175423034750291862829025832938085916980459183364905225844731877643955942873586259696598582036792248589084407419986878514686489606821005390895833151583231592697614771068638442039437256613527624278581801324788690032042074112561110680245026666131208500324348548024466574547724175980276006256071520607760867445254579767379690449465689754916419967144240964432938327054646328367415832443543568411601543855153574175202383111432158047184280185607363651391603085948448488977231640427788335907517057025424731553838145574797209528984535582275942404047303612240209930465300916122154603531692700620585997138182355582034928204047370756892529679018490560549708967607987785012496130196197386411816850488063041800369507057261389472409003876389548060517523368394728467850841478367661165725747791039926814641415584250352170066858152488877235297485665201863902303583607229712743052879678408547239950188658630607450209309533954627192322012914988888867595070238871736792707641578796757079970727889249185715282473551586274988376088105956199499626732353671575916353419951387057483022924426639445937425385888813818491731902314707195980068062298154083638448493388699533675106257301370263863726714151065872582348328632112849663026620442209215468522581229238234255846635867110113642344847845306430096143082641959690984588744732831023226847574337267092081144637365066620845843320574524735659316630926193654805921771403638245555940163772309858085864127384813225874323232265370336321184225772889858574814061528069149516402921193784344401037256633053284217553571453527513229715594848894133304484085590884788570250377396749576047479480425402251419545672853179466121548732270532344212266068731745228933241611300544116088343234508666350312714556573697182547029595662292298384939463916955777630371205221108820412101272929446305761272388769054192460526475015140067197127057713058070380186006764456594813159357770721996030149768225299850288665983384313654857094325229563786514050984407020028168968972003685597194061224138084482440293353660904328870613818235211035683925521021986402729928661207116756275313926693417302981155221159318567506767351615456017782049688577826384463513655508706389386801037002861351015873910403204345567102668972638388112784788234924149999449078932677400667547591872458252716230200218667214449649649434305693652247970588727750650360623018759312630556224413259990674472293781266200355650456046750963234213803349990469240015307278031346917851237152257891082821952532918457909443381086133589009754560645234415708048214396773469342145007125824690141335481509166594190654999946005822238373059942615547338420073204542325136361772794862572619788887693625191107939427057011720921470173305861287516049547182197109621111139876998738183366283459823533079228082389465475347619655485974437182042374076320374013503034841443238341628614096996752046868667714597968367195483222163054707870296119849157518424946199481186620713668068369967972196520813204323050075752516189815831245334554128152232286755524740226149460217453670260331712575760936580328172244213551098284073847347309715391152443810852070862633454177245563146133475509390698246471766806106414001326615552319283601474240738255676873933622296476950437649148886153692811410570790050920622348316192399015513693014665120402000262388213671355873485296016943465674211125801217857311507532884702098415424563282854650066793026187044091498644414493423443891608142236945971235986569130968069387007308426202285765674639926919488284075712643713975796592232194320860368223740483213282561177529048798483444118289941870704848214365240186921010727132043111384865683453461870256568350836699262017424429772735780893634136709039571223802992024153592140731747907018781064702906768863544296531500984668394655752722565895594358076303444090760016181944344571147555234836309562930111920428548559119918065936652046422064483738265769148721373075480496685584735274020668580160975568935623104117562924386724207510998232365352844175720401248501982502480388500819350321832397944088171812320052958837792903460289416690029322598245679591674751686544608094273165304287214712449755422710392319200783819575117779970250462631118085122400434157101675703168237183860193317991980408020994006312766177171187989071810878265223391251443467544893226603892103837597875126406518182714075355776293178912742422530439617418165969118322633868899936084223229685191973025919316794980927122794960421210262314561309266771317285589043655368749876133538468906464987531802086453496523413343512028209502671911315256794175512674254260025970144717466672846291308723746234042389451619009379573630721071223834981796370461430711501003723068243924838003320147580697341567180235566975415128521374785762549750088679114541100138137041666283449270049166105148555107185882694117337822990844013741989870885997145110657159122882617087753280716575099618361546852837324776994269041438232328654858238797728969139782116959489738916976259629044646082392836905126727235506365755553417706293192706916796870020512277109871118967830860817455072237842387928109330495805420764286677390855486337182825867772626164245829353487281417382598733858602905329035176904792402908424646020491644777963117782477935241504511406656987601773743492746050717362319556748865434004531783311142141059873735958265941374264905088137222164352061831472714464769587440767619859609045280932739738500155064072476442074993421549976167639373671296299662906870321368809532171129633409452856459264965380385034061830874610895135436581029422735308523333131796877189252785338965975070019285023064747845521500482692519604019282273154221750756075988766592523802517323089065916577885434013790952611171900737108578617675734643077240934533962849904788377473351094242117101007228141382216402111551768898808558914205058855937375370393804518495816830133194649935096396134708902045980816163202842304840791350927873683572098508484842432999760966566529298028060456702041439082327319060788184177296838828343215497659840437137071205013658557795099065163232298010528545347279622587806727392306370469524304970296417990394911011670736199078192609945493015875994122981650451826280078911312506701469689451432002477214994175193895959902701097225905690076871018708449283764582284893914855578410857340726435726829986711767968843941852590547622628804188481751114671909759134851912197610153749180164492519827975943119985386598655031226017372162417462128463014716821424217938084879736569999504196408243403509879442740831636333565532023493816391487876782753855670113397743681746135371390267202943444160137401787014798937560856750772928742497991389696575147668270216277569591239112446561045016253145962793500828324720799541246094510554236031332172002532890582968806905433265608670916238199088981463508700193193531741602873548915638475691324331013776462397156221020135864946424477314108099247459387517337356702135907308410286401875675304217921373308124320632510789530486808891058806836851712619776547729450298169476267649167714445138813757410880832555151018539185891032912805019530932226148780898103097860184083884797910796921444606762357901760502333553816580719818281928788666309274956398335869239958828873829190578079631628594510175413047861077094672213690203519390870279674829419140789437370644867926954518133306294834294749130457167897420450667861303735934031326704616005598105622138208021612958966671947025770777914422853150583504282429719805863959834147613982449274051203234934798440118933434919600788213634549902553250073248311446875268515848520254081931545187609534110884919757780186739165977567749156326615485359661169045102696909322351781510481360871450736653896461272747413065358037974181329336507941020121479407053512960756970123813598281445099497416731847383900700937002990082747350391307501775792828547539784887046652959662261416135403996666705639466288611988909241848320082459469731427744932044385525516468434725630401734146789959522148367860472193152542565635252765311122491382509645974216755553530482992293908113475253049413076485046777633138120005717095033515234028860757846559090690362400994030071064645878715113663719438137598300980176378599703601746323108687980789044530109220091969074379147217083516869642898281068962926424450395469549296477730976047737179486775025084719164005876321635994733028289117933848600362409597586317984385037855445173171289034027804866946900359671276483833338304621733784118423037219456733117343523029605029577071226009296578485327828103138228066459337253039334116811101843094044568430827277392123560946774102487070166109158075002737157347245110303922797831555556548280324069905328988260951718955209926406933777159692097329518848951696625691084558502318230565496148334082215516825932003463026894967570768688077151969132590599645826685033724881542211084577744208273716771528293704644626137691938052921237869496880181920113202403593203764422831311865302008745963932865046066300419858566283682189750017873390023923069594340000079500489440117496341353212172344459772388357398727433554268123094899281570734804427199455201656774898993250765260284977992292746726830945646614045007014625053165649254794308305852021955599797006572635265913582636528248766658909640253922571060233946605084258193955411482256094552736768990299348494259020923519412785067322502213505009001582043561381544749845909163459971640287216669298633909806666818331975019591976828844516736897499348745194422710800369048272004876522825926486592221290853068235397217366336886861602237348696791182940547987073328516246337933495386893450712411406854829323549663453999372895118339307257346268797400528626997534025876945590704627397172481474087976353826366210874619581171180930506110777197654823404957679606082068425802823987815786550380849504643650593003704271616640745387863506375205743873004065223372224194401843039250756713000494460773234081772971331807359134774243588864628813657888995608269688299112002374681568841685740704094868782875761397218710142043082101572455768756664370693296613656684241479851680289616779015296502491313734480081082027028697159128184642226866827849937567863719968185596724054925735594842152621256420689614688855791210218012628961808493419459151672851316992795859573662983549363181107499263952019966195620984761279841381087302349000576949389526756097145339558704252734421447757564001612913198542996598523041838316775249776472835565631991573709527739752443344894946296559559775820842737959333255322632319697495719498960020773703133103084864728153474929048556587678881669733721992338392233725264804733686997913209842029409557272925664365024414964942488659619165566080669571109002531864506952475936657497884909099866542799243410789888385108118139487312587133912200951042478133197530707033287105198307552491521269702063982451021835322118064238635498636436613778873262272755561516188428934277804909706757125139029044594985699322613763999985938286222961013006771899320258051896272689294771501503379381649435493044869127909934640989808415119183871954448753906418845136571166775179909242880686179331858930800816202736697416684747258866261088720963715541698695153952262387910856168065927675794696556395663689586831033212461580339279955234740247421353597078240085688201915420699730866201615902884452630779197211718180331174870066828676199113789742184050663970690023250268844468065889342184638578503267046149705407798029896705781999177195442779451037429210008917310251186372787827659292599201086226718504532466868716094891760791473182942114194078621199854245468373390453249054098515020451422598717511714268011198440317615519450986793792533213923687441741803134425886680229986917350108592072339721778845497835195126978095158763479123964887310698531438288678831079714139233205713701900520039730956112698949968899455279657442796504600233603241751587305473921424185587884917067368301172598088765177684437082348677420387237725090455230003388052380827178941483421482280071784154620292218141475131298383953680183247538222353472701384246069884540679866828890942973754918877378188005685081435004961211660958089179975125610683402088162267760393411215121255858946755719758037553002865815047093159716109392416555649141796295102628293527117168324366163203289323075377918772026354038498306337650775811958397180873386202727054982759413151125403912422148835574502855611790422177623876505678107783266641877551273082960844433712709892240010159502363337373060051488539399013151528771316730812020155015048733700994030115679564479992700886332311443615561802811989088920783963295113968835583928440019615365088786412428518989211421686062885355754547901703677757715113267655962251085863084385417859519607204383039332529644147472574240160671695527033443641315693027299696976564655992484995052351345832280187500375996112710920181125587876903200046009779125073664436275152657194056714574275454113011107624470826499043484790717670795408759229517625366012290132603437399197106567648507864686155717784794565231454742163685943076913103259603228362226720472399838256821499586553961722064580601001618605142500983738453524701535117034983971199743815736382093945707093419227004875890877215478043480777698068867377509415709549677187379297041188459822908607515003974619852736729023397271391951169210405248918688457885521402680411507184745037109632107717890323312206373786493225625390968145210640356540077907454536132745909400844178832937362489838370883002923784590734662458740780541367774061731678570189635547630181583755858688318911281855037641033500347025698761024648846435579682159341654282949451844013482550218003262557281904230650625260836301864661401967390661420586190499399515639387490255360419091790695371220680468731934584234469037717667531723388328885934755704862710756367523712415065855188051604181616050769761575913244546702462474768464277346004802146046334424605993248399007437061121384012267520629409196932686853431934973911212591746814807620488183070048560359434031467307806345027806419447282187910415887391159977744165184201299969594416364284883333740194714298267026928433379167471673457413597152839614428224638875701881159406121891553608190795535179649549114170371150522212412996335068401551189394462741148396321063999838264791623085851302711514126839575732446809140250631320292413548246862029268176165944641989392923302094322482612322312704582401429268105885232981234357709220749732380623697932121992861179939934537763282438097880034970963560361653470930090532165816917597075062263566234444967048522860142415035188876859362089817916943083247848221481258954416389461312275949522358347965691474231088363879494369869558162975996935147924400775653793658801787710188211218642170970532715401285842206208283308903664136529632538664386959351298480225529347719072659401354542713619282707221132652488195035644336169701690987889595152965458966476186500714533648093564761975314521327290726181783426187629158890723910241742665978272132953806263080486782082714503033583933869729535255799393547164218417205948502874008953813150538016082486868296425297125657813310207588224755083424595548175259596276719351908920176526333986580164036322089007699785649943800387169033320708198285027878537035479131621631515830045354012180237229029708242527230573009688659165091003644114191541046144610305222493715815052199129175342156961871038796241668877052457725847083128705086560269203489129766395514509945796608925552419463752677601003730722076514880907163063726817588389292632099913027239210724139117833583984865256804884903168638955376538719738296788300218873804032085727248774420435266589718187678634055909264468920781267814247581942901026615494093351542584784988403133454920759776200365239141685015872883317562371769670883492147871965848914495294283833159707314776946498867810163977946432987308582118068589015796904928885301605500699294366437306958004630346721177274825897808763679600653467760761748756466436959675435913158597473033815301510294638063918207308809855883238671684773443642702787874412943619616015057128683592176514431119510537535319724844146556765097102799369549123073526632334777836238268429721043151458148878439468009577963181835058101491853887209230726209103110551559910222717544520749397680415456220085628159764055762182250613929734217334898271540394428458936466976096956459504316739865431822704699635989822873569181971093546755377137455863913728923408055730449026710306482781037489463166439449742883551831256363358631337348631275667287205321128141571222860862112730054144772300292140148936822219333433877404950036588240354981124677139151689542835411980758808852990075641195397064537583787230750902770254540759436146038658208318228979160480468929354070936661836066811534259857386740228897309610657185910234195800393613365834107819097431428605029066194863546457604879026337452919378348376713035412546523134472080034595991539952570255955237625196288305076589745311517813048557520575808741935257603076769500894342436130013195589184393659941377467869503946013750957103499114844078886848574152786065876214985263219579334468109883051567394738617027207275249528888530455112514231275040530125205274807226493965386726796645280653193489665304768257449098883617280275735381977762760761575188858482128226133518317013198383631538568892541913930803731971530185038088619604426261576522095379392115981011754989892189324001054263125077567740734555722692928160840722708496161913698429663452702833743140672303620292912818829097683973699436664625021251647606780428201775473354110077963965131598951775578794535952544344569259950874066350864145331997391423472300545310959496921642430604275875464677793941218648935105172456693640917977187359375463308203093282363873704684837600475424663696443853626345543076464675425174243214291124528778462961039433259989739912293084117944774165233415625994925298748381022843712327397679964124146485334135920338726137834590981003935871827746024851855496361372758219168788812652087204793059828749875728052099506881238930219848717004426319093016134728953123223538125779753412990829666694042077537401307478059767649541695467412244026486897259944674996412736590811923529334360420302967447610197867765557245576039381469692474638708594578052339308654414887703360405785682286034771287823087084630850339324031231627049919549112673685804801799406864824161432271379334559026690275296129621124642632801641767564004669919238566105223934148958273458657912559997897313621852317977059407284896417430138709450603432477219453595830172363213839335535014721464302841202115414835601531783331175264341124287184414198982051684019825014995513147526386878308306748344960477464664909729751413001690020108791369908808071642443238340753990414983586558605905277874084778405782958998735638404676200784863941032893620869378769082137324999824051633998415280563444246809535021383555773930304377120388318030213641979457663233276212307407775739186753473880839401853082725324382217715989637706798619457785228647931560080557232274501030718172376219431492883450611241780072410520575868989862456613913257647697327939448262943264670363542311776133746489082569187946604011780266851834644655595370498585890668096792450110592483976845058008545695472132690017653758676496507855839768255445810545804681428507020835629875177320621084756520036412027038675975507513899164408728096433151398344920643770069612692886855835806009124787047646467120693740368641594634329320129979325962320177383566973122161084943436978010615806042305933865721055523212088764401092987987642856361314830900039455183672458575696530340469213276053958595175241428345710806891377613536188282604089124932094238650361776960211298644238228257425804441186414942299648848102578477132396331139675070878333351399947947902019704534877184985806261722959797104420444420567757745599191778168794301349698371245652757748382679501265510487889465166274672388554189705416044143990686001607086924141454424783029367786246776322630277151863217020820985235922225391334691496493676883821158063993994915306525098676005704114552483614796663782777909363425400174026330709554971435404620103497987980200907509282353670862485732731206981145444574624397261004370216900557376771243140118830783975804961411548972935136285663611588163909395892261455992062198964961250623757588123540145679252938144703822009503474542485036693217969350420249290064807692164563354010918384722708497427021523073180081713315833924553192115110857522735463475396179644732943501561285685148913464920983799751798549650875225993626369610970862847518293422627996139884097073923103793865263416701475927346362312931720928763449037796376267801945334691380073111511869996343706856745006624268178675215585590089705637565222982666585721684184512792360883936611800133208116366677967180646117154408512726636463565942690074602068637145022261411917115727786684151014191178847972885174919577890567415795005833169223915309569684113446782236540440762751130082582384707320599348197501836499810607007430506188258024248020642652680720102334554406293549365134077472622909525545664659176883649607848285408891231047384879759467624522470544283061264985169342518671208308740285543839594680500848435693334876958657922807872914864708482085293919537009068937987640176058162863069599061552390700711481395649619268607175524797368999846884239340634438195514802738806064621626934180411073992196171199958309558988075009947960731810600185028662262694963679610376513681615915177684323027860560602369907022288559912291208025228017109103555173514947168098469026748945419485454070331272557619378762504276616297191035120128997435842964976299546067048187410470260979688381139419283409648016220015870252574180006142471696516283566479352221220991444379895072051083034346229253569532700527607716169850543355232773442096976366411979888537455003777984427786458210571131392620867827346025009452894453905140970327603181396844646633431180074624022992432905643261182513628918624040920138326180412412571925451191680673041781044574986838438800745581849961573030450528418996945799763586288824259589515526316056484597794576365912502340009046260725060634597233328803365719212402334378305595392603856795087121449189094661205798816539891584001411879564032814728626316048422077649574187322950676875442601955399074627786148837306024315819809995938322272812186316117949379808240027461352092546359920468944171181830326666753412670607505568969848374178457861387912531382567686807862302688919628541213024418023491385584937572674068997987075164814820043466733944205382142835937189338428073535074004072861761698625345815075106790439567781947582674983431152144748710491403779440307902968655385136365591408896050506219105251732214656148039516226577625894511350537584206147698210284841858796364855208839907283785449586788766072949459167931957462932396115343193396268908545935498361392108149784448276133415518829768182999476135057784282108286047688581187513636419837848342500644181530105172604980431319714881546259276996903983115328368968068033190800440840118146451075709224679747314769857039600960127239677655845953842466716227709931931712557190374043614397884846103904712292486434057030496480475610510926443443160710306356801020892778725462270177431915283438478502010552862039306930434122774772940540559461225408562661019600038766716254814682867673122418022149972994927875795922171134483382822979070331359744239030187368289143949219218211000325962558916635207021016778604130318080154014751113007313864097694944637971023990676637007677667436535524449017165983060295016649024679980738460520998949274266461992424175269600769305696668631621115684772081501864502561831092523048670030315360138963444782862098211736793960690985016869093165296595387062379800953991247571976852706223782955776693985790096925695433413834515652030498631298199077378124316485948922908432346342537595611105698519062667135390706117349285059362762830901027359145000018415902854305045823498990271888156502323060216847245788781462923062069324427470614464132052618944211733330231453216777065465175539859989048226201277666802200416612605692720763092083892941779981543676543008362612395622761512802729049720626181812033145431866789871107395422262491098613732694575310210897446014128786348987513589067038118454641097933136938569290981329644205090727399470002579549485161303459617791984036053408249470136021590945973431632053654243447819596561342403825040653522205485446728535109552200616648736861314808492966113135412873173758671999012504891813846807623523324191914429654122439412941478962341546255848766028201241888953286380315700161497476733414065378731736017492101940848039959653411281688365649014098931285662632040505178012522764152308008561904537904128105447667629562075477030261299482192466105994443929095382712837398038218099450009419977032790365412427409643062971939556942313405797830495037226863022555957876798804862344206149036274013837355281174980065335903692476321347663006999720562648340868181449916304802384729775297383408549635701690433568884415203944437205177499103871486038021157302709255655306666541751899558045739328814067673266875464731702555781816689886210539173226383281190017834198550891637563866285873945519887281288347680650252909431136982401941214258069139783419001482173641314921158495778291670696107434823874672649147748009720852343698848225828834763764295773559451991951117318000601233454126620604070805966787371175361776012693932330080277086978606067696920834582892344093059665021659691120438853602046031097828226955798138439551186735026914819126224031826125767036797949947773517769387185605154666710833259224072306030036406008054552938319869566663175954027314642747291026241582740591449035808718946994863518245151137516751123673317397846316673309524175821709561908779222172751540064672778854344655367840017942912235229300667227477080763603293375435079195923339305720440213717903764980346070294985412259488386755320769844463576072061630386091274659129035081951162012720540584319832728175548073269405461218415588973049112423477658554473964953249054015356198726261461062643269556896506616532101657008638859616442003473413388834557752289128192654582021415854428781691282488146919604429834321959998621385156400601382208625118404332577033551126657467311163048900154874309209255551436924974897695249361748332287679415597427251830093823954737094596309340349159299844996122739540282186197921375110239758861929423797248488679456083570452089296775627767163113085234174541957074107589914592679105047583328410715558342672160184025001766285500310762754180700747399831351038905616017507894215046660474236525373445936504159609471696266423270617915717177845229433651344655650843761334606740475160014068562987419799514138741971159124274446866632007132043672580061327465120300244293762229483466821211715591217640151496642041256022660309398928261320872096085824801157071319498564035835099325054317051219510238406537837057362233153448161253767438606106082813732392050350946819063237463012854741291826791840984111166472718542326123077390572692030490381340371491611480433233032749522160586875919279291558163684593224031434763335233286699925858893501518868703061228728151902028482955887603970103966136615500189008357137616043708150258906250709201362151373082078193549965563454415971988612224445015657876664455899984809226560449266827034262874756759707281004792015151393735063734591761311720285580563336157818341682104453532764742139058813606018853141969224872407967040215791413454236074149955053321524204939227116806802704434512135970215375778542103671254732436367653144655166791262553585977206798166090666970031456106679945086305615165965028765027059775934074896253050680235340950159879943266134319768177601001950948901436461808344590894200699134889025358123598807425352448567768751352556947225101507631467230022203025860474857471250309883978171116638559089502470362600461374622813106466100429940167675732192199118330997415732406452525362283369960825142724463768650114634563089856160544272855059455956325043637724212631708562164147206237932845486624018673973019150594105872556811064970824969667918013126149261920249501331254473937543656087285127541407895912872371062047930241398464140524104573811508295670895608136917409687631571209348954033347046377981714322381596178131288491396832523311223792617417059954063760425216921482757556171623059978807036487162038713362452058997450889709842348213362224703835429769149080973913331063920416898194764898214424107357391812269453797027262951879596659452224216023503982576168806047921575875826316737817438578266342835034349930934315371777869461628456307528814885163181498152625633085798121696833198090942087971445838635331617901417418481977612304854668930651989751675531558172035678503221015506240308902625727315842153562103729145282051851251322042290318334904310080677984384474715069422910639375295563678196655703144448046194770586012992984249542285159704319158272929825560559233421062150424751054477188311610267966682288817412394386958451686840352298097873902536195888961771164630713969377463426008744049129011646547969949425886423024752912346192960028664475170232106054405255993675028454379739582436883739022591515831141290274888846119571219182259535924479440095357793326779716629533501190761995180756280859667504376117304836666218107822792704016778490003889200793365563716032982371089866643055644983987440938626252634355249223978091030917522114721866481026173104376314029043400329408152877141331377614565062929187282652559103121868464411701805481616670132374989306181561366187679776676193899371912993357828830472794884256445518121079903650259214711611781746486185954482625992834382022375330323365590175254434560366852516099488526853469543413309575646076928529975677123772924974235836105993610963999300205121491158264974555241566358308503260112670180995833469261801534945019260195259163115501860999578379265278935207031339495239213488588701903289677486038192033987496130368042777180182777524414456486691895756311348718132312824957804316647061224387738278970933243793108128492044982398722190952776715691177572699397584183410016283074725348313355303974643289307824195800359965893339190317221292789961110002639823472380375165976415788858165388983098951374798924717125996415668014791654665756861186576865889645371415253113561400875878404867265805504730840040960944096245043803848007195599474320161125079934894384521696196725391728855059232557416035649448022807182411705034834604341682308595117254703452540072895327278078631037008875661377432910336293125427366252048643838987081834328838972180024616508737536524357150596985684420295598354064224480051553705656026209653084398810435697531458559584146106737299977114530406025480280763481085666391867547963208234886373453439437832170854941465675139204464691784181879931654349621223315550622249168542216300117285470503638872575684699085594560762678975593084373917474787809717672036381512901543615792716256749089782201163134609281975566111932085706464946797895477155614043484078637512134017532203794726052978889220728925823699350925477720102056343968860261166616731592005500696351568931860353235535409374798052712533950581965595404540161456779620362676585703232494083058688466011601326833292469253344800933950234342656197501937806439728878789472800936252920327359706615427619197128741935832588669682442127957851364396989947802925294981517412530367294863119256112571294286754992409219804805395711327818583494061567395257818976558792944532824222578185819753046638155258988022066803310416223223397517061951657130909538496027426475136665180534262498881089209047613730474780953900638170867046973340753949113636587505158206745737540072845484169943182578965959601799831706523967640586496274476255586921476217740469477837476207457720874955523804010383860642979560238151885272787028263132572205976222966979706933097909568018741366378203727636779569420477813310307122169623045574298234166685688241001662819269925463769891895196120459566263624374000366154207805907015044631848661765560124926512859427898906786338811622585196890071972547822648866756971128505008037887717802325539276193021693848388468324562186985553594600727842755323374574163275747970313095594183150248191877091503393988750067327719877004314716589846405461394067270264647322323563738938227206908033417119187860691838973668149501611789328969619732366249491263024884464116925058026373264596812868948201855856393210272797984488413636099579370773925973212247356199428454816474774516758047423927190412458736969339254682578251365972220369469680981748481511518972495384931439403754286222823771510635373648200480380846807464434431597293833629777542725942118124608410586999851282744356129091504905138645872251892740193291165402770662948211694167324447701202723996241667712140203471637086299918853496943675323727199880030885629387357699069560105095629875976029885622345893044311325009837179808153440204675600306512890920862720777570647720113682385892988539012376729602901293605465327461989362962218695741709970872466487416327919877382237562974192480835475909584773118015261287097630681254781975588979048455988249843115176468710643059670378956589805709592333577037702969855126253897572371385053991350073018495228650998135922065339779947365032180201254866055234985866530920329725179265846932861487721588429831997625875955021358295700976495165287212739499709915509427709816837643305476111514367215203693948657273716897332504726371412786655425993401093736960632898069616910871726600224830402871317453371684059071614928628352953036835582826843214032869960299812993309934610439445624845573666389332996252878934851829191876092937709985347504770048719087519665696197881688057647539202830379046491755699171810291913154096914798919195643251615214638327042866625955040912571275052419417759124854818720842864297131186152567148687426472747459684659116145546619675338884814821805842328878746053918436473393262090137102685764910646521735412595193193677670563422999050309927289982002141628675152050166256844772136479265291695004286934203144515154418696963170441668102433343716080053538357015351287068075264618653215091752658473759434276943066739782963036281595827022786631842965335348258245046247869628818693690241279451677774180136488373048364450586075460333057741445939719244267789052685588850533296576051649598232892456054997409714596101800494288224699748687344902213679928437444562283695770465116516044041638098421012770594280664065271904989794658544621046845510326029483579496981964649356252926936770639067832531395147697627086346476409507383015440889893456462474977822861406521165063533040338785748636390923377554680702902425716906955940501537783694605729747707545684615747542208300898389453127027329580883843854274372562336065555550963944174021919130815439184376670692385203076854390763375766299856870586840857579432173110452404234434525802799719185498676100948740138046608614171270530905603595630662339751747735238667396754118921513321273207065479120023775367654764677940506519930853006926385524916827572499376908110709847457009609085439472780313925556531194619391363230333548126021724486948069103788571685358875378415632482621258800868694734616476275082922134299487785043883183420534313773820464038839141277092080607836386253155930259233089783816358530860304537407565769063116279683085403958760169229340757717075304755670051280706857421924186743165542707806579216924266999428585677195722835319769895497496607502276359255193181944046838662323436436352871693360328810666084231419961185495057336808047830586477665002469236615644118613907143696186527686197747928211988580073381831357113603427010041385886591129135651186516303487869208591202393614591702587839094524939869478416681033584146518994568718709703841075214499272696050739343032845146476949192193104765551998432347081915608483181509261287185134951574183212511897513489450358907450326441128547016390117135100817427896063619944464614097186661742619489627141048791718050813299099889553149314463009221330263559135933480790952193184115433697369908556197825544210004923320404083329911397363205837604853986739679839749344149377187950644458609777209009507884231891931045207028255210546155379012287995135740732936103444556623262895266735311865701222882088446499946852368756139865784254764567592788578284001361653778177679099175681876027553166825489436651866418458608598424859995221983696303880748849437140427989635285044996044055848976030247957829439300792488495687693045043674341833571203344847090734012784409558590630895934263262691001797643433914776082524491120581866354031670233384488143738337598640594059307717532356010626021410878471413702607552577939532968096886457438341016678005804171416684334666827887255571804040679326543696948906755406647956007984644346458697957857765766439698758122008121433010334656880458737513107183501598681194067015955970205934215329414957644634646748680450518721850062303148756854739011662397830155893527489095796468175702976725555757508818714138024192433490797262042409410961414634074710375739494391340604383930117594108788377387140626136181489591337165967753154778793146744688098879466637605810464406644202524682347051947709731465490638636791873397921057706935587142602590980221519207723014520995107550999127897921369184932477738785163246788653967276200559621177925466157709080623746292793691194889954579085872956284267699661610444592811175875171999969079768054843162139620239228566466276854021571095327820392909908586206518108323176319692857634352319925895487507178140606063992421353931152669786109325081227256874905412943372817684868016073539123437595900014606975569487485221447056820816402249064273347945763100884122753998753759615395998948865646019161847560260386050036568072533103516006573207112185206398183365229378538252448484818855413623644457141763797666093403912206119181726790302417428205351857956220301254847155263917674594847166962501389881657319261319483090912809979764146109993371709829459282820504388580729023048239991489293451991125450533848724379209702437405946217958903952702541970384050691649633879301808653296507279618563232594552052195636486406440733953872081954860447747865913634362963250419398711118539649781296655393779644749949503561236688433495526775672709673809475723832328117215410435652943763958848243848550302099178660045635897251077232343734335568222756948377271244604260186998781951111007348235932421059590984080360884170734102489132176902552596782366150124329825193339664104283888236985493807436822110345286535400750946636553421637865271047572135546528099334367901108713383543532542873919724091734070152197076137236959885152187481459317213576452399882849902210960052755536910229385749630644934060463937433786955351393001061153821075963102385075717840423738776488682685217588376785132111146260260712979235534592992914459200351810412782099397060888177559605891886379392363855772433950734523746940682048210087844189009213491551981089863553176572860151273571926769683766058009169158472059330793289216769688636110558908827583944478141037123905624472488053921182106496748861997984550250030785534279031699437143021953973037583782159557784744879469079428892795367355410329191315592993322508285452140542421584712826913757776113717948330408477028043387036472353367005995372392954460249335127404946887161356144623437552756639617890808879255289194416097633168285058912926116517194694900522897543659224457787880498031048293368285201110906788060188519121243039022884136739276814869067092230573631834684389165843760281538272860167070953348609570089697464929177540680871508111830148771219816669496585909362029684756312778329853763329379336087534438522906656934425097383455397509581692796759923557095668162663628995855749717671014801242936092839165397108915464870683388648095749520356800471461427847441563662047923730380585924632187500377292986820990924447593939306649198735550076625091221080040179851245001936947196086591272890603805636879032267241930763870912259144764517568904185113855270864718937625750077984246159282171380220754712132326023019138801858752620657826702038021795709934527454612241060459271685997575667853878162697813175735529356867109534279441867828414323028334673528068593612359446909919029361006281672328975696509126271363444553921169133935072426483997318803628462025437503870956142684437527084911680583635940576332783542393257679061519432447982621555275735151664239832649026554028786507053701960821688005056637544854659140127426569925811558206390733394363969163225040971730746752751139829302535688162461425070172002799078905184876875057359792254333655928922093528845008234074866400832279718463127363035574477654125137430293676130944075524331366234812149833187052970324892723552003476518878129851624243095605735995077854444294889367398271017048672250717312945172075907381898402616430802122917906174887550756354767532147499583394321210533019968138548579774863251590453746848157750286221499911269410382691098610974399729150779051185098665528784820203169800898457346578950608919947522197625171053569400180494545281887820567025173880184365231277600938111743178219911418514980493885808945893071458447477922813681015298991684035354671426319198924080549875319441723691868936060117108805551847685778676947935270394500140621271587978427378357936569556970181304226469966164381133588171861852841304051268128192388796407172620364305295664884153740353171837949302878539318657830676023727440851811649206364453765060446415443631714135594240809145263561176375575248026904446553943970372762183314530614725016841318402120724840954604656774589470102508982144767891788096764357530691852458932572225204654335994863652928718351155082448926844067985925276689491893451161384650692419369877564591866799113795167078308600258603677620861418525130081459189001499266274033216035266140285280385611430922304862208152137011445253120347611816194117372563986852308669897578169583344605426134914306958451815062825245901978150883115935617416218584341481288198666154037966859386366754706837230620953476544445557736519024514796537728628630674884482407753934566907015644408651400342121823500682303010630365702218184821597004672692765823653822478231915335060292893701135803365198909279553742942511964599969880279681260961988960551346875310584674701162830870563229421281770098833379700496927526150019831886263309561050098249823924168313230871377856659822062663341520150128350871968892804622959120387709444425514241595549624936392892269647632725685101496366312973076570583632712923204149166973355187646926274614798154176730893313455639870458474317002353981238122684220733207561802863714292224685390321102456168576442180718889829569148342969415007963338590789112962389846311153963334275085804275851898496922826398034081152534415833822435851656516156183542583664648727497936708325136050466639637596033504911437217603948526531198462060089773945095805588729509012899435231838457289708548110966626590287992685066550008196717374826233474951548150211988275724692452200950170594691628613506943663838702059674500986824977488209168958819387187290431445575495772900877435638297684560979617500115838066499544346256641082977463867261771941623449325476535599800481351045682077543185955948031651201718670356041545109962224722167999856363172954499098657265977339043041472432581846437205699719919246280428665487023029269561432200269046777509550942234325554381519906819184129970672837668144680780910679819129783233137584398128155047887778638991040405629215288520122569506551894014913794492138386661244116210500287401794542214378788880453829217382418038658614643967150693161086325340326917271866928875408791618830208257645339533894531020417615131319559765161846247675422796174859006554676019429200768029886503881803915865175109321017416230360514357266807083814412952639369073919672355811199667051144069925109733026141047171758715895314913837947759710685233887452796676687443562047230624129409899028558952780543458511760339295943431774825475399128613384117720922940684605677745310713232599448015420684403213212344368830904695410916380789888567996540657153549887171137078561793597725526396584081442185430909651831880978282199979100378975505527733339208735267100236406028563142015118732751401472010580073268142439800646408631465390582513954182124085125319396416329172603538888530349092318483532635446304975503758275606041796986873981462915492591403587950010287067152248373972611053341962863230580472648510221636400791812238740726201068738332682396319440029448257215996846991304183073655002584605796344206542840268814677745928657387979071556897085142316311462744907546566285243404396366891509418766923373252280841167802796866090268552252630631519767663521297118538190026533548216177715344832168155740176570453852091938519176683885061870990717136962633756342504975493442562933179502883667615875047171650908094556943412207015939424769974021497297925483133988533440088574074111830477081184786041386191941244541482163420845287484112951342710417795107048575971247268097851109431065468411384191239026347926818217356026778328056481614425822800964627254611794675720924099609358264975719418608218278480223052450165090735916607149419151136263744860503958168669317632499196555931842949966571781458627328183166278881639155819868235590958240242144733459672960271676806403606532486003459210507050792750621080368827769834730089996258558687766106549275014556382256144091919924520745086267282648017402641486173874226444647517488645905191603191696173575606933074023406916480883679688243514786766974637923431166002458181224922161987746271800822790140126914943874712171048248630271454752551422716623118363970224079745841624930355729490921285695297306345508579645635384686699182987936101151200322757944924568234612372632362536957275790197607232094492022975975146334297587752755515525699280717138516099712671938928195284301245930516659074611356874517751174733115909025292316111529064773571050895705848436403803572391519137033505222247507308901962081096586570518663101659952849462671512103982268834938300987497226974242463567112048305513342430052070002986375792675285629482531015921660670904053471917647880050380327097153365459954114963648522623636382970455613404320628021147842912399915860338211510003931302858223136930896074887622920539619147070960580326053097579522167565378105979523210147085192240238021751560617234148017788372154046947471337003555332849001189966802512807330573532807319587735860759556270844362543646720133212290946224500512196252409710422762883468660359884140350697442773729163409317847319418959239611792178907440409158830501702381788554593486344089493629033027332771065600712902062485610006867778231025057560105410246086170898676404856789698922367640555597521361865224718520947407526805584489687797720308862555246254226295781158176636481547366825417227481090586187818713802718210723008503259241969228146049017362120360426990865748940157406329029017644001366588121520847944099119415695715879232520644163972660858266747530606102435270232122249477850142594925469797044595655902585942415602312620072918655897885627442634174911025220202322430219429917874110672328751909936969281569415546969589480041198078464396812478485807797110688372109168132366330125711269234563678377130959924552468055242715275755282639879366322068536220886239259383659931421605766211883520483348737573587300013749231495018769118056454578836204084910922777650604885219074959071507642625560790824604933578578406438239431255416003191204720611153008617708062728653830776912286373749483728086030898679061009966302327991010107464652635390585431669891042465290438438711817544899980730057664969207635717652318526496376906706729860206116903359195953095145362957856578147435591649788866301151422205817485667789524362411086452999559405917759154987513538969628186444628247296699421738260297024052756087945429005775270446247663352669205603874076496085229259332952947131348658462618583878683484292994283044986521854038168790422795055575331963021000530864987346813231300264004285729626982543465999623646920833493056236666959187643594572092749339880276620140659928201519829859593638455793272219304449301004497839633021235951903530211284116616185266352771308876988180448021230880896678113540252647652902863802368547314651804321180352113078782743780684270424408446018286721651267368538685456932630001379197350881794648602233311220276101111527184319280895750133843317699773644870015158931542954670823241904255697475982301691551915791890499398615451621421067894733716529852854892571742012509777752468124051987026372716069552409431848115169291592560259576710149412841480292551014736722122857913538284764139520292858896229746481833537304222217489394842434262544415090873573710348439284440382012843285660800364614669403864396580475485106295489864441569286188342161125292810022442874898553906580506574290441928825925795308219475513640898998412536649463824273202477757454086651912523486455186610320074446893280297571139346101462383324959784096572733887402449283837238744147357268442896503565743691516438845177957252499570018214833225631633310582594052235377997766866062094160876220954234119765118280785513029407453607614998489990349187314491026065495155519282077021892223363132650394969603632190908243782052801366577406288776081384785316182431603604926849855544294543886573102236462366727749998834388940233586258399499090866048788407096799241890074473857288736479822524536688937419904838178028591865884411826533702450926381431666246115205474173781767399735814602205340445367353097414833867705330753403264202083671193279059536142334812541526642247666616585569653353218794071522510519253449048672724016095575035779687240514921416502617261052529637740036550356976259334927489254183358867036379137080912051045790565200041033632895714256459295669060692553837100831151840521255700410520418974367691607812193707696218313684865865552248413016647333670106367786806904158643537311447297935239028482421145947182427332852823648665873524448136383674442613062826786501976753648843097493548472907848429795117540279255284718052532216600468864071661567937887760274771870004991368952060264471726425098329887339868481350191056428861432222414197155492929980991649346949289838753232255503014145998808630143648953126332561507854981450885544112589185817268686524928739554035730749574415690133787516217279367180388923747385587238613261357149830187232571160016777201476794875267758983671352371925085339268223017002502152166140273611137522961077681431129921602595391249320122328458925047358811974456520834636616308672977248686486928935994972964681490793652689746274720550824926126248057522329233556369021094680533197742832258885071342797395634266899839295728838440760205558851336532649833533182851252283986611505919412310972383610929886619683038437572163154427531277325542132424596578914725707358115738856076157678598224899521074648577953652424869963823002242351039385819987706558826006111113997028100782912989472045529333642868788008337236251761475715128136780080157464702016227353747658760080788576160525612860907200823568147631150726814056469474221450821240012697754670010792907993648124927127498886396051387347268800065340057592264230486749996459828900104443357950042633816728244702173696879845998642847233428715000720301544902240600154028026111731190886831458095097811998209867707304298715716428531930825032480377187874306143120478750039234809315379212233853258600399580848952162985989929793827189085649206223224328082092192118178340626320021275590103959065982026447938396983773943517780903646165135448979596317491999629409346798580171216342416706215134662609627448479833227505307378733683134873106736094794515370690999706302194316124335908944576746327255337622701955950798575960902403140899587685609707315278017678588274895028136222946459590486374642560199501074116034649168934028701621414481250738836178918921855682259396476035716170499812520913850118832278418650239458302094913991082640630832604994062751070941930592565443552445212525644973607552652690978245990871891999720654208374297278484682421651486427108367020634562173200422056497684506286211366566766079371866074870834943766117303803373172970985570542171464382957134643118364215191456125206651041333160879847165561917818871853783737439065058067459997034171801895478453852586846831668229918896509143685912599396277037921151881083088838338448161671396371753657148050737070065971748664322241206393189555783122859665259629946671862883823753848106254956244853523091343902992519185798649099616340057704541918125199636749426090415730531880163040741667286450660798626739784557497121087806236147000028352936517565684722966190325839411366067052742948178819732583479151221952602860164930905845767616937165623290468114090941890166732652064487087282808604109795494304156909313765945219821267948859015302230182057586158344883540853525420444615733112085903563885754686531867167882684868090640839008513449048879420230331200976709662160481404954406363621413528586981071565523514102997413906782244045877997862673001040266507088072690295758547285190588529953055452932514374422002483573853478399435228075285706595004019569993647167487898682804597386053895796969215410291718961803925267232314165241084949365758197096907946650642078578598305680796891923228261064205729734193305470303992375134256945893078014926267130239179282230411312291956535278081699052906682412639565271877206443409488026581139672886385593860119562886390314821481677751937963112704604487197892576655376862722020304623665829119089465493060727743338060847447247868375636792189595953173733135413879349892143509334773501484543921541170480640491238128377070592921194195905518512110360915668568979237092124507503794133169572808022674951322218183079998963550284715623388970312140661926449740016547810041155400142258347887068152520976237236753292436207557104049551166761006992079198102132770292297711598582831903111614677545381469107133302902354109552284449647554800195762662765840084504513393526812530518491142037642573837065405916624251204093819880482805692016400730829125125050499495933110869145112649224790046997935722615523499694727987830115665168761188018533268852386962786301650584276463905814056413715243108497423996902678162494632902476619930924903463530413486072848660883987906369497069625192434282902058948987618476785581117763494961062062450591083558370657921966213749493485000862578787029902203950747942288160427939041941836569800039240348840977583636859345408486610773062115548399213183233898465643571758146300665771084397607985553168242072654541992891044527772723004235651108879061517198986940821025604514714257023375037978740516542871410813070722019762928932456188012075947239787983674743157888387894617712026164742510023944933131841635764373496990419165688331291086082670772801659651804413334034074640445996274230026558382353825707432410918483646062242316496070723009868091159011796264585242443744033183217066322568801468504646958757622363566637523287826832124770475962613130679141396397950182538222763070047868570318014511237310939669593666028905870460191186828287472039834578178131818252403337577331317572568058051266192594311471611791735748946961036867006415066159091904859214896183915041775398922258032617458473817839316895285964290867160656072437478493896923774010764388022911327823126928287929218158247095921280046462681899731983995056901633217398974907553068057898786331269385521636840340557849187159585409655841883026804810183617836268909185716065556376604733595662017524360751240692504719120376071860429949519146815403492703665985556029372337191936131134943629011378156486545806253925566843012834188623869101685379194655358285408090103478205175813514684951936256058900216957647081420785871013682194465262977368096665803118596419816884617408012472895484190525659712574869153538714396113529691831628635692486577429460912537930230144336896857785156605328717656634523314904292676911902055743803135616155336895856367185016246818048655885622032752709265507683680153941896793754132922606533370531445318500319170781544451042618887551858959749776958214285204518620818107832644050846208167171035263198250144465745128071528622263245954882047122379091306888538128996705650172184347432881132333888305044734167578566345642545329642325883633924415430900984670943591059214030810716816636179298065106361523647988157443103378007700097727826676808037295585162168571219069837908088093167981973493815317873261475677461855887089041289153298894405801211252335913496821109777798777823517165589678262394292094129031129471571401967769748125033837377731134840979720733369177577414082394076029053547320266125954985519383967607845816662465698292738337504471317397363666291643867607618279553850410725342553242057112916910609080891044823459038574317091990303355792017428244392124981354584333477084053002116314323012230727893461601133816076815932562452754393040332273985435557120206384001937125531859464336171956591933943039878690265736613726405291376903567863498977406988688011997609954923662776577118011069419040085961841818275867414787686135568795992839297758274012359406768308813949069654304987434151798323647335229194417418725125378426596590686134864204719296293751190553226035674999123141726806560606944515289745958421395503417413922966849857741287423565464001207783791588114238919821285272745173873210619730214663060118939299493102069726699478796960908613344042009526991108329346240501631269172368606969898993344256952528488816351777912457045518428988518307458351317120717901841911870242019816398613172952013913986028449551339433523820472097137915595683149667917941306974293531672814975868025741878325840521050295086758819621300351379583074098400201535389870100683337742837870995860708280357860149198275315808237119681291398078373067212264070798046794704554395911428824959063119542799874189547883974009159708850901041544095799897203773742868027221509298158584907775334655462618667342881498577431846397733207701151364141696899385557738994456393361098248115644756825916152865996454021027590305897304991013095995414372359410900603884896132287196684725707224870356907426194544681250258859822274777666502043308788845825900378913504166363226843030386094883996500233509014794481336034908068920501836465775541135254189424234973412663530093675480307934678201000436771982329568728149568040253017533415920969854350467700155236637408239679202575725644363150409414776735365989237249887774702166722362454805893220836024188904305728414968529734271371480647829001057050959486406202964314815676666444622794309206503404074361737457653819829731530649680290498564462937034365424156640614314347808871825827411485857334041190805577060727662034224314441354126507363084454239078117070549437113687635675293608411651784734206348094144474387201339763048811650230871366469193112264936980488592542695311699232366633339312916413631781176878448765911373389510590324339338599058830216160079359580194973045573221352697504895011437466985358594372313626070513721950228641108635414069059593466955355001981414535585737541101188386844681935292691412924542102351559268012502765070591726828239914535705482849371064687966255236812673163684362703175686320498517382997692357496422969663243576310285544532082168443361525839123813366175651548731801574282951257681828010888043596476376658391903301673621581236092689463656653989525993979313445393971881306483898589448708803329648049010400102606185836316143367860169984534417239073265144831091807476640922777121687476526049038314751889322272674266483146068817020787706771655295004010037808757493227522677860964773035367297959658942108733108965895287857463861833628827989636875353845596286047514461401125608854318167250446978732147419684865365467447698254909071118338306452572422157485407359037582132245310224501996522470736086691110388392193156332991331463211378557911619027518686026221247081039918922932850042453963057897068583373823920947222061106251849413038150127573991048211050625827648914362990740933137152981211048412954270660675479914117576991735323866841392438402587963155689561484228172963130082254394370154910766392218079452754292487136469233817013566149843415087990208741666807865691868402702577087296426569261382888486246741022797354463271311331584990977506651091177964832355128267998333890954992181409840327971219684797623897069424677898737451445074870241759317908375681074229481981292104748564577074595737297327711093204025083984536274577612233373602415140765785333823145626020694696270477092038137125905381487019571916990795135883284830173848509426257071718973299068133164181805094853555226525047530527267480376692622941677955931201715525671341817288150247716715129370943130949517809013766517867984606519269723030484133866951146072430904249020147587242862089661629702421207692047875499232046021803500016594411544892784726534949430208298204575920619942249933057045369189084957817300009022979635653248959808437432917665552681088991281056587316858610456326659390753643934397519964110636291701270282263286004435135036935895136870970503604441584369378658442374721494145905926584655557427500358426358160745357217047783123222983943892551414364162778412412668996733104395551265674098202721850012347372410022450135073773594907209806940022770633542632911243317000150014070775220546783225645604221910296479276109716245756367749368571899523997167632747959185545227697324294963511671645564315416402750385427716361031380323350877211310429957800351048995917300892558455583122999154921605345256766202371433475461346224765699191802114852946865333123925661760968215351125565938272235296828916561770530561996787336779722007026941790072723174740645323898479908608876576053754749601107889652906429820030736018323996333593751033922402274781936009889275862350916086531358451942473855842814111013926642957218600406477316620386610907279465962830794878832372853738445441722460566301542320577357023046283563846535514577211553163302395774977892338047823491501630068787098087381746746997456592445435870463040444950946190114479544128050196025237969772584004949829284401221328089428202866469093502257803435982997042571237505793745564048913059056665121039516172712966793169661485187982898728381104410588051277095879908775222058931419972863371501246815790358096009875504681010018153542109692799059798725762538637115919366070368868480125948036995797714350992451029367975040035106424575530498381931752786603612944398653318982188538659671738151930467213896718845875025739244881397029480327235961473369281798642589348227736508761129005134645477155506056522231410902071362655714246512856354964225532898338437101233726973198289470149913896573803039481580977883855425613735425293659460870260034205229505891655586988370019168636027826798114040628788118149797592229021924402524071201202932234462967975630204963737609960429320755290999398761857121643897545056949945343753953277068029934566445260946961225465270541558036445245928752780537972176588093754623367914478921869533982536418899073066818596071692988021695320934465417014115675975922935866715486674097978448326752057920986422105500951302454029238037359993188568778284710001336161727875898805830721364102841898819685827869300327881159204520482311374518622874256840134831851847360510592433507091926929789385144929472043608791137813525271721515741680206662925216643814891934598009921009596952330467965070433696300680583256934259796446067220391659770248603355844328491951313276637579812136643176211792121341152534623042544756800921606992248181566367895481634232033322005163306057748686101996214192954475236043921844009028668145294700395126067654585846724162341308462061117759001266006181222322248700644920287613633867327457821253233971081898137984890849041964378279773701474784768214695849473150834683075989064686782079873631140635370375487423926315634231157300623757825451622627731682526972458663186750311844695681657672017246476994762056295355932931552436947552601476251642435722261727246983720771731829991575513150999766815404487212834438447199260377411297816731534969445601419142297352426488917668993677047859812490269867180931798687714654322185715040078866877334275084883284839254141415437374734462286348856784366495848030063087111847649771621465788105374757934958747489343627573158041030453836370215848979836504503424086214838408808460441040116664484736313661768274870632200440755221988998492214915380224978581352598981373209018611942810844433515086048368874189451950349119928786126567545613457567359915301762814587898511446372245627125888754034743748420937501612124215869064951764303280487986157937229502165099212618822427659361804948099928481999048016897358980367756201362196297723507242576020987596057914191284915744143261739160778373317073673026663926600071674639299845987159019294802542241007758318877227370149529752543020413406504811644493294441325128654663773971454936320739030575416460759879461489794546742392290844189069353817269547364758188677762370291244076465647686765787535803319018390300605634454986941739404293827811896050005859636402073572299284817430031786274810216838068314287077809299480128750284712459833868336862267956258913325849181582027774794481196544849493184659655714866481643124404705614417930736434625741642188302059063989916780809765691579238482324892302750537849553435249662125079551768915282533517637592966261467934084495201488930589669382029760457430981999028247876788834027612954875367499960818671078003905997967467011684444699784422591864288006487291177228417541016978940111957881563053698628870722958267247653539781488188188183296070713218238477567610201635564435181952197737968236588062793796981617241710369962187822746301515902353677527258552055630280045358157884658064171426967385793801275591806723325793710148216464812521495231299584429940554197192851015168406818602278205704073410614001995353265332912161144877725970738218932273554633942183849667541197361339039626062233401467184271316528798959289479609869786786752620672662026787941092580689449634327154841496591613138373273390895760149445106916200422506229531404964900663705699658672167649957462405248262370999430907573503564800062795022465153429301978493379723510673690991410306401582937306906626984849165784593067056645334532728249926518440514145861205144935158296599743927190605170928022172475698888788883189838799700228990038407013162083404992672435513647795991360957669827751837979886810123722973265808879056646368530394890653902389012547410745960794243180663155115171548091901257819155825824313993669232723701132121038580695535746607715374618884741150416524716481346343418221863563400247286589803614748568373906436964878154233162124299227185057749101598288153710289337829096782142068285196158686937267548985279944402275368545954961360161556490492247951164265954057388651556245089058368647465482403323679258622342219693239597944616086880120665255543951529923746773556414795775465692882244163941745839094717786923299023545741718445379601899795693428958443793863839946512100474247070030612508487030134370817587684025341131234872311667290913196910167567832966674452155437962276854899128928380099413861029401508187486326244006778068627316840155538634544299388792881231344093275976499461188085512303925719065378191719775091264340479131385162556554377627751697830275843048218087501437006486300916191129787140821992334142404476754627094783339967584850402962400178579895752085788302270084443021821474852674204620721131260421876797611393803568008764921690901888194871620195684602835683644208624983323467925767280571985246272858270572697255547911751535353548677457759231736752900498868702171248699664088755920230294994015266341936050392185452869226221811918001927361815852782068828914261511829901560741467994529583244019774423445521649353440779707747091174672414709887934658640803137206808566342046402517864695445437523405773813416529182787274811237332590378421456466999113745164854178172157332083764314156880538849010041097729862053801513931782351278967909989011563104042059284422588210152492044936067038883694875429941940106836296592746570461356066282335218467364486122922548784677233731973812253566926448234181846898131279432708785106102571772273172879740935649851510249723650464848774451300098444630302733653948716306789736424627305380426141912088930872231937710219548792437292282881323853285590655057006849902474042526993404586380884380928372038895330226669772595728191881792035883626296985199744217741176562828088696174134432552282861921612550406833497513872177991557842903075708226445134849331057278071457268357541293621765529659921498026160790640612003693022424054999307789521572583231636963635256351526140761316669211272076006253323681275641332220899308636677026639943856661588942205224648046759857052642055115192699925372033291577230352359141092140792975483919494287613993530779754740692560229525909587803447652674867230634825838475073122475973568452524175990182533428801333454220841035121453943111157301945208790912786578356182009730754303033466936714369859424308986796396934082971516755103411721543110728390742547649040229919422690281250012818594235317283646965183911225407509509100536253673463395571491198454838264044238776445622158881120237352076213721130515486043195852497333196158350178165106561927089491155923704930406607800442958147323490582946509613793162450223154105447289829020813986186037617840174061684405732424472698206808903962246013646120998370306993956888746626106542036752517453579188136910490807386512531250065409593109193599546952990465480610312809412012643893066497497834578477672975039664466044687115286440639776497231134755332092555009750866370852341747852276498675613717630316520941882055817620039202327409638444682550661246345558287834882663546722156955080901656337147288833090468211048892859325634130114071758228223769155867904433331007056245343255435906614751504505101803875698192493936641253092943697789651715553090930933172477326630290841450280265775659814375404812659886018973232700192434750884316328085557995137417935083124933837533040934353514702137718859638870542358183083398708979366852945261069177414124888715450005528543647962461028518777102952467543917051344832137570416993409670507259651954738804300327769897949991068090715340074012970265972560275857417827550969369241015697805752325278617370335586205406757378736424163539224077626172778807269450577971951893827665247926307389334473633087596382995609778867703018973772102387731724825916103978783572815432280093412056964679025097967148667745331120687361998959910408020155246779599287358075886832059473920039980860237469569523551740887267819868014630475018495979450828974145562184910159828984478919251401969255065653327193071019412476351913105923121118335352724620241086533768754798426572792351296969311237919953850439758394129058869926301442529387591393894934275409986276560438292309175861499105209209352027827545962893773806989997304995549449726841861962586737816088806205113784130779088301854646761252785375390289367730302606995708318974268781550026568650486117865942424036462088669118976097692930294776091208760589624038497811167077375314437927823070180460477394350068787748566918980040541738906356241037422533798771005639632770854491363105759597713521899292814848026774439229757211575979094023102889246932909194022464809008646049446960782830833371986911534905569272814138078175415417196462182449148903537142524130160666002075631569918432842010610490182508217314094189243937145323249524644217876508921864755321530883848124437512623776600489392553726645925412012959858147185032957002851575793286258429474543317981689065089796450632271748161648082609430499662275038344171340654387865028169649213562190650071196652392981615611003940350485011381162994645765077252808199772449767314923015707390211787935739227235502575073147503082543941988362097715236767981212335832381897718560587047306305579200630003259417134335799002376207663270578174241347579132030552894468687968493883813855127224675576983128151587983014152731390777523690672499341304486294828315818217546132762165923977792228256349879026146252837955093510988712520883157552100900498074801137618800743181645233435956087207140721838912198545524284694956675785260396078618975295815285329347318791010183732182407855620854299313430758963783395494370657675087057385051726646862943577850148789285195336486043995420075079301250021378551913670441816267545870673386258980975790957121362348403059374558937571815204083685998846070398794903846847934178606978887191193453640480885541529748267857661467211896834466556785183533152114228707143459014464175919155482159160992636626609093226496901155388680728370686056529170550987361854450829786061017533920131562465657004131874017505257720167089146876059526707937041357144106936588800391786098245185739952980304557858144325591127681188278583182044442058681482818086238478234421516906845448006975917163983190764057284351866969451427684334234610139321093018429119265471469846550443226659099101253814890200037427420951409623012970814354383951315533423972344273123336057136257443129968779138900218167408929838134673750855136104493553428329491876672193123349137245844556915158252401680624728950865261160952681434363944470843954912473027351972517245020749421431649779998746268377606874625161167171373983061367338618327105274824973909756803655102467865848813924902059156149606351351212024219010978292517548673229189860187479450212429231488881246129246949919189429513669281080111141835980377162338320114046880051818444783056415185781422200490730140670641228658774619732711776121007645628470377134932142355226236273473512281512383170592345506578497892021758500545811993953948581167695673125026105467233927799332771121260972553004338301035311492776012164614720350772699175244933737431095850634018662243508532637438350886660963574601348877302587698220979955436530470477821535422917417041696593747491661607230392036510023783812675628257819286308009605584826663341860103892324108082526423773558788880541053791102918843806795733721210697967587736320004063888597146659454022107369106521563284061928059670940901642200331797257318588326122984346671350656524470135824769772230701429878689487687373160275872769067429258533262425591531447197748855748469089376687752654292091107191298147204007406120254935244360743470178578689485679797087496247283293061857496586540872895738375049191465014586607829501149014189471486279319584516423537838730453525829869670341963965643814680100448405798920267853334184660270275448459431436044242187652625634337031761068274659969461404344985506298986382570935349662657908552749166968853692173341493459051551919132542353473986850422986201374399208693466004815292696015251285197892317335923058395084807574432346689164270335509206599680231239286964747866263259128081956316011586297556783765158566658577204051945240387660425156412260529978033434445704336980041894253663411426502527293712791501778898981348637877949400882789937987676044526424651279799949821921910724761697733091729540573482561780001907294723984390877389828627918196242141226442013108261017951522635646786511266491544046838635466044518768561570411092715888604126709339921777674028972294502482215905311702514220026467604137984438459417494220514027851167760434935658894057865469250020528750472565776158087624159358998313737057670395496378600297907521968998572591348785903800498067842433670525214194299350355385598817790858464992332060882783993265704387847276079457411992785140023249966046829794439585555540520582620175406185814859132996340661441657526064836675196493845058507779199979285287368860300911718031363102023613736640695041006153577355877733676207638911145434371129114744882987158189979968165418098292249017837807936452126232190946681886336003226283571168769400906374159200978785834244510898259629428766802821894787416727274101469984211361415419392489262153407116897382049393536372735050618525396383689797120133433344430541466324821871502649972779775765645425643223001818357736322391085319408941565048461587315025912375885650654563896212796619366927046727475165590188705671001777964363722806344666601242501689894803779551600852385151576974897393413313923382784462831673419484394796762763789028359814597386471482744962487930293792689323391338625548009543220545783187137017751068787468596760242380938494233129405241658721192700386192155972993166921525300448131809181580117983200619962972104614609137231415847597138968447923642628611237970384730332142785998484965694672043021794704844826323341598513244685050302353221407829562256907568327807659005350266506529047173489851263120227236219638004926362940141639102431688941028138524287143764510570763515937938538719429138012452342716313823176108091950205670669656213329586297229225892460563498519166533424855533418814733793446554527879788268374737181399985429820368600581828628145022503231431787181030209097103257083615164254348279797220280706932165027854551159013840304868841399424798860887024649078210436012231072799304802808233803818361226896459198297898265020727510756951966214428542875047859894844503326734751460160353927090291795451567629781081952511426461413875132717860564602127981700489378526931379507512157674805494808741158248604167130590687962759195835290618942989264001565744422896278784325751079162345455152438463765597714720713648568301982664486432825013567740664171620845050409032322208379397177794285616917999873159588315833381284618719840780770765103679058065106910543973216289538746993726633750570058334432582375017993140533451717008045782640382734509947752487859691530070237607780900543198255165534755792358845325773422386071911766847575773442791484745850260786075594687856911370675177603245127602942621368674443005399719392136811972037205894808983696445993163398153654470260095185980274082249955485198558877257108872405177009673041534163408244128510815757196692560064076224919449846143885506646241522196107904552634779514432608621042714232620753717531249155118086429676692451617212083667251005310742898029606905835375772749841795177043171339066299657968306538345758187368893789520470538143847238334559424710252822366018245225964079330651981190821342873135833563056520647877530639460346442772311122221827573736203188555410403942557161582080314703779919771011075774416476970042507988628347312594651906751483887702703932151100828641913563402906336792374422697888208996965374947365889038153078204858377884340610003994274366300787014409747203213565181079818159336446882252216333827845176682203902446847547438069143973296041111144983988870296665919567828406922292008170263620004622230189236435947755688487287326890491779006555161021254324674596953508144768224871402052561299545670716282032208991195225093801315028745174993844878645833905206188519211104564671544520578905929615770961936530325685759346171109666643610006902521070825351959305148740308672781494869322025767849721865875622588310810121986289346062298961979515176241983793370570370805603321010428816324922902432863025594313185364146133900798621197843523529349255178055676605578278423941825257000160283227291359473026895540561796336841836419682061562539705533592700022564630454560734800003910539870579403300712462349453473978555573577438857682627292118177625517277000008043285242508923121641630571715942546020930911523047618813733331959133616033779555739892029082741584903932720123256080007896380460036049302979884200983654753263890181447260877094805970336156923442126839223563995228278624009411399496982275358009977313058966183275542198953874100566575719711503882641570301099805692277242716202975078686198468235215725048665021468832488811914226539390493909730557238269523475345017455921835960091566960738835667017329742725554878777239324056469472773167946919739314172737534610535524699737145323010818751225435871249339525424146606752920250040455373223067092702261602091100518710182805670654752049035677130256653100200722956876809631213219985112120466398264414786438063694851033929165983815663146724022563025528887065357366309980197213687295220073889553293831518662401307058708713566716689055716807114818698248325536238168338905495814844479754770904950039329485221169852727844155960035316441965099850498012240804938987583500514040981299324840445901241057331350067558094750991317074390334739174712276623700924081268489680983982617261207161906680671707864365888064530166060322559773330013142739082570124918351301720439817813935731906150275391914456078471628227179048911422805681460617766306848220221504226277403874347782180458706900548977308150586568823663382898284761900470638528478098795006274480508752117098549475850463870803133385113400321573744300890144025746107456252202915139988693368978206669463399336734309357625704986629649312419249022950498995703021176785059725213732629128260138614027766456986133344819589721212984661288963652574994892337872117287743345957449230096361677457360953082382924369056432520704220865867354774387001341417969130451657369029390340393437296625979059177843281748616545950527816468446066399908107310020880889573323439672600295676856753524007519785857786534557277762329953384893112422040923322952986383290779214766097184476654043274681916325313854826469307167384984924091940262656843766312415681581561033432353721905717739047464586074595114033063936448327868052889024730749869159551983158627492635762170504137827793899759078234927627591013632583474424777960933777325038693542016003594074188246607017492621811472568200575129058850562122887992982817542490232784548719748279621746799487312968298376876887795101331122862475943756776130502250494436116478748026737892164537193276243604115522661918065079245638117805512338458371495903648390863620269315805534884379788025543026655267262057404578207141658785549671868394238012930130964080978660754820716732030638271575133641356908460863987408950119000313213892406878942074067217345974122676593893665145529683819311606039072004018426130721228658289532160067351440055256804959678549523540877447465931232051813342217495479137606905315719133324539443168165469816924529226604802552175323905940993834335135965154108586660497100394128279324100790546286625081931853182683005165123693834933795525268551667444176843172218044701289316825745219354344475589542083311227976233243136538228977168568488967274901236910677356530272065884344534193807377045641974577529304643333355368382426905134759139938901855293109109032296909452890606286624897749641764507430435059979187518139946078645703051145580485582628070308806322625673095465113129798852539568891817816248670771871976219185348206302646477158415541173085956160702967661292511207853427697272090517647514178164640264664877093658125731661335390126441111480692727058915158350099358202052024806820999030876605039247568380951821589810492867577410357929437165749237881534306972738914880025396408139892860749346989350311292067372329683797480201376531101571197135827131681457670999983485285080718938644662748743951738149997930493017277633372883240508638962389565980194185495487862136863662334480732974180571815989778868980718036373844978219842325996825002908247962647082181490330779908119161670909846779377926323398987903305171499286241527619798129769654544444663609636232525291832643297206532017173602458852547326616004918672081936765007586909202540702531000438890620061332344115648002488491216803047218034794028466911355066853088921691332503669709691588399380578651767813990431560917393581718570611681099210592735027120148906004064159680204422731330627936042655966188100272926779049557902757230339208372724447452457440938117019624409211050237317202692715796261431064709562381740138718589710762556323112570488817405649644508799436798037578537644916222263997817016961865818175212806961454769748545803629295076342714299575851280739734426617734364249020396249449972015292590573296633909900957831232693002148756570166041571856930754597705024333458796954506645381675187652373992579058566216689954706203131614348348782077177005515718000398688432254453337749528460961319848275287287762462446085678619214832419539140831246155532737693818291082112265154953262400644159231025502158407794974086959371439847617137315608520783807232179748450518545987408180036342223832737596272205321320863722102301719005695594915458073852488208692705656113842181106918588936154528498177607287866047146597736837547120450363954657361988543491462233264583347796692647692095457404058972399421264656194835605392580817594530245024661629344407330731014819309175614862335823647825851614222073595397991783980166603452408399136745221434005937014002008390529667115843915329712448822574645247427037032029515764003057890716551099522602817019098764809360852006769014003818919550098391302973567083058883675482288552185143062720699397640750092151947403242939846359485419989125345703031350186632565611627202873818852960790826605782499514821617778180148510575774757412763918203625439791404220139745825481557013375931664499089778242319036913986436841722260717927482576914722100453459389039589938680647208784484770342797981831843231169818851196003437198460800638960768293252477004161227954998131322865394884086824729992870149962110381336526692970367179858620776234969623083459927671846932772455430328111968504982220060188738870506971522547299572223277683609766501114392436180160854188296285932937970581909514110524323530279565244398690292831593164655856259434267940914307848509580386599388739819127020208248124102216769036310932955691804476901920681243218568942003050446443282355960172140322549524317758623691156767353421923176384508278330977933052739111212631515414167745205118634220530508211545754897314583991655122960817689239290108506104376160489007801100156244560378694066132386005876232891363152384872494495797790799384179473637052657441012641501715987740128120081469828535883967978094582251338209056090285688717659665599284697584026297632395530677380617192845617449679078651475528818077694358508187794537143495796167347106306240416322693157283515468780671381159342869667031811559088033536149152627246098533473435901564291595017433594794696290179066592370285028102265864257668892710554987810731752726275771544754528542741610240573182523457075436819558621807712449050545620350823458468484502482730920038253931577580900706873660806328545251231839484810759120172227794447148923401609817494445110676561306254262877052373839004532581706517028182242039488846114230601640882182182367707079855284765197620028582346249389651052048965568751330034712720401084323633550311172586260247446975636245594356812129619881995600445553943946438437413133325478825688304001684592746558226666264298975396407006775469543608889541281389694876564334109579104497048336491494932224021827602922816988479649047964124910323507559597363967423864492870662621846838299069578444138685825275882719641546413614052976846958456464429770277384242443965959372964389459051798239411497049665977661855697491074970513173215113959105092019441851405390870080220927288970854741104019122312798412509770175741927382676809664939815901244187702757673907999960355040450930579601253267155886016355502976428873224159352887136409310851436481824432593952614747731356854094360279451165863145163325428369857266361475718933972232708889771055762731866186944799393830218752266995549422497956407126547661192688055172493746864789387754474890037977681284771421205791588226686742274116342386687777030304139007322057146745055435488232722689255958844514633450802754049879616454349310984704796579029237463461055316974286704880440380731508956239833572792694497096236452529809983055141596057906473856451593179083307814975441402849734321895663669122739109008301755499548351560433257582515587206729992829596965066200168454880721763872224561668165631962915602136072385714214623669535326148936103459474323671318366153218102660540860373949321345731028252869668054846519531524155079389963714450591650849848695560241451045268216957148824033310228664498525049373341534442312366865478781793629351381146932238396153967318190795419460597314014362439589442840614984253963093949922957698721839603282615016487381733487895500540652602642675367243386705378040732500148838656031483660460876954679986214807842197615120618246595024848688602184235864475761232767489703674950562176669067429655733978014337071319808652653398951481756907206599632066741004243653003123289085330675503028614438109572823673892558095454924360279436354118642699441134541397071192492264639171799485241688737827814987421785141693028312227713569116180773811995898511427460393295701983979006691439727106255343319101968277674337550506548635392656120678747710269205646461618717851927748462574239927866860593773042221078369060876565772727027543738575745990973680720212632229736300501816646727828348479273711805059163045592639627540388202869596682872761485180819368305500706060778442889022491029577779182356146554023282913439217370389741590760210201487999850720937487128540665542226085834388210985208127630881604166077282494325044909842559193881192977774621231178210087818964196664521362278713113065510219659694431678725533869097626106376408352722582472287110859333469506304540005410814201122864014106881023767372744314775351843799369119164150696453463486095206061081669283105228566263584789343429568403323801284428312608131451534234982994324678440150079278365648606000598818575946942553045441316481687732229694445555582319123092235459837974727957402851825492058270720941296042008764186237875746002103845223301076513093525564249212756935798133895236251420657141410154032570018299508298485118495060856140003640989162570929928040473620191020203735716025027410225868146553006695318670602543039430532244863446484285176072184991089167970486046322076498129153684902091169237630290866823091087220023141435536039136985148701218699628834865291925680303032069272830066383262021132159502000418931510984748605222153533548065020330869098704191262502231268091748115769476238112201010180307494511318330286316612592400283372318731502558135294385334550420488565627843601408697967681102752728646806310008811671391639578445496270280317743645009957476184325990190092025728081480279875301048600258042176462186535598589600246430990193067480188300525481164004981763752813574226250307733424378307841571495016761250263869548162992000769459187569827340451986707708183901041976523216069448132192183176561388485508798104669886357402754664354963789530967854335615991919447930602800651097624479786291170369403887219103656683295559244015157607041206066213857642478896578871998084220895618054651930268777414743502125181244049490937394772077205880156130291100325617268900580943924179253481769489034730221072167516536549924877749133525028227373375537591351262966468253356324262331225183974827598668838359315424479840383101276441710805406933262700756812731874829581910463941786586474825954628052281188885117610813706573024574162671140625467275309565202764629837121505052686423620417446627603925759631713036375676922382276502365467542564053509727791712506717800819874886550503825952880540105889103227628348160693859492307556993872669899088457500854775054822237899308044885956844635153218064052352974372260379561161565122108256199192045410266027555927499513198290132667993206757377690192919684823761729174926569230611636001460768341208000562342080510541924385044944549411191193049342657813872344566702282223836785473447051567852515414265810857421822595238390881157324181525489055426060557097064493844943258992872142313461754378055268276813397946902329687577220744115512763529042838656430242896267405672507184143198085829976719388015681378495584738694910132229121344428236580581693968904519636893761677236134983380177357300006424343818399945633482953035825459197297775024894631151437675888408986009759409891083647153226315935668023934635676987065442144783152983831963990062022328394033865629920703171813571278854601671875428598201119107324480131155799604711229922069662091480346326119049390822923234790981088072588209831177682380434194588672134778473739143313254777419911728882178955466175071638552341565342490371591379754720952625213257916807068375608465289436934233651969638513447304450395702195857484161467030329001090812613240390618016028434612157637548088147587729654288567316346394228450949327602018045928390653103604918592884134933265040743813381154225830206050390707840441959280244868293496990358596862781817510110124610956253612255272097891871678663952993689300210694773474861607188131278076873051328184064245105891867200678644372323324577822327580296710368602202025945949373173295422655255285399227479722544648916489036285803606847273971623512405271719776578196306869108087509039071311667385164343195319107208850766590467684276182601764133276309313967017815610334892049337556476937487554241439575257519256371671617023980586794954588138850133385784045328457831659020495375738022508558018705136511749495592193820401474492666995011454634985715951292768977048882916665701606835323697263638274267829506332751969574578379456276412083067553284759432529218801836734575003436478035232942634554041701281221568368225751937984043344377732363035311831362197382410176734168414465420006610956233993173378606715046904209056738577101372516486455198567317903423822239223984346193300024503998496073351681525719918740885003393911280585747752944710904875227926384194483561625021328007462546134418740904865584977531589790164219115131276228831313580602190188322059478420380075946814599135660953608400625744080417337635339967398348485098249784269669478521916565730632129462242887849974216480638674299928838839647219651333648457962659793854383903535786874498326283280464502886991360215290887905313692577373100862420533540363949211691155831750925889879261478697141935735928311516156810946662986739488233596287462453505318533725015332457874870057866585494609230307670552311862698529019519686063090405211082174777298788444127612751500338954729830448735309876752546535807604090865661434643641591276208499792761927039829112075338178087576232854279203466350781252338135463875413340353713081559531594584327855336412201331108480162546381019738970303436396101334814542176948641411861061668023576918792681960965097718365498116627076292288956019145708137475505524272060891796192623507556407609689096603173890774888713998252347860632712095743634833629610446221612550389588165459725067023456004939351041475096604352199296286445059031159079991171922252859290354626051040656157430851230322813099369940942796073930386156728050897444210416673705361093114881119040879795818019418966836677801843951117963361630467600215661159718347751904834456086288302032741118160001688641462185098373759665108596008430332353504293655431907327560872497644266607135723693965149509888954253148263141624483988913928345084223763463570183638840299465064753049389288330126329194843638704510811992929768360786213087717590565572998106032885892536081291191295991058098145531786367663319710249025337836419894916203791889906130997342479636799383579437916187283369168885178310824915338296130807868472746150104747486279333840705098454937971544244792636167448733617030948187208175337891311190691308092903521695432708294711193377318317353970789295845660182099997617053243613497937343667272282277910217240297406743118661519804438422073439499786664176278601854174093395610112301334182835853553384989057011760552049844588759188942687052920173273434777069360367476058271142719623285956091211486969862046872665970235579313757462566450435267075228045479754786012781826220632420573921445257319601936754632739093083910291638316557738581268012276411870827354264757352255887236663799935963796778755342568117662345091615937480929422236593849878459860783312896683438425481132613078211755188308346240606917398845866635225439977676010325870250685370916608027092207849620888118646914329483042721674801205066903085322143921463044997340631653165574432568952306063171841590307821319424311001779899058373837748918441083191920131441945496659100938798152313293591865067268545986048409272589816348232726177095059233967017805892893793421743908856922433141548415128698740752808213616085148577768704530679009292623076088626013402389685738402664582655397509879523448825832635406829122348478068700334312247252724149095235175354674047886801160049531618965674936853757892630328243992681606142585540161946823632302925873554534735665533377060333623698815899183466866601198537933748287567248238538096744899642619256828769728549387137100800768634138072990143887438630694501510966470473047159167005346760918865204979751068969042129172284317989214176869657534879398744081817454395490871357616750107053888708533579026643425528952830558227144901823194491858936116566100373379076107059166398204165673957335386476890655707501679886350506713907979109050077410464780385023661232973162221613143268802932754619107886343086855183945008507924281637143662988316358945170784740316353825752234031065615356114485106429158685260484954841128603976612059795861355956708883985779996399983815104212956955721160186450713509517329822628887375643186239551738346137032287157577474396208448507627318653292130177507548632812352831638097327444595295982863371576887098115614613615893220806611429497251306475410218646185609823586021229827204202126335339308184151161850174997061537271740840644835527729907565766261418663326090842237219700892743249931308315026860935330575380398278544068181660568589171907423648163917920479391540142383358443926670424153213893299832189390755733007995795644693786756883623052051424707776156234697786527901298755188892424147867098197812150749990485093554900114578721290119263427881497699528810640415862368983922653981852602705692059128892776232492441506422776718634535628179346949900373497503307980353600180384102193084142607585095558674267230024461291924408842493365508898270869994782874483015287250714342919566731208065504094892712918341811804363215877495633670133411259671525761724887761876561534207289273323686784630798242478754357162981340184855740138405487933807995262348429584837832305016321868658855525896382233801919822979147815788009255141307924039838314956596868055996251031730360369315721166773251360789962257399643981245551170426996573377055971675849791319150261922615828097390061746568960171747375968323958857698491238328472615021398536172177275098435700433306734058776217693192825798065022936188125915740132956478529148324200881903796277495197450783670022626357601690996565142215376166317954566233977723808367069560014420528477895542233352253386718676119867920586063818501055082956085151303480801896362476657134857371326189324215819459035390433977509129068593059622949119052584835582076402981491927680497299266648626378441844721688973450599897290703929553106325541991623913185474115449199646197202438021662514168376236899972106037994844456551534569460833580989151409923674190079564380650029667916288863517474379740600971673760106298435993027272739570336723454319880509985658384434169596380567617339593200154252086937245414855368516279471072201018419948351860121108840040292355633052562521778441859393480355870205784000932666592025627038908750969723761731485206098965305094110431464209124060539312824583745481366637417602725037536579229921461116539618619821573883159790961840849801798203877860204069168080005095746087006631468595879528291731530908508060120412731565798149343103829472501921633098227254683535245489565358960351585771160922254744613365184429559435220708066397490402688490428454490221965023591282368586523723847160847879190673464069906561899336455637887251223756943831405694863200562747041593870300761270749508996573605112830889315861871916074057802586067864001606176634661575880114388744659923706165002284245815788821978767003328693235838289265519722291852544417715675663641438786427296316634525474059944913521375716468272659376422236696718823894727528478460680025399666295822942949673387304004791768521590994696777779915609124370273985979933088484244907179724296295818100716493238880669490124133495501233737862165236576823994865286864908245682406871041637600706694028657768373410072032563323763712844278772933577081754720907519299638314275334723047274253708917254763795143568633888663153853478056821670444755496378958408457977332449901052098532766719681539429627720183547441480740602606084776811903446502063952888328629137406386260936544227725920970963198957249609433451501357544915655308335904213967708333302998694438702452825639802973107981798182466283690689870458106258612000414764444865426359928644039482397291603901145900312140176095636399642293395923723356039960747829115789183742799891326578503643174562785549257428264301058039289445326215734109336375372890525256254712252074033101366328073420509600783568274320441443348625095193044094976653689290688749093762282564941507435573692830450112140086589608964676386742702026930449966893918968161996401517450862496964581643572821914142538126980596650216833275258942799086660494293322776375984586428516107243963517298316749984506931242189635977704969798360540869585212035536244606674018275199713938008417100974877267982097102270475258326360838796017506041290937130517008756205656760983031087927103286470707777485304611538316431977564064254506074402947185920941677230261061760180067604660896755734546608519088783287354646533653929423658221501835548875209240796888197349122602391628799457015950324129269608766811257624374880744864646298706932586614417232819058689836085716148536835827421494572504638706490734866966694243850654638127152382035342017277084006408674382525758218782016628849405829710279973378579366427866667548664038978537073623905933832798741069803269251326693063473784864539573313924462243978910846173752306565017709929148690274196353509324641501263142708870747451292834900042694738259126964710184804605906574988685937303890370562683934493932873638777483644366295057341680812361208005831197515478834256752274781417300456543550734005215516669044569441554651102696922032265768138096079907002472407330809286023659207443875346381594006922974628858593779407390375141341482723352236861435157094005123723389865766114909544161639157661379326621995237845878500863630637165054022697245913643295369780515692598729239496346961189503518429003216062394450140865040710727275336559789296832620872031209380732411981157087705760935577439542074454993122518628829647372083220942894843598808643438518902669853738538411333782485924975608563948271193617824353354242350751967669201285132183373228407503542126537090015634987146633262301798225804822691332803453717275911844037105901647428461664007305115214476899067526017782884815944816633001900797541014417039604337338364557258925447834336459683589587751892463001872692828987756097919107818764703050583177424644355168933674344446161095031034052146895410100370380210180038850159161705819709104802474524499812793492779091991317556515974477149225021462357702682067438691346476161460162840335274480348174876358942423448635120395387578535636239434647090635780568339272095801746443528231654342486158939991196394301664358108148935630284622062293714312295247070950621809171941212480880516697297585749216069975478953335515678697828181705199318911083393530521819498038379262564152606355797312689624769665980522175063241513428261139112969422093066027980345196222057720519064892226649541029364112401719233119460435787237422867127523371378360713646413968285401547766650381650117114278119409190917820894987424814442181640366297131291239085702848264574214906117654251580910317967485793618227293007138855498946000363416054113348863876132123543568683456613773466103597162556696409084365216289512969049572304546552853431133058030383971442262297948986841441470041258265304825884306609415744973305207698212563075427650470084992540690518583667777883264723393302311655582649841452386817641765548764670214272896688471147864502943553918554843688041306099241151962737817615128795592900694813304853528085875385414014077075368247486045960020600706483014161090290931197829936023458719972384921228134375598474113876150356696945698740639650730691948421362125005231002085482208478015484789489123520578474667551201695809012174159873099229662964770780626692543595736578551878140890442415207851168192354582210947027501609461052078945376357279784478413992750828655249289642480328011542551990657796952017293656275304884172820116191737786372415398990041838415733143493394359597274044057582821864819400756841928447157350099001643830526217843108981401845013260751257113053958162936479810278444958587353568071572827666976320415632461169548977307960964684567179037049732250478147868027792698337906588206619258309595642130688415056489288339490476425400872701660844471449673474857898940107704419313370299791945281517647695216308923711764480279516675435470150824177249611758032484602841325723822004134410026516417095398363338110920447066124540851857480154401601775758037584012613297407212679892372823317353517260442375069856572321183365096973836560238710726758522743890796735472497347096090288623153538009345285171441546998697659302677585716545017420666684138485241587571371378433553326822369780002820219309485962893951170977273872989583457840990135990737188807027830257136945064323743107110083473836070618739509751321538269754756887267405084489709679835131289465031029413389714155749449313138520725552445611500263283720902648206543806879112618199894397927253475119676432947948662185219705412438035347544593836529473071057931395416333191158516852705916574126009132168252049963636600716036084520275323103595696949233810212952017223454634350582413777398805978758140178317815430374222710712742806807195553601498366941964510544076616165407066275636265517127314702384114317625609099927518476437245021541908604496613788971731397853582607341001716711679150116498331167309381305341806212890175904595195028351115482461531697933754292845485215228890178705287834104444477199819551811304886908369016237664483800990037804661988459508561238515332881690431063419018622285188685280213157040967731473453040369650571967319695960135113342642459126077144527600584194512739150624048419737567169052984318279354133682937898600975509664142195082147931889596796561813822149040847443021241696780885752259989161979270490141441390315868700935880802263093661501220722852584014121012521086666222737515527018228043635387466112381841937261343568638879461470330414100618543256968155114898602725675190449844638418746291555970767101146546998034634143245693475394284941663475035727356299841521494621671934909193320207634763276222895010069959833934031956909481209623190766369171308923681844421002896629641930844407741638119727970697418598315457299946898667970348217852402452346064555255918671332907654096950016815477478125395960871846031365331486649705611656719823042298621703469187344115519189405837559531474487189140718785046098476742390519112716837027845374554349194729286589639540958709091364017548350020736735138338430771722804540700489064631752692740994769426482862221834462182803132275108985116078808784938333745419707219244639756064879279644870780070703175044907328522695875233299739349694370517595610565615908406817420325091272622909004662555535212277657504021701520879495440602005444065822239297695143005613655752968166163469887888442628025632141827767610315522249935103625125139174189280391125495409432259962260117727126634973292751060463746016076598373763430805907589016430688658145194657953217049295153264340821813476778903254655130984731046961313797293115156612020484065799626261624634688412261516533649351162701297526249348340458398686069411837733276365610805244114846132647458509000215573949751797905869392338995504767135732840498956652346871742043668842061422199989121392150554724880828490708619519049714879826070974487894063843390238061915900633902716936647090868178728166129242025905562967190966274649362036533737509743575846423620843567384644932899356821634635469710419584838076251628745059152717480643087212750952511395605125673146686193931946795329924662262891263645511872850502407083228157256925829328207772258300777055989702435425319508912842090020276805796442150371969835815055962109921287706438070016314956404984575704210467826335897693831002067794577293903699986834225500868039011645243875241064564811798113837231483019659387379510929656959756417253817534157569376725311909529260796260918638672395716708500464197645910848797129972064117798572482274912293626230051464012566272536249455716836322931454533497740192809342075535701332715682541358360147372773283269179862325737133411792251688099918622713602875179328627941096648152351736261007976677164703906716746705763571865730492589046430337636170272676335404950636815211562558837712230053220521978764330421784000948784105607045937789444175980803412637630032593425622467727452387454344392321876126556836098403843172593135920187324700749474564923011468904344738710109451250850963490173032420213889584357311227794487557470117973151784999970852833064252322395536390703704209236854209114330598189142005360024170166497904713676623645056261062643727616908403242525024941357143589074435106428560436460197948554589045740824050100627660572795243320435390377617639371045654614373162867586223034465944211771694604514922136391003525713438703812605470770089929037415528018939220130066356409644601323274770004230949400982539527604233749244430212952462546596650643612055267589007640422636437528969352581621507443221427506849629757738966122483088639430992621430908141061880700384604383772561525514830305067265335806414563582702641001075922009058915161080319483399443954381839193276434099440892640838658133470692681139221636532682928789091505896736070727365187458354321701358987078277839247632931916861437426527658524595344221146726160206833374449866685667732610912030531454717238904494123055918199845696913460560159868103028088433366391840217231117264479162017096724460582893267349334087827598196328351697408907854572627545515681454423517059208234641791683726531450303610665913050883384231948257841992120231495547036840292756405135600720740256552107836733918963373778004656058690684080636278993291931142595066693647082352040018301946736308045818973871451724593988076662934686321997295262544194263687441610747891869678935246105446365276144770818449477662230725857096300590394762191369704297249510672406821888198208384277752606471383694886339850242634681237322641660943119652156584867108676529803699875259947932016491256912642186738058942551381977264266654153119665960449097906868684806757174567254121331982520684813272083929656759073255760726588760500817224097881463121119650716972085542992488185986920919056550952463940165385079846876289275868984629764640717685462538102153391392903729885636435639698727235248312897374569296043999364774677991325033966936995389771787558345793821516284755933060798070715964318873863780625492216261261548515629939060540848162032348500110586170926369403154566651355111274167165836644968855857997077752340686503096773755876200168535225792894537281007913606855683553010151404941182290822809104274026620860109960570597445297990264691275239626172309704696048525608925184168364035479658638393667394646359406960943181684497469806225979240563804433749936033179825774635661375704985009407146036819700177287026659291103441855862297391094209268015824081035784773513471614481174598925860048145775623582974069571144892293976960977941511012764500714745996002744093440936134229429889151895226585839220636312497730888520731435503516245249813797553745601025061622935920798629039548505932350079046820682452392920925762327755997973781695882680879063182698644516427451038558944174661821504960869465876839157151812254583859192943747865921254636190960434271550297730757504930423338863880207997681967100119369830693263654525645700582600903416528707464893947036528242120641308495949120504788340743816899581809264210716752658757906638681830592140617070017078098115917645136537181891772572953862953635497377007555888910202316380791681184161928566558074190711803191647123348274427148809388913821723585066116226268342654628804541359578083345497151105998393371301077459647494841601822280195140000555585602255677419644116025757161911227313659633733015743506715187431314358554296810085377643229476194220397407473295749441096752521473188887570027157777273476819011974347902284181553976943674496292459512721775832009680429014093287823281445065771371041419576986234736145782668606143290704871713663009408434905347805287262600639492323213806515624315368951214506571714683210427499009351007660553006160244834720710581771794010464131721918379350071584567040890921286841852138725907179485422792561396819723762198153220744279265797336258572560595243414903180930580970874548384003979367259958137596828793625511976821625952135484873331813419379131560663617229729452756794263830092272133309911715521131858072508036880435920366855987532960204094646628542860997227053495914088667077114774566956368750679108808682964839676447556463428358506143973270369440238467472101011686037220264971805086281353270120597734813881319527021871207959984485068753073439780257334439571881623688854381238374632033264034295245330633345707111338057719729520018379340225389496748387066065016000084316360333551247866864540202399634206370394959832180301402960992625548569769739743498107745074640635231912807451881910612001319674728408873918729009884930339691484939912374922661789455733121852432166644866301762713284315834034198252712469835888548493381993127312047187329109960790331185656128933004389238362771548422028554396211357663206932781459280910027755426346284330243779521755385009085058677488584650513103811230439079635273547109029645765319683965633683239081613388163786862173020251211417565322838505170721536561275632173054841110549572558832791423267458215029467296816332944772222684785470005435583125434060745905105165139530612702837283772293591537816559461744030102674404403677560468289404238101590520897110125656353772995621628985441068483719638677667069531356704680091385307644987475830052362055946939159052086911850956619485879103319145952470925613220620075609754622474318775471270782136057647698234865078950361859637548822528823041547882257061769280020353121166508961150415747158370865036770112846399382338470192718024460704298023948185964982787222405785485776886261992888366155584476202161228634347349124118442070801240920642230171360224993397064782027550294142953336064352861221187024851072550266893606236392924394921351368262385340363433926612398224776816939188569769976267409967862552397093982369800316753261349085228172594106455451296973984790893371549711890288514086830427420573741711935387859187183658490435373732400436298329284189622779509349323230157716891905988333593901985158107296729120397597173980796483678539629238790897309796082087513195662371758192839917015696488444570952752833891082360408293430667276505164119763347055088522150749622289098111070573483857450684391339543038024642451415924647831570058815467984948481635982994836103127236169986367911128146087612950049145543475738203541795882241859537961904427657317716640806118959926037972166894470178064315765610592250553124220806788272873822730856993181030395665852768485582725923035912004146037989135133327721322178005566589047450360922602258452155667780869507649929592116395852762859109946038671776138817312557347838489321235588929917014720488728736990497532521722010710477871039498781902229290153876293287942437337712970504560454204531328222942875597862061834300877881557576273872708369732268336278367298705289848396725208977873018465916083922618950393262956582053171466734086091729199493821181965241550589358243740324631697336450961566170705043557864920766981069896168770302235786332296098054883281106869330360347628608835513721307473000637146781908193645429255664197695777925597446911289773350401446252177490541787939790861185055007996333456592894302554262601098191875659916842063452108463961451061724098372455944213156526135017434458511056626847836224568246720734493322165867896893022006167662798053649984378302378710246610415201054756036625230780154616679527566204169758691554522654653894939585698088219543437247909408578600881735199940746068432031287591524532046320694377333020303893561958518061946478044635042250516040236084842566797726850483024640012309643591768764720366318219583672523327676910493582562495266435979936944975660269393489968121788381058484522889079808451808812738983983046115009372494395937331628618256034451561707765606481989571826841763462169169700305274121229078282351156302246697545080637910642629510565590272886692647187118490731511643001594656395775424137103201097197070644882375051206906127673941942026315035777319859384554156222235325089416051391228154618677438049555310280194277034043176709974646963196767584640259974242900257114225409661962013817735190966555353990476794115847927434114191868941998568764143257976642646363520999517326291636230198945640062253855981677881631364025561033020835878744802406665515995099241892483687160014844202971173109139555113569066545378548475365462797963015673974651973123589058824786158655712000558253445767924738467252494645299437112836903146138434203898208915191471605653921318438988780497560653155475353660995959367676878333651839234345506619282775177636754421830725855681671721449436901808618458803560216913745645840639498635813518806672355541900492668922243841046525328547874361528362479551739220805992429022467026497475171754000985472138714661788952850365907269412177370035808695051616037456213731880804106860120607134675932215477120536389105428618526300785198715631753620689242878043538440259982774551740900754443952026702120673711230187192102247348536729990335394419581147466986128015115337675016396103849882001341407949963207943795272979271176101133560825389972578900646838846610252448423541837905758003018719167766276737923122212239252491877623694589554315142038750425363311855482030039496096640410215629709579012242393169235091186721181852083514576998147343637231374576656500471040128742255064938487638312486219039491513130449885016711988442800599265107237870466968337495557612247531381142894547132789990299648715405924034612650644239348566722357953439843500201172886680815406637544514484191610250578017394847578965078942891309298073574772808698586288360427304297216094302740553489552699565882717386793770934874716261707054478841223131847636002517275077731332388535636102850787496211074069941177872738863542455352365362356250300874154146522643121780973891635484510737982576343874638008223838674378988237520868146320288848170066192445644883815055167661625797514478133399762642220683818326617623051094888734220106254531024270361029188151691365404340456795289802018664975465206153404494760891948315525882391716764536751068537948384473238234551070062783407884583198632711605039878507309241908404014995943930552069462231336865210234200371431503212264891810976860001095528052973599923224985016943774544567382161629575111517085992820684752013006023236307262074489126048829042256750307954315373920345180665344455813923888185595018061426084781166524031326138644448346556035203250741156589863388691376691720456377930131520108550865934707239736006262226807291060003635071460398005155354108155533343173034932069487514905920510650998178256262585982798387437027483948584190501094457219837437873939468187754327421673472126984718996903060406139157564234502597040622501670784786943835997463400858496774547588727262971199259412100819636363449710538036630269618031676993769384327168007582898018707341083951472487593775374832372734254081015461493495484747825719091701936581926207890902005643442595563824765828320622852141030940487035058158995842780141619288346896927428582520175578094814743073300961047150142256100989476312063891234507999635365699801742264810108995540784831080695318936595235295986191012766801448405871427807643481843321617500753847516569775806635174045107608825829424828354943890784329597671912104830079318002877491072347316874717519771381719618675113782974833185430621441870759932792747787942270516744788993673085568102817695158832283873194880637998042601009118188344813585599406824736246154369873950136632913147075707214286392268972054174452916481044219015676119945954547981211536774824988029430896532447939243519873326111574521107632686923152955494287221251460894330137287067092412573834772617888165576232426807296095123170114292684247080454594844651551943368933828139375943546646761391500304027920395888040053971346397628921530383832249699907987577596041757925805603318922864906314290407213368357034877470292145088343846427027790309632567389627027513536536741891992649692494211627250023664620573273319232414101312001314226821362238367938017861529316402415326115102195622291522988010806350167698961963680730085556934721338000682876739595566102208376239074715811598497749453465664535141190418160392459247785211050286636450573267465611110079103114837630724205540487820191318556854155635269313267542623940345099440486886656595355268062327810712451800412933012952203303684272663706024754750499948076761264325904573707499456015816162156860984663457834436115872086005996621288357813882269754522117476840462667937691170569724429488545749624713313263600707477356076169888562829546500001539500986956121467358980921521510162049230146785878936324140349991766188545034599123913418295559872531766154660319004414919182542012943356574269590096106785339664044546494283561077639690463912068573597307076848360432481204704189759432302636184520953509818739227299582070091978139415189610543921306296995385808134033898910107918797233002236258992510959831369210352852327589136408788659110514531480066391084521700069530722211273518820308750898114779498728415862097221971886642327393354464050651308934231606678446787275627223018855372349432484543667072648185054808159556002967552112651758861938578871073635970602257868364742242724318992585554500361698804865219492136665060765667947239431869676133444758912451045916007463382872621985342310790036506758639180329315314596199995164875163110822679263060211544757970666757965713711254508314415036685446164427469739896320353268758433639439080969382846350482813901310965394624755813535505342806328981794200168048216145723352967690772650168684547033720928665936268169046723102341378720717337548669310067372456025551882411568745499014040538986413784964604916498015880124563207402260771178202014119282477629418092728832880055750145036302358552225063682655109888830719782433525551311909576063835062487827625863636005255259208982224398070496103189291852533293493813949550812491404710980635912299901994538192523887611102485654939228997431456469007801734610248001855349387570675181326522629552919153599551975239705427090528446178927106939202465426849564881602497487475874872091552662353810825236582732093840795597403519876526009301124902061709975870863349350494664660857093829257073056853680463255488503476173476668988964306812417156027266874600707644502753505953458595974124025263748331404470411699948184330439566661172879044618189099886457617466194215222188946371424106258592385309366756533197062748700968246266410579778184373321553921608097042077161065903518091189873885380028130575441159970890813343051330564435337106385423088522320900679347290848663846686739274669655898622148315989269056537638305811271118986912017567521126806570362091937966436975029322464434460992021104933734139076124964958832108897952613181328958307403927864964829580292926212497864278977295763241661350186650512118229320035518243770280989519514702613203133799500504789235386982460316909934123925049859108108467244180788547203920030054431773486080563336523572009887698467720448335570328396098603858503805780557186882449400190604643721677089251629284289517780891467738821921910786968925038752229619311800463529762293245630008543122196910572486028780199016827663159611838120338346145989936721624518464124205677106005262293010729126124997420044666427086920987505345770629431066943642936235287393189535406102955894094546924691750491345050946826819629279298231304186420663701805251061876427268446256241765348688551665675711660705573487463451281680905491782584955503929616722076630870922943458356086985777821560844857551367665932137554629377392919450602916800386125385565731548212898964407907706994638167660900412845688669898944646855234586748392051772043647851666931266465782949979549522884087102964432759592172187555059383745166735959075977016611487644518110216122698620879633371962194854087788510498559642973204144741432756503427578577029448655731716635144436682760784528064214291533657806376354070776227886478616544774309484192528436235692335388572654781075630042477618626706468253343565022103642806956040741785231551178979038418592270215010797809047579732094993225469183873703890177795411617421740030165615678417273495129153702461637778563874957535385592273756291395929214057470967834463278966947278856296090035437131677393677692114826958391298250205433080332071348177089263993196824117884819693550380777486645731890206114706030233376538514489332318335916500101355629792671525762224798923060066859610320107963673974510210326926421982395817355644203414445991363112808327029382883520724498306998932205155768697188678736513146106972296560599622529922149067359790922827743414641602190476230461181800145092588255340808366996569961558642563125085341734293295079860580179245026577757895393298877985744475076664717666656584526202087503889541132908130944480195386854848724936027134135764676890524480608055542791097156396096965690014000237305178541392198948410811722042445853271466510396708731139203787614454895478677391261170257375538009108464978908574036332421859811645104183928931675162852264021484631182710968412492294191627286782373156311133236911944559550698248804328020082330513110871272898882376544791325609326926864199065161115784123414500571084981659813273064156168110100203370775340429334408959338447161660905858150692335073137535286390981994284810032022535175762353504125276298027173844460024406470075781309382326751326144883404763839335628591848959734273226933970010101634215310399068814279476529535658088600472664372760402832829770822993611650965417053877008389859781214419607661285413045299813673367495161079182602939915340568305772533078457570197451696859856014978007615512448346493370758265686874364678944953837372421666009538139089810108655548747757431868355537736584977946942662487709507215946525135829697035875313064355394172466677616463200824761138318494293966970284647762775765246827560190181723800852910067750977260099898761009340867709033200074058208363347227784013418272288947492240143122683391134546413509309371859329235834830047804990588305487887213596683625098388317409143209098611481454481456556859296666523706441645043644334949767832459102124559492585899787908060032794042524719760472174272774650297713812160421265079033013208876057239791614059509498951283474722289074143389874274462362242253169022348010723679612084791684874260030968491539603651419943531730525950191978097839861155840276492320217598380257782798707803312244084262916936450629477663395129581958264440830153075086192262081570573188254411947180096825174336040093774805602672858293734377197220791703899471216501459397055946545768698211573314268161859145343038587021059765276409177382584383740668598312113291279767733023804089062331561367313234436492431304064536987903343591594776458384228186239929034245101357612718208428800180732608135571517994155752950447635043533368534720536334755424102217531764262586506537354501123360588588521067138329129409233111243777614311086849290553297346272481521850103448529752477482972787947777848413039963032171649538862919513017518976325402156130066621032635888622675734100094874383164728345234803722840032212255780806022242383862516875156141061409133335039729937694882593286536746973828273241878640225002414494543824441502145229713929044486125714080740867185414274884752253012886631564569177262661691882401478253392834981056368426764452258217623741252158044213696013692974356418285672966228706481817474097557456235321823449013263870666597521135886709884827064536411160727967287182652775460713914036297213701186162156843568329384514267606750365656817592017978002764957102500301205072279459017089927831456034270705061715370357744352508178320677950700265207789561820982723537201550747429790956766039986941997387377773924341219779916135900685145601259802530534350661091510481185551609463253123522555631802624797260887334862299650732800492421004390296408254000387243288506802790412884721860510324781297671511575997469026794325531637984434457627293082935508842450642254677043995726874008809412086043886504092165413312843663654349701010626409950666296622068669779144670338170192606743020414134845750437702931804912411767477474573392432120504703749267392346474709825773300327811663786086251740802327193160587949903783813723434872193883632066000938223995997561863405773873182145880459055102100490933483148404811374295137020198259771191577946606687046031123210197976353374035749953185358322594172965437109940406130106464474118760886927652218944613750087758870201839136703838847806026451157444541121529762424962846713078008603526448668899067706924601408908191859419007771559956241407934731168905269675129508452466923819098293728130185635087991215703450602202279292471129379267215535510927110393069952079772133046213892996420774408763493539210662857085319085421297500212348864041493780191469127663807649126747555977797968475884367440017875576037521314891547810858203517329220259422201809841351167644483304926682430332903317099611689529902610237773769109428190045226190760977135240258735839023940250211653350925566288491448205971842013283954321391405630681482919118789789007554546032953676432635476583915318234102960660832123297136682179413578935144143379364286687971645190497553432339906423835751814019216358298860319903056142545562845956223164625883930660042766462771147316550256655514827443640839349212653180922824451330702821739081302928963987229130257165676981227342580384148168842273018330034855647192818885086056169296969946854203958211725804468873603393060133123401476633458935147434632833961876142564392194400397251841014216626025748507118040583826206447164308537608212984739644389414536569334827577855382856225917386342837142912928938401241325969857400172609618778332187296543630590085258927569220863729146005291027393192008095670322616466487350878290052159884305758791778259799949295265182845494592949070955355930894462008074247102937522212476163637306886769444626334948666761213699952624537116457582315602399949496690020161963387068531943386250516355837299173293695206034776569871252041757262916728906849050373614285595184129514269896885341569019547757170013546916288452551593751955762619485727708008613875639950642177078593330072961934366766296147195925268907138052817030228317323540267035811470003543384817485240175299484461294362348151283184659379903085719287917140215516219401280764196774152460479302279151265862853379890597137760519051200716692273791152889619106825710844010446571770406508858682123945839425860373435709622366588229374783807034721497454121912043129406712948115528448267481776683905910304770802096998402022348859362651507421623720791514165665169318244338078774648667600405428516089598188856572820059984133728325640195305558531025035076305893055415283910621316465118879572289761891410189225527116562783984910845654115134832194251859273897888815388248431478158260564220583132651173362762469901611349020339475363539585000324614021061197865241117042633687053132337566958259055212841934611085433845552277090286694576154437704734236920397855294193440056499124351394106434329339046583734773251097430216730614546899298225329619367477869031128252410029582716798023439647328425832100138940553466778334109057360003339071548868784810375258981106173731816757470563182983122432027933554414844028994394771495475306083014877649980855906017078010978279027021579084209863325146089910978980576631111879898395497925283004529407148119086218715266500984659050241154938043933091997883666129520621429577084139982865703592984417089801647402543646519071103765569471270051371957635910522003398871807933138261970884920371209981641982521884176925182418897534004232239049617768140672971506032818485228090619897311049625186653856078597782560844187645585056565412034331357844991946342736796166684278746950394658166827969745409843941593747861686672442472418065325017357696797866474565445084811873040018348458597266235267457380798698612592313100215959708929737369771765297521198168510611096060036118466015776971541836883986472467689133576448237304206050583718525080171816287537088036521791075491208455056954069826432558037304046682053987943484319172697800839950362735301416154792881545330334502715349221856341618710597134452284741142087217318380362055277368045830598227895808964204275593753684253357066749737063890999918904883926410114818087460421863308129729846370305528694333896969802393138355629351765699393859674062664495174004995462314471071714386075939977061027435698842160226783628161478427896001764790773293418208276967041546164919568718013105851067485726817780146183647590511739291726816300151778455363372915395168015875633261523979053153042035543668429627139236194073823677541074291872096094091790517807536990656593486915486142214978151990869321305339796984650682834714694210801311711445283239512281360184178027447952423628780598744259704018008794468530614617671786919555082621603765965134771669277448059295902902739168839561948709503808696435760643577581771840996538687550432712915864479527064988913533812156850725326665115341619759263829586695004171948318694175593090358071191850469055229936797305982764488556561802314543089037658225633356871835700961844759173592329977561614582613895488620674433814218649048736093363675088792791514900670511306940858842781313086069174213479099245067648023150471491017804551679010808210430683554158798216865536581797684398969999049753919837669334499100891206584857051647993077980248874526161131023241619838011443613669117320292331959957403897108546863813389468744327212692440866634481910658013567350130279931010000563939067508749653203657276944558871893243457672105798475454605624162217286000243145800763979059534166067219610686293200900826065050235631334062631829450235554577981710678489162330249140892154949945686039448787800493497533141087599366050299218972704366257273095996906763190827654188012506135604318377234726212033369670519539093848046809527231583355984553559123080427123977119832704358914095733879426768688031758953765365962842195668416493518636904257961494514312373899105998346317301022372236448203471739200345447969623634254088832185158621859589306596078432292258817055330700324039038011158086124620239722617151555426532617260314857605800270352101114031087128789367637809518705481695067940377576430287271944619074353397055628064490395249758135218209148789981416744119333770304203223373754933362226882981030872423534484625656047281994028390221940576038689516994543330811325049202420575430868233340866988531366011541473813961024145155609329643265612210963926020558626956999669424311092377036502571549809108915233415529654031717274917536835351634065317449018374335697924396691933840608289151768366275940603576296865478240962960778568333419869237040550446372316264721521887612261423469172694343644333170322514170349264417083631930027089970141307013220414468610769963477789376798439311829488529100873107434050200559049244460366265135151947673486564771867573731253007348884545512929657398107195210919309009373687946979845552226451476680921393013555978071933628456920565054310799313674622769490464790348977541182644863669207184224055554463384205944568863897786957365155381718060005568583922946609963882998103831674652676818675555756649306749534445253552674454558096221230682988924558288812866274699325271049153531543303874289216045313371954551962237010902481370972304505133437188862080870359207706797421978952710168037752167370062360810988648284965416345633955411641520188630118753253530428658754173726005818869017268517933693421423965744963422787577373358436888478641336807910653238658713996702710953752365414145689501662450999359548274531823054366354638892766170191632337970308680010058083732676852633632230136157406954434118146255925462065823315405119215537506551706692462540928048306119429072987175195029157665000209543641039300228185673665698273505751103572282079696203057274619114060165911166455702776367731349527455993526551997581984669205626895516524644691739728045708974857511347158828258776225322131745977171831436786801117189765256748397720369451751274349027990051691204030452031964605985936604329255103100226633122248580808840570515186183525929427934593973600622744699724353614719118061728001647804124150151947342743237387038784229571191446666280858127658218013129590167302676794161776653784692444985329035072493267101786981794426655052747131097454219448472691951979264674177812388595899475233836310094466501536381057359709504645167723236883592473882455104133911083723320715093630687603337585639472354148857497987059738781774958656723478694268063898223912630425915268989801378697567328366097285646079859706924862786176647505288395378491469991941991945997191859791285746002239253869824341792633553867091860324205077002380086139445957016426845056391251366028687339870629201995505253917547279863595717592591444181422184599304122276697338054343330205817483091505518723406453736624367520757239112806590221553015938338569001666779544992771743968867122844183315689190439013798943403890554021905090304259468221427971114321153919731422755919719277064589707838233865125845895553868239150954248816226190454150172792085795191956115486009692955850092102101578189745103098543009516366848555034169222888828219926287303114869004853492514617413996222612981576090128262056015924902042171781707463957109253425318767499691429242570805986610398975290366968784670479045350759688361034475650709816576368168218289143083058805009175974492311215169903253613760570861288027099835089368771365931702930728012698980019645458185008632994167949980932122465596999663216612347319770378392921956451250084149731275786905211796832715707869320547523566266690005605565167472096861240476323801515154039901317398451182664521409449247099304680306618052769954224566484298829483220215839732282369860274563362331045628573701248015147543334546057484197571010532047530481175004774219164292734805784466024792802747098343405475762550713474760868330563915373364383260556737304607581411119053497205154560529893853082240778286859113195411278147019676851268092200672155179351905981902132029366404277136746597796916281989191167899054174294885363046271089585508917596017958290253194025537061507660924359815658138384638714846461110225168915130059439425735445643517982373921177027933103427776505135000674083932219576427963528759166900966594357637632192220397966745686875887594322113620634948036269292691822111372180295326385062384187769294232764052290560020159425798437171386777183769967430938157819774741012876230820395023004424836577208394592170533595140019432918183111807132116865910574593066632831225488161059981690687824311333372537236328042229686678140162757828116799806145527484044805242472022235051345664964137626287746859216893990507940300074024178607513574276112584745053663332507295730057297545983161205369681695445109612568371058380845728469902130168207012670110199531899099717734894236980137364719323888607400002518948163124526483345080118677397889811051540088032227879269576625489255595537327284551785698197181167926925780171689634034700893809218299344281353599650183453270990431197655489677885728038919726199504155571061483065906566816032610066472672021618131438712019573574950770787937823109245265421163715685092879320535672392331565436545291543202158105748432483532732945546636974053191984004478177480469695051299994890758303593800795283664044469965107881163397685724929309388465903318828464949179721791418331641182320339720141601975287898057287496395794156395185617435357685635941977262752035192813575442371447792447408995731616087488149214797448276850412881648624878037618448045181485196459826992402428132555416724673605442582286661382679072415382528744646265325474807795841551021633004879326327478203989144187136423490058252539755883899321935492595404001563662695961948731159608646379988719809607095091072404604313098394910234799108366476462499231893307448709444838494819165131220216008469472126754260490528985283516478588288811107375278521580507734876000117436992758052178352461102630471155309460251335180152408885044018668596225979458622875614104475448753418639650718304738928393417405747445196726644192398884137610721108278427840126800918276469710917466443280573407624393139841239632098006821721357805703156557960336079208871079318811488520756582276902074319090271786200393789780262440381368395475086755291798736505022306501005383094213837369243787159637087033982421663950497815423386937635250155633440061325119977346328739857950155812779567308067137708926929307193283376169168350515000637355565576690414993610716385463286425624859369822408917264253461249621146545265716190261945034394393740856244946703976635834233222267883713514443022578424194545868242075543990014109182396761487049507925039129044402135319981121424820974690678783611268002195386784661455445527769104925716973251954532617569447199208081521793329635355955337568036752153981452321612706707175855587105636551515049266868539391772805679194164831730979700203107975016058630038555527397667030318443274249371531899045879916772476769991004296297284260067271195865630297029914480301945052639132972664096550803123098337789750364700909413099402578295984163158795271027841202224113242791480179881623024743009865596477038326983529676791696204347560147001912852754554310391303141933320396549345678479898401039576937400182287724566485724696791955330766062078487221632416445615824641764300208930690016891008371415582702365895535489896666165936358311985523958129052751793473226810972953815724596523579949736897107790754381758219990008782056570629952756857843953993736539605705165688066660529811354683298960281100290414496522945887415216503678982386513149353955802952890381761796310470591143110934628549255268932624410261603599534021870268970801434345731152380705071012182824204188019454317635694084733054065264539736747133512565727975431014275622342613948867226368006445998886208577697520687750766110229765662884750965631351610564764714800898258142606427715206625886737050395857261957221250316424079912035622970067538695614400582060105387143216160174347467217518391604416465561482612003484241431194370946329968959714226345752241291822561344363589054998942576127420320819820506441083570313443758945170107870667322717732695166778827679563222022370740269034110283035800165421423653496753153738867101653515357066375704415106439571659827124205782128846578497300500426898185184727272830514015843807855825244883170205037344658862774900305150300333465252713164584097948154591243200219196786911896825638407821833999782282629678928843424329680186653773915620934486164204892546721622171658905977726999613621217423490214417235622403906427604982089332104370745186860024150353604248930943222083212417514392685886492954768824639681193529973168398638856869281963639058359316916349325448262449801760483684657387345804969798641031755036770564302858213978268767623831871782689551011174288641757883138169944389677365004593913762532437838262846161446952024710241128881949573758938766119381310352185843112326209980389159994010913357193017471494240560214142170042304749979855448763031300757943372009756601299429129943009830244273763846611853937495061821297870132165036037430184559025256114419008480855305087442530219524310838133768572738653289094036832504354353756418360272756679156178270705335693801298828786621683979974286016853506347079499902222986492924139249598659138248558779579436944695859462488853971358184842463855725590440988951837036490204940222174577345847350820172028130744432855585062529334560757058841358286333910453887736580651445717707191792201346905718696274539760092143711746728405342060512363104964252101883099886243568186417010267336298015179129773229316104255140951951908608560277303540198326851088450553215247209252043435742811443223267951882863588060810361214081891132854762362154350733218144842002177139015246579271192100783070178575777474344766408770992770919992108557434585238175794880486582430011896778312135790922059528817693485440412957494773030068344753566680305619012819258190665653613126741246771964316683364425649351245095461646107756822782548948227449611238705596986619235021871902422746741550111866481621185957577423489866550692761921912703176481724157942270463730547047081074828254439859970922388711063925373750843856852600363726405402883906046290810889561126306989609224538969437095740364910796214704024165126827814746608257164040764797496087797862870353673805531550414714007803980598730161202411125021949713367993606463249623492559293333252019862574165851413944917895918111500153382635478563459122170936132603811042633884252252816786267381711837090286486988877154061740357008158863242181724448332839020870635974930797380120569934095550475999038374819847247992371214552057897323072987737482580757635639353377877502389309507633308089532326602994938200304232725725564547002291692940658775464265547433019735595115501834295184641077851948972742156525628296699686746156698175004512596203571521747167295206530609691445645476468401435592831409583280086652856151523332381876779013517407033997866408208958158789225220343171532106215817662793382719062553750101556366713018873096386487961293895882156575125749873767946670236716190352638074860464758210198806327221305220864389264496679731936611419156242582014928385883181634326662985105919567873662868299544685383856240050960414506075131665368370104781664118844437716092630562197552914750091282778598589683231739503260750719351531917227311639803194430485763956260755900861151028454354796371397760481491571270678319612060576321677929820474356363920923706324018390620831061861822857617038496302952657601532723050253893675658539940115457134335221360081348813835799211284080158384746534084420105418879925733908696115042722474937366685884921482511008410706922577089192379952073413539239115162756141580739092815552186575566133003660104210642487176015611534618247012819283327249027503349823230321483635191258894784415290673935902243860574706182032855085597487056071896996593517481689035009426445970698879531529335246638535032139963556443946394486120878851497701056520009212806280532237986265234183355809932207200262532732180353185226610796623052463244831866757165064547606396425006090130035089606532866030890958472566567147782494410499586564006683614929973476177929571635349885329879249060157883135793813470492058601387243024001459981451723411638394503051491188763508705391966013967764423480016634684773253572827227505721497524873063598714218483438361175121613698963506061830905963238290847628129768369120175705115648154793792534212688284513173772602733544745171582554954797934777620065391510776761311438950829579804482551223705046710202131370314074203373244298799606183145858282088302278454727555418981233702950814339751136648741202795438848172114627362450248343824898667010680647513545196815668208882118715620412559299194129339873596599494674190336425844150618264306635533832227086069030433592184175522972048749803859573086751878972643772184017152952412579916772940217616453587452100946802419997846207230689887925916115467494450318602944746270016708324699271274527572603523928243322889669996587011946044250127730599051556038830539529824478639170929889411366883534472465927358659106664011813631250178725597707222704296809262233231023023854334604364640338373372935678573067244196348175322773132243620888243421273579588466292904831300521820576200018893199902030631391478280107961260285011886450337043396984698572839274333846238489410909693881059668169600074754791346335641629573695995527378512560458695021102438191539949134712927355413389894891730761020701281241464142290415862670359088586595019102619277865546263400439545777442349452853421120233900065441189687362363143616036711437671504129577811463435824384490652457347336622713862778634955508148214941599571450649905923274581242302526984785740921952721676245048182159600245015800568444279939917522583869810022867281223305234357193290621400216885919840548675551730185790664846546068980594868923993623936356361128880700807863927883006623909540148526098055436427462468061877897118871772116679932361545501293480487714911027495427133268039434203339671824815065867184236701665270195559487111930663011763697668553305372199860066196929579842721455356482197267992374888258274599111743596369856807825370741227129089549598003483624219173625531071442876659012895076511463134270295653502717414547880976936010754942782734570693315267731455610263413646153204276342294426915319175267133211501428839738043517509786316038472477952060928623513096096920270629703470030738533859891914638234725122721964391309232040165867443103174340992231804605624971727768696634872676311333519854909049099151721230933559316899673164636652575258636735763985002532952178947422393717671664150778474441162434581030387030309074480471576757096314377969600862638679154011031913275929238556052896343847022154391365257121046477872230064372106323525115895732888517791068852858120016049523314513913385865647987464627372249644428169534762436907855528417260711640953997518812895639139595474177490009487082576527565053590269644806344804208401539349691422947148414559727997233621133117188799684818689947703750742436904557672833114639439492364619581346468101287051719562619906637271419131776522629919646783835328270190503429076789900135220691018698975017413500481713733816735202205006073034888275053337955451732591303671693378749499039485947030521694135639370344596496219876333303788312297280261234078473108353378428779996695932679378557768431772758302919599836109922197569742079141286532260882234977102374830763740593407819170119963388292437376935529822114823450909583027373797555247819871536970962089837361699913225968807527883340851661057517090986633152531475308328025196403305227051841600862553803354365499404494580018610839128465645334778485914629023730356124666576501560483423430846828465739783541129883856730455355282693995884870351321363784495944828084482449246491906704998310356639218407342271707516335977894607650548492410920105136449200425587764735311120109824635505095437777543089697453394696399733355586208237523184476581527338699079917621971252264867990373140157228864772961598186957793076574319730135995912850496764905481406399688626522666307066229610884886104402086142565754784058379355353108083044978081549703021682396714634104808135262877174023278972278635487194373115707014623083237108262007765214905607334142344974189562771972532068772412440620574800523926314596334997344924236684966215876234464073672442047148581025912284907583839850876080219745537245486103481613482775612742920566152194556982924081940796002586977150689130406690616718356674721068518657298438433193265763686747709380928314838624696751851873478517439207607884681847251726179468379597742630027932626094841591732295362411296559730243302314465178065178331450164199116606145169487110355467099712006479034162546173728643699297743494361229503917606218188940672742157479419887308553761324180567946813779800322278327490275618490893558129098803648622826119259483362754332073681643410314707740895383160280046221979373186000078458273837367449985920145555040436278153297612661476190313931401068052102332013662372133033612345507420644006916234855552403188515817247355216153696108389535934821219084970657773510568592954034067214898469004812044909859800361032135427576464366491040970942884908795148741609129736467758447131672343331607221481042349703893463432389029963613735831744860811251882520310298963579732853403015110198038148849986715515825646566095481197138192337335711203919707311509598483249881697297130402962981462380081085606603152811120983126110117571452347249590958694332096479475880752817710411200376950032064235688310183831608822305641475063814217716183921091372510647605331328777517317799253281581150308481620249630793218765828186181724924560754932233459733642177668120058968810500893675324322556806966151658708173080611321573752168995997142253297254919657215302108541856458004519284869764328694584987316824010929207809765550207959772472858958561101134224173801992626036703572104495539185751346290554780261828734610937964603683867598909738038338333567705628400168492842801689209468383677445652623163287400829514365460275065449856157301926189496899468683766914966404002753728698875449847416269370152717399707356677226672439681975459601550628976154250297632355130323179176252694804794549665549760966860121030377912972372383403707273613336332376871669544777272017501775001279867927450165863727116527375716836284650593021618003216176043276000614719818548289463354987169355073231966070139600365563625755988393766805638008971187632000450957154323247878550187933417070707431715284499171591017583739992878268938391009566564128114395550418025035326225951922881963701643186614693725144780512526264993659621824308207216970570817091361758807966201257321646307178267422137573437655846882908562368516673151030066816609776341026387175851375998426556775531319895605762368200847982247422860632206320411802283349350234318636531870353988555754595394675977105991170810383812222615077196352443933137395004805954161530268241273686465842647191774236995905629609327332012396999605178281127914327539434245237821787234700488239004507562570484192013858601637790180704809312562693574042910621337519251132533339314390611243372734650807383685653516591314091445248797155184074299825202309380888925984289810402757765615380242423805330731776920432714860744758635653398927996573604940265417053974267228009064730637125157521687506607667808397079294808007433450038702778890379701711093530296104621750841518332776464363075289022467810841803541570319039284682676224197014381819990237373217297766668810829339005895730779762295927669312537663377909625860687867395454262495992980281676163926394573972320487936770729552851281725149208237288725896189808182701851618329580075943782443365770978388471509022561404956356041522585393646266144823641505217166373504067988904599350184072225017821727289148362949742435401262639226941751014137075071574972318175215303674270968756587757006937804003174174939188191249456161142451952353053476229578862993093905528581039900503263501491003924065959923945842006727175338815187023506529029612286850157215978859233668012020560232313654565234405922996533862810835719803412283335691317495457341768466402800712863737986627750093346521747466142425772106868248640804832876796447403071853032460625631675886308315168166443577259253019055610365834310203293013787440449384554614118006197519080056752896147577040261007298602709258132936938275396322315713401019010088872082571567939226556035856320924792540173245995743294962930289410572441861332072403187234356079999835987046558448531935921552081468649236404635836216786652594550904080044455102404365478437443356664451018754784086056923045045495461362101819738767621380745485895401230903447630765357541800835995300808052652237509023551236686853908444849984019449143286637729681041406211688550004412275104357561188569673076958463185111854698320653906670955724547898635723575610734314718377915468010221122087498000155704522421046527230124926858178361427132266617503594211911461475692198157324940072249289208962326747654195912324677500594245675840704093728862335413583041538349140392574109668992845131353063209338308377543294352991404001354568232463407610465458502470222894023273952763232004685487240536876782134099970622234364810254129598553310879294363819181598684882605457791696852084679372298057386633467124666169151005503852733947604570642513407112898560433166644672966394591357512418651781713148750473954759827046043376603143656881456896877632992542447755912787951420658145024317631901604067382703300243696014235354102654711161039185777201953850559925355756985614527131364790903200871634970750525905729107988475660307093175409857152066601915219423851256641279898962964151228213000425134760009567268817107318123785740597539966992779330454875565184068341487088313873237720838109239321679266229256506719983525124409738718917464278742317152478409868808880892520871742701345344137650872766678232206269325718037089175042107565230243699648591356878999518834632853309862299320277842692788309344020341470121497385249401235662446697870308246277346169010492140565220559884154872343392532379029157565756505980598537177971397224927543145522005883079413493128583773331852646372871361906658706658915538890276055353924192266384446785752523053525178086881813553064119538903124118121084115800781718969274157652372338477908934445920947049076003672744519526712327300896781834522772625331227518671113097020578882497345502269491825619496226806249388121750031941767547781787448307133372794687531816922934146715350851269389559049737186353446248854541793610322880356486627934085501816438440181042034431761255494299783366082933721409711918729841259819019115730725890931051008372347819872514857153623511019453744767203465171590536452169452552516020636717611529774753671303080128414689970460910685958910933718759666181617030953655435503807668872550349776133536343739862390098480825649647088631921380109925426343801229324430694910139667209048751529028106768997339093020495977787940208880364161464499443353849381749350164745567403350342028795893900734547330378542063710224040274349452275194696308734735748854146787190214121897155431394641453875502212522856273528524444563139423368190887436491596417542535137534434965044208549090965379105039250325548424810026835706212779883700013474385928010513415516578363469273609531694225884793674926645022030650328635065330950666270161363929001471240838878497423366515087213760004553279051731191636167523806800384984287069987168316974582620371340909194652275487292334952246757675542245421352550529975509942152180603149527674333775806106741950346587842179486604726891997266904882528192012417283328139701664918264601530677955092364459779625826004092049004209999291628257731301811449139901156694563739523725189020306956228526052726480475235208296642201554332716649852625453200036231701471135626056376038990466393086847988512906994715819858750595660652098633132894997147869697420098447340001799297347660403548644566337185834467715415953300603055646190016677701444808009443531035639046505717254954830845679095798198395509579245587622889858039667184200629406488506262617619648450270377382180409631228504384111658276873801037369620421095894210042271736558395974159315960002522287287016603439979966166423224964454638896745360248015373189520461047000895931743755726468859902581266018308200545209336309853171703973692117630438137682820780261649087411431445516885794989956750917840817959285904759258664560257580229139580382361735427530749414065020180686624186151398977257120182094370583172088391328387547614908795142990749894784509991010077735693385420035966812859177880838485187810841692845339481159574484625327253559716735934899298245450909817665158712072830601546634315745635668456054959013521149258364770969843256327662027013482033207086511892282725783925443452734015964199124685987713737101149460205885035874614254716445278456891700945027957513218487958941474178525566069078240208925611527930016455179057753669214934894851512874302233468564110611621531473477045249881157032110357668817932615263108053560327678574305517696431038547399080444534248410678588751893478178643509013697129099584727988988175205151729346240131877797397530011306776540944843403419838432748169122399881556462505889778898131788592594644693342198940495897783316242703115225342654990813908951179885286400280121765381794457177210567664939936551735099011939013946723653228730530164786221389626397224264564787758170491487455527593534481777333640587600005704673797393124590550641987259300719685194835719370726921152108814139022033033677792529648468050411518753708505734799165956265273281159608739336302864789056804360009963795351665468793885393248175919835178265804897265962514776982254620643385607518007535594176407685590920672932700144808025475107702086827001905940382965967689963566916732804434053993207781839806121186982269480090709637201798981273185859483374661009577060099972628831150391988113417817195376248965143318727619368876069667930056158690186483172841629454189657732240080707264358684313939411063739235950045458515010189011072615309196291921711272299856335190082300894333490747155029741507626158284132212628587394541850261964615248110071711322398183225346647390896691188549135968806882062801124537907410379573380078455270705724133496118016002263742276556724134695159797666442872287167396381640897061212619979939731574395878387217399746103979660422691473183536328062409247905794214806421612669871564544241736653423639156985252657894998140766121010567782821383919274490494339735385607096822632791992631028068130919976115827140565107081125370860206952679059025301348532266806361600813221699064081224005972499708162045729824739492300653570460433057524019772097705885799605314473286999561346607632728943796178049100632573065808440382211533062044220351925944553550712246319886452144027974988509012865982868144222604730057467004241578172523693078407427087844484971210797893260559561813944354246012330809869649468478404131045718507751342620356404283312773240939947213080082649412406302565774462699725972893387360994719990512901058867944122347426459771974410041993647451956559410270911647678770039571069801975041721828146665619030198417096610350311121329668529793355189478649178032514655483010288079681151982859187159956011873902877077771163608448140326810173763731719820007322282480769390341052853781150451407939142337080518592607767062764621839442996833911229064461861676642804950062161359084273893115672387070120064346240385976154306346667328764861626474932647617772170277642542190829372180237679857841362123514199881179955605644698955996157081794086379246180543059854512837038389234558326930273164890255846210723053853825486455149187124995711774293320310243547339451644773237978233592848209288201101294092627577627134115068218732170286610163160507387803770213820504615946446318969552447034597678092126719300404366402879315818781379792736903911607606421353580259458836672942353845059692946506034771839520495997482100617237149288467450412449983097254200646085239122230766282394176914277210443871573445049770577659528941260869940029645244847462532555908446853092004671122315109001998221122320132060603770662647175518942214626697172460476509599787068165438610637595699821480951961738746888071086497809506029801634493795744713930545007819988617542726881766127825015126225065281851217794324263622026602170528228248369982323748342517870773207411327816879940352770339954484544377699977022304421039914044339589118535059952253471062038125924044796071472330020869301247178304846091093960250566244129289387651696583486828739508435143217013376535037171912179982638263444713530555624026239923031535025974815324974561454537750712707176378192572826641191757202526342716042685866583092729404494063479167472559235100887143579638702255209267998056842860548766026836110415046840114068604609973699281447595858665727460343834432654738031777957115558655385044549776601789126165772011588084383580202932803901143250870136495197880858284340737022523948370458897445913367253236905993572867607069962200924097230693655427473389708627759065709216547629104086993208685684569767359609974381822850341919025650386060548643402954680307945454676974924555333236406681133755869140241749606355218863292526705388997097945799069147197368710016499972858068448643144553394144455705559141190419577914072320808577723318357762302222523374994047763132445407222826699032953636950740701733515578751261629955564983887854911338202225744755985659508392244169539596885892305564869912739058694708268657129801399151888396367254572979970047811692544988428571311984492018942406976759782657758236329665302210641896999548266743145226871046143495403247888031507439584523713538922061101039951972628322473993742984011089899813931216195849928005840453202740393165378931667629488533724989750039199034036760307989836859399734793377537884789648120020281508904524614800265775200841038172634046431574348992183886791104930444882416704261235309554631051218622254898330787693938056916912780831422255332280982781535048254096881485162812575715394681029690010744370357471709422079774447274846260036331772532195169505934055246094320929134266298714698710334250603827779217349716695125677640571698060525605432317787183099688406817841052502380320184060170174683157443335861851148228581647055339707292018345367589491711386352205476176509622890378729170188769078621458040005623733277661522238922485654599290136826515085918597628542940429821720637414097863764668071631141890159772775812887471500564819728244529743870377657627409715723143371568430217483055641129307999995259563004694579784707186187445968443986605243327199351993371013331253024370363503901842072637196474363877427646425728009446241033022463672349781012668145534934351003776324520276113918356637875239837817963119816801537485792487126905458430708553324008758513983407504653487041759266307439530904986326673360084053673946284947926911745681306213483539305155861680301809338938856753021921025322266358229705450697941781235065190514228088612299322930128377243218536458883960754196149529095598228835796120495016046429019682425270172850118605148574221900224239488800964756777836051508001220226736402394379703321326960595951764660533102151544299625923333184370620333484852055390806934931308594965594261769771317168184351401187472243900335050810433851502293091228960518293880707736514935944948012884139891167774323663703031288306970027562664397645014456988256352505828179174523662994075368866580737695879945633110134594746732667209353088713471345567201952920773175913730886376402578540543088403141205791795937197968496842062035898264387492972547921442964421258769272555747547344614014102728189932277146387535670267941660027332659088348231628776685966095988639263484161705384300228235736888037412018805551463594217410126034862147772050856528940897260946873375426272150890687793057038152662500758696400384429397005884001840101999947410503743382249943956656090634385463555480552775480591051522718361419547123121771988208404150994334811652888595642568929499614050729280869507439672271333688421375021489750648147647563788006608744997234666704097943577511331701772280842373028161522938042409721043166072870691960449296263765965650607891763544923836935684024228447239393039091633073562206540693699701226986090221166027355680026608170859630200396809388208676974271760513759665206816564245816828352630440414796834230337475318496027602422692351838813998931037952425203196512406189134131726425636305792564720142511965138061500047847481699593402487160994793145730480323745592430485459258864196932535529775844537281989302442294249735772718907823384664488223525638605030442026234930982198069248017943434719849402212325155094523952808635884910356999027053795059232089907943681559902667134096878809639807499976657497228248639233766879132339492211730420405060406325680369142922948794117362027662926483113898042229008718173714532607221341101740798165231595976937600386339491535883129467721660168047235262385163971068609834354836454538410614336957368164167832321469420724678540147786719121904711890693088391928319489663790175761739556656552972898442635410694766893541994994270300856579242360612007418362114005755826446256522199731560530947247050203023753986506384534154860250394319766202275422021648655303876019169438790660193300375566900659883606906332221055797414728312389381656919658171668829265288802105024537429386436473179430509311507624911613531750044534088944641804691058393404640007494870871910093324579990635643526017092986558566368289958223483119514860375129457817942924293215646451025515081988041058390952459152609881457040230519919391924498305544099411809261779847192032301384156328620229588497152911013208718804104665373894001327457677897729171084088881269235335303471721979088589045347634410341297779396761656354618425557737210355357107814677158654578672758656158256313892183677888757510575749277143250871019386496308681693820286620326540337401245652964926975826164359797317019795794534005976931833637319975869213146233352455501105339354125074930968924858618311065077416853824235432383527999416023812808592667759377803185169255710241239281952775890231479900689521799899033188284695632740794104134996529784673807113834297625770820091522379611775778904153770714550903297804032708939275173867732171467729362684873171749366987309279209133045402666893057475588470562315707461999608527550710623233198032856416841783606100861488786055469071959345541255684581483453599071198958809370273095377737106334916665795694096016399287582304219451822861559859332931508502796100134650035237222496435422139895889051340609238226836332945052503486507898122110144136896486399197635103473661366100831989269016515967160946881322871444540512178792830164821411255010312484482525989290621912270889093867701117682673210789374592270699728572358450725563015282868352414107011938768464039371970303705997282864044621414768640699442649112186798631663030138677347204505584244865091067127422261000018973172638003792406695730940804997762160750840381249836335032810157498854985816051205864951208047145415362318305898173288324330780231465608560468309131068685656652320874397675645467629770714877656971641482602657370455849267165167386336270257891791767019851243818875476502421997892856826677253347894817412666163712693690508568594806718585464411017682490038110265944949103007011612982961846267910825137810725752326134031795303988342953270050894658799988903843830889227803371533694648063522303980171455930494683925260957657960730261507604385535180971264949502910937325610554363211150747206388417493670004595076953334774892469459768089127758582019223311277428004771410887891687127634930068294460320138729832395611954558950045990859789859095303821306355901420396071772909557522291761576544693647303808329481055204143289451343085223410057378123319215830576067968425719186058730964971481738704798341080614862664004368661144175159598404136715357919120968653365700519604813256706350533732006436857609854747724721975798456314266215703739970750186753028253919317383334500209416553904610332128936030649011293907033071078589985456658115680189965846814398739330041760496815299304727818361779933597720976812581351919948275537174459872949894921687943546968831406662735427213130920107035627296472806666685015464700447445287732904986980000038622159021713567235130831450823791767411019840116805115591456757212725764443675603167191396591666661836978459170922705811504295112108703318364869384537763437536776117116526326799266575434279394855666413498477418242759668142444718020013562371184217738797755847470428543199961965855509789407849157183154617128700304586427001386609486180950344986482499243269971170085132389340135353176801075310244095407213229637689172098185235725980039840355690772142473571156116340814171975770594835296171438234589224384684961547831574746750378064949313219230284749909593013655551866595324450030365201277392887990383876301719798080853940939574974822701829912613440622093231583926620219802023774064164205767865885273711127449876121948162800445195358602720191268386578576162501466549867458926478020358483320686478806997731575804986519363874764217664308635769770950279007912832493374714002243859244976883668000910589168125246811474352467197653740301406567810225474224265095103065831612313245174730033567055369279152057963888968697890589027051990152944274230955747205832052993299819540255405434764799764716322290986246947100788635225289771195336117238926872685466578359611037649963215907538065371520979697804716170673105007947239009881190711535257753436444921777029757854655449989066052028676931893504386262790450308227191248212176934369992640596490266133597948187838398423151976393321626924421929516319956054946026888189013787671335593234185936779337417723142193392408965744350658277105132418591905107928460688034819807280955587217639974774494945462406242080447750209696021992351178536190465202543049326368656323857726599792039562338356720811562008286917011116632774236615303342849194284700026054969938404049651248509160949679895151890995897930789765797045580201818861200589772951004688329351436519700941082000112519205435643177829336602200398609546294620077976766579108416931717488986872249497595321611409954553181705428682467610540406587338985491607354572807539042790862600788509853881115014932485088501452895042903509086305649893085382743398562475658143505249069625610626629911511126977218423856653315062854062688788712561598861826107882049346578747401196968774249788360625127638566210145089727992215436167366161309420031837302551254222795479065027645609098447804354922200041132256857685485049326693005327156583002357045314864597213105319274386362528253245534093775348114934252396056962370061948152335000129901736695975811948370471335106198129786805392950216138207222043770636150451058573499660840031464428532305288695986906759992162804349418805048024055781665355862938404147130057035739739870176947529019204002451019868310995087197921589052686516190616178834916294798886301364464493062727006910706873040156801390179412318943151906440926091803619141206833791635950672597936173077210399323851314603698116782510485425442656982283491982001562739437837977366798997005608369932134887154888568034008886279276298847982858424975501916383657933940051986045726233803780267753531224823703502585458290818196269148903093247445229873651536630008189604701310975557018729146172148298215055219035234356492463094317896732949099561578973429001925066399794394657065522025877908262820416730491404513276566970021613087255378263790443446994732467951614096652854145602614305372353252180996091616876164103941762342796083143080584949483239476965395437869718222359615581601775734068684397088184515951682991444641033133566727105551153705327943465943189044342337191544852847668994394239742754696771168187414578060345239089239366502780738892345694033177116277919610378601871478471081590189501774883960329281325236262782511524619128812643443707213479782389647886204774286227075645984627764706281450555822398815055768627534043994207194589086982794738787892564614840396019943901312979379835887488541539275863102908857976752250914971523876370322292271695366940426848098539549023031666489742576131277905660729698229639267671520572495281640980065781936458168692830726205535769721647439766657706383947501650772103069134645133377011131290614882660369694290053831385257147538362498034390580294950153699234062497229254247899146414650661755269467086187401874309713480026236057643936729047217270276006518160807685836995091488079291405232683226627940287262617288128802899042641982114322586983556611005373499004680071955119287083618560351285197939234616941311607971448633745686492444317082280515710583936450433437449578534299994711050889410919518936404005194072471127574440804089781057677565872871398938343032439124334471928033676783062714241654647020679216802426720216449132372993704201715666208110198867154681295624566842872008137039661903828139670266773850718141694278667558408174898123090017511331993310038077905059909780891171135664639063997428332849190861549530036129976174833079003733841678836120173461842715181081802381021502710001094225674907878479920445945295183985475884147208074388735635215047022984872521633560087915162626689322413015204298908530055550611287717313016996564139536615946573776767914778508016853378485847995065812471623455600282705211036108424863359813169031052334589511653382411088321688022166001302410046598927566877174243473744926733221828941574570384457581582162797628313960728268764499270166959901317379454188670212783854235797647047384658166570779016764374980194492490140641873449279750255246882844664183290544867214384531906275468467904985413947157158087524569791135968887963579433168791761972000313111188614276709849642405140197687854267169895127847920460616544963016125188371009989905650014495485304609505953440237702552571547184287540376940195999318427234052577871745623609603514076592056350629749273556205059009118340613036279051107795157460496171591372477296182989448997125260609545554944763842334630274178231390350659971616443908294918170228923746073376333802032818693317577663210954075453640935491791157245750516306032783505427473026042612326275788457998901909381774796769075377323380190015493371594961478703298761882693553464655839610218576446640011229778126921485191571171026669158316697815290597225384428871900659309539427591934099638237222595777275015536550418361501389510394466572427351935688012324196477776899380339736864814796453806197522926405735578493720482773744340345538880859151626722078616142356260190899503345248727855039526975573274042750122096652705893819318552304411585842107006678716424395872195528381529447680330076677413148521155586651926095720721324779730294885499203689291773909290760000838918730240082397540154465608122366384454539295487133495416048054939336421427162932178581802648797330300227595260624149654271864319280636642198838323510926126864304878902942317678269650609176190180376274516685793743986404448753031162610927363480585029653045088490863196776492842393449009866638360282294226374779662613842916520193256516100618816114551936548745029145215857359568207016834261144381985513725058339760224516764376032478243379770831165143914865648396307911961765625227526703599963149563481953727682583589370013538396807580283759439214905489412536800680233443375323026358839190909187888642584279312440512264088187046463995846111788678660763917929287172968204762461376976420109675176795079547686971012593884424577150946498409698083638737647263022161852589010503606423616260904748647631046322529599169235580053677568592914803920443448564740364276314705983572153114029481528424709986160454894187074353011826609248634353629305134653626503061834269515297673429532563128812955491074347869230675765445161738450898638310464408476848020606957233260922991659942583557530524041299029992451447435125723804030394881325304313545011694602318444500190605536692544745684125228338241307527350324264108500030372694158270807971727989805811874998713433409341564180041536301861417689355635212332669715110492504781925816822945309831518425532852254835308247752813393020030290087437666922432539761306273910265257570246856261275449350647357692403934068361062280958685656680073288946927630704328916455225209762302060319233965895163999076710302776960938501919603005906416821938640505656967304970566583056995823635830945999061002510873235192129175292959977128710369275158531760303391217747688816079878856521656973667464275971829444050262032008416516727952989433110626419343054724296933948028183666599427840315157195774337950507398623182570695988448954481663732177190074476419795957948704305223285196757923384507645303745157272610865487699693957632353903257284185202258442469942520928045378394769743280934243959123720374404698630479944151982360276789423127420825159894860722432526422128494331715342943896318108352054240480361988805398814326071860757515349486903765495749331553018584475797994954151143498309160473530840677253075996053690738574845551523777640708455255576281818742838866382785958733264481442472321597282138845278542426733264050520461731075862430401411393553968846836576974634549726172844592557472885948456486582587500440020522804521947060509661309448138557836851400013230574017751766079578615196144339250525895980404104700850792874161109287675946895659650754631775592149876111446148046528906966425131363800300510196899522700411628440266091256793643818192157883722186115631894810901054105808082733882564378368200649725440795661188253754500404628072032601476150793209826452420719507190363520222060804282559072730742637638052347920206045135506804442739791901827856567898436062931211901132236378296222158700097681065114453087931622737406557858837887355787621222715989248642989686126964227591683875077802152599227122097711745843907786322043710387231074768449270721169073216478807315645361753968903358349844456905783665054434182314461877601112590637429141847210824123875165605193624610357794559355813761217662234344397475029677033259372314601871049306411703605042559867167915417047565834860397002903982918115831908565837521656166266782214329808905543695856119180376990528623560580538342516857280233804977708349194525542492473733962926396883928643316388670176011201966803660379325297098909577900752265073479654659403068292492994642275345380424808613023844910134802551322944062867519955760163818769199749884803593801865957512639796419658162754092200034572230245263722277590431716038054183679396077424225759214620106064998507356572019075705959697305240773661399055039129507608547955605586972242026494826480234574388335313982888978837722194042547114110029851756190248831920221784207070435510679629866558363042319942986230474000072016484312342697204525709739062445811736858028965037991874792659952859875017608493800548437943444507114786829555956495600827587029599829477552945462926778499218730379140887609873990873074735838756323435207076062133619618430873371926788256491306830932798805695741770721851229127097309108189071528009506989861849976925846636680836704267064461843605644739058405380389811912075996793431962581314393912166538672324995697889070872818126082968909482703670270799529324687907209490876833830848438031559108157102189923106244655185835508927022843837970032601066445187659960381122894146731213675752606671172109532887324915334356832873214452969612870246238792813167945812267549484101208771197474102613029768777094817012100784384972529733122616200646130088465446276249136251492654485423626754836551217149058426440316901540121675218971178435105787851546208111430507917307073517649365346361550475724393359897447768411041047935969211338675192260475450132151776225209761675958346702294917770518466833516474069159638809312133889242167284427706371552376819937659472034986995568926849836814690763860042532252135270742693321322787198870487581835281987002509650196818865716264278595363150650365620838097567561829330784828668180871876443206310088837969593046781987510820164143308077593985402286782854680008642315762411368191571092556155783287284600375520237014497135493664594453815117900863674268061630269917751340685876261525643831371615118662010042190673700768204476733080057367949266678105798041122110416818022714074787794895833442023760238196518507000543879610396831176654958350687970516197341307269040511669889317769844916970537178559352826475214963543682535824767229134480991783157682211809681221057881477085126503700966822298987806196903184014709829312913904902307095799786223156987397089246525251639926118751011527382420366256410478187802190499733952970510198170852667538700361010016910395337628159362672500258343427870658202746166179068577940483926096685262134632338054887548134270019915013540083277802146111316024118214091354759516358764985292268742771563371767572583938473146688097842031453846468657186060352157961806529995670598839617188601820091635855874043103400057272589301361473362916171946412948689198703437735441277389376491052174179323280726694708697220540816074347369396776939744325537330796964559673866170125090833784414101172888031637593977359852472397563848957033426004249187625665882311296848834982173714652406824295404600730265863900790510686795954336891863514758774642915345783951104215112549347219102288659354961678514694553012444940363775675722891507244592949466011729263494696482122275798548629676707223602097231412334895925074999104739275420076156401453341270639256205281118406627192216840905473442321004930382081328475258120735561792121951589425712841330596013056783920293495231499119108694707666537336217490600069225595701105012656283551259982979847712748444763681680674504638314674727245834302887281798571797731437812392949765359742521172325514522029103879282031793664350145726288694297271236777837518282096200870050284522385410705276193146829207247122060534671566365223707371496997860834112604280829199755714501807413698025135859649894360166496113045247073529510767141843134602634706544153228272030711654490349812449321104063262055014897837692119881144349241213514306348474013343260164651474907535958078170090087968935962316570865796625661890213456301854434986760883241156919365718864871033662456635722570789670646426225321197579492874865158734527233900845916869016448860044651814757516553758589088937357808099869964905442663408109751282459843034243280716883618172356633348978258499945174404127804703847552645858438182430354932008754932666340494071653992854569773739892791946709600944004698768289381022061483171797142648867715533587226065313990387382800639413733863526972871396203165982432557994629542343430747459897024396570594218932089706404096553415831716752214024461511491385035789770003402153612540121853221116578907061524329208599465218138411607303192544827312963300346165018342563796381574248772546863036450192868135229192401800169398763710022903255880882413698358831439581272364892859794202606230317822160144481577003666029407653710527809893254149266257508124480125231192889289987423461861540197962423151331632974870155658193486311950037258543777653956853474579764695668156287031602097587046476934068565327385190829336560720549399504509993907705885157602250316525964305905224361611501962952862716438267115778933818118454295716191463839642908167919576885978247252921586100266229935241752650530239883358160874071091228892982673639160178188244517178705428283396447357121252342559988499419735028558774182651830501355142994449982186862981212819450776597128123023433707732672594602295953093109726100269278510927660353923928981935446484773603899699810772217716658042149753333731120212020387964337601735064168266559289987606777821671051992584673573815603404778406347996575660110045466447252441528077600837274565471369634806474395823242889557343051992541460172291183309264940674095521050920673613754053475479639954184816036804167617747691514870184784427993798760111603387263898305518096011110183101408395159202659992010974882116564078595880707796632553666755095381393550529034495884027198289317831636743947091148590106583924128281981806490455070726070509499156762402307917697161794697158503001961368150841586356504761390558506727417363223969491148363007229626838845206868368942698460299134577764556601045485407960210993584367813823421412520260006642089093474203298995035497094505278501427559760903274661198709316458693871786226494746727069367600452409078430150173995837270589948649652807930355431545317687396271688717894049534744733243814417547263036496420507269022856228578822121000883313613915710125685534328514146667378852693466736154787749193832893043648229686104531890085850165367274756595037894232381799549282187488399993424419681517482891326179551703666560604429894885166735804214249948951745688120865430722828961870417220806824532786669558206116089826416523476592614409300275380275382574387268945939436769762794912888241453762261580465907182339819981250218380794463165312264204187128116727972366017898944555234084006727750970710070267844162319646026751562033585268987771779443679926842430843788197228349347179473812054035147226306865999501167421138018388781479351016769566659360939626667663938137626942532605666390937733085217458933099778356015278516667916518903328968578170548776253930436854669137260982724055374166646700076044476800923881292396811384389690945597667643079493647969163078153587299509950579138907420675196602837053692206762696966281551121131298595411163541822046784710415643555626185472695544607119483330484360719982502635437671642180029853085309368967976473615275926829652076950249175971917462517563751187649084032846309918677303406259426346569114945930271834652147832450494084964758357978686324789458184376758201178704996878429110596387298120883729696467548015056438145733977167384540858132363412807984160667706118717634553500782747348106284589592169460437367515366183104781542731634190499162681084236016313845309305582655450902558214122715556152594466049895232077069438740181481709950390525290837242001615069140626989678522390358673767029822201770456137510021998871680374243734929073090371226808752797020389055603878212101585247581523470575348210213325534546687078841346391641636690766765806168163533750309166525087073478863378101874770097181819202136341437953920157982003268376682212214556647643828039499703666668703291946332321255448205859380982919963339101504256201602335081736184949227911269505591044325160997286127136091082589026326269902656648473308069354215366700495220721110190119172539430398294469169750108293677314311361807217043217636970666101011320580113602192808573084682870330922103414254885688033480168858026827410887239075944551555268344389074175068125088355728264341502882651463283504848721788782525534014019760862272333528618181062805837537071890134142248397464900890444024857784000712824388974837692383358089182667902053660136998420386927724533582515298724641508122150643004320226933895858061290284047686785461482478774090917575339985583966665555068031454850818935460522663781559772052891905481126184847584027581489982601734995907867598605113119115291576446439198882639184251684844901640637109076108287513965059899411271166218558420996865923764449848046469644991642721146415586797495776941549483431909407609880931942832581021927756985071730935328586903544313857150484910963814512232461680614428815824648473827281983852793234462287284818715277445043580291858118785364008543024633584231924200225520053138653542210216178326871279939005957991817593992780974620333439772392088541141457678430937237518192931038294657839373482160157803807196674610723589893394254800329328741227073542230700232927859633906090093458553089141763942305541128528090184014545738388555445174248170377245171050050028425175723037500184582480043904870206041541500315973823531063580551859270227501597104447891390103936125482189150506811434197013600889668956231792761821516443313345705914103285036058037251728393145349172653128257929673008400279377230321299997155881121456520529312837122799499172186918951785649081555638326192945193777241179706254724501447965914451826627456424048126805523394241746061343174671197454883515486264764473739107735362047725278533190198118787567350908067244153056323666240189635305829188154947398329612238537731391708939880166928116521015845751700400986972378340628891914898068433081798298277982242408890131439254481685734348833347613165579975692918350031959696546597379608175806535453920306955368961963646999670355271994474218708425772224529287009316963504587094912401515973843483583586918478630238170987873576328003763795255626280217117486344142050756656183368278040033138031721614926090993622666039905631858020553189569846934620716370075598307437238440226655191118186763658242284048030618683494576851931954848358805275898315873882559421861574197284068503794535446875309502404461420199135063222337992138873875489901841042323856802339398580625984700303064559784823561719928954155645813694254497367881491258729751892488136241171222319543036507480379176274870480205354856165444511298383759564542150459073861213605080306638014914183032215673327684029841436839879200406459450710810810107131326350130024997002345507934714652266956138816100175603754204616456574986434548617719440338133103502821154264623026206070446846880888189475335514501796514667904500501281999360264818306018865818097481977374184369352099997932654652300803380568036024931594799270573015287241034347619166605459808798351879343348541351127082635236184128475941311303989922282800414455368269678395517822607370451256559241028490798133851726852754233126854479645630409788137358484877626338760565634380378905141299167316123038258861732058987577588861702704451970169198820210238675243729130404570062279659899245687569109750010228661296879110940992234592977942922799491011844563209646772284243151988042041546440754691603630812042325572573298023727067979699596046416853659373538551522013759242206645414608536405738579632939107993971823333157674683122849323156584831683861983084751406139585021317799222571367967903713992729359166384527594598979149822887990931866119443179431046731879584900705060013624737656023201979756419522746697369782033234118572769812456067170429876922765352691417002083558447166696373145532681533078998077598306777467862886018063631865824837794500278387816742578078041919746161235989923866805229711807584467820432265355972924425594429927016205735574436329665437969619509031224466742422160514045041730603760729234321961146555867524936935650434300158675239437396286609878518335344113766616853689117757532012981541810300692245189048316839897476103915293504541875956435372367545851169155026502545578702518799939870629529404175176374099051164817607440836708149081410962100993807711810788930847164033811935746533976281691640189478010692743582594886398108079395001177522776031494876708211646199852130179902403700641506862318714251842210062533554292613290582914630308638779826852697302290093039101659026097303656298776278909200462579694987207204694792136482932751131973144007427395163879500454145730945052015540067523288693450777123587482299082525706305010046128902375106835946787109805465152716391997130663303188809215063000471517792354064603769073833023009092323853304966299512616198823757032377023697738607125380765636195004251490169445260594226411332794761853491936889099170375654110772604070666238973408391588414971898547555863344337074635242769846550785037586617539367479963300496514078021519919939752705406720482606258706798027573694685524321385090116220711120693597305156697304483146444306028372271260372640563436446228672762291238462801970866543688350093993071384023977679276984897861086977156912953776582270144604704087965952468943419671267305178441285766405659081264064657893527197585464439145402090221087312069823943645815605827280815139584335848894612964970192310561232455198976375110451889590334789788950316598485763510162625348662071041543446264749132170652563211585594779756453312350550505067572102854406366948320700801564892004237863409202914886414886330806918743636523176480116341337430884936776532206044570020421735730731855406484997914160217101279345391737296219591074165682740659252209177817829711745757089819648981728556756860280914643956127719158726051709930415500850463437240267706868610389066126931936725988976741804794616893975837825517709721859707237768292245200474161034702288605956324450830275127453134321248160278214156723465432066629033620219260111871130315214118990308499094285005654470867174431477340284445061502758276955224150399356188421907260700863302332036725435958673605047338426667433367244292763441456622881703533155977721994614202798736885041191105544289242376994128999045872293707183357747271124463102064617216519937740548347359525118314550623993544779030847935576725302241606394145684304607799664379996860552402363638965951705189820507273996498740349103726827077901431752193360981215149970703370267719922506774487805486379490641197646819049415972042580839870844728562868053208932659933884427542479973950608236012865905147480847021691618984906846088865346074599589060845850555498798559021341057118412883248104570612471316836138875922704365904101737911868418155159403675147634249563436405899842500454459045389966592625125052974821097079948669308491241259368719009717973066776919069222693617731191838048047723784623417030133120249138229277933549658980708140586088581185704627788297812268707267822230550302226891147323266742663880546804766946891347760552320613552838039366206811602194721824831418494975047959865187292249481296453601576047673838006421959230478336405933654917362395746102329840201521089957203493514468834911301529818164813336569997908427593271222163906440230500238724592846070181424771741023333369083168926120468515881191742286871721612087521366001186141040956122793020289193013571713793573155015534180499994942916093259700047848026902046979277919136488374736300787693801437990306894642327865423542437286298476853485282270916189958398144731918096472258998059479174948508693289352265219414226736011245527727484030435150099322554341412931927887353068939448661862200236797393438689044023909891690053983793700190548134851804092816318518910413076499399310190339852961219926513368030234208879879468903146259969286740300519378303799529688291884854652013622560831739089718431775399441170578820936521259263760406039631925806288598370513243893757740512287617264112045914203280683157834012331131123726145434020119543149497351960641705668558617147419648855716215743127178113942548132645702301108088558204625919385894969157678005561364600939495416267680936433237968867148285899979138929191916276200621964399266751093668209388206093844774424603299376834376309374951307796257934270658515758263403947969206044490405055032932710794540524706686043498700238471261780447684271494531808393738857903962775325541939541976105715377165334602273929508130433477441063193966164135516862827474575944278839005344469603634580934378508532133568075150826757093790845008578206108448220583062035296826354933026738526512384045679459537040048662640530366499783727711828340536322347573461133915659418465995014608463066842216337409240789000439887391710521829618763154547786900873543632630694681000410503394167274963233902537695159216986733870507319531222434932566219814919777876066506014006696482277911431594703204470422961406387125225269175068838326743174596763719325644742069515629459991991651192348821061400888429539796514918178490466564852775540873464599017288831303161663976792979962616536525507289278478169715066447694723475856958820246268755348797287223908567598276219898037627984549116270919185454335401626026104553857199251571095455287081623629663997100012821710646212418284885441486667074171168542527341491553138203685163774333337997780213240223393947152609613235568904152740664779301154703165620505943015392378374775822712633491349649092208769981914022959005664442567236545816017374326965078796118208764961546361430081001809427638605461888637811221903183943940874651974155465359079578976567604613667214267530708019511814037938829101616064411893165566390935402931301395243353065755652590139360919180480982376017461775623248901409799533188430663590898383870829567753797377380783764544164741042887754212409080488294913868127296264188751403681313968935759990337440830797893143210291898449515899395664372215684124498575003573244785753435014163008966340925915285038279556269020340990415997303422600758656277437156742550223405265130040975572939568561063181658724954009767668050238073306158134778773960706597694382745745426066529331115473941167660215204043855887371782124676792860904121621424968201438850647239796722149954252942444202259960329413304605554951469148780361099519932081295097967209744845145549652550780114095335139124625694562897254337806274612345332790411700764917247570572357047854787048446658345015012124849106348346875311732244825198743459640993646878543832973939355892184220454418849530700793611062981650952357708205215150309574265991550814854574719854079331823677188610199166738478419358557424482164741449930265598230901893469649823854516752532577047895535354906386442571929043018085086783650523506884684723573697340086276060646124286118284044025117676003187669772048297946758141731683745372013608074368537664331384879336491849828364630036571608028662386368949280254446531725272200681777041647036613524941619831729471299698268229731431832681059510346972839446202897035553290417543372789893469929378730304648491050660622705403786228187321233882553861354144787685560910416652553559509656578122283723079900706116744337048290310752585636990158715684639304983498542083428428522636821944312968647994435462180698976089986497624944731382710743874331361899528552481637078869777070400621600299353622809402878110332739359864082369400858476863437223998247984141820324180871616794321724458731382983472981122722913074160759932656876525781348444967988072026846406555179886962820203449119784838624940156369282940840901458286522822086322748302625128337860652963795715108115695831314961653754528773414246404094582343068644428927541807677210165570625728803428667115666548288593741631256601760400837245967699508220808706023305452224566560675284267735831874399776513468469208468615032947843775932350649042955605767285755281545210152088622306479651707052903673613262432313554231830052137564557446598797456612015315874350543698517079801160644180153384035743241957190613393638442883040354973595192661347330307379786604649290997851167171878321589702630555921771667192425926529145554536474759172508944497904692509380954214257836714431851597181003096526261367906355155601720742926343872722422080951191807439116117148581746605115963183375583281210868476128259895298778045829498086926465739797951636300799841962425607167227621400441832315050389350779131160853556729524640195184189338821931665979966873785237202362682559359232692544636910482352654798492402122205347686254711887497313864520907292391889167095482890710476929651540728311880913765911890297601824361948680000127758110311352193955786883120254238712092878441683151668416992956958708766023175599213506098085502931797523357890295378472369505523541973422836382168785303260717872712214489043879004524068587921811953463061866637044046816323145120787996561543848872227778986744843166615700299559587163480054430843601597530684811587701518878578651978433065278778560742630583413849959251607463021053373416269473467351631465930676334284125703714812441348179593258079337344878647986023550648360776970885510627313137698492980361058976185691585607552207792426328577617707257307847148154814307358107126558784714936690312969069775128674421978031275151178393205925949241080246923129578797331719137749836317083164681379368205914964444354394304838229609823848789036373273604319730333800827383632412790908794619706106024921334620224246483529511617124224043312093493752585107598408023214708283700541148163595489384933630996911232985796464408962229458607022727433201286593792583890703602826100113206975225427348760557658253482084358136828279668874882665364436649731844996947000188918590918576442173836949549180967739310655437046054705692422099295633597341526456841327114981819357136255657562404556314175779015444344918065648405218765715177892545015156207468474928979774872260388052858694515146636306190181682370382693328953938675953184727424089777325830962711639530278840739886184859652271807649444991340958607124389695872582403806421112668047132104292767753961221137470819186983283273258371134446596280298579493726516165155156752468515278262308068745586432836741605320395402415824221122969002452326769508480469127391697061304559439002261778848534826344434651660030810287656941258384352298273190578599518815570085013225181518429592383311256115493568859102610434710433290120860107212505389557816152135879987822449532108519223050993734943605357755209029385948405901814678905082106500054918385417622921996199286192646071953304656154374985663293390014262473792245482949907571771238363974498793138019405024720377998228321624369197347546067642263343638240261010302631876926176104147995796547372435472711365359927070670756253353494605771127961781470359819508014087975225148088237762995886847987754097617317822885344657913708527093535922875037324976832964468805885015542673169271170943892772472908154504181700392446655432842214446599447980879477276557932357495626102085154136880667930717551860629611328391517875366099387421418915156453477642652903115634476796041796497335752888335349095663006406007008088438730148183850341661636516150827909905313241101233675676176778980050386093020662623135281735386286574238605799935473041941336271137281569164912998131012979457017341915094618239436013644442463040502436831868311625384136129302529216433616901503913716683597113193575356099502165343715832192708824555723696605799404960952996889017731429998992703357308149379117356971617061174089643216450552230125588667402308805202379404560658135325894194397421174511139079404014763710260250315790123333705275662995534268828516073194671200161842820618124599481228631199630474389809824623137407827824772830879919217451907216803695039871342479988927419516292897451457110514900642229279823574798450364161532353709053899881441616422620373651392268861011760321511935981093782455539307346971369683899884062424128838135530510240760735539818018349000585178405394223980337633418212191035478066158178164970154245703395201225432380307661006072720195864521420407305808117502371977148603318503057418218396081245797199696802989867194109748229269283621224508502567890301210544468620309020116969762205018093325288530362266770593794691066547163250534164283056030517576961692121827681298412557548078634900558089259400375613409811194887870524462628541513443278680286072036668592398835729047964568207508687346440027260436998292414296983926502647031655291666325631387096362500973132932381073685624903165356211989514233100519013737275572467771468302057426291316375509362988539529042669390247063583801434215476353558716906549874524760094870339127914158959771354839986631877728254311104816682605420013021608358410299702660719377582066479121835915348553145942031908845605888286734783141845066938385236698284893747413110900342622946557053624762022742452879168224723370621670388822982955138811278077606342779006092989148384657110915593969054334142023582438273461429391287411618868183193205750470830620005658817938220818193200351849107289360262941522963207123398766874243106203840670520827659857822478440848186356689925104585447947001954575076997292001641485831000794331700645666266101434608875783107536722779508835400089450117236572784056506670506929716464363682482527686708279829568634491396679225461452682237395297048018583692186744842350662630165383153630650172106204894132049668344462606624852866955033335111432875277132593303290372368661193649663573498876386332695777967278417881056245037198714076318365669647499488023606009096401444962225545413584396692847321638653615448580060331597337305581603158620419306390709548439810820690863780731478093845623888102086207187774781556830804561574654921100361517201962655411557620103064727490965911842880840399224186292910812081810917622575778279102691171602482128299290468577494966843484168866946239557164857603310295172143793579596745634939110217786698822324943721021098380516722576495461778326444453342519930965973217202935242590950808013699778154631655180627156658654174359563807455241991767377154365741217639615884476347593067029270061714429051957752449296414569996450639886250482117129779491352238554139310551418172047085987289604041045269603163775817962013623706645398228871473786996597919992862566992772803329261904306680164355734665099787383308268615311412703156743499202354552032874179093576310627449083813227730740057080176596826053530246554780432667887064817546960563767807831997469031405784403152012311236147815653758487831330744902894237820365382115250286345202539736259671161983087260079810881649771721690034732720738724383775556821689592878775774750525408099242612845337709186510115209634721363930990785560734551904311486331573128291574967740259486810626965631446357081630552807472934495572009698355517544612350082109779346663825741803159779336137927909965014104660865343941123720655293088784813616478307331206337546571271231007637126391639819175949381756152536089180698489358505740773648709745128403578580730774924816819571280601156090898592929249629370401427098369026126260022048763101256269950473353063362277032863199695096652633509848345620251180245798483375239361960217793642912444136191165148875334083118020746320093857560302334422323260597158715567600154526155325252412467946671224693366511580613225823301393980970805096671474464072163835521473139934082916415134368075108393812056607338188704675615265241605830435529921727677823962396953373869263947810496064575456172361292771418748072051224719047261541948950104349243669729613618930585187094261713333820862412506572948485364924347647988684049615318945931651993483789327375624749454671872658811438686152373916232067056782216588145123219365943581843336772826328633286363198563221227804291297175069119023422521549312220883330342169488286446282445831770846653545679997505725035026381011477626576373893545625210998423641743743846652832708557095021897439326626326837662159424393450671677729243359086403745841816249808295279681956702579766106446322566939889615743901949828407879627737967110392369958025195265334151749938386853762222244159548732370556463978076749211759430684760301713363501428429286921817699580293001909155731251989519279600837710193335372840681967541700686121346063809303134011248743801068134234555235679111849334935195797217279035460171855010953192490826856275062631654186145338962258044615876222347617658862215723056977701687835998051989601644536978577353127420009408465769229368876898934271752820616429227016043974352796167488916106102090485681044889663712977695085248599753886148119745276698570133834060398007978365893895201002141286700875510813729903200949327307688223973400702564311015736646248822771943807622841881790764510456147432509591749030186683529388799042937246341129137711629863876726271476668616102587259628539023192331121094967134530370493477000518385086586503921908401201535045451889338202409966795010132447866910718237755663920224059308093202179666608697346508255484051583395993191363473367022327112840732215040191821563861249475263299868687028652674496592719123283824623865139683243918802117369678295285789644819704079444694475945441754801280286444327170559608636431036616440334334375001432139471177260077977555320751762623295472858511678786838741894112679542375742628692165382133373647140170138492387157628374509048691206636443753313971946826600139923474360392572682749267122304756866736586343820833969898924922729285110447965102817606365489729778248119987112425871655522347191372611820446192062016585908878874342497000998309444561441897129746701695360955950353693541838700315662666387280878184223663805089943386951314512089677995179540240922392377003006068260318823561420918450563245549142512823011335733402127363797328325326267869789423957791013268698976533496458338602378241121934851358402808545522300763225395528348345231736492653000903671135824790690599434254241042343960279485461207931703314994744528133156299618087788460240667592764610814305598461547046140165324224507992823281655085522747774261220486925950045354888572109617258633426329797578834511321386297918137817185457442495779897112231371559464587818376332783186238036736004518793576009109523761517982057259989048671663973248785726045321463054377082745176535359100261384755754248910903049446586175891929584190657599285276758698090716618526420664268261039042593087208993218209465129801024543643361414203638569343995634164727924856234745073228369739630235324387544341978693551854220129830584528261442181975826649064027802095770330717356442714790769001082821027286659289770209272005851243247713385940915917918511872758631148070725980077991101435076357608198607435570905675152909960425154430134613262934122332980891599057511462487409126417251392500923279360884508356924086433658700566165554868552140618028792745693841915871577323779019179140798801919790129185755271707878863085799896597848783082003529822762345686510405985163171128818876899260805819904959717878739430096292800904752007189002014687322495334477128096799802445983114273518034081120956303094306405364011668841445962769522247646789249723079441460090763374210422285946584660064671759509806916593636865333745752990606411527246038867791455353592253731827084728461602336728522857729963768333155976428487644763658389711825471566687043527591890303979940527416671886039552264378184027978128828986273699862884606123950517571350075646082042441884014838394044613543664958975073909098514543478879493668106707012607421048009308365307564003762751543173995255732403007935672902535135114214098300292041042348427817437175298434839660773810478658136264898287782369505390673916795656386283920734204587825236555673613688649395237271301985575650289068952683805068484091255856648546913960325944531510067928804710920206321203997589593892634388302602038151382184001328399720763355640525671983498365459183480971938641278314518194120329147122270206757611588590550133738160737550189001906015622597440993011580418695505739227164368583419477608014320108961848289501175559783483805193283268308145613266242282384026901331146878360814730367626355394468322972441484887597513145262666049317275654734669242511371329120354256334738565459518004799937647993298717498817668021435256455599193490935970762097319139606846137942850569202181844098505415612123547953930739237999619998418771439509985112972272627060024472909092568348888278152431676853330673955483852742897902022965852636233408718322681571989391131206289019273248328369811035976032826620632718337935639205601719952002330371237563619087007225667207789420613511823832197788383384684806172435196172597735265588896846856750912232376113641658405510444055839398542163317353748222487046493230731734724393870972897284443073993929216531168651689282148708785684690388328487751937640379097920750288070310995406655270988893589722276118685477678535589260710646644407196413687784745768148884213181745967167036442344452458553071959454159197644183734103952518441782029528902934555885209672574276280231694599672111783151073727661629845762380915902892985666481971280966289762927042801614986670486634412477492445232743170549745484060089031576516922055799887226449514544916872746623204425373057560884738954974959781173295521773690222347374810535335653346925708013824368825693742875710632410273759542373395490348104805185863480649601306420663456512150131430357705227903332389778812869534270275059710058898549782160479631059353838528612917132622697553487795098097982526821559236234977340312920410024687787571258866235949816483091324426635941288700182618064934922670775698041047763048996278698836110177827000897584656662394976007499922620998214724517258122008269496831293262115622312759718485472122951046868882662890075640635684253988903434360368606799263821198264541552557257822624325341614752141152407853422111552977405968761947462245578200028355603416722548387856389593985594200111508881060756263067493089945852368905207261654929866770087941803438277988934809951748873231684506356291835690489955712572787131890743847557119415806604962304131828905864268997937078324860718180795817197263265041415726623064976234975391163938886038054711045109274537957940755202654937419914015583214121618336216909558136024612449518995972191975531537460471685860129397468718928707078608994122588188517971087630355371588675310406952948033947346525491821332345115651623044448962478718020835549664912593916128971128462029799099842050360879440488202734479153880498256115966432409648042697055210803530353831316071658083059112542402114590452482306725055450044949847705226943095197608737566354691159615054087768088458101031045107531199859699979820247675385555129193762239239982382678991976160474328650247146979452337736167720377538118857577784546419895341893658935459392214350386029750553256769352601269399785861142781617065725504273363944618171244698525680989280067842325559961012325790265623101347437053082665059317678824238539130274064560270042123695685895808290729340517671113905144106802530564136022201096474128288148677833926302452240363129228113017485401230761460910410926348243070144824959198362695088826286443026501561297385156905342582258436496189878649531385738799345041040236338393485582244515827162263670053894635492796473545273457355162079094435956911083156846840005957613052597435697781806316387318371254154849660470649065194842902336039852925618126092830882097174978397547840875987202221614162545543606037110917763602532693519169772274206875579863844073334668536508578895557064160211549014830228504304510808778101380911670832916477025110449373189727175503966762888842449447168661036070761140866590683390627100118187594620714511368304081042049520944205069074306872656791809848945382949969295582302569748530265674627698253794779594943025331386397015887064367280254816040275254365315315674453059891064254016236050571350104065102949415885081255096566596737822984613358162489634447133806078564590755340868065435707973169631826966976948569846666024417999859431868446249841587923916496443762533470648279295224298463687875824361000994161747888549220740130242326857053171669901861255142392620044900430169111029802209912391173388142788872380335551858167743031208495776589042409160198155940772294333535090845083413082365317095039345249223076434155639842221893866740672709059874231316324601016371850342035846258308737060425608806235414608562527675541489228709042669299144597746471849430535367601299274459254816234784396171494867918179141445419586254557364975413982780958826917891822343685185383244421113770712757752153186854389615025431174388592707003541819906997970628722816195876267823866374095219782290056526293208192194713848420462674692229656468616881131783447588533460633847770543366194118363213941404686940576896013502113685480722432203392059332941027348182653803761434516119466518145655449564918469341567807792256023825081693486706722386263803215888459806603627566381505633458281777038902773322949879612623379933306433154015506378012168667254552165509032536600463685264702138697859861474398899924556324406109342673589479168115991183340160322713008502211576978898984084696298564231268029621113897000187960424594122385990833430331497015378971321732916322255532333321901351558446949765113516347463289798515563822915886176397667886786007826036713311797166242852201285516794109559740032385675049498306245821265747726999160293599958143900925124941049119121315269347469656661158326841487332600159642878043573989010964696823987006221195727009102915010820813908794880902392113699020721718044576663031313711438372768954392228880500604614548345801552567982562854016334221082292815919135719380148052644501945178545983744033314691554653403736324524986790765545708173965960121709266022047892291557356315241771254905374367897217095945932144892697523342422261744528696308902629460470076432330983987928167230355582733412073450723975211150319667322477100795567232591481912044487924184448554337629225622834691026787437970216343444934873128911846861258779183458510088535644483901390204553355677267818335772752454462603798804575592166352979320167527589371303020927900103533651236526470790661599054958073167355920536829872661648652867814843551413204481815741284109314991690307381420234752834478979764952625210130089512960995047221189240744793678528205839556866322321568444288751023697873960904500141861538570758009465099493401558923000070253187971936746841175795843228358400591841012768203479623528828474569563624681136904507380384674114714336115966624224827803873419762851038077354304065701345542295600832456843864561836445199465768130241680882848547427544654516951454962865641720181307759539367335258226246187261537931919930335312719063257780664715346902225018558078072707474227945707393920015017833188519212224470469686841356334006488684888139171169068213735214769087940264450437845036188704293585029723061492544183793400247824284844649684389637761479246426886014593459827066805676833387114350537147667376991302773391624590001369180401860282371159946812583619166916069968659297187657320990677506953309902305185904196163433027273805489804597968523313570725549410102292216580681269389367653811359372082977061583474897778609454206553797647887331121390294198954705206915078896005971642818991125516687737634861102782004606342045829854791300181377861664229840343363523388799885599887979563978512266542726976326421478580496606664413663873209949467027267134151803808947474768812000908854216671917261175391921911026335719739323771060993835569448929262912409085910207372303738369692280315959121774942327193485617593969527102017615208217386018147682894083479989492436526111110671887482981143312894483166899535442920234248623559974879900173188179305734884789295492167773751638899520022875516523317869909700335435664718007312672188440266903898736067382390437393336328922767699764859815026823780241044857556420462328647877681620612385188300381838875460952981974078430247684196357961493335397818395102600803018066413336579488835769991242459654666970265330409146839193593395911492566292073412153630273210998456293249513053170162919697635165823028231088566560097672988978555167562420412101242860196477452072007887000806120806608699466985009718532436402437704176886453980375728704060118953403422559859085266229279956375098988670152067424905356981617532181745683715335024048117369063931698989678765212026649939426513355287964206879501700498523873177959689620417238355658268043539815364560218010835310657137970294777910971676976489375557357349881797125871423502609530939772343804247353177759279801324880446143902727267117474672241642401758235039548994516041967920574644675481095961568523600042429064525705285257284092244096678473858119336198715655417337107385657631555624123431855766435364519331987491350094257790360951356341995475279097475113910564330054337668682934166729955523612598928230501163363658105291508353771568898733742168559048546839873434300817342596569993460114674587378107999590967349411625679492045859505061143882813435960890458010807781652088480565283289584017948736917284193081499920146209719399346665410322614559097372332591227838691112741909894830324493587396912145367347351087267486371192613743679763484801074748717707769151298429246433523992435861851859048243517896833847494817008455807086449835547557371165529219972228670247476647615945791809305196364189156279661151417520396004097342859822155844390553601580092156848353950467686288580490574265252236890703375961613409967002217317983039525617899325621354664307381424571931071726962075947055603357709905258921597894659904402597975211759068845744514565898494374644309595057103784723728752780662652753816048474021288644403990879085237245424203632247229353570014814969805731016001728544885718979610706469140646886784918713932522130792278023975683150311878030695026605601934713718768876282343261171742100618119578976887016763104580709428143617604054739810752371462638905557456131469757286237396185375698483464272245204004765741628889220011307887898044935276086456261453699016568852921662124927438319613001813066866546268677862371706666190506857731985824362153427307602821277073789755031911962910742168426212510494225412010821104258827813728888085279800057254798247889891634320679814332636412374437530906017458608952264004658020294398480523300369402277835738299707125479382672345121426916003947102992697433268914082735804364515312306055590237512032170662444380279871255473195405859511918933892463575667613128760067687807736932953662461428666934410403315211744898879720896802649975924308604045706620275568761139047833280691706982728955849968658158959074257350656970966604624464004322503248388921007294652383285697472146095253849636973464326855454480248457788822770637859582085950866102988672381904859641699332578877756196096430301611787881770539465636806979906826871786345178077363008933914096267074987960940316695443081866516144997489497656813495393576196377896260157338802858369279881769101152431197374145325000477439160115984216972268711719754088408577331044452258168058798501984733316367613796300849632895383498910133465754269918405730405702803648030204467961582475232618636437687176054607856719374718018653656140142177003458200615803384977328883990389319497949610238626236971485130371000737863935843432772536690458725510986549303196891957226463268287042453771863382567304460842574422058191772303994429003175666516557153801510107292004634483275918361436116622798539245283437368322728044616773988638219766931016533230136433733651271012364513527701408080243959364188186738880691016739983238104560862744733843985238599260496536524654204751678506283876791424603625301628134683920581091091306702295792063872410837955136334312647788062961809967040352406465014905923186054323716811064965985530442721802001787699061186598334733777088446849071925672796755341553015530431439478572078288339192552228304354858626590601847421182532997673771945910450572732307333997645012974383548385174728035773976061083215090941387239007314282265254004275060199236211579032041071893673071841969537022376641039694065467128472603500537725529335959138138115295487468171283061808248941227670754650068904029197837285834602973782107982162236042612722492897353839797270064041503651143532492534852847876228652401505871218025771555550103803718896297589585147648203679335492441178717184535904580168020936791913283416246823618684312109051201745595340244258802448826082628382831140849718478400419146748245980233754109852758266734471130636171169377477267609949222788430127252445392131633141692741641165509847965556038277342285091317272483831393771498563324139400011383601982186255234182097748085397906503719490189553879469469366564944296056278318338260371578840463749231818143457776083146551318105731753037266040084556156680764951749397902180929999242489984949307228067714782258406920966987788697132637549411847191466432451425885291283019974091845516460789558223227697748112268779203406343656926905001283116296310268416697687509232877567603852396605633177531543515721048857284457119994818846592240436980872338639394220770769727418758306867788269515167976020795665903633487214505417313551897503634562599460804555079801161322060699122446768219837514413931134080846148658295997145057153957016231380982869753278316927677030577012018442428561368415671140025781012261761617151450204873080341067026093534896077501091080343532291863234684702225190571665112772269452670646021046999370356257571090833025841494320895762118908542671061377200367250891829650158307437151419725225347960107209971954223880480034379618629082041406758475329945946912049632357076585961411562428128439706042563944369832365575939866643260166097292593472490978657885905796087396074571185085329043945806738146336342435208935743575007445111392971489340808571413936036941682492843973918823102869625417580651443848712928666746093552116634461475001164078827372183040243215747943441044980845716308477889195931705432958934630883398927204453019603589177040103569143318657442681070763974351826125794714302597141527703988922503346980696107787143055774993289279644950290992218325456033003150532115916783022692235861512126008166891773938515350984065095005932530711940668109838956991520396685937695959781987323013666669682782680540634604600178083665701817564588134632021462315103625909573159358071707089174101985214268168507591041692778471027415827129180496760873665601134789712202453454555517437577182112207197661582021693130638435879403841533541114354519850239677939148005544713707419426716617525953030702321633548126207068739621623906272952164002428256406562895136965158237744657228562850881216280380205369089065889920416765940730433022733339495222542511532138662974597568251599303756991863357294296807950927430669553969156830212336680505648948206721739911999580157454666765369855224107104415905266797638705208850096232571819890843248186146873335164357043097980904129902420063296139057541008286251986351176798154370662335003399741527702490203156242134659409144633374436391868340836538576597800297582933388691951356271742207760861551521795253402105261310972283049401926465629919004858604210394601964022582330072210637974372350073238849026063008770603704732438994515860166749229568339936134032027641408583605793151116025989985134277115430978688502008447715530385855371232412782175319025753223534278268751148993813573144186972371414412939715280419846549186483941528110742694374896309676956531704136126624063226103253506347828054924583400951074853025630023737544877228335915576669626711571126034960862866250449284008839505820069661836035448059281753183650434387407770550259016754988146609667180874555984284558509629275194823407715439049931971275053442294744551874083437383278380587039208177416370516246012928526221168876556756745421056159763765714131044587285404564422852156425834982152850023743322683249489971712716110401742082299475879094261183639205641277903871766286729196802346636755784539085668031183540382049345380419216936705049778966611872335359006695617095431593339717591056240323124595187618005048711938938041045894142470824222648996927380340276861655365293933865411447850669462002986522241013291236253458698747759223128531636716972574216431420034359164823221901902221199954760624333345825218767235443310481302730813327736789384199260551849408598316998789572435172290095340897979825128353928511120328051943306734760332598388092833409117483958082769379415488643421767614318655129484372681810163307658414789554414373394336482720858095248888936064233084509401573386400614644740549957844428751995812067911320388479695153870226490053958689455496448107371760689022250649242381728775765242434505149979325305749170805468509875889982636607709067709229633972293046298531602464245856483313055277481965900314774027400719990506445682651580088778252341441144398548848320120976553576005110587383450370336918123375999927655858820554757392551899943026969835161389649499762091864636538782201488873791988885104797520141487124822299207389630580486472187524122814610507839231276390397029930879449237611648450751322303183454235879561014238432399948072607514479742112483836064265794267091303407491372767022789632040766681727547692996831799568060291444502696993409992496581571861775083825252463182309018493189201623083605621024837845450321135931524098266291642195360280067094590880816820772759934213365220061679780314686739134675706791122620760018663028280696584993823924828699090767972611325010647965821255534241606952727122635311293113799050599536257446931063909747421707598063734331490059791005667256352247882375368913666460846930960031527865273402535085648895166101760879761702525124204709179486428908396325814353884405806909952247086834405491586141206695083301493753085848201526911542013673539453350063637133067765402905505315453306517346329961840306824897722765909075610536330186938450268211993433776650133228444944109966465358137509277271321129690557245002361050468066343247595301103885201896312622889170741684773631001578831777435632695290283513072808805653612225976975079582597101303289840155214039215200248105901614464032262634099971970839561609854035523388179212458207967169453454230742119552921690921584251919006472482358702085541861132787577679312646696543107900309857513235663503018833526081514696405410963714069131586111309120031187630047415288009665707828479405379951956070776707803700270251560796025679123607834706437989888175591935345159625475767849702142076403821347303315908057085893790220223867804666546874488555321963000575912673631231658582302608495238826542750771735307546069174064708549135036454072244629232338423329436608886037861224754383174562777919692686690234197882714259280432220188235833067679319306492575785193839193774734104272219239377951131004680758418644867791200503852185215570634884903521392053736109013286483735857591819894779613187777068943995020591803475202158294920914675001210327142104426649395277510294028949799730909267690211357525437200051313889277368685334219283690157902096683221310624083846776922939547778144090704186431850160019386021342707842147328762412586710441055406395904809637004139052858243444186938615053800761977999788117081822747430271214988606253119129359113764364935044328768108356379785243087056283407096616020544643890728439583430479653365392079113099793705492064215348794397700152751294530647471561108675411407882371767379424709331415819242727215495066097968213228905720873985209924179614799522825517011868645853944868582598808442134796897116695842393143611657001156964331395034261830174940938948838243061469491462300255776774367256839064740684865302671421205117413802109373035164572247578732769011226465575115768974151106398366202908289311754427537594600201890089461528097032810801884107718819154215827567786048357296176599943172681238064146001912225544406263605069601667249919706930312815966689718907475262348990430160692361847214234200776637563629693688067341419420458870966707935854792142424230089633685709271250047078731350267175587535072576237577445921879010099708955243128292379436217040034916075474186787659208557252666396272139873069403223144307763598955885599396187665885502974665234465415070275423604872575885558329348814677493923082548805048091023444634620900317639446497278788325957897002141183669767171139844575742598268119052043852628512947666104977420571117206421613855478835882060342581417916549283132587656040368431581684181777999933019065704144131626759057698471025802685869260826038766014221966692934613425228918424590913734173224519879389603295711362304830740007799579488901900220022622023503484262868024780924135002104788943225409763272409239365910327303704562150373742105824113422803440836507147683700690188270042634759842925753099146454868267563195082974824375913121542051851261196986736091109792777056695417328129000726180499711433710375513107555161065370176601830202585982868092688943635821518937392267864442266063453061316537999705422955895729967832139132379241492358960476802125249480826816398353131653400955591322522395289615017791841006956763620929608161273631717826254172258516416981243731666966115447077060095749459840783442023050473303623440627974628997367408425293228301618648399865056948194871843395693600405672510217361543456546117728957426141976956344832180882786295419977846942252642717686159405712194965514478866917560196064700159115043722104737559473572909465872554285764802372939962743670253305730959021417691927836832438327100440853069123629464104900658179480039708264976313291468923018736437198571410574710919677397423977930395087710203761189995581114973712506726412044046413012915634407241468208271492664693580524854586700721259083225621291249212176912977077658485310962452335859268996477395115807881656088831254360595391521578613970580757788010316301766021583681860329168282842667873364634166839492318454393852937940050527556825051876769023689205859160461567352554415622999452166074103736986723250245890883874389788163868071528890267918475106120632656056299875651828885026841499463752861140706451266207535131954572381727687973850472303950332533503633609370775862111265642743598326065439091936305084819185676729888389786474763090253333151040670303778616939917505077232764909413741743252916492724601436476800976463648474995727275208888389958540472304777635242890166413264607109663269972586716687277043555887349732537350769603749310279057968404481261113461735487328622335832142941673698094779230842898734271613862963592150044496834075868882792466010061657500302959622071134685358255022023967379675533792634656185675050201441564328005710000988569536713703769598919906858960784304059984569610274979078966578194114853971673124207617470769004168342521465221801969913465431107734245344428409953542104692179544597340519643804344235066483322701456500249404875454309618303014694840828805194182074422770620366074132616698678912547789297600739029186406631389769832461340935552382192699760504306709617938994941637427381549635622490923642718727409025151297704851494813576714267808868070312368280280512860115138123995261684096837128746920428316465677399979315687736574598825182396961054127417326573622276010342272200213474458145324600738067514376398133946009525599857401854811943860774971992695122856889384046745488617631451929895840421463838490062791464254122439165667373382358164596641514334658187104633480934212228176935114639674234890811460724994837195158740609730185924965512224214075447758573617998095237177639508734236667576943230680203560855472039632925028017958875488647474769561402192895023450155299525512790306167066699703288238397889825778432484338183095478044888496930568402441096336934955316176299360563503785374651390836533690051661728672362433147037844737369454838252414964303086678784034700315253408735363708595514390144312617567271746669198615709978472140165864617301541001784404162375018023947488187010342210292362235474876654662233489918193236404729479954770128955464246739720449870230380181695844943137875889384810786454346160347607855161032340238930514406484316772556626837945533602131382811082909424883530111300272211881677441860734621344470838414288701317629081309500837304556898531550756549907511321709708181166026985461027267910382249537545109343398290756386387556952644359069073861499933203626378531077972537438381649240735214249064141204157075272833200914856395137412755292207306800656556525906994762914616829405561641010958848569102843468995217031518755312345525909429850140784645087058735716259985088970223419888102988293289901672168919332158513931011874988070274220443553583831087341255921930803480110510764772771296197263241424039326459043456600341666603234999806915431015841405434049808094391355568635957185199091015767942091977032671879042060367680652636041567260840077100968651290135926988329103086008614970991353056195366426222995705869756080445812267826305332114037320929803909442637643110063273695042528572860068342857624229507284547087877538300692097984003850488992688547161698883386796350527221889274020464313851380132871627444849646787199861434425952508466942079734240570940736172369463367596002006038851453070259049693633597476050701020668863018849502188589697020919610316857294546742572715128868542946843757658217343354698897299213375282374584030988815014207189299222338004549020300674682375513681998129868070039442456539682597884276905095921606156677711390263712637967008301114697920329742756322010483097149704608944126049668688328894080515643249323342490887386629859465741540940173791880401994377395294706144516272682216341331386408414426729867876284824057314301656447142702006799223011617047085869623595662418558314476726659659936306105044082084364730050310574667659700357412175376775221687618197859225858848661350997391922414975898558169833227831777370490675148208223199852378619346669044957798748016770775630902186540865774913793849893737414703886354350452618519321991724639607893206306062785145336155000270573337655223527243075457151878556909784528166640117020203910370264309211911316986239388737652169315158350518626190333258783046912011816591390352192192592302309001757296354066144045910742730875695465731921302497925243696471188706013462280956269258929497336690009283263260668742292764249881816695126744575246173207235163730038516360057554504635240771471658019712287365166904159724730508408847902522711525768610966956634308268653787802140948625492337259977311891146379604994878905662440010712569179720475851031757131958209006993432479312074819550239342718321682566553127868235754368679923437541160257561579268514848818618129684461262544173996198291245754676412775551986049506824555314301504555686792504218191188419493780421756760047976613116040993087563168462111705431445902573699909948008425996560477447942663990100302839647257986117087876711398522754518973563941271138544503083241731982010914186095526956083961095663809517364507053797626700225064489126737809944663013866443195243141122314947518079807136237883160015916737214867763327614222039447554900278980004492308185826003044086756407881386110166025915107174887708721932784924905422424984671527226431947167373795654421998650192181934428442095998660084880992944904945190827255754613693888825920909510286316143360883452574584439035464517988682719569278899167953202120910513505751338374721319996317487941452050661627060550640375954525711265494611048480128723264970422785561710341751658366630611059837626475414867293749507616257404061145812530479187973497117792918261188542833135739728130135025738879503469026829043898578944202917675817851575340921623003058553989909010745323076050707444181714922665153292526877043945310614982233615135536289502753987754213695901850155295804592344456202296595495718989967447021150981846232868848649860172460827760101264784558131560019194804345319223883969082997408770710391418195198533855471172048827915051147731642909504073365044577716121098798461873474318824512123092827050571146597814567208827952800492075537278587799490937623307373675182190878894633699182726128664408726489366217972379403669197494936203915525000557193696224683835091753461916786442801627779727321454561805915330404430452631546653181366837433761079460977799958306910077462251413625147253561816020576162798348554532103753735045868874343024810552088003679834718825830745361824775884620795731191515145101445433260141724353896532434697098641080754396589726663169652892940658245784519009342870016974894833706898573165325216607990475152708865300995927539722039978962330294513464669922102633835729783515635112245063241134270802518691550085526184942932007363871619347652125685187996181698426562465765227848553945470596554521669119322019612635157273540460303567934855399739139764191880725727664205149998697291142139441974802344867518461981214635410739520426925625760570549353910903929892131917473942879790516499463013604446596782703563664348502988836411404283934233347316708370329693432031875627994206410053503602218586748268870099381213207181830083599021211755747917343174762401808766351154035535426323822769485131121979450939842748474360256970137858631968688527313109582056500904707298213483890964103661452618600318473221021755572022598478644725836502145028410796891838070546717560340771564014474398120892249070151757769612333914555113075816172599440263227027374812806221738601010833642618730567220926740194062793430871159845823261228938598449574752279369810084221476730511654868005505541567158370621841521153135308713988894303489826514662162583606246504368473589557084056517614878490885527859955773999359695804621822909454505491716189388546237347096310786000325363828700595021336118523408353210543956682885460828525618234188616406003402176308006304678777262394077352446731637453522902955406005366261221226363240080647118177801769503860559731621120306422628087231701716212928994038941553064051850012197134142652881064295840697651567872949447571627852030498494639761151870336632745222862851978324898455941004075416828934360441114869108171847898981419766788771257928279922634833937699845627272048032610613208602077369444021992679774005349138441099677294160654359993339963379638941174244281315877110208242686300758324678632558764710924167583154002211640301125020073170587406466905992050788022581891005946790525728556473146075037201526218374546903188386442362821972156002028819126509732111824960799081470389683351463299747561526521792093863147553996087526526340092122515468315622274766964600558664447240704285869683688543169539573707921193687197337127424423939891184028816635959752407137076074927831338347433726427320925563138586587444380072745562030779383391108352641540812678430682518505366426095634769313852186006468596423851666619918041976737208614094847540104390074462303019050870067889886470185954343699650780695329950549074994895712566968425710250727321162072182644440522145809315118291753043729400673510154170963075978587145958716353693605252569080888835112017826908345034473914384133119728625930720164883382511542562465884052723615351745335888905186849379901259734468412314719025499663186412158484853549951984838070573765598711022547499276675253616303152690435986442804043807197595765802897484758421424118551041609554228374969538193837115357841968231529807962899814442388317913210080538669929080560018558788561450800330753336457776586728259861377153370391389322090564045328185860139137672711975794250730448506209159583961459663788489602732130229534713268471112377670952778247605594596661556806304437110217247687826159228251718688463348384081322245654418232959278712357995200081047643412081558680469257673227985997280204209887689809292652908103700550762861364727730125434539932583416401524868503408384341900009726902518873707127609831069118531864582412599551747301188984545317323680956751891796048044711742833089058174797555703736425054882648443872376982187961455974791432064642364951839781872781780454908697536348337941415883129908995807866783367283542904672488424130457019052268932285470087098648999341578941324440328247564294061273606411565236262544773056016167711960924247985669722814024712440612779742016726300320839839611899035936736304505425248095713595578503720695141926897086999218992409521656721415847554267836624292523791806680394504796236937404515114931611199254962890064179409307790308808958377695197682922604273445689352692479188729786626535669574835581205579474895185823019932127726433647932491415793070265521426104887230547485017436318874146717772890505926733807231163983926335064524444533579544638236836246353645484198180062265214715317423137154409286277338116567832512645810486448344735409783815651130936398493163807944528522007490501052988458066806939430180258033906886785663310452156700162914053747482880058229172195098896195069324893926500260387868845133687096627962324212369916486124173901930576762853392221234670158886814532896036420073674277053702818764086705125635601268299576654783668765545238916755865610336434290616236018005736056410262389465846454667566863547426821200216389604283036530118453215342667208568511100406774349624347601538966531234216483107572215153779238510034653302366218105979370435536318627948907620223978265115198046915826991592336162770994255249589228018841305300480710330060513679752626162277906201070633815287095187350733580203823670517603841258606706020829936552202161965144341266015005451699105000843267710216692525840466572038146254296144418199580468594299203070685593158878690393932527983850990333494288054320388296359801680879389400080505591423204578211124562969045012367577719506581829240493325572975606404559933930728761651568453583657421584955220968677052358641374040677244239477432890664098840573098153690394302790246605766302731313179101699968924339322880461105435315842660547721241277970763531557145578662945632302937002290489333174340634369089435387419538366031410000723155904335027921178858904435766741070801526140909718158284996620798913391615687742183060353022322083830232124786049780854508615795044800926235583142113033962310418409750968912329024503938993048414046751347409316592809158275670197927475484779741356044623633173082343462963991951332855598989729491051191164028920416638795213217826619479668800898614140733201227501629988614992975686059513979663104566807198318856178503384630614420078866958022346546069393685595162445963770837908078840254758558336299103864333252089007415958990417545288436437122782793562461851800919641697813046289948805753971706607395084986031969578577838487087047747922426559489357843645849173701213686602119824713388881164379770951879415056394033273710873623120822373127098203132028195567881475074176438417877942308919461132064622098591604122521997652138859113864551528495415327768304155680963747753157836563438852170182426132789653989934165086746345822766169144986521580338471394867464570308678067590341915532245778240423159018087611715314183219367582137885436337301113809559824476424025843662514876301085211492037016466877551307238963543351517814734632580784191098614818546442330757386928168425453495004087255457209226254354258437733847756668061470163934850386677639715139985852450829726318305784606137373272880340643427168276645539455229797079164424357916460386231125977371585339633076313504027575547664081531908345535997005074311416895451685268206361493288847808237019202063690127717643158694668821782611418979357437147649488082862085869959567635045567313629563089864612199585257314194057220927732400888538886782805814564012144173430361138597320927401036536551867756337097890108531972544228484754808531509224102653368875352120825675271470361149992328584967737724355820256299112380652007187534210545946346443392842615742913300356393084252198830924619894838866404986424542167303923766581428301605158429170074895510081195596702310935116371746624531997155666536227296079068811952161994914803368303681496244894316195634910114943643823097948253239470690493339573108383279084952881395727948292452246083070423422369343292617662945451119155859654726216822097655753295118500206237142881916763575883165104329673658722305367817933080079548570620185407292383080089240560152868665850202667258565932053174511298170917844192398429914800829728974477278728790163504965791048413437875564587716121216779244632331234349210171852514224811204437812488832847312214277035325232792299117400764812237899827932682467757623376580932079179497134041850249470341309693257699604972915600057064985645508315611659875168739167706976080227528944774798066872728744713600164529285486403857195156372408717222756258529644812732397689368520791784635884920124436154237494837317953338232632613073477146767889761544468650318241373550545286763860580879502062411604547249916573275147077124152301132136069415983051503628332987574470359165298451334997371763520085531219039595529492234332686243255048145183082048486082396786388909662031012358643532538934073696765515270171065610949425517802326395607234561200309682645128967220234182372765589880605161122104949828242850181328771756497342315533630237976967057051699508523208385700239082568756319977457792676749023685436467366437508204207103862849482258063044952129785732998673878815309422764027796980087823522861275904652305059384455038414874806080815891914302143104866597141619141811026218928283234117106375067607642999770846600169504745196145827671098427094940663817014585016814222853876637721275218121600772887852741422642842439524207220800359905655226410261779949760217295685534712351209065468339432869525209492856679465356540317735485416355991551150748903415331188080664297764602689663950999590019267058916836741814714421440881041645849076367988755392434691699234540300713925656735192792856198104630744462360938288553927166491114003016175567204763432383078008295448993494323688809476127608385731961340475944953604981542618779875270616613837776978563210088846040779395175297732108491808100665431818848008053509087014321376528630585554808584847560747697548622375935374971472449509792724580719623268375203343585423716396962912983755117554485597683379607998223895443995797978006434569372562112081650837651598636533191263519716838395516632829919219826034571808696764421506102798834090862784866820758960957716493358588369371950903734094657468473951421963594537227475779711907822497721051608135403526270731691930493029061448515363437743553347655434241476660838365695448617640293454312912506374339173569023697109506317511475413724780038117233630298443587886824387618598776486007805490910312839097954337323945087760552893301819312363300668920877732844315269449902239348205757772421985205651068168963156662595529269970269131892342587665197069327583250914243335585732084167557403854831710737638258915776900806117943029756527915380433099856685177633618081179918744621313050307805427820030346136083922110227392362100024032193265808508911621310158068133681072409720713387770247810455119578909799123652053812267625931145494262149229905314644468084723478884638021420977480760245368504779762104587015929369026659881260962748830977668432629801081596800949077861417396964453645590302190146011005922015376995632275253139236193285688541720258345038708277777201280558981938308778675157903041558076345110550042338425521839015521937876384865338568394234647653367611477415938852426812663047817099353749139308030777073484605989087818064050028084541022627010315009575664790726880556369077229478890972452706073898980026810822333699601348844150584770661125227675799896634258559404829312775343091982887951880372930019956193651890723132703459357350059142357500912460216375467429514884481208485348041829089158643300845108543444899963870863280986342895819011842611471036227043338570372545376549664093393292515676644620356301732204635929135150323584896393885294090835062157086952510277739319864164810068035713644653068726624454308119179235602549205871636395315301435155180095111678967394635995664239932294245045022652949888438201567808417125166313304239526049260334573272644442769549147196700906403390914211882760115893863896894222011980709948581829589653592293753769830628548308006747912893734498824726596920090931551961292015819567902238801710578739833288970981435785674899008490319117651193709357107511482417669762312195781167578009971685384789493371148260894579835208358132701377595258305974664500436675237791939835133291781155386427959974247603323410821987389669179854867512720778053343850093960022460250452483828659761991131042816265232276760269792686812544907364743363119762453388568872329406577798058154109527597052617725191502865864216607662425747861173329967112426079674984473352976955281128708153571704949959134717615021809774938443997743469062660734747842078830249357159143167057642063735010834482490648779415734150706530197217682240668424036042466709318690169213637952437510342610746425006447860976141960944182596315101934402449284361036257333942139923569449152379889945380641724284811479537984997813899167964611851699308516806433331414466741352652308332900913094192047831701518539769996228462595595530698044024105275307995071959325006847756947707671148651749423256362222891324218815411374240759597141372086700334031479631174349488977819882442641598903089037904088488723186109900073522414021260682384489011932852140889157940175859508485862133979386091861707237254998643691397945338855496910610108408648014950628946519233725499958016254157915746347712749698863782595352728793624168922412300122511651636398880846241953968469731186436213730062040658975399103174449895500897863772410189464233516427252211374023850286021589144048713012674199296135079321493632049650272504467311266143374117727423576609664938464692290409244274517565478020420776613126019176892963379610842843817171456478013961034206422769004980687812668613288317529457704965876033153382664563243478004869491340735848874348331699305051328719848942427622778127356852816055756871675633743204813949840091171458710073620740405961378993234976950024103600387240784462371281591079525387176504684330361187633400910870247742899388046480362816641107499044593057375446404104685824867360709447906463974200753533159999956175064772392445943021594390264631289006093825541537040271849416084334065969757264472436035080603579371460411274011786901875480097862043334821329441308417756464893429574761392464285981291947290657032916352339283909316881168498536769294964943197928977199710053480567683340772729358959167353190571948816760898798610074702106821871275593331696468465523961374877231978670848749715981934131539877708776440182963758560096695364859498112489473836841846235743796215797835468424692168576548936122165989245872033782348671171210135430349567456614061619732146317178529607509816532560981895298390196743072735416389414153569606754166279237057697478440383603875898339222360401470813651327099692318209549173470785811842013217018598277891186993091281863354438558028168492218463258004934476801304619398321374211169822347506329481929580327658099059246566695466401611774588061399411488342067825545242360714528189975897692877304039548488227638859885584359206496705738574438533478287480726325122484539030647503738153041658088848493530238961129268905282549582127417397219760077364178334423437868201322778326601123859238987339052633451163667735611990833446604081679199912780677003845887773921834458748229671780676758172232229753552895705665780999131496869844185837787474538560210916666927288918102347797709930934967744379002579700208601035757112872543641244238511116531784776940234263459701774314261610175353584792151357019603360215241391303461958670075443206251796787755886233640074832828369561687958770692037841035159063849232890907072882089669771548986076760345365243166550481180859881144941742291465226329442516626562229443678898152547994064686389765918331096923613762384926872250822394861987794403241287718554333342234381438452467553210723733523788109221463290782613096596778214407716727690761524866535999811960120487838699836453752749826572230600810525534209353299665978275595564694521884625485770955849782495308786420038947321572517258178591292779159800724681461392337618003180534548263271557396198414339801134504570739768607172846853153079799326632045754730258271094149839239783198466758842662705585598261974715479453675803103136346850487345987237884504097607236893502173967352091873251795907965130755538281967291480303210931918438599778171595806225390340111656450302698167319219731267250016341407444619004502227011007240137081984436125628049201956930454178293497248179400566773836868729649561500718352762808142742295788956743821027307004937739411391996891075239323323029485258972066364528280283184252855927099380929593561312668486558241581249238066167898190612143686430030278060143148082273164633945575429990430841851374706543975972639126630049084053784409918525057705695612401117566159394801157398342503514405759715893446794860959957150804253801205924307523962048410068824374428070035313067052554436948703488941337703574202670837308612663626407397543001507118523526903363712982125842044786658050257720212822003653219312670208784465059821956441463955234909833854220469458506226490073971114065718487195933955991169299549332687655773679888845796531007873642807579357962773379827615563563766384537241596592018050325948630719207919957891568401683765400102226695259187144106962109874391180224529008038726296131101734362055164539601603588507362834506719328187642346752058657593654884232414404853572914151200165038114312285774767324702530687662858584212411132930749133822350681397450301389956005538676469099208584351541647863745887150686654877597408898177601880254783400963136030584335014555688732552924087384727603382058843544735628430777545147084940863142235338773468441454738746655463969893159213397743551568360643526700401898349821966827984182903503764593550818817920301246717220601161031246795085161988084610233071639928521230306994782607073456450245617489644499537830562245936782592715479067114337332394024449398856937871944500205119943785314318218405106069896874873067477445775270160722724533489786463199265034294133419002346182470377347869264588780389377597413612483062197692860212382582447418134820408063939105470404855219935704970991616929309413677633518257409771989501694842932088637889170944684700763035800961277481556853102568490928696249677589712266829849010034173442808746236830010475678075363767488473753332620586795371048224725098333680093490020399303665908822911549173460835087905896315455589397663867816598685435206676010059512959143099342909364036901278743889574547966685164475750025871984007961402868641694846155082493538461008059432630880382492673835490705810576337399303611515056415201939519347816205747303803924392576011071767259051284482880290818188352889421465883445135864755368115361320333219579571842032244360187360462529266098616013890226030460067631361123503776336138703604561446833012001190346263725352090552381608187814790088484107463122526993537425209786834819418505024413278651183278389817043590139877619677213553399550447747285524206813381805891745975524704368861725639705159389529345433993367915365090811163165471860373658219624006607392625367818974137471547108467934313661119922511593685909231892657762054157452751807779709796269266858672950365051853395547426263515145819753763822816335269326840240526509088369680064348189160601556116569979919142021500258155683040162397791013480005886776375028627963691703161916701340946459082523109048119202955769755703839651505717601741816251841255186191471690092571163730462435664390361834174309823055571076848451791521307088221054641608076427345465156144150013163957248950153676257408507308517616709461014917766629323107562734934499997708751650461966134191641398454754188796738923754200876214693690372919311852773889443906925374001693205278685008230536292111512658965721143132374134761276077417676794196810546889310303094242146084500804118970294756108163926129678790098053962630933170237931844609826992950672568745619036124764167304789566581105609218342820344777519868262360452162448085199349183583289555280243099469627363223757988475306232352379796596937806652057685888129897899793499830460577837528434439790803799886891139690064846252470954162318406442279376759162806844064366908449574968224312237594940517398366823409490214595568704532727709079629519268057762244717669594488888003502792903387768437238242215683327782989606139981995505731878642760306999003633771959493696411380394820424440068366352151655624310572638670660279914908927859403656065170941217535555198260338339398293000482362201717598761315004873908281505099157583343275358696734528219301916732651160660739271287984502874930820628739403910999827821407386096470045304189509298221721920414157443027685539824608519088804891022685661604469345387297119441404486265946331880235572267585917342995735534434811761841376916289544310257740600046091777083390428403043143677467321214608058920769975790182751360466945102066703998192565802419990006735789646413362146602816622428290612959286188887312920947733069312157818480312195289149334841892574349748946452358928718581627361117305084105817030829385926451601219960269890788760090951260586874868132695735945841597952556179224324625628795089968391142519958424747604601426505544725022487808484907553226937192928937615997566213731557358413144683750703095277102516416135034302027695614257398064695446446460257286975003152353133634826456248085000235938638492603343267394454237505264785599223975985474136272990955788149870562443873084477672853035486344534527563261390871825761071855360197917971321789350868388477473333901428713294615479450327052835488648573230615139646233476322679214614570416826352608509293577044471034197593565254339866806175810798823348040490972430511820736633474036500625473477252343875548020066186921592521042365906734226767089646240975855772181812571605042141577802098226377810253922054985789208087697798197547610897612243449498574150280445140758818458546948201801545466362774610578668649496071372343181604820818528255133860470350241251035244465900715791595217380193085629470729133039304844080657136480260088379491757964963966015532335109400344391243398216897412613298035047627313773078831117946161116183222227321075959906076515001668910575792556942436336097233508089976299952387948485326643116621704543843947631271949987965866830334491358116696865280867387255654074169748594120528893589752482282952083759832516051500029177430701300298181636530249791316636527246516613249301439604134471698868229945188297481509881929463934652021641333285441485627490440009029268063700380942532426304531954484251220087043464791178535613360320618529911341917370484492832287772439245064966581876317006222123380029406057953535221248859238155877863291528020167347409316545473368567570211996559300614559813962713881540341481859852898091254256203499300583327247157557181912549657680270614043564875539078406098928410192608565001116957626437105430318368231845488073287158834779596218557525525367507040687858106597521577315165629977650037849500070230359701078650434332406059149437657397837740804879284623569774484644854436130503472320236757792446278599693625163869142575692386070532738783129165592797070660056708049408496668141163086027358939019249868567658297679720410700601575113635681004457683107221709143642859728271281941454896447950847923157658226045798662718609780664409787761691287051778726464283978681799670238360642099404913365088056351482865414991478318271602141512382925233881422248248325576276304363086054613971766185763422022500356771605241803041215298297986986568264011438548831671739569696383720452638870427971014722672637372328555897173730356131519823872124355602042854590383598909713142794449420524310397154425958457966100848105977443648486773851890164723205976966632604957510724684039520132422516100506789192860465363782408104221546225800716130678162684665888592201695081444146286104967577575064117512072150176781490817408031030942648892245307336674916507162517786689315878324849540934361458355939779394164016845607714126133990782170840492287508500604642529220205300048401681162628414937643625539310435987205481101677538377691148158057168100270374470128846006855290456651049538731628248575222258259402634926228537535841527727926660470534167680898832296557045531456883540299388416295583170778645240201180081082402284459281512423279035682509853280258430524124375952790573236494896825904237960423637791107140663640204320629966911619969591180109449389197824589841211239675335440910526972494112259740783103472636683270830490041571990703843869084547773072925311880364549272552074680487287534009037649407755142397778351472358109722977151409496483699465330724817092957110340539206430053500342665344204325069561738186699871066069620722766989757372495387837863993437752741265847465406305114706721963941512343066552758330342609800592167589918652205110149172527447649961131683586878659749703423357822013691127383487227844585454853065301057815176455574280246539301319020655635898252927252109933524142773366216082305245347293950303801159588395079158886115511221932259078968861684311488125452386391857252227207577390526828026492544892658490144827184109830760700938999552681072727629361481101602403167627141206472825979418323990208630120105960854492177445971113913833255708922770523075970159074178937639385774000443712871469773167478855837344787556708196598493083218259761570509055538483111779947989766822144835967758532875669179290151168272736824608388175221882597250776538765771237066787681590886061217451871271255538925519078359963878126555575433965332604388094963035900793226603087152745140574448707073753358312187867118097944691171015984470902834749301457981986092298725193658473617425868802615569521570774095252828725412472755818485150930806864772448367340215613460594438297707106081781358723782005676748481037160395075827357751486112621116152067139804094864611513010482669071712462458810050849759682014136669584161866655676481597895739435683539097531574672634385616767373388800519563218918306883108027964817364727880255453430515166875534699371069639807387772296595988420174468175637871816064868542147711510933729599560366236868924691436295145149585021119611067769733945176142510898465546738952294008370488715880103705957504442616355156972614504803386818024834011522584690411377806726854091933674105053978036706381802525775689606985193707456679482097936140325194277176585137483869837875610914142949851177360003108361185069082240109124170746478992051847454891729519684567775032370786277514279727684229067289295647963118243020614271745842713651541176739503233023966826626741461797588270095307424514705744150820934591537307459566093367781682917345242561668397819645913277080836777021501247326043953491040483131720325119372062396607612783371688177804475437630468472348461565329851309934109663438992775680996264489352256122957939023522150642751385516507340052632428545863880736158937262827962226688694369088796263519899354954397888012120632330298744091015830505663809749958324228906163104927327044242409188432411788336268728591035409536005872054503241128728438476657690479620627116214958164600119847237158178115910460094917851877082252187550689970965059822252536810759029801050668420889798384601401578597118662213565232709805213575552259017588314778436439968388372898418112019353359488769795701682231450372059697533516163170299117976386050361843789979273758824492020034487289482780465622637534182297218051690970627471021828807129886247481426885999427385742113811735790965536115054805059740368946348778464017128983717617957575163812813818920571092772458628300959187968630371032989533531880246050703193899828998529320885967001233515493650423967049585935416002691578331004578284370372925835046031194965018765944302470941999141352752098860922917070439121588683566631034833917858432382626657009630157923266117037736917749340099185064734148253330639197563603539896179390477432061486861582039999470416745888423430747833444642129295404227376050421424247334325797587341254323207243919730153829145244237236286856196109303539989184216552977257216246282447692509323119692874548593569242928591467728961778046443604030624115880743658090271258340719069702146021787777280197496729252587463272928031595016688757096573441544240101568158095380256729107480194074935204064370326156762787264422623382987947037524407977344278630732177856001926319563592520828796072381156526838973083626615084155611947756283820831273950421567808554857500967152638277067746974280705973553474961562012534127237192620388384535920102727103172513511827198200691975389719839141499458200945957332351582624498057074472337476379923710630587935879760123251911955518378148058221314731880858180573348668809356180836484918807685911896172988544990504626968781552396774375043807246324480090059124656060385250682105752188194934709973175802563170605116662589158245787524462630131945766954343066982064925643418969795233564388338750584958494313722625841874771564769024802957112593528975888685042459034988431357619696819836674052439462670055473108356151856085080615227600528463110220948743327081752385369874667333118080057803358826771495546282178819520810656183722825981037245332347578573727513523564909770330439864906962422274282784835527612689730082533163538278538084553405338453275374890368948625773819119276918087414604578845586373400953501015474871169988609523801268278604654060291994309291296733362784644056593515428017723897325105507144415805823178119941197084861153778315894635236713177495295828621887011420728006094173690887691181302376254226379923695964799845218848798032505373470319866288689391450922359239234321054762226648604281914238279082262800935726689632176026379479803730588375814893593832786815235246071150802919405705707327790691526157023351295737537791961062416969632449188998568567303836612378580159714167381699137174097865017703712585130614987712353928477280138860807263102605597269588000466055380327402632738673984247630070168163715293020631099082503532660197277581960106943111657624305695271744234757658480268100090567051454512266720162885900002169934910850233184430051780808625614675927641128796233448881171765069555234559447238616307203252606103093301230900679169028134094656896269858712920868226641667661742730734621680150298338272343123413550949995630600092020476045997059084022935245946824083205860556184385010355709147080937035058550418662087176194525977963759317571348227295902511753758081059769335759970171139059621380919640953645000662161405257704528977566318633064338845181036213624188740339892292122987769842090170520432726210706700459812195805982223731459408945776749318140537630320175892957213076444956228752853507869450197700587777647457696077867137800153813770475917339496895533273689940649549634242392888714230404339290285432314616564180954266897220900006718208972390876279333652417419606780864954861766825857694242798937164588619164742449118398210046538655269440111886441037112731252860004994058024074959659849121364845595442537360128823179512755934632500589969072651597222133486310453460636729527776648910322079449409339136265408712583993548816838654507627670898156529985134295047181456438233514697072805904959060085392267252331316691854917240684338688507324447256789847005582223836952380917216759614905301508555321107817874103135972113002264448527191735677955935146170205569557485551509401736962202529812635642658085925396006095202401101744065528204054946392337925629088370243761407524023684811069362322342094613327236199223474452057298138883850667262541209648933500711739822551548232979195762284227302343532370869703675848828366747154776178791073521151742202346179081594569877372573372360858772615424408596558830560441135159627416786216753080754148259773365474970532386120073134600838284330697001371456814815101876253494131987644951670530410983308768586801861214566752666828383356272087119711759333422661424057030669196673364489689763610179538407634922394358075593187313684693869340989302942575587475401994883806428557699922651104655997380420833019686804034535645132175747024192518398591652045267463356000575203589984195925652742997070014349842612801473506698770625461168780398239712847876739457762550973523829560973324772049875864642329244308724882534519451390078191089891847183506100327437985568780824943851403154150406371205073353309018660974530868030852856028987493635797913470823720515407438007453738935509981072317634651402851619955775838022019998663849503514696785115545466769583898195810473396347899687021904514810754842254580923378409368604762965815177765108818575382203795423804553957865227303945290930585956735180638186333031448148883813034148652274212547991755990112803296096414406679519703969291761350057312693616190544497780196760250835784617088809821923144841176407575883333033285042237781127660850966714906334656170928200411922276128539848373223539893889870824737635439891080012745858382021325802812433730033333107911732912535603305127955894367493147006646565131786169075396432734147663071953768747479835942360723621129956295425571648626892409562393298221545229432065733448738423063154314916138943625634986563773586927633376961295392484693679680012888883735510286412271817752190121091928958818309033958958610746871679643567693802078058506527287416803569945758084105920413039960608806204480967694055779919367010211481338883276173172294098954568437292728149720226477441536367981391005936074961236003842124486097514253937863725183980392200406967152593838817848140422222117572654302625374494291483131820145978375502333140362368182760369775010157645804743020139413974704381256018941646167769391689469193408102683239891771453791650810363672553185062915307759460819913934722120280795813319256110822824249430727918430629366990564427517399570856991990731293241789436189786227649714894878622257998608576810927983382838017112721372848885217641962454532774948567926641066550360825950025699401649233602036974876392268641679473999169741429613006986944216732273958713722044983724960676551052774040889916344840323723109387198082996558777610850437174445605228219924335940263239260952011485220743964094354187333933984230019841303943352180123147902370969531162355656845481498713338394548143334409043802375345402927700816433416137930796328808933150894277369742294975118014903619748579972682452631733006699987582798124326792359787456512174109950084982839678210768319092929490648220446046858501649393807398128677954892452447229792682547925681349074054530839954309959074399617372287425092800129128574569632213111340176101412862553559305297912668375652877247547695663558989199997986309417201520222698974723758126973738006672592006184927172582319875588666743048930767292519660195863266174218411192947780184582841431675275424457197345409455186066603803418447748964437925303638877500692959177597226795139300549407043423089291915466547391158824248059119427261654534260175585391109632047999119132403156322279181341530662864601150451427358903752515639688141491445483493321733507741558804486272368140791652204790921449948916241697208083698023600908991621683777805769291970369993987742027679025911014864679074596558896405981655585579997595911678554917457423092141147025400846785682266088206214478261234550963514016475963829930028920037154842465214949490993225378438072379832932026542667252264080763552630423041283934276131990767570904174538400165500669338548308909362211847890402086411802014647658576529565617659580914827820388592536259046400261231799911361946661819801126445423092249752350592807109850093771263515989176940801789301376874500038417529548056602673681412250304560883184209819695568444004292551081270002833116055851379561585322859426360706956979412843050325776491131467725926004930853600982835836190909199358565175898860272737619635696502987253229172163416608598369654553849789703110771328382657589049033781462251926282150842193353764744036984193784933557798485080927973956500399229683948541385533188207023152221088316956995892441098858593031222457155418772088319695442600636194046024995577327957123030811560816792998805945387851009838225734387521414567218701897196582842055513525789249148498757197899364409554539536273697223049718667214303690397771772802347983852513013839497753475880096464262130861052642484395710230436250581095414035574872325971005388374079376495383492978552280351828769231483432386454061500964754772232439419747403510813499856470463365491463589490914290916863328671378113518067946826857777922524326219292617984974918907120038182913361227777995593878411681248950991192126356946072188967795642045512454552422013728377617045277462420989757328443347450428326474075637939470643808882544660540730132422746099757167561194975935470928828445673868407567717332017866885223344809965026943002760104951865421466373581589094347430207977028027223915731905473159838332684074683434092781697349402643107331904299485258038413312853407109687287329515679898136628728821376048468864274119042352787534107856643063103009595870585330248696779560821038542573307431487683401752089260083078838972837224134200827579776601130496814215344283620298587081822300475562952822006002790922565737894126898498127128435711204767011450574454816218398507971914461711684220332289828135956697684829980518441607386789090126524220535405613644128143973273165992106157135203809042720776108142706612808497877883230478769252716652651809677905820657295952286880497893012517976638733190628188934868500731496527207354618072289006048382235625301955903846683982320012597782652191669012567247367255939693678874525508902940624373028664496721789413452927676889797267610128229115928887941543331339030406598211181458181197921110562552016669489813005094367670002000806355056736465599967444573650483849472603799888777656100293361829134943223895686599591513527093802610222114713555522267746312219898352694399289120732104955166998529674040225442558021901100322115184273383174473367909926723444207242898373150534684922418165865610099447810059738383885928746503582403708157478647411972304022687961535555920417721769759207845181883137096520037349437846504406604178460009727672197445843631315795680116201960014602706502323307984840373533503986869420372516933815859308260344711910460609562951881233893131828261695474854044868230048781728256491068706327693012098920071941050082874917626501797022931150873361373987375777305341404573169102463813587759071272972181062979604984617077177932118148222230913250938912689586626718647593620639587130528480220274451209424240551272057027691258929077693546846701601019190943662419765495854228092117927133221915772478891034291985251532653141992018023756505538572459611242965608070081766127571674134055189473160637902004386388170817611067993359172133751704705367825856671823707394966154345284074657551390316592263811158635103432911833254115680308124387554647189057612033307275190684745594383721431515922139811888056084205746217893619941289517189078385608491701897849328311554597479667648284897545830861640412716985308078207547961599245285234164770408650484117889944014342932753126162364137317826264473927707858036446360630476375988277011747397574576054809781357507485863005100541073619952090065307619529175257464319133699510621275047392660584707974851747773092791536727906516303838848633097941896587544293643410124283184621534160603545284126368728753605898031098839822342733324100119046390132509677696045330445643898997698309061280013814157826963769428116666980586596505559942427255593773335973740432296275480532394101335836185174489371892033799469525228583369693458945805906297076175048603626051994758572046622574233865276645173986158492425353059411983774686003835986957311115865003470403859529767847093175286872223236544867273368779787226729983444618027673959171534275062045122198793845809143811191710455248993017570447023919601629908049601890797208615873405300192060308374696830537200361460378704311693567435548838957792209907596465615090259292719545537939220119735524351782883387293275076771044595622179035951789245155987452387102479055108245051137847427969164612875294867086216834243710335907540947518047399973211483491628965465913976974649307040242406425425341266433581587144663836081144996189762233389598803638301525563421326260163905447077859592880595847321368769654826501480628825238403148046957797746797703970111434702605967306192423843579166309782380125229661403769158337158365497084328949217883330921568750452810389515983625736904864990884212371125604186028489962435253014301615515485426401812372689320909853728845261007954784968723311300614495502720243582207361791189321283352595811051046569104450986633728471727002525783994296916327344540170283812860593350377539947411127924190213359854730912555546798133117428147811390255476236457196247767106686348343486971837826219149966946466148606152021276836682981616488308877353195933584586196068367216712747639159313127043970993193475280084535914576296569882128879907726056951417459615117138769002462728246751026625552178155879420604164559328781646257327906679335461533578571730303168931532740825930957258999078965675927756732623350512508757925118821831502138225308652871806129719941225518526490950237869485144419005899988535656908325036190644050671539370724023586130659000288873511115582449656833065627999801115053850338731701745040172286527367694655529755291716372064877037354328437581214635899747224990487061968663638908197426014094232887857183614105596886380515962370740578276446667624486684001101203019628135674569985003621809982928648121459529202157706578644454219805120336695700911799821495755516720839808711313060013307359658310570665560181620682264607319860388140667276683258949416576490018185175626432296640787003021415473053410016878671715705686337845914296063700648162031482628331673039140565928430483241670842687028388647846030616040051280980163744410285043664125765794669622091202881919297950251752363377951682913833276017052321767865554952882249638393369366154689578464820161003376149555017194649803306174704890863380405009081261060369518426185123325818079181299950847145515474495866390211717500582181403580239432666117729279549587932957669460671252390213938653395601291752370718505617400726205719467821974929676674439736476959440420905200152046954507863702301489629318604810815135729914875819200184786757102403354077731871195733492435653241069725233531784381128039790244621346625708462560555342391831341435903533789935177556014779353428424307999909642178777300244555090015280630714637366689282237652926654946919797356919089202689904045350615748400928397755391523786723204810596431472287989213423982640884922120557105547669599286640413263490060643765897986055060223100687374486464050305307833321640872416421420194877255164834374060810512996062276102724629089208303948182171478291466184178466633700815483991091596649551358578231799179097155954523466899213180488923598858574134760545507730901802661202467183522283952993897347456110229048427114702243182199502452334904934022750375762774719547276792884983879575223697487356781898897240077548134112574674526672473624009305165566405663896806319423818896271691457038717221238856179266304928870306908385306456798499961406955752900526814624934999117178543307317045790980994040768397850354766594387627676389135215476889299097645496113737042028121417637096269812160128825724389434441214453361933602269727226329120897758644430620844270916188765353418242086904951213282974914555223725950005179845053604042408582638995233893633712431156106834815094550961274606450847899500688095824985382061949099636817535584770722213475995468531401367048143572536775950794015725894558724836666478166625087467797801734996449560921814324383926083445698419845752552123754624780814948778482403204470807683775868689240977242669113280432091730614038340166171503358769286329191552498817154734546165086427580107016778159891865988193942442960945169411731878129754071014787250289770878120765496334236992567044218152794861599352620549834717337062559315505227056772120960430152454691509636761560741200546282240641896148855078825884913734407543944751674418171625811240714879272933955938744073734640273007939103558974014512337035108327631960358537835417234692267867514910978743451234435884773903666886079746682772714662711646777480417375528062455262051574811390850683347921268170047919744726914910610231863772707973081752678042530765638562279298552045524665147102227298160523989604055510337462591114563809614950917770027062609231468692969560606742074333908784322064920729516901064208538803353403359710488032558636767612568185392329792794065365524767177699432684505951817946909799343994852141983904191565324302835212269465631601068843436072733455629296719958633096151908800619991585870247672652995828492472682536351450991195821566207029423397434845985148910961516866232786439643643571463807403268748360383521175256486413798513933513574404074915216602686206897931277520731212981774056187628473061978196326837207665798381457822913947879412850911504775602866794705986222838403259321951788156569481904996217505363549188846147973923350861780141978814139420548103622052943431858407947457018632880407454216322171339858130511418412772589749603516547726451294502950755428977799464131217302842312465932275517847079936091908383498608741953220865817732669682039307691887942551112555930031682668369385586734805422964224219191434180692349544990809072761665924490080046235013716460454484627801614400333024207103794730012904046638201516504829997934837000752464829089638055777538707785099759052815011457249417852077214153480780376303218319409840156343644241693766571294627307193217681474267482955080376425901099567792230104177875658255457019763269293948910125360155989328566872350591271634106087807937636053122476788015413814748910660493263433220869846002788655583981978476953659303775429283339981006280142590252042041728845937235872454203137988132642604860661836371474246919666797814740987765666467700365355398226744784935925834839230662432795997523827900207652960073094157206505191170912263388063161439842920582202158736557114181848169785110770706157922023694589798497455251035325777645140468096344053125923143072751161327282927030164087205070471515068212360831269840895429510446342862296866469142056267128286381152688320047813248365346261595087767632680065458747609610066037984098633356781312418013473169700746124294864532018345175965248593348657888169108453117244520527939753960685016936715295675929377403948110622327503635206102614337230261742759680587845256685614157433560817615183381755017231352544722880561073444983957862975672044332443375028876176425967237147025378193525420922972523284644986373251531281207820951731523364640166873610754042646045877281079615153293662902420071531604371371152650704248369644062469157025226812413724918972434358308117161368363639963619400900724606287241310162368598296399198693809341308786970335722449031776923725032723793625692879519353048477384403406685533128936786172010894843275389339334390134070763722604333073650580887980201443335230593241433233180397667168946869909330468028238027863488270624070743373664278394442957915542207222484692022050545918565444299501915272255415895061117459496094533357950820949860359828105982878532718422294401619634278912645479414973325004866502589359065890229326316798616505593863558484059170726223023733318884755295817094618249587010936114943899661315067973996124514970636771794932132932350772245135436930240639007155173447283152925359101082595540791379790893595908153412321311598312982051887435023510974042179283492021813025953416630947322567163273394495927771216199939738859112244762839765473214910565830372113073668560889594016807740706879163588881622489737120264040949887511798434537195145834271042062238175621482771460443700095347909205158302502491840491784949308530631515931676889703014237505543603273926904984092002166039946688428635144338472783454570116150932667468844992761526198522450020494714280752889833953159736106742602120312465400819670372167147629987657227499945846853294828608406349802911845678798822802846036604153995611363933604611774542542709331786502211403819928658535806707662687507647044574710419247764372733630901178710816972630139868069741938454790068847464773181768484477321790609937317089529694697646244636850737086237150428605861622153491262779911306933148011862956108947803608089521526563336672336431356253430878920017266725809485919905245089254778037702402509655415157180574608550792487578317295601287686809648347652799900533922731441822514014103627764786337632511114325059542443587769577929945991958130100543005370850267609821319579077340599235891448631857293891222174015504239391710505350859375369050893680449000422787321368061891777853936525151906347963237790054657912553186216133279910950640466331124591785455821971412409267426804306305448820488937779747598511070530953641451339752951906337266735724014713486579671546104214658395077179685024769986139501013294769574088710224021843418282551434971110529689967350085625104619831907744196343898712069220280066216527765959721741705145453341414079973986544532117114958055950459939715166176886637382372565114561211775394858575718536086352634434423648506868216401539332834185268849655276327446284969920310900075279618407634379298322675585935107895725792512295907042510429597634119662359989957883005273345256744852034950968430711325080916327713415034851177567879949729338209885933695403884269523757262589262045816163957900817257258139510356443121483026395488164851822660052991274087328004641883805835623136471501137101144024770186339649091067389423134224942954775598733610209356760601122181781447362207848475342227906149273174982568789781680776544125010802675334297280311340709587989415702558991938916839857306546613576713184882266014141597206624237036368771466392129971808059428632538974171494533186387964551061724932461412963605988103573461252589281354727681243166364279398472418429742281238302824194525986286499193895151720240287930598008353686545607737034641154563869027905368863750381361582435854898914444926574319373476381675643778237197472668802732447817485497762479884532731608692757487329165044451428860158393592558090660296453517221424483080853860881203505719013141083003657552243026107969175028893351330457422917524154862172800909345734237476939152916908008197612845062018175960811071552704199007083109006910766646337567996492552488614142237236353976946632712817072476044879080429398039554609528284304937308650927778844095658833416191799080578147330923435427718427807290123054416540912808502678328965242873842188984851444907626332323240188181245902684711784185450433497578632261695189791336250339550548639685262382205108134024196827826461674406780707091569977169848508198687859846877658414728466983365468554656192708698863441831724703596827573464204706968416773714096106852436594814200866243264795474336219157626696261257438501498212699178681929899310359584596024159723163077340489627463269374734972413422699940191399964586222791191892619851357351042929264849497534563324582851001623191713817645579285415484670146398016593437279283370181965406244026497104401209713234376187647325329351107031002397022512793304761263767545758722662560686799412299650330656172839927986273676257026901987836128593592689517134044178455124166745912609405583595737877085190755218035270255768085457423644167717583952769525550692895574713673711632498080112410765303083640024643674711632562444320129493478189911010033544487562218178867623620007746759016193304804937196528480102004974708547007534448851928244641481248987727918426098625955974480693038468862277217416047655848033390911211477585264637046810362785999536083602410055363111926955961098727394680340789883660031666819465991489801241694013067291788697333533672177551527626155757088877773996569564696578536572445288195167188501163726448179786548751698660549616793064615526513887632943088588950863660869792383556223095776124097296189513058406496196476640571603506889387713169825015030962247892975407426463391528058980162109701775893647515928982452018304775726523441614984264771932148764047008354826537540488950424839446860844835954406189837660516965196736952617436504655039295338558725373505982399533084030530208228000711568688402856074897278191061528497042554124359904820204491950754000329684117671167722926072477291140153984344213496604164103720913766813841768961354086630052566654259896104941748307697308856914211894668039611182627517404583232589226630387049555132310594011582647055150188536764872399709339133733442285983447691138628120616547753811944823516323022329209546843741983196426237807213029920076826070642940433982722510866456038790364255624910888512206818892815291209142016196486323071940804152205014851349390572323159151550142913840532317673795230486393226135231736954125291939861376118503287971672817813069298348685570201437637338477280045797136102064619676051074468397620647944027522157401303643340301016010168429187672819589527775313477267724104537730090321453300459061140140731128683232571574303376641048209704016692918597696084979497667161526056169790335543723553076723028483906052485920674761521059195497716610899618175693580720191726669469171297356271113191654430030538841681853933081301776022405046180586185517023967438074594972445091289407095063405147996435573766014106244969197885775082978225625378987486858484040642437510024125198284543360947076846043246819791705704532989630058247787651532064649910319064820119950381019691816189403084899975210577856510801584101633258755556190798635903006135594624051336786365581657435608247133537238626453729219134124142391906654739387389428722372450494696345037075797567146706961791009910311021500209768227150214346068631862551510977508856592460393428524882975922026682747843606080868410400213793030199696083569675401972203557671537953449900544231954506167033674104527217712749711984955726065057351212329975878490361912189573178121531808004201695160908405659457283044573029069102843526617097920671634852636833991288929061431752150719271928783014675936119838262107968819021660370162190196267027011573037759471788809517397990780515488227155420126568429659674259742384268206123719793539199450231836331846324166451951647734608668191515169724512592529446460654556489827929511523560923508785087747945089128979039337243208491039384602501552266816935686934424213754842318034780870787184279299577303457761081714215319422792814045827204487148026560915992653768227139146794728322835100768236053329199287154425621134106852331994623663722971693561145305189673132350925288333314969778589722991266376402706008607421564852121492734135969220630714400618443088230038903878522955997122920326302814560861256994150493037925930875525579795463790265977746305690654901942144744524815226130642639329821077705409719511771109342947125561505212384933679431683390284421044110492581138255499756251181089377170278582255182651011405257158712770304428714984720914056222259408975340136062228035782259030590329979945203853240794606544847986751283230830141102114064191553522855549612497309213721817106999973373948389368499215347201998966772334971105588140627347318383973526463745236468197449829128487341693858749217924213537258487337461273222786420124671531582706236612104554234671973307595153550554308595528238662771636434400560658643250674720887199106427350397187963908274805187767552628413826197486610036513423871657217225868259078116648313947573987532823235424494310472425933550649480966720707447253300844788676235611616251259811499004215031000780085896844942979493035246173871373903009214885673397262207506880714693178356605497023598755984443681024511660343340746177964071093547267824061118660404641966623441456096693311519166296350662057175198771151612191666992229797751810083355160149350285185499514362282542344522665401506647955906523947902284834101648582405339762835441165832656293257048579047901164747375929654113326704523102443805552571982833068012236322377441618171082427839908843437048617824812260286373870784932781897086503328439986750713163011302968541532558239461669141370705345720462902603938625668815021605604116788937347375053996932636850946555156127054799692154631672691067785927206952011856528515356931286530971101395348162222684510489290315794445152747169928076844348721701258164631606580938218694146368443351853115463979231394537888234596258490672708519306112467751558048345011357610788538304347918123854995587920561141555055297861675375977648203958324913346838502274124529653086612720567407786581766587971020809122229574478677692214476693421454669365932776174675210181535796834933316850753002397072382789136906854151914148041745314128702321399802094433313290339145147853725424070053131883617660323617687842566890924180043642189923013942968296492669991164975258845316659942649968218235721435240882406114002396632394697037175953490987004036942456657868960062754996378514160495728033219784935358214850951563631429361042341099888645778466076958252447848300209037767734360812896645493039755191178419608757415680054539895651179859171140081573200780422939396069887091761887157450920559386548828381692262085229149734116991540692780925727335422698040233458542455013131615516119370263053535150677206010641860883227021758905470256674589695410013414818638135408897695594676521674192998034987315486134190291287644523185028376309059859924978262948565564481303969685281008199257629719119343227110876622132389200721442021412494276912710151357451445471721085837177149446105098374624181886964124372849623674477002518807900150307428022476666290691727101465256336493642404530379278519008728648931019850467765488597308737015173790379375219394065105941818352847686912646540872730526334342267536612688555898999037542097191271127850113886837930481621843336551949568334147874039853059014693661776930315298250414461721032093186952636707841728652011612182341752105076995188383398493306056291249459621972368547660902955742067190419885841323862946416188144496643846826043504344398100434875843195130504978094494494123799735302096248960973511737179519768671082001194829762488893698943134376400335459064729754417271027692248945461823836324915443038912446312067516820262536250708229912356414265447542089252127743391579699607585849712537284633277869494082650926310441570170458851453576838654630105268823278799092042937531094243370022893401813638126875103758554061008848387008550833536283713399880309475778731855100505723003104017830528949189813955003286270361149788827555674890575198466237613257273055406559239274397913409442462698972678816131396923234092104606900385426969381668549703310412891655791395091493487437484957012056916712595127943479837665075015951849191938354826325679106082235173163367342613216879288846841956933245480584811655883652744286764349151223081705150441488367742932104747786490270043624025343964489762990612755305272358459276611611133273954235249110745573712418211034745042398264946394836559645604502156842236678338287539872263823164455468986961387080616961465836457392727747432082423327118092034286692102027163988130978364642968070790676465050315173544377624807384317946367558863818104474523190292661853084509554236853935423565437670999206032715847806747501983940000895576785872580334943136330365757223543090067215272395863534284587747034907725237461415491410674706356887951426712871574453974211655125215149524108017033966040031041245951955592134191509442137245110094446656000588738550199200699579232129751753215318804562361228264146977309901351321681483761264203541870694698216820334570959124046786264444678054298191039420041197294724636681694867904053167033223657333098059447559182175283814447269142392320398377930107167935883395959231498486368910436046137749441951215607154045390035402953235153471448400904512572832314066463055103990578444193003561575445343022369857064115726235909966646969730214911126230562544393105134879525332081241166997193170065911873280935838422906082009922957821265857730480692875253428821051784994211077645331567181517505440710540513331018729639171160034441661348272889367726568113545380802052635665030921409152444925229790799581593620590855353773430519068558112466973709964927535147412273859851815931736920124024037223362231767366437384070048516262706066820964751134641079191978473143178906266174981209791010283611490196512170057345887304177967930857633329625734633921403757262206919193638283936688978652236692934902701606156642429337461094913896157582838272649603979583471576504609196514996469748773516738307767543506622870038725656569460880572481020198802729881727866761828662446869356302124496719682747903435918322195011761924791500779354628654717145467212023402054272119206372759291525654496972626450527188535550676847324373515149145343750814407333705443498942543598360014514155691698108764648612980959177340342145766617798443636224184693138497614097336537917007469050835866919328315835947099559347112047708151935174790478184751888775533743826316607458538509973229203054758797396048582717857307519927467444040816133947711919837408198136685594184873760359906818832418654008986702607859472039902269981176168700679147883597322204708424867091450501945716023139915406545227478836996256937527012178960531360102238614324480790508375700780606903385430316715884785026420961141312254995114200956638708773697221992669373418084154596503132881619282948466284071755322741647926842787677865935864826740089867001735027442708685151208000541750997760084434033815863003763157179559308287428766990645891447806650576339909856131894506702528270592524375202110743751352578588358058977599137672800500583379872467107657262487203003915730049438053801768135100856122289752844711113886199719166784283490868393034775195970245636571788347552480634416962552840809202221471771411230208179064594493473811916058048778925780518908686817824593303050278135480281983779412566546156199981150974938673962437905796507131752206384508148318662842056270943464262347638286604493961851639349283569260320103793276926127139130839066153908282715398404045050204744898213300291187059537541799817076880288195930747462902413112935572099297686715083711701955172589241757260742023386896903251088329574237101351247294699737884803442558250664511938155038656289178133305482113897988455135002823673396275764136520726076262996084373528570054917352684276512518127080245532476930086634048951855793218859586216313439446868543092102397983369576898196712973431556175766431560003704874958138887431391358286809266757336499571094857490174085840970048736224183725443766282469611189916958254396981763818262660495182034222289657036253790809917915820336320317562279589841439789473022636785355325091429933541964155800650244464241141122630478142055220702863455169480559349156005302760850815401824863930746880184987553153036708337959042332453853139197635407479116939293159989737039369662348598988608822470505185305429538518663854496064911872451866438839318994806909951293386489110503343866484098433410384482753710104596058906943406160828200216725759128299461168974115533000763209848885085437344165699852930082269532706571462144582692169958164786775591301707168669361151780851708372535289721575037434276556180592730073214178976664188130943014249632635692337486107982166958122436878626293301196710308161552101248851211826743706169717595125553581056447009831169742960266024773540665632240809546912882723138488952042352506594153732935682529603074673008550410778578252887590198008969441067535574648427809886441629649051176206850976447341580256703989620249570467781168946032185612782500810246271933914656949512265988378352168509328390258065717130413587958198013563009840571291613785244164695686961162047035614135218058237300785177190846542968442148835254504225835256329566040584462440967881908786891773196928989934825140459605693357547076771203341218658474533044739308391590353943062860329412510691768339694879292260500136899635140864026835911668463865229519308556764180508524066104785725432182205303512541780944549336583672037605630926080187841566260877443792984039097545511703436985741921798554623054061648501836551476097207100843660953544372479759827066751388819338852627526756394134134705551496200082088709220977655548425605464842526485046239129779605603663701341372441766849833384806775688520801141719921601065025484576605836597057001825662862274395735192648074387453697474837183572605953471939837299139622057098856523870420744844372025301234062905569520958354193725280052142112972372958478501949248627935976259326402823917289902894339391370873318595347290531095256922558659362218968070715608747458168479255987623330069559841810685609496060017765052559754343288798765484132219093887454067377150881122191558950183320973139789136213985316344612607213472677736038791808105007557151249807261143702778803630411538075702852551474741369532774470410165544271286672546750209967208092619302736027510019217697010820592856698930731466056579612498693275041941484665583744382105981356983171468535918009932878710281627281484590142339032736462951754727254503792843925077662806113274850088168911650445847776884568625263200112866225801531361356593426102131731540823519243912781581682972669667168106878305542440844830752813437052900477039166290945589132828084948329145381810323266218615374369174973501548050746517491146564499532316635917133955154121745091995853709472434809994519845074487089541226001689531385271107649016189530576274435093737290234844901072369788620861169227355725966257812323749468052601238982761037170308805197842589384894319687234511218827219583320303506939475723563411829991755519414697494839452344661651023312173500047398302080214530966829104621262030193622652071975008429684300192218390898559195257816901182171746169637612365903133753297780614082264102825167349183681526990052689914700870230685845808506399637063459873658620244773611916179327878798241156388036689514701285788546969004979965725209275161933612063765991003397483559396568324348781044589205956454422539930694344976752002718416331076800733379800585605851210250077099346913600017178844470306569769054974038933525084651963558047463732764629965630482270633707403013186760883400832753791087413731429819041441893210957715021992766681439317491015643778264642318054142698035752221032661387048968988217982933882339427111974340379122156403724313290358028444808275512077625301737404255354861041204549512060410323758719205176986068785276288846939626824710674296066828265455913118901205451096814846379507743784077381391661965184589273848902691485168267455776893977545832822935246935470452685516219461562063836520531029780264824057266416042964043169548357970205751888016971120611299813948031765493862607695917016151149227614871679205645176455141754171408580150853780961411654979170591769686720599998295687320095058307781885406681764021853222627307040546597261608304711138077471340001461409508369164918817805065004576178690662504653318228345573048854037556695836044176492741766536922609838142769915420147839030665139399383480964173002850750681413649025506958693760861028752325364862516654473957045111563495356079334740573799744876766105229315975613525006873615604201932958870175007894128246054117399016711378463588307715541677074345683410917103594275410534883490941706971900205963859159944678980512460990007044873981316473404146818569148325246340254408333324104573193948874777505366217360093660970535161771469268237509295685408271914533649718331064738514554167713199277675288523717563041432676187853741111844605985053526408974941850829372354065699110294178223144579744214019743547073615387251556241434941778031406722498212713239233162937615343104038512740703235936193535060731089830228586558039105619837079536721212413434146577828320931205241572205102784903464982359901000611757907128381526092658657892019440692169535699019749725622519476773064839215661527648310882795017764412232313379924726158179809397033660105287561540061934544329018041728426285657215406304468879137640454200073460497497302516536104907264250613589807194689283288032234886431445230275442652989409377354773452225646458656085449252236336736494781417087892535070610038672745332310475144478826698706358605332655078264934759071870029935979729597554562710443957123412372812568428979304739025935284183800688836883503334010798233136904504915237368571139621710124407470854042189821858093750352034012776316295251524040335187171082079120176504527525550764860177277974410932290068530448139389106439631569672368556734008791010509684657932990922252427531351634770970803402900420568346364697476903850735188165308049008724196672410365108049583475244889805966882651698922873189414638824212563646928108569189912272922952013406727123942763582273773325791435325744017059878232346318897790317932181236427045886087892443166931939664885001063534849751484297395847520995271922724987291462895252475028115132311104148087088149319031732045477028373844294438793500347435358670215037496896006364824049506162218853094961832702696846973365556025279505568598881129434278635640094984376297166162261166000263335235450400375423819832607978513607990425079848053466947626153705926176097688738136991075621923052724802538547894046779795668030752729766513410532650773867249519358976033011585840217716649218248444557394147869957446984364806377477837751698826683718409492703191298295886655841480529434981992073436743340683535298291185987308454672795805861317732139354477313905360664770287664549306390543401634195015160721139973694206634520359111810416991342472916660236726150664098835128634680633589728361244763241507121210955730200940945122807387979707714533663622785170334849468850383005501441632442211252580529180459446506777175837212829968127013803812726178693461604216994997982054332780581721310811363652114344884240104773416068809138509113086514759937705540822448760975012285538698060996738311732202169427316586995274781781313119869077941935485698313494340627463091572015504997537395562341252553971418428689816451355796746835855556609194555938704171896927607170348214438852437233033472546145959343284638648852052048073930921780191238820418223629403596554244482331831320222235239616602258004946741442975004261295031490761152981370501996903401908507091690459771556274078827939222835703255339802338535983565032144472748867787166114814332261433666335717883877681297645862247063487154426581745076943984807558956367015349647710659396847988870099782770220965849418632912247555803231396419665149847394614638618000789455099169092552981981598182418884570193135071420442629209428063967968699979448414316033408681916271823969425878964105124942544326812820679423664786200556565829378942859619405866874956437858836635543858424804273058519218818308521183853913912040634576035992495436187867398583236564986727423537570836705427020220672749552129446274039345853411863628016936430655686142541370700122050591321767492392689053644477225481762395560180489691687765777935789212619463830628955637389258604992954074219583898567954481486080395689081183501803561129832914232225806853000953011249285576575942863913197124538825804046334998348969655840810067512641728534907558120475767227423797093328324311068892581534818001925933520446304930926722251239656496615050901592054734255914360562455176009393474249991240208597774288813874158959989503279485615108455139393982012426880430936963518280792246399390121693442808418860281083576477768235427221292791985090349696345219885891576472116170182064768168189442168965138958648637156875404107902019492112247518363690158283479416797876483910807144263040279569255974515795823779743069431411594079818879177663939546846915277490875392461804495154740833848826803111598970663938601347933175805126599499821516533639686476413955701587390660897196818348868353071536040714312564356606058920354779063923901825762653029967388115644779104585153434843161898531138353014009455666098934499292540768200732680627885368440366165126776213632770822075252064918293896253643160321476361964088192873764184809203698762264527122804826315709213271056072277827379096524415499100204401041914243482833141397121273068911423997211068161973413024338393656459468889962939484618714819772628722269986982227848254101279828238119655503716869390509328973604460084061175526691586951267074964186909381381034315273077194330960808266135675080737205166806617748744640909542998842104434068098476847640355252849286360706617491277628204459958460674142333734625248193765122744890879399630303412551453382198166645985071626136163291081688533544901816530857081357820425538381531973620907678439419403497623433491233761907641396563141007180707469018295561128922975980457820511183171754308152253536624035530627410871614892543171374452206912062486220624591757404222695092214122465306789009611370135940900831899813919361856647088390217146940768077039898358585641143497432647321103857548787994626111504364962953969281143696550740605860164199746470069821791289694076082171003760954545606154648326125011594146340728015531528400998805158219221012644990959514698269498524374753281596147577611611667626358072974730704130683154567777397961802619879042993287664369824057353375844967421725393153180004150674166834898137097522556450655544191324834903177953704469170640582526657262528797001300672767291627996474753862352226589493114356097060212113986618466315236106881519944634394275006978043925566055274390993739934155070459465083200725002911574464764303163452281963093832407080275214387790629037453099513041520903426655142051548205041010834502037014573237346821033216149048547819830263333604436324734278884644862816397223369056909470755272892150606306628288369058146605737257615821952121396218047910844288306250206497750086628569388572567896270305165680186754369252691017407314916427677073366233550621507805696543866068673108245316318665468153004481728449535327997870363713293819698769545448607006419810078730092810345892554898859386922344711187050256052301633753184963572775567167430205535244370363118865360658808272472147081440192632448211111497507083033203427811508168560112695805094399037359391599086562886474618060259162245634465928485622108374289348758729527747955396956809180645747298374277015107287078165310400844350740469000925837436205023605613670486879826945465324821295793858680054478139785819966573594972267867412236470187628473255237434076030665197876666943813911592113630426238650936672518571998317844859552604459990062399873551329288547953532782416781812154149262996426021952025290350292565785755224211344002502431639801447507148116430790870947945274803772698866045073250883999848333059759005529462854600088481665750591691546644917707962672745049957884693307067860762939937733814863161772990738497021260137114838224571375908488177120976623384004379429246865385601074434713315703465338691639674404240872791345694805149382091610574752958634929960681486083298542171870301672831811136191483875281661195091219585933092224243069444388390336190547992168804600666055893098175727613152828831054755380665309245048435373669994393687842883579895648002966516122326596098418413693200225138911647643543839982155230590908896339781734190595771357685219892383326439799913645202579215681502002740148520778891000590876404175805844775494456743868415117434272083353623274079297318904989876452166238809681681638485064966252883739307367803286124090023290734702695022596126851482101152940765224824461027694319951224408619881795819961825859524447682853315746684785807407453561957692232629158767155584444061678969278024947481814398304754847283139642368513442385436893783613951085731621280033325347110832727307873861269852120211101898853601060942181783710207836875540828883688056106856884581691834972081663020727933249003198430239384006461737898520278510817805927179248164784491567732366270260504676507906632992001136552396445418096444482842037777256609254756252488717327323827406135226056070661489689500940184378728633020136297815211015373126171673925843968926333911042234715258768368242677247773971870623434914931512479657366619850821801952704274896133784921772741737492337819501060301494400275310785493678752875348169878761220827724650131752595743956095703617811755736065381637687862269160765491620271111720385994665395352295068390355711667097188824499705851153351198684858042336864935348085616884780489307406293634946099703608074018387464755765900221397957580431276157662943806577239727130380860164737452118504956342843748328645426453771680073851994866359215455990397739049204643015544502765724013244546881591156634149142153733916630825028259677812619039448856088524979842887855687648270305901583561732596192224946953491660941135055245305217106185015909142321128506695066327244529410702990076198523541743516003579211898225953658332013842957006735148727501977082080188654122564553981486636985318257288794293097730904632540767109079351181648961063157830133608016970239010522790740390249543263567058901796659320928560376881434939813713428223324198753569517490935294522848873816201783131386439626996997481480919569003230462596053628914596041226530123849969319649751931544745371418591861716011549159550282874453709799645477598441413589968237342379565501010464657221889491142322980921921590666369516164211119012938988981528287915774445094136974768888907208490835158184612595620021577137547216613372981512274931827782162691957204983496682521546011329603771378882311980417081218925076734815266465411808333546276831913326816629334455420792526090863525804089766235307610311123558457268938156567325207474375930737036958309381314220458510325986441430054403258039373740304037485833021024678297313400875773569736853050439587646056207354998419269747605777989292124244128462445147494242129568416593130168627179972414328424394668413579276768556752529162290938438538946446662390136029404371385117607579898507884854082083988660002610079396021589193391657567551192567400168558867155253779270431384988001724454799545090350249319220161079146862337769389499095407154852838761919330977116446774158005704684162713305068921460299437581908555421318235271902395794264451633071377994022413417514707542450803687246792244106558118865503435940411583534649319781776443883391755532328348455251944991135187389044358528614955440392181959300545687569172536691661450803153341437684022414785714924926076595327783512766106459655600251917741569288223518009709914997990761430888006778389085208066393238847294400951556324076883556649459159647076616350889556882469072608390043911649249037514833292187471491991726422054312836734516443752030584490203410256385232233299385246667850892340796512872879636901670303194057158368526860626222188536289624167427580114982008884626475177137575661537701979245604510045514778880302603034088065359131996245066447019391242589100916671714015539886580852295007550558118004983313344732703730300738378859886109317313408189939769135955789627362729965688495181503390207720519805361030290487480467902662585710488409715035740935371673318952420583687416742646272048649662009776647774669133293776233293134161962256878032972216908344677743090158828070128805630489821328860955199270620987780742498418110904956578034326784522408672813454386685374957433032316222701139515154889430094922122354242960390394128766122763384876733344282782840029919616929170578514543936976718353372076247225450947909875219655735512220536207356388383064681859494318854611421747772606439945954805332753615907952967137042681529468466415996722457609426553499396789290357973172225116121330762682754036375976598324083982574555545183647964136968213816763552205206425585205486047041222102461281181141027731510524934280952795011301732009332223810379659381350316641135174816303695536276900302119634434064821005147307520853326482067807154450334416108069672370288348658614393834644315994374356437290260663433233136250713584180599041902038301797006830367710748520068541753608751186578168085308451062745781381904337051233151786446006289901480429921988619490529082551833852820177336984609930805152741638906168532015469387009268554306212530213715438924512941940818174193011984612648020718917627285472745700539439411435950055766584365693326873362810022108692971988825600922381234220662394536207651426071278722423845738187697376107137046347077383659603350207172989085278076929450704237745563325994623795347094121646937918987338514915566153161067074078195083445532696145230301370240689091282451778712730456755816103344512880342721758598209980315057510724309830239954615186640492817991829489451372707743284309825425669481018357269021704982638351540243020992470554490574113023660113806072193813344440861534137911967730690938323051833491204157240808203272679981666632518582761646057685576956697232180977198219527954032737022642380709497546882231468764417154084313914104923002919038197177646783312223144283074164496068196060798682905026359116882802311882007961073582673935572433675049449866618626794305811187814307694067704502480659354995237792570376474124779850028434546575629277292353369340912468856536387370285358937674924360438890702726843864355946773761441681279257057186237219374019135928924786265092271445179470500727068887112167822601676776566234396179634800815825528604396346822920412526914637934886411619174380455422528711513656855055994502924167766031973535301759945957288084928639771278241026545912361924287838532714090881123186184098556766331722942773363259089869919970345525753503948502491670791048924657768354303275019576626261342275584356694924954275462002459450499311496915434116715351751112182712785486899644241702246590640770597353450461291897669476104778229552576474766039514089390732551844341324981858062698999776994620922710801145254844377803993417999470984890585536532917041907466658804228747447806161002357676292025563247403059844008470359225232349493484283672601768774506902843072999840202046476482284058732043009176408486479401646050401883241644345725830230251098825263483430661267063256272259633186506908803606492757554352955795709142335133550513051416630276698800338946253781910485716087361578282633210718163071989003063412244452637266886502532587294880538281348849681820510914306478569019967841748382794883534449440734923847030998467064664040294381401095180977598496549877038990229661093063069362411071085425610131873420028158258061966334796041940504137111456140680912805193121299766617624218741359621521391890756340724924624272062609119306456658759990188720369555915122707536480700269309163153864158450863454790227061980681804725183684748401104256365249651356829508530637925079013174799873523084447480789434268804259142073573271602667142421277260171956442694899744983132518577338939068596289204326008505223637041183876431380075401604795190374137887734369024565220373372004317359889590942166990458180464074588996040661570749602213178348455171717914416957211242977143809310829098447447402693749444816418301845122732831450994378857153568730395773141612760595813020475472941676782691983658480792093214095101651410430209143360040788327457963480161044701326195567011694063622227893567467779326539391053871273906364940071868883609579231944059304357770696978701676554488203833810838811038284371645441092633047361146354786983910014684642267048304399723857157156261187776680026798146673223524934132327140168597296597899149342976423041406261477593450510360404128975441239159473516657574330557531560773578017570326918669305584400476944157196292728955877183636458880409267762563249475432215959806326017133343834420321195575672744912806530411241818753327237264901582093750982856189625031897731428112157085901569377788108765548690485828745909157067183586444007256325143542105442650087882108725559355177852696732718747139734230601790711175230335696049290660439762545398467714419154501437128578639977927867940046245383821233257730166484950241129764585233854748474282027774245411728765495143763543044765928944175514927103814849378734986252534386562407550561946055108796490801527571814459752364749505375847962430570184208564332406003036320513415939905843350240728690844046308142285274916207979633254899539150624484434605843601650286772245172238770513504046107161860441532627675954409505772107705923929969277121253693665973075417870391445172465774357130401049971405224498319084077734068115918566336880672217257351239604065918911899754323332092585380185033686226067335082995867763700709662134173437633067986840279442460867837508199845472834980468070376866344125010858403996837132941141780514787073302146393641349023493760831249659978580011023436593012162936275826942829030182194267172954170310845180099643713025469990994079023830016481754166144845948367452891970487555243916055568792111173985063172757598975016710488363197181734905043558813195349878784346829905646674634646389557279099370067208769622855100244790278476541300951246584794696040932283394685860840838784167400864222474990869960928297934119497221587500716582365139549446188549360110472846195479140837790444094255622310533059037156212966119159461291022339577439787324004530447395776202733704014606707945016734233128430652336952925830132573208205974683471498063414945170323641660816785275330712057370658361728545426775384200861709296978380713588023912547436633729909466070938776688075514537271897691075056000153859863095396208116482145153289598430259272662815396797123518208478055497269959195597538087854562657268734422682505673423273064686975470051416551790971169150603943323593908203247000029204660241252913710737786595648672060452633320417393998913111056105046332279633574072845923494959625264338726496313023549148909120097871507128611218342475189603231692212009495297442996006910063503321736075445567822813293606125764870930922061545007383758482026243601449819633603328555671683726408593927236931999260325153991607226429600315583975687464233495984780223648479245117228214123819663350788832893913418342925868436552881997054344610305726294272852142613059230422112394264406017750530534782193112739924598633439567253391229056624203223748671649773299418917907743931106536186270095642117014073180667576220450955106065034175731086368011501323500170531531145691032521631569952985457303190802263085830065972649448625644660663868991037195604867655692755395149425281615736824172582597506134270285777756658482201733030114900028088319831779943519135889844561274452116484159737567553974935248561560426450163206676444686395261795140035620084354280846947644572899497156592494620689988276616297808081330392053003596990162609862913480268180665182709153530712661325874778042268047850187643714815235301897684144825763503880726151699442608650696799476543778299317015242614555911534316244234001955158121043061980816022261573984104478478162154647190149414381932496940083682787993683471412576412086468101387446472998867579870224085626729152454111131259430281469129943435210051240536100694643535244467175603063240560524273520856203105681194746532652785666693826489027703257569697319576080697172076867354329702368573851637019472953771362939520743230661892451593380011063570879235321650358286460634902917865999627539137497287109861676391168198301867940778958521357469419977211123052032060721474940029834282900670594621448882081825297304569901491727333481557632210341085649943896011611603191620683544045850497141514492866716507095725014313193363190783289421947959023021287395270443025008002343107332003524040161550096451979531415295858926266017228233862984393794722208170674632097220897919224693113344539481054416313825966263966978765818982129161231604715044062707663448192403855221842869535256250741056892141624869908866453024738155976109634902727407850764884487180663195763523667131006523566997521319380966677494239169006499888206584580554185697785418967019129571349941142161664079913034040350652259511517234589090674003686944460219482900358088760989286892661795122451506789443128689450964994726660532270652685289940505428591560341553434973277466803482557184115798819291568191065106454822042162174745584454239645577857958636343050622352135936061137444624126782162395440617328972517609087232496008761280893029158773098274521397512871226441961256148061039478160475016197813916968215485370489961393329718840365220243400345174576989603696265331621816926779629330394239721268288890916054349489346369516811440638735649482408308743631898247605708838892316716776862937148249844279851336630550500433966413244499968121690850709279686150245659918696470805614620924083788819478526751190915960559622395714866755064972343845918247833637371130280740642372474458342398666576304895430806387518430374574449615402579893714492915036518794583713627427759464240186861430095862416073183795996097679135985591882220556047017876977284324572131011268666738582418931476626413088789212196938081367562766441985580338407105624831705483196442927073711556170561608411350493644079138017869719441408642070962815627896399931114048744469005968609277054043822798583915203726193017958007043439733718213499244191897998260611065976781187653336895710102885101513361140899344267766198517198508074294754663646544037082425110621794397741634427243881907830117269274495227456392372737762412148203323123076813627390046397296595951869762782337895871742892466239530055556044210460946195004707083792514809200319009297375008558906193803774774526746202746950019998267767123855840443067449369429580286349782941335764242961687567024850056897998136504233929319964486730090151095770505926815861328280313819771703093008595062639525494545812763076125642182303679269881137605314377001210483826189271375922561592434888084204629937776754600950168484992981422994414052311673103505460371174045403119395042864888426466789232063446921264698602636798020108251867226255145656976400231325824705112748770991277065294909298069545348543537083098038247947680462197902465539505850626266804274694000828748765359021794867523718589553845928328093246496937348498007336019817543104286201729178631359802049393306806429125782255634923264468824384294751964300267406934836970724222040891127155286917104975012390207492687254020238461876880629992472533475419587778870223634529996808071296421219042924504955332832602398528432806290744858513014007074151323525357576156337992313813661692088981547677121468171905935942200546148405337109498059688189811388236752218315944919114356571886160790817646778656516861828200794628588346961374137147189036536863770339506527255201494920916123538746729263470615126824501581497476236030334005052671185863709347002761164877932367565767510406781673990414726583897516710301587934950793690138266759716310037788081834074730470124123129720438623708304096370464052065648783867696690164629466164534465310789029151207594761310046008519324241116681493468688142637260883359291650605252746512798031424660117489376578890157002227746908243377828576175570738413640871546273843715636662514333228355793985185876719796819720481802703306477828325262388163752676184527211837802200054364354044787721983679251939500086315076218105551756252085423099488841738341131331428952818692574070672592035123241045074125546783287033656318711082202725052942333298555881166139168671193279582192039355650138036483970116844637876087647111982911251824797803780212418105805048880623716316106219017299705962012644646655341192669588870593068386917186514385018611919056464354545207043065118423733243902527627288293422161607157627662206326166192232497885855691918025710540001889466536787576156893862607569196486816452343906307665097292631719973608049928293610206262036163221640766230089644887831122196742151922514169263563876961907626142268009725425358901647526043503963551391782441238077797329686151248206904714786239956384102674132567819515186593527593830762172655246975434670002694333171147429357452974903681999326746481703372068967536073551073610243767276562851921564685792311645454133889627630151921528883027922294224057332522232517724314796984682710975482767232758191424196603045741409877081788103367508949374232469013169332285956398119523801269800559207782154991156936652403820353932129534695443331849883087252778829299671460222452173008586978176604858095416504416003663892106653117851388454018922683490304465241965806016206954370176094572086233799435381967036455018945901309869511018105492046072815157253212616273204205251327780257696787431436379512459969316020333138708452878359415269506333406700068078430805655017388386661224721085027871272006671540546555066134345579647227749284887765393303411348268491817396066207760379250535848226358888992961452200702258319587854897405711380984627781733325962476559183053273461393694016730203323133675133635254857772560635029493882801455232990395176813705636990032622429841379213241673414052118568505676629225646264019986071234304977843469419503176094506868820083434648476918231558757072286538726047877763183575858635281773800177303272400615619902218839398502371637062170805107873781685116892389178338383113633563721336685781166131184934733706381706368081118914695122113729437467678638045913163134792158002929596326711125983441775212059988328498867871674745496992872958894669890393741855360206603570688713150060400310121303239130957106677177790832594663649645387969678487279663319223696816218700426147290083182925570882291033466836426899206955994195902681196363207394691804804414004155012917353296262312741098317625978869827141256111171048285325050946092524420724806308231283308177005053316424756083954500145681240614032198582472680236696916117893097878765741423396216865732000805613435769105691847422609808056055286639296149632198333144492236464932994973991266017896624891863901451072731153602699031288623918747603162677990475985706555179314596811091982479679144706612216148151034771259693703932672574681357690729838628944093501780981709355392431364339061159059809843786152340800452449415921289113518190144079922481214507757017795431707554704441726724518562732991655178216852465011248926820741046848599098583258717175826204078604962920290685539709144654861989336874419352938204902536354564844211305231249088924210145424988506992071697141258916087873249852614041149144457525343624036799072707041614197570537477286031349884551649355355496892216746919192742044041392722261090286373385427583040275758036165746795818253190351022092278631536720974736371863731732203183468824003021430291506121844362857249465571225901523921527295847721230169279249476606558501806357092554108285204692585486875032840986739544341187461062994284603836521787130656762764270791804249133958031801078432421459507654432304768229119992691481329905855923811209541277438589920354456930411216211559077045537190248307684732162900809612435454223268608482516967994283706053205686577040527059790347137008103774483828722679631651939182858167263209184910442038033895668482790313085260420396582578043561468827843998651596847997633460264065921417432172095488462314591156456441813331372441854576497819403876982573567132516622058353914775853851811167359483239446013390406384109831733457484406255946401502456051256954773585112002220551776805630356151145240828476104223232277207188969463222726511462324622649088651937606203804986525830920415818985685761653817992783519164084976903822184230751270994884704107614756361528829166599786849874086705265871942863123820253670782153352677905392519954485582482447211482027396555868350976813025505632132496067902456438797760871862199242443758155223326391335248601651628252847268310981062525123692137040156282813140930986739842007412227116428327054386949938560560017442329195718291362432144945859610924196128465398918793064465540749379373249131043880663488201897099163368186599387946313521686191859567649438101772305703278273842686762585654493256399977801290387770677564835066199942549084218032885060740895248257060747446234123954241911036481537348415436054363293537665289530056249763208703360517385055718715239702478243306441028759845690656339397587606985251253091522461105818514014539345415480336787412995340730699103920061914886536802032461902882925941785388812223023022222512024015035592002802472224301617964178658627977102166161157534406367173479117523266303402745043876353604466896211684600864882859964984298599001301962031045978927643090553729037082804576852938070454485071941041052706717515068413398459887649244756616866447942049038425339776853594680795843246800475014087609485704673266906620564850105700967326223379399579417878339748373570454719783415808694245516235517142655788181540024642713787571903377997996790292777159120922752790236882418827119117078405487357682064151105685369663795531284581210315789105497663910824264511700512315042567592891523622075586672667363016626081010597671015191652779695222702394301104985952082086454496590279136483158118508075449596795972860584389131344047235589017067952299783839147623567352853925852975028955679023758610693056400425332465606865054817758866331625304143306759769278519473488548977346203513601926980505750933764111097466057699575577097828740449881099473746223681449092185858663683769794339062932062056443279165232581468446149323468881621634009830938692277961551755091319479076188000222641408232607529387604286699238871716265795357251491495052213110973528119330406842765851457019429212547584041020705182605451234163053741039799607193892783304004725084288365540597092455473255369368248037214219299528621292965579957152693911713099589181445970885486548639711213738196465871177085581951801561497358573377589009721869946457209619233910663906621876003944992606720296179432750723509376364758504054717056500572305304317455569072797726378247419332566393529521680893886215610317855401307042465820492899146798100074350500844180912495995484623369846064143866395607517687434780511199863609781167060235068000246196812672633120099581727958056701860553767911891498027367901548433043014147512752507123517652387332690165359503134512565442664149858880661148344567453146276309338661727142540741363351151347404161238740344786169986405232457887970301228135098586260832015659312931835505630505510477112257815459900876816968403164548549240251464068929526378263717172952646705671004160959636929034751900601012921708317281143238163672695585196175822552351641218548264039511129094669577427593882025673537957898971487473663294712727620520553971062235833821929859903184895623601856743861713129890656332806403592229278771826084841928007767257232120972983604282082978080013850455271708011735701621693964442596775398941906230639383782492579977067627451420161851245365018577747352614506838407803045976868116091772068918535936695667564394034383973789434482463702826655349410222083331102080702588542107757313853586449729191341214900391482557610197019579174062366065337506882500486407058622782319970543723270064018350151886795409420063722861251292261989433633061945545135232225843784930384966127415829269937925654243278369591339029830828951653423655143498311471532205517010766546443142293953165262419948463532053924551072173913195755201288913053198279599314612752686040235688147559897078902819262258254689220187628435468978933446194523115901944080832417566280646194052589122675692510824307197666973385474302083506105093058180513845655149936055709485039361165498078522619336097936802977186434342407572179843531647938524553066917353942181592304172762362538379667583880402302364475535359404051685445644180680036969638148953120770987844681412466901332617189563146691866997704611051716797854002684167038964625280130773530055416454238861840230903152190313342397766663927180298529811601931373309330428646083725639713335943559243523216716358519742238389658877857502096561807558984649286749661617038843950886221215535855286594946450529229851940146950687812125751655207988853289122335561340331767344016050053974969619469779462991667768443743254522550797856040109316631544096908742776544098945201531727183120938353035140915627174308890069768069810026318562506152638250484363676799772594682054959337630429871098347889791656546961074697128369153573341746322243093023474695554571865498022985181888002791247288743056666024495228271539957682268932727911137572555881448354435140331331681847837510463525211982376562021323468249464759417460754192585517599952583380499270091031787929907015348846218200297020216317338032113587831495864552867623948992792771208239154927920177706788826586714042738167372833107114250532639702928905648410768145151575266688558890395156881031621127738344175714785351435124737197910161368255615891712627531578164189275649267105702640579064103222243247758854592198357838421176469749318178844556515719402459064970105283851557501948486239084562435752848354847008652458587197510549456436563519028068507561465577756717162459808707481174534670674812179789444892406314323694506102304638123150236428483710818465752773446666939068035468447029064101550459639884091823219105902864842409925993243046252129983332293559756314123423883447622469782782086156791467465341974215777977033718594568292115163704399435015965765293491878083857550407582479958178356285924415154229861856845035707790857017048061463851266998254495004353422897750132503802868237982840123143829821183170276528088955993565950192356564862707412766887374257688125641535421249936064021164389405530367770720999875526094148096164604337755871341448731836570122117456872219294768543373857859378462611539813840674785108505320789511594704651848980215136197692105492460709991231744706670204382855549923244008163428713069085782083786500930665064450633346024212698364573256732882403644518170943248253424039579359512486464446733033807828735956797404430654797873252466700990357429967858170498027332173327636543840780443894167547460566267010473773976521387461822572948791378957349021506757449228576887421076651517239390820616246820304019824773618715459000796218509061836882849960919807280593070933394615315396656522953039951620859968243901324434013771557909233450493265908795818218750788189138270476834435687019939635571041873961926306299525838937130136591637805547327772195301620366089126429315029123809075083489414166683574134010962596898383362559541238149119361350957747362883354508388496395711455136795894134446470734214299062140880212907228022858318521175319432019835428146297854641922927614251903182221777573836913262635663707473569745463022518595654118753687597029288411520632234991638143651011945271938040619538141682883609386158637158973013235213429883128132709414973001712045818581606286743920115494310600140493100833194858855939410475492312117651464474376285840790159804092584656110617795912536590717004845704752212904307795883396921860728399279283137266871237610906800949266818680202051399362818185789843444651412298207298761162315387302065611765716275783116344312228588370715682238699647349983298343584589091598050045741355079069594961119971302676942178648384337913636832365611282687693111936352851340100192995908492266197578956019005339292749072538362687479691956405201186359040038662060419162368911278278843309431573200491513294826608390148994244350507937826806866079789345135095164595904192913234133716247094830383274326115230396968166876480004505811263988887497193142828322707929994396841223784209668813841718691169510661618256331420171896354394929275630133504395350533773416574452069186259007278530572851742206594649437832180456226521908586477850570037238965293599886410447624748596375297728908655245656762934363511295605238341756972279887191370575637219233179754851952900837493601039556523413490632678503847972178792345545132023941468747886518784083202313629380941287408452382456349536117136636474954904010909805337431127534886345870104126481110113823507377952521292656020067351747376934623463397065572411916257249922799162172391524218464630405741965766029394097083249502173202376878321266311820327555542944326224531200840002667798248022195105510506901325925174538510970072859615296049363265620859519776338312316039700213492318336036264014756044914962157744576209396576505189069629941683744787144086441958614665594537693202573460264280626379972521028191364346935101067321275204802405849629899038492705138265156074518937485757821662243409190599880061460459907849200637621445344016227359064949014949252311458953027989837480620711079657211441376938355498146145562668922540923852265112778918364218003916827262040116063474270420525013001573156267976406765286260144158002559498664299245956519079256019173431099365372971896033739826854210365048253191302636923323010366777657286946520112611956628935777760151878420954854045808378231216477313917924607797999431620942630155134510181861465941656358827209041164776079596777337096151062746294675266971475959933003762188606685854845677371813847200108808657137493484751259581362162839309967883971918957333215519352836840415900101594823354969953051698561940885936563162358788929615463607065433778072371441650658002007487140711855820783627493281776781432049928054818028291093021492899143673498534055193227705335904279994840296225798521086258292560794975896022851400298032491782736824716704838421816304211293898829009896914339703215061034425937334815548005663764554279460014192271966949287184991818970258558745811075254474457294848248967198068459248629956485444519083761291160702435511587293909131298653058447653993487882042017858675844772389008317877973615218332853287382771322684066501140049210090748840869464987759943409467186953380638028728421858247558629369631420685062185017452098399856710540485640166348086212945141939353825866084685865123698086997503613233119812446862127553040693800482451388934849475347773431210766658684496526828204782002661917126086054747257337673858965446618778425648577556811106015563824893334693095596149802858864706596980575323815812901467486991852327513453819464263775262617575671912727803520885379139736772983287750415580163675025312077385922803476701996273995657199191087312078754531667914558652907415663642597524472389781560941167296130536369325194944807944954048340665216009271963514559638374095961371718901165759634605098500974120073359988051874759844637484293405378971739839941464238201235343645617954755794730827491013235865032786472970708769522966712907202829582855804627575915037186795769528329148250356330165140310705403386349935570953040643282783335882063127165618739670531467379866322992358810491491247078351761410764797120132209668258637868011478442703973221826944154920094616102931316917758055441441337992954730099961655804460594397723534181749727119388351136039631983121659151878838507622545945403712145393449825620468711917288488626723622257093518594926097355895462160023446083693489119614090310861537855103271402788636896782699192913887914550539023329852894420438225857040454705657573385266039791631884984325531224171251506454053193846757314340429808709513136701724368744014856432745324812210218902409300323443749368387077300943894701842592090670683478918433428907867283537909840606628766410065470467755145715694577963257184216460735322993080922404406655154107337222299008336756975784161014482348766177871235247732469233347415914710930265731719077808220278148960044092019346945337510530614298156801829135212137673446491497489447569877818379257286410889009186402369835036861567184688122818449948814048358546941192045620947311952447773144537029035604704152097773018174210304687104830746238820290586611494026473536386842985305495986857860748880267903262517360897714606128867419459731580648235101901712343664609993397038731246639208799569557651415258715689923119311732673923373270660914872853088375378986378375011707894421196622855670971420778859061946305646636532134258714434849674527651149469640302928713050156677063081228413025294801446724247971448271229290307187825991550964492989265013486729686452661377542648305704898187980420214213796370114211968172656408961851896651073400099955574423742592658793884350103038790420747224188371943197393215781354573075306436590052436710669224744282425554098126663814387792864193861459378394151640451670867891440268564167326405023544860175113858441611275171192077363977850341759158647304637331457549436998698855163174905955262001285353895273091692617180379195176476613843725644922616542633042442153970970647352117946574144836042672482623775386525027121406113981577214033873317539814139731249366000330668158188988467728598795553943340371751324693614385630749244247998754132941308785267168735324619229986751712482039754300864460039455980686769406558439825437002330656773546348295674877842591811624283946940838727846550948054625005694644484993527546592542043525897824395230445919207767922118026327749752612535137778837642706647004533245959339736264637673606745077892897282260064780453541127904032374468134692291834679743454953297787781905768055867388336899482871096797628647328125743170701369843078430919737130954143627189241779518883824782866738877682951881177860244683674966123537426663137650367193752392099061699764570771095141746059988784747517205112158075526050394363670057774778233814646200390878917390914364740340744543729307180757096208387458050648111384473677277293380833655158272229002987438200105883437342364471528297458808121381423213654190167953697641041479165400469836303640580313569146446742077138252352016806431927768130010945648124815898345266394481260304016212194306851442578061592006101861965569591176380037859898515154930165053004892272123488339521472627512122250195326911760424649335956723989871297113135933744970020302424184857863344066028193824430572587294054159085679931800594463361717586225968107896669217401966342569225514213417273309045591867195418305760004650410125296621700097892174183194557676186804510581805649127138645347718473727294973169047438779037262497701635375428889939210003185584172115431433400236790484370985274623665633993410459034499031616904653794265424494177257595138496370076028503157551632957132612439715949058023336039431927537674164892057342579421218551465770082319076771111988158713675501984531763339256731951909465315386928727099291291886462968865563108399506546641000392033441172448870833537211426491186520159634151525215006320337049551212980028678961204131904025677658387542714637172338205786532990081253156223214119768414252983631106053512895121843275743009009592600118231739199347074226323392460525842854168914918907261793558103983770385336694420926915771843738757067294448822978399367122133421566210904018549236192211000441973158634464242837782396839013582643985019519235498925828812122379060343968777994150258535429153566245472788275226816323307147711448703527944543744865257204846812367654340301616300642855255510937133810435927419224500206478237905006956296888243561910193932915585204893773445422301627240602119401144461753107136200987549493083690670805912040938279320177268951000354790794081489397638985576920585864848725280144533687844297004041387170392632554978732835679980632077210225423843516692687914978148748828234087861515657132860000870974817113752633136469977658706220522831572634286022391795097151163582555345667671100231091651526649857376653177556011033062687867973655717974069776953923742774237760813746226358958342404017488621707232674651533092530659519932443090706175190603825753449802847440599269545369459416501163335297043838421449239791969350588428170637415225953136186366929165315181097534612380277736449326762159565999599474385508235780705603271456441918386414116007882293409855394792852062830749814720999651861919658999465315530367970445588180419176195655507771555277126203815211606827350434940390641329244154564994847296577770153156390046105396877453904903480946396820881597221653511272268623459873181441470938360242912265193691026124704829787869556590314208028188449336989126012622037066786093393587596027706308216753258295575315006582967242613440778570701077773433062728197791605542379599772438239401360268038926511930758864762944264122992475334006767522031399183014927466602913382710117805149239258141352861433783931853368151217560437356535699453904166472849527813523225121822638100914019242343565073666548377720914578768578870734587983700760508318481728904359197792278576258338312595978273711337503026224098896050435293141514654594203816504438910374924655845985574031957206777598681378955931788376915244540079836112642069116417638483133874900166789113948236114145067532264067594259163341399397965884020694841172915951114515234316885827366025399232174034727837274768681039057359758642628083879537736406285861012991439271950988801727909111364893130955180557536316163148049571494600527859005597293192632645939525417937357882067960237717921061040140788936737240136976343843285006374488776812479235741017769001175595546085879885938708118366455879795429752747384746172827750888746547580864440349051982873214498479557155134846742179899053020365301629638805974468751507077534214243548716674077748668280493183996115176168634610762204996747604819131271750039835788472719857358336857190982694120468966119482274614190044222075533231875109394363451110091643694279680490791685926757987702126190079543332873675296582142853197595621066747490280341256758351613222685977949699005845240680915995283188591776072744636736922961927940592159656718293222479244890381791680434104678875715621228940757007147344932967023722627835776276954688240277094968605834268813125524167327961375220397575859690206412656946252827725054205980212902447276420002028526436886041706249757010208732450370178262559397959286883499479939037800557076086653198718753946171985310319266306310580619503637531030360183098494459629419588631657502575788274347116471405937015818664307837070366680299526760751711444880498676004409459395439740193754563334773408049851680576149190862867273572521547181800538587784769292443196359724151478123053923065110647130340176360406781406345300597950702641550362500949821272442822028392687674626751369618794334875721086550780893964623618038930066226778072408254558595196316538485231689536431383364903425413316540364564520961475571089974783975418501558163025081652269414985136075391082432041547620356810722114479096342535105917012285171065879297850291673493432094963896294059969894848926415103433455873314182933224865814152728902256224366190627133682403295240060011019386786444964711090700694442961459825056034625582903101801057841951182748476290086958631853253188623136183107152650512041305928808105486258708452708601877993421037137641166328172593797322679064580887411520732356579694893252892944448362203879327202561034710120599059588970444303709572148370601874578399838987121505896603724998693581343545858054247229406933536564225455830782427332270835591560218466312260395071249016836762658546229755753697502906929589525900211786253205381647376500779721666225049007530993895713322986077880317877394526004449716134082680606699559631248204465598674708450090515426435651488600373821841635724062009086978388463297288588462391074123673540204684257347394198545602243180386547553428980452287215707750570043665628731598308382621066449303985523795307310070985919714863101395510737835408182754073390804092173709720603176265990987316587219691156643924504827187324958445745121993463276378624483165087515018578352632670495122544719977485039050251747700334602625931109281904402454386461608868544306117550150984244478398737268967885817150975038405886662213653187309707685602226902507187823194676211159155471875720919384426022659052856530786690886022123952798049044896437695027946226538277175046577939365476157033434428929796091660692557504921885482090074852161794126485075902670562066145032243346735445887344035949455454781495844616452116166724667958736606618105462590658649757540727415873648425864022319499120635153505871162115733135894635936801671410315975962829457476092787162699389483767524247535165215470584266138956432082038413170002071354321599259554690306074734495108846401372568778191557750570166284776591468669560101507182137935967059784668105369333759244774909042129230979636565201513410700235114230698798873331333198371829644860181725998486999942126527345151839016609474387105859889363729214165428356540559054158311397602212769923471049902416571351063898354634633963989778927889416691171059939305778011665233937066509093140021983459596238509727272371310583376979854338228567484658546705081675237403388591047765857842394237448742502337606176830457939777669897345453558339440775244168517365207135846137681899393858711477893003526085918495537865330874681965658978502259036667914134636662862718231459162462997874424775502361771471367988833664167678751593913379011454323821703706286127096503848496643537329386961916615343249956385171327818574811812276807013912923067000333391495683924520677808992350831131674215218862448889345291309967187751192334196445687391252482098191742156110667781833043312611652880897559536815667138708368958341193659668333598127828110406839442026033743870902943825259074325806921732203824373004357149176926114778069889028850692955166231543429502068898752725228659823568226316535522871576620002864639822856382358967873424183724722774192735554777263099460116577912963617680999888178134003753949611766969859060313592725747318740717169680684643068931179120337346663699019414745208674475403262591957280314304912765718521578636596293170676020939132873039537882509661048086127200808572170677659772129398398593161956238652647338961605529815246214620895814187324341696916124515033871884877309008735177986009423055547960282076902512892132905677562715451228377004427076769454958177131937866049240838583985429381114090425427418441473432691516759168688846091001797424671671751169092183007634190475121302302865477025587550970450243674395967159280717588338466981123852610732863376159857302034219050964239809628904971937898096512290236957477753626660530087462050868241934619736079384836146167088544633855812326720323209843136501295770994762115038021870164360955656150594510363428314792439933104776497411294507301227654402054267437057141077666245785845976538329096687214090585834987968324176764924540167330567397299370538719610355956896477034748778433151269764155818534622559090081658020612733950799867692488170343048574669855041132929455633577678020133516289276881396394034825974907432594166342764580798590249782202869848180354618025911519155547086416460721887581754753221554152380281227965046515617574415912497088079804394827680893608605473672666450092438747647747910536289934081136810849592437827774597382221984989906242528286158120286707539008381806085998495652793687090493287571011896456698600872895191076644655051158501833691311696644591537631096217176381576790925105222186983392417215748530495759327521456549234047954867369670543053125652320149588939302578530977978469948663495629091846377506681099592046351413946826108112088295877373631949657789844799863915576215211389084615039939193273309320766054156395142140682394630571668587720926222774686984911345153158743829968325015924786613949226266274097367800501366225444345967850198638659449024464019377434773970364381194321074229684626339580783995965381683310383817816874888750437888345516039638934110284064302767681321987428002722457520981994541083013091312241960161356473701398287143004631032018727230408796818197392557393949234042859937620590779856703434364712828766346647963447469449958195848328385299115548959794844671350319353959217116426800054373998952486212987376363882190909684444726563598262547075677328671353409264156628511994636063958305012170221547078646107714285928292589168547423958348576086931118634014337868014707670467868694233878081367096553999654331025508803091677728716827883610676506334788436147297499078166107273575998043906988995798873685794389339495390899534426024894927729824024326391222519821105026611010264996738722201741173330419738973064781226464170778107050712592039532495961636085870944135631058655449284872515796472223781020486243468005976817274036342893459565403264014429308447430339003252645803503713863122489255928114260053309429622196179749272105783852594572408162757580991913065423189993157655511079415930735117777214875826107756488389041730201284942243881241936865799009526758917914970550975666235424262708916905055894578819669658629475204342792675343678546481811390130801563761857052424612018889449357879221207442583888956283570585253021046518991475032616181198241866263386818247311860734801056087325892565005368637899605685910329253929332277152683416961369586750966130005017330058424126387010164442242989370564417168390721458008603097515085216596721441260704329964862540044466596032595665971690265633613387244014193512974849297865234442072489310556509051935802777879132891855340498819388233358458654320830105958967527273659192268465059601045684948293942253272540537955900907908375918949856595865425654483252995593183932958806437731933873081322951168369147102032403536767997459023278803898754013022854973417550228313108009107299833043278609874068304094126401356952488118388713734544954998257038730648238206345519632842909740035491702354816741901103694191840700092939661452112514534613849904656167700670528461496989779988999289692441727591086792940078690908346729133237280798649724878079986917344773169350359132059028179742334319168220574345969191156072681955274188446745464221853582104778966127588245628624247600625338686049835677538919536968820708290600061064050537122358722546710948615890048176917688349710228067622761364558292627332710732623547511550573167006574417995231953762265339633055220317158516995280038291054848010472221648521387121988616152093504213631648242835382000631027888359973995083979165273384386493011577339805484377462011730440711995340495443071345062903746375008637253411415044592669133409016887954946837786855292674502167791718021860311301528989031654747909468490556177073193743541161728137635455907700683185744400451053268104321019080280164232244696553432196969008025511478598617561050236323167880631840203034606973992823645144677890341155326850802953332791776570190516472797723650220510770554985959166008745939752072992747335307315280462322594982944957396522782858712145053105294799100216433688471154584051770279430275502432580459959141456802704030791089233066860229693763968799514477366596232795500564754847615249184918456844091166591210503949571333764225923695433295077641858511687977902827417968184431805283101951572416829189926790538684081425795317661660804273075911817814826740290345197474319663747148567885231551838294244536634700918961606960488880209636713928938076161232866482101731109098593596772013226969928967996446461641464200284783635600482746581973762739800263537101209373367692561974041031327409430188420771954903691689340593529011879295739272436937449036531104233075986772080682143795208439652579164847622060288777499568295162928680232036271200997643831821378725129332741001997715813189544598187992924455760808081398917130298349769134354655960267288798578371626597444524154549365729201173945823441362192214210191836167150922111795284753648159200187997350315063739058673374457890115922318719217735215700753495951573499402987556470634176378485717928683708301004867930700559766942160416612425955338387997487199856723805631339339963560509157638628810738405483088879291241385246527157624714826157776512688692426223127352774619357922368542328648102543161092055657262254859973589051949281301205959251499262675184918409961214803834122620606529028579883915751570380327882942119576115391800111811946042292046055170571742609265426526838451823784524242510063208946519280666099838715804000010594972737373192285804193224296972803797570137868168810388741044263717898681518529840985030120437112845403135108920402383221546332370928555713979939144873454688555828280369415429372479905829591916060672684820203060294234564774277705258057653458337832844803151177898373840030826391723633851334444503478218239925624990236419823602759150504080975450093362082274325855697124179476585514823578848186554377166478715877503184985425162803897572555141375204799929772912243364951684529647484893667380496999237962104923061459189645741006049865475819402790069870268783369196554240711880852078555362165250857854144048788764879253297416574385438044158169702808610791793315427899730828227438533505049545281072410964440290104930015440705399892063091921144870563016909934479616775501711618074336443339777589567028255268247043169168194427581966573044554944459195946691048293597273747693611077592770682382293360309594853359178063538063643242288610690202025818901065971910053098900675901365904504225219841946057703681344051472225119650799892829492448184250433492625045788277979167181083138812964194325659062241268638798360479966976247276044859936467549214275135471386712153671277099528887349995558871897600101342383802696331453725790463923026394343896096680902117330270681627100757367320164793463200225327759065163158987764475707767580848532335639822261707587889587241848981767499034843655557361562897137989084766108769167392292023903013743350643186062765410626263764054703418140014251778165352929215743023027700873702008764285856552474608703772970615696990166839733670305486875521674036827678522012858450100897135709685054775119713155668847007670623457593359968799214470312374477211357510473333251429947569184398075743508263497192606955923343780631105353478118510502565317246110728130954559108318588408465128592652003451102130475664466793432424347768825973049331280749619812694232974474432598208848534765991184311821184411731082301685225714037746472327061708118293542109669520210972388613210327556334118121735480444879243616587109201656909673912839782536169970316122014223462223887300084256604781009904710481493090381503961664273179802887760900221018257572798914031844119865328290856715423137129655309852895944700339059749892027872024404846748670034700860931185756505108006353097676554948130859596631064527913764122657045410453072838202318784640345530939072261394570174201015411511424097301597226551491063647516855908660929293081403514229109502824351259581238637644760917086106476248742918311652085194745882979708533118245546936279403073814928251962865612644852481229650300608028243699313348538522049742621934821146932292265783262184038673256371199893789418093942163496821584090181351880536644636509043118133134223991733952586471492944454814817562466612958838796593636524044025034309470796809983207375222068753524844592849298302191577291544168136990685000527856564685183960608519269031946271551580969516651669258530676995878832840054608254299397311139040153022914483119698308045799323571019082305738257767794239120142887776380006555916853721155663325750703840556353745866823292486883085239221478987952309396891667908342405822313353776478919172670176371264634606794990193382125559342327295577406416476568129343714862541353342177707255669919916319577869489920080422465006821488993929777612446498758473559463037352127231029031917968884557703197396220018892315053450153298222880705103196274296366512771068289872424113419833091114521120293020309337522638128095289425050479587122966012226279265836812969106362623125375332389202905418742540773996553249784517583503289871670472947148556244311329233063244794428896228557090251964614946138328222975345648691545989314989888336347540613939618950297308586682351410835020946599764217370893417662253119642762730739730342258393302613672975307815735163196177142917211630615598844958458391823643167096571695285259108828794438483622624753973362684149675102917490031754336326871057875012183807672506078411924852020815576956881217349939237527012482095427308644469950134351038567534764316620040586925865417374943262869363399030509781072517117941653736900205488388043339342367299247777899481663991088915039397230092357412005004890815657838446537136936838714067098603383408226308190195148239189464880947139524788262775037271290012004504251955388822580385881049540824332097443975499580326731500766885204873960064350582033747730186853716240772678236856653318401643434526613282895367988583324216922994630782674368671660990012897549138703324619834039354332386732475307685756387125811893780198316542674295140350183648704920182103479922115999756522986898437108172872195178549067267044980739720342610587670246388598439818858383988719572390359838689812506220774539083618222138735764746998605635532945996701313828962504490148091220757445835701026231692146693961901456017537331803907396447634235131178381141285263462972015308879131441740742409086973054092066328892165482290441300075976512707629677407683958274767243154732571339047483389711309695974722807487559546041776754946499438082276683475858020702661332429564122008229491357023201140410633734184967804637904286434510525271679323547135716647808631837048902134157400739105159657724590283535262162538630675623085784249082458951925446650480707904341540013788030613488015602503494781270954338917267302069656091558901808683474015786379498795821135139574124163732155882199876883662087550877743910084376303712572807218950078492359235924598660859027786757309226795160078850765595702738445429749329509619457108033525057533853176744288804132824869244323262414341055755049323063826269439995496223337754466993729144601031872180017236128068838165643860925560453025223774224068868628097526089020990569366407900686959786413941374928889755266970439592509162262393861486630797026731760992048667030408601545242134686160396894727366390334078958896212387340636342782536848404958994061041022882301361477167039712472547212100540600593354364918912600345425960877538433038095817812607859987695033094459388111984394161299901695744387953448621440141122293847719359036853839813793013571544878544020345622383374224551319980977210642841995392840138296163014847343010199151229849657224214659211042704403294246999301142678722613644983867197589461515035700809357861620664456033031562380131637882218253960600657069998396745696625699985555277563910097823591031703259239116014225088829458921545017154300723819908241267664163804457469885694851259441588790975340709962506789623173086871430548920888036867801901361818922638942894550486189055923312577542400297622521902244181248200879469656266667874544872898477041177126615572937292414744228691490354934596745837060730059735366493865796179953927661930344020694119091501987593290587506310966087316582867877471127343475378833961970601683033081815252595706368821114631675917487115173041004210348352235217971971708077284283024601355834314584161086158043108302777372923023402237946464681820369202132922630390347841021676631946636110098630723152778265508111367452614139938866015735306940210400918767082961757583896429853666190310361854196069234864599563076622374310973037058321128688771599117367332698762397626398904811108497022577312133694338309887359943486560743112870648994402330654360051532192165522743961526304772351132271075882678210592040831888772935330615133892799667372018022064349059465655132567199701901802353260176940141233247624543285237780597169698873440480265715402488836514803432332838815523024657751141128909025105404990113299749430163119710036487928523123046723628425285302286243239180621290797245062928326165470916284873787842309157709150682318331117230003399883899711383608639818421253698725236650794916067446341045881270233355560836446040562503031992913495567871295403474147895623455039131436075499410720940337275381531390365894310698322389477427265893810353384178759092558743947915654732354166076022452484654774343110704747933639074639559509751413536051964135661190317091302377507857222681157239435542590585794209285878209426106198640486461480154230483333566580100208682960145880275223529756690309300602645904556532346528470934642911754432176034061107369637815374762087421457585904558027291608621923090738581445000241748891551229573589886717080760761981107266272075497399290534369276384278215209021397916155664761075689743749893763858098906642445668566478140700587650968436085073351671271279293570128394401660714983491643865329573810190127741669579542959036377193820471230174635505085596575410449246437331302316388660004186011099807872555335198016045333855870158016761078557896761507496396534419061298467047919857810633865785146148757855746869958661591624322370283040735142925121533746373394057492264702399316508245312335158770405044791853538271535578069838039767511715550462830609211297052229448799837478087857676239751154314034144847849687709380177532816182482069605048709408238117620973044861153403099731409565063725265774841112505190776411791986628062271090421331906297939178763568096218534462647347210656722046234227917978475996887300848463727786353270802175164346011621597841042310507497559339325433008266296841998022865980729774261181178225817419533785585825975304223805424599595537185368943989414116707451010563965651874060135925288070065473256578288508834048829072887140548479844298246801754293405002399691302041016276872260133760337994933406913945598324361070452182400778851937186080022855551615528187298082668977832457266809085889454645537879929939427393520165760177653320543883510121780783951216800731595933010985236165793484840884696511863417291442552024581151232677410638060246975227642156279923254526706963368140320134243199524335697578638665456113525130979589216245424897948405362783398276451461052487670888466391420957856232316084905172506450313298032598839027617413910271008020182407463425831932172981430962051694848940292396538352393869281519432696265981380252713346948320496818801496296030569324312615366520727275891940725443814571020495735035419193840789367228573481812207366870952189662966697842859319313246041254699769831401128976652602564701299306374628002953742428169890472826132138586626766766009712264360406515914863600074991916004580790334693088373513617582544726945026853973084178578869702436021348966138852525750232798071252147392568536125895528275561808975542643087886931416993527424255848570111556438163941614312352134042906680089620680108995990247660997744701614087494667081383947421127582630706488427106266229427902993049762387924553986726546152889637622882975070063701709790482430869942444812064281000255517149117171532091947317291061820695414715440219339837000746188287693343903068525790114422812661696357827745172427169916433482803924816582956990822458334432654548196162310129883936558209232845503322277990011692905052742339838686361524175578345066927772462819014748918689438631949267441849031572091972315009715672108014542489100294321336652374561026430885303014655172014145734314244117763095260824055978123123955676430294254249779424969388855904987972863277824781930126308522744026564910068993567783691336950125755875466718337365926071587441573589281731198107674551015495103502326615894394925315520827544067679294827435697869232171549998693289222594950722130287083485390430866858097195647676224132158035525755302677846004074775041884905396101917527185626416295546771026021022289676583854183398179553443063546558061388908669832611900889553670058600242955574816892050923060196463738014904991086204888431361820397659557886276232580519067615436444647074912136993287116002847027205996454114864473679040647383152389111006792159154839907884053466617412379441329097343482005833079344903663172268794714207164570897113515261676561678969497975567774135462667236770971342600910007516103862731015819020525232957747061596643601128279771882451466734116833854203664190190847112894095864910996020302039558923751404023409146926957450664010941187064117678719413142805592657471689165459826798058450074644919272619214221377035730541139319755879996441924075829193772694724351904201676347431964170562883313774990530352363501645316284294125366694906025867772474924801744042548277108055913997635280997485330458317718143239808158562855535019467963382141328350316874373467193202793524293022549584024770490916615969510407124416572472049527791183236775658570497766424946165924383202259906306423483960972839298945155066214097877001975511211619456417855373524810396778190743971946265306612329753091848287460943417081482594696999737599274209096747198669601471712059437927523804747780513059100589705148451917026287936420813807976105849000316279528431512961072284641996041502981827758070028602232885101001458392525212934464584726571983952681833301888349273427684087534544164019634844727816258303850231366440171638591242877210121954390601231510761878223985865658040093071084537013583177681867625113330543075494251011823516689994022542976280083647163408309666146508920504252508050259947576957963114632496804418425113181472679770257663585164148111514853019574139871773581209676310331862700132795713058486070157095645789437027825333169976646478464340872662238000472251981570904196365223436192696614256070493617832817547647190517053102065151742497171232001997253826711811787724434389776593138128487166322193207883201114471650487347085737428166509892708795136620618329760281526734001584165161697429995323586012237787547795434727433410903694963190091857543293885759481455398779226493556921375559123043923000638697037416753454043265371854560342613660862294482397379769277581793961544627857550223382071538302135535368255733831904400469087544384023896027793818530994439366773712130037927856313966935738793995441161379679515919227642948081967468627114005312682585267504447442138763894889978475834014668678755541859053740129334313378257839515759859307480087571500176391052231211850218365846449079508367011054005787301618087465809530798615128377186892805855357944133117332883835984032019585513648198324219716354370382440397905776328232676211295553792105733328097990152175838653139382325490443209877300531468310508619328739785640917161415572724956122593089960679020714546495872153223371154062106541724179177773696709603174915879139744403535927432054972426864470808493920533466914177723232676581614315217599561804205092518607580037993337891349042127390105882561090187952328692223942456541503259830763847307197412945782418092252553009068961334225944670582129907297805847942442766453824466870265818094039898060629778513363519416749376347763320813125237838925590522592133930704993138455633371268641730269991877387804269739461869779868544914912701753372343701540440740914013371054130076570099885757173972895382264963421263107004985976163080912873549748434490610151489851681889953705808272271481582280265922771316666492301320017108985375822262803371483156846637740367448398005659748505028027927151636377717049216979880127951463335406803839712400081413157867254181629690672682535453861205109398453009905748743957442652045530259690948363741939919561046546620686314704054104883315581447727060850582924822975479473791905763860696908021886579130011478482978753204202894866389704687067946330720483657347597333762466874422346200617324825173607532718305627086652436055107975437145265829042124328807974808923589392853049732726752338957314931783283333254775918491177058626418691441701434586291565678384553616786397204081915551930546434912256734395477364731917122441235754647358253748570521485102663943667020651335871131495952257131589595915263196417576493965335755689120608372049819508467992642617360146340372358858270680151246062437658515933205258293496082031068706060224546613673971373588300186054651781673658279181634494898405368996557776910259152077254185106398831881460024524247148775407696551270608049804177518561851985495874689403690936267062671209930358855313524042996524579014735902472439495000980249437072983930985568161781961379443570794260929970902626238656622091694837004177110817579561380143127312097837999938145604984881863584032279154269165449474769896731070770267167292291521922840934079868153098531599166215250663205194133936246584742976353892591250008937225406202937371232937130725430102748237467515358582871919238374238840877004601070812999451426632158741496918545605732385549997418733544722279898923480272253878202217934167322014328909904366411060740219494480545526524763561630769577964702120305337997187976769172674132619651301753937464844883255396790495229960043391062844996175152447416345417398190558564843539371629466379187479652584103949087875531876077266492162317478734732479746495206172031483022005142287813634710679207015327874691776518828099138468430684610019507079407573035194915264936147943769619747338660357794830186428362526397221775024081853756354042946714512088378025268943599814471572971235597695245019325025449984021666614001134521209227887942278289294137400289632957178203417537793918441444646400411147105626375551032393233346520960490460516627580118860430024407994937118906627251644525797708507810320194095425620573728995984752007527111804836031917636407389748919698159682723156464259692254773523974746353846585703662274317900109673818103278726807874786118307818116101472879432179737562540251319621908010042787611613537828918603708586338103096571737448234401595612685996210941623066442829106089439642080821996536553735606080888979682340615289399745581839459980836438912630980883949872616933073148923439691184184431913818621597625356024506391199488566122742638086190291201891398163196152885793637346262809918468957816682019067278220453865094622438877279338725178425170152765864921411147110658242076633392865074498464393513799482007820993619576614765454406221047409512326129938865923175251293050147348829227363228030372064045967820453067004528696719329564551853542964388477139249016234292062846334873444893297464131981699629440352837700772293101820805648468956983986584031426567010049844002028834413649256002386999757969196591687803221883596635727966271277374477950876999656853855262980439817104623608452973198059535351965876686637696502349763716902603651716390001147506787256912532576729006249841760023998244498358385605771808509252663075226988514207475523634837278807634316017549309185107082590736110688425712042162295172604903702270024128750012512240738468518238087478257556136460882493852342051275773229362228333278858425505234433628841648304455042369716497372337432786651270837036116608597504055159136374648344172681200724214793066384385883719938409444783096178112315818965490851473296846722927638736682848063019260345868982854363781772416679995240647663473618281491515836952397430240728709985910447456863193408641215092326175094084217501138485107181947892622258498469462520082484547970068688201550229466376667059433171166201881626521524294037073311981100936450194870162745388462542139708660544929156453219319442598449535378295356751134408476488949473970760392777233597554351225340307136359626025221887430751900826021881705946098796881221441363136395035793046412760361804535037482467056199044687322024032559233240755124617139524254028472858646825003195734006307780274190999724444320975115915842485156744538292564720278299831815621850599350620275239790708153856664618192439959605255509938927249759469302096321203369330133310593002073554557598355125458452924325095794259531915192948255747532601889960733210115863314335400670816385487952866047259700083957900397106686576344158377317410483892424382545042743363231657695035095681977777494725426452985546455928972454374463630560049927996112424660411463269379855506412849493536116394735316076938001617829118212676790740233382644400583725784150286752097185144114517054665817688768533235542994050624356828246621614375825378776790138507377901503869418577418946623936794428443836601285578248924250505148490815482525271400880517904239009606151057408497601112404511859418891351725209935432808200766436408303814898791747163875660052007521780018680101840633029020581503860602503781676090741601188217108338150481184186075469614258958095077173492913357581153337354209368591856553157434966305118226931563865944085524747810144691894944156745109705465079298981824825101934343462751741488618102425448427236976585622031368573384335628445211604556419426348916616358550785030339549866494264114569872558868978755826344168500468063795288331783454350955889333871221018756382829957200833069795881331791483627814643416712326837155166604144632789612926533210876683735885924614839429451038569975927022241456687516853202953934169581143349073901982242218126343094358566664824846364356996789715026327670800304810270426137132432146722300524160489842736658212495026260714832381332667314736838479169660695173394084610121150639785948591173620499174229468816500224443738709090530097131708306385105183208445031334659268381191462837401742737800275342673831761026123434217911574600530574218931426513782863791416027697894991770646295155832540811505623592346887312557810246338202833097439045818430697295475181384676500521641820220317497118513922773994374870724874315467503906344506369747588955716387654049040187999279504836393563094922591339670052490229326149774129776055163799204654191686028224807741710979930736253928685057012379553985299918882092169569316157897832760873574799837400669717489690845578349517281736285716157180728665779468051463316940066648743960293337706636641557451691742573088976997013509980632825527661102172364495668603565907418559999815232124532991729617742881809731949936356659909489287518968160971731382781542576251421632446759369265262048395607042874816598211140191722701057731824014210435106192519851825923917022183094688396795822284427687850835684517375389954713790461082126223920276483201449426752519123785579214478018597246599227990917182208440891432747027559693394924764874590556803315469821765233410460283161936857156742355207329166328861047782110663533160963567904777815602876923230498849485393792436909830117547828925628452053538900358891502087017543765504622502917281116434514843683331335587277846980809340042336637292651385443119112403786870088805903508378518026034355127393898266830534858113864888016331196066205226433685607921856224839908048914583929913490275881814687906263372907802829999418144608803057887092043962633049612436940360611014265297707253512287630846556432112524597443715828049373141171306928335570587316546808806766993865018498387124850523606785527103558095019535523822144986373333166512964454729688719373062882876968981781348375590893847716355328721483278509303310358771468635175244349468870402521901842561956197023865003615099308680772555658898621521993312485603603011761960421114456865348238040061259787975977745295507060447864112480618730461596710772101376429592547282277754590739110721958042181634727991677313916917909424687256180105997601086018934573763341071827825982080895736086685651303666923400348126813039185159969152793576988077995882191257493610462530565602295572298768616746302503549019083444923149775032008153426395313064903136652871173631578860125130269476100849854191228129234089415558780420373213761255710842618147892440960027975636722890640755709690567101221800073863854487841701523741698133100415796178554973760159224888952142559664223393740455729295855837838284693095126565105216399328121661909021500068210063873927047206978244225586061799905348726361320743612574247732551470983481212038592944017479749461721309029845486939897383134725798916917565094070032340728724188090519932383769576043202715580262377491722759740657022787256100789791852719984948562131271097684016229860732366322238997232591388506425718283050226444988053477992990057610335267436371793004746189712788242679012599472163873622087322983481511706631889983728419048385951679857976505738894141821961038974914404836398156159939276686772083327699774835778362544489500953790113053377004883550586451758420302413686722458677134746349917117974024420667825513100792407761467056805229031784450932237199753816606496856458657412352726359527577628097882074181149048282025335016952841266884237612750654125031024117781300284980667084562261955883525773520717197257543827481162187656515911431809151452297179203836188069392381275987307994551334031063822868224763017914554203964528256564089394936554869696949879172094480264809747626637767953658890771664533379083569543433069138184856502758321334378480776470972839156491616641836804125226862358327451262406528015067312968749320472783302444227997666806451353218066212534185533013484053000916193743373974958144551912163796703927108757615891033879574764693506893750714934934883313044262952735681274341897152786003588535536363688527710268857475877222772236891799082354118571963055104907358508875491920922754253540375656302490176173498504836382344116634337705494123872496099998470438600834505340051269557027194943421890578985275460519188013009220984161425423952785667541810085905802647973608745321548770825440940006016043742277116365939032112674426846651697051184647352595569394455342816289449329187645487423321254225745056132377866550290264100945943100959044802505358444462318736399601992800935978018957183879536563863363192324155039434252648431580101671765333955888638740921764105447789228250465856903587227347856745207077777852595025301489652924547959832571379685993107855305725372187571485430568720106814834256891346059530162470688949894184810120260952119968934773996446406097129411684159286088203088540607700596282018557508207738270696740350206880216499732797787688083901765927626795417865734716993998183902604509516839398529475036930864141660048882053615404859108855196499216247096847471440972113332486377771545803894688891824072028580227436077740492140816223512855368522390629890261109832657975884057580163205211059068895823563888585509162377828887487715035552915864861658254553982210165183227431410914886361240561360525746953342772002184003136116609591677375611789889674617134109793047310049353783621723354071866422137365769232518317884806903779031712766284326136374716998684576580481732767275748673349439698044677081086132172288818648199925258355289958425465474313354838428689060314014734323111115860203386043042946351260285568076690444601128960056168787295539320710279847168043613076857288971442321240105005081306419134191621207111121846965918616290668561597973021727292976636128700866253059109530717900660188571775078183827738979532331981774841071423974631141367808622747341625634582484408681810006807612631990800721262256792402945747965428298151445542744257951679197583072797933197195590502564806514665461286399020103177459465817559935547246582779915977636281863268385978359374443060560734708414019672428841882387710712957621562544433430890631216469745790783067156092679859615602680338520739854962307813119977536219590617846467987811878682526656357002921231043281784951888509040353063714757651868421622314615459354830547098733870251581810794069088626577440135579505899495135610476699911430578368420961556776255550258765124327727217147107806186759264102788609927281522437411143099544842376058004232422217383270936123505416909015018737099655228718190822771155738051600889206680026652385456720375986846349106033485785990236480901046468166890671033113028745680807696940848389017016923251281204121730379669125977459761185604376805911727953382366031025646579343159534092466318023031380526856214190434032060021477736347367222958271999476331440719290694336681142573649626594346319433057690565148432520070881456573342056602345661687932329154358093751358436429193992279096755150405663843922766737021039967674140324640934133367255393428078160733932379132571499834597456106293401960470179943150934800079160990421401717210956866693035460025948349136046943880554615076665638946125708392160083091307427418476654466505319536201344346558679007676822839434471823150908065966888660286467406064952513756691095147138223726088582255505325945674965232148354890987554548309330911093824896281316722417770876889643603897478885023939483326250266361782540073657999308550501554160067639159462600720052392094113691802825265694088228565790448159019723573190060887419191696063660133965147396683631626876907732938629223536625932546092159249313897657317666553459119645257909778860784589580044639902749409536818913282030909736071321957152860628332154449108775546862024070648761242685053482641492446111965602174830712191009486262084760225428382288343739510624438402631230296395925534036788763395676087211763959816148151671362152491523222353263497287864740714248061976922874862328773326323269559159543278776737053398911410421906586424886307720993690258066554267301913000167906962363661678279416170603443851115285427964749104869395343636638256679621154856564838043311889173252635016053779993958383181964100469438066699392779625878138587588920254127497076345711107166254459305906745902468249163107141633640380272600155069648200793837026634196150912722434770423894963517019357127782067740097480894665543528799611350431193470260498169114215285638600431802303993881004289476891632149749320062968548395958404075956859527374231744639107624424629935367650727867694065575925927049368004062050179199982761888028221060347137951280559627823044228159351662065962094239851146673195385691151282838347566021008294220642438325169800445804993556316549104130186952802693879414111062726002311260547547610822112493740856942904800088286850925561072903122145535358875049506725114994720081750592593918555835592402379681116913700201081270403192995871399220837256614423575351135639354153525336504746417955917937620948882593380483817107705715521726685344372361138417566378600087410292565438356233467041362687924371219443829276981839747734393087149111900279229597603112803320545825217203504956538322363675560736090933986384123533599296667514234364979307869523126364443238500617869456448399345881552675789180485259007264973714558246082566263295701538423766966406888287764908966723527343139460757300053301577686831030990857718787661449848231146569211341818987583998556995648711040381948440413457715581581835278253413351333429863261487077017869536374079706682646405311166640884735009397218750956863019983577075036773145625443473712368329241325895203550825041443033147595568647120199948732620734516926761925550404448767455453998322241802586075327285433208435603626245143987127322831568567942914673903720729593265095051321497942352831360038561781914699690792104154249047150837881031278863893470615553478440766273834657239872003961460231393644969813267157996392173669258909041896206743459150822790063431681073224627874897751732812136067103894798005558824060574370753152980256240474625723624417685024123846331756994023324591533090465993405026119630509270029084800229420898983540022682950639456922722562294802646033464400475385714478361865047129395200475257643146933870741395078892368872458480368811640270785173916222627589189326416542575805573097831683557987957418588593841774216000446474046883719166266280863353370343771014960460624429303148553064519450404951893525947984279298772465402326847416970753783089163748815134679093178524580711642267214721355163824718782243885818820472499488544372503541363811200945062644848610880208035866698347649015342325317352159090998924673943806143472741583138113095395880033564301339503208904380018549116034829469961060101270447095474227899518493057131412813931874090437527215507120561602590926552331835397696428214541640681498090344562669593542028900182774861035344430774529839989052111262456759976672605766663138523825060345365706825720076349315630535311464994454048539653114092294889743193745539451744420638971516161932639084649042398437520756087517935747452733652641938167410195621171022435955661974089707972000048555832707535333175237416670498929698629931274173552623596160716691874025152923970218255788177385154918891519932713812058872238353829663901627223675402262592048460480833305260835679150603063715344096862276552500442178370602018615149996855131106755392999859533909375250978720601308289056108560803211799716829975163471312047910207452702279564150913002928081067815570940230909086196093042877815829646378155860507203143238444903152627948426983365346421248709585603301004236226722062788978737550568913586828775013880085713012469687780393127234284636806677464558842803938957950442674699388188840640569033059833946418276874047176737238120466647039590138108991625594208897707841058891354018027002359344327729290038355550273095346989905590946697735467176393631215450661515160402635088042317243691726955565984596380749671111265803857729446739161692487258442044884021155639892030507771324845046024314704824955633034198714801509718438821478815146717390366115789680651921608304809373572101287690435545637926096220301779660612094795192827631026190277244616383665744178511943065671771214176533754713079780769783179911796097156031901585874046690717491735279528685994456337693655728614355582595805792817295177047337083916898381706404392144306819011155839903752937301253406567962661008259623744284442313986528521764980689970531156721104121787843608353720005294630798859386316684799486822209407492463869017204902291426488608852792570274091796263090412923292082361310908606295976457589085935904799478594496999216329399938859273674093270640055858942430151010381458173168241475937933055020921548368776386769407744391576862694654696460559551052971212316273923240168369457645306565216022512985519657454819272084688570056824224141860148714417200637360023484933290873919602362509020554461848004218579474224620409172206709787454419677884079767698879385394265737173064496743277427005306151494829103430178086213387493556068179539315314329810843584950390165349891912207237714174138986096888231082333435314095499789425603799421920723852386490001021276136976658686850069095967383288621769542138025870845819003844245023103150375625566499339994784561574132934070551899427720971707344372064123695327388279812547740736538523315607823194156840932957611246349544362457827285553047870447763033110110133044706880242054697468210996383446039570670759867396319908545137255121407200625991970785089471623871816829264112806762010909303713458722490759137312320083440070454432607938913829326709299604786677067304356118491814887743194477559230304678405134954335615237333665754456181223038668363518709849642659276174246129957778389419680198409845465184045092161288151110346314496887032360874038398358314189712026438084082048627674552289743533744209764986560887382426494666278257836357056190753324312925292749610071228773533027003905998350593903165342694984002573263917670421488349177578401360447844796759619425711977704856974364724064341283045220209164914665358534328215602670989272633355036407205308240359931969769064819715290025499477408304355841314107741084498418069643784443605030387626089661647655734364958578551755076601756188974319168428917313007119665266673893200888563731444251798632496433020328614019273491796762238656918302951782857471928036919312719473962936589628309555153600569009297760458105652535799821124232378211892265257456014251776427981732885114003683863276110697031222761686316152705266095935314046111134096933628224398456151922029548863320595577498554043677990542424386784249732132843227882603128902443933018243403659680370718727508774077301109560229592327578707193664353403183786002415777470159850738712624515067977579436434034828828108969825000892751140431382300021358596346262417275796119515982402282385215349133420403391682750859017850173219376120942152283155014762966234062301233144743544845576195662840653547018069473418344661839143428576071321165724567998964861033864458465361759696645568386200546884070557941247932552936084292760606401867410456230042122898064714756821962295159032405876004037165642385064689872817332102676206653874362255810343853014801432464217346829101042538793165974956194896479796740671494981580563003043861682028157474713600304279803034620104462647746095323995271866106226607965438649429008366259981956707221818929428097656052874451421282260460726073586946854330822059891032742861935426990958837701558207833628016863989146517069806527616704089714032947615768224720864038190585962961930554027814287557823964524045388182270153056317602855721384822074045624495597767008963899198057620905698632900402950672271446343503374562042074295798133837718098561649126727142817763145558038403309301376390479532252312826909319505877541101149814489012525653679017590487563048658810232857676815006325780066792443675145898088164240227625513312462598196405491140523184803550226009285479412664598364581086541621179691565708434149242383438505361680559959621330647436178925429866473648597740123618868018800171220344831913221967857146005009482325368626273291149180445567358527565101744325100791250152735941888550981041283079754360751526224440868865460621066518120884855940199627594704522384426682759106550277214723105419791577494783136265368178126531194274551907722508184984063920489172329176443908310027653698545502176138995419836325247262146852179203786733394690272353121873109338220660640456128042211028556489879057709085392445644087149647686578978401933352338372908889582769749684630986514202996110369962683180498765176155608042843888964308844006343046450750656255115379010456580826601617382646048041830330447591665942143542560528220597744116941645589840050002655492225730851736550142566652959383481229630617981831242312369740213048981815013152775445626057109317799842642557754286901313404912710569059937772642785216804842935454619300700005173810202100549862435037455088477846490573003368887801654858339971977722973640878298171211685622561112693250375662835996117500951858124675289581313125814118089424664160345536309553258750595323616072704465989197243314862524175118582084213464302985351693504325339174905725640322339500755877888135903280065355988326898415170419260484913173778448450431884433502757203601121255610086752123537983992527424808842337891562498041224104189495573531577991401092544313893993718904984206124430313228271005677395648963029533944570833390540036419183408912706031067806629655882980973275481707756920501116316184401626001868662952067900133704107735238622179333622717613526692559399414297586518951873418632788689017327910977985055534583673742537046355312051350048321687872875028429448233970709313253961000083293502709996533916176374224370702345727958831769901663330627578579806951795160478330409298552398513901717453749768564129401213128022755542068855085542052883908999367006547140761504437014555652059190613515058737663535426990657089706188813257830341282197469199923786875424016382314983187964435715823150243620282728646853304294238166628463470340309248896752851585061281777781687987012687597604593525940354849841391328018664206232310380360447273645237724719615805991083390124227370164942676529919450495034638131260234631984126803678596791655138368135643395633853244899382387412565956310217553174678621569516906314878710271478644982046764314468868078041704085786473443209402738805617655224366417355023061737844589826023110625755446547082982742398129105607385192841607732972158811138428475210972339874850603132924477474243714942697421689819359141718726930720253329585315216400455898544401553741308636555663636514586731068257137611832464871236564417750007094073946435446227543698692148652530598099610568636058508111982869804494974302731091487186705416565557472469587092332128532062487992751579038510768812743223897267313868674003272445261740371049261047961426420965773116541088779693543381901506036007597678728977582955492521197469942622688967622493227190048590494407915493968695235048328954023660690852019044083886665175134385520968766775060366546783911753748273371457466574194751780268025000757050928297105501831478081911073936349388853882860638303045611219159973280283112382710312108539273147076356161861438351688455686463162900248870242743653265472143950841531699012536235838971805793924409588047566301661194397474656057781773600824407719325962227304017290449605583041473623099794118363049339115548440999215762190446243812976894620426700679634956880959199397193629495248406067826651098443033661341571916291393412989140354674561059056148382954038767850041308712842658809612023472778425838200459539438681593645971304321069419213438392871486294951120576254938997487658177947380919700873628462448965453453791599417451725293082509924271203675430161676108681535248803015804043508235729776498368749180456745145323827127262213944432425280285869546153059883563508955802303934705364364677360370031217055270760782515038672295120586823385451471332050812351996281897445193164719498012146843581474124786725050863101400043416684777945410836481578276386244356999726353215906109754477941989783611912379745368284799769025400538374527459016705866398858315045498197994787507274156938890729901561511887497052597587811626362785933174805366165195052089626159135207335465414906993006369366830578841900009898685696994772222851841516307465835749795826894613237276347633687171006046270170545527262222732816329989905282375837875380346491303379012257221476831660935570755866670745605360079991862220454535689270433794498265841010603790491428782205278960322929978903829405032193457985426292642612980036495099271703389547626290297994012879160012723389405760334518381936117968456352252852578004517914870969336765004014669370369887686831583806654364836693576635845898013478750635064127714430153945575874141168191870476343541131751833155843945553667601332959296034182621361333051324563617797540726526536610347530301934037118637509511513058332643612804407831481620507872157910310463981491058526382755328209495330048406502980022431655614384323493081936439875419517685040550532272510287582740699856341307197487861477421782023185774303097249401316178287520378757838651848086455540172921461750005989759493589084570776383445938439123809368703260100611554232880869051017357769063050972205797003364420013261519682018397529684993743660642608323116959505041302131785198132343248226229939509694711208342717196251631174644418292630353504920446266281613124721427790404242899399398203479479118341340171702911735363908615884098648423832958820728356031241237878470778090238648195490416847666746626753911502486765312765141678907517724642857793633250367282075069826908106066203639175381723619725805686843035194901363345454915915941225751121576654418187668731641908924963579147091504145405250614686844386578124850700926779768972914064617385445000481597852403706933856092714310884824246673612054543302193355812299706582822880878891152996360061630586276181488846607781097638634228913125482467333835423225046163120110493330336344627050023519358101401280564224245484327410326608309429716866363691906064587502887126875033859474093892040560785755284737387575355261132472234133538118247985824072575093744957254488694219103210743463834360377271367328510447936588692987648229791712945261742130184883426731750283829174746125028146866604705139450346465382887594502442183698681307744650415774205709343824215422772580601054588158127770877743279977215887317159587957756995988027908117731006961737553348904639856949962912185244788523309359137271149666428165178014334674442958338675601477040719256729835915333920581242264649554721780556312214232664591244144601133605556282875104446963515741182601930682023964723800738826421338446206187918593989092464494783532964667320240679888500239085024922801593324202025249169110521473220143490031405446359243291468534966470124213024528354637218010884613650482720776089053194898827878098462169861119720810601292370574655061652352937468353535202982608745271326845272869319127933981375640615345758967229508481052342695219657877272419695333021550042489064742710494465020813476015193945707034403380891749823522488662862610264161306312611545279566292378858482461446324288875202928651567696219079418687029834806858766869557949736358170915104205458255297562319138066437663985193871574221082714195839385263102638877357090053028531220511357252010520414341025534355282199674395334419321707247247413479542739982655185585507583274883134447993140422278519985722711703654991778973129074874605763183198630309542371466682835697732763636427354904177054589476745877265387972487660098032308598316743554613932917259327136868095137195661159935327085798005356229730679952621661240524272448014350928401185000895151881546105086065873344572404139098448885415377871349377968259446513496919765409981772312038052977728340237940154580829522648126360017315382916503063357536625743462287904882250207788704237538163371442410945522458205098035270841804417075518505878707455186096535355601711846122491439754927955112983264723426948994968063199596258603245620170704124368007648667696156479828099318612028461776377553742931257367863932397048304366346682727694889208438560123906798234577104238257323940363390498607517398846537287970023502068548808609691925386217812006681111719304444657980479250263831801957624384526472594300742958408166606424845458640027275141784873074755239722397639217557825336637954226783395262870613735765091534794248461238531006830055469099883630209842698334354356141692226266908784435386735100225977203068134313347438871690740045096476552089163351740722687115036585666642816200435096678364918072641899166065364351198958895136172762154405417264645280637119399062946194005205548171660500441828570637771437375705343131704948731661932348565805578970875386942618578753678226622220680726971851404573087526993833428483791529941167210209902328997452183227588987395587215921970622702815233420767599591262572853332005806226738508636841740916054899975494269477750875771717735291405482511551780078707138144077455746765187139525579887710227794890542185225804931802881802449700875065012659799318460035617112704281416668657972708493596337620257324229770579447223864173433081522745291804529389275090937546553144332264671465327892082047208168039147273181196646042225079228872404013444008408468607109026019699709632464196152905934412069424355079537750127162521553645244130328989145492741295257088788999144855277072851268859838254171659544972239684755849666530787124225657634168665952214204475934694300338463867229786651663831236257959518004930365182188739694122777536309243272663501403504030826980530237414116452326120496028338011349570569846765369232660109196794282324727917973462322710259004285467098918550775340872574881000879101470810575564427139117994324852579773946614606478810769061763640806437800658068825545583169033583487376767358616134974185671316933479103097460082834010579221865639172621415029677230570008839725297928769504743792415264226248534046579204596940928000649996920178014515247409161510224186964031688815160147270429040473999369764077878205264916524239746836891642606424715097415649698765486889075747051527064768879845793411707380500269643483764499756487887565144014638918830018557243005725872577364490595243274794635763323840742870403427048027795644930730909910655397422563615331850963447464383293561031146979573885012178210650325029696650371766262093781947828379928620727339106805889056129375480712934738053136865404601704599564098752481918816007955723107924381281728333312550939785086666567012451370323586532934831774191687433144761112521461434102975315052763940460896833757097563299283673756271125567860128209078483152549128120261168111888783929883930791417225710916075998256955171194653775582248000125795806081456849191691023437182487442848876577819396832741127812123368409468280802789589406251883785942925359778510698524751717611657752347038022450520676890242854973020267478186688243593876759125064568130148757246243347476575559326517876863385856707037022619324671882880058513010224674967154126922449118123625293246339527359900290049608890203636884850752461244714320907705124501530250557999351772744168857194183379437865936620629216880269148626677114996575847144754181796504511686544729225278295383311894827038827764930105134355541316855079848981562926928151146573348895600736180700540164248029368527205491459297606872006500171683316188709484673318858638635278995870386674224787762358954788838243805200371268430210705857519750219155114625806451349918762537684334580144298607527113258695044263652645083208352874951444500314884695803375630435054180506182103533183030986205703285959757099392067234828413593513979667731781424941557217111820479180697261111654997623631273877807679524617394866694206240236858044516707166058334489534418587058988531584934428882635353463780049001670254823462318701337777910908542276041744513484241984005249694164359784382104526074440055865587255314302348139736416151049673548126900594356225397888866485879986043930720075580146331629194264533654958591698006812513061542005317963690901986535489486414811208242270030306519427709586527712657699547522767087221271715424317205182054894592543270213371359213330365708360201272578547695706491267473035250241182198973725490103675614857004812824935051234999615208894007594868224401374570019014099960500389975964440428822272793151132936991044964318095765086043774611130599582081252243136671586112793569405854677212748205330811004578186957036862983803503238035546115768724641362813772221547301157093505102308060018015325765709267474574982967026233877622709876540913821262140208480893015402953936531969123011836938123833821917217544882690593037341077361519713004194534264196639179774372481847560062873349570474058177333713001228321389322519388617676643072940631715236226917061698230639407247612904250341707661294736591413710276661607225459658269256719674610563971492949585949662970900348254906999537957715924015044202351877217431571837040793372855884396761468594726858581520678208103629864005474133392239590082042968280471294995740946568940070734644972269755336841237174787394333154271295612378275067573168763113087073569491358450880394516854356307948100382110908619123428311329420909301012346968320077898077595141230153097137539795498614529648455635164678270393895800221941900838436926811609423421809670746546119754047030347615831033627040427751489539624556621817169579582124242973774782884435184338762908362828733292536833844056211735086959952077019373680288176253412934236160568975223858680572046935461503174466298773647023798922424153995059685849203783027334711569392643404804396861922164296789348800795584486850218103667513216705306083929400898331360285442117117119973366198154153733466858194488261292074850152559641684617645469574045210756055979015004734717488006079346224011493494703495661887907195169387572339962051297238714891532465719263298778068969365232342215499201204053976985193491831578531043316736270865103597183962986631666108045879501235993496399887536315428960579353304612221992544666672219971968355910183759004235260464944923742682948576468584466945910713865262806954917595436716859378488662657342117913762349741654211447060673228292099939338001439900158455718497453450869710545476607621386264883548012227939574087703589226191415678143368575852655061855276014803323063244461821841904510585840793305219305721371474781650816700978720609358015701503074202796717957188052747933026734707742651401339250607558017776057282186324183309801246498160932446073682682699849753270022721642500873801754526672754443559966130239518826145284162273535123631004776480313112747051577264861087344440295848813339666019063345946437160095125121730995632132633645134982640336694039128792682903209059944976692524923850192992722059974798099520990298650997077163831548157170576900344991844581739087116280219115163219453531581020358263999078170132727857515222591259393655981448115883521468893351587800334852559534144020338878438099274428657660989326779617819540652581602664788422670197489848543183926030557473916767837660241695034930658146373583922447099605629215765163624088656637072325919460209395184971264760717074585589362776914919107240576695864793837641779376392877804163618828396391187339582395482106832649359503576395550372542063766667513926342835883047621474644125970021677363057279642416654503192752017133334321036272465332552568858555964547159036307837115622592246281678152090258175316968577222132582812970684135568646087666725730227789787005035448929758109533855752860368658803745619417782496821286398455188792750630819180114084283512622021389490149836056915392892926716634460090313682151273648445312983995069634875563636728071171363533244713748172649419304611687095542960994293102282397222637734762978080707149830624165421516685137469823834304988729830328437080769072234741322139067604030101541073808840351863761789410931889345978597017398780729405960795689567788917326093176359331347175633270285779642602308220336401660559630758046010935798249372957867413236557633898955277294461954793433470580389296372938551433933060673684879228939602803318458164283343200008175841636111255299291907774500804849417004621361973742999367747360942439544940101797728028703852177379949718698112851908428637650293671337796456237656890766768065000249362151215016490142879551278531139402139075296265228332406260368528925676567227861437109797022607439967557152221370888816909503454001564555514071129103523879401135765938366290208579221237019581524540792340417080980631030445934815588520149970096425893398993277009035338290434909294448254356460857106177217307482523163553098846712093677995236123812883930160535016168448445000618879712066006580525798491258907984281380276213145613642594750411456794104720470349715742630311862636224282941856049175810514239248065208580831770096227370640621137703597058638803466730621702348687506183134649526752961140471138601919046807661386699734593126213181731767459642609880372876924158603909610181539454884394570593695990677349294264145638327869281839808084225330365340484995637558880757921633386714726511937536697579751917770170275666888479317684215086668596132498243793354739654700403837377695478887003970319021373102474593068000008999549710500908271560063040639524341457982012286169767312344355233863129398930324644751917796162914527277754151794309281390350770561274542142774334231709980690891849137417227623722336791366268960626321712793811319746474784552106895870129323438948857078037225816433588226823946732632469094107079780486790424629644496796172616867161975086088858860471624512350134973902889171949588613565631168597523760821481444545809829799486160634904212238367634402551992503384282933406241186631832398206829425882522711048444300443296698982316216845706132654696435650061517648612514106304120921163039419622806527038382717999734684577522524121447288926675585397543572767405766280328686707713920577296106783766142366784197092804958486606905830370735825832736578893196438750697926465897779558083930034488118811262578117512888896814232198594619031066264886785333702090953542857289763061302042044025067533356199176544312264898351719756910978045672108063839755396258025195901351022949615005880101190875649025060049939152308783488306510186877177087932601618842481328358976515635978784463348182822649860402741032673093705143035485468513891641068491237074196772198246340826866021011536548745655814183287957175450353073926410494233938085704582548982757120487122748572914374682519406246897272360612777185130486313834064993599268313053748515895660775519610050382719463459593233925233156346499150241886435210356065720837980404905708493397448388196478814906577110938596820471519215451242638456817930127307067502028434788772217029355384543364023285445485481136703989201387394096539100560326042469643710926655781248784301169974064416612472995680572110436681492747369460322751756725862846736369821348390024302652572472761986441392539864477147996765117781145692690968810091479745600521263341492918756779548521827223851233392139107561502027915302909854205412085724415108654231509643298571179324084835242618930279503833001087772197006049708659736869407412572274228518893424129087207538690717115274709072184224439124261366237887367480315438573117664362750980731714665236476308877706714283978340812112518278046451151074451489244247345745212874702378050724745898606844882325898965181463372009416130757329624035380353121462740286424460609550438023843916142355988957649987020739923022150063643562096255926744280247421266873622487634869655722496357401445406006789955585240713997693543142391632951911065537259112377402735424733741431994214409924712327167375913764309819152773152010085179841635669764070787782445095234567662370807265901458911086580458695766054474718196556324228912065702712846505584931905333778779077021978377325355990052892159258982643995407159983227609383995491192944045087445902777257491729377881680268069052848386350840711091891182734554932535147196322120051156818780618211872149867294544959029403912275083322999175145993337823247506558116117648506512445694992848075901013907553596709069411502648340846817543041228536676982249890330739411446960758602298833040055274438367314348961820678315403754490856570576881249226592685135060149408615577838062397244577857861820678553219708277870279420306110189436349833375724282759436611447746577667409275347382522972993855376711745139599280277018971981740710585386079419787665591365122425808328964843869570378172894373283173971608068300894463405310315688961592765899002059377673945522202917510840937082967235655671631569938854992837695152770788075674585400743716694256832654395440827558209259202400611726072558772090031930895509720646038231654093109833760272776213808803141796115885626335790522382218605746649202294792431746562042707443023553173955938415370898588464421584081074873290102774730376823690586196942182242785578093745991127320142900695209245149863093127329765816415518311596726413028393085830989116044944778666679408590364640747335575228074048925639982181973571294475439507232344292847696761872610947563160013247353685750776574834914827698693828759848222477416590997439760134815677859464888345899476958429473322131261868548831707807911037695245411145824504002780215083681066640453853025288346330462538369338955891768392881299741408651148316747836034574518787363363111293477418298753662988803295155565196185106429687105515115108499629586867013980645037794836443927870366663155838208023778358858343348403056408630622435035530192695328512916748337075073198053359648539733880767968711675510758509077079031567418810652676734700070531024105386840346867474443171169955890252069852526443428280025422805927747254067218123260276882742160860569850791211076718866573422721185664805733691652051712530449304512093788031295777378719488959567354335581787223825064242488434511116440786816823704946824330225180577184291767995833067041351797912137323526518408598087330235677579480474529425191664095927590911013954338166390223482972159516644490844581538995151349686149094279096803765337690393511259648080496378917202381060996262048323651880283714996418435655305066571595306079229817003566829055308611637414563782579990040629459751178878852938536118278354463742024633067131677059221101823293557730221270545905576222694321657973480243446537340757660769287843732344447583131449092584119275596004857251238576969390918827316380211400123320374388612693101285546584767631742991476033057884918591555195529493330533685798115584184112902113033676735420112525893710044177531537245496884420317677163166123355147471226899364077712514155941175275625820702475078600551668490455657796501373044008525440055454311526739063882111597798640703987622751752675970604052894829606928382042999382752631794284711418799615319662639378285097785470119925159171073901667996933048954866343448041819359532226372955902486254420591986774663255262189181631360644706769892647056024895785244059447635028051204132111354163393687154082976016480295042978838344642120446063508157432852372188862961416611639032405457144757637036163895563985261112973612969262215241954717851695510524213303188428487445711659448776708727644006268353052493957932968365322297663664392334763533971400091745880515016223081496158740327776351228826534946195207697096775278358654324230919839135007849823526796210222637888151725421577632255710140191145288145502993339509518258813008996020065020712262705126014767546171756369233633480089545460438586281882330117342617007446587796819412017684811215188600150298851724167701716839655912821515474054990840301659315959807100854755186425952472355252541621870913062979351570580662588870064439516673152141753039775477977728896733978517870350810784687361132645822906452155835021011043720070775333935501172346579379107121949403719111204205735272676446888766515623496797298605638257354415507758195363943846128029352076706680838314224618732843813384073260704162997762237363886313262497007336589580173170705479142084668727754496430909661718399658265768589956297637366048009757688907897881182464817316264959197636837290848001472026922212440491594129476089755594587774052001824079361258340869837239462795895441574003575132501332108946471310659575465324080687592069599661834796047829204177929475756746313209033029708860830261673997844027482825713534534832741689155553821402323009253074632875628292137270737996829265615631990591922400006291426307112633065077424817631615550583772992402225672134237256785997797603283121166319248040090129329224771670708548881016112145584645939793447768075149296688597566620804072887088113477331490081058538945351272880443073370860352858121670570323895566802387747174794796578380404681184328882248424411623350234707818087335343484492589866688806751825603967569179636504950681982465930250549122709692958944281040893242317824817214054773544298958733331490998785688059769894688454881944965096659557305283708314460030312319790095553271973159571713524333099555762565524236851940487663341872969551103873795948255488347835314968139608769104778486988708747670596988138444491544971344385430057666947649404544160042801245450607015176404427162510660020430473811294362654380222885069393895694607363475612233228079591304638529772505905547856983982635805663178530552241275383998469114860048442990395789881059992911769699835590689927075941596287272504784458280889765486636104737980932314521180715256390064583328223647737757486403314240824893388184945352715542597647635980182690738740646462846396055075868883626153318364855015074654896188796775994879211830669193215039887086243202296235948954101696424977455570651342441235395606628783409652619319019917459440544750508640101947477118919836298157244923809063617776625912378189354603247727680657240759205116199927888263433478325568838835929880392148836961455159825980743809119058997166105159211631290672201494550257083427240708227048036323402524542318265887029702219101731291184398715985507369696740378061879891063506069855161139330268674039109446869217726057417947546016093145914997507424262812108435386074212836197896047904923381450772614304504223563359707047797759629817827913866127061257046938707102126542374291210568540212540661537293211155836185459125885017695236137313672142431497203002761980164554808824466310573682995592923350025443236977304368858677625737889442875217633079958868509366062451515093468162649738575343642867741760204925763735064497612587877156308608792496865165625623861478620489454179827382868285831520416827960645167801912475360190493137779005044601285831952347124210618359183649399632465651247299901580300983332615511318463923306156609806355034902330086214010349557000568445669984133851681309497472105695569256720442049987969695215412221770197257806904943926937058548299082900877728206908329736438820268448161246971480194551364294131088294712908492198198413453116753544426755733972873561487593842747678021069162093138096760952071496573056492443481786062796017288067911195779042509431973582961224651346694380400058784754989994330195824210401689298205207652112540199117185117566570254615180165152079342191447922144313537121220409064142511990023455827879200880196552731577774612399459942865048595398607902508147517625534541378028112783704227770853845172237684355601641320455211014792532927077603009425395762720709155291841878048312411681082352083917076132842144392330039250818425237082054971341458153413946234326091214402776428856710029780969989813493110105343964049725035918944645794611114581719217513139176391803605123143185521557841493997534529239957901804832373593669936186810035987305456623922472494468236070619678836707708382584595153841139559755056715589462055895534215289862546021470227274950297168102395535536778794345671045737851391021344742089553182034869147765384071939899020798721691683771447157357330017554373251997752517567430928209501946394255149998339069318055771721883487891019576253266536731909170660198971988376473729661027553752046821286021159621972351560482579527741303940923441023602075756482200321655345963126739773923343451625185054813505832685457469818006990391835950756611066281639202970589576704488584329435256534735409208559243041592363396259816247521236411152820721171674301764141270431203461204582697353087281399145086846193766861714052945916577648154509685853869974299435811230216654785578083557814605930877537010584166503111277800108312201541709709630760187903100022397411929265182268192182955705339813567208297333898291674992773976448741427662314838243787509920758945967216683041189804394323688720263417709373097865987447332757705908133999511614481012807429392068629092065260632487741587663217810028006039799020332123493099614554530408053205916493670830385722371515930628284089294428726169347073933762938736202922558440671297485972298436205687608455657984140627539249019615273366859987164934430931363272466273033940914981954983269852556571597431748784511677183251766092935060766933525632760047428438434671193051495104978649379481489455722533038276653352089008463406566665292377954100939199003732061806609240317929377728024497774970317006332767804063094448516865486066584522596526364939246467881268025746832666834175936009415466853193446367459701099167689906992075336310632005883826328794381471138273170540220264413945787092263370735584053751952711359044130844668478027194684399088112756975000703772001106023970218294642683700704979527776680267023701434270947722727392675338672641735037548981194254990185995255938288267646581546002186846442011653334814329083334484996195826058907890220232004452744009290455354519619670514806204030572163890860341120579022191734666039054205419107161236206991657458684403476354168756404282615554853215002141492844492333899132153833987660544702055100418852030626554769588930998655157059441200508190983022454451102104460738187673446154920381806333185209726390160763168178579734546439151693803965951969417523808469899684765451616733701948471357093831479023521911775735658409655864366075964792626427229448267935256178937902886055096337698635059836963808777595508609675343879656749017751262857473461928395089950276508519315981757707550167088628865530879902641995316509624008464702779376888779760934042040461707484876482690816078064788221189335583800765488572174307341821217842799739676354770950537678430668283705970418946246439788453418590995466758217584312898371423797256106852590136821940451505364460221852793878877638845195709473182240870298327408025161141045367350387788304020993943155749033300852751861931590714898433032696726676703888490673706288148269096493976844191542804562502500220605489088421361355133223535132797369992199715116883470906518427407972196335317069462210975162220973604959816669711294972217749020771921309934559068383259634405468347674951215121132568729742083057364150949607822585201646706290859375792467701840143553570204222803502356793425521599979295281416781270914743401904865911170691223804261741727894787579351579115770653774647628120575343042523100666568739872433700155185373415722664232391510558242588003131779852422602245445142871261023431119464725424605408473170104143982829115766969278961041243192949449957673097613576506465327760114807045355306615449701172288603415241332097820656965892875237858125271423586743374036725484323964048593600355307977688471243485917970652914862404677852427684289763646884881509213813135402193602814072554892200410724709407759509557105362362112035945196038280476773661586261004507272420177729283824258074823999601995744577250973613534510528823719423653501352058664746971377933090316275962642737266185866732957461246501914551040857792783893934791753331456810280299099598787782842005068880771172526915386096068444003310960642289319363453613940848967853364607544610844151255950871249628851064164856323614485898340574720212271275660738458847233020725890814092135964719327915158905443980908579341866519444099329095970449783394727228058904659371332092559762674471867395190291975863464469848851573452087154747678911292218039748595650485991032214505654428581958507806584378724467673978758757311312887399514055523658552704265358615243351647297094177148836206616926126142106832029600929334090978214514026339830229732400463694378632275240991475652079394374731615493229960433439785574957001175084495263965611888399635563433649419035326904812063902148278463880899456320196924372430797980412056018655366065498895841786276176128650247144092448271931746993041924720380993027129023527380814057853103199964460788194116546320945234392516885103859607035354791170598475791810013902884174260583335188549100686555130285824820135053317904578651664944481220088289468912680715672281684009495027874919836782650614271217942084961088643833177491652761378403510125007196300215431247450794526591455832888007223470329018766019488961817503495330893788846064920685493585453142860578859050312026988564712588992460352130943700737981380165874609528127887156927053997614733397280684584907190158670288039621561198586510134702322289722593829140223029028580799337970943871159498646353202958741700098221144364623931800927603346659126536407059260719796952744747052664190365450803141207005392029878365621533352765214227117484092857869245818662412362826363350321930810043215115219693401332629289640879926754502774593906413175147257026572508570015233179209268737006066763029546255629642939403833616002060834666723665968811458570692839301693976566421880277787592741241329563211355155496493226377138919280728382104539771741757014421796438135752378881259453601108176557505009280498312925834141348245440564417618003780659912698063743223361987349960688912584300888092927076065660907934025504192188225834955334551890703105691346403949334954436780226384935456902046478844170128388826125756223367274754749081074461014968198004065734285575962610766149655115964863612915855417111721574342065676068668278394587810784596122328439480431774923285289082053709176583804376539673039385159470516204596651747359473939604537174209582456266712852078420652870204410089179945687905740955714905623977569900800091219676623511015970251656925151731952909420601657418814891816260290854598432997550623703552399783410231254748537468111258641077481046983145518300520850891166519904895544810619087869870719971568806542954999601778828231049587569404715146776985780199561587484205017854119647700171366399599593272751986790611671069152665290813574415148557578612976336941405836230193978374476819034802894325472615455168844949052998549657320975900761918682959097652670181812306130714851548410422672369172520311592712459953104339628318500590168444632724865326800160448301755730922838622404542898486004002857645708742712927836217404138215545695596267256605169317025906178517387245343730994607585553823162027767345434631282096928723945793702237442464655144536336105344909658606033622281939732921044663335192567538270606929153096787144709069100850397342970456619675711823158045466711949003586102232713149797221446834940205741812301843574470229443379580998304957341685689681119942127502706568946874029986851500591409050353172616007206163691153139904668544010472826638849127683730055525921084437869371860394729876350199433697315967749487204985656538096132397565434067493561359529501962984971321517180717879325086811556252884169176081475126574534885946017370680084219199975963497267809134858975519318347940861863385134786996166428097245883904481969983095857213285983830627217840195082771714846133924952213738837930620382702426573723566965421084036243959678490419939234065746362204461579851724553692489214967270761387289386374736318946382224619453033222239352819229395439613774960054575377492334587276317760336987203373431416865809604478996107046861177218633601680558507562762330406776090929588626418982021651435490871740181522364116700566887637569980206287840781854205849435962496715238130358475334549401352684756181466118712656032190963683392742450230574449420379788232935428225930402645083722413477221978755819263428724860624894841203889958826790708257427554060801619394316762892051673710563758646929157230391613543997683479233408133593348475490858226837161127698366555062609015384099862684645247243188752513014030179413930157644875296273999590322767314850754309438311401855243552138138054176873077943834301841976225740629980930779411107280190899403809580675171378624878277087126156698175201907936693548635879973833521305519020504360697493828800255944913543210282859852985974093213784044677778496768661936991173645770194541042668778783228225249196008092839867839603122115877129154571958115524910045866090652302650960615861804470839481264826454545159050925964932489612624233732324658230268914966812871086784911698122343912555171526628207257373177518085270244626128131053620179651755675611145982762969737362211694257775973866748319513441417301395165535195251805919352648954815311989426762162983655895407294464643039429276554546823248050246195916139783116427350662307083854835656519977446753211103878973630483974125561970779989970178446071234629936831566895789868723067503863621487253314462874193381887697343458530615046445640559134144009871011667836918528580578923631839470110539137506338567977477510161347430634776548223603420423006577955630398556614945326983598351333680642949860265355825571193552665657720736510032292922287019762995872301489826853821018583238180738712750757165520675849294426078717004711316081888092934666928740683784704819105357381626470926005684500736411936429717497712815795198522782630227799353233791004488297305745052496758230169149597057270612298406047388252830339035389965425273871429325873331753995843529445073390524891064031588597995098142929495535475099190658558989381498760009148916421594007001262721190150465044398041405415420813098717066551461746525903459185319169661026369651591292036959876589035559550730692747604557459110533654186029230717033624460071579033949983948530989887772923867909440520712308667564082775376307017941671132029773030716593213099269307426169798572486918945020883797353081623969815808451930381969688320597009606500796223542121434055447913009590221749809623305454391632071016211261130348951942132640083450488027294218926516517011164420694404362073690803692292091629609462435205138684089604868228875333050923105859288445195371480837528037368271083646936109645078933794607666036462745057465427855820959946968796942511845622083052336532639240140865335726536622846410105381702074467150654766760040922490331744405447657440867302576458868503369713220899997143344015536976833354879485957834334121575482144529121887175174510486229655729005662842756467891249507656118306060883280659615458553501253996848222221681426853899320808776241787425018214397158127028043065445024154839409909346715120712521243520690290524517379718139657690547488777128849848868614214377445715619166903980374890714598609105353494701430993444219823546375691915563773864864778987322950981005171955819110106430440391566033761053124331534541604368974124552582328481415095003410263592421931898319015824921245075561084137052363101668898538675852614283704943209901335948229823495838517284698501780256629691166277150270426013367203100676328984458757660144962734097300997227683034564972565037831648358925940022305789770399276618302429247311564422744733329766552009536416113708615377005117802950778886405823507021913518864571334836463193231467959142413725453615272276535464205182464731750444521768852499384083229060659249443760837644160885155284893241843929095897598740127674308728097976563405335586150208319383680132883147981299909766853576771614179958938608862075242868149807517308401832086930893213440278976983048118186880427389556372773470676017310901865150532302390767440651805034124218819509217846466894006716987481027253321805374745758540330177563412826689589609348377829917881985887925736239571278653586833013403363890956006942695411124601331348907724776504914052383155670170589565524053984686458091543658189800548057694964667590293357674317437259985881568870752932894095247380483019270624681888089842162036050962672413602268277961356297334497445822351824805897332378358544785567805421070860674295208147841661852959661438243866386469074166285394172089477369017081984622685006042356374950444614317450830161027746530679352258658073849908102396548648125168690522552571554649743875745738540065494845413033966923271606611473094838296544202825482080422414425178136779459394554763082063436082729577230332409758674885934847032718571244000814549277423032126771606123725855314607991988570275457339774320440050838986384326357010503569065181947598260776718667550396202985525207245715103530801154456311789684380704571958366726430343014112842110929645752150666284934902133177708990082680318682408554303523211789756709287592450336520898566196041990311005787365274724342058453669795779378285436530722165516068096136292747454538785502600206684082735711099691748534683809206081669791950052248434917191079835224851469964908907883573725274528363633892182137543668114753409932667889671270055981183146914715784735403582611584862584144318671660612640951632738081186524263039255320476991528247104150611357979139725191192405740634164040554740178959613298335085562026301855157425459842554206672545822956129861156146437135785335901942357592181772250179348389813852780800932820504854377812346398223440038327033863002935324548508564896572321960271263994190384444145621413393903012320861980527727636304298524673856167872632212926348388639053223327232760106628614576273040962150377387433551351751758787535617786919908387308371749575315057066088243920386677436802133316162744273323463816075996767227207262409155100382158305370593733428491134052068099013487877714209140747615238795990001623274933157621712471478025842175613328128045800778242949612845528348136912444709777656111880618712796460413166145074752979703467372042148058787006331723092433950480468104398423210486622070097564134937701215181386271301928354259978953937420436774933360225442409510914734270389444779060534671266052042658183184627584348129140098388824826290543006208505056272464491929648272929380645830718295327304913130866617699379935133288899303800102580587870938397262197791752209023451890866303072200710427313174878872527714374745669236631178606637770008858477128427988408978603293152789961606290893084359921952003158386562114635295451585169513034042320357248878425420196889039068112153698276926436211516577195326598704158873538206293772846032870539775758717848690638097315081539405027062619966361395924283272936565982925705234281640978987346936996602084222443259583762323215820213179496403516196849181196357239243547943874606174037325181048363072443110564544490809863221045251318321621210006373563723032848663309078479722395812482218717905512557122905776347680058409488487677306388473527094621650699550820288627074100896152541510586577156202459179524708280641311866217502189940671074216775308420335960379669092955284322882282069782934239760842402871890796101813061551577561781751542895572339944191243331983367175952827030475629978828394041332263067321722103455646663920049632745740259453194773777686821312418499090166889241690813593264098893068524185705477787772307828542643659345000660045761653374727775039093159323826693971103367439502310089750781150983286657965596189801826677333902514877651853388519388507752682830602345837531405257120511978328835532193251390537853777541677663920449279316541804457191039554567645293799793669193866734122506341995212884309098268853202766705636043701765587503474305402471522840020773350714592570888563525381059318492331906840319703427786001895380562303777032993988812636966583788910104163668349828633185280672464838977925788144037077066951807727686508368524352102218695215705258143061489430197065631910125460447664197789473985660232989197947793554248345651772555983557691771413096321557106259887840710422077168170594078800736641442380351938747671102986698712908444502896360435231603314309779946213916217521352041791049580106136542743512573994891441232717064401849047995757885262955958572625855807362158653424896239729861028860659180677162251143934216462541487519042820246236538927873918932549371129331997345353054628977595283972812661811973949681676693120779888277199841901480765774884316143576875358509427042255023135803923075019245610310346328515121430428205005560365331956375683908782097851689968766653784784661006998063110756474724438937685554257720729378667089265770094501406883410339556040026399110551431678525539101208584369033361918147658090565747237827883214048379426268962086724984108617359071095284897903514912418731661165660310580905897680398482363490000130284603105847064814898257005857052879437368588356365526217660348608475338563440813089320430346359628256247730502188238473137686385412194956182109986043465001287082066877568156061508211732738730731596071422618451628418847246638251003549929435604237708177655660050170164505003969033006738781975674370568988460236127318716716099010746188291371128301474270001913349171399943064349934572671345556836019605457344469782346856819340642631237322829332825070171098540921570460031193576892795729096644560912453199546485796446239956110196390959584268135040226338744923104067161518008914742577645103932999177766316596122362889300074140502852671015459968823624917447637499560208633743289349167472350295659257773083193586969143051910414212604413072854343697818785498920389590135270841681783575461405149980681116553385140266980177442617319418737848847953333661828658788867999288585729971301451336475606220303073156219801013738843717141728478260727979213111979413354608517988480063446805533517420776958367965661271856565538797234213261847234609040653373106158210279849397049161739286978608049413816792935721772369619966356593914579803527742609025410473589019295789615577845533010852161747589740857830371558486703925608313474312730797987112444214356351343552870394742672802653190063286776168300404523500115071395360904086699585882599010588904481414693154309433247380421812671414876384375392952668559511686843902830133191343989330895764334480178957373247419160606699860757802630827193595786460911535546961893547893150444355958030097081242868615985488042534256815320714882317769248957081845860520436565662650210999309168040276850840700298021232695616797531062761179290963695457921991110107228258031716756656939715776765098037240174437490114745641314762100051444268066847546880818220156191994798265987088737011429419109717037978686446933386009124718982915553267355972368362416433472655494064935450623532142085479054516518643858937775418277904622107472433552170734341835476751509634231263424739962662038557746687442405132020756865103403048034675036601103528321134272768323276400415791005673254254091182175632844529811585214153585241447326607658611181432250891305308534612388285446739755870209616537405678896149890599338906186450356627639039582672060241688428042863680568133808428593207286167086224783930758135519694319903267621346794673598070264174439712722491315057112531571059436662324302982966739582119285418527869524993907212228058655684187150810512502971540584632332484255240457346783113252954497802350680639007763267883615732913234445947335420039156863227796788105838913908539772789243041602086934264049273738799004559012730416274700875528504859551426987573545557657958231034240622614386947133342360831971596698766484270614094879026951952991557486454389055585447039525728998030140710877227447219926210252959040963790970937631969004013676077643376243097062121443988009078434538509710605131276945310269781957832161131459385814400163859232769425346338176596604569885873508920027574316780755388982867531790636797364353773195834282338425793063712988994468788996227503161681916117084923573219294232938530696609884565766080774542117845605218280513638761805284940125075152009067512966094605001362267995499415969530511171961284672471621177052862648765608728953003844758680193870177989282313268336346745893352650064653030880509451864172886578102517754133693348137971055046637757340562833737388340943594245288986654480027490684787478644068514905838656609287208593056591803073571080743301059719963092966801427103865906929108297794604522991754401246826432802041953928846486957216067915826056679181326096989250236930145889752168712745156766643512272667503460829316588196621697232206334975250361869786180224629755540183499696657713159487154075411945659156688102982664898433938633267970134203291394930587339129754084840071754144946925208192286575402056215637803368451287932855303228421317929483728932155420649229632576746044404310664014962102812349833089739825986364157165439077576062748640376193954228238368572926999661995471550821667496425589913162033895156874704935668528222683931900023160530186703206402821162425749227540044286554039546989147209410216726704843585418209357688407511440139302743269622750548482112829679231265806663502397741122362793822941974940491100627503227446795581436278246776522366775140551143811340466804933837396216271858712495975138258907022001367187205355936835401345912456418549228732248646270420418514731152896615932519021770130604309555227844039854717162802068453817479829035990516038751780126695019593350920601018452479120002214336714999588901154288857564884022497231483015518371796978629848406662572912491060638271378730215998308982837388692401548060087192903978541807950498018429642836320269442462589731429666709749569366247323950824416565590480323018128408554896703522922093687105083478498760736328142536462543314317574291868539641774702657697794576580892495502659417195673066974310429352312791584106719986769064625876117643573466780829807116385247226463969217065475320339875262169833948766510467842520986526765098859930805322195296058172685237817093620281325507216295410758510337377598839119148653533775776481048891884336771031644837356725422192195954394706538108583675018648319170820455691524958568539674173021125720444041019897658405130994976463216246478657293785554772051102626494064756432259932294243926271324537489441925306134925426975331832028877397080604529171477811577845041935582958716798969670563036248926930309859540571010877801753884692838146254776848931963251294799114113959566127480182117452347663250952746045841908565882006279816414063841941283875398916561772674792450367160381353377700215002669874220298383542833330337197363902067481961108352496319214553968181237761705870920046192142761407065248385090597718835187615895318430374191762066417434558817940012323151385588862440856506880812898577543367203080849761215071685137001720160900234256769056345422399412312700282504854558044854885906206037858658586050969193664655516180941382455698365612390917425691031172029618678121338333849309468191791758943496544872004868976375728718606975274873753494734492162157474874419492724000407471966462511841134154160170850751650887476054639706639710287777516501119217389720623553276836728852267797780158302056198319589939488498470482836586095350144884024526229991643515615519418587478714496933626674991149517862366413928974268648280751455565045888091213506805483051453301082364952151423532853960926689577627522585813363310483627904981213443941396267035719791729497830900627809436365229445317586240389432622104232182054321796076634159060070630545998322129995806676102207826999538880227952808672622541886423072598109272297771233656395354614173527426740980725944338520090542817111926872676794387174970903029440836190380268352296416472653094882050316519630803810402516007995890575207668771492753864058055763416225804271567127624541293752551926184950233926482697304801346019340914699761943537434630038602945076517713817469182654180289440869923550567993907199548248352134312038876211776147018292794021609415284245989969312034216713900344999543938260716206742175190348599692161732342734159600451755091934289264913446732499513162330613105933643040967478432029229377915340466031380001397097018292490039664859020282399244985335085228719987513543814756500982489063739709453319504188990664174329288140209991485878164722075112203105280275321455337584838735561153862114123287628851862196677190028562804695403349188182784209702245868436535028347791956130173718109638231462301782032880749933115940180111850505447134101623862715436589402814473931764656842508654426092160443220994405246122446673544129391404223505501173034558232924826880107706545428400873819193550647179345286099719686910427322815322362221767296412273554380501639219751106461884657003100794777639199567698237174033658507828609767513339764243307104653640625370078598154107437391568706232476648701931023647476755978676848594386986464186776749673004509970630837122947499568705283186873388039539507248573972349161229878609451948323623080915222078533359358026306922606080626540376899446423480937163336135646054103133534851156499607077793726387284238550601454914433882440684965657382084784784339748056109543524783813398503320798189184461598611725844546659654576584719507028371755007713464738952252637775667630405366283688301064807669864300957292485157677505294696382956851095526318782249850433377706024570539459598229991621023120903985993036195024741020992463722213765654361781589582619653653160079563693491717567230652427873732129131549589379513743174320033669205420665556153528429955885777245793110367411907848792629852468462912006886007242101079868689249395513115106762631485218362658424624476196894072636861121299519580001206962237984837208102139638173348493724846291618746596492980240257698304362654847031968477152653396082023296687812350589576302229902027435061158576369092383329006462749098118457243997448704030195300666602695812711421995642528546396192245434648424017012404598455970014704916463267197329550511231219850589541541287663807953668125161446411077070166629164817310767493101708473897952159701477784805823085524425260420365385533458361102579564539406934153822027280043537818051880531877245734277500019849514742846680863141969449390621925483335544264191025969434082238405451793989161528226203873293783728327844891364374799696679740452366703939507541812179265985021367386153044725734491453267271393209057492330236723811594817201913430715546727748895613412486816588480448312979774666589835691855991616367598043117957429282417320670762289690941548804749709453098147784056286392238551026507018948751435562167172412918268550419288744346874343695987549412035191677494151448601165957865820093938921255919608382063594821372261850143023278770592624148077875487369435237579551290409787146383693542130031087622265057359190507372747083826967912520600365747956918479228439337531784740076585918656080072121656147365917479346613772093461437116982219199708070988411746016770867903374635604810993124514030280214700764412998906358468548514010848075856397557753939899526277003590123942604327331771997882085487114494531402133620662372095419329180393379966842746595817079657330868514534056437657623887342010539323669403335792825302384783684923387763745592927070273845440850227731381793034746746516537890422323914130334089021362626541412318463058015468167907206750102525091507114496028981944470653079834677320156317572046526506262549611822090398516604324243355116120276942014231094576341111149424684104697463957238128941350361396676006765111407418463896490424057416576893141447572729291018807930337803210183863926658223265921063244994278734925922501288044218865037297377079227857239153873357545062332022417965743128744916877057206967100260289448153523217407387397414590214603916622136772525311261830724069010417799877423385010283941876332961663520166974876213640217817182512801988418075770821078678588207792779837294840229447635128129401803748197730431937365797167239718185250681087252352553375873487584535220206706592713148344651947769700164453783110084103525365026245945239023849792528328487327038451666886949081269723590497169756624887071174645682018177819299125514543832365858504349089787829748507002761559329666694350590667658754445398682483566159176274212365347731701429930273687797885270832791936891310230987120611016411802986854815235950999457555623546125862479980107622507188102209792018655137559891738851318791009215338519716877500344328147338326889737541790366436388105539058989442054331009059135612518532305446179045771841254239074563546661182472836871989441510606782126779617477619964731633499716577726999373165702427660384669603591557452867946825930093296324386780682750741267187150086784269957687439077602084493387820229858985441389095956569111288723258004436259711426485340503993667043856464015496698410307061461825800000614910382636420759682716187959282293040417909202396407208830044635706871208322197499265584043264153418413577588450602436421446543905600302837810234515646151222358729265291737521954368689334172382154091374723901130765389819841036737134506091041558512310785381533665391444585086162441873308305884968976319584086665357695363371759863027020937662450551102881595393524731664906508133964145212288948428306256725015676594428873110407422380894956112929655881405640877908060057573372031969045121947851343116784653467247068721752269091008581220924021110996311006670642192436174792523664234499990500705522025207404402284096567138270488217368797623347218415306203775962552151101564981493765504361159938107086563228847424775865071158923459359744622633568402582958905622839513427777393452897127946543033187837205646879920474429280830324432464635951838535137545910534216171895088174354200984158942137549981234166303058768824376649404806899509357920472870206037197892954705066581139918467367193187453213901149675070859176432546343610359044600807621642262444852465331026713094967648632150169741716837603706136576430686159547201563887813080345466153562673534410529082389533184069068774486153231444149260596443807612472296131461920814960645046289066975148993379076728308407819395110407227453199058123634048046121561096592148554667381423986736153921984021329900268313678959284556475194169559168334137041735394132280042131474878768906910164913215180327860548606867714645440130073261663236774206397474943480083662620433328234987196766236807171906799689948352857724903353937635713941192020676101242263978802677302613979739736995864355163688693779689389923090550940635063319072664528408835739461270106535349718664942918507276342367069811941163487946153187644072291012605894715110101394989047965655996129861699412535633892367622747761056945557180612246794887128077166482873109299068412312091229680388429455590518050066640880694346940651713983604067947767931121579912797827250551618981578565246198932440480247263219700696418726037650472120670425956353945996223808117872401922942490512666599029834252741079217271838989578150730796486323168404988290002079924070326950175877148827564359190412047586054531251651684392134919173392793498033775616786875988359306648062650013847647346234086588154955210744637765371265882451133232784342471386836456718898276915723385703137726410510651555036474731457251186353992739926596951575135577840442701547154897615887469859997994687826058589339357051289184549596319334530427226822138853936158203090952975673112189811438176784832021961651731057970292998144538141482691190658378502218407200454289062252695932426382746374352197890854215344742388344156940548715979153950907767325663902129487574884251737555219061872843730941413043605233801516273245125914225195418903471454186984173686561738552887038718307896871303253168962149140722131945813900334794063676383821450827477848656880555401169995772867088815731277828298917493715519682055998919322560910678951987474813921878692742060782980121009347097710689156686071117379478720386512370395703237753514880359032300042480829422020005684200760787707889224408464301278308553409903687475193643023664731034596263896596557033266939683396923901569844759084090088970339407168383880529143672789511356802797816363587207503441998964612127339979726642401613668067644239359522110164977745431172772953915306950681898642090950942670797302199895801690402434654154869322705168405211790040291090281672576463902713011461834222189350186107510715909343521811733803498350183816852608367655273425812653928540730717679687947698105161566817426718465339002792915452221889251225252311805574812131607295974956950265071053865527278353597485411578845017481467816762715247045396200340445697832915541470940787704880603305482363738747968637139491311071049166752850804154029097485254098828838346101575016888700527586433795513622578199991234581643578064730662635609322876612690563305521689352623077175047721618158995419313723546965651186227935873153997104027847152618621360784190554004235829854667880824923684250756661407023036993624158007162126057761980623958588004143397304631304403422852504277810657959115618157611967803922059138060518096188200456440143352742741473218181493761138837806948477505244342445058441588793323751555437894674546046958934583016924396290725972433237846852612356914502139767382115621531197120838636927546907777907338612298013400908079507020916916509904215940448899054438225081516295048510486773249054910804079206555721081394062170554438642999818599956482348644965058234509086162073972597641898943225242031315472724964235407672077007801264797783679239359717932481569069238797114405655842268965917729477205893920330043058986752763224847597935791519080040907460630115820707473964305713239074572432646693633289331414602975532514824127424617900603234857053810670253465499119516167400643753395496758671203410626692335783226109792073985162252345833168092548535590691816393038448173899983305507649353912419083597691346211748097644983637909156544838924782152315289453698533786926794313676051990632130250814211333624584283096530503690191259781806292906109185217550804216208217413030315234654437609407002607321222621681026887662271670004603824236459428496611101616821021096209535382601030299513333577590552611924880495893012552769973312218085302203813163234858241499999318134905425231102829589637208270817093215738986173967495310006607518605607929351658593082204670825734566518089980726187223338353269195378024848351405978027575219742052861525825587030867512101481908625120723279008312862383515119406348203374392055985666481267660884786945522998990451215152236090583685088501854064013240922092337000506675173940284055250469829166503221155876239336895193570787125199571080310569068681371271811594333342617193126471581564188769537747821712609028067801296678057468142975855109094600826726317063382920114546574491954567228208279415453406234594738668411003502853261176846843180727946474767801292527073585639906458815308179338075517848278645910288128401589822647296431702391233843711823968183277875801331920962142577220174882827312497540651701791053639514891104840745563573137729362895396369444711710645132936476315019982136484878706134376379995024312822895152280662632789209634899110526160401347120537647109378489266085113878075063129195467472175319675609248194082001416344068001396426593897422013871699718456962273379479565100502359392113738433707208458163610347296471637434231197572839100895151962973871331737284926343340708648110783657989831852149352489022815056929693916633668615119577311835757534368177130529800435149706448622423878873245022294608890409541244431434147138890346287676197692571537037823197760364862862763347796863217661561067011562211673436744300499910680504218309583034509559769958152153246770532428788224904755261772770329721298999984980356423262603113423335502883018575908872049873177524584292439951482667967306838819070859486743446857308548198329849652747527627175077429757650109385709659647144253871124399486134693311380608732822970938600418724347902161778337390158929085787754306163591953008332909925875221892070077674902000278682218160835791111548207444695149116897032930056669277199377309478402256268344563723907035940309951673539768871262934718681143854319836486144669895355072846360317202172968447074726876729181825233581969893129024612596031850625203833976008872352689072088592680737339371474765859341238277244711163982303105292193056402856219279387650676388276112276764758017757641696905209033618308223900418257552111102771062886158241725083437551431720480433227009632332613758258460168768597097542475994315840804184693408255263313739507804588126701737202006235571897525272539478924462267730489091592144758974546335154273531943024992186018189792073295861573157355131415130139161663621943305059330225528192370574903773671789507296304734193338504513128016850449808619689362220108581933120498387992276612521006179311328024960715129678262568950314723822064664285032755114818609787282375497242700755330311864305004884963756479755334079652214253791501394140022761314923510269599531538601073117193154236919178984948960037271445844271665355620924285019772695274741451008024711136554756220141835169520163302577739722884280274535751116808665918500219114328357542778743405361238451954005041294585313013554734498813032099382712494939713710316416635364468476204212719015203580791127426001023787974644744127117655445093969993731312569254968223958934528794209955985458321679824595054425684044578889858907610594421773106900821973862459251920993544073101262231679504126913596381993470520985915835988853532937116617781755541003023973574281198866119618611323155015262652299136738275409461067225982762278742506049232580216718667726959245729063206806692138013604837160714577314214739436994899575896715239277666456964729315308582300293048924885180964184504181628931493363158105729497314752998007691977622644517567541078034209224260251189218705324421524321719369413174975790757568594005689304579436475751691554207749906362835082836951738882066157588636693662617262610392391115820693742808927850737903301883410574102277296399189697223250282566496746649027392609432009475065601344145305708511602336290239422206536556966329811205949020234822555724697978004020998489294172100597138600669201000974882593275248920372836662595178973090634244974775119941233384428235405857022902496702071706919195414816978318270387619207209192846970992302788630458391522257286837786198266298912361904651929028834586190335483788035245775930755484857131913766867516659119592566699548506257569610324941672657979915728523639350207877515164882892140973610959051173997875223851151175754274189014181798351316390478890230920939836136196614137670070874272279194781752966498852737655882617164982023896099522480061540641162491337892898183164951162697141489159263104243562026465667727118358195911097781976532306455687473621046644482413501891325860813979849123769872849565283906451256497119808159981624346144639601994289395850553797589764615802993078666979258261582646875912264304773699031189426990157266411085361127709882128380645609091250640232254623290411303555375439595023919431767149648773730047068513029442345239679856761403611462329386700444694220216764837646250937205769157096873172105621493471424585329949330409796367554861271611607395557992384100336302507796837920699355873183760662512100797500241041162756146138121696600828147730992278606503887016383428833246063882062059538260729798370812969545215382869554188917844790134849545545682864294156802235547965308297358874950794706487589863591922063657391569530838850820096362340317313290002203517512099647970333126246044865964437869899835978973523866912832239351896343431682085586888654070712232428108963810762239272562002171492637133338792399378349296258189953393450497833378054731822993529482066091543909323104439842833194178477951127397188754222175988840642518100620578609283810630538893354846681313207259868340758902530194445443216513543311348832175675582707877630304285947631369327740618957508587352226191501170093327983879112559392413972810835909809274337882777316147535759167060579426996427151034740720713132162651723062190706565502706715283755849504052868946574264904924971816212678646642004469078674197446595870861910933423792237752857131952712243323161130292044005383688057248383553058512736647064837537308848132166539639637502902837830023914976125559903488272433511265650159101352189612006229983430977961957725597809038849846989040868138472393483603676510933437142198106594196392761876644074443470988669396634824449102522361464177520468383707174358750026856780680452608832096640629550963572300630374667382372010987736953099161784565197991827268813992072700235002865781223254938400537158479663387430442236979031884339169953595547321397764627287798709189139805368338671065891058910300772068654521795611086685420376934861389886576100068790860635732957430739238401643276333515780385503008379167422649311203568577107617175206189838325960761293949895159200862870723739536530750541661127058937802895622135650543499034127442173092961112560927260458153528552373396515070026724296899791803858953343987074538445863371736976185045359796275909660720677080066443113882983807815245784395682451063460720426754900834679490714907590848978920215343401963469364722780889773482146620127295038039488408952272063384313878858167133535260525541185380898063732347208117848563681035628974800166188723587879042052890709018013878584438959371857886215032257765020928937336057164461101018742957775952707294004684128281991422739523597864450179532832122100823059282686364901366992012273959258446096472815885149628769729945847335282759374807976487779380566761641021513670555243887166374305152095759117471826018382767640372483420882787018664137288085228659007986373314195647521619305714872447511175923532332359901548628641879431141542437925736958770043270642547621336030308266055873830357539219028259828216682970529952927088514293477752448853293802487258257763406112033257518959237233779964022828242022220462138796507676837299345655248690974537440727745573715264473550835955027914866065412407226917005375382928747209434409167016775907501023549215585062516782845641436233983599361160320332989767623287741891715386794001418308614514967327345375296659239578973797310688271746598666143925550712810804992115222007435932428795357686792578904249483780855089201312892171375897642270640511764886796463228866066299499374278474317927891588238243175800988129910105292295611490217105443575627214959426355994048549581803495926548996389853440848066471435559521982399477697893704666220177643930535176962297801510878016560813748208194573127192934907314149580047618951089897290619266950692604467888658639300014965942034196071192522728844654723272242591837636763600413599681531138689523926377870615125622393418329365107334994810330506964766189640529914495510154649972300084471783489225902328037069595626509542811515262680840959097168525218330287710283664054098195622547387522496323649428900676824232674336317148192645461147831642543190572067297849599694296388268825594530402832154118679117799233601815109491467948229624176588476497915422142719454797068385097050484787346791306786887606615121857198973708709411089258024333525136970217060068073106379452193576915560886052412209840691721656973648647406395333152568464640500143527680385391840367065925332183908558094793606505641808364756396823806003287588891327495033398668825152568377617925069555511089521114927076275110142433205029441061463584580713377663671165182457740245725967541809530704773928349235132443366064750301783464554134352462118462640246289120416851475258148407430878755633180916410557817889739751795898014792536215036004031724129234387652872151517112974935069798611038540607649102969522578943730112046176244387441781773736692268351392784013539489328577449706170360606409554701858939856517370546015931031719826113423457704591240150456563912525708554539020473037118061128515537572907979540037178673352434165858642602193512499892874159903749263877069191155720573075399269030210200825400508394919207797481865495206536306617356376583836858674794430238766764870685950123541981161108563732317706429668032093644846618890645002334439093493611873085556721179085547101389876766297310082627482340870796678312499245303906990938864790339296786751524730648508417930325611874505997055472931592700216715831746589216218031730155521616206546887946376672777557768117897783468866424256127305355724758255714959844607660600941162587815986951826308096191903084614812697586276548698353693991026803392211613991651155556964459322094654124933113959142044786774531310088883376926387041826893938998624819585143933024381355275219827416306973746269923704911593750127557646038215522940938555642815946612024300055092985708044455943297829809284025671944010400907870753996913207096751346452399805757600762473531170738230671025398972903655112813381776380400969085110344531783800933346797368021039200912137330660549286982744469575331817902145038867384606265288109455851857397854510739048564194632719632312899401667376865625517447983179023584375104066800579480441544252058350098126667276001748903643868733798301468177127995832020946975496870256182169961449301963903441758230605773415254956418291199882153903151767539452868007867301502693699445104849381392157552216172789066922609061661507348989552985134420437977192969804760751231485165549250558577765230858323680004287339838360540451604819200592251526124941052541716488492900200020897541636838073246123735127737626697926029125975925406101942326163994868666123494949326805525872990573273878478714224699339103359049083131897036162990383395710703048744746718016972908183005795746204471786184724508091610386818822495836431345220770924418436546229536583004085097546946884527502138480339189254838281924398267227764422468871293605958124158471219790499698048711093857957517081484765658003012133245506389853117869746641090756345713245745978256333999886647429301576326454332606080052439474337218450449036450813947615353029904864490247582631416127629833004385988176672405279592109548646041173508582709495536255346378747152564274569575017942925245544043860058397663910884978153495240875238171003362005124446703230843505778226878700894354558279899123710338353185642606767923788208395864688782783874994738988294298196647998326710966317944796184456178233929890896628735408403896507009417023006424877441330384484153937757062978727607343378363715078384547341532921585444654244115681841817349273726452158310281518968540115562968754262070353241624215674000671572038339563181544993399204642061227367953327115700419829945529345158087157464559589080681760837382251452435610334716977494542298282082276810254326809757520001743416375071800542553232232423694605260435083603367173570980338033227575431335829311643462764427748180314052183673935062558161913019498463954262256162472076486080688205427096128309191949597618720376810684449283255698581158737805233334675198717286090723629413996204147260722693665905765493167864299155635733515507371790838440980643271979248815708613806920734303669717612670232192611652521208871990734100985301585394180502736078860599601170190945078497325010074402357122867924795402206086919407872530194117808063995737825537343575996858161846082119126918860019379941506340902278414984494720778234099403299669673645231517584874502617882245543044702185665673375996963896777584735342193816367769560897338855489738479065083268438128465842293980738465786462182959904835897509302097122213102406231885260709494387328080678568734211207521679210129816373227479446293250562044952272323165536920642303953441746901912985358406561045739264373963158518130990756499836332689634076082083625527538606510931200357324363017035686171284747883499980121185822631428468989963909169685421196710761364994599143139968920214070119944959665147232405394997393054341452131369910305436556215625134315401642907022668299718411862276406993266962543341288746734301779146054342681900777092151777859646413870388520567895261151683700814955119052282887194978966733238504938198220306567223659708099236387658974654610027482606773937401811414535551549875896122503886032940182608341248418411961837862779369812449865948840486020112996353509295621528714967822937830005718734279053767436866356385261084416782606011945712714713563960406500606001055509308461797851508911543713542752780811918774911059420251950777452365768575257428772710520421493226590620786652035621170126146482998724338400020299678304603997807723409289717679522924217848738723309710883114839541070179350702059138693164820279769473933576328335274076723915268468772522760996828947209635134087766023270046151249139702006390019893811636516855497046568884602427272409650167675738257927193028133575015691585692394829121441907144561009559773306654073261750113750458881320842242929100542521942266152975574635612811622361788695030863525955514561648775985380380408602772207065641956105584456009825012700393688108237202475180648961845896727337421256666899718325752440330428098753940235558697627912094565714452478837703351593482481662943887024881162858816275989842922764025890439329639207880512968528277329346554938678292367602461069003503928092918910545232680520205974576790814704996170618933491982532439227523649612104259714656841975872737082179040334167244706424066607773320376220718635121815348910855631736239924245912220540973893546830879108210308989849328770401505386572502573179166222826713222995393079917357186167051578827388978621337802513869386261910928217676057055841779394776207103976759413272537056862452323525437948809162728696941445113383440580311289801511568526443235858800455956256853283360026122556676165859607527749886582274156036451674854198406737182256635074265671529015189218601531056758842312831418244665213722076332614026047530723730281424366457579422970804096401542164273589215037651500627114957484375247472062274864129700207030914050902237646385151642502869013841462861881099797958064516603243201999502047781046301146014879760054635373769341503072097128340503228277722326561334899168207696320844990173373098067779829841490158279946242004825499082517428481598416126230737249200611129834457253293373925270362391022100076547891808864944649917514444572289440795313596507425120141269070977415413185152905328561222832243711307164320837844028117534431069855098924557604299243122978152221403214805983601829084949143948390936815099643082884588684720795423822551411239664435078022401478713078690658274172018735670707608541922996382972911802656645298565854536453815500578952373571971705565571558598514473414915436914845936389104769778935764817999530410886043915961448635553737417506886262471901896144347850368826593493037303413798721571616726245496041098902796998768364361125606037009333865120500070365976233563165205965102043602557687714887557629479907111191480925300031422574842854533447710932306061645529928172515723695767652654981182262290640694844591918387469481938507073770923099843662190281519626432223287072502197731533620992095301659084690078387883421495148926170419916370614940365299550538599954798569554471762147951287748195514308648726146508912494008632023954272517115295655015246136582377996443985234951613567301058775646973419989536896441929562875268063335279392890102513042590524013857030933148714162276206696318245055421084242809952784263452962779246992571839677618811520212355400954250079187193702172403208708667730983611029913236917733328342618488772263852037048608069401507531314389266390812410546214534555829663746600767588652746811500383541219899478476146452343064434170540841848646707737137963310870148655436366339790007209678596177138631489544805706408316795713135867703198079732256367779508934081279678220357874353363260171362555243190216101211333287465501262790578573259298613950662351197215611165138175393844632947178356550134010248138825577780609533380167233994334032896084085518882189879619265322587161373629823751836550637755712903674342337382389992410683457689919057022688062104813555396212420082075247640062411649072015664290051402353309319304542070797480598593009410921324411549158291897253974523163911679042019995329969117834587648190921295775289127987231635104190174234884063443597774590466757376910892781435874645638927565892070422575552178249616653886985297243827524377286109028475540421727050701004504875186832409011231310850606907480227831861510625447877721135166654950422161586252902977908056697138009283213914068060236109316305448190379207679249231057500253447441493618277141933534649742628620075706418940991751074655913753872000404076333915331953821645844532792315722547260464384397735261295911518412053209382316015491957417704324998753015617905138488577055928944311746740221206730401428621457241580138228028565243396101003051276988467578369014809072361275684671059995012406563108451228026886164247960857976430839858840865879302815340136699398906921793744417782149093406851628606950369863428384287316638721367623971618150094168058054706982315872871486710113576322065837166115131596970901134425786843298337900879606809584876181913215388565664664429277299840929520127921594424056834325633742676105582487029343022129702053876549832719704364539990583267484653523741123582196584675929618010832522738372913996464487507392768255738769530299923452681753834727791563632253690188060137136392478810562243057907055339648524433594495174051829916725587309159141019614193229368968755471372086251136839025577756082555052407999381420659881416457577640595441870943597702358975497463671536075304278313869234474198937439494181765043735749514427116013293963650605892320779831969920268700728817964677187400598480457978973402344845870422893330628463541476261557944716538615608803746300939290877071194601593968932148225353329227191563856707140207385641683624759830232947483145445885423160321329368565241369359095371829172186048593072660348656640729564976867517482218884199654672106076266460668276576684818461183129164816532373949785294678783929017273271052040817221615353126988442690642183403114430197709541218043761717148163183908162253881303861818581960335500732126308855152963242403415738071302194763030664714489138290935734485963202365830386587602100097020010857807150337781763372917454451169649278254606373266306527022690044079696446354488903616911361953582683020947145191498649765057840374101370690385565025434052097823176532935492734233229311803987123642202939426468192385344618922114814276129613553156226900413752984866703493462706895666129065166593797615413748874043356149619781884092778702097887876755501945705978739012257122994076534566260167064501026084028822581204468713117567454206199598954552560516319227184489874711490609194632643934376623876266701535709669095515862889316228506654427235317138884239429873155282404802136610010903351991010745008740636520337712990487009745352299637026540837473294594472729549741580838972858591948087120687106700654248735088631976215530226870968775888163387235429158151087455334944273891549753600803153532960150690904595166788780567269345041118522872236694415509125266381835860836204207560614263173628896185543315437489126840840454993669456691266019072555758348880082577029071456804136584525003340068239071160178583816892124051429915554984748441299872601850042728516342863222559252231564579344947058998890419870846946539557305481336192411915198601956106654522143205317500674299402212555774101216244981714933029640509828135272418860519986236688216743698600683766448768602163660789956401643115413421054799751492592995493613258276276545229447196228210857597937894925651394172251282327977133470129836768377176019106452134195579825454539264646316441495437089390699390934471043656817423025552731120849056682741627672633244520609121412638496347164482417644126838186539310683064135028744933430919790593122482284291588553780890525965776432525027529887052799336294254060514408940558154770518860986859627520930571096652745300521167804217175797359072357721628092658626745490572781051307468847630821690450940789166659899261781569020316412148397054109967900250107222054984579403235483053005373725475112733695526335692370363405405233875366123402836025286048760313852959723572302182294466525243129642647217505792163616428946977504196830153219648761098944122699701741854475244196917159522551392974325422923326275152537818320539916584634614425998849018529414557325360926012915154908388625020335265388357310816075782434687726873418466609880037052375179237997528253084292914486198431518846412004264326394475079071477953245502144868622072025985448033939684420635642381399839944820367334586549246329664715629338943800372841034573058768742913919792902731528379768855418136838930238386499945570279493864686165550684576601649080634824826955324941822923874437796824241220093249706301721136677446820147547853544424267155016717049982365922976495498345607605018137707036960054980000888920774691292910691169606862992429179465626802414309608044815290289931756890472921111908384675718445564566172848052030451887243484505651216880712685985639064770066421906870737216380358943878360125616506165151989753934063294485637349703072167930918422799264118493190292768487167150518754436518011257967055318347461640426264439202881478898497054550386774828694830444206007514278189853311909792225847818330850899943979331309408253361888622138117313516421080111295693473869664243016599980471616846143078415121315857074279688863247494472295589015216113038210940637728789655660430870797465856852169138861375886599011701941819916152311067159175957282341829344295983364862178400080166375745617706113753540664421098900740742031673123442055911794179609812244502648171564973148241961235045891444853502058744410085015316944961622678813986282780378935928829124939905357863233296587960652217668287154721371118021281895110074760179996604232180133395230593063805816045315265858269450310061675588753161130561291286776141405640237960249350785316619133046362055758039604873171334527391113019282419685637235880635386218883302215412809432556345147630953604707374605991025360934381267689706324583904521776308879976020315447829662582772872830119088571378288538192326368316355375431998641970007334105929309729226252579020756675557626358187870070819053530271778818538056404243281680033929641276498583075857107251737668866685004263551296148362073696516302337255415280302569938389709582145111083844486700976852882016908438144016740532392139598182511447807920603709251811079071373679261929673072440429863629400156145291219024278077835850546312887263255446613833508378316501969061388928950287833355415036901066107247388749368548900450532084848711634634297694526495873469115312802235127810521976503445807292972994076610624619064082215693312102091248740875525247211818160788805295770611921445102383174140319266537488754101084462936950753712581895358836593678653864951183674303284041622402748120419864224856731596836133680383195784570362228935142089990792791924989138274915956518349017531699751050946368281300442452833386396860455632673019652867783764071793904695323449344423283532438421368943368271476762832430375260375893067713228983462211393034506965376303927602121669071049443223011486238491528851539039752785826502151297679035324818748890879117201575232289893549674868911450025327701447774448464009814343028329803358131755854452437190946452791053655722721664553471542040793150215913070409452841824885253210181804670046566274526461208106130642796547730333274059769956226022861205152077690028007098430819981917643269849469706110261728861136217227595040036187750465410430328170081539131684461567346967844274952228391913022451571166727504273541172736082001538303998297674130531356576247459498206731424766098961788540940104125249278815384255239622313432919329196000915838828139061523388387560609945153809855589028438233650051980155741488777035665697495375097923860785341748764627851223247238932371852191072662739203693575312739428502240149863814832780401527065876752223782970270375770753338148846286028986787939281933008147262705206868714609636163696209063584030637336461143635110142907643320811620474281041999786606797619392752335840042157168816662143396287285564933210039233381712018466874655999464897674424359971903219998979026114531906516614322024130095390681904720471760949846663277765198526998349127365468882502055964119876965917805993777434358181008150794965304500286521697602452076032320978792340806269089989019643534780458021412356130168025718377627216479979475270576967694335758220638785083563806933567163082235335430157850373019153354734919988867047271662725106572738838593447586853192391768692507227004380040411241959913360250547461422142613480855750089134617997402906130452659291268456553461452335325968611914913726565297437809830194979159259385464972271296917221198556315645785497252841394950590787792162988802154615226140303422628190494853938329228027384496703161938458126561355708229744981423416348803209701963251265217917872573591328457472064871178578313549498438422183057945789514162336721350304034308483026827115914830825962776115230229598907094704614347100486530350689461164470103631947893490958064434887537106034641906236658788363168663867375898342052397793180145675388701667872009077799749404057782812981451982203145575271317825329054634245012481067509504008241353681469032307464223949135876652000852612089958455519605196679618173161638208447938183103742400332820999568945209070830240445708034727352489041348881480008421072645400386221099390482915344525267477667964916107611342891069307009019260290287401886469129658772269354388929495141747670877021883445788731221242603028349902934763542084251795565351593163485757110449741320175043036436304655816861369270679301368490044925379776535436921777219997488371861549563344737959854283451655958665722884875856949966016935864666411131387322569860830069673211976876470677834603952772166641812203277430896817263625976586122081450905210040961607946214713379026086822662940265167709864976394616747013923789354496804570993293915478827972155534779216052931114381826684004924191656038443073193100918893981265949085376252299851679561571866218303818472339232925866494260277881398596921548085829555565471639398406603955455907276388362770357429826759572794404815334865846893381069109030755583427331352608815842449188152192982769553501749772128445110021388756052434586454281543805097821582910955972145646418888648727181424794764984476492974988233719929777634043333248788481768546162711505165831242168714002917602352185295220675964389820768748003554705498146377256166952864188631744808144347880445441374378985792896165343304305584763065656115240445764814867560550239183650749721876823147844095451799721812253659518679761822565904684722026318280793597738506531087464393551313761017743104655725604028865223261965378732949471747875962307171856910871685776470717866294621055952486458403354971187952838438164451149436177351362497058763328029755765070995928949330204187026769323918459143100239438572059641430267436096944466007107660083701702916834741434337549012232239743293127209244202052785495549235798555103381427636696387302640875770172863680369628710415820100078023628085436076658072403844908205741970070293563461429954759862785800673427994245888086796846293563476737427866637635003395939321140705538901394645465854381710662689467237063415129220641599692775359905304165640591777021628752018553995415073027341935702259278824956972408484301352162921508867604301491393654086010596568640150167248769347653604547866203161331947236700971266009444809556574690691139520792799432620386025014085339081825521253754943286955286841779655790784538161149949840798350719838646356171163469475929164377984908584051088467106871691324691128757034031427418781468373570317445896899237317706043544202499299246583345874497400803990957117628024385437586612248801655966399664438002760379583241116042304997087901420987334687776789524285714998165884570642145999051252280796283164491962153727426767824909967893651153226820816241294987278443339602421234636809685858681070326217365335613605639212036759588974518778659225188485555472746142963395536995819296505238655927119440076425706831558485750222265549580106537793813255507001362039727601750166098454919784216163767920720397714408765550137686865252931929927215118922170594202454676590084184519577783163652204302105767746069830617418197690226857784181591952486269373706256501133585949217455452421365373852674920850970992309938087203890191451995674319807669619340271204696186938583926518412818719419786300927937323735164498060171852338992586961362822714071515455207852668468047886495667520976259315677270652284320779916128472673189105399649239613549206441786895749378762245863566582512863287710319071532855925120019905703385668496145013578827426794321585482259425475513312829941245683926416411826735314508856522879904157712045320201100468276540031646444823633673300726823523007176379404802896409899627420182420947965922982323276086141521197084341873160849721865456648209769857252037782836661650576540057421887810497290272603771414185584398436235310554802628445178245817797573730113441846780223621048176692944622904823727227758298652122400767267004399147990632207585915086103171578032613570936364096821491296172913201416132397713016234734172984942971274728196335306039482894928242903399607484372419779805754312470565399578501732296202789459396829760865283218297557037658051602570412942708611483013756565495263650825478116590800685795240484328069618519769994084375003932690621911407575010207463566146774927464652628053668092481574483486895686490280564332675023042753996613602925802808109167606139366722159016193799453749797311272944883394609893164002803795691105435981107995903719316864078347313069414716284576965089732487376371463923109302438259181364067026657097043802709104302313697112353978639130093150710352675344413716610492646471957309264115693263830182857477757293995399475948092471648703456108646854850910352535635023648181093935520765524144628810185187119820580830631532988872238791531526389750857333003611582316364821961544691703161460605958653219594730760183863789266090318955562159152638324383179679976778596966548707835321929590466282220015989654404843898404471508491790074727547750797314625444382093661174206376898075606459587523779544104529344464829725522255795136900473806236298428317191866137723823325747882792971606115738657728894669886393345540781639643178837472704309401761422316119438901350277811059224331928721156369140636833471562020144979144009548106093078754426162308059875278936290866988149721935370090985850181868651562403921361869654557499200865740134577303655549316905570813336497890336362620030387890559246606365647201273242038501468955144442634261152760618296487040567169067585492699996520212114595673325736254501488438586474070430795865641130292074818437774012677650570766663601994288767211235247905066737756434217431334899795132869767169712710110674886014066238644616603617099364345824173025282714477502735035784281437801228683927877296673810161440731471834054785681950881618018296637486899760752458049825224680748097442498978585317099425295466137091527198824331133733023428422207119162039501497535540571476420420214168322926222419052982796159272771600192741011102216483853693675019977945845761775503146040062893331945798584924133813703146047081678253458321970872656907611504441904865844466019054683215943441664100136990544297080274951682439078583274269941081503862574325891474298690529671711036694424131448096046443349773400267149018995004816933019398927699012919091594969205590727642276016776840732671223181060278458571076564837401874345759673310206506336976804582717344791246361850790307611756005032488043127253367843398521652272161856736759092399964888080064477568662336548545863425724953402955619480916408191114959363348587893759908449570827484497678080136379434172359931531893663478326562810838551045580181364339850576741225427484197161273350485854844714319783544189277744660914564533869755780635189081491739093294780089557836372497544919152498207247884722056738256675268629905889388903077226284583102797723080802523235083930523300870206521723401838889869131278802624271622874380401977447220847438822825047009212705036818863959090733442785737899616679866377764485391897758241775843868512805121534465034358821488765365476359281592880319176056549501330777980983402675378356591419043461819234112712285891702055548592512482759401255734673495580719137278368932789533546700804208943859694364143553751229661251621883490405286890831375484353564953041375943601988668216095608554570254149736245762594701693965010845781757115547919019630578488195533113616416147867219931841955477636311622067030809286395010503425552272930876424054631870374337262523772495901604060953386865998795057029527841889574640322936438624639883777040641056462794464099366457908146415587240028126429687729438388700857961353059319731402654140256060927311902239425977135416818261281552080849942425040140339507970131647096021449177858169206726140093476659944015819230197316181540965347103579701392778545838245431203142169389238889795070155160050977198571100727450456249307732525259419988165281623826760875492382126361566508560855069084541513696599598241073921783723692325908653358471654790041621219039335352860535232630788054491721995381545456056334317011159300860630955679186482827630311143645495388906703840436282199311087016432388410125519339196858442675417840126279398132337085162268364980108141396650842326769559717362088674556994001513202953844173190105290358436847857044336338813347485878916353596793600746392888078713654826116485529554077288000779087086671510394627930026491666902780030940893172467204164154502402518814413514748816457195017543082067493629648062263695599171436925863066089799391566681913444017201779907303108896198527688192807740527281172149299094368777596387860180945591974450788488188796429861119452685691609695620453021133765450917573472475528187554834190811551415847323243135037824602401047060027091420922475355369155989975136698032660326625834529881026484467089657341279744396528277391111744695329055567766195965951682927030898554685016434903388140145549111246934850786086621102117461834423661461286124092003583088435983218959120741687943437859326764310111554008003056233113700417329965686624801571516958348161956975687284100188012541261847011875476660824773633408419268375413063449780062946874502780526486459777973676603966220194409214095888874989799674497166354384964262679814781085323765365887294323639764862754073381600808837237892738899862815884013863438074054116123309366989192110340901094697539555889462494392875391764561235259486869433567858492624673567495058520276172840766332439437583700969329248916867387642896861939860104489456183477570741429077504951655540313665295308546646050423466337025673134229025052306313050130524441549992791786808912833143603119797865663057720220875108215065635465509012064250333036603352494815012831072664743473530879580301982280587418279811365264664996776081419755735247629011707787135780544865850656256074787245939507371744731165186308553716451887288452095608545722293714388007197482256821194131415479409283811006365306253400459322333703343286917409259083887112787845096706484262586161213430115264856699216364927149017160328057555705554610538321741992605324094440896427030834967680496848060647038333120049084434122207408299923587350969471984180480984044301648385159716764734918246106000113904803345453797658536027478095624410453864835578577604569308264422660994853821083395818308958287107879536941864471862160102058810265045993391208357094069133544824831162171236512917404789731930564862502114019896471483951862445483379732946824549334198357918152628380000458776301576357667461040641358961914019922460883236969051254390128010683599830115736177182934816708021058301006604897796142232527238283512016195146001855754877217873812267236579391577721283857212596235718486474019828372195392987920703350701451766572544902240416792425723116199945591365408026659927703450380135598089251374138042622062913957306757464808303437314609924685469515741516719747897603585390707268507187582677901759570188192860044487489778307899342858078263165064727825493772895390391066688514261155348449730267435132418946629778995180820450094900394382290726874128407341796560774352971867978627139249388641737509052337717189035888634786222987937231406290469143671944278219670180049580602121590500883893108443255849993029817895922894687456920843862135716285753100124115956935263239233358797196301058994427085155248044831647979220339064477619899846178666181032413155440143788840907798283590215461377205596935494529026226424774555246592186445053647301454834355758883046107351022903045882393608121625688049699424016425323176827792701126693487596202578641462701512425294314918169181083801959612072232430792191890077403036755903847418324190708395280800481395566787280243359790090773503524156867167387979061003573399835070518582149801423285761960001362065267054480580705747347588851879998560205558251966350785815145898202339355023817987334932297347165944882525880431607491656905759451073940127844802246991005530652565893882658108806622055728419459382558159099581660890407886313223517418093236065134908804465216234432243576215222277069450380363368743872552716745942024425562307078712803332045449313315501686473630746696174435367174703137936690929514534120709665220510119697277910582694536891882703160604832811758786671879978564133230129182346452345489612595506788221819740962748516341279582158236848640326305033975691012978139734516511486817919137346427800238894130908062735411549930762271913835659573566928621996927855257558597929295115737718364614180423702702102199160557341844344582258733214129449794930974121440891497126213196503344527289636974020111983109897125139288417967984008472737916441585862065460931220104532645984301570482228321628544689220067751539566579391515973673309380408200481436916986879606899368798125619896150509336721012620867328517572832658575224584461131811675195389693983837687955670729374136475546044827143251611489213142231308895749998286141562242393971546292886217499288940373595194275856076640782627732444311274790168445620166715704809167302844474351015763191912284969922903824774941826639288738624922665180075251946745924581056886955705342560110063402214841025003311616310774160519826619422189311687599160527803796882805460851324827515878852624561397669395058661643562086877253724330009058217693017307388893045547810764272536843970830157480984239046850746161540699775858758319494445987467786546460838599000464142262631874296510454561090619574672112172617325267221625586000183860449670871636384048655265531831463434809008722110257972295799222928562364906980864317950510547251201916539213692478764512612816337444970132462880722278794361344154241462356646513915577397305493684130339578915831275699434722177109927891746043982276588148751892683915024731112230937845703619944804855085903625211619271728307091656070214368822624604587978007191552337801055061008060124087053276835335789392014158287955174946430839356065908132187438727047562230261633203500080864694580116371783308011825677279566610504027566638956739073563365309713046689822837474294232749290011390371430551353713202302243621658342403749971177335313416928325021464262132399571335091443674340326187312957301552981035142717140371902538704581548634093237930154434788233909896118778293238354728943524353757501889336806861199814862653440939608789880770680508336595209194410516841220395710163676151967916711444517762014504969338744058604160119951207061880469492063652747107112988008478269973898152811832922132378177596206757621678298463063776383656541878964343926358442420554679933894017151748315390732822438402077445398975590601697825816038333756309252923840037841470634295786247416986408125775992525921782077458756862591449869801443908530788872130432960381457048039549032257940522020852397897887933844505265300252411885010301251770810818425532797920763377199072464037834010106441171758321979083486760646858224756235694159797962499393447454503705894739777214272284260746327720829458944709267936884194819958831223370452167088311879934187254912490549894539996627663298223772385400488853921870890200554435596686452732136621440262197599130155189942163377767891957202367134296763014103871547730125181511747428706227552522928849695670000021631864293648096111854722106933989402742504955809418284051854756347322937215594060610434570751610859133810964895902111904251113673086743241625517376305747373762209258959109228382457129016821724129916172135926991922245391426650785717768408276796425608144426203115263990479958477144109120489467268469024602289522412251376784228986820093431913203528589315820259300615139155502383437293919593628446225161901737653715977351555341707002170129543302308025418527459761523500423924637689916314512285313142109052459723810327767644602116193588087945852432123200462276035666252244680018399477833311102349669574092217382090411524839882564982721898873752891040929974041394458798434892144360518127494160048774150896462449305485710892258578046622753269688439922755777175079156546034679973938690387028347751455373573007714875323750262811577088449388270884350367288013840419500978785896329153958915405411174278742954319038321403690593675648266790533925845800141465539664796383294411128114161705195935428499743359305037389194593101657635225125264521867230927352168251147428883893925937878716990610040444217173261868595380325725790179576559261938974936198738797665437745144777460409154654715922213169674428965586225671730186048231775455657979334497670693736641059609550443046505101675408042063545615394893836354068587055044249607945516036418053854960589649423485149356238235067504209802946819426207506487100180152094769411837847922036556165971782598211087160777666713210619366313294852453363048159150183593089530771587535513929287602158539474972137958485881397040597279071110192299424822626208271528799040592717189559039301233586161149088420185300025294901082969027109085573857084233044982022769030686416828384858716178833034800333435505937388174198056764083130541080698842887199000712908246780549438509913507650172810560007696516320943260609497479307345115039278833006763840991929840723563962579625023860775420238843684586215051309265819178224584676078621244969215175554572994044322362420797177868190187965910944617183896874383546530780385400187502097846388330904349755474097828530217190545817080046948741253085728554353080828673357595769268567642583299153287548468840878113262866065528717169165307089356119275971627197274008845653681765878856010713083281712731525234940790820137035677615415514616329357406716103653462915829696575597838130169333531462266519225522231732719680664115163873896970681947897694228068243927059317283108676189782385484690796539617702191428560904161956114398008175077828266039192976290473504079129357897106001865012157104476566356850223911188131868285690002477890160006659877443186001566230605509716922132882092474150109789402246596213649740091598358605284186744377421320803214100989392272712035458654860599276571064497040626454726782743138671602749123607360745544799161536492457518591161018880261190632005789145936845354870669889550971489579505659668940046715761181323965133649674770143221623532633653201681496949565656895679223083222980246997707263268102174600220162045406111795788257874813347130870847328261842157419891003587817034296808256029259098974904118751421381069877560909788367086077961540177935848157169104616299182009273748547098744640002317769181734509446729236315496352597282781834050465701431248964231367608132706941425456093529152451188508675143385314661497162809054643730267471793444986182171566442658338972843209085406212375373773991086258058845994327065185259591691375738094167236628482501360063961976014554175185638897840309694297888126591856692933324254910830006496874679793663552084868140758287778897504547873597080737539581496615838660592135842399500206714859140143809703120514398468051665209725256818081253707729899987781724828231222162482448833712306972835031383639346303445453512082638272849007137744183572096588680729469965655613652354446966275582220266069632946360978394546994918765750866338390065464776805398347208512744440039364700134114675506404135663265726515931510804227236588465579343868811986953308964805613348799502478387710230202008222609900663673339932942921009617726349839527648759935288193981614968269730364688537021394788858270701339654456176584043509437668349397560997337115362886461031564485929645350864298302161821648959236849057847795497906450039027332668953378263492800997002297132232629482986282269489941936103169136191187257447958433590982857795264908223585597232649869958699164915020316525570176109925790420043148424053915895605425909979880199710361598543604193881198397714201924593880483697645438588702270874209544319531435327102925740523620398473641463142485586222794445663843362043424207138852068898558117857144457294660570210209223024504978167953497481367986330349327537290749654769524098081997339223112161009812089316744722918465504098235219407203271344488183275722512147291162836787934372124403634693799824839778309674485132790903901100975597079149027411681619677155232358456451753665006828374887526280811538622259135768370477029579297670215717213351346126687225493812552105709234573135488759454314902717595631134408137380799137576832376441567022888038989829060413604159267950624343970138511467529878788059769438106432435143513303370893429903652453520774977928984682073459229259250518708774623377087560622955530958914774204055905283814838768170729455373949778275708555575834465849739590208887380809170869314081085426040522006895443176270987760552853011888612653206066064405035738952448368149909415432887708726657654518817291195231717139752956796455831194834037232254791463571086981595420487220409269099159743514395576210181893848887261509689618274924139721247377695787497006244062032423966882488273038275784716997977062015982808675699838340182218123529262974323838650154539214699126474937157232215375446216486595254532021694111344808935755234197846655783984985140637535218476360992695944063092688508651694830349643626474398872061714022733449353666197808486317860161312237551824073738998054478151885329096803325327223344465286938295885316994637710663303052301391919477347163276610771386003738252224185159428821328689565264480132502859209848547150655670879086203336200304640775576428416366295794210776457079570189964350450457485759445238335639854660524790933470285567586983442714113150904378174846960590624797031228351408093976787114445666324041577452194324894304869218156319537705766118338485438186068337077658794084380913850398040407729737222740773933825116714101378452992770082374000951520594882804090251330506164492572401262957583382036440627689162505228596606261988159054960952531297892076248175952578478249829983084073918876054964307577234279381843428480091756745614895971492990987416992445903367475102466123252000805549409917107745254099524366876832795741758235404964204691206274607990975695388934633458090018130096562504004647589504466673583248223888539274686321453845863921816882790617191311624036262701375751034478132802435000033599651353481700511488617689501326453847493208981358907767641643401873524265856847896912038931632221389862090572967135584901811696838308426639475886772566386409831980256799021213137908280997302498430793365337026574427786550486232092430959083038441465647597437895726804636149250481909804294603365767576955022963501494704574088983050401066799845999754783738507263929463499399016803163000916321436438197029925487144209191799089775996470634639494748530324450966356407511177893336290564602480325528597474905193945780557384556069210816855541033683418063165663407928727188206528492123896864352011059783418713294705801485755063290094945609528020469812220787089795434846398832353468019084605311433609151293761655116007961344390990057526520448587737784077067727427878638900219197083357206671255068108522042523285547361658003120759979853675839722702394385528180125968313378731575580775479412143809729325637714491039150525013564070663799608450690411092727849195861815388018112129603249996225365615999782126146345522286224619659178055767871316199470349289584394143496198878264824277265735851247475321871271836070194147973124938890457671175718755202699738382782376387748751860232514868755920432683483728985972829128147840822926334382752637857078764480535098864908587464483848411509261858784760827206826072125179422442517293558947585980936015084047510402016170456319894892587982741275073844917237249376440607787861907628707358723473747071920848283430624365912222020495214571061650841451462361883357710009720398396180775649416688247336140265652858714750354268955699231244063616511097174367045754139388050941335099624096710296364280500901019011570831748937844700215790947787335132760330666238341368638068844985900268373456334298270846200703486316085746306176822695691641624720775356569635083299888514033265262817752070909023458623275577319901766201129902014640943120349137356841012815611696265395755083106734234780261201897905433963976751342676217977332896495116021311066952501414203024703784924665017913304333462524267840875805981724889351752479413424934609037212585667241812890543049007191390268366844671406078481933407768442626648754245715583966424621191556878808936050355136073868927917807539309900224787335403993748860569723830204841537153260528237142564363604478831201151306961580813430057126792540076978716804826343601860623813117702283459416119493575854720881764002002271388413290396397418052875539479915242602891994513380829433813127788019434701111103944461645763516429597869341628324149549093807698341564896260213060720020327370529083674442862203992503931523650564490609775297728636704388602193883185461235860166288751901921588735472148341373362012251056339644672644941534265207178349867597779103699576673846701368661009184491036889390389339601327696924868672881796837214998216885950743367828568713038135569792670478367233803372562472990157828595693177292168795128262793753345353522747156139991672133307064560497969357908169148060700507372212393060908776708662481083936183139967091769921347226780438736038775776109730247868458019531836504763072398116584591983873266054914834027885757763465524125244416472839503019889052864554148886246180356861174478686980663572103473383944327066975253527470106848097166356042410582881331832778882031726854643555706891801060063402025040764136587110984538793875674056944126633173242678261074182592978638062736005388908224820541614157226665446322068902058397858904723737587782316674625231221117479718890269743910132165350339887517439924726904954934106272724372453057341403502060132148044780484347306841575138079890541373646701746619905333366781498399420852045025359029009501494406006214388233496551273993459203086981160991435699357629394093379082329567039779243276935667371446220061263204666181111484887326752588931523810377083415676160185027111621513535219962332317615237812913421641911596022197977546405339288726530810054226035552673978132875648514405797759271680774892721889563751410147599691585312907949573600262125396311224580886705693207114597660474629351450838371530653383558077901606940834789111350281059671558313432521340579805514246305447105946255228077681509465944270856049512540179479676403766513987102495283808763364187753046764702948387775810893886125798554287070622172443113224423298265356747395346512650453935182999347212882249400488570632560848939670981310881696807612800777114972691481464590770476370247584610956922540459357055201861132312668271892413305070840777308932978634722649538960129245507686956479744286536844605815086201358425351162893415077034372525486938155872809775008092145016966846292217106110180729855545082397968138628609723717461683229829024028892101925166696574622141104125634800421911806909035307230951020055223132614895788776978632531556849379913265489359908048081461218001805924256363769484905960860628341229614600955824780592754363120895879186955428568104607627488538882358120446181506959095517245836965360007229849158184541564220544628028805249595967675888105397106294220640423408173265717681629475799447092969221148291770399561082025259457678619467745784070300033208284918359338576256287787719614906021823184630297208728198599596251216534760951606869844872832112709113564691753829192270190055692211745265523358821418600383951248566096589948018839148407868499123503622025995823337494724862023996091334887063161515800559619856877885237289621001506839444263863802546996432500902167736066396917154771676720536266250380445699269110575939592399088461373994559202782288697692109538501701061604662642090392526613132185755850212742924783822234925532253286667308396287188661229093956866754150090405893369166094742210320917144409032343249018692759203896478472565656586670886980289230791700055990195314405735234096356061747133388952719662778078081464700985132042912978706317537739695498260912978912960981095962617295513989326704657133957684504406128453059852557474108490254177145601743802767143402814954820436977309939690180138157560973276842726219836501421359524488425928508588070615417618827529037758450255375742415538690868385895508215992081944775030198423745703244848850890859835629221022184436359034816576876926360087995392072511088648076614113409113284425952379591425753042750368107176292233250207058644519172470019518325137272818085118044299768674626082310450507739803101437527168378001870796213063528870851501201312960147623503482110762964791317687130704157652445810505395503496097352381990589476541621868094178581976211311033803780879023729826792838822933664345185829928710957289880025567384401396631571081489715861864746622705319077031886768056449683588982199308631690406648865994287815683773637386445986408894037516183749722840854636078188099412711682795275251493736032543495201614600241158609339135907115383604035227377871115549050383877937528782605946780638259399491568030109190028454610363551254515919084819869516515684060087645300347224408139095478605380354626406412701694100703363039343134785836999323788875220884125814758000762812815219837249648656604948690224599032209323168136156707576230920657632807891624769105911819508446437897716378873572382481320194958591783962449930951316625478715259219138202320613951119133078194230900686029297513043687776736688235933913587274296005495077708949887765733736207911635687871550619120124724549109761298931212119509919579197241811883382837452251976219023792914113196390814211964556328165425389052191237030477533645499612082088414143585715176404470996233693063846057717586647306486336033682013031054941896081225770378689970768950546221931412219584389734449655217558971129321051529795906689038958770201105241286947005728778722361413464521380303684941188740027949199867609734160197394625550479292628996385996911534680657966201819013639205337895703094922926556597038913242575405792489282315784760188659271852010730682661631342699424692971018963779056158752603624172739907772993701415161956650673377390393034113301110660991187039722475812709215629273776176261252100298671307376977528585753683422804586570227964799498239160734116199957320201253489135630526140606406784693086195147244254655041852646765410920912226892618417050825574147492480151742881531690151406240998206381118931001011329170993344613495851314450051406582397801211235992075598363346424019892340717979652847081112597680936731794261141076984623767012976025904679443169760375974435513189590430305681410867577511788690419472346413761240279645502877797436646688779592529263849828817905039227759092663730216118902023046876538992206843889639065565371545153643283307773231850096748951507238426903175980017814532165152738013069310205988449982170336242546467055217839813645451161910794452926765081847192276471192549280887550928007046317735619569945401931150882198972509036723312679274072871687100948621399450837531926094916168348286437724788034935878109664813948440130076398747726461749593540822069419044218103827887865943362602890958664002342937456489534161700108437572292360812132890598398329921134549545098514385897598965569856796688282039915094574589057004837178282716823357985616870916225785563915377090967954764745334488542177835395022091669624154880337483225658275189776188191201811022173930863132284937297100280971239798811153224728372285513433540594373341660306867271624913807521460448495141108416718609487647672627216565230554105382191023391814285075508800560546289323881445983257048542263355835548123463229558741270850614769248199435609814538797761003652883768113135475046350578570848958704131351586501162279237523204420220597329255080152058293042058527952941823450417316427480047627362445936447751491575391783234036194095726317594139026142893497947561250988959307323158728775937773446580775404359662896972265236929780025055235489004272308262495482937684671228236990690704150022129346008057858963750916274174879394183838001097229476729375945063919090058923747394330505955493253770046156802193412014428389437329129800570977822175692585574977098006882910048501594265132767149103900571657942059641287143639071043191528388980911777729931461024222520055197964501752545611931210372564604891817861006738074893316931154893932476763145675156222719189490148981344466588175199425044235124326559340318770685169223765829421160653285774235484557711979467116904167529194402334244460502643069480326411122190549263594484385756679463870338959916792645795784612036043099081250145965834843515255135492421183470133184722684977872013468639731504071640849200021211384457045209783962285546891507889137684413139534486058350064693677217109550604647545425089097649360647127259813796098529964246035425558141762859827610622731939999830841697116335219609704584132997783625349611769607211439247813346620467404703283487787051699367519193452537585573103272532119305546508786078030590902088833557689584580360216010963077453345364656145417711309321992097495195184321352929135443951247477314539228933810107039711539267681285408634150829512031273709489774789821704896552574586602294515222349237522101693201500551238245632085753999496675467194347515620101929052056714699140262584508994356649549539821004060989112491646645674804908319963897764821441173566431921109665403355998739564324706646003999951353328150904152716884940437844690519600980429618496346108157952916528491324343764388877045610491973477886424859087395727112159683348024330261977217691202647357320692817956654579679640417522842210493918872438126282664682340290681194780939125093978146523095102678906540426341737831233918324916015246339287482562086181634150788888263451545929617960433242125182569933493876132024989484878325877315136748639791500349517484313610843670669218374460197281327532136091689883931904334203033117276953520524286294513749492988406624723352436963775918024504149863642423745087821040083562362854302657159924144407632712094731103971610317121623430702852839232728988540523463455674205127726270449537988711639102467821441928852499674061390981430155816367149336653888394463669411069387152122063872120052791491341031417058580464561057089777085265126954878460698414080213849088202922195477717895001132418499901257426021133884162155319359653942831025295364528874354445351693063085545493237831468557614176030513937948481723470994435402042417219388032133057100679414178408034064689424188633918612362152499143360495842841604500574480649367958749349734737367465998909790804730338231409439435307073740553780348574272109665312867035924250218595208344446680190103220297211144146145101354641513231587231990832849787138187635176115869726022243161035154428281392610557045364195508664090675927366095209850508632932055012923087960447029234962281929153483372197401885628503674761463271938856914352813939924645645856998608841822423935723040773144002240917128035539189054544483110754566435813356182792369334962052061351193805344682448903197629186025277363212284914177407865926693390287228920883117240804028520599767105097313094648119467682038761160362534894437740896562823515345793749073542333943238436258403640130036290021512980642413602067318637743115648886810157951536950129058089564189035785449531003802245140606478766155516025480900240711676684432498953995435749838788587556070562583124112883690298013214261004309256481292118910486216156823622887687519156143975177731036740732058845386403746321186374454166216660818017830159070664706815083221539921620780813849126433531281123625441606141525238189467628986298544563909861867182893949578425307359573961167336626972734025172487738185162522334046640557044269919838486156541973239314029277643905480554581480106636640272067787034847198415372217795287332671329993472243615857545916500631936342366860337816754477472978387041691347942757328583614782435065139961382738318061454954201247975054700519612697635588150872510362064907677654990121189805376258244367457590730961399578489770151712837028648301567846488626510045725266454403944961239465502382212464422314602160189235436977503224764584904406968581562032570123549949554705627556353275671258840726210638468223454474002137514810402912077601252120859346508549216832060817473118482425091526259274919233830833671006004673046592215014469542353445816627091235169602917422505142687610502649499563699944419596948466166416592299715279198361276168196145838910269288353599390140826065403476665976334071881512167355538860564705157734247294238244358357457213935385787139553156524032923997429785722697527140321626960651821626349258974017128408386039751353412748013702660929585088562754348820844798731330612317415693620834961779803291787862858327619279240488367334757875726093197344725941637678894012254042851190629949399886647471088559521814991944115352316741543311005114449330055233475505627322625894697025497047364057462289034700128100029896876604210490798276932781874014490296564299296711667675586592494627988923364900898994384881655782154094595807659813942893411277317016496260895695946273499041851501129261098035180820655859198671977570047280758155868696536276929137592437851429940079791826656299281023245304037009938963631451331606439071258099258353952670589612689287801626216217509041045380636236267761313912250430346503285099324212672157619076235771951720085907181090635314284656287428746553347213613449914460221323276027830851090578399674991994179009403165960523873416123334479562585481273215313624102145601874383083913662894357881428609142722917700827344361004284401014279384447315387097315591572978255584411160492378079786125730770345797664078891127132691768289055665771219223374277959729040761283396074849809351860665494388882947625860552115581330773879123365775832911379813745806781369990748540345379939788138540681117928071579817871485622315363730732456370829463461963575636378532072702574894453121185408710414031463589693139807771184336711543629040854732797800555542475643127402523362218047684092302461800764649967616268565587223255505416835343429563374401309104249118839857899728828578130859200025977752593473929961379358335844666823835652971086804418313830635649235352967878212376591309516284287149536553002820556072488270160037431899215139927978427294715498313977133852102560693981643715843668788620260556471588419922922962043466823699754820264972599084678763707854219817244044306534214534740120218472311154497268963742462270278360610916425197530000380580598679722552452050276171656183656203471319026996240530520842061450818088463945720887092979528810101230607314492734318430934029899759827979901987199146792873752340000052492538685217591443720811904604236955100523984584885981942756770569000855535532098650604444495862664316698213938951351660903663693821549967278932264566792494323255659583688864040150544159152308565088030928193354551792957123423512408008147957339456458607938160734675851926191400991509772169363318759373669625853044467907235857626635581759516037057453276261099347309787825126972758614810806112569962667359854226857908374933883948172389182610677117043145908535137429743562731317707812383488059787332559000790286067258149634724259406994074141257531807126948892370816051582857326171959731837497262282442138195708128632665471090976904309102569894298313520852625160407752205303734627703443373935287423774511078213585090723968838503511759949047325365306042652507767112593319021778489369663628712665309375006331827388439177430231837085422531561489985856725334439241239325556160862558127279689265633274050794211745668969291506955734072273946129420542721824700773395854386085431978153179863827814372970647238214163823442039834825551422208127992673482773449955862731883322695576314207451157846761660881027263256858464589586015176007574679965891455212906941501763899048104236253409363096046749550082906371418062340468041635807633504887235127786481403570408434439102179490538825027775461736832833807811425868715330475431231539961183440440701071384154410429690115914571736469131152457383033096904678887900345383302621133008912077656761660353569684652941516489973751110568171778551123549982416348318554216068624008080752921805222407423496463335614277905243420258859724956931537958715605485765874943888352847644565059389313966852647954921031343773010908687986024545760688080738519668318717951652943793390670802977075236412265370721672726741701813445844222347462993624593481316052671562372256780525836568250607175477893790866630079481829442023170068454026274950669182987637729026556987846422494811673936583131698502121656624712119228551195492184892063691063640459685393343018286249376080192424025493316596157831955950377690989198739034950786489937281415765694401984675685599644921772409511423973493547026924033208051122757834036789676182417199963647441938466167751465534768127874231093257222251861419294452170811214015062291144979375477529133299056252190753587554205655006029382480323324561597748873525116412393757610826824663601288358898223037990701904934245816859167154564447481257952620572669235299175430363111816440655846509233001917274359852903794289993676004431802415040544039649578488961521957935037010419451408854593856887377910955412626289253686659782587193597289937035871218326164393708996134766750024613079762567429792263070759420422999188782070681581319525268694073757070230376999789749114571809638041915825551081062264111235374631696951820923640971403790744621462120898650587219089947589791679477551597329553783975475182841600802849347155843418981765426151629806344119208875678723869922982845784667588401138408850373492592633011455338255008944471940818270097521770120991280694811662788114818031841292833584741540209908438494577704270754254378838181215277316615196915560276948572181194462718044994022917305130386736012378800043062515317845477577335667567889202211536242297119976761994300885278075775851811427284510748695801446177707190298772534049336835735246506126522712080472832748323907569448825176041749021770319160116206434364829647494639209074670156037928064206325096931289031381426553603916795472188285383904731234795584252107159396350229379436902252762695039406388970964009606275460099655690441289576722160366362133166086397737520955230594403930497601568685998699069973502282981976034492705307313419589424442720469984605130935000774457234302494125702274408301838965586200609332957768154058448637448563534416690683562958025864264018164737876240962727260126657418220085811155667317379399919796806405848394645966359146461687587253032585085304388335447677508862979858608124751411689882920472113903368503966483733102684668791811172074921455928073668821018869472615414294151884224865198471407817498765473925326527584100699334702433626494434351496866303379908212108512889638417859066729593035731494427778217067965636497527648116900098403019981130325764259681476870597971727893391906494526236168014931599043488149172340795614722314735751875128616365302709141960863144721373222458084269335030112537585770264312741510839101680707742231756530515724756707590116955216684955424083335170008118918088420778638971571289779907912601795759633323696621887429803427173584121316391766682487889573104056449428032506061069102254801891651919286868191784700548303824296323330840685235833270100375371383553997069726254407778840966936668445958896159994450584408911053098147499430881808175027325385554967926145957784245959391153507208390314177253273031897573502729553366566689168600826160407205885969173675770632078985185065252133951827926689071956249717175895500886760021774298684561751755851202166242220465744047546930394912064851785005293058490887570638189000956073645729682584582535116448251922543409649807125153860272731638151870777498730734668924110647596719866660606375422279800007297797385287053749255924465708843223991824753353208751092519170806595089957362147969885086402856501230341367982255136594620884695649117172371335462770982536280089738581857434100561416739686316409294188605179248303947761838439591402061709006458744818650190656896768407384297677556051307163608455064183099741040578815274172237290240694432601395177395726677396930007048201760570635474358297316381806398714089129666841523446860213823778624336531828616635333568364299557763576532073555588492946334220366547422911579212591327052697094301524199901737543607244847019155972927306377784218800993150058477379034161209025804497585738446233909773411728417893527654030874198230376597855995877864849225003178254093554632317991978697321596700251642626668771702507891039576567407990127854932808775045392650424225200682327559051107617356496581112972851719996748097918354160113039478242117214089233002393544163935599601209916028239733526343322136797003764868626718355277677458474061355186719515118207926701185980721396412062015375250202500962099379456518278052634224534137861566682329207707515630174848533699820916096013407316748608947251525921771951930082793939877202711253337000026933547091259099434560388576730029903115295019015909939799106163570870430084738076070978746702151233560313946428438921323520224639883210905442697572675596040521472821837094441770201989237919948873484235936134291885316841756493333495148867996478692450539181585571020725018742008509010680702838768602271544575198919887155203757946262575524997456848422205004492086910603733803855974205678771946430805369058109196133971583710294606053548257245777194691047835671713844666991156957086224150088442003875709398945714336031313668566909406029315275960626489786617988413530192449968978637551714639263755851538143591535248616007363387027802522594821487869328093215108514140227040581321899234398361685139581091793452933709904009895112850360491686854548845966170539786533104814009186662563774988524307557136662353037711841554528736903933149182080659452123138911152318120790972090224770327575278793295249730420384475674439054438387231003375527872467551449075808118744948502519478843713856406984244418934542460580966429754484258471505134431378456729001992561759720081597782424054198890355609287209251081807304589878263720211008948047962264793482355177267406589286727405987304395527465641073727453280363060393358992970537285304420044034633421217041413088925795126228489876987756413343138240881938551940529123634927666940137648991902230489098538345514973399521378888952743565638084578961014210870169838493847492852715380139611838142523281738357869752812138427318711879211874958558960492788471848771495471301832343316177697633387786716671804216325346416182034765639790979909098664362172388980366041020491701055813548992820525383158607353445231149448836118519966727187086584040791931586551230617521050337916699818243987226521888442879617451723664798439158553583612845835507886139775520612286742552759030669358408730453376880090287311429804833971805484118205704381742199105941105587155188419755681569812215367547986855301794465416720928412032086214714142090379084191458478784331612665952521436066334504238669707521386092496798076120864123884387589340813309028454668167616500314518586013956246264485067272001838400438790709861904506549560584695638208150833906140811280273209599752282088217891580342991776936823121777774055292920214084242477495140756386526384786481488589644154487528988402114882114805345220344750175689695531586365856932635682913679886382993199761688347281853514846014813106424712949323075390964836614980877347837560361897418561128140592262975661191851977186241887982044020544394928764031653948839962192811597373691670131436178015721240492899615160874823501701437499168692580328457410658573737925940007981409115332613598232058754688659019176155550135867388028640771217553191385872399498818201624594545215533967483486615251072407783398740721019131853562763698911226276100777600670743510673852410993960536632308094021358003882070822103675185962961217581590584654387188780366997527475626422091567633628777161811047083747453197757218870562989008988371552721656660533649598029757538117565702509835702083285774251521363955791599897851939371770535807592626145140222873101014018311626558638324776511364429586891461323409884827317691721630675846445181635239218914148937080668406897944192139137342026004444933583062098437813785372331444302760151152903501681196927680481501665465975542428522426328134778135411706378460333734203165284375492500256153153093884869494089421348717279608960581772794204259474814832679888279222623561714462458874480081957929064039173391467634951761089789639262634344382785413297337746595096206118844544818230291797994986639509022828219839894390041256321856425157492808679730408651111114685954051145029737058810620644556791710382912488366097280510853541677375408893541356751194351645419283677694411422725141781993852809525026900262367241086492150566934613591285848923717344622437142670017346847770762731558634257383378513524057200460459488688207048133967568258404964614886428628114952469043341211447390576679480235076687022561181514665508095779658485017315616305154122562377744512041950719524721325194852506440982301850263431721695753040426503717361099380207084747697579264848125885711840481894122347874410141467097279912682363271035931635243332200179486397074927927913680177626384738796791469519697535304760032696925227357959267981038007609745720654970985243078908664284994525410225971136659261721850679723296097984410222379910497891828867949346998074425176196474919848743237967927870636662117359894494538879233899752540873249994657121042648088650371855063533594101379762839602248692394902613590872006893584916725574720175094394387722657110640260553970099631033389102631948120216336751380879530792217578958867503816458974874911742457737155674910520249561904248240069758622616957455709355922535853760419716188268202283483393090977515595128846202149426844453972064675815586679198872825515045231432359810815384361463534761931055557035367559639722511362646155654560057588400641781568064301588603262262433804282405065606407333371683221263900768802320915509310564841865025298524264891416457388250898448047776482889478218992728326889794577959631318706041952571660883936582354541251570505244827213179159264096633963827344795352471711418540627946957307031294224836304017037752893082273473249459841357508165282668890025758230555484143642106109595526154647684087854665000654975057915834431071483826793207891727710519186043057361139709225348897469153077242089956863845171148124644309897563615124758359572709374014582722949138562933410644842047996523092411741769734494259552041352148760142015200534216624789258485570728577639867251112570849766716689354964437285519887106614723217731964839900678291637301651610999062355848768018146483746079019523805138943950501840145059443696450048179203929795400349744901707101190720499674164287674003185993139228107485993190935822446254174039687414350317262398752358494455712084440421666936269771801360713831359820218838249382724862487489625171656972193027782025955883605634888313991907888299710712618070007357129621435083588883978047734118376249249055692464163385762823647644376009834118928176840143605283836293413743068228229074627905059133290073128536890047103264246459378827843804747103962450481954258185241841750838292922493955722870819957337820997642250934257258921955681559386347623740706985613589377342135583494025514482941502466258088579166111111841554506411317795614630276043328554709614567488391781709221158511133829759187652517768225370120216486452112455772332138996288124703969344701588640081698876147777261158913797453994615658404829880096555882360221863632020605882632838314472752870028332677776296486253459992551416758276746332854988142588178741872415204551019270971300799524583589630558492531321511843582498794091706359292072768872967674728664247556954336068186768816665539507058143045181194092766036448692075892365497052870020849004704057500457218324877919142452025147986140464839229616909867190347932931069590210920677931009116274137510641316818416001028861947036749093961014474104511769757029456583763225552257474174985234454269933150313451773084231916463141305563538472185397614994850557120614547162704481585834374863744057436483079906514969419654014098896246810017947284768416340722950295811660270077064297647865474233177031942844923092684322362357162629432256821195310091729365393166526861526337759731095689277888766606590106872735521904916582561343183386446923247859197400899364514158599688352523872491397868746259856567768822665970373253984937917878539553608237891861160853514302044075839880981346398744784614142836617432652620785551058709979076814196470219694021379298278444393799081211234180841111003050457164418077374152798343197708011073490908207865042799927444925687071627988014793975202925710044327946757462890767393398224970709425128494957398193327377742169805986928588629440303286107950767641363788163750869595800943441993461511755775640991832204531992675798692753654277307778984688371193257583655173404027122309442902205924644543755456331480896209236171131798697991797600625803517885320745738108771372797693106843274600562759027863249905603783201123913353054488871413698098869143471795314352634698210233921558460285738914100066158699344867735662769306332705682396022784283751107101460048347441823820892158297532961207805452764650518114250362979771933526500675850455681373035960837521797438606631513903446897696044994842639503149600182484292379536151345500054676651991629633086311779875683224283605144084962081350609793209749443955313118284496949287478935984062627445548866754836160092887562754360574000800127871491682677153333455528072533770717874457698169109327172444548050233434200442408278442252824197976636617096009327581181323457094457366228416316292258070225729052160966714125845020020700543004378418132846229129389203305999878530112569349041180465724633978487641518383608530718689634137646953677160047711799576300854691757713183776784559232013535876740622869739492912460571585365822779646217910110394368815156615536186947892321158494709370526769201621684869553311110571569003843651128351183236820023901567588168934700515769083316099268613791761611370242801039744322478563068598442280299424580341718960383226627532762751915310021629952460771926403385026795995365535458843870851730133855568448373710981347479623934371519632643709968675703455012532177273582897039658188825381023653118063830394667324965162856786199472943304921223443813042885243411281735663162374737070867639510111279570843001320367596833368889258781563381224661288253506484825969653864104007549854411230358694266586953323993081083756852949793765447299371480171293941188256895777701296633153775934407560875274618445054172603336079280711786778791947267527850618279355282537640430423937128207038315311466186016485568427764261084262594109969574986838094539587801450000971779474282693343706902872407721641422895474639062218084011375541054368882143910028383747102927310517838246891867980756776097415619461048934419554845986018185927123082824127872605269739484359147318711175377075463717930746307059708947253358635230391032613632493748895666140044272149529319895951504530782687427919497021382536770371362637944813190746791299080376131700228297839732988268676382993253778011453636400854326779184682293964566812776518261450260104732475737048248682817697522042339625136016692332651758334362353705009929554660732156011776286657303101815633503766097384600496815007675589392194285694505018176250309903672000499236195102404218276557392411109451825978724705839773584065659350573861691613348965070682090274037465644623872288717072115622241274645584114389974402002415651628155777337915325190247520569505149061570694357896014892145605973085928375385336093520678521549030873524535321094690805579277318056928220852497807060826621930689400182127311385732931223270155603055556734163620408906266830477491713167251663600143263795170456443390545916501011733320018055810579067398590698959798191403165256001822533088544061153039259638427521409230226451223303938686415364798817207473786481421009296815384895947004153424575928861297474059695645172249853652026403613021943707246589574998023667960287342410073660937602209276693525289481361584250469386565064428745972042285672033786896477936797392811770555698329599076572288206911484815838754123034681688507172838090723721535572211878111520877162586398122844701181695489839575242548289023863078538036408675764455781205531275787910856484516403173654074528948188511075231325292913743843773813669295458461518849907460401310079492596553124891062984810421139943422890754703073915986830624437405437994717706395587690121449513326304525290570800872900651354537387117344122775048186003836356171984316206046528521707141746810688835102717742769853521151589498461255989127034480600745132623301295339989652235773044595713019627853688163805419262638297391849534611707961379898253644151056863305541391237397922491632627675227640941699244464027325939912905504759739361824220030362035718943409328876843553569024349873711651856211543060311659446890643055008070757014031528716404465221819733187687032720087331321404287292465269246673600031751766089296004333322361323598149037810919608009934768559729165736408641201927416996676021507392560201566579405946400316340798075102188432686022865449928274327696270820292644946781163045290704938849267440441121126564887643116696124002048359605259727765029956382191877434706119508990322366550463459146334433399894276988219557942252218962104318628362464094246845414702382182938862433993419211144380248538998450128534097749519957283855377391954215647650671055543829462663140251403548038211657519137379062918168964708434704252179746886590048866319743870343644371877372314731348931845862610232097436822665274765187131253999470160763508868045616734676155133877659770720072831565518194252034992698435762921426472050208300617511465516550190187208391953955857200915274389878527672172674578262917419168042104923427661887090280526469227188213407419474629894108663748105921498916947036829145014016421675244131343902415804231667610576381386771695279669921264216427209937333279683837915758998633610276476658674230096960937874096333387002619626242900203997567139816444231474885323549877106309054305300937254816739356733595820648464227683093399507544406293061123802032655264459104941138865259887092101136230983258997372030672240092728662635149028946174913262438447530448335770343997524810984298758682790393739581783023612231015163947221963612358404778629235176163887874982049536857509537867679844870246128832988138261186161750092313034878982101777356639650447862553621698243048562323610242619063216954354031597806744852447125347709961099769194848135104321943940543761097632198179417861703060265610533144306568395793728777389421253996315687889816935423242445867368008077786949798094853380211629297001365061399384251062790844304523282794502783594050948668112805516870625986309579964578009728741381997217413177772596453447718065364050561866030149502644862587587294454524337925643548689108470143280159347669140521233479803428297801289018229460955592885498628237891322629792328851815029323834521477046395800110055721680733957562811243123385542015403213801261307723373775238216911061196933231435307831975899953464100355950481097314337359849188236137459842168662840292078981813666260090123593413854998930242947752963118004259430823257401924181686255257960092168055668884882396192950182525160485738799486012442720767322474750508676540494710816071615173484737323686893770351187766238087872307641680325466959348611192230949398536609803990396784284344153332873476895756995539653912804182760540162701797779698199782303402441544427522770883081306189816668507678266483543178180710467168096085507303718453989725086955141094092128361199336105529560238584460268084947024606187178750514613705931554055687716033546488970047526355019290070271340771941415893461928136333480559861418415136673501579951483929907919131720927038435094308598645838511176673196875342147564981584002086095991008454367780054927413571346497252845017319017377588136147111075196881542498637099756772288589222914409488147346639243154697630945407362392410049978928932994011840668156690826514363496982817227160594006351708027508527431177939287348775788497834564537629422517514592991179824996749995497889514964643186835632395852515934559327311975305298357023037033812134273876178966093092237865516458744471211185483193999726410541927625442860486426675315424195950920757215822492754445256325310197937860901565000815259776818674229754002774818611210261179356129227993609837378018357948678779046295990150861946419747150812622729673275972942961011683685832309948718255913259579019604236868152780484833166938494075887925701343582175248682302597929770858529929246630300984340372742336935421882696906315067443847156711958690072087249176490415680524920745453035153862253597397116796532902563348491348676453717423485149051557044797522665868102367210570183291100552471891954209708265017143093981216644409221152959169861490074627597772766154711852622688478067912054332016118973872775300498324953442821299741323078791927428078699199149629267155602008790258460005496508793749464276264332229802808046792602354801311944367800918817874413337791280680243740288446204492318476818108173019792748034871445087761624429481879392385280643656452051559155739503874205367834436859646544785354676188093123437070751851330796160184588325171640699622644058563369223354572999881099920580206303454327229430969568180820298885027644093765557492883042101260443574526979349650927482651732900264361635233288667261215131141818962426030476049682762494030276373733914069329228435827294207423865717829238693281689945582740098170724293501020792903571183966149598703340910800387124416767189961326020846304801232808509870829998280384462640156746759612305351133150501395397456128698418840117922313859760069576043604523699449446203851569571080590501907783327387334571018795825187953672377192376391804783056183895367709557874274685216863558085155734873956019124005366932729812751935443810160375649920231031487541421820156213490162167439455644399265173304123340482298004408973258142904057524176107761689765710838654220543610153815271219728320533303224781514667623691822297628465610431492764723506572833506341129362491807386420365524727829041583121106582941521224876982300646872083117293587616261098758407072061861469149237346595695828547932677523008662321268449985867246840769883671856994708212569202968469730871896032855487144724721940749249543515116152811017514390452973021510321282244008180805286485516565312784924913598776440052747147991264836019234290124647180734083120804285936876838356803061373376080019668311904511105658692095261756995619611543118302512592528677817053113495530767709898189482852087155894381059478925446020606083257447618085230332945334701799454159804931032613342916969658272104169544182141402142297771456357699690896623238953003561155333840933327621443042341856044863384873621010121276585523026882265103749045059404638763965242205160681136136963329369027585454123429866823384564207029301566788562639349683426488346237920875630319804428041869034664271921886534142055164202521203405778298720053793865652816987791348422110363324719594844546908090955762558677373594933000005199624774169948953429474560816388707478368341669899343436612636436040966925156722296114017640968782398291283264376054606337140406349089872759934658906751430932474687240945832651572316448181244507963693511312385455779427320994296940193700330176803380046684067083819073904828767268616670120833633740375652315327541931044859678509905217388659065896737544671813576514734236239317212795645134177085848696794293086324468136271149162516009190023409638055988358038997066754398829828828950272313132404590548275563168752123784193688873775471236894909720357034946411216459575079912163352484209470077848490029815969720700506809247059160214945532834838645284859080346583554190096048974167201884065494641102437458311595246740887060150901198656267486451198924446692162550960158247854338175318535465764133169729790464252408096897602640523646733143127380232427491923487841090673750529065336229673071277561331306818376233519158143035963511299421046934471303063070625191472240704827606528670926174153387397715166765322434468401026517506341763705674772019150783679418478105206100224048293572325929024219101173563312020392615292323023272272254527676995140872179943668592012983201004329352236461860722728963218234800448413714651966817438439474575896687612529268205615319031184333057316931984570939027447746299693874727644615821179616115412535548896055425844215961213232665272726715133221530380285125728115672571679759594819048953229102757921917319336293947296503586135454156967590406490545978847165611689862017133310789523769463454687240611855483710320831327537785677636428250683670668523748390291847239859070763933888043299093784528518795934833625676270966340352067118736041217833641409445614032162914757289812686614344102664631273020268669638121746800885604798887678147706255856744673908337125830228258965843281943487961221465259266560433021740755993987540530947077938520374282349027244501465380639451843004382412480296208230722920787494660810189333152926674179377126344128888151167667673267477019289209168893080515742887103215183560473252643421477306987867631713660841700139601534189638317341432362736597822092107625276576431933459857771168612428334467948648965300271342764321362807545403216191757785716117168964677465480184683054628773281884345412616346563973273051419811238419035116122400283712526184723660052255492023754859593723399149318641085569127021576988950716804598847489020861825108653906135296459922089105230319448267835800472555708866198227112153301690594095658381412266820760417976172826954923880224487320914291774498785805917135683470902086719863438701126189506632977609397770989901420362871218288658888230457900667764973744705521632940117772380111353776141630103633831882130878026538944835273248914783769528047302026796332284206150238269307596556422134600114113829625606799976388311440434425135973708909647785724053133402206468262098393945759799951473757323766392032960345176030296596421561711866130366700839506358818661647138032894594363205770118361800946549591360687899784010102103420156807287185397777068509455951785860377274614186859759616502008335535696184626989453416167943282716223176679155429019304199183216938342884583443182156558930120368832841095025951586442037046404205401267946655519123494728392192459039799429449261379081915862967805169585416615625113543617676397669544550551476901305965020430947437374251234875258857639417697895796788200329812000988899992934985260254589554550982309683628378114742386399631680793025764643959808757014373445806088469756333467924974043197758311824917544319126384341828482187072931140369430168147210345054392897544698720355808338561824325548327981219293131184335288624885274213174443887922773660543513367858458501476534200702781693026774791059224907328367389963195533807283421482427181368006009572976322645455030085357371432983728499906346024494706699979458279856093757072904648757936208924526206310945161469088797443324525064812706774595959169179856818530399904098191092170753626916695564122531656858245618534319809452790361885738472628592573937949449044192559619205145697944054175665362148511444180043730230150575571366176858147128734034132568840679073867595612791459299368347197226215656859820323547688283816070773250374202258190894445988169507264224852743929777968810958601405675278084117071827300416483174833064284740086407047107725775504438090699204820090055627063305206106817528321955683035784440619716039370408778738355468058708883462283755010372138853513941868131192634838621066005055156135450849737374754125437135925107042014231887389530881855825864148003132338093815562111062858003839741217539029902223166862122515243209082868637416534421171752382207579645690469965507087998068207913168676456145668536979500477157150837120147488253134595677557296304073575372176304404122316003954727901329253993236540005856373338135827220121673267219110073578757770171339654060562495990650979496376316762585501649005696264123049061260913646732561233754096013077894344733765145819249236009315349530886545190998862018800685860835401936337354869429613376134988675553923261718340732926397709864814983481721680000372654519982719937491913023898050475283662167030173619761119129314182858167608791117257280853690731611736662732270720143424223855384107141300210767022331610890754824227606006572716482605745495567233326332129382075507975679014926733322036373006842299690526080192055218795408887073821182974607688580595774616328934527346603414190205358283641322621541538517488812633483642495572140893293556026739207579434428049206275558074438989995895451980513718732015134590821247112330466899830029118127292503798807206373351941170772793185275653963143459431864171204045129623964705190383964423557345411213056668464875594327269822449683862915610217200492481047338530873224751446913865951677009313960109743908341417069219632976684797549054044551486983743954254235281786237407734072846499895975484152778581073040788853606034318682829245348547074420295152607106761509203351024105610343873260677719513530338346196734329212034844877112788395636145469263500197832814443931209038379988198073749176627809151239960027496608058767472604599521147683324318240326724515631914252452358346508107001272654250029600762899191561015107100852990712758070056784298572427908202359081574264562237456304452653466056399226234868827860801240454697060970599494571040095539289308565624054913346188590881024134000774685949688255835657293181682306526641235912731391780945313760299061058380052938220191571073766313826082246978273037405765450086544255048905463408632274002687915280946819527694115047371207691653987869702662225061989856440402352081889588716274608814305019465727213665202617784439216091939261194314101209100299106848367660665379381354621820478839354948590661422161539325657040117246621684583430329246475316907636301843525429550283388934846194429588403007906153061254513655393501217321576272785467855120714003822965575045126093788880074733071584705828858672423930757047298123215430227833280677354384327936367341778459019517421460728778174842785803572968111210043033320184653996900263390849400839930469424696187639481286269506260286262956953462141136310106080628868935206829380354250467858656652935012205229217861517268984302040570355468683616961717045470108203484303177484447200328800229731703654350357066948707167984430547161338146256595047503084997702853508618313712818593833223093373429245588425107240829253538425448585213268853715189611679604455026826855685775169557135413937917214924175181750798195507347046165104031661717347437771516861487773746889523130490341721676020097680728510649237973366597115789906947654961222500145328499647147201187216416943998930001177161262521573529907962369972488150248688248778840600806600200764869528401710265841804046670691578983910901341393689623117607472253090083245553317686711664028670010533571544581054466582605330917819749011451146211577215493277472094321529440240925389570601442339862212509947600477050496984687917465058708402856629001450635562180289725861176076697395408903881689089189484665371209886448726196343355145937273288689627541854946570670338012105591633879377629049035436525578446572892752443539072934821964697089673186775081837361354487964866241428893093204328138384681999627378310703618103549757563945220912990401805326178715861833661886935093014825642146978569189568203727619137531106640822616229836449003445840063852983803440229117382559253681127347797342907665076398810090760214613980677859533549872164852056299676515613601709557755086694570509421521702138550180866390301303710468853319359662607894968032454673156419881378746332125318320607482308212835804672088518765673380131999627461672170108299932829399080765764249482953266414098241663380854232577704735952176878035192820910182332464269797353410922218919516484311551848129553339491145847336837433923018300055266581902183964754048980262812319505158250299731445241150805846126076729394657651738597954629853240693991348682876646547814955074124494724859954221335211334648652728805763744283961812811903901220109846640337531300064711773352340483023631682721831794414121356967266241430264475460875884896047426776375010983701300679865941734000758031604815420925365438038402256142455210375750256860123513737497638172764676307062481082809331291189513405660755309554355628408292086164731139233167548716739432544264512117106202621517657265713056556289452693125197197688165847875780660838171450673819379313381236160746636503464716223229837885602523451140709874546480258727411249133401744418949276261679723157220578552856522967375693383745518634899377814881120019731667341344067440155673895760809904887276996165982038462858810493795515444608597649616100846434276802897176972366051546708947136556522129835315886189336920347724361736562883176618326962644847633540286580252021112431355905303876150761633914582003457440582890585517978144757052029567431641648157874609863337891148500403039483161757099550199593176583218280817317174485923331477860037254063773218731867693346224516421190698760731283682530496321794320799295292039722054989845814724545163101030916698058304633060568575866290539831524307588887100461497087598110059266673713208055057749661718539661406160246909584110230519819966974170413706449397834182302600453431419158849800297968127033222299587884962520330032667798760002469625204372999383280204869766869605377896845686184322414037017292106340976782033180292062962957776881362417936784640391655042218218661914501008102996283998722451667888498259316962526104932762254506038058105698000364779488320985422751221608315442213109285404504728050597896183694836688049943758269796627887294130586196673837986111030017141550287715660442863976890999485808755701016665032146034205992302646346229619304476897511430835624487010438456089402127864568759024884300468592297718940067240748438745766863072873197873312927999027053222667985487608128518075618756334030246019015135513791726572824455812056419597641025166688325383234450708682296762922022551869771036930276779212872338253358610435689892629907919516050292263970161816721881852462723398076664959038687292308341565252518472123043729743291110420813592527439896371568051543049950781616884003431360454315841883960091909841678066378168924990056670339213407774803003420384739639986805820376299631164318751247487260088632184920391438074152725362642219811389098594861169626285033281138400895235665407806576407002326477976331293660413934328903182771024042063287839848068455929756926153661877284274799683710868978546141899821041853866698023647306857764859574697694981933895431772983380876837016423502123792486442357435082448268781138354118738886697753433097257201460654857434366823896618752240486401498394572497426946445624865713170423319593725305678180460067418719300083072132830058619013860435727528502884057329459465234154736013374798754421477756475067612328116036016737779446819474812777379623525663263872990386212528836410851510766505625394899540661618878258131213456970312774150929872839064391210169348358876354470833816018760106975391002053787593911439470700437385887116617772593565028563183236590540312080104633513843248682015316275328023887164063181375982646798069647975339173896655513666895363674409386283796481813022313717434070479986926396770199118566995033915781189653317832838750882868949357365342246483720253301137062886137787083806794454213962557322136913156981911063364917240529886569825614254150154008886309017122040351876142193189763251005629992420046513263146985154669099484663482907770985894919256501324911483235942345671500353916822415604701171444621459923710827781687674245817983990063799280614734400360995164665162500911417120562250772469836511878779611525424817308164174257785862595395508477142519280416346713612207021327581088863981606102784522171740289365168268327652446983277951859293853377747800688186974248410950286136333937270330988837016028593967939194802583185061243357086831028820208280093553294160022785394911820971520526788817628352622583567209774607048658775413257202107171489025088975684781102578896609349541952199007079801937204861168057591456957415738098291070934854718942579874652039744049225898269984638320903885421953378351767098632311194624759973753556066416487061754002858406752689623225707032747720335669646904128816728420190459841846477860480975858838379798455700852702334610047872552850862681138793666680036886727562856292893542607898287468477682703486629653426810443827428853653141219727520953565283583781948715646513361012610412502316528403015688211436645246380402814895724576381746608565168030963377396705892390936025240099640508859213775565751432211984082914811195308410571343438153521030820739770417484687526937398406148367465725951395439928189445328371652403787035914965686757116343460337592541311892849185338454152308102031693913521364200879468110016694379723133376630043701003871381965622011241346970810873240386979676067814241212235717167337541604544484944835796188101284613873768263783032566048758112310675382116894173831116107223521763248524036856100219395104616398287777865641758148855375003421423317287290044509290105633731710596900109970850259838272747057409368713310361375548470258928888883118357873190316574038714209378104459757507462624249083006515055209335089553357620137235020612314222464156402868180540978315314602304458063894539422997658488817844339436866550189789571735182036739815633012627204856981368555865949140886928720689056257855162663664776294273171581348470766114103732961961110179055445566955500698529819542766577806588593911881322526969331565326587941276429727714715083203265615580024359584448792070466270609258165855145133706911629978022885605954645852481019269773810929119674153138502589125000594390731721423976896667812034499635478581361935113315585027406811029905741588334825947343254903414504852234728096979356065946285485956186018549425149241244789106959481019493406045130938433037772573685855344985532465086552196286214864832749824683317899766728310615506774345940355881092303844210161837329301430807332450081942984288328567725416111195401596107144971323397271016717652167755454114508222630870594814557104568966087649272393867976522825102250564376069810550110528625603860031121583815728682545186889450530051064548540389134414858503104630470834904921049734738222587674657487899218668783740193187362218726185836227703997062528337537630983058819377916924725183283731201542862533606421116353738762538262765711095880695680433855839312825384286779269670354834736197693372914925532396316199722453557843771958715224621609104942978531657996721754750954549697170948098075266846596261859913983804203645367506663570886827218013806591690310832468195583000296940181595600872738465594251922363532033648286882666505030648217721708552685914680239915664160681086508019649387706345789147632072583982020147729292813183930028192042079756726365342498487268108714112083881717171500256730477923039272043551485373886288671197732131718606963998705831224057081352730399098593134853485750658643920082032530119950185829765356930683924514705174187214736306776665677456474146761823291675616737020971972121662874996427361329190794313469667435357851778962409635624953148705986144169072465156550697534159469833225048598701064044727662547936579158861497361122399114719289300763763087610757457224700126879780653984031427553336939492906528184454747077884985108783348806770484330408288121787720772565169328378266736012746370224305212482541074323057507922959627310183984151489360236603382166798041685757088153303248264290478771866377514237906340294424035435762977506083637167944110339423035303300157516548342732436399188938185548114227173572499489791884570867463716767690536965507559542435484572938533379488143137123061133288743655746390367818838285911917511834680632354267905069233740487838386227545576653417014947707710879978731476844161313163222088376878092066792501492864051679509670523453026898264189624546855888823443495800370264802559806141728776529839569470383752093488031986485546923505858555125786922288292027900722642940545966507135840159313460788537614077473839816885909995477669525874360191654900417735537041623081764584509515798148977404770520270784356278386241548920381537047383970059527694821851909418203761267755110677310745408389635205715499374758522763923148517859787186500472324377995752680755557212528393988879355583107271687385833927788586089957188194257451892368171138336868978131726655600238635717523820257658164949908283388820468632280330835283381582348439963293206830661844827760551079853801887602037032070366851591720633926243208436215975518940249875340285496334798894839228412253944455343680518504345230105360584487620430089239018488783780255162664204411841728852958627463083543776933378274255924385666879500088274974792963826694133523278004378112222527904967992311108517743001847747879111015491671691662646237753087217834035909181131420240129821658639617619955106449979731975213520776990214995276567297684274191918781818961551670992031663952399662678971763787378634889786375585165623592894766987730154044284080303907988423119464341495807620547264759501031529325737228065354287210737915570475998458359804162764217034477381059109815448417357434182369012023923895765796977258450282643300203831474977191413387990761431332304265251984321324018582259406450124630548910045447656974164441227404770477347534034495802428568487283817762610530575103180683198217049906592141515479463086127501737520655572889428285003679297459603793375629678837179924389669070773831598448860988544419762892475050184807805997855354226396015709731588945281195862580879844402376469789321787645909785479301680490337755410062301339416962753991843690410183495137683413092552989790999492290075097801329091736120280297403924503602823463768481423817410008524968639110637379657167959614604075400545858182830662830630981776855023986719895796075453585363760021563288274850242362577847933642583392766943041224058693286850723660843094756706810090747184573831638282842498841589493031249432693936038505685908138993502149653834524656499439153067805691112475664152803026562778903147900576280857072901425726750555608534851082932594969864406630425093573200274851591778166987005712800258532612347190557919707494035114019929976579831828499870450548777071506864972886239413262738687519128563513323123307817137280479701555718064601028263057513242674515355070175924710333547553130805532193959434413503005370116940686441107872368547521434585443904895597778956993479399944576291333562851564761802845644666269203184497079476452129255566116639011877308606443502681277069813719583159041929381268854763957244599464935922665350761475187700561870128874623590470389419357844524915816742456529581104902740782946300652522056576881897414549159802313127268320475533248136591097327405988796782155854446401857631498565697034229662796213925539100659466270951853842468237448475850372954112660215982539618989483617657399007347007303540343663898175795784992985275274514667888284031398326837867402808840210239277057200584806834723116936421803130233248116771758109006678416462097175401060274802008011863729591364363254195417264441424855298754242643882266821850022124024958593437183426728733046171426339318927837007590969047480046511016623555010637022778212969959875043871473760169411613411333939448966549055497929802036139431419398965186289012743422192571806076406039389891365805071333517515629436735616249197064568915198137771490234598782689865873841863865359349195114925444889441828325400328561655803617880159742267413639726716694134943517818489143987040152506439333343503011028338213782691677855113327897270431622161733649556417958944599376661750796831495719201991538218568494784000812860254184879422243412339120040187063291601098154694544317573750471620605076135425255458439227332403945852001990025084605729173704153002781135285084661787217434890119044759116264862862933053563503601619300367490484090690501539471569718060826124177478017131263054085562938048446208679701649714932299648212684879596579787175457611853105102811766234400360783573670431577962437725463733490585780270672411869700784011011236212040364000655595563116597291303820089930498378127981651517219709103354745001738590076193827828462699827685161163289351430444026698023004461931735774886566472548097189898970278350772305177401719508830332515032843539413968907517345160005668426474879409516796699390708710788029933403339027390495185541972825107883020599433409316974187532705384197834922421655338803055867116428061936079729040875075798249198519851181045265700744476961380901973372111100341102682303233430562705930858740770016436207925993820073055829271325455771222107379506393191159151258376350989832137278419739203580418717713428132486970729808236039248941925227215151803456067377844651100935731348034666973608330087333065696325500690540087442758867368867658087260214340956768058886856919276567611555423399045371606715197981729670806221978023332821023551527942463067147061889419803454731860082267861973366387457140565756178023577443504303967321709826279479288581043979883957538327378399437986867111468416226897631248222031759151629236231450308505587347955096043091980741837206964133745183806605187942689232491612594440554098841083607560791947118361209257287347792040609706782280545487433200576128462546961779701103861420484118684633842780821966976911943594126886632224825445105142897453821451943345456168544331215499581407824031410579671246063108888121947821820491109122112371591370976758074361898464299542863813282202017896907523756240888325026163542576391409274933237682114229946052943535402168585001572766064205395136070993192975134155237948541659844696759115491461744513979283526932696343595918899934955208761919068778807413387008235063378544415545841004655600676387464749182036900619226167836836384383134492762430253914590015627973317893304412596239408026656787855268977519124436532864466734252295741523561064691413106523513931258824207229482541982896066631992090141431123546001687025265099079642525897723224144747427160505091755485087735974603183761645170022136572542670317246057520721022343706542943667966276078304204338554119053672165799548986178661865986254222827614736393326496297165576323414426265547107078148709749169074081387685294500074797330413978205722736644195528936351228103453050699001528584329646858603096467780445300772429295446765080998137882592317487925880968096464614501475456221375186033671259368762822609988065445362027902949736942489389213283944840469376740751696596755195021895304854024248278505106079859474197075678454188835102598748043058094276982961721311347358709946631201466158674852659146485569169160719026856003264330977153846163364589297459714029277384282131440351760226964692644596097296772374722342220019604190480469272050289885232726288638852648595965488528642560309888833435918116536402426167617449600774723726770008987468083274305084955646250495438472668367498518710720035738186905986453592506752869807305392752784888136352522783952400595542096546368017296657250355668745140114875910218487766137267575794239326846577571972517626410861325116837743916522978983640632037030144904944313758764604070035815995857139155325025129726518175095370254097155152826310202362838995383808010096657157437318555648508886876224255302244826171358801461961352479879978979629400611968448346397655972411730158193014714346375488493909928919815272687812488227328391188972952602144249858398200437937008087427592915096374041806232995436000195127173446852669701350311412383001175189201334215829937797490484898410605378916883536377519467116976811585288438817212532450218164064541992145945783106188470452731790388291792066288733321046799198536855058091315884382486223357925075681663067854665452868789664747732417266559692912184524408067530078788164124484750322281901806786534222006224305772747428633080493141438561689550520737670878102962152578629253866330980090936546513287039291674769946008340709089514910554672475769934691409811132304887921728204865920908851199038886877698616521113322425526031527178886530501410043220142874057518150867634696038108994395544245467323481557878531796439252472304160793310653019184895291539239930936962467932553719784360250763173444082729316948232900538128696034549333981754850260972189731098509939800888123107462292774002084016967558592585947113594774796095677056284326326449593569965747227982162503134714821141752994863365979295535612808136706061306994389166244210303990576102633058705124141839280255253574461181284732126172202306307394209894880016555540389205353989780774207569918339095120003547687456929099264754752281447935084073200834193887359672795719571581835159727404604152624313705807889274735604094380216185314244532032654680854398728737865268547723993613075942161305852203886622658186046536303644665764215393951306361754773737086465455486108897161069311585787949739726209793445861154781935273174071603721906151545567269104292773731992319572825828713519928366791822585957477194919895729648305068733753001756352216007674113497092108755338605990058677799595355819052677220815435589594885455261602510277217918557635010542727525596409059538073019219111356430841920883853826160472412426749270357511073789438808560446503174167324534401926033974477424944410447674681179351622168272186823328463527723301679866951434015519694678245449214681659747265873532596473204238455288507816671789675958089412181435238104016964876794196905560671182189242028457756980627795300818732615612549941843636301235176509126557241975501254114651011685077009720175534983668109058442412923592149302220766655466329036888679613321614453535368210361718988435933232329058866994240908664227142449500681384896325790636543742204888432746380517232906581989573820564102429878342046507936251376250302467628279887149765418805707552281190344286336356376194028630729359787067214461001400843202183591390375596935181232812033813903008477168528120375672409800059975713810170660250583103915043796836638532857354379064155184382819433821745983764916166780739515351212937954575910368475093764345592259595290438292240483086468194294554368204082275788133707084805298076039472807058645268680053425034792305713165198792205664787879939275840433339455114853104135584491846860890591631038663189666847860924073542483950697620848945520022836501399388301780096691317604049387593571001199735801668480931836106074381626060666526087436776616900999017763365697651057854895183524412748193992476279209739739721364099168294672879091071943585971652551026931954257448875241297251879509565753356349238958624114506651634515518332432414722656904941243649063938370553828268783552635130134570982797920760969855810682348997651501298358857072041017397608129390569393612101519716643600792959522535961034008899485777330455161116966749314604531602494829166356610304069223578566936704344485022400150561842445867722954514635549968714834687134113645466617449426181722578585501572919131246016095457525173938392661468512876089585698057687528142008156789769760160322299874790171390569130666178931794041809358345917882341891990741162386828084398615824075867785782535186812362549398113385876429812484587524917409979072535146146448941585339685496640628520520533935205610909667287673863177055022390655123984174606647101424324919718144386147108248677480773854266713221023277401264215137552802002858638433299594917096393684427752259428531999097198014014138832892582542729729713863743202691520146922966214893983205351024289172591737894578633367023384924770286807427466224873445372378450801815206535024406180288384054160794566214266649549140888279115461592126963553513672690575680546729931896208845652078508681490914256088788432879060107317670610966862974345857865801094918003236852982503660367611522773502589746114984363656156921062745311388709843391716218010814756355025839574244895527575963138030127129045375038618287368123179663196924261956929334398004007495535956442228319983746442824435707903533919537491731375054955108091864811045077647172635526395786888510145441255205249707102775487378732756659843813881190296549788793834514228583894599256302476780634485394948373585647961786491800926807412089054318975909523964292076808286400345579126963761235117221287408998112980291954014416503163935747884727207568286410273920876844878567650981872260918924900590335317178087855531724403177554453310134220096727209248622684249244131060698599338309971646374580376675852108661966884970533734874771932967343313178643304844959682678471765465067673968910611348291764152028306291397946411640840938996736312655478000700552719303169670564328003971073930312864086755632686397889693573533117908760133719605103416050193500880270579506753405744733933305562107360018749665877851674898943403793429809220048714440535255646688273708398823171381647129777053448430848878132305304704079559446831114251824206729278993205587684698567894075696494958847028264763898074977313115934755610451197361244157059426525949580707843961951778349611378688946080570014234429725904516885219429393654852440245120158055805649785593446461279065867623376040849453552892241748881263815440776576172785874696424054369357558684477961075814561023904027198571634897345981700723057664073949857262303002922797008343957379167876272398168785990351184261192739609570062982831823985558806471727033366331955772799191096078428113685083204411050554356924713703276384361345064006349117394984770359586445388182300114598173599947473704590326548428464025358297234265830302415804298582653970434830260945357118169461997695534518379687536118879111496973319266662938597042601000866381015984349526046306945715478685577057962665855950551730971440954384959070170397604684927937833896724981992614316223356618607938627375276041558218082041203598465932045855764176516861915384208011646361301648404336915329619759496133496103409808405409005384909164937716130732625974582890610039234231829767609025886087513474017812383858432681819788796958826392494467161083688637319610842664807402845655931661221303426049079540668957196268770168688166307249399834280865078547137597656334999647407540055634138757330792844406785536891953854468237259052942738656899574492277111229830724821685933671508806374623911048194525412299420686433609578389722243190883707000618390207859119954347812940952324162278583870853983130970624041074214868750098793235124470065452232199372615996146328343592137311667497207425873479784396605067107110720258874071108129210210076109360363863600668129478957561931533661028287892800977888649366091607122209758441286510060953341574105848382441409139978704000282202052879988195969730794091184950192233020950804875311835780818241502579205624658083686540479173128920035564334905726699560733368028020082383792029399156747852371118259837692869819684420618248961818016578804494392004642983869697904599939593299779098762078117385141835609886726560560664978560875948680426885544676754384849044036435554320859078018085491503356555361913153502037298503884601074145188924155840825853652589863739875012702457304907757660082775127577498597327045455515421988376862846596306277389738609347531729009396097890687018308472314584748706573768491582348063955352348045861643394400970360108561293232031056574741216063045374474609483993198614147395490338075108013357864945536956241141339394051107160298337411951708793073425630023759323662148019877750589032947942210828219463865931182846764042315839709783579982560509784971457905640174212489573933428088058629067781228656749642278582761819451484902954081479029167129333780011132652113059921733358806481378408385553538078421558049172947475458299535948643117171022035929318266762993854599533587806136372892722157355961337589447805655973317741412574139647297512646029769880461219663801949872022943685758884643905403514264212092327243631752072681456103617413936553794932411434802750285036791244283301684476974942222021692690573218118097437978733751916820789373995066948728106185053603570414005757613395922135553492708739109272557810024359675299224734332949091416142903840717955678889745042065054420406121793966408910645358897813421506781476467714288996026858827747994130553436201832912266857671325976887857490474196169113151697015427790034904838245261327655393756017820011417930061689713551747946093311232855141175370487645116387526328889122055523811288797871808397393735896032211344312317761456733365600655251310430881229464787673313917023121729385076083881837386791685214290146883701602757235318754781715478642831129132718581873533387385816304996712671680471023661103556303656754090445338502744469403661460457967195927847020523224586050592243318266672986580554860889343686653953350992190523142879209966715909071075804362091127379128408874414463902326986877295729150631881708484553439778022598513135885607837769891517946277127337861584191360472595383480902191626425510593357153407369163106225500037594221885082050915514393824908150825510953977435618160214065804776551196924017186708475105609667332762790463694277595468671728505399501882046195881502445536743103016128990502863964101214089532205209351656509070788190283350236015727030650485904985879624017621428270013936878609291283148063335170737952723739546491502620322254685975882927653747290759648172855712824507543977118870887264955180753343659484987542028784927665440641696252732160263343192364435412875598259824078545565986902097524051571167346800602090639156620901036614906675191832367165231792609623938425470011325578669357790490238514784097484688341979806578149188336143911083281812040841525360951068685140324170424620575775328753111699934062513145542668375760767229979401623580089551257066474055451446958575889171279115250745030057942495175668956047136967745447716082416491684761599412200513594492437068951989116874567197575114338424706626873936392468098481754558286787244615406540688921831327386607052553604806861396417174439969094628888767248985439539293681696246023890292033373914067405265642123464508061043626100808614980069660088718151207992231933522170235456106859431696754863298014632410807300624543015088275184779823109969789691752494380036142493839259612161660836167118980030934896102314293526448170999668213939808167955390851100701839839457192083078581346988978283495565934257306532054777210041836444645325168811701757212071395184563496644051114572128381915787330114518267361533231572632413058513003418635142995389453316192725096678606043030767752008260160698076628449408359473174602429431029640901681996646864756811712863600664282176231607169925069784101858850138021361264422864535347641981697820139924331105524156023248992498710940111872331434670471552707193073463325378173379850015100801694191246104705582943651179673076531621898016331491948925926403577283548873311192033952029216791531733672656949818729632406606182423128740098394727448522732009683597125242358963886404485981034652450213340197625201855639720560141404384605650487584024480810910545187172742834968412285723607853160598827099300493656537715611673920673271845329489404149268900097170180497839512785302534328969027976906490037406386823178171567935984084466929360942116437665901088478063252780626861683725956720160717283322220586713026181297948860613552878860886895399770729095019890129616411348731849936147762974658376084639148849083825307410158025838860403885820775544794922099104738066331651129224369651359444103249545005750826037030276870847553893788251838702446643596259035854024908070309157753641045764255419191233322985726918712276229958673698183545505938488197249155247137499798557747781407465835539685372264262729983041959367758195541768336869947508628685283062533109401165624483560747386517262941049949486198009195167200607570099365636202211311400095728613349265635572611531985191431145752364014185814572589895293447453900885945525791468959155309729714551501495235162374745542963367619857737393261486181470414008724303184534697782825443320547641210801472257877456931331642600792934377777668786482120741524816114983316756044600087687257932789695540936603569758356621052872649181923362707907928914737284225757503832750175152895636895563353055668888670897476064996883880159085341549993851303072855920830105672724107806169965045917854674511681338004009931657274375539712077158867473498521892425022223620894701964997159553929389457388677271436723492790974234907352532124237120034973965305565812625547085528764523577809867131887128010822529160016346349548069962977322111502719491761945775512212223807337444861670638492970163746702449147417534935609021976773816285927978740283522090984780808062146325773897116395323488607231383776238429285965430179987129372876363646396664631650486176072652939861955306532894387487124048969843492964090478309469904550244993030693427389243881637096205878416766511841427166959575604252692760166606688922331268681052615101610596561602543143289167205873660315220667328631473478528590381679677615515706242538436071850831564313187779426625259830510366497453607915787298734930373402984431602873842327179429501631101341234280144618493925044441192682217963654614608845082874478011179573651699180826570249732905320202026648084962699590568681243053783918331321912470539722518903622000744696899480998135338160373015626367495563064043041074066893222421088571325909029598111931643018290880094228804548858107311467448996014090105311758327085779806023098728780831416288711898446955002754480055658755065564997440955224044733117430827654552929867560433574443180256231309950813412912861900198649557256186462412704744433881125075775618157778068718443864208054038505806285880634995884225011797285133221397421113691989277539499033003375254978591249386401428288863255315808865885105670549998798334301579257988615741026533374347625104745255980441605813972254084089977216789037401411730326397108443303294138876140332487627904871194515726748534010153527519732820238898679546243585247373972091274052934207759550303522928714208706683509579745236159400832383148886300818213531261025099798691745147108411641230899261451615072729541158717061381535790586204488676800077081203680554218944196511900393263677422248760789042907187833391300914158136507277033986365432830543606737285690264886917788038509237952544048314380480392007775218101496748059545496586491198679058611150338388310307352137084013384860636788584495274782016065256976687225681644116881894988966095048361469201763148093076187795837560180026839432700389726633535831345971554676471480897501821072291567853976490499576308643666537804184448651822668014167989389115689176809020512705317276388717933182500539931060171384369441910331328031204346612078838428480076120437195674620000156306943815511642012325092848978614020337137698110237757289607405078044771368857473543288495700236350243429978012848894338658362799788807359447866854597048790945152577137411970372005413328959606604531535872078360146162769352031342487647416627273714662275362649870542275830118998268426361298179298788306662956169933214463106157799079401147220900015821542378002911267808557513916049143984467901073663681810123285786707127465910226614102830022247226841340326199032336251221921510340537567042770931155487590474492703911803282411960118245063081947475546676203703798483247129160397892205555084904026701267297247999620273388169020361550719384825801059562360977807318978805770052625612702785880939172206290733350876826360913771221803861190173942652319104200334080091274908937276652153297517735799971093779786911007283113650079650001921826180348472133798721869822048268522346632114926549019343149862294550736378702685311753281382404574538485974082695261450187697933326542729758997034573760649536516467237273996448961635904640974979975718544785647272234025621153225060930662666371419883527114951036208025325980749537796634641713337906015040379701377106314594195029634117876598270869063113043420074195046780862941141509028312110493102091463138318099607102472045777040202450619538502084648857498173082899449263983428520797923445932154080006657880769546057294745973742021834524686781724031345191714259843147470217892471666345052956627597362825280358029796001877811870156544021272140107222137058827440014692913885479138016560533597985554652136814566978472792454622241912940223025651374402938068906916808066101348183638218447743248219816820869728215486530234783815721978833049049420708651154947399612340374507592993896894193393986189908191102087016860906913425855146728909255980958300182743193666797758660142711473433403408030615309914468965980818998055554883281255735072899454979631515496295102117483540205451511813163661382417707940029192141683609060396115601585858399882416629599469219880623068426310619784415882958501683627006803180037814987936689761710780743063185065107463749056795704295122932744954460199470145369099303705720251333323889464739731998283848661005539188446511443789255999997212568308056023907622277621885942137974812667837520033567152147422667132440191841963451799273319806850890570796957166708061371307228727743184839532455147626708795478486277835124602834902416510627323961723630958147478787187405036824823536509130998308676224384763881485208390516679970714426622724258005133218882727426540062509390009265785001966114424527470555870996488254553638829985536219236751345166924935383700247679904608131498504437939427804665623550489248911507562499620743625639175779138493398428274645144234047827462017689949367602005768550971557034735766679732967863577120797909634497835851501228412168653585812805784235084149294908328799621143515110561276918519890257466849783143076586408179730708691988759539744061297294934477667741504505550752955532801809179823478167988487161052893711936819073857760559140590739604908230226895357301561461986678605500992982926332085915655299532995863945499828643551969431062372678250335759181468463932950284970119031681126144108953389035399663082493253917133594441446019415131644631278904100632346921574982906633321204062523229556873335200105929536662413750329999342920925808282951103859059023704896759561694854011016704100172776965153818099466821185108542863969688244595392011542231578704093439424440144877306455499477073968694381723475276390260572918102094001304760866637169851820796715688166995914086105609553634222248469067749528142965999962957911775495515625339110966627979735676827252021404163817278701948204246698237131285465121461760261679490460796443495328527585166430499835351030173297418058193365783088200008722127500058875012226116196372705606045945125527874682274415521594096065792842016896321585212701142889546315027861784211905075457747493558986489898330741477092965319602568415028621177010603002223323538255550049267921896766159131827338874257385940492790868864529335368041174693124687722892873149275275337818124740114829833141868515690446464163517045150010632554771361261854650785714621319520527884782088086222593070453769795252153594559764889427887925045464056710767112427439479239240536847231387195232201266433606414317703545449449935643952505191650684781333020978952987235688385094197339962941016663476677153662997493710687790454634158501905742966427847905843353186041408341516552628501306072286067418593774260034381806748910473837485797632535771827444047039873242295602875315250091510272896470508421800918988440643258555649811701720750890104313346592238604606503792981644605922097755784642965716889954445164049860171925256981417719361777788864239961793613938397054852364480949716758286353246939860526678606776371513294032527891671550883083199309891976909421530829866873693915491182623553106101174770642087463246784195846905477621532501676286357447025131313948333551132809530152326118428085711417249571830935585805416902740524861702582482278538581404576691620637617281231166268043351906658540648265364644400511642966189504362263365774474512433494585652291024134001261144984753774317616221182178429275532658806278221514580437796698926228379889392656788761737838476764816887405367474854156701584819734786368296802773633462469897824169922445091668184470635809179296534535742609801807997125053707843964116601620610745181471236855468691341363854530722246765687762875094802314412337063740350839900894101133571007173916619710020865692370245936271647114546205258220351689029558792018630075394396860188070377503687898039193628753808881073334953042331014494960925338544094598160783523510956492894448012292995477696124345511085212203856547599477978116393245902697630155938472527043018082108247951320262282777131792473601335081847742190019082768638426478611030247453617993120184171894573965053068152022053270550420924275648906565466158928095627131879676344314892734062919151953320741571266478420616163853141409986628503983154798378130787592501699950694641972650110770588625547204470896279634446557731061663570649181131359387982887612545999202325196927401819632912988637076830302711167538641405482977116820215340148797683181370064373952812186345633785227347660133089316376754173445125960465541338950785566129247428479134620774171926959350947611324396223133787222158019220357209077171312861965719906336099579602684819729250533435429583914127752718771368729296909503994548110622121406549363809471954016150632507764726272900571126214422852370146228225181303613286612230330359140297755854863490653533873789269467521888895320706050343992717296441644486526177933783023904761552588602410933665744191289019889711133776095946689549758241901681589506309639802725569136744110289427467569295774862583282512122071513641712354121905643675246208731079384389066178758349273468044075078478083273186791700076489333046328043810051797522804268643197596450373255384760888569546380652155535203102918814908300209926100225121614467055378955089790971614809342647492331634486605373047348351056450751308559324809852989931677713064083593464108500166566123512436791030346413324688206160841402109059982400013262123187543724251265466392050021702969131741439842414946548648708266084156874897350733742731774200373300565989202284456613848592451387824355953543613611772689730831322539072734865801743909200970206509767561063906282516647317333295008589741700628822990756229436674861176317560824232041372888577225410361282741776304543562692002165274663965143622953749239676333373881236288992200003411145672947339676379844880901320043747698971472637539495919199522744142268723209325558687743776730437810888384226516719086511903998466892366192771469039534199596457807964887040083609656233048501565393020025880499558524594147079406426620311776150610975469276539739928763944680628146529321769753597284975005397838421990015628765368370802611995688771737044414011678582024985365741348592993252113737080413940273028236742220400871479494766026745228034640525086503872789329459787689333991887412167306071891588018734762885464480370191453590365381800516438306927184500574483801187928850099237367469673429599508302403756877946569522447821186636094232367610271950580708354066145489612615591413322460386928019693521750298263157580537233379440245587291345169571244640657978312479894202326228725592798291663573174782572515883396446210087003193014043299067712293358306941777302817856365888735507050321449692057299310288354147667549640952138488527531059941734913543543171374488766210288752566997360619779149859472023411323599270208722357145901984411036674173403134059386298770155960076548445947540143790015599274853605895926643096381040143584519095558309516265386767258724321419369779117716598523679662959050370333822302382508583644366687602569297139424656695513770702513634124887622345544087961466313199745178333226655984023832030011217237013288641101054609934801400261952409201840822795634108364251917602057361650722391166729416465501788106508621871849470691322694967168249171456895232158978188757690995865354519831401132845317702024619340510352816319499841857179606831436877608358026457454915811545400692953147033414357175057449048267182517308842862540783720708595714687730969716954627457006958935478433055379371006643670144166962827110030650644577414907020760150203144941266709844057482968023135081707663601760401749392163495602452383202854692465442522854990176944458922616094294222586606138027605128771207150493510248483573307872940208032787434070996514006561152232997261188926710428693840394665449257185854217770202905990306748293455344763997008566119933656062128294505391659982954436388693344908636901051444619766804144745541141791328834099797187700178317410966416442325440929174621405775201180583153106688410074838227969570070353967730636542618514541748498126547118228129981586557136070113928808938267637192638524157830162421963622791840509901435170424116755453875988765763913873333055155830324292965567165896736975604476175840489723455436825698080192253429121865687299736627544826052951951278396721036001336954349296850233732690143832134699117649195446411154423313698808513240019652284599604747861277081971210409645973624471707859363053056326798697115151079208807239054452239927499214517631246046064142864211572433153663858974355669780922002657115947087907873087128113882919478193024667051460051155438914055191890332458756768336917072797621401947348901702137315587842937981809823011613191581241919836329039166003146859974727363745570016726880627081733989878596915028807089464880178657503598767206697353285409940883852917793715410194890104511102269928140140122602460127860774960907569343415946889022185386154720674040744039510661760008988877416309598870338705675990420321177555283575004185435538909984376989894747081412736961184993162417594020802507901985915646850245243224985011452658018147717158282339041705719690894072074992914882783618766483953390545353607373028085174127705628256278070612171175806096380205456783153415946171324116167860455803366359737100588064229989826166429289850270417081353529239877763984993785872138859145162003638705548491281063751246802378183695285868322996821868468930358692384501717401843198176070506825537517711358145921564994737796637532631491750989879266150178116076934109937735383747070347770090012882734007736268319284904499313401888699991652659948086974614026354737401852188481609514401793462886914919083900856659707296946235494588034656109080836311702433035427323377898959509962666127089040897218884205530135858934535842027481388873000783244951169295663603964395849916489910854691561902986700585988822330330463702924441627134691301610497818758331819705104592210528568971651400041251358627745215463228784200967779596465700843395361367940242677324183987233681297525903269402201572977452146588407848622085302992798625364846248934732869766906036977697747287201766298364071582979976371963520059198774879817570712022472019724935441275465870749331355821847336546967096812083822666431284945310218380913841495915172586031524673745357601767353633448057050820860194138103582356902695018999784692296028094698830807119207885344922064641710228802452661257329333715003982342175639834060232404548820775755188480577282835172072042936381647752444339547854407142408359889845814837630206679388898890427388682516728400343105965630060022193919334331874779830189235052700421481858733749388314686498794221258523893361663512772128297119683270321101684656856161597964534344269260944420680222801135132341771922513310219665790386978157077272160117577875154554901802109254055033402262593539053990131035885606183667057391460209731414485422749069317414702320765663342794847124416797289487093271578050924923663715723481388872238096302079430611511988326089992208395936042216282885907864385805804411009644467857954089668665416789732702400116846815142137383280237991549290929553398227161859256551673040148013381415132643942510324813741323626193922527173768874345549208975579831439391362252705546571940306831587748067821812195065215568672459561898317029128568237132605445621430765257378281366173494246709348270781280765036355122545387365280306088824812496598840280920823631225862607720423587245687023773152008964921268571846418740732647771185907933925954734251392445020365566912181912112458014431491515977330865262884098753374030729329718463416967067975377871414179344516808847701395100109442127844358994506625961224066647157725916301781197397476785506543711632933419036653926711714330134898753884487813605144111220665750536968719360941231905083738020762347506795941324563486164424099493507638805880908990000297865884818520847536393885579846687406886900883293598011919190710527638171209979866998409233660335871675810156914587337772937954789624444974998666941087672006844101352793804394947823881569106092710916285343868105176702419362858401264201606890555506190983606123485426562541348077483795143645327377302773430716339906060371982359649537936172273953307311550130771069632759187960346036517124174593709116360487922960852101214478941797411391704688418277539243925879686312348662625063245333323773077210143046241901603155785301529316941526745605562929333314484195108029943041551044235824014178738702604417870193774224822499271871044851781183856097569769301453104250714621604456099856406204751882657261113229190098017223599546502332010412259455922928329129523395739356857338463496922516209452040482541139678821710536622013182384446240031248155664551037500578446530571305162844822712716544926452239501795531146150285021891660515147757213030511848936625112471343281844814881948884221413532431335852448539133780095901172411073201716757812994349782713089428265052111832822436853930310341952671109498917450084649578957121329598869848286769466354847579751457322231492817971161877789808338215385966819456675699431331496861345044569653301961806630273507157335860463516836094691421476995204187801350244711322058444985789823709452205037179298588424942174465698504165431721642224645882927962568809948080235128559187329805224639995511322906240065931669135459523251326164364648868125138650322282682763151594710186233144887137802756010561201658434040742125841618518864870081690364279901183939407252203511774571018984560119176197152174779802740264668436076653297766734541562409426593285575619608365562164973398092867889666925387534174071090730478556277166564379416910011505020746361111667734711588642194023868530429369016100152468089960912737687585701627123637743309576943676334161038534756532141042464129507359693199614150701423649349453996675145507730636314610209972581623212355122933651906610256282138598353490296026640663720428627266986745159152255267271305755115372000434192628040168506374396172331536949631509800827487057176545656186633279575171439031182323807293460681956092722714384785070626717788581456212555290735524195731480524532793858252345650278050270466398296657645556892135549838192219547283817009934982591994760138741694495222774269728548336185672913766349945208090930381962384707144383638883274184981330841873467765676820719963798286082373485708761940991421171616136637858372658530312790969585776529642835433297416133914953148755481054925058104484242064434428379156610259756730210620833299493519737120259030658039739765621002419523244859788305069551895900745689948034890853490072564056801889647863927832835880752644249966203871737202254794488141495878674099182846478624979656520042662978074496795629792736106548206506867525632706147339827710561671531594014832402980202907347605184302809018478711237953963534166065609073929908014264009484047484107670596675579497782293625781913836103015791275684319832366956377569388545364974773421244363027007002016656966403953875155048251875784465036252221342402578468990731058780552264579593634539966834869653036885462227143281641607673553077989564881823313094405702927349671396903914593411496398589765778492719348588677612212471511452684475373354789409687613645650320233371353823067283188310448918418406627260776161179918191385856213823366015173887578607083302679903875985178926401712851899503192167967943013667784018484243067123903113082461362961611181922887677986270919266250572065826604569745400870439118393615592539157840541595770790325679174027954259559100057615991140173516446748617616146395740217200119577468372640893066080036164569111426495992121320746733216793664644899313341944167632338878999713367809754765769399622729401082254029739833706523586211770753087860890260661048363910581296987013977063194900939804999132658146535490242541583175827103643031682330139547218790048875152483146335807146663055890889328622428223785655686503940049907683712113583969864232235024733411014394167661993646034769992055145260379970328276758575619332697457271633009968204886081618506253914069200124112144811020718466491415134044551121798948729561374444827183060282155352463532097870022395015606012382125313829118845989500894094644251624290677777473571143161508948018256493057149289052114042501159849995295080684324549314834006345787590093523473860517901230399900209737174669638433083285040702077006745905499180034025602802645721246214852987387610424553436591878986953432595631925144303863227060061990592371285370401236350706336226772206868285251737944024690246789636068279820402578548742139502620189819442226004205767514698339424071366486985280022016832294632857596801147439965532217463922484588213188573276781435822866625265814747285028437694524251851769604881306544653341189850267537729305952654734404788234439272368130109818971105747477744210697077237504051110058763600118340458414266575944466407650002744259143289426629189309411286444735538709868770204322237235508245046373817359095604383920686165494275638966548563060577425923484025372505865514931918328762280474409662641908067917650410079401872450338674465313687271761090988964057762263429307386000002747056277341957715656939741456743414137677597328693070038732512301898226427353371848444000229381004302555797249753826056537330053170651304455586822981790703828300999961172149299224646231258592952081734792975187320924267864058746630616369743152359345398155055297114468434277604053685753043205708266572471472770536301550857670067686706157198026748563492468369357375941994943793828042684131239012499018871289743648175243622786450387981739142444331386711263393650507309388966188584559132595135679269170304747437770507464519434201049816327213038088811271485732547466756335317939921030973596837515759072345086143669837567644206742222536458289927654587392061704717531350917863584999108756623009904359506262462508737433351809029628465457980404157261712584474443256370105598530230726781648497528272425761774249323665508255528707996555097998721485617328213273753675154059619755469000199062532675429810935565824427343060718919304488761123273477468693750017793347364452425480127473383930968390467829406398157923434270511168826303996829046927796856438315187201724208386163785102602390436828988035641821919119854312399105412565578056343345862007746000710960137463519499835250336277141762889682883516369632140505720570853015289836137480858162464851296720241671804186903116950369261900144282860054876073658552473988361778317347198111750865603977358328042919513142036808524901377299410052711223418176963800947328769435511106216264232045984610292837455414854920679141329825774615656732916725441100059038121346964540729571187525398665252722802550394614157783560784526110678872661799746504594256086792064577004453462385792573728616885214454829904076911187932935561340408245065665106306169310277255510820662649148863980672552084933000795155758877697065984467101294621721118730295503928609335776702804541424929450869183995378728404867352195394368833943155522984261405443309633651577741521666905457911216778423505088968521079653732316115994729446525518311355742863728076065932437295712282649055919279870615219802340293607266815049987721985331279466599243363795510232386214009074180127125051443318652343344070968189135385404956715555465922610040050312831722059202280337865946462278278611073190130565766946862721980367995851681750261884806856200730238125463098831423318525844929759465735666196788000503339003461173236712739623835365833969865016857786174839299121799310630227561354349440937885789106718488202117625986250993069670070094033568593078357868634865517565226625595777321841323552258433750254412284975859015372476229195788921854112851494835602493249540475283759322908803092527631881691213049900499872358628621599406334452728011325793730505016042599457021592000589212164218958600669084000254966543410806666993077281129121609923565601202117515535889803400989557297511479523756041419514101562659002873224443861066605995327238095918735629002905678676038310550387909743368004308043365903943113556609773159363547112019872040759479968438173954121723259688306320564931357305063573028428843097042586356764741132704115879654362962257038670704743916577875246156074074939979000257982280562498051787477235500163931787912174492204276694050074126911117712178483612709201431623756117019504908414357777103974928785287867980490018100660245977347804464677631055205916684438650429760595872145382049479031586768903964191555744121347310731104050101972485473351680662068528717802368440952300724275811150866830400993423493318437998156033114423824179670246626345086349423502993242452426600578193820348622985393762666239608561635805773848760316363477716241392260814202857519846913415480260211746296964140562479867555001760212645251326675450509758663718319966594831551798895407453433457016177227732051350364732251377585290107058150598433175417311923466238268257032070130423329883650024643578313689517055060228557749227676394833819494991703264039735325303028350432920644730193376437050543929562001321181035873168776027650553429765951277199997065629907796246213614205330370383881489834918789623948086240977730288442640513422993605510645222142211254771288211455226948027744221638873797659094288106492794552775298348569689427712566400941911781831566672211699804518749744897856977505063492834388652925351869199472446701462511780930219200804587007953139846595082153333313281517782829147364284969440800397144307771786663194340928480243450989899574045096661829810705964774594815861239155979324338519036027210613729161203602343758027005567866793670608289367058403382928916439946519311341196802457029394033769869430226745962625418667346445508134541424798237134240872349491417160212888231408029411966047565705583353908909668036196056875795716776500045926848950303238952501120065309829703575782086303444945363197921917964817841733524871015332340230166106486295581721394923472219601865424999931975119123370519575257982445066112591020783480436092777406771968484903601402880332496439774289101710184078843468708592940652258721645204369411692471245135511990042916657080093404385320152533402392161457272285638903195242830253594552649643241059665431896409386355217322305465949176632486977609725720824706750286384232581506728454386995985510323332697489920919210553193630772204332636984158957760578523547193075666964186787627409708779076454046355048560335312183636050608337868822382120295694241783728830190599029869654025549591549919095267388160374237139666618625220767343166727132743415882128077433141556299098692637917029273869124936620873715376516375929049989810923043409143741877591774711803934074680590599921776181161853477668014539322675680454864112147254390085657671034519497477803647439271704562388814287511851650641995649631809875892211741097359324854267708911119065031025923754734974449535332914115580457755001493184915528085305263627657330503663484233012861503294351234926651653589087178875476017399330640031292304350066199230595323074387656664848970162267331177982653770094283728693952456767871654046184583325472799760584957800223117783270822508587115183057441404973265718072392712906406506531128558198740879905607868732863345045631738327882368744550873590059586434835240463672167050305593292905977757568575014773929727176956664428710958629493568811319133800583388159808268700885595567631371986523660187491649712821830609486142725025122474895299976958107458285151311589083003435191647187842612494096177222185010564584134668107275763750306698534339515364038532004860119866031414011329326011286226432203206174327362519501789839906198346531849437935295818621757838470819537784031134379232581511128569890118542593040298623940444146964806742948376821732170084409597220172234713803760888864485311144235397034428986180183942140040043562699847339137127042272666967832910751258012165222213206325919185778328053695827198446159988232397691752444779993757928225397675124523445297078055416235348496706196457027888497231638763280190676648770340429911597089276230251730660569241633708423286820712137694376030451351695149418437838909855123304061681472515326534927405196631757012376317054583011945618874869591841011591952633595965535866884960054276787026676137706742139705204935485284803124171541190587175774550650820283207949775662215155436939831620545157295411890878044415701304252551840567728317066747402286772746429085950322581441295128072593038621039869832878590487031384992130584222632734902252368869674093742648264680319227441642891531998336104962666680254518357061245788052208744486565249701388739085240585126539663284552101965276786595741408383049406257202178652856699753760904933075425377827870608238348359122674853271814050769727766902365127846040659122957462519713210851264615642277990835721708612293042498272278195689391005233072737423424185812345434594548609201033711891021608711213845740455326329834941394015754120059724004572889591983335297216522486763552674225845486713887655698649775525413530917906447130997827941839050304093463037074127829561192571411707538679466980311092751865249912707353718594214397266539123480712599105641703267415344832022096485290178268042800079044725639519714184805834490636318155681801577327406017604179724202496621144762121127722169177006018861430279461296493775781782822034518898326891719021178878450842209350290606705351874201728588978147188604516412332896075119718137915180717242199485690968611262802351239492826546220457544719987212228759977281477217998211759967166998540718463846952900988159022400623575889325565080351508849728912415029434584962177533738713867163727479421199577226617889210846705426807492008045601335552762502571707286553477826154981801292950864699880474477289483332243073013132876783735547118987010088219376921164524499972170861098789403950347324350089515564060950218275887720888165900500670034584933361083426875789045752720482099991065171167947444435556370918427262452114789489137614907473408619334084065239951667136482149363142414375509817074839994708679250784183942711298773436216636932522268904991267055144697208998658718733899745973306881814576126903935734634926332996171756769511574974238847065660475385642260256845841676769861105698435328944761408529230078391795745539307618952884328969492469116730253739492870251921586693640564044781105486317908070859766561820967598413277455341700299025018026538915373310158903359863319779437956519910179262262080552249015699346845138345893869160558041258401827728763621582350390332962730319016313971429199035266838947433853764066720892909620180958372579244520151751021793657793373729907661586524459247099551568384620487761430016424465137786731583536108764760558745548569973553517041288037473611677336108943970940322172510572268335845795992027724914602683830224991551432557437039195265134531331921572843879386343025445332000431049569944147278089936099222404136422150897985301198375362107899587107223527549391866493989032009728561221854968678525496436082170975374742488749188025666673814728960456853361421723338660235764262136237737852988634598569555454131941441060616412707719926202488132899235968708417567930744087335849618020891650562786893226680425524000222867386062710317939867103200652230154275875469100158180745859912904007074349702232287569699809955577907084334952527786503590187946671428486499764364907454151741016270397395381806789694273761805827994326717437607891301636215702154450170405238246399951172827593125897548220313097263509185064229905199873566572161077932779810459532335640416212958824745429198820730692102330411491068253681694257199419507118496703536924405004017577015239815011178666832543903964244434988664179480063556827467746672005421590370610653234249583253117329551365113360506248261257067773188510566049312463539011922281592677683796579254922594352570698325911167783731648835198876315815684510891801135999776514601052366085123792194430202334905980833054288399087676064448452025341523386624586836722784377565180335910282510277860512702544808123039521985211724178004559181497515520270232180246479503415615828003942128624109451129970266529261939805803305064530232035099301981829380710659693226778953072798617675316680990968965690576013560067677489281548578867787892626038504780711926363824397691942433957924928449189107850859366226355785677243425517425784971930277511185814118112418976234995523614594909711391787013093809088271162697145257422701698689980506457574050429972893625296661249041656025657740922545331902105421743331915762996321695240777600851403006133876619972466037937785681711726423732205387635735572717213431288023237995597421122246003925493473551082384466044355187766144054176944671010740841381273888970146980063402073708567707120549500024460698878545987976578993867917997232264594281705381140387615407172434406530518547972829870521671256489473547339317995217941475700010061028167661067786460574341921933009251062101839225114665019324749607205755573171830289265558664377149376297508861385044363379161835261713490370410272417064510910002544054575407331098848474027836704288158220638637777562773314887142227880062996231453261069417854313510120888441361289458618427065603146002041643978698185301160765778254617605001509029626061765696148338965109069371310127668920671974643350445587183993244916256571814109143857338874025477138414280011086741963728813519279848736382117520786249652370178573765698765774386201661161556655184800615275409423727776920556159128413242172258522586126539744162247389564893364571804781265428215636403286416090376064705275920721034639847143515939846321574374293532471601413504353368426562194274413129936668846289433896978859436295215608015684224529427414754659082884941886033384795224728071508446384523322940609925528605222247111069182987275090151377974480869987442273596227579363128791620998080614435584707614552478281946431533508794222544099756168830335225245601233027618000930303019326967514506834385545580006181415017853077074856675326723301086059739346062948381039713710496807112777923830097487749243501195207864505754732066695752490778685275129167620844102434714392180994790284335687422949777940743221914333043736880101265359250714997446841861050045577485013430776907644827763117332229658702218580954920701968137332777152140808755052383981546611995035434000815034235863008719136877203088489584748597903604729330002865693871538311557385119722307632609831465833357014855398879793607497027037194020059838400375677204734228905780376489008672109765373819242323924853525040326457520961534898346974211387216070971958808843447175805641798786341272314695320207533846024997075936358366331917937557180594456839192312756918446574990710365578105354220171441286198861059999921096978795665943577525291837076021990724545150388378860820695692933959292778138151633922086201956362168717164421957545584257418421614202803007858586805056732746729319904844132409503923945956666871395487131319401754127373644342448061291161988800127548788975157917565770537046505266291640569465346054883434154583774491861225466119490380107292644044112696796176883127158746168012806192313864446161124754965004184110182268993889300135090514422848623686993267879693184285480562559754935112288797259806940125748594468031987343226420228512867379579354344711607404120591891136789159773412687652944348443009481832975222760737939794536919859242125819541618352003252311090043066268033326713159019738980572822962816538909679083632037186130035516061525614080208970222592551966564686139584773470148817601903757067036554296907143611424006817841264865832612212292856186208005511077007129009819540981017929601241688490398113575301647929398699463985698107277260629123311678293343521842945084240980122720929538595749685787034287539836654054997615106067210772890021374991811786680999733970604330930048531725837676780062618901595681006932631009123461672088101331585412690444148733667237583990788311742015760236183746170988349911095606393788248230805397429276145973890755320401939378791320893768433703028755014159992462119523914979992367416101911615742018256148182281100379516621928607136558569673350147492896714034849961519076153682404308156712696680665082037436764987283725741645198073748673485110966061191030967327565523368241914648235290985482089035166473176104378382927859445501910307429440566317544841085608078687425593948496716141328617073842083969354369333208051194015691399632043692518381116464752258082851510330721017663438502035614494834490284187613736028930774553515673723273857178455354275489635092975686179481922713670935714581359264652079509421241776000481402891999093562744362175392745312701735426648657650177414089164075181447153663100158424794232195067074804236317253085221315875224239676887176958892859716618662692466754277641543480910119924979421331744230453280964623302917851253331311707799864605961591168958998254287515572178737207907461119890787600157278908546086955366418080405004992372967923906728021295401171363216543816401491692840206250972088445632136966353137396288260249588910507668973992904915427088650153017863038841231428353188592384793140886334504406551975775161392968311674348150705926334326932134391013082194311817230629529306554169219017319802786067637397603097952429103867346212741644004222456902907238330652055553572209821695234930900300465321672978439219999951662270971579264878636538604482676150458615031822527475383486773488044419094460185999316502646551452404026676190070402199452381715653507911644626025972756271265025973509559986087615490843471874050547003057050991082471523909328167102957775067762226210382374396189556686126374085023805370030231201232948924847679135096766583156858887056742084290982722665922943029550087752977000480367406152503904571843438346397251560674077025053841153879593207783856201606145958749348489598840287787679144459305859412797966783209959018495666172752510740088358883398508085058968817325658526662200652904929576606172504704493849824726799564308651265548972299413854965876237494074199505745239118161107194445428154005408938910490420309727784991664294817451967029494649128233453190604732565752062876767882208597238786815369759480922577394971176167693667610886971819804358256269230617663215828811266437913936559803863869519194951699911183841972831175741304511648387528727311483828288542735216074331886155055348760712599713618253350442318144918418977946903542611091179199638098691790121684592490275728062771972467772961112899607294285189416138567852702989041754884653414609799212668725006276494955920945617501220028077569574911481437528622071142973780977770372586222573988917121447919601286586050360393188139057938032440032719973961239844066480986557914844384105404048164398208620042949727135788043506734615385411529553521413399070290159891169520385048970660625678359623433091175986483620116355440635214902275395618137977363245552015255967156774968799536863521683002492854132910360000420315360680024921006183998200626301618575891922294007646593950763419362888170405703971180738488166119694873641648583986740121106683357627590702612503680755617250996808062991324500298548621265206216590549134167402653620785105025718572565582302266083185657109073862307456484061696196309111410164378748115917757951021027488051432859019668199728146819678107943648285282729750008632420329080484388631357007170708672570479459953226739215118876645417395944483549362800332743003646297855097631745189003419506199209506184614673778134206296438571900859620883440984438150544185600286342902297719214257462623785661298469854776327875076814717306307826854480028840133351128712348857439302879484234831895991685783627085206225492016981950351486541521928959393111817952339110744749232132036007366468528619507117374027486837702010797702448034488984515054038857776414917726866739924465765930077711216340690394087640850805362592657498519020289731131498097078505203391175859848569906631462370432668227837192086975809708967413445930096183105274538667252030258592638734306512862427900908600674442103681196078643693608431874278613011913605461067295194075102601677052276180775589841368026284940587503492736429924681073123413274812113330961428034954303850433534479078803736239730342247425501978681607760546871578172492176660444697131213462813321582465912128358292429727109351346272653925033595580289166556216858641367327357977876388943667629767854031986783298504874080478765565224331615365794152805016209657455987085246439048965828081424044324686070252849742728816830839277440472650151684762070374610495052530335039432479786078027775372230743391270217206075127783018978554147032753368104115721971447984601874520143000068808755327450745178975018354314601373300257073239959803520413655609506599524935574608710866799255854833175331943741698501986838474697266248114282541014870294212204082383157901087966219845468137722416330696957407415306661687167624482226112159415900762102528619859726968504584946665024635318772989026419187397560903763624345455690989611013748099543170832008700356051532119967079826046631318412708236239024739116664267707259636529405474856536756986508697102966184944449063001370244237761040141165402146931502826530195772204992598856879843602922921234991187129180161479741316225333607855091479427381968929739619023529344969722486595026639131567488913650511779666023254185416472380373175174400809705749776919041579889214021254807846339277848213366899383323841269643171410236824526211124139583526644845519364781952999583536728483623938263459631501981427751639450050043313113862089529312221142106306146772859522914659126414006899474848076661607189258360096026907923013702027904682720540739219363440395623077084742817990784878129644129091487044336917204634637426332302393257065379492828914896264314395479831813784641916561108908610997238850325982393807728469041910816014924211475891394843356062990911302178846554880872525698260127180568029751723522519453937790278138964719536066205991034996301062407682778486562660565556734355939121625524502536626129713600891236122625783653655347963774976997120156125951521604276639051272819570495028102742109623269774213308950476622837959951524160597881410001767277109816732673026249069250520666448149641027087481004716818009460163569957660802775408910964584626927934847631124335939781921180781604854350445091577501886813250345272272954898599665521792004767170913814717120733286386840833677076903132840848919472697078807080673581431511498277742501763737498597265693363765492532066461982516604644032799567354546090997781434528802559774799242480089525029567797063396520023627135888042291681955290647773690483454550879497487198505891805092829099648987047944904584223130667225975317065811918417566036349441138313903309812374950258966088096870233858206395666175113600991098741503303004583120774066125328198755134841965900899644900574403415916351882049778566653359855072819047455221020528502892850193431049442498774362484225673781399016540881088594110026480378144992084985523282463668346740446324575037265226922420648690683252739402941686248617762542736817639715226618468981113429428129608028891373972696479981318353322350467763593097226911475009427164766066044234216505030261287523059761609673099411510720256060195107984201626824723194549238743237492838753697251380681056020225383625806285119573922510914228216982448974861009710542994430221892864720100385836266777973042139208067838708586403360523599138730215730781499501809443504967667790960405866238676442526569889880063509657141641985012787660907352133051109946769408757101997149276034024082602113073452412193012301145266120392834124596318563993151696014530573870815034291878193204290935460296383145353974145048783820570855588588893928471291482935441223390921376848681978997298248085595705391448503317979864521234611970028928279554729702670175743145102905807149096624699161949692905438592623942793364088987181759554737774961403427267330719970941970920412806436378804488352978014661791105550895787442190496408431666100718164120447615841730116663745528616998256866997859536145417289234349485349140459585740284796315814652395789512628030434364235507826716062834463773518548100682620614868087942439375661646266192827361975373347608858023110416464767412313410230787223321106664553043956091895845307526269349170241804377693455400733692641793078072658569528324224185167964593191785643173179495402355292484168568295225117232979154266379230270064821482830990583772922892015372257115294018416823182446474387570702505280834040298372138923891499464741985168893440978866309983325487239945024160407910017366818776210284860283136361400131457107707091357899935662846338335849768814858178406787425439757129259924849705250766847903018507735421454681112788391121712560447152209875643364530094597958602837855248417189346801912659770048852447270633057796055832056898622975583494667552709327803915813287088974665025348644721532541593321048350832717980610324838137660403425450316846604711743201585759621213858880117614081683213731584996750812682426678176573455190045897344793178369544600231610541110350919822866907428636952577911986584125553161145569973290809791935913770822315724245309407777780049289901278383252900948829832353149844093892645543017085500887603127116548549106965627352766368565737339933746955009506778117452638094020241289834265536701776937519699625593259658060534035867312998733546580694169185479333539973225456253767171294559592730174174754028032432519128372010994351528908988582605249697004999751509508855576490338390926210782347367120442385427848964208274572566027004911574147521080416256563920385446808663725407908259081101292318372206509933699028761311695645453517534485962665442970735883500624155898232962325170745634982163616974342960556597441801727621477115449897921298263963954641122132412729928183462452944921626310373717923528860298453254583792914878454681688512544901263376214590001519829348317871045791115888619113751356617574877089375214761577788188736102030772824879888960450003486559820757373340957471674492297639124082010042156645487076621183550747070344227659406288316098650587700196862021497840983581738533178136414039379492403552290807729447459641552094237793074599980018979390219742240194786259850238043529208048381964904989326823943467512903341808295686626990956434858321415102298936719831554170966148380396352508599789574016165975559160825676328769536373909520157518846912604178501719942279663754643829018825557502671727269236097885542798744461138837113591473081554528051261021148822167913627743830082107530772134385246180834715113166140150826045467206372791383998980543518138648345999245181805030502018967215364311752659042079032100623273404514111111412404208882425087732575162811180735133160645213182266853093503675408782882177634156981195537353925131676407071216549336092043537155423735923381321921894876219266768269091029171075381365539877514330319294742320142293660448129165486001981729217542753638797434782974079688480642612731648751959441712140988999348286354958931294185733747300098469469575733770365003565026830852457168653830309567031951109790626656675560069720958384594625758359633594086685895137021840089375479643828326397332457192107801030351328051392474377447194961173077040862131572722308034189740005860569516722431898101597171224604738538224639379518072226635007701597041172751422745388297537595947692861362950969421631208954368864404192865281202245612301972662678913512547354526471302546562183908189651075008291939085600751307434471307371415131318687698005171785131091463037040146956062466503267901153133609609681584971283770739610198049414107970101228511527969405537876502783439084527768299182243494015507362533775220068146226677609075958391611621570174783257154729961488786566968319820976542986247298911894090361236688217503717210871375155679936604414567797915858467094933215732185310094588648660959065078344309267154798697724470210547968564161243325567536453220844361469925383124434541381172771177038901606407427109065012067067227359185069670704422275759742061792127968650808621239781605979081678073291530619387574676913790637507668837850580611222083756536653795289583170592518358267139526893240140765180330524865585002549530073526169879634682939438197592265729816210845639255962621445293690735125786965838290366087833087671496658165252340001939914757767931421342227681744751603335031501180161774100112409129070782585214947266280968974433500772781497935544714801195086572687629597711326513963757926168065502510806763953702980411380183647790497927486621189235980353407677626404806514291228450501626078905707718249403046611537821125109892144201182855998298749265979179659503354222319370920411700591305630772719481206930775304949790465594931859474038367510278932896176963084970366726440555473793023435029552470001544933345735878789223739464285320310030126367898712686598841987089157547665569036502569349684095482286666854078181512421978418345071033577093594965036319937791692325880057563060325167233673789775170754263413764131688049822938461857554242281575200530722112471783502622501974190354505377251871221833892822338734149558299567363823066366401136014187446151389592353564601236528363965958394700614916517291938419332562263357560754372805551610208217409680821785647730689464932545146583536109176822993003289611653468874455069887808267204052235301186895675178737999842447356680586918369060253550026176705733038330599622470814669100474051604547466257705974183620742912521700138790557673743662396023136641071674686923639508623541595625346562850185907548178159111790732807753905341383885040364139352071003431965405810771454997949380515813787086523704386229479943059350662879381963499000664069660297640750019857821284022542593217282959382193764661466024404206453800680131807242876843142379797401725940673149344631774975601040760547206263588919508607352094448549977656383087015643012071855614440331523732193395205495014465938611983766065268352353794314730955418736136131948378434391733499916694967391271130761630080496012104510173147671028855999543959070256321073828738137390588295182618753648044940159458059765356752414136944682800823650628338766017119916223079028840745651195278194080624133546112799941716161800796568586156418038897373100909285032602897505257939167019978648401258780234793332162859817567855390694235005451588871831816018815806346734652325331680207061741030445205424001598043285526490534342725876000264964060761083602472454681933749002756083706508792622289443941685595328252389177398205882989177992178281584877573271356848600411866308359693746617750999239090701632048938099495681471307269397914206857411090200580135859291750786269440667005786189017960741912641669481567635165743681415545296328535015397179735524953090689644876018309982952072370773797972113183357915915312365769292101604028450726916425261501169233248949037910093958446454532062645950118945773635060162403473078543564958841781649129230136979624985390123942741199024968365585219832423462096266217247736804054220439527680880159801362795378058946240096111357178787485409960909633697142766238762201860479205500670444561338203607540759342779111476638211703734209638109756270602596284148110456796421852094972019556790213338121265981262534710980828594162528425323683606457833106732331444754192528062758095015170574097501468040070524556220445370672112208685935546068349231689130953352311409124137515343028008099183193723215233595716811137594147743431725377081480471000921789166586912059475845607128000529830290471510094394622893510811540400016189858283601068263520365435912224144848732575562299950372278109160832201045520063426539814005281408298722458469235126860302350413443365799041039517382805181702625901605535599628565227636845989163883204339393193505008917929599290578721132951858412082411467931603708639590905316996585834769054661966517654969435622047493214414747003661334675467946187370519118902807314071404728528056476739566424148081587103318891464343151696137529401883969876252660508286091733069375406786883897673863116527255161612320092837057741294895504958544377320421153309970772331231636676640850642174288952002707704052829669453858416360703982349050460483115598878730363677353274481605240545964203279790413509348620461486334824091840878853852848769212538076699728318584885057189856468354974791493297865938972121248568740757660320623791226777564100606906367353409204351702507590987644414398229987981501065860605237639541590032715911781540001453219849503560900194530292968759146499688601288130104965175342262435532623575662697736893889739050903301824431025423939956765026043974293648819749938116890460906506922756191740096466810786650174233006450099273543491553089792080521690082604518691432803417929316539777212053186959853092799552608665090495418912783326411828644044272541042306895983901396006943802251037963807312952491461996732577458845801772743056774310266403874848390529102991314905384611582644726734559448641977578910390223090164774457466694664443002789276102554901998334700047926252142604371638234788869803861173511660011669967591798976543928334927438757953634725606684508799884080733363338853853392663255059655326430590383961930029097958173475694623664523257054839462795407702232368692157721186151130284569199520707740083848724937974213458839730419994860153787495775042466292605969092000070101133992194822031044127347034107252265125029622691921475378953705986318904745465395127424494350325798219515743664831393968832406874515931136545507479509060039922381864215260078897756654494692005538265712133826774100797463890190310401879821410482305647119236258229681184042366918194799678429525543892115935545920577774074073679356851016063658408964287601916345668882977616497099781522946207618151796702499477602413438349337643396375951185024343025875828000055388579236528907863878810159167734953684889743793959440176019484104223725893405405258720314527632374730402736937218172488265481012673126352058210828133875549786353408117374806978394262400340504904474908410361687832412722024792289987492355109108883572467645317700224980513807299322423257994903229487847236930496739210847737420567007229913110503582133517207031878141893754488675067757418977785709056126918952971787837661054710942378018609392020524675412634815938046571913215427527052946757816158282588794039464158126940938582084885959421905717279122935331368148356190216713741445904299898180858702948310437661762010382125526277476671399195747226281229251673330411319460112981328476385584316409881319172079150713596629830073204384855951148006830429752061147631879957218121807606528728518565361687200615969934807950885319494860324275323691226073361806511047020105949173955003315522000045787896016076221234425182834631367670860279384156313428711958559220538501736684069133536629036600639282084033183082552239778426338359799791120119082041264790095610950130296021721692008630966062536016007966791181572430477966739497948582966286562910625408808892156131858219133098219359043423765361681823046573093382120978910871628706960595236801445185108362073708355449344473258017649667879290740114327531708280311472201366058857933426855144936901160659152204123613142742195019064403636857488997025188391874052156804212086994681588463889902991753316599978672389262628917569511539304444489001947182969939748600660184421799096462634703327555343211101610148394933377257448397301963715230026743888406899704223547717128015813898049298568015948360914403273244197689008286392872974781284324890939583114078960993428695792583514816563438813886518412666072535293138494637845742825884169899943557483084572813784688361095085887932280031973188414779099156289912491812990756316330766618311859735684992028480932156147790471962181132274194718045508167428835300738854405939784494610905544958803885100571605734322675653171445521275763956513930495123775820592790368740181242765533312032884385316697690161518515074004849570044078460156471483069055823916857075360181489034347590170373032878787766089901749338754013003435219510023220814416208467409662485444080650930275721762896393466753352228525705818997937813913695139550967461145515414718442348398488234389384809263215651696644565842694617900601952424646158171221400356100553616058085939362838679985264338031066662833335891817019689676379812606434931675148954284781685632869845882486072646553374958077716954968199608702276227248459330243729548940599994221105200417966303532810099086108000858747186559341513407888471987476872628398384042590466054030323910427515330865860347835998881685836734793625531349706922648566186970856375952648209991623433319425132266166053238399711057021341477414048564337927011441975663339406349055189345823246527394486970721205523506554983118218001897454807000800800794725051195231781356317765350171977252860746460088216482740558311328534551059779903055468976919532309855062342443071443316938166218852628907687721080401427527869088380263827375576420377728886534599270926882354869093475905646625485624465722313940512358793174786942343734022620487912087636161980695143757033818524854389546850151147295077166509491359464307972443430769603138063638056894441570594578630192015152447310607720453939854741937769761526568721450303455868893397374767955146516056060451218149673436589224622820362576701746404910104469451938730639465152853862598682829658343385667496293834953720000789825175463394019249742672770630004990991668727296764457073220474280869434820219755007294266497013084625799081193151431328910454770506316310607763435876775206628024872391809475131925647333973750458150675499452839822772115531274713667761075208606671750216510607511600100629564846336540866292278208075846280699269729031908934396474827746878444669363093192258131097569574271266638577544366012012852127762641409814334817375486700411894407582975339426971629849510111870924945701008248613450452029077560666562229804489285030743469227251440915747953618718796312967676579579226226234671128864523308804631760831998953329698679869347756059642828528249685785279591247297470109674725736071181125913573830211280849945474611144770797843623442079827141240992420971349027409851275610908524110997491067036551530513663457850932720651846645219121934217474467787064226971770185894785315010782124349405863703832675394924999050959527596196130723387014016398588786089834023791472213797361992574260776494263037491353532396665716635265336467256181483749241534643187066783713856692835136444996861889695145686369066850971651834145427484073988573949251842568611508175852554682611135096781234293824389419648545474209610146244186691861511549894233609660389047644780505113297860194202435042376074092829914782736645758822246726615093425848151829953558730485279411287607603014602858333463452427083705801638153806835418716299085786506660149246610860758384595626781168343068276630502658897306243552944567934011402785606948991865652316937666047281457489935559588207408932438232469342620396069061195803027152390754931460419274407570944035040786516778446153492439470721695730339584894888228949248671781112864010205825896505903481527999223572858069783010402617388748760174696603393656599244620602464203390206384594069725648936296452079370226413485622906053633169156482130641535097003954384006298002625884518315928696293410545711521383109457742796232354275561195023434479861893456497831954440302596977608897971691831412121497451762122027492996037343795266162810085008357362070285377827188640712300281545073119872746541303933208412916430343745821875376676963006163208559542857816385358827477062065694851758214763337924752485482388688788332187807758894432774992260530481180834310021953017899099715950278347598518536749798009025164771515630772959760719872435715314502529860702877826803774359465213603772172076944894631331653711231239538053890021533078081853718880350836918242859250459628191057591577630826283321981972912909483725978906361208265946025254525009296746232719673294887951351198700589624440148000960943461563132652114481667473643499698591707142598344037347848575476516918560499602683577357907849042896312316156594317693985517427242195193562085230568376013893007469619076966433551613223702190384456695154349998959982718113695724299021399164603279899184275196088079286192342984579262084575569600667136834040497557181863524253292309687416060186866886227751634297426185385624881529779668782551544522815018613647191741447397345339906619066087074697276451103854776094856069479195932595111603711878611070691882065036329143987203468153382582227272118392465348181262978967484597791132639223059595171544206649063128842351452648732081953105677587530618578996418993708978110991895404493975671313375464737834543526747126699644732929848886981899236760748008253089076545826931680260475482389288893392644585272101262615829840622296848037637182163978860619546788538014794384557999485280792697753620832909609359004818876963870173201479120427617545213259401806456767563719627512527844232588543795986255465156281077165507160252789199506328309766565208136673153087803851537129082651724458272976430909058973601219886862453805703099369765716474151127852514933620137466870346507702404734598241871678403628934509749902671113103816539474555986073857635037013847737829673039431454232168115521594665251422391691572649874238866898268545816684285982145858984082581166295924726048975427273802324104311365064192618609254751503368811299050512621493955411593821149530163900683030575260321322857192781912018770227388037622588919886301992448734532307115388196715882725236101559476951672612600032430289045162702011798837537914448621138746051368549281817276156373479790991394036226917276370336921978072501564834405589552614572861572293291002645944890268012637043796029837873354098751146637711200239169654014481569270407919570950146959857293005721336674026303691058304752846468232930011630462830833294730607809267181657492916756817196848356311737018214402302703563570846645010132440117918040347525367638049878970704038263958987069890773087850086911304664776028130326634994801763034427809072853032542547922869726464811039727588219395219862392611905996878743720660800193394274474340988813727218298077547176730831950963772629312816037656392132599464429217950583336367409817829878427410825000178033245417024173612156060636267656034181699053086760999959787154285273393896907410869356847049694373620739056555210089722832223209319764137683242707522326945485282567826022032225238278205461500698608608022988761013992472164601172464669855542051599293433862490531259990792454436775769033075543439377102378530036520967629692154886036751669142960538949571737540157525259395887980968769139053911877021879598511779207938977925352188313814892089861901112732759719185694428079002131994553850206523078583075683237892145012091052897985092126909122811052359117796735635211476677376025546255577787592736516193795317090720846885688391747524406548761360808249951148132951575023255018265447598795925140514458242336615053214287951117421180972874032673298660830560150366129742765242164774670154251421943066610910622968429742750418693040118612410828828240930397323473252328597491143500808139809546053360083626536108313914390596177105806369638177381419053150462416532668822151688019083544377617847059342887377395855512460813257014592872124248027000495092012829540513584337752142526607326868777147496807988667299054345047506078986909687066608697096087039068203088502335328345954582465538506644674514221145190286530004946102888435648378514221396986189201900950240874401920847371396436148659814288055395639314083172302027517437249745360925437812115601713858954496529707322905067085363249888661707066422782057764524127366638013322324696720967458122094038836906475796656868376656089303076565953602416218733851894590362464952618457523105521042312391914637524246139426083163483622718740072193440014543082756153867271928363891763037847149804945526529195496395897165224634787308732133495094202683925403632289896993668597810407907845194348210050894892616542517681624333008364200325389117853311267663385527657448210188722003602804194738302415779847508882806257369974109682142261746100150456439454386064909958285466674650165244472558709667670013489167851481259639588267647383816623210273288722550780816483870181005429570590991876666301343936499314781359194528864400058424755948054309700175655062660975395463193877942277089432946377474041459919706035105504801785012081005540453440133669325686578214819155884210806077098181769200082567501780991445014598916188963250777375598324991819518584821818310476701871910987119594934797395602513244612694048833848475096634440949426382022008198324910348964508197317766697050332965592767460300533839296891180280796687940659920027872313193687185600515862096606808015810204079034003158319419052823682570285939441643965988152916873531121898963488549558773912622769591629507916105061461026220527719717693356338600202096817902343719446336477583612453452042849000048825906982234930451278952975846741723339446274064970962171319194489947387556845786781650246898936993334888203708179507806895808797751173850523514232827577321590018009301470252399486684833720382132298483492151098805868935192397772926989114546087017139188118234464766840356336475209397615909133967205373540779497731298709693729021040485182386697745627479910194795969421602270279623488236592084108165414266281543103163563970530817594377785085152919514986202867750385186054920758898227490732196967463473713697646296979253984012281249596668791584957529875193337271638438521738214485912879163074120489016946670826842756041219812150906858112883003701655225822968213817690452047359553407511421049354025811428492886286155628442557754128298685859599684121553091644344095812381119771891367593289637098837379404745493933180643922602420803973266714423626027205584212416760239405142374927621440656936387900930509555696319991086803824624131432038479443437574810617276562543403395428125640417029729735620475377667365302501641615628805657935065360727132858464270675382254036100811922350083182596318293192550371346713068586650678011146205725888681980170599203788966302092600626395017257635329546312542611997254021838684000522600057496585705369827019687400463601851508385322042631738569650353823288111668109118362280674269311722557138562681261215145846070874918107913851576078735347981861294650884253380951461820960616791441496295528657297722723621203733101463197058680521763372317702887339920495358092499837757150639948753742101378147446870151760985385968572449479414728347727401095205020903276865886600747219911879064787023268541175344765536994256922782727021124445249591288332029457233945115104618067935103990859648275852934788939797743211950303138551364655274661748428365630259220294211081598084677832866785622532191318670382266092316007896805610475346088398744753248016636700728960556385939414326327193051110907158786760204279748557861615368386284738828554459621241968184537332572726437756367416167470820485913766277146591432712950067952477762926423106312709264921634157659406504087949446787312321111935671738798731557842993577771804428191066220385659957410085806789156809285777804781568614731670406002195519466286617097844320061421098774562237768011846951567004247687934099939487827062578944160778547371377662394607740912667970891914182257533429636406192843605118557612860638996233391112297851466591651984266672310461410261829107672626466897559831612871304531590010876607326637490132477249626265877886533621527790820071152249418461278392689056290784696512736987196359407470629022556364100838668494209409398308123059659854563565045011426285522100059433867252052130522202984066058429992933661714959151718357750847908950906982533973072287198432721550534851371140203312723710726322876995759095134130023653146725907401135431515557267284613639050800365725086396310820479243294484213554773884022694336106731190506187675357401397543027927637207989723366633338835352860488826566161126397069066099520456880357529785124631792203403925766897538249644658453536834658170317919452861740572963942595293441395324942589328684690524883423828925629398473712382836799472599624335412174565953225479628727581165336962263298492757694534228457337390522707758139743253236762563439862327707683014401955905439478355726602905089977975675225438106171905014421915855112340241611904737962666774788251904670969465925463679520793208428004762903433924697134464414953438152444331779959019398632669046416514174178145491126238508034264669747254390821614270762852491057270626355093547937011104802208302183363743544327507855669809429674856583475383549163202155000124396656812583614434274050442395388946012680707501321211766560084200282901208280670654273803668285224631394984481632710400541285875458566229361297417172100672892203156127027514754067460955515077765275591090033819403008425112529261986689559012779259425987504108098878778695595972731614791183204196033282376908205173712823582375818209312877930990630021240221738306696786872467321224928292526493321361483034294206466874623662048826011182224777807836673075547488744893302509314486431007748988277711246761740288378941163966942723978601331179016742786288150603314863716845764522474634089837608960378743113758073467600419289894619161298196237738800913142308792543177078484563950405170811074997450131942667557187107250412160414497302017696813516936242233564786078486204885787067499941188990703245300448587066768360448038228234783278613697385229940362861544908240438622227213237899016947009775451766417171771947561846503414111072720987485245943044542781078325254740900968356697630790206019991822920246393875948758242198340723094655455594116112187216775220485429469581374880154251169952811086006219466437926766249817553896305633988620803119115104455387895207547697337657955204961290721874702396603949353203671402700837497173338086895362781612469036794796473198611216510760262254239099832467236402019371635832951796005843128673632788946188512122405347450759791205340932621567518531931096639627089893288321528975631559812364537651710342011125430412404972441552549149181099978153370483564497953113049614953640636207034735034133275543277235308760633621119448016573612227773214777687676399466894356789278619860721715072386986347273840538494201221393788316150888728055061156797576325678900122014929643501355530170693787081029219808970457881187363032716466871592642280300305821808656026314933965720085940101439311093686790151479193845082666164149408486991909245851417709289545741692153480239107215828286209469918558749549266790613568517774408541777424118604059687130477257843934471222894827778890974431960213876951476653161912155995947604555215416591432384306440964282505964099359914698031702944812615633964471848439556745161824319934333301400215008145848297615015122452569577324946176719448220494386546641301995053648267810542035509055632408737892672746961946989357931169416971738838759792779494256719205323538313901323463085124591180951640221166645262706851521518445114447930538698202083837139792961926549325027810233616990866486958823407378321088827444535495969789590046904515726434318426820353816547637424902120081558848768508345625362087882497408058909550291365975026359027868392905173610226531085906728824896520943100175181851682428941674110736979340266786454261660724329064784336896495435468558864936736657246884584038121635079592729667669424276560507593891896597713595403900066577168260698037989972402132758607001926018354578923525057021273874284645336114096132006598470284730567745416253948005626354338594511453717768626311132978583890160600537449365622645455422035169002712263732536473973801153181848480046978897902100098364203254447208551652299211700245485249860948212573205682569564299987955223197283668145562828237145680733436817196680844867287447751745460919681662845751797527469424306931791699998495623251625983082839614378314587735305375669730159673359516237677893719512363603801457623111080106244186363513450752746236398147603556215534768315365290849868542669351693923375895180513965419623758081338764779194553063784122375069535012677661303684868397367576558805602470970355481591127415082471451457880503748307322234813677953674902962393141584643956297778657189380647259934075259382595433635663832716400480561272923930245128354024433172490309168952854655384588923021873316192388662729614527595215294502561173238043517359905263104462824370618826393426458557297561587379305833358748015148064173084171141024114041906297122582838346613799721012779951810578196346806117379362720830250879347295997465333367907164601363129100340674983407360192437632521916881023176318076231186601262224738953034388835398830096182151914227051847195211522581668809531302625709956696740530222218797083078102081182706579658297767080861491465527583440003554219028201831331734215792515065008730681778168193117336316017195479562851645025740962994857391694792371101572950228780101760873628037027793661989287768246663613072270508641535874478680992884588041517844726604288242829777583758716125077227416446488434496227029852863629112864694293229071525522128982543595993595318590186281363779119217222129829104516698720107716202268945991274902212042174853462204131255921762442998310749635906785377448903530690007717818621562094255675386213911595470291952347444899815396275054666432267649660538262639387112795473171743808577052009028295788569619662922655992661416424520947327287051637649369269649237729599723816603027633962214721379104197210143752316873255753136120494325833525252241303274979904088070005466154401278882665192515323143619764871649876509590342726501439252572472380696968166079521333080730785082090632170193688884720421552452736585901672946444995817566166563339610145728729998407783927092260359692374723200649436353844919263967718603002137733791214921155276010526920121421830940791075521798190861978593806498771924991791769935877166053718216411532852966081328856091905848470501159606005010549821919818760756464547894197327336969697685336738967902500412189003633060768643236703832468914821519160531977750376549190772101402755420706373361843010099604173935199248954829544045458000271882838369593633873925540702819104620847773592854725202710233586631555306228054923241231653678500446823462193012020207664281730498243151384678394185907471349351948247618459430040129325486774580398105073282639367862340794510913566322229553421432864037780106357662868079178637177277205630613294832527141967669370249485846688625770700037554860156958125364846698332918426447246149087227016426559218416547617886774038667514512248404626236423389525048114253470991329724642902143111090694127204655744319909320865482208119791511770676877859266851527680068390143320681914381900875082371335215566133039970441390703106160893370114379777223378067497364430735014069662035241256322995399280321557475681478323818232637800485246226278356830989806045431487645671709991232375582254386056862486175455357398556915482962737261071539315230834685596157202694801675614580658207818319129980040826150220656165247166019268530192424939358215975664543769886178158922489189906363551967894826583775498392794016001347939475152087420187294062080562971888138687947502229871922170709553560884461173555069389975531160845699757850411641739235934625512896873657503130582548201015812819095298513688845568001734130527019700097359311577887336433314886134449797947193017098551918491042005492507398658579622940868809329759267994005814539599318822163543940171417507743807718944746827518369773261226635098912284495013232342458642931489271806816585678003000173612650637172317613554330670095711753893813543230041730818243205186080995120080269282337628612897058288619631114334596863575686216481773366970761164217784798697660453349391138418361375406783878843341294533047778739822485515591360662756134264929069475938920859925828332593983620890806570343705086160888521590462866909720772840785770608091744003765735861264919484297814259591639666022808183693244380429277850124510484104373174852158803868637931338694645277124966741676152814549739142310015126454226995555681908234732208127957778254380032218105543585839366117092122095458318925681182182123171854591362974640793977284629572991215089972890326113277048630927462206217702458436582995995300183527233177221037058971894600171598935268043597640980232022717563856665415493655711374709124088464949475884318956880897069689260702264414618919165038420295665313245295013806830634282125957313775689290435245986868012978053303963381314969604885592575092487253503413326338085263358466443586904776477754883137055442248173566731076656618819719282947491822327763982000623847619890018341428594633532953397322047555805256264556663376763828990199435871288468394529879459590880589320178865791949811727753358470887489206034175384576359975949432455768290232335894929251933575939929620548856399806021762748271161743968535377582409258507517975581579242673681275235557027191489211661699238780940437443797170201723766524843908932883128273821210619838924280118118896525419382686235680468336816907667405688478386168179389893674244739161972494054591831150468495334446237408162047885750010026829494216444701726928458446103644138201933671162119937893444283509719219868252534475124775137929168292938369805941704311158727495283376085458622097982286284411179094868349054062619943664216297960597956748843155068741023994145945588677246859910169330277213198368928281958858852264964774087508255103615889257521266217552416954453090869728761600921891668173406074705890683972023271809735101952570308144922215174148063672636199804404970733823786618974576648560894796330873181678187195937673941779833917005804865807658216455533489483588182708244013365769232981404154501346712380769987430296386811078887332978924734717902060174648537353585572378852486067607293881332192067788046795678424355120113734202769683171135782206856550768964380528785022453007527017916257396412731242048117804786662477169344925268123857883562244605736741220897465198117344416475270262320517540394173006806261320375376272565231811477941619385765373089890982031686634658933499042746530182177075498015980341672678493575049803002326548523630324050089444557537032812378265702046279378992110759199749117207809361963954333435566460698624513674797123602482479786084201715489216569035865190370887761326658119540170767553131398175014312036267853493741485460998209588196609039829713434724947315338681641833618824351722195946777077229468243993751578699330555732426433938018048849108016907345053186786155346736124936304980422096776736423157171256514952375605698778290854513721368020937740802490538553080904847982543375350336915329646538767525031743228571856140306559887257045197957922599226058873816959231967232104666331814154225770015945160331928286373012703615598780335253136677005110785249166678164138483946593117831152653394687489476956531908697734809263800433750675144410482348693892126361078142173280337003666015465690798209144666235815688874562957496686134212882329983774631428119432138842920892192457216102669005977796897943697285697157874435162302752590390687870209235806065584255859180351191746407660447228184292614762580837040773986548109820153574158132763467009250497466362647714433375140128477763926503949852248314463582222493959097260727129824801296321990962736733357175011706276868710028962121611393457773233042943277857080350926467350951789720226935209749777679001303826585241006703263306096092742917015279606065074010573646981552727022987502225560578383945285373863999982265776711893414584661841054185271313719773943557121424886327790761824773627695172104441092437875987435012527691803790872403825048910340780900787726095411362834139813921192173418504494950312292241131854484320023511636282757071670197345540134235887077743481348182341106832147850132028268369356474873104625749921931059335267331554341248431798204415185629954703266845044972719576713247923798012861455541918266657272493288802345099268584980561986353875138435205530181006276203862703098038011260739174961697738537226793853372277618505405351826535550635131222734225983160636416106619672654863339260965903677216531893687189518502002414716101565544757930024458585583604938784873509364039663506792148480385509686665709025957947868236107039850224386428979110803558111278262991417272596213882536507863031170337962018702968385599510618397562712833620207214405022880475926199324018380382038322337808734210829503134900526524962640549757394747058393448645544331724078063792565519661777963241735075639301695030121808707703442214898741993520413191110590291024613595566447442515491480596645399321688515058877280200924723627038045202477980278842390677415050845313378255546971996439215243965979180644923274084773754964558459255486594516861661989615937220726000445321715502227417773158970311376544835137872783101846083404487779608019171158774365144914442737781952966865100248770487463002424950880243521958312703939329461624676319021943945687510247638194449601006004562082889483320000648659412614278946992194792550810875419246689892409729213556235462928660328964710921181447990879381203720640693507242272926376463451601511697865266806682144335351759153766960673860662555011366572630281188716779600872555474436268401486796323156323289258243941548165811429806287240775075348945797307694970123996442038799087271139509147802624717247152531190828461279652843920170962886805483459669095729984276348934993441594633827307583013157884956379679517240810215685327224736013746528008985872284163618366576757403888339140103952887255121175835994768460842059800341564925013921898944972916922152036660007625033747330191123125540168653100032406569758155897851386541584248739217178291980235618118855632191311253715793686072672299039789953023957722698469683837430986927519303148442501456776788923705804355641052583558912562441474554092164321149895628788235872323434593757584603865490616468806636098447653993894131467897125837239689347518020835560580883998488111460354360875307841431567093392001810783293827512959150152196367239875294513442920749073230647792858117073178967123217972597221385649785021772812007200312866682643617766905547230368114792940069637982891817774940136445643879881883695051918693176644623475867510605067719767914022945372459534908325167841432140986022630164506034531281674411801091505547159720517247756784259381665753677838763558282519346720228224692657366806629895282127316451418255921082183284933598960967470550461107323037603962677722733635968427544210854926889741321662399523176964611650998066451617555694548211007200085282523569621327867212112431613740512892089922898592918866692016072689818746884503112968948492794890170039972977713002509078755347352124851571490277960576601331215016470006220614488584858861790462124467552288982821082143631499351758420125007642656378097128412234034930346664636797012383080340435309112639148630784329571093496398686018529859798593951691993570717997704918379008183289008004631429328453581632067652550367434637021339258885271168361681036722451633180347228009558236026402969675335671270171749766011453143546944943758112461640225888654345282147802918830854850021502047547306096859322743084940675473619360842946961964264120765059637270738268473926119447775804123222129606577394636654665510889606334697022888327334896405146416672808168335385776505208974475338273736612944498975484735620253404636051109947757123346744991515066578493046818824402268025520729527207427765071176165709459916289415468111749010656763858962504795950445186578831470766589060948267424691281814684348376682037202240923504662118981000773264278032078462643183747992050239163220722965932252649616504097471408561153412861210933217601215685870148020778059832761900209013669483473111993160426860761474598972420093692593045042927165762659481053700628032102836241563356998559539536723136647144688447475900129139019420544140673868244402408180483608021111060506546093862204285593625597612260112360385993142221585421367985773581905747093684741610549479349461716062246939282621863005965872541374840836667620236758177061854655509335215050798427728772526197915313198956955150751002838568276348747009107558233318604925130551779933260659649420914023979038497252368173554761079545202473598391038810377985458653634149070023499635290089985008022498658852853519422973951225331419708615531011389716536231592830271861145069204602751588793972402562404807692831965056744364528909260321994208019107832346991048904419315563254215201703864025337268960434717431180053822524447002096015680422083928443777288199179435756727458484617349867909888376980412434022183303381294371421508099925308248271566198178415163739147479016174804514323348134424368920273602920926902042694999029860951531672502976998376479740406207108090913273553326680180914539035816303033543899808915975588282506947802092100379884123966976613396055684723840895176139512004868637451214287171920375941979507696006427668794667202449664891910801623577590541184254821741786889134041422494321456447516065249855405331715719435092106943221821236497590390777336757906769349571539996234989558312132820284192398381021862892590853336558522409982406666865815828521172359664641458131139212494535771406472776079749535717833869700543017114950757003959534154764040002306044864475084050921050438440318743839576889853750926024509698075639037755382681586211394302458591765272986386924920114363264242773207859082053770713178605764451718949130619945700131303969122324326560341505419644538971480043901674496847954727974101542951467639504632585677684622682003468613198311934089566289231912154998010796481506184010445017760703752368729572796766754914274093452026452241299827537605311852065708642738167817217517054089900953825651683458330166221832812873037301779907706829553360478050374600144064255068090778243685519715221858176518324341845436327319205677924835312094055920968691224934006808814075425599581147957304592511474643476236541914283277144152017761910366989898489641806144270783384212999029511525180945653696295833422821387971490581995670677557308012341431622400033663256308197562721974566002904143515966525244314643241363895279098022955636049120782383333096769186867029191498780844960711011005058910211728056080632736168643405544172018726254224713502389290671301401209529405325587049049395662615748508595361045379027617087173326928585043691815538337840642622734838001157662573332153363565323605929058255771236571851666723483154400865766215095092783462634037546488425195044461669756669626691467203972415423978965519271564042525224550550175083184542034056379901283247926617430321715697414243569683613493577756285411387817756509427495004537592778484978833159667876058476651057226250175204916275052015439911288185981440118124733821718860778883028504957635092419551593354282957779091885868224874266316909529879361869108258459301036737290831340021146190856759384410279251235802841810980907344908463341515173671582311675658366883566022419697863573544879645952420172181820938596059542503805078572155092540673285457216314451941729084759260621473991136938923527788948736138196985579207058896149976424451780499143830729297232262863523753864226054998644469294793911934495492488554808200735959660258084308378879852888510148619262081165569422506303717680012734002333177394683309086498959572624449047711423590998223465566103194693132689860885338936248353232908612445610681834787764595117355065591878725693832242142327911384296774488420624853782468929897906423292104784388549767590104075297667127169878102569983384232243795395151416439865026838847220423955648390693183552651572322875206330221012530002776249783460560706035510581484695611282186001038959903820759029225590077167122465582096553084799096596900363920282628325283239071315527246341664815665218959235125099033832396465437371566788908461639171355892238690337159996501894139933186316128504100859059179141281579822688725677145248726155614691159688759452035954567418712945136651231055167672454458242821547615681366859004885154999522258477264785784083426842793583060177410918021312304100158899765582897667146297907039098572978743691711549561584448850389589384348952090891499345075450164058206587044809960687865669594999705673862692141586468575962139987980469907558384746162780983963408038110426937163300012244811130338550944571733382727052503938633953726417839168255704727575933790546433547252510237558262532864301896215050449999383599157955721385233887063740138104140349151228619530169638916837414719002236745840382850016457954551674768430457639110046479599726079891166136856909953532401410493860391137942559677145310278296136815149867113714282867873287442708261732965251732051410763658068040056176683517059705584953849130280877539800848940941565027260342490107562526869085705639376078479324812022016646275300637895567995489749983473824423630500956913691546710533473397468053250324985615484678687755558135067010264795381072784021065140453122882249888245034251853589458588449243920239672084457561964797139495258416894229268046080415548492947186962786694147846305547821173831863492012072358018452163363210573964163182161200534593145010654682169983499183046080582720285735724816931526063502686279726998933449055333949888939289148047286900785440004666907774532891235722550329509113867530664788545988499901312938830890432387318938375931361611619045698279058919339687470995018811171823982167380426450191378668453731213500711328328478568228740921108635724553814172207469685026898401755061652989260162015909201922184514113882287474834955477710445916926281689656661924414402580884202637350273764751743947652715087728248087891710241140284970151495084834872259053263001914270455083472872668213772872494047985348963077496357633674627685153489752517246743819507495200214211749744378010739429754429630046834759034762475935630250501692980485005952948644765019309636587050800200572684067412667153605011978757713482100517100100121732572904083483982788122486970303818038235093470580336042996059891450549683158286647163590162135758062536720756959040517908229891568525462274012643499634633728458373823628906818083770361029000301198441896404552093667028903513310194822435759133494957411029669370388201115212616635423455514376288884086970745617792449861073990036441017493555213232887579328206530601240382159460889385173646157706463440533554039994130102628036937402490309847657284080853567776736196816864770257375487041130315137147570959483961314196550372114867688362951881593070926908825434705377804235820589869608444235408170389772205885713402908009564968472386400797029141703426806551843097926796107238556792915621321238341883252054428660655860209052846262450715071058307815237219335100287821129725024224213787626567274893302304899155967959713823467141503991449673024369358827748640944362136597666522591514016783833658748662408675199679641383920480232370825123874724537742171723255378369945001643924748815142817207601244154587816772498855808965093059015350746613793852602869719747169479756149086984145508261220523149378626067116669670003089004492145017173437607628907466180808958249648872514534849707981256224999156994333327712451537625648341076244016293880430520797278357547486677158042087463269504054064794430341687070535770453983648798632079351062234302441995077273179305988459626619938457133335880623458433306994447874051846621956293396801618595720955689054642510951516091673303721904403080918649588157105797695355954508174470067552260623660857413045612550649988239735671793442809037169711154311731914761204292742538659660891730855163057742047777728409189307631330227198678065597968979239820978477224998106124492401272442931331057467540701050566930824003460189709285929552890096486743266293891640470221522322338272826203955387280785494136836309278491510763268306636181098375112009711405208296482754001016087125405058888514257564019026627080590847968959767186049901929031247606337869541846253389777867355452374614291462997491084141142874915225514825723888055181486640619674522389522949637207595978640798416543056697257838501816348375976561862947119945411518642806520192921852723690572542366815461645951635883416715919238011263153950984896324636321155156939406171478570890287974571111014758194551424893423319517034783034214415874663579047653309697058053205387091233391784704680160212791812697329865631072626629711985958808099232656142411530716118293874017862943047187473123074838907857144251928892039284373393647750328656276409265541306128494792656621215891058664155650814036246269303533458835190383213133839285299361786095224426331299062861400795595170330842438180293506099680613357703724016905653985653110806803721208038642366035620948986534686518109303145018108178830506776014269778891456785198597688466302788445880419462370762046714784697961839835744828711975242281002599754710665519505193655062013789752728274772375281802679488403403293416782982405475623075272190835994964652572344459671529202399418224349571735065823181763800343490784755988579041253594657449739773460742119200608175326871497547544644523181849258906885079864423337610581731677827885474736183341256163486203904173251103151469922663658488605285087091736954973740942893888761788671993131914004482232362729368726584168164987052937848311117528033263265465328710640813148692432693726921127803352008756505249260809741252758221334175895899082915434919868493941875048605810108309667426496188879812550442686926750609277258197505538615218155748170075802327535484745675885890867341744155346285486368168251261351285853179493858648121422934848657678016534704819045114863153549513202578229885554401355108794519887868590606474454092032568270555140579853857737609592872723802948366885123010289066682460467118094968149307141760336087729891628950146347414479175880189914907026734743817834406813834276787106499491149622182962955381943095061143784905817505789045859534217525722013337918252119408721302492584169955631504501218763870718147121878862250513206051093140488849050432597585961049452493089848607187430960768030618647433052684696364285646198649883637369179812219876255246225323010783461151662623215467115635551901316015674952655949954304839028966345279075506864918909008971511101794221972899008051940532392836319854521294357875412014976705573799840789542669271435222271754262866586077513437815516118522631079301801138956060703454076666180048405448714892352853862354737063893835527219582992217861497636742730169441723142704752623618543548340644029508139491925677525464122258687390066063631626154883750553484388900877747974824517316020490021726572724944522317333516165415459476640913990484549245329407635310986535020063441520188978100588697577993071302658769256612641309592221213478180999190227927389599299497605382735375652190457486978555206250311119516562304718770728467698074053494952659524684574000005964206861577232769961665684220887852939549467204239278876803073403166296608147802181596234533598168528492987649589575527023411410270732155183749770272964404106638537907178132866171119718158217975236478722456045081252397512770772852453632048120173480616036369268407865606678480118948903204314335324544831522353687849908740459769075892057015116307177893166000041096052241021733256286336363080189670858547546205264492664452095311876536600080684405624056754740670170655682823399396416059125998084575091310109731441589546158611472903981430363076593705652371571370142754684972390752931068693012952131283420641449926512105723592836958954157764585009063265531468597154444675767473884785447541601294566752114527286529246904908720400913410982000730324248850479045128860750134427837009703289216421026178709728021596010149750219742874147168042286703629634242939246483364319665099414277246541819065301721189038977530547416046081644431297673677579939923622868045062703827666940891592917951099951328326861239489398393877172172068618511204850867546369259136454540382810956860657961675236561780123033807065054687969534599432542389216633421469275182220323187230183815341421574746892229780016524012117857676153598254624604807012131781075011148375658833281450827371734930159084287482767370321240420909205774953296305132215904451296899434745760931038389528644552635553746623749674808399196739943069717851673690872227418163395537691699105005726806420392655092612546067938030465656620663647679924833618924080977612933152174262872016858540432509804660890216332334662984013396476355655779479804547958880079144998708014358791257226485316690063356748619178126309710845470627224134741869548881625503025860170503793427376262911855843399141822810666695586642538488012535746275702892119836303487888843024207786488245820579568983207111801376077807112989026233959903886668726530167718856958807335651706151495530669448064584328776169001228739933664746248901864438988221647914131322800362710089624328122376063916104501512930037426851126102956737170786467594845296609253577877144201140883847799251514517021019970628044697881776884931985109263653262314274927111897779480237068763088280071459433128898135047133558588623541446704812683982638458738955439659016934298659679088744621542195456401842856511544461320411769108355531500242099393427473693659104203411821142880546589459454550650103475087718461394021606768733238024071889922614426673297271484347213892105538332225438873155185445015685191733115932209700389424352763815948181423009493735212400288488439226030906182490086192494788512599476797818800935713670814166124405323424640867571365468558038696094101607404626276536891674779246603040796765810534428396237517252981498269876036393735826447947819646019827794477754040031401333080226392445156327217268929306262630587924201398435300663497930865705808182879881078342525453237938144617927717570166986158287348901210480886810256343374635401946642456011503533622919094774435244060695773341038834552343393979078970810469103974576149634805531651121092258564945555786831164859601965907080044931860111265761451091069798398924069498316706039268454004297843253524302086223868863686893874021090906453990556217994133330371108619394640421943574467945849033916177675975917877470857978406358375845412058102871441204404623323711931050491361486001603221116870738500467044368528620936222400314681660807030526629896266929941381004028898469794906695030704730193889258518621436273120470201968713215555837482869940169272549534382565573143457142686817631269212788239765215247769477344922675974896477011300421822493501835566704672559567842435762686651851708451650851746807770380630271211315744689486010535553376060757690836525106420191394481285058738486290063767591230254134490898311184334233423852110340031648730332236018583922866201208926826692647879869984302643196665112974512040678825360609181842113333820138600846598433930276552211716513140004421731631793597966515319235857485618958375609216237587287387441343018186034129222519081722257052656515661831941009236185438545795392140838103907019412133870756035165539999334492850546870838374240896357333972938628795655450407617108557707424045226238857492146334784652519494246403729617913826206615611835824154139527622206928979321769752447807092314502105866427587499897496868649719168399939943329823360513149519488035374232910980159911376765289073511767161018539069073908587938410452423284492815982114977216186577628359052523120243746336942722603133288663545166218016659799563700207292285376193084038195903694113111041516826526968974663664398211121557424047419160086696973362043741975411522602563279452455183109595341705527211111388569919014070409808360920981813329869120086303506066878742137464243216579255642735433797781013255948965457854141094135755973710714883790312298128711577851929131127508049194444457166365413592313543193491509544113666060405149600645566178339805659560700632515738190163217877873444829501137586934528303852716985448774868433753298777615184240691618665444148295259829472061380768583333456182414628006962709376326736637723431126614905905884336444712279468826435556658639347343912449400625437891734022266815457101435093636775909450796630746157839698870508887133762978626810006168060897500150084423520315111230761539432494928556556549897261586153406348981314507958660871301212066792482424144542208153549053828285589179878775550618056799583846694938974178724593731403710304043173566011065634498891679206992901535670046452281417025179919247990323553605053371103049070046281239242841153929504362951702535098054414537851393259660870392912765688481618633757954156258793900866051293400535081451812388514814573668841149216474033824656336464095241085822440344651626870980714008697749511169219791480273055895200385716621838159753401194623741443789063555248095716322374729795707125259548030769735037803649041068836279965614690261467507075655845396071752974192060909494981872617264195989649728133255381018993378634671584155424412333943492347790747634436914402706636294449766883105921834718110038204029912390465753135639365580347122131417130358824231960544217567774579380310506212351187579903481858947696139703520534974722858112457033166934697077338906280747822882675181474693384253093051110869154310180445834138234576646911525288564512678782846435743342997734704854562963663784019459320277957353954087005321981804538712073366553306354346323472531169521226708834861162839670754060255359075068836029813099739529752066350339654901966902355461694479274557773009949025693177659768929131429191395248187043385373332881095469022877507121008352621415779592621372666080963169758103044941389517223393246781715245093855975022660007040685545840486117359913684720035661889164933351083286633069956647726854967747252095224879881444489278905446457826111142088521643243164991315597420263917805981594859797899666076934192944448367873842590396745465461194372122068364351813391288726627838271662445065143908996388076727699480476694233640524682015313749770323101197116436162513707001824105510053549841704911252784308826509231966617005978082598353211259713546502227394505299584404160377043659219212127052616908174077790208946852520591875766029004879279850364707106207750413073358121872465868087158445368380465959884041553193575730338255702611051208668872252162297111986564467271664844345360847775124539922281505676146258063439619338050731556296830680906805127726839277496572790870540347832273343038691864922764419934627565498775407883372490872632758502570466372142494232151833426620530343565355764740519694602954391759183177856978792005879080839665850948663361420831474091823336559409636713783403124844823694357328143994626783308770463652174769719618373560859085938182662725343798390302595806643446415800567411640215310551849004871928017800893520809170824982919682508157403881748006171403513567624517476033952167013903965413566431845320639291696564316245475529341527103770071790971440383702990325697762932010934636993043646379822287814540597218683050129771342050671778470545358168946562256287635914148324039897732820313295449771005161250242564936709830080997353639459505786492932895270878993994252129567664386801093814452584564375471350354457373205529439787103888666805948261063865607532230908869254253826224829148795406115121522419517215965839833777084499625759185797525158762586113289202030193326788504795840754279086174185439248126292699240368042279012034702376238775195000469131499467486871112320369330799920500404157429293155322827366420298562468915643641953588559777696986807587483444364862789758580085303214952988223300952104847059065664519073687238619662863593735841451907645439556809762547668782178917834856355955055747592463762854328639737726798686370663530896315564009950414355997724036340194619175200720829319395277973530881885853327237214266173903493972162955179533932618737384646374130266867578838979820870936894832545473977363447018795979134345940317230889362378989849630771675363210335472234634863822046634778020327944972933625023051664077363172157121390798387948151928948023597825987371903908467553947976231011373890895191565385258810537156986730951527614166257231111321488409391867098038996164656110513787126317419200407719855058694892484162974117528619750656041961311750689324111241885357318876265320085257847770575606618843961788566335889017290233158568883189229074754657750757913141054747192708716777509007728952594199671702086245081482921726617360653314802789290492209277891033024755497544965367619055100887148764296930113104780934472145987714842218539548769760986846802126287926943630710214877779028718911304382485797543797492772663155418296790157745222168607060319907447011022078889479980197447267400409593701209170175703445032153274244932056754946717891314775016240346208690216391581491770851134479695087171839510010894156845291399575990954842364846103078829899612277286899102936697999693263027976932393031047862593522630741434416758456781441436523472453568403192810574054107128378048567525637304208431283023567080812084312838164396300830427150649230434690109605731899779775143482799404101853513587237768523494426304218635669015963634662758046078348570137143100237745852483917524931678968628636384117082679666614018885541973070100278901826652337902411739093706526816485618562089458639011971387915816672386533355829834943847874335882619079151185357864255252290985763091777150164830300192747714502924911577783572906696933895668134217489811677742216018056748758966921254580385570521781498897301400434612502373827640177526200488267620278318759922478353328619000221669630328192683621053314365421660586159141461986226247454436885393426662081361018222123868539142760830369810312843074369331998151920123669137331585409817969655684813401570587311285618372538656739053860499389804808335509888646929992045923262120912676481429151240104121966718297788827085909864309861193037757906546924605727461215511638964590752347756470761157399210592457267472883533122604800141461081901684376864100743351778059497724023063878174715656541954126142368837889363401969315693769915285496028737620359459646510771510432490571419225379079778337613041148455760081630217547551764319732931288814332441099642082594579292385344271625890859589385010967178736055206347889238209834268631236077883740422572242589284049239727553106635778805550883389251667614312437228055066175383184000385695813651440069722185776811093102471673795422078277826026425096477467812733771705910328810004803795949587623121326572087019216793313130443160262616439930340003857630376721723903877786895876440014885679498378963494440073283741120436547108106617115548042661672524919615145428705630676547331339582345343509198393716435445953525289156986532383075143368520926679775483355934232735372378411969804319170352740921698809388060001007707153716463075144099859634558885798625181868541224668254592788076715133846796247912341978710999998956885846865401621691139136440051675713563697419782494752409686518346100850591109156732946681050811012796940071949953525947065523344125653155745668730614107120863834004514789221530794016535426279688441810142021856441680949239976885977187074544936946854600454204700062711322746764646047221127535953224060168218415586390349311850698336158899017841310892906036546759813513366927877790303700222840079228959294982955736899674861071114237998365553369081315129325763298492231068701533096248526450645013474247636036764726705758796327062337225035872793741331311606271756018935623562223291557220556878737021752241523130536221756835209853111918223457496224584629062311949768171766888970085003356257777542423672979991437925479126423410811120372883413100241162457022531693328563563400324732422668925759555246849990032255676319636777837026467469956477864157095198329713473285424185687316665359093463153109472577724440812870379551468898818286459555852255136959054670333605989545138024691830599486634866870753557121501365111802846407932944644219096164067294089170232801954727375077111546179774200050594535066376904474511556122522902859669039494407474839943739348157142060072194908566038010089644728261637416070337515668072965667875131889525613321028584526243339910884599213035891685496261192718477718654753950809027337921555904983837223684591385271587698976906441038370489396805053924050563569757347849511349097571746833517481043673012792030497643729359616814515787551660117536949931379883193428628960836290318487180034288950102111529022941815460521787164342660752793927786065530101773440636615974877729742157783494692580537575727614158933176911683325340281561272367074492964863044011751493777711676796962682476724295938901665682956582059044489670652679676490706982579967342197145686391722081424255479537808547283482912058534935398936403498720954259668792476467741902495813356035476108569682563175869345848900118540513621156747741751051105933707856149568640335903230356065784631328268035333770105348860168774449238730297090662127740166535984924513696324701090731784726647332667024097745046899152841305297785486954881577726856755875971889448220059672106852177522715836383477958208633586869455369909425805832673952895436227611602186396901994628286353201760312069418634373625519175682371566193295124655479553726858508151712006036042209001719894940908410273565242243808578109350861984988909343547362225799218427885333409786775972994220129930477000397170954469481170637832665049298970828073733521701290974064552659346959165214338824680541446730786709423701287263821372070811465794060007689858430463837269912304179238587456954064090190683729298815666971840020711562652895966271495052667496035189837971405728032538296985747406284461240036883450327474055763837421304852132779405232502979052348729096354655182962056186056893915587678772678292273663259371214214946297112352896292746830747206155403495307592755513200740135251473821938193414336047526487063836897569711341928433326329386525209843569647703897798629225918667977529175698809876002553112636948838208429000881339322392424269339670597243456037918923402964027286422054484672943391527211032765585545008608866095062370191530525485925308135431545351858149062487991546089786554799178005068422570934284935734532124038556135644509545437789846620993371365138037785987656805795557673977104670058624087808732150764467066461415739871295556128422173687172192473006361023075842907732898786047782760968307844441250789601126987070767550078595780318058775239522686586688437891324531092142588070522792333803106161983913760775371836605854291750176965133645088241283906252046952782298949869246071356520141510331479839059560771204860722031393293953515290741066797582977802814693041018880435022650515929559533816753711401717288914682345862647243200985459425454581652000424871899763391621451562157417149517177070105987408034992294693698532087563368035019476542239142157922739228332069652311201449892919439408780266667981655866244865357055277067141976494278610333293656208076389870416102053948071023799577196994817750233507160209036241277767723014944329475902624657230023697137424606727605147396711226372018617034511722084903472943304578193382878350822512902178096007297476297492582031733714973064338369783650952789373807146786712980412849002855199109584421347908061855941506530983257634358065561052306551614885515575250447147483442415362695607127061092437280376664464516319426447782880988985263837695659503382500139892566763957017444063930909477587470499203883610038673763734613307980251319313960116513634083510995884395157319122438252672399197149898929138189750265897219093664896325716019907180789942746728702303110210046313571716214764187604332642096415656493884212924320580722129999963500315277082659028075941834043500392120849612417484219801362547081557709153985459921797206519425484215000906862278975213631512956259000875259701477851024345467798529731735741302111100004112128915305223191269748049177888768967426182446581030960572733638488958530040239574593840299934651814207678283183224211175839097794632699761580443627286808147470074092058099036152822160988905665676564279372618434372006820563045846600149674046523609734083331295479686179993317349428506685679762080949536880330625553147203572394632304463958917097953704746399434906141673959351170333689157348251301186465298092739326885123910100366986045317190392633200471296479363223079694555279775037544147823952292354841175498337791878246676578447465209039610891665517558747017650207726603435129841686021344867477066510236714178552986965971379894329369419362889943693173466642283353628490874818013415213748261227918127488296052504325924846080544951316333232414069084335065497792399908789055402602084055073140703826200500469227046018433058394623575399846585380821327141441773329965954442851203166389014742610212166309858799961886167501991951429208659381164248983442797383118768814498490893420559546651280992996747183963805618852613371893694598344492106078607587347963475860439997247128018304422578225757831729919949503085670478014469901658747527507638207795504286911211458980950525220854710989552738242691507338235890693920829856740691617316814882314621066656466835703167480685155790109564561063171928371795903079130788065341135467440438515832178645002096992062216237071260463466004631216463668372577644132617440524107118103261049123718708420758344297524672678908846004671444998774816453794469386584413575383963277617407301212559375587185566577874722097428485538862841494105075228266919483810458031613746012288857895873732273043048036788831604006475851517889499170354301191334728652765876459206395977829770021326137455011159346225531217317932147538397755868432706339262889509133546177634354043372720354587105495085666362667415723918006473789956766020858514347814851024277076079693317559911571569699931946888536123464421307108204664614938513883834365724814760851444859144317077954701802738811401263338131577446222735298316977794440465491108671515842102792666376624101885127772051418506637669077644046319587372408189596841146459404157536662482345924879573733059026971941632419451549696111840114082951962459374366430517072125390191724516945356403061268112000754109748595485966709284723659051348674428937656118119645931830702994248744644078275418043240124368934314967131228017207233037534025658849841673111955300400549220208111164560185823300182952972392044218424439566564482375348434814404625256901780221648283728791425702804923263369494952858031218941187529854179762404044695790443041615739283127080601615395410635537839911116393311975372803028948339906573235376109978862521365413611104016424107753009509454463355351794786582371815105262767939080323177352945074030171609667215504638160261176278403395814697279843622580563579931740890195366002320829506281194498920715991418645064335030189316561953697858691819908812518191547767487379900722579613616969332225501345252116339716273222316811644135537773266691180229820082703754064585835791633603442549451102204224070532132978174488176627227299897103915880046726998736070375885564668543895584604310432691820462367228639960014055952169465710957761673139572178487549441741479780786817713351941773908475058185651040731683738977182620679062033470387465541042543351728093857356566277986143161505689893081950130839456239751437822108815796806319963914296699161820403660962148922334242026645912256168833022620819855054902553999466615011831308249946327218289727261562200399740178424859189041793390535186139126005450991533112588210243397943129582425673161890974055286407732912344257136202917852559301224603127570918945248480742448998051552277900785291022238529610114022996390399354764930095408195232994042951033285549038327576981737595103074001743888686361034606973058945197104772247329835250590335737790753095109440079401935580967839048531865935822184313955764825285519467291655313571689382452373746375373257733050244030795024146644679542763017485818403666519264216033440008322660755154306806530900950383233713859046707209229513634666454634415080796005942729064492782688015910311092417922743982169806283531611248736365412121796864598181862034201816475367853519071288160857611893425265501600545871148887464318203995987302744572257403009570302120151007717160250269090399551731885569840747684274096285349765458799363320440022217467878558445192494583514577632968477119934811020864089786396594964955370870563744862875810046920945484715311932917330457041773099997708026569283899574460644914930425499578113254266921940129217569093306315672213133002400446617987968863960301311091976503018751504008636133783590150618440341239127570252787839289973492786755331817351880639433395007124421705017773549877202715036369571791078520475303087745752538122351839293210678483349170222084498184642176168717818447360996771870093040052385257001300968010859943891326580218821962670365649296578538657320864505255720355594702059519558556872486427539198629496401666052006369245565144631616685569083854511355884669901898180982881952461327350729529691373677099107313712604311022289466915738040948164085950477700354190108040733201504443751459142710269272819917869850022192201859104039705820863440167416874324143003458684910016499454444237349613410496346154904569162815717315937232637285570504167208202777748704887320639853687175207255683807860022501463515981300603955372035052086198076186131752384510787878117619092534848581246143753126542869379638569556824130865936921256247197832938513805180277527495564201400679421856457888880591976887102514039244580378730522209329556043332276211313091737610385350173100077507348820125723891269121100759257352209890502163245100785526748523552181770198870601908469034502583311344980489157267883386259335188399037223364752741810083065194925803289973516372255845661897160770301913789015671645133857425135238040566389844214630654009607740491849478838951115102276928686800179540242364159178730961420184966050909815594526087552595132680343108972981535167051798699602037325863746239730397374774290575105922987933075825940410326171132791232243842084942625365446438935524997072068692759692528192333246797285020153481077613902210238056926484694437836443660024767259954806097021137964417858937627032526245652918152161756877507321772314340853276336089576545808747308385693472455033366069842744151811754303130440020031884382510489375311720099633107409863687546866132352198984480826175931185710480080169446085767207280478033325096881616669449067982202989493798734577322115774509262673514781739087465598721310120197377756219376043708566195100156451223365796330059830993655387767296576703546669782957021418844141644513545403311358521572849276725278049414279864365889374111875658028508471756334680374458239482085769858322759682698254173441383168365686308263070697385378609833318420027181256741824762239706817078160186030438294267738833359722856075825337045714314331065509892305386245603494780919432729397201790730725457836642833283866602094298617899630211214847787211708820534686814959336320576598638912949717592992628359962871582516645671691408338322306477059035216796394154139163082443192546205095990754156023188269236711192877243644157431732528157441501892676151482578483371773736948803347385176925855251770958498134857471274302881843515355170739091928789141633571074708227588024491591197651178790213232543707533185863648488576171772499186314522011643023987500862567108784244626121278663197707777215011102376905719073544347457113452991778115038004968420858306082885697866570966724077372904054121081375532623957210509115168316096921799766655620681469003505347701581705543658490124312785373710670463235411009558429977979359502197897115992585674297787886146462236096603533465947297892636802076758574525647024205052131711107709152377240824515660555996416857658949002663462371573449284055365756935856084923658563863280244433729600969116100643225519052674242654669850571864303955616155587747347499952565161849851493273822635597585722412013196658461157404232960098055849432463488943512563693232883716606183790789024768844374685252749385014595533542535338465908034146890011536559837817520486802315079411426481969118644618695128968258530788921347020934505628068720374423535631508216555472009344128484255207185188948825859906581078728619545518268967465116946827239351903403581993567506342763529364290437914300399660449994547469519384787884373082485691875329428088164808010166881876567045712085489805508807475118855784720651496445883385629142678830965103070702291170230834840495764622690029827565481128991630099058151149938040322390269249880923448002432732362949807598558664429744992591929524595745441366533788586744862610177175350182384095437221750487857732454653279459444953084070777179773202617372896332230640837565047142833491215851993099142593867585892968749599961001987193253025507460020350975830463826038179017175817934404396530134909676402205496881417064059198286144800276953546914586446708437523869510541831206054343236509337417203192918050078767847534547958341190451571312272232089786957587830563495912774337921630518710194207729299364338708419900110170529282926088353600334811744617866429778746803022929916341945034301085159609291199593012221351126860450386093060665517690421200189226810387456144336006815780438282100711340171817288799897974395745566699288145279487166245192451094469282063012516799122361780302574689566937696566929631877296084265448389559980671804012828405441033397375497601295936745180911951999832597936211206326108070792115541761059047742611543839941051183832560418555419109960408405058037240920329425815308878640753530870407833690576460187717201684767328615572122199192145580001682621341809752697826442667290320111489004249357325998870252715326623933032578370582670944300921384371058359467889844912479180004892945945335910623567530373147343098932487892873682924027195265479799230021369942445462030658478389297447335016908436026349574798250745120684979915942904181602941603182378628074397195107568341389604637574340955190171449006979396738771315375662899372452525650845869804980620710293708055766090840521999955611220923528893714767300769592827994487436153009804958729981170575374882997030278444966003892965312434021504252191701973662443207019003149503067629325839690192768980546031429774760325510318550124621427400856690331096780137565262159378124642257781040229786002443876338005066084556029717842730353571016196203887865471655482710479550049017529541916599007312516229557209783218042363696343424332861491147638501351522572675878863237707852949447456719679730554865759913895169909278867048550611590611635881007143849947697437886900598825037864863283409602338600905941297966580078906683562317927121620141860578386076372016900376070506018505859607193402171340184255731630389122868087492360527447368690918488848111033880800174331455101937021526530595860614237494717030863214888060094998855369220851554091938043474153894019458406870764220027220335781664944536991071309689728216109995124691363772404549440694763464942090515829599400053706576786706412968296100169719624837605363677615581427748737075756502188941433858007177337817407694200207326315987846295314098580219384962607784536181606545478867911936065485325665654954966443973885030711164385162361073826820331527320491031061798154361565761346726659486014411145170892559196266795506678358004202016889879677961486161862592251498483428136991367971122126461972529003686322229264880773147446446170491177797940790879597283647738586193803850303031601105302595783013435410713501082659535082139076618851390024966567948637656171711238471376559899278212352862487603139526919769577113877010296859244949341844027977110696055778505008793258883892395495946143936393032649752964036289556301884915669300496505532648263628979872218337408573444967040102244520967458852643717517409240815116258539062693229436856490205997622277657457145413663103555039574051401610536697393618781511608360914032277735469259565479685022797989950165162061853808453668841830889269949943296178567007164652130861858586999373519371529721298132073296683999422064147270584325869945041778249044464414743448968007676671150107389506846671537581327624275013399224107442735273107178475809964674860418958383267581754866612488942154746011433726635541458673527933084823410154437885544233016502471209127472422292216031102361742625714553336361852482026977185593968948679735589133040703594474873877484663568888171295835940992163341628656178469774879343018462873817220165172670578263751214800010182298724522216467039467546972469757026890199794972647715414639577022123910004365992299569942699118222767589669974164266599873939267161871729600157134663097270088966651756944865082728101161222040747234209679362867454630039050921486252506715860776948822869879002450096562024734277014558082431079471532020478188127778802460738267821182195627657417277627554888599003008231398309551534750735229340057031141726901163584813526663289440632916181820003454392645356521154717565799579489841642025849743011648582372990182939536389373325730830303748645267616573163494937515203761025267648648373267688621953531612394199042573019695834074582323275818294901656442353307490630706482654136023778852678654645549545013358180784395492082013295659060717860150590965390998908978573623998633643886298536173612724416970225401362173955219723081519368031592784132227558897911116217987135048770565809006259802420392024884830884451549485444626713652944033535744137846659414582972706751881137839319211936610486268749917085798251709988052133660203007999131449587832695915954553523321122237876976353182739442958452740545032721542218972559287149321470441806287494775546336475943466990585478763609374518357755367569005964089071644720113744480834085152988017396779273129968661834301076616511096618590100770254287917596727234903961367451484226303685609247795465475279753074697543600307921715399595705982697005449368782664160547123949327248167849888510856390739511648652634646561315721094194440823168661220723855381840146677955032748580683864751734929828846531944345796293534256590226047091276590857849835769996210039576333312252384999692671310190111829304313254456423600816393380969275790141084466110394838357537538845876056237214806626619621667732431586620161525517700430994112198841086132883360868815336368079913222683990436165978285681045573648480187297227494893345292491301289150176440624952146237459569072897898214380686460889167087377343031442848693036553766926034750929579924520602238793800278818619324224636510390385227221173774992092796031261108215283369410494743021532035063839330957430435793019496679093978288713045978926286038065615673864149454615224688957663929560358723004407643915406252875101963279379532621182279160564796818843996211781646525670391697157693035873336981066162860209718093280146983256051225015489176042430785761421590018273224729208483971972019912054572959088395075357949558748844510965659290508024516783358217741765716775796881483761105306065333346113449179157801416180213902305291522781226786287189220333771304140817252582915623313189616968778801323411634117480925789373182684654990621755954999381719264499266039962871191092579129287030978325800514801236911962182343024435328117769913493972435904052142842841408889122773870460879777488187989605572535929984580515854672538993857960370140312517105178659510516984026633603636556146522067624901129489107832295488479813132168240068811581923966786344824722555805227381639090049094119695851215440454481540323904032904750475885825784800139543138374853093974532314728883582607773793905668754447756801115005062036634254441081555929098152922068346144206289173795651516637406422727894822224488179330543443534169233625055891388670460899376977589368955907700230565660006505782970411782643703453273632769836236406960501139608437461572148212500977268717673376940550620385635439679919527927969687045365001403513212821482341699566243048193716753970452425905750498804026143295879955168555665647032001717377656545308369880514902988025556235784290789501433280686095664837701253038765549710477839266497416821522194327269846251408129538707462713449614559851862742595843161879864355473168819407869246010635021653640194671515605900310827153546451527513021407651022887758182823139919509208784381503666728780851280285899604795969386587264988664257809331522180863664551822532699188564775838913892176528190020511051703697234935160405156456928364930151399828563198504659082693154612652844652984709242847187950599588573848564151905897709562591286999904025789415565690493254062413384493964214721859266489288040168873878502670010819273977460821081017371005076935517026416597606646729161658579270151260098110436866287597576326068013212224870900444679082852733647544324998623464897144069225730693172745767157220695608046538049103984126731914791537505031794814876531477807460986505827681827736320138431979328930097205338129259788995700306929132546457608128226840744264597540315233937341651154322911011210798411165152900340179418764475383928427655099606430801048609668322743480366024761032951021950429909576638341869218843551868624010974016618633194102279218268932497134137715988183741719370501451018647104461193937350844685449371188802713009662693537333638297009474901293736738151641544709684537341342870291703390855978479444394814138460340900852149234690274626275073074513101588567527960172303300452736033660541649474292726918640901899604607556601005795203797450627511640970696386220267337047744067553948468064540894621121031884182044676422528231285593897782983750003150077483555146729411512837709106061742958905019729439860670742799682956864850379591489658832940723658404282249485495880397095871156713234593342729307299494754379867110790460458578312060533220246101769570279134496172726610070302381156469333932977682170334550746468445621936980316997660288878510993825715891880022871420755806248369469335159301313075956986462335743257219507246058137115718624331867681783598085133800802580039623428005924211031431021904880570130003198321805755894649078421507889856188280642361259048635687826440189559567449340939215712999906875304644579019245307643479313530586011286227945017055287775820765331889156018568049353131513430452971865037941315845115672615011302045889606236750969479210800250051396453327783936851672659143109739728694817555552388867971858197541962014228292320603421428812998036549760481150814866232360492668684583987620600269243866782904907409716154815262966604244877189109167947857953632877778199829986541737247118386435361215261368129176061193808485590473086471890389380817272645461207572798310161595014552133041216537267430324601830373539865845137533779961740018902632145227446456659731869480679845600321330904324214457223836330095255193173277949379255466618109232458381874498519562809505287392118195604507104813701381046583739925706004388599166409233733312214017712739064554061929265211003221680946733569574984018586682069262242196493775029595464755328194258788233615505010297365901290516854741976092116963801554209939472525995392704149819974010295650697853783580216336890277119829687738578911670726150020574096392228009850777256390835339619788198854568390900857755658466313608203095281529782982793851475079647254377428820890967750078546197050279569035936730856072836474634535007441176200035686145149887102710564338965458898550708580726465492059531015134474200297813477122848219536062266324673311298685281850721746132715481328688145972723947160127565262284218154107609061930447266296344152061706860631250595045442856749242869906314067932374957182826248521050124512743798271158694640115205146244287785323280063598380911999495011218455816296126450390945974876877709738667617375038695712516075241938509428922917522046405862658164840696902063614030668645931480794060988672544169379524867464761956589481889011304038086734286598374443936903324568751159078695913838790222784803375453928988213672767199051454271017353280301505099126712027023847052847425893026159198587025976712026397770113673143641470877738251391040344498890893687740506018277559906369904633837727793395283151628218032256507645124038308630384856754369952564611791089805731167347381569492069268378618348491615103546938761802133029018999295171408283727810374729273120032640067000072786026205824414611321394073272461158694959873407058856342031343961349915158346809860827827997366947168324716300375738711495554803684144877110786777601830321842934718966927095439279178784710575981525324383323825960492575448877446533936197919461923423401021574699982907990994404798863419444272952092437327509973206292324747634676447082035484018438131822268053155315936529926112869825701693341917870786116110811202460758176763765506646613319116032900498663191559152092457394467569218973834823370101291252180071492687030322193051082623495422789070999535772073456009173091050496159374276212040643870599593924641759875609070695061828844875794447852494897261005142098758642254678638781335141118362304959303749025368426758921615564851279847041371450830182005506915502285733577734284086951203835640993428397827355651783808484973614709351101023528862252885684104005835475089148358991694516138273350860654280250363683038148625294425781559665654355124223547391018353542540698444259077542777423015016858719574714703383651717278820291474823830376272308436327319065353255487941104437093819852936865717638957685892754370237118076364976175221130139020105788981176073420550698361975964939629618660047063253548715903865084851102493095543063752350139396984604331210714290273052233263437275063639813729994527467861754751595992814563178258961417038953049795569467449366116155328732388519018483450091815884747746683879503076266192411950229185030042893669861123907980548463217773548248504192625062599654986538651105950558656251677251508379947737751051930765835715382141252848866196350763251360231592277132386851035510690798419716827596911778589848298291932992379619516401254118958569408362431205668139026082725902176808467460290048627576459241291831075814834450369584750859133533159786021654522912150045865738903521940606147615451383596180254075079049008122841270220870904671310427687088710252322980491097770420770757732090024043335125447499244829952982862963396594562747080990652010790940699253031994812230397800856711626970802134938457733120505457878516655833283237222384369034861588019798366088760553446511927246932661972605990409654158190123707989268584939923221928085944163571362355828251819113398280776213801529744654746925231628861095393098851378609813676970358731315822128014087509806338185667148702619344561010703153984901981162169246026027853023156344930694280708687958131069149375762948097342606138683449177914444302342603869290545780710035024096784389040499595794625531857377605577533615711956900651074433360773633749354218461559565949784278251101911579237948830804892552540874315322603155150907857049033337230069536897374640270104037341123961257631637113130591224496809664558568651869828126940632483802714727904474239700195522695424012878412628999325839237647902899064037611029954835846633811262623450868110895981416251440191395515381693861979711131969679993113843913671672023100313021134411323568609490430395834556477982090293329627315866745054885496685434509738711375400456182743902985964299515914244313778467391201050305692230700029731668670332172365757415948384523968630972506979079907357232313829867666600443813659049829878030287415194979145406435222733830294659475968217146181494387006789817763131615833523523177968530606335693012250859855239706607221783828102925110843213668609747918601079559657513367886177825505053811002994969171344113726847470807700526784997316741515753434344515333182953278573794401940550846182394315931114823738581648157685320775645259655107190657368420017743034537226835983906725279925069503511620104165217863253281863473315786450481882360989509478273436814827435077090878002355118933797639950008886422430285429095343219646965736420597250514477138340473397989014107225724364174284703823571214772892618981575906830111563767509574779103547694600176004446186511262911063420480343937606121439822506236508058183179474205179013298344124661149387846367676198830685468149173050621458170378768846463607966980597659655721536163167392939562082638320331552259604555984140208102492660281365981519067647116006181169200995023166531279141737411489852891122312618670650302337391874974032102819224834814791651713350113509711308748912067802060947442949783953506251396476451708692322707468051744982083942089216789520066461027158087579505450964462682172049996171462853256631864492248101795300868138376795348988345218713657034290748970490174608658184886562518031731448660086193607787288383966678492811776847726056678500623399228696989680496596798097958335483501289424756076417069298624284251217012566650971892678456358410055640780889232119623205332841580972896354940799391125969838927266614710933232477284330653692867129199743721934137005668438748280024768389154765491420008221609006818322263322570173297019586926574913731831598655170766850424200310375856538017298131603589082988289731178801532630163647119067263509004935325673171680993088141121720713452469589095517091613491748343987397389764247537669523771931052887758941560438731143325237848941669166457494276848835025113860946329228877364926285800573371294814780111120828279334871019712226897354808679806097876726782254460008843080610967054434417377015256314489880515037172747920690269206950973445000404808410310395599138222230027433121729301218142772057929625984172158215495650605505580594451779908764784781934121786245781011631299645645766237107236694320685898845951734032006516942580883911344108289626507403782578014687439751986488446142713676137016568772990784815330812840028412405126520532496613824064327470694389004253112087308110099392671719320513599802570729506559757958471648480860521181903345440688731477794435752766479423693364299950685151818390930989726049027740049697366761220988474391387150464023806727660745478978629675505650838395350366204741503727454235191794227895445881204836919442870524454999601624016752433658236600941602243897683620545872545069161395602709665719288600470451626631917403456820720869222026479548498217658456739745580929621257353022824545702424088275628451575758016329550547374168197317873546991404494644621250279512102743951995790899333101229650365186877508447871847856351926156395832547680665345118643360313716201510373847004102482137778056572397226267194800738462782658796998344060641343754082523342782336062190035742719263312414687329663731816674872380770358100463124750872458562339192407809701127085917216004121983474701080436876677403239454036648210898188448955731148188560990638409235263948732629513078696977600767687087156384611052940106163344754524014893365166836384129169245245167885320645362697070236108828526898058715661921228695018843223331017427313194649788038776520096109851349877266903409857190076236542911705725318901833610714910012214012485909963071554761250962069325211720060793002436425393403967751813161146109499473819511130403709447158026645678930151685105752500685077775069603005108090225622730176695717393405681696489647266801743649011308826757835710922083108036988972902315641534345071320014742215298982412340959450099219335692762602309153205700146535431034730084740554995810811711373773310267063699080044768501876209251892809535831638236899640876812393372398760862656880984717986825568729255854669745145681500648169227866754248648199267296738153477654503778063067396839952956803508640881591204379240581938516096234345055853233686865090146901221662457369740246478520085196490189253537305751678746768875715084297604297738658682780360605805321075196940461118407592845597545210488033284832897688756533025509541386247862575628744593537475751823679748610607706268490653696447498009433533467053088986651626124117629543124140964201137581469477978258448575576435729094912132541055821557338920292024940048379832806616335594638443104895404257634898703317751602823226967214051848515256020592111067169870263672155732356763627946968440453994372196069917020433564081319510523430127265905568204603207807488453505118695056659983397837367019632858548000291781957621166030037904081386261970072996827474758333430987717932061041887984071218102228748265981625423099391788581506939047830868858414678004399322883096203445248999519002031737060048539169186298893570241396124562823735983674806546747678147183995033893910126399837970670718519776553421601930405713604887238899278652319943614493193314754454670099047414374229413890710920151385316791362751757183359857212888674877402723006877674200162563782719999000699413233308145691383451217732357303355444524124487376778374275213081481972033085495179903189608767662946332360233774957006467769809260342344558867255542483836152869032198158134790683172280972762713982171549214097554840835655610001519851813729440101481248067569888180227094436806058523572160150987592036704893768410618566261683265571872741943459615209664243424294507470301104865983300080377995690120031170163818264350108273010834143512095797976304695768535866212564004095024553120143353086492807684541906095203864569101285363311009022163314470808222610321135545951674394434844036642454450219433722748366927584588433260025580963860933097274924523584944656706137914709374905793056482972341703980640550355967451213361793241649664283962651291180194298506733944767478956681135541320274895829542447309419967796867112979650036849786352317050410820105241372751057700782783584715884858810750151658858985179245038517867764537820869816760656881163834712582099628364976868767995885069042003689374765232316931370395726896497192895829759249416600741353432622524753033443049686379364054801756896286663425903104398622229901276589822011521173342416527137149537617956909905766865475498658039895706767995297658674148991432923720486492412073601893306208666098291481051150509352242782442398462813439077670480703363634157039717558402322169458161879443555793196317230314932248052874002033915638915298430743778721584664931094593242632901236416651926647842920982329127989814589678021184025442811066265874580927588318929749690716760789575104803994220612731082168200325860608538549061106781934340198176301168873530381502636662890898786161014871059654017474511618314613624159531576059973932590871749044830204710056087169880061845886108372704593894611560176935809212531657041745268543716175416097583827736763196799439500731671705747777650572164027628980833968029687455295752122044363276697248727847154579910023826912243082309935472642593147020200607281723624884789140449660661692395695376780940794783603397539029731631563106667872449126958037710477743638454111525544999805554829004663391864504223835182402558109349457172269607319155828269980277723092100720650463065312551372745664843434948806857421700576021522327350768436711531083108339529332603301935413754378195449352710200016164181855881045033066883842122413062728416099819248971324965852621591712913426490072520980461153200974499499140873495821534380033232222131368890730970346014368556774924005940661867330687563882924909962943926259834277206484762858168228218863904470154331705426438022968223643915806624447474928303166269163005891652869215792612819716441055578223840121762130401611385432677100291441728235546133594946897787571369192522384637271616993551697184145221849847849468080523942982374610523819333544061120514640464071452637263893033493780931899078347140231620566082417624080252860196853647151585396490311239677891739418558154676640597521015617676288248441252204104550875825084680677445160887954948407055547897858399494791811290876187537826274759085246723036293732421520408890880462061610533198679531878708904842326608564279148201977519509492011798424457748880073281756444098377887290439527003027899893311848871767183577753155187435030670068764779084983149327677961210922050057117724114199737404862020969727102876022027905694485537967862086123108588271179112980098247991093051423898880776198871669872660928174005961864641170473757534196109486133204282087291359152794177489452071663216391817020724169044476972660442759816247324503718395703386142343860188545116906738998900701858740144892758450836570967217570391457013020551634540709820683499219060269951986393139334614720339294591948107766990592124388539180142282020135917332583637075229776158132434901450500752601465135802658149679320614747068945837106306858407018862630929205752865595088103568176245888814887624413345318468603983389757958563734316839845712599047943037351010915957576416572200676809693358761726669287880755346015268794874602300186257900846940899272143689929379378992014833258291983179946984238368763414446917469744853493768388629308058984943944503247436948025204471430248404064418604177482492697797794314349484622803049231538392453799087974943167338799949991664288413750902760789698447476370204676075100851038364563523525911822993859460429752503472076306384969379132982152119432987449777999217851779469588916841576464759971900932012439185566436265310419962662734963955624432957288861563938187076757762832028609060012967511008769977181560217826084002943131825296290094978009598497576886139798124721585486554240427010385095588672127523785048666759017961128628546150092809750080734098018784244208714156053137089293309553085308360866979431624710001243745679742858631578305374800667402244058371829109105100614494870411293183102382761835511152912114891956953787882670363106731960367584782277397871263875132783002439163418540481291541606187672068815775883640232611780990819348306526357453593101378817380113207821639133263094220746118433707310213678315444997878820275183870906590598972774927118409016850192425332506090893223983447104779671631908466460299987392092806352331403517104100366817315843720425518416656506276729671356936139158208785589490588146672332689507479860007556744064391424993009083239649408694522521940877773040435850415759428360412637140906784895348475184728797115509114764637755003577280475115089697174133705918191713687419597335046707205471556632057786698931112327736673388656625444590228635682370335489365359738492435111816697713845910049237515653009419397665813486329829703464787830665687058814811545775580669338779969895231761080386402748121684279815546635871321966121432081877890559458215623479782229905331640940377855157146524777350002715257611851113579776460419772644843346655949639364763812713673617553239312687999244181638941611250567737422254604025864422921922756305295015522818180248263627530346799859579705903441984766556465951270559965794016802278041651878059508942223991927875013632141011471055371612731092467251389164613215838693493882937248151406925767056092406620446883636476837540053999719653044687803578355323338097584720008462938901115952398437253375627437066871748743735445843465584512612474921284344705558807890790236898091471594974947355780556080940537891418354565818457632595454163873969379161976970478496125665026320071691036607298519162899983060631120571486601921554659708571040664417101059024704521953722629685496289149627963374500341982474162352955436618662218725225914438925489381446793713876480580411897737732771645231155934830209568519222829856314160850095389799725123050442258852044459316081360851677156035408043744224814266823192466617938842464024060317660553028455585210668515515810975366114992060144148043721603695935658548974669565443941588208611465117456355625339237441813770963777093700605605905489456225316957571657537988080659839353121455450188330018592004681206375986136203749393895892745596647612622731375658964569912826196780212743627469217117255804687457391025785517743241179451033506808024001611973401148312870850377648628839850034897630978496309843373251589851632890680921318359979257565807435288028977621174232715527784885874872653668686944076018138679570477023875272638225693244749121246595993604721939442066248905007499918474848561486591438464683020393671704676630762516077028546711734223624410595602706792485597611522818543656110890737162270371186590091936766779615474949433221591029309778081381233556676977643850309571981339954351397645346999051927641687617375793297766559114238806931580636200132530702869452278614321643834891757864598790013228193890784661127760838110061494785914127629891773699715353057662968117038070863111077436482817333636595041042343139363607115630244942081234350870843247004550357725901102664428430586326202268991738602232171418180237087888230596519680851615042872824544841110146914296185472523421263822650365302442060321162176072918937363572888145416872564471892454026743733556773462168128845265136709550187965400715779747488524089357486525585819873342919524869548638462133228411974213769942742973593716432801912982503494158538939443222839726939384268613689651407519727017372197459780943743945439039800228058161358053298052988073970643019849463077311283193135449937608236810402637170854839936134922626854537404903269603500359469490545977336153985400868096031273402495878400264234840967469694151771243142257732916002373007140809762287371315688129405408147651578012816525481484744866690153090747148648517044819938218758935424744267897514766494855808184570471162415749068355731487183715941330125238008776532837021488672080521676710282382222299066869587689078219840367153160552421923082283972576081815759860661705645208265939884328124737532940508702326462150911687412490563176629021509319880284997631507276249285909066315689199504541816952285228085818988223597326071837443112245401115652875169892979945904167721151210672720387436152793093961145570148032818401434382181567131818806848378923248930234372310179672606294329195495715680609974257421561569439917891279795797581735878757107489524696135691186103786840601210345286225232233392801792648136123645119202176604280503894015763946716367573168361316411689752885048979009160242200290859183122655402930120139261162583352588796919940937532493653314631978803042446224664295282841448094016086706091351747850388056058659990938336540618511288095460302817841648544978953587104616537212322825295585649173261634534150526562475248204925409775009902018658174018113444526088591176824624063092294059737711649566492258854588045363639177635491130961152084032043977029093916870628688846257155252197972177198714803880864292165332292939045626144275182666790789196513588319526443972995713701915079645892019292589095801843819456465443438780122190004424425911091741437781153734474794249336803647027891576635716085798347422180916820951827921189733426803384371246127783269388346412708906654941588089736483357207182984479837762225633861533261496870462776912403916358565669349347862184175067678795478594711296909796701883159106267801804080356810855335950452262760087901454908239062218879017870953645090197540202618237434125810276092844773958873854435057933419019623616290409553354347463542502605034666397595236238622364292382444606166312441950085328182191958152227162578064074598450178477511982287612972267266249178733299196236568171585770065404694831845515278485270845850885597165924862589985589357924680292134181364511977993067749625047490908034167844165448316325339780051780446741293497820988344669519493514939279143124941999045638120539659603597154966700381855622241952785316089126221554966100545773540126078163988180210571731227759705376371116445496925164192042015486530349154502347414691763362833597429455771115256946784191282219617858040707688736471340359498449202465078385910645910929835130093360270046932808984469141226777861003868808419919709711657640134437089495044007890545185654781748331172807816674279628544785979202078964611712499043934419354675012907358020264157930388185279938028610461353975644240060158284956997401702316055317444254251179617412758925725142942612445470213708002449388953522069394144853429055728423531907003715701592250334156534125201517089034354207527741768951642498815433263048839123928856341510027274561893300067364488698047614339688347311147627213180060352667207145420367295324905645146283483415264741610580506422370667785432894408497615397197626371302149607576321057290196042113544270949297244623740787462282458526441128420036186032125196084768695276984290975823021864662820979521503671618070783675730602971896201928056106252940735874723691656823244033555817153134018668767965119578667807110024430400376831443816560194215567311400617783354487580521690642176838139672859021227391597739718056019776386565314267289042536507783633972474255894740509355482002811717015088752150996788881841647679266275301295676518520280317404853196521614753828460752837052077704772632382363909384802801662558381895784982486567328571004228122952423304620151121846614766781655160011146499202506338768650508366572976726194475970897828714949658313402902509960895575477657902696825410877597881484968827907913082737585789501585865787573469716568970713351044383755377470270496052117489616447246833406671291838801704020362565731000131859314957295520117527451805994098156698676051391626186638633301539027027461909268568546080573597011162265031567419399111432623767411914607708935176156641698720151975643123969915808504289858420711263922514146644944910148108378169835438531012939528718023063932197693705774845454853603344317657812982295253374818404764089623525801310498579760801200402600317467848553690007907747500962673267622813338005129643300888679764142129309493004345749226279005687338289458863740620138921324267578021502574334585545266037303971782258036642360048284894446610755835690482007108513697422316501819595278363756337009164323887057021203332554541514227961350076671818280212066786787597712956649955990589908814317854891830172488773638384605421428005668236108767148219446318879416883400974547879211752683591195758130978244068086796531877981806499026701026950231207271205017559601317897501865024697959998400702497371390981042093968940331600528351406583509841135143838301544659516922346848248456259535983591885259570990365177103736101018913336496167265859157963395098411090098680401907374632612404653743920843862363299549662103694626917124254890596399225939019087988554630636668605325396180016778164496354744362337785204690255631729967896811795001372664798892519725060523071704535339204176556201668089434237557308169727838886357884901823474641638150741169979559657309481292047297445699391105976470761505959574708282553404806449617044073224795655239912204539330142107438798660570321818608145045524096739825071106327111574713821477037142292143532765686999801254368289337566953293732680509159068724352077823264552833460823461137110972975730162111645431249925210325931533501015292987131597942244719713669398760148300623241836984375477750221027505460114075643997217469708405149773268719021017085117878526569152144969825130822882822106687812323333385116103594694200897307649935633414357421414037877871232460967034088728464334470518461983501616381609191969198458995157627970996603513791143086645088725875701954027326216691963199885703294409893708398864858664750558947778515745439197601921434670905872982079042983245125564841660512220482311773660722436764263051533481864848744699045884026342769618301027829907070467091427348724899638725182509522906513849459234155051856928199019373521773126397414868557082482496834395803859755911259850171930894888189698351449552533362884086720074847455687478179149186956031994049817359088268631323476541760099157234265705468118608089943416854104175854914683086780430572740036226277042432859303180275517237865286098921123605157528156955186296753298046261564017298777488684568541711709546474817034973011359168171629597175693878373322685715383496178525209684454114448365267473169073414830180684763450643466487428733215447975908662858612603792001937603344999883593638192171919291333651470488480742604506029196289237046748980154703029031735356085661843747749654446456624366455958422428836851636335443566094385422998183327833332890581467927654951892232974295907810761759791621361475853390829915126426125723806379483924922136477948183367884328953498748594312851391697493274692424663926448005503210578219693098224593898397938372049885520809360969368516115198019666347014600014004454381505737919894318387749071678622555883190854288891556708074829600111313127163010530767731191803897849278016207927668214088214154243570189608480351222077192263271117278083922076919809307750780843949112160260486987477322115102821510126891321526077062145086235519785529991506781857073622435610928888409689622959554382368690411954081486753774929689424172882211477907318691158459287419381019280238613829458596419962366718582487855683486215923305936234478038131451963818220910926115300290592998056034379558423825959590651121342094979326619057252717844264168038370640753199346200129633947018543976871620667954592238313205536942633349548173125735470633996881496870180497798067325942947019575790330800530956092391582413484057797534838604213204819434917066280309405611231434590728351398859713092904952812496954771748137775183020472117884731190955424318466563540290708155888298000608581195061852732063952144883997783789859738585443047898110225132837930434896190803154938161642728639378503662401076571649294273639861344211859619321077822964002146444045133254633242357882643241882407186707268800193156285162240559111600645540260699595588058365830828310196777936835934570452877775415678913981091318124248500515807695287246964847712072175131361623840546915032000743557252336500653507596775644348135384271731612273270962745515750417916419308052009271204967533311399659269969835675917017756989091115705248217905243143653525475039402349310046052586478797164970540008167208880027023154383836295961745839574994246697967015195038744966467656512105995341347441872941606083098580565902973426775479032580855896970156696092264720212833056727963193077182539299813463139057113199849906716384898582264266766595586694033281023862864386416750470277099207610505126351684070767651321089791053969220564980569533368878266119697159240839134845252279290261883939822554376970077485670000621253236842180486582713654118041723025084424817113883368473414776201654720100644086823856656375479985542699055995644276660743557405021418308284660225725615926818440999494303172189248120897141946821312903254944258232814468021894490123988030544549771026446998424327234553546445473937178772808043189916797638362245964401517251339864976081723069335853831314630522133153140212683068965282019937061958557422424065833083215630712799807051944723882831735493031307883478749891436498566536595419478954971230556161272118254744207519315609690207088095222459129635993434012458929676334388136539637253601495833234692395016684218845551767419429636137478397928924135165742742704722393367234929591006711247344795728856494687647651664341496744630197503466032704961561084511950460537690386166574245573910769743254324380925228877185698101636792314014034262447942601053423140780818796126872069745406700338299510397767210872559542153286136793824321280925482825196630266263595732330750235401585679501712110853644683016657683601824902508094340094469223619940393731666900263831146400457230827484571415177621615758352383291360018844438329656439031285316200929465675603189000124476264645648347884622066476155384489871499482521725573314003333648494659555734070981966051490775202844917891908235797241965959584288730165917585108224728517468767576862168965404434172145741022017359192275653699520873080613135134950707980885857615105072802428097546483714132196461027351029054491357433190807187989684932317616664245457870834216690767761625648007620872250115961876758176678710888959525645320582209758554958117339179518047971378881644137263579438674266784512310498320751496725692985056547411224259065122152626046236640558733587261259619257873939160168018095140595362095086702855628751895771992091648830185165131152232505231930659926648617054779264396150268352021543806196626926267281631597728627520946883201381636328602656201672103227792903528380291908681714759985072855974550732713277174540136138859298329442816654314009424919169989430681808695311881995344715586760773638861480915851148555954300763096295678062482582672442001006285430980767823878659317323599424486015728763415275087892339918927086753146751693925844785623137027614757083086530784697529532137914372440241370241936854414655180204738432795052252555541289030670012009574040080172415457496667285719995179439116476408057533670372374255553843669480105047034599154051870604373840959648169240370497069623195905679206785249453727539616371413190551467159148796476618697905669171233447979192922539579131055817012331759827798677417179722711394192195208922735428734668166732069511141250691869506404780181805286376225505201271943115216357374284180102084801508265416211882507403818808457302953302300161667537905009380518970588685495317213737756746712563443036745981918710624877382581876670848140572927628439660304467034452220696973746090450287640137899945768965473366878311600276646699372618661408443116655147504179088246527060275950034136759987656527184078682635474827549884829553202402757824408016002269860877248000880311964020633870192172930987459889682769565933696029081107485298622966234969187343738400860656421721724211592345291842746677867283148817030831007335241360929565669728101468558838889363882314221113042263428736754071418738679562613510839037355420765265393616566231535843060988861243440415261221803091136520805652961077731256109069821088832713731631042031615918822478188643370852882950206029751198888946324362847677584327022986222489767528899759108534002212566357469727186199889538325022545006159575404824337419579284505830270192088653553473259748494231644594320974655828307380276819770083615004645214371754540187675774107345814572932853362531576820641854905454606411266766920603185963837095990893422343655951280565072994206416253694830568727545525976855691757991807479334794721614419526875259407417044859703922289082548516136897132721089670976770398345875186614147245857668075809181707721976316474147386880211425541063084214488622125045269894535586156592425872980014912424472576351788633181233673368426272683398843493396075000826489243779778228425139540350695127047434294941559537304681278391703854305998734955448474140610810956530538032622419543673491556801394661519863306946434915975236098885565657733222860276922643878907738400533803971500148822691338798525433522537757798987316454671569815728020230169645661867947544700281612100270002491601879520463083558232667879698501102326473342234221014853048542637152809921285478684266140333424966695511037168523006301284756132430488335742773340425130065782378656591409373849874918964445135933817120410401873250557884502045079346446571069197688170332021768007242477626671491899468410817889366852775532806352742882857196788915322293015860745097585106536038595679381548141819995054342765078868948259394109782516532508710740272093744405839937312956848719673954400242066941856151461770251570601438889873997309387336153446274958223266905933128692616645106084749423633525689398536121504286194769349709314435647033214267047161405521000976188310532144419542063463268488028091842953362039450905713583151952004686329686650793274519789657743332165380542134847032848853399995659673391758507248466633488711495194411102644926493325143472572226868836427735617392963657423607445498239468447536988328442665435959727329463357415832108358474635109924982262459676636451652621897613981058151704448483745287316422360780321733625755721924311863297776388379243603524984558988678724513779580054290831284559799381729169798951638425094074025700957104936162664539963541095539897858603593067094137736580396034821586499399246213917632490172971241246796690461729203226154918545490594855868956093699884935807202384913137137857494766808118409143722551848766544438358488333408822584936533332174291107511305399907185907078244437915120962112103208559081695880659718110153855281941037275888907940627435831925367406378584513798298228430974849182874030952291664021722043569826721024837763766254368433137788745605863227793401582782035477857523324835268022101222896311966559816403734203437540329053381803677269612346902777159500217477096105135172823407809393885455428858849958004958687646919820806406831607247412357591747599493911640348992229546771541396414297627736274219134117672797151355856073211752914472162648834165748393079974247573852498298011724727834175914414949283688758927807130298148157923948995073275873029701184256409721107055689098441423213010884159095591651868897641064042027443094368787931772864675775715682141473447945202444827079437099505510938185535774337452331328404621765671832255796350303314316896921535060257324653200569479781120023397772795162206599302465502866815099954884215961908971965454550244713430339488875286223433066355117264173734546303036010134977086129862142751993299523939328694055949806041798807782424157503494022801111970797426140725156748181295795736716832273767472098539719283323876725973004552156169694008447337571639300807789928005388324686543377859118006141493057060322590919634102948998692961056106665371117953038194853422567344934045672215344537967794737560230671998013191317978198191624813362250120624406758328460480857072250493427276184619243209780406580812699493239678408426238372378582617255318319203822536844390412444735430704860045300301492517464574440726538076250398807864779507003808900827796127191747640093482740256096449261557031793541844973219010367234305675991396233634283861065042826575121811282960642182445966225989419593789749717605752607681744342882383820219396521371570067600256780249445761167759969797216881726453189202928824913909404468072257617418916484652705128401888429856392685234127379370289856175659477280605481930249431752160164248749041385668794293566230173069055057522477396547593453772634992919033180385863481596745288309074477404801950970536068885412342329538859999631668672992661963087023215175678483932214636760282238519215207073869908021682828162214114137617986336030519090279112663581927576350442307216594314319937229638524965266952896055909729009208691070403337817778775660851285201025882115389744759430112957893152061853433328932575948565892029381624464859905486118646424428719829969512897481272604916595666995624096317376895531200653478296220274928101052377353198513485961368206753870474878567499672520685651506881190926443274365899227763291522260430742379824472237344540818228855617047617065209189951882145094436431067157496260482301109735242618868483427087761857773292457845389638868769815620174861701387815731582996805463244634092341271849773244784008858570133380133256971283039012098553840652738496578143772811835057200506535965372990416248988321273895099903782326671787896030741485090260045503735408435002844874723709877327092876414055707114960556627980704749440228926781574134243022743772757280786789016951446224557414105968724657240534118750454851872353707805794395267444344206264640857190222493338509324611941459257211112288226717827109813959847779704734428248226092621514385718813429339943588550196026277733103036361852484008256453116705181201124843255954280928169359313119912758111928525434541741775381053674788044152388090196679148924128951059537543229127061478131627463146095086864712670752020291373027474530302141394580023536381104248168004321217782391255759802585258547432034793064599161326769512248651963223259966284953576198315201167126857821324922419949500700211923719483493299386116506925512502016178450831979616843898354815209680356400416748617312567868650574129883868806015576813640472457240436051553628658272710337713060403044766571416154972039711242327770811204459234082536441799511215512742018062194280496363525224391667689768999575544024593880354692608003981826750805807642570900067368768467890627765334701621239374147856229884559740549863579373151925375019161130800860196492520896495141619439734745900574555035998064540136596214568402320911215832030089657361422145474400148959748542699071846880009786515233560432852450085106952601584231212530111004607225151466193091759511559578287451963085868444758012604924824888957517201670938913653880927209551964453113548451247066723688715345817267139156673660252337151463529436737338162556642607379669996618369548605819639278177978356946633014388836903369751714673906443328253836705429463835791643206787321752523261999756982184166388222598249909835423127730240903790489945382564223116115293146387609225746784790507198179016147781915949900808368872745077786112291566263842023482872047343841807322361144664353465467827182267852840425772042250829488512419364032511177368151657658513530493060049868403144516018486664059119569141633099778282661640222376508503120893386068708140639457728751649112956916048682731805241365684904199255258782190000434367165955331301119881488068643037366777907340730699824611666545881702457850528209712095906919667813606256440639000172885483382082985565651409049934843277869969839973803433113593196592450956457741048922175841790605107654049247474081254101876703980728639696016561593982150370063506511638311334607203608716030660816509478572687292175404518450800482615194576102932566729296512617063167226000165892465712443411652751786946309001087030741752329848507151332060856105156367545092656363270030741665014197483396959037034431150315272407139673026124349620208124604707929171709343248565104950961469154158615759544112846470998805442812949657057352247046974401256829761112093522330347000657572000307015387281581114705314768170883685217756819945479820899796659955181231406566184001585706583672857842357367557623843368150559308561688889452479508985930406101390821320519699689067247820590256196820671547507627563567750777388354642504759365590296203972967428186660755146173044596181710436896608856058529294348203238478559163533480353773973078511675359206505770453894904166585880189031425396895439289377559675080821740985523350094461790191370914122247739666258538199181117380766019276574263207567929745012761687043900365763743513659562665784606893678578477602267454395966359519312698466152119318987477071084668207951838316510560279292315895742928308640107055489655034669638645695679854426514208818723056898354375136190821851787359159049054989579862822852527371891846810406619891179758445847535685529443113470459427992039415475848897510849815762021409017061879300761973135909122655797142168422029441492889706090593667770220531447966406399178837099643605545958571205173886580321205428344642537977253563070039686945744907464323581450761549743039598065916162803038117322177116891495562513738589003824150206479920597811268931825159273440029896844193346868518538824266404244969282669202876073455823300639108301359505055111911366925775117849010839222139926613857982396464040704758348740132622142971769530791673813804796790451713772768115262463644971065971342352497738477390085998015481020327485896963597736622271665707759506777613798123874193855669568352891027610338150682763136434966173494198316508590975881501023289181055890197922860927018485492217362121397319333137135572497349268345318018028035202189782582579818238679475316973376502952539456916795785025402917598031310035042886028020777033517262200376963285112755497274773181814558316867260322199694286221415600347340879781129853016646431264164252406774683090292277251272168341892831637641465052361859848335822843280197588366920319895650448374132458663418494706308717577117432167790548466101488000900561611456463792873916532587956704422350419953235236267367027189685102552356751599650859251413943391482624269301618086582632390216006035146555915205279740017897779157448620660119081822618918439123550602857809788283790311220634323687181962964395201858153655215363611977658714418175437853082069786949069598310074615883431773954504830997573226178961600893439765530989849417936822858291677052202063749907713653347743030852430108711982028404356308179956018795480381596111178249591643537814436380087359825244578027705341592229641478816301669163931248757705301505956969629740073342603483813724798882442863958526441291630539248501971540589129184522064087877079536295631861453578164239342833242561333043699374530624021893364707241121238111187014016151286256853980362275486042167006033206417540389484509662755160318967303904742794816141715890774352996737158700818972515246540343263723107175352482650628571126333133316202270847333664289565650706077023411976945422355146041010266585415017274096204027862190513286211269286357501108632950008208608749237402752997470250720052662590387473998551242048682684432323019284434570528735822305321254197995503395586667918528820082387637869310040368719145698934757826299302915512457563682295621505542999822772097135716576089501690470546000216112093593520187807247163396341214755645485208116757041555003530473119128507471810044355346991351088667427663375490013521507620754078336120615510497869043586857080969336178601515743492854619366156044381513189349636081325475316211845431410570995845841388605694706854188491446529478713336376780061306944270881797297716701127722937479098643578668677036295763352703295866107805760127734082859996536322323900582862572210219569969758949866027100577048132418701723468944492254831232985157044975171688451865592731448730628033894293790628704177227719330470384298419035835886739188634163435455970592890284182446816603471055487724809298654388422252418667498899818645999253591498538837289451753588188936942957556152557753000571777703350381702667366231638259625062671361532910109442352189481369451973786499987810897183719922291188315382606627742498883007976222323366403395565597097853836943378848102073893543391207798553422039587963179405638093306915400624408644719108817246830798519441632176855584144802983389526666610512423090415095190427562078649308866451111125005422580691645539396212375554793246620174148372378681240791737035620117082241564996933153922809839901337805558398580100088138610513136978558118972191028798944205593811623652622151336411695794946774546303899817388361534859152153144605772618417271925585938048423978833337695573592098702699062105406982684255800024620580504396111422629983737697280857791425355076442880958032438654297374603229425512861995455404396120746006289060117374666390827085010108714091527373234096332224051001111985803215429473832054508588242608825799204168496366775089413586398831414947132259998583965046410528625248356568317516570200206790192656541522916874013616108053096351624357979863960424658994141314100170005096822860565826040092144360081699333394444323474305977817740092968641455042848976060600481884703249522601001720178109144455450366800925004090864020877615620998281914301823669771498060072712799791624369876038036156286491532072369818085574348946447108517128777644103416631887248135997169372834687580714744448960944259555616360314068946196225089227205403901290297285060951973515135367343438421512617238700665857329645579677212038878165252587206314238935392316244812366656071609981324271449952932075482048617841313356560189874257940662244825132677429082554237432179086754889463912021581071848086357680518767316767959725982459161271664558098219453509049175756314735449620911260901032780917083364083247810283382035899577325106408664642959328991598040494115535486357943726774142916918854326830926785755698506186542211013719438530844979725497988156004319977436697616365653420625039254043165646360244014688639752743410136419020802453546486903802542916476978077875304387150369530783195815766295944437025364910819642455022799652906601873485811250734722898827892452003514878491084776141799801964762282339143877680482237339388775096731324533096240520383320350270115045752240251048978919818460357818424312341450233472433906662133474613077454086157153075744598406490883905879709765638379462143972739599180729572772232484851521741809391094114592681231315243968631568072258366764375902646460515545959993088885916256275257802108479406867216650187348569546046139230828821869774921573487038841722442701260241951045871302018788844078625237994439817008075321320772135599473943919890380299649934572055004937820603064763815380092498731089815187731398146940044437028488297339578155406670660288621041547642620685930227428607085873571876462056181069901720751247033889131427846558714664328757422842972925475410035106071939245639676436579227518229437133722590629126371585238456298870305052255713265349941332642529656290350018831363476675465406528597250423785697569807822081520825930058451633468701890554648234949449238045189179117308140351632177212223696887555437690805113084679587722197539683158793322476540446525062379776667900718844566576953001131788384312165463340360597852479038790929822184649312443054591439021185091997583472845244031203783091289692488970049357510900853818244238866357113457987286044799034354376314139298659807218144775733139982342893054229653004991037513352466947037352150537215845407766526164907640518457451857408048748335457598395585055623249453666227980956744287003322976612682960859795266632994156656037586706214043519651577308754122098733756536121555211568691374483409000553435836153331399510095563064637468467913085425041746183982687759885062881497695251509172400129859518664304343203202488018435419697184249218718421776409376280120323095393393459288956214682543797050626037261109652950158256827564452451001680356881108326601085612727393490556219642993314708583735304007306222183900110105504931873515534915328868266286526970809901717750433796392045773554515452272680435674213105447906180319578999604907765382762278099467337915361974389280607175983672965977187835026190476938438536972304279836114483175001192746672388190385148740584751455432818556857714990984006346120830414822516599569065504330142247429821786375138029104507345936441876592962180374888357703948518053098465797864061768549410583396064323728396310949747682109806075274501149624692550984584621997233144698710413849019486540430065716373797107082985180833465799389934475766588317812272323344697501962828270925473036970978134617160804819425481959100776230162006868465854658587197424262051162701521377396894763397316597988775241625159025974319515414121391983013773893153681633231880446709305261650422204804218408589504199976664009446918556111032478010350760362151999947664737372389092494456008779624641720150058091512225881517335826157179655101849976537934624360425936741460939118045775203949616715040340223568021703052196003544117569413271105158545989791241289669376268712494555270189784568300976107487096353669485340303256976853550642107764335131737860585826715605571071765157512555530113375546217500812167292213126495356990822704819309662981027818581072984113441819478012269374850487500862312678115369006172012472055228352957409249483462136824164016098256436259675971773987970400946941186646770107970727499663424087435131724818118385817060870869774905375819349188083876297977631721871350630310252794603163005553169234329897931151726926020209776798358085046619197644745798189961229943200507049942378322847028223865179844930620136282141778691187554570232666790841414740842462394165286657887284710318642194746949889285894691606175716678569193299587018368877591654648256522891301703245598934702869230020818998620724974571749285940432288527311852837049119480334085500946139035628554709926248144576384500787245134439478788063268629615653417491567825492729266294044677208854108095998539990116240771987487465347692922915723969213146316227745660013267988601184743806672939997328493325439884760990452512923015477704750047127698979003160772591630276815758278946552269366876913629149275358948674505544264379445739670575369282108624294330488570634388248808764548245520569733980537355542402470648741950684247465592959777293418441309978193427513566775126425979564441333152099975731604574579918768923388488049859266115844489692257069256815072380279855854360745856115568058020868659406874503677561680337571372570873506024756053904398466538368379032625336604309329468772627740198788242117675428192008064250499168833156527546633957603737501552607525901621982910932582642080232220249230130836175017223011442742261275307655015047147453516910834263878908129350558099967377059953154584206938432922934244180450548220841491023408663577999808799773520485648929221879480080480609913599837266720007766781553387090043566538837635446239748007148012552993306130707844473088010065954675751345590776640624216136943758374514734312438104847400953161277281481088075489357995150326097857042385779208280250602059044314850013405894584981340552028129700861143701660501247708775618072181572362259235797947565753101335100002917754020314177145589466721143403385013888302751074860547710580373958752601176800572197472323436345892298116610000531156208298448303312683191977317646656992917580135996998831163199328846864546575518806840502292230288995499946509303589117570667524270968706872176020522589329747611896500572966321943226343553948200984470553681449018637363284558616114943485057992071385815238869391247586518835654715475793121382036515901706254190670947663514378163459896545758706373306169095028728663784763824469444624570802346503032367086008386529672495411374118962213722392747293339133326187399107420459364608787376159404213737183925541117567304936131556273406325481160841069195286943062924014334278830147722462708671021852071887921876945351785553177836676217007781808612331963096710003169485587109260322318145265597081747838627606816429152240179458675081662828152366478617487757387460053211753895429055336540179148115563928676337714040453732723164733271155633079213297679688138226740709730381142607350946955234132879035267955644432411061961406198473586686885991645630119802561813288117434446994691008307426656163903759129770242299051507318591612764294511683994317562449295762748878627170113621413470526799590162809357042055448340411593886487494826443194155943814578118222650276167136010015202435657217515655720145648207665223754475910691442144592776938833329534742614314511334139810044055089901756772639830496551850515342503131201071607094858975924261236700644837687080934085335530686186521769125364378806199591799439623146599696855927729588150265090170033898860584098828931075240024691108407815226121440859019415610052726234762785639217271334938123006805303289553000108191071185264391784013631341157568096218837271899665459659155024985933935368074347525902868829929834387496147124550599719081271470370796326413844984643145479472843711648422742841052809593328371125610250034018204492759219894146112824467005702854242955773813422952811568721872138297509468724524287230913737711186871617898417250853731747822706503757857037382882468262154096637641881481587743676015566611359161912383071842444120842800140039437265489724940578477067331076314297532842867042753491200327373453940098849278081405103971254551288516186511836432531818667257371669392332027779000619922067740621567283015089394387780815640861979449357605500767229753881566753366073438727808587338920562617890133363228440093487756986367254072812927275547294271810835508071314222174326922508746794735356182801137093432357815947629446739463709529144013052807761075758189458594111389315503030094990377745112217221810145710241490987021402055168235590817349185960675949009920730608713561274143604489063316043364747083424910401592998448797627888371125757701118872957064920293573324599039793473427904662593898644305530465268053249791683017240325244234674118388261844568426997507592885933279148675494550926657275510937750886063858824344701159778750678936662173638389286681688179196346803399059795536341332728656547029984747407580503946489389034208529047356610655344226743170521824916100599875852902220328457513134698685420853521799011456611502227186759015686615904433087138209324560728238144677649524739594361268385536457400315210020696216994889628566265120561893171964542479149902516662544218172850980437988634794362560980672569596913832954858323316161484657735414032448637216013943275677135012195717442044348520215864557886998871618292798872569058527703020941886818938818442205516066901953368543838148251577223831788747151663187586377941556450207050187610067296728962440190289418827808235804913551275340198823313025767726024033435795294563512891451270635980155353232669387926411636488190707176027877252568407906571508568580381764718560421463027368842410233192677897804959505272312934673105289001052343938439003408039227659357601785265158294720025862313818914922640133910448389788265084993643454902649904491905887860616904608538927993036200901284571717103507658479289225392035819509518986088579714052975728956572137302350977452605453129791699701172220902373364215112294217781807003129964971996790700612921231618183319998082429211282422777536318505423384817995286658391031942535097986121578238817057324945674333183995571479472677543553963223769766974122324272061031321610078781347118325232507170304626329412784933123954296000201098353881583107812630132047258169314590339394243124310514987491936268834654298645494354121685109673572608345613025827985421554815160783615191066181124358426140341367828036157231770231693650219424121734612351530544004817506851254513510055736866179795427643301931709121306386468788386481123989524917755504946166542465904030082868384933460705880807992216088492249311826224368822729454254007444374556387203394508182042055415873707999186851063659848152799002308423670650276207672309655893677385348828724347017435830528709768766498720566932668942608031255073188320975377464491423595851501203742869682206550382698939401712766370423868998716256053712581090786473528361335042013792072602994241355195903476395692194374518198161277757190289339671483733871117496120146725770044991900884283394535174204615141206890212459166609911496688597804767565687669844425614429009716036814201331557973252322741022242567868227865486212773499316257458000624846225043631236393924856936299149226658075138793792169232979105790220362777502037831425289895711383432562878157726366617779900190826729089284200787090941040178412662745094568385269042634381436030569439177595741582748983704350403765818459885053784683301168375553336406436491737693341007579789649055518469246607253688616661687956921981131585197202908827300657845309404905543917706092745262895520347300300922632620368572359191460966120461544977043577647118838867397282331500347407696271866204153809659328357668540888478112500162663861743103199259020472532512063220291255231552175626052954986234682059324769939374178751650746648774418478133253386041871731668792055111077905911057283217152057794943069698473221164381372379016804710155008710792772078882863769315249395174116876743896852230163629607705994805274288168761853801578866526430814468717741180537411259159788776590801295105865633438817736464086414087109689558548165697626743964878005301544095895059640982446725480096485509109301484293430091000624941259408092150962029320437343690616866232621132062745958788781721316022785618296920637997926604947560213011273021032301630072217069139832066341895517033578798189585450173962536807821894887138955917974646708011345594133767158568038672872471991595391242315027305603456030663579616423260621940160243052119535172186828944706617380072546791738003748698986388126091464718298175761469362878014244128347078687347970949579227838150844554046937534506497544912830998389717602336594058126821600554215305015703981197736179782521613042392110515648658755640568355026102180525479647311846032434400375275685344947465006771751510548453021399900957419098894412279782750974509886839900089614171339083953886768320130209526460436055574435914014767531548658544608752922842758039744747453189388393496852440552688597889770826659542151536324510123940881036677832558487320972958426345975112528573812706337442828172859331781764363084807713287226614563916148309578882729510030735243896600893388478278572985335442232465474988086098375978656104417264719051109293522912435613390609145561725772962625986271387852515821747910840423719929794632609812518356169912895678596049223017309464720782717877727509790824435528402316641799925714459193689881708529116731095851823773220515090016672903765995333599290081102378631057349707382403525711344907880388126054069750248974591932895069310741742644086205207855155819551920228998870831368620967765142325517188615403752117703294714444860025456760441400285204810287711553135184564979183285797412985336884024054601976606552006155847635175823859212558293808811584704634376249767875395071112321848238986200949309384169974909347500642877266926479981003565948296087946994715709420010213057511977960961806764735622040686923588207584532111194059118234470191117299788178816028344906288186477107737637389608448683226283346627523501222671460096666719837060646220186372044732011044989978999969874356170228776914993436528488174337980544481244102286509682777424494259674210212743577505088740292103358040254482347673679219205188598298947477548417102575453093716033761182315525662464368678801492246139122042534474112433802317978474545223038636334899706340822470657731040044540917116028960059058277598480806736244216492033551672838254125763403041728345094154710800542490135165638528997230536757414316789454228123112888911032426776607908886596504294150675271017599733731651836629587853724653645268383982467921658838659156523583038659103499158809298014247448409204832190604312036606034114078914501136093085360862339555115258578478186986645231376267566514949845699492343207888952655817806012671718476046705080151299978043950032111241937884450908804042691467530278327914573821585357112039713299691100144730041139457444824171869221850574022620195658658863035676392664230050886569939075912368608930390342905655148406470424989787803788466088815769583573703975153285994624318823937122274804682305449694550923943610070462727775507293739988838471498114192256619711577298735344816586175277219497944794466377509815590690131323622147555696223876719411834490763067682355811816146613858371800721601468094857438570807754190167067388539999190808114111526719141681088874226012991433320842665775458514919442244764817602987189840981544626758077117241165270952780314478720255565380773738948624644929537173003339101974717022964101752558173816342915812504894539813352716841058674699396122481921502073270118982324097860818746651074908547783059635516106305577849948658455682217362487923001526311016995975163465336918175472286810536846676676694486856352615106879747313316324798021586160200011019260124790271223846897532745139523732157112869901987970503228080252541644641523385579125454452970543011762455682825517069548630746647872297520276902398179638682357131097420260144616149755576143825971413447694971628546197458683255855845924391355921019212788472642512369844595401651128793285763665963370785581180720090751995350475018938920199413171526045854954135752290747573859288532146472151958906524901396121257029850300750812655635354880346228451104962779666242617518719801800338586976569820089653879802534768381183307186973007321756591526232496065761438116487790719729563567432323363361084091556223671914269928251316953866691385571459088923161484527432725267804720022411113797375204151821380667160485100032275306679943354333404099412842905083764762798409930093979283968551183546080869076976433206427611439900522115432495122982454364260132448885140356825665521759056503776742350134700854109389020883364531676556469194582144753463975794309466292768820332182562339148421145587745309543901386308256110605522303090041487472118350661097522721047203470021161765653238941480369191769754187392657119826847780282902602849417168150420165285763377658682816952131212222159006317569426564070449189822621304793071383843199927915017876489201133316651506070907262345369967754477839004923283540503550528338337514613428926948760418536190029230379437900863772831226689867663288774497491226381491362851435653358703535858739293175069951322653803439513433794598419613006618840348363029135455005751934208924528898637206786928790626231208984148282400554605196082552686346547938825117019604036469771217111010789849573894174631380291925447968743301174705570445058994629592510133840815640365417012621297230763394290075561853656406893570052461435693309241417757848629343608359432217384656848961363404472690362177088558061319661941542756537347146878772557368134159885745529540558863955395358841884091534020912092768725865263932581077857575950409554924085991762895376524746703547634129513497111270327676329833378029172614279579897565525612459507373209051310865103953426773317203145408768203957802948624668694581045875300424922767319480616941518767963975639386303241963701934183820520353071890783832400277775333328031610111384439679364885504713148227819733280354348465746817781557738422108774657903126434276016064877210046089125035032381615740791046039322494824556042728686388263901439594795597660051632024421018376000603705762843693909943870727774502838602691656854659226892399805834405884224354365602314480094321542110196428257370831183405933669399928757673940008233642913273176447625519517534316790868383235377122753151744902576960533355474019735415550889150469867484393174720277722578816277078977748669880157395216350146951773201841432684899548032236324792638093856844965487772967763161344518696689196130833597118425595196438996720905787239819487846539149131770479234593897337278859605804872464889875198095823903733690741834806217099468684856654627477060906438900190163049996225153971589720779442319925521669688704414852938127738755431864121204939377390286443589574265130947580048323241641954580528494107002427814314116282753142955876077538248425119207443011034047526495226043369834655901733802406535468607408317369883353493612459003695456943706101850745593655203415558693455377425528444591748378021695410965605902504853778632963052419492615899412055614091100542131628213157226465199116215320023734023763824386697144226792926666843146569494688357404973603729478913432694157023495977284280999147370038625551921450335493132844024400405951303645151244814919666341085905053311380501302175693371066710868505278947729550774402208185160984609662827145027401275248954545731540043693645963587741869344549828153648993567821290977960324966416707893539752731674174696522547881138244438525601680138488909532630249396936872532275968044977299899827391787521670746099583963098623447716394504173469507164595196308297267920818411571706508170812290999191621237688629278680468384372774806001105427374443647097808403082050462065772840951530307583156188871255251844284494367852461691839954853502050876720276429492707587363072548314686070185516002319578499612799391281325505534576584949312939130574773865085536527754765479424272615564517699615921439328119664016341268856626693868652211494236524462422298921573187807347878109046140504207083272205238889867438216570088729563216274973904082714561369532850356236460186893870442634396509840064851341132270083100685637740422958565793102835781173829504320848814510883598817575708258468419248319097619512921554066411912120710139264323781643780242414355685337041639537869645919697699478191313968726671385763465681555598625919017290188789602937786118318903941961132269126412533337268925208930384632913882093968309866948559732384462812040618970029212096259042875947497635603483702390713066495292506380969029444499102786093158484392045590951975380294439940065971866011279522781348372870856333803912592530650368160139610928428877211494789843599557451187551025415715858986663009214377647624793115325799179656951427145903537946068806559763284154855800655568383720578461957570313162427534125673641575020284944564726644347453631839493803966969148461154915836630917674459606044242967442031964366505142411326993129668414224992764191751144769549712624872396055651547713281133750692275041628612661891570081549847327854332557285268438570904355909730003077123383341284341145933819304580995052523451967879704791324744127144347474712979332109386576177901690794211325911687333153082655738637411151297884168083291321499786840398009157165820046973746613286290228995618222756150430961214724468629870193269459236441451452837230651909309608630062248135474219578436193720103658101866631929018914968882439066733164984476852627225841097882037383107549922356207759305312794510560346222320828751555580937882036861663334337559801149941232910870191985273238484447842567017041779195459930601883487233776698290412737451076166398609410027437288760887169383130250993253875792739220861442502881385015293135062115227510407587974002254266072915093387771347017620171490898224415878609529648471898417516591164207124275886141828270339493582852255001055353257353410681416836985124738026553694189524171632042212098162070237499008370343864720261232575791198228247607059426325445743775368000526167187293104805035661554702133134268488982246796431345195914952562265946045716560254380537306003553012294739776818549501251211533067214269380070469276591523096966031496617634076560515441045737617196310932612923263503668486780782826183295572382916343587206941145280545678757348854175707174605701013662988971343042215502913450594841004533372388138767045589958807096927466653863949178307491658030065636284519212301091791526991225772117526166280934752572791776055660782844751719012651554665124922913181256343703821344787222602170301189362204518106276551618104531686015630525011235963184268606550845546296287695660023076194252348237322642308531623216586267679146949114206545573056539479985608535369336525057648846579080376296223076570422683201086493291785251000416582339913687699992921384647130156785564420309991022429236100305798087024394195513398924686302669537077938747016088125219573633256703747890073885529959985849635846653272717383091852929177346985055204245180164327456683850245349357781067404363537931038059696564017694524478581639653218970677940507321365070875028184862767213233345449223394617499902335330950244882886197444423760452126908581906770766501191769269714232740061274015178369705591092602598266297396271463901195209157398020576732443821977986064601512544753903320195177502422347510870113424484271638393571149733359657519331212053239446052347727654009998635661310203134632034452089600768022635195257134828526695509872880510598353280524832998917917852832144800173021130377610056162766458164070206871821312692517396185129851233983712068289510053808613793500481005561005258107757861905970779493152267853742221326558302642025694290601637368002338762123882501982307120170473407677107793890540248385765527182406857444532379420678919887045976617851992045257744747265022622718118562405972331185619202672157520125192540671656263106297917791473573473042888799193657054678032888780783807047497479115075828088277339910733080080467435349535909698417547768899387041291463324135760183145993587856423107182184005878300671891711839460221001071199647536649060240535055532786474362238786526237239692431927328768088530454262435256229004729466286318067589116997905489858631229571372960166641230017990463521309159105879290980521615594385577337151999224746332038314562710409702318584584267972039492711950291156767745517164395712371460194891817380741235931489007988793676732328268853005721726080770869403291677686763872897814252109232456372420002705443781502674901928962991027854227312126699412293359769291901259462088582024399126987908412637867645599809579819762323111062608357664258189426243416322638726725934643698142676402074466224701445583268344105824832138135230207972093058235278268864380883619502754699224210685475825338846003020740412771394591232099378488887014610311048898249810033271994318821253128780706514869405479552451711345956941665642663235547266608415969378260608650986839779063740170061220024700187076733762721265665558365338025157920884342086663010461773597118037567940079973782041560453113388614497741289585770070277956639086427525461057695628225584444408508445174010662444804968533799201136219775427250603074566427928719829032935759533391951936687817383320402641226732951259867045776689448161086436530770141375851537968049044181452880758657012469729248853445627045938053429573013565407202417673897115923470657982007856349014394941609480703219791752659655494883599440866474109754081043464638715709883587420535849152532326274485880779073483513553440118932323719559372901776428611861470867138030166668326506230034610736242823918519618063835686625990632598152484607932414573429201292698360230421670580109933940027471105016310399729928491592266389435533079121631549069116364342796365514514270561126156517839016491115655405850440382304123235347361678720035794936955036038920350224017606406315823201729967625205664613687696880262824733332956621605383187707735960998415921458629698812318268365444372854402049358431411042034235826767397165075948255816904280894200752166371048378757577387790542411396323260090001248982034934354657632564798866078136478489800987011180132428910387245812712788916120452706896337484720549347877259998753968991339029702153045011376162998851521121641635258046753559999172366549873018873038687981352715085814803851784420905035977150627728418820432355666018667185231112850746792935981360976304704734843450921822585534723606638064582482476789046631201932626207192333098498185165896700250569444924766200816570339420707757562287265606711275694955466945191974021427308173788522828153527140102510561486769773439938407216269492227810995192088620127462174105398392227844527801624281627603782165854886325281986760808936114210734687184561799565418682507090784955385657520020565426752273000655316184132732132001936543769261651197991367899494891359848213701567317890215186537776715170483001186738308515092067003669646289601590922192454831853404608366509314712404927883861812719252657113170527734142592616620842832939600452082342735835193248572822927741018595468272831096149994049710941134137110615588643910664020405291276603352483354240727847454805131250898819373016766533812219572378237015606752443424123159167665730208447692987155807404019237336670643265588481197205099805787216550452739533123339883344979762448751790152132454610267037784316467036197965590052941786408206883334469445624616861374304317019852029681220899727164202652537375889913594336034365621537670450154418044107078835284384187481664853484711434013814687802104956985307134242286987168573394743256476005885946883075640878500063745987332442676151782434395297285772613542897092629354628649330731847654274620946046924598481963065284064017450905213696550473759986776922306451611310111921359064937981708054667888792401645212581643526455558551554151859292321536103708259635700954686631525633800098069721878348859982263796670417844394002733549991123311054435899598758831990773787670334103360032818289986221263289717604123809365862577457949486599118509896556344852843051094402982494999879281514575708434569877951675448704414100416192893340898910543582618565791322137781307869025697942285790321508457791311990802643524437203857400856735556267609853185221265731684907617779898504126936587062911869678435064674768912162637410309454194424900914629912197561789448085621087060534064500735127197750662202963700520273591813306196324090824996101412668332858569172880782564091052497430388343393406802527839322361854756400827816404805363030546529323032723579077134875208766904031758118728398242645054592246826697635912580819671062359488302338229610308539982225480531265649792095783320974318452530893097370192630916402441789666186509490130865564243507584883343172200540858496347828133651530208025930268185130538117391779365034311835586587240178153306097124954935849838334659632941786388329243482248700396547334112287056890112407619963016213252441931080080323416660262049477739234011842040624113387712422853777578832007341686157844533142881642506389821945498757747962618145912895537375451129738035058300201534316228213006457091753562564211335260610212611214395095702338722134416028160372673931457516070244209466815184739860283572523482811230361530103804562693322469772911208912769328369656976235792461187614468834813865189478506961623290385588033970760752144047849211301746736258800251021611174046985259584830771305136813549525657065942526359231054348215277582718777919967545019923050311062162855701399992993797819718282221034567887176192546155796136656971198702173691340863043798536469582566043219183352023550660149344521345006741014211111224740212597571713492924724161328787955827452335408823337310113413276999861313430845287999594613716640154399318420183441430808339806026965578964545030121943253035274807780288429182281699754276553682046162818513459377519633616020965420984238467810228932050687721504749637067719368045962027386075655839105983914093725783657242999521332962673529040177751130501672506765597390249314676389987440168741122535258334548737438106658263354378623789136427881914204729454790483722436774029288989949751570085455382918659811157809524922722020035993877715746432508485998455307213146463959209002300658589227729496341459702812789531129102298887239600441205590315725349667224037371285982715606653948592986363592070714926396777871692881578620824872384915780086878769405783303811488783161619739776388625813335399191193873177079512928381029388741564621812954506456636920251588866133216194143578923486216245878683158532744277656264434251625740243465245694182672407967608937380746832356427166189030872030209989304354234956077646960714482967107938816245488429068152689677913349904578596891652073534658415295631749242336462254276770908414881199085623714795094672322328134843185090546952024670009779866752915781165050793308523853712646991403040451717874695125388597671054442958869109368514537512663301450131950906017817229800433947455228784177297164663913202517582617438959312943938685332884484845586834661966867024697799828207573171425822001535639448712295458341349379319721134676243974702491773795329605629348440702779253917073822618543664190500613030603656666691369739413354377719132046295669977856845718695112651860997165611972582069912593386407769586534192454963576030235686612955953640918015884839639647316138068488292885036951891059399857295974622634329268981588988519210268561262406398046787359088376377963063840756476633844650957463948543669468174605659881455611768571427232646661248335239240699926778530484523064897145751220461179313440189084264405745599742168231237528994410939609674662901291582389734600368604864419086381673602610346113299875265597875709983797841242562542578881303086234621616297313034105996538416681520435912982767527259203807578032739723490928162980286921746172487925768524378780817790412273738877792311355750918886386120775475115807422755754298569165355445879283212586960817569582613103350481178741563437678183379762810803928103021793966531336343661732349239323070860522569083393555205123123614242130484017682903122345473531724444485045587370317855445450532521626234371405036294401949373068578480558435882241683255243350488305388103248013627210066486468099724784585793947170095944494560758659898229481261468059577914201420485001640129308819222063432187382555913401398393909141245377179598771851874523443955421754957262756153355153762899441739026505606557637487601421256921729863022094853581396615079454812695855481231542820283018545264306384047331721544370325841146386690484239007881698526258817755720309270790942613704797807907581387610838369963359428917519137330527429048380238265655394056993247661046520330771424835362351215463006686784491827223982276262956401701534182492094769399130074185766454633427085168362717461491239862916666517604240410371222359321020814936883942771170186244904816030174832814193651710697967461558375529183082022555619438156052306958600003065579939501789029335433915410630565210027802059313602765433140157991984354163369396440143262538973456899854080894258015592975207519949660761148455608381023776934383299915816283414193422577759559794529432509901029693250445869714064845726290487346170500836526796357252682081633108670293732711674068833538710441032527858367007283348851084547372387395949003305911221617893644280286020062493496419635510786289037785176025536891604669503871649759741134549392177500079122783813547283672553660965672688537376125240014007947466837310678802747820365500430999171538732051536021714318327863612011676267973200931084383289288980341231046143267242291464361816816803563647439130859665641462646218982604111849668932225490047385695030504640139498346072800253388741095024566462880590328317692103076061969179110908443652143399719713133798228830529490802276686816904761652982080515557708606117885084159543129255685334437506094448937360386551959556432992197440031727738972675148010843835651857854434984177442537147965765858337116640724028970482215724915972145893781088921171303409531057240858588789724876153128294178772659880191326646241422272870172224945437941002834780224071122974188469958945157310290447036772808732463066951664209454992969564196728901798951623265260710598345863265267720171437012436200521758397932765172738698181614561298090179166258099803633050535294231078846735732775833620158437150230578175294050629609301085777709533963253157308562156760557456137649357357016947964493527119603825719777402037511887624258155991441384582421168278164666605872367288933091607101820894617156333824596390542173374882944595379624805714689777723282163946812965549605559480355714462747724788706837630774645948686593758896980215427516597822193678298827909600979762005793181236366124447643459762426150738084934483499370328473438517870702835466357230882831005373360037727331449056248219599495676871700304015637309134121710246149088720184893531072705719235187996522401282725084392039991195682233795540770058748882632442393282909698339096317320512087575525698062173218882866935096335163983215938448290726351712112984734355558478257729303848291324611552807538534999495059261551007622997838767454724382589785999813780322360729030273737705980974757618491070022994964851562521334608342351785759091077564465493061854879190934142758282225758058840461646660031107240353107292936250899362207355239443425013333977032200313885028494212149138139881173309302375138437807758133000089659190085718884182134166057440780876197619118306404893818787964805462592557167989803488789479594918560119168328541571612990733323213092342269565498194854229400669925586274455883443644344238016383891883131626586496305068835967459651839285167020150078230055154405345871557504697082067134878484540522923566132189528639976755125737846477541908382553651180888172887140463866551867149889018491700660263489543361727899981111071925446264886529639234912650462098436631704175158804571148523477054624840230421742825028353515183112718403046035536754894129962805563751455072778278518329566073036610039970564865339212691118993540062219515718591882820671696986162268373784696666159259479576219955621151604533910586268832023979582931070164209214594165661818902565519975991775777394230398739139650435169978094695989144557202468094244942140666749032797899230729306701417765117719216757980463950559820922222347575611027189288560331457381652164497065442715065624931272892906997017007428066880464006322778002469528597314774274028110890710218930375986963413772572028360596876203308897549161312267208009862529422052429912378467050156105534284141881405865966042026008363277342243269405892781809279362557308333710254359562677207856053040793686263883198850324887149838618573300488567176887052842804802108509555932259967184566492061752780187554477605945905033365297966935666341853704399435496268143075835538409870457262202521846780941119189348077119814829747951278490068541894669590842613733361241941798844566534091993220326281533481349016934664732844418281422262179166508574039211668830025960552101894670833338446962637886622970828091032373510827856022220221340709866565392214472006108430100018932537155399077144880078836637632850435533012416671252413887916529818100711156984133320584019180547880869655771183445957411085686776394987353706994968288968573594805503731964474847096294988652785566159535961901062867125051047731642234376770370473282981413616631603862935727016118728555402592091713714828045056846977495814629098978687190851363476028056701615512276201131939382572856912058842528445416406542080908929808515384641786442968257294613552386930545850736448903021126813096999553967033913778431782812153968847517319911875158032265600422566021620344826535255182185455181651691491648553507009814607439162854672342221471965697756726865226981214437021030756028378310390019311624719553302669961144459254555465769877198550493642469449203569962529658758421835026477851168229063889003452840986742321719833175273613619233300092422241667352003564921673259000729784742780460174567059836770308076227613735774857560802258926377863061408550634164177275737515946772020924866568879734971863770800697444708196569594302769217339698917463343062718450649791349765019730408473494865363584965616680034866177004139673737758311423551712809610032293396211470822978000718429509106873862193550718962640432544528734867423386843313540341965335661410041816798187491442864197312955378338975601900312061034922806108611254679970902679529006150594969393151506132828627301491717914391983226190214131974634248740069842825692409419815092972825410443713507462818538581530225911711913033097468653447963988659415281146380848094174858183167975587657105469065123579870314569321838939064028146370158700972900391826280583970515194722984724252933388079292607288421876679015714770868356584259885355539491053540000495157147920011348511071178376213868662810935870069067371970427160054899409521394211877488440981173712745086931059506073561393331789016317769403347701517334357053711486046700045700633773490784754875205425242581455807073370698511647985512781840017400462792575034731799444068981339198648416134129825168671091274566324660670317101749655028206038452185082733771507171560484423592584499100584220130884479826252166761532552411834767963455947933213883830252912448964085414370921607003456926776663129806167448851466959187636027464321446778193394910701751963524137071614908996946193159844841210051284623884864040774212964569217085656257695043481686888687709387575869927293268888894301060511039481912639396929122676363859717898950792918651435151260340720955462433437579031148959870452389639666817419689833215881621671333710103926781159660187756439340444382468214330967392919044210480342001901157030176631737097780637466604754406343021718675503240766438969001851790335889757818233563483302092390842607870116999587108929193317476591670116550902772725535473265756266229542698665963952400802861413774525731150363875051266423368029288731301234689729818111138063641471739111812303831211843925623492385072444541242581300324264678619994358534737109463377089715827437432881458846363421822148145521716955442259296510900002490284200736097796749574389085741928760293543827112193604025815506007458752943139477206766334819088385952190370328087478031560249043297584756326103359703426315136084849547445874738131912834145031022310148473331406339167311487047413677163139345203207026282082997139687132538049502159887522391704528239311564233323651773044011415985768911802970698271621701930966062469086060960024092964982413038582629565384570449697167748913900462881137467944992945219446241823709679782013061135367939856123953400183133170264053110761902784046001249592323872615717642955212129491633382949057330350660876444020442665725948902956572892560615627437102094982264234703898584534870351277552232218178108047246967782432603608210962989209665163816051732139315724889682391230499709933308236976118832909242251108512329864934478559926938196198477761966023251909323806287461928815931157077668214118792134957689073083598220845096717674796142334733027728170812759349015540646816048902478610546552050831759438298212301041686897251321467265444202737988162407688092141107628105385250073595273259808600080221805845011090408774903616366286767577307957659263469996998638100325324504860063444573407918314820822963913944941362839542379732871781735323863060084537753508019538845291216640671127817771758048287296926141751945968099176185632822870922925560688370563352599562683200315708847255089933205684025849129376704271886544390838920845829362391976172061571113095268191817025969706564939905043170242464999424253888506228524548873732961392764308386527069829267653819603050212925980557068543466179131401101226631318522826746742210962007578223804073313874644501965543581361986320535513929879855117574055104202457977343046218330762988216285593380636008835025494718961374550208117096274954036881276539941437613414553260559420366536350111068265227941735073041368324999099280879816306794663307652374961685633501105961901470078195508314305782001343615486932232187713081743092051846807877334119610977654312469118039683150431449459991207758960256504859045389056095144137941372898658010659095712132369062711418546709591169804566888892300264783452961954976906645612000828504881190651870674415723960781963842239271793892044435693013370627827195235145955558889002012333318063850255879346546240338037200728542390155286236976776281979710138214799334419885545258120172548142045621361673062639444241657117599648081338382986734440885783876681882685434416399740652874189376013153560394780261911354454537406522191243049557392469801318748196387484939026163069707825886454149987331127623234944891470842951942010830262545705097663427092108836233333820430885706431317561812656150833680734236270727327784052342328311629194977293107781646605594720194692042405266358671689690283905204058216682698507962293745929794717627026493641083284085419178281328410010479317688830188483681084312412720561823241047778255225669679756158716869637400389329718882540013734470823953038055192584721650464723465690048903654869469774244072759547377580283112326945001398483382209135101529674607494948386805244317316193564642985367743521142978222979248527728549591560619861895620853583413888313513037765586551527562503853749129648581547116769260187366153538663867630152496374435525572128111216939450306609301904574996500878333130719464320052133477122229670005234270825394469184650929093398684135735275116115496945696220873915886429934706534641136023835774160072248172491416533482804956785836312594974132822155033266379054079717977558050037790089225222461648266297257661232141403900048496588436475837513968881048542027915887198935689335317201009526859206397086615473202099830895509844029449120287012478020490445946101185019764905706141745203411750035591953568678243899877812868728338676450294972005572830777342259913459815135521257887140569752199836198135847053525493474295161843386032295861602059011048485548456541994080727852996509794346411329514252071835322370409027597783973827098774994571935235421493756731837173515604398691846606735072801229389742510443519900119342347245666896566556866635834369447609523086248125326315373406326684227922310342312968696991510258984854508036571743797288632633914123116853518770808894189957602270864215672212707302144699122978929478701013605913007384647409880922678211002846369387125183681944709025337431178623406479197805822199828107587231891290311451437407742201302429082841746043327856479455103134590984797038539504233909216166948733499515301731113695970415468786678942939102192354294305177967174704988606078630545912351236178261513939188161169102912931718171018920660762087823344818860662844021518668966819432599848477977713654617824456110389070938049454600497143326040687419646482552553470913179766842418096434588416349192093553948254998619230033271541403310652005734270602911087757074156605800929808028545377336115606098216385720554135725239929407745014046607032025522348870432536967359105543057217794841835376351965511019166272598432908109965383055857369182031614304325491487960930861697346987831406049474449470294715766875230834296801879647483198677071687002244429501980972312628895230535768200881832046372066064122275358538871788889370086771548425668275349221746178905143868819918067490435502221957300446780971683101163641112096081424864506352398247342052319028809173706790636826261357589453231097914178429872431082628824521398488188025484556494824455483796210893232671529559891175362088892284747923297919913373758421795234136783329568649257314038689756242040754662489364495763260918662033962974272241072934775186518658147170785630306143248783502620212021215916597476074084164052281128057945397271567031963692093371886878192201548276634663494946521039770430273828713462795892780495122190129214754049874742914270358150487157635753288951643162528969663872111966570573336619188161870009256086554201439364184226480822732443990520086189740064869201217774749762437722605474785441307072133895289650759677315627483495669509279450242373740304500796875532986886886234810020478857216223306197628672163869956816648892801185623446714582536249023052991943108627588202957084370385802711011848977992451821418065527708014419913116964041679060265872553392064393807463429427855039798060340373164770944570162477905178571482683563397688425580361823522520114265702564176629947711436337045738195305805464058434522516814226558045884133260794364703720275782790831336568177843596015807244862903314192707842265487422844327455723456222685076317796867533723252206918588063740642854457297380826215967464998500620902396656676900289707002004956969037659342292866657571316193385461237599288988051063076205148727223869706322801832895052914207703959471724835148379959860696176146783895569579846207773850708344342295912670116336346312718339189347324349456994100904316820951784050556969894499525624954827158811570814592821474613868058098320587430828079385720986912802311392442024335339894921894818084067931951360288133280931702825428366738858867601538718931560307988201160525828246701650069610202716312123335424683423849840672454658447380408889979149992551004432264810681326174163061345363602383251526140144080642139033194803120774495101901594221914296585126498403800211359873264909417818434913440429998695889070560785230551641027762232981627226101650043767201420921153577344451169346407255512812379036354906665473235397259399974130413478685319697473658875156251079546088022707896529359874336646024962975529710377031361855342702731575128928869704707189827108349741640634799771584841599402710525886180415939922877791433590382889406448524369578130729748214331441676436006999156105334391631917966662859425209621177727902513868758822671290764296479419328776302299141828290801867708948929055535886713835247412135314147650298881198395325365776093613131333524270244499975699559114920940885763476181258907789175245640213359653280524608998511038681333344985475597928944972191541206279473645283654453251860879606634947135746740153852709873608678304130201849613223360197454315218267314375889343545624604078167785186760912786138696482591877422967345573650171147236052124803534474011308679998797830162819309493653487317328626541939354848976587704287038634891431066533773666054706973805513049613897406612145645745259640670689782308084896935642004837952339969926306561646119041635494764627547146403126895059506343840861635061804951569785494515620300777898653567002967664197857029237629210005595753189204411549631347908192726234041651221150545160084230660366018943244460863049271162050494345594790748607540710654496410542366408746098663320769324354220584860130757776669290043375456521295757670993472581975398653541867247216052810324051851704755550944715575577409577002359315034804902394751706636284612018676704356198946006054520674003789506605911557815681260608633005218456148456138993379959789657787826718548912450913487217760802413587215595689997238531297311244913892629404409984683036243755715640569045158524333018403158700303254757179568094182286923153667477263714116196142474760377761147049282274901215700242117140053833676270866537055571458923347987386009646056123598465666827381655056168091694985142530418276811840932713964580442530710868139736816477272420766044995011209820944035708405326492705585346297147741113543630862477606595339137190170511968214090236190916775996166681997036595177132700868307561302238594889627341663304002463665356120318672894685958230042802250945798585414132533202597133330358532552420620642684771666665918244699497955974038850604728727637279484426919836412171418910034995240845125621221437395415586974382674172605946818644328426188817832901716950683023495924163263354333096931975284061525312714325865808826824814975321250966797731881866999496771860957037016145689523025771092977359667662708266880819067415972341110263568332781072867671751179854097066591405884950656272623246855587250310572450612438483965392042385737588956337949352036530685211055799986313658922428064376462251193029426472030819865725966229999087907569734012626174976915319530862388698495762954017903228155904084113435168737563288327062501044182235816237407656392613301075684454889336823507481006101175977206729005208473867450020153982057760330813639182323801165116656517842143631642116877681199930382266966102015366325675834414222016953871231366476493432645657481211870567564615952576188348730611206667769136247345825954012533803069822718620277134326030021706547661774758472049675369900990465878440673890850202050513546507885123099949292290334317235576413697209743018315549805387370437177016171257239882943666448910474947506216371574824605812339042988748709761039661608585171175589861657238440026041830941749688024169176267667835542946460273703583105480755911050570265821961521484958743147018634268661053411693581851348883927122557700556142330332157202577994951085433479171470579896777786161625803760471804672954341281680422051072229493146728748354704501211772600681531932004658284501100844646622732787329925522691646400245631071559993601447268420200049788828741019839271103463214858769709433040231090407783943532659468169864088610971452777216114057786021452826957854498842010509066566956923036941289611464213169817108332496457464591718496757166274370302856483763113345484304867480903990977469618099596852315638529711043545828124166732295764091841875360346424430643731563778551236413294564666067706945925956466771976764918875288511781966338669513022173487606485367710207171596280196138513677251107594104688354153718294705555149195429822996449785701259699812787240806550482135656818402887820420361028153490361534123607957942925201955219866590014324521709611325969419260425495760218976206162831521897549883675473753723003238760210558704558208860207036682346027845501603538069707389888872684851595653697086701798643162769960908710692832737041249731353429139775562872963432046816028138827096017204111027329143085944383410597290558886690037391484358628650132927124807712962945384970011971358773254226142045261900982814825995123766430320722769655190839919589341966622033146017833733968068571676375700637476976840665100265998230011925059321255747001064096818282925141452749175946246773591974951481163327897880170671950177768164741706022016696375162790498855220571524667518916387597847888302067675027883339329862084539299554017719062844816196109933635127119244427358913880861912721855114404522260936590369566365894311512363255969149260935659753016231982893455878224752528245799348509246003777746769063923978712552927415824327527188037751570163768748698389812071244335660287911216236764074683201830526148993692201844336313041671163157324785587370298300449301632558474942207309182767711015550100774447587632263367998340080434579151099017804065318752554179829450146963837418211734774860187239362886323750345060212240194005760527628786034056918359836486757937033812349507820131861008262466882000588057891683409767096008212399860592000082174148390578381202988807170476664489645084290477382958977649946296219343030635225652144254594729818798523797039871240680607247947909197587343647731159552149445103752410782720483050031701887667511400807695786028653166477895272862467510508135821800375411626832290902467801660891079509764491781001030171779999798446707999163941417938767302960226522763026604599825706675754328805039374558595142945641777331180240494770659911969270879252881273846399900306786256583337115798113021418222137338463785618010288196072062048126579777821922140942850970332163512925734419344051575489851575634543245528946904097570896979038809234055470713384234536900871450768001137021162345441431758789635196703307475304865352095519674341113889606773400998205865855818451340927251711289643530533675979678052493234289710451140015821175973528040856515634800046640045924550322957325060520204549384214845290842616658754166069639234265276260068182074388470399396017576643621787824059919338975737416044338132488758010787553198328250460003326156543306340806404022999667153462708115886251476393066418941456391677017521599312428199235790723367122791842091963034278322648592332014057377085223504174532096713380343176912554412221589156689465099003610717000788795236108155540519872745840068159410842349046297495328869904731053691329785196816695388692091534741496174194724145503057154041269663044677081889349215096630623403665059342088167977817593588080542738204473698353984862981624227427865716534584409585489015714897389544874382796120398729453340162133303355935142910967210490265734294991721658079347638079534222986782326610552800809614854187287314806288889034168160188401813963860685168816713438578438138975229610946849462251856193167067844027190453342965005140137398693220180162638035830403566379953404777100956837586871598755751448861952582517277457771688777140730895206399735204491584581807077492686717234541598196676145985550599239935698274248401330508709711083306934422391622569241818252525650204176160494202987848367048793255341016314128523485896415475725361521385212480749614695649157325121022680710687127336561429271561700605771619974020494104744426486831477385588811884500053177540396384954748018799529910243222802624396760325312607794729629579481939566876808960538485275464951418626360009090048713396341622664524885732892237395556846455108704417368666082811343894146312954443179483339881931297719305377073350155138803352779677875214062618289063001113728807822996999225915789147010053609173904474057481387370015517991071529450284879421205095546769162340847130511369221244387511418928577708843231967184416330213014253447868422811628282737313665976386568306796833161203680687236894137597711162756759648018523551352762492982213425351470745873533968139874961015692569254978959276301369670806568442768953323726437157777000176367872571523699741698205707868521289658597140307319030112968573687489396790618566354366117691853140723915430230306628554627443744947908506491202610186148511839404611388922973978352948707964660589693590420659263125058985397581313644336394202762680576584838284613993485054155251357189698010105479753869745859920630942156823626660159873587337385609699087215192173320701862537962958138811645663522554930389993459176280226084817002515238860683567317303375733745714988460817323616367825821146060681310383650002682995909461831876422013676822529498386470849520497389366910679039051325649336354657685719037832753647601464970260427379539658114702883302918321791009918939874675450090084697112358699011381941539247730147029993768243101787330630287374598632863733925713641911055301886979485897114437328004600958920487219049186190177127342999024442365425452401628487529372105896610662898204564721632444823892453130400978672451985336902129423405749148726861474384212835450029072463201417958029681328180483872764149251611691371554949801117307330483310861897510548152715528270245741404670383066102880412934633118871054439456873453825221457492265279326375291662228902829459266484836278968622411255230169043360822649623714015308598539712489154879500449460343313382351679305492455882633533691184177725136373423187052853538309302534853673988766845247025796777396215782358445422567848074619063278562541438015339899342578744766872442964788071768116716401117806407772171527807792161112297213884742777894477696908148141721099773824382511612122863498591546033224156865178958372727522721602150639304502374930410055547965962787614196877071158817985300077219233854701724847815137966035166155366367982239391280492193575105780566734265490656013339322109110941330454404002922804823223998857025433134729677342557049224968942154016774057234054863641831967917170279522691287416820421177021246172534564523726572806996969846549399173210849608742254846277262784251393735893582492569406631439429920597484020530316522440532796881803808886937288687514854204597654078945306984903334796050960017103473078339406910446421706169252895008232989271942031264629536620317412827064495654723328954462190957767664251957718253654788754815621266139010870585193388982312567976262653429766791508924682216465532790667877423347841368612282701528962783877618910295704855326118281232324476756124201862299706065177760636715142768619441554706665469068714994668421510783860229788474664504785412742343652204918887794158847935582998713142164689998940494684513217338506900229564669134768975173199919320701278140241001817327516771400229745406535135552654850611849744000451795400125283766871742213099480418621480272123841367512117918868180318036603069725794217866216429829357390916191006774462821952953763195642325674880765526541812272626629859708254286567069075228810916169132989018025926854633319030040570085361743968444818031238494927482624629366399499957364751310405741093168147331615688285313462324468111255184323953945475156704130155628651276032436398581797119949768901668047059362205819690161505497955564254759030756752960253370872541333426466623037484040129715643693014796330701194214526369014799410089100467221094246953287386574372698468962697174184001732403707133077427246774457213463625599945970786996708434465646919069742363572080712980921477915357171070817030535181307057230541218538016050664935892035596413367551588972011206377273726562992487622826665063387079353425665062158256786408472482552952855869539906411595330813983023592176329176932782593714920516503054746600403011237575410990906612558833499662255963371332048292304433914622957475880501225479922444906933692917435917223163225072321169685109733729976876450127407816868360627121983584338276037997730711426713949525767525896633609756229029653012577145150555904474243413212942134179924880310267072404967767672438173112790914742146731868853908041325146636068458650344590293827815510616313144181799660619653749654194273024943520165050715194706292146771730711554144958481063408318366334122136363437489251143295418796417912475438565882416959975903684390754826667507230417303099613374660652350072475781728663347894562913461543259878199098427715262184663047969779195398197938172370826485757285786780597806938096675790398015392891270734189266367296362689510639660964143039073254572753334881224464063707070237663627267251008552792932532806260853593846855242163820062346539659793776724050690334778972945556616207894056053248617388719037677480281253576538730621305235013387251890628013737051498571520760532350862434506888831424032254480277376904704127423407030305688020389159033998566746252604177100835829835355824018699963115662896326747357690606241693475021912972306083276071834636778686768435480775714099158616316109918231323632630354327254094112670621271115893693845495109759955843398350258051728543069774522936112345022020619442330049435719056764573137809705122745865918841694981813228263301169701121414881509869043745007524825283299886082433057454630190378874970577654307340012510587524987551914110963375098822486291284661649326691063608210065192465219052339403934614656868596237122381569531875935092895419426981103881616329422948842247039040443806833511806574477531570410681996048632480428525133712313829792145958485963672747637723568485567750077821794528159113620792141461936447998028646072719860483419445983037095803513340622457959336559644213367843007067183771101261371835912345295428472054721686043815583821628077531362046423389122309080380263252911014287841718614902594924705530881498760991163340501756894737307354503475866794889681847996408517805177192036832304020746605807551004322866457287013223060011059595596087131689191247341511150657821813022100953873112304887608589508413942491922569319693572073363398508999959817618030743243702651028475294793364380235711206977670659957786731572492088401553516223663381514079554265505460337454629841555534877031656205718218139861231353042686316920312968461973911384325011341320294802771436097088700353547687457319780656854791889614236397572350320927724028112746609559122304686879882959975375204100821682725761885671997487526988696253937455961944508367801444075356334220265212907854781259815810249465761580575699595250010993770510274907308197420129095684296261263302959529288192819326798462287233960696523325102307233871646397338805936312161726736823686171717680031186555455392282210989754669855153187189884955737743634536118183821288597679581330730426012517628769462405115960125808761045030161882567801517111437264274159643865019130298307093228892933000871563792855016943964799704604510192597708049057625336922239669053062483068786535190346697251665470754071183741312657755555063535735945594014259396873203899829490469221887675158097256692648211027283762871483312265897734478937499793173668745445974536619982870507700306969041681102907336108418220407234640262378527241475195202477096204010887078588662482349589692788912254277874381086085925952721414622414889002421461310335787749576130675739923366558521148157601085672434984362260989151429988017438090531601377227725534702134334869794941671153417102906120231389633653085460808106692282364961776057487558722379693061094495998612063256895597657139340942950603933455138609631507314442686092337137763240743537994050744777258847493498514552969722201243443990715904575227667549078609678991254822097882299678478580617240882681739214736170087100165779463853777562496991514949748862719162263813633007666028373977761605241134403306184848533686161935311710660157738712397791052157016285312463625986506003418146172475416593483128115299931180187759865030451687001724321460347143711556806474947907281362114101037403053592583864325073095822812145186176873039379904161623413472280860811121137745566596045761664194423324889072091505241824060912284675493055302347678429467945394070500464297684978501935802652260322681329577447599477813436666629739984516190500152608219231463386492936586589835211283845323993330531993127043717901171609114092652654652887265102126460944415195249300080452755631662330856298411791363756712957282703170818851630466090621444920740403870192747354439228656300470782081541597600070764697770255379574971855089452395857950211591859936270182896113586167378259267404377390683752563252302714844447566326978577206921498751263189787036706492679860973363821468010476702846419900327926545753055615447868167242859306239616315758325005157998531431228080559404520929947022417113912194115515293062915605603468873836248597137150850211146571446629642633226136158402263211783080612402330471266817682395409598013228178943032022248318436874414312014173648970355283264322756397148044173151272577080716266150116615450561685307482818368851518220872493373379430327229681842674308065426810450025005191392163366163926207912732888553798273557168285844244855631254533521820243762594645177511654348275761981598099989831885261680999702062076546032537233809012189128319257222867784900464146147216035464035465426679125906898180987942258501845739981445646784429483520293345770226966897007539905394648015746607409965383328259294817508214515728546785423457335149370917214017201285776329652442738578312571649137703273872495634744064841341891183521291569080835916538066990854079389990335869958397893168277431817497225735652674099150124224476571190305253934990805332002778349303831735324367729337882161742957301205732884443078382658422831429682236377723381865031470896618603551281735593217534118094879157276395205435003101513884339270180071018561679452971774493983284931529314320463469854221085770863202933059655941149567099119111734143304726435188563743919698980198976041155585069150934509950485554636309883296147601926048085955092844072657491703658784792046100502534927685965714348471851796109497430546398720544494272378529904336868787637375052405096594897499256944478568791791089611738901264221690955124079467676063262447838240524320960840465166025692085464159196690730457430558185531833713764881362127348978503331526812705079879659821398794308024688250157217611523829361988086063090294516526360815067078992146692925813770888511849694751848587028143843807934976058582515808907293118728245672679472180234313546597441998807627895457860881664777275211078539346132521548994314597271187934916641638455539041421484896844305161533730762926856963377467710809801118654191883735303082795962441247510718257364180852533436691194377087109477843289774955190236962050675105023602599583878035716455436567821199652984982937464372795739728415485758860411958225080839761994244085018346774839552483014152083796969845646688803332294125632669889179722088961826155583818398203447065468364313419437669717746373404394262254539734520341652554784756867157454352307548923222226530542204304528450706916354813178065681683921380662512309835265113443298462758991680696805691236780903685709466061919319952001633074386631286618440251442837828631904303559135183390749499454959248929077330598439913875118499836472144052669186428759533813562421782413568690954380635116150011502297037939812394991052401089470087586040929321675424786980592795921124100208980060732902825242718639000844535819136814018710743256851072380236626683720297171943356223878074597542194868071772509630284339430062734387506073603879131794747913075505093584581150245263746417951875816633388137515890117978020926433715949316912157557424488176616866213929047739754460020485788604405162301115967567088005999920833470939043323160041305480760419076285187506703946546401184287221029103256953730555573537636925832677075239112948211003123743039492050119739566320651747644250637720869819823076676239229260713936664921606608127466633393994960706667939980243672436045609753730903323243682258428305723707882323871737541995860075325212918528076070097168025376689206828715457120202404286340540629975931272513490217832228733786964105207520104127955189194087456294290626441279224131619676303607448055250938694095346617656970004897778758360162434177683350277023882264969637371506375439733861887931666426487601143858588765765566961954169007474955138651007639444552243218878422641322119071694567154455013162993783597212634131139324629564281643936385775516894576071270084861478491235358920090690904582293882913602798445464041441088523327904691664673815883214800950898080873953008078599338640619239338643972537479898441380495689452792766385545054745349362344311029754675790803541731233791079488228892992092606602353514879586574969479420463749806827937532433586054735804288798781687235188674380307032305955764237465832197666661338565552428021628664435971367845893330713618106223837238075899479633404703798522843877795545023888088707692809045481057544746197957593697560258205075553072563383857629424882930647850422976041361107026268450243983409223729439411983688038565210884998243619897420161797228504722518276207839571565236516760316347878723539474580617405750365774764959683934549563593020444209529631172135473365792759158627368589895551257035265803616012155486840662115021811631729281733953715276633392807566850288277069613644144404041161976597582818163200982140386233140604754247617883181175081304230940233981724395108438189328996424270616429971958455711650454995867815623789502417447390757738392278746405107703480651101145158494404463683371874401905772449165285098315961106024154474086388638505706442937399540075446187764246641994231064640356071484511658954674203874188800355260665880603935499701914068669052108774898356858379705627189025685806788065210417408162509497823930991349740389920393870214061248319398347866912601839745152333214990906598783596160538682603466518668915538723160288391368013696152144658441329645430987147489513096643864403163200642751811061095535505168030471675403739003497679706803537511269602820981445927084228333157259895094712307502087096796028994589111522031409984928488292858735324161985971635822839693701094977500772196236715782061184254405640886859196615219000051972456918358499423500599756260462879704972224005479067705421008551577037059740230104044384654175565905037717961446067109344437520590521893369350688183414835365634582979251928503965606151124198552130306682307353841795058203324748615983536619076121632662279821135504500804110300273453342804642000220707594517026222621404095145633676397380253554514712334180279360716420855356366971593260789551417028022231256493770956333373102746449063723127295521821659932680881924297280297845250949280962291389094481993206217095188579255098900922097728864111851163541591102098114786410989810625368796794929884453747644842739549470844380366744284113815481472665685643822505153437921577258445450639277655907730051570519229116538049572831056740740202624606605478359383188380993959533747647721368956247143970620005798868819961781455022166499893379094916748602278905719729459541667403613629845554479745112450575843008650877344889724499091858356667425399518526916377139485861740398943315568057780692968893990797225238503426564416055369226137591662729768272803817357213223987650781101081460686095351977035381163300854746067628945575105474187115672737154007462733108079074936189488955531271865925614402974127798966574021906802179416537046337503428409533790304792289806633148130700760998320596658461308597797570724329652301391166111210662077385038665075112067649150319680586300890186952943983713485323513045593521989492078124700233547886739475040390124116455892159005243247982896390440872269676178527032297735628360609451379949926024958304025422239241196571821352331099751710278364835665188354530328259572184412096046794336815214471155651013921841464454257262756301671732542207175736141786706367949474174705016803248940238721742127204666032355321778034766491089942979131402356240439422902588713797259537109680848540235786932402858718320264035255234730384657305381425243900645456197799862370138866395775803871102354356370022482025043793319066408380358890769400400617288444326124752769827676482315027262868449659163065891353443365176293937989768609138179722266699521836413864282865285781703476582184322325799876343084156716105685081777297014078059881482076173671397071500180322610861418905976173360036270708674309776288854839318375528908911448360961803273869383857879288145692944357985687083041312182470709569227056708629995946007629971657212638088501736786660210250709112921659440035585783150000583114439739125123312108006934977341168186967665407612085158025688479698521697215013788819918486212912578787093421382501802278068258828021831581544823759026995006017256449732776513790555277000819700332170911015058554385275963677487597948542892985529432929344686470036626258622741111281680765231146602309601570966864265407436685687019772138532699019223395409164079056592498361478797574694511694885107912336085120474690209649940313329974946140372668166468542055422069943485162771687168268202090005227104371010462572917081886921652982757391939391265583258191249309322140891145166322232392456878753991780351552814615065022719204474978893797436160761722528943546444472547786919874008219021365246763723735470142166613248501656006076162570839500489493150137894548575568116917739378236917107952836040911907021018351381883793267654179074041423788944608373539307475607987109435914335900774627814504945349783579917102223792184993407951283580627990584237078881922270342969229264069807584361742946596676229588406065041394285567235942892105966206933271701888432751550805688934612936316346472140790181850035272158391232020184838280262137263494081168612270309696812207750831349109082532172428933701973852113119355890136732294539931306593321712229434623167619173772800849337896345256163912784352586554190935756987414113638384940864303510149822428203410349262393864061629871850205749946290605980000038917164623206680017567694786695414761712266125251870547661428184994187335170419564837189017095181222178859004099570178252467660499196598278757686588388206912472791315155803143678743043801598190566833253861478710245568029202648969505254297672033466806711692372893746549867877566637590971045890822169127769509035659970240621150380933639831355573252541101535625767838631769694883872011099082813070934470540673093088769277424744771331815145455327715430764344474353954641018398075750768846211500340647213306559645522599568187925136111580883282666717710605511517459418243160760530552051017270387833805067992744377021342125640881773893824567873961506955665323370212496528611623424179647944070093602670121027774670163786486319452209417699625689722624849177077182986146821953077384335177667442086037204740677217857872719149239780005543893850768136050983015686489080070692986170699693271106554212316313576295984650605445883273873129998750665951781730695400633793650221934571853574221282309830724281751751652471095262367291701205537816758602806699396608879813053259417145533553601811201562712293912589393408767301171198263309108112022827372487686100075603121170947692478021775923011437723296617703108711781906764748604946335195167781308559319550655203941277209124037827459011917148956542994521622268107071665750184916182754402604783787434100464515665638562214940065537867514068790636309331904065199322182038486928824005904040600497602763842250859803070121948155410777288730223352298461152847743070350599522927767065583951499607233044856411163917479378031375471990521867631051893734297892579299006675586148684416460962417966376536872699209117464400483079907425283492230749560585847823179041098811325751432155313242459142044228510331520292536094004392273262711041456178145933449241445057946719401827321247538305045945821731401548134665284907117261684372238780008760906802161591584636606360603259531485351336580952752540912245071281649601373534723957053365550290905949616035344184684363308117081923103134453688438818822286316370686370940250576067543500216963717839264417667250357025392156146589061872140927912928549677684033191716985436811415028622191800289953867338531392209512370887013770253910071320201823058378327087100615409187774259140981852808087791840827271181504750160294730488715850387945800737275590766167480245981416728996061760921529609969655401633196363717517641440409576773319084523505589180744919046866425943255834599999084263666877139759214679227462966437819233322585788022156692299395287200077979123435455297190861485798181624339520571749282298124229537601339085763254656199492287804840947882710254138652967581770248513468212790304306854576955749638360733051956288141179569224275848293942026251666816477467401500062606669406698311184784284021544154923645803668861943488769111859096460958320067661787451682779158269272643041330250551217023423750861125590807020438705137749434986349505037253939445334780316032365364470776317847435388036973566497974328573865301674817723390262329477780983375750380794373742625709459821525510521195577966517989941847266772997040774756628183868337366102593457741078401754687046040563885355613927166462931135719119292418212217488716876827489569983369165916625875449257684635033792716994921887648466332116542239913508230224771700098577612196771199859411810746674190515492997686982801863277223487726859818175097009522587143055215164538550915485284211619865025897886068055986025917614650468137164372888701450475633922655266839932497358845801512105143064333024569874353301284946188137846899850624348777105491834307195802487769297595262111929129294378462374904937030008924221345415966062689795884139426310881115255037493982137663791355496162077614102307352972362256610953032692533306598306933570389026470793376744809784055649859729571004116178127183942308558474915175226892584747072033348725209685121449868898530922751326350919154866212268425599444364547551311917914634050838665777512548365389048065211209531260192408682032476455493319723961462156780654011904890532487322223879367582013083290104047089179992144831202291605498495506123231119833419550004901633496685552076651593516124058488596757640575298696462579942561575719848705106643912238617290559649382924994111542703798194288918660787485291106791928396785800380238034667239316748115753587311559254130593039451891669431952648731879816894402546766277448065732915162342946688563401934615175805904577029171695257326959488628954165613216646387055165516289740748846650652531860490894549429776676368368114428756728461825386125695794906374419922112394748204676674806826401325967269175273038706943500544067774521791591540877685342417378729950941824724140916650958313097722116116097685259008593327897538580754774712921776607606386332842086854657928012501369660945276975741782393631604810483155758494597112376294425795934096678339236405723229951844844014867912641868050023215258054035863007403790280168243865770772338577727772327911445009930531441609484448914101311800892027167103040547715101318397205338867648250405456000942204443528209055402239745273110128467959876823295734210206151439108253866855256183605873344325985470648099805914887063548604459082648479041176305864866304506336096789476784806003252533669064157529577802726004828371311792360707969880861702350355314567586281704689820512714238051638910002144496858888126061580381104468818662446500655134621954552590559442113427414153387557620297491318887284007565565884964683325950907961790713156016506311765647382526015903579858254547016410019336112518950266487715411397563581469851463146003341101270604441889478406587724370156395728016572124540700151709847936124165765652245693044750592925421321300282961998922746548133853447436131015198556912945036043957287042371840750021673922857701398929004217452553564978253063076533830489603994175517767922245860362931303334958980473653806847148370767369498414135547003822552071939884915998492794984193345399434199764825169546897352569314435976144393354372216883490167347805673488668622041854237779059638078830337021531865285846174099255860062439716355959709342053966386706906068167181957563343992700179867491653342276549599061584010496096060202251768480832493035275045947668343314018883824458583408523588852386827965075719530800097903324587860447197679855517447103167845940365548323940589142121849365585740559060282610606972256320726757769325827650600791024979012505246428525604143291583483542944223393059294563416996416380119785368509051971346055135437522315198668202013554747033680735699702678332766512253958349080127130360561910832194311592961080202142364779811310695694297559066582064687651433569383761977471514914423719307655132971352476369762383485415328500710941740697696579816762440650652599266731870565577878603171874765883705725970904747562553131562933125046058062294822591229992268902000297719561397875548752327951816398187180491981812617093056816355357746414550695918211205741046791772752283772604414445890870618091400518792831057624223098115354471995941704526713406151053151826333940115664232198310165688722348119212777815792778407972524218082252528234546582571954009843533531232666556232591302763306335313053228936808953258886497016969248323440043650602764901213310038829067634809961889538389041880530065562714301993153529299147417227743993423636430159977629835957511586739137416327184159441487604935363727957777604510836152858975756339660615562798910542222856661717716244088750310060112119204899042868413551428195599600836327976557097349597060846947583482862654133920337833739492527543499762370204607172213906143719818473019375794133447177632771244482823329979769085406900751162005729369622698970770309998009316679310668769741650834423994382045617272633436979316647621107117035493830703874239936055089292486498973208496014613562905031480691960110406564945959823603672922839008169542785928597752545549646767439456922020848315767462967792400507680400760886078539871518867509851311191534022641727041891152955577982409489654422727559233926944213186692180469460352337309098824956604157649840132090420621688493697308754787044578227461530334117877829654846630134610671002152727619415536296098541097600977454362636446220005967777744966861410120354462092293121852886395316365200252979241775828769941271461220315112617041921361013724337906324869701005070282614405460677469279581006813223998099865815652142137610483990349822442626362611716580329573752584592037549647423814539143205382886872541942863741842381699301505044208006562485429252317778441871152625538358064628560526428343268278788773033451683963184608189653812938347262498083391003701685656155546857749416769735607233760732075174049731245571178601877278763154404075113614349587962013726375105086921145159301074222690508946038733952436170331657764339150568328616573731568937069924899640544754456529367151685198130401819893776763152540873234685711834217907351315086713686432951637419746528497177897576007283442712531652690835510148429292541757357397449839594068225042193255672891632686419187422481630034315748974367454407300260030143437359509954798305670702431033001268234688209483596806342124455400104178927321214193497722662219286858519556747192025336768627580645303350182742327708601314254431065745309168776095419351550765538760692947892114200281648771154882408724350543930295153839205082842474464190281897544652648681586601427337258867360130468650879095060008041373101967565589867587556989362208565967683725962134407082997870607274005478440120642843308431007627525591024277551986874349062926162518799354844499028553239796407123588692660375409691345250042802427500044156236409505635395747950870183579957495441123796566068859881155699246840316832506587421310019133425199636546724573580884776736401094743847102797918278102083325682841923581946848025847324390556316957797216115523739345548681894551006696443824362982994135408616337646233743722772391733962430472960543516655980637323544615248373965770867798765065836914553881966194350633707482054516253514313549579427250074230093366525527194715852700067322587573828141107554755155092292363100785411551211359913110198028061029677471332468465143646099733311351757017989852634187791763805706045446307992459886203593992760318837359986794247032031491847942752658556420064811397600673761191050099693602378302689783999387924098665097227363471484712922986340479414437767046108372816013135683415155819975388964697593887867980525108820853711095594253792658581040783309635716852153113993299531013805580863288541917750423744669636418011620616969558923500567073679192274567248620395678746821582282701314923964534065453598106287879575985180291666382532568111839388722196654764195349358861910774233703864184326370505463077617013688374335651001590351180453458670025110330972299572391586771587439269498882436441638145977967504106219693445835089294607198622200745444210900097828053844505931909657267446094406668220877276605692158780371379892412237729211699166137544754134550959279424735054129076083021243484776600177217070707350081693640588130822677407283738603399949759944751402757787456330429015216796043268744299608026458423416137632657013980637694446528753383123590272833853088815753631051308871214806382196958959966086992166774872182325638251535041757660124028985168737788865592669680239316086188113365928577874135241089111085751467731425833991678030822122874734195071006661094573438979676774031619531672241360193337382798533165499703657529482741530856457550415089079789828359284882603181680596600770563866712133469009576916833512661842726059909234309127547014845032290446889500874666433051452376643703278165581044896114594309406020797342107659978585391125541059463700918762120531262631566689268477473404424733120896287657707701389671951209978869541066827876363644868731939687478426467798178412860661406202077940268078645875209817059203919032396593863431196612720810504135419243547650050884219601736364392375021580499760808210633605670401625619984437932679689485648881178792633490942196056717750573469346937136468777354396500608536430294449583070454553828951860071865752574414755727937063189952442655486574747675351151670381077495148380474855293678841655168810954567227325612267151785366150180222982307004992629257173164653890355562743281677564143331479670231767652205607186183593754486143114085005561877810330927121140062431000156050600123048347874240511235611843493520369372800313956582036223723802646902577280963213860940013181583449653420849990639864508105819421353609529975793513928215502885336945781991587853801176303343326861512247908451142552221715663786246723301137550408208705831432761014054576884816834515315927530809069427222226648013238257868775469857104765965910605194040008850809351426748941858816454877316771634325898266023778627498589268804105927170892947351574159791904548867339950231691047655807737627487515535758557957952938221331547637045194735478984037910752089538599822069345744860271483812181161467427214927585962559964733919777638867488754157296305802676493915817614808365068255835589163001931302878790903515040138952654620177868033868528782669280160921849204227160839746898970010268196183601019808721304326795391826911946617763225817125687726468271973881417895120515752778672298762370927769316778191791958970369670299820353293641074377106381026977422745148280353512794928486692162365745835547581092921849884905956606723772754697597401139512929186686761691306897080238342819122864016871805339557493382185663183170194824288463822806338763719281557420609943981018212852571561774877153798806458951444291123602977452339050687540803729908710330197744710157656005396298547294032257002878323678476366568099380516804069393968015416897419688356862100332539253061030112309174849505330192154161498322272287276560119439190654321986407003443777817422506945513960475032351791865765578044536687796724781210107660436371011063774411051663324809646320104676806066416223914669447079086449989636970478839385528038006118340513822002419783747723086513458251546188931221854507162342673010973315756576427630279913528239764119407787972605562842426208872756066886421991551300136072017263550284529492909160128685594919115972246807991761974331115613844290434661230254586257822235665627356003756803403876753799208504449517289848058245150510071317950003563816535479596495464277254619253168066344542153878325966922443682613216132769750426363379187887031907558410676400416744015037903505543422452056477282243699111859983457540825678653191827751562454841051618528552343118432600183096704711637337051649767386323890905923545796945699521224464846638674905260644776072785680975762909711636627001941114684166593021770948191096938067747291801251352268855721809161349414546088159339809534546497373947799422863240561099736452922203373784290374855960106539940478814129308096115824531825417506185210787579846252099777800642138020138505295812176043493576880600258674068445614717939019629486504130675567498729756534310748363492730159428604192389179309856936444104013757211105361430439681008263472730009222861298337097258699611180827586678438929195011268394296867969787658857357115939622383234958414073519829113466856297687181816040269526234214965909415743770634382888488058737969949892378797175154297019746006708037484366782721542269782897355045166229495920095366360636860677814427314389219028382182430474236356784655808446552895004729982711823344400585543247246392219783272018033994115318775523781219954255692931104223900330015308093726288393097525013694390314743249100557649443480077234132281983613315355683269537397708926124248745137612609677346047678529141796035103250603870641234226236414044032831000600333513412190011922057427891896168436511696662546663947085154736209945052265993192874990656057936373251386002827725882107777967816395205692236255061663634824595105241919815313588752776505404716671961014325369251873274628652382816786115829783096830210099506028730211546431912642329345882157616794642484649721242005580818546301653169732643271337020532085096136416591716290616855528869717564669544765007262447774285163044738316366472380060660902837171755642479286973332933148372034304529934232178124641877761070306837423240246524013575916008988683941439789947696470174061643004053303243655557753645854011595784500825228570367588577782284837369863469198289917479709958119100562180517854686333891483752242820791549355568293957433616827908916360586396384612771726901729062742388657401204421673690720819928118989889342623431191890945997135499309283543573975583695347645983395448443311637011856369319545192130270049480469414089185024591047980552939446911625413993357285608106887550678988488010486868577036906054212283083866117555165255101080208189728380346019083086944856173131617248509341706887258438117939529215663600608975746427434128310202570267182754454383026416715747460143619371775409269337070841428520329188705771785326186164034763298993022317780635617685356336006895113780466146257878981556412498145775403285625073262827708588139781056747813579630050390405634065895672845072590697233722374716968259924488791361047398082035871028353948233366951335464912109787336901874048654610900589357287899794001318541846046978792526091132161201465648030360558846273754974851054438913938063518718615232853408588279207015784770581029310598762424332186490255977377873780896561956463375197844626228895303844508033255951753695102803385071238140043502618107800371188877152159266156759142018073225413205100288000900341147170219149974800142663572911636156805719126171644644862501342743008831693301465796348302661183425829849980967171437247955581143542775584094603190883713333345917346557427664251813689539961124644971219362194775285426683027818075385902476848777152886841661959007200548758794437904182720080272087831735163743424185435545623125805323323792283072514918688526314748499315563246666374337611281032833674995845537087755683955854013671473430779715461023045811723025199702608522679863229914471313724871128970804984766046651219724450966014680704479667687562293155830343597249324822796691206401154841123890200561524460942695956456625083713990279975067198975793207565065406418484086533320613108430205305969807582966080657437068910759531751290196743068957534055294301799395564557850790020455613193354385132395673772291994831289296566426912257719459984677490968982074282844808262543089626518818839206511952490025114144941741082887375593832862527829102140789392818904652922198282853403690608411747020930578169054668461305120229948453240543644245201627446258653530351576226509788557926246736731660582913456584690817202713864745626363116788579111802821223075196656624796686684107022336842096410888080532122463321621984988166083243512510175120971207508935763845793018953063506115881784285177921937554244791036582560655666464597555037372694555726091658548010064178371843923118829396706990639680315064700206724283924935528029969074151802503992514111628976117014550313250200225157689142732912422470242600621181533922336427377857593521360050277259808047664848867570635022180111101238331991288781729663450880516611597565840247728210266514617255277135844149366559652964994713110038005580809345464180459385227174352150611999295004463770301056095919777482143427966696461154354215713589393011979497738224844058576148785917944561898986140647364183512265675941218157174632684789750445035516553043500226293540656006261056111341224488294085762221242267088979285962669398406335345311362681410185521331992165561700717534129508958106853912493485947006674587987312055490715775992140524849378588444364712767859232238229657065831294533192056410912434948958416662082416213589478246931716367148833574464758410408391222205850712145284572560325004647626955398153271843133014016646791913829118368882910208849492248970433895926013248567575265614393548324424512478495011468540669955321976605920773644141010404488439665509173055316581634246481944655123905721599152434969485166080319944299407759243978702897406205662588253214451337967652197889184739830162912002824743943688263627659475328157921421823883164230347798808368280848096748407899545333144887260904832340411010878388146461678854653086070908195852814976417709287853459785335206578615116613101949014100515727547568537469589805870557506203023155639102110493413728457848980542351034764920594252460410400420733217874337025873395745270106449812168778038171103111575143671803316970390089822547497582235144818448463068596240751218082491028082993904673432796035970365187715643576961869929900029231562855103549525911613396886738934616847364419772553828515637606877222097817920834650016691084358988974093229167647781166889877093091039463239549776930375004004792770283472715274471164785421648617340836031691989408480911996111041063487777050087977190106111755863043923334794359580761823137895669911587249447620592317041362423512015858382595200725747127768531789285727192836953073021491238654372230156355406624438772705065829417408184205541682734495833081300702935787424620063115205244128134927814194016053672201920817329982597490285696057968543322868433034391551296907302799110550177774938382866687807722980514857395385673706522094771318968605741164196187713545323150839638102719591538510130239090905753524797843858510209650557264583935734669990857616210269280292969764881657387977168573400428590871322649471950308706218855477735192949884795926204605231713944415713370263162404978483316039156140996193127120833041868155020773932892466366123348617721312616643362418421081195879815795588776525102557458544416090467205838391772198230504100906450991722676841598495050399137243369372214690626394116363228562510306762868944586164032583336979257827746987229382830072482482309757776074204794988092843319569720220368803028195983211499933502114840712891589191784292013370701986020641712823373195341192205764443212527371882678419973691784292428131289214199274492085824839386345074640370578465955918442775690453992144432127974459749881135423045453548740003995832709084403090378021346839572907288291346491022947278286060849716859416671424045822563485328271066261346609585188167915011967746398769206110352675106801690841517427852983057637673081680664555933133008499759215327101386971131426334831891226734463363685563303216036865100967501729360349069684955143845644440423454404358246299808426641008980221514931446516749158983435700801890458030355436099630471293969311298628182419004381287706288699651236005275510936226632065831953221077838431819779311879601795954859696169554425057862237973588670675768503722975819854591512860241174087143233848292559885651234407159461939290626229406945374081884595125172373877113253468454914266034253942776002283639149924090330051210696027421242281258408066119518235526095821694196964865351458498423278024600448179030677322381042342265335547889741845761253963428966064286887387559154394927824316751640566084881872461886463815793528107470713840271973765270599759522440058914672641861265551573313998566977878450953060803918974076439700552775080647291136044536096220781716950770244932319381865449939163396330993075912909959557286419224772559059539220047401232324568636708019212294889435996068231508858756109653079420112756308948616859379821405286748727766144772782493127297271553816970025150114440287055556885322202489980697207674656043734730440514698633559452510966413780177359900306273035199634566669975698503992706733909020723063294490211758210167425862090130369269690381377222510719811557173751518441533476254666180554519181746026513373408381942982862329257811069854942017886479870630115048282273679272627536011610598824681996723128577370502433596117322247709269201414523597105213007126665444746439851985059622690611641735153946413443125892433533858765711787442058583881584267499374912442094102486035984967217828337610654380297949799597456159288964023182194945988778375769705476416527661093269485081273289587377595938580715025627241105158875531124415830732437722897147787755017576604346080047897397671254804092692901843838393895617683280293426751330399564911046722427946789628765405156294183351819975336327453721244720418515961411406268014396835713850357498182305849354319400187829291795389564042659525552055034353433000075068332356739104436290485357352628413095392914581498224811329137645484419975406357076340663065926266077313305067279854624990056203008666204660262237235328903976425212821855305552039871856662953132925059613488739523569040483757434801111959804792006972689643455418603080913671356024563693032040378472478576335065317876665924764146927837809430872303002827806958624496369001417013969047815081054472752791561873865497217474463263727382967966267762349328701548255972235582210130278972469623050609490680967853197090017338893337796462712294295690540658536947322601928684369165177677953056196705505365176146680771520541742437897814277145630858992475772757411328375686244270203474935776260204804457068153283551128371192894158968238514991567530358386637605347891862038485992644953840323437227099890092875335280237791947907307098794034087480859770300527181059062513759625871556078295972555433359739438650579941662001134030004591884805842405707965138211315922805456459178808725085460656119340007025053492800892645514267649558686954890995180681790259073529632978361086904565722466988555912705224313919457166684483859676137139947344382888490446581161339589483928555621472595445146306588183627627571214358695104100408480170741316668239744711620902654674902582952213811969176393222386227902688197950792255538242562971625539288133544322274329292737970670335552767570923013738111733072854117609904553896122511350498621131090902090897820720684770211999989751578954867963873654577435053776852106746721545475219205801732904549652428826197233805477838806814513689885967694806300881729054797880657672042350108386370941322931606335060289484445447317581271933708389545072924893893202921955742339880896528012835075467455603245852355420542308871522422420975741220319995049044272004657821512313392313887154794867943308109560551592988513894919668259199130893806100483278235952510499763547990635598931135317111596297655496344149228217410537814376397872174739133146011872109288962063568820867266331498798456179234858190798262155873761441344156996751530756172082550968650711248993575545814343387400854854270162113879031689489683255869278386203794642224458303036651825159720198689238912779012747837445298448434138366253591545413826044939889428908965287354376060821197221219552846695351605882149977259542902132862292112868174917480251001224994189901324331390922480841582913365051512537094686854750562306126544399899656647230829714616785210978997162733562626581537964901454283332857309878241202729134520812079242744264677509371264328376742823921094376933923109887124688306924326922204371757006233361662709458766916555121156835633764398243475429729153185271068034089603075800899197017922939913529187438568403009097341574733231521850125759114826459407754980214487940962461078270402861683902420768888142438035325341814038145493804296541812130998437595014811085539581885296738618778108783323090170062812239816938538415761268690088494896599190980482435092655098046451493175189802383010212206216894786256441129976601965627246208133658265225805091012180673066201886986240303613578426479812423587808262029535613398576318859434185804808033446789055416793227130672067172620424653027168568083831973847355730933780913440939071165975860789495978724033771922929070232249095944361370206504546459058118883675606395666941813485887290666017650506078819304078261887229067386843717829182953839837287508609669579351643929135268327867117495006748048153190370144230139838881641724214911172356306865843723848921087893866131173480495641648585418219471025141025708592646228135726485254410472637568383260757197765311142198792052172961474196774564137125280139049768758333296542209980418833728814314864756696291880755472553695889241924234237991955757397829316358336434120355085538745238569963011587181151899673622856849488778504243078556481596139749041237041568857441698241937810147047166360431792833727742335392891657135778549993774558747042590996393513713746155461134137690772642270982698865767037836293901839043547327416410500415012125753801327307995520696871377348558432487280997502360378339875117939905582736442220689135720509469407948094621668875009306767718872160643234281942942221854385129561288979802709044822825031802543224833405861966058104515923838574669557380638466932704408844924396134958602982684010773553479375542180577402144065882564951338099597878184397580478128418568128190588084290931583361684323203955859981745894824617763203545910689141831670705347502344541731886270208013488188289162732436321810331504810746955224625352410508298859250728387945251074290632329855014293909723442823761076597686927957058241438300638516403662114660799691475239885287068818173282603010194189656868053156470529742518394966998277502219498405331996277047741102692994465199741682627729030865507610743501946976169235729433834920993032874803622834222850387360948231743268289516990967448421921267244428953540189161902757389960039612454006649451554626095641979312355982777892915846781743323343961742520474121320146580236204003714902629481032206848471272449681240367801839106161929858475855957183177911186079262605700519349673489616402557282458332419921817352689835267435301977791878731757384645823554673058399443096855799032036484806524251481380017978883494348568789952755635724619467177950318873372229085806058099930643161172670783968997129062722119075777547007668477579162410448150798150564338452319713768116502872252950434384520137792276843790739079179350019194455950230491813699849495265805112515085070354860931200199958146789797130352613465500028505241122152036334201486810495650246681926549288415796460192537389136447626765353579701366060112220181871936485379413169029334891345325014275087499195617634083881592840954827749874960664301700810307915383392427544110673061677073231377939728482499825208592074180561017357361276882062917386979153596460519888790409349046818651500488622957803780941945432544551789161733855628909685792157502487914811945148900834503251485446523358308935337897064662339844565945000532155074083900351669622108675166321170163736890218372505990566942329794319255543361961316664070831307211533200762220912851905516342900398602287345631067462368051543074672179498221710050853346148779989377521153186976850719651435944174039578388639996733981886360746926175277206334195558955825846392554130621576373981827891863227568925783945861475560631416896364848675812976344033404800749385561766261484590413791507397931308906750670689415762854151286378277862818049737720841143731691236169876759343908219627320037577520736045808569721726990543667714513528128906194646837233883852918184896816281760503809711370825757730786455224288186610977591034463852206719212085786535723998009943566905163320460903290806680159849640860454922173154788340654335060078571185916967447871725876304142766915833900788422480961152584357129983170034137917413045373591240678547163234715180696080996320940751368667434179552972940744955648544048621125911059336852445130085712337997649382896004826412475109341859637573395678344143512025254206730431482682093355325966279001532909026004879568090924078147770089770728468937798147879822871555804821721324831854014572910547577321631429954985369349423644341307580617123638932406704751513769768348646201333831151691368352570614034800630416261066334691362086943703201562178367977842555438758177200623317016666079858653149164481283095196351755374764568438857681910252932020865021192692252333510566367018572021990961376122837621342287259055121600460580933752366189018765495303396436425813169502357928017147635929632949505070584779722717849679177694457819167105987281509839569627409020181328990155123243252756861700720479095846797626771819274134168459799160128981303391504174815665766486646136281872907302036647805909937846433013594546334352141189284286452610800338250862507887787931095243288964533377144092705886856343723573931794616091226467367904039316805973296200680335079544901345912327809369569438453460742667584327934221723877153833431618342912433987437431119187690008618838705149523388772588880450043677995851576653077511346508596067419532908539648148619152692531647375921723989529437446561889691072656529477969340295141986824566486369391687512202729844702703623571765665814489329094140378372634558574257481334166350321880351895126257357171567219626885850085247675825987620928535645495277699956865469558793479127741038720107019881682570012850633002486148250070873299632928733181969171453571113083001911022032786727521576043556720075206816708465773718120857016301392202800064934085846758824581062640966630378308725721072956226816126568726933752441934854839076157146533540591952729085851583610109937645082780545206350545812747708333179314502787998545891711107679368219751388651856726079158339052272101485615389722996769543970747036813672572152524265107201152677786975475260681974962917358257725548204892843052323708057326217636877592020732073394974330561666417270269267189900106767532232321498487466978681039841830576707825401426125284976873026360496729161908574866426272299081600657599260118953250219935837128507848461702375190115433943446810169186918383657569172983445367148029571761776854737618816635716179972409255484792448765332532305443062820253776066541748191036391067019098837884928226338163791666275414999674611189323371882834493578056199366272901282394254099862417480970772521062958203997235912692724067683646337321916015398684306026068701328496885377478208287126068770093731930519420947709204765620575157037375413063290494274664646958552801439769321875716312678408228595443792795835638767039469049044624747620078894706343621056146570445263467906808208641056045094333272726599234782186255720889978530353028442259151392366725959804424602931796961867047437140243713729363948427111839510152467246407677703165897322354430373157821105847116741054034253788640942807549054574556952634003629293222511836243753806897359522666532223109921046131332064689357220983840761665173387704567422984313588406678938527460449359652203488345865219927440860889936995955545637051256421945361615985799011715518739679319398810915696676458592456702397842845711877102962255560160064314714529508529002074360375087044556607367511490456987979582799545242583541403828708156659463322528752613650448251707088045549439080765422587405231045861020667565144607250384973991682326218009560940900298025503793972134089549650809720635333108822357813153461222273712685018444202884980932960099903646006715883033699480728264889576401373227654167975325356066924764311023346470644070154569244537291666253016384205233720794875319692886860728897500146219764963262887738043347005724558206166982539796672922349524495782891033880552186730842746669046627245940655730846640978112128748103223719744685055597450475274884643696917877889185898489383150053686832302766423079473481992010251967805209080240411350787637880537123513987750844639428097103532365394183400691863924434154635777171850925231806230033752038059464140731856100138161747270292384151474818075119511288628321038548270151140122925668388841339119033829177785243508300903690306458473859357681123402748330909574635733312993309659472925277992344339144727709583609982468398288431873709185064803717729445203954994580769546173268968641373658625612874691561381624464288584383909061593570541665653464957809056567485349145261290389690872582082522214370522354075826942114700407047222815891409530324798190136754223820177192096321066982241582770639352068069843439359765716633685549782982125408987313114070998698242056990546048685465579422700744840591942232735970277522949906628143153040214380568259966365738378867595156933074685378827666205347465610312339249270881283329318018883165690467959841179001455877289374286711356106176625817674814319746065261578187005795160813091514302797522240497180933998701566312491767373177342189081033760437079462410803055186121480090604922463496166539459256985611417289095420336434430112911511501223740148900422560638440153069586876040708992330726557099708445032004658596583924419767535576380707887901163183645421285599812768627948101964421929257042616422417431009733231361257632855519961135271843076584733722386200641610996957899393078713183838573790408395807256698229112352819196471779734730073489955400727332602429799866396084205848508395753486825779991046118380138720821667475898192645212942016654064932567542744109958728136286854145432930466090490419893928181004831607849891096559313288068322144522820691298453395891700350797146931462657749044655701324468789846711856823851082874144811128508035990775610765794507946448435210527196264691469655043577691676466504465417183976693821732061377044319560301213110989281951130241955036034997887574398456068394277335382840319719894435372441720575312215331409825676273217754377275965690462397698737844488076194258515947760906272666293969875308516020299845090315074584855331065668858093165924485980247310239854466207148453257591923279249741419878212890743743110217273617603676473362664540548913180101708472873780237243757861305076978025829563523495171382731937936165053139266720513601341080797391406142775203810943719541674489135877132454347199290254425372825439609025756463016428292174159682455601905853357396846498663048466012777541688709214568057893927683451068585716486249913872124249531411678748977210528127371308451124873068674074023074211926118643948997193014414120487797072301776954855454995777837129455137423117205426130622597142550280056996422218690821492872574447317985634572266358745388132803438408119255740472179040833596782696193975317835891528598430908794809763594661730821555806053296978613343369110692586969791994776678283771607032673389559359139137930577421258219621667345728970444785665746767286390966183865510700489826097030603546875114848105494317058443537504021081123185563378444711550346456809883691655802879429466790063007438851737467248885861132740365922987242407791717293943877430481706984508391564288101267481604301941191012551422359934734358053892593292996478918219028247820161366670518247566903215538841678596075560101805677273663955680000007475974296853595012888709946193013750093304692941071796130655116438526683080760471683778072141063170207007892615790840609814345621979481725971656290540126601220132096832791343456739558019537103571049090074280972601349352011860252336162647271766508944043456649680206522887175796279327567527293564899077704421883185926736832637423594587171964845662900626647643261499751467316857063817692655712951157004919863448214496870167557542564662212408445672601323001769365396098524545898272159553779587701798162432110863534093142977166585246306205085325828727718979828401195447590626990428378540096281357855209182736685741234804387241917766857235047286296957292491271808617714056904585773533594173166398881562632491231760089927665082361356419182443256503851305065048630464813748057213041219190183065348061631702239256316630194001450510183261842792239203023602108160276010068443261765248380735791126995831695683112928578556308130274337764252214756569175198639102315209045932543231326429862674092397209278239954560652552067873167108932411129974286242840715858100409792015060104564604043292407656665897435070690786017687982582204432639802265464398102275140718735243026843155574599233038521698489465300487227002800324863634509728345042411834391088169130737053584743422512073626421116058717301554356408821471243836367556733863850467478106534007674414934437216700018637076593908389871018675087498564797706831664285434385620675718846139952714849588818260026066214021364146584672873206993396028495049467213923852373870808094775301399936748654745497828663598588314049739616290400676911061782234590956170035774511989123543119615133270555071594757201119644222241528980597999256011514395528581751249830362239385572689736124784087577944943875887451714076762118752664005771573217596992163348746752935685091402910154433373991161536272838018234360899752884522281638856638462663245796970347490139284726237598784954745871580111130824698820964144858226737774516499754756232999663796432052754508977779911795731330570158288576438023201597805043611661959074222718326015475385701033253928790793501810766735808001379071851265250879880035790977713515007422824273070685183941961372394418606996542897611346668432348843926038922992851371793616997299706779283292852549223798568817527352616193469136753902259699363390579728783169464571431007678062471798449465895844820316089549034278193175421327733293155499648631848965913866460931914994464616848086971191583474313643192795566611813127855941056872886555088611651836243637709241598922525594017057375901220419203716155990711322645477260740550689175472654714781567346823710074589773704021966213353029526029444432503880618940231896931203738603262449859254644180689515645174981686424984360493906309173933946594456175757180321132185723882529953297192130712355459222901775255487412851869428387662407500419260756551233578677594126558535743132354226141193500765058403170418648247702300476294485740877509630262607430005335580076516951017817799407722033940603885652069325599355179737101481108993497156279111384898929575721000907202399135347524050952345081268236713463073378063080463610689955101669799856950141160640573045708225380847883460679477632153054221978299478861141853113558100853739411521227030420752279416962466969610237395042088218445317960985879438217364542046552375361131092335612985756109816165971594186019187156754647458620678477543960154044879623850394642739751432889265743107357295363585329301205826698227014292647150124367285532863214026787228765757269573411540658177599526444558883335011411399352581782539168716313667795883606092050267815631101436723714826395098807900395344370472567317738699253748899451323616161531345851388789967159492671529476032196109643758975894656839648307086215210651324447959865227868444337899272853957115593103529143803104044509843098037783226733078761210842112125816945774662033633165187474557267597011475906734963824132206135394105670589697545895821305692025717115372435314090697451196339786562031384785841582207904465187453613539220574029310170552926759178618797316706756350400915925454241725191632789973241703919558507773385178184549430828325247197072373417952808388534695345547475097586512435447779960268170923283090562178034720111079444624840279109273724701756733287637958178506861604232435574024272732076923116190265316433001329665639371477965014597318467859974977150715351789234468978846491603251624309936110159573313950223555321789247825044019398980803074940707818759332250990033072697007901381853152294063449324781239500686855861925072709401738942532367684293081431137817717632110344913738653348450249219262166309369270680707017090735223707427581553187850886339627358945715137720925376379446592630618357067361178560418490676943604588437037921343267189993463282652320510190237310674602147747260854349339309575253020449280890728551277345583493809287949470731968212555124395239883741163607496777819201590878249787675072327374543683410441445264053410903804630596975958105667015954024484179608399517419234148209863449997247714526036234269855878807233578091350188637852156976877711889745355484552882876729861584174431446185529761173562597902622725983964002226752971776604947060753461605510513211009656513127668196374594616998560462396395715170269385059498442029058312039791259502143051216916516092425636842183410150556437150778573261792370801346885824553119978619362071616823791268834536025484650527346090792856972527954383096838183451426189396551448358738183141854142456014995111703257271531333640378949223652418725400933089473717882597743224759668941688922716664326893858834908752483898867270277539507809573122043655775138499932614243425719852359570675241158112191026264703157516338698589435543132323684548766905252033081434803355205296111680934886529069853512987369025266862979986900344688590965480194590900284591374073565987317651981696996568723855562208078657311185772703338365939556280899947810373926721581163584732442169153462779783403366435282692056478196311612769589820266408413267761968598340224869696814076116939155418344454696943511364788046784170476858004213446406589453822218188416228920263060778392629100558529914797898825955107440279153839664892513845765697791739987838284479747278773588628537037536848959498583411138605286250939890012487379392274328263730944233554060119029615026131781190164779822030848909010115703083665273019854774568590891458116139739959901528679001481963059397702888312497128812470365958890794436127206104959777772117291856690050515158291511236590679665152574136331981675929413690296775848403170187535516017473215826052194266779034034295234293319694669798287468889365933041753772457715681153813937226175624631642636863423761204820164750086441885851900879644252115630144098733486459107292344822222446269173419671431852976494693363299312015983120201414687578199396178025452016529202625813944503212341909522593256520691767334223369930148565375220738553239447156132395161572456675151039095059147427977908116181976279945204212739338716737008273944852286942087546195040842467741359242070449238028961592893931711049735437594083728594600149995302102997154741579377885002111185815626307153890953659527972584223046461693805190448517930014099817378819317831838008353282378709038842180276146329586580028878618383694637657216788912086350765625477427482988949889713389251762046981399575109766345559871341160740262405835313518864781880461466767955018114729416566838489289025583423430624491783735241909066499299181796587844936484871694853845660421007550489792944995933030853076596726612357140219691914513493988600727816717643232617485136118535357759312019319150623880780929834025433467024284980856257884512581172413712131131907365231658484474659811911644669323470366311492306427641627825825845958760818058757280160367182743922714347455123687133924218115510251498340911821265349148446688423432797024443844391820087518066919347192286971807247260374281362131191592793702544091629639649950241289309105211060268572000062653693452728946025975285676253849725169691239915993255098686679236019183600417111300405082624429198584062354525224862277979145106684836161486789195521403932752252242162896384795773477440526573762770433211001734267336474993239518178926753332705956747464125614875233310083487859065143689449505269609170630238014320449494329417691417833978098232606480695709518507751685149582072109663981381206748316365558760642372241407609572617395462224000630302961636509732366678112336288571320523394153149268589417779944244447866304595449354061815113156188605851818257699500526011590826246590808130631455924670601325645572792318333817429247223804325181541568241935522427294434830590536485711983802075456531404405759516136013546842375604418514569128976595766524051200562906332534273153327025773513310677963640286126839337817288654026499464889065999213733595741959738317658276615737314809702666269685621620770264220935040566413082791265441808078285646741849315225400470930347628525975639997514782503741820361654393607273652346443217817049863641427846163018607889833850975110092918594126991325529259774559931485290506953858177302104694914399746099774558478708994331831661559841492202150891764569751817997402185504367248970605975244355183723220184797404239720811119166398516597729238014419349044342908713633117665390909130700402099820422397198121318716113599731102674850439537402794574108040012397183207573613738179097192780349525540993709661939879680570946084818469873191288959845376187972500604225689021483304643314594199039109871729484815202363827024685194288715366021034452759953358548555162783182400055700506808102010930387857008592679982080718978127345563033153114950436587911045615878416783293496882094764893618876013601571295322900750212945999633701916570499983083379509253493246188463105628585780724648083864345993024530282658439904587749994598560598046916766879638903169137940090396671897914422814247568597851503162071584799061772102820374633090197463108456468233609266975985150245273025973612729489220795627147279179205739074752227817444110859132598877788231901889416103035918515392853900017266886411569557688547336311119033226927691376677143525600284348514534018896018441006153603238097756606907023454396486086160003064893609715900986880404023370707419989056685751898934901761076446581272213128331847614303962465249688905353859026035729062560145137527436344470866507431175145540431603598285459717836893362898384842852459829275113814648209126051992653700374978283867341725470411916963355216627283384854836103699571631485028343591014588042652436918460018171314581755216870361096342006928954646363773424704577397278607365030808238489099070121742544417090046027257367279054982406226537683652347819226523324491848862158607517157219800264089957030264747911469602478176729759341568864903498800762559704133553917633988809573465258522426119126366985637143763995671015671761039433938417860474494696043662931536788983957893503674012153552103908445329686654694906736918760164711190763567839848488442255363652384998076237072717859986179572350841529412899328846166525488725620151976113256394305056540863113521920045129421429616890056312529210890111199464709524442008086513866744165738616179268732212435931147980223338032062692119580249911370957491379507691986067652941397164458324483582264229508733148335549437724004864781400417356086245906000414716369601821546229972136349348929898283171710949282650422994092784607221320431636639795766377227925542033627393904976176016391538633563195168632475614913538615756884774548011210446970190041699769231056701876667740203342237216289086699328516352696388259701047135831467827392652446071867222085560195475824074395555074362001643822989255445640167746361460026448246285726756429864058359472058331813240542192420394727084797228617145838249624596914379293240358156217179856759667593611158424656011576641691045855731029743774867841796723021490256628214620024268240068677259352851425093256303604913453595355918573694496402312610251514767363762665046230203900561450121329898336598129021859320183823168702844917299197246154324799409816674896109557821549453119770737275972228621656704351323292292918597535376640974980086070443114389371974237763627705214509589503940072753308132835661010487755116609821662003810408426070700430478068217492819570498080045987828620146383328631938391110532304854865379062575511812925270727847027550959624139152378904218088500351496074371092660869006229032999946725938846473281392879600177912656016574740203949215118991584124340105779414777269286095558063506741809853122147973971725842975323230062040855373878424040825329734090135470798674681360034169525733395278105453782882405530319417903684859303621979924904035447293777804291053129567821640026682971472718676370376231569357405774051359469270461997499928278071953435667947621189024531627883717485041430793203293436668929046846791785810268049196056718364742603991425884302708883821770027361772316850474637891867348183706438564206365877291753442263444746818421028128427157382026670150000818987393579841576219224999848523829847119441639424748987015538120171732638091088798860255512684181770201427392793377937028442256156630431906993158544397560826916846322542874422923215153900041481291222581679897613116897398140658801445661220956598870420109199634947105225588989417970707322130720195268675664008605327403899318121615789210318818802479225837963327284159945985681320270449700717856630160131154272736118873729299779174677980634018057998859911284326771403156305593222252440241768127685215541210935609246540903575476995039999021151055726288431290319299285030725317228083669515938039346304323590925723303251240474871509108485555094835758864115051740855856567690313350285218634080368834923134592098264700259086713683164170804896272421761727529228716802109236616522513295839892853473033826722585184191771992532259914532274958045031412160496070194144296718058984270844251706116054818324497794907409078616757206259828656263514122849590730799445639405965639004068465671853649549340048499864039156298203532403440089941033532434152629268794852078465808900929845029973704618429622087821665856905059809448508118146318113100948703993787720300617082472709678905020509648384602639155480090787697583970421759689274925979087160865728946329434567159977532410646985011424495071441813446162588196486121417272003616479527755157714157597724430219661324088156987615615043245673586721355393375244194628367904520117606657782493603663201368484342989846368594900535321581228200688242695744412936996020266611090465199426655046053491248693240912433167591260200987548232992030048430927988746927247001666066620965955672483935704265605651223647564436848267969821070546613353465071420309078118992062468722166576448739275819036239884121488418323376771431044140758435118735895772786012641441779624243097601338946416183034136966273165118421363608743830675691574031444978531490482206878868220935741934502746172174779198431982968552487422864403923758386604580930948225707041065665788270769724894756359213334518409761891419453207825185260937953173521277854187576905279752274139883109585198292046569294881282219496853526674748434329177775701370826502045573417724390050122471659462839713525529956458831904123069383015779523022391608194516780685627108425971719224584875214961749384331128849603978869129095502534378559488322011712703272535731648079575825736978656807726823429414152914651402534922540757660825497260472803053352453151226517985260190680888920209549576760811490656072688445505501592769701806931618938418313103588703497850925280185266907687635850292514985469599932749347270721330099520437260754869766165993930603554693917316815110186773889063194443422970914456705163359386325750514787619638862023676121540091851658523430556839457586190226657571947970463162549100136541920186743810822463356991197614163896075297360664813791996466652107011592345431685549113712560215439157738662814687775454550599683483638423272528276351655788048016891253836630479542524580619986426959721949038576905154772205720026197014611915138423115614599799437649812247464326257901628876499082925704298570247350795939882393392841166812503844543676560845077148419027740530499182631706216487304855700957674135112601264510192357630130359564001735108289176811631617869221301787291656411234354161091412467111333842214704492627357471855971343045136306021522427774039177857600573697952649929268689143103398334470060376836465868114433256618703111319116213515265736216986829514565594457070581811376104148888128899294576885286323262033505532471174795077994170781941733922740542031491009705507714296863544264738983913056378098576512989735159417523449038577245802515208070115731780289233088901256260449789552728098279155094547509961016156273505039339155547310589802504754452552627268660133016663318103293067850501366771071236288071121089470193712372344548098554263341091615550447641606326307801642337634772971850753748561013774185017671616016560918546957491523370074314373803989771962560358011639744225384838390651001816039452349915384900668214054728698463085082276052462772603459326528326356904147709975166240683399862735709069184420236427206991599518648803080128077483745463691021003630011456284585288751366731100901925998768976199629133404853839834086797212620631536169806768932842146083465658063916958359245536983278749694327715883433661996178953522131867765534464588386994113336410639581552241404016845488910299142732998578089947909384674972946535783283205855473928555491826867351481487014961365223526113315748616188866861561544480071518742572488178943514241146554914988546761677086851027569989238658626212620395678000388352250695700331792258435756686777935316760299467273123404252497923013878917132096569364421181122609688892408621939795817048370986126997699856737300502219977414520387205225830354018925765101157908297505068082394845676390212687078877154436177980303911130528265796608317089710394601487700261820743552870923704454844011670689121042311919250443317154057599311675229338491428964056337701607531117737547517732321853525755439333031687703716613784438177756869078518736951025968849122960437361146070022738713680789195287776421892367754926061906886165403514200967232000013969922340341999879551141713753397631027257402043205378651945156270449076331295487251899673967491367105338926959877809648059078044798376424609286790402254841273177423777289677221399011894017820131374726200646362721344652550096742611591456438141471319379047144208383715782981687694938723186800259398754103348778295093898713668686534393480120140540776480473490023752431235349374091523387114179536441892833879791514880267244620746347631640104823979055309246318398503333563373242577516265573837208709581588002660859627612665219581662692796825876502092468946352424604819443888509356551537186070530766199274192941435278996977535650726652307299325647378151093853192962583100433508444950492586970038291127571719275803766259667298557510372316468719637445019882940954913800435691256458437758827697539306049717308925167919891989430771164265035544117276241270873980688234957309194361240476769243423065543687069815115860766311042658130737429752926134052892243654894098047812076806452506225323214383207503319192055093917749179201313717091845500734678805695813114925156834575899450556779301053360821082313870204291480280898876230514691136681025291048544391361656392654467182464162146787884570166869683375327763314831612512647139763044900182841690725018724330820135080122199532392270589195830944140425774073973916531821183716547569741080741998324718868785334040501614937783017184338508885342166072514621033399387026884395164827238828409289613611419592498624621225627157613020707143530875889497947894810027810111083391844728857138194637106609152430940189880750325751939234305572875764852831069879156739624048128069143329826051319294467905365191244124823469018068819172381560731654275677121279351723050986183963198545499174762364483191341543576665504297569366969573216651560470117534901068112316459960872692717776157972494334274819806368414016175624398802047947186085369827469866513694279883473666549117876297478236837024589688281634035670228402566022494591503665193424538558526249985976729922847282837000355565552438366482677938376912118153331575766056594809811145475944871575992466659917302959253369908293533338707580548337125853462613435564360378196634445740191311866505114101527725226128256241787254937737120591552490077521867544748371860983733782925464117751285036806540734044151270809324433741155244298971181727112857633621025348440514547312096029512503045415063515685442161694929949874103128119349032143470192516820310301108345108940139181577857509377707783440848829640422427488512427190241034854552945501884766304033101418716592623321404228403624025740332161629896598375738203069858593513552046941440261310519514267535940926624429642298018486680247002477174296823415137937566977838579532895613427890701037088977290980917052989879062610433876591914223754543282995214608179798324343941590144627882648305730427249337670517279193270183090695110641028342180917633169164708565550452465772963716110295692403623459946595322221102122716427119961319897670959413736970522208469399785682177085377143212304324408305421413251249437302090206219400263290003962143225349996783322128637625466646206703350933274996196784630874378631687954466480687312904961479971708156756307274095266663402281165970636668440071124247258318470913281193599681402588820781482916851265935145718699693820660231619653457678595334999243909961858286758161666841903038377435970395079361099659442025108954556135451219939299967117229482753422358070474216028151239960225357171485371442045692872812463186873434510563535508258475415271023452202803196177241770394773487049911859878142497798338208840480680686292308817014885908306600059427196728091994690304447817785459606868321300195992962203267797147647870472244049489474727609179444384331065173973251293872522591073368603850984442466725597645396277883197708382589110896585008284217200725853711250085467584080001391238377022513980632253468198419665270444705687754468802769257666917082458730894902670771011156743752689502646031083872415840983201692325736363240610480123234927240247139195423172625809000559268913567839302610854788841322984437195304569363489713451523675015764987835389813796231301579771700992707030127844391338115019844945221260003863076251687150304099354479687321000267753682590067532249799829464620739810552140526691584162019932644359040808913189480879023526435519671182261082042192121166996799812095235278899368000452019404591825800144258931849460366986233204502298930789891780845287285428475000756296729607531678732746507732196373680694207456190681873510989142675536132879128989502405138189801715733799466287146499477794424793681946966576736867709214504765576531775404531336400710842296891542342842937456627158280594003741715489203378882063132097643993179440534149284712043069625169184233145105891509153519881346893555972605903239070554683626118475036888302817656793224066662228978772032595909564445453773945858527526588479767404813607444234248783298474505806676454429431281905193351826269814307755950094233288456631752690204778429847517645157037983092068858635891434783158627584787587700098912747703830153405690059857480705403664269222217789716186037442485361212266899273662903015797628391172682162977685187036396340954887776058178518075846013347867535713980262828581922397438507046156256058222116130673434005023609705698628686394420126060191807708193842162454908665229898705324356382722987743453366749844620494488032253591882169176351934839867617654622617561599971888657506946142584717686978874960039569143850704420862257982677967215037343802054629176053995141773472929347957971238262100502348059781515129227193490293181261212028111441575809900064557788557742563644737272754414725605908745296201339802784564809020275000583199424234590786152715841082125567535936301466042031089054811472960511968264791029602120220724625277903663020718162988725178648355834824977862595883756849757788207357904221318507617148570354731029558385744611604944476021742057372473229770148471617467971294348122689834304228349289588263849952105644944597889836578576321969496035026527344541511971205597523792120746335022016297961489729458324279325033154579561101489053956952627675170131556828828930797367489598592839662334618348070840380255343159609153912630617748580028992377524423259537417909164067552672166775360979449390251223368691480618697666422494822825648538597867199211287839260890342362227681351361386347926776017780681436326781431075659913026233661455833102247528714633400523666066635630347571620310142969063751268843522064375828742447300530492978663022203763706673944899578966055546301411365781465784649616252111371878483993590272469639278936269776962049636173793137732674593367971227171217997141543914428976567017026205596046159915782305366104150952502254237193486001588306678425183368643658116357542223408297786095421465908714083734160766449274014119471428839650347600335518559494801858073898045297227480766816286113615936700492484198788400288522621524957384035035786177638398985246172646395038253708946309636157129789125509960615139068149487827287565837092198625107038946393981012852090806712700446546877909675785988489726425135581967052085525427628879178621132881940633709160337666128561804869613636472806401758207185534172087897383008863573887079882431522951064647926572754330283059443870723371220800411658755376679253940087071414331874476202314908279739039177885290380784711096768956530301644546476795150730291572287694710724251273171577979430518198899330320204521375499404161026951880319499788475725509835800133294791028114781715691793304498384553163855460948983181782920294878839325750978275588454844556268442371539672667070921836727972020744398300436174409836151226143306856537381297680749613705464393661095313625754126063465627731936151992417815507862479505669359772937141528487821374138856227722370307899551430152504161083131029989751604357054074195923075904089958032729691088631029926684889015379625420080226809821502061744469045469793806119430392238547326176523140926122723468094863881028018749468110611929446609563728035606723403425744472576140151328676900481195819730282985630626706980975106262790736371491765788254347989512616871246623482168020746018680825532468706460891553201201807943695811664139465520671121769630892681547835329305042476665379311785750723244028729953953365682785872899149213241451517663508708554481028093830567205286860629580812146611553610724821756519684382844556055110436413521430334142699769977790882008860969493511470869782319182863697419429073207397152372716420138325324736488533725788869926546968257259987792271280166200555228405133318778512611730169542542146822810166975728718564020323242699744171366221656075679336246970283180866470070466646448723465547364461392567506933999829000027950008976487945408071715301699258554500883729876529781081699111003684287420437396114627295242820501535636327726393489809851574396330499472001826090273424817419955513424411185491245671026333661927484963608661046907098493965172325324228908027390595369395701321368870746483282334237752017181617856783605001109599511192894534831523194603765419822053312131426084520018593287755782805185676944963326613124759196565818133203619544529146165910394085209677162172286585252165787697617193095761852434758877437147657904248965945453424538564653896239415111032135524279000376878777507421499908556385470842537439057483161928233041953986376614089462642677924838521040220509706131500725648609608092880739680429452715187727166677841142647886183640527917119994614014075300564872149956650533796830212367244669679899381440185739085872458473114675772877068399721853137680103737357557679602768486430137661965592557074586726704144356553884240124305843922752966340762703061504936427713051527679055246410918772574568916763205909554237738034948761382232592289465364376962758062326538844881502551989348805337175921655481030084569585174366870005985694902161568421188329848233519009629109054983975358976288336192151784787288670436985125467199380598766712232170272639389051251572848792420231987562678080353325078753168813608098581276087578297121493369219683671681755404005496684490550477423796008590980684306065746069272219343890511716482961937687616920014629918473492949714390451475349116981316174034660668967864215597081596030310042698638427219567835465424980487878663164229327549475553974850350877980031388512330048520935991155720772959391265023194193023012127333499935285252250748886288443116888469336965911937789493657623582403297187759066736039289983569443602556748776146737497999390525059681515383823644361086638318022237714856804011193576265430449666215866888481367084947149906014734176664534520878507397724783515183976435469917730512565043802593253139013982494206146666700270640090865073782786590815489220251864974609423596955620188808496967534779819045796413711880652730191683295611781965099669300216027303159903155004521709789515129781906101735181436703584222393035893459891641024408657766453091312830318374739212586935793257100855541108894511751236265583866064517850981630464562127122194090609794076467503475438737917513913634506434409290502102332405391148356386805622424303669833061039492497651249293968761902349232985086811853601847282161310827457799495399469623726562765902400416068451342912563568029827480025470889850008356015914069811369837065775582945435550779197701369713574677706063061693494304256390264790002515294151979574732547593034756910664694309483392059891741048648148130515448696920962914433120858824041291202896094514163141998207172132281345862993484123347110845088132745783140599911922606260255945916580613050013793613367538034555364141563835131074803489972699908212586272065688325004103972780617985626189022212595015122287836597280647461722650376059039351551857829952484551050416810719138964087820706633552614733066481489613537419680745815987182413678482998736224442756699785243805008794487581127428075242817495732198724885565647351733472478921771206824216115562833385585518588860374742872403540195512292295090235453760812863014445004493778124570933929873382649362177717162709745442189667088480666586071043433501961049397687984512407125747098897900351793953188660969455820677163117578394720130694869667818723534165881033302485219381373331447088048599423940683791647609115659277859132421514012765596496985958935860431835582444565255513826035795553452585893499238023496915771963009649472969223625135097673862753838760901174558670460909941596702619766658645855014508590249563669003996226772642699747363368026262462287127674437576226792730615837594583584356245953047660610039987176719170577089340964700705315053184926690027877913347244643629733540455648575894731660730542312047109720209546581875576790661318208779590249149322814944366169314532879901683032574365361818771419910094691296134730885423779582076649340854306855908757454886899762890899290204659982621044995260116560137441133991822107227977775384077787511713079380692960877225531983692527355115802795742850837907728068999569377055439321392131989335888233748529141491335399670630068440350875145830708786768994182141420706007823500044094646245038886187251215970478740473655697750724144289092173610827186317264673023445137315658122617154352059934906093704689105001821166740860975737699134483506651650925962145621121924626573537547008223380567956092029160138597395072752724612662985104815965471813000828056145888244466781957671054602451962385082031179691986010468123012934944510073692410390132182620708250363872041962627870081028286520334932901204331408223836327482123124194801693513240066044366941345401433784293615243498309767905914375862268956392802338245220131644117365982795456558005704778406368908132288174145645513938092466071964514603543844533877116105283323045473118481386993345305292405352575431914056507253519809805010924894702015782477951942668847794164920803148152578080155427577531384490504492968130195579714430369477557737011518239031086909991940296362545522125549857682413429505271216575562937304002611748593416591509354176022883136963431472357111863448343913583229202897618366191468316346819172599984240391318145130222916511098117824212330048863850245487204517316859484920922162010947947486209667020631939021833593549823509478662402922498075704918181978629773932888798766641579653732399964253215903014494718384326736750673352151083108246071579114851797322705531529787368128030293946157593127228416216788263872281458851832909795837419056640372364379113011426199618531724839810741060874502344269423718463378637992468804962820344696661211179997489656996776715049123440496057463104226532718081590174324872184504936926277220762872660397222908879203997842721455837462880315551969608958712544611510551597874190833501341712662528115731506483110682903846479799655199595362362582966945681801347177639231426010049422861673917784325559743196853020698886144946799841949248824345234717992051187257946798672201306025127222350422768888307952486743905957870093545176730700723963672664289013354437455847349525120032845101301991594034497056957109515007085228649870784629501004574428613679375682878579812308650938501818513185372614827902504452642268920860605957908242146161968831030817417628270051588847930149696925864298819986708209965208285695493693066625237953400364089474271712084082777027923924991744076552939592922169512505919898379494401682720366718082782009093412341745044686777186505867091904209593801911323511584761862358450331016838815799399352889979988689005619655375611813494574663578864020256330301337922069647590504560420522611635523756275841192073712870934532377272070027410410053789981608936952371638188567624181121661540396011915671859244000266659044609617920357527028592784404167622965771260784723492516650070289762130293703565781672994164676848478384160543635978789834226962804628999612807734022347215559006956994108090205199413820470191883342183953438529973837756739642125531870393109596632322119305177150911097582955914158431967735048849126588253020780631948281108696076366756258781292365933220158265048975986075076957899416324333123302377169961610826518514103237874933554203807784948371484478402100860823170746878590586654438715546196179088152031560642041073213803532563438810418196491178189335389806303342034935331006732508423690889822221990779962522305688003543042671552798771634708968019317774816243423943844246851490209846835854612207270419868624511427834355272951028659981688680747894073202742102291006752483149728177195317327038843024132027304646365281719229378222805338623207729145940374043784836702083825848273125533047839764026797262183241924117222373907970836558183617016475162061568339764670744026822382087326044704513389777328070484555219213179384199758545607925250847240822498984914831149301897064780066347534342610736539904221540159996068040141844349996197444381289823421507589937240625519685755851867221485814368674496422903210204532425962593159705974350839315895149330169659022737658142133199995818721082570140868476972072757445764279226728265432188159771852698909142732708472510816451600292903864648435865383442611312429369539574962974929000142841615030057914243578643898994651233454264176989833080234313592054331216253464972655436250626718126643113825718167369112256783906759470467064533333110990695741312836170608979449368579027445091253893668457539277932729856630193436296147341159251801517382773138858377696568111634502463521676145290277956972816713190234685714647125778150366388014767531829965104262438260237734050147835773561156674070395577921314582431334876645282687779054092781085819299523969330755271825176679588697931581086207664043764479555160941915676300921106311524612038909267037237162828205406228941296401279983910618474854868801929965305543003023973289420742284484271598585232096404579773270237364035898106945159219653521992316231538140127209927707816905329111049936902294712868387758684054238342300247944118007688581662167481758812273819315117300992344331054310101032573789989620606833898101425416448949078396591870831612731499435719622022801397523093288503789829970731559375923340464292009321802978459367174385794928770711892524970996506818658349940839391147109851291674610237055980072476746983678729211769101212340807732946313267569910866020531697053617907038678199756614141941229595784827623250898750401971065822478451736499367518492581158415494667011525820339767541841488226328081212012686572678357157520886211848671931877845773568956644950114570988992401371006426595989772983561103578281323510952223481503051950705523548767666875902267961982430259871358587581655791579075528124239273470443589213127014745306447919425410554075755498308860894344451088374558162165187629737714771918438424202116580579448285500348675389007463616061782881904488301169300772738854525519419830576007743402811880514954922632130373420159058964572768446837239197986297415532200786382103641414537917289408896503667401308339333029854274117264841966195513960373743737158389277681043428884371196868412058167949724987370085325439242573015654423086204581734534797941586997445754808101587214664810022874918819580428513998181456679512365386680156182850480803287398729991083154617324638288685646138734583772924232703167295100688602641448746681146976820782797188041859250492409207669915174556847907807889534822403932664003189469607167016643552957441361626728974519182781550003150399097163277293603296231721598786855029623094343924813567210392384053688850408495226929425294852367977209538479794688909778666725061341875881283800346544347897774347016963042598715852048443890794240082233567408810681558498740667694960150700308890985746212292364196782184298350437986195859823851997001092370934732207906297188216864971840896347662243268994780518337359738093650833833190572459271173918554970719453320865165765935841670196342014734090216019091638914402219941813068538220734895510872059004309080325255908810480595315471117435378919436705132989075976037998629922848675415736836988840010021356227972944296814800716222482953586033308632845165453549722107421750469699069369469018692507829978706828804337122536013083271598655655179788069182103465588315255040300362971679619544291096065269299675957009466154135467931993322604010378473050327132953917945184806606967255156262770085256640005972567632928823236319618054094831931268104634555004889928921681637709266389356628138104385732028897780507240771116958945275405530156711467797261001154072370481020749980464964631536039676614628637503407553521904006945713442684697925431164231314060266116977986336696517047105189907278946599412274343956391174148076131567488500130563234808613634711513852603565639361531477613922166256791372671399943068823021596149258487628631991361479817442720576584328340258809669872745475471611137305156913278447259395000169117993038510001572825226125522510264558915260569105274018665098881829596887836834085922061107050627886489116026030005906043791798143461206073844462911888966052892141671764669937344996512679407961424960931120687464542591536258000401394609680936114743977149139791318527214449686730310372546088887915717247958157491711855523613305685820694875340399212542008768298818505099807975733758853281998098310082143247354677362198932959609587834004492296359727852001637149409113457039988725135987266448501589494231953007552360238867291158841562084538114946265441286976280062939683437743218531842719495913127451035291229516491852381333343436626262602588021169313879281079686541838576325831912779231130256414408560974659548811323519173678831754092371727739129729778599148450804063636409424630439272725758267511914300563222142278372484606931537300353503596704522577075856683558103756715827769941683455335644709160720254831970736823527527908239779177936857981765272851605411256120162263177501820749862062569465225249280929695621556258582039974741987790532589767873397408018598216265429901417156171435408053546839085569947545484273070622068780313924920564117682595053811498236879944542322865817237888447485595771163977453411349345986928402072964166768229303660998063208946865247183653918534001294124829818945850761123290625755260570740120037454872147907603099985181872022173145350081883511633490833959974024682117420909222335561608389654792953319010752787808672919231369865833671425504981997404471069440512729358568237074828020257587266393585816594334000430365432687297000980994735541472822429718443430986486155508520127629258981113265988017458489084820214704930075522198568657680273749084661395698173129556635107766316246096420140366603095242785550445842857437188480467409468981321918163357678570306661127469721569341532385819151141876059087069120428555136216985113835417469113203328211203063026939805991719807862713450206133338079401302256291035120335332797602214824738758141470258359318086560540307270725981622398339210751210685051346723796569176190034994683402383018854112753799962016057767686763862873179703629204273343335596254597299847540861435205950940103356842909874547934194849104147331841404233903793699221105084297377179364485114069126068744531810888430467688061189846953339315834195135894957407587544991380047173838510797842498251150897564451808212733594568661293638922793706575838065356088215798820961218165300494723671485986398788676222787185780910485678817393684797689706325526625057784050362177367880027604384136110655026549015940498401924717684497828154331872250408157736940962887081393687388874231368716488114165529973148432956486270029042233977180254515458394960978724345186644786655938576115169345464129605246658347450312285476967225503000461600110964669055634026883956639000515022799433161303780119535587247401019222583967654269258524322008730766250043371918768195926427084662833559962000582421077653633765475670856346919192520554047124057652950492055734361710305163294490745897592218477429750244907402139466768215609047738655861132439675883998400694212475529254497378994608801597146941334045520349636312839201203322382051642734609406179613837065940941970975589657724524516590207489137629381298059499680768249203779314735536956606532916214308322131785719461355941841424285648365423121135382553608911901023239082796485699234721535616584833097817497425385710279517951022804036236240000232008426608902499167526550179599495894899972276043592995207472794031313611127064733390106947383370291994983085485205279635687067995392091771973546271224961379383359517923444867933348240013313964008695149422325143259813562379795591893194846353116109534748914260856149210165988157931770768006469059056291317380936809028480581217228082723110010072017998537215058684541336544760004512964770073430747388943107813466134934562226265374535775599128489240433783019741900435577435668642452061050114997831974259331170008918078616711061313247378216721816501778173361092823091874970238809089959322429480444873010949214917704619547677503205991111563812123396721657324388951426040315105490321127318122896101566912190784879346411590769054783272630910753079135379409029762198032620029658718490543436662806234591569250482399863022053309430087420617720880712957335730641628704359959237205038967496602931290575443959401318223074404542535728973069579451941386660713177559809994283758082592714088467114006413187884270144405582156868156463046464757633153763593570600241979929800907856492534446337732969800121254056870704008311262680064399916101273641149393943787042521407723168933722233585593818171931344796386226121015889439007735026827498695438334126900142044076154671813605357548095399596187939347885252706653419340470855233568859854436161954651085632918123056040201309718497778438032538650935639952221258483529987223679810930880603914728940667408009056128856541267436482268173873582680977043145074771457907297250339841292587295229115832864663504605548756666991763935293602198552674741802358177715089617514991828354103965378345793403703359730758083487608611750199457387949157973111876466512978522590162416211351395515478774413199460595078642360597384799108593974855059306962855874833748744782032889437313725340510891287444396502582219208049052863611029358785472089665049618865048739002562094961663894403927158339632932553223096148097525568061416929090034622337159643366434524011217441443999043304870494372644944949749919442276779071281016207940305435882089806321040043344565446273712576838945046462546756565668357450624650237796804398367721046887985679825733955772495455016326592285492391578108155080528726143524756652353214853763107496946161065731510136301731483372895929848110680643932573426699078354361837863870380872257317031002146664243218419239529574622519623208931900452235980407634988366153616314940260052774450217151212416604486688581728975838163159161653870668966215336180492069772463431039038383986158355286732458530172625535352038570125412457611048938852878457513620438657256706905835553297433052898524172110577673283880041094755165405569883858753334724182381418742434520705982150989032485506448960610081034047260342471392469656657890200191934377973962064306571793196185268065775873903600207150356425741090138512476219526525846160069947875508325732770998480662221500788767525360552113992497361069933372751772567005480480009525239405540964020149262846347509658123316851405015485524546766585146587874497228153833081889417542407675437319441892966476011066306930594218434098079277254369177950066936671080747780208857661234120637628825091806712817564047401203504127991479816365319920733526838231530784830923082358274924861643719937689416260893682755140558253790197878388588228331483721491132917199852575050295193318586215813309411700935955731873656375270963509828387835163364133521506408868445350567779986307237042680276419776600638043792809869909305335997744968461446811088334936630840668681388777915975403341986580477271259128644710286682501180106959591380909241873990462545725327304197204767633442559012899862644417350531006795404822286765087416488193703453093141051782196047842764007174048057136208496011812247136680925316381757023841687620974610009492519358393899758759509950899494560245704739374319010094758664567791810950478538125633498648099662654427686071418705424316657242212722649277188079331080322886128347727587401184474074794456214403339027926415936693825854298105605156330160565652088150169835233778634820495667775938696674106285562898704944329970993876965336154693354329779871956965471500641868445266144882098699280302879095948078311832683739263618504063371119049739524296809431900352629227448637175574242659834490272088401231655880872746776230796772367562894058224176600642099805303495475973004611018516285367555895618346696425365477479966357268652122464140858405668602265129946764973550666754445392545820598817256190585353751482995450740260855641823229295594767158088679121087450852270335101939275022266309956591420231316061754070260980041582914369844427412225514577933101820822830988372762618616349405376041493569891030383756003594883245616973952389895181148535606216657309071187370748308272572771485683513775985428414922249357897975851068459670317185842033573957548471103705263756382305443822979321954074376535136039922559102862910723657237404108717062001947104004637147376303156536449721710456678463936713290744128979604580971496567716059994602809111299007142527576182927071373922953839336778772485523039066450736446468046529593113247509477743379739106502738677465655769223949670421441837060179625365868768970364638131192565922186327396185702224036622593191037212814251674269100557848782987058003563062227775756825877945264173559858085434871864701002771620442758792372978075957101840448299166343884402457799955017036375764789456234544329000672864363241195777525822627062249765845214975269380198336174796200900252336273699046707414170209007321312866539978556524580832280029826784737466531986100623229227158445022962556540430431000954175319627535002104749350404850539564760865491024996772176097122749896788736563799758994490800978244470911502098657459817944468551351850758893624918961609276877089501390419841207697449691844678682135224644690223742708338685557780838256859294669656996080329839129951421049214962234549572201094571090056203381072400960620463040404560614713909834133660940443042682303178950072647289282116766324653710618672377155038323580229217072546480547324031166508089105937826465142775066241148121248653339707589248219095740044850038517243331091052233783567213950485949483394674168317331598064405498498798563500408843828436072157165214520007576649710705196560485349405519051645865896395787502285209110452224281833002334565001866739923782137550207049221732794514730031873050353019404452056988040624043010197276959653727555475052881611753064339594226287083898843500749759120950153325832623170264319774582231137309306092779654542691075168719219324941135984926065540180263219132294943797792514330493342746131422464412716318490738199829548685206812729749791631648251095256992356186384574574086426931092385195446802743008515456546594325867948438462229557302461469495556015463798929049881365625061293648218223455719571427894572813942973985906297182576638096002995489805314143320652043676645980494018309507143251151043009872143870924587553808699177043879716383862990049775546587191728789599565065768275336320628550536753759031067599198827332473942019271484330911667368620570425336587291409417796631890358314741377539135417921115013331635078713902371535561656714499587074100918059969183600949604311646505735124748244645693509859346299336620085262550223920948376770290131522375875808700498382847018097648813760304235361552708544315527660896698587909837677976082735599625698913139058570503771491226732912324790266839829760944453102153317427010190124597994764079229174967559217573700081701312724915419085000111861832499422072600968351796538780692105162015140358755014984080064215317985090241032450220358970429235222461588583795822657788074056672507350290514550863202127037114935929534119183109787630195917632769258547195747163024253047774915175091467809264594302106461670715471127228682111920042654452471367234501823893741262009808824549716392313208449748720533383573765736959994729399724189848313078000664280841091489787071788983859332372198130650555329952790621753676114592446579459639373973460853702482518509112442302116758458660807570372659974991611131162136227461504708747951993091830166071775815613371288689679446105166381857396848117702751731226162246923650671846221308696644817787026712511455486524283428289021181263621142717096948198026550493203310774675633331341675293554921121397589848759240379396868236062656190021357101345028838658722131238988480475903680231169144281542382393462321990276522526683017673261376436778721696645038962004588962199997164643269229893785192224702589976922728375222888790888834171013927577882678409020403316459077022994743625529138540826693618736873980918833898473448559262066539110302392039717548785172119581511411748609577859182404126681499924713536180295516646944669464304778327431591393890649278144949177110149068831754105836251088632317757316017479165435603166833104356454433600172459214834778401029467423242501062806931629905417296655303719912597846491772519741821554915287128172541669937498225494718197882780907863600492510702190526467996013378701741807455789942635435383058672259312633230838028423123526504973775113773456602241438021557552563066548473222406326557778480058466153978445827507686122518135311323355362691975690262084778780110778205751543594734721726074208653617483086402726071020410022799563846980843044977837847892830690242630198826565833815790882373383058204636656417004929358848059491999862800825701849867025302789364780226528331980965987519245127188337655626919151404859122697141710386134891492291162507887389014155712742983998892735085183082845429167292755138052073886570149438690358729299818690861238606528791799593220355240247915478113590101018515653608160913821329226931740962371568388316072597099915210307636786024688827677020057575575102992537220521530406708057355655118409592075178917679340609175803995160592326813634200858489499564223736812131108585483515479478162443911632449412335512723630167729317519420576630769692580488265661961249821380816926639076848859030096776405286703750555843421707852607538915559775858491435539065249439953516952800843519436384092785023165030398311299819093654701548352214442882440737882606545340845755643379451011239291131864589405714026660197123817732306011137049290173452654534165333309907316557679157119757043759135316109543762602215756606459253879401807426392615738320569981520682424972139650169618435589974021658107270739142015002312845287422207593563591844527010923752209414175828403812735809001692399448988299231300660552568038837891892366284594628546663996893439807018445280341645879754687459415345374015983908072452162232654336443233183093363549766273307726579681427009948819636882656903503848691234686373215879654891364987562995424439000683583605409172615109222786622867405042796980316146199965299713524237349616565046097350802329082511936117134198225057931196179682236529742102349723318419687943538207684044185613102360297019129407758731430385188632223817947310806921087135106990208293518705092800965682266537507289882153491793197090493430665800587596536736617727159973923079863533748929954351400461775167924414945508782772341909275343055952411257819489779978268966188585566989233526505483747093610835025153221405279785337438967112140838650703240755184449528453573658238344724140496811984850236027629803061894791883038162550509370740368957706895996393216847322554334729842590189291084563819089302655220474821521193368250889502344517365970713433433772654825138308987656086805117490851226919797040639439732320560272280764901719693621554014079085946583704280605607722480410696131001497944630745785508146004450243496678242446200664430373547133232020084836235846166562325691914879436320705073406803107486149077570886787581840829880966843323347601173740223660789294117858601408043029667920745652809132556716808279369893553621405714146903826196942082896913935315771212228447437760967205712261219142619680085566285580778911978449742257472631665048613596599249051668446522660710892211735940891683484941708074932984970942570922252990462253640602372963533324487792883698139929092075302345695837406059063641749818831022211565964843028202327739674446392743984110112834043704269470621593033271494191086867476353763574799445615693016730577377648647771331487420738515743278797316514027481362179265973186299032684520094971694801456755428997328057900847827395242187336721283773501327959918901603735188787710990666316157852346697724835769435049824898385178769126207473500767839494517729085204697713754279287518499704505011188062847063723568837499200114498717367311871243064657065232398175340301172126235287865162199558896664090618515770828804190555690224312454174442650868218321216471620232827858118255283168049615267461631810005790524722453915129303014435196430716750990328781647191564378474219081084118653455173595384799070934761997761228090760198799258683507569415308834480047812727661894457984237446155316620519949666970415910199072977195428582556014760518633139145600789352192507495669974918507795192772605851159330650755811098140429261679200514926695416435145623817391938876313235337724229425182510785131681692871896548161292066235916737639518762761394292188955985640365412285506192675544727909003026142651406277301858373272067293423183375640789943365695333542898795771128445913264981536167883605060170607600966572290279740630495453365572651259516816469498639132680090610544393733275138848483871930703753047614596802211880040023845471209372926361517552254807350148666258163519135817272038834143988510460093167029537085783755528508751632350750585239325693503760095421296343219454422228697635626630181789725210402751872236690300980165768669306034730534346905893963289399532366667076142128983408278707454127087717423792396185210952062605293098122297174763763625921523455671263126662673081267608587825993047867993113323853858489678985747289230407255822287711692076515854480097486835462931123172869266979016222958317502417922614429256588852698688037448380032670605620651177555812173267444827109359054710789652804189710600744186032387236181859639245644432488423525221615744567432948527333108710433591736384542386278011924574970671628402031911552824098475098382516750615216344579136482783013796432287925113545783500551562752480985738355833339261908394756710675438670859489471331577936231777552146893159926977914645985855801174663777678388418587881032577620939638097667098953280117307259853733562851408045267133256368454747637604384170585311964788255905563427007842596754676408578402505636933217280222362591238217534658783025522384313593443241608919012388992472475655677791521913495030214294592907471579674211646048156441424475558825785669524707435160635192841049622070451886082776304631920320137421536446180198980661600301159195266589739398746585914080745918162526507418882780218637742082590584267064172802796669955699578368935615509957634799669611603577902732495627346619178382348122837609273650093643024129942209392172830821473017771024562183352988945994251262396947065746342875907181540113280219140201167011482616649429563653917152553596976147451604661295992230623736105464072058742647294998645011838715994450846892742222987685376560863521014021016210237342134059972024660872955096202628533391311921551156589943653840366920369823782319279882104769425592848330776903342408999837939541238358659945648340805836287815602960406965973870224525805245937646456341685268241235688302557665127943586948604709454407231535371902992348087257301486441002001454762754466909761711134426064611624790805974313351799505622277330490283155244485070509481800380866772352889154507733095991453168425558343917551879571420462935036777014255456307736693618184383958033065304645944117629727626913310729927939689070267007140436485519578582045747178156362987427798060196931003475042988688666739081576644382722478777877930381751836508550074622606399816264408351675950918048000553858256412897641981810641393755236681189550228859398967807361635581000287728755002483198319940556565169419172950620565096504287831074626128446759652662961349621029180264680181804145561637569762299446459405556803518497625783332700563436920406226735289647198309955833610979733556228061895986311997704134263501635546063421507231825737981768751566807883984267308766595827007228047942492416085690698317876427233785586119530516390117531362193264167902973579277403431346098090999563858070104270200132620727694387504191623849578112414288810034514640621854787391772228261939344843734490006457687845403883081191509531297844281736037534130609661443391724863006141249428588416214160176721649394486339736647291569220824406652727843818106270075128106070934375209552236990563980210383187656965535791684474491434642880348813025462089178004269835624994166102247982688655523644895938467600028273850986800785281661612219116344935763458816617614742966116201926721213847120858989403689043825025587053371447273157276337750596492764458865720764923581224177089210254813939349042993981664694161737991309002274927747661233990495277550230332474045317810917806869377424510712134091476056367255161793532711852927797047660173799968906175975564408639030265074949050074345227694374683967886915834620830464238209243810062189161649518481973232602189321138589859428468793102952909327651103312437011554917212707180344068501370929306091362792561611559389051469233442111588698512089084187192577188151761842369908885198775124680215791448887072543240879866965655968679464674329474999950195523343624291195404884905224852770456032666319804336431034172745393759800296445950882033714501138757029416795992880184277418751676864676181194877491110084680858505389024798188318297515772237260684908123981047820934187915641343310496616787866945143488085130937793568340224996044434918616598866084224371666562397593897705189907388458743896628093845735659487543090394826536166080560044275341563312281417495574317675020846476438448143700203024464889679918309631357921129446974572013433734742736992669746518568542340844032999367686186738809346301842115196388253705116262611324806146066036214743980980616851875548974887694344128498984005078599558353747360797513469347271703884333678061776108625706712126582807268523770247070782901335713099190959491921172450741060730897177610859912814498620851681386936847322950915669470452026647728610006888365991285056397709472565824581053055280994642344634811887222889995134122051345143045779568621734589833900074942974886208065145770296670825373490750013651252999471607964234505596261983814535682146465830386146324193153540696560306302083767096815964316832347828989480426166700237726678478426074883542015431235995054939553898646574774305002810260869713021926834804746898051719637787751042631572311237573542478754429385708060948355733989557250426333904277156570867624907914489798677042316939619044899362376093343907298892775951016015161489640673313439038527204545140451724372373250413505217067887248908886901302780126444390542550018211072732602397747439428059959066085547326070072857414916662209633352059445781785475450724389342653981905404657416091524577046871558951730847315948374914883681163601286176037150213711873010077788819281250679511994365407665520915709554947568742239397486129160317932056968568225677775284733500400397755385485026694886278354061509714929808072918994502256679407531275354608457746542746939659601062657781640578926775139407257777341718228633488275770099070417962371777178081404372507455574294515626335511845962184797613994036986069010316078798841558540047174273688022179165647349190036085343403085852445150393490977008300336994671029811974659901995524273698471833045870458382336270910520607098621436268279115510479082212728197554533763122562018463453315913898714136452618541674186917797812676618673610417959266547986307309685574697725197944924535399654885801786462963308374893077310492026508713420684415460158518992210303978540797331499998807856927148675585633036579742815995920252799138268417706632386036178316879236216097025511840216528975624483071245565884412569515142094217397219285643437487301730831996090368250482434881360895592273002542306936881762907279927548433402409358727015673036055215581778376424485730129993016726209908984112810528982888673867418822384248196809807550055671691155571425168003892910722126175462778680662235267763189702617703400246883637884843887764868812778087288182216035408319950859833389469269291294907719942478262253144211329011351042477032286672700478829813840501611432556920129860625139845530927556462839722896435563511413808084705138197175385169647360290570296140790209245532640340811129655062372722603328218964209744419624838974978955142652174997556357453873034044717313320746132621267224390984146789892173902753518692218781252281102265181497159888375808775815617525939136197768665105206434886435393482904618161159348577924462400402379720917476314442148283621315443852690927362256478683116685170692379828873160966923664631310908829852248613055215754199571672185052928589619728648859184030731719138525112359481401995886863360965524644750845290198249533743096179742751543072000181982298705212868473572643095931428771807210289795173643838858975834241242305608786122954422191494335003444433220600563529588898905508803784604577833356137809010888670715612822207270066490079045180600164371115787745768164463177549456168968009748770102412628543513868074498390876202521771744677830280785427271805567705223102140082655703897002816368008501833507575482212013045508836606624165829195358952522083837186269856773019631219999160312836977227439436732517255546794741170755469145880883299906015661238962713989292395119695672212170264683254818487915900659540619835230270256419390841308822595992334106104138882636615348660441061040827730628911383287437786598643515676414178850519785962191506956318332449699268333849546491752413040980744373660154045232681445811873384380635627868264486222436409794144537769770929495173939863719619285789253209939118856793926591291019811712066784640271876359929465360507914533390122679150334147602005969851384653477830812835598414151894672120380777504011978735030030756345742425302591282323037296419891409549603932441584421855497320203003481074803384225664139756335572928390867409113546044642327652427361986788189633465286773954297055757228471643974221168481836923563078384174306944138867321937533118174074552574685476432905188072804575494048803108402482436308511633883817181332912547009643762518018723798119971544730008704537020865086820806321067128349346866583598734269993642070518343523296142215265529138369005192934650980650265041778805883093245618021959548189844076654986962653314532053826104720750556304185584264133004909988714551763776580959173049794637896380917414158419698998589463799471750020742151260119946295206839395403192652520879419203882545467890461257667538184714793439953760702410448459372113823969906480113980675159629569047310587205711512585591791947232284620369263338303121802034297121488251395650073821173694530871748003596848835022754409249476333952874560031081855637570368498863156637859308309249928479247178070488615591679839369008562900566107354373891958683776335433431138658550661126829702692445854410346928565211751173325276488996559493077518457785145401249195540373502222486065573370906708853596081498394393983368791147404314833892426784890344090629913248232810296244126323052740900325913359891711840968631833916303583659325532728036208748024027350867362319783615208206790624025953556079209116698748377262363443231836933018399300478069916176252901804681146212653948094113259927657651774563180804014584899162897122019410604043940566651801204550763163133127301947801601581921755869300948106386544262578222234884574296556472453846271640776512706421240838766184544251982113095830408489364718569160605691956111463838877303811438407434389721491355932364270209715941262944514035989680758410340787722425911014150295074865313967122820340353934070173290319016102387810229358807303314391784083634631930646678898555641469850140599671803424268212523184644960926218107198127909924557510842815172116992033438415136331092380161514137341623328222506918818763625000664301316786846083222541579034513883617688288348699966367985801767746621189845838171386217939993686227311332901030494802329880734198454378372957593404909994740527052265868312284370179162058802161916048226771680641523026649383805393614389604673670441162195096867671040281579127118769652324405999782413559011931655584919089162401720268550701617994296774077487641618489414411933391141059156191323984811240997431213196699572130126982637529056371257096076274216771721012950751090004765956184749929931373731767325968568947659880345032287975482981001830571904454472416566879358784637821318348475599674976113279491926767624103067497297885747054425351842168275488546532557667444947617634472672084661127015545010148612869283020732983774362165291023731263221694948828238682083280646209914188328013475234769248770882262600208484578920108847914466198496093670666373050252698970107331779051085833782026791596820848197941814551763896870456590255482003778946263059295694206009650708081757367940034454972309411642075149879612290448678329730323565491643037567697801493869938154319968723095840668953925685880647650614486281342452097213465123411430017328652363891516819700079887314735863878684027156467567818210123061962981341643224401555419813618274592566776208598155095952366549478644916708360228319638432790969938578976533313611651556341700220027625220774493780664472835716910201444783393822606010895619645482510722857495767708403133577716765529533616048598214643553586915954449018099760847345459271313826831629401564516374327100062755959444950869101089503775419797984678500235129602113548158228981589174480847687529194585183670696382476541351460519938673615020093621689912339210577029016679943987377846636219018151234561644229257031319179641753571927026244846711623108639699522901494870518610419855381051119584361286350420074675786050844600149179948173048929408922365691255551418456471821356144809108998728355610101002869658001949958794320852856120784499919534551183383405140772234437069784954074965231703219904084200029662130144589609287878719769275866915888155179947714149701347569831203466681725981984791588979935195214461353941025930619297421119296428398730869908036886586686099078016479556434810483347091904026068419839048030532550606465367683213396858636720020801059170387463407607766711317280314719543557923898193141930508121909066304124593841028299097610562930136029887234140430315045300572414782223233870706356399898717663625970574575376798886246039888592056272022972341453615556121263367617917556817835503397708220726300049158888499205256609322545998924927664416318678732297989355417119328699971761503677376178995279481230061693615929604099874514513369902622935489285647738510509956986086733806176885719876086811551495297223443682741074994483077637104241664433539305742741381065786175705858780854389517876026391542954853064680256616457702329536384337217359144924679323850539938231731148380657722274039132033374709027468313181731909825473939961881015296915634803350794066636045182385666534632231965874614137995968192476790680714934222175993943709345200370802926067366150580609898315650235509229944493267438681378632100764679735549097555570465194116879964592285988925906203884599141125181210412834997199032607443722076438496737852001187134405694490180183114764807119770494491328770790597733586653013467012687996815227837287073056886693511102362576263483744332038901528925278224788146111551795603874214948431583504971346548605211009627195858833352878629732982957439450223527881248878561426130444464517988940647337814275680884826774061402421908635690846508514907233313314147458116003590930043577745491324398420015189398204222601766115821188047699128852840059919071380016862030923994141054514075150257083508737148133515999569631286030514779267978291816588080104239612574723779817149671158318484068320024223962279795073626024845440145299042263253473095210545904285282500109050615703516738343405843634167295257560386749283866625200523363718928773624448349073060763884559637439013111654121199106145547702648987799301443817440345292398836623475012567886966240924174754247256771258636743267039898864170973443734708944453437043869515930009698699004565059487877595263580026193094411284710141108610119440442150629948064997148890526154578266595126063629144049938345449341564898889412369943286711330902482421926225913601425515639729986014987201462569187381466014700420158406436128007118121208053304884217601931695541742292955179020942553989951502923469369020547074294017284476670202924376895902179803304028105821679554057004562291787734164797217835013082243649002379908784701268306148450943281855902031832306093125715862570625821188696822502803138501197249422132328723547676620605966904169978727357371229594660843845103194897180106689503036663396511781790494217008684397863605096915140674165398401969811883882466191580853461899297197175804395421324393480451882998242005523677835844218520885101262464120882465619102178520898887377255937049480297890464370833493137105691729700724079411306849453093733020583970986229439836586292075333313205074381791663959029716656161697898568562331727153171160196273442305154959589550019891428964252418266483866735489451675402156652477162302586173828859839756721070484748050151775906588607348974776007123191135512475064125324648584438840932481550583504037209938716614172091367559530085198936899747328031756039268438615469059896191228114767146540225599611011268445637571413742273187587863219494199462036592336904362529565155676677024391368157204569308601184090833016813185400693942901026717694624349733082721318820818013649973465284074096818911184278400926137253555407834695108010697761078272728824289871478406417892604189648975104096809714135545635034351174421289277637621395434832338386616382114649382432949701464877091052472640546870923094925753591320647218967203502144930433162720911422164836772223213916508955059020585573586411236641540546153406490687150552784342635939729517684386553345853825706092952790191571047627654237792898726821572122141609785351382519197752248005539271750285873931082986498945120955425075669832840785813526828698319467145878505817161970609549354644434188998444496911793089471906067411702521305571602260856464672893284616818594846216562939321586542806937516002132119139301867788158160029057190794794699003824436131969023911320340120084017770904844753531587411209648479662603692899743614551611217971451047271887054386210257415299632390506612427635883757005440665250471995382102808901088205486697781167787786573919440320291585856128798719981202652540662979256985883309645880274121702314696474405753619617784650062253586912284645783736526885110632431692344488936185697619297948920007685858769675816210370665498823632426791261920114865098246987650025757305699361075076042163594353439373188183550247091059727655291270401847648525791091407898686284327908832927689435875450706970613793481923021543119505624345578808332786928246448839477614531696636830248316496893693310464658535799847547889867880538338541863395398213692177913258581043259154961690928089823967002686027268354495967290401825932502931847578275616871258613134856358967316459143019584369125021989854722193601172329172585477540828393165347525298140154631886515025340322990741081881555935441095000069045548765071246251145475184952321163106731008458449022162651518979444087291325906217645088829650989351276414130242297564183000263597401203876752184638989937655484841853541318840017204547134148398699285904643482745192493766626258206997837422409516398555737521702143113968871081997930858894251976028557635807727711337138049702617075442205783751706756501904397762562786668049344576631246400459825920204885625131133907792439387791465669036290064092727918620810838004339839178400411427793748561032920059814529445981239479843414346993224130984468026122959892588530055428681359135287038936761737473507688555217767325959731998549697315043524146976093329199132895783706975625117963664628550464001132278388353639683101387527055405941271475949453693857292848180437813755529191389411760487278656517960158389194286264456397861558821628755732208059572182453052941131368000479343137403781806417669432920324340345067428895066775259923539916674849964240975798683047814806679899131410620430146333929950281107772551185804482926899768343568462821597744843324207478676243032432535669851934523106985087472789813803809400025092994392846469234206814574837417147662503097969690450258177210678299496955557908045659833653332253262069807490926662940171049066909781529238621281793272056407430995720402523498146106360922418691994296780518550017266335340936934551972175607148034757988765833104207890184813564583576510277108893663719214431417884614080415319963326142572321803021450305836578726295798336339000945044973274301547253770142057450363612966031262278529327375424531260003563159062209673494950105477261935720533377452222795016375675684531455094731826629367484900123537959611762241825568566011163592000341989576321617837452775298658417797238982159320868442187785249298387379664174466014530731474489230982965141604011466788911629479507871923369341067405645769043243118468575902545291897373099933762001343735044358334775373324815956772243482826636855427118101553084015169910795396610413646922972663711890995268397054084724488402322582196339577813009294805548161237942473322794508690823313040919701971130231648405128124166575255600413375392627613467846566730760077778135433329062461387052569426327675974014964248765510191808862117823972516600499527239456551850391605842261648890074910412244782894781511096405259113525840526700340812696881759895566011356315102865145374178383974747977309332689068009446661016062226216277876229804183781373917973119073447494812075789787968977957352208487197514002541508724565786916311221337435889650099528700736496449655709265041770721203105089600890430733859413840906112174348186766858652333484529368827021339351892024980364135627395692340044493009531856851597313928074930416962400731181843006940113794984170832490172372324499907891333554866203336706338400925523734449655200542819166407575172150320742807126628172780625321288789134566951970569193810366551344821441637001600348430805162663895882117125852004008559469741424954070151294321302153409655643304063350111485507368844208917317306423994599623970294849910589729037442280139948057576931187776429907701456233241122358884406426314584649054616901867120725339457759728343675395959712806726899270433229729111343736892313140036432762817752729290397839696878965527846770660556706768106691931500920096033307144215080033193625037037966709954294571928720644665678946146480990900418219530758873886247572055179905291515664827512850428345756565375498716432273328006584290501668115945971854433266668755841130671551077250296829170391410803302066225978966734670974168658338441921899779681045287079166892536630416653254300132681018533031328971786496123607157191280351851079078566128840744381842211956316788096691889551483930466726407227829433150723595254384082953372529464568582109158076696421218861812617752471315848863434606901309566039109413506900060905030703789667942979317727207560201487210198236478881667090846250465642724522180399298042149730444330398447399739490544697401832643439551023266727781821769753917162863971440350892721591544031056477633573659906767926176025326135009246526653883398869176275393186613974963581340341336305141325684989924308366825492294349855497663375608039348286225537672731664138879814959390426777723438744728312679347950315983109837820991935153779380057078753454263665187171276160944655705091127480092773295919744098700248028803960506046405721521014657914410774058250463500190984706006087780413749848087933478035867684225778006385598590173017901163671958182459699642112380238956268571612117912855681120935752408152866060399294051406521829517391075384280060580365476419212464192075552661816582902209057519865778929686853888455392375243487148150237733323821345044477689461785290459659710095836492374522402975816737295794943811935803861774311827072640257555820516832849843298540188818805601440135299140004783956224140103575011266143231015744927699868168670523508720206570992109916662835741874355205766577249260334324494557853149639588271408116809653815909870225056477988727123206367761326906869244641955974646980016304739965543556614953681386185075357552052083956579750580826453576806629279698293511047349732554458447635884412288131667154924430451996287392635760366390911813822315952143388709904139968994485539307156233407936012160343075307363892472869385099652582891650154333263789696184373944322747591156276811876003756845235467183090506921208062548767742380011661002384775500447366483430730957526355897763735948402331766405309695821435461228877823652243251437855496831955001296606981962884620734485387176636989676210662242794182393969724958570365926961560159013937598700929965817693978752400328038606534730820731135608258175253505915331826194136302717273208978630763323699844690353097818217209231672292937872896259663528970039512731450805589192875428670416797417772728739730152495471800303527172178652758535903160497484039633094950369616808823430091653570542866257965424483320496180072991582204794009162170992013908894087939975111017634756996931046821875766790793000143954641771765062099049802290652925480067202795121817348513739150245873184558973209392156609059488272567484426031355201411112563706796216408962937427132902489234704780128421894851479779069135321842569709029260400328352684567944010863813293464087212974770381847432829386690268082523027322865832059458619423424632049896280570549687150050613260943149870450104648125999604500390665086304567013782700893657099958047587787034445869863851309765036611021150822437616759699042293284985881687212680569427791519464838216024440156312219700051634611477897041494191877735152885695653746720257303069865642770627387076114612593403563432881539567432379301302355620363121817050951368106833691561179588000536665259274069174618335053757273052271205767817420595721374257907636508235250573074516952475611350515021745069970534510544213385916404961058897369662826418858038018833541199009853462618992716833242669428558294486556367776510245975186473611206160939573151459536411294476346928422208261247843478058898042678862436844150754151388909503403043152039859067969104887614318099507243341560811166579046127780260360063613327225978851625042153724216707852393282946789306963809293820968789133925959505927291555130056964371127287299095936516136923742494901290819887837350686362600238556775480991623589384579278590077580633163534693628570003885790565936749450672316821435890717613826177431038278260768980933393400802376449799778679638300387102277649203243677305322670575478663027836570935785440388279982185210857959687985512013590668125715812370432763160739052544683326396383086376052883826955621236643018218652318237548979247930944578550671431010689180097603922211688374587051251035059023296389634425704574731150879155180400341422368847787408123799386446860518286862533832596387990581080151213044769437556842883377490044303184501907006595919264674242993574549592012619351803370507745973540351440252335542064067675159554816488042059249222563866955368932806260853378978684726472421344303479144962348880898596540917170186126977531607276582980657668411030119308102041783560195864099924784988761434264991843005269207540219571091962835450627048528384443176286426021171615927925884970771337543230397191601072462949097375582182950228545588759297619558062514487360097578130191416840011610388068645514923578318978119853132156310480260541558858332384484100055068702687829543127017768184352333092056140017683065564154000235284482338973367295185161109812297411125125760872635095081643092724639943600087032201348452590479234318235418611156329237118074903011559456668945917531009872308699239313901644362255907391251198623982600137359045495320624218576196413200552872522266946341421598616738485193529999558439801739531935398392995788907537440172171288978661150648057295113817845350498116325280710310731398105507764969333747750704344613006651641215735969910418443948555124196379231000055488378637248373869689960246235813576171417198918015286893493565292308773426974460859377431098801040735173347349843160126080840241767614806441140558881254616958146484218558252525023467149255604635998598621623058755213669182683447226104813148411170294947230703941089261156147336553562848297781406498638979780470564094179423397327116928324585826654522920877879017777740208917440553913941866172977675914789286162886657510027557137615592908925653178856153220033333267838869875941568611768330435403147723991587696022097413902374311720339908293640056951570411219072306476778158818237641801846227814648013350954372385717116094842396225210680907823628512615544460414954402705317027681916197240258073460347572712721205669490643538392864680249936798252287320215330066571607415890401581194962265618851882852754048335702740580700315311256819933502499695333986507466281701730023408160354077198018846125808407106659080427808525332538698496268041182451758487961418401361644701829044944663168210171075600634044329703836843206340845181630048835704898284314988314078367352856698903708498611522296735862870406749870034528958730407197052055556664755383123675879299135026236873083757141794183260997187554216001651926767656622608792018090416224456866272969727987999374984618330146254846920702156485267464841580507033868962497345528680508979127373421071874779486430472228729854936249658620181343265487759284700883731170811038187577128785286453031977870782551541272573022572291616849860975794757366527285214822667268924525844412472680724750058311901603936412473226177014058101447020410961794346114386733473706224093153617130621058783319793759895960895108251709526298942370366215179701015206609082895319289885957748580445930804107032512832217618307313371733370823514512153254752969799298784975575852575478725500263838866162075603263009396920074155842297474287151009362435393288535760111843632621765829901992180724904518365246618500801290976684434766753861598102770354217360093380603033079246002964295163237745760146621155991273864106338406260366243849161336239815761719340002524586653869561772606362342924014117536699612850636593733650038512264249300699601332724236887311272766840162288833129614947077963430506709974414221841831014074334065052254120323392283525416245928617776092975374051640923315798574764810304129472712306027557349848917227610509548206454010369402532072795286156683602714534867379958311012693776201457544659538516645085045307988812349086567919108818112240821462792833189194208868670481772130251670900835205309518571368019881216693636551735474956591411216855941443693448245462374513574497648149233609022637352691785288571632653223994362426431356054745230302402618368552772725174435900550273360061619948641013822256498727687732325718838784552535135706249501163255832895544177734891133629515971020275866151967368068215750721033549718953788316832122937379194073964678059108753377021369622393892865411171567180942182512935311767711125029131188721177519039935045023344653778696560668296795852611684863384736752250052382344217620170842338764185948981871817486092312931129966811183730249934037682662470726220781235314227058182810504654124976524950896289004625915504603780503535924601152752192000240225596990712985445836557938011655660139566718167823955556518531150032456468529579042008632305616343116517167000967464228394367651940515148739089783901096744096446581071359622437153103489408364251479597379193304328128716455722269860343578453476438662543975626689625318297582857025362408774699127914749197775636276864422135737681302718016048870535485420386227738694702881024668689886291118759551843320654214487731474050866258160431137343253404784313904482804012598948819896318261552240019465366242380804495659123763727203324901612249565802067561125207592508253431681362286501805814369199541639631393007321489287612362379495356697712307571014747140406350404772626507423215911645254154682058835069695683965742953894898130229997051641985922932402765005818143515427993446428877230424366679379766177925734994708603836541500012022124017903957576463295239389002624457225217021284471436236248788025639776786124413426527905726286005122630967009953690282490047285539109209814231414943817317181972758664684293854478523123167891915046052437264120520508644001395634057117620683694255438688558686454166801103992304559489511161000511262258179057463059426958152729284930287942653012757956265865657942833120430275840656080304496024194224334810578607179656269334763960129257243194904254944416983596837103470656893224988453877331400215786279222240565123043304375636487524624522373169286058017124452192909441582595880754183258918974288679349133821768930004476279803547658871340482712998791044144998868572095197478814117405738419198288014073167442860714309823073386927870874062672411807751986192119261368606144826877298038847327929182889791286709668535317095651490871830612681026010634116850256659865408480299913772382615184927838979009536872040604245391117564820564437500792836315960503685639962018894359978948989272998827170207482279199515055533270981560542950933380532848353241954066870366323148010838693585212603864886223352376063650512896953185220492405480788002379926592078462587725158132728403357167428341347281422574047999952743487665967745608006178398094153065762263260875749278370017153715326537311178512729164132120752801207495715368342615316643071143073787906758146460619317683016881569093293267991249855696865556137781233387345436552957227765097690091071034688629705291838966104728040304733209561439131544545205650299174504662303310110778940493983151319380331836105181792895374323855227684290784062385272536835022434167448599174764848024507173110509253709610169285271832729415762688714013989767039774194084201091955956085314741664534744308065194629843773652646305934308834109236564338044455301420265173655110284565383001366405273239063307871190866025943645737136757266232048198698699207153352376883535969151060103530162884235785282407098236552685576920320441059415549992657786549617228224383780047509476979520270304114579598499753759613924467278274405401137886859908637573591724966924150521103319230848218107571524569289046216385210239190127261599070650144660978148002063609781678890108086748178250439601768257080199722712607827559886047457719723639689792608977843018666279423542356869935871489626594324220314199103328481180676145724803567891504215657478648990909502607429511422759936652628743174845952300029357052182650898965671936710078025163340112292956388038685996919149077660092063089448571780827169737665616182218448051722604523113261317576366745717647888561213206565251835188827369589852012116075074378389647463325802684466247402852503665599342055432606953539127141817606675302046205518924158473294563108933644197411246592219230332627712529732857683375256919213371409403841284541223464044547351773603691504042218305299056074533526078351986334425958233570195374638652185262019107552658313231913159124601078672778913832953241852031206143697165615505502208121581210055438484804148585083082407778381460371714950164122059520421942807764570067193206159311453921272059041520029242793183361741471056582841114178952272011754922527020038132814324025006561993709635991476647169464176652764248380083295207723512043849065416962235067135672314921349327328888811344428218805812892510705274044290639001081735812917169993665017019967989167776921457826339915048855340188994895652595786101998105636931489148879780573215068472215386290820763621615620741237469642911713291631283879699408685276653725468601743353542927729800027195442633219705961917098616742046679368599250704548218548356658326922466902390011688289762660128401401975115528001633125168763602793024692259811329457031851938780558647992773773547011229888949861927269414741791487935596011283420975054288871966010790840211451257125500586484214806080154349198960081198292810087551511371463822443526664216111419694913226839854018154917801954774461409322435438732340314547588863077118979946935995435826785339331531672885557972472697675936481897794684536031901703155087760901917235012181708385667139918592316711060450759962872420414848738766564386456861974247270585897114593034509744110532751494039645314891560698493555991487948463163357297967428510856284409410931457288344174342845412624068343000312400549038478296211117931308891468604539869914934046052418532296736854412601242686330241133343136382610529078961161635271072182881229170267533718696959948236301342250586442941236974549972802157262654460465039217861460708123041805567792863701331757715078768595065108447137138553818807265054635851474312337425865042208230116182273708710437130434656096708365700695161705913539616752189238374388748679024727355117102649560196042337074729386135213838878691675068525440960085750440724062126785827209817687584634205382914512943582750796572663413486629876197889611880617274739955326701790409767781411207175386040665381539729407589447965456989579031076188040143211817438793574150822691028546678998138411804258334113679272388620305452393935507618205217792490317590860280898069032631844861619666534355850581647862522758183445686608040597329648170312861259214033464322714867575578775074236733825796734424797424542705988838979698166247853167124832831204381225684414058260364646361310182980976701977233745645135713928135323542355143639566880038293270126855916153539495045990315062678610177737422354816892634071535484676881871052902950516687879162727915583201481974669730930114428915403704658269804601773675042611124350337169106335850821796723192880964100175875215022232189213679752335770421872574772681817300523026843104917577629556273279796159487376059942636916151909629223271170593512252138204531396205203066701637539463006724751290183623962536024910549466194078960830673073280313538785358434371860801419672600551844860971687305004704004503156433085764306351859097608576391452194648341337791603685284213905708492853917066175649177197649942268170602762926189561194348696428327705607370904561839649590816507768726743089964999481324741597031718162700933394291507621155572003453230140195760380907751409971780903626321974802500083782667179888442640113736975880027704457738644436635915099544306011183265081488577668859608662696062580478557505925756036910937568705941152244770312314429266007148356678223502690057802002652991880266178968624003368374892467897840032734578860839386452972024586922531805307740521462527987251130343675159665122139317754155339647506292604487095519634445966009302788231178207201432178696830403295090677799559667562257108899237696695218896421620056021676142002541827552799645631483946478562181202788315261648915005130334676621623257290819142063135462142129966258875547973777612369454691943579644041989616323544605803376938705598458698073482896773307730678015914313521294016104604468969999431812446641337702262976928003887861123599080194115441159775339167203248082019256288475035147995652619707951255639246880885764798636082849063048773742966236561097279474106500197063382879344699482422644473097065067977118794373991883056984149237026670598655516040698172043187137188124214427701294631692335334491058930870288689071128509111082390674615191432699405777299994704538797272475764477377855782197999178667228795214515607431604354361793273157339420822593305761845638539771972955909215112418515350419602245407372096501773611800343113886971129892036857752547828802818012941495245366501931731884982118490691773910210941908328277654741585249631105248618870485293773666953814277152906053119692283843050419499398302128632220384350783487805210026920839575957595885874921320770820097191054634553058394226460663163373647124080399836463598661535278743046418828812445888509390359188584013375439872014130822516753939490907826235828558581670880959439115964188866219244323254729939170175457558332547736727132782146172511995509943491621669644775731989346517016985581261087780672522491340481757231307971594135227120749514698771652584740240631287782667800834612382787483538205216748864974770179257908789474297917033452783116230568318978935514409690501231645250573217530123506594433272694654376011185473209948012198769274986133797256373239025037721959452085707978969613871742197220828909710084620925093156651869242604666885762518618549165375445561629352400172432789667705469657645306126612466108519912853229597768226356764262087714001013777919543570534892818527786750290897619495955962613085407942325737301466864221323259392635554985878800985140292850451620804235640472402151482565542386456691177806909874883431441536215844872754573527116178141032204293620432329676206009363555314157886191011103086541612426220150797106015976825413935090777399161908460551801090516640313024594242863515494452758960073743620195623924818806473165380008734120976990233088790669241678049148034064319513677525922897233692412040319460137433687363232573100090388623800152290893020246921902716785039718001661228974298780479913244722270139587285504017985425002337903863254342112848234944891180746788933376197829887738060925921864674327451241826316775520556955047069482381543163227181646590264224489438610802281983187319385065120858231044387448045802169289624310091029932619322897802521268544217033004075351258756329569722668713189106744531983570244863256692685320553145684348130536187882504792941280945566721373673890562176549987727729219811597204303722352326653688920917032793334118786286087118150385295617283493698809736485793634876609779578687513098059465090530941598538971733650885787196781397363619666765534984462266522502987867213690657350394018429936032716594175048898975645969307686241346245598565124157247452017726176036093408996879585823403845622752611799579297763572637824712457588428684923959059568792445253893894277942851875961937897346730790286145899676707222652932452499197879665467404207779455060046994036698894930482098924492271759229297805147670615999567899918900000604304903229461109125280877705794737926131871665724465678495572912902817425663145363525751354452569885735228866853984115851860226091263205309453853110078459235703270340130502235417715466512810701972329634099986342039593717401670232451650569292070482076879179520999908073071213706634342952805382814082551526113062274486198474445816987882617420176985384700864867555609418539197948482145719719508035672688182224105523847065002473147237718565254407125904179243569515960831534478351934073927250501347789999736174887140361283578029694059481696293050518822915759770329134676148160080385643584872247228062547118153319451301615785085707348222436959658288421540345501986669879125679259914979671610807350853960654386488672047447544394068373760500136205445112450762420014245584852686048911927126895390742216168685154691139173339562381383204280391192562267915151927310666763786006905304935919714555623597118797944562000416066095755341801293598310480523998771019710470014513836079136843204239136948720760446556862474999996434787884773322864914766745113581916766650180032162625773968419936505841068153904680010642196180501928972580286128772308052954197132243307406389056055994165327886829195911241751566911528816153999366020209768018273832251389172773368337745917094633883349286404056041389629979776060442561156497849873568601410212759738282117543439953194053030750842220788016938145882949780092688200170220279501011403120815384076257472897922524012113549635641403393693633150202137370596024821218933101951132048152760410368391321886171623342812067061526245596430316707179001349443332802127717356981901396247667484054359685336321631917959788713403837742171494148195532004607094370008649185982364784294287755565141330387809601802086738367984582051667592117062708875509261879384764925731618650739622683652959847453978601995928165164744105739355796461648541159945776958165003877085897206628582872907174083714634087208025820904107585957323569461408365137822067848863145932936205151236318585037515125328573192731397828768705164289880238573386727923887374612427126289349539303426006112507395633488496512649983889517068113588858082712974352288127135944741110193994098715209936287244801261460855127468045735833531594331378453799163566038891017684171606308988485588467673440192721935978388129379375210992455252576792835686945551774375891226115084756534537739405114945452460765017448648305072528630133275960571941370957981101371177385468143091219141906228583716237103810709908478837762389015781322593272316998309271723809169727521688473766164488832967541183249347062244151731717584674792588403380272770945997116379546230718143345844972158395195919242591642064384823064322373422327099473787043985859834974291985541776586492177444916228405512572280471384057035421528636143361774565657139563939005402975435616862010469012654028419632385685131773550104670734105678325544662117682219005155248772133121993331447226542703280253391702464816681337716205865273042696654525362536642604887093517756340352372821206257935152378844752418579885847304833450265218395524024202276250453928652622453386437129327399501645305961833218120309792651958168004894619037126967760775883213307168407407890844790840497932218306193906242556525061710388521556683473831668090993279010671353283446324074750665987551727808385601259140960398769259454349873655252753110431010297188786175441062668931556281214619401000067173506217144798437933725151210708209562692310432813179629829373514212045941613968161460828965892734459572988478001964407146641973464407972321398516642237095452182400338907773849863821351732419993438393870283521807427972620333405954672387316047759305597361318307609523346629726829314593447427132050463915017994143768043393602876127706661141468366047556599385266193220924666427843220834084041521947391131187590323842136333846509896432569532319940235782837370956055508034471903020591430157755558965513814618639419199300188828560352046409844295054017228786210804032779169508944443165379308971674684093220404972200834682360306897498241180263195973652026152158736735617462269843735630385931505676643181775802315552639717579346630965711107598236287180725045189156622334406073410096770787992929699849721794123963542520605637430443909778418559348144935533958640898577885801755648580397631618405770825422753810846555740042284983481058014780709262515209994113329512496557836242421516693457401202944987605316181017183049387809380437048632032680669051696886903498184046622700486983421067174692737601649444686048782928963712758568983320405509793626359323063132055810041549876049866409566090562654569245412115754138938423272760986148283125935066234911900152968977303220889127400575888944490636822524679186329900143856882820250144096175171133044948372111564195423892191520761669018751361425574832157712114325670550588762104514777353353629474929775950137465767766037936259992536798256965581724447520988186764577486871180662433128622273586334791126423560386332911009653782562592992309693650326110314077575948333710821524340849681600019012281723392996336169370630897447906919724321493787317050311952766180402353674493848015442845202165747248680883760071814998537179401519952894807668626705073770113358599058987272757923289879508169394050750978229173391114648536139969663126946417116425445499731983932246974549850888154409090711315230945861170713152631170544897784898435843833544391761430172386922297435503699336618300951007489770202052023104057721056966489428051917567639606442514641646427621846205611035623152325499355277984892946032099750076964808740730025740711141465809697465836851932961492007372959790325775227309927693357254322334189692839618930902423729616231069633150461221353458844939922864153009341373362684390333675841639097035751388827937409618029811578530588856149031619595575368427100127876839483547708089416632339722776717027980774158021602899702958563294487972781467091092351997082288733618230734072792999848232244872992151653764814123940784468806291018037402312964203162033360529065834853543020291263828793572019418787754358914448556758397093726936171994155528039172366949982354023902332633630782917750625070901890523412101011908302421556626788502631551124378341804069859453764555814125985251108806262436276826194458782318790179114630152457536094238437874998365953239731799008851898111133490015405595658444057948199585670230262819075184117216365183029367883817613568875576903876066166145207602808283698644848519179734452086697907973259403026436108511793226092326194847397173629088738140697536722500810288673946756407872096335369396876355414669348419971904070841146991554247807902275423733404540608076690410356382683062961176897803967471474204666184081562700313813021883871384729566943900193846033820409122385037490836552358947073944742038977015991843902754935937832193610390781839556583222070505156472777593294909950719243903034624491758479390925262923290334783579711399486485935790978612468470194917760891273662057495407671454221636187139092835157536073509842282169964702303539801289927058662893992026974595896469689702295895867889388231900939115956036944427144348664399116989611646627743940986614870386276765973331291357820580215545667758168639309797720665378027982697990332919931878364069586902258514786732531113518909382187766989847496556870592688008203415775959003057047716405438071343216677364251455933186369262453413912316764452435271252964585099074248242167641078173895767409167785559791953702305750075857128375132178722425533251707400384424232945772507527522671976418184159951514922231651306928750497465305688933213164498795198250926874352534514484168106643392332133683842713931916012285633943775432125724330851952586249727167365546336872450017293544760348383689274618382862260513565029990547185756704029147492665837081883358325727073905054798549254860100149419468787212882881654304066744723407460483759628075979228408122361413678172377900374598844453057459537123374567158656618730319440914874167009322122076101189071711491668206222116986362388879563221769572831872439778229067427785294706190618209085697685320627191956104737553709325573067288161931176260858322703301889514743870797403131123806683829247241144071842442873887072078874866479323140857986378848863293031749960922783663253211359364624133277961191125415811103295654337575946616625624602227796121415557719911927463193791629984273178802291086353659827762222354822748326073218506222790224316255845037305695975774290728430857313946033680688239960774505068266933159767871136207217541525548300646203107793589721305030823145398994413250982429985708263519379762725150413906086027449308324207508575097242806392233234551299170942987600022709057757547011496316306034610905989227360377272566435186410026944688108032598129181418699173538644642605690039898123069215964196422127994349549085915651019136814724005950676017777455023680138058982316741674843020237736981170704170876224953094495719596547575054172124221349028486475506558382126096819421437196404716427231274694583615586510503524835705131299152336007080526872656845909628688212922029210813897130853740889916236216560866458264023261336845027913647057167897872437576047026188223023428535704198534732181738703401401922772083695900835769617702041763828232921959281321802237702686441316313472461295325055354526241766587434406156255179621737133064556756285260348893689970066134540953289409323884896118897304128238612617524374493622719030487475799001299976603342372888733616143576789553385494306727124100402378526897110604277873781838784493881251871923091743268934537953797501934493076284424636299970697802546834068469452881390321236439108420862714746758309996331306958011318130396631119718190129659482750832952822670225219142200723789089192249451520278506095101593223216920354061016741831356663500083675048475578238328099574475306282644291215014043244637447551424454273760107794708255016945679965512421513154474726122942907895777041590260727114935746017441902283038772542356867443219906495907864602937989560206088078916182154579593653551237652253746477396161286750373668192302694924023541273353144444149151311255847536558972458254301290861532474562146099850387307671984178560161308090535560310922868357672453573080841456838818321995553469913690672775351326632448692728821915045277422450207318924767920390761749900093710471228964024556381378426512343069681558242569122414331587310864614392423777597469930168903173214744906416523035803667879648108034356274043390797723645151036946421281941234415211244562240435280445040793071856964148688739980977237504906484091462889437978373078894029028411474326525328994637880788539002511697183619140345060111548305249059140653144013070707813970755373417443312492965321760855844752362070698182403838577100582054207904454837492970561443116361706726510058864900391393165827523088367872072394924401490648107961842751353261333904057226010235493535227574521790722852689696166829245957268617383609157987467961039048877112259690880550143390122970674769955923208193471064286301249680252298368815014316162334769691814030347843473227507225188925419164826054506152258567341055397673772942816908127502817710076859390316548839042315182315320642067166116647389010279662311662293078282352200615663724063571607555972288026673730560437008965815562136996304011706001337387717050252089145673683262937344196651536436599872854788955595163866480027744274098199504137621264193534989418706940384488714502925352279481617717952483639829122925830607033007963494880987190161643526766482268692683346095997979155534823863597275852671521985250143418572220483522774084089642401454152615268996561909594722009745806368060162155569802578004893375168346406849597950293976027999005852124696665011352979207097814777821332614660031388664111388736311042790323036392711911449458054336018672799452483498836997305552732614640657969211839994775780863358597688863525944439951704252697532891120099277718871918361704127475465909855143844972695590651618332778315373669545350830815052208712203063460123130841075029846348201344407897394048306465227373348646280384746912941272026339648324868298888200434526495989807773492261201462938607595919216717609058927294175594631644321748363598553001797968958544546111860613419645922944860506158599950248866349329731001632656925842448819290806059551428113382118048188177208490737728692480486555006260818287272545901590045517173806853218827682942694196935389306098359962452375388238556777628353833961887320729097475184291235511238479817282882918904687148938999485563710488570851914000990906119415469859476317328945294195023108233427427178036018746378220560541262657931936458993001730278226387456245402096704820646423834218946648528705790839694380792661392382279143947507931944817978004160184579804390071393341393132921799645907440819253659848696267971377512538029051036917073008945887050073868114596103791799650410224917627575456286654126105169390634180844657935056098671624528437243262673674102287928361696476326191788274403170509565143224423030668981629868345548881093437651728914584888850744076751037398448844844855888205434188448005159721065930304319535605015997706340621636599880416567944566350139739212428128020607243412144554380199485649561084842937287317679376673798673914738430464496596446643536891691057342806530884483450568934167397597362793692015591955155518376134470167639863430703412677858190194488832658218578233527278008390846593877670909460341566801270597811639808001965375005380797671580989921370631685932329851989866780133558985019945093599211844054024226204008946267591281710150229538395947199561377330442880035895892177377308770426321851958061910042225043381274873772629438789939394709701405495709227882056669338100985183578039459725746523708396862787110215742271855839174132323655684052907449822227148236978913752734917960281450013952033915160338226923402980923431800770757467358036374684711953056909478455781422851460251877855685067691773309911354497098156366200216439143284456407164382665995226396950026039475010841426418881818927488053840117656738941763969455225838541407340386996346859638349125010529063630146573422655251526752628562059836272342330231621419088270980565566295054076565468265293335003372983122767534798951509789517618774424317507711002732986623871318427968275019852402719387439988570978482450621689933018163429212520904726199468696812953316357131391700995133148345595089490890222450039753747873588828297046292887772630106575737542690872258522202425892280426834628675621387070733871654609849074711357379994524195848816521869966587066217909270596968020208332435217865199637365711491411298887222783854791387641991178902957647639704021965157538406328143689667519036100523178520223476059816470274202141928151752676452105327698210510045667169200437664420792312819337822585098763609860716235341033210759571439680842479592355822697255260030102908090647482337099740862873243215804161859582300922336358737531321648766535930708078891951043930311525339643813204719490027271897068829475599328890629224034455887360211969661769419579882741634520042467674656416602839499819210998389212273278776484815486168244359580202537064589270848685624908521655436305417253747357706671694697919792913874628256417415406412128257659148993640269561160559983141007015259295996394972817241089962908785296403586252385998601756730410806117975502533753400934591543695851371222159223958024290191931527952925082819152758900702052563273919613714034858418831804570596023889457591281081929347364966226414424524730381343666949351426874047847879750096039050948964497137205420863598335294088940907145539708554061461453267244851709859397050318055844747805977889710896837827358057215503154691443119444340716959522894003237980826091336398069324548941065638082389355497450813072255426000499666848950228164963049605877865565731978870760497863799467151505049737375563563870111977752922594982526008032404019347101310652610354215151367940280317461299747466848136673196788870656698590338001627738488575322502210055371795744925966146256190866164386447765463177269500374927409465711359505420549808201092804130449798147849975575076865327290182312101479205644825258926404085918854119215524663622744241148074587300037183023139883300031812437874938989281990861351861720168560346085071181261148701559216663366852095054592350740123252369357531704473623085152673544321783725853552815522248390495402834540041237425961305577591006998471847934498070484557368381768589775772505656004129119946425823284038533752418252522471189850287909064866050516521022555941930226395064209594009648875544768380767065818856911276158879916797992418088169144023409746868235392680649295497589676365679818540680712374174622672787028170991266607087281301445349563186390129247862182825178485514246933184492945821915368644884051089309300247929302308009451905760327691446980759538043779208274455586825823085233719294816677156813386564845629701316529748397201763388796658700759612794675754173546515136211841588129823884461519021626560775804490378491726475492579150475921642109428794679384080507567701313447577602765930441764566654685740540731060083724652938978422993521552456562300964623608734824361704577899443389717263821356244231476850509985385738893461909994913658659040898043023539639887515532695481229279778916138159833822655172396119079316630247617551105851452414986088244327432195371636407923258846246216890430779836076128692289543521873658250166267566443450634851103120837794786701294063893974852151427511850518349025276826303243725964997645385217287502400174960823504870470672976525146672573739452629311264082135999289205300853210834587942263488186542411527703836823653416158571644732347131360687693661165047118802420226302843554203499068925383256063081952579478288894066589331277155494280917283891924084265945680886540036901601445237301892605158846664809058974136853121330921490644767200280571960054828774256414152337557141327860291160985484680853682309301865290166558457626550604740167144757138102144808184964327160542972489466055203148166026269941843521888829128581129245572128439982560223345540343218059332833203281392680008240658394802512556969832258227025398021927558889637046564568574248073003123370722256703056681155670137115797052631956737785398577086446416724610281529396860819299672211295089826961569724117574920978592539784915875550617154128338013942438131361023738521432878161383028900990943241801526994921312613404355183370280632737877237466872433508662664858376774159847011458760066574519547139917774114402221765652976465584902965560497561678082537448037848517661203836251518628818250010512752714197931768712211232676354322504881903470881180708255998920191019190023435210021559083201089093282311604402977995878536109330834359946632656195689539733410455560293351164744872690333934636918406533815742769640760556599009378235381662104049596728068090328338718453319280855752216991367453282920442329161960523207962486972729231576312419175076935041306869199221128844430385566321385857918956347434871094158703433552151522254764794481377596971832048722196304689029972535056013902082806649315936166530592161601060075469657335895151224495874949811514987885818699303121373917871818207974538384391765011157684708574815588117885022341595670467813105847652391894912963168575349945404957509905560818343205054712643121264851004858609603752025331983034664018732411438200140144052244705514515779952764930386504495358492347261609722690209310625765126549216757187797546427912249085735969067122447741909422966030346429603951519511481854213418699510354665829419188039850864982918010522170267461557738321692792820901658659323538315843768368632114035132070779696688988225114504101840958295533085341375345235705177740218690643033432233310652648186621176800428371494448781137040179523549425912625148649511943000107528568904775902913825014688335178272743342706001013708152332676185762496120706558096711697827396899228244422622400656869577191568136118099022398055042257356925838440269993064794726286006330936496834074024135586381471980054452693081352655962910888707972654832943794199961540320948423239119037889717794321824369492391730678365822005183209438493588306304271265382819704213136855421157779899428148824109015794849914428917966288184743408866449590133363919440039690679607184173417508152611394177003152403722729654856296657514886924676231023375049176984625011392604777657385798116006472017106548095956226687141303949889993102686797346440645143067271471240653141565607127581718698723157576622007819049060182332313144028831554639212476074470352610883852147421093184855998204044918342611514568690270400373965657803285309708717736207979431308722109871714809192061248048507052742723848010398677123637268867320228983473416877429627209539300571190939595657425306414274525550127438075202779699692414678648720072179825064480028496604585475185767922058835235995352624407797822767831171701051944115260339255149918515190094876415670008387714520343638962019148679467902528850541499991624138829440519008486734729140822753059203634178394513357903985174003546222764045117137702122738989595813328480819835878506279122402175442892578607473826893532090923182321690308618825485319843346095776125408549577314967106452163240622389686260054118681890764843106372421427395940132665490751149369264389633748744069883999610997168999286956770674260790542300239574701722430623178737111266497123101789697672780149774308634804895749731501876548424751603693907651923085671428906431566950003803572062519108875873108827580943171216435714885367053975605779557466727719231796708414117033536458301224097890726130347852589803074694046479041768206698352317825056687217512392830639819333481115777738398074096437934801702769776806883602326212864304941925386973584249292394455571328115555456160761571163197351879157880827434166032144966980268003179257856135092759292177879247324633599699727011558143532269072102821775635852236951794980494057039079394634008217129430815501741189140558981687344194615869850682941759058326022358035434703827647267970040007519744495082345408377439425944527915494278978689669461866810838444336507869657387759538065428923161703336946151324980238405147635640084747610223714712691519951433051220239361520033194229737630976122573473898328744907224495966348509970816463515617183747685210090017989716150277008061333598797279199223135842270087312429166065540564072086545745701128685218015692222013248939621781243768189791513379163927229326386277085902596020248448609581899128763718969855034633446648810965186702389582918727646727492181606154807645670723034363483464748179035745792775754783900998815170733461640918464102033761961972153805074268030110398380205143194326352251739870734039692369943726504484708877454503641430042144127506919869290468470843534222333560719150006981274901258713744145655731394138398491587105750217634638417421483115534507824369097795916820991745881477166360849802098324074692736253960587149026860099911571238425971684436527841535843821234359245357008866521631672739683864118128387686945053521010709963506626576841581992654823350217338846778408717608777481171083171513679704588333019738002958301891757124290945508329801669911534764611102635219978198369203015879907900358843532991579057838289057725371254763953738399029774527074994469603722362092800969506030163182875924640840840947175095461398674167971754231325016893141295733163995295315089218519916924439706434130624760152564166417773439621663506576688924422214640023416736883348617481204196567886688844080570261343503651763409575247389221361082469934931281466552933332005492547334116767205479904581915611959489499898825128946362410002081209930030511659363539277067384852896011853934129836448322858241020587689300326695817853601422158324933166353548062880180840993912230704291147905838301987037841726095325279359562238287163479030495596311517453469376952548949045924936977203938655301632167809244199116282926665513710994423888786973885281155959016279074544131798387545482177334403927438777577664165375666450756312093948624330723164391490219775478435832839039713576415184827297295656013232105803431629989145468778830246695204053283129394971959437228717730973459145679205403363901093276552422858534235514823854832149529227183359686722757009186180714684519587349802828887116590731441073931516056875077844505313511132156011373183105580558516274289705639304234274998298445206677885817938180153917848423366053601220627675878814224135557901596455882156787655443178351031379402310317738395769448358676056556287264782285104972063258578512411388569673434383070058072643638106959547397963598127931426258234608739858862260388162556300874618432473613546705862993486119634388817252692540796667347367734366586649461094972943815792643605560538277774712490266926454436195195244514091091927551187155187492248837187285967388406877007571048892773163588651491098124231730691338975229426943139071164573831781777405765349616089209912922615735321440260481020496239096718113344260346641260439277450017217846800777130200038115869308072154930051298382500214146456379721065045387400302270930971825208191536433563749247141670353624024510841717128838285174105188578256150927953528410856288063740742529655884279438488144603437559151557910240608380183691662973045862195768252515581793422906787784216591488809781095647943766833971508043825338196210361693837568389284854470992225178064675739608336110520606096863521708401057550202299569984506307798598214892260795666087670049332055071639280199960084296085187888986446909569071959780033313829892508309154450990629150187024308200081337707852026554709287746420437659810185863658902785180794205442289272313627941323232236735287648354755313026228801862201673944191803278479964160018121155501974041829870142058264503863528452162338541679997196377478723190743189634842178190433829130558971663525213367533247987527666829924544640509720683587049846081322946104586343245167013791261953228716274312728095634681566401063363513967781087132709111333617805428298907803653622748774529133368477796922462833587506553617739636771337350277459558954392114627546143528145341925681654927839275979448714151078618066437014118821295502872778079320528002605971645559637666935210037693124654610868277859904682244478588708973583023641531002925440374624984682470315539238600993336104009727802984868342310788918872936531033095709731888302064314208762967105922980907567023765582718239295513014486772839571762453686716602066069492555048727435828396656085912942134698503864387377041857202384510626870550168258222297802146126995799103614180201980288548684336727711690415293295685699239290359290787275006059675931460593554826099543178208015280572670619558332743464989502331478970562371655718166972636405910767114154594708987088104193665195235443212499402015637256099862298448545994540145860739552944582294323655559001114777542116061365202928649454898560451846125841396147428258002113220277055299216746537077628399161652486828760124023684015813009419685069223567290486771350655074311053055438634267825520806607702219903024087123443361882244166796776191595296244893903414399994265397865443630595752236364759583100054183660696500440859770579096524741419446276285293718850684074614505904357328946996781643906265434028775380761631219966403513807315096493084510548390270710862218440595855470736297820807204230702241324562950581992919667031204245521218128157070596405732013257076897844669410402395301420570103302099194422974539780157149699333212979939905849922624250017234100845966131951698618195795335772189585165290873944089877073328323251506366595967090633690032998127379474279359154323697265381634910892985430814653847018186081879169512688977689253504684890517597719970507232930721234341005801050418165626301284781588482954122380510540356183474548393735111496328895287512039308122065930882505901672387916663167351755871649200460967936362653837541329771895140258339867301830539038195375501940719956455185186141569453201740121641139156938941638525388563367210971443934571496574227306353984805906837289138490653093625909117828346222297019819980079648930803269205994651818248963144250483145404698591352026953377848313108376430218562134635797323714456464144594979172993168726540568183317797622436894838852131748501016473009646575672929587214530351291987606344492341308418541861167156965865309542516005365245906095597335017329606709290421677472483848705200098571441799863836395233590963288965471507439796546102116008058292839195563505757630831197162144704356935337518774444244778345432463825912971697321234013533757242793126475317500316071110386535333445904592843402717434615416018891102817792441218108117595176746263977801637773540070482557882993176205503944155919676362733850530618914915905520849403711507346209573459499155403505480339584832191963384139180418770071602013291923602736993416728935846358916462688969375718882954133162302000439583878252569422867085613059595862989998471228103229184144610173548172863759523160458339231689483193697406671424868172133018681961504436355697859623409946538297082780397159106960684071968956973371851904776296738727789655182333999004865179317663203080597309370566716884090983851339449858045605563240654121823160161541225965703965615913169825440574120805847200865383331792290320458951350039401985136652240565424749108817783037183219894700316521598313151844714126955004293549037978202918815678463253767825628435136999503264033377554827867973946855258660125299920718319087835528165372933966119306217277985226163062448392930790063401046837684581915738508031371836636691041911040917606839907542865766170306514407064599693411483068963769157026887075605700970457689364786807903471217522223233789149894374570735860749916819546570183572314729280126408182347963371828498316106691815093371704205265086306592336379339652630073488842063499070377039589651920394061280762382976219589962706709449165454722135830959286904347324580007770707092248009388132676047957073969872674268102764457075942945614903185277022608601309588999748152547074068914810774977642837150685632569707104407867032046774454468640866592011619399298268952313973008598464553133655174065812346830264195217607690697073455308745086237011377311540710633169965296816298248103403261866657268343449708809205815270179092894965426578705389989680041962098831740423259131968471276413932407472149740048059191961738837862590864365612775029005028882513943679754231775519837113006392813097243157484568947042333136270585633635600643145087588484493161426057743537984492150000363558808542895804051783589745415785183156777607187327457736883855305644504510036009652436493754351699498168576874738154308021717535837702829339255474525721649011340780091084403834359366474601750836148724631599709028151926415355820674740850938621744883833221685140549939750227270053029357789423705484195197756520473250245264830224770030687027127484780584941045532809241159742917540182961937878990791895200258874735750776411071825958823532699978241034708648339910053267257284643600149978737357305275580813165011625643061113706355954503934036509692030200147562450068178946156490606835650530145612983152560346752285093255740134658423934932633904929171091482403780464574445271299912262198968386551062992497489493363080860639885187354997463591388913894057484427455061546511548334965274710544370659282412829248998599737018533235132597210367867240393493082747366917634624316973111113565724603625395626847691217236394573818818534713050874147470604609537977782750142233726603304208360996360416801499884618781524278522008941288345889309809513828691567417041792255624704981155976557239849669714469099505204701120556324024741563623948512455781948714243423152706360643799581463325754762096504400091951634867714349002318526523389333031364213767012082329101028754587625021209886041463356568189440617676734402348695010883348407923866681430019841590326286843417515429721824250072622551625396285932998984164316482815386148636892497971539690700492803081516590447029330099366998257876396649995636798495731639288722644979700958380112908048494120647537409430555565297377684721584503149656244127173865938597483965114757221896579924932508571919113138803104659831342090557292880552010382377469823536421901028127055627572903543185412403732479312746143862132179008731195830622527430872880366600816304581907973729621564377428686629073207669340541399647081098947629927266176965149641539520589610592973044799268338054145255899238354113631793474021352116913926756539314803262299877772172439583121487554725491261801235704255850903453176894148854889946860338917144288969465782472016506312720129213657274759321731307674351348138348669809563136347689761050491990461694899447174920497187000524245715365160380807460231855545005676148479942048747985711239075609065317899981507527431364507464168992992695813071745960046135101388627300656294895026942893863394458370082541501640405372367943695558183841176878626863521349859494094773477919182074880220830639215216977863031368482094333107239349793365664569918418887741825283993437168065862339541750877972070246565625281658429446013780995301921380225400539325717513413660787509502272540672805022826977239468978833159907390559540790924992361017662676052356062053155911726290328798456384728302025660795123823123710397295308022875375576426507201120959686557611788323668901604904013245597132377033624938588914263972496340311815641836996248566132957589293543707105286911154320058466563536253729232178537316478898016330151269944663264937066031310736209127512894837260310744532252769422287757098871946941896689117493901962886617431414846831449180374925263855416288017823217127767311167311368905315021260200936676484248650152476178235051149713257947863950557189079524159560389171203411730059111104821325234408395148523250078176529382141723150183369520684197763716268992702108838732753456486374816441116624060177418701373878250192070574948077728422666287168894495508098746083608450397813707147549918876837897355397315531508210085323266380714607184347485731122628980324400290920634162906436290730707064231172601839938175276389314446050758059879767359282172723833113278400538894854412064004389728463288355676619917560683707503575572236745379723921778760065912576162959621268463697475500238232517620834096472338891539322489631836632472821480692136184619875930780945037787460250101556922847126444213356158360557993671241011715761053670950784734556807777123097773499464827255408897285568276850892298714893671286236941738931546125017680423353154651720471345349285233777449594769865379399322665609332869091334899049807835029044739939147619694888360871066914870183091992268750924355256887289277208246286496690368085102887461480130098449960455545141297262016197147726004691306473363379666725156867026560614606846506134181671346437178067352951714468096415238577760494982445409927923725988533534942098227650382721039934709961251802230159269201720606461904398991455689406672171010828552198184898501431420716942241120851243233398476500917700677918803591246555719063838633090065656875489336440483471467628151055126726498157401061898140620444121192156079737183585266956852848164095566531100657066837519619487039534232703569203253138850467544842542291136823370098885830304525708501645027409370088655745434220537949553644833373613743402616123305901568349604785715451784502942849164132919390557456803504703732580947049265903738642094517295428676438595708368996735358435602339332712905184337508374457754696415820230940708894518291017300785299109344805848286384796906834369800299637420043518981047247563618548252969247395738111803802272985640698509965167151515291184874326666026326439306383711412099777858967112018878049931034934059130715796789563514356622627003573437734047708523340426251177907284268180714402075191091202083926302158590070120052428298781114480542837793748918122332446649905042166745111090562518488111788619112340283316216319474636147020241637978577214456992520521482052912494935911777373395700150084488610369403018235242696027073566004264648662758546044391119837350331036307385230858941264316851352305034285542972702953913082102801584381493314886048852005081172612539679542808495369366412097207388040466929318484826294528363150375525471495203238414446052831280273335823162064871556654641635551457787301420293916483873493626347617653109134640849943357427319665107166664599513570458804437084143607351596739432766961512474346477338373850534542436450218468154670028555937699234243181424537060067217395702001740393209573393690224071985760454716714115393328897732722580629375925047147631856100421873211964085839030527231374736891109420276599857067873975744595032347806662834633585696661970619732035748314238720904175325674955746935405408248335482255199927060414932603732924124221744553910764858678268293319136801608606512550065929204544045133154905178564933755845194348643148610163369099355221991578105435138460584277808051917946069166912229908366680666487261553526306066339821018373199263789244168052603427237842039436045132939685951407512195487242993166191193141243116260915654091611441026235630673149104267657266031050641214898633507525746602308703872362786893470644874201534486760542390725505357209818763703015998317791275525818741774293237575260135585527916517828645768768169407758882719134251790785033456511145470956844760943340652881470999697823927738410925004498463687828622473279784074976800225344341435089511320207213395323627333298525817758135462813746132988863284273199371560942926710483018765762132244644152157240104911550837640089784259154396921720672999577511214880725889027532228757227707412280750279584224889738951149225187399247248355384003224281514956708357044571886544720610004276943184936787668632568883256105942459724856123187347963470872699782599219691672877017282048453838307304091713893113352296086594083222038546197214821879732590222534952425023403441503300694238137114660788256477917765057813982214461753133205630906827587550826204063699095157932762290019002189052604289900394453204213978380362440958892603264075188636711380150896860490809504383634468058488332405717800272577015190548300527079818053376111768129332554626096106138918648144439030452890063998970681088967311157794850742380154198618641834132149401634074913495154767656530711537380751142794047335810424448242894948765597522548460740440850338652707221994603231969477953695686527193872020085913307062031217163995655041431754154718243058952415705801215648824655158933515559365887058452007498558070831524444840956834475155325708696351792828215343858175509798363446042505621577528215864703729953844206187535948153618956976043376035500442112330533329737718331788618132944071851911642957720017955931570485283680193432049551596095435148674404844198991313324940271577367555670612558434609263354555331786522762775190510027489339715802363323608340853067005202267416734036711948575685576366042193929866348561678462366531697001395552633881082418030719407985938868304669048447506706885997173651042494984310419910632393676499751368337750972308606738762351828573267540249693647165834413684255529105580403272097088509541470535725150994471309894182994782434284518529431963321339561787919162407874927423916455115489349228661752247808435663838670142597728776797230591744058308455912420365020324822220649240411532791575774928566512918522318050291715458410047643441812609011135745645760370855529273058396770692749753447308404058573458963847221245313667983208653691527167164660110278580218307936746777772799346553594846046668836466675956272851208993584642500491009254190475171891172630753579507545823908897842096342623887379759781251613282284556899964058151154687953705082988998911760505059041566131789477228305765183462742143801420035730716758034939728735221093051064612561887203263162916288321615414359398592182343188820236624177823798151482172150222291021241071702706100674813755237039775910208293888107047577467166933527356900149087812161079979882040177908585297096608056575968087068297919609697843216797403396390693689478719194254190886587757114016044897619863247684015877776702217674194875301381766013695511397651237914718440003859233545339199690678665836871806791536625410983868070709756949543709731243969453872288628319726905302805048730785403417624206447215359095405563092088489204118553808534300099339823086296184669582972802726438710801967479424548917617214006241842857957016995707626479126522122093051656558169094941859056082292748941526091182854361495438481004915548541255635483537084209703128951996855976017786635169314591104647369538030483283707635575894634881027781977153217534440413736593106297876442637424450539496618780525170531136723269478175962109682460364444472925436067107756349933972782756941189014874565521656917846810915027800382452651772786089573104724032398614532393449798464340025045051916687710229686001107827878789367009204033378564672144326807218536602819641713397069065144386605103835445182929545151911338428536405047491185541657779665812003048357305257594580242524725590121527369055487753827111525914857678619407005373588632172479441227604569611738147166598966841794851920304855285903242095408446944177551330897703178989801618126316888230338543135791274146525437610091460047490789152666385221105079449651454170023078085648092968868939387481766201578125866374897158256648911244172772375213808243023222619513145072794061574790191524339467450661159897566115379014859868202816956363515392441857352380436857408097785337612811121812164429669320745177521675534212223598465066050681740371917577292572614577633360687314941972619900190864059074302764085671411549901657881264350900315931639619351167654519906429883276398763721512312021493958483632943295537096245820166842097071405982490636198842790737227543539498109490777324775046225761969653121853865869182102519055909895193652492513924004062720250630330895476165553653023448907498513696872748942404051863470808252877646256515237170914019941875592683653382629914888328420985310901856886681704767631553947871860003808461126604868466198771443353063715065312872336115306202695783071039533120372666817827094292020813130314738354606185968363215730723542745131725961945559989818482318024246254266457375252174003699541471135571520735919806299906586985267364723676542873106282926364541514092186151185353831267582797415121875164808541121612133639359710723869733495247252254311756926562911969156890084903053138056112717446489757041522798771288983243646429455013023419996076412961882981472371317946859621267029675225461159698215565018614983904996599389007965301727884876073450336550448734288542177410663740884020996462299913473949145029986626854441000153176019274142720746012466871771238680450485076992133771656308752978867065526102693931585861165775975304677221474579866778303379351433284776945628715368830585448450407345139004938116844103858444863930504798530421992773521366659760798468501740410901011121442280008280176938189812782005252597350980547607829801814913236782640975174367411516781437706836058980973396530591783688035870616045587617850517278723323513727156634225769012852126447049438091163387971689992684044174298265674036008366736973134270430783557333000662824694073128496780405273679753672705708202415331353702606384013165742997718551513322954177630385913934162549975330218821446548553491739730079329847151396244628523340840777258227818497654292071874387665206047210896410853662337831206973991611497245620207964785526140357426721860298187345474820727097116626790134130928385489970118406035671787104912451909621241192177460598028057626900924738325101656945006789014713599272978477698982803446833118613890171737701943905656132094905444030831358724778829094850548992319687096458625118692738662634030638609953168329483630416501523316366320544187802523024576184895962859692025442162404869497314471002600244313369842448262699835091306858358722116335582384232932448176701879182551604172078919211431110589766054293223238528179261928865944396300534028343472820640570525042233077161329318493536380049215960223518087405134699136067058414513105203425335775994593063293368852958059985823953183293904193530634236680840395212488939695762045960522496338108330995925564913928587058914001962713518925097509624676638923689613256686700943758570088130629727307080091236004326609823134527433075096387764249099806348562680834688580473911500223480187924435325917001135636214088844504335864028766176637867185308392480631848059287747209145753086008606902974685026156490712775195813875756354864635579666493553268514427653051565487068233916878604589815386095189579220757628710977681426385206961733300773203894271807926885431305332362622360705050143636160851288694289276059684128274136171908877391021483348551738774156105965304046748250418335854933409738716712476353389393937465824319574652651463768798103201068093905603231071178144671154204020856695038622515268053250954481529445227107709284839901201965813597244411519115495762751166545090537501762301830728583498939386447104830969822989382938948462055600303912521956766330886592749548375443258577608611338734987068885005750067385116210367103817507666272608143747006881497013714746513444229931703198639609401109353744211118409789633542199421740449023560606916623859236105546177204436543663874257070442784910277586477199871467136120369535996092585189982376491804301968888121159269888427797906935000000013326630244593609581668504763442112772024726823906061738881392704098885059708977703630893170120460653186294972979606205404552278404598102407379502686877024933707171972919378109011201788553023820485923414192987248174535116676749842046894284755867848479824703432214752355805782464571684319696722937530576844830300245210999380380150644406918229391717339641105228894031212828364903472768309351515389679492712967326954417229996104099130795248228704994563388379152424231047108490697418312901346262980049336934259465726633267280904687752102198352274931769895475803883954032667919034948094812389446259533970981195026530959896376585262849555373776003891234075162759686417040812276126830845462671868602929773565228415355630152317381575885061165105760717515010928551986580511076930898360773299536328591356777388409549362539849085099634750828632861708101564540925783576419247166488375937187665145139208818382340941752370022379186494936067796372482029990812538919798558880220266870647396928674835369625550291719684113534643214353577188868256289740224099873207759928506055396084564022924623595184794430499844459339178772068505445403857277247045356319240520883941469828517689602292399735287211754254493679651119697990101402756212043043956540205068188409885965825683344842825412042307916081257429532056446546662149747975825049263650213425147551503901230962590147327921669304101776176109601161735728924948852285911520290512703033600858210618921551628679914631435564275564940867855942271260829467806998937930039344560256153216580925104656531287814165618648502181932340828333853756421278668326084943622663967951311273579680768531034649641326426419887409252326393626027501330788971425226323131266068987515525059541373143712914940623420123193497883508658098945302382388614282121651543276920545499661991199560954104189379617065681443662459626783788468160605183717410223820509368891524440119938473354608852102805055024546099110393256674315933161867845551738246361178240456630900882538750239548134275909672794188138886956770891328698930134686489846517810594557179471517452977865936901599925232633266436910318490299992000363123945627182983417890859738127484444235857720978191359731354291426985686917404913685346456897306519395275968526155235350869181476538283107835207018741801711520666508698987994401823833150888468534403000331871061558920471930023374199781316805397732390225204571111835129418135121513211043325992690467233094678946400717519514205374858901771704673420136298841043444650072947781997246757411212850755684542991446711967092547016824026751543852757078127024960847763802156743576423897369999426073320740016786928205322836191510049188700535848081656914133920359734605737845215287390697758915581282153444570116246042316975432621292449892489447234732325537213424698893657228019175589227432585945954231547819826802635932279441757231443797309373750471389806966559421336104748066988795086103525537481754616419561214062025617334866585306193153334811645942786429782930577811293427386729864752907903028144450572544398829297406097659387192700590644355722038903657627474219785356522507906111744981524671487364292948540827207559428411185192861446081330364449772426463061640601238918198243722181001034631734312392630175805308316050687811483738095651952732866373829137301549113354193416608622332859271477935672393819474106253478559391010128189895731494601692899916643132435315523361211272463467643891153311243825632357713919289515871631893662062084179679075758205375484749685747774037983765173257177587810458465531455934323275879091661034303987532508035923531893563913031809102400293707610103719282824105415812571240135808480045414892642880693079735811187881315582047128516264393499095967149326509128092001806783073305169587649446108871476349255625438952218000830393378363237171806255624562063775710791383062549744863213859087118737385939586860346160422935783805776500681226345889659268301425432744385436384647940917267976388305595671273456110316588932233873150081055266178689488243262988742576426625214510208435343775738719335240854907744244003439120354353520021350701253815606450824221131028339270326282359672964054504840726510959658316740806471660343581683081005718257764551196511709707326386795734958919808080836510637598962382887211141575316452121049451032424722461150778095586141356942959224430296409219247479671320924695729682410257016025722225956534855837108073299596496996537180736907534860578305167210027663000605651086474287624306758249688590687631093318005662152810230925438163992898968995224597330064997474585577531298424646722640321212565919574472835467562410536387964195453563951019830974046628081359098697482424965968113464228239405837745472451418156038341290345468575178853846311277305471173317926641138905333214451007564392068519851425579351852320915778868240974281539926102941470932563025553113226896130736155831651572466844087559964970787632665025797404714332055155613648315790881240625035634288727062926713507034561220484978266296100522607068631668079070794961189926108572180671798536427087486559265171829021735026289406274381834204421813544997360744560340775596743589975715796539597496695922121264409818295447284960322165827081330806551260732916009111990240489108133695521119665221311071179028344605627044152507046536414334253888221569568932965985682678035923017534046842531611977101586268530084807240499294637501153030904007501145873091476474170470497438897695261410108853477145504902631231510028953903988180968723441146903056708567907984626930735858520218219632281297518131090530537717344135113483820256843520484936241535726459945461899099193043465280620057070779568058807103547812373943345404868175011125092346394680765564529335856690048190590375985010431570363813268513067103436420883978441232356464489572364365387080462448579704648722154205044807949770135636251762122913063306946269932361448358703517932151439821107138292868530935095491887618973694227459767053598663314959220616222252328954340890057748567430446991230531735944509603912679613251069065482049518239213936418136297340244922608338904475100584300998584231934132007372546512828784540982646851007463606541767400846414956809660542087609410726889303185338910025738971350559639622034579196823468704713804743938564860100529716159601571091304463000325287088686779601520384579192162193051314080040680275341692641680956516932088832517832011321359398821213181103463633922335260661733122713636794626963645499278728091798881286460786366188876448010661820238247888632028845390246798749838506158338834178973837952468445133098348959317635055408034310542573963480775037650691722199843450610560574775151594989620772657389866978496876371234712726576186262345063303437055472357571332612765326812386046295971516403696451367110395326955766979406000635967150628295064701112020637002833158724441715513089392392269242229652894909197868952854189927695908566332904092495144648928712861164617566663486645264421685410633836727585107792394687136186493292276387508956758675471657374436256134856784916292273375782473214593137779864608089977852820868463254365515880000749788197942694445650579285256312334878835551473745483457090014597328124033323711309964233968446709535365739352701913322556277311843781473660196132185269250509140078190230760482683143383320595640576069316343288800417492533575111843753482454602044032532711964165648934811089516659088301003540689862274084439949255007221273110287985796507648712735194430684357238021447115307306257893558622909875432985580693720815522040412592635058861536906650951204559862989459549446057683882352036680540378129423007673794845649433174168839543724344898684910652509547881538549817172603946803817073390126141220949760999431555080390762091470826545573386749038457120496249404603982068590095819126802069259766130091390722471087671734722752530450058121720350032687070814029517675059923081939836121246464764756071714211519290915788561870179388036324788526025052518700907240649907422617451520467183661098849655600826860671162154378641057002102953574685464989562888273837465213425162498553609033676163944281014413634536228786349277191291778392715806543180506411860849601135560541768684301730725396405839373934337623914821973632993243341827060121845660778315494522730185957018571654620401755282913089995675787064638350702061674384743854202298703817708634592454307130630834217175509150282732024226540393609478686069480513410751835210507001088306662333200422859366774211385269958175455397055712789107290448506858562904198104936743346855499021324424495591258009881887090004528342438128815580696487718598018566254547707453921084256619068834767439661330922902345015345992046282004845372998314206314489776070370440454382883368953323635619391845335177182964047585917334150286323113405773124333069218668930238968552110547049172207721984951634818878000831566087138258403049772092488174269530306652819563743301650194522420127977367619781492849209994755636085201866091977563070149143371394210889834611432931569701256010321664099181338750982178102068490281389445708870748557550504351763672449949662542540109160070461467627492161755111598255707627268310928386715188393465370317337931745466882542978332792886715164806391678062214830115114203736434806566919385558765065079148702219884654016119644989784033303715643981616682967844640978073779530917717945668578654031790934645241882553794903885226326409684374884457342676431980965623850487076599515549652776852857774574307407351175841704854157450111521868199619997258615958754808992868866442400992831865223903188127470621529685930515042700964024905673430568553867099277883224045005556440359775639193543225134915050122773659690343490706690553516936210786470294474146185843340048402256579547228266553866511488869403075656388553290420707096217225739235256750279152083498014337349549144304319805882439430493888815635447886351327216628663430533206919524061968567420526474099969274529031459260625487868304075916302398427628001925526549180615815928802810139284959721115650079030877311611799896735700406794955278168969792736799236426851589617842100073770430201242095227481699567106808998074376570391145498120925275998233709283379409190321428818565311309147786344684685300922135696200633205561008105854939311701474033179418695490463010600221203630333491131739750094388087914743945066962126947655205412972114383073258012127554378518007414084136077724064065589183037852863929049717027610729373700728024230227715555630803492618908036808999205717433284975735012240427954925628698389711555506298561357817041286535771467407852148358270068812697117930839049223660820137260656798368330043833848761969018912724492073127798363430801693115684039023926368655709399811605409100585227881256741044556674141994585519242826487446389524540542298788979444953934184423271296488916909883923648493840492763255937836386177611587265674573114627194973198700108813530172936708916352230647430308690902320517994622273669797571256038649621765693561910746305362475425309319559005264881683324260877130666738423549813896938149369483239004463772993669890566602564270259566017926398064946763972960451927428143949280069474413089582111178734371351822306599507422412299475579968920315448558943962489349277094750744382626428624496936161735147731742152904359298857866922207886867435960303351295576635940064203760915165365410107562987664590577179526362610096733431314648617486585049297458545132467219219963055874899092887052164039947700349769433091391372905374583444411977444517055544103257288435976145180561255812789524705969602035394755203479142446280291175912476819280517748717204614978436252631633946360434702776624376510740955356142171208661570992313835298277937252129376668869842483499981273423273839542215184046154986874689148525415241782269050315218837494779704674512004031371634909876393971640409523616363373454798702619496274029221399932290119459301821283222167291985746421724590642545296936350872783478666771214169785543397969344970917784036365900717842114112164430468878785669446770577202772409205979676110534882361598066390276374043381414404091657092402533992219950141016991272978132132049733345444206044446386835281444842021892378345589531837589013338324435366426424797649865776078048219438739502493826634233633888483453230667336284213066603265966882034068441477450658677946622263604124637571728988101647399547955409953516988800907738969328805824360816177104963027345109454673881128044769380440019868846476597405813565493078107799802946409573989821935862619354814344308005172558982578476287527840617886072721513355334605241460057608160890380654655799400636417963981007874308655213074137269155793559782880073070316305110238081286386998858475651544037141913975551405040857563540748710377351417235736216281519284470308870862974988500057453072551969506552848314360336764853711431691110523743159498651412078328895690423067028947948155759304850050785501919268755584505261154460413460710537810875435732527235709675678516629018459446750676005695450609505731016983846979416418302844363048343659701713509212722799434630373415245177066948825056786044812051504172067829683944587405267899986234263329768607801610585846583031225707167261711767182119616388888583912059412825258606542437416323883528520698977198278738819875199648462605809776919041948472086651170404343275621744516092782300203577893494304909893830964045976528126889116542061272960388793534234644138713239879223374626907854569511221539436678468287286792129853237939420590284051257037223061757765913826449619590069226367526808169300097186217481929629571078581878103796455909376438392226731846638166045668438910836732811370957644171670847382672673935429657223991043882569641545754292462260720797993684409781855017163188976342026040756446956567980715614234842119289535880077179236607378240778617721387140765741754803087007004345518797821505472885757840693190264179500969443409137837798250640792962064145459589897830182119213377678215501168563269880942207368416258346623989849948989989075166829152928687478360567689893916208816077871261312617476201553880109026304289813305658158493209035038150264110770140692297577437093898457583599301491160434220655147160227195613810940526096611461118841930700942520248247820941807680541149190843312087814767468145067008415143230873689955671984964394999018646472908488782834225379557120689364771290510220050473957019533655646729733434409309746047457438389084801407454813500119146839210793306112945525819909879734077164333383574955540176581365397047542716397011060974073233140124149285995191035035366395691251163568490836985694016955875203564352349201782333975153773436567575582727234195398316327409601701253278571916185957013321330130075462074104424125914514140600048381123431076610920363602442853072666361979578401084059320858541989919658542228932154349113211517950282824043316667606264898993923112902700562602662779628347921573594081711080682344811251293402969316054759652020491271838524004450349897561028223765391996884922438993726413959179528520144159552277819075176139796861713113203278221799493192739742010826117681428806798100848290474511765107462762464542298683785301260172602982589048076954271352950189240572619720223420976676442219204731195729470064843747945782934823424840397045142647175105190298431383350254359094880824368642457336406820849621415727991053153575270221741395687980513364468454639271353252444705300827927120260016456566057694967810855965214182713236814545777635004084729612096847494074325387827561346988708011603596421065051143664547083871098523169844631322697055805626362560532015089884184404432179029093367629121571297390502708412261783343248319362612183174088365712924941878429868072576865855466224411692499136006035551399734493975513932845481362540784226075190919573681094200359000478139081875309600444695405651828255043691932056126760639093891108369519800248183609760243260473378209281438751760976243859184700602605409516624839964223340704012662200140701611477212598276891425775379140078775508519965354012732155140758613255910535031768519200647095430901099580506388451523927240246356829291822865258834684399570945463915187596345251835530412146631338989044848978808735811001230320388535487196137056043251815425785907237605837954406945275882109635857027523283253833378239602635986333885891173610817343449308386787243146097692291007182254397448397971585624988426774250932287130845440724305000215195041343956626351411148820500083489608514825958807270564828263781736028021420171874921931008207106227547838264419571078426733246099427322722279358398504985877254137388063658825021539969783314006571890827243886637625124584358407659728666208008964270115178249244287867008243740598855736654549889548142586595000022364854888165473581608362164085779285977488967862124627297251153587935085419883823030053788462758101588577825431521378138310464426395729457769678756487115257655736785714032766759137226226854004733790618911112091622106714571532827497472530603637159147053037952738313316758916437334014197102245040406635172067062727629809757427439799436987807763882224963039853200650902519706845946918950287578037041268190488114079165249820740016690195401169517591243142692108483309791593876223535765575280544441205394887652647856021431979009366279509577145930037938693445727766181412773169876330362073207355075581324441107021633535766020504541333211776041962881209413370952407358501933797516732347360604011929517144082062309137905611082117877746546975920936901551670759116089137909868681253993961222515987453256718562035334694519743668142563020479475327136800568542665368077509155508149969760388212657453776941925199401953834846567195674330302502998141422781458801658512922458733241087830467228043244173452438724284656224903714516631902139162176276196844485740052888252209435543614061233392812154440593469025694038643398736569651130530967626934171291961577498425738749246117344643075328951262201536704680348307806446753573012068647372378551677139784920709826826418237194451766868512393315357363268541716831029690228377902953031163066198324391872642814002673954954396486536445346513470245439559752966185428421009813366511437443966021871009487375641565793639573675370359692901407269069039296173691416309496382384907173785088384202487452333626646422985647633009661915496437674659740061925666973149835826220497806528448423827183737653330082532411235116054858186870531613170565797870753157604243957401944153803256169390789868308260674136643168467257408244351910734308435395939569047248853281457600209159626510362673045624670796808598718694882494349069723952415338213501277426714180179862316986064484494444335580954875137987841543273172044969344969513321028710818187673638224045870296853577566125774901874154240978935484866571015942320258300080077520664224485538822810644306062998787847308565994603030720486732371514240593689351871299752868232411630245927586670150287714342557456097707529339782175957416043200305165157427028039648774980918454607987817040936339372679884484784558523304499038447893408864280029441613928300871070262480850307175952001617436428299637398576289205424946461696529791270773858018799783406395137174748404524621771781828020768891570551010734103346218056010168396422711249457520365323794552771795948433947702664216561730077635116502236378333730770613764486318357686789396874120746937814072379933420905528696719665723455420425807907869148799503007664834917114513028948374704249755089561206913315111274763144077638402810502523231575797607984178922532649773949233814495005189614807424789235176006800092178006706417208845964372809199899929451133793798330209413743232336320392548345123720942326721362941894597248413786338662369968553073000029879469272873773056637547607603489543693063044159014323080871779359331557167151023882029849782830439426256825236853862007879226957017482733904175236060055649613089174654455052234486878498533006893192471048010751403963919165474207277770288297825620531663915153103265050902999994063229013331248628554876422030039224471926885787904480269790557511160725843046129165277152350258590051311389740562387342232160201507511372787668864301488041952782088668498806649741217444608587611396604057742846217645048445009676236269264162455446987355730297994401812534051973267787622178628437313252948728777654182393281717051582790470876870864441200707143163199392479188172785066176279142017554862590855997515918514884302070427766712261009393226382237867818501541085794937198808952462928264748556149937722208525030570757687454554573324918900537890735644117010771008567273060879299463717419328220739953084318794500290379555692145483543462756200261859428697900219775976474858677615505909006287492356311826256130452938200599956296497334774840553156518760327569721286049811685867766407806568276695203444029495233226728990090287817088010516371869866703771357536153128832032898977892114936770496126954752427744345135119378771975133386870723728175891613641169478125770087911430796193405926632635496517805652974642983597477583448101549789878226608929188310707909358177686009208831225438369715408184643698736477802064578880518151363047017237347089838751308230645073413880600843591022990927031590545836012215116661631164852175593132419834699356487216904290795045077239718857561934890554642569122779916560902072194395488418294120052398963306880923214575603525531411230838017024588545552637466132661666812521713216201084669858350810528051466594412338404972839791109307751276724544961608966973901369916412339169825532388985514605805735467338615102336839818743328262907763884451465656356478001243289245277996171085050521114763770509695490313758473487955336009526181790189341215242112717901346343727555396168092495920299296009576968143317421765404218262026872313833848304899829056668789164840699158102152656620193079350418037481339890891876044869581798167413359798393268465495188267652121404227010428623200344345832250969413071784204756987967215912607916680456375407541983443797016364207977720184202605075373178385282661220690667199964463694601912624246390418145194505905622418353632649478156767122564577678596953036305949291215401416029671224279782833783484257804259907324944895136197848820200894106019959711895036717816424195877900705121575629218799345773346924672350791195187353635215865833162541061416909818501782968861891018898220235304293669796689093259908008094941627440280860352441990146882766064379796310607187811741217566594018867221801678890612125814574614291694023670553298706107374921322333496214325665164836320348818775746011995345054926872221271060294494122346441971163667869429525741104628528907569926121869857255879319822432936229591393775111766917805464368202455848007350335875768294365565114436072311430205947862065696520581916007651590689220349113890758264928560460606565924624109293352497162622608742447606907047314811260141123732477437899395875451153934532844117651455992549580092244551458135690390887780318172023157188450239110967109961993681898915013636239729877727415505949031596359714569875099133096257426487746584446820220475111409344128904907426314930383867455535150152957338627659933936134678307596542178653555149177305535881694965965583552119076416622158353389471808749760166364698200660577128874657532741635039145261346305436603708765272646669431958200801388990479905000080437996987656150746064241470734992218965634684078813123337207237028886694327945329794748365503945138672274171768407034784089636738027504741198816160833263572216111867843950230004775091043456490779956016539441185033258235869046981002066373647815867939561792831706015279386804545963600060557341698978997855315904981083909343975306885061826350741771352107786528453583599207636896668746009741641618853395596380278839469751652743374212725875731355582141130842398085075430487066444613408443584692168759478566426930132062969566408742174863384938836377294409738118842687729194163238414755761593560138935350538621264571907563289778757648333546687649116701771087325791983802898486093278760766299155235558803992842322813773819017687324309899680597370625533212146399501389632773817704945754537701312907626224568606431089875517079278640642899595142633857365185957630120482467412043687826667550384705390718516315349721592566833346436869210761500785201044494155301048801612758852195343540318124900701081400098242454644884253512632754121049295451197999430284694697828655249656233660646221675912263736302785070517976164954489551325042325728764950318892552591994730794426419117812349992844465280637893270064087965717598848799897624667725225931302595980237669189088209990732410123517640549070563576158174242977635638239355843037489612622224510873078295094441097301943366274076277232699156242131543344969758850797713913871391114624660454329914586031034094046735351807056436031918630708962213796389392986731203185289507866266146642160849748747038988324065091700920545860082004187163478555518430471130840846154307843496194642412813283377849976191668144941412838788187702975718885165491017455645342105003874575861671351286017226035946033434229295565842745683625505097044730860412398681036745662348173739580215811175297791439338940252226012590353534701389715741632901328398800121534713515497133713495330879528189759569942517506676499325756519664330055329342792036911646875913041901796730097818027659730407142876310253060336611551355385302501530824833987980903039900137954362513144309592706591836592200054957537694279388285953761582951286630668022987515758678282813707491698354657772870696976077403023266784173637708596058002480259378348486598291888141330247650105671023429451724328590677148806597110343063462593476383773933579237284360578618163707010052973358574526530699491926576525072861787861453986796274858152507392638556909290353210293171630903632146392692625991716911559399141843213836751013259096436227447606278987609932578306798590612727787415029076959979914022172110416262547185816155422132051311481668774484781723667194934184787968222410926961659058960430541493609517783190682732243673701152490919180585863021957183215854098249331555324482653377656771914042172531281477745704076620568281268436756166997656104053976930299731923728721787670831057439174287478629244158109481919030252015499398541243328190563987165759045442807540320969855715415680785270374964836875119712434822421370350040822731862239455619736356759566715262343181414367667317668782205951796350602373125646995972036495293220906310988743292410245346794005016768079381924089834077863737630426273636058507263973632993964883782520939763475454868125942889180022713643728527646390523067326167107580940894353796828883494261224575701830576716885749115743009725695163702190508959308591962192960220209959955396971507924614184160278697293514508625780774629068874369921938913048270900795698046806443697267915707772836171557036386459749253227236101719240124147369456419427968650660547688373454107245092598252057002703070716993696905648721870105114679279467212741858458744969298902582898642556251121193832812249006025797111566428105543649180443466964469313463929411564740611481863702794052302171745319845753871699713064129007145377300559619506008431764621831928045986645758901245117207151965669082578532954087944956255432427050149650574694481575935132185061790938820483339279406475128089818176970457724827684789962337779813145090847737650853330370417583647872781118252081845931452006506398969035385666673720112828967508240658944636771564274476550527812734086873814336998518904098091685921964026963351951613254435576944199812979002415803357149038292754692273148717270169806749299504951410297364274949373795390711260961204855161487859906863518568643433297813731646321479717259339584127106590968793906634570989843377475771513277594699286263828846412778405723966739477506722130167027445864277607194848631762876894189012718909389843540276789262053454673651933799988916284617745405761239909633795626283990020101640377659747420038473861701281945704938208315631866577059433790368972791607243197376540556808407123713059964383408730649793818308355378933820059574024881038060012185146789053158032834619515923605902375730774024246501653856870550208058685004476754135057773031357871234331096995528002802931566826858963287140013919865365591476448624918148652017907451681262251651422064028507349183770761245113427431149368958423731632905950566994080888689813339602527509332845220127689716192009503810927793935887175238487312918712887385677417187991870982686057906730500420049351185444074254127848579120244445659237002173845162457685634750063712982247656730367683268569490336128390224528578026051574615354938119975060209317274413706497467006914155855960442803992742329284056106301730838163127245277720266615012774062616012379914570419008415578365488773910176657443431357939752695864611286058380605849521787388677778576827092712730227217011042540029427947879361311866198180842027803477495503449635366092963589823332909934883658961617772910795151340576083801313614664228629761142766327774164864532749281693349208871452550788153629781488483647549025253816381823308341206048266949084481625474028026713031227734246576460899584248208646305010927640376874418421686729138532801344732081921722827874582642876142648625046731525537965605629272138112495329317798451353044573722316202984703380849907794365589395628816653091553595165419106737893845784052102280277558458742016352091750168324635197070112621018619550252876812580658739047971545966580599789470238276836403844263361090959439020634712949379298538573416322735096822833405415586440370790370346887604616854409121584603066734373210986795759280238982655713591679361947962847368403539649566033421169167640764933181102755698056076231446369138076461428767858541917145586499650936820486523114504370537126912371048792443360668068371058341169156362085255077369274633697599820616373476231860412340764219712390210278739846060764992881869284140452109964109550670181229057803123318473712214852371718658088732520664288585322314125692267575727562557297489588106619994888831506057305288275106842377309131734298848209168155682321781464403448282289606794142439807068165990715567555106610910707762271613599705189477453580138412727548923805766811971834767296374387692135791263319056810308586997408366642838426063557390728136923305339758860615450480418392781211236526322912483054517710799715053276430092755900844523371642472299740344495234480926404250143479048998972531120999171755931598966493527926349333200540248466279342264345802584153678000094864201908779723596167630045145584689355637378255785343464378154363630286862910594188383305502659824884429628298526740167240001912257915684412688602140761860414165357430280918444202110630582378993983579586706827606577698241912394350079379170264854156388859076985517214871433879100987293365775808175330323005199834499295120843886153954457923925168346221798414227387707660015200248004069893590539919556520924356474936143878940167207822128354429717363030912686004177740041031173048902677668577309649474461004041945222040311464221786739010738951093120579526352385568261664947633646781166603771542625099359142776144547298928057903470912683436684673980849411936685724495624614442313101291889962982262495492794436515475948761075086049774584830698118158910093258692085275149940964941449487421935350264549746676752576594471167049948694563872031259154793893652321074076948614786010907931731039416555510377120484695340227829315307607279043883588055318635092983479869787013494506620412061666763267915632817684202578418310028482666638279997463278365802110018707286730466081400455260032248175019805989957657080711427267501259278312395390665582671865979238151951045748187455567807304196085896007151094139660452336589504502545176786884471264111164412016394635511919737483305834210687980013095716972884311671512437281297690367988428183645407608798364523749423205113638833177878808982956625281939352765282121133352609746084672097092183105511223279190199923756956945923524916300517898085394628403355911465327480822468755800880509808764993307129976814286705582646749308454439150481647928412171271922502369056301718905453494252315830535432405739129950348209055748242484061215354689277160968133149615731358548527054414849228691430413119611311945476074510709182574834045207272817722168111508504053224287426668129569489957167017706352488558264033501981094158146586171211895729666315608625486845207097619503261616230851404451609231239103360428651792257342124229277719064452683824825095338841623480699098219639198526723737405068427494528887406802572971063108660630432843296322676201430000952158291494104205291288503082646300218436645936642490646129662044935001933874069552533743916114645758172442681455993352922597590757839245565744003578081593528179072585213141962556685892617671110943276816251198078540031262072039286314648534159177649812412853689387874375454304671252324068757232112312269219094127382792576546428569086000114847418162888284414322962524208401447278452597387088888631064117705320947654565770040302206342752515967635375859560567499437488889816735842970874427268178268375242549021358321289986396013703200179670015132759549455207240937989679346416100781082891862784835943978944512700051789007289246934702953196078539298891648399406670859541788106994542280644370898090175121307586380437383863178459130140641277231720187632428664562135424483059161990219919322821666990008825441905189872322204293445229414318531808142598653817766709813243629179542703750779887555258672751160217881572036227299305402276193357037424674721462013706635861816859952506472556937148010092817869700336674151721129877899088836993023337339538217274289119305469909664156057040060390871153576476367818363010172941230768396260314283756327397012619716026469796138285159141701513594154452578260438416154629379303955753667183788159723103486179008314687135498758267986196650477337895402977502185703703301595961178875013673301193361596382639989651801748836811034162646697311231180197836426677053676066080406391586026666184715728198279125462298269477441726010183413214385358801314867107961117478341303251023088545885918170878141058952368517721465146769876149970336209813726618667286632466251241308189696435557969441937285060167563652393664056022369189169110671700975847076373538979172581876764744168550872055708989482594938230395446646166725484138154880524197929264366133492436237157193910824504059772553457728252200049303771283254243103415091309612673792423677866019323332567772113589406501717975854274279394880057062766232437897964309479210494658791543594964452461044357285376357376093247796154581142534580943478269752113024571122417017577183763276502471919416163519033174212008527472238692266646552562804759502000088761673602557253666984440580463423933264724482156839474641791892136401426046754339167873260768464283350436847125286750932092512273868346243976042752921116010240396103025455250113530203376049265765868311680851878855216825901796809340081054527030293698848889550944330857629709548861975788776477342708647228737719490112287989118784788691293445978838437035560373142122734064991337829798643200080224998828185338411063783141770196320268401066843941300372305548717821480213583859409740594541651720102912603562583085117117111398871479546427852424643851330693006943413313891348329832547458500650378564118133531165755854935184225577503841955974161984486309237379265312059901765790130174709776942677461629544419669871399426983196338620128839399869088716261633267287897633484843639757925744927120466636778709361148133196272871718049510720439287460919769223292520633264650593549597698089064861084340298219163876110190660304068376023093550448140022096072872824725369666265188110062390878110889828724119218210666700340527833337030965206358994841562258677853446637701717304338248059011503269124013948814541786435322506983115133113435759142187814487025074732387875812741610359640164919671647646406047891836050522332511478685693653371762418477276362568304386141845718951886671724807793181498334582899902597351503802891896745316805715685537980019027050058268227550330144135838189768729576977111509454516017595123391192579398601755064665498651022340638164138805182740297682514411809149591732933706639401072843395400371425711909744764335714997586122880752712649075462644827574364933118198099248906657233594424765737290677011560788744507588019885100371345108133746464914830677846243816493522927154946470443185301626185205016166905577907698032075515684987125147576769455667041453876649771197269744526124425010862916167844172556189919633146796688585830767904574706272686645645630920855271043002448278133330341045925941450012083591644665549088373723161724811419382512043418344841205681392407666546540529847500113755691946418617218709601200738563029323752673748965203230961540134773933065125380879341568184944837943834175607216529833474130043246451726657792323568239116897520992492859952161031298814003816014482510550448789038518176900279523138128528249182012032175536068306463160307904407798551985893101081940054853172041836998889181273714190385880122572293328751845360321124150588826998806526098994852973499163765354370272201148694533893264038165647416083487944228776794031167714781119478097975210743002770910129147236174933260456391147146810728240072066199562038187205099025779512890134410060827921957867186715546549642322639443250536435824097423762924485825055295726527171372650010380344058065130798583781840686446437033187454339365785838975055265963536715659979952287309715801143436440955108145474482189080336548693571091664930929853340629538815349087998827182313229158056442104216767555532337706499810079022365659623116332007174392586229715434626106870291983359949555755083199708704700851734810439352908203385030260014108120311483318464794327720911611489930369764048871928187504096942262974117348318177998323212828790334286003800071700580921524486671110963615925981523268684853714317514446267858899626080782929863441628404270605154295327063757953683884862931376011968414625929058186549992871540861785834209025497773103082178760846488186484800406521847818140339181388402475991111475563397854328726381998995158014919197835166864663112620811447037737343314783740738440726092310493391695720317067770678744215519866003739823769771555974009370237514658138370269818403385140844170373741505415532943021409088849158955445584568798724628103140350193801275980456527169231795646686683824160810578102918578331758847419396281553645175357830649684855079103513252083115070904779441053842251864864937231050163112994097616684687263072949588957455269022707545193516330350250823760681096727156036557425302670718480869735720847722210205600448623807666791007945482281822326503811678338102614197359738259314413820470262279283277099432596244532399612282211702472466701847131274660926865131995592448506098771441285109596620554725280327518932310014784762072089215101577268991881104080329541985236120673257089418375183046742587725746452995070447171553947136492744294214790246731150521371408777082613218860014802134183899472162712385893498346466259626403616664114941275063250842950670305979260556999156169353581550045935901743391015021511537000236370667076399717282527700337778429039055108073046715224425167115292816164026784111295470712258154376330454309700215382282089473053518678572238409892059516630825291031204972920006312941534542550745199436188439647056042626576506819314576513911387291879155169134987980311313133820027611272175000198695572788859274272904304481123849243219296946355801820888872531699313702399356109542978912933385253378555245187302123821568600485870907266000196765362908198983712713892812772697149282297429975342114883796056850218864340721428042146015558925035994016103786274338376051491476985283400672108034714056844726293869577621040180997138513990703187823789858162301519840537049946533546958881270289440360980654869601547309982681446858417192765789810796607356680340126693254798122593523026410840550057096270747227172642850734360160629028803223450135085830550209196234068669604179585498547797649860225673379185215803732834284562533729032920561559230361563682305273662807065774101879190327506876084089006843803082854820468717892374374637751717298968374779355884711804466750427852226827537294123898382193521677885309807085447526989379406726335640865957505439671334576337905875458629127212374765605664146576869418434515978082381878375029720584015826666591964856496478021072815360289084997081542696135171148739708075814602264426549682764376078979394121514852049260003094049642582595098219925509645143576167644253444238179841370156765923330035153185331428974996057715426443513864931488477346717885130412087753293731734408653129817473916899938017021519941503462700340166063696695811885067060549271049395712348707689676597650158853538109529151036153769356259375293865864654450606558203430690431004569670460967989865842873121286976385056477533473865625981707952448946047113742496139085918363994307270199811353247148878460848672071368597332118734356892934733312655966344941634765658528053500252945974621658987227315150793170265381624037391635812330541294322396749969772865951740669779861808861103712379096245882802328807946557447940889550511028605475580663732460048258583399984459243606625590614122613017013974954782622087221793373054609048969607936474280381709647192837482948773411686697233421459422236700240603459251807408614082846350505962278437010424868364532905495099406599317445927614661639623714535205321438888164555351210784617669648530283206455305150295615090717509296936575286279122531861354104732298272130813210352089975197437771941522573984230585561099198514479091198065741397101261411997698963606033500321807756943782008172161901246398251092949068658397701837230778935136942422677144879318303709091182903252204914096421644835567030100830804335180330212465464293643209781040773282958545146340260150749664915473451898502911106660094556850465911308757350905238455277797441039721935894418336275814143126096459615688764430649482358472409078867195209399779331182627161043079287559845095033147025223774876541413487713692343701316432228749378879753172926353318832638200748062136802671039970281455744031938869966699512511602096546812377852211709458456321812156772117107352790451309470808086857171358777834955190417994249454996727592610545957038681433411930226829773926709839202813425206100336198742641634154429233716749183562800881750761953204686240260988955408521513029313618461131019838230909755941166210198927508356482675537994646241830370402939522525484306401694951497800371716869698165081232855394561605931095435795257333286233149469300897782502164707796882118700625971875718606560539901692128662811099422374726273989533060178527400056372056977977475967115687219273047878910657451586193576659728243256597903540423538687800922709425043627533149950940054248207477414468545747686030563464378807093252017985353586216860797409529280281794143977278362191503203194885361885511780141243780189143426182495527146590092913986055209500911785182092759515719747165838415970829654100301308155108519166270742481230866550651634508586254942586642470089519938330780786944775948134006587253478866925007841724181972876383721939442995629525187746809221329858536163477185439693240467945087058539675382410513768020154891491640483696311035848707435166808383388920810816620467604780633586045423017645483240824654065164803870255989948582592539815448947562431832075909279972379199488492883979257008233334500374381069992902023886958286116300085797713510901465506015413712180546447767396868728143027251856716796646158089731864657570283313776655562213555673763539719059776715045924903752388285815624290901376400822914734999830035192499377549568325853051309313084768974101023283396165396810411398373185710600141911414053302629738558917060987123076111374661008088312093867267318302491522213111343481527848012521299203192862947628790907741177932160521624952346942603762216357071708478752940186852496974491388270684045269809336936893090822065840417088992207099925595439994013714246337391285546148280757801111443732922557412726022555445466827473767232158217060902358972320547442005157214102569214112347907109954535806865637575842862244824082659015171849943575929311828652273397326222666167451594376629856849236730860633887374999283211855427993092583864374661249720390933275060166862783650823464541641645363469966728164286827394071284292737559997152877413760568628871287091464344076092892215599192292550213941325066627258495974893934913157251982320225429937640621771060550423574892852591466868800373086299913582194524180687382533945366449187251240132269035140827207833510232249605009575631191806637212183587695225929625406418929181690442813565986936498039225925650271176839310384853384027670183985197101519691604562372762850346363286199140749562872695553982569057217712851648032629668874138120941318160389087710686142238237756747742820433446702190445487706428581496565429468720913600303322612466534602648787265926277020737730632797457114446785164698286566030857719569947321581568976156385151129875559440946998148260219899493595198385905551897132394295119371038823807100389662085398960009927116714762078645440205392415207395043262444324095818292260181957342448223902567069269144860655543310441574182614429889405573905431206389437980796606369206114755927088655327691643394919398473755179561823029027986121710598317706193976096899643724029216432437133309746603500047713838644260851284106887791395575579966464724669249209513352601128899974002535220613164284028470753378444600509634633586999441449331781013795077812454892413781248015002396503976914444971547123323496120500109769410721883506987190845670630814044593451097218964194729537127968898232693037882442586698512807237413302740228626760728636303955343741854225099598197615675369884059813990474924205750924206902949732153324994496644145107436885677511555326143944597274967595504021374659034491064394256975088311441603257075457700696119781037730959372210764220770291866740890851201322788953483673256607988860929699422773963599576059898494769934793242548838170152634220642797285783358204026979434133625330366704776889291152101006815426924909438252427784923257015822847184877976941523674558673019617514782664146568225445670002822371658390180086563555460158862529609005340126980882759495822817064785269850970392227549014393226736306444533871459697864410872092203123252114056372028053489579231417764712741127523850901390714116914001253190500277020652220198768943085365755805389242681488614194262860160039901467330981078482978166685464653883345965928730420537790206513492343252476379090050813730200774086141888358312186746105930262634933508842618002967153169861028319906039585271043018668006127623565310564679916458410650199679319285864618478428242124269535569745945852655738690644835208234595133529382498014118788391420397131242303183713867222144863780248942437911826379279680810880817228433300362792266808085336907301052285680198785653178654666298941393956491204006602380906304009862015255108852563675640565105569380995184459594546333900152006259858763860235185312714710121071372611733604136542918663889325297685331615574086839622036183232206962537372309472144611512654186239557995442047338921959406711742620364040194334210382435947771432392101358724403383647188805870619246744968877377590443135103305298857017024829525305473901666997084590592752081897629537394151426306017997520837982301823958914140564014151712021098336577687098712874212479962356051981468234547759548126384916144864284141263230706345830336668566127254399950438911190373681922842821677175806176130123003915326849271394649805425112899565006813903224872301731210522701093553778893056093572865366401314180968591030551386228378376647214711484544643540989780279213458481230622197228653919322400395840471083015276198027184753732129331885279152375706954070634920743751938258644187695317495902826443881125435781493100208182107366864736183439955565308082515629540489331716311394750450953110874867374405853412587411710189763077724949255073924271840941623870995975789400945781731246934830254392577087080130269930231370586116494888962711267950565697727691211669083196079054339550228564081786061780008743558308737863887883038407962956700977469754181927218131419847433310173421751290075508645181587023856128696718344486324069266276751964567924550838836120905615845659140922817099445612168825578163967077006879534665330265846263919097420666992536851523297520919939185629464075021508174572311187579904413191893557978224912786060857056854870378269045888719334352354036509873764275549206289675852582779589234022869509314758221581050318724159860230168981671411935794524683801448783905616942085447795133320720630461333601439923682527328798288042087882675914338008353431424991390310080786010702135128420552917565096399555549125574706207484864255442913591054796231920951378622219618422103429587965570729153502203571558198831890670460467263380174697146915962276819678067826266337076585214525201551552298469324769522139216289356741013329301563950455917237697268907613005134825607901558396454143457809763886509161308691006930871338906490124765326558851843500693561376332507274678353187436895547713687011861389987287892409310226850109469657163930561170534749744122597541113106121945752873287417139881124711506087981054129113983371944836844205369684477763629116696643688017917748576800883366648344126119647343854774179915802077919999481009859920674298054446192325265928413379961010094020348742010699438285264200878159772098607843469735208415302245589558068737819989409178516887690317181777007050145710329602826204161454789081194516110357923586598150089669247900339468143551292997381575312221129128912557489965071777774164828412919173409353991021979404569407597797743649966727948428219906401252936248955768379789066851973578312321196519583100389441647905851439755900152538845694152865177264165820836144158036775073557939253166724431703243461628646297373010209778725491257341488028907756620865454885785015135037426375128454274953914124819951586175068785539443155231624429350230319012848357220997904626778652035334088368530861688847369979856269704050193876680750940696116027193893144543771872106300951784264892614944570677415500268207465926857535985720052466293300597532428270468588191005977192158736087104103587013145761107444240422681961828932552423016305213771584795016225758340293250966302461944303013773902924227594392700585263173390543967286079533835977343853664981680104179359536105339879284404244750309257856403962510180336661318316314730374326773293500627973885918056268530380776772819839316925149327292748400899079759514550709211830857851022708619889360074310923969391856693760716238299761705643430449323081494097698635624737650703691772930413677012049454044878213893602771319052838896373525705907232890165084918512828033372657811703455263862494290091184045089066050161632928084644652918864477745637726572523456731148188165827059400902202757661275700734074981025593399430183287101009366498328984959887875013238263705692695003661546259524236897518113203750096731408950527895767510181437182680197974339771544413735226643898768646713118003306746264481493834084176295708822474237001794364753168843641293914096249184493642738735103006872080368114431064348539055251976514337358805722617083546753506281991226493269724433605520716616364171289507915753044359511122282614041160683449686222660783184900965145231937613647460214685011272196693226912160763669992441380401163201726202470551166125743177750381686935008774824413091603799491679136979611129322279040257227772003549968553036825324714538471686224759884215955394005852147708317713656118757549819119109149224674765205889100454071062172889553906940326619401575020070758490165052623252857794086427245866240232280313927134345912748527327265813682381819947154490473445054821402056610564419263698796353446093423814394314572183540653160773033863093258496295431663347091415125345768899370372320055215558713856811788615942136183926344448835319528147520500490217264309543943847187985948464176906440765469209980784843569580883142790623440914656538418945322002719557739730635644907653237698483377308610039906691418226568989725959012464556799264332502567055395341103244605397433874441901473205835363800868370234509218544579058432691979070077860955075090983580745416187418039840857851732023040565667666304873298011717139377565450574988161221455583920884473666933312746674215582803266899594395653136381782813474285021991139735482915362228057747281313021382454883072290397807289414612800797170516750430871265881027122714789986458854267683196038670472610913346415551355738982174626981272522787238089334307285123533958416515585454595165807774505395876477899837792531251927222982567362349240840567739332718518834033358353352541888221095603863387042543355405206327274157549969647850634994411536744546416567808757274108077323854410015553930350060242004844533744481703897563827913823868476597831255571249718529837916956868473792552797439090784505205344851334891128124501304074372792646888960785968879607025925612942902813229325815093437009465350709386163963253542960669169648933971629168374229805026720230796432956979826738723473697718516801898452208437738884473785177618577788275090005584377916318703590820867787782133789309484492359054207769285689277472472510755005371683498520916877820463569217534983056132921827576770352831709528144301021639266031907348447681813318648847471401975803187222828346165369817857446410308197521649146208122259559084286093809765719998791362121241231501351982506550153455737553562121868315937831144579082817847077804623593907005048433575181408809690133801383713246318117158922675654954649594834068973399033128691458353733273282589262767536366842800526928979596428909408594718855498115444026540470251491908224777776557955513515847415434762915350349562394221573413251105356125795869825538234605729386643797254785518429484979338575892573571708950291086820308607281623981888633067719910450905335696650678624842527446813431124555437996755269319534969732583991605458191874562040722909259272177688475758604680327095795468438375176908372887304105517155699359838358664201747025661924670849128089952567704072290034218182558302046999413094786093134382801305025498908219433697090728662279214923679210962720133411227532055351330487044268054770217298956090313017993690266668051257795681637009583670080501336170467633750255394991715028606906935331570430661063368816684738831147486621298735471280609950836266606517931279255029175875596974757324499952673610131976243012853869428952532753690200613127868285150326284076643269976529778669234435979678669006499526444565616172037604226917653360865768266714924521373170811392299879155031638036599181796227011859281210345754753433738931219974548906976443901078682838362006726443322182649075697590277871970546453949604520724926292043130238103268593409751759067381703926395548915041694183985148107537920569081426712823795173664207876967865109442250164646243599946662033393522997346796509034252332757118219917993504311098308146622826702434208709498672729174009506889902423945372305651504411646001376151097997608278190059767234230375091454230635152859930378122575064276118608729955104921804289852527895877015697857642227761292105490454303198019821512298716456267858467830139508331116507617299076208998845558012743240428655554005696291927764279395182216784225181094795809512866335578452263087540488487701969439081280305121134589372411305805709395431042862924745942319660811465754110133997653799144075889674324902279278826788227504910529186526758644747325937655136594829402423678885813772106421901066763210454837650248506761442728054014785926827410313939772698533401341519425686724105695975430567071715457729071146844732616213132187561966784604542436092747471265651334976317215844182259158484509127902051363607727939791256170451257093055529877978772850939048866905563333175226292886589046743158475058409822417913121722260661044375663710015940051934640356474298548058851726910074803437799746458859998895291245802415782766170634578797292556179066940853914533054443880121955415519106563626845264751894948775140167724576280516354843968426769773308664706888864745765232913124409699610208349096445282149519365074780248576137823379388878761615787255406200716631601782195233297602705414097459986118738142166271684034952421989306149947177839608209563148989986003103841973439156290441424874052203868471761837358048852870559849259366868260947085300585860811456919526938213424157251936631367788130961726017190450790933882726785578312523443019047193620698268110877770531908355625039126066132554039177843177280577010822188685323810756249324952380059978188173667619047040474166714417977761900370261839423537804360444225470701325449804318142637637403960381699434125849755668366223817817885339354127191695791127466734420140005396446502226650975243661132865912739524733492843065154338744112491473275947855470754655070469677006000766626634217618280574313334642309026987002000208813403686136834656304553628584164352297257661264869111035640802855426799593339349601051863474951671338127681983347759256716808287709678298614909265851808559510228110930228627365153891299060160876208175406270580245495091327341329492083472587895300526014291695368450258643661106369915949407265477657202228671933140120803995366459092473893955698389257894937238899426830755133443882716188995590690283687745204455811966843768628466187023834398610594579268023935129185557640720444123292347178554550937027099950234996208407401362105749893782830521721252014257902756331084808988323823285913136549584704460808240328699917906423264962577904380408870494208251101104893925379819495047404590120430624449787945644867550051900064450789569216916685259690206101765926907288074467173391817327493791300862758824483173498737756047844594679528668023145329126953759694460612100334948788872282041396178884367781265699926958147805825636072382863017125977017553219281194531266061934960228380250560869142010671843545135220448363423037492878868094358369373449978012383374963670967271221622782734168067471054990582873608123271936363569699139161203618011898091285809213434410415055215974784344116153762251265981498888997163126867102285629644527269498455038619302603112022099136355818441963734532799427158049798485111429832142250472562697955482232650481090904321262354621662495920753590666224605612160719460956203954000190629526291551757386443027327319215165004997319489864364361282601790634058798274693023667191426631200573552365184410938456563098253771977097191523858007806186299367482182170222602816593709128074698717228077008077089615635182466196332358338330744835544062769516530579144248792586557293782311598510875260625901815261439189055237624515728065919126363728104484697943290427659241662543524450781296874193049720887545448596439360461982740633005985514096076700852727733857170927560447292749710225774311744479864688124685741320291726403179697880378679749822885184625237265667052329987535962084478221637652048585354580189417242575228045477928905354115096731960341922378189213884325038517190408710769196329529840450292057390951196635211652342605421780096130357364976298151764259598544652922159802979656276756020267601876731291638667777358641762849595742598175816101222489365691658415161176914384614826526417362131857207428397143764478885816990249912304371576555419681478738364978621310397525138148361372526547768325832969186207218552099497732559760575630814103548346015154424464763190129847026292137295845680659685169008540210357471759716513675860661257793730647057184771059512008796606313333031167959961947162005288897259482961005777076472970823613322021588748924135681801422647691042750222013612952187750654988468385555153050432755753990417786666761818731850561174943178596570541310748796196744840101893562972695001736904123393269922359964394407829115473312157310871842473821159809805993966397139146712162092863454694535215941432779283497835760431214841886021780262713137426308586267167676251823105808265142672666557996290081878235622259895883572443955593283546038121575783176636717377604492123444494908665189256467241011364179391197101970519761549125126291517397065273119691397496440659714018207179279808888231226902767809422836945685380312151112588755173786574153336114367004556433548610644090587215059144407154781981699070215634238264778858421285984246397272687806042266061819960784199359728076786857925808080970320938601244312509304090577919474555735499204477816565014216985384858500417738079375041086515567947901529852437160750575304613967412135749475990753534197475580925010892848781933887848567772282029426491128500758727602394720073195587485032526519200587676846121654805290225574323964749700347549786761952373135250774241318237347092553624263679656298925634721456945340171462240175829120551562947606948268959958638117583069892552926434913616299820795356776767311674772894448319249622609262903309216883527337694193326018884320192247318420653200726104139707491799021515382555128616950100327905884130262468689878615313033662057786702388003013171290864466709891225040190380994066830478336282363085360610630629446565467320736579972020682034807960147908826524388916639490776474243579524506070151889631935831247842823807519459301372146970598447649459323273340528586277065467552318385610852339276689701134695952556841015106765729791838688271511322345043094967411214058662759378259960910425271895030452574743332768827239683139531197048293560730461251387007331922035093231542082860361478153141176557723334431635154905289886836330491777314276934539703839988359570268135892754115604351789119642721483044656671442202020451265294088724684667700396352529536440936876119117328328799976992760035325453901811248849330991379578945335963644092832623674326658803356536238215133121364267064049011650470985001819091426400898347295248635103288830990232092872868662910272116689079411194049725176167466021824978072193183887132896397752828852691258774914615383255403300158614222425741964627950602796094053718768001861443192276455220932511969144001078725931120336530369277724689788191899458508528343752976675279595020317775001441427598351543394058719427213174524194510315217864170771265454607252347829294629117112318092375428976740700019085715170482895383697408252126962251659747384364490609548147834140220682868107021058618174483002237306681157745582955041796723134513634406153263715123495966355847421398391531521569868634228751643433997459788275917646460927737329822497145677997275351696075427936790552589255963353631573350717325778166487563117039222042600288228670479918271859584637946547377564598541226799429335580119388804780327022635598309319162497177371122995990946089701495833317575848242949710648524913678593466955863644793790563536513274246952485829261232590575038889614500957789420630470728468572746336093926304912862431663537838757585388780108242589856907667786858021722073701934799632663166719344446909096236898601100034897194261623168274450333059826709364050582257679855934823965743660850984618965775275052795842217031016189180728800953985520529174655432735601606262978674764028306744140485256310565126475179284363437205990102480593747798540571575266407989154772425921285962941584344911701558902958803653592450005919102733191848546221644153873586671726133775397569901005409802565544935470519907485672391353861467993442405486175346357574743137871738787318618024120213655904273116136021677804631769881805248544443899193411451062447633768479342542201255660368818936082130050481608311448922040301685538170090489196011435391572486876090388892407406627654737661579684459883354559017305844414138542843526585289146635196865050454990086823404570614126405977945427157174016057870290644418137770659137147535596893593079769972513626777798275464859044558394477838117001522890182559197932611239576133249926549906843980004202740390361147954633910087607376515096075007124921931442342067927002289801685718455036013284420424970471591873185971257915494258629257502509290306789855061986140239562619542985761180288055267751292184861813205476228627694847228384488286292476809522541669884480713112126656427832441608398126972368296518248386407503907427261541617893593300360845967725691159648490753440046463995382275826573239330234990172033435877073346497560634171640252740210589650814347335262197610103101270204212652265952092995777737227588434047821422833819656322102296536244356865842947657527664774244791824055129805859140240925073274485588951071410536524348942919067664334146569039242443625775593783702073108352881669752406017343326103295523350141241768663210280277612940748559063197685172523042462504198008336070030732880743456937282510045068270794700656962590009465298685521818419677267986553528873824415156056057590996246915162674298726045044107697452189715776483749171119406354477345810450256736443537621159299543145889482535551767775147611969445259108485709030935536016264291123794245161901467348050391981947527811171400659586831337603149802138050511096150112209165231594715436216447188256302124358668532080637235354806909117196557283599179490706192011218133373947104617720525010205253621857579400148764910101590123555079115366479804231130461939661551867467182248629269204928967766933040564636833082955159798696523296315120592677719917717530920933097151613532360804484354877588640320374316721301847294842953202830665426075827297157957431640715230213255835446634734262072984016595077399974514065749262109312389772234025033477797798012641239836089252014380946087153171221572746439970106503477345352834972134276725043194264730526407543671872304343609921660803300547084336906561402374284235814296143348418165446644195549242747428117354095634314354261876686103790156576843002804668711031601299061685715264166800400625177207649027252506694402217029430533792755764358174266932949481796486911293997286605570833276641466335387237289710529032831701137800756362385307862161169487073535885925670887205776796012279987469808514710457122020708924086810832172633624942186353862682614777708792907148798109858030121309355157096206290442422902839500844922217921943145970760017154576231807035836830973097957069078989360511897944789254879653802375068146657316495797275222641296834442956590511058599489279697449649248642045490840790585476847735359403950676273178861856734547487741959214185557275838878715713813881590764980149732216942096259362034900926043637090828472852423745502353554061688162619761527312946922239866696980970008194264488741586729527353948788901104216853313809077968205100299940481206752996390265734411694859945092516530900453615496931727351561007261881270407054941653442210502774501894490710997650213802487118635341793794172506262481975074554346690188528560450877213894586155610238421303756833949126151139167831328896811975406029814532613047260139520106292045616887885599843152814991763913832844730994266353356584556229275273260511848089680096715678688483548869198593172436311872408524465413616126505719687850532252955809830899355755813171333860618964961822121218931486559115854572384284074259711250844522548399264677686710726090026215057002646820902674412129295344805389528822405687083127325006680121759077692957473256531839431834416925647121266241735358482550255093378975211552135158367651956539252795976366855053302552551107081991465280616237359454318403250757046155746570787270865306221281277534862898366429811477636454807601350868892911289667681054437208395569522170549691809242350996398260464695407575129224095062178171159654832645565181532552164017914604074149096408950675890804335136459272947988222518323612248435589081945832192591054577013284097034858690140832611145732994835571250704696594715781407520673014845805577219938693581041098604226635343183826113273377594594929007947628587691936385263311927586553486380946631372939060694767514200914240166042642774158343456275036838164608168992199932059451812742361509915011718670909435558722179452890009337372254550975008741769115744899649158606201694585447550495478675100530345285366438417414809654274824350445474423492396141390214451729883535762527945010791219268177351509707603614851399860902508189815963431464131999184134428757436806756007851861923827900477478078080843295501497007269620037886279704560918828366124984182843721476584492300788689875873895569778520237275707650667759846702203677806078082057639524201504144642400287431126391644123818741759862275994597558709199359549355573736778003417397844950229479040541776939321881106805628118031110513548232890851826239882938126796023611789955284567829239090333881330913580276993212350792302616169919022925313036882896828677369499057722128824666443915048533587983730324373175323498130457389861341293614827802026968987669839999103528678095156626720573865108879250052293368580818278200418551713296845206365067811852382670242083335916284752789732849119947539311774042549199189327477741173428325127924538113494680217478130983462968645944652934462002073946819803503081404522117515956878693029671154730133384141331285620615062141177564762449298393302482181647452316758534719196862114726394759901545978598619225295077232436678408232314056730665580477797223267516064791098193464007337040265214469915129852299067014416350004080899785062020280410573530727234671575301849825313978819120510989952623633858286651009156473775729403112472659585326172035064738900993962991622921929057021470750688169534453325519065416960356482973530151575106359622366693805349990835467066496964472993519659657078090531807798701241925173439082297032117814515941961733003135780144787650309580888086234875681754352773608224245117337412780713242872374148544434417140967552726873232530916794592080098390720644471292704557387697830864039526516966341785190617642667250361875971937849618102319940983865867550999805118397315651186679444385383353110148626491880373329288427164529091740328049795001836945264932346593099766288480637300135726267864745531356956835145574728159293165846991253389112307000231295539260261044093762573747799449267505629735953566300381120651074251803839690424578591841409223684716490967496059578451033677793218873882878580604054509141209818826724480809762258819187775354766764933024488578741170754270183065259654584607247110831040927230003814417436498356144010761612854636941117497676699939827576841946419882480200418579320522192057318220984004984285026291664313564504416716780496377838575279230167353719858896642967829983057129924654640489926532541257720782902057003635595960951912493937179029511804288829010721222961346235798293756771115780159948247036085790483790736186596224086286903614672302145134962148365268932590791618017664891083307905529179272381497371601146934058043861736556939306168711646255664847120537302957570935568084898112245122858391306759010751522848061785369649966069889444243968109699048821792501744299242273471649909179055354129730248329166676279698927727352387967962371617325227981820759399119922288045569790976113474973030601657498960688211310725376406595549385083260623894312254833711146724252782112673531796240098587584799506897261324857153242250014891621008492931468680052171500056722363850927471230158883309719111677345013581036810435560316610611368135344263228374070490477030126103124364771958870547901840928418199464617141073564230448440352025466751556314970514575068570617033187804061513842255112752799221676019564313492077676581953144919746405443349932079691130572672734420860250369774343928716959421392414853346015296607001234952305282159790915220461279355261731975269532333906482457541396480309423485620750894712949623277379882821117566897972324504772951774592865142717292535210013607245527786683085911983612494938848542114081939059033431243589367490689609688335842446137742171631281167118741672497394266657449264668534836657691461430072785669724591962112926610729161597349932524742315633815140824471920156437200806422472174158981931215022980508159980630033489853765353360946706326271705984798136958698857245731329117820815567940520536924735793236081193864432419330383849804613032051746037842251994466144221070558928738092818222367035341691058489328169119645254596907013395490160765517102403946868246242877288282795036048192093775577926030346036127523636048383547064441080636829632869734826000798303904889870205158803531761205934026483801029615542604738682090186261831452487714609414056160675393428748408723640634523757054511451326980264917682225930366833086120741326267843203273014373331571650738289076585837317051186121713190323378212475756190880902996013940603128634875659800805757836510311363850750432038416144953877356334660203260440345218921439358978334416641106150661355839871174094865572999799331297683008139820418968340967091659214524608126920030494662096034965212856730390312760282868743213926496461049201834315024345988500005560876605059201724973039804726543320797006976648893668665368775397500856401170842514552180466539739530471479602396987170905375783323910399989781187439051237985820594709125806587811231447293012373713246878398539335014572950425347630139287152691594252712162833325980087827116129920611159787504417980738331726801942689113246472957669341936887700119695772926407213775108164721972100445585682354877480292243686082116035813129377157662856887876402134164881427240744195125720360978989465287451023457930698514223292805199229260719563385111205200286304734883768164451426070822570889346586349253256873170191098446613784527815668521277859026437963970705367859961949054660683171774558800098381338205641828946137500999048016958231091054319541632660122889405087505587199911252167598672058425288987366539868965414325294171091308138524798671926330861300796188876867855247802364461627328344388888337777945021356358511789623842428877754173050513538195289943421227919725882997021015973615577072225574587222112781779052853075611363816083417623499322390382666845162334438356537156370374789094784885177919255541695555370280465232379228577819330206278593615737488864522267454272205842961211262570553073952562921701961332845808273265029842907284068665654832299716792082820799636940939018747100358611225741123015601289587526612846254374050508282264427235504843767359418983740914193246210369583814996519010967941403885195357617406967652363160046709112490007436897692811641038136908753138360172208749096590437795323884167831051006461283367042344596790478258763695769011189575655346645308205542472880183593028658177856239594589094412507358861395340374701545827536308959418222634757289031156135726662737347452181986020143433390424713105762270398982887507757751301633267645904100913121174306061023754730914989921929732201002444472222675122964374967636466029776681169884383409598543444099450320913565063325338331806579733799737208197190420805495813891535720540861241355905382099909278873380665338464480448825041537327893502712466870840078143651783922637368493099319603057364795717975861028002798051973079776282302691499190368947050021722017430322150718369769298104444009191215786149798438238730288485117954612291615987995349220460040377268049109927195638500073122535615734421424318245025363442290033722446845455267869241788892360069988245176168267653004713827723947265731122273957042278381366890314482610938109962035196342492363258284984544024595260323363160339065736551001645338035363162668311918525303709102004862878045106515746912783541161887741844823277192522306869226750496024443222538296683254159773808519990655747064083956687205680668426347074722494174170693888912175711839442218067136587711600326507697122348290721471540553431733480048510938148547854431754642540793197734522635248856785700524456477065977476154924435332742684709383649622760312764882049697911111437464207397843540432269233548438956889540178742504176378375765566059604131692150241311772762965547196954268186903338086898293795945142077552471309851448395564680061514867804131673242815280299875197873958899434698501274389815905833039150295257923546301328681821423843155395632612897224912790872598194566610233896087600997790091299562203425860996321138253922467539735684943541563653722581002949238850697550427125935999380236988183021808758696296833392049650607651325837077843081458247654978616062834670513886463314208249144394768954418126241565834618977617128691137045205323347714697747647060210892341239257922011066386207404090054501333142119787208617820795125564092101036047784199864120299234129811652567711685668373432719315626860105268197443754814397668611933499543743696514362219752611943385351443612323507321500549647182462974012232497712164855603705926727217555760859893344543000940317305441643040552218792441398113144817688204716766972330919558293573495119936907186887199902318786011280155001403592323041779259674522081022222044452918654537503035603667002437668527347191985138973268697233123795175287941195480760682713683204990952666245054790482716085254279469169377703381205651257717456216987605506398106456911107673828733809198861475754058399831063154444250040734281609435678827117713709625609608101257869362691020524044105856293764679432658025800992089468618038454765602395926249508990425977242226040585650703782047922904782713618799649925295507916738280070571428464118971756911737655308589109877013132502373861142789032925269041927177986290819118798946022774452681876532519348403782691559640239689442317550400129020984356575041376346269942258587248667411238995268378696589297241836168620791528673845076837051262357024753468716500000193439469180856688992751068222059786248300217472416638280891805234128930675549100078481444739820708457988207823437945968418710352811939689769637393734362800322674467837020540095832866498657149701723050685328790772591738039879773974545303339031468666870919646704417235544242106154870615711711514789437476554011426823010392689159879047929203909995946112816563229164518777003230815758115504123258016990184358718828424566057253232782639362819307703194207655447475613750695682474783433657438746894638266649005077332909332654515239978912112252182484039431173204359858067552027078443787343193796629564415481272419270240098495900259516665560069515297448433227945313963518857947511060129085072313774421022836086560362582841206700061441193213649696007162875117065352101158820773253597900579664792822704005506313594791696775245954268887256590923862453648069515250166055285593308833602932881745145281670520520189506196550645938326272747127505537227169827127760714781360652237143762829522757419034479142838458394049261596059742619935849455486724853780486078320994356186178901071615593847357872415456642731220449412549620060739759943447355559667831539611220564932014318864640631878978194403599282075393581888051913971883766056655978918963698090076645978704521574682376744449159036574165204935597003641850554321303585284696036978789279500903935657891791289385117590675032016456542735220017568649448432594205491466805517741468556421925382048126567280610480896018111853771839090313265658512513516584082396204566359060144656047822759852365985160988728674584359204566836188660466534139278546104990600203617282434175143636918982527720669533793563757016046305559458653481534749058282580902456446077830945054737135723752643182073547267502693218964062206558882892810014746527098942208388866002689541828404509346139958725344124114288206089750119756652872464876535265113224755510414839989175478562464668215366725841225996995530722906451423293662474703022555494171631779205739866197228295382282986052401983182354687223468861644211317577286865156462916873199778216650785067193044033424099291314651440694860068503781853381325138216438529194440405697849912450125852011772941415477105427960179865831477032120179425643680607623060908114556170518249494128439313878772725902469699002784138380747983744514870456043321704296200177685671158950509807322913981122826850231805479215655551650632073998165160489555553620442449581797507221640107172158773553684444170213838305568484325753470662617394388294603172492894483816473409996596774393287219421487685226508931676134071875423775543794460599292561635626527968277514092431719957056464717871234659096374592209594665007872114362212346716553959782817836073166532464891984200363301519969357221676305477591632836477965949484376485356196451563367967730141545581657149669738129748227868765206487466962519634325254033175184972366605947021468046813769626221335530289705383514706461960267465732127712773203713645181731958619172361823470172221161049313204843075745358110070480854829172591200386825098303607210097214733291664786433744798471487923066404525039701436942258740392076118061820416644105378670576227867486150475969927401804759070818325791729152511313367866712667057706627998574871126565851782819502399226960629734597251040389952566853446364522603826880633268594983775380987968833080038073047829399233387986999599271052209016400771320716677950858967012911966289874842614388934680986092670775319486992924920680962739070083898223300663811079589458310837557979997585175306423014046790026258347172699997874207809252845609156676889967670501179527352340035244442189811315770998107218477707109199783674443481877543055885731509801842876525741393985571278528572869551012309584952442019187050002921946738791295174229304226044664827574524515147920750408553412587040721945163325793308567873844934897484485012109878618296312757902992166774215043461010034624536182805617604498761897616151179841656871244571305590442280786675595423426807127781073391258172202274421337128962226457478408686768012896524633722130137404560850851078366324175626063552749601673133227453738203733032487802964934772737224794546540540204607980769697242513450390513871132413304347405693225696039339541318568956773991783810537492523110841917650272847411104990863906319331880708445061118424937747607993293786196415003894505438640968172833299743797187676193633455913438768678414172920010277406138919719683745585427697341350794677829654499734721802909823076267170028026478274033012939638417028361335896969054434636564202479793757567516575745989173221078877586105688344899842343959040041360415409793433619990938229248373537497199128999417456393884184505542315133177161050561496912557134812669542417157891282150774629254005274462697084960652851687856934182467344713022397258416358198574540701414419595094893037057742109226544629770580631101537918007038417466477843293757548223236042483237677596903492086790451294768043873494198017863149207779145773518941136496216491002242689759603399567179455624471947774203812083069135043187683183631519413411155731740055304084185056156215734622091851964679908256877632584870262328515049236735779663297705846063799954534153208758275329579651910648232061749838912686330473411506273658555920588635730981668789115633007689439589394276360647698739435667977301953845403058517938450423446972672157463226811943095115102979873629818010371086834116455996985375458246853449511266916034274644035775623773053645280954587107848964504128829455839813548666915830731443171446698201738568864013140419238503740039573797649179294092010433041635824527400427144376486098711047711097271838454897707526000365316009276128378697515082224630752305422486838248539891780216032013526605051319726222829770602876110201273752863681051410465577299365230218724223526221089207316276384398811760275838696384250149855988999742511029799506826814079665579113771822597885909934869345114058845970065671424191563480143872686613815898992496824604591745408819062624358029348016742212221702448014481324164367193129596606307586781958932636621936403366436005136565513201307956159866644335981856014216302864278512427382947628272935725401319340817118333285459219757179068466318579963782712503706832435219153190164029278782252881587972535694919721093872530116793362970684845686817469241322578784173846425663725305521826985666785502098518241674620845392414054660330139343001313201714383622895435657409824738019490608932523826947133544554237522215261847882737053647942526627123954032626349842264558710132774083928356144551482091716206086593714299816868717673472762665585714662872450156464464133731398543814102672446857274144773670249888880207817833561216416425394202611553659875042767828814624410990783155140719498238495301595307499103040955741095377875302763728433761875000447014311848132659310670388266701669363003271188980537530539279570275645952652007396473330811609873827492374067808808574603647145528589829097332386278383564214128744343547208261306677256730553686617651434198331653632041547590267386999540529049319190798516797574995339764943943402109561509744547740541808070248271073838587921912497890289726721174445157098979549308074294311580224945700060076158504802866708316724228418931380510217296633146184577336499107312577651069024535008750510245057598079377654010356569360925245897919564894261005195604683276698468402845228396264464318605779408129028552531548995973338166595707778571965568222169647570287384365680467413974392911396014293424782093882895232963196644095073831696682358205565538444639991843723413241929214547990005684656696750154291493567083179925094324951123254873702023295219709481958738441505831524537087815453089368743904179551784755908050303272507840832100827768138587179534408991188278793744670224118194197220773621838665366154761796222788730372952477301083390990941435476919233424280270040600875184066952016805748168781817317358359013329170788031530919074344033011865796075409459878471747474580577629899965013277735388392553366073531667885140862427703233609059312408562040199242706531201560086175698236645920829750595832438377911838771545249187253676341100052547095329962057373820761773230637104653024775332603993684029344747933986723788409375158946379435250452574851215481001451733800423734545522560578222192104251060952093237251468984900718131816444482134189358976276890776080393475465280537643670376326391910937832093577065556922815059114797770152180367258194297033658084788461084001617262109805317757416159836921030464451599314620534767672099815964556656738957174320830613312355797102526527453417106571071269159260065400208548086851487768645832797105538001318745785940738326792164922524414269106657003719976708531671190614458184103013244565016029473233016346635057003712171192872594661575551151842891032800670805978845155720196487102404025832991764942842301248055116006194214269472227498675163472129288335786780863640852174269256496714509457495878447533646166241125016127277058122353118151895758753226815872379436839738666331502848010435410266579861083083043002285899415828831540081071864282483444486971468540471189685291677416476812053276948636826663414643793692436339291324157523455890497934097800725919221768328843311654829967934040437444679188954824804880298600536888404614242467290034625614502330765572335693240822996690732237432848769625709617361908204196240290598038033966847181993393338984092013790937934607888775535370843193442788874720647247400431428752202715437794332962173850597148709138404214567037230448159790859732554715668026500527972354634634350060861812290511776826622193552349609421225139618243367587968525971645605300074502382852963831239925924600664937282917672012313045632544675145119922166889851717367758749396378119777967514085363635895427369724905038117679857169541651953756222665192636457842857204678724903465626016142906505523823669260270966627876857570853912807583799862949972782334874126683375852958535822258486410299799471888180468217330588933698872120119125657376386977355088169018677088906127589970873537810923136658089916100565120589331185668140776226965715945844036756904861900246182537128291570133692923427258774792414833479077726198964382802305162230346022069820145114782236873969785464770094365658328798455908275016564386113057709018247049636661657509408581517807416779839373395221180835542257986955414939038588827167193811925128718821036183270514661335964523125929812688004432043312751143977967816354965190309613479596825079324808269930073457709313453235010775632344049212460833955280608082590043010289451249911144907215468768558702399087209733211565210901440052853291140666131828091860254857337730349970299973562754465849782853947703424039182317357873426672200430825177889841447467502324495799089282873735312238405834912569057210675058476514510427200218412212620648124446018409897240468850790128896417586647847500002196924661909831072445410349286308523812202546138952968279397031557066941554152195856609866962792350082552027459241476569972756540626110077427050107442746236731583142602984085305009478156964469143497191459836007006036522772502251013723622133889413698794838599363287588951340291309075365059077810431135188094445671622008127688966777809968916613213352768756139979565663122065286861808931914206598219124889286400177639165163436608731177375772756223737388379544221228591173541377328964670797815163768684096354053043643521147308669627781767991148622667025754632915868720764438361401702529140958117591484787296485924213857662426880975246047805660152901063731201158590801658144448595270376711963752729514710988389284223736996153649156955440761846302290791176163322034764361177696191069247513662645696257213111743111120274459037588062287457821820634991322800218747057669527234879145430155111665616947734728586130615972700928698389807874534720105455299168477090838507405468632860925275750357999615279067041364293241186850147190344601624357617006622518324166515292568162995906369365733579082727398523318833673230325620201531692124391030691460980380888181290260569528393129985999031345054394203365263120365693944644511281913193617238609784610390732196575600960189565267297498480169724983571169423834744511157020083054450829219347975793639338665158781351243211726759099619617625293134330981378723337889867280291917194978453924344856971852922589680533276744214762864259725801802207879849345904359761800633394002628216111298321836173830611852143015779921784645872701340044544890438758130492668398030787456612448246976646763720793224472969905179303030801815060116831726555285766704603746941738007604822079165930972531400525859284674354697997641331995117366577518813053330009773137135943645496262193291087140679701898987131417626301941771154007405352722324195898324276224693111930946287984722432887774630217992775917430672857298694016643250350166653376659268795484609855745948496775492374932225991442353826160362171128285526537127872309271767678098837057115491146496564771257561911286227425601139796506929813637280781886262479813122044937392200283271246737486072004207071382971605931843543251154062281689023944862973704938520414328540372560146613718155233161333588407544783710241492892773094990269328939282208917461854369986024205571505010920987790897323407126094778112230908311321783889859082260011805877037978028191375411823863024689297565576517033098617593731519287126596068622815950251751637405625186980248564786738958394223856359687722438135412973760051050392813461667238777263673094308154602528528900197520407711550949942288213100647473980125419839422864967470670761460590684480620641025340821204458521689262465829836332639592995812540139870256629215617757328044154041357397755617803675724274474957315895268700468415122629637364610346946472346252944889067650088347438448720376281724876903580497528708248098969511408183265280392896636563503778035298526903444378355105730835580067636835768779102017036276118929982689307268468029736676579288347224254448295236312390440283309534634388643015070999038659905217078662921792826960860199602498268859956736880899974807867155980908948230510791522049420737896494667926587604141116579768641850225294304161736984312060050080823848605119484588946831439092067393170046516402609141810576112892476761552798329583617121886942085256812858032065561003875549399513753788374314755330530860433349371973032427870568735200017718212075176817872193122074674713507922773784433094778371980122317340039260648473603432029734882074039328002013880094377082524803009869029309745377025167174616160514577872642629985303704003120483981367168500650248781368941361962799956490150930478636563113737211222581569980085579471759092940283154125213699774576658081052073401866511762942193338545470143161506280085827673343721698110799937727691421746554265247922969163988635440229773193428352500887242454615587560804071902287795008803233949445023679539230314104604899840728361858149568559865705162226722826336887526762385745063515479555935981137705190180792356312005473796194134792422395190200392313361301672521739252977889681876256214989246627417213080694344001498922129983960450118817148369261647916592690265797852956951311068636148962358265381697255706682531191912204386606730317595846724306171590650041481768277255800050796383544959710983868123758374150373571533721832409712402646281999267799437777614869048708261620397389605288199414634867686657275867614986554317193987097545490595349282184696002149007002781903222796961403537092453029138521921238854393858979386602155931558320706143142527830363862506975064532163880240180192446867397911188749267199962844440949646150763274103090972799358079234982825315546433067326018972458338962512079954112520372277317844399103830419930102383514188070468210745873560564182112864123434494332451250494426262016413072313965377467524574473904453704059518707638501466709820485504940175687460374583738745415149658760793454649091762867264423902529849197925924338078948886002396240320033311424207047689626333109833385040630470276498815528384398345201919423448572184160688132740193128198836033488531167218885309780970787229139102392020844115128209693811502169107017720649792959703423775508621655285805741297302017445250780533542402308156157548108256096200250987499087923797415088956292301028963465858978554795764032950947050195118868929767804999073985200729005617171340615334969511578718414622220333883853729465266445015796720021921316850491013227987841322242459725222651680707465547500552476982897854556080963161897616587630916871622243653513484794211367237100526840203087974849635617288921091651809694279267130837196664418730792055950854226258764549722110483930885410811731619872330611948805791963547952788763506577380112305195066158619595807407499263823246659988503102429574993878882011790158996939964982806449927939535916865480044646472699207870403992141378656145678296901853920064876406434089118937757155673158548831743880307117513810386160748735387111664785074045985836734817169339188721868158594766348512928094229939502521625226925354765714534754595278635647529297921835884540645667290890432003936316001238279189103953858694407746445003863726291278763362727750266603927708327554968899612600425272024219083897025930493114420030588943635545954505937265578035607019413533292551775025417797318265844734850274767263928394895300687413525939256083612074876268688984020123671826263119078983680914396744817714345641626202947171235923844090853976591358285796151914716336839088809049979705990667758686308006895136248028685746208484809102404132351211425928849699320436551265475635120071737823011543633871178605471026725094551072161501866178820564852343052652029764902991823380217053580678164247107889294475111165847694156118439821455079165431638437482709840765153361252465151796002490029177244458513790056798615147620176980978228370965938417169535722982364733524703857855463459257863651128344467664336769543165834231962625716851206425918620469890891054021472952329538007652942743766930438452941429023914574323729914169868778088449854433005488146081235670228662250281586792354927431191056765384798813636026460217709684285824743610073061558915803907159012826914036269296032533330592829358550713240919638524574930835724849763812474215766137244581007135513250987551028078546763688618098866951108653796137614016362017931003072788587989814310415076717817370762917461418528366222724523511307383156310612879922230897201465156006584683762154348463121881112694605153524423756054731935303784685773956528498399735751947786770535425702809527810714759725505273195475643839313906718267079138608062398194805135955447120239881063206372635738165018016629614163798880366815873828819893492233767026765670375944855730950076041515000912023586897171984364199132374218475529027416673614114677701799967255758122855277862935499938529551385763274078664099078418879287665594168594493314640522839896521382756478536411119590227984364761941480257262201958911009930246863214069491856759295159472282274123252529047095093047551548887107579774737481547833138689433059940586303211542010932428889249683369124294299880668688477619309719698548635382857880008811754758672631674197376993375738388040751206165306771081210537836125134301768844562072728393129730318307357188050944901636697953601685542260901839245796449292703412840523206953060805966918950064541763076170449550124775386491122652598330065603640368114040646535412220877486621738062604820477208685043002238019398291058177513492564188792440341585368660274636949097390575855582098057342992831530630308234265289955319186200105301604074992286061957551446068414245143366238836031929544992111342742822431385565719646498745354987109227809723630338006181107068517143133426450249884439564890206939384368703416599425356634921431318158911843959905740164567076449595494419478776799882114443185190001084097989870598360435982437043111295554621753859571770376133105467098971071424366749195806861019915493252890893924413783724369054102717862656328821883449027433190635751510963591595471503669805084315106121176221815783778658394650225599411672297776969660954934720392941540884039625141659262672236624575880649755629809856750269343456524715647594525040474719297018515313633038261083333163094580117263880909689251696441582299809113067425232888585471533126248754499173086339416229254659183821820391427302793960442170975188816730876889670294646139907892679233872545628960546962687962335362276694112231165886936618172100461283318447704985507778913420348993948912557826503971003795968371268140224918951411428490480317884206175990631661851942202982471660505255964641136132347710593344555541873640100077540705471559864928366797116865002464716536665259119846433552033031009199039690152994935875385484921119818411687088638821110347891858618533831857297166181531221582531286477984922625987775249454335966647145916909792923481663784437495647958031378987910143886634006729656055495000991840929118847261641377277918115724143194676299091853140099261199718588918903148405790341145213377856365131893786591585915776703905820680190814729813749780057742015910312827081187136375302052650289151235491366976805159954779493580626155856939105002207444784634392133671601379587950347215980250048212790584682800651718931419231126573665557094726923815868499443083696260907382941587548446802337687673932858637459517996509210752926289959642762809458997572492376946381878242657569288750353934499156517453702698498050401890684706766111039151272951019641220742692658383150813382170191505858970201036121744555828609926965200045374741738038311939319970524797337202766763395361179477616787345288035052686814777478451588925819800552281216015290985281081994061947593850895678174553389418428856028148443007157828986537499977332440943427096259927794957811667594165475699869504749106134014299738464513588657402396126643862459469666242916708615781354468355968063009134481676597150384629294848114046930118990975997653859504385454983783646323541013409872345373003487763991628573331886106045201623494063651850856991937821733710230126580961537326363394033623788820937700019216198261137550875351771280873198207658243307342161362926874844475271604376408149211409701923999777320072434806474461301651884479042013587946377826792077404941180061277129395722266013436150510933567976558201202883787320867951664243417728482439289726369469328175906963966925071046866030225011987508456604681726006925006957258473086430400586531181007967282894352673933883768321399660172776810004680776414234344364522604262216356727496513164669373507677148449255496093758037717149799878281201815979402631187574890540872540437048700384180697672385666655025578926562643601995617550194754283245102049577736702911113725672538031465349620731261038133387484010142564480994263023386981121483342022480313004799635223383665722269655925385219962272837737177367347038563134307909044197730905124327933378407292185790994045967717890028779164796588121136045710282247786388270775453951619121544842071475264724798961489817355918449885691610332072531528169104550637131919305940291796957693349103396514929076524384694730889116271980742962784602906230868040842129077177868325342284212521381165048180261888062807607133632409261749524391310785803649384169958401407671882147668286491453995738202332524877097002944107992070095869881803890176897387647513522052487307668444890612927219316693810582136060775275474903197060800366807568380347900973358216497413852212030089806916008245782847646900492258618296687946788435460867291704040479604842110489796160732514612986494808730133036027492430580980918881425729820746202518124764222155164145635644342981578673742160153262464774323355020625783978139488668197943305729049180556243104080901540331953708398871315229680166538094622988443300240173138843799899641425566219861496213374454948019071818938212308722118990624200415899728198794555147046352646249884123885952486052646813331882420262293486407866904969868500568141762823232846266014834921465360379426807642804667750075961461915890087107222361401393797858107563180023847290144671046479113115656438320778407599774282815881931111233768351250926462787005793550297617327488109396390644534981864637698606140818390182008448964259651167772164939505367726906618433209724955839449405872511527599898375333314616454255519104279091352255608374129573115681974264500418817295456233515923736891157123104670047469910138891827922011520037140754116197649632797146312921680984823373007311149005627928436067158560267266733493180420953494024998498495834910544506017066188459063625152825316325926426792690661373330211717748445724457700559871806599252374394717992300073088808899363488307420150130326331678182773438328214970006200645347327586939921456153546030272939624053651763982423483861315479583196052567921680950217661166994346206048361248398277318906503345841417243304164975358497667689568356468028676160831122072245921772034682315238349548021090556814935850487113778263068742889888442914887827135359008544091956998396461933979053050234519318269517883332594299432427451100956759942451636243503964805903664191919892595392418592854709757003327267317708058564539939291157340215299100338456596613235680177827303465179312454258121401896983460989183932975630904794924783446831396546230173241741152849261781255416804977817709724000294896655159421652306073694882680472208007216347220804416881637580833526372306062685593494303697193931958353065255996783852363477298664894395321868792097103134186492146877359561621998617701762225526711975913396575838481123460569379949677257220493436580718422451623888943072861324346884086225528059228220037867677754220660951099244915970988578829472326357867620413861913578511250957610805886151008968252498652100991658355942580342880987950548971755103641462768694971490867788761780547840743946066880061175298193526292734225325746023884471928234994504337403186041900939475645529565089493150248310656616970349809648536914250180744647392734418739807360163768008635328711482125451506881305087196398785952570703850099892219037104584136378896313751097591542898623095129615421599004674080032183266456384398286421058851964371616171305024990527617731854196327233094808569679419496296433509681774685295731407757146946366298871217264400640721382196421100256439926034989544817919703169956512387916696511430780824233339977235576063955949977290861200115154716844451910328791280780210702080157346355885596016266002544225734495765763992257738662819493876831688509373673043170782482361645632204798823741407452943572181560582806755379247195793178180192973724692564429984979001491347597118341587682879794654924804465602022459684912609348379081254492665147778099120384205509257393770438975683098999140455853286574576605775731651051791043125584630808159703105844053577614243887899700231110505610605394455706330965060081723849080939496088950087918601866086943788723844703744427480652357189403178568494725969640740479728894955868309384530127297275830335705064245890531796216247016700270537094722288457371846538570103825666660185328078754618439975371641970358235299574394399184041101725807731296041623906820508733463178640254366882458501125908260539547673223444141382645430895064539608814563905234542273224429074854202388369384454309949308987926217362859099543397469184254494814032588596968489582916383376934183216372194146790055188569983682641581974171300567368523433440011243230569449261782402800240633053147278025274739079700170824919697512905066541903689069760996411385095827009045998272362884860685395874265200093755572293141339897041381775828383683796023936737545030961157061696287043702782303802965099658448592980675519964099456003223486839531541736305681092247861645564366316329741357848301741382689801245188214241198890483454935186707511534514761376916216189685520243475848954278179532616184437045923285097653035137516472788167859036557326587522738579123413585050840238808990612583538694556828022280649636953956371254831891221044418100376160739890819627676711234644599199975043039480890561669909202936369635380665813686337692393264485060668654333744634221313499671036746495701558874302351247881429423476479455650161987018470511626739719411764790953596922011179253051319231917307098497871623187907876780180571105439363966902339147190768985194610594661660974257504902495298212281192973915303016738191907694291226904019139614391810104842817922275901408475699011635510692839454135168532481500593916266701548678164457512868346179643030040112277835745651844398409792099065704343585447805311293813915145714682375121013258683947620229964166671726574527662881408650048807693695352755301885174882015302744825483456681149153109124305168287556283717791643044440719001930122475829560475889947847844779188681556027426123103897397209744470321614144786501736792942593459075412351340323151974807559025600756306205167122658528485233873327431522346343177674827859124127507713765950758581550714365254654842027920761253746974209682432852726454938488744988465032831803892208723030055387470884769319940001463066816184108688180620923914650601346434229613231536875470998871794673770391054427335626621875451808878434655393451487074876738629890910423369615320048377538672792807061832216810732533057804333472270400562314439080638014376951045056522265572417253472783382383043209210485969576125694620189515585691387893387815519968533918605961950435769109295262815159586517478274770375272823033314297020392873770891233578078933002632717133184244474565571752902047879097923480122384743531948623161041183078120806775214842130957084503817894021547666938292421847139679302225519637128066052790465727234269731457049921493828356376585110872999069565247329605356603637842905240771351539553471437219261354720135846835304514687032830157030920390540930796432275167509951686075154496776773556502792330739358197554757320490389682191187806014244051317259028642659137978684945588509590695697169102529529428888996705585708159387043002034710861691641488171942136316634877777568997178471971541265265478193579326360373256436396297179997088950880121118001901190483435411716272413012098107215493850299889637481019600724299615750819381958987665778934239168777322109190944597212265196800608885574501553064591508282760484343461134887122743085422130820346941871317105601933608976603010679726706102306726851563411789061238554250644563850442355600835170593489699279451108790346559253989072455802897973364297804602320029533697977320003941714080806954645099331666869414921961680257665145029106122074029906440694174633016266150448132635580703095311715867276968894679553428847453761360734947752008285654757731837664512720620332204526357952416344484173155676170517351626924560372693492145941584551021976453621498032088432898015620363705442425152335936365202773841261373986487354669095990466735176553510164415523018371724939247977211503576245636131826849143301512101529567105711209210405406760653686789531351342704859884479930290773253755042667800483034376691562272985467207420782832209452974347113053536393227839042030626400158168144991254840429232164333343156052566287097862529142454795353755297863396581993174097527868027669572019757909869593743325466156352206885300826970329756674535140211745725402423770672865460045933804669880145431643604516423057423626841835967207329102834576933500052727208824151733907019645001597316250113515787418141742761560677704129190370268782503250427504629026425435229712002944924468110159682294515655459781467379401925988626616277259435103107271312089165068304971226997049771177990640202672910216520155942532273116727432183641335490944203373829211918050590178885796588793045005119826259003951335490011338822532705992823162142199008866423936620257961506096520376197902008614556020938584156801926017888940352292096517508283577791484256123266938934494853015507601123204330735995166110828230828830855596084567502973418827792887295521248142558522047839724597869776984692533920742402771234676416872130692220047798336248787467607423665237728100143629868054113375933784414951802614482954692411096430310943502878211679528573385035924438524839328417371285948625918117084204819395775379753392002002227340888654551647823447330084805116978216442188900553262036157218654372835727560007978645460305460665857420275807778388710502948383760731603550687998629627254675755994292000724556197528616686833334988561445048431344059248399501141594594612770949946906409433978878149698261313736637957826275853820294251656348198353679157381383448517917726203764676920584377773867940587459121595570880818260013646281647072426365975747774294901360476737362987437097585022636486269874676554159821203553585835369637816212704573162672003646535513802701694483096394871431366395821576254748585746098690401886597296418204008145522180047670308685795616039157659888520153670441782348836895099210470704385652519350180721964778645356953653832207407529167272299359054922728317926036756679801045560393741889732918407923167979066130740597543652501988412196287309579713488532431064326717995082719334273912753620159344603083899624430937414794423414191976130482804962558671000161790109759977909684203587902210269767815484272603580792977320962449448966108294321299264584459793183151892157334859741020194211993629509597098908133521790091260411058115840591188418423655819208616554469018057403132472696630508320152714554925275131779134141870434208481599312671757292931495407002955082769533716665571633605186544477588491855491917714079112232550172227740461169783938888533837166693432939275416247000801420688703031287592303025637840716000410739727001227942395651748726846749012308047363572479727358328825963499940332951711827865066895787176377851861525095454749721305361440137566945056626452635275534388231277708828187612436159651788955391339627541997551490384087090906307971782032820390104308019019524625072414790369930934629449169999278427968978889469067690209502434918420917784311189314169074154599860368528761395070676854242307108811094333588075365978091563840661346216671541112209426052198808586132116383534229711635488225691977343199112598465341104113234043891167016216367460846321110065031213608547259922046490885523294884896044377449395435357025546578187503987366743616406179723282226896112483499215319553101435576762691664726369790427852265983207992478873031026411497110809622359198649661930603757137536896619216120245095228207748216473480653356691465474072872638091169430206443140794217009519407798634259027693633840249329314030472225330194039467468276717763951281700139364202805241996532107866798442291454403856691886570330093478163211690189992028983594976540499452603473548148213505865271698903119910540512304371271101654411691189651646315765168060220487919772711477628314085713353062640585757857288589670562689249497893409083271278294301340692450235445907390105500083791520573299619576772757422614428929000780169841467780544080062873779778486840888274296054178560917597091618457206018663657770515014857508852558614826382773765754815353060440687050212699247777506713615868145673548840256905032792638674226928051006069394738894513904379401322433237454061807468548618346613467132854803495845049512072256516930776894027336069061082286769379906117052589770712742689326336649438277091462044619619025700266750158707981954911685524919557571124165499359059923151898873471078970657573463666665811056171522241321850250144413308513131783236954522193535504726281364205382742933604111725871439665354003269146993851237113995037168071465683689491220538318169891700521104115224736046423605318929436054204374770863593850884416038183330990596785474080678827524069235227477350480576708634478753576093346243708561239658174281606029087411554374360959409601456581009141496670425578876386507629726120573512263068369897453511202663209908919376392051964023511878248027706589278906010637438171864194207688636728668802959121227905764771884313205498220197999552164539717730640746773007524919003425213954327401823643578660851100430761271957918813264851342288690240011571845894719934808921528812870970636802705277638837476015393916356955083973378389669046466707326000550209634967262300792432195495758318120542369917405711637120177610046757678362320989828149818546602982218407749881364775365736582833487556402608963126600021864377014642463762999801129438919730705267241271130832308592353568699661920685567933419703599934020193818727907374090763907812486006870413816510659236791403957315211083321872862596262236110855604399608653631834145766421224693839540840647645517598098234113581054347333280432229630733799060212622126326882692562793030797088637635151569595649576285123532074924553559164247792623716068249240887733815089021887977317062305654675462126139045995362880951412015038815964620721477324522133958176638958811751004610719760483595954031571122409104793578901280482360943890104437636956521618527198397255194885058622719098541782752034156805815143276621127421020302013562212397166603664911914596837166791910021549570774603040934929385247589371677450959841952805562993049847223484684069814253037371821660595627477357911666744662879245721256716285903463522563659763294752817522383769930149864690886547783778231753509486181895446559959970727144799939471889346692874745573225371458627017879623411298684839820509051403379165916983930931292056788563007146213284259376777673619830403064596129894828099399458340096521129732105523980308734075856584035727018356049629521961413554995093816809050203244044806883346110007085015191972210928061291182422250678232387034927391632557352048124066500704532622995259621410640563750851208655588061569909270948385978058091649795120498878561120410010232659093649685931433828705601514591936456857696336456862010234067060454618873421955156956216151126133062335320566844107011398467396472440992940984143808700612893711381429496020940000576072026602188059045135094998604605986597427652478277409359195834529986237112716556285699210859263640061337662999010435350032566330195403710647316289855464770574094328590613359114863938904440319522612930126837335584000883278776120540909906412707371181877267611123405517237189872773808885960405985940351512307662408563170228837884128961525945857688761267941992538460030717628530505715169825377191701450218682908918217913019071394689382002093275335032246953826089983207649269817047391470919676152000420293121467409628197420953868655505925520405673480814698619615123644106910024851957402254824401774644726574430772331394353148769118945688561940910374023687683094036878483823046791565977608387240105997358930650504405756229744395201148851291810247445316100127305290242877844181503874165884799270967176057770528089449816030749687857630841311671051616700585200127649566859724193122251702694061436711450627234479398307566321856955614782725999083115997280930570986610794127898607873393298152878991987033878705170032740432199409721243091658461636125200530557136926082155004782096619514862510507624037960760977815328961761218468708871976165425275491727945573867692369592737085028888158008916433672754086690330374589002850671288610508617773927132950595494208018921407680139011776853929912963499621171103709157085180843911952818415565090105791176114508734497613443775238910354224455160207003931945607141600409611950950591914523710515183471301457652430811602951299847394676312604631485145064628548807403350176620262980761060743010914627069302414488480319920120281270296805985124028805913920330796625839026671621089823761818699824645036349402537197895840720765118049375842851064228546374870066116349075525121868648835584802773393901227936657062649666035735211116192905477375137141585177075588735759875176443634035183783545905078188051254745009663488059447412290874557827386819814071406507451950400886660952879994678659840567666598569938448839481739673740286078927287912088371471626958378153990920558592629052780297287885255692051061998216758649836377042216432179545682260875793830108276358300204898268256995993204705761750112360568854390451885591198444447623984606410855703544945531947020644324032524554786000194764002595726979178967487572357983146057085202441704458326248935718619909341266645183160973272296142970661842876961333165456470611605744840802379716827237299504874273507668250248694499853320133538085119928329584244912918852241817378288978209161989194058791638571494197232889380429420914249779792345809481918095558063315217365923744233631537597013063703045017415776501691088700110621448832357463567143280759670898873482802050970433863807325950387441144822527979641488515880574783822267313304545069650654127275733706196804473100477552983011736626366796349034671883370243420436359784138465579044316582189078431217667734477414743083075916150461722637191906423702081728429275363305682650456830911956084868479429029545769289815964329061037189906126688972318317249661242435587909939111017085303015801222824210483643540315201490516984028216186861704657931304033740893948694279926467464124351051323161075929922637699111464691478754279756717385814309443385240444357175397586749571727365835605273902054762950624386814913111371130923702917104801629969503160934313626089082947157555806994103795395279044510354977277206953325161386950737070480033094497284650259421111299928203952242745434861940823118786991066380335229371758528382516020727267137720507224431037687740524582462226372442400633865236950375760786855440446906787557826299333996978881825557380988476227912854496286453780977439265651166158436636256050693767557729001726935400758266148425062049252277760130543311582616889229502835744422566258042520613370741469996152843048908142061573945719025648098592236590794497931121040824469091044287470153174966671766334968023055600247497875443821045560209268284596030174566564784972987628262054047497127266260467228435200790147314283348670093656420772444557298000728513813207963462783267255953498349286343505111843202051253575468948625572648739225605217188647941696845563197914636701073182810372533262815651571076198226511612299262410210539106704731187450640592455133051501654253611907891389993965429594609390194359264907477386111522458876401357777593154453425967650502370339737823362345081004339621801569310673949853760380960731452483188689193007077983575481256481505481271810871534428808684425546328573802771029036593638764978432737285055443084694252870342183940455698896811070809375073721138953370272806087934234430716945768308632381249243548128106416710470252981926549203615996010376718551577885248626435964128383160474699755392804374357934883126742410731441779137574608430274196498306146015055150503230724635400594800022105395359042340544249884521467358935954357006682442563685840914475185802430490071462562484099452283043794408621135785838861722304762422136382116114230878068042680262879363097692799886148859947157114034895547534939067673622171143512449971325618191486438214986439116094851462097720009180940617176044412529065202574189776699072350890454003764304307768374726633010857421981055491622492442134950207797284414029825265763455771742883864067480494268809003300966495898913011967615063458741132871514866065367534650663908074266668920010398724153700725464049328047624204100574143799305359838474128924506755851984883662290696469713356210593572864659997591707323725521892254919409035274803861086053743054130951718012077782278952040559963754854397531243853184953968912404164945048097496673341697177213755772697756341037434059997738910662239506548676783039519845419958924719895419850813757622066959530506281426624175266054213504972152262196522916166925043895184604520107678640196730159771931694122480637367097227723610211223132177596286809645089132501387510423729686606554846118677468745572060209017235376820668612321598420815315154647745042373728925064355542358154722257681912161639950576880992269426746390770903141650299048772278084783190805009906638893897115679412266095652683199730256527294781716118274463719990280360199614028595349888443853593966106908763527208020098012083689025104293335447969592559618251951862420271679042289657303103999802327961595878781496630360393348460491021651393379733612801578635443128014517710055488343614326165852635003754939633045635306306808778279180485255635558664316163428298103163492825535375689404926627240278081181859228149109857685110456812007585789670094932828253014216522015810407991430399639325861310581856039334459799987324310435451964044691482564768460075761877637263558263784956638261213622732100654373042808281041591523211384697696633422032108941189136660505885373161396204428540172530269240595119265776410934969098027889067823750681651179821652234112322674278733689804110210299100248231739327115863549396668922864314749383046581858118400531936369419197668160517676173273904843902261450412955694614441606913021392169714283163399765477640679008552246534943965852899140537238345040064568776378901525392335817777848118738326383625710867444841956009017295446438307418031773311670777293360941717738542709737708829505392430788708762725907342660469387974150328503904123074945192216128417841315898100489189142198856245346489735039375472420961483567728521470281563956197270100435481014595149185111567231919529362281631535107073283829965239181202078597606092375449494579951804281605534216504096258455638431428077410627784818629244492052204543480206056089416967607235334064060466505836715938905643071058599255466063857428024655212417669395794763620892461088397431795546794785662101795879834719394351002384813767495570143310908309526389560148845108597017496691197338185042974861088580110815647265895921483179300537496749904146235597658314927054451831298743633038587592988329038227235512771529401922655150096175774475863600120062573488998328730068964428775524780480552678201855493948524863835119328270890983690904325430357612382045619047395401011341510569924574586254354596686799396160804995442055550365249855521841219621338197281568540169573470977875193832298020978111382212407738130981270400802442761629531451360827287589937831516875826606743576424195726720882405578824982819185210188050823804364187905985224795380754624129573330553635495852527902752106213796176861329710901771991381670281236334729804279019401565952523888786312775068242983592422355827422462440465386355851807499440215422405538985588550856597610657478351640853495052997457866458070209768702734183413359339256750228623774131022776538738996365937509093239505475606136877514789012700917023716274255166506519211612241375121933620337743695465403078691430757644709676661035092315431518835399735264832582057415046280986813574390538586177392906961407613670980385986431457911864221175856382058244771052306039244703316131696351363965259065248061204013082736466544030990753324395218825313912697862906939928891196007428335095051443381890334237599578393929460138631399640468184619846658313205379010053251796865886634519714563625156416079360282087823144767443445383796687044754341193086510321541821123572581532094950661636546295607653597583037598709989191306658049055534953186128643154558186191367800905951223184145287214983442369662423113620784056050106484179429898824466139839049344227792398369294070341674806001538945291346672502381733171777055574307565928453232141355191760232853308294327821729494387169243780471328979733084735591543690473151632803421465522089322467137512732855816041180595801545575201680729652112888166311806388740928059223785799839478525857856594201125871701007791385772119365434777177447142827486748849003455008449124756770070445287073041165803956566188922019317473178172100200077234381168520792847506482995323851286396703779141699585011786404816640364923510046098775554511074824165554032554851201994201044821256591364675956708173114087018263976414901092933641293385360528467090456064539744604203121312539861469174322428842595733167164496466932341859326686554417249574454150970308293261062781968867248090164138358831423208559160087121756963252586592916543544148833686267812857477035285334994179244498729110214179817098851290193290273770995631935782338549387392621302177256851657170214670967495722000085399869634561269701917957230887822714069401672181684074583450925129477465275938396794597197342613155108363018649126042277893408505060001369500160388645474636896980859852400020233510794562414005325596490723799073192413362502005485996131996469941458881149902969984715444568742881319181018798481583530494509127952899957891859343385760701783904763469104230283253895561950515083865060773059367500940642491735548627498915904340686331934821063211959582869029588503414261623822568810706308964072171985155018629300095788090823711315178984134450115522618213763379248126800835124742056109450135719428558144604228556981938032512632000179093413177399909299024254984860277202829556420572190845330350330113068750591454525981668377779777082091778748414160658003260643970669031828478846234947862136511377832537104685818321820576880028094039912624008007357725010155731186921253597113745086615174442397815150985909311421744348280380823218844643884009811791909014897005368905314796567978072275732662395118627751075526840787564005285278126487473548199846817668962371848348869434181309911458543821990132322171368486793815975094022616708456701280942258384410325758634221572443304435808742660782101427013248853144122321591172619510413426626663500835695162199088400426701939772481792581733545851172453766774283017013541837960394773261003413499234468786671276836286156086326491235396528891743761643257049227233006407325601368637266155715520319650323435880609550996735564312312136595781691050415135246686682822486289083520230382911716967071555385839488553191356925297962681351990377149527435875813328478418777885446543093306777882669392287902165541523219525998972114400096159074198616802738019790721084101354456745783993494834246156089438700527616156387886521785120450827593737342381199295170797599825686944059321680248636387985305379127754967028067340426292857797000764318690490097422923175693161750677096309974498415207427149261367378369342003828344923780164344788692471949345969170999752285975667057612694444160505032040992176336765536431758807421821378795857378136690021140859898162489626578612001378704012030842251163026720478568833298986591283587613468152049479237456121379575397343650033980602511649561700019048766464556026143098433769079600459865263550367783847000353882417060535980164364508369491446365143739470185393595282082838038287840204383878800038096107513795395047852783388226629351322601619920812963451919545617968062376975171688792817197660382316811705031484122962624715330447637571161958990263939009278938898994875389185424290456702960764393063509916060655043782960275395122935230277386965158608191149575239621625498456548044099770184621086149039156089445928328999078964149312409320806759781247846811117691460199747199109807465849532641707460758501721618540851006407576300347750318570396319724551486619498348321962981956941092892771578595343529005745540040247570887231418780214913531394551700467773725776339040182785764597546898051082272639284572540108277364130744266781299363431817966034641652707509266436200989650734770702653898343985545903968009684286072061895843898103624725108340687880426821428991818863715047387846280653994659023069622262959912916234195252067475185770903096007840092972734459461072287558500968912127186851618379168745817830807004422005573933738473812608087833827771511068553782306609840860306695628922007388896098515843365181851994638726956237411431737386484617958571903110640968157294520736768389509607221678880134716977987486629160399259016371901693307971250129001166765196985391341315191521807575895894881068853126281924210778386137635431430285472153638436238492399634370791229300273880140516369537520768610511198119248911857951356616720085296350687924776399800628538786184914995320129912303709711133681788670766006500064885231003856652443500217449604187498495153326774884706515182214420791056369756802974734186292905301182671186309576979225851009082126336168938657083473725781638998870491824381721367875192306151975690885671171577318080811317632782799061211776019733872567619465365464376154098846640412017306572732605434702072316545298378010089432256238205560151508871947688345288739927839135284152267086228740601821941945068764551527690231082585598346174578567039749079826273234002642160988348618386134265962495699536582773101645580698304275560009291112451877096030402248358699044902498048653203433583602246235362886792571853535364696960108222727861775095089646617960952009757797197092789285678879011866126048004701757610139089778206368757741307651835062106068056005940586092728219280247089974750479694721777976820798014715756356474461191278679468930803970860016777013121436149049084301323246053463083137629907497822975157781052064716080283529137513749063383098744124590740514126413163625269937645885679784655321951113258079669425882990758293026934954039094341861837324089044237213393898284757077636035224762657449627728449403953686667203706810621646824271424894543012673385089849313535225708878853753787309450094830107172882701478491856720710875269158233653075647630179412326730489537737616819941966153372287867330117482722205355146725019458449313075374874167125313075901364175345742882907575513917212334573539763802063824621122261785938324727736204297754350593252688009313800607518928727444895579673708525902804011320803654397658268362946886925778931822023589432528817079177513795058529241907007546187912501268318925815258876626954156406922122290309448823133524730037678855154024593386581149523588677400445854570987857800459530232194508444779904393189097279382119938558191786861825416323878805031665259131991645362048669518243309669492917128829211296922592181638469117568549501216722037703553805595083965282984978008838019767445213908781404258226810136584707237551712236987972419553558194861255921247471709641971154004170300234312056081172232946447517321489319755917959194134472787965208504536994972372596893429796917082488990927785087770080040992801709770816270921491568416757784389583315248102270754416408698558470753602631641102843514679246408671170230443814188693298366863037831638284610305252197205944099724271420979901237395609271731553362724276413055134920660051134236434534792561851992831984484880676476314171101280507504911726167693085740383492024812115334281748824222962334883309684882625738148022669487102193906859817167210227208469928400523073546364959635065378802911137593847799501995780073251448178630772494298420216218946904121076847745217182496508248974388953119426398161899857580094222949523232579218457203991520354464632734122356940145803290757756522665268321141038400410356109584116568149999483513335680439952807496344507119970238452240300599666066709525127314080301631477537555649221591040409349321346511111525922452007707678178104709862706483121450894529447302711580824403286668302324566480934594569932969858244942454194920967274595351731692099653004833697056028991334928745783602366073239648864760891680676683822430783434079935774950977951139388624362969242246690019172966170408453665524243337729593198238488490904710026993169156208505110989359298873712930110821196758442576978061084685243702489318496311023971229579413014827867809604619446992388633755592562077722349443645060150970947320997091527336755068305698899406942185909423553703490538483699307355747141528910965650426740689343720147811566045424258662847281024059586653838848423086292311125328459004364578321335114785619250604299863114629148446239531716021605971554575885401531938551833807283917077070714527175496673533009544486019820434717602105307950670392263782267088936749945594404223457081372316296337345678157580692681117460165793670131108765925174152123945535907556274281782148899196527185269607472690254220207411019441703821786480605474415843366346022517296873294074366897318509559427955852739544625121896819241965296419746276233210215747914123003003449000498040508998177247993123184235746616469032073817444519961053011504753769039667252318805294666803394598186271912744252806401463655429799470665798389223866624134529951175773785016197077846769390828358378875187363344230366976764178301863192201381571547427645499090503723372883419568223681817803164329886617324655716006014387677984245948885564935726451269113646872393006370871274797638455086195046872108910963949324966460596018693247629833194753455495584990814713144947335057383703529237746019673882418407252215699449694620815726592196571564169816820722126684865146187979417875837222783591897107702174824542057880165543331279025450066582086589966790086785315041939904221163513054110387559293209789878626940186765020461028468494592554657227310158457705255317890964531136139244353449753766580301036653308883576903094952951782384866572623254685212760929615456535652550060910516872067572217842653372491372013556918799814561253392655967212669911645179145273448896767371187131967680501529686419864935581697817042160807829591167511829101408281325046472087734003618169833541038706321439032079765433777694258354751919676397341297989375292636734264535266100218886963881366216874654282598549575837385543135427804491694904335643191617190512539695885530936672295946663806967862548303879304773837859074034717210930961538076834173098245501013086599657564459779794057413758209905739369348838620460969601707581361939721547360411108093260736413701913428095288348138100998079274669632100018303606027669259714024315742788363154909807769294020123654966060947982826834336228047348418646266021050117738509223801599745017717185150175970989981404753974122142773560551878610511214526977890008806477516271959234317098042926258189053951899106133292247236843356000828657650824984284225377033467965456373681910143122890446258471137268073131991405111565375150310662305051045891177425585561590985850105711089138032471191409549871925674592536845764315318547575860818376643952890364814791190033202627536015949827364957218927547498437467981061311152197567616774859184152156103029241396464658480891440629197978355547084284658872032629518460646383762398082697727322874962118614193903106374775620150061688671579487958500242053426778311712732788346580110088054177170202168989235232058463514810722907176766264663804912899319342022798754645063466647419317670218207471190833972912124581023752453109421268266097045106211802277193105312407791354951782730101231810962041274532784452946824474254816832126769364591384711248479287528733763507505625339066165919345852856858485089519754242774192739771107738011276349552406114556170061841606634012706100059761942602556566703754248183213202325989668304067700070864240994245089940328543173451181301908466320202548500037486341902337818689405569242036440800666887560461135050914235745091680116006319139928304584954939369328714752896451596017448485507871717783803276105022575682690339714365082842647525751181025252762776753771912857024819957042103086022055400935511615137643498089492309349808028823360948006360075027199737303665460931808981645658892727321226606662516045218395411635462843570558266134414483979175034178703787981300946414400747675234994233395759088471822648408731506968017315413536348813761696368741266077316333600081362576338066130397582761818533304583425840194494640334812113120265929185980467439615895621637340132676126712337855176110421690301460359223570511104385158366998124010152835452078003415805275555536505431960550198888992232469967582952529138376510290004885525884710889260177772833220392706203236871463987353298278688563894891402181700941371837240371099619035727677739791089617581154947693706915498827981666662442349224751922726044824487765939209305656769276212393901741093395491303296863799758753736633306060050965229819358870064005371316118385553427024146231688802117608766874621700003238887172396315896178879070927455392652693428507680705845812704583884059864454363733779072718867602061132517416277394299465680858746176899846342415745951409817995208054748321061781046849531276451328825400644722434731434227639255983902308696349010927395119231717643427828628398017578353261148938044747297251237143853678106051844110718877120908214578268815552207838608179503548587532254585457248098031853668710671001372943522518053156803975350291938237057608480170463757458968130526997973419230654039532217683066573082960082900033142494314715065863443324527978801522769906903370057385429351505210912919871576988510681353409575617147964481614067290494380819558748384421807656486058206186970387540411432103759102110044219226097679650053511315484497011495147972537749363894818415508997180961999722495027206553249461092446717740563251133558818747230232792307846054681148916848021494807402058512865122227023796746656083702021557512610066950032954375231613757022784586510431585714010073862776467685441105072417644702565893278325096297872481110144370238887297604090124343492303281717085840151661001289907527874631078530686363726221852757808829871716748910557111002151857148804600016429405326314127618601422675783194157235344883939240466301687898550205718631897678806174543614876510360618190924053968723422243094306487630543042751771314324519943070348757146248086463551204848954724877219492589934353339186079620180889839260632253477394987524008166755499063649670524835314255844389726255354057896904553802377110082160248254500522676260232498453728569706059918501773978341996888760286721765428561373226169453868956888619015992965985172742731648916651096614091890605476017333158688425104879164367465554737354731510745283256415800719576753618072579040829623191569161924499645742636004865591799508689673208572147277110685343583864548940508114316447134858669786986424655541856398608426191053484144438837369667611786550099829598408616951177532635042752035668743633848907414507831091802492800850701292313335195729492366749441775281516162702226557386931757964170633861595964472281790926932951645466188913227105668716405817374573522751944216456518383611472918958424266050713699459458477544276451300448578955229990014457474909109914104961518087667286011209108019113942514933502580093055817315717759852581287371827504125310165195642909222378833874816683025677896653839214032152579872550502974343664308019203843545443520111686208657741538597622795688522432882674000497403713561876672098874358876904381198254412779283643541371390255407488736766892107993101007852925962855211607755837105366717344010753696804249568741848783980663411994758667323824049663902488126587937185670091998065288082602625715298736324998182934785911732669197526075546264671984984206469161742510339180333444823730056066093627279308050357338716196123320719335062165237986721749428780449285423851218848743390944589212362803013547362795663351398735515107454303801501231992621591086518687804462180901156291274414770557620406463451631685064273560348222811077921067242536662598838473537619467714371361876409982769414628912073497289964348123129839269124006691726448858248100595384007785977019478008920243327266727341501192862903410080267897334115133730851605174406543240616726349206764992845431583902752141952266290378679142243404304269304134434295587649560122954750862536189379694562933243960337214377391614557197895830751906275481869323653967819361008482894221356825652442145446487946462556437218714220419292004505111430222754522450044936531662012850913877548701891963924277448476463170536374198562549967353794136721339237381002415352591757090338720616789979135576065803355898384353201280883685885421927162521910830390127730618192273002217462312443666778130222753511800723079060648339399535027509942449450404159352524579862711564219523474164107199136878311567571897296093297485669840076797513797043190543555838050452634817572668586898324462453258265884938010957738277729045641168929515623698736078941963477754158396428182320929835815963488784464364786131169113492255002954998901610853057892285716971068006788410599098282353078426243183578646086909080783507593695143690401689938021353154022304328614832643675069272592767727656027249605248819059341822773324408152060034306371153555301225122930560683058315881940476676707565318658835202909191945259517735156513026335365918632542618117518831266752149497696848487817844698932870019780832021359188231387346098204878737476324587142227297833844813517432823158431983829364683358615418772028645318149488907330508640545976398352438217591391566117989653064137537107999199927402863306425508024610693235579229357954457010302664101212910114861087348798216539453708634244865910844837469346058879472670193600398268006769220416825200008032978471377055786361515006010574869498375783750276515411331456904063532383514688958901046953701552376015491927564507655790100883928281331416646380678326471309617368505817864909642745470483924575232113732028780567142598956032781141804957224036793736191511829291503081919607800659369556675863996435351994772247392847654597637239146755481367499013270938922010277684871674563612197947038439414545269899442651102281258833997205142795010937396100134159320374336606634830688614025301094762806119685603059660203426690285779189169292487377499820304658096754793283850721411948842938112361491763456461237426908401075858059596205406944023077695798319354897184602274498180574839054808449626944406664261811268493088811671511855679997281681919472851809633450566680701239598605800489046053143536367193558263889485354070291216109948523479076251569962434750716506211096085256914083416269852915095165625084046080613722340472281510654374164772173658808557129645300294316222749265480725400442377111944849228643932733218062924221624262355864126131219726258334843340426664050373902056770622690571863382011625326775188384895057576466297105729457725460149361144106863273873469920782826042819243650111555009788043089935433139029588055028600481829139231937638292484755373011565769645312281004975615357189112213438533313269809658880382432327818175168780235986942271667200864346971278355841563432124843360277777720844986548327616456374053636153078106793780082300776238105369067055706455723867207291031550702732688212118011629548320961239351900193715114569331975756591497408245551707489260132867405989529417582014757628884999255194654017622459538290470529568699250603660651111400678500250203663655428527745921008222490860797909660291421800660273950560466850910270331557729342455509506134987258212065424493227360334256668345461045052036632214219480668050249182097574796986521492626085819313381334606111889423990625180165575899050210905986209776884296657258337201146201699875050140669474866980703771507389712613130623801939656095711202457807408399885021061353463816790568507932672919957269600657810606787161129998429335899897106142373992857742534047212436227336030749276777270562359005193057083993743271393738758269629299241458678930018332328857008638599917317860549590627174582497226203818878095644960347165223759151932176021278018566955553711034758596398652312726843896786756026863875607402239600792286500265859383119241622447845163980901915507477386449488748276348000206344671589698149041794767827784177318503874389967063473885455455004061539157176628386042499142113604053430726494185920594590372121852923164915917209911460398384367080600684569945498843427445789104319600706627511530115773786087483555820736330290372453567265950284848950865777445907529475397612650600580129431168607322562887258724325288960156964349838260444573549068893904782612295314157656266633254021574881859331270095288733946841404280739120432987402824437628054122479346109374646837675618244295140093794326276630171962205335881401573499004777563188672383275983187586499136979380416799010943429957853524627343401026072524608717898248865434105356205446590847232491519123653649049621450504557189655440490913648504977893016676916040571466628274943750230740619621919907360570222644451177424950993364205279367250629685112720357560843542685816528357184398967705842168067434734707633441694409441377017945859533700552617344796467298919263011494126140562729092705446218380003434118564582906438821109817601553769440974207837194291586690242880597159141579419099448754522344028764073736567208494698876866115691874963367828666699349439108155707734941552494988183748904743128247009214013415430158632004303219736743037474746004937341410115254448429520030354370192301534051485346904977515221819631334199220429014440385655575055076794962970922122272918281456150003825964195683991395104431166611056184254220205219311946676017381308660863186888637522483331584340431028724532276202052289564051373117955853122099725852548033074260564199893014991328459587513332152761907219359102869999665423398607977567085053883842658390768557529565616351378227153663139390745055561022852268294634174309517502110786626303700766515850554153969344926591228091037935142292888698169154023443609843386532600898118470955323062294965451200614926787286252114494526799587473596986665030157792010966868216558024111920862091098397997554589987209162229036533613816725941007918053794884073913096557958685235901482837881752754649606543041647986729885657669316321140977243771325116656399289936965245748016953018716404985489071962726719056258067695078026103061822835744069459834716437057730452227898733364181909680497990418017459866985045060622471175528283463234153577826863510922541529602238858263945434243672255996038465986654606761232867001301406346260964653124720459452502206790109267220901536373409327756555324426598992591565392960817173512991855507265227641928764714292394073952707720107483057881271732852021228225292574407162969003823500742030946761240380852439750396522693154933373374327237468415875883538357583224274941145042358026269172563440526647861025054024677492234723283624449517049891973357920264043050027761360443983141558836358576121860567997249410174064748989070947172158552886078880799236328136031184840384015386992973639264608334827409988361589253029924778702815262274064022786778014340157580266143133053433901210442153266213144779894886004898879021649767777953452355102529617120676862596752118570148750292477340536395365186589061681963643773649157224431739523404618253417845772521131585894304596180620129749623916699153890217008694692018483075186058016139098681148339256066097783166034634656972663990403438687516388515902277286882285294719694790612771349816012229067379389655423894158062727570825522013165533523814921080305251111067772303490672515284594063550057679652446956702718108135315394377507746157981496980895333490846809044877305133759733315793050541790200809035034181341787667439737592422270935005610593451174746035688610951909369775779597176094834518562989972127271416603966658951931418022544694590779784623170466529812019429246060766658994503082936406869241558390057660414059072090964477497533407536921338476900350342775235982963704055163836816674763066729431370389108111470328921531043962776578956916357653204413939021424165946718176900923266475114672521316381354029420964713023422499087268453052946076068308654951072139700661844309989672546362458634099054691298270700587793160350959414842833802047416071903737817925493252455941338584791373924313670788597012771794028031198158425134791132018184680645009207409467168467074092688862209085579920560607283875995389155492421574521088133650971754795586840468383467047838506723242262575713526467229138412732593499900002271087537000501976847169831769567441828533953223948128193023478306374839117776924638170454876291112706216872644747904722156342769276560281750316956689525945206844266986966689973680728190141448312209522598774339160848210061540358065756306703972105976209901103630673916119327343461331985185367985789299960958741001916759418652026764107594098675352627988000146568331661924989552076538815636287393272798898009212795883226462454748742079118661468051820117312880371607230893887745651486427826215350423258699552627259627802513560822743370781558370346880131442597981760257204247007593434873799098662662457517291015380198187563049031423586390655576157099776424957649846162657308594219538973875264064753041092885916237160139014481041759144937374301727708918299534532663783906102340262108108035117654197410049444298602278864911801110991002453577309787600306704521424948857372327609439195683932481537181317648039275936150043941431715847630083595494406165420588276129827412629579013304770914677092503088776696063098893037957562190980146217586270991009609538663254223253000832558691920994707832589128061880814903787662566237206982805939335333102260591653427526173887664640409620825643498971148499865373381553280012241443986228255555556094865225559875015260035461975345780368173006412794321873447867391046906135205852549839323174167875310686963778065163130791193911923987015564145877755772326312839355018927619351178312138392453375898460920820685216646826614243707854100089996154952029844001137096543117040387991795053461071196773513104370090521863498851587788790100534783859812619871046660468286254966031196654311740784312531933502699556546868340144369464915671247078487986064973118317402728483143000445206458507611031066611045358872737757217423738045097949210802388740117195017739547358090605225639679733155885983586372412781462350872354512716622733469139775422874284792143990385428068973184052226472052141408976360603368881954704225579176907920754894970515510009690628672897466972948127023484762615219907625670724321150206127644070747726194821941793955592468075509815990717075986151427381081060871128061260875209485165640301320852205753004099320455808370747018279785024144370404619769046181477393427617213185467921918589813111005626468617841216403517103389348393240219768513914211004820072835112144244661514664248950084222330989827671839415562163288129364907051039834110051653876248632460267591593077302391615183309162621813998008573977619170807659422309340092905652731835423341992321480992314213034898124472734806797777252782429811681652961058494641018640801442933482107354068833229868042390328105180914601186282493537943052077656482813131693198165053388419431493286532184600034542448842389568936357444411494181199821946919852947879658033823030874150674124271894053747483705684588123640779474876483055457633783423324804206765716954232068909373930903071009098737269108965523734736419827725552277979306271284701533229571417464017482184759603814245701988541298063536519862786057817060435445659455896918321404890729203737657694168687784648285248029390783195936975178257004518126975132887263582184519959295940360145715873841049322775310642974221963221011804579678908093491338346176635254634103585102836942216131446557344897094164300306326158773004597605207717959591767005944839772651646669471367314647229963569521514935737856115684051558692407998936024862177399639608785925856739588619897596725536376004312310490456114998121515275776145318440606081430685014377837269748390449096375467254033172476286413291205749448063144032340826496053205920189449559491077001063283115155027955371021832085691041604012596208188969259549587597042817805304904011359675275896949611370924049614029400103315699425657608303523803094451098668450898205443272277530557414569536906397398738585711477035100786194908575841120000682982829107237488923690788431689100194697969077990197274060099031166996143246607209789531477353745424030335179825777888435969291582227750840029340247689321716763602199940495921513894782021142336870990888883284745626484033573950570035678090102553290817011100033142186608062961882962388214281877882364210364818256422830710724023413656790624351061891120645251964554178379572214258333107440423404612950615430472965866634479227359613777411285377243986909510606074922248310000962427425492594587306627513592820155788256346642281491602664189287559440166669069929139436824780984170715315793257749901749645887735937415049279552433363204426147642933099717774024921194580527072218936731795350010554478529211817921981834115662139322826355679575414795090116393516575022154312782878165675754954078076071732825888290506300695551285066164054297676806571657843057994611082005235701810027053207929501823888707236445766671459233718494245908732233862053846487301680854197296463658852574803642093044561545277724180621998281202231580338891830206398206707166670912252835442370286546527908892215857740246433808338350604463811341625520968009345234554930555837713950002198557852490411352908749151735174759538629236998445904781427551334838750273009849121937030382020617868435305436993988742019538261459717708680027979505941668214472179520367259772287195814409168537242021391471037809575598667308302707573623804037640818372444800012184058146483023419532350326602832680512242282283418198968019546792837198002113161563973906626199005820307313698695925655764918733377801513496359512820383681822659442863010059438611837116501528191720126518648811439986994864570452117421918852131738966605886887787467168846039393947586042530207252527450050646661084051520474883650266102839239031974035667312213097471057345053270344218688282205127409860759740487219773374178119011047470327928428771481773913436546218488913961930775967019231937160241052090208315058241150441104009308287860124928561424180230992071576454745234814662370169835010379776203374278044931445063087240235101393892826550508247885842407434874570666420341298801244010569866457894155879161048290308067511089257536297280233172354881678042729668855240458782913802915330608344481449725338118340954603601646596382308647768691913297260156660975514717816545360547949754422106105022803142578883024221845105057929429704932118337075541762316460064163910984730194915647526198232468583599280595506814972387547602515012360919296849243871766760263539419644109096332108595711070348718452524755254729275661265168539123389624321483735551798505368025168322419964003307314045799389268019766008148595953426001015595158969590284727233889175852998692483865493484175084712965218212501154041582943534643136856052690521165292613779390932425537467618720848311245453449498665177541356752484335957294034127422403345560428975165553196618845997300809069784302564204972405882344256971039174741122498226207273774340245216255515407944279944644279922608882490519011157754604096428492827848231204514257247727511978011581415634526375618016998846398914652774451943800884123990765344708921774608055067582981358789683859562089868101479529167556577217212036698478999534777254516370448801760263903138843207202523386339597145514931034501738498127979302852977858809400702814873188606373257597583555858078420722230127178737001411749362112851317335349597927941241413912690422384795846458056071874487362956767611928426765551279292381177706823016889182854170145205657422292648847071081493193552559318326178364241735767580537781785803439010394297970149752017561143774525672835634667718850972889949902534454842010732247223387154970644283637413778041354977739270591558600878919166177647080165778691451633225792101357934639549583157189946308629231817170438617082758363196387615904949986597627132109394233166038274370698152872422104979224180997761641411782663009762604468953268137555000180514037635304365593201121312866926272062689605097732392824668415434823348980168894831615608602258114490460387481090910012248855943930621080563134676346604428263713415296324562694724936702487907937653670815199594202315005263469414762575138578294674228855295344847149675736026916603312676449209055182362334388804668221552517666111990489377385817676338887681929276272746771783394378928457884499411308183575711510289222452549765746252479205575985091077778200036775267404805756637755279670625888133746154939071936051134731078353274727146858094737470674388848616496087706652408772798384059176771415974354286953614003814555174107527920469280122035920547663364276737620678002876069598025400029237391495342820575673415063389635742327282824726982788398286207508820283823588151395067530997642914829861166194712822606781141656627294225558415722349903567798712769766141273790563400974711247287071171105557042347201753376559315127293294773988749450937012572039531977164392798934441019476302344660279803721526778983898542094500603061908498533357605161149301465722638634049983817346129414118867144805979666657040984349571273274217728107283450317083496581920203985294788930265999911849834248633703421368361027590954573172907431914493052292807530033847921524740233995145582344693689854372676747431723458136054276427316671066084844230265533982424198154003086842145813076209968623600015382192980533548549810400061247238795871112722783804791727193298435056658568800767929826119702670362952700470336784155162061180708851535722369013129611907069575792262882462393616099788388241331061217178015440890588736840765959899572087529935855082544240945457057435630457339761604613954136682906034175493617793472540170439171178093737381960014164107891442431062259712542640606284137308060808893935711318620864215364816652827311438746647277355599247563193563869408652534710233492191578943850271528558770741911595443261474372025325811317386246555310444945842646541805070616869753676594123676971598465281907426601138215910358694364493262921400172637018166780037736994061422966948792913469734438067392038287386809042828089548625837827940474898958234421005645235771952071578478633751146448284537714505584241039176848540948502772013157247580868503312240330960058047279196273082681748968106804465814957503892321603187644745152240900121663342398650083592797987025229962053479230979264538549456019907306571108037538449429750031372291988982363451925479400038549965193733960011923924563362578327571195137893128007734917121661569614059622737713090142775740317855998576772097759588246697311062774010448411257383418772740321818825355022741886295599559607320921192282776614391655015494966723117561077321912269674882166304522107955512015739883057712796579148223262325320884142406757189490449416918148121944738120191104184646389562496756637879720979063761850460182209690896923131570232793448845063106899606173975689571367084630659512720370133972457973367120508260443752869534033757727167026454450445384329614782010520643966545846818125264140030002352608259972318528599408288342103632109501208259565153331717157622252017925152514662962118834238701389390005803018871159873041471374891001239131207120084206916922929904104490750989683809234606635933129001795370507603583762628815321404570693156722942355225240694154559881740666302602476888282405693781561834338263869776862369878689685983877861642711921975279248919203596558189577970275710593862311815532012393784843850812557250790715280663332439587186991472326773347630243699842713908952448695253779982259900039605959762522905621118536099295483177537166745353681358730291302695064991367955386555956436770659260693825031202068365192922855637542803836273783809546690306009631969514661540322105676944311592995588955793960188642248583563804209728421170064771531632887352021414900420559653133389417229352074795169113549845675678693269184793222005063704611643907030320607862841532871386598433911006885517647237798674834841330817517882201705662697475082323744812306367317587497883983190221523828560745483972843497388505519695078589374356556659506808564457127808748266286756439592766788759572088394626109634324665538593342105114158743023997816915043036996979416831537047702184884069255616564198928772945519539711642626702661978921185562869625406069134014596004252064035412994412929179590637302093375605943654874439045817538897201773038450046804686107622649823738265763833767884379522597389333902639138923710464885243632652204964936161745549890145296665292579354259552088048070162442731734578675714622441527022125892330181604866286670778132598191531719968732079328334561460359347516184527050080669094698080026405154750940797867165753682921195991316757094000947447568913119300961917760617612299745501128552216804793158736947767917627731110765645648994424785498867417293047078296713686026673735774949877149314332392583239289069462333902166850534062938791063212847779829812421959583359329856742530540524923637611800512979385177795715133000445009610068567163950359433974068870956108205573451419181560280241059493787965751972538061381893838856365545244085088105738789058326894652062104573107210076000580666987266730225288118903346332237980930897302533006346081131343485458009307148474423139507538775089197950375796061675002566458981860717672250803175512604080712676882739444148187355281155004579749677031655359305615398890261351545251554489549031498583774772476228329307735723258774448951643266168559025549305902596739391399946271967773683323175232542120337131554526815328900617388488576337848794691671007584650651440469005550991839132678189966657806546888750498527279815224153648638336744563029767329225721707078075119449729587563170892255570723759294647779904116663142389588820260493902691481692838809063886458532195181403230000679283635511733204570934631331110854350105643149767931463541229597803961155285141293418242431394143057068812186234528558650068221062807432525992190520780332074084480227688933849299346604049797273217317597694007453776062212863943994508360600672966290090724034841795772409068147757015242462117843884123273052656561119419983489314718579970612862838994320403926917020539430272442370740969442455174892113836763931454431120625938415506014503169888032316407555317528236433985241639814650405091544351500711811084821266136141563706118386873920452724962742314648414222874184824650119464152796682947070952565750987339420920408920027879667050871471984821185851796426208929479998350708752928896437093296684572473619364351527430722172000787426706722187049109233216744587300735307663803760415415276935890076911010839182115259221203733043719927687947720161226214558880926295371825806872294130428606069891815208880565050495362104542716523581129005366502844514614618442946763881719047120268108200348023436614410037841671006196182004525758353693031574943749051876193348613327179879012123284172945268561380876188038234729895318178239110216603568868154877611678584777223652598600533819684469496802540271014913639300100721177026524663658794666935550552421155239040180893716505171118025781139288881246650552947218868368592573557530510382927500959588071983219277302949650816977905792947096211196237189084782392771237633155876404192758915040953787683479643795248382900525896545982265735191851274797325819766502966631432071885103079078792362878728321753805667677642201828545062698121999879486067919185591467878915261114517382013365453131275213844346841557489994474781336008536624837763389260736915373086149163318503809854622844458226023899559965336493956964821501563570190243906844718743260055329199724139424155487808826861718918880589309981278681959759695841141800830113796924843590913526467242061812170137527170427761123317964842759701389336536162291539277462328545415213452963344059182675005590050573941370015689943540054337717843313731773733360387449434754462129332556576892047248264143486842693482712250829294839324741497058136676156746740972214699124708292590895999105312936370504794952249751540105888752937816332919520106382138561128474279449792502961238577081406468839590400018991034953716589534961309818648153220577077914234769871429698108046049871684825630864846244527199654961680221516381079676446443860483222647794822475346730099975406562822797035747780892510792422221696571646519087049210748419735979278841899712855617655859774207601843157072051382129221512094090270113385693018240165935265862225026224417812299536264036293933011494834257779682965859998255467522016583803819551012911182741016978243092164932925434407535276274258745236344519838741619829788753194634685936592225361915038199774820616374942723291054230875706015963602718698959263126230056580734731558663487357533331162996021908317864221001942550044765246417505087935490518950713846876047518719271483894618431268577333392934659907269357675192623198789652217833538403708699488069149604224773959765740479051381838834479045110505207459458071272607247757776506010726117337101467688022055891012105785686448410793161348820628048094253812198613820604985644472356585795100471071409222581370005340542191156972491301380053737375872485330438707386633041514094378738281420038454284122199854589960471698675038941494507707056357569473826345474652847335419660623860593875237739886819352964585135739166667370553848669540948912992450985844902694046687698216920257063024064048720021599729377453103224839051585296091876180463330495991358529046466344311388810924773586737952615515219023240345004160982441125824802675375999319255358841757299296554176563629812072399593857113702188882980053301438693031721997409232336960907876555433575506088038110292387911153558070366498943532218028227145253765549021456981182222991705237876102219030403000360668766898097440726533895962858142801585836860323772435339202163735234515049323961119581451741011908506964317105041522813891683549980667880526334079378885347629238425073084167667549109133617465415647193037235251999444229460326992547568300212408503132329604531442523046137521432198256582836859152124253356889782258356362452372979510860649419576470709287701792396052171753943098904232265649340204424937000934306151733534914349958877072308271709548619627629338431014976706596376110308394583510117587642791662013786378904798166612102988382235149943292564926449998606879248635737459417366612321830099544380190566261662923688683134338867808450905343306072192051696507584543116575878320312757857876526936792142507572807397820880133896629353970882036207621796138989630581464743490891357683705536725931868099557592908705873564777997839591652931158669843807993575029766458948111930127718923462036504040730541043072030818547441295937888474430959238913486232846528619685356010672270189437052921342340721410977458262863752982648913400546134203308451725647552576872528423359130244687965115329315381810984100305521497407168622932907294717742837015759301323198879812987152753346632174751442673824894754007959663988061310281930910391913554690082443396484982273885365179198913786303183631696081248209269264941283488857919927682122868958355590024181839898169212862702500836515884360784150532846274440364065500315541442795846586917513915513345306682277552165670706896724937411266117408394339642000301512936387152102270070293927376843987210430650962797540554274342266806385523136040310496762306857710736489942885151386873940070422297884993169222235372230457210414976672279164544959814342192295087839314479257619560021163710093057473365758234667314471235391250888746754344324703749258216524950825902348663400871521127458808701715416010685459335997289996190202016716871353007656205606897646193126834478795586961630721417533978106174532556104159286191084085243014223760790163478827727308730602993431980644310673990707733877553532922810058120268549194589410578184802164902393931421532678175678802996568309899425758325133422201671791041193578959307864933665353848987844423681279235324040153973383507979682024388297591785709133510939472321321255000992524878187546998863327008981205990822966950347142383116492475906303887325057460168474335324873604627728155552381714920886679288554672156896871056951183068725491438759542893181560918593088628019050792382722770477300743920663464116020062175962687649224586804278963715854981943653789655253313929446276224721674519372390347840498290299450303228512075382973136880064427782906740475138122713488522576839472952686303608433850229096637020646341584936551085124383406702511417659222144501772052694186753789429886984322735910853848566154187677952279307105116629555616563302466782850473187574249411109918868862128042054629616149583901705994436914753037483951592689104706951713921865793818167413807596899095747304562841875865223923562435865969869514626058038112643538320398691459133649424794607162579230500171805696403204729123787697576729493756988516349373004837966252670077487506361432357635170750160016299850386915709272327101829184791165534653344476777059611661572789991015371343220336511851183652378384939025926807719206229606135889295793783499061766324482667062136604346489477270467907185151311458159025263881061554898892278332882641890881872625469268090593382492071723261972478313783302612092443126688920063241082329459581877973294483952556047749585389245001802123268478888770701397724072291935990253574588328213866822145168165891636759090484777606915007964438645802792525769441930034964679575367366687201743057280225703207965718187637377318103720290476262420686257440302690701229371627149045821448403757004146754053741729656999567009843675020668585407130999122987226718314503249390816363620980474347782778599069134303208974141916060701576721947525268103930068929830389475461067717666716505512242924847391530236638399303709616223868121572910128295958913343929535484368043221757608056398916454286268891841636082196186769939955999127430741096854809675731717798227850446465589330691602663061016126314005396406549030001401202834901785024634602780094148768080466448261201019937223058764750491456812640752120486903502981769576236497754460209328503559624900163535371768640087235974476293518278257067621537546521568247792620035058329990719869849961871614545807887935223585985620855560981547991664516412231715054592208891955880531109350597851835003176249813302967830697715954867047432029695332980914298435120142404655044304067121712686846452242347926351786378316619617476740388117314083495487370339118710408555703172922838814566718858577515415629285633198822352997089240469600330460651994792580777545701408883531230709795630334504369889916423435192668107437586161800412953323215026762065882185150262843925318008926894283464338643565042919398282260537899264578133454649266134048406907596246854247048515263096691637263280287306430028576452142975963455961376536582974430130104621281761461944907860465387748501284480472533476358632676639838992577907690908546224089952217313459763493043519483084572096348238715107801632805506489133970149324813572573133755700770220194286250871754046587685117168092359056182345454074210102432021130404262110504553187327004194124725041289086419483171423420989783962526980712193033785579148242909730438765081408632795118158030296303244201193034605805999827991779343550882132460405458700136179027784492885874926273583617093637992891657946539218744747524415217387287735188695680004103157699575805806153560140634642900616940237443380720544967225480973135192866449192975998032844259911090468391566533223547068802046999452720207854749833048021648840321617427225521669488411876534663513416947891338555116713747211852408273201615002195773925167684861338810232257955633134321126894278386586105734580717083133820903583432305286823189996260910603487228237855982669610042878404420976891625850480697460631209910977265162195450615255297480207372323668684751553550100534846717372759865578007517946496582753239686837057093829940676061345476893310381772341346365575211198492277214881122979271806186805968903658555244077653168139903172561893883531948131794272791257472189238630007385385460592271969224417336515298975393172540088775113486723932822155160806195087810941100948605821999468372811754446725669495648096965921075215813218949406723614739307939852435319749294625791037893722538738717414048948316369732077709595635287480331913126585564893127852588391557087286656018561328850944491817276719255220994417901237869846886200553940381221993208616536191683595138635849389279057214026217352702913200227444233250347835245445755725657440091243428144508428894499160179376340473757507789142389075024284641341170265035919226988268041277775256503201301901304443716342858199150182422097492362406850647539336054530593654791404852032315227913180540040755016290898519653160119112823646908895753074091035646282859215194183011103175709909958423624476743312038396091772486098793522734182747368439977160746795659527428376848323215725062079079373293342272648592449183350370002142453440580759293681065954385091991722597152718967371641960691844157832640270998509420810698934335303796676417028704309607208576698881745600784241256817697725344354537879182085639520575735873296043130449922038353922872792474710235190591580705136601975599277767717127672759245362742399084657341434645911447095897490710966069624747474408457243906738786051190564962774611382912380721742864796684709903895883513552752658662465734493737183809747466588221540388809919167702797608397420037627684628563374753878422071643032829528389969722234596621069578711558204970034304327597739813957404677799161627840684653728636578484415946587738276324645649035810192100427511825747044909467493726809653739406990129457644836855530302620121075304129100749827345655141165546736116088124607171891687116037378687701729121169979473080137991592126896699676294302467344224198009421089072865067517629157746120303781552898642315796643448172425498140595502844285534109971707058978271081538480711249878898487371670194703992778795435031104602201445104890140861803709252729644614262509053554761435350552092180457319792708338331938824027458356661277370353499884459827044222689491283462112368192260837340141847952857450920437978837659260457525260033448659149838872335949912242545737830448865093975240267884811932350901009717464577641545570953642319909788935111987453623576616308983267421138798902279206473787871176551691704625895239342797208036655667912706149031960495077158089496761358087886700469956411879826283310790633221749488291518018912837518367210621276236754150225085141061666313094769953271227470725869559659749143762728870519173140666319972546472219344866310169815675825496176454306730687279605421029624502470807728157529221131669591213522471193946274764511192937781422702653826802078187584361426088397994735499619750542514281360804568248387213474317474529692665329466913066281008150245850593752341306408103334827257423824656735784488894606087483526321656238416053663268140765545809584917968499773955009813597780207314962546643444369554745066466170932693586526078552442878087383196589776349421275421179802622683313713329667190182598032437000226651659159024031195544656687314691358234762336105707147548631128175354532517845812963170780418059397888897638888516171373232519753843374574117969019931515815531054767539207570940944507892146131823966041137224289273184606184391780613285054070033103797252738291173873227813082776953159163781573914491340509451363231324523992347704847920031622295976309797688168813246067555771492132478611206539365460900345481285632713165413014823978134717367495225831129791767142539473740706282225953979802694646068883992967535312776128417762063495233214192321208239111339456416629972301080974498196252307661403724977887732863030474233313686572486145740574644584241418352812551592305754331426827268260662965316562255761322631498134324874175534791949002168843713420076758333966933641519924184603819200213888862760531340093372265270796840573593819536250451226162502653866369625684787800237409334984132151540684243436515307241498377525871158599340132525808970107369548829242744948191317269518189991185413626599294108607426341898024197562415841879856810754769274983693644024034331058311590172870764691175657917595254556845886890997273987213036250197342014652045102345432146384022803504277391468698534815861472049512098832545804243152577720274751142385673041496641263946899222895913663018874071024285656026881902914725561973198785068920666242315024437924205408910425699437794272354341160691625184180612033958353314207545118569169803999353476005744257829642997613116743453179616631892066169520879301641133654408690650640076847505861754127220924013975420988656117683334956966074466925470086280624854340331786376564277768943270076200332182369144922661125360223444409530460715704410416114079993707807263029156561580529362748320027240730660142064812821645899495074230603408008308950041903069409221817423834958321243836879866620055319840517504435929704393006728893533973762064930658272799537011692275265540627309657863380264772360124937909989145761124194975473764096388106134176855499920295868785385137295408815714379043798490060396663299717804320915426056588804004191943306057946198066336484827739005480759089350277425823971758560395286952711763240866217254842626462394593602318822498770873587310366948258823965976357076868788269310364468386987158914800196010329671889932424376969493200821421405147330079252055908867171783414123551830573902983137379502451258880848076410241783025158506549834783338235856560531387368170299429301637241976687411220364996274620880150807984909986818930658190735751698693704183136754026105595536085674109602160279962404183397097177851389685107139258561971049312266900376041301081925575721495183310249341369318372447173271191260530666761530171656104745803298343291787775835753655105775425455649387291756351345386909121313028940827294279064060060690261776112152943413645168348589310631966947384074546595984752076593924296814562818130647771569987472477107802575315974983715920885625450883847211203135722164727215100475827449396470007707181041170935267442978579659614856301972694198094438267378809212213581853102605544467788580524585109537712159428009027022869480997328818801812515521750090373683875258526165171179051094103224938602515623432160273960239030456476395363427261137615926524114704309713472092950608441381401639479687492229120387490005019578480195103950940475709200839921435323704890738438014012237423548095941613189382820862487171099790635131549748384728452811447593601729419485054065760553234071126720353598986312172085406535410723298017679537381152237642888941179716711596707869951774705490366694698770770791537872928532786861100721842200410448158778808386786886867570962046168480081762050529332137079470879769746906220433589413496690714705793466726243432971554938876251676682976796422483814226019133961983647459219901716529123876334381731650294541386895473522682752353718160958626880687501899965607755114024716441517304383521197077085026746545988665700118210270054417643811401854216556911731371678264414898742433088173041324951691061006462406790761636615022117763575037752275757720268420509454749801308218133998682182732820232519762166468067253160547523465610404714489450788802722778789543562792017990445246345845494673867083638286755839545394443022523426543848156473866641518029343983735784849137085722090679215537406003786515884117197599287334179566651136618518865110162988725179240174033864052543671933145368399485302596246728065648901302957536396990114086362125648198113932376997361410012236696886534747466215399171558534314220531705666707885666709025786608090281204200133201242627773926208044997725591536106833941793331446140610129583658642699590833143025634694664760995625063836187085315143296387755498171187107185491686932290756984930148358637340266842074209346283170354067174609225402558833538602523728546859130282284659971318442110519854447474631148581447030389150529016652283467614123816772122003102759107741296457908439084005597701288158221671334577907112141420854454911181468380116053446796643889146804540847566088537670025689496153419688796743745998619777060796591096433717266108805585847534762092355909955799351865551969603468164663493327439565062933749886303013820453356165790072675893071972673486640932767153590386270618281155707506317308539545021003225277464187792686690306808148470461976269825379934163121277789337548802837949281597816070724376022365313418463543060465303193531084354159745909877599119670704439714729532765406696258894090208660499256104652870323109066440439982777858967221856581046355996344941926240734144548151050041177325463471654553925799068554763203345831920300676527633121079733423430254006522266783745917296554048393678475529381646961728532989293905217856681565988751597631817883029194524566898650731697024406048703157473281195645219796093515914817448211072100345298912092224499918177229793912247323222044717661662783541319376813776735099330673666035350015459362807878616867953849487907785359933609505066694834608922789897918292942784702332922875754105008808013597734717213145077651144397074434281397797362529354500382508059181225651256979583991152201119301581284389141818783549027729535287763942763545331268536540444628455569196900345481928249331158160482577583646402689779373759694390231975646456624327767689283018961690553332693691800865889122564743264192995742281055756287368436802437073086933031968483802305258275712224578995471721499915065621681196106513640554753540954856937299766800704010196926376994413532504081746950910671606619302473634856730314879052953945577957638963172286065637816640347473189364206665916128117443034313368282027451712105333636999851365196748101193496045463469701252291233161596086033707058970878515082052493350523883771225583350615744058526447552809077519611679048090739372255493132999153203720222314285370014273146668552569399100457051377676055064216854903608681339829063875379151430142618833571991984496153829544124211674613319056720144108607143306282332135219932731013400566445319987074643532699564040054319023411471714391163857565316013947616987063492512824167238282598758262991269032495911715638063581987245920368572526847637264907001576294653328382595869614988573852596744786502305281653788086061537882768313283009024949474156513691004171241835671569023040252781843138191816911541170318314493563346052133211580395602280723071530556618264006789260069455444157171538991813745571645201940969878498740481015966748148511511174537220287595500559798487849958780699156138514955694098519431549361693447399201623127270620217348481196321689772452685386538597942514299784931843625101421502453239937755482947354673707835966426379863147551094316759614698363929594978464061014249070176599704157538261323896668261815001255450495483130520464317198050849315758915194937206217408308846822334763802793845495826687053585676578099365174188824790368933615897050828667352650132486470483667345407315602154939536014495414777548694107544277237172187322474929835330606288071088929053196553468109503701835049144080992908305081166048413567856143344533047925623632993147646681652833533988605331700748829533480066278246486435114402634663412181884957062894438018637722596423387258707692591902951515287882595908641527153259346474416545614151616948147934035442497610777102172143155057217410539663187943568777819072488710738731135058346895901483554294663604513137595729723872647448144314482770609983545838494988379020611394939364251495992531206439191339660740296627987647577301336768294764125778432685290096570269134659038740546417332721217641844463875020315399846484984557762841007095034514749314198643678865063584188238061181812254425921498435862146901537037352821334675428552089735683128901302057042834449919303897921768769337796985705661463992497786384268731587480184479251830570021088160036367672903574199285146806928373311827033596432091248289129053088461406139157764781373241696989627887437006348609418678600991123703853279033908736753701808553714680299281380408690895331849796611419020113220691027463452307683783311409673045434238500442626780712964229769815357461436298506350890422352423211391118077895148998130699237031475002569573321256788729091611633093041645387865701419651326935565134111566257683301458541193006029524483238210222779843486835146487461902864458481141867004379041804835221518488592768498701408336327959177738790510910275845043359506826383028814496934637477973459795831311818549676373845818722725601102861029802943312200475779422955022373117864231908802375590721913340605127398498460735576396413911715453285191532686328356741939085803916109845819010783457719922782779858160240029676488473515394625506142824194320234125804352172295545023002716476987273793649792677155489991663656070621969184942833272188503063752204673502834022112435615911984480180633704305925853779699237595974767815773985951819231607228326151089013700443884774349752184949606204113273306780268964792479963625826695938087229461024154532649696538166115943055808120268219917045630012689398681629494869668093944979353552493782503643817310195900498306395381994934459967924264438918295091016984850671179058782211490215171098960464814081197155701501620761376281605196277032273486644759931075155632490132090458611596096279066831077527317330582849425864201316040316531005855484601729813719004699069398595822574254992137157413435104285876114099510241191827097697140915357699702612469753100981952142523215685352860557993064983383265410774386983671848561663080582594002421191608071359497732385082469556267887420536341961307363445063654479472118059193310042866227500118003329721670650781558546191684364656096473720581364917057512624039170213179836521514412162111102210158013897597932237615158672334828244669364274350215412954024034807073715328123580701027393805301706767067114121314305638641253916115154369262355340545653809072288509469383987963569972500465671649842384792981929386450041763782090023054552240861824308660201296882723655258867678030230938814047810057463037361090350766691985773800226457562590601903017658634594493233869107478896625569158902075147255563192214500755941684718496524417162725271459306970819486179514518803115448962646492933017256493408309108320346617987231027623318974955640965084579884957000762987089143783355979306698171313536919556010181983782833332032170176481055686090470136542415391137430289487367719345333603870570859025094334427681027074103367873979054111839435890147456683654553235173921453229195315968011144780520114369699552958303119097358567351909311202673797414384691760075213602428355157290114174635974653289823570259857871494897136095938029782861957988144318103879090058987719274494801105363044137992902393473131356632355822171552097971107902915317170046274613417137645611972744869441706415160604921323103199374032561152252337203510989748275358815302525913098547666798136093556028769977255642528597465670535938840222340727579409706840926790960239728260801243608110633211146028919254549691178008652796187190763602126422345422590615634172334564146425974172896238560779437729768188273113743927311945006418152569059241329025203228183313830694257481892112836021574641293004062996649749476264421797205293258897612716375362762165458026494494518066852967552531061113384320529470459904506224171880837042715675330602446736921836434965733037749802935938897602934735998386956665144959169215891993764643454371595971399440350701301086450629972140673618364459679906809828331843407233774793349235359937357089428979371921583558327631882098714402686214888741514748249448222306915602033104528943478401332084096450658735355947737816397652433338407157345584444413907104974578873425808478723732810550777336665482225042058941190872154167008191770816109129168845664492669922259468601502685173761540884903753163856011611607021431527741175062966291407247252966670072487736802013588284310043218723239766020040603563176102326514456460309232444804435226139989403885644716759445583837961824129284500901014167993518261757294510083590621303719137503077464295786156096491431824014785279615270060653273665352329787515807564022497109358474216958742808389135744384620912433113648339417610314062237408089999278510486668017797700660398475018677612569983928683514182775344014934515285557416941896031687574385576766142846377194391185915419756328634863709819356342133192489805928095292250166292319550203212570578484731116698099147163905706820900639883593714056493927143979503334409804650581733290046540148834516761108061166143706890078537752373393170271149056521839617568777416701249756053290009216110637292748668803958816159847266046494016273749353064687852322796525585327219641640233650300106956734636117495751366750038923384966722056814362403626725338123834977569079274765004851168272262594913132106872683908445026571324359429314138903112415199094130890188504234631470713926992385604564539940514994787158324779608917527088664637344395196339243072221996514416309229930686772488593223003380966919997450016084733689948484382058021459589018285811488345524228108989848439308154308468781060704410265538767812405049912299781473545533664326893141674269383751043139564813431077833948789222754848530008750761488061333580285756337266228787041280858281086491679842627249188663453754932603652343526281352725757166548040960008700236836637329295048277896578319134695351683490940761439780422496094247026495235530136667660326184592248074547663623427416547353692902084295367779994633613538311110502281834325382470896942678827855202347411061916036841050112782764030770458519698757239997176504446937565631147299171153513272476322023494788794128257166236328711641114841626731027430550248974336705815628412753951927639882673847538701172250554768823448752460892509517427688641886897810460340590507655597822294592602734642649967684154441811843513806769706598550894385720327874668669759562437744831835489019140352494504669215728078609512102769110077170867419672054998210910967701976866695717201729654695498553387421617921602261173448041297486569338676073930491105247320422936845109909442612519935927182553878550084630833362921347452064692518998276990344343134841438602842908154605002250970847120289882615861829880741893975489513664249809107535469209984577493658198333922579857210790020791655832181772391535143352400026928059081102928706243689365622724002072840889306648832518566277441200279938934720350649862694185436836004831946176777713134909604932945200529985746123025420705314964288837371878424548651174889284164364580746899346831270948482253659159099883236659203946872253869000423175233669177070157247053401104798623754503737883657321763736875021789005567319881632990110045415562838168502910976304326110704848978690844818896753718462028254558114172785206751893240659696889112252085952384051046291779744690627170525402601131029606234654695555806702457784695598974010039129493442239985472566751261366487476751487634810239791280014460379969352082451030925685914999962408890324607445138959249832373540396021994063435746439357263531478836911455926091270092211751910794795588825962388914613714300143323625434449354022742682934266382220185327476143665316926764567045849390940288968082457891256536160872122675945078358465990039821958156015468001568424185465159024163397969398557328258456492083582492948467126005084703662456570211538247695281567410311596140904155167165990641922851075426285828640801693549891419004007139524401724134361055214105544514427467478556246750371825571531787114297905607405023817342920206385625155337886392839227127629689739334434931400009256697798348037578170150172177100397453622194774828460161959889054434680577989091839224974325171255282808860226945558116514341425580457267488164667156493420829766261194769064931220076090391514106790204281365710840374188567740370844906722203994800888624119558936156284592043475122403250279442499630475062784116173940231155782942964408205341061013046821303867760541449277754239803894081741067923510571796802985716954290188884339037605511541547990312974863483067748998743711295870567017275729391159810800063296140735877492643113531417470693976518114437669802331358899370429611926465726709252790137392161822463511486215273024545944419824001113076826025973707107206220753751050498405039836804129017693198832763200770054233694523898948541899078671348903676560988453149409912545874126350252093847138508740254727037228920524251172529195869467367154625324108656221669112372736799358551197541807352281282520596719652665119879702753047810686074759070671713031995444349610979947995182607506821868055972096221409437847946748514405500023203395503247781846121312420681400603955671976094167350441070720456427040222355110053719885256857758400911602291302727757181301010450322440490073664001582695739975726696385647222173909333209336608433763842554453712485414345024125111478008350742950752450492874967994536842991105860404670262824797916034085813129151848989141305643910644826002164503996686992535756614742058585411300973551250118007811266755892695348828807636601837230273424159928702926684622072359438972160158636449565604145476721373687870805998562780360180540865221060549165820397821668850186476051637918742586657899662969574267156140342251340705553597089289143879880867748143701236363050755582925734873370473848238219182515839835399171359662780644284867470799409146271997793605469548815368317287981256304164557437257705253635700423921857382651391120072726127516537597414623633913459856516106202359534956564565149930554993768564689917604220252531189324981334034816399321933509556818467077129076835544710359359535932409237495581422086339187766833634832423336573309045490658771143968469397139221462922974955958393373879074784461306603663696652735596254465165104226107717557653579977625419836386793517018457529162814802235995348725285187652472055854886687040672555641903808493043190783356117738532883339114619159660380782627490967488114080328312986136164217364852143650586794135151819417272889196913213591878414038818199843769639643901030964825679638442875265095412255413261902188106333752081885684040525016000906348374888762893646563814290689319671644971998365235744568011417639214983554037297966930428798888508539264580814545157094445855624608562795101347127132669651745865439792236558377088302567302366470550994712116188752948321080852933571009247349428265867912775775812434981979329804459129812430975611601815621133191838489956018519865262139819028510312012447307448827656064731868064480588314379015361478048590482547339267964870373960071100354240019575236952083338641528712382235704259984134404428298912535138486330009775934622258984081344547086870394216193289486372212421450464299547662292191552431595292932503332319119454400857452517366082117407718328673061233107745087115511297292695625028648238972372663936579721991543548289550699961804687827279055788498751533276666156130903128181071912425802184779396073410488263176308123143428385969285098478082807609697125355662967157699832511151118019531386293550958501795608686802012367203597720991290338730343299554872163287091398790057858234392798075255115245445724567031400532254769932937430284731779263310371573297396765851022021275528529547509499099936319620666029284472930538043423806453717203236144935288667279026566700786409158226500386852212263638577881640026966667694029731394666335507462308115198815918297063050188591709803301816556247525606216564961720772242953902809840300691579664566062654603416898680472935628089081428535199549006107273658022346259682208926826310645381511434699026092079799835759336556193210523550103326258344259750293494713324899508126254891020286297539253590004478319386189605154784269334815999369411486757141643863875284807105418050355290542729153737797306368455269397012907252029468081470096065856831388790144259603947651132034320273052829431589630757584546179881752065557914786179588152153389566465410288850659057838470157125988674075289630893567794800548785805094096236958376093269257961957873353870463871474522642321169269944512283302785021968373665549754469815495695914849362595994755599690017752138960224487958435756463343838056364742587559876379116448757498930214595957258637112383465207377032112568062454652177973498596186892291043961985572840359400028761489335534900635346096587276266306069618959770461129303648031246557771429004555635451804063259174571996589488922882585235407785200294085326879187431451391883976902448933216925416052125425319333678069041904310232545233587922954641415316332704202296134666044813114030896036529514504957087127242629416058773141235807975907503344441674873295314315872427574708621208836902420524375098089618576517657000356871601760537993700408956204407730732175196237307741704691971167825328795819981358193256718616631578344472836029504468249685402371202282364248744763538244841758810709526535590578057654360796438392677816182017895472510433830431531892713636582754653551160183663939888412472297895161215799343047023896815759621407091019736990943471379652612213143011718334406183105477778686092603909365564045858342654554261296460473909335637159229577372058895189611747787982626983110434754478218669835104578080886155133875705592687177933548748223260407762214152336752006790051929794518256311268722821340528117097854813499214828037482326997489157555944921573729536684986233535337943113149467271231313259948377699080126017971366282313586688245601129344077252276344402735111961726937001618214665168607305610572021458327012042488058854442843926220003028091022208646176079981339900852888100509572997395533850504154926611056736466517807793010443882267208012507745693824260403296259561199650204501677867585115934103858052055596066125369842773937037064890201148891082830076342936908189683413057595580364356708055470870019148166594984750085887598275093335992599684216905648115846549456239547313454683372643668455340592345634169105659159417923187483248813073771393558599712903648549267606113252084854746631511127709598970927082600664332561767101761209811436503760322705592944615494616659036995212753740084684480039656700554934086248056652528347657493836172736302693917710737825210353589859927919538880202369974137907873470251265546656304643656924169088982220319898699098242610413083256564819401615914390209729812982111575604588450372664989651644747778647125604360349248296773927244913811588087821489792247401876422116963473338193794331252503490457040713030804984735853314549507953125986678851093844890715621419333290044549060564390418179165581114132092686298318731399527947951794181916203642288654947984106444223757082875286032429602796057761204446705397264781253190452967875762294406599898356470159658998310096717938573256901248995461045938427261987589990522670759386582892889439270770981021908689040690580621615012517178833667387451747441818679205656890209488702562479970044557931374316319774812978074021782909958347830447033017090866386606949613613232845310487480723804102128224736056608720802427699138207301521610698768192134889702743476739216644583903146739522980177689815366490641624393418477052470329052329678223042673556213668275852508801111218314457475875282050020176036951867577340370335852537601298096647793321194201592627060120971195256675801208006034535254696281024953104682951164043732530080733664803924646247662647357636775129707390750253899962318428205485549079199341462880679983248398924063267588555325303602937500065293991243289516034245278167184892065871240282339408057184830797167115906597503961278764366230062247283050369085311903243996879494969465220423748603982047599132202156984624374432960550059832399771263259359266358916660410784026525858935083102146403002798303267116976489304385860101609703918868823167788127882286168791166350774823761211747556684865922482360681618738373813992343686974289441928774184263327835818048935530928557838692020782353647680770753132799278168534318674811926212433618503030528552434914377673235635486651709147025515631767826720031303108120200660763529654681616736570884524582909151124349055663278669481865975006737327245197566514937371000706286230426264259262225251930720332420211150901235556010402203470851616973751513504778641633213159270705339269331285726824850119048748158141142581153081174909948804227587603514962036261050532348750173874865875305992395536022026844999741587484189211606599069355561768643139479152673907480910257636454645887668363167601325537895628099289772210437996159651022260138546741092343431686452608782908085889758065382027555413659015754491695416839790830030755765787580684813814588973500062059771800834404680046961048230726288371631277282810743047231860260245385305645177338995582229694800751350612148278513543100917899242236829084168746723310374106562794270310736261990268112796872848409027776853685647342029265684362908754622657174989310950575840458363268550323074502322010737064360430044807407386390974137230929001780606669919010591676286077441691042411490625488601889015401783644122149070030063056535117490914061622593767112010505961306505013036594673636863466299342431086647555349512207023906754948090680283121379333451637425652014276956737625989999899282880937817809421360961761567787089134457714360953486723666727630778061013630210142602748628387475662329112156590905945886273979279126493167975795131996810738500943571110630660880073485575754291481463930304058177390647717862531277964909439713500739606952887223265102878490202350650755522740414521682586879013331864798079280221208153597029838433160182828133479196915579120427994007943094137543412831138412364910855462317660353041350350263080013757967472297927508969769429157177569621565599217422583262754091290511451857099608301865479850463384455825554073067294626600000099096435231046600889613028716069304705160454376388430526360957646801583884119771857502028780282290271339638026046022073893853131132214245156943539756077847427978374822231949729619297308251611361920954736780326449896688416719177937521207930789726392317282051685678917274410786513662453117517420294319249325783800433830826532685038301345705793838253235864765692661486534396002616420364698622760741206061620581662799360331204835500592514447942977788274780751791173155494426704525865911923938074152958589183502647900517095765534913756279479457694174559385058178472673785708453888895732798587509889548441837243163496728944642843325946471186849260789072127260779406434691588905257915127619517571003682538359115596074105836095740660861651597160350397863999558276073668629736043082801229461527869081693175199005043015329210871535667727911443780558816486572135513388516547385320597062402774683600098006019120484894976459665275863843982609373830211293924199808971525454620404925302858614896308597724160844726887107051905051994030134629548718594058906497371214468394712946930740264331014466939622992061150839456771897624490381249689218810471760742320852949929549309307007154250659730016110066577208090991446222933465006554320234177838694550826304964451921776662735929664146925252385752873917651915058637688996610937731920290604184622909920396916067867006866220154313116981860835675311738868980101621998813008218956817030624846876960540597388626128252250699774010045116573765878314114755849271048799928410016988137324846275893403345013274908738458282598453537010056518132286090857605186734733125249292844797536608638907652653326880710393182646220702032487675206125281469141941564617510902581434029479416206722553742089089433454692526528016010592536559078389823280337567654824657570103245812726242788322035748907693787236642514006039055672705794961837419935053610097039198898037745892311567932290024632650253047280543898554786997826041806303296114076488370145807692343999562711731221736780369876438227785860711166021891558057496804029864821336418766349027486231925542525521242749142362124652918335117685181629964406876595909160906114345207333681738744060567144683216633244212735857595958936912187354013031045319399454013801487545153233338157501679750097551352727516044285708016539318567951549783169144797992738933766039783818199834976967766032471139442782964200819099072229461487354300140669828751433981818819158852360099722361574967018798729229942424586540580192221485385045824460625435467854459863296092416450084005096973528665180836550735229232798380250065242716132428647929440714648398591040141463194206826993385024472289846861558373069525282770936630550797182808139284018691363288086118644523913788652902238109727317337629859876758841339550073053380097202334240482137918092487750170067754118041217489002036825600551504489719883779880594389774171928890013676999102203241457622429815586233000087989424637446537836488859998269752415551349018409016122818681540238399814221238488681920588920668776009960898775791349164559252559872316335075290560591410529715951533528410962079044775135788784052655946985510853253063044742300095485833405144518770519678120944821021061119989537321099163304296069002139719073190841190169191894098348536908703820118094133354687306161474501455244248559718908494108072896083975156642113720721943185761688279351749977938426024203764139775831933375551022542827487806619906341615562628531053786239451584393482890782889858400354958248803743982764806452001681524706523931845096339929319057543648338483169487805001412341673420912089362136404474284461876026226169855405061716234893101070396783428358797111750543027839851626771405124505053065689484001062627935448550900904457483139032732618039422122108934793173115037927283456050492987545422607222349225011331187767810211170084749372444694583628877491848597046678839695512580441198441244416509977377337613759015553189788511956216406862653466082453114254815313899763964737016540708478713676911258816930811095448946524237810187418776898874997722179901811338857818704285416441427251627305292570775952420914664462537935960162476015023756437737228091622076411197677663182888787803323180976877866238408407282183587408007178914359308707630248206699365858737580403800140687764305983147235199814006555751990237546613988475838693473196496794659295104812845208951106163274605817119096045147301230637212276744838561632026791928720592762784583323821188024593481057248044890198438488930540217314735493824318178015228608840797156985110659826165807526649525127988411294357712806565974646400384012109834067129030961691773642089358003669416381611075400183385152376221594597041196870040306996357501845272540489849451577835023897390932908786725325269417856536384791188234751529114017370084940100915110071613194593667782154612679224170955933344085557294945887117603190765195439220491321542652633825271029314464093395713874954123203765299681684223509579420390465154322284189754984433514569930792233062362858492987478145773504120475489133626026781433752628151915441105013665787244486947626898291534149096296583764252239344023190465891708863685703137443025456372832725298796480592632412935810388183113959372052801827853028126891384762252332093308458234542964103349319760346256702431317038555322733818229561424672474504188785634099232636143466826495557218196094922033148925864833063172463411240496994823506954165255085121170212931785560111751122096977667245053421479898818322044638612580876306807237825894508638611762189658956537911660725058458777990542691088173837242935904187218568878056180315236741618917197216667692923422098131114033968923384339820111370781961915970257017720497444081236196431956442120563180371091496373219716024864443355366539966358080072860535259235975748681110760177369007861057378239087627807211157028245984190833451360029764165528721543702444836617935852698869873820378499860090810472497815987818226903936050289785416836400720823005042209245181490818760796478347677114306095574305270649756324659961989246120720128752109146513255543323200331872657687948294627865352012869832072285971032675180165293983806583864440311740330118570969596246514263641015444765372384650200292198755757852110450355828158189148626177205041820146945187680645250320412144388558875163931118289876161550823248090919038600758533335659076694815406760021344252521490318437061260627325881895822718916291813238952390872155317393707172501951567045601130612453041603928605926879063387365001076059514454234937280683755790876183473569030400067338831538192268924475280440436498050399238222546807859620334991490371883911413098957021092125652344619259569015425001982296984236990564716322577175430290583580472181314951765132250055870077182417502857220708700565025013350051479486172142335849928458602285159087812807005297244762654333187343752238589629425628264042669989007755225592832596006114113954616405688633097117450630515561644214788038230195646475751732761401005645045742844091124176408631224863354933835398365004906773771444038669112105230923876349942095805829322523357861168105994624071193255058645165166266833224298350490251288844658982571526147822136062888906114757606141832847098617413539982218545192551272644223515297900636406993557416669438125516288229338442174875556463158471996818567532335972694810374872032316755077797597904700295353642520124169361008846336385007563674884275265925981958785665566927691504050392122078633221715531117017880891993965538903523751096573397037373829563950536961292895356773304153353490377639533198216821716740417936208991235337550639567234162098241105383104477366466598451266097215911823525638213508717706112822822722918699027748978109940040830130483822022731862058766021102428558500243828083147321283578575099091297402412214701012257660933262335848661390431908453605550784175529770564461587491306226914631739810690396019790969630466164493619875211989554833778741414721336984047846356007200462555902880716777153291527950240591377268970057973259459198939815838307431013669607157815205779369462468890586145164585623396543420951070968883375759891168146529053309516663011554925329237059598084464220828113262207360359135131893155257879728425353911471521211969500023572447457312786216092687718597919864338909746029579508887347104692642609745856613138846220997721758312533815588724899824970482590254556698498988187090331466904445749638341864329764274759114815887992235990746661758686000402463848292509677753505771436118042767502204297646017916693157054742719336869024332780342913051729519161123907571935156335348184356955708361299276447899853912060967195671639987786977868985468512544984714066081158873296071899000116343061068526225734411955066205057441613378003194188762383631092324032228980145348337437969854260349562046527058730067080799632336058664202924403883656688756095393734100560391716270172947731149198770552784467058271522511030138524526916174374773307412656384533712038710842678319911819662424718103309668934105763179288786613780771067176678937239853940102290744884726781711243819342178487679588596893073827454552005438170900086759511560018173088227255750318066534418265420938545183058929076393738003513864608983700647406210613147887543029681112565946015964004770675761475702927419302940320404693852943808306863255731160860001742204170968177942805399634105042193876846194566544400003206063473640524190653668564395690211907230605221508113255908841618572634127714495840670758409041144228968499207566204352029663212323736102394912390239656869804804487666271131093685430876440103028201889094609026130761855327324033222515196468137581831688800474542184066854224658024286111926805125298730015480225096589779678447051584174918817555278064510032599115179776390784484139571067531236687231161277078439606647319331290363094748286333019962706954054009645437573086002154730030191450616021811698461566057671498579466235296127119936727419378366103644887399926492670788622406986069137417742153597018064275921387027129555786372425353930049957270482899104809436544986899374235941604078709072202018476135044969986392990988516319234453330711075261622019841179326742874485716790768056672856296648296446422776081497112348740301022112977054298419635489933931098367761490063656622478424764207974458916267119516654593686185214960042187544152521170955624175759303210445772906153333955796501332472579204605472179774932893172854690342266062727631384178646614392457555851251348451817511062284441887696075940916952131490523366257490558250923636326913425677517002086972824073354810920576880546858448732344147902124981833332151549978588426083179915770916022100792427704240397728922109690022909628884888578773575028094822935360047119229344406413870844179336049631118710499856398478243420511738508503145243267438001202503012771447485511849512728280667795529365261403039420606958805232594410074584719594482065538042848958873803979184597575767534782747625386831869108445895421598218497864860360852518964522135583494415298753398863467710447527432081519822702008214777384185821206897051054327798118680348387332582507094378628720951973263379291764413345285416227827939196044540903843544373676605962738430961178865494250823944849238661339578780687515228030139232783466839012178316381525209855847908712382929749491147820839696382256363383807680936389144541504548669820889745816796396830876587713585127425728671586821507639946661526268726086231979931148765844737787059750549753597139738506280725200480133384189692666973873085767914559843694601353382766565908918461365169666089562197207758938288125278649070344955572857189510164229111146269618067534213401522758542608758994902670899203900439521987884989351858714060726778877354668441517625705681722186813614102715815504754497556850020021556069531892202361538585046317561690553775826684765230817080715375539324556645006319232242265710029139838877432474656315556050655175220599584077624155808977523215424457158656840291043889206295346599772814045804147031756214133291721201209743933689571645112979455418576696057660566098141815321521941622019378914996175444484853690382584196796525045781445034805363407798188324839981996680491816321903241761496552905040645079968867309803587824139994788259134047258385749146412876271664973500799940231267032418819257103441661638991108739364622944741758229202373336934294454447683808485991371381565974439646699771521163076704552681999633767710796427896775070578343058858821776629646887963111557598197107140425451957295885507680605779238383813005319297559783957481149400143659821175336691741106165946694500465627064395721645601652253107891047095094912332320228095750436679177787181226192456945238009484783109900764005912065413501734406924918460549135555672765572830927263440762511096870907330648912083353446943899095324151321360363229902097895102884753355195076433942510179456063993135765253105473847341580177827672336780311211744819261315379833158824073561831315354832117094424748922312006192334433142155599247571059580779110152843462420478897786565509482113091395344200403615949421501064673014376449283774812328070357965895810040076458334683432304106791248178777246668232240183928326362479657622043320188786943985027317654042597133044203171457777784964305583615608247933763924470109545278756449172970303739333884694573471786431380134462577535060295716692816006133437500213327364466911036047537956756545392391622526964180272737843858966867739050641032335897542835893865142918872586770782836518735273648104241350235396489294649508696710168300966195793609429189839632073271902595945341990391222399960517594705520170597018372705673008165150472011599039215314160347274678968363740321271173063447265512494537848409722350482586289310474466755153432305371335500812638717761926102417867622308953839736613238170830715057571537950843484636529278156921836111071190060419144833305747022826480646127921047131992973022673267871454748667719367588546522218558992303934416918492114480832323874779715477576930842697151847875121562531580444553978306452660780465056757162438862481675478886596827832180691163170222394799993584409034636430379360580214526883966638902099750952916103857480571420448549388554701330388247289241652309415539444557670636678545072041877365752221338659724281569603963534691088115125843863943941514271330066160506432013385873430102101782112261375048748574179985051415064845454272707565112600983005248730172619521421213264348581350901735905477135563326879520674852120079254083171417843466647683675628459091670897063562425013940557850158189227333286221038841001869564322721225559385631485469770804799268306076182520515406057062262597609638810846384687624023337009408908914874197325943565970368997305119768902708633275074657027836104330502454619624172146057121148117402002266842702959544528732001134321926310340642426730129031741696177147719739960520040781376354574459030824250705003900837647694848838615255254884528553762779004121989733206400083460301151161173385538937854433191785947527906669616866050447854327565611292390988485299585529180379697898856494880933637896599679292109071496436293158105235942323357979334694646007320107793266888467444840099544152360371717067607908884965619959988370716322503654558658412985240828449791562205429386876854825500542421084401437549878369393019233801550332443805676314955714264448810142395479736323886057243333057666080913760495441508622645506969975263988697269181668045876258200123692271120094787022480164471927088268801413459592770496460156849338266042249976573227336799533532791694851056640957463726995095532489480026160026193980122789481373504335770474730123909403461473208023124577341884815576746547258035398226222459458710402475402158047999734656197392687268048606466984987458464496789092280165992151916853923475732933106425726310844743955749663331618697405040099367940194271830035843077131544771432795337205549094576966952101309215387829232735085123444909400072530193822362677483122307555933466701262345227182239675964315303400982339289081579800208776174042983280269127406638517834318303004457551828259869886356757316418122487384505151464339441718953058699436353258964270564284687983113753073284668580331225678329081150065346003502984948479452616159410265508968617433732541351629163192664405513602254012410044958174898469257409210721946686370889028864350175068750132686343801400073795295198932756224920088131508179372526478339201292764124762026614619683165479301553767309675360992898938702264094152796735268012271616303900839763432604707286248476228575455509528030946962369834897238203593676297598924067001831399527606979045153000425806388081723261249800384845077875167444303574013525360132286039964951692168976122591338837162026438249053576602064808045541493246701079122513562020399159228826899065363680997603306934824425799024040143767062574033498943026400108785970309542308320843852066043637453927128569793808578403356735032488198272694254426786672337583226391632820928412986320151399970777108683118360520425666705429614989354876723655734304570834540441852953065898438732634714149792317640822843251254024490710350952847549315384877218162022235982857223168240585403517037543453505734920703974441086987372406182779079579468955398034929533367418000658271066142727247543292521171848803660155835499176136231066586088282367287750947149631656594189674072002000577704397141034765106045964112346227867227631151374400898261346479790307155245877445850311653008011913394501583852309694106864102713551403721042687330667810060788264835665158918058472519759676375686576667204172937458505671634061779268288361676480087013363158163973723431478353384352255932538999973464412126420697989726198161514718174468160818769369362432348926120511244123608636335446579073222570276366926278506855312128623740623292903423280060400671960044023675025388877265714150227097578894471319741873122304619916737925586048022724000628314412836036243498643129652986002067078060194428072280651215100583037525604110409855923531029653634331458910424195687164500081263776142762477793035442757710273357127415534918517091823645109846609405250409243375857241944051654488723676440578735661249260488864830348109625797271943401475665974215820647494004138708310276614739506218154650852264450488236969679187777502647846776444096209144583117285157197454766163031390461496943651396847370424564144453191791777057740996839196602745926629950460964612319716616850927591558558817113383363205178803441237589345350593116749920527046481556527166956705579530386560693808987855912999467482676463902393898426337241489770764393413597032215720670051557115190290087961794274032516762962640787883397755435338754582367711731186524473089805189735254180489229293997888932176038802558860182852307444314547442021507499895716298792016639874111704596828106561971015969857986907132189811335683887619735700376698600327981718126700345732347444322886680553722403532891931773252612824048578045664349698307191707334433743354967039670905414391378113052067124046790588030624357880834854633724638016578448782132327707694500327517954878525601125553722215269175591120031431398918798692922073115021680498290273030776673968845361410215933000800846862461151494783442113687790023518476124196011703107785235425413373533209008080928057894789389586475690285830347463207563615995295777382396031533681830004810942521075486071783844096941871571473929774977393719056128143994015272062393879517095708661959704731978141634519391022034258663502884634984011052286490477173470666526882298193829056953649240799775512419544065378739621037902944342053369929914317348157142544245461802897380816447784279908222470757272939049625198946332220997266454777099018820388932169711362174307795972532132368597587027185630742405884579316596238896198520658846686062592380725012273001565764888255651268256624967298249973813125664692947559666052205866718238070096049181195419694434203282200912771680683790261597886923048348271858925658582126771558770936814493524598949225619527241855180260023356499161788299772363946293541606011821078210956658049418146554775015947552106240518682989746206323875800096076058057108176817340084337684339681184690510054495269008647271021835580168375686016868388289697315953934904117703663133061020882323220671431620507287083032370276468484762736642208225432009161218831851926700823097003755809190302740548320253410965157920543195350799180108191228537293935623205208633809364803816840850227844345192535311899193283191814241196140924385643926077597389388032749527073427221446244903929673695235801135474579275787058189864899140397586544822673266027592168715142848719527519741668118727495822374407061735275638760342039726472905685858197186117533572965595053947057186514481322054722418546168243616605306839163509868061544071764043642415033155650072871862550742066842989630459526097126997356697652150456171269466536111074495407576174298406791755366731309280181314813492470507506638418500945929305107360784602402923779452726059533721134434227217569060511472670074243737384767949754401217184419783720320182646530955926291195117125016197366630941268140406499726307031294125008252196323891695409837623961553727612314586473667831690594242059174278778160755176766312772699530818918961426664787012500611873764395329969369272403370926154579718953572138415106678526416066733692606518991003568438834191842663711257642234212614272824200941574538852984683154554200608945268088056837317991553177767468924462878798470716760116649863424851881415684767303782868595838976719001055193893943962474815233073173234333656909375658861091636215008295553241899829998724303510579408511868274332998142003016177125662502278899444880581804469263861690784694574597357480585243948844661720099904196547236463542667141802498804662770131363382828263336423807357199219087171024154213812417573260265551598355272472940738414681767334385311016406332867279675537842918997740621952158552067357320968816245017480219654039376260700826818890540422167875908638635712712561929608892840166010478388396179893837630384418046230131675308958139247051346789656520699151845724687266270514523137270758792339335938045193873739686141026168665167145774536243084227566354760991260240798891497340992404032013492292201085887503768204498641304950152285078502665535475846136440868741670515982985663607538177173707669059248448573768060044768151443446849570506196406901203269643663149868155280742914440681594325463458169850808988462298416819729897558864268685695980917749609070387486258921522721383164358835731673418271434002140171055729081979678083910862717414024572271528569064143438431420440659958093950859535321815921357071283067277981395973943203959873150435574722689747454467810345962713115339807144325999124383645621325015855724662327631414289419629404489677021710618890852766469926108330545883308641195291155605769899117343379731104321964900025738495244537003226969683698294705058352457239063783902433833916666793379911341580570024775949723034219876171189514691667402376727425637105899076799302774818101403946118447987108263034473091122701900255359047736251421309228599731402824731142647772170669116663839741717406898465397518646670312809712933112074952941049785979794291859307639528744871872864987265603218282819761337292517280945029655165788416541760814560891816713407000270153422974309268449140868117184709216124603615564170309478204656077847530980056472491578014701075608269513820115637655473256673413327819436000898268553617347866640821289419327270723489646514287801120813594097791766989491653324516473078780910570413385462023980465472825083289242469363513487582384838596844419456992192413513370571924945544226944117630289308123830635798793481580214902770411988205032693203640783039474241753248137442283704300823112512641052452114394460353789091617451135694183806417422318431623256855354391148513572088649982190699707411534700635668125974609525307453049899227143104845199200296949806145495160926756190385269426706249750282482878241877578588611554292995241982049819811907837982349234534263015455047109947154380835945260569803104643802118753576678129691455499114428298937342976079631640850690619571544088850676444657540705799571864874209774265590774368536161740340861362388619652972310730453685711820922582234684480482711102455358084806581309955644742824431795404781474043894746580038060443703502670419123238648413521234559585488345672724440754147283894243190645270930510763159300642259880718067387572602006142816127940269408473694990471256465782803822778973263642433646367667630153635729606118379717819938599579844005257885287068094893212136692759080273119350795754501715209142860454698790638098437889478332268805275199929432711818859891275325590793911325864345196632468328325094175405777338930441485868648472005289401883031109342328129156019565130613489272217140491059022085889301963518149697758954292156395174655137708372941701616428635939388098002825658033944786895498265577772768733304202867530917742047416224957423676835209907329689306680793798337957092042435794163501942414085713374099434836035020811942165424776425493150318161290393304160770272478697424883590305566702050996468224770426866573526020940793312548340185428193545303689302246631117295725176059855345903027637232489532823216240678125660231580115582599766372156751944809211169357087990124880535212584645069217075516210214459033423073280386975407130265828553213432967766219125083710690495678202807757163304203775741746602263354077873393668426620505548380583083863015176529289884272961846820844797033882730615471568155963200067678081679532469356363891108837261633812273970456765654565763567439933080123519099284545061703762464556090795361466618687211243233528072343489798096445549636667707935538022730954723651645556979549748515917723486616367818215388053511294182331678886077182982572480094264934402508449319072833738490589894612498933189768402223281303309733835574623683395271594916477392971508991062525222197334680732981847153007213402779301390254417683493208189681293522684018921722585524212962446234216292707224623246845151800312961371119581588344606923459558506613895702426141358565337178269642369948819274036699466428612142088115215834031451328460753093828377977264321609854146772733940928730972540218084203180464202423955525287136239246592371688693454545427825749417170515142110951678896953428747966081941693385652678470704310508127171396393332917168682939918697244894749947133599297581761134334880766803188490759222860813756058232371486656682798666704611582650766599184134994524565564681554795275259348877553089518267402923596453046983838585617344224296597841782048561199584310900317584343706996100476130822130104031804401773463597284957804001688371790401239987797434743490266016425571594106974796275610502658225612618958887363238872618869355667854522473460477628522625331540434197303713251080237555082811384504285521487149830504076208114903581004128134015533034113165538869247873245770337141963221916675167442028720587955412433967184098904460548081456975644271586001335570766255424825542893235411244948775814426430648371964084284426656733091456817767402566118581752167231892550024097553482856868112958777159216393896720899113345652542362960007970399508569449192325248798618735456936351767827315173046496118555498337019515086398997368138808945559328489776840005064660791954207472500832499089888503419236434709410436680882488464059494549467127396402039774326428100230703160924711811906670603012533503882910262970804026141626790322516479640514095569555513257696287078076611519201046363593737126742937203967435137537856973582025690803757469591428863498289268595592749710155197565439665902286836539491332772197915368590051684601268067731015236436825712436719897254505368222897290660272871645135446302124318932875003609442588408018648958986091550805432938243798296742570805206576203593077994817164863543459080125566793230951779204783137547624967863969848998561102145237852379808905851432243712867240047026783356230829751959917494380811021460652247766922874237236599705889801732466342008375474794389590772720462982436515659520020947064521529730624681469264829854226925815233735349166678525525681049737354636399635964172414541733005393339142750658600425259892224158104950886450774797327917434259789753039038471329508257928698865517223943739474007141493320843251387209275649244210773021503016184180350232254482970312968561148172876118973290705242894995512919231973933547124481375531377447607847774357658660603551604934243921576566101181659939137443296572939469467972865652693420143996342497350887475240675880782793591284131928338434664306748867409411234404920946289908536464137873532907463348830890862377011825754527670802361652398690487652691047466115808038656158891355393839742790392896817415243430319328832282780882409981747809317703512548934694518507976561470775389500490733688156080563592703000277994650618103625889158824597372023992084755664675645699011593114645755267201184571795455466137039811224975430682463071821992050914893021950957867728243227102003866625925053813326312365284719991403194310896133155498380835581247175621135947950884422616453087790322949241438056397669549573305346703284890988724696705459976852969719201046515000262900485665129659311594840919788549414948318533334916131185981095689235916972330620652359270203422471471264047502264947287191088425813105187267785263752755016590349151387201911326404249668907094311066738827757201001823150938638045517765861019023288904714812048293634140917776639162822268216827620555461189586236083299786389444122692547520795621430655065062813112660139527788039607127162402126308545184551308446157705974540333368973841731811316810692565436378139917866061769048259493104643497533164495043277699502498583876114076090242987000458819842928834654539304950956724258115149753788931820860036292408486067892730497202940884214989173973327690711869897133177631449404386591386305782812446361072085979549564877525984891460820459151747716374077813958898507516873763839009811727493797143997900569399135059377315313469461884311622792965652816502710637576998708277472411983721272754374659067981153718646149267703841689250231361375934223960741668803760512119552990745043646607862016145364204407604797625782550167512615891207433297981411203198635016583954928754552715386527396011525102058938727889814273637817936601041257189237297271882704426326121513676242245803131372142962148067512057085095364398215030866816389330538190291167862102955818553946224776596849763507382228878740582504327155082163982964785345873715168836692297758649468109823427938705877495037129730146674877535129548266608558266929300748787453140474175645036747413502082385174046801911396523160912016259713588825192461996084252468248921491852221737725705992548817961149696483790605094721047115113526315971572294843351321134715172373200810293556867028495125173173630673188709701003472769727086965666322350208363944658456898458928724868962452043037929274463759122306186925865830109729111473400306301736957659226305608593301434532427460762147155182583534218889400865621671222430781936203442815282435773437008027541764320189809798723415491896785412682105236277653837395081280269570820676218351879914886410524606885643215557539993178684134762923981287614968687774616004353836965744851401485260602130076493223379399100925252008577761736618574652290270836271809597614823293460679861044885190713321987184173816858768658281647127575992862037819648078406834961448557170355951109338061278821164177296830836161329711407789783364285816146583003770262015299452754723569677139315820085280847106665310815153073788512636018313526148386222251013623363619973784388222073171500728217830997622112521179422752094495424097288554384200023032296253908136021937686299963133274584104785991092345079206146623186927553241651703259908554659335508262136630808783261614724215340145322978056537945028182795320533453734366098759522720049328489809439561349309793109087879762006172823146416010857559260273520874061164938987924363586879450618905812752489208093032474624439053181349353216594274018131585274502414541364267041566148203550786645450411820562022931837245865019851241784653721487398003802436695331716950712998340503333550449573921057306866360778135883783994650564564514720346484082917681150484865152089204446509874020352784320256822485104772105351274809105197322833547195623281947593885960612175221217768418493890323581400202165780443179870128363286965063750141370626342834302568151878483057170740210479881765653291380334089888691873502918317334779775464243031024126166386892960440633809029523203934024451963889855147646730055408281498644040896903325194257754129624265743297603753999504241587871992890723861071678872945321178709527275685799878022885414785181805236421389623479339923506996118432009261331956400045221952279961378365421485761995624034510337012481906430023326256775755265070280831680694616165395484549761463888805423790040969479659934609865817901427987765745437491358598690789154313496658607309996737846046383149526300842604154259147686333535896130383049477858458549603667835297485159857603588818344693761936624011022228735143075161495758644613438396487357282371073439379337499383037715571708397515297511587733147034209956822711587965622922083011568443623296417429801399985387089942494300011526370959736453231521996291280868033126094664895621789842942805262583402097972185234892052864314638479527700521313346822095822393559022805463637577665468260038310002576483319973889221464359965780657409759613788984383297573159351986961736951860250109710896458554569911068005914254604145962319202153145828421237173941961054794234252208318638296853924803928652113238680627206650489367651884039118545384317727287375089626013911993733210486983299771997745156711674953838574972161040750639137839185335524110280139677155314551047067124418103557549143830028675043845040500725141911598201307460538327173494786323357680941259696736039227800053447342371417444538010570682318647488234960392757766264928608758582089589762055256530120388462948658818924710966754768819814160662605647256965142642026738397265614007548163750309911813727829452364418934196000073099232871256105384304181842592066252226009340664507742553012360534266401304512017409841522615871906613679044574166337060811005070943717566309703749624397780201490905020807687997648919025078120990186679156245414086527588425383118618236843444688009090634755813948878644822330718111851456617311532284719268143286586480976866621302180096570925501420529013304919192356024063173680812819032218467989167958277871714669829027678096607259514153680546048879300649624839025599691344363075191826452728729950330352712924222634958538530955293294230138201937060611966906953209328486922352092774843613862635453785260862823094528286844343063611604257606940459209609931316725917511807994673281314515029867791785352874936705620035868329398598681654317379358849695905688595477630952469246658406230019440128334661534426585108985499058413776506960295524499809926223505100476142045319879448327901490528446410180942344767539614618770647963862255965627245651963663957576404801303407118870573505276816099276680326970648371505591926654886015900586086327578751515250494402179293120086513502319161050276443511324448994603253352811225853083415899910583740465297032874532053518020003028699974334626900380740723948877345779283486657796363768256551338757881021228968249377160300839969620453458982695649246551978041076922676280122152913957800627426337579258209594830017450495711034924808474726141693261838926229069800987353731025845164246485866137269171835585011190317586218940620319157512816542233585148202740285780960920678066097417410098606997331520869753444406399197658256593212793355696576036486509396335824415122814666860415902014019978514119639423313738467820412763424860075962759978609761858442184965363080818370707200924016464760311178122420074761223031683057980379102465562904056164372197209376608243042977657141802377341411059277596635804137708108429289825838023333281807747883974966299891204517030317157450755925863561784883122504804758832564208569207739633555017675598542960758786874372118457101932447751828293218942857879507981151071493654677047313535727346219148807523356142354148314065866690006448991133019244050885143382803899208899585842500622794609013580661864830135871169620520471037785671243973814354919244242582843844853222953810529965505494295706251180601682195602744193696438023546186850181237950932062703086534633817390504561569426292682298438621874198296612206413595665508184142750766170054009847737905046923179931813030835988349593462359644160013793386751802278057118445907248215666895983903023036424586943887973738901338427565795948938541092307961458590960722085625318031268374794903509365291464114996561511332695174505807518875270182224225835945368083346114020910245830715200707926048186578530226208844741088543856382482781245845181263447727105239595004342268231612908275935107811464195178680671328179987625282083454123831887024696449092264722793456863373549944007982922957412843901436535397811249229469781157945200220241123457271652613714646476225855205409836725572303920546105976975882115984537834649411214276029696717689142859611860107600605417457268846432921190305060486021100706176919632637515535963053481091092394573642952326379733186542720720535067775803435300144833046096743798755244305283952533248907189076787087545150508702336429329683215211780480855229486837629379163529535185768626164967927955273258180985477344760770740105285754318430082379046497033927892690528292596182437232216506890037443609420952291312751876992928180151279253217160835625921264934319541108619496155482417703235463472424656442127155979981490322557353807429674677795894123168948684108707125647178100490681897262984114817069619925382695806816750125146812385170982773213050727584547533570474086077316405395513222023671830594951860100963206732733569844693517086609687913058915036496245129437235370161464658825139696318895503618285162556641958071889983407699974626859241611757904826804301848700450607858471504818652116724981285121564136506701949423240200898755190060888759836273068662547994862653227914055848578494126566706169810182563182647732252682022214576917669850724539575787468254983607182161932349543536044885406615549232621144092052421926703022105950753508683509624483439108341873162329263996483828058731656461204891992351315730291928773521395285788333091043821018242633417792375739329517061128547532755053896696902219520126323636867402396809963409120363232537723126535815792572422855327511907156007309398472884435478708600624337600057268051444422479714312242494715030903106384217421450960207424001585521941466467469729309376477363894745921074434689622849475663210248011683539103801742845474487384345963447399610928747704080256600061170471707086961279379542965891058795343148440479003632765581391545835441875664825159374928418062086352737809347050698084921776809474804532806502107534379423615276330350314350786466949354084695335420047070049499607686764750620818927214257001170152149825917523740037476321859735361224233754131780064579161485256915993743510440003158121681505337439060107344906198241359076271384282697765104899047584139195435773541485709081758540673067664568048399119562289822726467177667712255611712375839100135628966524228846658723432288163605716393065788018308095156118667458279566851292332128442081057905801983796452272501866363289630073451812677221414722388198773936168974111298646669200633884653693032983882435177932204609527498632589814034119090357922255967930235581334110824813275985618309789494100805779401453378387944028269775073859996668933946891228796258575355961606809798314842842341512288285441203395725660712463519533633850019381004846518880140156015682888591891297745925791500422825083677949815950963545843775465597317672533137484376029236571806550019419022338053053003726452936928427313939260463677319574086736181709431821003217448249612233462698095315400993661126987467973049629885709536877658701120556470361757324304408666816844721039936960680707882901852473392978042745237828038431201537087482109841164610698439600842147135339121588649100968460718085125070794471769479355781093239821534779572370190506935486070102587766798609891139599737161471170050285290790422537821128533207940291841933952896451786181756116383297638103336184691842271298320556984467371765250277019199802944631693336050956090003337585034908029230345273438713672278365185656584692905681156536685107721830678434918650344525425263484125263240247091300880971835256833226026938851858512183405530357200076862660568736855630113063794856117820444614160124065032738617215610476586603986329458361717584475436524578862505112630804013393469563364547851311888557718027529397839223464764861446260097413163240978092538202309767192005829160964234537187025854818219948727922625616424246839343143405060274080953793062784330589298406453587821711708097595577757980098871818125103699748845371565009023911543309583812796293752817487346483671738115221981228594868891709212706534780722795120282890518971010378029335854763810131431603710718542290271373947728437174495992826911538978695986383819928184464857161430077357312345803552705180679068982260646324008438277687508581298543972279072378654014130325044997550919500776572758223381568760652388786696977104268819859783593242830885360490058251833415190023995495329630986434348270443849110553969141344514613754056412318624837151650823413593174729954518906127413052077037580141807844891922813871491008318692806970975227365043879692290858085106640719082176834122524276152522260086995498623616634203983024817116183554089181451681742260118907753103209007744272900130427921748400221878729190692859485105924134962170934151888234217153839003761757897248979387568951821168056298776262527801318145533892051519216383522954152002472369628349834328478945331294070831859741797692116519069460785142674658975891805062735189443171200552953932499389016254491146966249586022440137805902888364460939889384935193578649819498922102160995125615934018982949510485453795202360542074135597558690323282123806299841182615699606212665101746151998716414839310200584175248336832867441870817174215994455964988176315352507144496400705423354162176566829925341713952902331870292618254921995399799643832773448710707285142830956513350410362939317349552218545268840066316174047458071172950967627340380745614007546508529277126279419441950281863978257475159151669375605246701540833526432203968131610420368339908618074108138910636960393753693375949456550219393621969650955594500476851875737748100720230598450892636719186702769460344227264786482472627715068045661357825764154275349608768818252582439244498077800869798794781507191405843377772145093578729586468264823883351779962139856708912951017823178330249286985152019891112567631818873473191628439066115195131343403530654587429463136751641828354279481812795649615249030609452297130460316799732023968315405590406649381468142074089085851971322171143154824899255245815836542992930957985690559039883130074859931010797386443617637501824907273482387990064464980841713271725401790978749750215361960842206166499981612298104905598292268179289101729734617446009001280321799284818702048545475828996251324561594472431584177361943476515490406194464082492595177427497065321045195609214357995617987201665231400407327393863222780945730792724591950074654141136387494307625756070149301870920833475985641953992674632052369177059183335384935674106168230643967317573696068342876503112852704759056171031268103006763695205685593657941492609382750302446463923151638111485798119643031193421124021641510221504142030636457355715023526353382064457462052253973986340846891548118870468323176522822223073771587806381924467861344068469644138857682586714461626849345242746660390420700279111139258748246877440772127748869060553829749795661231702677871414122861881933243859597674102745963795553493063062408884455350313524143976847987510836916221344703855245411245671545209853571648195251034190211158756793377598811563733880221173118564366751295822617225302974899362633146701191578801872348956480192476728955613580831981915932613051310467119151732731086205799651716427133111568254191904190845271743700624792606719152177385280096864617269391113801893291531145648300095640290866923951741231254404295388683690581307256576707399147015390817750223935371897101891048212200824327287195131739435091666649414967970034955650032257309117147236739358815892613885949657677195184647277138261594795059273317147665781477686503948850246933433951238383673864018930363489583722070756894058446677952993101124254897795369845244356882382832811314530282948910546779200598089464728915923224938670245174255086436099789835043650203773201686698571149145798114407906139602028990393097699490464996785429970581890532914940505592802187923102241416786684594001879689872399898182441484922735142922115133596405939575297224700449493779553697046731611521807586254357730361910054292499512187676729830445094916251694311428222025150438840139127711105206667177566965588240628751736081668682922281549916591077465880513573858917275155106364844094868683061293739340753109107367575636614336310194235790911894133347878250401138559373222450244358686631517471695110661743138862539011991795197099719187116354025264867733954022377482371465758257362051311727042650785359252947300841001390310872886971931812389718062630972197374929518880784375534482597880247581358698620031989548856779742916849826681490643172153158689113738684450034724414616942669735579470624941187265263642665704092165939043766133399429009353285956186939131067472433786389595600125392797442904687140164777758556714852977880563453373163612085230241087840434824948707808562953824224172171204446596480356154321706035124373955042505989482302980966605165758050659033029707613291981959672412086627035815632939859531472525658476040974471991845780047637217270799813634901331068204108170058584968652761711949646668499436909141398667196409873217781734245282695843904839441172407666061287195243670126585522889272449719033589741381936820978343318644474264782132429426819608098834008914283150484728846731204702441734828173540104742425977134999341814650004301566089378234652495119259650978438639146127282480371876686219414636566602933031579695974689015407738884307924296844477706585547074325896875858642787829112543917843057266781425150146231323312106330270431408543460745453376176097214494669400176184100495932087989629121027364492710308438609319877363670754779046819390574213432358966431752588058300405414114345045972184449532139564845669738755497398777285856594355549817930078499060765318857332477532409602286678191168804456652812676291965997871161111462352917898944845848236024458626868091850249977702946586814959551254643583995028356862111855430566507315727847447772150430381350667097979093308189406615746859791823650195979537325528298047491581964690331979621263727533155532010213250887026125314315904237670899696555067791710494018592148278784550540749666958485091346403312525688187561099217677140258598634985405489085150797659724569739078561974918020095987061967150971958786987021877572698226903521991895200687223990285887600964144691636995401184195257740682062800165045646700014827439045441771857799357834171026691118686286978084682237596197376325064043488144861674635897719341131804148823896451932743238343525507394405472723949369470728771269509600923833969165334683245588770328782235353901701330081964534559978369831197937921812765879102667209604988582628741040564990808729554792800968268146291783554511161978797856300572865480387169689469800014046967725945724685951932950964492037703770944022000113207034284306971911620572642729582864561349162576791585903654338003756847236306293026498860511520211763068942648154599815102059541586017926254252364984746389937775341103119383177253359814934708951105604543652992784539024087277531822758343725965293488604349555550555070743023101180508888909797332237784630444433251366182653937027624164837815860680607700786978968879238848642754252207293096865365034461108119991431146570906754453494606462307731369524922109432359579485354334656742747967945174512168967388210179878435572686061259932674518848809895929944901232545056694752006932020819020061569622495632591737021084284987121412777868303226374332337858353324541224927498009573729193721847928733450012780294211378497700788677996250998610071502109104912054689982889686927810699848229230514087644332022603361856959703625733529109452247379499702620609780755161800988552880082854528985189488762276683909552190242637325190825671395530408119406924010930316083429414067129677550844705098552633610072326171442998420792640518802377968771663445399752104280951562399662164745660795169401211943756838330683022302770594222576552949859304133547252828659250842632343449354939907194378422927344544813085814122694128068040430105187806912663183665558273136091108245097904560979548745701668808273501269488995408427948094734101010207826477547451725412518343180496356183536767997993401713244873213299466581870783421817634413638641230402664608030189500959569393874620251434133609714805502586877042101454404179806655895521473415073527045455825898088267297700310785713868708643164501522612087291555104782334879127807474113020042635242687821333044293383634359596087883978345439518038823227225169998675283843770832198078674321427130487069919714149249352235394214844153331271841292178741366980008281343571924800183592284567324395955353291040093381816237216652105740709249743278774517226601257749250640296867664431634063196244522793835662132185724952982235045728960517105914409596234766681592619357546294107308806655034571056125141785966632755863030648752515944664850001596789338150041832611607427990079447150694001663029953800334258798189837390725318758098721983025319979070121530451296649977777094594776415289865034843058475309654983007658341451193578692038858306171824555920021642691769722498360164389230988511639187114555556298847310967069707250547000376926644738367399887188050074852689708146390508844867951073511142470026542166765074548852128103917628825292673699886830575437468630014462826713931889815364762750277157427169824546990538786637887609268086080189363933891141562722144460756079861359223390408025265361150160704345233819876462909381515356417638551402756552367547107700965730636562147528902531607203257547202740614553960922200146859898629489446035227818537469181832462947370305369286558805577900351814887582305322207391717806796012318337181381555435924467641815986790004075878019508728264898455415763163859144522042691839632255561775037478836707375396260537574257742950848086133331125049763323134500835843622499785496650306506041572616822848070535030173749200619359239955003111278474868666702969922612377503691355582548508781886059051833768724101651002029186391719281260087256439781235240514605190427238462983255768314145914931370323002676976533669941942434261775379358627823551241835654739159609293058142766621711530043101293256166393002338404654839880723542205538681600675888926799034256946814983059574674961498541679430948726191622643548165076413592913676027566815784239726787067817163986909610721468344020679773972616756448113644161634366728963449172540104615792687432157289095338302672142997367675346714656544001195117395153694475538505856914044053596448215585042398440555991854021953787250905376439790415962286997713192048870149148922965480074744488316967174989116232574638413302871751255467722601209662127328205021832005066935733226817214297679710962991128861537139899492155396208799085837942126978910048068197418295355004468779709486392202003082296198807423033687365414985338777264761640876291446402901860026423223694278600864460162301709986420374590915560260002284327967802689419489156142256666129085161466073325887747009582130465065952843328916575369393501054841807122229043216693772580819369274002038921578441121232551665512406981372240185161401320659195976215878054719609260882832505580123786913977613110464330169400043880043683891496890006466279663254659626443240548550139012404347939137146682103747194025430632996430327307946408188618561388543360806402564968761757616912720432420813421405705632390884249303988709824516262575191734806299419684886378960026743053421938406028608861430183645202470546869445102361029252356093165128334435803536632335026662895044226410541446045778402846597074876659036490426564433380228322298731197278725261800680239990206943967962026224442500321983229826090934532270674418954770175914652942321475484944480916687315734630648360592775871629224269503345018587304505010632330174847857002738615134628069107084369545329015375195557956358941243242658415146629795520482275914604390112040291122531226833482001646040544878543702263161924817396526330443999854969008670473111743504106311605970871739587987574329004680837251602574779920300732638875997277225195516882846178318824460767933632286021937328426996239683251802834937212526992569037916187849093510784111565548154167945615307051617699659803321273386505660061651543511269480784123699957908201136618959935885314290793074548595652172319720964553591856372305424005672708385026331059202541215004720733264944594912539385681139753396020111452879680574548570893386662459494195920409673851899394184408102358431588059596257217284904941012099094667652619365883242990291839081712230049140574782311479154629390441559412566865871773083357039165086195382664923401343282944250362183689953242101079127524148188121915944860525352738970417198349291713130683594913074311802235142146691788434842785014923920176796326687798535868795179344704646919388251770909854398128476755683780536878485980949838674377337596580685132141383597423314841350330435289459593926938818102147103881605790593934749196699777080734378382710176282568409597817796632407226883628320231435161907264301763072974105990845917588464331666894415861488785820785276229974976552218981098368775311697422190150435560225433935803455577625789310102747102411974252927161129280858591025806957459342060689131500349194437109113507797909635400540898343096457289148782299973241295422906339797196001187786627102342477288872408401260583314492028020758577578711081175210497898222096971559284368107505775500848822765384360949627721510234323577593499321299341686336994331633918400461501958415457635127221122615254649329672159641211514841613985579724147303863391755495951850879206492460781979293338882103901327524978736366532162063282595179949043694015893549757862499065984321651852476107225775453968450183029927121495372343269740553803333810435309162752040816266776476806758797407699376413989351086245658538442047586852363511806979189531847825516727200683928709255626571593091819618333960033713956320486980985628473032054819989306547106322488366116784677710005978176473824636955403315683068347502664400354952359249738422841496055697281607828319677192961101570114820087174744492487582705250386579803574298484058431346171391002326886967307968816797783585958457590521042773794576486894401530980851734185354163747707240096840133527163652347347841714928237559341816194423748704067699032044121709322342885495192150763031815573969778692547958252778313686456490099293727770966224672772660180885582347383152681951707590459756578640228718723814947877093676081005267915577074750845464205833111329644900931007463164231490391734104756049564967582771096615315397742054149014772091148169627983346866620051201827778433230736723122989840180976954395282148684324628965551226544585140654792556990762710300378009283254071074482543768990094038366112641751531657986686713064190405174426715319999205027023966973748022988637278119528960228650649008420982681462295700157850729283577464437620144684128508607290257111840487255649207979566738645067911070409502830382173661832722402139256643070829433516816337716911011835576145802655719913750992993455133240331299105780983713021524304093050885505358615873273570520752106272081033777828378044695810007608275697210383220475478026928198993912266972995969741743036821428605985446195669757529856943709264461044905050876698764591524422425273563204041559216568175210235907878950794191806335287413639924658760425062238053084121400615850622880739059017484663725724415245363258007426764596181016125124767827797848551309064636041828392066340854726580680203497338554397970496371481656771195694997116739479710548143294096844807147754607659565572206518418075873076661148347107680814820612999353151554957572067388318168710871511994891967044527622815938045746850167313198057229559639745177160389451034163687205511238760014810874438592385369283524849678064186465197339800949789086779941765331666055276018071375964764295002345007660038694053252937116695303389929321263757575479888046845368705641866680942152411371146210848498126059447992954180319093098965211459128420011675389875866847560972978905110705636184993816935599704880811813844955594485009751220355583011505482261094471735988552494610240231047537389135010836998322119121059736555024142022858233687762229313507919107232243184892532847595729051266934832123083049011168581434066182958031878001879706335319892490237228803395011470534636755759358138192425783929421215552832448369035024007965208254402192073452567373277717993455240317765585915113013843726614538076503729389973679720185278501176475427285699660252846165680961285233806872039217416625147632310401042493014561304457315434616863200977554243800562621277225431966035438205977713649040102390019828919006027901937401511093492755772807726434482427033269073333081226738778586512873437308260866906775237391268181040253951116539662427815428593116556666082558872868919652204538679147396656882127688696431519832264369018367813368612085714038478468505314853631228734100975856083806313507264373307323416952561259117423038577775128416868038592817952810783905825109467096407501508169508603734692743533820776565026002524832862406587174049366646394487795897001485582451993390366410794196746767042876846138877220000054213618522642343969646960324631584040532915364141373931576868177410723180621576434300514485790296029238468490753030079860889187067911790810837731853630602157970820589714052283423873402054097313189106521243720041292079769818809393407778678654240827698528946609068067108014960984479878055799596623860236678413360291039081767401752824472301270569058351633142625237071165732408296060526247291362145627689475168729381347735460324342183319779943030799636641347783790693361349385618209498266838895028900145628654299731215006076191509550205897641400113941450562488629772786862824723894902545650059180559130939696273367973841327387455084098049303154715464525720702013271283011812131897364382347849502919196452590857971382100358766366813484139265592052073138135653266801455901374987851830215758140047772361340288705842473104803152711944649574380511492626383875460875040720900659600211792362629444910370277738479981715733071037208444802835779677953715780382808715222047432333743401403318500535675927128454442627024522322298313832348915392559406913217136811609897426707344762704301829219799492595310931597272181380840413800076249657284749819248770793196852133787438941034360869457986974601624061379120656017302376589715165660044071109519636689161370543321091916751449415532367649734300237596496815595933808628164994165790011170114446188861651023885341821532670546362462327386182954171641991732266959337252487730138985254873706849141231042480842457483085851278609917723407853367433959137713389882264620992082743152404947627333840120220895524212976911980166615144123421716308099746765062315122329915800753820193652184649186659220312247742626627032623284958145717714040531144822502805125395119808682969156338074356791716627239267030983791176120438740645430043692332280419567383390661064489123755982664311232710983339401342113941814890695877223321246460574674117840269611168326155869943189465941749144175957497159008135449770439558660109186640550756609066407423392459621765931000816914193332481664586337514988478494358721390592442984878061871514476677913740173966921896462163288965193115353251175106711571526806266534436194677440363237793420334643322581862171543013944897488422964249718023905597252685457254808376107605981685542813756612287089000309165820549086704513541608345366048195516786289407016048792356277611229998347611313549381026233699457783047259324435453031811736041051619697138753728026864227286268842025709053004991799388511110326195691875492499779309836278630062144661504260500373277537787542427370355586740676236674240510899809426075389253886368371700648054055599429585988119351661438490686191503674953719833126639767267112686596100612095256383646832858257157658112400797388289446944245393541080967798164451250833431477948006897340579032180974386404470476872173230681458936750870960088510728706642284454667739589332296584845447898160561418286105417580236843389175651255302495620386811064409658649328763158856615442175028837347236889255134462949308832262000614921227870918626838321398430258394327708241235438470844951331280967127589442105462475853364176076448365596043737864989941272727372252713789240637134749270099710270283768266197170834745875882616145754463604149804996456905814090299857422148242895566135837456814203077709391899555992248698793007136329467975931365124516004146200306074562785196960604217333458386038191035557490638832058426953259834569560761279961639961139605230623756845750917065532570789154391808868002524881780171876260759037149010325587981967158071219672808045401209993930123204202226102759039445144290658883773612570312505013388030102005174242859413176578306495648274735611283504019753003284273678820671236865935255245600388857689178039739340966513893732303738214466991699790522063630838004262480243212175863424802428587557826590958896656188871147981712618871381396401117421911597822905605585459014822241260063298114445611809933410396560823259499546946755981236490447828332438044589833271293558993549735826100202755140398233554246411028879319330825302660054837761235389318857661487742012002641300013767280307400914891087583800220586148853118261938525985381025204811009712679027854591914103191153876487087251251215506917744819356701091247475543659976250559081376709998216021000070661884356034139582275399295040231451763654043059402966539811811574297424421388066507008767921725238460735432558617251380239027868990476074991404290749383270584813519209495000593175465563390499503345723433766327335317348691551884227203995767684820725826420673864809906545636780208854321558927238937597319845118392502752513930132416006277987955251594984445359242297096704005618148120992412012981484069841375449121597668022075789196778329091756931018503848276172033222286969307789961417325786152113225161932471646725006340925418556541166639209886171676882669075008920861733336263828340515907443890347563604742458776810314641249247320908735250626352796102598639537273863225644138502532567628730443479488959007932912270194290132819814995563268576415355346350498410106163036243285941808591358182537192556702962922920368964148956492728383068565115193254340205390369321204144816109491494655820123011457849444554365094985385021247136536792762320045470553353709320551680373516017876091882022065650673155264763480667487368631959938133944063862648803741833927510719825366703027146159708156584984644747533267578298586009335417956645983899240802143454524579054783668783095109600812087334037360878049391994088131030928520518892836385331173269871813847594165258435196298442854624057624107313944966610495624511424714577492253543809671712543594755771905366678378646372897572487039258964491306001061521692564950588811420041407275005997999754463922042701052995380763475524814380737239535664165164101910640884506403240719546103776038826556866424409041408711117892118154640951777387121209739915945107428907139987890949237612654471702169413165525335027130749077625161328151232052281762293069303305036653005356611554677704475735749171035290910719453668773152190440352935281633766471397105407992545484372066921189842960207919069317383896883673452655011526537922788434099896984080004707700933149582234459824780475287822271515876781576735161585599812099527906545291876793364356030927116916931460960449388645201349161415099267602728076710929042111450429051431369423372134949817184430544143645737794671445587176687085988791063410164669361772802381437535728580290602938192810652171040443816323276607618875870827177679524237444472019351470098710904789461144986031438297520661219450550074335529824725078706368247142577046178111117609063466346419556596116856769179581309275417420066464853293159281956723865237479945396337751008115522671227062574014795015333083318144250124797615827244123538591494147105680143414393897892699369814824735814861353733642627718971373717657655219094063221270640693144330317531682940710049572090644852141087151864320532470508006885702401400076603119518484473782574337126186023064184270977324212131056426855829321697500547203590157025008560177495660177426747874784026928605203770369132505536421221752500595747791762690326356012585314909509469494179329042841810045689817939742720522549422096576707719267784450261963252106483274941192695751668288478501743646058411319955717793673051837443387668153252396756028715966963242443654910453945780839528654078089289281516453563522814856831086855501255805561105373704678117967345613801859134546714493603074648132372063354872445240162562404407698320875736689947305534436629503481409555264188324148742551738158159316835568123734300894334310416259185306525409364439621677503267031643411384655316862515418681434739426207640944272848412332803191449695326880119425081682680668251471092428748898696197093279448181510144729470515349334567496614929758294637203651679629821377529262282845666203680721133827796278381530547230733397386990564529291669932175746385289931318591107664548305914610475942173652249153765179228782515978231942487565656344043270832322236386643440149625615973140987558384942775918209529994103228492038098763028951638420893388276658554014222438325427141855211305051880183228860918142574472209740366974825065731284614001174957238872145841461515885508201171279199523419540077734312715943296126545927695680192457286469045784211033979361499181024647262545120558761648319392199379939814612969277249732509517918129221231563020164486126954705388634393704350808747492788782819441347546623221813488434253217055303692577998781022019673892191525508929046440890332745113712448796903419619794110053288454312530956576416756974285564373193224300830629040560516202864553169681150946128224867949756927487877250246769039455242168122450787870270089870718387760223928885643963058094546315985311579590419815507333950900713908760333606725312482382258627553211297970989424596271993096121064446865765322228634378450301998263556497643694717476071005843657752905871307789401994966770785027874110036578036908834889299359150953786729559891801334168341865087878248161511331779229364746810512380625746850605499668091186108750912745041358076336466878501579468804700642459698979940103660589779711304503870291627310595640393413336796289605814010588831548488235282264749205490651426262855980929768591499305817699995509256116282442801725302909439753375925126979625229547744737876714797777853457901946468215772677064496924041059265665982585920659972050882692582528696733431403783117598175508255494324514654146146482527784477179753646413553102073724278217894080574407729747883867604607374140005590222587299906168524233606465793475686272794005391475623674823347011081030436406436635362361755366463404902986312134191828865072983716597981359217431881161901161975293052171032574257658109754966714062030434970680285983792422256204930670843901367610793465910948320694226441591779837357914282453924924578672397100613106180231920362681420201903367014627699708698575299786655322997253501189787517006886148603807589782264120270078786448552470439040690403679676215479167290558804465693741988422114853310133544518878426396688866111091103018797510520587365136078530673284227629301948744937735996861084090200603894911154528390500193947218661407896997819778943841489935745688251447596894718358052826271903034248160303694791709897903280038621746620798543678834790346602222113015348699863161415222181635130614721954132626962812629322664673440002120363093172907090404321905126560385116855845138782256703908096106079672242754673026142136684131382901300815260391989276057021282009920092482320885843236629544596502086844593446521177384582084739410312269752092180200232363553095495898973710422065049717958546513790058499863570468199440467557047586866336724115058958368048561295113398363194587021027162695856803250747920447033583777498441204706125551379396912752843087408456926210522582527927399500364656546521090356994414319732386508144474894479551217553253819098171611763989295509388529213420604591539313214350530961535047213024889482326107066464235721617064729453365641996264503202495974362391200080367240052697938482587006014497411403112858683984792027260947524943115577320164406329326174694877221653600772213212216613484441595608807172266116325613303369850879109501753481522505032051212051366941470408488423392750654544965905806890754613443391555246843917398894002621728758334436341236525303661179085279439155303314737623716463496005236829801296641480142764181907954381287673235721038274464984056759247752148469682107452181797038002450392425574680147422519771198736989888583000814909016079633019281543584814654557167700141001781634026440606713908463363916151315049417928199256462863494905183847800075262860650924717995949174333918365120488753544331085759110300532046427928014867888125654904531060719213509168717853981878575592314142532332842604515533665541350159873408346095312277532253835301946537605497825734346681938969294876711490239398654966678967386796911995456987257564156178803845068584813600684435606343113713830396189351935068917186184094240822208727415292106084132966094177649397296279901844464119752526615863440281049282008651932854623769218786969950072717799260503266374706222460500596246260326440950787259734661968934980793438072737642371525276560584708885731854381447799576590734977710681124985885383142916422697687567374478444076572752178610657235243201129089280610037634260699784486621480050668836921589550676659505274809741095628125349844444616314846498446509666784519000338741699142412716059273942448148075291575169952091427258008858735434983106646793064910946157911118720824132311527769781239957696617900641087672758777332718399863279272694594542869799802929971097002130102339664967860196771121622223837761118833740012260281525132577774523704917193215686091894027480324088539745343929520561705214888403138885265525566571723157089179078891746420273265803577505804139814419542549613139404761098248974188770429932728915622395388965291204647329238410042350041156034922742571905566041524733179842541172635896694382577219080621073344153033606425976792490505907277840070063327631306820381498799363415072191090239866470736142885592350625003045273134928479160899639340432214445215577923185036195370603213850918032242177533063655373640693414195041938727019637988856401853638130078612497827893090490222836550537096002116030597441792403208951587323910841558659354512722913346246277080703705081172872461657898350963211317127060838680922134769918769585913545172513152298781102501404410744181495481581004135663097219280525621465187840188559221838145582813383691495877566145593174637942245780621439924031198720021891582372888714935591923777909951182150696745875263804053507943596164998178507944008073615703650106243293164415221270024180214859162402204545600352273971167776991841318497796733584298466239547525513050650201101056355549701080838901660450769233258741623822905386495763906725008665543295379017219586223713075832717640456425215199219559203921529384603030834546582571598783850647498975478278063100369280266246598406466835873750332530528001980060154079258516208412899288899699621050204440976571293067684465313181454614193340187683976465354522328813280478888975983837133758815517610098152336751917286627080752296028208339176258133330369267848595820885870356193891976926183650850274442751560249637710241046545423265740734639527410522750608271164305252875264989486437329924168121975055458607158964047511039760264776983152283447800058946257601931072949791622168104683754498446915869994977941934095495274375531275784930207462210691321306756555588901513668622107150225586856308794846098126751671641564067312612345559418346414432708919476721094933571066183323290233423749937013563878139617935635566903224466958596312559331352391193595485177638959944443585991486995208060612456657596632685592535989435257062706581386320264723476788250690853319626906505607738505781397529512151416564768040612706798634040509786042404327054158467757327418202901258584024670448199517971272183489257631757528871141096353171066963920443856179162215354493897709682140847373595914444448978458909455250952813425323746251004445920928462629330704673661420848220694207742059614259029421518811025714921159122093930511777611040090817665717961468224550645333128038176466512320996442910661814364443708208170482186830250724479004042914380312533916464656990020674620385995322700355656628835914850364912658930877226158106705348276156750949828991126482177955763826698751747518942925403784003685170556938458439844589464504055761787584524741235620852649749117003708382724890966030530843035724212387731356157839941310640865337895810805075398112088087063397357037361609859270498807858309380688293779390927910957337351533966539028521423694489136845867065082299394893002916332630533904222255459532843655653880220825877153388602835612736172281812475927182982497991924707494167041417863195207198108466406688366057099605591944414007639705474800084920861971456628208932597082047627601101539844716990247927147100902616669540701115003796609891461056206858710703334933655744416095162969184926664888720848053436011027828109030959031806299360531770724250488133739192688750697026218472327514690036257840986483164807860985246557505207751853897374661305594036878393889543176131297789101980028626998160530821270053247010507079501901710432373709517864602787495168424853639412488695664511627957801710855622119790524326934829200160945834277435367112522240386539069175757635192167176453162261477112852014517476541635518383947593314355613686986117834481274336626483855427152477866776791935299254808525060189453088272599971886789399672649527114950487458165244380554529499971751391382521302283874226799439854821043193505499140855767662760447999943551449434716711525346126039693025923436640921560380308850694375833091574606100544895166969004679249195125493948594960486480168638252389904595619496679389452232135808151776348035415523329581936170040166119326607857469760773150040496109430718968598230860204011980841565261375005748986109681309201936677252119713936404359608882823539353478343648275248380622779330222958438652868150818760890591168432233308209286548253230891423690598062034950107716985248459685921035459010476809264653297422991483759242256081520088379617223394350603882254467680492648254401148670956037443236380057479156897158182487223014545547571529964925310549985201815315702967670389844977595594984780477546510553418109481230948919056845400174680959479140685248071296586022053302081193130955643926291576937608957040451415395267391479805643142014889734377608508052979441887409105172885235815220156342384371035603572372843459307376485606979784649952744173891104342937216129640535312756821416935904387895982038355119402673370903422486199157625607234318771666161828967172848093080320792967228677938625524959320832493670157494470452372433998224644716695995211977540575374310778853296015008017225792196887878197037314137633273506525644175998201658611980199468452417865938469617095961092260040360396396930848741060409285621728844549702041091048566696975589701494477017170704421039186896592830610248618571771292099556053823158680913827397153117154682720400934391292786998698468627414372427911242090206921197826473656274814104536196093557575869096163254149751982301963278999408989105597463205652300454430017873325617056642279985452737884388260059898949726880800770046043822005799621321499241157881688322155016190795083388146084191441500119073382224675485596754863170700923409002015884957792373205723256632472515505686140841436055357682877228644182979281651189602695676827617678022684740380968703189410487001591608686830066239757223544450460723634358601102329897444405842470325640180554041665061680149293578404204189663546669729063132934413882737043420684661384466817249402322525623096736956908889298914077921757485406940097816697715100453317722601615393019702979690350136532793572781109356627335309746439473658510800645850961007892320957342213577877437136317443875200163523776755219546729676922196561114358873616443856772179771175161772339714862701566491449543633919319818949435527065554033857109850016271739975321977594045107996345218458786925455239386711031949529068048883616283527144386326263164477969340066962538604223245743163309596493912948304393007006648471412208308419064854868904339006111433785021244635666708904956829682107977433327041719256443152176398433263372635454281067460646166419243685172058799287209126318501329153844147751235692993309354761387747058044210869545357839375983308841438889629426269417115731790922169414197435148439656284424004127636624869939237812036353014866459704080027613658612259540603195350738940289109746564941309409827213285796437706369293655745044014017551581978566654658088095406776942312155368549867145081875545802611640547663663809144854921848540940904808263703914028418194813841708258392478679506255671733077181548455431081647510920574852339315640373379327453864600505623901873188819616888990589995586987006737430123866155226201404279674400220209162539253870146999752189559708845770188494211040018598165511083347084517759642066450177912823342614514210785773422893089626998553491259540068001568499309751026093404327663393807774407115777195164725083857312071608212742363929433373259382453850392961985276678522472974509826827782221874157845125893577860537805979878858272472992359948560750829226399786462592136418581568963954548080808486725832274134866031103829875547673779268257755372084848823720487586247430288005419147757969894322633113290473986877988128024478261536079747149313243348676598448073970128239296205457771114675764412232959671838063990839886334171736368396485120428785310703935086315953561557590853088747585483481472242931562146222240750221711775786703859561109257679375318057487162422009845745174589428922257306708928012268853649462743857416367756235929926553473728918248795627547574013432144577026449983771838601459810963865235826881172372220182123970799878225849529044532760406452690559760356375840248831519707928963766319913976874965715003019638781493389323235841659688137727991371478903876045723544296314809410203587044833293767926347743930688313100146576266200649239045873108208115953744523411497825520987299695499389999095177449002479784180095113283143344974557623568520336092573743177050628152368722074327082003680303996871222596170428922507296972714343508610979425021409543934128165827930724666891310590372361438138099721943818390335983795689957072379145107041749944155924721327131736707980027039822319990774993339524337801307017911617033256979579401721145053118211433501901277813918061549931929543196461130370619161757242735182544111677094647037180075125844772303862788545684762530538095692237063091346299819228201953660984694812704721141137841561755155994544457286633776011556693129972689751107650015111938371824337575558173437700238543890876079547936610213519934225486655586382169263248630758377466013408627678751493245190471799641929149269636039572867553278964414337321953349512213971393864348543970685381919908119997011511796071232410579602684581371571787155286110848711798322194505613488840104700727875770764522288828331245198193866399299996036742028164499749802073897374351108391894940097864466830422333219092042279614847284672725774091576477332196387438621964367492484007209413037210853379983983715976301613225607664237215550442775148259983957064374327728606815481344424528753713364533723215699318172212434512914803514303160518715448170386687713033798303870084948679901799530726355051051473724455781938135719008271433865967253748914428206131422539090601157329418513373159883088175914139763973495085350276617324981769003267601934633867849816053388680490595485432194903492927328396926814339656519798827317484039309080843064935768384156695027662219085374328593168154108681132276308267971184318767230895902895232783450013664237682107610504994525034451322666427858808253904229113126994888724016093584426551230485707450248193933690544383484028422901056075951476234698768373272251831293255220989167749029014449135889346459668875184424835071684763588053307067121051077545012959046013272009782674007015927257715589720224107120262089956222091635660670175183686130937723905895493372147968187848927447805110511293214180976918694989110504803085428499016385551280519776151769969188612101477332169796103809851246721505869654994197633343094433105040603000456389505014092763245783023735574375714311060498214562253773840201761515510746438835212510613849223156355007121323137926355121210567305440931387030807733691323686100214663629233095759128982462766122076485988796028246532770989992382476550088539048912591423984707346280750264801296033328200108385580240050199933562390263712821487965346390909624199981411312800870960126363489647501435169226934867808295521553435724751487474230376752837659403349293747678302144998069775231991031409576441013483546049221239174292035416348264246339133995830159825129959203844279786144336046888595755395644089774669010479047983990631463313749204127542838669246445782936714401763336206939619774781142751049295040043636854405750711102611962479455833343839146138044990251876077144332575792676667607830658712935207184737572596809370599347947273195166080414676680777651434495287827994229211294920954800846238675380509845345384738613082280641471767154778890133801804478788402927797791738254341210793098360561304202597036510341899347112414183563391035230482487654928470760463765989486566114250639728887939197611749818246794051022330080077520129428044127544763758590471800933379373654096861050253807251263005016009052389474578445395621236019397077582238856149244104494699577649734590484925035871939304904661872046090863423141524387335178348616082220355125949147234841443086535332846810738355740672302673210378163030869500456008797513854626068021831030466110682633629034424316621395432058813871204821571899049085081247296720437390012103467421849966473150140819176360146756714699575828587760953194808093128574094870439782003539639058962023270322643326855564360172629314415709071807461222031752445894095359077495312588611350382469889973668384816959677786589128666699013305849229021836204187561237609610644610331391715728991846180854355868585372729568704822656836973395546815224114595510509476438002448959319901923149518087790457687123963464946365079457872866195547239211864017672136783303888156074632869570658192062357621399243667650543986158870338961436324827994804911179830027815990722764906234957189906644730037022834784222891004605800471403259757602595306479401195357074239727452515901116018387543151904819902897579455714828376686311180553451889137934483403740551418344781484258817813264843165050965164668570652567190439172750065616971392979702442817299178904564484535926209855040563357475075294960279458230442196022402358009701896537522493817714686823114489167408497959872950283746945289251212967319381024912319325572364850203634626370166653834791968040642313086264865908215820533407939672481616130018074569841099468810131705549499735741218536742547545795395631987109911490493183601846892337082224775837926288584165355620040408617600614265289872029849511403562282133545837179508611924172918715033126914476228932661394244425101214915602282635571513280011136768570932588898773306383322383191274740829943429162498974719778239291166123203143530021010079754797439564395658244114366382505504272620181667820147005866254331436751458678176322938861825535295596637402204316357102116898737884263125742560260818421847704826596865278516608141107345375543393014828292454647750625343601007905153638387646412439381791372047965404999936583262312885184244573664542919702288000418410316976208460314230551358342144736889857098962535430180133097963293703328049511926368673153470462445756396551692112068526664836017521728003759638566727332008980980257054491577845063715382427871000992100034940389004396904136376094142898493109013722513013535338380746681431126423615058769130850159997607884849273595891922122629102256194494442280818743048242783692291157083150971036298632226763405311942904387249251705964160361426768162686611232557652486289948277499021259426382129907073820746520080148562830261383360919620960147092024751619952063968836102805430875128032644594533480019730017696048795791322252231927862544431122153488621137080668449170198047090645783044325669939825690913259573146467501513133946495172242877733738616008560266578893193436685651439068056560948361562880116973265693870715469165825803241000631411366648804137700888538150803000880846538271656579036279449588521777098725041422989747936067895499927026921713351749674046272208947604405349741305472694889222943056372583432106670518701069730499962864982406595747664109539628303868805447606636890150207030137179954415491623008835478488237279669964632700312668478583103209266336800188707218944707923617011315095701874688780995716682678592975718126504996954468385789529559373966134233792648534271882877793797822762883299054785465500651754091865606278517905530173520421513831981702250967962625205845955711349787579757038181741026389524624147512021381573709825465234351269370343610570521344179404956275145989954313789111695344428667192966753790825180074520906042325468715202749629741198552716597725339924353828351239962723802561143910152250486141677094276965161632866353997613976721935632848891509050742186100046933394965690062036425307688022744957331987869278490100725769935683156220023915933843879197294182776502960023342348249275063823149180521585245046556363961538252670701234958139071186601069136086756894041980628364153745233002435232929620790629356838387418521169723631229589811581519151059921010450499965240201874638539183019193667801726071359294179793160292911089075449037021970146758313049623082109491117656279907679003476318037703605127116585452688102556611442228880506635731929310685891043716147181802415857872752352207319931661572470236933835659832745086544540828566894168254036908900704028769317960790138463845868318565422517683765307911096626810793117560050639934502252859668710706193229424286385195400021161708462095063958589338994958058465905282083253955423979395835026395152568208850509169295812918162784711868132303885512070122462959433273673655372887124335000121259231966772492177596537798091127058352896498125694653886715183862689362147844551075258729161353313488227236514318741409180225619452481589215747811719938417544271986300387752352563371638549129757753812856863614718139446154630245133968830749102801898269102496525032677340645836254423960617224345223372130745519303273318742962662641988966619197831098070586617969057295193219371984680707682177009368751729468422563496003873877465551519065224441366993110171717222929809906652570192411835066694501624162465886063968375121193789965895410119651906795101342755482981947331428783991141693801838782581679453755137886734490739137497587539628537488500941848307671016761103586328081491703395385275452177871587124658120564273087356715768415342232921102379690502826211179549139016793223228348052640909188908904576106414423719104803976172213260968289230639463796692665769641785587840443252130465737580668057463831107067938697358214643912160173959859903835815814499049494741144580717625231473115283493392245476831735889540351967120183659286423685501752512883881101692262412697962272379422484892220443110925708577373085011555428491421689693880663559997959855423025605409999057916531719268151641210658677342260806832483063741508916332983397115243035233483560230957728459922567177865467227697942385657272719487468824395228377373926108860615939998957415162109126271506499764247442039029498269721552068410882248249810593897696367850405846277812476629230336146641405469490670868190354578154322135118556288420168607217667456476868889803480910771074027159397277431023525202728636635646282265875336962073843585603419341163191226224018757936988786107628860315173297639986058204783184939044484481121401700278698905409227571432295415879866906474061706278734710395752087183042433097291720132250618761917240343581608276465049772899381398771414714185128986174796133148410525729724928451854536065010970030263571735455786509312946430085467239533605070325963223208261537498570876202862582832935647258194536762676826637384506122286009983135037306911633020582853919320235268584087629778657387853158502499190742930817873964814189146370939651614596912013106206950449688712800045874841201757372552498284327789459982757614210086597455184077193307633678273160614393140831578034223563982823589204414369452202764547337348077559142470374211402154337467757259584171604221871202661120909406010288047767762585583940177066246546800775209264530788714603437425301808250879515406648449531084096066496115330689956767375200733726223488899163710910569186488316841065453100740068094983316754431507680103177320411730040966174906185884831402681535918026460138797985640975642954442057670812414410118111232170775416145583153787557160271379637334024390160044693131395630008734910003548941247844841628636700752050859443695046849919203756560883253085506674046251814453407873694966951422933663349980022678325015315455556398248468118262020288013028610881495687414271215788171351811744001691829433743756981431394869681615397595323210103254296303278382213277657131294018346225283081416891642524223634736441165868806554926663386796381669373479268349400286680345436953207935895320790437878886062330616479579758771690053236929167417144049991508033292684816505356951800840091574666419165867358354158739541860087349908860705911816020206268869416078326340088078469482088767271879294166401686623050592968119019635190130115557084988223463222768829779202802331962863349947632044614165392252413496841699490271566318980413403513503256310528793545778351954914466594455394970999662315924255496203743242877090026111360082278446446732366931185338534406776422526046793088595470806167900265806283280927674364917657698773633164444430084006483471211107928657664621856009833505663996418532092603574760843049365414277137238509626568807422292912510541017034998300066439465632382126291996483584174286377215392632787772929511166419634552195555487905148471087300055072295241368200923309030548438464151662916819642978746876698017923737340843497701167075417332891213786784253217579026948410487658430001671755594906742232209557221534390330863338434422654770810117644774771295269658438462717412970610907286459262543601187179333745524255798989928091061850985959143383673420477038209128793576516029972582227611710781569405401631319589481559111390479221716328530934224757760002041774617825423368701951309419386266709942065059433598901519118605703279622317166906303264407916625095145472842732382484507225204341039551217184199503199671063182338854458820107047702290981722674252610988477162250397521916657901360155873447728884765516538491796430668101540301604030537278407940651772754170688148269836969968094176509908593788280147519649264028521200829421212352241060543665646896847845679961771552316774490044863822394070242379612725355631831928909358073238635739926235579592536640777089578192381635565596533614577191732399890752285072837692256263693149667574721006489038881009535588227039000470836117140861052741032706763484740468758624611320712086868209069942406634776411324542255217642043430024811701313280415661230422453316265795182792948362236756880644554008472177573426872669009077097996755502963085156292664326182844606438391732319408901443974837058936693694064017552351784337501576963868924945269045930901157042094854454613523355155041369180307315419157331116412863808478896589330133937166805044400530894773413680375514035905258486161814908944685689616408536540826947932171540382961786478766888310672657622651108415288319433360743584005352737740338458168157375288453206216942278779944449628819056770100462764799084861778429941459266946865436512571476658382893338335049621029043847782617331422798331836339279974117499444752854793430025336820497284618419483219411378771498314731586631378540461029145599139173397239588869211471422203880568031932550282535158291409467378931257898664213602753999270318451262176188587046166825699397400988497316363605199404248536277472733068289770296708266248735359135344554444962124228124986656419465797982868377278427140046033678563864228775622847007534712651175651141539940199911567700229420028567428475015340788278754507612056782274891346380131353980077041427771110260041925715556510604020770996529199739348464342951661135230126641518776721827093985202564177742127177247960426477771986832497568076325886019287474534457506493234256155086345133010822500213244832905029980498409137863647430266491294229833442382720538794601209781121209751966560732912696626787986966653678620418744195084892213513989496471879514017062726532324008425078636934129748889607621946723862629700969055204781651400549879858105814403643670139576892410172626059957419381308736824906131291277743484040584491599478976493561928736725846272446126423246332882945633134746659341439633520477517966417588925533555563911797141054882835342003330353029056676967335326015508172125155463372088687458884868712993727491134652661774695622549177117276572622820637994416781887889090140208750653794037829964843560303854621515983694845440075900764881608308471100687174065417689995505400784953816464399589291645132566556990094155568824958509829912916384153047048823828563009834638473954142974977792236782766621236691038156887973655886559210383952091147940530002823705637229762931492593004620861397416384917184983449727965044771476933160149941325359576699179863984168058819411936962205858649614248367367427897302747490436385520413556711335628097428806055351339645355135002908456410402127773503312388202113518626825030637056057029566226663606553928769518061134539337315556616044142476182107162039074296958332423181208220391234932411180747708821348689898996321611975574629820648422744215965696844223869297044387657428339977773397956665407946430621911226613254154150804972920008395538999216193418153705903161178561923207364166426158098960651947178292606094451114105436486709032538299177503720403498711599231514678038484844457063603861586957407390781302000217820892886255158521066173792356172178435002527874242326846429208065291567887792432561209038001866871813957313246071966319599218736927244242347962256843130536646304079990443368533689114606299740537511660322676245832985820471738190058653582801901667797460627023460452470523918512620642309351282605529619597916497787005420505553748411181387969475200756081742496315545786702394819357506578412234389992527850840339218236160323458507943952884790477126327243109125054373402045399956507698920266709328108011835137216755437268724751971826330278071372067463043523059336897857725763254020004969705637891332190946817731431085279389061738477330196426710476903253389693249637935118498213638811609690480790547383878275300405763675719029379874791240212053808157858685084175756669424371766605058119268264936092423135772526701992836121378404941801374593844967488889203045542514077058820766332016938781849768202834158315390302237955050545766629026279101899585491445822372764322505197044615841014220185760535497533241917667711667351413146360812079038846137879224446002003138058237239579024990043584667154911383976298999464458829803051428487368073957582676594493943987628020618186412044639873599243453746037404609227760423123158174281663110054042900801745103305426750736598274377223127970381273040854822101704570836774277698983793620349930179819584704140231362090525942146596454849581458790721412052609526798983617151125025693901201216954875201719761273035518255730136514601916487484844750418303513756361633140772061780604717393954506846668749321840490310053734979068813625890150213393188360665977264309545835494360149447634482436937273146144553504617810651925788426482522212012048140492322204257495958878896304325977945114823547977673544135754181324194499147941348804908077637235542212050966498680993704112043508583899084017790289417318051339262751550518823241407350012445835042363819995326578438367874764018787156851535235115288966705747315394036519972531231849267599921990662866779338734207956341004436558732219030959030492245041181625055508365727620592472357800937531663030447771103827497617622810753795849505273258137728745307050666133393855889329792813846832179783510342654616391346927371938350015656018174770347268809810291980196120950897320150656051143245115362378116864785922158469792439597793144464439306811206269330493556416057152118839145077841082565941683680584502527500286656260304056805266338704534169354013235771383035314264785036475856174257056428582720887022968084785265649276696518540796421114921847174977131638143086439532236293205925971897141213262586280673719746515005083299059410662853546484486463491940315441339594960424938485898097518946755833059545320931242889387957224847532271678650696086603933275135778676771777076258627877756732226563397078226404274027257288623316000176948197413223871151769582365077885135511154430853880115346190015646088810478583348793180752159479375595940491740464484672319334498276116303040924438784486682376507741657439265267500249107252341333822916553360561035925793078168207165191981782954024119522367823447237617808207941650348834310011567500757899560838593889432337199986689825183941971253148554710464828107104984431506951727556244831484020272316068295482199949872851329531615168386359291448297167014879219419226802663815732120566954708321128056035754648477382116360428478353013272164846830059481311853299983504430430065626946172614632769545230380137015272838747512541083711292354832234331504058116757194395231989402663140921582806157952218821383788569201812144373633762225767067995047861283171429315503234807723576391912054252263190367694660808865181586010697919902177735993428803487601202313974317288156002487141576335630405117072649083500582952628879264964949964544088251195445909742089383479031356288838430418010641989468279408608073818799645111755514309365316650790313296090088849358239513704677125734566773411220099849417721635764186259144109438545811848624301929132146994802644139454030539209300116653977528984197749971886268109322731201246839895740481899951861109536839577363388492265828406006922961727569479455329241729728033458417877599265314304741564367233595489951679765956551973538167997195438895400342107611263652414546201510299448926440872769719345943882207894861195786061349819062483878327708646057912986486045319597223902490490975233628248338140841529084966233878911484784858515807018248086621438949554630845207546804704714199348230116555392896039314935953486165481802332137127005438508703391397210614532615639013894778620674226909311209883862095444591439789404994564152211196064594898341389278718137563933763867874989615030353015901943706243679316341510793253058477001627392595520518856298457587621526375153262706471810542412650294499435194822396511315472470385108668608044592939809860093852608960605036800917791760123054578514100037609162491619775426727979807783544600566858703051708513825897011985703204922381927829572826331881303694887142028394825183307766770581511444723264930527351923602043010560881202427348751452264691185301010955334768310712058135751912181943006161268809417868559870348538812220215421262254755184988398714622026251892485040429255476758182614196866560769364682502910696664483241627944564733375714441471040660591050488089336644114185242989353675837848959787088493413586248992297944295102546740376764179901308600206101921126059127954397168605860882986064009038633709193867333118663334498464799991988543479509661864764189817029170545838730239337129573336198397039210043303952954325337656575658185083176789665467521851537192130052705450314553062750026029883962335753873568784357980694499489373766967930175355700394008703803578811281800239937792223793756620813024397124261453630265804557053095792847782767616825208912285513487748495910229437625153023955243555608554478211394016281683307291070451032551609143546060708721813877514988507076448668127443024931909968596133693726501302917270628809146685576623618313768139870439786074361850730150469422857075673409641639696343138575833805311108861421554503476142366484447496111673412932948277352176157298665720710058901785500351351300408542861236066695795532811192324138713183599842114028513427181603531417346217367556316379058002424797711679557786499082838450694931306620639645358927473631704310133035703173451471665620987706679696193965090498193457380025342458088935630903757357635087058936717098277647045373456590243921893222595497999996624302720529199789333595200079013481383009502798095580672097074720066820950255548018061470541440780803886257870335154042476943187218766475654221610895674768166647293614862502904906485915884956476663808922239091263636250378741046349973849436314982270694122180192220651422261432295908785155842237813733177378597826254887515821417496546119764671736791777959752130943279664593594254535075199700091174719709738854218745457906008246144503022567014453945240990142736866675950607237251274756234791285529557592270793634718495933648415791095253645152621317840661790639859519439885223110760289755325765735556271677235711559886496397396666120781654568044935550346462720474140658628015418483875260565658239170157709313102659828502350127048220332139646631795660716601040525323694194118929090747395992608069228309977421449326743950268749417506283972744431538136249632856715304293805038104792399839805759152425811170816684548982615390917854913795830347312162944761987926346538736034162053214288063875672137297762057185689758736035940325475200545239361844309849113497067880329684500178541005762923253628673072030210291310322645486014551865961564667947765126730985710977483307580173464852449880792997219802600536026767824901892025773186522160002988335110945607798247831412450528770156321402965814524863614348051498645957643490902676737401098285595725237965346343120194926845818551034937457153988705249915006913740458820005756619130745290646057397106796905142741317572110476064617899905602785579297029293307975280689355721348605340891218667478464165670147688914498452750163451715097187215533854867300173008800351849337357091981724705859486349945689385457455543663328946739486211237710177909944133867984013837931001367957734429226479584093265019748812940167133226808394337120897932549313368716782844856168899432528426923916954952858532753781197723208036133450270727599157871923493575686714883655034585865499931355468749172580771172078848655186824225813738753219589978856765626838628445469282472673350702427972788581031217259852574997056920175638397877187409233287371796352412807226097739264768071511060727474879635231010301916017822562567657911337968254551846945164546738605589440925879893508526400533680495681474861605369767153843817052747539206974033540717754464359472901861430316788886552512615885231642147243248928600297379234334428999254043054948854962502869727306152189359373965432709613316131927335093584253389194627170370686172448005376682234955836612299253010041248444066172007060358147790411383514461529804705972261304911365312715042026969601098998146451791086676392094712929348271615637608332865848491640939308832391080275779367016692699769438074119105384792421579738643671163111689007737942278039218424178833194226514796500653453886839103601350497909443552711682719910025642394661880180558192757755455222088377439544516617366898222494248425159893420230048419967418047916882923067435854984784520529202908151168159387738745863701298707599368374620258704488156414097844992583871491414681722999252332854117006661514131894028333676218310872409995868038911995471483581354747180981598173773701053818782914134229019785104444095101237405458014666001877957504084530016071793410319644703823612934418005287503426726552585364747106746502937335426781112961000054550737079393989606955413398319201170544986067735540565356358936719633970109058899751241068745646671679839713781747146160561007552668927783654733337781794234987141464970944802313995320048455540491024170475502173174939289411012615376418130635625735359147935510880116874393941580601672859836979944276449086986434097459120210695532496335267660363632018774182975495444685165463917474526176413878381189021382933014941420541275346852273086418507588741575357515884971353641352997749665006146198624846118182721320956368406354927796372984864766213165115732199063480431574628099737362431956334866769395703331066432153288320858775857535844716935381550746267654676229636453093426654996650737852553198335038876995940307642434273035511677708039520014924260487497329018562013053158378417726955435307866883587595899336390803229685119366315452239264079065306536052752097357630907463128645723671905783680122046831832262303598089286685967797147301619183615476606050223680296247764498677614538454018993598408470049997235355623502258275567395701061533025526310447495919235095805342636375688684010051982265566007194598305618662753850944342458115356455842275635393603489684029261080812779259642141761173798264161666723238364667067473942495709601468104290791121594297615432841726485957355172588218590354939920737339865026535672104759675631494002947323254572124324033283949738969487970667877721463674213696860622578940664709874680914150509938287462815632005009571690280735871469960083796360789692818692981441175093315293703999000872198799720820973560998535719266222828086979633031305128906656023409369631127263640448343082786543578837944041914612736201975295041961895540845824552946499122982682771196616485980144638114089199208593537149671566616238224629326186642699717865549930587136575126110471145943222221806750493418365465795687760392187167251682250140920174087415053285037344307291106269820813368461829839132218252388899649452865177912358773477781964832985029478464682613495357501958659601243260959086171603691242902256179068211220947298513184729202690578635802895058498485659595392361252969757468839572762923293072865168059237219017012428877128739217233613028734982054763149204963663516961469519379185452333402299459747463726495507659414841820084397912199938943554672261270822148731700832620510275588419112613724158526844572713515249519257335794353788796182974907131215209375618757639621115596972516900033155068210291827281260446240267671794391179085922177333092356975191985275313874092158520770149443059918616259884218977261154611462498637594013245227087515801488778071472029414788204699426590141129654374228915680615046750672644594112601939060806050300135006159511864336884981395538135417701292477746433489563779579414775664730596813696297517566984891513397580733838481692040383236264008892338377736589943643104609043774854365522463501985622990394297327027199301107252232659021329467155502560654970772796213836256056090736255521839867382206039023278730536210657623320338663204053864931215114897302687924594638873962208403560720036455117144007885747562392078331467782475020719755768004967838928592730722595491231827441077260979293163897589793840902404441480280784481658719781493108990619198457460089865440429033132904634698782466128036809977393861896601854215760254899848117837135134012928375951186280645807632623990553433250884466866327241072598455840507390004390329615541340585790018038271554142334546193619587732643694920487164629219510429755045837185838377111127667124400708532045390995265872505364606149085553415220495132500023847484161143299373624730975608945713527176025109959894047748868795394923650161620702195165639392216682119316343540614504046617139257265676292635593854331051488679282205508925794826713338321043178346444526766896017908809376388424384641381196947435965064057613948237213257555741311812983178158294227255737495231808894230415746238042527803760517905393393449573354000817606402129819665565450494224157763850659508330882356748387115615612546683393681253167595826486971409858251876355887098121543564238882590658658737031366184493749273679232284115591883498274765376611433586771407707983822911522807904554204935680653598275431272136036627502559652856757731092699920813232173733051896548445395414746816969553825832393427372031844795773479029961659242202434920816266955112536303294291392254252109187352163397083963564861205877694607811334242722645318895196361793074088901693586469180132895085853486533073655183853668207969765583027244363570276171745650879975652931214738023926793350425931704305908420509366890890372592085261552679853392475078425904927604756932736727170438272393641937036813505828585192435784394174755119603728930036486031492954201072539246482484067268457563076695848883397728890973268474714561968566110797441922956505727291337026539152242347980151167716744593885714203247107575456647486734992777779732658648779235990859284495956025166710398633414246267521682839499558681309027727662991070519232202070062167223683525177216384242570951076851950357676099912460926905350286208451125524290586815549865726958162372387481139387305808680901337214621340739823936329975939132590571323267372408794153874652456556615490205180155996012983577032480884802215001924524895618515307364842133521218722301408501484917293119913480751824838476265084162110071728361424103334399473034487798453652832018892927313958404255820377265862642983688339958147280114184796281186347759021075047568675681316779255832964225917848196100123451416603027365126132141990443592903673714172124211484983923559143022451030062727911164110925424290076711322530605347780385378332893203151014106684443670249010400611187369833544523953549730990857539177952335083949117208363617127970441695109701873157331430792346695068580796536605289831919039104167518644391468884885883326874947660656382959089351518136010326967061986859096855419440077570887685151728627013231857737040002158501897552284309209930614280292838993068553444248809235542523181095914792025227886202431684077182774684599249595831606009215918707691811418812000463102058013877021383948809500771085856747911146004720276992341698564597540512233199568444922271980067261846535223914828454545602861144009723428212203326067642155890157897902762464019651447968170224773568426629748214294287870048001176606206347574944087442126455551667461792596832846534899460878075339403128967472874214840597936318093133810166500863309309449742126323388316070323832759739828445280157806999436493419079195342581157923921330006311268518028436009556994383595720130464401295928943996894275312937613555696499573303388266560261864709604490423022727658537105333157113607301653056915617796408683242104799871448138315850294511973986868091413462990135314331018085551801318136237576691128235183944592192043049193629788942889948732143766160490498021239157891892526816145347138859227573961859744567686247432208935535035466494078621821551234816169120238123522631437828412461382059295623338013382480745030005862719128629233189355437452603757246219676677159192401911500653335116533563472249531000789598270790648641003083105231696205115072096395083643450429782156372725433578220859995574449751860450162617371441917629174091385913635457453439699495183155087349389319412730004765050733244746712290190327410704631442275084251324016514395779346322265988533162124012518283185069091825146057936379685333657442940677199570684120727406730576473529161505885266066141840603304586424936993323846001404006600312294678030129283496225687186493305358743491100535410345760827830739639335882532655157738020116719897248127288519105245848150237878338536787509498665744472105070415281227631075063880202662011628065094954839700530379266241141945660311501001288498429765025822422684484026292751130895638341192235375378149883806908365959451590878009266310505915802931453070612685791958229032672116658296795101757348722274012913035761431804326614206889656930159157574779309769210299155566404175921096547016087533358159363865666629734453896614911335298060992752009279353252315050739077791471778984001085755077591041345074118978268270733271229355681353708175435657923817607143023905553688398562041948706986980598957252097697288223493434788793929827394318473460990187359674679435723807586455779182395646128598058939213464123772932033570264769402294613429545286917306238942298725813360363269639377947844901796140761481426989571892111466682967240873803112294053300946996093819722072999291612796925905690411254511621765485864245367760487595899739150377754725457413849147196561024160695253234163226070259817802868917018693535768972114494432210827212551638282028589090555277489797317610065755863603652542779418383730425842728169902636312852410607654720478347444288990628107867668555152811639139936334762749475211278816389696550463517082125458288478320336494941440728317224925595555479115266422580924838189283149563126336549806316433675484727989066118881811467686717733019604017615232778690244090069518509181778072633004746699935459360920783975983484334749659897457946028493088053787739802797956592309612710493396899654060146283240215422304728954441415741227835586443483866702404167628466794806145418233908440819545440144993126074187587618633664063846353406939156592105591422043107307474586257477352351818595999396808044565649505241516422485321634350728092029609200385329710074939187024930155794431363838012571858588153808542784878070632349829804918487822981546529852780777513568543903241422416039325606225457093186710461186922193094077549488201221379003654738009720919378966329188548813770855454961420602781138196519626723822485660607663210953446851641967921878411542744413990527525385650651868813729240480551859825817710858066979438716245504842441109212084285786873098427537083306599131117219334502673949496828215882649917345948275088486282032483797468750796116956183515409888283941655058319859808197898364963143248169547303082669788519476271877216815216653928871418428731501588939480617005741550167939940622576099102967732891553687314949241108531359269437660534805149183893289910375051133567727450063950049226130522350814824596244849875228960344045269864594821962803393075063305731344779088628259797029291722350899663915682119924688630907580721620306764577259305637778570552121362786662769279341805296783904227846986437044129708349296118058936196550482925056300969143468341084638628161938706009500832470220266641352685172447294531738280545462520490409142473779751445997789578881877833355691760750696701188357156069090275934789467140454122035480348226487560724709230970756537478776189984324198245487999726612620987557840912135318145704400135017123424037406485443440776115543299502830968171376738659708388386058037464388690867902134987990773689878839535299617806865001631590095632862629624699946477356570214673838366262865668729565625312588515754852897666863544792461665088910312281676968069028871338095460408718683766918208849346544253306654322198675788641062538537090611156353052298056025771231058568392447329056011458505734904692267596357992868138772891065550837754614237073342382299831978473967856699700303187836929513305853930228360571982357833575695140284779616735231018789767296807025829269767039630482577750221628093199490459755318791548525828625713840155082685420629932000454564801692477385568899783421360786199146467459835229450125537313483278098303899225105767952610159391721838481231874937038163915030970649491217870085362135434856548177556843339624139249847323181059314320716278637763419046823026590743076785043625985499424080425189533040160540003614272458762545000998181291109730487449820403705406645625453320518991251465264642238922124458419897006743999639791867799748669783844309999275499702824053950986901454855094107209624745868862354233904470284824244918524024609597381288133543499358282493052517729184778548719031353009373918636199252503384889210675386916651111569919595938740468987857756930231589102232572820334165114597577210201619730015312121216940872463754598317560858063345998917952731597576859224246929779914470501184256886957396457782811358073172118536602887622474466391331676024492081346703085576928409529806197962373506876803227991154360067134663083810793761710451999716839153577490148340173394627264811699621244232106400391425249567522513416357968904304004943784724031107498017914729218041435937537031150875490336630304339012938904834906140008505200715907149770039878837807103089554378474167560372698595750123906409643064902903608055595888311348526123581023529540966586847579537875753410649834054253736943455564189732581425747352488885067502032051370905231019802677928622030949295330249336493875603161703519092957020043578702822005985086886461805511881316922154503138481008667835438120470151862861125191515567299201089177062876969064862399162995355725088328001339386933856256892974612229912326444576602522712860511245511627437557893276021123795298258336613369122599061816788246779266697502499298220317668315063147274719638029927172055230242915611184195747520120523793949717499587811531186068604003667606452505680178097879067013799403246746170392099482603762963361751694734881064154464223505217038617204141914593883848648830305393071583326314003406821696232766728554741124096293345243382958056135538479640197306764084792519972992303906019154565234058314529941516735371046651200597704735437411124579206639462500309855586240948207191345135697406948441486165245660498583362290506075643930680559812891145861839080144272727713420871188545981712546781148459906944517697621459951372677891996285640627395813679740885179382372132710676423370990039518719662359952472643407040805726314276270311958389181284405549985841552918576529172490862641612825794554655953644266712086556756868084567601068679446889013319162331397350838378546089966926261113183686768922700045354071926373953070890047169325577452660971434719265895412277543992964843472785021107882980570026928360886670898464846058565213366186289350052580887448962981359778047702655443788637255860337351707872447726335624966404176159188628390151487368728406109755290848441380643893126630700058074816330910525555121265043072240434812364564712977645039622256606138120213083658326945410216006448539452219060882675456548362235479362675444126680826112934529610253838034057276991113293871025823490667203589262363184855485648344171781643859231617943914402156294457966988618966394936198370475079781005945637236661718292418446719192718351874947713714395953044288762127331209511054642042749861144568577341541346816696287963916907794251666168625301798778631991137482360532447699085337901722367503851299844267397899746950364308682655271327575766939574073505776636904416567949534194866571349037998847071932904455438901641027211235877790727013062464233129439277437124795406117431732702521116160827628643544425654385803459681835992640995974569154575545665899123871411346417603019955480866316520178640466141442617540015933510890847835631867708030208428347047091151380284825067934146988903734116133633996058821317769788277631980411909589462781838353411123748316787491511448557873440233110303324976149902129922198349631498929211559199604923842501962121905781840853579785478437785085612116101011918145356219872639034479243540559079395023547600655109064566888660208417565865032608469414809347990346644880119367434669008843942525679028259086737332533118014039244691187392547219652149264408447103994003834455490954068108140701950752380448775536210129860028228268278907590118566707364154787165332665887365979665836213444848992126791617470557459675972564325536559240774928568122292908271916839575082896426086885000033505166420148512914219720807465710939804052831014988036654084135179905401639364822485624849740980465953244307532724438250162220827771994502678736982801621892729620751529549286474193091296028584098163021911162779417588695779896619655246038933366591782868336799781965552889671876330560353705829232253078321640255312953504270531523073436372370014344395545445054148074326259840171070271580792339554294257040966454780342210865061345255400859728946778459571294486506056383432933703039580765072500608110605522809765880302143628187795998578003739020328982060104843025449617388568702580769325266730782683483691994197587418950684237437290687056137459411351794920210906192722206295258277148684080884526001320291970402569410634751470158916019197125071872501708253807356072893086100375668690697579194567349515178165192372879709302692466762661636962457739141955133887111080347790187289367831742040281729969648869474129540604322593920129634806618255625286337416350733378620566923348939495920256599337277565650304910256604814199573152226626318253812460125210972183640522645591784117957029811183761401323886500984873115322811026124498882513431998403702309515870094589403299953712093760568300002950645881629216494040541605553219454906121701182362184566276698724078147119071629809958749399437174263131592483396783668147620459283390216408858534959971456432767884435135483499365890927504000867230088014969498044547199348522021608561875431986873301205574126126398860386294545682200185172151828909405687190926287312041232124102503705243122906168402959751133348884715048396590083438531485287047529293350660204280771206886726149156412216975066753769006083210920661198118604347920280410586164052519979570840614472897520917496918591515890662737749818502235620585568640353775074939385453512621649237467216869782215171760534030054585083470776018252029419503885211893900844945313742780123985182968442259985715746968086191903014589385525569169354596678728511768740964028472623511477399773480985433689315996958216766008374632309256913297809422453967825419084463523957541592945360219550153415722995622941217728249734964947274107918515862918026497084136699973036363508398714199209532357556697127442080863334308575357142913032493872894093172574132750801828888007465019130302690625269755320910223594049506198977723286591481250168196200181718448582506374939727091505386258886375199769178501585708378806610551001918050040497819802645179756347755181953028757651789965519204444432154630781339980613565369172524203843318408732922487073992479076187670456663720894232373643093415413105420132191111910952057091558245923649084200694174917543021170106335073030644001040181968621241727968860533343389648739296807531505021424414972667574952698577157050770425057443809626068343498986360374892749694410352073838236575263666557263552797299249723480542226722201067221197888520257058802386927307008909228597092504582578033842520319763978051809954834824026984667676296124948526161035019443680802427696613834809662523993923770759854465546207173797234049034425359832748470405844024106157933735045243136105415813759906545869088350196679148816764623336719353493429025051048116212328490886222345404296241310895332458851643122211992901022060149119467797486957947818226982598984968683523825818926226835274651232599664125710258262300722609334497336374311546843292561090840510039019265190916877229453349637110011395718376454298172834664973199310122003052752449499632041904970539105094410333359337383983291167179049700129270408235227322262760115494750200045951001272145823454812740783221673835512850157296631263191446360618648157327468919904804632839070182724228130593952886496743941814480670255965439714181205419466583825252050957034144236460081513112123830419163299947926282890211920149352207338062221979731371652402478157191854936919361628042431443300864900993953199919989014594604033606300777248954700299611452805400878244790324783143860784097905938856733927157100138106402846315556429925592530340992767217928788807591538212795931038496832756668498197432807605007414024120525152552558727610004308371721879600484516748320280338408351745411297871028404843505891602652742424657175748259149791061007923505499048960530238575974425005825081972801173088247444787319837105404414790505934623030005964181139837900426662414157156923453519376905141949154631385189113973547349657356529320057588720953856357283897999745489258451634068420281010255286195082829465736667278309019803234784298383808529239869893872796440416378815124687937602543619839967851936321709995393651355923035395363922752248168449314309587111308479690982212600044225215153474001486561056844807008234415164579643154075191628488769144051874594209666698634661724163455668955356975428370492594317234687218711126914456441347186466732609271986817825421017399406377070773475777309541046399082731045188802778839014587303505489913933426688804221864733920782214455729314730805126871776889196003572520723813178568797627945520078586323327668356796662310376043609981017213871597688262726344143932741598301849229468921425623472671820581450573905024500082168246112643573851309365229513273636417832389200815820275016393897433286168656847590774258566140289855133080475157473294603414230950933694179388705789756704318938702968083753847981838496854684442274216526707943709214793097604368206519939258475835171026499085171250007823377564617987908309493358521823666006518674920418140306453594921270659615397060722906560266371743446947693737431290588096617344624120608837854125739569366133455373029431564749962349974565237692157883772039817693838745521422790514333796768933802064065437259508472838684046972022395745621497443757025862846064850471041002214826843826318368009700185341347207944722851654822597066930259804049355620566485125375771923672709905251465580055751154079589462447433688024012561443501931434291008636589355855584678537096386155492997484392087900327355244917854719690628967149293026123006610482455708906458631583613772980321211188047059710400061046368000122910427974706137748785537010640872559671848959389014931248071839439303365665726843277067230460822542841916861054115530945422098441107911542732480762154741989430426442373848711793399765914173599500408213231385641691279841640910413766566081946056398581199564686017712500470133085960514623339117903083553754130661228675324235136857497188363084124998762867759348455789937429071093583672469496407035791207609508505336276088268704096366971065285975705408482551179054709131718039793444102873964433747364894373391007954382785909685444539632486843117076408908984311965523208306925674831319035138159775280631388545347509393628353651541304977733774469462158675748743770358156452872169579337025575431724677566470853778192813539047210960572567610324645950833016777411861046235084474761869950535993796652845712187487672550408090643984652524860645173762831256599178530486808574038356875899384195022941243444951143667488586397665900526473935225759015461214588907259281170357329198326856710837739290389041482807874547318924795011251587356411082856268609199278461254952152443875928797754281090687070352480274725170544826641678086709440732585549752471054748288603151003858001713968870246180910276046027291612239178777842052972362941122299196055507587981148668594361618441883116816903410175132528326004153789656389098323636326710921009844685289140607679104739909087528088440974477265877878258995194700308238341980500911678933351190626146676271520621746469359178845832345726841440854137536270331037610381023053873018031276004431497269618630627674964661767558849107400285613703365991567369792480370609576550195190470169019626422530288517973282185963043983724525390331849165598123071743035512240665399609919779011593564726723078304377109368195234910617242848871990212500726568075354957522472765184965417050844153995798956149811934038876503888436233455807335348375669012179017044182682305090404846767431453645609733019777857984027056896944865905780162621209989855914457542447207722280824815948170327467965665855433417996501595528515922361670425809624459007080330151737710894680308756089684539324113429422037199095141020505418430836237201246157838174658572430956117992954542968974534116312530804438882620790118774723427844377597041789380010024608751570186880254907543643316738993332983019820007797217290227906762321346164123879110005431406432536872809833008071314907046825495784758116455483871353618711450245128822970598300438832140391681921751493926872437955394721302903361878187328627940488980103180231544927488813684470821379487241421931398369479159760556715397647298149902027864075244183115913716812592581410128939057712865095494807772307726439803176771864439014381868515043319848846659034362204109411189000895060197141197681060306175238722077154578690520482018257769900754058677159404747202755258714996393434097537515868142909494593295546911340279716576594736882519151765686926171120932998525190143277795558608067935256673102897530563148414178935510514257487934429836640912733367742837867298779640817753261707610844370909491899832870937245008319889182998372979375501936217948913100804504063434903198319618824154606401428290290077662805187545723065917417966180958821116574070888552305267277562425207928781393474384705562858481641483173539116761984687506569347366648927915702411640240092306016801449667796812910912488036257578954931009205188324729626742383369816081869120155152506904817657191639385758263078720626294084167569402561970395933201946314435934112195089489633412538955923104050903387198469787893501375153333859969560851305012119634617565320980028953692044213407676534856328218645768907106296406866253436766284167902282559224543367903833474386514023313276991039726619021060096789456187802629963886431516132612059504492908195459042766802756055967043303283241958601962600845723646618179016057970115205518008442578431311998079205670423951411892627878765943554663232456577587767160297040408166127113662731040479602756255123500124705689196889203868343137241672663469280195190253681565651057134146091664500991158587103720254990770146270215358384454484934167325445280112442263829743780284911921849242208284065133765101575308507178821546843873520431764804365907048516780741247641859845781735573623979035010948674751521290019565828543084795984213817032400285922542110990341477913299186350554575890900132869667737669249144353801876666912434372556213426433730126440089653565600296902533965907094140602535083013197437597663891514224917410904176454323810541601563929635299246402231653919935396023225048736749059051890281072012519004651199324722515369055793391567593757912960580775118457006517469039686092778147903722273015629061682522423073777582061186328258881258583203793606449566043994759560719903369852590336993256293101391178110413718930377033549989525521534602747184631082780766858308714118246472995370939501553550917977990531304088574823415711593382930745810121062243727913458093289239201405942635816051396815302408056409588917117837623008301072739704129849697038128772252317229365471453160447174194352310065819479989872512299914557748587812992046863972589076863071626311846845859116909442695853611575177361105605355720712652840150074489615677990320406785502269850962281812473414558751159977658515000214541791433860190681796945653686615015517865564788986278418726634002319034037438107325218169372794273506941720679638493423556027793692523088146601049273089858192109670126494447098962785576956236736682407701191504179317790927375066037086164121371234230869981718598433846444440212684032554836125960238409468039661300811829764145293525062956777210329971298285739041720326391278762895599840897718801426626295092527274990104282641563468792365777429715500752018474940466312102258142775918274132554740120278915335947084753650091423800912710274164393181008500920401441264049874580082595765630841830913950949973718177988856635493273924190976906757975986105030128900927532683867591908730586402138671198826177090627522175137069016697186609118759230344996526044000487397822145137143117956275721230128796750374940747979258611171081689150797646397568222305754074226177124295280075621082769446849316502806037019662330085686849155788842075710122180934675814366863995455841642639789728836810889220496311235575252262189292650298274095383073418246841943732772842986198536634528711487618126075262319776153324721214392108903878217611756116074889266515159971136436386118352521794720038004012186509923637890873228551658685590372581466633145316265501011564763948261832351688483658073118001504913923476096754491180109430922137035561043027150389934966508701934777681523709494452392153341463285365565386453805809422287733008183957112214646718030738116656391373617273576698697714906136445187754552453487406912772000041352220058442415085086584345864994773242879364909225513337347999605777283674667602859461732001475231144290154257513774593238996347200024308255378044160600575103984629894585440181346251876301425327173932945796588828508659337063149739314088028542997934109488952961682498798839722522410914663281784541437154725462442075654178413731661176594125612626009740673338051873732214646415969829590710813021485175487618304894138698741165519707658009521456688846583355414902025715356348414466021660671646245409026795811813709615297780457352175778883624626189651270477154860601474850428237179164567575223889495903013237827484944224553310762008264197110562079664167638479733920118591720778827545739040585385382037044488227856830528692974059297190160364841014369754378701772633178156057927212238982633971343965362334957895487690747894754823704259502308299252882805261110382408511817423052639525579840668995206328796006133875996903699228223475010151682156604584320103264843903483246361848610335196751662510518942787438595938894072760903759599566570663569386765139545001584832956614417518028906451152915944784619230845863179485481888254516577518730175414884247626812592191972442534363632277006806721660204899024860937669030745007430302559180879270015311934687734902115111717135003095720706406227982180764018428324820647043366546766612737564464273698746481324998362904188846884926299697745722963417070368974101718315449814402284465688610640324784581948136108144115160945635739831393607627314036217164183452562043570637652246497150433107140009967556224525960770024696617282519712148931549581583102763241404477589915112811250000329442358229935789714285695518733965573433073203373043397831038887827795720677941770295770341584683714697783094433325631219566714934035860544186381128854125895580178699614567075853434968371245103006721722024030538760781901826148447992452804572926454655130119442562668670075599399427844592305173991754823994490912453138009281789874312815484476884305933586353387393476013237931784839347752388172005612007825635134564499255860375004663265211780167957416629517768103334129275916925887565187887069647596780799818703215177692014417440100773195320830257578520650417457659405654308176579891211019552799703390431411208851634584396615174913383198802558597021829908710224528112685616225970178671404297079050276205503462518944398931321910832388019059152627284014110615465461682983474698011016022269838393530139965814451090820015154005920018222430212088804429679030488918072649924728953639343247441553097411235410834707243015962561914051588726393424974210335134890965881546991669313704251936783985579983358032715270504879094506010969558521491081274858678167751119283915113922184395883343938064507328005786188799913357080863231165920908519934826309729002993428697502681313487136089259047813288471932829197533890344186592336258668007171836854290083815660863028718927875068704365804821450113533077347983070099919163282816965774151411983895349383660508096535877173944627498295775707752964928794873988015767696280350059304997633880352302028556695824023341268658423540415874590655782687900219500290047906296164459232350348838655628740975326805705708514493168451129366007215095312728634315883488120214619659729818778326480465335590100534351389164201404962952079949575859644001182127063078519499616087265142233315770609854616378924987523917450585887002979323187114879640344035275068619066636933838905423590701444842948588248969614182878682338752234969892811646856083206082952365814096035180275494537999289088686564267394280252870069191723464573961610850838649247714932383659905980607623048774141518947364214284688666591021458771088860084469079804335478004221130802001571993269404600187712288651819552559935218189347553539558130444384264730289412824976241441773575297887346965217337944357494284897359465675906030292796535189271255892002767322007798088664465935301232001218930375903043760497052379958474037553266431735293103717410274101508696148885428247974928517674094841653551812549531485319702060368431245426539228933304432941641072015451253692745749372429330801712987653503910519777416141599641952926979801735292965353498226638697443291803298414574765384115122689224996422603411305135647963882672929000209767106567743630212704292676772121581476760227497674942888372950808589080892025000434413051896316125914232642096335981033717514445933507203101373026797320233980149189718361413024881273061611667385246593004208342350799002311770128939760822287874708604479299893839378027482240754981731710309881511266770892351137010014659000133247454739946799762180358354894595479353763906178133246961674610827430599288455500021142698811580638422286091464368484835413242212925669403380879295016370987643085766370339278329493689718716036676132433180734708970153654838999143950229382739295743171993348190697662945368262994805674633282679222538093818020944197363254452297491739020517306750113087172954068387099921085277786054137365594189798917479482845298685976963255305108860564225253354001321475030183937304253389797142099132112141442244367966651429837348536411870032458972060220028894556447823201312223628265742330521541784685924591936762395523641952772454469677880381999069621851701359372607842885596345745517807275441299201158050810617478665627411211854973340904039984228412757024803100722593905604281940554121219495339319489545871395424205344595549270361530866281744718950720401583316663986901978388685662040846638933884801988529922252178646869076575741468317633781887490342571124322614730142469585067126614208632358740752943088036010442031195588606082032479113087875909203999161964553132502397085104434707213810745592415870219505912230274918970563284375364536657373378215341199518668656365123386588603000325911167861051411364044902960260529897553596527399534154618530998827519579245386295527084282753723362639610071674886046347496113710805417007862800267103439447942689321762778762777340194944548957507492346762456839639015788288676877562282627284557917510745136651395723655217018914646212423420231105964437600309598763210813320214211384082652206356451211677076670629575744674049955306187312243904022408866644634516158575604834261256197550080794866033026439437244246101109441520267544757561960288181402373990289481646963017758145031327145925193609895433688482402222012752811301890315451905769212742694177513303257172207263200778999035055349202319891376837734464400188139188966628268242747627559019129933781062260841235633445477562866923534950951221968679249065338120065451041891768555741103310804168246486082973846103362342833957871933825656911778322228657023093600484233350948561518322143307053354857763583346593692440560724236523319034445238548193821465130835585166134226577789550012860813044197327903241352841502708916866340626877257481274895010298766066852027148664010630636629418665751404949739602634507934168182168946588107626682777577396675768660550343468216669494971081658068181877749628760241054763181842027307308814728233273226351338071151094760261508680578619386155643893244837254062858267119812459918138391490953668880113412110954712148391897719948017235411935300622394386788661172617103895139654461110218365759465272510716708534498860815850246783540993219686452542242410756145569819098150687309044996946094487452544875257592935581223009934988817633832272776314216020167371855752014596843536423122615343136822575949810560272749647045963630720093811672206520064586351050284769721172593712588879386986303066982539661179697880631681261732402347892541475236697996580092885260433857990105395066554821243251174916479815391774009046375525015459115975182110159142653632822282622933789359788934698898569959025770854781740315569840104299861489937107426863380439620364145833564585798436465788279259409545408853961667156097013682055122710677722271922894121456673232677190864472901214042424166834415897391396887160634699282285993289460035351196426989128093198631902731923705205878523217479750654461597737547051299868086943667068607665866473542736564219235305870212971092853824864910452261932660531305686944386366470678508262664402479278380760187028473977196333781135169747959462162881758396969502075020327786036013706456767911843047253893819947968072017001335028535582079591852805510441235551043964084392717659167685764726205368515473190302477703864850473842953870903998384902280997327300492619125025617864041299522080889241551944020146383841983033082754241198501242805591443102055126664720432043526946919552135094757606519025386761015975427514959286535183959460430575243878068325337691459609358417810475996183609185757523778879224085284018156020375135338239251831487672362201711342184570009549905224734073007591064423596156290868405086620838649612476322946523468521343705303706752227524113273299347862025786143433211959435600061553683244475760507377567529749813148539964668487124483904571144486995772326953601965392893041722589067662806033023121837445993227943087556012653268525827430198388204402443866524798704281862815200615200943529630691881944939563439916733868593434454723168644767482200510851096104334393177023516998968689382738122926081966591968129119209996066228956601388544280126753834630374567923869062129582026836481350043165023332050241450550327311373897515721850600871345300653622080789341197012468090082082866389384482004128944133220779423337804710476740047196927329337815533542320283889755645862640857591792935360546292798364636242221268705930520062490410331727012358873674651528922040505929410001427538108274249715689775914027943867288261458359656667591931723404800015086841497161630146466046232123002366655721469517014750258662754350114128695257813361598482751704261482531239593647601518164456134578375317981932403786870762702925087452731645823443787301914886270669444825490097786593683203966898521204748407227669827541376749996541830837807772953965159909924572530703827255330688993656610249909860327493224940868625074808952455868052753010249856533467011117853523943590449977267313281819216483540530944577943674722269575846840975684943269769517782228314671110561594743872239645627794998694026269401119541893967516421188957922837492344865484523809711888791725041682162384947230747158955993993442406827770465551554996608608579992899510996682730134701098594544518452946602398885210230070287849060730634375447880658454170317017199225953834423319566079199106523832416719114453614304316102385437992682482384233243635078164512847900270941882872837855973874940112592505325366272791736100105261202795125164543810151446924733350043195852951398205070307086403877716698138789152620390882011818080014564211138272320909734614637020175723592646338914615708385977860901939986847391022783969364775424618727055076835808456842825037478410704755017887864675838528377598426045719621345355811797765362411601709931218211459182713613980808322099917749070421126846624412433972173705052232418760706605778356067680251891376171047631657810825003343395601782343533759514457581685406893996993847779547328482770770365486330853111318370695458574345786558806088322067217243231731855970608056994791867064728892573830740791815518563595860364180846256463090436544086341871450671524187908066030568873283692707671902812488296025730779915937946823419813428936459637871249100040134850870824142403616619806924746506378467183260805122176573538422628206265750920061134353579927352349819661577156449679056177248814132952852781012507398752164050998005746332043838592783653913825704072753358315166948588811092191939287303531469911980332485844628156958825309773023238290953513346555571439710691444895575633939893343203756088071785402682537550473419714742223178774455261628360133070129533705990086661653105951105963963595701457583624677498171878067267712571010563958554899822812302518378739600577979528930886622662971582155594877721400000457215398304698410678080776971429250924022429101829163400320640158251763146120919619571578562601667684278412646968044748545587227171544503855879485350380103966454603029478784048048403354373385511071658067672730763239430849199246204252999161579497706146306993150100310251946637295696119881637636460391611418531710369842817734246182077755044900112829144958751214816148011964147865765623534721602425322136985534066537366200514290625063896381467460746692241285629446556421877910636431661620892702672079350302683690783464067181565864294454516777635407903097972588522760317657368531201221909286321384786013863636340021455010828437520996939117627248371326588471429240420429117810953111597044986480842717145486631248153341232477596314519500489626941963312982280466455260108364065305830816752595452023754402945442633295943972343707487633700970028364694259006548438756919098126749824041811008381016775170750004681375221952420137978239921063571247578500836674738677707407527138499824065121976862923679493255258385827450692659297773310183730680586555918745063424690260236696969689991038642677634193796934195372155605534061121376188464485970725517152221051028548827197357576837452030218577702631025912319210253495956702828043522985075589515738205426524727930676819462603112109156353695735580784678563759709574724807244144377209510719127096104336163011578905646366242010380821279342352109289278354365107695130099832105236998223802121009459329061289028550043941908650089274707852477931786458977977035136114643629696769038329591208092708509712877256303681062366139914381277749962039288089893607455447104947259255997794142181620002485186451433550570073724702745554262784424110709452753692023060948155803074144007599316908000115669018101791397775546703628440739451869844993859921416498619838895928996096621492869497216540574922803940768656088884028537067701746439471360189388660626063512149649842647211769235493893923440926330654909143431763101958241573134372079262058886336065677392109813233153913568144378490461372521929490602905574063454106874194497955010476873419722770042776014224175527869341672029154215049719364757535936701517466068675591441778273731316703596424581462813706385779410092127168392096839350955543521785084923023072874861484278482255971190675933068820872243473558129553672815183430386842113015001228742865522160223454844485763755899097215391939280831865493791756748891122119912761081733140028182319080180214578455984777686157706618910931142200884627689150116975036027511775510808467058346174446487930243976777386533487335875987013672927101949265493187172419643262968526280653067265067756982342989556362160727772425501271646574341817347022577338438975723397957126282295037529751188324500955615224576843624624614591737392234214103633472069860475473128590869300387009916215017132271324077623142642473983218270485059070422109864974562205157144535730887763018638057457007643476527023523559375743885572025859639084048555723106848338856752582013263997163802277970090714170125919414736062579819005606382169145009363822068820224128742152157324165652500867331346676823185787332170044897030447631797861664370914967150897237060085635083889341096019358062177044791886950008588610319550771147815695305625921164697393366822525769958810480679201089053188822301947461311587077159621187070408269152185041719485068944807355675653143714688363617164353225831731773388302959077267012125426703500566179728024627934709826491301926871373352590086185902656043625518337171993964775286441854061384699915679600166908769801185526967123746887074640866185542349626410377524157976875710088865969493517034313679733454884355920570402502716704256004667232984001098812902399860090816795602670338626880678969752144522243000783906026724126406877702348198593645310453430760129325772381637282445725095426026532182136850574077260078881713671975044269568782684551930082712682739188709062459573548049395058489065089669197776696551926951525079544387668111689003293991085103053706896247179821414883462567850801374420650493287107734842046051390201731269307388873292353779495119943883427816701199535416274696066355171210264677626059140542288357653370036682689178617519033726234966449136877474217536121562366999941772176185106391540978439819099974625265227278201153137013282859892419695456595637737376903122315037302906596522064796080237384099367882080847714982033136585814983410684881344711152711134940028613345207323361821140813441368579329569594828227161759132789406045202880647572221974661729680793493961017456284792315893240548371305171588991144016827551797117066654300536915683901289751210854431172100935723865690942404886531919155563422232223431348239382651284830360247749861901601145780099785012978530036004555519939447522754236096279761623481184715807104308518626266531893268786924949839339791816109399319064017236353794976956404117489140352390481813220269308551171805027598568660034143547161149762252788635677450670824874496150719592638154033265579378881916035309894863804203084412702356615903891958358414239874255710204494406461622584755873771616256516006742115430384915082511925064786597846244767239684846621634488321131453054245996756490353939511729121882404382318442442577130916985205615836913322814469191536530548031250724336635979479268863923523577888548255207641685281411854299561363851654748152625327043227075576353091242383641069303941233471202101267990723723843074034814605491047775110199837950079150002228389038525138543048430617991946414904461470069842525671823489982512540907318643081519952809874133003263166847408018072760324852842092417042261254789297037030121037256591975786557527469834109176331093039640368881663511040119261444791635253357487303936449692881270684102075150422258212507910890438357289022056810798434508269997769663142058131120386301837869495640112902418927673309895536785548404471666690620978712642131469828312394877231131322790673289055965821785617069754564680895836841913167646584561694785009240302473816407631136749412606153468996370911526649533564741585967472813115138137345538571261524389473695184813059628664403734784220267941191699778801678172536181860120422789857019144537333167678086038517320537418327710887074895701564886237122949183241424424335421943575409096612256711903209210606034974334090330898528310402315317361132696260238462839543496290173566914156805197315939739986163212305330296219023421034100805924645010252681914280144109987551021533344871626831093690705413640657536124899008349509376060306005843769613625413279667911657088770751632604584986082406711251420838660764920658493148916861309466605241707524408892133279475054052386377764863630634759057547471170023485996779004643613886339759541698411613280321117930827983656647780685789233986376362697286442431513305416885011305430717372404332492374752727381521799974351479505729757579376666622078736037571866956624820739991621250477618026748054496374847549404071566564824451071850272949715251024173322948203813554951854545737486934940652930205200539730678790201434855614253682046116181257711176471358935007401893641046336219175522809851232144165218776749945885359552968759756522893819603231935257615337515733435871581875599441823272673469015106116555310973575466499095242253969020085154959927764814759213884346583591839096192405341853574227538131233064002162054888822159507222286912841484274865167554970945006370180478933066531723136308625365842020771855675491010948768793786499915843924887474279899954961188685331769117406132838095592909192020746838528207105073268499018468015679521881118455516340208535507251901595462508671286069414763770353969744503004831341217995172868336706883285460210407509364128126707815088666094284616669853497440881068869748992459540523200827186563218949880822964743923731270041330027154888655386501231670900755653161675429446015705686946941079715305761029580880175243464826295193640361610178270125118112628285791993586328937323928708700530590870112310096250438441580729653143514133940366835358822582513007567758728129531582663306163232021356937342914615168335244208383145467861728369299316948690507930193152506504781979630601486669392490659599418070850215162744337635120234506110823488598568957757042208470700420483900016205261230813672477493006541591534371605700213656038300647354471136710876135055950132357931221321520408037145593890158458117168617693172330798559851230746142394134923492698258132600109499835510927987437825370809353432929239301346567977703044424682500393431292226055820959154335713632075539806179630653903500407819369711694094460760687371909819790358778504783527814951404109125358781328133129398584603352451493867628310258765035966270440231793142007354560389843865212045816314647605583310696271230969509884425981273566607555864419275153525823506529734636138780450623771349578392499932687991610031989770753051891552402335901111465877358924960399552191187666000328079921567159827193685596902876033336967548586737252795192575299142495579970098164025940608816712498745716429881401563287782079207090111816333543906172061584858424962851830158848100371060655050234252469647657037446533394348548356159645395113630066876194947674248355778988324096433184256800641653469587340680476986624073223187260774999371405874425602980822240524046835593626497717827928205438056834297930257145645524756374885362609843648705692993532639653345259374449961065293533153476387597823672318771074382306435153650989352518914823614752599877052474295488906066674685515172069318763375693340859846338177856761357056879087750931651222052745623217209738754701214166359138336044928651829249290035994970254920199073554542846271463232259741053649236023893770114660793317172136809984120787642275995828980489752203789322921528498740245733266789369677584557736811987818425656590341249844000376236827380953042833071985804512029521109765049284500561752998969775035999481240797202986048615075774089679007085919437457735718344762519577532268316360481291790212086963126465606931189394585776101267199944736161049201112923082414590461800439557549367539778675188376138545338573026289713810722283783322452756387578891543208626096490405373801478663402518944072530175076281462620350457478482587345668587183797990000858901380849647498938022416749367921302098483681354877002267910411854204838780755573200371069032846243180376719147765020600260300173162934264649284773816871372137927707309817284296930275189262467578579398916751335737531053781154048250279053069720432177590560996514585616998794626566614918594689464376105530204068975540946300502241326736942791099217426120786798213884992615449580780946039036875073425547432940709284084127986449153591894607012254808237580977004128173674978973438237591304279919885940646698908615295736596427872442384662917622860598294144294800027310872368238559024242675761669030535141925777000803263051001262634857546763630956511469260522893124839135977618608739040150413698163030646315405339430894366317189037185518127454649972537582053170787211087567479088816724611179373188478761229654515517820435126904707582582429951650814092041348349607353349920514905413710641977118630454125270296813573254783862598275409512238952519787035996419065154020124923754675453258718893215196240589504673324362218082838511650725023601368092419488225994218198590843655915541876544867485730031957435828184242275153168665861679272772051448535503809596336591557779164683753619838683396139890895013618729822995744225773214617552059286652032467485306564962650090967519641528154335281978107328320543047428493805629013780127605337764896587232690226055647785064582906586057204459646810962237367178286838111357543679136165161677906181847776871166680115179335229885003736073901755764829965867079928813666180803473103172286388562772176447560807064615735833374628120930281663523298751326283854166203839130976589468083720512398552740731861728642475166397216572375690081886054001937052096181687922739601806327830698952788141094334341357243607691072922865886681461687207987374583212742880921590298821932610549095664886860563688602865279245246365591982222697087067184242294543894285775424526892075885226074442100950314318401660927425960717208281675201877946078557068107086702006878300182098848392805756430760007334526353980454334138533973041081059174727001345128213690162818709426338253465540425608262570816350519624198655977353909192741549996254712642549003160301467938463020096522758123370875600167913985056156269217291232671058215310109289820548209460666831379398705127057957617740219668149145559193981495011980191700107310447397175342672643444648949094555600773768579263640778239377006088941070444373907251831746716957438230040847761208654161793970458575129402979929924514696113708869287281853257452486371678380764188298414609450316932965557943093870675652881220189283107896699447923968545593620424493180430014858339390258917435486803934074092834751895064382547307206230510085051128741695095941829685665481262172039033302933499575748782967803586042725592023663386368054614884475015661622261912049685221302042502147797936177973906516664832982928458658192179079687988525730408623284467721186138576752349540802262302418488090032022738619347235449292766541026022216676166049251912038814677254744422814675644291806492603359521911090423886859818132968738382614179234049540732595559446030479060459178078884402495148368671687413745681087754213847521803941074284501562564673868622695145815681063093751490680755917835740555014431256791447744458098913119838083469799517199533799973841900323531379480457002254580845691963315363052346036060886492001066075282220419174171769358806305665118283750472029500696388288716922060903990107273633910657392276923679870539030074444807169237485321638925158319327384747565212173059452833793065541626941277592526049221406391556682364615424335996729843406368261627136670217443009495439663040761513165572273018474092866630763184364423686263935209653014555562694647715307193833862599854028797908667475752956532694302821188467197944446706449259083095033200915412252263929883040470201755619200310804489633224456896598438100088062185984273135585919498889956614957423940901150580701831201678238258200811864149334559033909033539981304431596491752262316123772308934576507414265951973977238726037444231383334350323756811017703554531041692473049127548457577292286790318001425184039672722099888004980979639231973962765161781245957420085604179234403611783910338494600872577621673343162099475527206080173018731907376938016607917757507940774961472280792948546177452335880292796118015058315609857063914446138981501517964542500624343489484446785421141046435828803201633521576825723914837204446953628529043639399952696242664565800369601900871280073951280228737843216862268543001696179241260208388602338885735105018148105419956449048830141844207484735466814562533425403888991028242932373084264914493760506838235067724986153903334347674937794917269550373777486429910898775540037485049865220189901759121434003715543417309698532463761236934465566383444093927817503513314450400703804219925120900670210056267253250210152691391099924901444427627161893711397123639265322289849540108615978517145976659916773444818386088861069030336080048637102384062113277166812289595286524653951860330467728380659947161379875734627575342399035992793812451478691866021785396512099752353211549741951536384415962614049222379797005932902157692344523400681359294311606681226887871392843159479063197376033343429972156960583123560917623489463588958447794837514714687953887306535561553002918835850082407424138350736678895483854150144632266751658721727697164114133764424423005571716880759868853464049890184977639359469993356365580437389604429891388098197025719257675249169154544346926021124274439253591538951375334918006056206754044255913017343024552231133434715700382043992766113765334445890204162992447642732722656983147882303615638023297664904154470390530597878986551579402103322844911336343553686648211739999384198411887414965621305347906424521666307886240861795692428476680598166753756033373056997250057793627046926998443374135137474832611869285603773219898710348936656622969315789805618617468580935001139044383949780566040170833096212682786905018543435548132534992211116026762068109323829545917810318211444379871386656430225081212703982993473802178023761213968150668659465959924969338166554168632612487172401440839080611371032818184645676208868734377166907028450324849095031653046855547040887954821474471160795502038503288315887843873553912337306214347323998647541474779450765419609498395904780644894720953754203767326554661669346931818240935439505441270207775793639561047526440872429315935526741857267659628630056357381729150064665375746427888762145756566257175433966070857037667647338984961133625428781278985873673714720752131543629688203424658598957964276697130069295059432347822608309240576277537289547945436647451579854512699325507084156786842564634332140890750167316069083542420327369896533724021119701913603865990442641464771561681249148138492784604014035313164724980654218230378212253473857326661597723857597089785627618742882274395607741393674884966233780482874850575188561855044313486335983909865483793650865009031660965430356546369845861954737290905674690449684805336494559703827159275617442836575823665193472968711748326684667351453377921055582060753654926466865545824199332996964722620204025903997030232365744757127902741199294090933954157132538234875351742060569328803300557666736275654461129473802915757130937938067794530232162974654901910165946603902363315693706892304834479753104406579568680747460002207172057574993974485295889435031187337926474203380399150280440499382464640886659438842362193903596076747295715762996778870718203024221835067660884326745800550545789337579983378188860838239710947221744592699552504168736633811912271140035802990573385540478107539287085976068349998680557843777810175131399087575605470399731599168106117535437233153802880669945637164583789361741149257725636718016764746566565270600235430590867464126126110927760929934473020231628017594570909570257240066001361155082430981134527713894146103345361916314976223998205303783751539258724886069464471126073660968760774753465423304058221027296790722332456050834048743251166840013454171261825918908895462091743554751453428168343579262963327082848126419112341168085329084773769938341534239485265925934718894161091542032829024133335100905477276477301545774437542421824957095728686400813565946951064848191466747335459358123852933949174362468700583980366996373325918500468683104080923612956859294690690900068304154221791223198184118820862854050680701552623127693186945750618333916623197426884742431093698735799289088386618846281418357577041454389405780659188552304067327908785030489708325194390428286297588681142231988588795634312518940964804953582238137957026953271651177841919247813291646925568998673219957511742221561953202948841452114174712766612116877257452963869417995477222567994251324645456504067332625182833275428601435906841524392641509939310906855077198299227496553444148520940519314512728222970338206707789706330131138026693150677876453080725181133059979814278469555082459250122443241610371905631197565937424238341092383261772011902830983244146226321832525890380634239764197550225891344663603330155820209190239502547632589057957392393408451846664386168045977763234981858776463233426432206982495545641929701669121830993168895011257618550839379500585868381806050593472511425944295462813950783948461503354762417031790235201391023052183838905460600609933340099784291476600156188963419531299245183866818995723859010677031751998696503136658774898760144021513770091424285810729097392612217430988241718964200009279413861277223391945811349607560611435323092457521254883755338342107662732818854753063397683519409514131843793526541937947369291393395581489907034038829722239630423973307012083823693750522493476784468213514664418347950653237387901480291825608698537049748044396771032946370023159681586337982837667041213561282496903944772406968123239142211524638077951076535875745682135172132363437235301020618164383436439115568945175941963646116453763327564079278955203232769230499397401284420225502818216687375403623098202141087984083776614161416181283076962935440264935316125541603015904729556122166080102441878098575409963321529599115939281807569393726443237540839839100879167058683845746047832791300582227681130516375107395970392274397342629792003628018091098502372783087521865498917070371312338332142741572923996117644374098927764981335355969006801550059826166677786250561280524294638521758241921111972300307225610252719559032417426157541273242545194317183398629674043391408716535248471206194894429473165563241140774687610847381811613574411762111681464437685047500901551122826816724520448966278124439811668884544140264364539144282409130151051439842858160624170703702769705008202932238008832889934523915896070883702005498670828493033610596724545764304993505528823586370316779008330170380681009837398253032969340212938774153910115818211643343819743919044845081434408120778896809256021684836240414961623431757630414584414128202082470066498112233246923650262765646711543088170869397898659989279089929776666488622705130345767773093571028014164406905025461039344622729247043048487179176258599151242066584452866089291384518515465984669590465312180757539517212221042653233777553586705173954826036200611148679826115434504574986966506412799330032980933957788129133170158663506838926866555608641544937514038109962328393969857864743661345194833207044392844791394224726973273701121701363502488746797856847645671580651730524529473507189437352237682568394399289207374068128652980824143458187304333913664867841258034115136638869662278862525286089749976208905152950781586986547327102311902834050003161384789952374294322623852063030001143448289946051256584562147924275790860838458655631263568393334542107049633355246883783456699845401128540310294116702180193172687734713809570841165721511669922139953497755488137585872299729089419763628252477976050714428045681866766164105297312210454667039316061322035597531698030092582365315618328746515615326665154007663635416573010644864372597943135950583103731849031349238629698965220331047667720109676339696040341512378187006938499622619687182349986764914712748010128428501451132169889812389774260358707717653844107273092719893279952876641753229088768430171537143962715864753919198607390908975800649244606102973202543800703172958988462125560262758356013276773338521274282186647334385492215075164612664350859230875724890726992196781284578485490334842445073217542970736064020378028561295858300219361783914600669735430440434961070024775543697247897850892939287130709323078544049970497955599906278541404277936674106048956692166909456490918019289073693817355190615924881175409822262172903862147979471174455513184128898086524091692742460700207378121617815577745480683720467820502150764524082995015780132959952618987123268141609619563277717589664304860445773910728221841100339328919734551937353688823262701327000248274345034078728457529465852163474136144581277153556279428543837587948887554238173481921866298843599134725874801014649286529869083641287366314085396949824261748971221660546285210061352755334149163806026878139408292699841233736220152248428876113769140419787726846678016334232504515221923054468039746662576096155347450190188464490414614263735392033792536324895286593387959301111285269198037548824768179312245707583883529813104297235780856524360205911217981487488552503708260821540396932764309831106120028753863139562094892421464225009805732198483644695000604253495763598356171628566172981246506297481705314685969638940547585659819084810149239485748352842987184232692958183918351807627418857924279182063514850349780649016193641884111537880321137567167382639430652427445241380780147279786532855262608589730511817451264369530853005382342924157184536864894853670287800826493946968292889000103950066712034303520139796888446102890062389127326874097541982567964451486012657703360096210121575237491562936224350021236321388378329240738378816375539488252269629629639196510622305234413479601255604313956445248405858921575586994328924675190325565268376064016802970231450813346060726461160505245269554927792634997908974032996810214932418340017717377896144457149422885005478470090807450632288289087331271663773355035979825218758202551376875996261004375406569928177168573604836414883563536544002351397935447875650869182888465699443705082353861351037097521776684074739953664461363956470805180736225212315650413260251704463253514689340677324871859578103655018275138944551979248119047020355335696214587901544115219012983652737313247642999515884065362783261905741583181468338559260022845930205632761029584832829659547769770376284840242634191260107086235190365007241295016907848846672628090693734772073531620665665055930465349130793789023759960794227510196681628906198805225805583481299554593551766840448338962576699862855534620419645253294832380407657019109585349890105631311306790514041781156824586468994581850953295111624393631573709083573934022147373649918321240827057808564708373365116460945225955834308070641198695556027524398930203441343204430058265439511129885655943309580361868935261152840971414471980523444108172527166298538275129624606607542132312793184018954281748838305484798865169909900279329946516661481322821879321266951801407807569781128925788274653735206982531092227093123944671462039874768538570927549155743868212930545967873554619961507290097506083572277440415824137700916116847040207512701820016281201715035522763269497013083062524777819761521637797016647843641838645022847147886825268865503247617903573932596801967786749205062737220805242362112653945951960708249632876859812119958881214961725291950329248875336296760444578412449174105827858211037463532667735463578585757195837471555002956568424584552994619639674476331999166072948211425901731135176093469341105207783913538545383819218130279179108593184797436871019752841468036171698606288192737211423969404492764239298806212328386636127952889907388207979709288430080277007937887326803614311878286383678128403093430785389608402624851006103426123186489266866160106334025154059683845824379858043975862375776436035317272104769593588976342668790212727812694385108517260723968652476081817361365227518354010505341561954625279944075146254788207598539467188683237788362296655841019337722105146762281246901106036792829334885310672642832656916468025347427836249950155999724106877532483551947513020999560216761434302006543666979888300663129313757697291332254003352293917782814927579849096175865831278381183278860231845539155753326444919304889051607537059095346605619922774740650226133479979104818720608709317897595615483698768813254268212151407101400094503066750193311317993689205523876158513648523572545337533067418639855775345488632673072687596832062174377523269913837340434643199276979017360987279770783629233852430416560007951551786156514580187556713269371469436768099971173454554805310838852757734992757463994300810274355458146456682455937002382727759179297416908239374584619317178816788928040687397149064356655416259236988521732177523004286360890278614652724884293798354785943183205152790343190191150949625512528123728721629473439244715248662521514596827349738355594230888281755300006968835735013225031800047139272008283825504721829510290894386239386941428521628230331615699904780584744768075216946992052168875692727565422922893887597656254368932110210173761285269514727574244177483069479279760953272743290433846385536632937180304680363707493459756062968253798549311515837097206396346665394178722945225462599762405546887861558724195598582139425690649266902375939768580124824149031311718219880616595359538563247339947252319707932531958569527959247509092053760592934604104263606285722343273174858770210957489117119902236207286826915104655778067738103497629049832389923765169841747577290144803934714269868552851299164155032831475964588349885164967266237703555210539018588005828123162653542361638934332661699817108343035160010425268143696519618816698551753929789223778804702791212197487933718123488312894502393280421854386461081446513207541079946936319425026059540579007566246507661260293523089618263677072508676282260367141774958080611005489316549857048637791386657713606453272821636363266166918017015062557557367117340386469849326213815732384279020276710621861297217678090135810846502033172672077935827550040033917657648588146304668473491932619405262441330842223340734686664791509582174341299489979095232805736121809016636837443875123420105641403708128284094154548467620395172481737413421620218960331152265684494680188964006471268813521800407380159925241146873923019970513541510369940455185436643751548984020003633866204466117417220631552940898709700761052080012642254611987891264056370883384900420366282241666914495357150542917888019214430380142839021860211405019573427240010981714429262017213492582692117118444635973036820549918229435765218589827669189220203990550560080720091957278375017320264230076139979364271155099767905771200020210891294767734813964774148777532454060844402497700193530932390956315276446734673314402872888397484302774619367671667119302899149733371979423077113829830552408040869210933239787962316838158430625710686571017403252142885523650645524926315804067348254454702862822051661439870786018206330715274656783134633207990206263721506547221288864656692013037341276765424263536459460004023928094241289846705011304424001841931980450019763565487909585071283150116788342843858426620993044047267682400108387350666705212333627166656011798177147510897492535711723719102517051611642989790236158792471308766821242389632110280607193888700566326420730392531674315995456732932958557769932203079627641466211574194168079026813502337913683522335911058835488853189644903331170950105175000622955487782006074305124023806694018238258259273954773675343186705040797100746834631477188514067251126097626369843462193213087720358660102672640785656199358756082281631929096649579481327017691801558373650626862139760797022888052551671742298433774262629107367060052995126850557388855265127944110224266754187865085539623956337136768520148217369374134732075607335402884695378984254335458907412411845075130119792946150579225182421695268767013382192947477385142854683696261838504136108305113217099518894250890021818620082802673501132244235709728158247932810219787919149736878252280832600044966180714502130463516492523333767226198580678177022873923836317630505362752003099588980712314627164871901252203142869774569776652666112934148758902127080199003701848385487278257653955608284433820677958509092999944885123410123435844093100317574386864516795027398452525064576964714410407970956815747095743293244883601770754525322168292477617477368791854375755160650658095482864448086484851994988212414055266218227216211045363436695032204590555458374136402235817601548783199540578590494766536911015148732957367375301143127763263841697664062256777707073938575129588257348556734582718300846715608861252697004026106219957428162198979104348331478033869000244243669424570510357742950513186573882360907695867399582002578905704301925921736188365004208649266692940042874036171761583724280213111974038631137025761170411814597863391153862876281944684294460457291654458288929607283992629964709192941551130585035038811837814590707677507027469257494880685999722097259785956414371622642109035844148620190744357831225390731671370328414557036840402928413857184932171972118342761497661598549963865796583132709402214348568542684837493472805235163490957778620512024176811307425325357748385287832724264622838098389792424448930081222479672847493256081313340268086372830466310875154431337049922496452770018087133794488675012934855666871925313576683957636371962240867452297038342909581129769273630518252155404511788154645699475890869752753194865205061122411730012483842785298531515428954704149959654951282475032729532128260130900920944112273367191401217410116789621856798818289482488523775109109112259778137608416198905382882719517259283722682033711646733266153413965064086868760835916358525887363285802761835564506887519276007508733065244753891862392789379631239652462823313446535413914657683858212558389720045139492486392762779776413710398337342146903958391078342172429069596334453894573703598570456870699570957265106646581764984259968400876621105225336202506037635493114922328292536247061401518950262702547277018962802951904122853049113418669213274077531759981339911252415315749989773122597636975210043408165355724392495509189948993251035837770416605593175983525712754485015778962842233917765374825188500860078556872220747195636609597689706585871753894419482107824294392241071332400396903039956581600059575923701880156736613509168282603387024255422951068568247798891969327721281723792309942547893445969262861568697208140408877593099622432475318810429823205149458021670589877294410357352086869614026105550241767618526534299324277194035698213865817148868829520435155099931668742894728723469374093202642538808197316314628113276436086956232946963668557783180138341617469387567262843765925074753642810385797540895647288848278661701333182074599530111529961536551482444649475173034812698594569573288485792931929223420846316787778981355998324989212740105278697516055440555003941344484712134831825833416193679130818007469525768056086264360129954555760408762762667673286000522902618092127918257651078386542219971754057734968388973099615970303218690187402504971456052354644302208806718852346270666039146226577000739743307353687157711293057766591716179593283532287717817967714373650167771491377429245357474483658108341580135525155162763568642529973690628496343345442685759175120007462739923821502706782225210269553144750816428153691554001770235101517421090251488126759640338620541368476199583154734987147362518832217014546214002782920567767194070714162287184958964519930072667877239566824663111671526116252564794913933749906270534541517097293871555265368676070804845123795594761540090768297424385030233692598018891195847186838836316851818892418136358677882994670420215796329941979181158759680350489048024838781723011170744440870668688122596320303211715459183766976497503063604950872411486267412348056156868204892658329966842841764067598448501056713935259328543146047428585394503236052269839013409665290352375743009507795370216032247870607095548220607137577350160446933505536290253031268731494350923817626372867499035291264459440725789085809808305163576349070566469859097371768442868643173957365526314174254356729490531720873459973400702959250641662206553451133933647923508083749591711732578697153560746804096025513066586578686156674227316294424614879134862229613573787426318593595507603325934703414026045041578566294626420988608812869052651152279629602748436885899645661958271854427795329784267296828767693504426515491826884422272485945671250169285072865744381178528739140510085513851737887776784238615581027276638908558245773046091248002636551408283986066846471887517046504019813408095082748858684834196383204578338839957429267046076658145386480344580595716996350926130907808921233671566568799174245803799515699944788998506764651195136379991607846936202312640968147192046080360909492229527078842596774712107108096983850384573811648120912262057421618919715174212113158915642071124612957099976087366553804456388611684174207069314235400573063441997167106660086841076876821520398550810742197453799843299548248472701763675617602995638517464990396446073274042461874667701159069658902190826841104627452918739276505585653413845743672381296268670046344132957059328619215621493595468654166695416963407065194501405246985678313851136923678470639035077742265864748735526725464630723936387684853230606318879648932420844568530739638122989698594710918349470542399139058767648827777260018174579483254377667298242120282939930743638909257763584292069775494254203413755310354087635254008246150650458311495576550644538240686512989188966321167743029394547880104203359551867349923151604756579251471290523218624217017139188196585458828279140443782707845614697324771470134759351584624535983192641362088058870275879615972708237504343137081423028929848084646974620393130134914335328683860555814855406303955957566545836409825057036097145248019163765577922912561777846916545871914495113252864840695214078479693902978122724090097483539186206986987993242517296600421190738512473528526401636011436760609899887600317671779361492357936731565961372991529098198667716669739775382831478299467895741584414481031419117987896254546894843792606007882968027121123362024350031695967789520493097787849249558842588769077795230954445243525178333212378465759270738814890460585795750935485305618173377164654459413005892195968179745995201331433884124786362215896422137566810231696843142814744827862990389903260198272311207786295681595094893299711781867419235486886352729954269871097290640927777059104012387695085783262598925397651217607480497622645850878004634007981512722073156673315364113439631475327855560603174247149335462681857713916358800319384130627542245781996018488387407095215324768259600152190624282697805719464424927015198796674023321845339718346500552103486635009273091192864328035997292978363014008117004200145356120666616267156880014696611541359699689614892347553557350739179251545408469727578479396352901031519238147857152281480043099928007693302120314774917870268640234525284234731826586411859770731700124406609778402515567943128133148049083594447784776666542370984344227504333624240695967269486560833836420204170968698043649531571464649182217243343935573507368574240656417862880049390433827944384593455255356681121767540077472183272883727554687409313276967464217211914161976508130741438309309281957220125132523249760824261181605945133194624806303515495922174154274549588717035815343435307029155309395851013341700201546055049045014093619957473292875984264044540025598002382817074808681840469865848632021238079604863423780395574160514142689525401043059142237324377287045272707451861482886128798789797208817341738111408044607616367431837511546078416798701744950033132374095295197529109290070460732281060746337514800143944169100607040607342199674391971738245547034286241138169182393829588705686523501978022220800158736571538542009035379742747097498359521510719769467493406263050369666052951359145607202697823455199874646186152065753876426103864071632558163695188701053850952015204831333614800679986213796866055348633280166318952320573872946340049245844064299830277826317100460136426758628933929965014158170798856922944477633889670740254291154777455873167385380887816679548339704335525116902627536321925359297844623709677038269432401429154881466068880308327460404214508411087165917236813529528705816402683339606175953644943765361137204846039480967069566167086765993959058760901774646497136578750216945323042867660097022560467380809335424433481801092596506420887553052763219197144811826061072377129841866465040059022914335989711835507572028310237429468489472232558195489564738137966825757905743027164490860768658146296087919783450824761090147248711533380321874194454872830087963830468247483843581451111975130649027974198501450172240649379921602811177395390121689129310718936582760193893565434187054736105418318296461794351869252273109120036530594167872737338992566450670766121780975921246839574113089056535601384264889805955576289040679746273606416507039357217284484012428888931734122347961199034329231857113666890329869519658175371436860540762909471331994425147408487980873302609164001732433894957366300049639448461739169525707391562858978936691093783087511037749576485602760140831824886244412654616499869877738025230209732545239663439194409444724608939897754295687675098515203260811382038817431952213957998684389282207401139387295954749448307322196902104716290992847792463054429927615773428220020120545501007817673037526565695670708439358290509467941559701594661419744820642405921606362380017002104548366013975459566462215067526277954481962061506665449036101137383029219183663555247816508097057237993883166155693463416466199436085684969081960540212580093572862003788471609914119563697945183794093134797252570781925191006305273264285060391541024539015200073012933485642744176437018518983365344140161509231276239081103558667123429753808365392563379454300843101864344236881620764794130388910852659023606258498798464224194469233192305115391593079353039692794216062139443431574569966183678171708626472346828949969017552009839612035335064408334116226497236492353920988159560896625735498937119075765907270914050350359479469944247623632709349968036951094459889818508762808165850367210451696338061543617249513275316522751799302344180123676730663066706489892895709086407371765422753748642104449601892638702303992540570531518150162181784035649835122046272106829960918268075223989469803796450844274800218526126425543061188026771148139016337546433513684460395922207877311896153145131955256290784785419920914640644388223751892883798380486112100177188018513346342803072386326494854857737015808149196050062018890632473117215564632316354938614600902069061554589174175920302597451190349853545285946580379946966260236913045844848124693169114110916831955603302439704515136938007926036671599395172166142493222284151123202264858949825541223409792752332566320065164326199155564297912422792020316573901124162746672690652078253129081217388232032190265020676927910031056398732037355933795210719803295164099579579251537745339431093101634917953098038466083257949937613319576836078913354275520394141971207666934799234587231440268710844959966062302512168548521588832414967741690281892919576120030306295041532254290627136391582433907199017811768080140607758371531938410215142540402723775543835972711979271443161746433775951413324413041174518498752444314610880549418093336523546300734612654934007062170932113075741713847542430321831197491446736301525172009749678230194325162053670155798933255525062253471255919024102276495953414359373244793874768164354800860221485543420705465870602999221160132165834268426708306416511371260605104107010113427748730780690282270648438218221024314084561984141374564004627451635200985481348524973754351011166570921680242526999574533351481997988877305643884249455819566966013316808209039521224814668600213368592818258338605651587680434878802582577303013981474158777978705130875807034767212543085337686543593144329862804576342183064087779821682820115538992213091660753928957480159817929377922036065576558514852273060021127724710719476947273619981943049218422773213965716484242576979539506177927808151272718414144488400506326747640201036089707997718240007694259522452263939594596530025118551837106579271602695908256764734925385052649100355071332581155832745464002506613198289142954190017645260999645470036041409492060909502577452637096081025861910909857364557342884209579287422978833213260199690677329536727266208745740271128124854295013234836199930123954014100906154420934340700866929454799014557426442967906605729695171758680379565624163594483520844664121207191827590728403201356852729302208385394009499721485726559482249480632201078360640524257475317962519745047722762320334048330960337053212585966519930839630740650219523774885681642071770693150748501583183740408945966557964689292951097006187413670555622745591576666469676929154197978906962714744321497163924985764147783916254847809807022296168453669259060527010024394369425006686752095755798213641352727124449405165184833397738454378512847758533581990266522242216173324202945801205880879507384350837081015197006742154056773086311100841193789947419216297933426325614079915634083049955908332095463093233968483486676814553344173999650002800580179834383161573857803670637513960524640800600454106783284697662493773766201338964516475182987438838121638768803134356115052819027570377012032396192373250025414776611179682651371228352977349946202110402574660540852677888851330686920118027571608030182476216220985532024294581229145521378119755174720970647590538679335846005311155141652892728521846736866072768557920757648270981202121035903666904941618049849717235683880836308379486823212695888195219000758673649429842503399507347828804254881939008468094797508530884611237026867661912245354824784070614431992269176795597408964350101309046286560456045054739068623558863950419164734267377730289470426669106804619219792022752186008782770277311029224021514771416709169512343819034153161326261431430341790349013457865402710307243594799935740527475881760090937966966659403373966982389672374279778904422353087890754547700523656837421892198546602747925836605681700280997673544704505389746663976107693772135067775086923582608154739924975783281072893664745445872564648620915032332248557535595023423565300546162985014547921862344008920168222163612353504517108494238473616271959053889199904124712290090591334607159639325892185510120960384485779702096701676476838543202598316311048523003933831702659863151689270899306570778118165068110170981085374169368487247061568821687480734937708578010054906068081760537791629553646816978054403562047994613453973981388042151840757923082882324619431359023525757926703646906349404672540342703381414010331607853940671233358971406606490038521127085348088580322436899363115903897649785821203120814801384403311063386258285100051074821106842368960173619791442534235696697357846585186678752964144623628783794667563922199665971171021251792932960527396318895067565324995651585093891084781534949574556145395170596581497730689117544382520225237692047229710070267704005037314137481552038477974425827284870346080845192903990967332862938152049224528135677124641158667305441805825160575032477941564350633116256254846952719868936946465757620440617095012378802630385872654371052641344039192967476710441623252136885138120827265610387269445249369173163499112595512840144840753988378666028348296496602168996169892421804350802278087666641049765397104434974429106343204768305568756782619195606508884922328940311672605583249871409076052715266475724904653941479279468190005352690615385652025266451336412925244117855062930646221972735139632808190112684096256141495003377998297896739199506969197607551528637337622074432859152057246100868521647999215356467142085173787867466259970630434453484290247789330581238277323176068271396928284816785561245556964625289102970814623601652998679691444076184228558208696746986393364935576002551859641866381102173706462413748765431368935841181278097338346602673681346560168408334115279324752105030018500474614920853482592194599052840592419351294871657746147411340028383254793937068808906639079391025831443298645296608701878221452666758260723964558813342321388722273381091776334592826525809315328701886471422607082976985932474327749673982242771919561773172505378192460905538135595709942271767396579630461398622759448506549506274867476959126112099337051447160834607660592617869661335557947046833450115659947543613210886986359833355298187218084134524503224569972846539780016258186976864399415849488112578216935746491254509907933208458005980787589917951981204823359949524431358192011201485690343245701428386455981148449998961304678106552741668790134082528506812426768283659374992848230307463293813404563204469201242889237491853682376570168679736204405118619109936907675519108348973834902970312938613144152422726620736324188522426682079265899816030381174607336379462270320368320217212548364165355305322912396392044686653745746564755534031280194140116479734893044108133583749709050133413712672759397000105202017278390675744108188630706035730489277517862762944755929121826479700522047635937937210601266738423877310603686950764907832156693072104277444468600238165335975021449806860349447496793459025855282058165974748747021683659366019126249691753469356263696814718354399526255853288795879211212241241853057205598804059823962241142790716049051644127259354854720161827844419515529657414878548877484527433298167217310930435492724857794267682793733599858593043194264483534977271080855610402606967786176227673991075626254001128046829073851569704020957192122615160480778820212161156643698773035726230099797788221338518517111219092209763132470802071635075340217257856325388275792630339981241820650384223619857527090685093778266928483654189292943050134203605150960019566257917432544816556735131476944245478419791930630695631420050687077543934187406888556918486198076507702890776510641755465837617807970298908995811097375931031957318781389425523438451895399618792827859045041659672252910817189596299416512760712169262726795159164104469984133734692345701068860777109494011709652768752253273949337410596536855575181635912078060995465355886515486422649574630799120221612022115864247598116787868701433558642487318260353966127789327681742375045827142314895899773569258485106443644427409791372080827257437281990095723124564954421830565900137797682146524239216166570968172439354194005069429692816739107956177631795158036255322389590176779293133916852771088266530020213313596172311783096163617999668706150373286220355036860500230009746308384061633560577933316843511945801931703893806488553519437718486848117853043172194262408427699530606400251273720789323047342496093967447109508943055327091452960240605483218421386586098094238193843731541459743839678996342896133637447271199212555952703076802270472205593248682108887562335031278229336349303976682182263474222073984571989363583984617362684272390016056785262045033359668069414895260722270048939948490172191670595683288573493956144564711005424618899821158028414903299732991069515400099594581112089918491267758168385597565184263040743261267229528676504513104002915531307023990735865747326050886320319977238987606686445504818670650362200087146124062147627382253362829551992705559198994546844363464237228248396297541527997977665618101068663073865761488817669333545629819516929819713709187813864196628861974408459033401477912861586462842278379460716686078195947833944141250183674799487403528096879548932386826985593618161764056892379002012352491307049437627574937178068883444970083328166102665730696355501539810885267549862778641296738531464037612037920617436044140874042077248106217696772554396633519891146230517914307294962974984633278175996522558845091762764167451644990029995868127272429172152976807883339191277546572199371171228610860122482836563962015453924679151813080156343355451015500335222499808170161140761212099455647801604216803402870345438410223510452518961357817809106464014252631247551341902319053452744615865463339945174797585052935957185520190928770118903507682754597599050307933555527473872458842461148581189524089277861318403791551290821455669748938433705907653719251118784534353852100487912923192178333291719266975426068304149683914367534045700905825136953061477987430247364315402214115525296035969721906773497617015649655831736813961202219330088059810962408046650784498830283858097311473605046774786835719667483545348472554054070507711969484903156331656098376142730992047525115595452498781580286966413542215496813277582771274745301694099106593223336721339747354421027385285497486831145409401806446240161753411564389769141955343476037641383855033401873261952831552535328234053647027899635873531630330411639299164983856115797371923620132342727812315312914728538917452899840669069500167942046363783496303785168373454501546544390255624259736359706600508064756172175301697392555033587050400616178944534814526684186644605619211739337875703165377071928724046595594260858234225892371444936134651287135807198186732007874833063213044982425553422268807802319210493608730455406839257612200688332289906933689054886744026635241406181835147651824417386960245591057294008002488242376716109584759330437620388638936279217518355661607985350695024191577966015028998235206011515298221729886880989305054084211065981998799690014495300897108605245010901425487564655103154042260891021242025842270779337498866909757741318528848374535482295837398519668807293945064155653134465657560193280301610634269200295165052794397576418613711891667668785408532357929543452499050593863183537375196893919871038134163604826072332812469140035444704436707706815608907504007907351211010167182999731544043519750265573878992526620162856912545912660543159913964526839123525736153414928288594108025588112488270127723963060684062201311463321113450679157752048988428840444840207015057820092674510828968826513404179965061732102169498448335694677074987657605477554671979307422942596497665677145731400065962845784941707790462081778164310210522252099783214111215586179191925199036520477786195143449587100006333716202807076120238909096745746846026054095404998686262489284582807157593715652457645898412449412193544845481415828847101790956578099776487212469320733662518107365677868052437049634060387267046937594925382182091110964931311975057947403175698362281482980517862160476726377208999881159093078158155937070152883902559261312255923142395448366647393194592700562841563138677153436068215762315319575241608616669031456389656967745779490330793631869429255355121925232179911884327197870518035939867520925282265020038947481073719076127518278108763822455774850054070117215627803737588045938623318094043152140835535270635152745572789768601820842666604287608698629490453044184673394198720254783946749702259569273518956903084453728190409951080192202754938337114415735917592901222650923346103457683220506220652301715234653054123792569459785413826557056177636102966342322205416805092940814091481147673112096772068965552669197829135531661042608005542375139921760613656664320783017227972843703361564294444733080963071192386289496624252228958781303783323595915825358137861784072386786084853165436950052448033428712389305371820951410396368122166371692484991808272588127443437569530469372000611692216861112569403552096097312074834602575262988671824544680571291080651667802852293154619371500653816268902627211167654621509636076576886203556383107311344993765578922962435156919482199544046512607844960337793665861406087282686203275456825004334915159022003587237476604220116043623160568405209326143391637886668595973729525430801488805522329889484119383563253913752602020444189394755854234848427592941948817886871570691336054928115560356157900139789928094073393678774891220070006816903351223042541506101558846389293298569816451537869971966978821286331995100713732844515538695320353350656166873190588198591584207123405321488349671248596578085886576563349749651683281288435604849367808696942303708713039118182317699054624522826467729387560267449014588255215751349874658699612975163244233260496161366594168793761559754110430741839006916027859841002255378692363057722814325327990412386694062975543857550086535897894922460854173736814216818436016216856102047618888574787022608387187052368641668757001284859196929899218952151028271348418189439185141300283473005918214068461916414404370670875770881885226129169527070101937902752503842349956538398591992766351767260153533635539446290308604821222412128583334160848977897301182400570371216810154975065689722091616626031682147361874127168762786329594165197711949190925005088183316255962886864529823519634998188989583462201848253337130890833548659627121505571615480104381706242424164327305119763872863916521133800997130592837995472882423306224662208114551334898411178381706621250821834326159658772734866965102706545310920271246229868494363212273427465804957518574792117718039233920909605458506348616451107179210837731959789960891578562458761896135974067894130925085424793354726672836332593024722048940145651724039704189822103414459437035272941285240498029119984849454130820419382970259405038621049344046424415512184226446483329624275931355679099001011451718750098169630066951320036091380477107388380613162334799556745165179124347136945781771358489305207043799072108820963461784358607371794158315315128786812271162924825669568900063099445700751269060261758364721424966007533561363543593363829885498635782237970226618884270666025103743496307582722389200333297328025385860525967075572320708380519987927387621672692781853249404515712525503691444307129734897210328967435497844475564590295785947644248635021481402412432254978595166901337702739558446348996874268486318231031331314789295229606780651632501677204217368133643898825626807964722223803644899112862387710254433598547302688201958040904485225637987775085803380974637674112443357340010681939096622136267980712048433329541839386183961339653852247049470274249582833809944602808107906829088997036832509380772191567975539435903226637727509250282411471754676433013565821350373252919278374426398340374154918251083007891484404091466685052380854679900952897111358894318656548136038607866792931901171367957189910601961048964286994239025200070549710694030716591769975096811423213828963917575643017546703332222365066252800798784196510965699123551628001545379717271591415086079978291714584997271393589361722142280139297738835313521925675776905496624574470838677594866273010259367693366118141271693559657686504343991415631340053770458350255920228950341277130628826172522204944809891818953842609047683659099997561008514945986085622408706995966947592113486485996596029173900907815223353840884857732067689347994600697177295103961947345556529488144857869766793779810542827947186141053973454799745133442311038693272045099160310478114675382356573902672037785411083399081412966149571492022745234678596352344365104919933688274084205550520696088369369054937275022221400917243515037849097728116114839614403346974040954814186600523927401912763490451163059866203231825788806138421862105068001852871606542082331212406743389782092123271670961060217665407933474377034909232683948469980777209398670268529935157564223293766496205980360937080114646488574483299218866508175000397635896062934974720612071230165288371424498708853495407978110747359999934800086309004642124564337604607390727108315439262327663836043178086851067526300414705208686836758076529572346408946960210370583170317284348058777616978752343650179230647102811459453831122012270465684946394080603015974720262524901879670932704207305853899800405077406164379587947226080475639225126121290052286650134832421229181071031210497878476749337585162178420379232012913559587451891626332796633065526856528230862794461705189755454757936499941927175990086802969022691983184881637872456149087609117572025589077633725997299523850201246064055752615180772133077777870223833151981456352685724218527917392851499628359191968801356294629923798122368764314545389617059869193855592656452727870936775514062977083220497991770532405628782277042929262275259804679526621085062856734600532453694380607159680351617208315611354697533753025189511987464030309671810889830424320267606898871811370637261507923708980459315846888501712511922928255045804390014452287923487044445787426771890437435487806864560989422982925942386973300371113370991133424970590691835186381817054180024370231678386420781253817091177079769818473405727711821685355832155208974673544523878219257691166585693724385276514332211616786698058106214121387609875351748631729668037585275629190178851900917337734230218969854657329448800172658846320540485498049289215626632682918138384439460430951071000978547404901556235676699361450570044798762931515674404159022456427142341664676032487567799876477116137411251918149774522832510377753815643764981132819820697094712603468043580539026868317919876870899116862315869869954432080036294721940552917569478316838419757403454397642367647477541047982438460705098853638421064967625861645107029236573759982392305105869694837537914782908439038582915383832644625040294392049420069010698186362095307748115005768189650866084744313506432110966326937287207426489283159802862897437526485059635299014973818019245248527130925240292198874577230685121911153274521179206646439266952392249635526150916034547059759820868875412606137563074629487940961986170821214307285130575971998837108599919925865967238211705868066561092989212164796953019469953818821182831984543448497985799381412123142540918443633185402570312926959265738016168606166051059533745832372894099079185056554011664502719795581006805801992874356992231285022643579321491876397836203149220027203095738800076119160926867380635626890207987546810599444091223091579665552913963610060421086059353214437732639063395115881622490026759063851606913640470955194238742721151564309354458988401625520288962842495028758887799683417197725793365820182313605606368572774991018162997535559053244716760680735229196849744236556050539413942017811976781839984747343486525876782413558686552975496207022277712347463981548515794917050195042891894137492147993931832037338767377664906049580022419785879942303931839635143554129085282118804812734421280291002712336552549093836635111503691309343508120301013233212037285232198590652698552334804878746869961673424399755913580480430224760118469456953945531841300211372722595287687820984466050047858626096361324750308647566291206040024827031630674311526882895451506272007766260323714100058363290043783648223151308758378421379087411991781561362807793949909149024720832980709593026492054773555923115890195395625037260446766156675336761163767199981568174289574507547505399670233363822828359751510688616231406104477797278025211579050800826135072699062360994429863686607683869335684492832673399315649524942900829855624149989245013504992153179029915422810704441446038636210156279808574569796930997781439415049875596579621111198353786958249313832600679209770237952893694678998093544837094511067901353329288505453482453942195249447284793244246465975458597783304052803484403607285677674741939787692269178290739241721650534377640908090594616154762372845088004751761357545893625492224541987044497509202499737965091338109561815074937971570269741525424718946675846709586404226956545929132646008929461322854309321199775510451754363152257433252038799598394438508435969657101768306778770005754507880140010336778790756844259781823830340205541381505120156156181475632260179283798685045183390744809436409270393539286590044450861901235113018587100817675702709886507306847825990393889349187626448996289201989540388927265812091682740212184401463698982463256388412249681488441524514960526407743817700798922518336315547362559923744996462118156646053046209316658759863903237459670110203706424094140714276610970237140944591537043528675822491580704359570781430364901985072487648333285600252327606259362408408063568089764048196506827038206615610034556647920184509622563170833467572159193700713499178614625817303936272532714756219681025066146745763851024405261103918208815252956442686298150051133699636007347058786322814531975519836911053204119260253609008122846934639931203820213671079422430738176751648004574654952172521966210342016382421194804299496093109599565612785569183828650742090145240790145635376958335889199438777227768731615196679756907888734194995138943430606256961445546380640780799898621887318114727248126038734121271419148351894922180559454598714636363854346684063108511734061597750783551558545226528699879711387755235703192754796666016385750769956892914575909360728568071265603133313306961288281612776532879286337735727565771749591971083494274582117892698200682972684894147716048886582813005654845123414158566930501328885471417598924460136993895777710055978185215532292864923846407523744676356180621105586229842355173037860080687810596762015391805104933974902930153758876270605606904991826809014016541451134690404911103356480115881165349089161973135861803876248391046596600039938434935818506005923232149514852660751595492286290211445964046334198274270752148183908386016183740239659255338163514556801303545556165620222342745774895819251621419748204219029049867012681043121244360140730765501214488739205794027191772702361476288727499620723640053910626512690014119626123844902380046798549859553080792830722773984209274629486867244195659662430506150341134626664517304159353783306565073647406446420844628345981859531637442300238720765689103671466019235303472992255312532171532485865506466593141370661088894446180212134240262956824147989787378342900905965873799751458752925572410554738489096543459471829426791570480794195321388344455060796251916396752831058566407443125381670294276917082828266813491380054340319235242680795600790830691070945146238458485511404392174866323544823525605143044291854760825260957017789283713661345104018846501467784479387702617698822624928104716027939721123893346294514767248889844849328167540154303269170582172053771309642039398272490613013926861844075081891878887517314818273421178532328761970653411271291765529186615136704346403774635566903610157191890525905986317231919754516491627084862406713964210544980558247803166202198194128530254399920293055136766831452485968614871007404146466979746230666828375421223830787977378693081276541630989835732967326693467542367750047884518852268746876821779721750062407856834267425919989239901410614027061230051055676975875256436918544232499828942967736115885019996076847436440585293904088235525590610012788297020485925019018273655300537093904017888404185009173521067569737416499718589060011455211535452834194895890815891124688058633369755523443573550874942041156078310986399886443329382430928235085258170354339667457391502641981167305185412114831339181980510276335275179770082911639177409664509418288523673540685588931102568213579402642774326732825155580336697600635327680655625908748299541236559692770328743042763765849931854983326161003584076105627686876482109734944443321165496291861439581591330300052454028603360195566384736087685619564338520750145117561423909653862839077926343174106442825062094379011174847233581506012074572475109767451639761454559008749532409713043264804993873723207551132203558420552657310541614385570547130398991654378443051990465177686471882505036289106795973065380786961285118601157572277009970549974896843986928485678024468005649713807201355584499119098354079135445316961899954229394274280243451980299561799540281878015092482665271663283366509909556673099740436392590701739737047082005093205381970670400918497974138542964949388554981998733883565054247202037509760401554368686358663160542809422246243942319542135570298025432075353605001471205675314087574553083924615664259569854685767998646603043519858975405803668272945001098931932426843325710071114147705000077450313880130434548191987435451324513439175583529669866107185187508742824478622499704045479763199896636839258554465547900104907668662832319457481217400692535625097551544418538373255590439284787430292377802637797184507908584860889007788465330969981756807181350941732146028690180301619657944898615323274906640707288569614965771790851224401861094957712563864455916236724488732842772148673363234819830662831150337110415508141987176803447747577135558820493544641393418390534481547002270926191681535963963105233721428291579456728702092212883904596238648837923278407576038688220787657846103770071141364637598048522954184940109812217832394584358813112703302355460335582844929710403636799060181403888838353684336680060779492412820706166508004356799456390512997190698093317158379514670399023408872269761631905414617410225210319669400241458146743111549309949829334269040733276166689857149294865869051962788581498489024576018444094359022432853492267068758998829626598060982243925435893242689537265594077741172634740272734875171343914991970526328609032403005416198929420045200363675418348578017507153945202712620950759479487527942191751655056292104705768850164311642654430926324386353452290297660386546593537975615643930015116839350194505054584138703140652421771095034489977341054139431084006968694922549424602920335903717361848112686080692975027607328092995350079217074498893719809956251842580426564212240961241326985443180905173310736184209482129109951527734054967651195615949817349690817734119665278902447232654788790495339321079662997030025009366169095995232950667634921544332504434143610130056700033812154179832055023089121030798095589936648538288912877697455361527167490107397224481557512995185619171703415251385985779970188061626444074766115779338096194695932161760883555846526179060721638540278803429467952430846901080577572907654050945930005239733643828405068288000479021281302896398036439215683508662415213921083807329717846288159586004456144918120773324012643884646306942907156028231778598324615623007317856775669826646576051816035253770326519154344527902856353917669634696438041534198842941731582981854585579722715810796078449320705228568782088106904388776098785295992255290516369431828356456038399709752025571598325897627447693316693135464694924984556635667905116263833659474871566162090484565720132833103099103868458914043423436130468993892329632885046041251346883251759271401663568546343536559654239766527897594180110251629124455730891553116177039331114363297018667224663003006279512349089863324754957189066360652825262048775359248888225607517895236624963599680737433041129899363286943149759287945374952346265154718265477975301974230973301855894279212405909220378393767761440775173738465536232491749571828290927373606522738295241816056222136978858573848754324243824635371462984659915120856398893300810814695318241855060402165700816527629188116240028427046364231572977923107960142189481535745191513515306132217719665654281820470794479645867982916454540391684245379852546546714394046561944052404215784155523965963840209034765138599370696789723648335756920709096254216098039281420959502986646553308108350189254268339654641927878685223589606601766266963199536177742924504709283687329417079630389317545813250339649928048770109437128629659175198602005708954455107147716258020516111820847345504951047832216865263535716215245012363402373605008345635088811808942114639860318335694332129954308122754423994589496994005084698738040031360828559646893541536869436385428638465846172138956785582978148163931237464456167068067615055439702180018738049855373599046181816867847465946542458824830168174724715193368868089536224630276991590941117785168024007960753728407370070606152665988885132662032503444968628325950714299298489338810268216469757376996352766904383336951690988335487685640832849827416831034656080383535333514814103185823482347534504817587739456534990803312615113838250825022551741222822947408310502751876457653158896652353711902471674439659900168879755638323910225564272554374318630301439355810044455321308631898409430215012574055994641153657527843643471185077517825607663974649558286124313318547217983334373097570070839376908078825569223487185128685357268772630193989602309090851964342055095387896484714846514356829040584728902706596693697409665301522013994311723478303839490282880610449044991080965980530872091281937386758219296175094480618151329571358679324076560027256578958932730670740228239119931042838373407799115124720558782681340476306780001369796539164234829491823071504512108154594439246578864467787461174240750862245514023693251346159073546547460023849935292974208460260402918707541811509840186464357882115695887222441706828130372634276665166944286233293998636269903759908376427505326654388323811808666846253086173061392392765249469503593481061516317060951544855103276837968894718880914898032303672586672718066583467317033948649089700422777206135807490111481989825945327522558426867756746255240864146856104728126088278198697574684897631538786092959752088925853667157382853739013537528224744033621838483409686356599039884530694438020690013823775248147410674767532540539813017775788484488820562498567046260576013785340741503516003845173499832441113247687183517746954839163738401389823922433660450453742911682080154523775704079147288900082145464493704200930733271064753369017743609219258171919917144229371570355973055706544024095537995891637077545974992083258873404226598217376156332709720537537400340833327981642784676971699079351293894595622758290775669182785087786680714172275034934710532933227762845666329165181909018189634140336939763812339744445553328527147262931967066693615420965952489955548060375371722040431095549185438315655003490070845893924235922869493093731546345022647098055710996398005077010326152450426307773335176968323273642604498580449969551138934586720929167502810022660404582108800953650355607920644361704794508499258773780731552089114094996907629657345343676364070856720251384837399936826353656832101438123640554892794469195921652537604734776428218979239646808615367248849370512787446373835841872340419390280210945686710074939264728793793509902088183903220051630310097782718473306518416096755419229525141591952911221632250529736561582662923831520864004783275596832180777131533439243968150921590085762950787630661697314968052611628432774680962061863106318650030594084592289402519540700329975889917017728415930406730025219156953764860209735418309722098682353823958542210775051680495349597979608044676137356081826127088672857592741946607898690674031915415000812308468527151005597352335899981181025191531602117099903319083360889521769147624066824065931338808236779123716714328876013284532247408331994365697953954883394927373306867190882198517814954798174538639396230301113380229302632036607290728903465236280691622853089544763054995465593759316238055821556005314696584207014658870904649281440378208644244618547731406368057835937815846732049411661922160748451377022538644944730693888088169717614921883430198074239161775535096731251338271675505271925508419156297897399890814247574843571574431313229210658015227951650624011799888462356206049033476649235104773110317285261608587273695035754179356118587945738325855047290359323223621218423583789639552649728802331396362290322187276905528914754307652202352718243896948708964143198341273657310393583305723566704222462522332288615507395515544422102943567773024163654498825774912677161075508224240277717782210514087503194314405726465318658033722242013634944348970012938621071237706045819074929163134365655519149468614020259921234940528627494816924146437223898464567351725543480357919709432550672626570572456187492509834062811951992227965282166504773702399085432247862335860943994633530191365710369978593893840696818250726507714070964332687175694192169108507227551714829443542109300122043678325158763452946519491283212247687249361400686519142172682381853543533700692597988675631721766809096164806830554458567901161668758396484592051761464253335414606645289730691077421518069264488058269220130602280381558987947287278110024856896578430237997810353467569189966463961650721245213512502698040324280244298320367168248032611809889604177673867575342680558061446594745735009211475339995488920981000496980457840883308072499222879684349059815597594978301561048636809814306539562406419952581476260406343914880582642518787932847431421664897310832617509789789715667052723411356399618439573903978189602666946194003590186682797653035639320543447663891759719523918661618059756507855741525550148583857048241000588222825906152557734010794498219711162477932591117580697024909868380050111955986600673892420915870938101170842378379216658191778144678638962681424907752879969438407190600396315366044708244195965960004779743240143261071633037591819204778411926156857599642299130537618424618122504167801818981226810862856340054563270204843091534919289673723362165063301566981025681503491094759917262663440391777830085925977226734200200540120957124541428248870523199544753228913840095949471521020628248878643546203816572979193345422200231103343905421901266019411946206119450018757623640114397956383764322131527481917802807163172538527795133525524682715286778677333169452507410684998207432547408174004258398734629501014513878289926242308849244926493903226527073891544894297220092783175978215424099155264026733514794134752450471737820059545413803787635947139193148953583300674091889049544659774391345473728061631376630161125138268053228980999900920663574585702082146401458596114105684118053008938079445926917197533101157725130167163660252174126726421717715049147109438067795654803746949525481849409718236332120221333347078075167951925128453367321152892460222960527256753444372957960066361874620104219985396398193768775679122947892920368679215672638161219165459768101429735452495711909925789696680515145779050297645078989437518143644417389159958588816624176349670042606441608683919631677491046945361382959640489688878578615457046804836836536370868026448720031594663563414317377730549966499337249157985168224057795861644406562309912273950763717285983836374554248506023839341635091063656387816479053505680745836785817403976267597013647764859174632943482897427082119502183428145185900577033704033443751450860768538124004105183682764499140076334202545263233546637066279444245507048951888844105140558247310335980826029252129079122567546669403592630054185623215639089374500282259581789825049417028557766979027776594701931153066245042605831738003647058668678504829696012730962632503688933041898334930979130580747880688867557938614258313164975171500689340986323975781310783943998978519617591618888140449200066128149985695393251621262034082271714508379434309954280307882811719394697897157422670972826095431324432351223758550389296070340304118073429024096685723630164927813397921637813238941606196375565127018978836670150798915659913597665838328900347117300795501432810985727287470144843795776205530462512418010718888316531941231445028157044122399506923103020338999787006240016599255906222312309012240655502116305291392556498167083619438883615562293217398997106282708822482120122346666159617675976380178750188691673732024992141905300366948032697409018019287283467095350217202116377140633275167392349434170208436169300877544908813649821129857463938057336005676930068862863827689396606044767491501265282061460008331763541808597615694631414387285965809011667817212882007710794914168082132166603805516051099956183594237959256790130419747796036741876509130716767733802891817305350113494115164260851229056800299981187560265187560955975503595785021229055557345916543997304996298773423180605285755605047637936144060518477623614224630138558394682992925918760190553162288532614905517927723209474598429474274873186298162045307626737576748404049781047587135840974359122893569227129810788976459972642156657312572615670027124281359954875479708422501384231534976129065563388232049821131569967957559264955125381318800768538302609210601175362458432518168828949484435040441217491623192450464018586856588575495906222610105244681428164245565191673593194344425295629550294656714467734870661051562479572361373702138908934591339923488876249356439860661212140767717225963970679798833035576818770944478438677982663922114490156858766992315097444623237531254236008534981715734154659946035436396509333103885935958943646695112437524382201312744024681242436460337110593182079277456215425249228989553465868172789493112351629546704840954602073211976728121532171145562250852849739561308552164273140641751906724670993588136361982682276257132962770222945135563467679205718428174988853583788756584412424365551481937894682937794995558115538058594929578363503685571670984859168224716458489601012015940611207917548788290944499797681877938035280524829399239030449980920996418124886303701008810673214471750405292585875309553854761121306923915393165784948220041516083705475539690489433740014532105913028440053276501851986480674972282037407944209459361791493678770033202971322850888848961577345482053416813253732444479624099792514916589463097597223449230424679149596779368534655125915794983563245098805029151634798614768904236963766607739908379876470737597410066524448549635884877033000180414785764103109143695382296631840478939737747061629894638058510665971226608665856719725779020733245951755433989202977338763876541931381275809451044295416706178379345689816692588361758976666964379404143787889849259217553972075939135485899761624112990082800188874152513475643473309064645594430161987859780251191586028175732143454223423950026939476880576167855837310354609635556435062949382540708861844390030179495412042435519066662384098762469384475448039390579228318157144946856499923361468563691238110589703178672750285794977811459740186961379177693248606437339437355091794858855423541209391761746300757066334229653993531595785363867337262454355371369910225219121634881490062639300911609152132653193066397679829537738757983324065426107903745113175373228162867127995680638665444776079949544773281738415387664521150689499530305081938752809352237565574644889165890778074128625509418075770712586229266727774905478779733865629556089501150763818622853847163686955674808289452614127761302799289816302453541433500972127164825935476363563573919637755403791310012705230407363706571098448290116164258830189825077853111277121970828380353265525354505820758671266370297330976427677925411793037543428228099934761495397644383365129559419935334174515619940733635606855973849155772341559182107793681333662225153926215034619685302049834439610170564548789172356734449813237749340197514090298691155097765763284727702431102091321958039565415654478576143671689037528679595054029903674207970219823180599534511915395630791955011248016817303939683416373787244422252695493600755180250821462796256649359842455858179809061990160104327099039644370136411196201594684312117152432657297789028818750181890780505791473132784462070472553773885190232317679889189263180494962561184648495525146863933200391240821154313226297239187569276255352650700801954109981773348443666370687306819378627188814998237688646326398574568890094661175187597949038006917912008640325517033478787075423991671861648434096403241631534533962461576657479592106923838965962448795503923925375140962826865345591464157708626913820870474538019659405462741864237383884714552351192193477405162907333674835797071845477015554236674162947965375885427696962214712508345101768649672840831932770697207685623723490639353599634780963636271743692819398011169866322515097444968253046044894029650057729342363017740711054531187071307866786167609379488058554198599275816112201091165386373928958309773983911258529318808266531509320342333928996969955174167149308796108147830858354944202853621294897062077875820559215336600804090106711306361102197799848151736935824879672695811888162664719635075196757887147134076627050029881618974179589884865503766174626457724763511150676530947098557221223275777629791200569302342433330496878536991115582645852664262064604025651351692559378775305954318501951339081645212766816243975765977569724791941498326854193033829539090041523730016524704331002136333829045855051982386435243871559212460560416188557069566389407622365250166667718303618513540547309486769692253372389309562956734715423106862801895352479368643058454118529375730708692058951506705917606126641266905355560725390985358679755854514977787147719056638883915729219263173864694759994875251882489122102243742489320881407954221019597612171014132953708199600235861537986948378615117336236117380822089048639433957043793023143523997347038684320563245737152692981230328396744737645243110121971831794359481103579576126040011991775717792480870257932803780880496269746382799202731715823492523677432905495811608576336406167807286777750651896796657366965191999758674405982219262437911957348045844627731760177631028156134627968756460431533753608177383070942355703281876367745674877305376207995535571673603499373824910351512649454522337644739799950480184193176710105693982313499441455803393344212013034036404014018919400043516683481417062707994839026180006122090949419938346199560750215359238858366205605023228721453905631640184455145178718123101496906483482109769658300306842094100851253665388098940201058290805853651141101039312764039833265491764778713658335502090301980488381109122266199102983345501487902495778864116282167577124880020557257250447863955278724156487979217564474722728983823835611911078456015252938881201551631992059993863315568232769747726116040966800364968978706887153388096683629893334068975828832976427527849782440408871111509004691170515176079912761528815216480977361738705185671868102409490581609231599371641473168304793871906897972957003257224069915604213208262713911210748442000367087911069436418048335384340509739444779632276920432857688753905372961231030453562995909855307536277077524709737648398216263910788449115099181834527407973192347222887045477310913775688665890447313061413014518980264513688621745734755436710173883159465755191089342324916858910937779166870491072591699324425712224170668720387391232173602743002316584526086235037997953924293093159679735111281665656098235675308405120227286807766096171378212907385450668169680136057183870329636593530215658451064896830987521547066003936684504938862533655152255812584408167744382167688869303954445380343419706821696500925158798207038470681489220641333955644782287125990114286596047394039289338428901566108464283845994609599971672227713711065389730733322075349271794644766008146467720286394057763349915506019738723024887659006347520271001181751921996641006864400179000511504919598088101229276430755779156431283337912603988430144884565847214138352080211847981476223169290346833940786822725481053565274716087422773980728365399469250063055767532686784952705780194854650339660122586986156105543421367754929496091168126253786807716419898068125005416636673760448476612694995305799180761473160651855529612298384287131639247225855671018526709577852175186859633967971501695532865285457532818093089183858035732183036110253367799917657355937086234040274698977866414111014783891814978165669896965554445642095361514074239142683878707439022413966132853164232419177857010836716044638976157147952788273217138469750805152095303596747080290928988829061844195996122239880932407167799186926341998199574604708557247018542485433200647617833976127997327987486216107765732348958922176930464056718630287551947668188454082723053472384605626452017143272292318317339530389547273756228757812392343056858083057111768051176604136617355158717204639717049521759915251299184893961601641576275432772949825905578475172768730467972967796134041009137650445025736428368442084623043758204636556369463813704360770993784727489750359458375021019613976063395003290258621573575170081335924728724241535860450564390259955393969491623645775382692558212054454793455711196298516121578039588570104923606922110861861376551049545810104888199819098564902290517154904325163063462760964637579605412976906478676771676271627375499880364607609736735612640775133254828268639135933714564697352917278093699462184999364535322242498619421567619897167577680573900388379520845060274226163240724061320185074838825039103326145986151068055262276939395877609310825919783287111930601963085990262158375357288222392750366282007954934054405366574691322281166341414836604973629915068796352089638423398005104985475882189836224894403413669821209563444918514207971708739742827979302770011400955768061207560397111337467718800807777036654018311505868186888078715997726756947036689137913058328877236478105175807122062436528651213268037379239281356366532057752163402372185064828841577960302483582680045551782150221318119620752776456296493003126155051676450414959588080180531183962913172891693474379968563503868694217683827171377755202008450929307413002828637027637810117041036746674215117220939520306523686067565344272123420905887996179795516862321471271521992928386473452871065966266800018790560859430682865394829059520423315749025717804013585092551288971043407607672821338886963358012011718402269104871245600932395907115966514395900039732653880899482212380186910315167863874660321167826520399144643271231418387484029188219999608398759248634005517315379448950759181390866341129607493618028638432498206327442807846223616343477022662113705418137451694941875128371779551786715039676307779060214201819690063723787641336998107286178033245518032738944880429654483871463397268368645576040559999550669543671523140098342739334149554220636841706024245878789452767382820108871905159707647958188449877519740751037432883423138956228305436631341301584710282460028726775320109963836818548902468900906856813536051950180210705342266581098250906000144431434311363685753948832448741413062448377586911786033341522440606243072029996323510246566981822439532897935239010671048326173628282752647971594564983287307970961118095635824675064178288659667417580800324540107101269171765174915581418977626806952757330355222949215076946386149619193068255238759350211809006599495891569509256315308335841071983721338903154120720783241777437544646050833785932953163312990632076769348771911943199324020845765125076869435772428453885116767108897550035698594485711850224686281017203332972366716660570369649365009270629247617738850465884837241286197470976404098172010285929683820343537671955440663129368449683093312172298717932199197064041298160061957863877114714267706651853392692618872378104266628797808184288755382782852387779997405951128425517901385171407084867857629882319979041928301170872273966687016316299135475027056938520870740036336953107807094531842115413500263817900319439058836992181206975831100675903803372443177113504024300373690232385664135409557361947489847156516176912394104412470941796888761832460036412197423122609865618699950576976864712160711834605874619705073239246216639836949671618040952403650758952140380038152390702728620345756761058779328677130171722568773947665010767397151100710801063602357736222963780145257491820487172686977550048954214892025618272053590462174729914539761365772534113035362218177383525332841962426284997542668845390327549064973953291745425226248082288796443872810313928792118722145145782447609632790070951814698613148999840317529570782049533188193178111536748149154264624497108256836282468061693354564419020571038724392810904876492169259659950985872412368299729052181790329933794159133160150561687605219411074707625439808704070596250330057726415931118332786978988155495179990235686368546605342438069393948566533075107886545765703927289280646776515320889378460314269551874539005763934019190779897907410239816087844045157781114715359101973606581078658390228483259306582951828875058633159176880688627394019988764916702621570757813293317344099441428808099324935920794295202047873908848718641646824410755423638221763880397186011932493340032776335297040620587081282051239801567106317366770616240068041286620235952541141780690949640464766746674560206790461787088659550303593506800007534058821258038290302807507315837434115561678888674950854212211597870827475127619999750067964152586040198723934191543265877223269795628283715161180537341441780685422612929297002281274556929514753677238067435386422827618692421048298593230840849953925788933590785415671159455549708904709272945982630717258252079504481096179668868689998932663550101437751127718606284449000486543548666243315083827920190806426375062530533265759769866170079475104343559696941160102328634714461346862989205543224010176970912793983909929942799061802661924811694297165586863832312079392943773676842705504371402170245272029796058534708195648496541062363980529537475708092097695090009288442918363719810909769906636954654834351555046578225497258915920960843784376132742622199056379076015873866324370971310314660548834166602326265437759350742316417420246913798543153309028173337838017751773130180027129085318869055542895420263200396583266975627199180091958425708500965747764383301319016391161709143492541562105178353520847712028898341220119009364471861567465798779260704679155230572378607206182409828249823272926100904302862947337600215941001991566773322781398074871813877155004472842378164131971210081861512650681739924001833471838225422660767938858075014076219721462970462342695750894788695518391786148145374841048491485166285230451102552619407036091525331145934003866129725862210296652019977961140579762428990318104906174644413449456860449184297797152699031952419394923694258517800970691853438178592932077095704853983147759052883215988921726238071082379330721136028124331732847232445255278816047655333810921374230050824334016544486260509664373573706031368355767545491852737907374415060924509012569456592437230415739517937718849464889396357649506824344792495507293425554899589214318634406337484593627345060082330945641175257632988455302957677944563904410138989995473946269097624309418319883960211780232678596021085486063129680806555641258044627273659774475838765450513326099913982260325357989776339611895834926592816915741189222911183720732383486643949560317498024943732630787648174815059726930638117010000739067446880739615721894013951471023950701153907196307489871735772599764903463373593383914731577910229100734291232593925895383177388726840052031226133641663255427759201080654806281271054532927927879198694244426061789416157575842718846964930641697620243798475087464067239819417814387572693803300803063318323150052856842948089391431930851852572726467567732648391421649322624471506160795879107358174151835441392243268901402885513389012368244398289103782723225004632116127859773162076625502166052011719125906238108912826556200720173875557039191227383580581975827454396247970293248527505270379909830138331374150673635147657922806130578606408975309504566067474510998579122649363494563024283636389213887305931764642821139768179299904031753626925126564223613463996571910992473398834275627617688659866746826049523502445590739574333044922882933107927365693171294272907669722862429152491734880596526947004137519834258373000395742204866009860296937443866071563924323666605078120642808039498814698129264684112643798040010305095826114931243810695869653141322347487166227661121857090901377629653406445197518778959615067387595560435965801533475405981110391601523607893878654846495449677361573603995366165439074125397345661866578592810566250466103498441000284322986659511438294631253790519131001306489244856756699313824577056636796891199939943977320228659645765101370473693136373342690054104886566752469152972466120709678855957319388007605104324596236707065843441909508012617901847185209004037402837149945747106957370790700203836855358394154620647908818638769217072156589056794119268952292096843531898521184459307589205267853426529556338716650584129769125199037114046162460081674155441352524637307227992549240883853803825731086003640485426752974356847632568079957787089782515779765205496347348349319247739915019302079150785279285244312343163917896336712571038396708315573135304710225953771110251089617477707988237563052884747294204964176934557444191325383550639494139856897173976424183990067598432089038506130127789527280132371821031295016161458099737412037948980113177013392002085241466222679317326450546252968034330876708653610783700004450952915022708652741388587918250615671308417028059380011127543951408521394053673638028407812581648761906528528296570272263631862690242016087136086034282218423901745672955323995554663563596638476849447710856175182165390259579142907900895023902626806309650958858301975845708313147431265534715453068223947877917757373175907227539016100162886181608662971861747257519525120659413405081217537510359061698469895629396412537373298587127120312253494993701098373218147715714089990146724657791945195194650049437841012890848917335359080512291635066681360512089592932313912014447343469177178356853602344314743499712672116648269476088245146835512017913300030660381178274824763023817459973482677299726608604760465154761672301823158279857459149179568136450989070757282404887955465651886703256013905694170712995271648694134564658981939382638382129031625507329842630548684094591886407851459880080097929167854841317888224805034140622528301883722763705929770101641293139079574324317523480193582439446136053889796424660828513693818303155132811647709209739320154525728397317404992714384815769086038721008256676609508494893753340133741387352404375290830621049662497195133673152754253590349467368069868684769364081913782511104716189358799097723099741018297875653529625748060218802141514860883032422804486137455118953706207510306986783137174657308653136738621993360241377860976549714933060415960785459056295495166467040990515547182077507220102313618812605587034690305252165009719669013414055259050944494833273763609305569170987839077241232191547549979371712530168958177704896169430488999551320832773331344456857941475720733467768835607256152080611679972222889711295414088576219683699926966031524695257146639516519284059551818326014039112189152417147722243238491872651622055119179142673864150957589397935658427343424005300157503700652299390890391084293682891955311843032313195105572359886854590506880453988768820095966947175730254879467077506817044454600586520308657176065650267742036200026602390430779628082899656988798452404293005262750268396360725518996018854119788945665626299282690969822293684291015869559765042560502623945508442432009981725900554071120773808232561685467064469640928668698578386754958541162073343916585776299415606770000580401581285268562897036106703674838470539787812338565302708310190266188881686668852112709600458663830470521342256720157028697356976262478316550887519381413322614949015156655275241329969288859583852284013200089966439871597778153897009863070990773074018764233225943232030365009748684813690684671168156519864019316961943073427513355901479904510451595460637409565358159058271739856849670746145523721680333172084402428426851390444406993049895347809701968604833164656595783861470511232011770920062257515466151685513869746993269967830501554555417473746173017665473120485022869160744771623967072449434683674302090099023454534221137191383635373101812038932360909518164191527962939334603757121708176866493574120875026180964142936888736841258952203690808833252331157607475856543969004505290482760083114530759214197498485167091003574440654948536209479402679461043451805709834547354350123679684219795129951201673362414262171991964788072462332283808697192507181288910821185225665617765903206806875185678425200689028305103575336464013247397415990744699847833520589151468500374068346812503728341443560787141614679256534177800236081355067897987220174785441980022118807993966670413332547682895325203327254522186976007209977167587679190421782204549746665214677211562682819454841220261957934602950954973758044062961883149666946881370250900499327278593240904085984848927785388341368292983003182876501366691336932306874152180822415411154209394497214609807372537749966647946241746077944758482292015769796624165433557857239741003834309312050723383164649288073790711021680658348828297458224691691011724346960179810219386857362642269393544406468262139027586529306591929428845132126661669343373123376272262215582244319534840104210059701786183489293381771100372247128591180591464319291107805372169153843574345818305028027783396210592237091457395360847902539230273676680887710790738670697922419710309576417918696372871430770532347205881917821401039316246747932647193572110328267186367242114583833527530067697183969770640393410284045492819695341490992018516005027976614380157738779638878611239295860765179490073640044449762018395651736777050364539126766323625799764627648271882464907728457259768139677234918205426143203208647448478950263577978663789003782068453587876890230028761042591158718604321743202518166070652006809832049221028152658513962366095630198144376957405312078198383437360774345048766332114035601144894898945630940987539095853215092086296080308732151317506056527996279696126611419661660464902880064312037990082991475066225173015064833114199121388526540942553137534993390245012210753271265966596661030005394184799043483046379155441218086773350149114030834762017921177820468974854582978295347066467022719837790158674834227036554721696550032508982090676249962943201884776160421149142542220247523851718213256753559123268847355175379489356180222570065444798542884134726320740911669500116074678374382665332484112016815790149236499682624259995625648673197125053960572055395667624440919606703199730563213941341680862663998505456994683870832737821138021354441037172712619111894871011186763117538468263069289717647681752844993737062746605470901213370970499255530951914644107370187966200880931631584211874323991815262397124917140396317825687893544426112932842822526148725629055587145811258168296703620157567818969453108456215855058956472934062095641553056509587311895045528918760689948365611996564276262576385485244083072791046513699824472946441896501861122627626515215986910606763769486660751358456314755741883136504998558921154184726993524177252698734207132691065460023961371470145503376581036395718125220749036256404243351065411028493987293555713061407786967728196482828371377394036690838581878333850315905300679228324654450155914363816048653965167010779710987531645950735415005151686023446044482875211376682766537916187962155124435215185236153990807523446991865384654660121672163089177524860955286554013341550686688142467224655662301577921636489333631249532260100490913863585474752782722154366046137881460830018588972210039291668548474524522331107469475767957937135661090359685868257516007497615619765982646570540625197882188112416515022539475566607095037805483744342220760328857324248808776732158076515213222860080028202947108365149111796581241638714234317926716822675992439218268124222444425548970311455769958009794415090386840187730557852765159550877265035233392861763546650861303511243943057008414407504226894290268539778100418271029564343387735001243788201057042977027236270597476924845159659197923037001211207606452911520544659004608069085740393200559578239492476566744512699955949035794778749563706424366236200674953543631566053914861091682706163450273858969594642986986405352590275603163010856822103588451649498475781248732410459622796846712568005618113164687611045649808326582860462637665931830342904384149751932890532279014761880256767078080710241705528205406214320483038225916476833606087952119953389594204054378627955518022079045506414542279477197699356276878784878087095984711239800218137530021660170585777913547203316365055122339459276122242340027088088783354817131878418842269262254640853732453128018678431520662938019187349699749017215795308872181153661027274578687625420453461400320414878795954526189670972882102862427418637006828010366649602763016564333489961602511395901260689333398754418255298194906049872422747653600385161521835125884265552181655738937049768566028703011470975632200820034102053202734482338093857440561576807846726458947809244812022396630069383182912526258936098780858316034710509134034549595189734438218398142982157679432831433073621965498148902070463583435175269501577086220116478069646616090310563432394329942282673423783571514818647529905413385374197563062595155251503345879838812955734563293024386829890518713104699538865209464386256766944411021255839317747233127197622446364014590132825545105846264000736691870488668299407976497123472165864380509066199192016648984624849743800494945897382036451989304942785059158743731962385704685602418652988764102985210072582173337862181680231449712453183702067403772282599145157482355922119740267245346246596914487274498389251814249431758679725520997605970330748504065427605216386145492964131097492738835840253604367538254142807887443014770795877290558123755100087965734272822052902176106007891888094502028070528251828704452164310081152174814981307651057214182871484196108244877952390590497828086106456036838289629597187862533997217807495372945522834123248546450461908332592779637930254904514738527333544077069385059959333562558380978548946883395356261309834549158440762883449049047051810256214799164614027846522560283925422533455061625276937811265473458700942189249483140423717427864631211997929790724043129844037711065992280396299970093226586122356136587569691105685251624627342592643697254698440844795513113125606007736317707575221842850666374247016878146577862997954483834154790893447192156832568092169242372136024994774409054562487165946609052113435806809884928968032185183641309696353867271937207310531566209526255333250392196504439658277301643558548007739963232595139571413703190771595982000893898100227415357398934455641410143535778962230356375394328512793874090235060640402430292928916333490822528987436392130963246596446281598600775541959919678812979391693107559633140375688711472404197727702909019223848855549176265743944372238356408699981756501744978872310100664614019979686549607687238549825032285722046517709658588838109430930211256489153774484156547321420085204333069312092124331447399295091382170164528139476084371061684053746816188396607696658293841651365952167659266339599612654999935904291422921118142296983390321418797328490149368914522912300990656885813345684239081188721036795144593075132007832074122227570507535939757609979890640754962916834644152817435029146578622286246080135039543213481502008278607011774936271780365367695003172303331303033747914896313711582273901936337851877232861956912852937858522982633560753395321442574151124039911986582170585670239063521558434326335538822393390146482826045024324880861581281104877820945878551768921452875834092291265400746819409134203129005395226262169699543329975527540161485959891732538526906147266403276320227987483712676418147328401259404663440854835589151499555120152208110513613451820535253729173921682039486728185555741851919680980446567624337603280035742405110014636692354225084377643183443681281318776011350914292950766268209963787316637465906054962374755987868090240180764495563398378785638527071375983193456398881203484614311930290263754688136474127816199976625763157898342991103274029402767373826379840791195130497146879854608089976558226554351232610683420091564089858131969666260189976146880364924801795554675948182758495944567545516037537394589566781396816486132485898641160657022124039332585112957807687740751217826536006729132961275707751818313247796630864445045336392345570867685548638853757495809658130275502381513562397995473052978026797085210430171106089054989894292747089658916718666375940246787677355360150000534322524824421213843483251716068446779459100180266849257099283661462980280619267575196379987926504765690502694241314199502234371038481277540278448331920789690458038714208148972912137722342978370140337306936100048089708457410916466426048477203127130323890307004242391753414995783561209266787518225948672492323206081519124927041496913673466996124538523593994991508849545170989837624634311225860464311582224197690263789424267894472592068668196620668636743969581917732894942927898190777740534150081711885837986002317709569121117585170229479990258215510244197110385197958154628158334760450276644998844229978533337537957049837283559136337048846027484890146399553429310594554042158603703045492282647485783836627256980234451891799270669614887526839093976610772021501979180402848852889187258995379762610303236641006791928903192176257724390272053471544722808077790675368040605602094667450709508794629775946833001879076852363706559410931968667194843397618852583524066973591974043820045687808015584089657638470333223079769640921184458853157271415175898938688795347990200313251957843395475115740155753153214403134151511856104489411723799409611326822741675345060293563490342132702635613979668417957856733376126144092818318735595335322221045625012136240382563717973210647433708934294242350337242620549842429585189463418036229698414256504469347377586720985792409521553709352838487593921899887550678747171954953962155520838900392720988701932630482466238379196135111455279368126120585925286900955591043783845437795448302913282756884631593124169819616986859774081253067680900113079760792383955835907238949572948573324800501821600337649652363341690726469782180306066007440619776956023133720441003189389082302309623085032389231103674230936006345042709650358887979593702379267002634169111099359066622505224804369589151990534763485312080763709117812100275475054941827835429097299396474686021576805313714440693318577034103073489504593709666568115217943790745038890728183983161393303956552160059620618692643698420887587255185617163608799556057499282693303327050226970468193400144824220563547394202381489591866868721041340016734813731380479103085413399635309556836596053170321819790052907347892177247272396374132108410591929731192183613512059489949933330708075391446260005123360424487958244026421377747038066394663853036393675467795453320734873256760854502128497276367046637736380381881251873189854789421912231187507761994278137277224717780786162928625181202436218254025512092117416009193254153963903537408737500400478557091104717961949132600720266180126831509036152459971437314327176660093063325842832234869369344256438146882104645143664168566241584910522500409564450290063122116191952844749835331979556093581732629998999154165396301703795992141475609673291149969969138133262064491550071404013148278296154487455381512449685453672066313628348525074644790731257643458751252943112189967469411113370917914539758907346635988493023456967925147898573093141553786830700978347790796052337914044668462224146219431731836839378365073645438499103015668167723830786234833170158599959448088111178739176218930257602310569144896604792622393441167672559205135905006764539692974108900090966417456620959762272076053841341143502912656567345660215996611778845814956641520908073323567168355365754370069115582507560357163224938518804019604377002266253483089992841631525801306653456477614299619269728598406742678873319158392097188747487091191104420791492221854207692267737719010644491447690694059542388173148255394992003024705785866515103891787828666165642094714945086422363766713479102660902419670475005900584395059602325854572374592000083253743281154146363088465890731933206950352323969529498422107165462831981923766886008133473212862745542619265053833685687364485299098266790946656717159353676309841388088522907731291439964606689294826369990308616799880897043113788480749328866000264156439718409204750033561176331385397535031686785433744671675350290265898982767969923504342958862479512291414857369407819640729999131320384254411561890854949549548856008944751526176375759303980247212505198986178839649829250890117898906726300189148532581703714627673792117154835936387795557649205611049875778942439865290887779025387085781906488304590972982417649794409556486600438181261393273589387955166107151719807438187297953752602048684711886988589536992874486525983823953577104673567541283616244989907265362327905811709369611978238575713423331859735176100938689122290927708884860177347935227617739116605395509531935651536434381566735655073468433807825837548977301908905323612511639879583181655190424141488200287074860880875972106376140987648879053056282592456526952739476840615655984267317371326128937463472431990773405981976376540718788434807273694041264850616804837137005261228266813158567541039046980413081204243621416626619335580955989498732892735825714727718187347021696165428595607693054575746488790932430114627166032325919000244914115413848428755294218447440707283376570583821650710523291572307208416708158300314516129286672419673898559559956737896284431812342148365224895155711464058218673341297679589429299468989445706910140474693748376918135570345887874007707353013181881596583398583516052074938597991970774183290977740529850083097615592393081420413816502852851719459740418907437882857832500700945583967887728051085899104687925582735865864864810727006551131845842022522642288387681331260514348240734707857240398969664853873965159250719196688161070473374598953612154032296025867001486339273378871724452164987606192590104037248536787668001513684012766751192696647332291827549156985830644254502733073474754388602547046051837397872497923875011472757286555168867066052899887969529794170625297905896822391123102075758010661341798894173315679044917481528304900169736657998138584895143689520203920898284383192960397207403995834770157157342460973825232001801728015266896605977164249919586977440119107140102163079269269067582210708638800913241918026322974025617270559413707486120839411450818995896706307806710450854463437388727434589904461348595539844764876453083562588791325148703336787685911910489949504276977776569384300717522537327099111674583306712460479567931563388000590142072033523278031712766368192993629635153545150753686051341287088071466722847327185205662692172327961649039878552241849645379253614841788065326045895877409557541156617624228179892178000226801214550778066718926320426238370978542302257875604726571573078234870257184407532911742935554320029322868903673633824615562782836967162288689894445107925411336014861314899439639011251758050244462913478744425318703252685938962455130918128779516394757416025344332333489345758957997637710926031294036105212487979777775446510981050328806536142890751553844710642396449732396888317541899348161149403492916592535697239886487096503264912947236590228388023795590022345214226836684597864457000966485828334991577911332147222710073395190675125866152294015862591035727069583635096276145737629679859297056085585676043262853761297669575657983698877336020822797508117825432739690225723192195306689313504757439532718872471779274762701968663865124651183976488503322502291967004624671536373611555940439730727003384837044449063937383683784952677548370142514339447906336276897589130861424118811822977702947253053000850031567003046637059906875130578524718024261588250528598395453217367887913525354465892584351828442566907015562146340174231965938313898817031430353666450878151348102242181705981904952546690043911570636121179068416652895921602509619673741472505414898799551971685320202224325642091874725453439781321618679384977024070997999073320957599850750092621943083106566305802414490947098892642943157972334951769327395915592953889866090675261529730933688117769317556053577098047638362684235026742388016326522159570361797487984089076079245411870807327662068339167655665194479995865630304797633547541476816864047331689089504556179942318245704117831589104695326895634812331403077974312165384350385278995092103013571194310838888256554330585039508419353627595627047028343172168177926244163449623349251900659991648013630184693324614417467303424694638653502486023743366691025428509196218178839794569203342441973164512809636909678296839995245683878947442270729800564968878397733933967851877135349611758177540707151936962912596527450143345137684484956237907637500525004613366494867852000312828762365711020317237682065049630672794720648149399921098779026758455717817468563000226261264100220673607933340167652482359018195751008478808445351454861530183691777693113248131534182893549334531729939059753404943270917664679872725643167261082503425672363305666896524202910436947948607183767686002432778790228659599425618976825149864108720558501772049129111943123340682967651543315921667249742363240993571781287077130794311175556915581920452404451850252549755014122206521714975562284130077001872327985273171754873173080177504224904542736695050300225930851883977610188801348329991233220892256657968138195305910652800043416748946390977695211955438571612981146985861729452471482154590809086104638743200769104507343778095963692794463869321785594720662788728185158471114799980507967057388439585067256240996770408638908568701693007173970994765506272096822811284200851753147027159361713455985358783910909774498321428619765519103021514487418834969785129305955294277339410978794232686167826884407659832787753613892497897420613921237133599994577620433569531309969946367209257232894140483258702204173001226683222489183710828270957481673505679986988682528123291086726499280660164407052583875657837534347559736892382183802229009280613179661006272420385183216013158764702284356562057240198538344673272269418706281051082365504775184494998581361542475107906029074288860151543587454621713266831977668219474962550107207320182388155060538954197360231475975850374372885525867807522429135760533033087387653049883470529367958341816238346468732692395681239531158038225875855099527423446822648989853246258379443666888447060199867035834348440730463697694102798915758145436748152397469340192995914494739051515751103159578703054364834269346029955624902106386310239637535419366867281492437665092006129637145695548889916955493373729011561750694909890772665654399160664298033504003075410812314507712665557884161563792344805694404563762685944829376433402618535362944832548067461431988268013520194047397429510655767735214104931549147027111634413165578069445249102000577174888501606569793908000156638059820985806726475351087279000889905912578057739049145985215498356479857316038255338326506139696780415533593121474513736102194811312413974908600422995751411209812143916592820095078258950565607879651562274345138238789331761090888177656129767820675272957385376457198474239300037378099043029797123345340782894173354128230853649240372792711339737951161629045707725395698248575366759810188644090213180235061723695334392685912682156793826870958752783832200505591707935352293288638256830358767308024310635182127016459178979224627416498986878914173607510838213065536722321180051742269295815216286038529875668739725044915660817976885026255202662088205711499002878972801829565823739333011017407887943020359064867322359439921127712544555282190319725342526574810078775383279570549111980486707809819605007340509926938152196628253853621691184953536319404195786627616886670531648843242350242916137828630048674478593043850067159562445108883423616113090886737272065083590106789965080746648848887969062974540869772643211809770463339452748783359545879767194228037924305903554624267024145406035241634311898274157171848784277218260905800075811635887784856908887579867943680274295270379384928031817713982201633870139643275992875969626271143400912311845807473830258550478490898586789308699465353216468301967658373907431882373602418070718436140285126910583315101682096191159514179061394470446503687192434594405903803594899995069544158172654311213807214617303352596283336955545994232694985466835924588010071068159694395418755940920715883556306051319026796841713477021851497934485792083082466638981117928540201551309396600484856381540015686160311945651471513234578517534324998334124234584423292534074216262390980345052142608670237569473243753017001291803772289894363369654955132242293376741178098582637891417434362945538499429873673539603509746987542503048875180901166693841879213775067155940756654648900915235365667078191099225847156178440665566588456346353743080038448424233458232711576580857673817564562652163496683258080540956911518003886809057762136997915380792562931407663300799560388842690994093566803591608598310720558880830485082044240746139529232135727581966986471877399882185963818117579445757537168976491704593278635285095668290607118323296181373681108818661525238460246742227345558693199025479887421503045027890650766795471977602689196207071111159763503735225071849009851784405465685666913360038742481522312205355510896871960120021484226687043526199591865904058604537641975323572118366994237119593353580274863794921703863995934087072248704261267596247494434974398015210266608539417453290969214236755571648410878922737015652083638212956821717850776950083318690710568779787878766031573028065345163962400778312484207191512134341839019396727921279587285044678443942293425126985500778190168043666316592294910073165548895395198108305643146992709909171677501286287798646722101317880858370905595304367834319165453524299295600176898494919636941309878673936223258229035040993375114188045999066019654163868810440869125696183920147685364401892100309243434197377101544979067628759475350684098941089122474929950919965380844265600634963230093340715814632334996498806454920498551100350622092669480426497242126972092686415735305469295018170759553401099606619631924735678920117360053582622632948685824641382452812864359812811027164363504618917125098872255405148121512111103327534747554850136712343772956443091209243744288074243745657572998052673882105919454156147276444092313862411485164292219164653355687017216947572948481735812359687034953593624363350731591824451442589275645449607198040728362925701546777369102832277011216376142309840349189044183894686791296437348345071059562025231898909157068449596184356786759133564334108129676634658809081610022855463653826665529161207583377900172753747538055307534984423850400790604472023798450799262884660662884884971827259742260252585170025683240352997144235969103761021937762596633937248463792913526321217906797072396600435550170967245718721892203096025075735922227015393497694892534960002181105238956052568939629365063208512403588575037460909325673071684406189156703625782798409825479795193074027690597702553421985912899525792558340533917283077482559190588076124775710874439481028425566557682130766464907722555227444596399716608653854438712433478911561378110616610560719274937844042999903687371978573504763383541977435018048417802261431139594775630166224328560193692063487939718902274829507217395326819755159498949645356673995284075332738633519424371548949926729002710594294844347470737089459799467138491982692037933650640933291432664200604155946073570340388681597918338002558170899138404825424518914515749484249214018476858790348936304693017868518357965111861314228822836173467265642130782241668243580802658881646405167295997086183854627022095087904163233339446504735349243997128737071017867304722430409100129648248474668593406296186528494901948315064287322171827396586295554633543967512693585616400989667859907022905243512617764181288851060063287112684898303303544822219731994912761336397887206978664402986706725621292504872094381656115092459252084907177560833614842551073798106972843819584511503823933001447822430780660713199477611494252356829296766979293177939249477307450874392755380862773999347863239261321960466605241530641884014581196741829864616367270557931361096776785602162415365931159816991014221206280961253547408642277802931751873039591738989724611954538685626516392125500962525835760553857387557975495525573773121221340735684560129128790395886434406186747617652773738958448823045592127775605188717791342249206503660429492506987201364398335324677714076734607406308495518431350456979278098825874086985989512860332287517094883637263230126849377190731816522105189017199257751537599625970616336107458143582866243039611916910831125572223023497218913458812304746247351373065349104684620285664396175939811294098825948344961386819702536999326889964227182493243383786648051216209390905060916828633472594372136663508604645202078553958641139860920346515296491896274051115499558690859910335528484795889143280951143165929302736928207264468449488589463388433655746352841794160904592181075058926926542999040401683816647035586330273113454967464739006489681278312016475506459799073987173185119362040871983201413322272346700006781403320103478015783891068883809595910556638551261645718097681132152531601176606418117982209399417177234686199593147291966604236441811256273103874259174431679545469167376625485026568959640992763939004609825266561063522636084428085246015779398366070066959697743063819980289815741323381146501045441470528547155988018539731932429512137255741846766237393317670343438660225131909991786871547275935650504343643475410714990715572062404911142017837569284132425588168692894201415206391349304037513706285816924825180923230592609734583533306463777237338584706041483875938317971642840960498540092286952248276050772631854516106818959071922370478241023742266080937287352425293639124579025622285759531678263730358047882910640601727442878536279540335418336547720328440424333011571486394436805175714161662197020666533030968573995080702894879401921899150900197282365400364775946164259008117808371094508421296997245627973532471647166039471331397117015045710058584938308192980502058996581547755836180717626342802222676119656895518465619530084933096391849842205791500516688158593834231426189918699617902285982318799856951108865358834925900733217824415854094044156157856201139700855587279836456825080987514648017249690421537590929037306109648264499486149774842424313419958629116976292791363298734275050610350753576849980918114528821384131758447232095930342225838163276734754506932623831425863004300382118444020641225119969510589158825157443521464060124237330934009575597460931064513989345640105707420411211474847767699919157842699314685057432700336620958322639895144823850608307841515391180004979634768680231954565356249499332628612159192412494425983220951553356389495748078277546212142827686090414153996750129237413378866795999449045391843299474430352110175156520442874600087410581725682769153642915384407856674173824142686560468465045905649782043273365225342835436914074977787343451559681280026703193805730520669988759654723021126255095844994659444770292509065980225871919177619896040858178569795607059663994088610755375442322438460197069411204547509538163565804251529686131061228863496227626143562634794069039150346299233085299011635543826346384904045163552743859273284927283658030703800892598568198055738983481952978240366383451767321801939539279577191229060873133109163582190193030158592692876608647571681169073729070031945907566568317746822449579677772919397072048665449484028106882195146367908939169893866552015681818913257984733249339240086993288111470332550593565421612723104155129699066297492332799004284516307005605507954395179546598776080901410985542942135260972213739639802102910190087083195125878272390827213799708086475189633856394391463050427693568230392027961875903980223885321359594508556963535911207094612846335241431133698808860343129562090023435507771355776922862476971649080330291230123798158073291990626631723391892206089692681435411180778327295696260818383049896595930337853644363403272547221994138574541152246212691780179277296011478810998059476735657845850220941351477305844829001506657601811253514252135522984559910953507882628681259601960527502390085743919773600425106990593769030692907036538533026057723518976630960924158230856077141832756417189780854633715688587706483719153487925931831689367782500687507432306950863297111475347056183393751075806948060748139004622164106806389850247370260735240333452001081315298181210437770066474054531246012040374354881416416168821926171215398097380223337154040004667215673156264050186072599982543397493619374431048031097277956055765885637511125778248351037871854168385491484412631601679004475930188300514347608290850719644104870150467118707477812930555756311240655180227515985278167603648923824115379534359442753366661189204704655307792491179279977457775369292216369083922557485119294547852267349648013724549792452801837499291988461085023132571813839708675341497729116498501760546073624192213243089043621766627038594680182880681475593166771369959660393623164628872640088388411746783750597999460507278115377948999902885592847222506426564698142792632352760084069964400375004836221279515533028228883769005796851337165965813472556446615108718294406678927250093999365135635154493292788315596390477663303210881230249598235376508399721138979528355774558177843479204760129441781313659479640926163744341703584884055025582803681581304941749289192433686363761392705363893277260279708536886585801816193908365903916348750255013356041965004381899206677497410212223899567766923848724041323404876614716299210031837171905793641168778202786714653967496652202860055666283119982501382496357477100001148127946755834212820175263495323440110304419112671868982940486479548273671323359316440518804853373865052777047489494849730759696882611506545202900035364818867884856522877881557348775159481465950946581224405804550564579631406885968555778048503028467046527543879964315174208441640238449476561049470212651364685775635465201670027043595109870564378841429209889786919880875570325722295096234455657484345031214584426971469206195467581892143715608596250426597708548013961226429609622018860871223209015113312908092461338647133589032489152840114880536408861849040708855044814370117408449774901853004168083436738115108948070160367380466074761101837845138670967115015209588056089077605551116912183860684149640184264532594383891999462563132096970922167383705650543530849437689878083156758732174102680407603088068307964947687644682274142281161096987947729679533823834974102432689039960640546154965931279608798256994163268509831256473622705492222357670373758380898130631548005532220231080676517453746072348319517710227394717653474827524799520909056476886204522731269658209456598549136497640510826674043976321837333068653239772900137967004545996109926383925745786408007214555772911738170466756936780670614352013481838737134900680347410778685354701436493721427910998794081672093031541140454830470017117969649560319555225398113917672445896596308142820861252062132035827961851792905312346304309176434527119961660679089374734998125986309936887833289584324286148785552239323207684282445949112828578281889045894249573591214624419528499544705261003596944959381292502400789993001537139496255680617600721347268997535536153251778794803511114949727842522342361446407459321588387111004867006396225766296577474816097604651939718409292128223216371903485066222852646694496260765843642677899909676252175617657628110005263779446042356782289948382555277443086092536201113744908686783030490321939233969302257945342057786975067670464313824645145508032578902989214421678880946790214283439785448988925941900128786663351432634788089217040104108654412940727512219885811513472361243670092235084883947482801756087053812585027275630631870785669892813107518809422269187123200546951390037955016354500213989990689197266566136822030438844987082088041671118060052189917744593469788744765905842652709534406557399771111000806706692508901655300508505699814883303765445070228919697632105591694977880034767947762116099235187137391140240230932363978363056464974355626190261153024506765562369391618933728465881879900640824978826629440179790144743910598264719470087600370166510496608575285941806361683728133695168198908083603434496281565638204481388845205734302752090515426512693605739395835803884723538984629939060869106205963652105612397667908695435281507274012773711402236788858293952241618884185933429571751298469470721035761036199697927857052672276711779310672909169303646690660143169397128014754270533239381581596310078118387100794829987045175407163570108276114786772037784011879662435911239878002445211203002502072369464374475696313418101915703073414772590787901439419552618876039368734553439776566000637357169721633716859368134774318819866540714435995790798568325092609386390965065996978366498605816708193012482983584760701205926409769015844556799682637991083423322022827839999386548589584768292461809446172508366649572276489732991454847537540772394658406360876325674753504363551548184264448542128743292535721466705879830650238973104295039691956805682228891833067553024837041516763907606066352123529679027560545897136732552960222739978985930078733660422746617553526752505190101219355862454988125219908411192237139191767490488525481026992384964930426283259756134533886169210306295168187085274368540811409953316007657338764306910133410495724581287676014236891829268402973487122332379923739633688881378568500438745919896570379249754430292754879916997712845399905419950491691012392327104664304495434898980623904075651304090383906800273995621985800713243988466058891187995880340774238084453298988309772296773358032730618748503365699702996211677322861599056763334233493245990666454685817037554122562536620432994464893507173218393667905364060390044339225867650296422061350274864954671575490941149464029424968144805707239968947566915545101605858128347008192396908472446162974521884716540288460021049159316312445248216997003985668226974692161290119108685091047808213476437058278983907550546097995091779924640144175315439178507003203203541671343203179660766998327349924293180659464526454653282454949106217683312438012577851721442009337069669746201564051554715953423363256597644604891128055764271982460021027862747989456308918110340277198895805093716585467211214249861121676482708547435441797267107470932715050641695388337565956578282364505326132497879543250677492740704144686308175311460100109948147803191608674316153912225494995404038124346197260403457307549013181252673738059814483320564265988271037002070251572742065435474464869931064414088801122492978546040765080370950868045412473828727328142088581724339003381734144126599695459576071324520033832959686597605152900659188962084860596700246251225669198666611215520898375107572358698408923184438089115134436990129881884579707097678240471837403927703760211570252461492041470911822461716296146791644683091767808813372144836042454705596576421490064562052309693591476294617730896130563325767577374637989040186291384939538760154322947605513205861516853326305030697913654931136251008545449654108249963632436356562990939944314665106931778500545965968417215542810625371345000446248908612993244894042052478469451247402548980010350687615089291413529170681240879291104238944516423911580519258837507296142035389375263394240844846041239871808857255540417335290229644058048794860654090927957394377920745630024025118149943712620305035615202006030136850847282774653435317208249784036983468182671955906193777465826160465491710318885881594141314989828363852998169933383216788506517059403233543600216511513518837442125766877970335273925719892471631489996555704337493280526675846062048112945140347833112487520695466642189021769537206733061691227671340172299573027186656786775550830533306900844474476149406039644025596573592614856308795115564829112425986103524288240924106216097232170176422829195768739917794231025347011418252384672222935833204415057749223115401833409722470064842544936046776973062086745510221248425101077130310701814420041970782171114597104187784270931188291733335428724235632359072036304874216980166998935572105322842603686072849698641973486453357598361023790890366130821706986220080081206057184876931066979689731750574799617623730926330428034557912645782221503883757040080391354854643787479789990440295543561874909328286861349684162196973557383615632080180059766126792798447681820196570246551830723346620447425121791723251774051863981099807932432845662526235599798916044658458999086933746237064522642770228087974495443458832498349181592442452458257278224014645437911852686093071639066566047625048888560626207493148743244399707053137677262895359589168291679895699678186923310986428870062951024044871372027929042894210661011940262115490768663321068018459074240180520638537698641834865467991731251351140081857488173484119921684829075738829474158947445536661341296820028266827847965747190139000099664083326657322398178059311840179789761275817952159403557171500183412914902382486944887284778464907989800652465556205397578358626859462302755805603637572464460922733070596583850421580904747153931340199406555961172392160344358884230290414942683783181899674765187525606189646026762282346239155399723607782571395792284637796825000288440666518077057507889989261506233134598874025916095806500283599769162722122435756054877152916574908806500871211825615401116344599426550769991348341965418176725990863575814372626109105170507078125125737231883154551158894920790912158205992055291231727973318045951991181270495129363059711786482456791226128917638710593299539872193005964796168827620878111415425119743918494305985176803566158666658451907331367166656264620619827941204128597292174904598465572452141317016646857302271638790966133088737649287025180391495002708650044039840232724200307651873750309943386860606875076729811849751764238925108215825899936227563390393943100027694645068657674734885253195352217782438658628590145825526967287850788274870234639863853877920829580815924416489741530194952694658308689898446376247848701163861670054699953449105926951527582627330823862264020614824033030415816851563782974633533562041620436579605607031067861460046906127906090020739276574345489756326915597278506907552544247170570338907821414132241794796716719304849368224126434347261480515517789885418867453314964245449521901853650527005248918205420921294253057542574369380326630105909964773989650036891016924533646603134274166908773666876106455084307204751033975317208173287498423345610379179999455606084173809627782862095172580194111897441666302299737744531929713793006957968213770017865399914832100845402003582885928379785819203307301079163295467245365871178150842888239047694592499254926662204563136227284287784744491827815455189796310722405020740172320481705257567492214828013451129984199906914801239849442586855826576911920620250766024520314179999129679789935396596549661783545734265487962325508572791754695621283843418204515823124547746989585221216392194318908246142926673782738642013527442474005652674650976177700475208310111635283820044101719320733986286775578687699174816816725367387923835637005445635831854329806690902809022126508696673296460752351346170633759565007125268206674461521780732461321056773823273080038246739526982425931301906609345184485230665964460211791620785520398349624278499215565309201143295217426181821875758576610261296635558426058032614009948695931732165918839660864637226778325442728553638197174691684763293513754214798611744867590861184672054186096237989019217047562001619887395976249824979963179584403583841070659651221985642840010924985856041202773832380856089317299305616686739928909687904174214946772401418374916467852811475938076480334150617995624335034317960860384054137817414502868056121610452665189596808110606652470011611504563417879380114319335298486069764516863041185222636441520372806224087449304978309046089993279877340333635078904500938209296376178300513912953314758924471633991100656955441085612658544749188627284268606894858280031522624127284589387540910441233996810907201093767921678735301925730067043888405965529009946417400207906333846452101130279978202819045507140194173441117362019911361069097290755648833667199435208071759979603517316862847287022029073813440709739345425448644747162841122658538194910440435205123604113591121112684936922862989614310471429618603199621774346142835598857637049401970728314989463273774998077814967450104427744286251079707188656273691485930663508611328360141850684375030437946415590910899794079455281957990368676141525440876883289678763687209656703218237289175758765958748279734896481078498828406013148646276720047820429644037781785372788134059738144516370651710475536776317315648822571490711039597126106892219642013503613106602791766456223412403966059492141739278554200066155825290656546436122635993130288837225470276545162908484344618836215316720339630714354009015076176779858196273762417603314857746660551554807674521151161643125549550113892863819287226696327728530827537069067958518514098907492788846627580908945785986303240187135664092880138466444241148774592661474602454006634219741460921425756800635166295621856778686046196344222639590467675634613435877871852386281008680214693803355300327772403550326044565691616771603613981238352966634099633428982931701461794021342005064862569222659279604994921265037188085073904443038495359992018703272846801585112361382215210482326361339981071847119159757488303675157220000665461882942704316816866571718099072666610528186904586677050318279367044134114259086966376680587221618485178125776949561105567836467007043030246758955667012395897055801369727907224422645251119454498141796365678213108373878447008421425913147018015683960019936138362547401127185857531008335808132775928197167589809299561831781789839721462315133877532636664168915748680511291048441688141491733154867748711928771072197484802966841036385768132824618927905927750587717495331456330846954569719736116343023092575433916804606270526473043817081277459280784011496350843797936780496421540927338424344570351335530860238928625563940870723128862945424078161714233952868976996542523804300366551614143667252619035256340890489226298905343976702580404669717723866161563654917815034737984923918716551122176919801096619255979346104912747437325940616733243628793618150758663493837333473270399041610264205732312654009810768119494865531120613962840043932184777880250838648775374765898449605924078880140746329616063412709813333310412968897142605655764392495566859541058403664182673456790763748855128963955414061991408271323876333912353953960144305655604239069309003013095556646523870039968635014749441071019934881081189454039686213211093927496962085243120823055889419182624353296758566091193035991742211322462043056615125039893739776891599988268516342692283063269260915877751365080129913974361527097489313784838751646865787629812618463019563469158950973984221561764833817925440371515797207121265578989363474309014984513412274235859310971202734142171015361020975022845324301797487541312984856113422429728940432226612763335849550669476029151339711294189262494579642498725416032125642601535798982790439455472823248814394138889334884071574568415059214137674472774892535592481058330073937682553740914643794961993568099102495738707261182681667762307929529303193070060074733962890496067472671140012804153744935789242409510536528196454852821864702961351490000406026646442487983742716908424252503571570732334213183490911550807368959998417544560404235612286711122112872639653955144365997533681355352344176811480987008716048524783645876877428822435156404087113348873646209377116051426004700337756670304497225956544054452728686075565349095748618581385435178066052990519930163586577997023725116153153006711872777161181888774993708206369988226894295713890649913349493700573361946932203885993817211377747676192026694946190125492344279071037562514804345148692262985858242442593488577801401951056594538685653943848437845620528209859141670992313437288820000960159779450869893329413292089245152648505961154482237405529881691551311803830502178384091388368012096050627848709096322474856043268587119565725878577909225266866851416099606980931444903786523628832538587945771921937661198057273838975519470303835636459399816749612511872153043395408037772913680864809920125275416654195095674912390275504352602949203942323868169716874288830585542200356642211385351295754887466015133830819415122836640340855609994588381138503135766268060053793701885895018303351064428108315664282419227648023043142414461165167968661769348352641696272428639623985803243087802577906979571059133005847891516263736134263271062343414885724906763992885264776557212522545107607925869252825177404923032870116994888775731600548208949437581908544570576161945966719249591207784755922753796698650398719151212958713991703667223475670884258273304506485079249932409768584374753851272539481934212985028064015556586042386412485743540237929278144346282826051580907457204455818951809641949440694952762145620848764661406760382653937799259703781250897995748941706929632766538513190404320104538242444768206852680598691759676497541861358139824426287533677420921458721866113677388672410309267772259655539579660594450331218882763503578618538416954594950650345482228865721443819778345712562078590223192965812647314457224434814014091042507449007689390864151351382088899716576816163002676001551631259967521863341222071606938662244046201649973304417449626160314982639954139219443766966462358560872624186497682275915177240474320094446731500958918422648354322741598777580372342263358744385339271520636234356503123493615044430012653821288055006880782070650512161595504284106605129948665079808731375355998994698246543702539394395781586082197719819160623964708833976916321010434953026465658781967018491387224204326773316749038135285602738392647402179551555033913697204294091611602619890100963852702398198719795824036293264693822197421542228033322944503083991481145058532597473111269781074696639376295297844005994310948490376302716765875998850105343870612562511653379968942466769652462878307160151032113887464668864576797231109009092800135925369329910771936147709924683175735973156367859527755647386417546550685362476586097786453770509880207246326183380712821789259412062343158216590261658768647405251634376500315855134466740814822967578042122847607407465508678478912328179084986520619092272562928255666021160189633253338548264789362611140496410281691638463782151504209527328232571958728708665379414720019286270768004752167224463025812600594612856288352159882980340669879089249131944147872183105758313654422431873201188779471540372358438476148229975210762958829904029589560544650727498647512161536371781373628227418452369055537503366495482718526639762368029129653605062501744199988689222695890838998229821295421692447061287082756761573975861507666379412302122094379387871812302058024025094033850949489271017632556764415746125318429030603490997316097773630825162178296146147091313902724855908176793438037371517595978725526184443287985732852425387380975214696751122459613044631962103309937796819895719159966552363058954459672075891549150007639261393519204631918770328023664339452043460405798573265019400136605135771688496755990950647292876343064778076179406141563442962988558476756833117872962654919464051776720914494365887942698842387236249566659327790492861252417861649498375833023457905790643669867991060957443684061389358485778913819874321542792780333316834301576183168656026971544375058613723373722794534438831697253514204573886659347376434189375724089037622417765765301259090050154088003974653162500180939736074951982587326054758719454240308491491981239666027199896742953029537573978834960774375936439667924952892667348110650251186128261094406848565724955488577715239982182109293350406682409681210593742148180114758085159776627337087597033155410201643157895602304455712361158493861032524413441705847263655883421444606838992900725410462421319441755580406034085642849616245499492907003135446401415620893249269858786483635317682628477569030997993951790787491018533677130317667431534458981972259093818995651319817574398315512562315563502997939367217437358144904660069716741374324027637192824224803157889940617765729434462587131242343850698176251115660582026738108090761922255521935802755013237928852307166737388378340669635080193059905558450107680961842889482462784995827018562136732754258829459233423471679778116473495217148638320515394853948718612289962010639597208295942702472224034436427935160006833456143547447353242847263456438960329799402720941011372311484054600277396121240509152440579167062716717889665152878225215421066021732508045273718787854764570116059037619035388013659912635310224455861141465311558267032788574353604343400792840787648904160211669705536968441837660688749959652597656074222203866234144853115716049382788311976294604155961832973317451615342125084783293147502203860766664946653459296590866902779011391562184389452864237951293918640059085514060647355329940320073227096941499094435596652129186329044991601854225155869118317811122106518411203193946624351685635538535888969181252808521052473557337827620348259343702108659876545871509013766605413935189310555460484977188610148560795718379204961791790830503613504550646463037127387942455498675113706155641105620135784945621949404890483149535297999098513939223903274345731030124736276904604911126093392121887863096045100764608243515438236791521356693995378524885296488828367414208614604533651841028465923783064482693349519753116626692805093209406370538939341533302434347380151214155784177764963448099845539716877252667653932962152349751896150418126063525152864343830449168042418923791157107281746532125669227261922181016026335503121591843473439341495929525025631430748012694728305540517039792278071982600905752113896743929999734015464631555994837484725282092645243160928315902578734933951790126106618475771705377438657581397080850627651090547765710720944190134142843308525955591368147590284741476137691122613290263542656288570287615999205166831922316658712690686724430588375965005857373641228821508867243236858980553608240599387231631336310012071005236339331600012401094227691672122296822609051645647898996509853880078922611798651918395719859909152589187890701598697420788838232486053677382511655846969271942818059606599060524275988989180920228169685122607959484679956287459173318853820939920468349595194478142864100789570568180897247157366532674912845067258000965640870157477359119450102888549915993160070205320251908661333674453119866031529996783305257099572978869208689058265585872630254136526276991279610695838725732501364888449744075514668236588522513748809965248604544513937673571154056332087116286452316374503734216014640039349360291340696480836969389836957979022132078775847370552849693657371795425794992893404762366580077797604334857737446086384624077615051834366758824484778073151670092990541673605739114611886970135367593699131390244466613247219018049531508017696879438213432406490141440539008566361347351969018287089562061063664582092617815308817926141519682194045959992278380631337720852583974307456142108543594698427326313217443500618784241318152476898775941486705136686577356344603115940344111335879930783561096137730382820376330061373012923574659279488912945880966326698441969584409860634768061586157666301268055448291454844059416281005632216366746356927020082647453706564694385032618406914153353941033188754467113688600075643642924002062645280862925311493780137445388010199179359049295527797119531338761607219247112641208876076016602446157372709328526032098271232199093261759614727559057413733242740712257133136059177860679369336321809679466835103246185481665122566371042485777849872839341924199282238908729868665004583439441098578183925278229464987159380101466556241977854757875135421188517607339349056372140001481019665091635135060960139452923525913825492371267163687020162441002147554849574913209209614335575654646876247600089020934552646083653867495352837480888609099511165682045224437664341767907664704816318790120589321884586449694402563686545315365270403026920224667680135436084489796229558025021318634505483229353840723094327396911738595125417169337362603234315864851596089714491567883697332017362021191714952698205872564138939838795535593400823968740778896825904452796077086677798058901173483640120383001865507543201211090604631026166743618254782229333279660897467618558644249969442033082765513197726905512066181499927216224051673558855514766599859487731832804610319110154132835680063141921342364816653453511382826195958793404790333336218750328242068878501992016156003397558607557249836316617907501047268172878593111813994219003733125035307203627358007354523310291853490012549970593580539230622025600065647050416482519976361377818631504863107003000822172182481474285732113749922385763436722962260396842950266565439225081469607123734225141234677478980825557633979958475140484422981082025732117627067629122352821537045898111828070910672154446113333972974208123012038004110264154930037385472997745013332442342136170962253228466497571903835757432806811328401520452758880745860887313802361530790829035077829910876165207944273387024116545415403715947292653861039947950757660770713096099301476774560258927794130188230978055616641491609666232664518226697382004822651589238271855431479280443443740494774202586511133205679068450190230595205604592492277515980181184416443184184608768224072726549043345281223183494689135942304591610533693323020226199689137741296003656678898700091945194561625743099555006286386336064270840189132318065863775763265342140084592300355215585821950268849434929342825150311729173442619351992620503811775705458995336907664696543040193350909323814347044121578610973099465057441717631447964789092030509828585074796682523859672630986560916234746511149581214503058624458703310316490967391529271036988029305607177786765777463128322791619363306717795216195493038696354304473701580531300940579257781285207748297883048503159371302700210228983409295100717577829088313349349844694124402047024002590741984087166259302441819098086237072885009572702651139338730082533785174732471686548820623465471716219953245181982135060757236232528579912823228711283858638193550220941041409953978014307057720728799074538589679887911821556801520874054847948368646560056721974610392832394061709857261576152189699524773044434058664102145806556904244195924551170116422620266378286520318444751607336822528607013846492085603373175579688718185810890953645984618497007082168355044025570705553175904919264965569149275918800704655766033566882568573269095653123938753357145101729542584661723518696509887157243830883920316654581531000443225601082078840118360207604263486685315311470776102403830276545471667595728379855470813084522371351183170911283667710347226588363636852773899937301157553427663571173136788139815491383684723593454069910377890623468433655672633611686698486305138861514805606610961429930701112004529123917552910683767112912012962751816040143690034826884233331537351248125861747540063285616772482208524724291581451798036250156931993257033218668423880940581996801224784328201470482310645013785486714127846817656058065703171954762433130491422804802955157499645034829773504952686724617584664162991770261827203120006945430282348054693564337151372489579347878351810494655955553582583577839465956964376696862682376995228229653389187253817076553710093052598042478707622122257783631938646130181319385066481833978736098887408771838244924603173368235357909621093908349616807409404918299076468960763808091097097188318243431231813918589499243099017148815722921128230331360026974706917754175890296579629452907718378322380521633519578426952034591907263928803308658144656665220698536485133961504094551847209718784609870049101449376721418851177073362691800198444439483084738486842944870402310394894091685908481356688937927997060901077140894029452457727804529321534505036731364265892746454201106660666213778458656914665244245098953093428897181038723738073018278304923217319252612693890164915378945915774291462926542996299204606491391401179979544730069467790267775232102291575425319447811711143618427957108423070247044606235251584124151699415031527644682509867810457695757800414566840531514267947852607083499324231184190329054457222098466438148417289328608020046446967989415327664832224372050611221264461211264625924968959703795900435714850346091880452933962995926981655067782061194175226601117877398391719392236560563677316694533082751739364719840187074450052337211492286829685843189172000037162003946631069882495966538823514816017391916414529941999601043136018112596094268136091412261698195801486314323316723462466068307818384815034805019611962027261663748010435756611528496036722649220793640895462521511428022348090187008004998431618452386675826392178273552036040094110676050916018874178887482802385277541982028437738540020037748993029692795090400375127250652971432619812071450604663258334612404922539400794607875354940832541676091317407586325755597522303082733468360516452065692984465149992576685074526644018081984179493713324091191371985729268793469667858845002480936929496105149120038676212002467787444891513971448385662547295237168133733716083434028315793035883840180858198463258671193280082855374016327799726310874034053639710523575574745251215788952875111231189998324966350298486463031168811915247911023748767598658068419675216202629082015198558473898484731870744988204824349947339456953043671993409812582934862751988059404502300047540908920481366091041431646549407274575591333686549620028966660627515785275183586638483124864378598657052148041643640146585804727834610394724893871607916675310658585156097696066349473138172287399446915486331900643274007074843192128352782361488365082750233093971863250674514256160440313319441548638984397588512730002414830267127241126911677113048477451861756718148199934699351247905811964773708841740216109400368718404354583744539523909764233884518983832875352410376536423269573988704560109721840373209684215926735096294313011224868841900035216788314699613411377987168459493255865739733791999252153881277565822911103742808685756364892939239092528706458277670003352073685384822590749253239743656828984644584920277245922856087497574385861636729785297000200729667348113916721432995059303665077438466244959541107223899134868262004981379938782698569416860211012553723195393020429240829469245754125549289953686964674854203004474081896107756514844080511181263922449243798132392418217323092236286885511885954210190299732116325907991751454738838012447537245161916057658160881763487915211126073388494479447879921093527356400751105734828888559034317978690266878598732003879241292848762642082268823046455190036297894689044210776630401242199144215105829463175633370801361374876014002389189326471257171701601157849892316729850116951769894085758291649404112775604487945075560274407591479833772868787234380816439785733420544619586453723879822741979852346735270636243975379368893599278423656422256622334007843816270078200370242903633277101000719885143799092501833657012650606486266125987104599727868341965830846401133450354769131386861391227776422618364114260284612956780847835298678166192450140932447174455291110459931014596917078221675976087474786996770807586115446139514853865226674394611976306150730475187912100796241995218356619309385761848467555511912702824428318679278257856514389321715882063565932826623634126712914801383305396000605563990097387660583546606130794668040476725388125873584415657617986581685298740160055264793734176921874409506227394863233714476043235341681469809229139723259480299230592569467292551556861675113397850912163938188873209386014435139247472155686670821055306223320616668475657818504734604740627499735867043571862880157391928626061702569332968362073279840091693639815185992775033458506509229675879498676059998562947783775800937172602191339546408695468838367951397892982061283111685502630342165038154460504531122842158332359629043047852347179399511001911333133934278555446169179320276303606670003285105134579879139264465793244987587922729507063281182220116950425764021086763708286765684779846596835615739484063753575242970874046248328363839444120550823312152966060410320804680650165657448668431705100284531502408737638700145150370368742667416754170451837264147965103028002468447699607360133693127867133876707150707331539957724132801337652620876674976540207059477123624085435820901923346775639949941597699060955794016058024662984018360746506926915132592721673931464831178902766688212220590942502720849629328731024055039718379868088745941171237332474879487136936099336013713598343978825131472646386446048303654143892476491556927533372735239757212716599478213614301762640846541625103194108873965719329189583680902422396657058666382133799313836965355534357233384993082401768344721708950293686192153252632490155984115483715403661171979557509362718076780593395400167384756039414868386893640427491789446030944531207385325224753109246410032237552426624908027332791493611914680002496381787714895974670344901268614985828435549784332525274963312649624643933759259008848407880357886233543959313226191499830949527158561553437514882798793660860045318170792083927285270144018825616218284051446637685561726713335584753907093406398653576523393066338484952212604933120648496439215440605615734695552256984832546040078728404519257373824057191531192072439086794469486952773248982291655726188770197607655011220679363759431433086888939628938045959396037348428372777487076860513175904902119481863958635601512453122683921943862773878455014013167321642991246631821139772035530845721610541508084490410021812275990348877009482168203413632872994943789069769190690128511373065061859776644254506260369743411644517643187305002388118688904521487703929923810228390820199697492994542266423663790274603788866956421227152083797499985825127998038713148218494308709456425169318673532810805562425652831161354152204632428371510500729240333856120201724665973737362676180745275702631863905838851506482523337520893981405846586781919253470299901059888891403825210862626427107542792478491177288616484848150001220537239273076620934631453264824389597839839846220036219055549429584624859040922498182516074677395453894044906391386565322890629644134765441657033894855875854073625650026479250959862030641262526078726873265875707030130675946141526996839818013750063878335963068441831991210564122656228555515483436276737485387861858867693605749646120759756097195369869534318383487090074670345523144537487793207309173341911526134248517795177349338279866864008813361791892677223177191187023110356075823852443973618150757230860587796655190279094588114824831163887993843227091680981355024122427107802061364536503994770226180627514611410588400972658187184641892767431045044238466916709885791505139208450572256420796001174205006233381434176040380464090124502205862941563824797553753733486160236512519072318040942854876413872030400954970012378340506056936386933218158256022872305984551150477058530713189816755562126206119763265382644320733712578046471821218314403231462209967900494398832886230883033177728608242182232368227112034865783421724297603554265992398304857943625766172085173230533764206322821485399960444280948560045172679360486488725766192308265186873786001123150595254386978810854013438732027479524943315808999648909696937800037903124293233603323680384040175553212629016671956909451326238525719115430638243920365634956691922735428501730530401017447120354004335801816684485571985468369677989867014893975296947936119187717564618594752942043419365554143082450843611534280236771641164464769689763425224666110172162364183778257907843353715743782987824778324594803428752933859768487854446704536369023474164362070570738362362936996066342632610820557399097687099358907249692567916277093029728004682218788486097326967392215594489178490312396929672150421140912527919590142741373225337231890083121847565959007220016005082409439234504407690476519324693366291125781626567461662275517478288006208276751050242973101376335701990482954373124374976182085283562290892841980240272091807918855969714715522665122492696830047776980396691641657206904839147322111798242343332723909479118151963757754282881360880124813255883584388839936960491521068446294795912530164617052120524633768319539797828158462510666205366507053126233850944076847334278447301671055972770541173050797229353482294555315860847525697740695206972537122552150699447390177037522563969307649956464810388657811363812600556305493085925077116617935493000956044238621004080099554436413819459541529540753707895411849257086176442185637790102796761195862055392055076982410987951790978533678385896222483133870239245344903040321110911507608163040862389294727251638114570194636541676645076770251698973342821066660199886635153723822901336504845318892247511146674450374374555402388815059150942759233834193835336189159274347343042704328475727736747992043714456205349748681277257708372926766131256796144730831810298712332434862876434353466217598731520912946044485051783880227193082152337284464888843345948919449693595482539376981619820534543285944085263935111311486589836623920394291218852827402653145094249467171482304160306542466363276306799332211414682642318588250877274824716383202734821128273039355083939152276028858519571481661669293161495600559491952317133781258492944026805552288073446848423951445577100689990140903466910661573070600940780055231970891962350111867869611461231493375023508098465549635307002917684075335906331831656889182672322953212641156836127822227966915497150845239719128577702916870995809119806214134664909213840237116013326426309600123794913847121536345376177308044236777425787646405610965672068691130954161706453039566595981074468084509789336728521154177566752398263034691325870908366966526323821867533591312464711433215280401445661704474956514739235163382977017216591340278641094825569762397946977568552141204840070293058197173467254858224799944085467219932483008432747170579247618925863477585533359738692152389612753797519694069008200106084373775624226220005294004323338593670812764349208553305117404950905639157186324021266333716654408677991289113678692185958245559802083824868209797216831635052050318907145983624545488927121181496399488260830835053692715955740815836341868352697965778006611117161587515503461156368773556875551716076939194118367102688439220770791122254396528211845410793789397715514260669861751873779584286408372890421306384980754972782532413561708231356030964680521315862835142771220587226286893897384429686504944813823065940091063377917622901424807401411872394570026516867447779355994289314467849045553616529938298797367985845302974402103092890073909660753303584160881624815569619326710477210884217197701775245528410639931273915706122305606555619132860590703926703553491555460782389627330141474738908083310287064681120020099900107543446330872972610185736385235274457390343908269058055603248482402704717196394389501399785033768672763926244956568385179751378062072979435160308673512613994885730041499485300625400800570767488540306714923191248919894982244086713309383560962028833621843987117531548568105884928945348369681979807355574522020048600420907056142569530307939544347547606196745905940794988990716072204052605823618427195827502911001147338958616757492742463978984022496549115449243309961137232841296053946505505091435429093501208673166912719202442560087775586655816324881118536286493628061322841618248194135268514505868816591380100824065570850088857285121800839336851888782435764943404389420136257474388892606349577318800711776619551806140092877742525831741191248335195070639089289213139392413401276526718067901446813465860737616509852320711759551625432800209502547784112401844631414306209253790538114383874522152939551241323089525653127256702530246435679018737489823283241387042505439049907264352706156068660944692448639169050764036168571759291487345581877303354092274826768689812602703763678089360063067642115463908885758128265526442071700666469705443979859569771029574302157113048269363144266817729905055180068292301063972947775862621634087825787725911550413069193350353126705115486181749113742166084078806004601278728319723303116589202151039676700125086675851345651733129425332017093930821158197703484442429779385987237249411576079425818411292218743763227481287388484153335191578232846139624396944459598936204824315207887968605877815356365253402654814894034587706757122151339050775745122472743185602935862713004440310227453910390577684631869770299682714787983150302749142369875697143591717713120140258474261663161707215998007099999530450984846171411528799923917774202630505296041132550827134710748054463148233632871712166401324155081138493318386094909631516252623610286569044357970319549429718245433361764031699145943632628526612764032280799196750783948819884029664277437726562250330605685966623931377128559207488593790981409496652387464241419774782547803596164073694769825618882060052294517713462352717169039962318361468148351831685347735676081116578132524037206466808861365440139862451767664620026796480176312568289832843141515319648781640586458247030174838388273212391740119459653449262067053878107214147571580220798031174342578366331501663851936449664088658270200382082480357952357371703470704758066353821320014061980903059077088810649705414664730738534691018176308414307400197424697576508990148509884060083722611770727186149553456024471664117702796815393660828504965033149425366230352144168907310248610958877692446687527753678009135057294958596431727915065070507369129123780558399583459085711649173119063753877463793648978595216114656109799993507840766636349695836059667486358701228584135096721024593048927175771085563066224740812402959494749355508560847369281044204691050033480852222731470637798728924618774527322565980440833995808707482465541167786129522813925648060570173280462600802375046095269901917752269470542893470378528011947962216460326152092033536821601250798370230808463926619383592241572718949991646915489063784177501393327303386768959420008790880429676986594038714700794450634589182142100647963474461468233366175337379864387636495073590879734297470980560717758341963768654917495028232523012633303954065438829478141746369578334934843005613536182223904341241382209904182737662945568418197524583120818699414590440062928103552217158320452495028712701242654842478444278882487831028102147101493837837541288515901686611095197205308989090025456561321344487194436269152242336054198199056229548934810837244660158095076116103738556381225065844698525342279819051422315642726255963738285819149971705517033220642350144901694536184783992078710855929009875795636881635731879981991112942660160880826813873410733674904550548587985705195452939325370502764718558655491894522170889111534206410195855720623667466345146633437854922728754953364248363049118293203821106442365441806515244512624142654466137441899199081515302517785451037839014234797837751488185537584178164088134916767749535989695762674281192665858752950954514990680646395224388270911108368225375633884148384129755786989072024246771365216830674639417208758596153792362397048904068199003086275090899909926341267702907538623145980497304522706934118782983541975261527560012652065632419690175171637476084052070818288360027708360623104223262868827212204208211017961713492877066678319502037122888968815634790446845420611431070847507293890498589651439394486809516558113787437737937339061846890667968617019521393640888064727006623005878051468720819434162418133296689885634389673372236385955549240945246151954105512038948622708602021506376063797058973459077290288851272824565881871065462898559420929981477230872131193557560001252138798023641557636774885763006132619431011404014329093945678538868036244645939659166198974623484345782821341833928575997235672923677118837545931249837455171034719092478322807831759868659881991510263745404947693145169312320873677513308054825319191072906388528452500231429927265400709569471588481347747262169867063018967112063484212417399017938273160111961765695221929761165600331259254618043836511885603634126109607742353585143915043481715005689717759778962773286838372597310660286087015909438103374466743320600783013293952997745326798710898944859744059877908052379249108213718739356068237559586969361680340819886470775731890041803421085106465038373582779079575323927655060928105927317402432204246759370838697582483482325633676738721419998272093070978635476599333564052631489269098441275908806580142418575339871712990192522408780162158383542341726545773180996718018616465815844082431212636536711337395998053017009717346826832335254065796911397255252755716761571043535912556603438608348472949181996697360790157166564166645672036364203791829078216054756661764232103844184199960016782222666360392615624687322178522891211977483171215614930167616264746337948323669946514690682064929265110606467671637186037386582049921403382185824228095524438048362437063263347299986238341479581206674568747967529407057518652227805741640206154435623527122068148382170741128508600818067126624577630230571892132685178249526856803835111395445956116142438135856108704548438165467162528485057433232346605825474372226764228788842291651945857229276044652814445779193122156223702260737209358716842050010462681900633443695796272968375315997542279966877236303816059928876712932017224744279703875166743230844703192280011701517732965085218940422453475698875749169236852535105182988711379370986293198576649268450263137343784076451760383801777794053902374532233267832095869594910018737983394731362583413674185974615312449623297790118110634990246616033740711556550831022745417554317217847395051556380767782473988311120463822461953251376537557100317288349156619348506768651246844045580993753915217838964680767105503397725684154015495370606236202187081477940939030161198145143377823682033588703544193699205422229496261821150534248670786728011310362763103394500996198649435326214493402756900175019641528554650917102595243745351560854970852233610383395413456520850773432809180893086870246558283741104589683946723328579289342997790850227055263127929491786410188293245490433069380944799838529518392728441182668378278885911583631777339440462498693490567340371393206835494780648142530253155239919081525323732773996756687224712666240998026747277487678627882155320343200300329522428182158912764145465186905364887115662941123811921828278914381628853408080902512090156833644119063022073256371174031035602395629205550362618110361137332702868345114528583010868505506024139119018976975690124597763299863332712214855981519985467191408069679187272709841504493411757835376766860285694889010700548385044606939813312646486374152347958417434468468142313576456296506190457236530037544924575759253895229487927704828778266137497425014674412509235305822269949878440179860583889710183127832742441322397056860320675574739686537667648697761005150509119285377012136566027546713996566117718659515117819421809504513823033536861837747458365792530352934851847628266785326391888842058526360652138183743255003398518895687680692129729020395609746068908322901192876503378448110801578548079758138699878480983215211938036784566465486583660153241681864455857782150103194803263198792008182283294432502184385609561311010369681831112362058520297384406274603569029447173402249097703801451493774526922307236108747637779905789111622976248996546649956399911050462043446019453209120957872153496622376677928256492313406600399392797137576096107414503061874162156890414367476079982788638406192604057610621458134772706221250839384429338726563116447926993702717727596069272346362063940560810359505956769724875601296489038431764295100122212414771934326324526849667258898803520337239406042742009857327661403577050747332408881568858768424729260673576879245180263102279035580685998227896808813571304188975124621342666159079743887404458449219371317970036342335343483172006597751031438908397166813352607080249090266389493492292339813170460003918481807207334258226615818804666925812401338392228865606632686839173652386524830937648268917896091426348314261806100946642970239854132864740743990025946389807528293266574996328491704591194629962954120710406320699339545587326939203194905379681920928946964014928271072197482481047377029177769639114298806584435935576673053971798904285841666367426655623642087445273175465815096211413688886465821945413746824820879371138400553903045896094784886122109330410937567449505159571329114230338915289432432372316044887371813282951696194397958243588898415466533678607967448041565644726710037443853820765939724501054078401989640165177313433730218728086651846827148797025217060758210887957768077027843756342825659489125215950515944190224393876143395894457658787791252177838959824138792945762440688357670167035492638048150434906102137362959084201336896819472396555382166874014665005050076640144362478467460133555304535757074535347211052082510157798691040215677911575734846872271063530827553264953140486163436131388457811288350364117481595877171505331578115346822980060126390422953778635426081160108413210882801343176877386948397368268349721549359151179545839136950915583835343256507320605952623996339852424215412985422563669331850745451777767209524501948787267002459144191727441764557188489910532291027885406660742891691242306144486167346392301749988633699286764899659656030997671815920159970269838536092891081343938411467423724692132337389876913886183003159224675209399286141811458014342837792960805553580292694420446874540076353098749040803181353696674754444702817824141527446431207369189363929215834111057357413657202550336341482765383245378098718804339682361498218830248905006638027241207848766386349063931833995333593597084585755837364837954797564519175427417295868118378703171168558934294101551170676680471869377266766470728919661868603602867157009455214870088301862692653011986737541205411087430528258670508646159590980513669803783076564060211672179966659840462233343707129331437171418852566130407895757666474061835877228243534248788780850303579125243998757171879200964871701018296810916979005897481287551090695825587405956974271595032102535973854114840792079161989864767719365367900330277906522235606925452355046435813450716704562588223461247476045600021562787809709467884593752163161640323045579662985596359075840182467313923520749509236639741929695225544241386947676981900236665240843819970142547563218957661903817437871559189975154469684405848523511916321883563331978825712970847450009013766333622100166494180732754634563466209199053223714861161034031596095144090888749835597905120081314088160247815009763131902364006369948049175920326638994613121136765987804776030549254767844628377099789090433716709672436654757082985842922703874811967371161523323969502276624026169796214845697930149961153883965649171442340130770606858375125888827453362230352885249732960263555277901126541623820643610480016287382158313461536166315889881071698393072663665875174399412304350449062768769294189190372414188358580735666292872295388812654846937818222927074807448742233861510329695987563777591124428975720614011065619872214230500808552089183087112999026421298089585748926331488437253263374408310933859454727174856392180156827459107624091404784438458921556804531466299310402533662826339309521051734607137693596193965237734340421210364203753134574474558214790387180388736523021772103360472899754351441645663893112698481212733889539695622447778617179706552878282898619256912055941129584329949159771782572010255739896829127341563782160866613146121555048769436963013440738012227123804658700255676725755547314438896184580144357216708833064097198880750826021132625790035714287697494479567165039922742678784605031985556657538862707788365785723399888641100096709624332074405588524481660205901302786576872145668405996280570991021568909154174437379984062128418041893946886324739409815787596104816598422494328525697388481837007539882833943372592341685146148901602969313881280073677770194261452201528494588582119798847140132470823217852928664290697476945157611070443763629829301129459519241746706284620977010124895306297999593121820203823126214980882611348077759120336275296275597793890791739389430109389630517109974719005265531296486721258401840253426082190343124294049288605916269944276436012409440932583778989806281554528748277159375687847342038554119264357381842979541327006706311476891215983789178165206680386692153059905276300763971762070676525770390277117441630787405565599517128284372101972170928532568472968987060241060670531421801194027552945443345402976893798967993931585211903225371017711314632080151038418944751388255454194195166456422408603845102059075528206411420808824394562506278645277592806879653599027104951823162810672632870143564062234565711477843247552837433574483236789003083101637850504023793147069388516402258643973153617248666007813817829329822347692123905834316465193396923837048672707960670083011171653671942560051312164590594968416782622631315055770558034467194847366461437123898395582849238983266576344248380866827963018086647695875465555331665788292923422995623792692092465951314901401846231069773364691236781696842493175432406982398989621615621568955789639400385561897311173154292270720948123265917229427576447105042472915884976159233612714366292396070938989600796561654766397027196101101564833448446607381444255926446272649198490401104608485254695457986595517476009595784108733878835758874286278332080231359443997995871543914422193958983886746680479435083915956507442075011802888150794452700270546829337089885777497419627214059547175182685112467954041752507449815004062038081829742538796049565762413110994718925199548152677082148768797797273802962330960973423418066263296310231319053165540266659788580460777932751808241592824157888105198897840760853136507641004060090302826657809684792184736696001339733423196823927115152624500214549431892456706431493590961228040828945692983606907644287172738678007471812014722902446934497550297094450408925211489643534985333769123898663343404403177680159187402774242438476447863302498562665353091516084409626967489116771274697141835552219919043730236981837846616427061722985338728973916055883646081787304341951598644484088898069338903163968100710803635163425604541157065496475425571807681266697838835234466330861006822447423378233980838767638805712378419400049867426934728681882875816362510386662731864941637753061255858517549484103973190914828756127790606663687071617605451686213348856224147229750545607530879316267547346813035803245954961865037253854799069530204629616005535037820140022578779740066111240333708989372747203270364723134315937444356316718566624808795067926627019962691897011700385655636957296853484336062364623182319008088907269846911491089379871769201311279195615483586526641897671988942108819929244583404562356872610250900409017331085284992678185480272835179314192311527351269359288573057688538231094465794399631821313619990948003007423092642548690334570668761998298234910119540099003300076570657841437305291155269185364846605931240759533750384892586406803762595426400033951381017994349178981077854104550375329589858363882230839667750631188788787465256219028698461901123632522391363137013502743831237628530077695466853597909776756063526236383198993009883376701958000897064620086836880646859723140520113952711793403022356948304126505983708961102491261130247491426579635884907725142113183145069656534656582396569796492478500824352178426234584559865707401272326103793768812321559318607360790348929825564191335667438547085471606058769184146868612235722438268840526508528348121605798888681808667571275536322795163567399540733678804693543946880713066307074281182384024898198666617910543135232073442988388715227966232225623423311749937858727396680332556916529314541186778452116548423793054526402168166709381849844457582544459578938620457257863696716606381592402289907525156523186678688656716701647630663371968702245515075226313739784441735812779122257817195078788538620227303759942870668530559222428209961329136036947461371270645040110643274511582407770317291117835567629720755453283276437428464676076803719910835613571335238070919505011015429301595608623809957089299992235875829682073136452494297982317394807447408571283888942175830357593590850359129022411223787629706230554479900796212600817607030554706354534755925112227176609902523490638350820234703659448700497561335814248722378714379506336152326597721570304475112730604587718650781618285432759542472280274901422191843987502712172394133008465766183644221464375805553004597019350008741571223164496435383955281908974239433007049320098844085265112155711878289723883285252923799251992669311330292762359807400735080635188772897322744541076497602866444991729599653367071511398107615073864395962062025878998800358608492749578378318694128951756720040039628516499475336980202944146379859129830058895236769143168509625664495363339794548064893784684253470778512106303868642995466221122652662797607541306603826400207657787832087743984781359485383620481828509892975795604217331454136022813874426254328708578076761067777440568506575437305870908490492781500910222311845024769417384749335491848959831051374567006798213765094304382849143095958417305228530101926516936358287401537656968351305679801210076169005730972269587861843413358605977955721040364856305535794318499236472235340798275620350682171350379619286625853466178926737664449518494948256356517906833920562224320009107324737659199714713681389507463457760496544486226112901549788481871403544984435316581332928694353600001633923219266448787192201797417003503956058884211538910931324295455018467244869704808142832502178236784668447582400481313124366553796590426354448231494315024848103963086268830759622417262231145529140601607508595607244436435896694472229502830624134484639892401011933776306409156427624509838274022524424316404646132853687172969244127379422281861604919327233606413545002557514096251964239003769754651766379004046108306935196713528924163619595985958965661417635590023864932798912602162057124300863527570397059241488309045070999909422913526853610422335198960254014087849400201874548043711615777782025195284709686646257922767690522789482118829857143244820229529521421298436529020192834255553422411595489185993834438576777719866876011079112360643953412366901325738922302307919783757137457122898585953984736753612373757494771454562567293351406540913933890923224764887617129029437255662783211529995245812759888320802776076887682908678036003014746638663986799717920958162188198010210721505643425283148280731679211169986431545441096062183238585021532072047467188199991954117174368693650144602520452217031275331475591496942978580485565656189599833878941987055521364398652962207921489215056700357337645587135154658045865136921769363551755379535162294536540685881512480255554903717522797872480034431867754877054253145035370800241864550445645446387180929721008251610978152305532560671863177438779064522341216346409689589003278038974887282570015900859980692659463104006439186289078458150677950950679380700188355709206515717541290921844548291533085282880004005667840748793387663229405301887568415804503412433836184354747647851668545815497438605481727176126201438722308576634188927457534824456821960328611709580402632666602491737585412605145898601700251608160976584493766639870894334776781012440632457658001431611395073036387565804714312415942442896492165405820731264674633651889641435805478932299483166525727241403246655334195091089436985264532620388514951928975217214168074233947736764465806324456466365399644007437321814149696222724381926236956094664166267959235629410006930621374151748292255769352988776331754092103876853226905801688022275083641386393291388971789996668262788061179125561672731127165685425987248040659640289285435975087757771695661844446126917694896699516222728429542309059276301138669754974887841592550837305713299815450089424647320206983448447913222556439481885852592090220980397885117121329129857270311953776061643608118379429905979007549278390068851755831237013049646209487117994626446348613942121364008627123502484021459372446965600421021802841234880674587638432863670123905012464614628632029817560937394378564823778221303732354374997679179627873294459850126950416567040020543783098226145383068417960558466129114132640900725178067225566484298018528861838213376951568996416649743242420145436876631591084505563202759853301386118076873000625083368126723403296871244949351522982797183273003958208157207402236899032099512052644347909011289962110162332037807001631529462478225970373056660972873946447489159768879997000209569930400817768403553717972544271542013925266523441287046632725073409257354668231385939397421292527111888151397846832422460574765115800041512602028489446768727285063041515327012750753828386935138301936162812058779564569283013494141724336172988153937341777658467232030754708190601460530957468780155423950692735945869423227422836746978147443251138805936346636250699982813742495732723507725017563026857995497340813269262820531280436035788541838936005554368797859815487092373346714436220515500053362926205637445062367707764767951552013037917260783432507143269627430247710530579768726595706384399128919232641202093915232544639852336854219272574562826172397451448107248253383866357094648338956412860720945025452183802220947412518407058960225959143085116069319329788244588833006928991823657217507416860276088514285853097300740817967527860876935141092890736263921063872385009240519465560697829022782223259390802915434999435743491405872866984387427751297065236787109104424246845031054536877521930298677709721976108813365297884209544967210931765747893826556420345062836580760342841416639866633448939679930199380904925210367988401964713375699157409683499432024542349386507899607991097273495127463820255078416336143196655772608969869900693896786501848601776904209562386745333634897023735656155330090168846090797469358327240471461446003475657842495026126514722488806899603035526238577987649388134639156466101566944453454163414232131397390332924482964482820254477152783766735511787288764540245289773711868565631528274221607070047473135374845873985806677817296415153702022333218755601398450504323261100672473821306472754126466145855801025810910177837606254240106268116157435551838193298927673645368546400864210981832604820956163929566573545340037905499545442051893943770558643994910408776675698171331707857129091309247559668603321396827285652630249171583805760372939800517387350626530629600632393795121805641167141403844027497815838392256828842353352567063577524437270219739601408007349564640783520170994893853658285455313608797195865228156228242978059794235000089238352488859229910696654583310188904747036031176664516804787437542572868967838373252571464387443314274141428146969722530051437800180697034382868394535982982134659483850482389738968534343497443115055839617416604501796340731850745365915451548097551594714337339200070041697902640888010302382069830346829079847549806510651824706553251218438742246843467242797481706175860862495408512495495015099616417457003248409499300006681793263673691873621688107313699791277797012534045532478934009105730578105366189286094982485098350156519209393234157186293564369040203681765982425136937061638243441385031495922884512766358190083693375006195622145534508396700159424820184854067368510476615603403784888964990330655277459296401897125499198507456145467471131275275344221865483881595522373448403684785197348717223429311364098302404719916063277867168104276231714336350186682188078136756481767372106504627785237749820027741608184605810106687514554929277336880864579658863576425651278995368831736849446571465779230277157999086808437414044631909060193665509017567806123899179150449431753267319997494511487364710337021440210178497727739518937014794318368782297484011048754701391569691221038131753671863840234264434713093247247336624627298430202476918420438682726914764406045814190607504276920425377566930799056211744828134778914803097985655858515495485076698372838894918320314115878680873139279612796820070013880573736673493042690558600624950291866566886330111583298896951163944967136378221424992259146994464565099287336506230187459570601442233225367680538368991723174634257109669919356913863065102440601863108768103166068095803017124820419253090709126891652482530777728954830424479397233508509941549188374659143649995676410413244393421609571159796530879059867072432091300685225474559889320479460699313344985020561507314144266222139905688711944060940478820505073439594427838986856466232362952849662244293792849847631671386841181886189974859278185144630711019490075537029221488259072781603163994365596198841108708117871155303007636476411660828734841485048136266621887076273074886167681804969783561687622609622563324983927577312503867313668641411381378417293712001901443741030298810025603114347254700915409535935809613452120834309190358215304644291511651802511486323956174701120566294258040629431730445458705204736604634275486259325694509416223472580338363337878731381419646672452524686910929456280632123317395161958524709523135766171229283817814106010933570788321475630585959859956734624563298596253494836610921599631532219972973232088830045971769851397331609516669555397927548572743924038391199430826057097878170996990825698184883177737191452007402527981670519329098549460326131665929884515682684603650487883285019840321054495140803068084012794515975700480867631945555444954934122968104412627032175186267441848616411741184540371171037099322250349021464756453231251465318729743009576554749584945422826186236158437255960833876966570853530847335968953338635330805147555728801906413705590063103738084818563145736451605049948671814897431079449318958499901720793403857599002952089158551815987352877577509801156348902326122516526370919540255345440530772452750994139408045766540503070474307829964429489861200901357229077866443951043345555938968770794256396843291637151418466854320644094295770898855105586091143826271807905861919526707403012685235338394040118458675626826739236145292905329102719191436189872575692592722009446438771073281733121277940745444784840039802548750011059648672893612522972646707653372769908962425908706901845479851190082924474409996413035397026665724683821561957769288403064175657231703528310262246149160836320462706708063335899359269889191387778861630396673984374042389889827390447599737186247040625506325392863460982482230912888399222986563298557468544893024640386410249487718784117930661531735706287327606582614790685175696995764581675469581779951049651336557620068550172699278495012650908510696043527551441251692382175470184669148107978068990185073289520924295805199369732426016195163327264289891110065940898385171003321223735911514010245210420672726223475404336773422893239688585272278634505223380771149637847834474406302012132350141183396234695573723717364071542263693196676788027528807179515596565837434936758753501966227288847562303567354101124073127848363019036532297372474777539129407391278709820309696104107827318644734973827004679404057675449437475629289213999952367720003391002750842672393090329991114735610901004694590239746939243576664820242877193402157641590144947358816540046320743204951292026274287719462455932074067787790792815093978904171648231872995240075752554555284206508331395751856673060837541151060138824900504164782400467375090082172996039499075514550461743869288411783395323641239354557131145627885693518566545816559249562851635989140548964195271662113751908944831394606935627292187500046686534061879648492906405590450025866031397284833741471946115103153292733074026697642388440199658842521418169191699551942946866506041538156345073176408516309300792229874499907581320824803046854388847170838790657467244336808436191153227878945499519557579460157667145438360619422840302828492657159503882703748769132643607035965414994918299536975937506284925686943604633705831330760398944786933449280659397029176327637218385152684448104612143148483448141137624254131880117710671498833963093041150832691016660772556015168638094545215968258847664591723220204933308430563012841364732473210860980824760859451752652853376903235037964620716615853824536963880456158659789752892875647491670310833711273803011658634153928839040860358726872441064805253653854967239538613922486308808323440167141206572086379667417630005859089435425309946076896865614295169913728831046444486460847788861684931997102163325954154254015337575928634111988864935707725456953701903353367220626191285594671421932624890368717130881941537854551681120786814016710870480995293603019107442987644662154339626621695137164511393315634071582689829791764957221401729004053778100233937476350581966606832631922744641442207688589169190060675482122681081815336770782916695140398567182303187690951213751936119066966653034730219933756910766010396202837874946047392820242668744512921873355738961061833095551106257648164345019723034328488992272615572014265071935096327976924333843211254973578143241387308375741326058436800353645345130504602414715174046730862827312352665216540329576434639263546176835346391378399100563756153873094489922791124153480221404447308734790976493625385452908381991075942016679930455973427568606353290200654781079228903366979673251513278684226695407701250693688161663596801135480960980596847106546009422916407396562425558920611193037200003616654975148544109514164697210454282805401891475910103690892141276212835195874862949480303359652535274718643546822191919961200288541442550113065055285529766538578521754857452302479596869665120317557533692328457544952728511343921384575899597541133235710916091134108029189583916552398721157364591216646394566065379713020986155264650101210427179205383765910435976527578723580578572102066100601469026955456910344113597855258203521301967512074125306185205663648953824653827330545334421684842279198481321537775491971058412152817520912542131300458156387617982858071575802905615011910452995403145448860878346791861973992012401240447180201437778373611064980686882606860961607534928868135680430502221355520686272806601388243334571867380731260512013758270263780679156743001710429585046351431172973310285230515479229724868854841316954813217467777629782966207123741616585852473876752113979528432868477172402343305390904298029336244987861214405361283232306098285373627738693753131797507574221355204126492325766355522110745550168948797354573289598803210242197292502982354085563580359201717387886502755371321836820954970266918764793918196753388211376760536532039380101149947809307093510240906802037102048303103047738763511726843871944563156472942794417647156262814199753799069062942772076734090243066940263497455621283051665197252298052747564741705799503898489890037912168348402234757006137905293800062493676113512988682147551125876381001291248326097160695639105269078201178867201314142154107319382427236868594322456990090111504717971324396535602541541794711722872575811054460223157413804117426607030647891563217468047013859896316081490528334370753022850338996791368024997862536689516759979429675937079717242157903707760833762007068933987370932269685888365989852973955563663711717225553234148097974542300576837373012449451770197378261854402572936324314486714438312388477645010497667641849240880991929141144530710065609341404171256550468700129307628748325434041256463757284709031414853225184236959070453078245525241176068191916394224216581141236582501177899515554208481593721769829802109113716975118097894876492859540727541651666436358452419926397813225085818370229471657972538370139776530434631425733989241244940652096036858472161612519313479809705316205574050762814809352323412507992998785964423984620646310186951250644247127752065264944306059956258534047371957549211206295141497523999719338161951854866120436862229610209437561627785033310235523578636274541199530976298328071434203094309640334190421034053361097713879058909335330443421702119023938207691193884365112791203427770366831309233708876386374507692059605647837456080969494045330172381176758851847324104691015391725297295690115052032951613847140079276557657840508046435109018486773266099905287673554649924135410174865254988054534825711025268354205269029615452208258014563784461049304160822858352382104259823043670331447553087853317467737690501080187205958871100968933539610192076929008624697266757503089198341083480814881814701703977548274229786537374774928342859697997012826205687551669531528617594687097791741450606345100681532365058469274618367255430989850832747596921336611213419963003613277983324604157624569254209680855624270030090710280976465723162589616093673843335704873877478140507432297771337440401434459245749063770147900722211946146690119427292525256756008185931018894245087776439033419129367556129771317130581806666767777831840316516903620643216805703195800633290981389658614872618556341457670053177178397433436252385073252795188989464309768318485594259632018949995641818183188467452142512325333312277556962093777942982513014811773131736486297127791570527408469435848002606160957062263680961248668779600092502448936365930176876179583831929585783967131732933378282856570939642809237962891033113482963458751132576263070111914958894480645493001775491699920773650767058849403340740877569426661294498673337231525825348831635376642029105444270351373045922418250953968051321816726058916955286167827407713178289211441034840797201557670230008629633606782030852926042355462175551364693981909006201681732162230304903563480595994230725848014847927670313261135930301521692451463393347632065616868307534277079421828699970097906422289612482027794244864401559720533579215036531442829398393350619690375213346680772601147286277280518909787122033302480533449039187271597397517954602172985961787850524018423377850355595184789250234346312349862645728257681403698334018138497988541099645026399810760170746496438001066008810360343364536320587772094693405562405408892491397401103685293142735036541905078152297643297347266892242784236106985010813001969006587142053854102061764686061864793703771830919586894193391096312698551939659515947035988894192842035226890035724016154577126232184726837858919721221774614634075645474264277469006728274729812374504969312162209710143148511945733802669596973801945424919394893678050688803937843593912441920691319360570942091565849913004841467373841386318865135631816294010166395391199832691984320581874495182522013050865984542754775042782261117373148404480386655882696626729395569801005945872856368101835921287141558617737913460557333992396159551044614395115551940981029669578215803995039555318219203529088279810567100796542713154745663996383532687292288190831898617248628959061215830759956523775876868225141793733275033304111256904473539024131359612852877874533381838352706372279308640276583450257169288434919231906775459734033156825997292067017955769521858087545229224055989383112797356991577973893897742241074099653940260200043045149312874183450524633551930793507780610777743340959581982893196866534368702124743641967296880300716677307270338829082342943655892410813712615277452907654050748051557924575604167177834948688785375653053776534309789665994885159250558391704875222305336048562588118124043625777252847249522076522561464013379649370080726657336108150083869042960039284403095012749485398312051241135943768889936609932642669441351868197037307744830472184896743012617087682153860152307700720146087691950053166115041534829086391656095205698490899339461305713012782903194159375241595122113103778444989041904428214976804473094891250721521412186305644725884639199532059521071541480026130768087546030818272957211328568499299412747620215587380723521934279624657566461676983697414147957514718800876022767687221594073710603978154549876996926681028322602294097079910803435059220318465727556539570620617696851029550625207865126715146125072141710597762898325720153839367427400387903646297969362324744145413681527367050741488246399620054402780025085173821248007313180486777288898849466137426631344893428898650514067949222941466341170366479778957675227822161835487585722084715507199417025023904041160164583098849120421320813609825322804993661674903909424675046797050772937942151498931896743937622277677789768216530654526843366855332090670222488088389511660566247960984371718706304243367331619750815181991660286257241261710241451883196485713919767749045967321289597087249108884286949099939837884447272460751662299429166223494055423853436341348423683196372249197804894746336662949590844656559137076847637259785172008332701178617392808957503180732398433376697284827469246216588066481626707904921729127339532607639451007105783774783041195761393221996309114686025283932350907661663113358530981363558322026649722943515668488047461694362716925182189833728617837360844258347273649711071004450094997325315316835984243945738341431396837417084136008532782821163830397340257358853534570603840532747671720801688045548786737474649155445803594630974369976148920395699240792631051549223859452874545585261995794296787772242963466223082163364486241928657797861093109160736720811679086630607562804894782607024526200947885127989118388341741785595339914132237277346864763858350261060643219656641406052202436382872325625178107824157566880349002500407668416499542819546098754619496372301717875800093580807171163853614411492157367817220507970265117364926083363815808406668732422608960451869667675420410736868115680306463345922872697351209623266831840189108755496176243257597956569609073530412268763451168830529197882953894599370944379153442648399876467940795142403843736368998934069058702710719525337349524530718790606443271526832959494079361997653147552837611160705107939469211680947429127572740937716835477343308749633335493469814712441078681028261660566596351888444984083013886837977496424812028865201993195285741085548031300129052792741043620518965763736239976929113893362594697322713782270257653702914774452530453673344257282745491897489942560950219024713466290454240809976518460892834274867006172562463293434339795835202911720882109658204501209282671458290621728755529200222533667083026687777136457884915586670752832483021413251981299028834304257859905143253702307464570430602239698279286608600704065123808278227539513567839830978734597300141440255500470503793945582174998025308449536514951766390736041261692444825658598417650196026588472537900684821380891084374552392081948175543589357904465320429107685245263845568048596069354069093042087053007537836642517135484008791356733309152607699425801428202566254085924271973908473217519106841892275028341889490925869754711218207075562698438976547204111109606127082349902241628942116717802292496761336201162765572410136048456329495401031335245809880021079166264234290796047754761541884477399479800365695046094511088009009776061496757845713469735386137033171512005310188605516311172375015761315494644958579320962117859677447554057755086326979340948870926431428115802230596941988658684896778851728867267845844449144591460531836424600044550658110464554936004282079543887871850224861640282598218129280807860942361285942371477452816472558732173827352637510504822317675629542446186538807936178219168896979316924982010961314821324986801179162892516913156119679079737668990776612974951679129240656250771767817442683733259553327766405124249657540615015987244759096217197603918833372444327147406927571363326640204582083771771132566516881194335463558275183103186245724805757380857569197547536242207720448694168962296923741017922047934874367293820605299075547506793551445394826369150206231958297084999639834819031721402321081196364350245421251473996622112874035334223694550721286597624999525884832211798784942959611448489322545746316631136340195009261652936441117300818293266056783737605371926194988522621576394517831578367931016560099825706480965555469160665378268671541553128901092973468338246841390516715241815274986870660152041854014149477064257413758886430992062852997464109078341677544545319961878531160523381688549908158593307989803717380033114160829194922212292409868694928093596093395148976819511853943925358853376208286469402149402666342315849963558580311335388063566286986701817552491092295662812316510888476398209256734752759518630080034033956429177146248598692689099251278028500729881857196279047787595806738009849408145391864700782443014371093317616637537256952814966006511111958090170758913547167578501650060214510820697233632652028831233042531124823877899020528358570855355019830657446550359136665397541396957228917262204881176803894161861346827570274643545115968944415916977594545312904062210347952046930687221326799429960768431573943365035819488642356307791872271496390789138213434422414470667881805636617664297970974379627805706672807321802517672353240106625057130377243270026886296580961922282033427171033849841322870750888702869038163900901776688205558769033362461834020967821548148379865762724426400423408711887836292212594522731752871983302152868633090338071875799753941755675409217130971905126863764604696566472058183302215218412452383462134582985888688207284319947811408983163715027734905960847119249562365824682470044194065843244903100841975925418856285241741956451573399341573319072772225566490791338165573401075712417001258273093045432134916931309413549139635128700579277497657367815889237226899955487939792742441124998974550185381336438679975776591632992333789990567599304941838645353347035066561222378406460337060366342628442960874421663757142327353956354235189758583487291220625225046586742130434017531754575090250141162824329832618566824327997293222040089659838962401394038395848391136278465704105656109301869903657616284348617579512610462143050033560356534692086681392238618505302265269937574723990892896218522100326143785426508143395408594622755402293239031291267268596797726088937436088505173898954918928630496774701183689091682149444779400996832069836032657030304950313837856236248321369456905326765660657700639309509805451434659754551687710232267680160325981659335685514486566807785897326014962396422125816291344651101836350820588547022142065688527486092812799649796358440095067613111286599085141212334038264032723153102443050854738784137879192514626429038230137008536463906297760009346950124328228828641178680906796129329040274573448044605533838477775150690981744488251068662029499206922220081638244418538031821747847077265026458325640433913707407316561601542500995776504691069208060506522333016790198693336155288421789181199112766154527574773610021099963249800483975641113357950082056293987148932796383161822498475329147569892825515614656718880272553599416408620879645688142929436864746856033311089871369827125396694155909549739161160630551442980347447459463339217360678384098304431933555279737120566454725845964431683114114202863904612864584843343466943046620288606956211357566278485073274031082704679662469028206672023142587020501770726264877569304809464280472803916093018116285339777840570193244934034381902005525483656515828733119302949304443711712544187153428078901585091382842878685373660434544027221956826335146865331448251961478807679639471478553402004265457699758256975454027742090049142457419105627712014455360359012913773660749493347790165956075033478444472016078046329884914704189585148939409207630162327916050053172031819725558512927367747321112823112941916686933499346179929334565518716474809184256678022329596410089971558585835074149062981527684046801411203720170764520902540242630715827553456862688177555134476127991844811232287338129749665116217774139440073941339012463781681213139111224268783055853838657115379197379480572543413693084926633212571447347283843828895546023366653204242961524062513513357170581026401250408458831418354747336535822212471826328397566593400492938899748492149783429467167193708922192937213710668835241526620649626011328465747845192061388843133625833953845379253126700400136936626257783088089461912743600426267748864430102705543626136303021399447044254382760127979031580062707171006943702330014935709188730588771939109595440036078343576159281035335115346871386425802314633920158021808533476235460180815488885345355314618020130992847233703352854548700313137211715447933577557412030030660996853909517820420978343206561128474901557795359672040664731045670352297580647833447395586753793836546313346332650829810186198263801003337984332973990720488691289082578635302750671316856887371496469274502547346520310537221972115243736375667397219716446524254853465040041473326583363020022725504652484328653897262468700276668609973070739316883931220286319746334431679095404953801682888618179231692736435041765947325708180814052205543855487277810751268597380581526311258167975440191973904746989947581999061275605001750754359909189770808863009663759733878970033822563012738926303614292919803130766485123916797521994165306698374114905524965763852321651694253352441620017765669745452268965081447134232375414405666125578396521436759247306926748340069500102192074337603352397328069486869935914693183428416815508592019970561100798433824825917951787113475305605772240789164922373663526226356588827619230565950168677928912752344836951150903409460344253819928882314650700041968583613225602133479383279768199673904247965413825209451190143322273511805635104132163431522120597386315765431432108483527166004375127689039529548325412748685273067293451012875845211292347662521927930507529857267223581543252460437958914501595819341234088479482501895738988859281220964400066559609788076565938125830160761966328846099094561545712157569975321632404809783439162313978074049819829974601058372403179854052938954106008282512468836391755233915399493722332200749833590944887713331491854944243576788247057742048407998773699064730911473519073591365797992697393536467086042823813566424129686095376186098670067384951931914656265559103048880088285492353582444277688394630306822718876584287255440413431201773529708651405727282999006812418025084212529921608462101405367839442382264359691054243428562485224062789739368784496744893562559250229668729778064231168280778325800925600879086560321453813264387364163738551776899466966967271542285462556775027138866135659305578084178433235733963066071048244246841453964311227313505800174476780383072558607883688204562465074384879425808148541602904471017473175095093149172331180490928673140674879214857140277586050083847574736095133634253392097867455769866309109514129633019583460755755312943541152486661235549186183218253899960529581968645844531052164894503588604657490634682151033669926824069563289201861068923260461354669548378564621974937131915614954038215299263856139174906949312502137177831069175310662622061693346071891273369623999887561100305119876913882021918961940961791626076501120527535558819694013990587674837961772277749541260045290027103865678037405861400528531688393717750346713308475684205336041147476654748605492352732123970104993839843342659571717138438470559788914231014891564140012858855279232741234917499541101905334005895781994132547589204253818144694986603347000638698648122560694214458051537032591954596603876747962270593941200324745984176593742075210147262534868555174873479826799433691498276786666762605509960647368433342056428319205128129267574900069467643432745742237184667294888920759844917199293293758907224288369463886630915973933371202856857674166493734317593653651290014015789786490325087276571818549907040119270917779234722033011406941922618159306437539248045530373322498666776604204800199973786213377189591246640281785749039700432682830106298678413760316786386039408161460706439197655506201469081844512454176696649590410462042900154947185128005918859788473623762284297845415506333438476657199995139895435331525556228210835995856426827414072240301533732067830819393858897511356696042187389638211260471135339580086860672851515157733348627428989055940481051521663968636266832336286943042966148292915111811225349306359765253534463832197362085553746847060464981948671378812181302530435331347907973532682103167811344347433420450707039247095366595873064037655817369837313287134567906064188405948994215910349352946706897254948667744537074805621571288506428454019850312155204202546053795596774698650986731746461299350944999727934116653643991526822531812501448463069877232949636789595544368077702757649481476683166594414455262578624864269430772332888858740341465032705192830683740918742794823197590620468456133978564433378943285928674028798835283481331327420360796806065901285668137136014558738721692495101378838093694557858282302048431300266330351918601437769754358115703014354701876167756472929624133200959296738157339490918956036532818187600897924161719133394878655950418926007223271881917668783233928621759966742474026029255259164508124643744747676286375135430072802585257483974351976744052627317618880996150311297163331266157512364430473546937931683455863976213370797494465069739267339463432613370292191596337503278813554502518558156605273333027309723721715653269330830880659765568225610777707621484124279219498379590209872513861103390393828790750475952157728630467444874343758676072396906308904220344103262646122791460537099749233460469275938668031969467969716906162216866868303854625122636338346667079063069520377601578181410535569577140739329742393901976398014656833035745640169631843876454619954379686960700406989166442475276929877289870793290963871386354660449130932900741149263865639593415488707802462458633203947585102960595883771259315034975716974737251203545733460563403321832560579124768539293093235279114319396269069943523064639790341141588615704606737625245304421146570638676596849493442927283077577957531405499255502893263260650800512925645488882225804346579328648746633915493856841612275040370090797183668564797186907522962221398170894147790845930066284829491742251048759096430277163878452131961009869408527700044997419319883570321014157625004465387896034044555807147195034123048453043924325809014816178013932514816445630390094118834480560409355985550414642779757252644441448062936773941680659208950963974803251790184339660242598522243034895301684858625344893215319971450217824313194560757971541751050498233033514639286621814151648047736424565467488506254822398264742381380768688968617643273031375629997735460862439989716845124318261819444021429838570390850618304745969590697110785999708965194455874113609673926154825775284772637257044068390835387310895400588103011164651880661015993402779491328926023431078496345136768193431873427600327079904448344971912512430719182410376698383950889452848366107270322302283408071570008515628627996725380162972123064859017113115621151366145185010770057283004304962177671322904109542777546792166342010992049034491424063438435085026639525643051781414694260562798697096156490257198245977400759676815296885031959734635322017599227118363850135241286880524450245302859889583849045635964193347954005212418454535817763031931633015015160856667472717744771838481752242291031906774478787979990150532007202513114618451227834794888222914304672668439689718419193032197209225493600338683971246150140934789170973935733556575526135565391979234770749166864626650144109381262975771668164061621367663142509210519654650558345307405987796389363229275025104484156537955714024369552108237273538721717812331116634398263794951710731612760479126092882989603963186690366035196045150906584098457045457679429210328793738645999154388115211858136633135610054274740196888961203511587353656928543737171022462423893039286865540554090151912991363029686581791057242124189821441890613266664970994677561319562114811205776491762551768136984031645966371205749999248555986074191879734635233440148168580747948620918432775325796846931276207690958408639729453160467031544385363473010048787536535157488179258769202741258458447878999045068420809446459916550560588528233354729031578899007812740897377540315032425198951744641678259529047294649023959494071590736251207273228348474103523254342927172783866454798762957569682042692889822476008273199422614014646085188249098718475381204816003301542881150568172116404774257512589154328197067780299420559477673752094910028849104170534786531372882332237998767690785909425457573381146612370523936675809114351735396715509259647707120040931422383006375961832771053548594379434493485362675017206967122436631476560589032793016504038950129661813664174667816493529796310248630932006045680510459053645588466613402920067136146601269608473742234771815632211247329183139331731388079698767563477394329229726912889635379571864650328019547363341201494193204216370108393062964319455496778504329952091495812396228686737227515320483931715446088772227876770493791237219719509750035564413811438439521307701590910011133870888617912780060584343323586187843122214711660661108418149074989188211989986513771546341264639803698277866465726959830629571585045270093059542881761701643336058332463868817704280118795555466902231572304742024640025944437389615829725933485485532606311544747845753818500597750606890347442595517951817378235079270746904615902658744085106055199960019940300746070644712650395902317437102504153244217755085103935306286850832224218346365294752669152972782508547620739777047550892489400747413002986912222522851665492712709160828290294452681581906017418286107028676580081032166766886625140364608990822503787733153819705510444656306933649930522341471067094643395813596027517984209916748903557370810305161764958115452671435121353816147421694049052804590702884663282913939279458059758392705810389619066814633713199087033101021660675566582004704910752523121140850788763900370846340316296867981197451821226745610586139437581241444577026941943187471259167776312196904794017392734646981409095517353363361169328020629924935189022769891170838025817585889568606362558411297774418202032690509527276014376564337483082798580227531895535269549301048613629712073574091680552433705090094620592214473115982382075349693427822607827787470129202509880200681009655018837220041312558530111766277583816532227600646589393605499232314041042903428749638505600684677978611044134060427651916641529369111151971384284452811604160113434481185346214038822909088492841820851355887931798501331698460694492182730794966450467680320936204840730890583624339268344686685975379104737952276349618747308885927665055173037881310533243312993049032547113556640748471775015775571617885210968536471356916573660420166526007457208745222059034316617401154738091146351339505279858916897709580213041427711832259263091365221427622553836023958690443999612689288685952567744303830761641351898758059110037440845391754854896701506556440194215980754866196104638117522079436338899499767227276304435929112085058008594155404482686042164103872874012306853349560772884915962332506308572872899547956647702685568695979595041716580909434986686042743820952263826459437430272405548993612497454659867915383201150386245918064993144690305673674740039595774290852488505756688038707705923365291210006303745099959602113684237391422367298037549570041120774098503559328371326067675503996844801097110885840836043585323665963496727848404441799220444740004568916066424193212913290633986875685021217052913955516901376785414209610206625162819515483396235957193205753366799841154664000772453486583854315268756695269200209316816697341146858628289908229612692791493477391177365181131900227470112075772244307812498865893829242899683265696867925721985363742550244774104761692921801042675524140420276091761710572538212811128656675150999012142627244436109150247591678116233789766211894312931118634042414512239978605310756406051403731836921415907034026092016844920451164669123445954624660455711903101119402514742533650283655727535737672983898426348068291301788909798899865777521200435030824556828167417692479730056321090782827560606942147801176489194697967984681876692961482327346899659793605447312662744595316912791871109811809644260552721842512919350370769284550209121151841225668275130327169911370948638709493412092118413880330541037816768642037104465827274721317103684542350012882571063686594416053160753232401612089892512240384532217638014706657555951792152296027738798222968303083636520330901499261487510404261038566389754374924121282784681393147163571180418232125381105935292075510506434560422883670327941956620979451152577150548793555656893614275583210036508645140936093867170695148360247108224323086569663327359233210507480296856797808946049820257419349862715487064964680141756836926338381229157778546451685037205100450482781823096503012542682459087871353191341594810283839044508378263601237015236594256749817810634476362974302403622270486254772457127063152951905173321164059889012865391883131474407944318924226799791153012682927850554363255529802009443167713186032366898267248563440279552498045416013852044011760372859354880777754025670287138689903684107478340995043821190111993961192963805440244020733010445068572192195140203374653120543116721400473570522004961663564889490736773800351497346478064719158183939543877533455863896109065639308197009191349573671684828607870472323511435468448541298405068095274179868207982916051121427019166891281686896623007595504052617711398005391321578725959795197969746833623764239630625149562516774453390486476917605979787073097954969384747234742993290846241109750305672757821705984909809882214934979731433583995509773248996576670034196548580213138160291832708384871845882086029165132378722818713938101229829732839661266703146660824617288510744660482169184974736928237518285067221254541249064631702687349271216887502176495480773330286936579620583712298826292647018345305355863960820327434297686915878475798786715443661292510921936654451544396541557783194807314695382122136878899692330883746480903489259697875521952282466218704186050127712982153665718156903865873275375214328827255167403962459535514971610807051696260376724793210917691317995543487395735345555218100094257933218902588155251444715174851597956075463649240131000995107483249433123110254200712790184395260254419524690000303432456982247200064765325633732180691552471465936063506899109320242291522977040897427607414945097318926341432885041608591590556189950966169574524156857235848906989701983928778583246846809423541155977404404493954391960157018356321682664049013271230364389405366440186204572849832525320343592064327236102761762579455280228157892448120077646611991250258207270302350389145210508859411613649211200187326875423851734674700454742315429761483431027291618719444614942879076603402381387227164516506030836837877460260618900144652820058614741090649217938665119939982185080854499119884848333450831664123215411745675263660404576686678320999343099855486642689549265466794765367064011257554599612350422493241723224947317828498460109383286415756670084663486016612059237763659305917905820247189996482108585896780543131622539867878118402499957549870914478559436921187888577345810069688162022345348626418209058375060771808375314882183631066401971348194877406671904476307454896468678279934990360179582726777836218298890736875500917268794380778312084869634104873860602205262506245422325800508212760084694250239824461197793727769953084491260513928874907329215060436935617143204574789423192693472245402380131285665306585598550109308809432486503347744261752799241714780102738905505961922557467167882519240359950000443533477622944977821471839884729556605711888527626117686942568155375199429945666494206169582323851073061302629059969066779524439256437844389217848606695230748505844997140238538174913764872259333632122843128195082945579028770412105351419896173724471826123659418322450081007333498835523074957194665157949727904191262849069040094606148988652930972466111573872114362873373859134563626066284620907403803585378655806362138957434368949156069581811592733336247582146017713303670229465629487047872897261694880921451960394561855213877250411716987196122181686118460530301368057219961274690440233870462742366551092507465015598758885124503051121733636198944255322524718783232902161010490195431330280183255515205632912320328410384370517501268071885176286829300565644732639432422128396680442203167653021701760331845512577589596540890941821460684980789644181682722760934329075013054153829741901979256195717402924751226826701004683056660542504998061491771328491817080036867148705371793231495255681953406557844151538623232103576885204516406786827867542410308096767220341683457022808214620871330012141015475309963703359664529261655335806733285132749259829949785912406001298660047597734952473008031399244378923903475103310234803145270529348832583820253175465861251791811435489662731146896207222771607920358536150673668793364824748562205705443301671912869568577902111106267334670592844919752659155764955658376977391338721290654605664180101859767650022033506531631629576788034459310438151201763019022113411729456091957788931720432817516079366670388698186617604510859929395927261420972095374541683476696212704191070082621759750526622073670607522146604050078467210817535173883994944067760671322643936504702062766049574493009891911106480334199693288975026129689992122239875452969538639136314251602259543798922839768589299124606825072095663054517138506526633930895086449661555848146401273738231603737408590425673465664321194679042171475073768860223661186757283153928776292237416094657477686485266039758867854045783032035562139140820262186311435393178758982504059236852064386058919442549703368256206191435419670225048864133225463869932064298159246925569082816814147871319304588583908142942926150269643124324527700395270772884886366079442055462650148619174663260346905994616131878055145450197473489114255201135509391381903849863648661129166368026721600475061410059723898692189138381727709156050391298677930707745886388460518146237097175215402857171176007653696293003146741977893053746000661573402344797286759231724352511216245955628579084505475896197414997208709681573933528843927110109266413669576209539365586083645492375873503165638808290503568822837059979212924172947192436966789104451315807058676059966721582725902211977342582519894198683217030894729293059854220761504824698093681922153540749562379642706661099148092752291993886645672379816690599772882873851277203901948605959251294152706181279561778423545690259105104766185500940748133941882584247772997388823318594329501573599981951740410098081590492518030878571676128488882693543202043014679264920079825416026869385849474259728606140815387788782927184371840301514635907456623453416955544102583111397521524352832950021772344613575520613412151756700483922710135657217488037946404119517351973659716739494579805516032185477986986240779589205396193865402844671249764011739062976113481139777926776922550730377467177378174522388436917369737427145439519670114005575301326038291570308713480315479935991811185435231274498973356220606655465079741670595660350995274881376756719718169904394325617072608480235454139768830816906512140585638483985528321550976928042776220408263384155611032172001350385889004295305527501426479881918409565873302693836017738490993492263601676508714054565042983624800205155654684968905000242988271285509256658556438496792316685573124486039058845827149081993889688575177437369253344523914075478416452953703261520820299961113964961086048659332108940898252595327672601533755413697158480510080764815844867529224755654263018230105365191828215244058113045553327469833199681371665562622372071608140970789130622540418055215949377942383898117061583009205109117618723058124748826180651317847567060447028771871439041834766194089423311851670020482126133743399853616153076435998499886273392339196584563241143699834697594111818870766544448807412017668149198632317212869596367344565187754650027765658626550997710585072921770677491587784111719538012455167431027270069742989008804958427394844017330886284183039835276616635334149002108383336934304030184914813242678745549594146711429134761888438827469300220621473413629906636207660180211471928801206420527034247443801168355840409886615727947281547379199252191804931053651966956375847883662275131611660184305433029727776871032002471813893943566760175504992981746471035209133955449608790975234078212822664983322518789539738542451399285112582653725687826986871385843688368155814459895903424960464555888192573788622416458947373336979424945218045029030259150156339732014735640728794197078696218338231230254528628161735262880442621451497829625512754160698930978044747289183950366623902177999713486648968140985239780582576662173949962680651166461318024518078108142386713453878309294594878675963651159551935723760950296873590502131557700825765889103817328930951462989516448020009398686208126018020349684418634437032273241464734251333202262462754100306250831129465686450561384723767996040283373536105863345559118919160549555549343924370229306428990252127586784415612492908354151807283273989284888291969226054867352252402455230678510680909436895013040639849414685436860468061795327321532922234227816915165509103753842856862230945338888212072919972060003881156764152530041383017678985068353349250185690532829219865764105790630186209568990985528604193351197717551500878511951994075103450571030706071381278582457481874964662980569788552402897139014749052541734523353821953509023128733889515848517807512441367738169710538156191730311912088774507860127267209205579391074147067019561365494736434663941437124149274316556205352124346786003109697067883174621671029926863056005662439301211977741128962855599392045520308782620775860405031048892486098664455414330903874115464975818795628161939078073719141144707742839343506717571304405491819726500776175234158097491095611519229013897108992819209883779907329396084768784256387912698643993358335572161527824140885275676165234385434366261291437814714253430309193837752850512629359046194027809965770742624012663458323701053214523105617855169720626293422116222317413165746809637583141752128811204428590532975552505902085754482856380427066231734195695229977242951116665852161185101626953779075184541183568023870660069080113138520612941768897329161940114425209997187618859775315541950298912896937407341313267461713559004343308743763973121913721434963613486814494112624167515065104490493254406903689939962394806653626669318379850453886636573179308175998008824172764384721836370689912633221097737722457850642318045354314208084151879381148120971986427471766388192654281188872993650045146606002192331790603251069699673929230058958827011806634714720300274833044111208833869049148949724122151929421474024455226466498197390143500123602966893011500477086549741686321072462078123081410634167614590644508300832758580598493437284457889098123590754703915042674714985581095257967641968904218680559513859035695767659925388307938080742268465369195079238202558271192340258557815649162653840799953975777804046778571389430972327951325092070838625130599542852173215971945813580830986780134119145315554672121548497141287958156995667095229054618935841301026717203272237056124219293396005122013949911132442861047834673059565947084362509024275365121680749784398271373516740153490592902906200731254657135412944822337131851398888840851518098735439912466959499580422465501195283493033596266728712572356843752323009619838811936425047075613265314522466980272285654400415429650470579052078673652540715281674173877362411763346764951537646907677368310380689973500374266480857033353003787911642683040762747995844976982045635447727876142724970380101792502867536112670289558288898340579760479383379624193511148270891638483715181279945977673075574903719509257798799603098864123545228470723397155804725074943465657856045487040093121383292412867319792282672382471676020957861739506001707796143939410735816473792359309901590461134804402813709072183759285271502322491449491485040334430329408844808145900249981421348323965100872526572267326277384875682257515968505841203428513038648062345040620934157473227329338264590070494917063116794269230466168206099636680552105235725254347545513779137036901636451645909234847554665052286755998732821439868987890394967485759196654170241637375736125920226278935009469826055362993344554180713205778865327421932155772586006930091029649914915540798120078430934362518274768831332802647622931298578534836147479368333939974213432575543477617990373132882425174734360760140310767790649643303877787004411280259562013154858015597292939383173827889470862603945479364604090808352428461550311990893846019854329316066674157090325263495583646323429555689191539534689500779184639740917633670141203712330373751063919868233542863334827281616390674344810319479093959917763078200496615575690121322538756036008496619033209130262908152741049099124618071763882738999379234932716654428350244524454027909682083632116223061801157917385772348288035902384349906160109836604173641504366188873439206971569272541612444338915730916889718932563000086894666135761463217763016842781078030689342590303502583922372926770649387096138096946144288078152304045122257799046447931881829364723571419067741795329602646050809032182651685700537918532751640046826391181713278521884826174573765111655105729644454780560525619607925562265558957680365257639059238348872365313918340964579818302531006165110158905854413855774931896777864979597656303930195437145064849466020013215436038779588246947062774502788365908893622419383745045054050786408186431196258332223098905278465566108411836489419146827532048277720645050460691776947087752591404394045838662089993948201144759567946371398845030998727719899758234916890715101941550993334876372159488267891504124227621068807719132989060368762467946353247955158681775333608382495077856537011649557028561092892829969762192851449699869196980964212540150439075466785577878121437958011902614870687529541630594319479466934515128090968735478642590052817041074133154017034577242705773212333445701012648304900843424150845264482123165197739089611981924600233807976378971960655668978983764108404363575934004567848734900636137117496680415451807896727767994872455577631790072238523391270907984625131263899394875921755559510107413682168580015300758604841000831298258713963729177151426690471269931837739950498984172566823234732043727732706598077783731527824375231515572546662279693691607271176903554869190340718920577762872472717890446904259627253048224950763253616477880570293811577134533265318848070948087419616684667018075129638313079282684145708576094820265534326063466117490437625701829776294371163075282898570500323099685367624586739952422146608924096671353442372152646384037650080427993096311142928105682413072950881659779802446118399988995648031832877851310645380525305135839197262862872121145642685748525659929330071975462665776476787096905452313452995606111292429107966928798189006509058746279931088817652965498342888345961929060335964920707582780058868004385153487936719024362902778861628781721576210512065770708252777238602022125010571517766023627894314601800245323602625761936959494212555840378407614051104699513723896548066086167787225517997638581195516319286407945713579839350664871071497412684435995730898805884830693454650612582716505931342153415440455672356283691986223077380906259443040093106726773403422592745917224452288239630989774622045456557625760683517178188743715428684919480734832917401395183723209373403865990590818442970703030643327095339594432227530160184410445172027266554926144537453117824764497582497783622483393035551227149385844867171951640753413347371135760001152612419240745034838323817738503429727531867338046359482288082714053240347137640078273551671772498129216235339073971031073401076069605940854467197027223347214815970372162681103556541550546513407445960882167527368920982202178071203441299485914129847269802472481647364031263692121944406069453266904683978021218175990404582071035597747375567762737879090795328898731415760903957793866153802135299761046030433045724184888906295109027366676591846621225640100516894421226302494456215067350436758339479587584971801490851978406763673190139063027044495018714621129407893504184103021612260129219675747160057983061388556064499220383221890397481827891664949359640419713413470729585808823201928247216952979163900372281643228988523287704572398888428494826232054706513762803638380325350676494558076355996934535277713917036880105897246351420223093984873006227646376699948738990635878102591508810135514702450430435692987191150746069489874021863602891544784746908469075735804127398172966823876401721946818310830821336290942502111877528041681881566927482638398732777287128555250132171951094992092189399148541382157907064239089832347882804364401288018245302113336450059132782607127351432054082080908413131640691312552012401320152071853621170930276346253539629727249879036247787163773871934243062516273633392278058054424357766171787145683827903187881932419543540203950981784279724391639141111372203875405715350369960276268661838543131109184893160464911059278891436030984007458858668355976435895646279822790659613872782282434293831799456812757780432038161117403409265299213498155147231096535044444372302848245386851732612009525926597776320865973321309287295341419279158001488725595641838244950686151840264983066517918011941888928851677764173896278345023795256515732170297349798327387253194760650443815058817196268607267827497676602175241742546742004978359350048414851677820469636574604800264966623060200754265982532743334964737471280757959094189104823734633813798606549814807067813802198739958167135210763191263515171051767640987620154250586477223333560210812291840678593091800363026840765076807939105147004274353233726590907309892249506025884607373879972122162078132621574057416464730293836883579054269160267501544197411210330185486710723361349593777020290771158453149987434002072486911389340283628213408177756535084491955623083262513235722334106349776140733617959166157613587780463909628517656358120820456541578635073095522575918658180943433939852392092226607332625307597545275709024948018358215948786833758693441721021754643590884358122384381730446021554118380496152340917585792874553350819457751397631865972472380754223701531087330300321674704223720197080088335150864585097744195807275305256381885261891466631977754971116411749892347410960869129236951237548990353049163778831474845308340341360012421764177329986672389112969787321734638657549608254738270407247653042581543783283671479239060382176720562944426799365417802771183027318433876549916103766849581003434766510250314086398144418039932623285809197983254566350184034685220188793451912142529451798799100231005245896886401034664476648851883033563355834585250153264908530244280041121214563686602496740665942328451032717884212921661122555600080112873056526478360995192732249867720347848814251606257471393385026282033388875917528002245113073498986494540921313668509982789420244332566963924439435699394776871853247701498250345412521219882257471129371366349107373115687393882541961592451337725881851143322233041961013135803954439732437630392363585116284444642030392336791942621221926018842837133784287888697575160935093029725138841208549381548070836776290532900681994663713604394222588938745701056390801298876267887261826950933626619391845329542322899307625674976236472171310352179714251045614754644068657891408594497603141809728647699701861925821752476694658191954511254619476901545611182235221239437194292243898619288016460259302845769603858485533548341265072361588618212001697880291116748688601368951039402302710040802577470699125154709990519519251036108728608267902969667767169420881767673268446292295108957142159496891509998329529833021869605776883244659635876277329014740591570134349333184902313627002378731073028464504272893706500663229660032168476106951045729583582172199123977331425295736370597981823166552585272097199426731936219280423331906593597270259296569107704204169108509866484003525472292466355353088940831005244858367772350639765550000210579396711409908166950910228542838464541747020664891396095068140798776565722721640260135701765481067974393952864191114188697888564756902149113289748712262412434522221268833717212421789764460717783135442088721909368076169352793315388519136316212398307184242953144634634922792391917983843564469870207258529697694525826624594174196403047525315873721468992232887247721321534346864220307828959031143900951742207484784100441023143948787834061957388546070461252705737686983374991714767101459078182627438715092326233578677780811068390051169752626599073994840887626955538436119622758541095286889054400451464290841963731823010972668971813689284732623475859976378186041333200651734013673722894191419799715624087785777751186374325811257807717879138791137043205792624077557297186460755280235693263399493459723355416901823886860200933145113297528971394813508239623417676410784893174921164081713502787572337029219914111792046566938486666923984291135513607566633474827725587878293993668554229359773786055453429426638325775559166215805820957885983468700025190742191235619457687676697041230101825849166844465778059411527233853174871147306568846078441033842756043818731656031711242784406895806099301650158629798744248862922456123691652476851362159156612054941521081445421598876894713638226414441063591514967880425002863648788026803316049056786740288372320594985027486669780768168070194618593350331053125635062599453488557043582454486562467177340899545398738130005797516511085833135761144917477831715127178304431250892913505101939534137085950519898637740959100946856807127084601812373687492247744500795958011334442472758794594039046041334339113202466283106373915067735019201458160222018409392670575918940134977286212320001194501100907067318844943788078599864431498649591176381181402981986864640423037140865707955194949486389650764959737169063025749859050020145717466043228227509463689031066849616495720751443719161914786382382470502053922704948609846268467343820448474355582645046451075359336989766367421573599744538274296145082927123879698336680313731949210051263504191647602204334827445772409282035066523094898633664715931347133544540042433380870409043855167232021164500599610564709324428503311137400285916937951905971844843349988788827492591202921035435099494533213950946312944614685291068967801649856227780074186921254417473991261316179276190009909730531811457314788003142397462188298308710882033799068618027149540645921293264130263056385513820569310640180169317523291591387285576950121255530397158743651093917357525716682529956817816715135009439053150238706183880049655617959040131131514265534400445467428179207634272279787441421402391893924560656905983177083660482561948739111379225255979266337591725024249869828488904954707973848795264871647677286026673936324588063960925916932862645179557537338328150207127949368938571444334172917802907541635821275732065060135238885917859255199206048820887184789765235219904690227713410440707448337988103087137480807884867202593948741092126986696346064323813729768922869631928964156191287646690177506296289215602037762141388994539731159191129932549948483141704674043647801513656778907305349046403467569171623902492862527813224994354557109871660053479276217845539502532458805776024021725683089672604246509412024136595754108781654777455097894106868599842442760660606229262497289434881136120558643081011264720375151107640127979222537405218899678158885685005524815603646057681253963295212692808744146298967785769642865939425182323286697010568634709968411580605691463943660296538499446972113231282306554394510428476387793176385104751789428032052695109676948698358806753452220755628590606920882556510783186360187873143012993013083381702063081439386998244895714153247842183095836226340770827181710909080042153453171971204023346511720733287225199284313734065129382740341547879798767990764806292452472880883932150928028898328992358903113838043881592160796789223870693634048878981841355461496050268272907564232629568616980719677493287955042562845283657885150837032518177547813696874690607631458192316269603025918819041553991862332169783211260857111237727297470526504346449294988017261546013612934244501217068550999273981133262540254616471332129786181031781428067160434742650282884933489081775343199090740335582101007641655035276838108179185381349804672452743174832866571654316941133456540080903886696439203135505399094617052969589075978551199021938659440130313064372601212488935628712937186616984074682460521022977973624149429145158435171453490627154085194628186328703690633507164619119340458707812625447807038900795360439852326353460288032409155070213318241078448556715202767577532274819121431510667813548659138372790481077453983597188320307873631532795005029066242302088936485097261532314528177533394607994313692412555494463703283714167773362218322338511416649474785588874098474879810922522441746488187361433945656661424600143107257021014473726758917002586182110777111400798205096596970962608169220491169996381002331869673334860640616426854203640987011229486607729567904982959596487147217682178410425238070704186043133141820261549853002479024931914987551297981398183793210553995178663838762036437821548091523244444450115495521729470933389199706777608520780428006345228611291820112856502159310299534558871943605973559568643213401311585114933708724228453686483712605017097656634365129842909495464624642257190269172458389191678346730965137125088258690007748938679777723021434108365446221290046500716525307231329160386085655153964578362538541271231815379535066351466982825386310799255452404452140498879783949501772028915213388796835231838763454766704875523122911183824588675826484083137688644962502620502549046205937478725495414827873950833418727250139558647201827874559252418763863086011161410775681464398100000429137158689990337824801430941726313179550747653749103471028630849985102242551980801292383105454290284597900456987028824350195230813945787944502842658911437399771717366964573430729337881997096760302530530713594223565119096534382612199757318689705449683404596802077270866431408194884090223448932793757813609002980698273809523467129705597700025654685207774734013351651522424974288016144205893742249419067941767126295250247515283197140895565961413236060958560133333965029818394910796379050508226531578062249997317022274591504972621329469821929039519821696825448023580627980692184971446113761450995925308670938720144481128950605011095455763687407908763176362448537089137816132313611193222480126719020411939562190125043946010030106610106597857250161063338634773950711192728107474792042210431668238466835571314508554382358145418199184362273973976586537752008707445237533093177623608225317494471487288251614815844529483316311135929091616783335207501162103186103953392965956257402711387501482692538444726010530341201461630738767288894401672832262653321630988261606430744939534007769565198832444263422682742723382429444942221387892738909114760820452257614388013630763835282776575096157875846891713697723702502925045668018620332380581429569914107473982992711427111271467777541903433248755862648420463710100378319848511964576174150016426997070808720988448288448059588246188471662259911936731233929063442994837467638677857468739019652057858384919381662894700417103034869503861847470020353036236765079155784322104814708130626674736546083007304612873533484790972594257287912404121061046256769366452627568053105199415845384675438695466630058753741279869212770419913503700346975036397061378410819593686993373144254532303089536587575036435910542856428469784924825696974103907975675968948368104052674704051413707363312458125309300698963468196271341649374874025725274131939272190430748750448778810385970043566160153122410762021005373764159741567405003488663327252739504562508904420029736558197907457747047060180972525518596970198215719154558080349191620784906545305777709574031725767859790040921486458716378183436952348456361446673629693372166686703558820572888104344942685410506910745674998682097073610699200754180015883437739482346813926434480516720997148023808993485071388490217361004499503822867411860688825324028442749298923940698506880114540144967999332789752053299514436482563907079422672959827757946800840291135716235855717901973771594364645576489583853140444806596831969986348750687488819500204837791304300724870379575473135765032890696955344855256348693912703766370009453182949092005543972531622164288603082258396064740654783631596220914005115822178952144026328423127937887692732972844188445855388749225283728563263399945065686806154054383368196177780275412530465474874503582999367976764461781337901192672231824441018006080143684457005128532741436473207365718942673432906393664931074319446846599344689294062473490202742780297011879978976931054425081618797192007507962650568569179394440292103803066067744540032704443106595618432974036825154104450227278791013050672706852283582116028248994015414110709085242761128439259298378777800500583315244814312127511624069270548259461354021796948329990885666158988512262801639183489540502156378770224026413354883687616914312949375384998616240653471141288321249116622648639308357397807556142917140068738185551345907310967435233010930859772740910857135399458924926281356451506684146734086882664646121614218222036568009544963768746773645694772115590571452502971016946642102409881838001533784565335770940880360354349291845465111579621112209040994161363577699247565436503158524861059934909003317944903583012503590686621990516769989339015692104218390755434675936915486640554444465834863676097270334592355376594534760668050257577199479343385065455685824519778652433163422760369826563228818424321620514336045268912469511942493477031037378996746154079481889277454957386681650585131938304860382844810065296957515517140643986690447121983044153128993062750833614863774279999077326893804806783171039017982685480976683921451654771176808784381281159997643178556717735335292679657018428260927307518333061617327455832681432792015252122433534179665865825989553070578539874205491068833212172645223491405558351344125006550321997712383157196324360461062528883229481048202903018540270202694779531922686203496570912110145127870624833756142870735689051203475334865723911772086866801769172138903962860262087458397898327739276083129153452006231545603297055521938823709791588982256354159361860318520834822851128795399260889586472288561293551679112776106151810961358506980472112955475831928112362745467022250591261494869904643293341394986041176554548318441810175212955937390276494280255621627388333372221584250842262637745128096253418512670206438285970790765957422693841999373159563364261446118185242391563509492645338982385540209406757708944102187190806879059233959680918016992092893307890019316376117236521930755391375520295525663323011376298598003899475305106741919345094834513851899516678446493571887942188952563314015057113356341492087199292665649932515330538992343290186278695032240191872226706161118236977505510014971911142192490323366262897695589977522405943935803358454675648431696188353400575272612277671124283038081691374356774750385279958582730422617341888309723903716889605381116891161864792264065403520386739805079830614390115221514383045765823868659852566081943714696125083411310222338033371057543811456457623465979696396138855841020648081147210148935069041947346363993715059688995085347811773125274955472963020816888892714564688863417104571021147148962225024733134460187018113885883801930948194284574701819018289760089245904994557800831613410569893944805248067210811111865947899656773082880754963558109460185993909611166486340344619458836987761237601653392160872936835774559970656533296893106528938510899938554150961484896396058495395672618001072319190296669928054786414725743831486438762140947925556128194223291512547483788012610319138077425562352715726385599612389772880385946446163598658366258127521265767514400927498563440275630074755516585377832639764539738289692342350420683758134286351310583210598274588515684706656234423030407028436618598355933060505790645260568114743842245270215659221678218659381512546287454854511623439230575206810278013160075657282842083979315112870396790243869727262233680659162797961777733431285188486881609364115214693047366973467240155629324217224862927373588956317333437395228531032917471174859632283069027937509893693818729077571258641685288117545313132592675466535728863854864139297696940530590679368036606980988840141654566380039122396012714390824836067944250629052549971600792056056041129121390799937918527235418643703975168061753379661670140673950297310106935754901827980578022513250938074680651902334037927688612411435594408807781914193227994407063654438778640692803745621029743549320492120431015514142425310509845418768925550634708517783245577205296513881449304326214867658284165363916663395062915362158273849612462647260420137024233538819215739762302811936138649312281969775256455239230982298056030670513758339471778646740760998582508754249272166744149905475512992121710825503143976738886466405417624041366294682639739486965783592683110618017723137509491214375658325914621474413321963895205044502248261273731619471708785344521992925850029464522483757702502049434702237403690174709162119782675831770343392209782107870218986307974439271682480027608460245685219088743691265451393315857674390373836127996544671260891239893279894454545224221878003218127253688759843017606510673974827412160351332315557527053391027781411945994276276809716230332280630028695253253016790953515960934375580523280593541185525654420122664351590908750574316517126933340689532204898511778335548862425960928205491073265348488402980822667111372434092489321645902402573784794993365881125838137413985215099419098305359906401987371012625600290775473912769562164985133489669350027729995815182685120099424396564038601065957437902342856784513801320278318978752702979685629474432232879472460894471527316344921196079096929029658961636884554573855894509677165902503299499706243217450380950601013710102089571408335374647308574562381288706693288849257371803748115183775299843052344097393393916002160493671221295044943668563683781496992338013499843510566188799005307503958974981253149607349491234871746772758563678992259881512685286342799636027483291940464325135837177957181195514844319797381635101425401866497785293046080278154403964377645108555412756399855057059202863016814473142065126446697638289304412925651879475927874713862754949533886192446866288740516374008598797614905564559177728515449524605720939066252846072169333301722752112312496192307918971071656648174972523875830613475132302236077825677874054378532203611919438501100792449855717760383835766609983938983973778101259684680521263438126320767253822426304859161474247745309338201861180823721895295233798242799948416365080573194044689832729286260814246818868780503944411168450235647339078711432896322807088165195814886577401076271775114143924805307690797791630876583319357715905435081736302167070310545344573318902855623695068799746235695031015676972494937828519590511955181777475510060356440305834686290467486745659307279486123266654540261055413147736928489651518934224206794056106010416410906214486065248756298007971882398354912756457216986577225797229664765487675932683418672202322690448325406741035025776614161536046419500499010002244354499123975229395057700239934740705527800856408564815441133967859362337491018497113626080740494311402484018833698698407964762225018669525071762228792844806215534125137513675988348012155157924533931163680972379878443392754172877065296083586582459856518372730778695425776490245762867813249508102620063424591014913519500281258057552784360167932041590151164690563121107224311414519230217020982400105381152689148637257785232725870674556689606482208541220298180980893463702576640469467081809757689457195511471645243062428259021393214465870063737041819887590475494236785417897601755655317259574533725137072370263258017871724608457553735410030670376170639756179493303084157652911778290567292938219929914852607296854618618235252861896568241991103879202167580562406333606363937937377420718142860654148288398215600242974561776723447580018082433999475528424679186571144135749691403355273892588476639299613128790974803773481667530007664087001740937239812929292493760338391220988523439215963180619085548000228212468609577826370854852946208322052420295161920029818986554838842027904139267350163085649943866834824715665343963138599126107834374533572152941520261580230459008307825846580623224166652026174781491656693156976059459086620192344684344762289251896842561059307987648337222486832270191126722619638857362133512852836870683886987989718421950132364604579916051373364981679202747485778499064605731744657783316587130772463049357062586555303783363459514869627956913735646832896798145225132971023784912291120454981646455787711859824131707549356375753385272465450116087270092483592870723536658245841220984455755301946262622238746674493818207965286201128045266583648540544232527009874215451681586129168490056400877562693837551678676158082781505188991389544012383506642028191237086310827123409805951851976499090300508339082607011882434987845967990994188365392992623218593400226057626825513485831870699837461925571670597552793901148657034784581768174739883485147964365669290493984338522951112823138178612826087733279099449218528507171157804242524428910851368700792601426945534080232504543533289144659543753350876255300300001442301365443562402754331644028254565575266749218376870949605614000554933120079086445672787761718994376557181684514982826480608318720951193508289344710642178178387394092793045087287854088122535740249658317460098689848049663871533692546509501739423041988322129867086489183424397248616930827043695628793922012529512238482213774456569341211991970513811885994523382743665087030847203573095004188847955386369108185270022132960477199395316276887839039646565118125703503919852423017182049890925700253954914361625462141644680333312545622826799111864646206649671351795378719099912931511145725531969699420955270687845901729749477330524570634874008901563727844900210370556171131560891151950093334199833703709307429829251057547555274399565925960227558143610105658793692654542419063371762474931054179592499471611425719656832503993586343468255213460752629146645030620574320588086499558895362711505319708401484641912453431708522260063087696274429504867376747136259938305464908476356328879613156818153061881667848605943051774201107283206318571490223542381791455965152257722437661633624385701253775211351956420212236873620433925296860751502650265535571276557133134889225600278193635527182426397017727432761745171818247413661670505628388431908441266094328972124126022763203311200486414731067353171218133748865891826524231379033522212251194581933467573778215657338418246182885855485944640468672400684228930333012580655568840066367823672681722744112203744059125755214118530595524105451363407831901279600730801066350113545457182339448410291603744588644532599832281767326453082542853540979999832410480971967375224345117634980974987950813175451585779398994369331888182863943632461628894858265291694211989765446151093203556813407699573852289734652446461316338610615859568313840328262961936125150493381324789249933884581606619173948877854258986781797098609286710807083904564139158880794698651098724183731637946228381257047815962771737083100937040974361436242639057395465995451791999212252970032217346496034399973063679139301296157684717466062957822027258191044145335833059595109611385353910570569240745759685028331918959669860145849599219328952068609849381324575477383191468722532208084969381483782818488180843065047198943850044861536929098727761482278151469048445945545047868028033186102131011176187362563727527022202801813103364227811577932281414502646532882587262577209766809452691276793574283714550512928829235919757518260644067546930382007791342742132048706330026387455327762214889126595496393291358581307710172542221818792364933511508099995189837510271881008303791598539083952263008290081879614314265432590200770838719805163269949729629632364985403156550435871356302367516362989710258150013010115265041763400371027853733791373202974084471629975163727930157010248462918596752760871965048211194425692229482028845438065911548239591242433745131796671825062776421817307430368779520645383244882970686119466023990736488649141779088703409544556638048707093906428216546682346913746169419899669314881784487908037730463538325320478494186967331512094410044823691312220268250841669510087757493773290723366579295769666331694406529430674249142812859090397465199743711538079980605270238746294774816749389289248178768877512197744385790568013211063488971040632440831979229153124598407303094574913621175331667425547914064891958162533532363135041273933303154719400012062671992718748530893209873093944017839767510016698468820732695854779837112535298550603380217084047598161076119149578143019707314354492847303660562240649090073454514678063169372019776984624674106387081513627735742629621375659311223146914678049317215631119497487673843939713451390331649775652632981023924284940418825633049465418210974681805098910285999682246361720532753441033973811178493938432934299955855909040749582301969168778933249862628595701257630658799269417720299219247791218604209260162610090222477809231712194950275219248645017483714401111417854151219589558104938058593093884264729567672302809878267853482673752325723730611126860328536551101085310073581272282530755072991950192355978081111086178191351623772923765408801122423516704417630312023832368737324323453527094540451252433207400695424297857221887242447906941429968572447005727124050231234477446460093552741417725435919859304376759885195366491314977954726862009718694554449438425713365785890159849096045008824244071316285775697052237552645344230886488418847915014105778781527934290379064127727018589854054269549523624211272361898794622620056113940467178356632301622065872371297222337403328038673831408548569490519162825124846579396794197396041704487009799654647518045251377152087802421260493360489690995953019048781844673497778295517516825523963136598676172961382052949583834567967767851813694096382001438828990065568939901937020583158359880636284436003198850981147307626870069519058881492111316934701599014217440711071007386381097681993036582442600045697096149916525507778023901730105374991629392422741548964898796134089118002511784500583317949720978883202448065807616627452677737888163387009101969233050892201746218922462134219442327622182449954587967246966791605992249475833690560320559962629330507789113870948978653792521441251434515217517217075820247467642916604338677943297904709093845143376988651577204684833115679035880449598566353342482527099506104331804795486623793630940756012287804698032043175483339175886009149693954536123539703671884441812716438363921971609977193212683137219299712120808655307808879636960791689401291695557620455507534005667262575995930050955477375865782316059633043232587615722942327983972457298438828871964362272175940761185141310357105812632130888261474227233065509889254073551864019008256241080708430840742825294308101232273465369324771779245194459671836725169278785554866703588393956501062555401424419440817560088298763549376136869854190264011059582580323954028216442738974853421652720116933273900745089648610301270247511055800303428186173855451395156229378344650122827202776885935019362890573952826303520452109310808639993316414843819105010905121312626596691477418314247847948199978427898533264596372662356242507365171659725813187115532219246397444219519528081350275520575933867452870241317328592306281379344224638762387859069658068300684346833562980240654639829045364861771516984256267903276204331080540225722823713340933681604676476396395408005983519563496977843198929760444708291414841983971467833727456302649973727925938071810050090521679467965656840422737009296103161200232361397772750305625214623869913270357601014042984204692923308168639928574000247309762127479439119672000222137065624517094521173764611359335781216778862139855943901576648560134377551156984855452861159078630044878660305842469868619737557599216646474910204452868272845927077574824511870049688592815324302449965152178045018913212921097975822085420676671003792763944234096843305687043467231701207615579807644751888851707147076296076820772935760995255343429845085722218264713599509484135916214723579272789330376570386890174429319214228618183645043097868670807277273457154821582890769643361016336874910393542909477389698608486047545802179489082187260549827107560377276866852232451027839196511381140403474656873750542140994634938731764834869490221487966386213032681916597109223755835899719316019617773230729551322655257027168401060380713686247820400276327009797913842341936217571053996766983010126476203800452735535648816263957170287860722804645644590751589391264768661482161578420445845151790431047510312238993415368282301476443048341277838842527604524088013696642848122998695446284309819256135162634009532664537462247652522266265565866040885555466159069215199391653936740798970077911417446020909622723052900758726993913805240389130540505651013331758927627891348731559447259623467756448733391295316081953791436682843749827524128475807763287325871779439635241369547028430630160412331172866984981035086072040269001366156844926165110472021367853799241978778689489830232661647833030977233292750273984732454020505569279134168796251197955531058901931671002918513390457143341334803805416826175249480663114446933812793807259687597069757468810243642278286109771170591845303960439882563925862482649491766880651902033393465404223747806853547300155519133673839539263786200333921331703628210035401134658085534700980179206752284403892369705480899476833184813393497207960535641046228719334969798377952391536273591708278225348364249444078030739157169181872901615860530960010468873667580810733977221049827172734371100154149500112752926263154998810016796827098815255900348012615307337867972403829424842969314828255134216121188544217520025174601018419779821083226545291712864785866873812734899826606362663535358241042855529583972342951933902831973974887026043086461229859145141778375139026418948174184522459645215257303212534694060866510862017985299303122859415010001080600793390362352391292683988865171020547121980440302939619895907944206826860814483715012533726396955229030915994059952176275525826458500951193019085526218456292368390380655888908494381166516810186578423581271666282024067306784887478493104456253609946570745063240156488105124857741872607727672282842624723222822955454600598056076587298889070424088640130491400604885490330859767871729907815559124733379992015008314331617676276468703311167596973167416343477670764889929931035807716113834219239616153909530921400685259668909096293889883814150971592863415059569807584645559071390561238265172795912251733953182210603822526385270219647861268380669306512191452289662111158794737296133500982801670265629248868252098494749121922476525431490477313278418390587650758584594917600994930139190955659482400836106828150591312545551482387864380764097564319449417684669182417042802987301323899651387558806905915880992803219680889053952211353322813200297036653298692459233869095036685630464538404824423863608436278171541566252115204154929402734066848192102748835482735948979361325243391194082663689435474045640826500453941407544194637660853771323055084424605509947637103645256344369852206312273347653384607054626422065581159667387092035670254423833928988331895424757426691694614242271595563594349215867240757347051043618366146165279459916983297945929803450844969988002890457330470310533879637194091320291061753086151801772780185107506174585082221972292747779757273793409102893510410573270302839840671946897178204312675795416841798021307501854268109479434309509189340374430968946724936841586841366095500191142168086315038634957343013751178008163654505311229278760505341924438258093795339734839170598387377941211647432989117674763316359116564867118546354726162855690887502086954779057801402090344054679965190779557796155597755530135157056043068497204372861486357660782044360832903635692342165934276528930646206704040662451812453939846297100020540463814005713657802783486099465073318948639051190335023747436786014781919828397194531429745387097117657579486711173587300487277752039852887142322377836566088694860278568348086382319202635544301804319797754025125198137985114106797961469981406329737079139383900826107162846962596959766577316285021023682733028202477276375446672142110956483088696915281475830170084047421515760282356542912659542600385647099355938552046836947662600655915535311078500774638438126955576838591820546038734511687453212715668258215764154599026614952662512847737442991330793752418864258506611293753793009648338029513290826457669069060913367826606292887949888748980922553334050174604692983434155389907491155727248100018922963666219533302446372067599299753560959671048665516400556278251910381548066426161434578020399199214134041191247006697037223379662024220534163764517308572192311765130744617700590336384521627609949943625582117261031737119344522923687365973103651803660985486611679127004110844303603712684981318736080314840418755587406849835623364005907067935821786850436666190013952083590925453867947306930285115692275630976081022216379668488589339591156481075762903211207906189239850549740435344143772055290390998029872996034388320390660460485137286532645662770617958488475191290157836862764689797734899719301585600671053835742149840005848192813576867666306468348414162662922482055682865464902731583653145789883858409032423267820430684789359637160590504544194963190701502382867807355293339735833534219212146659148183599804670697195737777263489325148814534411119421803157807667165629646964513932555090327104650102990842525232847514965669722595162784689170413991835419252159247723479408315919507941428920062951989388339936759994736508610544944060220828741329379575620943976900031545734222474990904666492894131703916543978351760044752127216790695962934903766626223363976108137922071251283766679631632076779056248888427938632238456259065455899994728603010673015339006570228422391503360309279594095736824657434995270808943206320158281288212216275236057148250022305710155285357880244532834540215193202223587143162684576822321473929613275820310731062089893431824340857616951874769141391999734498129039545210569970496240790688150922145126847493757050600675344203948946587817989974859384861818305746433717109338078984140369415213508841413806299857845796100691660230689897586159079014866844097284121988014034027729203128207414218057946255181665828345742796911474491539038904607125904955953967118692836713315481048360733049205938702541391370600592381879203970319563801853546510949458479081081374453746263774921798009076071190111875085599532099310529253895982630944061022614043458065591159070218738317500624978451292426684506101499594331579202732318693067656266986958133210589417930530091948357666929491327645680226240937910915128482600804059588475729842696618898184881771284525337813156710733279447679149020966500675044125177835915775118763934950619892709219999439395224647573568522875956561160097575830429253027955612919580713604085592719102439179810518724215564718265353809250730324445581975823498644903461500436245074091135690530161425725533556318811509391016905985977474384152109432534016400673868722627620582250747950806318493564176620542788227924279856247400514019827416718737320026444235695759194422593631990666818487922441920944623546875626273545356833900921749763051824792977411229119587444099374839216124726101504337624390662116483319449262546619756411881798385050219409544992349465834455534871854376525542332347545452384145328153464227700807419478859662521764696202090411906137049324150027970771828470727005621741608475013046425256217739175712045245567382901632295906679938398940298059410847944824225387211595154239591375309231009286451709050037531562612216658468147500502537142633489727112032506944397779350941025720276450270175307452430505169885647433793607784076812480462428339567196171416379923194932151072371126987126135611858371832452310841046058527170630453980540843963960285873279341740444446833167126549787311979745411920503860162777581010068446246589222395243871030298077249845543953526378314206780583115254924218417880246119190064017815068225814805230863788442179448230476644578000380842902605405727960502907732215917260716157323698020338665867275968960569578526634012430746740237853545813606477622886385893052501354827227487784729211446682421004343679991706495330946361953197062756732049197846502842863721868960474321196548548353962116638182042685968654226885500424955354568423695789228797477194342962594853924977841929200175635689403710638301096500915567192987795533493726139327609617611911311701437857199187770752568387263292721208808775619561156286665955590681572806079005233348277030669969652218117025921106064114122870001764643994023329285223801524933908109121668384021162857496923508504876987600754875830291136427438697554926501189227663744201538721315984404336607466128696039723462654529320800066476875408983507791105198825208726193830274252168201244506040345789752332058738067050582775218767325519996579154303018770381408304985878151801281487983313547098262821945590483394028889538532355735473821506968654254337304802293017139012112622689661216596040293406241912171797366836400281524538517989247063702296339113773090426015663496212301892220804095322487124043463364579134372678756189430406855034195214965850363189592248662017030822973943707956941510933066607569609866245290432635504232946110398510165640143646649332864684252412990968870667448551340176013674225628953440283328062566296980663366737031813861195637779553301381251036194941255979242166273357805766214522039837197491441521695280882320417003725336471099989941288376566111699851179021733147267944999975757125118947983952855383136911175237355250375177750845221109528602532995714473186449996467580618579241759009586679497629931139767982887800325019893506391456319619717037985398637145134235699037308634980503422526201934763975557331941174554403322863892245504043686037115699443532123078536330312782278437557758865997969673811615548725158099760078004619869777853217682960692958397654296275220480151906025530498059622681162702147646714520554969669297322283381676169424122956684797382133501286533882139985226685525583937114786654447691063216566780386769402314537931392795563593943461814620688882053275885516947455648695590859483372516342392945748960067587141535397732246692463205465163258545673002781373036028683237868205246367489628526637007694185365487566722328320860582146599586622856461629478563696855075348817069856252245478638850875557158258543586266444601362388542659619426175221472902038866080873135848860436068094883591938715566753960450208890149621842366529734962484398320088857077513673881896697217786339247785964463567440567560825195105332026863710034283844042655964314974180313946319587691251894771858857885386134656137363990564699417975250387319218263911289817927338441931875362486153567350779784918040016044775530221799292522008615887882638485708137960315568979714229726057173786583962407994837784008542071962655378749660712652112238770293264453528767989411236855341715425193089492459131198671708688210758686520656912000370115916156671643189026099029493155907930285207503884547365726148692592008477328140959058802137757323300751632296335756405988714710917463186315236998609854357665136587502081245911443175414778269005047939590706028709026442861245568779878824756187251723669247134919958355180479714663538772516505511421769786669485504927055412362131301725051653937038530054678380114049984109397414722234789203503935832698271132370386673295941535139177407822524192664249022659818675925481663713905217031693826597020302478647759395622075304527400102887981989266924060427274118559951623764458682389590527633799496364570180495367381656097498792976967494516408893502529220926134473713276702874353700342398648322489424519448328648039747423153377406681567585673049691547693081598489651312735548078138094301249386051030635103403926012889756858845867383799663163946639090538393879217978571232279402011617622120008745475287220233923848490673145955461998515900949826253578515664536374403830787975482011854259401424860080600428416289293327732893433383278971700812606177945804201392450829421933344470210751362839853522862503752442624755481744155211399899062551930946845800245535592636467866912539758319837122941417682916832045013048400143997217116269220791890565611054249092398594526883777791498542715447288966906143342786240955365142860128389759468425505338205822938694190409441842431018356641201088572645735028645278969366087565088550287808834282704130701310303565712011182625684037771790539700868764017305198489787514533388762306504292732610733947173022813275858833171509735849792184777659394551489016969654015542767383435533968208368604137628999966246265210924214715155820966217016705397110352866640203119601929769951627861552955721538386791992698265253103311243625864205730577377629160292703336654829654614203130595533314329631780661132005954920710065676036893619619146851077967457659230861821889663271385132389469220673938261156727113644550966682795996817498201320810099150775065567907632253191171335868700241251101399637831894813340764113687118691604478873952547777797328047324100080734462256069299467387699310021734947972716337731513616707201740756215562570700705311111102206276957295844247944790823329128445360437411428843357344787114941885502622658177644490692152464149957829226032105947249520056184628404924163160575814735394571022386997446159228579992650600174280233658123985092974406329920292535865603597935246312493852278822522845068349639067326828472344559297819320809212563856348221175152193620007358385015443145914541727386545994383965167967304929055235387588568943732442617628964717568656385784438867456702835985387085912215466367510125340640841811641833438514509348052022338747974630557098271901310218253191480649172323962566972971447048008047508167402915834142371712423336757242494623493682266444691564640473864368517049047208212687355636523866173760980627279301293225978010137823777685862330372746600081075850931094909038758985096268090044409484692188435689917977127831768112702318367243259802041983179154928505010438379291045652233861635102047623459728996498383256197317238572687598726621933040591898399709939121334121871695881299824299558838542344984940223612058458337882291283885174329154033680439098789330044374524490483749319628271878987312032773351056427509473603825545044814140315260685763564786963321700905029833130756788644837992753358884580336591650041649087418492394648985770591109173577367121499418867849635622574001418291281247829101173848481319077321309546196695004090499784869458960245145865602751724285919993210315883212006055487146335386208341990394335247565795844802870136102911410079922886711938136281721252350721514771905914768036457779931726729833355632854529709951451570586542670667895313715873333990972791481811755763017167514093049359465017649214589081297894328948972950933518484065853601306962633789191067421673923865148409548306492676215876861247239717241369288345240249312206966352060504216757362003948070747869849547307866004579554870242818560434459654648910606381578154734843238350985658672288004500269503926179220866697505395084425002468367527068728557893606061648894460045052087281632676347452519849563575808414283885986634671102966907848820546624720804089853457542375153686856414284261715957497893674058792498383838621156495165339330304984474562772049127783877582855442725454853956544661924509331701386246002705541015008807919908677823896196360784479026348111375413579715540499246116066423809738386463002793823849930242257825355240821493949401904813294473226242026547063583657909867280624782701953023038824830717430693022108484329171911539872297438981710788840292715094429414498555087240844668303356988054166656106832481277525128467651100778797817120306023733216938213831337338905459457834227755440568257270429057860878885697033879450414426525741873766985559915550849825494953205396569278126074967881772793963400870659601805660229152216209203586448733336384671845214072673944180576574622172630933930838878149540274824560795156135373682804942387317245793549216567257319385103344574765504318036930032494761206043749071816016349021557114913604301458578409612827239565828557684867616993221479348803555275607808144660281493113358550144672759764936383637088420971991715588827735903722026828169348894656972718078784638891884636643584431712661671405324548622755673993033744460649295371257645499788122148828624744921384235775699263188588113390915611562156876734431830492512625868775965576956244306563671932788985202726303390333847431954928373104308262347904184087992124017629136687848021053606944003937034703743170894709928677560196835823588671315026294285807813187043270476230574711056922536987675275330486621431424471335580197423047927244405414741437396474196956874288208856104619476596804448592422192911755447195534095560624698024606140059311667994042045953431610760057262130643961275499029280812560135218253855184637058107761749622621845426825339834861713449331513210456694743883922835848321217849116971605843918899916676273947603632901492620557786557466440742418081843078731664999085435704701525869272746384541889888523827954136888232036567416985862676154124919254063867527045147091840265547635348438160264604165418675810425935971113880000485798656675212241452959825591493857061709523655725232156083361190446983121053364397824383863440494480613598862312428722376838004649204573047031145327146938187777259115313339339792420435357463078805008242008795230550664127130640901003279222998526195229612674502228541587792594862722747673457246709357976965417638456448467315841540844836068590342692590936098005933094685690455764576884882574099462960840599749766696847140101885148153189961809207379271035246606516693381488703863369831975797934246620721604871191215467194623865681653715404580888648418667330782393128614063493889234988263877955862579682220170893118984030731443853139519284046329516987821371655508288658071418190776449536053241814923810889344266106362577842956205365622895925686386679965115133241526507603673852121234753055174230011047329562011587897407908794333459613946601735280062000882226218652612632150044919746534071474920337160384168577031665889090246248542346857171177579238722938143697479591485630623615024062358772223358311490154032695341933247103065951152528084176608046910822180327650680154832389460420693333486644487104734877095816565981573079973024178243191960098312543185042232971875989195670994689571786361194711747242067106057681350315364711151344551851211592622752164007739479904171897351919005779062089690933610589141181813639321923297241191472963954767629171930401976487055419915747067395709093733469904520874689728610587094292980245217925078179168730964634660787106227647792490616926149898954521455248783771796072268195039813144102138158357826362752891615902942473679333095369605493479953126823005220658681325117194422596904465122895412542760135681970938086841631328796799490824532025587025134655493156170118978520252525497252148243940425549069253018089760584619891998312987995577931021339816903749358287329793802828933586217996569443427702372715149533039005419903664358874762568181642989390832340004277715653916166082427817361326178022748515095710791503594341932508488653103237079238151358041428907686825858449631212617596909230528503371657955945669580628884465484342348705582784737476174422342772694601972452705945147858659486216722264156775862367464585784052435866776316563251617866364784279471607715567750016993444506698411944466462553418443716826217147439235257741909842524254462603121195517064087514654824566732707812321647105194506345045545907839061363081038203700249765826507860206158547166519443352658695470051377835856164458407836828931387097908499683386341976869818966262865104366895057453083312619984682616111903526767549308221004888375452234012448348116366831339438919563625742078680349452412479996756285821757802410233958909218979149552534278576855394512094054358955340465332309804330263474048907638823031663709374220532688301832869387595489576415816534862698122240557439031635373779900132112496439677083387470603010997104014519086790233767853089210573861573234998530009552018071076718107673941400710074049875755722252578160953512983895165228206758824653590372230429756701168727954342775658114875088301760501063709907761983307767914319088733881355873905314618640638003389436614417166494066132272207541329218886518328389795816353352035885691028651559127636433785269734785779346709572898444268569179276689982349886426149268378576049635167412768859026461052119198540476315474733600480464054902883819957355755624255521506184477916864620002002242760795846592098831260454651426685094720643839345097160876288702410131413461289701426692217586805994498936018823180195046128190508027568068737454483563513647164918494516849738449981482798023459885715176342745185459324215444592897624554426844249531168403360354523417840751623178205603735824747870696829084422688197913946327185704116049910469416587396383073504420913253904426645685788929658973477383420890083974269976059838229010992347904209737084497774774263061377274035303991825911548887904005430151945081014358296519641563859008635741000858952533874516272196328261918778180752553341288841079677511250336663598957183125688675637054251820944376173195337003239466181899389600635906707566302623160766374685556054338009202274550146625427411001474715685239704571141917062650141187314402096013061977382631935588827271715122554172130816849917342601395533833829091516879393230967479550008600392471269145422980122385763758950575144025466732690598824912205571099772362230541944499031924979688377893844946453280288233737803383615919265232819582264810909551849462463985210749981852877274888471129101550567201341932939903600992451331495348077551725048824590796662144175914495557068615130188121823774832637914602375821506395095778684632205943765204582948487183518041280257491962880455647127433887955382016412165695907206113512403678780590054584420566959129136163017854551778973505646854851571627554413675950772167500953772226420528578931555693423399851757070484027708430911344721262447156241039863276413280353117770446471509035288903133549784882846734196160370666960901183409936648985134035729218575947300948023396459062273838500485015262008601200428524764560255779883315947920999539387470493073482154739768641235789684030691043309112722104343482001436126847363066872808467100378316774273977977286298651741928214119305897271850394513812282670344528685560821501030033064281749215434048871445399623730675062432525205752147661093099839928685396938876670742079172636200990356410261155630404381067502256651552418355683286742930872504241539695548266044548632230324150410367025629348276135620134026146930959929717440945714631790820029119107306937574327558296737083456773383838646783125132791527856775185236853151048694061161932943228264996293902560178541177433965652840188949527822200847257728504751070166197500676848834187269709568557017811489868700965790655544543012652784648250858858771599907413218086925823389058716018781248783605746273367170369170291419937434465478229892349866101519153685756329742403116474732924638491142138531577149054803331862492581848501970060628918659591550888967428841277543847362002655048396192075445556461009720124254789929173807115411242935063797483736356553568336670720823220034184004691291974082887108246464328184476992812362721883057603842460410307453211889486440958665778142868206152767818811851119967943982425090528745286377474465602733179526826085797287161206737333008795575930786794893528176281115623150572865703599012818224663136506500961847482394743062051259189734307576485742510615150367038186813575128124560402649942751730814798529252652800367946416512859463840950110836159271611263512594130239742757872036367942813560393316042227097189183201992665725860793158662303557352203075730646371264457266132253459656674583197706895070678264483207651563445315914163398888022073539197210605151395654697324295948269313453647058350927784362694329174662780644699611711431912968222766621263565687324330802140577618977075408918703806412854063596547582343126568106958269190948108583520856106150636128321276297371154526952153990866975157390213126299488025199409607252010572598728525393622757831746498823536524215120474709182065036573728022975334910560796969959297863282465791906723949816617405469844680993396463773424429874538433603789878816604606009949756835502383459254036627573755183481670554389226570654187955163088941508936380269331407561902426493698695590529773835650158381782685787566346024138052491547696264522036416532513788737673830972627726391729731497078554734098975384576782510811486911026006094542039488799243354633355635548376492163357135561114883005233842777388935785280087366005298185506280339380945946865355138256067269238975523390491406935816597225818407254067320789037506164540632260300868104832456787983322120076422829733221008143771408786145690617077042630250537214217544062036613706873784190924056289342187961761901879264010349323853729354253546593069523133333014013232819916686804082889096283437054888441866619513758024751812521903690362154088321594547288319307631515287013371215058590263323925329452775748739689325909893488957607911921176575401237573485699899970796067702636757710298762561732802785137832954512570801403432602848406718054146733234766150126188149716509014867161864459204217891847887551326757379707179214577293169723133915836410436673556321911166994915391491063296558280058373732806908432345876843787717220888847542836650670217028515386264727470563764544055333428824846331324733311383523805306523104668745210000000482577074981242317152953722721208440831078569448044488085414664199083530171996694854127412928205035746670215583057775226385962612274122192589258503927388397003176825244747047225462489119433690800530728558717220247087536753896892909250514093735649329288681747812641972438539360266305742307473752834265609732579881035091523216867965764765506680845674181673906508601479810347142320037727141044755852222048907699622166736362027418123735102010743086222409218662212618639281285074419294618158013679924803977771909472137137730008534739209049631886536786771593615967609387732960216854341648621717812320237968091502227262367689146369367770552041526256462078850233153950395310920633071329445796584446413807022612550294486514947151410454295459597792286134146592059489851266249842694903161308987038563304641122050705684700064762904266517720851055040975120777136818409701795010754101372062469369018365760092003469561181641476615268105502050719650290722008587137137891337952148800266575119902450435103672342710266159649673262518897575895382709708238743274156369909739485419365683725407216237498908823914171329880849885065990775909083988759178613735852490754098551795800259452494514266994697596033507126235498437820074987876657753165209580502694462627760666295371950433288388051128375775208145243447268808467718816828561513369771424554664422289413518376725613101990337183113711977173602990414343984557890405075134368006310735869496495418519197725409377723298945798049306648216831626447682315325787759719059242802616074372805429494991957282675740370940809047531123537606650393653197444828620800480825970511025111720123478512253955834974473197087235636619272803648318166739099053919578653323758192396898292906367816473107529245009747175501160298147965422433161537403177267494460284792738266124723824426635994855313425473828778445079028956497108494784169732587710390404588228858507987235804064749773685882015760061566962323597656904466344889388860837275450758869747499970044431838772913549436912814771763738643844120481237839757946581118134864373651936292218301644852779201482343095611003413395933898796635273863959349246345531127703140655372422772582409750599610258881444922389204845179587121254931861211183777302187969897477359613250410699773594926688787558022454855662673846534349407486714520441150264361694273844759354280892168351037200372157402162746884910935296845328493193390495485461801530387905677683760990673481844471635593429877391166697080484961928474477379441366793462669939052333869044188257225826912832531346841936314185901809142784629473905821895876755378359502946052695790335616956570793485902347646121763698473563584414591669634958673699897297852069528097974276877405427609631994982776133961149074971022531260615478893621033899567578137457489366469899510487692845167605131294050600619177169796743341351007215473624095065718788876565226944262126474329604090811887499449369777162552694222902692618790970686162121631626332510603205458544493514923749134964693303333463202288482913242655407915273097988396708227943538549178962482194844432431540290244870554727112590032953086884821437716447353700641576978256847418025270305847487653864671497297055665904614077112576648940737771281016832439451483744359278811577250844639020284596340577675221427838600606249544700516016522854223337333466819706808321658925064025355052763363355325547822764041335280136273004166567635648119563243351732319893794319749566613395589081435191314631968943010895293652168942816634285771694779951910333119038234319657151728507968964265471218560393624163632350019659026786599177381602145718419636809040679356556461433855939526215895120704708179400371024161484169697273529323640430464486520912231786926597078466481804036448060023063052416897560677744555059396693596006359673691679071888085991105794833052107050359907129416387690305003196377272084111679558186779604168980609147091780067674509463358732204557016692344676024684443567606914937822898260810144250147793611116093073931362698444446295429410938986911077738178273532359239070201175911250428182835474495214222780415115579379477453469995945198723574934111779112961075711627467594833257137631565225744695418682890333063827065930972190310090973181542039274359449203535671786962447599428719469651404682625985524518860348834229110419420063441432831092744125511867586266131079741787333461273435109180382177711675230560090607008388968460051831271538805862853093385163309569476147493016327272822988668332942403829603636301515192621125943760858352785473541000995450886462387237529263841647935431017208020279642635234428488375851287694103506115903111884036055527819124585247097516100706957004220904164147455514192304846906254090044938074881007712122447912194987744143215037249216706721089842896016681287490815136890724919218599283866234556999522997984119586040826513765429168857022210084773279277008765627001307518147257902892136810519208572461091953785595386283074594576957614694958930965497403115223208843354939606437961663066004019748849148715301616501996903379600972470525329191729453735342005761143744436666674911422461898514442735929711287337495245924517048876318164468242839238710869985763850340358069245919222478679872188627294144186329204587466346599689159661457456989486441075014901306584836419090760188243452966955533261338425314160599305948835010377232331792624051807589790452976678302328182112849692015244526064447702769487616899100615295777155119656542431249003413611167718068764977444901758321708896390624676948296115200979742661141302223663640427208026240980061053328432591033332874308610967056898440879364325935464818447349702167588939522948589436106076290825061343686787645014094380067836137982921212285955327343608276571549067071390730438913051614617723914722317569075499193461626978960807548213707793215666082563513910287805785062491117872389770796719766836118513876701463285265679106937385243533415776975706400319992213693967171627372945289368029913311116193593884473437932254916444591666881173110896417299242470727426959075109669681951022234967155532230254329106511461842126760133469965199925175996175109707477658131067686014886502201434759924431511372159140684992409035070435517664745754733262253339273723888376572347763656926272177075926123494548302165377203057521758121976092973525599478769158053514703657060456530967451394282745961833216765008346229764672766639164128045052137623960480392417191027620105723864208810385424099180746177806841302422225707968809354490497052677725988192699988533860806509997186284612599089888410762414525425995455770949129351033801930221669206531785468101318339700980690619108221214398836473637048619591618016655183529351816078102583842863678884017570615156737940978550992788265046964537170493520722938350441128406017106896531070266200776136979260150759546911504378902353350340702922769716468772272371175114366546273842725086111782766920640751675430770008844113351921863312823057001932335279939570158019856370187597538318164796740044786113930712019789386559943294441469079372758278055963736146860643553277451378297581707699233818385401102937106663730477375303243942063969255128656013652254043900551528546834874743738205057537028532856093142757708702681504456407405679901871799745085064491394355112574500823274083086207417272405262617955682317225734569173793386882576603444326345059538039840843301548676755269123230727744994855520934180255993043641674859744564977577924288123499829297066486293683339696348378293143142647544325057194179429755368817375102067085133727991357159183810888447873380865764769085915471058288852010616192588044082016177834545265310898709955050393779585580801817345188278662943129918235977104899306967519961373349342819802985849042595505921709975000496755272279387967706630915108989379706078349523217007684692338275357245286077340042229233926379903929052528766771232268700078683937814211959828190067717101110130741815037120191456052848866770735317237092649853004337456295820568966200532843681809781558658511532022335949973783720651422866989847239610806896426845712731513386587587338096387179951016976871306642665221731233705822258656996836740736341735583833727068690043642130945400306982839509770164470856039884777927865562235986238534874715496253960630549772870390365612853150693007736990890193190039370417445064658713958615484430035666653539293733186024995511392951566559364374482828793554291047031843813760564770039217412103230095083871957727330922719123686153682068592584449404717215575900889802933606671886684665473555806925242801643968139756902586240115308281682684133186637472422324208172474497621977017240691775519463915232032673812598744815756413052614647595216878825329147654274121731928062660234657326082312812589633957372035062764624136941545697645793590160270424387327053125217771630135706893818018221225259781919759868853902862720413019567558879317415597797544218740066924903581230759185055658855434054101201370780606514796923318274947417003801410140219902982689356517964440167918271625825941218562886935582051064808173336795774058759595226703375887281478032913898675311103040596204081984008291893878587904709208028283651041304718381905104899726051010775101142707062292533996199467164521786693051552828335554619020348897950389086459532489189661667782213194084491922720525406414484148536145188410889881424093381403323187651617825978402853248280967499817239704163966386748476932833794971285433047280098567405794364301395151031724589635327448706157975455007481151122755971442563781197947949697160662628078323179997239749686224507282041770618801513507977746417558257361552774721939252231223521044926819314698766474664356294648117291372845823388483041910669022926859763921157227326490699538661778342854404701169586790046583512847830173828242509470069364951480107729888889614926015794536088142308026320548396515540412034644152860235732364734241969167111577926861634475295722490530801421828143484840816105070779142343852434236935050355688702577740371340326412640216869833618058401769932842887898171453535678458795667996814234781476457402584256943686416434353215417810089178754104401564045599693853313694345310089067466618459121101445545360906580841098531155151305826887169673106579267352474561631454364212769895941631827759494330592440954163227407742033386968374933179950946473041057762074313279192470899840603326713134888115733689255269573432968652923928019796154001400436343248523427792595661778387354298170946048995596349649673262500212226031996384590136652901728157969069488577128483697943509715839016063044952406272085118083936055847136430177659942702371713241608319728851621252216060435688985296911512675934363571861774993837989802371418683352580811513420892315539762705982882273187231300830151463647851955180222692320267165496945540605443452445492117684265400663778921426282191889210944246881586708399892851018477316774965514025309315741682605234954290449362906125189782977950516162478041043281201445281059906026822367114479462053491183146325526587685455221675898918282428351783677102075729883672190276122635284660570937093247281716394168542586512115708085465123952108280292939375510677058191442000730344854865377785582935784426159285471547166525037636222790786793965368649957457625819354843290094944264634700781950027702543690012772075328321403972194562775661442585279505528782895366827822214898729547704894721874542823541840442293365706193839901752092375573917751386882483829826366630023534191950149441738029280258430931833721949569137448363818405704794323169496525238546408206526521295625042559320624174779879717264041922810260783876153031672076556423546450832905770705133555589406222311569953771976193029276272333322056502673877998776105927999562007529316382993147854471654851935827150385314222475617525853627370526724795255644648454266640655295694498615294866455408184975216978627734628041006866176433414597949350184907087337382888653539597830879140468020822744834140381597545193388022711659666445778698805672113271703602366067063841397197471770590753980294126162640355977708721983810998472944679935456176081944753170760140521727162444554799994459289041677947527264826500739497163696446408969865753673364522476303015631082265019212308759521935660543183996295545889699158280297705098858445518876563847037451040870114683108703275411625272870156870692503115106266611443130858903164205236997134797513151138170901272731972589675153195562116040112841390904932698141703662526018945806876439136029157262524446913888641844907700902339550568037270408237249595614306497004377024886476706780199582986480495076016477838829909651106233682661137456804071963201517472944223193441712792631941176633061937211254475418487194620066703992668606103946960411786941118495225012132690550933780398206506052839405161095141300923226571621579696272904585264892683656053134237901956422582004193498336384823854045194042874208699536029489411565352147790099491036623131489522721830682789714269851551383337280791646905424317451042639799481246036638997285406356943946099424145410265127502481573424219990633458982348061422313247782295095697051075272418493670295336093772724838505246927312084227695355370389047014879664807929477787817014899169806087100947753043510404230866590344876951888860097600163547679027996789926998767738262000800266986140942216930486199429626557280597749557570229904755699498155992393521117324898671050737255513434359920992078428244316440587656156296734384717232773400161125013570147266542296834901581886177417145928494862453575697334146510263097144574121958198081418134424632351009578856425739420440720722082546156774269024147622575531856933805987291323157440994822481736794831210792887680355807745042962735418178228190117215115466191936764033750886475284508218720969204327063202136023955991943564352043368642739282880065542237242491613769045045660761554639556237816312732323854751273793807222618615112132239003600486735823086459655423586736572450795727253473656728471840951979331394935536759089823202360727339185331180025798635572603869046848829675696046677668881785316306447907380972335807254520574534949112837919080471224050425542629324268108845122909591498106115099442307708130379800722214107026746198973969012800640127697820243393328556835875029193975158901456947695067863558690923901039804931600013501902685769064785179227759108826361702588327852466735784670903190189728476870009076752608099762046294793484259019379282321247091844710762350070415240019683459885103014369689208558612772115509834196164437795304449171261851461188520958212355649055865350836920508685897535736517374604029756024883058570790130200656513734091875722212601372601835342555480195108061828184387385568485160171071352364514269845014091900697504286355600387165679915593841435661816621254555044199781125968018603827985990225724637788431518409258028244886534825732372690185860709143391704608727712412354695647960024950284696956795132322330461502134582199000055120930481504353565966139301244366556508351260132998035289144009683515066424537031144818558166323966805291552912453335764016183132251695070410598483495534246985456175695811500770819506747276413475688644132732428684229584549221012876029807276607602329283019774769604997153617440698767706846103811568902161393069711370803086070101015214389775918173828906415002360531275426131711995512003657837948607021033703796743173201865718226833292252557603886630865269675816558491626361718278266544667798930249030363448328464843732501465141545517172600554236995799172407703385542237613830820580924805332676419033345883489805118111356925307723372387061432009881967968855036752660124373474521302677089905248124984565060637990048193713555637036684555736250460298007790261103562112341201123794216498085239035565800235285713601634090855907747149296092382017063595868956649487166824046107243285803958517286335165672256030508765771469564481592404622106375436157083731686841392441720346523089163475101355817952670907173675083556327664680268257606818218565640837367972807020464154097061787326369096177856296102692810548830809903271084314826522380818379565899202489047433621046142961204281682823677446190413504428596045714421421063214742477409260622006101180195569417393664400866449722424352069455184116345269293676962659131600445752029520136661131056077875961859084189825714609772535578768867620594263723904435765109875991479077049284915725243053835006352981258805541556864087125070963993029428096140590422281011227310343961979272229123724693743042648871236213619400665363430552213913522973624000736393706015801992192831591943414361389043293591031170342411598215793263456401781909424705473206692865669213762199564814060659018298373614058693422825333710542788994246720758410604804489460921662761222213214519026796228466389683309842014583396951470534608121149834461631185829171145552502451500021106153190170734664219632667332337788150918770570065964688663008450368000564197982122653408954437170832909722287006502275578630767811742582586622321213930140362917511388871009423402909894304586775243436987330764095097168898227186255904612344042887633010028567477228202595837271717323722624497609556226455159049212036499953548345803670409362830476173041675517723359225472687532806289589203599014713756025917786799511317996344420948202043005573742359803359823195528303646371518362861415886936213138781526514557260503335397685859211562062607256634306708464599138371072862896514997901910701306266838768891315173242093376735803259800680703116649645550822894079216610485361871473783023614488072277288178050223032368078980167377612302036446671772160345101709321940958524379624142174387508409588725808323074691139763671524672934939063401155971964062042361627417147536921673453582313916728912044329382233736380257827077508690001616419199813914270431360277583133758856280830982057119337753178178347779210753442528558716138456939676906487288842547322405691220534317024589049720879387973998761726896544008402639928634468577412572062267353831777329133253162990924804145605961153074185122535730767972128153585237883575293493348128421486177040519824010722604381183698221130928353938713731445977490154524092818413475344827132498871025990511671767176085281007533759497997945765287632840497684577916632713414823399090619816162999089190529910603802899205547815246366919333293544801523442361059200662446776492282307073890720027183844418073549851412934474265510751367334494049352530174630727708618873318187743656440692615328210920670388864411094373271481445813724347890673734051155748019653085371689064654000126113404832989303808367416607110018639998897000707489600907892187914966837631428535346694425056976519170468937266183612309327135371060279584998032306856332284006727534185273691373017935241753491221113074633693970795859407470111355161752633724303349223214225803221443730908335994054628576968944463336746193454973085195445774368649143761980222457972652143980032702798469832017175790086473142437488091411001563959738658546203223682373768991092310307526267924957502937083568555082330898763806538849395030757577523787441899460190247816381743545853925349141029199057686323651262783905626181030943092622820026612190650638162777578550308780644220195913357640233369420804061090173067069336524293565147687835117862069546465101788030140540571043617983318894241705595994278645992316426216283435340637539585552314115641627441261008663423937241590596862064143979608359581443389530482376939769509898328866486668499047627958433914039872100622275628134517411562166779799398895966112701673898423479687436080766607000908309933308668123613033087465914760483322880338722120975752090648082667517748869890090000073077438811207857498911693086475794090394294755842973267566543311876944796946344634935533080036426548203453353276332675459816545114330289040684443971111134451773709756952748841132546076305818261603579272644587075024623468662733087621959956182006347805055078954138748180986269996699118390474664312012187467180173282964072123407076691086224980535153421221678549680093872892593193530282906854588543487080835800777433471726159278259436314146464174757483845404810150401365708884197942758271206037007732248693064503520909208515129805307135191276860659324233800713941791583964858773464652231004348454983235921593298470372759527274360014909343376144357922822611844811478329275130407400927762553583026992582031677610427012720064510804247440232922537465820156848930063282249441358070239127354559140640519598274703780449045459610001156396890603765405932240489688975485978319315431025826279942308119407604381961381458691940353535144995943299025026982398011361947802227051959314581027973142984796066688551239129038900016336924977362243758804855583774984758675065064731711523045307858716933449073783111069358746456540698181049242077405733690577963407589603520952125368707073650707395294319253474551222473485591477087258084097199920814532592968015988670477529497875779509206593629963179847881674406730712393568683616184812484823902244181417983652802119263035427880994289913405563678378645520060094976068327103621128997300742620302391097695749338131101418510095557074503757765127270254401798599190694789336017871942100137480938065683814188536039830401561268165417967936268831573901271092351603602848937411841978500286467032292986023110771615533299557634143984412995028086526734328492275310637961557162460046634344190644181342920977068365174972530303572430583491609648128180753030879492727271191047504064011696021175571284579065459616158484595885864603546596231713603190709053154197596346531274979557059651258006401092160148210436154170350532346519512903889158000291906414121840100294941694193612565292172225420526195599799484292616303690049447161252076086652987189504838939541135507641616223293495396172231955361113815548537463141426782578010966502408134193810198359101672446450075191127942425540364257177731644816006090372121782232641906902423108662456615720867914408627077092096031272247632291121667080434480991044140636335729076502058552970266586889485471327361258131822714916546708016959252852274515061095241342351203476846574496907643716291557516601351691321620295291667813168622121048762297984065240955114934099514096129580507131331911342151160692378125083221658056665436115021983531012028361199934075210261922328217934326565525510221381606060686259882529968347377712657073745398483940844980330762211489969648035670696509128976240112383097243950590589448197028063138145991773384596408427578387863458698900016763306401306894829760883127189138383911410484219473541229008219531540496151544631346667676890258210314536612275322139226557335121646050414605261260492075101337291365782708684546549231459506595473894197851940468487934720537864995921018715071365880468820312485252387402976574551315512405225422404508609492654578477474669050221448063638342273785894094175756705333855251374111320709316825987960176621329070763617692264503618842840647567460700746615805305307302351329138435637223041383390594043151902842716736241764348468794991625994056565631118561274874598612137546450453099823606742079656988822603872782089081278845367614589791846042819798029023921768320479039510067227396078723245039858386164154543635919019835828442637173943435163895645522317056803791528736924975237756064342555901512267878027850752656430876712665878583039820932366065105483377972117104509515008258158993382808408724649413473046771654058091268126805525529043711882950204302903975660698805023460528688718507108114319529481123278929131509177060809823392737267896613297325126102642392338994970558147459519194164179988028496394113891859274292338744621450098544391589904586052773856165844105928089046063241656058787730070175944776315052492473231148774532096555856628225532076377637301490787809773456538216939546219068962506262101418385821776419730526535101731628457926259124295364810585573931977283272107684422843241484197528290722274222709589679073252084110368489441130673647801620855601834589213288613986359865411443218761781500509123624864625455947478818997513758418441172215370502044031176791764914118911526600529808882616736029285844125316237525707891511421624620676321291162517713444840078509967033875464902734184948167528561622846488069376411103255814625573417780025567870846585516782147143410991462511796562066353668542622283996419466446591884052511153524111487609536674572604630043707567171211182620299009343617793152830431774158809666185910110357670922665739311628066636611373047643591371408827989576741115942270762113794339670160344648017782145450390747113460729856143634968567014815798288301694051745596909070523210180428717428382862084788032887039847064783229727638905080420597693573168571911673808406884285649540859002417696108773945370879427980451844463573981258146022627572686367740204028057294451822106920882847875345329798925030632003731663209195602075023826490897638139157653557270612015577383196586879254682977339204197647533036140654999245006560856082221291976780508095443517566904992835781395553238999961145185564439583606018365216017698037765437862015595399069760105278931760744392794800828027119423416159302821398541330456998826090238115290735741293072637027081903420251820611862936587295318609376706295800892334316848062954606560434978498965510202476023504957788934432689722754489923908619751300063690655342176941218875670365905875425484283146385154873604952111080990959459944370256641781033413988948538880978179085952796579910525863756818251471193035743936036143041018492602688027098708692613970816938297964765995970600482066472127808616030417026505548911440110191436126470133184289593919309678939805250707712501907143655948772514203916753868444607732952091075794346952231241444296315891639365532489478109677458958510635306070182606008105663787278946035543918310132712876140945878429400622022018262562440469117065570440205938097067839215314116165041563713651463022183295953041586170371311408366261831701379807590982468246279498881163010090264849213315932715116158227124709975927093388478630870665157048813859661290830613968428920206287635308185975186318474877983930242615421863464228727061279519859200008270813954914394561605789882205019626072371813941497371054156478664668481056078837832028502916815254419490888820973713979946056869663805983954439436645645420653925859706392558053108715638115780810469443643606279809903446347321257118486206672847025776034721827248460578492048577553691848758398719592268403973046822812081166926359296168643361044934709273615273131306835766916480885009955577419041635980390947183129227784070978203014816625223212117854824812823363092270456649669255680670472532330361863896356534251996613383637359716405004053979635316535556788552034698269950229007092181585734765930593378552089608697224311266235211952576227598966732292962896661445064603037382062008280188615888101420642796495399673183237763227549774981858192512767084456848563584615747477919731945955677400396194593307309657640221530243893938483921267722905323602668522030686571334864247650410148187442398425739635544262251905827074562807570862695728589506216906348365649091087989874971366692361128809148069328612222078834619843556760181087762477633577485490323635888331065038634947146559281043164913543329352137808675940891076840856248642709201528252461642450944962699436148428281233084560997506698315243725239984961962200234880268710427336386641432538602657560860119813175828819786791247563771540564910648146909876406467361811630188108614750048850167161950667611249858933354926740537628173745952913739973917441099343565841034775022470907716565018957243841476443241365126958874163525593359908213794082782543026339329829497537859590602055389357786757610409841746393749221826721216394973337100203484506842982770262009298951930102537225746079372667390399336547003596950879247488697110850915447471567776861942824276910170841253228311919182616619074389336040860797878461558090014957474398804734830377121904799227154860354435744039827504297394752884425075238851055242799015792267293011435908697240498932572389361026149344379809012300265112867413810149572018273077284492928838794201185398697945857023472515675855968445671808443303696850764635738020063212274968681215806765600631404973613770909786785289608944242383908820152216782395827802848277957957461072502547527910984578068023315646983525924010420932892652422415209123325283554470088346594726115444355906112645570014560520782183587600786147960496008980919490917824086768070891030994673374064009809781323004940388010561356689456813480487562384388986893329605963154916302222458809438998053766416980391417339278870815977493110654716859569631369995892356284626241499922935551753421940186502213947926436537812019747231031465015961274197501732466438417059642731372989340392057866358887383620872821483599942304340527898529199833455528940409129817292651685916708213837581607425006780030994053592569183803156394856289747838493426503524127408434043266018883789347510370177916887845180399634604408689337038676571852341269563409537817663325921820028537017446450506345111608207731346694412115332130984555644645226742690737261396971911750086175088173376297952952616671449972072531263779850764449719668212797019292200572709233707126039761232814106814379209280447110848919441190629688577041343259460085131407811769381367448703407651672147540311864469744668650568879595609002672416263836788641780945523391283537009276925013021934814855387169026876568220234094184191211895896812790635177082848924406409397546747085794744314038955824497053856150757310105845991853818386911459404961752921892631003752393016805190129972716494429708859980697207745229336770510025621055394074819967220716010291001189434258911069846228756047716211628929639723514360892692730350189779462087155975452410725642399196528114787103958746767718911766232816010432925565187521972513292686746285942658066113931033618984093405468204399006680018017702962096949007372684913124492713395211208911153255960793005923102752973688365973103956263477821945281260485712844317783631054444200642424353275895646800481614691851070104941893982005963854870165338024480797664077148572002750614193774895423669676840487823216936396600741241459608158641402699804039844529430642635442089916282024593337858453355972751846211387954872619588426057071926200356273722283954255306547916819598591289784789505279772758437019282532986975266664472953989886154883571161811082636936601619041889601853333522036483403669568953027816892532841566163387235002559143539214722958713912290807365776671070151198510865042025958010638226054221407381364255129777230417181938027611153844885856703062326935656279840891324022570296047277873119909703067399833741550248515867371087765783055251973327798291510764764229808546705332815425150298465489936182419696058690795102868402850716021164029027819565593641820825334998049235531877756185119833978948649431362597976778806760007039365962883189308821661930226546606522474910325225825241534392188683420846855628924324185023233039767931255767603097026736899951213657177503726957862326179952685216081859831430629651981649323259190962883711775715812186005704695385931352931493088723547135402324621934686739260237722650017570467558505388909485546496025249486876713266011496368782964745744006963467790905226594554888444108954895324890753791976442453363336101351931446853215603750964351328638222982121826031452120608011937176262038817918672034255698246985851764551316790325119407167859352487004990642350681147902357849063870705310018056131006559400070657742790657137558179134220213579468823608340330858229494349785555367941805076412358446256109083179314845258092021489990821087834941452713872161857635492533645404179267130174304917190466491089165438988563633132535805329293621886996176596403533493728985809678731214974735182875729725131292730234112359463152645416990898256762632397830942721018228550290183264515760202325124018786719230121516845858637409432169866440967021777937843152974095947681676092125734190119537478192836516902018841688542669971538622684759970986506421554187751366516030751015112049689698831461929417779028928409656667557063328642480503548831309789158505638969822699862845791779716471109979069299743953082308744850594520808180615554805279941846063250776507610803502105593276697530559597387533227938976680831749208184280025874641819396874165451845431268998789250164350837579997852319094046457265138014647220892798435344806942737452397010733691696541424171393387256279199603874187090829010836674303642385910839911566007729645454996573007823651070037795144680187713701316018602999335314447471288716360530249737096441575288342539218695123318896576623092635687404222670633692623804385864812753451109176935801993349675267144443241519857557150767614274492032333229631765180814704819816518725760000056932907694101551630567677476864116696794585987781607786168483537352871040490730796987394352485617015509406829740278107585508481867677992650464911264563464784198394812948583171343270220760221296186552950676764498353462253716446068802018773771904692944712303999370137865959440376818349909658398014496654222207838101997552193267976626126858438602909968967069618267622863390502359869769054448408925395697443564636814033676173557121081367224694148422047688832565381130375212227990875535903435264051755533347491190709131395400270994275846051156709031022010108252389764602170740378195888198968659946824750431193046030785581966369794006873634634530543880621539178094481063866937281831071992223601099782854697123694433052518529103238313170384392279470762351253469012971484241789155346773106132465087034097279596105459944301938582359365156007418414958151447533042754075598529663964625290378301658458060995967057451255225325724547928831194799463864936714753462848295911546595032423903899881528331222291677026395703938048959805617408492135464566109318433506192173589771653997825984025082738087583997194096950398336087209214043808496427386769755356660534671255543423018884837482917708655472523518119588989030520641932209260409656907736507340067795226202671191061700754574712393524437371702243017412230160091564497537180203262522587000199007322775711114139512167503463822849756189773551803613867482573656211141983025820104679300458607575934159855317221483851291014740290865804214633804799932603101271910555580581159569275971737125607496443325021849704334536722416128190476296862449838338164202458491977325774084939734888949313165847686452164708506603401100029092810460585929758838401317168267077228212178426195524941538284920413374810266175761306762828727612128645840295279544871082755757327746097198807416784080658448199280221891608663285946608583989215629811383365198616270586235502973797362293901047323529569113245624424040229700267742099727258857149137595971167167073193784813314974990244761488216116222530467321452838480631810744328917647434398134641630664759231657916111847282239931935101386228511631504841322682756275887528224600117595856170530077873406388135696832846558719034734254718529131004764562670147332009475574444954856247043196324871837972994683205620488127703749969692828465879414277076569407909985080786645649706196971609409533773352835868276434116269062420490638653993479888092672447859930602231496924019166047006466849615452416121322929979197835549256074169185850534861781052324606243613277578808986978164953889714397680440783805744408088747827289086461266579300975191385780807452656096221088656586362691375264526727692680637732953569050258306667129145073180604172121067523410749805877074754981933507878297244696307447875498918766462397605591829954565930995001916604944708024640963883447845140604114983026995873418825627224268759373597227095714745453351093748752725403249776601206672406207603668997792033052801701851156489850430757847430201225392519362126002161945520915635313056496243537786016364609638238424512838945114310982537963453420226647477514909065566304726710539804225945728724727954835060494383614147288512151403277386886652000397126197865997548633594123303107306058173987325936065363789816010300982892782139175850350815007363889045770808971337446391517843007880136924130715776605802259275204047776232356097502962854938982334445042208681276622350601968640132705237081705110695851250481922447229577853967550784468069564631483250138298105291703993378691878450260291266858866433987451570220907559308970101400928658489712786740965774362728185940019877695652633454040128956582983407739890468039284609463622633569393818406603176321862604864233491960214096998502896367330353013430698240892940205559112851993536630417831952193518419801467385159737796598324634449765997392279990002260906350132426254851092803702658604085534610320190072417772122861618699010903086901068919465764669259574178110508974249446831480042354272805645762333771290356603028469978972461558760973056949898686520833333608052482985382722654630883851101803215903292414664170506793219558472163982775806867854194003229041349352089974828485108488613810990141515490923505762402961919696990998072501178096238534326754787811048351745527126137438039413182789258887732339744414548180666504896582304838000617541683690168030444283773549145448124313246925374836895014204237338254804419769928642661384854426880321696512144117725235905231694555456895210106358708425474080880317338488927479567046903679178358435593472592046876725769177048299505936049690066631329899749281360195191775625972549951817955278572839816599890082682600013426316962079427890858896949376792289784187084798028231637931362910877460304015834474027514303374755124368084682753151471876006471046397407471293677888388195638585874780942077608390709610207347854009128188348914097394291962289583165130704289415371491433191913284779622942457087916511586212143892474404928086914956165041261360486318092385859160022944235162620123325631874240839807056178263140884351880099798075748520536134604204194084487554649789629453407841463288447927959185594912667683506747923830084366333854995101745465795752207452852361800217723698518355044334787028699990637608335425727270022033461940796976958225167946595512809430599608596764021771927531182137979332439798138191093754838814124136996717649089813307802769541120474749178558939882221519521476505925852080389971409249599865411729428403444106199226356219339591296228264160997376262829285197979249444684111023312032085153079575992215426715803975354486578129949759106075763424808112448269852689591641187218938514787452400431915535682327431907812067553987041146995708394253842412333019598991110175836633190640261312400728349725690473513601191173445715102181260609221351410321163921162210001459834859277457701990554447304114733002798130659757535311768708821773114033606351709506125217562582912809040982546053157037249644550627361358774228725327864208383719765492323490083423809481613538246657387014434524212571716894946513610293483488587395691951135367795424556267701496129357977774214065019539096785658377162028418421690489880632003129801739533953748993186614422937030434779187452042438173625865225922360911215119727420134527904989956185511916217967524851671698597289376858246043755464026208046663390739487214518862930649485400124924807026442564131457729351262889017369905560946977972401105802079824252947083302183498988080523690475178838145278843642848203800012197280050750472741964118487796507466417916221077535471545572364722739342472415983952956477300462982195019408438561182558731369491503265448271174409905224014470227322882390425002822718297078832207565553329243731690722620833969543229556245511755386703222912805918940292324889730546649507396809885606639907625534806990546474889346199684745418197982144546611014706499349355554464564144648298100778210519744609301336925124615672595773425724780696957486899933996423132608533858416909766139323074981027462512147754591418913689827315098257753669812363732856521789678877571478654799520028837878405022485234517331593672969219041578126561244123495302569568473068763392992887909518368264256244458377015705674270357690165105352793658054574830292256659666400921603061899113274257318628715095577474534051509116182140579650886296059973956136610242289507547069221963690421135540350012358079616537687816007366470434359044924014797561883542253571783623595072663677899795815033066321571284539895996999370716570842108837400178286758947405258525490680243934740310417913397084867821022384973882759367017420261656022409940964361374890030057062269451429468504443854019304482324003123049860237773168657440566404073960478210351272660451809752371836957592481479548806143234376700111078371328214546820063855195069386213203392331127051218795191751576949966017058423014414493025636030144477230010681243235083042550359414986850974591617814682848563085185723114274320616452207335371559541975139601116486720190936329332311378773861614464712081809900005970083026069905517695225980225966253518025582952757952958855941230792359384760252844099963800883507083121212258470401353941004982047781892889477166510290267176333504864826301778718307857540219756809601746840785106599975242728856209455741782325830359598178617933290182534749536867079582593844296470295533617349879208608506059160693933196633925162946034897539898949671347912837793086963322414138995600972959449123271399802700591663269301156659966607165865703964830374668870555363706542859101810532767019714428499193877647744376493496359547861662939256765940688052248505460739051045560974645025952640788929785400685988582115945119724527732171082982124813063389881368069956618195158750527676069826356977111318219444625511986973609101372136264935602902352876918165872377057973485861767281176420930879880260933972512358214613253619102453991614033037730991284629544474422065678720866675990859496900256583487386298992682906444232231712383268659059877659732316763984430874818826223254482523717798883084500736702969352533065496454199478904754669135387392898781864081049775654850937853176487152744554941959213757766152012361969722210665359682254373861776928183641748903252319418740209768955935625012168072648565952545942171163856286847931942081346591057483472742834418127069903929653716217401824505788653248672407488151881990668271227526268724888342404054006134285082216480771202339877866634078025602270293359681615134346320599444280977693617134301095186225417079916180757446483466117381140491020807824173386919781716489988786593991314386377449921483752823581671603796734929477620146679669049582443223936097888351101397525794820164831958922522850552171828883799639123610774822188141876119909561421316975535896925209605383413560309641105586797637130576547331232833449008731114133295787279230210813274172162150043769218836953612924544086025352400351208014516057195645421478232398889122041048267313595143428932106526071954086624831151761482652106105309460861795594217805143417673877385543848245052230559495264359306853811523659386023331155465074548074002913603696536775993682745649355696596838991133654912850092560565058503813127210625010805510270251380454636583047170563736055567000462952306412317920890437777732973843461504872649669728165900227620883320422934618394261235002278310042541167315039298900431970532288530252088578626534634183210387716798929008520520653155695022049945258635827973296532598250263217214977212156004862962306491761913683189646636143226492064553735577203733588491004461320413085945806564628846973207408448024989025118503960193713883794190870502572127848020206734142447764620366700959414608023772064030602630221469488313187094196618806478166732437133302017140497296002298182295538825526325448164352773651758284285961722448485456110960083991888102580985668808973145264013515715186549960352553223249234622065480609065395959525893666433788282932583986345617601085530000114127750392419982037471848849396537510764223435849899620323228421399125677249615890306348851084033447549291039734559452742445549181786362981785766836804553662278201273072066330715819520006693335013617608188718375710532139835461573019583005558869944660843071824978659792075547667506198782456286217032064953011010580662784144147254908679561714540474181612876089142047062058203481690657313542346075905653918467319329815906388623777463103296826416700702716289266948425095084319754543883190557142119282119845238353770163648369928581119196138288675677198568330035454228875452054470917760741746597729125943417945569884330788790913805197173132874872537729722678896433088323779509107255012110661486606601418046034375876285212262181487045986756325574666439288933263533055173221086581112918637752800477630359620309932738922670491971464851769190154383756182144387447238337173494881801302686856698466069288504864300120917918579902779116377690727322428328973570454696435333625459306285839965657061715170935649497116773768769965893600204957348348486014610973564758152310855932245326311171242012619166936595776490721134033521936951757127965426104805259213597605622741384583089144714949081247839293993245600718800435887007580332754928688746895126978424895399364008555203489567018286994002775127737231444109463832746462591809986543533826186575209295213226926450877842054132813140900492305238782387940843881207723460204855526218178921659826065475742466228826281586279084538867808118305890875727320096868475137486640843454252125570388164817485615226482680981943423627925223031245216617281344048177921879052702894767434774735108548145756079745099936283922134831667870004271835529703107705614190177937116358045099505940701108333196994823341935705651627931189549568722529883972823575060960797799321222278179929415557434081215681169892035750464403400519491302043904057211974830822685015176581742212484794804698588834628325603551813900897963198003837990096224748829246585261407155545364052681504455302162282297683419581673513862396257270423994294758794126794560914430995728869303311680505394699873125828015863868229307996967626510405758622074747384155516006272638508840025834704639546777001640830615832253551422366202900719561678905230023209274104347422160970783931675687962257653352748546180516706955946674727511185948367167482277075899620197475856256204699161445704522666018395195258124930039814674867522874505354781953748445238807966954451126353141967063968892017084642027438947546330653732890863923333541022146624142142207530994815045504769141937469063832693003536777214862872376628165920011215441101513969372214888781101216035821555371654323698652837929343728264697427944131588067424118161809221787528858412302080313563365709060440144443939749229606303174282838362033556245715728188987158684784806453072487459065556461134345060962784656748952855265152433664471409989269794004376422256239578530004567517615072915560949574338032686374077259286332815004965248482622514620025969752763235821579870044331012588771466091736925400900705243032467767962822679994332321429834770590986857866427766024777364092335785674752608576740851928178426509050869013104446868830033585828172056490652884257381729857710271446499930046552086729450695821533605005486196865670466753757113716435090001238959325439582995963701047765689514469854140628918512176510093584059659660513145956773838167810924724833961358053577409054322005702135131916803567091971541885652656066887404619032428588597910345405941535221857119212336794459603970161894766145290965171301439231953438554169950393956310113927541849291220000389299420399333589815838162400210380141968572406319472108646840922280503917731486444742307208642566446198827842710086898114252354377445396691000162666244319983957971430839816295673207224312696416441009843713403251475889873504644785242457430270396302027585117972152121231496767081577037559097720557435903549775842708446614297356532226620640600046487461781918746070449936700513724228619040869513410011305392460299557213853898308228761516000951747135630863684659204945687487690577245077517616469230811396168089688061408257762176670464829010852125620080277685033157726823572399147200720356268903274211431617826696405180291395671549756279042759732395787647408597604838842974001290761033346035742059138459110618573478899147253554356909051737537490218485271834606114873418646269166603735047752639796804606896708723556104108575588178261886185021556588568124950454034861796918186428252977221711356956923911902560245346799696950114867613693513530010219542450933586171135523777397635679521061335454176391231221593578249772757645625663580086895468540041358973289522290905058175767321287873442040142267367082577468484144035357507327756216790325438141253368893810648050971666340810185337111619660990697640438414390085483806168592370285532628530802049738528165585358454663441195406606535993254165865883510298862089410541006350739311741485274558856131294225048966219156432265120811592798636452498527809794405615180837901029426828408442596087670798839852403924842927112965930417576920453775299675591808801265827214503530743125187561793616688591371767240239796169194178142462105107395678100445765309349444361213904011710720160059654031306888680473601894262991968153552096923917670826257416601633410240866992655198832944990192511656318572164786834873351316510565158765017110723595857055655463248397744321709413872922444384566472221964821809421002072119004657461549585434940030431371299101797776318078551137519881190754316212195727557137180482991812798354046345690382491283577632771444325028548284407316881614093088775336576021914204808172069381403420543083736282139636640833132830112065680772165556687450679381392240412441583356120968209061942864293213411089764612546654016402550563794846344608930718500603393169593165653880713334393103013699230723891278520239621617335903920076968507400699583273639570132518762178734889185174611108192365853292026877692524955544830600074451602496094969140091003406079059586440514445507008246651690303381287039660736730562266539730472751065125378576758493176800414761106995241038036441831176598826331652830801905903182058656773546055842094928529730826570673483052692733553584617585142600457533211522630899352987608389077794884770069016536761508380653725823826122262858161368498430047710362785478205543185873839155734806646829880716428025032800792680719841596407205113341771133872069725153194031083740636531977513498650122810061546704686231820604269660551912075319884776366615291531480897035435388920997806218501998098456530714150817189735269118521858371120193518240954028038865681721446100202502073408777909303770087358930250538622562556697133161985570099053087516585833742250448922690349488631799537967579036003870610189691707756212571773681881411292659780223814653286451731800712510550119697157885900320335635596712537822916644772185549543230851953442790429267462954317591979927810699900047676864517284975842434577322845312701410664411812940666663955235454248281045246847693648579613329971755049798389109232831163502021550717041965044860502258313394926875795623799735962321424147661247695432400167233591833822053505519653492833012639760228992387525341244908429830314361015897657155697722598018168514151815494968331572223337225521287319915762298329302353720410436595359150482661453122238979206527104973686074094052492840090603691996313879099478290846162257867154153604056077940199279402541362827104182372289824393903867488304689666749206241027931236530080868175836743619393390147043843677113822854607518455040960009249977059579174199140406163380961049678145492505267479996403529644764084373302816931200990845568550369964405841581609990638197217201924791952344091260275180505449834339472475498831174804903549106222053521565792282900706902299682129653959997416140337530141423180751321942296826674908939656965076457904787353514344773570633325154472236798727883342263281915025527147495304674003617562166826312436875759098144102014504287703568330244391279449348765858691200695937401181958140789006012120169466129034788949646571894021783842499600764888485136555272422821125412963286673704768705938438408658148284687146404038214947476833316640784084055553909873926605601857755797151596373586876577907624400070029918832476944668938679570732809569599915873664077162393604754863123081301487592628543725589735622788550679731514778272415069405629951061399529335261475273233930493391965704363768755295709145675310029492724637489491462158599659643262432423921774644251630594426038273128080282908181424220065546658365415018574513380816269612164551142397663201639291892948851964301030291171681903872167173247189962786168736109264104780343266159326818537742932661428090212340661970360349182309071109254700976328609751111146093102553886300760851594796255011224911341142483146708582150619370085047321638290340221603284254741909877542766847388011249139223901799789079732824293320072281781622464208549499078830012145149017824881732454514686391076961600687909852392963946218206153286063788058697683002106740592251679204681358744090708057800481036560995832016153236339544114534132336239410699241533306052301313663884086644830027498341853344666247080347269827761993594453109411632058416975030449935725233708162960598643679425164044591607955017150994762146137134873589062420379667885210043898041378155705919425291038696092132462917673912853476477364820638521313154042639488029050198251571268720302417531129421095182895244006443607982085788949257203830986299177488181233996594377392311406853216538955256906702710128471036963772845786685848916944730808721905421293685792249074141544608376662484855766683539510165413380798086775857993971376663044534363215742257561363550201629946567172262937600651467067881175373487344388798551818744059106621357786167355425842029334880963401848555035730260814767101077169618964223888386472065160379061857438517634504219158556209013111910095041669078652496938713081005984218997092701814847935121751749228320328537865169228799703419423546651411362245624790516548040727929133130570878887503145730958356320489866474005815648698137336320546702820239105739135650097319906445358063844311581532853617526372230074794784130894619533826975297301892193565951314012571358330196278858972272731730861694025804407044250602990161284361343174042331660912524732459733810334157146854513430921649717117702743518014862466261546092310752184289002895056777487520871973205606591416097867407772796404967571704664894323844098207260644667020168545955599349126951811096660653186938057769288386698463724886713720776326025226741300231808080322298746185558662184881374689925974012431914600713561130025975293884839524659734675441622300035553360245079029860084035695603695672177026793879585910743666028029776004473133921691832250521903295160371648768496429346754833144107823338875022572429281461695635727080348674912757173365468930930736902705008131625694781190148899697631239563796866589632201561460966420731742218714124755825158288008460254719177082901490887362528046582783158086644656272333510578015826014182999728691157333692385608380744216507928753631139583419697644569321712447253088882800721206772713841737035580619229560820326002688408731452413602916531474575198797807766821322796631531165085946860911949021581532027539616205189913055453225403381556758028656876858350691146197418902199018635395308453068917586387800149692046157657114957689895153009875463339322069923693189967431895548299806916066830328977228046872644289171514213762263565062992693089537932552666262620278540365859171422332807155747790249354702669272612454284107697015330846227484013510197978178253725212144312176260552982300274899443014377737945757572819183071947180765904214814309516145093725614648139386452011378303935751503646092330673979395861413929814065671499996124049871799605822405870654787420137564294985487940602669741631270097775493485038895865168067292473115132277460239391348309977936828377970603755117105963624578362173263009479936519101443255596837561655172231216806351700236479326934607626826768196013225229949919045653658698594839153299797559158971033235882022399933050264675430759931053284038350418788664568016091462686371777110720023770473047173016187472605639117771702526327195307796615694068735863500473552708935973911099043297773320320071028742787889734481711816886882634554894962870654543660181788259124136186174211658688057334656044460752757261343204638161243227085424560561190630198026352918045897791688950279220919604729365586262080874062047497827806668302734781193589541338733998343497040533869473245330573666175267787814208386837019752972024020431023318393080637290334437302669621040589597356142249727172206697538724228757593481308597418147281206653393624691458859102077379970337477001221422705507400164714848290238246662712281617368734490442176297883765233243687878007988645571971501950229526417076650959533820603548380538998960154713176190406021247536733449486034894744595908964258340727361065675170359731807837643241707947414241537436493115730944534671688522661905861765259345782140639041550512181298660643214733175369605093208056011245128206159843707498414631607412120092851819023780718802108166973617076710096796169839949987737819366871291837472860467160284344017753490598364556525960854292408385351698893432065918698127303302160151837738927784888137399015609301687042783373814290414745425360652251106952771477598692586656614404415927176284214732567650224206116007675665004928570090516452706834241712682655800804510877965722482525072013929939944236777537111106929908991559624482060856144887201847172063357050558077882302510004254612428568380124344749361482991273950779367946626912721150272159596191703737133165712474971509801469840940367460633344288606478905580723795862286422530879792075938987582663590422187614598185594779732776123471113188423252459487494085050072182625835192425734278906767253032282731514208540031403283381783170829067117441964852161813093279971511724834277305448730310655126065579191666083391035254319930149184118853632526453709279042036555251029097084053851614310793047810052276022748334311353108244968525499753454458776380257708209948266107422613632048540966245314169974982632176223016955355048837618680014682883883212797777469600305062455514931222748266335464724367912126393142395143094700273618196927817908034584248408900403184338470633052901565688921432048788780453924014413468217150123131271233866531177220296089944795959484157859263072166780642920047040013574457119141900412629441118341983056013259826121018487475387217872620484704176134888615122207516061786884420759299615477261034401972589947006217166649624752817238473294729002471827987651375102903940563883818484881720803759831976554052915703015283143668394098005156155665621892970059873750134315347053035464786432691502036136746146193883660001039264126370841363069530244228541471479006232063899461167345326662638337061123171778818485234931261353378131328710393337300518404204386471989828622307215604371549787076156989235001238208324958937000106316668384669216218832697932982908639094339953324418208070375522347697772631586931356771224079844879099951587431161132147530465048402785341096079944289247204949179482174719366386725548950440359828426937662868991571895039875340012476623330707131578376701123872228732295273148448268189648718760727759819924089669436540804424061583874962068889485948218809236715821377019164935903424075452975205307481806237303290119846504606806313673557704031591731749222365557089033285376231564173959646622790204898484209829792643184775081179383174091982993666100660349236555141377781376660466676692523304176503193943289521968956195502959706462587272002001446519297266555734865207611068984828402866777190057364850780295684222487745875102252247471316356089213175879091213814432595014511726394247586091726271158539572512239173692458416199746763549542323809980779919148501668899539417740743488990783739106883497606009534283389006083902204730863251735082873538174549716163855630071677350416452572016556506655833704863353783050571563172215684456465308967236615762918579576220507867620047903648877156963387177215602008714322349417521159800967112437332751194801558649224372765151048004207365432378981113619949069950579894178962512948588152409635704119954782739756614698559337457879132136162692029074097674822411766628031085831065711804552740821870240166718082514570106792494208623985143214692378870437301249175161746880744338053490817273205059170146257661133873760292850451557065834632402051083580692192489633963598323697656836159555227132082324180561657684997172464685722762826063788748304190176355798756308653518280409828770249264223123520180031147741040283013871907960377365755103675930065783016640670017648739182805174523284932213508725360787115371515318880704178719042720193366882684809597156081103200973456669143677255307577424242851253668507130569797433241917970104962703093879530890548817042332859519244972332610682170131751121935764297552232707961133076904840027708241260787906940714558026318728971717462243415900377674426754965687304147008373306026068693075288145724161430083744235200791675233890955684712235201234643509313717935626154882764566845596243281720191829770392946032318249305193609375115954980530339864328808778472571140969277569210248245423206022618234859069860358351210916511353633884519936665681898143307116459189403504240240685858170469530721086678238721482360760639906987572876446787325965226289956673810148907189381112967715904987034226342034319067097298336324915996105486685453062175677399558366152517949935692807667282103901238393887958427815420027902577044802124449299150821991829159861603377104508006552938381488990640033221450692570310477699882884088133356839951595888351713183861375252593843111800366739186797254852930766824340024612058430955455812417052049369360136040857910347840344731122610017832655403719017585759052149397299821023281263042267975284028554121060172660907223084460441829260513643096179103316882832514492724965361750118976394609751988770570237845429899728654716940091595352032463234425224241630691774976513610787303990765634742320444019462221267935447132401662238683695794278496893812912525783200716721497062185857893838335211491678134187020298148435291407783075512076696504519184179519479656454045348369244472161952691920584269895634785198333654053647651337341562226719226400426451718742444161329169420804056010807318511201424782577303832244989462595064725146843077002947975095888267413746611833276563638553041092162672289080804559680098905419123784518812770108501651116710696531776862922822089707776702748225849647682680787295564199697604336161030852263251013302179843422041866043664718550440813788260445872349941315947383182597779795739342211559688345126755660512881156625153028501077399652261912600167112469005623854997809722598063869975842979065097504237640031254442859702466823622237054127986681402302172849530971554986655697628539791415967672122937722688632919766142528829358976697684332310069732510820686339748763309154585407235252732917798141237845734224887307990371282712882239521095395246092697079192642158261765334677837313253477109135763027214425016087856398359071415427436836792741880169901651833056769203495170152653369585091473746914880528550493199130215068278107510129020023453007259073841380351121972678532044943424010393764284694653309238479396253347041116588773867671983770617614895965795843108262051236858272593640875989843273676871465784941272702072592931105713409703021447238206756277448014396649375562458745067515953482090629508793045626664833286570638755790387171934738783127881229185985369454009752518388200918028080190589552935875667388065336934552680337858189220461573265295750988204934792727743912417024350410446017978086179629492865885303717470462647363276445913923138447859913507597804602869816665983089031065840463313497865757536337489105957344463224828818805432660776915764003518421731866120093220946258541948847095050717715491593389768798015841346655061907101042941216334100135811608950846037572191693948882647741032067216404794345357082496339041035878955230811169768093004613598436394316478657572168193356154197749223610878419969251368420266192079241104903003911625751385658380658500893333874677897525731325832149826337490491476190896892941493863777359174961280242915329750562335808242680200031874152882344859060645516313930475698378768091887919073875252646842890355943788658797710294729137291624240281663386389199451181368752168121509624909767091852552353781835129600324805852247907073219188564907921042158561449076046028449440218187847095463826181097716497476954913179219907868052798255843887874666011897804427257011500427707549162393048387192260825420037386294314285078956122873106703503430884015544441432745881315417005331091481700146394788725803847992302542189298061977384624236659393457794570353732567757025273905170154788488910722457043321842313816061335382393676569206527762137724344628121718271231849828546661254501173359679650573647779689615350841032963067996484583336658595554945548369992983539832894079766486585536968864876451891710651310432641931700358918756514738837966531744080968183528285501527244534510412581623610594970347877892707982231719853850588780642456362507005136301904869864471562697619556770462641772822554988789056305850159339014358552440846756349482442844595075038746678621575647532363058308036011140974055289059584286161036351902167962955114593276759184892661038638907689040782710566692429973558992805955191534388160980274128574361274216337997393248777900051144160381108839873983929397570761225630407317214714206279926372177114965833862343895544530869808358054287552885363033335785124153362463528006747855071954345363085129442276498941081450475540961563700096540551964892221191498184014856019456983852594715367872125864875556612300753922383547136171063450589894942481870366679022617236438443034326351985525927380661564433399472301746226089959212611342468675515959276798685794463437110311273792658327443242535946325122552434630445027759726839701862486005063392289420085164987114620309858453677195851445093614313578947071294575568103375485897033830840002748371531684544622000832826598594751022298562650219169834412273979448678170532558006234297151615504343046230606253093341428839116731217626776367709757088310239725496500117276105968208183779670418928554520095680027178748264694209416764587073958008804233725818420915829939864861357313750567778975988992921106618010177910359276355366331716184965157333297149146909116233086864042127805236673781603865284179806650187443905988017108382687275995188319561571850035561201569417006883741960643466334319024598043598019378552575910893614248727027420831276825212598556222590574346829794139672817009258690952065353690335873535682102374830619950361745527999715591339724890180931934714077786191332464869971958811174727990360797675898595637863648039478530687386703613538983332984327177714253878266172634150866593496814815339219863323001370738217549839003426904224098739031012476119782902902296581413990726507375642181225569594364586535610915214451843563774431936488315899152358988153327302811873872657254212709394091051203219961795735598557435090721198508697778371212460700723536322885260374894454343780408876758748615294300779824916479131515645267042712866436835214503291956193555905073819243109810159402122966483356331744852492402034672761360698635678265879070204181143718906832156931307392974842638248908323928567889891582922137910937541205885159309204194076622056480173471554504375069602979653680607548941893551017590597666822397905990603259737714598347314199139463208555810532076924031622669784260746064892154689095153909874449649100811528679448829595071092583790964336215070656262060477392398746514532989289662150407176596332553578039658775301941473890381719284932305916262575901742639104648714288005182001433313129505730998298350980273863959314608023963624834793499737959447473859872567562527182328920795697830441674232970047708488941968683346509810517697616595734762678193331758643331190196333407306351577609995942309195182326459190566577378155281357351462790711275356532638013228553586678442745283965830367309435093766722400241656270468003377804242710331204202630644810441760792268969997956561432413206987204580588270829116731856253218171491702329767511225392897976420197109449404752917212128721091695769941001005180878057406061822580796611183363446072917162535337340708555091472659094601291596077331214850374960821553506398625014226740123669057521881883902724395845951358270397583393219197550252750361016366062274847953732422445571837339275240912568599696862176261845324714342548417118180133686184764404445797701725197227248837433332966845482843305238155924928631116056151943357664878471011117448494503520394959917767297259297878869689069455422326671564746210806610859619683203407633427867819587935344733645127731951689916496194627792445637236677671082177662079774349326184321630918206111274047179702895620870580686210158273330030910257608040205824194256665918755485636719241601199175313968920780716952325033542667193264939562501186597124199880161511272052485321541710061670402719722783091255444725148961981848483848002837805723933598422698890121145248968577721691994979839476481223911507405730880125869579344491367517909502942486245446258281583665245056547110495462755199260338147526893842790819056028163584113170350213879108404964760784983996268418876646887907050821228821285168321975482059452240968750305713181168945448595604868926444151626737861804971602826105778696719116947972270799488987582566568275838943036203574197372836983000581966685570893848826215860573241534333088095676850251455959029882883804329206119263003280229558743260072003960997567533419759329675019191075381625061486018330753302737402800186618045218964200859542154507695062580732220448588353502652601232267034307715878137955404436403058641992670184031439099500883657604635488935247739440713271360464541017891770843029307405834579980651702523128945648353886538159181327373768649712569424498712760342188316448408622153298282139749932452632241771673381001820121619733987141456739734375445460122469688149129889591243750741071890583322512138445525877802261616387485993484604495074111023661374719220826175268109379098076191840514738105440794860800607467553316831363505152116029708942414343601303212821243223259264488437005050373297551164212058070350799275905763507779808316482527830592628192739043524939579157114334111394147270436088292266714252610909132186077445440168634190596702183948549735732976425714307702127444649819800710435541564915664641793733839363755515409248174218628823888474409420537173575115090006843353736051340982388453752990720983733015836407277334679028301456899395645676446260069220498849016415635450330489758663747324240164391663013365553516588715924786476500242406101690069667859673774400046403032918439819721686851743321586983131422337337878454074146433685727064672300477755173328726803423261766267532743354015800142608283599632521034752153854721097381472312904000701975819661290865174626800369281081176154594039546859105404321408705591794493829373699590920597531049650960996319041882808884533926324696367249657985970630957686123694536433759114514172215048631986107465150116291446211796183299190500613640006151438078391575989848958952369359207717731304172467888088718804094595471070172333692728615907963608460650424826057122748181133164267613099721170015854777915348140078624983118592118977633338411667050601540366827264771967749318041060927850523697556858980065913973398953410807236324291258781220449135536001949846647564243180327666261409884784093153846394209298651211946926794196166520343365755490573842738173618568287460883154841215371116614024260707106197021534818177091675850450383862694331572586165444176278490016590442365325595448340035563749190826310648373847816956492093337376973628427851025648939027391808826293372645646220499081475268846576008779767364531234720189134239927969520918114854537347742088604641807241555681781055717641994054568945294179747672318686979899174408458933656548089190988113489327379376000190385510282028624782369338499657708217101323978830708187006986556046613155365050544191337955945465211663738117874526148339499498630629367926077713722324355919738789702963114020378437562082681495550832175529560808435673520725895835210144148419290231239595207376174727063810692640464021102783715853608156967828984817858523093957535605199002702186782924170313952194340795126338172446633859200793758090728480854887825588674499519975651162558389475533895588578952428723585697965021394687673706250500758433552689150139233059461617860708590108002403297839541106895919576293850526388318900490603690451352414592418461484991323339472017881786266312796610196792563827281376073791254373091582330895893292301252222340425046204608736653611706747999194772245988560965996898587921932414736496086558522671483247376178899862947386932610825029168131187064246271582639712836021958843080969858301466132261144897324028402042262936879932997301474431186721906997782554918364828853754062564639781530246651085591316674532740139505733459547383372655399069211067060340922000611119304951665216298604497309796791187452782177492439045530823008859954078378867125108823516687251157192035441921049250426224154010118316346016087558440793264422680392963519848549317625216861297261699583512538451898896886350295532349116283574705040624892852812097403576341368787859897737992169532105825915063140044886599400227168303433768373372894190906256756212233167959300657826123592182155541202539024342725704473233668302498459996104977601790112337947321179092981259889224648339088030977595439933220879413392789261305957538898028314080040244345694305090364930957911287932762056998598161989890296895710399969782499300559835797755632953395101066250541037206128589755201023456418782283434391003858621603666278009250700079528960578059685638891468602267210292315285121409781664482886346443246749386667670440440128022526445312580540119203969244492154896148071539413798036869945951547233869539638521558666356200267520717945532307788927463414781218127033306773714139414576989751934900461999653170539632304396151058765831566913616429687914514562272414034947668494406128285458494479190629859545912221940614392202302333453774912734310437885983915674314973967297238742063891693320581852639236491135235220147176329618355117477951907020130037699976090932370606490524651610997143588726607851415214967101697898350662603803612069563598406274646491097649661500152017823731286408198450159268150971944999088674964901089662004603223363835480803146550826388584758070744252083044706386134012000755569350875665707726806066648555160487975091977125524618441884524986488294152700210556187865877176869474602032901978603063370711219878072877172383867505084712429183446875783668166842168192027433230738880031396361307233361985674514774525248606606832536059833145663695103333330699611804924407091979699330723472945838248740597948932879105393077682484730485455369490989616891316827371261307484105668476005232649824007399593290487824992753488339859554056479964538337234915124775473167904058178855337290832322844454957582670166136136120897381789276392932253939715048649175453954592182640534409587799777977785365649534457094448299816534851637952855080731226230617940855324199296380843888151961829738305157334000359967507009222584363534263603358328278812393976101796291157998661457348930836719211661519764917802858066934793253827610261392313389657037256727143425106694369136901333032688940541077882137257634133578278572635463428067064441799439155721943508089509222574733345693696597529767671508139727539559099764878799705442700756272550405386623646245180781155963751557219672428747162295106397174041444455442258144237526888980335517256332854776931201137338514326593304462201718640996589252907123973394151675575823239291643138423537230838132172638833790732240146360461242153014005680013284036048353054795061268111663912456695444594381073084870130384215538440526681778439934212098430581400536658648821030960715331868806226430853259231736982734771946323813841267757949453959390206137618284614050570891477588229417496934660757214524386710587436412196195973791966378073154748640303295561360605698582249641084874493669503379329698875817972062605030340747582219943452904615302197987148520618430734732477511234033348392164791383377567654834943037195672278186010167248806953359492456038922348114144834923756083774691424899423263976919533877583795903921105690458927007453468349053120146973399507413661227061127495747675442137097531349557254797114209579811436159151543909723903569747465376906609533373877305120665052752768313206138142905976829021220970609667145200774520837341593868180806021766811397939763068489371576482946597975945071055457837955795220711802514319312995830227923277519316546706641244860799188580046774218648972523458762659304293074211297139710561719028656476271175727589772823086864274579177186770664899018014962136947431438483336571789341569208807158926416754511721741380975240970159053996338341097748807147054919811710685980658426500813298715827867416532798694201940460490476483411716187350744513549818463665591637762032012799657375361494232766285306674944088981644062830759353254010468679921882943956832096794744906630393068431210796025464541014170042073243540633846528633979738339755238158540214685166111807129470848836474197089524969910738668455542290845786342773970277385910680551077289159503114642637297225174896318651480735520080005563849461083420182478645534190841820832600028486701121439943937327164202445962785902075594126182598602832259393333505623753212550663593946839279982735604036490614518118249258453947513318735140214431540381462670143314412067678781371828377659278788961619540568034357641508668731033052585543981628344983281167548124148900774280850430386743648719684167417021011403405295305179110856440382819939084454549744695218941404145184014388905927350212936813318395052315893885830494835830253000741688334913872295243230742761085100397173472358971423273248770833557476128989868705256102351437416256117030423478017476812762176188632743067712034151875313972306373674614245975362987074511631574166530166620492622818291885174966404171140975797998275807754461464018472020863524070688054403605296085815825763331287532933008883292827205728199960298567659330120005794606856224758856674494351903239608660844575809374631228008164646685171814145981769251303904226465486562154629699331784868202578610892595293174755683636463632503101900541465647544394423530352767961937290976267985138061801693712210470869886717148082109538616219479847171685266591585837203014420445154855776079160622918114455226015961822456224678011613780669070229550837236595789019109195317708773736078582811751823420279875066179789200233938516458750259603404427111350850661410927478359366105445544156135718323781046539192479108455711468624866561415918492051544310174548064939620500623307995638197087702054611749802838148310747203428531931683021751809918954141966078351222092241323535003783796137507261456737758254232076219800999546801286677092330329220577953123805107087756904574723237378596412612358434034282969989801044299231331286125321482567178970135951043274155171461051669209732937301980109711866826327928783768599427483159964486354040307091556623334265440393606193180460369488455475205343059998587074033668564679725472031501308154199106705014989811109765955951431701791807430572263607553339869293862680547684695123508830406487560062615562105506587559267800080289915148185632620667790005689285148956654414742001037625673375824075585539833061017700836797232098940104282285090297001495409692177655855451699771170806272243430093999838544652031795197890047718192944957351081860144063113095334281621798796940114482866062663244060710429986432170305642293739582424875913085839760969588771808249799201840496185309050625652391808161142054042239908343165154282773338968604996057986530161421881203042240622833413217367982721187879893333459360156823274004550581857220892768791024826645237161346711210722875020847580639423427954865740810031254864794156637290710681249203675117981134931644596209672222609974526712910854150205977617881267971595027799755778679105805207538022441381179303461095670768343773814580529395349276708717925713877885448011316002524439656533349247894233035120126022686511652437985555869599616438626240468516885545190703060159217499211561014956191419579531261395554592704110523562047697606607438744014141931765665893568576988128138029120501378806257428705439606185766455390732566048886500733598548726687947669448909627011746568147180982910020946637342271977881442350406647541765611388266501310877511571484452026553329083455235812204335353318112969369012476120721468998147403677825149193913482902572866530851500759605732562672727327020069290432465695743346775306617083533444184333617960550903976641636806878811044472105125417158493690348509123040275734350236257397298291820025873705701688212646492136389527312683231780072997219564998910663664886419001331729720392169339231707561229394256968470235645150562768941680788057146050603014803467352445057494050304380083815579571322088285141183025741635091242047217452128369628778317397732364161195279071038597431740969370685244210462435580518953049909805013159402059381306607094268607798269243968601857111559666117963468611463611250968938363666382488659562219500852279482142972849324824798448471483359444500925457013787444391762411129242323764655336885442278045713164327861748799776334980729266157947377382549902671487340938725564755809027661563051800278596528968926385095075284219250691285130941084657618537081244242118063707731354026142994691215789108886584600957540183339408027807605723467758067424423150995007492536178179258644667892817047161890066034831829870561659368929256635323162072758428310572189423257557649910195301593968746937360429446223949460787123190006783913159670963602182361726227992919632192303377414132088854327904431427963342083416023864014494733317999788716522758349043233836536608855586846437067477949692295241039730807362592634587874163375897157593552577596028859855369358752712031485873913048991397575889840749995082890755292965411134084775807103243688058324589599032706725261856949843781906682509996483230865887882267123377491883550793241392637836008175392153452305017241031925057473408132043744029906246600155026689497458380173082137551921714913916608699800609244689644886109494633321781904274180157219380806934369776775399149695666053095561212520625964519619645547779108561164381016634225316298301389155528173695925333024421145367109304648339893229295690369327042301318440635182247479399492545132423541559302602199745000630044613472697735293848583576398893001486056373104937804435347973474627189182182578291421246470968049211938084294949229635834991644976489820562067885325041621004560559029492564360480014892661616114004594852089619576537554238351559230637021290442750368528815519198576685447082012264079713769082471321749967902563798306409729823270654552729775213314330472433445916191591897191847258856475532417481333497572235619259377476670613407794790946775942702048806736293776803324127596028381693345260865017391398495619435361272838970919564597072828233730595501937500382022234259084853944510727317935107740130319124305517107366028714324686797028366391302170945950440315392433523101983678458815774468359657684380860314490768008300117402872701563374679729553223206377117117178109522635711830646410308567504017814635349767120278101594765677887872071288673981106582467159580018474781507822757499107245898479289714468372224658352134186376144385220051292679422693847315871241998186540387857854993533577785675746151581832707719613036618646800185234844806327226160829864132231096943406487090654228615557502148135803037654995077507603101427760910211268838631510123397903329704475141608189542738063167165385584214187085400047506443322455218915968259745635125625142257766189436508495488128932692614484452522549040533389581284149286413281057129519974788227273261497993193854252175528601558406782228793585524437138768301483759941028029119420526377125578976560937725161699694563071394581724533962068148932907181093418796858270769106768885779146608239940358719925111534287901136530604867193902834414761976786876815084107083457310105766599351632798988434817861486899501325513332645014452146008631785466867117141535163438488410920482147153251442643505941923660293058777737426787648244648891546230148708155271319924592587685254286804113034402986962756669158947369213701092157386523456430303370482378720984680495772012297225603860376264265948045249343947999920450115009975012489848302426649895362225137820685105799702080595334700934570014218161549231313710867956699117903500122107051292207374639358319811693445525603122240438073070971440153956026102397558896198312581510343192979719269557145024684772485653854083122892048792725200605370678700343633599807489716639042373237566310587454297091838375292575560217411323213117896242280805722139037298714000226534177635331772935420604727752353154707792393398816404943156131311567328073176139506953036277119891624039768888369505174790418874457341438642448564223244708215009308592185368066471614998313393712715104951348025082915598663399626028658222545641636977214268563404648051269890045497023240165713236206279433435758585318230083160461144211341099131907300873140597852801441379897659225265218264519972487625381070504842047469714737173807452851188982896587980392582974946103470191826280816904547433748460531636960386624589661020314650958996636339241963440709409829659847339848791204038335386056279436765844339330666962113651393876886971103101574219948067676620812528220209158859814642301186962695838426673144229420257197148138598559585508859415952091085415646469191085054135448462530586255755622513038382634010444721342683697995505692575028147759292774770777428588331044993690869275309704490045043448910247016156774065128518530929977784181334402724091032115726986271917017821673657289220333615200372981859347039283395517031519167470092386820730251073035074463479148311425063395901850849336105787929002504767129410793685605274692978844086735391793806056446510629338463965879978869513016078536726330092560205827083432352712334643710142609681667621042841394069130167525856145778956734906815209738739154692337445886579171454545093815899047693107665072417904482024303524247394469428507311963043272464007555475434648474277673878850385033522783317012003135600250481624175720380210426826163650124437733962501909827128944698045919777623710510659434873185401055385642602441715699805269518023571720478874327170954927724504189451410841669118474122507872506072956982358362225245970711279890711363395043379382759374587405929481532503431761872579937210088878591829786489928817856607363625500184033936850885306574399571842056829995204955404478134671943946906661521247022073258844483029589937951447924576699568250221298978953105273492573792737945564680845770531263737249981722219783155626086415582314801187552551965931716728403139812311869927966840078230278513604749976443969447781624998621830815217086879762561893848430108690448094090695205595339739242938722363672252530028478467499891790513988299294769115571240182211672174073230679306107803167853870049019129924830674888889058690911772844016122060351339885463524291097041309826530540983601243357782465991950085790660746777645072764723092232341795282980547286081781994625815285275891934187302084824097521120841300878026359196702622166220891056405118483956233741724709212998057900905440156433126687078648515610590526912388817561204485591534719100797135160191332118032936200648273890260412353842303362922416972199138631521683778531355892669620809221745947984222741149930892133585417981432638011767033068612394299936826313234830658442533262794432360785866708249601338676858041371460096843160362976595247865621429950635434839447269891345884875314396385824060568445946598437631537598005105757030502767432403206769167246467388803160726747465785240267196850904902080352836074870512538741977190756655224403994205532784859474366048396756015991979614428889947345017293791243511293154841190720595579115879536087477290498003524736804182743305024275728229371736846136034032064776248438270366517787797217153314521278837769593733382151787500533267298714353122291720946635491594967845697164702177418506074529144269653192996594552461243256606202410383441375211788691717416926650010483226033930646037175047719952147232315514475404330903684501129807162068314224118572528128959659202376976245840075770852008649997158410104994526395124003547377187550186092591949657085093186140030883839921309202985972838056602572559938809189453697269119577252261091252388849346227714866613204664507241644153800419474825817000222597604178161305063810827876641848669999030842532086997819858947138893612915154861944679434329156776372817577167819746423171919747143501348463181185479956396850958406490889028806203958325524792608584971633550472361947080620850280668310918518571653510853515916901501025819395737056173134972638092251739191636482149686300397598847760841926885593019077643817607892358984315556012044606673470537513012024832724102523502065011177176043544315559442231219055772874429358297493852560200122337714983177244099391012184710125190177976756998827806239940512881072839477014945015124666083365581622656901488287177522948137398613948592688503342019418444839102435940958292368660957340097694126445781860208406610989667952012295272472980447137056025192035160683183108051798179493073914316013130984162416317146252444039031564299677645109356875755081607491566972341751134031204364550598582140233494498559947901628346826118056085080328524294641043224445851537025643762915151746028954682985795908313125326088561214882425548880913267609299650707010519961927514387161322537768188494005816270608210935509581631301316802535205027987369855045283212808577562640653272387135696162344397776166774120538889469794853400101251870779372098079906975174682411715997198706556024525786011296210769697767486401888287462299375983305015463509324380760667148565258539053069447232223964665563502365713782497664916518674477716186438143028929955493926480662687521039607859295053624461797940158348813703192659642684244492893441916832320667925307691246272057058505221855857232421837262886881425064591737355299750572124940886918132582265526869247101356008449369618682730904204798977822151869781823490546935808383873869123152341740780468366702976176307769902880402909391739528476510803472185634803859027049730728863692424997740745291183166186936792407552089390277942709743042057754657589043620160536938650387896284417709863605658625504542377547803015362001616549221925215556402773053263503623970969962656679052096294076270653718486849797267308905646160740033708151203896077270022115475086948378134484610980439705006352895402563032168576462942395184177406871548688356660164966851408623184050444207364638281705933339194259602012199264317213692780560775908690351711551028261730652717149564786201638109337873068615344807053068333941519893356472149405307028549069912385488261530775193142353383972770242638978950003193200875273075066202636739267860793586252736810267669599264403706279849710381558040774534214507337816489911141375315580276792106010290157351340485284067468995902556204322436360660076766952729178049379806976329303956548197763906863977090610329514369765336313285184438057543249600484873845734375053621695362070902360622460464487793499690180388451017946022876290562314566555286658098391841700317459128380981903162605837316699553994608934714179960938345524036142768732637168878274180836352326980027906217092894697687371864106187942674230161353693064805475702382403569423022703463174753580654692494130419105549614615812679956356841167872075110776703363547296799947067581260309610047832003113180918004480776164555612975694247174305419376119772699737924680551291240672498934013258559669857741265416144712324881671490101974712921476415031329811460839915091955803348544298816564726727460189088527312948105317040128673035303122691159364958022648658267881369874044800648109451808902476214386184389523169734406933203679676638881076171556465472586953069091748863864861305444553061516800903504539177945377019631409369293169152360446217213856644744569049907918570701915194377877329452415127977089406636492506279321044699771989626817975176718247492085169106257401098267591878206662181508363190551489881770905886135417219086456546429998278143820118340364505211506445395216782629707497494711098582666102060365159851276714976634435211063432762240419553101730096541790914372592233256096226617957126474580413318505420971288983428819328071239687547648025013247591559414922355366275508946894422388222720735668319116600615748908645037143950670078741337368760662955790779898161971769649272094357607446197229014892499159489699712968035880132631125905266277077668984136650309586057206480747836181103504694238146251706584115454462910535624924818226468482994828149761625319045603655671543124318962626718071061779174763408271556200571901250308115323243295782439617824995347367884476268859269427834560455095058868366546128091579917763786538496440841390668272644794091050353796518268574432995144101796553698139334042461497475654465276298171288945161343364001310558967447312973958663734753517509570969541189374950559197442564783699406393919038795884260557486756548412425990366617255125217583314632242217139481222497791493205073842345209675694938354117465889701156660726570958863648727579953792174179786179397034867937197436205564459504884198027703223031291490419371955353673774082200249354905778805438896092786052328111442584888295633746874910456422477902756814501726959857014661531879604130044623954814833485606432606962295785778544501590845981736076812475318654146986494845856026452458520935588593875944551009053314247839363750502269497093186741344643754718339496609214234509527949832016917400535084571779675931440368224479840544747499179575401145227083779055536789821528653861086926785614760824031791072277790158922226925195588428678245287892571021292468107648882276515719891958378131070845089139516708628351440007253127223300544840121578039654975804615114684222786535556278169810553239102881254708579180823734485661227742408443542129928013999431342875562921442966969280088899752869040013744931695078655165054454811687160251246395351843632225896110986218872217919724503446622765236393265662813079880787653262807966520121659811101030766058178086799034809970556811896071545268710318218396128213317228866574335781651711752509479796125628499504024598023884263764181832336597085916438442286774455544901508008616502934205270082607891330284271613708161206208034934715023798147797390003957873812982631027583748309982803451667594193716461084237927430107283141075017685144026487849157090415057320286743800576540539318150827446086903426048729106441784339440903234042802864082467359817487996987758403912477676176461207851697033275764896043236815773296488719537958839882522631958454662734155608935265074349286924064512381988250661274697167974595578816667544655467240536966562656778906016554978352911972616317263911066794567783996896445030060596273659932577603276100380002560741922256346365255916890956949685357087520196339374738297469340979780798087026500072369406352806417294001451508922280016873937249775083515373994274532426908684277395425819746184412205289357796412226287080335478141658369655929374034056461709181528217625852372783114667438380880469540950382474115292891031359759015212640889951844822177127207397524309545393616360103771510131130770106583483575504986439085346402848081656950992470233961581045262420244562015937174018834931240804303147862301869017249234035500221164232658417791118980879918732620089574647905314928035464806218615130553308296455149500058724581510516849112712357423226897653575475744130602820708715392640026663448464321627351502614721946157222315355696410901940090812215040152111294253453819968824532676426442380147229154653367127279240721494077744193507074358510846325863294581296166789236234690210689272980548980208005223586644948821447246659638873441622309438012574778459194958853555421303402048841323838012055743991292346055835898774312216563109996772329760667786597189624057691374785139935953538143215110834248368961926829561826498096934128324599017369279374779265322292385130241902859306390958341819805763995703629878039139736219051363554413533664116592664942462546746267112372601431794511755432325749477967205174832766700200141810755577694364530360586273842854135928953134038915477323590361966843179203219247194335804893115265989787650140050885236148220125915496655387015568829646560883875643164677889032282007343258413417483888383514818847280156460909780693437007818283753157535958724493969133326519680569236243033167035890053690034768632715786313848594465118937653460222871854572265204931419227008447890079345770122387028371914334509425683509384706811059467025265666744269176514644248800111552668336072759599365626104614567327908864895468949083743904086992705661105266697410690235628652857108853374347673938771706772227875831692740624882655900352014326704586762194456144667496657954963664944817384463859938258433876363276683158880672107642168174400130665356928716376817138339061832053641278834096952867514329021049966154959813713141870881093388523044148384073390975206765587272171131239246234117832312159820167750274427156923633833168153018346183742462911122952689564350779494239833619505420707959679909452916076454614098722496944275204380073822494954126811140446048950124591273708520690680939354325918342651839228894137109393297399456293013623229592086266249934115377789366036921280675307294272338304238793186120043511213271201308759746974827158278976058786359855318982381155492663424682091409970422915066317185723779518341814152543585455263203452344776077564822556734299432066948678232463559992074642065966662198584655366318169317168578653264660033802358737198640028815804222364980223625494737096825903128654254307147903185111766986156821026466411274313663513129873969293030912503741802891099773247014576923746038643016951242890026211626501432630224316436017263441932405731737261903358138700178603160332388051537844194282859383680613489212675418330950922515284020955082367527734760910241224958282475967372042440169998077892457523986188016074957251543735692675431237545220904398025775612115451242550712640826842940843679739921663244510873724848054289539292097895704394378864825134244575696151044134964151204716997972102537608282702925813283318829461787532790796029893739592144709391175193027510801572391105880744282240201461902994632828808134992937611751487664549552132986564733083862334189973898887706226452020523370237171671883721206554178497250605685047408579846830246315408740447442031169179979588608324784155629095512530277551699201820966642903528486823432273259428371361088191840106560889062926587933177839117287582091128317327326207954286156706687203877469088217993555456611243985930392695745978746526817961734397312834291527169303629928617976458390270493791130813036473733623135087516676186841120730202031726223851129206455493448375682983118084308389961424154624065161016913852003756710146584361152672704941335466704880752892284392466951452548646269165466029737758310438814273421246170153107310920050903972921688468730318292192342020790122073086315114677062785947968839588725217840404194441703805506486071702482040393521894956326462585999918700774364940684486996101990448288245064965221233271013798992559894400727701954956275439881636589380305096454650788766511885981583418447849660772875024506597868861921012891906196005216528319659518703706852191811707905764551404371467114449556194985950500984318116996385753170834656285517863274113036052901945215390977727547489046784618654838030069902927589159642654862360611504596248276383175588432320862175191031675203764417623322776182190172655895670586712895194270545353648017551540020494833432453226165722026910531687096140025757248947645353767523673753882348882077828760512994269180693198733047245547272652641061868833507182127330062338288752605648758498581124510640066833439949714270254414635977735738596405156320142941635580756385036451011164101816677038760894221375904283096475460025330251165117502029120405711601363514543997168556243112137311498795942089016059041654979039082864677133591270041561653973111573200171414116370560533211515221258961163626229515950853606807076225816255307726435194186943775483338216933348538620450890565467025388871154221106845925758948722562080826314821278808073802347600933339149880435096418105359036020488049685409801466122644694800932302254712003572683623499948935999661892588793230353631052421870931076520456376352931860526754156593280963774853893595518184673593806169523048124716301064188466486972694711308546469303045673867640900696995652763135117410229478422573945443354322418328322120441405522950230638246687398349224448381046413364659841044694803964425645744293463888571638668561518094345375015266148849002028521133047238943555462007449873208094797506455219965913561976094528528479186794021805444342322996223983761467697168421806253366666566595337880760762748108483751397387788002290182289554740617481067956835353532030418322369400066107233952650464077098584182324402486765722274340902872828290743576464399396956900066683446323344965561146988713890486709976260060990580674819170553587560637758183721329585574797181647511558838566284850290426643377112741086350847802652388384676597381993724552192208858023361077384150408009085160823423413129944021130471561752452083522795514680980067914457758752606852047735670922034360767909847631377023778944101505719640476773790748636460953540889476452932648793517906384902386732963227630202335812088420769302681855574157514174532360194129673432867296317056770866552774002890262654049851680553355350528117892191307395894748091955492304765428190994449735169502291111509926689351696984012994896495020059194494677198730871291846150640421040318989053706387953123952360149956555018615891483274624399133162835947771614860006933985859341494786700749322733735178431122902636497667349591995507198300938982469463003881200608990938593820255127178230259681490382329418120690518508720865083909257496658137847631905020375237032300684846593169904079719621526102196505852485356464944921624697083140198275221968913903824535507385684153777519700016776996996537439505883574757907263508979475044315961043426515400009309709069351121491646464776316564734500048952272260508886800935199400823685902933678082174687087062488570409050082747795315753411318529790628632514493167383050595544227640993140188327869802985244645910706942536926797013403668650517752413441624810617669340909257573273652155522746836141953233766110945527975506245910587235404084049643467667376731365677675962929753645297368940926874739759169052267549211479042287282007676298980575583247521169775386431809413886669885342027028139252240029071567126921992855792911497930771234489391692219826647169018548421235463090370548111081956665947820815169681206378495377686098918699909315898858015109649225905564853384394091186380947340389793287191373250502613929090586141405535267474159893993562899168210774837438050635015671477121167059539886113625845904197801866528888706609097117825645985227369869852776152666902318955665196930975545822623805084087512958178786277236749522531440098861485106725145737862453234610361021800217925142685194625762814408814275193789414186221388952273276282439809687015398948844740429005635381858954100925191738242873237030800125787488425665847798619634764149062439025865201554656964444882202235731084589132095749648096010290032163190678463331288952229908188093220894304477474021687245826481882171350287540960837080263552576813602033602218891840358495123950469940830945442474381360953378516301982620739432748257599322737369377025675505432695011448632114014389737688784325572547054454797810443578728264448874164562488371599299831590319159728662230559681630392392660825282351824990615955010665274530468135445627641306086166389169774751415822401303941726263184476664322345704630070944386724951082641386112571281450523050523677875215055892714013208630593241915310814482693244416310171049499153669329555642147485375254437884966779797727047648560401269640432349633645544933564547971392657162848764629026955004912615168550762043267633032230672820114121385114826372137676555523761959094890603461801920281446979647397659510065963943088459094967762398819740075135237624983105980502959474456598547816525972074226784717573818896574005346765606628815394445860275123486120324921307029156026593040771786470005382312201764734215197790871715084850216044492523597324468934954246163833054726482334235103397744343108215680338633666386495357107340878596405354747701380150036953654114093480355894600695026296291094647131044640936504034291957682941444216236570567718503617329402115457161989727484868078154870231524988675688318730374193819269090728001005300909900020536479928526648549481388862257026690349377721098995075596329169179092023537777951096674007691887965880728184220676413596212079874608537663034195434670527625256077523566374417387014978030621010352313072548935850410254484708686096011976927830432826765235027514649130472142934469650166046050416194950949976523464658836557965918761928967228747697973852587189308912133610762157687762339572445583228985138071502825085915524188991122058549227058358602039124447598055021348000061211681514162909432422476189957602906974633683796538578366146557187869362618737647088621396728967681393778899013233728897323415613617144338797588320268883837540180231149442606414137596881299324511299318588884326711617593884180881630722173034385698173512730867906245021712832335275113367755188195448474792675535457938045557456781905691338506602221604829357552141194466288833527783103900698363534595674535772311375192407971338222144596878369407505357666110613514853222168643266390835718950431693315244940296503896459189903492277128405479566239312603780209935872339661541251867931216948861030692148684974393352191769918195650241991458440666015399565536789844305186867136332812716253493199395218189392951718011632956713449889513359826484017225084591067965076368201736780497153375014485547242248338509576099632457705335146010644898665926219213346182481411315713563893401332027244620232608721362924624464705088415059882806184272911753850768084149336000797050391080257586654709238925098871681935808413574529893710571598732861027522694824545671755664761107462156162530093304483557100487672322168818407074403595389788067010885595055102679690320299852129458896109254211156160715550475101483793365684696259399419229861090886823782459311092643017455865411541133351464173361884331998854172795834297707706105801118220450764192606345722008213435419418113868138781497334948490118692060747610477614565013457453347644035270078490668632670742498158580098099672192918322226632251140458832762187165706843805234459332762234585450690164986427297551951706462951652096262084987312890319808302162139071547865934818081048616352016409027704503179545140006189472552817374235728632104968715729089705678045658279458665148207090152113110726696113450442142596123180264227829669294530648806956214431866764964519874139797276520081570015227315570520478131551442914239682253172799388828497757812320910198773609903880244856276884500978491737295127017380168302682567535226205504862574766536719740864136209709619836891076186995546075530610407727334294285994404953409108626987103499824766325007290752606932612704434362301787873272516530585315631108242161780722099000480402464563535415187453245474498532641737397381047755547762079582853248407521430197819440340563634401125192758289745827849250558656123869079767779731963633659777892686110214047376345896966033129362189412820176166437174011496115493774943450799605317332017797667546722788422379287469588446205575909615125840945081193293165146056649292551491461016386853895390000568454258878098836024928484269016261022253372535218345310229167475577998558646372843749305370252282024263552386330290571472018750157611428543001642134055937694173593148806955388592644957827451952196757502030527249252001005805239340133723316021070411898037635917509796794143235002784032265139216801144587038117746416256216439455038386029020557772434231838772348450630254996658542033329800579576125048927705575548180595357012740454145482231970613618907423927686767045956142607859043404452438471902420401886390138393102526219224165397686383196133372054327111590270468471573456987701209555035890854800954335053145904069493695470220726636477975967195437388662225280178082549621761225298219573703294754104088815806889823700635102621129362227687131364738032044440491218809774520050952047803605214515754288030623117023683997470615777377461000943705894186221989279540208509811567698706751941055636393409742903686911763025068403721437096365613442938016554646558920472314205067434309651658900985882113713597344503508327203166871233794875874198250174091673877615527280200930542558062438847542992109414672388399230056760250302559507697542906632050175311694473393620077031106330454143002231122215866380141019087908443965532307408641369912718058852994673368283858000563850420205959593921869140654544649476195132270890298971961236084516355301264957866856743469503464520482609549246624297595770200239040207674334236111648705739659550746241593229257140105987860525379289317241956642462808072135015930861105498465293669426197644938916790099980593532631774338788387993304008478392105998926638205833659802230102438906367669713446318348214238061895181471346928039899585481264479623960243221673943913998814905614734358785982320612706023084631011861472969966400978233612465654326802901484961742717404468538122578520136162795687942720471933641413269452907059634178044348789551137069508538999979175218667142643372915944166762473505140608436215174879325009173826430435023745293200644394559988724282086601549529817971473085117532198376668740620447667401008791430035756404716722839495068518038729423886080563086748297169272512416283780964246102163253853348651067837776820221999183496477450767158488341093972422654538926549154562320896334071761311445858760984380733439160023764430002920636345338960214876556131545090248614904261758495950114668701552749881635825641068314657519668787249163024863624517352847314116910142086725573696555391649478374709601487076878615245182299214083103897009775421648384569504020531904078483140601979924783919871989020695418683902507214638947033336636463058571992622856232323506789179069760195651027504741616997578087124520313224388891213241492498775334767347016158672420039079270315856991338679249231944609839373176606938394494346604579084185116081515233637870381284700649487304419616291746479271416617912117532430109481621454189726311811892869881324916719979343004560281280328654867406290625952482356496110168051256678897783255223929916968757969232969673719862261230204703700887123443914956194400395209192245260547250567727499452812400576484923044061779049856125696798587566921021897457815259147342754891027725759088689504761289964383188752639529933148824049664276130038059196198910773309142681067832067590166037633478051206190992464494759268206731226248700115857215084651003713164225940847849001380752114482964344634682248513278409331219321509441016913815505311915688500221114296843775168984042471715605719524846897984338291187674195040250505590970823179506347259544749991783677589513699021023702312470881987289192945479519404893694897895241812088013483429961980924386436760557088678181814471227831934035139216031942228898200019268475568967111842908751146618390165090387624879943576361686501314820985171081180713033844690262195552859831090346908844991769784971789479943991478463258407531511049759035058472817616322454991654698582083650925886758845546170414949572246543654046119969538223990628517315844733161800392584548357101692461595062196216029499425900970861451308570848775573733164483109682338829858093569770270338281730722279776392432956352475129045104115878531042146343283478663551800323825080132560230895763704586546235831603821020588333545849795071594670402210286715149492098292316577682928834398533776954573520171094636948115061890063220109104007486433178026554735786651211967889991369691053786003755499178009855482967845103168865190859910001575687928862813889841573725229129198096906804183742732727206458183604671078170136282961781277096129907269301291465987717540116289047733684698292130749649493753325830412099805671428828740654243009728363331980461667453031096768065451378777724688988349394830659274859432352956141914691846350765930573790047432166765882655853777809133236190122014519195618713270574749239849604401725128213993153580826074273486804733165979531299163208147220915173509155685182593194118727393297857371081052777842890039896973893346232261278881047374835960943058060107895363213581133912329534627078471160023165604805610318121755285136671146317073329471452809640301786004652892788958441122667868862127709958197325202526895147117636896880974746386476755581680477162848726923100122017481072918584216480024333628599006460849331247231786321190578783937851966536326841940453329667879375299806743682425649138023017262691864973546420162635272053616623843565508996796006805447965547224823256330622780928071208781712177269238272380490953795437527089652318975804560649643303066947444221694233955454953352912526313020123466380148589699873895163466697231498721600429377839867048407612493446968006120053419950193278631335996112832444673723454438830094011316914617499840024718354861498264743446810339379286867232577968410214631232740989657857677580827470508074112480163379694581222985119846991233430634035288635857819558373269138133387021285886371618696271815803864029543934532072833051180746038496697056378725597308210073507178331743458341233675861064323399560340816264303301878597695404537350004282938942841522831537384442602428787438367212228199997617360742132439160705929148739809374104847934570574203738342633871165748474222317664307260372381868442978830051943156921871108997527254810192647493964644924032273724992710565914474771856290015788529325497315527890419581908511804167973308986322616542597199074786948384058213056704846983061130459480299933328689320462616611596204308389648286684245589912374309405763754706762226552580802816782079879302737901946116271855805467121250703506395776264311368039985625737376645747620806013183992073711650011019702541296278538761394864414755784613804835973635291624956432254495740579624755996357547378469224428663676100435457059212286576473134400659942017750942508839428274761603021810601620040229894137786162011668310892997326569740249275383372289959166234881900913069693845435737809847596336330416533772362504455120744146063679072167289406652486149240297327807681064647596458271031675422098235633807350252437451798295784426716469666723631736887745361701105138298488516659183806928993083569675895794718296076379982159836363859142494631453473726782336603758831931175371127488528555530364265224830265242517799572518752737114125411096280569765077758002398728938948428896311471043290532873560811479570937768324692339989256931868506714334417191929373012304747023196038770126056537751828934343012719839057152672439774399415191062448926476039060648361472491772251340969470410261075803359423024410791958812591745995088759979117383803183754072691254594631098175788764467331033335301817787568167064716230614727880542226591754507430037581729637399162157866472702044059702220094974068224370271800982507010939207936866078752076950824982575364700834037690685891577276748933522192519734498747922288451625676439965616784908363428572253051356351157835238845181485224586308656345184965094207306313965554013579329872230965904170826464677583135036190952396869501651125770719550340423874761124673952115363775517667943704244928098295841570318955500156415474145635537116093552045604006916006386747687947482238373532429209506292403069528540472196999069910414131774525571919678251307597752980925618620295524057651158136899082182591279109443707268841816938080923150008427050420078702901081889997122989942362986447782699953380675233407880068588059212514457155232665473400470005991885790283772692952086669605725562056411814808196797103901521354313161853343605667391081902289247756472504314338184861265306437623938618264136061948690154900992291041729983885717165047591320713148875500109715704537795232933771283968444592949092045888708979869185903908516385827801920496542367711165795700827069246594652801177228880819317038330875211488770541913829315214558644520180648247788384199677793338372414346264000581001918779767286395356279850153667235701000363492784482546686596942119103974418279815005230968286690581885829232138204850160206918094835625022127306922405419662810641613430460589245265607653457184307768665992210877125916691737410001619357313031096846618514803596550994736476272176505083683622627102674843868077636312375566689992998254861450898496532113816260052078947795349479529390884538049367739611520638673210376099888746235427091876782175452467166492739112989741495373382878216108149720545485648809695550002313388190729475246073706164028542349422143356822690652593417998331291009622455925782957162824547608343969861202215213763433577923272628099045755176609095214949495694118247191527164444704735444547508187016667392292363747646176504240569158990894846923427803527411864165685974808253945163385179042693277971382878961684646520856403794430296404403840963823744620459281055617441411889141069763967886791835587134228695357056950720048615831485964288120772760496490855119458389100878845298368475657742994550962972034664474287837478562070451392927798365277276807790763192964476880936434470653026747430354629568589606715024292554807265860493875844220388332573576390113434424629896471697620605641151561425836323169430047156126992065642410950414027527359809272091081144060201681908099165543759642921163958782318182934819924164003331817949521499498067885911887106791426104705700789814010746873308640834473582109631148268806910806672751214511831098935404512993928215381497616390739069075326252934897326796322740336823518877816105136585729071081588648399656615407345737313467970207229406304222515637189950801278725865289695495899121984573762513268706618747511513936224804494963523444899329378565312407389499833135633972648229637273952668686890236480733645262553323612700691044553309761397488356345066226059924992198000215664047450697101854401883278348470550755874571082337697389341307571669139720564101150356574691529888322144160377593416910522872520739374203328829908301331469321988407737514649748576054704183121044146301110914825645208965616038976244253038052989089098955748989170360587007226468616477099837521175237877048887148353777007993396975054632722842878355012826830968632265580733837215750653727322252443495193681250484491919471676855405310476967444326623453126899976280957762462216222666851233034422039893162315989610135359123325360229613558669035191873626719108011836250936772210553065736376960386046013443237728063994963751984888463334853527759537054163227024740276098622115299329280167972826264935250012074933343511018821730656136401555046553063350995133288015397274917085151892868740126436664355955377245054821684203804527074315205689144867932705652795429305601935414897029219713568117955149072616063105715764756075559690491116837299335983268001917662736925183309543627743053811421194786286072765891546010846696188635075328486140883264010123463446513380792535039651671402976257819838230999899726169014824482622720244381611423318871614538265458121765668530932807511688948042109043213618453601949755951343994690815717781804084882681039858247387447623108531192951442855316270556338203986854583373569166634050939704708495817478014757020561113008915740371059799476093710974382539646822400950846390814745162630040375159483985653664415613406121563641018928335916030906446698565759210961196488232445297053299206937512029336801761152683443838295327840034540360642683180458027860290106549887566844859004384468751610941942223294493519450450901453998020543124457887452103817763278139364890999375033757229437368454901970323826026408874796623399766816449242300801647171576743575143446484416964480890180180588190893583895164253502802372969599591433314107105909534289427489276416299232695699482218307448722016732351501807947962528099026768637359296823209797861848989822790658141662195918369935914951360599217603568804053802843296509427104375210217519886977392529141269346009813762028812412307235034488284931301569562248429610093527467219107505774441853476573621989531029457169209202435115158922553352817928361480526990468984266125670478394582914368310088972867679635109679937261807908550889117211778712641545504654669994010983192906238368103583752388122843624231655347293969725307576902384797950478945687387142376833875913372340527301116058183013596702050280926116614964203910500559305156329864594989515761223096002624796590965327108760615619667592051858376214773967507501485660118902876803046475882557364514207593017931735364199395710200310775766542847276055183685315328556208681332807830533521027007939131989507701216467997900482532311722775659767617638124434433047591977293889331179734392550618279401063063956729159914030071943007362149127803967054686760216278184396420419536106412477622846767704301564906017967402297033608323059908984292735518126672243500393122541891939929127922045870708407625456801881345308628923848299112254837074141225012959497213536131622146137032066781830263132413671149501326703440582486189848693108332714777097225752824557010745746279650692090945066594271188849248277489960934078558821156813339416199104392498119884572125513788204341543825065524334449014943510668197460314650935064248104353432610795450671601871674962350710055236987775136826124736712408210171177212440774356308900157576805460336538557097630599233906347942126451041520523952265538305130258430075962286299245656106692816335734441456102753701897479814486144037673379788596006716304094374883743374481371516925898450726461862398459646564576878638918436312852170762030289557566720619278205864110361100645737046223821352671825748637047515792343978776220482136018570094898275762295182430879198311561704500208773766885634675302102684542016978865857292424500074415760256143579014977498985575889762984713218288545194592291236235923892690287592229304385497799506396091315613063752793904088842203580761416607912617310287456693545591400795675055858919895463137467599082416947298295181009103363395351234972276115828647681343745152403296919562581345658495152465060865156910671048491050391304236477134044582517045668611140698791556064310817980040612324635809021492671987617623278990957942033159895892635799518294148823538821237666598045980923172923793072715847156553555524684016691593506371062807388726438375345070260198380264235473070528857124978137187532709331025563334372995549636119130690275022172740642789099330356032848623338042073986399372680258757616031933756126629964271165144305066243496010514470902992295601590044610645445247103557883207205120160769443964232262345546434359458292988597374308551400467990165474866081218441799843742173002306297754719759677625888131215360336404707372620336466131352375901716061936971780619690926715794536475543578090057630953383870764313011915880070894191421360639716734498826594076295595927605867928080407110256223267062901323451088127714647010491396556230968214572715359266327501265770550207663078456030687985878991504727593680005057271482328850317460177117149106136461110082472132722759799733180964575729795936991371955063284258399014284609359068535822776309256652857000524637328957473380871875807244240259897065603086495399372395310110342045910849723068607992395287769582288466851937078561014643824512301533986614756312164148853854942836715980294338855861097771362065121462874308533162008251537767323177115338221086212642419156441224431300253357349457849490307107598685503306019236237222997793287685085877921775997702625189357046107124641178672950451296763628720881835557272266348357904688166423920576347023097574966499967000080810275874905329166050949468918850943672693085463524546916264927400417233704329937740602009255597775328908888949622504546751691747280140386230895774186278369293502823828761335755536000305866038371316417756080363596525146412358172744978702493141160495125696825832000919531560328680747067482099225212813972386958135742423054143702392203776441874073862149935819136431892810045069937746410087521067136174303670372510779449139736645389955315301093217334081018048976359142398481351772069775789341735177433997383820244850726037567002872121582452587363539755172406340424759963269726493560041032772022554603641395969515030570601591651378852033630987149990743692564666027168480084670592018516634777455341020481826119322948490825414175359941104837431169779771168448002368830623696653471274335807082797234293611437564098197521401263373194111520164221450018218430583172447105083425925890160493848307338852306925772642230155518495282727666865003088662341384165488496604535626236305633304756034215860959625702167404813842717727181314400835079739734859725727610982204454938423656116969970236249614947700659723429939639572088364446653432170377596444833156406211609799320792941728770662910461306100804440112757897712130727770919963275413685895692152430470380546873983182430246163695537213283402532119232124079695723539804881596725339446672338905415258856349828903132086859832808576577948314271218142100598336835047265639881036471526166586714986805997296101361273246161012444908203137943405981370933657378356083794403918216518746454484537524187004722601095766417174721913974359128111849156210916207006419956422240162523489090479765600867740474528355533832930527157257287959029031849238291618320569099860180236172479242839177664363100276475400563746238720282053078789895159367557297055530852642673479175399763004043356201794993584222238933335979021566394282738076858937525068048749912063612913460693784347257752822061789244400236770069902924480001342187116429700908380819011293167114603929349781630567734340581883123498410213573554570132326917056387618351286890564411625871296076135929551250232978615481111920658259093846586642439385861375401504852232366281696250494283629078068041587316395256059263099771424956629017674641318309386261869593748443965156232116524784191930659405154746488381010685796969687719325291928097736258530484263828399747195210769358888266460867448486414438431821196186777123804443563797348872385657944301986524816047592320653201643424605287504844262452459415523025657033550188541318124852299794939688766803231155569712485941902767827904251717443976537643620105754142608167266318578078092860232415935137289326928505278518225025680109442703979168567606661762411495916261950414581585946834329710053206860703036204557070693667249365592681567747209841775355240837504384827007525483142755793033534094170168189178929015758932478653694027008806376470918861250036409733508155273579408580348547995669462142176058889187157652483875577829925018895922951214384394791679620317353591703360201402844561979151723215933096172845256136285240945982624597044375070889615454134426621826540999641444700360217029575191154243891301928544369699176034103965147224872935498226112438613304835993979395896507456531097660951431125839683463790107824453890765305345344797609668835085607013658483156027407930307734889443597284929794222366586715605373655660273931348772158428831345602609508854121557634674998494278464877547929644785515911529108620390669213438103126551342115759500557722226562299486613643249937601014304977141800167614550710150161786895642953907132876251135518753452492690154416241080526550919750226357783764848773905072080605773976713920735410751475624505159488651453097848230825966909711995693974424921629761257717460136268439182980179886557315966957892782096364729032135264327096898530022175446208957687567975918902031141627385813240818319808997053607343506050220600574572719819305496611587651568059511026473106316540359050087933115896437385391059095608088977851511635948227544195527433394456700846095036131770946264685243936881152288402834071493152000783370723803672395340567947645172653343045680593705127792519119126148936450054834245639568361225643761247668122003199377146799700671163840447671271883911359339880323739454319122039520058564681484295768809261243725533851838128327221266546161402811898185055059780167520735013421096597385622140487419390897609375067189107351339301028760020800008795170313780670075262030105643983615443468474104147151236115679909382429903971087931097966190244457399544739834624872542080255258153083620227199601294395572438861868931853853362179042087183785520302369281427138270425876438467110171192811962045487091791866769680636286314107166631517735018324139910370689802334355725936738091246108810999914188395906926943122508847371844063393917372215862037592000818245996389305004078801189113896682279138288723972887795825968844873549995260529481897884530796868784231128837303737894779915491519558445064380482173672946913730106420149852753419118201835233959844536710586562757437114449962880957010394451160492271920111413664900791368752229005533110978994966262610867966796083925622995289128655534371802150140800317871894658319275018459586103415051868678685848110241322385992224695405739565917740049429566195399145548716342303819387753438810846715962092952282219955489392866658792022936669052938521765589229775644024592839908363250760022475320770126466086601926438152060625706617893473352086902897020384361126209243457508683997753169550514320125754827217397795279128052409681465226537197927367247876338735480126446060132531651973130852214455797904719855729245535105321090665139021888326157974200256091713840061983420928331848247584481177794214391406965493816868447646031889925408704255547588156942651318722079958180047596283168911156043712411515321895587030412967598425023125125976768802490496601303203098326899300794010927395548333859712996722380931015721108671192710157809143172691855418716733377129870202824477534062622109827607096260332713764441794846383766200954141309682721250339953359267069432706662090907329380076182899059460933702657722681739292760721530611130048676503179984318248412918801653695613559417283916277527487161669865519909568633048713892860909587834320627744741887341121534063224504130582216751576644524876185660686319236563972175018465749928130297006562096081173337201871987252038145315160397128966030723127988282752223325436931422284936777812380901584799786794643560620059869240133124492223260075297528870848388287749272159611742169637421490285181718840665208246725512507407276087965963767436251525999628637562042765173638179050051094317348962132996828144783758878936132468132436812346009028390620184353869310002566495082537483684079519209091398935456298132507534979456784466368957819041603634465025879510029095631795045440421258619184630950459776790100473950950124300492744229083837339634856196932967141503756100727070716249188139330316284599230036405813354831727986277226140156735271629046034083088848124588558265670912532790583398942030219539148006337167499712166476727661101787023431174856615596763216603923325441156464139149652018190269027291842307494362410201091120323071779240914619038628397072966030944513335513631211067494825464557188459196752037131804125750691996451374530246522501770755255858327961076998993990379391636771041357103487803144182299926935222761795986330285677519495175983413590507336933828023982975447297543026119390080289508332310951632624092809879471084816398327856002830195388665270285024622450812413566322432126572125735527280990161542172932923203819558356049170713491216331084389721040235826810808514997595071187404672810863258145612885883659576496806844033381812549701567091999962220707865017779724850390456045142339727640144825049398739422937716157461929146265989177079420748312380683515422883248190913617258306829332871979341512364845528135505569509065508999075512705520823252833948287695655559811300638252464649117479665297306333458015262148375246554787667130290717666760878468955747106710837593206897005252960374401213214731669964352078693030190390673929462534960294154996139566916969227384049692573708718510810375415414334469946358656209354822473670098198775547052915307372933129939849828499722295811657252654770563727283708192393069744618797383341298072896541438343158595053919071187134258780399325211027211773432949633557916083360418431981430209227191850503314367030956938948135332067410812170929210142471305479912217270826729090150148304179378654485177832435614143258987573853823707990391603485614535458239413583583211384092144018973855579295608052918560659759316604309098385722632847819600124569416376734624004260153095249041394476815784598624031389843874227747365971432427964258183307565708851610793162110335773840300127446411925728585024908377687182569215011360604401979749657914799152634307003263565157724657865422836395716491652322063833290171574830708593829871565459115553195678433966568455646520348161556639751209925897785393904794237699361274106244638291189427600814847596391389537274155365388911660021164196330136717639802052737207426504791263782197765133006502058427669784486141394260748177006157800234094743930373280556924015490907231730952580784092697194477372513633561299356920768453900805858130417082904042149487981480763814203386122680916547831702134241495520841145480280558920977943392947718977002317307414219973094207478576390030423649390276252957582260590711743906459058743439372052740690999332409957395698824675774155355046135131268812471282801698083723369019098710099093804841813257009169923955454010667475914170778442135159563491609528318537916781434293166420645622442293916573209735932187247204825581156318065447499927632302683840886147480498637279477066401882299945608138053808356458195315836422196546686351506258578341908952204566532221477462849819873644226140891697806132889672355508739171048426153980041338389521599776529785931352701824850406123778833229787338938658733156711628262998925424374130784762101732261834279469676991412991047012665183798301197837772519388618639061774795108075483208831196802428407767752040094620421225845107097746485519700934654361819416625617182472940669566221142443224840712284752253213025389213397067484728931485134343541730480119725560521311398039710495460680049933496836646852303173040867876553570241645640540646345620656550303408563758132231948370303493125469038786083035417471129373666992551695722882201680847315697223322674044759918596385405658797966385390121106729944867287858164119473415616374654606805250248014252469321785948373737231988218105491925940952825584316458651872035961991501730326817199119557822465864049903110645824965691297243721219768534554148482673877919443063214583221927003073893177038030967216031394081077324744426655212469629431102884941451893041581410555520297996164945836787647976147281389088935466560438212145384097269535548959243293439887222959560939566814427746626019127670003344683873478616751250168656386759650263620270837957290697432159311290416757226343513737692944261782180199440090536149268636906501668032294517745007455682426020281563732945881275248608463718627345223417191458224293285835418766689816625850759476901587641395741443577738720299127789730869667844320001090320463987060691945654549516265521347820765614422802802378253911377018066464732422014674681578132365278597154813934915447799107207107075209452775463966272003772147173519839420566925505980606743008374074823533563794078451502203374804589267999604634230142377799417504875252218819119292541716967864807788637345055494354652304530464366802346077176772047398061004434717941272181959849126268015596870464384517680816734294986045899914296606858300412076892056175394422933510567168498586242750847414556938798946042138824400355524225103302643910591470412518467721880987322689068722041968937070980035517694565164809198654921431799022373073629996340202671480747709031001178056741208921300699032516937483809637667734887147775400676251043662599107329018950852499532488736336805437174733296040116757784665166324977792511065767175398218447750058064060992162145400360191742069369386659439498971912652708019547262393413863717907537009129232283791525437479660467330493429626115669422171028898113186058107390218706652238738923751883676331582617958432964012117904205581555934930065180840927097066896836862062394524340080835433220105764204218079466042742283605130576434345622524506943428685456604921544567430943832670166206900094099512534574556718445775268110719645178275570464640730865215395075004597022382533849389270224171362014851925561088430197309307473029685181087506541852596591957352692888894728896882135929851665341768470386242702440293232640486942276539051333082494955504977223900122271715394118994653492080925156881338092200296281872849542330124225911660282266119873303830544322274876418682230342496214226008216193468174271564669755555534822086217663252422273028593443294456475541274097554060249187915364865403629794907755298285867819256373216344900293391312202666540371783576415574001640733808764570086464554372517067968679777174849582646257857393698261125218556787803882634798644624170806124133794469009018836747587598969095880316263115215998826547396109288303328499682738070431120575786722806132427818532092819860748958601831964356942239954728180386499176835828711724702167436330012895362110430905612814172949371492123124682024066321701150533219476269987481148327019566851204479202000551971606792688421755713062603404681329960731545247474821333335936812161995446122715676934146990525217771394388818378547361753519376698644084863895509317206530767575727659819165732003614980533513036316288917105839654444224909748029856997157844285707522395308210554122453267585041825237617431141249599984594322732281639809678282274611755897719844102059978458940172016416364790806483194159380126832560396771952450621615509488755256070156365876212550594743475323488648072288011775028590632012629242698308228867148147615848989979548174771657224003269048307329742610318853044733475277775747585688602363027958953661064655813199399377320656465084225911538370422449358881574782604815910788822178615298975690206742106536861422723230131170065698613625230182117423422563595231107248775884694348790226076466722123474086014446074588424867842813649752610109544214182680537773565900326186843105629640415246675507277817718184796005759684455908913629477548511793740482142767980434819121038233594602515896630553767380752013311844284155443271483925366978501856620770046777882530942832478732904781465028883547349160057829945488606632389254103229162601561631719755511586421331828536915554096186710697665056900899391659592135757306454214880816026830824724852976111976222213274040754440846846025922702153036705506933812566395732629017391155895549204141465520606496776186441218835059315739828330954903547947935073578409885924958452984183112756009359290398000612673956796872283189834072068429039179621119162385265165084519600434478266210954802900986677087693307574616505947554547383469677336892702032632011169328227012010830931531192641254279140218183616975208166608360808091579654502661299017215524464381363830947178784866825212471263980135645396543645644730097605196543661053808119958099060958914946790458110933342744924805156575490058542339468824628366087087518471062570923729535867389173809208914592872280439161968525315761213376571823220685175560760704780524256433366386516421722464364933163186863342793606664865580201969639054274391512235958090584999611573596129707791410589503765704762699139639433635932923951728982342603001739819842666964293620354684919631056330416406246820890063194164292837526783009244779688490222982975381483423237650467966455192471250043770946915611184281603453495406735053019112680362671448907654711790823272920428304666078454133474498486375827844248289998069531910044805077497239965996658728302005261902844543000896224484243031145596890982864655190507206093509022002981298405621863866847109781537681066468719824316015627784079599322890090709823456229721359054602605413983322891690157540798293431417023587402717777350775698267112511672344494363300055059165162881621160000177691688945969967999191205960044466562271289187354053031130096851977719811056783811362876576516151724656486136798072361194761178985494069455559819991045622540805900470927387080812103683630051165907844903842097171461979980239539982080859482330992909880274176612211052493265575521947323485238227125225771588007069753605800619418048898019002923212781514787688162992545225720574515555153269910739831169508372185763674571586714952312863308284188202509028563439423760922058192171937785499467395595747031825529876650661848726555892087933855492685974460747438033525120692173957051388744605489945832211109291315741072616101914006490311813092932208199406509864284161918343491621181105481621425925033384760842142337412791847797080820248115930626054002930004457568703865898227202314202908476215697549698986197390991431098018956154595724995898214439301101012055671460100531712567543652286524127175428945761503707824226267575398962921864625538003626810238019795919035498277377050994711754424088187681181821837478883289975938945072636348105586055829383201548898334495860152431832034842884889304669939576402657611034224886018820312263312517829044478195435807890375741984929216313836102857525427470814336728630773530408580219523785823036538884268405137365728285471560316659623326754418210481579602854847709087354174110526723067473947909364009909021780891635844534257404298346321965480103836502952482921099574855372821180857483869979605972812457798480263518091441423947242592304343585792859369227962545370858495569126943478756719799045261489645041766477335818509215506940098435603522197424353992951108369835706260554683186383853183494751692345426924488142025306937233376658653312107621779346378357850014111094463047157129286958914060192906107266084027082026543151481406963782124403355591264262825783461145495739249664524731712056638165156605577297573870543545067047688362519537627902366285891985433335660685813150427465345217078150195953356592296178366662705431150507721165886630516685405812708563860275802346290503899436522970271000788597521362675635712992152341444417007347863137179129294893302102473641492803967390758923325445092216585258809317875159048920443487050040568986232592430476796401353873625125198614924624603581291157580922406315313334044610556441503790190695155255530089251413019756030185921176902413812454362828631022397001863656016950509044571026308067189756386992670875826560545575856746502523973515425637736860934499384456005172000960359101706127198090119190764033006432392301553487967619558501547058428698106071408943514374299048552685739267648706607250122608016791727736881386849525861722979446357217883763575809415844695209628363517018446165269355612300656198112759650555176708351348844253340155859568930604431890040168748079910328084249895983326754010778448914306389602902649205311130424724243100282554756864393217629945414534660752505157684236567689345477527160404179360659041629561847036244605826158316948503793062276882488986103770784001739272719184610732786902249297401042901215695445610563416160988885140970166022923928892273729427527759151920410961101340233299862647221710039887927078249046091539693330443903695322385697303498227185981841569686459495105638882855536372770663837381993952757146593468351331378421756323830947238545711837852673555366629933864993226375870860835806243677286257059871964808186575514844857574506706261011378588353303291716386650593499418192546126200798220143718564144513446700192136468149386164549632684414847687995226288957389176442717115074478015517767809576710778149828407577567506476934546307965075923928871780653964274829560532188766855112706371249918095608390032678671148674949686926535643932772353704395092386876568722314746413362799437958386905123167119427147925896628256813631922249974404401273632078317715536797235904129876845613376865442552623249304741177433543968024743496450549180825010027606526278416661769305291403232101229952652747479928165115029181406421426184262664609793594421709382066687150970146395592980782229669276555031033663178205742224323858811174281801022283692434316172341373107032309517907371699602350959194279410413527940251071618589714169429665428901069913699956058870084497940292548944944100142296590650257306800431716747891504226596001177245044176644106737359278500356800715694335218675331490958954792085622723068225060527572133252223978448351101973642941305673184335714694715454290787417155951377867029729147961046543628462988594006405900274629099807705664779495371167770582197616913223723160595047204388920618836563621902508163573027849785327489791645610243491941325869663677121961521204249818439655068663369069685651514676601602118032969624440781849812030387486745713515277353345571473989711342063517359629442828175487288319258572236596061438120129580999814803748968461595851544939096769424926757846925410239179645345804921802979656731165875119574946219859538032616459229997183680673932431457689185347814800932850705085298420448449577251561499552182842714715346508912423044778449736255924866054529776140089489561839093898652497526699844431228772799471481290251514826407655099214071314456599831880879762832208537996210059942387086533157148337533863474864513169150362505726279152971466505636009625262061926419657282044074830970139661458396334330126866369142474612808036379095782280838197094280792980555797481444834213148577388167051875552544166937534100788693864559248284817159561485886202180810542482367027330241969547937507533167560669818265100057604706191400856462106211571047178828849110659966267912861790114538558869884773452127464817819461231900951782244073674738459833353567806083277012039427297740881340928382304991201223574805703279941277981219090449095519947213137533771339356047233534314966529928229720620202265816570745922261014676384332516456830492442732475461117827032381311726108511838084849188883349309374653398754500349145086755407519408291556217443674868528263790483560756533958469099406153141611282800166158548361380607933186592261100742299200026541245768868282082670209434286426462681009708402144266366918446542039807843393893876263040280437035886164289799233572055901351987202343392077689072540924954190531631560913311436936200795425588281358104727290637004380173326574106367664278142177757523620140311661300000759759859070498429223079767119689748710797164781691321816153973925266139670263029241037465664748159832068973234888461691149300414110837673324908500228880726099761847508432695792710957138794785050239360503163296237660155177057328981062577320169874114845086459306735413494675068551161455086843892429702919983038841897070380965930638089999080982906811762675591249186991638682474245418018800136246504419271006760297141010198836334047985122776117388522312566277393309126020170467235479506309990123656235953843274200916855972308647571607116529648701008660086580994538333169817684527401033514360400323989804039765207813157209026995765234370156294930736015403122027631101347292058924510838501715818485576461665126525565875655348358438788032696847993275013896902082547616142373244230262948903581201841953197001281809929162181009308075748820716366108491960678802749708211218637677750772749947499068989491149778316576718409778391610778584329015187198007033238415921950124620272636310821472928128147865364624928355304520661770716327815281845677603078369888208059898000215135551311115356078846421811458530292936049816192832600445957793410687017310746763122217822456455724347068068490471863517923547553046802858125134854018010153352400145953852657239052825706423054414310339066437861971349273383372418098242631541541077199638027232271660633118989387608495769848269617608934878449037417029276070808799848396508478473806980051063736458031058618512057909067710344415780858498221297342902038231528714060488576060334138657073941440496414793909302177080804047223978342599973054989346982706877202169468698207680545172362836403611962768406726059988859132951808250287155928715213115238250426751519793139015012442118630316601090806819170059053276515591530890897950684744587235805088523824373650027566683651801639298481111522406338075870638412797706704342667456293263819963118493247651827115502316004243759818255849328427524861113740277726565058901586314902907629493762700921379772396607817865225342881605979788781900005647470764161612038285835992324789110401902148983235034559531001208383569454556141747146761547209340056495419386021892490478589732249930993864529302490400537355215987284211904661937779500172571703887986021794363834088035984416112531430559627210941140941141433534434158636291573707013721081357874663162714291479712314228319432262988845326803877552395899873927381339566318441980717841430547540921986798204113761728947637306719468157698582234418751037641471778451626590228081566509865122144367462489546900016634228017959382955495693252696698852494673686331405516341280996563395711524513032048092426167962957324786286336724765170283380836601720868031744994826617168030654045462301010715017002289332466380551614467313446167761744817201131605374455714127939858271847226271144094439327953637218397542552930239414262871892095066605282861118561024680816109866242430897176990600123539659316107261517095406599987883555437950979604213497604539145205826540653337483074919004060467384076698822530152146249465333280630089740852892631025325848938040582975154734000232975239235017967259114494784865759702684585307466379811453835432815021629678086855188475022195470402904579740258854121690636255276870355919761069607067782536241596491882835128709732059762661776409060918559954296450940050062828152885605098792760567370001025456951692303511709761324637053247870248211270749745497381195425565878231482294353449089598668792698872359911184793074706539194255659096744713499576584482546450015447183658028253256083345685608656947320220317718673523319535825056900639633462345996151407592485142961893328329253296603685319580394098844813637640786070019261095258738100643080632508745988375342459065620413420982279659801119907274280174283936143799900851167711507963869325659631344949941665286933041140847795166854247971028276829437179704378739578153535109500634446319508476524821109069460846485333685425971244963271017524917581805632757607608234301620588570443911180816037263081701257952144835972468347481918408157686131769373349307707846896580567372013171241899356666332461954786849382165601067874319122869630600816898683373517489252945899582240963029374703743696395279791253149562399986588931956653481485688221949154953126891421936958241993705650067118836518059907900495318693817970208418343345860708427951683374139143486076026983750203494848980431152917816432562992373323042152353718331230785307273686210632142131657034481137131729333615296055753444423024546013859549171511836458977810965984327838754029697659165834435261808104517102185524910476212453363842261472240620844006874768634502190600215939796118997264795372832646330406371917145095233102587643142717105644035166733510406464158591544760449145285517596563056883842995461793278077530113836028713076355162393758094774593737818390867931953429694884680301016176426078807553715550135560529028892529991662668862818789104641595854251145523465076941888245342101302651769344386591055585087540153457891408935364885346017638705696671290510144017678079938780109513644768373115031697720663708235624668287942169680437458344209253512723326976841960999395823586033179620189043757555704696155243464376114162769366456462310935553577807183989891904172019413407029701339265913276391435948192200103329570587857887017430239082736123630616416437223108269168023197653477198667718317669617422935164589049713077711469284418211501270528924981650498052783098602381811099171475023500419463615541564455372719172921109417469164103150019713667192593723201415369482976553232586802751428386009397039037174671751448599001201500078101855449624855936915773928657511088718532798790458194615436356080111171298531287548536158898749630320965155633916355303271346419525414506835104246233863715462086031888831055875748390282658131718442191362620475809700846263563759047286719809415237863952691387748779591503620901298800792116332419845622140510230572371201133051522574446311684237280789969337564416734135631741549670936887011613211593759726229121388417348388856542228012293242895884781808783000417297355868913761505553934440569819976794960444168929741930013945962690965061863081010370971993101361097929278665668315659286442548378221896638825409778590893435237817759147582033001516474129441057735949042539796163170068585225259835285367121307717964308580524842806318883113408166876993254941309091886064073206393879293156210965146831777246353264180889474093333970178683463171205593692418369267842965260774404136531351996440372571568779996585303070167093512322283763836710331993150341481829078311822790380782366689501863926717826534742001553906516016938050478502684649337201281689604322913748154855622576460876273887777471607615813083883420181104346455240414451671118435924267866015139698285087571996647165746850898350273562038416777659728875953826079428479918365987954648008330322473004308633786806660777853648971495365899375448666733735783249072219895888499903120303590894011927499382334578851436728859683967147236523428172862603101210022079682409897287765458398441883616376288216342583337982433157000606949741050578847127890208742892331353840481273751871063022969515209528744987093922721738470612013972674874881584054671817014199907239198249103575164452320799154564549711201243115610415143496802776160505623862742656638531307003030097016150470609397314104860367900063935232705289596976582001934876804936273811535863637704592247942190956796288471084743194380664512093546946317366527191327225085741080639971464853509081365617510846291096295725248037379193584284947170856807061591028358720068969889721288961392267817855403473038437846123042326182573247585688329313924362567584869738931653211567641905530301265863332879201641164386272998678900533990273758748550710014349225516234169259648563515256833528478128665111275678549204177308869211698593177730034088004796015070126083911848079583781536379529376679747367920908617108016169373803056177040150072381884230163241936546412764212389174159953810183883360750353453432329548420505924462401575445616783974321847859201269206336464249086251262615948271084326245575693508792498502196512150018417094635252049210283489412228627368572763770113076476289109176481437968041392075922424711585524230720910171192787165293461553545275319012819385745784683084156485270598964624544099615856743728908453252872785218161545599816993427992281192263904663170278531815778116227332240997211692648159479055569071789040986593006051000865733990988693862144859724531037470333965542139137020089101956029650277922365296151574443908927732969611004435286705313521890669516806099977329041993756819252510169849383271223477283893738184899070537134352615600417010630913851711656357878108584768430568205561261136032476956425881068460548333610804223594623924796380654512954127729900983969624390845633291068745920015172610498705439578261965373416398008991159599850438689258910325633164197289390036867599982291514578654972111914113016739104742790324609866339457451517994927842481904013393785478394042566576711239499951255444819613038432231349153549056216384564108466457976107876046309628923802779987935183394236595598776387167445984105456204459677464121533054163113668859657731406095045141976131440553057596837971506463681851010288111708426373793720216210904785429882618764435831254492973818978108405865498833915381549468673287530735654486252283540563040322148787682542050884302089157640799321072256101467341834106381661437543173165993020088008175741814562533563354645151186882377388599288488607800819958528201524543390700249136389551912119394034787895532654587125461278913434986270903878757240249758957844393123683604492971547455015194077103991044660369476813677141761226336530817052067827474606917221477289261371624157893437305121889088436300906381030958525203842721167259688300774384424429071683817622409694858717337058656361708665911788594005051983468463681254076179166831042698362035920665953813510781559720896507654471406328609957232469992095932515065464604590690452212299931687609875914110334953048280843572308974634003003032166045456240152275655420211912916918266069839961894602943428084088199441664100691977992225158642135658907440123982835998137183422760986595020392130406581058306575150463165467282594200280280671020349607600647794308839224180208504014566178442638678387592917906274230328667842789577020983900506184425928180168439543531342808234596958267097156808720582198980914345345913879056690847070279619250463173504354293395135740797530628414224837787692157829840625972176421116397085972161535162799651813337638296111261914753338493240418227799442411242535182870871547213646321263031822664897761606391182868014467918600071325801717217122596984005774330411279402803477919863171991387503527484381858769255781137465091488161915049511568878461669227299641065073195976103504527983060549528920047526975636515958122736986970602142391836016025476559616385271713735627436066358100363700946248967368317049380805882585775389233855195624711471496271380674934012018134769230762999894046984617599218169336324682709838952108538560069472661862853237145850601484716902815109987136712738889806376688664277904471833765146012444841661616694329502220902636819699379792541922373144946987101364028660317988519810819271570596457674304990944909331215755718424331171430508311752155071569175060969252511692479114486545028818476276800620602246500888196899994520699327122391530088727131205195813992649211797719750535586636284330507689812061900192374117371358682292464760350746321600147768363466020246958170215402108821561486303300096921661858532847863336985588906419809621037414655677263691368726225055900657688130636242880422587844627241262851598144202565293024734140686162722950582212404873184196611709858325946497846097716723769797468192874406346545236019451760796346886039932995435807988108429216485463495733747787888880225109369313560769153716510223689575928423620182253737386657413390682005898114821579178757799361479448121867321910854270497925823883688598131170491530767163573273765455439561125508129782389107478106906648807576613222000827246771993040143727525086816676694874011491119667894085663205803905485975117140420036179571870557065688646760281580660470748893967127245021971285536020647601855298474202061821373663658736025167487245963195410452816955191335933228312611639007665451957209664407338032904672172676739059161211551914239482688664977186472113283850594013290325138802005049360419790017916790546969555749724166919620172332581358137769271679219951850182336231265591939946642882442504436079480130705025546203940802028249241464956114443032491848848068125265395501448968769831317292479949718088769283948554291838177076419679994795124153168602933542311059731757380262242585955057243825019775496203357840371326878016692079723775523220031810141543117017602252888824255110341886492146225153452990621793156551992402599167590370995985892655612081481088720356700358537137691065675498952071722308491071157996236326721878413623615540875734069468905909402620459769176876867299541813708503486262437583338474376770586395347596956106558961559497112676269751584237667974130917648038466806068733641924583341939740103098073882685659337866002236984169257160465801962417627631638417236339415788101722019420815982033302742891037278540993964778626606902993250933559872793998361965629276584965582935500849822919346748292710065112341741762130038945310656087801096582644222569832346836068236828561964979908439221363018072588080507130015380358619171664868128000972010475302182850895161065133917614251416123612688361588241469249170924569934486418896502795518394585435049870186964721711751077325217915813254149068661906133735866913274964350504484162629468874582014126922963158802457470210989576899556966644009679070006211338354911803116584317409193523712254736894374743456938533047957093227239953034384335020269878159021517759753569760331707336739720751906026841777526244799980430346227931837572729792177984060232528188100479776157670490286012298000803474485965561542160909047797291033343017124364746162380879727314263181939138120108145637293358331088098362720148587436117147201484546675151541469548833106334511704501362060752718749357952449224158750579639087889886118069064962479226688652385625998198309772717479846179511323555292775750206974447561182407412113876937085153906511395292481997632173167982751616857915338845718185383009215219242430330860904868423027796266005129084232456861231666922200849453012633683823318234355132951907743263022322563126913958144364982512015953351194019574994489333214285147382334114141380453539896387541730781732291192161401094790992126407608542413865085785244406411506193509659911990328136711404925710772747073119454607094132983493081615949043541380081729897770438912497884797637557158600785921475892899265574968103902871379814738249459737184208319980745623303857035855816333943616661452139785296632116227000147237561288429059708762724666277695470507876986332171380457935057640543977045696290549166389298621170619462577798950238298335718660883520242980411816513778316238840104532758405999377949579628866284581194557944996364589242266164218692014491100103967896687008209019270618035834071362015456044003675682645024010715244975564858954314016640233152756899421565136841942866278090498636937074099588395326336567241843300552999389558900789976161581542521588089417265275571989147253783838548515927603585228849193214266277705837688674317380469837757420097279775894127156716411093953666208163610790822930621361545620409859391530761460394689716934793108217612654108158102202426961693081572459596004357836311896232395805164335231403316842677460502409578175810160596605068711754383353020758839657151143522240983339747145967958699486240367724240333224332967178681147146708179772631457656866685330645669618955171015640504122851883915429404706254955764577255189241747646395229066853555701646820266328688228309517105231592935397479646558026273954909946671346605978740655490474719135627792440863028759549086226154145142627564266159988330867901972529800869021636532705883901754079739242103701127827102043747026270758786870490553848924119749839008391676532497405627931490511859255918137232554636534147540019434971705251682275575857532202597515457930417196040152120814466024044652419765934844983676195490705139404576914958485464102659229855462525059011270520142427230275023101816094521928591080641745044059424205413426494470743067732939952383761975481473977986717498709056199946297009833832685832899699191542447823767373045125576809534789304549896893336720043279428425855729537068999077014528495846206679726274148159853561089469598748180433594488588581992843769717318959900639416976359384732595706314264801677884924269786976964801618765136687589803961751722601527905433086036677788551915180585900476315855998237482389749604188955382766036137681505956774220879428073068014356304283906744791386545909116266199278886809570494014878619813926307824996665269125797398827162190470450924425228547708087029997243530405799717941723670908924439609841002747575035309979359041284483878734233356358510287366310925633064009468620492802429968647365102323670979714100821326029109015825197783623230023895351465252543883656994982930273540752043383268876612321210017856855562260205098990514383486420598863585130994970411826985727479255949796139941844401830617978220100514774443494014037123612451693386076204011215408109738227216237046209750119797011487241089276825890519788163783633637701515609680939032978967195887220612527811991231600650827534137518217080190431776414229504506225997164505660693940767600698645803493702103864275167642536639321571233878960442177639039302232236574467726541486929323681617920117955991217636482397063298937364609863013412842819992974927182206993760868859999701980979084903685589894485918106666679120891104452379388507173368501757522188299879133673782546885547464098950825305371763064065265413522507667603717472999861484091452721244671451058675176835771927790257706164402592847201073681381104923042324311774498391023029225443730966490841698142595829522859761668728605542975072514753748662832859332094489975012146643282570387255428863391132498581411621601382803885288891437986440592486369808217969297497806318496157259939230423768852754914130499844172912653531488554391502993761635066412637296947902734413982686201188163010049023655805609911637200563802327517311574306020433386820893769976387522842574277015760067874917207440901007055352513555303717224323807277282386635109230412931651008173914165016952853878897793591685023439559974110105626570412227158202787438490683366516138093544689118079098224256924923541980970621540942405164224525853241751893961082203772548525434034340816036342645157468710660437176695476108738008173316401070439286501586832147803630587147393944829217352987898602528650531973135814406664894881081518063870089131347655878111079641877293471300972240057057909805981283634828384885338253852369803137986469518765585496827930467242287709752177344773308220482964463635819604604971656726948539444077597343939608612324232705813722391128664594626189469450818568630839309620124987052040285262627983345150127188006701840573751560082369380672256893895859313784856712598581618577050558467421879442925269583859005179995398911011450951768709360851241904150065388656251862080679591466277363629684885519158783532029251045390529943146887091117777899040809290708371033428854606325322060426629751761110110257400569849724659864212061003646607316812260226969679103546605091677704859136419108318355137221988147941276752670713265272154036317119776542374963228580722091360860541859701760959225619838532596989516820980303669783332657736299994836302203483682439762688885308156626468278335692710792687237525131208889903707365753597298791225492793078976570280150525273879987885909776298833479526003433975147825131085633451298334878953108681937155495401439600237339468702053064249103514776242747655009977648971390913692660939468074490743387719143057006308587856183815926227962975201889819138375173637877615670451312363840090089708788931590237256319831788419513814925180180007242639568680216192592380459695555970795136826751547699654802089003372510796385838192381004602494572125391616621440782714337349862060673238945361001035751427011021182691036180696382885656990668272372171676907629514422700249678407867054271023220049353527213242353374822914277549462728783990274979514181511559168941394001387993735520964312603825836013104653112734257998832603264765844045862739005933566249143247953541821902147245772426545912293424344263866273183820332211823275300301063337146868682810445125337484217041867470400421994999850021550356615533310964722034416516240078568143157909144422939660789036153145202128510459197268202787556607914964308628740403354567202982808128756994721042373533068704925223330640063735160231828734673477113187733598891473277160117626806381104607591284674539060258475064802486884864882259250412776255053730446839262020685538713552146840361177366328822319857850688486918682128006785034917087213875423639343830934625804796719130947997849063776816005609208438918558186600455201079727813489457980093257666594194469354359764268918028189073036011778594302053167798820193654507350832335379625473574930505361366368223996089711395280481314005467690299252268968194406049704923505263603437984936677197109027892670106678040198339915859030807110166901628196839020686687434043123498905952520932403270111865562645891713696948028103090847193234531088264485715918406644675288897304929501824937315806943192818949533394096546796715888512113938087206454723188415499513561039959449441913872796222354138898284176752287980281318687185300662180362359109539408425273297659860631624020589459321984460972592038686958197967729412335297020649210939441781482109791143811047089088017468628332135863894051933184496832999355817234689888498017160746557686677585135609493300245771992998211191378593507316829304528003082762209112690821738011186924844508849706957111188881016503966850463154852387858747092629557885124088943874084611592497682572852185282866660672264204982129146087063613483970920739813832946528944986136937411001576694651078044397074295796892163978312782541188526020148916160792416635507686888864719430774091599700832702155568209121971430435814792504203720131711289239581435082752579001271173547381670518086297047229474367369729325979002324712083979346541330989925694878645506712420594483072963441356778603875431838544138408423119162663864149590530487842195151412275968976610815215452588595344942666042631654075694799481264641471678821325980429325119181746751657588443732583652101080872353246785701621212646377144235876994637010949779210492693599006943102074176656501170748725506343435737294218215760554625476910151426959490725173102349304633767492409785329318256267480111128361229189192898217680603014658646511496810496842296352778449049403018787060252656972016655730530465256816764756255615649575503542273628701883824233615144129478366176365602851854154200057790700646286395555550106318251652558723390919529353222288726063654096178372502527427100996148767018805138328091707037477180143682727638410580567890428623736613165984153299348878571500882476439770685465321902487797088983878286737680231552793793228859670440626479405207457384590212174385562235323007955240635246091403830953489396632012045413495475908755624902518444719270070452548955343270360300892064293761900936664862248751369791458189538225819515385903717305139062183080628373519272258642800713568717630172855685779342862482712523399316795468898178054193341466309156999202865339704852978751201134200783877413710043541620517496843413288692688157014680892144828102741816624222336327909574499985067803150549431648556850372575433052257779870846715228249287231192674948700458495903282395900360299813420526271840180867781174741845616778013748779001094804433210288002196843287599955856868328387002731122070998511541993400176387572842981429001778169914560714167188852741982919254398167055273067023536189749167860005574188718232510459776435293997727847560031488539319158862320432243475582836545637163501196937233442678763697809341438762192498065810383224425257756928985978480370019459431560762966470037773340123770643912587829021832173399757201323113413833666768915605779100968918354588688067702770592206248021936526232309135210137601301938662176918567069298594544588285440543907969001264824322779146412534938582598099587008908351535363955113424612189753951914835234912701490438090793728618134766484060358593132534258085557814824633779385932861726177656058956221705763044469058121311734633547986186487068893882060769524914506446940590365324962662233965983519963386726260410588568373041121050605379654623986707026497761137361012733111829418300002193912462722958986171875185121095388218248072584833339703583383644777751242835726464913782204914647285418341826783793552521986544835371611965113710218737619296185995590614471281856935977479209507572602533446690661560212278887030857468678661209238288224807054333196385130099011787535695238118119070415163934644974341904059956102620436293339930760821167095764236062261421060800270715861602175148399394931201438810916268052854945036651545615390514776154512825867098064287909404496153368876723665627118635823425839805932069122975047538800849598879348952332310301247945583461806815913861820031798517842754062864080400277838353093638702450991068547348793012178943081774816130034030770125756634787344428181762607337963485718055218802568086430174580326938303953689040600805557531193508979716187966299680139076114127377566617054164320064881969887961841231498630530300750707397874450136852366721431407055578791221783797394211147869579361360662950657895900141835585405302673583137499781235103791535045099382906568427821847615124055580328756002142871473010315247030520291666583391226983979710695676207998882154062270898237808520452222057931445010372201556078336275515540724416919865374396444215356416934662229393581438392765956927362464896467214338421975904274339881205389643287996199494587659746053644018734678450772470015204622786321527328172038617946811475375883176930495053986402219919065155348007077577701484702564563030490574490217733206382088978927494371988091244948017309603372509319560194462794291344027442100373658420419364225996091852192035708495685139615362231465572792789461172007227033355885254016127609987774764629432207494196811046357015790870286825389799140627576051971969652212337274915232973363510407735267411532640299402900168033843904707656610245949067348195975168242957356290947492381388402218859240375905967417172492780325411324755155483236034244103741614425956880173648124705250349617818197436198759566458341672343809418254087858152814065483795757902478147890398002309726333243067100063664571443368625050815707694959584908928520087856260586886788055304901239206514494496050701490175877624700082316733868317737911089977481092257919125188078199643923599243254212161791245867597203970437033641676700379786388855619252762939260114683582061026161434728860047299831582745170822214396070939051839933649943365236618862075206631969480290200583678128350608280180635775597973570376523969915078013396151008985265023523998279426817202036817386581944233144673121798953710274486890054432055307395407214096487165421060878151269316042696819491726877471518347578946864883864291701932661874123734670672170385488151981213487622584253817179862168940282534737885503464032861406819080868145815663449043887598819620628303327943649139966200304142742615137311314649753489973835102962284785330208187704053044625133338135201211441672305215139187686087471278472818625823714175984330416752600575542394965556063337788847372950573439593544546472555234512904176552772818565786914074557077694527859429539337057626999338543393896837125259399540582265922812204864542753002959382791465961463957103946744852846711501473611816706450989228858742775200635837769171631737117024132777711632735559079378565507080777028748906946206836558396899389559290644180997751900382612902186608567114561198172448865433028282977775102222108925902927728754546771108039904977438040058092092492022713429442345727651028773192070824756162677294579296901897952371651690296986415384426551497289864876213800170101784219621533103840230966819805269519445476008449535989530660435729397807779314586771864785650042682274126415764438900223853013484987941039350760192054019827217689762850348906234612568194766187526918780179626066524349768789450166401976399530985528279722498379068417098572211021599743310191043704346628869565031310171348852313081911774080731556786610769955680817306117318110989933034819289080136935703350036840543042457541014035817712222522635230885975723893437949018032473357665505712217832684278414422165677090350582264747219337311717682910374291815644428235213082290332809117650276139038172467090786802611412971546687599576561840059522025177666247310974841165038535026691031551625843354728339864827543589486528727418077983005063360905339527892737210642973338160974224216680191036588041608244357162314007790504081378362357112762104344839114701272673838706437102743344167227256732840840230466019255604482183976643058068455544140847576524825694644466898293288832172332288511280738555782570000579835046139479223992296041955880134920550047358156302936909711925469647902898566663940705394363311126911316219470034138716842706796113536784883358859878381059019977576278970847282044443655697254775951956499557714600947747694337867650289516527203368897495707014407645324122105372042333254056963652239641520370105350669131867925350705810293126749230266901841838121044429693471390067704211700877256650992712049443281703691398560166572420171626072405548091369641337111754285127785310863684591128246964186553734040299542471092333689065741012283802838864046925135259000599266467650361524160518655249807765249826835793955519747957405301797454631137062715107606212292423037933733929447164150676820794384996707629888048437893053940773248128622997546614872005812387736609000925345432008978788162647126817567222944656154476472138376866828448460796544446303359707655678587975477389937587081203933435663621058274368074515015177998639284526601361463075654721217707767170671082305544725218484190704363803546828388769630505244541952254297544456534151213933014943125467545778897299736498026265927578719363603292266685620058898130277090928770898620719389066076145152087441023194245623902716427918977454094412611339496633778766894173947689188180958077809269678201496576510930635676624516493690002347077939452530185975671090093304972114833783678783113269948879521960484747603923533658440419162955822376628886850366294467663294089982318393650597049786307355749216651169246705008326392268644208376731027775353251992577991120956398434811582691044518887725114210101824142547899993171616674470200101940124548302321486438590990707579830160796689491046412029487294514084342930867187634160670987134791796481973793338792565950968197593944774754442459194201769864731270364963912993557392038886037747887592794255144166526689970402770998215152186158803107614531103040481989879436690597421758681909881367541158633043925138304606883795852636443894184763113786236385969975166513590658919046630057727111827555247190602461223880630989719553431860558125132242566192690826371257420782410084972417697967168608726775257362371029942971454550694432128333243679873058655189277865837432905505725650990654967193641606352532812119557353899421231975956686264325868288931464160986103644019078211978524276021459073058563542606364911234318596036605370134662254965129663175240623890719126546127355437233029157373512434709063094582365917434793230307189987656460889248027835051610158309728324102520204223303246452312721894681291941896600875083631476823895843778578805372531251635486994806535978796282861283474710924133586814727016442177319344082975367620344267197589695373533716865297529105332248937036584124577944882949931174616130068396320858170521673804549714280767970398266448667689168885628206132181194654750789739633245480687969990567962003877141450631211294758506337634507025392324306600616121588115165285232295387529484621332898474893486669452309077320830823514673620330063271127995588612866034049491458232805819215206961986248392595171013760841045066263575571043318813394203406055772345148080138185303868715725957611228746930492391890431479870594724120436122479495504325145297253800766816257120453257394303569210147886282358007492051964878423803676887769185018421439095898386935860275061737630117274901647853618445581219227667201462553359066351078824730959712652869462807905404634970301665396666850508994253041332117436216669006267834790309815774840707692403928812734848400865576566545891743479586074216993121642602707294624752297756674576759998340968104945823769244475768830904859776339542039042578719182757710931627004451700690298001883034068564740960406875121470407388239872963452972548656478994688793910757755828754303819258811088810793283952853383630993577690959510302398086667519298727929479635723253046211472062556307025491879195243026359672198774427759991302941583694389822316175951291665127655873183430068194011202913277398174662034085966202475601294109292811416085960302355038962383522727826563719239272914026561096578589169735463154517923272860449495060287774197743119688040258900472984175135574921543671880954607475150727059227046827318534886342169959852296115823519888420650964137584946441321590683566112574099615501842608532148306172335151161370711338267939865508289826763757796694891174071812853095650513036440136400872012993643679316917445715709806834581776270489305050110160125249834328893414557694067585996483838710567835209813178836757000258141492654279759107362396753802874222758521114106497847202146776960681413963955035946221188948569252431760580611973909610576860818958530127119434278742907069840282023794564246477044764306709669492804405611738161327484764429812165471176717287617162531647322027556067349250442419509988799006996814420196993137187858504648343956001783500312162407283521758852565263089957029540563725893539122677937068873273262781841838403395450139975745957947842537808581069928322486486039484638459558455649018889838772126903832346632151792176550383432232700896158386814872596148902107434291166870479087546916766607466699985877175423167155284932592716103116948460727889755435003528886992909602182143730414003173910307904718563073666655980841100139622121072726568271365322435434416600777462035584731067122258503816287287899010703579172585347562500088480968257131059958995545311592687366230147793586959989293662855863308760951477676970554918064177080620228857293351584497399489029113674313066032201358672101857990507720895936122391633885688892745531567025817231795973989799436818271665887093881104726223804050155078080152363712539217869860785738356256926253865752566245400305396063262497984900742806127373587558094670112343007210592724846348542182928320416730322557736780996598681182023304442735569177039079975941160043714301254332974818762027084303550525784543406062080508855859365192043418506209013180990798028753586174699185131219727946774433636534528986493340309558492639524931831737928772009910580579362051673963662157201824158919761665466191051517218580863891416774832953398015395811856343607788095056738435334380579533878710035483995838951196596940370652000088847343606090741013664431462189909293979157127160266489262784302781149333548449693740146007185523296077693271559941507836789588129592281287012518408429884895289216037976521937030394526192862968675709698855459964472953382083772634468458405767461509660703641708071666128065153166574409959433981480789227822424615537724682592777542844103786443882769342496940662681959225708091993289253519299878480527439105379740310306604597913643554720414969415997980535403667516767942123579415666205722395468979625861760691738383060389977533422984709227968822823918583152831599217101481836027492088538444141621893157525599430928312671747940885661830683330896950674653111692125988590098141876807110808622862514466235214795000365185838094594226841532176465719383376586916308149544260726201346891671845987315339773448705496917847893754961557326847174788395109854712470493148160150152790063570439249014886404209639528628135217656822898739757722745226611975059894423610052636318935325611997601215247424996970864744807460512030649772831660859603051406053450442573041116445363534620797530535786308452836288471443110601733552087125032198402249645811336405118000043158403242522140349487087013172370829706737164514838733186572177259754839084335371122943845762903084262411337874090511060427252155330212076132575422273190349275103600705436157818217891322962769168572744168761030311939113003099351217072167222358347930220855011405525985566438903644801375095070612373660889470788643920949042341686298464641754670930095718302439527009872010300574733889640987786833116134102807914842280929303048349320933098191542133464430735984276458050735771408580458617530705751252188191938519451341928708028167504830834135508304205781702956158051384094007375708432825970631350433152677720369687076477891680896641894531861485051380566238477956944349805159499640442578147310777730303453185710828081156373454670196974190155601604811037714364716662016107340289574335695191686771501836564348860191333723548843887756727463310399011161480307795031697404604355133339196207188583374725084991799004462279109438338866677154338541333589881806334336810772546842224643625707356135621452287320141863258811613780525885802656771337571853822721759247826190623956258131252859208732201780554140730827245534855595568620099445329178445664349926140458688017052787985876459717674568633207879873549154243503216525507051130534785462142662784287930708813641312599084462786203519094686820270450247956536676668475527792280483691339016366236190603502594019286071455657192225020718738215499839047978198211355666804790216482894505566575403661184195314353233423907908321227662086929090759290867341414717072453308153656619980277436661570742837148834856786764069833333701361595061148082428615984549808967460787185423984937763564291466492603314124592436562056809472180511407379887093984899439486296507054741145984796310114391714962800665544848827466586871837892433367642004121070327935426947369455276309582187379428440309840365370706103700437687002596028681839614200579780469142963585817780305325892387495743346610196570924071708466534928997354225958188039477171547206726659156901584344780986962873513444510918376394498826920038354634385978364415625966942399297507437395242006837255141927964441625515294623133102459570364629862245547020747036684488226640820029352404921384649120632257064140440723779219756910472609789563005143449699017613087843038567072310314480422086114114142735411880712942626805447894297116331748549024181916212771170052805041871167058364863482250814611463476275457563878287877490033862730915110397100381371631377640513925643372620074726964800989266639925364150658846252810170681531467904559452980099864510761386225377346847718019282514819215535488886813369126912510506244360290221094607537254175345830317606770045387667271990476599855415011302122463264992760799317757666996925158409243581078561854684407787854973130174975284518631842866868233677831070655859503082964563225854280184349667683486202308296713484045776127469374108716285642834240434493255518149221184869942069084008433799278251299183688463386278044989238472939712319095722457542153189971708079265573353398336312214479675832965040167581625093030783243983528537258764308125987404954750256734479330168727834021161559927435209228219451202821873543882090200229181086867941852563226882487500629918482386856649010126079250417679645040960721789138371180294832360265977856973988596860824069189066916079608976423777030737913774196170104982074749634963917925082308593396601975516162617577235629327608260037688748534834387539578686835441448956523375491030044366487599402253658916307008541481707599558932113413937124503639847811458757707015469411927576043061990370347321447279974610665133352705923330441780036289260824094509708406590438821948054903787318250636601611450462808458928815533338828432955707179943118998959730377924341813294820405580015827661985232317621527102927209808608384700987960967121196223168475109789233234194263740499212297867328643358195990928957331640457091094188533868578496169545497830117649443880898979566918360684371957096037724807986962674115898255259246497365324324218165642445154470526868354979856443275481001955503974501446242171332712504335769926713419102636546350760505241204145719952736736852304460156961349685784918853582004959030052998700143611878277320385574409348931234688722595594727291061929025284501305127481711835111579018706327735382775580915405394158885515684018188173968886105094485818549564374556735576390800919644793571095886948130631941826656502233849648454373819380253764853147098308290826275927214322795908079080560486348889404898689173530565199457134510252941733090505198454590955456231919798103871097444956261019052236537916271849454403151541006297111884988554775791636170482099254389706125961991523584379483295309781457325031529323019526967559752886298126241860829491384668700681481000074637016631708849675498151624145007405358890617586998449887268934386597310126084353514799250493002356136716771826046519377534436637913573999711528738860963404332951010462148717784686376119866396074702720496803828665835896916764950691668159187572457623726872728625277536839624912445749824857896329006407673383405270741283272564767238021005983556554408617793191178812156731632495707817363910696923256730216529920832877334657932691483434074238193948884316518203263508927048357783180824618256383477628287866627690646031243960628352095696543971084792127032102272639870661082582528989995677749549183908939333119358482122901255384952515031820887715682316473500018611973893375941130851255275993474511934154967715676492922941863491399438110082611891161043204179036856223974750379292373591803266564597914172835295508170928323687007255098655697191916509069740898871636770609614528129914987684372045727959458676623390009763125647841413751187130398689469229060269212352533683517354737983210543655979132462915035292658886164612748597422054586277879860709924114767729375436466748212935800804172812284300310862420101985439207769937746121185469452203666264056981843460351028569058966837837561481620892371501570868850722282038339466392485725958365979413195099605089085621737089321273202864623832568148772671861678217963259285716163505750280517532049242991679294380721002863055845303026602674240095037578495493796094044981804051834037225220138514045962491610167549474515253500172752622921906243334973723786209581116505320086658263171471376555099629916923828506680494706477865636585132948517827551146916425988582394211202741516669234805244745370345176268320666874998804489839073233586413263396696866336354364562004278747023548751458943836069366822533864071120064691230322677240414621101042857297682389011877503669863161589653249527684351410900673679432984012030716458808478987415181245599924860641179054667592181854079112303595489862478240886853270297042337655669390070749315297799925159133598167957310563774435385642383302398298811628379550725844710622161396148060683550371020960593886338200753256713280492226248210370730716076573466794439765608156468836356627142810745446478655717422444360404162804222799321532550831901443893075822758754821359630172736178475422123064475745703825012316480497684931221091650256503521611567305576961372346313650344200904764475482174502178515031663153442660336446465200931831522448121193212154245027349842134655907766893031877380005114321461100004186947638595418606062644470746903893246446070139522399385244115200709145652471145601346860104153953725129011009239422083406202227697651466503323608747937879306745250947293024437987460801412450711810650344724920550635371297412335656240427572652452532520264070312311193126705862434829005558073248313387012304252102726046641223539074838140754212896439334700322915086584991965398286975208469309017454387221253069631939081496615358596075458280089720085457301659314655538179673668548844164394799068505124960367322169894730558597870944627316809213487408161519785447787033864417753920306935323728974769858478456908696138769972137890238671696738855823969712830506052949854453218069373507664491557997784747447298290984301819669412470899691294642544851820753430968828033879231210294456733398736114909438587358269548494854583772095949164907129278797935018032394287426116090771325656675354847245091017429004313266974748092535483130370975565322575678797576420862752178819262832172955392513543299054745055561357625722631243321953402055513622905400454446377880578403671425868464787333483686597376881263087054555619459400175083574568200399907901631665645974863845650669146895560077959609516339808305151513633154000566162794082302980055869369166622985174768449032575674559483796892445604399472626458801008422854081383917270724150106880643000774540227820500941584304427369819259539728943052564415840706597154724479450549951145685948376384030101268968235416700385748636224242527975392703716772921491411869158547001996948483428529718703058300712735743811688956789036473600165993318140718636252901965720553103371926312127487256134559254578846331035509497537379737740465937989333737305632527440559754636732120060084409766398420304892570134731211349466354168955289953015517232512698520944702072419183084179505158723811976920623977413028803724915449565011711658725215435745010945185970367608904511441642729779997274892096633407820997516045578843718979860761669922376748811990913171477371869967041760081257302477260119431865861309695971028904519517618036311995717989284039369873911988675100410783344219697089523282260382485048751516366931803375552619903308310240819814092613416175900466262726198988935719871872249124584146460143201737245691010952816162560478296196904872638838664038163822880885298612440476116081844973692211675689926841548437410791515958124170916440882969220754420825147790528468227087107011946149558264629807623203724870389799300302579720354821464675377672970250745076639319149090208691867419908437096851011166121655850800733180028535297788300285284245660988291093026633588109292403958846525139724702846007855885122264164292076672053969983638801063748771017567982066902437985432334988390641512973894721940854206413618164498528851263055189018187313080881384010043526349060230315046201317702771165272730678984891857765433905973287854506081908636907715797907073669422108222319300929499473727625554466332643504814011965573709990054865007049293158886301390248536947531059826173098325663259236082105769336517844311496658589591110153862713935501532558685314097357342690710861987470832824595578646856753521205244590402597156407547835417043854666350475757999990522233448642469023561855198477649438674410136269542210815152520665721725432082919911310742846830054618415494666344723625306630091397540111201362514754035671236688130942795581983406024321912611067808580043411123681692011441840673987823010259250102744100219231497729941715384426480680773029735366961738803589145290303675416738046768711407051214078062900927444113009748132430805940315026351382729661275650312740901011915633336799377686438828627727569189361229454895938226306788480235339192240357843486122013172499816200714825121560093514590992830881978321323409281923939534227747036808972034172298101436192516998753596078779411287039366590523853889597371442217942659584846117380538759481262388143961278780610458727581488795288628596720735526486008979200983868449633992699906753798601577859393272995314297624840192139964267752079021947688239803755637219804375535876040001090416574155620919971973282006354721742541441138861335552579684143724634386670315548977529813789054325382505705613600915400725825592266943604042588201851015659364256627581603022698339186501330036494588603529842430709333807605775729033133781691972747326669026411197413770130464048055170944226923946812357506741154018605183366852222305957388473323669979363133096177276343232603119779014495812156729902644370746224290376118906151104135918235273732675924129101639789788436912480144049357497630369692294401918645115492517533131817755155759827433705432375043952567547003387122511773764557934352507652374094234190417786866217116999100258013743234149950276003259871636908362935097714167678187171060281028624844513819585041390708639500529081975505453914161957744459509645901251576110175901399505801100231033252350831720047678179375375098315796629585483729109250110378674692908900111007821113067204729647072920418457926820411731680355623423972935817627400630486734441087190869607438660677622463985421520183727502044717645788541234543337589048127019147591649225792228004907635728836721212398322467681673871009397576680166781454389086951940508519936682324570639171876114743392429062553687927654220406689717193055861519571935854388500837904074282428672762824610451889458766814682645143444747922521883823870005077462783014696358138825273334438425143591722879265084738601339157316821286655001885574742699619477371759481064974030466122814276848145308921460871398585426056508761257659361507190076476735599250146769485203389211647330979245419767966281446029532913176307555795023558091887459019609025830107488610577894254997545281891094893607461795676317447031520304738391962145229788855101045121702807967953231754824202206736173174197011100557853966611978940937227904769065175104385944385500919909749305801184172346879607113002379648027291061358668838938720114635689298647799512558637318391306342121912586548810295456422215243445657805411275732546260098739579031754749095490975227894913468433859310263092819620369398155531554088779368404997867711652833354458048446692182528919364397352025703802388651095217075533790898022187962813133289119554259477901638273143420257382540937459254469809045400104734615525113640687084215134517920656522120394372730319211617751125913693431733711468141129524810656677329728072599126243430638677575098177970531531137760602085858686996199631390935934198639407233516014632512431891492079619349921129843767549839061551921256027358612365889134249407162191838466983054648404591348327764493676286838311327113794949587783529418954563039018057760091450032704730974015749376259107602738300300996567348234351690351676174658443559286462012782553543362995962041275234006666329950164519416369048119247863357491845797562708684705502712028706513110082415178862994558354638585610206517494108054438216099634913217469633756602185537186988458145446025921669014367420134933921677492172666727678127022024742717532215467771693983948515955457787287205254285160327653446496830751703795142619710564535331355827627344593689846246108135864517474141755269939126674698365185743129785935184533416749723178714884367830543198591917547503379357329267343287404279669058420162836685493840750622412629627331514479799891906747335658374470762019184100330518150109591954551413782257782959936660436129506858590066934693307036804983729044638895207231914312551647858688166667798438907996765438839503123653111665636783287025501732251885834198877334318344578293716278389898848531901012648401935378800655443252929223701592291395902304803776846751870606195536651507581548136329219952479267788118968301600548852663417355936871422752733786365726087114033899525417148348693088131243830359574681987200482736170680703046135781663623145597011391964231099465563478303204979885379245949292396197413429233073200425687893971060875905277144801832161745368753255140677541937773122812887767387151480600832885598108962369039333914708976012688449946114595567862718272547710690091710015593034834092368571967108012328328555105987995344532108267159811378523971438943735714497527072101561808710647472557433777641599043997351335956038809139202940119056618610771405911074092523648358449880768366747766659272386173309609736957274356685647332012772533308739824789014806788661799528412330801751979961066145097576018314522471368800573176356426197735786320414340834385387396592060649324569828404286272482996630691478128154772247491285508052764583934816721210964414516075898412873935697263021249036814446287286437743281420930085686950743873299467534793456530004296428979199060471338831318001377345137990246132201071504878940713996845145689802419805537527459927472721309564021710152984547287179571135448658876191719268039805313428031765227574881652533938822957960969083271786523283054296089621079381145850526112864531054373028471751520916979085353666466793171324846665097698355670058459517687672198993212361876548816723364772130953317241282250181822413112470174843308408141616673951703284256183914068140900276248947161900112337291751918140242667724673190326490369790121870017087505308299246473829822124417034529043562603687011277468759590322244664250904583309920018789964814433887786355127219668979580309309777196205568969745291700111443982733018779519704188271634468903443964562332746890830776146824188050205780046979277130103291718425936214692888242412780441711812101093070059134661044074901548719217764406274232275127919602923859008773877942621913402771779390560752068598843109690891128008680063756039795548921951096701340208025960333027460351643271484235478235064864462661903096227037083745742666246132077279902446764520453818321916856144435281304952665229684824444943587907576963791410624997151629389280406654327666105219721627374290681515970778885842697701929286084018804879310713493934800136702828102851093982967663320501998687922291178435385438540417838261578195076709904802989351214753021903596457222586126013998339908172376381702762521919418193614581332800815371815401845719728327034722681340632138136333764802362752899603864787077647199206045821845062038635912384432296769232225178888066624701088289943946210559246243391614850879362996266112260039609184280785035894650108905814360614574328921935441084091337104164587242960773779524695047244930223416036197458078223350907276157200659262751424187946582384849265724923221562951609595804529026930733153991107205883601656439642246998820106035310401239640436634750825089277929842359012030887476213939828405129211638848069121553411022710336706780128030789122193928677097159985807261201766704147394526226215574106169937855202855955274919501073426274843837422773043749642208226244291572997685285195620802919816541174390480007370975300422911988667594439842821170342101506213289670144157974952822989160273659913157491905985101563766512502160230954242636075552192008753770528176610477668561986370248395586154074456535180977220539082821247283315142637155201289435424099970823765256398332218340446784378078522664079287689630492986655880306047470830877707959695275320075093900147463839092155846942510671961444093254651567390141329906473361160240207803159259158872963474922839741083624209414147646117968549602231463961888934058299300391087275010237569815799011810488643604008531024359574943440619079058347170123629794426431684419241490610398906614201291144498042217020935706818621592253176092979520600967806111666732189367521676440177104455850364693471326464481002189830252329530745472103334512567192560483900202571446514166695395741830937404356669090757544926902898597450877606799547646085526523072647964824858331156848372112292822731348122710785692771406563879911631816369359662978901720385473070733817747575468469887477920858612963971420032650731281536389128985839773352399009268070520392327659195624466877890266934467101264965140934359173814763127821938334758577273949345527613873202363210708095561175167829486593992070193109465726929342482888296752921940931562312514064351467082900897119531815313874109823754603647965531700884291882543847593855878253355998285780447217061371570853601083875968799804342225657996313218544319581364845256100827771976715545231787084680141270694533861374640971089549626421356876285722535455100751564836858951156670901221235714859993854043411522568629625995233386803532757058872029401970750915276731334726380560746672165713358828037432776640982844402360706677641740107410300958330115625492656027649083912591412535333989641832903716280012621119249298285812529515165729161284759498524493673528283814943938375479453241726550075280525282350827505821909159629905398328601238706293623516433498581596433446632330317519227929800169383747177494740879854680446244266159069577929712656779322379399445217204773646770570927467410007420205224221114677102291963772130351141465987692960598002848700035320255830825658549077149374148729701101909757403491907464733457928944675839022819837659003849668091004359924428995024685405250036201112877282856754779635874848344620437115916957487063821226431198127807555357850474034463257475666530900346678344267445993390078333606012759533793395470741386853989110475692315028950049007014604606027377634495543495322681145401220973897242680125756801894532033270953069223826857842126384946125204793996179421123485685561793592705320942504729665349697130661996069096455327479211152321728722195133341270695714754650922915467731596083628619598636064019833316160161449876869194097107008343942472486562687017612451912928119520005673178278829600337155238677972154466854326745172815174506356055403669021136606893518731152448980149525397343429991084949676002059477394550259119326573861649214496058288551526743762296643793616084978284071330326985868652041907187487157101698212966895291737831053556312983290792823794614223332896785495851587262140719226986516906016783684391382828941079190188884191013842516317480369940468284083554943246943901769425886722288412416593509628366808604639470942440784021021031914066205027121579911384931597287496719822795999845236356031771873452054757405245286739851378351592629512750109253339840064057832277349011751866119806403857713674528543482043348773384568217053793321697521621623031742404778908536007404707745502479364301768993148696478261355068648045159485837707832650373653914314033581236446164529797681206316613233886730334030865086242402868272905367602772837382664295133439744652443447414574840711915720738691462488047366153752665605707267431652133151563992041483505073414047701225390342822491584375042772489069586702634835232699955896646086566500900062628389266785707334329606430455275816416481516973198156339237391912395077621428677732577953569982242633229006909362950193990106379494784513462093606464599506517452874004689852790866586816893602443211967890718528681004376755947398034155894307346107405539423453666798567595355951084224810073334158786122455185515204217756203918161936943596804339760344821464463308721836007906119729038762469471311835550361754471377765739323367487866749942992404013401644263172861747553638267234771094134713373494480113008039825892514845334513486965919774065642078858690754863534700371017706409163962256295258935382549987207709886576416999489181898949050669695345065122999828298491930510622177074342877739591868408394825330537885151278402105271787341914192664109656060955293837808751491998123235788473688506142870122027966553525395339740174830357251509086403072562959402147528955217155110980228346406598166675346783815548733439384621209524644639190636805658161980666448739186170870184240806676346389293498874460476998736484845898938441371506801550052324788944121358795165789839119899431606846041163894750253596577160395749759368541247585948023332418369400205169551932377412638978912020955954389728013489927011933540538102995037250703103414639777943889576685975849897774219027459570799578364283736217874759980348133623999817989089558034921958770939261963378096411968185077470658724471725737047719648709662579954122084762293923450056692641422236512605502642105924647499691862540808205079841520010486684883286316014402160686011282714557810573330942143737059417626473832364616378224225122274207053169746513023058864849745092781139960153501370577635439863940408133612856179623675581095702765726057074313661875758672082812745883379198135013916243612242059411865196109114548299704583285962974661612338952608102681593312927132275059700568451845225679783939774228373307259081658056471327781350859346251852048573299877740570684523758757337260498826495397898969396623260789264545070837333503654923437107725456681149192886382732445582655266961469574903583051153740944806330732085062770402424018061569984806269275876976865151001040780453905132620717155228660961618547485363595639467539117155533159356240228561698997788939474073760470551207718462270302210371353336907084075977088562237852099275228201601030386479747710441251398387394460692451627269336635567205844461141528826719961311083477350455549392443097817016019038323975549719311107363864066163636771016017974821576956847116187044336693010481574542229975845034342251500848889867860483585342284286640578629674483722253960141193156874185824817338612160534288794641270915596398566441978101838098561516921298622614788038738134753967908891124191450484560796071568442726448117489573332042192587728265236073818982746176872540959395642682951773797490876264373513701330883913257645899999436806659380213743635526671070095369487611948067132215791327869002645331752652412280448029043810750583733414520239892904507745904889213512628690148844173311723456437576381129107103881968455507424567541682011296723469167435085180132606394774287486923673469134481532573646553084997663789348301522122583902237233147516878668169510399712979234555217433345960994491226108683012968197731757978126278291670277287318504922512828533547505406751280585912126768438522688377976477326586291898101574295664597435933742621032659914075791394927955968505137259127322614335618663472080490652814256289397558740990691694357284469293383186665273067131375070812557856059730001040666569896532748998398249555969075543330218156952970281274602657616806931412508356337714463717214735858021831112555118485826996150781737976214367271725038778532345701086506506071952642532101682261404175124070439505298692224413440610258167139615302390327371967048026422099949064474072499729738196674160750440168305275093218707016621974675589825815083025645280763014408816181148083150939748248229376845596782640634085412659976832219043077381406416517339130590420062258146902513418727482582567355950167333357538300932726665629098596412732182862767997271789459063423003030379376120865845602083918111793269595760701559921764464517493662516021745622149248690772227350316664324642698440524889144214185481374614463632898124059559675811536523254764899788110191919053019051387005646932427752824282949629781727891545301502335780355860655403333303222312653230352016625745757699842411409026500116572372089001373549742229145341844067980859281056616836833720534150034894491558501088483846779903907655021470924392163760893594542698818548554975713274805997422501065561438448485885545120798602315618409051283789530840093032906960255230173936864685471063798729525343129474424275112709428405334611302981302251834402326111490406021706078870473750659185590679389068519534894614907067217812923099923484554526273126304460846051094103524769845064251917662208898808035545382582751417574990367401084735685379705260669682939914204633192177533637639862781796352835524648348344857390086969938989580911484638445451879544625084518916915088878708510052233040025670031152631761819077383602915245942846745775424810341312583488768997878266532573214487046593816195210718210322444137689809027485165467758880119459159126355996222287092467280308608251902418662497046123133033652098054523642747222456040507323972971508813721113728927337179564551629170981442479139268725500633971462699771456533825358030090693776853211432927485403479480853084407886719508973622447706828976434586950921293374652162390362812560882686434742493399994395902652277361536817994649502746780177665858488193699079312316544212000625110801505527755079605623349550877258052837400788803124413819806019016375111100081724553616470993274890707186859853058233120259694962694759524828210363102650804609129547701625798544467283506838265908037582245977007373123695102609786293991523927357274570716830578399359102216224654627292558452819125536234670890716832438598758498036744303972096069325522209471057759058765372345343121283965977186710724621538240281449427293180700926203771417458790403291533231363471122281426997807311697051917142496847563650302923576531461903455283150872661316783790206856845546526285825127499842357749059923671127347093490936201106592650442875021379594356963497794460821465297948499810771638796583062771655187285532477728862481143912204560522980009315468502759707042712834536606385164150186780984964384342270020800393972186150619534702463103421031464443717168182373410273311914920119948984381795010193465462547672664746053549969052376575069367911248893893577958712487965961760209327145732941501926245900095368941695836363054862672405293882909446152460165157452847246621530728137359161767340678679983538870272712997180457201463006261702587055810122246071953897803958971582158633564075189238511233612225476127644748601214564869473532342037759508959759068279337391284142406197210678501212959872883075950995840511027968519258627168927020948576325953777525528503706668664685728982933644100412262971608016370875779989518187647797935887475008682114546098904974112065710778962126090682346534682289740019608869601579105618051340073773334457668550221013235499719373772624152657062712150702856540457182890217036064203929162487989801451079049485761551214026866060595192526770231103287226300619209695350518596189628921627219665172662109573819737235864090164288784125346340113341458923576640067229451212832733971293176792011385150554222125218225506115144627147667666890300041370696907920643730142591740832234833397513187494947492951403877368652664905089089807912369676841230938909550826647848776248748526540493716465747862445868170216914103743497818551521167845496333432545124399543412522385212976441204019448869501298817931936281225104384839498895934446621328098021670087837086417011745985106988140117029094229601248822956933962858145144896208096562632894882220980939596122680568298479621969352767631492157098351582221636765292428730676653064200264399773179205267482769352857134898094015726040491572959873714102240597825350465194801630931372087122315578204661906268808705358818377175880278078572933731673547172103594898072518228710250174664427998489429234464234154411091900223647612309105196726713029287426143061009366458109486447420801886214800445562469752173221231200758771873211685515565428496353596588988636527860291287343365959024253597726006851268849101529203573957460040065802076463371776748804737587853089859610353984369929041332106517905949679441717357136989947024548516675142772722542583760514417233002501798445177982391277836940583392119923176371909155902393852575104737094628469334505652046369475084274617463623800185697565720973293308678185781691738173048275723973951223473854839493201001597311761086624975743774169927662034925727872868572962832823217038867128233458702260770207898970936966438074861279537731123162000411139967648695432542370610296974766980408441996395438157057849046592954557297077440741812254887602679277457937581163579490927680795345258156903733566271504135219766501813017409069372677770662031047125866471971478919786436086185086085042507491331399130716241148465276698756194187694028788786007726257758344606653745312386336108434705003380175827878049455727109263297566436350018077887142628394265294781644347495733191635461205043434577105176997600044520739003542222308597831354091429985530722733868870586721273439052857456339240907099619502230958832048124101082120433740929562578927761902911252788024482419415201672345855565697502172907898938999659823810727221924070410913944810820676441487543261015422418428076606622558121982152965235193232461322039914965547959301328613584143240120477182984439376513300546161429476492860176600445182382203725554684169612044160790460991327280223644160177921723882677790543012929348189012120267025686713347747023094032924406743070446721509422540329622771381923268582735658714428825345808320975523802573473614107023292805451914810639013493535260567444228806662744533928820498709253358528850490141617499166848007188340798213790723068790531783721807959330193395677005018132869678839284704989274003095244719302790764511497370196556928625057163912568315226794710579847371198546334139225921810258308618381418196676982858155584761193703525954741300025974603642704318326625112733050823413640410964777433985691305046538683820729421652789652502731710218943200140668955846749082048025590135688272192775885450225872007423438941374476071022412213186343016306253484560626683664674939562669030706416163373033280776253893540662076746179621484005463328414680364375576693024841722582094269690701279353552088313430393789504785658451068198444463630108962675030746789475322523481699200598216132150814664870249947686896843525614084766663296861234537416762927853282153233947993398540401458272336114304454175813496570777815681971645782694649867425290607454644727750066628893937477519191157679550463599425127143686197065906503878404568918915305843158832724047119651106731443055156295281041423762005951666667460692558226466781774662331045771300086789947214362698500168121934026777127228721048475737458809332869492164907742171358063752572503628111192144574600250890807804937147347969822528863248932266837810015372931850277300700041236371756039231799742344028573566547055054054324342589643027309604100058691894587331985009538141793844479049392635902846984763226293573198659647717123003857858489117087529565406704096139234452067485738948000350989996272753636459196386784474641641040095318797765350209124088678683854219762832843928965782147645538968609920382705995188265690571937498395057425781280571799372412561681246570332401804852825225869243210702582768935648528161937497760066088191388200951224441075361032771254475288159824025429774798242722821488610494357268024423092687583392840040712658899420317469136198557052742315044612091372516840962387223408263326761888825356992733415337309040680450891778075044622395900395888904366478635635915831280929963445986529741099567610728776409237544108996307076117747168719037871446301912886449762583802687173217622128211058725502948712454288817179985262511801824114069824023217926075612148978235737777228242624517407596461752571328674949305498940883667930722366926518442098583837290023025796929668933474685869562095809363111856089645627703633697148107939021934778950105618929071019669679115514549433303998614560975812788516371541047483541363695327254814734470677414459928306713405284576546557589748610935825639696506058049717971461659295132115222746943173094865331391048309424818563939793645177469483481669765544568084037575986083159380334165966044638766419298293008034686507173000133921784882784017139848087684781744225114060247948661332320969683550958797533418211934629770655639154114702261485034506542326692303524220199594555140624445537002447630167342308838285920996947692381655427694354784341411631111942499198116635069043657625871065660469951050508618040065198517226056893700754791790263530438583090099607775542618340682370608812426848281258191900147513913305876334625885516088045453632908270490700141788084083334037470706030153934034904588694101218795480488947866961622703199995730509743739270553173017366980239320933968009463978054820852865159501814169188109394478344969565161709542607990159338405111688436795637245346557131237762741338853038862343280946530738361060466570962734113334684560525771098099394423401659362373215002630360964094924889363000533093266920386257194982126748154708295908167634124293702959231137309516827757271682781286712340601202395346539180009991150100072293658634903156360656385799530078201384327338250449936315633969443656338033400527984078197245242169983852008739952409416697348634945643161825728156903776629607228537661083971406741630044261134700380710059138704605964889072680159065055373179365753746831626763252905809035058842333636998275700315780996907992640319825313168109684573060909040096722920724391595151124880803954808097696132011187803694102085669185651408368214817195184591965246103477482640481199047625264546291725812678573526476763472695786476756185227274662421764955847303667445206902138477426807583278325605940766356631632984080544620878194200186157970736988439386564874916235828168570113856068815527675157726647890035118755686211480462035716699878846528116982149299433215543163368810939236575171876787581391116088475753702203654567758573785256766976119041274225984816944949383500764242660721476267521570367837162305644486664117343675920520965589945169529377195252558144072050318974154097213920588666194042050951262256975609468008645355848299925538590646517496275634965269652247247214880577562763714141579673461961465616139281710807987815678354028693067385760011034057207567068091826446385556493911507943463407098378387400609837250044128673000730030146960624060979692795285086388259252919636307899771630833048305531028480739625988339164880955810489871821763083985075742094209256804457835732284212354061525154369364649953415917785401873780673766925397824741745036255988116157462362931168817800814503224780123509381186699045807230673943533690239022701689138236696620660774699356805793734793341808891592788786454066316802479177299329366858144344310087381274392457701501062545262146850233122516399410108892828966583550183267287045978795698286992422023203606626524030935154269894309461224578909167786965978709516775154571129096758187627084394526858346810796822325400472135198470092846830331810627991565932588022996137115181390616828108019680313955818151257129089193689830702893832484882718627668411699286847263674926652321404177533856040758076103385583876574102723387444562171439955173889410255406068252151837936968539063248637692400027981775616611816610129776600065414512795060996455588401692407343474404304513432966363970357743551532355946365813988014018013591150005767573908686438356689446971604601989044693871161010265223719583084266586665600827088944541161614807424214805818321010658180917717923199183706526040605593650751435592217401935554655248588624169395908904179832841945527124929095862946779771422129158466582485821944939371516049905381385856439394534881039416126573445741656983838789002002977448080190250727354539604312986130807533921246706744301953659123474477837511176857738901562869947921627053058651336405773970236135441198272291292112256944629202204230618739105511671847138463803602182431761777985049665635661784376644741349190381211604813737405139455215105876284833767541420238904937879100268083995740355584642357163367334544436634874095612550251676407855866987017994290984967388528411310728386148072293329731907305440052990942967647674294041159616654806274873743648125390047104697111224884507096701620818519126756994243465950041350512847665895324485801506225771101093468618933616501292643567573095403644124389776575898907949083724170069143105022028549370708813174894554235221635596714380410640054282788427983577573013381479669555295721166811031035207036300474040513990817452972306058867005498574867784605270704657358789121299289882468346345802135623580306240667887502670619492539795457410783071819602459427987950875927258226102399164548262842478150802976701748071765255380383126391527440809527256395014413451670160306932445546549978682675972367712200876603066521429672093917884171536522197789498822621435441273398943154372155524502407071023383281161870498035723909468435910210726322679845520024829774124761215141853857576408636335535403490586756095946124212651263178225802349730685898079345466968375839639835801226158141518909317906735224055220741451179988821353320895661286675366694049978432850367789674524598983858673569284924915888890258359593164948406327569606714075887291548994974072811138686412676380938141104184820415162294996634520876006983211199743637057235140813388130397293119978418074600290283356618587650455503038615216704045502519834302427980297000355119628832798449182590856224468557471677721658240965786187727463397850503061139010921393044344640254754835749093415867573720173738388910452441654637247356279500796241114945649272779861796866241878214170936667811775317235593823876148112320553161741064617308275661184149232732174541783705740307500570151420431941359148966029400714729812372027525740592104867268649525330952397609035468528238726985696872285365103394032049498366828063405798012401050647214779271703170524134768580481673210520168741757518300832586033469509268087625284145106730050734920541276200780305746087608284429895915423239852385689172225415807641434778870109670114993407167585268629385411199889597016905473568230300217163365906575565559679205107009233361617802111699650870857072017146904314536901452084232426574867426799037248427145416860479910216508142825931455345423195562466788193203763269044727835966252849404658426791568430376655984339758010382724272175230165443339178442901342221455549234800710865096170793662548107359186779394126102650969618958425961864981909695713099258876438125170337517688585667321745062725470844410352702657994955573495926003662321292363812922975637262637118249076923667605782228019646012207684207141748856512525931262633004774066431770051734294430556743252264125005452376506867360447576822322849384288751001886466384675600088355888261882279431573783123037876321189694269149051565309285173454885858749078125487634389518127970130271611855984359343585520302364764616375336581092285260392107176835392098164727705812985234225455470230916206118744365006867160538473654451464432700967914611353363660087302131307507306226016900202676955311913982604726848212079119852558141982383552783538578913980486410360603524128855599076839683044315844438125941923075271585224770596806853857655722573261125974422162698169262737173109708781408420493062712588623673574761632694976831347950673980711558028366044735833664048167299970411340371097085378078771384431472880482931881144384773090955024794455864066280050503670890785312809378257758877478192269939548043947018308253136915038480674896387924600224711373776163020826450889422947507589995219185572206619103772840906816179887278186224360955371553266948471172793160953177496508379905627550510515212144895451974247585566891886816424897221287324395363496184545799087659416966506184507855721428025184126494163335245604572686745737019737347008626405887875168500730960294902649755446721831466513213736672798858512437813679123721420614947943875602656117411008976714527644538484319809438934123728901102062339267898246647333749945902551400468897671424712175519818599703138559773898762347721717745411195772630561077686950713181777157353673919179563578435999633047846645119596811229965293905912463010535445841285891034167606292531448678621611461148939271780061731892454538617275820944359280267299060401211095608931351237860941652854032137278164560518798336470005171413722893254860352792853876157415643454688660837961892238283673019545003276369374706198734914400914143407701699018077741998828155956996052525464339592853233686632699317779965073644681197360062878521405082077208207044506225418941234229553656822213674645286634245929222841345999639561034787890242070586559656889128449582234793824399211577100537481661401199273808943446560683280365860471977401174495560485662935198433343277537021689024708608400172936675990399148659428795058966231860313519741105783603227169014972579930413575772221666843864146493622392831386593354447956829133708720351583955543094892032541109014611815299059052631786797076985002673230924008435105016811068231690170044293852636333046089739336314989579050431470884098111530657947904525668314400303034919594050025897460261051125808570906352678585257998466038306413758708046587373668220130252864222152242885993649068003707917080583245624269693165177885986624410986794041226955556624136182276371094278451831714393790153406123154007154496891056811596378073260711133580480748492438935687447953458111861317664971739121412063873721061116579945497277541595206171765923315925425760805187687774796659924902733326846920753901880152694858120275445531827868311722097389080852887576090405499026174168361230891927660821989825807623553529090895932688973063306242428045711900518256561492751346806220287313611468744446670170199772359697606424741740523585349531278040713311759053693039111781386671993359131599321548537791515667692373219946024088188131696034646384134179681261512653705244056229514650825487409733467300594026398402868582939673824332946789547126414616886598103006157834278219272383903049879238695866483601051985139781911080228580725798328828242203848609905739102288922366187713927015563867336211481411474627417145503136212567115032126483062136909578424531591273128997310606993545888669537993926600561594524543651783182011634605303421395375220432404737411930547338007685792931301705008699620913930165122050758861807023622162973190485296014884911059276501378874053681615238602343402658086053930063551974687510034204913409379309009339902572597292718818550212603976622170113072451228303140726045899333966921247195498554721958792051179835390873621825836936175911376634412663700351616741564184563450615950540888427810455427232032112197065573712912538111805678501136370548980660608817432089383231755680883964566301434021242643593975243454305547288896389227324896762716982687620258806725456872027603241904762306170046756233920865599139117292746716095757672701043120854796211076576992849776018077174516775890158198841699939403301516406378697534043229357537700115367482344171213951967153276528073198814189074194605547472350574269185079654767729299846035202956605325717771625385603295981292000851802830398090662808597244322091118977031459776694615078613965810375477253080562893903998632491426375162083526893251698689537703181530162342150779049090549885892182098597699235769867500701672297114924494871217437234704283427276326944761636612870445623715480126098699933477367810637164983013318262688197970885061687543586050986339153977006662327178372045409472767335532692972012197068046347670209636229528260237154085486925695101920950720604272653293923692728731401317799427473994418633057530932129747432470689150142614542132434434600350730940147755637672667628190331036503681211829611562506255562331812877245995131340479683283496224710916379168043441398076146736742244470726631030485112945237648085306815088005693130055268216940377129189218201828657473388195517654199407015047412010230159368404897936581743261409621298373105019276401777333884134877214661968386355823292626698928454937157408673789756186182316064280335389957027101314459166954845753388619416276495233072037374520089509411480387681402368168866986051240239629384337970499154790781122822941040340476701299283481739287262929800541208251532509038008229406963605117987993770118900211636247307734298537720262483761027560144846637203492996543946550372096247753385221851423093514647206906613553614791545048960128994265650918607089099350836190161755715744766435583132061331871237031627266121468460262129309558310768708681052569760989496957478804600053454087904077099960688106723016421025030372640566066227789304276112128175867844210929285222076561725999088449908315337796861022093039739305353976942371601452391026649959383526353158567475878992574124333674551417959082406430801184761233595772933407541276795044330335990928163161546276924323251906368566892674815570453905283232248444927013566495614494890134087897995468176033305208259606758241495278624348251673278544704671302665053888458629420338038163120271872963288039066039808799626701239394525331907337334158667353067647529566215797082450635587845000091601522356379788250085324273992214053915317513942613583721903659305221990814541538232296158524299399656786357136360016838545802710075488239752985921188130826454509853766555799636496813068560287780066523654808977154025266516140296180394330642441792497520128576819629775294499123829933322795385493689229250466125441012897615450065131233682617025606375859831485438670939801527830338132229921192731723840965382431914006506842754305707899569736353187224547610709903191216756603844439936294464456453774264611434941820542995903836073879218960775652925746237124311475220792413826424510613808713997880976840218312874462165457509902263174291099952516521426708339615594767365569658145310701118793612735636999094985536499659159028584038885886745633920047196107921115833981376925420109252963150849345309032872598152619902373646228444335502847798511278725475784362486516487523882586465229885306832462943816694560415532708758535165833403757562183208113342532635359756399106932895595691399836164531985797932520816622489944740119694395865313615018241979791386281406565601295627688614252350952301628490506852611616710977368226113886537936345663816886461826661652292093912076153303882851778984572809947381964896098098679456861524504898673157292238367360468584191610554795073061941550757126173866234569058808175269590698640693481907914502096694867202274609304912044300210491416760256845979885226176218479037934946991767357057523784471464302643001324159797042001986539033314312434359418124360115393317586422715754025757371288874813725563741704765985115509904129164903309319667847364905977852814437319124683338194790774282400303017185313552343903495489298425663770326332282321757950640490065414105505623594117697629699979769715214256167024194732117030402940284166122104540258868763177667940312392639857978097600783179587535910672435169206095423088741387323257271266881259740987938897674415261349288795300195090765472268528487659905527276418447640317919341818341387025798932942828268851433295404231763696054992079376397166959322135111205733528397669525412485088528436937826970243748512318651916493500483616759011267696536341998573271985095413780797743214565442488864979939587517446767415840082270377141663052346949748099214335795842580245987719399402088014974696187791033693094375604020973733986936079015920830381677948791748692459045927086396290836976464081447677605136929426053540263754352481357214320049681836400286992846919784932161512114228526390050285215422400208382404109898025290520940871153885356210347233116160415123842463552267093966260268146754490405008713083035662414761598531105728131688708747550341188221302533160067323951178139901495268958343299404440163725415109045602220172611345661521283882926180963123816693799147114340462327149597532209740669756325949830762805577300491432808822475385150272473772333016732020945378642310321424512709914648031937906620863921480968699392976318550384690742839476541558597139425857560569628494838664152601106669097176058069240547760160216218944784182307593163063247902078931700069017449332838144449667537089823237831312023748948860313347878835709183252174188831263070123661491835804535126305372970573476751111085358251214324199259739186340023136776917456686634342208395391136597271257240800463804536334946973368499073510790186114227396054306323007595104692241482254490372610197060512708983718399073541076112038017049248367757042390477717964023431428027294827167142716424713331262237854111872987763214124052673470986769606371457974534964496516191615431430375024793729117409046047914544590823290437747084798884326349581812900012551582536100676229865917588895975372112132257638981229169199658280873718080828075994875836257809323558092690376751857127398628310583666854892909005721034520966954701102464297885195863269606193606652628986559229028122775828582701301969127721360181235881449114692192047069693382674635861598534704785267104071633553108546673372730649007610734634640974892122429698171846700209048411389846544635010565456870080114415751526181123515114277241451315882472667581722387424152857327388084491891655575117354061168437818871022556697892257492396534583188330652331689330693400129083099612107904256910599072181725522403344944473814638989357302810558798636706631546962760245522328736356310749341136242883500598865260873965543268790832857393008705208160945004135306872522200429484126458672578121323131404905818888569077226032406210916684425663060532457779792523179661459451674331122603806922408734128724334246223017481535697509728823779847234559717398585289220204102565535931525047267630322100396031721825754056127782393676289004845303677842255312620286948041978987858919519858346782101687689116175123746458484994788988538524934231185673647721940057193982326167268076992716626503133418530699479403359706209845178606316065747889546313585751706994832814327597537278744280779017771106873937037730493733234220650698354204407637368462387188745347586605020001492071650208724779834549765527639215273272881417316896556632124117757183295469917798588979801308565063648284343605702606308599540692836574886009059986210654687834688348928155461399099361657210895431658369716673272183722772239073495625934591932682065733340373653792142166866861309485717639193562870463325045904945836206558460206623475318599934212360824383548224565477245217774993653848112511297611973195871745229036183611628307573252392502822205106260209608317290178621130489835127091198363083554484914717718176988979482386377402922267504779296022122836311983190449494186522506888841959722716879525195048876435381222479405935419664485646597066219878581984752322826051948008675063860525396064978461014613111750379011152247089829633465154317313467330652355316722560773443245172733584289555968409623345482293384111470660104997877078148233127104354781057769721992928151197639755583270584552439343755525712076621596136042124062569193971659732437937373306631345845387238886899220873424578451832859813400222003634335392812616145111829587891800721334508305921239760953093397232733281602429949178972253104939391833834636976124134171446326683257888980667170661887647807353634394793270668802097417198313260661779392169151652729491762349011200413814014510151438517909275570494153528845136788663040923808357818246351739694976991020615487518920497663059735621511560293585331354076512300072611720356416542421072878222615396930143752793873730013571264719980383990786792948206494634476835850674569271658709875720678561423397061850449585574435029199966774579346594052774431912369844713612805631368902459192363705388476868997231071120766256057308037304812857557087670273873558833018677962237229952593935174213372230177764331830003681117402691520957618361029868096692624270836566401197429188525401818502427419074684985148884406189335282202748855530776166438433665179191083683288738776305694498142824122046178541927730301052494274045214036634583192396805598084012743557837334732325933752616058287078024570320210109329645729243898757880367020494761935366719353979120448013763203872754540398994106731533762980878980018173280671339617898411463793276305056383975859586508781737723207715418265903601595941146409927712709593131510757157022617238228835239099777090489740323321042035109266688643997459258882728033686694686377589190593827562938015679344013480597984694590025843146171149565656126432644580730287967300214482565853237837563715053088839950454612900556229908529739678025530284384745127373947198411958731856036152557142711787275160954394367183144644733971149154133848846824097530607374390181780005824328591543578877310611315309250287024977650258865442348628959544637663563837356279934301383922040876085467437486012383639759232206081072144246957536442671539833939006295617756119369280275593702578672507285034612000636933694809272126502740187269130737084310960009936469231817429866337211225074613517244338436743866326074173902603616215056164301588464233293141015149862196410089708158888964324648393100471441044156140075777931479111319744114913927815695178722922735800213242596995173967053265262306907135656019713776831694690120848896122810541209435697871470301312810493837151541203994524165375293497934046120483110932577499341564638973478696083165900484583681458457746439270541355998606924503061744990472205618657098715647194293548866849669892446226394746389347223664940661637371717177311674446155691706003527995962123383511638131462621991836073051506299700612594640887471594163296756901565986754252205889895704484288982186928404876902291736520716565217259484771718923298242900627975410223509437791074408696355573659638136255791285441045800778451079028605842615661582770143811584752020476375103284528424779507653234514990208205508940832436790099633616752006819164363532165246329790774393905071012069277607805902231035841848477178895766978831967142883885592981512164208203159759374832944404843873208256982334837104483484624368807390249116668189733609018579089764455174227802473057897225393770675600904779270169620425419585206816436860527260070807216865848598118191000160875567524660285605605533848900146509759505920197948679938544176637207690376209765013047471990289634362054250016314732437172737999409853661397899470656951767058407704192638901651856447602594119155356988764359923841758321263766599721781148864198904087165580449656480336276052379634290808827784583281600943433820476305897338884938282970418806781567405557571994661774464934844083968340144510157077949937259733561066956640398137928974015990633530672753401263264367085276546012693095414606084732235700533702108990860486078380972123437491010420871295299447276723235248753848072194683660283492615480298411778008289023220055291123539660705947676175928087148166190942084751686803032258258275158178164748328217587092897846942134951341062062162140378812583065904266304938455359933310526520935528857267827095784669150505761775868016886774177413709505294484345405487164211364856303818243445838408923536365857697273035330356349058147369655058885581563148084336692272738167343931083551786598152528526237605432702950833908484516753051837225369842385871084143880311428669845863381869749562842952072579191792289918290453860215974876506181553307169403986436097610274459535784669226499878793874271187703292149801884662000518053362655059009690904447598017726272942452760516162723839301658672247648358240986820453027236687036100044831816356584998646359796896772150488297569429690507766254808656610360868816051453236804433324084614724700338139005493767613753006055044274329722614132375888727591712772328660464072182692101805078633276464842747005125115660357070871816385952819274469327841117550274601038013982170963754362591936954027214369333513496080838627996451241634134909761679039371276490902053646935563972267848670264149836777170519775674461179379448845818666810040331813397470394662135213024926948942419520906987189871036816533979796981025759507103350862317952676281658596875881902175821895137690582675966992323492675079798146012774815676580530527493108491092898229831359187835738908028072405412704772848058403728811300678123854768629740695475068565246771168746607315655252145880646329944686541089335264662850558537852447623189345900862959606847317699112891319242145670609599893265286938728884550051737513275120722228952019280572140465172228800305721780458351255801435061323856810797763602435201486638764549007044042660663908824453221760757550802009798412814416186836595351197137229276613669570121883535070707623272064611467794428758542952405350247344470918727320579005771778428466354734441585836602385640417160883265287610496626482286420273655036860322083019377839379084631786774643608095616935417412863496651472439163690662479472658998248187717662973650122756337050043507912060699820749718455786982795683999306768815972187387357640877538178737471493950361475653146567336288050383569196402790721155747422211026268177153675292148373079226799619684046532679984365903166326963634711067119406472709863821552873422817432362732358804012585212666350766936094609776824854792287828783322726200134739940906262364547892632024058935109134579219785390940720423249205366639566140875826048289647307696854435166915154112357812413551391373615898231910927107183205555941288277401007537408653086550525197385217542364365301395284516475887287341545818413381957732263999440788433478652534430516468113247856786449667108142953971163354298211636807129491443647077392144064201704313218575427990512172216373451088312268859624183069605871770928800830491568618969586983847082625985646575569134697068603566917043296753493570620162136401160737615252184616908472369062177907456002765726709903255431716938308987272049030011030879298485681391840046009496903602895930959028767968432135626292181910915168117410635803380198845853990111431529406350203726878968774375380859601235246112045219443058374654139612890463799387202238137473516144356779796910819546551178743424035694756712747427977392776282679180343196986408578427631566893795498782837593034667969874334370489105064718631383101397554622188955888469818861552047354287219842279011848333048290165189190280026224833732163858262797991926985443609887947506677236017087671955538230169138171882711781192881311576549338888169854593318326891219559414738764853366955319757323324840146528188551901507909185616655497158277087072648129867033090892721153859849939740465884193591764074517145665773892931282302200462327155751210251572286807270975758889712746819228162305727512739791847347620852118674845210635801305360538031549223339496251133704338243722408486310823793179889543921713011417395312883473596120311154960772808255883673636036491256808468173507318190766029970244183788638240671994068888000345315316519505776975871376324745425940897168851150065368519502638959498506664658466881105181508882957503242735524961920687963420059344190904130560142989490872952780632503187960996164547728888256834574365486110495360112884517877424671991700104104197192890523230848230926338731777444745832664180972628395279680514475739377228581495112827931855448872116582444308624518091145458556441983396013233507020210626959049430874115921374426624145734155228547911370273067787158160612792939775939873971422009024847586488459592840953921362004646213531130949550948129296668890307003408124147371669330500777672095927759433962424148450409074451040668641105676738869915414998204510760040942492919750609246727510676465563054122219071967666609387815520254239146212500310247959131548715650833309677145643464177332819947537047554033279972037758501478200714406236615808294557924641665187854236820635279690458994806254743032789533968708027132607515413608593125594888895320632425239499672547815303878247647432545976337584807534115307880894112568910089675931257021390976822183677193543388191192799930222495350887837071611766711264394994809101249942256912822037729462902702013310961598507185179861284661602520871880415229890373412693474153907311467998976684343197257261426201871355226025681311578685596754333709512600456287726462773912545667162124387623681225572733994931510412425046861054426536109626012851203573206309301936160623777563832779313882849830358231303057255080603409950937429414700305774609659623732786050304218915237243819275592139411097661766593872164584869035055298944399485200287026745618854948412163907194155280862357936240882286621650362246731880077473610993912668710346057932579664918874362915115302926984641734611134737580486512322909966883430506276778814662547129978068430430738039021418788096158358461723853653859900050272893429344796524321516696024941812929422997915822629287308979307294010134814512681155299182244145999285421277287343867791654980201525623131700123546080957554247756660838241973002272465881392517590453898215547393636104544424401423279568539343117784829965551201891542392009556672810718742182289690555234669987275236674116373196571815517046758152980348286394505332336234629968916297147239987304808718067453465385799625689587418481932524426474491372736861276348031534155336768772729776986736532950810309238751095282249781846615679060678771766780799840565469508131167391103729693793158637889516783272084605854184455159396059647699118375122714058601865422036441138733832925441078989378241008315765595876753923936081873522395610678764340899114444227537173131835207596540913251399498535192361894970527795931957164914881288645684104969277292077776149363971452725813651160611518325332952982491229283686251729955675273392666596474965013814645031923221851156180881904520009955395083058171898367159118192885350688244180062000831989628194439014149192595109269584916498287309234194096861814672927424256366524517545627284752375435083384851914206565857798254275476805337459547000701634862635050887304561269745109201892887324235242612782523315786029099772065320809071157908021309148342085637769301043825496204951237214150194670914002614142503118742239241320214752254816018838301062270263447528725448495687926391225975545681239709608953394645966314625483249746864530187910770091396760804717678656785227019457997106906268379272137695408870600334268665151700406305706702848882386155591251373520258340380695687909520136794986196795580701328188510696552633101012426223935997851394872732208883501504389105963169277124465104544455906472609278140809596556669792548770465431249054032199311320318145925030070261092635219384701779344136994981601425898374020861338423442983293268281014884083759047413784987587077259997523696555511805977981226112598194705679761916509872998851798973340995432670636051882436036829158814034793203788631077986875720610313291554153702793834818175727912635085662347461035692272011513043961038536073245448701997841555960631874943494281297566904647167720002362067302987118320127280968541569485918776100175877282783786328642012396917429329353905082003338089763374349807990585033729558751222976587665427672394209854069664691346517280619436374088560061161782427854130903703856725200673792165019226019398401149543910854666106291899216629098859640131158196878247992215557683239512216013196335494372708407010173609260839426292203314381528638953872113814596186188860340936213510236147655610723564526737009260745171655270875773290602351676315898947842846167656625768722847794080460806378520269984348404277040025162744092835970082683694271132704587801527250932924415264761432966040212074306656605505562991262432985406888566446519827245273179494912431822251225974696241441399671720019816539205328680595029340984617023330019710997068606348431841687128550889153658311573105873585859843277385950369864531895517821121119803497804598907573424084325931304018408797942117250642724537903529971530364264461159000405298748273884959931405059699088389162638905292102185015652132442883628900441592021090691674704398668469026572408270780290972988895327327731674630936671184193198420085135303760294601286544470705061303195100870151710379294811666396286743060246397849234376771897394663892985311772372342150103352076450367599362594571186568466645423203158725311581048858944562263399630550975397825603170431013163573028081016179904619285672151158341819719334707571262090528401428429146551173765958308492601540312984340228420225118103360143054252488737245281763825121346324144407123584020237377245385199700710159203056070479812720906624846203449487310873320683029087340043886883798347802923054205765365687769927999693235834544394665033715501372790151074305517620445730877615836508008169356775052114524094199091431296753803439846111926765416053745223991986380440997676032387646515547009893704054012988932186474076726463211385380988564869637607376888931841497002307128580550812965833975671768296673224937682831046651556224107202834352992085788367171154282089573905036732776440195576450627834142806488380172222048216502211348661658525691612938470471602275986060396619089346767294117502223535342797703228741844938149971242212898676764830955257363672411570788696668982036652451946922097949810390147365723724379347496864409066933672336814952053042744533438282115401532027488333974129626049475086877849927802748867368792504944887596246226246976276308939322613550881572349134771380337954147625037975678299310187534247103699555342938814924433481173220935743181383998275385221586799233296435598608263915574200730518724904669840329031632280328585068817217005674025144278327004383429764055100969204353227201584153636212622973392874286068620380692347168208872115826629103675905159283687890182112682684591779177650721256461690101215140705904257022401075268360225900698686083330478169538453934705687663647566468582727590951355275449764702900322960532703531249840741486000047963261347990694329523998230756147541915150055211178806067841360474267122250738102349785769561811145683819982039069412139846443110047522008145071202321774238170291869966646283208649861243602783442784000720938977042516722479556379270590643544400851662974530039180755952092929171819193920483564967351926211907086484839469948669558549046857083738284050745453101655212213935500084119140100945096627586320229337944576799207361350452019918769846744156853222074399361663141987201141099614469623483830262469841428423613131467196958979458167767879853180162999132804338637892998815854766927770681285708812188559709704866193516740040607456214883906705959930271697368221059078674586396217672500144465477949542411041924088721133830040002442142533359033038272055331638688349669989040581865698764299400601602687309397941921339954138884076365368030205974277147388993168687392600045888813071872124158370763226992402689030501796518936699073713343962587743185739084444161202294184151840082211890492122093611923034065882122323691241019829907982099973619334562296842809699473207232157782084866169980388176609777484463264664006285806904472044618539799597896773084067061222347968152591615497635047242188277632545408732846040162083915663584856680713692450875803972476160728684798407833695923177877887260217210397831304561989826944339693356571003314723976849255074395279216325133724915603302904659392326306073733571040871882721093459919456591640166086864819520332385518094257057443826063949617075674100642223915927207564733768742116836885801536549150369370195585878971026221237714462934512589945091998157480171335093469060508892303586058485625894490475714484497348626543843253327023305738020941424456652787336903313160267821843470777975973405260907968261028802920615062286539133518795938744939044606205441337971216672413569456435778026309487693957114814298415747947563231016543271011117784477163136707552232398136957546180570832921418693279680396986259923836831807421858777502443017683950447533879560446844402210423070830013013664059663785901340898251459194567486682061136544290440349944947944079811423063647978092109138509184493178366772380130640749442517477241196087195792536743512851164356173673467380018691990742333175736483662019010798265415349601443359940070883838930553279112742701528850317802755066805465566862388878125919073270705478412599117270868297726320658905939047873303657329379178032157372371777191607474043933964221771269076562196518353714887002065189921447592071391168334021718620463967028311493533545529970046744315495050283804277095880325777658110702375596592055599070325094572343554054954877656777189865627795310569118204522653435660179552309508336249801853883547498758534831937400365166948930220426683603014442708892378869225054713991810522785886778796532955741452779038459310197633027544964872878477153858355865503726933601135261679625810117330083710616625984280545560958405426320004449105880951026634617772969340508586255076545376380402451963301080048212534528806739719754939091863725360424844381793253730966888814187584686037199849966500885259796431130490809899555295996574830469013129938817619053973921741113469923884344421292251697833632885135548693472855484229780683045528958994459026615092356596308198961439060353796504072597325305001714944706039707375632362757117017232429135126771207676173471416527911034181287861447073707050071698548859475485568357281448899277602443072775225884266883570329504113117951787611035892737444200351788166925005859447504318041078619683386186050321069302555278950999801955584136590441438458609002897257802099537919366818336362676393407400051012075383590385192594381853931243182980402036733939301213872423692745338494110237553708440154578871654413030772185839448833176585351032308252949220484860561764155625879996754728380274934690433446518277782626178982779192578200882314966781969703563709661205744131458469860113405413403782274493951285392922695074369865871342044427180768685003812865312878926450329100609136919100530475712057329496047483979488668701730744187883788443896775529709929026381575112688470524145739447601648144771971994133096329934570296638642291390443038930390426871754127362316217874658437525583059608869647068960725179207193385504597788087785522855267384288468885887762421405608002780914242109444786157937532733167670584809870377626593836592779518473731816017925296728736059319915499591416872957288402256814826205759412115639901631868030700512403858094450253672891687632122138853581599474506600253411093292022048570731512433345796974173980941781776260642447222561261150535465034361791683576659359823446055497712300171418509953327105929225359862759036685584557401296608305258615210784142159443294323498214133307477128450477338255674535218877664153371689378883737656596087508083856833318339092134264509098093881312483156866601479969519773397128591703169556714320931069444971443235001609044391598222519377778537556576204155032143212665162894941802626532774939882218518766101106814377297169664487146176552203293130930896849517267333449400633070803471678495140395571248002280305432582792384020023920178813687751156956747850675447462024754901925730828532948814574033171076045878683655860459509481110895975082518963665621069764823604302318369742933040762780945716256622317437728005319840628797284980769917172584340369750239838457211235582574181352456736145002737473747519114681311749509858807185665538851707022818137130109529608475700807665225390640669916527965429012565473589615190685320666371981325227977547084429770820822053034535282769814419343806879382893669586388718198155844501358323140373600481643968796673888395530869590495537751986558500012919614012881667483100622777597950037640887008769549651212330673917200918531215549035466822917338365729377556220203116183392958875732626506118061892508968062398720750158556291411997226849318677810078004598730561828852068190911424847653529278411683432743060699415946473315844229887918163347770208065611115401185969244518746726172123874936389908794674082737650875344038731701926834389027650609908213189370832732038897203485087579382164599261179933112981946320181493080567029238038257433617112046927844498361268100991493458819259295691261987809430207047926989675312173641196041559652224521597033720818122836583368065072734779217876233691285008443605285052002370950403704053236186163574080856799358106421703203287569073412019406522285112987009586110074207438425419129360149293694217761687540932004612515985985346367898302787279921618258005079843505364007516038119584476565567724341643960877779382406075034213089860963649380354148247274805208902099716686592788721576945288945738931074314542912976693151318113604538794843691950525089937993735260473087409871338462772019694480439641524903440141107587336578586251481388911243775183636262570782846743149119089073493400820606216731845717735335203368004153249170501572402780185016545157665986745963897623951934584520774057102601136296643603200278975679337065622005989408504033670817811083535198896053073470140742141055501249925177897753370581746753724470417990480314689925284668192964089471947555247857597780405720586678044126734471391985703612415954934680496370889018812414682416337614873335493918507532991077338961340504903303327127647952988200381186899569479005530655692810041516277542123107110321655018881170107487956941567124951034652597568793103973782884374296112641758386922577874543569392282914781918948207578718986934574832783794844749879121736492902377247966001071002612109110809046129337001781700185064401006630720201600419121520638019038146510439895669486984202871661770273544548076526403058155832888187607520937197292067688830279907831829762098697616022612785842786859183143137636517744603853504301362343280822917710517613781678912286913385571233979530520564372079106595386608560828558559638708310615834993138158834610726813714944768144566711462947026169651610743211692467084394855541827197167562318151307401824104096948333570336503605610752357657906249285234730245134273545406830854133096955746848805756720887535049486933307524002021342262767169797807682870109728149602772957420882181112835047689594209628841067833921054288575315072034083004418961239001348254936652464447443083451419614923326939457235194150257698116303391851658311643342813410142226132728606712003633654025619554064298996648571612869719572726454325292770886890778787975463914686472712539648127172175946494234315102620412483673500775959089710382623474303532554279950472915207755909046536695089261952562004010174157916140219206620405104113306618316156851784961477178635824336952396037291848959999263028936758640632180183243254029320566301640310254807912126239196662004084505641896921626402960949044094413084052389485979553941943727433410382185100306038974139242831171036229179799041186296075010215305048103600894390927251862236056425593902917109995305718091854971000457032425951174466700556876117874946859697097506026661929923799219389035830474532507742174165017484101761826969922065613172908908085159823133799863290256688137391119802234373361305198711993206693300500883013666147060775894320518834029887809694144755559489677721446736760412123065575396574572843348616889875588372981727636390178950002596642292990875457244165070843555552097469329997731324377331039626387867535102897438970291621022871184468413308364945204991486086053330282000273659287283455741836476528995671442283261586629862735161614333124144603905821309910323587236149453874373854276654530171434458789640070091063599394664290859812269065415593525723922913603112209281230191403927302802578246697836453487950431073253207682770899375971721148412729268848989203123321155380924244228490127873976290637564535741516909678348385388210556921643999826563074723776059391043287110958084036716242049927533234151040393660356852126168859217162238278852543119586799461742487812083660053644250485502977727937220511427018507867892942161881398047953786101369442839615124630406471570100484579266238656040435535459507891023636195775814057355632714891943790534042592749573807874838250280081035400033719792711684767893801895316212620281943954151350537517097314348593813050708843146509957336242658292473152589564305712306841371904273877700952630711024512483790165561562411013758273796338458171598674944085493893376840731891244484906756335746941607000809692020444399704545413282109773387731819698601416855146886080405269976510096613273438344948921471649967268330576325866122463298885984887454116152067902352891642086657403616345458980776043093790105667131282199389075260211608821272089074486201135198678862904627738068313585960678225743104917742274270516072592530016775769100416289806421714195961789313468714455501567001617391659590907224440497056294169663125021238258419151870895157038238501357372699544126132922335694125866361157252349973784563567504246806046337010857368059240042177717187481680401035982107084859075222044720428091909297996533794379610859997601779818365677147017161048488150289969639585273423462555067113453928287865577342241946300237269880200679569821616569841042509393543326886439889322982628787021434984652512928882114061490939129868525842269527249861731616657943897262640119281856486032833755827779986898035151404833154912279599112541512184931418970969506919579320388829993571007749976334997106942947101963595853519240593063255054279848814451171539836204611811092139685986804634881053422876706148089247466680222850282896281774988110413626317565278032332241693551249118068749198966628810702205225250783528145173032502002591192298492771649773148230418727590813527149676094350643424763243832218019559191930388380117859829635242694062300547096881917117060562318930018410396795723906382416435585022731735958153411186510577933923289320494964466801120220144432742252000750243225718368637717300147053906726756599497322002592807069174039604333628937269522486259365195644698773046147692520501470053187965347721276008429452787901260322229758634017451752560974177925054646345207262517655513866361779373993955429800582935563348840822292554140340728011116399692917399307374108197225038823727922007090169526377150343246411362487516464674577613528965216397517281449859198958811029394559180067754310959840295162390485400409962538406994007102204829178193846149332798810547411947813923664455041810261817243614679707753466295553328872616214662494025984542038508451265254215498108007801368314976355464248298436889023356996083801420550810496997991488733552539197578099211205881350434677131223873229432593309570451320251163736507097005454005522517908358571221062231416428938361578235995186988116659748779686022042910064788229797444848478163692656840979656465465256387218969126974144944620707397815736551976889295548505594948600929549789111949002297588115265907144008445984267407194128788502378822959098637306403022316986370047185365108962774116266838268730245869775953617470361739440252550089552657778415858197665492124900761864054056097354693356495412802178261893828486387757854136890461494572159290180471402342070622905212997280097904177117157345949923488386491358436143702790432842583137854063311034537989653061031895857969640460312530487891028184515949611114929943919394097288081967886312102485707772661535799241682554937607513202115521257341692907456489257135370734581360515785026910792905456385577794858953389448161013020770219709422475529581784011832679725364922794915579381523823634720291792578384380935447780465442780954133988642066772528882168597142588949761342818658502500146323280319290271313640959137028159007220477919280044974522592654136920101333824726251572040578335594066563082360485192885443629895320945028817858062965643081788862192051331633203217970694146814184056539859106287220140224924302970096246419171680269102605805613524785963656313525402636347165283751879662462697574036452165228926371847226925974285434823089453484756382832386408442827934801546624381712247006681898199954157372402402182971579981320237338113865072273043734934656966186183546489769455491079369782210895033530989038096823399555087273543361802872892315484720725595825651315997061225915909386200316317110166181536233361707858421445109079468873114838712356087085426830560761553598619600842600594468449491344033650252658330676066660853852413729576688947877854674303862708632616349309682157925043746458237632950303186267511500586630306894733169904617578955414065935240637513313665863853029515613021747027339800166724849158199700145568100563664278443010622894079952124474114079246827278590157492684962000794406865529146009800285777481316991993584597242563772558146935670766070583783522613593755287843428824119393184705760902159032573789462915221506161394498549474782020875583704190896387455156068459537240344644867896703383435962317002848405259825905468370597762838270829904085932217610446793430020498869237322498053675761483196309131549517747887602069458286434470700990478137978351875189521151416773889623978218818113235579265063215122526697277187623563120836329599103949516521809116628786258855719679285665691470827250872113852725390806494599125299920342662207434947707402667390651712143406219259933421966528804460965635728840406321418868744462466737470963190506773335922283233745448962774548920652066219972140354441728948638456944111175270254467699185322526238724254760078003739658463073249225761612527170232657960376015144666471381993156069994112819902866407769281108300493439082512859538384031638337362093879471647821729436060427868259459192514173513564782393402255437491863606948591227128961475400832956907367342555017956575116341367072174817811669838688530255162275985131471086066672570038393070361582816454124864670386959557367825671464001813274528928729945646823134112250354547429714281171626804959590289029378336351285377726997577055005232487659627574928149496159564710093436823384958893734959165777297827137352248488591406115384196099227742210094414343439547594710219035329141615148995998872890464771309941869207514892074960528358965087412984491664510554388678241732880936952629502527323304042641575708565947537320177382001784668201031730619164494949401923141578200058350276073716609936648154133041063619327780062987651766239424054128686218974099304642434909193604880398635660978676818216446637282636307860922595304310905890668807834133824134248513976843148939998881727543434970521965535932247812660347912979391203894225674709575391416050813115332225064151674773092848153922354618285157204822965045951137591941382603120274847762817606236082937963616955132534881031197182218319739804028076011749671131706746474582911270415399284579251766488606389614828829188591415580275337020693940715892171483487982493718188170541974014243136976163166307036702548625492822219810544606343106513148480701521686746645776883393197451107968249421361173402828763045318511872641970883434718348544690807736702648448860998165374721468575749079760006814250210844271085948217590362868324076204627943816774585220817935679930339381099945482449387371539168188493617101687955786329909423853738349100496978003269489803221031469361211631894153394731840308675018281566852217100108237261335405881170896137497021836151179719680321312520915689986450967659097554847111420511156567492015671564181549071048640850176260147134724528014387998669181931287559017765913588893062614461515847031076681777534844613961391171291491406677709883185807367757786026613810536634512808628267330663740639017419832473954295478307389941990790517091861484110681464825654650766423838530559410846896343530189229522410930673040958629599969819195781424219910042504584066294483902713519220027179714312875652489539368440703235050632184064531668579454344299158402710929703191411216862203336773469412068780632205802576775399716319136367082097898732341086353240184340376330193409298850486881282286985411790267417221799783596334153742726079848646823142254018718593350329113612487276995288529890358802796915828467459775129642126428628756669686676116332830018870624484186942645365582680466430382402878931051864324251582847292691991424938358466456263374639936242069230239942617454096648089659287620554616697078947970420075757567710444389731653285469357804694083784762167537798832513918691685868084021304485207932618741208606671653845937362802814065597050217348028050712523712706758360594049044938176879247604482955892939718209656170268158552257416181222628414020732136223854718203981486192778924198046571931407325917689713796666579172302696478401129056318279617997003952294068382170884872340134054233884767439354963670300922008308742531894123822173578521124324856096509323382171541804858143123487701396240857765046658591733052060381458795930323387290079926211551611445820314997813206629293555564174632982589810586618141354952700392513349112729775717267155110737662314439598818395827536449629338439737539232567716274418880258099630352977594669475663032596047305709029436436381944201818114420837922961708598283303673173778350647265716450788574975116656243041989748400569832702526685598504690434408071223915958521238918802452496690359961142545778604920703308011314681911801396717644209046927799120866832793922216215096739280590218717472593153192450094337091225705813130339664616770419534199434170070825761450199568991196451925888225168545981592679049076055835785724515054872498816184447172909805848772028951404520494910972985304015747757790635468892277266651557634526879359814939624768855615367070831878238193775487993755848941022100552663582590239617014153943872365279623405651577775176220927723332771950662058309233872740814787893084362668538681509414000140729074474058627470475303782893026012829616992556073610707981012212560389989912778624244025817541025513025689204856433376549453948657835703907410160297678687402866746132405486420336043704809528868275073492507614821332583337251381611388470297428895836749044194468983937759182969767602571760859715633974753479832712185732883544154268265704867963570638128373575423990402975259529699522281082367166174014331356596081295794746229949700184477379524776932696391300850421798864665197697869162492705874308859973464899608199453314392744356886011679594193801473085630987014478843821989696057076961320392024190500742956342676405923491303944388585049948831306712948115783508384113755358569417971482068814015125579530590917817436442509335423023026391027190828863321984936956528011853016050407958700129146575962106080808693766381920433911714032227147354032270660048006549661870285064606048333402592085348800668729272982038115326509835532256227302112090211821887512736915733384056297052566618267415714883684541450344430440784313480646570238767187196312166869615026974183561993293721877306859399315447433832975783694106100922441764402467718552961314381067274433168525863561271226878275048372984110309819321941019150589886583818380359004103868099106292390869755691645411240693683372738534934419036129003472406970524364849381871978555703036566854360785002651803362696454353002334766621897513515148978275065963966591049568319318402045596581722755701908413604002710703344558657368201289629701278124944274959005799601974285952863806432650125839434549234842168267949868108992983651633730466492853583231391634858121270584331838417222356204461627299264885387652516707211461359121129957678229150483309380587048191298649418426418730657177859362371487953054015550578752887582494491520665295899152402932225751407332115673419518336675549375307548246442375485183426709443412848338956815564153402142365208030286282760049007350034423852965261140783098840141829652131718181145562962140773492309324773982367729376124448452288565453933232897722441750487462456750432244182888345598006096941633973982042087373038920629316075763944155607924723085275533905419825635671679180887649227941076450000133409161844317893320013537161896821274340290338999457574403662614984302903137699587885831847730493945486624635964302800124801073000678727955659826962080973346408032919809663438946683438646328254209953275223778249319687141554040623633035503405158606410478138619212056307121033737774019371345695049336956692045256568419669850000795757214163842796106432944735392674529576692738439720934611190088327642492558409554741415510726851209686960843369438524477983088228910073503002778427329864739917369060095288825338177207381651238408306340838412429257115063725464289433448193618984625564582343801087813583379634686751332392237708879773826495595213364272185484822999963836177447096788729679864752724173013894619644880031564395563192038733058934183722582263723586623428431472360488199158029032165978913236396965241039374753849772339047632798926897851418946343682130189061464278771352301042693668281635378857617761965661036269444898153018814889898575162228478705751948748875375033772308989735656265795340644505095499848544482181945728653786127685290176152778796898887396851858213375680288779033348026503913750538565127980025344237066604327967059871878897290392845742406480848786310626934151156883185565464860919313185388820935612877347009005029563253280972968885079793704795055630089461512344848976918527897864285800472685060905637031531173723024647250790228413474208340804849786420881981701838651098996225078676561242597171838258968621137890252262004564812311886285945976081321924478751655085069283008970774394848905673454849246611461873803490248876217932184447919437752587648613233459295609739755803736010709245081826070267591199346811505342187019574068080840007506088520089818069591023395817909092509121615301000178543262452384994441983745706022035871821695659741135794177022543143431250035416463983640525477119453483934695124835564384742253913944842233697070308865251346968305397956585571129503078896971734283279496692613818499746156393605393994703683314560579344732724003266886335534530113574476202702984085830225832875103055178239724629186679245967660349699391815126293256086932265545525175844669457952481599783319892487437155138134652762792209887254963427445477241672336691370865029399193476944392093373282158602388138108800257024791408365644567846712442760916174223125017613940558474849239879393805185138481689633894333328358205462714566634912583019466708985479692849155717119429306921330361727957638406001242234443108948264635282666639365413159129333409703679189972500601532203507681406538057064171311421321039792697059760739468522153343444996353095151195841158434095817308221533012643522820186535915332331711615457888782618602656637416443047196011046780440192859614535149199405654243177727748571657484131425758048027958033090162880994873511275348723973145072171865142182729688383700709918116425775698109476315210342633729625221711604217674580312087514994663458990396440351057530897476812006695859320069217289383132411937108242135692877358672495521571027216185335630717887264766390329248535570993676655397347285503384106160075480936619065857847393886163814261670354633889473045579828887549347083304687560811373229347850622658785090159299234910523979621813392072353640099417574063518231112808316297413495021688767019709903723615128545961163602164619997799855755596152351471470544516221096488612587271544548765679963431967887583140030099559105913935069423401810618495494365399566266713395655079898524173488980548439327653301476278597368935683626207530102057472941491046536116743257817831734438925408447415386128747468665331724540715311988544260886076825133317761382300153657760230819852027479625945266176630562685384013393437135160987553075307848730798507489556912112878140485821443824312128422873295228671897560586185404809735958107200408055256467858000027686228813022157672294514343459632724132823599326266374990700935212847304035193107139049462929442023626701056661592821444324495636268531421327382822140202603910833963835198865305281524365686508950850654824018774888098955076611595729978889807366669250475993884072846800415065277027426220763294910103925416052067566151988917763870441678836188616524422307061271970680518070330333688706038646999816658510113226830134029030255259813624537467588778899023767776947897594810371833969401087385671658188345235461709760531889012097745753964856680707466610776228226990686843249849412467801440006059434088631611488011736731623121340712607284396006670883489593051463978845623339260894700123431866998216483251982541016167952385908370204118706066848350526479764687912702062938324135343554550507873436611441602911504066270092627165467241574615188563284294581839945359986161050346238542877395137171385559741481172840896227645882499645569957372539912010034914207543069291744573612432136015083618323583684678012203142047674523132865013189320695116940941230836059555678960846663784480084990635474141727935511449319321331579135587462591863979079637497871063718444545663977232402756542947613625600653156412721324781054717427920854213935642196134731048185158834191337952923343627551621993146538269919869943253821569474990710778157829205827613252823468908933929733077221334074158470889664041770797929858068055684408471047281859024059672210357987184268475902194506808734195278710580557388889018166404457531338329359209738668614718624509887684255185776458474156172151348269947075492968898180816218711334807800796895673335512088875422888875126857524832694562677187693005619338650469130556316475054694360720980571105726520390932851771004995435408327813844857099403051631625037855935241291449849837823281331112626713082074869629784561312960447761362114164315864744992969989346935878753314483078297325496482920443856278280989245219227853689111202614040040441448519482236947152474415122993066384161584106060520772621737909594098878086250004732121577135760724963932647849772134532667718813633571497753184310577662403208482089420626360165897841349152138608106928021448525416472883139556394652064688916972300274738307148366497965061710919364542663021896258733797650216045403742563835022667733321859165528714249352053301859469072735145207893002611133590365029135673002360360715438002283139870658459734488079570226795618792510329164839273226221480482136586382475313577880850521848185282253851443999990621970868256136084673867696909488235794486868745014632252154520231804935729270096410182860197910879743422719677189001728972501606832204255891134430734013002347796945405784648038783062185547505247078605865964815611443393295135689699179603224007495488563771286318896793843683136416396221086728851774308082545634403222163447975797057114827794841541377471710996736712208762169450768186598243493314369560601802579819821065589589044609321019915873988155810770176064750846883237905560476618818021215299512478206023529715705371350628594404124162404903273114602687675482405383022695247459337270661863730641581460343130892106820468866398248866071011818326969071871820336659171725532370053697963036928500198671644832554921070026092074011608857854281462204421382882375074559028277206224849105400582131065589386331962844586631325531163162989305402463257095691881057641973823183025672684889430800478620800219579345754301607763180445015569360064787296275387141408387808482213335156215768749421345185413590374627669995238542641626775573077387465239700239518565510521786643240112486830394308344022513835444979891490123566374483597493614699974635291783111324505515424813207589153371160669001070578114277417174203753892158499783222377095877065650368974174711582718993501762788024690336958386594841781187511083819663667728470951685563584567208585295153931482234061373898419475332616988686742387649161311861272201632584183846011409579586831855647136977871964034659324272236554229380060647159594131501899499290888378357733211331013586843127509001789279154016699402646560525145808315679535036114507568258618334701327344291549244596082400140710794339590793020264959460099485031944527377270723547964826890096165656483125586246113654328339381007115940314895843520502643118510577155683009115810411365628661383205562503865024101071370179129027854694166675435727169303679018378742717298307516370337981201849617066141825070833307340666180017098765019622426928919794608913746757737729093707863473659737899700091255788275961307398373431823561061796575543635635447693746317333857531960881891157625424684459457899013244859479495963804613126484077409983651305065537661515889209337123414373917531090458592150204658098027148831187548183139173548464636615858947830086762221038586512444889322600788793942250887650585539173985879236162005372136626446158939322097500363938390481809718223965714740859272468955245786809792245747046633566584219821596476472997243907000390751517745537170963273760536520302454993316423673880254120855351202390882245530470563580769775324880575774755305347239220346160520152943946004776199958658634814207797009964993275789437225595933256366243390514027177054792511624335816107065597248823097168973342854326069702952480999328190486127501507622055241784289509390134255889347619581525668847183058619826241107921980569215057865993040214229298412069782913149106053834950011827616317603129752356654181305984431567227310551704792673352289848172019962622241977527044940901471142966799869959130021811877134456922590802878524600010182315172267985440364815323454628183587847993855057081440537034170426896299743116697017512158523029620771548855930235426959422374778257518819262744382917842588210742147600159922312849735176733886282432948994211582936764558115037347563112987538132971677136578072673062337128861503666738025404751195476499710653259385406890111025376900495634997051733656466955005012484959467186536227658138186713087668980529689812666860045048109382069475332547024252430923746122271503579029900985928252100405680591737240302439017228998598790612324620247759564936739179747379376569505239037315273025244210322530683767918045243561128996070978318869258702143517458980925119740644008187582704409635544493401599845003620733899190523553531452241069695633325636057704886116413503693262900525752787138811648741015731001368937482121732894237459842154871087328740747206688012855742898672815805898466223799769319340434026917695139725484872777507819689205870538857654399518518282126076240783236332884166303700661245783686563914961096101128221768390290970680711354905194009081137478179654040391510625128806086721584060619173084180792884567798122118572902862236856930521432769036097182807259806122400946388884116559286800068004280872560222996374835776461646915270195538714669188902573894283991580973047792827738259182446119129321389286181877036602706510897713666682083998902594284614105492199529153212359925572987731410164063019941333303144821414096903545929400671490162649449916835630748368554562378992783090382925504942467717035778136752133168850778733019939170564933197164160324658672244870003363399234128115675935361957645171653916687906978918892566710454718701028433640297570916550651665937662342052774199490002086296306903544895027807014945015733782602291127885936466508487375141609448465104087336323441753401390166776017007853816221168756633957128861472546648748772125692280771251034722216705043311897841225643867295039013546685444665872960474350968993801475983783086401698507022102627783917096203219314705043738355374961569122186551922086597637434465972649365757089305722093740911737300206420514242689650033778986188483893991126746808236042828436128037612454414294431683755094203195669908237555048910055627729157139407313267754388562995797573975028130630961917506974741933713352720884149147667398586867624389631012707055551954951351875183236813624713281148517211497633175833506954351893792283788013761905607395592372372859897228545102065460692370400307538373253793242301194531728421373792591904535500442098069751700158214027826763275215006399448441194427797137632647373587734474554524590096561732854835364521875463378885306066676029774029022913985228863420551379951696112914442769950836114774531780563405398016107082538711814985056518833827550410945606826325955637612074661110678704751725014932155930836889498781444912841356991554432392005270421050203559621277051377538783128849478509237156376187564135154361954673391263796564810118676150745601573729472051792086932444438381575047572776935285268643373277081033989030206639345622884889049466360645750104348263289896969658869231980154799736517219413358239950932304985342552693441160934862812264212035021599815969687250147023745170897706052640056355592254724326266616988985091530710720246282318806214067534058856272422060644814676159860505727924978123989848088817006572483379234385871343210133743055915141269791029813620053857189584756198409993986267480121092139110555157287121504620771985240409509439120065356466722549640339622807077386405474428442715911870565231086642638669942914892524280964702575461541266010640815939847882032702458732012654477817413090275950199125464762386920043462609696906222538312313595692747978463973924812542437181831582046112013056105988222978146113095649295496862310473606025874825962096545287672425045948792501943581647323291322189959938379288917416492546187295188901728946587627152026764122948842877697061853853298602487296479060342184746949845092500734876185722653473557731751284570719428303890641441547168104578478709395305397103522038428502341641334663992909748588572258594347692127430864438608291064733150171291274772020958763192576162166773870130937801352214512908246362799685098917654582372062387140933892150347339014721460479389547269220639841641467114520479087064556177759353006883523131834068519428073788100030795358334403403920235273647499656629460140767406816409975018502844903343580197869526022240002861991870527209323267410599810410634954771328200574556260464770978802818313244265544953945076187473010740023939975509502196238702812093451371411803691643070975473184143295115529328219204604130621166102780640480049903067689054064857436639035336765705673492774042955490375683050551377039381037155602451740321662539397340032839363277278153437513972888967263874342429440508948493341648138961826718914012437108669882651780732832336653873367845692206485985053334128047430626763251434956553791296009315853521816344990908811631884867965600267498004308164579542562446869388833167508843171159305891790571452593499115207957159061043154345639805499570563467326824240463714926258774548847993502184818475357988899905682542574842125187572159959376635616214788140093793833446452142774422307604511656975995585982376630244855376156928104448998549911934471321736988943959418465510022254228142297554909881904715293514818576711391820587182592434465604739805232695358151459288899313626711151168137868833817029900928748781474215743489310449184885292786344234782036231560406796690037210480043675393634288347171282632516387231428255465116425909254465480780108298249025291889906030340680433254402221119103181690010627211512063199865008486723339896192484435344995854768203237929696685256742226853674555516018257147297599653278101412418402704208332405049891811364519573496543530598804967664392406126868371009650755142694876988026469981615120401242019332244143125335743982804866286122666225527090219121253275896525363994494696496320343978656216080153624847260353180116590447258601265174770516558085098970591905260776954067404274943605868649668653957657716732774016539199053365254674010518960430966323373185425286769544159334671340887262821047231712928905971311259560383517783982577083810274743217089138477035201493471728241854177512592317164748880921766219478728011751512650357862887223935747396263565389373264236792835845882289606729061619554482162537288798822406860473563054564140258110597000276181734610811626303449513524170005497672536142041333218183479682815517566338360166091990114797252840847861152083509243053330310345276083959130035433927845144564497318042829605064640931743715621145336156584979622193245479485663779728573147315383287629539933565935990076596952785642218236410879088758903377532805499742742715609913448248059206371497091319995674198488042776167381383992586477092822326688944506409577900312292069844577870884815166915939988683276552691178827668578207091767809733661689038083632121128982618184882733406228440115781525142494658926628160041747142348326312354407152983138603980243178887183083704119230880446824246289567436975721586163176286392993657094088582687509700016011302073745653378023603728278527953226269102874491394060687952116124372099289485650975315383363293875997211989906478289214417276657194744796655295497572721929070127172466113641799595268380740612246572963247883926950695256296101371832666297212520656803181347295289921804802661596481881133033206563797011423408165013470024812580858651638872767120340892984911684400042862146817482183345822654575904538309618498782924531401688937600123519858488688427425368842460138837448222908590240829479948142042470706384569945705535856041100809526919370656015650259232073120476285965440046533451189300164609824871810643438066357768810921051152414369128568665775725975255470509704707287770110701478389696167956675950630168503035662883006049614970735393234154465346688299257467536208264864063663403146580741771186974585664841183656772985510168040287570050750454181836145091601752663090490849269902546618759946899164957578942585388600664012125001530788274889972314322907796771641704959250590640020858847364930886357034870608791140300465244043606322714607065456512548361453974106938012272672883001108438981093018763717816023996380939252800779979078825410973368384473914220771585704486146230322574293918169519341840177474037682547125719205968538207075634257383820249810479288074336923598489353319127434500466901676727939262500970034466622918610682513444346381832356583201461925852801925423586991391750372476475571241052903849087858818784955847268717954481186074855701879226376221634798616414251521295307435424518582456518594068046836410713006598671700997758959897560605300007404630884149282602817777317414398531907029284151157452234695756149849011290597461032592530822522975498499334391242028851738510140858312544035273540524336372666916868039621017294507551645250504293228347428832268807574543956867757884899253666742767161727762350484511525738564505499445908058128745858119748668429729383314756792572047750101287246973789685777568718830239407187651899751926617351735091384329120387554764083164318838274481723384437354661052624223297676480185885952985089702904104454977707089719837048909929818663168112581860062725850793627634511847293796012640558196862226247652024205688629021065914675942102751397196152869653712429092130571797293820966342092945367258096059183234912378500280155646459294642963601073405389071480603225253233419670338642581601613612125937276102784143163400195659105262851748975617629342264282045965143925605089011540978530145901514571836919643092101162073481887751905497162010549384383391424022781295302424646511412294304625845751051686402838683842332255620987768642919991490961395282305604140419156474862591249243621075998211517245972071536344041109447819595690959886558594524242290697230938201589352167961801356829399706453435211536371257874314240408167626284855141378426951056727712458219405190393135201455138794194390791808619570824747933532387787591766750290899008365589953282962092269778044112860754717093200849248601305504168082647060465020290046653049227189033438701825395041784940309450239852776408170191949111644619101917545016820444350457696279648622889290452804848045954594616373112047898820514606486934601036239905569006940702264623197413261461886961503570559069597245042394623482570157203971004892207843881786113709902180904803645410656048907503930120437964115475126513261812549170370986830823292331278803528222625329324004229336503810121078524405877829875262860049743697031870223167699400573499045699804863226111248648761955175198915191815535157831293988951631119997824453175355149740480253484439580515831763540731571380673142699789435842274298203963868225211976423081457583654972275373403878822697009597436838334448745875665415243117376328063696369629939329965519218485239844833583621235323353216489859916941207669350962666001283637105425749562786016733682715064116468074129909364379532847976676873190824320743391131466792595075745256006979421381530676293832885392090871627626573201402030325608163283139608373608367021650934366367531031439209322423918963006741184815337427072370265578413894593191405044345294528172333000131049561739220090763087213196835583383683161091285120136280493633800320971175641319245573051047279476068454328419867537108274112256778429011748226961384723298337145949915961406623610176804708965533172042056243702236499924657419825796162881353675020622203543117529972659575661386608803097448100230393719859259083672417547810552747868641538201250923275522239067036221128232415336892075979202495467730025779266877036484376472232736754302539827139234654880287358155114733576969881955940678773611696386085024479837772014644620991451115315369803554942683274088071592599056731659769404096345274573584646464128022274487576365189332802833319845338706975754663158530544049653594704834927809754755467752593540222533187037782675093221046333454852017776460018635432101530044496922090374149618669497577665284902766452424728569918104927482636421365800797579444458926598459002836592022461531232403535738320280888963527884958526987231669872128994792836371942190417943031236390580178614055245545056056545637778772658075876919989902174986212091935476494387535149752330431529485284922368340699302684743867291614182756678507140554373717756200213299832569014047824746746232684949201079848627719476468396275383266810404506710082856532960996419961766468758208336808350084341817078736353480682382512361847582532572748123779614924521391427095295159032222710957326093307435406017545617683348846413200571984673834472444117564793510593847928976200898663992153648757205473517330699530629992055092235179138784534372405937121100403243733655872448091941386795451668392683601403753378080104204660975073559460151504134008429154508253817174197767691799306744378695958201209878530105121960371370522663883120512725150845357565231423103055856969527565547558497813027125733550216635322339082406800144931759034476720625308168807435174611497646595724962812982628849210585450756306396850300984405165132835394086304225117282511584171551011572610150738959042899726848397680727567208684172414454101531954709109407443611231183719720213762940393523072456936396321992638499243769831947367624579069683151913645119576353388973000554992923326814158613370115008017671284496278867995586235123052275972856750053125283883904760708343293210374788321389929282846067232441348188181105043806636875349330969422118937356489211720688693286402414820676952907736728121734854715957031314513837863431739297666503380638727571303862746343400000200360047945917770162826869997005582225463977965960301909513803851762492464996269817202895051392811923445828456661214643119258728936117480301027492204510116966923064362262413238194794791495527321358045412433421658827861896075480226818761985998776994197040496191462868267893146853470059455309404991881529937257223657407305318728916327924293743705437108705701248636717282215158162911712691316887001683456426559330550149219145685484696056803066347355486993355551452884108699511337367658002585168419602547797043531025194320248676987280715183207838207934226666570033924188103577563213682818953810835891947167104391935374832492769719570320698496666496222662885033850340163755476833229013946838207359341760806432644430793416234981529347095348652647587213955905174887689199305151470037924071146750384754942806701885166566987603576321682928267525287372543721906765687838848050451662320818437923102344152849201965998791752489813134079952662436553500817692941991345465787789577311280822459520706467365319897222738008300373471607216089226428133996538929457945935810997501364162147051778071482339815490495413427977109767328718545242087561270149371742273755272186528374636254800402332399744126675373383919179121338331610702323696986463880117686855601711174392827935406668196008711852591551427622589117154182160535979673744327565522434434153484230601600137508672448098546981721258832613970712830966942944378067747644122966125389191876902299562622163131493912842583059578591861285146003046688398049540873618767313617166286260350235683309085786925218424886446340567874087619406025449958835076877022654321413521043069716092796615184132567026197473994433801814280207162619732092489538542272537926738657000441298400335596602740707149423166632340766612804245040791646408731247054877147200423725935167458846159430930282310547919178455394925389322158478009006771888537983956519708812459052384335328928210192068795086603073771691093270461657289170462605152206656664062060709211571864396412906330776186667108797805395751974527602757574073511206482984787022312494196486996799393968046817855798732851239553293776631431609952884007760622684795142548502828209148900805830998454088065274529982804618300983426862191950360994297809466541973356810763933235470184172238599332162305200334481905270741117050643395727569189711039309217811087193371828535226631113335083486945592937350881592490329286406937870018846847059025008772708421315938858330873530136526339747014346853286268152424930582946711615384587257922748598993859561860032042603226063890867162291750042867310697145195477517702721779340986582676411654547540105442444070922284751533243259984071029168576131330542485358838221992303587978713156715616584454687260738766036696384370613032066040172750130351977463749178089512600971774301117601901542979938708624595866518968011310482032857939161331527220720665571789042339653695519183359390684697852946512873553935327873083831591533404129244582446572879691969009737659419557950605841064890221369813253760122467120963463032471970995653223310230483206843936424755817530725485992054150251606018715525530820867625094823851827441407685714231507699917624650658588605900019844341168802491024427989249267912619425882954580073141883613043314739612616411737063939408839732403936121321093370552289781934987225461683045075100483535040271786161829904468522771163376480248250564424658789374113518559100797355919755348705115325672143980645392967300541833262387707437070258523173745132424742369700005081415905660023518858882387731464762978598817574608578358305017252559257357875701335779307189437555951160906488498524890456821763731349282693381432664487088004923952937290743063729480918669262187610987277310744724316964992036349608321524152642751627561508355309591318877472616732045377807015051115750929674861760921115060565795534282298046579059800360038059626744135492617738044571377980379498893443238437953605236943041199428601118775580526230625734660365050334411743940003004878880742250632013050006646585592917361130253148036148374323177542564255287436123462919075629090039439861287366352530005340564755176254472568973802841657580373680406582328154125899707118230087808456754286518084061808814011004197677526472171878966539076170128707239169968580803736475378706363352731015151898487937295442054736216704911075171062584689827697499423303864298567448927268622300586573141152624023178378373940210524870836619182521447621437219736470040881584620746854675059473708189880069041047976330211406038340098184739239960768047338991991862719351048577055788300981535677820483143556329352496300802258936792504719062737770289248147158424995087045480378346033211441177478737530474741448190342546942874190012669247782406266388704886735100240884183514565396110367477487020171829704453569732281248244570102373904865220287302712002201195258629165027813440434159886442104252352006543933038715706636876542843782171568704657488263783252876293531313704296507591720183204039337513876817608384163888832484659529279954090326749252322553487190732542548815595240087275573398726990324310773024189157012029168908923143807871005388396735425286951830832666456299377406997908004210201325694654908409403622686675847910657812826499203584124546388418607165367774056661043466887357268409509210767679318519282469075015683167545992391468851530710230734339334981410569251976836340683191475805079087434873453020001860348448458539731236557483723097810207215236291184703063318109494677575013580615414124865222289315530588800326709147164177704025938049095428719213097177608057556450961188451707466536268895459778157052167122466717757286565732876445175830322698095471233973875063017214750358035491885243715927066880612227567390814208817183496164382626255702138065847929156732917647297528768303194922872179279451349470978670911346791680957475987210299483903821999155484776995248578624595424245950023905329349109177854643688067014961867206540397360923719384335997477685693724354418182448044625248344917125199997283693909671865848646107185045318463214882064535638276095324570693855172074534815043467585674745586902826619251921549020751372664592042473305689687311247332910649161686964380787760691175485159440684173969340045976672925280679938836645385343233152304154217157680341661727190350111390233450221559763391986612335504172945929423590575437755188159816417764377413949704100136876990322691163950990674992865234817837864101132434934210018078146425322153343419306083825330659388603231303167416650938441853192662531490780886958368194003218105472190668975477089633759050010946912818454898806992908310743498817315898114208697349379487505231147660656189646637624967314843686204164049833265220992524135932116236988549847439132086461330265123995147382247469267082709502613630194783777787301247871433640678359699825933371306191984934391411773788343604401884578664868400490082610453935585300013639250781988450444555462435838353120207665183813560676365693668918617819718923208965183726873213783057434446555919604506769430005010355543806904059130570785392751321634789488788259326513409397809235913744734854257486698759448871282302823636027046419783269758219893119154639375924796910588709276538480472927534859138097755782250808911085249393680982617253951416979653338860818971985111499402193402063482401608663476669827393796309844219319765525699146633854023987598269115154698115874220174321281383449931666324723578631973171381723272873552082831201830422460993085924536978204231354275824354536723715591040310142041216533782109391168806007832405824596927156168125140984864864892979159237590296573920084237268882961698516046666371537729380639346676334695603786030825078467017183682494756830655400853769376014854111443103091613020393236558758282731608851410635907561171371146819540876379379536785119338685485739683150828432506275378977766222228859910581828066460150397898272353105690072009719999779558954004562593926536894762400321413972915508519970573256627876371952356633201509631986391426080738807846719218190769333833271206198833079169197217441567451516733190956820800625501309911278087765629174229406596908680747421414671192170324385570856412733029124332182664660284510534876193291715231938004520330958139308682467321305453462869623715838586553639533975707787301103124457651550392526954151312326070331120414105992319088229553086393323718286675720796242638914192074331557489365667631545598485947383649829146257466717572233775056958063946960833502998789725034843455789304949614228771136941640670303814933420051338864480403018239015772064833285710785033322913622793314878250518336428991790003289393590123426076043032949575979621807223032423330764971175122488294604748274462540447168247642668481702747638491810148468872512421263168041445945832797706516491741324316707955436099767007549615028267658629561469187673652925205551720582015783626221993316837846953224662643971660816739178828473044204094933714559786940503043347134767173268043844733151323801558211951017484245327890714741526207156547145568461652762053034163070637571970820928441943464463133134210694195398623584506016755686367015219750219839432365769062949005961003956748906784182861824708688175503868545224873997260578526271773084558569929688989954761537102020471144047713244239387423226876388747821610977976279741352505698048163713117826516991592716667987674950341146431641615863803986185029944198135032685658134317451701663615119829999567532927989645418606851233215548641588091550473179191927696616110425574955420994306512263739654673492068643933089749153438442618671067629546710717921475656437035096900695955348666390935054444797366973263761304143843461633998324263090119060549771851897562581714578223882362116622365594770511118207966938445256460694019551791374367527387331892901104642736088731810580246775209544565207166918727737579502836408436821740675348402589513533175131088915512736150442740464865628918421503224881420083121245546326501169822764323953360956532776556632321132687507443230829616471011088797608452724629443908588579300939252451694824154702653997592448090410562051024364659581340894692511887140435922766257616139449939280025891515434550452798779548595570429899132781526211211165175234655252577296690687107220736698144886965591312256395685101117740392114793928957293341705522413928022785799657195841925713214263557909668533870809225179665428708541753344354436304178517961601908988628414777757859452553179079175493435925078122437166158046005716795625297342327813349679837327827502975159533720808821347194509320425843728139959145170262797485687025991924264721523708655061435518220683546721676775149123709347449149253941428981474960143171963828684549036364409425247563735380012215914901600866005183379419980761306757516232492216262785112931374070268002793057133843266786552229238501313489633064642953174825580299555052105744889021475815851816722283490918260130903045479554375640544098598622236405100928225045387206674216539151503080497547620214411387667739024045443196654978860574159908155887546774743235926383481297531552682905757602395424009476702955802528706383306626994134387112520435172432495856570406924056870406935875206696078611113710121794139966520544980686214397616243533641181440918165331115282324452334185406386404623971179444044077728808363860098881612759279621482314471764786201912243769261769011869376068514657487390025195378296689960944361871370007056496226212322573493907480793019616759712269266692815505783165038220579719709698331320773244413754156114587250133053468088475073415719050907002875185954975601435661569358306803605341770467767186834920145929938581176847502557292716433407507290138284618690157989075979938294979370340708487820726538974904997889672807200586610902579666840755908493879145942136599229829145700370572690519962221292631554822575525219853738751161331508078773595528989512590092988684469267262444755406785061736926969244114521247214801724381149315720790439398207900257269027105858213240108817993014658551749786753567503634306696169634991749667560072378155149906674668479985214992033567816919081405417921291536055355500103360880468301423408306392454691364368186795925605175844909334770780238934934585017560759428086242598348045549831875941099579671797107964797923744619551634098719017499284199107783159868041545802780692696912600001784275469113489383444565171203424939021642168942557540350461393112274017256855588525922489800524434153060757591478559655133683738563056160238245308094599212878494977560592543944034919463240511452864512856355046874136106958331914645716395218173534148741157758547199294152140475540596515644217137871274005195637082994664785393491535852890755860122811195059980414882309507114275455863056011707755794435267794751142233105987750532954388516751489411132444228512428211525284772893665983997934969627998269878160450143075064303940548294271716520560397744292645477619183686406542322033881768553221978132030056054874783707708239240999503765128405711851532331628108750141267766015596742934546911943798283714498298945298298512064850134988797103103443227453378689195651236268592648850478734333549461684541504747299511906190369702028870010788806715929024153274271287925848319514910607514124680654676563377494035269075134816825689467087257307893336301354046940772031916363615150470485384133969390712127267956852296215476132386788167361336779576619566816671876337996032795774332600011602691287335810282487604822486786964714468569080218879232836880155460538635331902345683676216104224075443834934471270646230498429548893249542899346291598441626027562217352118476197007317033481414415959655749542318698968823308569374663553085142836955697112784140589478334747553649146611042206473884194617576208402950053073604169190475391530649921736523237271506544847800889900318890086274573318103822232173008926202163810199036269589511127151213425414694343746510307638823902900849817554952197682094890895544706425782914199413725253696749588909167040372516514520657421489768069638742655058717919108120603563475982021041834979575429489325408826274699463502744285103978042638222276149359837619206587416398433610623798473511224896875776887929421648574781600957461036608525481794232805227687779285876311867400041637548672815154982146400798359023571894230244005364587202420519388845668066216203690278823135989432371699836533280276568535141736349170623283685933970163486377158669790308900296146970838548738514213940620466780695893374345927849645497053256994536389316285312755337199724381808624796036130380682970840374475064725811756837569039049344548942992677045856781173634152601834721629200276667994412432021740512666993952026207791404029931839695485403461603166399554557081390293755770384422524450227199690912601908462012631864588847427172900456872619261738775468759824872913378871506714352428936750495624115741943122267683215952346185285382567571854256705154180817673751258893843851090365931965715978097148687655070775391162053884243870273955677697882552459753577201581469818385079174619812438727832983149138638795311492800143288134692937024483349763449467651648018051515385537319037417465747724535308798625920517570362849252081607513388521275852553797267057060566729918476033726684384711471563303529826361793515639362742059886176461562815062313943180602368112155198655603456732043408061957019592207519982138046185694998013843170643393449970478897909662610308328014364377957355126339799305616596626376913276732920458964634705868983070415153359404624653474007513169470738191828104821168124357012485150422979419196812357162798806028813512915482212672719739295822165936518690178896687686078732284293627396777118621457026043397771102279242936814245818077748569576944076913338990776465212645604292445328962019546508354927344457655810029345072766126284094294136944072830472551916429083983787906196715832443005253961834304896167166058029206630107581187590348348394024325934445523946238410180302821839034746171849846014043024293841090867240185245403544819562569237609071452698835153648797580305878348917452786420663038593121177397041677417220167351859725824150103274634130461283979131765250660051764923695918608292140853994817334314084577878184333694483316506864128858322538748041132418403880219306751044954925814480875603049856973992428133524015544879472957232253363300701852481338713139048388366522622727369502202967958764749729412325261731154988481021469024702149430091898828110119702253931960429861384920470295517607177511392786892811249951347641405690175302814519337106050634751306738431208371005078037531717074410558881923716527198570025423309713793107484223120486572693907885201905338173449555601912184463027283804740268588332672383212587436786305873434873616458913812571918014573105774109458381451389437675641406471100748943137110990382211346541907944959266839992498279463162654494579895241845985355501473460659773969767960886075294004541969826269075929181526077906571914839760005380542664301175695460303442406799345091544136235050137401178565912283245331485367493614571741855716728262079184335394122619405821815819752166998861455560429183314164138222457945557667222880075599625803518242787520577382618096536118588883821328063098174598964888518316287879380172545288865602885748566908081291435644921592961532646798874046115973588898164202995308759007024443887481387032220081052558228940687813143784202206422168409062256259708233007583418456489765045415734992162889183278868883170161334125512412107763006133958476993135471184093559259837435782030379539034783945457222376666015743958259110930695004894226743823952355489908333256651107546191890161131702391687734714822554836674553307373325478283292739000036590994825908970897714752547237211585177492452088342193608935238029476597964135707015286506242810484333191031665804491345963348841205697263605803851895350337798835421030627749267710436515354460704956092353079543937252678694129166341191679932638963500437499363453360733913079734263297377267233914127329348407119368445036431533746606382857837175798664900195921357041623813786134435065499376178330670531640942470753184184327236026958064376212047941212710154405762724165703456571475174725979496636673201231046769024791304045448805116098322497506982196395084615653857765623812108103614135750916149960993713572195920995459501408418969892897001573600113021094942854302681148128670897474979188619414735219332806608575579337914798441221303075536711579758528875789819984978592861524334527295269124827083925112214572037160329555875870964054338759584112327506093243964652909609667321565568103332044397973047177844471972917456302973219459364728141781125675246350533567478612991528235340859332000089453984885681343568601484150973775080362535199124110746434527587468507018085010612996427905872441083774740775489037201373276190325544552168565470719436901418236198198575013011440624002998887078621672055429460711331929437771327118784054403356792117503539557695767190872063618742231679359938760739550078096640326436299068515837874981697192713211388285967026624909489286783842016321767569699323944905421673498388790893065974862865371591491172408049873993550495307839989064646533401710861738867268788497733934202625430421529461060182881201087132662670619564451172997101799911034310983528804511867101548473217612397452258262566476264710133871690041645749589518230488235468694701550676707738939712187058176903168520306019283355740353692767965417320146049958292850368352767014535526431005885884692446589680664118210636264731715171579069333956655470608815330443570177280178041025972802334283335636950599961057847314743427880639408960956890626356779052858288479745331700035331071524721440231288976063378997970031191312731728366671148904202387915613459482745298758569714022131763723840798297896716217030009330646259078256810080598286321938601195863912660910074003370591384814950568589212647520309522743875534018210241666614163732018134541471381090081476123098139459857650150147611676671346532334733305208225056029054927172102996433738275115626320974722373752249690996036360979329435053208147204706434665031960089015209034718526432661394512366983044093479623483424118349276893890372036939697369005486108935576236005578789352404655951252547435096325717677469619485313332244839111339449327104367236784357910779894779075488637423582052169457051060293914212776799918794237865076024414773795673044616617255177352842805608544692662764857610944103956727627380859929490022378113746629613680163060597029970281150864006596385857115696439978316654275813505155312165822874992974202513568428193813478865455594905497974484497881243208716719404628747854934762565723281362145275468163185812339974706795138386053259161400174707849805076960983386577940281311464514813198716567805948739264237511362968320776864163758263944493486596067753684396624058990727774597651916192030565582903329610741282596343732676365833893594620672084131568279369544118082950843273722280756122991795547752435902101978908024713162150966339473036664203589842718048329328673960097919012999555318859369927990139255716827241598157252017230169596899091724159860648623593983408115288903499367809329903722081280795645090645468377223241091029725504052429176372236314794324701081498301229849163456763646612351925345687194493882719633131227722494477238395064536894440420901739135026041546248942032656079606314290448890531382244258425582101854023246913914039394211676776071365597166085278900572366270140770231710136576786725114199671741936832078985312785115384673325782125191950941480417655969900128882570553107948609107190083233900877200381748752081863949460033508863214963600129769115863001726800354317588078323734491639107034528395433958730740590896495183926749558466753365851309512172364567340739580875520246344124925975102970417268048433255012051724767545423445442558132126451163826153000581103090104567057522816651302932698552017609845423448796581284512931103785372118399513544695052146215919202944822326866325496007185997391657976535780275992754620143997726809204471668301216736445163297908711416584455564973062370535286414804455153756395449994681403153418714444243845727619580963397940548376805807190938360653332095832312302592014117154771164531503748648962001834546724481041302615399138715920206843811040796199757057744936620865314405237541116410143498101145878208891381150440245538278913991744452282002441241563392407074811549471186207811735861227223923456827009994065292231471856683198483120526065691768927841424735459421909097622732366329713178582927510254561496124090434546990308973860803223587515678365157998024422196769961707658574946690972776050315582393387866820601619152791283586793197436927748076711904384486489955784931936633873017528396292209957744230833811753848227134039515936670386662599781546634411304227174799050355770046645405211634093857269316803233060633067052878369828276181072570104208827771133373284060477760384360680150276370975736774061345478635912285838397902370257098142362981879576675629349172090131779838961508557788512311441302614132576690279221411582077364127019643829977489689015054217834501601561571722765376041373895351851131722116935535172092292553056531629557035324895846622660789593457664449698050251422089814463797260549840209211125259257586657569440586703985626876014323784513033661300944804271303382400505561748196085132677753903826328451645264371182429187535373787378243120877747588360212755077127181358044082869397910658376756757673956979554540320119633917310819830936099471107471701686949117481259377542716001499146729814615538220819419371421487473261218526595948900747924737647589666492195881512426155752791058964000609178374824906482884635905289173756978037261137908101717220206088079785450432557144875638679279210923414283506915259135892155809838514642362046697917189851416411108573118135313048046220829150349088500916981782074800811330538166000218846262160170069407364732207994022888502217899618888205953392783595974050495298798003305553464047710933873207819363619800557236966330442699310833829483894993830322389962359576380359435837978444858300329210790083568252567823155233575583477449847076917521665078061625206606126742087776216434915700182844319215627139009774209387092410006558813005667871891608182175928058930028504934297187063918613824196110055889083576867671584168453299366888675632126725451773248163588874285982079409368825744830436731514943744272835067363238809990000445097258607315138487447436415734026798357416355266850690029033080862343006410996430337203336329809105648700746182701788169602106280850516456204430708051990273883235600609459651119378013895067267049565555060927382622063978757577960235013594516810645704920913499796336325901534888504845429575300386211950754137135683557118703696658087310559991397073298321917494755257839139062900020238591784354429325721208235633613848770319573289133110248944149930747538150935793123459361824517101767135843330647672964271926062035480663742224037371114443930226496803011626049153599695387856391151771131624377180215640407544552834676707845134413487845139106616022095166433466964457713037300313036526631984080412262691047767511920683369108856133267735594201983512217960886151091897903171700661616963761820073655094777883990736827538561810927136610717089573300976266337492104481030243513280875795676929687077401411465915125227565726599205450078732818762961604738316253628481509963612880115833407848729867275067866240480617672318622997875727819000658125839753966254542567206768283646175829528385192077932011567933515049759913139132260711475124446777127889560051864847359806885059348947430689712080158027622647680750488580422641736407905710444245181799972012820364826454256613543529286605976032647992145203032632364600676153941727013392828922052623056798707979702138971307768961510390539897311638618258413477728682637482365578435394035745363139421600075223232178920942149171213639147211566231798790658172819086476684699407399965372615566678957930677302412234151833774858563581076517449823614737386361779789020307113303920323011881678150202411654159968594798116279133942408593930720523019814835793098913976642638868008206561623251696764254729297547159613541947032790765745188794815237557116864051022443825847887384012747194582128989604957877156529770715379792426144390555421340414495180108454235638012348816738162621148445109126074608848107906552694712042157504169231273880724554679876554763803630480497822309169880466445031167850699489394353113692122622379093107127329414207901604296775373356509863637598510194096697506820908185467527634610657540162348064073278903110638307035642592198910674485600739850970177830915961235309603129712677118693809897265892274930828030295632466571112156690143375274178791362264297560771246354260909647943966271355148979225978768586483386255699172445350913071345773089811268653303427820379423253624104517626887827940334364067942654799014896490038196164571157350735574327855371418939384430349354385806119416589197181614576380418650688588093194385414333877845248730833210680734043220092492957490663056000169378373237808697157377271464929353791548853375691721363774531293013399883411344078558362986735070807264783930683445724427251379196770514378995365410652218912965283048929004359317308432205278616857141261840240100099108977182170872658912441167836261291249396971330706247896839957944802236641922137352750010603197145857366957551688501146151786227188142242639305217833109881262509244711551468427955553048060477218424844862496570979309336345010863231123419355569022887277852662579022464268565133586575460278107456925949402296724256410977389937402046672586811930698831908936478823097189610872874654045292028094465747489512409511353166739077742560855620589523977019687691310223374351484503661713509120800527538794791213399624589119835393424847708859351818468235130454920030031599586743240679274209680831540937282883964468238599394089900779433411782888146898080870385103741359335223160027215355760072609532370135489191665956984677474884511373808160606292955967196818221296487612400172293822950738981819914271068534538551845339361431701296004477613409129194872523391060193317923297288124293257548670100366992728936969682760484302970004085102534556325461310161706508768713935328810758268000561671685599519394460029496655294086951324245942521823528287049735500890086184544318179672177345588242266154095835039166399146822321765164921848201572055290833730338806076477169066624005059444759462787635124294825668425491045537220006269462796985689026012517107003752196912044513296827892683601007888445199392965292948825674289503218711168493409407865051776174792732147653439017368736335690710010336769226907074737296294944678303013427106134086061429060336700137922621065241606516060928150705718536123726532077150542546074626434806926687446021917505382278329551986992541912337554509847549878484040403717117730040245140584935700106430917569395716715121381176071034318989481381490697700709834893437229562979891695271817773702638078384425829578540461744985520828213733151303339678098064793289781246617890432201143889546733030031590743795720335496468850947768739596396704947628121820136642342083235719617984034283093328622725253428380570346618976075161177223253428956937279523918051432972955180013833842418620693104137482173824206911346943324464000245997165832418762052602058793862856130878058191049767351674003227030934715410870455605209023728308275752395055228887166177659550130554325362971396848007138690223714921769797664749303630028948207258533832215256210953197508667058033321560955718949936209882496087064478908018605008440837813242637787771561870451192893552506356506907442428908307990670446700112487857069608166298355357115643303319761672722762510586435246678994816140500743768709714757304363468652262174288571713992024502213598768101690357006238456983649173110357546772597875798990258333644109666488934084665564695540461462134423962094456504058872421203124028589182895025635342241352106454225226792003260583673085519937586650193665336040351935890816507782788881224498910721577949966784683520632964290399097263093780871324997432687487298443756167546202645802774638016469701605824966221477368028921189114907093584692205901203344200720181124164655970854788131105109612876920660601022030481905541745177275264836908383550643620365368767809862711735489190483012216906661285401230336221715643708485700503079387244659001872511354722573951906838787713361084016183493260728095678115676385446579535021249685055431236727955465948083615122728046511086154807541607933500180770583374823504266525351348872373808036058917708618113804109098684639598474174196399023117973944515929232897841439009958885694750209069193067329933912519214367240351876065452462368529718977722150113336123436283186118213485908318386063222712125562843465833535395481602786926035237626978248895873440244544057838444931819084231091359736352002544239384352370390962128421070438295342121830382888054352613882370021277085463222045796558251711548222517619771342657187250266272843344982676987927346200932487842431893866816581234977505698386480017329007796900645345055978548012848571304040873993348503039362573982104572961782307839320383708993589525416815959542630055718531027150998402592632720448685823966204405556190575288213092441684555573684590848968602767454304041848872439045198588134694458739109362510947235637330689040691437061950041045813080183318490029766314392783151664062375796163763162040888240472256666752906663924765912554970244056986118413197830502535953421827198768269994134063654483887886136948588621686013334182687621036530579316749076496923513577464275722602721292131983368324464362733388433952643433284626499398973527366989436895834894551561866656043234955976481332768958196311333012039058114529903684571842943590048603359504478923720362281578760974378481600673449486044507841280447709452053301193631334630946359931173119722256249682684480228801467784510775364499994033059613164351544885767917065215430996761192201410352577156856599158124381648464753230886144787088566918104407734946381239860062209099232977914323405077487720229681912991424648685120774907281931543990532917723574616747911434754126150354160112532732268840369001871220230253142824282570774288326424376459879461349523576104170065318469869584139670950690454533542364950304675245988781926424281326424204306192408815994742527437610950275498707918000862244861676570344383514332005051816468722923217554079279634715963020093046678746239323258298522582280225218300205552762657564892169827698993199068153729808185423045533792496909629145794656528663457966610215814877460940939698936713517313218351628070771281814253852807651259219768752118556971718020871702670613413911090105967247778323500240388720860128282749287190831251312117142672698198922516698989938557540538021410649550089562043092005085509968044039205514658811937654855230088504565375354804549983779976759056030330068378030328887628799635247086555659864161266636181559573361533928798470043471167485165342941436192769405398509589262557220655758733858307780822447601995355053135292109010533110740163876141262783101676342081180151056304747227034779732406058088939400800284321457895901287162422884880607657743529668215372330768385655307491791696099752701772491486973822811434312301974033267393554608988009131603145726365286779394326426247247085518801139706753682664074624111189438126788282311234112639516989253425016405228836045445486252776173760088020649107765453672166513129353204268064778108588555786232719029623737127038015651633609635431739340876108470364464078891131201129552040572064983169806404578494456689474963963624649786607752871423761719947366316247897154594082459476514565292562919822949725673764959387078100614971585549410739434642403569559997500919051093632926589529533690507298716154811566145040246182473856024403540735432167507284234282113533355240325429795463440772815605089987618625271855578629531074358532833114825472024840373426609133213840706249213161638452440893011461088284020307515777614147768166650116007404891056963514527980864827866715504860763391621486812297180297681730527328280708185948209250570171172074931744766956853496842187422452874779581267935751423568161064674970514753973254784499315219832753256673328700529260101826499616124148572144525594630070377627442361905568581187996434176903067336285092935469343371368615744149193457766273472623956322224043813834329670269996084491655156939749039120900511121691779216884470249424739038360353006052123608841432623562207430650114960046180672679369618751701248330971376627058330219946897674438150339366558040628098876739416108325822140168152243481471530332597713160351499277318934898422375753024230857430071774429993622983545508099644497943331522432176755562978715241576899348306211781978800697934509830169391389043991180999712160005458508369811935637187757189889455419359962978630982209366726781544449945324374191827936723842816390140834363739129070206772720676983434262765424545974509220742336879013958260926815153502850454281278387752868352449261776725374321941598037905882192894219669319524303149840010804155254840057303521145690681608132222823168704602641174319228138210003609777376471980049904006450894047802528114594728620076978090841113329245536522643232396536791128666960345856607489414664947018845044706498727761985202340312834485303410940462504333543920131377806733726252614959890960324914208920097058970037422952221426093885659730747392488936620634054650032358521235367291405059455713604828588206424196375669963042083400200334418079718688337018894268281479941629510169652512407802731549023197026385018077235154147632187963137731344860160674899500299298722926606584665430384380699071425312802898304277085818731398625950820402241441686244093347138881853345613721786735712390774123021399181943711329248915815233936309399663523016355369301620759670486175022814208855799489992598118623106528107192771844482749957926679244730217791124181913576202381409373423384271846607949703052286743720025651277819647355669985659397142411929807451961042545767490278791142614808006169321396980229134939967970755941671478171359360121125582496071314536573594957773375767558867344563530293933203322934560953435600360390128001339330872117142113175557303714625399914252227745895629151812277042868255079053654395081452318037251262584307192270407806842607420125099079058574962088531905661696019988666052987305315481833327261542452039774036053519850873267385688766349926300803345831546514487354040707301577215213892028959075215079972518678681166634968218850553913953690031406491477166039091425236263525431334663131682954318095291751336419755150268761907649367139575368002015850153189907793271173760114217739518950266367038462503214117448261722594569403791477674858357995255949549146105284616346113252182843482182676222612627121810788057407755000741971599625798339490666387255831585263233800411268325682541054563996790679663299052690598595071600532586405855577958548339784483711171430293356139991245118874052224715491165206221610230912845396896131515916266708478109961650119205519922987163051435297584575301288061619110538272972231790774231662600044577720583275343491116595050187570240028515236673913432749895752387080334529536265762899415108097998551997501814550314324425253517707260447294182259028859589093053912823972678005066599779494775633109881380733791947922330804588065828257716953364007185714787317911259457841309464681488853995801946711527682698190877786128909879326494635689378070508167783348424016275752419130542959303027377199131350837857539256300691157070988593598819018460294684136059554807524473931041023462977172303074771485867959247136831186293305316185571113981639199381478584767906002949418157182323398487700273973211364576138720843015611279940220064374785936122215292607303697924376718998407134266341643851609512040414326447289079248699603764000766278466878419738344477754648149233798260684926307472007654578278192756596273690927077937785561563859628804406380665436159202864795407246767806835985327596989746507220936034194911624740995010557794677130006422318628788731310568960929593460533936344817485789462478724782574881494100413487324673472259395098120243231151769348618561099196990565209154419657108132724109881520844663901573960627089524964008892341633093772774898399263435192604437060960945341765495194811028070374609213890339276115137945753955239083305753491727234828076234095793453125897492910374027220139053205732766034558482146712189998981684982009910634074203788475741205593977887461115742511229394323447915146066657671062034316367573394394079608801317161514079085230518756457420996257002524958234845515112049981484230684457084503597587426742910589733606242308626532313210078432600243613994200597050051971349791957129381618147090130548687590087426744758620767926656837969459362517448638138506472700415750622865059303487833885000698367723966862634730549146988030055368868894984717400652158148708601202294817573373023129845227682013235748118253950987330873643900412423078225097562006392164061540131040381163940763772891304873889709292330346466034684117569988404046432418271950827470828458247039717106756727922457573209906219781877769380104395510298603264151936070901698288080833518534585799316607391969864301285067787330313183492694014818792164626965874392609679352307692278845752217800397736745894547267377184946150206848143580592052062358481578849099724303929066710267973424735057032050716077850166806430155812165119476608240006974716389822146180701979811662653283319557434000455476808749952289201583246443316154943582095500409830946906244258956303038948830361021294577152164185646494120053960017824667212534661439470191395570508663735914238114741398446517777666647639856589515510764239583627576087054966891652493417279365604753503451147062122639538529131477945992857013141059186216951060046945738833708542493857052155903788691886828979926125976323724446302621570747731677837370055363064115975421816180732304477287733948611952620900958358306805790581496854989479371643009583030636681145377644245923482847127720918310418840036311961804847140525474735106413539603017266290890431479921859400147119658700511313862524359657228135906997189954082017560497589075954748867584074304838019420253309214911454424707604195504234544791618689210468001490838325447383990520572906967888638524694300502682249122179688868666974728423503637699372259236779319656540121995926343085795338843574375493793770466975087058510551064730225697049396421350110194093196339673007748759299378809440662206482733054660144415587470298457797444866855493492185641456699927697980623842097860471056826611212360056784987774233104683763408220834311610515452548272001760970296232626142091285791331454288133619704564088829589841189664771091033411312602856690079984868955364958140368906431331242853335128339016454287154414892976994044407840519307520269546755897949307381207544259403829315672964675585810514978055386845648786328048231242053926558037625628191473737910464364928713500729250605154473370391187838650949548369105804894832334757034095252792743366486930440209298579655364575601669571954737202769963945886517561592487967512631379133395064511617307444032337738089318870848615524444332583737174855439857445740479840894588120999407283275356803836741331532290575289442795864547797831870539557863273953803253193207726234580952379470531636537209602951756602953477902017451571638447664711893495783401954956942419027142176860362947440912863471352648142716274320271747922476147993001488619845064385414191037603335061139926824656267758286682406270414923060900643477221619752095956757854549740909108740328869066865898690280959741696877961408681870503083862287576804863267491764441757794988239490868049688964921037119648250225159132147577356845056800964266913429026521820311849553383855876063743858253110873038239838706121858500542836442203461657478062351018876461662678440168360161515059838609563740076017533387155404989215991496153323647030973993765861698705453911758872354946810043544568526041265912707186377862368993409703551565936566567043112644689685774367593167165096124510770261454187640743295691421035787277220282901921195704542088159643649132234405329305163131448497719013525593998905956463224541127870490841011660696488933054112609124972865442234691136035497179683558916307950618310429469769026436740262217744923927950697068062654350225064983040835443604800751853406516962752015035823920529183857584402373490574531909355270089003956421259585726923643921290247912366185809086723269866871228552992221099596564210456392957214558333841888989498946804601104913067741211853657120555768527525776846000995604211014662522232711618305721973305187708061486654489957115973276379912346337191176105571519782771761474653300458008756340948890848895315471103486164100680243281331592718787826596185651963671457007988735518954070091041816166463913049876015380977108862470807861417614061006350695144349092875385236346472352293507968251548494440558067269001458668548403751930691985313371327466629741438911433086659116113423821869379991594844301851150115147672734949350183734583579341022886851652248466898589960205294321220957882364132018892961816035087238720336396011781300500457103869978865955461534808952399688677466643928349467494663763805657148487343365036984859293253169931015331007952789118282737775751429092361636126661219916360073200738364754114357591869018929750992393096106590488362094402032458159486774216179806958518103472492997345059419259118224635703475393770085736055643898508256286094432034974354863226001527951125342291560430713811207491656127471823148017489311273783891140891723601830514012511182800140334067674683752880643177161433277316250625454902784814438458376821953229076553463043697191500731489217556275452795006084880605282659919447383839471474612748833785324363026510113844332641737897806418711664816248291262531300383705685974846837149996845711313640132551797581117752520622152994312897561116330179240323143262853778935107388966322251787305496064534656558678602508779258328301127844618997585652724694565605121188295521016782323769643182384793502009860669039706988354577113840527254172308100618259464090148970908450311510501655652040294020450956251013710978442582528572941373354439909059082075025664206019508232746301720778378543115136116775035483212217770166437520490374377953332903873499400411932127425512544254403287522380155146322717308058629576562054427976984481492921294555418335374878904643074609186680036534646803759759880269457496468708413730098805526919400197538445846609423687042158485216228827880784904007571153765340295457020330146098923774356060817028468084377737835870236006968683140517885438285907980762662751476610488348107059885412650817515404961080291876824444187402692117943743733132704319558921971247153493015193046907032764277538186494039010966129621472949630292883050795702537899304657209311153545494565061849122345303147127040510557757230854499656664989013631926155862295582046133517901994194296142336061869825566509435414205206404029490080760703353921122415730712835307856104442296463297994962471002713644532936598800869878090490125655539606136129175004830016496389482422475310415129322911500436054357786206265942636272797379295954270982508115281439382966947443842511815375968863924116903889580900525036043866677127092108413471550867081684051243613062171930087020585223849009424274245773435254261452127810593303961928930428728723831941868650010684136921081703293446362674724758744756955974169569063197112664441177884393095614924835424153647324182922491765814585331939364953027419672659528281062798267511011335311312356773838501974920946368824380263942369900042155020832898799498225425056703704723605457932225448568854441550367238852886223900262282539790148651819765929481301778112141154402753791267824270347495078881310354676206235406073191843466678274666396472538284362612555453570245129637103974721980779209217931877108264910179382414961840587277309995864472674499248421105404924095836224404495814873004082823831150907872735581250915005502356783292754022622649079082760344734516907235370182895380426291914536886185697021688175924528557922485020641466342991357792236492036303194257737325466487367383519620564241064715093759376481457815038127327181984751028611933039415908278238131830236123009910462898808070527884514046183647790731118362537462798349833496172431861545360337641259404850426709192690934963908132126724732188956819352322370958542956819234875405192049392560508914872561546217166624219728844888854252907040707177232447047472329919414776470012425188236402205734609040779525999970888545643673564261560742734996243269790993150648458784636988927562801291569096734879128449452896557645003705820741232730533170571616790766595683044676144071890135173344923894187643815446913187929380861651828489160639333419928410773411517664002116244097459975326222298739224439368836954758088587072585989445430401745382115034598529848847500390482687650544855715049871031492281772360019388811837077082593035484821691839114130445116769169995662439023330456653961388395586681438216779923237368798670719195087193626464755237134684076790930469484171664301839619368679081973314638135946053087208584881759057895984366426856850604314364359786266249724992599470978967555844087672793150725511044812820649496641112227989957772635589298617817799857568796115767870715604059864345271116988413711635027773181841281812047131187983659045635572816386242629617616836125703487469191663828206805655473324496216596753841906289362442554906860717446189517588793037436457073721196534496604972061580061568836183907693394867122870661817276037012251993067763099512977491937488599733853750043099105395875917225232941362770855572066757263165481127814960504868104471461184052708583182604484742743915223957162257660195402150902142546213417408346584910253895919902170087670842663561135291231180269576119765351805656193587458458316811294755961171645966526429720687662565201721235355874614550335786702954196368768821538793914612071340499128999175878521483009110828709871648479787113515725676664811705213116553812003952629828855945932911892977902288469598070433526779057409682382569459481517610793776145024939515351753593761915546335188246519983803922561298336888026178872070016282581831264494583942958643045610790268817268852149200957898904932987781844692001721795725440257893467292111071356968994566108357963552016990975024220590528129527310435896323409186962964483884762326501150651819510734253083199866625089195396673997669783233785703636174580532332126464435172147018943266224069801555124149780904147186695777955612204827572241726381847977518296493792401354207670429850823137246014362090679129505375110068892097702857001367307176120677404737996013905253054318726164534388994283663152259973941733571807394547967384727977492738890184612477235521912796341153847679331561627608277067424810088455061154504766429432405671376931939540199731673355287115108471023776234827876663729980265320457245627687542090444394532448681175394913705401982426141132370469739650334597474363394269968479172825535067893363527463604824545846529341114555434946732842132763237625211312260974840193718040063957545055678170126666073186964612938197667452551472498102716665759535068448777035030055815656235565433393951826630142857719544193753368801498603832255197127357316974490799277866754097887457258637925040479806140196740706440063397566791171325145114492124794210095166346620263630326405139345757855803282281889644921787175447900942215590700369044497391153513933774127197171863416274767166197924288688083207235306586219375145831113685723931675193451622813398169141423847785314370760427112379918447967722671795916083398257433500896137766515596550142198606403524133001999035225169588905505101267717819069131930889126439534611220435677229547754061893698227345457655983839422792993153939728237206557284782824989562752100369255629410868988849153929278446158595816725187442493965374686670973628443161898859399142289457351023953060852057768108697593632571309794031940297569863431652745036371567889734814281253307785786395221871196138082384452137813013728958488065296639406634725178385500156382998652470027125198293583303052348371299747026455367303556785335268915160953548594276371045999929023436709316327545945242331013566640397869908640576398987016210502379086916110409497097000831147853824424059074403783243578686459483807012786003976420953673245970109780233750050591697264864598062695774867692658416958461785295709067977563237981991175321070943188812828796766564919667112146452711931241693839883666043267576498435811065376631196517307856327061776336580598080528066956065599711333479213940841089216751830477795959217504976153915577102890004660554693184974531678475657060781979424505648651694898542210809450071236851938401818725844286893717071818998677900694093920931238935706639251020145065431765843036351524302783665193745953265033682681512403234365231601112509215741557996385237258644201658044269698473244688165185383811975026342287635065877974632170313759082115683409278230828816568642228642144818574679663528803746609819037817550020406338510866363061471978122955244005712014582158068396088375922459698053309159925999738068091136832829732926928374117803198085681245645402484995144367389158649599295359144606209427179631144273286015205991070466363612885411784218437063713310804634951259185469529211518237417571815383677937238522740469085858882487046361057507438996605637211490023163680411254850201886035070968868891792217051207274549263603308612657062740523114927125295374640611189440135087892183593602877300777893247338328340473755496232605096095820519418222462651295455950114673311936171810961779311290705385845053349473495377842108976685363034840225285110944790410419728287927054628484500435275644086934060068977728776718260216892745634786587795679330157596156658439891896811581465328868698578365384193513529149178227172755688996744250899976250953303671120798833397538609906805900057636999076232468261132782291655352483700667549620426692659514937369670750037087766846673276439188217259408958748094272387724548874192028792423394026953270021227207995991684504518274719831182130100740842504512152117989000484020401912013064801340588560283617556398356517833217861363933567786007554374780191522356340352869703055194983271751424984121046823848382204880264296852873040511699045827681710651714439846384794965658216635958231804662507557405342274470366150301034168532879474831453280978464403267302456586665442792174013202743315530437984428390721628210669689411364420702383020360978355579493719373966286429843789920294461166872887835997964170676982714820885696302364975207478155602532248304586773791331585911118717984299437818148598140830837697942612481372178286758479169008793556542921893847183111542159422611424569319518152147335261375890098432157645049408434253136538436310754947435944669109597489198478426580886640609105195949884840938095151165184674663330494493375666763078164035059363854049027830252260531610930075378002840550632614961160631700732841492980514393763052839336217541946610498644546995795474129847981990101858801283826534758552955575296888369906051830452724776366957692313535416853223881579569109939692372145769381534749785445188271203404896809398326538676927808593864535585026256084879966558400631317426440069179773980344725205780335000861489641272752382402792481991785610477083683752297986413991318725955181001316980273053394241530340670652412330050043010208370524917807083322455852401070880695135157176141943862221735174959206502224763659840205069770220263053080399107072717679502974994505716948190907373580721972977741938744816168392856701786971349020831076788386764503557615381339803779185278478872703515404244617270933271832839377593494486075810295889030984055942163378424031949254531592123664609926800079386046046242758973788304868899594169451949787061553396534281218531784490830672202189945994649885883006490851183913941862566971925258081743667211632253998127459746955934902193918031407882117220280743280265722137986228818794466194591229413185538348749849066680184866302080393951852934906784512031003861277160637585722068600025706229668015038052421567588004516774022868337175568548592510445297040567829312930927698266350537108450958058633555555816674921145380674933291205557037136446753778630773995668778886480807092464114974831589035180582193903674164586730711180491128301520795563324452355961823130122611245074416873585501426899217708046808678423569199445347405356256552308975839884992784609757695161183592190360585781403988386428223855791305858232079708350433689081028211971930380070336686007579514558812718398608429125202244532651236585669620470662560900083640731860612086587900572500427785116670682920832133649199108262553388117984855316325125369422962615947895560811656922525085349990201053645719016329070065004900113298869874385897784779689526445554301550085697181461851502162029836846281654652819060892087316967958949019088953137420121328033937152008374958803150486183094379693892331251882120122059366955753316258502269644575571255988562285491061691230201270472741990351595275135228357800741714346180935585721701873570644976719500618736528042286407862860472962735742621398379932296149973954704631888772368835669751877909935901665894848770545183966066939244209769084050458658420226571751590697514905633213977712401730282170326141245904045416719380533786744136686687138322967138933093862268069354214335017451057952560966796207015134070081209955049490556633401941421984033956752051238470510647240984628013673729429155036613476094009558753031847841075443710938590159178318816594949137752761890633632654936356286349701830007454581488179577486182085960489903732476903321852114844541799883195377675430706252504710465344017290257937646022307636129099985176291996397177979268268133901810158698481583395109506954921048596131888634151024184202062953539439134408134980392410177390997674465360984980662577118498303035467786529813213806882286780109704576139942372003661875938855637599513353997086030604998315919307691721546910669399786299615726538793011036124280058606824899128931278545585858175394432997688072895164352675240255292877467553600441189958985162828883895665268756467660846033905864473086069178752215149671587278108810299717432145038878337969040954624469302355880397982767077249781100242521746010777337229228076998702905948787894923015397528549780955768509397646326379082772748709201383531281882643966087552463001916357988313986330529911994222027192011254704446916873921668673083712741388155132960147370678473720965304739832129214894611448911461402114659030889472506704055187119486007303571918170320384298827354355396413782029587239479870067145322866468029849709164083069828079385461041926020299957939703261923061758245775059160931943179770669591061429489143802563197881732013956183803147637547387145670848994823040581074317945922357662026250717896526049244759001064261720288628793617286371827670311926425769257603789617390367523289930455026182927599410877466651583180050074138892529322767066361971306634072655515000820753212761226324715525568092705006898312970472815901793216423971246343939585143995563958466371427283408024559703173705607242419153449492939470004934185072922980764106131223452114234000752716468863509984634525689117483021553515892345299271091377094174206149071033388313327319048553877981178530536460379936260735573084927835677541188573662989901788471753737712536753960234230719478784655451810638199790801241328746575893271218626808814409632933475362579087963347209800548829593354899790999512157808024173518698132992947584743447585408521206088594490824205722592742151977142154688405538859841644000418533319175919261482089102847993915247518534691388582187154596624216629545575158002947752931824592382067430698193844834768979691242616625373852237011295313171182152783757901157401394301951028413776638004005143180419096507839029303955071974382583758628936378241191084065663041521661420200722297318516134169739197449435157028924665171294752644839307035038906013460658330605442124757545127294757031712794598108228614717640975648735145549951175431008536324631329765935807854346797996600756468380145444747777440399037908092032709971961203517372585310020399228173601403466109423138377292839924183580941484194680077324488421973017828107870600441640753948903023217071245967531065445787764302564993010343571534630516810386960957817191826419824883186530756121488186669285258060136068904574868675034645048609540820178824003107812625036990274657516882105109271239803249278801750447517470107236783618787178089022715302930387128037534241436766872097933614050755561466373176240638118513398068153516667326034168950146910430424709398320903786886598725436609882802152184194102066764202056700967433238379407559541400315794698958798422768551186720405138191206451379628457377141544959858629503261398489291876715433145865240329905906975051500026040929675608306740614401408349751200921973926279357858765635120490251400579824644167948679472509973624395859236910703676733634315403404129010253749478108103000071543912079231915370110025218783817268436311665913235864776502415300014594371274198764630244661655136334667586218120423055001471714301712518403698765757035783462135133741394899063737884855064952552224994396646648915878401144177096141343228207725145547626898550887199884020886319287722355499672730130931122083892483490177031852270059463161681924618045858233307458992996660775197426506741980077914585962560124833617324995453282636874827314071434208667557233660688324156039538741146751725948841399702575304296477043237553918333032988982201956234458474196548104012477552219809367614391754913064956120214681511976682061233552577369104941314352987889685231958564078465979819652334899871416764171264302234984521870975192620356907951309211385587504556974831540946538238561331065780000579231318873196983255993276433610982340430882411605636584838667742246020787459544859166987276565675860039479725057607761194326924253700335483453402495651814974341741548916778855472266969411518077718022694336439102259222768874069747518002407189164824272656252915079316896471201478051560359561255668595933168326773854400372520229330522440855339300419026136753155007706125659754322678581388539651462872966136402131479237554525817431115424306443305088528267124985025093856197642267515105013101238130537996825643783244226729846252623625087794256204298906245288947583318359296339815812568103542772918698201507524109603559442346215447840231502720958468207861793618065704384146813685412692586974363304144353879520612080572281906958852930060063788852544728218363656333544654042449743620135253388464299024753476342642218873647287058462306283680917657270445834087563502557704784632006650292503277793058311979318336658723993461679069465407356275026122405653113484617216440015953546587154113929655357567077252298314855063864102193590813993869967162475569370520344286301378723366679137989638890974114182112342123795774231916626814533264007721380629770169386811059642641854971847471663064738736687652837980325656139337559292745154119139951915426244973062822348367395152405567369391598049501868595938976074386690464965509604596258487856918091852080741230480467053232183233793764018989257557633227080370453753349054428249438241041471157961935636982260151486902475606993291177734998121677785468822867192967615896968600946942268518019582160206401010174806523557253609080927306560811959566696543951775332453902321180664531490244564421052689328279121035079108088804101636247633544137578296261358953138790972815904801893579978943440892387203438713284476807592876642799585083997652502666788869774888543172312293675412990717462586296873595558439308897314489506790967614514914960077583758693072954755685779846497272948004426815206052030954263537659294332670204223628305237190616356065371651210335872427720788847816371093843278878837495672645012875870581261131465158029624891435728747429975485096753022304851661587599542946553732969324345162357194911319203394665434235827969937785361755575089054473720006526352177990888648589047773537070103342483197599626624086370971258329408714031737360318780331820021251724342656166722210641193386368955240615991293672018440922626043875201546830078891064889445000663902929565541085761629266197712662045308235805296996021051421376532743060610954912911519611575038843509551020398729940445615219975342135383227507200923639387033392471428207216921070719155332064984718344996036473236247399307032897123795379990418201285430274925711489846105163601881291560194645362966957642651928366015078612381022595556977288085027196087435326584870852338394007924477392776433246500394015468976167305865388096343635643508250265617310062750947245506776448943348136911723222923489064221851484637333556500586006697982515410202182263923401841131301645509937355637296977547010894809922246961177775321810171970020335721544540523068549203769724173613285466916122865612860126927862197435194910573682736573837883289424511068364539447375196553474624485228481036139944196546892099602058548265778068187751547528467203080221312946595976824335163216046447810923805249198085276679753513777762243491858285206722575153728577102115436014108328185835145815041105718221250858162276617526445876257913872116352475160796845709228669958578101415788475755177608707471430282536491273133156804356248514225875323231150803288541863543348393526535981833806119071532631526309435192296853825526641670954484551931417321381790094229566126375426908787369615247359035654703588271368634272094788557764506858019595847412805589031026308141310511764418684538621520767925406768020077974414039094836960462567337632958563733252741848955570561179578712928247016786806995331637088403011567142890449282433109765610366603902367814772352040931969014804432650310129457914418501772853285477826038515299202130873982215457972593705829895116292605416722496290109629193783373203985226787024553918068562362768248115346237972730058128047196917448613695685231642006528483355087470990635508403536783792467807155190539156832515947403806337404351308716603629203324844069049425849228572909668639619604261878043180163648988140131354664160726084179522434729151190392473966379280531401426020448728188048467844490497807193282410421715871238158347613300428314726814681832175523769045309653103231546762573484631427036219798432918532256449106964741671301569667076223431853610908209164844836800836304093249997053710175364388762956812095528475863154306002407984149074991979658142687731568030912864158852178731480400833857892829791826756984223135780325403245688255176844699207536788131569249364560574912586771653018950539186007069361099043018498295597045256790383025565832643861384225531879268971737228722816171107909806944113168419848002575948599020346434416437604686413245547064692159943486772098432994183340309250372203286994762046327039772405280832234960782903403935243701064455251398496444582966225168367183689102727957872532854758869717149539552552158957607643888543066401305431801233531569468271977232775094834010603234168271982538068754849877528784543487451054498743334115566653707358481829808722109378304056765581060220020021365405283480611480132697083760624720580047550213742810036113029653614014700459912552964765963795316597982661603095974265433973861305939954764474896330450311550956489052498788427451882124915316188761144887677403209783482576415461339182340676715401878060782723786812613631487297768959090174558582111078181814037798859159870987445778974905446842081691839627682786213723413831458406463435042247430353558127439135999341005273582359301417157067972797637577052664310645462061197075624492670330062702242541838694658432922020590051754800282554622843104745258559185241898504425573463462343676858986858679920146991982608169497893480660077353585839616916292320397556389909643093999058015603995534301535293069828179287250163852402963505928180355602809960476858141097522091931718575861287219631277438519585297167455128004826191487749630977460312541047725749357886086293512505218212402104327256243201348119328799609639098254945955518869844567148687511130135168750679205605190208757535402929060590111725010476306394854022630125015569894032261792329282221578162402323667082639151817324317693031879150894483317286022591748868924378678434891128739990704347932146652683041240469094458112364160779070450825023485867435268435166823056586372967335595886671163696168774049171304500387102507570419936239000694769046304714635734253257056658008095152410418950856003044949625729513781535923405398724972322892664533406570802508281229311394731631136253342200640451446715597095332257545077682722497134652944261643069613279201529755714754644153443649270321778244688736832682965796972042641932870676215778235665974002242109550036484630767431108467554273014222461333246068686430112826286524918042009047575958408177286243655449258112583540651568654446787766790451903413622146860338315392821857837740490646838583485266392631731148641525420066155334911666518790122808912515773982902217807837696303560113762642518250239022238167453679103270453953542787164330536863489399725248690757453920457089701285803949271144132418467146463012500628053584252498276390090897880138199109947692495481975706583605374670769617182072955660176094330360869523571165204427546961048665661805975932465120099457851471734607180549788025706292522766192083781020405502359684820063975599493440571997220719260923550608979719137951565147072679198250147305139480090323457762087107751247421681975530217046802338006372176256295575084372868043523445593215711481456620260520467197292016614763149749864859328472828636994565805396393245516253905805549654049228645955512675382050049133839016411311413089511831948324111646687861780847517735866602487567644012197497924250808169606765383988018603254869410772190306247449739862626805919934461346592066848735284691921174062008144566457991943668719502559454403774993009402301381601858265330448963837087555732290224562894873525585524234791508067452024634726447587181228849930415274398547027098571993768335638810125756120690944961677144398726976249066680219847114491751226623719102025722789728345289122303959801081455828972375490981388181589775615286297993755801421830740880728676243631201227438114841978440227759461348074884061013951949421206456207951565040355387071091702292110560593985101703500727073645383491505856826958071959308476145817423545246919379889001122726259099586074419382151676619689378023810474676241799403540012244337524929136776516827364853743154555139500282968341275971507497931234215848512433870633120280928841174770115749820948685046260421361488757399599573031348109314675788297638742354694502090567481391328657283004111319411029940131895553593627958523323886767907305210056438301927803454329155742278264927983996306484550155538112010723236103550437294839184585966750145105449306209334383933675282882719377782987072631867089268268732652425481887084600616942785465497298527556770933854483581391159704372475368526668904508985855408501126317142842594946265444437675883749774301381450570151321892384772839197204363484027902705345264454561356258726460605436137926228664811991267401702288418714622168470061580600388991785200128877813570160855310854006995767744084865427226117590047276335532578932155901672076539217217942526241909175117644381257148488206295802904247615553882474544353373394197735292584159075485436129752619159444339901216408377994385020286253364660220969335267247985555471375618765380598787638253745137634877181200481089579353763006654385281412780701269848244688375534174831556948618041038401687808950786797878518234026164853850424109397482664855366434255511780175752196574000208783335339385348443491595694027808468252630887145220186702083624878326337550289945987874402475536001323723255967434056102335488229993363061170425984427608069954435337226348891913335832214619176079082596941725560023606386811925418326146606623163860858022486133832954012518025875273230501697205281251758535417528818586005795316873730866471327203242206211116338475251511811431709739716029193412673566339894606252710739874717321208931445051907849486465754001202391128329206001055544803630915214869702326703943137100022994893368827283584721633796934528268360145052795802049199303215451461172290372399633114395445629097412527622466228356664300853047557436278782510119269793906042003868977546786903786965471240274071785212917318317231412134802935413537065217160376712607195436856469133426788065989348506203488630019808167559770648091385254391853154050921868239608436120974565841685620362628707749081853742921698036568838073514587961130448568152651584020210949839927871550723429944353149303212815333170061456875944280383967047436750236494032316050167889745820654624679084053833138176550089106773868261538316538527165931785001164711707842431080596380013388850324680477864883184264034155371943142312173534471731516460291781203672943170641004408829253510126402759699508919791129559815805564867184294431474388217542917843604667523826322272669956383370309114667714694475768954939268297237871546318541815725119181584209870333311044735215156324274822431973100864323719733193266007669056272728100161208368388890315121264118974448470208293667170373358205398140804982721758262126544029324634493442277215592695834088198217878584838720701952643401940113729398294206135003768632463439281208760913644207333050050513936515808850881803966135598420569375457524265332921359849658059609616062360904518596669727538785214765292533439189136059802372641157797302479562070617917971674758034619459825705134151122252824981963155344982354337095287093820232182785167245246112239932579406762852045678039682274504734818792319686354458513213451265364918564122677183300171062971045640095525753490495130287637537454126711495314338787032864158168073419014978137089258810589373203043782800717382742043840724745837388313990645956397004188694576007229840372747600485798995200832882736058350497565064980791363760000371731882299190886083429259953321587989894817243815224859255999527374538629153881764199392913115102964937259407706855385157708295435662355308746499517899125540853128504822528321594918032581194865920104862063797920539612617749698036024855474827581421804998273544783924219981715076851730891846230734127957594616008123993311287548109810495823673923373954112514275700881860119741183435638741201404412116851258762255871101498535731360458116527901413133941379206805210482012364364478692890867679192927685785053689151359793094844090151732337959384964600844454830472878640371167094962968837812595229638558426831880290075918575627384848870291210587035372698562905681200458613347588657014993482041367864004256282692690927488563910677165930746370728643102967119478825559506442126893929773014330016284888241389913572322120817732835510843477253257898005289185046592049590084690183063023500433993093679057308865188950382692577323994330722907798706420934019262163548044357141884742537070153079089434482161907697049203712773469019415650545454720081770956094057464046288321649455707470950064840043239909828803482472157660937930353144852960635200257976974821099666038923170900020526251099493802790199097282790786154227333125985652814123453958547835624840959419873365708584916545419973700903070553644153496473680142441159046904993727927289007603912525783597199717349104321492220730655430737705685699522346903354498780413176053384574801805001859853233786151870383832505441148720045052893537118829054189398527715156757223614312131677582142252297584655603078268449173991865216875034713267098757925174551826720549586130669895251563983495102451224734600186047495473843891933286967995804134285842076091564744388036980020927029112298915411934318401515482958228762694207896671156476936375859952977163364607377760280689150237731147083636542792635067929418488029307036139280368381062361939710404967783527450460826989555743202879765682229934139561249607033916573795924138612089071523373294662334294998591767440942289107382610666417056028886241084097085009367620215206851142293909597529027057259810832825325052630034372900302574627335501539151526970708938173592371951753871058714528103148148766436563315249655672331110783165369599520770750431146608884098342323838847569275601222824534990049280953110234852927961475048757119392291715833337778768150695838801674478425718954863440621290946072882702479742659580788147357762630779406889204462381111270322366654146004215917278741608965155255437197147205707776935760404915046079861669206281381655214705508602054830162994575998364093617311440651495018943374907543452974815241149886602760724832703652193673172415571444039330047083799209903817731076514070396099031894382378504174792942879675658076991158508534738778383134276777976538130611895468288034140750600149158455377980239935679564553386481105412491636565519708247930642426534532830399127480879939071918784057754752169791439762811997369664128382284866308701872719156571762968771167023264659808043568983796653420706235749604182370560821976313724759431130847251796066029990820050645272908681934096220284422069608757987694938755390743193200473702480945185162599402202907043818597572613499033422091605273110178554851620276936071124461950292078551013887414490626517816239305443309065205482468039761715451869306025208105012697293964012680631073339933972674691954611526625821296839435355463811807356763514846661009913042949447563818918699873139420865801974610091193213099832883157016998997752300107917437643297854039650465305275596583070042158075734994369390070150954231411867655407861723532495554379083450831289771405129469154824907060283719435681852002649640588109921788152423805371435487477784154691223430218226908633546159452786427829038384525591480585693532220556683082578565443438675470454253969846427445592351383043041877727382455785657183588097492751522144996505007166829387140943357669171336262674224840042283422314146406444490342798856128358306928733712296537996852535023604712306123597652787477361562573998215221579565759760194478050923836752037418649634195502211548154310627029279763232656247108968154642535026329242937425527037776377428927137657620378721105867089688546770290837843196002291335514957759246448438953335415478867341425239150103054189903798501379731650643344058639157849549722177855649423189719583648497295584102597027158172466056301058844657611059896858504641303022767979934509681372758339653138027088976073725120600780389843965439008855681110247450984675863987483722383741133028875788472455081309936000471896387137873190238347473393548457879504869037360143791653588048002066396109643473169536811564660290086203589342768368640260382404634642636613541999482895661012187924635419493918730506458570945140856079265849608773577451267695967014147320700930310640744030597443098841996122217077078175914783659020124264133650306870881069507424074067840282706834898080504813834443111543164787682287627508347810457168780017950368738728333425601649356220747278285689331091251891269722529808258513317069653569602157817589102398415660581794802897431915740530675451740713270624866995570597526581190663234484639304991316809585335149516944829753305348321944937706103729695667203796926455783816074003917137702480698284210525931466707923252433862973227086366370252523387086334584733150547568920322757616545065006021466197585356287295922291986500455555353279091889926521725177942926383815958450229442538293890994882781406897307759509167169920119245548891987675129170580603069123539824674218167381910304215278752793554537975025215933546046399716142772416792358349024454300505057381280747494782771777801926321079442627409412498909802573615418874596277663115861122392148084421739276602725196479145163697982071732139307772027828584396767686881605538312783755458865421019737106369264209312274186537120998767992900363216946386787365159178142589151016953818522167077307104941986813928262230596774649952213955232666055158623211829549621025724014448764844545797265618781982699303804148689052089538750822339793007347794959398487848421269701114675718457191602789406215302982503365429655131191379784917841603792637011252227128761770516156385946992187751048029257749404641483975479294901433193649233753402319664998643184326186301604411866234503695252876740213046484909220564037138940117514340695037322804382772782059665394573808866747108769939781083756088717981622103662932319150507069898818837788222326132235568619904959876800997759998825001836645666404585278846492534550557950888989494369053202898743782330343552088345234164143022950850300672604991732262587515747436728281760476002512709035259030272010047418745694763306295105432083925876578263599975284742640766804962235636632346944544421453438337657572488041559670506213375711581968904068574310758203527284373430702930160199707163587724811728071934216699003383420801691045237763039971864620964661935246752619935439621692440315585668086936380567515606432618855192553566707038012310157172363901969124065169455741390545960236676087725935772266550669835692406601188967448214026997237170157035351420965891053376212289917582525875978214809643457694799899266376622019997812557141781421448700928261277967519109759480220052584662748718363415525405868281827971593289419986137802997430627981370624645273669914532826977897136569994590152644634951359089438638701324525762342020506690339732564619698557008021874130215478725592518625248688933871814859282257878291465986231572734422047695892180254611660658152432811234248907041864079697654692620370379784396183118994486239408683389388256815885677428937803949927425328421940562817667398775607816052132409806202031710995266526409493544247248082273060962276605926975113619598519773881812187270786505333852106262522135896882418113946552431607763247756339491964882096282849877702534701709646563340246002718881067327810204677248907195535535262577555831855914940006070413833717332624872655826223844171591979587328312928287735025968943658103282436292101657395991924555036886811500596617833267738936534251343591287951104346718305827059784300410413533297132445322993290551115624970743557515328903995536892438548152745326574657387606193416897974189713225048411327091933697768885352606222471441740791552309949587797748260198008890555355550864085269667548127278964944422648887129766744572382207531061250590296342810145525748244949593794933751741349677336633089626441417116783822469403424174331162529087302144225375453579154214446215238526487758991376559078616952083953902944415051335412530684438179441935032419298409777260945767690984660449900134617082360408681548402042210175669874998923489691054492585063200731792827991931424570872553358661149453475395771198281393113130038635784154322681096976005761417580480279447367752728309085207822415368316883963302283117425848631783730145480487255360557869187977848724210286317734705135447653576282554479644707242660850260063475779355938978685484435684596128641957755439149533180750670222377438916060608505391119612786604211072806792035246137318591577874872612500594516080136019676988419193596798963413970662245391448558171959234037805751805228630116025877289969889866388365316006039088071999549229503456476867053411141150480820731243562485820981007068602318693097131355078288980390723249502755591629820497898525157602073518150632221910668100042135511721560712075245893817774222674542372132938221224830747450318835436840856168487789057564609657354102920324444420068643024594803353455270720689131623552126529776093333876517167898395173107003629815514363184645957015681187656735950280498144168447243744986212421405198639548873896559415978508411030714590439713762708292398004232168677219086886784580355575207318356063422606561007300830701666565294283149566776041180834661272434162856844849968505772256280976601611004728545735052108360746814449774610742044059698377477007833511314657710080852003828750562383020430367206445970669714960544541448141324564663982807219650316209475365919201656094671825015980102181666124067654458012867934205915347158485801102472712049060610927579955262985495440592910030398103738075601848473703622158152158828547294389575490760767476996698562018288959744755872085221581943950010910547392409440399300379033913726230137246608431883438662280159852541313247889720819560431079151546647426905745991581334639046766430201415633559278086192264118039836995171012343180960942762579152182621323398187606898248513289485465952644053168208801320553435563946756516412700485248131736863628369879299649298558341167081376718470828795831179602776539369108508626238955683540165417464375035114086319162808015581108693051460182473789726657317124119015743413246300665506296687289447489121292875974987381212952147731388884481689010088097132365371870899378830047965228274223791773326043991764221204377420744564363749103404145526461155819519674110705960179338791283819888606070970621373134311234299535122516397669189277144770082964921674880478249926795681846355323386121005326319704588230923136639668637421558250111613912793796154169807904820521341690246277220326410882597771571470265200867660694306509495456963506090283795176873567713034408064921424215914220524290270041136758404704713512030732561016031084978462879129174303432155935376464249633365282417416117164198433834604320986170378411657383660243482044986662886662691257866404312645959245167246399329490480940127653505184737220707104350830265647829796098651611313739593594225780451346636143290560726723880519544857170613138973670646352135009072529306003372992966149957565677936665785518700279800812580972230352725751797995912913653438620074052058243746418928780934212867042518421506002038246463000425593098817660633717154011713322756937923952244124382332062643343120969638426908411886927402321009339751302418685259831559031129126350289493038280327952856379460256894173316261294072552672275870494638350337105279701988676982787718993715583188693870745138356728577842000345396467411386827605699626016643574728202426249802355970752069192044394623498837925863849975837669422184218103881459178496300171190795311822824547013052010689212566354497434591277532337729516449240158314711646394033192573907208851861620073178575583092718932805142911491529128318560330067803737388923317996368463100750945864150653133352357656996371449077168213427561538531428637808376678025617485526977414784269332145019784231913961494681396672506813556752895331240524334544531026238505445342594930734111546171795334897148093017892762374060355388006557301651075129558174951321584632083791468701957090261103050031559610820559890806673217261718871592468627191008898608287775797039282759377698864280001848779663944090725258748152711080045284425301323925488234512105712967057657974333119534984958190353421608498188170650850387258403372055324698719611168457803227041459468906843479600480626579227152763690625028214882370431999579674685443566785255455569138604109870810547929969791400455222305918270395960259005504392213351075268244427314460678309976572000305259510049438967240412466373677992445645161273511894558784084964951208419017260092230846707985366915871192275535999889160616406084910884038857775192991101559926532933249085063865553450482455017066021947367832799966223839336229812250526990505950403554720925537519311069298749212034839573071053493783213605458758496073278029082988635797332365728435064997842471662666903821270619929234274915524702913469250205679169556393390615902383353781236652441948575927499187642554550443674638111455100498151220442216383273749643131778563952158591924313284643926555507032393268598892237856106694107129385956224211584481547036330227406393048172443395925455595867683697119099083567343785568893263822104820536227719539697985633864367377827758755163642959677711456263845153573570003290373214023767731246338606321166227798257461544072744218217617546203733318551046023958203699483403725863317547248397468438112979752278056105470438174946418294758227094047103850293148272784973842490586537922552645955155383179063665867729593478183208086018222524260518630667178649287599341494651019779480110579475088150134110034930120192068152481873270212738538682747189157261597080358858213710565625950008617272288400107728163153672260903445314817865621946954829980968014694144685892930007112648417642164526851176498076564196167737431919969157589668873634642948581198731486776934446117404438296128042088841098132493364120631884059566531002630404275712698307892348765703958131801254624871904530518237806829399292599932504427908961334611833154581348547600317077797214135195992290333282239589485095313205132521296773211087299871663185015343961218686710038443592835381347099282014961755493285660904306030766966199427090894177784382781124746444649946477597521039840918307510107874503724284421647067849779265486643840438513230114011963950830044221129614256959086789011313917169429758260348533342134900611059117891305454192195339978589488471154551622417284602094649778142024566092510230308729806235632374390658941201752039740012523748824013355862271600718646530641021405012525856241905516932414957549457761104234818233761962785508892210992599417172023617806375586353357735079193124034132360492736812861665940531681482705071080269027207810566467656328754298705854813926963778188075228822122673472228643410971185124747233245621134614253239494324922091588799646956479827081352967787605047683603053261812734491415690964573135227218678576047509978839032612296129018779323772696091606430372125947730622063187383519560192203866469555261097224066712734747325394473384518297961003800701565706679473107387852431034185319926463234175390851785326788411275530707862331291686189631385333582808932317850442093780152029742642308326108979329358448109932064019704024547400900164932748476560915142331813173658517353169416203968530616127569572955782338688964662889325822208582307575833068496957691329548559322355528583202429429355968283350334534795947215913225302694388955110891395603770360652348760652656012413591389238232436898466994973379924114503474648161207379983999003365308790130522636866354781565575788141134944373191760667527827869485579800720256515041873041594708924929769312042570663417696470259001123958897854276416627578286034667404415349468062256073970123691228362182568635458223785347880534372260163964213490557531862922189589328152799991419180864854539580134403613070461963772946776250025311270687867837872212669275008162214688848595416610809416407618871422591437499433540113136700697457929866773012792347623172378601232527757571462702853059072907321804401319506625627480547855170985850246380233490184307827458772225048230545769506183804941570109995369112994261209551506730839182725185956452538834232685374235857148348039285992973872177545105923363371170536634986093802155852444037755045579660441961375299589417455731205558687769645440634621763230823389002743938674760550422409143971528982612306417955567484148990150097265613606920426022421839410163639564033645513084002747023099236827975915695663044417978165708302862092985541266612617438676337417523975006243440459360047850648563507436899513720730154164014426990368140393156018524264828125729127391163534301083484622239617212536466617599154580865273103091451218593642050699651994890042061374777479231803281155665156640781416358240221909533491165426752603925744325286616770430185020168902332649689906945368300489854197199667247341511458132204081486697797573687640860236591938461447052026464188350077700812092616510973357113638833578927622997738729561606453657612122653909378063474484612144494973402810077714500431096049109907362120095968649779535281525510554372332042277964173219793732186779082886122690505211399437966242220467063128378633406936297838453376097786968650722255181226483755532112896665302840376485294649935375725522078069952586276358718747945381768517610021782500119285557314441426156800560718190059104612539221036162855147433908540798383803801810415780681493011628016503111783211544598817301016466147738561598741231027301713077554432817649455386413511925104625872108377286669466177196463336088555713088066564364306400105142729058777691720378811789359116477715592526163707608497668540752405966574762364296427752963242710735598601566456092339988639813865334616325270890228519161633064294355497408129547801821979572561498469553815871806163036823340944028045682763400997653554747321668756760745445874314611382744500553236544877809118728502538035575665410768309500837986634946333596325903567090645740643868226279912576624415670804096686304607642567759321415604297522473725368335726195285512320926323060612977684135829254992535231947460956758500533322934838015708881996059141046597656448030508911028651819067948602727357825840811887724156319000318380185282073933535053883674927759662801570047730696492829164742720315480170823927576400733813960859736570644188747399228797311217285282897890813589123171463660185580445055984113150096210700457172577544649100861270995820117190359800032490786972640082636323658901710053271709820569173963485064476323167700799888996954038732515575759340782409095366606830317453754493188588931446537450172082355137519437718310817594869803539941570104160443406244592300245785553407768779147642694879359608644497959936197308685412673843177880447290252054871188658066959560991417956169189031639335923959428690578802131588697942182888542777556021518171015257802065025789718339009970461827274106072624039887582374241998099153081903888580710158846880216806703901379071658587153011155057683076295292837970080391406741274610140227024424762598438245703476102562698497553125497059252082518456183463818632660242860687406255679847985015556456355059419236432118547805841528620816859446499883587498804041139767411296805365803506251097721870873257663848075709187535155246331561577282449804295529885579495583928887489257708253736043436547502050402556969564329727101695773382348886671237994740781961959619851407302294257128044242595793442910636755007731266452220296338316790070683157838970956459586838171060652138328486252176243954270358635545613764496469103584848149667522434954876896710297051191826202156064391001911882879834506531194969383664618308364225491259153697369920563864318531135861773302301919025701884650745433132518569213651529553035595118275495524259155907561153862825823512757024363431884342962871874585123509399986289077613880473934194770358307312101351760427540163086477505469312467698158971440975990634052773367067717676281332396520724980974569753347087246959384976377607249312181051427238538824097803377867732425120749849680237185059359464518466925246364809073961998497735977204200095445997321338186142186091274571124566885390975516853727644154641022644958863969473828225682359510571129174297831484502067215160483161789335865196533633246352113706373634967923197984290013303768812695586389654133744777874745836635395939788084166717310615154172340127538427838580502500086269460477687799222732701741284337443200653700087342893878457757292013889748669618017694662116563683412105859365436695405248751871538891515457744649621250967885159135636129160739603882624089603793664070581834618690830892840307537676478861921880349002678269557427543610993413383081234000595523284097647520647289193297206257374054301958148823909907506500676132653106673194753818760244691599549118258300473326423894760431613138039966931953493578598236694176870714649634574855262499260204069899487099610927153911329508612372936486742894912865544773688451226403749551317949238278606537813060857284074154541573799869916035103192354560481257389818541889284514235291226063886352246177118390849042622581153944789549283937424145745481085930767968573687289219574435498296755960907545237094223180338344338617750825018291189683827073898546316957022887752725058747040563507316565242068126157378988031668970527277114438235044692233470213108971140526931363816303095206779619172374367463100133841646037400778883124664762046828298330586786621417718644555377113292639580485722134951080004261268804653273513399622582995483947395497458593665481775762368830464552408925563127742304640311092747428582433048978492181418346915108266814426428792352936722671117616366228498034289532780866483112569808289652506312423073510253775069457967972795541474928165962276061997253690111333417840119746568162334517728356511737152135878192215743235817676995980407671615269300250796176887704506230362720018625309939377155302160000868877529268078168599666713642685021977471988102833669766819151733370632215427211542334590625260800979349362624220042151428506265883295673621489134386620768327748542224170539506105648321753315373777601902530504853925492431073784071613878048085066209460526652105282404747489928425965595293462371317773904168885685362736356140817169549765540689381119659426834678804180354642875102184931277329301895726839371153994250782759619905039035964238122486023076632213988404178141003588455065022147610970343679867894831882125780916973888817584888554532817310711001091181278602897631951974339219986924452808482566009143676068977220688950173786882435739395570086066641372208345825273096043267626156572505841745573465901696808815393947055035373917303054202419476671051052333666272719519933567553865402704249517946285413731097147541792981023999682029348907547158114532541025791360314610507398398977139361063951258037969213462930105593777388553532139374800693618942571798911302032304614092222879732396684987250861412787363052326056933928331975523151146273763344848850710479891067182227799973378515430967880782040645737312713122156934110026012051622821663082329671635291113768724484149458796770440297109899812126924625777863135958470585776032936808748171598677178724048969275555833278507820696890616152639269498828871328462463956102979795955981556622914011011142890202298248996097518057106766204391349261386911572916412774697559865865617178003956615613376409081314587632544539932268807251068230428826877692787714310137593906796085783473124252346068360398378948745062680162701983010340088936932330724470354751919141882945648680298903993161286397577550908984145656535685618323755696867893680352257104337137613064689832443949564208191856094316874749390374459300660728325695484993887427340757202729059819329070107006817683073457088858772953168072759757631387487322201396012710807672142299675643151074623746411441619595551771599617953399514887597575183900583466485608334804944498708109563039749635600901049269960916548600314215008005997698293787175336527227651825632340938364761794684540399518173002691513379289414521309024122663672684745838182502057058238207413797335923497981561364552649427195714782127284782013520160785606836596111019581320976158960371255700791696386315041833607871500180911349490182208297610047149381333703743500571203785045784058774262855841179149904903574109143659580010333834945857114942227645064561363319825487050183250202460347207632877562147918223022446561137413696875706753647805573863823585449993334415635258078241272573722446199891978251745516822937986502496640557480508247132585722426502989693075547624384596929880562383581132057507108423380670429451512238999069504675752801333907677973605754803138543084564135652666343547594904821453839702212476287229271704445810986599598363864095962948673427610135414742889124048545057239159941007971774436282050209468707407261908222253524422341778711657046419944270247636971818724898525089143679755732060372515955187079476726169402664929233597808835931662827379121455748600505298569537801276161373883964122309861788704202928047606548113708229538148957934355219055881175692528574011448020908817509120309749586924911881593788748443614830802439990687754735937437766348359688282923944776419306961737013450676706002612706520884216270937027049863853697876594264335795564203303509882659840484195229456625083627627599362158095752793090438117366919138574955641747836696330188180719262265439996099231483337851310197414600350268727966213521806926888921862243875869279226140917688460553324120188955269542563057895431837481144971150534808710123140594662128965867827517638093676781216685579630342150553172315675413008542596842566207866169384948126402325896006022066192535783606689184738442608707624553676292927235668523556824414558069621069005345116607594181860879794870933777393516951353348263150354441603571324593782374441553133246542088233224189950914151677550902370909144889599953756821512433714527043187613381581986207104465867267623583929685868184582383585265416024807572808086541590650667205174432690527597236035149927239666817429779555313314755282373515059060313204560284503455798061080020544336523026230486039257470741122615838510417320433630123699350903185101309196347066808066200788440581365079491413187230052242008114044284414320962235662593194112427865641413020655074013179977413024836089123943374988726555667358783869427635916250413943962890996448517708834459576852449026373822992605284613727052941004519222701849457518941950451211215278493354663489241038235833806830697500219553328742161325426619965415530741699931996670612023324333474214324243661513098546968401345711583724628900663783646196999078724108558763683555124024754977582604618351895710689845311930732233996624305000746508066949238001027636547771921306861454019556444370164020478644892079989825238045568911011683369561587376333215034317026494017562549663971373872380694616651539689084852402706332446176703585130904163468714840190690619679475964326117540921516400784273718218665604433535527589451559587565125831163009148560656244306668051283896024437814297821961711425524940122779977156496435157121846970595155361145572975845225893324326633882674745219009182473349261427346543770991639847322898076251967743989160930198103464350770008175691441059568206489877298420556734597744769388962489424282971468626304078954693789394503389448707947035714909870448750678793143068501150148527767581476652776426087986406254808195722490348502826216715854230941454450530475229785193577490648091833914361870343914998686295374642448032985021861550342338871570604211739703991222328364816262169433023037210606593875756895197302877916706134857575480667337114066894692108747195971792023158662642349870241262323090420018346304003717312936803307527941257594003486094590433700394068331928378218497948335691334991345445407938656207843872748128631775387988290540360697830446723280438974562473087466905632635302491913433388819063975422525863813984223734148063403699446060539198855677799504819785924049296447572718162193580758294267438289830629620267120239242507517747922268047564500527005040738194531534956714125555394906293890790865289347355637453946295709566653540350504029458090977013933579853313999324440559989767701539375578289809107301290968335444265533834815177345180796793026398147128983185069956210128572279190895907621304795975531197463177248325600374452924442984115333222307052755209010685637831314635247030962112282149359058688171390621834324678288690073277295791786700337525077849393332523873591723635504641274904428557697799212467720909640875293652175980981304601466379590944973308802306990429604955135646190980948754706571250024364688240767376877614525182228300950889862970361938927776121911607699965278258160250388284053079726612340562350430026626714121206149477478352365804712493677319065541812776524421904234621495178494298378172415748595592313328515560883436563333290889984278411857601255589973105166644869280193113400085523586369350072287199218132445586283885489169201830379757711155150644477716924065838866707783200833567820547756349878601248275023872008008972452755178666872361548549667170424676385860248361763727977652855547592057272284637975264550979218165672223109569867315980745190976050514040402563774956724302753232067518557044824842895107047968242572228914895039959644688257758752372436209814087729971611832039608974500903955399804003234395488337500562371533352291497377558320404012518781069746241613491158751560841739996981407085101469431270787145889184893625919764355921481863055847960225840828589454949867448558937129785589613161854046100390884685596556465419414377706013547492453600565492728412435422739406085023307917974386261615799859988181757021657330526567585248554979591428137233767839971374334853057566898668193739378434587542430898455174583645101983569807227076320040979059771133549270813826902173219426371983446352657775446245867279277140954848263552277992608199403275365827805359712125017539331455725091726118475461696846990986722027234771286939695004263079783390002201477870423486394231499572654290017062912677252262242546723275780669558643297369266597227162211243417573169114831448172193243045188865556986136550224352858844000643925931262179948877015840086761914731943368193877020574756704122439457421387511927090478576734931529862921902992487159038837399528436805007999206275199014875303484878061759409409689509015928232545996026516560586824467107622581866351286083856106129065113466623479209281571787369887414985160804441602216904343708910950969885544064712025490675130056070083715003552988942640379728911948683691834471423014473627973388276385653778476220558096581703974216012701418240036296883727095989388006945284403980934795106987036003300933196311635586013618146760629670744386981356922374193183557568176942389912549382635056908045176963148143244813968185436273794568465888110407684618570454069449194123526343109523708694929883208403854175209880045043705094313803645285179854210586689295310231227693581521895875068086344409421722395789608237579340959243176315435813518137365003332488753815603552828700853392767104748022852083329939354866430842536667637311383649011846287080089637826243081247997463165991050892530251866383494953414619565665393480247000864599650517061374536746601253863601227333760662463391784283563284356563708704679572055713042998317241658900841408253729225231807309974015874053724482042081323363076996009873320764982610067581388513653185239129200474681929166874874841807176539449405274090079034892447130668469591195544351481924173481131028964110373495081616448931958477382220085167739926821345306966646633285806987335303484767702324338868968121702565247636879847912426209357880728014769652696705460825814217601277485429305469032175587506166537740786214624582993811242251729425566787342994269070036877111786353858996814432215269241699419371656602181617543877107123130766207171793263136602724347343871799495939159415335131282161114025319046381266354070125415643909383060193147098037161244758570577104326322593899263850555544566881584039147602866913815116759603312106251346751785920235031193771831203904726479455066165981490992268724490030896547084928902567001877563941017973378913276868542283191617674780615299880818584309445859497172408931757448650215215515672107237537008502572903112642438066624566952426563327222788506381023643330785774164779965215531347471004753958373485965137732363797743215093546403126968652110710271430006373798742550257893330851775416228264206353748410486421848663287611939353025922642920074099055344302066933500130807460133771663169813794736723448527782512993095455567565561398609590584590079561881793694750018765136190685744768192361258819940683415349664283596200459757691714994331790158125793303534317202023842196378827579203245696940975063419494224814421428946769371904815646809983937163394207087468147658635666388824740949542208455476569316839984628412469867567906528347873937257841135666407780653929846124706853839468618153435665335291512028305404537650829902835692746610493463331476823901115172323411827734239725465881664593853469002715511720565238358701339260025346111703568056940677827850285736715888462318502180804691412276244608517145498154829703445754181271825655637955241824097391711893125733482802116645156776038876952724300802653969750915754372689431669121864728567735203278876928380702861278849708062541541179248697224519669893944878920161285292714242423284064021742185107416507283850649677045458032648190042224163020636222470761909632817221262033116510142420373890363614002337817772390654610091899046749496598245072807030205493507125114909201963407768725651345008007107548670983139368545557127921189658471618359718405432564154875608036297608489719658267837583801087616117008611095365874395640270640679896549876699927967419759130260444247622538739520207070865469074303752112542753335914982731415771492021520533335576694696215851481528552524858889504704080941677427109669205246359400455021278336688597618946160638110912992584317485774198126892093121854382095199894875331086866165702146197884220117462360989533008152660631192374057982429911437034715932313084802130470906266110439863764583022893638924548723172706808008471937318658672986905573717471795743477186128231551483204803188941386162922594434994375274582206363100616339450522221192148612221699397751091124664075216516882662815745783483735486960697897679072409055697872078286776560742503826159320882916827971620692083750474995419161178856091397584623493022569018986617259309217149741435769994912741232578050184622932814025648741738174921503820105882126599146636080020644752733288490079514982752921344164567677802449925469495270610342280497464915298301983610446591749722412826009814982611176333586599249006030365610021857305606086760847334459799526838145889242445184414703338188361048921381887303594234036980299732788619797533130267518271560207229036373373785160750482899645185824408887278059684504666066165770580234779542695304184460346088828359734782548691169227304347010542919905330934229707446901014062742813111655964406190430817458907086439836434754635453282501537183232553677651827642878408192886923607920739278023860527284145414999978806211825972189636783982815623924136309759657864303365669092929433499738146994735560571475271270157050242524435780327607985282853990041352239998823699873781552467965419309922794608891982358064187464982737703951050990968320075802664187426638954735609727215397581688134920062727218693114980179279731307848347064544013201052771290070818805017001257552899209448172078676763459001354048683978846891602789481630080212979674897164671802256234222956010398488450548481265586347796061569640115349984546909866753884016427965163698457299949258161682429400016520388543622302520167376771840662061931624705344489586096134113561815889186878010536570036659965916061717339942179174299689753762047789844150560452377654228845452181335710354815558397873875545610956365876866348280498452041520176888603417477609516635650477055097316668409426189620022926822982027852468469088461525350626632292811913452627412868257022901166577026661200141519712465378628809984675863381807075199833996877685928599920568386428714193387478533800360123734219392653314627147538372314888354209544103344607468470177918823100216097199013225511811630886339507979206655460699899286055735844115923267468011796778770105202042236328900161415332368417604399189208074293384541082759347110273328291267920518904990251976615780373414399852186627524095911639973757905665837373690207670282164403617433812049072497786888130848231363915473640822655163176872371509916661147226401119889319386290039706988299037917263886191021964478297950360362180224516745651724974331986524491512162086544911853568387646229029210743522931295690448652492516152600004973831821582773419694532619727379605389680369495735559882660081216614301960267277400670411374422416056523537153806508119687228412709949516907830160812936387532766576314911909663559313094187635044887206333499197261818197071552128885025438828408680815383839921248980852006262162959084702493475510488229070621698602903554398953760978828702814533589024233944456763489170244075721236724975166031267081399252161182156072309556814545878658256035266652048338435957814299594300160397906506171485291239608086993487997471847470982394415056725947559423535746487142095378891614483939845134473181002142333785568548417491668597751691995553903007287926140354726606304535566129812031736650426122823691808494309897676969399377306981317688164723146218679496126240556899968630703825608302771350195533441662357118133920456531630342050249636693159217957435208920199108385720912795505597258299042790694110769281302670744171247826702383692476933165816295687182623892202157971401938085977617907667117459797973575333577224617453780251361689792892980534939517661168479205198618571502004539546183638738363986387696864476949884169611445859064260695611022857463998684431657200008912345132445591635663479734785003051587043926030671779800018968481281691969369295356028381333473536319505851830715620416374589472794587970261611136437976497596299371034551244443322199356272492436212838605289785276928095585733811197815897546022656939946911299461378258114545469456463360832476501866577904612543779789771267198635192574954836369918482792043953503882659999835406006037827762307526145202953943436914988156923155092090033314490126930939285845347368593714119617981602265279061083426380871266402246227875952298440466935402935367850952893065261070453596161250752052442911302793575363341548475989998840322569745296137415663541349973766875138354048058525381153700533585276861135393492338050539443539404064592960234850851056026730970489640592835964390071346526974178197076874993104163138329971580954967245732092379509516861582396283804703284659477513712353382183295789343817919634877607618184716409483161667831726206439433301895235406641173903811087976219983242512783634829850647528044429367336246966848110713494688475319464290949486324983079608843726805974277894205082634857218672213811865639631643940559541328612657850896158365310974724178182075545668778520470068852723295711158886174217055106249619209620869765759110036652675635902635849686401826477565945073256782890747062336193222813347870075360055910759481674871605459157273083041371088672583331514149029165823261774957089743586598367852781239944907855029748316923641036873002649617596936715552463693863377048476123151681267640872789038023268954667277841669864623767305338525697697355323397154793957349860322801104550538242864501070115930191209915412326068243646226180232028859851976836111470641975280596499116636480949250159250018335539303933905173138032554049155108899868992097899806347554534779273328804217850292273188923260871470404561640096391698726579450180487971961372688069786596938776101420978579083854592957544993055309931667291238830657258299040275871628968581141489867815179740481919252802646354585387686165443636288420189985273400689327388045447356414855503183504600572205105578646371015138975965225267956595432899180260378853446599891582293474800993895447405169010810678399680977364481162561860649908906687749119875200309636044051802719169349941235576172108723165292684752839883803028507697861669012910137667301381813628910928716507141638049877800400213142021158729836277470744022099009175683444078811028081732344735697762988413065256436584854192479836001697969491584991710544057323881757662114319542607342374858153107324638423999390341421693841521743575079500917770501171013458997840282647963669353523070664153963784468003674501853712570566940138895673913877319841026375335409086638835285372638532889543543413034677373562194740747343765228499572287053522034691506126505439884669867646744010700415634756826035805857097716421848214639489461132797922672180116012524347560681094120007028924966279188348436091829226463109982884219174296642776268303344802200175819937955964260306015772018390254148003669363447772477559012173151632584978538991873793805632803745360840223642985656739971162042867149646882278479024544247447319810459039220502228247456527986000413625819520793879946933718677182683862389344229927553908484298631337408881286398410816165227593561284834976655412107895299383318340663575136004397920569238203178125365960632133720550689207464181643759685772467686087013909098961537869448684430813846318821485219736384442293316250341513057473323773866556652720972933918506953620306441156905413541082697407058206120056062291202429661676040113375943025040580578196377610926764832162326426755087985014455114457205623479721871178543966810703563296579528599570335830163087640826036563125512875899906046595679886774342784380716957948630436930439012268105194503190465382867072658389688207890377657395847937726154137576493262723751812083790677793551973324694427786070148244908317534579669559000563358746139331652102131125235887368726127412129677287322775239894106956668328952136864449745050933306531943193118421434613468601131226878170335472617673060798640175924462502918321470744174078040563428559548302531725465917625797116512620158127725897011345756825309248115295546521608683062990268126686047890047752800205126111487870978988387023463842882250789668818422240631659339219960481552528828192822534774176195556373366621371264544938302644862725256035241867059485447151684079794632639013709806227472830748079659792430339135543214682072069958077506932729585065054801680318280320722521753636663835842473541111059928694404224766646998232492949021932770738902914281971412304771531388905863940919503061461541383749027293435759379706596946977797808449193369156431158649727277690401452899445721223140899336730362936166288589225314459463470920282051593303387158705355332485996735954975595866889203294705972361754093129862089874211950925790390625286168793302318073635653993338539147653432025732678945146485646338719184710193641115394159231422337187391651615008499572758882534316419114560219160442064402029223685918994043746030530833579999651704335649340483707314966987317605565459856661984400851113525601513547102504010213518703911228234837710238775546126928562580294228948580989694147109669085669254816757923353334577322023915657953234524245996343322996657731918292479307493775384004329513658744844125356052757932180914024316488513583511075987085273642703257175622526190259809541164384101498345414270753185281533009555394038841384702100499477445645389711308092688039607417853643853401903805749677020021851680414792572059838278110678394533667732294398469217123130338301657400442806493620358117193143681105558693613526955613511067053772050776201756723815457944574674127041182102788565973478741973115576467852625296037785454493637174529079457558618580219567188318302247359374399771336442276471406670585703057565521138153583834183091458560421646027328663004773390929899692755758226240798361954505196618218586190989705156519632695245453806026032171169331469591880087392951751008307255410585338835592777400230183228758629141131422433461176263310648031357959140535795335432603574266804891400066029668863264105514016153461392697054958083682043602555600357058453812491693288034967124709130494804196385087697847899595873249936631589309202208011584639555576199649181984219784582710996686567950886039690256449942553426241719247473087746867589686550571749275011017601227288144952441331702575333673366783001903212775833535848449700375946321275489914256292946898988021313060444483191238521361351566705179887116712428667610950067171914413662304562757258821667788391425421672468178069013480552101667011003589560185201972814376541765878024922182052806684559127960708041559621081538121842545564219704503465398883533500644955486450532356569725501894326865156846322260509036223822950033512486024315944248972267456917566987102784515511471908067705773169628093934535788438024565959258906887971658259063221197016744476341453840962219712384774065030214067128883039421781510235711314404805184006447651668261204796136357274823181016855869201466989398077352055219026256893157926035179739469094687061733612313327011287521151859366183450485881494552165535193032038614358308640642921733116526607780418514940543569204078267474327803956069256143867803043328178396703391333371439157954556437692210772197761030070780126694609702789366470909713909448801169817551387149925316158447703251719322245481538747880743312936405857081157107605089482195464581847993247855996779948751341749537676626881611381405424175263171211211277034304086351782138533115472073580077616819051664495985944062185745469275348414616315965441218928565580969744162902158910793099905128746057983963632629107892374211794634666445424260682136398392595703800526945114225599606863942458790443379108111981990980900474069190328579628290912991143266126609960131952582159935093744749169025522224350861461023367667796710407689019437312960606364790978267078456346269155921908411339834839272530586994114790129467379723926896366676960549315844884074410459619533608839359789067946820305803388570674023599465326192671615576077944476668129474586321879657051234555887749432960246553573012512897173437643835692719570675710342577772375417322295165973129554434510760807832427425186677515428305533649854667204424212767143108615947611955196934295875488521540986186351590039611836804822982749384925060860903629524744818228609931419150261121966066899203068052897640621880108642059876755824545517355343766257775858190910373488697480759630576820789173537985637086250504575153895513137357693581833805248611627747553809433229741843417464926203548217044400817579822014411056340366094650503527538973031120147818262953251723630768138946922235245733154399502565001843651980453945394519870730236282651570451535082860742847411128999349005869403161111845804588806479719902561279447681852815244123063238068214194209679420309444820549967453355299452236284315733760188377562335994590801570568715999683305098008957181705553281627505262473007070389362556695403765409601376407471797862565620597288555213954889937600538919212035139873525018459692312222192300922202202477525344739523659457025678580903721326809856108478704508079135773284570944916575833548924780883108329991050599181344452732284471991200357167523693036254984670467909225308991244577748863475784084137117765624450668757037563782087755742311609732673251270113629330926477721909281341964164378197816517843430386738884745016389842318925422393814377987693663532431066196354531071528748964689192330072525467891688590621174204864230058311007047890620515594373034497007519400499677007661300667745738401420315538201179802973646458388698194803381643771668415197110495345782740599760578137957763016538664564811587469767569881041864548211067501571686961629079190386804822402681925064522054305484489514539646108811991526708255652145730333383123992356103545344139350801708966395787217795407998173929559555546746461800976235578762447723758511187611061135821617422919173681053289356416176107542016537593422020804151172449797921860298386671016080980682792233733959790272446403101715719590386977144734534077854308337230309691432429813619113773019547904940414517957691787985992758959538684385614649550458367064220939639267833817562001383938042798334003133832448633196308636330359574007170798370865569175270789684539792511761071653634180177479449059126773586979646720652940210865313606524091662335326359284902961289668561301318436981063850979034477856831281571007924288392516590838430874393534241287016428827145822947458296658122180816411198790748264713172640622784321044417741639705656954676584202392547807672313792199117047992551715296138487914382633091999618212631619595951612877441075704806557565938008054845565681469154098878449770592268120373096136089692494551719982689310138680066472478837713618258262972484082400809552600304339566509538455955175834664876715565024915198201160743284730060445506639709978730168483038662146114470008491088117915722451904931470519021462228912091318896103443771326067955458674760839431839163001942135151991455370858766653514837524461583421884481871463045760108283717859300623722167107716428232646826265416805685029242763394745964930399603270837480017148996439012902728596455545137588406984988360796517452474493968769440539764155104517277481549720937221242700536162674732976096929582639506550281402654848921210248444230245864028545576660049617421543591543669339005493764223704180502586155538398527009883728504076436364542739159265674949388277212683960050056414856837907817325131615319958261625269095109795600929154990017058533486344656293891152354914375287574037019490034985381557894352015492094581238937313448049398218532939619029162429629380927969305859955765768490785850407584616602745484964786244200810862813486747725586959870642927307215936116920644502190227663896339341066850305039766242432096673860232372704741452612920887949198165268085183448848778259149886912080799130512525179491403202075872609572671275613278597827370788630589073778172300928283062501118423841392806444902879930107889933116006931705652393534230399271448168152640732131190275481876428062332230531077379866589603718315983873784465601488553105833552134197705010518569143594781412873593353188548586283083851510212013312037874373594057858329052164247866566693072340448968001082138744795367564008646350637765160667074135854016171806473893733191730388018654691672665151408050638433277018452164800826867809780464282500170499350581639117455511289406048331869955132736802200454815231234175250735154831681424143979509957013896223454990620973038351471238671178258146694767974648754155277334242567999916295367044514094328561415476011428771995961201040815766223280712606596802368518028363146143381014288720935168076323640461416029942432186500869077696642892410977741516271968955954455952128097872957113733915827295948116766298741803529576586897820912604280376615451127550746314922721583745193300113814298204267671325704107087828399200677247387174128567800501615755003202776482963546928856644956741742463328203551087589784737044134225091539563762245919977311120590462344878491331798430003210460297764419222142167075579983393141849442310832990058453492623436987532541909670511910352529586497704707261632204445929776017987410629868359935152041431858928551833540707477311436969429260178281223207414555484865823884513902959678803051788779272096307981796534447677122439824534229957912383087144864934127666227621760308547449401280983846395129928516867841584386567688695973227585886069452215308198704669116102898664432406034272514459648720232154487482448921254253753438079138709920959552138115620250607392418314707872312833273222854219135444118131987753575708527410251238209087847663966142010372507004303070153866141663660655269672965947933637509560070524157082355456592747333814026879053807590285685017926155978415861062446446928575920714806416086356065421543326316065219422829853788432451459909677988753214522762403183943080337113689306672516256101599485034765042531290439068111766944077985091702251170668101395462171261851412100132882688678156015904928762866604561869044327819143758287070629884369224707198512041253288276660975256277498840611717951550772327060020200906638715400119343363338735205035788598427142010501527680175391867193948656641283017779438964458007149088691419399188351397038153134153312802329604050471120531157120846980298737074379399611872084540644475181180108032224888323386320387630987532556471663569468087813780922380293929285368857396768756722320450498386810456921844220730339178212013290424760252770312720191182639093565469414354640926290849230269222122283054124691083065928706451758087898982339232333045504393573164358858395290140585099988112713860073222591157618938578641673296823045267899222367497451440264590318921753298762869451095884915557226412413744069882580944654405606768346807823281053383088910469135284556037115374987600704308951914160801700176531725073579647760611678742291862201470827256937926104174345789355900765923401043122820069973469418368959418693463076492086431832059551819317570535092093893762182720964410607146036018376737443001164943777531167810824335642154458634161030961308383811048540649276492345769008980523210876043052956818003771015845669824721313170847779564306579845083771303216501527982452164503477113602852337825245505842742377686173586770029135586961301512054976070509668650168370596446203313432655125007236619412920815648184066428906379346714084235865203300777688245201649319175805817197590408083459949646190719689797403822316875626419184332332510551626928806575643195392508492859507479469466607755736868641916601930817288178848740646005354600557168852987243631470885379236434590753516416583153362257570867916407374608054306921075257216442274477022424896362986080333087388007174946425926850318690104201000630403368463507725850353877762490921425641122647031310594876827081909195736077095296516986672645309185942599772035139860233717712223644971313275196418979770837748708947350476645486222191102205957463505991606296166518222754857348737677442046733501135552058126511073838114186515265802358996452104829221600986698893076963685978090836804965028127692798336699511137395752741188041525023362201668953890404073805493937258413204026278733538434192294534238833561903081779708699608180854732707951087253308181752210069310021740135730274846677283858498563648822754198968495528150248255746833488403869307547428326360247868476654620357199466285072631679475856803449642972006737531328591453834347608494813303894452298160653353758561975397580361277200192216754270971582846980738250844060501807244504248557097463704799609114218102929184954704593040449634301047308712715131504128708440777692458473701022674699007165636048113626171512229482646709185189536539705386419735139869179390166599312646544989480788888334751653684513349803200431484199838538487289102027978756022904363362255996224821579633779679533498497502582489218234633174521248267055452424727338468809656759384702881635771192633227253127871553701517879561431042756069414326502859236827843405085631480112047699019649164546325399556227105810832015933247625809980226835827535200717435569375928019894163769764796218300735671044315553342233700225108543075219489078086885433000494773065679777784206073783472701899985729639817087885650221693417408733990867928841646150549944947374569662333964025469959015953389045932721647537257284455896614885680099898861692850265386026410612520086558992620063762643860721334007110357897727528828699625597842735952673594267176405325746477125881721535237476305112049682128440712076797073930567168834072157672160272354142584696428404362461633282054753366318026525236795111060329719840375533381805872684345397837299922253327785607457062998398523570885736366028043731838408611728783544392133766715854378553676037066659597843091747257762379078599676900816371719485161533599341043418446002503701292280269095635689744793963794479923882735297529303714633914395568973729837423830103303563065993580561054718399161440012710896966265673720269566157597098748576901546258859638369364139977472606483663732768187536731587360778623264807537417285439056922436732665478460911452668716893072245579726626034073690346300702699832563121219874715398799451602725140316669976185228338781603930018852200933408171954378971773197400009277093842525376422250089615057981997817965342655876656969460495125016350577312366590515772819230584700924279842571947053229059618144450782594397252108411947973891409373540380707855701239948172437876955515353205147040768582413098182431224852869272735680795081623773404324818203419107899577488313575617486089035789346485283611637068398449455018195648436467406523239433732402696857027270008238486075162372179624907033924823190983035471158559795526277052534330256118782988368228827555445214562522224524143023554944795372882251454325864575162152164501445130651774841225892882236369189886891676667678857303897290402570743175618743891155972377915192279283271150380681618924534448099495290585207218208484595297795690718683752792836851165805416966850928148241748712502258669769008430674310508794751436543823920681974168204438915160543602313158659379717484969112780745394530411424706219173606457102143392703366074539827164019710057385202846454275423279215986164138657338735888075363974950440877015205864808854561139650675416246025044202757574100553078416937384532851440991525636626385507871475795406281296836351517056268796540858124261500771088707513718063526695645535972311017379359305363823199008258153538934278620338726478288489242708064248726502747384033810150574395876655068230551361901994834645795915591042731341055533093569259401997166543605932748815211816522284780519755245000509096045606553625131366071636453239036095579281735412404168717174415726259257544647981025120597934290388162345799623622607576840057057646540887456959347574434337129041048611729958929010920301347042670863876128836335000523659394179181494996316624156807638503785845145295750762022147676230954270616743763844720154533895263162787167045937738133881811011032494275983803323639195951467349018295632716369519525098341096517967450183498442071946976932434873840233778724065034596551518151370803190686028920452045467813484388704931216816148957154718647905953680819962645256661704987102845865159531188968017965414826413699823452533621029588391430334993907676380742108336334822614061367095800152838095605924180349867662875229306233209014858145602093883262365113888950118693343893561705041016201096272118694203661621742835801640036828398142519470972890445052855931697523129886769314766981712388029540446858443258359295229517438221695327406470055263999616904587142756788230184266367946535279881585031603680877124280491362284159855029915361825388305252240615802420469783938489414730582624925373399608471419614445382166448805188690395150792055271138997258435657654264755600784778272416952576465690652677656397335188824481702434001816900197193916378471315203018971962087073024788790689000558266398699883708959651988053868990509187130305821771232896315356998133691704750926331026910188440168324759599170206164675260766602445837707418949839099409751144123272849598604058192528134159915296125028767535004046996317583149000532097489432418547736563182493427694084513227548551819942531163535187479561626808022916089800077589246140174469267244297849591885340557437203562022823411048032341782484520927738559452113236094883545815372818056807082559462553166192629701409585653147290327118027245525453716750587310630587892239554640852907080647640718427696526021602324964939401948866142520119895931552765715569897862403589369773938328799485981426847124601256719412609225521940870282035583264582725198732427043023954834437099418753470028232645811227573738836175022525699703652970123936313757739219471440371158570168290860490534994267436671503787679834034684681562396255272983854912497366273449107902549225827672286989664907010933748458328065830056691833011380050716245014029576417256433687198017650458395866494000849544881528937780630446830382440818055411881262124346692020496073378669614157429472389865030712132577911879625328992841162638123702082051331329046638475156823614097937312031404701946736748112307749586750245607221436669023153862373842283383589558002512113584106532669213724428250896023290181256923170579093741199614700442307736458245979182142452079560781691086389854486998281154229391376551524731790204548842333345288754508563609830373732204022992047814015597186344136828128194997466201885886803216758377616411223145126491284923687022000722664342084602728447900444772216515943127680513022002691298006447151974048145033022308557899867676660690213281001225293305906153819355976147307810479885545519233750362632216745021885410896064391287344124179138640060708684309668136317732843364823019875899305515158333233290809569009016857821766875262800945421459305053714849008676341422915875631759504871279499017967771306836938312346630034322064938351993517163893827932725974792681400266148775090577215340074547588827208417921423769850244633275298585977793509788501305299433839478389773389481616065249134397000722176923656320295802991095671126786043180831243934904876753397152254445986219782199803858828888668094087511337235664477370583674195075849792476043584796920770401749344813710339417442030680553889171523289590655547214884638758086946762991402920667345334320382700240566607460992176117426799117841831141887834670039732163838145625029310875393491881438584217628887056562424831278690079258147577039788424264352316791812532488877828369663400966223843681561867409948805116913085034018081200777317681736801073595227162121156778311318693458003514297755295309968329713500408697214969150206620722986437117116908941539845868122129178105667561108940323355058733749375824612907447934894665907309550129672733018158340799516926486252007916746476987967906949354682079318867722591349049015659588227091106904735917175349224866349789785684453630682374287012530229876120489757967446679694633884083691810348895471515872020813077898667769244205830635813381296684075618819782253920511237809466505276616234639557045519493344111416522334344203816618837051173535781287766762795488792795327603031699593462735913301497394440532136079566857211861863269440820096909252440741968349770919678989118504354945221248757023780491648579936547239629807873218670456329757936446581706486288867003526898645500051089016993748189763703841648338486330444639049688886074236181941730662342914595732130142591608603242348578038439417083821830318052033300119344988115457067090394015334095910656483102262122043677544090204175014702177927785804851344312004209552667650115910882277316347458832624207022289238562794048708401379135221715321717735545748003245407296848803052720922976495709065829361246589183832255460847278923553050279220926656664630584186347779291696400509736596720733685129622227411662918681279565067195225221765622777041043209211421636976401103022536777627569997429181905542230020045465609014221193305788359823537132120589568111334246372266963156812126851207260128546733763094704122876282782437189849829147356759869297514940865660524898288311172424747240027878188239785559846989518204965853779513649386668882116682228445111554784074016350256824837061797015933428104536618019186723117132188505802349438346972533372387173095305979399684180135667466611376453918616655008380491106389092514936711233938112946885410553831015110298404261880791123357175115183180961213168697438572040786266976529794973661179693069106438312555002547515642089612405397583944003229263398204451183790951221588020869327926171166349767879953645803549725765003491453176599293137237644222840256677252543752590840636943989954859297646929510462702222165052885802386935066912390428616063506509673293652652779132874161744223328594520556739262751530121607580356153110627635825118413136868056325299182913245151635831923592597778071734233109022442512297242429232341796701703842747062814976949579673054118584630481707593052752259176701152184746100189112305206022667183580139144755022599389591053369727848934745780392678022444878120661696121186025578290149190370659347254328627831745192957332789526426612928185370382260131100540515208813937058357485993294126548027922245066607368952963610447803513655443651377454332655889365830720631101747831293200293474616590495536741775710585019405992366983150410181624193541423701816185070417681599659352425634765895864280465276977691815729323642034420726250918963364648476539054269220450785183805352118476404900465656411489591541135303384202216895286570841093374579638134977183765071369631198262637093908973648287941971815154084515852193215787116771743180606151459015235466152535256498985475936555693633593532941043042100430095068851490915297315892563212734045679449964373484171305875765674870108005694987966115860762531984751711783155837191443701884654860212038944389916942719921419063916191089144049315511851527301811014686630388527891887110157940257774239302440878951471835291219284909487264025903550029163287977398768775263681084936965402861232012266399589282907657524489170874981752959448630377938499195736414451164176386125327946741499495519327278059842374441377137783248928657850956305190314346875370587824241468538995312569349357250884571403126653047027512639151333935891228074718529186653074516719283213696330329861958369008173302792925137947732967652712911410519173580125799920346935938293859138393319792494827931662515508163607473262227218070436289387904285521358041858350679869483811415673941621451719172573833001367782541264616825345244128756447658621336357309569816469820953641061566629674096502541558268679979225927919669273617674504424230519263190142721614742823273388131198792419709221136210534903975748410924546503227270121099914614118751654717160707704597049783208672573046939796801928415606288818270984028765093595741332796094053455795665636976808231822073077521682181486888546052095268836820278644346202007484371027995645801453058566292137435014281761062943127985226471486845056338353107796354589280701474722966154816371020135659486039028068404772632225275321156460773283454291083051621929626953890701412122378458441665659444087764663600770138619005490871529768927070977064705092950166280193567537746859257948036020572666788522132211993557128622055161277659340679119346805064302009686809423816009984812877211376656304349017883987944745481760442868962860322884053099593779579314979020640262460809193338057671335838361401401170260129726282677801810450713436527532182798832507361090343840378668180754394873225636475513014714953638257204703130720036502357284770384534504199319780261571061062992917633655604805491909645342510947149817070545486806127761502479406646614445913335686730231638478564716368553862915655022721436351719667710243685768073612403602288451810632860545698614742682894927653310205107920800657165429048610076743721500478433672786552690941456213237055419817354042623969682855831223952260274042641560814604873322801005528042583177828133584902369353225175773340071657449277679442940668744571573388661716797551435486813418937982221125602177709998943868277278229913596052859687236124305799040733522626304458855255491118429481495717066457825059177136799499413867987880053324472871155756200162597091231537537346000042369009278369118446905766877053614827567436804039555750889208681765190339755582490994262362025601279973150534557986606407769176366651740457899331526423770529772724909071753895427281579314123565803000507610190567147324077376943936041964839278198203562762586182723996499029354095195287427539895026884482865183119493625049490376575580372267615810587443886283357757173037125554254243359224948442103824512813893287910566983352662159027307756731193056264110380252184515206103521053647192063533621959900871295383117763126046289752103590200385401860711491916763245109946489244502370310568443890259213861223842257575440984366288657763032425394314174639070632283191224811963293876649481739641106056446435733656358559321195895544208761380695518390150948706131293628818401873213581800033110423865263034464388879032757156914742500892286834742687590622079984040193232494513940602270487474908523772993268471104083795114523189979802235528410353396039386937655993013287977315744956455818354155335195442962145358636152187593882822465652187664342912650356341465438065968420749203987577087975894478701032601918514895210984647496215260656478461581151838435482679609788862220385845188051572042154472164833423748066772722086361178473382371834098971916648261858175256639196017363977289110534684332187169859037460137641659999614590772400750891659291182689509450991708669909219444604452161657408715424992432963246784574630941859213244477518257105305091503345081133369955938837443483208964203873276118476083848750992502677021917958466725638015095594235319391631994279295564194985586327500932031221910509997234652012731602870804674799217817537133843729492558784137479441307596669254460040050411021739138441446980194984519993913612330943590778242822143146589508225970951390019735510799084857610449547685898261859482006790084589072058688525976949948371081079647446238900737408858121701269495020831199390529241346634324236558649589438690452668610152951350640234521756548254886003963851764329514601549030932289317720983707068308865106251836572520091095186696094162594941312891927105498618058868775133728415435399142862026823996095083704431699541580080805193545498787307460058021868125895395261345121385662052827174078004071165022918049030015832802442896517924006249486125582412980346711012967020377234368368521883266547589283322804522888437218532954661984944940903377122778935067192605844110165202300241552787874908044333007386365808280253052547626829048643514031504213985648195327221498432364546480834582821811081766882699491158465606669236837552047978035819316125273766409278612228088793101954776147990674070144356169806297035363315364509956084911599179514756480706522461656607586925571731122541026971514808191827450544178050578189226702440005116225824924936446579962045546010605923129859375051960066785153545907801632153382657465737777025962707545280378175862086859450064041033669522805044640136650754198660464493887709385861657738992387467946582188762170808422162249954576495769256572414849743731383489913157618145713745174902394418643341749287812243728617635356524874267570823723445834316289920566757486171267194223142996543625346404273632062003230293389604580560308606315409387258961395840993316003848709459114702146468980783790760554331357123341601106157009462028518940085817169901657341136082125015821012631545143811549656619974574553854934580247498780525844348476732299697658182661754101012875110065624278540255811306325130889635424317542160107055194475812308351214624051988519067323021771252698310286304435441860637681424268122215042646495306428447529153692859951616071780146206986490130081980626113240772794856001733806787360949298213684962903493544140750750066882225853173675635007783084333886197015926891801612064102431660602367812413698276923935535744952165777348049359461601191871775459585031620430929269146614315515959391222702052307023616834562071257074175600339907447826240338915734997704357924626320008514390544327439223625415987792305783668329621323306200469075258995306353637770628168410423935783141798094865065320247307004462716044609572658291661211449951666555333209198332697132924995634200833539921131630626669753199113453795986677519753237878124938577210903535302952357147189333329878241266464737077403562796046908208382581849413410318115808888668223667931505833014373242473131665571543727969357271950535188634220669490583978185562034630297991295685001325985189499854641724548082522370564796769996415929537308710204707510202661168946366422642730142914575788067502974338590632650628538227851266380746676209598015267893363236035578311037558242818433409356420720816261950550186553055828937928148633291076292179638602539340621485754346249549123185912612505520518445951246338465156780578927910033807946007619054032444061656196253328712576747018836381305571905204449553327685325212530302103609632964271099508821724833502418158885763601931131173123707584250434880091245629868225923511855491590154552376588895178937816549639688722231420675527744823976364343887204692044824301357391735600073144698279268265827451512476632319531237610184155643202699844740843579739371945079552359399610584033402224049355471551724663091021206372615887647424288944065052701936597461035179951892614947519598188078875053569360630683356329149802943821510572176116118444761344803163847250909795128463895823816530738926723872406274767732168760379603455247127043149577862485279151020455092414983396011540905781499770198836469591003451840766698273741278484318853178051973899659545558725269767207384819957606284527565611460396112125522321745613601508870320709381555228423318974415275716070818047007805503019921197873374259573167320714001162774193116018838540080484393496203222041158811811819509280859019589629101922899025458523318201934790109142718356066112131142730169192022173222301975960313067214977287813326179933753238786456109001733456486177314092607602663741896812105381564171397349536830185262865221290259593130568194603654830865043974655166928186121473735364081743789075913045405420965876220798174686516669843506864527524124234708638562759736817924849465651661999461364424453910074897042528935271051888625218269477909729189118556103911167907974390349915450573953756844612274385369588394441074673734213096000661732039356210229444047260126857514017198266071401068337143298273970076890670250476683962629660652370134475091982426299023461867845738067834433079212732127666972323101839970249017375793816229011238704923656840346686833722485457931128021439725988706564739078191212543202265019097507425333086290361615234076514587692547579059543459597780825558003537200495390617026020683225042070148096450603956847840412247871505372546655253036175664101250885726563812245493147765809527345525502456665596026681590593223714845524780633889036510229930394254277995153793363144784101691167498731294257268072357209956969588696035297601383235908958443397881034554460659503283861216488405688912696248014214939681749419816044200297549148216502671689122928302999799539194245060592841591274577689649021307964896339901290546039886733683759195053619945331921088654123715361866690745745950984649485791443166006544272415618307406372285445515960853515525114931221482075729344148758939961693691478488481993084014495647548731860460361584781422183638351994030840411727287201362932951473257472940130768775607075420649480009018025816820590592078886944261601247708647541661163239273821404143727562521383677724284882321989054562331350716818439529700922479058210174795515632007319579777106370752656396461738973607770709145874697265921914655570531457804707059836791865510937607865963117867597058582605303353787313539598991232841939486596641390498507468441265158867228170740624245809049186812121412672038331502594591030693567553128066970270642799790704499359726138664227438127868731225444873569018145473941440889614033674441133091925436447044783240967441852158208692461903426523625775198138618506869420169582321338699562970885552251804346510878461282016660937493251680323355271130602295786257298639643370571722882688484667163834016647129947421010973112225723073403105862864091413189926556886176539437536373278667258747721170325147271594623215584802326624002702874066545313085416549509314052611107270948498612865070571240412631017356349831976581023859517675742208464113371209952134671281922112214356894101266205387893099480218653079879521965959528371201009058751751323528437256399818904923559878670576804657197157114902786730227141063022710318486040353561365426597829007166699321480754905736456346821458253058454479333944021128956372938281090324055542512468298491665368104338030899295654772401126432708579877490440449851604375530398986239641865623005930466967510008023860301340645340741761690169925298640978291834519809560591378406910049165901824829361218271839773145062462029730098455162818677693762948952392049418663175792708203419205950519511700746353549133804859681313229791549693806902081844275285208003071567793075018688207292316807299307291107973134091249268185644904754833357093567848558427228683542818469394288153553799409261550569712331945542074123455808463354126078197872448591033649301630036157203450673090651634718047716480163244385394529794250147131144247452114522179213703119233679011653840698050958934798229954978672170892034595649326381551264695557523123307459427554922612920159934533906868841262302056277126515269474624812409816847372438989717223103010022564111973491913484858816054108667160219120424942365306995556165341952032510690609807106211857052846705219474116469256966503202523030017532324226629146636351571101174131244659312221296709522119638082896784068242743602151675318385825636350865932736620736778157113458185581923602682709287749798099190129913409473056027460157097669293844575605111444967229690317339822572516702203367659080445322836343917501864684285807716829645763345278572278224063464855034056422288367502179838920080213971072741830564927101676594642309025033244094699864189946887970322373201800547837160295217059349335448577190586743377880771355460478131146402854561869260069502998974422755217223479345491486433895462832661248882811628700334708415866184730720467492779794893625789909061548844654985384430191811242897371643488717902167949749253009617106155089374559983196088732479970575174916397973932690740932935663574309238818699976952554358062702788729246659504567953124622289375387343018174765391780856977367869061887114128665408411377096983422007544909591548755950159696481415049092654361296147003215905730161694887267927861507845252974076399053254058408436734093746268524028916479635498401618022522168415271532864915526296752689999135131561920013003235403421333285281078582031391355692367286876520617637742088572442766634533376458846150983591199242181612657345825114675577423644287600299115940127721950570873151845328717823242364451722599262116781585404059511249809406844245119516459178956223245729655491567276760579399292285360161515748449888848188326077381626082391586405384619398932258792231632428278881843550169408763710149219117348966948080653324828007880266414930138026020026091469117690968873956205808871932585049767052273422382100049729765939843297348996313158620599052418407635198076016839176626992652961839470814239816494907410375314246825427376355744783911797453941718600296803843435423426369014212949945338774924164489683807630883940969772093398569168827271640826171189713483224050051560852828002961650820952928504986668725527317901995819672089846753535491125512126790502503825351925370015452900882958030065884063351348693135282479424007464584995046450974564773500204657970824744641464734891216412137259806563342774615722496462541641930530878705014190695238805570812998717983659526444259101667412873260736616172299860563793467554024556154317209684685431966047750781423524504414799926590776966866707447260599337614976079765042729227771487511074773226507375170083563520599316136555506218175319970280889018552966782920695910625780441197755994187359762891473731405659076809063649918862675772129410169713138434636272252812994505727924750033039407023139950393538111004579670125882275574578693111538145849982284133210929588567377543693304717307309542489391975555882752447252162760816096072497454351269564804925301629225747701635494629822901562649941763995111863112025980137343660779727132627575529917022062758829952772713103229705218707246812504505796093255411492013047112342028477796528161092788543426616239223379905985046988294163102432322152353368032043633157042384079021809174225869095719308837007136138144852028201448336332557149388791288757097195322144450099460395953570484165277874441652766473510935414981234570017316546144309862839158662580574732499859618817007071978247096827984166533461804216916347288604220079843157544518533804824802320627416798599648167550542053714685701173775911474056488385063616907369773126011344950846390139624456057165682806285157087799091572361684130950635652251606360130406858164203619862892089297228448970170090293326890682871201543561055969748230101861868415608815170449672587283271223200103531541800174634753354630174706786805812251860308114583961325210216282963958680885665143915548875211069028574388539108003961793938838807184198691740260028898465684490979851444315984704862427219373640590160273955770075402237677481630008496426045613688817494723612342219661373981962956529764655918087735199518345480087636888227020955456168487585222304887513234579428766477933641100988578884591528720342482953942169917383495038527153587409262115587247285888595623147694688878876110467457107188737700444219764219625921488589645144732998348708099862852923664627890756243316824598686313513338117149460100978236974189141558046879306541511658217876196272158210133003860985643492595138578195758415130008070436741983043462075876610306558645676071164242959010520736056682136478510818386720541055493570099840871927126794363740955836369567016815707070139981516545251873743153918007443579340010519735559968343950024249905926616453368442931971197040163979308065418262289961735904785528351231084511748142011368609242251422768128294756238922770403016941930127540964957238743623808960959620182774410618557600345985414535664142696704272312739724602174913839719932984428277747682023325830297765197173908515124087369278388205959408884197772142830802083201342522412807234966454922695281392120610152432213749098601260113302554975967361025990773626755892808232157447925949519590160598671390263400813082283236945398929307482325655933653170127019322682206858407987216776821486236826761598809435637006164123125091933994183477766340698529531833621228311703580912186368118663513601094507183744965368808596291512113158724648125697129068984636055639856393817300937234156882833607118624325645292486078272818335118862378609178056760440587944000642244251503389093558061768279919699456078452307687496822355554131862093273718732717476780553654988375088290838923418693295742178692579499136900944489008996769108263980442171489600502238688715446994177834118706057334601661718000395233683168048662123145659507899462550162242367529859532071084215189850515261320412933923201305271511765086862616726482135531090136118232744407890535109393890508796353367198549766555332046775731114633567635840787923884621281981717795205343661789970195823594521950697994387836982881117110027543404834149514870070922952316125010936673317345720654338698670897399330126992994233875518585335300335442218417422419245169897493575865871656422226006396057612228497336154180533207446228044761494768431666696142042698057352756857429247407510703055203915798210003791371566921599150600953349162927732408883295512892260057261606482710853623605355542107813626642865728917881051723084164053122412058487978936994173332354647508833547635894163973944580673599948633874227322410042783872947059427376773851769799461737132388083624588376033311371777032326199560522676809644236022400220367428217779602512222966534284808492004275654873361140980719352186919129455699418415163477543293629028235405667302938430597987505499497027396756003091978750075733572623669233902643821843717003588467973020052451741889164787765756137249484575717590608645824644396118908070444423276307012176552625416514241480568706137062718813804735924320130370304403921152853068471946001602726080670968528410913237289268149755023844672704483230386972063425381825491646712343582982262848548848322340768928569866979421482194248990840062650055062917689469285287489570364775927114046417516486311597640119832177797926392937722600433903088489211890153704574528396718484464949255402559776111791901645129432970382101362143807942018927643906667555980481929225694788920495672050677693600364522704093358062634817930188145861121325940738310180525661598345827713233308478157289220701795558635449528895103162194159416710868162478964838693700778071456291544679109612898503735526431998974969360990582433299899458912714671310472552287729565866816522623113488481445195549616420646525860851163768342148454636621733601614263929391345175593133208985548875181972248577745300480608965961999915735703917219452836034465823808123242627053347486693087318752716501653577856695816106144198711489524638284597007201900918619615903096229047834815851521617038134659549106745151776859608579001704761164795575849772451674572987101525278926603465387469869553699132217846076424317259631527493989407699596365160619401138990374384527031154058148114959672057848671907880360112777866865297697803481943171967718610071684920503706082563606001236544046767925014816050508842856704905118224809972552096130183951739903838126711880810731807051330886681658838470823650861578793828196782105680538096283360228204489773156805162122233958958935380155101252374873569192150758650134967872982808474095621944430364795965692658311788649650405819696426956059927536747422945479605721891408376622724276062365075116577591533703016189242694328593918449422517874857140786482091448952164088542545622010576350685030581343121860298104320544342757667458839589647508533987675393881957612638222397958214210676149258355554561490983925231268446155809980176148337530613605987880784185051672555082847082334369704767112321670642273137902821263718182178285742095018971630478686733006504692900946607340938757246570012761258858584474469655492492233171464479273090415042520062908834556977128309938285324347232390893892534215509826989094716686227497885578289819198844072397769156904335110442183071722756989881796188986755944274718912023779715899107814434432737500966447399752142900697216958509418646749097464596421222260609408679348671298239172817082219640106987951803435189414651012649381734105324877540371369773740299608152948937297004335874644768120487965788481991423500052949526278096210767599757170158147391463830034370627352095621882288595878878404562402487037153630095397306381153714523736105723039456419186930342212152812140211984361389930307897086280123461817289463522731400290054419930126769661929003648644384736639146203136823288405635774739832387084640704682020423413941059105597612448796392538431047510484401189548901518912769474428715955945512797458535132464480072696613195488747211775307321930050138817557252799509368530387510042516989726626070639674087574490607614915319265107693982190654420092839115129196828783353403295903995786441993754662027955481831254730832691007775535890848536899280785922877341254103321218943891450841806165678263515836535580779598844341800059329381990067699415375673663311936506610206370317949222259059676473460331151670894234456541211247952226340609778510763778580282186980531071401151332013317696124286275323784176122963476677682476011253830491249673822009350544630388400403250898529041497476886716036428513874132461062184226349025495427614665210177611047937122819648080092579064919585849330161366091648551915138663430511254351764323902635404959546300206932410812069621457995592306845907863038387169955799454269811965293263045263768527224809832361468818556251416549819096376997380987605549522178658966093201312699582333567372916928609786860992906061109836621002839441167923691404683844077611247475960286160675507496373155365848481658564205220867348634792265159721178100147603696858365274700999001001208610930799023753126991766998283471351857753928666914578267813687435634131268789054921649174652500752559369372547626399952226421712532492267341897848789781633742040842704581733067222896556277146962056193978852868237736076680675224800446011343084603578158179372953353423184104400064626034222028698617067657737162123921947088049326380105485938878230693182452822649626183311689837694978357888711927691231486568679104089591880801807830972206586909684321323779793938855230183592053027236140942057513950023479024141371491535771254448778086160818197159157136455284833052122037383517385703502592773229471481139770678419392084652011116887948224481106917581910514467708074958491466875383377700883178437741461287714896008808465518469672746531390027609978246405866126290808702375111830901522551892558127165557275061306483483628134526127438042116504159936727294270261917342532322730624356333261425826004306553838001220228010947628428260339699958018195968761396073734518509415414758194610510484666254817304257158365908682575469117225871588760300760483588791000746001732920547559024953030768377616582574296130840255536428837067733925230867712317659685832980878098180916580892978183172203183692484806080583195013872176082161127954028909747168854008659671892679485274906686210705219523070677713196665009683944613590143889276575033018322379798159420363683502768152309613225632483625499731703201395479482530699365030622672602986961138430958287467728387902289576649354995280902076736212250244420649369564475579011836131948736889614270211831911278173788544457657192989390382000058842575429332302978344168502751068542404924122413587156179522340946061879762828540928648776792320031717379708950141128639459286091481641470921117095781176944272029219130880355932226672518910394837855202739082021215273272690771290744594985506921881138643548700678447148846277384553745171152096543794955435103382722042721884574301657578763956397143623009468120318668087238556523671001422489834999596191802983409574261016660120814471949054924423970082593019370032860042522777663312597314839717498894935696816951454916546733560787789799870240796134154739864795517037625924751501839546928750615500496311274375364489701306444533665131764800854978703582833692445972253166728044356473990327815264501554546564945971360139008763265554229002098669179719371238055518094892618011812699498682588973026669076578465200043428535943792933376310681172584982975231875402093737442844146174311087857562310059143412755239944371286328695349337565769938238244927868069094876056318085665175573272362818845572521098621848174895271140485647757322018366870015080398937407305972937977051663324436785072117925565530484771809675556926546071958868398146183517555022105549680015844284689169334085319258728570757726381942919020687220964209719785514684104273623330904414816911311565843430430393672075287238989921626958031367732925937740805287118258515813093508347772982242796998627053372884126425024732919057607666700489010818749617270703958215657602520532590382950716593394256152450657657551760052179705622533874264735964900350895903653292926866730585833720272313235691458990627055021044811504660823028242083073940262707346757736643293507191349089051006947755082466544840997575068147794501575054177689970669122898972025793667948348343025652916692754806479694268452082857187512140205797972965702676061883746357342480801158522480065872544069712242156463014836633810459414277564288578208451942990389363615750585662399640956171187651083419841021995770534645157694900931907780232688161296252804627206820509051884555848863603697907978448582033729964231710670316578075670577021541431601411735404586121365749222708090994089801648276814375882056127703636523248885995009796334826797076269352443399572849214116574601542661136792832142438745484361652605416279282224690123658129754860417830391252080425247215955673878753012074599421895377718921296255674306893106792603799644015560480818779095094734190497655585360115298089959189045944105800526448928404111073104151995564872855290012279439431756316459779637474951783635351726676596119712064920630704079950444481274196176746635796027648522482921458310447874506845948749400614559626669481824645748123018498355254568645987477132644196903042593071053355194225433947501509486566747607257344516774819251250280846903190780388835536972335745440681547110693581028194444692935993445043230328794848938908314482610782502833933761985336685190013267727951666986399379248120891474257614139573333578860961866770248770940414376811862747288394636902259431535798352947180448193812494663362654376682325496024584390020803218426548873343103748529416247836459876272939390881090318001601295921703387205346682909606506365509058913229812810288575478579392022598126413115133736734843862244548003410230094489345702937355375892793498841895683510988904141099091621740401228632125958259457532451017347655569222282748596451810934340914763721188329686694066399165745097949027860385029086224531876659728353798278552540251991239744005387679250293653896952207192966963535174792418665190989995697497842929841300269781889125053321747481501172293928236734288109386873247627167993572298805579789774346188339288315784032617613510137350645671579426958285152432267201256506768816992386202446625785165370015226443002487226719050394708889991789593851769628548980553336888496722327056068907420871114331991009902246565256823605721701365583655545126991205858875916560927815444104280797073590969538879837479220474732956685976466649718845704374150901072114550649799550069798744827568777997476999415830398756224064036602840142958443614800458575442689196276490625565903894539660758462930814106624999032210069810998747562399169694179296371608366135897379617380001421198530918489595376238214593601615894016912864672638602187245661470668662038098469672003893750189846296292924478696045242192158617886465204098994261618382249768901744786519708858765306064726154830862427790230631082170305080006615326859340460012077646602011188656084314591731830468348952451738152200938639422936414053548988679559892941890553051790663864185586091960622740864788078893966563117209421186510751113448690585461724671973120937585614803740473279649397822148375319260764254825952655868760722570159995235262335314949414327146966678979647855782243303771068872693876842498443841695072295047753850065068253103694867734914286335029629003711012224631339080500165146291000067314225413583116587361129043571773605966228654737203255177666295866072777004137357516990149927305264483460664571516111091389947477149945672865809796767542407131076965577466363050865966077647665129513519315886161203741091014652629392614107575155270091195676677883530625278988826752466039187659091551035548701767629272429708469335968994688461580652907640025635333621004665848456813582155142227343942251342553851047452498147756231716144243565861523688532945401439417328667567529677341895436834556977230047663618411626929143087930330278443167277567946095244906465974284261287411667436926709006477244079571611674518126521032732446967662377296756126194061059324686965707430005229911125766354257390321579037946356259608950732116645233181572861026684904867046389615098863458734346123585624320552614088335723363319722408397338563643367170841046513631462688315451709328859796335626614361418540174366127810556263426985199617140544727164054789061157460246076822156360623735401485822283414690769048425102387656868730230499423336989494408119804340788440826440179089800666193648409462266330176041162290560182297326090149325232560724458370472864272226965795442537195282117514528985509704072152904751384824258064096139521148171595124927290865704860832939464226566019290032781989719752913741087888972090677038145058471090083871892182992996849492481865692285769413743516676902002674483992449241947392374894279974143941908641964081230761077731967858440816849092956625087021119309933279782039461348300478716140882757731665579707739786532131045394113720092356622560050367333243529631621410119981048849334359918734695283151485110903599195008300167966618296717916988879036999860517718151528680952980967195958197563062813322744886691847917014568205549087929553156187763076163162996969881831947815874474957102220967583225251397001491861071583744792659775179525219907027660017542005701391472187712974688515641201852382350780581001008102093027077376128427532753020563800802741923076260854651893322799011422366250665438241521386022735010000786075779139275104225792685977889300218419942444542952156304957830617421732499000747053403363203771244129675117006487630418015368764495759191129388314077033487426708565686140592323504839353486492291330729233992163390323785055059280098949415451980559856586091323382501272545842305099301421084186087453265442455798428667244820702326281830049737873686967056660228768873575758575073271561966719039577005951002611185288155179694361208561082951572610826894342541048344929154475745069099282143944791982147008608118296313695769851920285139783210967982266519644327914586650990335338318408049357759228910673409893985047334723699273031877540979024224033829086734465446720760931778319897564945721341878729859875514253664097819232225945589480106952076544955663028532053885859851524570871752558107049952036856526319258373026780200863750368010552764676035765363631798493607514055987037001492666061734076595120270862671839345077423518229742762228770341942356900353381299280968171488617756254407399067601406358456594986343095579557976696297152360192269247300826870880540140596954673944108690802523148108781642222817562010523776482745826818048370478653858590959287317835353723745615174335951078783427572869428659780901933534246699068342417298787179267278250078412010558487155726146186147824458662619138386963330037257613540438299554337169505721819017607133521786664730245425896725599109271262927900032243018554266958687914571594790481677018490635108402012362376381189572084889840263355296147623518064273172032001067443620492971875879141957413182282517513216740084621655052752057674870455662383444221402756213413825342658701037803437868795660096924850812948285241514062971470021239893454332044943648168239748145514325439412765231499835704654587874275526364643369164702682459450604582371561314012381274179588475335636131276378039562432882490871782565243312247818094623110111682986716968465972967520906547445691316890687721113681198588555002987677405260911648482299857371216507380333238351498648039960799674081804004603661617727833808945942912151394762099946199320957923223846896034578275179590744410035564503091245590717384610229168572543748821190532365443297571665788936820996405912054055704444235740772214685968294276335266419726671718364868229867819140541080477677418014770113063383945570024739201405918064741702904416709612525726454362852003027823021530810764290478338061623600540562018702255609611151384541160311726670666444544883239254772985371366572832565093730187113339097193944372882646079284648928625915159906546406863338032565590557700327868310108723275930742935870960076409938581176572303241890079954420421124648271305263671691174180173530587278279157569493781209900438676209712270099299271736349926736390040075781109273352745304451803865011084968065099750987997663466328604661694493267551340242172257130918485426386149779805502455413658067047295313227215219023326992356479582767724376342098744123288534827759747887217603734980203082828955579839555296181265604692320549439177140382023136854001382720505952976685856046815157298942160623302625436481923441504255108780728170136370459826122759224886392192364672641224691339600478634129356278098385871314402952449600359850988626424986545508133662751476687020482790448372460134557796313839355610948910567392532456798669816128542066994835650414755359796032240758110524099023439449106926743156147010979454831669330321802867157421732473331670108978188213501270981910635174013099577476129499568730933625970599279137322906034902968871268423828809605220131762155164699410773458253326245821755938490504368580922096562057969678909673710374736683119601207543636879578005611370882025012852164026129946330519381789600681939611884675530148964130355990118743506943486177871400266804566040088577771954077790248740296069800554276459033123469416938045605141643771246143555625560815513132920226788761859644613772039329022052261295714434667546155715508395828918716616021279782486796680902990383845929625612198857978559427089746641012955076508853414636834601632860032406634493603868951709945202341685599985525109614115694278128549132167463665532364503484435848864532059509829857096558212843760916938274320726719111000792135968118605949264213132572725542106380290172998340255757236283720848016953625081731250754921789944591489663084965748571449363105813929000474814111127925177675939594998969330927793619724511370594775008063849992418711047335223772840092010513927731066025161016571714943564100633313602205404595537581901832614194500523617851389770455281286526797027439788759385879411874011725108438373641964990204902342001449316470041435138317701487685240186637440734410309038643636332550175865198101119073112742448097102854771053575205541299135957821970368614154123702752750090602553940249757044421461675851376400035967761764782070352776465329681247400289491983627425665375667463077977152477242343669277683283845861744835154250990468934104748216866458336013892874739280570410508251170025736186190180579049531493267869141725789534619322573418842557413088224195062010977862441127455571238300359624340476946729662542217112101581062502630834380272240183824513717227803789574711322077894116942424733146232070763415667809755051715094636807289215489480554352010880187187157462425504421283028625127496229497551435100654455327738975877250290269508511797550114353785263683321478527027196316887470336378739955111866248428070207742561701648502314726890792555822707196690578326042441298568953208314893846172721194583215903173403803466329304256589175638197098445594825712938145403139039723038624746549628131378800514018285740708854968004666792077796441081859837750959084444343368639058992429075898684859534898856658429338732682147095956639786324976048618012155111691567716654820683949594930090705018667643985952566539794963630661517009417698633242087307313205084913124019398419239268299775931702004402924329999727333483252859053453005015342892168504429607651516134157144426311621212126560374427237439381163307110897268102299579156874534816875691225067611292181683637070261152261420257084002850849676898304422500083704500719302890074414594439640243022524156765240654530241109426138728216444757826015174232950849175665401981769340479198218737675146627849333615859433250494511563108717770386889677867425103357081965469157272522964445982749155615931261205858123539486549185141860206312238762153336874823907976286328828579841659221391397315034427496804438872154603030203444851976447211604682860742155834833063710469119676513593492910421238905516977352254279526801979740254358227116795670006106155251368620671335182234136685258366164868839241139030571912428166452612300553646929380239918792860159548019585815809662126776621262722666551900928324288800977220225780373200194061150020681493686702441124087130479017782212319522932684587272664241675002388126553156908888335861743800546170992970399855430484106950655677043563358653398311367540272747584762640587008167825672732196903271111714282638017544530122590987446016644649983696108203451521339277612791560493326666864187255382469787750500358758128796528482067885975972040267912156853537222348331691336474557644414368627821382236659395003566304807196416219261451402551155763350987289957963387016699187179075380711349209584219506520777765319373700236199638363362838190930100161302524973217679538758940218397155187542743753452744321867822614684718943654776112104149280851604356432094221940465407145252514321006873098810330921443572239372205070709108658361997669961127189413941799053604314977595550508375412756039919274050719773861524052981170046468045233584962421302409163106409410941653565461215911579030399711622956749349610730804709909297174914644288432656751960034257946246930823980815579662275005629260568483735661615196647751162637185859395624975301342061578411559476470091111217725798424997547874911835710284226173830274242108315647146377771258708288325971334493367616028737403287082889430660981961247264669233395173587754348579946480038971070950451754018260261782598556981507418189713683125271177574478601797247308379268567797465658307107458931069670841638677726206713126515964807192004706710299652905761242168556156148493839274599149118825175746211406942840593968502373955531162400674408881397621263646391050308478634504065129007427988388883532461868052476849688055367577098829519077657271051192677406860887219748231157600674477888517789995340721403496429962768975473956124229818211786200280975215496763144347669365244374378283506546652629802025029743819637379534939778887754564784177230324306024859912030190687054189304289886445772957245418897674856284707382901904205405634760827227719912471656084573475342353780279582231757216311389620285277204271299711950961840024808222741114963867519855747423669449738605339049209581402730586994607188507593449300630568214154535834455837472911516140429517816364168022349292393479781346024354049110157502728265958400895793215022746164439210674315840744153881417340353499541418605618845850390459998684676738734682245200920557655267936741528360805752201221576990490425026507740780403282795873524609778488266078704271007911505112220352812038236420491338611514738702170359403896124697362793068899982686794828909854023067299233354656518496761596663261822873278949761760052799367633381459967025799845824891337517980161259335823347686397825327507149446138610209788701451294999945234184246014746708248776094680206967493283191774116767147326269753091666998987005343524111330262641515311884659332428820703549611318855021357667852737521789893062277252167905299971818345899783793910633067615963765700238741518184265007806342674555273129371253135493119405184130059122011583564897936830529486402475186785912181787559337730411059796991131934884751516439293182267275452365103330210243644480970736174501197831968290909638553413558868061499067582390619819558192027617698660077613642017786567336165036498737428213662670685183181126979052936543716327996606507995910767520077946634779292861854120895811089867538360018127228039365495481871205344152075377520006836673061898833299371797152559750991332471386893693914478866262200538169603673284338638698060726749057823859054365815658784973660983751577337081972623949184357781192666508470819236997338149299192743852310058110933580908862312094075412701839767490812555807168995495962382207834841347606127111215949278827209981870972578877354838076048184876637520206366759372441992154285830648187496940155250522465001483225098880139355181606829048004595248950366847262709524190019502963001145601705268427388647183713449057368966968250505436166594590793016451167378564727970342104235437084394271089955743263735819247602054544603034428262504901796132131041570084626571721397422899536428219938808749987151222661205048087959990041325609136006242309497018666889283128873075475152622506217974617699825981788733510779795511645570241426143781291729076919995745892729207842361412053725397847339125092070977928733621486808819173248106921676270766738945024354509439080925544766473757576746483109350190732002845109474251631565419681261657362797177697984122616626432371210191089150498686311099537813308884472432923815280722739467641659495687098664762863859622698567027582915556112836981986497026723069882142398462423897230582988978166292799620777351895965536837183174876561031839692963062424471210008580190650396127991204702387395551066020085654617815565210273307296184202462606805961124485867282943258440176294770696861490797491083686212807350570494342278627144396486910118181378872563993580427840850516172192684820771611628135764107495109379344041815431331639409822043398281073158304262680152860712676919548026653990824372769637060961139664818465981702181738304581995315182829058961089094797082042804310632830286656576563719999757639694043436263919823338933927361200650327932687592795196977737391837006786931861033339267032623475910621739526111344315396609258965892761653547906632953060482839303840504774977700410956688284235324912492087892736571118660732967023589869096150487104637512385071027257259206330922543461021720310817266875601509013261369167531291268576872949314438755963834536718383593868100852961707544704163951013112824507884018510395637017945448960746666876332172404178341665645894560352193942224358511648546225391046524275397822997402328830384212557987074414480460328337687671855928186984004696391749102636954978630859458124386116972062129521058576473534137357606633858882394672683254773023156914409891856043570625833123995327916518528311286719221052702889109330966725663048312111754619883786668125221520640221001730667311966425914133775350208298618344372617841792153329601512658208684077387380738740004319554120093837646091664305614918417687479144761113196955866978175740116654802801046586757815968219028379579053801981028916164443497501314794397105723991542795547705421590274526354822107842219652000173762083212372953330209200084575134775289784771236749686470084280752839841757395422405999810574368839138833143805253561769946460395055834256257277871224857804164629887627145686763094638248834097881094115349725295184642877559866389287699762245290361755241623884604110733643473773165584131370415914422853041049269227449472227174016548780979025828296802036916034749701246404342231216724439004277825625462227503341489878576659994030690962236772729885472969701728619287195370580975888346988677935822092833223803135500708086153211483737258335673346621056040239923924956505250585747058615761599856205248312457662501105680971146952724268707672768959614649856093692029956940993861755227174609400950183760245638706792947247492039541165782098952289317030217424611404513392492773212337481604098260102296825230985304473105060135624280415069881431124086220790290033934972742820375788401435211544767004165861529741843193285248241328676982909906509868271376194247711948858188329410153573270006667272965404556856975862344292184949110237404274405923737647171012221844019724622062357465411992738137360057566734452505969778467025371967991060546898736657592349456041937378077156170899013342370210944589871194868385273547321653862950560722268392378043991341043871306581160553273316134877380095328990799545285291959892053659653076939046006742118162108522457121382246051968780908966772722498705259304036623761065168177544247375905464791829752066178007832253147114462113674547987975812470071096991830727949583345675506068688222028387415981781524209588309099845684273494624974298856854973124821669830149071058821012715068308605324084504973942949584879457341162118387170254196832880451416105325055381388511757957357670522452668005443672161450957141956566824607551442658697584676088797050015129773476100753020305092809792830063099162717486685345792528529972999547744487309329283061769134439979676493431011375703193305309908558862629988280276901074915152741220088998068704142434215318127333840282726911870240908847353581557850764020667015906026079083420332980706213193301569562301971233803956748443854053942236045661692654674961787118745019066219283953740664667694231757593394930006755228751148154278202409862231035924828792706574762493914226664500185726723228129311825621267154261602510066291888557401263561980674299572973797895687351036590447197261099382053295222853281002173561866110861158872499491603606751942600635767826341726749144975681723065319287523733357671348276741603252299973315467609786679990551232327643546798770154741053735737072447528265822608794921308652728844801276374338057696931456096103086971962241550851796621305796144151360056600645051106720782655377761884071897176682057744254245503845543009033800615786332243004191920271755019361155656085041574608162847395984838912519044384562648407562557282583323276317350986525829789643933300525447263175400985771779662824997761736978983690884403381148942477003861023297044683051920040583456288369615811075260100643204147966268820354973810042237612543889313255548353105103519134655308147257943531665661605681636103455585677359224206428896066782441470154216207439415872160556134323343062175008767684583971276282323561592188461472643400519770768046993515378913772145017968544433584334522472906504981863046856624775608658574263618882206999624330434177516972530788139839383944591827867798284562377409544349378697592260821966684186386512322893465497004443785995637254215862532748642647055637427078942973672752956614784818769108874772068878212922737778139875836725685938310322538025857224731926718473391735521463515764631940337401408917980387491222302788802791234125689400032701474997575027417942507037351425366306304706927590413105394150457535165271810964729644356410782116306225358886051825650479717167446466934753401840104876495775068165835854302607882650311006303814962647302438397557588720430655894044384475468739704311465626258387275484973667308860376978762101708036646287118672429740986144639057620300470275536731491658238350916743810083603763712186904723782692499604412941892076609073393354891190864850026079738489080651134823202948123542471723433934046369496726215983062337927342908868955481363976453383284361816335452602467175317913176343195952769577491369926633933164279945454036614063946461536210260036814765069681895413008454267892326857405752626274076102551295448049312133203059906150298345358450685143737808432889539300448035606443762085982942827043860115234729599287664734399339605159039422857379615050555600810919634755259892723302555782789856582137064487155493628899478647007589847582788193210660274188769683055185488741176735455242752771393475716905045630399118239936077523029469702289805362351347654223930311226102564827873383250594889906984472126939194655851438721513168655980746609616468331228734851911563331851256233554112310716738818128672293389162800796152487198301546605387526873327604551066189131364472854613667618568362799770760748259268724890226006655554007019044072663987214088835520226988902020568172214675579437321868518872457182561929843525780415953213478107935571086123860713247682453006937662384479899426821046909062630945548473286333641378740438310273258601631015301712800284005423195756585865489714362483379257389636326877183548956837022773199477348704414203516364001014661460661989277922146935892295136025043886035884166834174035335666402504055993365030758891666148134976637553476604734651356794188073148543513150808585934216093961703336157214750340520719459215920275415500733514073716515659359752539083275344041643545843555362864637340643314181963112307750590508565805574638793373338672520986972714043119551599812108294429195960974726721818192618544387184678714902697690953410453838171558434052628408190939963419010394705397917120697515984370826001533357528850028112229030337768618187158091341215793283280413645021017886010578194735523068204711558607658559223159610699920755366697178297801545059180049373313932340410299754814049784756564053420492800537378102203497693231137066218246506843142336350928100215719034221185274870846473244392828000457228157673997629881832240750533360548557826195513386543939526596371348933891348153130592427526767684821348329728464282839123187737790826785609611916399408087362439347423240602011193611546139804857277605308585967119663480205521155592479861597427995327080428291685893084006452870335692343619101411548493175192717896587000756127185048319428627416195265764889000567734695460149360085325963765884576989112813286593866167405408187179754946788078160292661521211847177217331786280057421396984240793255242991596113517774583406760022294823117870646918500793385596842713243449900433117916656562393560836555477500440704848683138717126852557114752034768083232688820847857329981490876679583757261570650821415806741679439972373790249525424289243713132729927009145022386313271129487492408613908123635422045856692905390301042108179563277023208556811738785319410897588074011548409646109102311517585059314107350531166270452752616509589420830276832810043367611749622128393974158367621502351918215514345959229567612365532412071852667999829145142745393046720000284268899010528436785528433659000803609238810133861482844285609628838180713508410602478911273983261528062288118216602325689942405035208602642122612553330439500195743879801227521776970913332622720513640084679754704447077463892904712333847935775760730143666678235243461919393852743958644970798347364310805836074927703915502580965221152433858538501616147356166069055573561912256789860964983774566651742772537863143912859811582733915678266402354207747949149551309481970054714114192785230864404022916494529310789197485170830592093379227146602282725325668247349408785918371768873417564528390624639393299855092732458357037520683039736487521926725077170237594171484655729993125429671529011454574308099265802059892625412398487988255345741818394835758437288363565641988901453266958825641532738897296673744954726967931309080806778369807700254967701851168515868949564840102614482441704441999272749906517592089426368024084050548202643131390979857133784804323889868236708378197795680087334384954731174109500267861304160592455262080935758723486281990225838895099977015833362594925891931694502403537923310155064148697462206186590756585419435946851163012032907726955373189796761201819670725339192893533410874011893015778791282139440075998053754237452949651261016918396018502072121115268366631365331052489885054162217308886963584283179430748926956721345770413050243926550373210557535865608371904649914300217538977904640307579674910385843197525311766144595815005283139814607652167412665698821268940021245294929812717972099680011798531679102056417870524853388747631721596102242795015811910991662154162475620254124317900411537324457676663541701376233570048391194107333240744696648403146108564965615581287824048450153809282697907827380989217082441435914795776101800340017684354806996001693282944936550498338530462924168502935140105517713714236292561606719182297188632782788909902635034414821268562505933093803356993489252239849077367765954660444267158698827227643581506511629541235016473492308533681147047204128289879259649360774701330031076394426400342601003625209089705712383042617274089900768931910106920718439339538441773917881047706716456181374784131236335618368744727343593522280602745974586721711595436150269005222012691583900119018160497000838398674949470813615495708056405640576060737019477932182984226827325626941338354102928790346270986896831023859967242668557240861738573760366162311694467930019295316014860055289537785895757307116017463263172898154078581740280703085439072446383088279275360016620297029495168819127880250487508175776555928738092502718028171572070191247665586474578313711195790159920829506405901005118595768585682339853018740960140268835078249719928944835613660316810319123865901762134116136215874408189100772247377820046372227398407618418613369536203973844172303145581062643280706230448541449306880079272825103921737778289570737130469029461380371867677617711976800938890569605215610689368946029267022378774015753654974022314001082339099014118545042022884272759051501369233035430160471819577480744166259300363077142513039810652482497489242397624607053998122816828407097916428769227906856309020424826557408915563451397608717521023926048430778195511292072012493040213219046132161481921299628733752315585177426036142650894250202505187657334880414820073953568838189861580924132660687824761422843539143414717036173665204483643779783689112845609573027934814557830039830490887930741024718511775649739969565844609440924811992101735713661364151687251989797098149808923806736064189309284202036800038847023497479059436495154434769718599259648166013105837060936533894141446493163883545670009733488008120302470577976760368014943654191230470651057788697327548735835735782059134271649669670904955609478240948962623569039104644478870174108730938107779194100776291885848037534159520820406465866872500348454650492942716895498530927265559675214467808373255834884655101889141939239200421940939100264286132951076407250674570048533760430712577535489559324604229546009139992689755132076932602741351441132766995146115911687166814309516415038669916230698043868387156321175518600843220809492695770946555219229369546117697235245824185347855098004586313456390578282626235797356732669053388920806967519333441329526975197721945568819288864514226916540678649635792235364276752655559785923449649903357874189944941454340555742527363417329133280921062387787944957088826296352756554476815864145326110468738465621929641816289702834740843520357265838528598925986206852394490315607099397488019006927821090136374561098850431102942290744277437114666776029653886714447593493152039561541134038330867876014670029018684451652402570092294762837317965681767070175819550014680535855229517710837103168096969755236395588653037702966217736021635882985470367070807679047445667968363068892025866403526266324604638058440575920314963152994951102911999439101183836224619255643488849642227838100673584663566509113300777024611465690775220456564246346602132699479679134720244544835668836644484513876652018686881921881710669846427117243108665186487401638086844314921812709736172986662875039334525972308993101117665178593034161328832810195993055185001361664320790308626432417016372004015166675948225430030501021814197312842852679631971075439293289070662424869872001925896254778039070771624575221202569471351268701511781956506235289929287559642130615036761204542731149900352439923784914287075793573843956703525244712103833959420401683462457765615680848166997134924103424303373066148267828793854702399167898011551783202168859262909783880929000013185290809389550822497951570418110725407164922232269604298067695709826937374236296367696340856496085418138459892359120813625946309238453151034201909346277420006474999224939317950464332106531482048887763885614218010939493173930297515040898946059677892749173140503553168732162280594250704543710071722114267194557249641030673252161789269400854333551269695524124806164284479839499458230113393653386977719994401694633079102075008495893314535645277621127580024438766564074886413458400985669790670672612837649954549162623624592727645477836555655202325328608397344494301584080528558881853429807522742088085595706887535034537605620162134141427384885114409046800055292657843154625109306435232107177136892307562259447566057904636348005305311708487147784738821883719217103382573370480842622302166006239669442707339452301509873939373631688717047512376186977958892102676213051218544513224269119085330937073143539658549315461728594489939381937740990735631184567993332059740262186521942627619555610292550032987319441778112846086122727518158256866307666966515590265777599099478980063162934128542889577790451932777399962032820818432344462459282999904839703509228875086297146804792784766226276274958716538703783200562843890921104954577481335488332973551014802440385813678174403357494579827434298161180510001107721330358259322254514428709088259616176851595283769211168695682250670684805342392287691124357640513604796812631861371686477457719853668728136303689292878280940770033263563313519912485503580229654732559816590641438829341837110553167540877094588706512820691978702124784828854365452958101124750787021430975517120404083786078639569314464972973159481585345788265189802849511666881428024337292012661885069542589050518951795089065213421879295480303363853890697185990991349689643710364359700924792844211898025900324038855929629396349372480892818256475533517576130820444682955566718609467369271809896219724328199986887426800562884621457082758586279030791817801022538722401688615583686577946708193314482327989157842581421398910346121130431299142114050767332698454383346521835090313966409844163019720322240356914300863655618107431949915476788298990884225851437044498188866671677180803759200299072402911418317776230335131662013213606878363052215740918778384276469086049408832798215249468107162035180203132074247939380675277990643839660544766328336148417733993684495845003514053014369727687272059260565539761020604996840780141282350033547152593454536463657524810014852793519123339815836464786689558623028518324971633038120434574727475913668064291718239272661458300714234611494946194563915364187801002258693603530916805822666900969950176313412308452517574001146697127631258399460763291598100260782605973443237450682743776293980491453894490560232203913291797375113047190621055695419478636366719226937704007280123126242709356125137354082107515298280425133758089784016682374145003448410921847534279562617610863381774821823802014984234702937429840403514680935383352543105357792901049658876961744456881677400104989890236115761390323246036827535804229034445428986098186872434810354872672439845254491726447079809711847309289533441230767206874773686146363377330373942653864494399297207380890124783742593755035181810398765695385325938464735933269899125405840427358238303642555273782289264779166958596311601597195869360300095998481473118218994164772209075738028191369912775635413078892519481119498086363960517684330708348410715878059901960048856481309610084956147554815963366663400268576481737519811854027691950205620895249111699241350923465321086023584096695015798991862786766149959457937092143763175132642362339760687750254664205011009387157044455032348971337171027339721819946400143858797707537429211913213803710615389355468106672883094168502370645259479617584157690630106158674281982229196914389610358783414978599080599228783785992766228473782200727380990176254665585260923059431310673925128962386626139250905316386393743803596952645815984262118994699635355948404547405421463273047263307898354010480910836636607883180623976134578237082107663299380782062648156674393314415392730684472761725119434346888723219134102692112981000557579923853616971020363804231446931951827744026095479346861723686841776374018530571568535367742648247736402181282955531653647978548391455466767404595468071423031286768895964142229803490070743435678215131176431832361624885280730003648199168895307220923896294566686650789931174543432705799252407150793140708224271941203222352762615583292850953649092769668372052064489538435926204972826410473466458959906908406271828220316138670284080524878940601050335240710300142823687879357013840640673605812460245363691659859208276850213601905853465567669905346545226310429866442089920510715902389133947943354897816483364247057511450763467612995036413128508198353802220287495554949546676911978789203177365725285968656382115338671814938999760172697326184153666318226004762004300263741326228316388774086083669743288386205494490270041965434483258340625500493844756727939043326753553948758666075281671562698370519831026880915597893837189505108382740785407408368214683643172943978883410103799937971422278327839758683379595290897002015797939571507060910225114961033716058303199845277548934757443404079454453439787229722694702018428037351086438405715661087401604697629593728401595631490002133161990044068268478918912028188994862134523515854992916623615401443244552502304716832621401001666092980752703407806269761742820076163277889351792135955374580805382573298043778132358763841578646820351349950450784964873861675871438827276037532384386752416376962378168965629401018147885406425482243847982165687339132481473755832897701193511872532979010188854183209833627575551456581924697456039125216071613770547168024150501295393171064734809966690601128310969207318668886857189755912945414805656148585726802182051565934588091983024339946678909814606196004108373488199489031457628577083549855835348676177727213989183723687738411210159481481726345811741049806576696294319790033832183532263920795837606236052703106798544970477249436851584004496830237819309525150376655775342799162259410905307966904583677721627547978011617240173684891742397912445986696382826910795385397886579734563038224335908693360333225870321324514218886358331240773463677243382738203949108691759549832658512139775797978852116274882261180904482141764440815054322974558020302946326163235005677503760378712251251841636281598425434668253098231929136646784550823214383552082469328057999345505478787633667066744614809446741811478951606512313654080130239564878735172533991649386427916271301550826936474002895579010897453874581634882425884516308723734207996758561077972816692961910868191012249676059362455243962176065480243341461203084248316889403177751114009974875664358612861305233782117754332858255967670026829537204284746925162180778930600864867575371370786232964402506689654927966237537493987882576079173411409587844088991189925585507394113007825701181906192860741669665200417905715976683615487541710918317196184953421800729028995664529935161411113996860713335663239715739676782341216683796631433095464862397748566722612495383931972709994962539489130780046400676838177537528192696823264258566577263891604816133005160157881068084691324771869110832580220452014720886457800469408903417369860974820015567108214863864426150287897402657672007841194595106466419073786087547536073561293574638588142842800193280746351292936929295617731154728783490565524351671704515649462131934303606310159914035502842680989577965336830589522352815941231227378218709625469551696341474195647697863835176199339871345287901384067173371919944217262365029972443422916515740488121770109454286311550496579164450509525805094741297507513341379428447761470236143042934338925174395830428030515250292422108107551813710867437523086874162992127962595347634344935840002333185109318707714101311646121564351321584577004654954268260284546222199828544245510783748998975043476087131410355899285744683247894688291189137323347833434045355613651724506631222481456418336694915302418975221893070441403326295276935852935213799066709865351718099829440412228813444494956101010584220632121524384230473974897690174806822562000300990107058305884054973857916201730951302505201200764119422620745884165614619560240703109032960655901675123968016188915691709275338199219493685825358319030874006171975386604808666098224184102634799935136035253273341582985535229716180030666115218091295839835359139031930522380329737799802556755383431217129898981720899083931490202197069518034176624831704653318112308965972332931473103505648057258156452054674268885245493671786446210062473410857093084695524793122341089965946578290418855582206090141175417804594359537719131612032306480325889542446350791703362485715977083658104775515743806898148970902537149947724967460861536706764178633455282717703638683254449545047200655302077807841733333732288710035104522295825952357212704832813790838689181982988060186691866561630351469766502818076943837849373477908234571258528402494089530431388974899406297536290988789295110795858900398568085806327861388759002793758685509834987240827257983824952318520198670182237185540429538512030031396611936797698972342625499864666969564532581876517859101092740019069681596808073719999355395550937161699579075823208970736173354906200578536094201149128414052349045720178340070901988027370276774288052774440063039353961870290739256915929779846173521706582525157499695955555855077372766084349222202720278708661077495861787837139387296537871252897723661805696671232470008882775681194681932961298594231596125159837639939118849901715457867285201679085516114967755437858050532865169587582715714243117700277202320126357561679940094456550701101222693212893258283252099837251899340868294884202213022878573240222204153402660353656710830398500155019891566722247641555449022555217725741481110631009161192971624368788956141038496071185851728604034147237603126958414552280455038363173215316378317805672667285247153995483904910885556397603568337216718923541641011494619031223870195592540596669407126248369749390318254278377388726244977887440177357357374977179788635907358385843310070554059163805313391974992381425588671715085607906841018078052158449934985385056378329051099148738409991613601578450012437131322945864433799240937902666226209677492027143014865828676641606153692746241298244479079422024230150815498633591990871787287794601744566278721186351773912034084352962568944800991148593825570996918460064183165017670327201909552924815694726569692847811686307278773230082132391531848175103916520114241503812114724866316857147979985874409572037541518317314915842881333097002347761197371636981025729246187296241149830949912074810472191691110457113029335062553506844335305055767360529868468121717649096278274278149668933049785143961305517024511934446089421140370747385496846939879835944888118717190463399449550517563768655134645979829434746352357329460665738983703552777387812919070182314175684176236915121433937831196504777764405119126498659368474521983462563609368267369102815153875753099679317522891052800419368267504753783377480847212979938230161530544477620287662700457441022809198936868655115508589706345201457108757892741731416333599704724274059985913660019287552972067010585627887341582690405132620781566367497353541946154424825057215037239634865282348525416353418435172915983397621892911389794504732038253958108485813336173706328269867465719971994605321247028336554643129283620133905167802926389654497603727564481229527658470750233236111108281544705722715190326197489698134681112989220770726336682231971903437488214276070879016627485885834979674108076126542328716656296162085786584921692304967258456711063901716299533084639452832797358812243932354366169952204441414165002461522414244148014146300274006816677271932576549885813659643255137885056063799271113848672932047685015436755470938952942493838293252542005202602890768722354812993839476014813019058731287845760801486482518206968491830203583636147934145818754655379876224777524685229267390060079404706749469831996105842813130654630744005874988911413179239086173758503425797184870872079533648394155526293383076114896105956173841256463911699740868542719066646516147212547475908128847627816655351268982540191354820936238929589654431719842482965136504737438041910256646291383666791337819944754439098150792254802377697523028218236107964418559580869975648547880904235135572584580392618913761897441875543754219333645556195373552437906846832355789905426379752659689536204064338901732773871692756348894845859803370414023282989051921210081360409471375202609080429650474906850600405770373622912629430113357318688200741543219208187205663638137982118614877169300049650633680749487789042668767195268635159266337180143023883309369909174978514851440818460478198096987795111073754295189261931217290966859807237670276519388260801339366021300513030134416067060940236423569577134254955413346426493678023416482056984893882836174424321068904668562899134844593690268183694244593073493514772355119112814256854593100690479533256818452940542151050453368941064828658537504900352639249061085485807208110354537215570843544628196720030056369913009053647557092032284881981520484605194223694745536720484773574494963448162375859530984538148552745883043527533602035310741431780934831687364105762248180679523457420237895164558347908579128623326315486663735155900029108036556503323621771793435192976627365387660419703834276173778071263610941524052071651671817224260617097195261999166590520481223220670654432444695995200613119449015512442624203201408154900049212069665631218136589629119172492604837128344786283530829342666848865971670276010451683968868796916868744960194315183342201500616651092793794564017616357768506069145714628716693551300918333608480427033318249440965088819659534405232405177181870137184177341612685376459377504101800291514867267685785763313778011228769101708231908411877560380883753434384566573021921625045839190508745199320679577667836077218452941752325437556988921224527813100023257620872351568933546231462425047762701710740341288682123758872805464695870089468225036154458724246883447408553633774961649966717656733220677638796746033242554890912120056990989772483143751979960572251197389610568661205028693047368923800892277419002724777158813253206373254375399899251244631741884459423984653885203046747684916021200969499456228474845763871549922589047244293404821005504518080483719254545507669432869070032322113028203854141542828926266546720165463761980000094314740814394176409622291488206186334657569044027601518756227642927241484073861588822264546315763608181370579667486742636063987440850574265290314077800773296978543161515344621344362731651917350190158410207420210047511162833651736462660748593743320255693548594741034901341617134250218867973028796221785416726854399526996971521336372529524662135326366856000485039582462084455947285237294986583855459410654488761016673836110234110246209792718632004361242408489316285777469134250367730628031493089989853785044177404383600683105431806631907343252856271562028769769121190892366596148359689415035191072068886387958698537373098490295573945468979947595772706798580642582696989310833509001301346423283285846331929864922553173875001359879338801651219176125978577765760045822467708509486686341390503635320630417853093779076651452841323963332919057320947153518228880591349104346765184900049326414559641157278324846166032416518205280100144393044274922171987301694499819307911949735617437043528772844334199033693797299867633289042112416060590790180659497832130259222478961857191142881960453371431599798266685231679867962927814065096812704742861501526950481191831052939675614572938639520715697984069130656591360831877719643785085967254171300597523779397445705583794307541173211426718113848646589363077562788016835846076983940346078792282287132294501797490160863930171846746745076174866504883761149917123256519481069977969021548313270470944058110281288191525779336283567120483328362796728758524713320225674897081905059634620244230144033464654844833887749649270399791600497693261120284440451224313114919178317767944440244557176648530626460265104879756497804305498139840570632126206087426836405602903999268693316936445655502805473910817290018239742198952396860054270809109909400517402246923662589709249032750486256777517093649766848841073221788746506411954952460733577110415399996253124920203844453174223813519319384602431458362409026835052412977292277989710696505177077491689689478992129942627200227283462161395803107887511080444412144421085167806284685366331153342583446445724426531917265984728631153520910558832410869627495130086812593428004682193055712103492158253329531654816234844024313361794936226128304108467497308937709110608488231320738539573021929237965075757031814588081664860954562320169595748117168419722963442099781705535870801393586357135391637215542788695994205191801489443830155747749889653346666447349692801720756282541350245492511943070003385876663029071317105439556674526988624056240943209809775516256060771520050937339279722611023116931271208832103525065958733970232039532941302194892956472288763663241180846233869921554028899851686551894868138098609976117958286203694942044240405921488334212669423469529061461328313881322257413290597894900868625290047933620275243681523106738567820131211292704126925067658135036290747590045489061463296680800411677422781625790802894282861449109922755470948420066369317819020031530506871222915004637008405805016939074906121187542079188814291212978214588751375740532747735544524071566548418694597643278405724808747594031563738989519017904368824061934803829345169342543024182524637935091303399499470274625572667308636015106287634563473288908806485878192681299294628788216603664699594455955642121878630015459069097132956249717495970267988383162698278307153827481906997819410622115637099392341016812298122059843801860573036810221952880048088043285959374126507230685438548654687483176507973356987128442631531299873560488436881904404353113942201131506275926105062076525042929238559360850910445112420856429126056177937412865465404241241799939128387847352527951756469862102016746265322719553603976854078151982645548093067696017978123394900496922591755988599373579636699031967345216564170850843716002855698983639613000984013431544683259932783104572764117601788841901163456815250529664962426866085220388021517429074507122548786504181238780230002738305948476696690191385248818764223909533190479440130797727903107232977386103216416986268789937965963641346151704830462737967942466164510090601193445947654654865436934044660666976334989343063963972146695897614989424612231548279421202198591451345175704836721573217168674330625665590820952282979955298214731353902056014381447161513922126110622576056454966984564469772000501891018095329131275125154689024363822407058999038471346104107911204046537111858653997707797041539338596405413858703695897760283182408358907817909059100134891417624563214841311864126857100477229338359323614249032867235064509846341510289261473918293789923308011150080570914669969038652897507508696437078064971925039392419496776881888665883810609700054589328765743841003619905673533251167108232382185846952725402374925699428350511051048042919734902254692433593002907780323185267889557330832869496109851850011468408884837556309925603319231813303304913011883293380959082142429742328543574726546434425356251403407786880639375337179148980608305312262104203629133573477390421543510570498177957161623686521061418984655634527266322891580392869196822727712126371796595134463478073638478759807655008783239101507478742077364368505328424248668859762248252917997028201144612690072724204354227685108758048989734453353191618946201273257809992307849503090015896795766529787481692738753538832713145805483027978502895603383010019977452206905817318432637875288029631652247873749644002303892534288155508465615818263207008608485324122634833106631896293305426044293799125002616253321961101541090402073171956688212956841840249333715510978030896136898002602187418565150622589288197821883142125557374354888805020251220124552436811164263288890743993914871679157688746633825183359931545189329103431812230302052778894018941224771196918302246827181562026857182047372123850537316058217244509916777336950306919846860784310245011263458269981117951850733173690694468857820167746436754260650024318026095462693015721287563682503163404708461594908421244921721875087792244445970777697680673255860655672105225975867412551753553978869933377790549724664448956260557680930261026471019421868079702603315079764267754445201272867338018465821725026870246637323806722132645747331760015829305245923755190576834418939575646342535947202050757549314322550373385138757244954696057097879569596023894582937599872494666801850959870185593592664815952180351510605683850079136870109398459108564271880104322226272553813823408181584665823993659462074375261982091589593644235506938292388261431603536514217914033857017799182604859063621879463695254724408283185402304010994261801450627989501349969553468119959772789343435656219385166977388155995795337554127712437049953898573833708700385321941986343287770360285153200890274594520843660236923807301059128028657486110098441434011895999634228456086481588940047047567297207530873885644933464426593229819285320871690019738829435787486360984692967633878999144157254119961176412147038687786669582655354411656917955538931946536329258387567905156575422108132800985714616171780864609815534098264808012940380146848465592955469744221652601594250375871481255749930979555139612280820345654171328297011579109269181943974303236632303368607652697824875256816732619599280894945521991213858585131904242727584906362109771914778600354046627541386956992454360976010727324177457474261432679669137817898092772205828445508125077741070398875404331505275629423815460404090981005985940884725820744874507296237683062332131670028186027609341217846755624289432752370511974334933401105723658732098468885243177202227703383017826265103305508414011121128056948552398539191258887001221036174624773568340567520986718191489520191402575207366424606153065021367149782326446636855789686473725182046484696151604908627307268898650748309450068060494146386012038245535142570647133274106519779843752063716826355652503852180105735560200325054364398982669359868698667898109764471660709050546040317833326954756283997088880961876277122634549396672475675070540671769095158056250229993965699805937120588180913045274286083949262225324848384288582939425730615612124524016464805680535756165318928503102172296824959548649734960975309363962856090482478757454233982903234125255850356633814059834771556126741969904138024038991714530084919170446110507788356598033554716946742734930656119118567070448584432494326442603193209790972739932572515012016657950675580635738543972776073706873286135665580267225717174812136137724200666517711873449475863742591690023901084107914151428468462058749940274649154725146660789594026658705310822015013993826201472663321730473564529887081831257641692065139688226535785072099281836398119040413194783495991336252039032537357287050676481776917390069926167857973662396323980176715670913824046014299842900307176341174409949059166463022214883543634288836047515520420019507897334790597499049486864030708390035310064140013116386761691333318939756911548171916714949136967121612784948772260842754820660417296949196730938130655351147676617870302241889039790746634824204058650691620582731847625909050213322688210978379406163154537957791561660653385682299992060061827529645345179751188269371649193922195596032531290950856192024491105887423702726984988477752208906269055532054516368447157426825122268197853692466009378139803913051268083341394509812475000855144945134558060040400477659497289825105334379257140255702157023333801148501066555257806603010458786732663959838004079616580351778691545593894287429749356519936508929489386589591495528410203619600407072121736660389713743002330671024916295410701023120024622882753967415812820693574869697681466536199068620475525168992255347912882492635405073050691739151780147888850248902627032728771555423005164951205460813669334274918406480480918288386976769121818432797930097916008628409008779443767377820100108664889058748834466294173303855688585756297309504379372907605580475122273480260887198083471361247573505356094407433867359472317046242706884728564013766066728861414613636657034029759631526708182989897523474030713565954181766582965888243484473696331478400936435150059207578390241089454314993303784587823651081440345511335938604941527645873380310542852151570114531958669361424449371066071100020842566084567441748731604151257160623475071865909011634345314175308259558890666208137109554773772577172126793273247944593904893089666612927585700087313392683932458375182272313888988735060820503667394743700831555029215991063011647684459978382622356250412754275776231531547115563983707583949155328451147074158852942262278139561214768220726835773245404355246028393534024568737929571404923476759442600139743239073360323382110022135536793564472646281859657504992358546773339267464514255792633325314959894504508101066070128320880970127825727818525730442705506458882343785811357945612324140180418061464834797289699728414137750224195156653556606271432478664787815839862638204513440070000596565629764192205632480715506888570752860360616690331446633830463106794643225099224442922100747199571004039211604326206069883681472112195001686213328772327421706140342515177515440995336557976965976582723506527785950080766309122316789143715119418239258130750910478073715594642345963020776505571317116280330326450375583775402633249485696401727296132375990808950322101542656136496756269277057946247448286372631941249691697806105240866854680719603428151964226285651917063321093446879421450918351210312989844405411995584690997166625814737326686822765791485539498839844019217465292485066202236377800568385793765798587977369576910294180297938704670810305320343563439800934123745114350249911359429352456094923473961191944126912333904458512591981808755851831084731860158584901714528836492761168749123389074531568647189648724673295217280575319881213260728843761918982387415789982366777375229627955877754802966828218009890235186059540606237894246546658310577939782730232933777239311149935173058758564535771099404218761216789315118954079060363171161773908614982910682426600185572398020607289583336269913483074261377677639257851867264561086101323909630297528944712864228484833991302192904907148918019933910586729296855795507358865111859316203757284628120129813022526814315933709292887403247305219149789584722347528639155421080714157340534308881867531379951663722905012811512667342679486256656520852038479514592994335283359582372982803418622654970708091052537290601726778160940907465301705959262034163824181049316935719728757119478000412191342919958137534273745686203392267767858541915281773814790066199427200622958972839037620699722293947902602624471135916843909100951079764147934824577159450087059484080169130986850525654697720069115922935301989152619085946874625634864990744389621723109840542186940485798086221447984642015188074483066145608517499224228824124195735285754660991613073829865198888434140957539126713653002776943162102555634194690657735786195624378776947910449386797350358636354971070422606865017830051611866691195816560829715517279433466372348180105652393063481835786014609019932801091462118939721277206983267445537353706604116288390856259409336352449111504610049061365858994548133696334206969733741531495440256484436096058989286075533227076332076702200478927665913024590616989746401526250050263742201787479126159394287567387007225091273048746205521312134354339768277857052056354189676921016027833969442052931185935687132831964692483047881746848687118661940629389182240731442978442867220961659990012100383219558788966113036242908740027390422137826947160667693314235341379468127509308070529868814196395272901266778015314329373784296805690743726433147171740632710035984514703469958946938082792728635771754205368940700660132562888469039388575905247976067329060207458599731261639798448560964491001098043970228313458990447202106765806820297743693904708901142123308214771397457558895245325595860195020589564224200528339957254025885727252317372605778754200821891130264473920985192455339300377282309794025487930585987228940248359077617328259742364147964009646934871096292982276578938793692724619097529181891711443382453840303489801888411935286294103236834571560967545715377021591278030437732662996997314209624875984683514833144178689190362712524523431792824038259444706591262094389521899383290209020995811554555744312412109497273916187053264318714330300272357979555225831717104848614544097338779661935057971843677687850342819676363633396830418592888722910118683487058782134240059022929810686054213266867751485561882113763971713431315164998922837986074197391898686569943215312105264924743306808416722633512353429975945581798378490437357375741546460239486174892642318079217159654202912509275950595836599960177439775007166137589872262322609608497611682051903622156504678530875063832302321098728011810906393758786221828090609022416227983330471947703091003541746466111622202986657631240059693981036600154633431024443933707996518128811082272080292284492764853522286130295861912798164822753147386787918216780801823506166940305819613866368016990938893330295970075017092669116967629932029146772382104407016714786308241463774828076840848545740185335691941063831422898044310107672997723326253764687621820823593917188809259544949533201729679845229323282893036918311385813930445960860386844794525205240922676929560178737513254151102497698620013917888207257207273038504081746089376595202947485473854770385896529413764826255656462202660322700536033250219806740253864870573677069215624963504043174937258513179587351910624742187555726400542741666267114679631104948541480248425234114643571396885009091792888955846390563015407650878657720122279889934375787863567628801836165548340949262589230237288829699912367124230696626390340662615255158632367541284022878529392922504289906700683769826037044509437021942843583419555165305278994537053022405117765212733097014140690478488400594584967664866233821619774727508145996365609571647383504350914967563659482381796949440215582491352433575712445835937350776782889971338374395829869358011523030339535039749140055820507060263712189922703610608227786647294755800176265225232139308955735489275326709498837906806876319298035466516760258182056608874733800176509672221037198231623718790762900094750149693404289426865560619564710300023295039451237537446935804542894587836776036612537886698241333732146409561092150699187604889964067781138603408792687814307514006793523806223093859766949301816077695490155043465441855995348188470597320230782128004480247192860953793731367372098337944529611831926737685187356907665604834799170053189547304532213306612960274723857194642407075478227572701126700824681915773416258475793589846895292222495544070544018098902866524668058947708620735721649133334675108842741877339530981933550994558370147610832396203503232731164747937005399996583410669789164878010174238155298299613825727221433689035679558106327744218896706270600284956616572299248813781937268343876118734039857246603783861181920462374776358927364814414365184527534490333586864328662084258744126456182134014588161556155722105306942114000488656489280666908287895586803373497837000003585422426525998342654068105177757058740032616688017843005009977504768845702479555477758617288342423728697869402656996797449441892980811662395119164121595898980648029519813357280304546602909843701831847108302625089132767099938898570273339849224180058719596241309500174488480404793018716066633897048400598532003854487889176641732663198554630622456747898146948708986940285004287779903042780648675323874239813196036978287431473710993179067580051785943708238265205955729718246774865090489583149407468427371016241098781768006569749451766622717893932083145234354225211146576758684686441050561145420331928008638627077123292254837475917097473226735615025012490882258880998702978872248641198685233179344675883063748254860013959717568907023258978443214347439033623122404020478439640638895887569934672386299229494934976586102973429190162323915731319603954070460332517996961420382354340728394655735601684429187608352406371501667908395996943843777489866341046128262686619293286381925819120882602395427479172494162197693090954116997819975080467268075373620704063909513661066272889303726562922681437075843248955176783831088177622022748215634041636498390748056609814374710201119963881501311560221974766379858404303214150838284989371610112085419287295887619555034284824693679008238835555956597607437356615913214538295621753631551570913806558636431310512025679465557607836155553824325992507986354605934439286430132123585414691647103503694262581336076275152485446251253127516549244264677766705177006007757060658455283149052899791779469865478554009170119337291495882946481440638122557377829806746684468591572512723298113729666294954575414398344466545549667189376863760491503330510094560601326733166280760325835341980458911393043168287887472498271796578915000625398276298138514802567537805927425816230812921528086443404271216040271617297608665416674710389253684471785549641266008640331565221888571962012569554633508315871981516564801664639399732260690808878302827927251866683472486569829443660672915362822614375902474287724234535444645608325849694773129945445681441965732992217102979187576088647351764952699763082215906151804125632729095598512004643960988214742258140396681341886092496831139983352913544726334752076174909392886934577824408624093424683676825995898808358150521795641952656418016468132700375512498913077283967726354369974298787758911206299678110799155046118716873856126367616427333517286821609645116891612313444603937963283774896364197699041411059651074413441397892140658671004007023210978012335645343707982053209071045782282336261519004141704515351012625586748066072012523907690454805956409604686687221082825297387444105742896794545171778875466942078543532836282716972348688270348576388360660156794464019106861171835828171650965868347168057935891041901944331675907934978713312231866043064811677616880263242409874078919503359174770025542971457021973274996249871711967767543209311244675904216170624425124806746473230361323888201394290873944436486062684932883387057446132439067283110122643226951628961763094705883975605071905245778874347227466182734224202971955227788308213445028423431627996423017526563487237538692227133769052884738485445308666942311167505447802242238373309350076233902964894844460599623224736825221585608029848091487887026272564069735018304408255130511338014161885775624467873284002848059724308839646872224128304621466228956164588820355917242733224234446242144781406612438608405743589792143474583624543036516711732873118265946859798994730251901491180471010552761749805366487082857071096518386079616907339334445450353146593683406493435725209721348683329431464254110704020344789704134164553440825811774788509458752831161273549195859627701944914211433723461374134398631349624043653876899503743199535665691018485211899915508144838018325235468046043344334805591349828652109788538754707160520957995063816021482308177734987168593194407670996790581019675763584197322151718693455317320113147827427041525689025790570522080220732266758253455985562856317644081935764739321634165717298705612622133657601912200868836713766947253860577211094184632753178587953557841244328885049641933455547780174398738273981995150092894483126460432236472156395948788333580193637632384569500294502017252833253568838206357177944384956726055544484840812987611755681323318051750590116100777861885204177018698595769490247075100690741552949782609112289632735289658440631475250005716232379867020123907901853081896406502886233243891985813457050700299873085772736864073497054233750306445093070088563313919035472296182680531683584898739590836323233791340341892939604333387354138047634808259428389752476309294354274867016503892921902450549120472585226165827613492345253584806718295073636799115502878269178873759738512727050854970583898082405578729568663698765660028671670469804415411831927395838042678371817987766178359516193623698504662230764696886863160181253823770032130325974685464570739866016119880426888429874528756226299052643086359076771876845307900985789745864906687394401146651614358767018639741750246108519953554162454182346047040556615638398574424247622932951836688640214270021515994256193177266391191462185372409634965423563316478767628724277987053292361831616633827560646858910838929889099375718171771813332860923671876134432022963503575319231473922889478652373065916052995504281781228325219758949230731818065371856391223320567779048358359445173118286951095432875829682030153437688612467584367344622124750613882340023477639488329586268485207141226529080371503438038016964139398982172325574507150272660673473554747627869736958621922276269735091618816276372118440739100061495485183659527048358609696667446160342535985277856110559634159561968092114735605583566291674833342038282029612035461825513215073611281160982627044539793726900111155710400301944755139615204041798726611852570985502812842160732251413151585526319933465575043963735026751164354327343003034868864896940212501750720153326730065481988235310633608614073782427727377502607824010911542068547141826075891314069960754101213189503964871192596760204303846897449365925110981520705668327854500785362534240339622396727501564262146407351438880827163434773917793448095362205432994539102491120588058086442083543848227823639345115645737703435631400851752930464777998731699377398854036968766874274027909713561756654122504138838993289384587481719713407183163471935596935371313237135341807329202271880914834533054541714383289702800107218316794183314931441781745360877354566911671671081624404803142290538784609457640998514066008256901916571974878641288676615492095152157242511738365765657519151313699414803327865422555205710976209285366709199690331552062851025762500627675370400039051133211118513840713482610320708868979315721314001346100762141734433790790190204330401102829500512456881169834311561635413465056858217496095972792717365711284934885349070422668331518465869914411712699552085532246041959924406232172934676782731944825699418177094271580806978325422989264353379367050986449611421992221362488680443824473584208522179623064075092739778958036266569735942968112342118760939117385522774379408638154975489791961862670745857896384607434952289134754205724053564382636922093538852413934457653326467394240720769119821312249445265606338683265095852936409481306399876939071471234808455095249168731399028013511769014494910016594531686653616918750286356964813709058640740461491840176516102964570463393079758030769655731563111482775175851075021646902865387403062128233924138044652708610696711786627003566168242628708323195149024816887082426115155829905419353514463115405568272349527441037769527835669124762530429721708019447234290633960821630585117024858253977320863861942898562065358009235024005451740665219608445914054954976478626101886062730972596344957687794784686290185185110103283089603543713478758586235117384001581605990644497848205254125187139964538579591566987914477498493338783622486921947318577580416622039160277537427073656830575146630150275929653719039179272696047964409992084120504684093852268813159997639297220801445136985331460969699390025677862115320234870048923976909190701545035024798629098541804993644981917107653250158911266246231101263201557013036313359712919475055989649101016111489093343357427023703899660264501713389550672168513755900475907350424957198466842731708339544537208865222733524383355884536267796489250031942568275549816595279896642621425767623546499571132493911236583316155655648276428593992512024218831192884409728132228095514008943386935462983128776980364370057037005219058425060974676532367938033344757001336102041591213947551685873946676424562482006559620278394153762366631728942292521604805937313168075707711679579943105127400467116910975920346840239946618143405744895601140920422942608490754137946304661382750154375014321370904225923697823880081482928319456291085323550188373707224363737377989153941310632703689918539330069935289461412147944275139142992878237158459451953055476356224292131564015221364151002516100554175301260440395940977845080950337359796447435891650650934020184039749297382071162355402998597206498601776726120103825355993926623392955098914475772478344282418306895520381451821246983612230909021812314457816500107327290645009423411980345969555014888423352397118774732622009341028883106838432888184604368448698653165125800400292683489086889942244116889652413720720496762315919506486199821615600771559552909542786293661682900929062262109481430721099136502178028974270941330655125556722833815799222335969568920823649808967597301675080604312369561836964788792702441158976497600896517106340771798876384931291475161998248807790893115552159847353537384172756790724303129582860897462602849451345549411992485097511342045843325051724763119964250493806701454040888838432993288281988773024725758985910366411135174927608940810980498062855245499886600553089587949815259048191056270113136013906007101589758975747765979135491558644932675068214594462274312447163089705855204950912082767064282758981145702486441581453309028433942073789231111553314281355186599544292211153929910425031516897822099191637891416528588593520798947763662608515863521388975522536022991995025237475748994078050711895485962593781901743383513602459102284508100493223493797475167813218332049136771314508256119454312976198760953842762753156647784480865745286339250110909303902873743999300803343809355669783018981754935399198029464262336478597085446963664401896141058261457011890768801492069412151126333492770071482847993489093086099211830856648694418753594830576619124112128680379664978935538507076494337831195065077315370417949507050969163456345633947582416895604409437478375329736695421105923687857195131910746314632909491952205435407528237059470287047622504984057249138870341622246058001669263013825228801193133375620916939158161100216865442138378031506139199640380571377549513597216592055983465140560970076293419965176562018544640224149406681274398148470707202056868762944989919247320342758570645039072489467560014313261948364407544343262205696301161658798799386329772369816458884121384063263389691891933521459792200981915893347695287357640172674234093888139946719041988255801115703080138749558643926297167775440901924623421727975727045271640683387549498164234916613936680279905393318369648570752509568398828934342311469263303205564273968813346873720501865767310375361285017386177304028613360495372555151000105695485534752368377658670452391859039857708740242170217710685947339995110168490560443401960506336802220920936081007593909096924931366962517732602723131410679263271832390158155475065731453865195381497323014487525241881283140020644712577363593573103527493788462757979193232288648174469266409760034225528784226135555534759752893700758722456434790715248112457184121366283707529294000001916212757732532378329726607569271899960510720279583576704564576372634304922477565624848604759145647567500227800455419898857955271948294718733164813220509863008312824460335897773278871868484062754494939456254456766436830152862975895295716211660920346168131227610371905947153569485081189341992509886247224179078803065260659948566219170701696103762685864235160696791606206585075466216625496518001601988249408131921437120696088053212147900532523577047575172439005757074173329031057926346236484878911464822849812689936278352007091989279396340676562060814589988779650709949223504369927697024001319537260695954685826759028268595076459312862138025057731860928454951524930062787131050445637755393298079139444627022862435509157455045512454094199563355997222645480116905258550111178583514357769165293248584482708918898840318576611539085216735493752873081562685625005206081534352883205275593166802324529601904387518201320672806760615810364676522475497794955094583024541180410228902267471173254706903237267451389868550260687777693215549733092267260029139668584605782371644614098230028622385022385451416788962713218833723660622550823867287998590246080235549784705200194256221851577471315891227289049465574407373193904205176608810086050876809981816260122076480677054456063469779968478385983307440468136824793886370789067097539611714413329651792341866078637818725663723034102893078150661224234442596967038704733841514219466751931166302574319053084325226780364807069892955087817097425549407056170915643779309512960892543195937419251002816799723143693733406252653320944717995275785710143741416832133973367784478822102350449531176307598743554367265291548630485038176119506177880252615498485428617035596518498690197636737836728166223387585971361537755004990243914390393305180688053169475482401387823075979537526314501783099828955172405728825292594123345090540910315299532576890514216849176089865477746467139434253659248231731913530203181461575463010818892408391653808295383348314842949294179007489918291674814811768285064403204828524918588035071315605072641987618968384259735855395889172722912298954103410511198131658833085620994218608477519943755613498761851430935916463990067545164705666895608970397554711457465359267298591990770301387045690974453336669465007170991610717130982537950172306366272789715830621807207130526684169199069957881043120003281620581133734775452781210515176954458924586191562433234795352418928310405838738947938463476044452050425589809916938128221291854460397033864914746331114850676532335951551689095068148811920910890301674604094993801398654527773573520010673575844653419397244934104343565995258451547966444594265294111911634740266657176164620446046850353414841107512590087943807855052789985774336205216264568803033383270746446352726912898870139067245381778168712219911706144887435455051382009157776631567772860960076644971123162258413761663306621217271568371592786884949997928812471608499254071370058356444147622279855323435596907363369945160363154714723854478185187493559466704319628385700154868108341335895002183725378479254704264839246447192021630393474567710163530291600919678921063498728575701529051766487310976360351523951493833442099073885253897030495003351846188593621147104796488605548115978769543300337311022038393964752252808081758878226818270675476866901071209033185524844664284627208454245404179430721130544948719379373150046381676852113794107164435213223031551886985727079982688602299169663856632843330742131869937804950289219652404536565305988805703029465803151830676570367105500738638511761004106011236415210143144914813037766785109838740757671032001660889725074637147093170988727794302793393014446467976720737510623736542372643129994215227601173259284617946250824041627444529044125643103444097036698821734897803898112002615312589677159070787159120446863390279284702661956874630616572962003493147605684203132448542460338639593676787204200851278963960786121506713210585721997823656629286044794712645728141304191258341518319443450616594022693774498733243734415927110732401193876135803257205222621868832732418361082520611721947929371662489370551669876785034954362404154653550840941632811546135544220871351574665618406511942068408499696795245841947116892755086702631001578103275964096135195542852322677477368888786495781797181722165251789437313192093076441069682066159237476868503699120863321765709303371937472605422885788017977539438969198094265798419241499833040399658775694218882761126715370287061144617699095531559669235675805278543971420935422963217852634137529371607843366271840333656387868059889117475870132706848239961397217544686006658903618637668509232367418983316952370133602369530856385118058466240551633442726241874880200273784379331439528877014182004392553056261933513070424711318556576534520490734825002368165309077665903181519027078005566337883793492568177627082044882348413815175548767575804140088121842533264233051797163756281948783927165662952261778323316697814804065085618446794044644302300688374562716646340443145085313068769464777079621933697095777745708277756076389666578507479869025094531367167145338450374645557949474325126359647799221457814509246978258320452382828274597436167190993307023670829285426302178929879552641110652978229274500127111062355118518784664882140332064566103975805914435024167305395762798960015266219508074141667837789084329648875728904126398895093586988956224876722722837135587397883773423486960463492729782480581067869923061857250255546172753670398148900462206782668469809121267592232546139826977655029013820902060179293899364802316879289640012543925077406338524310274782376532680170783434828851876044601822732709958188966309288284381765877429725510041886765608140919134885696703125758267221501893726092874481166084407036847866197375032344990219279029823294271088552679155284363767980812905015034640258421153508339889193314413979496710994651824917493514615494403140748000802331003980102784197395055769140476929425746550559632720767960846127629542809388940603959393930905212310452864248685175448811735244028038693236647851434183095603134117399796516007830095235540290084930698523320247893711853441152778399273835171956396354211716413150002779817700428453520455477524817505954074677636440580359038482244980763729806428864231057518184299998053461501959890836516572700236688111987390217471806308599873495780086196734394044913619082134675982757375458680205426900275953980664443336581388299187042063345070769581538001665865029466316058413644717672309496699974143718173798825589309302584291648017099316707777574600085799929561534225462957193590597504227526755855677009742393961456184994676657709090112622933928511563788885292944107381640354048514304593598205871599481965075779485166564771932002483571738353265273067049023474358872814168700388767587742344471922874601650325712312361744425657011565951655874887629207259396917201568811736361568827595080367466694700163054097619208807716449617812696999464897583540335268859104379501876244950981952835194893010974140789931466708524082853553713423158993479604361703056082311910406411087498003702216863825268244608562089189216591885855468171211833515737618338318783366541937856693697475464821883993276026896386233952088674740492840360531237336133063913681931326251788560821133883702624964851229594026387134095180684697770116817023501743227756531110969268659692868411849773308899620172268847376875773110070807669720965161946231030521207422342809046784719594818446128555684402621814768266155165606737728530218259608885811239382108911841675722242252497796171013713437817596685872611980472776743820185154215617046675388712444938722848933864639472558063655494902541162478568816655339417984179156535701759112063408801017653894989768438852565243571022824358661149457214687513528209907482916958560508904943956031636901047238767002377231812827309302119540002995923820551990983604041115481174117715464473779646054242904673372759692053524360446468645789764551539811126345362425442405874496882956475776782117759062981090494007635937576135186735871764082787090775402967633186411148161791701602494638330966570007497082719384900871569309407520982983170242302446366603829136626726398449959144395839046120290678468763255264262052355341103747445320141513031252791663921123725024661732535694996550672728988749066471004270139620690260439192398124401397359382615509905391603169373961293943166824299378183697450438379363866903463711454315746168234525567258948794956985913231374001725364228201130016476079167012494885803801536901840876147069349156081224264721382194622146657532832764875843352604472456144555223405681918061971480632831287879444795171522862316511246376460121503558454791094605097544701157798904682963781428249076522751598739945157593045880638848206795954515441150358506984684725932921626840539285791005434438876489725474775606262181905699149879013381062509249236344185118036814305895207787428359999245439267179620632611048868804769735924696416559278069797020439334049495821453069385188211129408912987385496219208388418911144571632561669248435784825095337311418301329643792356947615929235216412159020647260408224419403768787771851828566083052737291081312106570804603123256337488389185772085606186945141214802106814902030369087478865933542442790427554956457458131137853419312081225394755103000040190460518618072262946168046697864208017133462863682620132845244452849755437185004646726230560499185443971439371781608221338127768853393877750604586276840860239052099038826616163569800598977753813522352151510580455928174485014029707711644840925927338060045448363079202265032272233642664655627920466290913770458817507248194899996717136696525204945279726820924102775792547507715963404374039932034071109678637255583686269823023654079701204381820041609776181906385702658857030182060836066925664605755692157007906680971505080000484355784941635274209978560983457650086017688780710770661815623382093926796939820488668439932234326103905624518923218176624261361248854807142548941592769108562552417211417192800562891688940615567712477498981571307300644784651375321078701825960063326277882709963712617397043920670418526474961282002973790663867986796642125659683208072872643469088630478681837647996450639165502095501748663083101437108843488481927204367845395024559002336622417415516606058625175344994858333085536882301892748528006796145394868309478990337289798452569419192290453303106843013320754566571968913990278713923488314151093879710589379062844987788952186319053451961965411739997909537176990583990961799067596109257446262813224232531350187459873903052683452833525314336498954887178632734676279314188920234901131059018278166547909431896225785921416973434849452317502778226432026787764165095841563307274670497250017813194018090465338021349109018305001436418649803133591907602846513515180486938379815634927138907732459481294419250445390596622652612896311666629210353809601200344491837992582619360544198606237589129453131955389851330727297645928098997878172384044760436981774073431764189397693460332804427449572630878079524099430711601801021449012500478002838167166595745368344031760570820977122909045078669036273848497729232890818984303135685020137231264233522987834623207666072916905558281467362713124083578366539397728729748301628380648616260349213095023348799866358773357268424762685914953445418845187509514869438173534707196783969243207196094503102181771156213664558283087672786823002524360570287051369559550984554880588465518396729783604010377753571612196428641818549194361946704085866451677078936866827466075488639377905088597967568869902412244536929459568879153445753276461433953461732175315771758293522888653305095825208766035362282845073251768475782244278692346851347339121657270577112956807683622940804274177140438589220222238687432543445101824433175899181777468090043197635167336079698968828986526288426578466941880728185990113915039477755053430232453898628687709287795558712958584818576878598225356874588892443255285776948816397502537419114162960267399376416326391409424053846453623572961220639695465433190490816968262579823757411416059378751058666040658045116812362362153483899289679156682490651901148209695434192660322332928166845918223838313669045081025502862115110400550773786425132756548164120595958282352930392664118509555111303855035859035604030674432973912862481172155872734438443694783609345612937576018029284479544008412614862387764756130171193944773288660733977354466396323923143124400756127653706367144545417036374315641102531229667285997726054068298972449974804969718147148354118432947167235815808967820785009607121608687804698075100425299810226485500115180165520967538108154346046014894987120379973039072735338006992008065171214533852279365805729821995547985483486939729173061863664121762112811662584738491846942315798333538066089948029775195596219339575561961321037861131147904938075735188063595438430035887701596274225736979079472901317673204269990791766816125338848463549883719195650884349075780097564482203539211689131322340176704640492832278012617844192722256436973081248039352355263136911373868922919282594513446417955597613019166416523373774596093934171984321565571362541386314736528488555072033820497072844191945193016840698135531449285241193838356309902557467716677274083230890637591447786598684808998896271001974236085092379015333115478760633518861126125253149334931094299581636930374232503014072185091349337525396597725151242013816458255192381179368073773956173621627403155848808184792129507237561965853056934357398108888583148512623525399840191889997883100222282997028743640454606827863023800538582612810499875765258097593184448895844998247466260295579935209556583472078058096113647633499095234388587214591879135181380873423153792480574128688539061820803923297176124176416916091320947746045249431042905129483472691556773177692195930083322498562477637556065929769593253972306761006771558972604968292828802272928403353487362174492444768033934508560549700135021179556414156984807645032211733369542048064791167407164968554108382192487914913772392809413383920189347384953944693263576097252144887618182755144244574822392583677770994600624843934427361766616005662303533846325472322145414929114483027749910902853411310191608849330367155602242185078605539883131472594804578125122656607552416248239117781020682247115547978580971829175176012550750534420434483482543284865836798480241956659107922303292697555514612541535075417495521902446861810005056201208329060396722866818778398943855122456558701077326757258055744646369413738833862067206584954352541234318570700610887861517438111162364283453836075282484983854699870472929078064680116179442402778983407468400414529931257636278121965057642676520861930858114448858418904546486359536190704370374650333258567778930071257109759894469085003116978960311749093305821419388452399223214342492314945990865521443223206661940470042418821605305723836675071153514712255984395645870901334443390252963903469675902687438680132217338739608423940384618143456040760083430176046829789285375352373544057739483914098967852244154457292514332632252542964747515156091327031925012124121643963771031852462360419638260351778638884630559270026204670348569021797152197618077270537677578885797610286575963198083544801330290312762259981535865252051423000714911527675294467473763563275283351138280920149195375689307163941176355407647589246489990406418062348465857208249525769107965725603944274232795680536861934559349328710511812058063423375507248525945297807958084784710523514813564800334568397974619876106014765112800422573623583872688022143879735308918791462520075591926799103018611624384637658876532776684367365948015565473201930504792515821099732211982754917265343466906761874769754344860971622579416270209620708236767887910100731449484153812671951591727223392385959000285270666407106700752288152815312183300312112646138636445017319482684167489904723753402722282373547999542558977778210212170192231250834456465702295209358199186230611317785193004311574340946259093157406976446165363903474936262869510908693991497725714231790395520702388338912435825398070208895921326753391327384310324231413806571292682813317700513544440441543385808337829079487972466585794127553370817595464368602235176864114987714053849026451677079317846140193866364258653527005010447039293088261274674583074425692930823384887666661466013524256599116151121492316997942651945690257517198442115334283524779331536063403355856705855256443842792664065128235331621072924061116194682691032985221639431236026010418712866560941868769343805974374733539331468138519449914877174957110850789799753466681066193855308621787785844056393516107179376003865443329323782590125938584186459331867346490726171480466192359810236775228940493213375202799530483184356775235982762483676760772301970091277925939495784009062189577210684348081155278623362836901551800766684405276005273857627767657638935761436303278717723733632921861318299986133990676950822868139914986486678326471426414862872940232880777677836674430292544256856064694094180059731626393745398987023149413099164744512194959037871288058343245266577520302893346564075200650770458516289346199606509580886202821279210820636614393742238820509035806399234020977197230845984261456407887152299150218250155517747928901471931079548842133437502358014877786315479373658228563934448626705218926421759883094461142660295965713702906244662297595004317416451535647223940493804493219985406916603966434428061403190755923429856953537764830574310360600553424951876427750029038284328572563139030467370981194260754605544562765422714034363517995258374460892393366303031404040405011441271375467662655997720624830690223610597062605812844710408453957159502067826536807347905836848014488705620562188747921069824650103181993003647624046190572682544561816301712744899579014918434975394208761439868312295809225465788054203228866118685651538623329819663539121197146281045435563171375721147566621418847709483006998196086299038778236445543511674902192436329541350173529775319187437012959451402871035282284937160806325757369874457829324459909108143262579042166832232857556203622723056427614496156360971803268143484657600762875812606141207452546345329779002210421540524398709950570956568837955254746692025726691511663981505110856108185039046646273196632156478287390365628699758911688306275351970182786671736987956086354001094304471060392238997186672117483921477006857663247416053329815638415617434577846616621255377079077492596281824720255569886037090468195750111139225920934358761060596967889417297264181744593318536671324091855084643696177658006057163741078729162568531002862671891273249186334865658551061053716619964292350773606915866501867992002940236901409488537998138206746357626891529126219924304287784448141350255136024200250554090678309032661946394854062240975737287613353223377002691867904044352290944140093372446201885551628110607549952148013401361634425676427841632487567411856332332549985312089297623638355566550275720511685231922756431188322005804148603981758186890564288820450114259821356245327936659275080479316503304653091522703873223049828093383605635363658042197520447941616266905049534564670167352868363463864342609916945143187551326372098865661472306346701058353850563152730982915941433151740641016569394248225527294191868563965157299678733891459157945263943041631242214837394963130479369333096165145617006331831835941041995440067118868276831998672202834955085030828332122400055653648614630852418894909325690480832456902190375119197560363056519821444562384939067415136057479937569482783888814875064099302115865001979898493414598371540402242048987698860955458771841995117033682817153909602902387199704154061797768409718494794445919829682252712420641151513546374593728575551210542369628076742514559448296813789019803116952115296439843433223496189391443411307821515306807707284488114768283349973681892810197344479050384776606748087189889824959098493871328532030002827485641582280983503213978036300721281741267495800571170154001643048097998408339462722736510252683908832039862927216532483118203000629634877866499805203997574903116448601479693026169259990688903749418390393146145992926582495129141337840306748257897038692346787754515801515336691469125989356335777703986377484898533602267801863383808850477189800675389164093714405062700073887760780226353975901845290198083725976580875601003930028538275115625012667911545336175344687043032299918365860698460341169112373412769929516598257717616416245852015030527173610350156570364928293960067253255879330689836044833476316556487588808857078230576982445254358968136023327329588129677415039082401019963459263168111148754004075909408952468448453912517826188506356174147571866532949469720161335662489225706181025451440254256428854548174280613488567681227227537564854330782072405205567579185253022895102305463636718393277784853778732793600124983450417095133326815074234735702174225289714869831656044786173939454616815201399451039256345926362012270115183454133578012416266387809005443296227351012829336752676048973903998622707063755636971357849051910896921089341133261049251175834841740880606130776289889846990591343551132918507543289182987156106006796388171118796840808959825085427056194023348934120974755083416743099990026558758391175083309022085218342403492394733271799565146382666024429356755052601143176972732780865063791122192104903984254878040719738359892556967094014105237965765226214903281169959422037763253955855496362353637334015850422761721033623527400877583255468233342588535190757321661355218842151968940841428467169972544995644844908183840714946250233890005901600273847438366233114521045056237418357262418370866476864553588391476011724546625953351450272798437137045010516742235277155830966736820759401843614375320748985637298401336003531218306230570125477814828794910784192993018277033245482411537822866101515372516661453860025916315624302855957254738307161252248465357370711125942067612851899422463754387937203738894006123366656310240865962220742311214564296726426505562205899615983033499276565158829092056573842994462455423825096551536147232340733084972656730749303665101515321885809271759642981168953595529703969715638910908224117182073310119665615112700029443419429057091865704736382384916553558258931154436770523784862693381579616856864102485234386266636196201743242907397165257217815198054750244059462251629900113771208803135283403393085320308188498666250864538796236410158361558326400612550376705233237147715210895818348335242498649368018892580068507773447842839880447460058597787803753085801296592783516087912049444639939518604905542782088076086532108666545694061241367515363091013686452112182956601549016269317973462893048494625627433449071530902187600922511539030345089141141029948396400233855926554414668228277643628411601007175118119722092414236999716832475542663478120182626517352324752408055201166015603734275168738195503547984929792910482482485810865893950208777454132727383725019259702785398733633805126274829371986086123745070977077227671973166786770737851670980702326970385584642026240311768986355970275663806961431795334381681172670855221691584873069661102845751642958713753995763367472680405441634350235922092195148499357228061612587006195314965521275408605608233815231819684680738242734811030782641914586659945994055641532150754598845421413766768947654645680322869525111641632779248444909617701893082993836779511457217718707598302496459026423529777983135488627181085407301039707890811258180639560209035874543017126551918116550057577333411528864166180402690705200867702846148860703905960278115677384329379872674460351514895202600887201761271372107735340193919729634855977110747141235540019558492871779299768233850329337623754569712219438683687356414267296648682054513659498853932760958939037543686685847745064877390909459843042784865579160143673945039879188491464737192576967648217940091426967926479683783134026054239057753708951771362960940432839047685735070745781221085332370941689291848358375900957849508936481639129781511270866048106577057310116271930637425594480669756136603074750442941628627658080331704193049616463733094821207424127444634259293492603147043874975752090795868299325622377276426871092466481725498996207431305262719764873987642606436842376629800747434681789698775606764673713015368268992236795223356333432432420776700858289521633965533244163811362391145362687702972782448717905895638730370506434133031474075697851440785534218917697699721349241255605242452546548925307197322890339281555498076138597935856255525702044288577103137565247917166762876653601038478669695263455735725698592247885769550309858013056482055683964250399034659122841668207473823061305320149338886060068728720542685620266450537523801623783553838922575260737366863295013360589060951863856264467937665434314760725819988248301991313788756316698901360855433389302151701700416755203846598056156452612713715667235081804922823193945323531949161904594759539061370886220708697181484900466876939877092926529770248223895443898940775139635642961459790640473781273619905598855011348623355842235370917954184502205044837438441178490098264157558417465495075134161520645007759720801514435736362998147312261540175402816878261791998802226695456199260712885820683239948668962859653977370944969849408398208480767323897321039779852319897170691186787754383822728191583255681530873919213932565519277538556453681470101256570341842701752714615409454073695621048129401087341003545494535953377090141375312245251975366210598391875348220243197625956552855207135934658627282237909132443154974511558659454515607068786221174803800504589811371468405754334996459319199689946948581235383609898347575101517235639343481447114851338615820040783156653664969723866552555562557465989414988334230893870421217118448246113331825915492738312613860172361406811350382118551408140462393951247814993892903465556361171075835440403889463364418043825668230984672325067615007376987610300173305128545125252414167887789967721011447650132983872421418630302219276008224575891229734036995619413120888680490883004748179209163148646688880719536791066888303804339764572451470356252235139354584511314459339880990032104255675770364752491024898626444343149787112127263748674323925157890974517127872129272113475118431825506835664336873083101463389358234877611407748695253780914709142744016600763968757379476275279564201794487365905969428386459011626794894238386921597890085775148419261905709240944937060434491658693439417974921666462912373408125455632609573574299646381785167178495221286503750050393599332444155609469791215485426212349669619317368154410181146740803337647481400200637082260749286904901021810129262839052480238747241350955706093684005276950325904703073209267779598372950710644164911021540780114473869498457132464488835835550668067708044180755809009170354730606844669201227056091058750040533561906793951312328539889407678992399347787414007927878262671769123188291833220894907676058526431612818879897975737539967223746368218675666608105889852870655710554816838233349453525089927112828227321232628995015936202729102291716791171203315361690893671827330996280985835982070867064747266001955185531569059784074813021061800335814370721556275198719574388282530312131088323705952526771195541547118542452631968234290435832008845686870605078786136240190565987011766983036979901651528972964256957854117734575048793755005559690927550025812931940210044956680147166518021905818720201124465062280397194159948406178535167434640098943642971438476378088915016931077958269446037631913547238080706053911451970364627440860546500091704910156883382312807620582717128799562372936326577937485859480479000487426338414593803993955447764488909984006377420157878434410007853503596173834724775367132776149886789851241566639801559599208306646010809078699238770702441969778284594516507466020655987006352078194873967780247512339549830862831750317961527235432324710904948361863933214894397905126586037686867815432388940962792883761154115743483888564360603957768162409964716680775332684818064796669339485369452327094208621706249678180128067733781568429189073929646785999515837772041199894678836881639383416124387766274540578548773166134207204182052596699611692041133144143445604362087130116252328054543437283830417451534912028306058940672291530531245830161092028391081822504393581561350441584010195993866646869107788519421129085821746395678295972537685979856190788752387282107771744106071598174059953206923713643899091215335843787417782607619881187158335665841960632911378486525267488686792414556071981805553805326053630513916563581213340461942289597684897393190479394771128809430008309808125813634052172301134343386793267087784685141830647514056112948569018212606856474828822891466222288355282996357457179771039414238911089975010295772670167489711043472837708703410332316645021941260283927509130966630633581255894029181118196505960914958985949880979209830709912205926811662730751264635840769149876333676728604817050047220312256721253883472111011013908028761808490104022637468328112917718779602503732936224249034275168724351209671024061311925333118835645544991449466215666603862108997185406965076702006620188348560993050098564536719701096996254165541226210229438242798289160831313016705293112345727801386052194499318144856594592203736957453396353652484633452966272674144461806068035834879828089598818040954643860581233769266916404637040046678421738569945102892923115970104299022231711738704313710629767901520135365406317663406792248423785766747195485412113101658987836821532712863774208981570785446410548812964215668940855788881950092271926990707519476663901747014024357978208317592920401512242581933164515371891281629429788919980588773244267082199114967348346080279127420142669018523015304766412642564535138061816259364682787643589164268345149148303218108317953184120121369875336782630117139113506135740987590611851157836842630156613243611520637103707886614782426272807807571171720950198760439437370402258052872599889537568781243509552550180572290799242265547833611247598417785087287208024236909723476780053676092310149207230355263204542744333238664447787632043991238616880056668690401255611232148156586813405959407252946387092563007423095648585214906200445782831067460158423040232476145160220863926991458396103775854388157196083707585417220471666169209524467157859562220579542831556728020974913040862215624828554831318092267485019048172028344544258913724807621973255714560011418275917793263729547883131674787807126576830542496060831571333081937440229036152036372875369512210497726459541038294864383463278609604229182738966719530048976708472982724640212081346274986303721242848070966956069622333336042102851929449172307706743440802918279410797471115924056653719870718080515242061105623123743543350034998347243472403921845300737101911677199074926739159529413524926753271686836244071105955665740199253388645938699667610110657112763147053849818463204536282313722943778193675545583488088111828389386950584264769763248225664442065649057521658472802821551328110750258892658124357396477840052656977881808905954613398511686819632611030677456359251911332843247700888466434669017515102540254539780985001478240395868712128877231220537214757713737801665914639853378710159913611482950647646164663108641523858251449225647620986700021309641541211583824847599823379066293556705941074021473329060529113314628459540180281476396482788288633903956935338807517538261254590903448625830697827001346882378440417131983116160972340889404977377871459299879794779011989250386960223396918673178433043605819285381917067941801119994176127130314008415816870987661925770396947836425249984798479391630829513546884219847191143459765269095548606877434934312567485097606416707078387792333790249949500854155554747334032422558120096456504129628883376300670765004815844245517640876739235053934416533885683353282443726944316388428920212346377430255938913767572747050024819318246026676000889500616386364623711693464645542403635423206944207634195118178881898476155557686803633506486905809980402922555889059046867833586107147635447452575275190342692672998959913902402127447599144661896347887101021109155911138358570119345518103305766199643298171789896517825495364934867577349572074626663626624976497609118886415938137075706712582548582809207360735012651687959673702960652144060505372928029347779271708599414941878716063248887170624124763531200282685998608565481198007759427083032121370384918083354918047821533210059178072523235758199693598861071034870470445314924269180014503217017287615593834137797060867424488184230513445907453570304887691774281686559588263916321705825689035276786004031297619758265973079693077568782432179594232604256313545534128979469774167325944672872090358286999600167840958883699661992676311077004846823105958691458968721183450743087883450840313403206288925080415651400347256130410405822928293272897412924613259650351645158871437136249740519291813111167796553027801388751752197592839555466894509612386246921683978541733029381776352928274588507550447337959590374941039981743857581719609668188992733608534791924665609109832253170374865211141745600986748042332572708313059583601507351575273453944187558252455521525804430804265887407002287598017399811668389227251961752549836505664372410398652677451348007465862988502881390049933912856387781842301590951404050943121700492362857610282393829303379884266905258208042697701056277407052126224107346819219134943904852324715564810395486567399612267826763382897965300775562077681170616493284213135717002452896789790758559067711738273996246669997534480273430994399726908735336819519203921575899538268570495748499691219306761013618960678458216013308132094539641307126504782601009059485476595033821468955058408759615723670250773394016569823194154986492751939658030576255865989424033651136969959157632114836275970759443596052296453142253072230457622277062508140908195012933235691660749833262399723548991385441403147060370768582610540105627973212141221217089283472169105902033074594045528291997734423053046322783430079769115031131292150431678724078203230582381743367570330617948294029034784522323183292239544628059840590244927192161123787335904928507531661619291206569473236443812488259727519807336722452096587124114581422470924817358034159139810104450037947332129432384097157603016550196937016037354078986758774665507482060414194217942610852571833440976848655790001788667051720995848027531799266367208529641251873736470321489579615037761386024030521658707812503420515597247193782923616355567848516601652553372160932024882707556291808897318765116431153620391347355970486051183481350765343009300645624017349901086607083352777294288991178231185566966689606534668541901682616790553930580825015527919975154254560591433092796696187015396733143533848586411250061349077477369441067647465335546503656892461940671444780667662917290889863257150866702857863162816369443600280194982064273147988962255914187511206425671425278695158701046815899101968737790801580986673507937873574208371836002528795267358424863083614491545308409137127774685549983813614865262243811428041151883701575097901241071711070846796320401716863534503792150809003198115739891733320887263298269922351478808657872884079468307390658595279633734967682813792751574362433346509451269607557489388843284514519309453295780357001097242673084593470822804480100500257488056002489981485457988069497041356738636572417214589089079218917422898663260208460950266725677997430075535825067400107138077045495267891232965416340939225172105342965511483739880117165755990549330449756475964735174258011554624043210133167339770558746847993140323156225228109688304532002802544207300578301375748117779190373320774527458834486381554666510330966316536873230269798589297923423672210282462459673680783890482218444278575619757828996901879922421101412718764395361358651113214672843196315707936406856198224906318987184266831668674399566634286559230692840291942626061291364704138180370465538326419531133550702599329301730886270467765508068756523423221739116873910367973428348270570202071552339575765938404738699591818512505812499655460428309572777116298501849552901322806967900184692219738958569384387844592857461162749234568303157067243169922810123566658170572361885491458369905366851065720077931794609105339022602909142381012361618051693398553472583609375513837388129679980276406225818379610540147907459682459885257062366773530587962164795991972160822653426586994089660031787964665794854140779752190277786668625286341856584501839770537708401484249323012369316948389395216005970762136040454452584130192601057966501294135907874685900353150532157606119558512081561686097144978330538584139449269999119326668658616540322048874123575438993132097525592864727651956776518192086407273522449915470942649436580075282090094873011339972172600724968511080492431854354922974925053092795351939841870859901489798868212757666820696805253942530087099001955819010710694568970770564478372894687352552460623488459664990762244628316420058342011603985512485988857500233878263550837380143614422356011910605059689169975184693181199583027474155243615387398376699197948950935669558583472314783753337818694165484727835844761810599732041774781401506379544798750735631127645423555511109013218802493702145301936040168712059735834643085858870220534749432129057778159843659338429771409140489414113849858100233524506856657354374328168686582302425801472046139425548434760996562251671559726441851853915243003543320346139998493237349363583670322344561089073602688074206537420398734364735027366022937872522538595755238778346817767409387589640280220016961793707560280832625123090584949919984512474941604657543753520466316018397420540119023574986879367119182102968502463672098983722126848366918215856144968724153985789995841095689693484297676133620430196814012350367962111050756641414866060126088550415893651352696753707940222203282998314826110355746359580224244375111142829683303130720423102967185864361423807782155163335464455584918281749433933331067204740779426211039475801210082016496206041585473757541710598626957919118021237234823877185656132986812635239150363201279189649735520517323731009584015166703832613435210654838342981760404884610297630591287091192441520836471111851569604954243558522794491426391027460631927619519934022956467487306845451364873924892466579199381739771203916507353355186744247494109503079470977570068979387492297654313365236275588675674232876160299329731195235747874729147940743514607621691568047589287782663699848669372312416503752620246321537378678198288409272232195688900850263174862358989578758796336340644246852614141121094576180222688165784372730151317697480021518331432746855761992842992682009350448693812911552365584614227449632006676099652205589468438595020296283814646462230156051571883886489352738660293162390495413287313166707785631122751053079879605328037438422996922757964912918771096168779371932511479754573673147769120544840434969367797181755161063298250465680931930523111614824427066465020416932600974874401599107402630691508408556037784599109421231549726743331543805022960301106034353089147385526396977914562244125664918068528570703501906371441617542315881370800877884375064261573527093055389599884044954472609007976914981438831934436803051535529675673768520185286259773805044919764343326035713791677897922386833247215363112165881551278668603712561365273592231465562715414468417746017933305579265640520832302095893837838406650616875221239844122818493331576981535146493769246806235349059246108097528212038455000554371386205700161349735343718137885265690836367133948461501649131514651044356556829203432894509506713380580339900339361178204316838759166047020387902993730857371870370573656190316848969284598690128707605696569306668205287737190106606043735225944311381354546067592146049199044143102545747981149153611662723065592652753169682811227873854382488165634191214741478654454858785549797332316294415278340134825550178039306041498018432784448804948556238969523745954494154142720661968136481180984635093204343748645398279157078786286091317813868610611954625498100473196410536569157101547937803170502289542085815747341886029996832406612712771893477900574996128333043611067035641695829643127172514800759273101479154425869106199222839588372526763959351612772302488225078204904084094749362947189346921525972705189965640207118788147384961628059380021070502672784455531181967260189214006710160670736063627277837071048511748165750311094269461676942178576541673780306979301467957614223815698380879734056864057067764180585993897180532147702034103627157418179505006392640983571317009268220891890737269655317600885125816586849478837168335470237454862750228968938058265891385132220820229610570855955837138605153269377479575039867520127025991532971196973383403590033554318798277058023306296218617816086315266403830269974740260738350992511025581381135128168637001628651666176032453037243851593628816788923006171337919087755974973690959478550559959042446307543581968327269949367088182269075897554035850473069799774163864592763322078310978110094143418196387364484372339405916926205385425017763390905077105422912107989474525226407181246095487741332423788270480474788432663342426551258598737553204442126128722222182521034554198142178260425701569267639537592671758606559898836446770987042163816100444785624738351572061558726908370473521078024732144348602684349473345641392005330769040289896409610780387284870001770672068191562690108788888237558895128311592497755958914549579597217481884308972832102795344428277380031145311233436459343489426857445619692349551176936639954643499493588547556499360685175365633866734655047376091587432800329361840535808222574069855134254076049630363299693946234792738806750717379157001849543404578641817512076336886838037206999555683892393690906569617156372673016891092157365592829604091485076844926168778511834047522217087803501067593489788830193948415448616837146100231686278567399958987878430206830177172953085602481772532680694066251915815297132253431333452763122468766472378567719773122853088271349568748348629780855746623990201123342046307220567302506838370202182934432520542177125011918024566848855065123247949216144568026409215613976605370966563794136789282589293061238148102000621429662493107525874271381714872503338927836985285080653656319256624074461356108532033449595887154042875996960914198368597055164202277817275524758761537644299177692705008723594294127584648411717334993772971317083647896589619901139700023189754602381007438188319056914995586675102457382366577814348363817164939128815760329945772561670863913689294795598177558691173115436904421890525760650191726267096676214578277903950696948907253851912907039476186812582103378442877239926654222751508152636258074829243596435463878050373552576121686851606503686695016092659710227560358869055165777962171515907135252900676062861646881173668675764579551580591656171891363762424985471474241224718945056891872587514528904109328170659922361153527749141683327266663424355025246471130088310039615836693627126319860762727380282470002269683821225743217516316823251626138213376705923261509075264025351284008143198476320301461253788860449606194993573828148367615294631814899958660744352450107730966641304151431194233034911931173710152979807732852919460373759329676089308980690314008127131738592586633400953295423448424063413012719481889546061958810988525005890638366063348909651019591881240791023339289758431606174460969745270271661053630609151671588877198381593525205734758770884530884200004260353290589040263350862164417993890833381871204994923940955207169992539943255692052592793655044599758906345508373942214255236400285049552950121108039020774423051319753601138644202371448578981557219103580486759813851371451500994326478135440910680866618016851324095033870366445930283743800775353944071228569431060492370935854766545477400337506061445116604990915603119249586186304721619984808325227795065823590108269757524279453022500148847623229894755958906113461189855959272765862599911624318116342419402977647604272322653116459707605348333454818265562296696503930074542830702763062434468191642598971080432052116090100628859872977207594746445089541128433595295164875523805666128123690617235271733180980566020233332295734238730408708246283861721321343701986876471532684542954158607712391455455661796889521167764230676748456608485932049152525391726889077697500957983215411081241266299680337563803175847553730217957647337781311865961272783596137938326743734843468752748783379363311682178415864231200844987476501253816246559247058260775886853501135674362185188485334300836658767632207798309866145819943508866302018378464072746149544128852727980894545311084846185926259650766023847581106635869657969662038132700770093508981456068737872951074168336717380110843839190529586394770175236135455303665639793749720926248510843378796841800299889942280187173446493237549572808952587987541058727211901133425110614958674355502050638949580002130451057667821107905938775580976024300070084787626698313734066793288846126831254652947002383831520099838053707531075223903644244539697578753784824282312251020936786950864454618809315656498286993482689354116545341536905455540617045381048303672425431647873832903156583532803843956967596170191131297672962479132083240117936160806925702793150584465111725908728131451525813738409837942898253373911271219600341565354088470508963616752622407892656367805547951958300830153737513844203704061393952734143779536264415224967786938317563798517885871046764632289984959726499462330850846525493510829219980692114015520350777723683019027689924696494451688892966097909977875038713036513493650796189342804146037134091359261129276344830343331346994943680311978293063120388202194918865576372900318350854333326868599268523986357758841100337754884737327467144483126160519843144473067598623576964736844579706042716359372252465658796132077537239416660944345584260918174538309691908957654792037688496222425734834737987654595063341068917081425971050144552152119480550315453459666041108098723420960159620929851042886422047960883305134863388643611616208267463681905560741234958131763291595550796331117253889788668127541286514291695476035935826529727413876919602543945366962204251535104653015573445659104394813336662555156304446337155256915845178783953608327113720437143430689160745808122481576194545074077550862063587834206996623741145694803864798854325625769778149497654798496949899659517652249502507764024573487989159877156071993584792726566557989575954547481325920315985445257988764968297974056915846617856823291953728741337915616514338437556354255227690100710272537180131498203655303078745298720672749324931098174626615409047128350285985511064632626838376281277355222564900674803203209964971704827193366392079454813851490283136537780450188118823841951315248372515907534580516031682472222644641939980442040849658934260178673325855300695870889365160513668711940084003413191957039438247100630617361495504551808925189939013841267129300428925139776487562347012342058281958561040428947626953719815539555789154133967401669079199981970183438648689588793171952438677012413259102530189742264298186653764761344697549219518794442564184116111251680344035397621544354126112604405236442249416059401199170565091468610623149264371273109481272728782883219550924324565872398465548833076550012127216295581260821698693428973135155151869213696250368820860478719503831870409003565157466841509492272229889734361332786310927799023258189840301023749819029390916743278692325872084373223405112861898213252957066116000742622483700656783662337447689789179863008206689460415743086745719959890294212329607210407619039055213677645916795297579714569989665795241896170582197841421030721503087418249486355180830158975415758657368184072685775403974653794796044283773639171412982671643069986567316882646078677300225733162538229902942442808905505328021353627135622962441706170791511700054668735940864183247329241047090435987819799780053063712652360297189643317993363592266603706863183062341869293930661458482257799233207222813823730995248635347031642129739937672620305622780744047759516084870638117438281550435528955943777987282986575754238219904212532361513407773710161593946310026527949477762141672794853525494142247106416350209307501035344600728365968172956562603362787562489454849016476651988087549435376856553604389863397935318067452238479464202283007956168438869759074197021412106096284068278996906191204982111501966436001430828364346222634236346875468520752829719254789885936440362246420111090217163162599650690541281642359140770676767124646283096874162485686794440098406773469374070117710952180867766128175713105758848264799065264256788759880882633146390513432560023649168217718991566966876050422943382094538450678426855631446028257429403021154911259101457771673870540207179443454126988462033743113457305378085828423546275459438843090600002754089157300654146529367760714850902749137182532527000498244888387346205570525200779619180161716107986043727758652924785985641381514983791162412715972163446644612473450032484912034817652306559508788026822317662475157858021958999856000122019445372429308792204767790825338413728862278854866722596461183420117717073741272633024422466323428397944677351700672657001567982865256807385997081265109191050453729704928463897870889478468558272103317870044207215949724944116188552671194831842340059437088458455038573609427150034945914186564758430328419855462539870813664551723237600892885862986592060174108342038438803208819933679519519275944476100209602723507657239138339746226298131532358146964050651921989335375499663353909148966899399446643283452923454520015358374915556214708640308932142275231386952937094609252208362416259434560438696152182436857229434053640026692415700056546907197684926459679971327657075606920133472971102226819587596589958657762403337338962182990663676108787551674872021231490670778865929165975558981363695642245887000273641113827491279511300461694326345122022699391856573690218645870641844001478883296592440847640296844257172983310838366147232806331570511543373349203171773102863986844011481101749017673916695530858781101529995271729967170705132111450653272186380628148425684923727280214582990097030972622110898112054840587211552920981996963915865324832320370570626074195318778367259317798299455221849501005693861180746250934029678840951349006241345175587416975657848250597597538982176760167267719101092809355797856475364379024423598944652714464686601038546686458348679781705241597880467954483168158341738541212840616968785926137333381579621611173747417431072444212722485991995654307855253194215844080646648086707992328180360677215829890298581027623673366836336069699118046893896929494355837731743509997028824887348658363040337213784466237132973740834150220026325663233183664908157801603791593038968659997992841105227289412200639439048893882497836971233728874117892574994987408374049220036015831278144294272226986265067076973157279087305716604418545166674539637128405054116216326193581192871514482686015563715750553462721055449663065009434188009599051907610209630605528763735033440998419431344148102988334545791218667212032818797856578485425593653648011515777136274243727304751535050458197080643787231195552486867714046619263341891391449847569712261318132173064980399556881419917219057005217411154781545274499999598868043646592175905860850974585540968308544772112151517461261840887464349059229240598187535774527158040171790779555149705585763012334459940342255195363102173515093911377791952194204313596352869491451471958372073479467171551947071646773743825021373446905294973410138952888679256782267089107432488943279857212182313671948374982281734732106558158988013586925172771010495833932205854581416102753253281392365272532937675141274585238977221640677977226238773896535551595064222900191832059562792897373479820735781232897271133444564826329139548740007149711490463327486508848519083508288192007149740733880039510240449105783261997635125174309537418260112659674762752721836431921589857130005867680292430385353015225416792796736628498974752090157792980220528610847887412589093996867411525282627381297114761196518759509114001702034703424486248571919744710028767043810303619967533412247492464015069814075259637735284548066971119497730218831422663771508094579882948396702833608986565024810203418202176863239563008158025386760431439676728707300060839359185327853224681839776197810954204214401374921095625804332498246025638013122040574400039404909638403019686774448526134606114246373799591560576674040725305321422044328084853885559360607616007262093657527062294499284873221271921772093194680469763517585349194517642481561943523002992925139527321816666005594055547267246702978185134065725770724708575879107940603838607816239400575575884536106936151169716226932265465841807470045015343394080501850678604744485222111396204691096709793876182636494233801900451075757001915969886571942929005595606902581027826522150784651540043144296297316612949438895168660337879463964378599173480572670506506489386502615306115885698370434313194853553942176420859234229158300081579690114430172654872798081179469943016497590973514230527869015978665329257982706005172254876691499443299619659220884572795964648554580457482614346224687691019966303173770332600948443298610252531309019949713978602935593404358745087430161601514554399289819375457421916687442113261594489556289696972892138864800785885586418547984179576304148214508738770744925491232254059139115451690263486383493441181037983017354023951430607814048849571243177399086976113670267491239263117484154015487982135916092260894423586254440945029495177285927655456881004642743583552341375434361165405887031313425796595593245404115272489230927969976212087693388694695554686753083232736132819757826547286768428122689220618662137638243029557873951737117343042657722494383487049249213426452163397054903549915959224573289518510680471983997210836365997369288370551933264394125939612343772195604805151697635938655357481304952550975523510263245902673240990960198452473164673148120871760972643317933789695362190786834421436383514415685965174055340884556343186496718290923739729964119647331188268411575165791847845278089653643935089503905753589885834355666056632006545061968323680472399742229168873526389556084166253592416092099635647915078321354588054668026171397309441484256587935280125060434051534102053985388314343503519195237294348361271111819227698846002248445839585128450960306883065366791287249984243559996824092381829979953419097777502678162148073032989402605651255729879923253438225402849234823344460820558225266635807365199226223471833737921040185295047074605208538101862998218265415875855681283989794655701763250220192825171335652952082064483489025464709382863105689169441022931882861607216282527015166406446660786382306378263321182148328224706258615466434131425284746309522134232532679614566997385055093989508341567485010545152989465202969136513975477671059567464378176937331510476527554220635400965297336379937414721260307145144216752446180630080751226471801894752561738446769498845092407271953247749473967205612972224665860856125878352844008693819466959029448793113013091569478766721391738650810002873905190327516893531895742359601215094779687076905778350632432128242094804345171209427974937323770774013480964982219713204072280614219731340629669662382581745714690784246456149188140865532965972214146551988562272121855146467861795154822930442882844528278532304080388986987641056972373071816453785988737368575338414392791207424420203614959004634511447940458859027945895986827652760296659025597974996882371181010133502496678180584689891216796513372995090130115670333442029018201527368772910471404220931585729121461331401337872963486929728775945437856988684735843756978153194429706647835018109916904093103362122162868607546633543602734285813738147456058838921538069750361456208329209279962762176097879806412192995669135988616769282865906957676421748375075776648518039561936283397723623802874988680950934680442371392255111173805205317650543168233639566917945889915213088141428554558344335113518025067902297109021580885555518956685572377185555271917200495942560262871493518774929844397122974541257813967493201551577498091900940894804504872576947257888530630264384420744332777570730255087066780149763768882149346577431870434793782484165469126729926447059532691985197706143145884694287860686677111801136249172141007525769583217774661986973669670127488702198882430036109671428945361622104446168169620224335688248255262932929462976365892285997640759271589832322644623084827170743599367933979787353895423401116146252264612794265703401014464188266351208431062023076437178913125041499615830649546165336791195126915803198909185060154001559353314663158476768309011271369883389299177388502953778181993240783738543120193418544061858284793591659852870642105837191067153474030339798258480906009439743840180208890221619432899392957141525378932044630492031108425007216052378273078733283512701592940895538912702600008085977210186365651329530842473428960750739847812421728963756021515603763091314472281011089409825534475165707076039216266908706259733992427173591276154626288277650343004325637030437130428231158805297510842305936696092987815282259269444551142260523704425300404642844930724921082942399201111084653689461922791709585520573902421225208141044673772105131087787169405058421048154459627592761009987701025491649931305578029252266673776231312024705794309669966456344259849390095544453338088092377354708086450663288358217816096729775396569240108213899111986998373328108284068699032586366826793938683667581255856304982831834209130450560653014574136181338856980925732066712104803060149147558838839196258217978711698626746936898319522042630780848011252665130013037663118426332484075643452613354210078735770139857917873621953699142161072985182576990147648501830109758587361759277245842286929638207743175369731515336674290383300058717854826406938158206482640708675799258374616160214270569779210293951908662349252086079563953024852295406837250756354405663300683129487693030562821900334168627116243971382352924493279547466473660791913044745450710930387985933503200719113068469024019595382713399656430943474133197263686609966831433724771509768337094719934313365057751929516853792984538673264283281076393009937248097684281200891653193445274373805951975231843312628723252467709970542157862867073224338238033653146238818919639320956524830745784105141193803494741906359574225316698438699127633792916158850605790346079435972313477718694736142020379385098907396374382016893846685127559347937754186039138160376701057746512390695134023374067384576535768261485516430732360898089502046003052456553335773295273136686280483820499381344364661073283390070708592128566761368697049114305624965809079419083302372935547834192158882125303220158748385301904185308045950228353208182280490926301865269987997624448228810924766429972494667120854562524118871649962786936640133727693028944766867061705211917807484871190713660838377964235408395415384337555097619706115669316520599783075336333941845022811686414699692840128496874421250106163641398935673314453927692175693675977071053143696706891938063000559594172251486872202666637455537165374385736872870293540074568462218891441429151516650770372332385726943147983891485203793370683817287147148708120429353634097467490226421149363921078855706743982351947354772835809133113627148117205611624622108683708383435753315114754648028942789525516667849135739898928238732377366504489869477222271385442572812096134743471093255813103146775803399866419860863388759811690300109478326968772592928683982612330200229820751949508530403402278775635327639850205948848006107617513995124154533991412765673936734922334588988823651956575093196557218970203814903265475545855649710850481107798231981594353345214778958886893801377231597750596461171313560412828718164745110605075813111919712153996661567179151425704238129270490324471795199967117491682293373984830190021124994284235702775357524537667943649192416597833149486207687488263825615203596440030096613768136283501386671490749258582565362218771088581901929521516944706408781444164944784545106648153449247671258704813086622618610981413157107470130179188343300947040726652937357222436887632347244840212813210749352086662309359350749342074738723845169101390870071826997031920795738019509017625021041970630028570472082423969333750118293643812768206610288167424205202776750632899384436594461956567948376589457738264066771317929277129292493550243136102100580875554875349485534309644574019870419991506208290588454133632038472109066194003518765507321804331516624889943074367321660576678508556750504900108328213005223219307297610486721344989613057715607516779399525954396129963600057691382503003944467101736506791827299256490856712720790216835402186307835784338043890833625003524957460722549372173534195376558312239475073008191279073956090597684659403178199318937865555920574960304012046236903852962814763896387741971041980871674681753310893918133328586789151018175638965714608567438994916414102317810225424206299692172752097851096513775679966676537233209794080823728670189178221464602944588606055004195344739765826623017503955301774268427773209063552531719903097922198416229842614354136626830637486265804109763568305256696518132039271211999949448285858448425312739199286895098650983348114601735503428877588284646414438941537400556349003459906199904651023193564260549024302579949501118581449718867204131164327359885546860487043659641078137854235653596984932324361238891348339906988189657407003028738109547779966290821484195450254616328031288853792913565733836145905312887719676768932843976132478688169368986737087772418348686499227975226208649597060961984367701598286808468951145052127202522297774714391657419089135043847580995351207809437223571811045322392006430850728051103880086797860178243117399800521159203970926902370598078658180172006760344725461464704183148670104798424803335466418217941659462687747395659629573010596088116617309700177305440942136585445748879293916416850609705669247267986625579502019376647940457278585058732252767111038854732061063134586945740534594842436255189345515482804343445968423102343386325121174590918958028841293313228274165676030278719291631068648949285239940669632453713194895964979198791400959977565499367926802157539486430368785285074751549634557374510850386048532186569796145946553779432604373349439155113193472227235839758715685546927707240624065662746722834414019638297180909284108043513224890434830732640901394236336653221386653307699248586208982655898901947172673256078941723366955092151747242298225244290090669248437949758479607673345374890133672531787530268863601006095247993910703023099536024318455403832552238469922906287281502342747361621117407676150216423429191735467061243790673224370048967638348102658817082331898164615317934469514839098726323994111227857157056853313569045542348958513815721392047903817219421081650048505499110327197806024774568469945968868285427123728232947875464749032479932520245968145806341601029717303961123896952834804123495448373855395522254584227477290075616435212691783250781031769690864175330346662180004639010178697662251755498245755881399008684749281443153726293061567494687241659526435157758748548188121358899328230182312769020874148752416725666520965156712158002855489563941336974751179764260514140124898317175121667338909141528393105386280419084182996382299179536552407023220895220202724914376896712857569985812379995874290295505662505360490036502564636201205229054289781192901203689045737369253279717775785032397710383161016601524331804818620254006528368110104178157820999858125690227021031671959345845878961306555097231718947473756885168573671714366513925776261550773208686066574590423278946110206435427773786027921655984836053747600203234695747681771096737195011590289065595186872245831592001345614811142835073642134874567540594927117314208574758799458147696174180860730219774907435038763622116277268428261501332779666360061476832333281109909895193844380900390521857061831313367660855530734158090071421261706697389704696318835068477257655232010740346608321703540547516800880275172957460255333994519336071013069566435636729208571343510330327938695374305467579177704912760359144578255111064259370218587651137949751046190163860373761006282261736135397563648402252269206280989274545970836949400110777300993998147932648965387832610774068960088452325061058929970179530395574410366155123564974633071484046476058583039564756663520021067226692019176526283312053189486174133685079962567286668089273223345573052567249532096023008059976194937879161807227948664829458945406207096093690418566857201590506798426447473229554938095212444731246220280152314141760437062892799456080572220216375500726252689789715631300508207703560641478418691400890399225055497224315859009636122222220207276794197278407620874198152077987141519186281275679750584022558930442898153748226825212913920095787723402362149982017097682284121636456906047656594575358818698535757903794270691141830154104678288783206484994498051615213505894132792480028798130009951984670853061912823850386606612233014244386385103849256927450316804344865969259515913187547118125096147182469146589421684863234123841031835491976702500719195853124997420292543955378556444053731870960611696875005773948125189744506088284896299730712246435932553045326226763642768727293909115541302121380319322739682916908191535664419144848319634091306115447512885873425023398406889325723516116499554157110503049813408893603224517081908682971219411654021594427357855200471832704074236699638414195987901950460690324115786423564867550203869354270622143775205286831276215314916346737467436644540248395068718376707091627955320727147874242865105191673366291104263709549714350393181269845069044361017184082572678196129578218732848444616228507119553062667076208347764590214656892506640008064314005316907651516676367188656049971148467095945264789197606832237790036137428306375831831029690929106916136144633692657301841370197042197144731121368516790961052607488166457224182758822473213660731852396066035997352745950344873000377186072701746758046023470585213398236767068970130028317079040478576152369935797072223879890810772157808607720136217530106982029581985316488827879594280617266517276769420877923105978792114116883502916186501630037645428356445400423983729086022230953526355515957237909496387605068792833099747717229642316522028479705405768559040856947720068482284692332548849701696122266091979409366893598150459096890960121435907979016994585464920737939575674833333485560636808711360068114389949629476904285034281213481742397118987087488214841274377961425822346304307892052901775198124812395306757023208812221691413343983836626290707936303245109549216692583106666113144607143487145536456065446929015540289042627995049722271518278375897613391226017811738015286376939953198662709848418108919063020976115230339308179397046538806614061880088081609462373696664214792434680148482321865404271029198977837826898438697280978751516058212812018638004753616339255737478896269381723056884263581768306587987119737390691266669223975949740090744184301357815297643654000777495443411683610016130764732768687127840214910687036242357523732156886660672481648294976160447634653615703312937425214419212566695404772767093181716494427210393822448231052463517674012563067390518474279136429088860826892949459215789143529005626833033420403069543671873041028920049194001019036674457732926709292018472144531017132056192315320708075520093370991894570126954359494748431262586428702147985634110009685791649126997893909815836955607267493548777254650705992341587470578174056144538000311518229726036040487842408851112960270999268791550874104710804290457698497754630638904209449679251095669170484230953442026361946384132621515225972529931946327443241697682310476523952161656897978893693942290149613688664188221468446808246051892635757511221314128874616409243664565122767657942352502595527714142638509604835942377334083498899301052925325558202313716930664539362110624586692421280608190433801109021290329514587174476144668772996343664705236566951346954582523617901165624085517089903911564908613620753560640007375807928149995596916464690357526566380343352588351906501595704458878425872670903298037118518795223464156766282117023669377708205468801156615074094599947104545330568899509455550326823584982361878368146630653632785829243498336504105240173547372415476961462263439593199380909417126226625157569049445568035826858908319501827494348102235649382279826008683193857576449786219655150958016055824543846117358843241044618573299067095317769617457508200736667255605210603532578036920466715784748363229421244080716926713218748683143989100405317335190336481245139437486064375553794232299984898783971179035289770966555137680655142810552484800946901312733334446451950759357836541444301041200972209356808507081551649687469257472910614598828668225569171737359836194860147428427760707549093058068225635454387041563199910507819991930108988474160465028863572827450547513713452154113540970682123424904854272266095748588130040816475058426791081751475116309835534316072315353262866327220471867972286228195010877148514346417088943008609639467269684407260168827333555748373826203865007203954129807042934562123898365660245368970171299578361236291700898319668206828804605636395755801551333364438624612614056920510272196727035476263630378246133282572625161971795523874733187661789067292791968653781382134476270640291442219355675390461670107300952673816166338427525642668110568677293139528621502059277063505458634309803380464201215336459130200891515850150423575817172530255226455871650853204869498218663226170932672960288734822659734255542352674357991775711060595977295876000922064915497194139291991975632257825124632181729061408899278542089811398041971129717065736579604501594667064841176630510804799620011347402650217922837922853138678935443851785504239632867034146394413729423288038102664672578109025476972212735564234116415747809786808025136335258267123297558595641021663933892795730922936993595396066234102118585937360111746757827383181103510761959493249236505285615744750395511261344975490625951775599121013028306721968133575894342620185447501738394894560398875486701667004030889913964354595850538038422261125704207900185724364708100412429340987380351669664004157120460085528351794529533475006900610814397029549360037611207114875595871346081733917957123449209958685299928296331110257827945708454876762198845267503789307265362524985389505806412392517741135339848089527023208949021522456051280006490382220291030367377585134803203663497351438336920581032657317121301305488108266245144754709327251876256216901701866211608197227935596835008705013564794167150116987704812699586806725023211454710243008985556704272969283626395136552479969163351378088988751947788170796290180755351231339292134206402223548143829580330332196953442092052629321452713074542601377901279886175249336483160734620238199020348403239086265107274558017268774202338168862427457387307276452755861048756282100344678786401085366732215116876183163288406417851903275583943437298992020797916175087208309005573229162353196763697207241698086730270289452126837849687501061655638658762794859436315014087747422359098128591559611967217920615742165509193391461825269394612111972658090105208038889138403491488627218414309172828526039282726569345660645384386245996142715871626315883932745396338491596227587135106894244767221779502841813024572906568851105454526767073341780798072351119342735450287226257724589992204841857036389212571270588995430432799024478322201826751654611762403334831005871353931790735036791201501077102485580305370648099267118282305209437607432150678082461577744243277845594111569522960945490149089423091723550132331548575072128307008704287744208018739987380017057988391097864416652832735937518590479487179176676940405669306524546149954775527568476828258781751201684594640787025416460439540442131062905526954918396241060689785268087129974124425676283769981524399611943692976334004000432370778749855151027361053705762175987217307434909202731271103796034987535211342060839770936868170611542622654445472463223585715691159694061633746294461762019032635490561424749631016603545937770678373780332275130618353336476766671754929125966669231738767696029688624375273897203980253652891632170410221178065543312738689844060791885847681855471086714743986118862825784989916060615815576024280710575138455363307357033770951780455669521655531480019327033653799600127787783386674896488043675743762252673495484331129549434289463523923574795698160741471067282611948850462750171999860791649338227825551288928805600538405164015261018504183804354359137198455443129213992273613320243654614288464582666196303655029899844964577340876395762189936250856066635038267800462901554280056632289814966352554151829798997853223711960717953523115882363515758556940182206480969469353043691940213037665723764557957237046626650749280007972457682210742177781638100075342187036179026088687396752313557660660670411930806746418164306068101356715598181530774764999558550342263243186718323994562019033081036997044183172001963264512430901289022971128528188352015622654678380362993153850101555427095079941649283273911314768812984893104154960609079604659018750503571346586400386888632034661991653843020201807447112431428919126216358579182046147461330157753909968922162626693338440291711706341137886202118218558578162011823046659622736699678181584656265389058505653948085936165584823142973017247064066370714406080509896933045131604966481464945542683774192469270861633498876920875741815461864420812061421254535172297188750498014590162575799075789281716457580712754668040351365001239092259963165926260411805675552316854900149447121404205513142286114609661185170388992587035667123088552030519643517868582725769596508829691705337553014038704788462318659323335549212196626441706943919949213575996177924881123614843048977022327321245335076439627653246421435358124284747527606498231231547747463840180210686800308261251295444814610540280289361679029844432015185588952742727616290131309231568880733203376696163502893237868324750993121112748246351698695066569457049835763766002228751009662996032787119295763125255062809978307791044900186584823318114168151920745925485439873229091838723257772747150788340910595516109682527282572237401690054077461261819420784383929053017936132284352911949087976513677337012005863481445387513761144477862423374241508389371383616298764204035623226418573807613533987554912783701089758088785413529633105537433918715772735435720882452866925784295687581245489219774214559637518470260155201668492024694712374295118389377347962127229093130775852169404168631302185098179267952536614043628158754519228443810028131293995539040476364019325142241002169261765156644062681749652026988987276601185706139401283076546417487749940502504967298520773516396251904240761452334641546417275880400268039879427952215777755604868472011519358946233335796588868339009821411930072945273095833788312218174787712352230763457554300076408760692441860450565574761060028821221077248461888150538367953923978590140487577946046459561648902696647818800925603165058855050237759708820522753264484304283704578267470049873348664158129880731208681247711142338516319417713161448637957905286767056226716359718078107790853226299803289535949528044143274859117433012076394624729000813552479391920192652405214318988371539574694920379485839382372234524520895568378825108497667090037161065597737364605871047547892888397298305448128764758820020725713251131893744054351719110370740348906238156198599938887225253384014620796758035612810658293087075594743791901154670683176077587430727529738211227249521821937220033058770641773723293689470280976180264719404687190698500177517555269605081044057285587926262201251068754080956294270183348037288596996118265842518333823714930900514812803859685591916337249005466668802578109632618116208200864000878285937769371745437487371546385657331930435120418282486057241864686515565236286878738788812759439697525968715665550190133399716948101174137110479487489365134654481583289105473425773509252731748402242408643753084674958832567290354825852452948606455439585526596115855194959582533759242937404826582043088701140266356353859293735647926801794691060171339227352787398188300473219160112469373284047512578492678331698423850096389087985838609049223364898429431575530504195832234230182921443440529952965536843054085218621737342128340338091099509880966058766251201441867020034456684026698149640047345765068981889881517089828968792809775409592179022164339909603520058933703728448287680639031251805965781613953027623449343730339847824371607210831686656225824663340768352247604797264643227342896546802089508542849711155911327910604061836478775786160491748587994319694364544819906475626780714218772638635779333605599534414727824554513776462225577922343066743884124750274237018243637240369544760593120799387093955926580143033405982278574845901578200848547221632193744179950091694957259905444376187355527310412163292449771699645509079206796715169754708468260458810331205992558372083728137050281167919482806930411918191947112755070331027715553520537223738477603318247086919922698751162301113702619522296207279233052531920312127578783058255087615741567914707565083560314440979564972192389580646760611604682804206907955346343703985034794609713674071998928856332618642190973235802101666848387224150193049211957232254229757196719485172637256503308173233113492024968590815471626697860942876572015009742644716226809683780268097559627147101860678351156101445051463755421114474395804329662938168658240175603110162130213643108006200938261089591111738738955403602793240935143140012021658086578189086338902412260342613063952644371356472282998713258298521441220539359311759386069946830984016326049605583033520468792090083125752859940447077472397580771542306360201237550830321140532092572818107950661718054719017410375028927649930805947438581501194428791279485852686173283457902070563571013573620804082785828421134641667655636598226840991149753193573387225357495260113356611666343548309589063117511626820684756914788040992496925794599559768512311274712211723318483372619745900910112559276375827673139191738992676453724867675408508939905190120661332877194209730912886760335178846735048542867934110252656887326533321265680182148689113307131096592304711902592056366286025738361863084430393429720927213719069245146087607318329679441745984302044524909952712155277643344106354407549017492585933050315898833095333160464572837558478029557633770096451434713440096937997065215983276765022995613135815297607326089121242529362295337244829717317243899574361108629699131188926211874528036892841215606031808134125369695445293473982208022957892902213167574987558836419245596871063772513532624120230997158923031814987737159718066554138224634976393445220335852810390787077103760750168559299111132481560112342533255958379408485213112058659638777836841087743514372273495907353530989119316810313201186789737965996669255208055404771896118709523995571556057493541685008461338064612147237555325290761824871516611398493208929130212957310603915965583456748439617889615493677147960159906914197425920178981360839553857668397704973247840251259726189349743986433884279402059914851922218587063848216071596080712920027860696842968187057166976085452068471706137276451786414729661144714168733561115038478553019156601178466423971401653062566104663936078693982551839755812030803470678302278369843703147153376899670418773926909164573801428302604175449409428454003918616796809044048095134803390707638138514178826540725143442946875424510284398552237394417404168228590291812532634042997689803461334134830257625326688430924458481788024823339784436775206374399060586048698861376579122010192586631912491133085771515825026952571534025733304958072475184139101065730051669333712424902507420937996791169408488918698889613187387789817844254089375171634818434075676647930920559370720644540301538846041046048693073120808673301334398496043671672488675240674278042117519720720543812241635699031940336244006546830174093449488871655372913475118279515030478498650338614403330812215373465069110932064694882594921218147273909069924240737788607021939497088510101049849900240785107219261442489309567528185044103255444331280391008325513684982122833856442523059139127768444301838519867448763367080637983050956925033181733541933790954969022849652361707460248879863727752077527048308778108057201430045006500168148338272697317310350886977485228454307289063663026702089697238759250979914633964406180368423339328959961280427241230681938937847399832995021718299335976207344951711527173877806699496950704078827768563667397187933072666064245522146119394764049592536512054157798306584354520067525126899129736427094843456315082741627079682772000031424392442134598284781457341784389606637348631176328671297288889234436952920602836268998536446135331486150382193181753933370585549963946355966427403308766535791692525288244569682433489654494328868103355073085940908588791330709049265326083065365043160872267285447561238801565118024676520204318925033821021334272848293164632477228115886228181085802267807282121724439961867885735330484719679523448067724218280345158785026968246777333560411421866187172416089679729332885385488649824817353871221206312280937771957623582188243186035312684466260442896741230212503894042724532449582561000111494793866082963909258894065241323647977448373080702564188136840670002354110380446985468382478639604239901441790764857821352651910700846034469627312647565984878037577461156522949918249713804298435083667780189690117271936211350845843345433033981233935399374345151653106243413321910554294851343561433586422695692587846997776889544021219382611080313015835552221897885535671658737455226851654716467267381905060917242775328780152020676593503633622277850336922091382511308007413366296737122588517427253737774331887537477370939332303086812972773789280455178142374504883828806342414088509597776036510188634972231450520412921396503201698081144391053578645206446507439690168056592352558697781378766545311350544359136966454834622250710971301264228172960023870519514352282985106709643434521437127885185579873240057563023028774836747797079507644633473019247345728732544489426777947142546452880673895304391906209358116658940645953409459837046998421680660189761179556142499299991641256338997998657750394438115270976041101993244000214215477176416471111794635489501136958287339496953350970088339893617537386937426939970268159874720769309900499828330582249891160463022285933144810717456812267157543239002709311074942055476558854212310524725526109863728824601249581911629171386124639015258651108516528655219152373134959324482116152877629493176230428811614425450452387134990358163377094383813186228190935765594773059621843166979968008581259502425942651902509878877951394725705047068409961311399338843436835502782954372531365757756335323449008351980291296788719579341192947239855325015911820020898272428730319249054287291904736576126742061959452091926897032440764824130916467940409174693666478534515138265864254585390337582689438485969197587823162037311631887634073826829144208008110663079333606815237816526838631109980533945433195089768208801512916747092660486489486231275386250884308030646542057183669981833829292368140778914616010701598218331082312741592382747478910929609311552760466686277659541253291920098166911362638783274881382347468018304868559442485210732268732817938293150574316586678042884441302768175254540622725314420692249316498297718100203297439262335972922847862225263847311541682372027155743748843025058635174282142451834825740236836644814266709738891642303184944092046467959921191899872652910080839624262443876511760595092921341178896251256663255886768436504872157240058999009168859296439032569662668266909384409932987273302476679248250799264359680768470657651797235518801953350664989189552125846598542114240189851565724274960296331277538340669378351749778027645982608502057739041433258266771972842178634375030550517863018627986512343267417815854299138460338753416912054043784776834135951032049592399223208141097706309355116772499635178756319216286324430322800200150654300488619292423773626176530395673231050075342299892196557625856297753447555342760602943824481578939645653056183031987595474138201368832522598868644380864705454440165412405201100227809210940170671502124203796128773499713496391968909715303552086695605336990124431131336791467362268373128472839407213167311904635814948836744103971476475507489257662672993607741780459718531820952201007448657448751081712923216197216326608992376938425000445137492341587823026810850499336439899501147586647276335130624549560542021877349203093686851229243291902061881930684886951603932165558116794783416517176279967830530817573055617158980254688012553142744699414505045635789478603322838705980521499051874523830528293491639247757704189569357356032507969148755525660884454982172557197839007030871843871257456365711953286395947172809658074174611431089372441800736533044614909190680590637821532009694142041453703464414412350962670129423933577799856530494555579485097431421607268958422939618980261957337078416860881681152125296576100460575037042982683584997920821827852411297806374781672842145742851470120015979053150528414921377124834269468169918442985160425687696785443371716401885141516509885632193027109728591932395863647503846858489819400334416550123088784678696779634059984117715848167867768756051841789205834806643985913697177364029230059594972037720802876332599120380951852109206515500179613034283601292677011697393818038075777408232603771826230575985901872410574354917534208097676491406114116202113076490995358862124005787323898050730720114131217977492000790239965091869511196784139033729867010631438804226916773639946559739838607059638689306105593607757251691572396387963032074781860421969211921261459196615121580455836156895551123196826883983142355156423162138591217315878684912324389988253460206555848279145956053020981788686342056310277532494317707328790708148588087577164299975475341005629586884773743265075784758974940935651682303959207226267809697476942015623709747506542869909697747100411282725714798347879698811038117453734684697010222957806178434232944716868931617039279761359040703956857983754985440469651786380565948273063978171573359885808522929366439419787836512921933509163616549067260085833917671042195372770227266968966677977121172337638666838972070553785056539249801758854520076248550936660524176212334401668307110033104577554953982641735196408701653496886686916229499956331244155792088444442222503918854325141927078230653846299627747237855443137715246789863379143144258965339237471991533699881109595355606082020385176255480025111656291284090184836985481010784464362124974989354315861630068989445435878919595386598142657076027388794003933808686263366053511188782029926516874825613212024672421100962258038904833659716414787841241821171823216108034702051934046564067539399513768229045173350154578934496130808513778550276527062178978067558681311187505225680891567567957863967335519205428415394755968261088578052616246461357780278356986018853970444068673629070809186422787142643807006702735880231342675137322723012681021142726781705433053867337605078054859819846148577437005786249696753756880265708700433904425115632793069800535819173397991253934435149357962767275029624506807636450131470915055295480106309807388853220627534437836949058648181098763862531108645797682197005718592043901653120713571088545922250177300938934068760552934511493771510058543175008867109714433022930495352504172189797572886786762575335063912318252124511526839695071341702983325736198857511606302850946726420777684826285190353859668998288939804230316491233464257810510736033281168271057337221588002069410025600269711630048059898741661937542912984461241417027682234342502931236987402349327714554409485933229183093364525651648477776447822675235847522933002781380445542317021484683285769190056045451773997768382660809533932257233444505350194276946967460155433205559534129392716775198074547062603660558394556621151054856417235071308069955660305212845037490680061914352164794999651997046727563180763647835465161144310811415770034759431597866964315185962178965914236542283432609146069762048330037511644086231542832359027842191308702176410144811339023070655666756731022298589699533940959397763565002466001022698404492649131284555814417799747137691855916046626932019354369166693800387261587189927768168040672132046705718464066830169304674162167815265546516455164574949493091365182015367943938085159236958112410499151018113799994955505281419872054773837180340660956697935986470322544597954225992345881194829365313102004021289161125511622910793299610585760189531917801980285321973906924173774198920467746690794492694417585902187243603382063634473906268074077984855966744389984614777725950312872889727710699002769228667640148114206575996916820551015483133723076248401118967239732352474947089488551520257052237346749277180340632345135204931934170088735064467321570797047690496466526899208891646669280067709637759074107217222287922967250195306453145503943008075282758274104740913267240128821415834877134694957978822173644533738624305305320497284729867246180888499640036048723256148062567084922774254958781392611215280333075675097794518840887272992700254915114075732490376063638678590766665513502308974899540954216628131010069485314779873962082422916406635687460460824901101678322749045227842696252541785635311471623730376164734957613308381811279637760943228372148005416486562331617510345524744461788498027554411154201434351670349831466637590275448147690675468774442579713016770344689498145222818982476091199146087967613360675410525857021103377503381766178080333689877963472797193647694939935999945619067110297573824513701326827920942573265602220906144294324402482519767533874607111860302887454788031736607129704328654788230638249051548557442569022238880945772738765648319617431865461234633606714198173301128565750481800007782516601769112868467375356013711522585650616494437393571439295198877925723411623465030451034234768734424809639495991647540771993148296714736355083032443876923259105797176763517648490447426749137170426926625568134538650899460379655644573850566434389521672497200500937668671293656122221223118498493148633715125911214547425381516500336121243000772366997024786358829720929658609773253823419460588818546059122343804228638067354030458783032804990503710697004794280143624249519982830228527170687706714175359265017446181762676150117240783671610880388541173720025736210574918549663596430914831138909437434319244315812553833267731168663308622824513949591789534469958270486564296301994620354464072179932183260452297945296160075187228926381070632912268733125186429475272685539152750750710324000090626933540190565396397128839502917584152555966518354753425394343614394715889951042385547054969683306346933824773776444365729072239830214640813943982927586158902144504343790418942052466794046478255120343530523691269519170949124135219265312592894172852364134630226084148112401730856210572323321521661992089501031522911728003281850177885341800012003514294449512570299282946000656454412498365283207660906069691583587170227206941622067756690300365364705581746800721231806633406852351837350788279939847119746834304398377976435676131357123280474521494711140610482887563366530237757857647980876725383994698126615265092089704287065745098676243323177585570706294737760577862870081013048095792571571094537716925786544392077407860667292693941645712604983276815766154584769686986152704985398062437251217078640409984439805054573937042866121391293640250594289993151190732279877479653634383767946756374426421923245640166744837795952537564700301084277573477368013733668373255708124568552809510730568139583946848547428779432164823310995439714004818043006185352829700932600502455065489130134243363152935560647256691229773209335834808565653346697427641421108509602358221685507921392351550740892807113297109266557468510230667032253253278246688464403709398054072111864920569238657074275109179289664780483511326357855870090711422643964378014654617946427930332517874029710381976953182851831448249018601765018779903128943985987464914084163036017641985101784040774975394952066992414477363207384337850143260315589908449890175617828134720359832964736573743413053005912435632946359651465744850036238787843317380136787254294626281744501822162334763901215744151097572206936494553876711319812541717741619004610960122528993818972862463518562789998916391114641183737514060998711830862305519759946559902468662950695268689568057662100655148005104100291831331645363180106828044703366449247328999897486100400815137455702320254015612616590931361124034981402232218700770017898178306234488089459769611882253394752068373600051863027389735517126412279809717361186496644019641657267693376285271177456677513767571795576109894440653318124127827549108605558290131599518691444370480756352399181926736026739680083905741715537494927493419648159340708718672379040551609357509765342258050953321491905918034133222963761778310424264061109306721550140686986117142083877043539667902648655990593176364764369093446477888740869395198131575452061228891595259836157037082206129830740240159492330786952692961944392977765495261686152303599593406297547784331820545159707384387580095434478446989788453283098832424599124478649173587986325786446793771635275558082032134242234205579427016905154999453962266543273243676647001738901357308871954081229332620167103119643188149208030362420476375985230230648421174997668085093645319936682909421760240662778382120760226015836368461264403251367318487237763375712375039404057479799668804411739634828619805202111620050485014871294452668868085242187577473456023719997210167681821377348244045727976151571660366378539802163149406071989361776897481387854419133121527466663947121137096104100094006747655354237182828669999220140834283433115304046511885354495495648557993567200246536174215998185910040474135631593613488269085749240576550289150247243682171027224080409013359417498708663144992262400565981977728731762821578992284525700438631242572893806038493899417212391335085627659045136162629628508457382944001594503025953052491893134590476069031943129788484655724448850666216449704611492412961930780280630204285570619858514481369163111002972735913448073232518434921285100657346165728216389145007772073236120557962875759516912470995101454157718529216781561817487185361352087690769738330748149050902630347489543675151941785611860554956552125721991650754157100314445856546026705199585248781220298378713977504134269118095334027700628188589907435063700478440212711920589978313914070635238276422643397301493828279727802803176065691837783411398863611847902310990902027256101650412615786226434560016693865087514258395203918711973801950272697937591363997299163334948587063368071470338427592134834659236399873984253404861249159216249673036820097754474432288337746029965027880383821476449761796617411647726786465037232710833527169447830188649027489961508068968036881698840816023207739394290583952651489336593615435265980720498469514085994924772756373654189178556181812627279106730510166391218090348190692791170483855847094652307332282254968437258839930098619311764073242156653362594234787548073834085059539386028442534057593755842897921112157272440070848021945274144055209876630075223569512581007965910856914477944108559861507753534594749982121691643042924984474003953275111937271802216409091267020782653030616610450783511149967334181133529208726306384809528831281180859509451872422275360844850663570414554861283534530479328340682006263146343092256543794207553881716855291648544915356895380431399864042337286359523238205505219094757489563902192835717042120275072979068724797993907235138180512040447413731788964085138200647844143975626434424792481535213285046399112639722411792181992952227857622649948819375994115936795361106571109674679902718313882195250997150919584402462965367532423856447546109059300785902514477625881665050476720259226623422110650856408671522221929840298386951408432621012383927327643133186829879832514968856018551223883269612774893305901131019860916402718394459093130717070872197400573129023787812747437139844770977537902508595507011859890449134389873857247453962579900862836485423179334380925514221211752874073708426925193888803750638807560256924401222548786409429890398831235976958982485047839899125573720150211618170630619369505606189537717048832375356181883857471241374886422136900091931134904241853288645880020127655252292759030726597632217772771324999973604370459205117381899553244577247923940844116327501908602473414060770683491596962427655669735094688057545850723831995294752617124548289113013900672141016731277658895858166693952492051741071242687082354188701661587141623890736910750297638026347655061922560094135007419984471508834410489340242521966199793986082073154833290932256547184578648261061692297537119693556862303654257759204099422885055784738928385332894620640328941700786320765815822521863646593282068579997143029794813219371138318935883878940715941646486981837230479442580120600116895777581994236891515523649547201206297616165968049713423387446132988198853592678416332329483621002084042364376211613358659157795846359231877765356023760947225274529970418325649939473009475295765035190368535052521742195743777964449049914290464056555045152303826675935320882991742045677255300075780842287037068201273410085733933760087761824187050582059237553525307109553031783600974059120950944264860439365547338643859679692297056739388274322282815873388083765713665799806770800575339600787020330803022065124518862450063445345414594980600430191341126340978308883702750355092669637847226744462862555162950131534562596690056292668641973918718220956468920312436360797232827588876569824619642763850269689619314855254259220345899319933570432132795416442630513162174957408419139383242562837336955910618248332827804251870138714711131476125213321105929597514903380755296543969008267089452182973228552978444575045571281394447169641339857934771321021536984400430800439773185358986234233871175762060215230433159367899354124955035573723624821190867513443485023664552665109754895839275377544346059934796000416162724761925242893765680850351198927535518157342818940196250575208293541385547726618940158619728503546626933435811142038538443135007783720357717627987273158438312625415492120514387748796143777345661186356879355116379114151114131864590537922249975275393825290514073891969990183079445606248977217044159572206664888854453415362568898895673464978727124219434868761473615537959384837938256937892934425491846142504191616566989740923264403666327341675690300432395344255306570673978539120095375268774947454614497529287407950227420618884844528444853296166621765211310008989778504828215348708998903338949494920111596137484048500345504987184229199225830020736236350996307267599945337893379783890611729268943193844272081933757489736313603106645881440944466649629505452936593922341930437658084971110275829358191991470971776424675397768154729185108353365035718905573764336980777631365279088288967669597416331092351536431862688134851697028378443358477590037353078336661568421526464982588658815374998209520967195682325916856782045562879901162826864672312701409608235185586674885194534622820779288596245539562012505201034363283069343464869291511042945675729587396835254792451702467812250863245333176543879971426256912611959868945561256895144018243167698167728627707050411654304742228034119064644715639570683556936084045774306886150869391185689515938702055049726494008477610994161848617389800751499787545061689746492223100315241150298838011999980147682051019111284175169997354886986088995501596278343628221360934523758587258787892697753383628257278035700027762555380120374716707983108817141915424115501070170670713097319306730456904463628624493675427252473027874781656386259366823954508980734879330091731514097185497679644374529144079832613001405140266229611678713444411165513322347395760438389213480951128680475042776063209037518447636110758796071805627465933948980608451516683845230154524631321412948543673794081909124532417164229047844450920709873278847107531118664763455642198920714554293823032019018204662359050728536797632522590442147203502734518565286441598003449992551271777440097445004142496365423727613411050829155014169682080882967371743374511916095748558246765737138345904746997839097759390647653577592123298548854318026342532485067817046153394720003366566090912968638571758308479603924957300894277016464820499950555040048927275931532608836593860185829181854384900778655494750384612909423247812536622106611942023193471917830012237294224074866477832393429882148855967379979409690892972970400019007995168576332139163669062688955661515249628357544025841630660775610340932373110902462614646508514461878517372144291207809987617663277717206301516637506041166989578500849840493467730133688737701066137877459656662985554905400724404676178816136462006612316922503409185032965035079266016830709638700819253959871249275119763462707552154538999601387366429979775690992538526623708412373386038618001456199292347873533161444044237831816596964948618095980287287607717593905980934817381671705651097624877729743766698704197820094744234906453164977566693803583140421527189973492690519174131345260810614593201160826153942146166746931562368492557279730501229476131775260506690138696546034453607142912709088413679184881293560637619362317553992320948081769129886627293862548202489900107906922122272638303961179638265270107802618918851224619323084462284765366347438557387433511815855065000673495426580673223430570227861718557636622821771078267465791702350656565937367661150101331953841375409807258185480557654787141378556299956954581611831579316812086671025197558648574085124503243290514608174180002820457770833859664147944982463117190625045672389306166267126648226098001762981587432583163123850204367907323275812789900514550099995371778541439633949328397529858676912958755540310701955234569849763205421033694955350050539584589000374191036762929234661505188812277882766048450857173964686459492724643576524320248353339566589354106462750841935740879937562670812803159796253217216407190897155908932935610672155084742033918466151846855712219879060076285986858905387333591518044674284064549577706172897713534769779665686324459356930853343399254455439914934357316602354046274981192011352789705372865959539330189092493592609470930342002300303082356984860002320059168151800343187200908452944222664705771308100613101764195998293513287562716942397072783066640316994449712795822659901525163815410445153176193244991007562735479540545991576425221357280436692328171050478552694963440364539111381086797723735274781522476209662969477924862669790815888180507820734998269591464255613666992380808324544596757208450766643655458631220632089712738325729291323277866291628597626736133947127510517769202309329501225004447920919058163484380762923436209839568901665167149366849907564400057364472126365699795834139113373432369683759363362368438794174505544068654489671452655565577503966609914017442178382725053268865056656539558869042401571933643201295784811989204499977611027182789954858465832198182766891904384775928645511749401280392731950741625701597413702203041529926691762791394783266463348935065630084560738629200067071076697719578515972094756172438179109260451694201538896260717335623170686398663846912149726550315718194505031429705405125362195493984744486529681486252366407557779717510876299218047180130350396818660064980789293709060317381868872827058125329935731840377108560800695394629769363481485371596374592750295258358127652874309795652158090988411857638220026359344814984303480407395596321520288474921940231794162776507842401540408768703163756930283081513067953760048253740685612182763738922365503102999580352716942981009927658704367510646194343889318436461066743354984769223955491484163137372976113419925348272899696561909332700998948161632358292950490577512110848664213555043607280469004868132711335101497635192418463512109012551742337060576546630488888009570938991765431822310235639416773292127569831886134661678935917349915542015070377000544349598825353325915606224882789880688470746444558766528290600574720191969544235240179962916892469284394762598654460473509105496664858534261123146701118782809852745604125008644165550055497551994284463165080950070894860005118421219243206348358803055117979037358719908542791587032405450930018532581113067460434329584968169980060615399291252097412497276493797034863776234174196311292889186639252897193422558614254328613920876912177889068492784912334324702147112678216548465128329319014250958983116207990127618564001537106220938329237844283132338265826656809539552780733350145150352676543985193715124337560643707202564457135878130360600381084133282940020528213901051073042926125188833998243994892590384958758321264805338952098056602660796948484626695055878444839422745149830359023821239849016227576839118015422711390248375980346606994577903724044238008828674522096425970752021785813591824816509377832563776967703731314188405665865583510832878540422859991634855796545603741001071948738230932274210287286953202742607633711240593513873714517108421182914126539878386357195795622226044696047893425615100284260768048362829448828953138241048408225947818170090588471196772464964059670835061732795555109715753755705021491648044532124764083821735708258473573423761873176159313380095308576959597819434453069233829681484315842392729588302158903238539378953783137576598403062426910253052944894149445472213799557847657661900582677775844075122156813595732591122635891338344518766955035814124549420028761614193032364451842696978777649569394911367229685930084759857078321879429681788688852891329023873056277366367759930307072912224934146087933846813241695915729895260628674735776952597870639403486349144099765306060375173261920166890931055226865468533007318971492029741570180732925597631205671567423192717205738336542761089280910598467083697665456602591754036440533038344342537266536996614986436990678836355813156884965303422270271395416667807272540117523717686115948367311537521587773699426102203073636814385394550812943298839316882163947542627945620976910486860293279873170575516492275696479194658799955860396484547773401661483343532302248662295810589317543020536889749218467356449239684815087510261606717483223067911525620376611280422622475796512813848233507384093672340213879044606989073583743608104866118684040867518606983526634501168678187671170984330441874425483458360913840485338767290527191001436678693645528645048138115562613387230087270677642944835993323845507845060020790084054230733810201626358665679268778703648868883834113109999710676959638094152881851432012486085829056697620660861562471300592852338008551172397330753418990570454191071779113619426661954556743655636000047276952213370033222634806423104967866997413777007574880004720875884960037298531621781434365965701494689435376963623823261874153594414252971120899152810933019203283703433586483536674862267405057878328762726327395490230593757639253130142362053101921405066369785850703526478779175245297090645915838061736594057882846727028727191287778240808360142145657094208555520669735839456106752160996519515996852543434232905507027266740420151141383947545264794269481586305158118243560429798496080685113781931546793990771965170649940248904672289712539455739882205687892751083761074372407179844841968486564718951625159071233202526198021641119156760055718997019023211484400735732327238275629713458116417299674582299967035222502770336097317836984754420694300873200128190734277462092642320324714423799772492178675576255611714785410410831830052302170036913468712531512903839046072606926625022088479339030441205502991343327100318313068971611180008929958367518528706145640899323862055337069203870852208397726951591616107861633021650458127170898499140231346135582784675447501345605201436008454159594179513123214998321826878362571458633691562577839341810841017812550075597353571943942590514404718354871205944224255203708389952891411390405816398478458020422398432168889930323891143196036060335577531565706783935762930400046392764290717659370746636599147549975461139063781914661802860858454077648567887055350062960288544386193081757192081798546384808703465788704550459417666475469745436959555343906838965100881003736920791271796297178131439802647841373588663688511412721964099627901379842763868080511970368522006677670329359495021192165092728399390578125253840747770833945403415094209250047118776625345863800593534010984169997565691225347961128544499844176788713137941350470072998090088564593987270454400068626691062776859875504964321908617144502429210784213798889738361629705927471546383943624567551242805114564442523529999494060243557733666952431740324901727458493263165462080641623519743171427181494654446656562540716118229174201883219164599790236257480230424248186574821472424401284751197929793059397765807070333560494988155477272683804430132051270881848789779230933798077332759294051528301605722477762683142371044942290890881799085408334354821304541847179573430247628340189562493901468113655978010570348147494339357666550910862876626603614324686313249542498409415413815737587533752293464901453368075567743067269665380179817023219795277232924188229873579630772336055766302391496714619892521786872214262894939124535013230696553635528024767246139870987367918189646915431845153439191872611792148911072563762493601709776709688189166396802624642366983831706109441349199715444383014875198494837179059449146048246248837514437934975510450645552413427964376669125816385800768893986618028166804830479054188136019384904862520790293210003614077403794573217775218913464844175803524767275338136287881260361091981489774032137492516471151426336902138029621273245693417177806288995863722125376093237615743313739545341777502232137275485721573094412623712848617933772611389153164041463174286624209927149729437901833557100139288956706637426591600265275941904223224687700315397023158462436050547286961361215863392622009829124740562432587045091581938505186185905251631954321316651404564637726596343039422902209828491989016858648724207782623067623094783905379031511789705768457724479679749668031685425308033454650399389966229065314614510038522466439771972803539465873091779108555900901448821518408278345251489583633870286878516355699521798209299820802844752212086179474633113326314334841824834352240962837365863120456268118380862814291297255464692262768904002971803970718028128815651072318971520462940569218127954213308406225356485035392676215100573821212459875411273518969154034093540537621145493512407801221097834769184536794623250901875261917316772471581214279399428247636071269365847364674823696574334073837224162681689005851524797565155642085521752398711089277924330410898983920122416064935584973723309358736559144991486751468718098303106061506303686597694099760303091900541122165540814070714061777850484616202106050835967189197871430332556046859492100492309116350900746793018378061346927797006352236523318663163671381646481348077529388686385457459149161384363493288585692023060468207801269294111126452457803767611168779158190098945529868122247819146465661662323795595523026380736862542212508276227501724054172548189432444358131766396457146142537321699051948987851828370130111507118556486318575835416972393538366444395215327584391954207784245776661824071802865789737175544486433910699415126045502884632480051501759135431914721740505799715628745288592019093962400817248040338147323383003959390096560743388756292166513191466107267564913056651108617861777192636350664747621438588249903209775387427715491669043773975975146714779874622316357304694954376821092465995581259412820425099935713374751985239766124932363908793703571983111841481669943304821737954063572622022512386264304368890502321370228506355321454564824888325424950784917940331649970617492562066285678719324158882768141685531721144026662561909572527971378923576685342448044083054672105890917207794075577378492228223230030664611592256763426281514227697042109850085863118589043943526623014260351409274010935121346628717167604480164561531853458349556891769445171061105194718200515644164813060500848374663212049848174577677329180028650116992853406362291801578475953592101421653475361102219642984965466232961782293052850236496047880476125228991984606634980493895641206968827661514965145704822464880892581943551794595445509464400668205526197191210587911736993953315032664302057265722433839695122661393083595071846678682361950688335111861720996958529283399357341417079129556011779063868135581141346984945001038002540746954714092418001780987996483799240271171164540118400141731563051084237374925989846005786134408749278462853675894008493920767731864050409189872403572258739805619243334247650637511743745724507641965297015640947587507543450325099135024868311371071926268685482572127409462918853933058517725941121487990595575496511158151662296413946916071330813781466654144587694484559746407604543972205184950818398399818607198815161939999769294230608202584592191931099877258333090064956267570920829325803731600616606708119906552471260053554288276640789912106706687119663800310524234599464266571177415495065583706957118437429533387212627635033316290002015237736960674627490247183290719973142955737860194131309100299805235648297602167554237450425359394768605195557382821204322545120458874460980000100549922006812459114443201442964961283710886115515510463975289296901881036089568144169700895903533028647428734351709551472139965100291068363980674416845344280467868888538480241219022722420025785134582021581238275838990957827788980096322048170164871125235994968058156542592448358379905597881561497969359001715209945717462063101228901406021517172727336623434918155327517381026133746162332093484838593357613074289894182278095366264136659875467016118066592998842065007308927153557221969930409968608192481937197855102105485295224345888739570591104667551985900565658593766860874130291893350275247998422514364686571712331220843586520749606494174391484083660975784793090702480478649898617849270334717882984317441214562995368608382804077988598983463736870468153109491488571604403459234186195044449904509457756636934667600852329499409365032073229201871760465789202124483319390455905921426077705680182482239865269740357083560207425031399734474064151959880182367251124695605274491269619728086333594547955968931615203944184457010351362232451087296966787669752983245125089421747482683175855554958033131206622638538242775006680738875703641238797944693516623596618868218361660267988959310511742976204773064755746358098895244806310519512009161170474205834672612527206355395463379630347887206471253426995496711529089128310624854642576739018627516751829773873708715047279691461034231491111876726955086905440051955983120896520343308878662840673782920564918949478867481942303247528225861279329648904004385154623188305756102137935040216647562083828894759908887738471015186801680611359510926989139188916590938096175424650189863561030702638158594694980532749530580044774596252259051753263099510521745347169120629000792327663124248189745904793687178255230371148469130313357591319145788133410231374948873622431791492966612622789640776416396963326037302026865511052353099133817022548629496276888706635685648251855186792749866505348739181938428548040484212807894982933512600079684177677623652682062460222308931021534506112184425520627160452821240560058453288883105190682536340120832234401787551977715284565658292318030548544712462736730043543117766217555187550969137445945502290081860704906452764793858915148401949186453454897028082399192309307916674852179272704805302752417925522854818347849664431595329960133784954312858917807732565110642192711523925921418010555118174139571879261160176039977264050217663215860118086761914003346330895952147237841393473800816694665750767042481654720917425183773832007262106882361025633515596025694365675091490329004449338706248441768218761332305828395932414797596362637383559372062659667658579237958602948364464915207202502488227282403728069887741658913419207801346053500569900217401752749207605252767967585236072891299949773314657155746121347392440602420150733009823681953600064282070738889749141274951264814531342810928089590160049630062177422558900343665563799653401906713029350095923510150910285421628440913690310055752657865416427575489905541241787851257230133704020447391110194032686183329348265857679875553859132524804854255833267079659861823754595309109917410851863267749921451886567825408189695566419207126821969385584800316556199581316124820640100663889995408844751018886766497702230304938828903002538814508364066683982550406700732210201839468923356449565056532698284407134539796491604077046091176781824768647229145339958236516432014715516863113782169407081370518558424767488472452370746600786964136586954198709449347864863914353508618989843769212182665829671009692580585448563944782432090651624281544235493766334611642542131051912012786335163374818200083686178728594542215094337058947254797952775956468392171476820007783321292600028817690873939909210621607222225290566316585915154707247896002782872939481536561919690791323836261337686680762013625954324444854498623396509876667495765633261581292908132501146854992163796294753044152437660710988594747311576106288590093964412019496996051074020136869961366159834146377948304705153045803751211972360216183300986035209240440315027854442368867158825990736261940936854370096467023157193720046343513389015560235356677006217058446994716506995244924242657081737525010131319567183535295515845507761478310994070938628231750574637178453264640414477977682411379362806637362486993584338611429865962490898327388598996465229589464124530534978066843053017198961247933248403179111687687921042613314170897720161811090308352972607562084906868883093954714922227199919183545557266803324259911091788916585930039416420275373656845864001122112445754348266490370107774915938034199205954473146599199506094582748882226090840935370804547076579001547815185319487525596139797898098024615769771281137293349266996717298560053722796440274219861117708557039920722551952668275728411055004677937839156671646452379807237090168888002066190633995892417647304479720192136392610428044026040033508902601779224489670653763886233293165538804595821615000168899711866618792843205722795306879635582484009757839090829213800642531893771693884730348482966708333414806550358855936918835666985354286852542569204940639589054706304669627344099323212218581683305529082306642519720194215289866072172088683117859611281267007959547237123384689560952384340620968131139822788490074664894637131346913282867007104955309609836689040844042890532085850095431810180382216991739638940220019996832088065303829178192791309603195460539072566379171663645480092325235693655526108947669534191095845444707032461661393721625810577105288013131046623174058542734822148508774873681590268928856733562594975211081722767832169682846829471805811407174660557699351884704944129121963547698850501609102865353062093353014885100612711016662314192923904463111329780588370805600742279115970734540688522015419009564708004520533427076943812461356099062952516953464706615726228026600368417912227976696149281979325749427619227305312636084233326054019684860618292035341251093743991986689150362861644355333367589616360140732320609993402341476210958254394896084708847299119238636083392415149916905186337498438909692331166264209595485391753402491317503641752152024339637770965067954998324270031178557544809641139295166182624530463030829051163597517045190062077084329921996616241790481236604221001142374776518705535377066511246227531116359244677178719161190764375632577980782719248597752734172783647553277257738899373563933346180473394128900290727829538004532835498076385932237980993966874091242640093109455719516599249622415870284870418108084994137454692665367030106769779309333862896429790721644621743752332699831235455997998984388184163832234871299145870056812808319165010093947844231720197350341351168916757995548972243367261302835175731232721879814159310764739262628437692983140757165586133588318100616423563120574054431408070506041278178548759350055751572068403810830031160612581621815495209836928023464352176719586729796231188347700924289460110200667900249246728455972192441957736190001944101465111509161991061088122237569830699778723231600642170407883683470205727466394691739930823486959148496798502899977170543661213233228890610755798664162742049218973942317249217183441420398714930464515099511920281220277292002782476123761508890023312956030199793020422206630141342888569049524606319126537067898189940576858000720453554429485016820520831807089203205810927792588320685252328564290631622272523460291576468545540510032070671941169207766766243713516267426450189860594684253586610899548393112206540193459028838809840269566429885091050460524188930176020958817342893192412166977956905483854137974316315661782740032071164388775846074633180024766897116467429262709230576604794402201073207836363202006830021745718007883576201142076040530501413739633337637326854977230424763871397571807630870659732121340729457769976820860373883280188857173222817656317627267339475706627331407376248135620897691309859808453677835034693701077401616304779312052991171563016287203136063165849429365230004829889518755233457410744116404627782985330781019214131377887883827358955839498732437924586349762356841070022144504420256100818398636115508026671745652522980971475147507770231268968905766856764543126565399995170887241640754421635764210734384588613592598122398431912796958145273649175730973887011997958272856253003860576760365514342196761570771288821107671609795204354267429706114506328557312097766770629963728189217936319582107845899625123394494641176477925564189624312971138759088035503092871828625724346069773611762353750402148861205844341940997573028218790524512870854589198994631632026665077709477939211001286962824921435227644795947938701915112312888651423845073625466965928175586197474185971505755266105246417301369379113287995639244743817588166379789445984307496783946202990616514867508109894759217003371273435359303132037356290198557570634921315708177338564996440136679067831511233313910826744480757595849618391805720058656716836617915133987437927006540065752856010676619847345775842493676863447485134026730096237736768631547276358821911401785801656313525914642252752302235203027143296796495409399654425138605319249510869849338686439852042059934935482355335569566202166230470649966062024296123203079043453456898155339616526601192194010919519637626453907292096154827101971705253116539160619498364879465130731314505430657793659890414527687468279619672110508675770083985886983409719127689585837877577114845472507475284965196362978771278228353906990766333953012134613588684583654873746713688290931588810724478278009082728165115074004326987422048740594524441167675418252327652261867982061620288540113905065617832745721295805953248575371366341194665790468287796945377576840752216200583479854929323538943065922614408693713509944129192803791604121724804765256901468243118942452443958452480841523606201891222072643764183763769376772411594026539763610659389809774087577000524095982573403372634790958537972167596613234294332073611774455438142451167895057361474649483395747635451956238351102313386520441572763386489882364759200778912410255188812159549698999464397331930994866515202738858493363735099521103543069450514479698283569386851277013119311481170070374811509927098233279198734178867600090244227141182899173644909666031449784394296135459408301155346852816093142112566140066535645340741754226594643984166045457546090378767740805251808264278102702912350155826276843503279418089872944301772852060051696669928031302129775083915267837363033048985830213030684098440906338374402343067077130614887528889600192203967979314399059367106151240154725152613703081486924581814254052135193011906836606388414112649981577271944728845553242275579620431911079660010058347764609138692971230320206668871933364065694532015814407236621691816745862419768761756111431487581849456465617941575786736543727043895182296207721252608314405603214957153125561257354713699037182142301540401999623242052040181855434948229434231550816297143185881160726786190593640664995897206530623936458619304169422274781818321060129895379046421021025266644465478650168403789971480830870738905101827770433138668840240064308721363873771885087703467050256192520899016233985895996917222915032603676996982632366329463846763970902958262896411563256122118419662452986200847074051332505692326681683466426668461885196170869858190870056712369373172066398283690691617755054833555539183511945244588867831460498438255176430965458949012196887993958975328731834928314413089917718624042728461247765094250745322412475864633593616982567998185326414027101604109746450697129813826667530791707596306660491271940384232858222228264852981621156588642944950314009604676870729024764419321185805835849114011548019841142669188901657534616165255947524018203180457532167880778368463501555374535272006602785900694925434328231024838356621308465310692866368247905659220557909698233685868160900713871655859033391568646132054066455302777917123642584581998204130235058293240344970401294812514287755801870502679606657794883398857720050140631833893970753231910890187852314705995082095570102528171223184599101986749727712181269957904642225597202227869406499120335257007260474350947694309360070234755541120062334157846169012275276811464895633325966216498690998537337313105421367205400370696393041053777944445394958735822151510763499542086327403686194425561596607069563386001577235540706222205701856993653987790878552999533108445259927118308804309474579454709053203255000406227901957727478510593053870381382095028606758797560809515001599180776020645453532049961565537810846821811869713556892151193711119495648328900246064501277057242201201605509133286631407457425346049831309018025952106572208538780325250919699288788547997802119683525276594076903297454635594860535665504275312270196215566399080959055589374760370815328707377065662139433521599063831438270119435740539536617852063759975150914167583121423485637799845821448404767683257315465147641987190858741772973498761880053769413266733425640120806080414916608895123192719522846567475187608437764217118876502931752862449769427158748021540327847650488439120264892303838419959965238734243775510788285008523716440906542212503796848599159197696185398806136349324844346495305657807143122596875439335935614351303951773597408008686737343483032853637510597569575670197700040129744174262833959397527174818166420384976274602508941550139735448769302374471477496021069110353947143654824359322221923010382306915890155112142858923473521704773193684324634261958135389385467298261195750075246831956228253620717246075225987122070296283242922451500975715991609634503835390609940174791245890561235309448898593366956389562838766508720637279269389679703189093971551247142708526252085228238640981701590468165730760087598226007225779523873830384286369253740361439868575603738286714889109306045558906455106907110562247696267392867301811580897427393360988909889219299316819999602657308318987051271022697066786466531975655747031260195399988912204502801438371926717949889897586003463856094937418622114713571113273576010381635516242335348726139394382113458683770514975095388868199604780208690516627376375734680317861451942368761159959473206640130605992607766256496078040503540974792305037086480200709838051920568256153030634022978505337928148234593813951332034179658237945218999814917533956654104957229515997806722015373399261250959025931020400522093514416590424968608019449292893853116512206700316621181020697782212676336654509468154638497835282833795280757852949271966883902756190269279061512437844159987054188860987243537608449219729364048784728051622727055494882399467406849483665340134139085814142317065145614213829837781845253368488045228751502796498777802354990610548795584372714591855972165100688009686629251927200786797663604741777695260213985816188855719389684087479006562595521904346296363608602369175711456014237972597491415341657817815525675282796114757122169558407553083463180857224647265797035568667115894647100445735810690983014332944808770034207150033539842354426199796335144347809634879535847519328241426129486682061023219567367407602117129901425481156079284849077165609395859951808723191645313468992759797944115127231738013065642238313331346074691963561105906609975969166820285544767251526847836164315287980841888643532621300863641027972348826671028128223917427882964461517727702190125313425093556367502674597945709213930902149956996650974944621680499214425004485918261956190601119175669258149193578581115468953652490727603880088461314430397493944555202277042390273154028900165912206276506350168806316404826377833365208315550762241354581061296775832524300209959821813975567436110179636459801549788618696003205396487952140653149394758713148635636830188880281917285336020253055074683291064197413650564263129923896879081857962834359358693957860952052594863166236339845668136562531217427076173543300164566703955082384846629485652923295394652142812349958931403382511822740971952269881325305037108297488085821689986860691360296648733359966506967015771234350094908750545549731559390556194325670936937301945782225226239132062724726529410523655875456227865744089378054175958114678678983748478829611187695740484397730040848905610110348120154343063800424321995473362095232645102144813529124544863365234990159448051411935635658530030316963251119761565874951231021212300597574842242659021069134203369774081128494577579199218213190653682183878612812487013056391256038756289536648137420141909025711686676462541102935209906224672300931252675744206970979443316313098118067046328338233514762368224604266506004957847300731623414115479539274193873213670159013154645815207665099023405954752094669445480151315447332116950168977467337303946708194064368693911622406198015288976143273520486362304185335966241494044498548766658479578125776790152464087207980899988826470610235087752459105899353362991880275522457613158475810056139874001782980145657265971635253807927623639136099533837623204657947695608957946371490575170465739661431343678374600424345594971055453746645837000939573178796558659903228738406852967815748100625291960413270702444491475499729934463364551620401119228471886868928864219014015949342115268300287081871992792941691053337167852344160614763629223801658911818183740995950180178477256634814171982751376236627218727468449635844242803037077610307845888049759911883870339604162152592548848425646853454863776110677425487087164577692298972139198433624808387402170752599483255094229702465246457893536238845165896506814245661135869990524145729660917198912487219917993930843501500145349767891683384860548174516254915601058475764970899306977610864761781037820562772269731097089457046780763682571469734764742748170168402845145517261777403774858130560644817138364340892438993568433300183899998062456300178538898634607394719236690585151423477790777566362452029618979693356999453474721865622011636773662705096506311617398919145857003683077655964781635772201476063158582155002988731613328278814136580996574945513705078008769594141224050877735613463892384419913930273273504613012998166948337460249269630336024921991894441517797704240331176586932467863224096273886746414014187678539851336645170389794573037366325595757032350457062997800718385973236118905998420817682427512672695216923036601469389937282188174594434998896636231371869815888965717815910817192469152792785981172675502331743537094892454295474014685373648531102357586005348269831562501223749698092255640515559359642753202072372043452402375530892046453497290159945267140588108212303629781409246931256012747119004154497495718105637664277434288793146814376619184640363553868895631825042141323123253208960492533938669334994951196700279908340952180352310214333607838315041514845940493012215395596585663957464040915084106795294758901749950048822725360719729205094238490542615216080660768598853639653988931921068237252960521960853487139800893668420506342842725811742157141681743247231450855478645448939176504332239891601096791890129890242041544135543485720027366174921450391629767072005246260796846576455072092414651396533119568897653793948428918363722068477049732970371261845629316630609700760854760175155522571113202261029714338428902710250429740844142447486515738072162442475809962640669117952698305938292839033031445039753951229006997036224216644279292555692794244515551983421257228626898798757553396468517980049603038908378328943841186976384705360049257270312730007207233366270756056942861889968112208293253660985268905623228150584421068696299163409517289798116351764687059875828801249359455588211438631345375676879601851803812111592758203398783764386788660979266884631103649056163337186123917093219072723258509110660247237352886056479978059608078702574855468940596224665155451611739585767896112828285534522268623688268345175714689993439630982367950135065565422237724465081255783121954337687885421752948553993807190030275807936945459554199785118449127231654460640641140820589395014753896224895765172368212158402477722684501471422008705613673491881825402462520682216234063034611753849289599444728028656042844723870168470654556668808945493813757693599879897121177766201057101040083145551956292687744593375010094868270615260952392940453168257351870905907827063486451646728199043959058491847903070244856307926745282306964307423707202071164940418614085973186348315500530713299619474984197402607580184452631758781440536305324949288993963332612933787870010147799427550452080282959553342519742972774996789268795904163298974580079969321717680495334721420311155091324700888871598835331394832144850192246330870008904934823862397065970245320181606251798508943738678943068421539797449240396522045810773852999088068202721842884467065371591752950334581363635479590164074241979622935745563192429965510037813596243621714413284128699710969207911338446874655646681048731365190094694723060832879137488216604246565632127636202450329333561314432905526016299764758465840636007215845759346833448498793154198327090168907942234241143260491190763137043818112131555099225366635679723258082295429518650686387663439907393279718524834968488069410156155591315074773843445455711249508724148391844004392206216716670740881028032310442194941088142704365867026617166357867938502669806640956325195530762118696637815242691483011648392667745338101871992713443084179302995557501337103829187266739872354389942164851190534319480746611545372034433281989323161174913393795742570250537865858296115775847590444148014997139428563185729311921586493669960825996646364722767262995819133602497525268961041955678268976563450021809045722816100499703825567245303688229401365253254898011607666562227152496209080108704464680776677089609310464071976598043625125386385237091604496995841306640912152654036078521020473363851714622346216180753882102700932831869530558216371129824745003284134340066293237129738816982663886199914882708156852826747945851918839472177684539793555332510550171751561605952437481679451675735613970782147371380061323523233524049584160512772709981885845158327451024786466789963246783172540475572909518876021152774163346434588724031282679364497975120819054536444425879495357774518651302465848973808630833363675371268822001641527997577185176221783143237381235394345197854169234831274199970901815386490635632642909074480080783025964237886857551474996355943150394251474311295953281081155319966009560002602493383981025370350035366398051388217360537000025555583196503237093857121082654112996535139830571743539072145287029395249409177507074704309788388921852565186426510194733669103879472310235453963558930299254031932092903621723086328904197837989358965969255614032101404562240199613534233494554560117954358876061014380208415422465341369915461684447746963250322273323615639068825273803496902993435346128898553437384629957396951319464126632096946642750561109017007742182628398885148481695236387320388205270077900271414151615075434600697511430376965484295892259823286967254270786797097768639250140843774609755886655885570769949781384527220767898010548989091823290086561820669250231239678487046950282884182401138729696263967497444394863787645394270986883499360205983071482346408585553322405222152358985410737430452688331283817599166459614366686722806614946774560036695435960636408493828042720188012725296089174360135048580679705657313794365682359237874417887142516057931824728325786282562976624077068341324595331510425493773783525840249397436826940747343095906898764367558350799784465407465394634734106323061580992976985691175251234999507396344634334954949275086850502941124934922382243135325596206086309299221678956489937401625088712833808634654329857382642927650863162226293719474795992865331507193465097702244004716851687799865693670398070035543430384883907952349842003534986879060116637790195240887540048195959179644880169272653314029068657903711236784810027122699576988303833950301282442727385584919802395937586978686794190188750705265770086802004356735466530004234017888214683825881980073724690227139012948770671834330983413931535038988604011076578403960883411659442002070444995427631243061829349818023881546928972729109850831638760236021661492150301013351024234343851320227592974697656142117688225639252571026481054599679451257434962379046315663349653539763422755044354479719458014637940946302980259810028832145525608172910043032567471452548005244967976028867946790102462198909653232050575911027000349868678975256909956236789296424548517984555592669422589601992996960524456793081584426000637043211185424155599608120728560002418448369609656080596760720629968322832804643490360564055599564247641389224256998503878271541301922620810174929556469169638635582213907412363772939217841188902468143001446384297342541483462265927618874722323097149135205013288015883260772528393207949098643783537935998429036278990681197763733591159422012611159840701793604012307289268787212181093037336149762120422199045353598267400864153580131678441519405634628079979561520443208301029721278059514222109670681206184143647976020024635780358525622284454632376986315335765907497586017491324583562095714624310298870997561979909494895089294210669304138918856730215689993493761413461650593270972489346816168421437125869443455968292974957305337664305953955030526731348357516277576206912856540718658625588943680615518827917449349037212479624808512161128044669318810718436750593386879615243678335976422679794963569680457581606994058696985027894179063339633224116145668056191571347667305465369492875788583200552381760790793274770369159630249644552412524441018634291066825683299761486218890080504363743253203780060855217047880496387613064690292081418650270165833883448733086189658044756995702085143474523875064267738884687939014902847516643757090256631273148769584312397515939885720283254934550253876698581423124311622543824322419874047845372454638478996758516406850582888851701053814616705978163256929246378307088494901093570086163262544115158386037574116921205425835657223866041392667266233544925638954331136924273876120497978695973064327787563029633661576863621576230004195774681638249732962575559774751964218138897635253687960170601623578618544649885730292389246153118242603446923854461191437085392694799648117289778765460512963377002177040061750481170134197156516505978384291189430894257649741641347933232401583612015606958645165918791409802944163466022531558008495049231559043283901266630805711889469022462171277590094042728466995296373600914256108697454025236916091515285123409298782532284078320547188562497334548565606792524910464412453695908176415043941495046216711632168760956222117194910883620233903327563649976306370823999848387135246203477290636678024003707816999725576694357703760601867073879377518629949929822730903563378938186251036948204129011265639489283891413380210939045614128855392948012213110922347489110369161394971575993428210682565614099868740454772924526282340811308911159749671005763770948526926323564021105195153960883575504594828047630248936317831183645624942621683183048162251729985729570601312313711427472128090585405936535653785323817383689976750667148639581920991469882505927840529431735969241732441083391441343953117631977473756065685219788393810080443566296702043473387507068268171718613820135957718004356625837169815700589357717455895661704936048138684988076800669338629388221911153281082094673683905199184574283434395842691661100854907077520110552856518491923704777423778956633808644623196755287690441073025992786692592533643449842439683583790957366601993169944068924026729874615868015815909565853343765457491335566418761637041173201046940776932488714061928266505740292063058514868967197723733224551207618599949375221843916184395917471280818585130277063312291865889595613109681951760088359907794601315778083936189473804611177492556462872283004301367795616326091054007872190475858764876544726922121662956974587839698959404052747079892834341966211424019321615565684153089197377173997116074694646703325787282955699384520878088893799419924993138860699213212854410547417803508596988999167463143749862073241431097300515138578144344469542154750501050787683266705317485727700873965245993820102819099376535526415508347146479271879091561729054789992840040602768004384644233386058245131241863415040467357622633645021261252087891821796973982340748139682762153101176118722725135307197176065404093953735535462113192128172973871249332982569410386184917893583734221523254148240195664483495984496746728261512386086597512210703274334592341655824274320930896185187706414815701201395526865328680105340545701916013675644575827346372778990324448905556889537354347884100038779540968476757732700410310533177827120130715641442226729398938213807802343426887266579595929956154173934755897095579457662512029371697120379554220946285234311089342307411599338864863310647324494984905111026477269933310249967771026492274301216148936691763001728086419556397525705560409517843553998117993229437539629686262103813978373772811752204923326313650255451990621641438108299691459694058061570198494634499191611016575981127440790190252450036270568913987120669720291326489401133362821013019889475115171136472615409435721226102968646804263313977174957878138831185872762318653457674247460461723808540466947386752339311663815635314509096929552887334678929504649409589676167008936078675648597760536800815007432720779040401076309177735667245364023809305089924305007550816892553475697198055940950140463595953267003734773353510041273346113144690961402677757094036348603259388204657979175546275066110690740901859974042611426780355704708124402856335444863194416530081329581133291533117642227810776005912351141820751802302169567634373594658938563923368684111479055193299984081665814603240881265945021467241732786748588692174768277974674957345322833457985398729443093806472143705212041973280427278098811202920654154631743574919327829047313295411824593144669838503789818001288280440070000340205428248677012103533928563357530119256259232287689267820682005006780019241362851658860735539796936574202393255382167086121124985138188312491558438976245845008724088017638150343331185375099392939220255298269154357206608917289662678058808082522346752493757116229958962794368710166889362345801894438464925137524242398363084725939886674476673826910577754523086053314869423046435554443828615273007351914762608127594385240529324167391227966146862590567605630678205182675909635018076938494024073257637959308464447785361098424961476625884112523735502047582500612732251983859415221422751409766402041137040943761643026374492785676512119777709026716622635858960287701101895018764545947411425742750483749004210947988265612309961453997669892955077014557489981195725300911191942676976538515313968492319220606793721820973038318059918668728997917127620635271745572688905433102914090579713501262045784560190619332374964019334437644362250109253207408026790539147940270123307994970720971894580369240300560819018487223747680780764668041407823663589778633826079915491521289275885734901027654492310589495966809859776357222491036504024830926267242276026717658762705346713686123158921253341068063676973737363068005073831932139739723948954784286558802463973087914361555728036287850292534600717597671002120522546275783321918738203289647318893379881233871015290689383087898029793357596535433053567529160923658452516743615400528638266527501104553496613448742157798138490261890153353990685488119198752108010147349352079026541959173687629598461829186729998785402111521399579867591899327702292863284802651474986603207584635824069711193905039509126414936596963274092977587123737246990712283199721862848845026291272855823623455112088141777309006373125827682100896115674884325718102481850906320961085844898238271535776372660259305345431893149972476492318103384880012086640561996825417772671495856601944454365873609693752622486897393750100710750091487667516067373658697527807750501762094760019239873450325597709185883259240780873933494814895074184759878407104212031822889448714709891827562332147905885405340293994038784420770624632341034474319022005431113158750647814460009884179520782452453882182698572457789020548488323023760543631578546056542964110589564974898681527938887273030124103582477274601520038609863136947527096130713465989024097457084630897699346740425542554507830794871145439336104273107556929573256774652494144011729963187830994866234801382826133613883201291551982841452230643251289626347769519301195045242601106587406425771559526424310237046497931535209103341943804358822291765031371764422184413577553386277314423955551374783999151434751684931164517522700356909112331270170434009560809063426341902727905403544040177283441621066993806423175920225778649902467857378220794967493582697947707633438423938769885304724952921034066815649297129158802739217591675342825964734908966230347272412465046111488875090477583955584372697707624094285119336566101767381910905109478585440773027075007551808767670532074468110479912420955425470861097514491074217068897956878905379773465053204316604981168875785863432417455147479721513331513160194658786873870641342573107463434532783430029404016894686781990207994921369831009027743856364580755318618980775647390774214323502040789307991932379572625797686383647600031540610259985774100444276732501336265216316305671956965518109209049591493673174261076339534646502593361132357735073225248067628123704998449970462399481355360482698182374948826026885355417196589032516006204333272500406196470253827550710217387091657131839559734115166797393937393894075933827985804124552691092684673086663703832458313026016855348678497824582100025362124842496574811401137528602131708280780480572048593214690430361848389149516744558886292932949420828479236508694109654127479539557136056342645902566548340550663630476652682529893650183686082056997846341530548267619979921159092353939098656505163516275942298985935900764538115923079035632746520151820666874451498676404866122104932158886097868710659220045903648124069971791710894262860911416207695064881077253625397271169001357810076375141725252155130325810654399827665161841640199280960627399466573115714138237756521604076684012942292016684843025645971250806864148775305268494950944727936854116040357061181234742780742817184643888653331676071648154031046429179016234054133567791805955423560936903551593160181352991176494550642865686946607013587827002047650819404699181440869035252128682317151483441307750618791498782050075479272109725795330879578392394992716201576970186279491128437460571043531360228480186258750486868266468336778953565091609342722878963003440423684531918984168270851989183137019900295191754845745347024448290208822157764173292957035347301985862946012937385358981220317703175295867281038087426441321922645115473820526921937046268630020841376970936289907727992840886235474301805580975946470018553776874701624666059557762067402774963613447718799341390505838558500931320181265756122607504013094345391450076453790702670304733407702178662023503016022999406247613282230269964098598925160706118581306930375574350783797432289129809740763757965506835461047775704194959696990098114368749480861988059433815314136215909868411349035370840166855176380531877930864850523407760597260011763943764663127791680715333301913443159082309435850544351312564417631879578190554686673103201765139584876327513417769735976645370712073232307621067075607066486318792688953784678053841892399678905734127181862281382461754335644416555695920293645187898267649004457712583194548155104444005587466846930070038986423347873535386508704564930811952726053286191685775353930891065929852424399913254508757671897092059121644582573033552514818944225879792364414324844828318968998951500345525417647912422489554149177159023790360248485027283832468282636140575198250756214620838980925711229988194644732513766365135395300362929388948618401343333355510763234325779250209320066587421338274447549335339072145148852644923291852892042076435463366783260775807819269134274153892109695309114287736730440247536506939777189125881617898555306908423442200804809748846305298165666127654802525841192535353397515276054189194618626032593108246380414855197523191877633259496405283176122874500726134057595999523017352571642787293998223740407908387677431416276070269284361040281639159767383825073655717294869363991779543666633306786574731666728552832391357554476063771767375344531591025113824201461137855970037536597147112480775462033609432156046840126403741086361395947634934161531101477734074938437867263107101492894196522390407062842068673926294846769265607948147134104895696055239909277545627738355324623496106767983981633264792333060806865042499511628546133653651126216082140409189417355158212949212784639251380106960881050116559773378223471322833830894511089026891183929561028119719423025925927301157829212319902455949650121198619160964424062583210596757526190696755784379475697614000704329128796093861290645641436115399737109673698117235281040918588779329795124537083828983990772427543031848443408253452459620862363524366015096711855991084004628228004980511982188264484670572678759227841908346571975185054055497442054992282526049958115293572992550612802159259424951610090375165027689164883565692975697904322741433734861856558039148403269273008471866035813861245200170221924119514410894909409638098497481523299447338268265299427371371956827529703765492877981564835010493226396259776772230419215242667551743196158896964800359907652171134520552495162148430646598994626547368212219358126244971530148134864645974796979649418598109630867810294344084595837035757571323351394204089579131799453321374415191836993704291301295448072278616932011105163936243284816560874914273213905513885768205821043918989654537044221690923333060761253142882405475916394419520973826679142170221872096909291614922983396807165809233994509419754775390517539918535268233572014726413677616432329735167980708644781730239951992425807456037106759177045071867439550301254439173183102464083952289787945557341469346232162075309277929660537518481300100067151435344482565883457116929600531219887402666306361947744324363487467503766758799716279933489435935693001115554278166387958544954752906471427020445119063127793705864991958001420275890118546737866734265929162931237418474320163614171146256024233316694821176799924093418147522851549179147356440561754293418774811657010847033129371294533775921301730004903979563556076031059670068929652368315177764625421789266342819343074986721847461227290673208008578053099882656386157043857379100383749564393763729763181792828662446454379641844856545137206323813848266024705983472309383931584678966888602774324955438157402090917104108220975508907528898623810429930783263299723975273878467142584226808396591970935446894728654201986231708185628813164519534441231804858299352040916715467439482130714386842387841046620188028650649769884490778110918434730799279972313425383391904150339282526781978321731586179215257369834058393733321871648971474634184375470012931526490831627131112465832474438598770250980558692053038555112200939964836863055463294583339385345845430625100817432838207967842987073756448758872276054465213060851002743697956077245601190174579046939897625923893326378625449889511342544516206891841885568373281450054959946101268043733153580485335212643356166301939196252037902785246839274016367500860472859673052752669626466255901456651447528397693007263957397810601133045740149183835826526780828512388236225449229909592413906283628370527285236447744016777644892665351301542311105102131039722338891981283623933332618207271848935188407444399158960920350233938597909387157942054107533702637853962223851271718450900405434683363830236364325765749043131429887503374359297099253440678813189711143086091567975521635532707724043449479498324517504384730218771147057342390854551965577055184736633085452112846598290795561198760143962560655528812152642328028358991187844331593489144708232880763764066728838561990858561923540181641298190945006653678423773569335161229559726047158818137003177163342763976904826097652558050972540898021789749948532867960104888777938230102317759813846555191010349824390773022947176475380053513089471476192438002677885827904429490746498066417525689282200715423549759237657874622282426468829007484473662569649720842166793793312515599137025578815732054857903416370021827769402712462152334057473006344807268325045435453296841306479404678334840799792753249445246623593128989273288720277563653043224864271795539362189023103555815989559868833467780605688170797606544009951521621544673919367180178896073279373515555633271375709981289222309296849334937735818347137320264035510843597456772317098166082018607374554172641534385667588128157752226682136488882982912253566581665099153973258001570784004801951405868733488207969331254485249716161496279076744725615609938811075567320935977679221165182876031392337640988319975460246400142754631395283060154568997096843685687442880783649443523491005936159672213348452087042335398836591253121399910471814301749220232204252648321617075665889108589544976994932469055810358378725618222917765763098929569663572705565034229444651281466076487537095443046706466551102692146863330879138547372841195790559278309180565008295314109047688398581899305524596775928404047391295181176768064320697204847964837096248571242318848755114728083257270551858115288102824793135102168551896252943335292850027422460464005389611398553128689728680160454950152964657177049403016574498356967569684797865442983959221215093175089666814972367479046469020688537304271277671555511183407872973775249174636785835264918171520968044358901016407399301380269155982191301518496066589819361326772248172415788953124118891596302753976872797182915575672339403020153634551775019722655545231921608317336656941032027166763460846287118105045417763891224679162308837967973306114870364811112632342639643562005150353836768449778986415122567830527543735785965754955769702549074892285808824285618127056706945065291412435995618304413946687498669006571685042469113055824096593207933018899534950031679907603284358289923304093490793569290097718243740171767438084101985557961114635915246846815424353752041942395208694497290158207538134687814317416107894607354562615850723883533861733989558561203357269418839662717357523568518695585006726165480751117291419532627366628845583863243855715039035206314749722997286011179420558319211336929287017535425559302999491345476050422309051392433250763002909688558227808760196423780223455225806998358643766116079527083428307983156149045447344468623305692521710253770348608518982335567216966489470250333247551047596558798049776017337749173875178681819251752084172443231195458894130429830208785275146269609820026506494621064831273008734627839060492973514524851504128669822126431417960101673672451099671992004213010052170401906105018655332264154844200031385254660018809687603603218991035454062145270216296663533965986071425454964289078063667899348796976019247178641871653043344856739431987722787828025776758661393976096274418404017075294453577428412780318170040644939349414322321011690524397520870178362011578147946008125890507087689713493396222124950155208845945311170370329499355673529605871074291562010054027625483308140440840350339989458559802631612495851882791501687984578550980521403800412283171672587200085695146476784046615282827100120554067105635414710595044371164174057968897322520767236090032753804120874836238471596631257402256700941290365045422219250373636019943097055380143338823363493466698930681216663811253497980727103419964058844519336895815937580345207757867098187697297437104724380718379057752795934255321366325456494002433502586681070378978449404715884188781386979158152642793128598601516363423582655256320472181544357101640214370346527553544244228512269601448046538974743591724410384711195486090163524834811027255814089456280880641749947202674601072450097952480833745007935637604495045337640095509426867928691433323885712056361176295506254673266237504224624342735725286242821346185899339798961284746207473298866887295881149681218595820691193059821436020935138161386892371494302545104270571367150534006601882530745359766165755246494441174759725781597702193725590194178207597739400228905650683234623410604238914364046115625885059365508088081758335754859090252371373625201342681421361482718838228432543785972380619523090761424773656659418450866807051706447451087548165393588012649180217735636993820142550395348415444494376958153208350418431615434635325839527372751703077357835362269327704200235757343788017199377322668414188588635858459437842057344414942593080875569259132471077317153017662264371914688432706572512946832488619137891432339773486124859731571840231099038197787474236105256235458356188113321430976491369403018858030406980342061290165618528505220723125907553789815539081992657516010231797080748107633179343995179952734073637702768473212233164483719677584101474592754200427436791071306715567466385565319738986873944309932911018578265912518137761454782400627304671819675630438667396564874793773500025861455688437650290252962008153151188126409993827933076350415941780161528937457803842217860420892708348680041383054415689396827050280464415068030560371734162082384426560384609463760483321979226816254011644997464522756780438254984247541927878073294339711425617312384269648053757961188419494407174091488928898173762358895167363653786059250455797844426932452345432170093255749194128435729928237330790553331786827761981047314795637323037933083358632078465087455111252280423498913960796820105360275630907899653287041846386050721889892795506100535937240578336708781490825800850599002566506553747789611471831369562413826145897910747351244041964653612493071548161044677011890141940323378953264746237404665214458744731210055920245087825624071235301963930137723449329582923408967802794537697869395475534799517978002843942391779275766023742536759850999176954201938822661792782208832000959673270923237866639413866560118231084186941154860690730329146499135463460905734104613885265981334416070346548643929294467133966946094376886479766594561418189240199314829059817950711599911583617750159738429323104820790920286334165713665122708025643721958919986697719035142317452159347514177745881293227733351503012224553496032001139276458189672109490923508167883124836231299536545354743237381177496462925533141889222295404607989164474919590878945533519851396222300778543534694736943970765900254182425280692968098583309562675813275131078090577711157455393233438632721618930878688175479418691022985076509865119979115426647224876819722990915019304265166489697822111063611929302171077652945470293506294915013931028736315583563194212473237148540008746812669320082259559733116795197381358467421383665242589492566022111877263929383586241100982672169380781595730053351008646711673058182630352093848231597020736597839070478879348332705745493378989977048272991231541393352591386315486851906847359386378740668766138382999992441805864934787265523181230854878383288221088922393480887205074988145201841194751013111033365236190743708171392786398012970896461999017232361240586482333586477994527917808173701726856048888795991184199353346034688813559742663959076391698966911365477948643210552547313711159820198246246104537674146196080729742151509763603094407165496159880500638384489767028061895404151482651571776819053488114312177365750747082890986480831692890887576822435483084834609252696171494034610487682696938046688733360722049439441059561337338855865688019058993729788558812870456875640299457488125756078215315706382522115724690604173984708317990451704264677022349331641222608567702041172501677440260266188979025450753715628896593895658150757398922528204471055912162988646380489480010633181911063519666283398042326793998188205754798536344998146617397946580906225381057807657480865918368123432458488522817307787257912262989599260791199113994598941735146585070679080467007634557791586277195094300806067221403082101664383042872796055728106862636036774506946867403886488058912309449264101496439016161574574437716985859274811660291129401403188515470089660581459108652856832861832505664086202986000996514988579474546760697049570064798566415919859909440592983080072601490091982559559796743551772559849494906179257671385077819915346875901141543176609250307811131686659545419962728113393085960686874508178693441973824094909072363006363632807245652026059411662072248835442636044216773225150030738658037050805959398385099037296330696352007781743502975240506928203728928457591127643246858594816175947734700253338269548744473293692051354289818299424936910334034588343230022862149544669730753240544487512584823733287701806978099192530017396296004596230778702307103450370811631214686829695218654754743048071344587812616892233889200896650451005537531679858754400837411145896073908797056958516482295491765520270715400535067607579301926574996702226934062945175399789576650994705521655483852864305235829839366596615239729664527293478118268681931256310391790471560142924513210070165957469000677710307280684647070944624222376992154923266107722340042777991344106863074791407412311436145455290646614771061187449723848179421669284875989722708965615149823270188183596560833793919650541122005510723307102153385170706032618240920809328093215815616800833460633649705158080159187600518490048982139697657955697691531304032306176578268626839664867146032080712504740013205003381876464224127483953219705307774199479159636980667410221868948318771240161303368250934985574599642013160140041509912622962931627563795738214890869641615696613117537726193933641463467551353651333220187026856713364276048288326828774519078274569875240047377294236788109644655248926094147938796864185878256460288997145852950681090654832041554422604703582073206632894507589305823336550547395541083471159127712799873969412540677289890848092820155902858883059122234042106482093626392735903143585557048106132810009204035119150958757384027126155645091448066446489134476457434189579021786878843432049280789441190508151189384680656088663116148519011972212615037699423433203634541582332182151105593712881634594158111013360102763103863096476015357567629865044124395899567462899238530663314850749947090563322097407944125916020874356076093632185122225380133196044415118285124236205193925382164766395302259159224961787592460914359956854008909846098358447186460809139844692879208406156403987084626620730094786044751291749357157628453442576452108370947227731880532837232594794199813805360328969465849467098248643835159888534387930839628255211156240532636060516234797041434723660348780553192216498378829348184599036698693700290970616277677452690990501358607829182829177430478878517153151955822243754690320104306830936092980493949009768932763008965661122851408182782774725513089217260912992690518586899301297036431511450361510241936833878541283977632266494058656429300745320415756156581195068864055028449576309274844061172596896133577091074039221386253367357801132786431683615555300746956542521000288145076771837059115852178658098405637565754719830524221517717363763742783288680313943371783268066934930119440425896002019247840453640913327765232369627179324819719295858892733699306739880212627173835164067793509290478060921920533168996582941881500300264301368759003817696433439903556349255135060229155090519947589609645592378581648795054074404260659600796288106878098066120049382976135481542282577112219775230052133129071856566255525083788610684867646227156184345152924328124755894384647603776550337953570369238729535644451041271958372070917124966432698270647682619168232555276792446283920365195973926987948547668132358418553646207607772557685301958160943866475073941893853416224792001661000191495247340683391806467423522946341054363651252313323870399282173648394408514928230539445400865272017300817315014317907933537387569815413564338774571253204669444579293301691197992281887661781420018679674488455971360711140076408285998994298509750748167587612271861571570364091755925512709422421871873739117943002189379465015987598824741873042460282351213085692905116844390087333914984263194697532649532353240540592967568665994359157243397343213974740814366649950202939449690330665102232634564340435415921785745537660613901810887197152597654814999649685130967260949287363849122797040109185168420315380728720533571880486660948933726536373218580203286856926949303821417015180463214996202385470549293441515892347143306985834103337906548934960237598474755044385795139084023300215185091859554481267935797964006753310778480182310960624439211116714495081014946493338571845740873544453291182247278072821555361660124747165733430518034858157332225816472404862054816579284138831235340372896184146636788440763084137053392505140817984580909428677415595892695602365388994475847760071068674910635799278742719121712513327993581267691296988160223835601505056088373840411819790286191540795911790775082994828098292367918300260857302072831660848161217631984607255954707846283459605000251722945026370533267202594671140130765682072956923870107938033494516612734618820628603165312767195771147678523842887906398867388886332987424780796473725216047409257350759010797352199070532448673544139349866565851921059140678074939980723622024380317458407584940264188203739417596982739445152614114861489854542769060481943505604079176353471052479995912748508137739308100925118272735468010914788015126522894084186953770492709937499484162654071443935934280156142648987027757925832091143883113906474928532366391543232078801698175421950106902048753863888487433195220401761892995822832266883603277453565839439203501831724526090766869814153196202847026665632767534347276432083974144686781917327419218532265285238734576118813745205599221447810268530743286224931516184800995833961907559094159030173313795912604997943355288971854514954178494868633214197890661708154563430798456212999152675364737847117054211234454342428411124677750506307634594418036211438978291129097598805401597720224932423196965899798658401095774368730277403159948767682586601072157845076917718316686559822336805396473902858847146523411219358888822556058094065245530669126339726622341914293478886649131844831647504162773268394304683545935806616721597313069808136481755539099723355036637712901051166693664592880595434568653392331372432139961026489555656876558395353054827434540529048346664329170127090075025821498086106179093312937081161169209450844770927131129727483861080688607773036624547821495966974268537675554735667384884230553574093509065462332088038012297975797094700685083785249841726717575024006700867081154792884385133313407546915817066274399789581184222398459000424142353929408518705262147375290722925759149309539264934070802100751133028410928610493399726832521683527215633706911988254758995083382939711373817763943090814064732369085049341759575826089371097743755093021828398319079915546735616214045350601798756216636825844049365895247942659128799911597091254929259376972418573187927425180764288398929471852329764715751982648699763326274362526551418736681445256464073620659800629034987597391341464503744570030589902817797831869302822994268386534157676138315245003127356570774878580538269254757798946216792427512183904693451988501246609411109712307235020595477946973583783423526318976086577647502688805722123674624917175020519175593039952643354855513322466685077432653887159462078491528443849657012393550314029230046503701587151066121494093130289447532725496909929175336787132940266630506641708318384462414531726456362926936174065702482871508644986450631388208584922517230881321851651352988384076364193349585657580135849037316271273105443741743170213704993488428638190421112502193836060068209972733570071558078108587826318924402246291996435915356458113523910313069857303672283139119216239069184200402615900107659502488808418604662395210726460197082646303634034803666934757971244688527934478716806389268208121958473890215320373780958177604184526509058071248352346674859936752190273433521766112896963068548621147451437702081206575436622996293717928906472514645885133141503929001260061641287901094771449579565863039317188854807898304811509104319170709938959588624223537475750822532465138700972809525500940574993410722019088919682663753993411038498383944132294121357664331678443053662811870472676492856107387971356338132318974876708516851025910917309174468651217816391623502166327566307189586248666198041160307326551166812234752389582180932911930138460706554412851839943604313048704528417774445403552538331468096771793792701271645599895363063459514687174744288164164932309953079129489105349758804874047493069494872123746721846640325745250483131487976458611247558315756431951018400708249998923885011100472700547688869044825998803049508058426714852754551153746266652842312681500340540385412435272188272174683688614640942059658421787528486219081856755657796347260212986862678116497963425029593616074902151968517232037787440123702214343465013665898235315961980476433866834971624751843617502417598351985132178492521717363297091702892034425564195562221615000750107307894034694243244750324444507233157342885872452661681717296332381080394720152453300362153752531991563850490242508621585887058647072866405479749882759560660192850510268962554282509047272727841061626272475031480299779963155215272134003822045318294672534447848804116413478837681357221361746933897988617821002809077416624507203265085680716233818526081377661245076407022898982048964132959548238711014562106781896302937161175678560993141759915528335526891814221732125279202547271666229192873852285282135730554272478396581433257770783032297105699898884113391858145383341578458417320673327806027280903570918263071149683973318526947255069211865058005144366595416447105491043787892269910848388902807393787747941157569423164455339554534153260467995907385886180130106858880251834157799910356579542792702728102570283086379009741094626398351964818518985182880144549251250668494125143327688285491866980478216359767021431334007454014791865711846544478331464906848022668299233367746777294919608075808973204693471964777923937899624006117173993083566032901966107412691433180255249459167921489572658068944609965775858576828119019129588485200868849602825016314855045576464200986834775353107433896999069742020528920229632381305782386656450108911300627133062762162582386501942698644101705827997916888817476147223633677360568861122207377235230391122337050249527530390649700112002828024701952926736629545156998088444687172875760234992136188310499853166116686685647105014347810602319579910486356868726644524878654637886688874000314322107191456968516677013115061642695116076934850807816009509028264899122944800651437454503200255533658738559420500930566904530847170856864842485680192165431633534255451380361196857101928568374467306215007611871795030804111377123366482555369552023749617157756920432535753146447701465328501723860235386944100696482761004473927930944436264652551232842484760716452692150109281855879703596880249698067410058284847476998568907904940680845038926750450241405466301096721527586624650212426417774205957485949682744473330703472007972542449762439208378320392008351261399643027520105528001269205698074839994822928188253796039435384090113340552265105260171253428809789591665167713023805947235293378534011165985571893453016228147201659017002671105630404841263545891731634831874522913890240813381418522921123258589423078088798166462020962855986086706143403719708529484751642585355947700810545122170994266915930474231437382197379606183407601094656454924953862163657855678890090778289240160473315408660076879437413640146834699585969407910102751164991951106441684412756423745755984779754927193306740775784351430597006967580048566038756843907819563196352781444924631027191738060075329645194695252704812968583437086064258832234643181010809354791477895082029270018667535632860385315949874616308053472672722063679223334905667857341675674084319859692141468786114893300672777631326216764783948511287103896160032647834234053171916909627642426603726838434077694674220544152943226912553953921563834852557572206957764048178974189503523221288645558307527354078647814317822062841830572250184334201649641038475683914937830837014416090732838477148778360465963474591740433541507970320491924103100149747720756841440552570976148630377743372495401050122945771887111171088684942712630674728384128000605207661727735504375264407981821489419489229975451994960196413414583094122760699723789567400935040920119212914478135107970967925322745111633224058413624756185141062427582216778020306068178019799245176981249847942192227313829156068347649689509749110521014918794355386333946962846695566996628635847914751029255085633020786905199465005048955960086520354217156109774045601001799546450977842916227805453954656612504580235025504924654642095428223680978969193058105368089675668464505161262250683865677004543677326870254806667000253545900180337151511964030337779595369907425534770954355237256182269868253380622711205560020702340059710266159596864837366010891469125599971711010793747444911129317912311812760604013309853604229569416669984037908286890117199337433411725163701484351197445570240215116477126624232076264275058453117771105639292463258411609165412650725235809769986534482157019507213089531472407522269939063317262827287091259780746015333940409243595685559922985871979910353223836996506993504025339649257842247486015107321796368058199031137951962682093608395929236021093893595557719134261053604137020934596120486161585415780980588212480112451239278209775232334785475768161725634870127038499728311919253167290446369056295978444656009832749061160426603918669761909367054008259790499663219460658585369941754150550274644294454794470243284602179045619359445312409224870530847388796614187544313419309326735836035113540845814259464096434021013013441494570485077244344850878211894622826722508206697091327894320248387879955707232320272985737814591348808887755120268385601829707907721171326955867016190260971122478594152951216198749579616934715364740529335298922342525378189463245240642842173015604457905441363452898958741955669061336819668339572978478929935735365362356872331735699346300823577918165564043242846902494864527131033299830368917363954008477764573259992055206544369876730633439547222363065252043311320100366082930298510943829692795667385531464985848231681724054032181661169626863869268792036136097120669143642087569120404409850819325013129182181753240120035217172162475649337916338127508945040590370071741951561105976828024394415236776340171692007036029825040892602043032957788748336033287245368025733005813075575728795904088548275210622134817488296989445457639204063243199148019286642023807634543010141508321353600699304482569001307656485873304624250114168444040492708950003009784177110454045620343956598274502013861420809616462522713935108532460347055497191432786930464859307328649556270994733595116279395553867108619406551520196007017511305663697045029752673879362588668513582486395096445124640860937006434301780996707272085745180712402174132434870961801595247769695886236489333883187333517139370323048408347057746101765508950653543948914970643170197458326782346602940004349899284113679344585097826062143415248428880991486557249900723861850363541938365645379309004472838705183809112004132021082513998988485753072271630931342207036116530541821915119558666186062459908660664154656895881389132000116931387084278149099113450319036491441856014638076070541854828696969773985827942854573912948212286326634391268340932852070579424842675818828105786725240325033294610229668040104222186940757283808633567151480766885739502639811525263448850574438911504488096319364445734374361843463285014625987341616302118422787336051446866443636269677097065525349495925025632023699093290155433408569740610308339574207709673770817159545184530649922387022263287739578113881674645066860636022556127644559711555756614187250978344647134286350409262765722442316576059856409480810040631961769036449532503056221349935995016191331578738562183482011220153251893872396213819872417110071987789851799104794424875052707277798489049844645991084832857430984682277136345966906275441037375303756138373468920413413247631433204930093730814477761206644099950120677092940734686304943028683854346169498363463674600215597629617800722468722031049394949806236737235662315579909729574067704990984708440624263014760356970273001965642412764443750773800321196053124391585970285981526874282793669423636826852817958649269736631226294889830015089613230766328737594116221399294825178468575483435820215872685754819639480205096606216176553272009651081598022508503612938591843330087596028810970553921836972636053405965520389852907882661711445337011761106463213880520077626465980249760407964056649097985124881480083837888111138035078878428610638930546773319761894894007981355417498342417227096332202411027394098004398425242943262026268548802863305353880921391104566845855523790018855026482088812948420722722042463490648250199854120700675828754179718423889287713557119719165339274675348644241285251049976916300528913112336549451880807264752921872157189167795808284228531353958018989330664528731474918530368049146410585710158087004530450241920208291566785042727956282760777706642488617812638812250925485918288857683218594411839437844589222636822556798314872299085137616821626335567169493700275510397906566688554000498327171407620738392408831774239315298956007964494236321900435388700958656521723815406928724445965741528944955593825345348389062044023579117615364887347903697874159098101849722135185137307660567491241326282879105535853511621632316207814498918869826247795522481036801614143678666867307656680984908490573719390488534689719616552361890693337424510117236896443080499985968972291106396872630558874071931892194989992498600849899257680978114399144256105830647736690813108832095835045961891476354594556316285370465105748443325007878050664732492725531984922915699378342718924244451569731847898663789009270196335253465259488647456532123754008128812419925041644730749753481012179889336389145305173762442641250825454021247773668712839609282721620531103398851726994252258173612314879637918304963986974482025741124813301808276114610658080743089700351374261967011980153662299853603899404427511407182344361686285176723645071483936754550346308970888136714554165013661539238863210266644297224100200118568613594758708571558087685347810876799325776736594655095796131118754540860675803329266603356852694579243681431555636329002709469987181690900707904144479091084462453294673978684811765984672197837006787524551984353661062921665781151400570358314937042427914745561821760673052896309468609764910256501399198590206478299874665018804288636677529538858772563172663367115922189815261541942969680543681382059321747263182630296831807196912261076557922666517783842737476800556257358339846458343863444679835411456934637339304770774876442402789613755000233343408420312374593493001507760332262561963615957707742053547668383354787750917163606722934742646586314348246465862790985758727482545531664191997826008533068793448895799309402731907089263004835403335228910815527264871138719391608391591306164305833795651705933764745452173568633735282413293666813453013066063642232300273091716889908849308384705752537033973512092266411691246837767731763809443532237917882341386766686396247060613058121578893287503211838209721648211299963947529324435754562241928344276669294446106390287840875701089525798741937031294170857773534478546285669156921464585859659395284287601351889210692682652167242471094014779827287992102183900273003910114323835351387735845095403002921589335480370214719591728799511337272899900324112850102745952600091110483542138861887541314980656821406686819617763793872230019826351289165297613384079918297552879443288318107172455306994987738438741561658939011640053421425674405165964542906827155295905377661303009579021460533887468083495766038033482285286237111204177374724374941417100028110437131124990122374663513364741097699125741673633568065895388468052526776898398685826561841544269871095428954165679400446593689650689686634102561218191705267386080033058255307347285463190296137870055547051878623262261278703476029181152236136639528720937751295632572388240105883483831622248030054817847076209616348328302945386477477625282194724567889098955365695752254151847613705916936820874662477744791404248052275800218992253472735586249792520335183128240519351076778540684890211344187926939653255720544287298852618431449104634825655175759477740040553189899184913256139502649693825971452308038959237150733826249367540200254637247531518886069010797271499258348330188558899705896577574638997496118334633882432279025747635119456950496321214231373598577644836418455093842861984417620755680061486617974219229079023785210303144297361899652938498772386271172615765824380422375958686127281243721170279079650143716923720049756591676224428898965175653992154876333643990485936669425181290557583547907711706774074726216848470799825774423442004732793475338954864270232519033971545762480958917549536010886925776444177515888935186356533160249994793246228093030722407408352838587113805628437622898972197923603050748789765362737135224544185691058888211299592509210994406769089434713065845724054531234771208791085325215269022818423986629483381777660922586929791366270679877046758542916167550694003686139838204083995599446297927802126998965290742229425948547547397710927271143075516553813988874254354947103868013526221637452147651287338945065208058156315914292913747256752485111013050745728909255332666810777281431913719004199022348138269274053757807949891083944828213442496155513044601336057911032092577441427447170628877565552815897011764914115840626452443607259812330272726632819052265124650541476194807775306737670300392834231487950617556151307892714724188308731421513998640014640774330134090123754959477814396859611696067904949247832266428330729093852849516921932319571823487983012418406497633959506414877257193105561145443091344344899739480952932049331392839017702662422377595959238231754392538239980017059076749657817782710764776524823651293431623026614858224351588254155355621128397443110953334351100197992995609168905019158998689872698070120304874373866409683942695704336465992526756812896028511652443355572108329605727826076644121932050260071404507081263769987869801688163920209086688780147229434513107558294725983239215285872689228768224362516788320661845414333811919358434939632172460833597877653708022917280056447278422717379355221574104828921466084270069744641106270126713071254726794794688393411699229445629286676051095778274157860659129935776860444186305623181526734893470946393339957075758578588848361414515697438960173719419147762691865604417951097587785136522219081472798264205565933488211363940526155667418300761803599834130335934379333093892891332676144122139021627206104814446663591020069139415368936759465552949224090326796171070009602656731516643012887540255699837430902026637769642795780875240049797656244375291649264723091140890904538634619195674859016780487182859753764867974295170814230519218354731539148161810977024725022944392745661804269053958899390819218435124180968372874597183644434303725353770557151565488017962068029968843461226954032534537041928220094726799018638509930164820511402547771959531386196205350158803043640880711351372597441636234791956121582157265718434438197308256056067409320588487186769265589419804258266640350454188309061904317542076336537051771870716700243811734614590573019271799461164616551155019566778451213752079837034377231547673338404266984830112240630440169702379806641800862627985647096794970276172336083170745303225608463947025000056229282609297305141769879038381556634822212379673887358636067320215742854857112520289999655595191390425232361287133551683259918156554291923813237560252012644423258964907833971101058581267379437706469978888115230886581225275122810864877766935729460993287029054475845035339242613285870798378930896871445421520558521530359247771197074675567703679301123968967651554882939698832008642073471863668857964953771935585200976654209242753072695817529974896468922161342541760853331033742568846296602151044861154173663309871357382955373981205065894179269663194599945501310703145378930143674970180344771353325512475146565168112608598569982433944704626741657010896089294245414510821280738682454868378053278839571490797428280473692222008434608220789875249403067949618909431128054311451270076887082568610672270098068900377043726934738279294838866098541858064988767508783600473615592659784379993960082322016744734301064192492821959185006569341672736370870930360811483713207277787982597374418772341915728143081038648611312679950188757004849858400604670898445522671171365687853724843485577906118374894273829001176205032977829943154500324684987728383546130746738271635925181615527671980384993301555119866546607259134152603865326502225502131456123801663707056621930218190326397566062981048513037382438037702699280860746073897299990509118547891189415117113603682536596620045479509999599202664766386720178258299839594341802981770219369957221004163687180560852408547124284495362052110951996420483061993061072710369257419383887721117375310274594977420745100009181018971541378014238271743959599842393336001176214658973750551344491863868139283964484962580324262885838478861107101858197907275376517457748427646221220040333353835396304673579767570206786797105980472029894317082919326628069032716534023163870879465535862285768907278431328309654581007796722448302156837087605627952151102405184384107284601384034032838708038162842239111335284429113328493923440756455084420286470953447380394620933913126122059061349025308712080891095287811889783444623002859722760603443984071263500966915683761427777242386430408224950538926864081840485122116446499733060112774912541768882437626536153605502086948664497810650596094933096320027619555357834612820006687783014562145123802371075698897591651123930586891487735008697546236869681357457433833376643455541506259711608399756063785812691810099246318335437095733038437979980875240653534746411818847695591219305831792887937882867005461272780190393581672742231496754626401872718437316921064442550585340709275376240141141898135374856354194379541429971972266098867081518618988504575308247338879892311731725930847474706606164440817980056037226308057382188030945491335849691464712212317605183902427004342697161308708622862013922102502340550484162038009711278002935234321117599231499169766595932643881895060883256240190447421832909828416756366361548239057221689726993528727688063248675260134073875055796889433668682849336240966090109477653095381600803040024044582842332203829510996950947596995586727047138825161376153562104555920176976192245992945070651524040234204342482055374992878315184656183026295015954338681257647681998811175256438399000077329088400932214079961294692808251274862032223820334498451893940826857801623029995419743093814380716767977060473886601895949482055161796568946731533256745444655708911683334290952807271202889149854318823806084260871621429905383526412151060691065899417466360422059251149477090691876040609932666453609369849823414935513461689960015514001052445676307169437208898640383084280037072597762129369951765523691524524472731523497136918389577400303374391017370262073475075755718593218439220136812683620916209827470882098208871157915496068495882974737716950067275362732511949291437460111430290105695230637586373105387383732285000337533540506890347194681630392764954044751554620688313374689853514008085768434198462345805281739782681867963722214798708116232685306226120774609396462011746636414936052466202905946105394705521052767358138972494348009663304176934676796143960632995313668119648733157514102563248333947597669357948895075305625315691470463080087306893061712291541542836270450782579606855301415643335367221783445447496482680694271907717921294864987847697379249012856376934140393713527445975205629310467834370903488102834996502831442500414775319901124144303196125274403649760064120132834297967426476875518475717665788976331593598905467979962437910636757907273039410331705738948209569185593438450070262931509953845764277449048573667072417170319118214242153842688845842503700810540362601964468915199679892325948237620265376298318649985714101633004804948848721047121521722566584099336646178507509401489337282957744916450415646255312127291723611888891737942181816749767487705081287775586711578750438463571800807100554644427615574117707134817908857840208490905662353550993817328871432573161024042740069148669181422966060880450803468324901218774728438730673801105584761864542499507101290159970096137459519235458744510009452267054661177032661836987568595695727353142888640428190747607442025935564245661456477725297920098304094670223595464325710573543054520093241434422365612001065222794863910045523758407662622940740957211052912210724300277839214750102204792705383805388110035280184879527385278444955602456583307556943987411698960054269930800883856076452508365834859105880613171551278951714491912034004432177778703498892077295876550682711531347481004888889047666493702031519004917177251877194367388079917208084884070465592181345395690728765047903460676320167586147552559410520862195562390659919448275982960505627150240179022317168270626501864269468657824467396386760696778383859734457331397507732349399108421320449758421622371976510244412113722255806726313920418741146469098095902186152921385603046387099309662477242483258739948098370980968675116705148295180584248899436886896246391780451389506782671123204552437434749841334185570546802549446785204026839745933035292629840173937577633063108468987016905461532759176418217455338227921738520165739883958826149166385491263899162779769839106569274696163228314361819294265659039047180009671949799506079763297522978486217823750946993482105470142393102270294203268294995766770101199730113840582363306812562193665074081683172362407317129148076354626285094096903623261938153839352874635730578234944891482884309854799661427775558528980368336763480171148367391388619157749935940020823993524685952190606952747803384343792539382622691792519910777478881784182577277954291346703647829235679491584301389249068428527043206859736401395318712606196619133351259635474148367857807780589866450477343422368703806462990663295936529344876444999550011464396716875042417186905327345506791411657468321792943078246018272982030852357420473469384234751773623196469683821249396557811627732232901692254486428909568763402272133708424836929429985111385710151831954645097382205159010171662975667895425272299770660962218895081913578005658817870857103611421781529752645496600626430861559301881899876933259843757557009409827065217346316703985460989110137295752003005766105216799856032109864798960189849205419078755003743984257964410694090582212408174463385324367968582796411342017081972020837383385486233959476706733032354132806867126726512242560384794892957826970812578888077415022926860670211385823836697932414616296724786498655005637015636667071120698953253588387029666018114457067785970812551035110864165567926906781221392654752568080892043910368489304361215313744836905286669615813691267394541469136155445782906219411266117547565368600919897226265291650077056678500830273489067307669530771624764602576774411818454218901755786230250623581429576354754157407154829741515257564490317439737375851470049543710990066376008679703993989002341521445589469714975365737585321845057461695423351247638602001588310201901384227235116323418286491862884301105383141462352157428160011530659754705793592193501617410173398655723055366565408034234565061515200566997836659021979828559844013762327878918273044658907241792085692218905536019549713700351413525156423088392404146522000876513994971279195967620061784405255858370781406785041756725207983957896714002046946792568986594532804011633476945375782387146743265414972950102487205578568929108896848059699853869029700672127496759033407018335915677393167447934326731003104281398562024240845292453498092286992368969131025422694287512810806952197724778092532208686294141232047723765909702972667871420140080752823328947935921941146191543579473631140815534550601559074111981217431485294086171562825079903316524900881491048165612975978877106858047886428999912302035566781483340757087337800355627821493285903291530603739843237339877211157981660564892715902208147005847238172394460092501838638982183927399514229249151264702257125447286941812978354435947263142555169250972375366358706323020803074798699629502822835163939499183307807196460448652045263725583395693841927506342938864506652550156533423344083504036920367775335968623081051455027283402101026982233762446466862080591023729842139791934486941665547961570207556471508781298226730869534477925344647300700367369614219216499453163050275971860896685893156061411560253898023444764523313865643249136070091352755948113179357011597783103731506726108623761325594088103283065169231917408082531446774596848186610810534113968907965284800694558511871835233497570629656764279120840232795147088327448376659184839309410309608455555649961308924319590364144000394549561924238661700226711398211314681949504500889651826586469738074983503395706829399697973799521394424211035355685167384661436527088865303737901130610996114122968205824334076552142711296553812738577667134710841858128183338596484035522070150319732153711762762288527877891403683512315139743198938181041878403745282900895460326042334624168289098363422344856917807558111509472204427545448482141692339137914893201388671700971161399538236378576358554333493867250269568496902690510551406002382583701421977099414660737643479669852561339666578530284918863696545098771130217384550846654511876728855311120620972119182649984373138670217865981172022589673325161511368985822298046903470233890226154339780057431046630817037384050251881369546290182750464440733071367258648812615627018675994886756067084697724748774966813366249949454419922286647387103023421757408906348968925886005530021046911860738579258492783592137475619309522759536109043312883492159807647314165330189904054961752941074157238108069199019161481198346085125771366163101877235475181724390867475527419626635237341275668101909706358808644499155705271865000817772991986334610116734886824805812600288040451190107517716558728759313549503787434779851808062337599620969625991100250545655950071956462959072346847595720960365167652130466003923774217710530314108338066820846996096532309037154347805335020423199680828280191369890152822824862224033484428939855408634668098930795461898220444086253500039838998494610809758276424929942956417928279791278762200012704647418809866415560403445876961976072156320920243329365733388615959211530416179794555073618226602657324420304325874876068264182774277248380631509044465194454672812791116544674974031602857099839402460158962203754453029557106568938102831994019863435553933638992889946475837646177671492686477669929156952960335394544153324756150696810820269819118457657536275476604256323833307571906902608283438801347110286209227542817325298610118875059971803250524839382782126613290886752131914238662180230772801919078092657472689973079071510878130430198260539941908824907158611834599026047010569221000549150589165560224881421115276161914734751906394935116050704726984415280742006874680208381328586883448938755708634960269695068065223027522380446111102764937959333281396792926240508458426648728609755881716044291695247330127642413643734994973922320780444310578873243149959787337677544783863492909389122117133172974609074091773102094903785026848684626074471473289563313830252437951512338843156955073370739272092637984877711854201074016486316683921369926887437163806234706013475274269918287108670864287256235865766112619471645726859558806491900667199657014741000406915760682231000291982904588604875438648650567462351912137693238327221202188686249460756461727913215782971276916776723929462025202038606969124368701508868655597572191750235969034596769373370460243985506757482795570404505327814509328501444955293532124506073982236146840744762856805758941705134665805793874404900675823734797601004077008410010015293058218585848581222148149791384362862411728313129448611967714732640055240632282375437761113430701605642771485332662261793860079202315192570280253551557517329519327696411372339152344833845253215574792598388492516313467954925787603027509567846532903519764760021473957837208458907596153498683982546473435800543384384660389478296533187321798742248222682428235556596444772775611160166164422426052352427332963252838476974885869593554256684239725585546029577506510578794699298673415679030451852923185839839602729521251499602485527368749378265966300868164200371054212780583510933232885523255058597361436878625339938183431372134996518165537611474925311155475689628026268951855867594750169217919917273620361747563640453708269564149574506380058354379091768176658920841473588341699056177248336226777582120062074037906565493816918373637652241917248937839197808208275809518006364944774924623075664793946291854108676106489419289215020268471419845923822189183456282962550476172584378040641506572333931635909143494281864706006478936742390023676205934836907111127282149798158178058536159463214248568023088601623959071573688208005827000805257218170894707146833929864780464694049000530709144428411065625353854154024066546244319991153921908892954688595000837295013632813750963045596303020278455252391522105440718330712530909234341979100252607821399619101119344000307950036456133480351420336218652886114411992119422614272899436899264703360952949343947999391090445643249534468061942349774389375244384502079235198844202481780981907752012568900415214685043072257770158244630066110159138089431805053202752006667299508904467375024732738206598717423020616834397353675709938038423363745208638931403236190598163278871620246477129566015048036120979824820038149408826843409731349332899332732046026571117658218997456482364129476646024048724175370885357186005450416799654377272075594719559581290722241954392954090042335418046006682842170780127351105715011167116312786982567813278629314262947065969881274809879056307340256168121146882236274205560749194883297764088257618858512539273983948277497474201897077437668692288756501370700883181811042295505903430814868046212996093916017178203103568470042839206027403921257037812899891888292192466866778289654165771476836363453474193911682966263362105610422364952710494149458682033753914899391344540030287248867252791100612663006317609972664733372163032961444514049373458098908462634573553158895218034084763024375656620729457086702429165510290370556401062978794679642176331420042423281983123180381045604547860094184249703654812790937039518231250589164714640283782558607053966529143550706300611163383277178055436788139864268335960843271024239014536303504196053824372942587796267055136255172276641467947537461946649352225627914556207016907899503037007900601121418240623533383172458939379381075490757911120812014219914028570919368736309270661668593860361465336850595171526720953113239132230323704273947607394001626056950736067014106418104902622511259267064439288910556360651965229536178918993078174764915605556752307574601302289267703126156968100882230234446496053117753904092469067264466675276395533366360917816413990907671592012235283278326273655448884641477775425942807928048358689255568403154726772625497360896707484515286897810198467843781261884350537050697609156055427329074694019819388967071090667439852029384930520913180001016038639427043303367737776020219534317448151609490187264587528826198008617645639757764669689047335742585691877101557389907144706100083838699643547756823946834256722633679302098924995382147960270495112146955483499789620964835779293791362317989131243740645677773148843405673698189355154167591332061865447819527407614935434887719609523900558790082936814435387386297097878433847824009662268080401833027088888462081265706391144139442224204515330981231453608756141255582649254813359955142951400132339609488149230793936312598417948461154149795299074912597123620211680240696589443946740774088377176835001405901472541294464071787766077741871588801937924590983114708458164714831502001941496256309383690474380742547767746975182967437848547549336986541343081886307340492240282991852084666677733648665422048154061764878078479593617037561042676583408865621224433894842254301495016498514535658522516059366025637432227782561610200163257628590162398203241320738128284136736245428642360640847449950778748493480334388422171037932398781772734618963167768838008383878363066899079400016152518852904064840285578590737209502876187869231342301628743863442446311738983322848069730111537843531404804221302650949922789678308022448505018757884877763088444262126492244289292197823964409383356232009251131048178246188927793081886822216627284368465113679970152653239672025356716147926931604972909067028977921093136222419281173634772740679822691781222285417707743271236017644402797839216554781999292069269160344767908267570370311153996487073799791801086545611040952336276798549661487749629864947434974702078776645131611313960635660491122482248412508808395288193612604009048660364132455422518404455000037900883628244833609083637832742948662542160138818999136067807876456391117728445168396301342185195644689920270380953757243084572077791955954034768260587689680913523455619927739150677160268589782925079630841804746627000993590164890102396959173149577839179841603713828713897648316008958402124756489314672297248011525879691924425557491663496679286863761095098772482352221140572629080812261150376944942518304648760297691821585119179451706450684755841050479573737903971539083064979294056135633428708900131689195241830015538331064982995073090641160005079584763108380220112914689031018905688347911606685890541771247482644525216067381491639591998726432929338892015501105355266660713782107518809575911762328663723262523289446496209584508032858937974820362851356630612550825346790166805556603483071762938087269268108167992430560275639390797361988583648151940292107363843070096671441268885041253844860678476725466787004715640054787542310332623842257690614315518273095642086507797233059346898507377957269884401326770477965791188945902512209646382178058607763174686982211857555730338809170661039071766656115894629075156155733550569265412735471972901545883309003520596352243304985673424094301763046054016151432402692644967399338374246776765562922362854059512360264729836353477000185557688299649343232223210194255817941448818557876041292194531008552686503887495770586285434096684292023481078911636326488229895864488412321257397399461850688594386635824046358451364004568315385024574139323554117038372776547726143770776017939435582733658614658133286481253671168395620440767659472677288788316459990270541193359165541880377699152837570844361393152590285962705674751389566494347885955051877352703514586850296956849561483355245781999382134736401657801638521909010937003721396222972886341872425460299234235758348659023598515578539691164756202270617875092339949875629694435668613585263926990212718982154962384492794249056561627583427635484306303561018311520991559238910327751693789855025350705230840032552124005653509469715114457356121662550415221518039441735529531717140923242171896544209019995561972180962944199557712450726641995780213841960155080573059556758683752768100064619831341076698830661283619756994146617456015782701912165394250635165396162170840358629047916310322620747927781212845176249461701991994850441647691614827269614531284457572805125600355631681603592374267713004953681745884484288762829936799827908343631516044496588332418631045767445222063931382652424381865533250959716389525039819588777015990437850095430331792918925055741329243050660486561733935088413907750319671235223927383095752132384035927850400599465425571275684871870932743284755525014741544964831823504942535395360743582621436901262545533280061497945196115756413675932948812464555514938238729550070473600412415560151643383504484059541409044962945123177156771686764978794023123213820498146005548041686746372142614636513421667098052205437238528724154388727851794575599232103817980440822397883867300409515486945777927423356544694432642211100473510353824166547515333098997792276075502171795411627853731224691366850752716671460182890998251240365491377307557843921244423203731640233902053165003301703737701087641377100790814098238723335053098506692088264410882830346877060406545421735846331910508606963104120864530691399232209602508745254221531060195413344492656527828486935138599877739226630306281002796396546464932170719293409239005924245391531297385831048751228327083138186627992806366882395572393557808674136617200458027555507813255505998874266947691275426224029031516783327437400704833088368572173545684495686890101057335979851045883173927358185498014017246791179357443441303488446291052507823806459413432178190780567082015750387341412907017989141090262618081650635098517516630500347963376173875022793930541711008497599291625403365871077432304803248318150425035962524988812062150593092879507469661364034000265609442931350346009419085510601770022668737773966009042376725479805908416647618473426480384103325051284336314461686224194641424919337352702893395942579590379844673190749812732062662141122706704080585312029863430594676591381582045783242996169271103993330499927980800212997455159979654873166571089554086406340367440602456406424908567444507128355975158803167465450113704071235535581508880956490487117239409135204446802726686565318273076488969866955052231177644246261625897216808407671850676620062031556036047006278948312726633604299056980167205894827774108693446904384790125508328748455936855224282698871034931990408823735726538556859078907606397764746157593167187198734651939802150378279683938534151756386957368811224702152271829888734649729926680371901669137239560171271351114781714279849396324687112468714913164728210680178266569181501989258506788514556532530020689744913750292927591120789898346366149919438623175742723712810017563585458084331537773717807983163062869738216595095373577867463267043158094119822419349872964530306935417159612424152299811519871216884097228674930077781541518310875259643576572711034106232191913283023257779794405814690052881432813095791039041837721303048331044267364696503132576735324238783408821905304593779098019053407956943595436098900957142641267269017651147936075317234440904688771993888150121961806402705166670872128498253087104380811185524716645091054934058877674554122375691453887636141816131181727688393743451140290324980885960575577133551294520937405893207418014105962356397718798195535813778794253658821140459140879251236146814380006452286602913277976318248185466972740565119675463918917456574209675057053019111190847881997457281283528250062335402925326548253845263653738043821027197637770874628351170576448427770135870222027628296042823664406878688748591800701792782065473093798124517760887594528634582482696121634720742540926692054172413865335209753852200399363873700167795420072721870116018598282035172608319495708906477584503014115170193592987413619761835962201141352358610148350068796744197837545496190114685529276780393911878942697546289871910234414701325282619608581006383105699777677652992799262895971965848323805178466117230011086307627287348362931747206984870429609648447832298901324116487102363305525011638154586892613876426615977673047689086318358510748287848864150000680835724450428652437061405453660199557185260819938163225454503226251463470331295200154477314941567996790430585838657364211719958072179926761268227530460282801838182616967660378826672515910596100488943845695923198584070454460942909487776449144627849019570057565844178837998869228724240209233793050464139723638223920003282863764971867162140955430860962792449600154766668348604443981698760629302143658074228296405985377391018546197000927950104053136973051909793377197449979222239467010822462911103276129922541827997004151005899767540584250554169533031971745344201917558204221786323746999191623053816513480525403738323952533784470991401381233026128338486281171581621978205238419595938817848417914383564530747282424161278955733095573368517064725129578385287974421351393466734308489243487069890926898424693761868504608667373584398887267873983911984949658479490084464833193309624595853541264824909379748180371619702094924750389717266624658962715444532913639445148153325628012773726974602245987554524170087198536132198379589703478872491274838486286140639444242502950029039476634696278745551147275249163740778741847268088339154794120332708618922197946505667252233191182694754603647297795824372901046864318404969185104485135965704360898336059594772755174106305873314603091359042095605058112934609279091341850993026827066605442846107229855656162390988430361932235324770013459944878281860599158118467021687795100456667429883442010697687182201879947318002078804565477617019299663666686898172321442373180321507899261170701323778364410042739567175030770875901008810224570591000405624337227014296043498815460445441480479162836647942409993917705589494596006661898380653917692069434768215909184139677902815462711039911285033830261549090364677666716696789796658527022955044091366479334046227729802231845200882627758490757819275640173126106482968253694519529055436990168502310724243844874352128718668779007588678354717480246592897728495079317314547596133665196680841358365880030520490956997121497947389614934354998316729592869383201925671236215259261446026648713295967998690657075036407714192080796368645882627169115759385288451828096305584993149949378444274820700871979033508746085951894100656750064550519085705509032827209319110412980166567326430122586265542175303267883921241147585829065567656975592167176614385088250554423969650001263851347354884535977474895974366234279002221728788006845989535568028450915627829110690441616221432015152634599773739216936867941540876181795471707643956845228899941392931237479652367724373824608470592047969058138438970098422930898802508156417142075165455279949606723064236486434787506485177597348727329937999524989270232878538983358667258124527185878452256064353994250309008706053210424751703773292646471969328814579732437340333768619837554334454922251836946819979013549216303392768201378889878169098595509308984368351199294068902877678186467503576902616193230716417153026478112982670587476702057237929745531815555590781454511461356800638926188589983739936422797453595521087887233405728374654896718135302745085731353508116583791936626755055883817711263306935579014160016411159460817585096103641788534406924910433115630016793518091334120185727657459297930449951701583100636949777919077565564940016320084303841836513699422347532017979190783112462574250800707001070212340399510831534030275164272617146299096446225858688282880243708650891934133499225156224041374035170491254250998289633752551767841169613575486497211165785889759861650909599596503577351598552700630428337852307118300873185324876106192378874529229821466655716668329523936861790081422464550086579401489692322027795716087178538574103360357135262712091489397452953249675079363971863921519154407668092751143269099335546513850484541386423615803864256770250891034052709263746628252009478316355931477666850822077711683271597004049706203886418782620571132035592527683773230640340929343394575119076553993839125032086909371870946212232625741001715344984504882420714138047015895652726804717500444306047368706019760411951824322355687250173614613181147765053251601384592830927647386621771444801785933468986059259581731153158681747189891422944050277657149873953621780707153684032288921075864360903834600176312259278750396118032992042586567316405400294374719741067542737923055040440213416038445929884000376085244340801141788649357775419468041565492561739224883997476728912536257447669346595002256358132213781991706928556709891557979174596110030805366479261034862643177378234313876007236430130507056773230119487721015768087669322593433287676175645812247136758916283112150339657692237234878160883229279172916677256781488837288481681701152483794242045208814210204363272092607313121439106038050990873706230052342731981654507258209392750645540636188852972058595007660140922882531267439419313291394997162079416893963028050389214094632158805049768833075981882950242820583316946966935983683004502041559397266093316670331099593374220335711953703637496689908540671900726089676698718080093783164643782464020238365272935344161719806453990327025275311326393791058059212938463607406101067550754622756434029942528139051005933854492085605056672415487914605745200973877645590734473606823496674829659296437740693135837663145770872479542570751979749404262464584037413888153289924269294829004909650614555652693339858706759457535335222530152796254417944679153614867584540005568734917665116208376781003773169871867729907287851119652230926064741326735410905044703126024107610075532253166063923846208650695760382844001754446049370859414278691655395831364254126169538591449878882888541103571132651973517306287436423055986386483197648781962669260652832180874867135613749791311761068703835270807234097855545823005165277295514613979952134057222323262174482628208575498729311592607139702306626597653887353263145162302311559112112163367627271954905318817234178114093605063583054347138183766759338273470382172381112146429461960982014908327657579336968857974223612396986642064097812680632546076649484390129053889182455722394836036834505338379604814812460598083952384366301571734732686162021875562583979919288994129958004283733679722816214720664777197127287470155344561049004852080918104106975564418559724056479895915134101881124034993372503797413790144693591918094180980208947768474031195822810428337126250949842684963896552448814806727939895950647532659805640892935873600005695769153958058611994998575049979515867038230889966403591670756277900031105777778916087496506043488705065851017205862156901631088166541366042122039451067362439405895698198255991576987580768823105140409794162738979311732942422960233601589638181342885212989685823324649007631526115672167587413246673595215630155395990044212977254556934413776784150955230143480876738063729934582416976446515159962692013013200264782599035405340584467649640064751224488601028702701190613207232344797828472147663439153000737013329090863675233813890683456636650458004583453639075513758300280070420346292702270218861065272473156931738617088635583430526650730582716985175315571138310958801620680324810580652444515715600959674597496922585575631295506404191497499790643694705984088530914525261218030166834969783928477320688870043754023693664385386909396951415121769994396607091030336202943115062346998430333347961691117723875299035344222641741968760737274931619315536882259749394578641575530497530722175255912786906341921649523526608312141222961845797081425116776388006252665932418792329646015341209455037920207306185481635794491778705019600551234070567062325189306733201744866587289245072059245076340301817427179111276419946847952021261261392841648532073546824978759742256581971375735969421128173258059146357448596985023928391884466321199284664871469687618125965187926434074495692313089909794492016856600622606360585344144087417369736031631263106401640225526511861381396444538150743093600193642662149158146900058847075205171891186958391505352666151966210901333995240205931273867396900953204142864239262300773648843595426935322847975962422203798170209937759697095784310911095529203088180342528801953847632339481054390341070275921177224088225439812796270744564058563671694533747530394465480650095244130953485261809997215864741466363353464237828148269079477897259641017079692546624189418952235786059395604895734343735992164888596070964442177572011232208836833631445989235742687408761572871929081560809261054216892062148799066455912343339739572734863404123027747215631062428928450276520899144246395916352332191192002144269510528881206237466188727471098777811016669754277860876582552794159438810878810193712038173123133269654197697990242944835837882025263778880597561053077040992049936588769587128096485761287157526956133642629962684592105003813920930467714829185517815777436829288790317492343521437369684840763327323531800203024008551017808995623935507907871658383346650549430369676679028625414027833664267609059267507541007444270663089499266005928775650210244298005751750474915400552427411574173593663542530316543119632485278753718902393628469416967460616120437005970081317094978241563671083471884293737153177315915782454323313471240071545078370756778194242874898031796446393335603135479689146303718717927637200927526147047863571629106266158406189464947693238369771572967337330846790481992516009765672116969427322312936461974485916470375327574909209451672376385975694191176805343491363840106870851584149707228814812074273071919170239851263558827698579460160101886252525063113799608729441774762148069486528802309810258585479055039475103066012845072314987655992277706209863603554404267180608623315395741116797979317398867163383787469927114098540705164103110518061989343325390411554512617799188670015816866338605890758272644199439040785399221983413392836999640286124837350889453646765249422544112116809458427852664672641572843940765908374633928740555186545684195090573342887640356896963844458503291805571317207078809977949445758496889091418272264416463748750045569604644283715185620677228229751759338815043502929739827133001438735731379235455565513913251324295401897917542121986198699845247520496056556979432549494046592443199759423618071140542202078679472412766237509024082852132825577527304998417411542571987251265815498963371697881477291259091591392852223189235342380745985380232365457548791262279638287099115193670665039237935823244394119982910318652119091224798425537511870151537346682353921792829930104371568911549617264000063398770647903131347206148612160051998671922490172397340627486394303697876713100899424647916631031602347131393866766859428505234874333105975441567652476118105885900162574362529822077042606235099026827742357651552585635933136699376063195952550653732226306210247749278719068195474105854363970074586659126064153338551420988544880093294126491883586360657878041708215866362444324273083962427281593783385707414739884352649934099292317050688877200569223955201356870843079126769794841789201799353919757518661479958834404594869798203464583102388133003612465228154989969270793504636198945892740752023876045955406983199025769854709368171436302135600883973895423064042736089100813377601477909611173527627034840829523748593456050194736854064660479188183888929656843929042769146781243079476582608414624463463474131301568995655381971124452092329842270017701801552503410368980071865278932593826000370112331490418083798320274186371165788103668556755904840637108787006101671992131364947853623860781431138668020605915653305284910049468331718329300453434314989444375196901096694771280061849916057605033063589491750277407807520250604847825310484964673138526831063695108513188715147948361934886196580779100249577748730490555223572693624964248443801085602901126062849055620129178656043066231377670712158721840822286693146254439896286821928763748367933858040256408596098985401740343617371329309883669674550558424389734420319521703434058955917279205927216135298836862925362730610292817416474042272488688145492716092740114752281440160542886746345892530252825390055476470108413731008863310996221469348048741473820102565057589218192770177798084368041514831947281927829516600886977271192215117100189509969562180131023175628039886843910948690456761287204573913428379369843007580670754447495887507698020728678484650584139993686829612139464530920644515699422046405176504678862270220332090804973559205378866481375130633259552811977786737971539075884703303036825385447529911470243456310381881667091476820145376863357877795219611046703030188894708468746656200662905872005669199139098421980805918598255410385280583179843760039691136938513811527349332638817738910557824371480774358808639461514486845972814801240072349197650372288457416769902405005162103266717572174303710571171464828568296750960544286607379496078862922655864786379101214474024864390667952082823567263052251797863639851507656164653116178008502161287961824847922313900965925175973067049055121652553277649200311245244170840257572820800943474574077996680230259769729360983992068683298905739293196871987681545186921449573860471371674838878720701778947882862479799229191153497628889178766890314360208217425141375546343627137623486283936422868517025821900128817924915361997699782450949919271205384724346024779980842983155161131865613242183823211649797108548559336172493968202495602654175561890273220279570947307216261195069809744727565049300177020768060705751421251970328514452720048013878877288074932114214894680091349960564398995806648582029961574379559409739117847944924297544806984010590124598593611045296289254254069389088338688146067613419189173332167194960076999791254194559624060870817704859102781726175355891855174989137802991061771306662515474820889674899134079229586091930646898391507943118912235163686333200281236314795189030871348236003846025057080413131747422251109088368021982351749403472021979222608007885789514509535365692067605091465664502468622460505308941605310384645044594560356191030424386134207609258994699074989061092696456519516930435829950576041680645681442464869371345791525615600355430256861839254480370570728172430041943543090187065124979869532054232392375273059721939264311328281173673562024817803555704409450374805971280703610003184760666281791296326375838528429101184906948395418544773813939243076862505256900051897524245105025425356224150385012495876505755900580736158819970826893781741948186338669469722260754518811003171549791315677235324827742373843465514921475222484244904747212213907683660194574523986008094675845163220006445750865279249548005469944159828906358235623173193733736991136567159642736557345726096362238697086768491800095427715387845064264794566119288238221346514989562483052328968276300843523790056266192800319533343647511212583005925636220352250465204266216041969078712239515973745634920625475494145733584892550604812688568402324355787269418541888431986415565787691227271872099689567119407933248680433109780837945124653309976991775790182929209458404765007998939380955120519043421138807243678404738413810414642543439788447573743482152610127173332189693352367529731069937307045025496911264687145229620231586983792620278659311786187695991588781448887380117897316661052823741522600373955370928654413840433079940221312703460459266867918199487923501237419105125085104196358159212665539616732624646863148153853835284288181546433626985510330171684849030798523312493929048062854844818775214803742294038719860113276792687794313815021342881769688215463931654505193445697035152925147621673158553656805829992315393344291397489260652354273021813360206582788134126857723322048858434771873023809109334758374415898138698316919819007900880232282061714152107681854073979855985720424609601911420023743788431742538426423028817149142981453464868456164812072182843889679339157822129036260170705932869496951472259487032506680378967373263024133662889854225483585425861390333550514942443694975577570748138724060421845561529068824895287637523256371334690141011657421884130516909618761187949484196164814691868510556229588080827359911748326312487363476277206260103626523712324249095962742995042228415097077292423061010744948834697250134387596622022816805910656569095871983512044271531821542581385010377707768791701410894398050710567468897994239839608266296694595626163750900269607703767421239844578755450597357277335950877674348846080970634981019563312097870016606316288351229772028323436129174387045537636178897064572103625461997649811554261923870199177853949288551005235900482970404824035100966757376650741218906836255680846467323056767760941832694457158987236570401682419003817882413750228282871812700878994587530882058593821027120861357123273057516852253032687182515403882454101479972908356153941120528591275252200858003216570281989986982608477243685377848844795035671051567146163558290270505187665756111653737041421281699861976819031706628028266472532935168173940994552580729304043213100296214809894628055544759958892621522897078996436549614901649726103083101273676337704298032234106366656963890147617877745069560571701632186152937591306992625139987916638270115653189756437745399638495829408630306826943298750388952253499332900807218811243676732779137016489339200294277802010248997728777216302841347828177530060155150252088918633892733132152245273244745146830624132171355750138972150675376167390223453262729145765836754224019616205252897037523186328602134675162189636319908653153640489867556331391362711443056401624424446176763247997877196967093441535433008515163022343212682615987791508111843915824267822368197857081541987274619996085006823648227251200362768685008032750051050491030461208212009203815398240470535294538229468685679940838902852329252002720234135999462516100336583902145896259850592482602246695854222248227107949975097588471608603839045380981809168402129158741240553457662826406856989451557265924803122696818748339750134372408215449530972839763761477352429434382211293612106389501430022301972344982359734254617002609618592664393038964967683529187301184089708854819627105821147429839658386668773312481561326968629007936382391902555510212119905042490206242378623464997925257990448768313590536723868760303562970580002944216948023632594786350161786481762985004479300138780985192992899113655930549704008778154441454975561766541082424376970397210003416651642622282796752063009258144506351475498391526814285205350603637879892092338811219369691234993735801981705174793470294843440116169009775831542661628507537682499181517455082123342283714192772288933627847165984533727483145937285459502067183736629445314877018198442713363591108124447959358140695444967876334643847241337486427083915392349242521712141803945604894591315979408997301657096180043112183437858814051672357940306184641588252900039307789080550516153756546623490163189925908939354912915842063606225369922263960913739694491348810964313821302358287972517665030931385829723133267898490651369848535177750927783447089390360877778166227052377945969734533811635759410370370708673631855535899697454898109542709156591266073108990721255694946936665506410999029269307428190374846805573446752084510877383721415339871731194748511733845881515651832746352843656040130965620972870416831394163348777292513688363991928054231144817868640875419899246633110682659636990706427435870638768471381668819537623776584392195483043138326212239179493615088070823034660959502820733846157799149425746704703157635283441296276293306945255356788140259104902345757495460821512625428206589169888058415322139377918974455628599005834959686956038087731058571954898937032957020551302740748308521093493823203009693067487893507743365842999616938781185373293993570331321395109136910392269448950787551173239666572987021875509730397212966734638004493334609832284725741241117475360710131579937873384381252613404443408055541036779821403996900302634756633272913884417111795887537360775001805697741639209173479841568597531047055674019725915652475764569253968783059926132793996667028751447195380508118109522255966599903993881276738859342438530433258283325110598354110603852725573195075030329970060852564473747284228877202834080696309239346860950746780820881925344059275292060000694039885236374561247336992958690978156353778418519279936337898804870758968554164842046462290906661943986318374087530579086260434596411177579747814113858854604591814226380946904019115733635940107534379056776188501733238277328918400726286767937722177727473025399100544727880963860362990375082748824789943027035655349538384115666406676449336413565069281503066365340119506004639582029810736504206016226610327146324523200051575704391570950715279390216869008154032491196715111765487030882629473532351711937020309750838228926626229505993457005061997214798900193263128281816495847796513691695785415560434579183827788792088113029086630037599928048002103891309424609956461299371162666573131796309685764161067422463732364461631058884181446239336864721566858958072543936360475348045829101274095351313367412092467415113663976089281308212615528334057555438528414888041593149252266116548441849993829586873384797161124618319648883012370128620283398232455809557082028981064437708540632072351411114020971138212426876394971071256744648207096046166645742061152873261407432321428816163909247102506920406283383492104594452012370581335743542919260654025380205793410851894574551434503711819924351729763140939135332925723472871409544839852965198941436079850182856898058220853832788027392819277805428896392958855777261688038844594946257367677342362332957009378782431366490803306057743653193890150707948187891371756475646388828067742633051268077201161264220243622514048536076676639152436523317719169980238886635113697448823661193920396507457545665268108597349549938149817770063188914998019116159451803453923987522029988590837401905198080507665285081110839404581568435114486638540515041872894777884758645871271298908482275073217323139172903282302435858371869149761168000382379136862643522456698550091382383430852717578821474381242020417847723019999816305514696846491955280524525404507465946484745079223415184994395222951086686702284739377863436694303040388679069969813335484727211358792032428251093469240976038117243107656323283300493668295470548031885562825562774467399257017308378870205480434809414325788396542030249960159249872122522077073584158949343262890836374203744214393760691385473276093450818176759191065445746446292594204475431964874992567336223069809344801856236953103352959506847135939627725668372132350058999519511253480609202136025300096645604256857843418292040081825644530079534613181569167906988066211242081855661066730707365906640887564986621430207730411146528110795328153056768561129285914838451486955006773612402066068104118590331167590734711479655085673398084675360202853841969848774019719804136500110679353468177279304695435744400005344311385174365604193571482964828242843739766867642154971596935930931965785831304127344637248006065217233064543958518403005189842751682898000914641340382332196128819690411106521888179692496856731076314684707622010276267108458224986403708380050097458222511067015121291042341898774175464580539320875000904593878226885812373270470501401691311335619551864086330913150534505916021369771040268604948117292076945910551011121348502939491174849948056644539763007492594858990364847156094226165666805744400344991778006387291787463511735223991379361479633105340664352669540766907170304456343218767155494476084988530740235773431063248272102519325223484576378413533675622362624211064187195724084582813799422529963616234997392310515177794164296701016316524138984463061094041935977660067104070013765187661195051365099597576815115932573292648302396450082565938150742811310802462598355954566674635374959059020966793908806467326542751867319355488607607752799393177438019666600980330720845745056753365397715198379567289224684284427374510292971721080548815103542391729126556275440000385333078426873634511952892711600090694272663966593905152196301140197722400520543592367282222429314833675232448855562678540066370492467421690655383265462449131476610138765585052797534910027526022074235840483458140003978597329116254730081054830323454470682871574565655111571218948184128404841457490580532921142566742089965241029714717441865158210519424209327189146939705769826003601947193624619823341449596421926895080554576434119310738345231792997368602012924329797955814568911780023010022236579967601659937106787240929328195233387530120414886939329802617619373340026447162503052941004397718636238197878911614831127171598439881867047610236351469617436317151273738466758235973088293117117509637603407262773412129129791728912871032118065444708935876708359986660558827755589305276399260158544924125827312881255222754201578894201299143771261502306345331413113606226070630512004682507001506546940828562461913961931572147274434262961897583625607398818521565598854393819166590985507816867553740742027315035442565082881100051376243734521560016328957541659586219199135758323871460480472146993325285637108534439382806060143604004562820033587296213459741408782801522749889694271631563780794601261398679991544678202506774428512336454597733089414968843309450011878014383252544787783765900427737853190717947661201067829839594565700191944473525812175752952435693356392484737030068834905280219210145014326436816502410825400035966574310587181474242954372365193186578995092574207162483009809414516098516648386784273599753727574995602738332386766571861297538251995868295583556505181493885802160853407079271629515500242671824789161912541146820234395405870544470597276026938406179633294996256209353915604428890144000272298954474646768745438985724893266862615809852415698379276784883360046065604655149851647050207266766085153898414050030915803858719408563748853117800536900409265855311228183640493082477008781157472493488570963193113089600985490019957847847276079347929325135408559389307358212564263508942035782265728584592293322842145448989585441800002203118912729936671065884411978493683246029974685853317926617160566687553023807177275561569579286523099034851917440426257591774009455849116985438589612638072168351426063157444173921349532024978142526700023340419574675745095300115257237328468112625830443500057852031287589301038657360575729749395719269849378922501385505329554434271796176269413434581596829151256158222324472312587967816676274955367782061147852827449505568672961947331793485312684016862114948256629355578021066889337778592139502461548980198963153164241902987757805180486236375617870187206797066958045179627854250843666421610992040092481050292683674827444428256518591803896663233369469026904751005915797232599214002946770399016123257039140077253710467374795529179122345143951369758304932209897475501415893281659906189452545791533075476725826280572968623609374825287868026897050571363590194439177853053173209947688556219415959986242189821723599104115764373193079399084363554724907396626819782388907759139622956958511632286102352536619526968880811355378059066009631264486968622208617199737453670631753864155579774134714021954956471798596377000075606528244119269545785513075452934351519394570537500315657900068322373734190586266894152372288433097539640211223525710771098344745489860294768602126436060760143619135029746453711376169827507057881074616105624037677468079703795495356337352792022632304162435277456168164691276769556608344693912482980785183069239123271581351648815534496634891714322021556287650090445500797903529057903971797510999456182444029358811966256041442863252146475251763082335786023212580122457430280435069441221023819794530637112176933184694937962325023709413014150505957095151266314248023750569545594080329038428583399201689667079224478428351132171240410877698779627227079917777933583414190375605107631983567775930429865425314562663916073358974000208613261290746827581538974987551408010406102124645943849372026211270201856845778259302427238024536013160288221331524117000316820374449808007700026599996129257446646124437373312764045410517074087400858268022701541943423209988144625291672889153326474971040241827190678255202709798570366688538608863771251192609118647583238821353797236364512060467569157342040863444229676934336888662429787972874283022445286943736428115476333244483789499380869388747608902687172002344307520100749819320680485656854327086858481848236655848633589544846327039222042080990474823554967269917822237902409146161388229407708943856914756810263886621174968015894905256226886041436908886787345955377539680812570441651203475421137832586721321356042959603260301084114533869415395570215030462707335010832944906727428969959654061067844868818988254500464877497405078977950552230509011440963816929238240088347686495346863674724227855675543438738363993768798820927851155833147259220936597618333007004951268891969068253341512554116424170655638725658868419809535708676834855509672536279234884318151005348041506906632923311522979146805908385591121993589728892676240936352868383118940330990660589595621979004214207860432132481810590105019116345572674520794880277272154025852241309551512182158246496312167837686094614520280147592193184383429097638583611742056799494891092313332265478211843697767545741788405220731494151751833733942344743295738865600264387577790433897796566519792007076967246357890553771948313809998116166808880454078104646780798573429216495584710306394989663429620397895792358871352640620160944917685893266260764432844121880638131437519846040641121379326201673759660036115746466076943084751693273488925261498371953087740448009211914600599226698440788000200763490223389802002103136165965850004952090363343119970799369113638562712290415996813062071516967115318838720211854078629756882142742720311347073772847911748178473349820190363616344547888746870162369056456626567950353535059741437550591892310209541296765712290236203309855552772562782846173274417005210436626511306839928234440573142865280930025984674308611020013626753417014798823028723725469830521920473873483917123231267597616779148915176729295451104778797346697556764098071404162024069689452439235144722875136777226918298124277533753750988798236914636967108171499264074054573434451734536756557293570580774298546042490808827849500944302710053750672744241711679829077536922048243897501287643333524428439874381667812186626854486218257551424311056303712498394438252331697235352769206380512067795619211339449441192814969770716570627740560352569377733702300537477379153296400398710623328426209662076299633621278445853244711629993644894121866445717064352867352898698486238909973043770614025216610974740535646982816428280784859747037268601615010663258116257999028849369915543543178705484872542553851728207446032329338188638282686424829501344317859344278116538502057120120294001974787298917189632754233929201586023545432276012035686872274197906911046095437270738202247464915728910728122796343734131717764002476202123351903874124121627869634209059094797172963330422320677198760318283874741356079498779484663291793675255095433119664717296676401047660141894036376028029222182613728321980271610532385480449071351753382251809527150272004622805355587088997509758678052835038266481212994637307721672484678075480942110183078807304902845673295851350850864231433458519697617316766095018928744086363009937167065751882422508771420353951496475172381704791560139229854545457026975205385134731629202788604407050389512289340763837517113412939189609660923692873950790350301487847325145883529538600174683372069997975111492971959963835174228628192796849614244150131487311565431788596957774106527164738614042713542487054434818339858174009627833301118384813945832962989220209174322616899581671351765518674991658545489010218645599398071194728006942051475600112232717333836429623232820010019044053155997889995963585355895591549042605927060444456557009316943130024044170714854582692213377728822199839013708693719288608191234105633197344905114742449193626844165669144364424576935736077919212298418293201793882334391709024873466623448199377117799698967815861515994695840577945353486450350839914975065744931818864196098755310146725443978219019057995419502404039779719325464067782876110223236149992403993892717363826122423152846707136654339383513806826531058485718157522161829449645847225559503441384480903891221957330431992585968933665794454126249831619972775047000869174163143753641926103256744050372371554581943770112567486311955188159072305188627892102922905633371737091827166002479362090071631167008624630774553296922018688613681711409632038177047181247656515588826269849256322876617631756851432466883793153010993194390018298868465265377279554394488947568022941483337794604056544610240711995784869904084357732715319833304156849344279085796406282672394254530713114780914261362399341561590054775762357510503626696440560543228463025807210131855205158775343117783660405852342295502705611892772452845393255504094166109220723145814969913118517490556591633651155850295695793680346896758528447549377083653384484598346092114772949712385659916608108771830102878392657271484350512640869167434650388489107454376475526592745115111460940038353058825183062380800785789211588710481252639186743305336490733289721760369207909179521574865463730609655815606112528590433039977916897736903472909419031727741603770355070398294185351088462845159803550448047546499188534712614029357681942358523332164271691669750810465164671831920615109090368193478633749749635626693911880201438306867350514305039285411705113125229392270497745739969842871279456894652892697262973645827819537349015842327253783845055905528560091413900387957387498730503651866679355492174717704373708560654006002283304445702994221730776634838407314627948197422107277203039030258242627424636792843606989936786122844196811880816072035035869116185891090184049697368738377048453981364840000655222814283018473167026842053721692364749397224949208506736125467744770673754901184959276247012518291043723788334427258487911382205645830639325570849312557801845411598805301874935515656467116115367181580906298377331245334699906372642411425686736599654650317739181077740819392407714223416597747036855140675419207320710899285773226496254925326712724666710837744951167332659230340052023643825468864732920804116453378063541042948022852011880250310611496855896881832162303007959526236984748891681624400651168688918885198613981353115602637446351626770468800115538254978908415088870481091683011269600815586283571848010093059152257060198611762517544138733441718492524528209166477734424731604992608324012415436288214730273867793519730107965812746381552365218154344356429598871578832193537547571072851073359564554172581924672124710689418354675855566497252141853517877966977760570985038817813655158205844280438846467403065882829345431404718245881686507458040298997421401092006566353387386409285805494221216954831603428554218652254387019844421279383066322586570318150209818661414578679244999410730929828275744958474962838955653641973291052566327340915604052641668979809443342476377664742549954319719863758201316815880018751381852519282108423614994665231675437676347454546144845989508981013459552536712454759599582275599315279062601556103382255145883168292218312786243986733426827526702928203568527027855828287868988354704897360937335288628559845032877561778118350735237500177863965952967616366650036049872788771550722512171463437192605830158171120874071353868958735696920479722102363563680136395558773597597301542805029068048970906679109082758509697175405497535538621323619028685301982766779005074639892726697367881656940318794523440691410979856432024566908271961916678858285731230467183229161538668325858703680605041085618657429741635454409623219667424529083412058512089170429577182201127499687693554244129576238628859971380209702901752821991725548009297864934421296394968334313826980133389207953313254392440073145564008718585391519165720936688473248127380038593625875278812415919451212258287161988978760794008513528618409037203680456164498852874173006293458686578123052147391744799229750530579422652650054467684418460263411201200575297106783601119865228765614342132043507106134817855465533984477800606014230777913845517271364041955038810227537244176278945230738330963450549176713731141331479909238851999523866502881914329262610064333532560239016237189829478725694906439028019391062812774656552650260884515212427720012215082934047819146372959938397666560784122220011769726714140846370373745608183486298240631417907706401365286540466505761470580857355757550073047681402710505469686421798302400113867267967336568279090424607716923532121686767528485149003566916160745579700249387671241188610990655390410190067421200889409057214362843885565272641048960563501246863643377918689707545799071017989414644244546088127907492373358141984908510778092535247055476832451743472892976657132532529568401020936715238020823967220532907518206842734315414181101606756515966469398387785733396357353764668741807208848309244540923961403148042997142226264737588163072439434629118096011999136656927539512093188103314426670654849110708234254034818910786465169861933779920651042616070586337111894443060583926952214764246671627799651308198334517886639441855255613081224168492959260387664325308141052201524382924086306414834418763056539181606498025312603294004932793122355542146180310687383810610222449701576306618927912566550560595574346042534112036349803064969410601373669795157986416620457989090055453136876898942144259309623210977046640779315253727198936761297249449978296184642164402250164083387732296406937997502363371851234574306323561884525729704380610177417831234741652294147470475392828590837457793172787463004754347114729592431932335887106760828521314436024774047985209941926201427397390091515145718097607620114431801672686832648685850217491945138067648152852411000847777603924931615295893235204888722970580943218752273403444501014056349069787741298546687406322864633947319350406199573692044783692957460890841396561378774939741423640513211442411536439166419200196722489126758357466694054625161648834630580110742267773250087452079925342393598220840143065765859713005611819780300808643677883160101159460212486491896748147081361684984219014840964392009196892787631721558497632708367988880700821328743881269756176801700774782094692537550800809559311149119470005093332671619403006208630361805265534217012805848464839610123995918163600524948415665770151253762529784774111333625722302908271699102453602431547761074735510793160455660361574082403798130765580519629637568377791796556445996264845276667300858409251214011108238537780547559318115996131647393071696220618641536043517634180424784861352443538991709579782498344872626167912326587257727022735872463405963752293777000564858199893771003873846071838090948946290159308537010767222446526891594191731253538370373038519917528891217598205886029568984075414538172755380420437024386607136598585818924147191319660736359725932093492942279869181192430180615670839658482968417962361986352248837806227276021640646608894514017564494293565228344965882669751431071939630120321667615880522080511733092657398170199260862981767412379134116442085633862489375510393437895958024574892320199835677430479570671136820364136157668401819645016155182654808279578656354705669866269392218452678106876515295033303035773451770884396101619934547899631224563869738487698726497160618734562949045526922144975500995453257209884363796893319378319231691311525350155110543449714929447574713266792758584031913868681709504477297147744005377418060067168186094190317863003068633159864387411374252480814137784074163265477973990401438833960877338544366900046805183422128771111249537579545335260665255010397287427403909217420812841684119706476702484313585647906064378361569767527981679735863871625221933300520393855424579907489620953208751526723098491772310128244819671504724471449267654464735367905411664650830068130613980360572944125226469912494089534973633197421847470195786833201549983356507215321241241409698008202368723481815439286077889496355384453306576396639185782875984224641696753794165151391379185621377186755748610626362260099290438807470367210007851958468415829960606304821176251858690937315418258903986572994586160097347673827656086599589064917622610512526855266958428873401218791044924001217235525233896489889283208462930042709590543679762119777444983475376261779345927890309834202359324640546671348275670028830152897840725677465064448785566058861495904170458593199513402176831861636429466869853750265636880593710237382736145636273873164404356747587068173734221138513302198078990948332823824522545729535529343349903485686592730201846165857994641573619497615557644266142568687061465023146227190004273597326039254265757682833797199118120187419480168611173204601601933425078697061278991225559600194801487836849173984199019305728640547963424510225907812540506414149383810791374718739274548414216433277181292585812025069290795937638800137034655271654561953290606424429426424060453244971498941160573055025550261251347909589778314169092655414607907311761688864356580646475784894115056463033372852662676948496534343717220183972982910597830547938289921544880662147064209553725257036984939948798588433853965922747289243858950045226341048418050925058466115833259941018630474375410036776971226650566869501053328045604999346393557855107867729663573601270371107062698261774964560405598509805535636789196433097543653813174636977747601677581498341648330443467676847357912915808207477910862938421646502715890037728616728471005150286545643789844516606007409792556136761462887231341685396169813424470209864575459198605604234194705165106215474554486288201037732127546168049696612536868646307945295705377903843164490575063608829806416241301886378567205571791539228391202622874541832770898838863521476061158092304050957042279015631299978056720869503062264759483480865089701515608070066903803642689527221039989039683734445739288293070013749762806449210384171156943355628639022782915180527059472529017927518567731507319085848084420533623542080038313866095804688410328897194312339291459644983210835831434742374701603255668986611921321250688880552889562976759416743712514473391249952585029062135428441204833118130012202056154698417799358400583664578142206429707382627554696205025345597693940020323574400206053568444552369316990626138823183676682326707430930357890043311345383371669658808299506898573506889028396475913120174520874400661276054617182686621810424517309228533681897579550942002390485468466886196557552586975849611870433683358554347778695759245266200757237992721274379467972518426197671355494949577747787342217597979835876705564500035556297572799478053046334139173223183587315462248015132492878140428412526575195923538557844656144596134394173650702119891829206421971682096529695111219181760574330103996969965205787058554020959057828780413138783165078981419543303795007362424136414244999398048038089402297127550339529011584671638861743049863228619677543637863633397792767749842706971494510221035187859295745434714194387481875196640896199889727264009053179976348951313120939726762776992002386805649586979926169377324562634066681888425019576535031912816989203129014992960585027698216709824562167608123227785856140507799620152097539179147433226940155565000664242957150320057953922256379098295343377928288144745584495307439773042090621294953407002634522091358459468175828299092021392678430435821815441998116346639890265247443988208440396191322806257430347120791843074597152317480495015823341015718284854027919865501029042338873231061203176813470534170289516013708347214450466982098011776619765847350873322075244485938418067558177512312726373491548266465897201123748611648114612130524758246761876826792378822824827883985906380667214130548110824313648621551623938493271668943267663134193628190793836766552548890465245673841706650832611257167390881338920204486067432156378658200471656626080593543728841493214960867994888342027767100871350134814882354431713375865514646134159217919541132710049298449872467591907811126337096536037672834297149952448977362215497549779945267927884353830310190359696825833246370279807559098493782873253421997711657608240835449459948867430828230286426544985488343942523241016171355796371948882011767479098087833657851436752241024695032383114679990681597209307510457939855315908467273792174145320001002034887178690572906415415168525201594236722767264993734732086167204721713836793907195228367524990349810567657344952155515743965965690166218251822184522257981461967755494749175973016954611400565793502450932577660966781579366740859509084953107107997698470778319102683526951359446432262034285241146545993818607732736757429451075909574728570797880156829390135603173818871274933125168621185579760640698880402499132676186613357597003478908983432595892991404619542658037659032249160672696902341031867283648536578880951948585961260766845296002453260677036361249507635696432852291406750361573196400242779506631516319564534002687873009429020738969662662724615577513078549255608442828255245112696405186305860551270112679836957130294967517985059321553303176080815859281534117360046663272734538399963484897234783770220233157394393713589017513981508796793117387359687176437833480184038703144098400190666139101495196934084418528674884583658749515302676843386926438237942437905342425391010847490983533214312403011319916068500411534403638293702403471739962181264822097365810821419492071700245073298003899363521594152623079948448757989492754894821558408938909999089438826245192366396300894217801483450992566595741051408401238346539698974353780909427874848556919888852633080739820501324982815685184869810952569453464397839561054003293630892688509066862823688264956886904019334801731728396021621983606208478390346591169849952878592735448198720152464538635589718712501041682608681710688474529527890670970981054122255186884977572470872432310532075080768759007998642207212904701268420875536652200339912507861135578467018207156984193109261559968341375148785464351906138863051415395417103137291714787334301979585489894749934961877952465363131568823484899001670826857567938799006806511915734691488003904403880586821256507597060904081228709045099947911941789138540862761432134783587657977400736963969454302023023337096941207338017636267239697905780382908164000070108863768907140976589074352966849435471006303919526514893455168602289904868842376396129098088902575477440051940675914001789544341364998219255591486585125712864703363065525632754860083697384548819732149959121270912160837501034158651421304029727693124886182017392150149786956335331073400337254632970312032528612706782705199995337002286607168542818874431668197754026247357808298406777284967595671390304180331027550304759938186261439997774675149890919999057405534991774532234653065695760920821096246469094986099162047320077906656431878507671535917955283976690488813453836726274442832945999037023386652194442017782310083928195120918100136197010958802572195536612767472461734477915284182756440828255800840575953288012094535389051221815667863262283858533446815094225025792527763224011004406439476084415475291079188943671975281087077719309650978906301367225362903113894934924461277879554972432799938592797195049494750628803114946421064679291449673099392388918495928309547037347589369476669098342810652627953929954975262943361886808915179638463725097074391645230237471293254755651089879870319168463745270993932914692670623042579379880429492548784118469578160766126391706962007976747256457560663203774982353791599344385682409144078915808833681487814196171707732565046259961326188422265354158285720771440240081222593662515599118060982108480774639393803686309526177110692023319334228942917995315421500127372560499354620033217855119413490253621400632243919128792592983083945153190276349017114985444513536527385107038571574066573654659540172677260429168123171281514745602974002889523236661788328496675699775278723504830601837736751492294201810609197021508311179515260374199472237616386487002934462528311419372542918499199064673743865270026303180753313742644249291302247564048757763291575918269738833975532296487193204500810423445548416322063988587693610598881248974937899376988466163277280399100537707863893607866584919585520596656765624453864439707713327127568232257502883669843778365577475209748137961746252778498065630774649001149819511346811517879246357969470859000695790603669338072889372973930853411299044368225881098084038879683099407682275821150294580476932849915064331317032196759191177511932243017233578019812060096266516248762478769309455826834040248204437167935857569566393420887840565118030334624259972285181919038939860467446434232173450703471190930521965697183536364693553472469700623115515832762980191313079446915784710329579835308324099317949354498074703786156205920395300199837455990128201377951037050905828851156267597395517783338647144745855396753895021529257995211883072563427163202723403353884594578621643103010316248029435334064119008213592067738269950670429438166711603578607711238358552929399305052110307662304745533838393663952268118668415448043847362496986017416121085117278007634772199617373296270322958645977052273138574183614226045406419018667707135194197423335168026497708801191358116375090535876937286162702832663176897046236242108106933520744148031403082514110131167225147568109875637085858835242558710021146871768296964715952646547826769287527081801812072602313480880744184352666234763529028659677332397241278266902529236593577938700316972509897876774218733064869982668926150761003853541649091816988555784759267997313010893675761936622928455491466639441816073496401074543364440792923865906383552184230735028186668620618539698997616434665642163291681999386791112056417996054701856669841924316047255837033316084643742019484425539936957509791523140158672373060158306962026587575064953971538798777154803470473459032788516853545380407978365141984708327307128019971780012324659681996309309178742171919948750767629958361491511298942292770192160043299576738176934663845077918532695473756385903687102982788922626333014014502612594665037736852026275021292642773499650696641346798098182476225020660714453479788397609361023512842873200303386178997437366487857068130938549465988520853259247294778732238482802284917951582736264462179260513660457057210588271066120661634826397144343015972507675355609449666863674074877614040023855764729124489444485915613633478841245164234299011404980605789493545929970946651229142383479432924635140553426542543643790144431019833195453770508428656886692509621975497543729853584451161736406756651330653113589080326353323375889564762894179617032137470118972721088679182724120710833867548413694811813266740247188602516931063601144172990443559403765471747122470894275658957609763674620498302782593212207142781589463131758178113079440622279262984252618622365473027677406088242499072181927934748455986419986155143755087991781459890160311316902942469455151704314618374259400894119152169025499536728887659699620422168358105900714692486550347693337671802429778807016713692867696742498610802346925459045468662435635565197760422452548245650027474339952892632196597747303446677888663813316593719640373577728736132658371649829992040738041746621234536313105141406293837403315957755144261102836983391668573475406469629582242189833295226244357343132869552226285372908146201903793571830434696147143242824359329321031510731213630135787297631231139593852210739923715038966920625313315811705834737711181160689172907297332855298179570662881420786825357395802264288986694338183722382150303340320177563393448616528007868943455169264028581251544816479423868116711310476325102232849175675884916632074633913188669526600480385824561177627479913123393933119505835595201423478061938382019294680466827350664395684511851917589506128694324867389098178297948495795115926425801361102810389632832836320208982340427747924702672782026555387625662461162860281334189870572023106625629888151933150478388000869648900903005622016382595991985181579482287864083981903540576610496089954459627373074900654363349847992221445987768617252111585545463318973378916028982566725810803131498519087627813890165620973470683677139394357623160782357863214856785818021591445828813436098444493129307003830074572859517891551968724781255645636195835269128060397594814921707422465519403438264814634352881807741984419395234583837113181723823736203809412215763864388032173022513051148147376568528499992564095618478974789563121962632276919242480016616443790306182534957215411081590829639205122889567349435390848869967521687120031972493063224688171149150250226423358897385324081196253934891746800810881864719958215294900103727186381479357803879329670880943674704047777517115016800078396437741514270097018390805016300151782983433928848130267931319612012231097735259487395147899257651341626602025528642362622281320968154099740366666677997272548613283468134586322239626783704105633472348465502247191058933544340712855104970029573661672565600284145676285732288033302621530159935735937512382514393313314894562016023182537005707358073067985484077851784341764440925091455235252753263923809744468797655503737783857791306330549713777145808670187022225762088917667908991410674956477449776478705861625697344937660023616486634104872839335393900050436537148055973983109960177170865381105972712076290935478612938943716775237377661469643155847963545105403650605180819391064596283973481786766474799316450044345935209798312633656521107882898130614432839910900619969514737084384659940985117608206790205744286197621557358873336249911399491271337755991655865710413037830986562257264283975352289301881782469229126479385140195603724218840358998515070988057227427248092894253392529986633344548883457354401439092259944765047758555213462201290496847971556976457799657441574983041188678208726409969651732736278424848148037587891635550648668655885547721157552307080322323638577727363968889962202598985957907209132154414880265841535209422472799565392598579194804358024286090955879094240474244038262452126964275673414369525798930210292329985872903892708974549108422611145676602247093144710730804320165767732123518050913451519593853972802934553712839454704337112529119743421258148749070687162474891449284390309593322458779643927139141363462407531250864762176155851695204323467543203926493535236920024145010069447981011012829443287539417503630453086320771805479252611715988047897947674104796600188700186839166367943386266990839012865875153943808208632335519435345257923951947619139195649145472502408032948899294390521950758222233079174091543834013408453720710747679549076730440443845722897929062079054619467306098960471871647068296951203015402658113649733301885821314880944647859777903392801028652682977582143286937409475458490480099916145545505766349275170234581616649608509281883400560278550159051623697482963674107837567216169194906564966159559093809872678020331851001149847373838191324190967454004702898729213858672619364080561798374671662991836722722208468079920617864875850270553756837217414026817786597154237528973777978759241670682972567285120133169962233801639080294821926573030317917141986005160534282390219283637742353438398935717138274595053060654839940439876790276398413489411258105362671057991937027520535615314438255907107153134980389330956262130833368328726175748657392887816313484319062823985934919352760424929013671519424455867194614671377259411886211906840519103425816015660448590004955442514338978355750022018656955166552218026611829926136094647911346156344512824584048540359331094017959379681888143244953975539676050437170859791691422625569172740552279798365772593280523248877138447304128508311611064895465757811240464637106130483829752303508765978884977375753704495444931124556905225951290147922733255929516075599522106116223913050211529145969821536766727662576878509747928753338276130638743643894157962092988488338211627579779293501541445999846187211326110942641852525010819391254193392235103335804002816547514263985387258706067636340413064642335880241345552612309343520353702802601021601798708126200993260221989577106920680948205420627153001296226485223005327017860717627510187306530490942175807180067723489882610364445026555070748438689680686509169713624918819679675666755990561108880344801643210383526465405788035830187732813052482699545758310773182169786074010035658772972267663916362932559200766276759748076783790799534560065203969114670089148306214251981558779370742858839998582653514717387132565285000602552842857533781140075979844872982796229562266314871581232829016628890825655263247579274050846434312020902916375018573203913588641724348349893883860432977477636526165377636809104293011057880246183699123057241396633243576114500358577780573888318422749527481747923522341072195866554574364385668820780898049335057037780981835240610900248257050015933741750431803455616978007227554565430204321062002767492364694449181530964772510545307767544896473829534418449498649607433039535211391386669557662411967660330992987256662976504747737755869315161809304424283575239957330655442081073636115094944584739049244200640431293692900709097821640171916311234620077125535179594829396208469446221765596430954021165244582095794609196006512299556948321929138330627732062535879374840371400436882282415379581887974566359014540910691359530113167789295580686557169337542458497032647975852364290643249071100078860865067393070961177743569609902345840348764099393000157788774751252419002676412496595221463797530261030974957419800686390922187081179494823717398240794429465451522820166661437888956217715395008729050123830352968471813320159950590089299602245792078250344679600316151412531639750250326522324491036165636308955767066091863857462476364602414218569456470955015373718932230936060460670545953748731759814621686250763416361975551582269947871792138767575461275855784013641115298472409322880162239176750419554752175630422209588938994559659857695201797781943694339946688765266654381818467344573792451651514144696585869301218633918229322079779014435452276868928013017583197795663392741329558290508943787381604303608447664607022819963940948573602081208943629084364940296254992718254224632205335955426882508634265497968153427052031815629927639050551900662675334278085848609052224722787246112211944203343320201141335476274197105316912430462631669337831601238917542404594519286412002269572338563152663619546747131156190722192843582287521376549902712775553326709350130940855851852379890249026443154354987629002328544190848863107467457759353122444314731019007669553530187757535389995857907429893563329093440933148711861711576229409348857364509885938239627993629079477236245001562962054308260391638094767579754315176723072722628632199599553957698798231876236400240292528970740584805155395907510087957720397014010780041499620066211488557853828152682707406945183971301919790719862078035041243452515966842775030043522240506388056785056890978197966195522944464505932087069992029180088583930684179565930727888906839580163778702685759448741497235589021306891756929483174156951479740052704370836743095308796156920150972295103253947467976322942288083246589061568098424729639491697403624372191942064681014456609812751996499006062614374440155033608186931007533953577791867238390381972336771010638916337511032510554614260726728574489749566591833181361697231811842817291437152813631621013784730330854024976464602631012486629995372725519374670532375624677375926824214668126129312308460605304918367945330142941080335223526672416453809429353771821513757600868512943998776017012437951782758403497720750886161466887079847212620067012210412308283092568526797606600871670907264986186026601284868022003088550316684780787925921682396915682779913914658011072278293057074716447602415668982475981735265091586733679705323655985646935738533603166463786745870647062265868276290903984319181458006731779771925119698214896449917381245461112231037060038470869570834685576972592957842695381752381042948118609735599020550423674635750145088739538087237198534232772124128324720741127306425240356635503894925144400502083033913554472656082422385751126032011566524597364405138200766839151570448983372109614508946452991271526504727064341632534182677961180616565941691681066830194740037544209607276824832440676065274537564227531024720573419060766604540883325131041442762847310419044731407850825200678855810795033956479641297525813027240606172920651402774834873505965114948862059669372042658784845897890402086992080087593556633347468966689147972512595627885047477009124213354537323578706277082025215297047513097729197061780552216007288108260562287081662558370938484844790067743981781522964048978601711891807388727755079422302887540880188759349485556034713259793001249655424207673355786749003802327429291581478709688362782001639221962652672972883667015117809429204669974252086934370711850343374896753454830516186654181214186505309782189530466700620987346916359412729096191094361925081612730448775614847035140147297633231156489864543273402486518927804083480533421082682013199243183494856590453263868462876690481871717016638937274885458469541794840430227177466214280834489185798253122655990161364107278798685186314218199056503507804528816497637959778283379038265994206437250106528775797809787510611489835821645657224926696353964032690125830627293774203276626518724884924147172532830785795547119486641964744584674919987376394388779825187539094635868671638754072091969307260306177227881441432414041459393630977431652881806927513246533599805465484003813411194833042128179106801726163343381613336982833351280152892281540347402965358033189527712696060291555993557258526438003120609711248494612411252413291382935266158901451152390616285533504862811811041321219855489324883865791341009160761918006737203492411218485814536847423608192806226563692548704748912776651365094792463664718707712290040034220055994422247433919336220563247553143539250047719449591088922395682229247103527952350390170824664833252229768848301693535608613816843718999234600776808834174507821888881107556013069831585324201983538602282581267283485577194336857156132185275073524374233531741379919974723686232858912157883958934527753553864023984520013414330201561841762797637023972985326236844575013680537309132037969887147375382093313656792403204577710561094894036048896821963743448881935712861271372348866206063042461450532580192038492887813193765604944789414007950449607326677524786644505767635254685484784284307492706489503442110607285520790453447521475314835906514882931441686231258274721299240602505419275955233074106144951874155955925964498485912148436115861150750603974516072883482116303697133777184233296461628395493977626458852572203678307371973424061651345462403049935902430246678420455432058433252366566532775358333783160215509310079166265650427194868630371508513030258463990079852264750975071803743838027041136661864182877002423729666839046189463626676959354398774481808884031232864640180361074074318800972440715133383718408786928053070446661985410107122510084319832793287523125530177013688624603857557973958643608516653613102971744198871128966804042047882090817315191060118431565054617731408992015387068611564605985688084879039090564927133317353084859097822908780122250542401958568869483131542667576469459712191761670726725520267419993975691681143016408430763242994590565011029056912976627949402089990053356329137319894187351573354077354218310902059265592140540193916397236613472158842415732791758477106664685400559191197961669547345878078713858878547750018962571861680640433405701424295394814191507075411666561993874815761405040146733507686489093386670123896905765797922052407340169182100742043747115260818415199977317462235218326116292732112472311008619985391105321109321772159650598717036491743766923642824606467110883238305240991612466128085298867083380895590202970433108517905274366090843399790575439507783161396081592783387781064910606138458527332852715560305291435659362908435465650069535436765456240578372346346286845575508844357609177830959246034071726628447940258712990370356119190354285404035679429919249150306931627534492327849863410418189981162317896964816052827497448147127344964421591409155418486026400449947911001807295620834340365631095887243829386346015604127338866779795148704770536901149094724575063614588679416806795422076275506359441405730175050542799550500839747894204125381184583650354756133322801614715503584538610608637374544457573569972167184714604968511926413784587914555926842176146864726583705039998698437606307386133787026361940762426405629444020623362531259667737928198903007173793180354722262867240553985053420115614789145496275292638853898596694183705552910394869295958427106385154422113932049937268454870742129997341481623004064568912079368948368183675917813553281933274887234564721639605247651686788697736315150725496898353666810900456097592020289457820663525637847452203133046114716835641166089645370771302511322690568925729228910070617403950077344360794775650921281643187992564927237761090580851170125006012447425674039073395635988910501417521919769997314372818309616677428388673929996208918358187513004348518156900203182739759618115761562935819073127267250148823387887643662166412288659080493336745655323174525356927163328679158280908716084913007733094671604760139702746659728595820815985771233734959857033599294551662812751939066453811286309327855005131199926542021626212523195244912022621939363336220848790211656189573744695445662529354984928311302912303690497881128162145070999065495869615545416662497362583319706206849032942863921629696837425079797562296274889965318404113404607894814899635417081118662232801895241664115666401095017191724686754407617033894638054450321778843579397002336590504756603271954237397084592779160226502980780481359488095656061836380850904936517946539163001525214286541761751513324622046112457530516968623031409711539740563812764026293939111388695903980361454446332582809114718109049344899375980407277572061199096221169039562553435766684899548277047981324666897503599839141239995986421377730380832523240252198859114693499947475860711073532442145684848264959505027012860281146446204709986975008294712609275971210606526540109827961906154495479493339728559609529617000890886649656470910665543168229378268944845983739301072506204307290799591275605170862242784798204745163927010416935324674022009727051305119132852855659477724607562034760050965995446537617383473044401808650498671615808114642358871568550863598775558077933965647550798677592250022790440603886902358291929271378032269646210205796116612361439756965594631506033726450101641790235095853412985102295182170718520133527658382663056447220984091083233794691312041390487668866253274104316097421890386785651991209746425565235824048548231127642847616818125336458934024220237840823486601135465104326614184464025482010146839711279649202609306689594224630122139251677952874632815664834793101890627164051218415605647011129187455987155817476445332590647030023143727824993459914143888879170998426434374958232293254053546363553311591281536970365162884907365875961082039591732178547551044519894990496292022681775228649665733475197413902962114685746899328123861057261730718902269341500933708198900228269246839474048488582493871352780119181305022758089448870255877596133983456181358048478163117737605591828201965873738828061793599340644684656005733320692046953255281587316312730802187053919792841579364003394762280193541952996497712874769996221687219470003068446450818973293341847940297212109761564474896021017628982098954384894192268181585001610200295435111226439611935292279063246626487186736386575666249003443523269375582328125238891336428650769291401540707150669566385910636642580517076917073656018245166241279342078408498094610458161239483004604509972787296671955655975341477540115228627855755552054399421154683288778741861650307791588797989542877636169326989811532197087847271871915469756295741343913389239032262976433882586690444765903710367860535233114234495245444597398722098939758794880874887127837268055379475835818970333571626326814596058554821774265456346434194919926215156553425119373199662312260085370228802225852147442463532933446261988044769356399259597588529930034795324965308624584440464904735682869972799346209136625414415194822124498479846875134411511148620846466499674517396745737076993800339671550870825020985046898479006676279580909092473996700888583546509522137806903238962872100216972244196169710896507346235076603213196583663586833309587834982018897896866780437943790880218371241921033711255567090968705319817100781171159272212710998623687727146125766478482337016585754927295401303178700512916857515438539841414074200797328414262869701892277989619344065500522623485449501751788282535503668371299965857752485851925083628439105353268807036842140980208726791736430034109971787967760709959496147100332622874379044494418688374203728969181543651026429390125947557227653638871069119870010684138100269221494348769367312628047768534169553731937042749280993536296539552718424155572516304918324803292932293335348557278193328675397655004896113007763320614292173666047622512679391842382333526703888325931273541432840445092757603114739915035107990492327306568070998654034515713400312042504785696246179519761413091995085460686353089087004697476294035358235139234680706253106363869560013419774523347297242224171932015526109768556105064716515777915902094930483808735052364545440952291218408156086144382172486899613967987498824520157993007872257330086026308861674287443436821509969285136216215218478585522734092753058897958268474721789621149359296563968113235722092792539437307723378468191377460987572795939068461991918352229105218659114365394640733564759015313415917052401494911201844991121378308548437885496607820782703457350291496562763171039581334087006231595633978654095383110450269948787949296310845264447201028338108481392960488937244712061371604873420961469553611796899199444413655473744603611154800364267425204037543418407724590442511520054898874461846686532116748829985585603530441319936526652780717307802953371700051953926741963683257496860086463437897179115586454832981879588688608603382623268063326766987663212752625299044323623449345982896450117937799757666048181775553903859835430520332776865068659976782996863660659970959895854581245870033377149473045524657360838173727477250862107781936980943815601151545575142084395564319557955703601801673555985686695646376648800823930692142105898855630010980096897084980655357759968998466783977318791641178557441591372794582813980401715317772730660323992356307766986410453029509428101977074245259078113378470246352724494390748738508984952654687745986406326798028090809665903194894008732407384230389388715080172802713582991251871745040706738896511174884711568225375550825394399363134686176711016283051328124551931517106608838162872003440141557634443447313618910271192885316417945529992436090630149590184621080493773722854121045108335248477383345933210664913061212895817038888500104961219575056677566246501762304167693171693976474258032493570080475898981987635442057272324925684246321154544272146659700270272956525310450297293020088626991819885838570995516381959607110927267842483016870707454134343173833446393369746567350545754802618053478264293354119701891860565636700089007217402563090142355894334206402874965075197604253928190576212954999391284866530203814989363425687613589091665734379696529591955410191269932300156775531958333369667254782684272020560506461564889708643260258840421918793152503205776362972885486944852024435859468910319684214794159495858920315005411521636030442751111590125750200969433928284038505754868754071980941542232231334016985474093653171369151865372854133434539256214988073259421635348550041899739300261925375696860742767910543124452225925609375618083248926766520112423321476621902573233380001007986718398730139244894336238463145036510120874178813932734066529278089013503535659085583164145044039131270698976359647866250288646930256773716991632995107302249121848617477210056465309619790034435455882852107657081948016255339255925366152080072978732324039691417586579499152117649101389185191954745414609315678901323888558612693349521011876405900729229314941916868692188488847418046418443160609265965707215184368214012509208060576054590725771055842960662958582275904379772833733838111285997564847706812649552108389485844232505554011273942300812203662662234808797411875006280416979891288204216845445005640247775863033325425798370920892367353733122184868354092437337903129832528984557151416110282137928232076566000277126469033135896979254247056424247903532439367937369531110244131470684858863814843312474259968750543533172293784257571027348727716081663428548872788430194755724311105442920959829054946981808529549041986613282614766414467413083147340839409513333394271036695791878761755238979849168285723344854271097189484583378730351032444985628672615843518752530104166026416382963859839002127872706367756692872399364307396843380209375572052645343828443950320871294132540546864841628337801203734982292995436240977805550989457936621034392384403051307103039263027336592029706649726399993772629920530819553803686385763326509320669312355313742933661172199402763080870930376057979315623148217878700573403526351493069068086722355087529344933583544758580030126306850652209540871071333327381943698128389487301416463047669920146173312230481861089934843282860612647816743456257070292915424286643838502037550488321513417503058133136212235545826298378548748964863603945938810387926249357281528758103260623804230088010285266268272357384746393590145000683807514360136432903864063112186380839763946923181298702840563773215605479927851394584641232060081989986336323294705816296944158382756057468915706532494177673847035655795555085554134435716499003558341762809815257038062428061392235231498267016287670365487769032124022584960003560590331151148603275825001270468677996931468150931170840098993220629437675229741510378525260321191921906717659466624457795065305219307382019623467062780211512900754179982991201308718060931442747918734167092345358000401051867137129954080941223314527581545072448817953139435556698068204082712615113306863947129222657394061897398977839892788055925755349357514681714111405962116398812989964931027907102496290855553396639500671733201166939169163454651572895644330160399563149426805534884520295242525703668865994619026405839993308320463858514189707593966035934363845551602774317236656418998733168195660991897043897034274893697032721073031234506070274997522784540519737254608154809026493853754980024337016429108870553697955199945032027829843131035207206218396084821073452510317853923554166127434056581331973697322482169907006860535698419863691980740130245839832084421260786235300400729325661295255907135504604057096175329160432498934988857532183709469967428050188332918112316596588857692929567054607035859989821026037841002750167370267585145945509202598550175973447007250185070892778715384193312572546438064271921602609753531551838692609982022543282498868171924485086336843736776422248755414263837992495150972678718696485023142672377254578507233565423908196263612155668937052739303538502095252947159254994809758444922635915500860964553597864436955558743720074502326120205369133273196710576851196026725285141140294486317547217060863375062522732786381588721674149247335903431488899798779513701030203124081772617628509645009591600494957838853281941180121292885741735300233000019387069237317905808555804901935273422083424324593253930774608245608328231290242900728273743348297049003949034851754881594772914416658823894858113704380957617420526335330760027484450991604386679943638286207227406251749261708204131503478993646144335403411762548091136560086079568479705255085194393264641801472684687656127623388188241386794670090644249184863552031787956855648235531837065851162597281859145887498301467078718433642451382274415881700154154241869030061677835670496544259096692486640177271154588157672114269775804244226472965137589289244581345138937639094532245417501045766407335439779846225770003169537653954705532110666380646472119313801928919818651694107412853816736579235492965078543876315511863818793507091987942983362318621676053523603380736733917318218760719286250987226027975973108056347385350956435371233816396133642454380988308406891589559783529272136436799585755437085785994205203234845002395950745462521172294086987894027393559933974765270304601936237210543504507815028268616891465789518266436888661569499102771111342930211996716733605736870356648817712155109397619522546077037161197672319436418967115003919621510121595657604838871202294683451201816396614632140940445547726727491222343123629583567057734562992879592579039071284869285376410534100448742940569179282807311226567453505684802674390383398274018146279704873419765867374963718030710746344285004978437101835938134862654011922322404559309852782047435961070167892790937812244339491551971981582187971800482345255658417708090893507510523789866974226205815473794680165391591617068753933756326492134753211740053354978137006256933391815403691162410782180484161500049706883717683291972194141929422555297063926408282423517786806284022756078415585009050505043731331551013537031679130831366037159131928925486595185271712259286331460328788520363059376388656821778869201644696736012848165586771702710436469715073357449485940990319515483166753579990111768412549215121623117632407231217351352390465608755363758884031582866987625082106745934483503855300600958959407120612138103324271860587215477688530851403214183147210001934340683771358922262690573798873612712613805344547131331581219086617278252486722422451334916210171135800302265134230120796451686982414290413704940138599710783204816575911354816581460927723191496384081502626393301724202867402446790206948524900994118239043169080135162176003102820078415829888784602713828362948222718918247097067571414114205943380492384899611549837945087843693699165001188618435344324096144320305460105394655535297614317464241850845618067103115809667873016101857579344009013391830529361808029684618465949427042747066716381354612815939833863847209790308331482653421631131652171508996352582944677397553053620220184997919087377754614824863472804082868413310681246018763890293054616516570683808688195464570436418187618889686310994839938488123402146052096978136948199282689633886748580819692062749086435630003883185074292233733503173156660626520615172845782922480036475291563561282056390449625529376496905223027485092850540416860791330931592727108876915231950650830615357197501698368098368051413343692795632720587979023296333817416962590036771751364702847309432303638172365907649576290610538030858915404368298206744553554123665681473312821701853087553123248314647439918897687088929256915556671293727215457540783885652208573856342359371931450963883272301780405201622022124442074628258960979637768148913871999995851521318920962626824905121985778929033053901944312767285931706611145947216535832048783018634140896474304965562630652952480627495912583282366178859249219420673858790190994762488275066504428672839005301150080128716778249642611823285343490396243968751975541016387511047800901951275920817166239309507568927082058065352636023661048391555921146315600857019061800697948983791683939752010001128559807055008314062113566297963279842264345941748284939913374079151227809599099405700036652425824792298840793474070605549217423660343428232202099942622370877145038605506536744931617518921470338420659769641608716877848604652763515101157414061610061201860345736517864672127559729498645460115900969749128967239442285466241080713130986072123802841533967562326833869167891018286228380655065764935705155678099395732361129898589910189630477226693574193219871543013955625768695609067183428408233077321111867751087026020408061468027323615502381520556775428331812231890711477943147407519318435215503057748049932989576762618953821390286273487450496491873485665738599175536625199558129021773425799304668910535651736353973329060489370512546067223702816645280061633997587623829677905731768353425418324099170128727345954540340403224355058054610874351832385630732535068602942533841835213052362186335433610440921941621831005894571521559575487392884917735431611696496320476157930653348426209494499821387500977031340160402127642432092145521085642987606706305164554938940115832108099278242654496315899334072618303126499186170583956821299564547628410846038766179461949195556899839343932967777386931799771091351687881759106523626282822287621337432027187935350458888800329053293408442451573619793473339242902119150818602117983183762358697858893128700482191682393569782607433449773083260163780591751873907419759508475986163596338990725335212312611778362894000640724290340189969651498920349116369643987574648591900677584643633381202999701418886238111611500302383423078776819587520472991857443430924267498869364072510960150291663323322688217333139327354951703975285223966469912242440301611812135960960131902098701022577185420691709681217654651462623290998679144162224393201534919020087784973971191455006722890029008549557016494788151830931350232116417542451621607460202931011953078308078380924751558460358945181539993112864897704381939281877442347009847739075839609432152559216249944164000513450820984189228432818195007502917367059736866303280198760216059412097731451588012287901944370691256875134059131111683431743077217581155297120724763925926764243250320413384730257525778723393859395196616751119991875371747970629899920247832963109480063195953937342603693251670032675718096835770810479482532576540333468803798876386540938172307205470441054344109773608026116368576829625784027051536017281282163140579138715058140243386523217155236049861967614486843095587460209200488725583912208461563862856936472954018650053161089420275514513158173289309946834985444549448583936411964178615677843589067665771895946244637106049912283487802017959726062879773828012697881711996302135249102759012071058539881567298317394082108691644823263979284911889500610455454979179759665884982199739690038621159683711799768200156704878722056681172425168879788463753772747010422603073318453329977533579228721742081831865795520774743818778794276119843495472359794315646037760137847727084651723023635022411409485649062034147679621629004892352296568686783256129286814854474447556656213101743723561005160455974419634658752806548950661737156114966174913428189080174908080311876752011608231486559399123877754149996125689344084576863857762065037511588918574918984521162138571576390430377378321405606502414553670057523279696411226413767787649284391283522705505347603932139038769586310524731231664646071993301161882296091482562429647912910217414915050325883641439469191702636203850806983293554062763191851786841087389970762467159747305731223270400255891960680029727031726566347675953095141564196021121261911730089174796574233766125743596229111902298922198764422775637580156060348651673450070955032531872817959619918832308273167474226165886949462017784989351601207365699896068301563193781189941553325498046751607586528216010031433624953075114318651480262399287252136056338202333791445364840373028628397937011637131587534417598825008833764360270715665842707709154811827988125693945277388823799482311122565771348532711620394767727538547262154301327997925796871341372331543290749994189842238576681552314289152309721337288219383354808053734688071010847921212385088994397812320096705679073275784792586742780717966787976743942637220466181446745417394392122622482397273812189929730780273737034179523610292916767254768061831612336197965439856542445980219522746325224556586996758384859528188550062552464735740744589466906359838305355344318699446621472337723569945156546070204368123956946807472581599606674132416345068407824813362287187510755737759299769707972172643347953984322650165193280841537266550935994930222465362127009580498323640686215506923534886897580772002496325445178952734020342447624038485565110964142691958099066627293219516498456576610042033091299229363992651113567510645232934742707165016841732005120865085027910135880369805275575990383505584854748812209025273542807955525021867868572625232958509383016027627909445903404667893560282531131119168418521891063262597604512537198639940382819768333605422518457075193485789040093106037578086347756174686143445636104474553769214811227001904195485187237087313488154338801512359648338784974098076745063158229309742158155161151574535234594387746383563930893950153151081236754279183078282364217606791496460454181802017268351532096299663620002645174088116537862264879032016756635925171241638209497647700044814393479408077262012811765920207886497740941894420681049084994661389461191920101964757579477287976386700515170984202578827923353660777775708580486434990297111572063907577661251644159262990323214037862849808427707636568870737924269220774529187207713299600526727719708803754289586250820217023220421871793254825132977669670880087821953000710054058959000740562673681298914416035918478354936292686959825506330005788706223963355301594376257515269501790784855730933252623567981806765857801995335865193266727616282430862074893159633181923071798944050651407037274391714716254056520807445149053988628784833255913713270697587447307823880892907124921754475247652913777690686612967614866502711354056742087313334864145919943794963431997633996570736902459177429491669836233042867591259564833668153171352217748626858839414964178382332268800460437265136818073712778022921581484402281315858732080596648111364139930368659916106552971636816466622730282739337287981963544010753373156681251546200531997111132825284888596023698416152950995292939824908702876628232888622930306962027086227696917960070102914357861236121195701355391546217270681877874739913518757137699906361546545192335874359424887356099219912626601077692223811500833353412090773101452686818830172246024791952867569573884595394142640528901213419815644609909420556978689094642841546718197895983868246747083729392739117402513850193291635756639524712765675415638415464678526840107713170336458029502690324696304785111546457811806341263147169556620896749219399769496125034340752966757086905450608027896625073908281458640867051902636027312237336701126257469804391937285323526273756763949266819823188568661026889718853568421435051660015704213833226956420448151730139416338952578586553052361030462847610581546333935712393168484330335590463418173244627551240697901904495163094654110944574338951381070998357390429940977720963143746464576520001879262151871099522578901421297333128989272027883168559272203462494351830933854031233090885581404060568136503770423468537618555370948855813176721351046352595991379394763025345979910331331950819745483451830339805255750234536566872289361711916177074476334546105890369529302697849307088338649211036169027648501829702504131054694676932791968597484363527941282373628389901160980547656448841343121907217943992668031454082869334364656944490021080104221560758009935062415570568017946373599292928903826030470932126146183263207074006321569301352769189803713768473009298327485335895037754594823368179741837421691851022482665402386023715173917554871595459686131846604103989402277920267030704130894963001901439122048874264445535187064787281871734572583407560059744066859435759280109811625933386059036745159800425063427572641675075743444712896933847031435374323565064168979490674582791194406300486579138617031018273867845972755129970371554805439354025700552946093225125533032910132122736814865208680011707699017768203747728738796597350973224610383010947491378341385131416843713991852177276626561145314131968327240056942147306927655069282640339624293232898095071043826106399844799822428763122143559132460225793392723019668249621291359672915613379819782815631487710721769117700892051023940789449412899771996303777316191254237372509374416779580843472904786765523964651528973888900235930681055458282661985384372640061493069594816816961952379737855308166974488118763548984095676353010801191262205135053623846465224320274958507264598197431461094259394402205001097929055559591580778802169489813446095166601319888756119847454478461067612505304728600259692498061098439811107054117526532097287004346230236188755685707204884052425184582076130032383068405775108042459775379607965145966581583619647847971287545324634184923111855810261926134924843734052535166523850379151092462051237776228460644924248821987822072203397447210973151811033065115499854010770154979917555240555017145117092968157356061770509338109298102483006257324948934030849670640383105731054005757236864911750697039262726863340945650372979709195373659220248803235377096363059310745311849914817772344199445682100777381834924879556881286654280133208667844108873971694156622471860958551749814664274496161414013070154924226738150092841941643493507782838516545532605085079701913479454775487034031179343581459259470954218055654552276568182208117488062258958817600552674275498583758289169929702152953094125562121575657616363998337024867476161060697295521938607589376276265457054448262094372973219714518113932299122520767549920549404674548838706252117066371023111303792524435073500700683207637222664549115819324331123903702236426900997964811935318425436996341172865889521397453059753791292637171354765875504838152679322595046024086879944518266329902898251865214109147691625360505013965471664530928436275643403513103381183156735301723345340482580332080743218644979413449754146101456948560364003023369278620024411593915321097882192721209590893456728292705103657327641217908892271709993978866642201094793332412248413582330358696581143523330242593636138205703213450142067319283223102787382535434207763694456259206610666227875031320539668901949544219667343899689585187675123613641819088483598325524579078730376706359851962468130327955280597423999930958109247626532935519688014219698709762038881856377386079407909198550039173942488333685740622464294545666037155915008546924191795377218406893339646139158919819613308275311267520905210970316344983455503027947418511760019094249075498979604069785840512185400864662852635954249973445834221118746501675475269318045298953818983582946722147458738751410693424379626827328372284451498573434346314427254225315700045181198376096816895461694555009206369648710116274173859678508342146421856052693174300870587411245395302572048517226941820231605504963794956080544645024819559622176293552959034641055928321173536191972270803848785334344638549650419012666172407659166434128274173390973200278501263873506285882493597979514838381131203110996417623770421386729074595448937258115578987476952625730056794518144146001630006631846890964648825597832115637353178296890151934369548282246852088869833241517515579913536259566617153317657918289403359931953804336599710677742549797769994913592158335601482383737243971640987463014548729546849015000120047227201519919894767632431503344415066042903560927481134335040613983478315370057581303821244898650755189437978852908710044238766639973508784560962954100922041016161891074791926727260323173720754572040023470229800979552739813417159292847048490558959008781362386992298452457703972764262973399569216128345654613016084604495234092248831530627906931843025612283085205049664329550549207434092580827082755554066463916450573664728140890896720927664145484702452287944506525029643644511745781287291813952077035907827835529059845815626983203106533735116365167563873011362875542517136055705441843290865985855372777292893291026761786348718400544541240837753616267207578010457974156639344995508501751095313038937817332664036716477563607228983636406182291701911743332350441453086336527185519765350130807556560135607043346908285434510238630607065248709572764558720422669150805863166529018714668831345875772332529305993136245454177331172317968765375889924492557327826900685661255881447621862196063553438913562063610112833503395266615829429377335921389001108226184576917553376531006084886792767682517805906296490955336804321257125528903917637367977080405284675362939338674591268138393625491106281017702813075425665117974017331863465307026202206880021432051804237649872309465118236354873874379859046842046253595694197471637332004205878321034920560058855529749678670105690281353342516230095568128878001464034663229920341278704123861126450480365575264446502278632631918857161853202207999138796635658053961150770075947331263876947855982509248573442152842565472973078526043862997885832750271088166500898396957740046173765568367843288301222166105299954580153726724783362946598999871916663370265854760272908041896738468888737213508548620121875509648670874394080649043343466634031169101585787007516501303193082397272340122195563736846933485018545181319211693038343675311018171906438404994936014310948431952410797128802778322959239761254444832412361500578654044775661772468576608493322725430880835767319502215061265064298381852091063297606807548382645559218010037413069530072879666957063757278897280129389221963110337417580408496341148526649948110357656869659632476111932141966599111922208983729768218206358610626657743983301431226920531165770900631167555237342682079127424554210958205623576559140453625362646938892061119549758820393220282519769913126477216249462681082929987344679954100303145361305693611043536381920573743511288635013067683436158579438391933819480811274583623565074650284243959779535446556128231686599125393200145232147910701823280713264763947706789586824407738720880713014467270117305137937355718319883104314908479697156515726081365760251676331798897565069709261191903520891514873594417770429941524634033545828579614304993646763771371948723659922208020354715544780366205888472142357782828796122819101914768936314558445322868266965900900201704256526512559965050388999312332029486323427419741980751742064635401945595804937387159548949172968229825719687639340392477615040423937145595220788034028884987053265725953070141884223283688912923301420033981618034623212420456466564680290655461245806152150905052505350149490832609804152688521010967602391225434722705176931258666735398188675064460605195007503207018061944166217938255249688479190106951035807112262644219206113969087046291336794528592522524304466583515395294029455951253151328865077403972066502311166639484325133806764924998974605601177802950631118209615082450340966235011496641349905819126544028851499826010657155956320621118777022790829427745476546024704645443195308144792514802224659616799624032303369094549909307120907746341475128440915797459758152421592497502165229193307877178542917005370320304806412687789292523575941995007675650438144030209021753147671310646604536202895504773885137326767352077471183633933104389417249490669456665583623852803544003929937906666441890580981941845149910435485438536375952018370995035187574206623992565062468799046687955761982245841289890733384342895124249607645376457120317800753325077601234142745970783228966371660704146666800373782177310756562698303963160823687920114977697779744860739189684570211094306714000271165392612247535072723262053377177908293226033869074569159903729301756921129886774521339084345570279656516084365436607499109132957088663054980440539237900649526172016274011684431576652130413961257008381353392618320444913050687807525665566958154010660911881138587768214828972066018122786478148863189528815109407095820325792296038251302059631534555797965710789708291640929611073788516862639912684868974026765097862070016996774940394736154905802771713675688756552075165695318573002019754245851772268759547733389360329044071557035087518607513383691601042127970499789401561347840168589113744585799624699033912794839550760419787108645114470856971565999629806052747922566745656608508274244428799057296712456270867825572994308035424872829168135948133942799505302579643341730696733302935443531269697448577616959997875112514573868599454341941850637888159488143574945508285530559939148684725191782189377065283995615456346670563673104604351781497627407818203775991430079639114683216738371519406186776605531692400688599730536410196859649648846951249361941919391983586867006887616087870640216224896404272446407000511609364537094722446937837632157165682133760444934790417587978890798304998970313340042747417562861488094333345647674207435452575350229778358831272399731940530493568204436808366037399907846150960017592417126423562669190637084819349091361760851719421423072189092367958401153018920910768637206104293288051328813740677347600202838631203452784913726406669318023402515396694728119817583416061034808243673110945211289657251983715031605999755911561923637136513765734505981062060418612323046141868729433421212249721547101390729749541693403106306711335469561852705709471286009142761042299722051307928238828839729489312413381248354926762184108965871469863368587928081978423764437055917032058579102282762090382996032338182087700305757154888055044463268673522381557995134389161333468980618750695425525990189525026378692251197437148382507542072567460839739386802107051033396728210207235483647054550018686643988173573812679931516438790053882449977668675199512668968953853276017597521398213407161752578084236739519563517548754304447148668807471432180992086882494176625832466149562287290738885316676578673519178117099686827357841972100542929450017960286029092252297971771539220663662943254418531046828127349713472741844849210406402996279439410032744093196037819539322644839901082103295271407704050516468553625759120483989859160345030337944252385251921159601435148807785198381423598572281735328604842767122458807914316010336482210192107011215814044410897773801127119433965833580309891073537331746423198323505472897783369642611664367444433991712077183302431232880781460724244749836480801045693393654033065239209608245882867431800713896591236080894327852473684522142156161063216199087081705207885970927126599720085691121724167248501718309680450748105880635522426424071514052388715600235696963437274906995021043209672831311681979666270941982047426170451958927736322734713893125823352870707974933266303267466424238511796484949937778595672564557308155228519695746592450689560688484690643734019806779214839796349451801855669915058625100527049235350324198563813820598395706899353892169877962529422741045334740722244451076262893682829247264807987956374684602631587194305279072156540264926694141703622337389303006471944600502654882886691273829352813208526085004577106347507678084489339090081316394787514436181685018451275643083108903914959390022020854106963844044311297144579467448524574865074009317237002318132382887542026006197064895057294273361567075492372752365546120059638187082626631008202822291879321497024730576492109088749874642495039642684014201121856714384420708926092009569539480936797055961978336368134198174272082619558665833896526634646452387698892194420798980309914004833706623581952539979513542465343876568676741414010025437343883081199908324624313681274238830939605515172718103613906997810404322287946441839351833761049976733457086116397333951441239634501039777066441083771189306589084127650686231006056241054539739651358297932499660871731975966776407897334343080926385407698042789341321562265140535128847498711008889623011293631956522874088409307426456735666011436433546750212508578868682726742717240572163106818549575648694245608825396335164748020716566622503731788326366136051014605912295901071207528441675364973466569716998618933325507013758131211935280284964667393805562184899008950040312965055225233278352793189905987882285957665932458574507485642392323833106373628464441164160749331057736668617009425765392224958588790140205508883873083685822710174545173550491503723149927268448025390610437505712181325042028277185636279136273226764818145190750324058558122788084624589048446467904729064177466906943799018645679293664608971263229161646425968482373676550160119043310935921208933219870350908850785518516256122647718070725825572451074446951812998115071631881843877613794876630028427106985567285594207396901304642784031319248465817545703898838808148021741678690718136244915546195298284569435832353183382198499383845126685142015739675189766825434256958712122086679843492600736924002744489118421991180829429951297300658913545201326437558812570218621473220257057236675246866498462892983646053002057757129364195915726085931359064781641264532761590073131078325270700519683790228769212064855647343860699727006655897347379233584620840613926798372426956570604485399658627337966071958431302281865437875179419097839615623697684374821687116407444945659768311600717436547113045184448320378918734563224859402386803217374742219099394223485260108846370633701801708150132491345383616437646566328093228867680538558431714821962721367641367123309364296389513285129926744129969152710063520477252080904009849683705014929587599156502755727359118872140964216556883526766308737839791499236460091230785376118297858537492372442368983161959866921947126433534329240519423391137246726965708113908891058547355852981691388637681469891717811933454660045094914400914631332443040088489632448265911394027081653071212361488995089915697120215181799422316920436252876666654904328557353651326928461178777587051556119066046601187962124673636571933764718656574219329177378880344185181782900995950752485786949177809637007931759271821825264824322764358666741465738363655103098115140405091809382911859251839163608522789816229354518420855215397160355279397741534342957861311337063801682469265967083164111542994709040187068535730642688859604177597782637889498960984197273201404053678192599663763971572872621945842102882176394198407840229058113298331928650196721585921121273035629982353062063639661574884987003706565155353191987317157901576709650807388916395215095628540256752020117721299775673971221516771373632178973855196721628949617178564916608698851895914071345349449336356157418065624439014904147138654717925344423724147395506934346837898756159969630498574109315155625597039224246355163909962336114754466682285033119133024653071630089455077946553576694099285460875723170777305680315692529252126424835022421525337607632687693190719908215329759847663796310515515768037774020824514897530136189474166076473246816272721921729440141120408752301456634689809148340283506860348905295128941168094669128805582911449714269324561049771695141276244647905980110536942279827144220023601202467912493708122810125326057978117699863117835556187029024397723007253868031427838734030610977079604240038634490762742643969431719305670398299346675615399522310672952557654175058813966029147190415604602068564299385194560222025010571831940127148617865561284079828410727171135074995428284379804997017468909692700885350067396998696893565808688355581720977149322809533164878337658258661042864649104604986839528531332476704981965908216384360480253763253034093343309846420172252273561236800278961893242860686409141628456680919010624883350635120609751125536486834094973676374655251823779612232824484409162883367582089972173541482592892406279645703975021620930035846257416447605219434414690133445090019710796469865792769567501144328896372027577605116473652507555920799089231611458549773457142568660750656125302173646871410779836092731242993929357208220088843043415308596861778993244180883830029567909364783706722918555920136227742010745200323009362575357759918206299146162195293753504160482011216523791387804345831334762829388683860369723399640915664868105706637566978196098039225697952777978381569794886419632200943516931609393096074586957004247969392983959192949878183514096331751607293482308981138760028400224224557737404892277674022773388484353256201344048357933140584077472472190360929463695084503887408363310757786162548251903871830954189710985001066208048801650839630253558407332966369725336719071439953117532968899667573974638993401476089369043411286113768652285146036286579341169997169650676491925009832998344630704662987936386552740912379597530119858159334566463463555306074452280003026085665187932813975601778582009647243415137465101873743664110878269908646773391514084532993818472402854765246805208468275569676745142053155881583566134482604945176167838433557500215260364651134706044726481756282287972994488012576766644948992566912361613270238040700821495260883773737422902391205130132385800760308211691310394351943273791761982775650784966632631183184690338614773965305709778162434430988976267317604792443752719337294966189870296526750126285738701069941110916051585954226111270276805641102160910463316590792781524273666884123166420100071174953517767698107923287431020797830578489304141507676444780953275667422880856377788891183164839708533132158100864416833909502029370033163715297476382222811263435966480316982108281315980786995625874800419470489071265188103025574594079893727439115762262474141573926710230439682038646343083981438964708607103360475034501797307336400659952669705681575203168977936630754754255251517376402325437215153709946604793676888335677742365533503057408621754272527116779554564364942552369193113219525065845471272908224997579077350015801614579450419809757724344952024698364225085193927503804481286953772310314601028181265642290527207807557891494920774778695036294118142245129734383687039113791461241436982469180632184062493070659498555766293066790227427934171182785879613661420206918653166125014899452366171161126474634874081517472684015302535621135779545922890331791822412789807841294598012573604638266280775741445655602444559056404471300643998217536376676210569214531096493855992426853366818595810784162024274940852844209903875646727555427962847576277269036470042284849941803744046337858477573432907442024415921306236578643334079195436807636991836871337164692669933232134461657737294636448862447593119579062769541225966028433544796183403311136113221968403131671912052458708426695689064424019818905058822641841172680260078243671154527117752196114445530193094440531522007182616886962812521506606304059078713514457091441541440192718145815530509694589529304713052095038982982714407309065455195014589477697146236126339294152109573713555354573047029069041024035245461173450767338182990065768023556606524192777939572758336766555984172935592014941783205451142054797980011246093132804731872157478714792822982392206046710971205067451972116789001347874275369217345155679244713204173695886215485248196690387158115105911116049062953234828956123933916452502206147081502214798605969318621787033739814950222202647231095581868181353013370835625131922948609933088072839034900112695703486527514463882324247430123877245089521096948087807801483196314412282489386361889443127522589912764800951077231647636153246407654230724758878089027157766205676294205336192198958935284482867920615917154972340329781375449999175426510077182550256466237731799511746865078589079640156505353730726427933615239915958626538347079925271792877848405054985527023642881204474716392055330188892848224117866442052235145648508287489921102663606138732457012828885844243348548042799482719161972123647589927540781099914050844669853069918352749025626981264348893109017876492446190667078184133503262636731275744158413346927211542606144772835525081344226899075487220909624629274065784281365515777771150133964973079662865861916868567982726155665551820432662670749272737925684576538552672595881930700547372327882058170432345874393270851135648804260232238009522495633544690860759445687120689122212539433890480746724529635939659594146698827113740525574449705781393142511067402713510936807955436224071025022350878412727410686655072345352946875167858388543919073821622082913684825268809555454049638201009027223940242888305888181574578679212731215609934464579912095534759522952625276937985440502122841068123569558426763831412032655187539083014545434219023652585671745499019332179501174434249336723830490965100438846574408396275619578082412194030337357138641562568891494052340302066369214077507298705126989864502361153322975692587673813891106764425868128848658725152087064301619355427259117211950132180122945355470466256901344672063339029444713335570725210760269116355652817900553169332072258027286168922227398461979469373639074562576512203440574165459860423386539438109284588280694011946445328321355246152852444288831362026408126472531796343167229000423906716171297413047783954608375606317263416489998726212189616327167331225970560388021105677939964572682132132838592647085006180139732779840817887304788328875454758989846043809590426550186116228818672425540881642452736518465235205694821940116869670630485532436850726910792081382988581466442602432244544882907471546671481107365387028870784456876962170191649665618975184480812011187464853756011403586212256474974951061792200799320195525718193382816775333181372468228217033374876333763253707061809089084681996486854735750873129809971889380352013701858746150835549207857544756576203058368487542557681451228819779153693463184874040173105649414960367002098048006260043137990873335892908904217857014974173300963264734531978668825599355275765233024680032915233831341117354822777240234265348290532584745704729295660625455944769072159694537855972320177325567941173229003630977155711915988336157041840188314873586867546873377905158577773712781144716879723930686671382796311716285123042390687242020528010497750507435865284620942503293636733530310953544153262245443169255861205555824120730723562546745086727467748019364068811683562161783477768778272468134359305660175004261372940769463395930755757149109924751788174544075887743146550775723097745055481063021613479784323327259313809321864087366144265580411767924734863596231714774424089904150167057897757563874512127703080382464881257087436310706822277926352474470237621354857861074256733281911988090277521299452785202579455373690979855153406885623349515836559322919859593993878643152927463421210923092109107966686147172494602788435499537173420025399632179614942114676883361651977936636509068170371743525210068227375268580069612100488109923970812123452358999825613910395385198283591923493790269116146772527822268935218026792191268656125134418010468466999484812436617563282290516771528183599455181735130132244653161458840890134314638536413631242033044498450759331366637910679117281001902550882358041062721525999083406263832655440549108050577714350921797644592296395912314845089349494097051782092500519373085558445997504282970084231792178135773218335519707177895684460401515016593781697826963320074977245494664393621200584267254704070991007088851569603277945920741610573125247436914985139916655499330043174056100398601389690339049024643740796103621897701749200241855851515622430972755396715872974748429971789564665015839539327275752748223682713436738639623471454871017272299637798626293347434023647695141100996471255926449370619234755835559693600254764670530913562467157616003377731459219597168422955292549389268642710266545533465880753794999391869691712039390812098881553467777853876701695723644487528777898899790585735415906260876439427589462930109515996470524745303166409132371882285299846681734740899791334284486886777042550031702164390862741928974830487386619778251899044381016305011125653123993690770843772526546631283540995537012775550501215427579746530422264111093343979208002419925979762322757156211313115469559135198623595016208490857136035509725593984818718659378542646529016031872969000173650678461837927503657726970055046979366688828794933491436126392681508426820234543933646344483948803868886845843262717924084730176301474880085108594445914198791249530318534286553391678570450575016989940909669407594067285843895716906292373001404610192854155972539064561489407016828248871470645648843765998861853686609597762635643778777292993345941019124520753400009713557142856898709884151772669115520280051070324612791674151667527355289493957120712907103388415320432034360673436419679710657287826841416064768052577806706170955629745132642354512506512494934782125352683307751096709387603749523170305717396507664707384087309861185938201828979513196586746577849030463753542577202256546380892730100999168174886069029343315241271155052363741419890328436208628885107682920983361121648062185890021551928941801301887767431336442765363284907867892916106265752462755529933289237098409063426102344489655617177227068280959114197091913242282030226036202768155329981071965361663380783389046993950160970206790025692503692709090039760372519945975970047220329599691071446943142799778846147030161394028578085297925237418388331994431306569400003603522393488043748989249199539431563077672371118517623137790816033032853333541023861583716612404418483948296817047956195772410067282457531586557018502094836359119174097336515339168646931540960536659118642552744296321983037397954412118393024075874048846328982689881290210812932529669115928362218171128574950601476851174051475869731236407359193720740270226104674913523011085571599349001211116118514074519747832914271090232023839589364058427710562828602916511974476803391219880091496147188128786284543292257565849095302067110385414775335796340965680929317928603349544878216962354853639695892960428286947467797344359921101183817689530615108715136172636739255849525044980009641051211427240000225586127007742723812144800334965055864117520298958493558390530123141387815020253523040006616728041427054748917298888960296667337284420246380956134782381171716900671365576943815838526188514160836075802170533207440755869860022013184769691323149468892551021707926843498113239066505223429179270651870598323711848076398447234349818562451069381471901089683121366977267983359082349849068724673484745963088446466948345511350636296407187614212474850282685492719717405016915375623816411298771034898379028933326945367107513050283769830536709525370136791943372563957616403038049878030284892910425928587625880714149003339254911362585749531137768504301682690600126846943130509018751726886838103781457861829905488050430225299814851487961689647771925304322624435064348432922530337522535737110956050268940659399920040233311958184991390511649318701413466933683514106894976092234826822694707964456565433765461799121771097047568502443013015080260050988657262601340900913973377686226300973482182346721134867465323688643147835705375115698201834188332121270581453808278382204889863577578452551742899967416227867884283410480638315344444693720860375454532512452586909461436913947776931853156376363320337939377985737826884854815798932373455379731438090390062578384575580250839614856973585839915945193878719474833030302706601592165864191059045049141941673389215182249639617415541086319873920400706726527578066695626450111292981574740638973632206966493998022785227170097625234768243106185994505327622298099285274403992871123334231339000176392772854570366391689765223304549120316302696915256276805114692781098195234142606390067236164987701792457351083023758076133721222436872023905980533953951265751108968449981866472648862796968000180883409811176990125955355179037392532005435482600933455245462038005194723939029914525622190962198673049711011117499035021822355011468801280459944796563463582266107156171375830317357759989311877032704928041181043326175137064059952609930047901473019316334043546951565874776047650813304209822741501647844953897363591745061627843501375844167570742777298170059415544891696942423982992450375380678450317410705690263361853690818288508951422059650572181770063297578369360683425982659696470040847703084349933544111437931509623652424176354090556350377362784301064333128908733886667732935609435980554196368914200221611747632566685253788292631601466568106874798007598517033940943182797717701301490021367391770978019626999937571634248308834455116206773263725554168483107386571537365287541176097403281031163130602498119399320243421730760452301921568077505310957801464428909209881847160103990304044706798000378533409109751256464774723567209002409371825142606883438270883225827926189154255960308036869351995090757665040026951868259381514915272523888035051375815663435379123452316775273867836939942185804220343427237434027433935314759277511383845007814729766346744924425020092318258743919381504491164862279261139277289206453422161528249737012109516917880916912650764016189188641318336634861857996979721394132680669193113601761865590306074520279571822566571897672757392323704355816317892064094878708062496526722010148841549339813006798785093112572114530924480299344850481059110660117627102989457363856464150012716947691633569699960773135361645877259144901862252770917551286548171479649605917182328231778709823338517482040807927835741738321071784415540876339394881234822458722900438194825661515126851460293245399574343684594505863329419296575336407835571015509010684805689927482227552965038543028824273908749394833693860041123603917076071776401655298616394211819301475771498619547972716547396525693315460495627686876189669243577045311447763659620427534939289144681968419610038160422218826148763030023561792633125670116911368718468193142387918941127772156004657381293547530363282661838491534061450034505841652362352132382835061115198540860708587339661990030464249353792021416364657401491551845554873974030116305779107291450480360547051594392353196862777112240571323080598603292236316732304866633639179636265136249421611122440139026736644770019303481067242822346029086114369939629870297289413464837949787491953474027548576395021172948290659940234432011354490962751860115329100174334034499660848247207990110151741277160481007262257607854309906925898483245263891722124272249120872939070042595661101411589337517805587266845497323517658407455864112002073663468666704192356746175478179393718836294284531845377951416844422867785805090005415894442372859546357102067973547186844798558309177569004629964106854978126614781828697750055012138654092608851715601195935232934836898097018683424958629653550759757506704109352555002780923425028730900724454436407759930242786278170130271383354852820541379145272609590417553131133918083366599165025538689379669322199102703094651711463410403118949002768100072645274673003581220917766726552917180818187181517393435515715529444656949098393698003830322956723765057696067046643602321800731598415059215235686679726693525586863999528844492852588997023679568384744052319042841180898510360014950616450077019046736833548765833062699088481945453858757773530168143801657732262058575235663556868755540520059945182609084514149708776750887887628874865465425343173486165340440104850147110780957814944446018053599372801584608865101347205650337854833645488836824693148188786739373136019681836197497513198019631457294943551518376506123432520320364108893028058800839832714965839121016329916066122218710017987793164338910068910200815724273876024878605257483308902284391587228858860234069996384725724253094652083936168938004218863433760397875248663609565449293702946603958166127681333556805368591928294299060093316696856489938083500905528151888919105478562109556590264545191572358331448704759878348456124632804293800319379012034120441639148784540202306368284316662007730534600233907224456963278987195793461535603050891723901398728249351458831670402802190739185084933935983623920379937410952322579712529529583552114406080470402131854601731018718281376762918846499488184073569894061631472326179531384552206058925939618882963530213351978395470983915340109428316122694951262921447388192778116916721283551229451212567816974874915719664085025033394766581896793756845170260119292015028355884524772918481536568447580213633514538956385906868031907079112160760636774305151897429832398708957594452388299986941592631432794492390617077463100307700008444216600264523822910069534792679361727169607242257254690304293736356790674019001687831760651790134746186571058709622942467749687545083149226436684245566736182675285252105040862704457877957467079376806844405754179792473339769410450396324230384810928790754608124254353441293423433698705431666619946876421788965941745571447915813372347985468640785889682880210831531539059657253701990554045484001635735264150498492383248872798748644411952118124977490462635585699802526104923027176033660191239514188242138736650389322074569879802102599246328177776761689970598629015268835938575225447659291277403901516807938303707000507016177015145246991100086426025387865410182827335776001943116974685671029990286223634715273066427699087396974100133150679771951093458058226370113349392486505555121346771590094726751956339809892309666206339548325871728200472965681408714501397776438470498392194193439363908468811109088661934445688674945898589543934820970112165169935157611539539388135036956006452591019450804387893415490759920163801782682811226551595906177573063989046579331855417296786468867170358572216394158613976933286564088921035013223821203017364903517812462513755313944737823636305128660258554089361116762580591819859068954981780190214769090226784665510227822901350374095358899279642767191658923801890303136258226591945032814845398968699076163735922041153741161601514911515775397576324772128356881371943192415106030882853645614583044600945925779709251506567789587474183526788065771947378348423403060246210392379930632988997992328501697996796428147620892425372575529362741094692461746886546125481973110075549716669228447726611519293987511347509534680575406313655348377797294028533915620631220721773233272321789741237563477760982525586925895926914332389463759958946071393778157759875787851190578164161053767908527168698507175214442147645926806478005682790565154625639043242606758051864380213437594466508560514663321971569493401393131044598229775689139172374953146561249227639399189177447528131051130953748910832546844597876718503121317251813425375463722835367301018516947064933585078517059976895360856538957760741840986082600640218997927143012823484116152783119876554293757689113705932803240104578799180138802574791456746997486671989138513261823396793546824090765610434866057073849967251689789361033987020107226325991096113796466083245508991369181529257039259480267189108970202375462251809527241024173400574994162399393087577900388790063806106100857861571706779130511528366867107248148935307989592044684129362224698612663521967199028349241611084113857348364943782581672919468266056105719505933365554211177793048019077592414468263817157336472233274739648229784122468232247007917687571487575811863946758475281422232816223889844258261505707235046077597330220997625142032176660933171027936412856365492445563401142609886974429992006257696587232692234195775232125308988618895408271930556983838785659438980246542698952114532349611841547962717101229146854186721243750416480964604685190707782803592453275772242643249366746042806179345463952057921453349799894415005463059775243273930777899723557975880431937880767503193558254167820976845326502099619508296373837951957978928301524946073271088202197401987306479074315163051789656710561194432966898380984962694385482950962904635534079846540591041285262071890197474065646256513005954662168875049359825458554396223168721211406368753723135048402466256136625935755607660153196417532179035987556861541543481442347507192358962217092131523021601870971220782285405071267910082363336110751044538190756707186859533636228254957393636805369349120471075891954990233299963184989996445753030651257972977056601599124238470416847397779803481432731228266327954216245427236453648287025033727230489474994577304214040721345949357447312155256599450224628349359141084629010633877153650329426425141069017327927483559064205690926852535898884876131849163575510174844904920262195435936563646949386878303873827914980762589334927801377201251956392312783255832592420194576587003206395023096474134744098222777694058332306821107046165278891616761586616798723393672673860279399163994645534243949760775006085835073615389748408024397159058904824500759774521062703472520664185440510358154029897177794462022162111817216658535234813372804727842426254374498228927155735687398314200532118100636847651998717115905205469541030568882687918596230307647517130191570250084366401145856738977683442411870187457653609041948897556086767559546875310350644291504903286429153333530017767147855384569755122093073821888498910068436446449849890916393301779337901461987429687699829699940405626070796678511217987857065495939196390012842873483410366833783512699455466937168915483874519415960918186310556433124579187428494030146424485281891741102012417209701203276194876077686813822514134732208689506036666511930708896001894884795107996229045315156533197111475271448692229128876409476759422121476185829533896695651704972867133649297776798853960568717679585811933532938653670197063089770082663776410587965975627307288714222711857253867592067451748401232852098294192150077597225639237593175727149254942165212280710149071506849207625836138341113548772846666192659675033375278546927658110355104567701460385207396720023860544547621883586299068011120135495190030325801827916082950065058352684126984135703638054999774954354205406291851746697303303036827320075804485817892377160047458155577042014139885034812890089164347875688563400122349173944180389719371318746560433918026503690665988726015070640947590472549526411897154590738074524873950298695222727850279839737527709337515498635034518186175312940615136401152563383210616894971432019813081446457849717995901207112175387393070639640452089576133060290587740290208632706612810831983407955841124569664308552190690649212667451884807370977183121777903224902393208306434490971546244203978697877899112628353700536358378207462675026133202578293208879001157085140807112164356427587232286397520158846974542229297478755191349041030777202896788648655518835034243687041792140525725494814850383681319294277337914846703245080972537288817966897304456721752559213366385419646897724364823933707812057740218676153041473352732910491365475900918923526051545076115204742525674403082420032729197723866806775441345918540691974057232042021618546486078333322807122091673256865562981377372194527283824894497193920712404091929777901584127729098288090319922785215074448927012661032703659471914374930362500589623885506323033428417687265661288473096310830915687780866226592031593403054620851889095784544356368160182429983703084762167365447079000592188975483107960918963925502879728547538784257957601161502274351951490952480732046565946307511184505855532081585034510048454559082604646622449397266588361550964917759880059773709644199351755077444160509209854441063443765898426172296457852061910189381374014920664281715640021196601369442130986830459880353674987027025705834162879026169380328874441715291715216695442466973193364617596829874817694017107364295868289648145044995362427326499425391803171122358252111892451701999185844140833425169891831131476369979252586433646328196734708493691644858363957936835167710798002234279155152264126404178641339678774603801279594480897263181139429153718039641710965337167376018752264317136508758582238800399521230963711349345179762219974302202243231453550114992991733998496244731148962327785890929041648156163998015310685240399839494110324443831251152823096799307463880220085601248292216544528793871703255094267574132763780317859369974301019594249271405516542403839162325181736741456105210845531526219351045700509305418711552419612957306203078486663720098336734382630250428854345840394400096007347868572017762494948622096175136290966795394615445736364154930560504967991493163733277088701313425312739952320801089645279481353070150576998835674169775435961554061458924518433182821940353519556619521179177438169496839778194638992003738219305669509643428110026099556474878968104827556062176493374385157388056363563462338052545647786492792756886017940897859805933152574222779249641724655910996648829074580610682701471785804904603871094864997392349719123532086138445246702777394132399421576222377327436908552305942018042013919799659658962805805904353082451138299941280295975237045849532853956062853847207393950405380147297854781557079607176131719419849244510534935293237593241669936024742979304950680410763691944457598812589883277056012350936519437548025861612918812140069617420375137324746754567858981877449135365315282318689102807878032656927203548841501392028478698522623227416318855826678044380101474832719901011349376584525886284755568348759390047960682033551055873798829851400931285187129021945102702150331308118674553051583984711052528653972104972429143349016249667162126241589423147980558289872378944212862197277337598280873028981961368616653910993180367847065045077471679679071887278467826836922510864564900148075552476598255068303010418504586262790316313235757038168302538612626005428923778373305594867417907524792074242102323196740520288948152176257721684571462406548522649182311896774707465977213703627556008855103479351833598251433810003109029662212831575106606649075608226746195491514833920005899206867788910232288510366890936289609404419550784347020929203476018308117456443368311123416208815195173295266729895180158557547966494246379681375451559937967080179642402108339226514368333057773786574026879411354133460104759463912795308127961897616564698908020414119405135291901543003877137341710863655465895460818086574845096209982573193924774911898327735943942396249805279143495398105112558183738917490892106343792030244336746939730972424330753807052769011488896285535546353641261953767912977340955841060395003355672489468755528994763850930174354907527881117349232795779714527514401513305796552506242400720872933869457830252815899824334363120425686852075426900822107954849330073558601104317606693875217263884717188399497519370272890247884303545526696139819984897553929973123380510296784962165238203492012962666081388208538768283475771608844995507747747345919804701366142042397375912734000508070829034452029578783351044300612410837112030420604529884570667207567474356983348935263716566680971902375687132965618122041973723611241217141181840902250621682053975432457740604281318132767043501643153747121984955362657386934698405203076041075986380798329511556187759607869367931928708486906359653715485630348488131023319323791438299497435812987038675625136762627580950066273631283983274455306251004825564954360972892751662538282221644504471176295613589093545494649402122939051316917353780102113848937785157990623433080736784869277065091632141116526057667802132017717005207919096190732254259106083615357246156721619684572563933903510485528352229725809591144207487900947830018191291089955550052351126413947233257359537608731139718347869505511509978706144307734742277525635707341575429980968961811581986704627981389905117721489619977312929065214536699482915216972166490481048276744579497138702557293069086293985532259784240512791758343329209533548363101323789815487069198902452695765413587659189092009959340431021388067852891778582521600995147829460673681049330883434791646887410131531406143967931571443189473916620136855329761263818836780233157357733143414261490163085249439961351256765249869158741092677988690734339423632891875083867299644500970262081727916255171776228177271369144622219565067394027658120643256141393468035389716659839477499697524882165862559807866484614824717163718616979716983281352709878201478910686484127504377332611389566549044324800954024312674588532727185914593217332716438006981038208335854937173087055483087071972655770941856239423710791923321163653441351377339111805576808230058932870473610168570709250348450986221412110422532969783084629298954984116251956932245889099063854839471412543277591198537153013304396655526947747670784856348998006393024140713978491549778233659467987780625152797302903751198179565283165768209666502268187448829930797818903955886825307056514574203565993623641741170047792500786113347849836428483374276813788303232415576638685153198930632493892126976163470054817934609777767066351107562150851678860504445756028501733256773788815665172158273034534923892187104100913920273854406238232635286750037521874436773680261184567669894734575374453046265813895964341716291240305580164705105162561318243189732186456563778306894294743115438617056443204018546634495775907335850440291172007616358940583496073171272805834924916895691960797593678568703011238609015194558509324701329654878725239971814305358733335572804207706107856070480494494533164737837150321703303712073471415025754859128705474476013046260360890977364980078881572857608965622379403508821910370317948630861606269679400228585723241641829441558955600985995874039098773006943809164499325198974957832248188616458890696859276507295214525793002745649566008069899017020597306276320770224771607794693185020615232067957113619611148932794087285725131409282225130591728453167846384987700706239323386441758135213021780985338388498881812115401700748537722044338582252109373132063107222728645713969994045158660764491178974896082390580289092762053887321198341560240038153717121892311135924728679007910928374956515169060279885920248348680666551566666937508220272547860516666134779064926731898714895424321606711509190621941300767168622969469918064941868045220946099255625013628396495234571165550622867202927173449656218550577680560201289060886766267756429457904392245313342722372706788958335231365136224111087817028742100043001141684038646572933914573454063987025803309685299323021998212708548957550761724718081722606085534772825866474896878350625370986973876792233933178484008998667963341250613659383824986374255570932887365728031772277314069399745496277199586099084193533692121920235550362884768563438449704678585101189248882851491668351000390116482000156681420789096716639691293999687162838633128765719927216554681927764052001710049299652040703534914040304130368274703336448088419835377275483552413385721261293777955332704357269277551787617247440896036953388155981500539634720244314690852752642164306252214563046101264040903286584018752553455168841745483856186914979781386076365722658601406871814065510051646704913529367815806974990458012558396759146535584842466178623025935571006278000810016806476123489993288674771242751450993072225247933508324339554029234888622669434823765031846240601425999225361890519714539621613371266258440047397179052059403091286701148688979362913665267586224629299593933123844555157780794748986554635203978356073987782554762426438328971814222326221719906914933846292117826275745740955999270981739263509377386501399486037612954671555024659047772754628982646252074463947777132296168813135384609795417684253477901873099228346960376368560182407528435084451407759581821567220477671493817784894814125416323992711029538669473016586058019516856843907941283645508651218120213775301565722349974337253010658324068352761045910704277413359895147702818802585260963138628797295080343437900206707890785074283618509982007443692903226886229204067606846090614211095829018148242772084015435551761451593144224095417573879235507580549683034879079596163870812168832454363931686347888855385682465279261094451810649977935136158596122428992848219470804875370402160206769783196221468529517409110423109776119548585929919178593663067225516507108640810951754781812323949001778587479870023398717942050980938711003261813939032616205449119837927774895325363585120312694364486117398085207422068597418835243017236688680101970731926461652577086493000980302247438351710920036966232813427901089050831823874074641249524349306568102656151681840151243618248884590162332593486455296483314609811151881007772072132370154217154375331586621828504437948342638398721519032545193888227676505883681671865155921571696712036003514129069084348161539375219503934308265328786810589671468556016436490908983283640118581386655346963417168805558514131035353821326553067935544969383323059227111006704869747804327623807360163301757057464334764064763718652097823546252702537059675349740796723072632280695906974078051375473967239001459961080208174361102645788699919424637779770842497932019513206975566501265695149278475144399726190021777602353701189299833318029105920052623277071998368235105468336336962678024594402802709874066236761206318534452781573287139782717695679331735935527306395693475782931122759719317399812316404677442536460490826723172423669034595303638247109384640862921076092994211416892052094237643303499266776958696734048141104190251349319785364755274406742752656236112813851734691401626301311270805619471955096661585843199672440289042573665159482719942685803319591845049211675163444682983186402324597756982811173034050826550178212686847390097807678575318959004995471667603897198658066080240892115402456529672255915427050418630771392548109056208610063471354894335387582068688984852544398432763450727738223568314177805892154193119704815983675247479725333150108983959638203363282580342794430001403564222744095730944352035337790159292988223078168715105465066104650598075216108288380433118850081063717923972960135227158763589438744201400790071911545533625068925254080847919515307323171866149407417346509847997311586722621446191161344921092576166998973706214595517959098970422563698092021412798015534332014972886670131559991627368641722886234645440551955499642679039522257293256622776685831810200838660601554209915208284520946844573331402665455325587135741779561273903484780869228361111731271173975203274097105052955888836272982911607190407000370187728573791666557853845777636963516789778266130930535739827084464484194473454218314399923989413498350410118262393492632966616858064145891533325525737331403690376018866666271664936617689580736343535345085380706532678334755846711565921993147502919578953963863938246504602299774187243687264043570734050711381264267165287692433154669405433944540753087131522532555886523136339938088262514905687580937706039785308786258560967029505099871526504554703814473287871295274081832463064302106081669813720367993591696043571756801142496815134818090557928794475687259645530670041779788134503121703692270559845492479045508906906729261270121259821155460063237676345736185595100542517700104290747696055308858463981192923363109728115144841100250198077745893477220356231205404997298563195316787356102741280843995830509248896682935260400897513745859592297635679519403167449305032410255193177233228573121725904883512547493891090646382036749387693434256299802524861265789598909052467214000831454434353255325496918249195426176929671877154907469584336968143688781373307754387863866938892233709893642781354082303095948898520570507775350675086260364538316387306843702370297139440832182436663289624583652744377410435503108893460489475907079500816853934854935104224208902607503229805065359141737577218403760781777747138178864074585551188260186236630972302314641338116926517704924371947781288577457885571536239887163283058027607280168674589752402262603639891445529500172800368616543203391414333687823986299901529700412561733261095174784127346053879680637878899697095367973075641066797505268138110435879082001855489529431639642421463715584857087536232461615307600315847389664660354831823079496477460618344811305199208983091020349453840193055300979719331280886738125923171499481813920543739607479003836613731431543050913970445203564827090742724478048051283691593289308138340309680660551143847161842659860552939518468871183080958766662322944799981904376766954201293148077466353248163124922907832016211941770370971259410763348254493207505398460788502845287580187494918560408162056892087873026726436359804703864094405649301836094132800108809249007151363143201858225656547297381123403916938472028689164983201749097302979471986388652800071194732189710509851942755058155655223578259435633299586491954154230264449993567417747893282061737260292042522784980917308062429499729156839469290358595780582071344806080903395781987532467804688570056331812046260286031618112450773754421178493685318410133701140584334436297003041849486483524985434620970010513264152520123511841558818182400109304389297463278061915892327360422471557765309948906601087362405240817696607901314383759049889148441494676771371653085568079113933647806685546518155899334505757798183449364340307525199853208019030639664056299295727869951718750901873620264482600498611797343393961609664724129387239497430312137687130166037509009608161067511235375714313473404591575207411435017027336420422200204907716093288426915473976334093156405265981394672871937696553163241664651918323301937864783113567264640006673373416439432967745063707326738232305336650778014636044834673956594870351971185948703595908526821880473946787696072570323404816689759519379083395046014375412032469345093101302323866047125344383117128329450921420349463344869648196753829779847197537329774549075931934950538637824846416253169688115972810848386793724344196429527347300852727732550257767187433200774405207082970601776607205298178613711245537836537120967450339511491507598909000842976471197087502461877177041543615952557505546132713685204138535551093844325169972652357878047020218546373194192928052598785678105788521195839468869261668404445686649152122718149181554446221953895016057606267549005068596463103137769456464217965015852021774117903010273630255395892098237542327644549544269451461449700537849166599670653831218508057433302568975207182986284723278333101454153846875130664422600273948823030075213525327412910610365334605760033204948914566072550655458019059236523563965756468267131450243760257166806779171023609211893049951488846710472946091169319144291946626416727258715231618149233721330641873421128896125269397334258654443520529450169774137824416008481062211756992339232717479786149160080712934278865341441988957872627320081033416254694819894440334156833376705550885369796991495571887130264709998915930360935923619846062848933644349557809843558544339288573338095195150611928474986226125043399852352827287685905584820538171242990204861370047836303786733180870881905082686317360287220502348022835890154339415377098904445280923751563680540980053292128206867480027914075104172300905739282740795185211117495246885894603729120679229922027741681354905176802901732383135598984235456175053826994231680480013419458581651323916553957865640318034648045644397227021989080326759539401461194097445381266533722029541866677318517553894925728905684532243675657760237528970709918859828666621838017975292691458134222942964510937146361191191769312625767002991071167493176632012129682398455294141350597376647612080481860127796615083323958423803345785790565367624146577389171834293541192186647761732645514223070812526470784326960026567857575113823475781821533304522750720538941265998882379264422331696097810913096105773826693429775001153871825275256112123624514149885526600165102841492105915682310292977488030916489956137218049832412003797144952611060127807103809178134498313769854704253161967332750334170545044260506140386233372878062907730431968375189459369198314357325893106136791364659621306937405790038794332968778347709586677848983244833109864765414005952302824878310744108080703293040485005983269441533276872534186666795308755937204382125243561715526809679260762732295152977796851281309000406804492257250165781355118583408490551448942614325781769437368603621874222464246076018506828953252266983927616671791342581435600751322088091756793139849092121777860643375707125039635048070943535946388950621979542213488527978739094633202406213454839310847485697236235510814030734118001865006274561698179204421297039263252032302269919168965693138349523913035579229712197402937902865263825847026259636894685769415868658436101241651303897742716771383879120998062004595275334396337759560458351396395612630976074828006002695233043972891545788082219406873444316607162803856648711302385525205537617736570350487084546429908073729527919457719205742461056763192230773904894578365866854834309507685746220125024623583958983928996368025246328665763780450339096668932530729233244758998056015935393338968224629448060530859713234662087171738427528974213205709493072900773688083528472673371971436726567879512916244711475624102823965664542895584564362105512113947765419376629763027707975884765648680137715162218144887858214592177813980054279119914632812515754845487491651439665812937243110246616314147833007964613157522087276017479014074326765293968286716829577112626089615002704392534513083588765330065391028372452361409898655598152711797485619442441677733057177574575655944181707097994501431092166691129260828112411410139602848453610157530836247972067181577834537810364841385430878582916187969929887621678333135105485216041910458619980433276121286849885042470831319694385086445442305279789446663739818990388855433389949275602193313521282377970269463125471257431102542154094727667952635905758408951026176313019806525423912588268265792600454904662673282709534854093589659494700482277394870946895258836241539551135972981319095892636309391814397481894644105689641672542192803737059472771887228444826579039692675656933291685740388659913787091059218504366597171574093878857823954458105303334593506422662211613489768704862885019852778506884817174949398676221446520605024223604801042233102747477578772831980288287208703978067248722874306479772739311762409886832271853699770836629789291636323878818095790331392605163773400991275246602803072814994649616308361874604097335473217450240789773256410176989625527794997222941443342933405737871977614901450246999563453879636265815020295392445329800245460508996868999539894980731009833487631867967839623192301120473711784208736114778510046254673371935444112250423366398890965427507642101549041428489979085916987137996500185087236737594711355453346240192683569728548410906438523252300646667157720368892280641739016083088459516006756815379828332454772073461268324417914829481344077703686410354022501161478317041155281893855975847127283412736655459316671455776782888233930778594794819830133434654080623513642564651657311246528090421972811102742089287376029098154876415872492216383859278762779540750308996301231496940402125735379042253899085839484585418948464034178208798800894836196869145288592192561622310854225543017035085299701434214055783827993889439847207938488908328350059683900168814589865570930730611326007867417047969414183841288485953211450045107303468744701791084775626598228179612441172993179630690192091417391912566902510851095217661785678934409287591432927832206244486642271179238865557855957947455462056717435690695168553611148069146550717358832818222607312173377795866991162351647291286068425128958156495855954477544942872064406543930553833756851364470248758354668527959043045190941360982776691823537386749196293140216440538794739581166072492413666420710352442449747012178354746535983048752863825042075110952919489980176907769602382058133765469068797724288641748382061931026882549687564412877373727566008259968427403876695407213384669948961334062660022715279178095534351238629978921415784301157581047726995008067627557872427582344620679679577776400891847407281139023547204691577332161376911882606622329074959236284910002873888863366578584817258923701399007125502431611579821329561153761564625341142251095043394239933915787586822555590484932280391830336286070615975551293659059925412598515630498366611006249741728641034680784426594985016493038946683062011251298320552408371369481497993269719171487562500393373863443693204182971294146416556413282884394462733080487079414810444286727042048818025104599345559343858115534564217559168410509455968152162546828874475894805533890566493038673606632188531933702328996927043680736922638217746574655430453499336706793151565452769753164030640757799608302418216057088224359513902639562699551201356243967582696611484351202977678035200138926247378305535241640346618611487576375468928350350938010397650838370913913180813875124265777284294080655017062702135345134137593181865055809581281955186905801527951844764298033213617101054606802728463001624491662555061209068348958890080601836829215890118772003946545037424950206269130820414312725835208040657617641560655137236488620799393428498413948005808040843452360102932104739947170549109990230577669361727256980955463230057871866053516235536587280348966148392867165607449274837969365790448501949611877484256356313876517256113263881352083250017271235792607634768536825203881354876140401542536881685371275226924546831017933792575423650470989101729654051417255518559295513793259552325472296433205705973039823056460039033942735665999992655811898158028536329375032019273367106090773265148740997754037648008499156746853677519719490182271788230861071597870101535560660981903239212133330372899529448783227465938043925397009433185240449607718599914734608442119302055914506951272123491868186373610097126413532224393017249587694210305671114038279908327163504666942824787679760344708002975963486430028176387730144726486942430645048573808066279809570324699271502671601998678544441470006984346177372842833414427359779117701135942532589989764270871627607079724736181414385164303890493780996649239715041656892204925795818939685747014700434138645748235089649277964122362718175299626789330539412123642624765332515544401715875169803044063291827772670435186696531649513480688636262131033248016601628867112223276931471789375680275413681719102664160985848154449838962168470848549309572976294635701469322835910945093226532143550933791746942816664122411444914015339649892282347181126817909504405902178348128377242494141294257028345111788286620747131681644214528622033210763630503590230557910371442698780958244845301582477230080376469399151561214482835445862481184853334534759856806156085723833462938524717420977452274413973325467019685878017551876921750113773828456523368139073508415025646995911499468902380208272465770096350695894808194678428829239541511136674811005025254162489328512326174503967416840703900682756319592169656079323735051762099017927596087604806493457497466900844353914998696621588823594964968388288445621480393814351916494833977376956899766960314951648543479072185632572423472952788434889297279746745830955853482493375025036283150940314422043395064879731054467483696552521556221304805484382807475594712090496594067236483814065556952829783020634664404854892883306486185625660241219488761514539372335816660348954322124009130219480970683215224600245555896225988216830140595522636324251284982344448997078553426653478592407973000045134645815789162711905979304219634468065522254747464370578255729096615594651231584416446272506031152100240261091210314192356637705749506158151396991072235801713002060101493896494299928389428258289644022973106950822461835774273659794073693376399803081039959636159688960298954771765617131001780953578020204456205876415304194963042086137589636314893797069574159979485844190299788051741591290879594398698685151442824289094804131620573805827264256781393995557466761240875596005137914238108696865130566150098044686994416290762650975144541808008426431378699823440404235639141884106247235643156008485638954548675370206486509977892599691494931138221747566696031743373345730836738459782445534293401860317776687018406872739004496538128435406335801662874669709110394411330853375974059990405904068718520534540056486172015852338597924608372497577933445342730398298292371495734516959274516046867105947038141869309871252005789364047872461384210218480736297746812643593883256711271700975507154532498755621479575543000061114071787191161527861535922228621770103842507022292763850229733618838151464147295549368742616199893291127903978801337276103532831906051066423994977070899606703644348208046438517971438111250739875738223012547899358963465292430798821591846999602823524049450644115822255966304056657451951503365543059298614535468204370478318149713138145702114374583672765565247844683514676349119612727775427017906202241460839517114728658323869160906076659284292813111021515102942519252700475148616210157781414959786894256875537841496869722787370281336850378674176321709123808544973481338847982741389941532838951415694397948046683281734751012434537010130125662963358920444474873337479367443709164807387904627669719152502538327140453508271784588256411506406071230769816088994205145980855787622041310903316103458239878937603889749280426593430940698446138336029917683414632298616933041328920450112052410554086193028091396612037360081513512404979097166352269814029750575492227755839650407322978060583280500193023654744641827191397348911923018461436523330538914627401048091892209564586082294004401895501626876855355869083122681924705997866605789298861924743036708741662224827804044280546148318242999926371374239580257756781112398725227161421707043644150985930951525706580759899576566895555718850601360244574305000914273969103122914370694692278218687578233321200783490792167211524518692577998802940541127706841929007676163371459988977734689622016372421146329229064650931925732787511502241468926724500318371007339196248844915683672886945771935704599959736040367579158516759643829618569433709061603644878494571392376178723097755614058710367649694505713220324104339195594496752601011030306403910338713256124593300855801170614908710318204059108826965687611841275763859075436659929499843126147029331972004407969017013192972569732257572002092861251104321639878094494901241962556615310699040059836101875551599031439396436913604034753879309063556617992156307314823703082053748998722660348634759432081426963605091715803471984433020431526096689844485649861914886292997931449209525404790736494850623978164255007551905720641490677136262577688220469802359451751739813063634031703035654830447487662957497264755049050440314489589767648371479336490810746198465058398141684867242795659129768243121225788394837427977838135389373388018536982363399370255465500138520055493153649475082121484302455130491471473997085365993205560114684820460458940041552423607020436859218630143440687430965077188908923375568209588520727839464874950445129941404402250587164804353296221940317244909824833356322523073348672776683199919307612768163067629145876646059745000870993844405147344936152164427049041005832095233960679697791789235481037704548305796643787905781984934030571520499097841592781836190320503442215295673415684618565378107229171396703832884413402041589205607706885364162190948386532988902806397716653930434561225160475778995898023235214259621127633471589022482694858708666158351128033197076415138198557567737977579169182220034380394078055322949671290544086488000080605442780947722034355948353909429304156938492312745875071029746180804493295941158845786857071350127197547100091998673054237710271534182184313042213024441168458798449022232671418876611412809885597873449849860447564544771949581946204955147504539326267519877955256782197247046712270810887813414442739303917997429516509179680772875283552688929294003844423720607072678332061262636892247111661010821125579664005688036226020751974097496505337605461049820650735317751005344554118942304071715556944690897971321154120220020156002623512993487077398812335278679976178738574232540331231324793104793212939366282946786416163048499176714389613921450335774039376354306991188170268214391173388944596172570843047386327115406549394940806170403256201016590811147235858390814279968066622665170383307835252985247466159212601166804044524742288170496100544076400324515961588608516057501870758915009553193299373047456199293496514596535893294190802821287039950010531454138229856565652740002443566906224387409429512213771299240866599915095672080736617235712490264007702378408165144175813360749362700383803244435954462594070952215331293506744542713336264746428136788444061290076710103543951157439195716418620926370242225227893658308977864553809615605156932714254347897196282633116030736863460926478933961679420443339226219540493213203425945626095344359878267954518077925364787884049333959899012061285905645836867383590907414097633592810358694618424481045996787758801102377843172568631008733898843616798443528626273653673924693150326955841541586141713935282080385455368429058976010227745817785743729640136866962727932986676059593565671217641248717836745018899202779985393952330609389642066143515774816538925152516512081480256686691495414581691977181598758591662192301374604051446176411219269714826470988540776592064836771298240323779082335863858049565464184967572864078275700566757161417743119657907726882490827381161860207039628454115679673278416151531491892570562926093246020095758051219094876840862463321154371030603427856884720515867996713792056090605910404564311257054246327998720565463000197606432425096561715513801869431180264911283193564093621691333013159495001689857003214304260646939133841633746166057996561006578964601969850032004396247505506312959580164159041127306695398915916291253599460047284885120143440650877875188679564930789929544790941973089512596643226368093629115765605338814212202505117686953661679121946626231190827798745283499527034190194667160245705057847593706494041181768562463023076533950770780443917714369844690074415769064061800053485275322085319913819836880307074524109034384437903549244568721396694883590671503756617113715519098912655763877212271931987197975602761162353043856866092955189349431586461610743013114750899573652897418548390395473369058016045346794879970281494234650610992351703432364562051917861507212219129914736548887079045301098060916831549203417898296551064436783491510299514587936100364905488033299947528122617091319170542376248050376836551531012534387753091161945642410301720970710922215044521404618511175694315872501314732277541783418866177738440795093311035548285310901298301795109458885574049479546740067601421851877257413912676590327815079629367205668664057420018611002643896923764020669715009356216239359186151459202429473801664517838767072367496752848693361797144495712749975511201642793222923115283432315898076649785320801756430032247497791156742714311903700402932962248464817779917172997419761996730535917152836421447732324854351214204636841751987334265031386860343509543336343049868913468448739784008267434927336610835309091975407956343300447459228909444894362955966832774526356473055590055819282850493131047838132429081272299165720988167049496687474262839123156205874874932860086013349906824768548301734470986419730929558521476957768598573695179189822336007866237858481909416905109355520171580127922245098175970790436386799301587884420581076751264550842524464346711964723865330554121441323595771919214675189000755462627947262535379817976643143416139169455371590405883072164872373566439657309775305097136503184737531504101791087253263720504123605389245962641427260877155288756884351525313286673496036674425804629633252622885589139879339539277820306200295174197062651894177289865584875466863089034615654263053447356072826992058888901088218827688378633536164176428659147166905814217076825056307291881881792319279375699456014541543184888754505879725270610824674827399237539226052890654891310780991877051606995421761296600476014443876511596709691186070947676812427115994416414189004171501101630888705630972665962842404290744609936904589484556611685352859925275940208782234514998241910650493195177089191930040235833416032738174402019104348031403703300103997550170364103274113305075170294606612731466741547547231530320262952976150405017103637074086023548295898188873707236569187047245313239139915398876177327923584421196541194862560453920501353174449801306806970100398992866644299611593176638073727806559784368563048827400601046053320203850850103891484491532938883434528986162970024090947334314011822041100694361340869383743185723400851812101557570282763696568245647058715444378814535767941878883052672577212597854252307455830610004797594162621181207075492455572740745835889957810811982065567192619003253925651103827010041266387113781519562423848585625438808525712295139224774113368024466504699922837683423207995567416747405754297464170297898145729730620282199334470568350456851663091212170294568718107603213433605033825508643658085365293694269716040174525459548895053785740820122482980883668163485499481168245613826357543409497960134160978827938406994701967640358114271446303976986961310528484160281734994485235425096622989117273304576329231843386457804196519955751801956846037313652354286940171822079500560462576425129598088534992976671425800509548448538001163393332596161598613071857651588588492849367799100278715882251053885459320996162282448843744107657879430040198826118245848182521894431498691932456427310886024079793106236375586589531345712775891477386082410367538839566264370842856877828587801543779957732354444098919753896549341193269960834687233700206494991166619643860508333985302246307952556052343459286755130955013016167639992737786284931111938553847917919815029016009978957831866984339631206574956832201869482956244312511096315862083232374012392682703591132092274423823124833053486428235132007601342356969910031574765385218794435210564394045717547103167697459707251014266876953540763783949157081022676310385862472255130991903544288742443038421838360105638467635476166550127750859225840340802824599659431295154932685192596440945145030897508073987483316592190671206747766723838515920933827811301108276183522136868556087945366957183109479812637699070158212651907781543861377383091315601333644787941442094964651533021382400305003056089891503939985008283540160389243045769990973760041695675663806833643805782913557912146080977720043289316863007607830778722055349646422826503873620922541545400293690033862703379782346644801629004531999408062665712281271941993988389811918396423765695824447710704026969334752974144478843314041733962373003750936548973128196577518131023914902303173324042189191799944802705147179408472704763548353731052929033141406417260499375505207571058147312075994205206146297174378024320079943932063225547244080708026295718002440152285374852102826606095248380633568610968690910559755198188033624317426370211715104618911661982117578116999912074222630370462079785975757151950435407605772644666808771575338088939059081138239104318459286808851720538355313633453264482154571453213811662431619176020964760555955337076321187976249946413287457029813976366555658686389198937036798104047843860983809486646086653340171687564703242682494903845693927227775498039592125754533551474567019948262690116191639570242236237492021442062878579116356963867155605409909238629821227734118040736046738872134758441047332240402129877133014709059750437038086029179830186473663636791379943399557528929640328839756565518861942336210661489268309260754330875153141724256312447629991572565936534001414455725560448096315940731923185995231085288834221286591277509443595433525089326745933697359543212545287805197415252646398762830323264442040711718394989641823254529198940381196280880173640640037980241033291708971499085801643010470378351434638641589063454559731433755790236806142806002477119122174164458358038169020478170145720487225181194634073235024659092988574983446203211970850884607379138179307939556650290822901618679477215487711389373057430590690185475443617294662738800250583384718460168689625169350672880588790141465777893714252516371134296979866814256537631952647273970377835572171813581026578262291341811104361233929818520569730943992930473212375984834652771460399350032923087781917235871771924954362491460098051001524573391404325705541767662700019405743766184522354335374217809847279263961222716056499248682839454098910371383004594225071669342811200025334252398065276094628673466971451511740264494000710907484970187597764151627749487231680096802058852185874849670444117559347266125280709080214053143878393623861897064440295522862421862410312855829066653119993351176179453240374758869092566780261629754984883603049612800630957910469898550607995724969987397365947843315799651574251338680987553147528591106888826173025840220452029479065738893764079330161895416833722649107645762144666389538662715660757885102715239351316836447995054661805966250791834299855515166751964779873629021113067607840554862865419755453147841777309555469129472067828873626491882638624418928814266154278421764490981267480440540526084126309815533944822063486097095337934427368692098706416154024061193931207000470560454845324958554384044153544442731099198820072662866567515800569798790068109432055990353594322326079122947977324283530995579369613741659765118430222485425611405113783328129985089144771122104726791573076587632003720588440315829321142570393960818184314791140358459408419733816657362939158218408770724171851179783165819171533423817416745434658861079708229604196407955739487146883577771061929157165236927881590747366802095640110010591214418705572633293837628027339248772584388200936796208064406979381614062302962418374605908491144420515476979988009924168916427377662514759961644956774359972917002748245268175646260007663473149246542407826252436563758025998528402117635449110100688878289211249784129499698971121738930988784592578438779636230819463641123347954670169934800901108894317238339470972467988106870950061007299161968837083783897893085571797079936099993620799821362758421250716960339986162239076112369498330108082423809153833551855470248311914245664795438352017884359579838861288189703319962812979217724998006851451629316397862601521450803309748620208825044118403287738147263383299802098384062632058134638256466053584133748022131771614066345843540962089472009607560899437285505403088531363463661300721440417916235396414013186973787917291414731442325718682286628432072430578419870376494193860538412686947386200312047818353002467893528951689434872031796288027580722951912380653985104182678532748356421153591864452169023940753303228123456196029474134125028380393432946174677295738291876124927266006628268629183333730173828151507234067482439332114461550139826919605547420422651738167721924919088015532179432436759556141633937750584025476803397442119602568401648796949370715321087621823910480534567114874333222204534691097069048646384502256706848245159298780902363152704421473744726148573833514254660863213020140701462553855866427679462240240842132548461080961770771232292450897878052640592516196427014046168421414923751352769624039925887785645444520519789376127819305843739074438472496489464429137102591966218364045068942146925506997275093793493375909434262966668008919732669513863698757158475933764646372871018233827982920252248749969416321414600189102194765116499839721014753335703769667405943003853359667449805807844706640264521903232652934261106868969777049500784139897786719584999986215475994497975532848748794486605965070555108440997871628602443559859709347229848962222666348418724351946797126445662453060233485008556912652584388411022447943662610708919038408150878116726455881074221395796561993017223630797485500630386896653233314420418097045453530231535542957910884725220506057048876914148299015686631380094948986792227676729397415210002388467154124573982290181300880217004135801760507243654337483231244056569651224524533899907589664407992317380223562232893086773801505906131338250118700725072089056067368835931029452039441256645147939933424869484139453865651696943479864341380075999527610197262548073211829021612000707609884279971921249094589684458831155564963787971031470344245500911992244661617695572618604666789598863949752007278973928056614176490526460908401077722719244177087110354932123078731948187157940169611224353936287460319594513863266177491870747276525394674326918411389240136051388900741148089433460619622202835788346347385685034591920173385967804868986782661875566004661996759314369355069092155729223076301591783444783242531050942171711127252025193996977313393027436033582073426846763120638664011827501544941903777579231452750730020170162438655895960300793871616486139130637058442489468955644859652047631966057788260006147184117957688723083726175183120444690406320639976595311543225562124080430146131805536300093219156855485761978949387288253853711251085722126406815631477076393246893924460639893495827378360171483042127717424282622849134406738573468121731028210542043517232050289842704398529426447658453676351411439763600720986449546857586238521137870176336154945953078216065822538403984610708708268734618844780615774890711329922516981157839957739342822072835931817286682903763853337332408242021985527648248329391137284257076369516423517907835876163885973044636940939138629690976897316199971314598464066617768109718393320654979934003259211196245221699236423003801263769001191894483930642512820066085566028614492532652245752720561595349833182599472708314647836891280177977233245935822162361415581825993820087891636246618694025378413803481356053207747918331002127124910955944819821332319304938555945515998375440264202755493492928311455904034248343530209983068785957838462150335709957942917548688068552566936672548094154097516758106735340412463131902897864793197639704056877832167051959725931459057567918425105915755501208562284826889567160902964695061837951243795221418878649803210565130992101718637783809470598416767002040238204672326984418297878021872588817245808139318673025096609091942944795778216762174185782072261425087440651657146229463398182874134590447109833081150623573792016235570089017103578661032919115760004393027964489148564949513859807995850281467296088822627482011608028724014225538001403647610818528306321436071648844778206950924608438709158867818178366458485914600690430603896460127601800083868522332515410310903318533674934478215866239030398195763949115216391252893521149078699357517800049017764400296460948639628801456297291177191159666786294200095123768123607706785384755682827896190727284914711880624687884786269758505405347528073964692602967140076137760110477279452330123748912561705457496490015296681272052015441923285883324989531385778440172667658906661810873069228571169049730134442017898576727386171545894618519068988899381186527536163722388349414946095987240733511862073056904097856794219922290534398814296938282853905808564999275751159859442396072576686617949055024677830407139241112598146448969841088543677175926398202782963045212562247785393108695532625617888428667841706748738526923217129393155615512539776387243437604114405154904601732573785613861701586103314683722361796703147951123974118580008297767525886047552549985295693658181286762496995533909938433262547829542105780118414339158686450524962322991609749756538520283886768513731206666114274100977987489447776886665680823108609739715660673121990353430979369652835946997108488798399677568579861946117314821989681718719653621542692502866308098304985306515540613606066069606584897096094621137466349759977181289301422229535957510780501246892720087884771391972849447427898029570471940020383241529003975521043463333461365960358007277627996238899170908429396027466579762947488334784657954705590291882825489949783207141063151082303108008363690535457514489334601974691614205641696989936200271836448870250629858896358696304086712983897024200543086121728140606127262838133471924100372589468540396364390986056874250990898410834970607184582268027339187742297418965253575755713791179074444802465646402482164206971347538910876614960705212003333578297810574177269262888848451599579070623495803616254399858446273985198291465829938383468529433482522114536016726966642805733250579309656002138856742054476092781092213827408126656537903928718885647687006308827281669782348658930485108102793854260064985232650573534059149947099659384511171522499305169951234327002414103945888594452931023833611018545011406924240572455074132323458276146795740503499987840702620149887580669226837149428436442101286165083146442958046700827055804946202736365393596687309426784298601362666867030347386063635240510577754750416875562497549477880695085426499473788462110073137113192406490121988807905297478287427366514410445560509667536076075622114460520786230360057359833330716396064467180457163590360311366315854871167160575149863750744480095540195615410505679248659058490886459572782780551101380413419922796887282315855216836097303056769799241589625629513754432062375384767440457385874029705159257272562820298919693960559886643373964915570357214399398395031869806341074147719762518031294894681603909661869056638419833883012419549764951047599433817294930752967362607465123559269850375384092242283337882344273655575650471998390589496328060721383830342120683588714678041808665805110919447330123622153277837319601849820426927684800389580572058474748829783585916654906625669656193104000402247920017966278153682513607755606874453030390372706237259844052519631149991641572819047982024699566604632034680502093338903343348472168720114928735774924641024486018298501527823809736387268991628468302237747991346740191335294682346173965629478824399867435340325002025879727991675948666971556722352452778519388710906670068629345822329899825329907557755093704098226438918920177258046755607109351290417846051468772191842475838323575843764193565808734810677551389499979111907069187919401962655616097023000977175200722119213090874244378094370122313317038926359747672786238602394811338704241312774246521496093044775448976388686634336569625970635537806333262349115987872537261993786085151573475438328420694980099414391645697430037228667442332262222959639055310906418933055500999914571859253485891978056242189545886647378478587912777242096083213825920356806222931238764212441070919538352468790934474751051429975123910131270376794053507782549839618111329247660944614775370181339775954145753139246324054450065995198923330162887958867550357111032962443884125632021017224747591132387887457989187019351180121977126148976084829315466275318377692305276742924046881092675861357055767866480441771532857474276650058138393295777283173943533317512776004547187371319914990524700523411052488783260342640626901229219207977458024128809268949900415428888216760925590844350879521525724739019863043886581364615016494857109446275601130090246073107423357299118414248975190912928322961591333571951051933589688686470766772936088345023034169993418401300971510156150067544123907426456688829758098177451406411729960261389226114141144395304991653890180680714994594933169830511526622670251649499301517373607660256156856792753977184413412048257446558715077387778312293324319115582350507162005788668111918600080384441227951766816058816445179675404752698352677268412209811528638490454256785670495621005204164176154572743348606194459651453639675782946846391244477866001481670919792322706124115106260906192939821491774698760256503068184834169810478369803747808616532103104648626400647074192602933987909602029403088821419008662427031503307710542596724979765210477788809710296292112759236488778163418843099213252113018211489644643758160906972376258747557437625544621906705116654028377957847707970371533042365225736329920766788730891132298029797066571841843657515581422298252586844107852326068305540002832331890950154756936122204097365256400291363352634360952830441655847855131575228990479622541723943345076647874181570442957085595508649703182222801347478240835211798565588469276514224901887070558828757867340590870790831574558563851248255380602942728138661979628339792687684498100358293508732328702736231789963097285645818883570354843587649444633637885376810840333906365441408279865082164570993954863383530779080891284156057771207274306055820061447303900764130094457657438343634930819562363629249753084885598154642651026151133217087037260329395282786934194191399724906251294118652073536179538282502119776007613922590509379534345966229734816224114072006577807470521488135248520098357306318856820015660210002386371902817607376414801003565569136698925133880304183621561092765979175748234817856773389069932897089554124496120298771017299319304256114907453725107216703173004780475595361380540416451936620818422105541688550314420106435855723725510582846719148369061689862269125023661671824542271973432888771931833993681489375342906619934230086321295160171232784336963383667518646123194877386093446241869799558262514986850528660611988203355354643454351694562311870766559180405367114127326950968778783659217986181597283405698915870817504932559529978886974093656496170025871367817747976930662364614923432848022957263586878816921625508291697404195772192200222191565701313101078201867004426427060716031927189096895053126163412436445233263278070016985011277524945495733689726348078741937520306378973676542454820205680371515050126588322731344934044348578211284687493176482773928327103800234699895242690990725771985024437227097612878197807156367698414609526754462340088699856840672529853079085796556256647854141359935999358936201553112076283351908659038568720059492463205647195307235746998245484568488951281990533605624984865545752355892119671649131465503716259236347267819659675940905343023009021423838434812845229911295941165767628205485977304850918188559973697759630794752756085916895974239055650955598128676896133875040827129372607568707561952408930364137639309555410286273338774990747960140489244567197119408576932365113369195521431652708267666917125360293003709619086607804023445602136148090011223278379095722706388985746080849907209515384562003422213011597822543047231607552398380499718008756367706496532060173295741165870431688078289767602923078874529625241236036671766777180041603945172007420422125566073421885514138020156895520214505077773070506176778841483233841384435620583695837032336813322584253862305704424370898095275637697087326651559057807323899227575138989993323018890698924044259857535363625831818199507809196672095369130837024051083205827502695992970887999275425264763801186429543063425587081358821463723552060982465683834314121872588810422974327613108695696946692791549683800933713636449333794979508342285712720852303948096971834599737197114703724976527277275204929005568207959413163033294579149250820853454541568389385670951189993454103573492629834334924145401738901206102007644982024510457817852300296783901027730844430389418852854388894130447475241878242239673284716218971671449554560572517186123606107623919356502409992768409858410427265096450593762915943337055382390184854595437601507734261097705558516384861358004800828687983659004656031944726946563518346958750691820053249545566606764705044768198648730886781089542980081674415679250894869654493440640771538028196675407605104609709495247029360747786645431632910076565078541672093692245109108860287615364248062002586236016641248678983915360427349538751299854081097193413964623054572257105646797964267064009138485145289116680790178802505077716402219477731497706533799516176136678328422102243961972837080392639417287123688108120532826686101702734360506052783523274499312787535063149560119454246720674002958100745625956189401829631859205092520574637704211528506293778644826010784056240186261684614344261956742345892353574790704290902967753020336600810192794850522457718893491173608023434546284175433840684511491429152372049552529145985979717344099791246435066249090066300544916023922430561888741015518823680624984123657342084370617074580572886449358655947478811594648155292547007191891309999378863905274634870934303281640123674406287277733049908349011048398012321321069045436769166732086972832949890414181330764056314026173076921709837693487725850318454001739865086484870146617726029710593605828431223205283198735113288384253421145483201215440357490501261807258894195364613894141648401807342734619406578683102116102860318750060138256203652576915390230311682195224850093601703322959622902395399195253798887589800469918491600550898550852043944580406231049001299258056952624087088456357774807729135038985248160724852723333315346878141517895585263729030702313975666432639873926588413256383851495546218306231022443275876967768740709591266580005527295288405218274820200807711413981462907372148456294129785438594912366584469007184854295663357868703249878568428797605418837589559096525623343838347253126577529202202408151208384520481715572890663560391452345558509015248431496454593646308943525911137577750647793685833228015685017927469270750772307391163480983831602087596569065134470926607123437249441954631816815713393607211627704453425350236915922381622357746329141914547090434794300422127637908493867525801327885794865643599442072699375801616272993805512128513355283451283268965217929306727952638210425598545450869371123947517772632666893029317668887782444350247761958333750465883664805374251070106656115955930348465707658997139997958463750472952267761995908719558356844738804179502860705932362551105948742230073830207325466937928000330650550778068224424312180297252528315972458664596758222486540573044596827348045533749926470132608042147770625075348353428701548176434063921701326739961691886449535120898945502947339438723009925521562003887668886204096417520582094879443377225303112084538884726706757658474108002673269085370413916971400803101752290551771447798046506289948673909129929891282985000397192362877391082727749958346306500710166412976507379941805636596489656933643859928431214191439225874166606334714125829701790702302668948409767711010163852466501060345730532430380764732034279472157425117940524927257779590716510013300063268244088406902293745774577108476200844982842968878502055540292710808193000996797075048159139061678017926078980429451949749938969205415289397401797751343631811583258249550457846986413405491172752210102583091893142133750202614186026956810162251307583678926122627996340399872938328474932975002739135608830135770830271280405156732261830041719815452516737650058586187544841033223050687218747511639333794048631751684587869804542453266908391579034876923964386482049743683441016837555934653162634496422138905045043663055566557055513149621661823067752550126794479200659812084494360125038296952699467119250718508221059587264029490337599898155955543689815347812526938726318453556583947551401943986888477124125297750809485467693284245570479318276874990955212098847029488322834850898686625994175481600118573705513723391334608933770939184440575533289099126177447262926200842881116805531497279303418205342930194458196535866893370197113553707206052428492955736587931434788625676454131412602462797560035348119607463419843264359988957485289226778370345490130832140256699606195256668958579604376807382479149776344693312276662034738497122315753777602218923180663043483148894501837320185201956105170490121388059076194837173503711486727838364921252376749562376481348136151763152628428564509352675600600415796675332911362969719194457415677438665183341950415238961275767120985011137688021360421156182505073834050360779331220822148010301423125498198290241877690666532078077910650391337634753609886182917678616160779779473213892927965127357803470952958664796981633663056217128851398070953911930029669112878086253841900364011504694248644927555214455300408637241284050842033813883319018631685263795728484329543526718939144856614936731497843466922143933868062402572569451272305302898497124979043709875195890214691145244652317426350957454706031298261927896903130354824784038104152700083902754249998587986374605747914840924870545639343324056169640928683707058578283073433871831307193202102167396943068721292804489544097323420972633090560073589145795274670993898335969614142205722072807929861671898781417707740600538184823262176309299343904651497816108152602048851696878584839756101564406925752979697626871719211424423180192565887179851179638774672862190985114455812534447242440274686735390960319456888924596316648765646263481198199487343590198217988017328445137539794578365925522885491771749232219007850727270250077603016624806565668499983855647426358292315354417244186632758903815356919239461128942476061107803083296141328670202630886184973556713619215148303045345362999021315283280577186241933500932000765787818306324877719945467225967834972357763031736277830578279983520101403015072332843481016278030639452419314795899204831685411523803688757192559133972639723415976276444778857768960285475983725778974245738959516757355976448415678004577740351689186158051191057112057592528652985315266611977995282643125499493317858827170725885455922731629464925279582796421694322559706498065249230050425474904635696333005787391909335723589248483044511276732978187163121957572102565723671036949406069973192474294522151158311059247250807723667328261823754818857179664627581119316204284801493699068872830569973886811396284404066045512762410159329946759477912629456993836649302849885965254718271252775145356567346290692858640173345273374126618256816522764182543586065729556038310062285245485146159212151094473433123349855240268530701895446913873437123030470302612677943422168351946769617437561967570831927565420422548833536752160216234162501470970816626676894327426777792544444398833580089289353604900793864896138472198897442746339064577086752465405914606802719626061997183593677209859425827641432782435235989593856758549822254706580629276784227187175473850214163681195217410945502656826883878820344116292482754144301259736580132320364911088163904609579047867880885247798959245160552927518034108787223697830507442225446593024840618766379612641695406827477924276658843033985194075003277912116084311837608934807186019086102585290797117433305008739924238702817755941004834687650451220826262674561446471868758434662414875461600914519615414138974647211753134407608542769491755766409404257209120888540081234684087354618769742124196069349983514093640949247924064293138428373377437000493168725956895632007325008201998785061956416105524276188478170497676424938022438553022329810421169003460446471598454500895073602364250868983846406364731572717794094535711122405327290448911604712331207783521239704499150665292498959805109091942691151191713103475310084052472932969750463007629890584520976212438152006680278871116632777743776024822785847129110266537126970164587892183553655344960530926695412257287511226489869306016799915218397532960289010142101435232451043412279687758954096756362184573923265706463055768314056652596514696678848576393305035022748017161472866666430545053382888993320499021609876156242584412311205408675536142334823620941665640332660524618363479286259542185208313588104221807719318404649618922242665965509961739313134269222321428533592274021264512948069343975862033002492662543569323129902867335244324757391241745949310273700578875335530720627514413918097326417949165800773645100670235660532565575831954432451252877046538699769845673488640664461156129864726216371291866375477017278716061986442028706746404804388677449882443768557978658895266130960966030677269143851784310918213360490736257189306878843454695547406632061175486939301550036149517987371324734303480567046208762785240457181659339864357674445597845797914625311722417757729841315569562684937428117398994495060837175900554728933587252448710301595623575759736796179585466141243768601754080736315010854639406164926699349925590722046796086471526843198177376366032923525827768609170356614435736165327997925814775243828663392700551110711257212481930406705648016299928356413045124103703914671866202919660239034761251579090851651526231906746858176437657091179755043611010943408403466419313838812824781282944033667999658623385217650310717130054869029866044753483000811037711915027789014122179619221744557840534705316222435732045772359949790943157140967376793874970945922632258371976590691767858895235548673851378980506649179835095450383513456111501739137970611226661647440514267109223862392431826368786911261925482472620179563037649809292906476628785728700689658484833978203869796451489668749423594498490272995573636761289865922884174703146510048037192705248933506467005047229986199157792762163805528583030889208130299968700271342207893945659310242179639656834369074813405174966039673597161903130905625815681956675050329619039132895937896474520541731625440409097187386488078347960497600584162277437153764148000561166457127455003848324026322027424396640781857396088447715903127131436230378393352556083231741828319112930658431892087981724836267339971091597667425222765630964835331583867767808742615575093441997769736775725978136940413599876522757954002781875172593544165578567471442665269384028112248564583303046776587737738347487794927550419570743877020242162469350312004439061892257434734103999223209609955741383835893718738921876546581337485039809524422950185477224876387520264850463127961795310956238550342211909034687626390030695648087952892594939202674199965896061822653979618987397927036268854150850698822117228515622043657750052875235449747209185964489135853022602520314646425433335862804364150822519201798323110036332783819462974920173835246373680035348179208447546268596556444596249190285430397840862886456760498702403480358280754698890070911473358374421054358120357453155032992516081837772708080580564858293303471474510676596183390483845774481317861263590513130637216270356280206395165779711145661501265038548824174004978301383682443255440472565791951830123091202770854404226237992424031507168879549809406309680656052620369266175126049586012349951117150637490540946821039140082782133457433119900914740896838923181237646006864913861128835322258844969378646955050789701533422471727089210580384119720456990822948271940860890800596693564836350933089775350095077260910571577629742923405819651518284528183922333053685728776107996252214469648951824029008050052889030045122640072294807505426708419730013346899823751555503496823791989291711854466104464253766515299499127755129341763558598496689543089045927528035777375567194193513751713541305906717531821332277832432874779472474953150379739583892310833059749578416488691600955748837425898309882414905500945921224233850723644095637098242619652435538571426788221411555791043275500364481742670550930522880001830100322132709451948767889928653480568631341552236117302633916448284943918088646711243920801017232360539883616659512822397909442337953687646605807324910411787195279631732498179795291542879004582843139949525502284351860688616372527918741115527652896701224453428348242484843378115726627468411654447860276514939150372044432662027075142473916210030651310418179435128713228841857702151955416573824596031154260877031191637502142019538142365983500500477764712125189136368126086593927624137615978965239666693931648365243935364797369186957986199963805861482039816290735413014671101404353685658298926925487933004449215773890067527898479975182750414475694564138686643855108598108759460101262405364896617013831094208506267247739738327074858432331188583264033486224078711386920012905577274699791086488430512930722581252530967715397099513695278079645661476752183192603608793260945720216758080553643831539752715423914750974678284741612775748094999654774009358944996811534109923647353233270197720914705290871458138169233823349771640700013046557673796648870983053770287637860856678259455418008816431939490331407151463925945211625910466522754148368471853753792165622916802929026151343996069347287848949640828903243051424655920356481878673971857236768117426331854215179335940849128596018761474042620953932020844976660251322761538824198186725263438721012139178122438752381381710732940304770979578322410701301866497018307504781477413063131959823197679489056921630518003518464506561274775196141953444782882646285342204363225757027842862945064728201421183852287189588052991779978854211005109838589711488731379413885027329122871036829253275633065254592415825825475920386731923596392447123838618194003232150012888586576961094241120495892826091293740463938541416240857236866517394331512176887186523702295633105781883125059470421866057078466374602093148617800676621734108519149590103087041606928239835131878946156380431351679425806470296423942741092615978812265361462095957275152189490970045176725268054314438906185309759270553174509347730177024871966931552198844094848510949140834767709822594565524473541582723697608626218634887771756793813273904855520850528836535707469122505190876015816313502719096139820781820921934080530433438384834214810566296189943350565841941954802161415567331616036923466205700437010962803108651750275981638006478758477853715909306298258457539453972420350827642020301538911718280245115400215848108618374654368964741017554329295327534736908633041242022135842120440533895282982425847771858013516202574748747053888138608613682361214811520502713374104219914977697670020125346089094946047715013125526492485188881492169885372031190783565912796532147720068930111375035245735388565300617831549154571796799846684185518462466086881272247153323693288379473429777097887081632570630034931623928581673753313208530119804050076580814971738499832729282862796125087409132344021125304991767490062664795795575463523151407910185136396469336653503020178875157591501898478934761884879534919454664872228819296874059665000061974433089780752113840604802161037487409541573933964225327718715180235470295798537451240112697575995801595832834033443966899367254358318371812192245049638699596655739447515695009812004075351729044024130405869342639650420828854070614285334862453073545058755693136072311562686255285440021283489564245901403156244620262398635333117477704829190468984824492674188030400247919288879075136880851073221215395767952018758609863908281877826448745016951062867722148794799221334765680956535995735954756201473308830349797680545792081873330392290173000758070590641822444810171542892785909096552222494106678892502408105719062298456881934824894683746504916062703466670696079954909792643587754151340490390297018011690471941818206965531459956685622801830705986203742917788306282328797975490415919532075848914603693621280823192119858303983551852293145880326878119015847876188881381813887945210642070166368382771533876318531510512985197086179103174667895901062354583429990328829710578203729782049966918963686952022482259589943951331717457994863510317047366765076862736340523689901044697895596046853467946232484785650517631442231037298548291664899387271509389240897300192873018755530300393917653849406342583033010149561201581633443323633637028522228398122517448589501876651441322768871285652274263898380998617945459187967810759182158926010170071977646201879872479013853489933383978293638436391199128189921642398504620886228553576958848371343719672471378615529149916299703537640377101776007255546934783169331527181595630007003762359696370615261223931183227246980292627967290776779391808799041811028531273204771056999411422100720179166388568113485215041529354787441471675340410169122209919604484953644692834304121394148705852657010104694407922331585097226874257550446795919953167192139170489778325663260553441029429870550905220243596077207612758563835919961694171904776072676992305387052432903401314514592750450313011466414832683905541949937617970959811672652373353114151755463211692189266248294204096561847442571560432888294413684624756165120134493750781957895003990972178987932426820801514534776736184440388798948070539540685400660185992677623081308820000879646069045587972955084199440617973262164331960356858280824221974871496229969419387523302508633340748612952894325158941935602813943979934494985928930755335466935432577758949109611964793898197648933332430453090563101713711116301363873485167594669616766152138254894321250832355815778638612929296946996233717062599762730489841813887185061259021435059265470468526403040339698706769183883413171584941438359528111174642829350076816473601438666330928194562759426880319926538695207351699497998097331083467076348940167847536751490448460382164373747164320055456755014143845993507323176127180304496660147018274065763005212377951694337053343825021173876650207055504078438035612994369559702508907187740774524925013191389253165587858947240283192392063537920557130449831031026698563323768270215060791112165379488841060070500228265246043822651441957930841479969550013218056281793738823139019451171342827435565851897959727191171433462367188512741286642982875017993882062391399052600158064514340376362561059475914018239182438947937001966446652200670039320005267066246830215316904030668346768456518768420939781409356086471158514803776885028122992873600458034722873663193899063873743425975262580822383434308622914423119087496059205638600637038616353060035346305254233759911487194013379500072858895710357935352156353477566231808125567955862792666213061483179261068310908944770752634168130598390251532745265667825350603176424286044618527692044079985831703749877828133860478229478443950675791843360000088526251525152378081664400957190510087689125663856145138531879895619235379447549313165985351860621892212913833988305381058054561404144404619507543723730044375460227733996798121608627565059492401415387560082705000915189881750136917200050391485164763258402467737821105448190079576773958127158160708307185371411938122841622078915515253140564820799161936042194571620907447543308141364556690915822637305777019629333137080257034356241138683624265015668012241965804228762569041268886347625295428739576582203558613258300798014505534948288371222419798402584766385638785843598819477355567087201916492851759872276700186659834084909067916495046911210472503227371238741330911887816627137180261956666881349703879326093190259605729701173487973346992005980347809082975176561589638602225460014096889158667812281349693150639918213843175605951846016047622818024929707959990241787707475686252163740086635609914510442147718471818237723244035958416068260391378533727425622222112844352108827594241908995806762426693392198370748285891098212567195679170947997872671585709368589270205321735814269375417233456492509750796542424262772099246248026719857214406283615232875355434667167555894955626777287864533973351341599430479979710516235209480043191803422963725546716209786830907421876469914922643138306166664342371935974995164742989915106006326121375977709656504571059159622754236475061914013576841668144652503086357978391935998781951346783387300388781442671786931958599065884348774614639326831657995738013629243559000661291084335014749601445438600155138365697185047280031237340905818788332190688667436363552002821669634771702291125637666422433602538613422931305983570173696097780311909688214128464250582756912276064221639444686007792345409769690840955339264574027856052197603268405071950028089940052552964641551169238695470104131975208934736046023148775065486745118820922647417994880043140189877698201628266950675679969929487424488392652259533418606913532472207525096899714291273673708523213355053271900930904215091214935647087333843829091681807322037613497290930710845443438704572605788457329909867675721973740636211859664885417289259648721594487419633079259933343598256866684016178970094882807554399209530167143454918608267884370696175260056226755928122292379160582943629627982826191930621268302309572338603650226495203831586471719353686239268490722024598863481269884756050944267755623205381775608118140253707934704299400709344903306264219865596539769483080902491882530096035851494403555157546586085790860427307192038596315418435616843048337749953645804282478226651778262100209526019944634897918985720792605621116231669514780285130056967936533992629863814282776023733263351489135392067956218476369973265972735010724467551538500740607180208370900314525649194849934951152176947273365623657355509602989890678867211560448463251941562604308199852957717379314229936213161086687559219945120414128539883879122756012826149718433276862426905902628578233754110036095098259896003306676923930282370272111685148723046125791747037660213173232672556546412382075780027084881705925737095615535538207751087746836431865216198175334093286766504268851508868290710038107314413042793804867815326798436691149032836420445025976609058224483380994350901265214207255888252871340058620701398237243339239869628872821029685968794671057743016083281220897606305925667171218740487258681958316528204025402140201168859920847281301049389599404588077012234262286212539025228923105520544684450739690936077888788871871841949252025954731029081206118542185791230723907007892371477621219585922358079216095204188324714808702268190095208449058019456310763587999431386077098029403729709990904657199151890573782870215135737325536990437333556217262819168620402238214722481867686596361952527766556452677312815631697605157147875180638053818283832080619391684390671515820760386975192811733570247431998166901816528839178616790260086352662643204843312786434654477019449252727763884547151470989326845754347717839057998978372703384124856195181666815506458163721271106748086593320131875899910027357005137277427998542985252885179736961531157941218008349699230999893415629681414541060983223652517503908755352323374176764374732041586854716871399351741335294724387539603605265009620639256796105561300651181562390880958332346720965211880773854408139576055542284467919215974202856720996026426546408408649204074316952774178533687104881985900682213191986420431469470413917637367944308324299705032152270140763692886226996898144864989131520495094829642457473182258409547412308897565890257800282325179687391957628888230629172825118751445234306135037520677252687682636729995187853140285570737423377695334869966459457551785164013797962008122895337570275847208617077480101696053363143838444320216946308702828811348050056877935561503161496793643678222970743154048332088385686924661587509169647378800510601758278263143834730200661647389242293034715843181317615783039829888613292260235868990459059596830362506419329283150743058949948153457515625976337844355404068136593098732761106388554602148042554478746267819655617600201054240461824611640812332226696891239317477791539895811900374568892636837655422479673921442503023789109013454698325756990263545542442790206047449314879993908823399246057417591804568216869813575284091544066994561475426860426542983685678745077809873864908160371791680782719566988673257383272112251693854622437601309172488199742301864759024076558340045910423060232609124047905584501075992552187026425786289752539360383948783101207500838940424749790671590593021162735183935375819580357590758891929387761331435880043627548547822370786596171732885781276446910275694207065193617879461647079944558449396217139084682194832433697224683913117854539283468882848124780867640082367372592361582369469137670372338696319516595663086023149243144071100767465809368348488873083431839666858678747461082147442447238730142965778437253700895129675118041949215580259940196419399055029791985846428104868523492211909993778845903393939176298042242545376543872868039136354069379013985489118294944045614741270141057758032376218690306567992576609045516798478433435458643985893628809606422294090324316296191082841099157287222752638914653563038160950832424582761585238618319346765952650116588273932222122399496382909503039500871798315414476363715791916212997460996494119842452516713757538013834923314456293387204409549679491477942147859952281751944316953386852698087058123188776928743209210372955344822930372683212606362441425272738135133348610651031711703230982856921762109049884088605728912267827267066886290057467985917903930799972664035803146021802761694335334842432561625552412586615284605216747871613740777983772785438401209712734314373787457478921039461986015196500536294290297390716024487326937002743240626170510501632643572244179016529596930748193564260707828907304664568723577826560036061427192423126975813302242961533962713477053331630013219676464681212786440821664386870790396955195644563854136591827551476360306022179143434950959351231133921638523486614264466980890691224495642602642707801574901972467002887804360991767979700334284746412253968185737251946193826302660250989263381667842305327541641782156215274104578524409213358511058022530537874093256166268287738244648115940595055773050152455160845968218467701514688279884313886173901538155141781854737180404030515905048457871019120093911159229227142548789180309169363646513732342905528814422586813241588300816834131944223851043053172294208873872787075689220454858816501621848396936570283199494691133684481285976853399258264460585000152552859369652909051522145345502107819561176278276719246388756164007694844817219022519594438728822509118571515922568194096651993926253387036077815221427153846346900616517756723238015653888384002659462063842475421083436319217425713096969243661917698798387370784133227940171948344585476106630091543256777725142943855518623668553208259138309820071929004505036419142444157153000920091080855189968452017079219202934477497328731708534805090436486971906511308127006790707226846527757793802144704007400716647844780422998563189131941796129134434027174083864853117097584300694225733280110840997200161402785586997827143657203209535752528508771603540729106112340895736041718077593591238583815663083504138787393029675165904159789944282742546619785289892801833671768630147291605390310198150910520193229717095304094919189354055174538329543191660857764889125770974868113933089195626383770480321748008744075171163316840732858147979317547822342029834796450918266712907382652757218671408056139829446418117184698707363030781679862768046525171117855508425420555320778314315993849794568343918021805897782313995265736291068147018842170359089366231379790897713670965719830500044863792293055053600492235360215554612673426457103502522563755787847273719479856634847270066617893482530473763636358704394201935822054422202784318280677156141151182255819652462348266147635584725049190444826266132970418526559825833879457906677869570110949907151290910128166718069977521994923831850805734497636082589185022599124161885519111047971073708484871033943189630203688097175351368329486128735079662265500917522540692829905075854839879567073415765642678169401198793901964789433265593351624412935040040888786831590655744591434811077848351827304450602529648651719554507011394433435655665677752217563858246440408401833887688063034736954069655429976601210617351212724569376290396940434597817052056554208068170310113715348555611422026108313141761755621825878531327911743661777322781666047084875109776132769521732701275924519112791356799293333243941209600688413440720905291241661858228475149942587553163136552609636762355633066929162291485223011670472871394297090856022779202812969519332533981319726365393012217822722626575591758463142466178642565656184678838896704880089156791981779542551249279367112919792372188675191440652425107245788281845371354727494262376125561261477737065660674045092970090066055007929157450057651151676191219552129096811447274647063004760907895382096754632490034467605248620475145854372009946209433935119158196514581632380567134025228192909780281429638620028418674784749252008552150454097737749713813193646299046133038236681910812848505328175722561601654509023450038401138450191633331834199027776467724658536046902515006374029038911095773884911585359187349731661998003306840295347101966835027776864136850580200295877044407218676489126027670219246023028588935129448635735075682637478867087201358194217941892423367889422712063469600307337460246589557465473110274647391680606170618965370539332669129149711125949551713082318235517792827714363050061474308970170593006739480317197802072361950679165504809630966889551899093410445631903518331296696724935083800573783833557052884822487395002408283663406695232385502540680874967180431807787220125873838906646347159409621280234469193647869073785457569061053286888359175880086137682258752276224324013330705683878193157508107367469751012872990106006178400852437090644945395914751781452488471543656976652995338819962250592015668936191879935975308752684911102416716111026528968621299473026898945230811661458565296183736334701740910210899080284606265432694670706507826061644520515801829728501517154345060039960119363291413929560006507687230062392869079378119449516734148474121724564015871910451100052630753464442592661950792485227323500599655798449532982808935362958785545693674774505010546019183564861104998960577950416559731120254371628330838733915798825542504090981218024476178438194037341150561942988960687406855728909541512225704956786053097466585690987717298441162158617560140870490567847519678382668101988907998094516155651943303418268860330350791178113340097939960568282493565946321960082354105908666852468260873285530747877830555029366534985376111592301232532196939994363635013264703772373087061863370166382836820436165414322516571964417002045044920371157767493286286485589005069876934454985866840465023199947623453711552113707073899612877055375585355699562109402525709568942490527541281674230280664019281974721308017488465715150064032499929138749155752964961948332796756998504392470778451964926356896374738180078149854340040020043036281007149091069497490720432226096506535946767284527145492120535539244848577519739990569247455171157228289186584201019444198838475133868414023499330456175092678590595249062803203525157155887881065784014719126981982494309926825356584722892391682455661913330823922441829987118253302523530237220071019584976845775602547280731197039059204730625341572546354973952204329730021275315558326947152949699598450191138819794170757769679587906629121892471104727954013338655511167666746359144348410604068266099974396352348909549123535002390377692397410219148462143848247237196132050989936532089001726145518208294420119330537772642544909517648342151436147224272119826921721837705509676964399156013897102652638313367515075149324686264361535409770210817028297403724741229797345986596539014455645535303199994073005273724057525010265770622216334288425306659824444290938095643191466605534423402468891025359827693225527837249024078800485922442423408698834458965442008879056550672937544743962161912758319545779339439555372133251293610650921637317780034908542071192568337514011785275719882156643192248984461933314301552146015710035908363281882452281494884649214595461859816422970798336631506570356071411303725426807125552886791855393527292028628967729146602673500997738072337163292264777818445429753640982660145483496217752091503298306998747100572142845859988025358415393863689425122749532647399958445871086707660117818028803310911974841205457817956449816157652677345653777371660798390459411629673030314941229739873521515093856801885403696530063155349306363960683315563723984757307893310941354859062756133177069986210258574927509737001256843592742208918788481667435026694766018202595106093349719891388680377278915262607107077141133194805681912730970437480091246229385870961678189626110561518853980400969800491912689379812766369751959295310758300010426690060840537234330423647941368458650687370817029719464465322840916539833738815272281664650018043042483337037207362855800388944921715782122818650051150765608099194176028918689920370746287765133676670508145112898896095425223387978957506054641159716273922966755859234662204858894589405911469834658066802201871971656492471074523915066092552053173078644203035647018923295459911487024446601350456366749622619577850020301170884956263728768933872699906704214298249747146115100152698741293372005217184033730684594723483728693018091091408997852005423957305634973571667897685276462549330453177749860475677117314479149142257949105572271650250612008577725345931235292780741984898912251073308057392721149710258789693289532049761553710445245214266104619444394891119718630174011962233704055244403394199865690168487694505232724296646416823576484326586633136774493380857835297242794234695599136275243185004280452246601753276683035106072229856670167269262579987008318100535883812869756440011252540580099999496388996821381954431363225995137262291584702749341624980734210686892627678542079722891647499664712767733435724193692964430369715475567892341346969318093590408918833289308262843898509311193566927495667733926820487889020416578970782845675287110392947220655241601112444044737996014356725570055891398428556086890636294601793185106305995052632515638650519718045922982806359901283788962638292686075105621726990543543866869769060309908494813007252122205385555046246522256756934533949002846648671630955457677487094793305356587933187228126423129083140276943744620607809292614209979698601185946948568954634806801113175119733282092523100724262021986230173254471607670951697661773627360925947215772441173142825355239548496466709100691802676796917711771630874394745369408136264000687400505657175078613464861343219866827775857010400536591375562522515542461407802371589783229941624635709683155990017957556417100171101686302090422570616233036474055308508766429838659610822561533164783513123202687711353659910230034664148172839414606040154853469770555041144001646354853502010037184087176893699094904661215412218157339836323158320789488106552039700813795779169649115677456315818397494102669259077037138281431064269713802312775124246547608105223328293582382178782969130609950559158542105534076944280177715716788044235431182084972512730343446788774439777187954039262423392212350122115571836283361110425778770406184046560953289794962665998200078082915292750868514824549320196363589685130575930695941298546942551918254714053660971650593216063458507241387474126595057990703135492515708870416313613279670415304440685966240376934995979973232503531861940928172322126433321890644805924175035951364651746631835809645344468672153054987245902006815152316115191452597931530988770983705852117436363787070818371935315866871812810429692170262725877047960196067951443047999267757499989400471198404809643115046809873787661371667538862064073614731931946208083206181250807095996128511904997884492505838045486232217864764505462579818568851024799771068648869356303044504422418977815282257872344906568536228280100278886539656244135551135817736148901400058321679474227978728781308304670484448694737420395809108305204425891460559083870646679239642655215699044127909217063395234713661668008484422663303736543253778330131956451159921901688973667140067063387888879491065374466035818378846334339570365500510792144369982100297541846827376130199338990634963195699981042772178680754778490037196076451020972273125310300811167820652970816303517562207804666775199372576811541850037005795367457082495729561350337217553044131467060032269370965026693156852155700322150601665346859981553364972544078955836922564340882352479429536056544215304776137333543421361483899537319797064331199134840171281792576762402760785026963706687937728999905919164277515582218562250911387215031215685348993753531784871677630109647821456869736738643790437535693084594024420512564705789616178831628794139458771169041310459631764929652762120938838371892183796046718474555295590117318579246311152412499664404301308616914576025192857550318188243560062807178648641641000679151535484566262156109469048962233616247133571597231096391867918677510442066842377616578277904925282243695888189450293182691443110192658147001578181260441971902603714108488899416784013695371977654012234589634796051165890202622622536229364650491623426240055380490990562579572925102189422985270483011379577872670189903705587868324263763999855877007663878342129888771983918307112760371499880377751483297998732953860173829258942131787394090249888924176860807828295499934079862436494536701299470242840659639215809843168794748786816455341512438458920232885374934140504183478430240857510888131704436188299378154043055641203371849203040312480767836946006811481467109648506060719858924923367370662969453555368919835464504117979032704056597963983229987934561300311849001201644991388462308208320221863205146921325955643943174142722579313637742650681173282840427171371867453850775008519662284653563919934395759077079857814407833664739626029293131879993985205543627291658824223406829490253830801640548297770219541682748228466790311622156389092161337877655139221531821524342380743088401010990978991122660548070330796502461530611440461531206290647782163483691744075063514236727294380288653906310029049067410520718798251843102597887625964950365001485401829346146983806143602277326751288095347415410748820771177535732650630593728703931620084577285911467821299520739648825225651162219844671212914770630219551486053623482814069394081589468920038969553018684629497819033723584989109261793601390630917864211753340817251537277948648619069063191326262057197238740163936636284570935920373203544777141017727571462494991457849049189227851846608164534232413203484101448375623068199346313527447673900250197969137759001671019334672641936293118238121586577657888472634614431496124698508256306864795368255570103286348575722699917018385688261198765043551517347970592775778521364312015273869804591326130387327805458303694841213542360825512745944096639918642442276815353995384701452774963105459876693504803418696329588772939163228784627940676182325302131144540912139663455020149888711769058577897457099971336618740029480264042324214160586993950782899302306941101100101246543585244686346913129866600616747904169263416961841092655011257161600475834856467974505837015845423237360539336821338932801803496680088273693356760711713659140402264141954767943869782706810361623251417582293732319670519890950266859355414448988794344548589544620944734154444222051297714556078602672057785868788226874191064663093158155775186216629947996998810899181902013931023776181520581279395406845927915841145882516692025836042433137489637912749817487840965291078188089939992964326086381967697927712832062006830350185076082532227839610450289789215357148910712682764653511033389117726659240206546697026321896576061201750004780292678591623927381978499509505123262196887765295747248648163257203563239043338212643319687706661067375761002645323908578541859457943402725136355383556683335018745557480028997972002804542839559107533481060802904050944796935727392618258803330358757215687380959098933996247156710823052700400051916311682666389112580409505037970323186124070518826705489455728039064161584651794179305702568908655414485811738154263585060594704260748865315717432418553579855127870229903684557570863798968123743177314573109443218800633723191957347499927303777896301094878096015126545312138142154128672467204855124544062908595949062213558129877316248979201091154337015443256137327692052658275086953063687793226986128519386256805687935887373929173045137028437616728006232430003978954729624563437754924724192560996574537672414125032503438037767233984767263166641694526583140294209829454423438739663262242839540935907327646312374111276336177342144992167976521086985910968336646089000990779650814566062337654816227462566459901831894381010469519971316570548331166772653088129820450004177109946313835096152906613191193535564039946577000163989894871336219907866439974724847655667564152622233064259362370593068341222235873556603415850032625615126098696037085474168744590188792816973656788397329024330310320380432849862274315772344708862694845557245461555652792758108106127897066912981394350064152639269631632500163629641305504816197496949869858536972488378045091434985575468606265453289979347831062483469212644244948336832049604753390547165329502260172465601401376674574752006499851120070928895888993860524842926693243138060315361885914184261706082287212356429074368411836919549048649010605258623318515809639261032395307596829226239351991998795654935516486644074664471493457864780684267333963024482568652928107432790131465450480839993850027242061271961494700763318471438798357359338292941177755626684163087354131728028486275699920007959371958230584844573685592861617217286655827468460042885491289920146524212894264427990637265987438094915572301051096846058306612824024642410611177781196064120314492563449612175140702163433787126217266136510740936393912365374673788256551298946834658028040881485999301779065526736634934109586443382951065102400582711082000399836040022041851676400682297938292911925523526817124614030260963397105974581454685022216555624602762301512358998632186111004372298836029143719654921707439184767424531448016282255396395039260110706249864175109444091478748433018828544603553708275917823153654922371844541709896964349615486144893453081916678250714697304432802572202776041153229637375007645848194279200335828075819216808188372824718606532207669350346135012021523277152799082821106907689210496595010057026994841892420983478398344069716864040135993303029129680428371604660124831857816468292246826750001171483167165286363766585819031906189845971356494201396012637626874522777899546774944667764675398793140427561924882614846915085727759148954884203145019109442360173755569931232205759599397079849792432568761713160091627631268653941159066594812065945186673589827056853555057972758609633357145684416970172710805851533527538395336535905793525862671949108919980116225295297919071100584994991722547708459652329742166800709491455605482457669529877134182701805283151320254301947309653597729002897983594207782478380398743598591033241705398823732355709363846710390579576787559298069728139300825680757398477263269011999737740216363386448722916589695566010808104040768782866483136332676071046423957068671133877591238155131894845453769624868008924491860072484680835544397488892003798404309051474787912631877470099827729973427290085796605764366354398974434669556715031617581385558602408355687102374383191403526393332970205614844673499836713962521381228246809733778009106177742456098804849611633572865750262370981525493519214903792128839582863264838168324847201272685889469367805205272757284516477519683809952688017978785335914022164389233869279204078617839431738268822578886776809371938692007732917081886455520479863552590992993931831919116880618749064014033201719400486356408775049983474344947859025785716657512152108542382094604739200162843050801490229494739228333171999937009715599300407034426663980998768058284584074637464927891122544291710561466354777598496097311286203551182337400026049548581040443056341533556456960106257604609309407908946521555457239292271373889251286046811565055190785438481274074121101531939740832902339712325052019520012898225123353229648069661301945744979333658786713358925838797867823184853109944492133262912814947998975026017037399894496481661282392738705386262211461234188878463928566060114178953963021079478278191343410638974332897517859664369206984398470220742965000743876504786829070202810739888906151686871574800250229534112452298829120048946864530251258794555390419810633507208902433721428290622206066052982860408563725574454022136527742356348137464913103320552435895466826687514608052203178829510407497334354989292620402447732484365900150237885108149578916320190297275140603160614962864514660233416061381778192925192464538942700682099078515061194423291817473828497721341175435104195090422997885786971780892214075452336773672862647164491054128906801615121668264578959110916409272269219405799086695927258442709285696177867774728231374175785242714921421005000253292745764624718856229000617498818266585657721225699206154072841008188591500496046726112983937252488702831164123901580042897868255884839744466793244713304674764023000322211737061650063939059494696597576305180786135853022320336126240731540164367914611521168727779286048300808087313907427826839250101756355370642651781875446334429694426155068666240407938616640650809450891460669938098232702107253634913189247781843665747997348352974943084201912414271015060455855218946594549728769358669961843597539747677900373864307560148073379362910501267789859960792093111766679767126778826713456560807134362918414502489374371513101654502316036567960656259408757706832231391168701879579964933350195123036642448417068389383695650156232508923471940964915256665937882059386870116762462639115155182746479634586454374485727014811329232783930725764451799462283347093528315474603203228472548050649231373591519907118261379780149561389338202699273233285575677745027965423890926895990302671677091077555531985120087190708834790848163811452936329017447025807582381406245896157769600833953766693648717566823918823469321190620180308170305151994351735080228579621113276918991180748639018425271997313191121799796413557411831975755641214264572394703671552140810759823129452338365959005709742247537587628594639235732780070727248625187495181536703682728085424458980993574547990125437307516074156506466155370539743721756594777518511343009104939241358583443941618617867507273886437837663641715198633259226563213952450112621838052504691668970184775436289875952795410059103524982457736732162836409138025135079865033064901892863569790248375918408581240804476643551577055162242335045363715416050480502291415768496392028804035017610333369252146902814281934180363072277147747290915378691927421185413876956574501667600190417517177570100801276325420582515309496489008407140884435665615455960151186305952737751568771138073276012716916611293408248224064604489721753317907910135512780047638039404980300284234408743247034612885360139960377228463922748108061605052272829057364236049137926861426115756000160406409987946288881689304353270686533726718356896106302777097501686383618467753358563794498869339464815632311071186451528850514978739361838576285599930305852535215228443967082101939468516521633874350425587064566808754418842179785042822849999092948109870593924925409838160706375935399667881398165711287133993789077579846401062582324629120341805337510459161351845295189176797312243835680410396501669724048526018569551923691178955411341197900548492350796018688451783897760184583771165981583782766282813405686720326463016184327553576714991245616593924874667217185600636646792946950496435547714415379988871922160646311359712421210375062414895986033200506520327973636103871265115860638046443295138071037124650335782136306175107610921879238572334751390417968910763084600920118687627938491732837908100532454213569706874750105336920523631348079991360728450173790708024288042476211261899179234500987679518497172757144178862298573572223104655053778447874191085621421017565433812723685919199028212114122725756548335093444985378439504110938769909234232814398468174479080473106037551519037459075143914079797704122284177263019326342656790325106744219842445461488397316868455664453076941231162088830532325617495770444908954053742216517644146164085415136763186897644300269995635506866759753074262840651592076990769167561276013846738314241903633774030587119383048630641240791644312346475508828696712670283585399978717431655957701965966650081804597209382315778106474894005465020395123350385361216352516973675768469215271301545805576613505925474234308018123380726162863683235362770811732384487551354253171738901374962020347474731890441504150620832611995025807890091908008902293970971854838392516944756733306282642925305641454759464220121865019596774157751510442747866072287977857124580469618837426368693670219429090856995714852887945547500389718185471118951120902365124021537426994052473597037383461471612142753685083344787507437388557880611438464312026559185493941290430069101864391713277640329444792110852157209833991124902138767962905689756148041630438958240140110684552544517094245779542257679571598334882944398877225291584977716159654525169186636484293436672679094857464144961484181327902609220873110782688910988398707249128752694328020587834934883458597188901806288501808307461058381436908669866436023462160939795255774361648981203285632175251783473722755131043908505331368062843281191315962235494791594257520052004270870514649156420187571393612632011343956991555962932053055895715153763841666798294491229336771323348902303693603134110495229197477351186805956406162350866483088316806499122494690484310034697304633043406860810380813228867076603953084000587906556220174971422664110213112514198448891983303756372943728562491944047000055700910624816158242612851463213647309274992855047367939244979856927092613394653838935792407542864644558613851166620373615259816349898324902353554028623668450002267536048077693863821807646852229660527865911527248977199069685342058879044741304532182119696375235955268070155600954229849824526953273955400663424914740694234214059176386915201579216952540792832674317579871197911477866121351824390454916284471721209876176687020187176971661877664285745081942900831224760488904474967353497954816210283623864267456146268865470672181731868508846298104243002604686352292382786417912914799386696987653938245094843579710908560165069932599139975166290836237686456492683666063018315539962479687682394272893505773471517938172176574559919920626053962758693662350128320051180306081654765592294421157652958070486915603993798274039936878563713557517135186091690201010252156071921251479326308844219839478414199221086376865240812450271595305679537164076830381824844845169590414361015939668149978774338410493464237691839565808681756292634038604718939382728373355571188864096165074017454776400023932064844995444641452838007070070145450116512358045756296758743520393077307278217228717734724619004427858742517345425636323644695378655393628221392835489518933454684043635221226363157286510013654198071756645184097685408553748330960663841371572116623937163438173958743105746621388652340411268746365610834912539698685151938817051607175755374196213853931262541099209561409086514585823641412859309326443395950616743783094388522094606821455881899018098737040557892318323299478129014634964872084766995682072841119826211352057989831362022567394647037455691975340945980110273008304218630843206247161003339783273910813252926224271540240939812542398856701860028266599331236557184678759562611325077669186137595523261806816248728799637470384854671944895855553200209487263712586439064740322725614510668893480629813307274667410071436084128935938500194833657995456007733914794576613705251865407119660423282754072890145536807195983565715301655869496827984359223574687796007923585317028769389939039517410758810447824949959836551414188128151828530750840889339324801254784879479551118765535487558729582642150983660026252659264623650829798897879361627893358131663896766691904184213607831330341134216218695477712681884650379110668088985082752853463263604208232036679153952521693456004468747268731498203379073326757190146139827903348573471868454675726587360931362558120858596493070376596810051144887501767358586060958999427599568913125348801264819433883335320029376103356195522707703310889198977286794995672271442626327555701562583984241281076199507623397804723458856392847561552802735562595765020760162601054202973662272131748368923302773549090228366353344283092811589644619195624122978111736245677453009752756301140740867202425569041678051279056330905252004202520713857172455134871106861623658995426015656466258276409589675325610858474831902125572133471683381854234627577006699731050760798531609144799597450500137226891820661301320566724773256375463210694223158548614901864189141439531636117975538981181047658027940737384580489240224919793489847364330746122323776250817516613010228678433488122616728143699888722499724711676060001647237136307144598207512499236971264328306583837855208910697190986341919882300307174080301977696072849783473855923228997069815423451982846271955597575037825220932937372057278901340815491654986649775723135815545013170767157638015344978450275414964783472114213516704575469566594196488079166938635873510140788849928491520488370566232220809791685246836539994217183805175861365350781261523070742805926816083292949770312625024533496514515142851062326289608961416474118494486506970969897856683938755454553414117949256220994899919437662848536417902423311589248582899311161562085368309928048204563601807379287165831353420968519572770117331284610053780991353152629450598835983838317759626292595478650542892751786837092299549372746271724137261671608532546270938112646645541684283115812958037760519403953061730720790372487443353174456276338181920967381324865070823593856457062616205965151433449360222652400103871203094683603229763610178310486479203192367177803063553487817315502749521226790773813307301358902614413075640891764230820896071565673311138875942547343031403317587738558524582465730628057254994913940444418699983366659476902792236613374716739235767476893938684184427367108147665116039511141496294969909986000116880018814875095266603256185212657892602279668594921314967277208358511534314148855956927559428819855328062724129202159918914549592900143061191297052726891622707017049200326099909823018454359055387896087754656754192225086145011372316475457918769172761949439236134351888065048868873285406908315854283180405222009994451928360954922730788211785949344773687219828560599208479243863996140646633399460276670181392320327227209612783934386150402813636040741600531003388734681908203631088079766534950617573620876356146080227621804772857554129655639782236030503134942165088880624761181959706087214257210348169150657081176877129897414671915785543065643227884350071795816003412498315508613769690949627451795736687692053929918510180751666088562156321028886820386372888786733248764934933461621584336263429592715083682004769636475034766644870988437268179703751746137764123372224657766672481069615805597091177089427398283938318267760003795862492713560947388440955693219229798840958931632890475870928172068996620442920072042289765077084239574751944461980357646768753128527130983673662701303630144682042989668484484936858814003315324145735230322002197742696855905880080871579094147484778316742099763394228032318620887981648243712247843179961512217483683049772867094092078503796755697916565394499350006635941742283698122571309330052988392271182623426838598309331278074663008156047392751949658043186034467260242821754916151452088158326915832316380135270042301167481961343212919699741033125117056471834933766162826050228199286637763356441805000581709189503306735239880704302499578546893925954539604256911578445770618277228877908762003460900809445357001210765836857638977944794256150886776534892288989223016664730377129178528193764980929859277944604572595792536259690236723485857851695175734820986632000183038231021110181450640400126509587442469617825904096152302619822260736015925501282928076444305774707331990974724757426506506546044667956500511397638036259275761518030618198862304329571790231826257264983813737928981557319313165341464271406454184396510445657927779009711682778387841244420139342039514845360752597933512844297877390817077323507432948745784842677088911656716174930134570976662132334013216428624945932605146434257931767567691519323650275835457094367114704863947711140093419946188875213236809195062107412475236130155276268384268806090048605507907101833602165329975774919326096545564190461221113696817370064098027804754083993772363054324159641169937902874993679382267139080102065366613866075377949070247178950419259850060121194375214210047134617615795457077961555025175708325781607961836059292521773548964650748159574650179950118361420546274493234573734498893113352306604094279901267796859304136967753085029833122916735509880989065548427953958033372561264821732699219799135748142319172674248150374204909004168576546680224230710608004809331003757939833465284513025517040516962457632921804159856693834729200780853382895148704023512406570451631705761821711094585935171271569191815487944774704345997443890951853771263615805575503210307630427355064913302002715395225896231156308963528895345021425421617396908282212510405019338763235094125393301565912053306279244315640733813251095187278927275297029542569146833915980792271244755557816078998842056373879873806204534258242569444674911301593815366215260278100405484343807622515520004829169008899212758874485203508720161657001545552695171070169553525922095625196096911944433270952113688789561008173377548508180663341484519325715559547474291863600619184352284029404597906025670349664939397276060195729915751616745776167155395552849576654830651274095658264263363220617827039096836286525789027024432387473822396644597660785970228146574233799538469994840268112853100020518147481016313993537049295551930911436989735987183123200443889178544366816648677391839716598164592838193832017062049949955721283754644586565907973195807670401818131023532539677359402480645115362803142610339189773034217429986032990982364651440614735107507115744434331556214064947763162195303516565134744155199588092989937999709938877075067439498321881752361799318494451985152895997370186278625974460722745766732924580930058973421060877141200877273994395729600847250184155036731614022969649740935772362901918909487168211109187397787089699048812621914218606670288827213766457209132947428339169273051325041534574251217785248483452426820692057487920086100232538271838492893710166837302211083238866948562091336023775450436469989407094220832434991623080014923185876749834472948100311471015458301400554508189516786348630958902505262524457782347244140742945411118496006023469636638546360417402244296563437569854522583030545525883445158383511148855662000061655067318052248746875296100781170747844914306923101174397195216345396487837796465510314232264156400325095278702533892873624646125359929344382014951629438266308825895485747742821558584681699999475195631540517821846182985046591954712858690911103095120218513746254576861716780362499865721721496642343775340571443836683384340172549622060939533630718647641683567700376626501857603130421633201259070160347687869708750270318175967060703920181355604529292377887238430946820266341335970629446952965130338423715156358209798914785755054329259634342211969693030242385813451859957167181090236455859247315538740991835662563551752927316455402357680269405913690498098388934149929692782387882204571064559810723758707002034300040988111460727299559196053708087429664271102234419182334918627150764418810044305801268450828727474327691255725117176983105204266893917307983860574406911406088673804471184595949742772721474459112982125883611769433048386794092240616117205776196644860567675923228205668446690461755901447240780029084046259669357829473427442370478346722705148559430191334755074624058125079568432171085340595430965465664025842666182917015230441574091958377794897374243439905613782467517880565189561654634700164385101541215478938639878806352609314488318980023820220364279103500405646045207034429463329323684099421157222048439913212535500496994189846283105641943737409259820411225461889066956837621278948784130931300457200124612654492561475493566222917615060245739208807126462548366275218968215641256282885094721441168004655767426489416391917367027335257381933331590589088574492161646792435100608322297480040082065990320920650223464687481923835117432008105373633830575442612761553310435322700631468422702843612541584570615747898462831653155192693935614442782856614225330882365675607787352606894859581046477957823375871283467272164545844329445359560631663897700331372646803802277558971261968984700510320213106493426858801588031533226414665837494500801936008908278238322251323806435596338380931089346618346971255809561880566718731521381885473591654328756687612285021524244797409833066398895254805075382240475796706958462576696818769357450997299774680246883182318276485144829321651586170398081762444019427108499772176554406771385143852506841983304629646728776728606881867621175226832276766875306319688824079659471989323366251411416069750412497118203871975857514077406520044308537311888099444728563648993694286397503609257681507999237796892238547432724957951383589548441185968000027782697070853963286203322517769952157343773055731059132002496341247691388779392839561437394229134170475964799293940024001729268751295326290862700021765308859177090426977520795968964393946193188615574025186620482198931325931838110614242785114954514904864936790342969862477429437572997028391313737510255475264284481899064676896559668045433345294754968917819567557229523145405559205016145434537500263283453562034481130867771654977903091798062476883402530094598583158075107252682592626879296736229759778620984918923728816093278573733727292124642269457097407008004437832194917316137018914201226717594897790049706064673221699110756742301053705149864540163140217462404108447914766590218859104012711261133232028271319463733156888492756092261892967534954893427965631039635970677899160649155048983222348234900469179449156133917685830630301933659290646810850856643250987987687049512306943311474443190187363003278587646555766885293711893311187525884557313593678699174059261901165775440923169532148200882578918787981381069875823996962686837839947434923108800928122582341209347702761531414705959984861456951398993954530987437704770530504172169384530579160512498659168311988507636203988587090743647424258821840318568263477263962462659136355590441072729531965509148652852048249269336537849552606505939948109972687291009918066748662336630952187561366703796884087712477689369973157190708396792810100027939815760438750317215395140415761195087721225374804080933561190046483791689226273039573313313332557792735622005066100171804546389453086297052927366404261192606777199345592511411861738469335869666187583239125331670709739737674156001744974730522824165802675108505972334233153944092425231041122457806467702477288569109728488585543260075430630034790083067145642767282404397189504571522788818641136383720642350911081631249451408545122893250187677550987888350194535071254110051530905493590881768542335992186131034318656895625446670649932721514287381535273635992092697785979296191033427490330079031043493634998211367711765889009543667510305511373255180563543165323411209589952334530998836464752397522393603842334064074189290905187460478413190043350453016968733592800859671482595368987368984760522206680213503080661082331021576591532744342295977657184991621051201589521660039326260284980833799383350157081448264709094825881558729463060025793258725243342373208630983703825208936841366121877732439688941119079662480758149549928311908210239246145298243101270035789717567223713791585011644732745009806203273683268319950122408119514773649856625165105380214437996593342943905899381430226767198424487618026193061533219502215535950689706165524605284302158775745861644272969312718237033629357949101450826824881478218164060014955230548762288718394640386820920928683719918952274713231013419045912312635546884772309244008590818707149877253196013146798635903998330538940227369212678691556573364943794822354553263271677603656786530901477290078787289311042556242569525988867087820650431987255164861176152317891708913024879958129387349051896404911241437829382809021173945847110620792745349369303383009374827831874930652230411535564410350064397442852263315197217233475334690694281685987077513988543742287872559992851786308487152215082718180823184418171990979889808013293158724893759744112048544244024060649560937932186865467485339861255337634690786613831650074154646668210508626316529714152433989592503604099899897023262675783251289749257296423540701355619353771937347185015561911223895860583819291403395150085698894551379929790007770868685064275374197314361611487836128788378433329040101424620563315404016349158353027584485852578772463054397289789267339286226440401941715970008707566386201686078732492703336747936954573859608914537197495969344271561807965318654864932824312370023477448782656842320867068383556945505096364807388801557629978162554619490415244679229973435836849582820905065676703570287369548559072019972272768134405601071456368392972211263844748494028556148456467318561378319958029841590597596802600723443621262706168492206059104325699205454181116398263511107526549074266111914708790462050310916690693936216352322052095804225902992024991744564966525525677169907249295741150462622766507730788322144543958334297699221834661767546444736660502551363745624994917748882500216069809099394882587212777851720501316250228735328803156033253580778133690612042680569491527664992121038566648411225721299902727427329174855431994925071484195982288591918710013119531437152426769554395247563947178840813440472420550759556536205301817640783471920576225136087335676741599409219254464187365996574513586798488738741971685791028808988137059814109827723884290395598466189129641747018876608006659673060614340694179186436795813782541817789660612214010091403194587691630376894257228641763207373580881849484871060971082620128530639485456793677162685016265465966117254009797612750751161023965098984709394083050250642549026023247430309105678812154285528619520559941665244007039473123690715245160905319313074910881606106854532331125255844882276863851058449883333351110760321595753746629973087688764528350133261977901349066854146130193923984322573807365432261943390580194475433936795965788504942772581615511425421003607168439697678043729170390552009610589196235150708934815752937943683558063594215409121012852902818093133897730386661676744230281095967983991834402503542568702015179193824173583230168810275753586423512221977590958232664825415366296943142130971128781300718400879417802402871204808478104964526356430751981581491081657493194527675405085610484400206362023668229608356949378253800981969131947766570753591717143608189776526401221019427724306358925843974147152019520476580667688056555413487655483402707533961656955965710242344707224302580132033875305350027397709403367556814884467762053253070737845512278635651615220794322080164010083946834218051499434713728189740960347188664862648938004207122783814827534027567261807497696234101876914617422402000805342132109653097102878958391062603906930651596869070812451862761066578539108549142779004217693115480081716466759436518015441744168364763046692925831425963016868904795660949172562153406816845393495157275137562994715890272542916585820320263568263646160501195528357734620623759529859623462203422922839365041486362268722906910942412274265915485915051204295348403212010049576915462055774617175660918989721356418312439861235573657221478099802295794670853969268271674709291645549432335019337896490912470882669778205611915786333799172520840877374570236382772795782888012054927464631610507259091655902061100534487116504228227455106923956017886004836835728260926818917630562537440540155818822149302906320522318771965184502898979175623556426366858463133381527471463295616819217111243950620964958924657142032251047936044035140982800776500082827649279049107478911675706853704262530368614108184505168149480340415072993585307392617120353560802639176337298011615325729105226932508177652236423474318531702294233852602518668682392976037964328477895967333508915257334796495239530101198447950658067208793411907052252127742250149329333415296748975483663321414750207324839321104360178776897184055021951885491459773677285742583295394298169389014928729543412454175536493682115317032947361380864168580418706588762247693398202252411362939037730774060432839390584605824138429025310173927160942597008021126827623638908282144595203211399745866114058654585795339026049600035289184071176732604370447027140663881577910977218260189727518020661457762559099421170197067335807324895267913441030306476628798803502101092511702276808629513981551831412293323816790986954295750096297124257820684642756726080017827010563004595572134067337580918847174537058172798771435489388891879174096729318566154371888426735625707980556609376542046417908790655933312167975748912615420739110169200705951109776382245226488406074953178474970769287871517837384334139471802729381522957669096497541893138922073443356741081734035778096823844026953524599123308740516725715690271574539972000829208675338081845634304341458458896947544549643829654117194376772037438870402718423499770499197060393564619061124801719971607318296857534647226179480089016384410061620861387252359070826248360149723562411409565558049850698607182239594407077189853181289939055084752312494622480758603995741429383602161179471371076455563966102751104389577865303392635506898736160405231387443652036091101098726629443354949285371867491677852395474300034456089270754928647154141861048608476782176530161890611279166241042924879304969787822274245986627373293070523945266839889553373761167593898251648987630914378212498764916046132589003179551643541899188754797477535874408543848904723393282574196914194003302036214995441568249173068030829732043061068540055095814110105454097994690528184598921414261301303497281070417417904098688690186735153903717280847406047176403311796582568775222787115827280418658120686604725099758648040698761991992221314691380916744463661754186520321692512008719533524695654176078137048157102603273007287703125255463624804790094729899723570619539749882431696715360843197008053236847508606345016682507080736878742439499039698854414229541110440659079528658457126809284887976307646923855294087650288578507479866281998707890676544163856867117767761578611456087286743722080952261804774875616926790777002317337880138327187108969753788092764358728441947422899461601690945460159058321092518704239870763174406004911103142634658035406369607413296691470523470604624373508425064924547495995635892414220079789609977274805215322427768866919883630711840917653958152374450709756069097887211930534858032261491187279590103091491519019354461186903984248856702486610870955801311264260409647952551733087956466449206190847037852375714154842656127682146614273706062250283392885979285443055330385581345309971892492730566148169910079773788922975558192749380713854142137129597140868042014036494152686412072739651524778837915031248897219495665687595291152591474692292215418605415615256212745428404463738149535266491256610752204510368179153884837978361713766490667103076328501137421525841944093137483847747170916167095040188314920052952988425503113422578361341652873868283134505253090350815707744569000931889134222990582930215668172771893720764969019720739460700988680946586743375254027266584615142314193613495083013056592402143631269937524382443143233813050385821332795347187069243551092244961730894535205779191772305563874254817377571118806512619720328470293998641404702694157199427001299631241471873733590308719971696934372349678430454172941127060014548660400820298386881869412742156642398892899900574232070306546673925772907680377826372401504589381651776999796310467265277119580990569699448776954769472266450735496287629657310527426411859348109390394064765746100541198922181599614160413356620189016428130334280305221831336541484416168036615170917796257100169164577094302812159051313568750505320484463921124696577453896473434832283227226133044235477835346639114013318539553473785428521590655208129959503285495203417650243001443890588225680070563147307144574245050783313127021390822408250503456813092006242994317930480486083479116396397939565366121460736182357656126909925904175805570609255293382282866514250397925254519755611235294352364574028805676812359011412763255819683016386443806799422862482542494252572032912918698887040313296920667549345153611844390677441538272298659292328194776971904522606311808312250455949229587029877742622210499047369936185043549509339051626427894351435553209936213825015721885061669789790158302234887420836039061628078910951591506766980756239105886510909349003914545550145803700936538879155383455216400930968234201577569293928716307277420665571650829610350616248854459509831967379031694893859989363013409818274306168618850355663953678798749123306983008302496648283962988476282813579819798343766100745075725372038195514372775847634528072327989453681005030309316310897967318000623740293747186230095790472948104505647830848227077468408758032951063565422500085016280162833287664994200676290069955076993449154512098783242283144477864437074346911246435486078858538760457047246179168413893647357267355570064265721605544695557628049573908029738251834076593992951671902178291178710849424981132491515559575649723943263272110978290629287418794140850664139946684764931615935838476982493278624424875948123593378956501955791675827740011482311730598288782812165555795442309191537469140709449337236288849221085263522509697470177872372651996098502346427640241561233483772460549162677974634722871453844864150743777464193163411684271811342518284344602764658381323523873176791907262749312963907460767751095635008322430661101683850090747115662084459101807551086261122384807192884421613425501947533003720773326942610015720554017884916438015255770481302571635525307672460176062307314533422120213820510015443711434772224579179193358786889875004860637884868679695592591432082965276654564542937902664261984394300647769721375309911236038098149252392108663999765743589661470617726325343778283131294119628468052083002175801335388244270525617349623393255040402191031997102648320939995331189654890871291396430347701221986997780523203818153242012084763671744283334589211697179354877133951501847716861554853144695646557084932996470976036829684510037411886626278675555080350953349900460148151399484068929699958212109221531754732776646713418742900472178469776228672835761546981669100180839633602131644121570861812082807787058448691139039894709775330395118653501243342702774173620876742842929117194399246251876858719243284018939830204551130767994244620653413619531540010892848528792002342024780544173285080251260509451116306202848498279689053099612442882205823506641801148435244266950915186826082367190902046158892571117605671557501232881520152392564535807321435528940333874460022916672761790454343419114730138936243754281234986068884598384527133205127564981597649309818272084144174358581053429895222031251646546801658764514686150558123877940621735389215113356225927678298545823971939209502574432700219410927854599269195341752644046549081172634286120196395952506818857432307352765567612267541057718958163466581416668924762573941914295299517520510662983584806292536004551928487666632774114699903352513728515593895266312588189793025898770082188168950215464958162242536285161250373217954415494475817569874980498029709425933604078285712003976471360422179936945597284016950382555710427274314485463899089233624643834092136876426876465135440905106665783558845981779931286822833700210673972608358955733335139419986369757368831272323166465186491375790921867840315504710887402240891575652605787533413344893692517454288248796451849360564257805087675786107989026265386827335407007906786017721970917697033423270469393686554018532654576033810601975712350753347656422863980553326373379958444450370074101638458295034738718385524556254481728498424976066853293225062119563567822859079965903106830713644359186529439120030412573278095692460683220692734993253979826685288815146243495106906521660208222430951808178350159189409308094250139033018720301337695561872939439384651201671252781630604789252432487361371174928697498919364168523925741039539173115002310281102641330987762424512984590417022976007088379634332520297474427823032362293403116948623042297529300581898837710939883727743097028000783887039033507528381144607750119614772246391007292535345219554619156337566645050979569812904416912973577741277805331579645255860479863163038395238916111901166097215722123889751263384096869732174368382094916543756458458711763983536806692734357541224138882909468456019145626928559873164423034843809626563517020135540083418472001412043471916988779513460373017072529455165710427396450073600357736645329672440824285720557198133519188071390182751964965829047201772143729230142601023134337345054774693199758865561858076790977426699391793095578474405224638117407255643080445042384993009413404930166881530151205843133977490561852284196089000125998603078912259408624496355557330847237678236951803005523744862933066405580719046094615437578850137482995349562180696153266075759027506741242929135753606862509748380559027492160435335915006291732549106198226191378054694502497302603449035259152346162738133726385155354168077068077726515187766710924074141417074401104500697011706657203039284315331707199029375713563345191733338667424191818026442742326624429431242442549653189557711420150064276247669707373177913423334036496263439148095725554978620401459411023371784285624806964203052506558182950474759961129162663890572778599613077156141849068586316295376737869147833256537180571617932825788206915711851577601137465191964136887118729937059884112149812384475286110971490878581904478322597537936987864002666638046583553389816911425869499222571068500420225237624614849829298868547551340052492517626734517128782036452418638956506941801293837509849059775937076577007969651212542150036710133101013481760967608480331037797826215341984009070050969692286143240102919127122909685118708990698985841666352249004234308173097757648645830991798581688408472201672198526312751246561121476894260089184201517216170491811260464374541486426596346298838751154240186542961228452464329197355857914163785474148558724869873491159046439800762037827992822396241856563618175805038267063158999849809204274859551349012833953420420880546450110125842600502524812188672511380760771474722259654120328128315184994896011809891982707003412898255436176356133176089209351484850619477432349505621109720748142423467846735052466681910964643543913011335567240811713165942396711975198934294063085074788591632050174692302376200401739590008716354416559118224093562642617385266597144534342990142113381039565934144019576779927070230819674655498682976400044149897877821935093672843622827726558614061572286490937886658815435860106976175161914114270879953926237106751226993172194610096269859735060162456900874467281494642536416858756496450640424273483495332369979872142048852699493902836181883243488280782154443848189196118279467972883999776884661928539626038056679137046207712278337886394129459277656727259027126544864896564162247764591437019244085778258535821825820226831454981451904179896124284139662776768658266051017176995777745282497207286204311245467421643574701814228643786530778018877954994188786642262660513570323374220997379435301818784902234090341821930479977796175166311061097130885310454473850628971654837401015406532270639486353222378104057548614383707142444715916945673854221887537043506135815883392764041528215079140320304262081713434164092919176660243219047940837548935334058381360335136575409146858141934889720369585979391824455760628413980339178177371074289412785352071924457483969595354748399338735704269328300345926228232840818225772379945396572996937369307555491512679275656545674870790176977064389324476712964327491274326335999863478438073674086925584966299748418287365378846115302102878050379647322320666149015404488601585148674785785080030644575065389249492302515983436562509791446686356656533552068609871067692061717111517799018364712154650226772581429838590878557053870575986828373823426032339139096996020101499310437176581060007620984152436216690262278565316313918469602875531332472845744635705305841489209436255448211688871503174038313889198126947215679628942286545739272683379643865036152052388535074628854061712765079969582713753176314834072838223241620264262543788810601805277191274310465311000077527804257511229504859817995425501109744227992955982021423497591229953317742004093209629016931252078594745408285905241959685597869929579080390335796012488200449033802478831949437441005357594589183244685181210586783472931221261989426748235218829011597320666520492818983473759102982412514018081090338565137435090120842180123785481664306621547398936933538709376324435162597541086436982472398867975218656616761174669578495322704943537081614649597582745152461436622107605683642269778281880828440606452555937882560131365946609785093439940514279489794485186927873170953458159406931955748314670943091148108210270429031721376456375265108743603624903793102146312063144030359324766315391424096236117193372666795044682684814962716639102680303818403221080813031502970045032986624990909993157517763617710207423855315063646019202201709329619671760634233793975716815985034130907953453076815082862911635750673187832031277345867022019810282450985029807341191275361922922875331937782163128024984637975348580814260294853557449606779677782703282175219952633746767633409863450377733679264108400543050297176940662531764974319370464276006306634260949639513619599902739799279041357735668774791217574333192084889428590150966714542532173328117377393020774437714811884598009665422952790233056860522531995203003020968914629639370962308613801414015928972175835971961094340691174691480647265340823520435690064134823684935009115044967422389575326003727891989899683852893504167782275613770292071234876712474732315840250243483353799168262414493544309729936184696056615929583660656938867610914114458670734235413956543358193900438474073997396442477206452814055797387288349641409262873705774964613654846605541715557107124776478360287242389910782057748030549045843011659948750247449732241741170899375393037834921617915722789942404564157792790147930684704155074109985598717654060104997285533483192196276049919512417674336235175946914698211801437705007594502184988705087145418279596958029127425931361888734844424391774455380285352710827098048293965433535937931285016150422954870270601508093451472674251733278739444190475785397256462687083710322995505553796027192928602928024254587142731363970300642454406388987499001147724816213365633298597409400612316615224324915485606219864515755227697612216592395330488012962399476725226382648973386329499820517733940219530343346732759352419092058540467664263848239791036618577915707118016456339305115317663195935304337261871983798434450541022770279018986464583368749296997652666124592637987557223929296176618159443275280969589933927663005697807921945334369411187731239512109764513366315273574397476079652547972268770196401048148402795465722105556589240468029287741668433803893898843155071352678598219651417950427470967730298422142639025254993788280240820265129594480905581136432494508799914936043068778536046591819756732869632686567103237870402667661842825053649930274618443725341270126821539911516002386119163691375666508778667055725307372184206714433590559324613908748058806403825126717046335374996610579111159001189698754599546195830674166890288917937647230666776615951503327538127146885044790408570619479216438085675442025132420927997659884657809578330289826744058486355172093132770469311740222646915098162445416254462580253189906242581346017436222872314860870704549321473753015006946823033898586856377919864530704539669894114687122471523578729834900557073754802617283831565408513650382854401024292564898432199934235089752060959962935223275742861713551094274451225704351539948897894049645387493552065070363341339679214600791812682056734360890703785982224364740684886116120190749247815739058000710823119384301837413024652816165209880061616618649544940629321348556448460376590389753569731924587912281919192582398077616269707986209913850840501611619690429523856522437408368416396057321330532693880620303436544919846541954689400149736874037340953214769062674153660050601924517591696403777815975126128835207093163034117289054639222388708893810353423985984275003310033149909547315407187974051955369267624309066730517975776015882263442073758857684054309443057668137826515774345083868236869156569161528559930995473844375239063504215741554288805007566023449117601686387212219389425137640356470302288852224298465228906337448560767286430382739209695064480066817154322425112969712748770896308872448333251457260616943340304927616633997526183910188271325442799418671398027701084879458811711177685189205004009307400012299827514073040313931809047044264995115369542478595182894704674254624169262129820077661728790811286342891704087461198140620731544620903741807982869661248586537257478304200187643626855169890036106100050114574125208626248539621092696821271591020523207221188015687607852444808554999508997116216929490314199756301139751037242409452763644516740578448954846566899566703922978850616672208549947539103484944733374461268377141942413615661942951262919076846998645003358611562847169858303598103474236725476863744321784887313853336554472998733418024133927832510705930583394476477654457629969014689457158513350667095524925433727079548515696134578028756949638480595187328245380800299327314513244276924172684447956118184676068119656869322742860853469136716777577802888662947424261483571465970507629220828376781445510095404354176789984497830216479567686378709672131514356609122398354916522352064291940239984996764538187923056966628452597309726174214843740032701282831056799733076860490764799607963141434973976447858816904031869895224071610948754193719669278076413165887653937303811940065376663549144731162490216756550247022642629230642271576080412361338296138627551726396859143613169419481041628283637833654377077946789073594833828156495935461748397140376654060767436127577994677557090405078115386314304163258774032956636362983416168327592566753774876562438246256910012427728692142912569578280194986309647449355823790756566992799815807658746986300786482354422513226284529188153143088070700720631032944403782988206439453057101915433437640085036164655066993681267709116248070672639021393672555413731583292478772679395183997715699592460519549799855378331444041901042163574586563275153350672199621524413033318773173520140937304776875004692471366544765284819220193140464918228934159242223926407392752040969250360336692214749114784482102137849541048909756243773622386279534585069105969164203836681381501333505197533724325282247609199185499417347780551673779319029300093288579125435117854036846574263194582958865082839384884316986369058988819446594969785587042237367384754231203653647853079908784939373874015213153906832074833561559673318990156564297757463701485689284065436595425744417038463424160072129064649851180094626835032010333306292417425426814062972362546232537366459783974101684902548261314470418924976412113632538530843546775324381996382323428131951146513205949068306464040430458798669525549064025188701156767027319806371343339900672972574186295041219126093522066549741057369134706551489696454853329376631638571775263897069065340120250551433079237916738072382415863017454166656517360989313777954905118979264373808185024717883739935020688346474327306521728924810516713346789657914059180578753596833591295821046402583229754017732957177768724799544784102189400132054485340920887662228545931900180004240935254196916979609602768796647182365157346012130050030848459164279007520191184132605921766907327291313906267936522901834720194198005152470779932439521640229588997418441506040649878897218992721134462997619255607655817883518434763326280714641581640019232972740721770533760186932928460760921144436690240737205191234071568444703895248046182530818278455650134438562135716064529496387672915813425069656373777288655503772412351390660833906104247898043434122182291181998884762906679702288840909499430155160567841740216581204716903608035491858126733186832554213494736924002704375067780872954460078168578636829665129181083347423261256893208638097706198327607373612525039197852253758561044782960449076442339233383825180961992420354088998240726633939163205289216294024413822037896045272663353643241973357343106785071355764105081163918884482440509186940734557042990454179668879082482777277008234650742590182223708762104030239761159082186924181688851285368590207030208596994490993577558731476974810466897420907666416792678842677804785095301467985874131516227851545417008715481127147348457796812060102344981063377658146241368118206774416053995214261443768019400930850952683722993186687531557306357848086166146156759937740378626568651085190631850555944595368121551221329958301570848044962601808942997317035080970171621250292853255225677517969002223579040579673918071759249400908471172964243244394551129585345931880732255676477753285890689265507694803201143885948514503671705175990237572102113819592805186081108656374083369185346400245583521018168697505006280299902296513968037876770800233748060472139145391791113403062393697119717640844938466638747266816110049587247243725060131552010404776239819380805493676803726263375613548142890242744863824104442295451377827539890734585028595471550341026619516735912277828434011016884533977255294187094864457673533115920226482407809395121607174628205170592479691734506584871132648686360391151228318862736699880984560317412539749448711134316486855404489882030687903114819390871254261202192598421787837539675513080464404189234952256807592991246660822216450354364100629823965813817885129822437056336221701361944570563372516532527354118315125305305528964581423259415671681611296192223431504930616797094917569427413521042559678803925014379729677645065244455328860700139560551280392269673713000121297593075575903472695732465988344124911831877144998369209614028193144043479515139067214795789217949671057819273591778188660738137516312846457753428180484637205752127966788929629094428452703469376348533683217433128158058774269883624656581882426478493397601739830622143368233222854084177304276926165882123005533741591964446809210664005188031998234018811759846838153140042439454424443103027830213437448374915954613522520271722865783557785191341782487217889654437458645184250059618919042558571751949062208049253838339589935208359255131994761712864956097358069670952241557196164288458189689905646427627853063818110431920191513641139675333547228274213443506100767238071510743264938124004235695006196222092374886023457013181842059484631028905524157874896447621658648780654164306738759741124651838905597096958074693646826500159991364609871188910976187014336299283945502831362087347154365723073029497283312572777634259733756131124512100425640224567236065599985969711879031912678281932481969401734110941809310502517568933759524309901643323943123611856056367035148638234137597721659226388021493491064519766288646024430261747319566659750818504948820075159655361164080107141292079893973275497723212411318505010030654594566243436100297004525450534472554071245517882401700503358709648437563767852815833151213658880074471723211059819017360474919900296997684114265070042510468944536829164563878603630888841168424856827620922171279154061884799204686661273318319583542462856484705773034635093999323823161444748805386215790339449320211691100604999593105401138452613533042617445917772727851460611615900007063282942216030678131615895455370712882219466087772080983128638677265279920386639769445674886422110751911106777403123981876577927498542183899450159283369141612027895272520576190958243094920776920787380520181502508985456174930118298806048759436822959477898615495477979305284185938088075775750816426986491422530928625515688096486957605015566377051712148350283366790208602050933928344717961732784428341705328256429563588323498576530971970979244373994183821850709149954412489376044836005146879779881705239928088262546201667223911082910752384692902035919059081307981116079254972511871693631649275581516359173007340147094820833605677691673757258156036514401114626025267075676865290776815162704705129680896419025118071282222756365572623363005735507367964614283364462971858407190635651016178212136024365276799231187604931864964293447062804591857870577344385676701772036399151440364489916843152152581007347110772017848945226065663317649451907942986002227038292252398501803991158028715580210874341790195460767404457070266081506305611283142343950773874051846356445632810857412642895330423355092906413069932048240327189252141530227091961393685129216127246789790846061761025511570194613042510580171678875737024846833573636561703089102536331660066740554089282864870535139579328703578233464728756967225682890864353990472616072093475769092462189783426621229148249929493058462015962265070256797420656793607253940360132610238259257884355456123096429766336712599891367809475956112995363984234820847190827899899183874205141196344977906038004836316992267208214765570844964930579713267655970079468416281695931091897510077534481883090852164294671409450781544137739191362290459462356367503446788038321557251702845638396324117122294210298773008670704191981408600844193139117281396777933062980384401826584419490494692096162675190750587171337476808814534779079512264063979524897813320575191747933303671627003647723980279731397274589386865106056080812713665007573849384371734317253632425470224505341241044945119430954044098713542931019644024026917383550445644267562400486668497700006419193018678128371973301566821959423972770630286691923258800082354394575000714080439471922425593795236101958148329149729243965355603942436401829170777520918821464564111527191917066148738941024409248970719025108709890939151527827433563617160764846211454628876692836209271634646120863401561314735958154267838733198911128335581069591156242502667295333480692748714189608867157857473421188648643741907229405942986353313990519476525958497399179901176108976168235621997836314999390119603348409031690567546400653559331147688310971438158565187344063983547861049256681233946640771908535324214086862209314578387212272887797657366803886202516463190479695042075961825821029271366351119990483810463536906064081710627179147612409046040440875889309855200985745947191147646901718342063278451809820087277755794091131463831800065859107118834764185225993844490208628858121924488013665027072396053814107542413391898778404467291924556514413784294388463275792345667609300284361054034029742392079441336938858176453675742888103384044873015065173860907206238791438282601680675208490296875512577862408834021348332243126382894660376151017141501197159372308919584271959531912233246390564756750766227558138475736468177907774424529030208729028323827651093343307736920575593739125439080246732985531823454551818697813873582114737137854077764209137744504255189242231845606135572318417380665209204039242008191250022995535383482709293993063491894314440502471838047449894462671995918915279827054329565285096877306987225995057368065778313010119878871705526613245083105822768897930187999068122420857826989246792618778177776432467530803494948810812415623808837226521276279509073224844607991555854768239138484507209844369441583044994799525501643181220271447882891540964758478444793882223190574891294214045070462140880882889068251281531850477672261468362199975066652303842094271095128811081156947833090841488233183242477625034559081559329253365580127906397511903505321737817897244556815095528314263322094939456540789569699424098075954360590596504349435448867744975159171455184675642709199165046208777106340554615458317449260310779317206393233372393767588732867528358889491520297389039598044973494101486525583964707607829149362541237003989113646520578498667219068941167602617402478990552616179508296267210611898345756336318210317867408722482379933978376069384443593087070133865097210051141139993634429980724703083482230996793073218942731001172594025101215817753056051253750368947642789546576986756988646368596892769045593569769957164594533355986422747085499698047728827435327466315339328448819170315363688566818045431454126210224305774133544405714771094235681538871994778224858058182532863882001562626806617373939016302910914245804095324387094714564513598084793591223256330069333325081586413519731562222580741880597877278986780470479343203320901861529180932172028286786145103162459164398313698632357030794469083579494807057493080703190515379578921508092185698099844805628493748658516319221082583880155193123219281863122268362516219230394332943416930553384184627547607216650675745264309808891537652699134534324614245056480512713072943522479632270994673492630041519540924174583021389823636299202934473566923239342347164772285300685482265769608856009207833404703649082745867278881037623234124704432034010917136257420127873300373629042327439371832565216210548814113997616166435514307420674515220391238111093894743108245139450118168027290977836288052131490996573346763848132906497000105079685524701251660167760955680981875895990994233421328654480897782196420905408032081289254966187768918094360955610152326095758279199277744992915184474550193575518912677367904566909824396669061420424019455615351509251547573266017622412211188831584085399586192945382642313405015787148303688624158426114334679707113019365129579449318377200262039735109419794145382997482129438894363609793486960591399011872984928205523970469061762590933569907992018666595684868091347776060660271124009129940509701286024520359905546436517643624867170581242095589626776242474065578495929921501192197311881536301753981747899000555219215948586832852814030566264441021648745332498135626274548579355549493232846385658064046992611198914008762809119761328022959698921904015270355759925489557431627923195406019697380901852297844695871730946441559608122036029583941567547482722255909964187046731296492684437281012686301186016134777568747094780301264109358957343111467362995783429471755286723571645139074692993242722842938624424011700370996313685888048042053429470038964787553586995815842984018861375370128185859121501210493164174198644232386381531574502360124354895020796718203082146596001653098201841180825289266280192393441778864503944481393329207661203164298563583954839793710096631541229764382384657668308032839369644498711392330674122171594895785719996042810895561058272949305393033486156383176387222856505603198868118452118308351486401356909640226244629937010743208050008921668850623005899850402298737478857025341201995016872881318552438232763903795426402571664353561470950844216666070778720098089629014706927294604893533564735348948296800481858342370574921353066457790535039780867530318568381559348643222097870233999983227072750960353502716314351561201454846840194002833339277606272499824213963798547254814185087026388861137087180135653301388542422769791650964129687995779278285459274910892393706233460128832053070906535857497484991526624489606348956871650180028758749153374563106005640182560285839736250214023444904733281549834042473912284917946216659784420728138878190489448443707226483410515836893406540306096916074193934356118838741315496803999248258981091789335448611168998719834621188047397379277854409182474693512096326703925219981972021589748536297183949418342287857661685950332818396669200615628922638489533880211941183254345021597417284300729292668433159590789783960731953774471435571350387293895084206245864931166468937201592643034302404408071258608972616909815058747922316001641833054939114468573233261054946155903716237955560301383947497739336815874290661354505236409600886227014019504666265305632109961634534699307907340301583390252211185313244701262282467881568779793183460234400887645214597016258563564947477558877624772220037627361268306678496805365500480976668712519347521953371771736280948016496646874271941729603538618035534800232458294062965234480562251873808796130870231992391026699215046412025640093596669137935711592152222710504874464647975404472256124936405012046982631607056220338401700398637253817790818176838549601471070577697001468846992330993848042710949922048018039775470906885692450416214191360512352357099283212224946203478129378451010244360808459900289996467012377030391426598292599313597335658191729154256376529937362208372760859644501716965991311276451625451496506660089014032568372140008848638638145251080037279143064815131720457365327241645888297938195428409475068638087794745087615219663707214737547463147154779471510599849104729025769843173626398013016866078319258853363721696116704885289037337761067375260041155948931260596022565459845236193382775286328977027024474542992836930440834867820310255886160071973267357018045778084307466235665002768338993180720982393353149567272785793719263413319530812897099379668848063276466765989249781984547273242412970588086030270150624600001236172197732763720901360203205750182619034221541207087573012700048631961577871416779308737695475210044970531276727597781801778653024326955010176532280529411785672358661686245815825868419196737017860090431458565247424793205649348893221482310491299554530520685765508303108838799789859886044489891323665874680567340032196015433037655517784749757683682934823878096635974522970805994033503805424678999458108354654455974261835382142542357171559520892651602478237917919998811543556649361530621430425653461248838123236334495444418982825061994770746240610454023256617312514808245538081732118794171092832026679500424366017561872434580489248018226441041232953117281758322820571347696978104240360423662053560651065820774876532459886757640477790274512344868970300252812590800553393084298910258973198852088880476495914868081880317743553904930450919069595849289297338419061168842419109971135428641221695534193105457475784372382402150927186174337534148925222066394107889455939345032335326538745010360422793343807883776756629197737170332212383079508282647009070559766949889663453732529339575946753663242935800052170504396945719408330356061256490178240480990265428431832247216960870572600796287966108255684454423035861989034853605260313683402289745145634132117648522016398042216439665394118217717174818292772677083563429474641324643724412476160647652538553427610629015559250262999598485207256816839109329860791960264006263922466113850731056685142229898489284997771905011764353960549864813253728516760192772183040048479071640437956373649326219239834024807429727500346309628007122469630952117890666293070057262516438075224721891534376531633195709871531634547494080138746466007964285172379845670110179123701628871315819168001301877362714392689691551079628370892465890318344791570720697635004477393115419898445144220369636188847682512658043614725688739344372578331031617061473899493750433190975452425164466033184545256863791148135344203516124374208977499605571728656233179431303628261196271158735641015761175357585069935982742451794714960005912509159202031748697329601260179942474690023117631358691935704314587560463173955566878571400036517075245237807539568858247187436488750398616300129040535188983577766729056360644133667218012023359740124368689793020109033985522991968722558320066102104924760081765913921400114535966034711229751410756719927559811113156498368385079413881932986459462894385692741970491060088879150212629800893930988971037652308526410184341318762745058132643253918489660971881961287575989146610780908057490918705269016188885771739835213810889779589323938643806661402665782551369015151834130741878106234829455727267002041976757283424890426315874859323101915605178100386451570779331353766296294984372616226882168362162166679322187756070227502454730396627809786077241046633284158184723971003712768767374662999306527575992245599160176105644895862823544563380420590402499102943255307337791604789113394003409991900740147103107731292024957283262232546431598600262356531141100229132973795767062498251130327126115098261603580509828824777012475032946780472523961076539398118242188997210254631248491570975342033957316708124969354808342956349430701061925966708577587298574888857386591976789820949875058182116520501221209638265771618163037086238123663073974954585822190691691648010266459953508569910219230562789858331949203757668439810112974131917181525296140844110677192512986049122110950621339771550783829066173388509467047901223420343542640125663197741431819139589711893962456986951197913077902714516741914931690386896458573520686219618081511894030548645202163385735061197607266252742789766733727862343616825192928639566116339990445342853896483698366250865840418553544875346858563409327979571261112788814513765808460385275449705940127463821104011644230960867986650091724481346318976118156209780052454400696861049835284819514653769938276728364295294764451997167568880999619903109576379390801606955083923783639217122219047054697433086505201886135381477282996738419148750804646593389905176394732370385600363120130880805952576375062324138071059623471022566181263691995238605375183748185778834947919038261760650129527963903362112597791654613803975684543991187945562959298124622466949152789130702708380786734688887172610921251338255866621653444312488507974191370271805967074409246156689191425279367544639926517977480869604345314087096259078877512542451380846924574167444023080264097046398419997694922664581945974543005146784338490599703142358202394860436198892032535636931661655141004911189116523534816785510113313188751745112423443929277522316390227547716706023295334688825276173100746394807619036510412028424841218800352339716935603221143688421300802371392522690510608569010549742687883514835218932746117198261195836510627000681501859979647939248702970506500228416766708452282061658822870034054083510666093774543301249121949321642213288373774587357954223737193802020865016562475051898747606100266785771950521152209222278026613332604016010845442075408343451680199989649821965219051495888230248247733937196408613386809747216109034195561843481741916733564977542176996686327125558000552989105957043490380132315348315334826722819486547890701496280347851556086531738441515653548152911833284843241817438967147650757879878389001535700622134183098417686017871012143172736100150372610263379801608486746932343582097808978012781398088753487028551508683765197623235406191778398809854136947673320843297640611272881633868733638458543940359306823843900774783531259430514643403418923271053319300266662820003540401382908603371258837075651136763267231884446656399075573361821872335244132758206979366868310645486820397668991500754814487230847222185520680819999763816153381518560145956832553097611886667284907157924502720257018682545064578878690405340636965236296441833467329866437197200218868170398419953554957552173657633448893317608795879515257042710146873452800265621523027320341870322680573141501166753189361434969473117668880886347722060930274701911569661249328036469602319322225543161689375069586817059780301950794329583189805357279407857643131953409148126063312869288552476941769907435679897923179826554437888492436154184696158799426267028751831852164258020199165528621574257514894143064401193898712915240586728018183841417568536750217125294899526807428826452903471147726456568323191303454479169976682604703729672372310993904587064708943866798360666408987521898925531763532998819461540262229541319497021560622436770323409490705330611397066884676184991135961771378985058617519779886724905654397051814271397566192322369555018087217103551421931831176849512556725664698093314365334116200286993146918715151350924305034113838728629801528467731524418490978234259714022897536118884089131887993752408668986545927599695169187042749934158907195758837417048800175444037375530865994223292237626045106249740713511926323530741928650026595689998252918071385533339273820847037949378514248948287549105159449991964687626575510134789925624900984416180077921105656274391274025839306644223385060139820140200968518562153007991261638258474828170210647734071693335499555299666224656253096662636441993934115612155132445076101642407682371507392718522744035672165668619938562323026617478340269104225872284657551637301724313965621848074420385923786354233343726198184552908705153787730224711273356904078226881336188520075907743190951322033852799832096288720499986519225570841199168257281699613823926929125546791234626315004826899096481986671986847805655906635586012584491836829018171190631438540013905801785099551789873093677096531280094775752888277425255262132020438382485382485930991531288090436479181999440938304666885359242654271774120576197170856502496527198192920419339204312221044827965074773089491348474346709484155933999582376448549127936574057466344035862757997145408668110698710709547892757140753662390274029004196581647394072195659885753962867277258925493978457037128693586442810456067503811075925521114145946529647172055528359998950995776668292725058136837694003062447698093852189105625233608741587095482013551748218300850643407159030666416800505186783053795149694282605516603447094160080969589844089483807689279303454612376824799399388610851927130680577826813908246162500010109251275749877643748955020674428517142881167438035467453748102128994647415683061154150660180721009965101465921236273718668817362147970833198397467364603559314916514592066156233462976229230670216012259726538814011519353445686492110396248976311366671437971794537336554237841102724838927588571394280632609846343174385437778145833533048718675424852435739805665063948734964323772770182145736191399949620476744106474387121292517039072389101538477195563740940097939486269215492603203101850655943125873969526945062002605427386113778293096927705321467945934957877833657853322273593675043452220869245979475853543987538777525094939687914382389497900549292903776009053878625590307630683429781595397962494344847358486143739710563669936282676425402965783388742519612878147009579632364039808795235058022589271050899227637420773805733054308318404278947074957969792359352826274113107653828233960595630204268991856047866322660797941945222078705109483043124227738246354426593328094234912520550178826938535725292997285862983891561751516976211811425585070138251247356215218446055251984469041206388922964601638927559565851486661849198000177556883644488482136210254856266533121180230948661013333156213162257038679607564088570278676332332133814187681696342384277509867574522139726553251238843936738830342868028428021841505621508911695939394092179098180819760272395125355479525682894471051108905748236190464628260435400565174259762514779641665007744755032670860489776091961017729968182725914243314858916624108779216797544654583377458738375600147993641324758228353851356027920864427719934858586992178164386980325572753804252897817019676082421576062667973714336371391470259243015388525126675094993652915361201140553388445934757262501362100377031942490661837673438579987905580277404894521412108743671240461240397059463424774801866946266165350022490090332669993657507120954779464257151638667512992308281850155627832562654684936524409413963721905673967968221806376965381938152429598852452995249122756305444145776778822924652380244688495166294251464130519949085871904460896079879436041162875579927210528592991613213463017675177758830515744895297242169736305892944973055353797609438076149631132386148306057230847227205254195852168946320452931373059161913240140543672634237081953829859581658555337028649631191073977451889268088778877575461617571559660335419956982426386970782076595694977531041278699493948603955863763617708627803079478139451929356488150702840720213051331776084348913034722898336819793107025042890508627326206788176304946663469556771180923892155951764675226678762466276389996282967756200954619430583299324111866326557825268657364977823404302047691686687722859242673294992568341217649093049740148359896774064542467443689993844624369539311374738119919225469069213408220121941595154581595268669634652679957139943188208028399037064750378587754698054078152149186407396121523950948090451779220733419171657344697864314741829202901483806117925849488648705079413813504294138757977879469269957747722951392721703055986671287745709004900385320769810532484018965875904499685319054317396654337590469666976725016731746979935587386064746667651491792748359789592151463177324805153619833637724914067664073682814019432426502575394238318994278096124303976309391788337181849024330580040671289136998130090774678364324591548861367220485683037569909783656652722246129862393837838249296970945684119474547937127511639149598322859264060126152383331960623429799618177939579483780287297682451624060051571198567116948078921179158408351426091830401403256984934109545908680958310507549958287378065922784068369910281614293089613421718755955384149374757429516522583637943734807991905984731860252101026493752567731780879473098068381572288770267069924077280359147522569800158868785804041886106957957530052533924517366590364728247771651224316772202837630404969791700573791541448327917159178709143281482416031156423622227820940401944671338589658287118586052878622401112410812977620878077376881554455535508522267429145390265838970596192847578726946393747311933855972451609439753323169319192963126383453653966063645312931384367417213229815272183247468015452161979012757089420306839021947147786160316241467912682751412387843976279860929614974365543371873057530287452825624537207405747302321651899069885363575007791175372110708903488371536571009283872389684875939056944230970350356988001223372681440602347216656171940678950686003859094778192040449799545292013092734286721589348467091720724464481134169716856048784540359719861378777589186261871199593763546659996839694395572061120295320902787670704099067789027119847782648475568467184868965894510458305116795242539719728039026806100298459182990854807375041807708604028123282118248385198107857095406079771210234967012760199181018112361505634049257061780540323142055695005848767446264642485178456974204365588373846670338483560202859238317193493961933502926347586296565272420475646886062068104015088354939668302572351233258610256925878508479922487002187316292277416654216053164283441891387018344082769179216289471081821197415262364563555458851404973051279238315327442700351329023570714831529196360734805856020353938296064825704573165994989035396263307711304429871140420901048580781951130549657171296492436334712133573590986127150965371298471113362383377617381411215554528665655015926737798733815786671554140970283023555248428532619905728766731808753201609830080536093694983520514878185651766886235447866531968826944915297866862943294368059013804746817466289169731711567856269394784790517355240538546564550423649464179278167979143808591826441888029227290180547386202837306778941308711761196549190582940396120190897930519595616279803277267843594951978353742450303670882527693247714188084760256659148124500977388694200728540867203386435368041008916686839480973955434571695655103491910394190330600663822345957676961192717159417550930497465344324518381637818969888021312830644519790085710901214382344928003804471906003065545823346299701197492749146231250159593832246191767319212990408184144953607405743904009890885824005531773005257964708380406669186548255069132993139510838939727258771458613128982633931595720688082728566588032051893221357847232861697404516890221075042465189391831441761386474001328094430665097713269044093280669328133101243336303395142287889252280359167471908870750183032051086863038985896692952925116220569650448411971124354604081990917890336558608958283968891533631243067596291910735862466056710633517160368780116921995935345182515532347742855914106076675954405891349937703580530594497767736701873083929443428591373157732234117380376363208149589282382432278600759593317478854386264438116697551381522349173240098172382246183666880853698735572188237219093103636976731171157271071945973517476486612715281952034116997463685370354043690755381954995789121461617394171699798612102713343871485604849607529953350791877920486428706501468549971599506088492738710834779870626387399168946992195216548437200443481325988130596945834624192644933154764278750099302520064783044630380849544564260511713392020809931252550396639805620831437916827675281633000281064436177649439949669428867279768191458166756556510493753722698363546208591088111086859908444761940572228172390861647485585568382651226841339185751056890361093327298219767223707139728571374210481066407958113220512446919639869471553118776564563114928523819833106226716087381351095275354573714180562101978408713394497825103124362022550139889867168565514402897591546075229859212502110633564679445879126335039485330776460802618306700754837165095235174328833873723345953130455772060774884560730449035462728640523092450650657903330073312688839509067743437307128767880342554725573314973228958176735916347241303053271042904138756413925190126374483540124203716550818325735518994370001100861801152204792465981504019472881956067094146901165255064543138218532567154760426715956946112643070512529167429249036849682074787229770125837106547898369055058203201226737657292889195942284254041843216655270044893649833477297404262127122464324287326155123911062891064846770204047446033442489387020711976943478084332538778256127606881056626139121326038839839272148705709945262161955106404689910371848748790590285085803598195299437446292911241811523438025284213123317302673232526225048575366991726896998767316019545661340834549755039961614766302906648866724074016960114965597895202679111709332695145306946119976753191793924099169518637430391814320290860012650162951300526689506729892895915885927648390288473970381846801049393068117416147886843431923179621645943083061925254984909835082949589193068749675552394330663054121851970710300421169792845473308535000030403488941868354357644501759415464978944686071665738930357826509410550354569222503665589156364945657501392034420089663394616336283388636538802723265738730773498050017425431253373705672155867884141058217978235981057787138372033470803836921642251972434391144261903235303316993667254213863205135374824549533615369326404391291034179608474115653664381913342673368726256324139503229273493289722286732675624144617931095251718594853685331256263232409420581139789983072684766058088974512398626752076098832568472974467201709489409388815390366761405427810584400672968156179580674272560434859665949738837827554313335852816204567128908693033002564266648058682400097094205748040044224020292461661078178104181532180124330012180600686769716093437748926731728390212564253654918028073731899744976752532531318852440286597677111564492738201354322939681627865436577852694762975009689726736681931317693830420666326205705222342187233966281747872494723303331349691612625574115064370786907636640696812837395059886193472992809063535231868311177114209064368470255975186977528409214618303780628697846344044221144594525400178939727414234436849112085230682154454344724096175424093933088648393863737905277467557952155079062674487548478506954698711127834552365932245929764205807979370638718209569601749428670666908186264988959295592814099684538889275808466861937070665993385319850783780074843909330023793746848554006414044644111562036981803161559040735151518832714692328549073729255605083944369221265965944696505130450609058787104262491060855367904633349582285352697307898371526478605171013023067447172633325858920051186136405095897442540577178095126085206917076586164176777399540701109983696945390759720653640868730579936311504881295383980887181768530227934515183203202332671333258906689960018126161731677711344116380655671942503212668670439944574304736587958608717058015115071725174975101337413741064688122665033836109937333808140085889140464148627483265379835611669976960011406855709481318954223025965873277183011544010444770926937338196142683456657518016622808424230864469529943102462393216068397948794116730958640178603482238092866930712824080677017322841854866894536002969441601807093063968730364709155229742374650345809706776389615222563671832152265550917381569198941363970543805017805864238664259675189028664552149614715894404150988356205078677518316294764680954923322841195141012226987949224185612723502848666895912070751516390439867490101429554478662069279439530607970943931896809164739502001089900994825336455936238377304959878851745143103470715802453705690354653669908387686567390782582970017697649051319267815155044997745049571105218651144077426391179329627159928378536025504697869863828197779599109052730228017758539274797141475890894989609475500927720864328656054034164278886114274544046847910503494825492871772960855094390547869355863903669923977809442570372250922783365458733736784716528836764905473063207315353276768497624979044888969425706353972485303988181332194716381238542417268803263810800575990549966890235013278750166107709983596256842734438891699242556767768381674134518893819661483881052698756709432971267899377579637775817362896740091316761140831599685772445470610916728242657563279524886861057433638951713822265237706697370477277210047954467485199685666083965265720885094436252653572725602379248010560744484875118780277938116056244462382526310479641373732877397998568602072837585518737556622862479323959329147567616092080255535861768816790623398982560089455772951241673392331861094266913434343145114611438723203941159606931966671989826372314812967865227890178063570171510332125285132054274253770264764100392380461169327105783542959680881462939115829604922581248404830934227794031895298925302490208261010085403444552103270609960066346432396653626381491935546647428615065352108942083215754646929608254264305706191074743103259314092439715048172978910351054342968118541797989110621088827340469806814370865587150813801031344345834145788470252588722139379644932958131940955375549644107548614096246481418820267794397313347400765651891471456905347440391491813619281434543240263364594211507371612311405396893971674027545983371656986949117860684622224811276305739659221845070297248635747142422483052902853668199005475848204095735223827523713504494105318518976218170633719660264465915829025185257700385812479742206815192026419200624228344008485085954840133223553683112750256636469339778027920186657704851594836745652378738908523459845667744533272587806560167472316025490403419259638021229832885254492023425160236248671092393572450803049149256576242356149808444272320489236327317929295997507994957853738480480256121322733600653164929264466688441135171447766436522500451169295522099893754480183259058357869874201980139454481986117434566176455111134346995152791599285407630986549488359576979692053692649895360222715151323381802148907134743200271835907122038672489059826214344846616478429449614236702726833869509181037420832182495013487114215375048911985192360788441147159034552382888907873921750078867225174402258688295045037057038270893627170128575041200942020931682524319027879526100180448412846902889318544554511630983216039238547830462731814804025747978252293261174904658287012958000999868057367153447986726123970661306162890897860099863413058446705262791923595021538081764014185493398845812332157687184484409369428414863070454030510327661796121265018036974718526532147241243786185008454025226154945938549469310730197551892807857108912361240002432494148996255899461737539439779353168909558940443146468297892049118896271064046610184318452785306297394201729668115350870970372763946812349224013338008923827788926463964791632095841988555287645138522655957497414591166130489194224293764444742248510545367537619352904694568687501335176688217703327979989675663656192076658287001970041994053388541732645626191258653148267146952933847792706298741016283050399393012120041867621354150598525996932867410388206623817167417219301053153575687341620916170446605923542122012401166766280418808893993984817249332443352064832687219189498803596717864210306112993446422234510947039772479508066138567127483199279765435316081009384788096060563231196042049590418703971374371635252217577588314607932217387798452213797101530012687946022295104095771855969900089546790486720393620781719599080841308190276524626286229152258259091419902336897583957795093466924627402211902312381100725346452147343473529305467370316624770010712395245906183920002741984736171066568140553241290292725147901564160793049391605423276848351209936559554469697638084916838646676553349633109781869626781764043406773385438900550337151138563489425145880254831011957823983507362855736402243017625082834961591507355512089994138254165087294200171471316274087796165379086425549198569647374935064042155968059079080461432963213168263690151802030258944831782534813486160292059291120523363859637083948752729071939616123995894327208289447384366631871474150503322796426224258662036323068222101425723810833401081133881789835160911919367291281393071303790487233124291837289386858487268284238211077807658188373438866997258431463012601260785453314741961274262753523464288950433283179450927444956531597781494552597514908308790277561418022444174192438070607486706418280672162575553233867019247542584412021055857312158803452720292449604452542030719438548823842130618545053512090536835904225776218651538850575312630565112160740067588141763222212196837882024717542269409365055271840031177923202688682688590114227048917664517154600887048294304592720695039495149807334368026291119224321651147310068827630442628050510603307705176712733897995554541668057512992350548635774196735825745407753066088470158725714732386272241454792784531314001238761374436703545616068922727745258193941769467327097643697433023599121624999120925417780752719575972504225602112131964409975834870708793400938151282039879177066419331395623924744901120804890351849325383368373174141457506926497299880314676155517069886751340215019860370354141357209295667064963090817661436816790331404829451880392798466194172965843106396315691709484622540206110541081011394402007258161240207763569805918899416583408876963227999819685503924615399738628805579034974358333751591752566227458555933812003666029690596709785850527142886701223868958229340837855702880409298737272045490921841456651558311242462543598253758569453344388237710013477289889783126705776732785966011198906707897314531072732409088675216409203791328087139374779411017264552308054750589579575839040897129789111900088851074462509517323816227981211147331239332488185381014131909326578845270740769456332099830153360533216645897321838529889853217001816474781672367046554152728480846916537979026547295092252095242934803680995297153178517850033532411396841196310092123420742602850391770436699095773253842810512666497297147178639004459501931194012177406493827396076297000991852731610772939794330460303151075915583371039567123434989788894419635767107006426920558780499866812995584473516703837990734462777958811970827050733196274981721131567238924033171789019246065640203232726290062628180208871809642197633965823969378100583532233478845665387813766040850703158634850490794459750209016466894400568856432185735810253936154763913402951235888014392663035253509508953667300575813383131826427571425961245242891043780439738190401640321258796239629444251596534282370624383449190990421487950702712469959131612669850656739085453805807497797702153348360036589109644771622157744201406059330408653309648826381919446824954291202274077644174933348890720038009376412762363314192487113236813283765967014373773966306384248983709604319607902755939306101540886535787973902095984559318735637809675070155618518528204660997413630091112643464659392587274725081443007368965825128421195009625811959900339855361266368817674191760484860166363247504066260077205872803728253774702457347930418495897965364131360854923689930659098540288658832956082492588177366542661726471820266748065914776927547180456380534136711368166116204243116149413240597227395059849965393183738632501510091278082298275816492733585054240351053493398119785155479722385411417682054483800635899733186200085018479070029802800078752096993160460512805024390159297017666811074440128477588751116729901107142292616576770468730436536413579441658991300600345356468037100998127991358391660444531454216425570226406704625492897065168229813819374783080111771682216067979600252198499327666212196226731013086532940820595792090954096899514840443569463103643042726072080776515795674875039585593326714131042435072092962929189867822460741417943883222536403693008784205226979138365886293913761595797523927019384822959622414574587969858557164184264522306711085936767317824211056075512710543417727115363091062219674945010400984461265255926086731276102905236723347088779493437139593785032100882270964974370484895632561712832197208837538226484634889386664770487374307579833976233783776363229048507763239576024259103664860440177976417098718494900267429308595355325183252971344379737073420640851703461021533604080139313787069242898321668689555964092138109796871715653912551959768653196411945940467956125492958521741108603734800825464687807373535543478636078192282000997873725138395697489480138725152354257397125396556849856159564154123438512802070125191852241471770945446613491145260644713487151344060838404431409938376757091958272353024696750900347766470851677189642413595128857820341038270614197634156170666109532525516000419425476737841707818884211569480547270604656843367157630288674427100316899611972366548622902287993929980152557534229673737801008604417748991382919209719045023515831504004089863012410531648647567147915257444359631070015454324348034073650002460823735540324243553916657482004875498981133568817237367332955403787105785344148331415190099444610846052185176429859603536087181345419814285487214601130980681615981203695081427712426295047188602616402001188673428294959362985273123058174053444749218764730907364079230090081428194714825863170146674281772612880850861473850880528265667370067006273317286680211834403623146860656941204928416205528428383380756903640547628769757108256610688022640655220000160137623478742802008954185719130569733761372356806871943510719256578300849508265432753490054239969424615897828145279811532559675525928558244111613979441434674291702364760469811505988243238411074889032122328037188434519657205295574785595434121807736689563476744062395217179874862312280844168266818747680222117945942555653383157037711548638413538675774020265652373724873511613708284903962981756963049244696141763451502059852818971162296409716814491979458895393803387463325449722046694644581099437573356867738312058023396987512891806032254606967847821474706071973764431223319956638106328957785276462738536692336247112624075678015599983449141782017237919166478860294636333638750737086057205291306433271758890300198842637364588818598695559324102299514093461886087235892476165601148005867467286262464731551396894562795165971652389739205610460515724999335606960639037885506232677556865460627487957703842006418635409453092140534656536578019489412374100909069682179487659690605504908179249249674294658836517922087140199711997106894841468085654451919863887683276938205739754034707922566093186911122812967856460971437221690281203343045877176573916965646373615480818567454459125831647517955053100840318044201016625336314047008149710168146460890892232711689517000364539701259674907645504757698037321661951350318837293304656676721790211812925767067834670733254308384653723687599547124614818842446996405721069700626265655940823350567695530925130329179768673034722522873978001507134633922234724606096432637615635421451924087280217464980712129484725629448961618903370483966618020142709068636364190156002939928448382656667224348372707856627090019793839691035999796717950516336519142902802649687535261911945912561624547375745203867593499164916878351133550135139106457813615575139313324765416474552276207221249278791507893523442948454154760476201224265192796659036691456000043355505540444472424831438738929390964598260656606369870254902748299714546060919177351586834995584293874276751292370658188727727627756728723053017893878923075331503899378397205798666671132130804670688664760156470773152864781624954488962893874279499586062855884105950524394216978939147474343547266961118446119101260589245364810007738916385580828413018044320794283500226844589885338491306758293704365426423359721333532288566110388945637834397825228950938796622347099794694146786123476208113888927998455427763386642462270848295954893897533147262224203558214021647738554251050154851944654350836882310063642762633825460919156765914050434078216912547174012250814436682477769359311867126874746812498736405962146515142170124877262346226816265723124930086318352384591454761787538285340308129586621792028818876769829826313271719997753087902717368827375207856645238745817910991479620962810023879999088094501864153977538891618882822314270066667365120185609978902109303726576806430304143131724071967217346805627882805513869367240622097374352745213297395701206889970782245545582739107770623869424915244573820084406036048810722918789789012798018455365904666981818549580024316055235398364123276934384115461251821228858168331461676672050238851151846379376442649090125696956093193281518890878574821864355248260616059963207956371018100401561105331510831610922805072397382008987565758320395741819958380179042409787808520947842017067962383682349701149827317722427661926661374874766288124149355467878856359902847839567463216534609864437947945877167103475096473756771220593323264380093733880185822655870656583338334551753783907565479129675106355898382923862365506229187173326127473039993550515044693465263057395835968969519172862952068813370079520276407193249205857433709349456564059703513082709044962442574671945250138109438718763300656733266561879877274907412962943807508384587674911258975697612736702822227315106226890250745771307535706702749783751926818666125533173849036964348711778851606811563682655595141526078354180862835898398876427938331929472347640685353353354596070896214599968974722510975837561246874595043839815244547267145235361904959269265696662640115004376724119932268974741692737100810925258153967388065083900548774424197037108286084162344574419822936093955026858275850999866323075029478655885051879657995425561725922059725611080674963910980686259143864820501306773770719720194856811491441275112077034136893768817560671419218968444297589959055349014517802426396805613283815218147671386149653896103507055126629409920577023360010761096028956319456718908379434870166792831875407560248429630840907124365842501613237662595144749439931690610075052759984401572729242413798575152126676317881266050796245823914987273955822888894745284732731255962213312912967924972753659958935420149892546980499321692470702066735676874846039551545134618134763431730919853518204208310786570106985413762787608152425499586769853567117186956119879429833454264698986225590580428314776324626044776779824637445916277939213362278076170324107124261865487531819045198170894452572691713472877512612027397175290325584682390684506468702907391379738890695368377439230789163177195213813532458754310440821598752976963758464793684091963876563486218154588754189567422343503590171015642556874665708744595968038651266359977292047788222587891679411857795936699979228820109251155366183206929975745305165963430519419946359823391413891479809937762670508578267610204645755856781056988193966331979007162441369047518902244713295672414663907486586304305745540172306124667935979084605225616084770369215024675378394699399611035494525718240868477657248122923747993702302999831388282811682054582589519218368795155724475657624776074670106753314209187007921377543718376036950618047084224470745332611684657639534776797390378051019517640570719310611748280050089637628279152654619036437379827578914359548793588838470383620375013246399231017915084674358727389830650600756492720987242143312636233895789294688052805358072282860991413380228360447275240137030047801098870015106074959485278804109364514550687257191866260993915187027263048973314466371783487976871625481542854741127029033799353567197876326442160517215784767907607329007721185836475046963301719022180728307703165654571626352936470950142941368149462172014655935251934896229152279542288973391850225513586721797253274144097644341563501670403004486890169599309948100453771092409057140722495022418377866875392838549495720337334150480287516943067316075267179170528338286460356940149504440060966484301880714932422855383829496391743688846500614590059395480362601495905117788554526506778044015028390499101068196175739452493076385238985827575983611958357690897415606149320306994945607188365536306964394566923869167314090144593573112104231065871927232111409094703279363053078074063782541645182971932058147629515943475492607334394198753651873753562941231506544137944070001485401872533172303150574520880753203643880821271295287393061655515346846865995925023127610166600156072847502106932540015509040861440522663083389193640762674029205262320514813314592582364633988720783871306849083403794958750299504279191231455365121174380113099098872427853242761065909628286589801237930524232354668322715847488171815684922430473413886438441483173380523276819295275205343275397477853574252159865350375013817328621597039746460791722798680283323296399904292834363940914925275888754111476182258351702671534030358877314350984463601456710540884095368130508294492623941901479697717093392479607550599725582386093768863696907797330136031916073273207795640383466164571331379640244251142254430259107939646293576847270166534928174180657230457761537714730646098451930943096779022594191842956407803044769726951961680037611339683893268071410457459098499343661253398587002641943866764856280793029055537351819185060074103741787799559649575961151191187628472071527178074351852320568988456241288068964041800879186229081539961286671046602747795312034853131732861736279479013816131579822650480338327499223215404498144714429359511387949290237318327804697626607263235771218881254540742555642065073466524174360399772149041592575319591076347141896557405256543427528526788448267844648517549474350057146172825968974323441207953931265973184512672767084435311148865350434782326383066574947921593726909654794852229086939315171789068587484976199486764930947431238145354740053585530895607048350708163509977418020707450194951093529878522276391619781232467015405740033636934310433968254731105109512306663706619913753352372624842014845418966417475941672706711115233743766014208085258653169932928369213564261622490996904848189749197714005484571490153332670515702741798437673909358774460947307625213154516998008697924576157605397770660303887324519725105386007150386902960755520192902235695048535447324232536078359035201296354614711618921632843839328900075096891947741801748860599870029548901888277068472060185408718992272338356487232183168305418022867386691658101742536223644049268486329185983952590999602356377992695021523961559268091276157822699259474578268163030576180087124014430840433796220552253425540379509558825754367197515716803212682472709019487840682851856023137071357227796856447186169021574229604927326498438586066772904301009543618405113276355879204265269382064875496773664631127545394432229715343306921907796728941274265903775028872919796847938429676795407817589479608827646007400587190977503898458107727414230463069776775124131110966376229442930104829485020217614664694295969618654991376324814630783747744291000464103430585409814182797433966621400366002098211571861506178203481019578292218366686075371333475822246964362283444899798761639691555481848005585222248050005665869278725521706072558399723598596375248498368367699291686133306822026887298822405509885569820038578935824400085033776208108639436407788864186566019228897487044691984135938745011145093080752399479815401628664983889601493249448993389859999490468729877894429935358862891203532136961374357448412380876730944834928081386796338152351344617306265119703103088376206954290053629869259245523888587600541174845476740132261583980672215116132202303492742261614271261848086679242562260128368158487734753141993349435639116007443573501043120708423333416665758307879046279717520686952001865914845350192145586602165783956925051992099296172684928899634296210444394062259032392146234137951370480168751751121956494503080462615721652757349168174676243245505434184484576166355407199381151209154210225172701368908273450446498717188514089587291123252570433995833058300042409550020306674235490374459886212698767143324856089217693314202195535539974074174352802521087006808942209313664246247853920740586502116021475490200303561924834712005613105770276236860615275005427325279857732487667889275516844514290530573556264742116984618816079363520498344741070327488053165294425550011566615693889831217466647413766050692731050989754804350708512191777864726863551323875726909555598115810489292155248080484272061762590647368965142052294348801749465545112555212840826125667640651526155806676935261764639884040326272944513588424500505171107285960520409963751145696720756591480157136716534937329634722404727463354958589895066269707216089001628070867168400487129548474044149569298622200060041966136034132709469459377917638999316054473368714864201267602042465087488676147854392328420469218354831745388012862590624806394345606235885181634838438998825648908019031872587249170243660080804583075980642441054468788082470663423664511192014936257650701548195421773795506364847642543943974278517788159196210676997041127239027167465760015646686017342426092288432744963066279102500483198839546620860609739639592753389998113130856514285984986153772219623192411059918639329347685201817498433879314635309820789449781694274560037688498699218541107383216661723908095923272909774277440173327738293674697492910704193346006231506878783046927764381999508716181123832052665195945963010569540904563400265828229767770456661020019327551128092577508281891934798421801740880666427436760485933937993281953390963208235922870046768231773711757677537464073896071667060141867614327224010290603863587021672335273733173633987055961280628971085129549174307164444861525133198643103581461438638095747771189524303748008234900696367284127582944644437998151206466471303790285512236225756104185730613482534302812137854249511019494399249851474823733273763179151080545525499751148619712659988394538205298819363489057631035772479271817341193603134362576562524495822802944738684122531885145011181146261359665221883895055997027651460824953298258655322309166520940050763000773845418793542006488381589814849460287014370154446718701813850072696474920142693484918936991270749615557592196093277855170782206118621342286268188169083480770341886414375725873476840951456223396886880738945400949435752618761428211084567790516620103300945043214149780774613993868430626211841356889707024825210715699567953231974768843815416875724911024404765453623307574251550591408495374678157314273762699601119431501149819661856099548999640985377305460663414812556905663013450812067134641735572707585539771230112168356197183687495348362910999445898882028537892583163316032513622744129238197890001872946284806185738829282508419613239460175486106456812261527002414385434723259187127657465247309902677318597504597375274035238241881293022092344033999094080366446844689579041625605110298283967085114480453769122261004524933254092502937022307091469004859986095491064218213546579930422161586834246176442123627668642448895771250766362607503352403904205092528451065341136654156257079327525703479773053301628115815517622158824760803572086796476177217621367064170847183582876846362658428775247619103297384483114384154123059360604703845813302305878222165463403002156283526715057240759834648951323793866024716377951870206361774555788616604381225720147130502650441442395791755921606335455206629964211661569861423396431248851267550923067363119954068685502645851123222395624805783917691432300262728507337132672706222470393002359726560634867844126963137608877648414233768480011096456426353619399505438110911714848276031000510134706706278933565832225936146737312796565212179817386494871403316800658029777322622161612556836743824221283420516561223506643635035385589756842661798937480670881963799212115512651399033418950446593459171473418242028941400651097511287971393496542109883773942011129772503988050222754379310517706048765202960621523629851481160609929407319647277105709303135901119358017655106274727137365521528729518627276730569328679408995891534441361502778848808393197983471596117809741008049984653117958415633047699366378015954598032012737011439790196709670029622260622633238304358853611412199056313392958757203793371395438377703168860782992829495999285882864849414139486121755603526069829042296448370030155822436192974899966810808482543781499768211100188886960391267079272967904281988363594584939514325523975739446375249914302498949566253346759154332730479084823838676213970130038190945754216433220013016925721486607606089350955454845006149645355878864136926325684472609289772389039241508978433988165287233455539689558171343817112017595988123442509954199265532120245125373068172118548097858963301014495563977010915939117628456617197779753821826303620485369067664368783160625112267640704499993567173540749187022122227726375669388212507607476636345203761431524679388555582262070802981110445627938891255375999090122107291089339994768361416331499815619548830609657859193108826853316986583733190124672785517245207839185317323798710319744190026740379663243936140609296695993322256333280959348148782910511320058609752622100692057063500023159703437511059203163211510163717136701738944149076023135746064492066532709438254475905411049034937124624567548021404034805851210022972692571391400218337985508141031855744851761057337455795753517017008060383690404060981600550702027405273532978341341746862341283429006241458079302432803944664131949761088218792410948495428166796526911631792714402269568738759823142912547195364207980726135858896851042877812366488223386783550750384399493659998618761693952954299638957507198276269411899012415477754500654151491716154171221303151984230652900380333374575545045263004504844655133899419094737126342367079489105360173995890444983511086421032321695266222636267876385690080478638439192840501951090242359543260551454374330104613760439274568376720472577862393356874403665664738971022548211092387416901473911952814241831502750116828054417618308053157519002647262300173904767550365533142457387938692631394719320128201746298920183718439459387546741200804523756122521805681233947139705815835781473627361247643911999869666121007242090430992514543412915563634948801197497327921560770643908521045569401134133734560293937651505185730031515854686244052329427532229227078580341521415776423037575808553221819334305569768425652937535380252706525806069876780390856755968666891584600864243392956619036486293191979940145855914280344087717423547080980914125301191951412424123440677333594030218841363223409953188490081621816017651493043191105066026940327285769020273332471411544021775674581622034141322791062896283638436184301982916624016854209126992873023598521152568427301722540963371088622266174095978294489240541665483836687399428613424758016712849763339432973210501946093109282125646852272615644224586290983298521489282323081851567962912357450613095342307332081214616714789412614034544290258323277551948242537049682595568992007541136325166762661625265164579414822154062476775660219104858551695519055414881065173961022545415595276256459721273220182567852129252169950332780501944700387328890156606156369672988796128321769586685208193587469398065540626344636591903949698965714925134071382507846218538900125206793485441460498577012156029276199422268036863537297050920604037364294327810770588597313376240309698217913757417950270495820355496022289226188404475378137492822505974524375528707019634668048722703369374491553198008279136114337055490970253817688387669041289911188244426704658210528537762129658389638643118393586239897489033192249144672153152835090922185094149383781273684122471383598139545372182796185309992974368683703776107606742212138263122785011867200410071155258924034461565495917045241565429643070194172586815437468632346558580452590780612431059592188749037570388580070192641060520965431228601592419714547847549923872334149624327740358343690557018646300846044379752825956064223385608596664579157633586087860956779138119411216161521005460484436506724196162136324141505714455340420446747134376146730780120025301459900449460722606097615577055609431839270859810871163460092157838734678472979406237151762098063696457633544116361661314203485039650226393111478001050998676226021244415187603326823358320196414087131061241999982750422713716978433100812120191418323698070207360160994936392269546856642646241408131131472223541419799887561904153122829328828688178203392353933581303149343823255160653949996618671596116200490648244370215565168943005845754049102121903905341080585434949329528434306879827550868595885586515547614649645489653852655091967880147749511657236479971862877911593325354396248759648551880501924717805398804761857644712039496022044330137494336129482066481419162990926219452552525531476519265503912326273242781205446348576009080686976145759818587212911420484061697319272873811980935858029229053311562585130265195103113529413076911906163973054122993054693269819819389103427432452277800346403843124814471160943701764549028753664245016902895773747797519482127123662824409234176130477955093191434178467373685193320701157616553347785001590186233930053041316942431680100665855234608410740253069796038803064760749523678449533561426283484500258978754929167315363415449438577390073652243712456328064923341965712310426348682616055394832118064788700068371082873227394346476766347518227320065434459916174516132003312620340364729087224870948420013449550727983320442769194646971528598518635612430790882916867553913373392008803267950393755299365460542117883882484928784010944581347360281797194413232839855617951489555230734426868676154370805425450920461922542112591107372684805923375068576953183028239716733677646400591217976858865196678008534222687438533047010947058811414532978286518571733674081324065105616352576793896569101262847194759631116847180446448904172376824616175019218251112356903094611352039247984311235443588007331966744986208841876828757250221801186667290310057926813637130416598211534789569359640873904267110829372597203432562724474820791206120429743626516958214684644166271064187198855829336419648166717954745512445780061961276131292706814923958792179470144874318657875557386383447063365222977905420342945734381841765601708141313362544104245738691147790689068999703085377983451587560194014188955983337366031833039602752796255333144574499532031646058670308882546407392799852413694246845349796065832112818809583395830681589556101123747362599587141885898428467236783305268183256547226132891065131271859342370220321818370616169041786307052652139947947705376916620293891774703234420749878471296157269423674132597533812314904699468231124012657784283180990302553423752827942343876138995540088992896008730178046017998085897674634774621374516447157150208077998272898587261080490940863922367644007305925420745097630916529871614161241844902529494754798817166944854398895530061836462934515073014551134976884216047376356434971943989674292891023090813704421868275421813773708418815452059378483623074344849192720887301403267353039692570790970435572503443886145148542538418280710955882006830729684974502794984619811076774352106424401795570691102628818396036060397763340898834554649176787412274966793482390366910808191791849002366488377349464427655821027953464892935063302181108803775938302349131561191707542186232092062833205259981968366318120205157060927875187123777920342681130612493613789513704664204103144168130581406660475106414169124442928351781175421507090398883880113050402883475501467550917913998071721789701662383091688590915110233026582327696521359110404755220686557747504835103819504294887729353600978972398684975278428189919724211569999794698287708720850576291540001794427162028933419647310077992960369832778370231031304749432933917039938513482678713032847125975896549326476407356648281872482371331904695986924757459070095990678371762831377065367686407114772335293300905995545162959053315637761576441758021101557220232250806757407411727165704841671793082716842874149974758000421231636831999574795427946864462708423252451210090006696961437283964430019755170863827964030199374828385824784546256351467431893481865975583240030677569325006094138710298722434926122214749088249477678133911621424149858798171439402009170462944067612427704078728553975020017631068957730339441406491095241265850872767675235772367912808588180779551864727534151744169143699147534612197210250962545240593631431109143321272996112399101381687318760728941146145598044485610630418224143356992333260053258066313584407890106904812448894648889518036600058414817149201400627773648773945899894859363150963523837371756196302149197025625849606823559608296674349248109775318426463874391168291913587005555580373777032924992599479858629631890515863641551087183878120845141875428104442277814493037640003104555360569659670394454340501194839621412047964885089177449021047675691347996600119746824184282156538393504301538817797773167323597930053988933536739125565127985481376488030911677229682002333465327407407120087868971288067906969325783859244245356139112990400752134595572607407049410781695032716815521265881789780597934588395455861127497120869757254068750903468308540046812182496506558259929750525305578018094428496469426265851420573759989756889046985335961043664385375956289797452609003893770329466976061770812216021977252022609322239307142537331124155301934960289115523062341651214415219634899214592516660833312636223088186474162099509445485718007733194068782790203590435191726045600779384601349429354113177686365750417506430052498630286591294610688002713263300454484991064753189476931194365065640907221161235409394911100994839553825476557120736438199809618553663555916457570402048944898668619781784938158658077665857428069777721514491746768119190311242095742986151583334749640891151588422715820966164857956147488728067479639988693242761730458936351708022939527613982178332540460257274672714774723686157186641458840957621918471589266713202151818538432324958754070322697055128220199006703449639505797107891840018266866320170820484218891544568891846418281342531115854144896223735110238870893312635459362219314551352855964190179841177040716635393697012303051921596385509033038852264516071797394213380633366620860084217159586970924705410861719626683702333104562076529601019658945699905072275463372930976079665217812485436804622497195554729019089325987345368370991957943024902178039899912632964312688324257390122264494061096745217209083117861071066239663073492619021084096070345129746439496937603458324053472430991439063127373492014712443718433129737382346161492700006736427673767778477600232495454771593316929870940641473842846365561954073768141865623724355891157252546509369274672762508880531525614542488119953963386066165554623453843757003592284219396400684462571931508811574097522859571110548924468294783892152138204917547131152618732646033650843927146391839697920945296380936694661846935390911008974910698552221261748560658570146489911129540212618477398451646264415436000847256130053015058526237844272953366469887222770831746476262380462981334273218801851670098830026618075096395611203144405667743241229902239945627089209752914215387259912198940438193958474583005171648107501366176233434238845867217230002654514009625216744113739556332289978878361679268467464386885130497009555130705705199876085468891426714471835258063649332142131891515090475912219801740521217452246272998566680910893206834052585582529835939990404982728898516797743636284475162797520175313465236755846774223261792803161457813382513328505767011674343869500823453487480420032425041008730335980511380198287133816471473537350181186644121445708008607218156166557662708789599965505888874878262801716195249090180465724174672150213304842122850267068237425447620348792051607650853966334381252264433388408092028633507285961828792792178585747885365733762563550307386796489495365967592405598739180238228423102895310665905278072256730554400536605660177537721621475190363723900466317947692864323666432355234895456086036243075330652165426393213786422672016458459804791807005941819329121753492446591139165510738402462702386791779151981069004916050198573487708773325799347587130714172481870359305822160493251563488113284239392769096005650057702818355557827183190995690070494528893748704190219787083416982950085070030735361391863987481698266349662389597503913931338051446517642634267843881572421088145979452014532308600560307068641306152365716155102612317038863881091746556543804892083398250969724654059467007597171653345263596331095544345644879965923915476194413018497808416939335477881743172443857281232614133354005576355964885527716566510169139959420833072183277415713639913440967384262411025700962782948597909207623548670196935411780187235963219683842349868921290492127344066857423436350605690968418721036564073351386161644246849644470443366475434730015392025232643360802215343148685618768158920188001995707094230099623700392729543624751132120376821049390519440085298433778824333771606687677549739378339235227309424674421739923187980821302941752037195945151332932144494644591564424107636253733359911082710992708211879667821678644012279571989684324639892561975410423490155941632078347049485924010748055487302255054992464638237779090634150952412208965620170770235419279217434980766474238288150291614288009841020531472219719883321167558285341370384882271706187205821148363595800013353389784179454678702232555709615289818983133189692896252595117837796253423563860856919013561981858449235284619102546201641089360746615867048521763051158964774999670231172152971630189710832132967019225124427078006792902192077947315236626579905980365863197167272015671406513842594654864257393544316880313758121869385908119589766194320479434661352054636998242806028206713017865361298224123454733579922157569114495112604061573573867999608068547497175456976061375028770500593887542585370549633058960501129130128893974631741140418139104929537094246711065538053801954421130524235615257180976024215455293535620059660276491814218561346602780689176159305118715784725853547987443402146790210891334474555355669962522647647444434776936131802879833812691438229311590748761270050998772983670843283163469532858722792501124771491786870996918542785046746674082520801846493697309382931118203021139012098868180966298224117770456618068247390452278319595075837568347610612950332630882622172451782859605025207049557119968334089305541808446709297518824544427570704097027344009039087839341386813238773267472241837974841833654344338173228401577819096015349548808154298305789915987599884377628348964320202418969940811396507991084052375841507366495771979754625702640618214153062932106471615868035153373820439792271179156400124647527271895225195698786365779834851247482758171012631975637260724374954393163158057420156228834471269784886353796375826236406973041249472547391407554206896503621970791542175264840980949138882385981692263853236898796167030309239933965718419512363066301416888096961877242298492783383631625743973073884170398627572744879521188156450477402895524914494485246436471082113185281173099161951170259275884225207672361762401729679632180374414130056511140009933368228230129787103284327071858758711740416595459828315457159464522052528969995672997491540506460502493450210326475732216930271198176800588178476547007062589725547614253891900079935105360673023770915608229247408217520838280209454384901409596193000366526826049995180896113465565438159482866839359638074974963983722922312891357718006304451534847710649918834391260865949987128331281169543181279339407960682709774659352672703412545258850344849342300245364364332928953329769368894106007437784459997989202426887613863028253476107362906925976440488800499256043880755276349956112992868778343017431227392511056007442842725253618272261271866837896207577672795237054132998633671309617103724141303797273909235564000307419758982848768340227384988442134591230224023377845480579036799542648076262213305673908458456675142092129863658873853067063767415915690720365441853410435509239299427529158961133138736626597815160220183533940855665093017284137278836411251541372403752842038020638742544669691228535859788516601580303277426131162112783759017568913821786728660372287150494929945037776209634269013039343838879377254136501261876342321515301808314333793230332505868695744851557304276613580572896802305062293277683683581885121338252889467563187379167314664478486140743234174474560163329702521347500452510688302426750480492431254433815145656378829153960069388297301371598467216769672667034620088067809718329898090028535203403772425632974312606532969290665954823667274286020417927778417899215214340087339572061695676203320474281690442773624471957601816856863917863705921628085860350188332542062841066780096870454583539534236912509054115828732964952428367507322872930889814204935707536726228249445186679245066295721116650612099635884770597442175213766793893569198624959492600683416137886244838522441562603768805044410971819897992033331897392358190831904912113511354057129075035991582005828933374554751743586478281688577692664413298904746333828901314157250515365152400080897112902649076040725658011602904798429151802303230970060656621205516489494682032527111218848268264508679122660604265001287169756034274698587818237572599592761021092970901815534851248559084178611361516696046705383481378829029548272800975201631642735543589914118749683548504677471522304911700915888846526051343269713367522974597724914072466593388600599109207036467099595271691124077296944230006382441450884536932533452818786519196515837384515921918344906750992982572274131301881034299816858254961830596398645629541485481304334409537234776586648461102790070289564834872136541732668065497972368311442577576323289333451155769079206345415619531833571724682835903450968565927708200313599848862719345869459377456624478032161696482303535534237366878443855069920280894218311070475566700185478669535108242926110811480258180144296826472685964502936366179614376417091130370478565023371890625388682741144604488778944479869251412174614862001845185393457702408236530285596306206170383246357186111434476899561508062223476158332385568252488433515815394687370868966127447913590508351605323195465265797621089713083622636330327633462799278086773172605795235133155124524808596217075810856994111256306211967319161369901882669053972793416933177740949260798729004269352514962575332672095586659724784389254761785724192282502880562488702311563559966908700048620235021263239159988672921065346688711623057523747155584119388939158399902850305443182401344255826354359357834899913502765742269211241211149849681373212750405550003408293972439806511191754419854376914992673646099897922000339759930495328967511665303973179315281844476878830858223065159130084466209677124792527908855742684948732474491189253710052532814755797758000312428715604437284765259770969429549161109182262942681511810714264108837284540544780209696758792441570073991476831584118731079729029811901377276843875195296466036109955622784968703547525117927969171853635654724016162382427305510442879608943172241358814067696547729146711825918338448979906420036559671934505226120530859695292137239759509249478815956224330946614006851209938126032416121265564206736260968511203228693290094510705016290720550564486109259413237967848439276158266019549042158884807368988212339305953955707364005752052517503274206170814772024969275144817761010523317323380832412536234114565300733354125779417469628932132771684961833300466473134176871175002131198608097003425188048960924361199885710517215571811666911053706765721953741616994600136301337793019577016840341626465049238803292951025447246749498380538751298519971818604516025722295561417554460335608927663392769821215151383268567212269605352977108793024746795981716172238337188182700451499265077090998565185755328265375306429153219858572389683072630202250993317506239406375413266577529033543972616132890166390903820440408229159306756683471519135608696893983967722665835191115180495428241749554522703702997303012702589229528452889631938342919900939772955703457417801250579963442510939613066588540553019969567359001717003182259029130904307182308863984625418662397665544801716773096212032518124568286969323804319064634401733245498877267319354033857342358219414426095223453788570183538930261861180886147273968616058488344698960100690683772322027534203389832153652660204612852192777592825559343607311932002074857999459877198360764681938983703313348833661367417395098255699726200720667473228565693224214457934047243756175161827384892428908497369885526529222525714486316754012228588225607431300563401228711177430373993053507705007569216888409666413223034845460620517886443936073842311433530718002974031600898983377672201362388790970842063486503394888585810358533875870785825372912487209657399775306683081350962916519877001276896752228987036286148178291956280577216224528914318455718519999132993071637575364702602809217603471859828952515431152397788328220034019821222381415278611253793230920850035838806430741624317117333347723235386652951275412443447802067641018475583828862078221291185784310208996077901292368900688925426348297777024941246361938013046509625931521252202320742518465384945814400994382654192408278700657501894775027737350845048623834583477719035795595626877519305125765116185136478698210125122145785346268114660638565594513912716864767247878862525846827408954965635408700527020253893962214836726848817420688106320879557217026107533689804315704692614853877989119436022613792113047616397223183209842141176105457456996691443848098571457452805195525040986327037034699245748596482299810661849029749131788169555806816268279799992101581532322759316194696275824586609348464036474477273515988652628407964052566555865844553704205811457761750801740541874051475094621254194941791149073086706367747509686396798421559724932837978421238751212518576845153037303578343191929025997889486313505010642692561272234338496982771135782794271962553056939079078637181082760420035735412389685160200992140566611943946652495145563427616153089263180861631661986361595826217024357723471949986987611800693019614526065699831695893200406194289516557065823340399261831126645159900539942684386873977770857792624488222299285618795278741056087367316102503844734207039259019142808744677895932866135244925238842074205701916277183224712872529528630835079643707961707197443844608096710539478535215785428562231143164615390986442409027333596362530781572371786772850588541843631627985176542704787589096408664759694062330210376221857084279422351902515988228418050044719081144824987263445907143857856819738166933019655594544555937563949746609434343370019320138141643889205690814006749863401166920984235842561328387797396615274972384532542044808851997061833047162274895113209870170680032210013625498753658908175199556135215552843083850722046153830562373474559867318308391425294716314216354350657961557152597278964314564136377450878544314596939643674939372708824461868520695179386694363716346943755686475114807608609452864556668219461140965707235377218291900065016286952783294276870267508527215360963561076906338129914897116612692959719828948593793729046415467593297923031721737661527010574202365294504181996128102534247474425720198564755880052186247903043899934791499702660815418267227124324859505413432091346207058034554675468562910665288969516572067242147804846427594884596736036804897146317491357684387975015262039595905788653037077834290643536009690620463645550295265605768460584353795237338301913907525797824808925938334508461247373218980205673588250805850287292553331949096042630291091327434577390909139746117270267617023241943070639041989338462593174598770865929835690722999966248778322265076917142971516495106987257683677934403659904087846018369017839074958462907215822753577996402648292463843513160674778811920065149281108722563378953848645539146514515571114166345167085907846148179214644663536031764512112115906842158547774041581634432910423482562474428273888400596958351067271245193657569846010915328926463327410708476554946499056875091707432885365970216551076240655600666278852797772030315355385343995985539025242740464232070200921854485883170140490150123758865550756669515984788878519817253024011436277092531799974731331604117244084131797219660355935530935850568512924364685283675159230535799963045068875466481549704190407029801984278411746067240924471623295395158104452756332747995753720663953251586514217971788946926332619682693115902095236856791370077455043045166718317692291028387179348766596693089483386392223847722804527696931126578487759609712658083796770427867636550652140191772210133057321062496873095118532009177172938686374459091036705572371616639605181462922502630930959750962250434601990122513738908306418940966946845686913346254716701495311249433255331186115258761766683014273017880662342035994026730166474101374298317565565717027422280294896898391250237381301932398268365675483680891707324126352123240372267746092867336660177368236127304500558840700546001703651934116129713228932670219449416971912852037914645261175179313703792839244574212750808632705901476486692779728856451266636597936275766564280127087406796106688788824743057425074369336769066835192812278900107317373637272759712182373317790092135046644606836783942472661694867413162892204176617941225693385064466628790378896310052105470144589959600437549157416948377225970189183555975143615634503895011938337007556093711469324898203874013627687984704721015540828100490918717817717630048348614019971085282033355395607028266629531162936655419604146040916521280973523660052651713933964581352597582362812020355801751524236521898062987735882449957336330939396829092953218151338348962577659829745546206565767481925941592225215225774068524085157128805126289876189458658018742271449469047245974915224789284274464086638449190821803183040114451761696435872153423594357090538181198693802291267659139756162263351974435069697467490557419946574910844910523431240436373463405512489749468285332345747231948490071846517794448372610877581296074088860329996783106519410409730453562258961191944441747148241163244511478826746171375192537340536651461174603159566856724960339432755792787154390607241663286134969458103037393374114421028160741974825521208793738346717941145494772536000568572021557561376744149981688446480693942397405203432557705100341803742613950251438936168984610584074227950771044782020522413596622907442222627527818142775634947514710698232717330577645553656938397399214463077687080993004407324512061199094945265464365875942977072621962521164873446453657242860215911575896298460857684942874377194267378091177515119696407903138047747120994699106866784103746949622165461813325731869437696102857454408148648108671613682672035446633393363034120163276430490473396424826338733116717358588681908463946561945986928303208738206302874431367554792910620905169540129453922381253803430853921118566812345207028267700811072864299287032959469911507251064576439305007253550779754536775510382743127758859547670428667164351822929926592399023108695285574467576131205613526654929551955190283040820743363873269679784033074418910335526332453608472356771998411224488683239586867583962829819064711460347406110619915953089550797857917516825522354397302046133785455633243010218147077513334860507174769708478963919408625360287130255681675024631260128261963630607323331519266804668204440970662269795351627995702251768213037523089665606445420052862394360016457200708372818992852226661277999422847202727929127022648085001747605385152182414781650126773389549102226513289185952645985004323044718724047395236971274862408886799647672285131159555517822642606870534087424691887182512720199458143304041663504104989441698923085418227469801317020621829059313627973398907863446202795265563383260505064173896345890084145546835687534044250003871683882304148357692942547216078091272000089485639728668186870036678189950947689405899298313748813151010979408924549362761196680956124778518557314963506607502759393947594061053493307707415785475280042385651458773442725908195715426259263644602915823528457540584444056331194721335038172356923150913142282238368518856656651865373344773019115123102791074295850792661484198851415611783091074497369015280295153367823915353804789619364715991968418395211157177647566107990463827223831282999172461041612752842533588134783764875510548751073914473464823804804270830300881936909253871676040236316993309301792954310364919976684373048634971140806272514438894388695488553205699770262270196703133179973920594038072165744056116765860981029227411626619952145852242534791998757779139594196509871448090866559089486759320279616076834714879932578184668914915812121996089304111479275389002326645787032739163759187560929948108789289188099926982157239054509151993876202286852592698236309059422145432354558485061358167957704836489810149226711671725854458984890569711377749820196449232687388312249245089264929123104537930542668234616743331693363477550733672288978177368854193898095674816389992559301761780966473222217821525561322163640391585715569798569447651881727669407081450811191306703207323189938992355099060495849327887609303679030352186385751320609836568920921756143562397213241975558082280273138600980763527676090472441924263676495878275271649900811838069848681389145612688747951865772085611778487417088759689119631797145835583657673463272942747787514699058954065001520833996088146373898897568906488053220857336098987838687599776320231306567420301393124608600089499719950280589601378377618857639152960130675314714161181691400411062468474173634002062261303585477565690096381593535607190587467598171332036537212664345932008501715020974408942969770555115306872471940029785975022568787592658302397639761297508038736393546730783074929214039525059093892152345316658799768088263926936393632008565746796504473277608438178319244445965026762021649858950288138727451196962938949943125980743432692849555369295128858231764394570922429466091958656352817344578877560208324063746662022397766998056070325975403866156161533374560726634614603818934854010809333599531830038522625029315581750679616973187456401016280142377799564595182899683582659906275199182399186499447527688995869873915871093999800826655233074765938842748166089679271071229835694427759787169135249054850136399729163861656644202835217732492298599467547750911037880184719715999393270229281944458140309842483108609213282822053083664564400098855870506471324574183880790540769254723953525867216248231875174383690020518325871174787214787367772278342065255316716269721781522843853200026352330735849760440836077459496311890575273671097150294252989880765444764662558818271198711981608127921346527243326831620275015300292066217682724486485181771713809709781301199488883388737589672329989825935607084295487164544300933741774576039665054127840410383033059196938652755773880611475657727998739047196036438923876274136570299542995983400797621938172843196422818676186354237356650181871048076125740999977907463876162788435459308332440305370384425203228258815742020612730277940290883085251495898495857497415934425138366511174720152830200360060841024675334327938639463818854997638250507281469923028263788707148342965542025538942714463191140888921000979256323294059454323610629621309783334431649403675774652122692677154513856933483360851516920957267615195178686922457788461517238876705196499292211968530003446086700360535079910452421144768464716168884280968093470163935298966151961771131113175779323451188265959795311303327076682954244892052299110456590899551758199251681704929264495866076471713502228428630426872685108023417722729104035476285057832615732777974792161450756140917182677532099235702636367151395840295743951850503078736486355741757219794811853485986254016023866059183182012801647234198229862525030325173032828402060593878933090370971557686874177567794554204915183442254589994903960330247285654583060728279897109772225092076319305586528202547497908402709517378103878081712702950389572730691482197388511171355542552070163834616862120300188711272436772362292202465460812782601331345623002122673616647185816367070696911277002760736756379216971805839593718720995705064287390974783131489284801164349202637872832473520216125638190145479064417019251476634550016983851459643986051748788612563120260981447677726004638569462994561037780207870466349720289950637799493361295501559812873211398624332553782513418306508752030309503178931044187902950014385702520602581490794342060681223831796026834512537753526188258073942711933891522689522280355196268169014125818630873478155910278098154052067819458258482007815331125069738454554773352615198467385380307268179753399980122243202898263644148329789879747904561231993552207573817466500567889501082500139422626254988615543377537111503835742517228939574724836052221111937121530545356560816912531767031065602076765572880527514631039477026037630074424719160929811638844818112972473724481328317813467512308796598467407465435147801303175860351711954331814071033995392551301754217388201739374262636345214807325546013875052511539443809962204068760977666720671069228613717260306624073237666436424222066076934816919552361788434597559477121397323975014664294321471170728655320542298685616545629173704780240422229332123640543203395033092173101247988667858152357230953569443761913929416739601137690145737527065305332041761614520433009799953117485803956647089967641999159417523698311077470976269144983891156711636453408169212284437210244747952549036932316386259647257965080885297526118679707485999109174611382735427848538407123062672784026787306868359902699571574072298905370253472972576984396607560258286864029424926845705839002097663318859925490626683040553977224907692363121578273551123569681621405783287902045838258281548314902390171970365683902627041416564809518306279760664433938682395032227228754702828219294502822955476037401286643249542120709902145203772188476426677688786708226012849272532351615539812144694142335743471517321156129349082806393852558486547593697534944534063429362652674039017233110636297644520475855740295304220505556089348357095325151632487126998051396448460906014707439849176821841159413198930263285779462769759372439839039168842807430415233971653563644195258711755867242797096169055963668692113329362347908565895747026011830623201667226504558139677507753365605104061670434549612477266377375201956731874226923230210968375645913817816257552498769606281259696800298960118830417695770408769180102251735457162729540287107923694700370425602434199847841671351820571242701142761537540499420108650937252140989936172316307222060340258160130121257065863117447963664686131357841452806542512489588251386635798221418931617812393045207668035547382102378104637020496390487989630811849128223855339030175085357783835977707654889304875896157334104116805502785849070404906912873987834370652900809409465690005979161961954134408292843380471271259052327387458645480609442806927754765696398059549575157547661156499935172505459638404101276878524627339551030539965263798865903572761965427225589034427208705606267431007166721560856354796769135467759893676121388867683683871906813347948391860930119878327630955147530355461509414418658952818950955946907003351468899855710553049175617032203269954258969678401581975429208099206716471055499828609856231929647204358343331554460132161538675043595717033205818652374281079668196952587656745692358061806977900956842849044561857284396322630068718615339397261639524160875506297880604976354267711293920348946589273189568010046579544053284528271264048658876187622128990153532188495399809128329814377273773239695278075205168723542948150028335052635685285942036666368791001436235267791017341110108145202648617774420143278183478017314325633998385769792589050159564472361301620403886704378541907210961077002813991371027289792425254761477398233243196752537230602007732688367101922293335596045845203406229756220415845369903750934269714399778872214027519436943283414911565359909380770586600536418135947758270465783453970282159380632567976158024198083390495266177685899861589767797430593455420788772998807342424775862682426286874086753413161372757830434115172988994235126160017075509150361539629949448163202215746097423594050222792493473366626216386849197626959454305584061041844998145351221160667110059131591952378746481950994663457174590501155298827424834649189326766314898477384979944049518455361454570293093689273797446921385347357465277818052682267929219497504162644738282913567083618549069066702588547354239918227957991162985898243801871429869317129577114936967478290395455158401305049191218711310774810650034074026467590438638200266526992735942342165880416600395984574254826736715797453446725845801766652843003989455001824660317752233063299719346062454917298875965671113851351218012147691964777218646077912934998622933832545790430909196127238373185342886030248706506249624468623020321010725435448836433335015281490875258214124483404524334327200076404529348063694612041139124325081828944164769303098824719919361072145315854495729004321763665580200506922159161836842478607580147303269264300004414978858425261314841640944973192433494529957897428765286488741458167911795824742232904024015807122105238309253525328004152433271594057853128284862763532971333380644727108661544492973238644635665802219989401417999077919405351548166596741038042745128927450056172637627882609975971458557634477414208860971904102856909971461480788563174096937223961564668643490667133768345274649891462294146773254957604965657900402496613477562029302178880050912858588161272422646299690968725486215752535548135906026372376335831749101204442598154637024025394413091621216715870634524681534214927999131605870971846509810212873069958631857434805187554857894659775380778076366243819486815029385148739785657812592966077252565304437528352312939453850193887565378985886790472234501363371946645449748358344590731570397965430120308234957927606913515907961220290863518717107194207730477411613553232191356103004654920708171513578712522625154033064381449626340674956278513970354037550738749796663994741354649980855916118880934646790269888274360567156879884186385715922190058279875250048336602601956168462770058057381615900037168081649007142759825644662970627300854245150912675840333209748358074808661739063629598599804976204930959128171773462994039190953259580030329341025391056532414407434978600113581926659513003705737893536650166964120624462738136456663744532667378958925681523086915696643324272181259190657994610177379642306343136552339345855432842588086478955534657751481554653620351464073171716679137991494857707059616966268901460561464835255703162119001098349217280405599365386297102471434668158285724454842105084402573979872702925533255567967441838152234197373510447153899352146915441044571587573315082839813096902151444382024270794576056612366088515266551726499857000721410389826967362044169683564721746888838696713604977331568515485602286229772963476885305218075932177639062864271580831505544294009647724131687372945234507625858247606509295141884762718537857721963227628564495916633172078675972047988671607252244399037361565923599754483281676930832575159720424491253627152025817542504798914870951067777115414382272494170630180445047808551836296992458567188804942378710084633739872102733904929345800776344137674095456566105496214897947763261594396057363987299633509631185853827344471912798926504532677070647516244780234196007590794811943202948421733222257248311320560042584662841635728517712638854961890173366448227809233851220712691026498526466850227039045577254129580833847562942412009074935541211463454059769463927605638521670439180280441947701156576317428678745305944414837134430502590868600672591454973767338424714128335724431339275257755080087583362168636113161070781911174802115594981402439957755274061332647394108746166951256853273085108747158756963790516115166807582903149949224266787625371163734678519551503595532957888592085170086906016603628004297746612350045394453715379212694158742528621604671422020956750935616060496958597546064232888836122707755111065709181403140943786303497609743383402223997479385229510866475953870499351850242623673658278582465426582084793521587067388864637648592356036865573568595363613315956851390453571295362904516247773490948195713504686192826155230583779605477492849498266239932573676809210946881261746014325355694667086965621351032691569357779088537352609719489781773655435093079093405502557263615474203798428731901419714410780839993254557403652086617806937604143537555524910938800160481077161656141305153810984879908947710237643188723025601314652965794731459945486755817264508223102590775843044373448269473384484220950110505449614686457819226081465823698398665080240459235099562807146366722746357727438887888677303469036937123663362396745610321321071768605359308429980875897709725517721547627008024519729844753219313891947342766549013671507924921274025824649090902173373126523958301166834730339658429596340646552615394415221820749001402799475009345347068811584441685019649173607388394170014216907712571075957356319421387071739894159803075567008627936262868313615618759696513423810988334077071163544656616298133820517630520510636701111868447887094191364186934007913891424085215217019190936872276589009373410900991160287930287435459997009721115934222554560497328483293697427016454260087016996221843240735855133543467420071592623216359721734083498963212304825402946023961298545522354007695236364134143167935791069106443762203898436407613507830762225105051220944413372280539962023654591189985521299444499161354747683983892101986896291622188729289528589908810206160846935540142565525380961097789989059608398452039201586052528331706973548936199275031682656242853384021108251861738660443354737180967555640490347743861896909798728602682978211686329486540796619483010659663777894861436249847560582764679455483133964257990617992894388956700750453278611863934081275122949421582171439694158771068428217862979993879387677603023794319507823596780192917406629893232964251233979540128585540842521856339612425877534922006896654254298231725979025145922189539691484290460400082050799217383642239442882373684469606106169772589888175135614037383804982431023713560551764898713960663693284938019320509022550549809851962263801132609871162800721339988158931577460563501382177601159559324092103264876463803867280844279172748611452508107092341836789798367306641902047203227900238391930651280860670004727631567706571187726962348151670641138882053235559533853149779474988628329435715136177830447284870726259302830178428885365555616496505358013042229922086455359575294001679068025818254897314697591091397749405206817986242015409408459272282905748932615992007752215978306127456465051511854776225405181106913857157212776795490129431405525318491482847563526297966892875567525025841467277290025477689993524249192844866456447969110669471074933225499034528840015110243084024967569609762831243268762405416057184142258520161479700837755654253486721845966913152323940462442842647685081475918006643208798863894083780954382797568181370063740699329464059387065171509371631879142285163163868911181240858632250968479924296060525241720092913748944435800569082916406153739369371434181050246419130219112971060950208312562075392396482483165545366117330335209383361296349214861559320375127906286189626962656292247003644451953169278620790286575541809933608580335196248748218619877697033328630709604812725263045716124716768503262641909897581465960392807691020504507026436623811810642451397671288262025577792720385198779937262972682100163844074515094337969329103385852721105543873067557746539422892236610256818035122353412614979004266774915528171396283329227992408367276828705153525066310568946819407413239384446605831578937925190451342259451246771210344475130043588638274482273480439034820356722279783098001503705893557976661237281462177288013535055655479000860429533802828692526260523271951172899401921623370675425520970760583548680431883405519236282180368477846531303439574154843962095399131539749742612703683989068273444942963425800412301327198990346206566591143297299272182049886359143345578562342772248298017210959745925444936434374536751039333477628555378769441139614783621759990244863430216567515850962885000802135459879282910482227205171868731688279978580784744311144417303641262395163755987204775614328691643894383750919426798920141838960845642647687683896808666053902215572471997463864135637157434954435787881074360203314027558084545689537932595061819384691263538034005100183372467992557783484143878477266784628584781854135665846007776608590853251662677287163894249960313071506279023660548481200370571969225493730488406279498224715060751253783359353253750352795984787614040990253883692688133618190075238626880529426006060525531620389690362051638164515655125289422177719403165672504585623791809559873328652577627539859471186664339561968721593869247543219299706932959621552599774418375854329642384558639404034638940245877555122731205462033752282483497858874893683883565617396384480813895324152881688805753834230905378490731505117023283292574608967750174085575246797768395914401220833992874793263264373010259486456848434428835724714475494685659998300922564133125978005632032585558208256810272298450393773379183357229594958662757920355983116227865851275332196947553958017007237459276283702569375369205929153449942949131141678970824462359271847891830779591293141824308482031599990728899534064660034123025265541709553980204912504909657515408690489929668507435679487626536289791835327310490133573588327351245611500203369899885210892605335343389794929649741225770236121240115480224603831335437109742482128436365975856323056552894423140521900244963678720670482371016953016126882423560319001348972205952204539301366565257166686595192799550519889565118878014056303366464261729157514422780686621050578395426034542049146595235164608206436731322126180926040208903306229527705538795517662341979927633084514639998499906163839871775452780947312701928311047169420055741581431593277751030393442336623448006391140758090648278857393977048352187261731216536290125914112091785179890806889607067356317325183056209469000789850494535397923022912112928127953584803111261540393435574643220591823278757525708844199036469830168185961148300363606375652961188929125890465188071058486244260284070329025481227756298742464093387182036033444386253283752806765653208881178789305424811952436901821730938894849965360706831202146642157030520930475582446876751481210452725421952495857387620233168222516958339650980045481217166196591789433040102760105705420982471375558620929513484425699081176212131736430135470543157186677411462837850037652466432759978765752997278868883859742636335211187874291471778780646264790078344798389801711730123870752672901760945170374835406292455225713831835866865371045987000654313531025979506582163451600134643260294374806396079802058945611250181414229316501825697782715505900034975269677174918794987739672466774452080725055352084043083126928207280381338771405335855751040088220492103951694246924008532683564164248155947512589142305573736630061040065336678860057443552955714332400071383376492340499629207260041391276268082977331962055347212064894616225595621769967593307522089370496498861527737216974835635097613991481946633150358201134792662611899457520886400104130489962977093356268798336473286974166657793395386963343901302942871144104614773282717084253350575984816745544548866359170569581337355444896628283603764750967292500777406040817963718788511303666498679780211132645673279519894147363157129434900326992270852656921222986017840623040638864579222507060027241260341622077604902517376821389864870469300575548932955754630770886186150823888543524632655650055925569097369705042788483102154247612074694971196338837477278884394271338688010742815407324323867739003830980947577368977398977065503743179839893836692838141806574954459035180527138294898203293599685207252220599119526792453387573389709386736319646096430096035384426435524461087831926617526351061683513686371971411488355232819805008278987055763908123647428464187580804139019635232554631044443633532536641508756228529252261840322348625601299252923285063713748057682566235342863582495398199197484575043000169565998780676184129012092846103130119233356075792808426480064516826143140253756460580156496281299997375825016558829286951139104579039828512280004999315235919288363034358298602682255901454555734452514832945957928869181983310976380346173533442282731105157692067337006764391814488961801258613046535106308947035206175965651465870202163633837743732052196519293791008784706528674846799937119493474870023123271270241969436930370762259442175033793661584612673491449815579896362090986646698135582714420204812478635061563599637821495994983518903461898419166649933924368454625831249278788461454451658052685044622135574756345335731217536501295152312348272518793701626201222391067943980826579953361511920668254421397021471985013445686199384935215072554122105411186156179175689790136692242047920903444618650361826807489495772391965722306023984822606489739947090546214929604707669561898620404069004246883535375877241125887293997700347493830474116766342117515821197976178590319544524860466021984138761640344208729166609868207823540254471323082644265741083888312283065115432967480663680158496439058192953542993323794379691145706796057242756084819357691748418443417648758400993040042021539776465809110942181053043075321680477884575107630333940787440998934791716398517052076596257858049956306560123624181537081858590891795313439609590706676677056299613800292052858783427553828537734085560185994407734878945934583933282669097044828614402482281262061139105873332651867011987275288923797132361538534887764530726603706215920004853796397086661201462866327063411841368782787681405832430228350433458807227257177806139997858168334754516721281223324197198859308364745717654295845309815601449121159696543804025357160968900589390736001830200416974528584110475238359073787114836569102098560513606301247541723252171308734475740441133233366896546597947696513160639945496977698198771077269238240389746749149933294794501903850490206751782862390525596633156071027314321794071579994182052303133466882666354227693693265208278891796510816275317223556739029276399081903938745756734698873433841738882505677875191035538594915553423544437710986988426529110846184258950337829513082611024014799217746937667742122521083826398079464100340325947521820994641937415388310254877667145056741393416910621354792104927476734364876207244913329740707520670196586519667766482004111618007593413649502678574909639893474211572036072043292724725136014772859042163603521234765089641364194670813582234531968152954265188164062485788490369976843253265417550099114675664229371877683490332669276388908295355891455465276093367615639673703553167146455768165928063251172414106709385566425232485015818902286643696032322009965013012300160509235202444436012962743117740162796202029900748562563566083651888836938627951530292126962152801252969918381459270576194549843566786502267417065445167776432579916403692806506030621722138880302924318481454348402954543875507261804956798610115282876010742897482506905982290314197007803775098922929834963588011017685039370044538419778664578017028588764006584287886448468731226456139756129249162983516063776197946824605850353315453810375401245984807988370478006930109554793989711339461355495030522301277846800961683255884638813498006947604831065328262238054997327608798100101919607274382894940809539945003456825698804451195567523554500213228741112350385036697393936724127487149474837905471456039828052583399415009919948166658366976309417997985427681207498096156757833607854261048979496847080427191010185414730958947086333244552804792547685304621567411872193347061497841109121384126667811827144610364415875532228242772341623579033048300975370151572731514402224205173197871657779752034423281923136509596991595161328959936729959913085269071332546072103049888858550008316574991444313897940476990315229674352808697465121560342110523766509783178817624809891503998794123238166888129197111345874967412886090591037163416948564557410836506471710418059298558138062378713732386812641444789311809425138880096783867404204023933611153763620072898822564068433815549122991061864891428168104458259129159963572420246413597565427415751605833220914051107428206256885928460087241296363644379086420581301223004652872906202422994849756992334822600183365321045731472827644436214944724101197204465780238611051963600257917954584388137837980036239702068657898626967415685377355746910756049500211170645113093512909162665262857604903721135454210489435994196824779547243884975728173975764821054270503935822186045697722095567067479260561783548454185225153673584993819555357428020492654621876322294926574971649936809858701106114150805319072311823682603320257945636190859831143178211233933574355302843006826480570786961421997230123405247203752656272519341872419950612880925948767318484105261322200863775223710477902744267170672639145419613695130315019469446217014014691080497972212111106812360987767563835511611115566258975900968810281742630864967336126013348543144428669836471299951701721896935571592662158042676382556613528148574221146655030958082339350352681156064093584795613967007563805016245886064420155963242923732146933679286758271413137678112624517685878448952477657130234461832379064803292734026594052720438867752938142060851021130168192336260198636392571166029006868637776213686358312345461907234223133364466584401566839104050271847359850237034630105510389370275787426809166086724065981493316414601115505657953097677470931457510497566112293380006346291949268097944510078046382535432599072075955724111136515799672968281257898857753485177486369923885172296815662003951668949113626863256363457527923611728737634263999197671345626952525812200124309100088716082830724342489518101589341802921556896158235200027760225769899451120434338325347058182308436582721185099235516869004005720375108539853861963186333262453526967305456074238105715079316329067339812568622280155900204898552020467099089118291458301639848275646078380559474891688839577614996238694491240169133365364780668150079231073451747352072979550641143759784341818453352029484318495270449516447182897689751964540716796109685969357052696936545991353076956002419554843582507001459837093135560980870761634883495506968895370064399630353929603439132321275052944334270922458668298093665881069132834110730210011018958010683938184084712096394033526462972393881403882590597393605309331494988583116419795555291317806042969172672423988314106884934708321660963977336168473650729419990486389219659939907805802741228443668153407182448233177123758514957860210136574933214170854494559864506968020882067610365797038500797815041043790479799196423539953919786266869629786011873553168572596040577664404154841687563299600773472812821461995531422999514387396058330814647930791620581253018581932505565875588837726756761116257779293612783118953896498758468439910351135350005942662921690304501062653688317241326417677504623077632010612750075438709805264268834350289606779539455379091158606511710380372018947578756887882937644010027985414680941844977142181824293627077237521042552792538442895610294299165647375596021643088419317668061244764858282696348595981204291210484081905774184103444600339038689322110093962895763982409676098000045356231851184620019391528803395207956843402355277945411195577215385193338055287610950371549847738897364548640109190547441432589841256118856695619140349872226819490330884534331420453027924573692003075871130586379669932842264761241909122227664106970502886636335487940281364308118887625377752097120028390995259181995021144416883762408345880489177092861788922357251033785391764753081710563749827049348066999875881525659094438163254399909258742547147699005210353426292170089602610753464056864670405216197899324414636529659782353005709131870530075587494056042573269013059802961862669614802533066888626353853109845219823400103212602333134899957696111965710830156538458708086559989410922888498122677737308156275109532784769606843415657112395908253543300553197348980056958962359735071553463086289089574246414876403130480080718258317175041707616268056961909232520808553307977112579673510284394065810219955618841783763758645229904594051564778254138657314257318665325661628301834105419323760739535549366083991838600259719439159265665914264724445276253463019439334817251703733742560480753249613751364222637958697997765520299056420873186540294959503883983301627328873060512823269859321318878173750783798271052329951612293915093608692108214334366878410876318141893969051695960026679291527153742122380522143212553747097935112517000242771053298654154166898904914383672761513049177353927524704244119656548375673116587951216633332232452000017082040386068628798151257886542430317189455430309159106815862514244614983646608353963513352665699025798036658238010959391712213197620921746701794611763499941981583537744092179373474089725020803276995426143542059030771191412143364356261063466175112552848709673891357966804614652102255862312566862669568716457319983286828815070554260215197019610066616128158689013465104311732548431987362136645836247362131674467723856220230765669923385664021450536876288246810342748392016520455515938389758766828215348885446591533019492563242901329802848167391670327042057472264250243375024420071994283230315150086568904546497610974765716366444234497867129178700205969113948732179789161502350342432587897146162350197875635252485321132440295562221439360669046681414885677452898440277144066793527585167415679518516878778779381751089724522988867827355240633290408780364063454261459719710073043383318907744871054640468597534233497794122050701624061063737018987134600137262378728497269355158847420110497559254495320351470534848386126684024167887911037338801281435851919787072277168614101054486100051996845261486262199001372873949567596183415367772043978727969052159420325170808382661274752938494821767307698292305290559218008740126209978487698005395134620901897923543238614143629383797359334388814861237539482528613975027881863881315489666097174303249329989588393823111153174700582357202761341758326820729222760939977147259766901902998540472213175417152972926892821560785492153984263234230927041347260339445569526204474714266534326969737865137100589193733582131348503650774441550793446230406268967809982036269108150242498966004675249935553490100885097778924259333828016290593859067109217243099687321874244883358264320880177823421677704775504437183959014444843411836026019259508655675696883221025954492694709756567190057649547725120225637850046880183089841897068781239221234980092711416461268277198713422675836912659693984196058227514172280068075584800601915328162800902148342699819984706987097848684229448100708733251402311994715495112117927807102955730099319787806810537419697124513162360526693765328760990652191018431547686094491023141840575500978016898452215208380264786134255917332382684574100549791836070719079150154597172711646882899815939396944994913674604332076019432827413112708088527012439925001978777042855324793436229402781496270944287879615997411013749719483565741545678722100142065868055344683420014355424800731089810297934821110492147229381807464859212368499663660480737670146765599766956140991456881627091045330639888562014148777301942180340596542171110986435253535222796857144558795245997726078338663899482811455479397235808702744255201846516031973152015079726717214818255897816049639739466839900366977955064754516211513414332553317002007278875700207493379025180470907738005292293479034538465367791582358501055763492516278588770783551143159525803060107121185754578278727049964497441711806110441694970148091980148332083346243074026349868865424915374853805145735648907582854769981840378390092069168355891666580176008356139815078982091812359943639896707302557673412050519320394727019039679412869137956456207190159925194422798932243803866165916094332134592358993356959309919434238821343744114601650492145884024724603441623890930870451143764705838073012110412157704831200167566831080894250112527149294447571201338612520613985406455149403094765065188567022838315669571090267563036831656405153232873939169637415570071965023891917188047286730512248379830849296779601242459671495121209755716627847104382015264561468990644976329824285257873313005053824122123835141899129247278800332172848421436925391352395047271546465065499437093345576995425486209731790455739096547754854974003799050910054926429861085676984140350613752390942894904240450870181064720682873026967476704247596501588395211172306461433395266213913375897325421463564204782196940623217224115912144617275335629776227801334582376333858753293880335677929201315059312820331468650478574417674108806337082096066172447051206130081805610406100633751480345996214676784573624753719703035513065000919341739052041830056730075582156717553897997844605866078647068609364311177762213890409486433298598364137625665896318558937831801217051897068630151545116325797198486198357051283443199061522355424621848269274087238432090181006643301451114888005546187874186927919604494323811830424501212946868878644996885655394871055048789040472677957557540176844444835118665055992613572379134062181074374938481688445877318288548761110600623044041367997247659905979650976286696253450973899267537113848323858594077999077277922351750541809663455599422990793750493588021971220515187518555801098458112607243966660778537168442945213537102340272276026666571906351602884660790536702347612192170006561822048665715001068557265357238954524058094350403697271089083666431620893701829768522293421734762580989064190851545905863558650322045327303534129763836211766655415184970546345968630630783448206030127429419194141348971713056123554127423982779304732297371852106921890661497106768699092414951252765765044918842827564564725870232106315951310878313523903356160217516984583394479668931550056309139723305909129307125941267162467660262616415194657545596995072668384629216556607371169251682695998418084396622680299152536864438413416498221312053243652710037721424942764565790658436785622985647104359061257108795316596942774831440912317460313862796658601568571177049957497703514072001117562147647586826915469339034722837066392369729373706599026618785491085801745809683196458176814801484901404062773561175341878457433664593246132172337229257613932028165856706916259825870209396557654583012851514801673790473342565822230758269705335125198150872832847486114479499096270136895292788812789935405257309228922866541883870193303867100891703094666099018491727168037304399054872384859248728968677403280459645067671963378028954971402179963230074415005004690528341131903107449777009502914457208967722992000243260050927465321162039713027024778503184983950743014535773572015701127202537476054660884312629634442826744316783199029950723658835817155531014280821141220357257109465012595149270267700557485891197468629193131388733679442240964378831013695526043732712587997066168838264231656219245022939480486423837363206370626707693324540467574936700983256769292641855925449840218078348907622794852088440243878725647925767573082298577249341223834771938797266991643242411809337239602591384995709389146091099720091157804212419452415935739813679448720233308769323575577091550074155561725792004606060021863171975591350201237448273656761260006411106741577679153685469169132710782646371225962969838907479548635941701968749623819100054474211215680535196266757188851686605330573833404907922960020141087337697269397067286929987548538177020470707838904195402987693454707854528364775583140160065212713164720658147621296863362790750391790973996620184973746164194270486010770244388868634692683448141264727954477939478439698888390247203299300345109330096467997145196405066135906566650927879747682733339609915296214815313049932673341478932033665188149148590348986716244732833725445225672198806085952509452271693475315314319742944157772357963084587405954970377941410560661557342985042155826392143861121166361060183330667667360582797806839024130528500886839039616170549149057984928485669977618147651801704498974516342753960013979456109803896565551300685264624621912311707237819892392347178076987849336168999507205808659052724360144595205100249411936674155283225487550107108870648071729469450188576691899665555074795533658625594447144639010889202900894230711783434043931974357504462082333389154289617725596765919381943659611228166959581851346827774561051411359026086604200081623822676740440267249353489498408905528260829654837914045153685520373094966355422563979871429606390170320438274989516161184074556957955928096061011569739069652016493569697676830804784430102763456710734403384520052565365845440668592894569218089042207981846453950516167867658275502202758624433495098369082178561961917167091880040060302241499894852538482002537414760735658736892132660401711171228976316921581694311040104548269295051515169916842396760527829206969341021212213500304466673341221924075188857721685680139939414275278827283414173092776815210116732518281993253065790559983076612208677277096983510734832365973176603308450760329555595427212056386495506309534182044537380303972150152243494713556310811584770256348776901891477970416324332617297737630441089365516746254838737969735704291099434957610936009000734024514070017879312267921395018758493084550852909698776462346532764142917255026287528331572211328356005930724018570161959140765894542152123484001718960801679391334298196034763743858694590683301562031211425521722542265047974931671302969302997587023100576968831364554714536688992771361907863547728056496308295520011161647781172057620308362041682871374650404823471542011747219515112960910845770556322086457490053523572598069874622038780797854166454870132349577207050027564261374309174158247534651576408224272016715021522676885382157672377966419618602216774093070818784987701437245428605785049161300717982305050722328445854388662797779025777777140877568588523262181094650858436099208455811583367491987549952551943258370211269724612336834669973247651734900270867177990456099672392189156017286905552398418445900445894672179077099578272935752671144310240020204744827220316728769653284485405978563141856021595894457670524247603809299776234029868555676623583398932065782878108193180861310264398958642989786281383012445729299564866382879921669434384294979641611960343550992307987210142480505248375906467547432854927749355363601206778428726274339401032666865172368838854998870549652049920649286395438033173656822957711172223357905149545070827860027082137740902072388145449066948525547585559158856382785067367410354302714777496048138962026581916569854553995372579436445676245121667805921310674323061395210235463705550306339134532138758837466905796539977287211641353062035971832881184455451885746243808174611045937335620792885124557455431788254178116793855141554619216249132874750191786515307957208508189918083263840675764084117268855511507375449227373880985190874608018178475721302133420774304172635439324354880371103072872516076413690236525309934451099420114897532599133693890253246929193380571717651692956011822466277626508419910026957993682212407160629245896530854575323836128454561553846330969205057057967373051628917392760132070573166105565556159677601467571804897936934027040112757307128641873512549207600556883269361028760916104441280012012491446562562909034282023739585650331242379908149042349931213124938397428113612777094898483395743905509927933518640728400199488753428166137575498635220102547973462486276773781077606369185814389751326617515664287390355859063900760784014345599543495371904446879084627914391333983426728994430962582916807604412384034511542120369826645190299609153450486791826337219472344647044733807159259328860938742869913799244010075534586487744235321502390818496400644876343319319077285630638409173634865560364518275986392402900399129945161849023191901302954876833015075085425747051933752854888512927519253989812251796232969199890423317637520992849656511755771894828326919443325872251514456528431532202216086296077906343431462887132185931531137809995659351561825563719357815758992646550837356568890303545408018233514639765744074877084286977211524078176860525164885434869544477078009024556733364016341381177126900852499127256160509536567426821121226257413698693556327417329698372750528015121231833163570392042446252868939305827198786121984726903080436875110251712108900705296108728249790991490692727843060736704277810906275772978193578715575761364614483784317888207763198378614629033502913912011142033432250078970005367927613374083668561550130184184592152149567655001934227526756901155940751943832719482476560855162503376495600254009055047839409378499470181295029368600442870711278219428641842936752054821381423012343658365045115514277292526380813360549139607517580573089637207856227645795764897129100472620642865777328839419479457998113600320872883335618524026932873568403074153183989587755414983562152877921173173405180513890299814854073851588103945453966751226008979894782943957997349991802474954208644165674735579141551264289212317054454385762395683405379875785891051172873816396288546648938964443979829626900727490822937741938578498147427150054085287146575449381513103042708131561358968978541814261852530552448952425090486082769982629174715949483246061778524415689107975618086472870508581002997757777951820750642439453073817751233748583245453269018063702769378724434352069468374819546200463700466683563677867083831957688791933967169907624387128666892652069626187174183817228167916514495598341614041890967011231454513677961919331912409560099525926395466139642270088355885269751862173378383861622569744850579505643944585677027796106361138858141055195195762352226261539231136874814661328625411145973426735425619939446297184348480580118670052269247130050925715915439118246830388918465770387118002380723075115240080395566259713560195578832682224507426244498469858273979317802903408567462191429904933900729857584881518295859912776415170836053910970230333124944693192478505288261893493442212439989321936359022119022574642413498102391037835679904090423408074607732661246138174050903556411502426314391255740467127082917269005717401743859145521064722245905991708760082380142596326836141215519228106961354964375940356538343214313433847852997582643041157250644211569975229069991337223503011089546856603741154395767626354956345618721003218762438801616155299848804380312051335427370048416902258760126082939945198461186491434440004693500409627250330099895646650604125369175799518762630361717862157796769561202300967764942789866721723864512177197168134753131740945505749574668469163730912661596075380416013993240191080575615807354990452060483784539823723496960116108608566986346964551966517759601831532752554309223738160750879676628657868674204250471561622464867798675463838594742736156178637783815418631107555834593637474717421257974602349908450850607306530473839445974374079835537654596633187245785919565857603571744538840964194800326515877278787473444464878949742194235696702072881652142184813804945229772546947765926625976422802217298324404534219550897328615008649594021162113871655784421052121201698640668143159471947400636247443632915674239551458478561157903259025656652643386261263380830993659098609941545111187009827723809810881477422357143498889848511399408012903125314187321515835248862912969958139747878545249177653589877842912907971620127574732217808598654686306074066118433811787511254127133483526828325056328355841261670340765262596532752302385098498750022061206664860413126060418343467544221688399129888081896922628753376604865953036966778639611782864282131895247600317656422470158672335800555647969446321819460501134406590192286496828404637802556931431186578854630925494922074043591990930928732884150695920979858562341372555251373839032895065513417895460485974125570778682967543966519994873619036567775339045204832478739920321435989188308933404172157497702768674050712208931367671907163099293250748396056510432967862602980935847539043051761952012883055628816956929259347419965451296427607172564443855568819689159700917973050141500361086301705420562531718803085528901910933298762179007783033633570572315419794015969485745069612378216862605028390373382552815674538148651784720073494827791962926437164131985675557513915785039840486588537487957678809745608926431037745735350505383523257937000923788234492386360895558436732214838377395175905407170591074636523005552829455755442774510428231643004474509463490523382895539329859014125467621277331778715063570052434509297810353439324738686016945801367220432863626766486767113297386436991124649001842012609473098004308472158077155108286755779226398370325886929702432744837694136596336269734215683079435270425940814629511934479986021628009674009366873990055387117689805086066858698425646400952953472090170376878136774907514868836109040534830020528884384988226182906451465354258236440664988198693173305585719052607870953880028051874395665834671427774794929153075636858051247141014393384361993699214206982534244138068435042211819675845392044023704020074004220795103377895122756682538410300180287063807714747404737834046191993652466829235973697695105931210954051048453792750232091762145033835685728572807365350979795864781403402524575717283419436106870766897278200606267672936654440758600154667989131035176420719317236566040104299416529377655231422027446641259734098559693874649235806235909123777307614881591190382834696363418049102105796442134972553111422980506562018993530521923659382482117284542153918271854933519654495150759132406776595443855146621071112031124211254976159760678808054882270745108052095384459434419095584303455145648009079684158312803656885003518370956526079247717302160718374536944879967532235684520933366035359933619177562982578208405759873646857307858497370724280092076106875433995995533079632592517788533595735900249969153929885347994907311011607543460051175409057254517900338652811630350628424141906091739055684225040969584523481535157834438882377006331232279969545486114690392623319900028464862128848616611042180527487236466983819831695310585807786275252824829993157431700099237466352361304288543772183308536971749439879088347386942336316181126542680626543254607351125344207418165283083555206434886506105212941338074373205972514127317597468021752907180906118951540868995392621581171187549665391202127976083778353744136997100269667353913207225020130332891756189864092077553675397619293866747508167393005641696877974546171373859864109208811509205085861812819055403964083664625794577379266579950681275808212837787075659002281087776855173786260156396564404227075033916023596438307386369896895156718167339500907370769094798693700170459379514757885695765254309191307811344946220758261657214517213274879575029388452335379282407872405265542125771829235200329509751685843426688512843592287456247691346466287155882139938335238347218522456589979700050551874654629670410938639230989193819692922952333331034225615441874648971065713218094573060423934276379260425696067343386997087494818452299097048068704186922707889743955583610859130225699288748474046451839822601300893512773277503167933705112505786467192841402165254866793730071863950107654125930417833150894958256255802533146239608971767687397585449546881182767821909143117818649066635622284327873821665405116289599792500545068514184771044257981165108076976499507399543322527838643630206687305188041309197778806688676662364904100861831282155211825897867826231687141488454423975364193431659349350329422132793692948879595609563133107712383954851083025614124304370567632463879282704111897916260200076486793055923667758642659581583937662816512309846415265596377790619975550114301590817380088367696021389656419017005152396338792515352275350269550453298791598922522809003514331716543396386899732288256398240613688597129465149415340687133191876097736191782699906073487442675784426929034189817820204705576607526840069317722362316111607995421675136430417420116593317495625813062221979740634138424410861287721044277987128047391966038423188136430681437588173971066317095355604846542876244099788331444674115438468163992871406801626349997654753799066244936312582674566676197325645715281759340563337648362314368892607203716897421645260366830195856705915436467753544345903216037398947816654710892315985310001716339711979293695873970440413320813438012196716999902528427401854546410531930405246222931152501112809823326486525342067098302054708332156379322281980901521828897004823779271126626257646191792535071656316628749061719984143502938297395161362254104419364619871387814355629840708003857253106747092696515007509077083271387285541912165780635983018492879140871964900236306872950239604449540780323306271494941444580792535094554689642050584688141607191438025542007035701727916389821723877054465983245579084197474496927229136026715204708827555327385860550486873564958331863195383260465441726084026526660314404387338283139624653286941612830421399665880017990362712216903657184371963670966286393638792210536547191199936165279559465722800865418268770454715932994803713003623335716433339029367713378187628324145622831479118733784499073418160986969679313318902477029096111843283870004597514046045616433072480455712876664033347951707924088808006317934978667665354049525483027774807946663464324601692372514778080145250448431549958179938843128580173971812644642202065868830206691450390129111231818985705164392536457284989014537854756648995243444158024847236475510710920147839566906988845340453283799363527116124410072112211098029169682156760979340927579413418836638242114543627493419172691756906231923146134121655492465471198165602730585341929563435232256442339633908520327727491092538253826592096052645532658485744436570573246721818741505131997357951514329967947709706686551282226040325257119370101294461522726028087281272290160526981432618384285848011129076991259877762585042657139589092375780754599109577003892118907502699541388609980477895061398530044940470699931338145041805053093561610169951435943053460384113125931292536081446345859838546297698179488330367075197302786470741482546678398291902961815910019289512847405481103945312951272118864908784529899145829046435688928674261843543450086905906330084597114920514748256471225835908351826727298160420376273436814951326058608404696406334573664834618834661396634986078087337129160077680378699830442041048529888223912650329471480163694274555237001306779877459692690325505305405530321307498034560173625738376689051755504760229196796730184290559489100382695605324612868353824374364065629442454313874412125359122681962305323084633205163741105273352980112441016508821495713918978080884181386117985473105126999384828912330519937859564290918987435817686957893537833043622973092180378205844547900861548814346100527973293919072138412849827359678147108496359242351945719527418440064785435955897692749088368337139824249903946807251319697490628343912691092265573373438492067042495111434277818782266149079880122769333460652148471310370692349442711888856414110319207674167433595846005116325613823799484123671629415142135363695947131092504939739335847884191231665860766290075417935152437657220046298677943351545441586302989450572559065176058931129369833475193395218987835598900515609143487089915767355112992786427799450239292231095001131029845457740876436624061777912460631528236255103849522695233380166015197446493277171515570796374758853968914327289078522321843854504700905306171978794683510638006729543418804605912323639046314868867374084728231710212579449761615324626128267342469032764779254801842381732522433853736044491661496453873680761566136530792736667204748481154820050892286791117343246708936214797803779976370556351983052614490471809806055270503120685727674186579099103673421893163872540972028560617960073555522425885008716350930120422017077104657510812023446728775183372236860346184892883706709005496392463331956289508371896948917802445507599482211362310731187407774670893593881185266659476914807442833485618885615437547927025967064686993842155477761355736281566391167881787095348811982853349376041936955761831320258379493731443263060855221778386661192539150352024360270492762360812049294663431676975260971423370768315449877655861517335123433355803639058047671840438019508667071105502216152295882404207183550671647975105417860618025365901326041674874160648871698104332250172429271557238391813470492137144579002321107196904805590248420499409652600849435327433095583904574335434334447841683645300499647642395555056721807307039755677238700078537136438026719665628141003525670353572719654653560500297232606426651354687791606228651364649669591872061354922464481643772726659991069543539761646166608275957546975516859949418420513301358927971748378092001465928452643785367945494603086632716324359357105215038980559523787854914408693575385744796467044605327609502498337372056858514997334308806137679924090134280878451806068095692983589870165322198946809005662124850007188653281345635321573998665493761130866233218905175411457828013545823466467200261189052795523949462311795914120476332390424652687304767137349642996467542247664363483274854092171444425732832339438609991178086216219902014848064456612368000301319819503540871120048608712095722546529039083343569709464606794287158270694877827061074300682714764295526969453109446874545494136195479814234425380445677135857189556352351590323351578290246220868105568681338733820399268807580780961880322317092173392832923612631502224784456832474787865955812228101967935932556805920801711095689392931219669370200626977359221335594781533966698351249260636554075645452747795621920097300106807389365088481005640514351189884364794523650445397018316432214910107187041557094063522566291042312871137764524685629038114825577528569093208026104789714454014906642857673728084373982102585247970165202267186560772699816406254626910144801926487757960491271006972386421907006772827375595634176349223477409141757678004887128430777951715543277726782586350870023573519113500249870790366971495606736253573008840852068095138520844457060914255659598173697519936855358504570076623975752882410545100894747790246717161957714323298807329197452639560140844734767434635461012815602983412153609779726382948942906580856795367433838151390407071759474210232256429925152657310769125468145941121922079177235576050515162599867647779208510910089814172285495682793173906827670858538131387610575656039138560059008374296761264312531093663816307735175868632695525091778362602263174298837678671862710455105907614000570573525296414932477131304445764874692699688830808279673867890566536976172293841352537526724930478674154165615799788750993419607614939677945737816731603551138040443703543543094476575882368890461160123056980524063367833452720127633707372420575813777267386635924752206510757739572659472639448730722464617695048576431897824051567365813066317305749718464316124853336161745568745977213715561175398662227739322269399997776107042453418917434254649497431192687544148399911665400387921179342894231801615257093767648147513584915122802504334544871480871793574851473820346777377298279114042753163511363393530078529299977396396221812655252160186382199085872508072287971825194589266405091295977066828677751931129580621360466067208085542987475181793930866322594593561276048533132944296195913662987462192750394985773069908200294448460328530204359982254142072948931780252449196429697072968864830981762027349357735438956109592873895240452847690197429816802122502715928705577246274898618865126366224995109606324258180095442856751987371841465737542404520308203216360566432444817529895856584907936480716017503045468925471560117833438768491415046920028320014004674338052501230999753200280884155565365920349748400016984142542622779597572467324942846179627255207821587942081582500437355507100452262017730870565216281164511479921550301819885171977428780561670213838971748233286095442727228685615364459133572560302315222632528732575491875992870550865139657923858548044037928306800777645881798105807074401039034085293257669566968007939154098399312004411461733546442001028935941968301658745626590102046180351602157791038147298695240972855314924389012381285997173356862400795831378857959773596265547786519744149717107813931203767498997194543095242170761896972120509702206843785492344592033959977750673615431009682145851440399628846150787754152580737876532676504789138672186870369835336908633770700145113280435890642453742834452487441593100900658721162473963013338197066058603319335649882787485024433313130960161356126438480497608499268405357012476306018018205860431166630578425406133132621258823891524450521907719632360680767664425590452300134490026949901331114748144138670337234449343122978737986348899392965025697738917887819990449709180165286436458035999936594691953015036402430337806464689442405115221970496586931228262865159272103275665752950831617413389395320978813781994146808125423507544397235439127269102781222543254825170109692798452929795435066789211931915683422776154127809823329204796176478976393755223452463966297426936183196778591477071681065754097396260154981952569618034951122777652358636265421827710237802678796585049449064159860672457062303140065300258731027083754863356271423456292627538368988526531770490849932518616866264115058210440989324742052087228760394645981845803775613750968179591548857456721772667461711380158413410281485940319645101570212832372778618939889551499809742789802027753633547756904699469770219906182728934184509745774101311580415170805188270891102314866120686218042398280408615981997467621222267467631719214850941774219821725225103473708697141431772073377038489902539731707066749698962801993473920560641810738379454125679658286844601985974254116015567733995321982661533128659535250956882155824886834281078372267640424782018607750559401465866916101634804042108603841913233063981101403544800191301460725662145480517371951750421669591412418538271727067564133459428031120398974574313893471728076519071535204515399662443881473785227785736526370607198562190813368638893102445279457541073225975748902025698085446222259809471339873613446662963825891623101501917459132676727693484609520565610614383888682589868989443785848137784375910731774409955891484428300562072367324975297957260317799677749227934922716521100099922902511330242242635568435875107529689705917912888847684889941774255714069166338412570481698332984282958939853267817825078055288949997701389742288826397184599350613287451150489671696477930559984094467235585915054838138722076766231498146086707757965774436416344200745866513084920744439956634186244145328454171030869809179993202843177844882019365187401622342457947887541463327631849232321333438757030001811458970443618260903807349249205243723883601397248983617381696310747052317806189719599804862647053206539033560457723499904458479681638394397851625798295572186568868930869344748229733902344187457622405550317986948707840339263535895526328223479146032707479328966426932677758037018514011721227673542776135111350291964440051174323722431994822800720999620504281528478170900797876893463038396379694486416918260740154600626690802701445679982151582615858465342544198128698009147110817649512460218139953773870315911074904319994387539643956583099682231358692677803434600805884169272166034050289909211769209211915373320161702883062045031179550739389063354478398770732416412732537422726164687271885111990849259063630876281709821642898450784426911221162138873571096495798605766895688357043635335894912947766157883295743609625148324102997291170222918700963456156454334039038509609037878722144079121123348959937567289738765036236476175204991017388115601986103583946475256822257557422040317623889946511940723363421996454305673497079207696971957212264321650265258581420120087562844747128314259880648073743520379244599071322925090405343429601743922828251149775262712461179125287565678015646150654718341565839239317855300941657458598599161494514010997646237984973515704372551830940560976721391993475439976583428190643781072057905553212829746839582017071420632831519431383231793744307333604333243274190538846071180695650569807312560176584199622386942488052592883117769256123964743022041363784663350137598399453437469221640070976614735857105229284265166467428446992577564239532869523969116277688619666735260813139394097061267292135021752839966562078542162735558699252153558508760648495080661306387028659255620572298590057485916950761957340290211051538368314094667663841800312066225343968132755812733578997100818255947948397369830301750993365060337270331107560724061477052409938606015595852796320488598487433512719674827923243091400524559697969690595664471524595875518161296773516018842270395995410356235577369938420461255530150308152640190878046508115165944902019604136341956103336854516026137029519127872664902298661163979646120822582510036703263725835126291677518055162720213925881449206335204171621732582839917749668667073716908108981111307993919528723408625266586211353687144327781835673985028700734309825416342780502066510511193864438153864042085834735841014136822379223080890854079331377507977861991510227960601060208914914393732452674687186744396693151198779058148168792801468894594109915898518044310870655841868829287462142444016359089463993591262502443753557972942438800625887484051076857366346170429926655750067653151379743962862870941098626503546371263773959648310878876037430842096363113548488280259257377563787079499611639133097184893308883307768598751532080930630172645084233000784631882417285086427116996666524238842751742000363218225074824914379538822858123318742499908078805710220891745111105583517306691108869076843360657310355230494889604963147751788091560992022853628391007319330611089396920694558552359125213044517368119567619591391944973834826521819328261187240176376495673629309164660148924565736502187518873850676245935823343664324029555661747153177872696516643105428346102814619671462529828832951535028574699564760393246888194848387722161543122119716482704870714632871007965699428868286255472127045693252970936246566228196323781837372856155941410322671506083518227036428874454335237983517644625480517429939314603037622451723952746155153021780531456653630756193805190333057652776532169622584501642559327959286092687039923665789919350218847265987825109651276745675821906807676368082931514159358450492732110050398933830872193727985696924036994258710696958624339066079215272822684289436600562428235378150868815628205864457226450913397772098406651975031396474975367749936668143040458856670955071615657353671360439691951455810379710229521727537842233748473726715395546062609565322554006798031104434252483387456783187519898879207851685821610456876172648648207013541474772482626010529043749876590684882564036813111789935069097067314719923344487840141785622793879424628401807137167531365629227502233880310695477270332737615274848256560503600664361493295059225846088061856543774929892513729567689981527332285313330521917030181387815025050044512176149235119993967800154107696128124321870010321048141156447806026986119995057966311386331522637829145250182032997511235915986200435602364004798151934630510663168193111660903481436873868781717829069624269964825777020344588568229880163314675439447061131957040922105027920235962465766386188550613082167049891744845722777891146379711820386284942434569461407099625359278574554496250238849680205715994548260301892693735944628109414045759184196234403382290639019532192781463985003728254470400653050981278096496842210666101264637581846760282476023487443098055730259529757243978800584760019702065971322508419519836305814214269567678414785998195151114601769498374143020592766314557455530582088059183317831694148709882303211982138011343232121092956653881354620613616078337601343114880558509965114755981484477474018259144550421034917591035652575354679820759231523919753265921464977409540219528105761953464260604058213397997118781448600757065404968859824921446228686590500822271000897997247843983518264701355844442121178251095527085247923118671112690084101670423474610023424878677018112169436831816757293309752826253129271400742385876393216608244387774506083311245909664522119266268097096274284943574115174837524590849595499893511118623802584868125610862560077278206460472066814748853032211669480424678158964474665197304143321932317578732127618987290373866536177050323539443595941189333345624908655826512576545065644591373489798297813678764772024430239460216704245890704430740188040633266184885816119697194515506045964972817762007810449103315682178186711782655586693732344406859228864449076820604491230492849743871440026762095614017767225339536455755941410812825048107978601253068181143653430381349073994350230140047859097356640900542012333988578196886770066558440497625044254720878326525286683646507098304270381187629094421559312099234360215768028854570426946686655448399719126340591237655335717143189579205758425545572449922678353020614502436609039711185026723398307330398735265428037249035617341670351231045558049607920165826265765645462850447618708178699445682028200724125843498192614468385555751374819070387161569854075206924179480763562682069204052385760223400397847367626594485202043557228332550355817710199715517580990577617563518618867173652594774359193094099417636064157131215158049510477439353471861937680137732781203216702366702000250766960630680188256979387911018840994010371622849042465285963659023382664234420354344551850975984836150574392009778461358556283668393015908739486803809462140526661543386500017609902702798552301993788147747959681117239512623834968226940210012458825923647982787415506634266017259393412672942765186735206918245152278450631738276617875265571456377629631024954372224924364647486211055677402334456941429726066180153453429084681922024044733656398109648344723568513686570254259090015831068652502328129912531005069217322628826283144117154698202838552674895022053059475142077817757195465085612418387683734911685013403727994381025991008215889883858890633861092358085107311026775028272234548533534575763842459282186932341475337199648904343701536886840351420736070791639125983661469325924884855024205497093228602048728638226016386973508347720972473183257966533711434745897130235657460719925925413698335983283415664884245448740253379543054932346714534731482719779591862313040946357827974510186636466182377102125495648365515954256335881364639376708861747951736616530703779145781140635768445908772545259656046434536020527165589595253881820335101156106518766416711142767746976763662107763911572103197009553294223582461948229323861072048677581334154074296881397289291427956206764351649355154331894938104462164146183869294621967646507090120535000058665799020923786400148061347373369321036727280427933894674683890740572804232956066006415909564550609895077200468291014127532526171904670996591315554234412979978887737281748143440433860336333220352821957324179814649360076042640876454769731747493885983094679561362824645150756906730449165482467190023038603518425061215620445588085766964968335206482313775235072427659729699201936573432918715614135405863288977044067005811190329213517924194877804612542938242380385267114299654792654844551681012036553076572308630938888727100614112068296864335757212244102813857264144486413403070248098349025381555112095359775628787090565160288709145627856903204154605192842930901694445578667257154420079923825081861567389278818809744158920399895743642318346623070632137569673845931912216232220149788677614191142944297530036287666175446032083758230803348596924101120678748099472975153440482213500530201553514617627402510147356883251293571730776071121000201015943497452836600604421204877995011554906043070711186409023260253620187415099460538660966689351067170895947843340570023632367034235847380006292549216017423824187091515597214531443377994673328857404293070859340774640014342250456419961212330254231480261018446056338415109773531493719834243626384331976292724508439909308283563384935286810966917864135300473779926961315479156551183030776603476937897889508482156950008529323100236131894742684023577489671559637379300611276900974245947052397997822415469752342043850851217167689640123427070736289620612200159694911154157725827328420226880344658754488687582550124581618918937062400005364601744994914779203522048451792150182312788952685039376159779375104766192246369859974653329885841312293284882784250378820978017371998790488455742040752920680616694002752039725866648413614043969475160848565591774259888313353189068983112440421450201754138594728424366226887573391554766824903623875310930447710181861679726396759233144830920388662032910414522206774812985556608081716984996427025409773731891632130962314322142341690562674860004790103456996433814280185818775723043715690534754521769795111753122180184572944647298556723213889252266139686532619299479444189880261158649764641632553903695238376463951402217225490692243283520850490640934589495395033215307538884092970091361670240102223724440251429853506759050094401648009945412470233167896665381653858174594037538220202549568708340372311236263610721023055372372823350878805994875156955488347772648379217644341544477360567085829138962141735979034475118311556996166355460024986818379217314396085436424314224860007377247486551204751031858388033638185225148533258724404872007496992965550135655752464918992518084535046035031717985538431656319834942880969689118522967973204879711065973805565674822700320523350345953338480153749132084454391169181259142303926696090728040334459081514716912889500327552863568112902727396985993309120124443808788751071328525115825449702315017309143095377812325003249199397266592008620514106465899875303825669993196748520159318578659230489799815203888588511688593397873913285936033504492721492903065727474659751209806028671961000343435514198963897822606641013675206105519966040598540369653921228142574831180340721602875205847483237659643245048060579442261458025733070541621747855854354792393354827600449560405169835259019210006529676041440225827885135089075022030977293644822245658037248836432095179838439009697768418390336314780239034841136132422575862907263045330685322354715072312011835642583295229244686521924282127657665031306550085467045032266403224778317911945495305804319819405730312950108177034708400506302995954535134510547612236581091946439550972555261919653625720263901813739124706899267311145846088043073164634548229147721864921943157853863472344634365596832449888429270189102645522755268810740629690492274213933766326422393809205754709214610767020550791435731789040524950876217400167454742481001232983499477133564263126383295607376120487756158400693015951609885047208442579035973157309291384379760367557326096347731925698146519600145007767987804836909083905969650742000471726898519220317390114792450481466692613051890080902844515102329625766476624815781800616231022589148390454641082246894236065188748949498020615084773217131989850618111729947142744833706590273827905651285513755870423795677130833525927149263794663986248819960089030484240430366875930976974612282243815369494801585010982146131880832575241389885897145599481256379050458011899687064898232731535461528994291743206556173990117165623048083059369620693817433285863897585632256687676479896009305154710026126968159364465375018544424921139176946353059002882484372337069623555267393668727939519715294905016449097650283579829285123089293679465674715505703358058878280340184572610221814510248358422899181481506090712487626023136619127201302566400339913007033959920110342461036172673863795341408878445606898820887405108109188162506006345387872795045971094358381194380311544703790230998095414480453180185339383695704928452657287741230143960951937459102424065122087154426373163826939318580698642800785505822453660692668904281373873354984396240139534060933394406868909046318260079904074891390545607724379578650744231738087519238677907052196661448872351194005943195052250442180273989000112262108561288709452178670458723596820721376678902314342122502329598536204116841314550663563148912302336267504619291153307254324393919005860504522182729358587929404736551663768201552512438072167720157328101049825318700176491258636354544177609367417844778389206131573509641316845908476484820006159382916875932583917988281543440336361673575320890026031884589635990764753867466528556734294326989423454222412149865659804684542175872021528934078123318680836093569389046762700060952999811272476467600580101677959646334376189759052236171811431682785816657441944913129806736738078950812499584110038020910227742699373373039899611595703791337840776802180346391624513152977464307864613231898376572094846327372860573334798391307237795293020492792789830265257929639360148090054454413791019165524219263227478268661022880095217825911852214163531852186354461509140011812106139959335831310548458961299251900325286923741687640438714758150402560802911438856389149005738168692375345485334309441234536469038439318087128679035375269710320222278285291336842135073551254736205323781799754056471047753552230609050894836395249844448520307321557908245769892174099463868793615898572195878134957119214518517294612174156049017711123888875154455987275662775279608861865037398273653698138435199959222097067585209117737517312546141162847789700936636213991171595048847528346513815672805064456766242478706477490267622216351045404286617974650236607128341181580032018608991157954980015069887979583691195430322199657527370025781169742207571624305780580656639292165074160621535690608198048020164577808960971017513230106809432360196477001025500700079472222717923519961506754804541016329196321056904666271065737469526014434044470939773186069324220059385023380471835335980313803372023373200421239721099927164493385347608825661395657267617993210332703372968926263304864581213482853713091744231602287411346074323910246620581112287250173299670677741186835715777641988074008883941899682429480560190016504110932515201947140192186976638647837144005776355779011901974044160608497086993741045939661105458010286163227462914570347255017056281546702298438814551086976706446235268055518942853872720714524833189880384851848521842408079689631981218041741357145867255593244008352120647300220961530855571018981179233038876891660687880347600075547775029801685986921349958056600462545250313935156730674855277549720577418176298554115598641157448530628284734354607786552610404317781446816851442135511186233023905210178616406231175790319304437432695224953423711418838670753185181379231295767756593513461603574868608914962565038201451158769475131590317728135209614322044943676289336756414948303318698361998455370385159160520951094652309006123568935039068193816524859593935168239633678174344960743738049212665732730485293961877186180606734067031795084124202522476920218520773854455703842805815842825646639042475938012895825259124992101699444503006372830414155072178464309163907975417624368600218326084536912270780915782531091157446972905591980964077507106230920976778234474154438068735142729249128978242413391703202738133426097712801819063873245511104111683651525112313449486702601607196214503196863754067555486125622962664266525354071239189521151405361487954933782679526699667470099085716364773533335448976774074003356521250158768829567066895118759594703809479258549310464829869077690862332333873408964286461778211403599962995930688984123084149658189014238676076363908065888505178755418778505311112028618060976791116107505749199754171732816219995568956006990198482949797911248803290018274140671988718306069478739404351843907034102067112262240977629385484412824419357307124178570310826819764226651994886703252552876201536364755463042774897451934174873962702352717727449899672559391893684240712570170936943954584800334780356039380737295899981688766094365912765934353354405417357460714942256884581256287699024153494426880732105098845287245641191841089545545242893704374234106063750370263150206398627264530439970611604663768909043635459316391373060865634165705842268354884500354613442589974895426927136400124515661083224727977466653513111127101697911170698585773227556662079621435699083544621450962171965092731364996614311786953232117124911515895198237307395638311877232427605563409602835379812915577869506876477946124326303720019648910963752280076225487413896418953857257920351349622714009262112604392860711890897656076199538980773834305866800433163072862304611382859693848103868812112866170474036678775772557169189034501791147488617696009212248021909684216438942886593532101956644739593956447595055100042644632571220444052417419038889028997246156670953467429412659460503110371368749341249641343865055837999741704521348477302509086694141490961476504076279239192245617279259998111082590390263629963345440590943423054062682724830491702208904819720417089664433065949015421022532000158599761006654478338307509657454342740584855971197198823719429581715140769972848077789052557445497135498576034508269887054054172308397930913053348304980801855894539264547931983641545706876722843436033034109464525987580887175828721403902702923350899038689741105633937140598788730277369344722587221748051629836601151755671768496449446057429065586223269230228065029667800455941543407834836389697484287218035627729016817684307612699451587318694875129612128403069990735553377251346584431172320364754169437822505897674865380116172466081363662617666564882817774364712612202300209846105659123612856137102068074444643515174770707146071543868929696113999969932589305152627935326595307074005562019808961593061960415910297957710620909412339476814975762626769950354144956585757108550576314078008518303194705237444702287648103023478230367701317210363212084263679223374816355791186443508489808924933553171558814822386347328784499839385696134762157586284801751142121939331905159158227246216534093993997544230011044820543707797859425885712394794811718078132787679112415793829215355141676644829138252910968341503991898298457445063769370079964378174791229583941012793129304448470432312947450409463435952511942593271584295718066422234804037140989525874237500825637150198773045276233707809252050099841411826165137010754057791749680421531825829487223801726132931076151748315844613899051108626061329272011646575402797761489993649332089781683047581111437886177330221520198512019991573267215496591572196563967200915947144520352112002993456515415861116811564323340553353892775606032299984388243163466062991027146431865829445293179605231781105914881041889689133176708877264627823930947565032275489824844712574729219600282089683351345058026975571750090760054709089224091395973515768839474465773780576029136771176212905207988070024064786275782215818807381305349183874663751632366475091441127626177060370328401795961908254337758132495263811227467063106927212453452128307141998193411490390186647595161405475870930222353225399254398629874310382156347318989600944173968798986314759476433748729679192932966960274639581351291652716152858385819966534608900888499012582370448959165610273673436350106546825749962501873286567400439271818630513378401361626985309783029697356296769515471857172977370161667938137992429976364204307849292645191093103907865457579682260759175672829981491801966573725602427840920540796262070609080412641446686123614568018394535504806887522179100145236890782132855326425248961581712552278720321707134892174714015325266910874481239244402764801385931515773105774503475035077895047585428533003833665358010611507105287451399970890580995763720443891032148395150918923978044938108975052915587156184061998643324403493921520673991134448155558721245691173293207379508147978353410866893814511874118510529047027803787139971355930037740216869675988191241088585437651021377351577274217329669880467769851194895554404676360487630504051219872660867733927042424129281818202890313167654437315949633957706420677111304701127109853718449135444434302581729082815842164954756721559556185729795714689590739336233081817444859219105235866433732961983346569836725486357806941255773810063192044847094450399892722636428781041251577383582469536799229200085647223588505762960869398668904916908158402419746286545514828083731301795033518590535224731890472223331028020483330497558188008099027943045251796933389838832573497602094087223496954561061603306606426732087589420153083666499164619955824664986406679626307396445009981386895076759020595918691003754493742631726613256332912865002197036702805085537782376036567429209204094535996843107729339411808124379370492107157497535719744722782846745316492087503002585610290220004399486234046578833185826361503558019782680559874160807497473886238457221374470231884988381263544277171041314175695608885247483536735732445123518810180745540405491302243268979280684353862140955715910232875850449043638371771312280471179843298015717676270376693427219137266210642549595044786100089871922357368916566533643328584295693916432789425620509446477688156969673402828553293822554310991984775663272473566946958959872475818015415332707598962770670391832039975304333683682979442005221234272040703310918383269698938652560888184742986216357118854623724944554779604749665698261627618453586358458570950071020995181787215397031562074573680872398068283500084256647064659719805820757524366474601867813826228079499223870744918828552108190542230446928111410300856791742451690498375210571001511960224672630981344431126709330467677395988418303581515329414455605697406459485662211208886935890308913838995710009812048146565823266348257515860704240950181251608286903558866858094825064036486300957019310918107205508420275195322337409518551992302365223182689937069442897195867132940594244436403187356863508851195979135104923260561050765167542101484528233698694623932337549527263990426518450305463590731854251674184469545751374919493899083022340421053810052034565399509993447956539213034339997846444615944846133305431129747086930177403047490350469778544158994886851417061562852550137290850146259681301773047068559918056096728934358208053263631751065892731542988245314137170241903374493971025720339675014911329503191330157962404153846528056723677768942275033130204258880687559631437969419670770418632379438514811991310532799227575655179532484818942385076848894979082903584872341613143879414251200370860493593512313710508104120709059865441915669814287168805429352123525576154044677731473980229274912127045127823176985659676674515112847287452993133436787493756017011556779527585572920997814454320786486420602955960727603227764959103058078593496886822002843371658976360965696061099510479005574199904700324055108653401800099350787640791378046738754205992747007229945891378190899209427867853241285458493321516351244116132893518418779743355097084582282642583111912933431349719220030450810245734398803054362780955952913777881660442786545635888625107952148453677596774522755601954142170544674970255526612477077680403383238454504951624319479758320090232722890710164073361648862711507189211977183014776213580502801992928013751302487476903900287208605427446167969488028711691534231873909476166587873215248526540457732950865763971673263560069195481366643895080986666017715499198451375950847604017761643952816764739927630607312536079467896141120543529488557907593771521110522927784284660886739445022342458961171719554411146777989258086234764315590702909587097877143137851086382628613614022079377221912771025963229061395701787489162558416190437058310425334540308338745217250533548043244230516704073080134771224964601038367378602389748852333570308056300887297425187188003528094129882747361008100307452194935734817188219116645012351439869373495894174971825126285756602221567101253655480928839915741817321307965212637683355826430779247390747534422460494516798573321793900214303278548684848065005948598327974006152511421619195076823193162217543862093556816997405470420678848509532688459423755290671287121490585605567502278922579902185872311704625148358079422086272897650134469188951177146732073066553601121579264239556535228190516013271289630649986794306223286162366329769583731443461654187257972232230777470807388833736871768832215752772285181356692594050175135218404223882953592176076769024328843496875026772077690986902191705968110764906941693414469318753398591615694502560407961480714305074364404323301924035227182954405020965387008256324858394293971384864872733156703261743586507182410151642421991057729501075978818739061189735215672499136944897438944652726709356542519497679903586766712727293654109121753233099141849180176114860062190501832279038333244135478741450964410946744068703133356833066892028418445878450349897310274819696864544201158679998011682803967097046611759062791940241882026176213655943146077806811090924384328807069841588067899602480679073176513397331156473715645105597182858174598342429670907459641902973906877752818342593035437632734751802037099234479665612310045010019906176129369949312608818056673711296535982387058090956591148207771122581207637364910249228957324571360140220774225465924430197290271112031214546883205503434311961222478981195566995115859717950541373909006349278828702876927136731326653577718323073936793339135731795653270661841646382496389957049123814859942146693249773408119508010085783922620207119148522782120371202392990437040595352078769030369987137088383098001474253149036262009206795578162293788144253725077432486545076918712188355435855477516737676476868263517110039355597086552728441247126086429376857409868638740194758234305237857826344629579698247841962819425945291640745633243733936442560691245420097410800757603205643146587722359041808515282902353773631431897252838326623359850592983446369624795340339347631636007117178963821238938219647390196593873307874737249184632408759721695809023164853649473928098551755867808166209916260176207917863881386116794347733607499643425587059329716183312785975604350385905267018165102191590203661919180298128927165217469848030836109939713640612114825696535767321721832523505869572598307273594850437283816059877395382242810615865801812910175333918113735700343650053098686311167870267502479156816065357262687195796080601985096333876920755013342408648288097203834431695100412047500059270510124100635584561084383820962169072210404041096980869078575797574977841876220485324269793241121459503416210264836579184031902450514700003461752627697811914471473919740059446119771847264740106973013082610993425062173003691661266715413466288696300005975044563418569473652748137070090038909417063675738060335994062615722155331291428464020744750373558981354144817702665724932746412273324566566932327946953865258000654773536487813559893967749465588508442339673259013214048157901493028204830977865124431980598885868073346716248826787389994761376890596403091294560736751215961193930821731878020532224754418097103976968946734090735320826313942859101988238860496865724348434659863872746115989000979119698930075929388505976877613754469365324465301741507811787030172041605259416296267494861229902695171123231842430880881585678408607854805248996777458099360140092243512871478633038256777012621599224125948623068104651798599313565828694417575339844099765042933738035310757191854910998301121511696466327144600030721438768621165553345398246064746058137088679825002439206762450936812637838318865521848804977867847455384157084973658335991523162325480274806758894829440923377278518864428874157612538345566471341622674432421941199449253835650433884157622926914016253322842573080895371608938864917390830910020417137591946476571846154201749446263899795811712655235857334363073410804005696448636740809973562201648626554746701989590788441984651967387266315681772395681971034225026008922131618363800941261830185662002146666946901771741189543547529073598967045529812713733834871972529915672807370904015619653383338055091055625951273947771615931031513882908463864990466978300376018485250186193399917023127633792038098751900923783969428666081431630517515848034947824483239087089129890937154397937662081182299686889961990700386698738546841259239134393661699755545490354000393842223242308908458778875896147439898126732341232424952257178732023239146053474049457505290002833665652111984998505108432456748002952341778094345680156747832613818517229052400761727060522545592412560035880297761491635865751897252696925325546539151784374326760675190321536412758593006834670742323488611765505879297374147759010088515821415490463743056659244681855664972334541360145695003455099506235245932274038658080223196839865724614404921240347684403676052392198068935787359055133930694005581707424033944539443576376801425022633977787780470526638553596153294689956546574927837590508447825857659040121377846153254903337180659701075106869677957327933737445285152767728684338482392685144592397449491529807401698174649050023116200056385968906268114277929766095834893470936153106688382710575097483889831011845289409860546087496319991644056322325240079506356651216952288540470298458987546284294846840890729333223209806915580462350970829592655471720217364046697445655916064806582994090094637178621057167958480797389372450415658294971111209558976391909499205345081267996638765227712178552708093341013217026252303966595390390749194641742179952559719709899254203702388614869655294393212689917729063882063497324290221004329518178145411466873772594175870958887245980836947455739823831177908488163897212041572839478409997686342785789901369022878006151352111931251874837149680392555682265972616670310792488798463666965942931635732567909509534707991708935967309424541621845340495225757000646117163976665839021884518005423543539842452187474954432701619857139319390897845993862591266314145641789961601727197848213638833813548197550668019395083111031162249697646218791533627990499360724944283866714955150573027694493657825567050061858197583004198413416738913819031153365670333738500316012695158558156147507734150822779076483207484825964114374495348998442702821046086428174485229673003908532420617425938840110072661041939158979544111875750066078356588370830357537866710743755358719376977009616831441489878104990655621453515146367499903835884724314404785328155360081572524382425839503320841016480252875755860476701546576913842058235247714789309993083592958228678623386483007854804373106231711145941729763907972802227205105834920455234752458230495859824866168061036382480571555351589333704722697016511834294172654090962023665431314990767953270421265616853358768629617773813381550646552084957262361257185244927048540199895395454379471563752750794114214938823094109624397988562227421736379915174381238349843864761424321659556242949044269217424886815561955572849653546008906176004272048226457564728522027681205137350779954381163635874575498754661861139788754281193830952098952225247996381254220176276003556911606816102389255901887965488009258299493338178069698956948359078248082789670764023659362239502825817725011631979626043875115315246146482947144159989861942410566152527310470743552731224393464236734116082039361195444247136101408388774965863357223620579610169465941382939545854382136943855398941083734279212426333910705885654609022735532612759464160728319883486242981508592317627114057004209425830200897355159021750747272122815946772305278024123892712088855859651028872614651356386149733024958729721079480195500637694628561299767121423714660048311418408159542599800673765712473027808641552991005693537756119797082330908306813782491863524416578726819543745897721533821056576250789236296990770890931041139765320937262416039847172881174754791737485429684936897706087043516412179280380515507549025221997614341388943678452368850016129531945479626584170711677658398655032584947528940853715012786160061580372699283469725012761007949227579185384058855936438933664037796188864179877467348241664212351264012574621237471075981255203773441706092896730887883236964912839638237238501079034099344159257660576508943901148473781235487677712690057846140468843311980784197766930106214227191063016506355625453646143680328486772058676234191686045521709870275944587920278445865242801818516623872432884074811174479243071594769142116879512825530694716790055268106315590546865368646633747130279877273164566533334742497398827582266518132702118997673729297838131841145567850613413166960171368025584366978317944591365584008158034196475872231561381586007206649741946759353618617745421892376291032802665154405784976932063864371086256050924892908659957253784652056826018655985437313299979318224730024548312297204776394541194478311011376310199429045809328422878739241263072077206495540360866172203609265837891730670602819152153448429391958215560559320107742708200937277948235449851340673351491660476561021265432186187333030917698590335261462097951098287128141579020093198353785998660773427007550180103357786656287110295958052668080180343219155294358524264443734619376780385290696199507329558898612602909015342657614914829715143602986223842731633336839363495201803383163338137614914749652140844987063949337546017725025217527625821082551439169088311790346989964594805851666769151450720881993122565825350591343654188810595079582204501758008812952341092158323027442114856975468816076477768941383832657563193663504073169319030028426290970356242776244777596947181107642373730227919731378218462030894727886423974054442209708295120830522500829022170189984906207720290583092286253111774126844339407649273618056825780139385927472703597401598259333271066155410869823173615522619221295224082236589142787078387049455827895740134751663510557441962708511811032111742004457639521513824736065832311163068381535853199358248875718471609835281716187924999914155617178759549020011703368864632042174347899337958305289940411055585716974233875109145606677217316920579293427745323567588882001136386636960744900703438140192147773723076511751142520925465352891515597335389038744342328091900673896782049536602908914269014833814180788967240633996077466327353709849729478848121561884700012783224113397798518151606604759853136525508266377427528856639792229050143768846830077655278964541310610746373287390124351342962451762170157007993606014817813400105336732370802509602685771467702306607347771506916794954252791986019965063351216516189589818170532672849756366052754296835644896444848154321560177616770235540446790127709286469386865178473456718392252540674584777528912236320592680112225908203403745846202133634284490570335513431587786101150384802324042351381505632459742836620189089654446134063442411079051532734178598481369937001513121570735184667088428172681878913483824600568563712625200152152240808021826617203090485210678297830823098966710130777834252832930310592781980953353264876412142208683858289759496566191951744571674849651670515750044023310794707894101802119067996069171607101000948097719888894153963004372838355626149129281555355990980710439127661437069361109316827820380256564103235777454571634844306774944806466242673895946886324138317069614044767782480564677219627492067980421623991203302082517902228903632915322232988086091273772882245647703139549605585144019018514955902159343963849090494535955724730152095959443193690525999034924516332198611890017119163444579175348122657356179225596220300959228307983390193406805818404001868794694826627178195817226612224936695706016910006877401859395402909675066492353405257652590817700804504910928644763594593372861226065500141887102807630182860516387182259329851803411918939964072154735066840201998170402101649312718378754620824038313190375891870956173243022247281965152150169923721087839690520689296700523489953689416800018041613814360167322490396110409719744831050883999898348004113045670813230317200148669694945268246045724331507786406043672925707292127469703737926973409336067754505865430237121688300460799825948457421601242862771380870283612584646302676136976138421402857679058841140922442497103796759817202075035002770848686932875183690526398342813464601413270833507717844648340297014183098317328290269161230226084378338158546427700006807829097371474464909761186194409012362086500899147511244462038307237556867061554013799287674481030374825340329775376436832240949601461388235253808434384307337345045427060338666077715018275703864645643538573313906118653214335763605616545639642763432038912688049233647022455683612298190467923630167711401876350284963579257081641488382647723627171539762902107433868128720206816363699451261881007371883428118421634303044788292460563018688298010159705440649986199177982706978610472811537532858076659466189101868510748373197163452848442777417663646188680986948734703981750065537723740347857161246759975824543051998533913573302990497960277146563607584285951837185143248649884801566426705837984432422014494828315976117415980160503236886882237530768819245889735697579586602665858398504931927228155910933182552815827471283837269537445547722406144971902947469483967347786204994080244816457819555545595478348637567295423920820242582844308558170723304608583688129749075383036099168914582508981305555237357029326577253193108902448478171417059783209392826175779570005912250637041246908290283374057618829644931669625395157267033692758315984080788946773386555159935628192376257766157774184013370403838926737800334062732131380272835616723359891447903080301193458578255315864775161525965395340059303906479153282185826130241484249540566474758522533822580763168379469528470766637480367700401895803706656073068871622842007622702897369941353149129515290254993358023437754319454469457537103105777351195210827626537402255621313578601457552129906600036253606372267627949367981754342944530049573268014210923530340653146500071308125051912388223905988534700902296002332388780216962783193720259635223527795488638432685985937600734047729048879484650015597928715471767803932675316825509912259732229564514396978416541197721180111775037090409611825653874049707405126608462112338969239164345710584055029119684200212595828373111954877910768671140323655692978533442472111744762849132721596520558894741237939233384527938347296344784010064200254805654562776414240126662528463458068548961748391001410493751413793466902620846842048065547935474367240159941678651677792656850349853703333697090483152795656131231973323217323827489268386089362884624615566712932703986784240000059201050061477162549039433736681442460445973241950966333480973997063564904183552060352915724664413927749630940479875346206771087268915007964303459721507829154658991890300338404579247196098091499834711992071452385843099543318565577905054548950923394753301249407626631641890540623616879962760896771602362449691818858486910062862507938127173685945045564431938829859547813912548913564557809166385404592607746063941176134474209816508710488355126263783667150460862153058956299466734035248097591319069503373137511718349923224955462789807145771038228440934763493392722226581323261475630524338276264908160107698250498803001264674607187588311829200291734616184016909309480866821265658353806882801006038336678357929689479913761087471464510505272837999925680008759892137670635993324510938990163695991692871322793836639517356152569482247090858796260657820732603479683615837052494725003731748467227372385827827768358999695510082720951350862795713451840658000770557892714173455549054076162230779816587733337902799089364954269736896768037178762588673216174605019411733365692651037955208978252267360962382459865471345147624243810214887951099923263168841211041882557310973817860540515711031797489414226426192056850519296160241431530725662579950142229957152819497382712144366660439093013199760681327300054706355874047505994252773633786173456910892505550786430302678201295326507646415957896022370940477713215749233831022647311238723942311499389963733638697807684310903263801860183684297064228185224507542428632996193743922614381991017112708269391471600970483739219568873152482244427719027601511225035542504237242005625505859174116966424625254490945339215548473592037229018370844785443425424573342957718852090923062044106266804338508744041607991623707845556136469793675234069475380577087708925226120814926432564183776734591075233209744300195296516404717183880192331199958009877380222149206139150930798675318922557220473695286647634748201377451896192009276986038472108103285354986422858607662767242380394725966758516876381473731013435498292609156362646978336350821745112287922092146095893731528648033160811810181381012961449294036904288216438459468766860512545658382691637629128707850643767350659699518450431925780111987184458435699041411351604660700919190131516038681128388674868073929131437438349051619990614545589237319171681387785086042110007228306522515439574847480025022179238057479529546656723779570295021763959605819098804807018504501194628810893542844156075749592626317291272950151362533665960440657871846011570400804580096745928569763762460688932997630500160927948817468780937943797188983163366789201926130271385823603632899439938570886146698623300044624225585036075463314360835626931756170326552348244321783558318564449705020315454207614071023552166548980174349352571133110872007805412808160032880404434290246046675055519447774494039116161354282086496081232208034354557076208790439937246006340575615549783342182112245831326973321738425896472413236916165627060511924117138188939009107089326617465816442066981439502676915332120820331764120918964652987993803349707075791227357727417807911174127836445354711496847932050441561545790015052075145091720188270430633463365771702516616202021357890437439539444288974346317989953012892780346022479572616210419967795950640322017059715591348253274411049479965665602198569170592919267147499850450371109268723021229952009971881204270437886694947302011416010037626402570881427748228915319406843426821248312519814572575926478994614973122896611563528728099295440197097178214472804872281086108463837056577787044115246166933210664580123131475323867773999736640787162618350014639007825879671331080619148193237186455550991398962535175415847239744891804113100924382270253900335377856994927115537681847362960446851208642559477585162091872410400603598861846296346627806639193190720024292271864047520114197425883472842182489706500530178479771173315397480876769480221245797150392727052438188978289358156829668505067218394754031598800622396937499512383440561506452230423323525753835036048769043519661563091736101963904949517394782199150122017992639878979579765593338039654457743038349530516187548010917645546308607161231825291049683810590228506905904072533418121349002658297727494485861540465778065949027542821499660113459663200333943675571562492277308205416301375879530875519940538259069198602607939683842994903743533874265257352003989316638385529959498297049512328577459456894898531263680327869210878611048815283780744259183348279525683249017101893428372847269991504948400243027133585046070029277683840564693164725680872915077846087710427352121938819529855237148444847398710169939204120278376754403071173900195732818030370548523786588727949670433774136368793479878062633646207733197004469033714278444651282832141312469545669003143966291462662829593597389938982080459408490695218138848240651237381397049188857347301320893777325689100267416585919776275968551676896885176172746298414687942668050529823160548354175158375263412521655457262057120170109522214518229181170412977960709831030371534890785470658776426511340731808897754697314472714943016688365066957809799287761374305359345615096483989910347506020709031858223529731779391890400266963483000112264198116132326726693516617369377342153483024438570330377827809348407049254710554214642812232393198482571186782136451944928960320087245733145860943605436575948937265965646511855751122077887660522389381176987876047813504288541193448981869536005846899263838562010356573184670998151855480661394611347065924272985274338263447389804337499347628918592538279006250272088087112707346196328282810974067419059640516002384729312387382883373322424870002054880782053583781503484254505511746220690891613550980227190801668316910505650560793891204124811757063444127309380693576627785522786389992537487652949724686537057111770827302244447021638070752930942721268575882056744809791957271190415947156594292893155646951771151455636288533188210246180812611639157682202521118876451560228510576367662398600626437888815059880034635068557489306524933380297300545666691125859623195385504225036861271425021891100574553974801702965482623493254222464836366743778569366748245074670152471409063933316493118857023741904416630485954995193451434062059178883807434858960276804056343894563273571712845773536816446814856112871490429836718591431468753294479583433896897315968236377439840739494887051494448241560968783273328208641288090135140513868525709095395226047722157562183134511709921734102593836330101693021080676757646995214039669680602694019185723280281851758580239013418213381305180528973532528490465199364548934384586462259502671366752879403849800035542580660566952985346392509332230529154234288766288066231656338465098836764043275033936357750347027259172193764173404677304467323850034542027161866139744727645803900413954904055375909887152513505868087733143091699159047208751483323162258698601500414232606450009705126011198671855239124629928254510137869091927075508836790136116421698710212187510883223471120703164424036773092074443539436598274789875642594256647158082747444079007500639847789822865854260594719650018069945029556440437405311862809181717434282387740636253242849579465990017562591865770081880572426748606209222685107320214780285438831987369240232579987665316721704521175805345581332122214307719809869814635178669905901996220634833821859672767318626590291386503164915325905345310061378384683513301979302416747660841530385570398860210290663693532486769784750003145560421127184338520502373833814990146868899789260220644502401311937048851914444596633108371853533264224236592142554295481168499888783167478281527030075304829764580618952693458340198782126882797496967392407263169322496308032403032531669209986213165324373366192686437968047231102242971668031954847914685053366770082472488844457980704320998063851539382810315648790251967467173129387469237943620495450340617394081498988927789645171420122045254383778795624610635262732442932071684786748614988588877318142347599220772892224996298461326211201183348471209406898567354151902478524432050382047154397142438731119638691378325733483512766730185931042890632864134699363446888703055800633411881009452842714139258738366100724289348869070791119615847954656707338748849181642833752651339182608823132651993983965942956829596620498713362751848380078139187491000791099806068295621685354329944030641959687593118900183476691991159509447872282930420048502354471940681733209698584982776160461268305659632086295120476699761133706821733248668562585725506603320096634755550460582960087898409893659640134330339875605931553439766331794247333182475170423899182502314885711724504439924413020560795115149270406643873165748322981066475623894727155731151825731200931855384262901760451391844362727766541437399630479691600308633406789430714178465338292413372555846135855975494828235108434021863534130412249727223294650863523459351454964662692492694825775824526722810552258286262162908404336828294834172249110500711072688203189880301089856922385949935752396375355361330696262542059396450822193070883384086274872632164561697615252363623242186864196156922185607423391831839347871909730874191643274694046746952737034149251563271763981438066987602359512901002207454271285466599998412863060779307951245404482761937860118647747626915181739379322602573140279788872805710190065915369666648839644542251789284538807165431138991248018269736800471141181074926263479121668703366368428508103041990403934903528177256122586789197721401605938580535553718745323997556348156635172832181156821195142318895239483924069703649541553775623668308471781525828119872975098684491789127898628026281833499124658948378376282044513836279956912583166135496760757690699078540219319906819106434780390098262293229510143951091304044979388573515311384515701922228990040135662240864087051988304175921810033534501546478297310831982625497142184897372347203447268210299231185953836676178196231307811632846691096021454335659535684066303930577164325290625985781607892622151602356409867715523510743294580357048429768664902971736468615347487967568848384635740897366462703251405255188801176734912998691997656744430457233180055689240576235570715857671632259122401862838987037628376053052797675393386304828767283961366370133009707121921315229076716033864152010154157221546699936939077596824036924932694337921290116752332286120252749475163421531905826249384386415319854368746899663552972793593734325398522504101173580488828275088484390025051214156645196366375618619469266971629170575630012789779589984395479419294375006481771288305546242863924790681891643190642225415504449793110294489109428936874030487260247048734392098867021344781811528152758846262307553043677870468678571845116377014384129274928007512914088698728164672371633314006568159173929545435040420762601629691271455412896087375969849885400956666528589683841309376330710964732752120946178406936208856025127690541327712494803994934001401025339918786723654535477316237349454997680400016562485110854713961664476250530170717123953057189004539244907667167952900648862553629422748827483046302476515782759783831181502147289057475462595855808771398978889192613812976402341396305193839788076225514639360486264525863135620877048270116727392370466725047053187699541305595094864912032062550795677697717020991114012599374849240473425978263802766699160095895193950240943201892327919899018550580962782934546543981025277248927959084114043056397120115701170144276646129539375905672883946838665126326296743902329047538208783602141301413958053730624141193035698511587661590495143338861074426784468450979744256003723297568928663030910108723605215283528733071182057163582787243998104621871562071913462750014434894320768224267382800173058309788591695263657420056605010085166709109776013765805923267831828217657700314721781619156357946782174334024721807021375300618900201091277148919499560714724392066205980142813357651033956765653530452585181955938833608065061212661323586991346654115141806050213642040263452997005155036730553389705017214232529149871984613370096019048683797903007199181494522580447589190216211443296268766989243222930700237300585905599744514689274402269239401033527038245612869722596528590463485483048957081635164417488127833976032224082492249217630597533022947361090540160189304657796270195093859105532443102655067117046242603214380380550618451184640994726403357779710316467147436525199143450786941105264440713930790199575107538011751795621300353257031134932776802312387594968031363162148723306024886912621965351368082571666432565577002692689118097094709401775816985730464437140916639480880638617807850983484345620273069942391258893259639859608415014536612275424426663221484402844488558419833748808706034063847982654629752322501994688940200462207923403456146986316320470582991999232868486381926105355595040559422230084811577106962117427933068476982557530043683693742951888876294319167833023367519190093984327756575804884044956371550553146549719538803855746410286916417666050756649877911445662182878688249051874417551427044579719114815420221620146274826424442382903173096269306516530709010953417212942613229934727558478141661320254872525049586112929279063069749411047378399704483488923323229690658234215253384722977887197822184429061937328213042127409634276258790153511016720157299489827800628558677883461722621803934425308906664374708707268793209803269261094852884876713568367701888046713483427351804274720579410918979859965245621878912462670372800122396693046897373457168477475521724618301425000233739303454405865307645068657916886963118954380146445717670840569978842769712006230846197706563449994798778953716406481349300753969818941479142860544001527005183524490887334986330514930298389043711547643712487601110577432055952903245209579369150410435550432469166142880459491080266745151587725380530485209403427893371372268476700811486216143615052075404574434343145707179267635788586336058069464477897666996906894582157037758100683756179638959501542254903963117141181984634827679259895426282015332134851978062984194525031325256862143545281583996484152854927527883189869457836716308496440658772374896950369852283072863957574026694300069734070138960374435994612512909788380706206705426009879716790817999312176523742693700999409301836255712591950307767142551854560951026174472577576230922918347784078325986606909584997265397664274832294670894913821917387329966901701727888140516584394782990179465802866094387072766853524701892999285115337451753185201407381174893845696578957058077253710000430689723427611772702422864341786258860183688341019587865557560889154498326932554734590584899528757756036695773062604555498459206528516593894333992229029194673237883178833121730040517450840187466356074336849768990656070275644825022832963135935296362270628452724204442600569649752585199986880020850530421145445717898588446537147471154045544954915885096926996138970254948717880093614958899334549852467864427114350610527167193757158284478952565704109724185994020947838621530820741159383151544461213893752408695262639817924850720967025465224118418895552029708488391699169248042233785883650564864337134787514931629284934688163863979101641415886899309365365302521798451832308353045647210522073315630048831119746260779503553351598334127607601905319088015349056257284954926374611684753169678529514844610324060873112279965127263255350913006709794266961735412559676561865725955687590562161249254177746695791617315755102982056590886676514387874191574469043054480154034297115898212862977142129926339437947009295448380475609611262118316523683411853052110539625797010061113824631402637993946449850749979884736343013485096720415006047259100083736042041702740537790147524271049801886285964259421448219920807934396984154698419466097079045342104502230871188543748892034749421399916020223124713660728113478297440843459897593589928541025931001007055341182008588863278867827606377360260848620940779119363134559409813708971284997209201802423279897719764452967163068397669049623255836728666067405328545605046223934801434706309746632160936344391079955691672055144168274522207742470914423910167909569312807079776813862178374257371027713442112792797251640727350811104426059210959602418361362471852252165930544323920868979734784301504392788033090441817378327366418694294221710888272006475082323723775761316051905141040116753255149044443122503750618049543438589275025115524200576017487805408446464349148808793160493703502540607172041773885082505972059081284155512393820802468847877726540228055186636943949529306854144201364928901508346059205910467911309855420320944898447105929764155890051254382883123130738990042644563323987680847193112966745820762639793185973135294596957349790855334418387823721621282758471343379452258622736234479152870437058610758586206449718436130692598386653141923737935316529851806034390888810142718184823417173550090275450459661959670736880360582454496261931777951024331694946377376841483135025366424311852080552278761010433384190131016865315340112635235162078157671171421636614376295271715035169946824845605569134531005017092373064328948977575935493361818181149036924276040847013948159654239945005627169737989634416238127538784403472783726723051468053654566695328532783980817909222896722429781569893708603931511354845643805590269666666081275783815102827874857396811018664857326181266803358192903007823770396237478212621897177678682002448013799224346442971355390436792184653283103351894848848055084873146850619761817351158322025656058930558921254670620856111244568181698066224841308645026255009255830888147604009180232529717539796757189441073285118280145264118386597315628513308226936907065875761938722930780088403972641199994157161524779856704598223979047873661118872775929454805503121802741920523096857172633711612998899800323146258831307920322808168056452083206705005410528630521068976421426601634703660314626805950132197781066094435341885328475684235025792738609848384623374615812282342132675534766946665792239330444864151845651998399603778346548573594934192019877662488827922535961310275635166099776922355524574089804373715756317982886051848773328182243413325676791628504576022432853694119370726134970303483784217920141840756416896754272928988316489888644405822364306038200752830021075161568008120123071801336724538412694720892858873238600188183540737591489039288801617955116711613788719439800576495855022101422405797975472048723756349696937254965243591770541453123014616674315552391727645934947978505110096470862927844769245166745925042952085686224492927976248496648354577694484450042666436919054027028109259765660195738006783164552191703119859152154960804191009524212990888474258840362626977795153899639012807906635613429388815524856533271551174146375147244082485735909901751110977086501845849845822044011153279799484752484332182938787505623616192757591271753963683399055539112286907654358258061550736491134638343415494866630169615440999897595447499791934847440288136717514572693575891071289212218821971010737007307867675441174251581491803717139353015070135711498810662214792851847820975427813173186524211746767912765997258678008396778015309226585506628931994660188292565854418772141228942559085365413535851776060949903310155232277478410763030476343497370287770648534931152366286157908802529874301056583322469202516062420527294316219865713224154168242369392136932707358215994580751612600381025666778591842709694580147059899165015963160109438445291099878147198947501439262181769927046903546815217306827920538453344327711608970352217355877485204988648350206072780307876215457963040512601666588278033173435304428426865069065271345712894263723619574777315330790645837078224699374762936529000036159200447295721222410951340089327244503457101010195330585411136005085027121008721854657062261843129595469579521844488528042388458597506726233584496796685019757662437291092096494999185452366851369428132095331842355728194415181084451070867723385741229255242061064300552425183211418443460738950694324070422785372698327027275196348775684671379131039502334158300695689486924215081769008136071093868074930741812106391999800915577657916731308853838157233509975263089356040703228754966937672258230510323167617398513321215623332296636251596290627425775424272995501649864851020596344263440038083914251729767555483669741845075007602549273626765109229297736732889845700913893614325862716485291255123013171483327402169577949453452286329792742498024358153809378098835085112059303999792811806765132197729130047259700724180013882255562412724027141628186486955764191210942770204971117741709524476394227189687961828768553964108296751505815330849928502433835927639885733937393807477667351841904466649576429375357421364864799379372565700799948471713648300330046183373246473559046433255105226544104823999623962034969107221096892613273576526046809994171407541527220356928532360596949072125727408607720688208562503805235513787141771686709072255904315935098284115945016139180865527263960540900147812416043796480324771151219413074298974845953665328062716148774762352797399768529578944134370971890202438800170057969195384095360674117707578094596966264520761228176396206505832453570635370679090521107128078929651327633081913741551832758816160631544236482365997149475551669820841454530836854768686722756570737061125322997270283109581472995639179340280354355884354646614991897100216967012084261558845041018609600271691268752263490754767819939293139592811497359965281374095729779284372110912649748711599255046412449122815306404847930753045000884766597926877435796474082887469099711323653364208150433515710596289145562288445100218782674384590463033943080476039449451817865707166694277133136993410230057407137921067521575586714314215427780678596873656256932587304711875076166297900636275631565837646528406023335813202785685779100060154762677377749070448491043796340549428784292007425702314574430450814986382210805155298386152856498743680769777853561969799458721517437728206608480575947413609474790770396479928551530094295562232659496319875447749147393557820946161546879363838627712547488953008981180877792289133813608853073205448469068693673137974707038327233121753351401039164239092752428536604035580706736726040136015641187195916680301544771956192006659880145403037550351298016184231931734234152355272717696218424972225855283684277549064876534195585088982792805948042127537786800207552418458057826548476532825869327977120842785374560821923991115327767276927657908867165861057452372900590770262392635108337880228525760498280311591213604484282278485189004724210024791453364567514625264084492583678800408334927496270355162995602205803771804408969231443112498981924424988872449798838651077146295722326577776502686139870671747134066374821922221882830765361202049452326506563542431476774026600325745363121005670736338511028361590560742454433483245474006084041215512778365489650770614105120313677028045028173430844173743471811404276873715098855719257280210152268742255511344678830795175799554705855409098461171814054256633529722081074127431967467003293363875843406149390729766000154671367658836802057261801395974076662845377190584349855993471911744131054315112382629404418683157914203213525345544842685146602381911857730481246506616248058852911777848502914628847564259383154775231149399490090379484767473293205510952594251597472710364522852651819324903173394322250943314480339742074459005295178920438692210976945300006164792878550436156334565330524479557379691351034056916356238634165347088822693281925425774468404203208445262481785149180029336838036344836968195165767258671532068534028839868515836585331590775613618100120706086048735235963086230028910230927118699040348743037534094484211700124617717557367645315399580262986218038593958441903387448553656991023802875426444641947998268318008680781211986789537867902432591764380082673225611457240336531430184778879046972536119529858491989189213989199313963728567543809116068522848557751586286759202202540853671840375358716266594714921643966741719402013643101246009922189621134847312409649055637930163019738080069811625807009888846475810629259220507009870079371600258344121268834378638887010808860685939303478384714717868313045921779118527240896697196731098798146639313585429321287963671236124944560059091105734620252095670703763251046054572834429991637686250538970014832206158565104324197527970439021774404409319284184427025971062279348408979065497503021298340371517333370326415586607479757257319631834079086428013806542182747573357038896605790047581776241164740935081816467394797564644822133207892251411512904461735838601294369360813682706029353600085851148073471318501925071297023961323084757693403811396954956802434819367069473319776976406076189965090346085620305130225682501851889639853166231278329593279303013489653251025927419328523554177568324023207701492186692427898152600460404759266201366157445345714434953834471719681248665379695714649200714812299884729282395169914797071243630911304842828489352955621786900658765342201108128566964568713575394944676570270310199326005160364467243741972465638721349128506414614162248147979174537150184812207199050410417588899619614510991957769203688094845146920655409322101408474064692154950154373999078314887592523069405580390639674929109205329385243007616022714846543384617618960024383923351395143148347739802808257149765840018361864550568570213154882938273294266035286084595352219521475853244040542430156219466168501076962879399417751507251041684527782015658838486820473963542024372240312490158482283630568111445979553906420324891170871227833143153859497253571221294499148842035087177222445158189414251455476619562973987632373728052672395976418223298624081159373463905688281921735089976070885547147067703602134883071486589408753013400371481546257059039212389111584703874149379973396648724860280694599042569358655738591686218347028961585531927550950455367683406396407830539648332960674187557813632004238671769521249040480818689901607664191542596690300551743693102362346374286932734316972208322665316902088820729244815921511818483655947807355635672867410410819110929200223246296434062101999342711246928653103953169935136365479369711946502877059858197515565070343843111674471447292447419745275022339547669429140645176503653874944063765196771001506561557741113428772872866988247817455145402989711072384929871269789080746196677832807381485716402889607434535956867224117618927758035583487480937840231832089801616729570161383969031265727294445314956137884866873388844855365803005952118591841900534893260274641851883859792037158107031667784382284125729165399201632017981415324677363584655644627447653321800183776009858993740702119296954687463080923437246457544152774027789901978810176145362673760465073178911126802599160228799345661229644153006723755162494325489907831027643273334822804097081383035058987892611406042318953764395117486311876683068723385163982424772846702300355186405942536674714705463702238656833032883984387792906987941069720477540007320582071325628396931488089449372030055650664409526210338348698585878643213364907145774287573716722372964785479580087011195572371426140609561365060425965769284360294289505143226362979329540966313414907402419260143752345531388792155782835051280056238395172214842201756157974814487220167347548042496770650776962042946013509692105498409995070668203116275553149906347485678454525461782107116776136472727451757276995126524900449451338947100801739158764792013591895057677680790427005489869536400296100420518982940099823666712560159097919038650889054390685776411974665199965275333090560652145302835924104663362359777948397008055596860220657623060828869286992426851092554496571734507627934834863712405735574380500462620977308992686913978324233013638247816620513507974405101117911809082148248985802495215733103123918207461357232871727704098058810777691656356881662905537117405844970766845261958526195372319027911765723233188433727890547841557360722570700885065909353708856018199093565255059301822140915173969155289541144748064298415135159789409644802148692027349385581753064577758416061961031693823293276933728082983829221749279636414409821960494452933216258583646437967574359837713418130281600613909821034896777910015592461015527544815576606203475472991909706273095551028254697719616380330135931793942425668868786935696060122663521534971925224547986598844019472084071996662981290699950824491049415868804763507499806956323701998391070840312037690598783635828332286321301546671734334394082351049370178015743433386194223834213840220628009533910345715131635819657616612019778905113242008208548585247062612373650112314081465026589824295682162409682153548511218327630448673771128559397121342469555108844750804310059357744538318188758208340612880182117891399574865015327173456982868545675273609216584506205962681153182772254927001030037638627905400031765272783063421806801318079805312309671203935537477641719775647087705077765445323706705242507361240336979970639279850191493505195953514273563397181818693033869608123032488333674838342799547081292333813197892346305488222450161108699804976553069984108860958891456831202592381848175991345289416948656002700409039345777708956419575987019142634044275636998002903129994397895762967430333258821232633270995667471476152416260188801399877248582797680825641812903239636442105470268421847129920850705424413164827667469217839951925442133362154936777351434880354878786606368991302026202674708573995464538728353410081904170699317914359136909635632402700159304431969397983481669786469654997176925419340986519041988100063702993725906324516763323097469236575903246645445799388260152159233335745620507431742541764142341293321874439086726044894399503594110057880067892243894865868761824294793780331197519423082698966301109636744240589872741614083692061052369000876033870973874586230164746711676672644681440601900148378571081255336856582235587795815185694910776435933882012215580906852564314684173950588737879748469228204808068116179701018605985598007305913480858108781380703195632089293070586305914264488889266398487104724381904588703465322843824275359236338359503410149817145742275125516005653928443844490559757904320563127886839530883168481298855268776729062923771325400840346245394757166860783118305503629337491186244143175854210843787474117698724680351634786993901863989935207829340057451525573871891352291452879969469048248848499831659048270403374086558658227781149703430164155634283878531256255337132226737617092597773876723669153782650653438079140266875041686152731958334643129671760044808456577274995307040279117233337254608808779843582807530659039343916026194592601622923164099996949543929460668243738012934756428550816772224919989337930197565420236570936975290580055132841104125794410707860392433884982704155510316055628105110330612022976805734983838407300235462532491526505851572887365014017694453040301489403806407391580273433825152087096269292123491850667299012841495097369460187950610331880088808806610551501973286939584852620871500372265165314825115962710911279006127908712596124744622133800187831232134878155997932327329770922379707914026979987146305142574442961524835554405475385338917249619048648084621790896808480459992256589393147720413343075398790138100729746366720196636084904720247051222118155391254610176703584937475695226009812298153426697689905701276639929309061525592757196076907309249433796818609090405586237124994732012809332278228313841845177556496558185674871081695568861644977576409911703623589936474925927400199302897036008505509187331641826770091268589562845941897515350400058039232858509802095353637289486271458517696858105660748009335623534735418702772208507659416507834894053022103117612155020100008089924296908603241256013761684840043022162876769825033756263856623470892926667669355653701355670738302254275942326366152927595992944196943720186619484157429370434617123538468338717836236730886108018713553422930969883550761589679989093169809164215329452399749273954492061559214058919729755549584375778415630282361600037387766517844379919512313170430728223294970466246175039040477056800928535062680360823563455932230718923453954096147628436712533825418181955459121226268242506429317392398045519716787751509454659327573812228122078331375912739206333990898265821751568905825093537287973237509437074738667216662991833169499638590491512074631253531736455949656925783761547507011491397895800170169167499745508242086187966199782170559426675308755377198279964145577288370904521851617669826764682251357845022732346230533389460232472354347528922932935279945977080626836837021515268503183077396523574663949648656343228322680287074284418051729575021324312487366287582922628642814986167586480270438013516904202198983687140768715505060884729636010878795128408591493478335358276180246381480619272932348253501483966635713921427836485919245511071305249831154775208837806200199029051676801690482630029543927996416985106918404399893434205898814376620181568848922243214396791131388000142267344814175078118534513888826956686640915788606913830809320832944483254885613598013996155107657659696523323947247468527332001091391542297767389157799949908401433504809434342170617409690709991553308474775702131281927913892020584275180997050208962341391401343435698443832442342170743040290980319641433509095705786358478927787275620215735747068558419976313779573089200755977190033742235339977564849440952615308571907083005586268110972583504634975906163592331096619534671652620313744651987581692757031963669918501416662762361694220204659066305267318052437744186406913766735693515063663600228193539511861871771658588090586708975329906259976059864891723167839073195697718254049670867105563712381361849652625321139001681687233879541458351248021115685759765331240539658021216883321255379475738091720176808932942452640267715789710250200572415245092022141930172976376684382998305999211538960795229523137402303900228908018777270177869846985644569842783529156254396854704051392434663917365867698313317936322732096617774236891983245596354342362688608950950254921246708588860301643257258040726187072960703435311808558033729537899129264847495273886208604152597094810014085439350728650674101067398162955353711444246685319800113323405115163944635854648131606251130008749596069205635786278700643016435238244479128113765825803304462251614322237022913315220324401552437493146174378733283258909621765355272590208691424348733913437055124307348444106474212488119253522366086781528526286704739394263205469148134076990920592726324784063490322338196479514742153730967667979287078074201937481987127550866704884320200837002615104933412917324069719603455866435352329524832782680153856877405070622983440063378344988938350020460965627836229929016674186705173762089322810174918861217160078418013259749035486916661801099058523426789028659211589424714780908474703546492363511489024556797048002243449619938818382590959136782057178625784598592957838320148882225231626497689741740549617198096875775360634668237760725503620239792152607184910465168833825959768735195600012443578747146724908334247131260589855912077199823036659142665959416417674649630031672040511687679047245045939263356024683465120781976924206682059944723195242251601050262416907067703456129831036973310423637886702840501763239268449050510091243242584051778157762339415198497783087245460339065856425397117124546794883231898267996089952102848799936261328237545726659744810398165162799854140912505627172051204192878838489650083223100360870673326305151139540686056317234855512362554968318463422782855136699017994740716618490526262296766077724058633864575470664652985054042001789353875788258200395529272322962618851398052091920156634423805715679336144146746641055032727256968267736594740406057522808078382688363181935096438793180522508699771463485489193298646277409994991310549291945319828061286985562266114041005233686413129940529975274319093969759202927632523197580774849732348519542228616913388625273725401289679914023344236260539848862555511607254139072402003239468628079297672776103439116066124459966166483407330295044378209348636092383623296863250683763935057592035214279394547581961309136381467871549511205676260930817589968689739558916616094380921976178381343249737730564836440663572034442212340093288181474653216625650458486408696413817154638769709194401193972947609746648908723041485519189160773269124937690347818393911954801569164299261879201425930591626074226957092226625719055514473235130171185778907710276702800807290028766001864358376417510556458905982471830751346371672041521398153897621916614762961960073022509967461481117221091881953098051302797072960546038681522514953510367067552171577082416057585875171320486787173928882871754075584483988903475257604142378382943615274895493599840485981649125906694952273143409718425289188426624712392238771715874197191116682972717978855226750918042724028600141086367359508697394253438842321667711669669470377855875464260205813877416609073399160369999751012946716277857597536299848460508006224539810612834860911967562924372436877421771049636740253696275742911305760214539985812376260037854621176332154587804774966043715621503236181073391962271273497276775188095606134908729576739905693393117823800788746352450440329133459669177808848728416833526647051598506443661339332184670383727049381543217103533851756541258821390787604245387702838740271113912765574115354923723546915829505855093449544554884426978079325887198767465887387449367896049520688260779017635938736481062703842457544832860748933107017123815077750271476360063681222181950933227849043123517784972872385636142007210816310883057155894830677249284345925674849113575342937728509267658409648567161092814665626709801935635545099038114859498916867753228805661731127725191066866162378461609238955020834920832711285184281838887556565332745283727208664536310622935862231751339477633601347552435086420205703294072936745756119351769665936446061771108186699107270504967257747743763199698631944080559408665007338187424961602654826634689160054909136076541957463050994941786875536805956075319067882898394608848517950406579817731690784816123994558927091027112943922428503319560624862343794020205120192727547908632867599532328974554944007519644311439101354007320280501283015301952075705423666137966253300736348546654849121065138302778858519022006946284367780066618925739870366866936522861093448961569812364283565399063616038733108733450473923087857308213437433115183797060754988022086896592509127080773788228355440856141118294383643567728885918859842410801214796956611907317716939450206397026468305653459332928566548774646168733707010233619586592284560043133262534275889569850031513105724170183296234557883898274329455860162627752701155345242003396559910284038533973365818126169450030108295395898901687651462726324460800284101862666272876917137550751221124642576516447639577822948893650994051655234009385663694741243601467872877972260417810670824818009758665997871615399201236420385926958653129584048330704728528988795777007467997076042331900512173822987836038571637527466244674031702152962771199332445870251757181272255633281611247504362740915977781539060473467653298024600005491007278917959982891029412688100592807771076840464380445969775531530463113163953416914851567926709504015866379341071768935589234210870430133590276242403813783878108907536718577632298653553669314275935329815209353682116345388608929289359615477016650058721462933328605611909185715310764998527029249027859045559679209275117156732853670210191763328958031566424010548290290410403506824135005742371564680774996697839817570035148344180101981600770817661184054303957836409984016590066512000180776916376368761880377539633070797967426394972914147800800064839896210394683823047259611114422273639508995401629509124266115805775657656096512915523491608184180478457329603677167458465490241778598907618194857769592938719596430283789438806181411784048145305079892072245147199545479644300747342826621972027785654387958204669223658116270583667415730771848577377502589195302269392793066894225338394208468421900782386595219822019859849703980251658799442828104194571583850455081627448906467767941242338617705846083286736122964390925734610901013413162339306566669621536497327749566274033306170080464109075430977265459310215752766290034843338352663183340880102826576660039168067517261838207634002607833912452214488259222684095069346744568670253646276333049203701260040212251217606879931490231233083415951219747484801852685630933691254701820676245037090856339190987339350981844288288849343095778294248885700773000529279909471701671859107924222220054130963264719266253740241595837642237730043244742188147351847231084941620117757928053328585622935153409234379564248201417924444151008185815192666844967575413766933627921358779058886578619692396619170006552130320892675852469196800400186624390176261780271479028437987356700263651222591792237656760325742666522343708804543928637160930245539909458261781962458111656002062629424691055463789305736899940650000797178222037156879705119518714126612945823928082021395697095952147189457370812237522792016471554747846826479631075168195695481319371213085274295704070706100508439256893130967664507110929239513987453588538840144280964673216796728258549301114530801170890383182678931132254129309034552596240059124001282516184870092476285568969052322113222287202752453010577315384536723069643932999876653673320013169136015078240084252053016498478930620087276733324654320581613164076174017342446775909392852624672154969286564615231511942617658582031639464737993508899929043417542135774815215445933075507827869356183894835329978574508802028023618000173043601031175041451683334467029981467782188007334854013081432256094962423156587010246350254454583989038141297350508151825930205697349471288388672419000930554950142464696175193143882417172657667236767193460589595808845163906420504142450905625872808410814891236737592344500971129561769696015412226710381430447908893978924297028643102088523429473873400175618354139130432990379944919288997836771948197754606421857563439333481276117477943429127771028205964915374500093732829949111914247043873463328004462031087271941293755257106881369294269374321109760624925068302608372951903220433654274800497145255577667223825365102110409111309182027807897652419621130527647247618447877759605173993042240756245558059185835381079000680124367833007196113707958505466917891636735010049090740403592786107709584278157088339170951825266403751721743087451027512214304937396736502738324197307796293327801227432138499746633518118039459270164778761846107361527303781566889639575344746392424466869946404524514354609032517797611746209380088247020823932418155783311325467309749586364206022376934556561771628149682668511300298775090223595978120535665736864389472097748973937256464842745803380515398655035741429860657235018449935137259058856343335970238631983248234053002166270213818064353993694764554320893985921280675526183402571205129379419431373446415720576002780344428855713826950027591106612560063797589925789860530544960045119280758384043750181689190930861075300930253816770324208329495642730330170449373832867638545784546778262376508541044961703675514729186423824878458085923087697953264554478160499643352892340412234496223878749223419645197425598187962316342068059914315901662685354833831782076686695444016373995027792077542178654529711271455950910180765764714989927087012058858656483453791509651559390577481424305357841321895054016190894842136562606271701925840479119907319147465683952773406654390438849552599885839207982083056582275111019540162045854230920937373603198265120329545674368661520702467255065728399937533225198157334156089795585291602061878979493583675713808750667808281329607136319269488916619573019656195261917770979205510208179768115666703538276714719014303633860864171791852613535386122795188317452400529554433645152993272349244805030827090594382218513079277916663932081652631067033780786814102790288754038138162832189104806231600882952828959647674900908354060443352355095592610605884910175951505627786858608157553186018203521046826211413789753476674571514551754770249460867447315959290754228125739788192780234099683102244735106778064015244671293708403899736449531803937888312879047996948284152153327180897798307907832271094317142257683389181801924078272974728628297932258564709764517565907642642315097009973943584423163250436936509899154052412090031244746109266423179834682070102007468255379600094552974253068958615059037877069986670176761546095307110167013039742322367283027714275962020380370998970512478867457301999190311897116655176038153843717772645297630566870149468036954928286685747890132512081591951890735177610558391067970812690561477727496704051854164126126152753424096280197971910126760114251430934482043411526664031397576018029168282020101250620256908589039643172118621737642360432863599039938329708021793570153258250582173136171615675770848504756291170145505506299043239281911319768587056242138441349456198400116355074724414124257207917625067792514444440261079243186804185078313084719036240909322014212078623337087612060278640978804857099756662060313592339971037720501835195147114249399608366565618529711026413215603890112429497012472193655493113240899413621414081514228454122032577741372577241009498642216053186885138408584945281488022491809736642234388833269978699239758233409942520297308260473252865868697903370535927374363721488897449836597210863011942041513033002309918976039519320587600600740631112642363490645153541469457122337773527277387504102861018081481776204747292278096222891187636283850231431969331106820795259464713252767153139013721058042255267024666045219421804408714140547425756911771946643457670696483240147848655136513396238357490835882308205708923579893780740598864098869858134128634955778569171818958318366432225278185081595130398746623007795342798175835695804081742308901929082430333365737524071725616782148976964872757322241828045772575446119439873601679819015546678617407075885051294756250054877331590426166039578367963771202062539128093554202146967352024027304165318003258536276036989004638309305276735973095972937109596248175917720766155071864092730568822391336253836094167635535598200003453306867577334665559096393553928575670289638912955161569481471154121581603644617788252597358357719862056347659058051228913579343360752069395645351298709032596024051037830126221410902041449204472439030819609052401837717843618286777162990366086226159587073311315371723944672660725577006647396354127939448738372707324451638615567127259267235403900593417779178892285102597892453463733493023190399581887340887054881329070413759287928948501435450955873645674767213865894446198159154738877662738959503869714147161045862838137330213479953216969573565589229336422118347251325410271171411643422479225653048655812010715779490985431011373755512372805535556680445925220127042996388965707994092924013564205024426422180066583657741425941585802138040332154287341158072342834525929060909777484780337532189606723644613897608483428028341703744672628868858982011240500761910785462293590863013606906377090559488797576197222199201345749213846580316089198672700990036931947770923134441340819137243371404185875588711411452426490503311081906590902528304562489524634361561885645080295274355117142030080580160358045782902371399590284921055709719057905262627592082628062861432723081575079561061147581109105506245224562495931608257712926933761334588572775119114493736071432481318064330082802304869185773775279511021790887639477078472473462540448904523089338480235422223170653753854284863277964850994779164298118964670444251917688485876158520624341325189090274629953975794614448444310698635705299703956023397992690423111537811067118832898407969485010224402860374952185931722529377562948751542759470629317686995500603924551113252077192545344422142976336404890008426174718100219205745894114056548053377427109502780399931024977868642694773089139667741099115176684251360347566802367120742843225681875806710867032332091688951056869294319579909255444552474542713331764182990919026822195391798163371092435030958556773356349989975267236126049577306733074855098534337545197687268320956714210388094408681105804846294771677898157350319908995680950507401096624107441719524154078134896377537887360778347815618162615399883334091347497933962033320093478915277269118844531120330686014766321239206411460036094593764890433327531631618836369365344271032076476280111927019029631710829551350288883583206232212485897370188313581159636558207349126725386426600689472316323390205286208349825651148421388819831184347233198574302924684966894177739329314703738726632275457917090812656281841964174597800518495689043827023928736840683096189831978875078771118815744612966809269981975369759839538034388226322230186599866250050258253469758328243436648174466550095383681002835082929899029130573409910610733623251204243129954722173429288925624122340850455603880046744108603140577964153207437030845841971759682371216633195789369849754518473197369296782185557579182754418509555581581474360462194085036091475353228815951753366027255074714811152281520067586761802125142368560823160612698434876425307311837340064634946130376060291751476346434906859145402256380546781355538407807366796565558507943586019944203860752088411088571664414104908868905774253271186435118152281005952082140025956388437304443947309965294425339087658878052868239760235993859786949518500011774298490341530473847816105973306583355626271980960195107706596410210846370808695378247483092145627367952635095030396761293515028034401702027030741788140442680707345666140481139543733907302446386913451670295667751459374219715404974082517123570219833725225911522131178894522612707785295616164442143261072865674862640290067981716236290543476176619176396610228797542178381936612538877150557726268068713505313747985600153010128297866261171019110765893223203399505080941881085169830405823721037311938115587766879849922836367796213696390285675612982702649934962680124348812965343224292315750526783196159889777118193610965814303685311068320021579447783689343646926888981181152501062748854960482737238336970630535786538254223561897510585882411144518659964135608473674262480741601172447571700346616662463629027698678367655808051165554531384415030108738925261657158548052152121000081112373476263461106933195805512185534884384811575440367245851804475066940502605666980123934151512455459244322238723348110509126098623413112310580436339532486131247559240173154007237172372829598662834222722588305750464155209599174076923070163371910790919244161132688358753375914800805381533089247254236673302164787848782144022068209679357719738891314306314266418080984902531205177115671792957728716033759560207491666981138625160888772047315692212749427522649427019639677970997690062221573857796924429944919910301543681671813094410642970455339950333171372785610403917623585377359117865185626639855512867838788400236586266429677034562492977972079888472987994902545048976900122316697694411340935287834597231132958574016987555734460732873220672619019029715668821118414801142402469447542388474510250754532471238309429869855201963204160925660769103969002549238613898763835046623427861139003793149095207138922644385489804177080694729720459098575929036760946904467485884551002319195051180848908776316865944174652089362760615480623903900049699406295811079315852815683813873592134566204522720592897118224171071250335575176316214689981488713564829052083462874722736510626737853383954051509721513629165738138456515854769381077384276517567603818510000341530768814942425006070594059828910644935657753338837629414854895550612042643926024224110626564207663956652874404107843116660763563619984952130024392142515947727732472356606437573826900923985990541723282526697466544317454808705689792841284122699105206033771075746345169946250963122822447495909721702649321891502836297725118451546251271580107956627433095362347410897896658809993400057160680376444674790124592152631894807377753749607993584903286040471692706454003192016020384976041073714313645920031329659318795834260759555056121673595434251536239176405046034292971830143547165237972738543785514306291015693110334713490967514354065412602598800315208923061542314193838162022421837465564320218052613288090947595487279205535244324465405276634424547592544222081973598347218798563987890028216070180172568170270746078661204658526226159454118814657288355659027929455770907954792505560663695395922072366145031275772720157472595298493859278593161390470698816826492251672753732635016803431459405115774361173078843572095434894140873723479991836428556192163394597482653845922720090060364316120360016921475468433218719206909319130794347971177693626264353199805735827920867547975579387711944765093054142303676255005976510963102846271971342146554830522652316137571886189385499894068545141245811752091141206888977203562843990854085012350557313142710193952701779815411201651736907542051289163375001896404449542636914307036011987852703155010280993848712608948781083815392236337014009778419168042389635087935119769382818570840198099519360761554542277157947401843920638050327955734545692261870092124939104051197790254652209465962083563833537605306137492828623774759294290125124641916656883064038139426353078126436620340692917528189811778539141670348431091573125372861329770477758274647899904487547149607512484146488934123385006895258888357145702880902793049411570903431760821741879485925163358788331834937147282686710113311364551754287303190511832478703252843328816698751843873868299128584533974056856341233075155336268900114814378040541610623013172731775334326404626076736335225555831020572060391187257799530072013318141679150939871159232235319209030306671372222081877581419367716891925060178598202458219495252189543199402306433674442142349423359228750095016195182532707256661366589495254685726682422116164975159631662717609258638931686245304168307027364205148110701762260568264236500059461181570370071176487315072928760134644162752198642192642713334178244426439724435770146076264915153688484852720984323955458962121773170732139908804774688428137768654684347227239595288532001864527766712493305878732128436765768139485889764396340130428786105675789152227210468287740367293141901264975530550141085722629742613820750636343538968780489579517039501095715442204452887127315696672826295817445513390256269612540511675806117709929015708289632162755305961286696424755569471685616102148215242015809201728587000445900042863511396669590173167493479888780773950815900121107048745063462547055875296373718104318136124705350848224891590425519155254114714289535190914827508520348246408505054082779818583110504447869170588337392295962195550074132788562919573747426038242436060245559913723341416385612012389208316129152686125429721360376620746381090937287262855085676113304020075009830369974202553809994147914499826556190997805967650437523113560968280616642663848844528135287444025361326820420058291963646323562720519894877171582977724742834232507980822906849606364472687579233414404277461365386837139507025896233135087530180873130630543045367383368830567351650234331793919283594362694810234952807743319810846433884962156074312565758333533875847089462451667991076628875937363150176230678205473878747448678539561322962293218593715962544495601327310551569767162331229326557389594109123020357240632412159371674581355103245561656068158426801241456799142001592092774710171974177920210677813948793570478579534221728148755179530346156750897222985644354702065288927135997122395135309466866194347296069229617453915456485768011691103970983588584490537299747237197727426361945730283345270921781794134868415329129648062326899819622573123753254341251926302174823557507464432838755108138832498282772511739053999190611578611628911920564011865017660177830450520344704242221571187069973818260434457328721343673247681301597090467768067671798824080453597485130854332164178419066539301647633243312385646549970134862037181222800334292994541810292173253203325627588845358270761157623346257999285789063589332416852441916572555899176057447023037673746383112478014529912034414194319195662007251290567026478433912864767404924926028066054238264733311564249319869337005449780959169153585235197452912858547759296527543792232432604706670916775702591376019267556478404070429184353089993928843812111048161924076465036628007978202491443638310707134420318067932062360210874842073345433734447056609686926650675730847382934580165983947100286832309912499408565561050967128092202688020019494185524301600480618930615430455220986126986069225210657613180517757523969611545016995530167630120918822652319080676512797696581047697067338198164734470312198245686023240780722788138011326437693596532828227201321180417269216251468347433738454338775674013250170960050448217862595456879115940749706020339139135176797458755236748427280521710040034396204796079020359344758217888300546699408370399165266981267741263929742538398032953235440856823358476256855722393539133030448445483100871217772037872868415165201748037330288037708143329931285566542100657857654588465898290424409092501437243034338416363630309871819949738489624956795195553395911930714205824259819104579303008530199775109284940106134083784106122434137545845602366217697637212128524999150022360103456237137822217750774523481275725822046352754783160569280503011008025286281109935298228293722770144239448494830758239129540706609706896937261181022652299818479797633709066303757579439168962398762952299177826980466737655668646110421416643407579335961775468436001746177333649163170873972399967430846302775175142960852086357641092121155965823037271525582194065604985479941088207314138971453280159115631835732564594711240094817352183897980635081946877728411166187676840303761932381992360732896273347504280343371873683400182621293442210115109620249637949361496022910708993942339873251075603792382768626646922005868449656111625793930997415499681799419608727468896842558374660526645803637240504000272806844905271373809563807418488417464215257194362208893061369965700036075459527088210120662139823851882142609829383017207895439792693120323736217751428998884278817022702973943773056776741761068358907155619347804550453441492266367845048705772548766950937242925321421031851212422334648796555514523779169847242634290392667878230378477478983032021726414402806000332854177981824500444591842905205512683774540141675160082436078327573224119250430389204059536060369719769780576095963340369138019533496584115212806957541013813487571696023324870678977356363399473186470240087682033141935234241915998182994664638473604078301306077089002845957290811563010617530345489721824239090879440006334854822967139406243252064323316835587075116364237065670388859365026853996900055427674274654254209658921261144621772017951489132872544018981720183427802387446577639877762022925329740512925855804143876727182794980389649360087818182333338454714587163362022987640559306050812567526473668502544434775738692436983321035718008014139854756486697121811731154226749057305928430675615119752686431169179462947615779063054941224344051558053240415034461058389972541562908362032063242500119932345653692142089296668294161931778826455135144003068639258627192341597499392658326221076373820349460538670499827897940206638765369917177224638956812646350681189780784675444553870530572182409239940113901377125925247619355952032073911003621712707183605900074746066849438904855229413682022210927747120072832167489448230592449071344600597534372691115098813924299534784124866682427825697611152168756501521449083396428826013003230239717602679473604489023431195949123703418594886056791306307208127721103328104263395539491961023693356467765221510211947337163175376946241198092208476198817501947263648778346172064315547837355156902371494263924475586592460799480621207834760106524489274399678649146507725604612559679092092528067825051574127754766762148240012131945656599535162314519160550491571094366865866919370598774565472903224605019109514866759702538053878278691653096398391851207571914335239719383359962228861637148895234553363905905069818736033495920795857039135441512413982412986475624258505178768241605395829908540376131793823379438684618592183191125727017349196793606993683871740149440532460321836982590113160890980745642481343694145641700761802452045468504284529455167870311249636706637126900165920796065772531126989714037141603627298134311456967414447914379189646126480897066949007159950425615156102915437777987097284811491118378441647098943996485881152495783017521636478366807986368562328485166108656156363821512984019002800291247352404068012746786609531024291163778338821468446800707324034734034405815302860865485907810551014152221318094640199891350652217076820286397413769148754929979459295477293539770066654343728439538406281751456861195466464703460892072167344374996128552326767721324413670027162232574949655021021294359811689721446515296890660020357494378107594313264733120496503836965382988176218566891829279868036631823931095556544927297055087086110519469897076012322472733036953875346150503478089810023859170104387813825885036947550636878622608072018835550110402430723695780827238820215849791890299421057591175530850733431892831461834236444030740285455751002232417801888957549265115335777171629546197029095669915950908197322872848098067628882691758128007883755935649180628711058454279535219132373432280585233853861788731176038087227693448129451647586436863988731345417737094473761517766499144526968195065989758755764515202444161846090156073489431081745383356629772235838111351108658473675752611965893733233009904506928387578802484185809885055466977234230797676601585774360473351704205273670392725398966292909253411540909450061146620637372368761931598602307718263185510482704820038534587075968210661591558751814481064173094814852328806779618624244126426148724759063461345916671814607970351265373683168406342432588319297231132495838776767715711142753804567087275449977558717094417478309700631207129077364579747855300984482360110912477191910866882225522183377676165394938365894343626511465930311715764807001242448757371096244902862422202321022640481108696838453671473266034536231601594054848414299540129334821236276219112764653143250675694467581904626112258604848514898051803657783741277601537037411545539963415009386137627147867764665204790831011288893031288448892966865508255882002859848924227306900566882880786776123606980325256310286755670338346759090449538014388222268904517869036196789858081259259051494516767991014116745130853716970575977887712193324375300795139869998879566613703421085592954368773616496495145685352221449496395155840021483345657195510667658324180266910976684863242733578911094781136749414101039178225787277692869251025994356602269193120764025743042197487636030652415385854520809308578479757924286736291961354599271831978744365226158638446525678887829606105665526160149253279526362097746005459921302576246841450140511140352053494817280566359834149996898544260354510770962570225828757189252700619045880823333828447644778384800027804931989351482337156100456272896169851762581903046017642166812927764778920238033089519412249335752568214331307247344345124670479295994061615309149730761613495689690011897835288863634253990063242231503683888679195929557718968793485763527035538250675097531461244676683681724766226724693105778366781427309094669185229377011728614687138056127620291584018640530424398104104899603848936497082249591345766457814916903868559004944623024601151448418097631056889427843320488012671662123448183234802878813474937859506913887435605300352766369343231322573569894592114958440773234425398166439399745931789742725992850753230138148071923132527554033013824284372921477627476830982786316305384665006641071261019564358487252072798190818642875791733092250493749941112309895011076741065163835564525496212428520389514709056298247504148143413154948378783319070436952355783396237556191808160785373169764250482767225055274840229583522523429337725185204844329011259367468790031001686622254444574296505670695322505092316288154920365378126211367783048213043838212981650521566667343266161011183792234525685027012796770497799603864120461922248849750009116716112293196913473786742920394877454648583331592941324363539538459626093693496984138208631956224970702313004739148004545172048776265133557329815287052494568370751264801537076178007210800014064176802538002991530413850253680856008587012459020725412860250368822405126298838454075200002024242278237741258721433505605362281107174924824446709527243269423577608355135224051020141922768133573901668260371793723210301604386409065287693939686023402962329150119779789040838573953873459413158365237597430672552612075839546784486640391789851448322940888470361275657110753539419928446225354922193638845105938377228217390546933428901687241015604188482600259327533178029731358047270192556228004783595563965956702555366335291030823351676282412640942884386885314762507872969403296173925147463420586707741472770385700460552128973271569260413051657471060798407530747986052462342183856640690980290948750805758660638700236260774187932223865133159031545194842863056355303067224867279151611275995469700830906064664860577123970361016100931742544515610520677629941815401656811310100130547622474345745170402641186318953808058152057017402462564062943395137498726914009592585685237730240191234325023114433719111661542972173987441136509871954852917563340991425265665520401837640199928910397921267744086586017733888583000727014335532766222588331442205557563698085689367308875902683141271505175072245203567899478721738978179495986627669265641721573452095614739229547516129627638374523963938057665319988235778711538325194020982581147921079449414288837419577639796488470256687043534000334304245733104976720004433778258783432028243203851736262032166015390610588653467573123967199170773173062972043458407160124922798583678319439831005662250676486460285940390073458506347344857833662602961080824535377781852109653990945345697091245591438779892702282579175330645425961638206719343479006234162959197624689358466408090224400042992079703066569286969068565242104693516901199747997309542748414889836122404034372486839744500338495138920158623132524342769848041592909071148560492472869454200619231845876941359358820033583479599355496723805925987280262370588665487236598737164711916692827481170678516636833941395093920232262151394235938521799746052014124566857483640528053629369091423436747031920993215731803346434612143587214348733408405301074639632307021270213720465473618513612448430755722510601086721605842443905663783464979927230360292878673001262332235747602110019145337377950810593778903220035027315961771365080015022311740637832534118129263153928757578526877075111667456829314926132082760522069032454866984300136817277901268020364825444224482802635147613182161434548444046082797028608096368585223765082434702141630357009473957346571956533753724263668584908804564323556180291019650435289230725278851004578651929804142929904158430518441673568355761150222605282193631926797808964341139636941760377883071599013673989449031778614745844254336132911385158049576368695072823882590673070168436173783988687517651917763162135773083665561308904921482767875126421709056691461906021461034264184495030498913906689459444387640231112075735898180161302989518051819376338525931564411588903369258976374970485790827611498660916828859823300056228884011086652404073046490312028845219557389828367589483041778854819632097694729629998155753134670687106091245927182316100126835582299997937171613830916838556460626653891181006193812315837304772509272735083561130559813354069086575615944094159419322058438186674373373158809171874206036670315116791041767981165567947198599402412398815684912388182921339241843047645813204761660499773165460929117929630785773330418934963928294636432693782382160653280065564944562216254256304232502080802276436098402318382263539816968466935966807274199782796340077198864092926811220434757056446451291794764126089763141503771108263249964184103449590635479194582879447897794408564618680125847091933927095174440587259321682091928821655292397717414575797965190599883086753642911287632489041385814548943296433440487723383950998675596416576574414478629721126589309339280779483787715863287832068483879313725065344187190327389402112724888026254586329811354274270717093005155031961643118944749397335365571809101449964165063881328405001053159572969763012406947530712367314460674601430036330320346317852372032807253470613527896207214448721400067283355500246719425855976286774694205232486892953884628828397828480989707620088486504248056870254736381945553446174248449057414623475010290285942565413488572274285804970435614701921933966680188055103549620102650158545642299421345239677458499906049696319491890184967474368577675096659972145220523657850531931051840153289955254007213027349127692415899307562083351952474371028927914555186402827708702400624549971981198355998199734291050036979163812452110656463216064428221078470944605735497288335815067738925080847935314156857502308657018964051306530355032452363670446016189232241987360504166903222740812524484697824497836129201097581287173166829485181084113336966382888859970931002863121263176097295952008597511447603803662945814800567277638923849223844071990210396034035850630022935111734433209172043422029498465583077388503087760581315974793325454018487096705151913665999069524476031848951170129964944668688212989792623091377992771373377174353298423584130377187118268801938153011323735604933192517674695367848187787244565087107279893739627353001631950634499662178225104570031998018026146031723179997321931577625181863098591867919880474634979037163245742433615804318393764993848259821355764134932363295745485167789409829674534223968538978562951672183711109041832421975672742682388318772167111504056307375616944561579696945627772777568787164129635772433545355115115937814108035869513467323991770127890876808351751934533748970556111439695156919510200051643926211297951918331726251716620441414929145753659338118462169251216036436019657485841834723029967682989478860152165298447668828884827719904785624555345618942562272758415884562412093719901083795278608754137878499118610915530610349765897191203243538907925406872154919956334462892643838669336778834969674180665383317978307317819527275320607714614084046774801952598719567729507330727478230074683642904438368096155675602762189264154011463028097113702434580559496449729367641007784826034748801516023690020466487564448036946151290105237905047446072747223612753178877682935317246064975008328731773668620697303646361387793585386983715095857777068020319718490080047868082663666001194727365770586069124379527935731580349912496920498627414840121222313927349912494815083308211107363455396143991648097501548864084432744654981407551495086666755258062514166241684115282973065809673552738977161598986472118111006373833074760913647033423984478138920888604474041580329284086178344918166299741895222585689943414265036245311825807436509164571220685139957339048611222795580030196424522372536156091410570496440984580244899372718112394153713143003480287820551175052772306537905966795959706580224424880440872520044888706016123138073211694250385496434186194103806017028742437755293632218474025834019505688470212915195114170999349381715270714130785628077216045698968090183432277029403549687786830344001323069889413886050787639923161698356217428362960256639366530552533629560028324710925419872912078294420676965266606177128822833196634746111874930731529484031440480714516581289607787448910200341672386442629466808859447133962634329965947920780562833126142244405734271833658727416620612561595268999760368401867979433625158328539329455733517766898976837131691082785502073950288380361560017102571514843463617642019030842051876868358305420018372055064438518265453273345654739108678062499027254872445329305330800549094215977934992800064614086401817638688081078838614443221709405192074998865948084845049826892451411721641452983712470695880555502405784219295464385618925507207050060437140982091815474811694672596497253749087423619250327421127323048858264504628032410619851655446189619867653852887259683264974903868463309921301543941259445116134733648919953300766254136320585772418904928711598754612116448369087710061308312916137340533766087004954260639640818128227443140676921220945369988030953010622415657640981224754218049714665377908766851554252690873123997047077322403063652907328294802117994029157636853375710941897765532712956365791036879918176899650274108465539096110008604287575783291607137860452314273447540023302761846022179858357113810680954734565164242030184532041439829333598117413201567567882473435111944820243400593342776604276135751007289722008251286957107329885049741149120777247622390299719780661935424554086547237212161409485970063981058271283782550969951465000060686531065570267510284404525875816756434242169086539634478485606731511488112563430175074734676116460123073536903880314103546418072187276893381933569376132704938371448773801581970178938578868878161589388169499715541998572306124940818454161374359422040715389704695825189997435147218760860366650532127248141707676109891087250691075582622925231445626421919112891796328511288450964699325664689000442584741692793633467079662088259553613045941473353351801526032546614387630168889466743298758056993738519485375462003100135384037915393374514919913794942800685439402698181734100468965677385417190878649331265608092775854440218711918952053208804380303669336086197014509355012717181101264135106537887052168350717708081109416490539845574544757194652990294377371403294683459647365575614192733554593587168034268859053838383930514980449480093911699873284980066985186530770484988044514431867940974295331700889617518077196741660042493350281208326943834257600682546635654549537770450388017271932797267935133488986848789510206290153700502298299716957045998174500356553756331902288611194474960139640874728494739116217375011790894732581494951357243800582484707643127439471232588345777619643584499740006255418856544599168107803032876646340166188058201349353354888330232723610459210398742717506190833984849101301086841581315545729677816345635083223810944836421394292265581438238188473613982196175200862716909259316570782733821413758474170007001713660557568132242010052721963242026731114159140610763500183003701662972477302684676823305879603510941682282003667984159156186452338594560228043590167044868538582833691153433428599563930831979043241725033733213186249382705346443383467227134292722458701037154233860354481766114454464114549863710025467533485002962081128983080469239973989884588465584025955798342059827895312434210319311074990924775432996540276590104424123331554837812546155657858837648825606830764399025325340015974363341768708263193162343538320447640358454152541734250712017742796199120391019995963460841395683936962566045701193525076029085957343384524811112123850239487548586238065819108964442569189310452661307126414425139595523488514729701954757173106384225299716378626277677623889494581021272791273376044161663346075083842258806691944515717950527972089413610999411571986090948746691138160873476128617794855095686454876231167509120542153612802989846757460775155904372829487280420190453338019237941298775345972872199848571175268818814503133757447861604605616933012888653567656060509994967864298937060131597548484016427005339785125598444931132432349260788608887432957010176346778420172619868400496389708114846329824277481992984523818944065788178281914534662485393846496895349607643076501278004617026459253995399645645432598385402016022163796128534558758233488698324193845749404899842426676165679672075584439381570849835490744793606384784518326922694686235030530246132003121031265464707663402231718651559453057948824551004008384294322225820349482667085003175280255770182065958477896167899575946635194522013806034279298343788599564287967231085247388110856507216411466371258395859604739676045687273031198241050396889197105875255721012796653361100664188322893595840546200287815003221157477332693117631083001891240993406854638854944444304517242177085593246175184835188936484568318943092803415147246098005706828309951000189584018636902370777744049427252605463075609607049609283507025318497875170832153069585555127852920512963657336294819781256274867991271790294195675008196162072880844956978640192064237216275250224659487355150749297552825406756486663619728321522704596213897705960921916664883685660177705460364915743222713349540356429728260256420959286538649217388702181611640557926849461667707440627418715166114939658231910836644001396827738515806294851910188168571658518672177149632587685283671758831269655618692477317673481181002423919532342861492453981347229364670145547794219109919206089175059516889760561079313396201818959085462990106202842736508855728355830085713260236662717396648168068139256340856481711117538465417494568831466889436301273385073359344514036519186810608399658163446672184729582999440439226709333484700817283407150530329661581220010634912979423561063493478733585087953831916035874762209622026913878423337366961127313815607550629911047172090898785026068545271198437737795634273086274253576021305936327802355881135446175675205831917379401768534954756982025455908702309216698884134660835681905385819268975951003731809446232945356695131222798454432198955687219770262527058658334633937032074999231833031841552099615612121386418799618491925308805168379184001182529372989072670207937341516751179403350439832803418000728905094393734487691203871673945960114478655346191046454997509134316544927884480478935958545234547436992760600110090138059299407492444448695041063569399544559918988888287006504372466273538760877055013149772441044370739158751937707667683725643380925378283322897765639633335945910844692833554911755249457307202783615796597956200787761712079076265092069648578263311566437801624018298593747684612760822264711567285238180177281881775196039137202129369277753109545306114492832248628624519653214903451844231361272367412511250762030632538671040224438730393401852465386468980699138696902027163555240158482545435675929987851699389493728389665097161504199661722196081156235456025514187376994977883065492978336274310492433150524181662422904929296527146891727071585640071849368573185286402615851550280230999209947411856813142767771708174640485826599461712439187381916845680094189647777428553081807822377059575354164278833482801675632349762450859228396586644955023970322698787971350685105594589841126201375342692493039052561431885723169732540563382972208702898726945574169151136209002599049904446280616441618633913869565283519380550391692995684162706227920415587054882961073344656684784547520783682636372511186174668034627471104564565686793995476173335062660314073970521007364384143156524151005713363950274329884013178174369519218362675941439315934179077899860871366019913414853543647332113376224218911716524005547579898792834956370267771657777418726174178273554464357653311528733828611207392886636678539993872136332606804062962052071414518463174494446722634399179061503262858554172489691650747068064865057096244590093209245199337571582549059339632764762970173115001393454548633403043031556021860170445925579283479399873311810500195825265749005598051049644350741440357901844934721254589378428642199416284751839815119576334318998293327786044121483353330263085386979461725572628386283955040443655207652210685009499602891766269294050479660035912968489647849116131392945130243163144609538797807132347881756785848011231807791878579776932504296269818344768895583322214982101715379887444906724158804204580756881288774051220205810936215027290778026013758219684180632315873703317833188519922878687409252762458018358093079517625619983738331197586555411162620849960418254389350717095049957062483418261158207124616527781349548811097477920955171468120554913647249162741610928477920839885549113005395257267501986368411459146169439716029397273800811732307985633838242059985935032543261658305063219258115400876771965789653716945139791996986353769502918157280971526129505074649546243154263653436813759197232027574325660462014623180751685516990661167863244497780978695626206150921027785839897764014257543223711812318360673369938410625780299643106589610278565951194614995883588268689486224285281443571778822090153181186744662787332882967322091943488911463019856116251992879074439136233997922364305162499181651050544063210696269417695960056108266962795987757673264272778044092907798302912264230540459861179075492967073095388559379384399979186926214854197014367256504532507465298761578956722374918480110630508180132785891107501517876571628787554455728486963500060306228015456497419497413187656238558993501431001985933765059550927115361167295022256773311199888994563988527219421902055199875380756835658619039795075392366972621879374288426077957377584535113267174761260325059121756211696441212145133335085840528942169912786668190569575858039829688561022874262279759265279380603426552756966119794235451743975746571094082258084442941292466490967882797318339455955684645037201727997819451582795665027499220141331261927827459570987468856855816656052948078422117677086440951518545962571963355220213249163255224475201204466914082986966714619278557410915479698843636919802885817504816466382169171910297653762094112571917059284191806189757428757683615723110379455227893592716689968265026044697759015457979344891078573158310769178555060130404076553131227804958994718716983156884532949103198595682681632631008657795305203682949802704273461026293498586930998771128492015098446890203316059045222420347310715959430098685977530801365313483888715456941700718949221602069444594324394138892453533361384372752329525196474908839001422188190688867818430193208300198905297341833751712871117948659051925475470814633668278248103511447290960536858337376355212793130953706591698961511249308467929989478299060455458130023556239969355323557399828559562835504122056046754068554200069237144658026808118180071438491549358012225333363080072373882247000786535016519926354925099336146652967230798037744520352680277424781471219212787348875218693028376656230796989311626972074439009291320905201187768111678122526613442120962921307432010580797492635595412089811853646718949727336184626643869914154875742278806361353316124308367072256207734107360355554663784607286291801323113401000340240906111391367514991165969661523388605645914495421584724275733190948771297912043009390203083701799468399239305174468184626111556143860861826543383744176207153406759401690707616277399193342042239207513331396064272686112879039212957866671535209818562203297170341261431169997083348695841425640535144650301112959846837807586293774704613903506516600229567576295927594386385648598630852048999095259734135709773354329333823065501512014124191018046231317480293101156872415373750885669524726641518933250207268797766022965668211455271504184945970638505543693373875866943538390322600669525054069334496055815561324683433387914514978324056227292749089666985737490442966541198675979901128798818450788891708966367727799345974322195870315072664216999829936026285675215328222568465430512911322575420868972273282922941015392627564457028367920748218054011301712387732004640508988687984011114981377543655218818717697542300311203873798655856339443468232685769342872074544468676414764208519329966169116136986809569122920142172120098896250241054816758013183042374265804881601288467628119667022286399411184504525750644691268185781853632169076330542139107578806874166249224817863652363382530133599367595054666025065767745775204679346198691763258211898756681775511296102459914953225411274884999760617978404605074971897744794902395309461302301168461405757403819712779812693776286606560433300341662168969032918959381629576688911825496842215423631028666180101986848262963181216242992942936543073839393687931180547944541798035636436438698965299701827036827624137740813134163587178718156890588274734251114772899862024390128970179095994792290777610062215871341680007523013293042286046928127606414909689378271599397821844236484105175490021533454081160285583464033325700713095143447112008639380573267751998732346685379226589626659121398148565808102843764791931853906576060090374332357226557817620267802597086346649415168787785648653678354914524446743373643152731552760208588783157831487694648430619175312277777552341931739715790103211232048090203783497195188870711637664037930199603146609837791477804534170154883929580534357487194824081515110409188304806817731397240021574958674055376350101075924666463334657556211975667718909320315558186906918529261040551566404209756261471370370410067920160970174599827950248913149314616418532729021561613348670306461510784576677144279609705137562086439512834387568358321111250777621413751686904671277456433362268759611594021283917425106391525485328620524938719173511968899807728231124754225190912742870272441012780229778928648813358778521001220897317079435640920731724662240627003159703755508801288781873506654357649278719852366522703210354435106653725533468108741048770317290839102997602950899863931060450109225545959728869249577353615944172069253276360943787999769046165156871639009406875358762925348640859160430242238382777041000782493287315953821874375051702819898811604338550990745146561149891715958429907201313383367498090346039963797140165001164483434066819940085622405772844540714459460733160724660138988947472711998273941867921039295724901886846891504074659443049194820095673577609656521723206319314894756234293666562257159136840444352661710887073214504640662241819624257961662956132937822614535611039781424942617174488745780847072686930656380721222709141868911457767614108136696291629921244487656240411872805744111306224247217782299910751473912699737039675608344068747154204932743160823380565748609726632467988285519369314761402658706831558642786317261697365891118649024081743414578082111500680561039484259518142344044612705132531257904115925939541356588587473072129304750538396625420994104610022263231418789775149873541539352958837065447965337569320708053009080351258204302207481197006034212579870735092142340332644637131929780440575832369129492841814715548225804003055691483625369615316095626823180336992864491970572152785915194675820889002368079542305588260418872805139715252690396159447270938716075244789925171075137451009791705216912247076131471089718145252229081278928801175792131364427240680837263459825420693518418714491146088889185077785853148693953153938831891823255999924520901667953869453379999974675350126877553301841059797998992496298873874263620601435484855108931051511317210363553704341810439745879842422181932001263792333206508062579951533121446678625044389058601047341672818915344203665262116363127138849641809583070035700904623657179283134120970218601443845370005511240370785703681946230770036682485367204118799289100012499604822089519939560796464064854472931402325263321559243709028873094685673510194582925860595203539566452855894293003827749699634525233594934317065305165430634501874685983188184678771432785002992045375078543438865586955026648883801007879080743243706217730922724706143750054811226505276629088965955287316486044827548257576566653815209284111387791973488808538502594885592408038355521853500607741472938990692469407072101423015493169844509976936239906932271810988647068947604753922067530230966070185769083050393492481950490021814344238304079792330026512501939564863512683250551763752554902603107547952137783068522117475890192051612497212733718710099729362301361962250614095483192469141687644328203644092722225254874901905903538015481029735436808961763927635577673469276368362299619753879395348142938630893334330126757739056863964969826760622891009220092304029784672254916353453524305299754678421553552110797561785883336294826759540485432519206317884625679655891404534562551172409227543349185446048494111704305597000572967503075180419498450055207418647428756781854901884756417200516006750978172023671490005190419922972242404860443754219287424941277111073090586736777464403678200632041201086319171670795325202951685989085845206902303821381078581275219921373045941385607564198709688845052592303664847297489322198888538886832099107280771215275364535859373677094105958743767046982073409994819154750635293919233185219994583060153485072135571030217326006360805791317675081950561260556403155724344155370989370994316188701466800982170664109830225397169744605973383592216845341416140434119225505022394990451974132670883148314277184167232483732860806409211589640393157477667591105470014233302837327070592815396716122145920515173001048303723331784038960675243064812643115526260269922801269291585024272453899275666378630066298228208050352703970007010396314606884817583343420187860727836880758354942337072193678412867456436769432422109307935580698568765343056198621292620312914142781590407553765896488976584488237379900006722699847512488564405484843522397403102730453213857483442372663189986239628754908442626951045609213295769142864848000461733619144094487564935315095270716352530622918226745019181186321537394626565521944181166566176072354867897544588424636907064488977966070713468833056357978979941030744745547689331226915324415677607726114914207165673907614896571742551978038059390564277307674663501213931543642296315342365629940169291847364393907422293601342574575979100741391660640870402957222003533224736831436584413245877198215382648113023952626014432288151984309890816797269390995806237141392746083423772675870229921378220334892585373161088146007231594559000334563090022804833034607351137137612422040577197932210449974163438338454694344349358214724679993981528038281935145602261836272272971474761509958897348080990070082619083304253234411078790389765283299383586582301903785876366932128180110309117558903244809059835377998115354010697945583452406477890330944353235669915122403447492439481763305346469363778439269503739908442667873568470127271225141697868810244566326300391699120968661903712988331110490261170050626204566270324513360286324106739809547821428178781247036175794125575080211057108002508691332829917324826213928205772780057319873577278228327894959959752938430961939505865788056189215744859976126967287426641827635568956991944081419544839309798817496805398734034697795159730405721358665677054279830709062518993968016765611167154857270691480034943011949030786425119745930173496136902302957967729580902520816345688768642422559546045253999264557436890434383142664744966909251538799186024809816833982608366812872158603881904381729885970497054520895727537136745071735540587487590461489633775689798302765255521503707363113481084832390184509988025593173251115839461957652933199826895863088862047530926561173889714260509204198364988579019755226305441892845417322703438285817670173716897079152901010934245259791547487343078155364307907169906252402429475107602859019001542158939932832165207867393436350964607471075567346332308211156112987668992286579928973433763128694973390530509181182188777566243784314755974242520244460363622502391265292629708122094307299943815161404442802749644181714900425262845250130327955041004468673892841946059896598178943605728829778372940332636493408839448358537705008977251633039154354442283534211515813260983873498250281144343873566218396519272321164725149774221989224150176650613749313610805091316697473325128049231541839408690982791512903571442512847089603246863729259307836772161271754319829008311706736888293880574443067724985763685024449520139608159736859711103918396893097325761202264585872820108431953743828571378022006409187371198247695799396349871142613379442848735448006019206817053583729284015020422177289417094032703574912284404753423185813507849172058685472503606250315249934294839006390470887232883756015376867988091836658403648007293748374690674578937133310691626215530349155488270365869259474215584746607849772748568871734949604005300784060350757186586499323495074791388894244997821512540026977634734869796938645853209465869795644426945282510823914426867262450015540156093288053346617320007920494812443634309094538743168883044038569487890940145924930875304106635749646184661064098067892493410535568437564846968727961424412809106460600675504478333950804422145374757474949599490306939750434659216510326864414545415803066778965519214136463655607556099713671355161592935265010291536533015523871540886725744998784549094996730557053843235907433520859214521652031783817387424360355500048610465026081956759579830006748372746525010640706079070461426006769984817456997562321825421103010986110486522176407246748961987280601218683226962426741947267266687777899406011343764198279347293587506968235163000401876942707728659467696715262855569772859735233964416008777080836681033886749169996305168298222799134214343282938395602113784854078988692552950022212132907350814364019735315022232801447960979052762492684472351082967635088849012199387731788688210434478384396580139319677477541532290067306443035323059941136053873260913980061130608504002658789769480197183965664001332478121044679785593688228130254213244782719472878769925136681793767931957942507692006791480293214283275017662049499015021432655740322771651103622025735404813271009085945061019935148964902853506025970373856121986496514745288576991679794102542102636847021761760452176468420172277284070984052525577466873290378756216474364353628901050438162152674659323433866081561143204383232395508053374986514263873022942252976496479677859916532136448948205831548363987116189126770938622906017672779753311363885274393304534132934291700332016996322513366399506227165179719094743528968952057868639322972001628093558155653962481462915758157970156219845393424639803843145670277263374049657424822453563233389729125897709006757064196746928859771952004020722043145742995040981653514770772538841977467489475427887303525622190185186774368984262677708378189375045052857043325173229633292181233696197940566629954020795815331110684991257642408249599288301202346222629925634455639556331528720075294848593705943735184625539319804507223867396839114322619794304041808438345379985031557555462049669906353540769908531681450562406279102366288582513030468803607095907292692329580180391238245538591927394460277828586248482654898289755511679806384989619509008717714744290175562653601899394702284939169746576316720533985864946023361413435133291164706628143107191853766774944170966574916565486131583734798393610135206475177516877359816076504184617602401804956195022660403098200188125350713440253800916442507283535707593703110404011385149907937667713346637551874572775543948526649976455404462152701385931928891656403106232561132753681578525729375906692217657105548663942837672564100570016875555195367992241125459750542876815189353200124521025874479703329860068713172044275447850309492726037477474497388309848562006905051529103923026806419930851720181387742514373946988736835323016470442859697900118131928054152003245663678021999038373653901516510664923090981379096590318426187028419310856647652380247176629892701312472994192905875621911272051129397307485718137339655610121102377138311897327898209962279487080652917349077343031397082251209298472068765547310757332833315974036609974014784608142100820205617173584295233487122421862343595542705061660602172158134736326203082242842284442317983557954985896659240029582159332314693285872629007911489516734992397604984961854340571141342160858652192451677748941457497299967203912774864871799282187526925182837838560277390570627926841457982653664296136906118010481405317892426651725141885707773543394949206665625864029133247166690181934816908017142972659730309474060788965826328132968096977140494885605787418195859934797457664620102138751555482233261554875493715712454517268071939887495260214626491035411954429194316821672378584868716474871088673905757137676271847144147143889592833167070731439386221131924518591863570780592824999118218828950417702170622246783820488828416541805897682528073016935038388588018746925292737950545901014896324746538905592715041572486098651726181194553323491515215953163131287750973167215114689089173458978333162735539545200380773913923627194137404184708775015837886273313384044474057129792422145298980196126708421112933832201309441298810750614869699335989845577801928081487041434968065903769057491965393637304789454718376217393618816157512779642209597780717064721334256374470936237951635516722914906578112300419094293227319297195669440126593473286087559199582515558652932348129628766817116518959250006579525865888809011684207435379556132188122050389932513759083624301704599156339098100653790761816664060883034935717624036628092538937885257745208090626886539399373592949271925562802426145176832752828734031012383182177101427805278699663280781759663221685246821314838329256660186233387390773793811067768781373929949413812015066609458264852313024147771560863580679668137417556690012954898288919948330982678720094766434362515362549028508672729722997774948330704384851540806704259868077481841303886222972114370227816408540604018912191059072076267491547610693528141117781917944586640922694600011848917108703330717171554880855510586455617741458349947406185823451130600626092136981161075943102852636544677337005095342521060894941541801781106445128670845432654746206012844977026482490683106362125397257494517611712233531092633502366988161737668657878338911292732537955363748002735869470332192762974004676661131901674366017110984820677830896799665000913482321773576284759188262265959027896157664224002634202729652309408354721234626276824615427594094960847150722442830520434436900327319447423156305552962622610088592212232527449981292011638191484522491756662488265021410458192044244426453332356340643618472741426274211705220632864553460050394770100118042423640270041819953888861806794638935528583841399657769172620868456005166989278037329799358783934881234210533344480776101403600205665085437049317560614468723431141225121307385480999031830967705846152285443582843202747344509815856737934592946596637593745490325900100373483201073430121532957626872700710699310800012968715578794952813719860640998988146157382574918992674438594341207582568123593413570652428308895763721133530696510841976708411516623762144879000854805899935864602213167554003136436799955375344552985583579793899209426589142513698674682856639065763758227466554195015940183661624941095308439496039929594420971384971719275925157980385869295376333121793566692673669482408294927004573070351671359290073761923198239669494168420903601019076523320458794467847753007464338497848667149952976543438448080628529536237445800555772618297566251893418604722425982708003887117604624909125299754079936634239726172169507188352203358132892742144946435394904636222428858972937694614250945171544336887256254679469047610430528426791356468952875692938189233466403265095171958501206938649754504500305802665604045588986374346090959014378438338301162301141512893950507436052426707163607251882786252387810815299128766164668859535654289918079337639185541580846200848595267830452159255275569564645228001921347503097430988782628678208705022641873136104349356860044429879357311673049814831879271124777993475458880214131422780254569691019600087864701792600004411206502405189520497368155701068631340195946593024686267877047847308631521571590227954013789542607151304942485937880167957094635116392562490651501116806460453827142184741715128242650083076255379563529566245259503857995645361969459197487278673074033507264689478435251781992738286991837561319382464861102747289282405480712168024779616447768912990826180371514245869295913977192545677696148156171650916739974853905346449252936576334048052484699227984141319333231792195645948572479507644984677617857710247267825095137424462625236474100289351169276693022225324809597466401637928791151087293463122482142653852076429863131988648517041641449093133319232515177993869132563984825281457207142957568749336901711257953149756480873276584262872096065822431060910383367832097869312396553504707341275063069974411519288701622078163695005400067841489889774925253604453384788841355244555793566877249378795153784588445196201205872221133223314338474414926859521927405150794888479345381894847505237992366860136750389429321613651936464324359729715728795310388692265593849787899549736757593646902057785033801751158019253657205260424072052546839277440321219395164644713061446657060865806850850520925752815697054780898410987680134663176872632128570321163362962036386585018022697355894715652446502228810135951974661041001752742889851162749042376912481727146606026511102428939198680539896501211061954357111476546141457702420310967132905044688210069761613212631504870280492475378588625922330360517981037696346609702454453504774351381047172451346874235658379349350860155469709518900567625268629905800814233617655954894364354820961846835939162049170944576268349428627262908635656613937873842301749363217332308287012526083340339872769610298781416772117869662371004825575872176757736092535710655038852453892548356938504253751567684832192743555613611741466162386350414291616577150930177284466271318609086586445220896872526234221314549083257524217436387262017153243239286434440510250672651287208029099428896411858937239011522741976583457161430698274926226526017806073216789621888444130518021615930665457406510457361254357597796399943248529785115220755938883825603607506433060266769119107104186964214255817226382190608267498607768311085680807709638190586357648977044499974782644492924606065486078597042642418889618847572786529976595931867104923954130973440171646179445003168533939927065279246356459970294789283690179701078363777383007649532766344493033189105917659868044522719864694674820700192968688328124759579300837122841686215265921260438183594597757399899344593282066216429624324869563607026963124043637172259086630053945256095690549825271684472644335083577427227099257921522613305118046782784336429695367262066861135431472066120603761456691531643221732122437062864686329101275740534685691368690632654527613479811912947499429679508623407141486021976579453503045460887766899466488043278308381087569168894690924497969177818620942904770653003762098724082154655820900103325486539787765362696770617530597766619260640556078486170985904356400331918992891008802608401091679693759578397198105300774018127540199549517942136490827611405352588417781467507851054271214379467514187399500367300419764658953003801582938397230312507337876133602751445288040962003432310868092166638635703295745105016225056884741102557471100691261071494797802398251871517452146863676417601412512222419639697662133117326308205063005059108536139735124371540261533288418057401710474587411362066735594569913820949868068241166489340425162393181190352450333939857455847866616179109092918522926270487470834208949951181149344070566601975264933432394204932371898178729755325211277091639858369397289908016800063850083314507614790305422831802147544632178159806353909384929480074086979971272224992304330659313465988065995878230057165334188269733363875246881309986942022333486700494091260480852714987793375758508993267028532898253452490433097169898078899442734453687807011347199790727141131689786398456284308129539552389104507852846087774658648239283030935437725234602684492902932618937377677070755856587448449666655071109303604690085653932760702959664434231667734650793276967716767817871134269385994358423853608918444171287800104232290386715454773287985094693479622036730241655275898700214088909068725724302136581409827153699360563121302772601737394801521689208971264720832648780545045799139757128303416528970663056979767694159307765793166165250328117854597247908940612830510975313121761498419040567722789711540713275412894951216528778430210977441005698452771840423620506681272813368014934429124528560063245578670310454691101161573247507292974272257770043484815389869760747117575238664443181740599771388283234003038264326236800262536482851848273914157395323341891793134765235354044118951249657602852339339665241393462997717326783936187480447024956050520473845366696431740672280679563879631811380791409613824862780729831794013132008860391132756864295248989734780571914300679029276111536094472348929732495841723614844532233123074203014147182135180373067844937034180850786448929291132721392757334250984615063634344404042677896937898713984493302366542773452436739858149060832627526028407411949005891292556016142321447389190073530946241930642021318595929563474086137973055173876439124684841503675565310249397608574584163902797261466200588899095267506050074302207111405141480995245109357438192763812838831288672016629483876128494350568568260660286162277973480780466822134066879574218103625728833585367334019379444576358499677196947710332929867422655814693767016970575709113759979240734214520907984490378734020493484054811388827068438684900618822873027596208987444845188255200268741280839042933239416648827847791578284462130387347782503988255712835272630535418511339303018574008173538268260910143027118425865198198572526366674868180583932153864582950225549313436602320810659980003682968895713520985433779926194240326988311626145531616636370676091965747349555203311994913111537321495633715809106924941299299706041472271126974880628421065338803182829571060887214451267586751524437716677923308344511694074577300961571922762911850551361922122036911654853178186535135748878643057410049767116453055467774718941013617738171949657798532047991123404908533755564934401421915922347825085478569919626909580066448045049776570905795487290810621067266323531098133842204014009011540438979561259947729364263646303783797790295781568668840629847181269239009120957735194170357536540417422143297769792934028788899873012454300978690325899809336853384468978792246354530526569482480289539353702993914431521315696347117439954828031019028836777599440229288341204612975688180059839377330269494838388973503868545532132960955446812968058432313126500536788804050893043386102738666067679311272935827362383245911170079601340745314508679087030235300435936406727527470170268925345626538687015958637935727675855397907364318386224459207817064707259533570632141675869307713374112672918174417413517806259739942105232819415085402121588286194936350332889459744906891178372278899741022756109949232482865361954989176969962261484960325623127018978217061581625822478607737795525036611904766875814741823308991385688641534599015718765660440345501340969169683739916004619716165269139578511820377302068708551708516474827964104652353443354412251555819579058683684826999226845088745592761014119906208811895757873158391447095317427223853765649590492853539031657431155262506553139562613614838581418107137988651467395460036798783270392698647149390060460415654741942533092172326325967052352649296984980745513422057653676629855129194087796156183947567294824066513404153593590274392727393034485402825059710383670290794168632602668508452575301653101951504530937509310971236847723237814016591079863823329917181869537995773864690918056377147753041121863976883831134900864665503813364355224966209633126946109513338704191426559852962134403585039503583810861704063562891398664882531451377481482507954852020244209129193149335131935520334282962782340704799017654272197155397034155535599433991499834978126512768764199860898449209086652031880930469143375273951734354230459980481140329952483132849714324386717910906501376831034264307964487111161822781290748837520996574414013117427126938183450014072797953396760137952019753485551757541545284422294311876108917941937498183632169466650524138198378345125712423964341099744764445381568341143907799404121780846421195006751965715453179093172248294614803648246687525553993865948134791617912262544803760537474008520937082185542428276296485346823441984320057636985220295646652134914155959614520023672564020112333102440055271849563489497273404248445204039682191513590116397709084135942580562397466878565348988067662865916582230989948703057836548342895871695600508413948503281905180226795424092649113565603683583676283063608984424224208471278024725206880914726797723897204540199644647391568883407557678261372997415238040193024346102830994685603412658719149348573089491000583629524316799068459116271369921788882649025552235530284697122125956786032817194153448977453138127278291962721544128162434640891856320752153577363835859764815530237559595624244927323367116450038672988835076828163720192715132262279598787837430066788971512073568930389012187441423499762080599258305529556591092919824176959188077627736841235706551701742582024426925271878878626647256633241061389753570030754964571368749683310115600068485683207999662743499024240459648183177212267047994257009809357373813971929477380160537210915135458782265022859474106447618680092274557136179865963272938383521982280409786222667292506973580133300196107667255019248539692335866037331525844023449115193151930589689732496370794605897599199529409704337004173909848119698662396721117128382596019359485082212301507598638497129324032384378405881019928599435284433689845965621744656042356875770691734255344540905010520812541978927520313192550850633416792726824651894757638462438021880592274113717791324162962909902429340697365638621476746964565123451379632511575337946798833465189830820420115547433658859123883117880354361563029052776974234856806427958892491445425764868933873239291439439011554195566177765772835807853972446803785391264193276372463209065520458934079826724830145066268887060615940027591767148402736173991764476646480797275380291179502396164859743135680782641777741570068523231161653505363280173692973566120633143473991555966448688727002411730251953760468611602967345036277031331118792725148388375377721391210136361656909971808432977810519122863316831331858112402522442747909331755177115942403521425350107687494785052971447271822176164629516941446660696046009837543432977410654284875110281913364662357107962551619380288956747149861662932227626365891965644746514890169860174075197710382224268196534513548462026957790944968616903606991453017821345116990541753026416193487484370943153113232142696136439880690457648610191872304534410002396615718499466731176344163702232748946897425255048970413437516250930434066457065414437246684463394725884246587181834404296639640977587438190326098025616237383702249666715615583136350608802487012996778029319895466600531733428915596662055506673260460333700770333089333021006533958967437673590944759816192568798439292636891238483171296734122401183614043535910819004330924143208378505645257146620072939180340398322125857700574311127425215496857723226428247621811380670762677333136417080310289293853546902914759458098916386258859540284487875123817401265571856355605308270960257464985126007033188296027384390308462239396386283425175333863901204789907106045229691317356550062501707781275631414120407051306451224109700120159797703555243486576276770600267106721579351759636559989942556393112646050642245840103588382411436565886354273837615937862553581740532728289130852728546506844752328643666967153244496573521429206739964529436097252127491672977148823183876583045345164358845774103754440539944274519325097576503897841292767286977686115041755428044230381713445827907748714552662783278888818662704848576655190977097785593331857967183918689181432692996971516950941050538219866253622552022874123097426193886085221888935025131981868601541997893106478304082139851350946305249198404028580264928591605703990483276401066125704627942859530035430305920675315058497631571673645213280819020010580744056004823970446678307823314018861478846768213517235157299664211101787516243420487370641270923261931634276607241846734043161827944915606113709226258449880305661759154810375119361194178233983081113752317122358758586290922139613601089334368915309270041749830155099127683417658266032846261306612191065921603493717857377901485088287184776939593730940464090295002298557902256545861357014531455306263850950176918296176048650242968509314800800602249732639183755899343736955345923917850635097908919074813630070592804411070887692260385651812391878767215220824189034776579762037351281300097779845817484947659172404853970113503712206394253339779831788845606844055369840975197190890096765017643018979329188517278723978407820078519867184693343857163403585114978169349136096892553144187046365505202741745794846197834979498052282901513558681221752061506767339107129189641134795808888799842386836213875842248655816359246909624808714456735751969086756392905598075746377157185341104175105775913478161179432642715300065914911755355850869507053483110632518047132402441322969976147617912706009755350245488874829634921470945219916713359601907427549749840920196893451764702711883198233933020234887639838399932508208570853105164918258835873837508124574433705722439583009127159070270944002462643020439024726649697245649706037052841606739554557273975454416341296167251303509476178640541156838583744611457724783749521421779594617611013959472536964837895537098212123854561504439389616653179663899746346498176824276301798801663760706594656866144501329148909873893117184880194145853672500613086378709733915969681313284407880328574247052273605364955936900891306683203836616126048798974475957125180702708228493722623019535902545931133197367141766708335470799544572417841608843313058567084522686992976318152961572247136376772375356249642075071175552978336999562778872525975083556383926822697957771223396944537055513181597595290090977490464966451959938336200046398335883012529526510817608192207145220670968802862688122102932794437292107198640983160365900763266711226538777019364939244936891552323945691394858655968102922092529195510278115080677176225163336925351299985686077709793562023696440011249449865850705513831812893013116020397053930201046971551839309846133194944247026772844824112154702576204924287591747052010708034488790677197131939385049466499576065927662423575187959995021023825871202777571624542551118504147550894875328968526739571622477809780433530192477960955498201699689520569303726114484031688159532324007872351064074864603145652323681950285190524593672104979767822088427704574721013914200988389553762306326860575560504695627324777379217069613194772256291875184779063259175312982476256480416776002085108389587438963052760604202748832043074659461206112900172956151888859600363395872012763540950293293522348162378493597427298164084351024118535263514213815570391431332901973259983442112752587218433910445511313734568999381244289612618057421372336059653250712492460107186745200034153749057643124083945955718493705259170685946846433327650110263759265777726135558663071590792008786147521867645506324196029088915912998856477173485715602075959074234109391178392361867479856186786345746181751176076005355088583808717936744273272155874389741756898613328108902894906877463178214293747883811693470727644677991940611299445011618510990656644253512581851369477102905662146349029196314753744801237531261686527459391503387489913498734085978130720685861477612036276852024116810901283581147630274168764728867637055091554814958791838654212551278715828477106384204738864586727283495358087215723546135014257575047671003628184950467087325455582179761993219559613344795413668914103670941210723110267335878771166296745477281205511290544887354891931150582056670819026925089476246788917467553578590522481041457457041398486331363006900285217706311400798659344027111649464528137541742237985664257805100639807886065917942857102930111099007669347431733532866029801319130629944461193667060552837939020033418571014923754587581568211432601127324301175603591816050338726343651171244045893890489839143109984995818565268723921571309387719089615340706517198278935305750241591586297271527003164937418045599319450389558128169966892756432772254797799965044162899126513784389975261953896731195011927334144525440955455320375749627685842546619157683618705087766062853881773885710106589916606496049898322234733086596218082985398134891353523903326340791124684696689304968139813307960365792700036326635150757018699654509731756067561835973811148245779789898541932946035449220365415418937195894464449638677149080393658202894024566336074830352017469507963707136125778595941577259314191010654605735402809772444856223520320372878121617580323666561667810516088797520588747100387730260109665344179905982420504682420460263201256687421312313021221462533033151763771555401442432372589976815136424270468934410584272640017958214038788575546427034279980793562121024573015590180994805989593381816689385912721984486732506327249570488458352552700656054874255318726864034548856789763859264538974047785029674359041178094671420020802823994916848238085770144506242127757727934003065136359967814272588299517491434476230630376740330933416122465748997639372948411996451136283087986142758403826640191522420263312208746583611630714505884608437347764379885121290372306054208696480746249448082978138337043456944292710118411256062975309951264623087594834742563926065002610762255634441446676640644277075093879322595617790639354212787175928698329547602563297937839538743072403228941914193488098005335840712762749102360085528762062603350678034363355130558257641408397477252932365449939282880586243137514604572064785867622331660627061611541541728886407148107651740396832380276569424473020197851290842895565381755915073494149854235993174925337076563023029234758966878673530911940368353688326580565042137989609746564371479785392340984410405531296336381963452669233091196190086316703957314848502561590213609554833050682100428124610729779025376068235190653237470717773948954969986294615739019399425893247297377127484247752746107591666400078098668870460545219039706534181220938230924038770755809448380552534083217398141255202370796266660366545824694631117226032536198875520976639970606590574647910158079867873616428792552038719057145425440912755712573583800649646906120435105285064295685037058678937276325698819819795599677164810512334271031911972208268396882359937122750626467520560127210186625870687750098680144129578054480040611039291279099660436200933974333798324390528445450369295791633047130760357029223798012962393112775910453983509335090286043936319992486065998380553450019429939901352108047932015660078321816272759683790830293857355473621637733125708016912975937076333739142068404342114432580103922556256133403276105653558917085972502139759997993920414821962255853662541465053279709069991479077784869248633804663732891338292235746206251346051941593746331498374581414470901526404586471988748986199923427168042430655401825686335587635586481831637442437145198199038485500513710981542005216299678674158143540453118896542897309296615060825076834672380775651310010558776490713070726419806444514569015261224107936977989311242078403938428217680937990694708416673553925357922999190008558680934977159375907652175348382826902930106224617828508104729182633279310174191959136075092716181958483983940600225527462274184030794371027833196426890796844448997043406114990078922638874806439450733870876709299112395079337945718227037985619748206478604121211383916587974384575572588902513530634170138366455044687494382406531177467240728445107827925497818146891853047546193558878475346550512655313709616546977286221108554048786005927832186853960030378327196886901722180026694575230754006483392926682230904647463110451698467513519669157356953181363393256759970953160186954060221588700120033566016066297971875188633332070164636279737466716682317919384109746686366952909928774667577636572125995583626054422336545439704527665248072292679470641311795729391586757186861846839986740188644086036430808611854267184031545783459830496764683914131694066356740835952044704416196131054352342876616825637268969872088226716385690826271482128147905148000192917345850033385263973446558366282299366414299746134832172621614933573098988332489008683386156536177779441081913911814754741616842982426483235720747275373879996398117409299617234478722740855751562430983594889903036990120303779810634710003302398581057964251581583357885392442062828825105981642915298143932121484268757434142415404176487281363351820275657958484119573877905016897442588159042787747108073608780629802482965870793540524287036805424797780954155471552585928275946511335532911277069856960834088532780952425810764967951438715329971823102587885219903435704021106054591415171551713787898368304458926690955939352285420360952620821032122208080664074758708386243918036499563325150259690043887734810126151157264091321862862476235532200647401711962492227130150822451060822251551436042038029491142936279633142107748690484104958833589802775203792307220808756817776378997294714605023120723909082309163349750769949939986177744025350261550971484286920107274208945089181419704869508605201604081618992543346184862742022518234709514452923920936894469484374221063947368773515540582032235537063456621886374940497219550643968695602875512666282156219510371109849123308892222760292908479838119265321221245813028595122502414700084417998783250437836851790042969411881218778573841536860644762206533954267948662967798265809521860351494511720685290480414957853912158549683426566722038779500751567490511041838866309536142029445481174633298821465207980308377135727694889730887940758597316274098590405711036807662728026124711459814473522729113115223686203266363541587480997511156681549196521482468873551346572767153901452290654794484075304144100818890801313897766852164307336754508168367049916734164728926565259740625348799097025733102367714401120494104334316942533228744698618318903201558159601266808866076926761433505230947073063858533808835900633464428262479765644971228930826359453201934909740935304322341151149368896870805928558221798524441165406286974466031375118265090715642265229636232468196010429079011287653587211960976913672701364778749352882670265454692668946199032854938526412180066026963932978682854931131547141457895221605889142942046727951543250990026253166071363374810632375453674573004898563494981630961139511512962350182904734431687862288987908804873470818740523722078965188015573327131107979031033213954634875643072268705438987389913786423440465768770398775803959576542138307189357359589944885453042835345634382280213843566924559586819637069627825313329700930833740530940400960984671706148837931571179988805397206896102300806581200133324834762076722111293669217480709346372632516704786374177104670004353464331053511539953379222562406593541963141901419588471658556104063234990863779477408687965973041649505861878559600387893265244471610943489639256847790899873384460925481152337024659609274916050442211487388508903725363162558436842617609054878129440289606277273518103284771359675352373636696633451271074102125268561953637843713839519155942626591403236290816040892948416687230927281206252366573306176560847207556053208091645114666612152534661741832515614458083378415211623139519613961692839177767174286759703012484015672824999103249258459066138714213654525939652070676147922612985533732018237176427525060792476819112851931558902307207950943999739925949322889983987835348293783240308692057002632950760705097459172234387896936885770136040524175223143371362200714705901175564792447148748283974500765141828210033436668981992010593278553010021094148300373316725164718702408059000791387732593590085060509722982431483688301255789083108816665271712092166659170590210251941829259695783505289549845834244025062726580879072420580094484467925013254922789532449214363209570972576628602348117834639543253174791465520207839614085840102242714717081950926452116340869716543059836236725151034900686231569264361799073476709370159144424038414538724283616979714070791603512415987190893908860773310035582343533656367996536584284157082688388513557760196063194292594453850472551007841990704029741785196838542974774202966664927369144291282201098626158503581215759489652412619650555079285927616410012124163844734499647374729886848377310264399290462175512317967446919381009660993299840317894151483941807162132610493932624307198814639782200181919492664404818529879627980413526760321699779283539898910283860844233633061103622195319878276756533436689408113497160878728935231881057013969593671043350075805613529546652985589641948595628687034936207887351225358925869729000399619941149496117476411358814035050440601309755997783688068481840863433022683932139902081783203085107340162404717869036712252284459482077571317356660401313666586650120984866805119926801349540036330264579918304873479251028017568486670816418727014250550380215726157069564494828691409905881038564333778139008714004614607278802767385480791431681788347235546084598618812365684888932458911586813893450483648949414489853206574329803068821911687059807651260971777254738188097094323731293522702957873364317830140730212463804564359855573705294220668151576953420992967741171089684982418885864894677700166351171260433911103921677815076615356270052315539215120384052595398259068180965518446785432667081439009539080279065447389092695280577163959735708555004746896037086440574343241855511780393010241615415025699766150226430878586786542397946047577209449622286770021348484866424076926694027675605084645786905703924142743157690262333617241389926534258660236051062378582029761841925337606507184580521771229903870942320476535126512855379295059228284075328620012923181202810267291943326872236664989321067539006644672846828406900277122639770864605605794058809015512996584796793153764294400607169528993701918411937732976214358362591672271944833981854720718995280053324234594144746392541565468230133499496233511426865038186614019663845276104489137491342333957367636810391759603929414681976926848157391671524020468439286349697863310604686510296519526702925021799076074764231425346275863926071757954159189389556256397465809879911088711416524545440188413431185285901936850859192157373160225874914896738672097123676151484045034618716370458932615956080519685930664436586396871553326331194593450809106714057916791381381946754647216981831913399461214187798098448384883922795627331130987771311009832886864282416619336216415288155478280754120751953468452706436944402598413309032357585595016574773481938844526072589592841818824639803638587584874842104323123712030432494202724489684247122985350687480735484878076986794091554398235029877417681634143668455403174375270826119639481483853953036936834696305990307921415747847084717668462611784471018322650025973930448223913495746660739259868908413335414692320276923548517126774619772353005437476446725988514873085631063960855614866077903157101252847149382034625962452921715483267961147021340918072110477282233246102013892218623188852133496248813009303045030633799421753569998105632003456262157194537231049140175650331218802860031993471763697141120521588026284090239413211542788316270674783803210252077605023427861178489077259818068435919830171688749361846860196010701900943885729833157353615190583009790421997131939052047508524930976064282067278301166737471836833231860545837598406630207935445512085458174084790798806533523074133188489895058761504421727580084974586556013144048957805858825458870795945680125513994033066428232479294264636212432702912511030082744527085452590462621809505242286999057187021193052459471397230115918773487949813885074609103886156410439844957644517169867853755034186759866560112443426829891917748159841103606791477888570774329183156341715589605258414591333630388033684049245341748770082036277351797522292895910949093129965507766739243090846142638991697158320731963508921410460802369921814796854130643233881040692185336042391594165308188594408642365931308217702765542325504445529498976329718206771952947122704727631909910589327982939217022260797367083129998517863058979329454482468475750387493284935994433007864181691845585717059215383105406187277840245448833165377247760229471673345535567633876568471168857718879398144508753853755347273790236439933560514049090940432097021075725609908666168873931328806790793702309542069325467336114543567824815277637155526465370099870866175098678740401858710096354029972268427145082754693252942569305193516896952215912763430913741027224927187977124216997149028436308720996029347099375692377856671263024191231183176746767531100110109576768296836735757378540511795281323536329549027133565534259761286852144150190021335882550543952645007020922595839824768709849950597370242683891793978410276551716012875989511925742978858204355889624581463590451286376837521226517941763899543133217257806159533497934863719984140188661560911470367874161852486069749893599084476611225062891927988902012260837517913612078536099453857949992239754405730912238864496607272650078633529082230405514162782448798065302755409431450254228207523689071177525700014978940877959778841392776119561135198541139034679089423981510817502507662602857361389863039456943142625199317188547226317735874850431859250919463300236827611031797776232836770779883273235423122975501356774972276094846714696359678861761177267337450690819593689894989679448585131983364979930612497765130721655385305267162722522407673078873073021865803407231320409324437247978321258160136339142729567626508465035711317789909611097262458771345078290690048832262036920325481318461518058643526047193135788640650464769253985050343046287729575134439329943686399367235234748424545422409754093804882905451336348399906434596220615621826385415781557366653037597208903480618510708987558584613034679132295140111430076401259658459818540245199584187508916375678178553110874575124704375716092632426502206437359932042239930297843564561964941243301955979962691034966181357838048399589485302653317615955923368873869203216253086905453073725783780729081726411738051187986693385040657038103820007613086992165753157046745735946570722732707787874085766366810295563116867318694396544897919915889096286791699431533927174754403254016910002620577805556550872281988572377551633353100735664146843399172686592226458694689151556033375332537811364054865806570814310184549520897687831964016664364419961514240871323131357882010526605302583151976705069902914584705941996513217029596950248837581342696352808430791624528132627705025929363490981816886116449474094994772069474951433275998297576075620928790474836495739982297074428355191683583427205548356644890875395721368585352570998696747147582539360541488884144072090302666640325452250603081159939213347331006828119484112249043856921357621899478177887035410170864391056222581890094910664478316129845892970267579653859984565760063564685245580077082655419039374095651602005522262338521011327835977785746387194446314060278929806167302060420922953264001045831001313462073577489091009726027425500073976287733337670006912740251890955457880410747067191672624803714558901039419524025519749021827107981753779842801281325650569502293392746435651179198323046849921403376918387690687733420870115754437136403525781112623997912508594654744050936521987018729514054284383927631399915325962502234442599407368087935813589205656978894539358935185750740307918477673367838245586410624369958695589747777130183569067316940835615371284665288043360429690732156368363925043671935529162079795386320704511684857654139493351069043408828476755282297288600522432807982660096419402489702889708127350764755635420492178620861560614802052600354311040904477093923322813794966940984960962070868902828946180945500880499575095949729079702421029808311146281934100746435317660532870018073737256583778663250011046008694296138283848439347062368156011762715448504337952345838065960081151229617987486363795138493320048160486587070536873397393179196883058633860374162943541457621051918106914390792884761157790814667306479403301986426064056673841928378027157286007310011274922420590808878721081429966475051639802082148489734252525804815773017720100737208434754441048413680339240738108016348633020775545694567853032217733353999954264108105432167579771743419599223979613204163036715536111666236655800696389990867808144446992476706108356645599132582241968435116066364503638016468292188091428284407242745690852399703217275400080331983121927610047138212006816042423682219994823197338388147745402744613570614259565963251376463070199208597819663541406096600050460861999303487809478277577696655184758810015141457626941088515816341789957389801033477797774431844618825717743206560362790910890908627708651416452361996323203320491880599749127885848578061137888749829418980564137521204440911871493898201493321120307189793777536325728643974956077419334552151915192327146551791130597513780379824782008623341155045078433200124887337643513840909929390701988889902825513397347396099222802517696405278429173362868071212637437124972051148216276516063974390440988111060037817794224585013220299416299220519781032089667791180991251209348731512083385772017824157213162056756747118419351082544914947747768249344805385408312727841591762832260239614186377276148037381015156047267970668367396555697620376469971619327028732259813106572745585169174156942738696697994913395065909490266160635283277812608622272159428130949644607508635280642118491249846823218693344363818290376091013241495839619692832890084859855551262015436254099666933261432212776048128480339293094621407315245137262112056702065976013617118186051776787404854189115474548943164049663734502747100536050629098714444272337474197947411251177108318739071213287498966117655353453511548957878869818164676717980644330820638799596429458177685865131533948653051355481440244212792414616318712549404135100587584622125176723668269522903713742415234344981683050254234013466768293446506676960646829722731363082590855580283950813798296983955094884382839833283433838932554505912926744644704214455763937762153611506643224659372470474754768216446418839472444090777402579915881389572164181923553526736630740623210079171900029016820631989481619556927830531335111270395188172449858741581751042376648144969966822103061328341704678531848409165339207533653143883301199293146065309448744137549176234817030823276262082561512502202509301660435509935244060184516474724281173848295703673360436559970832977923320708011331063175857785483930990594381711051182809849273676919842655582901358199483215093055179995994458819045272741456816137208705410856491862960459665489014974543754722349537361215873028630612809130968651964828755346660101773890078122344245379143416400101388920841488783019135262633005730421638788814527505969395510728826243475206577910673561838577686983632834748531030443788309153972019856599781099886468260123272433714451931861589009565927595908787216311889704501408046629029596732842934183452095415265251297159978402512949323941368257170174751256519859481681853858868546221378186814827357250364603246929146167125086362219291357411039916105309953608044368278177390688871826857238777606805031666688556922079824547506119033702198679457942997164554016793302061735924769834328456274249968931208337423873361588678904000130500581797761795858441870364875270637011147239638116770072770215731430924929404966109258248720703776108325244311569548795892547728466471201355255509938745417413863754265992491379983766262783371565023728939707104589895937385997932126688883015288526435921171458937040560508061653584541741127576268266525320626151214008488894402212495784288751908103323009225513271319291329397157851262405902330266838233605071889199874230553834467731884926570808995949279936622279360027963834099816013879432842451349012579441666819530363595815506435204004183919680070396766581152412766075380750431150853356980292722453171624871967693908943365571669981594859986062037073991069155170614806738368899189502187405748353553281865444986341936024841609351980661327871148921242797218929587383736468969646974223565031133289002021879202129802302996596266883294446733615543725040275973093697033410978183148496497343237625429998476365646290679420594052703133438161920225397229033765190024794265371730238422422417699994068547836283612025932358183787691672059930676598363758068734107162959497054511697606797025429360385586526450108010897410383075381162057489255082341063621993857449774652896245913721836852704370347940179541682490992557562078945428621691881097020601496426031010516040210544141257491784759368009446336564098236841549388438797360492814456423372302039876254255246105829794332100714454137152090762708573658635359540446603990080820011127427203116317571068449928020418036838082900110528596206258688633566769023393026538025758079573807251162347420554858679090201019322332598858416783101177269896020157668026130481506319227390516795047259671454784768591881459728309811429448393629171176909709261371348777573531704056900379285893078985582484343600014377652017004942031797467330539487633237272150483323401161521142640838004010166942604191664334649496958919176080722029005715007551770546538587088723721956994763748831867504888746324483736100784400035515346552043649832503198975147775189565377367784052178683775518771172999646954107221624016735278598338078486893711865563709820777032965265583519676820334703305116197407239632381786136925584055572894254817453050406943510592885476949237871581228632277694599530275712244432465168717552523215436062291373262208174125624067530769864466619912975928235458850262147563263380348682439359386041602765366188998853533737428951751873377867551821396855343338007491080391448081431448076037546752685179247478299158449962771872783713106590029842968677885423829738692075668522201480634692078264524961175810977290816474966822955952150509248194945473104330454976865430469000256302696945158602356819154216884062944021221594435465936045166460533282839083211428909440776309794634949856509626404031768844351121157294151588757327619695279886881999682959509601771983891227300355470547755697519724506583334698749233824503502398422575438409709880407480277340264427998274199434216602451385304761881611901575247011654915697819734459630763173307547920277651944130057294471254594663051050182739417881056314500136068888946145230934546428060043151459601992486768064476520545409443511152488881893637599246621532389824129612420534602543616606274147886416762298039355418131673192248362969857751070526322537524939427344481454497283268723636097956668336171545248089766047845222566523687281547922187454150657562528666743388255084721518747438127556276497649667195256274507075139791040706812342666425711184347620767650679783917123542878258378394834513813040861651031659301931176298785345634333295059933402306658326413190439731617341124780144467268904636404382716545387802212124600430631267758690581712911156273165597023062323950201315825028466458298012748809040662873946823064739269952383327173102924381111166448847422862552058368771246955943469701938953222932860545244011521192429666334891534716034852950816857006936030000694458450139829771414344263732932775977081387353193681684303760871512436499922098156170692238229069134179189913714153626686903934936852128979128726986590075345085756451340934732597038697926975555814231786264085298416698986649178153171690842091524849449113730459242937970182389155850151012444832223595196671498702510461502049162795300231365993158539265472963748452327696917463219469555668232593598086873728523896954930298776669275343976356261646089385939465238102787006080815228599857764818514602951132887058625101215980625796793695563989112826751931979044894367978173628698635872258463828937423185546117498730309076232829396502184453830423278384680149716391717038291300967752014755725993576488758307001599678846128741203410534077709975882715453698232609035523378062920345087342763413633790209661455845089758940941796826546396007961545340742181397947990722919858786972628117258859940605629354051696255742983273439169079092244023277673075356972839394711465527801598920347527342866873267945563693505040515815705893698507947876993931861871061671727789688928176722009465912288293540095054909443220741547758378446953703308315982458146170219792497021863882106564180828293827349549512345212757577694287005599377015131009080136587399066595248050020665024077153577427175659751115602782837268307481578310414378504240124325404732202699818517690362598526361497568523492253589056534219583282248614824398631351269852755662578376781822696477393355484656618684257162235565227013649701840065691772119539948091781448420061566059838679997521388042928292782674022785698027615191654452000178978401576609915569121729678142471246048198781264606261005489338552221047808558238857043307464547145848119555066639858035939427995165242488419108137907488753392714766128877271911909609779492452646802360798901159098549342817841473155055467978091061054182788684561008258977827686305399078144916761337614481608687832619031267790322627793323834903384312743578341587535666698400326486709029033292524560557538416101313798025022712834906302733364574878404180039373743267377152717278537903147312555779840862233032677993041060550516613090234510607518697331471957435855601713853220385513166728789641003163834996064708132115260220640971671858766978717433908917845594535114434561903466381662587830968379960973416769038941362395950681604818165831223323633176815811183396009077364649686146496622227735191084485263511202418751168196352182932323306861565556727812888193225818713074244774937877966266844505364685034062225737229236156381724549593329515372730749276692140451025634112867400885173952840357357631713041068888968514162842042440282842930487333202607186279341885721402776141738626337225539961765188185500805470134079213224322564758364145391540757708096402108020088499999734676959324986347115023345753507032166346144025202239257256972210246980714279336747242657469628123948530852628127861274589124334232228095476650797035845206243857972959272852864355692649488080649688983506344609000952083801704989622320560686770095282349666142084958738076619131814648643159417297659692571239041090537844403108752577890935206801136554442672057262766953700461313605964069430378291158763705593081682228710828602118729201861254319861575028633659149841530550306879735661460000001766100957685547533746691372602254459887728796381497060225065741608687297511543646141698093363757647825618997540321314690762834045325157160747730091827358995211404935474648773314695760247468926172179857097914011211413977863676255265570819392734185794657476407160097072580133239377852186514297660177565934636935111353572810962258872192109223930280603693933132212746084669567707496328951547217285336378227265603152589318640158551152504249042509578052205319552099406820734898424247720943245720815644624393840960263840900108451793250244580914502146874316861280856246084627067578062511963822288437170728907073245440537979479894869586707325333117349163079795869583281699520088730150283804241468507779353557943655262127807743858033528493264210093560768364084414163364683756870368822919811896396297603592507331731989156328405955471538215558162718929302969916640639526279937408736577083949687990037367577168408424948932134732057788029235501001168482491005571401656653792854427891998437267112018997017615751829663064569799934249502861692757219305130964700979609708102583163577197229868585614282219688329493052670237568592181988639975061791125984158321691742649258028279154817025316167987273824112987983624470086562482662010721596145156913621687409583823635865398576295709358737614864964440563185435835539130191716718111300637843424421378172331716496078872332236245778190046405090189021484226423809620714755455305940023151636430982247859089692693815763376542756401411885856676990683847850311195374978678052875495227081351515215700875765877629933984759498710731394144444562969219550489153220835650297472361001087203206955206095381975833133633858260136262558971910175157252132495494682397375885285503995123266192467406606011722391027931279769368471594081191767713344728912243513160065983797905690466691517673426624789345895341368558865959151974511935486208934350325040288128738112437981810177260959243953224510000921436809916597098035273538705297429384620485243304387225124073399082309121700535140382812746305122605807097176023985991162680336455181981770025755734751017091402536385230848658198784723779532748213051952135033564043311766487302769976541071942323000553977594350526358306140766858078803638391803547404614064842111401486879060718540301967877585789134547459437363680905575654613416762074223538936298090501212892798947230471236809921196362923956722166231870104021248712633491354129839191956521156106559319587913406234984296090295484502166547632460690742381941067759911640970995638024932048827021409645917875308041942902692159452020154543605616392115172116073221102722642873303837152849476632325733175392823829898302074834731720348102483266866519025616705376737776808886242077800363159503230621918737937628306798512863207530431503907813689687548559940110127500915539447975732947555679306892236582072171242627625857976503623493776383005118750451386945467704606202106111728202365889013312755385111322330089960462339538352793165295112164982502828005439006824267805769666643373620529488444773412312799129971551273659356566638214551315187932781510080492247872342420073530857487173313568278873931060503553241010723169822928991223635227207510299889129979908359978678144238061316102130668156683795658624420204133631924662054262216070387375939275397110692053402633591432418947404824579467395091106494969923645269696563191086084102085931100458958015177342456299793695317775995510179303378545792817700142775851744764527598901121790876394453366622806927073898740128725001367238303598699001034222241315337393389393865103874772335264225651015200148908272053738587690489219958152562136260728071470211081184474478940936279557185312343018315062148169765650603251126480250286006775994079654767617264414166282473538933790755908478424710663307030721064484080831470402065406911917316030442481392814942132366316130140195416648352727960564330709354448454320059095029481491061422627747349266093659168423430334233986911787773415468401315187558976079857354125260471486264623406914535023233999841981190956563285713138449423541757776831070984728802471989844440524807309165225507752159075688811971476892428337066462566876049234588115876178758960053142347359571303681668450332756565391153920025914588524118440303908333434741506750890059879083176903252212114493489575210592364187799809522148417789731093609187487341496852254248717639468679849967594475929586218583128461430223585021109536892481271704799384336535030728800606691539759364392266950736329059201339467591687625632312416595641705962686364442588317872962879973739279896335606394639670270034908930986107912369927384786359171043290406172336839787651755474463900923161736821236348184296005296408588955305400251076569009977914076204934855361541090630656963027558544214508301522715182952792598653027414433226032654483549256711674848234185916191128116678600286570589317757283611180545442166141929932251870665296776386894298445229991289862857603720703042268196509128074408044635573517862251383638073419268760847514252401126336911251003937447560714958473914641710231732287805929825046244740520473726323702137943816908810498913829588408077763675977428242918407921150007004694513500331727517328383767453248222934105482063675037485302594219913528364332338594563652646479613562878131335749997759625797768187390593555115158753429559644941728058205979838856302671224921107454538195892778677833897566092666699255705495330894345302095827283622471076438036669770678349451492885390177172684649342770021763902655593484511238553454255101887847204405345865925242735290718952985935014831298336310272108499358267324763430895052859011963178633258073098548821164338633881717898060322318981795845246610116157826132460583349223017689839789120973937821209722644009708800957729138030085897023433415042002454767334609886984310287855979302759930741125869568200025359726705028326739258128687639599899252698307625839989458453234060182478830873551503887115244812491778273765048337834328630662222641658618677689848784438071885828244435032644326131274879294242618285756909926418548362184846985378555384092016439283873912409035999003570273009247883210385192399309168454338989969375975940145306796106465953518053143809509603583803452590883246810694013458025714085056824884911048827812670384395939742017205796795706718562338766552735826799088434341132982533804303839491224241488633568447910899343187535361997991934091363953992243495740261636742968416482647191807005567214621515479518581442387783496288063248607310466543777629022989475761884165517932569429100987138231083517424417319341724481856271103054138442950994393792308176829661204842927016835802985580467728769937371020041159967723177537050691907166324946650397913401572190178979283336826316123164858005173833836730408471509226682114092397078524738131063251293339881308118791953695217669615488960873249106525480061472058110973601455446182039784500329594657018737905544103035907372281662618663844543885092382812413420358809208116835458178840303410809234661532678601667202771225300610267755559193379255558694881648058661384264057961685842093645269422234079447958676030245259021660976643055913926949766723752327486195739181829491540864918459635733646977617935319092298523356166480045976771971630662534887795099974650245590377190740551318612555645435767224324419355018508506565309155838810547988142805669692763767793835386876399888012483091060178596150249108669858010629747849336505934479373912279417601050602442389821794709379588642349469980239068977978457668386134364291223645072257055191996698408745046241050765090657144005483526365492664720071974501176470984690970768167245608058864251448853063742040977272849911572396214806729228656557977555081667531551180271384517276930843617063954256067651644395879795580638814836240089602075781072495404015370472035079148205637772776585678571341473848302069756624744699941670624940687124594955503111991894885104960707312305634784460454357207407283688650548889670679274482986642604994335404776775258885403096704543543260129076287563945587906743651531645107472012525824564808247500708522198997455587053709250618294562733495383746830834271418666697448278190652010832534367889188371542051715660598727019773186513680866180408558290630450201195384115904704119613318939326296478167219416574371853492890259351907124734302861330923757180387108633874945487035592792517848473650644103216416118879612264974675286890580551910545883482721069609925273061161024387272450315344820115223735774304822304337383997193910924131703100930567526467089910764693968042170598509100877453185977702320078464851279784819767232243867561425815789938764558608293898112304440453758352610177433087727205145155304353466577094857943291543049768435957713325181139292709288562819652102388899636077124733744898746373361876146457371312498637926417088593578863866850167556329515719550919783893887593841588317191629552397823743663686759670027588170240179801662396672211044682417231098913665587747956654474868380024792939009975045757424266634394927473626545802879400166215253100079208109174800220876143728188028169319501829549605918904048274494794565303657200897564385928759648552654731505417701977790685100385284478695310767786219120365509026934590215647646501103956132999871625644844896438105908641745055018748469901281330405440032418038280336460424180558081076351712348263809438881327804791979945406953761179804278910036898100390142986052966929049782101096350549581950023652196595549366487678325280522269234754315571041307457246930384665091789672112802390418851190865426620037049167354096027921715779777627853918610805504524943204591786396590948116498862966988430479905664391015830033473323347261522024252584804739603035419329056820927702542355216904160389203064579889344393014671016331425418353755611614474391565354072039679847053508394414151577037225893763663129018476377621542681589858767393269935688453915722395652007089314972284141277126369372217134425863758892817992340591079810141672810135599533030408546604164288644725744666427647069121193065973992101402724283653511613481717465558055096695172934583585378450548405975583274871667029338219371064434975607230626659764054846706598080061698974459148454202619981114397847370204752191024640469786622730278977592256046382884148579268951099417019986711530017663127542554234167012194459877018813649082312828120155331466809110570486750180031169450827902413716551384432071990520663857261967913507721725169267541348389248637712552317836787356618511124512250891335430412167010273743726775818887026513012306376235586721041449141921146218678579835370684925239204704103065217212908951771784262490294697910267278325583290272307237452572475457848466888620245411688278207144219192117347249850038948545661283208410452872327820037940349821977209092508929385242501471342362611549408106024158999807326701427280686267885808787070577792948237198430073187264254867979424065344412131688812477063074350069430354527065238506735488853807723083518698284185960421353641776079655960467426980276689037678262233354064597406377365293336842404120729221984797557019705638216191486336415039219268047315034636767781020261012262668884935977899824282883165627071546210867790300344995912656885647011876194520614877458123599306008550836795551621723450671324386843589171028223080314969987902871978824895767287715380243195329576693526383786561660546602158417151792866623051476169717720993735602660027945601034919377283228738496214770227540185330929872397760528120204937985032349090397106847185481931000595396929924831074582452578012299413620005287617198640246791400152679852338013224913565572673466852924921383574338122808366508354248335604524184040552903545798369114153260525321440418690511922614282898604689041994120442973913529160149016686043743118627922960253262758167061026906969723009179584991927083304402630520282285691929942416072659378389921697286769321017234168297487808861802401947696295903824836356294591020383147126205574691324400939611987478533604737311640204813693082813598394803083067818190307049968017522384165303999186120605039315525854748592444204479287983643960682676410364891417209472863463165377668361826756644932494843105773677131911025192659871778590173766489616670642072473329087240470756087520647203738375070338060509936435918125727299123135176208219312304478447961778920383563844483743083138655668631911960946598077870468849060489570653527474412283537119392674730590715429562318203571825534366546570581676157902106382865214750998598179618599681148734718122853418639666989707017460874156850980123830823594947591171349191320988185934401528683155931411601642269968198646165492426013298357098838247007508160409139075361488177125996069660174900964193111642944746271941252398133336872564186953626216168957748181375230117974537378283567562956262453212432065987549720138568164163703098889951452059676005880102807810744931272896775303234277863475009013385241301984167626109600218731986608695270357769486475152967771981179518857860173673540244596679819252986732133122034446130983579569124741679420476959924692347159348164659696661303937552555910293623826463738803673947523072627626212253759985325774362931841336018562678373217590601779554588923526574587628936240756083670261753348541713546180380930034000295086005253234125242050254444916659600749504966400015743399695927513772990726967765203709836197885909476385382151818763211798078265519671089257031396961914283685967198821909449094795897446313248642396188677987967610164325897469438746415344404442698602878737718198394595982339504128847729252858270407670984596553543698639866190397678651486100111522451569339695103337841474843661317136310867689857752272815682989275034637992819318320912990293367415634493171758892494170751521918243833624273532305719814817168523751150971346774681532570796906205314237129616455381499180003880415663871343841936262840562267941441624990642332266168671294980987414896525740821315274095190098694340346650442516453906181023908161497879327214291840476754686305589293226321926729091699403871390983802075225508761790971733749785650654169116067136889033174086040701887056376964561340530327050540123539260625154471304337108002786222254932200443155484558133729914786218602639014976428737494017658194979202874542596360252814882814233180635440931392701767857078649592266393997733900389155737148882239854505674244981758022837752968641023244871643977774964851333612982129962467578978398690430627045713325278965257973165446058925402977264219870803799032827113842430897087748741240570985057684659812989959768623638723024735922308680063616308131305260228603368576965362687356752212967989844758156730045029507917029208215960139397576197890901812206695841586677870930814905530499689352471503592666340839670409954869823612000815095661429320908201652810958269601140730621337927088869407122254899594812601164106867415768455911448847401211530199990425614891882928716929388555371625062205763770887772241117794854752879942513785704831649087387704293600372258177183516583477867562676875872022158486198416219334717718148525388063845318971022048934087248345107690373616875112340290195173714518958111693640489066479324284832107742062336720214057232790723143184672329615668222177465997556747862843048902565394318077485516842844312537716770389645101024128915861772523424636999226062833439288690804064382647820103157983832755243371984847731258706568495033961334290396885386650012409729002698621861477354514878027952706436128906192522304021149707004161153547542614854464729019450793748331064168595678951359854093950563361902692152137802037632703807962730689859478486971666348765790833664724585611880122259392556199833477849460379448866443309194653495282823047385011350136976083882075785795729047185082223369649463686542027884484036721733473328839993948422314910264617661152182215551455923330481504358488117654158273057145031548763118894813721580123606932566413692222960572786312968559896489155231735515283149760180607283292498068192287643013661854477665902619930288189570259965465461662007891436321730160368412280567515855359991365645708236575208139289343432715350310571748990917055645890457427548351868483188018961354587317829001276616035578550157603787653201735526666439995191777164534630103097386742459386143670553513291816358514947969485026937066718178528282007644563473549618537440774241884393376982784923191777208471773624395299400241752841234521256194033224489218693048299203725971383252155043825081652472193257265513122193502155151462857179285864009329128250599395050018421481573184088575076119754928859705390957731139114378250692560431147846078747338688918851699195558675334499304034952376752614028361562960679285336512698325272541687789183699388317837009759627114936556935081072355075056391507190102849402766041244187372962210193524749496832117215445771240180787552004591715698466336180344380690100154868787120811112290108274246106962900917210777574486932101013768718049546356312999142460378926413390588015745991958661824832335791475815345448269155216751133235784651163691077872822373315972144169224692722406777015681676796797580280379305653022916779339918130518083929774462642584388687866290940334667964869395124437137753338749140440042912898186528256277352034801023508180257527796365309009328567952963065637998643474841310418373990183287426584842400608225141846214872987984831399219312904291237910378917781358749455456712256113376897233118143371273941449743061993006035679226694463900147634284503833079288017779479552050643511374810307902267195336023860656824435529781237547623495180441081334390406772592214201501546368866107915572977974480255231900646494352574820003607598373885727405830875709629332911447743050332510334535723243428872597756790260809169451454468043502402877528990162574293245668577333223907554318510446645867956278608491422429583476745509707509941836794440995206087683905346572012849403066572528666447194121455986232818064539963099216173943082015885406476260857512058464580233714406745434921004379264754857657442580503009522945325014677356564440921590249471704906154586529374011285738175881328346546244258629276187118065846891397439639093655971972764042747988602484125728102067900016165679315370705556170347498057588339710752048579008835715267176024949908555196637975954406417877265269658964766003376437904375661048488899682595860208698040765022682790323722559013855491438833188510467238250496415947475975145015487614266619631287520412450128959805756633734081569327091528380173499297192496915130336528347645636709720877025495428619712367479940007045040539572710108021456870199690224181856418780089868017069993013662710089199997591438960514977549484490114175513966790950629172585628247317514173118621895213894149603412878084684650793974039678647966004203554713338161836403775935847716154106170471155636097498242040271960700345196946993921250871748945166371993122435679760109427700064488834766962075387775742038574642256652563923299432511184535955401996178439901489142350655925052371382261677631347170859983973720696108443998054916506918456935853622580236665793631901460843906507775513470824675472416578114050540560663275784284763284145152238949661570893646972353897599960654429499450963981685584643584978981863910660867279087527809539041840967398706476508076976067812967640787218026734462638082393823972360848693826495244004023899676570101371518394758062507673383262199266499961042532542299237485759491448146072976535382456551818784759848123345079428879545740414059018335007452101139643602525878246571322860050362931160806471135399757888136221263136158819851621940646921740740946484720754358733194251881623999199849476738550671065566367660275134259929944098282381445508257734576015442502357932580162318328610266654154795117942828348385950695081391788416776663257030893953231418780896034611148738808297382854026272366775241158332056240062467012665333369018818056168441452736988881502292350624249849949047542722877686823570151074023381085049359293834342328182495431494448070729244186696846125650386199653091831224793722082608542787995666054152633051141446579360613413538864011108524641311390219743153884922481905590626700281116231778937251689829562754498038773275001858314071841251819621697270894811814489898987748142203707220197213348637470550784522113966050063255695253803241500766792423100780792973194374129168068451847989340497842050421524229160127754064913884609404750853242152929022624119429851436330755056925636322423828772502431395311976137838879446822641081674361932431787218124909886859450108127397182812017401018215869335929578769859372845703343655437927748741588212392035030833056827336322860214075476991196402382826183665945611994990269173335301995495738255295751913309021785850673789340805592645627029303702331516868732170948065956502039792985848214405277269508741176255035888646361438096573700449360032147483229721638874591885375252143913939335592180865885657403718248726224674751637777319316253722970498429787902900573411442008894510155221446146570069922392865517554167345007883275741944803716498813421591200700949686508411204363983478253478468789604158945299656882215994828069005527197285262988856275200922955909189721654562864368734088529722910257229137946574285599534254743402721568477225571042344475555350228118124829529306943409511787103462703475739441591564650370596586770587777999494161841198867118529521521681156776442419800401107352941672561332588954733043164034115264069128328502723305614310306965840851852528541600821101255378209674451328653492594501491058846895922990688374274088577530851095968838555856337657272784777896527116087049005616546341037283935019632972407529754130863819324740930397610579077549205000742872859484010487484769134239050590086963491664917472798336718572872640339587025150775613880740704249992369301611323344600230806512368372752476678499394940031333557868759630842427685609692087208259420011333671326739891633231294058411858438089747602234158638439553422626362170431488530639374872790997931220343545918382022427325154122958004644553511581911329849992741577585539161093176213074242085311020784715503979656640845889005599164367445342736150284712639848606307011189066070875922633591868188480615123672556787167534473099392237623582772283922802389028973410511546073212736886053950672411848477913609553061074253767353930897592133700054645336289676917125361722968930302141284925658611544878939815714730000725297371911648967765851612306718442458733001167271705785803131485923636705131635513050743485843935130971503434666026330977895649239462385182442066320154128645224253224861855476250540347256855281861199525395792846122982322403466791893920833945360803148032219048835427691871552435006854618216391298387180340466637519629988333471754678575938361224119357197394931404183079388864837724931398097462916774166510066312715276534132286028372256594094784514710215168917375191396411304730218098436417658755414569676428671906366756582800735425180336351128196759306160655808337244784709974148686180563424464160500446576317437919417652836239033312009455339056933591985987042069581903823840423578312657236134922717243760910204360088732095109437753504599187788092451562014489400317907598547254652961730341885962344956250800792339911997714843648124480338172722129808261226801463057009055226083742254205025576180372797845102534715334163515403573786639087658054692811399678836658464089356421330587904202911428872400008740755317042384817487776964021273354943081679805850357423431552990981787846530802474113898208176754668865627365225740045133931138235012763322510291459463976391519337902400391751199341804498018656484485257023537432904875182293270660813285951494171955804572956539024854857165366950629668859499200869281324966357902319563462423439816063231166907979737136585643302626425164459940757649021558842730165434404330488460033789243698790732441274756484755294860576504326450891405040548541952133165176181509559555492420334629950220132104185465620235679321620240965852914647189148386264097846499346726653381267392018040094235311729430230924238294071080293924326738949682491511594004062099464703945195864621189072881104550141966828856615047999775820075809244165493316507902332625085521151320590223838971740116396162903277227117102585166871767266963258881033627436607407729696684588530520012872186553991139111545027618011705961785245395514626252665843231171999058118715763751268900632042096950444501793090450857728434012993346771549081342214927376661187800792920758133283879753956476045526197538137787036452630864525076547974650568348839326101682538044468164774486791597917013813415505249651608869656793371325458201438711134046125888952437026749815315958099833062206416804311857802137365852694453991049338124187645161409410666417331147811140904061454713490491992620394152652287984683582560135113417601793919085224690268092283612837161940540215352335715329641579109913137922846321067244133013237152823162584979380794476396014514302396506181470230001013789930293680872523603383501135728611477451358137995216039491344171984329679615625940038424284428418277871943442929966248769358100044528180775836461831514767421283792997183075168757865673309413142523916355114182873909945999478571904469810797601159801584059600682384103936619441615651548670767687584279014990153354617705776599330144867373122488169243913355658631096215212672128548401817925084868792437382076928492104890554797388056381102741216669724056923170731644506909098432675446987563584922335239659174948224051767615085394921089981828612895672654813667625053898890897599495523947714767194472922649805264951144472303953722405335601676831141312044462273556123412816660163966062015771253881073120271539767833950602763706742575269719984881312088351914855751826297546257233699636621625754738936946946395398432983266033630055261996098977397600111961573799765189629942429281030528780667181402126273213258167791542983054547544600006351645151790024443879511825807621404507933684388902901542611347745965245016526981441794625883443492544083977110664685540951265588484845964611114829576574339653827925784644301987511918404913755519254375438979123141798498379781605619466825135903692454551723639293469604374307125816810292441244612547663302335073686978044843306247344711836092579314868544817074469243196175062028721228045174056160905541765627518551474874403349662003671060630026751195319674259848932357276217024272117561032390610655564118652501856651390795369778013045172641416871616898280830550096891972959065409657493766755067324012366225255467184690639184277014332733546746817590557752985179972731711815610447126576696770752928862386262509060088995992198517833502421104286814944868328140840776316033041020482754556058834341020874734142192556327756251698756784765520111406579285513603588953191785440910002171902339172392972640464393721525173673983540303370207553275642968605950224406403325119534838366382270768747373640630162029353841800636055429570486360278348518026125842971243152579439924599230549718034619071782283676837030493701280229604926938229349867899565290512580498984601998691017767762608948581950691689980082592930515385549525328254253365123644630605375758125521205725121375495275906221018302911953480604862011770660454589470074940560655439278097085567121193926616351803099906886836135265459862691582606704134445418077483836434333754405245676434233160625462619868010656604843084307654699096563278046988242835836893805803306523952289562298535146419275891980130727470557952665749911738398819027909339870800826239784227323139704217071571348894837697859722077281509046847546578526625246404327808474732672365643306842952352240961839885946689374532591792604300617886725211460156210862361073654795480412175502117194943726297665552429794292594602521288215098295184190075965570058680188875448247910263764971402460765287793291638374577970315928377494884633465756116193672625934409767886946512190893212493888846650040306122325481826471446009707872356083000691266250822964481049906713945597394996446260741237898444003566504152588438028576406566702048104731753607298955924584647562066183019123169429345120996164306851123940221666884888120547859136161209887514181919153728180315965062624006220419111313438705984949364410820294462004609735766472683149375183138222231328234263393700113096276547174583698499196624537422510368358803569974689413453617706835560146271084564374828190588923870516909719440292960679780907526631620590183177412213559627761720552576387778787053162642156926144722412493692890811755361624126120200116728308452683613951029314223228251778337926909833070309075475450855312966561196139830859362307757290715123461440579024268006600871704671031338624136657965430535827539841466991300008002572943790340684281578876552137386408337582392139198279243421604205788115774186886067175138260333621811613275519849657252241237947628690085902079127430870653730964820095426902328305037215947561376081043229270109069920221458707198961961238243399711069260640105115939242658390532823158899716355041282620621985401027343094483198060564282171372038189636713399025556337598991679321823121600275681537730416416349487196816611060891625071277062961280064892933152787796331676464735560342624531657671827505909607800807357892010842529163533304153537611966637140962199597270790136612198061137931373644806535357525678013720752349299516353171487358181726107994608093317656952210869229189661518340453110202959854575977350056803812629129363441549414473279975684465425216439162883270168154294285953123538551772879937161150497698252935478075323921584034096091581137589222411350275611717629445658931404425331097830730864723817713349582245890222491823055299422782033579038146505762341381599278305200791681523572843371839834071391107735091395369101928588547174254942439322007396282879279262074846315381866132422021418710676506799845171623737566241728966039955302160778396877188556238064392047568683486987631442886150327265350873579518929363036986828712723399702247512517967748295230596951446564213744352030055336911451778460092172556142220149399692330883331399384408420788533432231806468855359721483144836028534619098346670400621874271203187413217529297070466101182807997213111478491416803918766456485313147311218378483152416660802825981775108586696926095349895508230842199635909769246665107997116188821105763646553596281672777913368902204855462616621050159993248791746492390322968382103306816128876656926434865464103789948436300090501013937679628979787507628426003452824353665679745856372886551201450722354564474455773877230482691143167253993731261288953191964069253219384138236308064821846470440627821941899541802943230361254032901872369135977183455217339675799474428856933680056473267761032476868418850410006818803191534082610726189005994379054789631803828192640838484878228726403752419724145234267697685341790126194800578534959099341067049170101794291030172950491066699340470208319961383962949311606476675583244567269170790063633292203591357428457463870935415439558252268393355509540159850983134509046401253859262623612728603827661653629184961270557485689182262608650672501880096240029078029393654210833998497391483950377431162031501039663902415180165760489458863015775113794393254424442736189542890045387107261326338281445823970241802009633021515367785251015864603377842195746444955950969272584839661731546117507741932871178585944970030703319842601524043017941895226606669328372640586289712695951710889568720493030398688063188803857147417146054724846194336572032726787974952982908432318372231671758761525973497220757400635953339351489466767259259743021733746621031943216534530224983149053146915503660034004237343837366100544516252103381615976124305069214348535456540475083122282203920827369526206188933463756657579809432590358991195904438130329732045175319429376430597008248280272129820294371050618256962452995393735253177784152946392958182819213527164779104730766631733010790804733170560938328846267675268790136269221566378598939925708548038759219174628371411267871341622485290695459235750293527343427087613618287085444826396179281812290946519880225863545382770766852548311954261303796588654968772425923465636532961443858051709844291426408096438325215578011578386867382251674971068538620164959452783570203175764755571004033875737211402951747166818850646849857209454353968051664683716412489126302761980540200167279681002417779533210824256473179087433796560538569549900148025193504103103047526406487169360390417703760463013064469400062280675910566400866276590346364311086874206780995763442696844127836506335766850398324324979108377831771199741476246065749163399725795559603378147418539163819690421523373692058578480617889643755365272552131184493000838061632272825269014227726524737926120355288439890690517765106092207335648951921253871728285557672741727840149694822850766732497323265816272078710640646239805633178200124477832872932386187046376714528533942846608531675303470822628881273103269954302350970277052616007642400721228317427050157009742011664802383137209647455127186866484200062390171956545077834330455265257873093095331273808988287614973379144175746934077980887123931211474169118246936449265133732726564310136408803088536186834825002601388870814371711106819330377929643468934140489694907021782023296985411492692712513666335624646345837985076030968435826005134509311609520118199726436222189457838461857265736157417519944093629163918690567111582318266620157838069321350512749154212293944613198519975769500633770011395351208285969793874554798053760864383661413514952299873840846678608339206379508134789967871926602138348648165303714498315039197033964871843252146086527878772228733952826892608935653451032120279717970526864413259862240104669743985077967827486955736378117286016730328942449732693063757656949326471023670727432367609069189891151186048775851623122563014673861172071783334551340251986577274122669462071587037098423793913598188446360286581541803064479391275954870407659939601269743720571692557167659329545811634052955310668392351588953886188778096641573821654166897128050278217960344803381700143267454442006560653379799611105426852206566025075281963161772148110209523173272755399088188479655140849135150395682406364250166859264855619314183478079782904231557548775129756223893720182533529310590009863139278921058936417153753492134116324037234668077648132990831493131809958514791322557446257970863379933921587532769285416280054454548955774502154516518268044195128555160948026406587322447869667638139101560199078799785585555811506345643634205460029555438016210822032251341177038117526931469199200305635839842667337604737808003491196002657757452312118973978797570969308301967088357330862239855210065814925536927755086202529798730635678307986765380647742485727796130901487011008814938181666697935003995223647710570560071730520330851424372657045708278670635527071960980658468213381781487861235818506013564789672835539380415792138435255028942018895588250554115704847939572929910257226561087392087431856536740124166352164051406834188412992631592126418650401589781401474916827196196316069293171059712701666709826765307942870347019779910461021164146179302024790625954724036559960641612186063621433670263201171043814357065560279395472772368019443471871790411617841635623233224132381000847955254944738365009766382948100144821493342242306643187145654886323017735191839972286850820273606996421188888185866377714534743035846298678643839660675031711578843218713919320915726767961862592312051591115081374593471352283057007965673000221169896227304051271351216730732489535513417708732386893591850816209010519671807065729993622541048221713891733600763954692372598938200680393425214927204898719054404597977801302353443508154238061630778494866040689491790813887697618856097090128200033126483568970680985606717594847834074416745552285595023333786086029521765513341762218213733367101699700853488659676915804103106898258049903722762323197728073765576652665222047002311271300503182321867826349556276755626419936117361716382755460287180189145335313904515672419092701749104453523782921611735613169919866501195032324447773951761943955901133919196884742939615229734068715598152420294784390707153763883708584134550145687945868604595393777565380511693148408527570492551676906110053317548926448860654225161154005139898084830028913801759647189404223298703395995831594278336622119693715173707393758758887767267515360442798291672818652057929156363983642285908122413287980667931849883260894000778343266314262634763803550556255409359132973428052816685580352412785164766635986903720734638698466392322003562845476379904191934545899187079719082076705462684337499999628798490398114948949533996011686134317373737602673587736405298473439411256816687205557774492751622786731107128577164364126584094586912273463954860485581797556210402209119973562443766816304328502030076388855634625451896805484997463469611124115371598078678064121593574124458895867131201476134517426033715074011627662234404489191809219661316675606732457215253527845453886142605939185794824685920303105420408443827103928286555661723946642403760877783227526401231366580982455489029570041866183660073823517056378470555017227953061463627119504924443551319693635812310826201557085675596045057760871219718441742925453519900125183683804118435550705055183745869880210491667824100967807013642163007803591332133773475095481915959626392139227156347993483235528359102320616440768600352824174873719532007719847918375103641573953657501288060696466727926157673806083710956941553037037286465773889395833320784242617640969003543729903343313537784877159787065908365070758288504301424770664115937181690485815746046399923884961697218155643870661808140425899593663232924795986610484308447286034749522111624764434443289251525336062609038295358179608622767295223695836008091418283134246484223115015019627545790840769006068552620311668363875991973027009112607942351785753177928429502307175927365772099346663209761335028687541623105058875667101922292145153482846567776704036328449335637442178763204967493955090801203368479583189428079907531080296623627503793085811801330291550304778244064680354859532635241123038808445837207673456791886922434021084902080076859138106716052335033038155204948365190670369961105199581721421260673559011416956819892608261082624823136199883807010384701805960824543824624533734874314844652057167800143500305679500619663321431388145500582468411341505403123642967700657644137763157979802301730449963401454549808644476412578933985916695325970382467243960913280714077736561054960995523811001356901664326917838236364359732967949999613251898443693860418248272278696859732864021854448929148098343304697445936221821546740693622108916600594222858541771842814658078101732801456271527535854936667107713066016509384427018339880879148080511244402526217345255658090057832435831002236028062751389114723262693373118053499901738107684858549555625753433136360630301173047641313440994862611140173890172280453142776995463188129233974822901803553741419861608210873401327290533856024513133157956510460268968663349154088745574436510097462279240385804464030748106997105734050649953294749710871799867352479890976148879611481544537724404052394397247912382543038533365158548812302271725186634012832486210031784181004965281562564100439581953362798872659567847083424603144524400515457562234812595903186955277062791444219223848420927952209279393685440626889070322148326107824317486352729201658641491105348245645754587511174269064313773582306911901018711392004893517075351971171915339460036503465895459660821997774345212222035087857299327131714871675864010253664829350725063798507346726984588056743251610152431575461964702510148507743269195700507687727904526118863562416226014094110841132085628176367096527966542576725431681119673031026226286258129444063239995954904809278739240301260484239911356239315969949377018599623944224436010349776619568066183561142334729992674029104722669087330962237391800328080701389609646071435145374720715097806339481737318798141317897938764838433440568162074137444553356852781019401462173363042070016273096432659876982237157028731024431144333282623953528686058106567947785119786690459096835157768758790508349005819662155061242248609011886230828753936511101799945693803656502950338970855402583107615409427670856329680499445675936041271410379735360339727178426648949386563360079551224163692406670208896132758085716440212804483166777940069045857084088538989792682784958290273414966621075250260736201307562871771764442011455062727780330703149562887483658491398980347479956852073495043062756808945396576614266688628348117999980299110944835091005426228261553552397102788662793561467103770932588709002776871895513117693579106774605591156595675217943005259074454458715310581190159865590493575438629436146914552942049146740277438838522194726321941281193854745423617429492921000469648559872788123833329905961748774261591386730059406146205772787783049893770271319989477012299513721297241520215649095792690571787151980966566080076264767436058147527801623230639147572658764149313048065618120723396031828463613238342565374423145466021117393682829828450431973040122521582837880847739817116048634529481905469783228981950586606055217517392812584316107309938417454038767577252812273463745160753053281879896906330946625948966424862081805080250914500396840735363855152631136602710454965740456894428601610721744255457996043755322515847833504214805308249312517400166491360937757539976785034856079347055601402470447205735346343746779763714207397328928660717346038895454552944319700470153686598000652783765196572689313206012653282957254047982700364458565007028871683669877676680940651096670921862509872014895642405348405478468029236034689982601179468173078180779783325361661391676100515818920268196031438023518471929433356676507939624920777673549883357419673525488937799343084360737533742590815399627186814845331338138267770091694815637065543200689319174566030372393446590381502281849154722147759058407490177120178568457464425723741656054351014282680739246840188970713062558032811146199840512376856603441804220457398176471358509818734802486014723928491984705437753895506307317993985945968284752942882381967024813191504098164618371629493467625972391961056473116807504535631698647018842949667145345991938853853027424011820187683640940433449437999180904597871577205389461622522189477926850125724532002542566479353222122165508270492694251979379122383096762861618012180457861055181807769623870396173893239950730492077115586310325617315689668223193539526275925692668300500703404993369320481635977634320748867171519767760771842805252118491761396369314286410576177945307046135519028927907209455910843862210849082061192266622154140891007872788694460824373812953497194312645054392851179564764103564056583844307223523406099991268227699421332830068149284595358973664731740029292804628042709149520878090187020772188395756523614878474210483130100948378575255286998670344742895898072893566035472438614894135875992384335100235542442294992436357545872590306860803086152008858067498351002556463695439439622454794250307676532360038038320328001109569268504162542074011096579954718282255736365341887630194499940293744430586909575811535486796313436978239358043306032635562105031911078157493747489144349355498102786356246133004560451952659687686553930737650621280171333366823353062778766430934471083486751165787647825272478430106028785738286833639530027084881426180052174026624836875853277207294287918296422998665810761370428581636338974079981310484841392463802553695729042593249789950765821709849355796613958233022134090137642434857117724130576469052818366567912249878251574316470048156833626845726823928280162857606472401765638997622004425020503798175566025789907241561675141552104974562639632203845129908993256285929839197220719366233974044699914424916891501895681286988027777149682493350520998725288788921665307172448700779515740722922747199754177465939946350669656417241970711852395025940394178240699532034428655094650192147394804744622844545312777471352755142882033678563982307994049799998276336824034792716998684497400259310503464972474794589568271259309600165316026225340250197063063252278772893513126240848676599677838566888689785000237200438617136851109493474575657934529305212765431870503571155412172678734916452899064317810857098842676263870868412454084170636637136214765287310067986921498994589905180143557896751630014899281636345693892321513842452303769063084699510804692505272130290540175453110082888024284671701783314308702355079197326332128295999326265040479995607773307499872518781205428266920582944611195790933739423724669529205106853736919472827990194740616032701213906249779863770064427863950791623920108891079219234503708031292231395276256899867756123887946731499806634481314052102690039447146181823084911250803588304532349847657675152754873362784914866935829098352709941890807169422589131711641375792963226932729873187640604059423919298970675374294759264377303071762811423714643260238928810659425269185751376538117624302753392164985841361814740172298800116109399906601629338543745583689859448214373977442343886554401112791175779333029449953863578873058176998501127511684184697628785210958226550046891691187182553702857031086335068508984315944446045830150917633212478733684959404239961484767554239093036396860196766417903319568568659655642258982855018935627634025821270158736192549616420812065576690461124224627562260025788197520992039359704008948882667260161795859456425113961341093396713426911515535208158386624666766846746094403148274782415397581365796456610986163931877009370948579801927607344810651249407593133389265227372435866602595330006903729051261046257164871689497819870778223877552448704948353164194081766617079544115237405317729396771848803310713908058128135543658897949210052518378048889154050026376604975598990829610392915813200591114886051579706795229979202513949728418437250083797791429654849806175779296225383558164404491906661389329626855867656416277152962392368159625959888325356833233823210344508277590686000625434571741474412468808676107309229001311073457519025886082273876855890624395993415597925476662883539354338879048265825261241649770462893230882721167538866781406706060935101936427776647838293335537850446085690366154197141215425658355805014598001982432904945667969602243917494114127026931374886695288899706490018426319801104189031582738668793555495174880337271554683112140582007105351960206002050057595807662679298669637412013964566477045243965096422754326296428911129450310951164963042815064610042644414329194331232077449773399411078500481044818065220521830528422711663960164712186191078775733394366947127708016803577102180628791764017158495881670440576616195626603302436026613842138562647742275258462439518803053786720652290819552769066098892002524157986333922462793068784466338231729755836711377434414140483335828476283485075717921319923451875980819369993413317222981943153743242341470985269912340765173272943228676812470047263269416289274662633452647321029703739562607598466049890686766749462014907695576419602483012252630369365720666390700030245744853254305184219378830694351636259294391762559829652182862483125411620314587193106492586572604768800552397564929397243366761148044016481099358242989395177845420227526547086739415307088965720912370707337914770829231974716710808335104161683153772684693885293928682978428243418244848168761430554215026831215494561196649573175002158763217834336360679910456505708953165827779698249485182615190384320709668003121216487719457395130193860936478408324817707941325955871623749449531783890341509101214382663381525868581351626993501452075249053520026974379747856004292693391004205040168279293897664036903302522176196993577920835851800261533348327027269340647483729614026367516723059698098841826111130065058963882551515812382583716570971469666612689294916765305054271739931046908046562446892693338442854367872947224959244127206166904302341322218599586709876662780151962571711713762652894965408129317538209115135981595072695194679184396650669786060386552934306696144312909558137907881232850343577783439771824595380885363202288882973859713253544604284600444310709416309335187165414240061577145053562405927406816445001391601761170693103473049641341513714745451782862237237480664870180658474935609896697339913156504277236492548493021253970201192776234624838159249422056879313584629268320534189096733847889728213328811687880480704570145650236400874054546278396957687260515458923186045403818543623608640082077379692268800451901155986461346516842077799925603650436778785387984333133736523223241407223889741384267112477280459546002215283939996134163310796616446074024911322616055839572591919993257354054323473050769598533828023514020290954552512698123429963134992376588664537354835934928474512870185868518557128523109437344705683431524082783390590068704241258111784934235486708120053761301239871690181400465717445282031350385725041307507141430147109411411097934383435261934127356104472526964548863710914462185363599936481161945428713281870050423448774889820811246491639369129824410061850334786323066394085261272786813227418939847807302708340529016015509256772908289778818342594935767071229670908732279172461496939695647548318597473378320143787062900281771782710671213430845744472629850346022409672227498881137325592818945752428848678951139840859525847724138301671330376516213811277691365993372144822888895473179274852220346577579931439828750889610528494835830665283676660329560042481889777109756585035589629038844122251190432969439311308848608585089537951960389867432455455596111524401183108684505729036769174542898080639140148250080507933838037723166470594069790025953065181504304425872787024835065660493742303245719428327751806344354723230491251117669455835170506165969435177218508441326690837105599728108492637618015530843400937291203923280490371034457560932131723577917186176092428230492081175778323797281849747577913002695485990393052740342875899610169078059944311631707264097158745235712590417421589700173535276879708134484359057193383178659464555409605157769674290963331593141025789703829239737940158993171780369660156913576173265156275033331927851365446435350446715473502931938656741526050859206207025074908136249248442451895215484534958126452095727355922063954013667703595007683548052289820515229628547192454116734335067872646201762364866825723200388155488458329797583628932423566353043649121799634255088344445470605209195376195189980422319499198595107016227949000873369064708780179542632683462172949486196239741631088864151456998049036657249590750391074255703176224612454192807278132131917667463032561853908611932393478560935146408795948298480665944630492855473429222817772961451110596424361272726645888715979439436062989010658935428199038915789954305392518604856938133944389621863902664907277681198799257381070132153853463769699219943681547189672616182577492102693657741768308107818006498191030148973148515672136692270883762106873338527381524799629139653493929257348000540280124248335725747277439763018596839993226241932067161874531336575905944319601252430084456846696731061035315956230505417699355355045754505988183102816334715998096202283688770801862761378483357632150554154934280400695681427650091732350729505793183841819638624683106958117345514952676156970954202976403308484193955264006677278800303646885260063272548350303440324634443057018360723279192884755151049180483905332141450674745204651758754804525903339321808107564983090156113782552375258135356658160317007517306504776426335170083014807564139726419468253242918173752695327848900058298118665425881532096582000795938222443645210535352615050865306156538440252588434899468084408044072103515741032572976095701783122812902877070425292720810554697409448954256762031242361761977697952219462616392561527079059836860123517037395345737825788477763341076003254647924043759086006023828766436452469100049457634994411418433266369472242842233718017299642156682694390365926553970330306928867554029416909924417867143000201755646461072306456376549930766539529378853285406864470072063858918109982757483434480077855505404065896808418951144776346865992856692494751708039487861169746514017826525407992574864513026064486314104416262233688071455661168025432520000750672618494675437222869478521001718731283316993304292642168551780035990916201648923611711934419740411956173925482815524437735031517141146574201502646262630119161375402607704232375282897741414397761179229610728044400811833083750314075883249574910474563448538509952131020811611697569342695419096303769498940829276817061742997072761760864645945270762153706667953317658060543309376447789782238089961772965418509922242437899666096182145544252994780108971872548761739543041617395442273875556997611654702400072452339238151136600293168957704133977252305120305017743360208545555008574062477830852565803145905694040955552632740717221980078444248653922407240469896692805282261438001382279858024320140773411222952922503786612432425268323283965456378021445827728636264939382664094425341273851648274890022009899023273601163952396959174932882501062994714263159478104892639727275884711725742263332942844256381904221959142671266654666797041183646341241639777760309631716415812207517713047819757109693820446767428943381772411520550007171367191800518499610717713238224426637290891869880005731836236854210473566824540785707251205434012634199886257782517279097355371819748270892623940285039686352150352561098321858173657804882101730023920563208834175281579991924953116414093338133910174009492559442302122904515561011672471395046954555566265662735928246777369977235817761060337352254367699961960184124769610442849295671551830710526122249071571066412586641376938322993857359014518814642613664600988222203028051333797664604348498099339413969052003192111584216799000212139731656329949311868761459552268698305798838321047738175914538859498497709563141827627865217419900077323030339183160661871381011163116913810258183207915348357495482399895464936928807596294488948940197216556027251950765717661704933107972023170052086190165673615665739327536095962358797503295442718895873754443107912681429119249017322040921464608090562906836096974266320016251899294293084000526736882269640404478644199220246104819760532368545702287656104935785213733314490444315294856965197788714805107065609910547512472511047803319939981630054992581654126452740168419104197833822083327940792210987904375814349952664855183121960351070109824104650216816393200385240510699387072199518733933136139168307334352188517804899573756853260545427802798964844720723086141818914945434110294787174811054327097091237565335191913422443751921082015399343168723838032046727311194328976603832736013705271202212847245351454032080827454093716311519042068952996207849240120259270835301499492230577947300708791557709954936203588133252361348397867275494694805185864249492751412174467823112258026703991189851940776240274487535284331971396170949041679263984128689279539697257176291585898600328198905033784015957613377958491642346136669344507541503643259187856019353527189077433831827616782414357363223983366383026709310472995937823428815605196208126898505111059395537403574474142265868862236204999457403269655087450972937468839170801002009506074175961212392960895685237152630732669587399984820467115198934805670058539217392600693470095738255702544886878274119542753792344278597814485993147841324515643778310150219228427966705478640177495399159520961575744501324449451418518606925193716827685237949201975483828227712452119894330533785601789543259780690799818008085103769994998184868930707375843624188719884747656260928915786442075719771413363089127186464522513777758934736725475946865458461813634961638608947263001710552620288472964070979502136856972855600477925129140076918690957446473382990987028252615537665279949441434513595596368004486846625748414365352389963038503872859966657213100591349837662599988192995387825180666462639722097379105121645447747721417281788621449346649838315415667442856022236450356937182936187234776683616814456507582353281805588290009693379491404151962010854327431654040150764807758507396994756848997318760923615659882960198377612807332882939806626553796115418799710457082840820354654733149880453287173283260529373624359542911862749181601495233615177742741105110115988054910516649657756702324425646691734841170837074846126433535286950630094691149169005993967639399766921997452619432768967785263607206190503531037994823536012878553996049750109480358097678243886622189604419250936629452690228107577399662421564558653721993417245227281594123020376855177113280222759441987919527365347443110458283716905108999145182733157053710683954913992930816367014524489820486908533982462666906212486751115917605623377772733372229835470817662366813410361248570603727762065549533137564281590373553715535860448446572581937618676839554561296391316259940746812046878764179344107036689131435786495011887348276856420130868267955510946793069440577471767798183955214510194584976617105062544821866345492138528130360996278641830320696152051789135263774414365235702565406985503561351794606890460122326938844521799931176822970934727483904844823514080865155199816767337590512865392391381124213773818012076573614653117433120418173207969701879006903914076159923930747813291455122975974955590029010224904939453403396610523376540763533772810182444036364872809856273765243095619949081825034160160266064759952482746947001142233369936550886827909061040700698199242447581606227257310844698503485054617912442393145850774999034852652333275707816051259534599899938678350722722540897707543550179609440569318092642029075925024894045349046409191752422998784422670137102469529917049272972920913343203598998938675597135177692145473235904911358633999281889244958400995853627466354713475457015408468828596557073176579217122135688484795113394310026221974638880931197292156423439172326746343477163469613741215001727195784010097605954042413939037819102781346456081092790761384876666145134783154244292332900558161860356758283566237589441733972459027389195120522997834329137448100122420330617184662399763936562794682706301079930359582987886193146180014244035079523014464165409862258903890704791758319004112836114883369433495556432433911957487461941859883588312825653583045358436787113970616803424372767326536646800553983764748949701903222843473475753786952102572008688899592942259531709281021848555909327033299537555078724567004111985887614297255447359401980353724341083822188810254758869077067988758891441345573435187190754988214222764653338849854564784329224688041946160122654343339348339402221590974979975783808381269332384692924779874704813916519332438847617070884229647507252452623210128689183390516043043069987149841966269035131713160050664801419642000594539710042382102527948132861069583970137790149645591622303811181043874873140009203844665456359478648410578243842887527170709873794901946875137849926457399874886756319126203269916004314850212388246851164031591660588059952598623355711156969992292325880386590090287181678306319410344224076875776274102270019162524147259962779841217175318382174876799015548853438450154057034686918380616745901667911128183225844437678535648751636116577821477132516068910392364828257498216857967564090451790640165835787699035478373853714379168565531419994917059887553724665372160488738846146772447484004180797224854272156946003514180133467459022310095927543832218725688195991322935222286046107027992983552084114291968193018715507723865908005901126255455032881621008674402751580795203493314395357254720108144061347115956762416448442575925135693933473108494728299780869733412261446503820534704301911495797971378190447722774670195188973394889713691479652165901752351400917591594690442849254197977035129783070477625371750039994941354262878425015113567332121103347712515892815729451529362972998191623309527053466955770406933757353612253542239514606646600576407839166764641944919686255022237225668377487785607810168834218137427477288850921209379416122041867702143620988476396086009192921732599099527809921321177081991710774990325667245332338382856228780551848948322446417998411024547625103081220498950581134406058203155222463997143506971937125552770763311813345929603554859897663823704926681277071381214963378429400806694408645828918646597752623975681649257897761575766959081649209333323127170639737398959040542631071942590189266982856261824832784268063761845579303103866735222756750526764351754504974032483254597530905248568672400252863183307499298796150124661216845273163240385193275393979010984961713738510459079664663898255959383064641707325572582285079126315795405743224345579104942810602390585513054331881562761007519882945874818602961103516174167263985006617849359239770246542366143836554553005485504852972874576260487799104829548081184819701495176844615721397826465509166489308211244822359738277382335772727858602258695580878972204487445306031957583242328025117036457955480624483892713279633839065891433937904868856249888551411862879103961101562259176408423297372446774188173171555079569494453368996245542733516271758482752551004968855989600246854622300160527718358314324643580233959104416180971116228680484959312324261199036579149290466648516314889309310381399857962334664221887240114176729097522972766737141992980447071222692851046923578001497667562210384497677663956734378994321882392004305985607267665721253896429236910265317233159777560282187737596730847244045810632900787026168659725404723536545846250825481453970910702386898615635045897451818362018949595627192100699864073177041390752786246951400977323208386757864683060664501240579079316555654751936008495635581842048626346706810339668793838462564771419699773143009080917890564083750231278383199356034960765301778703619637157954728070474803583411513883937878834001772009956270187008067605814993950515144111852941696264783446292503349867837273714976571771784261595555717650996912385873597066948148163780078366050712670137103223244749301399872428866283757941504399836564094739169775788501013028692478061662741777816741575215209800252374799565952962032033702807720251425664361505721485298374773503981307897411862006343271097765029800361539523938608552984740144285495827781062199680920239862553075318523557999140824769244540951591360105565876830469282892574029704545830535541210414424035791447328044932440884058364130179173597866452435120243584193627462381669597451977451661589034813956499294948299005704924563187177772516699981056705897142192363815238493492359321580565833861318776659230119905135700235543473439590987228741713873506542792629715454708358787496116866119042038644878892018473785670535234152404882629470306804061717658979201918560596147002756505949165299846077993471469807599949926464100882796645899399245249825153125129741281737417387303927333801948619292994405379886561302240832662819349324905580562450331501872871292796848404731871520353950957980779476255939563227735302144783766302919953080203588879547908585427620941780260438365421555007870106665626756559347697548533208823217979505605117402682585085610030760129784717671907157867142664711989786905068309931021385720161871072789146321044378285084490917553308314832965607232320150736801060861544663840767823078015752832839706284110494172308776600066290486895863346368994957499797043254085927244285331246824184567430929909714375571818516311196334679379194340883343825377082999223441896876482081937465468819001898449553346451689841118543206679249270138139434815824614963154737038325747731148450006908767442998264430430394702473392714488303392791092625040036854273746894028806643056094289459997449359001621149167923512879661230120278321509130345326055880720777602056208333691126351450795970414539303608020957259198353928354963566216918928990210678664054833897126470719403038301676522058203902907252930234579315170343371968974318605171616147445972639596925885978857632268629750932367755466566774136448509648691896935761304640400019082564632737100903760139149435492542168730230410158822784499500399646599268935502043750861013279931081728065070731694440226118806200612400692924934781523251194364884610789465859565271161566131026584635157149437475035776212422391697062725086245124218221821978691245939660270406417902974322163103446727651515999586321614826878988287085610400127019974292306129210486436434615041020969716117962131372927830152428538555396231610044512854616488007799310470927788742073696868538415430823919561560559960264643784412282766639171745381785299127499623305756936479029191142617132015751063090060600912295589124923843526900296466657115031089569523250915988240265819810389240892274310387094833979479749007127261238329548841305103045056707594887720808160493347158215714811995175733556565693303271621155370660096051310089687590404798225676104204225320835449878292399525593500778953300969925060915804220756699666366982392239374096218932236583146604526792603628371997693772246166495950091796414156629228577592833524800234935387441381403333592500048362255838334653564516013379175896828798105051262432231856244964644567049501014507646058066574092453112631692653230645345572568794247567749907013941802241898173611429427663202168780037776695428611187339684947151402492399731315094276983160857439239087636474308160063917214668160686648343024073999203106183647720726184381799414312339768569096297188304186584728238818640803683668618154549923256745795221869214966104955864080178029154856748177039161470253239113789685194124522319146088592523902555577499108105582086520215392547635117696798088344482139665569615736660990987221455092785692337407796845711740936451173897724998537516375506741714393322498914862802726529138524480317784165536334836522003386854245408884259450705984622041864617844345018718102166678196145386935522389312714524175472622506209085873324147169028999833184416050796868358731634060267817253839314869040296207042647241832637140392949653398440351788918456963237110904732384309277994356263470600580865445689884233549361169348038350990481042440610915186816733526630684759407143794189789084510211583705593305646665948475480186218577670574148715551183309681129330889659451519678343100975252113106278699883822152179488153703031678525445774110401827426365657039261290584057249416174711281715945669365904799692754605053051155098696017286863581850393987582761970179291209050292962006553268035150478618025721747508750801776925074588713497438058673437183871988670036628687754705209213197060995962729745080651386933311272602333277385026730419783768915018996039722644320964689181232318520160263750349802418826967512558376909982088379925979332171808352725663555431892282138311660690170584600073830282346712585432029160358457245609770462672490507621991926882894659822412456632078520868396210305994557962828996776791458834010273609082179230155301486802247024708940072151613522375117128371305215286719064473770519955839009159294413268808397881128674205449419690809958799674487661269242714694415669733976969590742938739437314517341527978692221374700395073292659746073550661365380781605935108901911413176801879319561619490224398082412119971167779384838243177363156594518008232907684673196130860938432445913051440434625024568315919614651779336033579065385524822942628635677239790223079870788898831176038610511269855882971915872192194392801242301968397224810576257812155568930085880838582283811728200663217012099263988226391807475534199946840951857108429154838037086051399167299977986225109348415521013251032259788855304615073219536384034082947126686661415432048873219172742847717273643075668401714060149320850508740031096982905912364646153927626661843796711464035277759539828134498475068146780660467546748129067023387823869860867572490675583560093984697494910206409371368268827758673259467228673266415277565567951571689893508160588071282905925269516721959078646509106919607169453832574552146819225023422432333936860120381866700534441786306971463990237701767003041399909410416720805674761765021281319711496747040181417246464781322061658836994262074765308913851922388294863266984891928315400029699204330691838802186855507886340473394864535886291150332243499852028374462670800704975232549550900826620166530350268323835387383311567116341251261174197960667857126400134604344540892970341361909297136374267301591566037262643800691033428897972917476690494043611112958171391124298359525580118392235414023209119563463199215777498061735412859093952378522943405337314474135460698916385150804889913651465741676543224988353989079466031228697732039831891408498726809876016872934371993430732207903348864959985129084514099798509399233051487037486602138934206109435818478536368979100651055536389171433225470786964985193362432057966405246147242855376181312229027228057469197756405969809301850567015421526800264272073584561040450811222385367831103771918185774880864982458638737910125881236649682301987423172618023803357484398796182714121340688719116614477434391858462290148015611621928759227423137617586535052114521777457682228116764972839485478630836796883659512835988216514256909527720754975195279065551390177325242360215837836707436082345102288413600159842197768067767608526078347408241549964663607759832252432675616850618843221406778235308870799835375022054667409405862198599699471199289685035725988006185532842807698802288759374650908072373349337340327478934503012932092927333008460500292043078960193569343938427237198455361323320014635548307455833910981419734490099951450609819582890431473168430091137258675022462470124457484030078397717255495070764635533203178271771369894072628329878982205951366110773314359150997457792416558037704557627733774219496434111092739828040903803609422759383623305991673039904210780719794615623642957509557265565753643402881030626529436800432042409360704091678928174687893980690057118202323412774967569350114538553489772194062391945787188350882196573624834714556939163795807153989719195965838243595290283513416660388008958038892233078656591417611867301453638399613424201268232943088257175180477147751386908325794553858126492793063406001256568603841745204816957225437225554818273588851240576240828536647310067150963218711842439123106746160143541029770687668329767108922866599024883628759704479510390859240463296486229633392364719632908001351906937826805896362624776257567953835924238983590229939074044003364894798355783113157740707715485288128508791599789894478402251889670068321060872671091260459122684063628173503188787116834419247792913108220132621288005415673375074554991668343051543292913738762122823604403408106553879104665730541891084744107317460602173398791954619991243715701957759055289879738301270018451538598671810098523930644117077877929517264241723033842302652913047300070296361451281727668110539039263578405327923491278034348812544155003966912888322569806911750083510648316915157470322233303468272104202439824387160649761374617247261222915313753503033613582823046469666877674225404019001550133520420903973690243591474045816750433830858968630401757752933494212393191762007840402303017753323049217754103049102133142380271270568477130838106348972053872689063814938781364459559379463571158389404934412557524257646292679137401054769848336278309096251065332722069165446267273284296877925444945752089905200875642301692906811916962123595024169295663087490538226467343470096626373079538373745592523474246418881604664325268578503224548099150803672921941401350985873349235049210907293352427530107888988946741051109762328701713253735943184617526418510223236252870531061658376948498174978096178708110947659040363348417845733594675102657943897564299851351777716397868442251890804376327382491349290711574035956600620842127587378563446509703662221836504527854582836185239528304795420854359190425548543753129693931340363623737798254559514915718970987070587833602092200205185247688693439814092177775034472119815302723136391928091713910596516302496805191172476551181141696666727174714420158665084843047391469542783200517137048546479978045769870025837203490276841389582109401927852436127908231898369482930527488693668089403798369390214658975990264911766845369948299625960136449978295208348230132351355417145843638471544212887862880181702278166626464162341038109419875613580095108906233310514334620802834794651362062387224694534716759851973124788375713595737044461088810435902358503121247825670931367772808965339179723134368619419301228643546182315551869103270249234949031872014038027219912484021832486161472117175408723679807289905485894578676255273240490271720896705115909277430682180133826780410770137291887994927795211865306384279528714111398780439581893725109174046085589088152432762982511307635516890856767050338511555420912211865723914734818380311368448178773787642694268684207320008067413181057882928029253288390228349474582972460798513463443693025142693003350480483947607384076441683513903161603936480338906263739013580536945528006951763111940872928073067043721396813699322178240383447838926683282107857243168323598566068796034032913586040480301934612303082664569229947664763678694890407185687210980041781409308169485839045885223751785395350388505493290970531931234476481147857848312522996825461091604036264649049724669118061118230557991943872198872313320047928130282615917681482121356364850330965241279984221303061950256588369944369932393737270642137679251327235334846309874065486522099157006241971190754062585861508629140969628065641079228847812743886322688173991786518377060099671039005695273108313461223021942275621075994130387376683086286359722644644479662745593965904547928423236045217923414521396124366985457223382877429037340566149282986963352315755415363157735545490896026428665721981776400324386797582717277595608512313622819067202710605124996266666925215418616260376303608761962518850223617369152738470244596392755707301261242430872039659506904343315210512474441633820425905468008915491860031123526147490790093893942272316749129282284796749283636152565704177326065562678782378138392221585574348592251882953743381819858810485442910478636979411529298026686719599884832952703366987712944660707101923382242487867599493000157828468630779232525567444076334818184994519597598449801285561353523932670737847929337547283373364294455690080499249178924485609363744709328832039880138898028996867556934006530545980795446680617978494974868416239232801217975826065391101308322576721175188529585742658075017385629737189547312987658324898778171447732502025979834778149975262811336065228601682750650778826859932015272046899008799101290357463922732029777928858891718320226919438222261802598723884842827682342037114636059006635828298883230339123351601741958235581204939477854332530823169129095880333996741508866147253459033046252335506911265445220519491237512739744532610470563422775398401279332527579634296991488493351268393080489609882699723825955064085060754198155774873257314374792226715469094716553390483113046630534199277806082557280445100695182253733860489837288725797574933035372787605090987172100793682748038565333298281959850512185008854875281954163062428184294433549681297117476537586024430658620135522503929616420986921869486750313016558226622154451336636536734305495444173428926436628166235293685674040901696097076881552810199047567444847916418503354769907315109194750011411865781425690824714659445975953140110630247977352605134424017315125454253133357656025606219117177753886279846182095736607020591008146115535713201576302817669387019662108232602134793111959327004898597273403466708491424505723193422561566298168385912565478763568795644751842396025060134754116655711781074157167542604293874939224513403429266845303405299378943887313223095177820761136370843690000102836748336580893257033506954907207557292783322472470769661823544226348617513452324159577164656956808583352174333112995766990369104279759802395278747639380242876881680963307871085547210374916353589558984957374939501381852901275754165894961202551456959478377909051649565316009282638808477255059945211702889320302363228604920302974764534744082347199281634302864470605920097877136123862287580161218399375583276051380713928249886413548686435867374554358691008876688486939307107539577819770225331172047871619774788851119343578726718538909885700162469961547251124616961895878576824686370589568807137548563026955512957252731479492004011634356692998284429891470906109156836636400480655388828368167073094505475982839749433877796490826144441168351958757509990019032689871551205899966154722620743009161897590515456658583388454825945936631588734856220529510193653041024082698497854807111698570503161164260230666448135478531326884146885662992960294828369548250815878403541210054735089691419898026213500481660605625754150049142369358876809898320433123827135953922079004367134527916786952558547402861097700831524463353000041417956160042402608631098648036583872180977810512239517027558334771208150979242839773092067115975524361222313196786151407440671126548719446928935268690229010773672962404630287206581212193503539152338307357569597204075541878851169443157540984538221199123038393167028154634237982363876283567881381511269161297385690219597869603827900931790033243424747034910528030589485710667781058802439567682633435317727853420020185540066095484159628785042739788732031718179174382324414904588028858454534653685827218177674372210602401945743688214785661166819162233711214210443860704734148277983643512805386128344935946329883496906080446223307569166676321978204722619233287610973237670435383321726518363497957702072276329565509431575892020704183868608329286077918395462227699175493232035208017536046176349061400782175351838681459484075995511902843293544939811075111284439819995184772025775463766054408750922761299430562416349253772540571012040603254961944501608589241144128699571526586667622489619188082225520115016319407938877987882079300948034945567012731876357444945599923930455642263049947293201019295845120264356047073284328359271019257428058373443476838936859581312351249045283375182012215184211333923974428760892149389830400983797280599794782010922659028877205769720794339598489346348151185022724059222260333412600804103600968580977172442340663463988407658097025807766530398982520593561277827139835680535944202225007692187602681659034299416947183007210436358696236840733864743696374607617453780609947044778365455453602314806920893010856826315623985218129182280723854771528734460691919768999675289371296931044715756055042598023209463970599098125539801582770790374809380136895592789715830260284354123682363324156885805373600695652099079095664688156183390669315155878834085228239965158477390267575952892817139437308525976171152856991156446520628685290867640074692037367407486202296081498066010826788329740579368641991012936341415417039309904744769052201364047740887623226631771227955509650294511326486724508518894165497887734888522969352751997300219079029510995892949865369843454516287321460079672325392367017461845233198584204920194771281433895420691030078904188609020772088377852668597743976970581721700144945572313420392152063630411275857242875817900353950908777256900976536587659765518143082038445548297036615380740176995103494486575470335423362084089142304366512119198161383373976174796532403859064528456867996452688677679099864198471817496355585948843348789235255379686825933864902001160585233049105453733960491656546185999004977066899760105834830352501567594981035205853418587864221385342736662967004137671386086552410998220286834832617347083539129851916144543560138423153428691406924589938305474810218140128038774618646158534547018899973115325642499823714860358303451189281855685080608898042016380560151864346805650099375729019497728528477555008432429925776904322520136093770715361045374999496993162025922765501297267657033584350987758863014061468652074211982390024010683732183314702626442229015486727874691280578744309564509561616308975414247548350814129270399396846952409743103473957972444964010783538732313097143943132168396353834873990137242941583706937187414164858589013064259790260680122022412035648664996371803989334319537258243928490087719734583021533022712104075731747660037440091705617430413121381143406517335086332243449893897722871616060846787692467589284384350709158803878065211427291612793580867192924406679071250286714831981678713302095947645108097807059917261723524506688386219420077306063631196594188487728564206187257096654391324489806828062108351037067589297681039270055200004874371924045159861167663575039607292644835434573335468960227569345977654389121734256711576825553303165932495602053656946712884527195013510579213077864212036597061609336292667202206811730515036646058003371574248303254441161451002265138246642007487367907842148488567077662165912977473854527397915779158127399089234259836792445725470878678023672126265875092949562484931094612485034572649237007181737205105131787978675848568796069584626068244664144594107881009698265118462655342666233425978073830020479434812115975739335838036911435946821553219942271719395336830789762092036802762388265125403932721418102395127675553915113308769730494492933441846415638756845385936601185141291378979269917543286329851306633128012263464713353754579600051534062561403045556495537885812916521773524037878135681936595854616870545903597766127648501673797667275215873551398778419846726144952192031455682822685308447597845932827443886358100927614900494686384788403644597492497211303181150557148597459054534998663193369844393606252614508932472571339387297106040177611815572352190254526562941465911912194589034233577728443093679559984917111375166358967050011629524883845112815113576613037838278690229369502769711025149150586909511203596351049718232575401040979623503145605093842254483236749733774234982076926712239479359499458938893843750097429659029023417820343945867898963110690451468108887404973210178720543221845952972638451672719804275960500416998474479068679498946415499996540780985633762543870665491026977971701647022661553247966552355491164231299724653461337308419520401428275217289943810062831898627597299131378883234468340393585135681462405310549398668052114063260271420913421488966310514612106230646894104073174173758482286087063355242026768029954668278881665548380913466512740315539776693239243011263872118559707754382783418090416525451193141489760791729442944292953095759051454152447351177467225846584642550355128747137298631166737529979668442312684653651216808063352698488213059870544179347421188342299423777307581315402894108606691743191329496012895109915533889953650257734109975980501569520055925118708733793331999388206933433137338195658663301248009234137206081178134448189249685597171772005322220524459161531267238199654575081187853977819470020814484861392539110301634313029229649595764551197833736874694055575583163461353820229855971616358734083893918812347248434233897036108465947257487473002803001135040283151981696792175658546697575872609429532379784125601182739215074101340669482022831360278137800538734651634837602775958047042001028013676777528973075320037606727387383640659348816291612410518566622889980154728371177686352044595180854095753550070995133207771412263398035620321069784708932412905333760455732457307173978715575628120388062197503999378821046867750336616076975319081627541439880299587752071632942035455250861743827633314775689033637216276553350450867388796275843813518468273530700663439997511350561923562113913202353438295469250767615540998527384342348562396935839208267622675373022560530512397718445060386768513301234513926892148924149701311368557171880485192782495253702102719103164454813385894978562405399651087837358082923614176823910544919888788961005707898548269759683697772548315913570411859962372432655050367351351772100008288803507049625401329730626401364304321031180934922557439682430641397523084133897366364155334576260598100038186353539555601927030628061654411400661493596764660684767736859493769368155881421534095975597291061766660821718689387803620301466553875741079425496100554159153845775309952147962924330915938871033739819244676225070463378494808675687544331537388017266561530422771023865606447210498109446712727650156493204534849782231609371341874184839522523535768185672439762767485371572307559523780782885714356065750621141755247546434145919433614737216379661129549316832435915108853740232438901043562202024573327286671972764154894470971669393771634941178994465792211577577684155652901482501686685140845498061223168450986616841686218224344463700889844862755795565306586718302540168405201343007480112173976089106644411744398266798582858404097192151153638119988382206430211573969592075729832932947011650750255287818404499927844246714605799796929550301916543882668383789019452051475939555263493767676384118434584476754642937326330213269629907134611129714855680139009604081836283224828000275958807477080165024366786654627752255302329225188582474324158398702572268565281175785386603585993917728897211430746518374037937902857454652084614839626775761430459477355944225245290274401363043231576986193851752706342445408625108366316262481017358645603355094491398834145432358534098840409656210306718907805679174985670609350111356895663494385268311827752846147196417440640791029745642446196497818632676655453803796309388776098505073533615141066825977019704651150773793763192461539940408540368301321229118056026372505568943150786223009643472669145600185804333556511804020304844925111465301146763037811740541713336044867417414204826384377135782112300458752961562774643363275500669578202035522466129147307053591578615605764015817063441583871680539660572457671326831046305830048439896459505221519317360836843710322150325447211616855004081236620357971268177807124384558000367627704833117344398536428084665563229594203624750237561704335375223829101046791843401173412031283432842061098841848471197062934595388643953802442020461193842132626554474119172453517402193773636089968110355033921509552499250588697447745072976116749758351847123068292423177784077623302198690489399750764877545219424939711669842647369566931142706702317906931951000998618600696690916495699852250634799659797912898341029552413277431190171773015514853033300680162831096130657103703932417748445748664131138217086639142311887806835485146193243947715619159137043012619033906573273726638224943444001653492876206151083021440940317966945598868299120795756690165357203473017211456420880861142692365532740983185871278681226310436264867701610198224770504904973923263088804613721597526088064556738122592642003178977864601423451574376064912172695526629310862049211350812114530971414294011476212651258551222014911608956424710773116234284070990829583490793502486354314521282997382925613399873640469395050868258631054468213240795386790015030320686400626460167937263763065151646765928145488801437934293101722618668605824804057462744799384493657803890500591421552701300736810877857734166375666958895493847450948350358336999517312994170218935623271403843078464912643624995264244921928740897991640892732724772236137517494191339648511487327796479302831492238017382145626365609676237202218276661734971457361610264731767505477645473634822685512795785747821991241840115661353352701209686353430714098532949146241526916400880257399461309020937190774416225843751617622268141535547115663689986805343839497963747170497461157213506371677269560610477826627978701235899273664731964821642865120584517692465567283282126614492324290306119810250268690395733043141724529547526857783577296198173523147005910113759111636395630587721358038220950320331020957161947302545435145282449509434653212085774298463049561803153871669016225324668409966772377774051510622032071654476470584877320265556599305871202084908150647116145720298848835028985761289705147951892594416848272376692362488264766261163689155063176365602288155554381360975329438765791551348496803988228595355968759911749258714716230002093770631110881535285880687010166476645006792700193433163543382705072020284429150352797161972075904737920937151391772273702096827110567389773289090526549696748734400962666271472597151800226683502314736222794729107662289852356568144774993795014243584226162458440353160103442062674998345680890732233364530009946342082609465217040608420083018637561153610079455258984812710729055273352609166010778236805856745337173579235422890135349475581424854173494769036740229882453998492257227185067527806886645491190741667692204501869132642838915009648218450020624920317777694204876589375285003368559610623929972039898491220773149464766747792277516262508889394185899162400438877124127477082402605514715185088962306810926741119978055934104443650208132791428554968824339971329650583760686623117568740396325012543912377408996138002665917357762417640955660462737876012816759877532993879186529536691645823257508043223993183768846269065370901519446767189365231789187268846775936154766048120083965594382438799967815603153104983737840301295805301546119953957379058672347609495448406121696088772888956667695243486842580884744573386541517740514676386812977954484389092882781887301447724796748063191535313792578185619336906950204919348386233989570852692759203672492697175523468779498120427180250316076298685049082866191781793000412667668387175712267600895439497858595629236456831016505900922270928874518803828636155833948275559674387852859492898474217299841337644086191073018706636825393963780912409850011193867859291713326748142960249194193817020446036133414714073542951376615580445167996716344115403468654932550119448444263878308373789812560434615314011418958303645877816439979593446893053646759228104522597835270528424455686342453497995434387825415845430417665868990695443434813024822016692493088094220449886618604334321177340043967977846587164594495726248045806936928670143003154248854411535401985442070287142767087103532158662443129075647543824873149623430827791186394648897788077129890613049971432601638918207391058564875863699831898253739471880096895785190265448900995584789576460547396434139552280241188698799330086370778680505895184518441583189682131785173319422597843558967994378366057191710956609062590130772243161229805136908381704781194125493426246784208802535552570253146589073764505341859431394873369934746825363983607835625141654564525976436383875986302015238159804666062546123885069211547132302617129759006061115642134441787838016077124875935312054847318872402455989420256549501111492696978791405067968914572898738886719058383149811842013255565124201464914239189532430475301097984346189722952921609339036374889763841127252373429869549095539807320965423423355601258457786766520816913531354650773183038887642586005066834044532336666094032297909904475834697758190419573813786822761691050363684131323627589019695885159072552518583995418171706132333795364524781502070152863929070705495964141246482867837644724467958637715344611071395976380331177017691844413447379055680968090051651793558241950229566562338935449611357356504799386850491426345633851294640898021810063503350294345671152417364551217369479567486537005144104913354378824089544256064999444267252573871619905692051316683987505571984076784779565884135011085330162959471979068937462545437857199021947495828309158506809358275826941397451950355211376793672929536480251048369974965009954713288068983246797343379460199365096919133402919227630188264014647302350987598742002578110210226340700403830069614401837170520326045885189058834243345832140840242109474549640195642608305606755921625887638737178632482182297062037364491175501703327588161101685936154690224736442760499995228459962644138886664643991198537568450496737784738485133422187227217452883330295346423872113808058256605827683180963353322841740372011348588003995088669997684674276957743865205978253992120047237238514999936992469053793969713091927398733954887754179661325185995665710318336778073522624506011122733878642874774293837595810925736607091620940899002949613788652220170369109796656428392492993857403975886306232165116361588265139720416829717705094462883243312071881991930794905284709348562075709200941409747528337237397021966331666259053986275581188287606863083444245756955504271711291857397366216935830280272673007267699016474560411576974606772844114046969620341692730973997796518162553941977994744265959003001175741259901399151021834806391497014329917319201654214696570664800931695928150819243405303423195938143500071800368112769907887981624208959373541509481224849950585324855295580235878138238792890580522131862030217749994468816881578758633672376874798766041655631691621826766707461800934962330048474300749045652583843310151432187689021949800237467892314869405765769404938114980977865706262780982614621232176796317889052003676584237233712883537916217837906371683155682105145706318471433663098693615874050792158692717006398028900312583216711791933450883095367575019104161724849365084771274786964381655181202069925590220770989594411128482905123238133826336033925074018681905328997803882790512611156714067587401981407652067054430847850132508158485140063023639215077196673273674964727489855616522538966075729953492572870931774594526023206889049825463820064216063127380009707372184575445377825119267179278380530887653452076128455867548702253908481826405206649029215216746981415832680838501453393647350905995380241895402731118351606619655349777654464352501181455137803443460931975994554478796635638577922995902091157695469633047534933965460531168266075716581131581071278202615138797246412823723180966697757422577754116253841078226138958026256482508479334390389046930992147906837460900602919601607975578813715993507977011817745670893240374971851746169813877560433021292876532125936311661585139000390373927475948561103983128495353105551731327494741526034246372908022032947932401044504763743631662625604969329928877666282981944588625680186745316573000360643248747707369885566545539941733974880556242211018225115635271355598683042880289812916444296509312975100402092319838532611461323779836645063574674836889836312940356089871484409976362381125273172200846901537008905622035144976632286033610616781363045437199449407014444278402824760913231422477550842936681348947967754573394637411072848274964378197237295140102184722714186622971845505640910692992838895098672055789409346622780082364973072954253484129493024028673371139905693265836352768802084728078925606624657436084688158497461791422310210735210896847957339919201177872275176137584039647748853681447546775877904617359471199796912796249346020234243967128009059195541813674306811447994020665417585153496315512783519294031385040301041486102258675443550876035796347459540204103490186142218192134210716840301939622691372693872646964333682985473725652584040566568118797261833209988039826731123460472086293116748302293597510326303991758974870453191442204488509529614295711098836451186357420053619960140156963891563559759911795892251389130819434115923674646176626548754654849361285593680167730133698467905992388412701727606920023258509005245770496956451235837716793022764381597094958475602915126229616133352337110130291689838708684558367271655680272138738517931258090214204973779137815663131151190128263691437395159396081535491882740295768327948588968474688933614607263510777941410012395562935201185575198377281330277824845477358665207961984711814785234598656924765878633599104895343538978090643540490400131954946830066106743902166202274711933023110795231315771737574354559343711232339159557129879088610916939779077617370925874415861879469522026510934852923983989951609855461170835179339762580400529672227956406972993495789982598633761032935250714669183991532882300602696417708437587078726975385954605155698305630270410969058056996310869924313116744467519929817112015848529733641041412613233921773167210231083317580646982847629659554485952980203338006142875941979991492028401697251475107325630498408256024598214817630268681843845817661858480429721215819095694672851768411066660162169646637489128312644147762707597472263491926911097764240784263556917333883826236337120455571382893528517142352457491021529861344202281057710927195324205740712780457981732352394223812379552916461575289900582659422117034152803032895141763498850384379477157517544824882865096945956455371025403048842926829339631470344916236062661961372867711237578450296394053509265087472693040405898401062610985913620843771539290588307533988792549573844935877779023468507737398257021221216414643252234008270110022449171320064287558406366110146396340966206250485564458599415085953033361448978411898514453178837293439751947919305241180586916593491054834973055139826809898657926208776235411626919800499354997441973730322390214564644492659054903633278380283139417568984849261554641550548570179864275157517467232615256781447749289657138646572806424114277049757022857639489333967781163982782684683929856329173969568512258047455675401192095493194334133103737894922342567135701690634379099721480632342431370145313155349244662003911804243960583113720080502377237684600619950653457399133139661280323186751924016440576001950822893856051881402396215353906708637729710625384640487370455009235286052170750771251696866667545382890105830506702776326843507960752221200587012013704289253273481813804645656778669932779479422110210153727718243859262418350410129282609318218206538598854292102291379057600070223715239919107455579921901289084247458097595558713460155052159519084158055136546900329005084606118216422596076460119195039442314317482724871630864886389263779446438496513061590940417595353274195935251299529012269362309676168186048903704781049118075238178570611702423267272875102416939170095291535009166233757875521527696540199280954821874299522035633178551577539359932718602208630946060292511898075181269572361422365064834016377978216882627437444195123027592862663493533728777686493893179626938796638510454735148075439391513743843020765499137899765234177986368602517532358379393785284375458671532039546418766091540704464822108401515758195260797293448408418372831537624281784990724549931557513055746942002128528079288749589322821470844960688010392714939447755994912702516459353238868537464157604680116127090303405485265631875024945223095559392462584290675673797534403529768543323311056449739411830404089696221762282091351329457735736058968314621116918890797641877367851569128031373315960234428541018149809534192219149257834476858552381401536280921476027779023062023932228202127105359608410221475957704726571101028417378490961588856428478438129574507883906052106872713049119501634503341809267880018243979578702338227813201331726699919050378848957740512944603278684573042832000001243161027892669938473298558912760999552990533493873143710868096480374031880818265998747422376971739333513700929523636601882195399493056210605988320087837015526866955462835587650833182703068524756654026788873846186105013181227191134089748289585600773764990946294509958416948859249321042704707059157063196571728470138098476093272796524300636478249423373815641555699653724442443956967295134050478067058947227409084181081411722768877347007734414543143824422717255879982362329724346336424419336178665605937125057736608839955112265568729012635599951835542381018829388754125187822191920504368557398332588330608582680029476843287084825109726212192096356083973351778556978529719423084566982569670837420908384684607673035885163581532414391186826508560558660756976578764309633480359892275212058455148529292244311913397586684285100421632163953414635178112066884964834490084475422940269939234703874485418956892791963394754551477247115272645568570715370048348106860816280668998382884705901638498379775464013704439229237571619585690207934929071071004529589690790855735145125402472343543378184065126382267130970948331559495740125917942431450490494760493466484791868704041711240548178916170018672286912414729297378793450603913256956965290635760452136795746454200071404951947153651866389632779106173043642713422659407963115683637438949565691232331179265756708869088605837563530614225825649206750398060845222481023768426708176658095868940680469080290849769949444500562641289247649244532119903108750093905790119405024013380747303546504004795569451573199957967904436551925247947119405886458188938743544960059905340494133848517376668378528472432254516846439266156292984529155959603213185349219810111725375015117571249650691461969662805787647830298286622539846995854119349441573199049583259977196441973644313962016889621406006124493615034667083378789939253502747335506554049181943118298823653425177249399449901450112677989637689571451938848254357273229372896082449430812211180314145681280559504047470161264366564865499626170985800611157406902561382804244319936660455777673327326397273816786591070850412256474148955480446682846392642848770168147041769194493632071399435933468240398347434034551335511471209852344001312962355764465870317295445846338164071418411802774842159294539708213277132390683331774896650597652216941983626223936834020137509017938605134636776719531114650832054682140939636507681968724619921235714089722849812462751247182388512928922987466808835016668122923789439533384008057334875081112262653266373028213258828414900941157788129069267727712799667907324137190863630750111989682300895999778452791283765861197026453951455114544833763633849318858766964700598932809442423549640553266496931815306683572889989582214767891768464181841854760927674798149085935495571267474023944484825202830350209716690208595906808462549880834948992257485417016456263286096051811547365771261030844357605720647194671277974024294792988002645828839615846385407941720354911868485722711347467043223933630990101894240031829375694795132297317605433704322333675465567537240898987990859022666862714134396200529056596744164315368476113182844239964850043794095126496032876716925534374210233415348139895783813948520667904707099237733278318738921752615075617873600932906855683767455584444971713244774155745244212278315116724886864626276202521442099789386596204183628807226379422607332563431387863870396309833704849590472493892647903869503055634493155982434423125919483765040226937863436308516748066527455115553169641095841954976765151380438983619609260588797001442592378418715047413665507890560089413256534580164750811545592164050804823568960975247794435599411407412428591519041993177046075077513477531211034275013362200609973477978077087537285175918010796127710866618898054907280731010941375709807769040978485726667625635434049753718408488737961024343198048723842705546734097142924083686712476549987845169682412640078393949974496920302157900149108033081500887927791284452001256668101431362256430531648480887459353463889661613270077949564586675380598106386641699991362882763220384887558816138612938631908230700032484021258240114179394247988911958135822084664165857382241189511883315777943601602305611817706031165098108279977206232528372624769377216472056539252876740643493428405966022029402762614492656044519703838445673085443453206473102081722987386972456251890776371210648693891899851858972935915032184029894826805512930543135115338253557103186504933079732264203410746944288092803217429685883541057782534540779703165828826118416488765816073707808713640777437223883776704201343977038110775253628747661174637420792672722086925004820495620215133915763296624210011740594347228876773600086736407205634123612105332276394821846403254983203262952157672111608052151219156351398057952693047030402925896507802935069522467194321852385498584408519898022380111895096868648335051812245387722487557660215806470915998640599978351653504821398233345123252208987895813592872221837286472532245855910489183057149569327413689251272266242414143294848547661789145085528477082282982681262128215465286744806037877806030509513697323705739299724925134488397085865207352868584765108149854636680376512938906200020682619294411917378695348951338762834443518510206252727149599977078219123376867273032786720059002666984597322046423840749603254735272512302365451293090216597145098554354701982294182313327026509154565823342153966323404905241694433601251645712393523093389795097148173876608544344577407685940304990569811817018427018582543731959132476943083716386192551274665001419119320802398436404253316613337237094163776591714733819384105956058943256160100901118050161233661605305114536013519452856374052232908305934463546537791552664644381141715064399388280745310911748831746106118548544611247342195267473201120323315975448502281757925050720567855463585870175465659110133085026356604540236999498267593898309611525238187711849349803948891637610576127657550918695389577583296113780427017746136697735609034392682081273847459325804493849595322300999822234889852910600704609293320890204854198562376631675296286752548491876380285366364254190024350766016323753670368198759682495953373559439259991981495878606334156910885310820876388097922811199786247643825661764534474164327351121262311436479005782659696026942872759131703696797395145787701111998499182715423792156394805011470987918626212917854826148911310603235706197461896987772282510894973346631691305658411994527680637824155037788990012482193417141537218779163507681307187783862800839528855343826961464823008458118760602019949379380874136591417713672515726371338302850480151583261199962224729109222092505893346329904029259888202046269942795661773669030763138225780000762210537861929602443930542146523149911330218466836921930236569186674921763733002685254688376106251774560321514349584428975083176509448928242299690322311037775079857656298404511878163025781807016374529254767104343626333471761890924943604412759459050933976240250960054787243661503726840495677687636282256679080112362219709792358043076341311210311754753528263420912589765006512850921897027567520372705373960813433817214467519248894317978382815479416630972148720611094641404667536513917842282289083665830929288219711999836556337729511104766868578343803412661155356984040691804256801822298091764782914578114251799446504584555645309525710853412272899372720360265460051431168649516511442838704729843320641477067842344188991672407012404000009179691193057346217760370089709440905235035689341288104389923526385940874175955407769005196240663750018440838390404592635547940215892446367798382332862574274623224283053921965308816760008868802393738054104937697196892426665662083767058098910555873610031720846869569305181048152315556980599507766968926852061068325201866075565409732454186882002044057942053878462303793262843127229207189872153895113755606655557700205016622041199188719602122717840991210603881801581679445035273157894034247357396784210046827028004072668440281684547838301583647673964713219288441101413581897625128109446075996034821299159715900726565844515381607275789677090762357588893470055127431562689540281619952940958492136102150034044620837396708876352946189229985631910296300732910909308922279903047371083431700586039755572150546375757165027299015295867811968008215370977575041603249796979654100830285835824605250160175235499492520682012381415495864328296739656576548463113236479155614404523979502190826313992911529201482487374719476361687171005037697700683930529583760483969853465044515641978622043126086016822397341084198553147619852457927158798523111896591575735284634074246143440804526531327915895467332452423735505232574070488093340371711795751090531763347802166554260219495027550828575692681798281023609218127141185941309818309325731206277666245662473764613014727562353523320023244941977924706228409252947533911026360621920558403278313413738879085125914282805356357951216524168022680196646495039283372850221698296011503124133275491026305577574217242550737446458664636174156393698323740746135247696485874540210103335735759791423504653454397277183133583203200296471845902660472269318974701925063368396657325812077250402983055863095610518408974889283597673269921621400212045613927853367003548361320614075145526757304819222394981480121059880262809311692743954356802534900129543304680343266991930458345521933417672373920482613141533108380385228029572906162635878413758241454212276983300858947781673755771815421662783877328667288489547071051827245925644365611420188078395502391320087897313833475368749439516855381485780663770034537984753844139724097744051406570601718650967982685662501141424477895216344120828570809092137929862850504619415615622203538265527671849189779283874605520651908117863478160457851810370729059497493114417470230755717648434550915624327543524942263200345611357788381223645230138472665982586343656962018000366902377259265999977537587280243538196724233921136767344208135364122879299966494481608011034131749320405930946696664528213212951443276897944374808505191722114126726093101614241667224469073346112912435480525190336428679039551324279414076298399120423777210418667412521360245573697202286390834487856813791473878408981152650423725591456492311351834376842680808664410868174871309953643247692598914265579760171948279866052149825152584552127506123109446486010358410665423351903420861260863685653232453216632106250928497890804452742877647061664310036954327577481561403115472904285138079964068874263033370829114784654037243569310839227413374469666129133915308118051973075578939283625618248016700419013356120033122730160398506823058066313849367316128778577294963763513838432955469936780874760069622435588954931694887992733734208657557515489035668714817565514856713792262769440765848953601894291804786480222820008561230573837509067630592106531755127480861642395579819252866510489995520215900109899596279380418449928893856873159886761296650773586486746364958431788250698618285323113984304371887817878392398739106437671683752521513662566745513604111070409175308204547988634437010105053576955679556322568018257382227934242036860614128552716028991156931869729450942174874323047598234721781452002842830176965055926642801864618400496475380587074924106219196835651708526121592233077802750652436267172425325467139944432932300234438461892152121502683078784618643556839312860462488670432679620309912564469635366200896779745786650866485813868360336825366927695329155518384105569231153585925129436694081587654316608854373561102972903961222824219058959638214961745863181738280521354585741619604730516256237027139449144615243172678829716365791407922285853218594787854533001807901360031234034658076125498736189842006987119992399790517938441820553098178569435835923442000521812876833876638616973059452433033716482628607665010733996486877950188355136027298276105371660245734830836783112480438818510233547807730654327338875391167230888872301397691355171598834588300546358927707421098625011401807301072546798720337662428957732822840470557853363084526802033644019110396363592292360444376014703873393716951730150807678262934653961984120230424061139755079847858253856196717169118577318531404436273857139235131347598562485300072583676379383745966010433134278545510260225860591790183956506748290160023809907524970964407868734994858624500271909711573282319978690371634856264465239684230598794534362647814276101335061590592441941399323681125727208552812330325317289994243154939996708659978249790956446896780631075000255050175280304125872109559165501130350434634649656072135354793109731922605397410824022131014839302463485350253871869974406727952475734704184089880166777337932241916045218940622113416526210604265991488167306472551564336278757307180033023013736931102161992044937885226805349418985531905927455586572120817858813375015946494535984458716871674523578317224088035036549461830969982696150886100031950349505038688455324043279801416137939785510707023640320744084282648452079287719726140437165053212849506588039648448326025481414998045727976014532443226545430180959621091196040061664554476319797540894913182157978019403058344178424522967888209119103159360946214749518273621709359295304114225582858319089875123052339955020627645245204678910563273656081638290240087402272932887934034330417449123398220038669806910720707083167868873317111618447905357743360523448169041254401910386620716220225728872938864142929807287492134107025663630146929791825055789561479837981686115669436338639787571316299105316344846281951063930519519414395711764817645300659452856381092233859704261239366170826209800234510225579745524686734281750763925572237470140124870401329615596448076256318981357801408929506353427113090116113975103298127382613805540369769355641328165838028924817079800954992161877412662085380658253790065686983440142660097406731796495906280658492571937706532708736523762795382369198590624555528956147740900869127963473695859779101220443789510701920847352989944962113302645808617232038827243077504152059257550893147479816752798348206827662105339115257341236126189536223276951679849463950958783484289050507829145888421703886957719099616205355562855260137658172551632031495323141562059189209297890817516514257901145890045056057120140540080831256570496451694152128289538502236105325301420292038839954362261378110212459449277017945235523028287439129887768066562092426867729469274600489508584801348577605843348751661724405219993877344027372139422641894419079258243278220287829225457215265047518638964466552807972719694298679202683435407068313269242891994145643836069828389802090126448867548670017771445882758491156996782262916085235691731326942540867670631139976301013266328582171785016560242848217360555888464373074624361385921094173704180646782150247538129286993127300002246782333515894302035870928177839495244340049698481238696182326209594935956177717976231653583370403769868272394495541473328106531021063320568883189039811424598048195323133197497719691121362093890172693500382919808022795174341283627111276596502957783856959566430017609835513246255106707699522074543938923869415936243286152492797790208814737797941053942734071187524683415940431656558375485974455543858759148368367722670581776140579661199315457432084063783303299142994643451886139858404019088488019032111503128852865725131947769707000853176446176257143658803457240840301122817689929308678014414429271028007663513697890727188407098585189213862443833753781611557339555835245092187558470414050854343492216666255188247420090180235336689705081889595269532138035015709280824446182536010873026267012590284149070293682567298778077708298533412197804614604838574421504176177045823202991867442620442343724138140848041362312137883310416664939444449245885647902791751450268104302761005681340655702415715591736315385713379688737356603669748098562339352847672338817581660498315740047890995767707834578040262254519049249407768393337047271489194720776764401361822150691317031619374196296039471199765316755599137426359555572932753139236641631297041105866888085576728051351694721756664447100541330020006323198059115411580433308675576252662452597705608840511313369993361230688746120482968103144181468382456832837082717016213072532177595966166694775073804592753361162277034489251678638361098140114124442347853037420264293877897984179682380022558780958102570587907550554815553712121522655391753378230746968979216083679634820127870813412432706776612032752480486514849898672890857911419656902492557756646379187417773994859364742390769731100587615248045944820874167456322307712223630631635644460076059161207761042439457761316043110426377299734780304584513639725875897102280884317479650289253046868195336784101009343332185539245695948534756655592525538004526948591998208960136329686924950576810414840636474616932182423133518025389690992104268450150410461087812125909858576829738217552549399651056507859563783872105810448021414287384186003828763310616009455483332608986477745531376038107175719369737171170598447588341565057719643490404454348478125903392726522760289486849819722506051591090664362257031016515063223511269532419449387027338824995422418572630365668355742046302395405539270109148809039200699278385245396960741925966751781996411311129031295504367259034877931084611474427809150915552637918144425512646513290562033227005812714006654095282959426190426533365806717485750971846950715224294403475546949246601884642627906908735098641589639943417701468933319992367279736687311791699420703785758480595264459425920832376064415808492006376526138791745741716291308326545209072464798191709330558734778164725412878676030736265003659945049696502525277141249665816645792714334087067498804624074007777839469318742065523074323514061320885336595070775725442611150181961126627635838758523280987867830077784893207553470528243255173462798395277565507637625114208625436678157587497975279927761461184977626695915608118456702422759183943638566309705233738495349699052571590976031992214770086669748203429364186190233953525940039511274757872899493773448918822874626981188661327030001239346662012058021817839722408334855406655704529492878944211672037951118183351783433350207546200906080885889658121484698062840734166283984149278685251599781238201693108315318215517187101039649185023864375410009270474589706518866849253038345748197425074950260737784252119854166976491051227707727574705108889168546367840424655196680428837143712669611313142128211107459819087369354442211364711552162907448899728267438725434253156817866783310765086411654742811309724619164333397291496525086891298071867208765352281618834863390940812901612582607780846589191656938099093502853328587233614327473605440362579155750453126729688565311975556403216574375867244463856095692040241669886318060244687539793475599535556552779332020748328238658200377916345337807171840937168119855842841386695880799666024029455348506650663668498705180924894632908905158573575670128604806030463098863706112938711155371482150260737296211135803635259144421412763984475258984045022570673141734845446278168919918386982394743720250559264319041805755090569518489105721988944822179673221377387758428916927116678492853920944590339455378857004306464980667015370400711357896429342274335664566136984287804943246207358273103829544720464976929739359290181004285877533119189427319783093017537381358103114039314732334006706686459056595536065621361506031774666831045826087884159956767278046178772225272601747530547337926308900134924421362030805539602483910880465862758817989992251423695097012983800590998198066049039236331097597069998621882945771629366026839756727068397430383660078451358725074340038378962008552741304198940276883636568384502261919967925909205411416775673264753186443079902291666773491685424752284702616629598596431814346187737317959386524372486728995279941706902124960275019384030287389228300838001891398603661205980124723149764660572916404404821439933491801636707944664080432256634431080492724241550736156155589214820695993176074970866016599925006849482386249131843154274600523721578611482715493319561604909392908231911381344644648162628296437728925338143849679106995246114595065897235755474224380849471309086671114233587236482098937549221163466533562520539059573952139705918042220861478838026363244984858202219515733863315289029974820604783659382034618818547104794280025052546378669368178970213588206393450053594079816416429946517782054453258113269475280396588098523192620388149654059732308106076819101381203390430432180420534729375484432085260774467218116907541105419110812497556080796273367176926618757898455079153856053701063839433890546091046382087003961115489423533173594481550118563361179530054758392734807537798732796298742907268907191762847469188652903080439336989693791374261654294595543759797218928943663120576424513073851698686708335811255614596860366189546351443807287798378937152231805304625011693880384795719599661334524198473814940305541019870171585704923471733647773747196415434778457403729833834670212815347643069684656859655941080728855257403063073343412349476237341489889405639157015124891507217157372021558836977405087439369094736700294447143398300351903607607619147680907123225933432331969745923498652479314595890772427826259537908806227698301341262572419329621674254497408885333196083287450998997247485998132988357511691431015325555882110927827099395595452606786347814843746163438101789395115528720925287241590612560023165925622539666310390734145793000167775251215877051483776514279777587550256246836409771328217323067401303864449718542296639700671092713154588769075511843236308549064806343612271747773571132219347417401640199218496212286638785402248704460655568014311395821338396321806694222949878739037964122594280769056033782265442700663254494777141783960470913930420148565126941361869273549176095746280351512268795911453262729570731179631454332835509814480387865038739806058042925575181986153042564473034270501407980688179796379338117384718258576014559194448816232682321837002686710500259374208872070153502169614567386393260623243033589873461825462540284179951261805715400951752723451411363230060938349598307342846772139266971162705536673321188228449415117164569657836385108683671223048098373959909945022111262163054653189341768072547751673783842053885686385514805792044983973374612178850053711477484159490820104642883792494075484218252480063668511123823597958989513605473901612393610430077861797378216106817664560540319691116047087857695885426670265716565033111234226651324918881554562677943377490072978141944420010058805470209240653715178667049781247249667224795873209967967220767473106361056643495911826008684116869586847465668304055086054795360344914349201477329910049018182837139717733318150336454980989493478182098032324511106704137471323707117986737309679562399119553208952402169930666863147595494605405654436020068913738771490915442202269764184442864682509541306372190387365043799326191894774322312261798854256890743986617364640620257952307011429556185194187522653456117094273872393360203629406837428782005358133081145537568548915929787481698936662001162979113216715206647038580653497165498574980403876911727214799406916912036812478389901866215491639789920450647188242278034214650840097265009846317416073917613634531037084388824568898105220649023743621175184293182932445047271812590068096763773180809672425473622437923993818618150456604345610747100178299445908002696169710012216495479558726843322934235910735488991119451101291937254630049732525056494957497832950317570946699660508517695907789044574177915706531418641013388641872125521165866674498482240521333019984528174212481886794299376274463488307534920147985433089784662735828285494236028714352093012841005532455452288285743305217368175734981087460608908042905765923353699652526414636003874012883073648516082003292794684108191705302960549407848429065795027517207735557293560163504968141740874274118904479955066368830880283766434120597844526537129197129565731022712302511672170595775287681143788021099481856893491414043320284416346059823781143998316509483322112991485333412189494833558781677952594965589186226657891755225526944930115370750140944979371760451661692631933968030801051120246651296423303394958659559308306007658573197889547069204839377277966234977880690568623751797778311161019196966690228143271839178883181647352842881604088066931548902806564767139727454971468407741244626901393642862681252059944450372651112072706627722660490151229711196106391257692905659554771773497788070288257744283075805800890171461209329978096441415132882271199430676393823458683952145227612215548493034452437297408734542245737148399081638959580784284371434003278320600785212224212640036313811815483008435451396281054844449921665388836990834597327216582060320488387589504471800789156050746139903171609500106048098252522052662418359397501059576945198581758788872829701275488805438736363142178938716939472670267607988696678707499908645536595332980260208689647947570472740635647123644977452965298032518545495188836061884875917945956874354002074306945969299335071670920987684637897059454726544715348491625274970664821078782160763419101295730569333399281930034240991066348416869835888857114587125273919344355545739154427503165280793540827554945225622710501600490324247523760120291159016896649982333201758767246648222545273079546600646017305121606248559301070952778269589643683933303737009679549941595765976276986961364385315520200877360411002212936052791096669631256401665347965623732522932346516966599873777455388229448797128271557535855296724733838852523184111852970102681703523003415229951605559087302009974653990297708870136961994740670825194702018873993668485987299291975005452233603498763027104760168913793006141077273126082889546145143040438003199223350127544334199536590755168531444475349515320315584514783814572055952963917517470070067671500698433157018449876144396479281969416116705673657144801110682660252497586245704364633594756346898719164162379092673717649690221800265762298799742195507271881660944233611940906148425447789146046606930935191272380193982050131194228818973247406923980881439458356395533642051269286876077353212345561794814584322485899288509317211941461717592407914730389732631837465572683981331142748019514816872761881988343844396582139291405806150197816015080527660409822305247387264627891799641794604608439974328667451209916249290910264490415849224711005028419879702513005025484391047570650935351239311269491682911952378388494705588545628962183094040507325552238372646260116728044114888133425900765477540375841079955021643968928256193072631243420264360709299553139535551793062684490473067882545922638713202261713417670169761552725667951037621857177091871591433257680257565631605762804924712432299432065260591573608933823521225968360502447379654444380129951092818625469942036796363071958447762762076110069056730514080925255455341687483287764742298019159731529494736723398382673426634947877753836345536170125732235114096082138996677439112940623246832471281265196711251442102621514694628256706354945968979455993462079122575059451987180250055254827331370010638620563327617519019007605442754884577635419234292726916200510341559478075535883323510178296004235260444348469046475038105871856222423171779251040386391615646249876478321437073011885247448129279467401555773541709187305439007958431469099230611776322637756495310021031135098622249323944623247068511227095929866143746510107442930495318980132244030582479138169754489350824861534528576467952656741449456671633307316290816196357009090251010619086652095274498085406843998600950495651462739634818612907562261828115152891705884211909314880967947137933245146629928653222345983274704073751971700615790954188770367023792614813230780234701043547406241881825251746789460394942877004997482577524261329658141140819194866590544450955196747144722806059811037414675088709385987395401614390781553787984729655027818564654777568437324891944656526638015636249831291794138575546804779076561898573087701679945520446665684719909314230887427655349942799222028283789435993826092191684510712149738507724032654108588181936950635866566772949093761780728361213408642117159686813967457219640925681191533775080594902247689650169759615125062509381553789966543810423607629206030025627272266993358621150930566693965218512732853972218042825309909702985591458022228360946766507860077579342214061660752192966658569676287677865011203297024214313841220115270794555143763676325408591522053725221472357025318480040208348919884380373848904643404285536336235399065186764236185541796090542726834151820704695267436300888703016872116823979559052998894102521388486123674538687640495649931763829613395498268766659608615849022694147582073088957481256485434932033219945102260328816230768202620418217572568009926621727094460690372277624855554155187516666579429687273029795709016933717491951831224710125055868743499967597714776013417306513085317070360958927089963958916277302160039461509192761889277919647434682389689711911493118299112846613305893598320859421692430588639328798943098310914750218867617601002840652965822050376053050240106374975128092354291695458432689596626079230463443756329551562282860708733723480258445379463694518780341007244255811933919837731790656674787680993053578328206353700986785481056154864602621449280159818625325744272145571616677474552471913267068345494791148952087657972291538539361834584739488390789499296141775153451016152361708591115471420861379534775604864700307211942358843235657446209039433015496158093348334397782885632211566488070985961757841422186312940770683832788918687354492481202485398756523646264891454068710731202376021779649883916908875053024892262781787177301522187127128849077448562259644650840345243462492177024927782352430788311398592256650037516522571544177405136499588655670934216294659472777082741265577420455262176739236279415500473920259593969667683293146597579799225716345786397159947268704578437725893607840171251650513314302283087903748106800185726114072115788237137119370992183597708638875925146980903002723183084872042107638774487454259060934359380347172641336055358791349171296534592814760859579742026443604853878569252375743024449037445357099216079223454592523796727481562448554737271381651066441990086220830146136808459883804867651786843183724739907603019648329365000920508876446178734653412633139253671833636866148756894185837303445857343515370582805653311294699980269213874487656375448606609625763538294982036700971787887959436324146243484626525267741106432028421931412878186695480478315757787902442027401734724453009144736222353700236634227030852091029053981239827166759659587099240265893098946739488281285076569189157007262826685784629261112962245394603204866966441904891973624768637849432727658340257904618943663164067739637550567715513744104043306546637778224850469983437996909902272297233724532459876849151527608987857572993473318114346916952027905935546630411294873258929115472231266305997842102273059458152089605686959791616513367077928385571695489231048147631217328465964973642954923767332451960470964337821575201637177982947265575497528809027567050203255225225445806255490696113418548202934657380057589242500423256885796355604528424147712185117857800961697330050537486672437973200392473097570952944418879648302576874920740265721527127494837743260352735893739640859593827915460589383905951043422854447218389661181702893071357131672589452996047548930915428144327726744831570030314642078054361121400627839407114582254825439252881887580381212725343171612834692350342269409287409445020445639968601051947232922941701164854957550088683134407738601460795315529720792209587805549086720844214367941763046819646771220088511714148816066224315180617501916251371427907284869342958125451846882006820902203393567376125609099089510584420182422284803641413484354119998865668832185895104823515754823486403027061045548172490713422141109970619176981878402599712703254966444464296156535258384590094348684981449974568232089773077047971049052443353107143437779326458556744903183046090124411373869890085236787930659948797415969107461863480871815136149406197227046510604470086899004820976724037027175552528038797228951724472255705934107432829283825867464232779522230050213252612884260305772847415047749698069605802445719190442009999325185632376045149155478897558714840810908088521675696997904435657245806233851732993253559373209507061214670135609398009385115914210743265791591686869224645186972321625546719267607221906270478984450372165531079228308527840259583186200408735575951253146573283107842246583004836882408145443415701186122187642166837615353523255469301012897134491106036246843612275250199309992279566476281853618720440666699285112999194305201337362186863689985092648589287894878699914287412619171940000037466561505457717315666492177102278788100926937198199520535194606567751186747666420566984717446715244321622754895799175242400310840817675493481456085699005925604831919884016353821189177959055139369521578162582471779187261025751888989066503242261725232726366796150809898478167299939352435076788475497563910130134155906484839972594555321319329769613640380391522270285324174011476220338091467350428261956668058955383420165733919170637510805764896345101203832109352774731247836641150601850443406968569316998273925670167501594406218696825348008121581095482608271901117037692528351165164851532115729584468579330234723204400730006741913710747292819782194587149639246179516344011814451776091841727660860958382115540018675827353521573622620675447495680753361097272789354662717712883876175339923505360341160535110569391503954158763458228099769370386349376459837961801148835783701779714616877012176297403090965285228074473149481539749554046490398741079145697803717188817022267304801182223623995193845016655826222473487722333611027913436991760147996320501573570618884807360485154089107558639350663211036921402382319728780967428885048002701131759865150861656858033608820792285191421440057322842900972595513413723494747132019423063864640190445749306829359850786989886929883693886089313732330938184960562464191701577567442385795002436131301460790662050769785354963929956021329951868394188383104781852992436713613629291647002429880848335443210469545428590551407847387946548925289637042379300238614001883696480644627645278653967034207171443064034443750383372570381731039495051849477434215736731271280622908685570267234019821925862155468283279541089359292649559754139165964795922304727197921974746526823118984878683178896842620266684910783211417595054276673741251847965852564344722811868746482896803366492757359335516670483260628767792674803218509450600075567797279500777064332604768013228950871813398305067326078602213021443177631922957444581273690144728537001676385671160871099214928670147806540250444022192572870589592207708534180757490549523081282671827977684687618351613880649512650005957562526361120944801285949416559657014502825985201511006639292343361106052703361608180875764588544952760898348821216389867148248494051618121584998854806510935396492335127101885095539528348010400016246205815448132167966059865573292422979453739352806334634348826157003365798869953853178445763228756178027049389252278169034925246395814007535470072446304865681316706580395909925668944512832362757573423245459956048919882464135684198572766077486786882439071652411320334888774977602239571254226860037675327977942362248297140134645277443090241556867111577945565018289818685175393302420873860056660907553411945582142898976572899024799702650094015577344266590572300423679691132272761502022401493822955291258698507085066440901427580427101355182927725982234114017050856877490533292950476259610064981959657424550651383479607164288849996333431023631133176080844344081535067731901047374119504759372570081499461869246670363537450805705422766446058968714305342706871823896902607962084100659017447488265089607137805547143933097555667191021002609616494905396319038683631107538372956044013271028973757693745598072821199109824616792659500140897195281592035163940726086649584324532990870773070814333469723589331594744761393804273970688228948298193382585875927972766118869466302386959360855713147270466454132643770374327263878353681961168715215464620889492861758914219595196647713242228092520945531946914807293991370081616723689917053012462448930455275047221640691884567741638130206365529631413466048967616333819382318328791797268725757715883257817078406941622410403036089154623352784651263871262800178819831274086222182144140544875363946422335512916031525424744059192432952045066120430160719205567036520773941346979314865485999905443274616905551487086967564276309860312187559601427679732328239698976790902585347519292870139499674634254624325807311735920336349611232506879650013701985090496506000561137217817366594618711702601267823426412942865722417802398335232953510755710730733477852718337128273891429134896002491149948380121317700934976466829992945191405386700830652715427331734044040067248570672274231598863240891484400387056610418290854261574247268498038123520553506915380289216306205833007350598090714863468848511712973472561998435065826528203948499841088309932196598158546970978701710629619630782616496188597025948132250359574858182702977938183821436084367430236215607299266530520828611727020133337133349025394351270725525049208818104814723935386918403002530766206504085554399736746155082934811821076317991125540686535616694197440785759159559902506333575615438657303629365136326399117313327644975468237837388390925300834715619705058002901249237828889843080103112596050671443732746849980863201549698786868636632891847833118870672154851591818167470749512193570215681248122602548900988294313758104506518858579951114103460855247767869621406022665013804450690770819568543276271351735459071745794216270404565701257852015242987898746829721421600875581061280131753138608955940517736938099574652075127041436246174318641063811480029043734658331536207126889978863089292084699012256030339428961967262012602013260151162478051452289225871626749555541388160964477899700799147006997734378766301296221476425608510400314023655459832094411652424018472735413127092179275470476374731781904702251518834183057905594361915790197749948173700899310540476343177778204386615942066669411580775522248565160307825099948022887859277973286380740982181033760276700118580629346749588182815464697047033174866442292584845149891886485344157277876902232277012378092278930487939307386229387776200757149998743772552531271499847848042062787318236181464993410359367893408888561744323243557012356822794354899918491708870608301091614280764210051116920392865162512930079526340313741336552490923146037798509401531951320067711604977642543015026417440671661866922098317913029286660676995431104236259403331741062596431469451683090682249283550577239498382181514630209956189577584966363903676592310411622769325282669783020140023220716632861677424035156856555216758498443974880552436174456268690700068103102806035391104213276975021910189268788485846707528153683648972416910766110968661211244237613903910358611615552348717362787692575311322882097821676740583287239413423758448253489533242862176150308049032088494083892476848144493657282933847984555302419899217124000778342244725634702294865098000740428038197143191613694524111117627628634404864130267208284340543013778491736516944862113678492811411236566371108409836338958515608878047584768058655913163506239872903665721108942032675428696482251805346374915710090477156309960158639972774404176945880173342159812964863588770493583025088243812792146160694134623546761650229372518566997785392943290212955563985399907010493074444199581109695820266802555227643845721239330957919470013801374984885143703545677692804375919455751815678808642314553724933677145902109715123150204963625727021317759276460282485505802246058185842462931703017710182523861450973294562710615179889940583057475386482812476201098565635436226165491855335106900978307185470463852609880844348535965781798023164843568703746583490789889246227263492816055868062757039384190290667128828352319836312106669327674034740716719888164338748560581603530940778427649105095389402717439239880351722947222009077582332318996136944945595891244990646996867231038333156667617982819927290964156507096200275324049295978035307095145581009920760290447508695860463528926102881857053722743011756325187851584130427858592008481460663450598476965463255567174682411361590340100278596597246208788439300971219383636967351215795303992221989186311986888230729722077469948739707121974272995696796100722070353557471970512502783057400716577191673592401976133325794870299151677402592727322578943469074683962988242965502419800032083767887061495467063404097702375194580263708037791586545841826312348841171624776028985748651315981651386209847318230889003991828186782317908302910375815944363569528858798203370415254364418629650911249062768353454656842086877747417441532694050368624864948992563110719698578490786956911880884557931168824913983029166169060200644553139536614792325600213281970719856412095846628125844892516365402665067958213545479677982984851968760042863253589986664419390110311311238113255803416298623797743130538553967205845040485049772437982468049391580319657986911174076882572632909082051469630180437033751403954526158761450532426337315899131275013689439280569766697919426823733483226174870955085065208208032769079470528945103616569123243540541002791353187591610930777932867353415175041663569399045912814291653716352953533817673303497948028000481576642596221878236449688071477575206931997521729672114878321908746203386573133882150789293641683367392248445217980910383769239364924507381302589935044696856928336107666890062772630944207852820781132302831000360992217735287245605466467603431158093073323453832269115561302358236480243394402857535724904386953845754593410800798949183266011457731506865150999013883368172424327658450196143098127751403390229379546160678852741081901458345716248150272201888796311421004910752940396340276620750071426251925072431091154194302793123913449942094543391929423338060324776235435941855681787943273500819540328746977238222042084716067743238692335663269064376092201263139864220114722753931205985364466096378131711596749027389544957034986545971221503978585793726546727961489497590498688350199773251230026878593637416032615390037403327936905721557694248512926029118769039834968056741836601680701497209765148952853628601061747110118068747378768690820824531620549429173943458643030284168108580020999621654803404560219908012879812996688703822439089930325552343934914870664572248574762827606047637088882491195546162880136491823004725542358528658138163914540370369771565469566493030439473467706815400089804389928721147764228329515628321315889875544222290628253243556353276354189038930564305136674084813583611765227976950061481455619124725796706939072125243621581093676823839934588657962245618219831822740677336214854074441397062945396202666719664860501234452061324406993191733805413354370274593872823091006986309713492402844787324627053999315936951548121718038778933407793299229308530447501993639984863796283088802432858939766403373742703461331305644875173405676037736813241782572165346183255820608008664197651771258357082993885480211209352146020207059477930442845813693736301854281047749581706813932155222963396473256145924168043456058977326348957334892130596466295801047584645228783552367387374940447525866145363690627992584176386814667316710937682890808088624965370909887586646363043581342527625795401186785015625797243667700215934902821910013930049849205536758757223952062343729165828009032149800969497602767498169634859634859106271497224773832390568199217778356592426898755596208283649357629166676854837619002370588749705053179955447658687152589792703832715734837119314548564394277811846299066993595841143082762178018144396840063058019307424278199868207144721182088471939923314440608482755880032088441768227693806596722317158387858347571798818858868785254856501384746534714829632388709612781358336375270726759331050059506945534470873570280596418336780279757788960836696833896216963272723669264439537297931731838572220150932709415678605173975525918502441506169440932361865151617174132994557549295158523269665642057517151933161661286061077271437657882899873706317412212679906304138694930533915892302929224171148032426918578028171496906990622528604935169371153445998555667886662322505214221643399970354250060712745681289694884583211998820155235241433831349120231867190113357194860360663594116778826575691201264783769281207396525221908336175508323213971588702302847666274670025791269337948845037027149572210512525210075344309837701227909799451723353505138506223117508054383837801719873487353328753336427201145690260935581545634768477513142442028968418498672361839668475149676260879522367990661335984042864826216969573283406998332124339693510864250072982770663512383925219668843845295716918644704623296690585197208305231884322646809761075572398496805708517385453123004843388007267380410987622092926211905819045614497439412734838435018752962186447781428167570163554836826477513276040037045574693930969580666164590830885518458188061015374202337543556838105454481230239758642672348669381576772549716958680850257072089258480893388573388648597221470552985244162741641475302878922149564297916860536729970073313270822225212710707056981863264739819567929132715726758756446169819725466185164503389091099209809698857978191188253152123824126454802493381032997323205806751996523425154044434387552393614170744615571476159613037903467420627699606953911441392497220612925613767408356278619130658570444875954285253194590641762006137168413994326312712565155644715362863064007574750240544975793837343897710814933487281216214335598874795048497837119260496693745482832820464618804284411141742572737692721097300437998601878529953543904939996917425904906308008023804730672279662582649192403759533790413492339565304822905957082049289941283131118278435240037970156232399533287728612707635055372526875406614832554729273886047994889875065258668773487598845980945682584116392545142410237830049796950612067442311061450196575106960056437675509824309274733145496551124893125419311823220518194089434749970864347661476662203991000015100686269480717403752205388913819252869750122435180993006316187480019932644608984389364810030021336446771758470501203906203545178926662037630882850581372982756074388838817712319784410979236241449310301701696480021871180694683703775807735815870695553295365232562466559525177763057225127316757556483810655093813459451206569526611468499567903070984581843280189395286282180834826988897545319057112992011484975268421306403702492156852817350664396832125772620919209976249171693578918150370235030481727728717269232097309138346916086702129488286150054208677535494886399511857203973176795797939405084538335331772105097692999534929925503326852563989507675648126216064682987544546566694428903593122427049575566871759391184108645599899061475480747480594270791141495728141308764324679201669184980464843510231443327485325667396580982806313698977804471704536536453115268713952293053996877210266096727958813170175838578829255972720563218662566345425381404839139062972624044430993900378644125544293716615703916550189231420162336294172765924540120584961021806453982945229955319345378100310186015919233851768156984115543994688266010916258270581847247676825404252688191611734631253229202022894400549314722249616782593178090600429814437921113366775094449963329631366629000713422481663272869881867658770425755060741707741225316364829611923892420321931766699588247172915182703620469663073060992631638087699474556480777546434775627199336365272901953409908271478767793314672158408419860901055242453513727947692584007833559360845637974787402183827160069893253775558358357716232000995153208569297353904150510120777789192030290363311085970790897077485400116689808959546016924876969661160469915859849776897470850207026619154031312780684404708987000660384058260757948809485346261060177697695350142746093017440119227744041301249954264996296805348598761270629428237867917902420991662475765215998203765081937083924542866281941073828242909852536662291441279411992126860740983387390873546873319432172558662197172311758711985587344121199933652786903237422434445083114264968366015350041637722056491875621661978817651805535319413280711658851200350199674524068244577644255293546574575597566270625808825419638744998855547890010628992658652996527172153123038613421172809274213160107061620810060125206128315266664867423571384225110029494367089204479022413586421497223656231022544098945145884535710683736390268042246843138841144233696577810139544966030401080626980939169459474132042313994661360303196183985902593538112453819703588871610110165674386329183432219527284106016333314700624384846681557262167597930809886978177853104248519283846047697896433882149658622823917295115248844253518387955775287972167033797038466992523478869595953076443774977529721882680701021105644952659744654543288589996023969318466772705339241835524942843351277323272980797406621309193485909122115747858128083118722774115279656410756473872897625421558368672119604939665652084513621450318309371773710431518113749386232005812449365597455465130508906937802440569843420252473591058781472230317530215811886418996462625810942133908268420848597010631399532032925940312872407883053383241406282206079180405737326756180959219547673795164742048938726637966818113073803735058165650691224800654097828566736528767660650495861258835523194929498891536196611295070396449678856838231585505562945111903295885616309467693656210286746235194566147675146192954474591039126634109130182228378657283390777220240387134850259279916580070676589791930134185455473179684205800819128766467973004420206919437070265288613561447358134657440746665941370280922938160386235881803790734952523762075782869481605426500990877133270080747905744719853153027685718195833070854909868958993477733193987027062083429935185512130838455867433482527802025876630735820014460848083449071279999962309908811172504761324478527205043998421280825514408138970555886277270010499507381517635760162389234970364347385028139166304249871048594626884940546460107683323024826449655977211897688128391247671267577888788255542940789698880447251873518022382576255189485444432072883294990339927559253039535186068215225697613347941673742154581724768628551769900281588772831739305716341535555528806376476015374885768114712572223470619779127490445689842135650029752893540174027446353664013729443248318489308410297530684243641485032267548535654042100436940482964840102352268568554613908918394486203298099049414327873585157591295260224613850235380380303277261729124463565066889494097089113733445168695479107408118602433908441187675157878445288337352913628145349647234785672278620989596504992055496210868947533728216247150355096880473190542174473819053158742852889965139165507939871938026311226948162765254924150404634921625401840070101876264404801508492447066339795990093390954954163766915371559509125672678116565575195495722758021090882853422852097869692293916626289696222881300000343860519624651188958599599026869388786500241684203207501219111908220245714813778416760347524894866306114423675379587504698090656887026748866202065275435077817459285990282288371982442781608038867804155561807397392428477332506333276012377709897290201905726410780868043866688387718853206661035077142136824332071582740424483399803220571413950493670461096228598375721815650222791823457782614097710802263689215242501884770167879517319005515049021130105256685942348764841515297537059590365882591291103355576261970622133114090137272105052382693405514959306353394029624566545978188654449777410789391373314457729200020164959727564835163681482138518501648799588998806884560834657092805035696044839692375871198760211319089700725478300738261695269732558109717237627036224452217711333042052641376217516229572970265788917299286756272840067661544592205231722191072431757460286325981368768068764683836001893458723495047529376493150820528825881116041694199409745045148371406739022482934980758690718525867684701393622986025241390438940927185154825498285094641636639914178941087167519976348251630037919212233114542408195866731624847695847218619721724971541004412247547301762272575149225430134895503997827511265008857171928166779257063350182680097773783452466820084485943009299873907491018070376379371520460643466484801636945414522649291569402453575840877687822077332463004667924098388913400700065914526265808847258531565106370685133932701788765084909423936951491883536320524474380465546335683058445918479796396666785495703234901874547351790051267774416636751466799984341907557570879598637891662203573361952481310348318110711459272702314214844688745081677865039208874463937773477260566246512777905279705652316172045426742859965733757187615076950869979362228611823369958582314747046119590394448089363159550931772397460752941078594825226595471247331935112677544639508417418102610706829720245400361090465004055647814783753453608238336636280837255945429613325575141904159939656844268685140916902424165345973280567543182196965523723409887819843740680047284064717036889821730151409095268612333957693556836207239491852000401566796916565559334750895147502930360139510933726705847169905139939801520511058346944482222319145060726454170002918455579429089969601767274136967381564714463829404427643675795955653135018802825369029221298446861059644013018317595548016999277457773708650724086037179243607647781664211707619339010839108529978709010261456672818997663793321611260967350627435937975633502502745443894413774535192207370519002880809159993034844377267134957234018434088355700034897495244274904121024996163843395964378273527771580937627036137940903473998837013600053917107599187847264993426261421440084756164977593856652603906971829219235808725195029544748906324069735998622320840649589072928219854493386908033300414345105273243258282362997797904276201023954340276269071726573290528965786914025472055976033446674295734205487667000544752011893288079089831462643979325535031631801095582822673721609000552425301588167987392039958805168365938150208629415546266357853697755689485729632401877448175540027263328092686393199369760042103255104484150994179716291366275883477491158986515635063655644745164635858535926636439824911353330268084457855675266884534356176724918138736319062859119923652358726093746360250770494716247280586530866701620710608234577675319849192935377637616003986037457511356033469611924117095463611590457338675480862366873956969827459022599499656442552631287483556317443697752828678851257165920474885926537996792251356113033169923826145491905265209469883989300071888821002835221794669799354509722332803885779807895241289920452493205131172529411107293591178873090346463009951200707713218984368459331757348384711634257048731880704041272476432061104690410492682497459431963628891280196817624008865513756158967781898147905224930822628287866586249960083198970845454041226346790017132724382991722678246163817857512461605114980460788508600670040841520135087339957496961008126507792632779183055328577278696338336586752072967444643470716165378008301431767056563095675871894858830947055714276638820171829990619498995264012588775979154361324174667737996532642680793863517773793826328108052501314687479293799332668714009266490021712073909977861331763837222869867864684025621589787744032775088489649563174767660228305698590259816905593820769678915528147066078237097498318265017412797519790722303796677329183741660606596708069671572967831194890146845818081614411648889487851880472903635237894222056750281051378581669547469404762785852441180749009524451132965858703455899285566894250225463694175968131463430264077279144890264415884331017755288886186645754058815715091531855568612158322854302057400628641082325766956570965442136319772049142675232959139737623066825519807891108345005365725069133937900999300150528064480409817272541588175452846912398851011408082442365855483333308777883954041822174749674292000562087929084672767282849492614336468757920603221599617961973013767731381665297232309281280871027866156786472703502988051446532467728740287011818618613907887344584715477918760975116500429543456878460090155173797184845551270963974975919065887539289652375188222994013231008252592471104182608244901341024344577470397349070201937599619563151139653073217539528252330601306725780598094973285727234487310425627834452062352929247184364303327579777728050506659765124224146655889215948700700640076926098002309166415188012788597032567345046041814515487764611918710629048598855133886554508560708897060491042924321579182910374446410086764143673998355932720174654665884809064498705568234837452575835220841860820438871367743398821557035156867916451934166371642043691459522577188398757409462855534742829576313453022971689146566193188858978605701378474489621963280532379049202929325667734877183633474608394747169220819090378482639964027895030852764392567877270993291078392071288924477375223567530972033220371106263761064482827798108872110364545112371790832619853469982956320897044377537778181506378859801743288126826664163642094910318557607392572869576079005570737949398772334185768438168217252872873284274724920045072495026722014638851646660933360410551959043999096040177711257060016085871279946472219979233031081233667607748850241014282179355363044906372678850992091040421567102742875350080302301500809697969766614106795462461305895895672460833383538122827866369469909876464546561698619589408277077802313333951065685222127559421977435259478165445290476705511738559992512460654040251483267729805822714483805615678124700363423084826539359068366283078687876496405854393030652912685733954333970322856990806273200040325891122945189037257656527298191429912821137352394966995822892278914488319837274743593085558706989318685821421332842487628096682004465065658664431599774382626453756117752179679839959565260664299395316238995798827234060929344177279277975259969040862844626165139020960868924328611752812363971351978993655303154836109319467331929658797670920055126972543085266839482888584232563942324146612728694421197119123877915784048131446726457301751278563398810971918565610433945570478116352525058531016477544485819305885779484431934190228600117058504579673332410253784088452398109620727860541415367922107140377685583058101128043056534645968823724444010428983133916165073837774868083044878125476774992557034606844900260641095368772142898271683969088720796940474181700432046775028121600173769456887290230596400442872044909900728854901621110661059769827618531709402378470867257171486556977880091598628770591130497551589886647180943607906517061662979760316389951494527268461079702155253519379255009826690520966948081796227027616863453802922457137909090885952079536952224347567250259090843007011757275552997617215497041085315894530837169269004949866866713785241705807778667253051819441939712794609935749671630682064584004657312968236463879741619963166970135098246815084978804704893308383542706125777742547947447904851605541289405355209310092267519289115103372718469270995429827213888525573744906679066818234377519743761424176633495575986780343235586018565356774462655747973887216953586268728843573388468864439280046252584552586705500506218214974721550481865580979888767748542424165481382251914568999421197810659261972106312114408342868140451726213004930922288007903686828941853190445062479197105217363689723346142175854676819381698595940223745857864699243048108314114785307250737751503303084942908717935572289319895388736266255576831193259389847567747463545620745768804944459148780446701850089686083766121136799349789523536704831136522297491343602643548668788858285357516563511184061458971563236992081650175433953763064697592762583280687574673863366874596182204332707845960302343572421404235620609252534435803048104101536057912105990961857036399796599696212926624430152357455245549808628730842148751428912368739782085349363668589612932319895220377482798064468020940982729078786390729050081340177889908544862039662214862429753600286109458465168101326410094830603923719828683325077922571942700926689551927132987678892868240455974489089298917105758890162472637581641554503713543255858462736775307375813622417490531551643677456971782333194715279785111907562074411920923161584308317646836667163739630957876424185819474216993386551628115049104157932779258122046588971307295881672613305814685570946584773040743675908742139857579392243620824878642298969518216277005060604228826516025563790167959143270151316811013239907569792800788155733731828436852360519643035047193101574962336726320802539427732574895593321970719155143468263507272542149376185455706296504142952601287431399063315876521693267025559608944011425933180671070102185891212955028706677569040980956326683142019939970561077751890348827181200621965736596191542603055602092341403234487850006528494036998021880089342838190513784370698670185499488055341342530048855835617049541563337290135109540912064542015125234711544775319042725755504652547464412006312620220742800062047449966350805015276893706276207382669053777974372300245131285090394416479428932493065527074919323046657902085754662901220033295246247462254423562895176720159546752241424520609339817862605856915852447901166378965528294951446274757341370960860660761873260861282382826454519715531186748345902050524971844980918217348236420182793141342071978299733988255261719059368939786750722785626995828802014847329942572780013576040995292300637509292425194894776766689750144862019962995159110636910637205763816042871772081675411447215252122146880384217031470649760266781707821398183897418046393018592544787427447672007853471926281057032829631549668492348063723578056339423436411028251817795830876093131372596099236151743692456242000428892876991463554028919178301959844548957666594475874904437438085542373318307366533093001456678704177915633777505073986285306277880240407105474222539554036033270574767850303389561076759506939341275903762947153202157531806854698561116108338764920688924483315398841337218641204303136953152654692082433913563252449965783421190179013773595469880967125897590471624790595306611599370267422432492286183199989035441807459245911326400846332103776974079941743434640186252065113680058815552768512715313190384618814421372743012112727181386020663719467365465728535288871042647928971777458566680042454416378127531453304667008604242342298466290508780683236252313142349528573571629949587182041713360457897646518795159223312275064871546698275634884124351533672520541256245262583976048992012221042216086624429580703274823362133656798263277960536167864334939914488735850116270512518221415493998524372851790783081443867131485674339997748871497563980553508118080213693782246147928224634259159655552553034863917433609671524945847666733233275306549612972530835250945516147312107855795294168335431273949648092102726738596565826346521684336937243266565909896625341661000671310595250883054276798010673652110385392211792906581883980903177059847876192714957738525395429201751326226880905281661354866795369701328005963677290501470674798623803010734595859298785736268002673431890778652803922180265237507777851095545255775055695462875460421777121709286329296201327928134582644072848728042158905731479209690223665030945645788444379441986258921803184294044184864845828137484320228213992867712346532358986358343432116211193185287315225033123592348635257661405186801058620097552424206904242117354511347907187736058435449581459945043679584672562307995705680600122273285985821800956163515878277890478847813777631457053961411001119521373332003538866944508638747476070317210372023532571972168915190892517111358087916719329783550877166485224392259347390766886408276909306424906385415334938538528744719518548995893305743918998334350273137794261280094382726991401412869512299299173332814191342392461800506251228388005135903214079653248237193625923168347108443578921474294864840605956984775182387142011961068093978948690178947847995000069091892604219736930088887206932564245300610748940917867159116063175071990907169492133078676469541075681961297785375842068102301641271249198229315271740864264921172022594586569718691105398827073917224669272910613898537768234471554095558695975330761564130692055487639630233843746513368412717271208665772733888054804401685092492697999124680279963001646777692076910397715724121985702668348705958946278472333805752487082988488085539681280724302880050430457923467101983623707771488553983246006890538939549136600002471740516076183420490566631779991309857829108585371366714501340082399111914425631305554153302301032174056743087227150515091590073071960771332096689201204383898265107171306814635464549757310444718019139905228675311648307312261860850087411368052244166310255268197730320125966127454556276116557645587227363982266100901914441635397070510734804229115480579184546830616883321935078748357579438063589543091498651816154199817421253989857944101775193643172622887860439826861240800906359689326076653360580355983881916612711866182147427222808085125488748173351158105856467011797717561165642415899349304809929696003223764273929888170837847483777299545876165833400123232577981946455363141138075570423462601503637555050560842817263642567845500598674274567499920898054158317881929189624391144091885701814662305739532871130952549939806287455601277088952204459821701853345318773168572307347755173248765207108270034745572853019653042634536088630858611532607297588730477857096243782915484590328598622455368122145560724175023088852388559112945810210834673422159475097659441807882968852841562139693328358719384173159541029406043831809344013358459870683939545947746691246377163453619502967733413813328392573882610736206317551940651688960659885324616569992120907064301490047386879040462365578550241074103528199747238224627436688093970714907037161736800758536718492999918861322386124585732333515802062691146425721383966697673308763170602835742136040516520219705896172696036256749605604855191749643621628003343754155156756558967863354202488242921442289672139514249054344569212696287962511383627382690572447867616278286312948167925416820352466300615156209492862432405835629690397040050677496469479728695630071644011896846109299722117413296202808714617835996250887720973954416505961682602665494650316542178698373365272441363829119241705664386400255873976683539981948594808212706979442753309158227350887908111917396460475243299758343633241583738545215526035596610311496426406012496507903254311737670939372946329141563802901130831658736928089378394732323369544275764686950589851244762524762211916633396178558082680965767465357546052462619238686853955044465598012948105433502433884439604747192577386819721037262035642406711455297970084783153961328423803195164154746554761300439105463437410953212883773745329032380121430616296160736790726820879374224282044553214679952003140320549870053120277266177850312117800034470835826924910103315089852724879897278777358304675738709785020307335842650711580494726174484826299826829958051009203793879719248009073887067340207410309270725903155318004778960652546611020787215487199393674002270124165921758699711874984996689089547619762706736541343761671585577014037917643771591783306613155387559981646372854050544647277122663798452908384573746223872794700254222196983998534556791007347592016715896211255579900223617933832662348808915654706562076471708561854939422881961627007071718514747755833072618789418468456229051390627610809595365397192419260032852794812043335449722084802734960373462841843304380697184520098146447586710661849276398625306051227306282412516979190671523886308490146237682402521269731393748625789463300313492701761706720575176649285544103343249465554710979480068499290011945061512748447053297253425711174084935497643186894750941435723841177181381449178666756447069963980511431928736050603806957372672280702311238880444400532824820834976063907163276509138688928872886685950379554142102666047631442585743413863062049336089797070532065781411956649728043956232706973259650319091551779470540174290427098736516121829800202834587540223418751811453174424685497536612022029680780343172235027779891726247346567861277347021606634423377453877868317811084784129819459491083932077182613539658093607870222858393666817111371309916212828781669344876717401698277101752895862808765208768635743413576602661184952462294920846568479321079441286965432469166112064045728529187109114135455380304721173862143350122906784567626469917489574109944818541015716188414836693509197002919786121733713248829672516178849730479988522596230923685751065112283118969577638737341048948125423506156675284771228678332968867382443801305678124939818712956915162069059113377000705832560460347351999021675748010838390344389581453720744097496012220922646007461323569818811903110973815895051542968034556931809810092735541547424792092132552158507191926093547544166287201270792555835347698582849142461030667904650254730133859839576209869067889125672075898652781643489615715913049506565692429271291554853077393822534375858307212826738046480483982012068152318920981686196043331004961191214419275366816280478525774443525872432764104653156928830014182305879626915181862709228772430872808176426532345287303657671041332134404375679347138727012775276423709528869804758635636725740672041327725616808675141701723866898898379839354955015898260453564736556069418414724842848427601709198378254222937340247042512635937430955058770927229986061105034540763327159494413823133181227423638089090644347943384331980350698623939669260423352015306003629355543399743036985198008326606534936371806937663643189920523626183251739634202561586277698828717859300361791421018398658469135088440956896518565597154869756713132497060491313581937166148108644171130240576251536582747200028625594564540701971513313767147620473593361175625182708255249272727258000256296892371857201504679922947713632457123921438282978255342371031834131936689091813151548269835212237017474644130357451770552205378531575013463057864589443610909400719643073296426437568052128851713539048078498091500843612997519828737544348656216518465977711036904261925639257707290047801815852278904402999499995517325285048311709889938326244485902596141102534960639902896510477223688480956928832431239472104957325292071781797578957038630224413329832171537376361468078095151798697664400026439334063599312006892772561852842917054048339619327099641211229411652252477633662253410577593939159326065874992639118042541630780547944828065597682442695403957604691507829822937157229723655721982374076993433753913525034043524777076377673200445870561893323309511012674550473270581201691843329457841709133267311932923458784722940834103833835258225877029242264293012785526238791074944198545619667886751887238535202551785046842649033394858153139535600198847636708243713069950446064973327788728735611519081455310157955570937435644874185039816338098825702379709767245680206561744143066249522797216180490989978418423456309648312880381592945705207884591497399288902009748176461519356614618572503607210161843853550794596975677613984009947727196937969039620663687748241101562069431932830258439694666747829737735317607596469734165048785557123117708645924724229765249182063120381748506984560420394702997374766748206103029964618643963267456078746221602121059548619501074102648595602720680433258893927060563068469209509767997476685493234552650882187060381536918985826341284957677652396652857966376798956897395859145999947681546579198014376165663122179607811546611619639941642776891434491869924986532970431259721603814833735518319967327487621520578901178875034837319124633104906077036469304427318492822144391059892570933945067656261891951566676151837077474366210718072558723619333859782697895011630008381052331710347849153923846125526973256000979444625021084620753623212213045534449332282562189170177307739513764522122892066677837462358779903907679422874779091179079484226737157985811807375074361182354123961580491128051903298334498987248957853271213448945570011919894704880769802405357098196546202246885370296029442097565764288288797313970337545486432718276566272372595126200536967610757768794222817114385728601095722935955818626959972548843993685555994712482833329554539480305091760739235621543559440880467493044827029518036447249616974583627792452040719202238626721321487790958965900159142453687204274482439841490995779386914366962298543950156362716525191542771997050090145650077705863754025436606040814534061994325905239199958804905856967945865213690428314242626875887444811880235057723852184486885050938429333680441693821644069221246216093070599249755396770153327798066820969372967170026553762134002137899872152025789237861308787905714128998596795232005999588896048269627925502761698021732291419390154414064296084066425091244718496258890538435923121127303895870299700711276471841733402873514739728804642646855360919144058687052049224795110002983897690444031074301815083889195969479805379575517803385565793402307171156575322746332420491030856275106244829720689060720763833746750728695872600256805286057725977494583430395851640936958288158646113141099721417781483608478698974812553680246839453488728857247830761477593655533873497473037106643515477414846422025868458875451965212854451740331582204370646137189144584858808479236044986754705142725716486098224056510819550495356152047333924981151862128965877854647872600037228140393121189909244087676738698516661219453411846321596136809554586725930270610056807299673607473189903615492959557731952404411057668496715756858173048985498067670908986394601591223739163486119170199087656006203276599805963992187680155811294520160340621354272350310107018174648273722050305992929413256960509797879432976098837389201754068070556071489310854732284449793049702477216546090697673334703281657865726733060841507222285217592974602430576467391044755140024381685519863652855040553699426703058382372260525550574595390144175410818233705219999907906293556373387732095696898389918590338379800372770359939504404674888981759148059408277526448404881580174543694365572888479808204474286412220145656124423663692137751499141749925544606071620873402613901604219950036620378385545078140567747828383874246934718950767801257498174406014800155797610080631309916339670573002111708907377853316999080555475424882200859448856754824073039708981687170022314312645101480684318108610173663445307822935824961349574444117690269377647105434379627525180103725488857395606399973704001688517125787058570470998254152529535915919460261134755819228229652247693888093906433748601638261272368480555456663573621877751818677185268472267978317016689669642864265340520240555983250124599778939583413824034050880162800934195774489255642434531204352016055883312595053335886725859447260663406051886899160228912406756564445899139540421074628746510362902382649060546621923495565135829483849623110914271331385039047361121193970427698565049592975807095468298181083068368983657257434171337514720412873460618445489663174383219506402515105446760437232254280583534178558519729868445906976424716049240124416645908848831909011352436584726340490866811612221372125287942427563639828266142315628970414136642805700884100232815368816758686036762995496359103271386825528947505704741023978617217930911747508790488853115934778993639115910334218356753198606163578811167445574130936558435475454772568943126354482397926592653495004471030528427619192163182913882801081975618689266030432434920395614059190890778225636642872334959480823933250534587295757453290619578957891240331620810536411901743931106679716686587812295192983846761948320893083515293323404988089009852777869574683184064849628281117200537209551028427335154900676766733783153413120362832740248496312137182727220043341557849399083650176848896117409625463061883784619988743751467374015170759145892494218092018568034232277785508959131262892141908209752677350263477271825459527906586546651145507366701605708187024425764141360198536320083121474418790100527304092377993530604573962569085819119696140483180104124886006443191695099086889078111334478738043503899718824139668415563136890878058359174676516465446356854551806807497769396444689270734257225955684051592718414038002968474100966945216793795237743387473039091555895005210337739096838866366861260955263043584369848403116646473559581361722192152292722478517251684962619088165120853575721545240149028358296978241817242775317885443949332216326915804117432597290612306571001972708900823023087251432238378354058246971047242784670743458318558172140179655762628515832726623685134962573163866266955677242436137645242760648080872520619529488062149804666206233470550537493556410488861909401990501896777883197722654573434079897451935864444549168865631224081225813366637764031562627295247042661571254505375840773386856301619342937482506242038184562060351561314704797365862160587993612479196886422565419410257888704934388809743153343470690819781873581699935754114602203665112523738563821932646871998964244646764713674650911802714320211326469162372998413950904088201254257087710588200438323560761907220468792619565337636837201570452694390537645262204979529451471815588713044015797559223244907633176166763364973632636305385733232972775529046719298388198502553363189710870288258052569624976145445546114734702731467937617663335377963546553766447624198888699913750052852787358280522339190453960170405199252503184722102983533598863180975081360560301644211786401803943380964668170643432984311729380403122788689818278160489615799841150114323632412656353539222864822216164774963856307918650717637399467388053479793046623809382052764819981397341394106753571195245190793569041908556670120485390739369543715458713845926443173456681053693376286281884807227200004787372526035489272577197659053139521660672060336148994088116087302243924773748163772487803105983116117656315829588478902266099107563518970132806594250546055765627732850239869459110450032025292706941172809918254827790216991732942363246497356752152105712997019853540328182971900433650582464711737251221553928019683792429776677764318407369909845014634970157304786689619190776056027133915181757711084715611226906651175584442400195842131507729877369406810531864814106238587552672094887239774215481895167035512641618764865924703904414287249616237250498489237733151498488265216137484320011627055791317517814505912879789503130594124539609373247855894492799674383846882591063536629954087559687760178267188372885461953284406934429815420669819502819476052435043446476690355637773953350271641771431578771701347402555770106084281562289979279426077860397656996892571954384496778548827157629761712874047567411932560485041784002164554433198508462742601959893055137181542440249298816351139237711876999265000565005889107745524028420202397572810335132754532859016053588526928256526190985929391613738964085781270613546961920642448530411906170598215948086458892706968457251404642072739924284094543707821868889006835185637367207609508449944176385521710114643685408249108692115758231490322038851111609862667953408276015294844227670979240143409458578082019719694253975170776227595639458249561749209136183257036008261521430328716966473123711194171801123833944502106597089840827772268133415171952364782730782496980519794503834589670924858197571952077328236509163267197961398172306057542711016457401702425995290460866432493986165911123643253134054908544583866017899543905353358507450932394255417358175094435194858619808770485768583318874486567457288149480593270600376736920821676537676208220062865834645444757826039227224626797062781075669148140194562159417274599700338351042584731403417739449921876674803683433112184412596473371810272454272287643764156524583500594442699340547263751940912955221188157177518422381094983434077640925032533986066677206674172885590692404088422247081275231959816673205565315442016516910626310962424110391471814063723321115429096883222775326360152533092816954304537591184928500536957444894372709703596106213351791954044486645945786645484624171638583963409590421546113557485146768775590035881884851226418971269749283758235863593590232422897956430930472507545081186320037342740983516161792275082699274775113946084582959191659183505590964253903848294633612033310401191654692284782818529329198276712592800632181578306390870233199707554150711131973815872683278890134568775450954573814445822521962345799071068584342771228396473145014486818531347804532204776811062743279947260272655826892426824663285188911336000709238552731305051048983802586662285032086004261913029805965832584405734120146116095868488316970212591708412210454356403498090100616714714258989055743111501017981668445310943109695792900361253715070991304192504394293964816430973622242661942791936279582017192592754655758417957378388395634050840533240729618337778286415029437839955274504552730273975057269269940405692756372775372193207817684787579706447574265318757045582834642439006889702278970910061548143424149438707985120025249809656372537929250227530919037317597771012123075289396144621721621487978686884080934647032075383508848769119414251457264979146025809520488220632952230526084679682559976639837018940463816309735323892657524481212560843950759934967909492084330464295988738750272271724609105179588856066528795239494333479026827912904470057683385562451532282899588189017197854784586945978742087774906476244700162688326239735577237350429770111243889724013281448251052505867684040551028242522970861508117754048699941224100859083785900260522180702539191209384692171338318334378112010106851745793081243692552847363915277265024643311997929299696564798864270230686732119223511856679008940738102080222505881217267729094227473430742696452054194609861568773246405632525787371621181083299566944600110164681665405386733799348179968440779854399466357657049126923053505022494169689446447713201474602535652253735282700356997920602784298075297139922184446846323293239183800280708739915929628417599650120985042341953477722072840163404902792957575656238098033692242180823401085457954377301888076273847561601102551777416499804139302374422843752355523632976480959805243474835714316995021401530656239690666205908151165040377785527285923899903818853610130611911818274911746798883218054138494975669689314424742130546459145509106637187815686501615430932661201799176922925574871942860326578810200143362050006003772963724909799971735095875046196979404654394502026547567341071864433234996596946376031393418170872124890497302635404099893352337911634050425671168681202463298669481359332994724343164518710096633824134235024168434198393662902541260057281496228487429844206736632302674942567217802850551543413302381546005071649050239114812286318877099833639539668400142441435964365072292903079608594943252674507493616050246481485511293232145030157968667103337500681959753470594534656442472327518002397993526879109355584063729245992843256027135367051389233949409415783603423161106155312524946177896220651755656411770180966544904461449430439436420588657211443717991333283519232465182991478168037746389452455030021185271910931019393667793903152130948979927475161845425207420410231170618609519194548213315387532558403081528443591146263369093652996606184253945006775994710408619195755136987512564134057414682447491987473851483589792328512557623502768398119826819704322691543375836977254051219494482228259908302292619619964798323698179061171931587906914154831443491416816773020445301679904373458044821015058393248636617805310232232979022849743350600669210381982545702006034487819225610567669701300277566045999186447858679981176697768509186601407894380706225073062532057246608218138856576689720846740625190160106196382322848097239534074014167718970493659163028463339609914195754042750964116415197032735488959203995237839383416555200379532022601618515739625655280493885922028124013645685096815047847307299658623962600591970428177339835956994186397397862691303983969547723194863128344060055586068690818686629320971060731577491656670633692674758776543107656699553234536433784147495117705973834851026915393801297347808326585569745641604507974889773618982150823415178732854045010157274049935369552101623846007393760535522899633481982093651239905820075290012817892030795526535404257346854370767924297756422412380626294899998454400910520494014383421786138890027866635008035537234903366853218627778626369150148738077766469007809347504204732556361384884161385481416443884240703174288770687185335765306408559949148776851379557670596467992514161115188685311663239665313540838723831480410527379625066390756145155245428046654317611270413107419980579740285396694394175135057106102576420655799202038369216241258016599079580600077061008366592959713266643325167392369953554041217634545700761482797232716958118360440699824471573749101466342607404254159955689868547108591503882503528469676759754561648237842134697160518311754276578664196997327853554982820466791049014536634227211256569358045044301608158450155857459924464662442008049610078284077686520435290329715185856913002676178125841996462207819391935150010389539837024235411425668225521617969829281651612724681674989301428782590947831240451263262233270289813328097004177701910102990854300190167847063066533129688111084019549508863573039807753683817790105963336837719506725486231395341311152705340784492790832476378182930049778744898430960488259866981900607325754551296991244591138287484342061780930477462984307868853924523316972744406998640877250522734411528187765834510616723756308641145745972737761961891322727701212704444149502997026125888976218121927413041569579679988488958798849263675500925174850461231568186299692747197527665156006111128575297548079870651375792527091229922600989914250849697732769795353804901623763385599108749011128113034963213241208955104196585189328138715870760548052447592214072901346139586076801127070991000090466806234264266122233785291993829019915129600139946853614245204890115987106909672093301882691428642419700841818013284853125537776495092393947827814144244540953640796911388444399427733963771961972479152208056658706613384391001432138134716214700829929450075464430330553092265228858908985303882084181919558602977100047261264267903365643782532353818105116832493549577364260455395946392728507627081264397449654166810155261450669785938139054525263161246312931360479561383351952737382306211450878948073614818664247795640859195514567613521942284723116588143908533426666715853706999753194044060380823472765620331943196831966761407348721349471484468060611174680427433846361836504427865666356951131014821340113837355246174132548552970702763749965806590843550578240828791277676260171426673911068267275029316291825642926904473609473443539771954818213776676102450878890834578279585333589219733231503388460960729567671947070606854835263658645861742891086819852870344387587426705196188861987141639366455817800632111250169319013120198500817063521894573559398411586476725818273046694934079494194505185300487432573624731978210128101528026322177129525319976566888104879174941073790768676360842436474637368965306495062014659151892139405947373180658421416647372871491735781013896619024987793940572297130793718847369297982688153190013450196593581555547276739141375272008714136508582505969716704689854167052033268611065114610700842196613219414232422755163666838938468406174456238820529299706836057312886866221301144699405259490889056558823481159905880825493495393081886652712133618097322259727064732916237941389858437189200950525260170006272379102310773459270471724471028495396271475171563173682230291612668491129425259305827532325445931055271719139175976008386822321661242310696846973518030503595642010419928415925889330519165548681933260435906700342169305332925888395157370815173338239172407895121573227177607962187657154381467689538031048531126074433574197434014326953364089052985030506707370742122265263937593454020184296575639997888466968458157157423275455600051688420411692864600945010535955448415333152420743405398879095467395607500829651610072134723632705855792977373802026116818873182504350900692121218660619422078074706725378917686142465149994259612018837939785840147006285597074575991146469392471672590096916311347551830130782469281225017261165867008750083040905101670422735811202179475300757938178687373938150641207978550800270429240695306649218650363502171965834740137127532910664145262405209152802522265276916797340064646931054749863595417773357367320167676324327561777287214732686956685719985863184830013782993104168230586708562752004622637918228994583377976826412881623220763536774688230939823848530370684536461453466760981429346804003149223437273320965676243094721569026931882543361612558124775043619784931974659969114615675047357737506238109462071316651756687336858472155946415616870904658426596433852692698057756036722792921971316010397197034745921186596741837805698439302728357861967475349333542081393867286884357554096905087316725338659866800064563434860141954582759132883079189600991655402615255733874814194912411609505581911093229726269042782115311852679343151551604908801952808135517701720861629202911357232719908315714525900952301766450272836992664490126210919657885153800561572750814700478471597029155355565452131989714705956661037328503240353747270275576210073480397181187134581773543119035165282721922511603531477714214626363408210743903166116161209827453592465404466387940202959362613034999519791135918640702696991521551629957954166959535603890414809988333969357589736010796185838784053529000778094810712947667100246079837715205631429081547578384794083930905956818808163402612088716402286383766152639742543151151110723951489160473508098181799849039982330162400733313633220394893304042526848587495414367674562498933532053631887058751545762753118643503263575691942917293312654933308927982242301270270813834945227916285848121271407506885633357411914903633510105517543360183659631205265428630864407228424071741865019084181074671632473799603660430508117427886980275525035492333317473976738693825381851716810929310268261296180427316141830039450655805501185352162766183494174767340339347549702115480322458871672858190498987108377709436095719298635239269558375073346142425808085399472244860016283051075566946133841218851104136789758896418667548633212727457830381422191018719962495505844410339045054007568927343880620093049593560906652564511963740521437840455790255058659196692009004292991692073300589414006082745493431324509513217197413118709134141487965946004769493581950354346154697824554481151365806028391625381776558783882474758726895295532887419315045591414906194764295416167522077998047468963591154853049240031135569412699214774034262743864122003179074188304790777481895415543844475519959782732679795796814683750250238333372113512422282744801230732624324766124359149142309973777245190058470252465686673436191998898307596692310874093041306709372374836457793164382227575695771532536480246327239977519919667404720203859347103936349412941953209728862926814658075905863512702224185385343098137441907985755315192487180550120840944888759629409413848801090778772690170872222586010127776752236821141622152015890148559399407763452870444746532351651866237746225324010028027463976659263174979367871089368207602917949429410324471644258455378798096391513828643746827491004906082114994136166504316557390307307859686829379103245680036433693823425069356126936832346040604155625390411353872482952289702813962085569073374894304413557508035126798099983840990344245765118827940880554842573039309180222989783843517395278032669166522686361642951798015046491903019380702185765672321447972323079011529830650783143467946466426573159684927251607599018692438312142646902313144121111203339418765705566601747242550277012844592488763628065636937805624742077283351733416102273220164929604306082702677000400770308479158165234251687389659165421034374685477394610540090697385718631722559206716708757113828144331231489173531214440324937600981142628745030862148061107428248416729063493202898502644419383951039441028327596595847049112870562644426464951473614548903150167838798770920931495931795440383040705137443972018834161573661088256164682902984228751810160506887804593561461267452074752882838606149058420798439456394489827271979706444540927428199903204150497863536038777789604824018908893268699173668858786629366142446159420822284874918647145730456791943340786255848505456986480447740363927875931620874083306150370212115978852384678821973470967889301947374191168113021316530428638153762938987088253048741650395247453272116801536066155169558092962189517177861046409700750814489055600170387902533012470439656851166821682269669077972013134733321737762341379785718853891210120704596802794223431638224794615334618818434755912093020659925239342867474179166871072306984228230894347768908088857378628628558955118530302960593333323144265752993089498213334325300274173406804711109447199276976714547189648980928757451411592686643112395511235123841469512928115383671644734117919384952057877049968673974052184301760339969720533606990737854163918983083404892493974389370579322294593406890317533662469995630210558948235872128440993913457593129373708137214871053112033931258787491645118463559505854944204889185339094735050555025245380678310578082863534137089398289323414830327004068976702022758070968535688836852402213267475480556280653110018353191674853607865177922987537616257291629767702745439686164479650940046668425455537001275205706800122062420489193394744205249915374786555038263691376199597726088640838868996176765505318659377715530247972182621184358575747310968766621782288977445530612929321981089976163839754684896773285929199454190388504299310535508537399453043954129366640016944122054006345819905902223943472417985871352152662080004549359151368500415511417843445505954712397102750624817264886488292360914635124233106377141386878096014280709237473071635460383807544371764484357723295551756996321212847131994637355302044456235182415517956403756712108397759563454398955721953278614977024032338540656138276622394736793168011170165065400477701506242833427952171594800334643272543634906901915326216543769099390086128370295898081576000085565615858942094845201489000473784008623555443669173175294085859811853032730711759706068298438225021265173004122456469868224325015841426936991563063562860629312746006845209688923277082006410481021062407934047992449428294334470371165640543169640964428424222644863246138895894046149050327811114459013436919059904517747899937247059151211337970614483841895640019379172872893345499869962447643916489012219834504161931831456427367285140539624354514693264467578545718191267392034514716209581411276985392766829977762286374989265404980443483650165755179067765181970046183268413445196501761192555165954967033856162003992323184979981990505504164062082762112521623148385491795060468392274912371035340845392235451737709620963252029446115236348350773775470879661931280686020734411829699884018020445451079121194021450852336470384128784898430926015731721368144611139093673635643275298372172852520268099930821896630904123912339447884292127311944056572312163853840809546163497213274470660866424998784868988801124618752097862288192481979164547866283252022610430700186213609672373836040253407349501541644378653405715942102737329516105660288293124715942523768527218178001256714541324080592913041598139208628647738276667506285213853010894396527004945620946671232470095012009913435559775168709970861085805235824323097200491937062214994808933894567240820844219889176543175521404141296127257007405705810127108610067085787620647220784905303579652775427931050713888651748567417818755970505299988183501792153050630049584333049930004545296364930974597577581257382022218403498189681321556367363758271838886033349250561814193311705674155788947543026262627855954701024574498347240224535300082430463761446922537813515991065342590057444248609310190206630646061317044730761031387988107593652791807618170636115797242410630689289164481725072507847267447667660962094798416518410927935426833376469981551269029435296906905101598506479348996429500973781232390766968623073052476908004091746408198653101560760013221569269218175417581099309946772680338236904569146277608236867627367273960316671648964797359067834372692779172880230456871841506613706836527433362574195123394596101455838363438586055120699309778579079804937411041824692731654179807543473829005050972136209358071520865172065514403803365552983482663633434241338191322378281358507129221390091074821797606322242386653513792544752206380199075089086256915638234340626701238099233928683287155434032492183215771621004860719570449379452787697007455386002228408318865042779651686740161376376731884703669780277995499225879377863899930223375993018339285270917484631560481245228839468873375035108445334787518285452397337683652755177059548021123785623428900900792517033996254498541748283538290154528754312180984488853075588335477847107840313869932984839242086725734210341168725386337661141730254550857343471603605815797832259249757346464465875874351948560559999026609278202322952381235505455974296149773960985516999572181573760121854699717201531698372033082684734762365457258687217891585426930625276174677971205824354321480945353684816247804458661832064892987089425505304274168138259466107675227881947000771940266038376138564893161143327088166672325163649514724671917253377823688528476095267345712297419945670604280025010629909783354281092369453444182535188538476363341800097484286524862950519601154174564648498809946161008087615439664605944101853962251854472043284096116159316726657900307194781867916454793413513849911846502531675947987272576381953092029868493086495261668420068603103508263809935788067681817710579926615188985660035136723492506420225805984990397741529666630036769195015399737365846592048831267312121462899614010226816243366474279784470524241602470346495809774407977627958812274235138853304777401062641519241027611899116492883450071902761192038018487741968340864289893119876523544986151447720019518215727427630474330987103584143077280536894413792639235187492364635439605278104526579983101742230214953743918066811793878636773661211559705841130975198321280526568229955693627483823017618165464001168530387120988901987339423673938411816108178884552460711173599879558244511223812538976607669460811213990656577914499294595915627723744497175137607416706247957138911357412398556799894446947046392672266354343398692341771294697275296384467232291259263680286619415415229660657891413267319423367041388876900485571860246733708344176737036621152333250521064205997793277434235291252293982023215971761383630242331753681338032626764110686946614661505986126747849023078016996705258540592947199313957864104550361629461955183044932068688071439940240730503424857422106900430680484958961062077372503590837626708748199204584579574406572672090071028431236292455417705321364131745201931875673813349169573583162656039729324160669017693231909901260541537218781996128029543337267702747426004004679302796515287089618559182692709664873254650856603579082420824355186566925364138998435155633364115880753794719735271774978471387882241367242096902881254293074834295040944812273236491865534357132233063079685915791468451947292059503597164512093572243399943731302931498360857296672723337082411069732363319278841672933922895830095412266027614390060753659870231932517437707272690580527163521977795744930530635794419185200489434186398398239961854804123952239897801911569317731999750933725653484938917223152514348582966526722581891110577708994866573363325739867130036356520301552246379525118286126333773736621909983513692710808160083694999182173272339273815967058497855158608438675802171461549106868154294818061288089894302718011615521406174955717954312118784390416911445819770823312822812809657928175533394637854685275207780100615386481145108381691695363478651233656748011994410344929211764214973337092538060739339485930549031693391405436398881677755578952129706257345566859692934914860965447957161450302602294159063597569961153659916470492970961356268469851669865918405274829415399549342883405756604855939202941231086603390176351635601785520732370380483346305928514258659232993732924345286351113727033033637342173957191468263558946885094490327562420113714599700306571095557782483336714538867769700522090788361440310052440632455069512958325988569517772334117869415542984078683971016205906601211219061257368672091076549848899753143887047327685248417696196618271078068123534446383432005465966967875014215095517260346432447606623143647221198173616152079706760979149245170462363301577985765606624331033453640525782751804763964621477325100865497276667128749077952068803629189488533639486398774731836955696231610683121815376276064564110955817368468051570841810573467143891401073974936909717576021105989282056024691439355194189123095105513873023423165380391532310334546110748841870181367516211338006920089166330161286255442085394404420322791854284323271206360528988283381948081950922829318970433607448749044700599881949888213115103380209222197956497044925399979046181927706042257879721616334648563818743533169311042125396988988333357634049295099933204619070084645900848736420821548070096301787705509530618361410827119168459124860637666634990960193393281805160207591914202458900878226103036531285334542624977858882085256340833200604318830783988072631660272644270683863931523654833733091789152884337353700253203551609791650031258813309502109503156310879723052121377909813067300953663055742974885834063923524589124648270046628308169706783449887718276371621462076778021886143744549914662883763376495289167778929672088194257592315172750184942351796991830112239710703836636544896014296200614644830586288931309783844734348316488199058249152901921644317312897298857311645375635048613616887328657591027223778970908676002578457188997124678591360376412236056673473704167011834893815075885590432401793661457058849965201498076759592233070773460608670347431530422884278055987082473871833180740788165792747893588965742720034661783787975580055201459824544046976076130182840522222157589641788096269924352131777014308304329814422882384995677637375142457794361107032001077504446433549806371672971426471378397792831372432980938921716864603158139877980017493259188581736514657869379906898235304690357914090778689328437959879618085556772079527985076297380779560941188494780856155508280844447960258739532680679244951225100913894444772105238125508980126489991115648949478186225389340785136577463820363986007870519485053807257329640351601625959513335686146831065198877724337446746494177366332437702692539003025847706815460860195320060823315792312190621608459364554184291413385350169758510703914418236514254619665945937486807927466353185556421733374452303710902084590665285708829368389302018727734553332040418839593454109236171924144194349835562594722012140423447221049467485485383005193386826973921749360044414193026718736447646800390976162073754373523718384764982717259049071607444835331323581644991144869513011954969712638521122771915885742126786476930025358675018417329648525372285747738519096873368631590010650903997607930534073898370215914619972115002234112524426097869752565155372840898084617293166722260727760981896256111849214324637595559781640274019775593008386285237829963479438164132356190958262058952860852857566384058220809387202616911513850911698952011019769034216022408064107072649656028139471383564726779148386848557640036194122839112497840524685435457881599814628328899154539235882085434561923288013803793377070053220508037408293952248039123343090262396518887177880983364724162190477219887833389078712546979759652155050695773436058790574561543381885830178178800291407350386956913496349765296906988329206391568293501825943874827672628450552013865254347820023384142570817114464247353466386907931074179501995478522976305501155023434196275295002018594891296410694617094589217250454638780404799676431811406055056233934476452812025611950266180711075900125204916224878918431274993515833802571729638269084669452541143691321725224297511993068926856665363683385683539007515477797085097195985919864750341883850721963668224683667653805618680404453001686348224849633679885162451784937658601178214732362374873139288068451544670418561825558559773655152326052907204047212241240177554740071169150984292715268004753639020260742608622092320268631452540031208994655386219358991313098554140022738988110576055855893491892249439649388786849005297873236094704485312333377749447417856095508876251475117023989832231028127976397035537287444567277944616446701441053910555662350132734973718055952648161847281442957337607800824940510730806868882975528873659491275865413603406355037907808416333630336895492402401302679407871824686536649227872586541224759237854148985597185971672026607139696820336988823577796229978911807404559571110684154876289046035081068720715439657755066801249699390774489087686213383763160140399146961456020753466095627025289967507527569460386435338517351872585786419574878308610631973963559118947229798161031221429654735492080874345056880748812257287075722285755119300983891028613399304484853565916306513956649664837134532254591195489009155914067429373676994930359183727854384310337643009684089213554047533498853786631806438810919649180189434725956908543738530179123506723718560930742799839586626867807268171204642268564634368969896702664229745056099247662382244892289732986034851956925941086200940534091904599198528700440464074061304871240065833376995397799998121629572837170779813629585911279910337572209389773109329691307341289307568769897606861169671708599082190320721562278069070439748793902328798624189461974673981159083298745355248859832264483695884324118578278843407457235297260381691148990505026460644609129124931426120446572332634203542997404081314619218730351886828683372658657535050771684310001375650177055298512090846716692226463748390906178968670910344991754424498573326099564508058193899628013851082007670621326262146363708405678728906385691383140073523229453791107153824584962589356523493401727893109235342165432793989853537654363825649828576071316608278563608906413172439648899914638025894791213213233387461241103924030607028186353220365394590855431019054839946177498696978683375173274079282851126827604595555726179469574820808872300472028343315435237876041312938324961144748312759394642059897546432795519963560370187573232920482493282725541010508662089559363765245337546842356786271035363429129740138355481583549265330271695084779144843864201042853278753480718114367287119283930154586300228353470204272921512234327619843025086800552757922930908892202288414831583452810814585993363400389913545916351532291967380407721706314085996166808432374905159737000792266440335211572679805664407288951021764202550322823560703122451982489496144234930216904116702618105783253069769822866276774478264638558347826260120742078381234969933560966465655644449106748649564333517539880783934084568466079788401904210703344011483198786271933817922993775974838082987851932217938207391082421107324839235473994823419741160757883968919260247476161105792380077755587137287208439089114268552307554221794866545705505518816018360249615001787631501973788569117417776363981019650961880211683877318199331311602484274351188211625565106625339847159474329507955053429999840954883501526647906783718092819314856448148368129147945928348864157513346091502096352654636010660061608265964946446706941753211190621166838679517886499971326118060118665640314831392343566916144830699347050436025129423995681675638207063716871170761866204986184948759612260687391944532336089443384053236457397193521309522767647981901134859658390830393471354116791758113401544302319506531465625150523314265656924967028851624763163188677937716710040684593741586690577441271280949284354432896719287075533617878537284782879647762677898056052945443053491061421752647244977588375629044204767300158067812317659391156950003292948747190720359653912359457871273011205341795843087572372458565916221595112650439803479743777215704805616155885341093000092392940389445353677808687983566209951047901004887407585887539996234569933678523303750226890203159384031886343954949911056229869531149517279223958707704462605045673523132961844710969850313607962609393751631057720672896871046568405222293397053700026250249617389989736653887113452812565745261516959811200431904508620007816971791148895639152904543131688790882254757496936384892527986316871008321066595614130362437015033713994297907698618895776643090552878506920544578433942672080804299978364928189657581521780517944357551375962546725955827520859909742797073253036821012986269710613736769855015713764957447498684813416126302779018408102419107767959036138857561424672754207017418550363370805335498063914233087264631141569681615417236879390195627214039102873031378484065502429245497395379856784037690312241075670674189087033274927156516995544285844255039238003552139008262201965413464326710863583678820145805091847881595799478752861387502845891913613038897191623087176548107722454675982436453065346606101484509977231820533857274564827646107724606008039762044918045882160542130592732113461931274676049705022607953995951186322824809777838208416998738534679142656838501784974024859147885742067829715145093389937611591257130116505050123614485053769256875912214795041229554801351018421295464333543086921854518191711351611993653486465815761104164365045422743131122831406223450831005225162449293958647259352617629624595600681531944556997064104880877027255325844496418946115052274756492913267518284288923181497819928708136919938111108056767087503353504026934519569750062313901547563187804404881177751794587612394493086615456901606591417314941582016197266359303490911117463299895856371854776513890040155541283858977597283540937478579919049109901001721048279119529279196256841893565054716357822322247593880637401366472331240578553887983672928370014501487816881731271222950134867141710330178040446394886316372626009487285983286827408413386913628284689139342018311086959889999797719403738505704386942222961851355459419792551396039676308436049511980249379627829084052240432675912748895367430906560969711801023197368621285750531247610860924366043139597648174117215856156457448884600771645034642713678315618149444554569906246046851515872799164042239504602445940297687640894820142170845991448921642480239938603256108182932925357163419602611711832898136378000181191049736170320168331514634364994610373241461978715279880573968295944781013861579588959306465410182147643867540593845817813367325998742196015606030724274094772768728573142611365631084156289524567310443981502852874508448612314741209431546644833250126260868621441095175296391315361191949330018374514171323387559722836303435611765119834650927918194945244329829448398734145662074089057255683040561162974432465100986620185591067218290052211222187645751426274687087627980787285779882340729804461706545144918281122677479916642908966159256917310641465794820209191898087563766299919107379825809673791737292070699023971348737683346765273132052475152008458189963583946569921327912585688097271462571277435744103246251245905672139601778813038028930089257177903309221413356750556445284547084459475641248590916492058680859206889953103134550356449262520127545050330915372477960110423182368146941380222215526990994155285119328791997238358723039742347264542371586576933948737871603411326537639176647318056493888042050516506425132011396072861155542285088505238865422945393735351692579764204588211415271969899563693611736047020213954391776439400362604978445723230135926019559151845074738811072762676311194145731579890127310555891506258308309724276741935450905422312019212779576233008569671508968287714900667949992862766578707740601960109495334393804586832075346118943656911051651504879413869821725380814428894334641043034802410392692028059809232971642978773651963799614533790973296025936199623330013648264995478973177374692597971965899627260088762713154877290648529743496249323572943561057880477119511362625510996238846608715797147719923642559492166252108997088561562062262389554731084759502528768178739646555604241576114791662618136603971756824179966483611179360324975807382835640142701159809769556296560605429598531083390533320397762584352411891130602830739317243267294360041140764988044640785240034149685223618278312676031400934422459156196390349571363638050404414686450490577491925407461088510441560072033572725412128304501553173393593216227911368097523735606244616673479926774088404787155567704546956127305421532088349460377590868007167018560669749817760280558786207957087446571213976465343419690603198053125463386167558996402662327189802917965155722345590190195014894792701153400471106759695982219529657053378204789059786964467760025628673491438421266152671004863612909346819652509996023627362461375805223690880567108671816513303949527868298316620040360347305047775754416068535774116604146839663005872378755061437251659914976588431072598906549481017934028674370328072720964315500510275740599089451276427294786211699848368268226408682878839207698282226789499237994134186541188216351230911421288998935329007838092742371405832446175945309016200178068943883493839989969732638814456517281610602690892793859022120898950661328003122193249009860852558058333523773949913710697764087551976124930591678342990033607179123911638211040598517662470823214046518310522615727389157705860524464820350707992011435959042633001812183771134792684531690655528826915807767000867644584263067007549277549305233202022390097284585769478994654831100092221059857765162291280271523883975130103797365921361898541133941546345624596717490744191010340665650111770485356122328176672430690348745701059972288069694090180199879578081132327976317223945532391743691832281041669145998156344599887868432056088709848296752094294319255172391085207595307260193280555720616664487879904885787939902074781985547158232311740547061953367797859590047251827999793758546927554262273099656079197770758713421096592385662405165444819953204753643832914474378317126735646033309724151673649253501759753956818875250653137213715908877401195977995481972596257861686774293302381746832809687554222885701075893180123992483015969308154788925693253848298027581834105029783662162414682046547246165490446025097332619792816758950100467414010861278663481473140564369362527208546770294691918558682878533535076613262242213663150925309784609039824384578011816205781138053571772822778432557293017403947624672883398206340439070380708586579189198907978252272055716853351268940820995728977899079681373970359253324341937087882799823703893315420902783730718272666124645263968543882836334598113496610600562733158936125401921617772193023059500338815887272403476115635972287677700811040064599178176722465360800061922446995602112488713314204348752441093625143788976188824231642688723184089023392347807675652837745974481177744163194898019678087117925802600901428004384605755963405462674788888189991501887707228107063047229834664865876549057720578060035492770304655518163167797150407708148793977437052783827115721365091715348689897388378599204991896035872823206110117197321358483628382759027519815666904088147918281117692245291295101830454057407015120436200309904964223229409551539288611164108331841816269911548397736314041784326468824143538643333842290745708212181791600943335524101210703966442043643001544699660763303148946673908020281273407446300077272180738308782851731614236220561977997289558037429019199879892957587126807597714698182134542063895988758195137153934593956045015321295280358057987452169012561053601778922395368487237040212795857206813273358047950055547756818278761584749436116145586748002558792635449388872992093832627060805657749747844967277916374499223293082956550358654797934450498842663581667323799417792213271955744444824164000210222861362670039544316745739135506951476052531340228899980164529956562765057506465463526571094847920256876795499860295983775228987428176129188328755376880376547893714350297005419457875256297823077123615567937755503409795361268591653584468009954769560897694325154755641551996570076752981124929513434949646264246987639990095880370986239837652557918958814300871266349267912800445546094970922023107061795061983729528004722053274113045717128749052076026619682894890275273219547504102343427440321582672441110158347356898981296778097545002663656583793578718121968024708972099425376403610888065357133561857905555557551098655127478799301867071084675348896247649471514172692144679312684145002449761396841715178059970729916349197509225701117906524725255675385987719093635719682202396453392684541485949462285381795911162471514176057039292467298561481959277993111179659555662841229791231190929270177164813398857975040557758733857800951484054438304539063608645923049493115813662649394063641351282812989880365477546748437320376578204283936387255346253680529971164076559975606520669416737873729097894666937214195169230248775704366971749342287168089006421588865282675843042894811577429114341542779629209100893651148893774998324789177756825646754394512230082798463029150099384701531593404804468723304926066530138522441784345063550762363989351137469394697006865400066136807912544448402416776178335157985222135207922060478720634941257333365156496872857777194969596337922390698780875286376447826282428557167160500495899478039560444265587499239376807518933225403808694329985035267890605487245787489919949397165334146484533796472776671998962600936677415750298739516079906673162612357396142318985890228144585609128618003275450336683422709206905761751832766620309306041529439904764647286465306330801569610839901142183368029928526304851795616132622723425170454459698103267769616239234860875251194721836789815150864507977467955536398451879022918671982202560288776972574697804654575694228293986687748624225924053020542270147394683402330252916304611949660244749536334066084471911906996341810282996571131616579845001949253305481672990734282346454053295041314587780304634385735130336645920078074700179917626351503129046491410216464517263686149353775882696368462037484779965431951361397168830449798045485127766201902046560491382229690503846751977468889205506678954579230423290428167941963760857816975298932675478206948394603321973950455894889757996815466591050053479360011843985661547136158627529481953048874836846477163314300048064395764290767339070170384038619290478429734288402422385155258584964737031136792481417735718660261430552132338496118212447061403411766621119970874506837061550700438272873466163920857915457784606208837208084949104578422718876835729651873522726137954993156024008109217090669346911317736644793634119830095939827862991341811842694709645824451473160485730125699502461348158535645706051460087652317288635237076533071441942484347423361289745925814002179240525685673293416122055746832054108989449408254097886161969306506791481182907433230316830044614875138999679155498045191681449182109640653861940867442235942069506210971545135153435458244300254124908487477277060295778918347549207494901930908063531084584902247171226737771315713524772043935313719233954864832259835781146878294464415941558555464691938048891170060085374205019285472385891042767704881403962012060846870660171781788289593890172668213821407218357542507282096669880867202441465468651775800676752671146621865188986657432166000779383472287627875884044982108399759631788420787871703139867277458505056981370393681697123872590665904482369514066940590443576705164804103399782940330819016016857842939291622349222548821117079874919145991065791540528676780685218375328679024267893938986320578312566587023812332077082511576728701129920184340637372981957517438347713502082754657386387162354065909609232539422623728395309470180445731932473371764992650811401303336686192621426110029912856669346383424898885899042438976825544980446604439299176925305252374753578841446783850224977937192270624464431145897831042393380383138236534339423859665635171674366124647928561307694817845283927905089270329603271871007549871499535450292379513845642343775097786608067925497419686127775779216846908863904561613799374970160758205633546397125085709363171554855589778433213329038402963527045623741869280463615228993323031788426886695710990592667115084304646160947409012962948718775345500958180256079349369577459935903992817284202315211231271625739844837565767558827327046616196920467762654928573534313571212868353429470278001569063914295388215494043840896824736805624115395982189574831043301858957648883431025336457618999473181789514911906692920696638354066285025077542004186386102672339965395901558778805136401329402141780487080306187321402114401754587596684689245988860521564979015793636292015115735623369922055748928420041518324881757114329616731973405178567392681972295395194012974131320369621014585028787208237282086838496186887994592437034281903863217073829005738082811114201930621145009549065930389468692526295923953526343630757863658185469243769639659651031049375571771884999141265872553437336988494563190195259910919880169407263834063996586019290145347846761704272931125798981212750538150123091379152137217263157263248274958712409049738841452244305465508800737185811321764374633011563373784423976278129865070242205808795065706687275012998390768055839614479967154204587912976160274856192000052856886776223873490491983595598173175665077160706714960912257868846791324560884745238300788355304932604043528715729315523698042817347183362761322122123786410699987817832593249006684972864198680446176064758745586571032152115952686089178085913574420801148170128226249803482693889587192934396021930440082146784373780369140224915579804309479014566888404636481852032774826286395911368952455767702835177445311711620171475128600238536789965077723520076073398713729421046421218477561472108899403673408151305876444842908783328613519801430985962179885970441386915709933155451630275069515705975030094145419654965024304153510496466160930274168809053974314387260505885839560399130518828291752611251437085483850529854335624212248167591578493431246456811185231788963042239302605481732769673280267092949499163007207357202677821438550873502488571393284652424625430213746808223288293326238780670732937753541182366944318818897417913937524078517833662596562837105788044633408570859541039571782590326238139957121240673281088881764087191895924195916795740379713738442775676496242858719273513847881942473257552272293084828522367002277097815144026218649803639178878551063755166580114741311017850124496237924335676489728769504361038606485647497635643389686050326010378469028666793662618401216379799660656674981728615612202936615804939891450303210983830789372412488653718618374076385908062969374974452032247430230053250936782096825944865837401616551975332672823260983177249440350438199050904595647986811450812607199393670147226683478540322029839567563094203226254125023720597606572799894283255703615965228356372358079438230676437578289674341000397362164265598788840192670156094835703934865927799482077581993319218789704789577392548519238572593240474925831397893239620449077967375738748857984240675853236910439032919173150318906697402045631362856636676252585900867776380047423601620738217697958724740410800612293048107397944894528748655796400234653419902063662493205254746015479675528795445378053578621436565871320160185009785957879930000530882360876062685177174494077413747606990491994065317949575541311914334918060203067488854140628997014291550226221793422269254061990146767600701449876450364708283434146661207360833299426972647830808467673979656393762289256287912311644732148090128268917001279399346083873842198208888297073372601815125337995236736360241728797280151382640495418811275921508604545371801757399994263085474720375235673310162739786606682629253848017965342787499028892079693397112320445446564941835015390610799838452144297860886316410614251740028872668017498759366334832398811348441980432082749312114809696329388048259257294271738211372615455816920464194436432208211557538617562670823134508283459916213667398591844666104846539735949153948370887112147295466263956788852853526790130432740247808931234501600988919903032537958595726647393450564097529165250808629699899480374127492439658121596344839149197655440973130858767435073599966427257682568143891497255361733625921674089360326948403462651232598729579745929019420144420177355351686471249564227410636412676292099838705271721360960767985058900298223004390794692365257217054899208545448145071449870046374933359231494194788549728796905711839466171919594573040851675236715668705863959188894423235201918951212010842224031443040691260977947680008957582383461989613054336176578898540457161243375069752983794021923134305577183129921139845121869543434558024151025162642915027097311945942234694153819811416634762141659969013179125825380137881758356798689992893580425434420282873641962279220654285356513438758080370063599248250324087740765845139605671713006724695734749983834793095584275324988363683542717859627335360927153939844029080172777298719560620063497051254022510454459417603190453924251064947388050961846243648504551548776839051341578760736090770249659320958152309026055155888395913230276524731414475933017885823800904808894288010475105983155761456847712541679635681012549455975553141655549741271267881644636028439738527078768207472169348098566233666311080553031009486600232414584882040891436410782509233230016511240500307682587720632057621879596481628203064396254531854448211483017306736741046826894862744139708496181063902042940001241822140313555903950981956140041499514304846382866757531783791356829972008206215137815471552283553307033509459346069389811511082346963575355150576113599944040046496907105349927389443007888883131456644290947560049432860144782981860475785053806028666390444368604260727214936531679747775505729248590703636883779982972988749700280875105918863487194338308274760868693802507632942422101063456002270763107229551391981609091128232135256986907859851688581883697652245723864404449710765394448415972293293888315538441691425449510876744300580435562894062650993248719506236476126003339224597957761894398616882480804891678891641254655937353665145844381586925748093213735427455212145900770639223996149492531708402491496891673397246003259615444901126929216472090858449127593694434966784275266412282347796768540927465470769807645940981130123299443536808053026440715875736601724371706278851781990335661340068570947810708537594324547070923649760963134132908249840812020406611595605566461484306645069323980315429861458775120366995059696777057595092033791627880788389946887294073498974471738955569655918928273745258585679335758472411041541081286719541340938945166164934894039841086047695135022680565497024701553549829023589655170214224073399722866089352603377380895426033888010304595915098698757697992157700509811508875617023498788854584910901785612485716242180188271311762455456629009340520294025869677549374080567506434267750865041805723923691503024710683489730895969610511101162682073564412754469498902819673681519456173812325308410351134278423630384281478072721776087764364716952648940930120055938909362627308143135372300621819813763216378250549751562456496192582887202714232266465286941681007863554170828994721575011716182332835485321384621396832221639630679326408903562748966096625356783986839036891137803112963936025740185241352175091700594092572676856929758807086627062968247969711953164444085011986727866290529610601926955735419856869185747092197115548076543651726632476329612283196994506741864563115251708612621146598063169125130976380890060570602199544687599448414994796861053400040094205551163204950736317475878186882216507318599576397791544748191270132361665452294960396491225612385053793853249861726401779204840581646915827319800014534136458703082179630229648778892567687221396062063540779213329302928073833233244432945003942448580946446747403503159849661709066990053173693499111587571073320482687657693186671987604280294308348080218804621744899676110262157483479064818228103462036828349666888834790082637877523193310136827530363721560654178674804626720733836982649740832403155255221443488566088474745676883898231233699763427542318664956120667045175047565794479696936956783554358491988214420406377829495108030218726871572536187460250246745171951493917773184580256376854775835222350840451149494023714969968008412678564388313786726983978210976771892302878544690213645299694808889339577397063162633535645682683170904973315504733654833130567197252227471187234580611079711624092931360778267885114744613535338224587956655108833366976811139116365295477539256609321495486103329961443468188528816653591197973792977741936353055225009808368884275363831583407507016101802081190743810377615064391678995292866364970197185916427939648429362745446083927828828307828393917365968284010425172901869783729397741528751024097255533007722042699568829035741352865481835874770172130700943616775704499735886104168318050388018765209380359684813974968264607331101880633929534455455276907413707908744028327957017699542665306376932519409893661295691258423641114013313417122104124211980752792482290326161188627932906058056518147139780161863903749261446426342326323740426377886134937833587291655963199824305524262122693677968767781222863987603341121256252714554006996280626742952026205664520095386210475714049987723106644962796460824273093332255611733085284898250016145469382482957724367528193079272480641906713225178645352106263330524384346927551115933288328572455889835112372362494290898254982129583360936728650512699350906301202041287966613778220358398231879549438846017473600170296168173270885903078705977229395338442799494294338770906301565864353432400994284088415250350165832364483217304931156071732753851208752048902591812214736073360896288613991027154899094361064390429231428721616576048923138465180208200201673101578916934512282930347651074675512923661335608596183955711782262892025157511055288615876956721024779765502511529262876088031499583974805753743801701586813734754179249270226104440055278505681674236260911451590720096822295065131482729297591195683415759165127390648129045337784034576662148019382811776746078833547250173344384346599748295261426483691398782975074113549651583424607527466986011150749561282009257604787015245674390371659491139053052121393421680465080748703720534121269098657244088712016045946910821386464839188354736519839540177957143862187340894722677147844604553734705284423098306949362428628599693605394746746229279414055633473647863754322196302291993869708792786950716826320016339902297552598962505701698160943554733937667577998812338086455241520266276325304130058512911120791062614224079295119172531448008081822274785149561468043080533905219871957602831867931028825189128335929995071639059659815317841081260852437536565348438043123506398413398368994178108163470093524969853004512614419483321066939123730554881188152494811880910501115110220315341368848593079779215658963519470819632284368371180955467744966826315263015675664587045129452483981392087251187431479383154737675270032810641645751971466010920856481351466025314647340903756279025575059995573501804322416397536329594366832513388034998704101082333299821027989800227877985046924164942585986201493879188772210628574995053462805726783012144874535685033891166144722071177205222236710053149913458349398958948737700070778527683310050743931405797449133825752032075969077974655669226666508140735514720614019221044416843346664315600621136949186120783713956522739880683184365417557616174883350125199076009261739627381656261197555480211187570428712105763571041605777882785370727275318984591138405821364823345371225672770715946155316049434558022806508080177470805724003316626813490127831162437137770053399154719915653779481918831064198304693950652373864366361592680156024838972487810745292957715420085756724061629351201832007547762400453669278534318950569703741103609069201923379977970412096909536774280798571114569259442466362565791159249942376466503120172213492685053847560394890594391237562685577229508817228401673085764385711926439810786783952473806530580746241801518433779602335454142455775373298896025855239467934846967927899680514826229582695329069331703687494610181152553690222491173741352923974769849533720492721154462704948575488467972090196329758822166603403598451762093486196151781521215204133589427242750435210626472749042521224076827778838966686973630859794578755579831210602601600109485704124516138451799932564526136064039022644920803425336474449171191079865999129514500560505232395379663876607843568665367951288238322496543716353357063792499607525752761953808619722035867345930482058614823331993158646692894719327466702999957871199939113733280857651848696907790441652672429018111094086268390934318552804542200608314932007059106398396301376946497176481298028110886510758051252024418193046220998565673176618030996527596722714564995430492521455823815874573984485442723561090102477148591522701747875906313002416340422366224027891903525097060118142509820247804207827427474329182181324285865660186943316792246319546252892148190211006185690979605972361389203307830629532843193490046695630750056655379767683986611355889098406946865049227698125821682014547378487130952756105817320815452758275694556147112270983457919396304911726365150652665202013933692046059124903631832365170022226121368913245776735008550596039895080552445138813820909298260259870565655570027464636251328359853330765361780943809580674128038449521600099997348046371584940337304007682586768980934483178877289082062938096096153557623934461962718537261008057168729764125094383579841279154946305418110912690485510691522221930459432035663860701980638891571385842740615018345530720053890863922642571400562140756156590405513089543630654421382170174167486905152756426121788841096451341275688643984921991782058804052223624226135936461090259343452953409589462982342460230763417520679842256984535555324389908650439230589231110221365865972095865136414029794614644660042969485642822259499300855348605448071352383772491355233653915417473936811026534060207453266714932397044032570408126931617968478032011568201921453739014012416029843357974506747700633844609472889328917723461098950006765856456582562802045108724657816134322682552123194385356272081300267207705632356346259128433440986905545404342537015224979656550519056669963197615296164469197861512147494488978290590611672245090499073951748046538350108713467929584006043079808078539154426014501966068039553438532483621337216974776779422085414918620586287701828054370428513641676175283000394147268159730900629467042429964118572906102515725678128265480962382288059816369685378447267640061454614170261381937209748514733791101596886697068714174651341789410019395493847484788316203226200540568557857351666688190806218602989283609571983657586725212254921850315688995427776543936012984839227650508425956693896140871047062973283150480719433593030658307613779901062695355529834402257807694430422792851972559909966360147864640483599369397089487648209824239604130793878307463385801655928515855142324407674825572231027620823409017878855558645325342975862642570329131771232516216158084739684940361774045102702506114257834188617826665951861137509436555227221063422564813185675871102884747886650046683036685607227632559057692889612480493701637857409505286490317288176848083691459423436584371530971518661006837068290095365608836881999591481521420823580747127675190764107293073759671624239544855282859320247372522859216198738641533617695503423815922306216203197781934320903628935538769879550512968081730615006803580451447343768531126087060078223748126931487198473264004039549970373468947957835487153005142626673237884057556112000944623473569513042707878786873766730914954517063875658578303359791566185897710851523778340275998509973007869277660798717236437869089217560836424998919375809827737287268079843424563264716423158218407568367051338602837066626890183677155501159121882171401809187662582998250521874557846704781507345028233534256797610443805106463057531306864950881120100550645491458411348475632084146699682449163065603097054852014226387272358400039380236871616831517705376183103190189287665291662381777820535965029942199775210593655721852362244226999409497625015115589843917652528600247523961978657982099292861260562314694238182979806111969933429795351570828227210226069760991198022514439772259463227656315151644659653336507596513659172719318226056243069956097537392159204079818760170784791620431489954783788848033014374731013468428329154569507093540525011856681566214264442225660430218223247958254529916461634653383984236820882422697302034806602219019010577390047502857982246932018573595210796397953996269030936236781203556929598174173584472130322996258647998365658065616463276644237076484194114863888955098238730703862700778056029927894867521599878743853169897029028434790339484261592447023373644677726766507710024961276519496577474218759838728771197687267661001775160574560596423733530757582452612736380809980001002471513369302027735997669279319068217287037734795188928537554213712970443029521278072224063143919167345233571882458252713064458178056559096790631369333335730900175783339101146721282339623567162155512803899207104702970365823163685579912700328520769696070553704631346181797084397251014577824589942652092726603360864104251822657788620120937985896676255127144685769516200531549464930198209978291440597182603140550311668435725608038790275337122235772710173073656702534903850385617833042957793808750815542746174315861530411799593447906104759190782903892997707233835839427062845153180116471675501779207488548913712134571279685070652920530341247758891200509801150964414244664253027188685129908857250657309092097092439611607159108530827562098398480561943158490302070233158824009177597515030216886387251946226235865000759327083144220351156970541540052129957783803659021701420439410967289586383184333188941286060824059024987327881509195104857051832066027008194172305450059676417980047349709594956330971678256603623942775409716916695583617321365688228048337760410664396390916761610928686731059128982707932403821411269155247023404343884338822118995435777149064174946763344505210457170970185717310829886805574596004044019647627624010612043257139459774612204460377595542189255706801960184372476081954349719626946915586632657196347994858093410473978344371976936096679197884283893816583247371557399920182487909878126146822870305339611552162334280756898859534148476386938664642400466927760642001895379088350024235169665448690401438931752063035268612197639976442734785372578652541933750648960300285113060519052287530261560623077614762453949896889582354375424325314869944332447277945791483960296940932881538127080052652749757142023023728236172347586564129023286970655458183032077981164246263893387071575083995524050660724501744676543843834130766939056832945850933023898341216590027218274466447077485746385327487277438432421113328209483561411852433067026542293511423855268422717238009014023322133560555365721560403066397938236550917091329147157439203733724414007841662579825858380925454248911534735993216940418707800330882146076276534499899723730522272678474285917938432569404874257723414088050295115229285954770820708997060088374635875281266469635946721785071654847355204545589776197961579704881892379927915964629209300860821976458069947006623694657043293755089916346596536746535267335249559925296852115019714884948874159095015594357709549565253524037530948410441008003665835432086065267011027843697639475329147680130305526478472535700938281092000667561953084914438213521784106966446560715403530954490315125270836194155615832548609454056586205849306973887938211877305536533778499885788072782584909640465553559376955773325639644516830580092471504954489167057813287674999327371094970364814059953167609268727912504629678344867639840501231801575767474825449044992097791907157470398424684229759569222942055995321424885941548395031973804206208306389847973846683880067133670821700966320894665406741627698879985266367017525341617024604263455412018536867672296633306882687848219804176492530472949911858795181174408901390353174058361912728985043940450608322022570712893542153646219427394033085171833970275729029983812125485093716665926939482289903675623969096386345926993372842616192929141553169174309360818549403414061209926708632961186155177059158202238917112569645820595560886989636658724098244865512007590780842508709853142619942729690914231607889333576491264668218551781965930202698883033189306683423098543707585810135780557127302478048988795986241409210680058565597637468721406433327864709466599214364270227564143815121722793634734597965671084800842966573560827134439790404660479572121602093166024193770760695364296239752806587780960918461730376602780083898987698293714158859491279206107503467117928209381860872570613950875281684679927548907809954657946527480229508794052806228838937656666255996479270259253586197508496551860690133817613570620950379406514782660937884040844507575949669290855944481283172277219397161508411249719749421589347396841142873274835814057343346191350082100746524217933622420280134759678917057498251411044501025522699160849514653302620584215802772894413558333523216622978678868194541170976492289891099843616340611341647270676190486505651200745833995942293678712365501639120055970628327046637896905333384447912204577593493744668842736771611869160355700555464954088401157082983894167410987431484460988574782945659554068381660701018221610002503261804278922561006935870987541344342331196123244119383593525753595075833976950841440630705981339341073858992237878726979579059477453007127394071379111548117170074392611825802461892571270308480570610945814918125795793137600459344189609233325603779858785485326864939894531426447003373144651115841757951281393721240408687467428874570972492077641341647040973159660054528110739399352489486123106935549992173313900502907527742619727510062002446610511769858187958107866384891082841214926357037642561902702029864996816165905729786409391680279233259515077706875506106100914093765292557966499090675351014652764426931167673952286038419611115277613625763471958812763110690299256565540863946085672558143407893174330549126566809607670870360363051692429267096406250145256082086170526309842282154088581961015408899444910558533451128333778781156072739545190663291093602456935424557497084411158692851809823206461905663126376483067133800558270663712810766313486913785254313002801335407086954086123796438911501515308731688678045265138031393819548602029198208675329574004874064057710565308034911531213901980452438805478831593003355620306925326944512231093891277819781549945433406844893153257260335851480915465397066454649884023959476429386835026937058432969908155970505890548878131064518572765606362480394540849150343956232649556360386591583408616187419546462997690660970540629272258118512954288194857432962179830913048371967714333694274110345076316110650975819817984406454317036158800652852934516542060648609489203627655389561355284094066123453277338392494165083141166562045524082676719949090209768723916357393335050158505512141725845192978238227823284160265307507851378758048974921813861576115311135347223355777162779136270966200516156467273513099974652357492432576720381845188342413352430903372264492707699311376662393107180663703664789060078248386435072896829450373629801320271331637505461233814998508521450812994117705760364430031618179960486721168224653300349216784657676884954331533394783253879213687183464018063828344430029847535353246831080924873368849894359765509193848928863764238073521443585881658903640899696179576043240807310926233492453257991647771613644611600000353888857930054465773163604577293329128596357413659336694282097344273548904439438950639608650796286629418457132331926180226830759778039963242249816034703026640274532697290875284950826760410961432412235600110772382942562203900623517028382199340694528899290861384261985150805317466049010827383367123123233042130891611496863832881363313005311403844086233318238880120153921225446622184995153707667446040726746198001078152985638239734644245245619592694434451087303301773222204369459865573716292232494760109705539534761739291984977626609659855387643443865933358520863166781049793485194288731175905297469708505113505448052356466872711129019430347699644589053429088062156195689560777573266717735249794525205192191082537032412085181212767819116092631896157836918076388126513658383887648744074077999539027234759915618963467996957911982865275453347158573012566484836718435427578085079867831039680691133523882940419365185004244176559543765554640549631177392348932505604831840249820715100554757612836863418597713907697621241584795187522742246073649107590822387859963427450111249859618317632659003984877938681542272236207022644807926969944302398062658900662564010559680623032444328706353100590548404540595248853385509391598966390796586127275143274961756185189466534206418793024269647323107412512020754587319156722179694431438168706556904309156148063221646614431048306907204727375195606505426003970600208486904943938702346706836021921946219139235028389015307171749152334591609977866156412883731932585270600937435965326375457718901663612473331520539700321468214327231161961665692992537945998253596849219460383662776684349175476650026381935005700664225705308940538388924620979345038863580901210829212169138355382144805629695776429450921528065433378043322504491853284131104123911926936807843773530313653037773743520135269595288801004374792495827033434689014390160656139592581056021520997435638596865406943480804197570526315070902204329572994815760935445548295137658600381244341927656194406188815381626211804829191481302423420329115724426126143658434980659744137702481058606657742185990696098004742463839135584582706187588400123184071197302137620738452066674807205442859618982086339313339488460613855289509580103576755410114717917138307388155969557081248731691441479650552588211420081940747106568621472051443821323842272522889710383616326861949869525856688419455290238840294547386108220197266684342130617124183000103224219342093229013825453448316119388719170654608272512435606120551541914105584515703992404557273115927568066653748883964153087386152554777479213800721732037580255831353417248428215743765920458129988942354281167982112510972204680929460444747575565945140736829351443145188800705077341709617137910460935557175581522180338104754166885400287625484190824610122391554523631961546969516053550162435895366902773116683958283033286300503568186990646124530140075815433658223341640475098756512526613642024989904003604709865367666039155573997720530130517411484991039478766126030860690134165745852391150591207918731011066818542778260627033494609421004272221320664813190239962576278359884170432980565477380511041226062934412286924180135144466811618870695024447586258555111400692225539706077062446498109744829952747644932044727354234725841247463190998703887574533399613952067347203173445399048091857094202936561343463326413158248707898839571510622410558845952954662976537212638417606432407262171574065656965950129706797750243852633682398583471507062900173684930894848183886228336295553478047962125682719814509117869721975739447058227270799732782521628514870963370096511332165292354135877390131984882100584958212720613554131882944396540903129608188727689323362304593277521895856933731788663105817720278462574636240041827555326711709873135613470318872244070161427500127286733080805299567699474964332386180447966330734564679327128110929622148767894618039826807902471281403400718470088782820316684481291613382484135646706853593558206409541522913758297050958815363304988776091693752806435684497404417397341085048766400005678607013563015650932867100351579361673579675549409810483723548630488570517347702463413701842152984597567440878156700439324853517446280818817121933147255396428948703877198575168710345059368876853795446876214229263377606972521100726115001958997005288029591089764140030785366244138734636363593606341253655785305892340267981286434170831512188739013133172493790987210365887461440003459995831437916035796693140424447274493200765612631852733206216341587466698327820421247942454151700630372171762414675504624549170424343096333851075763971256289740803920557399079533030152604519647077358656814372400730602477085243568976723857731020515117692900174999836997003398923578523726448191829514348100628326435912124469257891384012969808016373490691481391812287958054751830639931608496874176276653830975033617362277053411364618739595672574418323590513282435852465252555084365505292461555333226248732609888080574123038133912930665453228724230540073694214315449151164591728006185105185431911644437723346845190852450173335990648243879514714700803903642901497979232483866557730067494252208936264800286443128380119646485589803918747341117825569435959486088146289909852191295983931563434954744854185443608870858635497307679635561980174422061449780284813464935802947285679865464887160191091193845937290600241042156496167392544930539641559363017899207496895178530159228359116359575208095399206927915448170598764596234915786074726504714287185521831073304832932684093780836645559329496680033743249734241837395185789589900699847662373709834569659007414280474545975374480677033833973578934601076807177382463015958565585779659160053507699402568653510912050619789308317198452019193455163177068725079201403390975765594292739816026727896337116347253303105146837202845206356695647174877859190756759856202377850482595031261974745849634979810245040038086394630484124784781484893535838540303811567818535184562703712359452766981597703892185568452142777576678453455494703619095892592895554427824279198085449746218865866878744071564394153482912511952666413633605697200742323795837890712795982546070338946598158737149714129330522730741723069386423367328904597218721209572012768981369676427241308994859834542882264425661723895935031130038493792796361896540323494439912550536066250850766676505858901280135280625705464854054663277101170893727235628036300954153513790845219455430224887114932287091863951342398933012028785900344217849588278172543938143050013059360009415690954980634329024432371074302588477521079519903622584803883869740985863434850736345300214972352639169303431087915472995006502935805158440847806264380040675379013745436737258223306512818926376255752146959264913485708536668336722623803529690496807986798783810921639537277581428271203496574961341447545321890575066681009890808787440426777349782205894797199523951379926074941265591182657958420690211224971930375732238980146576188509555492131973668034554486464714951104892092668160688169068602686000774506937392199626790235431833347160055536302232338323898969859003464661231265787603126087243840637445263113418587042917158254463242889713989679623283429921833654322581435731214294851795699926875706696991111248075502626631737156524878707147627210262045821940487693570046470401741755371234557416343329278818618829869841452892266450027252641232797694781503324465895730321309110685268940016564416852211811666399438656426340652218145720467249574960968404627244090091941725137905417962554744258080976944636972383016556997743165671488759967054525405813883784009064361613543893954337436291558780969358162292109497732484123566568997245921195077049287540815140293674970808877277049522833256483563175630265765198298018824445485315832591136252301992181232098847465903801200260570278607884863546666278805812228386836557756018602155613318481476502686833105836365770876556443596970921885507583731385355827206747341202703826624570046714663321597836843223429266238928875856187488332766661868261184234801966862078512744933509106250828228418375608314474825536696928367775031563970038996189428604377700954563662893159665351920341500959423768483244487281872842911966881325195631632422682118272119887000753428157259809818162452244744060172069097731830620411124757611083996117273585092583753720788055572690750098157971387379541358025371758959681289364917202198586368991260014383322342333659504988467566213155339861701037188554807645335719141409830309024045474683302982123526491019711991395613290807087753695269651880912246796706144375606596685643445136115702604796614767983424608689678399633994363898167596001547682358514461291733017727054388597164494676556593526910852793950738381662649652358256965456545994387808037370794649564221165748573601961067336250320199369319722887194118989616300864333745926048338770740213288181394691237403467588543166805222821161749667689268416297198226363152771591394491946351683559236227035551303643579209048000197946505336109289879188928362153135993365984692912336574342340770867332871179193666235548219016235198614353539520070239073754296709784271611576737080545538184042540230404381130817871692615247303427362067337955212050819274349411432197308517826085636032849219119158161559571326458838916858013183930379709293680919809379224127129989227985793997994319956676769962530345153618730850426850726717366186332995769938068830314987210022084697875156322850183253599035568329836898926545317059315964124589521472539282657146645178848170321989025716063921917249113227496639573897034139215456829925684932133451103749186082063612962025734978397405994423694454156798568443214034652909164545785455742527301880639300182471737401953278881746554084891852304927987409735509889707034635543499615411162625352969821365691242873697039331744226542406613447070879445125960461335500579380313613682885987540258693809875789961117631578840043772659763180041506457273003658440301466854264031662558986157839900115467764176543796909706612460313609148983620586046893954808919086666494254914524991737728168632205893538350699920471753235692203712289312757184061862053658633477647720520190619652617680149236386829915529350135812032576552736116711333439485576516378494160250917160023262931135879142083282298946356059334664937964927690989395244515121721929865668496548644263461497767291239428498317853981741212640828886021289308615052470601905828732966449999367724318001699325721344291213128382293742263866673410676365852035615643707022842444406871895747026699306768363632018532800846413884428337896818523368541916527963967009846200975450131124826096805601523022765406876607741824970771966962096262928834231924208940561855126390425680757744366132967759700095945503664141789718701860766526862805488898051535431402469827041924116431748695819136817543599902449878552977149393282929469332971287911876793214570726359071822504276020035384088912456056666741269422291369329821660761853927259268827914014006151119497705776752650850092992827850520244096443499100682309209209208478534225006661178172617965159618563532910709855408878969656850211537295087364352031012962318923368501827689993997296376104471465905769100780583216726059599233715193574709488267727623938884534865410429380937279474770940940381754016140755650490396015072123266258864564016070848028773077301743261361192584572515042112741970573157568068137619663274500088163050379675167915059668237654889152005194581438792149761551530480902775951570203719734656059680101470551001269789955012754703043307319282214702399298449796562833099943171045846474852349212394602399499827880533499110616238832163084320726438484961813880321164430879754004829484087908870098277888817801108740999623121714099388391618393604417485112937260639294667997201271113523315325280370851215298381126435719357199413099264653514679884229212126808912614528996405221261474020002289439676450931964023894099801761777158860178663537508004579589702600498803246317500721135754401606507854085644334306348645614302105029477869751677620068286505539032996341706289938779089641119053943710120693270436527055317367814155898237571097601064346544696871849007165644302041841773407111035853353157344455774239753247257654044354265709192573932637835398036142483630976869547594477136619820968503997710154214130468259866823847820523333276641420518240302714315219007250414534671000178433811274432318916614880100321492675935652389642091359208931497832914223994896165765329534235851787907970410206988932028540301096627019879338758316878024406543422657164028582847913879778744984452470854823831201102504707212323717505421455990738457810597619068659196478375831241595728787854852893824725341468084832255636752159162739628591289551297862477379363908222716454703844245747514901150367631791733442747756401382162511795753266069978051600809627152040873223891593991877294735090316732464783373137566746243586005615719223984766548905452968897060017742361745555772939835521700528113248832736441689078752629003677855597703190206026930563416825575834511877435912147077160933846399755975767768873032746001211815025891231452485806371409990914636284580981707132564412081220446071299819500133474463464346417763451717872883632045935113166202990814755720223281654295137230943765557135891279972944345475019041494787566628485801464795064767669427933317744328170012284110579290671009709874836282765649050360550059780145134048740583431726872695802161029980620756986406689561586222634306843651407159105891642957391421577153698559718891415538062999796040238505569992085014072443914288713705134456832433858422111189964165615117280555597073497497776562223794701435592866589564288368006673652762288554264661933678883005597329453160127105424200123245756259564529159375759193751765561764093044103380288250015142133227062157454928578469796236402029456714365535571331010132898111180167744654849150470139568961702989459515929285151909474915527837935207594763210360667370299215586894543276922679394481919395146571692149564133102750359212096586835360644426342015478120521545961340243843192686384157994057654240020192541683030129581011681761146578478288134741516622652449346456328039903200768111808492932933931699314596473765418571220597468289847086078430570325482711283359979860800765028027710586817603582520877970700787450941644160408323111176587815099800486537044169427215453010540066258322613850333347677880580988609003249973216616425183288251981474552625699184251779184017324171167354586697221866603147535257748024583823513094853502146351061849495797316388498148767447646990183840098876350477188050781752008074510645371552698716489337329695468714731148662074591129968649024498128403768892664106660108060354938832115301632252989480811281424095021864825628265422021998455795269403058262583969087565352062114602298417695779803470995449707336254807487446575793945497848709213807794005002141125684671103276259582393818201170847534398768055608488398563787131169307052833326317599330760845380800236145548664046727922893742228728887474909598602642972773091222773576310086314487249693270300457244941898836397738504125275626294009252935618552185614061989621223088126762344273412053832176013518106057702987153222355366358137626193399505616601155760354536811990063467675791096850604684522858508956919184826113485773395614952854399561993981614598945505577803653133166241162692559328705315513542610509081883818395216702180772228359140173590966070799933960344906321650561811051354872668308402961617175511294298077475785348313628468619534862544954047343747120015218396475344813859598458697269666381965656374951018547206586948891870802443891197664140144388187800511579531660459057629017943360471713263662896171985450711878961347260473072070613398221476642086912345840524228861460506613525232992998067973670201402169683253117734771991390192499198950811048414609123548938590110749766949397597467093901591642442468033453976458257212127864955815925787094919554367208682466429942327084921398880395531981873666411589080296894113757899177460425842626768724833005219477369993326529502339001082653297308398148092195399017252956490546912255277400277981895898753325776428635402722620720684135905581073939133736868879245730139362477115356674083338366075910231617546473444098910643434195549857793507010026188206099296087276217747900221338483441257434053907635483041410680391373239971919978308432502141201277692142212545415153631533986697711660988547917392197944456575475379302914987260967447980840806021387611002467638151357995844996697265392537402978811786358247472338891114093294858509507682063501668002620183023664974731523158280942031329732765776865389365378034733401166410255751500400761742143139778628632023401931597111857909808540026539887465890056709289876628836151227655298877885590168008088259743718635878883355135098689829767350345484310859942873448315848334424743910949456664548069572922908212024693660528063677930825820690174769028094086374992836600370891902878465301206324006744924363708891385907821835594727525910447160968798142316304289419130633386826511988027326569261434734688329550381616493203538224894976640972771377234908837418133021486449563316512741597232821065732880311309616217176980938086102211299611438745296324234762741734943523915819096906983574181096456771789707937732304186217853610287479700494628018655358881581826895712260089679802241020785839721802129656932727555102163737867095238495337306787840230113179847296808694714168621509186453709711541966138202340391059161237849976081708557304012267725893417682740686108398989235260899417791714426618289958588439876235063869074154535845845778780558028512281460650129467031498124103014311918015726730254888769306339822463295992328397483179782554528625295350708706794131951430583652320063880598034518784113197808975892042334831325212826309432830100323233513997967416678870082566460897774403651631160173484427056937303063143171876635279318280065395588398956088972454331677739421046834904810455598564848559060060917095391979683049346873290210496471383995354534208094841205183749099262772726020813220014495225054566925148820407626025178323655002987419585001607004868061021214455386476008112443751568914511153468341830325019018175738352557011636914872675156258634227103649628352672233421358033739503109134818599317624905484461537273546952511474924174491532128494801496939288624558485215014532738000465125713230342033528896319645593017750301647074602475031807825730590392196666903525225418205687341072748035347640948484131335660329964106730321604428104082105720509246668239965099300128437440920331762825081752453467133250498459848878669985595602033210630253451316037799016006227369885919844847408228868694644529272154696052199840208612414494048113717953814096695949218596180523448722593063949399296124103670215113670416860477222200269412649505364721838289721580186614158380114066292563278574895438964853434412924148706980894541646295435384421696701501823986149865634170883567634043683010717599951730662400125475556239842313791716013149092870902109706073270491953226557937530420314448555589144368459683027394219693988185663064096563153621433572067354662180500507388144895006200606412276212520015471740264968067220808975737902968865166585924520356443382705833894102552808426437502605913857386253621919846369399613426972847267753787274217655984834932434604924022917381790252472026319467682655188494448906921102011986641297251508897449914848585561176195854640601218548882417329172134723392764179834684131146427807716879051067276633890004353204780792753309602109377811750684737686567715723631889161815922054889399435094298224093958940142149620411352417264801493205774019407121567600664694047429695520497180382035816118927837124434208160365730239503962550896683212303482951515459244813993149318546060106300810631225943686579829708257499002074046203880043096868361327125537424110823062202686702675867084092194953339913484828876541337792779045716829875789772260359530331259649656220020929335055739226274434400668573822477480105289800719239169371805303641432017844538410912515099992507213058133870687322329763355478393501890217838848970650900596333599500693512256720235336065859609916600408580526985341360687871094099038197951636112637857801038370513134600355976408198018313703594761142252057559264669452525623319162023244134365854090901424328299554614826119568386485253105639833130071445367460461873108364533661052161744636140686891899006318351425952838904265281247515563108498816488251041563148625938430941056390384622365013891307320838609361407329537477550660633665770592673450348778193740157071490956224380315965012916046954391626262636197065416826187238804838649580638381224034602005371752396409072744552067137498582147445246752903505783680486102997562808313425321310253851541889420702443477200292190585799987272311518326981511294060055926850522223586937030509522660838403677294709789517370903500287602853725355133832086799133408910025068293112182773127501253931489399294717575048222782733961368377424394924169359035829255032152315737874561476426044721292798851292810303253456332199557366124065154453564356673255048341891585936560486652229130170399264542615347383252782905120458438699604332687536596055766806672173502337668571467717977777338037692400261785069805272945216210123079682684824338909573612332693417443748434265821346096371275642701631236911205935397952424892136540026121606903220892446509633908092293952035216779796597714974246149109701868248146292448737004610287252682522331095302980772721866178199316139671377029472161176529674405385080443730987886591523294404220345284554192650612106156717374149028395294282959399376338207452043036947449835342051008770610285578453227820035766515291597529704301680486851827568863600897948586594998197880294663451364091686160983855026570333886921693683862934398837018892397200875978586802220405503064477484907194882907849114124676270125474762864569186308622648156337579137807653909764758853690002717005036529341947724083260152750707713803449208053560771974673024351417548974327142668250315972781298074486503289720682070520517591028111734108640475924197304508003188010704879388831652452712966003680861052431350206260936988534437844680401592019673369650816880647207982772411743544919414460735086104151573334494066685009488577757209565228746803003042272827639914562666065362619109956320317554616487321392579660591247948298071962046993473730692013718866706140884505399232624018339526903509471266128283055431833695147635974394605943029282208231167452334524954832051798762099790209414994269956544123205754685086699670860564448869024228912327062245307280191895069532520075900809450421820466465476334311989178370402186155858115950084581520282281822071250458722300343352341392433862814477777337791618910325668524071710648286780497279286496163046968177903208737145037026301699026139083031191134627463514275775649137659979166258687566705338065490595229862921435554506423069939388257412218557119239045067228065953997721835772361461441241703895998927102322845411123736562472829490922684822241790647299087129873458426054560799064454874181564113805564868589852877679362667396297717739976700997204725169650351612105344210693048652022806345831794816303143174627684241339279494170413771186500507050352196570252303786970598424106621859678937398005066019578664090033310035935737876339731680206188304721578850258794753818856711690371387299685602090171055202595874637293603670273958555213862365273449487293414213745249434012333869823699952079861972990999252258984535855720110865927224928445744834217229525729237426618269405675856517806268174690711096772784914121751504276608815338852406824249514107105285351857456995903961998614586077941529050268956046026189893527182700100865418296188770541241430081402741354231870510309713162937487550702745438628676520948676433177529414936112627296789109143517407814343122063759561984695514307612611548229472938634991734493897199041185485454289548745367443033966590233506181911662511478444164501196237902985968257825408789572873443447165250681252224136477860549358014226874459593200772099054173634411856504633065777999097018428768353750087943989738031417352249138792530113737268801262841050691085441447023151715973771587815377866601159306528672361795884314385729327433952834167310443710977012576140512215171128460252199372247068294870130787528751565645984986733099667758484207447113922117764042692131601202442361591602656057067330734526987044828738129651479986688422725116439459660786676671219436868183842565283130353413228296472760693990183301486461739806608279362700681570731830686266795252164656621694238291290606474047081455965231240776332094507567866703042523544573818907098832972463788681885126609589260719704581178635488194633019848081333762419320895729048272529183513303961455414119504502762204897738320377500453060415629344207473169051699638964424610278880160352810586384267996382641154666621600470903940013694166948217968762325293822854996515482408056111071055304654336518964644657685899459344352721988381215062205883823217377953126818720365523981621614791781658978583747892607389997943197530423043076439046888338042895288759368519895030782433894236193643748834192605634597985075137253278097212294742149267570235299847012770813533812032353906257539871027937916063725180230238546296319705714086457450178272204415506957561265881914222559893179511853588217124108214128921591656264896397828267916800873088028818352009982425671258390933316430400752208177960692704936892162559810417566672887303444312059889760068965183968116833514249466997651154309593477130355122728692701619481048533077204570543274815731387046957940075782764733763734841771889572845322070585010233261783503988643815766459597315927057462108638324898932692965000074431321748729176425700103476782765516987214850382088611148619828711880797064756560884555643936605461973783313624494010363946941785382690695389714782345226938383234708516503519764091211997589928284763189610048777645155130185159836619529305966609384503981757396072215018116151343256498215265937791782649337234858082858003765108348205909117382128753096293385354873229095449892719698444204956163611576626733468526502670155812782946909662904295428478864013271781860696932018275465749818732482939429305288138282916069094567000241782462731653914966917645799014423596960397189145684032487500283439875598719268071658410223294621552846795117603934286361907942872405598437841629050180626635691730441575666368306117467078173159943976484670523181875569288487124191074240104499685783167874552454613311383593723946003961300356210388909213074351795067183165987717465031557760690588011013191460895623094826397737188472204315648586798520849928911686862529600981060381942781315045830804182377211586854886805592896900520469205264236156355404114337876169689624403011078930194159405050916844860014402079440357993377158666721012968356543605895249916275851977610195842497334490175350142848509526708441762205301551874781858218630274848656650126974862283854817936088374517496390530727031723002918418999979308594902105498845884159236141394291183232297863117506503991278176968125003917703787928412595341048391735732093943396067934748067236076708378310833987262733023622965098535467890811555323865312725043473456199493987483007669304778560930958396515438561949197587114880559754360659445839039689279757966524769521639976057312431752639934267451453006924939875616258498375068981638763369170618523892666355129070107332928205706006478422932082623942745606713126187479445658336245601686523417528738608885142616073333146741629774828503257625729137379407396394416755996019998980556377251060296114197011975485006845563588805235539345823037255270205769978405928046617720401257314429531612058690548951687402669549476607258420354557888545546541196763621318654979719248369976597236878767356542723882729055492355467681341894439936307772759303314470873316977145735101252518624177125436578282247165092492041746538877284880644528484591227717147637792800852436568309779075783201772666901372485436396937472962735947949145160468058035488774605992839411363681610507342834157849024809284917047030230642176407534427417437373505811280782646848795866215417296417693233499325465321448272978321627570133425404004794250356348891351968714776631509915023925787898647943801646828648849175160550479213054365604063577086255695710778003952438327691759691611605443181008699141395596401413222071052523975558318250303245714547462465093837505593620998819564712107901023037144577128507060877311891586895763303454966117204497151686519765256432436701739614521059764974072235498278926963080038849433437010803864137105877221280306913828198171574529908628938410883088550678384519758329536573487590614895437579042518245098576123387205738116936497608979235495501775857513946610760430394310192327168139226867729022413800137899049331091819806014646614441374611553514681101235842212433134115130024421998112754161826438221616239053930805150556697540829402014900303751235502611416614531036265905970222368980047347131428352572195171810385825407660034619265322392547704129673599684069777357605390341157331022290011206779999878655934285325968399614536350946824946435230274494215318515566854599147102563358638882755619339422189857875086849327246797400050436904509135823160232044537398558517113197342885065806047413208614565274640697417386110700345125150441857914490909554069215425546811251691386820870900006979745940511759577516843666191693178248872463269120389400783668021925222394016396214389881559316229999675152256401882616153117277475381845034816400114988993721437138150078634130505981107978608575603045712025178380330261359244963603501983018984154844512734698271000874037069703000152442195278369867201639822344196240606395876322799193195539804265929066071824398061678415161288428883530928337405886062738070226283607476121655102287241323698209409222781613785023549143558122538126005460846982603606320921024198873760237603537360892623349122828439722687640695268825927019126887226729000342741368046760625629635263896664209594616613297567193559825145939867510937266706058023540953169751336484052248724176903395371306726235491414368278653841114277673051611277073588490558399437894458117529190767328484672514714558773411566610505247322302891595668825187124847192690948781718878678111052305754491314302787418054641147663718296874940273632373169773963812516143912445724695436204896089950507839288089288900740728878803722055822418842880626986025946804085028888605865041462154249552250788779382252224246163981133614600573863531471556842875359911762414117241373827907592505152042440082751011420723650736809058070344949633012819875365524407185440667083284252593612678849091607353620009166120295528773422693335128640127186125685594401985811787430956747309528080007900620834251784284430397359014763139537924416297143405886801597485321847106920356005509419066800502345450767400213678537373224201127412013810472503308548670017067285405143892704847785117733846670184670312779656364209312248023214228801887442356014813570479128054963280843282675493612361439739692986851442553081932809458054707954606721584470122362391007881160126084682777537174482953629884697917281633159912408659043517126143685317763052846162274442221232177053371588378881309225939009727374084226796074006336615355943279534217610331885541090583167802949091503076429988404229800900217762471693906750429768707045610689670871124190271484892866973753469822926379212212015437562704227320626122977855250949874174485799178378846119887462412102136590445236592911340973047238441291935137628621870562730334324392551828486498355642323280837691732900704593274647512083427176089375648204496788266633678846689948975209265145698390677885702712075710388233230536511606637462776122636052224395941244002979866871444455976878590298633567675770578745074747551436333896683469167009561860857131067832744122458308762356882281439715172785682146742160937922710426442112592759573456916936625911549815583500973397032310159715112152970515061350426925229620540655724609689627172125747661378090745123166538656790590868209744829025479516931826174011633313987944837468591321610668039287427712227584105148995789509697286566047795155129389625398735761673654535112155102765320001343831770165925511447679983034424598943614514707420220733517510821444209051428147412411834191863542685776081176680586945556797506069356313763131150813943186615530393518671088634887776881747441033769211197759658015369490586996845871063436241780784744272707950691188962703229203740872436404007020233940461728336774739237899311664622126998084828463081561814413176585228121547613821518418584448536792179194194426416861485806724295173712682743029875170799388664319274448088562838555665754041108435383840758650607089910433557553753806497321995999902463144623642826569330633843109918371000561644911695561085855422979642024535269713154007491171123807130155100367226322611751574657307088689123227393958700381932612487888335734442874891473693133115804393556447154274733355486094885521897159235078950235483576188638756142925056876186579005649432610871570681103114921219455201961700945513735577077506201538577282131777210600938825514291730474767236099140359844954980810025436864950258333357445512697505796473448830994420951954907472313795462374256408695693402463046392122058544982966304913828364144091408480591714587855404950289685000520511124321383874319543518660312460178068560909256139933075026236383343795367479247440722565362202284271807838815798620633952248567039164820253156875434470652701717703318936203556844649078145349004552865972868631984591857461515881017570693880887056410228003698774463926678243843823706715449006873240202668171328411522259424734173141135394263367662954536802311976573161875591481022032337379092416599534266413112022478664475141492535533017772880658580414950128390237171985330580002651749180463501262861317382035583975841750123506108194764325731657027815457588161227907492190047693988382760327406731148307756155481608383986472346986903334833805484396281736730910571458271158026248950653992057479597736243748631090696213465092391024919288887539599671202897321580596971266100260652923040988078328492398007430390137091140175162648870953774094733094208257231290606224940185269643158835600722305200611691751945087518766657424777245400394509163355956075291801150815929185740289255954890374022137575095948862281421707422070273206452113473353897075314034742995292477213057544679602702250352099667847875709236300148036566229772001673770564077236633750428752715188551837251885672920333614805727617978683231459784099546620332149575814966174006131299474457090744485664785716416347170928579834001790334032776469092563874160799276540411519523175644781265839029670060218070188123956239361135148258150313850068017281475460881112371377756680251106888142941159865009054867225234606171404188345109252695245266410513767365646128790249572675597007734340433193398141888780861880686247405211506694936237617440535662794930495013855164805461959171526463134423483961771061951449559233652372999632308708149086591591705785344554597391946663880950603072777316624244343249853858960475309516883781221981039222755280327289097402318835670194198491238673597100878549821452652459466734967423412213976266896895421894845947525880483163917293102615416743541294397859792322168207320480760920659938441130757311808403413107893553782730186050967301823381569080133776124008540721929793320026574119570476690021035042415070105736005846111947577829628679756438060242531800514104390823088804267124348939962902521787636889958664468108012265354026896768496313740006359496161649657016197328482878489699750625450034155602482063181908691593882325916365367973267186294714714522140641854988730396121465372906344502689285276365196449461513013576893973151436465883312800921743116278440043230189015715845592188882746115406223167024829394458632613138542512125121372846662264510945861719659943431578449118342131009653902086584931344555794190644235869602341166263153567631029528227645311458820931947370325456901704372028704272545764978572840350643621812629118822268441728232704696379815646887938181592294483343717397756237001823626763214316271293872550361139561147300693935318025703000347592065055739468082334894216882926045873666523947172110606658222663593871211432121450354233469102123661897004133891076145343769476254946231494874609425889256788049949382997043468526008428508166837592370028360227042698481854086185407874946305922568164894835772170054022649140003143697344350792221607225857676368150598649076158072680884926114922976498503771368215202482555576867852976934103130265911936276115083259048735687911109814582100709477575148692263351238793644712002048560029216634720618791756874597556435929035943179483017123299670583413366506715553447141407432934530114828339140015241802214870490030452960927746479924825416618108916424288033184694047776787150447800862208790912878163977714489886351102714775373740471869184587560620645100821696048652500371723685675988161555053690162181099077628200972703804085140785418401755178594688350180895807554803518887427411062598603262637489174583094162170394275718560036129295259235568503408592485037976884507154627771749676860893322024577712425888090398471061990481278012072017624958386668322616050089765198273278457173349920414148711192173556716909557059014557265705723588188461278766993176699648123337655910186204082635475750414282131274030355800266027277156048863883550517514859486914588148471691907468115927210120479936043321722955086681720076890556056639591493820767063046337124082466711913498747125132884534095875239663379049561447091278792506782695804728622547327800863073506641359625214419039984087090675554657410720206880090511013340840341897404395855592939184748805894275904415194824621117524197158987283868139884374231081854902947036461471579081473731959772874431865085853684457992942682220595382188318849987004930676567812527158526777611733779513001896014142422016180145853244977589234639888704057954646663917195512437027566982913958688203297710710539813098496714898882893415125120463467562366652825308289780337886236795268223984638804017871508476355552936979848420381737501517904110690943292000922351474090951010343786539964188802140702686394905658191862423522320734339372031620389082663191094972780150055073014123640785918250079520863908094638829558684491262992401679965202696072102504319715047292849764896340780513113680963701368987325995453257603270720588570189229403814660906786661038407467764592723101059940038488353396171553337874187219112039708104063993413798214393812925801898280882384121750153876506368183293114736684192803641586041569619507422286045289883694695035042498843668633689124681006493764858457090195205399206715719697051286858918344055337007329881516278203470182332212898849353269364088008861084065163202101983001360502980202633580896938944207580179915084448590500305044131717924833856643351913560634692423909149876606229828203625588381286387125023214906608338166884201185963768494201149455203049031468146358921590580392718533373536383117806485761616197788728844573920692337892387971773270809009115275310922735301886043941968029319052347527943946218832573016620006766533404215167570118835909613413228123287565456294796908836939024052566107744253622674657721665719541087208431757163854793090923319646865743320328670825639768695206117548824010902087114502985455776196201188050846961364521238840745431515030266894805977815676239699261381258608030437349088562238156213807805581464689283145062113917770140004767195550483478347459873367917069407228441274179032011301611899218882432077300747705208264779451327030772582556782227058837868653063007855235994036145183090658690669011226325557509764279734832443711889760064677677160128024738710907572340380816874411398405164238520185546115671918755256209406267146584155029768402273511212730102073020743738081379327343599312176861026051347138054627380195430417015998326071816298885121434462512993281859423145985794425391173081839264336258207288936112592259814205906576320885315943361248485854959264952857813452404895090555227900992139156927782489351479614884688151313914447455886182971376440897901661548244861535321974459387980404516358355919434072532313115288924958364442022183559266728048897148053147154269421973068104706725204134802934396411554607265376459330207545312890619793676238166586849205803536513085057745168471973627183343123184088309859641913587246696268398847745752090216895454446662284508353642249059212193950023613083028871534377385373407812414428768104336447939865003794935312195751836041136660013806375211636635837046126549807056191292277685646061088341287203867528832357284258383496816047494626617891249160309533322601852250640440011486472150058264069607167961250551467670645684497454196104985715018756273257208244195930277266390738550982856211552405199749806543057400204207228599156407021954164721317569779872365769162914781827864206319236929689196776590156934090005779845257970233900140105436983944006086419366196031030232842512207884847940447755903094315224782803304684522888631555856092115865593287070907076290580553940927772749355123422975066177238596555681107629075384898207820663959241669806110278121498514100000047128376344248765126636964349774455574167541160594702524184902101580201015304211553962614833175952870425713729464364706328491539468597988670962641779893578941421265446428490851963281073776037940979080662911301936970839922289049385466081370984191631006026708295457962896412223263870881386729796210346874364620834820010160054255501588244825735887499974026459514490259801285983913564194469535987095622609809929239841682197442371680923527371151274445091578289503089966185106354464793818052735975455375199724269562255389426390114281589722938910356877165115431273846547951791771554947517544842541607872093465565264233923475932753159627834965248560407327240124512457337859928746400800834911857236070713449178938663264784740572595012953104621081443261174862513227050543277879686714474172971997870760959125420643034972814073822839047069462692928147856501940265303561250495021841243660295155905223629830518503788028482404474088053376636099948529963357836940815995571555449865854351600526400171589548019046529035864821665998872181710021605833319096537867080536134270337819596628146070025280455018525021793787471021391849966142677128545990349977186068902558746693263408661671924297954790048205788772591442505371328498985563819726719644097444802021191986283442633974161243291930198398226743960720448908903400636957581215981739596513253145740909519434971687983686879440957213342122495565646550315599601262267224236998875888586518336048553324633462651545511822483979654565661693147137208688408425741927716012023119078755309954630345372721012148065470794244956974978017012158939650872500504699114436526433191967402054174526390059067113282030815988811003920534633201418327933852810677590255124911202159610010249832086855580629457569327742580973602294495552248492028932300543406906542236048541707688981938285572628279483868607690937447127495276476952692329680871110877482106744145745049374831834109280051823478560997476986453743860552415032528637564538630726837956108477112617109604757124558711061178595447467821350096563688114033714469087135216863578588736542780451652703380582174841654129298598812191327223345062344549148530487170304242610313492264043182130893420766917754246036207827703802157202633815603869140126477720928520479474182782222259280250407322832463922467945619771536302042363257226929405534160774790474780478795386883530055004856015252018350529184599661671555112651684912815869598362362625257075996925269980347793419648347489442611512304219350461142919603559340042584026252948211338565563123217605687656390281313411310944145450087940236678754118787590443785829562126861571953982971864217622803124203839943983839182352912038986026316515974104004857386060919213367419833142619344101246707258458034358293775946317171897377929231878553853229279160697960972457012181464547665425976087981065083671580616328201693420144486530220942912070437600295653581316087845426382085039273427008915961895583724618891123365033855836993627753034708212718350653332146314973515700269451612457701420516294112139730994304932940206742336424979184728015505302401486462209109649306525157542487030631328735624976028814559343370793739141542948632851775049229368396660396958938924051397383476782074429373737531027816790107290561512256234282121623198117659581042341950346361642216503279074251490732806099653046029322998592367429908197379761114683154592512444945227151315302026643603830280183387763076804573267811487997007544725867237378574267479855570907257051222032922241488086056182875349961005348375067951935723232363917917202573738115000103588837730904564181321949861943244250094341975819393589342565180259870491729509719182787355628512284141901486997953267351422852300813998791148608579016718201114859941297581764289434477355839031920104200005906444551937273033862707207635418753986675604580460596345410213187609718505374645158896453015646444534734440682739921695844258117827525117585605929257996676570012678550794474499028032479133720633661243128555954337732807014601798942195535281849006393411509657127489256080297909405089061017754657716490159282615884076727099036482797911701376846167959518654824160645977865960299212348799193396800471747579202641881461933358413511476709645749830850480144615474126686719041911180167514002208829574417768490386385858867437096955407352577910353876089542602593220147702771957075593243749154110303153373988409425845075962650909274210099788854709087456611401752947374897037220786750754377011190863732661073679057211351194545149911437654177864374883042364908891228575032987923156356856257089142328548620775074295146788318975805269744519741463730289243777294834905259882522064502194014097877749396822258072083457941668633756385003227760446886892303442728900853397201976804290816148509411178543859411502847610247163139444111933704611695550361936476833673613114087400868998611853859049883287382942835096382732387362381530686057919703181657559542743767694466859172736457098603437033143271008931041860967170130505158055758988547649402149487827639431970706044606897447283915710746117732404749410172427347394374635621793500208231683181060837884725514893679902617223975528686979392344746853600496574662415407024585902702754054959877048646557330624378262508803846800420840042142026242941862665266487691979061493350917717374058541927375949747083721202750746130922067324389532408849146026372266506449394960209479038794505182524321768603328322072637167439657202139941630590423809442531855905445724668355884440033408265496799073169061064143255474964719847629819935545264540633743366454666241987399879505159771487873040358395487507296770427333695346011850008657414126185041365854545343230117358591685949573729322891445093955273937715088315686985326280160193370993349493572452873387998259373229005288266840183799880500340911890111175710381922458830392898207438819838676659393292622146872195769140465396088730347379898552643990776485950041943884333039966262889200546281521421975845313196085176006246587888259708758677500252480491703830127556161716778451569325929775362040830093132772705043050808750508014151095714736854498732470644749682825756177901081818453973818750874241363089263686726730602598551265112761991535942527880330202631767481251224447651687984298115619249858650656539374474579551187695580581805288527289212624357917069452905389069115946080251875686331048463632931715327467440516950207804280062633545505941423064556476489837701723259902986983520872971549759220242311736536241515861397779999749432649663576256081315396476781589460197594779289509211957913767128373110235410829675241095283718630362233779576843471588080802113662000051845288564943247608013218635429848188979204767418656535061879173548990351915558810223967490033970786755138184510988544126559676025949106242501943229675668588234396153397915912523914757289842091571178221026609253424971882892546270503186569934177639440899601681645042286421708315744386366014329612783551919003515954766320338378952768147582645433444912087333726647101673368917551461310722184546638360399924360317205869823391827650101097107512019567597094724954388044078333162118624394419241565841687487268831564871618182140070775157760753622816019123717178578939457652285755514105025106015724656870503823397407930050334384837077044833037348405454226299710310259675371688847299383509442618269402247081204971256991809534820323748180557972182979920773229057084290061302260351363960415517318457879618118255593397951300365788719622528354855194295232099383427607302868979496149641009615737497287414325378006630120085676251398033973615203220244247403484034179829801594221217923448699182200242577365921801589732579205698024196413871699609974535683122406066004941017780562956030632560445216569505936032893597293644039348283027151094019912785869353655557350051210668104722808035392603625498722080453069321203622411761801386871720076649922676611393312737747954736794292561526061368803515908501800741833365326699901906857563927884514126442481148546946636112426226489233236405815555149411387657790684820757019187753046904737970577933470971437570939869034167492398568182812629775716330557200872932137680487617440862028054092356171526026973730657469426322994250908415465828599411120201909098696599094648935874138675190021741772605050383829169043195008961613399470222211614937075647771380920950801744505718868432166609070590606366949076753661091459074941436159054447388121712121979773692868390615777266617659380012001828673764001701470192566451557250606799598365248446507050334515173349693359225467544727650819570006852902409439354399795553125985807383931344146569127642814098940017110977989071626017778405813853699105459873622038296931565866369857424900267441639419139429219927485778544760486798175604541512789219662085418700884114171903589965033150518206932694130275065375412380998517382071107909869351191552096871320033975228287482677548367793068900810389492453697087065875497290298447429096886014031456027870859269634883005387119941181828772701411169796240937642796393167892610236016020125105523158422620855235609431046002989179360819679201712331324633118105869214956756212690492421619063566511275277662461655705336629649312842502282931252734867218623320834131123524199478492703980116429763230426263165239289303109296314294755362989372521547630148554211604860207919113019627791778383462446743794697451976868237727274636268896740542598848913906130178886732204026841012403589674892651543632851636951516403257599909862940904505115474257107191589341584585738722309687583707713339176918937424070271272720851421382438179586527789572515919492109437134380176778714334639240792796064808011127069288110259601478390574431014573873741514149199202801549511026472864434484424182134151693486350811727851886202817438467519489180503306488740891419362042204979130988344332776120570190144015457674763295479603409511649550620281025591537431018842096862876072372574147124844640693008559831334255440272103079143486012393057038585858739749344019074872403814053699854450513197937160938335885684998805446123527773136313284589919689761537330838983422948884943198993495594866826088517780469061092079435235531690528802272449164119222154294322345364128752155420563145214930121471939384551875545602804406393810072960500058227842426090989050949292638176471881312873199335985878425566343834859065449760584797478932695437119894918426137174683416471317597010726052259673415596500183009217261010216773159430674371954065916809483031511624401987970674160410219131531650285506992248661924783893298333987806626897785418661564526190800025631223000469285443464058548502768984767376429140084945435662990425506502356260977142383093536981664649752222145034134939372835462630728893343850836560853921878435337003385228733084760888073023888561873745624975654358768646732348125872999215937035870222582604038701668954133121461209398806960140819851250072273573554348469128308915915687130082692269604437057208597619897067300821925052635310352686575958852053167865585459604735584446532681140610373776616878945151057110773301823329772060727664953381107034799584064904923219045327821952955327106253496665161452643401799234105406172695322700326679422633462920404022872659114053428088648619250881129026411408272758813664623142352445465333907068503220831710376102636902956639674944955981988906612284418022525070175771498190168178618198261622896669719331807770492707003193202289162541354388844704754730238412359909928881926647064655418433846552109816493428008964968696940575216867853795875362651794190298151415946738979343937280134908573447487317689984360475415511223321785103281896287478827643346408111795993801897676490638835324503969887810111581140968905812410130847571736917322855475037140087122765320838430092398286370161558926012994873141656065171296574864407928851790826828017031338586282654630887215095696712164335672837857398144552609596328456179139215354417740890422974655365318679314188206158910905632803119950047297083329878873496963790672065999676942900024423737331686171531618791267096267215145671071378084540276565973085564837248877155406420538309113757216122777922270692338832175103686866713710663297978178186875512984004639777201496468063160859449937355763053741743848716211792843392730829214608371722295358051049413994789236124172954760900133501611224884689014720712714082217047643574780642810441051722954606277590484947512381764563770255113398203213521048293021054776964072716003838000341330096264677612927379143286494800973080872963698226738147350648125575662115856735684189823874420738354828128137730085585047665209186806623919057233805599630692364535480681601925514687015912914114225018346427584689389520200612749876328563168433567733784661034746443913715163777106756244366532355542880771396468548110652286306914269641833985608758484981300856772802535256091265005005192323390167974141907416193461601930796164169679279900249916991377228431177396328092453873611286805168219832113445500651653791778907077064902934822370689030707830853575826770296378210694139591249250118758310092612088377993784913286930084497737993670459037532873909847829195813623812064793417688117893005090202251559138589383691079740792598452349638709226026786436117039242987124612337270651420257502706004614731912565679063128214288683058268147090605963122126057997431337726169771564146169312114880741956547004780104326739487583005616476290511860463536022188264704804261964008120221432617638950059410206454167151180103575584557383056918824252162065162571624140923374426200833877622301133956417518074787965634073825797260398031520489318146634936115636330715095936589528092145693208391828933106077195896886750097362533773196918101845289494985937979801461147922333190485263654071644771511459370798439697770460483916801927636356796840918593758020793666104853937221235561148537481710215763901041354187956516136250674036097491035556728414338117001469274381381683289054491024731448348014405944570859696866079152392789479739349854274068409747210966537832073136304279880148731980656107992276031897111864199347577977133379018346237398581930255655243851186861500119528182166134043402384133199652268909587508006830179438434642801990458191374989718094605041442977080088220936375544333045557534185278455970984702323521953927338112378063528006621376729732830167476580200000500052524564875764404120437958906061480269770997259040790276204174596280086185182036384362879799579709654781782893910537046155693064712625582859780439022389952070114586355185128758820995610647347397454092926933443967686803880548796605438819923786125701964499456849046675459508087348685772415388725488935283439430473716124832070604546526940646685348724165309288065836553182700509400158286162772881362076607062069071181737170539368190416192389419141920437933483582692967343448867485216351430839526351084775169743944016384525576232907593065027219444168572307953502474562086887034571536682097377268129842400467753761658423859171331130125118934676501669894051999534314887066503113075916533731842763341675175520435460996659685941342116054699393154002642311443569243490612004450163618673473178458880036869501413791668824919629304104700663600953146549971237394410243934708412890219069630148433181082103227176996673829723737222896645926774853548840714278171872522959663272080457679818608712235619193573873646914303678938554797226957151488036323870640518469572082832337655786342458840204241659689608930289110646445554837998878729623888972286114700755433332042688423788727566400523420749744579413871441875295004912761534089635267020884865561621890546582670381565920769557644738824384900084017096730582029975094426818507760060775805011675222393367709388372710447661448065662519819876995958021268737820668939148858491184302559411062508167170408682426677396292497129874787824412948841891919839985251545660532181331776964713529813522891037508677416116898446055410394351408270522965772449809289739466631404519604013264752961268196566310277979659798969111095505027898863735867328387514951614778322604609171832645987005540945166941913925582214769523526458211417532047213920250493981775068168553311243301334385337906501730412120307056838893076042537179396270132938049111355892833786438900082612900896635309336494069387289685627372728786085242667874307927329515879442828186335519070386501525943059515471621791351356281753554597986104803774689964984415496408805287770817413027013991841524182125732947987190731484305707511438659939326084383444863434244389920485408015129054445542057897346634590697521472899640587617999570057355147022772446664906197175759521065137569824546106613753577484018710994888820634226144640304583163168201494330946691959268884604305467669011210511811372937619581256440763096461654616584675887616461145640928855020091346384420021751694616642815730345199875525647328415034454290974291004787989540151016667012762025116127806750282745965178091513965899682472493230191196610737680060066314815672157825332556865657300821708844944449974494718880240827307558101816878868361638616393391959111658871027980658774930653272786618049483706710702832545687278810445060251443177980892065991646445960692856383161493468451966703245001630168395185149411837056313874747372094973067056409677014847526545620504110835462129283753587486661871922870288990340562899742714474314567062003697919566222502231607922723892884017774407137756768545642978337415305467686489072734918104507786549565189391845987955857884181681665022776800934103834864264370990986304762678253952414189242445715117003788015570279120194808232669430713951377629094524065345120161198065242642127315829541828909510118937793099110402374031993427487975469947912956783701997044450415725537993330468879467838298824004793419232970615833712965822644017412874067144879090554126722166750614441391450696789285468722430368639608767376168648785721705293168734898575078084487315018909655921902952688491293235919264560116411410659236793392491165297348148043964882196763446599168803893344100077516957045431810091765945699689267639493042783179297439307321418748763792818334091918343084839882379196411097014642998617968262049611351166309534177334865882969475557359418432193491264282744417516718531045498821476764589683312481689021811816653303798147465735140609868074821246856095009968824599038967968505965230362776923814870160520028252317619489032299431566682347432238341842723983733262360853548765177452978992730802612947696339821947343323811265918815106046182914560975088932106790336711937058556895328228718578934232477690018614286275520550691152801630257829556627288557076121397890660210388710531170286104319769938023474553967855553814413500188557620920030733786821255097121790217044414218945988565620647268836932043885667224995980141011335939566386706700012486705185997638541214828589135414592856163974804172595877221552057274529200907247014967781280027723930757824225021573492349164202154756544948668497233660194453048167494027044565062979615141982843122047996602669860061501647560694316672035110484461293078243505518398438195406120449132841394982306960575768019219191110967787552196230344316985658541371219106384780620992173325641166218933878409062999234549451452429268603759346181986117241640314503316275126103140621275865854996181618188735321927138626362059591854869794361377180015864908349429829628769953177824878001373085418333695545490680760518214037752729408043709797092035418120630491011454971254683589138636920764846238333640587470395852466937733033320306656494103650703865253170356329290179193850423223555745538053125913522429656192022002553820768471846443167255266194721079817468285612930153249060084948884487422375475418795359815585196684835425753644701098854284960861873101793996384612018048778335815569247234119118433219379834845358191225942168870831881234600347940344318462757330444341784251216401756167023782969312152367058264225156168926315502793224328380047655051864381772972286135575628855604066711943010583933532773586182229615206341584779126536047222219658988871416021107783544194015852480877560492795106889448404534102655388177577077237266014641720432009425990751663539530968404378281504774277116124670926564241259816544635799913314294583144323212786837456397649115344004285162627932282367623039927993972111524068540575427245216879022643424428756536444408950145524793337755365354493741369221615222918788207135121487487969722389581523868168036848037495867740797051744928081379662551789354510320460033821899154183300665057635564619147850885429626023738487166424250845873564577433781508556597190461348384518875703346801224351059546330829058608759845353494441750436919974523847589175900385067022728494565690709766694350637977958181263323523259051991768222535186237622475900915454383380140959445688701421397557343809506065293573752522744716246595128578123364916747914954733186527797802529306650298635989553640121611440869965352669027951917481951956322659123952055813935457147094809829219743812059647210940646868656181961989825305868527018299971772021833455748522905390557700663290754876198171763059894116883831812184057012688878789405152617415398998836211330513930516188421003077123449696622677940147331571139211707032338508228213695315434939737494899865265546132864428766996642712093868853669210870077700360979972551575433478072164256065268330230782516138886732936406844199583970329579270061440033134233731736643199770266248520654139981470560873695471685709037898221251317655588180959641443206530145792192049746262599001205924029952209151564403871200125385803501046004693538156113852764450595886517151824435381184257918618825661810342508631349715586843996468560070252014626924980965995923779577988122969969456801310568843362649482790399046833071687017241576895221274809240341219712186228161920718246712829609868788981810405930377422626879920730985553414463482229810342863648275485544921260494554028952544948442311879241907896197147100143947773882283877910941190696197459088349179947811659984424915980241770395632418205625644197554231772295658818706352863860640840898632083794757653524097895863475175241559089122766350563101988222650267218353430862909520885244169708399367988653261220925311581312690773715633481039374194362438002773942415566770172591669851340134826882565687426486383931863282139104847617394420910728608092522648628048565541115254890567752368751710901953518535162251357820459040761030594580906589690459221172645797938778310679908090785068788563856362164708228441034285626832908310421892697599655388933807289225279865650043517044105614770135288408471315115215023845708998121381392345772857334657747096879571867969220592812382822648693954407642390489826072104809537356982064097518845978180344860105823470499162656537921558888747142189991416279296440977157999994947490276541488758696883342222599096420320911609241667743145750193938167288766862440302081631959296401879175043355034752033346607969483910852526855809094878214574004432966730687002408194466763272605080725320072463166242089826614187418791516446140354568396402064446775150296032232493340111769403849152171066650417160196394375716851001617997580306619907968086860592877911548774772134335908392860416437639906276902878426137991670919135407469075724231035109639138617830506117907282431066258534538981229970704840014120962817628991920381642989476619007388658233910740202265882363881841266672830913750945237113024764651730535639298964905664363555788133108111218268586023504411060675448773300446380309869646441278871457964122182929486426439953068470774679438962799982380534048635169919756970781122396114095531205507580214087726885399755257996492310359352637311123348803432123331495090751610997359082497861793738236402962821964936207034815944601667713424374248722151364542883774111453508845465439051890369113406298875159725634103236265517333463011332567203226251101654924333202042129254378820651481018553349486992849514957518027425117269578430329731513037291715657746825118414762932789687773014971482619406134725596883263567236363184776242664443072178605266989265543593238252118494857200442559270855130587288727111873087623535555770545110492567106537492576227235924438271059880081477984292980766036916355066446498477942167087582001384268937416398242031332990302802236292699553310098854925189536628406737937898554024702003609494210191873991008480626457670596580781160918076894758832004358986917616360338316808823730792304775094383239235241538987189209734437470003083201784524575685298164472018241417973665170234524677005799344368721486936640440986061922118544068498238335989078146343389484501448605032338818842225267636083174313315773868588826408929919803948384975716015864307801150118580948461687956428172255933173618298852819171401335808704960636685181890107926920124546129241323218521454575463887767438378926996846115006151570713040049048825867503376639237056941262157651701666375494084130946302760999311409274425393276331761326698865149661457067061971616271565757145220264056442693470987904340128645062078033930819607372812382253022088476660302538294425964049052212475715998367157201525333659017562865391020614505825374999962468538070618696033095008311507018732818631758957448662259101222107000396512727916874260506445145636419422849662278661970202750579528014735684754769529092247161313874493952687117442791008210230945137217784951588488992868388026526978537824960439328415557626322494678797479952691679148596796389842401827430085675178318165595744997565875940272867361299693833329602670491424148583064790666648585279477951520764829928889622406142068936345229979822845192665815258897066758382552185359517526828879390581528677749783697786931777602298790055777981694828230229403713184586859901029382537830480085439462242003139198443178810944381699769214860639949771879248188526688956871850602376330345470438465816368260267996927707930961176014778112453759981011245099033108249734196958710808715564951233720034173664097788934550480485504515435201719793520143778250260452133174564217194245656655903395537913237840245422844929619480855922748332735478554236586400325309469771114341898301384527592771782100487564362055426137150087469051190174038156564301427820132545573519448730972135432677770239269171682651371633852945723537481665846938774563779424189715596437270101267915280365162972920632470679430912837924066425702424582141450187680324121696028889063143439645065691384339601790761228110969339135319571414485248037192792756974982682138274743603411437704818641602767045916709714378994595388291321598630708992730459085351786983882972419215712532980501310289063476430010775944580747997827375097478191511685283016803202900698478114560900157020007674661983398946781727273047449788432402194180536559017783210376255540971447710234355207162861664883961509235739099043249359728688733630380717400745019061383030427021863830543264969183299575120005283046132950777206615519086564210638198786253471991226039943878467016012150262098353997277086367061520136628033797742178280023615455378952171483390246371436402130484129215382595514313764668690236050190960828478429746834327085959168324941848105718437526771131015325177369319968031813482448645046568530521747456753072158344288948109869665118609033296951675373600922942080329122802446497965007516699578068167399698894331042257107083395984533900528905022131983323200399901780230129894868601898697009708283337290477807356859113388933833122378498712900236279454743470620048309674563584499538850504420354189302571329891217283437735666416279166990356169226839672102164618790688565478764782583272194121933133865242107479770791635855823548111480261919639827175684349210923931350082413722553154042371461133106837165339916039541457801331887088218443278445618539495012613899789528034465465595326540927450546923150187097201154063810522218210036235510539317892297689563024616393141482950228658878069352239863501159266903980616482320454915738690809390984810996282286075167739575900509019893347524672087541561536126965952451402259053084463695902496780562340812731351522206119089742769695634590601601776259234273516954069072881582552560685931291726699649233382478625965963668260739904821264980745611574420522446422875582979144763797818045518893789003624725578844527440442263075621794974114228826152604461600398200452053372019221822918161350710595533977772581993484694423104473345889425790818177324223917303566387307682994038587488390080731294012849412746972348521181465739247756308477623592671922372755867574714168090674523556796601688512710246787860638466812691965433332377410700102703179476351100135934240704868662996145537363179606521732834430646395825571364603151710128227029815863693790067733968899882911314247035974671791526140893639943339434636313478236669280735148316134815860460743064229924989860750542609112496150630952505153147938644236400946148960725324939261596093520428218282222249851799082981401570370276454135575156930422207374627749815269373063172493052232353983092798633856520572432170679993416689845306157880223191732431730927183325308086096657619358230117556605245687855082642485793746542048564021228960768725016372266024824905448315709029779695608285129389371632898530601304660663406679464153361692196941025607100483727188117168237451406991644539704444054188330468815270171957749117165203950594060060178762365004482295133593958522147126582085024318478747083414173678645091390451029524981118467018456093469821263339498323046845481195289101801031523755191757016202407038314452652197688286036589259582536891588694897944320526267747822070996383551543925073437384096333373251117799369416570371849206851542094938329308349534412656979015701744967338966641109995170183781581836190634867329328645676042873598944067789692593829989528615355547569366209768213811168123263748257574618397211538520640051013915958222257865169300338417923671804789159041778149033812127903688908589459293925107449672994401000665079568801682476226284378581075341432795014485722606952681275334808427940955858226775447454640353007473309686022587453255808378326149837604079524394895109933881807524700599473105866926978331844900324601624388544541765945612744037449250116682538495605844805679197901473735416238756921329216976101328698209262834521583793707646614319838842852749082865616463089748696336342035126456033770806994661002473236079380290073669021082271215433036736489277635171710948515386478762192934310898346298401854177985657244808191397279013404110237512168978272576573344817560356457219290618009608847979060612078451165879815761187403990137228997081725219960609787243535936046315761581431035804525530343543570206014061878463997863395570251716428878487935554526915469747055239320760377532743267618359732068182335832997204209389962286146113758017119776739651118899045794932712499327644979162600284044663506523355945343668414383742935026033913319582977486305562308715515629500295147351069946237844279307700516526369026489284585497146554552894591772726851241114974844915741589645363278752237914196006208156345548197003521704390137271379536229265975975088294978046587318891572463030066752940508508972866207857168694648243887390156796163575942967727682738391061759087179837404216391662503615931387040869486541234121128420287400979925215119715206337535626440831366165359629239537346966741324806485714534685965702195265959067112409421150616546441495030984954472395984981756001216598555858724602550259655169203288519005668716462867976340920311222674624396041438996829977065825966932534167447330622127968110128743404450342590744240724142724373363155470600603773096228464729081062169844022110925288744415749967670819980807088790214486364513095052631778117078473967241860038815364856410829986002289063822966934751407989413401070011307162353494569475806460723307604188630370151914604446631088298134984210673578250341410377574387623538614274683972843785754517529122430962766661243099521708026465207158202424707333736821361039509196751329288747131572155091343156037074510063841610483832553185175823695703651829125242990947808786091366089677639895962009712184815405469775828069548366713755868940805933761355465023024602474199918868329713126465219179950938664197354941653132236229938801641870428716714965070715469605060228639076439804621991060303306246284364493479985286722013266341978547049543176461870686556125758434703579345797920846932643862311487828211188174062001119551602810654617400904516534070273049851333302405036678668675868029509238173235017918875959300192888985243675737559493323781751575711383534004955128284171419500618771021627486399683757893137059255606022786198106620515748129340089079882811944571019724620744525180578489054467831631490438012195246910169211018303284740475888045768019420225223303524176719171496314943395544857526268873471020076827160921976514156697544181134852283748920146095142281877247690517963341837984828277966036024370755828956868534437077850797840698735611209845720901558407300372997271939975869218558631373873041243920554308687680815723934829938803922044021047607237799701699532526921465096647592097042059557217734590000730590750562077281504193046289862439098136963233518335596186090322631549730710313159365868764392213625942006205601918647080673039151213835117623617920851873882634513590949786354184894792664395189710053436818580686559785076560890081126813837044107533559881964005487964509422898167822535822335778701908351269545267157347088981641291913631067693185271397791276577187093984120788949073601391308296305786144021181441594403928089584067850373808213460497113499571247606743344164502359654672079627461401070732739138885384572227079682787404795909449010941223100898929781676835774004227340191956007252417154164079107111656345561328663810253157456362799954391300454065277478731313146777704834012543376217403730598188575142518007219873853903852933727971229296801746481637294623353382360182845259044760868314947518377732011366225205726316967815227246763208314905604403747245112734433471794249437267544267539884631601454713895698866399720440313517495346013148503261176772379807599794994876746052573876313065162341907901900690071178699261867883523617328205873024307735522227027257191355780758774254639666931289552399134444119949314398825918320312701238208823161001594379617897934849556849384503516637772680709929710015700125000455128981806993133594674192976883740697329189308469978515294465126217330246940788533324443678230092712462379776083184108625494103456096202660953765155665798120353567646976531035897963791671448182162456064054563850585442366494057473829308893310296533156499212824345871615845453715374534038901698429425047247679534997449313197717344105078721955874133896107312595925644002092257632279534351950069627563131654367173909158347475438884333357099580008076814670399842033884315249075054301299657866706871701807194109802453276495744690130160204163848097997764120779556368112244954318642667134315930663289636732475108438169752328513795409901986673834687741694163612166384815431203395721768880705423363651109279792392529021110405908868158688971517185134545945666311846544785808476942104284575439407049001190019241887761081213745594671920038406639165650797984933960028241605781107706466813528702161099964135924516514157831868466704691162633726193986073097440154231509930445416114205693045667068325818903773256989157020654033421276981471392841243663010122386441515689984449413506088783532016874085449770723955250753499432479143079902312457893267540982617168785284531229810938824941302429749471065824902194029741739757531877283259334481680857120488881736514011245851799108943127050343954283685479080860054614512393907605264415414418790478946245409945065175221473419699725892429494103294241766824493285542473997173569171469379261846630150159429964380069611646326683323891491351431264305226910530575057843093481328751987145372529082686418446649189978886711314874747735639992010815121641718744588786236991656149981929638323565730901931480473047672560673514323509727392568777076523214027210060284324710754797600838708450366213095675210699934142979984057990827178766134251598369202452788911774684178738074663427731497462002547885029376244288475241465573789118325765312023797964727851815191890151127664766280770994049968031605476712131373613416701754971602765976477462663934913200378952147709426419631987511251173763512111780759208263218511819688797160913748318566403822392714250262413874897780288054140616351343706557061090604669096732312269771947552410673107244855539387310029630636661073766804987160634076059758092673883240999615238326081650601551813054105713940472114327844005723007818929572228401047752803200426604491757150008415693944260536312881776919035366611561903459983744495165335421115651265295654646781166196628749652599466786909233266714031214033285827133173180189887193951102102089640964906667703671679159010498339385382096909072595455156505250913526784450404397600558360171050338378935986111017492229168444731102612874775373709517126125395869865549487914628838939595481247129598499206349085703534330230293055363023270872549397704402095569683239939438081345753329499020133370697900826288621319137786536014538761571415165370251184499505597852936904554416929519513392168293428171053219275131499307941878078257281502521523103628327146265529095049385090369502959637943193035587724124939149016012070825099223266886071294803733662898748272692414025403851272609426216183491452359576964766642496176986715353465692776867011064156309598334345402196549147763255716582565761829469850786079282190081241733488013382113110095449437143107545914724093183280311582106381747232506223671984823574483164041175586062336543019078030415188659817916652826637732890571436961041508638429077966882575289552585774744163207524834358780749243061798929368855172895102157727971316975307264419370182714674901575017908062172471330568672503496693864990259271283418544275825102523656471496116119891283536159197009124220951246901802209792346026636969077516664263258179213538607065353564269725388150855409844379519205765623346752429106629282180275443750989204609124703342845006189321534951473645022514886072627151407921193824643745696668467593120338288380196638976741930544387572324397277327221436051012250098223572933245643733360940406181462619257297680849293668194185732875881806336867794902980370292392913225723170081335925661050644101703911021592211540590699270827806295134778079515500698011657132146102703158775944148542485276149482479332994036024438569909147689797980345858260243672567919772114980641170766288737088474746654094700256620344640541648721141892524463342293089963042399116464006696212226448556579807035012847671380148188126110409620438422383506806806497964718126510291570138685057980730145654039698703505229094514308936864997391520254433766662736438818239444026697174354600512548059389164047840528174339281061421045614754063682271547943999524216474387798436739412330625993686171743636016205469156017469355421679276840192201986933980624777624938561456458605099906136533258555703735608889567558989860055442377783437091423166207333759555883759959102044548860002424695034285956775084739504244786105855741372476856193176082266064475694591238568788533656657248303440793403036349194870394231994350689262009651714776962656595738102274895208229848287240983396457680642672398329749117791815834426541559372795725613885166727115194814318149731439110813821024389993357632350457171580555414122131327349159434922642444789820550980625277794141084956545602855369432590457699025893511455759611832111452678050428194596551152039991726622693276833178027691566658272226754057596035921730995333580540768782029399408169443213072465926144154284401306704701975224012037509375493877905101215679617969775808181141209368494797193265868093931150051787742616451518851729168940359584370662362204824491733424013460702929777892079442121752486696934046401945487406635507337518325599763765978570552345325754610781843024211259991247906042154062954418616752011565802437523148233249796140106331862729905535945692981553093999984387249873069296789366293910589119826245797039198640916119316315177817670755679603105803516494237114412068079211122115090856997454370561926653645396940335970593238519552684252019802023936504063868800174389384840147500120728805389655201167621144714114933436460133704827383632433825296795482910295441235813090667237938103804851282423289474415327701922284613197831767571882279317012056308658566219576341540448005868546698483795683831110223255492091465809543192937920448123916523158636327815131308217679612527586122447708554679691832668780236698719623906283098179276606914189896499934290957033932178541016556417643474305002421916214238034242803856463094113225121340936912359675281870124590092149016923058872501455855857652655029824131001143550078147029591851450269045887129475261842621351281655361276991532591478817787585167241097677582986081315544723857937965162876420300882709832375660065084226442423546815279176886917784232813451460571814454423212346428378227435595255231132234932431077754579304563853853793556399573017857961006005273921072827929547070275079499472114785663812999403483376883812417656930669853965569673510715815279808491930872879009253103115055724765970617383772205719766582318353393194012977893886533267152046646668424433092405674525753491952815408002585465123893766175950231818959918961102855523874579900749955474388825530787311550781424797056739931775833072666341335465709741117141940514764539384659862743624545286679132535212694974812672105825802211162764233781996310135721571614212583333585572761747689883085584404384678815796793096273464957282681431124824866614458281394967471592375221512455457134981627823227863146352465928556343755363102424387908107477970738264780823543714581602735548908847020207820215228739169125778697740072670411366193185523738004726927736573065320846146943870293569712238909708393022844445434684685254618029664673985863783398440954523217755009326593952932433280558580132483631639509646171662024342345972494165697020454604712079046392393758223000034467606110111149963325569155856097695980747686801602016285900411278049943139881985705357473660292896253132382150966060390651863831318416855073239813046464890755347781211677075466129739739443720298090290915045635309625464986226583624575050744405380077853204715170457579023333598199572892043134760192201429272709954634616143946631364136339022768242659795029431591613031167334887233948067175841953811126786448773201171267148099910362096372458775850391407537684114076479246338393114112990517635915700398795750930413395894549262128047888681573607797014461374917085058916337833651750371978323474773974327672308302156281299435476466270663887087795572048508485716497459672387260460906869652949122778281771269318913856978101047273824936311932309002758122878685370358063700829314745720723454937471588771881800656835117470630611093128753278121171670849200628224538138611563641113669854089181908022258912429569436513566150460081134376841733262661477339800313829579134778126940106935674412515627872564691086383767999052458384542393676320535970543584128009940451030034356662324438604807323766442276763380394702750196490646571949073046229492726233834403321181457797228273351507378560455703721671448077238736362911654177605961412184585551373130267753211202579563492684209427294997989173400300073726575519491245704677163591976388535173507261932774415437094680581327138374790649417040741147744011616396673903421097478511014882204360799809590449173403183495882449381599077283084997293683640436025126251100807423493891928465586123999617496665335944594903666700271298596644225024737026540885576868088474335526980262187529960018431063401531190303895939757513334704879425051217954864497881488615788390351223650761906645879206180416718992621760379797033321499799560087957439788450114458464003951667572590633256756774344454233507454634231488710475438365760019834737648650900493338442392175641100010758049067973110011095574036407395576573253043332574862703898642683193269467934100578389966262796724156230059456497028946675406542118427539152008000705994697091851910205000641817215557707885546410742993534186306075888872386083308361690111118772050164522679102572143423685887964417638574158485311460391273226294697341773712655832304922606408503255171858132947654892566777006275399659097052152837866440626433197560317596667193402143250606088484511691220075081515073192613597840086770408749188868119054506344146243231717631030656475179799194129370991180822645296409196393826723858844128849291571628158063456396796035324952224058009918235864615289636648937950105306448909444411518321446922213467219032719904879703476059468784732750405460194581702273605562449454250357592727775106441267884065779167876894090115595447393267268797271487156116496473806368506596159028998184696955063702253539265890466472954072550469150234343469976516248410843192044816020740357292148711068749966147474714299059348768935644971179853508781787965907533829782868835228429887898489250728685946351535770552095328797958935305440000148627320083176322951241435008921020973151010338763596207831128603906508189431908218917368164014588733395472143371402292161404175024667951612125447734829192339174057671385790245535230238924807023130441203805569962500079417025421938695617362597143752759913055713265872641220430219974762969372651654166199193926598265026560905109998779710485234121206967831345328193030310644371865259350679589362573062369026657669610099472134936431234901089670572874867200145943101450181883831023406930370650744260365458965850919926318369671456404909043618916439831848164158440623645939516402411139135175368537587265803015915977248608841712559023541740107631509488870161810371258383427305040849770979334042017265482641490501657795628353704589828403200423707742027947120375432148278345405245274334709350429386390579311683155650868258435802005889218953084274869657913692825907256370598504621271120242670436568605174595743695921190298545772737316372733088413310967327162175538474071170900082466088202663762499214277393096554446530166687024000018655731757431919052139679929287116646214143007219859519048294643882254994588284174033988980118992138177180380343078974930918985079505182800875587765050199383448389780099363864760106635542068469569358846893517075588629649616017512198576997020296298505172427362589383034874392838457927389765959180137047945635517919168367035156015965778338437290859732222084663760467605742971224744247896490856854238870426880746417206349210298627640453954993145509526721217950184903609330181814696936883922937459350398554111413243870403181261518800346616572276041450397602069810544093245448057841206183720148464133505216607731263854667334539653581126495747118138310380956179733466103789868400040677747182460398579821113387471030257130816899452168950444546490200296025061157861804223432437588890528213073198156263468658170836839573142999401554774686584428985344738605073744227195148042173695241898272731460740632384217772330580127190346665076923030316101583669354151173985797870220939761753876526422096625479196342335996919446976381703489750662609097362566638392221167574332693310585217216187707132377117215758713377716522917368239575990233668636195417443062850811541119589701111602528514855147394370836467336857128338745892133329806859481171869934063035026580133727700394250721515924822868816838849095547714943388934448287314104889651319248387336463352410151163099312317722242524531986417902317544806464575830116878209025662582848747033805014232358958445046297740088859465733478124384699381168531064702091886030700739425757827666642386755571433588601933573783910995901575534757483780052962539915700323389314400085257408248005802307670272014798959414065688607919584998032747087057876656448446653012017450869657397118337173261137282478332169175627410260392154805871384143937492843815764036323058658262620715776485604179069574006541071467328153911692498528441997677030390654166100393055697419539395503809628871216778046823694700790700875525004113235036020846561958970687456662288291542746660825325249367043150957105964863450534638257746032496859096948978877338334597280443113152619641597733323465211527833238752899632777908605179199584383936360621829489672372906137593378130662832339143149111475948491107291677374802288192346916862465203758569446024174860222495658754922864035032494073411064731038763178176883372343858420947394628935474336948003516443265374871469148416345865719249454671928802910262646487235707612933686660383502881097519031535348895195733855974011305057901947622135830996990057416282981422027634762307158565605475651436663210633409665243340225502628133069921609773107067293419677880205681359504498688869534494622952776815455776950573721002948747617934384535605747378548151500459505938827555416995721505044220632756415957731026065770253539414809458925212632589934130038093594207874054835866109521233432007300353192150570471091038072454084487376130735943120243543725662530787067049392034622317237066544071837026128644946779069253633643170167954657874646354817520763360117718088048754609690233381332503601397634887412592589269583191939073101949574829378654522650145876494510809459451700950592636868414751970048032557388536654410916232023764601644351401755100144796790599890000215394944783023103342940667523825568685779665193441322972772042976460518448005878071071775751369691860873062744840663953222714524771135449321615309217236427600970706365409679125979753199340939682090689225793442641052720377600275065314646477459368350476341937628993309213250622083975271776871217490303448149890093746073818380186779194087842393415503026568441561003940415845598252092420868497461564931463877292685925218938287302718362964680174584379698420091575651199081030266453881744941300985383524736307898839840760364063967659097242914494168878406707072658215298353091727296756053036986606353155214618250635276896265717340801175795569282310216130635480286297358679399613963620102103552184348994536865214798530791694945064076037760078830772803875068265594381661533568405753685582210113735895522620906027383660292327006311642393289521381601015617945036866497684766292797152535561522784332223548064393480639940773557629432510613086115340649076158223142551232767552411298543246793850611828787456414479428681548717269510200692194005139486274047496442806880539154052567871608348739370136503663924268234612033860749582576986225626789247651535946690746948775608276140382061202319750457157060698397843453335641734836892867652735340842149773834398582278142067132425329404744269553169490274602293886761333686559744245443964104915833211857601702287695357377393979718851992321398719222435036936406976744111443131138511054078901726652738243758888145512648597005186127326248532793810383622450811812804667368801846189935637721595593322408569796564837104559138380927427956350675063928161168008240894697031359445053462556204997618120843649763945507453382394384333067470129215210954517190753630456677374586245931180630657393497912035343716830709472327339176616373059898754082509950295384423492621154118185239468667835084888105509324362616791377461962220756979368521592993791137257458584491113783817814860886331694972813799770446714403027797249940079799726128648391160156212876544598759264071864310516747350619423051481338994994220097415519712742690300038129104765027138693683012769724122346318295328047347152398419752700702106685855104223784941294126986278580707135350592689482756956843735999483037841179879434145775573439608114310368038108759060883631220182419352751442393844420451482668574614365354994686332284170662110105878579895236304173279614774464103920266017126168966594961817083748179094775980765098933619541208864985720473161942102138874653237577894927490238938537259825065575011730497347259260498175714272288115661638282267558945520646976551460087032155806743504642801861050757353069696112650310902144857961868630436320181887527166319823715862333573285138613443816000603759334116482816788726148723930376367418182347362835235760248962405457880863195498011944985034391230618233690456564027194467428395832834608314011553611946744182747170240548362319167278969985342645129771211960278933279474984417958786237705946937505298307356360965066162854933639564698616405470664147899456059026870029790561892018619768915590748906664021897746027824297133995182244948415818055957790241931466201029465828382538615546790015425631718247282309330038250564850441255447142212035244136125451994932934842991163747638401730566777702979424236287723661334378905590716699487266176932226907846895641117894471245806132377812346136123042128822214031620281869817569489478485140296707073635487822028040884346982021688789024525648510349270788666864977121603088284553194020496142050657021705991687823853037874942367456270477672166000873142673701568474493480238463857516151229649545400130318283310476664110443622408427157509722540977281345571383331314797751295033327617403904542547288899908356713563773156746868434672989813437452438891730896140068020929527507727197444827736182748146265381876052984918708136989994657164487232601229292392664485067963435229473921386086694293381187890145678103702956263938291146382602131878816846317074095717490498582092810055430135785227784903176216125952463210893200141182719057728349284474756982371069791693994716122331239062780416491472897232284947126270677582184735690103664012673267037977709220519074098901946735975598480288494575236433588625189801305306041595298640974777469214686608490513178045313999285708573296928516640208916447295801062117682920856234294670985543375242705893894592949151622987207551067193425377614671138074571421883823984576584561967125548590932350354522772900543650643895136620191385485499064142053019047815071138009576765407908592992955008516336578225269838657306928792978550048639681537776333336067176916110875430260207132250867713414427802766118044347714641780531033323797068021901397574816345574214477684754858364640479627681125161528657573034142357597909728233737294149083085198939112778479713099584044509612703354076334233140224420591488073725864695429956135155808261421214868898532308734836500435201407481703643395339536269207154874696644499189387425093704291612924732700025932082210120114503587079135986488924113718498616952313770408899032866232967814035033970586126209155413698728091622171384763312814770217273353074590799164662555568581189009472827781778711364391040366178395711067606160965898430637424340036693429953893726822651089801538447491096046146864522931281043342641248574079471357777974194591848779044800108123535475051236895311692796843914553521457409843539889534407845626404495644404784932960360744042579396228609480118408083030282743334975724476622876990085612239557288583644920749200097697136559902644321341233291247203036438473077966855659281108720877555379331719758422771100093643138703019873101213682656662040756282232933671915379980246787750314151855137384869682127460527312453893917207349291580445272905179267941758975751259846295033098571600084465972243522246473217571322216405619941153097256250620864608887380074552892463201819269068129176986924012647685803987248878733714808408966414279731813251131822954763029652419227649876069378074430446669067581985566116777101587674312847560949958397919491522870687181595907937543368716087203885231562981801856114736042716845390254766948358321566311066833404637732245362352918575633356806876146447992194797017214982985397031132455262040247076331852215629033956265832363514459263097615192753882335713794056046373051278656897465864181458412141816196206604119224338977670513392004700487989433337956446943281178723895811329962533102309902480030260651990134537112772001330965004610425867812550761167689825616208029605413177174327045202295801590058418810507652235499004419070025997246553950624290887156617344627545619022967873307667429426806149528499997121032226766983454855185415120255474725525851677743022617232586162199697299508616493080936352912305837339887400198878472945070944230629301236461334757622686742635948334463918657966166266499288878100271910841665552535211808777470249677835580480327942978589948785039990851303407961162809805983747597620735803218570497367824875270968830351291409155841470977791991284484193354170679236240213265855186443192201265947234614337205365472033715474248992079439511585498813982771616755760687548221259358042556576584364308084340554089395981021272898025892262575697415731802254068232420203091922322945233793579173928047316628972351186202967267842131955552411362033066290706465601231185542191266643792576106391368705376202104736723019262561107981856982344232532001143264543802768109624731422113235260322558285793466824798459016810812226495854325066440399110394295589907426569992137842261836510678377538942729949423529601035130269982108489145631042433558861974364709415703400492798550780853416030770108855312173828456963626722135760791227082005508933118704329671277963035694794665156216515435853592476333626408253106044976709029117438958397370129609500329369175199259219718519003176669651862467356876829968074167106842521096314502129132673990107884388511754549749204137605782747144674765662816180337047998194795240752553157810521294932668960261392703681848522059243619172940703549543351410345460529044896252928663303381002244852771517229575515950780775685458417215674391036801268565092196025760769877885919043815313643837554843821619615292756375094971873140382840523679151825094532571809009473593304865043098072389983557879262976990341283133900585980982841608354207613244546558009358524360114475683142718661531294293340038060503209798543481867302370758324380596943122161426142428282344516384083847733277003367897796110661930651281573097541938182016688571502462180478670354767077858937735256623222183261138813070964682418239716076769438294794257291681712359921474374009056688395771783733877951686830691020483714861646682772413700134229924309096685002609012045350573898976443770189074359975450015685084529094116461964797023055202207052922788698801449129059674325235465690083366824439707986167971629550149978336263654603521485455098781998479904137275029489053356696946282909631799357940413518188087341728323363610486170056903600647284907785113889651844808529063038021254563540045837396026354809224119174302861427326325304571498658119361407344570966524645237548216655873147241891539167267589393535664526715570453543859465855560272745597407039574066142641089255228235596606923825863120521815200953653992002088246705193223701754798892858099732630170786938098389079961774554452789644504280408361169496748240166039784147903279477793315206858590518110458379424246661883414133996935774182405638426225364240938614556316775047760357041415332510544328196296331170369962315946234975119512350345462834188785167658576299583509149318554689678725874361108212403763274054899671101098396197921957286117061227317880586933668788548761903372024722691230108270842418292958196355375731403421548637591626451763754109558221262325302821398623313568649814093678215284321796673947544568525296268803161137195059292192337641388932915732618643552802255058872057709051569087066496404272593254311711463444190937714646766614466805846150630587570969098968115832551136083972778975262958165183573044249627511988338974939106721880128196925506225323912745655585818280590801840929649325165874151458523531023149601066935695488096844882655531653225772455037348683203089994104214592342508074402982438497944964599098000983224726603370729523998701004658924351328621489276018628454300704886143690079065002061453106706206624022026710442605795037414382794186401441295500051671050216465390038965423078692209557963604344130618272990115480253993502495773957010368701392034029924694717151402077322152450216289707790267922799130786756843910635595857204346251745214801078451180149873864735686563852486505105280099669356643971384964806482003977934329402016197067969658928106103966403214278855308710300373129932237697895829677342474453224504099369850359867446052886923975348892401646960384034845111206916566244288332706684412212200699724137984379461095707504722644568127698284318632260930248118312671023458851129096173563361574946713248660119157987767777882095138541706662894874854297615872446725495235664226490082390726385471817700591936689239650232235433206748477372708033732520783215889345812685017553082489744844282111293119221066510347866761152445722960256005435587931216459281982171629393402039387963454415652263628461853608254557808259232591124773315121111317480441090557359021642287277426320464730466178668612324281689655679282923151847648439432766370349188893934351221970380610365447366775963170334596296785349880693195799553608264365278369984368753283438627788011172259063677245506860105684543697200317917250692465803141097673084857213529118061883774501640750231140357475021367609800398257677315236430783942261550989142118766090083688024445819641159088055900287889722938755761422449533172896688209201272320617097632101304531800527704484179060964066609642837245673597631393928571479490368529534421472376122927018720535916078882807837114332360863826068331503158624835094800745181518930552790768144258450467200769533581757476654626900080108022754168236998281704642824603769402142982830381059440992568784260371127600287732012435670100302873201566637380388547027546532238732130751700082908421630888976582110579951233860047020209026088721131201573712895665141884429023965577349443307042983402493321488143738130597810877198886987011684576476107571258360869438828848404364625281162757149306211444228804624684482074826091476809711620471828814014790833435762062720808160451149625992425937041226463583720822299938286077087845688905920107314483840968531509823880782215609764285182584162301647481515354896724022845250085666924347264934032433502220782420057995553629117293983537513563130966557565148637019137993893386247364311754375832784614256214533987611184841238620483573575163745632201521180173405751068541794260776503857685555838651220337709403219553470363876840983723554305223747899588164744115851674821690212599984548773922395009210911285794776499162727945584540838454650572107699235126467935825189579643789724524415270963300980588860041285378187370820755318434886172317781600464709487249534205945785796819453529929232647223862087647734693596028533572538211410338651235432655249914817943421980165986453076481569871711080016651148449565733135798149560210955720610445062623191879062873107064329551370054836589360998046277237043019714385525721863484947469806264705758037288749305770335517412220261734007541479407731881785335189530465337731178902119958794105607401438705034518850589969742867860069491961259447613337824654254551406428759322596014714687685290323933914419681326317231376536608342813904763017919285377986447010526997894695378525318887130503758113832473501819788214923150207202469753787676135620838825167354189934527400121773257786296262270906105084141381643198417392650077489913406596740227194462139235287731909879796942309817659975479769289855272043086296111490814648499106000163976241182676218513632754288377298650583323704461870089703429403744615344747812818742510516490338598541512318304973681390489115167786612138440862731623739131318882516602456603053874549816513664875654510962955189576483559900263756654325274643454336299362836732467045504369305697730281406341060073301221197020365040181977770422553974727182415722422964181685502941542384375115589544836567698675403130303592196544463960892592204459967831657094865484110361779256193663704839592169052027703624156955483119708957775635195110652538981497665681753401393835450889486778641023330784988672327955691706860058024856467654422066636650897295595431635172435394254008082246760969530964160850660909993950243982851811137695392450481635875233596372709198834965206650085525306340855075360815873396629355487368994006902939724011626947565147634837194563093925336334564817868223883056728333137592250820563468546253850481496526192240957167552620483414724878036228580914353854950180918505721070311619426092428225241869994412164076786206315742743918474734145960298380531121184529866185683423151736881471930071348453885909132526672057045823048047451565799653085667614129233216924416023619567933986678425089786571418762687784613199406600974547792768868097825147422225175688249465913695822911417267861196512975536989197182360774884290688135901983918898518752185012150880263384914649129510576960960751228237738870103313835231459894685360488071708871050427889193249167454510760748815409874151220654287521885118243497238404799035815581816954483637744993412967561224122021238272613417815701796808970134876374240578806539628552484378900657787230957634125002882262943909679652143776670370050252512309608265009063856117544273942596066544557693815954169366377411209672172065137669045192874679958139413887498246392923064090706943710630416456377573751082920193710079737489722427172027955624150905411936649848245577669346764148647658468419861805345114616689003768620664170438414943223932973557241170472785169224210965730751332153075810571345627199976941559286335304754802258462871172455459369820567478973279444669971150130231060945589690907101765004048230161930331800118501576094156805763676085612690876699687223475492207243181788129814578814775104525825799933074230291581252031752897501781278563526966898087013324273892920364265038971243735661456191100754777180972952087304773241871800417508124111964573691533194317975535609593603449115489983367545421693934875864048448259596428779867019309270027474314803057385140913039469770226333023548300171834512467172830831754877238189824479755950440750949387732262192318049646282230732462087278202072990238786293906422054254381026015202940922949944455507399895025783269593526930675455878407053830929362994803809960552528175794637810753989326804480549045046549764560698610066756965733032621886004179431162992219736845194758862327301945970414236513834707522367824670193199764340700673615392992640452075863997008165132373304521075190886098128606673400516409316551580662044316923643050172757815347158230148517347296780981785621983693624912986200846723937634798358472461149510447338781067462200949166529015653243248926074204345115624827514806306206882838566971413445825907824368090056883340191980648182517727077984736924881287595506164789347589164488686721932546993569428758156585448094094197420215143224165971744087942732458853343243941656491831545920358464363389111268349511476408479510874274909956673825083126521656689154852791227737491138519548767633141935525915520917676725063102668168533565932660427834678071597157532482355243509898237156598968475298395506177884966436791235741338853380924683840806314696217412700293528392793241044918419793487394576126997541397929276719614550770116571941150056650260133540877078736488501407272476708274309215784160692100590300262432825612211021874510326977112689098523963663924075602949293792693932906902605268915993281095051176191842755268595480595581983979449888785757815676600962636750700416672022376402510026041210784007018834403033745507814612440894021503752211786011688236755421138993000879919617203028992895307398941837114051576421775545897845427524705911637830108678230349487444078614369138346673341507418067057069385308215485889006404559616162768863099250413834213622868729558054490913572588488903877061052403083188244052179918919502739892933326307936319147285891594235037589495305079347675879277775657542142186988603847877965485138461215893840773494770539766032144716289512498174652254700995184735020408176653640384303033551046187366824613863159572027234689422529331154985928927846210386746706965168603903133724532204839515878934408925198799995608463323071738372139471014660357389706191321213331849827006327947091878411055661218422431061841742594227628624727846783497488550613043519516789675979259564301300817282005873363072139589801799085948651973601057100365736081597141617185377576002425771740368747652843558120877991501133067121501072283095946425016291721434718303727485267968837105136910901218993118829948913451995143547899254557452705185691209864437452501782689870171256177590377847574333220982136513474832443327533674661256496806123821838388527423716739548906543796422560383222612353356407336808241423326757136707492636992569464540529909650245204583857819410485214097875681631442427888810568609766073389888908923846236919234210804345642194458748127710513740789905089170900730946585052027160348474496598081313488849995338766727905586127887713125425906320247238564051311260725898042828661332203651842154337681187284097903737506739019452930148675176899376195379305415255144935984205484929096661228501012598627778529324213306853669107383628283303306222755525765534289042152119896117027726141787425767131160199945097083720111799509849672390525281511687995291107904025150178280661673836704900499119256917432757092076008018759323815170439663270736942265142924248904397961416073905850259640925545794577809349391736073237910995210800594962869932783224540751524318020207022873913714719993185660863620083257164352447331489160182840129796199942052539442755459767041855705946951802479939449323840063939456157377308399557681221026725177885955759056413644332141986417402494935177701379681950002258148608362434347091337040426181406137295878870643128669157101363849055669995705073789736332683389844448282360171277431621846838972696875204783894238329025587664069861847139561021120303034776553683893395480596000649394333530991438867986406826788772207762869831351363179111071906669042204289481740008849535461220454852679631959640773022320409762871972628780310844368483309821776393853734740610448120174623972603173314253622291382745253262565521551925388935035939123293853192608415883749487246943485630533208153395478252460756296299430412512085711875069994698768190242984677796096916724999611674730970664937703632130338112338293693801409802413081899010438655769387684064052683523507119910907724633600270150771133499536798088442360517236473467131236330464829915349405991136436426867138947049532762184446346892866478974308667460029714900538463215860832082611858568127002825481318400277830634293209583537853220567317297930036812444051957049256480989010619657412880361196393127695463861731270285640531047175605187484292780603052076679972267544567452931076089493337343798153285291629538679027899136327010991702526719709578276096134412772625261145745062114523520489937517100252552222770916744710078495685116254542637465210706014331968622369191960938551924973358100045299505616864594107582412560267347642802620742410113364141450424210957250911022005111308236310271852592153834778954942893891711858874359137941297799349125663007176841383412825457105130968548585917769097497777362141055785835020434379955236408341172951950502408635449538589386265067763778021694680633175361574910946569530423706102073925502213109051585772955486270808854126881779530519616969144705882638172597192713170374988616528800959956691611996326042827812770903483304369566321991084095244069492728070498668708698595829786636847620133174070389037425362215748246817613362563388536389627369122714971873947459905255296918806076979124373146024322967115761729266321166135519624098907149984789041738689801677205320981493446647581704908104664588488723155533459518656397470054873150250979150396859609537566747349401430955017672989505601308567269198401913427951026183585855885597251192507136529765132793992509259284777783165920650860429243309162681961015768714875350667107667306359958411677668855566078631587375337188247772033346225176976686696680132527017752186440311796795555856118859659992286384009758389605209451015703874519930920530382057559032836129739184719255989045545841465676012196518558798717986243639398344932337488816472197880908306167945694925685901258063981040424751116183822300674823867723153119793089673160179534781381701094595262091753731814135712959288368441298630144184654591898616036890002310974377378844934631678378469093801292470236654833428367753739468681769207043072460661602366769121895901482852404605582418935801666113813649220812101554059899865758944957067071683849255360921437653515013297087449050479957476138865888274003066893711431124328680885622253617819996175543717042077996245155211342077151847730035060159920523420541534617974063041544848679354343605301037973073308390084202650177565570736796503383147738457347928970090888831731685052928161196580059190223851279870222666645622331259353970344458143223599608985105322113913998697886482335702409917521685412085411476183106230915053517131592430100817288332942995472694717300891516679718183758265865871979424939345503461743438312769818897664557037733303554976439369202597078230712312189070111298836328740154939196706017530055320267874124378030639793676827722910726202022529781010852168882798856196527991436016137601009811746414736972143983966649429259652063051742771932445413855774087918547780815390795653059387757612671496187549835499061403098709027565621853881132993482395827573092515079167473030121755035688647209111407756239210933086144108686965847272354235508668084182827093759618636530238434509522763524361598441637886726057087984592601365106966486863072225330211511850017096535407049737378156699679513142842256799614465718703733013958492351591506421800834959517301394661551727399129878442675359129920298046411716789841130789772591984446581780545403399656204294472918905819091471068919545641598340760329982498540095666886241342288649152822024553667887529258130159235085551464523912773337221814912381645045971715199792136558574117266889015667937083908714823592727870306497845536170579377751464618841413221946310209758789225549169267712634331804787328267487716817144036673007448281106982478579138912263675855544877664513668431665075237407306488820467249368475339960542019883717896003411670363474346070806736371717470337037537257048545911737424069342661263007089156413187480806379664392502628002621490634969714301486084306638242092623676267013684866466436065134017273498242929572027164834663330930535277526728899279716258312790303365059990110480395120202429141724977297997804502614980577415455720344918865163879054132766234907983860193259575100427897300697820680957222670701144527622382146713088042683600320351800893030423437557872182109681559410644401842548941164130944259886420702717725500373208284545210569314438394215028689885557922624386952571454780787217606719074922580234761768135862504676629381428517927933873482706011425774138132440360431975207022050032778161996350373949271059104521962557481495239192439482420262923764446658051229095808850746773387057654925624780649850062105643206323525681907673365192215094830064672835391662985573476045941679917827958005956109885865580980610649626671192886326860356947541688085775176000867826901822747846494883458631216617816948623161105515790102545771015809012937290214141895716549689551590663466897997167160715682289259187274159294119598850745871132150399398163637649892818946411976087515004557157870070477411625490556940814480586842338608461816540762880769648622967112354894723015475804716359412704191467826667067793197337541428125721389454498507049090737490161419382403219521217491440107048653349574445898981037588293575507624968986225624336831497399809460790491200616311986227333712156403970918417686493981375929847709947804308969907477315605883954512749447314799708799698815547142064819913298045830143235045621889975810835455030679614675215216330579119880433216397445560477464025078496183418289938321484108304836520310973377024878648653980732924991589874340489998145656502982242791458928593579790928753573017575679073534243867720009252508408054071906423206619564092198198342616078448564551379141148665044624243323583033772385173878977557358273122903166825363862714250243972335779136207406180658939096474828968637321821079908397305221047330690367833290391300144408565741767152179445445594834104790726471282890205158002468703649821184123944541847611523382325674243985616136822422543702100965412847808592737309470715078075655592641415716858514472685614943551355817214552089164292665952038622884326233175188408953649854502396333455757385588894319245749493972756210329158496161744585294690340153980723560809178044131268770243947272726158663619188033993742766787958192832760583539548387541172639243546397059159129627897101036274732623189893534423815187644865949648824354482051795247107579204684738870343221246065454521521975210892261739290162764347851013613926357095453099337115607041203590984999228113823398383452455873995756240808889787423639835461910144110406773835186023462283846138861047074183589845123591333611354136812084556448213190001455610698373143649508322056754230334057074180147417270303119046682491694044569909302421751468610504664976537788236897586061912225804494640804069815802239160534605249568890542501654104384819593417562241473738926995746913011575044376263507809984585880074828240293454078899199617272947684116726557413688801968895211457564739845662950883245676666335647199962580873255119226678713167020856569520156255977430697469229166876012932378304440399248845635607669424514213923088059767729819321495399682374613721767575316596115339938148202879230961178552796139830797819292980039776415455348520265094293154462952069505237012318368642880798549892516633688652712739816352281809291717964778708343129383435821274279719435498759778771700234541605458132098388167908242670216968127788424666888676823778358517278211143452985187212960803658609032257982883014336779009385112361136691082391828797056815373150028720746122521970208968482278608256085115301114410628536188951772566788340633562412556056223409806890683266684225922789560617544112935098235146002780189310292663635399853770628300217234749160059810404184431429171610143461356503747101500222022757724884456554548125131409897185394273726440540084532857057871569465571156933107310367719787543513408866626339880276977246353039413939312361580662126098298548507940839581302158176918751514042310581634008063722962019524273702812012834514025690279753389345481734690754858472649315040437776645769008961008531524616817401525350891468196993852864974828172236117530593622697101924688809103476392286693796304342846114256189847329627497633183343070736036543153325766566161666547898634513403354527427386590875279138709234381071710930714614828664193119092703769553628653243043749091644059384446331455311563960177621609751826935518234987412385917501625912730620068946943499816172566906219229074101829130091499319534119738997982335564754450382427616628675297245551573603154642271928152753333402025336560584346930646216574263360611608826469530061057540544890224210509554315946109234717747110246546130215076070438321623342042808826165374463577510751773162673833744240457720247936593886044952696168908623084634327141459113312550936551129448619290337369017899557416605421523836027880712160355139208767436160961777927592195509760920992386852095223581690688822911797566884937050478630517897778973777435275668879513277807218502503539944580798579864224349186819516557123320483881943792295871361732317431390940648518576152838074347535821386669399260059691102922532599879820891557338996025763953566316098244515913058066042216300618613451049845554704353186992859628935479574685587243643830083376385406225126982983246097142995606426539940979704622682774925596961920911725926585614056086713372522538670021734644426763847055023052641584147353132180445475276277966149282117462752169514511729179131548838042338670211110207924931861730128135897864171047746253525935452083082011068859945131775887562821861889474063324556288349678516622183751719426582190520178292286471830373761735478310199597747803826479787949628122962464565991612132750638843699937958429816351440750980868203576909942106602951629259207409270659744320008062608430320522267286823548617878163072745270997684272544319511805680292481616897426773033547599032802770314546798285646414508835312475838500742485401711649981432006035320606701520571108079824288106244411382277623924451389168256757748422165122172131960844278803912272384259364475774025597888569831073717233585396601970214632784805256389169493747924669960272030667355498428834210013541699046120460307431988135749313375886038503410161507969191525100106775418879411667149996111829760488793905665378918189073277239659337832839408302319968817479951718659070383167781762043300057739667014509830034926356261653076598518620883060408092499374573992717279406300647633372797652674095383967919418037321486962311519140405421443550240156843207737672878589279861996070243478299984567621791996702221658143992769450989898484374659735137958491684602524403610742917699316985619205696434673961003512424062840136986544854332897824213235143627063370645626384549876924433774001506929668604872446021097708910180852761498011250220224351176457842298198932477277112981838987768794025954910605727026706855490109243710895789441382199479838411309672236107790630726722218450793509107095091091144856990099915248845102078183750736354113134743173124809378672196510391115117270353321086520933094002501738021851174922838143394669821375192329332777155402567242244586627959738768441643158174519193479594966735489375094619125280169729588049865156204521945532315236979101393793678846912162888492494567710140924829392687357669803081440945164699604717478014615294547715877003670184662337075369558560492499507343407666948637848064576812351970543303098231267461169382201448460186905188961144290677397245377068005448191590689625945888083832563865489249734410009405281958287094123270853984130426910734557900387931704339027284674632577927888425840100216646661630843235588322169353848422637439917050345607056635134133524779128798673184059541025298840982237332837154155623110000667683029346722005281730424414582082477305978822035288865029507065286812029003254412181297536129101369524736015302057156381522660733786745945194449171742588235977290578372589524751798160373333023343424264754569206946421006990949513613412081194854554736413437901042445623623980996500608102974720736128471079956927255254714762974462513365492059665557723953424956915175714979602319922672373140419479222648420544885122614402969296962353243792570833621659275789001744352248096595839081155030544713312646935406433973750225842538383035123776734505763555846860839600288216282931655922331369389737447935905630857221357479087903907868517666148927828312796006669407650451267108499659693509736136282883041691036817006346860802388710921069822428524478090533030993667732302569759067030035744660636338682302947517928345733407750854522567842687347835144923332853992170653542600882842906832962556174310036305543551698214119559424542636424584083175883890094022033407935281368724345516081282022500784979177146643689677530204825865153245860386260683439645269684518454501546803385180968641991842107990468893479158155157654376833059326123061119607638329356496982792826191131574767162182148871828946910600355419170497376869774845228389241815163088082835728238328965708466928889645155387687574477914862482861923831218018119569446680848720724386492916612531307908634549399081796087094091770848348032754472970061901150444650817332029192882044574262532221472202915325634799433614573499604500090782010873521567091525983866270855415842151464603796402135994628954639355092515024078787442403550149418298827523842023838497225383235857192453316540680500601500239850234527401639901897743714905186809815086385852169631657915384412569495409732528311303709393848746055451761142766403738473891839613031841740487222746719265252621363248073747435855932331695366063568981301283292258180782833773308075895435317279717494180769813860404403357538926428678852212505865850609764863274222613116713930635675752220666332672358955639698619212094855542214497119164462961704823502825566722923680858384750850883029676206723811009330144055850573430220295454101970671899924704600132757110181188783369954316251476222133625217918990965842487638996867724192792009396743153334106240814566454987939285984876456766066862819582478372436367256648110198018045304671986092718987929045923490128388477920533012115619235059225114672465509139642535103994803074612624567808227661387948983863346317323003061644656641866256013370506499117021336501563234513140369167555841603636535188703527718217962261380986912394673018220973695964914297335842903813896112970827070781080688543568926759058838625145404758366059239502341897669484411924793856569974346501807917683864253993067376021107313209962797824927972720321652220387759457027811245158465843405784300401629109790599044328883882350772743751449708732681093070807557324650389793492131532804018310812782830015859766604143635278395714530962387730832347055074736956672718090097592295027927277492498548200399553180784659623639084174649194523278827799946923322767999645649894522942344159177969321366939171424107470720025897287520856320325425886951504567875561723471082787432912261808097499393705327969357577555847509478865924042581934154907798113294378268379202310883252637417174773746555979520408999443585333225459349513144140291232261358642282229435660026698875492392042003419950421478693195992376672299843291874201996581352149825854488399899261714468854891707370999788191982379173472963164140842183839663933025441874554600722892782027356464277021067213364800835294108047468247733174414986809768644454824392033740552499637795591500108829856602494393670271769287138883984770234499113559807850645988096654997652041996935362065909611802528816672201772639048350138543491350929294272879767564707523840844631760117307252164876228873988321165008434095715962954686560237382618871817137117735992027980232257665186106442486008486998078407586790967849082272416929813098229500546611299920720620711479040540225862960335892424176769086138813909812837075126022847670493617964146651410275757426125306807074200108966683039580609323840721092288259672319434232153950513036626912586109820512135459944481824316375214629510215297721857856709773306403258206922947177866619447881235228392707143811616796122741492980178748744085336160562659532425530891566852974197649490486136609840796309624604991960486344456339162286226621749598182457121852745247496800806126103942234060015013891673289712925975808238642948341381108889402005246525618296405386322331551859680130226426131313078283400056903290960841604448092579559982554747604016552686407154771229137349006119032212713914814484686732423446428739724928597935397203667664534371657972936284979412704690654274017110223706077288267430744320407255155833957853618993201585790760404572420706737325988888409413610760474043749250990825337042422776605078744436270995780843735681969622132182925387146128909359295798051023945824621885239177531801563938863220883479183055733590643437278291901919009480376293129559556558749036295693145247820468602335177841091352301371092965770363156993182255967886480741101520143890494704331275664467721290280844019108355796937431144015469056294225916369885438354343433038496622027704512171262315418081824073407650363826463667860409709754799614840661997318158320286921262705737245122348355826511311349927436182989919567264588417386620270089479736299548705373862835303002123688589325897928595356123340128207018518779429597408155356441128622664898981263154910479920466455064036852619447105868638294202687095288117709389894721670522602862227962450952669506003201802148685983154680591191692467314128485598666917356858867941490455772452004024764499120616035554165730862458457285414929373172424524345971563002813596212963993525761284791986997018727719945427977616347556713622339732150547512476514362541655014971370862701708646491838439664815987627784463308345544535413465808858595595751054345400957589542080633637281949027941038942891682101182632232755480217790521522844963560602656351586137455569943121048326095080675061444558119735389031107623128831561012719166469191889365751394565864290587550578775601602915087750339554657130991253220924134115213406483795138917730456951496291351679559817931620965045774871349305659482908656311725680892664607982569419829795209775041332269213172334573043960335926271502331817437745674703785273081837031147158345214679296970815631774273761302425488027664099237809274562459479862917232369982996529438723979849142168259443643174373700871165551901025244536992558728606444117701156915897689992593464994013418657017409761355212655642895432411193974792346195595658332846433257744416771696313751154744923608692158138117246975254328056137335610174706893183664286300346362512001539851866306279220400131638283140496360551590726558233961888386389899344224194568262058324083119001020253344809605471969355809359326778358441846011037034607975070525538279230224946273839256908197437044466400358319721416254601367798585432780302257043254353722608703271616244365219277287312004831374679188053961624175054187169048582260676330264692231701765713517965228610366499989139645823931255105299217734782011020115564978618538338334173610613682052918935876766379372859817578282358314999321937304804861716401170061260205313035317121345255673239737008793422643828881806753206312011121554977633151387089621560417793691527601417895382325106030537471468560766062075503131801794242489203808572786663607163946715574037796222961713976343435345450057963597596004798605331806016465683606950866985076127086231184419724802968713099286484127527008081997140842621793206855332864792087094538732127956967752280775931624889157462026697646650756442932025083597393208794155998098783524014225015813505859148191845386272418614946168688438417166774976038338727747626816601575490041697564989283134719158962981945752721499366000201993829076584494338937364921063391765757187225467782022475184532390632941131488913348693889370213775908283466443249935040025602440792454302928800151255781898909096869106531581615479412649126086511199566546409894717803756360170572162972480143099446209334607627920756860269453387036374318052263867628746482643533428442672576684928274676141096819400086653338812517044873498483153893455823347001996119450430913777928409596660124406405022716975625949583718341307024508978806887660481579334196889480999638071303428197046863501563092191114069170183145233428383558426598422491388890128571668777778626924738837287605706753698005425599348124235182481636094933458481371036794744138619723164642121448378441182636256136485236193245131305706726768084366545823277269966393142363194376233642070452947143321308540813066785662012696221363731586796198695168320300798420933647236946104993335231146691585975062676082124600590487265494918720360857694139263511707649633513458515869723169588557474702670594627704878838092882310085952445773450725711207113333444018087268508507047569003325265154797595384202633407821008151399968503261479226598835566271444893670289607822189074027407915518559314073218710467888126532630585722064749402207312504455082889101683681132758648223906251458921566823844194626958570527894522879496926581776144957625462424200485255297771161634787361706092281489209682382150379828440019936182736127268047777629323211741328611619641956752460860893828056363093886315413644786938838626668197741513805579152869184455055276852274699859895808769961622118776666760447126124026470706959515927736992788111385104718754492398376568633446041040160941617936777379795832486374110586301842704686282996738700236217640320394287876702345505361904729442324818663152966602536514057216162692822467049749453439989950344145800756555088698802726825070880814186458207346921468289369234905064019934032101149871638603553249217217569615972439958077126369294554881967683834693375157415432769958203471145237256528884909856540110007080946500253357757182685143128499691655347943346092407008781961081971909984113851388792994897890703347626777278425363456291438819145976851986606652789086343939457052406281114274368811464758368560103738737644917436914144656134524734476451427643522762255704415795480333757724540525486539972747486456111048135487046338316125242986450837460130508465037427677916411591599512797883642285656125993630766680648951250989576647202844088330076509879160340009267872978065703066868326990366679582770536614263034282808135205499848447880774295405617868693460869278184486792039953354738525277383259917864513605333176204105878339381139782298644492257360509289913935677425006876322702876552618694697480374965882850003010395258885302243202279689975444900538982847631039314289275893980220161620901511102497058887154701925272310354337658465285735861500917298172793475705344454416620812529466895417301795726199354602108251118804643158138012611994072826710416159580669176294316206590495482832977489660019684591704766803528220380497264525309308702391356178983176570567517972119016612020452272812615903561259336152291276397486397093127422043406748321776564622162557642386217020035521201091706426344796998693216523911027780454865808133720389842841777940618372071876765525202496497590787823824186351440438599394408291993318384341778109110133264297959077940837648223211061295295995976123779947958970939280053655230260427614825120315773559172141145706885958670903721660187150878303679847520787503201673388020437509724817482773045201446162681625834667980779958517310132321159092010614701778839530562195404684190495594409897746333092122728097522131763954869650934453259418599685493577811602354425393002897235077942021796187116070808243630087726175492473464266756824901995692600330537741321504347949517118000232773835940665906358281943930294627089881764488079107576682296152778837598421364750338666452440717240137530250622516725137341750084063837506267133770059229807850464253360299479452474750885840207887288613222308827108873912158936457275834844697996712287565232444078180673863478663504484103148495404662778973436355083285242296081279151847829916941432700250346562247275731942214489889665638156973008747705770523846791110003249349258822770482362356004352408927237974177049921712810635534387325093872255355413067724468238663210032075246590695254138541751052678179326127221662375751092018756822710134092554424056829595993985566118387653996596458334858805187396892191170962774173449858823142794615169783370304980643595902309992767804268194970592391667487969796288386657194403233057916488628442604411168444410308026944307924426547524292042089764161117012352143023102954849296057193810324604922865006915910770503167444331032318483576259902501056993509047465731608243233269924447011113318200444294199627223477627879254499781546288854235506372297926242980423071256132231910249667149860816044934768525240127945941966313369212045203514891075936741387292687734183032080976045631754794636144238156713276566341937526014781827984830728308863066614123611418064416535471292769117680102915104561876328135309220822844119861243204265500575890742215797951128836975657337421413044428457141543121037327980856473536837015937508076353244406043299812771351501581813253661810438569509951487460879560864226714455065067579859720882633055751460866176287556919861959743628463409807916276048331147967221236013638421031179939896141200534040777967870522323160867462733487024438234350917870713346824830276080064152293236847071376648112700126552312826826994948020942839276886724562932661294764388452960255752070530241123256075815064976776504235175039528496098817340748722633135799745582683379850440818470149839881573327213330954030411313659801097492181147746495276696829772006744737682148705819112595407521704988605593314039350391826103477937012108180953842141876843540063827190543877328013258930760681242465703118022569678471812483221494133787690886888969435218454342285950383810287232163042244958829526281945265821267076588918436880209320278639369302058588247949987454588665495122302937941835462023796615907502016296047190944802842962806905195368370276656955102175963603383640028777921493676876158061877876018337352111469894823359945489708114015303693429259421309244231070539415697909894634786763864038483634346937215214643952271443058059853433889446747695989581006054240342599689923678614251592770182601638756318891466350208015533912006061645222264530364284667692525419074754179080182464417006119068873129305245072572212547371589947960068051092035719367587022033416193443799538131087570310689134972627049874268123109280309567999590711308389071165906528790676822240694527375362756816573998154018018668119959369179817160840544156535086135502569659778022087051176704493547095540067585536028098476748254379439581937922745855974191007866091639351189810959939440810645463637901669727744225662824320158062483347080698561603599123548137501668111502774882475453762848479094558882395063639525379287757300693384250621803930816920369600591759456532199684942848244226709529236167793847363299228149723785991166779423183990762980700959997262783057340681778106461949783191793031263477864211180290567757734703493878042349163268267674442646018657931641276986817046830012860322821367711620023209116248639046795450763866446200171371769839415999537379908940400345400743506499175213965043507385659832291007211124618957931971126183897799826078166267117669650804505171574019150820340645684165548441048865520534927942992543937354735472884737111270524402672009439528895782905397320921084512761795799767721050216334239010733716265646570370273300643908038250185345364824620717011689429681171310616535288947750287405000743415777678169282005251885059189197101232677929214914995268003424000768514781733407875148421233175750381949682019503089663524248445505363472654801076719573546140482237606460166288107703377486352554318157093347453500218875204805790869917961175190271287708972363661232244444817124255082773068576920763989989884203924232027140378596803183669616196382698657509149716593087734655811498185428133039427277898491518647291880056834796924955830781907382194281453800015402412999815089486038525140830058949327329709279638695390643711445881752478848829816773857114602403844622201074584696665858156926594115213834979059374884418616083433538310677198110226682441053681829494312841243921112649438291573357617532432120252310884611410524523893490375511887253836227578327070852650704592081596407740652494988796673766967995825353216480796578165497365666173290267419208742612303586723822485229641674584923347421665282965656608983507257325718777170335493574065235575875863611538543028171840165220423117235313255302999987159310919171992807030538183369063570239826889079343926536464674863813084085507226170496941216529785370849999400904355658592130475323753057803205503659456757709263630487032876415404241942103555620773494775714174610363754064108952318395841533529230336073547130704750081447313106497545102600953931004240476691471911515041823615657292440935369669600056608692065760658033514553832311185484712567379562468969303636531596538917107525971745194402484861824606118537159732535898658656001932657759849060464432648233122418354119422237063876355780035915043858279369904390002184290932587633122192132778198177384571781658115329218579076135198130508996286510873321637461973060917631800069632715873277701440142368186272872178644578407977784788390139567796671413264744906442019593737919941562998959480934050733556413260980946706430838728462074800989131791762949490871222125629141896135132499119005979908181856751689681843235476416255868443794676363445461731174456648286693758686336758344732659814868635850594584191859995119833657808721061842867610333298185278286802059745125359593832405225294406759058943792578168097464935896126742002250571072846417716077596219477052903021309650622343323561568937952414221712479250452567492507323878927307714126888210704589086195691564764530881204221507194714003390146525547403082764571560867718224412624072757467823537659529674284891121824705038852968769898990327577547084048500573755176935895281342251836623605663214849895279305915523940571027776232997447890172026507812936997988978204746365932246531478258619942777731507226069407612343444969902804606870584908881729523984057467605987062574006995076551171873102711430695551523773086085522660627151857056120998030061987762174947774568089504277079190537488399395944682926723907565704603851119445838761214221412145358023977244835057663722681016670437882920478745910097607664714271315423562798601787851804252318033982239978237135291295867946914858860944200526775483561942937607997174635389470968812547179636528421606426735658801374432150769379248382588417011491996240478328771640693013800247723119288438596325265494307544357710826551263534722247745988265257380523779509197995033217360281900811434532786251114952463054806842043676636116991117483942061154320320864630638902397586300871473389006511608025852315283074826671426513483675524872624700842638810616960905898051931047098731008533692648861027088635602555562068173528891154530090207102129231228045818679922191828058446344240514128839480528294685427161055896384718863369139808667255210538598010975018810658748370572007785158192782681912268511524468458786050553434420813602541874894409906987615621315071253843511226322367422431019897796032605715554713565390728524547483574497045644748140794391019973443324699131463877654521155139618113765811132755099673590064206025505354242120973766699882931611478467333007189344719495003522427076029449102595762810929229404416140786066256792704128161293917224088184650619349847714237677201783501650060938885565139966791047623667505397599432648913481115733578308345883811282147279713083373104480317378078714419983443160258888983657644043816335692078916910310545525250659722012635424659222960446909110305940057687058748180407481571564125845345863741141489734896773720406967201003614484460236569016473766396725701204356006180754347965456479455634384900120315085294090067950505286627404287212285647530305393056820317551740387238759987220503553121843114684263540983280188438192284319279362800620849132086193848225422058703102075165345614123006124250380472381824617845275326431399415895686020669292176768313310930271597010728937452990338997880038294452634632101697934558598625645259662875852716075861260454572009873188112176186309314011487282450871313486107287852146249589258657187693480504785859199163864261269468397599428955846261466594779411723249315100153543699861305663687244881383118780436119677793258636859660260259358421373594095068106911742410926605742295868120557142657931709378858670630238194902006193283314002325807435603274538116061911822279258262788619653923296498916610703763298210536547749404370450590937689901141690658708376515541558015092539225508588732713378219648712283262220833935096243564870567094221073365876622693113558511533783982186401431478378543981147911098508091423610704466057815472949600762663331005739867362564072388930737654308083146645730236499740484263465152158098835217619853131382826823212984195838483730827789264202187722449844270742934581345680737251841304877676624973529490125061794519197777158791353177752378561356609372540314291759606340680946953082647375116057738382075299101505282751225756947526750666439043973983312419595931828066951025145558432571660841328632536369054593268197498712110240293761523960349128142741419730932669212224672942003640056649653454123578577533320615700430491810143195046673819345463769609935144677255559125968195511741253580184192836324256963544144662799509588049463639980163583994124000019905941880965176658554932410232936941370593510680282905389426650418189626122211263533675076748095225491768583454504253827962406275865144930999436472011539087691548251227475751293246489748534605317246397909005804302873214528447160873014557836428029321106750591142029184771919699245129636248980795578583320785097927948009897574436328268856637631365214775992533428834120849814929404677246743928348022965519216328131072072226183791577930533863304912090899153546995355771879041491434881084242796382623088170773933679242258532046163633863957354471449032500321938276858769050873238897241512720416758491846780633123479035546127186119746898026068433983492287695687090025643919621975819511346592180449407287931511713732367870841592629988865568965459235029091700103473406479074575412300729634325251879873217815919360544059204109738859707071580730233894281877396307574034090175560086281871268134085320957376766219015490063816448945959456057972961626373854093225260746684583448942994495268350481138460051595994997692668511973398726550022355037754122362167289851793321558545622850944482858514509331064614972210962274020429690677250621472577326859968027700828737114525251624729742009694941210748769498359620296980535186380993978079688080213165801457470758346480080662758078359638766818765542314950168569083511402515680730754852380328642405193934891194618178867985281789027438274585809092548417369913534998873712489482936062719900021887813224604799802481978787410155971999019899519286671955981991678466528954853960817704251749336145538211407304521372347153186418264028022395229217801390834235619703986977379337759768184266193977268688700196400784809549744863818221472305702653763378646755457015662808912561278983278789669149108538104727371943285825499451298028282467390703630325646568473247688303440936714007755121750027448606755372317989049232678738394942446795208041253461934510041149311933529018834242296516982326304933851528210543870723948441426430178565107283299178294128901119434106637786798738257944340333810705497479986095905901016829274668488716908925799879870335264096573723973776776359508664666758904476772962295775783939368428182215298778113129404737792716647343099679039516321937306897876069940364645767969686901749700463687894705076798230044128973161391950194234014947285142035889381304471384165396368626709352379188494928647460612632255560983152533283615401866182504155262493866642128769253963165416726559056675356623242954405889507267853007486309452505949467267970185658015350893760595583827907818039198808407641668021295335444135885005807204084499276681717518339372267929882788517255084657553420291309816391058856713913491797594637961978302489154959243788847950607270229489384180520671802951146411166196192940499842292611740458496862509257232910689660921869638980164214382938371506157048852831837515833173164351283489185365479399378518605041431505733414796176152660667204076592182187453866574879372229145708606010752371773974746605363421324364085498138336383423593536807177427347826798789856377934237906930205323784043491066028794366664452542219822453512197877348177327945891014648348450385825833714097093875180359741289254866900313546151728811701524319934151711237402287537408176101550346601278288290145713784991390298924684007937937949985698441837957712740700901680970519077097331924434596161307234678481005690732486684072402055767831877442392407884662302083655208065023113579494414328037343502497122843292150710927291735543869054490398323336579817381023278727549721354826610132749686358323212661738392179923350060030306639247514476299198670960461806895582196242786902568393598639845718641045948188622695333904019421006345229575277873801420784403321371326382969939984327369050666620090507188267314841758604654820564510880631165242986982484365598694940560893538295125558666144881331270301214553984882574483288524634095936078900931999955671776101982687020242272962941285158251427832037849125822996586816929819706698407382841584145948510589819100556430890302781416686866504718633200660175444561245019327633472825073132176322213890982147986410288590058761496032210205324023031048292818063059750042869216854724988290783860425795667979580191737934269463141676012841933335218227914580582662852790856095664426572698394182836701302105019267854107679544582478961625020588051392605547765769307880461874872563168253001355748918123148294337648335502366748792743982421404856845032943927267781772288393371686308714610935105785716870284887744106270738721731339842953405270509865458651115599551729728767484862275981870728876517972803237744232719482138610526902871058704775411165950687637283396846029343481266744018187718567097661257089893356695746798842880183276561161699633129841186134421688246982523786479219990950639248310121389087245228306392823663313045632224739763635846276198875121915416182817123509638847739797233871311090773564094137676666627842727906133880581583693940909668631135360071957188064043713820502824191894215943852911618186642236263302161313408575540144107404608320732293284097052236223151136882304040772183368640961537019109077801577254974287801663215358769203225352132005513885207402664371386617983627591700054677526712700489378968254440048344215107747982543219057692165840060842891788764377730835611874605027058821943902210756185885919777926764808161604391325023165536903973869885720864457342098677422239830324424064657955000360965285645636804667464781375722369274777424254008247854000525954099249645278972989509894884272597948330857933619965852903323024678485808294956700137437366252473954481738067650213898991272706252406003286089096497974695386595571814627559623960964811360540937691059125443281656042075589045396751617976754308367263173454824047755770942328156221213372908671496050649122061546243183366208594528385898124480038873148359929288791481019230294894838503772250529192038078735450528772247402980859550831712111095913346150040748088541395325014237402358008693688465116666501400298785007511278585791852285623665420212030371092098164838600545936655130424724345084613697029062744651634813905451156991676414857304105379288967690629931325792899303759845509634546895794112833015442584953529750079296813000250231445965471614312053714055580008134375920961056922227966251599854739357312033301909099355560818033630306770711204033742891814533583946733134535052601689202713011564711109426683174873128809481862973954480344148343457724437810985214752037397241018695124094774523015238249332642311019710597120970355655152499278648345575730827497757944628523259249966433041405052800249920964220306060572107277867397365031935527697922905248315637844405965354606182728299827535125450450759325742669205349297784963865133813641630865044107952336236304233207527676922486330854455947822321482603107884689746469968287027775081035954536560404691529156478214700540456835460394619266312029030620732160982599037762279087074343714272796841293700374689556019073581659445614774313813254665726567290749087535733116078074206059491023142193697939426601828686947986856643668875683560484827098555330639107442086425726694514340441379175964149034136155725740463801117346609155015037159097229822649235015257694237309120365576237077890601223320585496906125594205902367437967668239357601476884312874664921970571278712335456061293206120778550970277690762572057078965609226787600085660120937854317650328613352648763307261403270840339425188752835132702424870840811017658917702599077133252658604486447939998763318786059825771992970491033283887719110739746832497349162196121112738378993207389885099908855812087436192612777084662342031129674240140443213159484640433967102204459136536070131410897942722812829572399935138521052461266294982946483562499133792196753393609588719832268748507708772076964813189096620252047612777937897409930102795859280618309638525973842520560664058554116606012919546404240659253401819193206260896255020029403776114430318096452292653949834351384195515486590040573869359334470877985157407343016612661405547268438089305772784309007567351238762412067510788527364391967477331476029714401323435239703521068511651938573943833188483842934315778987435248079640670077786818447554443741097241168344029402473439808544697450943096954417998140143934421355181275107322034358310830594802127900634271693741833856658237272877321163669827940496602777774030607948011425187117276532968227941732588601944090556405681561758401252810148340301462965515262551933364854533364533595860615694598305767820534443016694505293262942456525524562556204685713115741764557840091121178838615595873878628888235520816787617075831777844866512363265338731946635088500556001642592156485072495978281166656648699528599305271377335073986677949713519831909058620473111270637666158736934689372845083694691139137535018082438228740204436713344594563778232162026939465986175547628612473235942151197971879675042136982917072827912366556785943770755503491941426710059937910943657873484469644472977580531536565623518464864625367073039872948879151693670606160028663002900208289676153269082976606687089329847396568655227059443415624392204643347014860697906727102066454097427222769568824293521317718889491610349668521329425413297692683298272797520139696006028364964189189632203673529178792957464164497170599326133309802575104456668852244988049951939064010094486552729221462313255975680255633059526348363979051107532925322970213570472861192932023985491699968319701988134296856461513311198228763362807641786909019523259090330977159303557888719215535219070770447617222121401664296846020521202085653571726626913274126278236929292002628435154413726432141333714098127633352527013115531385393857033444790781421816751910460014780236328818126455025518083969143169221486308969546723587778208876344786389185679077598030395018864388774210179851044955677052990942336466338731685833866502885184818177363437607130923144174808156980484662510785158484441320368485397608662603692373072368249786430015707767540249137056995003963393628813890601262744011447832982781763580513706619490816179675264824535360504614786892484281323628267604887724598522827676121392018404249512026525551026333524229042280198316299256606767017702317476250632216509039593178091852980877072744871948056579481851858968217794326483649512907608309652312397952482605298086595348452579773206078240706820922118188917843651156275951117246719287091074412204192021226061557677520908062712648761849232009580563749375513789436855035975560444971221980174510390418716994224521022960907455321722927993964885959451798783937589781056737346708640505176973875480944765620063953115528778229288680930450689372717241866020969359098294163728623414999388550495733874959218447209049597364003082424525073135263357398900722767104749749871787350482199865004527500743878069938114247107326479127364584030403015833897416478401109286422578861109941758643429760654364869820841602932469806994137745618671936247226898558040353078960346185358283985054422375708556013039585310158469730023249659321246883180894791479675382485336081090710462457501429311805906298452367214308165024729904935784386008417991976610679390710492979667949223945180258663397240307978434633379887854718662023884180200283258654076339728322060907766351300874045517856386922209398066136314886948036903645286803804295701921822367208214234396298390216658415528323384063563447341273686302921768323386926399427424877327310520775136875481222153262947524504263726325931743214136324926271038197723017238232393535179834466217037373719512183393510421217567799827172998730586934506928536331825372212528423105251346949681925174119884209683065347927965814006339433995447567162160680466498422169149297499080541331334685951460219469976985191371628326719462549728562707001544924851451357632247503179876762236213269933667835062078034412504060697352465439547622445397931291675882349252567227300968258799227214421280645927530526294131866164874549801825635179038837593311610199444644666824208777900347281291409962206402994710163781625396631982300928479055687018201042188647015644394242625422098853734185630235200375792135350638561188588749985415254259443229976820193866979498127151844919774168083755363058851502133861559460074986727411762039133904675788038626083462328712884753458658731856952274874799318167016905806589077027349425807654917172848040800946163745773747332700103722946432017711444497690839705125025101893614929188762123153247470105951782201532646655349090610104155073992319543698144125992233313537946950388711937054777533128983135495598576467522356975213400966248786856073026078512353028999564201156393025943566147955353242579571221085917993437953244230460501635041085784936281186337315706021466729843195402730658956706360103946816204843626711358438918820365263483796979517295791487498748086999353726402355418796096648444739679723531547824865066415323463881569640435206557114791679750141783608575403496409640919799114518729652147479883411803311081707597180501980948002446277163124607472364982909480412100345070219971633486266630032264716425716540866748941566426335498266478734867652908934866643286899231749428114312835033751306743774790120073604745012187335467014891293269473341009468741438198081592681817415675011898455583613332005127672292925575160760585090529148642821843953589629687987955684355357222205846089220282813067313894864876773964398485576638461261916178675265238641381063913571464414702386360883484493494177987026160872548717329327479090916684585809720630459073388195675839801408238807566241431358061853975923705565768218389864168479308670394456139326181804656670326660926594117392856427672039133879598769085211505692555450112695517837924245832846347828060272679214531701392255860709433276999449398194164191314740736271759954933981664189232537176588062546149147315849891264178908776349621105033629630108697286485720792990487088199259375287522840707065614992000764333617136466682252274144753701420570358189520373924741410319844655148700190753614828666601297065749466618610766426199605239288546997257989590758511183553889622799190585319818634736664633985149830666818643381220829030344186372724436152751551069879577801679084513392479618149718491405399035536433880399854050772588869962915682501240801291831858189210912068842832433010645285276326924808878725559114280756788910417119602383917630708730962987841086082705758393457930834914697330676951178945753916997775691342219753080654716511740014371492957582265038290143783574899324412547464227234586044302008914824682336396476458981719376452952806667079822032201486946042328418726211851896248257679528876764055330206391165706637733750521668146684579704371397938415138729889004768232872201830184686488776506896284344381527877986601922238188489814367024145434643890780603248541196582233508164634761592955446389799910962247135349065067846561548383515525048783537181960010396387292904009852270567030289601184618642922416234186828096181565926612047455246345810085838191067019012694814017702327158025350683768131283637298307376610050826530494922395631573174327021676026295557964954000352553230472132299323062114629219358558799214877463646626997462330623789378649069649314312792332813116025377299930107359246590979276583980369041208016931979800381962137367906433100676526967525965941624870969912849998882059361824156728226495878168068604336825951824043428286374514961158870983623491124286376621038360638767149522101590226029824907790271995388690474292728836986395573922340751106347335254902844097150254644712950851287144840776143234232272671827619077983654118931034719215731757706239954641579247494533066102845172059375022612870402265026641911130141712536580213258744927744375603074845437688073208043056629028055286982311917281345623259859335067914860592415067002923613876996081703203839095710197880585506219651778816815059211164147675768616147418398723403056848073705423971563446521010346979352371392085933946291388077845534488450478939418629200060082132785869600304484552693024455020354913987743321063360056188083087805182092297734551924481083048315292293864226139782232718637747759471259946005097063087876095927513925712459646941731351052594866173845934457065310010049888943011640131154458296036464366718957466062484782304228447526466287301310374838216352008881563404665208777864270639134413713142731327298673272969287015210396873242338762947159281144973061371709289078532951048627949953967356432109324976575474779986837972743315884048002319631678920365258171833120063193551629511807616415830751624342822607294943500322692001786618589965145865069300183771102985379991394693956860195284097426802698803604149102433632911767842592069623241905275199852874969089018179319349984350395494958224949831845267230196794898216815787941927415572655041815789926695569986271083187271426371787468015562032023564153010696410023999637484747835835437018542557166562460362617605974880659716802561632669518115658948913183484768138831263521929397441180778105374861818725377535178649518783995706201512241808270729941918886613097011454731312626505188069155714552466299639480205177689997264533710645312062820283150432382751030262820950957747155661347697142500919760760601776743533873919662052906968573002336832206273832267650255148301779290713736159565399739268443987650397149602382229883490425837663519184943652487556594077157452976791057900711141416471151831265093889751918590749579654205634279302391635518653289102948418159837163968044930324098233578515885065685352996981004071977354141571890441963547622655542782845693613477091990116360171421492493486762629109016544131722211402561184671700115333514798568155506759203916531082123749424973131000080037210958197867591926531672023864084841830282251043108525018128559570643058354275972326390787071133690814054509197973377749763520305383117238097115077662705856349105677996383319723039053019520119165816587712674799529146107332185137337652570030303706583351300153403436954494495177807899670182676428202783383576550196247750732418460927651332441122495545911603457197874011204068570712668980272467189819791032081795910374289133062448668539828455504109946285873948694937127539538453959621394571195303558796588197093856259542285404522405950312594615975489997062152667820671468322410153973042542589733455730321039312085734329143104447898628106052633828571920627257763790499787012470727313190174471738540532495947066647248655766327096543416281842092313504956388197165585858009350007769956944235735792482038536623392656616607509051230458068279811809347144029868289590171765311751096180506457292067440970247996860718090291562825727684831915251041125045574546048240224590033450232204342857794112556010525628068069139074711614427854310649777093876359774724373472636125764245673914718113116691120970078372387425836387541977292903635775241707505644879105154706433132531498908453121276877163510811385335612649029762028105197595207858672693588350413246795421427964069762716246796542499322556914540940980718553314732945520192141058386889030043872164543760350611382264363928693021923101040253745428376152108555689375178264662066674212018583278316169400964131562495783600370210077995653066739294642686433410907785824839852549395303840328747612137274140803325393630753167562021515572959810178211016586295127289231257426439638671080364161846483671749174610192935174114755556954626819629624206800869874402821172258711029472982806225281695048063526536104646476018361953940370337583226339189244941719048027453854941020267541483752178144043909543892399494468228701702482447543505730190004791794249326311300004561137415541797854155527883856151975457463737963210068503286492810878753433975000104029745748776271507887774537089513838090374757005035500241233089272174809687588831335645188631704373891528927360758006069613979606232939084909594851782115752584670688561612177703709600654647466053614426056503082344618465485163769417660010048679759271889729707683889217682901112756789753152133080949093984754962442844836786995306889737862378206855886848948000124217310280167703421532358005271147915484066796826765692060951776252278033675563246961856973162248027485680493202888575923182255479139854538447159558225303363942334513008031477560167593938941277218386057667058646134975698957079579217700549635073416876784766315071046322049417891254976998553422909959385358119664247567411556828324711071971431099001023807001679190742629447600665545303556407653635570391980345281229677700513856308656596888207962415138927821337456833259210710973363197800476855081515650233336470347525662510519523804908114296854860466161914044979283327555499561709764199385220482431576086835224712994655322948714519663875267706034603077025988479865156831104416709896161676968810553575093799104030303878115920466015927204336467478096609429696551147334690927479610259429719602102486562957935788060073752025434019727307625858789872012659024336651890431239266034458509646586227268403374712036676347011284002309656388166813581823264468369208570379060725832224066153214319442201218746207604916120349506187762108401884439837606806778981783804346199460748991579603386799293859287130418732857480028457679284201818349514878846443982772837298886341245298977242336235377289954165051531802702741856417046811139617799644680785556411400503471132691505128122771066053111320136996274184849256886298504919547839793696497051010151905049374374267698731047837021157733804779656252726317138663417210066275950256489322309547248971367211207936931866726978115000947463748727048504955263668425359354781878948623786328044398413522277188667615256217841510660466323539075902828742968732581507045154559106735446069972712651463728583472751614490311024308596040813507659806129072217037680283786297845001386569556255516034846558744905649027334431557726485046416271513118910794838522610338107557558903208681882488877328954631161945218215048632621710111088661299139839237790166987637617303649978613750136034019759231885585693641917524580894349182401926245006844737993019836632361414458166918313092682286649781082670734398348411311765706726786617925331999161283001141795706318066621402088143541550356998436799534789365194034850027216237433676300857762454916156803482488899967840506449818825355383657336470843636821438841748738124809355563839467788616732333780051168041390219176137210844290329194329249309872775417995358907923441365576158863135703516398540468804194398910555781307563560992574852458871354855107013648155800425087215637603981100329257094919625912825386145991224123845294065544727491434053967703939929585027544053991705959208940361450889116734818944054307129007165578574625906279464459594234343009574309635490849914387828978982740690664278026194892500807388307102028476992790889574599647872558582427999723567875298206128209187748776731742317240551067046869105773863798000582629461724771822245974193592516588918881838038808914124919382525697749888861060634990314008997853221601544002327710115793207497082963096526018081440505665564860229538253758895828519237506202902909333420303785608151101177608102573745539550755033375023785940795525182720833714654308955729284922118614980502305531157933771555233098757599322199324563382459945765421903897779975503542285186014768900629910867097796850063224514412074189949400756155241719973447690849722802701889736422476298649068711506934874806217265601534026139322186251310214985009659768468695113417680638908467203037034947184189755624334431561139010896855228128477019732622734617313332518536795869894982822490307714774618136188538522245970671515271030171480844934874203994241843421500465527679057521060684818076599813816024899912012091616364979165399518230382328801622791997785749079017412983037563225076005287705024061905457333112517462055840165617837581813845788821692922927591807882055032993030184972652586528851080808220334549823104670450753390775257167082108583006884200526068785597209375462039504922194881722771980702086797158846374118485289299099588879435239744971609561678144517637740205437623918329567321613918846768516214591798466637139696826642977724673325080123179289694105470475895218371472812005552409068163752278086580138485065541427533079095940480708969196277136118970325384045549808258303141648802919979169969351709222639613493676161059541427084667950379865453289446878007526828684018639669144285340422723836007819425550661742875516757847473224610095261360816210638786612537478409981160747327381109322194758988781139482902765489436652638454329150893079211081769484240169994747251490726608230657516148143235899104083760861357255554799141457489052425609868069167732303309736751561670708724785463515543672627070292140842399343790229886667789261467573662005436258083151402379019306109386490199554737087352507526608505948903158330015664013583043936382089762653627311342754243136853730170735628862189097785788455045444130539058410065140683033646545359476517560198487095649205167193531122739938991648566402587337997844857448746146748931226049231927106615868100627116993697883036020621024306209547887198505493402354921395704909364402770199815601122917758398081605256751820319441534708618123110078381837908221774068535550139401900482087689607407376225711988626591418435724666440427595555483249483747792405168517049442196924234535886948965319906133651065543727632443214186819969382463388357882487534820047099408993308942859805680129913257131132828204838199170458418855587997856179505351844759321508359224645208402862254127420720640226598373531991193224416865099251149285973685323217472937622899597851927598657803102380482906640913844437093164360686095603920417204200567745455299531388391304446837135774221487514882043369501312240392271445056035842233755034257292796813079781026208817009506196513221674583771968824162316424216676952179687349881663840892261151888273190582128616282883795388352688092440221684730105351880058430854251486375418121954996404701621842050670380795556485018830574629523540083437875180850009021178326370240282397985125251339628191032256588203383662971613056714694037841655442342740504349402256498641155541173322213092092664437645510175610598705838920175447795967720679494985776684710122104897891554110777676381332301253901023746136060250521459710895245564478039903830612260710965613082309957916854929391799597047414006933394298210393733073601646856461128418625763942748922837265960495492325477857679141346349042550047485943141652678163249103583423460975021958025174364721890974780238704412193087268993759265707940447869015777876564156849171120343574162187881467898787769274751308464772677236659982965130981521637464585607587787585324013771912576535903265581897353340731160918291597382551732856895885163969048999561349590235399499032171206463104029953296149065179910423073880434976464574143366791007928009273983682285290728857344330221044735373295740382567336964992567919830529009595067010148142923893256768305120423226734508305091512519180105516558663015117043890811774536069478196299739332921746610093884936490832244738523219248320913008186479415058925891509385262911274431813343178666149865069075981925073793602965587546119719591318312098888470287185670200249800613580645360893321230417217510152617073674138149945079067347291019787876615811270991247623534069537505985675663818242655704606064204142309504434779433174663629001264942086581681206366959793626840676639595332047100470115760474499239784497949391582480220748039752106666656509484066442399565831700118797544507770324233482009610244129775410064103199705819051122750516666075758617644301213166925208731699380560011858074855671956809881396020604751726673349398118469735952980338319941907278821962326144579456721382632354209828502815496711563017618298555602747897692709780135879170944039613137117928671119198209088002396054834082974408957682889607319528212800817589787105677723354416763329487085143417908977950975677418002381652264733073126583344838470787826527307169038539113419610920747948867557517666501204104846440488739537562015789091900718912706920882259258488349532895750521042316112822511611629806005531838801957628974385704699512098089348513148099527876362836427398315520423545849659886077393532149674062800956718082620564455062074535629517199951661946615314818268566094843525135642789465633977889673604239908810531082648966294320983002958915582941313067978403056146682232814755462447737189184065897569147823567173004199494805680383379646911407103687834979576021024199659884141231147883397230183198568317982938565524094630274684412800760807846321426274119194352313331627803832774105301977742079691821206168488577534510009147647095522190292881597593039375796003243278228798745209355847906685521180276116580608237462834133889494143020486230724308128043538077791642777586210660264978430590932879179394033359190055343740238031868398063387566142281827065811478226694136739581213134670709261445062681201466374952409453645435728933912372047687827237086561525915699974489546009406065002953070031641777553626121156447140241049597199001461647538888956643893841363880832061449035546052394813431251728645689728775783438323376410118296429413190265158945970070538883868193463890662796700838615288586886375109246103194646938172894106120154601557525176537300367528608193998306661830700243314199772704222581912922876488304700344343592247629568155810998081847515882948035236273427046400305168398216556292328144565540918641656202161629899561087947847812860750409730707027549045634155890437050095740971160802745527772997503073952863451135264732987146890608688171399689919835688769721918325661380664520258663783650753606945461677311322947322669726438948521013930248331802079378042444490248521756173939286836458636596313117369279794526357118701132213952975456019478796055772706816344685840763179824932093796817548261269226134132698801728797187842097845836080390939256031505893741028579313083785715213093839450078481900299912610745770057787841339164939593185259035652961743155430617136468929311743208726826664648055998062801694221991221010633616471932422230523492002467016435899976290834930876792155834764602903882589865150330229856277509765189821226936638411845312059482179237093257289791633746882824703532078296783646461691677026176840986041797174935170200132132226427044919535384949093428313965672664557009635997470080677428949500177268491521901036147135950713756920218553967944021718844547699459948822201768888814418167375641957088980283914552523761226443317193151327213182141339806833384634301308759219371123210929715265915721440113051203894169550665868302129239518215228403499865953847156824875053733759638663382460143478940649900275884094576567382830579567496236388554565087084270253777786435249724837689707328993613209169995094047938488085315192858918783872500415801629399782837653491574272852562436479380950581078368424197524518070718840546316724467174048627386321997147538082374308900386080694702286379021594095845524998068788039023874345064713749043395695091382145313219889540692211729700850855293384206868081924647115173284969806268433373587731219993470814341483636091789532927472604692619094093061250848671641092098572556877954482508811565587331007326702205827635630286586311728713651519480241935989033083240079955954537799136730864804493872827704955670800452934774190456881754416378621323629588680812886920684692716281116527135801072817900285528049343443910691402077018321690883426598805401547097177178583753474857657641048673516239387951939727729718200737862711435256023900727084018880103302202986182214026375498354072042113324558457469832184738923083224127287068488907040818819714628996937469301376678082274758367700821253806742688065999825541181772463317232202529438262300171105780093428063815804608608792355372264462103846169293055393859669994241031134334627892653423601803249605106353367933071071235173783090117939574938657554592967325168037745734149385922076365438423670658901334541167166933576892102010908533316490554772474181429165859374668121368770418165020600957904211680705361931827620012602050102468565979287057947073012361895898423300842703396470150940064007562531627462621705717338175219059177632426977504273978681078430759669202144655688586582004205485335710305444275557340131017191784749725371527757260089078334017553095608907444666483657926660229678557876048171270418133638079035519572206026762091851410621772033424585461494102017243278344689001561062012881540951159362910864124244809807670686376618201803678153502587149764898786734123407541192957418859458104138514822475301324829954078677905014874335280967818944787771631251598674397687244015314453940955803769445337367215893735628320723236481566814045276984979088662697105447909637397437334938485784516817996164473043873214866816641315996424252063554439991965492823207512481222125494606707207893961731689007289183355969193100171730987538082910421357031731321052775640887486796908638065482495239386414180942828569948398850620370642052067306432382528992458239745042721326155416830981180001810582264063157094185547845973063402777444984697564869720243191410565688707589123261096514316239247662818213028890709510691158237500555034179636482076372448290316066538664752664044864002781797612844709305146823634759141145136202412233055390665625386274046497661675950494952373349096927979192068908050589263465262944149000913183399758963275594044367028779328361112287151335546960173873021069719431424791494519214791758896019029830913368954100905820739177734337784221435831397844374762675010760209544737364847501005141751698509081558651008065199079107768071127965209791542019301766855309744272176418315653522304350757223025611770655651739308135523557108535487474802500860968029537718602002331387207066676606368139118706172194606981125245362929569439284366037431554261373328862774748675651262340162644650991296660082444384751876063405184413623997024468637048805894356112238211465512490829529059528856186520428200428129910064062942266938782744856128354504628756702739190840885507982000564301652448188731580846892165928269922118600267070026654270459907446782120858540182641459621050198725835088048514236609245422536942563603252261667261785744918135459874687846305581494109594378629095896679274917805659674652694135530487915913711246657315097732328994748653541423949383378626885819028641434833909915635455386503831072963262181976586355749308855849668980486894807811427911350096515225757051238280277101594632855482247886179744718483233338807944294477092766213345505046791349557919868376196501346242544417809660750722272447204719275741078979409211679622672906721948344046383419503001804937439856213231213730891932696696815105806043022939987934134799367611540614355085591813143661924575505421228665238829894905109877802440674324369779907186136497332019164407873671619457512046367185330774187141731472871594106916765757693134910768542688535951277873252263293848539741963587552973770217562263950354442203176334780675558407478671920531545098843255216602806586231632788502494804097821555370565361974326729873103381324119829101083534509428142921096425515833754937964389854541385026361145394338050025137332685288366354594356973444076793047075267393368155910119078578158473208887289775476333514904372173612296155243242663262731161135608554868757640694176445526775712446943277772673524837676329559613411106422371948610829489168839754797819213364972954585029403793621858649735955322622239342578780117256139878864497556883541209052138281545508134362313933477149134155191067619203226918849780695093721184757942564657727317898136463357871551600748661646043655535858612687877714999866337326650528547221357683785326398186066411488344683141540114611165230339180513835089518451797542665378358828414604834531722477570304437411046238621397675759239829750329211776177690690110604201082093113247508387627961069744832921799563876544452752474286392245592735807476040639240656656817813255350100253593243264891641461175792021725815940656173385661990009201035506760475710952056689559795591089813975269943853789630416766538475419307110142843558957320503970147914454685819484223550017662730082714883421546462336852640000483213380852670884451162943578773352474063127400339088768742288044437777413822513387885482930784649702406318944826796846053589722506852814909604888405040755649306540740111845699731194846274630433362359634984354539182440324521301524880853468386631748813448680916621810456321667969197984007373242850110354810436344980889991293436124024806116128557522995744721339122054818040895741782310928774861751847717197383999081114254962337179158620154509190653247168937347838490425595267309309479899954438491918436673546787899235837503267213446069007420402488912521665070825320624388437450762039724573933331910064033528170811070747936231189781417079278248519432136834782839678554603468094778148164338876972344807963179291787869331115941943772461144357153996034052181060892929756074810462844356212739295652428155080665821022452854939271582664339658375355969009133082018702539938185627827230668212283946516424722771628432114675029424358880171988035346168297903951011469726167271477705799566388574818845198196435736653852347858573323335784951796206188016264226353161796647015324995191129203196351882041231959246553753603099798906291257588132629397386098377571839631246996029121561318127432101924694787739976828441763977004384612774612511236401084906428129841575035326782981564038227484006877039663622984447909593995068057342557904260927922514785395215214430606585031598099972669333461537786002634767635137823270473817269612006389793887018950109484091479022333084397539382860865040506413567077019857956237858591419945893075866531522926406771113885536746436176137919215493523057956978425537962697985580107043545196974614513713283801069787213822611673213938198277326406657005284567777240368373128222931660291860359146644607963671914753088634333388751621415393801872751672258383904918592861460813095503931401990192255687032135293808584793906140744599100868146520687815865276144581115152259080614127093158175497193862878356892875985710086757560047062624845757593408295165122868885553873875100584314089227540078957474970682901923837553348582977308741275818450267913085738849526404141816588314814245564815460562499147850297051107050862508090505419567542470877726775406082146911490924216961611264857180375060953820014065160372377824874426674950595102251386750523085016103598617410834093211675118901074644354597093984061519027838688612741711367247572587285409326452277367334900002579712410544457823264008239433768591811400294357962601532746705206020691162710490581004271909438860768250053845900418363996714344753210451952385996037781656286749005522519970842538937924041662947483962308134940884772584834939050251910048650223090011005903093361459395174055509368452602747734261936848985864192389515931493015178144967387112775481513614624440371640482319146319079257076330580262956305672496783436862998192919128461782848277293566251257718646875249672430835760916269043796607130332363227569428435065130880351780783324562513415423867656904768074341959549656609605635249765536631605951955169517374319797338692587247820307965333236055516525048364000618859793953148152790958736869576715763612407959842579156565708821263588668721823051805260268326758202125219873170354682470346205258319882979642441726414789860261882762166154815849506103038309329633170483771763503203041108947471112517662064401029659204927084130977490253691349972836127672088499303822552508085043553440171660877162752234061575442128853900839648175568140093201062768472506029939988838082889459629450045800007482245267493429705278481808411129577051520700616917697249149944581828417944359092176490898530146812057011693943828432953595719063992222214231464039187854895983283568366012699987837441945741404264784828077823686548647367120974022457117678546302261018633270959042164227716089567914748858160266671533483159105619053645099832912464078889918295335811738521865190247274623822044494483613164385494648624946284781586655573335401561173059062651821541272980002240909373405192119169782186650278835913910039404029502629076511004193179474277235074701060439508497090773882242482064473970105823832009564622778929109430863503817128997536347688423785285185168208631707097332453699729087152959867568841482570819961200182402807922477758687990955860135547174356359192482698149598454160318910170082651109313852678892926752707972691311864292013230643025974726052228266672991909402672578537152314201410840862658567720821934743212242041113937959030030299658710171571161162472041527420512682220370154736186698995668109346710807047602632314536762049521988371318816705262972822576395283601969140444508303102037049488529955516938657521624949187237331282940167942434831215299021350204389329814682425643402039497544335362426524857912982767384873057287903840580348963940464385387799695804740556552313084947560583870026018008693622541274812203597308786260035274226718353185002325108465073288361274394292293991123194460839636413776326515025010064319900478414276541808146679782919353482459863378514133744715542133997398672934008765248053237922137498931004887159325513179710076573767504244741666326340657401195000374959019882147804540783064180723307848946571622524687330490727638569207101060280588837201011415301392556393035457136373248840383121334169785447972085226245213769919858428285343209691622227689538214485044767769296939638595893489969097332388696381180488115175772926433138783307357503826713757571882359499304519467448167742670344787766298422545949250890635187381183560154140127153888151525984058317159788624069306103714553404127684467916133701813861881490025557988969663307070193540273724795346039636324364768155376280888362940569746021357260967672460210919684824939469178526465264096019229064921140048879843350268754247198185597580072335896209252417641455828282198461298730994760994623519520547107911565069206174430259414590764714875067229674430079521065842349802982361917871908057686500553966485400818022346384779455327420502693952044637388430990535757784441584845063758320278765707699457152877139197470019686981642727726096433694894067469102454166737371605933023115079661816264960294247498356588812377355914461409276221780464821062949575189521155537912190751851071574683024506086484024998472284858816113038480120424701038928314159069725679789486407811938658131946813086463539002549218843880496742888184132579639569019059044406672735924239329070462392606316200040142943901737642188894089115814491935528891319756755973693183359398096308144723307169214741469440923020715061760060845330445276460647330712252781668332679475730703151264318228897324285947470165617304738130330789397501654483232392253559862051550627585851393386249304165758506437568955867778975752402304220744507585353068200227803013319720964439851191730117834227787502669378532315048589596769167070436716544822588086803775106790079922934423377613438783078569724371514469622135182975296328902223479889061325321219989985364653361461752548985775843286724908607912618024637882178408922358605268244953925460125344766558546901893524823859271201988449405696950983920059690480894676217784767149410177798845956534474964531746645952145739315739802757302214390404110258522634388494573203324691907277541197838025029061994302718609941588773375464766857077150180810866877895362025984095325778321939653513882648587902054950947169455507328610779458047206985148290020929401984612490385526578677776547589714758548611383278328859936536578411618496185888000171615956626304607417093160555727123917839563745190699251153711810539234992714305582237267770732893263799651059458930930890967686189454287663230775511001072921243157531212225659430289057533216803774670125773162538771816065311169721260162357424200836113751014230034153189368008024135538612571019711113816616200221427014197972465307226266715106183656196094121280589118902316848157764818215800616068457114349687185535342057875987638409449861217714652192274427110040969620630316565585939802278900881886179292353429226967037996357964548358855057664799354107989525329492424503220349243856857499726411156721158356273478308377987200570156972751722180313909563461194267400595423152414384992949377310456798065795931927921656824376930895902088867940253310362917797393496493800316447900971277831539658430011403510161610493420021150711461269379138255888374818715560211844852194882792081667561765232806733460167961713246919555583081128757286917718158192597394644218234430680128288793317505724083377271751156412869174654112388266010681721251267507566793815828162592607832237716175410801829523545137096345933377560535883816615221103310625907929823908542274175306077774554736164718851875126126070038825562141813824529303704381702829388067640360856941840221467285924530869075308884584472900876309518661034810202306911092999436600765202535755163714393773822490244393296671591883251609243970862370044407870508820152764710082114737042750980056864976257477299932493677693127742490556836053804711286081633346426929952789684824613546685824797887198628791320270118870603195978781785114477941507986523399906701354303304091794329715851983053669560771404747092675038842599546068912298165461917122021589738977017963256600692304307948812895278220160281139284444297718652441748826115426718201395388660147245676191887592761095859611214695861901684649411979796683881267089650967844840974033093830229177465104768868280192849504868703583221471269211152251700653972329601339966369411465065943674102961363791674586925044578454937162950057706148994195050767250292382369444990849205282003411415775526390682625353438356822639430023325158631132304278050868067103620437459952650833181821165737574941450438332681981005078048518546716910361741362596116515558984742030038079406707565880974964050407754035816785222590017157663493472054948008930941047368690657431762058837279192377791094877594989974311424974316451991836780046046120237644296041885463610245119944561663878369422278240836373153267781311102651884440443339615193103181387988387543146716255242151848906628474436393631186915655511948361040262879750096740764348942260504150822549632466355962501739772942770615431144782591069419353752902877736913042980279152878949996924253883598620069697164650378662330038929037559834068575802016618630404396803563974533041534898401653426439678487259639453020862187472783511674478722775533719070519373413696341058612060678728154232956752723750963990445772941882019081550110082892538059902228074622657986819457080074359863395369146048760090812113639245303606311483418441212679246841803384771722610468480307313937715977224955754268650885537884396392240445568153828658737005204352833500594053241668504604543824696247853296396354786974996906192416422391288676080906294874010184537024134366013446092835866123631635158358020424084981878175798994544362512863408660701282370918237124344816484384543423673801484122820971418366647250785232010119200216714889037978827658073964294252886250617217923178348149710115356241066577097152114181820739798701995231032202908094947505876702013940350515312323173153050435705334830162809440825307374744884167592643061493248857097196124725153571851738407429863683778383652076451824664770040822151670540292192417316908867511378476842022396872513266293747925058956655660767602743137432389303652534226023300834454642305359459237359011282144447944562169571920797138673430628632778899720777333512270448756951106906218177672638730670373308733326010056751155968736669314385471881965846378480020623292325499678339071187039345858726918470362629263515009764945351084784837208928756332338818878654868311031043785564806499474504871443072847201948056108286182344253264846954104831052267428755409983583497519567891518833441087360116175755282595777799057498193205099701650076519748029234000570226528858674876919718261842879051696736950195506481471542929647147634809744441196247765970435857279277453425673231375226887608249618722600752885348423202291256446155375195701462545531756569141210415228012404167903445955404005063277764490227884580355703063210062159354032959283661514976109640851684446572998307697737005238919513436110004471494732449630966514996314452320519441141306700527598291961690369298121084775049446133106613779190420756376297929988436418420583209544030560504372710052017976863673192118895471594945478295583886756276737314170031861287066588439394493859274267110442075886989836826321325529500513204681800878745764513765654686257785372612293619139936454613208879733660918004266032747693588796976331179117663634271547050298166243063297807406495383063798000173120262330880574470364695063034549319210398145634450832313613924038269714786421094902211745467233896214234731009260006467309916629749058466055240485754231174327507309181860066767336378490503462248161790326697090705321917847766227606856813406519762366295716100486637444243552271999573758803379165780247893284328066991485078796146705904274603007620063221709739451830852640743243180886706160383230847612615106527856316235336589327789182932628275141701933186394642442579745317846122636596322874777675851137356570844887512653233464270805466504149178481201292361812123259096457637999586055765755794183048733031266073550410686711458179115441129037356332808506248253010849393486609315146673331096134438054650807540727965816841153442319259354848263895819819914282260502555211218815263573140282523760936632490404445543716752363641047210564645394771160218057866381718566227067635098707156535706468495671544043807068025850032214674521063232724734166439786040564667698433808766711877597477949092043271154851167268140694710345788758385075978722229506761095496284851531520916627392435915875161328166944758917127377670622645264017988724157502810178352829002245012544202307145663636393464295152776411002909242230232366735157590849593459460411577685928518328018381730283572702788957011297798642197862454194262322141099417423828212942905566308610065093644773998777609845797754155671784652137595781764731614771729969753916818226826997023258263030804206946943570848397711461042469301612320932719256861717264533312059358777216588588447631066660891813168705874586929032973496192437728946518247964189706788463073108201911229902541119117751483144221135377065795376422102311677628710950172593908560319428025997031551801204237548270897190966572416251697044849396659885543619733021917186623264764653352661863430345705470985120707102256638700761597071290235382636598425830070879316500488722058456340634372664445414959750172630010348683563095823147149085376851629330077157711506357456621805917558848189972125083308939507555750725278838363561304012743251944181014860317197040492721953920933772619444691234910614939583477910363788807667290000847338082776548756687255683229009830033759109470642926765805216243159805786458509454474412486412495885471596490069697987006844024882328198287167349024779777277042792154331264030273437481849840492111739885144607021025385445677897483941421238577274287999728352791667233798322270461563935735746180649661634246216179091315463057779206867576683310186177029829279964387884721293378246839649144042173837482357894506865653296170286094401551204144692980703552201056663453005328604664392250889028194313045148671560781740737128334752775724633743341912989029671404765648282151734616701482765798899300596448959991276240212350569953139144519333048544232525715744420490743676612191762106532855563725790511742696238030221998494012170440516424600841800240494119454457606674781963826957371158360276863588334656878548391468064524271951093815286494608128770525002462895224707912612956619482240042018263634100930373696218820260176095916681333801448919063360978437692457610515841039639424880458795207928914278849480471010093538602422429511408891128110100851832868460962742602084615351268525678197188021819213150154907027243082667654426222196778634201485897349652395641054786568255498098010411079728004926818793997379971473415500521736945349119481059553186839906598403342077369322923818014405319648631875154593230459562316459920014800633545483481349283656146735181426148358218781226432142191853992975703134008275547231204024888937910455537685642374420058737083715149162475661529190429430505624078931374254283784240333093309496370371907408440538201464506662950676971262130726383004368346991673480215046228182581940331633390594350874722267332736360112552355908040290853866841212905099752729865615573137659349498144844498004746184482335021569482931509406668473398518646015077271876011638673200276172875683718826352199625976190398219093011872627296779702622167641987789336961094675268750206391465299190226758054827565546848225446301010069536347578189918153803469648301545933710370735923025217368407293565940041353296051772763581882543807335836763340654221934622438124362968873933102148306228477056535465901081367981652143100478120137614771578707687052320089764194931930727553158295949926188195846164292000811461255129929808675661657543249234209018243879183849661062795064160355639083968297285974817273996018735526854548073970436040178436273539634163988019408411821966948429443698864786850380183848829330235082866884402709444540379601763074136495547985224483834554411856239942368876054549560384146780182475435802204654103478364244199038925452105415284412883496932441496528898620584716479480095558422340481196066196735527273625291146854900768222669130166000811673377340609732125153107005179813117663226249009812167531395576915809788880738740088066497721325300571202962127001257701473625568274752325994705506759734261153162671690836184740331750109113513612279617684998394519441002717748217523690980330845060199567016213122997364874494262179589833340654463053274814558651292557648862757903731408810156897983141096731808819264421999820169169631219705484798125585949480139629120060243599480060294865325471297553350610455173129213747382521978456081897878196071719289119986085107105486218952170415749988101916497638386725950928561931129120160432925012253765556701542751082617990426945518409509274463113769753397716696449489548410984556325424952571910340195535449703088496505217267251952226165930237887866249155117087395873090541381010780937575959561715036716173659719332727115742884580040360355850157723343835700819144150210423129796207449003485647128022866849837550430187807399778716007360168647077668224806882933356114227984116152972353932832335394295332164148873861612940378899371701826588014332903059203699755750571618305672688426462867724185023721691456029858714460837063517782067808338885198710322036188813277897513447350731576033477457894993174544656976903418548326102728354018786000355523711431872330658855160140415169946316738200423847376950605685689430735848341437983677723678810467520090483070060546268802801273656523106969385915941672449551283550398278645139179493578464519934396560266923939762317142416191174663133087219919334265728322682355818991374652229808729001657296784182651074186471643109351564491368980306488503302451647897193285179395805881498621409260055383488968388834358002750188920240031270631844204961695234684226539519498080190908790696892856340046499105701959927850911738855464482350032998601333344106117316586484467893269439008447672725732729829364511281312956614470694956276053196833053269245380280952183302165419039786952559552365310109729716381434159060923768099031460193008569750016045745533832461492577174592256956714973589851403116740725381214282738265473034932643194496813984194959036665815465833068724489374867793533856914599222212138260044245983669407683423135450475862273405948381177445298703912486727178654238216373454254964569527973789561340971415903325725820151224840959094916041276465929726039093138517580874152184619959974656020001156256877608622249345131175020038196233034646338565537109216556177441223235645043193458315697106108301097429784374270049368572227945206146313793844564585840878572931471805062265121959266481154649744190894883405967100894605089621000366031989868420519033678069293429620939734590818570130570866722556841898305813399360128355081375691940001719478611324850712755050846241821171215875849983525786845704798828420039343841534423465292989001665006032723735706001247257321442436492514582417387244976199235420164310090378517069138947863320564222986772021635351554444610351718279947284283791558482040486119866172375410125260000124947102946883536188738371486343546717983715237795332467287032842392453212127999055068304588583047837712010514208830975827027037028389643500413273460311656924472761672368801445835633285641163834170860696986455304910161230355702426669738507648087097663133282901583016366676558412702766985823675518882974499228694932045660698397937212915404833902424412340582174118894383873363040351721443189881856412403451268060942135654749859509493033367897334421339959152212726096942145814191287719497130292421403764522053406957083342422710526016743034580026952895844167417841507315382085046873030521934550624549773517329560051702602929684609124101852419744631122120737340901740193279219320096094982169042054609138029028052646971254628792729197347762262328175460192415728872374792238967302309520815448323497859508174532755420854635494906314440876670494088314252320417882920511809302478542322281594696208928586381470046466918586515615865500442144843508485900354678635814973597595008947562823495999053877789318291402112759846948941890789960320912789924709687535232661093352831495443221170411032409725247232814518603500056877357157439484263608578426286480626612997072590406703544030574158095537426643063827045338327959602641771916900921702741311082400630632790900975466881316874607921003272448870821760067108307110769606651773485693786744325078961183134831247224750385814306328936212581594566705800526140246033805919681807898970454793655428975472416026661040562864909227886068729749134046281439649905667217290633109045023888513505163439272745239025564111284024077835676852054985023897684039576991030392614455154132468120522035111240088875939174875738656662325921457979813587822298696461461683352355094990704741758775024109662022875891301016778386619314687861888014489976786994921672157147783925970937018218694557272691352605592568659680495055894390940155377919406868937266825621502890872868411806170615824475934220476068999861711358282310906865232920261114915418424481970486441849496216062227513187366357293055478504803592462843393595686159887272056454201550732015281196753687975097550538671490410021686225866674070581761743384527170226179764100031672571960920596366098990865650397082565300549900762873702419169640713825329678976105136263119676577810996478815308380524561013668370086054111961559482474489237815827232672511960126179627868560104301260075871483729247772321459667025209681654820136736767543183711402215663232878737682257693454000532905839281621249507703647058337523637017003966813125331101272793073130937258505665864500777622429887109376054810541677925661003034909454013899839559171659928927486406480381730740272725484997657353127581994192175144081697325224247861961221846635040006811466668394801615374093875732755909298678686656974091976134130267765395160635082493638027208838475089965362003733046886314757036033580982730536210168788336053402098342198666921491296284035449557368051105024219399063285865099677410051609191000816230004184097917410673452074093672096883067049372076067343059223647481083000876486596753116933570310224385877235434876837701037524828713788752647837366084804683145440270678890329070887119935829735371660138256532662299521685457145597543782566244331372740916439022990587056667265942960596261184168700015082679542221298201775736114083709878083935939434121825725961215271964098771970839636240818358666603028989051780223321520326108603719871700247123082883930676858743464780714226439349429631731618986326513652407357279557916998020299602458431093659422748205543967363909331117273087936173205066295480137859659364315795176597489277633982372567715949775123908609332875391982380812862705336535076568218369237916741539590573900701126699010085966015900157953809173100135244355993849101288710137722039465362918682384424599118962768496271572080909598128857864642145687734309631110700853621469984640565814942101963389047196307105873968017696423649525509126056290102030142746207580438250792069739731914669824055833627668516086166425217905491568679792695151412769172939871850284406877575464727357923301176414658891796065515079821169688104198984758822430162326808924039918577667629633585406040651231853201942724495830873338315207613267500592213098935011794631172307824209189286541726326306905295663478515790364382638250578330257017183774019581789113051569775064732975823703569514695997817873941313112453808800727646731468189253557460166986212312234287491147680573986319774081012527595620226295578846513501480694159724844672177595731062111136051121391854762389051470514305298201558359986317920844929483077296841905024008564765296388357242575953301860111577707963399540616385885153486535945742186345793404360194201454243424373429939184808109278687497951392047495526151341520042977873059850405336397867411685912731690372266598271228102176775541090339445621044409212995673015498932013554630352299122124952791085435691876249376846785280264454729889510025353599781975550050304323802226106389184773377882358993789045707645293667385352636383307346813283477401184510833459929876810863631203317514775524086409430130438935982741160665882315204139619211205386019255351852593349885480823203069245619401269416615497250274823054516233860699008052868623548315172205581164699043626111990899977933164807368794578691171180561306225684623751069058140767579059430719584664017760007605841923752747615396655772713838108354893313799263422702580033448339524111480334709537828193770777802657653349430964537782980486465052760001967192721569897333521277060266434419466055420607024067705074191478634858005636283913181672153843701687737915622522839558228022840516228925414156378867865062489652208416297688687815891345614926798454717129923181549855988521214592217151819727390923717905552107069824572021243790751874563094835153684185749440801309874564094796128767260207492452609794020779804648660988142794825059973237680108042877729355960981494028386349723487434734744752374813915080887615684967909361217035833518910180398719191076316227318365240376007158691841385802150875700978800527930499594879393955700837043469999989134296611680920973887983408572879923817593325470854375234978994647361544575460221291378706422644923690991544361347587125395373311483371266886083648668910565022862008103736401919214374915555913232105503334638504170613092264273942959345858351741911408860779312627600238267264122897458725670040346031851495065206946809120401061917129774157220242893309584820431279545528914981968933172122646128620665545175368360130189194498588954822501480252512959813271516689636850408241730105650534857353537434445594081132768083158176729952964469890539870370410296867199852217403817537496951836585367730119153288979563200883097573422166365212072690409928366183075640203202024095369863133116707405387806588344302732848982635817024667541843792442342191282266086689334249785956746633621159587992018069301470449235652778052651961276792781507326238412810357802858050511725471593618726488366089230645732768238543873119203371566200996752887363530393627059064949001262330690181899950568023955678073256860068539430423181850548953904124072864554730368588108256177122221794139064600830614355240041667647466173236807883372457573083810303697923114978118630689867631032595208508335567506683800716212972052695472656078206038202307060853640291707501696524494115201758717294406198945379309057260119846441421631114689768403879886656479897540832687055375923877595410829375399060757051128521892887403182172245322969951245423529763210952781511095008471338208873274118845184482857786214036473132657735221054847772647010076848633532213581073171344476499805928125742675430238541491182369132091213736782078189039343905635968733004481891106004685953956326915355523886703392051766689843647506429748128998554468815083467876603591254667962052882828142330209581825995524514430960059944955097184865131360071949578829779038766662001469801162394045800617059244708066916241387250043777100838782726636389201200986497972078519149847231561958504684678756582957709856569797851198005204944500603465307806185424100851851212255402340910797999513112728643603914553967719962229218453424148330912804393146618475643378702270501939132210883112007717200708355815238647482329621479761788105991507914854188000786775555967791844613795341884458140912848812874803295255832353463069837192853030010811835761046368384805432772174771796758597874410679410694936061569009604817985275974643007318048982731609955609723529853940121672128551675036162224936367296006317779009218541897327246068648233789628912937136289273564842864565448870512270019744299973634233819880995837352435942970816890207706171435968715133124260838467304906939359160385275388373530504698551620666979171967342428913885349112147974106949034147295855576456762708192129292214906638040492122750197431339195048723816907850820861587627057499541665067695243463294774720626892667508447050843580408916855762157033630526101240598986145751096140201418181829620245603814147090698834009185482291237016059175954730941365782011814074869817628086892660596085915550108857985911845776443426255206624615570823449293230333887207360834442298270095712698247696137220862738713928703533623559826945214913335366442447236154823288557911736510602848209527110784177918700383978249705499835517111833446174054580936330361323942250211871006347764651075838236496544532022559519995218626927094068545510132494306596773286737165409610979360466893649891235982411833937986172152963990051436422907838422599348780852351313612897731046195607650749997809900794133926894003053888293300799674947682635227105360740054404982237227126349718867454108397064585761792495119775460264667257700134740984706219659549129274693704068052464845565856778988470734745974686472945782670416779559774108042928076624104354059227238303612672058483555966954822655350664961667935335000261669006727685888767725902105624728715543152099877373236115691113356820577272918087271587598713407230617331827964711587090391844375650593556947848157998677421560469646257183091671807574583889576367951417000009425189937108469940826078613169937827000280267195416244597703536644319361039887698814559941619382052773042441342099439852994112200933547893681717149458933242997046173077612520586820486869495123388268147467390365507222128979270945239117854650551375689570406988690360602288060508093297864097946100539893458607072978060013820663530772399486762254545674255795178007055927074789881227399703790184108184757945169853713536164556282211633174825772804487172351577723690231032947001411450737636851859615660107722050244517430072816495170544356997975040621027364732315913693690287494653454206789422107620971214125484323228307088949566702957984871078757483151021341915219871921467854072523086996866900114387404301884819561707177842780546348752316547870543117673600516741438979789196696099285165934123408925965966825247639656772565588790766461548278861696063139352472040890863527043096599609143369094361817640125276536098288753074198332627023962346681464780602035750671623067458560135021635895179018343664269446293427303296664216013438453319441820063236826119538881700620164521194920723089972321037178867421214936746027386568383073584890854021466636203427716251499290784905059987806524054964783415527948617480516736068784653255253271091384809850486258068623779202837688449017165631097306048243712726649925831955459521517990377187379805230404613814155671161855618635654589207343065844348117490030662519248244330707443216440353859853521961607557601995513380977798914820444624896391851576844245396548303792093441212728431360383598937535545614268559696696738585979470017550520543769836493504553705490345456384818745686142359782871396341538741416951592284463746012752203287623045580660620200908334893934435397710250958105282955617734857103354487530060777235471524532218400652897074561740704514507931088289872311354961027732338593243535181083950738498400408707726729460512624922353630494482391139904425667748649880711284182765664283567985841757392087870574983087506940260504295790684635347678927313548305063551368214497528050099018468551234061933236288674563079689802660091391340482891520895201447248814242062903297135413083597779708932989452101569521039475942838442188606987147663631077553820079235326709622196356524321870323849790245680738595531770437732092019686848947740122655853626606394063460584682691624312714314222641485416798936241380867743219981391642537628722805501386809782800958387654488016871581184041097906893560420726490710655995961559466275816481825877015234045348786131619135994720570959459792979441950196918892316287933408385751611702577460832496583124757164835817493095932608941790808501814932915415807932397876103650343867366617280096647945647708718911712273559104210509000052244695515603724125253399905077901142801331938667160767698881201062346097754054785729690668695028073235247937505059788561496916047699372336801115560372129629180604930159317891141762113667104751034442368683704447569777636433554990245010585536529628097636402674829100912610696881616690154837569329419751125372772726545401304355199177909010542727019332018201984271761348489492639697090609964764121302274833368539889794760022869967563051428542724315140247351789565690328805239860384042764936757918579863513703610353781119766186927839314810270339818720938008160647866420464082674178403843999962052639781660370321262486947647432685572442271472108706432511293071197034853274092761077945861051537714297295559621503498697441213838169505734088893460267243534490729347396504758630708330237437799241739200977308662410611001946754354732596081707292419700975294494297694116264733105705561496879872586011362103613624789020886090461892203585644734775707491575417152088393121178097058925761573778118219372282695929825570220206536400792945978350411939941426626745278113133900831210531443197174272480037761736459906404544932375632605806815874461979224151039147499045071817254359869079079508365854213698884708480883935871234758704415706965585800800624319588285170777366423331406222021851124405558442300111783618734904856899019867467649627205375751140647154938173852140419874012307071986989097121330932953841937953092762396706646518190796620716336863890169318192122211625605205879721333154366579843917256850214322538633655324612778380422822370026851265052391529068969888415623269849110374239029557711096905750173332999644086429682617286606225364425296925541313249274602609552830043914775337697659709258913535582362766892317308241821514137254653635038496948841132114611208882717581725445856837253102574412117782421251809988130677152715821170441558959081583707907946853922073563966676741206065521296651338091678574129162840544349336420273142337392919934881328334829797868039234683105999793338164221548793428612171662571393696051972751650378209053575107144394442177574716014526454390159044248786448909833088078320096680618779129545452987808733295637726031353635414141014359115752972378953624070374082841475338436359465088390453818944211301601821855209245052579876765672342604238341829674850492083054845880149659469922627382932481295601052327842721278497460032793784954573970622269423580871990863701923547930118446991916123920109167199328215411998427497862731538128689211964515802211748441081990544840185794148226707437364002128189225499227395809145201803822652105971995841523205218859950174859691120803555265668065504450493080488156603226439660162930927098271399466632102285313646539126520855306062295176295996809678367490584134214898083727450945779812296997271340268337011837118630186800435638354701837993625162531849213201979936445880949745976384392397815377819597476040539004740846271787893995139151601544362445993743304519085966621756105891010651417461216288710210615039121448145177001357878823339524907044079206547983391055410282835058212088160258764526267103199475511617861832872790654706034022282621698086496057948556058365149032925378313909759584071627860725933007270929082190472709017528349884412289780635494915356353574242599340578761658424986551655172682841129193608171092860277930820374232769979605824065998818341580473395824758050677617622127272441634056186355605007050772348508823870063535038205470683231567913041564012350534438299395307682351103197665238371510316057806821179696465816236366798322062587303937566758135127709658366383271540712042598136483004505084558263679096769002387306892474746722120717205699481181358043069892811003377113180982434084298767293133279433080382709280709916726529129974480990612880975336103072182324607414183349879823892226478496393003966913137599688542892353148418497425108884571206341655324188667512171485469796731143687649343320731134707712282817469950553190367829478033699543144194380207325522895266127415000378196026057610052963199277593570434241056977938080513932147724185955218238146865418651814693995151870197681284645268953971788705842631399630446545226519126764975620471296436437350104899828705637993541320431597921803945448516536480854368703543276524516528497689363258560819753649404055333658969278105221865465448764005158013070159273094304923231547375030527543695533044471665660730249833372654199809082457928857296411714643201248951327164407905854438880955842478414329679607260811080998683130502088521994613632403213254016572216969480607270522958725871383437975470716307687559453964783512355300287371303077489966888522470411822174988560620488174841400282283850573707333995567121985906505482679634020151364347357184526459680742344252018513082035112870403458919384378520113222176800141800498154080932425218861215178569367782241816800240092140781284229826416680558869452203345531507364040965151543482740321414217400818364709501135289244473947200814804119870379594035289358820587354974911443751572956006226546523611296115722662169826731107206661078858622020220224609811302357018764162798696280496535994503798945944571839351802851242991460029762631920863883273025022606294605425388296895470641524519752167817348192002430335044185588036552294794290240841937947434741342310344555602875172268106759351411429230552771401247789141103069638723806893885165373520257920285263800805026984109548173356766014691929178181671385721369207166398345002871920293584359250023391940528729502693535384305039908742085856521357880711143991839305948099319697563845638604818911047608731770953272096701046336103505594181176779643227012082510132264053770819091882678924602380219909104806280392786921059466600506055527894783749378173586860909050201332019212187613736449674404040499767086504061672554695126428241062464955861820196680492590977717806269899151098240056620599037391534278712808300349382465013113018692465776765318809767425913835256442443078524961770341968126980387722108586988887476156270530295818181369445550245187178492788937767299448414298807980963474276578772411673354362121929118534149534023854424520817352358004999917535001910086989128550756698448442310161524851214699630653527244380156479196076563060818552272139871598898177701456825027469893869633977341934445987074973341854077087305475541702645670550872450973948585324742542428655443555008620820857237258359142450427951386637343732901717557677674607240589743151725190493803989974376416190747258146200613365297109060563827772689257679535241209275455983899127505588534617805757259100287777535151754368469396195510714559395888864456372047963104108205716174421479551040708685477784507608251934589624181805874679778480275946922429558486768003595078575963817471231827202368771915468042249106421763525570251365081786955281870218607981560301021791954785202887833595762271765812948954243846666582549214121492624412251086098033124798015509633656762607509129596817603433085703834900616947076532346452151650086924636529397219212944655386561558916830450970270835120356331842423389047956150139869975111133741124720669238573042399790658301539780488694551687893900950758371885062713004117729590531169117734195053957646235980438114305601824012528028065666529605524476683277931140006871818545711838929914423642543103567986988229039199231321184213985173201439428979565296806023862545542436984430559618533814291553545442382546409587898524919763166692230514114554296343673407216825346748645227709071918589771479467749318539292086354695930630803434369187584757932642584129949169940912946199143604467672976678962984207129722758727082541884375949259823003414696922020510030432189916012760351938233012114307991610224108823921237779908069927339787393094805776380680940589789618275284325458155882155176524731214626522421016786101987443645307926317301228994199520422840516738993820056340919286958857752173004625585543476552003165184938156333220732477523576261872466528986903729597891167812749341322738969223663308846683296122921756194132201342326655952063905832677485872360801225020259739242164555071984926069763439726904116660268560649645588720339714008788334256133416077239160683703511905164599358154127656360330035826951591893026178035918391813767378422891016610733797274011364003254906573967758790184318189226764534277664107827644274312242546304670985621318810311219416726020935541915278460888448182769912006104339275369038678531124874447163408699959654246623160118982175338887630298514852987187214194462391404020428859501231121633110672342468847806608674515864480508407329721941035349184052398527269878292059729286201573979510839092688654107172691588280962176785293295835297606891989456596492742449566978430612492270039973503054840441076803704382683749641798548854472474508624815701864592527420053427090421267657818698047312184023948382899864921099364075182658131406231458384235528142184098464614804945873199828779217974340853332387475075514057556792705858848053818140438676986837412083193586255834198997978364690419825085648673741556157516773098029256478833562693470148134055389180230836489963135873112423585813967985875761886571556921467926627856161344233410995361227043025963881040662881304721412714525590342718835752054850365824926971465470653251809446684183336228232628937694888132356347756970197193754963110876002331538924883668974140836418046964644685804909264632808304714089196476261372446772986797452486340905749751097471595340037434117815788882349924393433309112850315146199896868010616420880829545323780176855527161042137105243570263324220724355749280376627659053364681824883960992108581228320797348015404237423548635525370251239383576912344802830122621580150228574314087082710384559736192250230806367402547923393329687780533521313319994137271775428184093630434713507035429939097047768430676758388483218935207754707310912025990352427240796364241959094394758957320072939842403799991331985957191216742601888314513311224090955632893789892918589503638724282711182443895683793529289402398911693844820103381542649345494854070755519592627858909180979015273642140061565010030135740594755406584911888476788984685990398259953136503078093625364324580123736652594110298178713168272837081753647889590940537463640987700004970461753174011681032604204072881003342196370532702230511269178031350406877849436641336020848447563710267891823522628708055293594619393983456179778989983788567389741217538852111986171317347876719493642121071742446548078631347520655165009313821457432423189068361942459990117109455107247159369925227664738034098299891473873958053076934291212088352084403496085392741326363256293324838066590882665988351815572758745048238502182141888265262206933390473714753260525874575606518693783171326033983263298381923116199736116872314842998123944972567407643030322910588240852349882403195215420406816599513762185343715939647452761949492964683791125922571383624347973472027249166480746366146306259528946653640050780956764449363525065308254767232485956114899170353465570424215615496544113880418770027664618497468776644120679314530177030380429761881369820100817939876644741819625676405079496924779238137856743170452292146340948251591250773954118807690355983215251051965701728371187848518303887751340448036537225192582769582938874012104825451292595217322178121457127581480637080690619798244065511878483003432237410769915158549472565626433016078691122389279519945014966584240331794341878093134598342066449028492678363758055568481707461363433842905009560202232629343985107645635282620694229273476620289654077688796589562246899218036805644944455790141730756102300224711318520095406880399264333849306227317429902549457271541597443427508986295417954442455064407759671704582962883379900795016439567509425213483120753340876306138019188242661921036051410118855876438167567254901053773540370873818054701610748907693589945791514290912446977125789787367166598448227332348218475281564250574116521959351096208290524259479163308170986139229765480085962689520469026911863215583352449890226438579580830467779110052462759662722381361466647200454717075817025837723357378216212299517885378347435634474160840119754498251587675755988635546131319935733628503311187112739151172481320100769944077431239060383680215125114989433131068874510930222095531788362977153031935643227470347649283317593236024986859533983506975403068300941094463940209747556400716462267519902338438496050220213225532068632228016675535778619491572796606547087473581763531386731127704253502537105633539186937717477866682222370851499466289616270134118223907614312746322287835610659792424175130552926307181213201525611939286620850294226639987604452319156665388954284537664949179373933586419271265367600792811709110830875686776620636306170896658616865296224029110556189403231978284416841310485280818071004573001330513727945650830248846110390711422144076466415107739812378028087921926250007992214657485847930420412927460267676307340918641768279076101030071488870852845290582099340807198746665408244222912842794182209157794330407912893440408834398820186084302211319664310858335855681713883942595680864034125176910208863366073576517075230965487587814654697694881501870976199372702442058125303499911339884851962832348426293863892359552757539558903216592102121111682520309445684482124901288239802561124931897483293953122854591401282738828463164196497656275847864550778051125582323157844470954436434492020841533144384907134755826430832319722175056890404472896228060913214084539165109785638775532163915636203330319159861668837603995054418464021865757212826546268773471905442349595463742579035625753442262934038775523077899224543270216354078631618077636985386968677838026718005511877367138448966283238722623294646268912317966960186620396998679147203781135657556985757348784970658474952427291845931416801589724598321028249360687057213746868538794231202717685986720932483487869135426924899586536685484688307990483104763238731611199415241146089591161131281089491410896143943409622909830152884249373778666049976124428441415966634865750897485144154436140783109405843458883614234854637689843585956098387827167731165409773408723931013157466842064048180633688305021148713300817092657041375755696976689308567982803280635885501913281939745216903528774693157276701487881934374045710953396880668432045383653375412846433324523675075161479129106968282306622914645381927095756580647416136289394450753591960499398010076160651351643481105003732774816529693837358467617318141420777594743645476811808578681036301414417659562339313071157235568185402975177716353472731164526646037810193787599678394606410002341572875553177731349044569264935428655085389610331701121084696975686129753669394097674470993854074507753514943453367045151203897771583609920403067850120097699934098670945832506787684377311573877540473674510902006890788999433150313850423576172204341303202690189343563289079444438537042152970839570244842137560352631498058728751976426024059423907793522916595730208060156148060439506340836316345297021121760374038033663022511096593594585281720189170672000208632728439094764168787648588410562232491449690123821343085459871454730889800531679750423949038608443566365656439955799734022334966258920835820912637933314363433431659406884008890041049281397024935642825884623793655896036216360909475147181244838110945162630221484502751375415908344199904550568385159490921548217209679015163242693214894843390994440369024674829592411265418480336742941784073079988488647762122634903075709596855455124813582463034752072136933690344750594748988831812232525175872887588075504315106523526026743689540912472593975285707139708511274243222978958442932948396397155440333298059568042354475869132236275444494423818392114221409103187766698920152328043229496843497910438264350830981242027040590053954969433386348647959681698499010225127383138575392906336522315985209631681280468153654824171522773854968144646515438767494000167059472425487369826385677721047329927095226608068594688293179487574927279213951995047397836597433580441844588151329744153193839375687165980828759225496069874208427962993480702929309996953917096573468567077702547931673857515298699366915175893646907767687852419752634664884457654252845216615547174411185427482171530157570564123407619263572447135528694593949592769074043081590474506023829361988388788286062156867106721066181739011067369912636034714467469996055094411516053152041355242288916142696684879154301133575381036786174921708805501247391841634641309792598040114362771116801014710756193811605120455624899673875418392383571882979485917969506825468244279209395810764613927333939130656574293956404176690164623439100762925544357685806263991217147085985073607052039137512508891228152443344474724228424774254243156890148030742097866653155825358652567235686550944779477034683046967423870230227161513932055165123089723882163036249594212320272941258973661760318451068157857707253629560645765027664614687980471030407829582339479578637485678473578076252284913921561395362014945387859806807756269880916933355343375514152718796174600835062721913722133492682148402283508057092992089075265077855918780692447109813013272880349442146068616447340347548001917756988672969096358564332864252533032207763040486480559465079918781384119023933067124243384857703334609686010336722948374741911562645218719299614452378903189017659796340101267876907373967989851156376412225757834259372864948381268115916408327518505695956302521561051993330037189132808362712726277153212683231815019639076422099221589117291674974637227530211442924937997163946959334626333382005065771759602623295125965415498088809307366375450570498494361858867857544019122005620972667085072009827352654163533826858472033882743123971484659054960347663023666642721027494632068011081780226848356856924211873413805435620588407427704443827617271296064349161789182934093024318569367168208312642051535084193759765430160077740480785316870257021332277247299086737642150959291051417034206259787793563837652710941344992667005442216027658323888912787864082044473387454835904653913176955790603507629439954216885329943567437122712754499510374896599269123993959581259251487143596614338523932220866281840179123278236433934565727259736841539683263322235971257576840363740967157967667972663639264142235827034482539973962811635469630712674991903443102607236744210985971766548012918634189386550155614054188193778103640014097231268609548214337568532521521063734172458693510708693951030252720468031880917910196560189415347064551961364319039875096031619688190033282816349726709020484836141316822517404847523817278169334693507845128087725005090752438232494963954738589106358025350983944700459733057478361187873108168351005749581896256264502989770638962588749248606802420160965225696183280825002242204939733873617182137355637319990747435835019665595283029956929264995033254220783736968415978253484552103167680064961624184893679267110062684271406128183690061040354206824483410375616608122926287516591926740779395958358614545830542025003140232262368178101638041746843369361076224330738539449707857227726948428263468627506740144063692146340754056567867149613847848200149717843477191751214940955243359738387170877422328013716238847889655736288484305475161317039224515840318249781218558719176320860024503696756777440886549912234521833662782261400757772852841565814001489161300976922758275373095028414234343278996916038808125358759108064221712476241224026311374297901869789441069458009554381571809247231921847549161772887826731337329826656275307051309099487488350494650464318008573382571371775104670463752075470723355024725940565027035152872909207650114596537050675734316094489275163051270116477381012113089998769450428345911778309718652068316157550163827816068298554813564029151601629018237691904816335508741192772448134881401409421918667858575079102228235255526280483446129804433303492658981312878223557712941912583644410541006299172424658209181118706677966846683625703944527111472764067574728196987495734066750998586756834209642572317204641406058735980022561916427556104197859623224711484756340067733089253697462680010670257971195196388040493023100457185298434937204210411070841759506516694408968010351956604329511229339868624632260465410142668667245905128064570373110835501819878398428526596735718455827375454799515993829761601043117818954499274545440407518727095297299446852290880388906598437526974880326806071609658717281422417247814350120825734038983261578834195321111377840999912128021118348531073516383437262965982224559179016933438554558802792651966029448260905404385621519283142159936940617218621611120472669898772999075044477174312448450403343023076233193991021926858371307836902483038556003010897586887622167843316437055480882206190383267447254513965019652932750276386329619385670242322990396333847803333719299369467464528762418926279158212812053020462762719176236395839953799765356354338747605154659519140915076088145338643332762490827467209261621275259919997292978507028474452412151786309571648439664548732670045086191086672133882367973896577535533507098176933316555204107881448539661380985505101838846791206651589333345860988792290722933432015540101733834670526808164409444972441892556251632512408335386083300886418669318362701143353008339837391356134233820539885420227844523114608566750151379166620525080256049196383824694296253226320237979896091231229330371744444762400433770827294012856836221497640522711212637621797686249992997781855000844607363441595545769966632242825123648134276821222507391213899677738507965155900365853831940348381746217130260364625516525976423984681184573391466412240976116287038166988291427754673335861066634192072503308949067785224632327312990671172304932062919920311824963262946683428992508537321677458820561740865167063615731853767228255058649886959964659703383737321795340538350081711160846483191654657479934078326839243465110847409612535954972406111536592303889086001324609406770766381271477529270845421627925569999170730525756799506341119624072192323987095595226330129461643149269645270748680292067923877688584079589905371161118286768855857690361860858564625866997121672894645526862965632795024744151810871456652690876528163918462111013809744190353669080101247367805534299236543296603559016813739470227050778649614012512892760700547830455358243247508888914733921353138265231213603877569176273362008313973978130015827053807548962732984186002479453290983813305930586658001294170679025921819232273858805663819117307583631276047953850091588877807696872688289605097685824071920482179192962262183388171664094235136035224469330349820128550404309212213986675339998388893477926747707422343439519298677099542132103085930874421615768982025585449392595808551130023209628038755429710109824946492189384114204239380515185865630081884248049696686465418992251022961019950450690582774451402595892817747401852599933813680170807424255816630392357668195365271417992991415418385470742104067361837792414114392915696345980462874195951028688280533905287983533291486887279311606148284840563126833506390785443160039541349555202039136801958765076206273006513105739793016588917361400306600428820849661960650145777606638234988309926513974119607713373403121071957509979675262553149407328017363565369387295651256984661284776174494383616954999195518858604305880946327260763653324097175156984260399434767217259824068298254625815482067752440879808461118991644918296924158251194612846093969797863051010999797260262541581693215452533623847055453050429965481406096508767792480626456098097932375642784556014123876362066765767276070107468143170788590208700001045450789686966195809546419674705637157535541103497208019414227739425762306891967339874907432405626800550510226250726040503910398619970474011747051450107714115840115216304478807861908662759768356020822720016473865063995851386701698945021018567988104767498197013567102239978062067065806497488436768388404452953384033414432555987522551461961260552407344388364786830704000033840097779651656085850738347116390584273207415588809822921775314373181680670748088748328702522065259191474418603437506296461528292636316569510384921813849727558874057549192062027768319279091705396826809624120297766477265300400433469405134000207942321784310267297890465533824723673033327538312587442843392004880437934537879191856354943550445441737942404605428262462553228561041118977098591031993265421135423841555549213065442709287275087259308239584564746172631156642581251990722298902602441762760307969851454171413731718955613086342014140434748272519495265829302360309457891270396780965903154050911887073634380043422728922411839446887300763215420041354835107670546949375504718378130810797849780516231807211050836525665620419561988550872031108857141796784485689999037773113887604609810283350772403121082262797923252698781736817822208184036585180518217328408275104015050774087679434486087309899470480171776406947691793589177466488731154123766453207134194911467836194278623168307340856643149659297524682761220427980493696754622592114737209477936418999565030191586657830522931554653744110159534749437761641506731743176853278922781923197070148540834055769034855628952460881021955178669838651927868254674386038071394027331197951796947276884828433179900812662610220067813526974836953891405189749821996628098263381983477596710185145106848612372598344891187634183107526934739137970837883197854113430702661839978193280059770802075557517668624137990056612657125282115439364172599455385813360178548774915230506504156662471109035548346864661704606411287321652056088454335818054776863698075262709968300510195821283806606292323676202858111049400714718721211312676866828034832788594723957763267053217467336619040206068224349018570893545605888433149034918614946309786018627954834592445110839710517333622891341734480040840678982372664482105588132206465355530494195564868607598893650285127846403914010559008706999608120698905062106170192298674769997990756654155551568637681735953283790757677706161284159622483845575111622077554002848628169481595574808853030041966546105272439035911687965909333546469337012495378126472308953245290355807925065864642889909762334673459872020309937610197073280683491275026534742492293941820223644924963764591732031294172241010775899873392475619089624016636484162440233231792109463457844372080042509594465607632231016102417315635198601015067783032609285553555263478218833950078687180078699888952351129328856665751194527798737110008457483133556841885015444640560661697459271913581422533930443878526067658690969144998520708518233143378740944387713279939625890651602507732573314613002162682781718221161567789977726891631210285471741200333222085338084333849167552230735110603550683951771054754668589094099104347557542935324517461534844600250866580845655622682035100481085250298260013245444571197983185229934519469958182974815536233843454196935924286650921902473183600989557395015048119017519300160584031029005377109444908785003001750462173220312186877478822296647240179421793860982340226629340292963452657373992187151290761371682846426160489635667758567886271620622214609591243998827975316054395443811092534700018810764178015074641462280364897436703392778574892344586022282696554676776587123203614813809744459900025740232031163317850687975894470582043384973012925686856331666726069363468489879211643060202986936101163842584814761405628980250980521135648084360385664427584485945917475741444740467389892149062551471508419836379433477490323426786579875975366762637484180152128106395353047281834943696270286761542147992309857984140702078250846757415998418256496148916129350818638110285252051855266572141565531418888073305920188944230443021779861522880213529311519923427694317152349800449364896795002910343778028268129978276596527122164729892900816457937946316436233615782672616293542406636827387290773234041866883612450320387632532108263850046254334934543353902386389674389298884959147593189788242229545818131045245869892575549560549044782226433517141301505316545253347268332502133033406961011092448611910452371558867346138094418816682588672123281500812847698828876842805348368340648220808058562420471227088111073912223379566048273647991545718487342552526691252642138214393075062927644306340635155945166289087233360928983929905813083483114414983869122193124525406940136346802958698881026611936678789282614704784900464286808199366091174241257893817581752124522663745219937852738469931071207369882093428717648269462962125185870168878766536600321022275865666032680317447470395897162824417163876840969525023473482594928121371897134187786996053357937455167025945665657643758917372047145846765501775961735845523182062331832088770558043307689262096343013919010562381666341381298569434968340785496437912779687156952653898243203577650589498710148162660714367339049594690379342554924104078211923152531852537579129098570959694695363467994717207675703924913904650433518903588416734522870765639931056050461264818042027183447709218252949303177006083276083229478227240391355058116960893362445922127122262553584223351461029831339168626369507548233262325709166225319979584128596930578412514100688591647160994397440836073849869908445074909159281331548915885964539963767982823711079350881290921235645973146507012880073963768958936090316159902846150549947650064112442741295167609609502629206186067138585181026931843152324319028282772176991460995140945748845881903086117165394785365076195953390826556612347616370271105240091532604951693690476357162112452897425448808724297884644088524889289326616819051658480418430888103942816874701136697376444188143965840472424918068790457395072952020823136911349366720441561189188483998668988397412311885514954368369471692990067724521374218316444026851664050479251808777614212815955067396825491722820318454562647301678643953081819478535972421801479774047817466527625354422264737696607117262350599970842378777127155264040706507558525010581489245030252146165673759705307722315080234149676271171297844481384921172142459233772447776769537600736955888329780547711838971660484791473128613228173599794269967986991000809802159580189857771607661054336588947557598867993295313947331521328278027377422639739828539946098093786487267253459888957292190695027237732110491990992906927205822285061405876214595897840262576099738306305666085043496185349501896152374906246533890037890966149009511512548778762821923898186132225294643758999032426152632551014147549604975451339314627102540035024292992343451808716378361332379085356462455992212482215697528317620211381820097549428147532939621584819639449109259071924113339389321447423439562253173845483098391867719141973542889478844100186522333870627406809369181733718019127612384543039566591949792015728576985510898452969776180918896230953618931966402953391381539844633480162851702481166603615468204545884406815002072368186429707322870113079068194809892594892139061462149210274858017937176488543521765522389232646262286923993875259959405363753127821178659108271144698191579003572088666667143940396969224983362054963376666817783828444519505712752650405481902276800146471201249018898311289631940650951960085320529150707972514684049210816473373349799702980604029441770292692785211092921192235422349293302325501852761286500158383522705454110299469062232011995933384716618515910192448615309666430424481122370758873982397434673883797582524205103643826663963564975216125616992799557764385903360814111967778451292596338512941879801651352834769766367416786826497823441456222877506623090741107047738676642376314194827105577814130410803971619205769696412629739151325317881554830062366021848766696188440746576180222753266132573784360729375589306565987408466381230824755701278163884777048824600323425003056598405038565174186557168268992042899322439970563372472874827553205482484338097676901805050697815513161839526055278739927486221700860884196052289456205944816175917276857737905453497857608175712562858025508962090866428968440142718327766850262212406363867911345839869796144325649365266177186390686365569490781293964020042408254331624944779118665364031112251786188153991525057513689641965464343567697223505400529655185209399004167230109759792698640110948796317494438381679118385028455789481716733889919493518257938251507590832744189807657902836772725932969643315746475199650955285224291262394834101782201667382970981704312647528736879900156503835861684842685618260568223149558743072843009106614488351282134772320445831641297520491351745398554671927109077695410292827728584362021091073546726452859718041582234820051424769076741556652585457565046493692987649273925360871779850766690827604869495121371433914255171630828108882814838491997351216345482103808640846706476720490313385541556687871567885687284416824688396482807173945330017095277030476811163472293217329460011533032506453793503422767682178577587564489555193890716498490278768947796460882223854117369435465217515706456129986784975221892287039103374409882924697488597024851626261598879277597913238155144869518304356220055053551243420309639453077872436803722216441750019510067341667846027635742293074325438624236470174786560324251938261262671623852089343634846836192688277332696516006602579928614099842124509053044312696428928641895365337995694622026770750943737073190864267079647140203609896693529050831811910117372782664841827107271545365934025007176590229903689383730933356477673911963085034991618659664535700778318936362126231625976793258578132259327039565382052411545778125198854008083707895574318222419024343339777336282724042633605773947288323125130180183191726640978908628086464636222556771667014649092265071708861361574120032076953291100569831982631841955145189459112351412870614479055794029782836002380350302019022799896369692204593953078834405405833589373378226836029080400648065414699008096711413641784141619220260046761824168821798277463050320944816698473218392536819032203271574546278885563370826490650463185945369494606802797419787357714886450989212458249487488122921874721129524655616981919809549685220116153659603359699729055793059795650387675972930135944355864692839549799975072206032546793040315465341297041572066312300607415689709551383524400365215610668970285368405398267414543450010010882460906577977306152496781372455848892026931914312567323664938403906016298892884545447333840897331753909442019511814718114943588952152743942843887269862933615058885424989762716750201181376771343334231965042874150865285176320322226042448387284249007606286960144684677465602871838238347757364000349102534543743891306828904559250006178599513208608155704647753751688606304614313170781981920177866613981423183583914196690844210734932459845076827707698245402441433178251157206813741934714894271055083966322079044296492608902623931351082991012206161377592201460828211465834189262598033029486758290303497931716252467500694835757210631982008184575118285110308552865789541907713589454163813113589158744215172417880136984140129448130373955076008270352989696848132592791735686267717217750132090631580373446135567439757211412899526801462486310591698837837158072615230992319374209409411178248729028579896813873507107149573239584735837093779359557865989682111768129979943995252979265563166032513711317834389962945726779373933950364917925888441065031047589707342114439554393608430210249879803123885956224950125943452623800922982813402629008336336992636559717979441327687384763468157064557614500066245172874784410401464470586062956987018092827159570271725872495238228675083078937745261178610924126649321874824802839167435468851434372590065149108548367754496761880725720914457976357128923641199719747606964005511835399632661085899583048452734663184680984971631713916167535827300944002605638313129538908235449677914269442733843588695400023527786774954148069621853539704636950838515834329795786419392746842872712977130078994668359092860300451656127600934391211661529979299615259314194539823546135607000363489014384050528868141296040710032344798691033781543377586363838982392754927002828737563502807463957130610840131451351051516977739658094456209277148483936649417709078963862546675849043842981640462200682023932476983967454429027395759743607629608516366088870990195911598472599293736217784695801157996323600321650004512914331001022237444705998741538287790818091777707398897172652037773996324878664959591952582567380790131813815594592730243146173465040708953579872811833654471318172671405938859777506006224216258757714827957179739266097979228192589014233895993055035146108545875009843662470523392305047833824883915759926893276208501679883882137245774549462816849892250549392600954490061874163953264478717878008584087375915916103850398531156740529240886511287292786401599494536423493882678553675875110198343242245521442752694863377308801974170530509660243350425233604733862024977620508527249437939712155420040249378512921989314095579505550374734799103099486520765114099948369130283146467503295433086893086246046275451405640364934138369296653652649818739591406064858664934556991806236641486850106523043863173167390704847071350450188345945546995683398144034414026955999949761716070207908148268694359895114378274343902504425651315199634335713573037024182561490441259942559572571411037237558236703583991353700349155149421322825140266285065309221195820613013775397639471685859367539159507410566438632836455161990932930397021012165321691499492067281075671274254933096549540311240048979637493689253813726242519258018925289637825944489444527371021741550976184319967326881349850479311601419579055719359395622514208868567496617221505145205971660763641174340093709283676965043292646920857611266310157944039389977263969463981286978630520113312619910605265381642870111754000784446376680548051747290950348992955742591903585790711074563411054797703178489286439594475964170966231685861661114337998349474222807730532968200289505617188005457471232375492507363137163335797116284266670735963368691353402991639311446239733416000497078385371473758219253764791870973332927555140475625479741732173059669861357944379255369267959990893830691409312903660576246305252807316188427211938969341668872215481935163291154607335897512913730781292774212224572874039198786467026241865853028135222490829415716978693190020979921719246830783971102415785187598261797826729080961085045878530164670780022734599716008017267363749746826076474838231909731819737214794934745065636312966925017306753825308689002456461125021971816368023547369925547324897441955787479431246100478404867697869480063168609882821828411195942584395729723024720197049962620948360002214797684202113848290961025361486789233679324137471519704171923722281167668694202361060604573154750235692113148344768748256436120813672284127337877892233741469656565602476529426393174048014409015529689163637468282592923452110141884155692524509470599383641643929128983668906900577569199263425735686518997953831281840608436932919813996618140815679599660399760166199720957588046084042968580295061851201705795319468399816538798626537071806045819413349093093007702209527129667381630120581690841426046835456024967233618326679630846798630330806888145915839826573217919198775291904754687194305635919931304217043826905360647943975760389646058756265031846260048689914249818703774849131264494232054153400629801686964212939769278533240466038030695899630940120938432943947399885355755001904244005765854269661158763148751236922304328757023722773857496190660830560686837504145069998476394916936160932653892115633482114996960170095090552177437808632603005608388317517540982577279599520406992142068642084695192511324725842079589262256045165584970559399660552429864750071075221232515962632319974515188893444787952632806672506422879073385962987208989784894317739215990263502360336511253730543813670181502337539775527842498041254660028036153163767224366609406847763958043899440613457942430738374168325718495852266625329985571607983015959313468317688055968701496153786330599285413399094101946225168480127513714645578190177441925021780971261162413311671064733907574537744795514783045391760310645057125690788414715514506094487954399645530048694136030310069594640775350714157514591945534318412519033716424702522172843884483235045502620624008847019753290279919735126657757087283684340479306044450122123872842833945893794437322840767197663842637322040224370757365384999965156278421536690379279016169085004294368912649682644378663749352652743953836693952153025874676713366824314238416065693910897167387839987388982563427946234881973669143967295211929759743778483450292866887173197181632109652683058326845457403558632841701489639597172649283330761826176168699796891677549439582857732027628499538649326386435118026555292036609833308057477959900994068982002265394769335264701230603183219784463547453925368284270925229360697204563963214995374129969913028803658239916820937693736916070282048917186127163599253886702769515849474554660429386512154811171069221944438574852483931011745947112210577525099539245315628492379458197077506672423585320469509378722890387601088395304171171775749266918579378358109110710194509350385679506054886152168560373384827022495183054333232894036553362802056542545697491050611517635334764500805040214680734691713966452328640663812564581458554445062234538091513790712738147710791974938565781911179136127821859331574066961405622254485444165451704780347202842459222112037592128865463467266126690340799343123446158539568855161056490546452338962297024139162914690664141179465412400746244331670004731787522859370779580368461623101737502612397043116983299194191226988037154334046926544771595622602614365796593460265560538781696147049222236788739653163600490718232634013368781792280680687918405652061383404777923652606280591309423719448887983821772734264704959988608307284639302597073629550489626616491247328366354917901488491493645851474263573888719854695039088652250728725353024356893584635666422908693055377645956124918638006086175276719361444378465129087834934966766348771412001845642655858525523757440172290377435432769678236253160185971443605230230755173962232699490102810892603546992307596276334432265017380991709053413063829270365268376503096737146819468382637666879677676817543431758005913849591644226088540687122186629517136916066106210859860187826323437730097342039998459840725642566338795078083502737714493982084329821242448401581003961218099962229027308450228849575897551070098213716772423675412972717236040386965582555810180238702444855017554906168016663732538083209871333321778374488275757035631741174871809331970416650604756519191173315139393284824024041123576339603018214357987920007580080414969504826275438525590396567771120259785284101908941793430031387404180780065668697125725322724153956542371052545485794564808730508900013793170683289297550181399545367912847203582896593218575819459342092376628984961957044186390920638513376524081873297981375660130319795102311189945703528323878946452799501734030021634712327901302968631372414931539887255712869568288319612210553003727985694217049273294671633988184671011078647857051270774177067236398623925544343026508818235766061944206154383717653089608809116950042637886966811123588335846699359534293604561574174871661957796310903119261446493378335608421979575695541586808154089305639313669923617222082117063660339238023325073597821451822733171342219253187746022929422642005746475580452951785720625272199925883927007790187460897188602884925733524793881088523506167646333300191527720417866500633019916562666839786002813974822601585508093084499001318541587464128872391829214420620809904049625849230606170979097714152082184275572987334697745719313540047323236397001866084280473667069679188573309562617031718150617137681156915632518593968798137191374345892811873980138369857794073419885596706478240064553988286826552732558010280914795115900867004440373534820214995066013368615829944248983860651656155788014461541188512938887182014196312255245093716441182120192772840737742508522901724194103868322883891824253403489301948864224278858044630064378703857069217769520413051960025349966778769471088004669810532719987224446504324334038549979581765106027432006856243843492368740813332849614018299819612843848546260705349438062460067205774765279164106451609197213059764334691946622527114076038203334746597653817443365620995068989617965487418151768206569513935617096967540942572271111672043176472158188510114294287161494258721923910659940012704774238946127733682489392768777967354889838559845068459512048536706557972204930933182056075972971799896071890798672474138666274608353885714470977932715558117578821522826606068325039546976848097783430317522696981592855624012927467781816150461954808192530135963711909768955600512906394206508514647560113686630502898978168177783396623488161533533799794197360501012202488646587521265276221526820306915168643335266102962117901167806937686911967679338966469076290965452386533514895485645843529246374924737094739459049391976811436141660548427346497426772373255732089145073467256534317771050295792608576107206164961823731988460932284624535280621554507939981477094644514036787526195911296715665486791944390191522983081594807718164416171772098958026521257349129360909266748449396063334175539696901516276548756249114859556705967812188984076203342593742574092608105003948991354736674176377710341279368614838290120789697216303107676309906604624222722200134006916096022248149144192703829809597758778050627233763543898274440144019371111622065987941890897699093046271058305372605631241425500938984691962308952748155692702665135745352080969111778914757291458076230897528144668036687729785065309050298347714235021877091665971280509765004085593142277990220761479040195376371934340608034075944232701567649020985140708160956407835933867257447502359714815639816438060492620024487133917131820258000781111903386852834453468355652020077105494248738384384346904645915816710694979341634338288862423913298663434121397703383354017514946457513276016334254317260077154631119081898347551866870296339532122900413621756956905794489038048125212186690972701888011175168702957202141235493301447923668617310726756482663071150373263900885679244677536851658183662266749915709562867531588165409197123968023525222393389943143130739118537741863836535663666160880300018730873199891880856818479996383671490733955699684307996577537751072189644350964957637009822547704474247507846063503150188855539891282073930182517101855065200098712624404088150735404082667106184337353760008675948953720068849800352006769679626722516247280043350438381790191853907283314654472922607498402146363966342923365873718043216742024365328271319831441443411232916478351862231825114247123205861291183458821654228216829135558545452443669483077090200091035707257953129436294705346658236138546388322587802779945253369882636979468484545796170044892774072576743052748842222142079763438754385791814521738494206793240302215729713693622384159966312625680858676112726737709989464181685822136545028984528889516839144172216914402789062625111315941853670375039897013393792281838903746369364676443612794540318269508552068758066939633329880987642381457345682787239208083499068513222701303251746270609399184098111748003927985903927416485233722913048046345273901550541479020168970043659885270543054500229189434017192938336318111225157030116451800877267395762852962304734184102029431652464730208601693851262970991652188687687178584447131991742586923901008978785800943612583462276567509022101287538455412755128159947383230608958472090670320747645470840079819371390810129822507281309955307161005654280486900602576088203658966438416980068289618417282835206909183639451120539591690405281148893944452451782588816685757697753179890961114295089572900361308378699579512755504525233091236112418881738586088875157807936999309050746713470201458587771654736627777096226684453076063709638251740564713216044577427579696210394574183206150886772754483153483926825634545180266258069006923506921700310279154545768942178941212872060830970172477713768190121517611868113667921854153173176852667517546029082769528369624246625019763979296665326704012619797660497317049375985078719961646221941994020768336568850467285089007286626429343779386885329712339616335274191429794039182769101504314718072831450438803444977006104108162173002892898478746085568119144140269174445731340271478345552404141559683574581778410846789020139730344484110338761375547470580880027383244181590961741710448228350307118985720668607264008335942137763531358563090271244405648728462151447988651459941270992085320443877180087785184792610353075012051251564016344295053905029101336155698016454454842142445271751473626539506377267967029792405150778967543923681425740715567016636323698433254873454779281823580411582847707544314161797027947266872235170886480945331250573974634373481966433142076243009681315441765163000794134661131538186826309033245143696289019316399236506953579910717354063880051964512304109692830996893984429445532650622045942199418752520197192189397004658979833227052541117135122785085453144052319365883089429923046523280972219050901429626504595068220717388649321747316760653575305443445467410924241411825879589377824703839004799362001758085531411192741899751006205091886237157346051409744042581742512711681768710764659700328160317229553052868813288790176446191494549423540456105391208904033928258309063692724568322547822183116387893133681935917380891781667732999775524196879286770229394068253892055197182962953366611172683988178073505284864189367382523574206249750987293841813443944224115718620998316706360556824201132811928800720324723031557343335077033052654380177849584200499768146239792657781863505410045835950399156396288925949072285939727513291918765135634251508397941669716882727478310465988613503198007644370550457055131036884084560492805077262272251948447616661984197216893028201726924158831809328460851771408756952580415584792800137511906434680827762521450554442323937301731887703688005032400869681770189990336475411393512136535091815106770214825829109237780275983515502177050446160438554158651950346148680941974838356361421228791312498936378098823264340720865359460105542014159248574816293241662403753381614447669507219790948315962251108006232406113253747420604782735453557537863389404845817976331369510585388021840848851139785229676726735750973407267458345844957488111657757285658771405882463145737368276415528554221376508807193123305184382435806256487990683456567274111325703676681820245673866250315554519781443151111380021713745946168357897493244648059421308974664004690771135489818167286147763490514571472931650899762677414304324741348470221430880522013568808576007879933481445802958568861211486950157119974439561717151763501834209220260748839625673097475436437006722674570850627326640386738098740414775223404162419752630707598028274355121971596828751573040510498309883888950595671167251459577709285520606947974378896862707062424796196793838115788724233424310077262051164500421412316109847426828613694682817470870036820697081221517557019316633382781002881094458803842946616664312646837046134501188489903167607629168965000400780843971117970002165076402528871660464787915320979483605537145741284948777336395785966087062315102499963703268290599194225512123875031761928572199367502630557909905871925426617544651198107714072903605010281110704224074736435545001801008402453204081617315510796070276457247717325377292256560647990196066837511535792641121679850564422545746012458108378885518620180133301733920554747036534550896935047152832066687165962648756642188255907806521817445995267198379680739978488965597696254957449191612859767066534662251095962120091990244914143390232494391643702047265945984453870667374650980155769892322350573892733196368653211518364844542366427303009903047501573444580284700610427462013195447090010672466264453293688351860101247758021048091655020306302769971116509640213268066692621941596407037560367414460168206502000367490037988120087432287558766769298163078698977432883498747402589514570796709549806282789711197158442719701138269356842890860313580772210667067839491399857550495119279025676305010295810960794674941326382934962863878960428991349801492487769694825498648599432296202877269528914546950430099973962801366332663875649400246560945843602560171512751060128051940801853119263660047924050497137620495333881300410027382971978643690331261948118375900257190942398649112515196446122601882250533186556878740415934062221797539301478933535325462121206508384594615206655744585411554957916870196862025981854070366697597138006475194075884223496075261118191985414704156852634873309241891859633671635908812309416362584193654777308594685209579554067213883904779709432745913119134824952024181882087779496193279761411986727850501995100238550057122942149777886018623607824024612237796709253515648703996810207200257511022130099203382909988532807608261907982469138545073850417471574641494693630957854771838236182631515936713105763904786679753356278858157302799238152528197077096419965545019616505640641645124078267041493317083919654984347032747375161236888674960810760543270316935597730567373035437820810142066267690107811018508182277816708097270028165392449922534140604586721500164619323436546616831028989739180622826054531634143772102383567011282594382081535501478302344481007625384269492656604872191111946423679034383711060710442753026561991160204268788494051926012906474879454344214308172442493108594304266551161798326624563606757876789955026685617596431494160699880953216821268000134808762367884108708963567831397321751942817462028871390066302510529965875182454100441208611273806580619324481402117940276198593433911626151098104536788827060759288932948500414132980910822352699454805649531359241566759480716683795478003225863768642514825330964104809638489856215520982498661556512037630735498341838543788696115532959922867086752536294004594651397904512923539721881781770390552082284215757579334410747777628492651764481906996101212946572837879777725850508721019246452264845288433499620981722255793583897304817367229500849870550741728075647554036476420045267839512511193386952034048011732384082641201454708207972338506513445462776579223476904285559952672126036734652035322035210774181547051990016538298323025567539631834422841219496949962415303211470978750082753029895824604294441045386040478734764481025768593353056485528776821678470977366875152214666992140082893228515844304986218448437051668785780570544582138587744570902158066339083129513998715982184358786864184271495355678465718593710532694141045615610243817311366001696181934997914095232368500123242379498669686525554819147328653674166110415612358839829105944569361457109817899905210676859895095411839125365832639985598798800732697714016366121075542920113412894537533796305182249232326702345228955772951852484078336754638481544862842975731859963895272812888821941535947159351075105657355265336197503693841640679614237493789021159233489907341470397391899258606911184835088515666639623908108365636583848590192324410196528541648649656181174437235551622385352151041847667838555874325649184103062763668276982308910863711569281232216929091072308999524674847695281769625736663112792113881289136855643151821636327647258904806627018941564786283259787753509920802780555697735422153790795849517411609941528141728919850185162614402242313095953549733197264801357617721087291253738102477128723922058503840218374660365803455987835110236031475826164280851197451627586142214958354944971036169266373906279369987076770540034551466791081573453798768098662953277961537131548659195150675464257999921851668413367974818084744556884249004776652546199840391654807195012064464177711043881044532090178294744545227579752417515477232613747266663121653024599688359188589719422856389936124899692273660345450721760250500129879553538415201609594791917873725072623420467385120948930867414281359189392352265834668936068222966341933339489734275355591037757724464836903457732677171796271432551742748713407234165498328758517182797942199251348110558637490042453868046046082877799360347225809685657815163111148575967451268527210988304054462677946448909685243073730471270190369051010406380121758735937822221545119510513000908878712923849349218944961375280273833708598831029029830288292298746960725057660929078918156740519642986032929178407418592024192083191016641079465301006180457062346231325255418150522950184961717530207197771037665885284700394004164191587425596227191442622387143400104170437372101771239828536503822120962306617092674104511807233811192672109652744291046399340715265906168980613410712993161605111786894412871485953795040076606938739781388971598430042803566427625593040982468971964883122224401343313179133707731192875900984908315526000480526753765024926858386278091184434223702666006959553157655848884240529947934038059068752420701566650907765355358914580054653432986996043413507517350285291378928251210911070807869061476057440076265507393020793134456520954379553045032158471638940158445585027764792746196230357178433735462644117813675289886614317841005489987755156082207330732467767769309924350154467396325679214916816723812219574751336905649814214198054456426169490040759400655430404499758888854151734256201392913925728879234803684667621339433679151111181806922688645517684698923652395228522468758588901346754513406608935999557278649433431076743668007892561266802518624532181039025387626906317598880609857482524205002283899117651971004602023647734973114147117338070563700604495242079416900631579468807528285127667669429571300490148884491563996887828995199168427223401342676787861666847851462569340714364776785331422094674691672828861840902114605837828374417188709873723740702561192021479647884798441244099066045515898725096378670269577527754287863061668479744184154449892037637630177725940280292158913101876313990938791496577900888374401396171553083042176035889982398840517904700033048778601141968152291268921631547975864999864036643476883416347224569899090691710886713472871259950438454285851757182203757710104231040161747752585158325001421347413840144148853192490719918282122257284528736678339090833887505216228379694931780559291024659641403846756998003427542260627367390055593456031650858109631634494323116535730913213929827155372629191620971487332217107469917494819311993187429984076197724771537113662137053792928698428606254289801509750174526875223404274731281820566148139207863097065132304341293148519468841164083436663850700010211970606004860513955595774248078931525717274082098867178490069470626569539764414187854500367375531427876351172568276571565970895562114157850815269369258090281576655558826528092016136830371300328244481893189662069358194198801211154421353485949513123194313936217962524454466695292186554851618802566305047843870135691898061029684503862893886139308996885513885045377892233827695975081715036911605905566495171713359227788390898972144646801983354823221790198020285635646762700413880991377813639359610512774012268485575970809713912307898174467774012466777443967191831888571596736929348571956040727718949690542698995005624895746909442880600491170663319309976382899468614054243976024177804877667234776114281875525940951908267348797886283088832931033180263771671838775333647959342013211550102675853402458525449646731770779506837789652443476937679825380990276241928170726927893080405486273747489982467935187754089115296907561957004091909787837117382910573739441774770400944647232439670358916255222145530167466348988182107959869400973802348685071004408196606341605977625207620155295264833099587008490305330309080656289859192776402828606616102367821080593979076918606770177844296021921399139921877095037891013271073935780835926320793553679839305057797258255545589838744141043865925564680522328210441942839908914022459197326282144703283908933998528832637067666673099744728169951141101808627280368033083282915659347806556863911292602986748243596485002249820113690150566296637151261602289496044628895445336111510144161895031808129061561364785429844030502874918316501678710341145038582349295997853029170298720456569613086367519157575235599474932249066565401619985984152642560384721281411886023373272078412000144228975176842030258153730971638301334141460112709366890952605533722971797567280367639072047029960090620628040810698226834813495252524445419227743353402764679333561655328332617624697999964861424163119167917406255049004995728772251937905736776979518075545599288692934632221490634322209423079444355322165753972228442926410799597554893252743830625406521564145790329883798388250119677434937058017228902113840126539202460942356651795940168168519620537522948371802624151086582575371244930335045384745594049917721338464845253504664272076299008197497239526036799206661850866505927736551978673875402315838883104347138565939727041606966246887065879507834369121475748660681535525873683384491964708332745658876550571540143055189429768675547758547905992231603240543420285447461222707581089041600189118430080980936317075496201593282022850427261691350201403252657778709273478818279151187678202976262939626033720516450028487182702878962845789596916421356908762715794065805067388048518402915550374398200027000739150182083801915956891032814462033466478679343537076040844728233616238736874729251142550285180369003758850682829534098314004543706054314725400138220218502943858895198060804795298371670532166890142332817530279937609391656244036424442184870422713766577328624213980082677108448415993175166788160374601854427584807065374876200233690367482630663775517255226379387382727786567431534732072398375351573946308894769239464347332698611128605921871007054363518898143454103617865530821173236389241803100855495412747429714476527669152625704941911278838079713013040628125471180446727746991519117765879862308810313962757729695751273891277356747045640443475345204242767149924348468910066351773364345452346921074666506192166401076506366508891426872922216745151025725688826170106350352434988757654792798489989404378670569073973192567514253974316969773720195873693782511625695072542197576676042743416404967809483278279414824254606512121852055978564896459165275381647774516442505839584793372276112246340413854020561750917612181251547704924660790283780731233354995399088941125177963827783828670257743659888222794303037837822867237891504223183506659657889950455295745778163628369323717169708291246610419004029697555692114631966278306392407930370624248542395716298687910802758919289352616255165762607227294069341276907135167688965640382663125659211194392668278947040226626690126129812108358780982364342822858348877301624894064983493673248795533312891864863801377091429919647350698160249090068127080812920836542363229023527472887217778887659167614122600909434057224751799438123169940325426323100393498719148477656597290828473841147264775558979884528134706194286778598878870661013789938165795955080227822907611196470972645409008232733117328744961644960286662030646235079924313295024287058672190621447364215316248367563969372996208353370197349224028022142344707207480000988407276297994179091995513248902671244690536138260357092167787238107962679834947696892272857235242513995561994788495522682969929408009303263090623851637669817227591070949327802472643763757292538542668853930175713935341290702750042416129401052648099959289832001743300680067748269255040177583672202090419230780917039563622690344546519525065702509091655608046340917194968997727658069956523275363123237984859842650490716413862110462429413486188665920426456444246791592441313249053714236592387299017239489046683263488610589471857528946816158066670418159696883542671773826869799474979751033574768439374297989545364154133628170066099286973472542675250989690806959251079276309010247712071747260993959893066193811136423621235793369765331788883960038149526060803742174700495003420090629150492245120395963340873415835704542370651593468692447314276309807352733977154550704717678078002948006379204352712273602863166276539757548735113049994685634649505750446729424143386154973697580789902502868973983100898364663112921863918763007642794513583722466000508453076529326313991694229945275058579577652310303519423718027875183344536425845559691323870435216866245515335275145612083383243438470190520735056542639448542995529162476263018027134459748096709717744618604988932390920326174691399803153889447740671064034407151268194893839441920360965951150865796755037711302767838492870071187593323957766227824982561473108223135566621849524352432515716505107341084608312690407776743894935089532918969770862762980019786994596201650411099465659277547970133702279791462330159757048194133564597138801058190033406375135844906444213907347805445900938128169838567057742066954927038192041092492552410705049430467054831171794399696424046778978990782110571337348469303195904683075015791062298040872780808166188960104609189849319964038754469085641995711548070734573290814108430096452402327675528794560723355666981653661368279783393703952164221983252894178004639058918765394643714014715531511660844416225985175757196930393356758276759020700176634362578934922575661555611812659346329628846760221468702904143115499960711979829695043194818702500779311939498158310115506540695381406002929662927860868996151172670362361045527252434249988020045133057245633148269849434576831388556922428289611962234084495723463491787576303638633545757128248829723797339831999096004261024408294098776549528656098619285715767100610134937022342289662095163637236639756212147425552735114090357014100034879589576978100575811517609091613916441216664323874549994424077052998766635678281897277885424006420292451914815565628773985545392425605673154136722436283618966412956466314764969619726090967185864608537363100917492994436104829930144804614594683182120104471033988124729268827119562459891556588425672699340633347056706236805029622394146593353624257798320915000863334933982161686584760681498005416556987728559309674980801041442282185440249797491758537808562171982248101915914081694089542574148982383772032494853399586821724326829209135588684439560642148843600944219143629401472167906925271300698697418345128944612756025281637043908671208676164653895241915237679361968166791853137028875942342684450033118348360556158836467274980966216904038285092754195937487482506986619033961324273924341372768848511157317860094374550492322667633635340229647926389530036935448269886993994554340498203488585071682342931438558605781459303695891130297794038892578367774603913159002945405184923424811369403213528050509063015340661862986849980185691881936749992680739934978740549838030473743087216771624322340041624178759597177366536248743107183077374529312532692634157943000565468294214741435067103312129668445294505999328169333896589076085958036377106409648786892260625505466422240341058358124233055169985040808246143470994968637439650187646146931885046663160771947135160266393059799030141192056959707500987188805028188217709060721563625354343191729220153027393396676404233499957480114591209560200358083227284466588603073065284826054415782527394528018431797559930364858702894972772000110414622248644161340707386086624861156006911475312763356307377799209829840015480197184930470031533044747964413497959828278313402259541246534481494054911805246675455366249376050545514630639495460520797264437762881957053199466823399269727474549159963365832030732500217923453328181524391043220186854322935225955843225328889398067997013325265852829672615189840753269003930737533003471217606315877130890694705053601814149656396799725528455222469317755505397469360087265796273462034454447252411247478924116533799838552790397347512308284145631291876772880020912697396862084040365317357301771130456428778819180076183026330467324276110619983201121937232151752383427925812793130692602853917740985458809678961393785376216933637985991007734856520150995613390525136073790734836491847937550276076207213054348359393132758047214102557484559910441713221926868041709891620026452788053915575241630483290647702106988168668187263113988859713925477732023073796472153600935614791606245410466675396539304939104889177204670857153970830314110549419510580903641999394748956923943694402679812235632030502909913872633170862915328394926795298903232122533440090130579980288911055264343646613351789836194732189059365570063353906971478595539738443131228681596571862787113449677034952838897278920613932008502315760577797402461824351628045064868635106276690482488195339733072048187309142022896342137309567313728026747790529960227882868625837569547930628257005759962924192303458163452038774526217292540703609742711858836172209931372708747252828799885088860934525320597220772026857234312724195089018549370004255095133052842198719489297074138186027229541398386031704528990793995032623943187334276732064696366923636579399247026086889581737992076712519030685516146968763617727447698145097067840023373747423871526785345767574532505773571171768375963131332890910514317830527871300174445419014080352589347884792536882229292205297894609009857786029983430112087458616265235919427716908713295521756286115186647136647412849831814906118496473781633041186710893515887058110735102287419350278529681118929682183764304123478245301818106499399597371096725458483333818594119727087709190310725512925117730429872635284105616125804149622862326748260720108363574267283138294641788321072551129060834626786861818704301865351545369585308083317124838832358616674934942854029019809594350616455020441179600483153258205832393469008378051130353514484190573814829276350303078336930281792276919532487327071005382416491586431473164405915401418066483524411306482543499535983107864128343143671699880229818991718977858972229839845763281164388242687501892690706711372341213510330547189557275141549886180376289802750651159238019227979603842562199986114596250379371905739513372009744554095914331259551647357691673042582576094379411979519158110328053066906563139190161256010834728586163407682021865358107325048164355707149056019710706243751153892085336613520915992594320799873150462208934667947835588925920689392875346908948616494551744591796281831478742864021604245311050940418599636871077204792448762965383643217227334719949310727639812946529522119587282037048347438718102314921080684501885800268040712949838151237348598133801241971738166530173532580571979752142870024033252657901189859202580495452155235878799381636521801574385156655946833566328080967709284909298857048161750996947336618892194284346253143355211472258979741003236766284804335309185133671981902430479946288052465466347182358214471434275499641339913007758740131179327745003708205339098530708206643306376516982447127214699003830680264673992246226663328342093624869877456150359876292750321084986379901970633170845191550792509929125721947846989977152294133077696283738376417694454037912083640687809245845331521736905111001216420640000691928967027899999138575713929085637383378707701973603019479361189639070964101765448284050370604528917995163230293173204461533945758362895182820492795841928491712051128257106958718730236573173255141457610486025122295624912635074045767415881145129636316028377378465716153844166982507777193386221475676509644219031997523493502873763752800714265125889091241608119505418254157444914641628559663489438709746918086442122553734674423083525096300318628727371732297998752742030140269419822773799057458514591030121142311555510350052992166319147337014744442437067531051286890886338099002517139808105435295176515264936232812794181660665007970878579656233629919245551231284089948636267637168235278905370583982391451277111615960793119891137306033829913872663742134490888898384973565490582638318198520070650389421901869866022893504253867345572925906047930429537358658153261854241003616180161493821932682670039523054331269421123434054236679417765827263875951169088754222544542648764991599019228189598031260779270171939030659815326987786809100253579363275901897361589557867747956521773131653560617998563812548964014124665213918943399960076771845657245194272829161575242266269332553412793774764358166477645452402925720530072730168885619057041724918817313630925876741287527571514741409367867532158269497793641698367385956215077984092926710312210407249430303720435126545942703971064000343742193199978814503694284271134078300420789047624901383268291104652358091082535380158569215743345384554547002024512050512119921538140631082782461687189795412815167831982556210113719318045222306169899287955513295429251929871497823341665331316566385298190624845395500697847260386528495813371104529685709899295520429774539480874747903676381514512203928624366616402900448409237769713364434826568874992173022564473970979882869140402298567067205069967221256961554848663239395646718475267125937580541231468951632423726354445832782564241869118342572917869272550957412883290732330679471354018901609190939084303808651889913988061416973463503675097276236909856813261582183626189190756763120321891266708626932629831524246322128260339781638149659847601129766343686530765371488687778015868857493539053991536657705994313547627743932248486929989665586305055013251974266131688340319516568035697972585899290470650289951249420189899662266654686006769705526180098772829433987720006678540139566551924418131589351105599527571710115874500661165181947786383555978459524912618878505902532465968368536942706583879477115146004753082097786768261305101910381153122857718684713293377710899103695559118961716452797965099649695777870345618279494276626731466287775743156150141787261127130500888320006375901039792843641478719049162242281769064044780403249500772033920172040752392692788496452497259108220236568269592504494848029503894190181987574993013324688184748606888932632330595026071309084876653138007708233670763863803632697830204604861780094063790934709624930445215202476896927337514470890832150502197213108197966050237950649007649718371410328119799756098959790713716883371527542446583896839445640351769359267524651088166788148874162133941211020783774022698484809498995605036361259108280874561994696321979842738904822343657159406418549946475723471416180948562797107948549029906478236478055414282601529865022967578152176703409189283740904194648677811660048762383198613818141907090658313232323575366575769918256266089451128147473962377575602642742395232095288203742044831573563332849045705275361455341924412846212197568071704188300850644979163176253942243505467020437504321492730264327810043904651583554984114413773967001795049623993160113092530614924754969330345915277961733510529296916730741009699837453586914248675157136600475465175039208241399282842241510965402297265926292285855034038091986305960467927256371292654217911016446582129522695272631413081502098277037618618772285311767245999655960269983249290889961569732552236156558687302570016735945885391143995873861129874587920164397910624434480367615708495203648532855251070232261651001623355188901530480415513834521262559634099445086300825718582342972300894215483367708176203796237789409108221468459767101555234956496032450080380276809033922172918468228885094263738764648449188813680020104187510715798119112782592346173286979095714188798648886840443544841983826516096031535454323463435485644298559450792322806475243004995274292033910870433467806394537186492288344954817949861734072497582602373872860413201453646435839773239229462824948547028223899422357059921062020077489838298003462132608236133542610680321471660728014241106318020091526705864380339051285999170106197816303780405007500952590373359247382071644707974848929040868665088511552272874253409992514804667119089782832190540964470137368860032263472531411827778130162627679620247095655020960525921789777309346890593437252093767316251520009357669099384345172756160527635343769603323121280376902556325601335621113111179825696330955512574431881000338553895860334106551495352454152418158511164266029097818409118730494179787817993331050101916274936993009436316413664327162245316732414167000283920878213455214277504744838840765358658793780934580202161253436440876432894114520583690494017196168485410124055833521844206979074911793728864063080235785117831800461775780424182588698089641794560832738981094151879834298652360092571507084240766960141972870932624922405831295287547089172226700305712372389873519094748013126019895373132950459060231539090695325493396688085173191340486868815252839917139666442247904949113100405797177066866922263001134696022303532847333317607925922205139482403950873677230309642288895129578870577109675864174769191082818199390659569033149313231708342825712307728616975272914420924866136523206868002341853062785660246170210230746104966566556565738569449401030017002543326548358532113123085729219804336833961319681301662022490741255843673698439576042465899310788349579679729246660917940710562433263676503805501527744248661519535421981154435376936678675499734993370428226930724227628667363845366862556225949897812918340481229945529979069873034179231351304673655964908342472219659966287842198322522329039969739615867006247335187067179412212329996570453669339915718450384915645110384251854972477491450028146310302383945173972035150422900739191336800328778877222704518922907707424198207799145456662428509263655152575753790665616969495617121855526543844051507129802363145490938494067426328446163002854183724344999410122838884351619735697638394605349012333134464377720324801078823767092810360270766847572967224388742441714438319542226355815710023821224759281074443801911161214287427290372218685260217404551282083463460022401117305325486560357730954290207283760137889901314987918649955703756378627174965514134062726017138853593707130318277811413240334761334577185954488909391474511024660514840592557706608854351453633734388521072878264410270977370061351762084222177788607681203120230932290989961684741055076880067858501415276744046725248813852536431328258554014839874788541585718122196353418507459972625781955388231344298613026230749426563986785844269520070524800345716426675838624231581492447478706633189347007563736911803024809151445988810133834621116592073634712141353782373567167079970694120585277159688330561941513024323591317291248926554993804125016684813960255993216683964131137519928346941107835246885630494868406779922960095279945246946083230141273251137869731009765285058110588191197579996024643354510470161606330810416953732758328710037275323827413326383389550722609560929362718794710125876100272148531922456042910118391351851834156421382262189174552999900682563144522275393486331733986800661313626233953454190878848385290799602279332149394544095177629280342371033851309116988415656336960440715731257478310483709386381821909499693062159359365180740726860362373881230737265478827052590861943651987847613385498066151496187678308491230022771326996015440043005646872326875111022219037793475410738856394410498858291456138740784411348205661102564380015776961766794361104205694166581137085694963298880568502009391713579102484207833925933278989377851711132530161157261891316035016233759460069901757531850673499108109882605840391802093206266698166141390615598719470485601745875333076474636657978516892313907188940595612847422310691054608108816672146067395122597772595942398646551744817452938460669338726225280761680690461694612668953100687370714687509571433829269829435090118748920302964420324609144679454895044605126870405023610158054997723019144421947544657151027092715384337585460051746523526866922326015620738662262742673446554638884846971019929035319140701931640324125297488331543617576987550426102051158314056718925062863413464641991853037535482099456818492786861223794989210857598091462738117022673686857731753243311954992544888215513251179559349425314397393055180104884838832627497125867653771235692356406151056089341458787986574681362528818296367988557673647312544288477336089064522905778374753102130977609166934091438469111340703844281071009012584830634004019202263444316692639192689003726962539064435751266229496128326039222034713327494701111667220865738849269195460587547154143390939750668268825969791501985388443511867106723564115672675309565598707809342549646813011898994815278206548109553002858776480646830395276335558725849600730800888197747517419044552944509927993944856444041007802612529881603372258790416901521997295593709723367970496577892374556005333318858703347816159884790307372861820409700483680106363787810821099633105642121620861567355853786488983977902318744589915315693631172024476620577329411607176828121614645344233201151405709504519145474398253935055739673373287824819654553540352564434070928516824593467236077854321990808102590266380386922434187796832829100538258934131051635017688375616161320068009370764865700824303604934177990578833261512347251583258350239436915993532265615250422439538383586080751141150847646769017979487617591904624010492414877549049794069481512372669227832307050161546614946454742367178596013436017556633713181865262577584200951516028223678322598045758748158097083298278073537754173681012762991859662255398129183702720540923334091284599829604576571035750777076515435040348256783162662786674433951690912173148120581448419399608203591605385965299874640291017453679283298546860542604249841635659546473740094679763234646060556940359844429190846450345767733046768946590800099946341471450799276785353427204408829969179720430154115790483051854682776892608010088604327056291905355045503190487780647806325601776440740288808209352987879203758764446968433162371676170512311462427852258285894192093686769131780677173217421493339953663795042659629126630068639003248801715963843610770895446593151993510367798242305249588960020980484144146697236180167254629175632471140507342942518250787143399457758315307394569446990368354721808140986440036322886715830335642245781427862700976292227966031617135891013836009936577656034914696311405808235596449250349759385148747135580933054582854984365750885594067699750973278901032370328240902629828146119987305284327305611146291321677140076852101226136576936299098326177660815915623043032246687296011137353444048398100321890081431042262517879662764650307093196808069749570203255489860566148759915854005687784180109505613816174730150340055415470522045879235990546404987245711903241918162998121136962152078956622469349514719316633938023668387349557970704347018151768161167475664522783325189172309244708205917633414093861580335903395515949178245772085055355903920582121876142645307117027882473658683806999258502747793837802553026265908195916342472832244491879718078499660413137714935320846146691773589303874722805901131352419586291733068340771201253739767063966783905157403204753256771021254973154009632270419395282070633939063362808828530225375018952303340036554980267842925678205670517957836301192374789675508046806216500742216172332066712450481520326510746382159188673110977171687113567531494605670729250691402185689771482914709319592596656174490872088589774760049136621919003328253408135077635491878187927345434647174560213961934963957750064993092216044905401510957111230256299348306871498210654821840609999345866875345838137009799848745457825852220427295615551286499739478901294466041876693148009418403674428360556682291383851022204829006163277945192884329701575212949809039634043967470128806383973052071644200527725838978651983222002300347651475957923761147103319188283755597268599978436555576022353723646123700298612994605588402821348074082965753278951252421473156006990234373328447871179638545981710338206022920256193284011308090650144385051918898038712326320167407073145227145943579114654916571525974109815580708596797767859220860044995128849590507663159642411891665217663194036746526763079619207373070667769925283737259304084637254408906006485216177884112745312428776257190286202651869587323307378608396926439018887484163983534810634002939424406015104689570011202748059133891608425990808755044268873313468151589572545426748571617338314580117938959280619879378839488670191019279967383717382749641745353369568889115661336727759166351015407048140482198742552950334672483516390389302771898962441296425908943866239656630077883227834025014218501664964330753397612329893200720071522761142080355502129625097385694926041445532025368009498165696711452364927131562976294089581453847624764666047976735660890470518011262208027631292636273527378795243942658212307059451441047002922206140038209843156851180312500256478431977974594699654200414888988872545342648936606123524155919687350853197647769552128576030330292080617844395964403720536466748555038838725082656080099248897687613510020317618810500174869818640681810674327612499697676884792260572580372220446154238692990990940578925610750434765201517474920416877768389405648134901926885101744107967844311135294499264800135928536371041068678100394073452883958736531235111033719378007876826096337921620690532802620652764553527013749849937892599016068631957872555829328770144473117239839479740671662885911980755590548826887234615180119305543665613840950672336161946556825440627844218838622371900363629087184126974809439753757995577084068399343606051989918250651767174986383547191947955523556421946122935761481942081684343609693489494097955581348143195071323051033284421294310286716765827212240620704665420001294579965613910536872554847240086776073561217590142779890481043763576504842256206923673782132274995981928745806496984280461144683470143337708583269267354828642962453017972012121498754509496315854293249612983895728416413771466256404631226276249651393110354483607691694835059223355541574134414335933507643250904343792395437200832918627117190035340360279169940917625119655890960189624676698592317941868808967314462791465432885291226988779287618849827495967672704515421414970497252692133433957159005572662634888757131166734215349282213872519935358140089676397597626825900316676000801156879722530084542262926380141904742000366029989168187161230890828736094000969918800903819611643221340905020493544110325453895039335116329422556644764033150163412554723920395657525641409924517915618845851891672572455269884238516382892309067168439456863877742877902947346302025267456966915512044265862031099036359167915894697742989995782758845107048345256397456420467830007719100579288205880700389726994210001982191336648799942176428717793705063731688819538490616877059971648931914956169897934883975632695444673145658306554113015511846450705023229887366809222122953028464468779007890134172026841019079427835473133078797589833777111143002808301975504422949065949674031323298826175531816500057380840000590522360644754533041494644776615242300338332859174188075967388781178533079839079748377364225016742787435807355753611376541212302846559496272407200511205611479350673576528455419298968511707285616517036803761222352888238054566073900109570631659904494840318535293862816716962832050078642270407923862418645538151400664734067139112342477482072201630895024066572017110465010821143617087606450496582911645436619505729124300287289549517739492121418348168337910564806890434361710751139175958293650864821258732855398442619961066641545221299638937004343237107833839217111597686371012744085234698162968747141735339253022221279224683995063665467371563188129815325289686272109738164009493472633161920706402661836241624445106880983763499220750455435422194664591224005654503397038443838383687109376411522946249891644286941201122503243111741698750145057209871963294856206354984189752259224898966886728699153207002413890469954223553053118021492139168240342382498988806936604600954008445505377135668010197792109501606564434469947086303383272369133226404450846337782949836555002598696569865906483906358340376686769297572698233898218822967543662470141990158584255962146566162341210897302300290897332191567567498435067424202054151719217487767998099713850205558697077541176372275964931658017463189238448715606185326106538808201624333332217920362262263390476369320047205200751454105601341778306475865183345394401877638710832711343884966879116870271679357898467369167145529265289608110050536466613059462491378282211575744431528980856440416823773445516095432408758982164410904530117029022462435377333009760532163102489259995828696935519565624596540004165409773136038472411345710733807264577346740610951054669077601295398626540231161517080854903995483793398489422140978632662064013360550203450139981689571128190749222374517893903610648760651026658042071227360114441548102031638926645011238259494290532177326827517587895569762641310209582595857608827171990589726508647825685297245320753988287371520051810431634760509929912818224766529316161775053445542812157432882587682812023271591891185461767174259478945027322986304117440085603405835624051826749815571005606837752992069907602682209770724271401704850836374989155065885007603615321586141738493630995838556194155193086648552177272189549782271230722451357160169846014863839743397972657129968069895943774477932471142127722583533948604528793047607487117670261900318625498246440499707592428756229415734626808616622870551687108889478260856705819747398482764610668761187764769001552101796251373158639328627873081514077721042074209646308664366983999670616371634721081154117702300681866363745620428286639800303441544092380708978565017442516059644951270915102451729912708468507923540386712617560227001828653790560100500470647224488564049620266166163396480236743611536772830130589245262101827200727186399859775379765697015667715617940887860278502536596077269730615866049148608241168043691236742242785365215231191696772766063628734225526213233538608591385810341993014598211797244101905146694842346952576185318297042865054978115206295580038387158374504365755751902813367955838342986949040633065593719097215421522285348568558198222440533200957758629168739279602845864452976826485552623420395101928838225612041434535339956593530330542295892836629087977018237258856017469005263312601416872119777378576801349871146187528377291104112234875805245940851774259205996873444365499889654916757808822517325373607960755784369385945973782030882821552852380890421593987700031179141346174821438967728490260956355729455831683720723864883013488272682491350583518153206540873850972059766008382364916985123558574415258381828869948778995128482442024959529873336778151977579621527242151494726358347651524606233635571300749358927302811195582492162762405832500120819178982479682078300838469015680111564407865844924800225063260868594879052794197958301402845083205056499529230436116921442761031738422151640037679965976963995424564322499969894551892287802085576295073770658207060932877479956860971891904490436150381264416350294408970781760987447698566990976600772780182542504599504246505954506841813205574282041043802554088022785525326934648270743608212942879683608847812734327425225069755003779722136944212830863060482924629616315406802567599010742361134033563185000193030835707064222171944133487543103686623049112530367267871948781171818100203062619831169019963536329198462224947950137098428154712279262645199047887198646275383644509244116093657526808256148008986034032589959630838333210644540284887889160599867550731474272125865880146040501728820119115911899724937951831698781116886719516165440664022148061490634673075770052975039882232773617378204893282599946725242280672255368203979314349194083113489529001869159526985934979304026596229354123318149672579389389436917022681806676311607386894676387506466546821028206395236761989274844701722773154466901464909386039316144833294157427569703970443552394217094082955056143675136249468244576606364381120325400074786781607516120829806598007159508798701821747853485664839351996518551458305960239476991103595706131464887292599535347990176746836120378819261534954674073007074310100788332237276664957154009828289237492284493341331428219865226176056828408090285771735501293954417652857342944593346652745557267887766994467914531578080171739813725131348738614837777240317292606821065559308982395642769204011290489903399214090816016950467082354662241610296204033933020456776953791239402133029255351525820293716066432103527618123288746491555340127463739981756235709982437879150680723668332344954441477749478013635977683694763391333872694385642712665117465572973022265366629586723762305752491154514747789437032320769764423478152276660965774506448969058928449331612410557399950116298526372287836888339570956155597683963133044597290336154000677586911518733851578937514691443845676609334111398286637687327901516908690259234662396954706788998120996176925375927933388917780921499025439013969529791313619104316345926194225260486354536903070338696312814668858882395025916218952888800667773366050396679368316366672073117287940937302974505015499734433728928037878916442124693711291349285001258539657576192913704548956138797269861045866253604090831323352459196472643868646795004188120245486422646770545653697816280466941444210329202965757912296907530078393727304241020651819789181939781952328185557124223333146815926711010210224095143273987658027156642540441493414386271218319849579414211996869031110836332320601005714061575138968837333587514373677829325382778121447167574268863302267596142938572183934894757216362451312182095381775869171730268568453323304580224186974248024524460360219479226516291550974265165803442196443203635241121846582880633058992499808156948810950069123521684126309660662508153112928414378873058802512788870769562244157108761507686221499024992555950722284190564873045651292310438240633266116759648940515253328485573811213148684848413130445686059859867296799451499533220301397149015911987283591921540065425668764784658059776066264442059840348769550678610888505796017056813460615241660782822808555582217842566581123755605119077117556769180148281605149237905681358197572405928474010174723123703769148468971821302769039422539577400703110712789985949022940069396924056055672829056476089692863251008782866883741306557496167123101844044694093269935958005681903005641321442526575798109321635510609296542352105077419141349802052047879773725295814253721750131999444394154567974014740217752031918419655210357929801656592542859459886161895946640569658552212749523260321121993869968979124389853246216165180110047757866207025025969704877535479244506231197335031073402110119944443684367657691779480352668663579056678179487303086700799658900661553729963189710286369019822957188139983197974270870079025735530041294625171163368595145250612446120328375118213086903196807676931497671139619847912349019733800418417823582188228502212633542954167570610787647939582097913470201972215956951493810986108960971653147251978246524152455341679599978067769971188882633631920278615573879505374388002581499448216011068833854281509882267346465486222716549390822447521098897290478851907632970720891537314629491926771081969920274371609394818652903628032526982662284885872522561199486280339769916617642277010885087538587924378265453875008961053531122259771048833436206622219411172287511167593678584805592754642362231807206347962341875755905848070787737895209220702673998018849314742710809529272138821108598290428062268953110448514295421116214217162003379032656739780831184425549904796317089697943030904672144924130695277201776498545401073835026913463788371605287827866626992501378063650910417426281856551062214085572457162159237560590572533466521034407297309890065098040465413916020074764687890106396186124128074937775063586336012787390657734540963660175230192051928977536085101609789560098320385852311221245695445873494134221850121212384317932118522374053928829075993755493336490934839428904996781123552201292452204564760468092221077790552789929321624003001051494350883351759331024184071050007361582563629709720619803725759671490683905658255765125609736209314570955313701644461661941889067686964878981164584015551041103542501326052249128079016715500558373990732250030468033228715715178207892292934949980311796309624640956921938618785383588860412855059235290774024322818216783496925883429249374818578555487678457269248365603493839352401081342420466370002756009502693887352257935262588014859768950512790736044091288522850567720430784819171111112496805589566908483231704931635775788815762902173674904580087478399686700781742890641466545791726168425864953954537947895510460409850361182657557967787194417222121021428964130069990032155518429240673542423830396779413356908993901404112988074879792796098204744489874964970010984530727977513582816408364104311315759788827421983057302785451503862862144798245159783717183354181634962627299061313393801355114191740884538237833304612771419360662400746546635797545028485092977485297849595483119651673941815496902325628711084642506784645824383074629828196715529832152030115575553582778714618229243598393235830169043728775183092107101841705997421334626949248671140581543126049589526126581614098604274125578430348258860818457255415755011696494728410425790900386443168304813728950141095463916365014565516573538214068319116049673187450821567969203302386921960883983705759543213111744759716172327852181312333192218576361498913818021333641147493206559124363479821821530702957238206430199515015488429501649057770044334542051083240924519018823020947148190031969560245666294125936418034930429630735853442524621676883607763925300995610015391270010140761511860758907706438092566574902635860437888099155015120427303456852204296411124627115510441751802195431731180072247269600400445319029661983553517897290296410420888926879562115344852165440791854086901271597675982116747436261859277785386480943302168235627849185180995847692049201906789826732851219248580479504552527265951505762471437810174558448037633834034224832159588650440325504269013054190505184393945257752663259409078122026068630138927949977460970290972395095732672259622543525410225160487587565025215350135215239421795421436869233780506805809622722914515564293678019865114741923686820992365132763147199732165760495902771385563370496830717600806594277604783513276600202846205447042668947528436908783629070293158864362325930376622903745517231914756081202298622957241303960030703785177886916456703500173965727705324810479284374556794616544850850581439589617654643422908081646223022213600336533422493278051820889130256838227865695612501767829790712330850246973627845809005808799843472975642103397971367996352275420070833484296502970395321150999650500816316747927380477978837201400849366421599897066153662344185436899991728954431209312046721970791543328676333194301117006889775598331967498487109736658454543176690520565456008510809140432556260169074653178353681212776164852004771557764804116521998526704879114677800058206890350464759611612251554735767543387721246718083239338515899412156272271452668125657329865418096986409785558353241178907220809491255461866126777188659124876322144687696206165183185803897757215959353917197114137032893421828837793098079381863763869044797928498367922492037403147794172267131766963522245348017975498742830255386786010068917588016251061707795342395490633569741578804979624834919601623349623943752680365893972482648830342401889892514542003515951643167635782712419740761927776524822324251344069247804122536965570478257917478569605060669351679701576638485657965609263624806687746992359289237677528718473478320824006552423589304647167228727848227573465977249723944054698174911895474281548062613319225430042164648102899073398908499425387324201557828697697254133847621297388487650499171753647706756371247185114801312221560800865840627809966890776722082729940284115190010826571315686482339336964519863273977544204759277152490160257528192638790676385967596084143812917385292730016247974908555892541003239080610762449605836136486264697050769859521891121664622913615367002644336062779197863137360544277253049525226766912524547824844011664387431222369682175129405194263164487235224164014580492128205753172814607726635889317190745933605957672932361206430017598618928365032928699037244043871278475884730545107908862884360956524285124814432283913977706922704241618976839653569981925038936584350010882832831071592418735068462522590460457507781965322374560829541806382094014940521095223936356169871144700127884878372202426963359483537096718730407331418670390797777567583809168254495744274316954794767678044560372518844036608209739902634859177916161370845303420590481568849310844472896887653785540536528385911116925948164343155215751821280685651675317220842068645110761492288063843695844253755044420301955483951858260043021775795726748570725867319087679165332324571399536167224111037693136145087780706430991228042694685814363361269242933525520705581486798327878024610934151147229102879642708777868240284425366250522268670223658192178220817439432244504156431618735573918870228781814772249618885843125082826505417123510206636185269442195400737893016715639405936020904051047208894909847633808742940819393418249887040498454021705204605710080713322093990730337040051368680279431277059787361861378841255148751651654647201651099332054689523109749754404935295392974487292311163545178228459497845438409678784548917273244221935580698680537080726310334685301787602139598233514838174414544023663345663882415632230861876930445466355998747095088885264054933648477120993837364760396734829758223748956471920856264422489301230109786052744077426908501160250750982531129388751661250299366848215324477597701871043556609331847057132752363047774960896003506730079753119748671386526303289784887005195284126618832623064089754369531614346880241308424623328677515050435550152562411481844896680801370168660191612111054178486190402283800686581135405319890486699587244614104513108025522070838428622896716568415019224887993348370543727674287425215708150429168003398355012748407591022845545649434776176020575244556555966064612380440588095848532298391721777124208163260107731890498706982829190810146523909137171042909729872366424056068748869444157628624629569008805589957191126562596260835452985859515119951699325194696683514863722003585410802913003366728990376433127829567517326076706023988008078671046730594085579817703223917319882436410868070102185641155282247971830675522323329360392313775496546451529407904703048797342774542610505161224306469388180107843447061006925961242444569349950801111948216668109081144425660765041694892639440255521481016571985272393129160942600044583516230738748558316886846238107229187517100565648318335322814291869180886274106188164772120700596556425477315486877836971946449461728580462318717598834851164341501255251864280061856417063353297527781704519635295020358566468597036344168661058932448588303238347155674732306273974419126595951388257231391602982836305897931146382390997000527522218420352932701815954291972645555058565625956368303177770663842381109528386419161733381990622138868361317115559029600125349009239240352598591263925181097104238451582892307863591726052907489749152442810419333957712675898138834120772969238699251673479184958963374430109916263025667258591900865492681251409266136968688508614941964373253772482458075294844577050624620301004836383512194147644534073006712486574798736336429023130305359046924117907406593806465872868419872858179300696884572054527066200485002509226565492931843761403480527165810688502343224324194676612491718498749025856083809607726669078424480248001996370672988493851274781501837423946248425367266906931944417323965863896944748985820135347880552904433915454614101108255641532458424628436908088394460403606723809602570830841786882538567543828425342419322443901607047762357414491649003982479994547169912127143605838081228703508559042163433015994246869068580855543095143454896785812683300068546158297951742837309625660181398381216813738428512777576330233152538594201520378953258742172333143385344229307193830754066833606075789935232965762370275560378068997551728448708175784462367844749990729917564534975609151579331518770233834905897488873020443425790086676501936993927391845906982284134704197688836909099063175316319125744760968855689507036897212108767265221205661412665086485957806573705295775833626608703918697781841789699765495915010286210959501039976983812436509450147182339351598800916954673866368862878512630532609024131328640925711246445954176652480192361411624921287281700475762449829283338581262182588022678490720866755595523087319666488248700884963627464052782408250878139907914641608361726727489940034339805053016320206034327555939700132036652673729595387665246257863454016071559012870552613402044656573150173399803897759575686756064884717884574807967309507408522103858559717974932485654650681665434828442198003855423604260304751024226291287910696629454784762201596944073538065678484193742736963307891591565157762957209188310394567323821317591824655033756560838862200174385673505241605223526972848770744869141640003591087730602996968068366374173276801471959643268082586715465539586243890186134378533939753176176334539793808762017409846950068929058153804460139962321822047083227036926505913175081955095103238975411996872981606066604332330133060746705904471122916125616938286638474254077612841539899003243711489989745321013625923354754511755846915596561365519960701086994496692715507808719723945726753097461238263955821333675790695345270356379333328118915110533178834158972646013045842618240078993777995470925976996636332290756734376084156854182708888968237583893899459780312739761441021194012063279916684959938683438584234293427109097558478501528081983030732399932684962884920016780260259495647019699862302576175445997140499575228621434810137673328791208585221846134674507165617188847225295245616220632582104933263026628186136787845616390887206291422152540891415991123353078626684163381276431060615779142243534162926958578034024757378944390305775448550910572575694590146626193825414526861098839789440136089800962677741411202134156297741769497675595841050221913890857738942918050669616527844598025648805929871861308529364500380985541297000636708719161784175442387238224412167229178454021215197636389255636153189449271134615384393202934490228168794040881979574239173958944389169657896621910085309763316843636746940868801558034731232121871374559723242415470727978424725544481071202225799580576632785945220877083229964481292491502761314282930281218411563032428527583399755834251886034003651600079005668831134722205971588431908705510805387107578758902177403457200419786616176491691578801304044774358817101390347837036318681068003486153832814509155547784509312148776877399367120215835673037793435263488943329462096406173778055458384509970380085336923097954166811061861335609663790114659082905034952659556805148167843931189492433670454934278374787387717942002774586531427190352801539405172994624909223377860793020397951306075000157700618276497499771834240903554838847272055740924394780228347941333472701436604958170832416479834012239871891176313547217159175894714860521357830528621434430367198719842418466206867273536037043878909141778625054585154173422364610834058123068039725750544454035732415492670959185224177097369485653799448219251399092359007652558061915830379575482161950505387160469047518903710626273430082866045894373560446670451279684285890685268789297313833947640625568263182776656443116658626305767336783585197086456221384690630197630767737044087080914509108803554516290293838469320946776920323042162053965857671959986958699260077962206480159321999154689209836395091484953803697956239690514145590309643290772210981866435480704498225395599077549211337883863965683711331449667887532988561027050590070753005062554051552635271105429142212940777821430183691015052967860342284134961849377436020341885030961221566635871981796964048522422270776052754020641211559486312224137390959430239763423198635059109701125535072180923713281562169849816566596691602687583985766097335884561696713667456052919472808113236500384353624997552895788594936042844308787810869283624063066796406597933688253312622139072116608460317768621158192284058826945655886520872947695625776161118122435297210965229753528273008086507532775410063027358887153573500181716267027824585068235387568648618921887832215408239848965529064093166852891811685217078572058667991788153623134540174281860845885137174391806593977575389952818624561429550034804438945728783890100717782155862909384271210664261797206682566157757036182940794271170503820674746911255592820751833327581109781153848276534237771057768881762712161413883837406549276152893046318518786714334644517431867192511443470367776422990800326084912097783974965718021673431740992918929824940622064779991940478548760381182343365943676068286405160100514346872485139787868657609602881850380037466285338524625495652063992482822118762581372103259478403417069966513872697484159018234658383581430023128976611372954320056211424713704767023874939900732739839663661802730157184373066875695066017341636494925582113350592988423773158112837728421128742475974645664828802878057932059406986108770542769535566004291365994713107356045892305799217989104454791681323440511524783143866872820473878653033190754667452804125301266271616439359596237688815588989362062423162816348365200432982163416433518145140936075039955307139409701970083340266929077723105283837289134876285728741068484007531446324146153322461542486417581535549677564234468926541459695769134522343075658726146853820240210605234119381265582534808367310599301673012234661003447775529827241234915581154856126520816303652872717032010970813845146286341737236732613729111379243309212997658220278335023313517685899428505813010967414901906698451394777301244629316263417433404708027040720212883844348973835290557301352094040571796481093750771832680699865164570176114356115251727992885965059546806946556163054281200299435091895175135018174519195244674593214262922484265848486279030663664256811987106035705175918827455933505782574582313128194123138332164325157304210614247441864419326943392446757535867983107444673581772209274388501281388262049267319147490708162300458023130250466919485738162009186695293871964898265954236513257410740225756394739740973240621495532726252166076362815523690708308735268980282355624741904395689837416988947984670270747848249282489329751774751669175924887825767142604336749317560675420776896998638571018352042559898734328692182272606627194952963896395480368708296294961427841616112131122444880320242139899944039181878156773636636445502983820213819352156073789921191846360834137123617396680818388061198573491848511673433452266423731907119831139557461974378029021490921102721061005176829110288468373569544020388347551330575119225892695454459167229589106997286384882309875803742626738397078348750194971743839075526123565695796508605113674885875230779210911599550809039367549991698457265436653959896727081430156379597916897587981146260783819935244814043993376093839737675690918863516606456009486533546279826403296121445259374535825026453503694996750153895529850545262457382758304718649396016538854057799148415090986837708017108441491811303578539914657913836109176189020678569002556450707024710987573215141877140744473501042217347765118945196051852281484742595808710262380233079523196375711818599531776690991857104533319018158935447847067674118052397478120304640163153482004713665995821081732539699324106166111441549764254492470209074418299574721190185483944434798011632999456709549102162596750017620826245466038313790594311286839792489899404426884265333771289489980511283371488943983699665793019814386194334684208624873947252866495587106418234361633154603967352409266056550119312813717995866396774608501790521762585435126557343844755199137930948649293452793159568540413912179176849297070830175851789906844517613107520555266310397949498306956642245456238598128755016168367710834570651287997344224569515827243366049210887736413929421505427948127708784175716795130966871815597699938818916657468639489163202053631584042304686434685584451703841691033205734871958659957807014226147485477740488491416966544815855683927837871196177790535541917864929113991334892318972939954738500665847439722008404549859816518481378867240604091525888240124437402850383334167774703704868256910356315252549669792719649919670372399902988578259459860082827233932140399490616551609628345654442800822776501068185688209349644363336855812191122849425398380960087543711764552479729300363656991551302525661362444036589926506808866855399527647935546562216242413059993233012576926943685756492392895270781386626309287387711702447738419162975178874743669802827027395667390367048038746437780207668590257185872614594410697661849480400387896247406011871060783157658303622025054441521900783972262963882499147182790055421983839359845603461991686378870445222440659619294919934360809167357299606727207331807592571203250556294429861415653607994455388654185323986760086038088930645636280643035377019314464239150387512648839589721140317211612480330083227518462233163217002844407451612714727250706382666838670850446439853956732036686004923215667855649626852541560481296747831015181096193556770243905529456512145929298370552715134972067353170754209465091055558475200460673973619079310960045029680131571570603306408563244331374197066334925226595124341010775303744964847366383705051412218058571974238285634614296444441759848996974212034290791474028226504872085548244755892389333503505982536196320496733765580864171645601718470660184334451889691388307575653444217904051950019636877205597932009496785473175845986682680551302982761411270656948498791908325505378919660914650905513650996802577604612754640174770041189487797883258880027729695793477185326056113217460384785723897055694484055317578546016026888812287329369558010383599534052682672872530845947482491357620078526821534731221065646975720194337320709808626352074411710504584524667310504303019897854127684415749899153152397200694507563566833972580194730021874048250565090305087247494883648062750564122487874469567905847733204161927765342914634551465077313767523147614053561283010673605308821668517631878937400590105520435410651628188738869885274758840863960562803191112278128703641780061524195202420613113443719596488832382384225339919416662819670422441517473218998473542460502966133797549115506746578468795249815764532576120635187790949629545522080743532902482936474800766114961510202577704725899540384433125796662577451606986686202544842161403378247593689457416928890258476943613868757826406118093089637935457487961214398022258216378052097692398023562017100274287601720348385863486730561669254933890577543975192783394708453897915332351163755228402878554273861089124361740383645427152645977219952208472775497934436449773432935389834409183764189844687251404475894085376687934818957877343953129959543396171776191233764119167661732839750134324330955736148192580549709607422132930268801545336596247751919424323877503462186238112258063387113002098599567158353223447121772535366191719049762039806426709319344557449317406000380153582928191212210686606987618019128557316205032211888484821132446333914240261196811697219994837750588606780949612144091705909290961363715963986153877642925312549401859752984505447507534994423626343288690968936790605316275042389892267153782133983040190406745710480123662253230315381251570925411783961180510911233631037069044203870376960317577404223787117809063768128814404830092111112899148417514705753793680970771891383935676685992035312430500004041976898915957452189636582892801722560572953076315959958725188699580662889072575313900759257535089776530955585268622078710391732385706874847765755893364548491698201091647148057246030163120443874910153405393595039488475387246640909782849556677114280969602729672328155123102754877457031999392195829634806864248549759723242064257748108801935094146265446705670692212023681690207954365612485360303049733396839911277538403344942096316988508406320766727388705555059262435604492631172233393651312362919385464272603500789182902836225673219151274316198064725053270725218097779414619957883045399076498028295495057371296096422784358654384519166349205669246472207937010427894311458788053764394083389070744636508657576004803442628632974854284055203747706336650339942934771413785448971155625119494324680181087325910511875866751458983354001667943994182148171702289423199063935006894139735930017198369551404956861158327714075295205208694084756756967804960551669373703590352630318738436101323128923555793635883563761942962366611163553467542122503691322158854312260669648873510025095768911213659802024564706964798094705581472072676507845409719962564182224106729294635458633519459222588649066243591634662652654974921942903348252421560935533276141320233321043671870670647348644324057160035048183616084477270283614915687689099943586402981929959112260732594555362656858301404035887081815131256706036671962510364831861689455148269579591997151754480585927171040484628579056617605590652921762581654419311023722229131218994743253787390449418877684994547437970262205369297097000032941351725384844460779803987113994436956559159788019368184038325596326709467140558230929771395851385440870217499341784945492786711372597372775850359610508511006769745705772831854683627194223606539301238445251659816340222326787795551120487051256567398847080756358475215227992895475041818682515747869456024024824525308957217318339275941487268058783819044748290213014220428216111219057651377705468919994773920001783198054226712874954571866577465300678607726998433616373258625750167200730212393010498605159230530877612336653458255946404758769054410274762946637344529832393592520571717609884610417580551485252058278285325897198997525541561215004974209444460469449487916982368548612366286140376136679705574982743787447163006320643447242097792953836492311158119799748973678027260265694953518676973795205985137220288456753324401452449183640291017589219551115892828235428544816633468457315548651255171093610602742811584091973897453966845423961881519623561953361292221686532584197527734790817575453359577395961379338946328167198745318650691245912059886030025688784586272878613257559792913507842624505283455582003629421262726322516795778900322706659872014339365468753397291094374493764033152696871679348769722648625831421454625403342398889114036839752608146946575294465365560426756215337743393056289582038424659032175288729565155997548182330224926266868899103283059215095185909955999837185808032221348489163700944534379421324385089425198332680669566085500580469983681577024393819486557391441989441578191965673745476610328548933296541305840710093993866952367507437502051788583450609290059055656627086043661874137405419620620362277363700114992374912780690535616818310743680432993998065392872032442495031781022873868240044721416257906957301939647160914446465569329132844838090616357442806834554745692824533408298516036421460222051630519694020653226862945027386259208926843811259255776711565702094225575792130757430378077850187615343034422787813138497773812511007188400177829671287677276757753059769167552043769103744457414737883982937775594178572845309260790324606934430440973865620717061789342132337735998439140365028495803080262231768475338070908067307123680522713438415026200073505456222611787285963113770753227212373722331135652652720219905451977695921152874942021186769961294979789629942317392415789896879978664672338511500515222837719072998362779213386421159473264012995725906612861793773315196744350315733583397302397189448267043381259441445559968837584836712657699402975958554020593765833751483134600366803150910718503142436581238544013245514953497763543781556614494572607541646890682418974201365775474520689032582172144122575275884828296638133748843198055062889968635286096201877512411043675265113017292429497341584307996778361501934935086899812753577687993251402737414430777500549971568036533430607217260197009080372626479481668061794031744023239212390671234294477703573875470538888209079744020341551087425833313862821256171779408749223833990302293657987144011852153758855747074670880856463492043203805466445697566229628683676007306698062632523389061301120533636310271303780855576399181071426582241360258109712286684630042601064049133129794254652414354558480400274218054600060375190944194342607983272466184898474440896951418123945076054885988920618143700948106887575601251800922242380740259773717333852927534647788412044521070792524836802051757492113628110920765306142916259250024458178903599347870322049038975843764064867363698138657113357916895823601783605602841732994020504815643441582083597961557815126707852532858724837178219057589628925124093358186094608278188042995766880311199296857951407526250375635788659283908885844420887772929028546847108084017194500182743284674696781972801464990763068716042131719624460034122646029199815443841570061014002490067621528330270155536299208636442372475031967692122186312421118178524387176068175748857900990797567024911495685154115702478825051975886180025160055268354522426298108064313858856617279532818307706937157230370106118040133997530828731258550088082148692093279501922785896537110582013516814485146808950910436800344753754359569205207321116736117559359675936361294038338768381459796287151250905338237640125154118748148832724248316011628085439196267986749195418773494674178098112753250319122369179773270155851819855499659998058152838490024986569337369672955417928393021958018517988171451836189105869069197594315127043994326313913841601415671280188981487209426134102931663922023567628719301083954094788428525512396939765194715957807681848505316836072308156977139347865326245736755665551460881657657431750942731390524873384954537631544595774085757235715403595377351974935927121418715751433136819469218373496864846483697384578641417057148100965803834460553884578644127998267319593558981564807593407570989479219652889601148679023727621806536068107404837515531781261360357623867439388602519875458390035400215352120081861526364624387190241058578965598905868675819223401175253024869372659706428902309554869583266938009200822819057417820197538655647143246904431867820869329588686868063760100438768064397442129390678246600093559570826976107602278831879280689575538238590799762667289395673603959491774077594855422743661350396284816457697805022473695395171419235709506141511689710972213322461711469123039751333703067948608102293549142164891137611170701452776979344985865298056149878237554103123204778653063243828732792193339968419742582852767930991550888775686594087713378273219214521432706463377594955660804799092379128767982035769666700932739182670434768637974525122318663373933851288040617156752287851418173873546315236164918122251445819301429721877945016880488657676210516555977730895542800507961246349122673209833182896297678272169068663622754476531967725011189621119247521676671154106019343882493447538672078151430768728873394929694560949432304050941921177760817978633877880315778146038967757715778577128342927996138384521311640755717336987848340427175611943009602815722138952709656437532622011443995934238419286835194061496650702918431882559919803678027801334208649253658639002141258415277565224464976956980244203618876740736900883084061672304515434393769838677346893232273249080665998862558886772508576355122541499719478361016265743322736031535811225417299203687808081705347091220064399865858880565717722782315950889651361286676728712487479598734390260419919487020454395215871340199183063308026193622322342992721433429140661763781996332681004094045115125040059654321488467645250443945900660147003280653028189338622274066659627928221512141241002997182083664028966072621480244419729125217236966275274761406105679839115780220407891776594488844842330955121287641108861517272266368329029915004963204359668900815167885059869922604437286241719079914620510464753845524098285229647537305190376916083756077360011136873950806332309031355717654971891507762971620357537903104502396424741501613384966950261757233269234133278600758464742619510818941854342028123916138245131408484113105989086655488869583743424255266768426353986796403488464860489615487096049980305967989977245617290580967160249782938396258382519788926323818396149475574752513393974784815588394598033801252312366132223766541759391778939354365313778233544144399252707309128798217856827931999171758801908636431112741307919927404400719808714989913380870308189878501075249726113986326235379342103396426553185335822853078757550511707867622536123659879437274331989661101704778546326951940562313994579924019702357305379084608626494732663724344639449639967150726997467924376781719797356405449044232914682134491176117490735115271897126284251535412010831801009997856489117820296433960709174609474945218470063603417417125675037887237486876597596880717780356288227927954344720485085186743488922311779136492587688918865307464531410945338737330372929307198129821017259531508633329893006746195436093919660972799919274156346942551936929784681884505088005999479670237824340045730451037780868708188947754105454415824754436676714058450341301348269403449423237124150391785074145715393359384064204723471165860092625999068818651859553502578409360721613664439820535425737248165944879048074802388747875520802535198567841483633485693286499132707604882495441271675726230137059491091064759642588196087715983048203549385721547394865703131447227234574708054600478920568154686059153880173638058724872496512197427680596540210427710059149140957163965264425851669914561394088155183430021138710497096768812566941210349099808857847096664560238919835030594572300781138468050406540063028013912516095055707349076029148577810403639160299550493318212633429672478553185962258588951250320207035784223229372948749671095230662131991509543818021579505845143526699994776096031202988622382937484614338181173429244989973926083634650935621539118208559552692110472975040758302278193110380095841436533539216177974192152761443466054663527726792452595955611584491929927379876236471592217950922414005978056399055369631946001444185499815260433695628992620657334168415671359721829116003563212985614469280756128917782002956827782342050222645773626122683559378249271487292600141525865886435953680451843734030940595253785911083542333611937584537275261823146539002712823470847871784497517283933457717289873645743743587207087219886722729026613303310217916236675180234560996189512447066249742168060131536586398730366122753915061910174423962247184550555152955800119249512618216165700229303750796928874344243214911159753576585194237032377484334752802454998144613001564950284688089683273236777160642904838627290131313722481639927204494239260136071574272414960771118899346550081385327878165523680864843618920480286287182434267418511409478079281128070859121198247372471676172839107575047928594757046575416385108440909365106622300652101946080850485420688687670493786759361831108451821912058491333500465204317058199068037537913702138802054693156962880358027761120167636676921567894691878943983361312312029589374290467135831269754157162919634851875961496043601193997914033565504684017668375276636023653871977814591899415165465720833882196395423896239411244162153582504600906480951471250468851861871289412110109196595950661407597740617929926801846747160535537954990299472894204350221993345523101974385372275364665950824034756609347962195333930266096331537843029403394480272420276701448218240306525264692064271385345958241282565270088681962786608264425321651131623279180154208475642870230974747452595698260207893940620600615443163682684093315845077745310681956079526103444631527324367790856144598891152117576012334207086260093738451457469946510832645304466059050279246585466929014641091574309866263832789441605733476877210286432791315008759459652258440741271372459737526423323616783186295822060315672523716142578698591042666334400315203438165802841008451949921947496401747089873109910791137277223324348667464684827950716353892024771073674572588464333028442111021033409918751853317187784279193985105239014270608733513153802458607456299282567520872695766019260206016376739156043120835539018676107116667614627914595304048306450472929656102563453369084968717615025296073362367538236537071008159532638356126683283130461011560440155191715317145544390635995326552122647461769877411544156913967372336453982915647978389892720613197363347937248251218434791558677980519608979680777790957321001037638391373764977772217769272416982909637288867414523226708262420124624691532737701017164564851700734995992293249060370086607797265525460879756256496025954488580633568126941413066922886224342108457565515838965134514899927584472497140955348335020035588685276376099710155400319203653342355586145492623024313027565643924468426310585208176479059821926456501826389324611384563183626958129720198165859195084349344077545146803487751792680901978065344321713278141335847700117947674766903952285414237108608926431783990847156299998399496781041871959666327251887528244859284807295275234476355833827609644138427114486071927933850057586867649244811978363402734969183340934976519840260562538019856584840834531861749951143568087340151352667128967653850236526042481486462913400821093296179079363783183067243782024341463840893042317397288433401472687753773188080542789900144621313002163309625050049376937362760220430773579566970798918580232070448356469600133653368196945986234747997944756044651194580220113133768502817414098400865485948084533256036165861734628466847208070281955020528817927009655087548047525454214067877224252749243244316075870583825991968283450040031358795748877866740559915960747724809392788785363922820835967379092278258289646925286731781081569889772839267854367334919065933167782720038996354821539416309377870137228551977704443574180750616238973908134613876859658954495349739492915044454892526906453579934297235345318260113309914762487668809710208331159850493288149041160064039642061962658916338746177295170937379307484382995024692757376991166987070563099240588336426775713550646501332046341543617651057551370032889412569623509806070269216228454099068378024744905895068544294984842579541685645925222092882197011173118586872307857057998291350993894747961069710695558106105940996837158496802018763089316412674970654309724771153449819090505844016052754886478602676945569682592204185018219712666511629801822897696971449110551763911592208434107122007202079898929905706034318187215704881482162498063998853209265617149999217450213596607441283851720539139137807938811828938722830278334791317811854947762573672877573284121080814050683101258658563652921830831170301459144090212995729695849769937706085662936438071068570237088207401496005242718720571152241491561403033703864901265131962647646354664480437596660700858384731755384714755217872761045331727605000949640476127212038607138335888641493733983251716581132887538349130958088867658986670360786117164610170573882150418696737582120630813829205241694710149555976564662981025347887147246975283885882949380728843713145296158203979119005130254276665208970797945842014500734750518309698212690330517432981155209622467697524666832473494429041401235697979174700189925596496411033707148351360139032041578515466957649369498786597463583649925314606347047141066589729391333357843924919000364131765297486739191375792051785777248658987968330759657883153607778467776559075369633895572279329454441126954641280858663041187696948790256389109604808194065405977948819919778739600415846772482529258125911033312949060597650454238132727415406362336569508013499453057335923593989488551643116133787036925007279400842237638053407261978200886715430085679046503661789322537012681818853478474387700212014680671883016861514379889695596933289082262145281865411685062821690542083143046399751711400527447595060452065627104787573847313724303830165137676199747984597197527117898601345100271956411225920344652705560218538639111870069442344745228097778625898950863477231529781075239069569571232829694256810532641092139556008044701850930801473815334952763321070475178436088426586802260202108745409724616730472805196698834669441766747629033254540783720037079543492880330193019359659417679997604345536245218002436381085534393958606161691317633531197282287356145600193759665698197755718008962029801202928356774135189514116553350658175535602024247687058583723204636595149043945111919437363272328864558784983756409615358946829940904140530408360891647870219407241670158557162229166805145558744972652785554650429249845084657166220858030115599724438898272382278908263927423103321918496789355412435113892326078687259076170647323088212548348370894463599114670840959317854936430097028055113450821677368146806654884306235387046454739491905242924268003450552435732049916686399860060604690456876721458153534678120476595768500335195330946389797717024747872141303133900803783870125258117057739482006443056770327445835003069035510533768562198501517911215534268565371729561600907587629568825317889943057681819928843797321470267523382043525030539833236044077267991839143167458159400407943581490368340336526700911111191854548314954573561793932367841374150412834234392537786723288291889682941062971685723007221626907030384596312928201416072355470814295437862992423150881504179601332413427394769552531661268387774712861644849666071941426572349174274289353534419398861670291674713149937250669826386181314413961906051110780730676335025550568574155063017022432689201589462881531549378487266721416390835689783274424413298628570689513093769796203826750353191607030502505969822374133711731502838904104550784730954347258557224675655648502311581462992589520736149528155905083762302623308961163144067783999638493978906730393414102307646905266698039104919614363749559885686583711606559226887223437800257215148622289994698010369454311153118976774118021396718860925843721139934291909004012899428197530926230752985578936585877819619711450585792700990562176871484457411580400137506814226869956645353346982180557051880418367417607173479501744463343678284486427203779091642144544738606409560677156328870960149604016812470095707112741128312173889384989846542970389025486893187281861681700895919690366271960036224531000305258340323606099514916469069912329739827486207757641652390978958681472164738206777754100996387078401261476725231123348767820552333587911424716204475035655645432262573917587084719342055231474495917194006195905873599865735360515391803928783111004975075407435541135199590526451924829030069543174191467803608863380459603988479910761785596688493641267786302100988818731494433180601713485448347448536088686699768236259818803989334290484257777871110933841102333131290757517705746840104859569116794004154004779649667969842516087331806293573228300328613964716780709549886826654371992208561760333824632662552656024040002694041119409635065253384171007766609185508344466486724772028748947577721066439140229282300814224090537387465549259928795360978612218881357601884386654746892188263986996433245671902903533998410651679276582175253067194057679649461993083624040100001094244398242899806149544595348153846459731567251243130753579626946895607193894178455777250588395385786119557754402520367520393780786653896881551450091251050500736511470837740427270904793197588335920143725501771426007566521760154654868712210998464317964539543097828687207642721322553688209079083767290591343290279625379940383985449044723314454116363706708476364031017409197934719365470069078557575738462563280887356605963051395146675158866073227678754770150522167918602170078461824924259652701951659338409443939451179752687353214931361207625481179994268510903763848021050374104039687428965776175779090576195223044932430558316622463980565634324556776895672243475593783319789839551968992665729030366116825563243868815116631048548535981486784448976427378840425252110661498416666824806459641238831042852259217972171908528069902680399363000393777668058155628407440916477841045929034131827154446472673299945032210932222737276464250274090054952376655467626827906473555204499848322636509821624111905143148070426374163151552214854859382504729934556679178855690017234229868837875690404998752055506001652705708796503829594296898091401700154949543765856449452914298974051460356818364863309374585532644018995166747619328682116371489018670666836054292904006233159015080896231751907086358894389585954634480050952112358315095922548026874000494578177579218856363121239464690743851713643758906042296743303872306633756052021289999213885647836399996082012672170022454588627347124504724470727847199468846071637300825320381796402350289766361302253631679734460186297705708343452834427419235165101989423665813349255795067533811743561077048730497381123038266417143102781051810847542439401416615958770440570258176225901051351754970245296136957131178146994530330483445960410150989733547557512821073871854204035905544496530907042182069414079548002817849709389149724086085125806942662963806885934125820856162813755899631380863902771024098393420607161757733478469150486946609548513681462172901512703077478172586024789911471862623407268991346725897854312127764207631155167780950018815480399179475723196248311908430693080301948147140719092336712915006126530415523612043431350981139932306199487229606898862950303400935270630583652165687541139951361474777178113130216227183207057185802291033447186959196188688186958563657286837157412699719277844063552410713429420228198498796713273642300103612243698311319330689658704610300746461053018964462985485450660181112393152625050359896958345704826418634906470819638573469646276545058595408137158627421002011210281822454870624682881394820320941745402930200002212954799548824571720952141201874760138464845422778684273210095575075132379747456980411500409086064144004411437677139922339847872427638722464186437443155732487042666108283485049055250746625937139099510689948191327290052011236586205413512556380930327365065838032179925178058647391427611124837843896330899169374678941110840618290743016154673346033335123560129169490581986924971392320385463511514526932602006723026747122899904664044383698213431591384007403434147094688207610174291196306935553150372891359972209208659292820152861339155994252456285179493220964377937731098698425382589415529369956291660149359716741621553801005007431037654185488517113645127332569242084687527496326698277817035732692101486164593467155291640468808804274728244079568561459834099169730437298605451233429696256816712694121307324722119317559155526479539832607962258257543674255864052563236471663561923286529576282106861663930050442407716660128919061080229990814639843349870991688297739214681147549658051498315780709036066319411473845801204218009680433996658243206945488483077028900537645288705646842712216686248484894145024830281244209243696894088454308770704613135338335441246643162497411629527514559376906137028227336840872531532374069384999635996012241852463927547523357480556755342210540176333233405128780728456093381165554143288968995361719024805303011154454828058707470027566526661313843360363529706151665542774932915597868813116378338795935083928677921075575894647293963009576942237022360326553316875801164470581002064141927777056957399370684275637254187599590042798051730808197984882222821423271759502847401465026038756165135313386359364090096336994148258618157536558434009099626558722119950875078940304558294381838569271103386670296875583425832229433173054312672899414036413651443055740679403060528221953074128955692006933719859512007470230865586509212809304023090469031043501221278882784704826278338987211728811631288812475539635880098558661716160482313832343060049783800325398741735754195409970270940549557672440075435557003072873136552093153370153232923321908307995897717344632073709176277719381156789635213758586818713269807243371231909172818669616817933810461919324448826379414877413946248197810250684456154689301646107413846663858122028038667531519123629908711032879942762831432373475043421471496821271825617811763892173835580753439328562212595056789437575425676064201315156671607220771387434119807463117989246794498827272597867412971932008866140450092512976467902320399011501397929964502748631014682400719925728784245895384486260328303597574060428040452303152045296474782471346058905125611418856768855992573991328946429289876576362658071529356874789465163666307150370032944149553718451142664352946417140240275735102027368992923237964324725602847565880709736621851235699640515126296763955849266521318114888287860224615641467685978131992666869236236557250961271728621860134147625256065270584440817613843100309986595877841865350882086205227270276481476291649748592525196041168822689625547829436402738815198979480217198328984811489001504971302742797549583857403057888466514090900692511850973334675323732640464683132416544366044382267976800719402138700432144764043287394195611761923036082560211866654183038778913678421540200476693839092616337388533139292150551214849541146085808663375318814926825348439094227808529685215442567396501546988673429458134382908714638954549665116984687023809219840640620318460647672410147258796772922957664627368296747165564844122153251497719163094818590931922015547985440194583354065980429338778798351354397127914280845818957539232963833573211570487254071009353676595422743679766495112678031260481058025105809791263708685024305142502617124614384372757403586163757506604406238941173380611404829789487506064087938742817839759046270545930859656863844289121539252724381178606227796790476446001039699823030607337292035228082843678264613622866194137790175306722300967685340094198475884575258227671380149836766624648426090631892015906611311156178551709205593460121982142688405192613442227474441155361952881980482416254779961799068684495490568802428689889683829898589883623652413049888788626597819476361561853964508083525901736021970415292412866051340796468581839716618108639225297290110552272203942614310047716990773516771538005884639416925466069708375709566870479591611189795004820769551635999009331111501223406636137203271171912337950209793976909704253162729382299403949064310002240220063205694150002397393606269352726914507560376980482183434297552180321854646099225828968771735187466505195553544161404445758964389440153847480573838755291002747477769622945822311678467775482884709589536352341875126936348182742976309733754960172786763421612667861333316434714226802281595111550213329914616979788757914048069796569354467514860143236034956120084321831087477068042182281900882016239280279313745552579124642601158285085263613156204056145889921482031209827132425472726015266717701039747333111148590505373438491698862245383924848979815606958995729486725407872717438903566565995518407465485957496740457060586838002656494107209179483979585744666403613612307024797766323949313937096397833110162084478635517572229436352765319088802204653667897489496504215280614083243813410121028485557805364074269300623340754332001616377724930929379853285254515324555928685337540928282127966479957935806913007783166458348304989307237277013888808494160843134831235387191833512132646577638299136175515421545408526426001051247237556676158403642659400346951650705526158999038147954441194127457136559005398548723315557100207128056114078988987583094724963605708888076512955266732318827883827673257872298756134786987807385985330009081433221560690843368876530228476586626809103787052580031080267809917991740584079890790360778888193667050059100262738805630100755994289021775834230655138474641279822313655049567421789041419732754788853936575974787084504599121988679605820122020554956567614317819334668560298866265426825242801763651670772742754079109618398907648919233625682877852528129108584384240555482507352121620211959375863688983989989350683076725470242470205184396317435399179862866134429536414255495970617459444532180143829572639688910502347185001058106182342825211646105999717020622356613634638391603506969808790878936595760536739826631674713022296864349089412457550751759271153548422915899256047273998720392118368554564395078727196575468248078531831331676675191961780716587600776729930381914196045510171083973490484775867594637285410224996134491786034774332100801420588539683806595861499212620421163038903248283975450254000805638034153927184054015885186344385640628716421881833408089273028261903927538748918636703052065196312619827461354549855833633633405474718860374257153459257682804541963625843029971557980198062691773098344278944125726987657158583268099874032108708538381184924656960762596913542136200560779875178436462014344607086469093847214196935013529841695562675440057091624033207991872988563661947166558345409769474651407726247511061191644139186650669238871760864696639409752233216822906943051563594799016303334153863556524768173280697691226422421686454719453974244036418197229378447082364698425831364602488024876093726624773829120619139266654488636841372285362576928158715005665060508496842299821367026213385319231060519788494094678743215866277906734475900435535058927446583578720658720928807004181127943521956241615727031714615655093897151317041436716491755631989065445750653315374593554470285347429921472230928102778385989754482191052323156163786254257707948030946676674093888803495956201234455423571653400396762913282454224082028177499609875610556579001193375895591702466185772551953016694809632642296649077519128285182451217073360709221429961985696394015563948407102554577639921800612745912021625768901169170454801958622904163363210991110022319894720000492722281464865015778010606369791617471174569460558049300841336803903094756510467850051712316552779316389640121223777755270495157560854291652535543299007722780880793196707628277224110450738107991875264761817265630795068883290982859923285388652248131987372369992650715819118142804671395053666197560979687337824538529261717567971136226382732459328681396229011129607349429126940470450215374534014896746116038107937480518309870200813334518728801823407987651869444448183682740871587991711961612589418521175547424661432986412961787272250879963327558075808065497782038756483062794273531097016540360211495037392442123508284554117392368950905510132195627670436983434501909382898193974099902274050620498635585888141876661278292242305871225928176797486268653278370391311897341231296873551468217780128324737309546912413801937500517289059032838324251503272377473690348546844202902477551270761583464231184431568278682018803492993094217779221999241628985280226165544634555195228774303207475579917445573009920879446179136003739419430709308760050970976948943055045569600453985357502424188783492579995816462850130037740202731135920810129969169667837607845589144779132315304323724348689272994117605953883262107731408692971020009444698991990073269814895639458093146873932583364113615500361664077880635341846901123578517799864750774409841051391716326334978929532741166178219474669439963845368342997881004840993593271599794059749553276911799066192129882500025495338422875725649004906674556636778267431487447512152177521528955375679528425071313702675567409180776150652760638307059346637511360589344545436400937497228277598020359394466514560282704700574183047025775221640740421152514068830877050725931124004090751300128431388701700409703392404007111551435542688177910460374503793287384202915992039869483896129007042418904363264603067217081723998917396868304892278194760213943791393894305406477566244843757592790506517554994976624758228307950778855000717756416600055608605770005595685487846517338050911371666324106577867715820845410688906711920622031261798228935731870607539977002566205908691776359211958027560471645598181232996529819267224453225035524102908753504788651070952056415096491277916316501510857619949857848618742044711628149429061487602052719821184009228178161258777794849339973918575408825554760949002874416001676830019534261257125066922266297376679335036267079995002147896476952945303692957902219151931038912296354074648051113460700497270368795553840057542968417348710197261987002717388332340504219941953039292893538447624519603844422725086485852808972975444014087694354833285148672349424374860129531356743721732474752700413618219019297500778755395851774903863656048743785128280279713756722870245324795273614203624991467386949207461142100793179232780435849362719506608721447639985643117944488465274081458659680680247670515694486540943580356832477747535513698171258384478597640552164018317399027827724846445809963146566452650673049719648158899051139598977997020711813600125116118301772772755524643986760106583577774124658450146208746712750071431970215756793429915550558891685898164279552608352038548347848798347094113759531697137975863805506171053715970383420124772794770409871771078696973009427379425268535627369903426268504394090460217465445439830250352327306496254616841092647103369759367801076287410038271066834353745491877790985982117031168562415234998879632268709913881193758439181937654051351263246268509355790414542784434512142165711945010969051819911788925803604092674841117261735953077782074507146926830817766170307165257855678033446463317385404815354727285744411615450606364522904938001070193962828894830680582156165010108058839782637012839562185785340987093654346749332975743267533215833949412333558151251090886990553558155259712524376840113184235296466318355244202810359788670603817231920706121508765005758165961154161492343624116298000625550021306316185881183831344748273080306337583345186109295576588055989328485383391777690799920125860628739542565788840368796087193607852519876983743354067677016797857853456395924647166842085745512329987849042318701897890661365555625488643765953957784494259750000577411467299979225755196526025960750110859744072930618998768186645066160771368091993893026891043639589404321091402004841563796838926739059985015028701232895226889028830891539614406582077058030536450754488510036118342244217049128779942681565736953002400045866985901734297608203227895396015356176829809589129536067178960667395194283455469214614045655388599341582352155105531379789222380490057146019344811405395621527305410148960789436949193323376633733330022605010050208148634224412431509650579647271156314719314017607652978700002809968719161147502696970571956875972124129157903741612224001266381409802071478290551777220090022980331863351739901711262996730944592275516300402328995045033915817817331755915710852188354212694370105662742733337527950851798833976032177710466440876788883173153438515790315722900043546368629223349023398696411519950932886632583745070764638364338087046560722885653375095827092557892152815589828650841931749266540537786368250124636273446008616445989344871909688684097972379206104751922048022717041447728448409034575364135118384503381066513694053165512232277395664263503148876140477770309816124403265013111121978896298247852672959847952438042592378117165964228074688680354030151001032909401513196660857113001296537346199018609553273325845849911035956219190109696065332714244591838128130129642683394572530262210841337195689822786839951810111382361241403322154020424600928934900120438801132855015233572357412393762642985878993687203395771370486201917922085124809159172552652966748914722785583259599660844151041291448743034784606733212375933877307268562838836173232521612733423142402834896453198876620638856167266103962380009239936129955657249128538607519057744457245247038897860171556502065534119361389611055684600444395284873346847453861601131460710389797568105016455971245482605516416011556172305692655348759132143547856327053068412824728790848318378261751542993090008551952393417750192259973019331340679407176103729724756093257565190522495684477911682782018172900047628347773528868373981995186393512339631070047916383650858043672645205026052586742492921331851013763627150852879149146366022643117078743434041089827492525761472558680765943340041123168921572220805388987460955763524097620434161740549347971153608121098158292045433228284653962540254300868448565506084474603060780019134436548939038623018327237874382646366555016533754498830612214158152378322944967048175632955679916529104638772930687400285297073951618569535398141006616969313428581213126546741457811986785778936900400489686875973767112550262474889025093052605837505896710937653309702779119672923406402880861408322452770511571306593368574732233333791193176630259245744336008181269781778748091966214899907428665375374842643741743160464052029029755093726106672490179219319667041615699633135002751128698280578599323734675712944666161721172027236459656539815383449120457185640637005093127116058387437196726635291233071923210687027490944217394751811159370752785589702429179646706360816481684930831710247295557409182776876043900292446933501548475676002366816034520132927714739599680106328533333434281712904236572448238493996301244352205881871702200402675172388427203538361252009793205963422453423382434050418334715317151261062776353509129331475218694449496851484812028819559125033053143713675527236134032339661744233857207535342165035494419563986102537831890135018316646461768164345033730201576352098638549152399882040735394983884320119380981382522630687249857469356608348312077516643281249577040978967217709077347884298129639041651173179837470536653860329165680140471619697917076470748681377004997298542805484407646173157207172955979156783673643819068965995351238368028803081112910299381667483086815868146885432092222243301287192061715512864772588099060835030628606837034089715196421068505993543870021372399340782519596903737298709019977309978320479392606665158887447681166888830224776821971487924870030843542750719830266240705687083344508964480263789359497783446137769184510170577267434103149921438779420829394820928933340155102100481296321845642936794595294892975008755792774400847436302191023857168251955461648052889736979726486621298851469113749239887242255245320169255510714343753855619967434338114726884974415947419187590556753494940942996647150391260312172241314727545899985896676445026075340318730817360042830693778538815316302148059968481022399001057150020831965124044318447823251640573633232749119923727550648783952721423675718681977978170968297044113598873020339385416985163813124628639693215435943555162102695869520416360596929149166536628130565023966420565183962119144010229722193834303796254001788485479184818937603596585687308473340200881234943971847060132234587916125214504733168341801985568441059318854434433481414415354029376023472544824255369364959016741680674240633292254942067016063540607801876556663882683243997290213871359833951603288532580772845394269558474495123018403564109099172490680270952827190463086573023523668324137546336816230070682659964972651680800754688414105862332619997736186031793131372984744259118113196582311127097784354675711173977104938828598225671412088992681017533654456750362666032249681194919029154451259828807780679424554726479430638575337652016131581120690457509196233729566756497516366717956982551464541023515151864268863371678734442131666761798731607654405105116658033515790537643570277590337226260129424671470715531988050347165451094143136359909535224799225410161942641956073019279456428106530418705480120449812692694943772479059260058776868043481603133942970393591467701360936365473147783583779951108019909309325308435259226793028645168648092065716016720453595374386461743698839697943964443070503094429096570418788081109684486539474736887022903437236307892439878190343176496490052784249194372514821937211396563928588621128364855255980976119678572541801558452472199085796508951647363178732256935765573383454730245956576234883174297476624420094507885630885772950592795413705963777375004053171724474480406977782381135819779787623870964157942510014251037294860529133566965544693134541325511488812897408299955234960982381077577357861241123441022818206339709559135602029808121917580830206741348108402034972294340284639076702663983515212593985560679758204190898212621275417188782785289597008287889296520853422331621914323206412796528155627047835367422092488300815885457216721147377534394505387455843209255647300678857439148677923801987002011652643163287440158259332575832007015771323888827585415116599207401885198673989631305568350814106738681537818474264206561144681405737152545259200857683368150025030321221684681669103888278350632794820321544398635928576852789365012115026904072480658647426569696834446043576942844825028764425477470510230766594384025282537897842432150884254636040561677131007497921052448964909282477573841719451443931787013570789888647328311568071439341545096982565336272866757003096854775371313875916837787761747419773506504519807070921973153431329087046515479500490498214803514911790650431472459532889400276681033574752191705309381068228920631898393704659022731163618830175615473578995460805858891449687783337223732005235664288027496325166767348061434424802660158410468372873545282314927460991576876314619387748181689341171986023802665015187062673248577192067192094064102737103584016373972776015361338925853669100027878630710976957726638243540947873305146931229249036073166471972616346695609099928684278270617768793263887915984338825369880645531524122543276167409289653562102474966115815465622783695727349296706409900149107058368517963483755663002904667080649223972847320182531330828098398071269157310508434210458335354440649888278296157573260974216403319128728645065588970607398650499085743640813876135042755125998096307035512198068634212934591383947995642259599534475846853565523945105778176272427062916987755529976664205901291011558122733290746536493990242395974986377425882205991571912319684096859283888373524888476967209118114970144225040367026817326346894410632419121461470529759400747639787753483829303823579998747961978054143552360633439736976502054639061787292501059803755387324707174824487519060788652506234533019016789603291256660863972905958245895451442610379465084219712459992000494034863984971878719359840962989897625270445340734591777444006066890647695422970989116967969846553899784283177110703969465004520534029735534898981996181017287177655248495219357577440672942508355119921321736135002370310478217824499028696155582391266526288255938595512122782765770383416949160903469309673370034486954659564347855101056041523772052044639017111210544131187290191188572281092592254534638771302529043750105620817224303216104159754811099481044827461628157424788070878017725224994188538336034296000628537958958095108945341434149712330929940397881594448738276420042531359695020511601040331808213141072981521478375266673787333572304844185488105346309503624638249844420735504281689377091631244739761363690001122873234131644465825961021975728999027636460696006646577252237777656427847894149949631392302765131348321652805976358817245472505832675129708098122954432226192829060689242871625109959264090543879551885098428029622295428916617658530920400112199898644089092889119826120066529608347419435280704178756722428559810008194990345278286858811980462717211332400649850276593404934914138586413913112898198864945929822422642169796158750430288387497699626299317306552051663530362632857349575529438605856557174134210916100711544064782752170915007946378863016770802286594104035187215215988934745925106435062916104382460710708131994451443337776287821563591838496594256508298163204646458184177849927077358540582616893812575959203956085083951012383914163359072651650557929349124474598812498243178249560325924417692820367084084467730336864825254679289529803131070196590657609762639202701133503193211059044115100476807243221842413996149839849799580506792627178768544148336729813249602971017780805919431989897045322050060749823009079449216359759488796263821585087131978003074821018460323812445124099614681832553737301461715244722903860842445708547775094061288341679545185119617990980559310382267031839279598217229621557948540853645933920806454486403995013874720491680638083612312083726063602452744929451250214953635210381231697135287962290044953445507271598483231590971270959244028085276543868000090495661028763228123170402235936027176939897594201949955123670040933524081348930873356913666383465938083049798138635605937771922029131984683419005175778421293102530569421466035866454632129900086691354001019994735826190162199779679644840549711134896601124820297905567268768188468445788570091774558904638390484518393286788368583078914799621550412376114179523246206130484044407723735658330790937812602885391469394767183350709350203576423922730379093441940078844873192359985495885052548929970021342999130921336668584919709057821506051077152612957322172788932165280981001300489476589098741873898282478834823437965731946414008273397527973037921216565317333639121017961726325476600029924499587900795491062857365387248676150460503132384319385670372555441136813471520851574326279683409990428171317068404890232667475340543400104666504762341198247914645877790636370994786835058285691916113305860095819785266160442434491905273093993382624296307850491262302243291506395717786398018126391536203452903627895091821593652576772805353814070277560384866183862660299171853337556659208455330160658749135178365435031447415747482225725490124130051934910044338532963860273873024080377808382933261737471641286020641484195283201626164783191164548413556574852466232231243006673610467518403647875570131887528026560689769334547493860571881876199713662914865054987117531990035168506860581108237368308815080468905182522745805655512704400725467509258541104834635851890280093450755936379078091126733912757713039390261711241127631870789557434220652920329670963327440680578788741588704319365570683085679589213757663834945438815781101410143512233022848151100352501818692845727939973625602913843773603177531210337958274938111986717345568905952284205750869097866556042065266176063326151481794998094424328249061350376883449954209368482701533125030922168217793330403522494754206337594115586707557779667856566768298440440639015807448325239635100433053526052857706090558841799833959543175091359464129539544105964449253580019114676060510185896193754089102426122005268097937500284155718108067260924969962611294622837450650063811588608738427170645027084072361694023923355452838215087180696018925270734268193448541774751218789914751432467833543083111704689794354243876063052559235434429207559695699199356490764989976676344241244374042334017394010992277333997087532322067118612445738592444257491740835564990989595835749884556033604257540015464488401029269556753878760174916484807947379740861096734205662688915508459184700221238879556910690713935031386124250991921608473446667055913502852187518352387489116249923054422195575922378798787041112830990994525033505325372901269647254292023279187363315111933166138928848518866629537514110750128144034830038959092068204037014270991911379463081814243271641022407540934693912768756295526902955290311803032633777064914380847723290565758232347498251846825425460482403573572540951790314930009526651348405993303035671835481001136049336566364615652698243704388428305202564951303583812789402035086739409256524624445707566836110200960054769094135252283580358429151858223853437842665946465062227353488467028066125577332627951937530002612387747206390790642179998241441660060841144656563977217704279519930451503740030285462672989198192332898129405246332293487285445947073997363245124970490080286353722626341015536381410391058683697408167697054314009828686549768337791186082863338951161372348853826302893466219476859024740730147078623450599062982508686518460475155056981120498230722728977803072020334453306622018097688665372461294168917403934913355567468845037119219494903626576806653123713678993449888702501778138407774632744726553283095138081615679403712575738122182709805676358367888426345754211945015240038637644869431862325362871613953509930640410152821968267012177850285649820195463880870816250078058593261265379435325451125249950001067591007637649329733515732340697539425057830658137775971537183985133664289694082619736403905459502206860917403551573272764944186820811664633365767559812472583141738661063178413946023522024336244158357723290820723832409036087649596557318288950382485500299640486213254998639824671263817818751871767495630180486067372329221206585224738279850801260738050923953769499356764936867304903631542758689267444633976711083163987474486434540168961729561215024337533002458382201319985035203744452662025781007209125021371887747664194144642060498008381947299010711268719359892562022301588685051434124981741997412561678855069842961150752364065298845193022696300327869735357865306808813717896980709142755936499859579787537460020330486897125524791216687965811468031955544955825624489089577013073871744103882633028973583453596351336054622910959601759053872342794968055178442772714385766448322357226622550624211797022261519222690763143548293031265003632530661631560253607085406772896903963375321596547859748581355878205185644429852381052778176537312144650680170235531486264416926080007544016498440565135533140437567768466758988242494278420427668130848613593719588970619850180805372414635306190493184225927482035121204864536235068793620154396131370920399388763279288242780316119790388078161001164042705570682138712044567477578206817298143856663073791046831653805533962707592294538612665741604232296628840820058424337065670414723060140698369715600220766872111788401036036078333684254387007871701699401102218156265366449700543987720797497580733347339433487305224470223590953818203425015248853591392322927789145331815231461570707234981791857081559090905007570180307556514286266248005375644732788720512834768344538594369808652195706992264591622053283562450216238315434929885224540464030127083050988669309346006712216440940642633067974466363246707476158080630070062440947599645427467146734288815316635076817422020931723744218233602178572208117609376620723931284453584449289231747959639978570768553838808439456778608410795499944841990106080777080034459184938710966689091542691418599649628560297733205536975853521734386043387737304530150534202364704755965169813909321167789471370671789574754580795032874716726865174665091441040166964362888147972812043660825993184024135966818729281155839258819372170656445866220092861038080779257144024900386260165604395625389102238304071720458920087544094711183830615701501063403088603117185208903076671376390213782598191804618448929344422554828840745681514060487406320542309825442195902299943834892676466638524241354479550926601833672223433034559470940527073643060257355814954215289731656063723652061448244776971891929957438009305102114579518113490034849636997688099277671554554699360513270632220679634830310190369618946693072413238808735500948661310793690675888472834509243831324593660630359205747115268933745954516657179516792975038298478176851756065516270711255136414985930910215126070864259535123968620832061977258571427379642329487998135738623015386570100583573617942465851997516153050422809675821372352398608728462406138494460193603617747010190837518887268240547497809246077221879911133576643008451207039967003213801773472019352847179267604937511083345390705784647757290368551656682148241968559657770523808031105711581087934429743006646523389865036452319316249954245457002656909409935771233019252940935043654509746930221386885730158271173102783665841524513677939481959013825320247562185698093273628709503134582064971688732764481226077308144499059258354388369519181518263211950045632662364746629771432515252514204088170886852647077654858814930469868823517926808987892011725720217067891727734176693542501365954629390980711920187300935113318877105188964327946814377742401570555657831680174609633140686027799590697488671501977861488794289798373277158501364735328735548348381190156917419918673370370502677287994074104816817552854894252862597565004305103988602401804812688987974636050423293336532618871836613429227457343101265891857349971958329359125864537568910511030139324775128760308590393630389255019427919533254492087583036256046832566926449788407886008448781050406918650364975675505425537239245060191028431481468845764371032824436957433109776885285451588075914118736567732765122707172073405207230197915413348321542727542598343833113658608463756184561679114281398873369506607650364504215012599198374825964529734555982445055640133317493342084169144533448500326930549600912142545818952241325108575657787305421465046142996311104182717010560100651476775083612671210557140307057022794616871961339174139763378457957449236999453963122872649107473150035083888559758919085723949991771210415551220607167656717581953199006355801251103296459000992910821994794237352170225652269092092211593393436033876564367952359280896537343626409237832668264747904946895634054673526490189892695803506497929374130854356465100325098230822017769007253270167578727006966458145466602523202962527621975488748723662126597976252785750795721900876056151824921413890640939941471270929603963264722054737430615163293984756544985553242258577234589517876294193770218895772844090470866417384382471887033778457271168614809915662146439644347050510990866639996664576775350208422466039768636559607451600786880155853108617699025390678263643858130930963246169705703785012878787394937580557931483157434203807166977361024165897316107408899484760678154827017753997130620229900381139019248356460574120169390703542097497675038591454461493806104532809320404412330617985492751484140807754725025980820541530765665413116221262702922525411012433728434480382999271464539353058216328511584423376826066699004842071546817842393357246997926662539592350483531323455955860501471998819961600854299433478848596197992487057966967949045702385794136615488063231826151970235590979603151492479012599094566669299188760975976022666962993325044552059984335500300003067311305047561773439020462759123265070589451952921562948508190474581287005402633582398891537558811890634028056992959128822364023583998561537508025605911470254042456184891026734631477475682408618434624676900959118252706536439201218808176990312041900898900914855708559395692680973417018963909537718940389279768132112728294486728557458557129000114203221434920468698813517305525134410223213569086908102877771411274643605156170133688790569610684518035030501962632700736362904719382620770025538059655542638248344158344642915749946953481573007909328829675606949456127129350820769715308969664891896112565375204096945761549789357790538385464361711233630143923125667132243781712816773305510836060661311207624252382407177205726749443270294164966975245463946979997055854633408276097298181270534543121788811250925100262647287432544868401727554207195852245161001363989070230197142401695034039346349856250411896711560900056157336792761473483346287558951894070248332133188210030052907211567834646543125659674885838856228575595292386908378259844232446583084261867117658723670525946483174351808616649095660181103271849496026829513546883310588844707737120331520934786058073087796995494176386390568802453413286036471816847333940125288632593421215578047010768132957274115746789618824609728533435968092545025322811719233289177910164724460106814364401006757258564276758516063104984514957764241949769842064308611469284033163056467766269577228829831240574260454452254741835265929298089673536227564167691909862219409877707153255494993276126080382138328907787296569807315311989728451067877836448744238269393863961014941677480917597305211295673977360724408928511681282263014031485159997248149696820753296747870859709440927545468668337616469667921016062488663415019014283779331000448997463304586670958079474236360664775594696851271303740486081629727763936547325127738738403564606895662408421692107783140113947134488197714673385574090319718013317093145256935919615189168414928223469525334897405203590905275010403084921261959614422520651952047131260670932771502610364481831098559865577737191426839399107652105434337963467707181722209692650440490078947774626771808223629845847203640200780685833723180881289542685804871839174845707188693231017048023337514364088732565108719416679369692302996911725203726120910863612108745622829355691631719033183867947361390845684749501882254157918585477808822823975498491874311194043823773679591009270953838008453134674692519086352527776690516506086263054468114271620763663746253457608455257598784188245191520805490421837455506583217758569100902007784994369047107971816861070147799717437851446711994918079513895330887417696825645287176283386789463646604277086323319502217588734983565087864018176810074284934383103301983078507954929623859331187131493597103509760290726216292247313407463442324274698988624644680077598864034338586192271508752918874563933149842458396355173488713683664908881792009031535290813193007471580578374385318991767453654311970274217514836528599744640310757137410177280759354843307848145498197959966008023609080151681378265164007466721260817695973894775339826662371990513728038403629168970800178179898791205623148547257699058319400674319196859441489271408474986529740395473253003863383886678899728794677729321873474921273002866840886464400916120577337038363724629931779238514763769782344169288582966620792494457633148323856038738451782081193772082508081371388089354214888158717324915887928875413449162175395537497881028104959067531249256720325307342844799944109747644024257166707427013432348217109343724666642553186326327265322146471083993675231477538952576788213665729288304099275732709706807354644516215233539718988598731877669795958323267314469095681818947983186417896706710090576401528074185051391844124514770425680355338457328465035645806951255345636474081657093199007331457656784614211058292522505234501451769106926203154067210199169737065898168856142896129670091705350103038647925645556945081179209386918049242085016888422987789889072097656463271616009518739810505366092948107152048381130171906827640285072662873499432664882439766833134074264246289096216280363423974110144827497618905273984138581544525297277324087829786401843729841913835089304842197661167523674695466054321666622488130801794261300621694589031098399158952687211435816564062097026243172910304315901326439264156588251193266187170045948627447252685885739692462390668503144429464698455187245879657760532944796080589302679396922862106763590768638482469329421639615013091919749629565756109367627024032737515153357031722321578848212155017418944248093525193329675082699578782590830635111839551171037218311729452989344676023939066047935001181949154860383897566529441253733774622015217284372793865928790745051842005501812575900728127381869382188768422862035354734346720804578664206376736857181511529853431296989683812524375470844602992908276266274865503192590483739221302396318824674192257530800348176472560106756001590631415807543890514186639236766352529802623595583996569611887616057330290401199229860248722865091383171832330489831232879269106350323782372491321227065452560789637485567347166704641883321305483538100143832167000306612744377264835356153151110444670289830066585211004912830250251661328217283923065592306926521494997957169762274215401653826787840630862191999063998828890085664346687419027041618283698320003744030290767781396304186413041674407416747311437958399890916770843792963658211785592980449470699661528437962629429797274863404218749227281279012244324842445460474260809277288680361303343286124676543993475524028451987027291068611798775163938762546954684143313329363480670050581605481901593524770698449298449668878742640342757566868357827185501848457934781027776950224605698629167425535615328736714002960442583262352471437511095792869882758400060743834635397672329249400835686773465834108091214764830737607606277795744056793335919084108488353340057864839276988708168710219188990739483042475581764807144507439414771206662257684242155393381023758165231546634890211314645395181863769929585686265758255951074278499388983514264505745220117727378931097824322784187880120821860010783490356000759912734160073902417073183177997591473111916388126029666172907377002052171326302261109003675605262894039201436104624604091098555102308449178531387306737238629678413453673955212351920421403096215469427770852176279943606207575040783213791134112743454920434698525316788647927272128755983438335880221269002873582039140838787011162623171890370369346212978036814282950835600362788675721395171413572392497136269808769654428662027561074804077956533425686195378107916653917509271706757255298790078014489385897135448060316784108744636856361877509688191338804038857627882795946289648840721321485834423431813249797172196646076535346017497469479918741822003244502593271005222859759552963505923053037795296009405621763124829963732155155973411892679106483536272347965227184245611394110289199628853775988658170816099700020430235721655947944979017543999540490306020891929803754752614503371142597209809034026379150998148052441949198298948145336976241286077907236615581359735411848576139249706797228231275418809928492103186881903714594046233275334049960986053552915159075965471890419234669194021791009727004257561445532175735932270565395634272351420190200935646377726450317432917046402812156294887641098862925924748461612867284314724732117591851322523581041982085644302689464239160163464777162927051197441012795945928503482290205687063386316033592984940818080972747136245967152247431562923976692503389188016458261595142702245455574324621610406582378510935779555611370421203049231752107651406055560593990645502597512797023540861843834113692959930686380699714131022882936855363508292393151423778760511333524579685119048925864241922400295416876068893715990592833491724421107024619444106439462848238697607297792938759535710925729615513678221681530552363549046401367043243859499284434296691876879388298794455323644603672197475021324653719775248292827559235616837207997600780864666967020461286239574975951736377079607554641403563232152992305088233856280143349261647896914654985238994200032678771607174018478210555787828743492756728163574469251472705095583227169629026687743594404755115562084140342526938743896140007584734517381673022967947906533521848920060947724643516135447658883325868416084029577138038609621780914102427737527746016646038522324821095802254409129073156169929606819784863477617933763811479307174262147950069812906480613957839668238265328675520311025048558548042576732997008367491652062707793156347197344913995569918056626145597755465433538049235122156790931224671799657144812804960105185671783456809072403003752637802522527408182943753304330319929667634724043996958577196102925653847031257356273540625042255463655424961769126944947991891608005888708703004930617494591418107933128090532257613569763780941744072716742890646132608371059170431826704416640069260419991039305397809544625432983873665533969741394161862823693272972358030441922083072710141617557608259348957860156139988061989226241253214096029309578017276483316830705038649972828211559501473223350976175167047123633173642862070178661635229069657966318662030268726651804530539619288823172695025003628558922732303342569719956361089075966442092322318453005933008472696774558033305574135394403915116386868693516762617946231163938698338470069385880500799605480492718141183475951319579838402540920671992376280636135382777644197750966279167890939948310056857012326784919133406813895409007535219053834257212814296735561736173366154403257788258397941513968750129466861061162909942784595812872851191066199159387617683291633741417469514541439690248729393848956538524054411185220387048009733076436555116952757572099825332161440228936739941615495780612642583939747348598639115159565135386729129776837455300546407462825901167416657009647152909970734549754810719578532876702749136157874811685125869348974941045007945783454357932224727808182887403637058016888200760115348566414011716324296452044881053054160870552087719100751143008500328204510318700264520277634544301867012345872815235724941897904737024060709452056033007489976893761083447084066608814656963137429222873867725965347687126877466055670930725676508299547117944271448729989579502618576956173628758797296996713940655511196586917549936567061087306175157942818897401926728739194998278756584231299153113339126989931921000721963301650705524038550929683636632145202327208801671453998719785235254761400090855058815686540833515263759885417917307683491292699423994335248037988856936633582296444362503107706582092103001340853319555125039587843742685018600921963792368634997755080441737062416739625168587491332989531408467082524013665678252278694359654811379083887538900688307459950486651462714374239257298027692128004216688125297025997649404670883509053665894174766240254632481309416560879751135714417041546379149196611624317215027820653764987970923283721085173921716761519737501519674500541303218065666417567937135546687259886454090452583457040925949425711921776961814636757331418211606605431569911716910658459359340464122339787679479091354148557220665741013365171247056460823959329050530430646306342680365305194972550562880685158205398841692214461925777117899278492942404383187167920437126165979896827340919717499600427134629141019321470022432192848661139506353480313791520934566741537567217505856820336697206778605532688394904226533498039219547881300330022364883039608647739600494915686565703486315493169124450781060610792872192486036822871339476320830888255652944965616064225742876507570313401535577264568135921456205382705992345921256326713762073006733841494212813484646415836882839076415567764391698154624641683909073350586950847424633009107057175517787043871003865279184629678277843489472719760143365571754960217447528068620217908899801987149670769449146301778622905027148742145645666134704065691731657557348717012139125181793189343089796244882389743818886640148974237001732162347651945430759055748120975188503019274408273250593579771485150819616357881147272038500966302755674604011272880753173601391369031669731824745470831307940467794502802115226478342650778457507840233715631380882503012401416316060550384353173339945392645274641054525048053807228010800064570780740925418985518838879453414921771339902106073673380243577845702777707939189760885873344222659149429478507133730797351830432699338096070277467881417407509105393607536603593124555930777692769118007669660337848419293584293075541193448427052201028023311006624928873319293916730209797813627800884570072652548737810557162044386275085853427017027281216602371715873321714367352799152835323031353861595479444599318908649736668808068899004926708548383266916983028621791237820233610690723036487200499869043587638066170963748593660558511503110891155440632585761058468029206467631268505470572609154008397045173359624436905212273645402770637662340387471913433494932318537812407483457577375186384450053990278612912120202010689850540178061679479583408526128852943370213622890305425620589969052305096747765303973145315334290591440681173069884667384424330896433719571702368499769374143574445848428781565512542758443570328376083911069706047186141824773212179187833590161095934308943027602827662944150857357437262539354366694094310457189101390562430795649848495487272984104856673621276322870728219467399788832856826820656807265194940984103897706939230097374000095259113172579900565216675755826724852694477759582531045210150416522052814634399449334546952073053199368380248733221367414577154720035193919527089128672227826727342490526980197497383123954456975685156640496550054940725570851790025401103335601524798817125548473679354441259945619381984572623123355358253738679983640035890083748896683745692479594420106585362537224657149898262527219092864579061631766284530692960600427751536574530761567746136269906814569357496296885460485083239746258782144748220687813532716935655053605694068421793306428342771189765182312471210076644536714297150471186908600364781648115514506013512140898507334411760180383037415266050108197965251762361146450263430815118442791486782696666898654259472981118138112153495863526642305868765403672317860537694746982739339466030907095079046511598776387174475032584889693918913895336604656588292295059943328144460471171295558691323396811598302203963075768750966100346065486168351251590109903401516496309371114903127392845198430383702312792871862777836004404227622690998699673851272049415447576559570660810726618504537760457482207858690896828430142314597123905118178040367008359933790892318302106169095366096105259401984720136219649031019236694117557407649691170522016443243659450739720942918924652925487796973891998600161642658955217387760387584612994295920317466655904706543868748927228093788804432406510780824024886488193775380979786926316462658148164417560248767640329687525570498760702493310935731525787059642199417167551330160269030955039124293486086348008156992936212879439388075757288759297585459591677116864343658198943295936886431540285242286801851509847570984391492398387639585013736091411768328341094275994325932134334080575491533951881592714704469205915628773851753391640912582237011169511070610621803786066402517029902216517035430367450570613661330113910865625057669128812514075649034153060591433866432828950485681861005737056713377729849724984354280459547542825315737410569502040127700291226989531195191350364975414210501871487646399018153372468583461805173078975348364428809761800480803080210098743161538275593176150546309696164479385458552851694806850339901138819603025226525188355778169415420328642450171713182016553598488218066456134777852679113064294959290574307882674980151817292080151196553049548677121534775192870773021491722160840894965763684708495963442939311073610069885169469408867220364998269320072454163049248884145112092757397801183510152577507325511995664954378506986731026743169551194005722953697749335970059453527336599496079622403339030139320727503233765491880895140717683617861983331433093188688743028203552071007959912227004114110254391160888971539113893336077742307620763870039454621706359636081493136298755567675015008623337658025822995418419400056884090473419038895971340463793197270384140610105531777901480999742552725918392355067657687319488822151492677454544338894089279340798504300667184155916148448470738475360346766521378050144640137082383192192324565681618163852880570132024482563076150011501624045622399355502829729782302464365754085534000100810996681630267327754821562840572344735796970478584176439191875451827247340147536692852144934516588671813317802072333911242224970994531495073643474577974163195745199217358454211269009198090388912451748149527212213492053033778111208078706396350992749836267527723263419056266807615184150611404749618188909002095252538411309459394812882895418105030887898398276435056505707807917085726560570451648632498143709683893644964294239325518197942430921121963118796832919131551987012054489830852987220524361281563209313165515882338574183112354622711710329306250059621467100476663594126209903431434757437261989246615001141108130668502286077732106413062740223111598475166994116227507533705328003960785137168990037025979961195502946931645799181673582011128173399464299763448066449135715621727122408559207551532787772238149602625030893876280335512615751982703509592190565963996437187774547985144773076749903035040067649654956302177965084999338563787616539364330117911831457063020164259227380083120628103954426461808522312836454554268090337977052949808708589443162830022982527300885560571871269152971926535344384628189484671431371940559223008355037971125302408443852358507076662167240498638451594165484688639945038534659844870644867901344463016731217326242752043317543236032552851226105372851147827481449701013568663481320040246726065841302055832664931923343280138436671741818577085028165863573482872427021876273388579991470454535319636494251177385016959870683885708685239245955200632145082911624643771195634029579512546792996225408160516321834590825087864904137460659924342730483281837411940413414736049239440933127173295340440767110952710646858921560699221791158376834767600599672099863668689645797601203578963672915847028106332664543957923682876514925047238930747292137708845515248952025029055801549913787937474045168350070207053863198772388267884548163607713277958215949106270528711426849800563967536775535787141802487620862790309229598025902598569380728231947847960338422207326276668965223153394972447782544891147317249085443515774260962393773997463169162590175377809181215214970968835270489490921306643663059025982289570517618330468957545761991933010554260948629399569281091796786817667655833572787061557293261372026333246929066112648204140563722238048641530956077533497811281035401106253244786471746816809131521951679980256221380253594113831281859518959790726930052414787267842839834858451157210888436525984953661472281469066381943376838080447184422836268465496128451631169701254694834930436450234684210890023035708664049607982169852595392236690126449665044829951315446815193398434852422192450299799686328003208760305460748417804084501260302311429117118647367786503041629052572373716700947159946335002210636271393309610208102990966547484008382431070785530083209451904769321414301512346783643896244303232941810111508823557044882160378085545785439799546257638737264639217952989949290365447150763496006394804405180744125812772737632658626343465337321141171683233002432152456143816784303198779746398448297772175744621270124646864406879450426026803165072169307812909073757478618401334927048580413557307530085234040415798671708361509412688030524080394596033456126109248427002063093010951951554764672068359934769622721869451700672619415585714291603279727478448133348960640288829684414833188561796495331104879845009674722617922798524507649627079359243224667563522198003410505357832122472965414358190010512993674331597613191701127164955722526902882904893453498822911119868462659415497786780620883061951184489528773929930970635442109405955868526506261095911789446535394592324840724895338615971578774880858587679040041593002025212415487940847030871271603621661833501624332984547432597186811851752322816334005240478600320156572821327134438417310482099255960151901270250724944274693441792354229512765116647898577535279046196096338492932288374506667219930132261969148229689508892119141656304448907942567587331620183519991168913260921933584802007894757228738169425562485192311295166095977306547542365109191110056601011729406082848100075092177931072949763408254190762160886505820563034784815658526491152820009681022482883877346425406936497166944553055252070288055096115341909045523551633556069241509526149583029041431087412139025020004427938005720443675992880827228767784460135954659347881224065427157656761929074652140188932432470858253003023310621474149290743030569165998879647204949638955852192740164050625724137990675537616035325074657353131981599279341725205840794882676733835088897726644151443723486216471159802018698368799317011004250920463805354543022282296099804983164249177135209949454545237863446441072712187951698459580021545370798565974897164885800255039060701922786462031960852780896945356607615369837610650043187140825010466289548165345567955311922109489065264069046679098911114006417343277362296340068480709588809406021512438872477809388358913806813710162255485701238008874522246403923010833652511982356871776634619231011439444973343919035674621302170960477076694743863397459967526647871298592231762480731113633961522033076488220244663134533570051845586351426970643250362545769501999378517522022686479973837463132156212631784821408495321455407887133010822548478012052498938581356456409100253174115251296048706510459242198321701993554178468322550629776818639172802415110128625639261612575621219539156907965309549924066392297156286325220691714007828525358438739556533370827059429374774796106417276519059711035137862084613645953438780940889085490165051697446390324593920499900210587373604392181906049194108929685543768835661846203030981194205710075923929738613908704561622447938649288397858014287561985482070226362227464714483320998917090238544058508373979876017929428831447435751384408400543759019306924411169559005121726184623408791326071966340482200459055831591473591777284442587052928138630943534925053471431241435211985967922573112259103939346799836714581745079545931062832770410517978524292649912179132298444781064464517924274702756651845608037437042366383429163299142667115262866897216929205048447665296205795055902882488591954687816956157287792613752108247948545410985977381299935357817655391452721466791095506506642813403434474771758524901537646338931259442949237172505967219436207314367752780938824974495348416851931613689883827509039429747543559350793732714678001307692347403493566756417905445856610238331512249600802486291212581948456769103178174195371764283244136855185503850714977254072495744584677946697477420930933654839168901580503397854423284562539243560824064884503686875639204407066417616526156342412162607762794573917220426469085308231172030585409086572923183012326738364962200810579011022693162580653864760956555365745886839081403390622454340219954822809103681013434254341470806043441974991377275324933636639895981934724104221720921720143959608143349866313754334921780770719655274798540728624100562414218021260451420500884685569167574714510840053570180235705506195432514761129086945524942349328574049406578577511975954232033963121512718783838108727691185744384364756061786864846807993213586989223535018918927087739335582394902165413951304160000461671308408405258359942480149682156004128237181975894515268710065915721063117815865116145221493438771129111591198455523907551423764875896804720622955622277534889542157462872672542804914890233544770813188660306255595849964572058152453056778498812650279859979801388983860923143480896648754505961380060033829784666560073486913357233056202553397268393522328488625546965722775105099304152249060429073018996177451468505620522336760162026649847113884707219219366990647418652506204821610617149982953485375618922997650773031739253676487129825635446134058992273589018196620172669173989003368413263309484551044643096777170376429523714696486700438717886229078537389940656909089312889875480318673235891140327373737043968354582015223508309360497967584143852617702673259121815401271848685051016168767431566720358828799330940737477014206294454172498494009176165249331267233140968889401720117432302245766284583879095692229337560817007451350937184598930273032961328249880870747016703332538896105178547834386963961630130294947298637155981989577877479302577727682746664965359270935532437041474320365058471049039106107361664585664139025161431823705037460547696897001420743753101460831974400920907599810629736955456084367620295109000363459785812318542057254845469721603639146414619335536526825101377492658250331942008357089403718826635203251626510664043490900121625458534036088910578565805112835084022874032871287306942772855434973471031427353507841182827195384428573163860703664611287491707984692400574782230346706291294133827035455680939427455572366125660647868282999597782065880282270327588086083057898126297723274735259515126490260290884242615030550767376859390221378359497556829026972928659217893223361506792014053929868916793030406580009894909345820757164844701977654669566507755730252968241350485446873391292034937430582740828029008513336727572385203194565411908568572820282540047681708946798158750559882901645081014986900581367381210362190561696354448380804830534523301582085893314438260891344164383088472169685054111656695489962718428779763282417827113543747753393947020007960948836406592700934460747855390735330817470415423790896084180898438690911721427706472212666859644671553609051529064194709631428110753750318647947168216444648644044968549433252362230644666476517909170371369212565959014764567759764748393056766410798681561391181875316514040492446319198978415928835471534180854544908655386762453816870463373085832016323464394287721657011718559555384113004261877139759484699656641941453489829513623190218528111808471686077237542726839198703777673292186412127203990476396656017953475361417934128984829245066061819164359488698379549362048404922840454622734326931846850052959442140089404432875701465909254951779219006579208649791080015060171060118217124105438933672176914703759542245575273581284944823463324185343058380273935208710765163978468038734985052620971455469311613841027479020179560055639929819219828141635807746535127745114471326656285383372614706613056952028063273432235509747471833757213627494798380847640037716602863465887048477151617052406095055277628381612838986105635072324069776698886064851301832670410828385373117392316209719376136675999610592368517279494210251106583400737133954293959400529626608631608130244624106597418614910549682929665263553285989723312224643857209534059136086508460867131413669924196669873616274568024044173817091055762283630287669620010062123622122859457746758469834729827524902389663004762001986138494028448210543853860496288959083221411343848620361763130151877300539281451942318198636233805417574452048613633789512991166107639648224129108134394533026921337006677383354023609885219617374574322117448236397613777228451611416144194196797503602173774512568157043887065989680535525879607090695226090648950333589074182920377932729909036671580464062393856301928120178435391748010246375701993076480162132299236467419219432256723533118854127253676665036642868838933673635903090916977256530559258562646707818251861641059560343592149875393139551596506794634077261093957543929874374290421168097359527124493772806609125377790664171992470079198976690685766074746218386966926666299137757463689230806049934278049809470682420443604343061490221456813844033075038630060332367275239704002076544861771053093636545497307502949273843903751568910192656793549206097058019724663694746759865712681667294114733107754258100745508981207756483053327084430759675863898287610668072793902771278194350005322888652672945817481016583599171653823675918111526560170619798530197298530926595898387050125498339835340539946504903738816896780976883236385274058383152638269471586589162936822199367512733018885973218225461126196366930306733331901393155608382800718786172064006766481740818137031773364824217752652996881866378381412760174960337117868653527278945174027328393395040585213342337362616343376687515975376289351584952252219867447532395949347715888421170888547118549294447358604600475242012055655408772019580740997314736164597407232526514329907764756416952358744804758381255667193406008680286473793799982177297317911048259867475781723306852646035887037884981602920500042947642769252585126936667234784663304428863620424242488309653367543732177528682874804088834674257017752589609954296397532280718471638199811497695681212867161682948617793198604458442588284446962297018903415621711352524157906982850602185505686684947337350747579430768983254558967233205023099422252369048345348657662122164023139089819992977999811122088089221408336344548115112416601877077041278741056862037714458870316904214797962127238028908416288349791101236849783201626608212943792204711743363415270831308244763217960343045441821315040188971489504620302864560649208818227279775072763661054852440669283272902960076361285285889066016902500508501161090329484891178660917363520963233459820260898731756368929216472835401589937758524734337981878845877771244831635884155157743980027052881735132003987889646433100911881985311263158399263945817900658216203392981880489966240801810006527480556970789869983975294152976413396610104038366512170333494898179386515563395610229668050097758750330035099587472345552894791764318038722272893400700327318837832632868880446579087621182527942389537197016463425548341453626668274644330744636643211225467045196248394373919149637722908930619177257423512251235081896670160459482124750545457636426057907197991531882952903279510141551145333720379892320333195356047269453123457849981345690110394781458261737010857704705373789958898991178057648461575942379158842808834028186170704313012755092382693810708691297737507032711388221394954795856861214723098081431766532679257153350220875866631211872967761335934802099004853177787431246422128109632365080576495000470808922387785705041755258150646602694211374118529596475504721891761320081141560578451659766896821841531424264781207474166983650626259848264171996691458727784831264402106486322436585851512674161090756338325398358622051211829623971813266492360153090715868379222435709087529485738569599847372497485545193181959363091040360697924751702740635329861622892121461648775575036272824687375378618587200673823120839036900214762175039649752196374475758951477596417541392476338396482838743551916510201205965997349555888467397511011768812833437470554489750675297372740739025227021287761453294377937479427998832033220316892068325768104721670120814477033387770545503300397364377659443415248071052267833653676465256096336468871032013886114184248997782698474284494329410546098096113857477527710587529280949774550182938359216348508617256880044505704508422350547085637376538859883313896711167394216294624617600886541959314465318312291535265488951436286109986218293360073492385314107142034437131850347578830861401013394797375065140039095736572266640388639444730514119388506639703530359508983929120324210373985234237601287753933683542213641634956365041629520965197919440610045413975728734437588073752463643093080790005268860062018230897529919082032781656446808811350141015606623573290293352250491630354456294287901522042232077818666063053561457519110076452626877521750074359082064341982985655681108510961562410621693545630508770946275605482971469208654268022768286760530287428830376920883242215036522431538536863987253974539759067392906012024252426528720965831468256777622042753874470721811994217098583192411760479980510331865721333256904454237762238586282893390732742803484973219934436931900086372793756207028885116755536832679919551050254174568866344433325022301043540749214374785350363958828450256680795189524946541774643271366100567828697608744626067541351230972383792685437633416052487659195181497166838639421893676443307859299663959179254831076068565619910596122455869083659562624341711982791349986380945038127181563316582929423269638006517343696645089298744914065532790546616534734712496594379205895244609415180756597250258867642001037201056359215100006256199210831699318246405259006336324074146437066797412532654523799682915966060526363195388283990076796545451930265320764842102294870387172758323952725489526914799592309757047206185795749714384640087232017179916732486012361274497694657142905416948174585246394522192868546715139401774364452193714479693081245782910698201799423621769170124204761073807066210720207340520656846773117818110563293037258163768873064104047760441743205200893369651139516651077749774120913149945626986879702556107547289627548944824382781049110256987133473235032681333964995828463883866599387264988903829710524375111939649259941846193166293498985058401906972132133051070999992685148967552598951105628612234910887019753989149390853137118497858936913114496646160427432155196945777797739168163190813847797180679873306815721697924128738326151738001775280910221518146888871320784821060206445494449244735192630511925972769905977650765728071691815537732465500240791569155562881222450368570943442684705637017380371131187551478571611963054677639600402818570400519547830581497835118856823704511885258889953032844690961752160481682993860150543377499565602320559981533092867700768315043149481725706570726978862445049740839307093687449852426212405230405115332546677608683435302799900650875108820199049199661726898477376254823646111256522142115281980992468993485856482738704729899797463984022526586555672203726981650852224575973237950976562820590722450476022485342681931743198397557380825623467482306256771128149816814199241362970100969044434069129216503190196245626066891432202582421276544459752718587585760780081618381454984392462238550735052419867742753009180374833502596517531216540111705869678702800843618495304835780831540823790123201709839736284829971500966934231322919305893183901640349868375961264083974709220439137791954815008599737968584169541203503779385146691972854738010692616289894485365375716554643995850023314001110843850877146075872290028882080544739632902290010335747871307192350176435082022763355416035114817779722495611594144828928584790239439052227531804044544366163450317695101425035209077809193392872044643179813828662046826390040300879248658664741020789437157433764241399882742693262302939246706895518051252859773138860423477522209289053908127129102740639852239237671641504628255993673753262264794852653826517945535803128099902924038185681490759261921435444630156438551769898866554596112815877743674384059679363804613733659618815889791191432948016077708062469962407191199882140692937533416768572006460579165154130709344702817296588724084166668314234849393681905360453678971526281135104043450677701037033945534628320819867857836315868697721503419307598856212402809974238953612641493266710323184688903706544665586485853896886776492656971699093017933841589781109010198994772035265386302482127948816283265838029662591784236488383275085854316079596767417292753349636168449618718847082997186866405987859493488349854049145142275142077930845755898679386446079855020985163455943419525822666695570099203612441914703609265517364181148708088986133572643908696212475082725221471501424234048942964626051822633506885598889719548166140103262673983843145199764923723945773824743249115402030123965063668144964698487399065241855329769245054028851326599737220890955769846747130081552531868845729188112193958240899103664639268504382686470643185501000238404266369099929749046163595801922780664076467764520225100745819783347538406473543699767448585979535534134891985409839905045698870093712251866795401626659591931274557580414045368547147608184501187266868979917680071706319119356507222558625147854429566784397946323041717282294627123449466884376704085752901051692325986884378046175277519060367558000907436429068306057972665149857218003487541140082650193805977136506586957083369596253135741241507633303880314593669375705759379532809216439958038492672534044482790795226225958599055550773711163794011702235773914311917104954510605419012231165942686258218258551988715374868351527407219954908434113810804504893837710291617527347876797643685006883556636270242194432165209041217389286176782201071144295659327105894617179250203973627320916719194495977485653980320869026875754322436083074843050230853175993036854108514466747941818167400152306472582283386925982080072649583362705570814947905122467344996674626536603646999673131167263504287306939590966709812692423567075860033769287591221664070450873488282569414076894735772280406878685916076147957553810278641795152985670854031475308268068728932834739845777280031273017313849698574538398629648371714001765505181032693631803418556554930554547058285821742550430014475314137178976302352898452291717489035924835244461111155344872754158420731780315148359205329046672010368998564679739527085041313521722358218298301090079384970103645733453498218928347268246748739110350117755958240303498001892195476679015405964247959940022998290146368728764786099700732507021454467073504647544798367233490268401063024899757844719710547242024037909725163602064442334746755671208862715185585864001440863047416137575220649507778928720125163665924949515282508851068673266705862250877532961951653498607014426695778111310245361851005415753032577296132654027895856393114828221848013405827243555223762871945598383199661099290489959916114434574923625240143698752866823303767777214648099572915794681106024495115518213452351145344952150162187280953235248712953504793314642644015940511761952669143764273340173947991343155239327778175857679047187211192605211816663799885365573250747558929989713648599631834786457613213443379929964308269564381237736242170894249462179641251261611497133075910725685713837819455475394273491994865895185920341501942223087763298198738356064672331280271697408515982682571666226270338923230956206068799800825796962307864628976180481146741691547307811934974033207537794519585401750203520799188145209173107517879376429630148419689861728623843266384098507033070699876347934693388196872925869232151789430990381630528173417028665371289765771058792047816925089009904477942505984055190256468343624541501209800627510536609572438151912396050005160832862755014358151019102063343906264499166888735515857324099418565761078329482314749066645278062187271748068212878468712868279689449143267471030292959198507306665452175840474675896529087035027445943572466532815108220105772010756241900309840508040322698718547615576968352102282586447465023042488606235478251228879648731231768926214017226462223527484753591515014929988459986369610548772954406942521768599228516050421277748378521592971934027974036153863874481942094192832080031625714851783986417363354835327034355323542050059803350107377016483262850815431986112361770921665423468208431333811534875285556487197934081439804788699131071929344920641185449740746779222868989338468555060629674421258178388652325259837102000523199686272256298454270650100213341602345279256283263476020411055678661913114123885361556544160791360226008581861745308011415654367199785682294337991054973363764127845983415166554900248600457672098900042632931345408606886625094018812817852312426785436882988611882854614709041366715230050984453277214325549841566610416702151853837880717976190840704804061227687896169569469123702717346799031212744285303162376369479435804084496565884294026390306015583736610315114622781288059987410301620533205182304041877828056586044125060003090343250320514380653722169253840235700816846539287168566061720590188845972051668915993787989475893275592116040299331291864350303812243192984033815301086757349818974928810770608498693150310721826380674503652192044370012892194726497086938002366834531869458964241049761327144201131638037252222726048058802231178694426023113570650763585704238141742218188856680549282878245586998740563866533677452124771868674440369677511855024537276561249597027642652835520710434373763270493246611200730850800801803087213950381960179038261608258132118112664370127917720271619048865078585138457992058945195403088618548122331939110031893766104808420702749091298300264623955547980212811027079498283518552059363070803010599913396009185593401067415368196709970129100823145147298976328843332272055598213668810278565358268385635346394640963808988512080643800954769861988270409041028732763973044922156851183000127959199674048422939789239323880323038946719237516420661440948444364978967778158800283652530826628891261923689136211814975479835568044719038705606286792263449609439796686305793507044007995921569534608601742725864883497357782688388320210045978912460785933776208985545647108559701359279842141247749948615864029569045025394457701556367234588903472646820538434477968835016278208019003459199473385182756072248634866510792118426054103005221419004561063581184259600152851315354429703043332675580306598230138674316180677799578156663334575361037379962738120287210455801307884407585370861288983593538821059730528061754594099718598701319173339783457357281101173665510164177692075537117142285086502109453101245692282033886647853794285008589679319907315654484731634445243218779647190788241268293037894454902310018891047697646818303168685796556121286472166056789022057208607894203405929206938882905771859753653635852217170285603669935659604763552038466783305752448196327013994534690898599275545954635735485122891401293946785383444969664391919719513934277248459927939635497887146261949580212591017277655780469748765501038949724314677646712865221172575793952568028147820611208857322882465647846094822665792633607544247134233679936758318452811281538433433170289015275618702865387831811330301391485929305409521657571784670751286609316742380589688097864832260942011605683701412183105413346646816333144523978555604402409995404674663015486690344104678454921096067861824831927680591462146313828225398138443533043431214307723879941938130963024176775276595437224710545082157714493623029916375086683090818658575321750589565131520700878341693567531852630333255191892327117307793290240910525959225937061202253070177042051674464983272042404936967785508832084662608339726145560591902078851881357319508537521384688779526431686720211216228650559710650234404613171948570743286245164794107730252077382610993253736559634142185716593531930669392911694493507284145563181393839232834213455291541779884662726560208320011987709635604891480501825517851016621258340086221780539649399198676976826087039041083969019803908578735031432635758161941360734804568773588062329936697524004558767220410421595996667103684564096693293334030203409095637377188436966501151616333298284660718262147994650077803845702959822133121782655132528291379886118186965542908256816169738053365087974764347741089718458323405020404031847608249498866134431660268470271830126927714329342603283536782132839076800168964430810287212861596133249546429984952908049429242574672977771680046980921715522799340337640243444562583461654885417820893413687179957966827096905557692005169814435724859806219652581396967008270380605918736887745077466515270361245944990627790739078750223273867590250639257226303053696656172486371625163266096068913294010726959106452919630817918136531503663855999511402425807802157427225697924335941707451027491365225919551876015893939497202352210516616808491765693631403844254697994348832758531619317271966317192505063414003829237495745937392132084970660912225636031382970287726038132468936094897822875202961648893571542178335317785202242207634976389706973352918817623063223852857819972100924256731065421872209681014116424881306674720467690812220167902673549606498728727837053584660958382920824791284508096121397053400122117779453482169545516888643428291578480126557998548225985916329126452774706922768304069979704432683052763387293768617400698796989320051879496049875799144366913228484979193128107192047050009805566219161922528766351758711084589608601398535838682765632659202634851822155420372010374650850395934916712333379042533597879361214055662780332620811970752091791652479129463622799453147528768451950375227012056035699364834766242907173665629733630762232121433617396561458942421213063259518278002278852594191683985556100456836756647285578825964119205820629091345433176804890999670371772949334571030088440443377022367344934871113432991481510335085016166238741175891008810454512199871820672403564187907677862149779981964591857264392745506900414786569833837353946076516762391510624688030327903132366553361670891997515063472991153399008066681042988145981894700685983051075019895803425036258863828789270940768203577081393683355728268686078832744364598393190754477621294673038158452878886005760126990418282655535581190620309071696755478771865450073778104225300054350598918199574465511509049741771939832904004805229594565747149312056950259813044153817846848397223617793588009052265788981156982326451480662770529169455508709433780541237664715462416987485868203665127601022366891438870600710975063023167395724414886104239416689788578324082147575850199985416894519508117737761503448905829660632673452363774673796537816117676927446657402332047842211226290171543338131447665195942331989153593233927228156996010125539751239449252029801953338666014055142833835202523856547989001918880413777146707474989558608025082679693197170880274493970713255928163044943403065444831812897145497040438569449079524168503887687642860827232404982689957664450226061983075546436486458811111705511299907543405695921383349529094736302440315761041439629503179577726286231823742197192579910777336045739603049454724028441354664769784467683597783340031054656897383386664591672933580079238476032746561126687186542898936456426369232502018973134489958436454087186635189205721793946281314357516609320011267137488585539318927926891851720442063497187601345062960244748746247422299918495846615320578873782374728730438138471667545580212045968041556214382936194642703387624484204345845486018381586032465209038886006217048316546141405330037701679743607356746929895992999311563815677535170612416918773035690192879857965743104081957051214887879953014694176846436510616379289636706777971712859894983467453014025196431724182004685195825027621381942017425331903137185090357427207427454899059455926425656815831861169897116882349061989996905203859828974148338174254238035918439829918922966815583620041162276334996446988981431796987200872059502492359012513204603822813737653324066456113953927774119818812804054283586371922647149914795228717455953881939841187384697707045877305916258317409010893828781912710375206863589792777712111693321068369936278453759596888509536404632508192788254043699564119796911312238458646384057229099628604828395028381520648035393601283736636491656432442752454644706185481391305035249235193595303306711890699849195508602191929150057149176567786482432355678597665522013736752542185405588268777729938739130134316868464216531747246254495139490528450080932252306325630461296279201944802958931454000556436232803916596366507470355678108712545796596097096951027499043558258743252548584076187159711933128101444641524491360615386642974773578480032693143799112663952939844162039010460413220069460321176355639319619502642583433928899400187091279859017459243442405498316306862835133195377553241935233106821971949636047083665038847221656665714476436865334908495417460611202286008676490442821649603954588089742464260715328752207483944432827792024456641309634782219957742359736959472311993221643328104155742326772844988192302180116625757700715002111536639208704314525406000505728123442039934799010505084111832258077833494828432663314785766330333393927920611910699514316438033223021339044633578407444634814777435770109196233952718167168193061615030638741989578605974211761284785153169818991629376789918701537440386951118779210135982914924498266637288162379372950073566099194314775787787058228090601502050256705970686657835452113964555414729171558364906722116788854062527296064965326132859253802530050101387670259236628960164921705795637215637771766139858468762894745310490451958623281302660490834423636158184595105489869418169197963010591935178277047873612579889429738723677476674818852283051352969562835800581763600335192364023676731935101699023840664286581864445324702746354627390488652835970935503324543262205153678517569383615759428624253081173289233381136260470348597595932718199256045849597558033696505841019865037933015294477342336775950232722327447153367989233861777810487719570847408485859487913211800315350364927635594867042486764806675180831872129121583767601953070850715039150269919319548966117793417213715619662738574116354488087573208678993197991201322562339299663001676957037205456317453748392706734492939926230186486539611086467787463911048955378924728537768824020923400546680069958303401567246333994259866083609740731832361918850611859775811275322913972428418668351512791399373384942453441094335331490600965251848843983567867661626185497018150079377073111250802346585797848507780018168606091103801324412159802163096361558833154875306207799733067526222077288296660829057668766200562736168392572925946635883687015744551264925122112936589391934138704876645290292625323123276523424381334536022122876953114523640174764168303655220735374598524354627020051330035652508865355676882460848640727623124017694118642566796031527563018656114932872212203213217723461524799343316013901326130859487973832059822282956744050850271842651481837579804020728178800669168429278192047312700822909343531462328346976100689612173230062815005143232752619902545594275142807280057940159712756947932013103930101724479285185383987386763311742567366082822449419088574697383553039608014158420436160334407155482855615756429635326740064911142369728375346030059611908032541589769445462559209521093149867938448434031834673626273829244172829824684950360059205094105269455025769789678502992124486494967053013814416354742440037256614221873048311178858974993065811590207417700396782582274780627621942222863932172978840404072691527701283270221328273694789478805316911226868824689552820217324419805697900410522426422700286299023356742149398683371368560924756359878129461569462057409180076017993968052113778124121959721602261038129787283356416171947520412662518285549472278536266614279338228796201637288325601939349787982122291693428194977194622433020461489152910997060210793011527243925358641226626703386575988008863433093285249077859618316447255440171166574061321485936350969910393751646304900703541805277575478279993674416501339450496121304831544306784055133046975446680623218246838823838171122281810307014166840765119126677467399798747623775384841721267898396523506697696278778226041334422209828112214382795154879104138560118661969837192642043157441888783059766554357030530681766029951133419536906293822776724037480512449091354607780028054274803168698217233236372583226555966321840253892672716113654622530312318636084855825671445414588660915263850473337484105198037731356181354913043645568238116708159993229104519066661018102694448741640845694626017099916617777782043646407578027672320615685808432330550176785608723866942120375030633957184976124069284987114923911385956253757623781040519291691049568547826693243066283172756680485659456447958940579138412033455991157670949540848076026483334264676718755670617173214798390939366127372665248365574683913049352725695004575214569712309676414641343591849878173346126702315292440818839153111968283563966309018371304688970352003918081300921779524624658313312214928541124656168818918747144418655822738356430604576395378677747760771767516508799312782747253938870799099532492787828354606448436524175930433641297776196184789303612477596225165803609016044650332966516330216903000288672892301826895726607974005420629793848979754051657696137602294093003261971773106270159135776339440615326127773416185395268076669362730146927854571837273158251096377858523556953220244545010694773346655660559775230431269204720879424288894563448855213311048398332658458584060888687634408611395266029444789038827731408355433908397073216290676428243253600341418582744621179862911798451475730491728451582897901156084070923848966454986492893573687164079033356940589499618978599453237038953110252927865050324904168091497852533379579523486632400689297997797156546567583826289346688577818657302779821442612619301458350408920230825278133161511375849110709196943180263405079483499167397982355468734686105589876266180284513635789807194061177160495726373622406466820120670994676729895207135330520291473712327202353678045467321856957043376646239233702886984579494290734770702572157479914993365248871746681965588869514777965336830736504861002234309669726695728056141434342849473149324477715310853165293777872090930972133287215508301299716370492582843133374687023767555139065371089530403103096232360570920890748492706883128009089871511416263424032715813785023134075163659833311665181647131288781913948152494571324289140103635797528462648514480611719302294370370746356717330111112298961360974929802333306576623275060780184485816489660363143273509309148787992881908153599141257944230923204351741837528297047607342941008572576250959535465795206402176149085922115250851668402977162572703634599889197239156464042159947928508993887447370588837210152125884964348684845410922657947993924321711315028933145242463683240062318546725686219632391713245415819433453365099435527529158473548644572316735762870758665488487395206676752078460534390843755591790988398051772051028145370406279097619495927736313635742271850931399828766555805153457055905399792687133234549017109419583545975591093524723281351725934869802717053283789509849728950151215158023826585050287040234044602255478893387276088315239117659668252228298865051693243545242062762594451086337934528305908232794399785238731094792016360416410931769858693599892340902171662476370279513834883824167472747489467554621622884915466690834056474642288121718715935579132555917586815130862458384900172176185971568112412822837956629072298831408922703112082952635767014879555242517265592227408029725675802332565309679223184058075114230132907298678107995466656215979446956463186416077127094825677497793870406290355980503031484995863816514756964679824447273467569663286108326826871305106409457161898860974940146000669907271180725810661149209593155067163811571363358585086723108223905874804171800544425213643006716876739981398847500942406887313536989988107591304418815911494989004461824003837044521703078987347499350774203892846966614329262414353030631710008934212083284660396039741687691362584172015456914590692818366940801007151624321031308090129205499152847478531747067852027243848497597648677923521439695477677431309993658954083403442890144457189715207636622677964857948892842700204988738336268766334750999142648662315647179040993025688722130461277210078821773573759126834593205587974396232966722633782266846990329226310476488316223577964303062551893594687686148217812388918599617148708012242737920379340112649382706334347246368196135314605255604520050213790319885924554559551652473682465795041205196645300703763706324077437955698649844745168999439465119800962789457531563969615854876228671969772532259762953172631782590227302115898099919014337558895977696377503955161505239492803118701024635309163264061640907398521112340544328940722517981228500270005822768384007112850206515816551968517554201112370832858622048956258319375353933272508812919418336516631729877024741920955704479686157185816109501152126003546947553979030785093559279564655341298989133884449773081864139028116654649949936070486735540829365964263088681410335860374912374649753763077802907233466607950267124143156134954356691785392887578953878516756723208515857915601742968688400101340880363452107234533403880479093903991878284009796414468626566427087277835305989834350336247801212616710762498152621794614937156575678151330419709811417006673957714544776568446463063743501648677767402923857716621826369321957754773427093119051690010078490410210727121357075041439610298121190402046322656832062694364583411258934851302176801851734965628649307586784644523433160602142833820009902810753214945779594077373445601361050213305689167795776406357921998483925306721589928100578765115410726906665244716249967008463668047619936579433297717249482159335781390492897261063780939934013029061778109710740302716984902482218622700279648936578768954875553512010342407924102679291385909912399443948389078735996516653253425444125788120510542612209116311901910596154927677719872178806496924980649490644394151704686514494294106708944753970265478053665421391082096595082307399311722519336622267440863525251020652630147314488473861603839209788402188725088887994474117121509399115916189658797850322913131636038563005835996342908149570541326548333587966031168902780139728779994091791448042671113778874610079698397908597550232623797409001949073297413898241741090728436692563661549034594410237042734887549253189849546925667705601462909807447780603380170131691497183101148069432588898031393991586177893571537959378898620583379215485373835375482666946230644488776984151275689598617298502757056003203278568488983804511285071511038944599797706535242600869137729781611935125282231025742249980361493063951536617146393821972417482514066805625047762596706566273191137561297707090677025659342750772339126651314982881204175421864296762370828124328294366165516983204250807206194392825530571203216117453575658805770927305133306890531543261909277113232882867031199739789767044197097546673496743806758277205938112955450349187221322762536246309896808697623599183903397530683981689130836711589131035770368064870073913225585374102515079850629116863334720170221605380483352937303846132429343201195154397396237216661384044247488484697374526933108190921253124620849919872775195200102273769916668685388151267973177888410261126879887854665510454652726244162102545679278571430067862262074527304262370452639642325288256595985952284492423419626624549115082038738650539238482790758858274944790293883206091649049153626641306161335854890795219442129163876770768700521437300303109925133000367979583718647366847143394170368819236732283472685981730009317811693695966277904940215063450966621868538519721224719699000839010029985918109622970643220333895743967034280116209536706105660501230024591907024731812008500812084536557614450175800582928382603797541948500636763099890218083028835754818864725800108921262898479559037536861737868069330695844760044251983462357144201788625304445926744418259674379942752034846960717231394234190569245108117152855193805752569715534022264659908735736732511078802046903525411141168182731891760348718812575840124718883699527902075696791493725200622156301566237730667932974306654292693709485037251794477986973519203015123163468122123992354404419643650847733303325613768021055400700124252441750129508751313941851081723570403056131745871441362454770280292309296572118746508567137967226400496651069162618805733888152222237312865435304696345701316062612543112640593919758092836541353161143319351530345289999661188309990632056631573031415857324773373112846918294052512163038696962931298779221052773793129736009172697454839618442012893654440676553393759372372521603808466303360445773466805108944938668885007981187194911001958842779691683333785689709544082069935930254427860794159174548062797710878951461333730933627654277881683575131790774613670274630036737184836367051093851955577866235911596561925743104327053171450224943164895370248072305594881869939740812598684341361241252597971576505004017521876190996739087205069029546802187640823143501390358245951190007729951531678456115874627088983111006173578219514801720076744886685707493683875151879041227812342352085414988130553080009017716224697695049416558712944454607195773461409541711372253665702851633601487133103004924155623701722839432955259565880933539600625134424062177030255236897093478306136522289364458647237492541113293917195240705619879576592969040573792979316642175205996359119556303749074524440582822221563595326024000180928209313235872646339299162736330466162177926200241473483463393219267307948836620945489759227302314429109472513284844607078206328253616349531843327640555488320827541681270983750545617326557495367795156979002199616361045232971205303699004053352587717747158537380839818053967217819970275295455214125668688279583896442919436121807372876496738705194486049500122425920374783849617424987799738558037674976047069553044525955895150247096583988371970219859629662860988078495306066008705126076205655462851269108935780112156626389063728987650357624213924587910478848816683230431459496428876413327317976413191678399569122678961634620616385540268028489111384922250215176162820688120672444053690735761319845651669923975480519951447174758296599577153506849030692667387133311899710562303011273881463014407528231781446645811728275818533395261572634388166445925597299663914349046427419428812903420572302344700285228115865349897252888122212529381303803016193689182455859788966756658596031791890020324048393392092403045140941793670344888374760275704727542293481787139584414539175867411529241676176071280927969064919292485817279993071664956900271046272067517390712490199348296190107288668696730275973008654892283686343947889342573299766898498281911013696311524968001589272101245919122108446511690925720409033476887427589264005560560701518044122571505182421354902406820344616672887549687919356620420385203944089326834671712085595339566716114889332591726178986018911811295388637593282199052931759301242890876707271545604916461970953122497010173618249669224956552274154613741584622244408337326685567282328734236030357683536883055867639832199276636617677408639343361678761944545260024215602506219158408144114638950322776293041747798295669305197573003743511537872548390951558281579867312624106326286824780932081688100411629832369141526346594625068759580866506778548982514244240040697739648208209100719833407402909973291287377256923156807623189216997462517555592625067680415996570954920174029318873550906682977114410364000557945113902706311717319897892466756420445370159326878722206660159552701957520136393184717654222823083555607752221987357375796007987294513037679407423488471072571563414507208585067038961946659930083936756128249174013726338327571598949334902636739539950809604421595138028842076568963693242210904423210846337829691405227791554088599788766119051380926277707170455493314461195340684980599562243220977164616006227443703831857314446524554819224726264052364705430994599759835549426129599024332802792584166656593412343618890650814720169235304592091672114400687328294320099041434120178138286339121544458150734965921281809964384264169232800219272034155374207007174015545722293993523540131234974742944271972281243115779135026870970033998541086050025353647410524048736865521902616585357975439276115724009437338701822895740073446458817035110470116186455749118235690600049125056442852709937715871683528434833678665386659261771454783541991806472578912970435546638791375024203170062172158461466085212370499835408812386660652313234910860119284889153005698555104000388705091051515790369348327141448477250432516033602193058586946226908817530146778397237701756932881816376805474532547629373592343036505724426355942053516810261923120774497217698919242767375904678050218413500695616715647049984660432987454501005831371102908676787106485085263098791439765635053599206150593457857636063408720658113035065095599554384928833047569368219789006625022690636512140005961643701894179342332448642296908577437527254475016517417292977467325742610002368858610198017971426511372076874367810703691607735125827113356701470152928985910134093392150303784608342351574986589007316668517531575988963565457429567238961577121749222204745051255238264752402311250824528895576749879469422425982486015682743361904843243975394674903620605332676592074802404807774872594811336609783328061367303805042172121000758877204739010327002772136559531497371428277734644727487412606215796004438301553720129368943987266870506112219529955176457122411481935738561393546170696889157286068222425839618789209174835426638060561062368350695307266280723543512203173638984572646914279776789352216388093979728805266771144463757570928626652135711520056169724943674575218153932708608380795605384236981794614611932061535635110738604124059556707917145751204827505750724525461169283152261527314840366040740060432237419829011599182380880186394016831821019441366657533175025560720972372461368308565553200410420595834957974736740675697811687872753682991972907680367494751337628016614942338670504681964850408133126991981227826252646565649227752748332699946948394087491168680339466187815806670640536067122464654362482312590481017404526650463411871031927441987154819179123419230355412792299154189404420819662713443708068470374734263047129976074108790905376825051739937316094464299304402582289035567699987130794028644159833744830112139624269521855426150670644556455487384432241142260061080924415289997691657132225942697403203213006146437966748181831184929201460409019062889231703133910956444293129121259608004728127284613099977125835319978897888087595540566445935356355296704661549417561169856224505952583493479944134977651283699061439378502659780702859136640439489930581126838438202060192125833740968877743132930128075378648228508194126626784211299194054571605864862712502491941199874627101080515059773303928285080440042347677504412081184837743513842476679753125778484370321351790594653580080854388755680451095207015377235815128011020390877418661030223814997952624656357541204384432758598847111727780547596975593424326851724613615608041415499753455793926028927689234235606286782083072493485330374497152183999586909146188051062103349418986378622379481070841201012894838758058092462231297035379113345332850545255913169811058762088540932689566589459996744756333092960253114428730843216417379381518414495605375321979902028059609882167195695683118736293943669457971329267154753031662785135658700958709721067367997699830502933128997187864309367718831895912134433644959380932491605934152059442124347987433677974955370162596648568369121412239420766272454675886184544125621228037691504538399313920052047550107988328334829876809474947732269995741822091397698137971900964369492716788572640425086419492767675708875139176775697836057209732057304076983303833777256116732156437661125056632572596921955490722254152051469457032730814167271800306989328736172863603081854511425534207488913151144201219931437969061390549932898923285548844208517803731029545572932575201432111622225305353267093200140808570574352172142868551009852016941484552243285488125954228314045517331138772613103137435844583752938239653653788829924147485533375332519668638947803816553937545855715807966844394936579738708291099306316905043873758610334520405260664686211509142349341130346052262175116238081230042782215512809465031102371551218611927515033959021223817483336682896331019811099962935501577066824883870688352341722565702422995837953887710564719055578066433254145963718596659469214891123222346062310799639631676502037769491939996155138591089546770204866649057630162068721526601842101945213384475854138708710574575184988423641531004944591065325165223317862356555965294706381094301060542907477367071493346061007437621554314390443777980497370224801581704067693381789658641783748572120062455466382138130529528261895458997071971987309289760030739579210682886686966020898024069242444946348088920140907235212850608595197146046077963620548377207698061089598070651158578758862965114804508590936005935962230248519702307322625280182561383465163961553045506013258099137595310499395824850655586307448103877661012975434280496511132411632951032135309729982898337933821616825090625541601737610892060523017753926846131080908323807962618599824925000428954231024248355500802975678591512438853383394224484906752991828786380490549648722921385030508363996661065142627552522475571503760466779837753796619568431268145276783283782751270817173944413704904213971005096124575177444729755227773111364309647084658734975287480597861308589273097115219373365594091763781273911470609179206114633501927100372716824039992420139254971562181545648142895575335609838960224082221282596159345861940914087902063054277685309209088562337424590505075049217133246311934942016615492199531635641842477228932777785432464407473856435947152436562340175103970428831341762083043745088942246716271399820726597457963361633470111803084545031118345926522801914478661966981540988400600915393757911976460787937569585067462304088705115029541475997108930985418865105647356706145730995056252506374191819421410228209264971974389582503634958997096769583291464166505491628900632344403486509113376863980300020590355165411358937949954095524677959420216727501213900272458413304504135046741933611955775746354635425998440292018717512851143366857296390100268769350869527056484116445736696571368020212272115534644026851501345499331348101699151008044038777281146963615742550427841052767235728906436212274558997871042993558454966856926862464790545066597991908621025712544581862106785084150336058041045462680334097619090816462382806679044290410010272816576487241163004855455852769043195466809259051850674362321583599762299945253239277952420289306209149218229883046681884674930950402093214048671010783669948923026598321919085059814735067983878036114797446068313936911587419423346691447812322646283690070721950720589591901455576797381761014263254905026351164642043963971020291738459419555040198885160884367639129777414325195994492232418578970173443758663627146974704901046695629623817933354336585788317143350934074970973089329639344634680305726389685960034990823144185359618378935476123297381703252289784491896143059941659107849323583781390865912954912987909705526833893492997432734934246871812433504072352899130328434543178332835997031905030796457424737156971793393414614189880052885924648101319208744880422280967443832006904429729315934094201865288199868958624047639352964126832051435563244565218939612112300754941420094916933899832415388629381605731596187113954430199098936543708755863104064917464073295381132943513278453215632348018709536554457440031452839300828261320989894100357900933692615211675355917545961192124521825314444320388168827719893452457354151762339808121031113406559085545847735319762891299281409041950368356932328468439327600882983443065307119871512840477580066922747232695727246241668935524750936350742863810710852767378384017239925154354533838181655208534518548217679637854977102612038961819311640035497360764961741438646154239140339090913605904481886043691590625144740435460355613987088468415996654897632741381730325532634593886235178023242263623352833667642553082604393530657472055119789292240458244472916651487619910107673609823033249692844564842089507072740014266382674420016663005288707176133954676972810769333376197698062349574050236134201701174188033833666809536177601152310555029009504064140648414285300785465832684121588179264863129188292146494923090746391891958041572607771523880966655977644403527947703635748151955920681756518983420822487051159596481467009698769972757679140282473503306162350832796961594571667782248044603083850726874193425496292242525633647453850944359205657285348446660264019785903041225393856858789730964711661238001082779315638427810667904402658015355788221588043167441910898293196734132147694244672363263067544558753918659225023045732396519182501425893731187216526366299721165364898719275108279883831153416557392562291528960624285610718694228762119871615041505342619908044171471832236646622341161093037492076372613791510395726832693919985213616710792479539816506790914215329166240522836006179608287251684680813879994889103725538772641424824174906638322493748603075109561981830669820997261721729808380332686943658099185093177038571693283180298592210134291780865263385234520732729736360283787013401095222820665293612981693928316483325384955242433406382579242056692591432865651774197816152775949507203999027643095610383435476243179701745164268147469850731840234464490524030795487198698313964405530058952947333072815290480550572140617803342522343390461275559508540859725950601293643102575961923362537841695764579888159212390090937535153228848544662395288147041197653456611861753231897405026687608939206943617602918557044090602672055827417317162833447022723397964713423785256340739662415791519108743374346112568395065417331801639506147501162490217612191019077438446364785965980281956099972738322201051710029729266876188706965961367397154970023455647182803449650160964908756731526908677080391234148353745063912152216369348259109524190042860604310960530155852452551092574871541318502511198531584983853570264947026383760612576282917829158493840558203518677607930306894038704632387942879789255183836732549540403147557254050876038971716027203129407277692508943106883546549658772286619360879846059327639279928202710737924180512933590249556129360909524282490648156480372118746878349170460252735140005219323540127279089349684502599243616073315532787229651033517905143835427011837362494534811084508859357135790659273803505057677931464020301061994098885466537960367144292365770320155049123987895054866266270756316249651070980110459550910255813800177237838768416345739858727531338708507167145463272021058016481552564842987166459717367234890027682589368939691121843628648410290738373988525181279364822238763754032468634964534146418780767754477237142279819050871171676820020853454633484321159806009415912678686055178435581329728228359750698890795141931389554188020483383344571000601399853524412232731149598076604356825741666623446585920517010683808811776640273520693020458064000463992307105475881673428402487590036975630789417994282679850605611453252923146379669515924212004014661126863529990855043118684185639398497119665034615609023325362740783393697781367184590872649805213901743176063317525501467182038901220034928854262510936528643710293770780419473569703043006236178508700955411410301095348296002245929730939371124853916173703770950291661503781710088637963972941236908401372003194502483704983948612524730546594286943601098180441934526382567200398978528881536022237344725353273745360256916794929270129736932051741644913395620306297209057107626470513951935346017514601133141789771826288264658962575332947550556322273954101772387149539664744356652980647352173808614276341986521378379213039350716680050769637747629805018628421760862257606780843505186528200572981058986830270289008179798532473614311741340369770689207191411914849623114577124693410587668398875558900430579750890412035253595518922882164025445958471873304540146583056155473938249471341317222118527753996915895303264522476740085714303349231210577837477194558713793275102810629086657866950584637892117304981329966282900199021428983916703624949188594714073065637549052997235606082692824995080932151183624215118992205995748146042295997765771435284333118484971484143059702208428310008908882170165244200668990440554219614042931944089014266527699511700081828876525525989684945817110357902269626997405462088900263916224817309751351289312762588340166857425210526883217966973998339237371128484922409594672024023017134718907620028352073596591299082948973740541907365422294789090850641441418863538290806307804202709822664439144539876415596118891928026350472709294823351304619453309487946790232006417769787513062461117205739499152147683938258026184657875902219023772363517812262486517019059201246540775457166954001972428232848138959312227564583063442311762118327873521882034835937134341150409036538227944352775896286893372830489064469223798946543257285549622072730463537407422501883521679783378985797808914495497998287867474526048028530953209755871585522941425708096331962767218012295549996794055649202006417789307052103647834635502922823452489645951534852959983488977243198080147649865193271775089034538032986262561466994188858918407154307459814834258904793482443680012744209375499948804266128380527184830692837787915496524888003704689201380239147373907569326669111679538736954437034532880278152121203841268161663176838070930972977309646203472945018114287546058597892653390369428679288802406354234300578612328131599906364110020245218044548132260712128391136065358799320991446080780409511582493041097694363157399781198467919407924501554450481917259931115646638038845161687689246133374242765442888034542179409960162607800710644372295471642862430879815040275975003171464257689771490847583987072175688084806301773913696058646661410609386129761524110384384170126217774795802377500359162669750019562759923962170943754934604229143068439636062795444340890591501984871916074648725035877057825905024152407912920954115613978217257213422520659145801676054143382620403918916141498032901448262993841353226971647347191331728207259396138174123532607980374968797262292387417019959688858482689634418457517378006803613671371770086560828733895861508409213622452873853791985172732198546621494532842521537537241010953504933854607471990007339260026128896401644562473454121911528922328819579030034611574225978985708738369611423359936913269655310195460512542976661520805663186441294827618004495227154456594462840439025960209634997487843309458481262758021485891286247819233983482188444477675046749204211799882732381913415604642092516426153339714657763167979145996256160572559678540611431771769360265497887056405250481878349851753502527099979708731528152428617457432347123786370572907331365525923726120025127024476058943462519872554445045198242593541660038321507835930523125516885178160068225906818001063551412320920949421517437981210714805270611064457442044915978866076277604102468212647212023808508422032851627875750465592327245521102848400045698123559935599903399540911285570959909131224182354470974338538073572668099677392468884753040983163012862905712571335423981853482155235489398375717608463191983656879505169124236075321306558110746077491320777381998139159577855202977799741167293834096394048863905691808552539069146925210653838039502737281247109953969723065498793324817777011692248935805443819857964604878070343414695123915971451715899053325969179456923472746462591603389772973227876478036648364795394801504196444505596115044913412312797897349138044744414060440802367721750336044027417162474600388643657945048858053168469692659780595066731152950957515966564121137575417324556681205357006067273022155131543075312981539444432648009309870762124194847170594866287429933114574815720562320170698399546094031390403957257070420822559489597068835345832187255299892834398422133340641858357799896535918534690843774812516862564544409528189887118803043063499472748161404487677213256951353380246263665738872990728873742393322192051762113465242502753984416187475253368226388306528765356743608060926689830501501184138042635527023389684760185360738695740114128096587214176642815569220979406830510538503471371377276112452598716998907214607960529710782718317234438430641139150006383580848454745120272857186168934425791381886978200172741126008790582779733950523855923756390143453221377721787208265484036112461868095182238208411904013893174133241857935233905563187585306935895775753470945111981466548802821256400198298135441264305903450811369115907597964767681006997315856920478789692211422916551079299553941368613676977897022328891333514311837059965954451210528942173157549760323449575098003655879513592341299032845020469508076146221315643339331964998480948364873437421567867839660502718579996831752358299096988613836045260470127204973250649637377531009467938284292530666851081117619173057342719090364475302804473207055880703961593632292698513586598903799497001354115346763941068715357805348070557633366826759614355521805859587661435729173076779842171945803734460450955664443250058769698298309069722915053389279698928991553063560964019804315408056580581638753090966068242239446296085687103618320084616460537243340365586672852656348932859643877643299511828392189372603660633765423648529130978245113896479288168565682611636523401769568058744884546376764528857415939626086137752234485554203968093070547833517848749930316933238399289778484107163366430198187106854777223977604180634706864197989997386600309741045583142369539910914717277012488114354719062459175076244744515623931403307103179204853395150783748963961105985280558789725137718828993252537998162199403188578520986031072943392168827112102542308046379600608101779758003956627832344223442808166391580579020576695226879956631811455059276221297022910922707905619699689099673581934207001160614128568139107948749596387392857507310092485913546790286719453765109456610350783062644365544813654025043663028780482983975376508241725913066142544490802386525091159907259667131245322121160683386730407290380695540851749308207538171312458219796675493912944974221322853050747379205783354577729337090428035825373393514518618006224584582787284211415066497226600782608860444585758182239779211611836540867887936524717300566457662322686330793126117819192277192735553113014562970711874670299976962053956437741701592443212498344077225320693360786444577344459393004980855167126628130819524777431918310505496915836590558930486103395882903866020729871503577502247807823158066496576662452271083487476941825933221131561284884894535066220066579757254909818685483737396433744177031015859825823565809937752778425243152399663956846576212457181108347664379748508293072732393922706667449079284484233731234387070344673135639016966244920585226646397076256961569194525334100110617064104279909663430049041424481695953266316881283734750045790287260233695200471640297108589940913681792908167544599887857428688189327497737908379686568402652803235265918278292329389903078304256555233930133048873043487364995731698111915233232225489455570193884188067322608567623610940821480921151153415232205555995235922748611547406035584953059125873651115639779593159127445456710261505680073984171793922832434806001602145993620010564410146043198271208435353620029447299160493617219324234380040872588578335402107047885022433340815356180089332113342156225394251953686617903463970180685953872137906469066186956584920509700826369421021799813307257461488224926842834758364712964328380672599698175561731256259887746933748131218636854704765842480592456029903891293383777087493241792307137137622788824752359616743878523082728574571345368743561331280810291713657723793018775890024408986791577723614586305403840926113043929995556095202326266000028535555939164239104502564152085185140935819561865104600037270602942543829227775566052565122200497174945118165735725783715567256964446071108941205286718767086147066661520124593277929305226118967925783580634124181062847706022724648890977410388013218486272500599255493453868298554159281806051909096935293544721311583504113024200925236845154670927004348561909297379743260844669871415391266927422133190953202745693594471050243376887410906693192641428590981793702242660675404709776761992145252553437468763619368845523258940721099428697378946962632845653401135985247265871753354598030999082055441420653054678406315851375800453844926155270205780362780409248749805173743377328809978752239054552779695716312743003897149511218737777978088978166628372592133541151495942263610419789804172419169449874532297212138906789180048733559433677660781939924772017634441739737643900312911739666003668048009039747583081549775830911238506119429428992544371668815890242329920282670444634702994616173998145512679200782419156611169547343524783921060503691431276137321741568439427761079038469900348097377979016178247313675515785627570195126755012483645657431291871541009368623682059964309479783657308778676780553187533113046794145709512420225593152299258723444256093910714078977886172738925376848376004381905851894904645177440491812304394274594254210727842309923802956714127582509608577957683549147688802883090693070192379883828432101855427146494339136619298977836833056521956020393412654240003812222211220983369016278638409084956761038788652370001306954239259261743415663000703015360157779424757845624437066110681729509700709897192209655376804339143678702928108108350777965409097377978704964081851709313261714290148942677511508124511898678139887320947976296509657818304591911335604748276510438419127047453411353516653713942180727422204815167278834877666380498475100080444998404852013071802526024183612873732621661975563535152308342338829972277688686530056088273335246588015466648324849575751867823591336717213160237338245324529072940756876778526896593666538088782544424006947885685889816976839822374591717165594970541702845280898580496204557653490762794194360378024215458975579520881840711224576568484959664726575678165720576102219639134026675431219041269094882862631943389061723798568122978686269555128365493846061536945098712388638728744488104394485774771516295589846648727825492041602419124329789327323440100692938898726429870128693633488064303563930139986406080930956834400845814755020168983449409580909174746012025853035390462758304260140889399264322273598644073406730540081204883173084004005619608757709912211530563741725927860902408055461490005916147771124495318200315556297828085555686765042287163131445493755619453394393141246023795272705440276811990848885025154128443019802493944423982616492335438636354405591616059727913477590977096886681111845811994588168671405931667239212519162758167125362556201152702190563356069100306876596180126540654505508796813689454909304457969125823313092258764913701844983873033660117020566228326400629443561638363395439201021757419086632953619552388136274569829304946245383862404750618307810600234994890564289067719699073792811557042452518424570257222798472916826010935981633545202090933338744656355640149874129985448022125095456487890349972656934319886519809143784135357833137281450884259400059152453345951553614933192735605710199409732559539200444931303318290732410765005273607216123059905540697743980404398356568441667915357055229209174852271891095632918705737657041765878387709737192538497577907735066022578259811238364837925551815064577366680733518011880203345509695025141069172611235010887754761995276544532625602826709656521983348614386088957791438509369559513394514227319252641340858325078502143131357431076378030779492794379027629995797302230100275079645052866004028504604968671424718180759442712508133151250063393744266960815929309996764675060195970392137960878253728714831918400660141967145013468588120322325144165248927167025580820224599972242249408672067848687264872936393032317443300452182560890669726789734807505972154642425790261164441860516483006541961822377344077816216695227554938496147345140991448157683337683003704163444259402229325143717588917404474770793000731640201928537762940861372017596975410554640723326171238764858470741323688777922730623009661309486484164330723593526639412443340032926420387727858847486940075485959064506799085102385667116941034168754226112360642712211960129142495928665559842912339564687840044950603963035270325403630771404956141420682377644616972293400680966251038490806507009059765445661172733818646950808491757813601185303464017044152428451857769592767939523582088307796913773976610824011463202573710386474512530028622759950711859867405275559000774666540716959233349662373299330423230791042795470793859697531102145607027660723589662582911072399420553750147713966990871210251318133877879060232846580461694661258889859039164727320629797387186335025730682406201983229888033096353146607402632027598093617447896884444616651429200624196181797794284191121830145142185972177041713527826331645456354525447527057435730742189848580227572611786318973421430660694183977504360348336779271917247876476021041775066255544653729279797921862047581353712931931143639116220850443374186714261328562529061035576722591257732399658951566871378729390371173763054647179031461800443021360512489363137060138353571328640522576486331491248703791617419580976346143023137366841489660184532307555521854170457804375397667714583784651809724949692406314758006123911462307783216495272878605360727940661156388974561549024157827721629979009929903839498993116755880755975504407900979950498671549932688958332982289268611009836850723343266221416751217944536759597553032362161364481993085438416053223746993844489952804856975353951508243520549575505576414589703697117460950661281923340210745053590588753440709542664039304325443521843991187400463232549587680468171730902785714128227768440818987205859334192877691645334440017608447463770173930243378108053254357553714415659143203901063357378457159510789660697554211932034098540398454282753718739290895254329241781213626324806688068800578427959220034221908278279914232570900480586840091346868665875652882501179881526935616858080955675050819354890526320939513298227191874407182893149017129716032577568862506889641452113930903802656814737627073180399272309970672361139244628434724597001706112935939116883927908093483401230814952498116814734005477223694902051277210683813144834530293130905518216759939120581809444864691715551633483167830119162770397784867993970479788896899411882201222745678142391318228625157728199044893250979670211617495681533738047417483222350571067069594974710230856908675092685010310990978016481364213957681381904936345480026838992886474405088322086518390867882024849209787743889664706278089121158152721919740051836665168920706829023322210978325921137992064574689333504135265717970639697599414358417829121760814360225808283762392787564596186715039790855681168792387539829346508647997217261426686944614424263801370524176640347419811812766235223623711526465597506208306336963258404895368274016315926978576037604834324498034146937791997888285488346417280551282575218827864986172130479555837961934969589327094263088699318936818365887279792654951654780678194174621167738063810156692833036961817931377715470931565946266349100984938906760294026889632479361997695427853625728222491470884006115515983973266256305892132279753006051900960717603267238210425043809925624015546804009073462467706247337836813422305611358556205819910532755657847093837399782926810697838924856435887487369296032388695957224023913612185487854047858822056885467106007420006566049824312853289220085715481778640237102892199991576405791991577269537112183409496281856592761570836008948355376846928881959213292247490956343182116147743553600816535577448592130999081103402407487936184501385348877269388557054015863033792208257405978965827158979431516199037264906679250178097153761769168470098554872472490770095871471624806229275130593439906227244939125892784526375243093526155264766545297783132706341739187062645595539361346810616423857623275093497247012635920809884978163029399356943355243702501526774645778182596015752285658963683945283228522100437359391163746493269209154415559380692198569299923373008052633496991399063115837359485044542697014177264181658738981387037622561115002060900213259252640485336599490732111968566019557541184387054921285546836403327828693274982774312891375831715899793179536043088636010250952112435205394549880783348783298975853003518307107515761775661904395910570682374757942302587451200409561188443039484407307429107811541104792328102487465937892745194710167211177160015977304946641737944151778054720199959002222492370110413776462920534843328355465108698404629615932468793400070032549866710058994246430709877916617579425104174813037267090372562959629539352063815824383090480671726158863115664683265287857946521844068412753510420658564174816831865869944002740825155338147207504820581575726991174674932518575125485300868319766877506450236425858878567161300725350177764357402465123557519711290886280549350077537950282147524852080205539247777812208192969517951045411084575535808975426010632968269421963534220506188604896351215122912646949481685237170300503370530300937134707848799640837644045541159584239547136874088965753776699201710635738569125933195564207029682970789235539708226362123171422835655615143698496319352662586147314916983540907231566341949227836422575456059188598711574190016827192184519373078160290601908746140639403097114035758831040982967886103483461220214750990070330393338977610715201829569961750979154230221849682428884555693148267020398126517606276933873729994130163515882625382134839164857772891288946481919945147095099587349920745232632432035872254919327963331427193628072435920811324635252605652364813569620751802788113896295556180244828534575858235058719420902910014258418489378103201558559037002038594906388494550781549703056621915158639902830892049863779127099852825167835895617560955375134779848796493334528656948082055155021867112364898953585370251631436605208519141053427475973890110210026091207784145877534290935040080302145345974769668640032872187157941640472828411981118936729019974906872711216369635518761584155364504621713234099483717931375083385354964663850046032477811516160923626206482888685431639178149314986272430057734502983697137946396686391628059664190317125353203667866129956829013681103079407514823913228174661813638095224987927949364594444463801449737176654403240859164413568714952177086993061151221727820871781944486983666438553344815519557756936941597193925898601589590981422505384838626385420459232474502640522868746963102726906749452673544960088808678675514171205827402729533227564084153883390750580118358608390912745598254465368675941933254698049202475002400307181308651409034410176190150205895356120872862228239829781834854425337059695838685319353823520769708630512337445583593340336747410021505043298588587499439042757311778208219634636155399638487152282859156782313070544904379495802018905984279138081522624089404494436248785117256946186230197919024847017761858907729632924752083149567484424170196563784516720604257889585723902596164433625930198233149334551633483521364020887192445463441381304527303027633265713417749425478551965859207179507930433991502647477756737308760110507249141114131916008494036382770692907011648053354390505172983118541162618661358066540380989752633787526322257558110818454314251131616375744270503912671206908260263601123830104844136668323919118131992466771818533085182627823449397809696593821064285959780948770168402622769009363675813888204990873932223645937941031819021251632975981672459079888415239016487772992197254289981315736033297146745502096209500212074100220113711536505784270915185703101141483700830454132514172870620922775431107737092219903079616120907221209477825676869051649469963690516847527165942362000131941436044801416204124611284426413901363923821185251801229665221374497649755566352546766064465962458678687184523407002670004128164475514167274715920965407068746813230492090799553035049884994466739409284756127826772201354787516521399901504958687609328475459938391241378642338037612282695277365588230660591164157293473962361755191279161200506480212064008851094737887367767263366785053420321459062191029962658825751401159333706891624459103899155830582157988540064264823258759234927928100256824193684134355553976731677726107816167731909728945272981019419845368429857726673041550049111057615053576795579172502630572206460143124833481812155436413016647730769369805535281991830799194290639184873097641499604414333876379431274764826956949739920378383135236282787525170523705306923323030687497635206573638273517138800698923673734415446946522314814956334586199372102867767234535189143359551532349612901809889564090283927956643774729523710124117779171865353435518290488128441747477847446913250503580826488624740122340799470162559781550787629906359899476752861358289075759002243643105923645867291455018470117895549373911405605770958781614737338217122669097916160574179101859954378477284745642061257471497605683261854076122439474947336586733079152335979226995469956205719637986808311281215110751907813167420388240126568622652190178846872455604405438328085140280858773406902396992447992847974507753382698632182516812933889056922132116413388582201157284701996697789386924679682393543226156410161520961702785155701782497750463852448687580442237903184221455028634328687980864870839964751488021364899461390521665443390764623835373849368025024436548366140534175670960239064076708618939406745060372540869100200907131188597248032931112643681624595889497938986455920297464352327878032476839129226980878445808824611841147447977530173824224247308773290730797771947775292626350628783965939600712531574135380409899930581163987990541376843122577795044667396570805233146375801049208204167541499078588469631594891430941660617738331862510606815900418267299983215277542731701541522779507770601782178946374684140370153702922858395726874816335044634852212164755830998803833353505213392968055980005490228378337630782045878637977397206716688482987595126764718597389043644590887733473965068572744287315184477105179020980692891286074716950552801938952824602577283274350244586611913516349827515984942999777693157665270405182457989829401142565895386376008532905172510970096556153105957069588145440614880312947985373721552925521011251873675553835023878847392532635612231449639515965246040786643318143897913591452053218207538615268605437754455455195529383493818782164139074689777983812841568290323146045629770623722914310932355720747491174889775454165427157569900959446154451819664131518672046885871142799471084951942609546227666787668199809039196037267175836107370725492795988892068772889075497973681062724432658586489740983137630795549701084452579241106801199478158051698601450306554998170727298790872331786825696798498599038993570824104101966990514802985910539230033500178900933574681281775636426205409578418148756758464978316654368610333954655338638283236053727569996294534027069926289785973384855003135751928387150369464701621897899304069079843832528787349903700575464959364540431984501034196297111620726782502539661019499868849753704387961451303196429782226003994861145045524031663260661910247829840665390997458458583513823878192082591692498441627765074902156486197364695230653276752238070704231297718274708126136188530634820692662990422085922415871851518647503490478771694337414961116120506326044285959205234473324258528605996992541084011677424937393345932073468282617501630703370939330534992555914040550048718577013661736293184495620153516561590071150908996693999645801259244271899712284678725464104139678242462785317547494941828301046988444881443747276860782091842455468302085959139548821329405751261675205350154810385738548992455834136292581322675349602660521879690685309405942792222349471053608401582410489717586097577975266656780487437765521964770990775342569071560065362791845662513959388013460090938781513850515011501182486218202443436372907181883771996839540748614718889008872396689961404689060646277731377163017392355947199899542899352551598535091898595793692849613151049177565599145551773557010761784224895070806357840425920835890235821604337774070550176558337671174258568194246682976794051403482007328235491894956074323383147838818087548766755528936101372357217389622519041683151556297121009052986340049704257411567784739534313133655249345704872449026887883066264353161897955916704163113400544561686145219993604622584922804310466139579583449916124516730436977751922031020862014052951397389731979466588857651015910472736998103047239797509077281999726937006477792839278730000647838549985011419022923679981309739445286224656789376679443733563855957721490186278709306168124528569248623659702196821088858216035871786250168875398482066115993666277641933447844748203680047910502682425064830994952762793962301825527986871434538031240402677241185146923107984750287340233517434587915455520563430519395517750723966589656396215846479488774298291625193807956158878086658999083681724647438748559500555869462173916555241731773440516347041413169059744552647921428038845356620716656897191190301519415139618251890121672880187654061456551835709192046002875438253279820679642694438849698756365489562054658257150118530355133868878278242686990550678684293762264061446798886519042843404735145200329711786495391549056478309338954617203122567473618031183964650642673730775212788242951857798133618381304688325017095555586717504857462850380123901198253388081034300216496144220625377922282947269075994740192227881668421542178887300688213398621226868673064112495137785057724166347257320655529090921377757403843194446177069498293769458101167390135771524219971688801793472476420789108165792990574112151370086768459425449609626923473316940959792663643824923773591284713701177854187808676398544567516708221553357143255208006562292542425756615872723550495375361609489944536119639427268223891556959062802698721091110550395058019101608737861410358607955987804858436828200228050883623451996693422715805797455379065972202199844661527399690554884082658496135996627480388434439029707570188999416178961190800369096658484230010658281427191065464187243724400541496955259997307655751474252111379763300681446394784559681958488361930389304755724401222193671943706031252383042365745538687972145812257722276231331136745276951202956876824526348936347471539062211515409950147995467720289276576113414194121326521961857034250537014657870842959561098807938613646024032519541265900348107032426944376269625826556525736103435683362206192302690046474637035311343630543115160146474243901797243261485424218202833392472536963493706781771298282408850611554988191017904894293936078452073745736694276722102550907976460394752541795948571844601657219441931510611483932243308474323995936982541784025563338190561236721304147645570540638509880847968025835960337024072718441659619266067257499247165314308726119346180535103066238222105475228380802181646501665644294773345486336675404841944670976751064371466101856914948867469807648793917799249311367569704117876334633953608922483930361602656514757839358638717478562692904902704670536919113528540799227324999559945016254078402870746713069057289237914427244907898914468542904530180942797304618661772293924410295379629270605382638350511051727958111355965257523601977307732198106745100555213572866564576764880731889461287938323041853411544588097041971177894172557132245920480913284697152667604284115008283305281629760855162143155060256243122050858750740901438775241388918189871179735178340617664548983970527193733419805693524504448830910638711000577026508092161083379749281046054739266676401827250632733238560699992435645650784301179177973732270011974180881408480926931261375528559702073097987303321201543469716767000993913131190061354913976912248330958696448061096155597071269248757070492004130703388026764434598236945109462066340878806232976345364449585772732106749839633249804079285119663864620175471871892592764851633061293989872883880460779656899934274942888019658831422726451808420495421885677270320442036252512706546700494576411038339660963259672643596883312106161128527876020495710546238220443397994962500556960758606674833811443298692494417182013616118966448105228646641640328499099536563639480539319085928875125776835264168894648780311180828016612811532920739947760999001912667397911402050198848837928561598695900886117928707267089583506097741199842392641424184496441130513418004226915676431587511251007767730042554609154477621236581218755325468991615073356268790033791954067659634704514632370969859427666557998222791849306581110482576098916035891067586288211273277514699755398875749871629301923154617080566030346616045864429208477581841274838952840906134216025162813450510640981580611481492681383334414841801241980516571923669533540458991620005251299639815705876128628479467564531733820841821420069956500224710466502446652544696169455900695894364959780628941883430178891817052502521482837466751939857268669129063288099178968131687075326565011700672858797494453683225259210807502195976954364383187036178304145182443723394401105762470682706231586076276298777545723997842299106619253007826516688137592795705159399973708894296301027941436358404269338847131407959407610124250295533342029630029877085687186544682618244877927730027995845742429410745278284846816881002038310468497991618048101479022549440296260110915911448880807880798657961022357465371658657932538674889880516752719517582175475107131577841890431355023911463028864337453328541233405698716566971120684918619670385080770220935918775958886676404406426874647862950837031771872439974772835115888949806678277086926432978301052950892172203805155582063109987819681325314395561770172863788967451675702022831637350635591961091602106639535098981947637421517647881939434075722460824213956218446383641994274546185176842783867673399382260242158043873694545456026045673316785245666051194204341538597878561696594208318535173391113319541228169691680582671486172867607514066934509133307904363844151171930128652257719709340530668017297527923441094990785149098320038721135249393305874097171930316514286206674026572276349868288197490815386386420777608490169168795216722142268580423599587027473558099948939198571836490235786324485659908654205711765154085080608248586732319991532511553887481899227551851307913502466470433573114678328736701890887286872774100599875592510871006393486719035177010861976379456421775006943312516068850675837835723357236329621583861571261613467384576242968351190703475697487677967876341319339011976179369458169315766468178836808368452023488224256211361177757435573667647017406204023760424919565525360809143285918413137524018159777935819232692771056290856504990163211677472956069495581875927920456983967543885422715907804370365296976451073850980006511089001276408220158082410338819565136904658774895525959605388185944506432793819342701870525899575363591794515950839687722693714874858705221642838862505000142827995793597689391797111075551100152467257619702682235128064156083908762045380020048581307258230341252344876286973753435350835759281455139559120451030857553883714690109908696583105425055087205921883615319961733263871078721771534099851048783598193635746908849614659064150645098536673597536513812168820260892203636972888173685047385063514772023718387067919588616005359190013870658398758093636126090214910855426619566071465269516233531400954193545622333962836463797952426685521002955113497919690228694514282964840366009170438564556544998481714465651889289044993553649529171579719239075294094543400601957114752355387740359373681789857933445718684745720272075994633979822770154559787767225837346367658556086074172165036458256677056139773819072573935047239122551015919432995649894184814603011915648551324291872429687035106173573051899062707485997978997160787980070992192374425053138314339318383629062225913754293576416788486003334052558707977711198717619681139739346991118962108177005230848765899002227754350833482161120203263338683345199214121248772207984818022371298246768969727392892501088459704082486250083469243503445227282301142271325858285493815312889261937672961751741242150066848885778847680503687304500005133657160247885179932869879151379406931660852146282066168003988027529932734822523625302358066998955041897057355252600924338697301003241355605900040460638204434057819730464806706997921754910320775225442817664534165479918865994601676848776171521702060196274559025849881503360953999877576877562045440192423710311547599628526573637535846779773434449336404311372768872469825151721979961044974678141281486550817685551882732066820215030228486733395532920883020268492756063476235986198237479474395100194618619450047887619717695934341274685096386682268356030335058048801283536638867985951084424234397156243734320800196125591899466003885852249317301477354625871774912742145807962324928207253562088206097720135672162987345766180309509567875020696731082950614560260178943325544182461875493341326123151791916191689734390803881775089088968391737702498252240598683909581413952981384599909125062611789382541947960643787955014471020386660468449248056465387675909244221431539414801998990465012613049793781724769696179650375517447066827451141278763740228658896603272124542862699248208024995199056461781674612386027303007520812638731008825750577729995002781910810424308215716395933586627674807489376591328800760660101470729998611287995557320150363430357246537777026651470449499446078639299037209064944676002325622464007787240513510916544704398075496904469192344471340931370057258251007770701575365434330912197973127346727717502309332683453689554775243651755251442048517791908604495009103496733134203738325808081504261761744987024824448635826588970348268665900857356098115855413576191498816140001170912714751276007220900374299611994886469069979752787968516348307639920951523484084044100316885884986521725866741494691555602987002612374482918425399679794790160096023758729914312892920254416944938866293164771986465502108883467870606969453949632725855519653688499657323407540928599837720596044653745382894912922475771049613437999335904503085158216954305695073777372209596433784669057396471375059327165981561114725650155078413266892136854305849367041300205704794803089880345290103052757347895388828145025772333431833025288379381006360680724574261546011084386537817019259616778249979618290423033117628839511206856380453026331339958561477391454688519965268843599982923528602597824017222582529853880288470655409531911947312256574343589915157629563626033699539142473935875446892251207679294101777127546731634767070477948144801838377836514299077205957769657261720605683361812416608186096261961001724462407235283185890996433432329696999814838571791430479708811092718216063897666687719064238483021080653564539733628167591979887208683194716715904058756392726504505112726347038255342590424954996577776499792876532825208673238084101850387857225753444179891220212953657902025202094791645996564429083732755988335411391395801915610211637517553404684234910258239221015172693940214215231060924500415237940834838948964808773427646232056757464341313144832962977428588881285787423154253470114366374623142395526551619580431748044391146693382249595474262440509212358359714970956669384596838230908171109080596560233916992478226616355988493320712361227590720599829642756589764673741204656672545113484218107923676491616553933596441044190765530933799971084732217280859365358392809235776301503823428955372164893627324142549905781202034926279333954525136403355909750556797931482563277377479699690802267260319887854910456198030114524616931013629918505087045736590979512424061614360628066601868864822008174291395742609879004979275454767504943505446944720292209942592527730580402214725893669530263716129148854698881173971941149703109236889782467131728494755612026744196479091923973963924883797646266354700199246336900099807559364377152415910065506351020585874747182895195701811845386016187870006743246849805221409741344542383821429892461528911191403168128063597423415130159735255481518083542042855499003133098378300207769537990414690907666561873406493400376356297682227657112987142095217115057011807272080000930587574026090657099161649247709110567577154146968640387868528059080640599930481344352531893319999333848298001695365279766258235038536792128467603239600968159059390261000877656184550832448545123015602123104236694678485178478869148747568014751961513245036966714581453183715328303460057042667249344675837210302749581556559873537621347531328184972131891098599040597966370281840551909756572404526556943635452797765296723261272443855783639710441572316801855118847055325653890890933032015705903686506094703405563312582929450382402228691578074391399742566048967754715902501683273289997991691727010497895691422915742518056900170367566338287523744435942469673907464832011037083803829309815490904470609837738175487023912391602405144934995836156736343096097423581427736960019117587642705544140988251025167631539797752093064224213593835722832447579251432805338512627160675660839695343504851769657752474829787223479666424528062935885846771013984284831186432132114376153771005330845058344969930744784408993377845950152237824924187699736124293199285951897899046186185716843235895090468809282864302749132666866359476546802574463164969542436846422496212328171277756943505397234919121424054010315362103235745894140832370436302828737959655513291428937028797713021423212203033915046597223226427541257052612382905431789205243086509834120161846782846269951784186551881389403097809490399715805947245005084514869116162624672001292997084103980292841680908720091176768352793794223693891286060958995871872804788716936659365126667526201512051559072890195868845779364291716856759983279249561311019449128020812570927168695043610251743377454220694373748651992164300343846081445747574003476323121860381458369371013864441990733664538691325409741650274497948848830083460953832960379085274103464718513375110205093006999333418844395092301882679946426463488848930150354818754618322074123579474138127421464589262048916164364577034336564807542255674568466319700805064016679641746178222111242164928359755486044544070201037475643468225745465887789700629346937278396560836801241000845452287084761689261983451771184827174365535764931596174282352290300363440585395645517542602680652109156447146178881255423150930420895816037340124330199612873029930765782047291903682926209414232605843497157316080650270205709602715554937272713208707787238570557053497856868481863548309879646020313520639974279762637251982801858128137906517154783985970825503659990425133890814070657751670357347011059404110538761365396786001857368255187239248207394373589476291912341257116007664504811630753461460751127440833367196500425038475440635448806775675228181011519773190935561715058413442746511888647880249051190464678959631497696557077208506932537673425700998537080599636618450403986918641654348742169729912630896097104532455338860930534816183799595307586641411447706182185277665421897553049477388660736861023493184011970327414163548858520893902919423397519712968572599061853976460157073488270095565008365664344110748285046654380528758071854872080158838584701346027076947048917525149278682266223595720607762644775009812840117458051751674949021051210984572545725141412082416924890597217482662471204328179867761432029018562577235959492565269301460464062153207929981614194681527358547636109160973726505929559794875774707460332268110123546639718808352440065936135968604216659150195896487030019950950392452858443013433189469603965451142986082643016623097949864059669003511198411494029902946130995623785231508744109710134680421077685099727774025023563345399762995481891154283303141846645606125126382266912639370416427699979315666139477485219383686289777239055771510807865265547861056988269318896337048026131629097853764088080425394403528160766068386953020732503481057643640443118080077545919039841438371368752975921851679638902880546840774925958619600907903230897399922623521482248000083190190693560940165025411834046216283820201838989457612621336092409612928355548834186066137059116338431090666584322028861594553858631759146557266919479938030707404757991009477628779960160202396340208757465718289034846232757861278177271065725829157530326446770359648713552251236453672519799394354843712640869466694520060206652766513482276081831143634900612110391185709236882653264308530138536561825812163854122466981444148629829074161775960451288965837996939330047982078879739348445721209748791480293653269388347738655063859930173348972489723641255418354852961468061903117144364543997865392731231080426147165907285480644612388072328237393303475119381412829448018413189787854660417949905334497504963418568057875062111751763392185483134915957198717322579773205140724671031646813195907901378307433918612378411974900079190803735023921508549895311841370795651495783399430575418849736177148197909660395611286440303836318168887927667619660639535762580547497597548172739379982902125836776626347078586918675157708965138763060051136767712079319446305704861375616221591706293284074547495301076720477720823090061178422097000683457722513831354310266841589257458404175607673069554538532685204809201016501937847792504398741572088063562137914018904299325611851767393526693987345661228772901757035501540375047034252297671456248442906267986760354871359805467432145742097000304261076933297284670387710778625319680274162226239696588500653589640583468266496116325362845581481660419616325044972059797308769167320193069125341225189887230757162230267357900548003304005549073638063609712296170644715054683877423676358440070306065387690429012838310895680581255651135257335825689829382635527705091394012473457526984503864062295384033230199962276287920083602534455385224053900870339871457424712735810914061464059144513292557381025555099093434143577553230031323521662327278329020073691469954050810777769059560517680735837465358837950444421131856134388925928683116565115836756751259957230086436755815705484754473310845406504749982793765521019640558989326303295239765753485378749052277607593963681547428237977189300415665140799843273836063339317695670628637886640053977175203139499393590306780586912696507477795148568972168036042125618590836078396050926401543874938620248559463681542097458544483233121876864584831306392358785464815614449280647078415076467471785435536198624910776180832704002715558079702544866651457708333081298381617744835732973018473888076618485736573171185243352499446631285497033317137550896189283608303520196544123620744024391476864860525045593656617891691666507959856291899535909506215949617538590024885134152921354301667708163431175907182553295228493422959290610070693491034800324496034242893324130750381029178954786190688798392901726999648038719307592755144694183725163724196759824706138969526698622286002733840181941683756480460431060929199616724269178653540334464709488408831285947996903372251226671689781969232297418310358675283119901606315833063147136633458296323252055753199658479548839506740460127570906737931773685757228395835978252637188007809241687896738029579569053961265686359059946137071844603371725116554365960884664567656450137738659310305805744581349911756611149214974377447068521599417448738237154425734416478310304130450658304799859530385529416285967976331747614300807727900653524188704339764868941919875526280792408969150810818751128485687839200560698647772383458328398837955028489522968567690723183107630651355151570146528887947474224093666394341466696752390322465688212880202184703125622749138927469507713966552365240792145292638945223872953552550285840043073437518628961618323336111842683996374317395095574999411275939886638802378092080967867597891843952234419469835479617951772140293576880002527994086369913729683798305023524970933986836047171711489809532947499987684118852290525475479724639851306546711881851602200809173402156743887270652461203573184296749725102672557548715865509117242782484641228557259652346065182701737397227931520311008136343040459794206991691263682576420030586555989298356823323417898898201080803795139755317114560628840960296972993754878558294507264658240102619195790956625222382212627165298637511751539308226713990238341000511692993851602849960856767628105008596987398319260485054480093865369873448957458183337075929281063672059035598355988011724782772890841483862668010669539167437326513264354214178409474506832861552553558785703599198343569171705819352660724655911242092849414283991335482613289976384480707691670536659139672045734770139580337666882678096454548765131303604194615117766203598553188068934518928166014995981334848495005152410519954777671001931314906202905950079936448468854123303976637465876022821818927658941451952108803936485893140075507581867692526127519731343873763567039596475671228642675211796756297369684550852484165961011847810337477522161559640640048962724592247969544313958022961181472277449204239701955695175260364184743444185613601245466004331530517305859915661157651166533457801015356792508973211652524799444882841212914970812714270840159796100692808002021164941691292623991953798123351772932740231266269300814433238147815928517925545026828628133309614756663919479420972107965266347579884343376253581571035917762869091349530391140249560716454025787823783630435263007667613606978544855714511882190638049228190359437470157584507520495544673710142081121336975769100208466991862966956607083390551607568331023460557601334683339857175576139215928368870642786028520685580984467976609737400249023687320284370750976561658095845500512736349860534626691444548438081848577146953288887177295973509416229106295009048107187654157868943324823178310123721066390066784229312637151443661527631356134650914324436236120870741032916398176513636914041094150129807869707735517078368586094273339823683544866818201347717743374710680721613789799719823405157687482884117619169580554197937645780001671089281431110458546799466719574363625011097931111770481832098200543551644513585165219834378019344340180752243018226146973773345376133837714844313320581106475990843847695086903671322415614032873386502753216266276215349199847407995867648338337016065625684429765084458941822132150523570532017115879375276381639392910957888459110397739721084454673432500300978452545465434897009216189499054015407865823686945314580842886039811866229346675396155330434663989048717194223584082085736678011558516160874196897027060238532913586781347290408112146479307380665218356119378757249485792999749476920748830684383079325328078710364711141294729170996610199592849824248027677777110551054181662237970860990111978050852081156022045140452583751882691059788603005414995437649110285847431366098822669180485987716473242019957982410620176723900795486144761539227651776183838449914108584044127733973367247404252557610738306901304268490949924843278707192949859500426404076754808111749027504104416064897991551748573552817533904253116334721024993499964250220864104796600812957053621779147394427283391678782973222924102006897756826713166633302174285306301727640675046127689452592699362924891865125129454120541668294261826261339170617412874622318906788268235897667928722344233735192854607333451534769210833276522154940268994841605804886203539284955656075313308456875394484430645984155335852667087276139694925793835314007413578577751112216925211959012569217105267420278989541123929448343356706472335830778700935885710852489279951092714670027736557173604507319148363980432932858142235956681750176867812070710587315506609398233401587449074835204354523322041515217689700779460137164826180677452643019523786332854591891298632949608586831462116020854604947825055398307964632254726418315932317092209256552481855625555109098826538897117302773720345353070036126194151118637751883979601164184876145425647624699578266324933760447000683539511000117195458434155098836801547300120256729855923259771720572562446578532981344801938393541153016386264992183173940080477764396983516093331185849676972796000954452406868247396309175658177743863185530909664534312526021609804719512294552536302656217775253905627988210582098727221844544184231790809858781664381629473173091507825185082732156868292570245279912149288946597199427852513153439796259274695885950262631557591587139953208663868398495920037519336188932181236428046541411552987870596515225459902673656459885633208596922970404291752369167191188230268271367521565454797325025911987884302708691534087356921901349183429239987862706781516220913365575352649016862871230815058413664790523974080326096379416576920892253759823913405339351945511361469844599732086788631099809483280056898559900583247066368354937293060657174077786361727893236795508134721946930582560706589876889164158292850120184708036649547982684773056907149895102310689988278475460283613847221392637822158325595128352225551724774175480352670888240840749606484643597129564228085175493335255267684440419465808596545792937028228645599228740310766321085326626169209126348483490295572760681827249783514613942213101722005639156045501776023976662292653070335619740313467547258234413526807569292709904426501091352730145683708374118450846075844431560072344353342414085887525268875147755674488841548493304223813054695926928197733576546463172910987527792957474048641733304483446851497630071140017739319929138454893000448210477473546140170577325113819265379938901447023446226065581854332812779367482754759117537275351682575796979068491494282327758279554498707234872833917599335703440825532533480779733063082718357216546715253252797233151925845353657400893253047882302972549064939407813813927829005857109059860974441821178400467512371567145156412885784744847087700390197629670215159405979017572516046307317722637083120989674824265043482965711508509010063269976884696725966477633811398373452894750630430591075991595874250511900296393977785953184425932520038066128973928604321014284118067932405636642190979130427914321884818901052389301390803981112969431224341238799696268072111447485151007176777883583195722815651194853963623428499694024612972179221755493323762294098544154582478259685552015027600229189948193845868722363105192454040105727120053375866826819861760147179777601180477594347751830427046539566221169187742726592718388202407238330484471838601699293596984899143263603391220479867665784323104867083972808845743451971511267656466109446080726685363802044889851903574342969529696406422318289126370195927194705009094243607660076294905833490053127405310637709259615386247257632731989646493655035170607377296792718734301636934759575471905830483388762749543130504467053011346755462373719402835604355193735677227810884585565955351316876766826284745867151913527575579417702593156512857859442152682697804687219246427332378962629868288539825797434875225704748321701832299630181412036242001304889710129055306096973770657923938409317116715844189296618584946190309394906505385048315533565838693326976676642903173689792166041616021867653811855941725663265212553107025005900533670576672753161965618787897671463023269041795221978099532579958565396114713893686998833361791949631222263798348089792804166333767895499431391250604869586905804330534141373633495121908530758380453726283114540072588239505185507031874884403428390283694210082574892910365114822667391315984036194543880781042535851854087331673385164720077776382059318233251680090921046430028585074485369389365937676187009012910002530715438630484597152023197179300395686149460614558012941260385941380742777813149089697327367635459467816829508247851159790929585978626128950701144649907982197614423298219491255223467536012589767649174364078307454921817825945225041345739215747581079999146220389472055223804452461493221739387633148883499694384931042214969463963376860465313617428841694187801616682888022279103419902506195154844446923599680941936866320160370795611201114553887462340504954901999950932362026349285001055203482315217081729701918469453323026531579425075666022687918979511661494055121136131606978264522444992304896984167418653106838162579775499692625217788487689969271813588087270263445906231661721601097699335009339976464763286417196010564503641863689191416922234646910596265443502710547338041255296214711646296087116206793689126252256121771574510231682551865179459719009355335223643934011069125709811578656470568447381363355807962741841935182789546882700788490568160675571155074688150181979935817583930522039255388677372204887017375073034703913019660693184917205442660345881897424588108701574785456130579089179729816721117129171354564948969162086357333077991136525648897902752319007943512524582927830456773934144638643494158610382380844307237794182213203229525379298141093021650716406574599718549227548759762105104625418296394905938706814964024250997200639153586909881616664782700720145073610141545127347426094524706816630193286350630692341360895061625693404280032504242295485383758446621093617192872756380329808199693446535018902090573906706740715804765441560882192029795734121820951583488148296392899491804769613711809290771237624688317257085629211240351536201713332115276799970160373506066379617740192801289559515391977384055006064347714042729471868701034616305670794840835884476276170182438539820226562826250469740540241965198652065987149377190614540188805682930483964533771337685838646054635438177352625484132331814357929678212248168807265160315737405163771375766936974350601758200375788580829745868944129866459858943806632047331050044708599313081017405462681592925508564030870459378399451918585393152929575223517778245839339773098993406218523402501248019341731577950484073477723685714153205974167931783183606161746653867738025627793834438002717048993642328702529632007288006635570160110489049496604614892328206524044269962344639064979679545736899383286034274252959352255975601124185884132467199949422556452471694873639053901425973670652812825432685798020450895954626485773615359035487979220799154692903137760563214964106216486649585104227364233670839135683828827812346872088920441049570313359177606083335284321771681737047047320746950203396187633048384966472125902734089004216736058892063100619635887262494663230593806855649950478261842463426357529312319745518988694551361400531196065784244637710276915071992566198139456378747713009860739041388604309078264384221772700732194911014763350844121154823885794668898478752888036243073432264679308438818004092996062005810801587875791809374468728103649504169788233794428188561371982070158162598777709655967367304748700097927989440917632049131271510420647707601848778046865979038252363388811518025818465099650788819066615064133449219580635925349795749147354401422049393156767346185978605040987854088261342986470483329356063518920468853544757352768852829371466860171847167008267417782845873511862388680355185697401605054145629484803250750598098423759243436431047372428501827555883095398045242872703646054369784389812479941508949846869159041907784442580160215820439242082362375892296435669961621338881096112568716981993707596396117326789869382856797632226319814083955339394655765112402519792642552589073186869787077216126713030603234601221297057232038574180796107361829082115166419469596056637941155223005200619134485909207559166779617155327087283298280629549174295477806454395456831820503006227771659494823253631238592747786348117904187476269285048571132315817557785154844328259579007406771002211397641399438756331859540345325709876908199038181501896195964122465886689932129859920506186962106928567411867241593093759428772440389245354152564349815708678045852956574775652482873654164407776852779786125727767876004878959096731797887002165736915139373966852754298118205141580303138084844023756761329966995611864888610766416515606018800398910578179737469221289159193949551778280609270608653651666690532922684480545706794851775284359837721674484842786049388526722183033684062392616521140633825403906547142387244859683758198348988100781859017558015750094902231153735580816036973254126729620425633364922594452110169755483715447886588155400695907430966636436695665441415292544401429014229929227922196346668307622866062941237800365873863047229213096733763238355697527148780268143458222282843441271288530662577744475319710728754315831488085352872051391997087671624635417592959635220016717945612149258132735409138116366204741962914975596357127078713504732280723279471464592335803438910455520787645740142017038911843542430222556492058306511878270571940152246152125892852442389601678390981336497269823118635436288155128403388776553175978496632436371147432211274223353359346686640096207990790293484228687751326027008166755891692686678763332306727099296392209232861901138772965916657459035790837188508338434305574426172463758226170017388654486765042475953466357933455670900935536574405360519826579269919261153797691120702758988820208172041309004875903478223999288651328113774744531765950828131554740711509264433569100521501525997443171591939543380876407628531619287768195004812224384306263602257007802800384197280320079848151390779097495519790827103452194516871005617405736109889848264889198276961663613866030322621383867983285666663128272889997348444045104534717964623388665275719601458931306247972596417242307976313357339504846833268266286207646181360328337065052366478992142508893921526404718415131528628622878702039430499821663173679854720709482274820848566155041729052712450810934766763431840485365652389752511088806737620658773818591977601848624640159978747475565319118426344200749668814943758668784209884860210712819869537690770548378573977836503172985915301364925073768207915602827584156888189206721114694044472056030009643948573251692600755845589284641462563223060570026449350399242239208169309108582318115396473666825067654398804873194958810663010696207224688726403379037926275178770661287304655254941274170087328411531977852398198039130203319268865859501550943508533791294617162032427448451399751307800562615490225728230493161722616296390439955569238774790565131392941796535703469600550486069499663281050571272430598822682578514048824763870643408148469541848793295178998274772540803998672423222460413046933950662908176095211195296009998460197939513859301042266452378174365281933122090360656135320056662941327347504619906798141080657735302370417750653733349615287858829212093391522466363064445436009989488668497285710424890919187761518048171247034848174540715210029317312696851680694549579720800493554149418649303767070486306879954297676640364770668038051613946085663301800715488377421697518256943164136773772900169211192675272414994086420033111796923974360808810416058603038311506194742210404625389653963596802256195450752416319889268631868618094166577099412366510131353594952419217722544823225275889235372280019764536463252270424932368810119420211761962833474736905167512654095451432211350182369239646092228354994425567024208734466631029843069804053379541759818618251158834756760761792027143602972242579258106912026001309102404122869335164691110024770749472228433764018441309623502408024348778390303034391354648214085719106189386311295403026355452768060258304725257101960851459876689611687184120275770913625344670859899840195682856442565131098011839412144734166692935788679300202651435190670548856604857295191173552218074583693055767807028758487272710987450616581261073052012089070958791532114431339791671006345633599836718523943678378136989149004836926563057357461750423028397274125930498494217686596871400278698785819047509558416269626010916208831324634177804339301003602723896993165741900640049449973113928717940056963025193875634958166125221089627582450728774141236128907542722430419600642060419028307989317674080356711121376790694975302943150398702104417875777682074448612407503552887291241479353211095987035205445476814424464164385064941168139854448559517002676817038093912226578449625204411042298076270826637477752737708288428582881853565238185622487845188586105111849024593938577165929547186010256239108775579603481815297911569714889706860252630445857329522084611251676180201421188621674376309208027386883319686787444548315007485343310758385562211175081311849367501538869764184727110641231678527489396310992848378427770222610396559942265033266487332570235226586081126536904123869299149590946816160483477995487773157055995694507847042883852929368674657055920548298112739339994568548680811697797735010484484783655618871938643138227566757816976050812452847062955177637530049900333286980475535089349675053677422262978322914038200725737702932474954877875695734165993577939303421430454344843503188616405147836561462435198434326347762511155297512816896992993317521029733444923405239315033426413513381073835593867821920990360266922181220832351977773047585802423816512631503108844806783969425842382799879596431612066827027135274226388261914721332086790455854708260227354380004468960201118064509600352602723310835019443941128700246946481904487695850084093572957508597686417174144548440078961130434725277332344007173000251615778849906573149832301490577291797487183848687535586152770614648083699454227809595226360553797543718978607280960985573311265286984583495796126750853333041765931642939700944952487028023488236633473749008877005809086400626226691423582271695092861267690808410975880065703226292958608335952907731598311941415410184374351187971380918983900575464199612260878619247740844771677783543702977432800971402981915545288282718092430185352225273520786351760280027248628400999765547359111979196158694565734019268555749787253801944553335076637813612470545383743877226708115101932432165262706295571748823404797323568782530645889787645710522752566376116887654684199894831404987920507877460139556275534793337975718877716764582924326940035864760828930426490238152543307124823271302805112675329533032106258187021837589634816850732746237995119133023914491898553446739935319317627896280191839446920949949748346482948755452775344309456654717301486105712754534369873492785632489469566304120649082517622817545517244772729982347987679523574597036840469752653569369024259444427099665370540442619861772010282254854123362150150207290871297490580199432060393523993040701359448542359738761764612671760114730497996944150892868749015868927008736947853861455964319434988942821633145284095550591066510739610188191837774404937347798522213748123634470386253132591244071898402315353460286193279378778734625885507598356585894851118057724638387967190173805615204591550946136506347694270956983860567540664396153734026494112178137873267443948983128103442955435240632401791534027345112244963228027164139855543260719595469959090744323554648626031806276413805294287435872358004554072674638122371280121096485892524329641229593789383974518998495545527329404281200229054815854809772078808981057974114880136949847061566913505717767320197696946898004977885912949363005911438203283037340493787264236304875624119465985502565277564726837763486022871035011461208883846677838434698812704512463629097877483574665917484453660727433696532045799846896133662355700678640034720943835294925892760773219418933443628868054780144023591447394914737163463741399709390188078149879735613321361749896850901171689171818952559429848239417230133373442226581964105604206084317646740940699159860458082201270474268688079806580241432483196236027882005597718528358171177001791661243179799629423509477458764028687194085583346149145361173620529891098784722876272454103708514282431483275212585233005917671130229960381982828133004155512031836748504905229662497931937515186605417163208526766023883017018080819078570460586977624057731118866780032992823568715478495567363102880812761596911703603074338692264533020695521314391509199344736182274323051460869202823906649886841066948882702890188152258279976511035868853369083309122180804086168045868225907398118268744215603934126400373661499878938952138043307298831245363793257748748809714639511194323776580758519908772825687373839887479951011919731367187486846867596292524742173809176362246399101842678913850560420008013007262785477518083206892459075444719088591840813432108993941232029518687879512548330783436994984650484208296946590944344842632896479538568524662070411314973247681677220655416144890687499860239535752691666705064746132646838176426000709655354569548188027870389586863589506674943648610482370158328122676154880845381586868190794641271891696456988620508858001768960384764241334357452786039482193631711310680093121141345147305281837773835523901806832626045509376589769005744652500590015072773272080039259432578007898224327501655930275884471450299646007857697787439201956422673320401638022866464598732580823997758624506779447455042956363241984951887113961623608512276683599678156385656708572988816818767304136827278507958234976512153432692100431826713805311059770625747890878808812394838614983069896514280655814512582316669109158365597975885562931200968025471821066047152639508669768590560332354338015345448476297868826964031495376036120679500043545144613841998468282121399659874882354910405292358249211889573062670679836241204553776291998944039153158399575833484036826519094283687149012234541700293507042417275540019356401123558156553697832862614108682029510546091443976907775966792885681469522123438948941853547642439897300672435180719530790086837516943298039131865865034108233257869982783997464416250707834250038651639338026149084973193473829171120995877468672177181252436411986420257540019197271396536620932516428236947687170815892126068564887837573881524892174191417098493443480853413764304634793566500115435215567500870919490645729120639374317549925702609346684444739268665514498926987592339472936404467870585577080863702668965972425782289873614824856608794087693331908459050078684562076114107305267348945536557521144297169590164049315367418952673400374727966771962014299068604782263749332470407091768334140414198045699784808305560460153917870613160078399051021661270207123492946819250678659572368575660527614502989357357604722923469284409155262357889364997046079198028361255523224094291225443841545053591604916452764726971347483649994326800443181348780294278906196036134001319324384776281537192693063933626190392501163598657011148721335545755396439312253622205981677755262669451934972186233507553592342965020641075379723228406064366909376162088692677672177269339902102818266902154035524365793714596817018034220599385968617327668016232104320059778724811033020760185893092377186104603352687850677173922604529317658681609959532559787410100422778056128482461937009472586703158979562138938717452987889889348225985321295497887714908246003910441650327288138173762545312978753315256026966106505601307632602870251895504292418921599369751061500371428965865938130152136048583779813945844943981792509550544883477278809689422672850892634125053143074338841858459488095556493954095529589298223614901364690837516429551043262381779973187548803567388215833082819232577664047570095080257125689512439896633936910012806717495007899779818010434121412020432620463867011174050160585385386262979308122901788484704760574702333901332493477939612861661235116760056556466639710432055374166908028282578582057214902561172451961572898364743143016984101116269238883772333999259767230472085942842489126168713996772135994598032789886390908053347441054217298582080567551116798234845030010721435474407214693159833881820944545365723194764986963751395707992754216053177887925965725850092830635479611071513923242964890458385942775052141103657322788222637335280426015633929946883695522247506122189925120697378690546349721289242757601091978261215106500204743175399158528915830267725322435365394264890293512257852640972867116219786578969828239993312467155104735765530113629793118021875723183826092655191233618508825510347368160832636307446034240477686915479938901225921452547951764082618892205980020633838210501473750321497929690800283481653426819194299998628235093586039526398065152578208641380312975242738526173765414833245225851993723949236483054779954907302486586141088232695420937597916721885918374260483696996022642640762379144915763141237256272283561388903205118981259777426876759408910933762484297734158480992898779399712114262408111190601934565396010962820018187367769891175608853279266732800763008920750379825088956793071079087127537006465224528390273759015849228497179610451222208762322536812141557774410894077341359100452266349114634687795311758841011502893374768196767469089609939000972569180229280606169765469553505526704344110862798944088598911809341107379892791578057646913875542401325089503439627052696701827780260621059704149388858970507553085264701293661138801203867214566787611586046275539200337737045123082018845243686897825323027285810220068670639831337930223903782413011382668003153242053514956618076550868862406697466292713270204100778354724278173440305864997085287757378470534779229142092083874561678756026421873058040396537061588769422131780978442934300748308772852624914839922973502469765729353729647663222387323939316243954701223204028393994984069959060385357875440883197598956756870180684994723963995435815836600837107318667649251932804334901661895995961078116749122162528779147785273082716846965621583577722185542661851520965553470175881221251922755709965224581293017436904326070828410691798536320800201988932980422829816478889364180846042430936868209921559244090024455122117877929605776331260833218463236608019233925036928933521284381445323711483914897393669994675389961835543811560876284422192216180453619403531697623973744608824971488963787929948283935440671985118498872943658195972808765848393325446196677496170746543717553564260928426631546694213734055535585187342398946826041227569305647481892927313635921485042997450243026576558726662732018044972151217453197856168625344180209053256788378270613515138368602621884783444237506909232829171360879162959108021451707228420331941836987088240129547505155041151659002324271605366123540804687060021176077967114210516911447904506593060810953031202441451038106849716730956694792727809036005078918727333863488665531976762594940346393919754680272958427172167799099225514545273375787734260821199264736668071448690440725903417764403276127152885128381759860313927805516214775704009135771617650330210832091568733811116071118434779646966147872562400361023107053323941284486009333422066814940443571286098654134401371604182141426272196099788646182293671906765397316410684807693184670982393595272209763382011301055412467322570931601706600669483743595618280237506676581512770839244720247562125271077735906506001634110732593392756273752812416438534982173902418659134163492641364550538513160126491312178060301898253362093366732047992990261089284056854630970627834300866746627776912117899273515631924677701378172001878427512784906221188685697803681536208179362113012435297297644512270589482850657256713244612145208847429272191654728737149692147926098696913383524128702374812970879950740646702283876827859888542661306202869863288884329432248095335064829078982126688103066824748284592105453863576074742148705990677840036622525481817053971981762713988693197813402986050453294483844936401481206730893800443304616518930949685985719054352288671140812210499383403399142967540822913689577808434541937558308553248191815741202017095084521104254489543458098838535084050455076119478772435963433297136775928834129207618963682799788656327248370076058863766325474810589139640667318257803651399464505754077796668356939239550970880717479749353649758895149352292972466385317576213142299867088075458645113040614783831541111641027623436740455609233299232001094482831532951992154737490940048873437502755745418491166605410500117194444016561861719910593739272243555464090183479234789701861118201418475992918055636003592292498539690812930410379942587103496399354916973943593924458944842337723437573123148571078315805681525031578223048113105324022288170792607670786189806990322444696781711772039310470974828499545495200386390222869440402892790980768951375229237287101150982222834334524550927123701399245841482091382741295081245900868431418425739547494490985762690120575308109646300786653342701368603483320692726713769229171350837267981139942841952203619953325411975969290229559414350034846524018937051614782119247139756165875060524210981125351266874579911136493242198333814931499486483938011672752351169383963938973390021538350041643115468510512132423432905966289246702102448705988247188844147151930437563462035056169595141690287408114583296864962552475061307853536168790376851666152696955049846478850461669816861342556180507948768675379429758895703337913976586463931243240156575318925927907863361331814527437603682403428668002871387694200104038165701102688362084695507886195500854119577775756793273637056713421256270893706035611042399624620070329697987877386466156917510729993308680801796234222351832147344500525446423928246927300732721657258783441783629801818143014579159728535214928862327942010709069229254508557563367137051503681325644835010093309691026221996361290537206625053349923580602634975636770242058815232219424319420976937152383470942267929770095248160800520468138442767440032939906349482399179995217648989958345866949152083376768240260333142754310920571844212188456080617539360882102430348436126863701748520331761879901712159703916111111441072059083255797792914878502563250979332025910413156112670383337701219975555526497221356513026052118063090815335666211825764337885006593248293112073824926396859919344014149138047517424190021070065142156381504442281849895434243941350759811925058186664613011696660937290408921738697779672745606610662744744216881329972896572077328100704912881420652966646096403340128547045985545906938605057834032076755723466320910947236318754289163995101707935850400108246802385869540514163800989484779172001785696189207775875923366071875527642993232018760136097977247501843656024698215387896746714673655036613252980663709261800798340999155557374620830188083741848333102152951575917115159327202633717536095675442215080140944463464370326894727872799340669005023619792561947066960051641622233622443701797572764839075311949830580722845967723795474310138386006395478591428575822396283589429561237645640598971370100010897517648753018096509502074695209461739514038558898660677776967826523261810831971939704256158646758182526889004912512447151414769271686695819962252982143427163080303866165585300136631156558107646042947519525230966038063425797491344920634031040491820196605274630929663456497736265716077659939395894741966849767528402844385107889888396695643289855440812752835755001490454911005591895277639777220843951524222330542220177140370447812575544003056755290558437736492643894919966002437803800386404361727378131323411903016149196608184884251106745175219882930897990603637001661358964999034974123083981588736904148248781605358445649836662991358250266797501339969359443830074864467429630262303040902433292094793310448237164404753298236964634525757671992254079445190709551169723326701290888245745594001735612084542364708820548099454881330297498727218491706080536597214029115156492877337098940759326871013176201181194864888409788272522948754223833168523923900702939083289400523752331533753839266820110387708717557093438959057423513372371129698853767682535046707860810042040508783597543736783982330056693782812984760071025948688831930027957313165296996381714240072594922142555722892951065126103006807482887493344425111509803930671046876087811782510951748792461004414806574332353464758873634643756109892262452325669254700023347671868299085502145476372966183024152298784191404053495255660084529413507576310934404976386502507856901853764821428119621026556033852921759111832347795873620232809087369316358265743464612131697975710293689863180012605379593607018659618831265953812099838715581852056884346258546561133439245160886550920985988551899393146710010111038129168055418217648128763904228682347072603924687642099553281749919083060351356872611849135634405746062654715948834609535582738616052693189370654373366457670290350299155339705396866397766090875298816055421175600688294629402404993585960491638125703242984324441881987261079181977428031460838808320832921406316252847420410092156493611240218772094554639119641006381981198379674781659326077717798872830996663533664935732512774029534036102926687216617879247391091544317084886801580867935293299144664419794118330810550595188217182872277820769135160016777445926454564609791906208252460204330318743961499757200684504913013715742839585613906882422489844966116228238172332691681998664510220530021782426254570842419248862956351819734182427733077747832094313684266080098670916718830773523304887228895172589441328839968626361001735020526975284551741563118618134194556330490178883678176928277065603061304338868989304177967864551562301170342052562846220851259862478376440532977324197892808718404664765226523101648133812335547656161490419169039181756698037717998468348470129977921692837616077001377425422016914201711928772311075393479170444831177447078722205842362707514398082090521085386812676453837075632483859143648982947552308249568541621870695785877207374954844443852880071256864968161730481134861169683246021354928773035000488154602283394142127741416842128710403582969982402507792739011798155379983605467840020602411915715731544560444873778535933647341598329679806836341008556679060876500777012001695597936244618803874575282837954739271242411431380301108714523217795428874108029315663949695697159194570721487551251533158669331118220325981660650076927799521419003003355577045644085590536568650128622634875489010788690876457907710077348157688751508812859608611907248341997328711125550467377158090709937173611465826471082288156912052281518772794866819445617108393565948933339895489160902919147954826174088349860405257647255187918578960578270546111900922271417234850729703425643711111041443378189375702977458999474061070366482727365356414576746472279957826484311914072011718504693296793815211950578010586893627009005561927430132068232612443471499814182321243552541558173403726168977973850436787252615909326495791198950039370189325574375439380867450365635571134333308638652765711073751653504162572664997040366169361721578235576622435867361669489276343346169932254861935973579350040713204449346095144585532035960051612549756122241280072523998531522957481566566838235807029756879654594480626677469000882451114065115614807388755469118125927568981029902366261485040407397272417311128412662211819020183109024623016100738903076136356057066692284305976710735946288638302553143180523457648683835529091557958570885479531157289999244390778526474468010240361220226744359442260974813406664624744028594754979488121301607327070375503390176137028360540755883753549009408611215542377159250864478824292987006177426911311480731126959400440113872392031956297099506624307956530253113141106903540615007389616744104876649557011814079524687373713055276331917881442906367220451930202466750535844607925584261569554251715592637118758124459846634903249242270853495489516448395891739881865578727693629351530101360289634229294286639656857857327624622138898692102388017402907447981139309373357904136082345323726735427432148763271464307015580007384740030888826969677117804976544220134426877594015694892918668627192472064195916681747921881859025641648143647024819572364407074952101043976786146959779525135773380834517097318331752684820196503786386977957419769946662961498943721965924465215966484893761560414480275252361233476153147968246158749119126901423914089633560288647092157977733008971889245088779899613354628520142701574500025831474917606556328433230499323384448217054248443204034732083738880048392506510646385461653724958431607268850700388582974546492829656498148191493072031709171899451804323649999852168646387220908389971203397883196340485501678859311104669366928977166426713899988605846607623434087019162781641774543361346437907139298631198124690268378890673621224551239314332996145076479761794175582417544172006798521301925326402804303621429804979710618161561884476014368397232089702777021268679942578940474791533244033099161975909409805964830147583238107815052885801925417761857422737860745659581389883735693997252051145333926986090072423125699066550092182948104370842590784533763411715534145048041435474585937913487325796469794980460918706892436240908101775847601567550761041333461480773178429838601210852993941716201252891607417587719325509630525975308712711771970141377525214505236736907005608041800259289348645008519156139567710905222147425083329742275341418915996712245053389842552078086513536041751587458220530297190264688603114435191465522262935941167159259911269775158167471577387312224883544322014661506065143969002817806597005515883905194333415786678342688616715806423053077735002316592500594508206703059245361495170916429228504495313979143133797510135831159197162341629840328208332114038710200470502215639705711494672852252531018345617086562306489339332012847846102647206754033403873373190674296655814720424600034069757841649495092912538990234079494166105145486016108452658886944392730737973653780185390972465402761366672265690068956759950845839642263018032250381234944811152695170620801773084644809893608557754330576011129488980239941782464462496376553327151175298265910660866640729209834062360375389648663506028741598090900703772153973006175433401018180268212169278578016141807367974505652771654305076944046334214920887571725777280486453941888458355822688463131923583124982688741040208588589875450943242312095117223964483215869079792754583395775573220310483503803580883332581265334882250254611990404307410905419550583766235078818796718323496196994728649874563513557311610449023437894494081632384944411844937294129196113377432755884772715910473917114578143399404947249965519022268619250279820948899933965060628024872322169141816567915101545010121947284487387698447695472876643264331624153329101632187960533810520890703756419417208193571646442289680041931069869458315261890745112931271302713499039824137879367656895396627019792559076172654019214837011261932882227752410349772025788335617007199415023798344363296469136550545926218951824250365500583862667212599023449715604152650446583314496325833634538855588303622356522051001104982866541237634729032129276878046551358795084325751333327066296992027057568365636388486829758371044827109088062919340524306320814580792409446940134718364130436414948127515117537569447382755575128989415754753131901021369640127518588018916266353622008924306593934567630045467229021833792527431835111289680761292369682480854181900861162885633194380099077146309347553106334183257984226480118625560862048117780612121514291981021047970625056547291185096321673991767038801829485845290920478918376202450651557259437711500572285337008167418268153348025323152974474390818150112971719196227591267348980079003744794818542371787290204412699871297277035302031142963441870157715576178315661078437398155826100137630545379726192375455194587416608675972316461491039900528158053334592932506590194123941889686525679903678381324585786392912373575423458116593054447841184660920942106655680566130818908814209700685840238981388030227577573127824794096957076942481884089090805870097252596586343666842323875166129579353057126725884392709901965514983184286091366268295005179834748826395489147828870533857037933330556398770159093896407348648776090599554319254008385111891178391225228347320176386255534105862546676989208232513431545624200896705443659427095070013686658950502285195536998558127506123797902830596040033982379742497169957706178858681965508074828749957384517000006666432687400919869173450082312373306833365006801899280657428388352358034046518041503064332765924765209619732055581020895624694384194514043826394472472291022049622073649471991018349499211882256124594854895637673045119450927099559416227026667415560763155277822517816881134786064919278614477517795136733524827613172017819411231835266310514526900225786237722280848145832019625556856814761325268555281635602431268755968754207711651871936767804429945231184715033195384433266665718731123126190117771088605246897035588699824481670536727496831213830776675743307968642232691685001814403464033045333523489205269399174651036876576244410029505937613616016388071613439134474578215070381138672285130464986589879449916365802037314080603474401857811551404513567212315034704503771033811478408372007832333978885789887135144573241822534459653344405025166568787254610420210606928055936854511992730239227658923467293540781827321401631481228073076103557186728530893643017945938015051238050929899003660978949168194734060612134030139473257173345486229054384764062146764912224704075058849582832780285974134742386877957960565161686190650660797788769977551243576340891335206855421346307012678373268087532917754238622161346856628712075619563171920712259515709738976346533648542576845619199139993263010478361515419971643352598712075087208354109784742883575870638907450791063523724392580378542728438939899391385097707813712318200538082992159303672313305173019774356957854332280704896119767671468174022937059407221996673235564902604377680916034277511188633396295349692894812460567153397092079491091947299939623804230404178313956560958947780050187604229954882677541473979045700863789498627300502465673626228618016913275667571901312008524765318681212010373229761447788576197347345041580911895774315532363647934927768244875558376756693489652547490950471417576750610061700857696827556800983899638751367372474262677497005639910283340543818384244129309453530067031057875008764137772576621432501958324103802008318345767433330161363077028829252433798181587413446790581837510381065608967011032771397899616225578154179961025526890166260235056652123991484963928351213162432401999268471409470725954946531716054303515381723075606002298563263139724554838664701179426508781667751822039605056844858289769757022405888721009208375958928621266488610944770021366557272169697051150151838024791150497070154385896709040867753734551664874779387935021231819440207825456020293046259313419824609672997447769230812129440376977866187334455353797003791047221384898677893339898103801881090417776952849288949841413169136406823241657354642189171314555877646679048680269696237919411581344824916464639125280000563742842353889177557881022770725321470526636180812524450800689114549737865519778259278783563119620263885903611194716937571491138017172337929497012584364650989376466014657315090652026555057732383801781069337536811725677157225027114000631562908960564862505095060456765503804446425461793476671417495409491500518607724359338083357963715879382775939564634478754616965225550516413370001822614721000119397059222027798997086577807655854003766174747114002471945245874696500612495343387847372545728542704650050587112805769281417563770203386027472663223250345936751726579914848872391048524844788460001258923084702029971854325938811460415501704484688981032110854500299365056393125855752017530519508394980938452031238601552882918530209371205277624634418126307728068132832424270814110048656283378965701746534862250781914959912254983153478504685884199034794352418303256902832806728864145315880785502693141998562681760140071834003610590363122601495775967745051513184362086939650310678891342658288919983385998699865108613236844848169544544438975450021428871986844922447209234587647705886925594748031080176395577953624229420390595060817586221827962835121110610894848962637505679578280883785389168637013771405479395574525103192441098113057013759980611148595505888080624996538399744557308695916824601943780371073308342988210014082014594069542234202449161918705370483184248388974839060292503077633665396715893963827329075170207893342257306409572163465409392590484221371534855280256861524195588564647030869988016054292965860586016422102827226062343518422221506105105998338859122611572967100096902490263437760624383518931288218535639294175333290559878870443830489903047979001041783768921825198556018337109563119539830581081639501752188289059940345183773539787116343147179371159609493217477069243662781831919783671556580077428303926850650857332642317742392447281518472956059493624891388448901666102672381863946213689518113224352647703005222634565477255885865429286792273090686863315351468991113165209257617509677517305425908601326408286039223490538037746826190731052547959507827776654925890884005760522290333024950154617091274418853398500950277656295484529944890960136779337786413828781820096804021597306147605620381262044797802508270962855420634616328174179983969276837964469307643792079294314444098602718785166124404259369734923973510399768502370121789105952920768184124515992596198841942436518468130954503865026509086297260901594007031948242329322342710338601137459860986351088120759720429104563844464217717556247302726681621513649849989847033070458299851678071248172284755344614930927325756609518924209810122601634337901052065871522801672682095069122065478651774191285678917523703412440377765625390786196273310062301181616086995932222966028134766316351130273191301312060412927136854233506082909478263216206802954818132506171430711780119690825882853891089725547823667786904287149589850786087764916271912315109893188813910346719547458678784389662803542311110880637493346853763228060158075754275732104315591489321517381127133100498107347469661846949754368857448736773553037796221508511415377076819657400406050319041686880300852157126933446500284347289095405963252475385675474634251971627308176678692289246712592980345105314081313670917363257916113561289503029082520322221447150579731172128913164762038312558078272793930667702836672009733979991993430426758312937069452007617308487182011920654377912609008192719415175111073213497482364882520349109842584292114068199983070957840427038408013857088350408087102037107349153352107478519861695122433447909318135274527610707246071149512009984157955211990882677853310374797349196058675035718477624791372402286177069755903525286671121767481592578175297384623380295060517482379888697788650170917722538931687557802603845151241336336587745727311129489272540806885657907869805930968442264062432638960343950389159965880320140803989475526275233912208028470757187468406200592368634413719518646237120053464718045849673137904694634493850596509850629901948921326526755504126388687328789139311077756522631669276302348987033608032813002825966013407559556492664236477331899431590642486172072692638255849464689363725834068584142061297290780487327958593245639336268404747413402589093745958941416352268717059219925317148832169743278046849065523273801601015919951454501395695651602467607832357959902905854295121529777317600974375081423892293236137654631386347911886754012456318127437654330383877306218573849660987697643073912897109288520470165970053840802971605114118626865006487298263569202306084011197929910765652225879959869133766028496800531514372548038531111794895637860371169720227621792469398809605915336028492635553547062250859140808926188868030353861576581367379600589380131487199504564614996326833083171308475911584021817498858801023159484739695171101741976202263109234599796581252295762046788564032016511058486069953903826240462468093567002607867997042821088432154359093307317500071605778691467634196487581990710973321017055388679732250955517217706441235608189842278548990665647789681032268654727161437322469870688103630399938266321792711794756831352201248308416698130225426783795359349418993649364143641733202679580779141726878341491010891852606984430579375897931107189688748358562198532113273756061949033811524115920410233487298756944139712854950794487894969057656694496110907923974926526086822318578939749899415013168195742883364732393058766468937122393360415100806202409092343884824687356007142649016788914395416713845888022739073290426394609374070679011513196390429280588922945904579069871859988439781188144677418968143055663552354433757013610317237923402143952571274908676388836491679883343094425855718441577117366313948883498128803958225551490807123960137267762212753550498669780763369691864838649393130451336440736397985096463350879878874178657698504959559781671022226559530324443885719781617091683116499018668128846578742746919981592119964876012951180432677030861907592747264461156582885637815184727852622159602188035520713321853090175691177178770659156183322400138853521811365012767971680033364081771000464573627650737678354149389656949009835946105832931301584729559193499754264284362491348151528382386749997949659826522052533390660924028535657694396052148764719663774214989160049189417432587716648313666152229095480388613311535027747514230954062885978049974265567450413168252865106066569664048538526395617081742046670837244987540949552365779130345129785611774463344393013298476848725977844513737544386138696258759133214806348216528258086005408845393719256253138377011573024872727878050747658373014116461198842160652294383989913839643481642092459607123877433338617769129616918194320409609594191103564903153361447837295526455340423724875735742424480251070445895180256723401088303749155069598856848287130403759496749780510152754035838741484160303311067207270100437775102730725748668480574089772335490831500936607817091650334618368500336620019507332209257091538026641600496219148611747506776131328662494119363098693424978970872443896060465718542564412432302374195527115530496981159798009443508000640636706885862865342388408795584304759584683146835244096153218980139449890905061478264655480611960659469573920381486263656020963617116726907796511393213209949156150751744807908717407758902629594273327654625234320097606822817784043871310996159318757538924185379153105259587812962090763676048103105434468668629413037102972802069827308391296735046400802698914064477394061615184212720335414405752613582976143456185348477351590696777117169571096397231896552041214131420995467361503398461789440853860228351356210852758729149502680136273857522127472863625894251799863634381318513892750632562134223031312579045410845284985802529453503338925270448535708356146759285335895491476252177921625350363503945211848154250929935729759437304080492508265295733833417686145568798299016438407579348346309103711655174497411465431622465853776792475340462522351024067728391976707526486046962758067607398529377455361186948634531915999809945646720730603288707109703148939196985808757269017939377942336908962057062935250859330216355418176686787199251827892959928366827114821800589334445044253018021637973041957622951299146944423675467045863453477511958214150832412395701683359890145049825862521219550860149670573388635251057562306621491237769727462359844642499420324175900922441612184739361964008213478514310088965128941897205313590960396784758592206029878342309355738173496663843090423807394986157451301508373923407818003413691730938184762322134546253408336163790575458706482212328615380732610940500874038451855922890968448816493692598827859069413689232045001591045053948398641817352169723466011239461973298787986212842941982636573640211018843421108774070783828329598453802078868366740710476611637818981162265146238421834270500167706491960218946568418354767033703011314673743513610434144195201190890667112086156564395906016419729318666110643061765062633439800178014936098127784187037300997023530838365895610565291894966749430040599150122412252294193251350276084775009891411189136418448510882013610459628346237973712630524877707501243627957503188890500607068778805046083715689639176653155198244847720243727579379187847950720638341510732933001405715539949014629310808073322170254025744680498416287814954503583857906912634821354792885680182889664465096350461062490607114130588546492221885471403101210433211182397001036200819434765876664453110791010040488232553576097594489437553930939978544663690788576914721784198878670007780355992682182284795292085203270046215646265869338410749113790534011981516808174102265767961786734176949107913748030163942921785916670135995639932734406906262428284417316233060367918531349215082138932963253924084067621971272620124295088617258326258859266763539525983119768512416485500418751742873984417272793846553233605871786781656218215464345770300032949227616896036495007695626226947895391809164319555935368307674632643504651074922125192118978733411877728824650724888465043855514693318307037741155794982578257824802307971973452818773157272113909842044669200594424319979059845871238282351529769163237036328467332626093667440122217494169965594356256989216844715614408313077217757719157685647784153671928665339658529233953412905185507830451962569304551146344425966263243226614651036214416202649685994391557067767702548583375564563284023461856780128546813664250120955755823847936836496254796087901322653275283475130907805218257258909777185160744729662418962976771299794870532915025716578485660214875974834750285377560791563365115279748780447995250195771868750708101921536726965958805802896627653722464097031968493985096040739566484158313507555427452319739273824462095785375607666710659530838232946590569223383959714792454416337321619156968286346693037846456891728010804756056385422490944375072252689913188439511091517391192136583804894123043235962544502359112240765251768533091602907232703418971183781499621400809129541001663020675527900735049988309632060489044660373326833088689473742268870388652821238702755339408148246403844869112877131707172130724181135569386384730763554498316592797633673612478868327961318859707580855984398348767233904791771049637172358616892334412533043528593086804961895998939826080871122517996642262836735168778875917490320804763460320294366804964243542818360345015818791712617641059151425024244307536394531186030506339984867885828691932691346375039289860005597457367201564330050540693396001744397375503750057382245439218447530545554665382729246514093806371378468875126715644169612055820860202171412275506580209319159350083814086772929113954061689134420199364305862197472163252535821460420318142940950519657851842545319915528452522760239899517621308280255352136954814380322264480155325243423231096361074121643138229370025440164748426134911690866483993093648262294349995750594100312143234174248165115782540301336993714242120849353517655076200819432126984186657152558808751413749402497234977746396393537758915989317083315192192665756794553641356428299970370464083467448259349784251049328069488169758167196162218112614181421591084244958189643952546779364490417798430461363116679535428820473937725615042836920182087796704044089494010808952877199162816842322779888528349367617688378740582950740519848413488778710062112453589072314562615901720442672901172394108011936621175833815417829670820382807384702046015892399939835927441924919326821064956568395163131522947566205667278069177924297119274567896942038140492960791792777440856238663189109014832971335610623512480635567487172364741283713221145714449384076051028724619813796816997391691090697613508927297453974742912706518813055970360254694747143118065721349452578470387196813278712968525849750827672061675762183946743835196181486272604990030313152993423110820378128984378935052945892551977168321958293542314352975030192690553405076555183680196888929734414925033571875126438490870748367119909570438907311347910345682929177922715910942471067033507431427371063026446551074071974486101719105728002309453405794258761310957717664145315452126054659655300055063261514351264929070689753840736542388164097470385375555109738211895552571951141008227378569729515353206186270694565570532411761122534236213893440512860172039316545552362356690636790277858401095436101988900034221268285886317591381311469869440534809715039474896323514965137540034421053694261622474359251065692463314094237477474967182605449290844100574929519841178194744899887514582132376934239413187073366176099751718476048164350525359213220467700359837470450854898203031956174858287754510319138192731540101773819811152592479460024632187545840509434554840962879116557736752634546368259747595307516255869621574407407775377313372271210134188939221095203009667781373092671026231095008021638102757662960899777089371379680100062399470395040432929349350503950503503372305249601949960460716291906709969836937788623182567896469374004521660719142113590299450884413122049777502380179409591193360072323214868545927394192174231662545859332852165830842931091523419951339029351974240564341439924932983402043952112737285699602282713596550166909292327871128442757388761703723873890281407221448055558944806085547227182909888661317643158886270539090626681307081317253176266767490319023426393279348012803338232445744868323808166787473106992261439380716147328264872036006482453811274957833203487077077617782809347875491816617812796543321900428220425590632075847373768904792478504689513634734621062424670440704175983137668621535928771989799595647193630907724302872478382732676673932430301315251976142295787362772874278097964981691846129115697338667920677238258995391141741337250490832160843066159578526877708142650286239790807002429842785500233154107443469648722134153941508110771589404123313822460081704343556629986055804733190601013792359917305336486896625184832278412970519950262782925898550603618774995612588889156452964771835028901913812428368166895103429768079519948365113530227173965562588066270786937846895214182711657585078667180148863404951119983332955968247433695144401468124630146821110322227374308406621233734963491888650504345289355220591311063427551229818001294613829732989973554184302601262560357277872595348853517124660767730720480518707894752229166986608341301279498903858094175409224275892770475293946771399964983086572700077293438729207194965585159948310347888396608437255333472703392818720362291983488484378549629877415002293063959780311831871945610032715596725352222230079270935362346207749388413674306380959207835779734296373534249281623473857835055102209841666778749284624334216553247347440364485701828974517666436424230431526776168876057368612340994502076369670564655121730843064682378949570142315359667490562683744211906511928451136736133866043812618744913839221581817576061099489023669058657091826556328410204410743676565917202856598350867494893778002730490453692491619905936053681207318714694768108694752315637459987202691618759351230105102567364348814146582193020355864683135930871813556748209804453523332215930384285478764983193398486971570578036966071962724366130298283477834663903764362111585035339665643401382747450590421253012309439449248407273528857601677494621879652538895449505301884525808891789583878387384670295383784939119665100007714569132527526325834107156121234257828216228092904321288787275231764920589602197159059464932208823382537626243843536940436343209230564571492695595122615126909350031906712134332532544951537379428990325418848086297983242548642970767781229710697279193047595701845468814803061617155660524864155198807659313347052504860568676080083762476479122693771554345776195207834981415914543099253371340797453187576036739529395976973638372697182560099156938105259323018486491855778004172041030031958429594340789790180574990949142462514841282138909440121545079846005288695889019909802644920964952265465300922906216291222545003127816490669804418568102530695697248308842913484729541590857536779302568584928767500410073461605456439531397385910974516773110559816446489858276197549887761512996767885263269542842547069125340348779809778895890800820767528344465972120105673233241603730190139393594473319479880230904778178274929677194344813435430762422450907761132244875821906432724680466910873251937518749278030908427372353920318600524805206000171092563082642875163989847172274527159169113588991715545539330239544953402776319340426097299592849123753744598146117567570232247548000797628888217673692986673638283149501688676627723817787430373573590650847648774066955069421790650855596163001300240503472737048693875146472824847444817912130987403249981683925548970784203000128437824516865760060355176865914509140269204440382774497593447239776085621939440506069502062340807340017323183360605449053317003755249685565717151058440825294521901252708994136866962773292100592821029800533879824916135542672177719851710496890936085145319386266779698639291598546421084882089857356717811700649840885913498223594288771212963538422028013330776447234837544725733884856080227177460870445905167355564648578245396543908089363280141956253308980514880324487370942405104789024400363681001780680556810060033749814021147739567927078986710672715105209677459454773319127861878192616333156884050322799780465666710467809894910847598813079640421395298067356568226626588358652117763366060583176377777213304675435865578673130694341685941776208018499484455223714557218301858557301039498395985949831791104651025978723638060598404280449604568862769205624386189876780278353254124849399337383907306595977732302761151350805439081530918966952212114095107327242558505716009619007157071544587679518964193408464593955608052098436809209006641351847015763870968835960838460176848048796136880462350694123664635750189896866208168009958536823369883812271401540398154056687915363124480528051677596552842824852644617292708453503115480204942430811701785851327527602395614293895515770235889113983039123793554198081558267339520187054337260641545736433083490883474661421509937813879475931257823753598901993809509373321061363490476037667136379314523711168465564899022392354444271806598701339264130487641079477991724920101264255876871978354456539095224033568875466645042303888751668132242416297467750246273534588020598480833434330983614465784654880589298979096184044930636364329098631936951335054298114561003905481936333122471580050093792368781381820122078891289805742960252152002436015998511027612600732835098648889703975966041136698369326907895170600454177895885001285629123525918886835333636249628751205372386101069532688040144563410162197933167493139697961128175425477330700765329243214108687547015134729203562224437629119314934371105130559504114215983417404684443383305481655637002745620830793935095038897944665578625099846349684751890181540207897382410654122080139006632198392400274733881257800824793446653563611808095198904003840800371575179682271190865527531543019131455232976554183892381792058929221849549872513034643909668228721753602138260153147483921768891387698831708779463503425932147827739348026522642766920603395484963761985855390837325322193468017780939280688889892786551772714823309675767619970007466502166664399766525604534807955974311305637065370009592970666382919509872820265444858187932896699431193395772061497268410169484823773194253886270997255113491976442712801560152112235366184678256233534531052990187063630464303773279254914992921341001571347454881255907493472069884450736625127448903916964624173311279688969462717323953944209019980419371827583803101513272204600137670201867920366494675848249754658244370183844675337594822289140838823241440135078960119595895851631942567540363082324008085697104973445183142366530256931467959443187175834547432390526958431205569664216374882300091108168080231311656671812435642867152274859704721314824023823079979753471798872386071887601105226017283816106111550996460896007948274607915469912032852028010678929005931486434658678876276771048191554992965325789192385481034399346939912362152647605414758694129338429611122739388095638167746279734029635266559776580742203964507157093460831607894390767121967077301798282454970357668126339897876959210991993324765473207606093847056683201064952673580657834516335791959177454077051233787832912759415575152487534462164366426267573449496586417879905597410945711783855920969507465225066290465560930196528191353097978813609431441001331599149901893930330870535506056401773185966010676860372464329654732323302312206697277290892050660585608958932431823088285924018983683027467683347431770180710257905971370147195897071468057658737239496541411352813274171844089432363234050742521616616530239401067688566301408358621397776021458285201402732140777989534371897146522578470347053240523034350000227724017643806246615074423480616064717258947701510809563606646272049822657771443589050561645102163551923640972122873145328986593188969059865681744591050801253318257494596520242975496819419786521024458269451065547946753744408081118952407093326224231178992800288499750288359979615899428745019074582072640056537542202027413489455925755428746986443492827624123459944223019884916372545748184790361037194952901238558409129824809117491704025756357621651538683089887499806247406089197909903827301580910347935106610319869145562295361191197445975928492460013799958277616995140777055145564473277648882751629784621998969732521978776418072266986762307003803409070635353786234997127248131616282169900100765119774590709647025911350594236155115912670323095706662123046014343932619314696664590774451515687267090179204981227570363676328018821907583056879883268268394358860033989714180017819603858893472986020472891583977162000950201756766538939004913071662918976675937283912497929631277126748415362477764956071962786925645772721437701509732119852742084978926654100634298183959849437330371969811334506190593475247378568271515253612513619818155973032033274122454093644251696050995898541162987706491695239108522834551038329376510695201596071276610603262383740430850730344184954129017293121066343541890651442039910268553461191219838176815092824905127202041876513521017600271540583032365379931118306228393461131494773536790762758668493991940330251474462602115192817763720126870353326070672847020816346411688362781358384866824198028623448567058017362064180207188436230953926051064345346272139229597976732128489003732197096706442526524596087465259840050817590168988827346839123634085415702125461582661210605653504523900661154131641406394209297382759149885004133943107416702257015494453562702534835197647630629450858575795435413009395834930988358703366572552372600322242654636394646699193728243367435750251216788464861721521494619252776240621459448185586936914198756681036995838852394326424796294059524516441094991471885168691912901764669672255114670597049830051640619226634642730925267777996026255840666658240806658626402111432572202789082693581943222496608327825289640386792372596210527908622574887195960929876755064227488670368245198709098982341768053842474756385592560151923779024602808113693933027270311188588664994125595489173907801278512816221324319031783465592758513046877139972028643152865172387546604496393978198763923960411949750819585300851274802850007081711844430277744530283385290968111363626457135701197935333240502251329453329362290975672086344599300739316975004488229052584441169327903906260569027656377326251128987673306160438911683326442900189613685985693797214797949914287561056941350786907212585238608123617871680940018873272207438684510340837274942060852457558506503338555008778408620178990195961077036508195065543906931833003962700958635972638138149615686357129701748904796844121266964168126295421230368805697800418816945527763446805255314338179171152982526398255883310970431275207379466434013656359290811041420789906132116089139568134640934806942219688299095351323624783044802711672801247116718183105478661942283155966010814553252202827373562050318743801972520770484028969127591404582651747284888584740862962471620985388473618011807253689978994654761850497097787568689977112219565912633111288288942734356477279022277148065793181095173662310190647699381139720041123826613354540472828567205795774943419123051868443853103343554830914723195886746154716677035228863010779664584082999290801709342739309266477383155706836491881594099734704382458626745859147768025842371743306782770925283462908878030901499241068815981814410685154650238361314718922913398349823550198406988624731593653775722085560060378930159460119871402136852565539703325410269335177651286166377736332812941991945451310901868708602519405419825896196032292802351845759175717562398067112293466988304080916654140569905362821856230573951138741074168190027453230564426846647648023054322613053056039856582572820270606166864196712855204489601537546721039063327152565815742409366768266475010378750555506115992336461056751900860332249553106884216957612670703251773135226656190545885877152841497769512418691384224790472193308605612183975320494104485660511183084036888075463023892088654826282969719884554480325556612201037725559743264754731701527271253398444990557807777224776956748861419007342363165410404670679311423000997510411194066788517244096224152302238720260295023520782271498577412553977942967504580053484536125246934294935657195224809660278285322380314242061845716236008038501666739272076255990773200123943946077023638163375489621692413687924994800412727975719634536154425890528692030864737015470478571885380519413049481634991658902951591993890873421601631803640889505055847535751981434082426996710369362810043652609789855873482561207659063023025392249337280846226333122827763512160224500176138615959332481159661388314650406187547191340112367757539332113696953877762668878720306668970725462994276851802688223659710215246985270793391479631332186029205266476914518550811186710172330877443014079924429482358922439865383616659091586892271359520538865529430852002525380329377596363655097407532377748789262437055053531179706525791249771015036840175619249150188760029322227477664759920959670592573097829004061750128807951516187386733262256946213454635789825328691973003056633707263497177264337556526724623094067463687557462926724888150119493509920163946209343701746517988740029531045532417171774984508823761735789315500770045845009670907008777196237310061052371066814250121636757909831220443166545363396948515658438439103844264503534540288742965378952198210178825902934518121641721172295401771595765309737826898265834185567062400398900599682452807914882999973915485871410180727382718859121468834766085148033295985376252930542028195942505615536998202472016765755455121799547554700540054444673217272850861317939274501851464342719824481458149480211058817862019287971656157352690382218235149775595877327339064828982800576562635998909661466530047569696874947400616769768320050098221550645750989035597530053214450901259414296429041076789844829636595893998029508093340465686790471500869021853232121976918366709363529489326837657808224422062180407767533583665338763473930450148475108602763352105157456272229734741934808366407211583023108018253230805564934995077209013524655684188277620020747927794100077439012660748396983432395565796913261797302083695125600306681939545808123378442249736175942743712033319921766669944576248144061625871995130637053745750163159537421159155389407022004560241873752170029290474021885192311741189923903964472196173759822845220620496414360637334682219557313556438335427886850348917539443817150731685030812964543940560393827701222863863347657817608354197272122681998559202687683727353257309682822940230357975254580455304076136659235678479768438465918532497555759313476046494010664083309611929838146934754231358994074691148630459953930503572243963378558860535723194774225632330706510678546293248452325588730880678198553661610900473070224127243022183310725187185175307822445007658099343783096910799990757232784180021372131320725635745880672721486447482318899638815417382358490198761664089665974899816769884197880092318991827383084467600572658795296143062221070859598572986393335885579656649647520385780916968238807200696460823515567430817357361256119009295334755851266753824255422566330696434621401556719709297408027743147516427628481121871585262958489542219755795618094570760681507259780096562333810099888655960393603959014192973360805716387206713394128598584453634202627595422315044389493315800955439662377194758924153259247994257233908262736741399626013777084760596620260179235870839642070715187322538097009099200500127054483413009912864541183123666500720079649857946831412353708679878949503978414248687639666138146522325298289313703942225388642718457443007940120905910768111431650199124924062231433485676862379990739032592147653300949184940768565265903598051332394162491450756547196668188881901021180034096049730499548376119431363569743544611361366132901352653843146584656144669002901877039085750360602069189576017349178056755266940394099615773378357839147447658447842348298117826047464262669103617753223989932636850568717427182022947614279947755785950220744117944169309039996132223717746991376994164761128338314103467403671725636771954979335156876050642508062138245757431880579509923790627419662791074276944220822780474187588825844235343407327083907616059334967181771224548459882231554785239938774229640271552218660202810621108185951859934955269216543364168727615389955777731446946856689875619798615503042218936955750817705324365148278528486128687307581379319680473993658206506747980549148334029685939790810349016513667655510334105004536073676370826601211322620129622076316713296592660092015554168141358505166650811446272060632336153937922880138724405449356373055147599793359185817993401965768825627362475484274675907286053125472004686592916010708482305694887381753338493150253980272925707646732775433977483566479225784238787503357437110871975426654172297643829400165939272801790429269878049686172565073738054625564652661216441342362648047675454520094836828181875528393225172916799130444070104908615393973620856064440010905926909018271832575576514623943645147558586899019939256488732071645242031574928840277857684602986155854085955589882058482025046593455522778507847291928162590446531098975111502359027575947300993744374331994215803533769576061511664866550027901926247092770062297680654631639362113774491287400828484934214015666558320226729971654557667104985658069501898119777117173737367773216694260061372056841323500658558719493814808507193626077945152043668459232622116671754396062145955646267915643177692933214198445691622583006705238806242820424803210095668596496637900208428776110404678296919167001440448885626452413278925189298274642683273652259154402917669260404815827922147047852023909406705402149850069015884375190070030041676998744554257502889191034179319079419944843513346776987833736187205208087776094949734654741658304235500271438746365026278304519485569671274856090967957608718975000519470402365606035160103816690726487636797267103437504860561454451627659674501549546909185389829453383091025591031489291367343624797080765359238754815671408816895328153911972673534396293435461682941528174669108106380483672391788543067306120240042801139784742643747260919339559578768849669609000590562464809938951491858823337919596056339237625322476614877202454157373586327323150209720246653975253850337006148143822784254250810521328289058963019543669579480897905186154202871588292195725147980408043860396291759818813553707490159816782088481455734938034312128939380560574616100843335233645953281802898512064891741015619218911582350732382799463225622912961961884059023148305780238912891506633343562814997613976984178118982039449869331228070579091755421350601001323910063181999662840996224791234460830014243423350654563272113919674178223071051221367043572398084174856339714134210506215007305523521323836621954833201802334053766248941514868403124564035877659035954076069925666709457179419596870654910564775090958266920841689163352040922287491562039647855055146338420100076480466745634930525894462496206402255533522827306054514560541054044913013254815596112026132384389613704615398048850777845413208646417288649557496861780596358316745056058122812652905515314681095348697702535774087188472741021356483077797088942859159027141289302823259948661297649923384962136236460005612458848099226687996208288626565710049275955772708783627671301451957506162472325574032256287572966574935134926448780359798626382410094903947663941826990815771900690933680642991223100969673164226149557205631981488909046975553110927248215960666889021580551414864624387941365468843725583320288229190770487646446011582326313825925379912588111999630331525311586293336422693060761336282654198017181472455448042043344910170626081870207732340218795447811179040453626945652260194578684700817199883868038925685620854493622428941704789407205855353729086035197947428201149460474276665096230551052462238625570061263408365942409758934750504104527730794485351933127428107298363158087690293243605888172940727095318625773866661430110878942949531742403048626920520802383210288011764536848571523840886427553497541744305995254115311173596183099273276620567422571686608485297009470555458041196727724441055060469900560386356109457942754256651499716756971944186425488694946198254202091662139791089732948034568946880167372539775861059128857773930812854662556111769431053054164063651115467599876427177166497289427296954928796435972999467100417494627504630596977172085610198136722768915518128926727310471488872462921205292083958270836409697581909609213308460311468536632896370682517730594743779799461662935488240558251129149236596121379868397612463082183655163630014657882981601559266080587046146080013850568889537130793689526399578258522821288322238840269420513219274601183274120679702055908328227899060470623985904098449265338846346172079707549484371080195867948292509307551003316424636700959418353457095960928575436854626204778565494681557413923415957183791623492130987253353639046773923605002682136222197812192866754664119923980669943959046116350555092875702552376594564805551921648217891853695842036605328467525638513217480835225028177496672413579834163581765051860240570048245363739340432855201198719393990681760104537703246995991644006642496604399576266129658266988415795842143776391394457916464474800703114443806919621053244577184374304601924254058787203764100075896796872627772474413450987344585402193664986438244683619828723926626039773360421461030065207075715249826447184688531439573592040072551627591903191866641963091219344991242539865709600411544026008084286949139911297376350749280748108985342948478441964594785990624678544556401769233899963339535479813196799267762183032931037583987185745618708171719786854501135219223327356624965536695485358036658065628098647299474621082192512848207580026543211852985908193993803853063262324796614343378149779555028184859350088143684747775613950817577443219300504414385933801425562031421976020677461578972973390475698324859928349624549583654257304338581712207772930947844470439453455671786661364721524765977870979042690218704388915303948853989591980516451653238881428986709423055879951611206744403566538247035525734373155111839164319391649195339952294083113942819413451198546243405159531936507564534710722836107434718644827124225898064225680315500740694871624188741576324271676361392448066244061522636628175065354078523902172252510273918376771015818824368228198490041291325866141600062016670898796498883533567193738481577352947202696376008424313626292046603591377531284608501318466582107118435629942053159041068129795549234347131595527480332329869121549015029171795045346166178110643129968468304109061998605297626285691996986755914461353091343782489597084474388745823796713739001211048427095914504223870827039696518017391963044321561358958831652649676036738822508582958896983350690065570155498329464839712053726631407866842865831287148698669734457018402713668810307724057910715214648161986530694320135922506067307937525117026343065266319756166356325549870529720492595337660890959344569361477081960021135475021582013103614165752745347485512653590539770576509143538416792974973642264278070059010778310309844411479870765349256996281991830286815076373509886138476828306935574303635732945499177737822377532305417061906079747276215671312168387681627071489403501468619851540468562100562895689213187607968077857129912007432802816939422697758927871895330830468416532798637615377136601574585354590770181080160343389741809355484380202998862865026258842170344175957233050378363904296304114067831709798592724510419861888957001463720014331327040901146736382526884374263216248343588496362689223503341075405608332191054469166719871544906136675395126907490963866541523876002321532581237660759638947143188046628144066761802679645209787458709988728977489456530848711255187377579442659688961922326409097655679877053075688652282557961888232607296113943254510246892397974144669404061608814456603176656362958013373657339298641310435390071719951153620157790138975134471270493690065808689427183104131641799036379197764761752924484337513833117964819552579848095683629267317005687104547275680300894770278516085378127220661660079934046685080038661408706847737427845861251470705025708326213672830845374170236885806847228622057806693569048514027265272967029235944015251757160641589627819969568604738797824926746037197269385388183599839007662344806463031080835460075319183926341997225145733688074642652856528833442739627012088923534874262518338372737191426691438561862301279232814874766704475280296684452165673221990497219843140620263789740488833565351997185636933886123500993686926483108414650896069584653729453238120670493456588330231728685160231205993905514528047182614896003272764930150830143465206087773468420555227321313411367281526951251617111687774887795817544351633932977892317597840578416387825489253838449877904417806584663287220055571226567782556685440878290274236899401562806856177621900655671191530756838786830962644869461824406976952243397875449106358908125651292715526610991629302742232410332299060559096474406703495499521982092354089417860796327651181954243248822907578465285872617909542092977826011395200657621150297254698729486013068867767025929177408944349195879634304995731952078520891393916891984966396994396854174288676087591226062018637501363583044686171851967997074048951090587606036805249166973176509245685159009938500956245292908227252298749906042601273671584648019512159310550701115365314949333835493529780318711358786395904618323314980621688414655349787193291297328636148853371511881533813561851756557137142430084848919960418231479871250245184518563658553777688407281683407252510037164352701121528090818659175487089887484797236788812482130842159082403102435414795287311907401884235330616533299709161034205952076115451582553523669641733506550777250040534838717260273421957751995358678920389438951370574668146053395127300805002045937315823188332528564798670653507524303736380824755728076332340102219208873438186241956917779210199478201319285051082461145651476014644714922882052700533182889177665547125304651835019511354502105582319721016798989901542571392094987309212733781873237647806285319120684643496872822143709774931409759749217985971441118893988850472359264761799738591862060344652589484714004777417797597322118162540803066624082597036627144705462289553579423891631601800195865048712111855466733168607001859533599351831977569741482504040472626187113764689584385777100971575462759620327523470338157382538399032954812518366645274030496670323419847356385166898948497522161477528208404777188475857070140968684551980668569046983381895811191441424957427455593134473211155682672624060664702223736572753888358963043335404189293063477834351980387690684892776485030984885034229513429164159291662976617886980106174781927164057571929644662347812730518463249779193536999683029307669247814676718625006673247331296283258603659174007746343513278750237165879648911553512056395564040550680170769817404578616941245524117369069367059941051984028691597587233834954857320047455789221113742406885254138954501862316559299227309016227262164406173453646028227112431270439578852772180837615478367238856497182934354101027419734587986306867148013812465693334348895240074589839550995009209281246240661936695820144636313229835779237037690792255445761628486326493503993292173238223705858368100828824763066475541586648105850435240853074358402343030632043662663657512402286171632328803460170727894604123054671683867823964807454419729404057843168408107165135756179520385497371638834683854865520422594971299533354450316828727818101841642785998653403176170935197590613449747161086083505930911874742545187706235475509870164752142444932865859516868562364782661292715690895510258873322526357516100102025489670649130628782603143784593244401856803509257283032819253582560770776799136114333980734198754472089289436352077866428403285246234939450884613466748987285408572672169495026729961359140262114019922284792944460647097036587096608355095071534699022542293876427800276507296437238925850728219368568146435265446087015227252700712165228870297584790448519333794827000576976542020459657608784160048913200020888544101056200680873643852701894572966298041989021874244435714204066333805051383084989511194323498643114657400878964596304450683701815098315037092662082854188614170056630028449354720027178695468335870137453218820925302752905855527935241697801824008823150386876242864364227813196303885600302157999994979902360591198786097178266644112655770024996289956148402197785485097523424498717467547001750445513197542583069768697192746239892639426570733786635695556831610711359134432691809919668847090043698408881983679465980642963205115996557189842106538066691747562938667507387176760637547130646678147998968568791862217737495051230246424013267216659786428121641696834316908270859432022753519269183917285585467222543351959954218006311983781543218940664077413209425627459274974275414892682103936405237317896749526196982243326232453761114542465252350062707558818007129290047240021582245628415943199954545711947472818969438888229326167327832064499510833514524910617212532899796804421763853901318978781929112883195844962830094199444286422751724203358180986340128949291322027125670583413190514942121135649835717236697679653553054383365492206692729818602569476445311036046464051082486355273428492032400777200040530022851454929705502514224881004718867460931053984728721394470755432194719737243391665009431996879478918525861703788059796307963590561007617862409315522843002992159058769976281790535535578426108082331828459163059332189897056423796693627506233062059634755587057104089561000263305458397584963660782013895020674205068400340462040610896659218705360835503304266901258302905995353262771559873595553446901941510202280811065212503650811445364541533240801358789592268642495406086353191843365950883277361965742764221396682889859244349937971567473601580498879488066729601284857708159251822458449850612341963521753601056167676947100110305323732923381971915473084869310654088943758605746463452998681203907645719302358569898407747723074911498194119686324008044242048189026000055565115140243901362576316108747667106957465815277028521777427381427635702323576801541376275723237540287380399822777391939820996087773987722696784656667600509970678219302992776043758100403941157240105284482457629762035970430654564060829275899379096848418955349041053139356703739724132830219167137439529671187162375163270285066910088685502355807542743923642972769462008839176408591598224969180261111850380907995859479455208661877088025807247421158317510224011555990883271152303949988564552199958959368450714615045823345793938090001704274240870222172692576923928136687183730825529106387245596889077084102006280667198592070300603743525573718711109975776257891313436014182209604326151489639588853364837045999696364095249562846748339019439922114880140016462564284933918091218461122733176368972030304054234942685304948440829921733791198089243374899631769444432687416503683201680407793763777246501618431949203010652108148676058840192565526369267631318699662119530886604299820013259470714080575900433398845513173577106404002707162157254540020347492136431350319088878047579220918398462787414893116354537380502181449462822041508040734206607454283675668628502467107566837534015912162659043914371677192151235670124294508790636835283245083249495183973906731298093549311093648609315480485427929723477043289092624397161536560337809790644292382200763745850315690706607447557924260816572403158685432271537080468541523100287699600639336867648727581038272275043306886374529940129092850531488777008506764347507849622291134818463212199554162679200337906370415400666310666413442433201511445983375799208814934183936828414973884836566306954715787751522560855779886410249571970830279487327104555793837990146671102435548105813881947919396830066517769904966292926754040968865992874580043811466599067668832142865956428739684940363442721110614382916533694785973108826437667105419219063086340323075490849225477809835456707435070376317499107202057334030310404868043239529758166952421323778330109189635640275053792435459921314474551773919419941945802205200573476407371698548506063632389065432014454151229092981446581936113649318257247398092801803604217909562001455891189712867378039343502250829473714939393002921342111393940351376512613167870511108826026669926086921233772347768428915369528225256070458339770489804420325739551099724340801570553123308789747882065502664034751167454809364665225231759862724391574985744608983839090982178752319925770529434638652035989108953066511901724976551951674318626714641681076351705638115154557112909122132371162112750359417488437543100964828608555333292017536893371503383079355521786517509995820075301658745497694237080089858225358151823774309418702313411541131694070014008003439196464653506889468752394832028825678863382337822596769218972018318617358901556651124217791926974699876108437524934218098535176351294224306848237864253950555246635059846019267872771051238218287713986197577847316532626368923823706227746884844567204333369666531183873524987920546838018833643599735319339950717560235389517806007704755721413074302654437708876905101034342209040860556036578578140958270415797122023270289994408572916595554106731766222891649398893301539834317672821313425421486530647411936738661808255198553433341818886075247630664884526771719371163799765700029242048705327511306373656793361192562134456719486335120330988254589323403269317113952237144506296487516555106884580521162405458241298105874671459900714704483317192969501890608389303194583711359783166466638494857680605635901738978095501853901168004586476394483856658883268340154130712678964733060141075422573057949519271878585528406389949842976341622496069423677291460384779972104276075529183659281087573589776680035883298862525720478869631746044671629455889952488358770713334135363982602957624949525474202535477210686471467810357105684325780509817605493071312190661185940713827431953986722400480046322464963517733518982984833008050636198849836948520486954278070211277339908106513353591956212355236058685832826010535132411535467898474980522538436751384663928697497733656655205009225638637612899756476554683662750265635613909449396080147773151590920649840409687813568052310053751058757161508752205933558590104311265077615270131938186566543816743572462515325492232158064679680181912553121060805584607041585436442070866122101657520372390022732764485162516305521445689071669564570269758117999045131361389181133686264429759160186360926277043655478130440827240803857116688181548020868090258395413342468922551504939741844121098349998467048785979225215483809537116831654676140653349493821140688184451430187665376351507717202527847958233517043499324133136996290442929493813562043198334402803522560464839211632869663150885343176072182521544240133833780392805939395068967961028513727997714057153873515330561642497172538010073433248263924184836329809718442589654062174005224009292830696728833194589544117354533095608270677029375297489475243181088912153611609405725718255152880917523310209973580020548659929765484608763237924539973069826322881517711362760254088117759913752472209126081379626560396499074771171220709139618740025284063320109113925217862061178269844369865779404868955688362143444577306195432852385886779191719221274788474665401596288209985170833033978200524125937619857716414703443529996314964547703568730420782549247662953300433259648652915283154462534093216724012645414586382001774460752938713249930222631171149338664129137723199652333181151437425700907933884560367951316339205633068213855216470385682620730671204948636160241572928470801260329168490098981699012192832131829433944573067803351088405692626090662578587712312563549969004543690844866889872438895528040966428613794995650695996133616073940054408934948709722911831292051386724255841336371602022976433526491841668465601867749843558519558903871765869841120943024241481470911535250797504499393290515527822712472346641920222900809074005213127032288254046025798768127481124350289106297556815514469384282931156223226422169689651221954438680842582686817626979341281685385738195585727185614685673859473847022513556361036334020950833688267698717899999632650565542493848524503154344121373606647955762046799050863194728413830031712337919613165230284187361604433162336502376550654609028602543596697838506936496455668758868825302574054235888963884424780268593754324632135584711430404404882683181986496883164882992933416321776007144789084482868896806760069356564993561849697525934069267166845939140674970570146843838728599767706690106535618980709288944170668773761796089220932484166712721570055527435662936014928276527427008717154234595076360971301513244723493073704237394459347904916885320158606069688124561496889204549746824680390251585941292326935366992592978812065536191686725449771456918575644455752391089697945920432656777350914409545762952198022264616133820882540811732726986627153571716368628778512094948140108069227252600512857413400482946767068845530242368749316045277458093615064761454888932706043775387516445911471550500319665143001269649506461053926133786675933865439008708225489378026719752909455392803135601780904485704443039842577462712480379510679355888884605954920180497591141645224910899834330956576802878291397495726814200972423925104922475622311151090264492288052779232708588924253331289694911675066758542876468199685056891378602563024009056322467318635187512053088284643369066629330513755489131994191993691527414418092683717228041205240244664263749645756829445507722803137543063531419527765823932958047332047167624950794379019487907107052922717931420089981777232648532816633735913405078222391269618884822581611500020610599688493218646881637949241102990021813751622964763725881725010429009170080077504671280862792152788822597190297615835922807967497477350443703069461006063466883980415647044055245235951792677443389618888075558535019493902085755850777094269272846741823483611820709194876248139020215865355239560117752140637454370962048359601869679936300568415314887562028739139662360745300667324236214957050877863832549207308172078124751672931906938325700714336251992472598978378222184054010900919727328344185765349564542346893533841412793909306234879801911355916739581833628045950297891808392970540291179906353296149448511364737733062014209764505852572770843108030778776205109930816340636789069352009104882028409601080555749494289603027012424901082746813915384766235515497171436194729495278536282756753945611562824638847113790200356809761101638327078750116677554578936595483049386945845501327379577948418141152013800471137387181636370048141499294596809823165773462787437355207106188376764067053138917155172061505003745769750159841284330819257770453937780919320750420617170349845078153761368156209840935296134135577580573268087916544838909544149214957298266144813375244518144690441802676893642235842732743013382364194847319135946712962822528087887989185877662321951028898761299040810364802873719655525099657806917148694313456442936049916756194831961192643203149721380937933959195040100216319742100918046021747729486032324991730025390366500458938299354030267524075363921597869832301366985245085832582527192559433967665349812920037574541391327249740144938053104213162418235060660456603380813075425705985703722003656668813143366736077559842196774525042434958480775733540431982244925766041540068907210629514981073018793064490210462892150301184173998781349388324966156848420072213322587151051828807589387155982593788000970365238648133977595421124440855873389259334046892900167781429950581109224987050108475400199257562935618597606088434359004523499371826490392983771304742042461634160683558781872376907449345898230086095140590436697663868312543772702796248341600565358277309626446396824674473825971686781242544037600527390018763957034350317112402453296792361364738197255419517329096144358252351090227346243233422820974871316118379665217265397761495208303064441091348648832416720674080738282482308505350856405845043924911015802194069268058769274883772557838060706737404527164197817515959456365123432806131341151785261346478849838586389986800238307794546187434330008834205942933158750020536972009350394186471347688319324807740137036816086709127710919440755775068915092099474060482405883715224100476045884032881308775361508881123576129747185176020563904130385294526041681428522948012361031830589168031073817974087244085982119980461746530468978704502906360035992492155143665218468547080773156094576784497687444142777217918312936154406926756533814542207377950313059497808986703291441891072454044171057016650459815542800937742280569209610677072236626880186347692970892189542613236170843583560957789643162255444933680874982289288856979513520170850367950351498323940346412796826026502396246146725339824735891607776422304026230583468756331226586147461102062960616261671444523150207074620322901036164409813190963281204703000053504322693873481503924729116085229316676427136054572225419021334843396504765542419746966899047725812994605612553949396026540104185775484508280181434144819649923808476871559537432224695364600515354425026820685197272737901591825404529151920001384362224591872889783392832754885249131470516353761967126004132939228465400952906008684882085563520171269950839074640732969177637603290519009365679492821860471016967664199154547474483334373106258889896553979006090983501720427295264804583952036256974300443656911318762943091272341064196980971257991459781087870798266239921543083371489407423747254766229902845308545269980562232686624988046335937682913590467022911694080263903042714298749780660130017305606688214105494977263616464899656168260529088178884533652089599907075392807073036273020438543233681054392861090938080475601490812914077324386615228575185477784397414890390805507889018891896389734377485220149860562481514598959082413191340277196668938686023310423387327802265229236435326832620461367382499761674416803588732287932211869108652366745740107104266128596902634501964513468863709511613091735429836161424475044155627576399535672990388920008970254764461723241243167564194638447111639799162421183412886106810785060301704120126003017086147227485539746954244657484783846005883492324568302832241802315169015140478947888744810724906129205395285936863852210133436454036728086548379653286578649454051676362825787687810244026687312637282775795209700401251189735952127441297885829916945064378137239071878803664559138205808264801500985792024521339082815389983894590714411286765620131728272245773247961254620827430999769129529194289732027325344752497970718043828274414969094323708883897067022629045484991707339012357311895013757629448740767914015866378861058732596656763333695169509764753892751563861465788988833793556746460316847223680151380881436927115668628203579828471363393149799775916064929902442639299814547588033512719503823800198681461695514235431931457834505362017099430971597508264363181182317907738913995246363075072331317354660685311599131579819158791679422742944800092403304122180021298629120610698249095532241742137839123552292813458626853200588991990660193657597847659628648667589948972404808497182959397021748908682589628809770809664138758338075906994742108390733246024573016351362112458766829006948414741329227430957622996951960746081221506222911634502673158268528387775015479370116875792912520146472225482797529986690685109614680929308425937891083327562636330012026412619351663820389701633190632274742322141198394061596230025811020875997300265082539058861082485401912601070262623921605827552337577896728695974084642407767949400441410134505326320860425239324647591279073747921521441453432190661466033328855902725337278928823329300352476212937787883649786630615477005116415720383025787473648681262637134752452287444028952727568767643705648345734118043427431972029128345833015373092981755245826692990880736981999307522236454557999971945871097920235382780286128792917614871922470217843929525116472663787021465467549444119245418761754692394636852071834218651657834919979466222059513273173796516105621798533689977556587043265428523368936916216808997194961236873584132875580880969973430382767208040317373283220380429998290525054547896828417532321303126947154340076590980402987395462838040931840160513304883177454342478206889240758031213542821150643215303677561076521002449708397125268288113299447316411489367342791783578110092762843719643363283105202102025592768448477825156770645591350318297235004106323791952344547791944067422409615033223324299956880123618337534334677510305752627991155428526670301624076825596505332904052221294293439804587593404422023347835739715663145341997298954173842394757475006683089644126536560040650004388789742595032998066164713974103131332971202074867103427175591431189147167680780692432736741548356971574048280414415721425367535670088081727040898800873953650870134235649592578411254799663435831382818522759448611753048034452481386161809779257208196233930675074553536443880515564379948605941380076333213784585470101840507695277009735920969126292050727127035900284438549916549563791212049511250763119797467145380765548358290458459987976934980511832742675205901876704280271064728293515277762385331788384627851051938494371605342745833013115171012763582793040281437215617631639106224444438859617270858414184745703674284772149436349501204195898866946315586423077935381795637728885952468451708800987885151018169441813522930083732818206226819998426148355977845966478490824236027005570494307613447366345136569624086566035533285336811951914637254046474701310810013490536141161596905787991796674447193491912805788192680315227419619269604306934524314488614253223585901952049112867937896177174333375226014465733091906702872471770416806260988586857161760544197061407221268257550486977672297811852005474701529536679357640411713648662815136794336920592798228860627631330333899018220300916490218127748638799417828320658745020453177282819650965539973495617019720592697599713763598468544975170147703829277339283737357185667881130214862945422018383209708948060417550006350466016122932148061749934262969496841113995991772423881063162083334603609966406061275305068862375541791426458774854798145155023467649788144049094393935853834844597331207331878324661216070906045096733392472552783069552620325627397071768887734758356238123590431473018773896051064110965032925396277515639094009134605636907630185791226107366535719724840609364556147963756526226200725627544820647585865154932702000151631058377065291058350864486348743564075644927948382939489462478215983538412962683241776987025521269148621297999737684546242834747604854882087880883368927187173182371349190984921038841794123164616942445211561461455114377306981917904382247953030406903571982802057281489610980331274308583270366607935931481990173997061800812035998271417830518149545152581186976937289667648023519632195011024044305929499928147382449553023865601100135346748968105893521374142251838056062012676180224811684923374813289066516477162016088116951597169364218756648046689435088727260971041913515388104625445964379927224274048912739520418145860213553090620410462042626719234003683646358008303554976226834080593544409041599418834095944851340620436732927490323468331889549967231597591051925038234727419318570271209355805690858666507200574667097553979814637240408635110849681553170355444785826207147747758416596354172580848766748532287792603723958985901841756060030461816038920193563131184859164056596374614961248711173530025712653372071668284462415661372944844231200639083105084004608643913514956209339470666860498433253184166578272565675185793919805605935364322239402783615645735222337647333987478644283229921530921985965618957259356815176961704176934587568034798083814233397510966944088268945766942000983392250162669683348833556468033502197080094559388905684563702366022312870650412514826002023839606147964117650513382847218491687469212342481441340721652942493865504584439516377823641057278302773433191066410828143909196934321575537890185104767900045414629372685137026245462894877087023591860469253472129369680053463551826537973757732734903661358627953172441364833988135455429771824224510440358162215602366599409705889722752036018228635891807640001414041434679364543645281077829176835826724475814999835305708466866176919175903916606789351073859454793865341983285037298307117042256451751035972140580061430054396213746110640501512477814186794104338585003462550538875739368602146696716277090183203007835698923867655750360871419780298192882469677388865524034734523735228764519583466807845745941552291573049419398745353588463234629699058945012949639774775562672074245759736854503547091818919287628128269564418499620390132186026892850595932316450951780088761141540633417733213248852485152278801817415223132841246960436752502039779477108239186979071662590964297265822126223773498155509149366184433257230877391848907053114148205507783667130957171301881144912670066693285470773787129735373291865182259966702369503118372388363102944877599080898519516394302909574999162307749845250226089103012363776565099123880266156234819668541954106449447808003324353620509065772154913154735881922234186068634435876978377851713364540862487164333302233598795875519824780385512537538450091452747254463474482467208750881210731433169899386425308474571668085995747098383259127433080155731277232373126955359252497195856368509202160368027422134420157892822729934434067480338991666143958465636243264448478990847964042502641513305282303366962690126047406319756236519408696875662159319228244969534659511702123705354995115674596502475052531986336386181562508064479907655326466638119276950670275831142884609836548295210738682020107121792158559456014683150791784157654503515602891794762750885947102618835074430573389421983998005378690659473322601575536806424926248989595536571273474024412803584190777807248618320815165029329311488811032274620192058178397495770877881995213192458255437206567559316940985774724413691797163250966837166460385399084534373438072238611235403543077449367971905511950837573395822250764890292176126216441645377837017592422318136650903587097440365116090807395100253321123001986879990048168376678696993754571630032238088226978462922608840753787244716494865410870709631106879458810058378542404389359075882480923048000800885668858098076339802348943075544399757542127650761506855086573488513575904656830642507246032461450687029724247465322047421631905467664193730452245799958714336319156944332285822366877949288236164110012678268499057981830015090185464476479025742200663622053854747700087387746664171122679353484777406641892007851916322596589875255471354347420012077120486537843835212206542090251132532580813119444807695765843593740609742299158245367743355230973790562561586019733453451050639271566807141225496531243358501847361035889694077104346702760828350126444413923770437045671230162549658531556584908420816811511357567826823979540160541868731072934415926672422485215746469699528296884980293993527985003943381939883345268288939171798348793133941809756898832521370841865333917526244903300212136253984171270264331952001298047911028357944371547239390181925335238966883426503060621043540352564292022854937705248405366327061441145496097624451460705935250687241194731789946948776296164310959341222529300009981150471601217382704002751619959437675056083470114889312439439536241670591340718565392318747002525815997743847841121763505902051744763826247946805348827905043387834540541234672981966375555570059731956122285994763387246958799084503574693420374664433117594662197881871284577655574572244794798041336663673720192442488058333075135246611685165080070245295965567729658290925883640287622186117904831438534759492425517108738734085485040736233351085871336217973253863334512572170206999704402693144134671993551985902914403662078144758919208843641844345397990082142767714603677836326397857496619610072304058178384772836765096353649614457916422472618869117005273945276811965150002983050885094437106763314627067321811244911779878991707673353524795658210179349334896955965263936666665684052644049431106378169487294948389789777588254540924467885571937711769700879072794575373313486344016280163252475698907163943996404786160850541714789448565037757901610127015543689914699529736457946035160155392078062246567385513838349670214431783867609634370679234768586797729526927587894756844007725390495809945623146146711523848544013752106035010629476028973758984996413918634981277769271316404189955655493460245157155419008612316217609005222727256312210065649837193066334263282796952558478777414344851116708893327009370560625750195596261146583972161877586395690771586325392963573586097424453214083204934744337588285823591581674634118529794504151600685892977298963860193148486145492366335467073728316283941935944441863676326082191140668639044920691162270266176789038252476502551723155792053568507757888744590973836586324836658794380944724942096828889487180806840391392934040051791157016259153811181621886044194553855137537622816394558052675848367722814269725273482373837463912054797379508020221203782233531756416134769598046855720766816800613765568419567616565449289181674869077060277434277728890262785738085865362567295682189703751542957164002560595384476894425604153267815492756394442847185161479710606614075522133276003254242615269578114094987740767151386179766891537031976715677610047892935172962293491016710823408289874907229271660511489173335462951398128045799011534807887700828996690160351270815653728127742458946821653043499691284270142136118014229647304697657803768110009028031749543822781449977849343891519860271841490883491011814346991441488872055131714459291446577815967343426722740694085793902844646486694372587440926472389941556281051676679887908802028411991338553726540780072199325659299761048403544633342596484178604387938122753757885417671945770847354082094583175421363676209381793545420713848475001796184823060087360841934882120119511549299627325980113274002798869521832225442916457332742675056608979558251996451893826616183124430651309002645657773017507223155917741505736113006083480720374236600296961706227565160079172926741712242250787405223997065153638287169388283747128727512079225845250003609022395913668170437373411384732620240448970531690844415260659241001721337756500551543765966870923735701286874551323838180523190482397641406687807424190109481401614243182080994190022084620366878519196991190932774180092876179457084192485225147289636784813391980759863712990201588372887513543583235023916723005751853795576430903115572012421990249629344715054275891976549428649855292863653676599042103323335784177745997731458630987822402610136205647172436991406542262201481625998334504564667302158905265144079130239521464359033166344075112899366225157826934675181896051540994804636657616186752522049798395145390525780625492633493826483715178658952298344214166779525724788637835419773616263275378568132734892417946444983346568757025758065233966572045147411369583404758616779996719506082180729076711775754630531571212222514416048531746413888901725960099442927234861959396949641369038163557910133108357630653090241949479594760451084401451302513138359667492737567544468251779222393765855062829005985313198866275231734389560659788399023362493625145635349742425066917060763816134266402597490703387465790517357479191568182504967498195127219042350195156341797054691685111917839894935873347282558018376893287472841867047523166040789016815208433445175025109558953983609226619941540877990156236393380092543539387657974861203522529955938415764823063670649595524028181013080609004537018197424051853166697152270718624169794579463146664634573072293530259324983705155345595678497751886584806931489693486889470610565634055213905799700109701700858189604651304206093557846639769315586779045474917109523029210368042813395603220553970607705315611582673778807705234993408717126245675315426218380805399252605340403861263396086808803744747917829356938513456202137478544985624219357463029888299372206279534818240107402696297925022237442785256765685782586320288806144626205701619748280044692182492062081329724538352451275546358921901112469420713384504357341748488911205528033140218400992821668610571813666568066148512746199484993546635136730465959526610742470240831645665641776015032959734105714159033499126738595948716273924845064209282500783348854533839606236240096941886145609040986902936553655357495162418279297220765181878632597258163913090853495775222692839823731111653336285539511651581742534573321054061151071898208433610716892570752373620035468190755731413145390410707660222344308538818131254920306751980844332952521295792181241627171995168931010696299559865312231475420246334896796456644933298824237376445664284330029498304861530562275136721942603906272209714154909826233562940561726758045030684910660339136445229504472390041507352591251443176373690641334644897946363124639225316254987117769711119622962181726744705449695054021517953691668851828190272556042638575671830287255774652258172818233236625896963751987883668637677319916301003124167565133098586799048844323742777001473543288063587458189651378234606264733955388212542002213251525856420569816738713004240324550463223629379681748481205653383779042204868959071197224084051184202436464338304450775612855714556257384473579716011243808226597845021885360402667620184778270395284449624354831443927385637551586399790845839686263241619386994808433945752075209967738579210105450574948463198248728820158501186439420739558081625976156965633038347933427472316531434389434996911786485879417546982191266721376038967383932780361466689060493175123113445479053532255096445877959744655940320309694576884252843555549876564652923400313348760496047354572086767083164288156628097400098865352423888006133531714363749325770176510102152677051764387793089066614679678011158727299796493117293855880673590481558980263225425610039351031389463688438491960172165533085454541214221640720035581969845078751672332846987918348967589324173150991103007297391158282543310992720749222528860414979448827626373531764531545297305639809362079069314387271154924594920585137550583378545496753325377450518075681142916784424725710189658057298841612226892594158482582483283603754823752892670465731379870104970511998816728509996840998664603798787888565889189459972104778619489497900289508346185106631166474991947806494106411761623936094510129200316431161471495116246662010084831286093165885790907528737814400887562906315324184184602424512675763155760375098272128494937396708674955018379484505015334102128808444300066512404523694429658980482920932434520121507866028850007178703855297545043041000565559349608302769318895053952471074883984655860037354478591684500174588959451221198072604663439312546475340412955341100603111830954546867267391341057341578696211619189189010008521774708371811576242230770543301706769687130448248392496657791343736963883248762042652755463586267486176943204520319545819748940684679750281800929178066789558101092298708777477595541038288351859652820492835287658746236635827639504743340844370630853503689817171409772689211024906524997504099762898393075280549186630994193494945271177747143294434524104029167116623329517853071656580107574270931183786810437692385833702394319360123330333113170917260809881122612750110515207449891675372933036466019504901848127838156055658533323614482270686801294048492108183443201401638011274816973675231645035801935278299502837239146193080651972871510706310518699619182931898361624783638166240818780088291199398380453024209268478902196269624540480830900694363419273802123924036864584986231553947460127122017476577688201237415237929978905602780504760914401383288770912186982354648299918373632168778369116083475514470896279951049445615955815097872968758125857175522634609393249362516750458893636348546421521069344252838876732939807201365320819118499675260349248403667174412232286359616394138719485878179880201067222064199251743722470982961488031158302503903104389945495547128660296563818776912378577216762904411429192733817887750266099041552822659219878003087259609891779310453078803008387765061798941457648670660271647189629951627221248221857453941583660998518825286894747357945795301451222249236068425934979671366197501649882653039107293022987460189989278237584730656393080668530948134390776758440216170533001788965257753475537696509813988581394957712892435307170240537029976595462687516220793398865677736400563154551534337441038196735715254521290539703313243980241301326070756128844814085483387680281502836925056281898859755951312686725577317755794058235051582198516830222611844274469804704390625346612738944065279761027650570474771326193881129317539413582487973056520688748919791010063040371601757778536057438585954007635832453046888687922181665268990564626701706339665235449215468218261349677034525228457554448787503590947036176310825953715912898504555749224373846876600659236062021891797369632030575523410517013403221368936437134446447271945344383964658317092866915937684375341161432602720978574946941667037592599248318926687405900872495097488472724855578634157217748324730749673349108719218075675920127271013848672121132444810577267527986604171490782416873995336706315413604679346218940301693452060613497709848173330230091671987218031127713382963604422469381618460420082407262250960285077890595234270608705254447200864988186338791736870261716780718283730393319748084660465153699096347108334080309772459342236048253517280568002639512794971032735655996719796711970470443213714378630463609904214220127596428137053592424437335446420676402125183897796063518238179935690585947455890046290355218134384765649781275756242109529164413010905803434411882336268412596984326507623630476848620084591172452105159855640775568157544125801331471770445671799838052675165990508037577372048241390335148296483513444863443571419548834082514641977419647748937858247492693690123302147503698102939655625986629191700210393835938826528439668750031351968707637541994844179693204102883029013401594394981218401273489915418153530713171628575162754892662412753078878871047619377562263520408068516464448866763510477194981763089137432247406039911246980375840894051513941317215393745346154186027727671624874702022528670650011647977853016193766177940688581010772688461732812231915328639502382721053725024899925506772008721625408313203742492463282117611056583250853474718532185650585770916494430276055218531326473147798381019933151279313132152747696511189492379579411703871345707058798313591104676297110493239267250348080174822181644313966840051540622326092859953477650840501218335654840447269349340982074240480663609281753971595445757195809906789139055654888324531546619309018304797766778912830447518464641225948375673786064565806683777453535158799162731341217076180317810711245882252455265299905466120572891235856213993723704038256546090368720925168575586193241530353345802352934289899212554028175496112109509243009725819438084410713229020292708496368637786765918940022378298853080849057528770586602762385945153162696571884937443180754646953659998441800813456944519616333850402793595307286696695723612693335034279266233046567491455430691840990242214639366810199882129526230585297501208050020410015447864244350292156349349303928411637057136875663922778755537414008378159633959284320626410957548854719824120373724047971972199533568074589102117076972227759047925968019345878224257433047873936472038622569606061161773342857354505386460881469087951065060648676029869545033576888355773932460903190568214233888556647893987773019951478354314911491343343288351914748011114778815314452476757195179392837414684766642437792932323360833322648596640449174697127965293387469034670430252041147137695876184883602148480891054907329727968083907916305996301693071100411475471876121814833794179130787844626897803484150258989177312188857460706307944125366394114667005376400475163190721335089981832278786182041969098039457125073243258689321757106020294902569230818299832212422868187395832915325906168067542734100394141110051912038196716876000080479356740604401909109352202607051584574030335432442726138965981985804479306906674548827517444750338340666118836337711893556511561705126944325644077216142997242287044429211752985144747228007492842313051502423510596789513546336376735274447519685927011798262128880883609828624798517290186350752185074057074396894472928036971210599794604988456301834979697243059021046243598640312081852624244050538077395892964512037488673514059938532022883130704092409841634209126941520251101260119528087778630343430227273858966303425074350207175275820133382252192889054913773216708264257488095861994599865273947964938221528461143977902021744088987935915569858869911375251153730422910676690827690037719027888671977706076867719741100058105644113900138018983704668554464052812614342664304665761319431035650537069909553014839459255569111222506199375288273576235529892530945564168031774051857009122863984469407812935188689761970863642961124087766458094538881156568898968184108547476204900068723451086485695987567030533960082068860828706257588641820323739874805673555826867992572031765250077991249582365426650054835037287969488012471130777575254478728186147221934851371779640807799593290868200556276536031640771476547999342189149157139476144848428333619747086465753259438324925108264898390858379124697389192058033220039820207744714501294180945058404952555094068348427168148476543081614226412580529993360380733884839080460263595830568860461863805495779625367121006800257598984713805124902907699566363795784351423488772236384311522747056719327468043935055682851456119863542631871291443245730642702582010727325278822293418409230978659856983798413473230039717920819221804328311013403584752568774002079174679830586725949181892564927127821162621488198330402540459538783610983682751236391323706893799347949936947156420704738802914879154857550365394959425619826894524230066062584657726785748433123083396652919922039169652407879310370470378018530243535026416732374168645129480487029549746017994654824076040800725448527439077420668387679061053424543849580239566515263563840998277687917878022633708160012063902572681278861947822265277795241237126472973622596122719180275094246714743350013290424689945370215316514129688848979230775318381946797394800104685220454856423756024093632967915210747454442615479292669045963069527554545327429857647332580049612123110684623587057566409330018594413389746682663546158879945757818190904008625693643147187211128023571906739323200879492710548052798468485367733211083871224804505288645151738472160814820393904209697112473223662220851892710160077178416603455493728018171587588291865690565698973399541837324141103693177019141520304326300875540991341641374066073476870005478147550792327217621295019867982839717856467545107464503444886440723575605281952965725858003327166461304698019436964736997445912320305927882391985882242566268156860414847930334688347839213301237991118265275704535152871775861096906009463992705828546352475728363256532321594341496221039592566566832118242157785205887211219417773377054135456898870874124647522421123608224933137136100766624433197078116662154479238711911367473752150240310185766711625352133241559812403014752267310265099733771793383132650305048686107451894280150410454633608236665127140850929538137710667478060574512726358224344172355127870635978565670765578524775951638239142885492817704200056937733757154637909100496003392138179517585867728527349587857680228856354919699884736039466394487297359499534697711483763915629396658817520662430218950285605035822514005637000110635240631466787251744351800330829189192504473753341111667265807491589976719633565739672652318876686752675303825601253698228802336930969716012787906359972455705509090234569590297475557970042847816243032232503170674902100733880068362887924921062262784360016456984919416731653597830149680999229016316103619892633477682316608186597213028860755821118707095349550338537625518286150102644391698469145354716211984902906128709631205884820234900446693275641257733826992136538369664685981270561042073145639307285050559843770425052615860711876883775235644294554446700526910693499614270069257714182294490416706988786562783129766050091852459812988637057875312920456094209480706385002669656466027211967076824425748858967574248519856017445082575164332697800174192922751667567116660979677751844330991821948683821547512637804431233007109261014967409719800633916831708128958739226321907787718241070143007858661699337126817449808522388122702526221585822127074459899877296085696148031386366925643896492369653109662327141493350118206918663396591256684635661977634508389514080479564285598944432624772567002735153894615424432549680708028295003240573007004439807271433456736995553220645925824549922126938144379108509205996804113976398676498955902289296505981413937236908224991127841253647075528967626790838484713624862664345343366590167806769922497930010481162594812649999093107059319839645509965640869116253690949680236819649762869994034503030592267256944687145365892509885991201269058475183810827060215687706556575493123358547767769005024847900279862159370529868059930287185478971365470381130750636494987893458425294902712393296826089237870452206259166031298554840699903865813832802247608361863270124908064339721851927234653787412811771474666729550834107544887668107084178368907904197843597218358077087042168755187856293587595353125704950986604692307095642865819723543184387166618465770813206739179412909171350174906425272048156044840050313937582674759600702721379677741376286131736998717653510724363797663594272108989310734652892717026156076656750627434930287422681086192214495421634830668427007443394639418942574462569079294423149141925600790138687527419053808920417676182454666149252330473860194213471584543341748413982465879032030782413965347726984928807817373062252596200234107637060830483285387270606540723059285337788683962752344945309963114748776404242156689331816874388147372928441276686430539982537260755565536763537395643413679449649613948342540671065434385698505645805840090649249006807322162473996140454192902051819660353911462151637315864735749388079029969607759332973845130664173734222106288621082325170074217474309612178077697281205788628245399731900033516837131479222321507211046939305116938009335468990854216436813961741881902042636039539914813465469670990427186521062607314601635549198715717254218888136547826255579358345597807043898761290896660413804512675461259887187421078244452607365880277509115997935886250244638700725408389129364298134885488569062470442454478238774528555761802682824359085377737867888636307006172757884034488164222565267882333935500692630307932631022334506389254981162173392970917605336380313087101323379547075928692445930963419715981780709389316095480433991150436475897789700536859334791669502842951227491263894588209471611643517939901112772226267403341672184016839798726274324581199278160386549646181485090073507812530699710071331490081865207442975055215143705199188324778933634937408821252623778359546655732016609828907238319216137031707467832798808223940239766678629354676895098430310792637856718366122866442609274505993709501705659958921250715132696029335008829938580457003114482749990826018880518143609765137362019093977497594086438267795858988398500920588658889697683983032897344248380946951387676328538224388631275544590824523698078358990124580634189925828924015711243453556528570285366501342282216493044143267460830129072957498276217526703438517176067134200676576455073297256748232879265221131146128903190367359297101912387150193349830761220971963636080560428550062739043034727867387674341368772791112051987768237821532414232254471624462311843877213545351978506021161917113823792812881276187076761362083064851384626033172191755117586740288768701738181738115391093795685684537663472399108505895097146484791874000943657865490088551467699846879351567448190409130597080226710764404068389168305926163457989494223033502430942249338729810217536145195257394324982092545913599569960852194980195535801093632647294810590655704923822423690608324712765948351160903878413828200931547820109340084529227954025484361514208986165529727653104082199504547855389607233820742944001737207010476502586612014317699600354320884213058663640851318969883100871104744961387197612568567974090974915489020455388865187800010523099195716621625451351048442680247292534130415066883181379645490328239584532772935640928857013758988712057190320504768036761868929133709971713351792507809182504183942558541591896985439205666123822362539572307851619823424727396788523617050609167604114827307005751201680596530068969557825369910137382353140268161722829538321870401334836145320129602890597068465819404614778646073901150635837842119856688419662466878993521061377259188305203486956186257442124395534808896882199551566683236418411359046776673743248486071531878656430730079703234786380585118900536610144432382068855706992786897969644272283669916530287600989629548132995729973631291971728336404567206724425883177456488173747498945198807407697186271858417107370616244342030202455611373631403017283515994625223741150407328562238953712905367799471331582065536613454037234160862480182714212377777814755963553341881134370540413824911997242643237872415768521750231769655334821341792483659174846830937020248270981388280341890771275886407493891466762293981727658881089153948476440262667759034825837819831415558150278105649519802707956857287686947261808563962303370053248903812698067132791169000393889936587618778989894098297613943306791691800868378904579590250711298125635732711685739787551104685265337590853024094153722427241117945120694342427640356813689293457475004374873881938260193854687157507093106427966071974358440428874927071560486952395558193732482347069989182301703955680298988046369624598720693291591567528481311669704373207891094171621717838269090650831623127274282719396988431032858419892163254480579976669632375729508830032708011131164738579567584649155781173046185814144180680678514229683631320460245094497236064543146013366576419797045323196671219851892123965068586413270782707583379421102390788089752001926383753128187941846870045604011921455275112369768847080457829262522026273350920924308142671798871108195762403216521351804926159938192692842206219910908400653607685584570942056578925550706048528074673636505515134584173745807403939334331304488878749037979449359930952165222684479583698380411278063811730958970397873255735159912599556335916454882715151674127507345243265617995414567986534791204720333677580998511534665528769759414212071616696036597367410770058100617763824998289809165611678844230414084284304186965165477009609610851230837844051125276596279771729798910574384793448003526467540715673620422740010585470011747320844087245354492554259718212926693926412011972409750962242315494722262590939169145263202784404957082646063549097233969243014598265140249291761058828211797658712229853843499516064028992717193214738291876107207959267684880759506653274981538893008990415485597992594556893692705405129240130658271176609650422652932859090298802830110736284376052067295004835194376847376427305072479376635746918532464582161743569022067593942310235150551492417385274273242827596844430029492566639518171595506530864352031508400471322244161659305472432278790855083992609722095321206565351513149098657299776741573851057905839744799980443710644681395517288188718403527461896070672984838164713401486285268534323688639273499534591311601837464117370513972498713483090528320454876688124615926600448835126966804044509288775171873305553259204299014472078067845772657093329442650933811512627603381537843476847887492284161324721568009711598736417919470525727509054046165728474809355138830823486233211493991932415423345881800119181726282575989085461925872811821386309404699590133109563478701277961553604576702556908616706996250411351736724518998119010207249442722310908958280711150018020990309444537229084058017308898330573027026226368170678647971952054583121230811904017361701813554956403623896102719468475872922235985555336954891371685597494058677743508012389221356914209289528964989639947138086086449117243351508233250784830033868032625194486490627640477639682258400477336317976232358702527984594407328484838960282977033174629024760978959170001227057864837463653940554755541962593364466277783302522901946928206870594029835173557014966539074620550912193290843885498296803011673301194399020633837855531552974042427946087207521736430669514779083821829614232270459099127709984703474475783180120684894291749682080576564724144324692725632016475679775032250549739044087084416115853837297996881781979272760412454030391834614934087749595869414776593431710484056443392232851360734196019155944526990886247099273990331837197066247467484130098157342058637472919849868816425195985029495495851708631218644445977828133636246598291857545501095228101817995426719205118535514532358026698279617451705321362537581955167892019467168854476886714327949119297145101469865224509495398395809838818268025416068511078738970441857776468117041327236769647525521318457091557760331150934818654053312729008166801128270020498792545011954507035538379099072607989860264586331165317310563845740878943249693742527425218946409544227342739303643611291524325157970578136938130075435191079075430191797607026326499756727224514795961106796881172307305196996224175475691902201823560433249066600804890935116860022229761468374541844223077827080696408850154572679295197542454552389247203725794712563458067751806321780190353417925885204347186378299832248084528557039420768756611546597437415100720076817121564212889881230978772906120398953806923045143858360271127275127298235648108119071163968828198221625004416957830659657881692699788672440453926031983609433430582086590271408541836037351489812716006619851030677151368532422570868215430063056505746760881111936283411065295615973209837211523534469467656532302567780099359050852293260144271946068190721701035832264520204939207827736492828479472857668805077614347847799092749051156026291815192232042829651900155104578987472533578896759722203392704991836669929212904269696910376767751903622434130321588196513348063437688260099066737451705702859590790706807687210077520703393478707227624138360127356367327524679942561225596761662732542016156297458941953063113005944016541359052911629420177554116284614362932276868474475439590530596168695613051693494309146190551771923904280747530170758459933306323690671670372627462544682082428021397503701542411750758059662842973147752943670519597944995034481345203253252345803376854652881642985825824033024072925801481387633554083059998943858925660820325932211033528508399961766107408231101877656639687019834092855344165747658947748605585272994641342793931757256391587273013852835259895488415313155740544094225126460559697240320702913958949038396247201285331630856545350750264364006111624085942169530839987767159095222806844648139153548557718656661979488806497947952957866908772584136077803390070302282205280118947476086120299144224823817119531866725596273111155389969460051060770597609202101789149173309856155473952605386067048757160919505047698365083784317804859235181558842037438535766130697056806084948958098857788106345958740176720624377087167319272046029151466842524801415120435757419088170060694971493974381977376487078366234858789846588301940980003691187449728882546931207567883864101551927504946215285959020475136752672590839031474851021311076619966045093370620313435067166780988629678409089673843293421058467750201929796309302534387720235984623750218075116416761607246341582173625368024390892080045419987331781527155929803964168598657744981912483041425081443393489970720764837313587718933522531171252032250979637492634952356610649645682435735691753960205890846282116579670464111698694088374079419918041445118041337372441440875587856022106783227468654227340874485610085318044035473860852031385711061532140127709841267052908815747435711024732285306091406159874369948267146744325925237303115426368396321140749131405833623551306853927372633534248928559622012284755141085364741911277252066091170183604360844652477844847921589602056435285642692690052958018589496672917612705874834287265479852907511995563560252069464509062755024343283561883767186757335382177136000015541132067924310949206368671330984414474508113364304212847639359157104778397844667687329026405650840063643896889100856922604618754987887239823586502881637629512390173124858585549047714096782107876143492486913275995947917830779740217041065213498121347706816570338082675205405080520176026944759013763434579215615596491006033769695839364254485743129075869355782307304221496298554321104993442851365378131494664659297499068873578983501164094284920901130009470521439813949439665203806006292499726031765584162434027453274436333637843627628056846564715813928758395913557748803268036076176118738683422110496824232356469492300614465010638212347643480019875755979241679810048422585916510099318158448992845966778723702837266488468504661475531653853833247237793499871476676363045443950936884496143502465855300440619264307450959299915658952753916311363451748832624604372881389170727247305488294693517049154844648874703139187876786174138028258304947200652919872459981169576929186212434398372677832760185514112065378014129504571659153818434414584877791906485388173131529523973080697026961674552591656449126142824603398256301743604940944650263375132088521870801627292253995937963893307039425442315048324409502042966157842088170956827051311567396184553162876706333451791894871726856913865183445307652536603123937121573914225936990808476476042082389483206207155187736611531551754516651043743709128048576284881199938508664119791219931253279067149765809593525890471171895168444866714146544350261745630329812764517970447232848363888985230882555212801771584692136218427128797195753908898075902505477097807948944478064749200794999885893721452488607022407625712677070169347820798385593795219928386432726539499493533759658187874465023756201748364399964712178987960110968920865267595480664176174785136791619081645522441133255233671376045515804040218467452230569993669440437453651462514827478636707291694622872648589051952626378164363045599446134320137336622238357625617568727320757222575654194467560527277969908631928123986961491422568360966434670289374769558282729503345161623465766253701592677939422868256292833661840384699068957502636879972951528123978106423801709335011615083516807945728831674900865295002038436851046743305803302042474405274141005172831282518970172603533828961976519092845804803817701736774968483785762746083364873946309178344598072892803249389930553684662078342519274912576989829388689523046616173131528252864535519714226289624025459766413254713799892032545659509619897017132384190184761730844128984458708248783410583195631865955936518535825908301708459570842809746033758562938427807586782429612713579803906280960590812132686891222617066474429716226602039830198123987363419010393598408618935123334410277921123141114001226143546024011610229287340544260703857494518958087710171365310520028939836286974621577159048291657583018502387095336024969657439901587456777461294839166512381271995948243741463650352882140245769237160906724794368415216888436974556933838577960416989422057292013847639745832356466364524451982131317024393427383887998387562835907927620168912393305773146919529312850217776915037194621898850072662809857565109417623521531674116746490055246310177587725825310829297595321254769133677610135562714357888161128478344018801682465037109227593029640406024197983680783289720921289834170459991380670867139369967311451590755017842830038129278251167814473637631744325972091215226942309101143368410668341092594276728861736893745111476445645620682636345744587849556428741265055780646894075623039649051715072461546153981068631654677078492180989982397464750259132829185514022239247694674673749740765459366029020634399165189263852918736552634490864365611427110349373450284279927624289240485765161331523893211115020933886439592779880122724583379317832676733889243261407292494595306963553428152588677953299763123968132397364105033080049377513535336364123749984981289140559798513739939589311485660539644494226645522671884636579149230166030324938033851030147941658607893370740136034937261328795197581248720436058553158485192661165067516679792635905251625973920478320604464050501557768831397347138911514971728980623511420799167961036012455052670640199346782778445373091828185542493534697700398986995564330916050211690787354458278836336005723251499208477849565590271467433525409082754259164819639814609471776692655049745868821207710551795725279938573716020492592055952594947233576122636729394892646229751442278095201532124507054545043339168940783530214784063971685364314821169681858259842804097049664059477639810326891010038052618263845339288833655042459505051409026528043513965017645250997207168605207703991061038269624857347076893014135395185098794288580365330508795848695586984472471086596319398937120126726322422262123928413289694842903833948368001271170174109097968086047614314722854795132277281795668533318216168596546871516266169530958535617624210495625974919670669686834528885183785722190872305602265951007431997373972775716445759085693035520448125644982987850429879262418291739043534817320523051045903170995993579030154839957577178406435178074846591067474391653906898605066133479090402547618739326246133577700278095408855733998552161137951696577966980065529116150922276578795398214540273029814165915365527555799036071083049679368360768491814608418372767632643196144214782173755599250331638969328188488692348470108661430993074802898981470553893443675101449676602256034541234935575012153684397593087329636693838055731350786743442184691030066379341883366288635426528695938295735287387799166165692559375658055779325230250058745403094490479943585147069041477662990682223714201830181406233826936223658970973490284847964062319392178225071343035460308760186483777406906206952294715601953962025359811824422583679388555155835219934551830403729576348428768133454041501262655968966731122145155725870139804956966517635226127523585245083953777149929330607112327576945231150837987167460555898498869678249047972972861871193288651217168419867971817207061635259870838248982756921262363747297458157509847693065531287572720783256778568752878775823238566396986363126468129632241566839357514567914664211593799550014745799188676690175575461489902428533389069160005267144172118683104287504536532869564667865462120783341351652676697165873013731843709590417146489354628255767285463680549006757507543858395103448354622663679119695129694966489512172171757222759553920646968634773378063304619129911978612258204315162796686127026637461802519355408681631591632821920444171691937023502231633143753432814381256243817182132651793129150190932962314893394585261727622150798176991193561258770903458355044199516400626541083061490938242720835446193062112321378953372745384769155907473477570578990929525008211843239207706360896912251306396641154481488114275916497152882734760510852401129537755154156744773217053240852066014997094137438332159983792545882063335900792055005428042742888204626954090552005586324599071729802600633241200120196420062067116099707093316357703430155961662915972316200942255418987183729629072852122707614772492657139810171964357669861345908733900013402395736758812514625393136028741900954814645412867778540599951093317774695418250005354257936348573442207117475091308111591367423112216123697193906783508276994969607696972299467309742004734215566920496599944458483848718094491765258737899070940200739301622933210232659218105755395127043259891379318510485622726886305260259656047232107605977053745445746160404600222116695029167033913942184068094462095500968708415433539607073360124680069404692072529970803515645260990169350764333132461525004941339225006156676046980831397964002578667742503873606325158755774614796800958636923111930886111702584455686660360742860825268137815212224947788826084368834257279699444924196984091367765367145514174969882902594832964991048203647082361354195385025515328640819831047735620708555671505877603460272771815393150415378166863700177820234729443048057527933598888336320501812411637491488483086492567748671045934888579851259059915974045893791392163532211098943329983058054008741647729644307369002980239338160704391878248179621294079356759219953996678151262207263911189563896289265496822061461669685614114072246363412746990472533264562866090621666599079443340769688871100739657859437738678390882222778756350436238229238060306294524606038191985636050700737561650938620680614892553560060086228566610035747484423259913114798834419142969987709761810672351426047252120899812399029302401162560353644420083412756556990842669853349386520823588007796462659939697344996669642328897458301097321175944677253837659621819524803569455789602596458668020503053845802650039289144558434074485766088412693107449213014170204979840382388389504729557782691555214889555946801138495314042121415256471513530694042954805038883614719216466845381820341266126690507914160752008761614919528461811152245977138558592209801652446081302051885299190387642880512767668749072473014562076124329671093159832333622825626512738428115831954593727297606907689756422305412658491101875515674270378469775112812782445898607206682850202357900953781818533352105036473992847267372044005235924560124397382332433257228785065423240849901248309207222263332447016550079902760469458782807592332792936974123833833633454512459946039586710987105829535096129070707358253778284450036083295614667047951640071204269917831963812255067043624122822763118102481147486619019587765866480434957243827099577683873649677788763541955393953796230840646874441084864106972741751429347063119633416582325821754678224950369370032616591777949944174360717570085540668149204627718333460944628853911011502768596095559856525882909926833290008697206297603374272443618194702441771330536837084662233493561787389303853245927117906584619134739823886399761846188973552552309583220137128528445690047324224228422478446066401869530134711388014180960599347652075195372721836242793213898007940607555627841120719347424887471212523184102915310604725914220389092959210642156043725137587342650130100091902924994715996371438582207879360580278944764785373114006506667817079754945467636693636159991270573337693363666763709276707519065052021087066493686965894109503073860115314331963430678113433092910525085241454891340548404069189069565089291343421997608430611413898713729844013799164824196752158194896606166924851473789613378650380357877375623664564365545798095487401397006443753786354143860727315277716091624687812152742040108711083734592809505781130927374379496853752863579229230831840604989392093339265894535483425975711769935743160622764154934258610184670139354022723493948992936244625349964541288627529394139442916319244071345010148167333579964272762856380115906939145337315553772534610781095540037766233516740777125385340904187012734450026187031795420121567696579261066375712615215198099484281242949235092303890463829760221328134719246127245038240423340711608552344510987606808101942847713373151650030133934244322888145245596118607770351858006423881588047197700878441020068649346687899306213138510087937918187793347394360157338364352831678036945922443350112285760570606361513497647833383449686076171639839458957283815437242934618900597524159789540967217986320178866414578585651177079665396073951658747726103406921198938144918057660156915872616415821710471375946055836177358357253424897654352869210664267350418976173291134825979003835598900205175343335354368465475510176429778352872938292079012962010477550015941207833361632800825646341475425095392826630447024732528511082867204586156842065128585256484125327217304989107691861062806019891994674825192676773269916082737668956395934791616107287905464772823944563813463788131895489044536299583696347039014650890282984627730126224815802725072816405811421526461038712321411072729831535407709933470260434980962769658149250227825810077107830381237700733572959491471134280678748814981015626872631133129906237092908064135319795858893674861502388259324444903204443882648700841289154452913786637990183581032540498980274340848611296030395967383408739413542323570665765635900779856355370108071326515463324656146750300792047435627034646745378550203782075280008700949022879148703553549757808376169945700670876864416021981134971426524058483280702676646981294048422658058679989487221653319020553675080796907988239929689117602236118049867609048783722118847596340138932930143332547811333757796112334018403346283560946944078927091214644511620905529992366438878405956007334108915158091333436208797364901870246570871236139778109646700513505256917061322204103441773875159186687706050669026632941625456397454810683371277343800013856323186180832629269167261912101816107658780849776773955220094261216067421035903087960472587877786434440394650783801265815956931674278852696916383718297357295422328354028842887409813001700317700246782056091497256044958133684851284308670973484026669969493418027283606988352931130015195779017260644319693909508391743516895371950053555071374975456655769988492110342072165740094564556623911045504092057507756215497614186786706592479664164289510971555600641310890284927020980159835924664022222012979634558019690509256720040127287840980626223408645601606693741423124973213257771751560801002580808348758952539092189339739757221687802937276541325344635008606388059229477923627112841638139844916911028875249454160049588826900455176477016334506114906723223713685568155119480632284986495527029297342250895045566951395571037646421057860011314319398466810670306592752219592283297570840062336994200282544084168662650132493695757601015991464123472433530783264738400671180573975268977277179700752689109774846231293867229689683717684020213034813563884957142853109901497562583559910650435811431053381676603110949619290508996925429806796752673258999864812948057087174964602894630803198681575902526924702400458365389002693378406085742388839488156120101559163082713940110789085304033760188752863281802773270753264608316442886098433008321405831566520984520698815067379054903218551261151787754548932710962186093036574603460948942586644498616558671073656694411349539044884837294235923391255542598921086396878924045223399854248953835615270267112813896499007063256078888411314184060492658943215833977932183168505729033237725024292803389541603253232775672617389256095100546544569776510408943786027020110223697947977499295298394913954565304253453193908390210732403159214551151742991937183119922776502665589037701592864690174133009798687697040965068429451698700382666114788581982685760435292454980382667100886380627828040206373390837560821551771159364586020549343450251791496971554867608786092088900860380524671788230444078513819759309693638160199092723570220836772947672601210979905484433500688065712890392064257933023456897209686994496954125284509902390765154156407456434274872655709123659084459899780975145268280879058911815326007082699724751298879119370790286928286119841404827212496200085464550528553342882113524873084772430158624891280690918346720964648571409033701700330165773766869064429602652823292110387661806112230078648316409300340451858996976417384994704100698880214805423098098249720562941943408610945077627626269509503190572069991228508722727513911870171812148921224271912606694126572563654489091359034822218573047582075633945426329817062555237906084045006891716048035840327274947041718725445825234291242121293691453156606202414455826506929644373671308942420747320939980574349651603323770414111481443078299316255130554368519476812054617566364483223380351251590692919024903560700755760176321220121388874451324281300124080093937647608275604636520198463096988215063252087426695350469141121378195122835536221876693747074411202832445981956392173053781516023140158708249160866282829800951021611314464376586557455065871959248147344284991466940975534366762195641282128707226839544790925326815591671409202490684783268168613297232782747968212192657946227651161614305603460995063022246002233816986006533771509961107342958834635331162465595195413233223379079945917951205627557208473006257954825533503234884625244117011057058462761959411725580986308755332737118302147656235559991916490307479128701630052817287320635236670263484773494462301679820403038238565955985233773805077380197801849177115026090392670744184320599812706253796350257331159314125100786094921169337642200521217317707556216190662474346350888584588347581611051541992684836555960654783111043668307555999365256339406036626747884044363617153178731072773623148210453002120330260368797873045957247088274369031772814245637016520242590836069492735901125594354151714695208636151835650690528958624239806582098656832419364838856207591521768713072464619549601987982616610587933738610718244828880173484016243705894515573328945835180000302749175608687956832085923412366778373162844723795251299149672618281218795525322179296391343046718989376810548485031764166328846682116948807129220683994128184246150616638446748491153769616411787465500678316669150817672436430331721850588635892329110264665384815045026374445940390885181327811751905108669718317027219257666153506124054074558258257003758054291445059506781901378691241702155797093613412381863489946254644075869884944203641469411702329211249522426333076111300298526335660844580198353457131239724298722847858430324623519045184680274607862011190610791297395609571345368417244155663352896596228466665594257714946943420654683090240674173737549460531128378683607295219135447707223635852841956639172446474849504086529874442127037118882892108420802203533194937282586043776618261893792188907015345514152174065828382780454105285483991240523687287610329020132719629831328728716611297352914890835566895804969826415894414155608116533193413038214093856599700139664673976204091232160816162961910245563387552607956271654821046423384402188511837791830630661763106385152694267487845955544307788857719833884436590950493836038880750766296009729192759111826877722344589170152111558788515546861182664178460911561772486134095042179722768036961472896126055661076892516774976590288673112661020980589387577174577743145004099654954112910073304279195316146684517225889663297194719408328265994211721933638786593990415961941695524640835604995129674013819118179497914939519109741916019388584069601371729923494360701566255185397311370486398618978195416114218152012474625924645967106715750028134103086514860884789955821595315386102976858395968038186430832067758643118457120246174046539530843797975061847185644582903820826966107866366587252567426301772171987404738823157023697458369723341611268932575212797207662168909501767575607383019155946375043735747540325298080183730183700566224756109033125561373032767193484928949776256985549580304071814542311787909839899417970053870429487462032429740310886126103437057523575310479861250250774456996215813079811872643563279389197695434068758143648778120369609402351378817234075775172415061599238923933610644883421338418385680297526514875130109050181282424462611458833113850912446168407269849369964635264421083851654688844663103781472777771434732939048288605267712031268560700262898580610213836576859841086577177510121183389092214385394311777124616368887882376049338337253989088680949816040915460926181353048263622354289357059279047616971527700394311891432555672656429502284902138399755603762719501355433703170917749251627564199810041271137753850503501923298001045443765454770749150349078608510019820560888449333770134757396185684232723079526688561820706369815944957794438956556927524842432122552812534572508855267789255137579546511329469095634604897185935799997080689587157850868676024084054465529273563458414801238491841397483118695328294370998437305818685763132834214647061424759345460225519776596018643328428760640221939016333697630319337942986249016307605870891662708488996097507721758113754525988021264499179121558079610120422453053608739681787933844099251616293918155893207479700906380530470256275363492332104643011942987892293404252903376891117814020669518299695646354947682494425765799581250565527697602871014230979995894850893864620782295544807415579289253602203542209316125069575251876913418884360108806411398273349335192544617291741427124462627254809716997450149016870338967688948878172735183628069129897880928497582971965757979327343879947727782167651933752761871369680686968454600277645983480206764583723753004330870600722262694455618674526485378251811893507359156300435419151348781924684667272269000173139438120155657090808033975035618167148362351365962376236498679145425138936085932317578370078814611262354175048458656520898813388345850026643184098813063572507208651543772523207051181646394975470035223675566865171392119727469337289170273941375548831203826247707489221208998160414049227087580188079811348964365546385436190696735024057293987416679014714580166174386025938253261263746854996749613738945232361914639683631710795887078686789178321988141741754905555695514174399769446429671124043511854315190969051873877695758285542579174833810292406446492175817772766826405152104572453369912701835125728503059505724600497289819829100436737642012658486773036850624601559230818705821337126650797029280311120580511169576312353357873392434376997293157472319238992901866920520629167144144391897921943001799379438255527267955519889933138371558329844970185357793612551697031082137954237264917283670558176591982837136451608294904267242449532050107867962062847521252877380687121720868921901201032515204496713909175384418947442737503717343653611974793413038759543930054011404528849825943321366676631843999036577892784234275864591908997612524070589521215245571868011897489450644855461048721604293476066893915808832051462193971360625254244207805661217324266932933785693647932051801912548886468795632220678189834193974079392037956783229325757046095316632295552645759664227029039990451861928444346514734992056660058712203757978414685298489452010222369170020110253171647564537354252909301204170481205692131741876817236017442434655900656856196089337322978770410952070442532919737986438937615309412737057408124353968900393954159520684386934058104771383301639392625131339308707415100321590786282435237401671393637731294765895779558213197506741349311988824191001183416236194297803587671068857189924053073490343944004224419911394596007144044555802874841590016372596670393592578563654392350532045093690243896702702399995075356651235532031376299790141649950995262293284486254445555123978975136520987365096994892090516977608823929082402921090772042972466300374169401865956570089316314332223352389724770400790655583472487088502964446933554532165078982435413621780405401506199070803124748109208156492586382359423093300002255602105962083378873166326479251432218551035610064163785657813030497753075997882288740116130060506987750125728884859569029261179325540190848728148549640617096297990298777229488914291874131616426116970454460576244919777732762880913679942906866380301437909964376007942983146954980194345826529015665565799060884103862691264365395978356791357313368163715575848447223883018479814276995234991423546280946146046724403792430669914801707778489850293161650641513905385170361496147155974876149640139654530407588668108087019511702005578763583506568147282306701794027403729828341193050085637560833856508318292262056838063431236228229024823658147595561804180047194121709934806199804843637659563325187135533484303644301466252503380860161711840187447584014725037453225967309964987524958559881887543670427171195382910722958007957601689403048937792706842893663024943543279098721784216762461860791782419858976096598960169835246991664488810079360131756508671828767058530638585303787125723682066638670976815578219684136185930036938152637120901011921828688595851628704016854060074191673036783429259863846172216975747110355488963296914615279161513263877772359281206915429337959443274736315384753071262251300682593455559911501486354323269366808791970439120137879378267019319929149514635103478631244372900125401445396173955664766063089812201402394069873857358782028530863052916975844962159566562827087273473216630425346510086056863344716274768218495062363634447469414915677917668105648396416883674507199966273945140208349746153086801884582532750768531347447291440009112434463591748952239157537559837495297002381936869856086939463413092794836028518774041298514141294613747495556989132986335047784281749344900822959447549351253637829724905906519050987705815626320034475871927053430366384520148227319650493652080698707850083191705478433686246501884518883279311470315579078941902384607521539358221499242911046142501072596109065756738031674219693568986108640679073800219022955765826046530070469611243528227512795608492119175359217505286731968305439118604034214243152295252571323201007850469056842057680061500281976879697650569078593474744297342051585101357229849259525940175337747678822020303857235473490590911283886303641899670255062936272079835917348897736015930914073382518636197510799288013898722539730705847316146458229169845255229686696925219153717894525391214401770324641966627782151762415906318655826381897348773347189896953282257977045321617282330998662475353402213467278934180317617995702952966096109380240902883791547435542095256052694563962104179326685315321382153860962099875898783174270825448850070666117194351078027692508510773808132151011567171296833693565337356887546906651566684277584567380548206034347228223608231963180526986464691475617079122239098052311997703730492154865958738435419592008780804490935227388735834763159202831547061959632549277026769459902661565641704495806274739369012512944074878952077283745506218426389769757690313714178727106620380970550074222644509070902985322066012520992660054373967199458454456351794228623992906487945384358950450008530207988432873449855402474418537850147084324042203771067118644634799012674936091979467133617021201361674082877852888748164399380451429483819586798684271646913199233739551863792122439808266268244922958471623484919808477956453682781758862635826042801006427500443647037462456392858990584700091104079340940169216800860995097242484358077411093580947977719824474282321307989170884442021881341404111542495005688241630589947605936781657908371951374949455739845499720573711793559827920976077704533433886402729412525300869899701062033539853284515198047177835283931839421722282456090022461905856092837895739492874039654630333295755311826976833076450824480628765217167062061532142031960374319568137646955239161846978455691484067326117913833322314240171802807181220603274932929949535060166190705938807428192519816643345121667150324896178315833409496468253221870382001840553560359860104626611571686423413514795768280278877986886697924806776793883114945262558387815870964258594394978666536195015266058681980457481295328843871500610378287810096977949517786632639259858398221109261146619088714349687213637168538665230641028818229142031662418140660756082509793215344325682804245020037319940458214188375120264831101757599726686953224971344033218510007253917806100961548312229850329965054752875492314396474541988410331765830944773628811521514764131012450961761716205962345087038018328620457719054656950091105745287446474166837834146678282387164698201566632987812715228355141100683543023974887723919071303060786395680550402029493931193802843520956163484289892203328876938673949938078017937913625061589569518918673778699020046797671958217049966914703947219233379641955735510821997696627776284103868349721599434502067101106771979305729951136116590972393705858150869552611633794033673235157581409384417112898308247993407119267808376895302131993417358978504253766265313339880960830482773207159337824525318627564825278323405120473617656183022967974479879148433480390542920699122378874528270816735695686903863370925982429726578074891784464875317635461344840546483230747231726053411680537454479050716910285816633684166653327801981323811227643443705714620548990474428256081832685191965154319997578982411647506354221219463763847268464992133632196457830462573187253988272993483776870344528564606550288436201798090747267837979011763218041859599559422936850975616632170218649134835126570147966306367232242507020599055069755628173734693958146297621409104012512186909493661092513809139506664598424209651576946725694664473350289356419858283717359487356407339267287225408981499122507859523510625755251980168927576209750830619528616272083638888326930767531221136896852566317207205711384986857112017287974543577316469628918115248712738668421957425663821672153845448820139280469715608039123131751953110330110473974247165108276285302972110202405176647736757516365348052511268625648610471643625266751017611643493547484248152916756319329189751603961368978701600298731274829656587508993554264733208432393225989834180993446407707623400051567912410715362182338679532137719830716991941855833088057946155777219826182882429233679533797237982334083612676526091928387632826822687416922363888297921563099927129346317949095840010098554422515994346465516596819404478802079015796117154023491270023888739702760669486488800721565269665493120224700658487295337476424013183388413770603239178138586925429665538399462255386374201830226490990289860287558533565664765705047166128549913561435638453254294543082338913233376216618066072521957650822321302054883913776056136020004825355818840894703844989849606128902339381806664554729921797864735164106170181484095517654397490164661454627678629354414582364459342228969938587477959978962460933559937301739251746885715462660345495523525969192385309797201801343055013935743208885692404076127836046052321867205655820448147403446203902711392703172658378191334591572314928926316162184541969017700003576068273014880708989707862116283978420939923489395067157800562704333816511091804968104754578556681799632445771434909371407431347780963358598739050840036034728800033403770562799538147461306792827848175840735592156826490263723896058451637002047482548331063187695512788708076376809625365168546853249564048814723972187249267746878874469339645476832058994383695009705311115541837601180354388853556634997463818235122964422744967013926134050761194905957986163564439639808682736367486177845923937677731267005753139782417291126350927113036996753477434030677588738914519744754625328897349725174309311579749026061573428672655394451038994773708024018478426820250201823245753489584350205100490760277336949881632186332139089125788142939121441310035254397697407421126612487319411795479432761312338568157879900829451679215875127749094175941915131311212735157837945423679628069177000383848140309588384630980581440927143162659191598844974141143338076865431229286864883946526914583699911411972777993349046332080282733981405451728191809129259585401040990401926323958274941681550156871769141923867303285285862943805068815709567691416421024374436813495069279790533713012208430018908306533332378174852944892220334540038242691326364516457713645794334682927174348567501278388531719412694504130405743869391851746177247977069624082316652533584727658336020333202634359664613772969639385282418962730701869144476149427270511875286189734756956487114178124381434918992551780330279948327256256605780712088756080603162264085198708168985041252971147536397629076615100529923924592833818978257897706242388183788433314004480242353993713884831806737236806305509730860926661453928553244983353326393444045382247458830801142372915567814877052747464975962847688751738962099315754384183723275085967399165461405322401000184779488511940102762723492207512137486048004032443455692359864224552334220150597575131530181041185590255423100108871410861200379781200458026523056114325198171527155142521365934982119298459849327999246320325243789309507066876949996207974253486641278971158369980523138132598467108977529042816486142890206568711815065566682275534015603261733484358778438906214821638112836196674724157608484255183627251094419896370361966076448852691469080878713980536200952434499221067839513108277554751843516722744925439549220750503641026905177327604275060086327838218792497671337352668240702411964696265987525270875412666857358980835307368168443894071604103985458081440680978161972839660660557372986611459812039925237105875304610407297673344175758205203123755173317439811439477095494626630190400291094720880315502542553832609819426879627076515191139086997963760353268739121027959835640598436779149942359583444862428919943602580047358184980019149016131882833803113130102941478302279362163013047843311907587251204753521388108508563232570591033227638778048166472567048553021215425687014321992312511621289749683169362541524488261514388518512399594815499326283422400534133432910491585812395470051725878385529541758650941211121677386519573691546427061881574944675723355882167431252178154240498843837442807255740896529110577433049061680467963306630863112499366272007054447903705813150707613882649502156498640449371733248190860863173146933578628329996841344574053243812644934627817343458832287667366239947603681336938035148046912319833246157002203951161424415251398782258034844945166443300764308654132374964721850829803905383492505049730941655013529459893642334026704724047809765926235346212314448063835768166635907787696654879043321924753518249381855361407178346623132161235038433927505157632135752440602019105448846481935648107042057374458409569965125551097338965623429576859539707571340869289916908150778763685394565741507690753710233553040295674869123562408612430004124639438686667098626906558477074135858664056419122777273059131659629006486688269285400928737808562569228249725304938572483336469012513375001920732163851432751692728183898665381594397571616140175882825341450280181759609962348003730011449463148632417674536907967629669649818772213695649789853666076326667811057111497359853595478306886026203445767064660002626109542148966662594809860788682366152018132027592760755042735394614387846971963313272668373090700755363132682239068738108510457078589742494470604933047276598342076505269091692727854246138953163860608975152535040038099992471824168531176711716234802951135002630817681655271416295578049068210310804815578885372465322861952415755458072959843838897925396802920602898270040404225789651961703849228892950220515613038432060093715035670385534744159583780637857572869797160516503684158895822019996854837019234962878420607557490286192378393905620804537696171364671541115425542058991472957228642521335453204797932835072092435380501432390851954481926988316720101111538017123626641893053853204710281966516182041734517652203089433540954484873597389121909452522446565913848303416504082477473271296488458237492557292594479867826404483551720930254978269755730267204227276799279046032094855981762411114479196976396328989985521103248234520808760098286682129877855833221107756505297267956798315422921780539201611199314044772393079462774973739898092102476194012161052322339663816090790004851005767800326597313176038064357389806612906876307250759510027988477569525975798558429123799109377274424381310413599001649306878278145001853708490979505558658961379015902726677181148000878605082406481317906994243432902907039287389599456581311100129319783952457312909867343946534754961342889068376570103592707410605867755792987619855431552315871326716123946621193643287072895972785587250966025097516587829920000365658868682052676933336423584355632132203730017182199035098439633407170791794236821967423380566585416304405315917809227546584490681212133883571742413964287004734272836197405466841511320713110651103517928447616348058771737135879275274237654378193826393300926181843809266183836822592073116792199308226150515517164778527708621204752736099014782468953333123933914162727552710624945863137187061350143940826758976778821908390079284562853031773945696434443785563828094475619364348081967067967322167976280780686454333709439020450207201476513905514414125314001562394982825478578105618858689603268381575780915142749862529516515231981350030104397808096194644772784308131402917173699775192756550875782708511244587778877207208488320021600865987016600508323922283535229040407180567916001575011555213034002147544042736418349052252801566595124619396509705553513597939835705134831122093945683917688632565390504541183682558166438239478263293197579777670564030913932260853817523976425181472423310209173228319324698353197557395219642097266917555466035787275623513652606722587251158650079105205220012408050362327588667854945735055496094460469993588182511235672750169775911922550066199906502674924412715129038642298670232646505427192673177876566864331962680046521078912862286322137663146751732750697330090631520161129681096568482062879740970332380368649722894355826284063589543507622659891459857741622399314951788550542239097995646618597339066910156415260580239294688908062067718771083829039025369030659404398190752846960052510208646480538698556027742837893419366683042813319473083547336557996595858986429531885712963154143817759635630053042669416391041337467974200379055935251156687369499559242538691855994645365897753443493899764444807639845663672673823688633565469845779497585310441431852181455533512527997068930700158982355257084101900430828981788669142677256757106982554763945382121957696048594232997044499863713772272821533406552976708809506194927708829461233697430561229336485505768576800419259745649138585004298173637361685430142979692505999784771815345541742956178806338547338421379016201083122915710358702262542349103388941365424551221840493022323463572512907812911496384642347099221537623054221100896204743568926460883049510652291414089559400368314718143710858436539608699962485171550513346538251697831640548775972510228450997596258063029301238052314546752130374445825988389485653839396655648319918192975876552025279417448557789356327722169012921270472770445600092815716194859597548944283364339350476564267994850542985331413597037048307686730155111298582845243673428795752051344952614883735438180067022623932181546484966449421390036799555534605290977287635491175339999055457744815469887900177675676599198746146011910249291780402275970833218071707539994675403251429018537801543855994637790018059114609171236050717846892137110162424302351121285320128715967364688513956212017556899359942349188277975038016814994700247807996936739477595795068594090130699422179313192667505107954878558951095423488038622051094117681165664608568160197944159204138650299704531650373283025007899618001828186453829618130649858380433220892586361151672834316660607416933125449094490070439771976224766952997779233993128240439388754277569394539869349305837237677709441315688973251084363723539791304629348746989785840020968271157074119922629776583304785528136695882852294933021190265900370542760131810647252012569733916748275782842585065670102875963247792580946640729002931052791012857323752189303713536946908767687972708289275033602237665236418497379795576759069945244510113889177961103826574124330597897273370923408213998772313561082432988525884414793454190010227292480521153204079040121576669794506196048652704135228214036349239628334878342203976451538933041359537908132013031773134816904057631852884212046532288230930573052875166218462065166251110829415323922307275724657044055495722694172311648618151402145554263578797849981174709409308535029624253749106442538007586333165697009718909730646164283464302185594371101055336835027935139503639742605806755090883488396606807609428342072620842383645619821601184193346465204057788121779891769326273633547235390285741421807130084211583279136054250005716732706590912749106003639443656449778989110191875221515063620862119956029700200578081065506308071441554961372771269137573218201880000741975858152409568710194122342328360333628424529425400821561190314349381932922053488696059295435708294483395224382468051147675082518007984983954275815692069729339309175761442749080334962006636945652681241184307401029059110816850700856554653259949879149420777513710393429424426019900728524846993119265563852106346630520481298230125577440957868126223047341057139825548093890087806912616891669533789656494988232962072553335871703495933264354265076981325510879609752041724588517208610465019893548545316780627402073135136455706547265006321910521563895015842935088867326818526586290125192334765347908724666276395584501807729037688158755802239639422096155253587863548173424800597779285488463282497851175859564743385789362330920165833858402983271404126199291657974247132646568822171637954066657435416204318954124821907740192738590002300812047587217975376346965076891418767572793333498936770008760962317296345093926133735051516664425073369005042666082676515499140352680241719157165219088829969286183587711172123765514928296722613649594992059726974561696085267483335284787349374712073958797751492634422165901535543189856978709019450457748388254883549685166468722376678074554870771875450379748631285169039266760668008877926345351410185593593821296138235934099765422051425246227855474109617699940237947831205512310110179917977108385989587966793577843867617481453502485777185273727191036050702743683861315569852453661765329604215043815600195821509801726334367428696931093481224580768178760001193340089760538179385739248901403946516295338679284418899127257887802794442809741097974123734365142818425346259358473463041845059953761126577464246070006365276675808968139961880173721060132648192638769495995587954202884939551414128235907548602488696883069339761941558952701903550683151227394698759966404302240224423839909962867588577311472426844407215711149480952845534349530567566319698986895743099723803436254331168720513917828815290628536475052751107066711727930439403280166346061259543130091464971588635952408610774876719110271529184972254341419370912058452645092442484728940860555290950495042145903013022405130860958318390251352136057380090190287674794760126062272466642469141466435581872454663128840493530108366347920547983178388609326853600553983214981626996466168128147736128803591786665638219595062025031227097178569423223188928724800091819465243256276288762359490981318961196510435504247851639946489610537300011939282003476452567027432485016855785095009866052252810529128103365104056568101563546692931119171227554868978598571534283219846580079758603354545102150219252108813679954037193359552164974161147877734146657925741684482797323571672903343400099093286321444038393736018014425921722280804604739614839797751145754902828410961609422692829194735998798137403500069872430220610941434052316597191506774695874184938195018604848837612315846783457774371270547355103904708088609667503366193483229080687106641726662269982423054849123307687729143091810183454745789377171444521541107000581032569944152175547088692522076720530699709953778166281742428938381109584350161907266201139842140508822020366074262158837053278308731914738613386700330011344660414056260667792563089350040536132538185734353258764301113215121450648887986374739117749374770070432214513141854645884800341657531625908214534373739960136082401915990369562560435667711612578807620227253233911837877602198005648928731672709396031117501294268116264853141104113810099935468272241970892496637385857942504793919864353419546074258961874990973717757017997798035491242088713839162459930860415536119078641389597951302114423907078489507342775333469851474338463210013478954397115774812091630451799875668426551214386400721986004203389155398310871892130901517663005349412877636040815946106765099821354691331446829235568792859634819589531293746977421983527559686388453042937484789494002740702597529648944117964340198497989230175469683938022928709106488635614131684511510437410248202395171715196283190120563776805975016020564050519193801968310468520881030095422830685418219936053211087789974273477171326873187925269639222540503880858671323633115823909696985756634668389937615992109982370292134401102353705157307515764899434183894635978934509081427914593680950749112874646516460027398205215846067941838825602174320386300523082367655535298772607169531866458405800325167034939495222265694823532579556127553512896301516790304183964318193465065114296703612793795563874359368059238402531005799608206457262391387804758716161381704741804902220193462119451464457047124215666684611360112414384768006323722803009542273783126385143791322133463759822259286739614458493581498358422528998297733371201809261337208763718288078054464517922583164104323757347904620766287817832879142271569404496284380722809190142991418973253155665482495236018320585640250013602568260037467384766302025328923459978772643752288369470307940302611704107881305935893294998972540572647078229216701914027989785487959354288873251223203372988225053341914195275598829720479464592713526370206951317823181436641877084053292141848500352682427532807319805692829218573250581346817727658511796996076792629050646846611105264424200474558511531200468357635886910893896540204754761727930652892216179730370557613914260732608108710012663795265545680201946994039207309852926953457631701664842018976305200302828502177789713833103535479061395919630778800156872473140073356970479101233489287144450562034031035653315770465744987341386237706696133449997215726758227260209630064785629030954957861598127490931228002690139965585864256526846116089879838797570278856139741467311594966033876351468992073754994064652230895853783862197251659236888345090032547137391195192821433205141219853612210474081143291141358910780250895231743349603023475322841631611361955431213104882569565859853787668738379944563282118039738905625705393531045010880420072839938128752924852559325183653178346125712811021129769008586582571116897688817200885317168098897505760810192786340073856276565286142287948182545920256208652470196818146965818354495122973674117415180003234284418251468606491495507831932651700246380216814900433272266205162809073714577597983720011869387908329154657327188580379893583820722298751502013957745807647820264669867537499422742864837306734968866255478629860694327331255843716520877706147843569598900269249338706980775718020221928611696276442582842413696248297935223167648096590486513947456077894955719355969720061006693587245341281237575119159889715453584249452204352531258855668900099541205275739724333754096222546190383958801421629222080133890338225405558319843934972123246153836052659263947897884551907410447416006523698038718154372150962366104362316836096096852293139738915979828465939140659626494668836065407128635647717506601103120162482392783912188584998946414993515976451807490111557639333596746980805889173983656023167754271238532192243265382415900466500861158364733119881785851364180850581274415139367941129621286307568881812309468058295257793675358285397365714886269174495356983703057626296292340137196812818344887065581270296943420423076712044692620721510402815343497379278865015927557899226748884215413645001125204026782610512019681551712654948074153733130120713706362289531317385822852206100005192448511663783621184974528449088200258761946527098685917354346728533238586505107949627260640309563945746438403772794119942509267309880918145894196750804404620056122661579608455653343615264091928094488444744718697329388410816077061280984725127956254253311737679490786075239711421433284840503076616181389376698056652707664790487635223385517824532627587606217114874627920255422212798634708806627799183784442631412272638474318165409336311134376467240572405827338903397323344598730727732143450196885239579344868633559668294706247157514955837231435904281487558644369208200928938743151245889321398959826074577356744539191330709329375608491107847320838397564577375279442666622100374544119752825433727725008676531226206939820938600948138581251472043655325618191540621146897484573723542109166767281946753014934309857163689464975560858392913292145302444218838881100899417187746587333364907427927312267961887169246041421584594945625023990186891626477935642048909955565198399882792670159091779235089459616676306314640940396407311942704503178049907390747464218749023234371472755864679351659888768380257898734374362725226405755782009600262733878302028223119358610201049374757082677458930910286887233177214613138799123280889259813136590493361626312608214600278270598154167008308828937748125893216561392022071482127585378347117020056569354827086027795585398914555584132084070385802871997841785806599899231440764619518111461554269705941408170085805896632613318548221656942885306230741053507145419976303577889952136586711549968491959906440619657659823215469717573489927430700873499659562330871024912789157143824201383823624455146435235150469120479571621165293480313835004526754081500332781656531099735016916815542618765783877308412633345706449376837330444329183174733995661770391817700701481105769386134336945036025019262836626893856225115033296646234536229315359081393613003392653473479411638335446819365929188916073311971505243383102915650430962617953173192291113210979288114690961163811506741674576288070224879121399851553975739033721028225921850708447374065498584983217166490169306977012729714836189617266761241102611449075754318494598163885891249332526915599547824203147267192027677129053989668865798414249115304096069673309738496621991270309326648630769095676305996616894051214394525251612670665752498052778343899324221879450411386707210513163500296234756476672258647690103100672064913498135364275392388782243610503972130005874563109481210849645071761888594192267173405257207958234066468963885998847693918482184940666972268938627908761577357672325290954065642360002949805679846751584618030062666442659788011112986317275565113417384097466556345361731029764988291077631404954707399017937462039816825327625621978122882840304221672990130642627732381005854508504085988182061508981447686149762712401528215100505635064519358793960192660199096658101925685255648452967234270507366905783051511590509569964566275327917637162470725723807258628771858302779257965508746975352280662552963483558316347721808346035281605817028899078712430334409514727246639586959707851999920834830197470690640418820986823587548798923922144804865081563953423344582028447950713212117668838033532646615171301226444283263730313576372073154446217331799463381035003470811192111658705845590155198269954813837559331739247164701081615843778946168971749919876957484322628714325050046210823036847817221232336024208842706508107384513492999011110176786301272999740911044667278768876734805802955963663885747877501441743267732523911299033149021092978752413119870414083049351424405927222699896200228249679609426593484884355745932220223392806873045741935026749255094493632786531753754703926682358186232914855955991414464409395937593415483509686974648520026600436866141565243004073335181849391341563223800834455088644527605139491010090528663915454389541464539818939612966672809325316270815732990939823885202083541860129180634997513368582055714315764444071189094199731193525324970868785084408442492477422451416940066242420605530857459606714991309520349562085769353316400451432427014017025772182971661582114399114898981881660485470105154695331438953405321513723042863386850147143035876427049196973103896176043356516739637359793763992558334955956217346435006824742832369100693630276372400100044609393722880470914023710668592960337258270400848533493496218678826847045675185191133414546775553638656551074283664556989994571388168334101269627083590890615891699326744206762935395414048363575653970793826324213921222027801494335204085567502199429053455211408979134218453267401228929002199267756805885698694744250885059088923178615367452029507290489640777109528609694666571094891095748863560309979750616274291140278562471408304771770834050920169137285848140319295897348804309834807662594542953075240206134457150973982531723277418859113193438286492756939111985970775174567079006043553743334815887415981370460092683405306383281746830327060503428597949328884833386670203834892300344815489695805314701142002506405927017913888112887429594747697770383816720538140264202464802236810629376615537747717156965575582742159171012440753223722568317352445668563454576712254606796609921139753743899624808107726321418950710585133709229323125939174327464189985531721112181017429951103032752145531074446368935157525320305051562675771754865751003829228872475056433125714840628022874388653461205602014252562029907413820617997301508041636929489373479505056861605823770564008619350184282157950677261400579291947993957146408441414125385330671813582677582707910166023255847301014759775300522760804500100635287717514231361775911988744944263736389507288675688141158369767242814990436017120644947019634655785487786462136465767849663910601823551013961960899571804828967969939726808859885643018593437116112756057449797203538266905852418933502198632693258819670082329386272350593785595879824866806666922254820831679466101472877249846054125245003568407730719991878523230590489404424454424848124086284222001424899327325264872324271815533944218155600576153635740509061069690968624143211787608026473090651180913111790302880356620578299930328800928771904226369369843704293158468402696266982746446607963787723212669943642452245177366690985512493162740375722064999543892865117647403533815736615538117494450530119603191389643604233690640363801864804187578540972308976609577705368787044396312504354133279449208541580237448244487663200496279474120334262539668667840502213921146129812005858114402963113395134539287345979111285267973168384214175145928699471998902244016917464570493585725295798678490081443334104021496460259005650723431780244126953253503372318388301950509744185836452561097059231932041445768114328565299956592364731680851512899875122431763392821937425160701868663008901784801660954934501705834276553632495463848802478150572118936469582725922625327626031381392366819739359550085180299300850401386637130591358298175189578194493543533165578603377854311022210652712834358683944219657410308911518279438642091796804077757932834395617184752384246975200162285558767152016778817294477729241660988416062364538884295261862429726169738878634191911092917345369496641994788623264249611922392261326163076270935668501024662908462792751289994115346854900700927985262778385945428599850793672396050679184432259699616583426167674227160202311930671046417592564662135253406682552570938169056847165188269444916765200328855152139934639482933752192041098248642146893450663047393941859951372778115293005685658519429130376687587620290444147889733315859515551131522092718971953709041775797180314173596294155017790015306026225509094227218447052988312682928157360885011602312879701289373863252268805703576249671118027275106852759042186928955059837255215794252407447302247007223621983564286795329597654832878093059653325113403967672893572813978639580735319620480637559453790755455342017825498570043464182924966835366723119066410809657595634382260005455032170087039636563160115595494789907003469103028718018448419876897123256920234143327676143559459349456520454083659091313698829615587526447588891490441271876432427700985461089502635748403081231663700992247167544440095597715432329968912813225727848983964099449911241651780427616724331327131328826976128555086592288400587935494666566384220464202136045169658264389378970473959118061772104198456294162220814898225881336945599227173138004535481733968559454257442469819083461185543689830631240484660862166755748051079383841136252335909543913578448964286253046154977636104933386288132982530450330531172947827951259312822757100457640213153327836249744966693012148577822612273318866219854693458055835084747540259728925098984594277594270197659293168810530362071649600719528147161968937903701696360853425206643541711373852703780197117880096172946380989488037846017361237298179256337897692870694322481472722603396822404644042789983176779601828973522758053690753639497517699680641825053789874824621046956318735289734816282525382343794516269956840398397694974999277409896832696434116961290406879264168776199850798041009062707977286872891757537293475486221725196117863357095146590636525273927201579206837706774195077814022003403472879693407080221150654626358682807149058039975079004421313006156254726358775145130363183587242016621447999071714508784420539684649752025540694026834308187362830551603886200642701836397165634828683511348361006090362014830961091850457398628438335525247050736980346341850382506443785894078024686451323432099369738408773673088780308556540641456469252222675985019583710809370957632198381792892799060199320907262972188582032387749005773835052337039760730980055926113618091619204996730402008478077985897287306565335347706225297752348075180459351512552478063938218343258259017015351736285463131926160804069473460565685861876570534330114716740388859994075131520058127564853804614820934568509334729921779679736465072989182115963145410747682763612624635877273550876103606344099429343000960685611010146605126791841998348057759027877888277738959104294723599089983165047589770760629022462560257723391336588125512214068189765586459114907378734725154060878568706098028692975857641670746055317242076672093849150121069336290820496439026846929717179386206557143059312220530873793555718762744665923039444494959353012074264257825090421689137480535970180824102952341499159869041928229090285773710902989018486576177200068868865102031481130458015517436980035526820075204243227130147099529580143872646688281271334242344359863305664494387529403278639377176674469041370095373748894924206063472808728330944117657826299092052713061922318574723359495958784251183291741307087165922240688395926514818180372018531704494600550888702911645426632976344629774021241911854678559607526799242134579293302867724118770339414735632762957461194145483601979480254936298691567311572684578938028191010044188549380383688541903706387748562990004512830441879278988306518459206261557316222209273544841530043026943995509871295419967273900560345183338565931485342230296676069101217364753865702395922955770587498016664284805603048427647703619278149531732788126188236806085644783462552377030285099358990656162223749838993297834814982419006850230295245242843568997900452952332671677682274166818596982694115342867714449006373715281374608927755231554577525809201539604391751651162564000767280979205009757496872375157446027424367632580994582663716769604433963766101645581034795926415546244950105995250359591138343278346499474090027230122068847256217399786202494893058426996420516614736540137234351418818245089417295970763091315743021451008352201904836209645453609810883138487166096464617272948310592702504254392261794508298704836476794704456448173351227798411429003802419497984835915562868520741296226966791344499958979371043457442077553397812098819119003362069941697009024347409453008909153409738281036633227451046468719895250022266140342277848530556792041472553694973116532287269743205043079283921778785687892255172889172779171904329300748112481954867654376250437962076979592534985949825348088065826404615771692885588075486422027030714068515430895651284566190102719550885324133623009336300821369634185141395231911074678184066452441592616700530834581246316762079378387227222323746891909533558381990683748575529932133310909890664774613717877879924121218964701812802795014170965656450960155021211245915187345203215587878302173280975097475691499343442259959036649066562336474689331981434430918987111457701119783780572375184069279899578298830868993771188248175492179290560345102436977770552141765759615696224174948186122754189604227762772741931775793511290080886909950081060291738169965546008999927797792079423650395225176558593489433076482657362045451835251626722103134009134053984211751716186704449992444908461809875841118877972696349093739988472628657565955523066913429869689181864026579361920849035121403193658839839728608734079851512030412526983624256873445008098095522889079887296215241019410066832364606789175046028016172297900280432505919020328116739667086149691693443602387669706727175366637693246803101360338810824626802633043554065252638832177181547918824421491687416037257762417159780955455434340326512443181874792231183803457280262741069167085136796667111559269450559177324315211731376390676976060891101734166686389086602941000988019391046401829663402385799331308594054826931341257172380673648972990104547324010831234279413858264451400404186775672282724048406309582957389079596665538893505929081415111974493928720181108840761673638291109180609063903633069741533439369307070413777209949043506037606289916209561419323701038875158512451530267775804227619536830391538781068330794398059425845660464171698143606212121122479572500133708384397295211445248674626433814125167754381446248082768726060591739332227853810992876260900080932527210730366037364669066383349029617097562717559133650542472461088882862478588522816172375172290781708436679506833793791276092858801498435897364075087577268646630333396606086682752947654904308125423071679620641594712673019120770398175630061830124703389523409472831137480201145394785785987818095283888300316843577623996435186270242110984594363459170818143214264357063443272232995043869655335601520548618688945581824839357979551879503051603465360374886492275949659635266447637772678233626037537680266555597479021806032583047627407899022983668051929823734739042928361886880094426426482809746053842280806395763153927705583993267417655750714630185327281516020590269450720598094867415571939141240723236123954706494811217613744208629074113423935442935006520636406738930713386301087114750409502167449894552804085816886173110163243445576436918058774749847558885658160796833253271667140194323394212657605829158811086973755603247924383887710239519105396468045877148377443222392714196049632307007919404498323446854761801943929864904905985981498284214572201374014391664996924282300239514469049086198948078030476068298888779505830063283120469791802546406411918819823743914228035874517822604495871208831221961012456634141466904265551351514794037387044923558369789250033921677011080841484914364128167275498464785506588568517242529585435917419418826426352138733693851021787124749989049340893954045904428717802948207910214152526443943975896808288502485167544496982617446183363300649121039221211359558487394708337622951222182192900314628789752159377908183715482811172061715461982806140547225780461281393645224862195796858921897159603497876582927879804803015304431953121413958020829570242440114336649522875399941508881387059135364985595490234620255629091922335782817981471961911485080607795813671746690376052190583171692764217696778186409422503567961246258447072253950910631008696734722424029659121588375530270417059394449679562048801238914488136140805602763991637996418184944533978880982932714298459898379081104976280772480859600917554625103835540257760922384478218435255815278396023380150054730066082616218226832908820440776353784998265706941260015435257895932780690004916925027040501071303263584208321215220829991160802357785254266530842698598374315707577742736953319716921794527444444999240149466970368589112983519012777053228521170201718872379897423674108616914286123685073886776401105339976877079624339397066584751547096045661001168060669946246521232236649347474027998205328388536460388495854542573983851733542128019880758991076716749476743323451623031414880338397560636368067595658871846935041331805759173254395730957005126365633631883500901139513291174408724347927039889981520954356286442397850929836827221507892602741964504727791346956347088228058810581908789061719049225562025187817514882464044148672026087473767848199378003895818203700791711211072999371000438393286520482615865506172303248373358406511011197664297360347373992312975303878939001181092827745073240844084809178171914027613685306808029962024398927862645631301385502413592145046517276026343898281460014423111726493927952446076512607385838092605919980216453198689997224737330174782887860413480523265643220161432423035395940842003694395001064984084150795807455662140780972273157058116797260518912184695073110518129132483897434407121013122676440488516492840616107330569652888223362621197546705792603976269864774628389679484573502080923462200851579780125447614223659957288342075503076389225400281627419523858902587248549402169282967799892216098151385753803740733402622380187344206901100531455375601508275159980641149113604744018594096219246795396879777182426161680775795552351106410820099082973730043379515655905755520684588842715671235913169110024056269621773005630261541402068372686675463193922204446352703402670620105623290188634266054521756701815280923948697719428500250925292623189301508350225989413413062812514122203393518938818040144871255668756782121186469521816993295249478380843187835525146151445024222004850369433006314764619262075381287175719261904657095832220217099801341086198132540009502805235202345078672752829535195828476867990908591542686687276704112413303181183733792485007332159767652128323731749491038756951348587795558619427319694485579051523198495602189845488510333199252762063368724627890550878919036935482381205656793819955571805679893174409922042708629538824351383571140785875867758330671976809880260428465472861428519087824571429677597114523946097712817781584105616621307501251199521367800742520367464915072376023526447405306576468049768119850958607588235164859861999113835859631553456169794754902775227848871637742847652997973685631889875561180559561764556009636138517823219065565601235814577627219429603645119649850182459721656868694491663498080575527361977819782170865736536136597976997229933384843319925719012118756388068137983325066250248357150806000991174326207656767362967341541528801963789431785428005522043203461521064035401255414585526488241177606680493392719326605660467588849258643868168681883219680762717648601156697758279589692360668837029086502495371660285340649433819028638730316885932410678181864517239090758578554154614317530792286308946481141826337618687723608431379859801343652121580586707377432190039352360764884278878357024839419070385589400874777621552993102705366937639095085723735849274083119480844407033221551856233720059606548914515650049643281524815141182869764099638279479718446131071812160173136688537688775999527304091071014500422751571232315274467116407898253332769474838779959159415772869433421376693367345827569801695581497022846825527786699484413877790960556679616872205423036788154959221705544460280122570298653247843835327075123561040094166070693535571893196953141393810671939468545690109449166486846740431653778768193031302697822260753808551613146369143686593534739739258233348910311867793793182073440797322481895898722625768033356167077918010203777978461821502658733096023982482549934101175974168657968901550122353467625122706805393413185932384664093508379184487294815270545683838934157803391721372475560975602700683552233399102578391346952219953396211028816116836795850791477452238749747677885229240704216880513371222518092513069705039572615474037691990946426860002945043281658297108470094405062735162649844784503485875688423105301533672357026004611829555407001096307263139898719223623020998953844923595349380776798881610856389682417216320429683404783456439266319222393792250595557880945782010031907872851977106543286436135028273195873705653866766051133320009822613489398128869722912392207980233601083830124899529336092720406230465255483134365440544589505016616006255198143834710763778349369735850503002945916804481705746187059129159545888082976926338571900218667351440136134489786015131669108209995193016253308742577455095880211958538897477050346051638170055641055009024631282832626859542420017340615612622625348025784976386831397118471599531843904113231208148998524030810445995263378482874769478047846311941720641283494521200090200593766762242040641257845421673557342334349372817108217907741699757046963726103535122951312808018218493022685631152433685573665620777687882521757061495034123133630758852816723147272709792496159838725647927305056660594468385549679264534182357785017482694672350247510668401498819095610387354804979549454184058065438983349236605843001559686280350513563691948905988369176025878256632996323170648732604707698698840024478060979388087437282633200297578723361368316465715796601337947245006408907424731544004909237506361321988614866332648615450725872814098927315526521322166734798932292982395070166856953440226645485952421337344350364391408444205794944854180502781902185177652095876381391069114621869738619198889188839778263382870366816243596171906099292034989579205385696743456182838183232729822492179378773114824512052237887905562626210107974422199555396747956154973534028170926716497125388093256278147062397964112712557192436040436093537066751853711212595898923281008355916743940249419251567232635083250757637183662380110519254285105760769879257676860237980672995411044324655100095749115318093206790291662242255772739289134479231007032045628765385439977230224819518518577406341691394477422285714723177095586958787860394785889863050092459559470427211356078239115387411747367086674780257778415687865469007286100855766545366005435520634669295218875609489963965834941775531266739662567818625778355476107089431982483206742978846176627139463536430247001886717944077765292223694595878349377382384518548383371112401438920803956781586950875018711813176476832830629947513862762279366619543024759715822055100349696750022969122325114396898916611300889620621861284467639801943550167275566317180467981229457432936834182211108302359597807571228072237756832737354495559220739317848683162811632650475826789032791833244169861216745485975606011752292511727585652870885469062339658976997865027790020248911875988394818234380639695379806803347868453734803811100522648584136157287397601498146482581181619981658857752551416532088872241302538861794424992906852632540851573732044444835344198920354488793739862260986848249657338148826307897643608551324313611012924474531265595406929068915255081451201333395960680178325840700803658500986556240574543879446980956346545924219371543948922457029117039213834648431799342839252673154678614124946961250282842877177920510042249683140537601319787573500216765897909943333565465103858688347230380279475924848412151747459180065255119190729843059756012948199229320966096994497137992332082256024746829982214651730026120344266263076317450940994037733020094092174856878912436844776763784792497537681202034682192543690212897159417036257006947821418654998360916259824260216415637953740203922958793237903297684441730984492699089297299323207964601137196237047845254680091965861301484708181291895355346393048201060787331917815140605878626707483156256275343615228006058796933880377942728113057799579113096641542547441832665170126142253820775547655316056821790885379163558183888938983017122046460658213305952693788884377109351860424929423625384361468733778669473537126397705020933036266767400349443131741350347735049093845702370232444211357509971117476589691124716206560528024167575017578507782300228643771173377604236058090427269670191819535817409167625026945687960737013696032849178582676728559872133058895341806119334984014919458931966497901894385095834728043828322716549773283933521075193948729967729415918609281977680957253810071461521239200196513679348966541317109640552084841726583775813024750649192487041156023882306768789569201751133965566596341962337118951028902955881073728047747629053933928219131621807133999631995191221565415460076510719524405550577564391362844662442558807347594458645338375966655865768803071859289199805747561854315853590343303009378807480421490583806202416099224831228814432935429342227116366753153272553183032291848937435210414394070506201366852511997636871523643121720713268213365021338792222698373775150356248023340509896540846978209722815274967949098212955151106253408909042920884663073065342257111159167714875432883738377894249475078684722342191623152516351760303842162697302955248459251243413218360336148540146672109835851085705262535837034101589920765866742351080042768520432420661364029367839805436333556874353779498237104652901525885012114847578150012640451627998004055316104630508126948634540150552567366834059158991880941601132514960918716484784220458143712085947406363119953240257070459678748979833392322900930454138650583963553270142819602803802755737819943724855774811470379783293233859011051099900691494126352413152914368882609029914321600711958819365106171549686781355789644530200836925815491855442285621598832006914967555075523307395730762291271422569118237647606337064984486703215467180038014535730911172045096080025424324198376863050318345110983501758699901312138521002750289460387326787940893321378029352053427228947918585993731177312789266460600638470541491941835202967224287214568787259261637211871239847882707434102216479624228497007750832761755599779463544629150708699505279584788211587522887707820695015546960710081791656192509497313017127145505178443248042900921746454221460280134616077977892277546885348515242842395673056170489637430292707440104080127350508072010388722421055575473730254176209961557983914482847792181404922371172069140902515352786721515960339255586189068058583378989082182755162966018193914011529875572359003947431749545402173220094328920191451601281344995485804474747278082190054437403455795685455510018960988933211905930917520324275308096385225252175097335046154681981616867524392123098401368991113253289747759365919488192124041057475133355982749684874279873384579929711861186421412915200906655483033302191574395175870555250815863772217382518472461096551711612433769371502500938239594731268456703237422148465050983146426047582898147860943956708760556419656504339014846919748610825812787094690691347661545556956086139453214523139178058642818989120891882012004779588886412978153835368184066964087675544040304433859598654161245900498190733353999303252313775657745098578910831251041351047428195693808061566588502550666553934178325939646497229349580650891436789312297551214138879700748679880838903317852061559614561913552424544110548743661722056237981091115578998435248655143664057869241396179926254356498487779640605850666567785095304469869047548150648296310084758739438519118607577696400137973936428840203295728321202533119852486397868643731341830609943930185501413077395095635904459162263775739722037839112203029972832491218747910618881421756681746814331479742119311661710841856670296234368221725462361948352030861575949238738791345842251717994815448703487386289354208578128132910410735059249379772245531743113769954170381569006249755754381979695095129418523151167451439410967865703153259709806377997311433790060244122672594665594432900893345830436268466099308571972586851776942934597085856773652744975452190593884399780922513012682893268788811833245624301443172852544447317495919666792270126655959633701360889843800407389409768182521366713938601669493214215965069669365401230411624720044680468020117140370339348046377754664198390402806957976613605392016641239524149393054719880818842623961216368172291359348296745981580224169172087798452363182261746596972743526509017418146743552140903846547481981310400629486973005924284921686793374109715903857857279895858453044547111911911175651557159666673019449565187081074788077775984910976057761398586130265454803969434966403457806242323180060462736357110836869385221248961153398827934862036559101824984450580030417707325125610470620920010765517906671911414511480182791351512586324904041388023714629696420680766697204573536202946575769351957167266241453170556831285968476287372139773193418815359814530534923319525803547562282652685967294343699437312178083612779332214271757867307727578538196616366588210161302417494924077511015887890541094344021301312389926588600894604255037713829085573156700580835346552437914382722026090522899000148222667443228695052216723551732728996812175216306451829882358542634085376975234863074446324452579660630121164224334831511404513109925354923798469942434829254002065039974950518985316501076050917216447582267993554577260792964829931851659586256414559586661050586550132664230582411490974950677630971979321743077297288683552414428400045773573371953402801977015876527908790388575019837902012339305505732515064870980486284995606092806830187679511027026572437913188366328678118258929862822502552237690465039254953789143500159662383343972040606200532055513793082354368336926995206451131032240340747132922752296611343291334241727040147797762078782589602092655508610969840572481672184781962160547880589205121278997662576856233491919484490135825219598737840166791880117559161423342605216304397213940529904330719062400903999473693274693002121004250356610198532069297828223337350643222199804927991707389362130804956478456403102658097172240616358836382757373142067981715737978953846410481569291377638374718254050082862034223189464180636764020655434007814482683227278292346323260028158697623308670469778548232450819862159082675684366852776123255167219767088181195333974196149729141803124217624146834239612585670191511952134714333244213925277429236310046192856952029352942113661154885109878750793704068459406933784206804402550231450471672604239429156525958791520256087401480367979213969993928068485756680323363941455111196455469201717514965603241657307175777873309245271940205387984804196367687751139856889586874966025450533818969088305668085802795339788475537945572889934194549489266147469537920112037527955899264490783420008469275533838091657028512634151533838322705673438111716405236044770366562388491676934439123280492374204229114429092570358348103663384528329597217083469939148202658990271595956131946358515337123619253839174110277223285636885456194213511282628535969138124606209855698693076822585652812073392616220229661210356311694519672460168081253333742516721522006674155756568592303301771776942148577016332851840940529794677792651522819477401884969507592745803498462159644249928250271364838491947890057912167079403237466206096312288490484024859616889756911420224018928759692805344197333147321275396666440265591154190441445511464023199645983684636689097763336571381778821139092244870689048240025341978992350229561398769075935530853150090837960696158251571755493695879286651410002411307377561905094683285779664548557393898626171181816805832397748703505949546751084628509035486948334794611252672550871446379555531723612945344064695558233516824703610908584442048614558238935890523098147800878183669129300743162342007103429545708446052066783311443999744549862997359217866757948291602897414607487579070008416203885394902972080272481547746051874169364273443684951587998372215882098144880200442904793359394477964310954809667969582093018205098542486707340235315407793900683574285341038820281692917491968843365502745535357835974838062996260392464348180441576898622077864040355920240977510851522224960793604223810354642523363081780239377543895412446718989257581640328058069861298687844381354350459268142981673929931365283863402352809379967016644423324380422735888270048222016264968494210904522102202316597518862746267773730662738481552070594562437990954018304157558577053770619151413740122065901009083040545272105874459828517683510483316713415815470126742672491213388433666939260093659823751706491669282997315778293556031325061689712828760295275262518975340259103242873527217800999555650403474832319786747254063306635583090237939531030262409556269962888799681690948912991339795149962475675219896328858877945664417028992868915772959146779107123026997024743604794010882112238259303269323430680899902975741444025884672384847851891270430721490464238223599075015465736512859245561776074730110183821454688262570191073112544950480843469851237115130011658097508292500181492407436578297625751133612597011011791006596668797726388731428920357590789219113204953643552470075324601413834651045196413290753437205455790263240545212990953026458210661279939013516634219703550951561426488397696577582137697787093855986564731450855379275961727064291948508891972309304474815129583689157876654129255738109180071461038948399657561606300590155105126242141457508500134171375355181966498540742719076178595783532520465437913280050906425044430565586752875426522933311788579132187696866099127777147158335076194008920138797636201253099638300570159142131954034227405739291814400168958832231169590738257754220205121241064372833859029252921575688661901734288485740663159749549776414011919933213362260464757741442185585120394271137444516315134798088608731090519574663547952945629241302984877106306610685770602937917162068874194562120918993691885438883109018274624770219316579439509233120316580823080404685951109916989884504713944193110074214975790434588500968640787333368460061504703969517272489765565007207542945389335759718844600690696685827400943749414413966202031764459556374526488302321858539322190427456327271575922980580404967769446030247509003679979173049435909981301114579204370455329645539363243633860847610938696364278559002639560236943504737945179261382562922818438043864433320285679253582775959813386011414894457585708993920199119027459539079308414775137321056849749184403263799846658683415555752105685740076092103941025819181875397100594630642846428063734130070771017522466802115427115801924289420120081518188965432631246222636043003666382014294267595045254945049648211648419898678987708514234862766788043544511684010683992212631960879870915126072447709782437011474147003997817475453693616373883966763391136119145278101525435163393882087950313250936295778591370627668997062017282109259261488618653843928667945712341149062888161859901480809101372685143567128499523771439316246387998318122149186325085133738572637876862987874073294045304839554668727179232146866248629419406085693381885365156791094837438036652134475022568625563324754836708071993249482763288093283183729475237803524786100733754162252987411869583373326741257355235133162063455072545309622592942583510636394897643473725151429635463150124500127369752761248279101315114642206350797996461209148752217003199170625495613786968670931569765571493847507124188800390648929723446162649099504825687226103757216645904318516271779004411442704255280281900198567739672530926181317934760268144445183803347835491349198554283765844787432864894677628828913398173165214573129060754125224427834322330906458757893980473688094792966211772075749354149375779491217308264334027658691647476906244201206610405652415560147959806870391543965751324478615695328414076312037795191828971055122647842572494475816311911145958649211329172728446930701461788658348344389809543940766218383296403732905641682194617941193289110216493329878425065003042583577590326040302425858213618286430597765670387603488344433156156390868647861568372737231919520066675694206944671424381494485726790579627567950667916817201674379964194199374962789188039583997365821791243160998612211029551851069198465513333150573367225478475514817995402190902518455266989041533477633901030064459109618797600753655700300593581332022597350275702943178586504075298577845371157909075618850619923206658482527178976121489084795286828173095657920607545305421393900166423891815629375692393522571524669046538920382515598903702142800091928224413994911969716678805856543289663446609584362850009526200928872614733004527753510721826250702745187710021839229214891328112548603582696362900684985288669686417041491526591797239059822729861985282846903382276000702472417230306792379293609873299528899596486203124981890460957397752196010268789308365786420335873037638043470308437461243372844430991575086157346126289585149358476170377821920020602168711926150524350165196592335873214542579896509177654305921395791173839397097732488075176896160763289096554368461602813110120570691986889094693826008448797907813836694808260513440289033577004819383292891414637795208087070655525130626998822345310216385687667502003210134150967936863304537419442185200408199264682713891510818805950521633623200065444613690546370685689512360112563870995574920409629600089244568799557131899235746735551303993314657315195255646842894166586653553886532188188327319320048057775820931860567968570485825072461608257064999755259216699437300843031300418833274515669684015888835768846106347791353953877223824633500022290978904338227712551927930545076454669341107994195095119460373581646350118629378926560074016518251432422265469303000382260348277119455706196976256549600698403957043121007321277166796567835212938507470645086338194086426225836280517972171308988929969678186523412698590793916113147698837671873227007141193559561285154758192352168292928944096598972759935972221916942132537846669282286386290997962866867958144243208563503787691474662481779625521750364854365389252353259499389361230087949523329721748702854837388826444110689032845506757907899239155695920806758364002460545602864790369094666114947912934763618038108707385307707922697208250042058046112743183608234441074889811171142868679147824529830208664123963341665053630084129533589794536278724014190737806756965806419637417542095259023951575775627910084712003215298169838509908334254568789188345376319074529355719662497651366024449209397633990913197114107200840595404288262022782717718812293255118881912091160599587410953011594716001982151994371537479612375696531782766606868115294712448369635638061912150042630379360306466273352969752541723372426749844915918822479068613313995425689907146317555868203585549441507208631613760359206662835400408959514255999080620874256025334111159635329826970141534192711304013450054131829081118602878254833676504171736108021111511374193644526146341523007156063303204248357979836003509178583409250306241993027398793466836991332641286596379481598990333378338738947503329492059717236873329482468167033541608117388697636365968266632308636030079606047985529180590463352420244068558310338529373560794334634455456142978787095435806449771810043645410931577085986868279981280207468996521550166798159637775632085894007238965336020628617799409226203222521143329839597955057231001722605698773367279432454565594575092106075017215291579216163956939428167716661724014347796174363300205595951645154504753436890137305324239074094239153389392732060267235964515472115672934436005076605121250008863849975092752894565705323873770418228087558851056608162964063578697072156193221478611186043543895324613573481395478356669276113449586933644798212825359452956947174441278666519450270184018612137441308081603674362642516548355217223606524767348131119940078742626139491553645257115936007747774460607407193271391722337287781220904079877147933079885118968864246024555488952876572195734006760449596070883945361087712409965151215358029096020463629840199182346083924492167338243904391780504585199054066105536603674462055766662961425058237775860939680117873463565726798145928115121570474306376358068854742509857609194794438881612649563499565585944153717302698229054362729083935502621308561450497050458911117248722928347849012154167879958773716318471092135719575233196657681808984765547627830451165203238374472739995865482982826639676735951026155057085079794805434801198405563934730733379948706179995806802157059470193344819496806357268046959897681018724804896752158909289332794397861594976733803413773162902500871466447029886694097844161869911609607030263171556791287869523953342323693723652742113190597473288694046743350759233594908763951163550964852772762863288131820706240371959894900823611613390596669419499238022621364310111982276527340594836740106731893872911010655351959487311416824292663760486928161179335052599987736820350297732822577215077223108622524110805075074078383914602580593001670212707214210750710932840086555160039851839272168265284122829503264204631740578405100494458501973230647773749732412275483086107116055808616693339344458980117758022443282507515277982237431965598435023946215205189301145076078252398278171230198639989385846321087089403708131183665269664260606060083915408396414342865097550178803129375641364583222169737931823410392273348456629195409059138805470782527557197551141996730673111376936411332861594105286288493990880643575018951516579556703090418884365694590545108804332575053200484299656697658698922470896620466069232753477953108174134404778847787674468760666117534831884131179899016925270710283709748767524956842682275352447006188822408501993096288923303513509037199396306478593844942506125461055187969489448057003489618175747603480976165356779160742083162365478611507364376383754732776331353888214626451834232537882521809447634292213727427114674920600564358946349839142272222366726946121751914062215566886593966086463754968768579869677792289118049878935929566957827814244705950051912869466756352806331594838336670881361307398839045380864887904484749871372184317120660029111625816274171288438739087789667367988529318354285488510509871106285977323106874305883039520360808628030045240556505475713842649303009986253294930004367179855406211547013402482056114338459484822502562687772717799045927182118519855069838147792564306165062612383444705145035132010905153816619355896805051645942050536132277249461765382155568614715581128213745087080198507958990658078696729617566852988854105970733421795909609961388671294962911085713092977450460916587155533802861801815669050954069105026548655035225675793831267126273501594055090275782573485311435274566905541876054976947204342002138198184072022723001609923210414031222906572021565992997883034313478931319626100877030171120056482921963932493972946103824215419839373571449168908943350088857869205584448532749440495802287370481266823580882676102528698094450808667045762604931022036514095775919935731391520543674860807504677880924377687784944715364299000894166875219712663328194834693270199981226055082247179076118067364124312373643811379009404764277585660152302791541829401461150713199665483822649430135887691773912525465453348802963817784643837192617044180921435553927294589140669026780944387067585264479556017746681307495133268601137439083484162806805576345272710043447812935951127741119050634754403667240579559883561257655708319256189828284618545553945287387168848564522444635365086617627633169707209655881255396740871404973738697605709968766472518203175973545054626017359369558903200735395402349013827061702508093647413575399463393026452890427434653878689336118361589867550059709826717418069823669626000179762875233822346477366919601605084144562315800467437513564880177159053688334253785943076153704296400728185480483837586527250547762103119291994857348176588136990520980677028615454485550423864523980077054697772501415195724109017476677512944903461042975908523511924191457164796198812509089973321424580183886194697983952314120157497123437639688442803491426571842038270479263954857415098479566082787113548204908849919443306744997526527210471201600292488693292452007380905092465788269183858467342542190863460487854570194772383935050735821399921150537976587097493057880673359790196819790100322646519418772042623269061296286853777983899683358875236203062068697317698216778635646432313352828004922989540279400107385990581049210026622890938954819115553886901625887109496782668010740166799085385781388136871314086067559217185524946204481617868867370315087827737001309921880457481096435645155906748456127902644895757284384264525895754862303785488193903233288705887772574543744421878102715278855296892990168099126342905331697321854641957301467363930226127286573392394976997344009408126539054646326139471813784400962071447567992532898192354844318122323340913582907420670294310391242918027600335808236534860988802897532006661202043178201521776906474510196064145521602954041209333293118238799289181619672370036746468670754990505620125893371705103994528657632075847877332993239891194722552950891373503779083020396165476442497935182477677475766029924948587177624189112279301870760912401963780835250457105906718692783530378468752752004208630735313649554923118993361794501392467551149820740520503288012472710930198812123522013476739058693064171590315021894138131477163481485312419109560472943112870896093102875221450560480593444265619785187003177988396557421205950199217779613717242245193459817902126448400013194830848233198148745779125683451254460827167909632436569573649488285567490085740008944487627141902045066904585095564988868681812760238833976660046746228645080978526831201236975269427251047117576884745308394010549338032553825053730634796949344271919226362634221951458022410178207685501720541917290996231165563567451259629515554905016976973818312769588879896928504398078647566087995401800802451905178693085859161819663730300619902695161604558223628493870431871383804197290129853155617523625106080992669992097595408095229649253462031833772292933940893963463040029906521694609857795672584816214588873827685003870718959665830397220397503013673965664570317457700757564170658233097796683626592610589496542425578157550466849168014110572579252164143137574518075809082250172327193255175743076492358963130860324374423036308969201796193381022740141879986213102080032367455443095327406279164884121378190581750284385227846165849544503700837926220709173086710542675437703944277915945052872051600102566795746242955785592043325571401985389622915988488231442799159055353196231580788164531173546529336227081313034697678074973914048401961242022467983672326394517815864653252827279975191855377210427714527490380060994059822859604651853410128363074426206939924405025371833709723928014185582554273601170409497572483419065929250571870567922905563095101652234229811336957269621952901986427405680169588610989907983416263985519354296164196457527692949332206511171357151373716618895504094068256791053061677893271933074480894364973118765330165211425833260295708198468854907203659498032714862205266710046186842078992656472528812793105232044881904913106465223430084792375389653721193345117209114677263209451089585196942479774984528573692135024466568142632976128656705623526322054905284095727843407313841200398161845647491035311627093799438820443172386619279393568800199370554021801517899374807791583588704281088556013639881615689543509805673012502069338497261888063054230629429093532931717269685710404568450004166729564502737138258613591953996647140697207648857106056704230805780799069555777360016439854686767904811701791374835798344013602626420889119015738897534855018939497991574386253625139956794285612263105555751153172352921548821068127700598242366852121241304322069658450444454473587351259259829701385062118348124966894341683660216264096898526112186347982385850073050274231679623609299894724699193865072082026949256249292548929496736838703097153732697952935501820565079170610007630447019809753929778666049915031107663937977668762665627779390719701535181256911594829102023520128537703769522515916795860996451196800925901440031836259495691041478005003728625556997307807078423092077124427006069129253987045380664177614306542193877845510985996627926583896916164062666840893846779556790035369531564024304538308106945494549875361242357349740073853763313084755255703389505367551674717031456867391242221427100740817888302647529954735804862142063436174843159613479408528522363800261620578438242042533022996506436074346640082473583325135506365963300925948716855630612799606328184894489592983337691218981265310930338557127264309069413656849264136036924067605622483285169510787756081876347463635812566789222157124317552167861146645988531950167267446295622933782924620960984395854699791954417337815734699908533899499451186681132486101336652974126235694627332807849952450083968543873448112726616030091599840930723852798736421126246174484731747224701171297975566409612448426125215520658350704667027411138444970169249959912652082389982028526538541220071953398668968246838362469327926712887966631822292577404553439551366228409766308986867404626633890606558072674041092365611260405486903501880988198100453062784805761782466808752801691298457354221498532081200891044235665423361321285979549604608158785755283023526337745673930285729032585211401434829310057948834969166679428991144749089213234968870107125373194312828853800366753956597439288780412131811581176184997759394367043931387702321683568365157990383663015447145773430245104978471078243236475772927315675608367768381112155638825395004365562863848566634478800811705407268236294899023590915612769210827466986894096885701451693090365875339661606262235256538792823664056366887893976809515263832028373066054724974109433603367170670690310838359801711779559404017019469393937991528773910008724775487749365088340094703969311447711400590188605220129772502232212796032021134843364335238157536930284495213420527492984501954146507340298706063622199781565382164292614554922092015344676263950072555199401477047094224282295022708042907675202762591466244287450679487782353604178942539853224054941979356890576677170355475861747028600579921716990140389966015745681732060070847650568181649268217147024142775145249698605139221234082734555540051602351587829768791312060877595147936997732479599255105543425540749166677410921131055607994790655448075547072065171988957969261293475384050237276828410479816949019525264362799893885001059151660122527938466341772289281841936042676524877571283227737431942334693760446311061647238127661194395024502087105954412507441687337927505722910332435009940809668095881616898347874961125014515131899542594370217810197912001354431877583518115514725100993662830775246574101260160195044752269560204564392058492869035111491990050615190088087796872907350206988722173376787333847498346674116396203746009355694793894050420748125277194464279632392536242500183434715857476027056121202966157961699856649794012760033970769152930116849772764384682165829617668406850927408737147617776623458156405737674233959128426070425836896122479050904284502462932553337102540932399790275348710863292836593439350833242848218923108655874807318810752679804782192612075635598004911283544900304373115922687812458821967358929609014634931739671592564187637198229100446412348395533113654408635530678230867857441042063853435298917582953000020887497445813634179640569441570024646369342828308266013346184210816005850911295281998020490264976836640347959471523035359612119332727053051108712394023790039713963929948608526676368724751045354605313428169025098025748464743574647221889609259480773905254665300057897370838506432035692886232828162019842259210339518853316682650734843436677794402434212838378851564630054183736325992483466819431495481823530889063802200306831586431984649039309158830311592200149277565573731157473853299333013370672592656153681305486896819432459046460505412149109294425497193509471537788439300379110362427739817877069430124898428993192977048204405341589855193500667698225588388108202456698611349910852575346678314924122327065639437923743904182307501381811381098154135856963158073147657756025048178897733591276842659126111884111038225055242179400724486777988079979624989093635549058627764549811045790357478904798837884722583555881163383520923309772127098663171267954211612191766368000751854263953160162764695108725421649069811701361670284311205308298139519323588054175589834421043932413290627754448910402010649276263050975253883723292795688914171088407139351199361530180562328269641263862843502833376571361267561959422067054049837765712398504935157729268430833025712044298096847561752147623778481882351245483034375174163430799653316709164794861700893127932210157264733102561715437576168732633643962750832754708837044617873370974622698934281851415043125693005597584426612639885967192359063533753440594200193542425188003369724524044483527039688541223049890288097121363754647019327866555611069461338315627938822559221330407512090358133561510155054790869209161111286424877980393162985237043208352920144587430559364787924907090545904920902097854043766664586837679631277218844979807223722644491883956281935683018134861157856566229896332358181911810032908854318310833097881150222740924929369651018790073054436586299095102991614522647138184664653430907562926566197795974654645189635959073672319547149624450748509422657301410236025871719592137282234876356084320142718812665745895332774092692704398857921006271583705716704574322464519576724982999882274638439781857857908229902288274257437676585950427591403699529546115664550943959283761240164931734479836109890616245711458023031520187763807781382669617305460132787604891306384960464843245641287123510822986749269579916648110110084821568076769462686045743381025237091339951686599717907254168106517649520774168875564324378668303220047217071926994322449165019093559352038128045053861301703340224061953824611347239919502540848021737266231068579944349343941988869721797519728311586696035492947968543115121591895916464735013564117579771554479662871379081057975294303882566831535464276588628794979598244346691640977598085006305046187436339668225917906054190799307373772674739283399652916923870441788721745706184774821924572825719387450177188653837655934436748544920905052321924267440478808930715502856692183432838892739612140378912815249445046025668511468962863052790899532089357367109065134940842182086117490944480222175796876473301511637514506829827082496441657024325472624165542966074752282491021653523911464211804094604489796436137165621568367138755861197127308782422208992980467184069781403085191338636637929950357799905474071442144486397684763799049116046142387396734863679963839364257951049876226620543044802793105506959951771860891410489565649327157649386779310500731938183100676062627663598989221464316092853965533447054640049559619774250900685471070423900019093660354415497714741611346285138844416127802744221129450322464479279450192123930764352810038414539255440714310731059679451160326628830386489146811416765317088664834121091344496140561695011587846587088917139230734987798415595708934563558289790314985468215825287495331494113626393796463275637763694092049127523442771748575403761017354896470484577399409710974912614474724261921288159855339470115380281379122482987541533345962447366232895619032093632005975177906038086490221977209471644130649539929919332250969029140111524891400372947690713101576627553218142446113354150184965791394433507188461204002584858018515765601082241474097920140292851514229269708827185159631965837277657616702902055521517060907704210988966685992547592547236901650174498071298454939275801426762918002508012530670162338787640145458468194403358795230823064519042631053114271570433630768685709542309406196353866478172366136381920145899799442914582448813748717317049474675208179784016373640541170974778187708966261717803527149017899802595036056117705282421849359450152428536272776867148332810975561539793283108812749560308841865468181401682009788415484384834579038524775845005565403923027799844930982867234179113531741823926568080870324685490300859670847058243503974404564272956869169103375753200215084891685031626207821200390511624178728149059387934436511577247695979984593308073860203472209745245446324753789737334770927728545887944960342791376130033853620372727161005999282858814565652330054542571720809993646906080872692739497103966971775768332226149628751957488565359560029793223981080674286474758227817586384993100709061990702328552099667475601382957868776525324865587578431747052324074773689510065512195393210347217582332647442228005355651018435267368630512236729496123127256790215786658460439056018536460687782664990211685030227830510106221600533226243994332105747699581550617731900897606945065708112302001587892310572298414213320057044902819943481185589843466631060209941516192628925813140395483542694886554008326960567895448154273539403686220026107276743756667346235324431322133279713228651611450744180379180402209238293309420817655550434281015705679608822576134705535211230829544015003664073145491239526086534295010540923965585755021728964581642387896042203250857781648531038144400889547449040906299715519895520390853556053311933003441490210248627502312781160007793648836959526530344194636060283510012391416838271525883191527530987898888049836564740847466514358415083599064127856255513842053317918471079388154187789122260165856699379286654851173579289122265005564298659630748194134310350546772038109041951056771539076586556909702628693743430271350961732794731560247806773418981370596643137944377081353933815958610588241181382896853683838053365206477702609919149078522899899414657867111044246568171496008650475238310453215831288664161056141125891639743142427269234706586438662470734202960257500267579324484902016256307954629340274650421203455660811460439962348455569359307799397692753516274617293300353333076586741964725053115139273204465732303387030171330223198170870596550830858122684843849014382697015546470471014638882754339505103585344236021442051285971363541620661561792078417039866538757732842060562006660736643379674383785521309337146456363250269503268800556839062343907320917220942582947903544862225917998006431327439682906017616093702588756861111567531501065444999946790054218922649710042978303769214681260287269227180695507789579215118169450001158315814577211381210947411223241050371847718742837347970452097264151990786591821594226898468151031147880507718165445554850495859807636291830170930627718849577518661820040374656326238271598854150006708437153793377645968426299853517574376319669285259003178487413425146242770926394993072637622582642020491562896570211662055583380757933658685710802091791750670995353343346991267011804988247274893589570876656700821849686731164929869479035791250327684316822685658189095387376873917412882531714203871234166436615262417008151921863106436997714997683590736164499405922690915725221642422098354884922982959909304434537053335367807838179238993715807393871000938329725401525630140539529799946812025159542152103803200376689484617249011409087044698369378759827190246838980556241005426626673505099689488632226838198442736523184104224210389545400116619577449545012082027262147784178833329929421782807482636017510795941082080164638480734557273069286232685257793648186989611274868119367107993185896549530916083314977699320831230117720703603222730633845726720971027101653834276007169489230082190343735103396698481871349213521485058893010829677948897951534367190132452627066442607552730837564465956277030749348461657445989759721296472402697358744971240378887016254275002556652512938940950826487309096870952781482637581649426123340424091757480950908629154051227150680549069231485790949502715933300344978898834732734182698765927991399116233295974206070309926963627943908471052813422586101061038329896488970189006432921795725920628726678642253087972612995393168396020604320282934672144994753456744590140835086202775447232196419903402814330246955688142758697764502170212271072577833117222172429121785086746965826365660039572177886142146588454479646006796665318152185568831185665888337612874881168003425739980998527282471613530826947857961941248891586303917507256579066954623706907795577670217570632123601876221510930403038166141846067873258980159041832941314301527549277192109712235543473984000030160181054706418682034256422457772458508239392293011350728637413300920604015220572693401208256556132564882362511048942923920161960981594627145180711554501539456561376611157667900678218555470462060541990741930587504599060138903249347300005049198001433348178309188505364046019665858823838547197019690404661245692594217678486657534833541243977874806271596749138717240506087274022527803646525347332349183065530864241010829981438359566245071387027347384387424207224116391554592922185372651814263975317177932878448858469120470413426678146911534203091220104211683543973087295950348645383931430377095160956454720650092807283881580287848693559525764414248302541549352299067424421079845020822637813753695925880787119983343994966647520300511756475828859618589839463119147476481672819244151585769250779574294788573843397157595140409281312751924929903046771332245316659597588407189899979367501988942408396571401079755671092547845601646418050243998537870138208367130064574674603856896911103807470751794855270613588639873615251036687223646395606101936158569062821601988648706173816705468499439811157201585179508485235556191919943822987186919274004416809607900164104951437445072774080161901483902206654683188234116890814836021601349697114741492501183228112555722524586420587962458890160216347515937313378209986688528612179033388742919058554195237080303420743550540194290083879008127683478782097260547994220161098081209849818556132859442630814155769018108343360692931826218228964136611835821818446717875290989122337439839819104270282757713621157155819100462241216350039229293527522577699235894890045363441673606820400208912937733901257549606577194553907779269760522392654418110709084192621494904577689448787083065581818726300957570425283928066676928212534078574286935264409294211326322113493151292131038145486697368442863950202530673863703406893913264064833311341255952655688765254272147417193579585116232097586172240771052630147652912107568703077433602453901686959119810402295091800584031040065763788195114709670241841785598798766391181105585809253906634159018275107443891816683749147827164201026634292695165164714274094553750042420882249667971171813629913385600937463872236182667854722048702549375047664970326604499374233689031403887716465008059834664322901347773535104663840165560467239591718433099146996063333163288761105810106505279803704367376182673990926958071059391500351522361679915013622107484529771350531931594914266186924010111348501689588869473168688091812859976555459756794638879888722392690592668407288771782715895317188882721745590266468000752223932725891181784798787977465354832757998236025891541572069552961453051978528327689184898800104403074096263365373400253249375653680560494951695268716004929966720046035916112441972978331248128646228610577531623504338342317596356795023669453488776408766185928256914997354380666185020548996456288406846576276721499904871008728688601268851975668702074878814269106576907242058215533793098741874390710941585729831864483838188754519440575846102772638754401572243283900880176932048910976580147649136949309502189093945400956607021967891191618537624543141656093974232425908876454149809423511192326568689219727008107619452948797336788630536302504769541412095739283599695713056910841171405940224935799061785074293250094226878305627426978102312655273817645409018532416351953121610955100258390038310988076858514262163524108958117591640551951608203845273094109945939063861727133481181860074583689637279323010654268483173306848414512484064615514456399854286402224595230943015426438133797843151567454792131006196515763607849918737855313938218413185704513787339861284093029364858387505293615064692081169550024737539550194613334894938130380264368748596266708169272831863730609709839401695673812592643126665350625288686985348864325637362144992374699011298784156762510528365073194935042638430845179157749294419693436777608650360751170975330260699907706797409950100057732690453052124285481125530058451286430675109951386122546725068155110092607785570280783908052614279462543594215231615216981156188380065475142631449536242171157629667831517197074186072802296651813806139182729738145397984190460237190380878324883515286390650688882476159237390519607785570169126935173405974961537347685014530154330245100895460158009646437800486901794664705887683676717038495305141030672255787792638240753207375232285103048070435772302021931582813360151852790709408921227660413238458075689186839856060558459419374208634522341326860526747285933896208618393968145181007551578924460211808874120184129239170305981956664432079263608476220426933793587831001742127859694827956880870243391096251701061566590669640434833094486827462894488394932167958716829142575792252353955833469423732561946520520223443226364926591308616276298943815047937383086165197872473006211022166651782338483256150679556495885036047433127903281797160289005362361362982027857359912111910507315974185567245995559401863158931574255310074914205203034618333272363782388895819778955672789261363811373179749955448278152919172715323257660357918921835666153716112585358505992152535825495907914640233040004821895578953373560143696368133631779083711692629964341877070272977854211260355178303127758038986483288689609785577988811392576680451850951189999581559571046825714737659095117581945395215918008291887291360794188873445793582857688878375256973921508782487228905181126045614501429497580059357231683633754328299784004647811205330955019361048413076350373561424520497268995116398052816950582298608120950347479780175804020937404161963564235443124160648703838702290578645035717602758473379191568381945223590600888661823055765618383510725170855708285925724671719295217452494236248911078338526564282081102133723098801296595978213407013802888107175863977882898251452634349226266500542851733276360872432750463230353070815167562527243204251866814944136361378007820283486939226879689102610667264067567740235427183044225562794202988380746951138525108268788363761045033883952845573728434006941425581750394088430746092342500340739739318562026465590205427120672910813258911757577496919731380489761035083499540426354641586218475346059083982299091488571231560744233925303715379250716454631481099677048523209575369914944555482399392392051686081000210437924213227862289315665536352799749610885587536385764419769213466630388091362577905445049215745451554291792724690710278086415191561135159660948727103653364089961506691924844055553519878393881852453380886287752221489620703829209317707479120718372682168808038547519408070764374342267928360802233324059625623830658203731768985894841957814978464913637259345494344691597802662881258048404081338121094458388925772084591261430335386284742822158858005266475213376288523324349874143654914193989566414410574381436323906841170683319172771408168743537698288420267612826490693366334463458849075805801413973455937543502877660472439090692157096623771276435236972654735620784911443221254676171197307358099807851011721293605856613909335864715689227925270838453552282353052946760574491407996720580351821922799498374529153859418356461199423987288077744493377753058846387104035274082531818086320358358044286626317363524885276064126994699648056469344192738579005335179819135917397653530209251614540758179100382918482087680868325396679504357595078595644173033505030330580087669613711245370246482069518764548757693474551504130998558237092584923717311761058175300222363066349622110118080127901616389551663363475222598986156914074023497802935650800128204665140809927390564648432240464584680500302169483639436390664108330432130471477772362059780503606998123914633747852156912381644981113542049357970146257850316536025131516332431669350648212110546308784670452749895202152674131269785614951354508544086174355556524230482318520745534299107725607246963246353278946671318374865124705648174083651675487365719796026480859103928115217634524059878551661212653440607280920126177216762054265928917037498636702562447212260181571788406099086709143310527793856674458657145317241439980772769213775503987105282031541148847910364685093522103526095990999763099095996920502596134415468914315402529921665668484410452592593263712505359519648506694509700655879968730579471052565449459845444706966518425725369894859611347767304577030378531959709450353358312742007924958114757938254342164580556940549209045846906299251936209079831219640369729422265559826687757331518739218508666195895240528463251982784286702868676831114713751647847175085011855862354118001593318553035008758057351139540696078368101237601530772618404783229108260217136274952138772584164792774594855608749024315689600381724983171564974546912958622221007659203259638723387149800088109703605824706570009184292144412784545065247552248740754256051641864579460899488636380470084659476599935968521758664789318271919155811897870123811667001351467190668217034429820914187296135363594812642671105496764708342414741616336085167635965531872970197603974693541473151484895721594495579699304176615462473964336670563157115402887014045079311176924378643161991159663635493694212868021199174255010480830348605405881866322919428490756718533988673352944832237071716100514926565694615020841159323835029810653670299412577730552400248366217033752251983047847934836668002420676482004497199771355158756708704577951541445693474994095944245320860909695306369712736364657642465438841518340462920813794609462336390690395597782855336392676505825979480049711635813756313791320533615317763889361748377847173336437954186242452097407609141174707723339732925367025570937687033540219698178743799832509738011305637258298265388129038484648436884240443051119959463893105018735879246482455891305677800882898913793961895217341778713003335809464877976637925427424503232172886411370541189325377441202980894006992528735216820973766362822159587517952007499927032758634355954420473904096942559510598274521816842258591959576271074116877652147411480195303817292471478021806642390183721807474312049183642978040150375451987444207815536894459715287556525843656320973742596454541752146024401614588804941948030681258275761993026983345648902225531925505804698411811677361015125873723446775075433414536794037254015480625693028854949031808786961858360797897484182211529222957884885646877577235031288304793902283250625308685191879450659489911942779452319236795120840302302290843072993397727147613536905533618447540780427155245161388292374923003282461608973672334837300349882682814800532682831374385004140818528755093716577773259844160765207344949287039924733902831040384658305336235783374924989467829780697496700203396456637956810695831006327579360473741124578784279133116722356145435782268272970051607165991017419560698058688859540711192063596656145146393829103283831619421309800194476626888554279565874823675826682803874584173342005224462399680079051095696580257291811534097371761080892343857502567926426271576184847579866751605752033995573418355565522957266941275351052330830336611246414440658051171407094206970186064020259497244220185415786327158421299354249202217135344763456834645399352523857257196692016452948648486478381228341766977273473980743139549998523190580830302460628241197268581517253970256092853603493418379362192156824984674853096251378982014626244655616047384382991010024692823499144585023036890335509087732026032685182631980388021301493120889348434314938563880460625640039101438781036016829906291160401884218559149737550740368221653859547472229923867576016877663802753537912771241578999126082429489501832895083710760364850684193315129604326028257985739827525996535164814967896651668002347748997087550971875903764071822471794098814121311089157174067935528365617438380237353005699582083492341954406995385862312677070423894090176576206987168916942075500921071956460518718465688522909346158813877463998289638943653492642707411578584695245813677399748434815118257759427673610049507157006340799414167017142045718203817329026504060334011390962778478204399210001712200055701848486391513265854834823624209116135771751533282995345971996516459578553190938871866171206811028717567424761433305586588196496492815963509200127465561507628564584904705718674793458300821550780336037877257080824742367359412194879952855307688377076939208239616587463818301462729230538727354173423818453257398359668336395982166686518585222731734336858912680787359256682611400941897059526358490722364199645059252538427224784027855160390485491052465586240925202015695535278431234650412988269590591124133262087904102944335621197932017546307711678121562860169619286181154460984321402055575158673685590848535460676917216733856221172670226971672462582925514553848565146061696060090887424500455005419003779164890045668356221660426279957095207916500675415246797559762829304262363880117840864752613897382113655957759881160900001298254377448580635779991644563103298415263270920346369827361286207872333880665166252631227845100543037125289940192523624616216071902207511620919051201919164516346459617758919686480913227882567980955944011247668687685603003711005118998503341480330241873388346771645759719884550920947262636351720736560231325919167843342150965730217899968782843960196197130639093583330373001927727993339811164934707923653847310562748448251284758701099062836501035107487384042390051461073095480282126364464882636695867206432604069994157116501065584546911625182701612520325227467430750352867705687840880423413045491796476127358005296162681823789959007140798173698185822728390369564568911101463790923823941124484754379481169670338856341957911271610855443916790977668583466028938038909352023791726221463170308920178414071666891696644023020807502201535310561060175358965658863273943645269005987805232560596780866964891826756516966059417145369031733469326782361176386348064234064595814344199995305745464429425212689472564934488633461157076076116934671692467418535754809086368472991826806225778918479138398243824311771787808228754562916887660821296088635634548636191169126719649141562761870751649693620050665599565858988117829975738039774439687824954077580515127138360112616765449501869562666704121900006618350964242781389854209414047792687803076780781395799163660472072344103978530185608833213375621315818223903825074334090638303576901329395459652180883662644674555882727147509881646595346736601654142499222743259015873412013624509965101755068558236137934671203392656736351977520505196858721129470932276125378469675150193577820547192261461865265812486182222791024151971857692648227895986584659704414458060099000748846666131584668598376521699602805819897719357046712626144008340589566208974106712500163157905955181803386101408218697284937020704127599023758249539810084436735301705448260744693540398282075862822534293659005286098566141992003224347044384780391287300243554318812130463419985920230931976653062319304921745772514835311743603557706432811621502327761702446063226471176635624079094601251107439526804627878961591504946922304944307079603994906697498656922144120150317321937437035740751333548124346185649817170782367190306622861100413737849571831182774073878709468128531298677764863072035677316161522580798368177781899245577066835088958612642785426484277637712713940327053898612098890988677161568953227414508847657456599754194528030417490228793523496609065291066347859729782895677190747854357549065137277921084268634912330568019497809567545281321737196432544559976779672945629165944273140390020801243937033504444289984832669716502717768958711847434467159968331320468321791393674072344435187027286180858784126851410118243319306992179064051560477554724529881858891986328352882927868575300926281284155790983685920304584611237971728416347084752497634517724831849195630898186144901541134908540226321996161491637655469776899563367778299094099704174048564321408341615483988091166148660563239346866111295465931250137358972844638992457539693256846617878578042311175571962803035681103304251564793410034158330325829896399225087665663356192018616565619298955476492326370649445894853536636743015793836964184156891944673484559881326267500937811819358419263796664480568044807525205316828063062666908678003688433585124651303519222446229759824868429800532346692179403045170301927947469682622891899388974038747002205569589733085824238054216430259423570386691574230066495228298723977974898078218660757474158839442560857824115521987948605820807928297328606243006545069721238878650033423692531331914299543691264513662689175238036848389714765553051856510633461466015391340985495510676048448782881678769353010108327970191147743467900575164875462403538144328953681311709931353696085964773331105410536625307462576162968730072526147747383126115758149949968288093079932918204602231205125236845830870934011695844384299777043146852302630154930878657249082252061190984521559142990489765269000256856725938926776481254562158295391075109222970225488356043091898295448050708357937120815784547493196973742201272367726791932922479001576934695078540465028395532569168088240149896400114142279651297255601026417679163655429256598816019815545312678640601749354521060927481525657656863583613954819076878848256800767668631301711898860062901968392785422208166973253349991092745889820368364593619100729768252459698590891415227489468925061454342857588389172149853491835102376195471704249319169254756229426854578897576883293601761010337010405326439476743135335023830545260994987686219054441315478386014099293256415793105633529512071754949679878254837141672217183621824509541888370929184354152384278983191825451117481946130199147495134262440793881788297375274166588691214848103276971354531815360567994173106746329943473033582867280100693830271801171797765981023647198943660268379331492719219387717129662158345899269067123160952249331463274122754691802718247488202461387544228846133204820842119220854532815238767857006065579534139799514398923818551944394541354604903396639444284350224940957006876987127147327011238187707876250311151653167271230525781354840322171861777754516294592951939989531410862838344550172506387374366905628427041077368687121950902868071900980882990534481222895529496345128090286377125003861114617232133064660159717431186662305401929727243673968977634911500507627416379535336864889617295561504858875161060943660600938678535498108968171089479257767852266307080035589908319913221703605732916251087876487092480171103094549043845021204671284685606272069864803004322443052694800233209330037545293789210394462791777885682205567254232979598208851689199175601824675292103288001673349567977883450576505359746790939645813013066388420383122956903032031678031147457747729990537778018343800475121240153757237906803610108815607229326314311861487686323422511978538522666516444712823013768439109180848390470038659169434157285233754735285858615829657022839149801558240008198057597546418656733659161612057519112051284533301472682515782040294510862011619333940425502932331100555121406216570216402239732185609885677359996667563682335063913886528627774431654839196626183102516693810145889619015902680129724841864988006738317795834587807134398786286335596154844811282833035175429559835195075517149384770109963496530808891038546909239745280771002235619879723849474250431736566714180463886190977536328092971639443505899860302685133818748124852803808426389763770540343536303175239528106781697801907098838061265566034175999619707221717836313584335557591976266665655786779719409178412634479575649169865676501421723599096097870205461087008750787747849742805778180659473086470284190944753812463638115400320509780268470482397653608314608100007392808668217610790673793312031783214359564137462163217269827675775346150270903544062352812770949175552382211439472135022404783615900067970671553144246269947413796569691581553380320236972448382040425006074196025466151618049796759125518690434742216759865039167782026170834053546062435610289038393062632222078131597057625612510708271651796567884733137947735439388628832498771254533249862830356901233585453038942175502095048076112588846947422175689995152124374116834574313040603809934893255644039436281806617335380875895370577307149169302136301116252014951172195793950988345810982118278302059613721481241126753895195674470009386453725094707808733585207214802032700369212300649344496130876820562444485473611002081558857618323737878100213718849182666992301374394525104041867067465394232793635519890907757655836871506605282479916003238931096131776830003285928284209343531355380494767246658969395002111632696306099437100957512384657491609166131027521222726434863430449619081660386194193455525759603495027843476322292512919641078438404214890197591491461050248333916608269644358834891648893433048109921926098104960603919268166644337921058716104628487137140448014084239040769316672616241616963285041525546243849435087531036246707769300033097854554660542234786584036316424048507113214545398350465533651188346024550977787562979996872000637914232349299249008709251606255280040763136173930270379791698703701169542455086046732408564238999150142049266636693038374201286073204631952474799302061258710983029588431756293360100097012442322660633584158495402397247589454169880369007535091283444563045530587868759157476849275842273938175146515580873771042910224285773677038549614103719648245275549294734179693757543951263903392917517203765479049221387573101215667890093281465438426691353554827089463258877927215836801834779392043727748798805026938675938145288171101039000394381459856839200671413305247266017885336487283366262078348281689709292041773384025552007818075390343792205424203876334310306927915726346173744422200922240661725856333426442649271570154329994045187395395973195163618339202757472865966275577499020466159775872682789265746407548211532179066049666462775426656063392441948327163220825604372090445614587464901986672297383663858426044854877999079678809933244688604702689702610273450191679087683167859996177335435757974682238022758100704926109923429747870714285242916250559108899514422617279551984796460607639443329992952881555497991399787544529267115400678952721921538941295418232490522732918435869555481791288033610578262956997849782758439581872786522461932877595848857408690504240959138145950898374485370181069563369237723882563863243823916553455344308844739261930164324982702735799282209537068689758549636412823231319228328416813543470967281126249175195449344566462620186468399761063904574317232413180283179864894660527999103588323648654712826796736962335747886226791919073628295270747851788493859278724313006120515328814145677510515837582889740679752419798135047775299400979215520940458136126541388208868782551103890355319750653457282149048492497513912575919894800228085648441784231408386340855032647584493681699074880094357144184889144893676982503743998551064955809648039900495005530158975472990003171312680189070905585548111172266238679990910739751265707816753253779962318329202776230568494974059111648253237985270240794636786881051775213155585034049122738387892124938645997875259497128117944560236336574190762972717177960257300147878418742779383610034729032183232871015503367316226692105689644321543631291174466753469949383039144131228144293805616932652639041408644304068508893961328723459977026377092784288638430384974871474524303233397282908627192380105438618061299127996742741990630135902077002600790055739630038810538127128360377003744219680660811128026798629397934162626961637115179245944634680681623745615034392061328158711578909246176971232410291915829172175849139685656187078229862843285907289548453351973944238036961279830804151149241607293923206940213221995314219811508681740383785621934334457798964877240563512984865084305069833077305485954355571780085444650597855607381905689337538732323186645943134343966325616548107238104837534134315793383780596659633497802156387365248916689976351661742330248424748639393854113151209776156330492266237721132524237016495748821313851320648322976906020946973263466766592872830119644319737321303978351482762856814483337014137078607354260270538363138965744977757699588907327119763515322943938886539412515824341148749695837595827249132878668681512072157524252390294780116910547889260148220720424908442341570672083132672294974896866421105591907012114834370886028766413300405815714638984800296095021554828873509139815866993655493711867423583055364356901156186242471043525231353968358565686869644054236733078712867316343482198104896329301667868051442584758837251229472770332421833327383879482809738532927956822219217404367563482392282071526306053050475834859399085980789095292964953208551589183862466253884397270815890703001956821953514707279270622950780265006263989172645509578266280360980995635516212929267628511401475571852493400819821439470770260404483328960499008803057241759834552009761900229438826262625197248082819962254373903704171869313370813675998979809894275597963816789024851616003704543921562349645669520217459187106839575373590394521195866928262384346532731185526636538317586566268728683291710487143952741169126919688343779828455689626568761673012297581393452546324442614921644672827659270465807509326485931138987124813291625812171971958968060791495893195164949670237302369287067769600207095671712568779413277542080300597480003966860853801688337797635993233059847902921396628789938145056343329266594096547957294550592458472979101728457653951947575910144046033722714059413712022954765051078951431687296886358427123166346852978159376688218219724684057708211162320372798668723208233071666003775093976158219608308406427082296816667032228745497719601340777066484251865819456305133337118421029040419163653744799338154084788607279267088301625989085052473689563990403347439750120067694977712956557867913924929573479946162007524226652854991454456604758509336886768253117015527799683871635088907781980436864912919030346368796499951910523451759842846527717857066971578900363396816335100292142590016400224613187691339819020791495652591675602546284109342213826782621902754031835197454114423587825491513325409062800892916967612115341079056583475979624597080472350573107816486746663676327316331946561911819824504984483159828212004506665870094911634887352490300270505891622514092453681567312906298885302827504558921416962989593470270625417812538575613588937347800389546906706445925538962518333546930926373191742113516088783376698474390476075566612654700725879976604687701427987208231458037709537010910385934268330164752900257149903248797036750007352061023251542098238569739685913547334328683401229800838890963500617388358599550924260410077609658018372297012832092694562776272459817173271321226974145642143548496566416180498714363726207342628937255569233720724599071441340384025492243614524152445336700097818993976785132167569574446279587008790211667551828041269597771284788776529852523136351039512870099866337452631939527142418942369960630519154385743873376444478078624461415624109873478057346083574100791490156302439514267264448714071501783096822575482395024466349776730857372850990891137354513122993701008807760296707634664186948829252251175302574738102804677927458618528441111554595967933967301510046188181893687440479430451446658223873854136294518067891337867651074144870963574456926260680329940821260631057608776874295190748924344633462961152460796565304570080782018793738991031027649938001807597588750508966554505440979586922903171824695324826653582925209395727771508663444275894295695445336643538868766022763004123188671160034940295114512456190613752931629696816703426311626208382836295229959752611735578724918429751861805220761018013159344598122311470806046783021203799436444163198185691272491735922316946508151437228847019448725331708015538567718675904800179937981383144192320880754666333767462187325976315443525579071216253444718743036692986907485216525987050051976378690496556498030781032659166284392653028871901653901311539492411729765251366399621854810944206421008458357555883458457572487696271485420261379702054875390768200720680557172766186163387208208699951837918427930980899025671105457134692051308176414579425429212034713885295649701831625057307635906453166619241734454472232407404402362973082611049886695016692991985790126095776955333015042266296535139837540179205790489038635118572878840027539089059041926372725913265683144625228132997935469411168789022089717209640656026676411536704770414154192435863593631251990456093966843376802831569648447042185530327680440455884104387309721144636379869668453742506409022182349115455033049511033637380697463756145359374492566645532965792139516180389576199333662429970918526339555879771426194669320781553494737293082527113527856353609465929307946281713096353809011514510214963805446713793904475619754713312302935025615539579603816566714759179388672891039115156594617664063755110377330499726308930342795069139297120308299876231619950731393710256624293133326104808914869415712803518785258966932152634605230628300405002060863602446671644163343480896118491087984847883679815768177608243457811585893933081923462116974398266387787891456446624410429185770956922740660887585745704759033268401187108649229725905993496537452690420927719021561405021200492625533805462840226362422094571476067004115676539922615981433533571872270134995508635906925864238803118896888677898207896480265390094522039483594151672987824357956489542292944190473072871287966893523629386333089145906948830645260693395093755830633763762391570007659657012142952447672539669797967759699542327224667194974214601903390521479456734970093847843840752971557695754341169938407863345318390789323443434466310730465502773231425652885711472933259656453240391287126292768730312506232262590746568438837679636263440857220232585190645229544966200705571544242561501194858820707161655674769437283680421268279109066214742250184548613559741402149477204475818472877107905316695365764999639507676246452191838217494344498088788695986677682056104718877117861991234914760498523243921936865358225372595025614257612726905704294427786193366073181080347677290059991895731121084409118988971914925190162295928409781958598959847016277130744794683580019482836659132122206127933306584818083662050418894009058939944631389139368524023171643888471153850762814181272018050246132621471900214354070405700871532513140387653983158576903526649929577262705548275924182975996531920362766755653918247644372811757848451152522482305378638450133899661228584969121536438173162888776364024860752660672221594310590427440582991020326273468140933539398821370483898244239504062160163997761388733903190848396115154779937022020809765723822740133460128409894932305850265376995453285781552564759307835993529440716341953789612657635383007058369007654438512675131065815382335524150927328931881014199380169845868886900212962951303104929211484149773595171510317732258011055993138657416954636153927977469733530555790344274772444598287297111796892061701784374822162308757692139788797829903849830119719498123141701717646592939480044394049053726500482757057747420181761247418478816724466572730890006360303236417977357234662014272582793455119246517728443576288134222425867059797989507401962278445513708472165860858834507662015119907666221186047653533512514603069714346148208636409065386787364538259850639770083058100658714407960162977445332808287178900597381239258339213823387052688950517979854950822211524208036050182129016975090262155491434261128364308591013805445146516920680334382714095083356022957629461162689298495211030693181596142778930884290371084100018134069398397210013783439409697420456650991171625785913501723548388661096413333720022168931176271814364640782631922057262464782871387972185273950052934751240386287058809747534787581434507404655318048018542066122468643362319525245257866827633532041851682314434488913698791451307850388343857447856070067151324877357766397590132046470559839916549248641322828556826205487588984357516293916683430045619546206446346222899977266113094461992125890857281365049670092196568002539704487426910796447305677871636772243900135100235170666156010500305310769657860452778167075402243473367503007274518470585928757662724681171289764262498752712421389548764698571174874052551012612467321822816216800163692765881643914053097885809019658338979253369247998155172334321381724537638484336233457031168234346886935649817122758406030675789888557461880993172762678351092506496593267090345609716053136111908936842481061098730775054672491025299420920723205615391059657789527456556195289667078277172745961238978779028079132481164014757766894358480512771115421731180982181162011609038172284634980866517389312515184621575335722657606462002786933905123285821753499132638261717439453329845254136432382958752449847747171440824797409465886821264668003850712303655293023960437653578768104546330802929706882051931250003752199614020354787671967924574069858290824458647460262543572644774222417807474618775709840397816607273225869352741138527937728952496326937873505656265910346058575832355498090576551366967765217142260032519286339004590714582220762788537289397261082782402418219545610741028822787438373712350553583353544605225985853922707736718275129404939867822896943238742878170895636330722081180208785797042940323920730044896873026001330396603962318592933160243662594563541928353005774362161415992137663104237122134314462964547917159056873608737725559911663923566237334211788938624667742096166595711240416939081518994026229848393736118536663472721466540510201701887504368846836164868739960498354330537059348514055121898459018647640172374778745340829176910886084752374039405709065355092878046196615157691241216416763964693291985909457750956614852970845048745071262882476349003401533466703811252489716969037582064750808054155001186645305077906254197107184137931052305638161020754201891305458631247559658180410106598590205180680733384434066745848564413402815549697556719508392760909376373222646154952109861867309093179189439890890666752336196258146684314382973432306371529341351556007067461843334946795439026373110541296822575751152462817997951316473887404283653820833757084396230559674840917783362263600479611679589352076972914663448132933440821870521051924338921394868364423308577344427141531962962004515363294753053245931003297124502212332887162079784688771856159412536060421011797219191361336571701601211292737197496970840903258422716282597773891490349415772950325591559742320241723158163279247114425541218246665112508201413320516140761499201636156887990971018256430595291573742064213019786440978826291924343771374997389111559554103536004689393069029704958102693492364825471219771666160414085940367606581907391398930290081908012978963179900846252665410860205435067312968384288761037508489860387157379414332086033020781728833790554347380514595076439887832487092648615552097920916511334452489830144020949453106638962360006032139816909527143079230656087229939040752134568358505401969907262672478509276967842913463341693752020511629546145443419317026926233208524503013417262032351593585223529398929462683733969109893535987893839259859153516321804099181243655508347526491517958049314192807719022717030943711879631038545157453055448265265195814562697277614365860549295821313956269124694423134915642803052063976710824710884793864993680538583897394696219712645367536234851218907256920787006475700123051218820503026654371874942113056165971595424857588953226640798793234549071031016395139784254350002574296201609287093672305156048475483060359592986648609362393456010407074152954785709476576002404223583441047630697662440331285643143419738444469940416875220422975609614153487137324230988035990182037184094707843134461302540647613071989267786568691093175759131274743175724735199269035292994431864264210248177665549936306834842583521053326778782225229343159520613262585791756261402779769274959704274629431544757578492019316234756144836096911078375547528493812588254236860266647216618568954506619198934734172270411004361079909371343259354891199700984890621186551751083738930618904595090261778193116855664398113056891196739442074965572647994412232963956102661444904709379024655675679697306737939627702907543999081367147218468819162656631969265615236751076798639810782184114841041812373926548914929011663733868252799665739532748719302868954688353287817491197980414425605918918965132819358490213084351577015019441917438824337407962919792118457865193415839628543206922176915114845747996855773903384166412049079671961447234936892260708083064438905534476328144899396486229949930564351287399555082500936721289819281145864615367526809359901452322611147674948237383912987742033780828543383215302846445036338012049861472382784903338334872247658626073967130691181458164801714992057941562743321963066232299638586325333313760128117833874379494932721143993270398432801489304551310455688959698264944363567672368620131881241418583688485991160353346637436128816251926031430972436464442031109807503691801043966350545884197918005641875744191597302740578426366729618983689606240511978233159514809376799496961304976737572121398024026691195757871404060687190870508640403210140512050571487015475591156131534839333513233578989971242084319351622174307144775359195183542366564401311976885128237158780657279315556066827781679047916400346446056707255473783852329558952757777313086303105147352568049848168620895924159417641476416892698508959199045471057246030383842832266394726894027946727236203987947005132732526835167910534102081198403369979738554648231941081734125595774436295734005173080826851086761135416031724652743543863056806611886611423385663068155666654200705172961472714608679908516967117847169723598699335392281922222287348333803808832870164588057764793189713377774139406873555530794661907084415838809455929828846153815622915743808604668623658885946864539054525978094797548269299630231051856485826988834629742639000274691896753340594382761301682192775037810458367375445011768803186186895534212021539287741247431893311598880247088282369890417510929517107844450376567184372508725590110893463382882289259468256046426623293269199932167955591075020515600360620702103645085693675608416059951168224518289227475032004064892024451733891500803545511869994549423498760495466788012065536080647170120040433038164566691249568193325538441300023541985466984477392871868641928062863532050510364842449405181072284737696182259293616636896904571456574227709144685115216463348907168240008898380297206769513949812746831242644681839734609243352688979832571114254927226883553454985814617123207113142049304036280014409133364050035067398051749906701845341162201252897973349956451929147357216571940631229371215398763672820013718581694112700892099817790689205197439912572188088243770938704812011419911151403061528422886737315393011520185700982598341495307501494062048219162676843982507539858410029883572174966905757507047296307359188941841383581227226112599962529431326768835965264523102271504948709471142948833664574056694049092687643771633312655331130737627363169364265865903364124885574321628852388796331668940491130644072322753515289980720179966701977775336569818201498788720783519383303832489571301224399319636200207580589439777279861739183164744204693576397635834138395027259386717666394852858361739540383252940711257475366191807552251448567426651624078873974306295583019123365919968352373873276644141508890449814983558797661203057327451184871145863246570290396413124492731940126329472662293042197951979624787036020900441878351089007814399431395601104851777991692690383115633807348668043477270919412924338035199861392317266593174519326580270947592143083627080379538733588653869075488986764268771926592108693322798721954640743233286549655812253944182417303549601809003870266868662054200533031526491506097781929782193842050939070183525076094634408427288086857784116151805045665519789458056310720757722196292346456500411502259224509481558051225311830016111744005654553218034515867261035696786992726081296473699135809861304644271925717370635507938822539659557954319545458384281293113665332945997906806215120935155789109259594052790480228214173314533416593792800463544570836164032313710216663424021041849334288953184641459553431545989054921845026553101597509542485142218639402762937573193756138243865209075761203376461755658320079864147607332438700958017217269549320490596267502661801702168679321675761323082015985883621120915915126393971143659425718940762808436382155018489680833431883149672205167455423194912302762226868913432301612811865214907932869421870102156498785999902359177215520075465825842924719381031711364603687138481482421849856734158552388583650060623041849437456556682297208637424607713385881278137318580700285025897038736368285127496640252398554455564256626858468699606217318257977157114698004287259842397738600391292923164571851877363726350922578158147958490566544364604049419995763023073449082834699689372268650437162553479701780154083433020486746815211222570425363091799130397956095490254546728241250288313774529482201882482446734552014877697536531505194995984689758876516367631025531402058061974414856594154695081216059647537224820871882546630734919038069266685795963672796278994213986554176439867323312570437652548835830369362883368728114858171502104590615837465291564251802106798528785364452807665210724102596638979754012686297513310587576653204058316078764694574414344738809895812991903151615643621176959957285625769876201169619736902379803800862798944253746624829686661031712027525246223158898330389527985089793852040016433599722289627634576367596464363789730888022120923767905037862170126450643684307606789694198543692618496916895646220073215898701046922489290706521023236868933125033238931790358649937080415069813431708295834258865340099019830967097451963456873145536072159938931875260552426221955325496361473438708309434183105161430270432971976267190930209395406230074006070847727871177586435457421318827015731018182131169984903020477155231587036594813160062847167737916625112594519173200055102697835994764777660398838654894041214762979944139485875549284472424908603832555132103327175218496780343130302460346588105805045681354794633638681056521003559394837571494426215290956112861766028084478367643470027773918206356291779626332500482207540459331078511111342406110043831747955686185227012243069906667127292874701593100013906634173073916903713972883161668511912652338651662254562651274302603299318330142039449275388857310635636573494798448644520502754275263778823423990060420192221351528610463768651894638627389873012539622789917786838582974328948762714646165590360189526816263982158873461120568098800303964760867794513075229616197015044343950569800785872097865186647114751200793837430639254319689796587990808306114524910450605394340510180126018570672249500140603108783999480766744806491988176759959105454195011511032756430295160295318014102866602448456031375422228118438539305448637114179419910134342318973234654726128072560906167078868022730477658901565777610414594271303582726298060843834313575836526221252776533838658074080418440138226053489859476454223490279175370158438305915039706093827442519097749800272308651873596371413549804900878651575255292209240735030475187773165229723122800842310378027617753575102696607861837072592814705062108137607419163887856815419769077918804537238240117846308721506431397337417331568947298385740124617070683337506135495433873126861935436577869083336992996462030707821221441490225598199974116903825099008638555305940486322141588686233599735149304977954329699364230137984329738364429471975453273808877345422940596763027935721081624314494634766576754227481433540238525842030501080759212605053284110520432863736290989511099547268816536900617867156311782003480943911681449860523061343691448080279461753115324333751039707772943366167320674016598464337155067980748475484794883274953993377923125102931980773267666421364119905571599423160179962975279967014957025726228212455191460725864273442849325732710755099069349413251032415328670003912051779403301268075883699224408697553887965396757494024701516679515392847488870533823261105339819014073774800156359486925375751833098425424977455918085303853381506034973543850250947043310401004885800931598811640152502151969448483752107674503463008730676918176946876028453637045652419906270080926211237761803956492407820445154754386704106892290930772742075424895849733519633767812760394197825201045480598712161530583353803946795397464239325059542005163316944390655314457736167029732899268942241972485294675999112225285209794077657381808177325137687037480226062459293008143192967657218619418441378256670507582034567145725162827214373577195402552154945512617966991358929886635490986033503503847443319217905910634917329633375044405891780812417718279422754720147717580190304238542322582566028932386665316256633710319807803997609052174225246370247413379905371855120754737437220747081637510574010180516363869441896077037301586059459753322300766708441994983712870049561138832481273973765315193415093640342217844585060652091688946999716346860486487297647742842036655254726012028105692346553036191648237768361934586767885532569778077700050189508871691945369532573826482791849626803145885070343910566480804911107631049197680809140559047661558044107560466744315623498943928219965608506312439340014799566554640793308564952101853025550590074705199124852670112116305799027776817042995028639253605085556063474160742181879221944432048033492180514019844806663419639661146531231718912331435519808622472476755405981205339582564762238774019397024983489602638480255907815975698700864777059757523173213400578529172272460827115282202344925936259490437658710006873335624080835478580626214597371744123137960115994627372894917179776238770982044470290857452024240578301991238502897430172257813861048390357509371693077172045654601455541899179099825274085940891986931732506641980219938717066031953042596151462534875719698388287799748764397459490676216831176756230721921609908498934580115582571890341434169842123236395931745031214233639978166356656885575065270330026130998217650624610585883330478042688946286116892965438487721839467597339073907888031750451174626292116585099426333116882301099644415176610629135905968477615062196283538709625244943861411734571427472574566378086461799279146457019072744440681716286063637601692286984858561827155773487970566536498556432085554260178943854888871605861319843477711914887275793469284850522049524431047573233701006898430793030544626087471402218883735058246652711847777022042908256494767600622731153959948604254173758155423761552915270315914252193219169091935445538303617906211308460482653743347120270781718719120581817048842675249835300772783729349692071491125942867977546503037465552048624010532222431290079685541480326789133094841213218591240999912335177132339654363430084208263511917657145164231492774261495973444261230386320171400792157146325733715324955436346323821511275227959657546568554878827929144373162587615180966746104910979864360122957436250846761314062879114360034673119495235698747731713508386173883383295264604276618433353161389093883164933846609207555153386541768396810025112128542167914202750015936320764222449891414030667615651876645454090900161903451245840700046387217061045087422195103730307377556783232411047534423600588149681215797968004698262783861150731159107085533147836003648053259305008300737714532792927379550977641437667758885536358300015087494065456747254000151450203024924019427814411214242901639612803525356740210964958381659787432039375771108888590642230792427149258986650375350195563586708126500906320006650981226580205692413976748058063136992560677477525863098866988749686693166138637495666923665163571240328762247094063032820087812426173281118743753460535596017550152665836277377451393627300656069895141937693692706898127119147975898358163844943615753472326287570830000455691318121798752811024774787503934969321787643116190871139495547775199767550433815347368025615294549317185647519320725948404226205254500428082801207108279126730570456467886006704663810794253376240127558695056079291769118479586180358956069964300533622887114628987418226085923793683361496567989828072193161436052299084679166641330459125573319158933425203455423375188080405393738528296428878448724624127101573200724827441423419723700818228134330452192384529711463104331816762605854169387143826328617513878278752175464705324241512250946083466186426054738994264388312245884349528695092749688168414439656274602426352046171041887837194122587265710471348729459565264525534897073303423684190430493320605041069421822784206703754707401297467462109436528357417321830104422235854584519014603026816170021619474426685991048243802728786304771063141313902398809366372438118670899178898542467045878581133207214050251657215431800285428899098398499002846514024214783089726235092371709520367960346874619812381058006197534899839161850130009689832172640639472103875532363711711385829118363390910231211528382804810712588519937276375264362045604119220163218283085600895469819575883534136923538870153333178969832951060999554167465809859501144995344730882813738150679091301205821934965743082521284312289607081600931870638688027069367813918907666824930091213517360221680718694393972136013764111331298297480536652403079505439976814162985284792468275449820925828270046825196531685293525298719890503194814551600719528504317019723658399498676960079186123607638698522175997662089371527895429587416717947392935334221920899847351966841870193674487174643808144801494877466749155634545451882042343569591742446315225942894707634386770301033283186346548871018593148259380662659443282722032512615729001091379665595938136735258948375165339694936081766964577720885304728824295620793567885168906920046371025191109069534361400119978939256038017396943368806819602202011808193223329505769684782116665431769706958296427746254511562311125764982870859664395171284424926902056867476650402544293710619017531561725895615707076029613972311055821655579718230062596821872843675842307607033852649521387622095906587605878693378270890067943313295945117640380132972715375499266671665327079056652114471982102627302324081231460106153581024736744871455439191103194591258946177550924293971389897157570701452301081895378895468357252326083071507673025016776553500451094065339012116185345393974944071374314844142292251044529040306512708215517132292478514413857640216223311600876036481784040844804389215376234165943024183827711264124169327671568690645474183344388621674565877374572793556271411576702061667325776849382326373006499600359748873371529076087095649490891617559076017847697069105432891123006560245479806373117599250006737651214733552850854234845583571618094068758366797308873792215299124289650081126129987272284066930949560113532590171626337093249755117815357982652999698942608592897002247822758829794870245592118326866790399915869137588899146936088147301761511213629693826022939977939258562846061510446820059255144260067062177322992016102007956904756105330647111681173245743779818846031201558166185820184680722132483018369889323588894395994261220444298576722821479734055383908907450469590977724338289200078061544820062114937826818211829694587292179950180698749823885575995564282351017351962884403774869462386722938910658971029168719901017047856640217054051903892975462035372804614376866069047532506492496271770312531365513993442190819797011136955008699989576805337381892186342526262104214702727019546609714440650053917379034636072032439410574170644058823828259509223249819325098000941909167648819061669220071368150293501239095699602656434282055137943000903594680289111230955153521949185979917481014877830576066539192231813217904454888679073001568344659593256058583884497771787286543766013330464549021960223448585353635027458292065384673676801808363301687641822289171278594073811986529234012445383617669725673997949232840403307422670535350679986314831547111644893934987737605704008441314220722228354082402859699349332178643549503318188950070298304460988933701623860551667865831838601954671216022168182130915193025249924005491257501733377030665428238821852641810499904504559037192772406577196452546569111921003215841208895369320291339442275285905240273739725641669268914368722038447506938095311124861475553948214887043586917133674623932106786140108512839319121805589803767019029198150380811974989181030776148890399749252068559610912252379326409259836306260273956376417849694211718604358305368664990814274721602775253137642143915340342573537580020407967305193704937568305373370080459126922152968256978723026906901952323468242194088970749978406102118301476543904110297785738587967264678622865497365298205620624085077456336573589656107990730494510942593131047783609173445733842897837364233535490755122415637766009579007246880409073725781618706536560883694918356819398469872026341226534100723463739483951145089889438418173874054909536114524452396292317060519218880934830276384273265180458753311722488504948778173211674649494458925002456842111778344145280263609586934681154021949355761902535129840326654646629353278917727221949752631256823459442531927751272402204743390896652412478399113367468258240766705920228483061776535538529472319413718914648073273807502932473368557853387702999105744020192085844956832751565555265258347198927677368341733279016445428217778106961331815497410719769021426601070860433231851588548304813464322377671941506031429423082184761239955895019897766123914580255002134633545334061382754968318390982188525220621636099385225450740501052279107075870737190468945035900547397369063867488010599256314727951695041333862339206428091918870255123849739815368954493234163810450168751231081520013557620026709736108688073524606225704793515964636916851986116315236249277519907184035692202205111919636593306992310476519236629792604504370940021116795700924497627885169294749106015982220892392791399938106204420915111258362026030221074778241844403342831532044022203612413815339620120986095024289017862894789810040906121485042796612122498233357472548893325945958671512281603091862173939537224861103008926235665896811327136444418140161146413788425457092961693967505281763740979217226858063491553512685806668754852931641856723356335717519213527590673350720098764433106456281210215127089415534670532978682641997037652798968995178628758986147783668274744581315221498847626399247953030299997435407337988179750278557147066985004727560843283162761249267454252128738200806078977506311602390834857276013157029108825368678435976672790713455734533458126992197087267416344879284392431118993967316092846080174384044436535189151609029056022579211176807328911370786747271218520245921733468884857842223349036256559743120785010834038404489652357871961794193228267545924803909208581760867786032686132187739545372276032692079841257151608146352842667509471068359103340670302465531201664189400547489911664954610559917416935571270482079634472454587426029932835156586577549433013700957557231210826705380120996484879845344652730421196463389959273249183912176258246932969658349493697122725558927570600219564951274957268053549939029151237538420136427054342469644007762936955482225453722825937144192528157015494566213227892633767142435979015011563342764987211548634603004046261815921026071601215123707317903004205774343931815132258427339979928569955098497034940941920354060004693893630008731656283231565672846906677121778868195778183243203138175442756562462743220035090772746176401667502924654550818447460970823108764463009804459900259646235925015956280046763635781774318759480035947578821713022479459738008881389210201078797281146546611912642842747947282830486070962755106812982730195747900989516035724643500243289853655080234877404309309472510523416987147662615437146393105931339700222250697354688094497839175992391196194658325738138900021555911171885604509342268094242548762280241446574644827397010184386337590039547992763538327862264836550650841271702065982371140065301150373136827015824593877999313142289724984969238128377260871196661261139249592899720262511891572050929537688287706668401900911679224629045522031868021881897580341928431293864835252930190048901302357362157354369942585056734541506591919296962316815099480566803945868080939958026871671321314007156178650881971843486588277528644406781138718950803446065293103528378740226703216506347392905964325160980582858364376335293232694130691469872136866568912689725922345087296244764977925473767477952868068992065495036767294449526155426735483662958392988290878273037331366176352984212653217342095103478850935781292529007050579481729447180461059383823093079451836742410884205520451374548337300872960320362646622344445941265342540215549091775660087402674442373963377177049794329739875126033228533926256540177440528921751895654542959654886892028946001259667256079369871929039081874071375642328541803532678932872739787000825451663789243540376352355971396139281298953295748510253400410862197679789252139326901232773018693555576349814185110141388038736258188720245947533776638031341756863178241896391755592350626197876501956375101777066366575744028227886477808076775527858120848198609637849730544379789368603882313047376193557842652314754187027667088604191829331553201219493485436152936403380197976083426593360669051488026664007209662062478648661830799372431720802428581926497061287532679083867474439727703106156798699833159999573639477324230076068910626096317077801942951087971182858028495238771707299696085779817253914931382736345635690672124349162673256086536059125361795249983101681588830628963427773199396908353560674243739043954720428442343962096459801697268729363719826205142922719072414286754470631728933029849942615780932859800898764688785507628348534420064467859971729146941573175243855976587686869323050348905540282933640725725075969093892621045690807872005507272082237402890972405183366437211529946534886849091409290825940696915964732064896269896070194873130878380076319067728376357542998585817347023648089278000601282294271314714832656714136430553195840974871795544257616329116882016031399200140848470248241953788598048807384562030672142143239110803860212406874518299008837027641289644128844292971470031938451601740372921797715228608515134865322930854419387276420230323123745159955542314552060670960943608436468726457880210180370339067334089601043703895250659829923929262399232147918246361981756015618675109792778858052651089491701610416705649441678617037181758961727421994219659718544950512864405028521017608855723438615870962710523477639540338902358530436508981938792069293661011063828667084652938695391287558946537122357946250233504200310335552819712889439859860497288872326833591823933998807991397929527944853767635572972800350709657168015924240647447157961636151940329589556083050170467112382186077791611634756422099087544045881878408340083121805099280095685961965913119754257640771826649813947268103341959540823573893947363452630695040622764272499729005429304938690574250193749637837088025761210776030262675843359295178739706154816523884297576248730726209582564439012545387768467713893683935566964538258001116967601745180960142282479981480758107440305295590078174855683000764091420360855559694763789170842260749804718579845355624909938184230513715193495323619768088071635583802812278462758386393638713661337308602972807538202617183604541754705230238106195909454173329080554634259047779227440669302538818732263988370461976528057532743903703424659492358841376051210498444087302664550131486211534156342715613334410645045773887123424440895536209708797694690668005082017854029028324139803762886798201139106941822589870668327532676092703708557670342682676394440430383993533165892279027659422018899482772939552822065661276330309873873910795982125309036376634645993756200471664091519668961364461718853211331201671083114706886068745657231459805901830893667282741806688793262772031512813551678467662972557992984727928996060070660551131552620143751385445428106197602992079536081139708934081042036437243498557874439664506693282388410906851882780623111354963044411881002834604446034298500676236046285636145527151420183767925579329694108401613695890715490523542830990610375036137576922947099625189388786917947342293799142459491435070487645825903420413975916936476027379571184431903529703980696923707876160889514422835041818092460693442404664573812880829797426393133959801868823723307921772859171834147019744636969764258436770163644232851422917067335032954283244923786410034719048192162241764941339852738051768346558768245459061112976423205857840240722007384325456142638254749968770409746916963910648865150271705806066499775493357563332551095009332186023221745301836429733528556309602843434704218340226686113603722146284169388593469209838541653218131783013099393708074782682066631303539699189664868007643485391591371959197716075475572617933180973644341608925937069122220376436806455407664670389789244727113292825137473013838498221376651467265545228045861685211186615282620730246786222884727141277044154797077735425711552801932333282764793564055435970786898017733698881290429880696942132611895464272406303586254797968727049905977937843914303423389254221801919186912102894068147023470764087168737081516447243672979398789688988157399283462992771041930119911978274716025644567253954524659874590069430982088649211677535949810453564789380003893862842138967752818925776211042829078463584735254888250230550196806741372613884865862403547703822973503975012907952670314178312643802088095536308460294059723403472283978996891591418753772127931635716687825250814324060910099195436336226938977952354776413860312997283004791161748016284508344799747178307745325536866798434379029523899959896300524523711111003955395372357364830518729031119899588642047483340678373178725241026813342887916510994943003426028073255531613863024196905531259965771167073809170599750568057995589339473960803937895877970297768771288653305827319878303944543106620387507886715836205679752304144619602511951990025763855256529885840596736044184914430410933240886142296032174563540395648077066059841932597337465411642351673858541450414265991358987382955276701449695895952075182606779490624977975606715549482268143648687200100549280895151175595842969732596576348733518161250373140521188194165677563777366360996302625499509604768484283339718853707785229060588408971322195373622775847834695980035940850521062666637300910010835568322388564476894572061908120682129223283403939791558638289032543997350075085743997108237110605809791316648096643059900040742358986359858415147925144601410518114183406325477449726129060485344387774172459551061403063806451812071595797222415133921041024342575043888687987907697375204788240654784698317274581969832426745197882734490931999962578612455029114863827623237607196892937446623150782967378773237146363968337172508746088815223736774658655137337293366548451370352248887753716525190903032599603207262869254319780392758292187344779895962635800260651720814767702000585237770380335608799565115115892736224971625394400319635571524317303338422183248025284178451445303702894116772732660603117850425569212431429037653915811301721032523342447014982408796041166519664079427479582813431212671665035742925638081039607295677927875838275367218646748616883832220935350578296201875314749090006681853299486690999408878786721449062642934062503907645672727534927816507439978581763571616511182781910227901041140022915104704558092251653231896080530671651495144851468897944327899860151814905596873792996481898274558470521191371796128589406650733914033550551184744306649190800790799620888488033730154136778477401282299072158002581746845068646291384156867677595016016380314880536066776794359257434779813280465187330381810272660520501019478540554452082375871263863647480973026776651418928446713726216679513711709044360703581304159172408287052947423543674512555670558562523109945562365276472094566881921618523418697442196886539457876399625421734458377855640365179371937129312722562846246831145869824579888730412353786941855182630385804329965020188098854856702789959147078059042760221610842330329216315044486065054682968089476893597767481743712128687699122228792325700372815814654888868835638116303098722394042966107934951004501754514448375461121982006838287284521191351964785066276202989310312905979975218905942821889235509754023056275363087107510197525288846467414169046480670135323006924290024348849030439857758131056901919874118546877612391078276733477244044162014244896463513692753991900962922917720692004640201507359808433025776710806558815640155491347365876626376729923607842187156998141566025617984834455483949963058076293113270985004598014970548805305140050520819343614972062860158089682181697221031913170351021216998845514895003492873414276912549602354433315411811502983944545404804334759899137116023593114258759781870832799985381509086842265139312340192665455065762941093712761206503553650238021366054724561331865894307940331528293395056151580148105068014478956736175402056910080960987390611337701225241412715643471705259686071928277000262756711154772522264250350662732012226166479356570263628591218067832498641830169033872755336490475447748385517857721580652831051851945913008627229424322979727402712516999453940037149653756230287848673094785564685159898707657406767776679532479195792276555966806932842941116810893112769361959807393044286801128582876148625915106813992518521548933812728130488745034194065697747621627184538154132268640081574231540476729602396676915074107249642573547557596258706112232747795492676429451659532810854345511042382194461514398014097564452522012432004624251349502182651393586866319528528662590346561671955274980254781053945606458935740579761063070273467551773503602328064493112316449502440021132482330702375009849183672983934092891804832232645534156950555869221038614374312222362370215802443462196347528341663002993330195042806456251732421128550768738470490741007634426581873381893631095302735081920009192615384129978025389402457665245176247725493980911233389748876556763144170365892849004621481009737697242647336674731985986961560178787417184489342246080023092863846325953350119220658588865892430863504144698359294120215416991327438796841839192760482076270193818783532478555707152483163555643065705753108013032420805833944669299299410529103206765844708781664453177397124714769122422566503260940929797617096256566825364079161712567999539858102042851261398800761149827036575271262127431682596296431834850129015531290717240415387374692837640104051563392232875836190200193125799140076425007077645988127763072039199486047239635375988190872478186880420284095091398172422175133684627330510344164198781247380775520963645998780706397753973506495122431693762840082449231639233520680634760625498324685764520420415022874411798171933196532612627673092109323090970563785480105924968468292756642341413025213245766313943787450291021811608604392051890373085652817993324219315076393402373146602445583322852048841931597842521604916092470221162471911003811417132311524705015117167509638032779706260999384276596070070420149008421427081797894366084785319577963922882526881197639627193591997128970385408724700784304590894590050017378153945471141212062995372414310413839265455666176073230327537885714893981517436346044247859765842619751133176205968498175652424107632516872983424983366025482094533450312276796725946367186516202149248383759727794809627212315976206068723601061809626347084670772363400672054373335083645355305221100737880325619705462332937129664764291344949724837103291741979388524654367841872858276417194612578341666786977326142341460691123647278501927754207482304198399692171100271635416830860325593195088758738911902800286501611267841044732325816937887882696867892557803498635475362763776840619330483614174532598415572432814179943886101700904946509623754796695910545165421422573680159255499851687088160056099510870577519303609255578830087332786251732984656361641599440784005610682536451367649656785827389046144851201178037508203425704952994606071649275640436217450375390638927686319386124315992315960475769248421584291608646819506039118382068310654198809436960738765730804063050870418136383481372094449351230322633612185114372806284345849729826767462155957716397187650468916329563903501733016309053807924585145329475861001793460590051265017405951933235708072622167891888765293895199136221231441892493507180944283887832348916593839410392621572660591386624973481125056166282405286108947657013348159057356099445551458374526525957371714879365628076593519730837296447854532648645447697834630191113483750792610357821287160476536092668946860273519767083979192846393025694144774944656030831419331583761943894526663928487614811312292658355957052568416070290260415812272160398680665607029894927965886229793880260510353193184128445739141439447089035877663637004391049978508442693700281883302376346694182183841155633582435103233620678245567396962418734621831730797506043892361622430388807759563020748177274608913847783532022191314604904514090859926283790596699312213808139080033404799427528515952104235937621563060955920862273554606224940539985434832639893967894346631337239431492048843030052442597998556876883702577721426376230755935366043576883305994101500842699100113214491937924954978880026948136740650690072725537281662086954937454557655871476295813541488141451917847494120902417335414664611554861481836398790361236918089513728745647843010442875955811000316081056725430398252077154431670417084641994101391483195586604267892048802730202565998327826873568054251313631813349908009731703050758803187041555122806509931531457926887177519549064958767692663659551206431783282475461534705214372766640035348618850321325912358817368060193421678194720548601801303379255898920730610068128312181383387980205359508101850376735726984843724932315931932841025934986576807252713164864889113985795175412956322830730115790537745254172324108428039767006095873805681232355871789496263803381089463970352897851878941604697639852583973407908562176112557128192329354967505378341779353535152856618076828869950030109079230320535588571985513276829372363451726730534510854898741766302414360092398268490468169458921734840462852054944606835074241661107999927692134184711231834423122914423964372971752361298317596223878497749607880026345704276510573411800723204650427900004636177339218444076062648995935364178097966383830455118788869924210295875834117558347791482155273430083154096803811760913824473944684280842532748495218918937125232422956230288098361864442959995510882169688178620564103825745419188169290267296789790887490210826669306897265735202715788598452184878044449620677772187938576068084547129475113383077367511327258241376428119453461217273904152588521575319761436755484739705856206941954360850925577535291058198019910244716487906822741975725484650916375874869240124297088697798163682454497130650578139348148926637489402829113668231184120534086894180617721494341142531147990593593884711397559673783807015342890623816709705928065220568013990226425147506878484473832499204465072380864175566577237885202147695129264367219504787864453341516329435061392853948887634189473190280390899851368691090387997823037580825332750716731923863908962303118190861006536035006469415643207661405109077411620344897003531380890998311401490315030301610655042806754082711236000916603169704060763711178986592554131073245445564549336023848202274715797831255793817764663323100574482324348109998080607388717313692861933882693458330377567461173553220524967162844449876781154309157979144744762042808718992823220447969090208161433668954815148142555991332589985125626385966126985902091051168183595829740233371494181022598642193318255929173984707403418242420293870489530313295930099750164765839098314553510394377259404632668183797720146313479895629042678102612893502770021544418010730792366245584943841282723927953691519653547618163003585887040239779176377513855795505186500182279458545756618518302273489440762325436399978236561701335489920803944891509036702912697844944818233458435829940072606892652434051094773501266391949820515069508700724779540726876962337495886819426882000116993074652373206135535976197311876833662394490687526103413634257839888818919908955236721028399812079641017865777975403159768402507926835344615964083992925384746447200123640512141920652851703566704451924159033549312176036983371458184053782645046966682870036032470544198074773930961460061938816543645400372683571521785637205879513375312307055138082453300032959113460251469044260429268782879454228749047154295864384116362143247928737725053403043410855430807468183097396749900743320927136542040725534158610371278789277678221015002799263199273210325658461548864001646561878185472068883059814947147728543297292110890552474046543885080521549151598924980238895534447745920483045236936129921619955732155814291920995884509476677352321958132646856760483623168197940943029259133026159445431394968714055322287921367266550447254161965190990676157202718425409526854498597287611545616270391866530309644312934198081951566081943694774723193561646210414865714687622287234917162497966996381663168335668200008648837412475699102325878399408369479996723746250829832676274949564547204706345746655906826151947375742407807205655381371265996794324076952309994025466838669929236480622542268378691172280850848582257823893269912848280434272501388208303041191779520077953371665913302556900567596163678630746396643360528267559021774374956531431705740529715056930679954278801366714166345538916269411953793711001325893515309405638513466316062026043097201591384987062718933828450358108016375260752531049528616236159205379975497417994974808353036726901942341178743162775648351512410463245979847125707472266970633107241163453528169013788719656300363714350038296261110415510410390089997200958218747144288260678669568843028684828357945845795462464672987235501201122995692851172170600285763507356918960728987647600545003080345703230766270700976737103941296291970030391771215697613623798875089616213310963310472305876969206375733266174464684018508593501378397377659985159939175925353333989275152782306296978648939478281013521029716407794919644538586173831123412457322359377601339505422496936010703215481285768651046917577380894356202615247353588470951533144370646907533902015263940242137662226949871719493219665960786243458463278665380741628848784978979827293340313749745194864947551157596308852888507179114325737976533330508840677528649618967550722594409757528370726883266874383799689804172124361812648226590697643735675588007248722006192451950561038019768657268068396849068869943230136269875826297338157153521122535957257043980569792015889622089550939954299805974433107254050936022005341411804840311679923468561510447475475986576555335743239967581154952569072989565047383495485655286259013780078965589579692618212275090905048526749112378996678789129362280163249830569644985992533611778020628254988633213223394509085115551795771251703445404845634871489906796122091880762088059093187557714345492855864707134544444387276787799646113214354795495190560661905287855829350341874291922292025028822365050178802401337647620918690283366417942373248371832540435832884371689420337260479453902356005849402733491650917922957590690098445972950608972458463154240998451136103894032441868593804150268761367733578402235388821288144175638726387220487962834544863918480900081353897964292265543434552283447784516102180743229777022506277242788762867584162162273156946422253644567062891781728137787488131544006943583786395437065930426842656265431176738470665575887686499295228830492916220272315206264798570453846215002169164973990826251413087624581456008626947853384025069515580010965225514979567399844871089301525171306579890478696224761126442708017538951100891967556781996714513585994406101094162255276343637612326611765631342285564833418567578642113526414368311048611251432926130793286216582330345267885930484924347007651227207908378595377680782515212751157225700782985231427280367515878206084453099518749976543818966872373263049927861880637492652622260775068806203298649702472741946238942269150501117780627997997903485026237886954991482517827471410500271457442010741685649734742227582133354820887741945310270944920537991525783217520353986016334116458229975592006583615083580565738896146047415734648381902564094950405663868422005942149591874470807896873079450741204645230039344198669598168249798188630190296779152683547521188655927411512859450771497471192816384691672911836349861829580033143348938912824427269648618492791743103004424573037926352472727241144530191667985308909502940670165344657757656408696336678706696188312643077088466932281458180591958977827485798146070419960178608409555321582999958508680703028384681305062177986358561697969495171566330625419074023414842129147067198049167054817527069557656310702301046130390502816159566757461001272410953228246177582006414139186823977070633293899975722588770232516629284631151653360710139576442752136187846450920334857160479840330223431021485703931232856307803029839782596102929019915090817386113267288040182845088386389181098643178790006582211185620504417432692656011528688664087451660282341049721531340039097782498675867078089258220410476150977467888903764388672301861590327935361448734273008051213826868266563872430668927290661369571960165144026080460548930900450907097259002298192112772056395492954056918860710185546772695673248731865284832714126060134672589208531553373261193972631068782009017428602417493915967147916480911872140141090069603510575051475888670198026497405957206034248658429777720799901934314905959806671700364614815113305359808728063527175581495472370200771938990323974192106614186902907818860741061913495319861585781395481023932167499819002975151320159799295236179469380011256135900615449400872850628657772263200221947393320864149567915467904725233102620423648884862776661486945596827554048103917705550096918092616941065788027137843963635766861194089354514843848431327378006044368900324248866873878209257365849156900590670183821618776732540808935856530926280323093611897825865089472635709028896328128508747096405734738110755816931112818245435732676204547763380164174696608758970097078072366650173818964583017966705099571436670158090930455753148069979873052909247786726885912509929833955521766890999439472206394762014268696841268067703115621914410827655559992267133175193326244736326220737703333238814506151786631588295714906069712330167483230602450067002045490584337239294268110172691732966124306008978788590185875980316088374785973843233455158832652585696165838274872958063708787536342376812390079993697390239600839064513116778756271342640579179440309838886733959189690398548650233571081763763743222639436293301799495129997344499532544862262413115291919937622637516465937259742496482642787085546195152657891560769290285311612786926969265604360465309548637624022582878583085768364836667844290020194979533267796843175338434343154469325747326166815572520610673509721374891779807893365385157079458092090866003408177318949005031646473404255163180852966430327324486571042954523027293957738708957878398973693816007608784620554872702953211492558636566091169878497104047397288750548582408537371212502389927304382143144643692430157212744003289474773549521146713970413675600973499208074731651781548153752796802591103851352414595810869603564115226901972821233942650972025381657705530604108578032194309733982410337685880332803444643703385585263074285238653141122015826653479099389076486985368992731340229121368472800135720070080652037503593022902386336822024843652747042074657264682917313594323247287701569902253094276443641400261857278954847162715337681473156682543354927691820853870898453944264127641126761177953608110820028625746011974655137428150759490532834742424135697148408550023578437125483961804997888343485112140000910956382460203158510632101972827938683540607056220396209045146696893574590836368121321625473343553122902012039530453964695309503029076585310008417002803299253285039509698677456697106650794669048216791327360602379559016992838471621069762078098410626291858824811723324651573044791825960542828258325963538651848162249539737582269782743728141481304832280084924127704144911492998339933289082848262974275769037515090834935022200424110232884952095153574950458077678081750066166359286377065561007846714540706778607888570518553463011582549072383326263406270613151033654384353092246721714023390468213877337951254400159482100495289901599823076643432835750509945144942626087091415956191989813378454944399640266336860240365993608867733519676194656254542828583736068872423881868377860101399626276697390434718841215291821403419306462618762259646881769767218576096889977613614575994263519723987192773777532513647819242601046571128968280445674892408872152957165373256824492711274847119057206902583984916541654844585265111603700866450864730801097029355050632450213575792261709753005548075725589559479614657893143562929000624824847776368714946914077803895182163297092699153018536939909212753145623049128916142292977439113338064300832966044979272547263489865871360436358702860647560237230265543735752678133876594487904966976423502667229690000088923655203942709594955954906371304494999685065958799263659247688526183816226711492741239036442706099913194378502925407023598534294820391252899405485745925886226552525440361015856294976645416312111213626508250356588882236517296510918078177597945326157430088379425461449344424357377881835049146079675631793293221731710454141356381992856148259986659720372696335248941788708902997531628440893340425685745815642006601984472877773432455692130292990673415616427156978299109389823824096372985314795960107264547296213423988775471352941698628019328415365361784887744554822866848069406141758227541075898100121720303006468814685619958240227640322882603133377229616531004069316400016749970778314545156389031353569123578647897306252644281292449178714969659813039633994560045936362264151925084169756304215176744007661265518595852821862156452359361015067835253428280772481571150914489878298175801395960415592135110316653121845917294920108361876399064793876440306881258005480472025964926221703566788165205011365472722007976531403803044808985048188297701303156442041839922596396142334278343314375758933366623234234327611983590790471897798822888484083316241206981655274252440000651540427009285722290223655769471277805445189395330349270589061664864959991848686455646757323086417051281766571884500351860305281456209991462751476797602483250695454476769123029559722347837457989817093650387986562322332380201844629821729896764049068750967439011722753857380286749760888533380270170161647669604336789753169310772448235631787355808717960161412938924639973986989597022575713897268829373751408771777560560781811012443658370648107488093236135659857825772411846753968568676341003405994260811152773089089700593283632156341468632457746112305866174683499226054687943935806206933867386421043578239010735741357422849520990456000929708834287364008179447358313198429077723749470770568299291712908037645063907110960537993268968581482272997771374955346269193445534573950628117998817374671078630737741915441129206346056496429951151295796470897914982222743399676558705184306924558441807716062819153914338073016825774096058702232336341419186991658452472013276567334749517409183040810301712456433848571103710339921656311586991709487330808253701839678239113641282357817492887210449766207213355744414999154744465675047146855640955211542448525640289716798546727478213758235685852331311902968904787207413924163350008963014415608178065641104182657092221249872212074433908804202121192241247217357910345087817918278134021275138152601925298685009876370572841897555811599284909869786696410431302584171685512939541010526384758320341796930471274489829950856808708591361676731174491533031625893146051113926647902755156507338644803328098423442108859407955099589446195042113894190439782589861519161278736075645049043229001993623765517332765159401101652141643782297224231124119372406225446863263148443492667866505902568377637641807174567204009864330733635172438240131635821013627049501373313040723969356460495807497154015398879142094529818526935496634104025030855204490858592392921542697963547740958476174904523374445453718867116423532352104371943841749897749384575113820712178194347874126930546737072992642911643771430563564594113254674928413605032904355073036220200706879918385095500585631369132815899099162828697459271509313900524347099479601921731488423542232619299385323507896518933025449083033573382479496712308668436068004748085304674136288466105990791887408605702047021025475006452910481745200513156033450426029379160808551427993434171862374728158857358243356521968757520846408732690623672501875290930431997665637151406009878411901099361083984579932172832582466864459460947507792643773130987504868372016593776934585190305071704594933911404710172384373837035493126647178171687374509215457747566953732138661749744215874207968008312780689962618372263112119571295649948806304996581621591656258890553837739955753088957890667311931292365524459707302538529619504592839346604585396202453954791426056097684139044804882922462218375838953014424441349420998670326219241287038236288884354102004800761064475202541004463607276251283280543520117148918729635013634804279750649158067155826176363205454320514253730408353349972400438013961330629831146774746524799815364876160500391158672075117899131922072713104393219952943307362105316091047827809052738278752812446122385562102945419434637850030354690259147958102798808046347118859475734811379637642776281475926510513973739498888868036520350665812254879787188069255802230127164912583474287384297845830240126680599182014713013503379044581895868327870419419277702694309155009376505303123608695715489298588869531306243020833210191274030712348893666740992623274904554865010933745471697051960844496953704472034012758258867751359043013343997139605682689994745336882061413720386450537489079624076226311511789740554417125672528484381606478745005489920263483819756393590658167555414365360738415996220196054764615931538342152503079843762839501547287052110106615904854588136797025802019844273364832599428628857567068801775616459250808983076126199461776414075123652682034737794703241821907857726754109124833022052492417735176760053486907299987121216944548422608536106328170812679089479822733570857950436235427539021660582428259016129014721978487219776742493174019148357274924266040159348549893237794718867082143857867634852124144767198378559298021147916780730027995055693748905118332939609631126298945240899117882547652823721626622036862241188560978344481119776207999182183091044966041689942547776032872427259690806937236918630867960680551908633141188719329375945447487191380278916945097430265828018837791714661607714670545385499840381165344549348692155170244385775018464802178854709726381289680107339513851096624983157377668391942961224373910128498998424608870180559347273002850515023119905543790534311916235114503617059062797828612669864855525629579457964690702474468529126909190979958926263304501445537166618356553597802983863960733713162194485788599003678951919831693662749483376418247296003401650112033164451721168628292618161937194840512983575089430244849650716514793994895499211107790482812092743034708245520099445385185917977415557741343779815507491050934849759499487203551734229636018438391562899360430655998695063617366687195803882631785179212211892870597032225441587506630562711632830972041104928776364475168499567281011051904182304294942604098120076483460745947633961278642910263062300717456171248535262259814650009945864297211285082869434994367063225292912203172406267976755955667188008460300447777548882842572073022555451929980834243087120700494821619515019990447345019090186919976115122377271849938360693277093074431310900427910034323948614290002760769519139611180934033607569663645630154617599238847252544540237524905092890167236228641249645841747819312531519428517040917429954345197070610678852095393854104669171320675325075718522681440642692833445718609291023953041941682605668605401386048702660007512192497450980474058479215049183364444624487637520098896832423034387853089584522444744936865735266806504279470331045355807771449397911285836485808277898054989330298438944028653951600817054427328799854540209419974484303242159540666450099477970261491946827169464943826676500181423981990575700144982150020043064419644598288939836938275370348786597107776043075956826972512461627438620879304094740121262398271362437323987352543677941480298240408473664928656686068831495304931074144277758198114508515027596988856297324940027771743841793640485987424831852793894747393703833537038724045053005641977892371659014672486711429924440937594115729902238890322749970960376194126737808421693366956697737597677843721474755192669049462261687849845299063356463250484854622023590201817578678133762590864233987233326867938855711921134980436702783466052034119961619135438621764367030855396119472254373400370397406332326335877041445834021318500164237923586670104782455351647909167222959419715676888549835314804588260432374195704718573828410691384281818374043615311811393570042802904068312960308369415507828349767275022304638398081826467198782916805004011754226236171155232941807542079873495791303989973105564993689294199562851717963855124126319211497500128556829193118029369684207397922126347498646923814820608263235235525384026129969449228795227603999412976240973197170514298638603085135470921915249465631470851098508924372284956177342632068315014162470725562304222398522778029281847952196416528292394624882280466371847132864538352733562921446562951718746563005297746905505427371937377822221513878110697272789687784121841798980569436803443698950873648715814226531791884763338754289532676385732060603219913630141691188060981901451689903540343587489237846204201973029729215267909846587153685939632175276411106147078706058370516632271005251096919356684542168289599414848012735675157581509175278739405414801466429479957355558203139235689929006123628366782732716831233764657879520369272870959657333134265767180531089073637269763291531480974573683005881231974229603286330701636355473168219251534090351087919038365749609925683185793851289781902585822507848591083723706538361834084014754683876220353328511733017896648982315826779423302898040602995640477378904713724021958310292969218122215992233533237616085695880862391026728270637356871277937375081411412241420248390301387717718285715381062525347942194260104617005777660249931144999867361095640440523650265083496993631931113416199967898592930600751290964577049593748033850085474019681201505251692444550630342568658658184148542132584508074502180122450559788787409326671754641287301846008686884729329394130060959200698478540015870448271079897777804496914977137732549629412416738971387229020637283969637317038875479594529268953550126693116083721972877317775259802288145009533653423881682864766365725903974570586399606503010159143098443904779156293091541448029162982120211521533707595411218020515401955158684515724648363870851603716200970460367771422443572925889431975229161001861529317657694064601672095785284712990057911581207557454065237318694610442785692384607037759121980529374023447559272495291452074314845220110683106284123819081814075235606884780930710289972102336905423448845639792988697298075045812615659260996172256282323775126207471016697713920481847095131649544193807574006081924187190451196895036707529442659748543391955246214091077457469306489736055922541122841196127837683218774420320949923681273177776294442604617163004251550584837378715888600575213929909134328161294475613660683467859684669763260177511685389920616483140395227711399025746375337114277123109342109367826977802957099797270451831237514608494649124175413693249234362243481344097800914613661863794697575549141605731461378900734802409817095648814623506447041362255613771495827675349142368535643663493220076814144694811241833554477942868946410463152837619874420035982210530866183000107894325027327214326201240289851920770130425159917469510811361205237906377630928185996955150769658749568811229590899962778052152796021421968884302143666751846380367956661704182273790121991495908073652518817933334628104608854509530389463196355642557824342963263770741397508138247286882314537731683344496219816215819129947187498990157181746553657915926513116010065398175309909906556488405277835117859677120450668433171388493793212003801083131308102235406714152834367931225326099858847596948138250859302965946431408906240101164679855246881028456696302281907481328154170107408504843664142081134021988360500226200255086240713417296487876753007861202649671614411554653260261144276772413789661227749576439721244562816742567022994011863209218527201779431904920742720375402912397700106032611787956798769557785401598570377291037122737876076398028475176632268122254867348837854675264002101077623979577878044604289722600866103895739269184311704038359730493587914718648897876679757430613926448107597653244542003603422403216266226803874867636763972982207916534336378796959872413678340230634411908365475239430367917285933722688039054974784732890563106424727601781484215802375794098770235612610477002284823067753105236877139860792926316262518464170783730447795342520841182247521256520773526593011084541753924540048037432749695083249481859846599194208660284721907204622807474896361094931859588412803453115465641020584754126507939513145348948158326397235635278809778066101996385179187013894310350263747868448779006791053020945551171042296701785395616191980032201267101622369478548515215788381247832431117233503491730668024512168186477490128973268591451550730812630843434085637219377542149851652715708680657841254720812444055324056933030238807462933295723970320198493885995086674026062993169737290771297042572828197464787116108081021941705832965792774018094400449055874266522988592079723082967444280738890830735683794321987279038700499801975212997145417958728085072920410319380464209427231537723148310732237799034032105812648012734027315624376026597389716466214196238606336119657345039471054918965856062856041616905327186059286751815828494476088258472760594740971752178036333810312572520818495560312231269650148170516163470121818865282405045574517070636707605343244330992368915343833292130852762089104571720387108141135346908412947538248743635455125292173123431660040568126299300428294415079390289595957568770803737851954576196843690603152332272532452165619258753589817460138963485539735192775772508508029379261668181281763600705163249566000057162731832529795084449333359641989155960061663898015402768429640529154626365072751505546840496865009952730443598516124249110080517939320047753940590153972160756490948227538585100865171529672443829803577904694969062601949961334743195234526264477348860543898744456469788126334638854092968860884005832321540478848540613363303196594600191825923420752304212395751597494470148801916393443859952870336622893503822186860134330896472213493762214663213551600327734279209834948846769230489255944950256881882440911218726300664863088639239011601463621505517000003481803153193972665102216995869893962377934934967335709739032361818966361301092102950574058741211539609146078746308270742805641653257269229305248466734479222153276992426107550452363260028775505672252544816303453526104409994180866011007367466645294134636487046975469111232120050121553925434931547905949178457503469695175770098065044671356819794781303859520577254300835796601798744222110152743536403815042814370572600257957276666485439478661827132418554812533885112815143205815055068997267278333826760196292872802707914237834541788632740911546967508917137610533242616170990275815299423272474205902261246122048644197592273463384778342319091019027810033100264121266567190036421859844955050774965795252120245318890180366900755991404785037013370008121435487268070061534682177259013921590508817958722426569503034670366360546184645265334353189890420256678543540679860232271720041026423130590689572084851561706074335295211882950736202637029439570039036337141998064615634452045571513809540362803203125521883147967546591964431494348318408455390591375456636511736099413022037348689237883358459753139161185460238792417817581640167978308058110817453803099083619393800361783341917439990711343741887471314392458194457399654850951975506617197575026346730157932428920782817368549307704268056325525196723658679616536938884848514591092195954577869457547771576055179992182075232592830631932978383329621105341810397609152627646748386249785456011152364919200026732034854398051857644780068286509812306533458826171651363515884246776104027006031821758121800849095447053070257957461509932658770879890872054372759954212021931167385111817464102649046219315434170147851359846409733080729613512946898859586050025290902838162151997479554702475955246085717691117900258221026858192781208522554526106425676134255307747063679843520435731390795672068550037999671248250789859514293506719588948981125777142181709672468627635894946823852456155888786034397950161996197219637232040355993656058290891653419654183609543426005425016505677575896389793780015627938377186924596614271260456060332087254289828839959472873268124424206519914412155260267120955275877472671083751380399339555796055690523083554738289503285192783425672337084521033650897791151731060918538233672155435162643946611508354224357136518053910464182361782878115431584392458724044900932130146465483204554791817504286222745584067173359593494960814576378898924839354900392989853590228832635695940996713963399343124537626416534126178639440832399196041882747759909463087494394727638669335357091236443486632390123500869038771662989379248654519491117026578705388771136337055704141191333884838167290269751081404742182389056254960860773410751067953029721982368743454134345414389916157566403932751728344487023077677085925264091518662466879781661251390694004737665734851380920853106979461565740218774432290235390639296576827307905457188739533366892101011413038555768104665219509610658756862285311373521870701629934355766280414761919152348241203430396952674373109529710860866060119736642202933013713309837836059811552451934317398338856381109237472365928413114992364586163874617428739621117697418764340332156025379987222586754329262068082833900992361225628233474996250266239093584542917003352117506454375252653918382311349927952545070844959830262889227134827172146635319628791267759763571584886622346292659164679624061051980451474065842549117331071186572769434189685046133496442279729453786180362996702250118441349848920005791619959374822423288648466516145489979600307555338577861381939068160236781448731425541219899652327726432631281289232164653443092309781002917227135566318436856609362056481858737619554921510956470230053592623978242312555142752784554862008609008410423372279923119253020817494200012375016585266895355338225510254681015224655460743597180880922136985440530845872430408341252690169207564874684184424572570183730409266887439589486598879180067853767941311401053210355541437545407991447241700281687375692244396244063646008496890670571560633681092614792985272595433286439899401753016344363254688041955428693645492605084174294302545649421016558422343648479776156492993866891858742715943172522083957287066483877224296291177867921562079514046847351330161889058758723475378091637546405554186110794809233968222052072797985208307552531028328822658010230473869792767771651294728722056199605093789487866709606867055942324683559310321349532295597525198946687632291027481058384165019844831576970596498056750288547415822649656841175939157377958282486975049928044973415797677239130927879677142065191031219998723661965434208918370739154624538660174018149849938958019341169830125647039102838510016658387547065112080638460711311447971742151374462824970838219439402864781625464946974203662366117897615792019483751912356859081192233792802249910297222725176858553324826418668533432822527796434978774860278069049390707094565967484007394394718645597625914563406902402453746381347634784942211061447942814255777984978025550087027009682457459482497218801636736096636982925115447609419491398109773240924598326609589145145894696533862405453199374146471692990142304283102808555789980181199707930131684193236926562535475377802354451154672448843027374813209114420563244300844685664964376927115911830907192411124517635644533021763251548645262063462545614840885191892359460367547604836115521678150716307561035963067103754893647165025646164206441309669097727168115074650342709468012231421837724946819255572291286373997612253569449154095685129836843997265937617705607346396839076267204732951905784804019090903633749883103265785337462190044169409900343803700474502013847809840344512696168768904526968876261456937876606515641741000938692003871444966712088862350145007823133185008506788764280210692453374923596502163138779657257821343693745189775014035989669342687766361053527224845216049674922372478072849944164889003343104688403040168732861869409975629903636436464513704726284897965178829958968046313501008468739857577683976670243692868849432648315267459053810860782071887521411709532323419437475687787157172815379390921325341096183554994127379829293282746277073190236080457764485290979496444481912568801445481274362230438992393199031479689469472646549423067242103943571969957553471275968888271667253492986677375032003492401474903574869277351251529944781925067362093339597215910255377755129029452996916329185293331013506770225042619482407194642584137626862699537410955594674626779521651131701657197438346200086899069507399614675974728193282320887700205066713670786664264816627720938721596339368687132696886162894523749334202136103660180264637122904783321164520373767206505764864620889542252054431555989005018194333711597559949218101302026733465696437121276142765141801812614992921664015184298278446764808799186203641496857952153486690712469697824923995486398841314905906170794053580662694674168950078186021747746759813939160324462495985125621255962270346552782135930631115270360321707687018960221199329428302889693883777745843139245776035093339369706220346697738542028109835612857978496751258623441670915164787623437090463163471307964362564454704426228515881193799605576377004940629447046091551104637424051162431595327226710542989165267741138821670072159692313677988424786596602469939641231418446756629986561564885684260562532402804033099849085462795765398408790643712163091805656694888393481408667531528204129312062909724701450607422005274536276190640774048374624419492919611934718522539589146995853567032270853830838956584426503532648965847838085422465167388439096321955200393847780759182886257573390545027513807517546987955808046582019231338910399030046750300404283090028063248175255649031104242362288287270219131140736594407173283823443141632317354244349981266275201269865966176795902549597910763898766609241679512910203939646701457352616546587409862958367541444382559910474817419353693563643637779735415249339018762656686728343818395247691025507003043070915160069669482225205280384153066351083698045216367732257027067102920958040533210644611158339818579353038169492821887988578459799107199076511021946178224187134578490666703040066624539491184592666356536101466425716716017217777172715089869889628215093107694212768854759632158980477389230507328826414648741292888578615305532780593338434148498012771521252136799150639988090824633370568878105350958693022266296763079879363202121526253954469177291563921237570549260494067045885660608658720342227623317176131892261764956398143601452372648897522426130636590783377889087825715561515564348942624120398208829622242832157134787234762468408576897274282172028464654844493668588345445065449625019743869216353207512897730768555567039835435163738619512070081920202690057974182755684077978892986224080894369018938201619579564843875518323784785362801428208709772646774626413545233170367712202847876122837409082372535679797107345641374667403944419091297771512497430016766455424197002793082744330498990334137362786853584333860504889797371993599676729712507783085370695198762941614358705242037390434912424642113361033877633056908279785870789807486351937261882889583951969699123237891550674096365016186423622266604668628060279956393367101133047720524859469849250292403077130596670272534998850705117216839238810098620612968923970711740041707542795435577054242976962782221409096294768312311613742941897340490977290521086719047717195074844423163873796615309967292794959261616568111766052275398579603810063703737186478481378950682997400873294877664408146290453362889601725772098789499044125008623342787523527664908775388238300968069548033542813110698791993547979972524432329827763736622887903910069258388304267403132827905516572475945481564407373898123056543746292231252543471143875991980187570669316403262701932624677221701629286575651787234436567051262908170429188390841809831550438500574339044071682213545646267517447764457640413197011167272357164859694736764931123850014499597425883232533141084467653672693060608482659478742663366510502193312697264996720999909460979324305137356058564307370433311654116251933074862314619134580874831790768928364881068762821983841484874686485556994517511708810023331883288640664390297713026549815915861120138254684254626835358731463567945640203539112116782864753969340204385005638685163562074127757044652270527292386209315974219967435226472148005123790582960697455913943117453091268497553427952443208265563376806003997658403717185309475143026066802126328179573925871083571951929875451043520020436522814993569720437807028874275239590255787482922793501144576303619568399033041734119622507294842566223595677640652840824185973403388332835191067197670589251901986923945234405804253951268050870537049641131862964436509647450382943981586094304561785851305306779282565985204664549957676615601855327308906678461319752719934370935074661530190554023403630600468809077363037849154404552577506085096906203952589607055538030776886983047272966012710775798365410512936285910999562946836499198726991120240783964001038197447054694693662038869343916819096222189487182650878009996433034487435951472154212385553015403432031695390003281173585231907389361221906404500965505233583749516248816810030142885281003073997535097613437666238144756820518927985840264593806087476721710275947517164248375647614160279160217260906092311245650212009172187532399955896542738144764240907887211112751863815287881596039269790900146732354972875343660420382227172607144855266989310322732058544717406398653419118531444401606870121437843547974732811226603335135283013812804953573645588421830242274380922138060264530376507747506364565069583275539226018213551248258401039343507559673371899556785482599330895412215478662048240406277038648843890469421439972382686150633741814149560460704624062217250237328612625923375376124877749101620640404685974958915530364858901591294233266300690704646666922266005380621324321031739027850287590093139143287710052498652783244362622414476666121291576097687820026968206940645257133667266686510332148160518030875067600931660813536876223193200314805961355623095839787380503010933860612907165208919923754189137755744141975930817845905158412908009345575716834478233536807126561738033829452883436225874942115282184951264868935844673076804403342130181260438351357427581281385464063627700069432641045657469923555180189984014061325107296005978368657673577727206433548251284675166107141409522048626920771289435687595587115682278629707395436473722189809816987046493165337895266461860989872899758917074247157698596415360687076214725345901763037669810303912097809207583078838079577421123824996126616889034032420357679465869001940570175478198674901706838699773014082724092500188940995383686763011110071306129290766928248505326776673296753107723388084240831274275168952245190765824499213043424736446217225620280726979769423154615276908093178461960141977524026987228046134340550583144943325172456104169563257559669484394176211274487777509616563197881943944978248592492620184049029221435694258449147123024363949132799309668682729384813661368329945309158739334686078054178892387147954118036367250601661929575285470106509490032719788711317592097337232309266105258361007425320506697894135489162382887721367862081100201704984924923418834764742183552582148506577468943357427996874737274337678865698116097161648431306482822206111889372151386697259748176393477467584485851867102811184536213907933055269565370446241589514081950404548577887703336307644446222280101794872431330584913375807740472365515977990856100326098289238493140336911763594110162586304064613807356539134065098887350880941645034828276390891990192142052371065215766419604227512301397875880322657121821742260317251664308274872819722187831043275612707681154534798663962100817038036980893868468074684715495943445321931265077799463976900420802336863019027322634304104931863353941488987569964460997008447405336170418095187674498147716587483269538014978379763388988130414143133257401885274776105843301827695118005826778951902347293463398214090237384100128027787297323725073678875993918636243241937920575141754104924230739904816003246989644649354912120700193950904555843287460793172931828641916334722311784307310946517994795752938967826214469658208932669411389069251945914941967927877007706172911911114074612914139897396634207131319713081843790508160041675245573450188509001076317048025322479352730531726638224076928479136928721054276620478661608418461265403026134504282937381701888772128197302085663486796636437641961175054845474142282355123900063216517597577572517826216533181550424159973126548303617783071260513340264205465892831066889696028507176459923732033503817779392731009117185343575423767755555037491414714648104470134891927518660884650016891061983513760991518909526892804237585146634207364081697734703624985809392311822125267672510776411354174624372376020515663740494793265216746234398662422173351006312141457831255253112143175760801959896377492647326068155770803739473157710608046063955629220738699021275430366734999250315383808092924251916442263190983525252160228206307023741360607715459594876147791516423978745979278498797442256259907876697053694805836069681588671317783955131869100165590870328479744854454282641340837708197999397701470758485988769753048554679173854656252047238703701682314454741653409735020394985557349162227171982093203766852298382692573038610214258661643194478675850499055365942889221868260176032528272952272713039013595810541168601610551473581115944707483821438578760857160084855322923880561619842393175858053833182212520799066843603943298753478793576714296407971045196405118065320436433316253232062502062042990375512643615837927010866666389130386228634942956997724392537412172407473915391339716612199261304775227288310716825523169660584730898768840366574790744640495179597729527589662613020750655689960986928683427647410549858958254543328586997768420656109899955276267157101849194424847891271016493969544823670394278406905202236408980200124687278077327083950243830995315286525579089373484530818578576646456579979976898310811754507998480071790867400536128204614825694306068869171528665572598987881351634018850134966071611203078926224652111027697908466566193419727971275095555579235276186314893812499965046891527813819336934145159281934266751098731280903961355239356685115817218842375859844095868783171412658304704391368755113630512492831915200215055045538377460205019330104259866406605187902095581507087622473659782012369855772078804002208776460894055441847733363587577019657328644780644726546603038291633904700969903451791951654501368518020040458530205942972279530508655320935150918291259985675206586575211968327942462118653974842483729490456175453714775555396838425756440647429857161654079016766366959593984213876538763770407373622111905034895192680362867546115434506636738476673318400931621998796838747850570109561710115272235852203039898589050759162957360718071344289193556393839416554769968138281919964316474005885588367518441692183749422909687340693463346220904516138895578040291896848482575707722548603282941242076785273875332211365150313572664656662501727901669827477438861565605998012923743567554730277909857682407389828831371084035541451522946371621853718082905557666180215249329241636016634496410903105024883034322837031181653741302115317956166230336510582392535998488389337231297553885114016205293513009603240557861959619691082759102680186532290617542046946104274696529380533721947638131432841941758208863395693058171476295193524068090050088232503994332081522220496011795513494456607252789950893991681846447854809595846641959381181768960063573064204358493262639621130373040549243219517670578333036649770836354986424984060444926176313440836784877912972589184418705463113728222597071079862541293978999042850054459131527360743326324069282233317229042335638410812310068782115616244672341067141361299529543739365122226814395172071714016706398269072158779965181933069346963100090537458874814477988574262951536636647896954674203833313349699254813160319831973145560132825996032926282177463643235480189324365585298350275330439664720564232371505742409119332881750803071875755467936339728459418016512058117887005857124415361450911814199005568005296850360917937826095675781884964835102467535418496039221147863535309496371927098300668900857394092798601586344315717382203496033585249292129243152928522787014761106023989894658521644358250068488146990075786273404521257785589552832158640300740726328981496358696195516889513014326812463371294499563003106853730659341297343162961711287931999780318232501946313600585258889996420412991004488145736310879935370847130153496250407759287486089578863286450841524142556531743927816143910515978103059715684284965769220120232570182908385236024433520379965713228097956916899517008906383839103548309903562169045760275902027900358082046530390712445120567270915931703204415972842853883093755528542283765655966012188974934025829130239632149203981488070370279257827613595772649094210064410868303578437239615193408251744757478381861847129213002264601711489643632311443057425969854560859190051294666305862394808641224254745829949890927911237632246098109027133808877459797799278801751539188313098614470295900199596842342473323365987741525957626792757164227100186367748624634130118288238337245284394439149465867389976003532179099212003311754629509102075295472240019321042597105490387736105024198981311541991122367762541029265123546381677510345132017833400219390091151768867994924278695600407378098391752949001171130754561933432189411349915797205949279026434686832419851144555204592957659765790265848810499636565206378250371755749098733241721244752584395131463178056542331991289691205626566073895615235685113648526172183369549654693986506607607802325392040642754224216929855207152968637026385577161432047795556078959944581118669390772886350073520944927633189586562175126458214702676789085012775108486117946171233604387740985930378517188016238662812323275050865034589145977218482992227855112781251629911015755705676199249160911454258332417321747800280571973754845080673050266674178123763342556219701586845263505302979599458414650766898696679747304520264396071768580314182924981778991488462182602189514800603941696900100952326656430842983675688890988588226784889541201328576395010571574146401491128893160229032796992099247632850462576795702371938618548431378760321178301501069824732353914149547620140225842164950237486206643494129727400883341780704183932103962599997135980130053500272568030289482629002898001308511092361927484903372952772283736465256517307639018980636415188354042957450992417332074234916734579690063179062023476261293578132831844078858196649243385443005044795686049600064697442461233113963288909558371736664755279625014206941336304306840273301949613994643261236645808923284607120371235590100834924930832676969077537653564960289951195924597665152730021933285783793918803019223420297598292611541899428539896469555520515708593720896258061380491107811085808573926605850890681124719089057269560436296249909004985333291943687260056402800068609076298614840504575924281362924170290312495072321122453772689386908260388921705401695046438599228840700883056103383828996200302815959498711964478654811120330142966436779562911609150043401696071234755918559668734084549444257971522339295523748466620504111577509609881248605281463344366685651764668831626706652547123584815684837394075238393973477316260465470055930465708684631210798159446528131337199604188624991566210907605712782710221286373825695220552721781762449365492882042871019384897005691212999834984887184245649678955163408157913449676876558833936982999926154191324067095786631621190845144300212352148966479835198190816370152070046224363296902304727986945403125511686155558361138052299206356855706916367947595728756490986106002569262542690727361214825036613336345600801237695056259808454867215802455580323687198068869404563187674987699070200516245177922361888871219360255332126210990784194284458722641783429049523939288609270444096635906849308210960713258620832626363000113686595647619416518712819731713254257086308466584529886368414503551955744490209560069501933574326997141960821295258727840615193279162343853780538103439363127470645496412784082792918055907552850044974634695575321620184622495331769416611136503645119809698310901713090489705548144868593999236013617327646531146773192203270849066924633763600492736257541170911281453631482612665044251137625042493724690912131668044417376649029068704817092328265288755190979730879531457484237820780469545016884215485615423702159887014039576314009343115220002220588730197787929151638191760440141944384457644985846617858978460094957608152930461179338332130162615815085595820533069042394411115319591018148431103537629383474601726815119817790390782701172279895152584348174892086304476973343403807148789335940905603878040249774855792053626006249161193544493872008548151436995530825407758804860843959093727508400003615376321564332889607148093157136414027933173347714127941214782520342119962428879842911980386182732377432989547501312829587576872146678942824679747181501081795182669975203077529410834831998409397580277932545724667877493630318247570726614155463293260495023854295648480073613511184959863592826583258409334306072101521728176231052600030748503817439840719772586102598324720773194734769780961766593962275223325550541207520399426434724332213281845855452873591694488520607637454112989709306977850654450299671476638555278965142226999121154275878544663046649976756624465918424779247037393375502423449088622044094606386632400055353257236147870638327971692393070386730204635963399947376903442443386951079616520648862948550635519497328980269214947117507142250527522535676307516606656749899975131587611818341225213602048071934688954659798170796524805330683178331596317519272403720743809460127398173161161357072863729825046598633566090194982233008638674195911271089393036201923566139303406027626140039799663368564545173651719784416826594575457415135141035254160796024438814847646730810450516670154986792422805404917459174597864493399647072983046557334492993546753292410575678911474881466163557994001039473796440578349281428640194914559803900227351276633536773436605216366152367884247840144015355034403506400049476528756868632947450907806306424279104620472170645790220400905807200538031236790918353084305908089960360379257477629209557689600390387347562799806538338908534455122604042563939486690381791092585089875866819299124479409040947783701171297180703949317977274849368864259240322070135790153369205595732262628739786966062912383247488690226410489775974282748398796962938187987160718235518483088668738534919261849727614245997373953425762599682030979743245623219695707108335630994182281507830879338419094398397520823534577002359782705563554784942747361722874986955581924893531790329582657546063056761132191289733030050324999460172599362646156692532715538881462065299439569877925952011939130345550801125503744334550640993671179464111209595926577168204153977650349825579726813432191288287820315865704042582506491482225343639216941731663032849183385902085574349940207550862600830223373399157390822753268072196821541205155735384005286819719518068316738712691706247747765466692579385091718315608723259111702283789489475081564331842708616129869103264386850812332509209272521301244035671748548273171321300392744770039233202390363868421934092827428619400037133944238879381127662920626928423148825413440564766297816466480383535115939941092808828108899978794201353859780706214297368865784929688741332781733465601822806168113560127110745321145712057113993600437155349872316464609346622660407514023985744145547040496249918824082177135645322084744621069731717278386136190096538505752554177295088531228402637484365421228720836799930946186020718371025584513926829387415561096964012097343855663797663000981157416584791310013669191792660275401844913812317201629948195417424867922908104344721825579319865354269093227525465763818735315329313062028550824086933604251234354053692894050704217795927309395803976111588711394857173333422876050219532548058451557631672882096318687702530773909728936981973633062988161292342941728943233810268037708530682235719008832983269583486589547498900368656775981971743387565159432741018225332647411839315851604130267542450546321559483795693353726293535150090361286094271177600196647127949321077983552626241688714986873976111745409085695436304644673408679443825896725071583249507299637958021716877497293145690105786614062613204007355219084807897072842218449189741021171036144050509739404753732648989793922186596515822232917280138777354390579814684902685121831622441979518908706923784769866072498529576502185423329464301037198758022023376978655458058440665238897656047040179653107178520121809926851387521370292111156284112212268928492147636671211332130525271935831700990138974638635621290549103922065834800728636375318973553234047200941854804564955807561522251356236778914387550680814599054673645138042308445820957241616169088300476995466852113899946517778754783454423158314440150053869889837293136032944391856731601376213395771161055834006061227369620337267641806171443861820331435522245259783033728472953189916801410239679198768313216286373029463674615954291458527272960194939020096609113937801542370344678274883207561323163634181459973935923966086705778595493425606916062891253161182983143369626124432486139836019988669389905629570574912427381748441802722086159537069528566459252275798999384682844730839790862626517532268602666866301892756812493417790443261603384380758678250267077198473464286469003220999225367257968667514919920893727973589206638926624706470625716085379730874779545067309246989147618844512640360496155567355163972412370211774735587536404721948107071859337082017988235729845091713958818769939184315149540534859811175747240626179661861814361215028670210571038087458879012287599250765698398197268443116699410376898495438505513577929372286723922579534600601313203166033288844813259609476087212943341534523201697746715556152049836410979014699179776939923215810266776332055282464389991502018906916344172251877481453085088092247537123932949311236447583805810036495272245056564486914462964621332663728265367893673669298775739996373688416043215335829213701848478241006991602005880960805603823041536589568917494389437561044273278492726577161557335459813085530784865052727225912320128090675790409821575834013343067802868371106858961687600864290903819859744839697187197815401192331335971678152328477588098643331775531926648063474872711029654885478116534757926526417338621084971799675466784843213480041690753354857552807631110062031742658634129390129805374093231070683726713597153780522348894468361139314743649931922023372234410802110249957596191289377188085400147884042272121740509340653025489335459715360950053770423355831757991583028336690296956487415104829571727614625767180525730852767496707264167808152014547070992786561685562088381528201262623575773112395912298869629732224916764293376510200845416159338432912693389755839668788230112380245445297648522078385683266422619696254684157811431820061386323580741884296475400761331324243211182040521862894463032386538770314968007245472864230874145709906277309422767581290817343392678584467345263239900994090706756812782733121790923018867856362476895170828278859376367644717314427717535303254944480495499430235381864666426975797166395204445301226293065675686345054922474924997866331713058381242587324632821186311912818107597216211117733360791950609366444344147721873723154904140043034267053847425356995217599409459033723304602809153159337953720061865293667762185787854637518933372196711301385330125401215445919263479192088184348736918217354094121800595568646744111340783225057295405188716640090744003108840912459349331007287755410020015072906200189224423518148388374399469056207071706293852131884689325411074222519343747430143983623147861001377723679738070829818274904246346143267806701169569830955546068044854697555993785704325105128383514091898211118002416840418920400630576125419155235442561626142508606709287667576835837112085371031982501255320227081311436746098238111633050812092284334833437057252446394886587961430554075449338596680274407172433300618168305876412625508209314717245753134761876797215443614866378261811975736271283767394728277270467014712563054953738244216903337329982217201285878330475894228675623042645735295545834079311731065290983292650915754612218585646860774545186941070172080112029961832866554441487859508222373289205429177774007451599745754488464470666382170031099179346765610285202009511439479360327093355525973968976819016509650925583121687690544500301639336497459030842227186175471025371468232593844287931672036932245066712378494718352290730195737739486304451071572565550161446221081368513346313243962902256630552113663757380695766487196855916424703160747772766843334795966745175475847561849351968287984131439706504916534684486609820952916602607455311428719463575699437401138769621830124498841165873416289434492437335012240090970130560135990978839748303605900194880042351800703983093765290095710816831096587176830178423437434522773711315920167236043954003380764144890748475300737009702295113254884911809590907785896339156292951228507122253417474281483462425262065722350429454517537755529517894946498526390745671585822226162496465710002724735449404421679282714647087223806571247986358704266441507498695268116595707925077480357387952839201778075748053380185771787385727098921439915422297619371105002111819703404060615337077581617909986548960617513652288210414400561357005200269900365187299375673478939783699954692163681625719975660918573042484611475962705489148891524253571632177229878167412536714196224784181950968986564445951138793680666070761831033776443003949243050284673985111785376234877483669213705131455333261414621231251064422632332253318546118177931081854881492028636855053459924683701656579383754911437134699949696191830184042992581763341707054634106707445427179813983458132529821051510611451718243965365253927748239069957033437443529440158265133907541829920577523540527322634305978905060453579526968849142394570553257510398358395528893598726907328007364468594119370642974722075287889370310323901072810284692312473413575174261991767492219236919610776083620001930669772362575966842988345928798014615746422225287484003591134384684536706646328731168722708277105258082591659244435685979109049863461810470514759005403881448576650877098039901122524714507628499397458833746117665546471226499872735245934658012479453039862845283550211448652166748589441112057496400972787173520443998895088568641104748918407693228820533412950756962987787014777776397937004590529582143890391202854496054722634991960775447545445697848118737255271936381731806059581852492563013007331594535253177236376713474123133122664753325557612502214617386875407943913219128972482984632552856926580878431718860471039080029873380345620257273189924440236795669446417594872799627891079883907811042118723793464283991536439769324729806986606327429020044426151626290944304708310384678396775377511487827593366305595475295884790663846109292368634338323876493739469460956966068114129916157805461440104700167249842375107197279485245725973053664272655947064501254348435834961242090297399637541254106396026111233155821101758361434618742565067268352082152984407545435372395196633732543777968750393751134322495032056179268332511040009078854452841910074685468814317786440042012258625938435085552284000268615666248421822879059313302404074365513071133868913275660982303346971391551775671317734454682211185654041892821959481230335440150802400051842093798322238439230428756767060371533614641423489620122433825458753553939030766275616714485011391755989868314503429347492037703989441699273869017537187357137215950390978717195329881802907318710973590049713085723452125802588952942036409754641597854307547892692990646288873789227356488922100161462619763745814108309241289185943606731396785554098284908193615609358438857348226459877960983765159807903121471175258327175544206898311113963748616681084070242269758068824396982076177946656498834971696740370409654060371040033528563799317373181235530706679709561420375956148136844876840416079244941114581342038279690506485545670277333013775313640918139297406918255755239471022124388645190419585820066024388378574551573956523272784116849274029247180910046987487348502268572738752117112673852474245520202304120261732160080537431560762929891936867902231817599306430964392251745601476636755120812415252512302880468610284517730894277056479890490597168206895021814639965822525560128986327078891170575322030381748154110719961972424085386728794614544867727437023331042135479279327796087271696632280441656614494717777539274496558468691549594030796117070037846065639720306606581433144971721689720792841132791344639121768681259132432414757812397736189411742738714874240962769009221896734635137843291659984661633568312481577524177035747135473214527952966481718651583291843094528762194203618814276090451274381646658513927401977153508511564436711673474539233197358523381616174835851143832903888130977428172388536932767653013153618037022011861095354174747579970863228749345567456761153641833278483987366384615811270309297595726086177720367927144411169068056898450760164426253533655665479785906944558206239710765809464587298474883699046126404049801201428748896496057094391349093299734519737348147863286147501021064858673851741984653342313788655130385083191827018266868259137399771712093777848101714605757881714722852049892600388166103734569424579510238937141184104387352633990527206622990032143886541021442346719401706436926120876149343648303494690782012252657376545577935643587704408434703033726625381844273134260219856035539139777288276204589231335297120841930932870477359688649962061362122576326261537018940412746512706007226980997038515236014626216218303951667940274612034308196193716185358007787698062097198942978790489690939657410329190607386439121497891079351399143188979605981075903655418065075157568107423392325180611098327449995645470385869052208016314657559092272779291036112211234266918850453361716351239890235784871662413711379660458102713738259811937458285676357369568541238677349636583964579432635229616140296652090883738333306422591946518173346919852960904162654502693040620910471422394099704331874945217249668146758433239245565217461182945929118094306350549381643155329792939006312897578466333885499677513754627134180075150581158394860941030275404174003421481521898426271015082099888697757094925048207435124722118900174852378429105142024280568145225700517213029520932263434703045186140451863071178793791948688101818688687886101375512053358671228391014674609561540004410807848561352298082194841772901818444384990645319246126097884573910425312195184813778448442514088581351538372151654453690012377235396701960509067787323562573560259071067180868195642535443502368647277329673909588596258142101563475739747300328107037362182854515589300977183601864376995972793726831165870422607040995680096302289961888498189457619166745742372246298993493772326955279708702349222254789047512881577975008921892635245595481072374536613994953002168177429780819140511072757172073491979579783923766078404108688184555343779773656061626893664613467794429422860949603514518857178890268348202207200893723608184737122803501382134407532258610748434722034291658770721295162888632186549065346297061227511172206671543086980991356441586756600105030312176477296305523135202935081818211168427873469450781089836020165641174484207936739157932546142194356100006781091982023811619251975812964226980383215143476400325690266056976785153087846342801365727296656750561722639742569110586296058705162967353942853895916942465087360684309058597451651717497944118418265897876876696731443031772477371109690908138473496581054099624823028906828221258536294413680497876998958977749825585452501720490214761319569334272095207255292168934703711175331218433519182314099266846281734107273305852381844478374223539217360213116734493061290983938463439298165491103982450605895494325833446685122436681321018757488279263696176402989203400284245668457209549063104465148238226809813828287822211132453867516013530598529651650367824806922409096088291313016258199324837567028789468117509199475436606492388158361114656297720686003959321129479268358859061417462363766818817096399642637619970936498509511393865506154009858847291899697071738201448884673356784884258213571991105282639965047019396903698353847360548420638206850415459681366560686486537194790100348688385018098872584783650523711824173127138916760642485771780333965994411144521033217354763036147294578208229519040724135778230821131554815842461104645717813876333542662173019319382766438948098812141301692023339476665721458036781465970690304221878373109575733822113734078692295852409784147193724415283311472981611449027185209119754306493187989639745184320866102007940327071686044762984039090166258969393086441154442125330168863720852968409605695953792916217914804117009359888011783583999026071329488053733300070742393463328058457511296380058094816224302096931074104512057154803135378388478765267974559205585235915390110374203897636678186506354355393593593725398977805984208586407171304258599251159483827035863702227801734833865281165219449176132859043681367259943793290766701483732706998729234175279164292508656866781802644553522937353552548085129327876744133383531429701962264696130859357559031882018867627513832022730760056843911669406492376201993343405359948898013970092760488654698940457539760165916828482022210559474120092301101138502815571489822212345918372105394782342000252863244123758668593205137985638106908553177216197666817202784125485736563385917139424681641584304443863982172442755046635589048631020277732894830366366611916335064497756318011748918601995124718600239510430272146450355293341451691431007281333354508288328115572839890204644469940172464017412461706948078601508063812386527939207870203599735860234150145353420107211619374995301317001174438945249730857461950368067302499324064448816493951123371016402933484181643302782661558268415270817625992421501328535587128128739231947775755933012235336025985483992225166294609937795410255428765451286828332695923329520394163874890613798466376294108756112229836468508388375550717275688426232984209661200111411188013582704788623212379176939830219779924523820297404539820820933263535750446637925334776849316477227361817570998157598895427541207246997800265017199865608560383113336584129275676464189142532872379102659379194275592038110144438280746993964759042380680058458113754242143814925439818815148653373317728390376150620087865029326713018924591049282172468749634886062411428255552319609025665723082944690205898293268749908283679985235878304539079453395360638355927653831532233932766275170195459668619266054297926710731542447227455391276477128668998370467529649371124739635078988624924881928803604182905633959335107860302366358040046623245531379371359921365283381432629382896040045817256104372926097273475982625531664190791271189852305022845186474917926478188267376271251605076811111647849197392515346446558715187756059496466803581312337078068747230211638957723066973074514316148573957559075391030353962010046814940571459218181208466313008283168753151875834234582899594326105095057022800872104631271785446356025460979903337658795717058128344087860538318880666604693152471779042413241768074028234995068717454383123639437558099933725411820091401162836623235113898414614966410483760095162091908997569830814894716278882360898375919814228710776021904995166323192914322209163104113100468671431270795413388112671149876447272364526779524871424138313277036369807010448627889847093315251907335300455503624271957268776324102738051564434490093372880422563897780612215510797919558611264818946467185550246261872990215274707968837679035310811087511314223723459378236418078287276256901607600998997842814167829727649636678376208314804721442983079734130181241262131736906957343054107768228014205722600235628674207949003443244338792980767441019619488559881606688514042964405385561509114108050529970493299464062692681015673991894497472454965074806625083194476270852256293275411886290088689029037641274169548730508308795774731982714723568869437262130937185772920573084703282567224557046304940056578593010746021110620930796735607912572705830587689115463022234404855652377423197900889240776998080538227678439580123966087342265760489753276183213580527504277440034323425048191660604394784079610279729721896489509962379846520131030688461318237348124033731526113388854589791434275395997129792357400001408359293687644042236816702044748122261064170857040474530775965416130554029422970676722516045965270171896620673541252560372337203323105688223724573263070805476959742673378556640558467350455099549655023056567806153911909034235548790467406283099718570790841093296817407313355270691866554465469188719986019632900571992525147738103159923598902797391760855403021297088478958176275336037353274451861182530217700639428847385583825514735554208708589130568457288382015013523779300637624609213902874644618540956655488982000525065401969431787344730887509819140950103209086134772771468228028752959871445803640949357018940378847049478688055075455803434403728786021421415005808758611527883534731301992264305271758332441741673353795218602101152102914590483096466979785563461195793665117912148014686215209870708055091860475839682888391133551899071851184775378814940706179248255322985930596602850433639437271557623446685710383560605095116845829972133015908940151176048226714857366089853032582812131888340884391183189801397974156648861332317633568339426837030096514825295855616182789205305030005498070368012618107265833464556938095712124073126683289263749993218024222095532778440587769554287590162668079907727792084009995894501949590659926767210752446755135111335501465745792004775106626793278706096914856476176078168198720468922698628886223147232447699758077105641280121580087194847372877072683267238674652049797412270621365183233033930693069219882887622329827120219781382783171356096986402849106378218908827560651871621244656845492645172932837428835362153286385967583161908822131153731561217147499425773930955242031992437330792888992463209479480449092931732473870666511240936593616837251102674784882347071442642344725131400797752212169220489639559082760712197382818931528623028896847728828008509104370699757796850455897754396281402320655774082823508661060472395230878505337895370064491258734764297002862419590097312346047525261663887609107178826296827102678257327731251897934006480204867851759896373281103611235467464669943106647340843960070335857077866552075246663344888244560500999386734956090040105860977932616540354679568212726210497098772756401085187358210206901470639448697217587509900785607202243294506701481952251971136898724535161276879542672764420530902886525180799930172268286254477013969725441370647538287973756143904273510035177908466670308114486664813932042453420367215140953074232137801440239631743665792447077420232093189187548726039573709948972260009918017662633573942132316656251169690404818302973249303517203842447837437060865584119197105104320727563133770072970979995952169515340505007315126460032897766382934086936464348167094007425728482684289411550614560646083256070296492419554903617946291900571367383031384979490458426868976996562881049456223627682726006352160796408706712764951954665767898484014435608993183812339701127032116792373054790266208850808316420914633605874834075932546425885928794577093225808833268936680468608701285191140931958237568709197629012652582202181601743082115696995985356919169254515768426125888335186331285041591360020783463918330393561407356366788310380302234181655770179761779048451951459100295101087728856166573104330164338780660300500856753846762175365186483887359781519846633548975509985246922139873037992060162543362811107916430172902510692080359757719889390513528008466355241696420266126282009466487535370929129791938757020120370827430588505767386576377658196898890818675551095664601764265886712900693919785917515428230593788509355586760044600625493699495117540267065026452819656655438674391687569742169867055471258676758802465117237624495884988016076434509998739939950702680729232689520770699232931818305445003584465288956831358004443821614507996140226703290498836638131051288501965121985447651166742611593584983943308645426259152880257101404459839795235922753128162740976166871321879387259984197030164060692163218560575948337490304015630090160091820248312763153853606384885731229867471002912774846705410907324177808940266144479870847638376623710007029087400364394474032096392121449561304768410928173266357212739983958604290674467686004636302991579511065852885182268664742862399767862124404262845033901955397145800866593337916548021464059611993612866026536255099077979603059617231731177235469673810713085031095149952578732054236217744205137647231908181739953468046595708516774119598669880441703777844756650607016096237883056221402804453622737743710101010348575678420987858170738574572446222264220603357355632547794586884853478231542281564627457710254268367594035741111503086911660034215827016225241521699186000149549852261111343632569322131075854813058350538719852922281408340945002850093382721031730539901057113351063336982928560824005248637876968261102386463090082247473660872097875864284195991127934447841275513982783572685108525213278630727331019994379864289220368204315798354536162223010291903715424072618143962969218968512603997411570107380782448091697328672430605296905677010156937775769082550683622730586480211299036179101751911478253276219915700344540800692482716989602221819574333091333040642732058297904532061022486303055840060096106266700187481251247970074810279318453304006390133289721329379792936672313720934902002485661448468964990979615234142229375000625204123763895975134950933802430315846530599984736592540685113737828417701865476329802620407938029502602814049910013548514163643624117362046380541092359145174002494613741525382880485064657722433003259536091273207390812224504630360908343869084136464928349336623570924115308543437390396415945720142650048227832043423705777778896638853981586091732833073885560843943569785993861634116524384901630900841872222730086498069086242784024263485068876038683098778585188566101337756425583720881915481707986839209260240051522714688003466074701271368804767693348600137224985320641880085930798238685174312125402281509516875779174162922562043005023573583007884025368665423355435790133885157149074086957456194345112486165800749592127505654901422419444216203251861399660559725067620276774491365041216262636713154088179023744553496606012055534246053879034710956831036826001000878558771300822346232710345607885038994534515544280608502127758871178780753830882398461603855988240787736451601928583681487754710720855045284150134215565718358720248130851827030277848463733624080717088836855976537039682867405946671783043780754212077582241360363310985327919504353516471471601191148378861858333022743081133185609311667676428628440944698770520321768003495174940734411769274787752866375834658190773592532562675093839140739768179354329783352495853705489922931912989012681573340004531068049601516736498241659962843149470434781113612346993417246867285735794646783250288361678294457961994525533032178527266352614353702695112915687217898810720775642272119463666395655673810434133529194700555380095690491318866943655271371944428627085316848463464436176619731281734675798745486116704514068945235854754571067095600705535554555358711537150365405972541935122111255660939117977374475842763614515462117049604758761001421561839824740954778810320543283021886937710032802840177189125117779672505695040103333302975789106163088419707324183464209902074838101526971251546253656923762660443846772203816360497950823000520070178030198330093398731435684537967419624295375012997703799856040348910560361566609759677316004503312192059086152983800417050704948072967885063756836007349181703944339887188695443631468648781802664460926268941910956072004334181142530774399238097403278967434123807705039481552400280948679818402931330198914500985554359310389276465331897037942991910135057668630039929635955799246639941556786194127302991734905338164142137826775432353706511796148663158331002967337723708837671081150460196369543406130611250948775908281175087361972529442864353372954110339413888573227805042591704769166361998828578648884242071206322094112324156018429841199412665829039586771707993790264016765803930636945208242293443864149171499765551397329832672200580724955660116347413751670762880185060444932089564205815248784847069851238563847685940683471187799892513485755994896719840406636558447912132361532026778014811859813838397547281413953544441231659052976348613767697806916021486190938035629908408234910041668110812654798164566226415765263934519618674994944896435818220817233157884021489317330023941615842973698936554514005117943943613776903707001862206872739949356924821762496941449121045687947403110207618543888710928900235771350333924001588463587948486214678798993756272994209570977775790836860876163944187136199297128188634202810124370092908181354035740654296249887461230026540403283116474619214037076114525980291563635606928790880808196262651607795825303107240268192140549211785357260667708044899716317310512736965491164097047872847886769131843244563717772983505747672912086781085729706028480453103171034370887858836666040667011808745046260355743280809282328657358569641652749393882050873318492464712456003347596964077388953911932177245373937877794005759668365880684013926935188138748850386652673915585482722499874195397513476150222416482061411140367696550370206476898646932517369392018279832804512601778257805693288684252826896858545571790942579438251891271244839101031166900664031781575091610594260063844824163969482829017942003815020669692777792317406821410795506798379526691989540063468467998855891763384798288191381068594341031868809940533522536376756667558015635931784654080498946289952877240072061103328264700613258591749566074126402849952801869657249480445733662458791214802362323995935627022142178007998453898647922830046898432592108236508202593942738644463735690262630813850910467801883316665592639235039701394847969324791238561396244973424456889702263210536362348282304068937762905806346210762587677591481446919878967330290790141809003584273695661881678713785607093497697560295544742199430514224267847127916152894656534611632730889237196642071991675418845379809752569321250344047066011292479242196219307326832823372360936451844901975885699337541573330522205731090300200344948938498346470460475381553546396302151379044900084242677485422191318217683697611770318195235980953923594406876465400620165498421644619722682659542705834137591913563965574767629161718914930536980272111573649923290533702073427691659749508306007892956584651187019767890479391262071740642597239772554985207307577666442877376753480651525745464288339911143734943630887228243804952742567242097063525934576307046306892537517012980534783331296118271724931097570686761914442467284776056736513082420087050378674990929971743779062503449790640362700252433035721591174341047205796887728176918784993146653216454891429245638666436024673238414437155087063437475883942145911829155625862901889601362088018084275025631030112044403798468467952260578412745050772798828914071503939583059232359555573634830770360518333858548200474451432621578149643316636794748754711477909922960940258626809501729955179727291443275797802474970836195078328184873869021809811638362072528170589462323308643905457332957682469393921301188869928603516187269217923075627737721682565059743655039759109046944026234439272392049949121302269494387925475258524671896813766075227483061610083131587524091250600928310005023448746592258733809648524356800857652064374189901857173643649878430688854173763561402210487513097420330315541989611741821247751055657507428651281719928512038812752685588758674005461659220208216635328032928930697826892626003047861246713565408072441646015705932589280687896853754558590013899456691261364505794848880688690392982724672581204206745286263597034796558497073165789849699391568358592366843035843723082921480333114093933124947481990027626486387698020709873126820810766582757794647094136408297843200300416959083631656367542735872689846401846351895826574718248918957494804775724867761376423037383297618463688894958792913665332572356397708548793267852097350101062277972208256078380877976141624300778978882133611413812025931949716915714043868625739602598017323357455158961996218448837597165614125695595185324486239577121627852784809836046992056133811708279204908056611671917867069472508436745531229226022436805902481106309778891118045424092176304103719494386794571959243810045250172758703457727750076628922044465680879075899887741284869306811712313549017295499403282374917354683344116284441938592154334380635901475546571263068924207841612402466871907445822152920892288849895798636976658359441987074265511103368585262708104658795346821714686914179613216045665588175511045422560689144611208381574544332526188076146488365469918629733339872931061866445621884918601524995642695391719296261163778861792640595388112416245754539505997786303832431011987559609510612689432743241082689352393106646952535902897583596897786832632010863391634159290477596300929920802796075809365739275125198821626886449523884987933580018969824688429256494522871853926997548376627910658145122163878465119542644729962241281109628967275820541987430101877130093080980739199098330429211756004977588416941716848569036917916107791167059877695723367800013774782605421600778049120876507664827055970879142096938928403372608009223007066486020684958078428168005982051929381069754189305631483739961244589692382896041988141060511787962869869568967679647877040943490175022597796158597863443017484114167861642863411226231584527500084509162753582038908468916970871714342281355278481841955195820757149444001394372705339647106240722197558387276163776307811956196000565967402859129017199404900374764732365874884667426438169579080275350883636184082993455425009572826072054366477565630602668907623906647662458249353833878465010723854495774021205831363473896264498455307883436667754642386122058448395876615698617185800520862548440815126202078946095221282793791678426892969594940410043448357007536009134578584117978573716393711450126803368810044266473027612013609389538677644102153171109748704361601976542850989028101145420082885026425835667559471482402977934252969357920198813898539641160334460390519787830876801840486756518241681123478666469805660014009847760132958076288998593537918756618518731479052536267589443738030733804710971012745606740918917159441447668875711674630110382215829458412616765638384285440474168494259989706555315351927420986758706319888677002143304056462777411678337043177286795095834887480192266018139435708119100262160217817777692589550842145495936377004450986433990627866697858327285800901733461194674279204850979666344886656533672344618462586344691494858697916813432848998027786069108668594853442481793736888515311795787043226434082349886660299156115714041702107801950776431422838044246901548073926381637168307980966008914778304550815829066798866272089184919924773133904137404844306161084542711235762550066156975674077302135793753877430934914976989058741512476045167740170175997927363188440825584943470974766776944723034530137774250007714040525349875893338797744725714196999730994953150729055522009367960900239286179900064169740127846146629454223973086936819344089368881265691831601994183082309618054710829097755780866604766160811464933927500654657155672443013448608470432266510672867005649934566550094917158588897790927796141087340333698748308791716126033074080180500385268576184258196775872456020073558169552790313623546278207695708509852725630110303250417392869548843475440490351701771086919002977524287892754105800910035052873041621225124328167013068191005832645713676913824052925426394205352883668887773774627516568744128508537422356187551904033882113553960488087388936509481907715073506138297175411477930549753770884056535875529467752007386088503909114582873182177043974085116589068389672274048055535818729045440180501922470419326066530980564263509005276071408391742220475423851861038984487401015783708473195358212144983699901750788064281861150794531504811484494609732714830930036658557906505300686575573341032657232141546231931283478804369304178018001381276300266914103312320919094352451666172332224216004360115242321898161971842014937229355192885055083874900716065519164756860420734237090870373667657344926267543096538633874832302680938695209203685112316720518291864865489144062142264591884421499538374359941248085242564980887111055656097388386377430420701067678768450398964078311288511028227192335573836620647472720096485447260171836286682214717492538177270299895772139907275526627658750714114939278213949403690274800903711673159080930941644919508029515731222751805910056770418991292455136895531942583338564687294970131356869840833752135264939848793566626740816387319515651444868928017512813610295981713731485324581297325927321803826572981907091797320318926086698457635680258782102144483815597829928540125853574308416447713794286732949616451808020269375974854886639125947030023033864362695073833999205000794421028802083155183751738442349078808802424197892423476984082673989703280999622349945113900022607606700344886714967248391669368091920146210259918911226018088973357247336926583518693898446683912922173964749140104159925772738801702564539062506693421879004411277960521389747229477757763948905564985849423382595102162179458743634542350161931977729565012672922927701052932877332035259219498345884906992840121244837343643828028389161623212890763671553270742053233796302710210488534337255897617036554461527183684668477291109757629693725658994673350629906075638274706574088004296059237537218265298888117174412357604024002407479305641347523458368035182211938477620486176441119808101803251477228282898017861799551062388760850385599632573067350571800070676525067908092651209067624817981839192881019625987072856411342466450881953796719134601782108604741129598175640801868468394234701654336715024265134454692370243048305467801098510174601520114655137606983053797511159689272420528022071067290063364005237384113360793875311142713827915575372947750097103656557200179592032229221675095590588560408778528759418825241895453442764962337704727786967229808260259719086505988268207210756801326721316147465845031860427610977756676544672886778518603679296177310590112059043991773587756167854852605754545894303413441491519910430291921986919965091006306685496776490901398839032060279623997759202834147519500382493421746509461319051588283117974940274736122240414117953179046795225928223669515516606868431823593662199632770272639679205698462761038729926946931054014269983109206495304135772981672585729034484843258115785519275612296450424370876363083266585087066324180301441527322021714799423519501121809323980069025140940962793867635196382938388992461006160099050510767737543517892726551551553850369522442365552469233479001441116366231458827964530041449729410866319253974949172441503987385972061231160502908729372784221757577508693377250254091992753505886148809649401842750131390987118367955990696753108561716287590147918819680745453529738676119893117573720046680291015284918365652931442265195792590291864977365857551767465175640203322116952021916507679086268550251544882099806891509586775338838310070246120828057079387866610009661411534893931629578570311456991957744296058818195622414385223174678281148677491387717687855502879185805175414838589212802237947277677381504222247740471492628010153408799188385786566803657705632580135879231775212007941422488706332489863818008866416886274923212154350215248855799903752789562948638521525666786044633886328227211825739229566714387081815565560151769960623395170293707562961246408571561761185132657607949520856349168963843476149395073143919548743682653606720531020204783305944026844002169282734080276523558695257840892592360114676180253604188821505058603581356397289182880072010309432746367188935084664789269206208650172130155773078652757724654530963983063638728402932601264349106893002510286246019923041762868662918956278491757559878887220276308238531931568557705136757018093379375678412484829834365950099463300866894732217465051027446197642262007694252025577746795055971024645230338462351845802215314012440247107710539378251321134005054882535850003430570515345335484314140167281709980567642783828321959152310219079450966717640538785757043705564360322330867323740258339437158038084804832136884985977628834677098433486710342984031178786448824816849499731279137963272934204996543276996981864978008946542086481602301646949941073205963408774072838901640549950977363133540354527489252395266063958191811672145088145229663263513054757547437124651933195600728973407921595452328602964571523975827180034072220662595662368466040333918650884874994831975961110506753271488176164892093039494990182930334399799613607971692922872596734245377560475569901090471095517744354277232418481498173341078269447532595725529532034386347958658191700712048437727152164332221523783226752428674968917505991580318380918914096076954328858200413062266201683716136366191953363960786090068526974437164205478399476405911690511601922056610364984807458478123314104997140208039799612393264810291726964818282696497880554423554987639248025044049732375202020249477155372481995698283004848327376310821747194983549967358251202888938983589999212378273578225526492840839541850344227039082482042449769288017671869956333637569414462990832744194230832867982455835157559733450737098058450374505862675676838889546387510049336833040532313531639837397886479302710550584282604993991545695309560659334431961639545837616979108596316968287226590054480971856524256379078674057859975189694019610944478645190452398413659575541174483192649020037572665903121564006400457578863612271677320009233166993076812029943782452248149718602571730951208917869566088308282691178614044006884615551062704462405809122442939277190776627524872310416182403757060448459917763323374460692962194268067256631593991979746940147683557767972756607655131522048342526906881914189317137479562475875114720424221085026194680792493711109359082737989742010769922039384922425500828874011894474750947083135270239597381625372758102866805366119634598974731534662377392456375092449880236854472143624080321719207155066301568759344073091235446683579486661461894175424318280689967197827142084769511156342449674638433447616206144876069195733411016375424578467154771648698663958547187554424081731691341256958001321473830099771957984674183664689522637538930415586874619990835286015080757034588888530341250812644917919429787641510903584049317008786467439569012002279983951465430157714105853205246966295224686522095847610961534292058033763229298948917727211510864023059074900845066656326919707876380972241018305448027521990278886615348055885063992552553527651449183528324082212901142736461825602402795450783445686813910540502155113257134294583726355020527688659384445238499970440910531841163522161113974523717313180553720484103252139691127973410370319242510256680620367056077101728781330843811043820359130058240332666224818971327346045025312908577449649583579564117168899297237152995629092728150733765993524108735446912404524724755442796930693683927513781411749340994157049003773718110453556965703854164930526055895748951408040023780426606963736414366988046659739562184548532495994870020105354743219094168063000595670637061990364514096707564174413726324316564975187956265552245466745353658762853758249050512016891740223207982164427580608959503019936343188681328972042828352205806854106471224472196122473493161106324637097206868426093119984977269177818108079219357665606770013928345173254523293737913963026678213898635609219242755916456187414081836575827780848451344187766616983028214524025174415269784435014282793999740279445851112292201150409812592115414266436102797042325932554727883087799165099562344304348545102184663967971781438100161068867903657523583896688437361827897380567327930021011063231234635269352220683478374135942762388757279406334474020440044831208874013131210930830709457338832686044778905108655378183985718081610441428564444556154589371943990564596081748668742659876804280406282576595999341606257091710670668354242476285402539040736842317527869125820591809367483762702892980746339724049335517648715706026299512456919377296370251430878872505271177126473283871945369333217805016259135159130817362762507522044154555893339887507695655770252293407137155274501046437068730494177791423702615271430351293446737065885043080629857860420124566024274810793762075195307547323952157834581872928934422856959289123420447130056793009898068231829842873200384086439802165043395832507200613389002722260135762822092636835269236687881318184256641071651215690721467708655496673083880559468786291089053534326973069104336461343728639971369388985772970137252655631917781059832880103282126324582039743594288668194117951457553309709475282533061130143187506998019838983808143640315046126029054979260054662294119698325929957964873619605349713125144379617521740515278462275758037573802931375901984471405581965349502461999998312110117134375483551787690230010910944273191650125643332204386968252413835595719119929653799978016616240241094181968943934678523901536909248953332657849347575654031400976676747677848807577462361923843178615889935651544345975593848310830042687300677593324605518079196523128012295397372290230526798864667095315698223998324453754002518510056655263661319530246239195832125117302290507478596978388384569614352192097366952874603022178842099744840455143131348997268167103078985014935068040333628363541461735803151244689884033628327174960382723764676188247637814037556869269827197278877635156016426541328736653749082866313852743417622595420517114041374690288167600183922067237808850082451014543190878290898589210588813997077371468266645900998886998058802113773815362314040275300523485919642307905956167246045179615562964265683571481554507472629470790748671551848298351009343316792549559216119920445797726965862134278497597343188872370030704063324020022227595885308481872189025759092929402253753361505430976151167441654082934427906149045419115515041481815657905549846706688303930490559955997563976032104399420675156822994857098962629135942109215304157170043721643828154331178724114010353971570025124334643896534208093921257020060273127102398623172805761148591952086656603162506816048196802216368335375337949847373410571653388449712754052015734119536766725771140111016708909033778205234368405451502970488485834458320230377596582535159299293335387889644465588110013487016824073115117261997338677326492334983375850633907349795208491338918832051533847407125335767653157748642852894258589210296610769105833282479724298429941223011619705796037315984800969792641514154483738998310842641305900464300546772845262539825158971784106815806048225560072250015341038882008516749068534238456913550963029557811004833559847331787420248843354175538304593236301040944516580627801328155655272776787397561638013042169455122262942309912868739565411122426536984512834909781077573064854403119123793520599386299206831310425628117882459132752098455988583781007427562942944141706262649761906863247371840444161927902887867704622795099641583267111638253758427081291103639380564200246453367312629438726748796336249630535792678533921927899753100099139717103290373196983418640041993052471739058748242496868378637658848885305074321572899310296241038475848243769434410292203407346681218889605572286992322616918611684523983372020355857060383803754526866112089802169615832742835546477980913904581772892316635571555931294525766002990580057600525185914890217830450659367171301958291315204935414792059167511097079828601030787691439359016352282026613177156924480909520211992987060158180869977658249058971909203479779484321850565977290565641233238422819192160706402346351577042228132201085590418434194926734906616576401494673322632688236565373368585014002689361181238725014493466033832657381664952587917914411587867999448963770297852885762741698515352985294557715968881925906214134512245996616115410923439029807182077025820373155624336967966308052206920823731398766419780339798074278649964904795553168520506190645931640506632628035949600104536309353567887050683892523395498468992628640645689986335124101620960398772836989166661640229833886778674509230215155821107223114979982214346378325846791040587223752652742296244237526232178067369926251812869850892449596936551071280862553012879708695509274912002352381968251842554542492372774080130771098332062250529919632466513504560436337365661796848366250459167376250479860414409853738221870884842293645761233582628363639403509664151936013396700559483231930837669438811941528197852067555009308297918074828963766440292805786382382557527142901171049974613645650995515849893452562159048417336866013604771207705583274034086316108380805486885379527645322457154888899778948998314645065110102602898809779423628998211798034735715118409954722719827943068502430175528671170785363707468389882053299334404771373577854967508102963031243244786636938264978359527990206178760103106975360927713998672368241160863402400967945216412251105437762714308753845076742049454765464968881214902769476701795508165460448578879579872477244981817053613351088178099871801017312696112222433645929270505329943613068884630779116861447819357639273669039831334384186201513018170911490043348346891035792037176795423628597219886504168391956881429173361171732408035783970416924450739364075388211081382743852185458842454188174038582280099461666594348042181973232702136164943319043245948525809407980804819665991906535020584815965353169991296646650026754468265176982463928495633824646103538441004761043207309453457999065604388251571715126080557728867393094055512043182845534627159999072953128818652367082731205812374098702064023950425296014514167313847121098358856615368787768810854459586472251343562082169272370874729432284523144316473578090199379049620933021596645664939182277118324479531913801152258118802398224764124254261120370271389705836571405054320052715575787118531356443450218543851078136824187686825298685506198379276464426254059055581607413969246424182472977010024130450026910765430255098671897735754256349107977933010312480216088208351543310053732464900425503377372094480225453627306327372477866701161718559875550225668860898028929542691088123415998155673812005884027362580839086640493410420536973366168388349158162493596056342653510313934572584269060686750856906817750814828964555387052792316650967811661508762888743935231664583549710584057585312554324957551889713410700947685183870240597657736804997938758456373289575678635867734983598836265368356793892145721297162948530537873307244894356726333897954253928496800063061454602447658706709139801748819853794123055187145697795561831311397706091413767669726432538418080357748509455935796147774078213588805037751187060308366049237880889175198726616044331188113139160426373277701930567716455278915046668483870002132599611441972620026426036458015454181315090770162106181530423559646321726252758261982841978575009214893043788061757148461122488437819568081825812546661418559197640652700196018007223503915855045070414946517291633130381637115116244031723745957985416793868160424024646732579387918450533723147019925797437936816455433787564328908799904859134756282519183373898472708972240690198565696632348440933457599673740018810419241980555844268849899349343189780800157800693367549959175688477218943944513067270905108822361492065118208246432262915241762757642402752759891337874723164505703820064547079265131625096461200338865575639520520931861356367522329954144710563678598953708162029174488720016617565096127895897348754155349485295389807740986633453209194725208875362866336690714186931699820899281055337521916623381674710582026007223443859788849548010272469960627339551397930139326756392148065881531724945546807081260616946594898490386983139240641213794360763150555147157977480696755190788582551078753771319672883807189814009857346522041898357003045433780122844189058093125958557583140187039050842861073668266433441351210015010831134446220113565518110002672760353411362055991198766042705251542297559965470627666000602394701127787004595243770099775609555508167135922738874845477831569413366301717496976195047481011714766577755424033487736170566056603789226845536572943373442961671647982169258945247937442689590309676515776076381983226503377396306107049861898347402673383562951217340137655259731855464947503361231080658746904032341610875022974383611600212004281396038237563587420904062224774210086643983330836518214433245232639690054640377611815986496577760076617119819326239763248531698315869861816019005787185596982275873759368013236114365317608549222556066543916903876020598358707050809634717864417722266796571246725675220165117124334744839348388205015463782047098619341451239012692760198309911489339499811722253920225357304689687162791701162941845773177129801591193368916539802408059383311243413704274468142431499445999726392425020836542544528375251097228796525914467914693816004993418932235387736595776946791118397565621266176397510200796101728745098591823780275014526620528263965183427235252526765944361057453432435073881763937905806499438911805207668743861504370181225218333924608006149618643197565839188195557223998446340587605256660212855878448664970698025332654113379079792289300577868409471839464154317517275264381953995046540053522850947124428755745331124653298963915557438891335665096447750116359137803214830604447111817452950317684038791449285632833117316352449040462511025902617997339004948811095437715023629772198194833531644535263304310984258294500753148338550651499561459349083603120621065815678649988919602334033866296316784423145723484215253053599016713247606726225735033875818081756048764754306530206619420654979979629755883979172839717537973474509896556543728763424213903986084722616515023979244418762856824083525354775660658530595174214870567160665722991430549357792168009422554385794819109970138857487677573142680750277587712190369876834670633241385638261590448972027697792245382069475111289033804572372643656663349427239202018259621567583000114665942555000694988370392650284230615516210988691140384918570080098838383078850245470567553284115579343057542006963376053267462616782616188957851110042812421034373649411807039619265035431934125780642920586263850749042265650920924990774576029078216523358840553190283626480700444679561752861111050583159081223315066896972572641590420302257952566497458958759067421498093896590042042195504734374715512142352172876842263915267613288056834762647968514287898841046433536568244408788154001882559853185399464557316917629300086579776117464256171135955287375000635345032222811633734884912464316049981583482913567006988485106193117338968014632771762830213392259326031723317602120655531113604055653465835721563973377662283805688075958666397547795613910569560924986425338182624851725623537368319968306852170945271819200744219560816799294916246052398194921380141327001623058517040528363447962149431526190419307260617584411470149048287373957179622001306279112945402203073387087277071570118893191439160592677496256332042655241899321706518430607781862564218011894900343721729539915862358316747646940422824025165020508323533480812523072827119560654463315480465275361627996820455605531139797999501048397831195462108004570997892454598346770474935815903755782184405734152703004639528972831769525905871082859656439757887350652394292704839534443523306481736212771752723178790798920790624887342289145576108044715839577061651989220261749363021552147255525150522200064712680830383953361720423889457957376897013861417034259068116034148662958531868588812689159766662543281976156749479982059095414219483285769423971833775593870648474490998498756628389371566344645133988962781086094380767546355989052007276965548763911356345631385176197461156668081904470087359491548564946519821352242136009403939266619852135494701383688553885690488790464273976731281704949315863805815727295815054886322284720017650168565215762596666749608999542181955158023170226182501583509189256064086178125983050079465144439559980264155923562528697149153993794431685173982850967875986739721016951185705446738014058511252474044037216513573659233033239668124421479253709173578101932071461871366920318050058198552288322174149811265695568048036019824038069788089541216252112784660422097851007030963774599945948983836903912752759463932240369666002959476466192116497454371594127254704585753619539965592989748036823837867685914485358823143405509261630994738439999084183273589803064592841856150252296397208614619870186654947704001078543082150820957735217202705975166761464314736665278877081735665577530980963496198211762436765043357427041632429985162402065479270416352617251328652337505505572053122699183447516629165879257405917403007773495398918374294524959717799505234757397219793085688851871209833425813414433481809588653138775906925135871367612095960714060056285980447672323614267698434079292243534664998297170407811480012637380546068852005337049772476713027374665098065997924371439315371616135893919311845453735149384406899901913366868353757278119612022923358598784485658819200716120414308761875094431460549552149252990941598065686246074921744586926381991873932020995563485807318532538369602644939198266594659415936681429269210685111384614852184984671182561106009574382801070996444561985639329908053124887553623919380218008613816648914976782326289843127688191696851852767123198120746782683184484695348388921113005247412531196580261459604221783996944668400884291291318519846311457296003005188718259017541008789936551698216619686151560535291178809199929330831745349220285549183700745226638294852884779084695993173479387364514067366400426790057599746788840188246096281270265608723758557087975876536594675426189039348678148761382512609448391491457841835531752679548886137184494595887422204192387741133695264082830745613618882691396089215465707375161847989204669508284004717927430432653914211745384560423974990742155373448862868463045231129679992589055087696901294357456773267211514408866522736963333026223551945772028936671706224317386474966990121765005853561882853405405564948120793527718023687867265490626410616474803684703098163797096255958229138589178943592749568896897682798329248765686632188365503454463727643560393787902480865589568666318051723289612156774726740894736221985536558276020206422317983621096834988620586064078671783491423321860105507258157622817676411973474457539671077684711273292159287237813952879123842099160682319203934714910748844015682498121843838713185524828729616830529636788916153686705976401070081133090824726604619028268099204059969302196007386950295838970505725690578489023637000343820071376236883781942104173225834043646774349672922001304567908550948427879522573355497491609839101457662359217749300657959877335607800333995106375891656605137008833767905757785512749194302627757940148182987504402551883893836672677805358363971212753112328089659343299083805212308149417766893253246688407120507395296686501019224210956969837972634850880261466460712363010365440896689034322646836500875720390827232334464244052810030807216912302481083461751643054847561118227914736480654464423472262966488571111665771190888367687317973863329026183783634674274643553975341434997435684666311338379538546449994767440891353211579962166995115231558493622024570902779326572280838766555726077613849885145705446507449153565002020774713782502963936960931150476353996580999318193626053167720304697075017291631450529135746148747313483325539833117388004008427612882463043039107609707384779404555592043223717814126368083251866070488814460492986067984124323588611926799395154792773417119580472478644897364805072838069941571198460982466897768844385522178137254882486685218552559074889782459759325409124758169456535378813918428890599836597303173929661771462153722561512183798693232785917303234040830244490866142789767618042726598088514421079153774471696664408959041200577392504161680838942958009436565902941937722674865392177340190291987413846584280609717647954533363030095885293343460334514292080606516049880049204755355441391468191564585143697569176127007418024350215748697768637762943457236678434646163956516186464892840221453468960931083570403375154591925835090774879586264755895153419208785772171466744402875365594915723584160547362711544669832238716494182845367017883080279390557310153109612066724184366292303423688861933236825952034819458507958813529109728043744420229614612729325201204150404229955988036598403020488603694984929368886765527869059884580504004722785658101652776868654180721640686232034427096942756027255055436957237713245299649011714806014512239171881123784426047612702756203192153904660622692469625399199203140503117648155350867087968410285232586072911385088609422390391360788102524655580531045197684765930471514318158408563499317246621705965977493727952888975427698071477930516455977447508174389918207217571588908021836609837687239317839810488480548512750242346029790624821403960376802315702209949765006829007415777430716498619215667071325302313185045248731933796708446770335861930318298441255383339676857324810549161928382922762134385243684791211876324567651338897662326615318241179346039567427633800435286321155657486319283403193148030024505979550636712195690966542372691885036002534427668355254451735351236789865363181056205501502873218527766874494888724464683821835062404214790678961934016743474402040344843923093610043146052199285026105783898202660193708642150381055587277339765432113422355089122163207331581422406412980398052576413641433545509908671536278356452251342971895851996263866578642409507249536757367995028498372413321913538250414305893235725776841253291865220914938126043037409534236326013243226775528099362099943270193430644827811262299788722878094958527088247403325005887659806922885173074415046767312222686981296137389092785015835697124084785531039099378641126382672708641635390028977967879016539406049645651347243741225481672032691127669176312397084319267620351738118403212055304541389492945935652896296328039899734975739945616019521315858387715880612152547310542453938752835639585027535529436266226279948053441421735652156324309815780674634926512587507749994251442165900949266829341287292821985215437021273404308870473477899952194648121856815907484928580321922644576078615032642074495064413153271291280356227945959423337425486958043262793774061959554551886907876074761540290115894143243470958663761412673165468259017384541249716305494101501524043955927843807543286691289152280076982912696918146969421673684254104722127912234044735209869940818236555102323973195622333424696191371031812912579361737230620015499300252420332667382237299146591750507511863978716236160154886153857313928682511460394501473449969617144828879181359265095600747983259070223262815933612020099647995256315656321854093111565665915743232783836758931650398953188206493019935673345021870994960384523066299834810206731355859567002697720972304174260989926174721152743054551734170727209392525132239568809350144999220599977878897749689189182446521222443027596297676623520738596008865809855563051172265272979558920424698901639396878359075886466481946361446059790973865682427602230525237256618039954452414745921759448089339189404026429999209754354760898519906802579703924107063619782663764671731567973677157424520461094535346742491961879846692889648975211645220982103865798354997923042935189066907354458923012978892639510725777093818626124855813883805294089913442920009358282502782260907432199934788594925714389816229625045312687173582423349788706133764141207579641850738136188388189115287020233387551851053078188274477285227334637481749212810292871896559677008609315592576422460416732444057917279771599812196784167779489289772547142971665256348835248280570100645724990626095639451004248030315742546551400216780457122706959631625996990698352238826224108720584265094490853264023547453868302026122424238584898928608594324130031205659322768550662337324953550750155137220096889205930670477950044298912420351338854316758719836351367909618246092534229202613176266245662440248956175922644669730591155376650369547594741851667770877361548065141084008499828182945716921903223364594009627867351451317826568275830171598069137662589472983598829132739507147794482937066102872115636484702766958377340200067280615165375333282638031151142674181936400992176007617243228591004880069507560670488631336035613685453741962874017847314577807264419295371273984047368904196595158320590458850453171728515964628185309544457460860861357894281449337312601864909244468048981394662715650397851422355768895956383367523109059118816636432753055900881875648108838764322909543200031988162926470126111735089149593451388515164185159083642543869641846366938599074216072752353551959658387761943789992315179120964840460073983178066040696566238550457539488917360818635163679925266883919066254233625064675810333187906063705729765829318834195148348533608740287093039979987351633143274849821393164515053996339728487995947009107045680639609111653719162772239019832839765654668997903428937216586531531853958203287637260783145738296396718405021114279388800712275556568378209293172015961404480112753752814519642767032330579521379883429652766006571515143948986389550915178978118140884200401755541238339836655959180125917484946540243245132266075535674282999947990119076620256565105737275224569189218035197726394371726985778523169466413662791114856196909124584448789225445892039442275728908817216738210038970476746853137446106949568777795179003891416763005842975993152939026680608501371939454447695728333950776112499198588787833473605061601579768931797043091253998231203246356974841596841190126774096840834745669782037219408677936386201720034080963233086038177034931755682292758367429024290326149412359518485220550935122986244689455079228549973255593594241752518494061332097791880536284878508292480339274923733422096223267647543121788088246250891123052655045555678257563233460068381830693299554690041314338175355169061826828032777241090657868489792154578239734448456518092577425995912572801912815696455448796665053305445848675516207786858359951409955375134332597521452876905306087940750325804745991575984394002623643136551050830087761782514832433449620205973646771946107940571997849013707153174247446264462260084446612289560157942174020705348508558407465464671640513183505572597328277377378125059741887056881964975126277726548810140330148542464730124698545372520043680249546616025589491512951949987358403876653299949142920238250184700196916138645521869889880005848269322353114390748365077279850974484037424361115075248063449649204155107958808321287760286473543870956691122312942324223534299922993639880806608490274594457893755500410182236277897217638940528106335871847450926455964480794814490445859542508247828141071172738276028649869956514119794596393452177882609965517188859429028950113132039580675052747525742664252853300763736126806123175059041516283364713140474262273914784407985830798596110051490033336624892647890684470751150180445082299636192184532891716832667020769306226671237969987816387443290695897154825256807035166777606064390200276038080181671432358966239206528401389281310445529919802524993573157796640577335185424252600003531497383443367611627511748155466639102042719288516330513295394788264350233740257521696151564224092567811937474697319211471606856537205890973366277766930864890116472177064406568587303663337044464747769526269369503693333610663849054602658710605127810976229017476427893628675383767828339745012910560779074085085939083085524098333698615834920823245297749629106085710775121346507078300236805574642182993672025408702849933883484953793038381711320159424970905634009109970208939936478073131046500877635644630035007680031263202780438103005144816362173914290543035305482344355924328343509187263475241813674038155618803777447592297978042122719198518139058760726569910889541854656634405913319753819414907894373999962945894204098148881929351391407574380981575990273501485485268609832825502377651989975975790227428442827738632372872367531851623211620785332219158501793786959611253477668457641465410324348882744312255543100770655687471729270118121669872446348153702666867405067401171784127799707874186252962354479671047490643644062869899867484397239684971535362149718557913071407135981553959843659288878047354445010223843220586064520070426228815112271225757620397055897776015650920944108191635876297448646684568780477189828572096651426026553441893287056902679039662254668385524780654660973245519707574673125417095456017835286321828939457555916161054669003066326025185916123892388130412661040834167556901058604765374263835185627900317685460956753272264930012838434150831690183469797611194787484787110234743556764389773516157858590174154180759457615996594681411607061207601217345154427008450536444905048299002666404022432794651609565944406140517223667442092127893514900997892563421142726361881550957471039246459529232487827635533690766590408812362051075074745555529551679979652416253765356917944543250258589090455461638693449614945969578447701703387709819228068120677161031625107284706450245524655796203289386975994000704371058609005003420410960944038720768065937341582248859210248533586070940818540905654356382900695179637431249820722963509337139140048048260694951947372791805664063841686597191039099118683284404161396381847991227358826668476000556688735823150323007273781405530200015077580411871242078882304705538131743076602013415185028721226669166227588451935694622622842752052034850312696579556576497228051501077729465673967829686759683391247706322339921996571872421064764853117570875277952815591768401644676548684087575050288169701551855169272731875772493808940012896931385657878892732074583159466569532083528061150561043246827202327941122802926012530977378383050381152616539539216553786054964919754843386258372029108634811053870157165238380815005163672125113335976708216048289899712043867459181118692687944887425533476346627124952651944296719636921067341535461697275927789586002971513321123328933777640912819375426014995154726313537158852708971115728492347547300342543092967165236289855236752690654110944385990387315133313398856614439591334086222554926906431933224342945567260051516468766747665794230823851779245069595207057664814054544526150784714552856431531603110302720509801172847152500277702718325158436060653972750121935727806622003276138419321532882489937725842538565321481324223855429059825993345511949054475086422922890180471115518357001062392454607698668416301695349202224466805096475035184420178420859653855799012340521856812529078783234476837768479426990638859792803752822481456151958341802206633051542287001844789250138255412691287388641799587622143748260716116317895065120785755248165566945348286942957877496626366973717130638266753046698080751423680952972420542682899970036131880153351942120468004646758605524628459647159551923589667858920636363741990237820608411173585552520869539066854011532458127401275959079537226506784911824656496717516341070839190852209506925590916490123189458522622224785740145984995645072439872230336773063564263013644970394577036335215383411049133524011998769277158536343537160196892873188517855264568629500046628704286220151837556295419037260144008921525220603337193490182369881173520589211913299603427473628101912295903675576800506827163305659963030852526483940516397613080670372415391746437997817916086452764325905843816246047442268297475482368452391800428340979035642187034206004463160737027225653702813313474046224720016018431834009942563611334254544774640860911541482840174555656645037553868181230650088763921934860877606548147393388658663920551985130392747393191036652366077093116302014320583035919936483047562996287168003760494214206934012893749012412384855738992411603499045451890541244451280644362299075099288722926890028523166064103597355710652957160683119487220775704145192087561069027746038248334113557601935139652923756788674917289250712727416200102252694797545541499978231830945284181274048976160709657242417525205771514452736205244647695016120093703610048023037132363250126588794891364882551716970201693500037197864396734935544045762425098154304435008264594855681303207010093513234595128673261179914950885257993790998886520634119830097578748082532632930243037670631444706137652619781249432958601815505342627885524790871996486644935231919399974333907181526662420476664811453825379754192500912278210572815468811024031303471994039760552262798156426414554365120917694212207887286968494643213324370613471647504962521937289205846329304380024831336303179563607984442752902223280896385676116344747615321512690249377123464578918229763429478377028782791095005730421368448195803931637954752253800917050973553307150523505598869473050499441171942481146857979429487428168490675991618978662518601133574585693734177453624133709540611313421447424473383647480099159313403700158071864267608992564492583344521272365377010080189856131367501104985347145044052219391240171188555565523920708466874784591341003920314289006358004574579173332089056505807245904210222288945758596783001178535444029668474002235658906137890879620352951536386801348459420592673395834590330770083357118435483352591842265777526171792157067663968522884201705746851443485999639255570342572600420362878310424254284117940776860386544552708446340079508983512222558611657735147720030791686052881120188619457522758561458088428953724435569335395345443669358763320338438459230574281408489975176818539852774966568660174872665996572458988214598351156250993523978442153515168811021411862408321483296119357350508550702666440584807944284799556853203280357294665914800721313755219638645369889384257684453396432668878116166544436497808391688819485483249982188105102349156060923047606605425653720130793392034830901910407122398328558367835658599641838266255413190948009918513744848502535347259998190781701437690166374830319271066132644656244668624857875064402067395939569792409685679169486502810611053971481471729596186676901439417735319958983277103918254226640418587827115766691676296249565399031208050676660872833846914793087050927755460295549641018771874715175452417103111793664242506959097641307330993840401599163938641786248619555037820236146213706416435413163067157707631268345291685304655582835735373954192017591363106617909457597454708785818353236528169555651519722524914226782164377900140534607303815569382988841430375944698669396613412236878975226547383430426632354965991356343438598933515167976176172296680997153481769087743571924997848061749663506183127420392523064189736127648344585775463685123475593450071722572264506426511474658641260730835881455602577944375653336207923155093684253177248514500912053201422308156575238357430832266050925698324633118403522049720825855826807414842568011442087628134265504194206237602771472941857988032740582907956407227314101474588806782461134438913179174270589365602544773618995279452970144663962591744295531616713183833112382202594541450203323708314805122699238620387786718126993490000223515586006584859641956611414292985067705894683510057012141976615777719545341697176969675315626891542514790213942308031500819781818953934103601751663137960484062920909599057357248685796934080682772863239485294832796754075105735611595168841803598329329247664598937235971004154598711296274119425135438781811530940533445072161446908635044022221233893853781539080320842313156466467019834004630441937426562640707891299611435242692561350062191805756739355309787362489617947953874250239780865370906289414607198798670187785113090470758540674435719265842586255398879044914174860378808502883425231529005191948776159938500214031126430972492766609906857144173160627134420824333079361190618492447699126998767522731970256680663320198023153150769598148569277128760001260311734539496395996984299524304728520580397299772860951753678879235321644526564354826536535724034984502237022796449794419569652651963976219279818388938769474438666575148954578460424000921150047489328782519605030220667612836829570199580122910423572078788716723580519597386210219237723443020355651888209515293720840798240984199302929055511915467973710167588394873422218020904989343775123468613382275193603997564310103389886108298739987477427919053967297593957709701895599609493459716828623861891479007620847028629505878779097214125368900519638416478114642410586190116638470222902604983969228405451583579918312604369414953240389569445988495858876533083583230069790653890924711750908149806368479795251918406983770555667351670580340929380762348625468891417467807014105714034223821472169144948923866850252870401630671504965963937503653650600513892811467397589106998819471481900124367914355069004373075752548389254170263470542175029992794077434488075731078163100935652014945092676422336723280585292453219729749788668085625001410620992704174855870209757915980865804740957885896714133906975409010161003674441443011883151449779302883938016094125879845130300705920224773229719114990123340090112585470934300014879440700141937007587710473044814821634011065788432508206229996252985769503875836576721009922776555496097273443264063512180526263570087944210797029447989225015901855286456365485516903670339349181037283724559146367371393930454007145735231126166771648912124038333688801225003385071563584814111352235326118516562342487983936447672089664696567979732357740328714048304138529772810638822188969662402475734184920147520676492151764394692046677438433021949477502899163302876275937679845221633547339298193060167612586471362815276406648182077720460661186348364935140806719659635474554637075832240840545324596251546561271332218663938898446424646032252216352870349437757808656123732384538471023675060754674754525571984986493505011570732753651796196951623798796938930388857497048442050211435044562707427479009819504353580428825021221050008413086128900528169333859649337654580064894908812324767591292402751985069750258462627025302434274026677097174879589760364327359969217698755451826388621135017410054216313920958794633540605151552969881224884754253058206675726426040562651145861562098445483558801043352832481181214705669536393755111087370664773100374652755528390915236690813556023128974958056386694519107580416065366870577909971236915114757822808002452092673653411632812009275073921257669528559901897559040265899852391010720650253425923526024137094655720379638870923081374771170360122800181332480194750054630237503417421828272478231243175640548760716871062303790942722028412733146833423617592206178545106019958447734790891787374940039324277060279334247418873668356384168802802376775803547560365277857561963030601880725120772187933644936375838658541469324028153404156231207455258159420683552092220256396135333210741626229965751084372998583234006339669217013887256888970407987663523695344224788080465871211062432325286782924749319446823234994379264220089263612742291851757563699425439333060060254226018711528149058725555852187949823956406291627670623042152778571537185279140982852591765773156829126584903937352351106698718909766317013604360192387384964699105900206761061894792115502835522550393574014423394509528234968311549322386503361587687465806391766093230012818004666288728973327832583585318799815172402280155881359647632285609101523775082579080341712510586299812706233493836005805608673256708919542967446636583683808571833008703252202593612316494154019135744011995463580481693111764507394046936530615760379505548181720954467481723068897723352470915002869919032216761048746639926105335891906041981711179399646549746169041681178812663969813855259454878509758083150694288974222478896007915590271892156447038615877575621848029849242151223914571819815333214652003980811195735799321767366495321914105381289366452761662089452595477662220718397435899927575185706430326530924732279395350127686118641786256899608539747571192010029437715657937887130253026597793706977065198001559709273682557422623448847160982731329500874783880571306807992601580043498581928633005345554012437369649349015863943500055322680342975071584794986955867198668615111870155278331229644623022382102721062069884406011334768726879332301813741108994150290833207519825823497727089903474412357600659872582430348455827179722466701883772265873460288914803685376202778003763787792722862827830110261916354560901352032105714973369375462312231468498972347798791544986962907149069069096805598393947150091151972427031761685168506656296208204311726142190439356150658839733169295434745638644653757177524991504667930115727484424284091680919030968560020837891216344407983681911195909171782672868139202646488746248606771809362010843289454809928902970022329068258416473918251644618661963459209712138827644739530161302122457405431795799239796921715206903040192069615232510232143015838257374903018816759662149608450929204443325042311643769815472192673697448693474831962698765000596528268633353453337894447256326547290088713572135953781576753394819810490084037460878694898584247908877013892034542584014470619970651522425461858676137111579982027930218194426043553291716832536110835220575119917776785143557800858760075064362867900610398209758563662430848277494772148104438640587313207918082029134705342265206720550372201700175626573154571080535337814392557678234695278523629127199245863027035382793804148223379313025104063456679437846217880041979241123065377377486719054600941031305644966593466840056115072433948105025767398764154441930671923004840024261304428399583602187169497567004208640457277166326901882534364380969934303871879782808640847579160471364930933029844251682644045273450154307440493720216640585398175961653615092636549848291609762870269592277132917243523412783255479405693928292804723224194544734890336150214997137846826616528146520779785970227034565440794138414499247250286690091213611890529462999128611546707261949459401823238886428823926798444077381153011637585416395692492532868603618795795267426904902499230852732262661249177100748472951357879868530015267838707089808043653031725983508281777459049773766825142703991620383611562224486003969702015672885830808053171041116254741231533751966097604915094518718111859680430723447696886598305028997047927199135699756275895333675326974507032785081364401538432548932250842009777630642009236100277356707406378976640314499351205441812675096689284776325735722196930107398446579182425636298988794090581703150750082652386933890590640680553221726513065718167245101032666932891730206647388784735312091079837890043709797302257836806720307155297694070373389433809608347734043336488704154945887264481595291362881688977082233572012862997003918563874038354821483940936757741452935894355100985625787815378311757254908815194734160180132769433803422270299415721437117154506757120831362220799581655189689546117620997664021471088199123394591438906474812788582007389267621760548535554389610662858373099006056372926821787781012689145960575143978497049498138857824711263241110568876038206488646598346727237665280362922993953103993569323315031968507762947236446908772191565929877877545138880939840837079903772571698785489628226452552857910413214300632630607197657035921231398442527786396839259103571663919131681734762386014960011157273916737000073474593013105121437132744535763367350061849442984877895275696198218012075479621430840712084511252203870909044341072690672677459302015402975700636702542845363065566572507527335264935391736961924730494545599764423309616405860406694239454907328070453570542088554771402745718776840741205098763914686951671811102736866261204092871435811545306075871297988280713987754869545248335686241911285314945936324754736181802775559964908170286366110303539933993010927042610040888844593406747701428033641000626303594946001886940877310927944426937895371938877833456604281049537507608740727351175030859395365646222426859033029054316706191063926638052900016858428478292284929226411269373520593079260793535409331931162865746955047176350245453424313501264932519655966097822749769645869601543587962375305238276927145085478861156737617486174423652264595035266347521111123518017937811894122945636240011349236141457919029542425500178266915244849916046546495448430045310504356774642330298294352155585674039076224132174795391852021344011829187230852391104576321578694293831647632168279782970086220438469392735534428779365573232396345059092651353863337100134780004494720062618059103325894255748177707903633631911174327890239917229261200637113126697024328476272179721548118050042043018553436808767104316327058894704214099124186274141597713716750901618453042194720894810724671790671938799773786130230855780180680654155826177451111328022635150510973953604672481815704441206163021615687657540873326961255782985915596263538498983706150805671496669288970836789477087646265789615422235371428755264284017870400310235443457428587211879375266908109074424669080528321335069219107276719711477268314344851558905063381087725818752379632726262758765310506541759524789472973182990446039092659489317425822457342759414212125565144191482657219102847270740639758716382920807371006816253359691461620156750528383146562063886425090985253471781045982377036161844307009593319450514766718148862383888372197836638141334901018843505127977346113930477889372033718419904688564962467674352938350340320851885367349450213588614882744483899568424925343367750651561943334695679378855508204188086239637113860904785401832430171762811669790523932339738275927659797193113436267401478559676353199699808439186309112872998601383908497674260955600660082396412981274409583752155532789647937740868598043841172073016091969238108571473534192508638314288923499854909082289568034778286912271186234658895158057425343099434400813252154470313573810792320241359840666677354000155377282245865282708956578372998080401320302840174840816462955172980881538684871314321807242034763391821996149192584296347153718533770383058066874097810143407665536081307314082331517275673583638455053481639619560439370636876194481963023281396210426069947841450736707250479575466897040297792408016444537776472210869403896125268984707335357594080444022774519885214349704496393567714610135501587385073512800677255503682807310627715366914008653872781495072683142595090218978529613384103166671974404292635819253763602785257544752673704639772411516233598777049966610957758018294374503440366951491902459847731718283501591301230157225034694066979794997024749742322574506180936795782428728887073093624406627051961220784378498182429371725131909128769082737724755965297627460808972532817903136584383765128976006459805431234087483551328118847744664958849016058130464096196401568122582971212590066350176610182693297815733356104957554266583000589484473745953072961302496331118547491199426884844018543111206110404789099625843760849535488910344890550633378098336324703656188670302227477683677498037370398948631005462664681166441640542778168471792793751586435536599614992238256152540087112968879575364562572390860484675229696598654940915447501932767694763809555443636649757458198333090409467357699907097828189372706582712638958074909647345909471993510791800050110317666434436194617615526669978977599213372624171728057448241268066839834815391594903529744160335604826230019525285677267795258800799924824324461996614305548562602023266239108424765551076621348719130904918019221948519161905776228423644462115594757602198270031724452438158517514691754271312940595075903569547551611070827366288911152993284636559409349176615256393250053378426694563757627187693499102310192171685324570249205757421358021234368390600647169380493751244548088153753418152624421512795007623898897716142452917945524590192083964289003824264611726920106415634664976784659067770596546880092527682500143328179022505823260225260878579273625888497770175577651567218065328222042125691703189936783062130951511277004572253427989444960988239272557825483536376192937571642633622601251162978172239695109244395668539792337602283219141760558107738132820583335156948395253246007720110489556087000598849779129819746292546603945246369020723377443420383590629542600954388349705112876130539440513503563463442072715547162742297601142895639531110942976415043015715161740791104780566797232248305167376617888213403983786807391769952635290844494992082254426208941185118209028398758261984346183443248485621445547900208435990674680237081003570364436520078877624050389694590455197638469878093822083644029469158674142443573447415882079819687382612105654997206905392730422602485790432368710820097181909825545207985452069185926816861230404771941760749556439844331966740863638701024083662109956643623097066406862792422222183328899650534839198328695592260419524296495197210170161287762603891641740403534803210233331499802853475564421242956847330280184979978039499042131164025806347789144009734719613491582936145838609010982325250383951297016713606355967680827775713608807050045836186711526460006626137485228798914563917741781179632081933285050782750458459895971531731934038147884734954845132324144853162685408648111051175830943229927741053399581916444954990704238601925050088176193000562405543297785930696081360732879825690848956711229906138862190619924300765836531148914707571775926643485440003573968939557170527209986586131437039210062613963387675928329491909841405643026815625253626281028383827831090108792679829128655415732528808177597984099034071756156140918781127193542305576100297260948529101706700677538443096719755615160285957131326949942449434637868580268260842366192857036647674764712118677406872019937449617350295511801594952981448695259616516377880180261469444256503280514655086554093458310335745109351096045258596249752357117260244193912454817460712239374042375728944888041395764147508085943742916126214348910336968073922734983752002571368187105862592930557769582405275417489564657437453980196705501310698905346534945132101955430681505944506460175843518857510633102117556743307203866885271795500951582513773107219524881380492828417174397291896029125740076811779609298711858037628368249242716542122865604622263172835262179831686024270954824162249517736597318771258025532636770865124561944412010643194305556218559861956809366000395052039339949066465853184147163784812966552273853613395548851811712960836469649097318826564220045752137262876518277622585998567435152896714783505466618911818937527735740183865793302262882017554588247552067463630610067732982763854944703257810828210321876735505492650951027315891868315929381775295963329376347372118102867652643928295577428456563320207459617985531678005874516157227522201341321569224849971816814448361802810019939736098667149063590033317572009130897881074202817597110501703405982313407988031520090034666552145919831527357806428365126891794893283219842142319504914025584142599694346262307961217551453939494741920839723354565940357685540379453863824968825212481959859416959472704877460249042389237310603844848980936275678253018437447630717999246933416401892288652402910316591336430801428574333372682339576826202369971127347941804234369318828140738924232120063617537931714467443885838813578923215833203698296262299687153083928680410985393308986813219915954235110052883522147322001054569775789102307981998006402241735329838417720937341052109840507521261166272597361892115908105204307545399711755172179325215190981798851668195046201088497570740426660911932662050674093934765778891411194246614123477381368633806467565963094015597288948873854479480742967733246528288234474807530013293953940342098961426428900874273947699700837743044741704863991349924026595562907055904274508656690523664056347044084652994785979778710914687025462969266765954167039065696936865380903131391505600915775357192692987396592944743571547741119891417974304042033869528257155266959449983088513087226118567027358964500903555604618876964823588264615282867357915213111588225891318349729224773573814862582205276010449486828535304755761431169253308095871775164633728332508210479866063391339630408773700855850237783679311432093686997491743408137593198159547267617030079914936948951523736777098669135373518886419470902311339136106278331648063119743828963950302870122989045070454704510613816899938645309440359111768017962348071864275201306093983895577691190704178125487412438880496524581655058105914139578732334705982465341713016032230373651513623211925472916770783709429106686069420595384202295205162383739771307541385033249985903405879405359942618236656894706039395255576508943456067154987064200243652282855354804376676332115415450943583148691464558185043911960034499664981760921589073230814159622923688738990401696349643833801271030150274778645511199092843598834734695164999046981012160158581246817249714888303299187920794301095664594556508926477181125722726044486178826146147165485303305828733341937214215498513816606325489722881165038303100866782310100232356609760511352164174823345439827370517330033784993179511332984200679337716802613126927292759789157245033261929231633117248139263799250660453735483971569085757358295977640108240709902599694664165223162181359464891162921019444191103957023593626690769835821668690205964733307872158514755995538635418576845812396779589470113453553996103071453534748952942762781035244239173148364229040953938436025591657548915842126943181870050494483000995693118959584187969306830071110983997083697183712756815510732936940798437206431708857841227864489137017102667083711832050399488056551983837552453722280675156020375181439595285554938614576240560649091400573838622132297545968025622784609779153464477743368505260569833274559518316389458763105391794060684265000584190675070902916791345917518304417233539421806206128319399767654635972098248700640348349494971877309636975643016186522715509538091887666044544414675442643732902560261874380568701938879584535401870877469136773139962988431269136922197144538372295057819017558266940289834220472319438955553554117625023241159435390100462012429613476511347997609559220470679729638547482902721224167634557587843747951500131152494927945894965283717033443739702784790122277100454177255790929254196533798765548357603251778072994332293363390667268090948346087471587782188040411125416970033390499958735076440564271653617320656977931433611470476332955322250099006198918348914892172740037080708540949543037927782302139061618362480901844713623529294249760042556361729009636203164295809266425708195322553928679322990882170543626893913150630907212793749413522361852063245642703327375118589891587807554265405553459854467571835308718015179905080209639764201718469553724945770551903281302009893041868660597994057065176961282103035654873455709456332432305401002515590465507701769932488799289402314160998226554010712756853937843325430926660953706943531481421324556477538992699376525376210785506304836876345716651586910080408468371413901614109274740295076569125280141451036020761080956621669391604013258284363694931401613890526315847801049035843593613045084699929830240906724404088126345079733799731269506422112616988601437148262262036032572170688590121158098530520159694206028176265502300706741107823475174675971644215454474657899074716851338697221761777519036813851897812102961487044844943683188690077119830880678167570896909665920198584584148689847137016416235045906149249920933078436337074894642038855227642746366482757639148889623235603937082709435430747320321460232151543946159270045725327415501627531887272093505780025291775082762332857062656814168627299333909184609209742100651999808779298025277549033135855577579696838391890165738510162763765807799505848195639447668865470177961051249297493426731721829872461333761070613514073142987259239382698274864027052668844142474602009954458909117122807294207179726319058682358120757191192514662656393485269594998599618291267189015468003779985185111505140516730949858264266941498154659105448812821429768114916502673165977224854308442749772623588361835689787253496738623524964321956266511213541634424326522464387190334587970417590418571021720305719475454558619348510604472128049762661984117995078803102596779011002105921894821842490462563297213264036578606048225414544135595768151390738881439807569594967185361770312181047390284658922555324534422857912994096883521994314004290175527100768122330421170189289227434556188925861291460600113747385022151060406412018775693832510370542418084477143184575589208015982468565326352188176332007652549188352772414101340942846397064746905325906644095636991503023573302677596300069975337255911856952452303958532837503663635170450465918386062022842394663537168354313031101771686579433561694826641869174191054991786016176591947897365338882198466285076108925590356381114709938301242168369817920772673576983075240950835086643848498411656309869448059042409289541713958709789680191814883014080591769056660831770131607329939046805802219700256288697023108226831842358784445884610711057412030148623883560475152634511759150416951340612157943776889835102918813181175306534238039332241172029652822064709937803071603109661956991692767483660823601187019343933357371959847291699167058393643572550437661145356051508415173259494440855385516096316467279515419944549768463434746747015656379798338826746002807569477673225004725082797410605178088455941380713467401762585409132167707224158191910003878756582026473860670593665922488860133673924413161969499673622978530140990188266043718225195450734679881343181681900419863384664339657278976188596756073121592291091444114812725175404329493892607200025983454804794961036706504791767636926413700572939827560113886003135193708437046004527629902809388115412072611089314342305997347587040985526065865921496646248187739936979102194267498730200955645988041914512979642320476006376486630975235121715721637335287340577327431558798200563911125315635709821725445716227805731026371829982727744070035848383692826956167847237360701228649618114968235347922965740738282960835871034793011104272603476385428816360278225652826080470569232322279192998233757463955381946920069566807551188068819941329822693314477795145251065096335961277878648722597371445759854462567135011212046426959971739176731332372866660382447117845517700553739145260778203617627050480451751149311102377973757106136895385710638165458157839402946200511804029683805365330543153425498947684617923420592186951521279890166767783646732686106938811075571075316155097399348171938358522850295703811269539704330672965761159003382014508043740434496794675431592620538752826887321881588855349602703208761018290824403399787357418787306352069365162489742662330027354927185390205833765833251552155597041557980346509027370867313745941638163076716743435838633328420080379749041756535543576131282159581233590092522859725632135127390383664445979707166625725163397634756318937141421776887335245096329619033826751679713171741930765762861098433589871836144890129573132921056987348883975464861106220259406771872336116612266097899775146364985201808163079583927724890328741695654713423335013613084095112470319351673813397534137309509999559433489245753039382522251904089212469785814328556530989880426131411678575553365039853899836362343044160054755217038759901500762914652667258657587838656464661601662812881910193970344575966070140526161884923501279036766691989558583541636265090149401825290558552077703204970326013084815064477936153550343275918470863979532421053346124988198918807871356960394628752418618931026545256296883074602644015514283031510973162172291499017986377676362175014744939144653409389214678918456111661063829330093085510073854741697626317962819758794840130738855760782232707824089966490747083827225331416710577801817859116936890932084284714196772337838325983414177252191181028891719381173619319368310906637818440403780718172673075593264578172593564146885011044885076526450074465454625709722492102461909913675029730389626011589081337394142207107346004606759347806936610439912621190712406387379744418155359994632082394982192896762244185855975515035410156289667615420414846627731682616097522204732365749211255949930457670624662445046775520917459691955370368045912586676818376423172758363472411898855110033003526306935166589117989429215955967530967797471639100408774433081195783856026525947336065986656705327121127942903289830613693791401858441409901251967033294552844319297616122474047031113277731649213501511773751330887887456083743445506595490845849862934576052830974032083463721781944115992024425655244276902462451868969197474728661696246483852081584840228115427746939835897069484889056876929797207800433187362637362890616874342324759670364947075269097543876604785587063477839143604736509476443404649086957331831886814267200583519679932725149732622128603757651997157919467672560743014980613174091548088649373165532059524014759225804440898713349515802931198456150382792575426524363545766784407192509713645597088817184306081339352533032408779620244635824498265753824680251353845943961224155616893383601255418742253150918535042407729138139871823421555375506592889619083341991472079892078336340446113276327733365324721952161009664328641768852788278995752401095159187099566018976436778769571469615360651608486775310332078710121051022308593383776712320420449261122761892544183498887798323596603642435062179413823791981731072730913094635136463980258342287904651323306976331366913817219785377251270020031904070283677107892006458104116384002336330892545210687815974014072859569423010866749437081644980147753376490304089304149567125624469828718974192527947628695656296430812070503830163246601882164268828440469973020127171292319669535552502523439989211322736313866626281379140332217990780719628947279988118194758345911501193911353380503386319971895762961684112068680091397883760650574385216552984136146047783043066791174230091961578988119203870586767957590623102269743439149930813514351499182687372406745227893020439560765761436180873383577988127973684331747215374959424426177343217717068664413393181296595285474266968639830856078194508170979550687756181915103464340515132787694881885452110143774245132176111994238064739194984226104323154219715531994778048814090775021873465045284733018323859429144290124816767247204576250138373030021341949049124579867108540218984013178807524150213538921029061744968891413425280937401825632427526262064931211495791274273014506990565470189147858335920566410844426653578481552266493898307021199006607807784190171785212967002817606832306576048897098395897252665333515083729194911094144942272825089425282275205820030494702987843875343933964898845211810059100475444498615285884642667102479068808500833231208335381037772835414799547670948963442807937256855116187825070781032862188845721583018435658381207419276976803923811568043676898249123208946581973780030451059836949431924096174213505550959753945706502873743055562395803503246351986211483024899379076594394794987002804415320381631875697795789230438463370345257753036991812452292791626120147716301172308874868782440878039645041316621492875183956487089546207650604211186905096312173236996478397496927407418174277003489442755564362286539974079141837354487418759341361104491491066529341752767519667875398943072965216882910575489206918977033320786516935042428397001900313391146664967568404707696557151457910431185644211686475381031916820869023651132692822054941685181356060771549674489025514841821278973161529307247003623648743158465476248460591489403326427081892661067377159271662354217448958404484339657571229266986580025253676193972863560968819158167741145119993463314395006726655004010872237227995882492726972226417827142113361829046473014222622366917332395080975419646467815020736533740178521182564501903708170850254199158602250771905326198694508471550400754600193727284093884899328450813307870681030126213005683123296594242634415911474094193138648434537126915207417775394992448529006647730479282573247095390101818855804667811797354967339474397539525450874043111084143116370144155567531434225118812154954333740002451168526411125823337982899187568730039982386602239323700134116823292938260219855630241996605359632771223190053153608694247255436653554759855789143004969475097637582901476656264286337726329270443156189941805926302323780192224556121875139933611502260925427942823511934542541628502129856337328832444667810186904204783016580093909025748149658651711894331153687080915930647923744048449121602487403865690285966940820050732708452179256285163228519934718744065224196769510040000390452010663874293742530817569196018304632352940344842753247969903296509966611867938557719262099923814057940174894333630338708069051851483012662305842545231337724018168710309618398663201487933874801578815057087905509043026762266518298652937689379105763029830405911152717379089465137588557601583148038226923152202723783395897296107690972381852585448803348805461835475741376426373199030811667339617130544594539888384745743981300366618298918164511658712162974827266415973043689690054995691827228712490859177714764437149378632475712956336076822826508509233069428423370652072173582438591409219864329971596738916469842392297982870622993589255503859349505426420507526170993997556831776735660849080977840733330242454114036614528008553354559304652223939023930829849142787921548643996417427869006088907892561196411356042378997073697753605392313773188335410576549982880534626874295245940544912025844295811950710879967626317871859463102384728152501637796177396320007065315650476528635156900606450488522183753004739421778399437401896218725742073177165880222427922931946402777514484654708238397170655554134837672501958857514982358755535995637591760159577655930514967255907196978141526083718222831722387085481642634488641684965178221240395655392827381890382067875879757237897084448362582835191977288052016209729650458106049937675058268283317837614332285114964699849133320323221833814700512773632296121454028615643775012109944881986039326533692664585877939068148652720554097076055818062975546027628244469271427508336966970901273147802480136071205005844197107046265420278100365126204924588851856029632069309594855244476305909502871582032080742925024548111267050475827404600498195389905069246942383184024165482804364246589632427780476742009833419330871764964707535856487795389965067832515070071617420367438439580085061091156223481993827987515708541950195247343999273076097948886444645044908748849941620407912962567940406191244154793451278517900929654045457207700055343125002242438054410965498063483351722355485552942665631323166492611697298722524054788976922833991890970968605379526090031125925364022441531829362015484136883983963150703497311290360497968163843376839809338455046671088751889232109967449396423803157990540840667756211896059946655287380419699324140987118094877075992508519910614813491824571159244811756644979720534201266381593672572654533902794475031906946509028782006945671154571595873033131328949066007118592120833718239464874945737284976174056040573752738003236724386434631876488243303840447575310490164267086250427433276254478500533930041658216717246230893884346382337488924481605567754528067799592583512577243496454441639273261341894680799216064988591797807729235647033645637582469300875591481720636222778096751054225519439975989750139388706506668804818545350883537587140424155233945228803331478439854699778610598884100527553531146046505590785579468450529873814011894849208762293089235288757159990608261865719153636345451220012306389040184418822688342069589578945354091240387112602941229719469498642054335567876101256865120959014745565709302315722857991755312251838630343902173916155160638697659086386966067297250262782208687334583995410063263368270694899798705465331479367275377527952131858527695092717701812098697847646088946263481522823513367432410398579710205983510708496523399194891790383831336901960357908613419819352957768007848883485890172263588223513176985207495908157063194743451100596523625660582954244631562110262415602533384899354060144111651870643683785021558248062566536721289552199354273200611345806884226127031843934762411400005662808829645196140161596642300726464880209142347350139565305222889827998417233365306158379834417759186670073573132582407784005436125266585817013673540099244976148126153363611535177650927250571843634260559376725843325288206295802761338082738055205091074747662622519485596314936875855166412741503489336860005514968187714311651315263562355150155121110827972519153892693872254722866185522450081048342147829502959653059530047541411755773957250040481978646223045685070806366857433271052419514515594760529553584866486570761833578741660905509711298786326328768461232551538101686182836662346809716557771013259037694094040510493397185525070556417150497553460885183674861155376582210988290545649182296925312295784348516338607349754364687985964955729522438464723069794780747074873295191559686987485626465956116768029023787132046772983821849172904302982667205103588128283486940570907742881601473766405796625693100539680432879378181139886873360145026799925782201987982818811408177744696200576734766515147791563897836906304696269452830815434795186983436536583846431853666542125983672643388990555305754926699842884632024192804561309899654545503586893015283387971988338651408052312927033195219069664096106362080053322691196065153760613584382616659347415751362050861381476481426970644505955646895940720010458764797302212848451977353849783921283598469440098228798737972543146018926707106498067432878681816460669364881352432804955684801897471281180027884472472431363909191099937530425285463122358780610403022377509547337518666641334223621676697681887678201814483360898353719927099753617931086702610396682718756687941354952017225810261890270031963746639230411636424776402215943167064541938184134151372198945617043120119702827449741770138195309772779278831503434909424912374746696199768029099973456858109285450574689589169584698337112755331080444446874821415380758146983706980636305269793176436483212687965633193919242083998501497485243599242178495686014590764362601347814353996710834650372093662574438728772347743476616852468052566887895945920258286091770339061878097247406007809295914685408698452999640116856066317315631786568779726238349911544079059239361661427705458857071589294684297874309182904490935007358723281082789036011494640624872178553525915987719460222341484931244868901204960114655534005095275145595560322843648093515774835845986010314967047785509068689946211635658421139028732881021902796261640073663997488212101025891600266811695123329775530250186556089420062507052020554361610021792177621474297701609820136262452124026578477794331938677675203161805763482159582639218775179984499080387219222716098031075793142796573216766979649275078178471243180380784148319423624603829793177399562811099904271889604159592717518414719689110429507261254997679113615209929859442401731242229413248158629122388977525878218800337366854320585262280162764578252208161029777635189616885590443745911530910006667370290153758471804482548319123056304545632876603733014531164277993101282868288996452449592865452698527903230552855016681054488912294650637871440498764828224496784119011338561422740976845130566264270341484838164195731106955025073335181976133225578912557663113996937236030546819340198504115199892023498490605266395682159247039979735906623716563475011096729688372058828590112690869262616283176614523755027110376742962146543235289605510957498944919822693898334662777663817616635710804855643314321900954016251758482816819751931112910777089096034940664369109360291852554505598046921588046267453266076036837298564708342321852663846043556575901498391289614131259337372506333316758496566414447830581417822599470736422761798098383665805453736347617551190062258308106981037773054199986608507083353104034120451213538773396505052386372729446531744044045609471127361869184734377568257689922485896261897685301865675555742512560156084696301617747589141143038756478148380396314156950500609948391751273417367316284269858216860061749176533272070373471362378605624712636909830710686192473661054683980640130759094848871974136264123997450101052836633170710449459640900885702377748544412570729242785283308373388656527658677575369612208147336138593624135599150615839150719649779614734377007117575525551496167668191279541909885179228789825521476894115632378622597540444877383044334513484101767214091781552551988458447870867154291706483290227853180476713971744061773934614298742914458742863649123198858565853030676248716957858097716476023112399893054118704745997453685493744168955837741732407930563774639938456939339516957324081826309246700636114426306332985214454252514810216609406249651720156979117428864799914932537766310472485132824811894816648843917891546449390305044370308655331291383734796005369589402097432299508242775626414944476491693988456206008281129927625080572919970248022442325337760615269818109412774811433257799921574119482206918888691144533277371116825353584585899166064036530583530548863580393402587002974069729918469661083230192365395163898218342905631816447945194303743127888259048897583259390997937008140030340730943525881829779460507058827658512936241019942716365359800521309355701153034323661697614398649857766333896627843488826073775331948564042765056857441598659347129237348403735234721546445507748104484365160304375815765849075126723700386808251962101102383290614982661233662707803757270468559596952138775069954001158933596542971398974438957187099114736963750536798578349163706629034834031293346949256745962021693062294500045477833973828481108317401511858219979231515630130213790357676310453750619815036619804542289061293612229263444656734526530419362067171677300508569622004623264750964231584815845534033112414723250814527914501089552484700063999003735236371504963450020013158442912495057913844896029123086836908089202291668306760268379259098688138922200511851918587547562504360650926731475903686429899322682327962718665192609140813111168661577700513305910123681133210296801802036538975050446702615833149760827526184330953475583833074585022954102389544185479802388902014255882374602028039947608935550742843935278106306230812390764307029042592609995770542381676557989298812855220630086830458060542558099216412116757340649592895916324500692267047744548113146124074147969918550048823643296634134925307177326573774839986842218859303365967773836634419130218443907656271877899742893498405556268203788213866900498968847506464553859906801569806515232570549630908689027074345869057446742988750878235054802218817343440362314996898602335521659086842201339702211912240682611807985249295703836001602308982196916248345672056856038177534561628974658830625812475847577437751266625712911764121946935782214248818600381195715224804053370364080987955171729930016328269166836789767333300948171918489431269391219770804985812698485914350463103641941966298625455348850146021393260984026344772872150220216879643849854695782709799954725038302464224439360783885355346084018979258370356583934923406017518096200058869315910828998490827211340899706802901288261385167316762840342946203541142827200634720081478862704704635897912417272008733258839264595947721765126754078697417297737187079431195095012309850216416920636419660057500564016410774356472541704753362618396088488600834718116487498361972879087073913505721911263566767462860126588768441659781234506602547695469241939975807346307744208998507641682366651043959769193418527499044306275659496650041413517556125497789314469828594886644057856629418316251820147282760465825784573703453636858820783483451250882820931633477741117032510694427592273242015509122831686902193862107358167790910475372642727711232969515234921673830557123025906127858327223580758151502871385009149375778700310697201087372272823794071000796348562745395775111750420117617781861486734125530766077059815862629902156590238019433325070041569378980730055907704028800922351651936433121577966150893804599962975941954438420735125599885554473607740643558810739357802011996923229582358077226175147968162050998435183182498112696494341892907556794091858162391317824871207626901856706368500137733844121881912792687611151091637839707351758331416568011545738336628888883014364353712123556315458547362404518657291741700916444471239599072008730181609552627357788566026258782878931664533077914867753083924318766314577474983007333999353969895422847763832681478506903106337480127347187145254243808493802121452069670280474255478723785885950424651005544492745043652058117395567816955833925407827076989910408544957945884907728943081821866019485616967888355034805660774978793880558008258490837184057312370908748704328208268632868563622146843054346449338125728837969201022635880553768071391569373518715824056244753832072589554129336645661567326835455550740053599586536347227362445085777919528421385295916026481039402412485500346082932917671912026368301628119732763790823234301960158637511018442601912074476368529889388969716291054813173082355627295329050831307485112687037663528839801776180519607695775445607309744934737172560895962279542283910529831014170132611672482928081219126056900978545072879801682769318009905782730190288602261404131310281068291843447154737139038914976599211761313821151216627047486119856351233789653948413272618938855140776686835606103870985397278113398672536237235992187159737369073748447841278241584767424246378846035939006968923910675482723949905895689979996817764551201898781814632659354003127199827392083036357263267792360065454537536900136526073055288829945371158452209674088954041304975306231646812478059594812467594553628162664505967391040836201997278684393178905514486950875181620290597012503198308080984175391503641201420239371218890072083919293262266621534040500270974869705599817424719907520872513923292199870914462379422178726673718173844794459751656040048043847624295987978596438322077710922041677797319795290142300772104213913470678874103520117279580011730425881516711413873079110602728426740255175317716336939433923250940727460932169655667357536835660222542611734021433056574090453836877510232929041989307363134707067478143605071054743077882877724418139154948896216049723553683366602150871000894773539664930227371636409170917439420000042097865680853526216015186848711205112571261306776022405742322648652585029305621294394833933659391343884360733945498008553430414915155158590360608541757642173802111065424727701780694227728745365154264005554842491356369217085036815815212457366361894904131584105501063733653572267532027271140370067430190656341070923390943685113192149761127482980052780248422135533243384625025790143832845029542284824036063180240125940304814377635717219012971149917141449044588252007832987637986697924287418223074702405924560822766782759876115056914235689295169326324859820745365934294471242097135855478645543495703777120125261625221008696730646386536212049961228917412312359867352858454490846901959792404921427273944168993860290514900857917366777332966360036870740520456070225614656453745787017620581394630558964780486969753588782163830427352065310428706409602341262131088749986764468444105337788803555984879484670166883195667181897331690035458839181150275496309756722480613261137680694645545439872720158404902091001057390302374350496286743181290385461104806064326075340097126792059013140430891936867268571242334897297196796824845347751018085994301868102995606349205993911111755829741278705876919713188793551979439508486469270757640569954070350010157583504626320818301315324801820765167162101877539419325110326024866514591969474848194053019968303402847589367405696081758602171624051585805167831392056389859371971895364267838965188902458627779838966873994320162942176589108375444535247463828187234340270217622968587255251500413908334385536880825267209826202056480521634378408185156832867133656050457068610789943925711084926513414231859959715027611782308131108420037739560159830124276321423686608860206940257534643288657876683181352096262021141714322016295553134588951650398897513296897329680217871870548294416074055574728767111038154625937763613183448252774332443758573931957706253255615912839891496434184108130803551934104359703864049417990340154493604074723583313837772578461120225341635347237731225974297809582036016398403323729334772279809005158878043277158790107404494822907201844449550562449875461068490659772953889574654493751972019072703471981680454146871642100929640363366514083563720258566481903956810061983550380977032290276374079457799848851614864275619055733604714187342119010202946546184850787978940038997162995523170456138968583503191012673389190061038918337653382239513880434070426874934341283332801392074288333396862194187823277197371149017889549009666210693710092090788563575299982445853907024264034973404691756259455932637270820657641544308047172629480242202398825963215499981722582540908014127988267607615797433357778391294921616538438903358721952371717824404233994354060498848347935210965639005581087036606761153614949283916083766394883078308190055178050959923220950337297494353894414709923912353065241342474867621029374689262791958537183620809005859907350911263055103401224555644605065184978066584925519614466699467908359637548550230742776459207697100498152243313074275221678728673075352759279764218377402916343390151959216232580067458915141689040782084732313430115465505349252891965349951619195561765666182552760076849677634243876258708511723127489161237866666342861538583438722412483407762803921924657262307941780851676096132723270060561404395056499614285206751768600504289521152414887685944577951930603707993038252688328907002448158620087083589114075388177469037801604585364241384007578699363699101184735662562647459038961667059609941556105578968430935987563300565355536757764177151865001965750366446242090593501899720116636894211989524405628730575160650804845618321865788819437695330495887477040228726456708402136406504665901593507308197643164674299144898175303562426217333975957044955625370495914464867006885624975820096001173940612778104414298994796711842020224385288466679860793998119736091587451283634536789902920663189506542464733566253767184656148186211255039623176827821010774985824239230952047664178749012876692164571589957383283927642280188661208998952471702058149140357898693198346275551383210098221865138534367318102899725194336555732528305911257390115106816698200022762360405563478197159039044657260504361614699291753107476431296175710886287745812028128128693301221967656485622774005672919711684778911873148419328710463511683171113320861041544725001880334988856218223938960155563744109076938631039941487536938688831266972113510311415869724480944626616075683831435896540074268622518520406755198263612353830793811260046329788245303400457787488302442208001977367560068469725237370778585594207770409037837957263191734853537434959315235540325350148239797204569739847301953938881967498134896303230923079188830115734950626899139819372985173659381198434397257759606406937128290588525453794498864290393493650011549009978526349569539471855447389642586634674216877733398975969691396028997396774849690476712892244378465546422175641344133820607906527292425104100291797040318922049533157207173794685062643687988381006617878509679549781192978177821084100421589483275783812905291143675416812872714322546879815079558833300197712143616194004052960017695086362799514851232448545362614660377101528680070175037620361851898306556431401707855149703994388726898478997468038759740491381646670652336002974777128311012647008690243185930780669626914879214769317622838085565181697824187905844080433525363697093542928617985673147441702689502133247436240631419585510990335921976964995096616060490279092499579411259414168818880364471653007935353789671636176271333156394136127624509784664374666466843121407702062275138988516139544862220523392433465499670396787659883282994963220132176918213498725957931207295051025683813932130059499378386396882803107381110679079074270092048534856192376462848225301784945117857531185329499502988240198415296522152320039441634499814963870101028618340864236707261780880521621275814630711137608300871844145866582557078032074186346861668745465954820538733840615087519811838297561979669580472833759264930415170316539318868201197362223440560446771906234892501336377680715126199424911317408022489731061667695873539824232394332418463392791827542728241357399129112055980916681266896122845908905310749565805264843811978320331374569142477840499887992047455019101172996423115129007387498144745707376024795402314422236882329806577415479416832568903528197428717299184669634365661878234883427960337847457781371254244256880424779134671407297048102178996707743955507232409913845343701781536252400872871972163358280775159173295835346348816245379127144875220589129755843336890564852713300317611187043528914771936317234614442238779880451916254196060350509953535322810285328090456339662012510735340375697273243738738772298613815819348531624520851114634279234117656002493482945361035127927113112235171061145118906796793412508953068140657315918711397203870936422605138437099948467428454213074353721986023699656796297433213127773788461646439000765330885149805855866947365827714847380653281528694962274461317113679495933845675955279490520526809087443087548667365181479683637717769491125164939642144846806742111697025262820533550311782512098712325993845633502624394075129819133772878621166248936082138274018456176730939685834990321975768208791179292891560664121418250265692154351449553210145615485513658193296493949019844641604238688676740340367689566092312989384058049963022242688215408702899188665978320364000166500062170679595527475206977785079628075073356096660493173251570990261069017347259451887999395061306676468229940737420923816296284589957024455978790885053130900742328861161822266687563793438634663187677776969363292509211233914460594747726584915363059327648346501080894813622356367004105660469853296191675718594278136670606978752187430651852502935988369059774781998359713727282025816467655757556478928286854283932593337390853977995416283028542062436669650607558854142976434112846883094714918608131088375773634233822758877366245826137396863023439988960803948002197854359892309230562130378194195604057750502066658924873126670240817605632576745220824482101406124722477950321778355523146539728836143146756052359306251404590723046417152240665222847203842645139706627097135022923246392140125115382076197457887301277483424820880443327448516696028996610655357180073063565235682826598155116271435030042968307332569524169844482486544745490360109852288058348711288054054488510585595791460548592956884338189132823533367923672995667516797281846618511032547819360394123652945852258446084853131539001586508819614278647839570685797042209064830944505794568451113639413659758228035807264332723891709959665526156789143492700552397092432086475110445771202352238388432184151290763397856683672953120724583149603997098542236865116080106054546469720151761661307397177576282018626774345053025993091847736559029932344150248593006695008107314215144960854233545892761042170898212011511897295066748681256000368199835196626865431104678108346091439614017158273160920355217842252847774174085420537377901271308116370439553231337116253057558186692055261571087000900117198888827482125531292057487523616099636003020195772407485376493770535799773720524559537529622763704305067492902448110976978025938855689109830631907537352555157724905644921639758970772994592190998146685060094505710547268854489639088143195679830317445312520637665884291274535398927123713578319482353057455479801429343898802889412340569334677063660923563571673340594054354939749567683792190818073868844209146079575284680242924493202013832227071266656631753491451410034919446487846178979174324043082016899493024615865631190958186782767151871623759867044908091154001471684493712212999739567987152189571144614242097370332421507943623382657802370667758050133433357689730854466591103272664696814990625419887351691216229382265980834231529526044020538106947912558917083929119551970378306311198444686612657178917256770389056680890807389955711621593427377894646560952914830756198536655087126389788184223509733564104354616349778269691923798690254331523292935572967306938806221139061079702201082016434846887679647186796383199494117774336163681455657271856447578877557615584545216792978312660089513169334494015796782352017110270069077395158419409110633092623841384831372750679425225203786127326340802403748610830693122148324575204008943225896218339045772144959464594232282302937854499662340962940464917984171235424564260881572278934072889848902804451736962486336397640715063437300411484589674023468191479752818588315040111019074180195597453793170664114086047618636925800359206478412884008888264818431864041594779844944520771820928905600292484597509288514836028163676354390717188573511704715928502131275581562866962943230587166523926347455058410263872617744446794026891078436494637592166507890387728438485987420561917644616319478311126113877883141736949645253927138458187537762012854772254028641959755907456209380878300533909892754084568519222916659689256554657861433372173216181890070736743476778383759694688329548382226177958049653824303705084568843145252257282402535786993097583597077232579111364149359449582147582564724268890051895563086748448957773384437755094482269831611167819960448163507003903069858190237710001738492813256618639592545846773710531356241538071392002047661255212117833853679216789700300281563809070273495515874078795029809349402658054682750934018053594851245578506726941003823936107796412199391773346255785900011814192603695103537939886875429942962877464375643068128248973372251022921133852473699534750274469745632146824548694922577084074943136352202752280761441532788288573714509577584060087924875613513688296977481548242344490660754632541222326319509182934000936538748873897580777774897177109993203976356755713237095218915046047906785130254963027357322602960269918600182736994868110999469224760281562454462541621005455193994890041487775754770689005715652351285517955192460564085069587769484936050632965776926054493633354824209215298757383975143771598013257934278126717181185975873781309195903159253660758985733263306953286288284973043967510037977735844863405422319994835435617328257386013265214441259071854507106376418807539715478533278695167450291758764322549129161255758474554798158264076934508974121818288257384558240125970406196032525923903107770106042991728132835620332441892005219718038449974517178747940722316743283020718153905643850331589319148057099286216553190724031369106057911589296554945693320436055193268381906825496638152556860467146392162383227528054643385496531273046740336312067558243885194085356925755280800358048843596498330631118712254786293247289867184710804228123548494437981946674974755043569262027230764920263341552628480039789537904620146090964561375583476933662455041200750733846672801784924619805067380010611486257800664893582935297438361838691016040467507019942461398998264221768802411886000840131473686093178202722898195907313240383856553123441657876106113353190101041280813477123526471611072990701758476007386409124874786880491119199570296998187422495214346413392591190767956913404362907533618274873260486337112699880750778968350712794248229928486847305390546265163193080323672802366774655950107191068706544509498361294118048088685209858615697802458906630646570074166439887980755317852894617108790325823254783016436539496279005984148491584215006442252863809538394912949699857658769363103862139169774197815958088530995068871119254074672034285649536806478423847947960200914236837190727329641543256192893411353515618364109719303013718012128003908992919542868064240817352615761064179115622950416818082973941963769859831258879189891860265094301510095284530738997314837373748725201341726424905626360025723712642289666594014742270062438074727869517930974943276748783434909516799104504905615133631785487993908248093403936510962038879932655843310449851463435504531741373869613528720359717044677290291264714098531752193520205627489140658621087557573550941328898725093054810018554652569550732856643946711449393422952892218909927406150570560643591918997393392993834879672896934170883828779788179391118101576313002802146189997831240591069704830826114984001923168084046149704936547245195776120029093958541102912295620314087320686279276530328422736985116789605232237434983316409286396210786916757754927665871849957168923599516935878435128582892567201466080434073738554108082486545381262540720150073871624230563128033923154242981524555031503614761840749203704839186174182859553420602439633675948020250866480597782805340231572259254220526506131369800838457711166534445732652493388273465923112667641732193455937421110334556756116556389728113422975021759977253707965540266025613973505045321134675915365276793325434260207067564906900535068129158540515758366198740891096865361007275426783310911442578291264463186396360355368667979394726193395454545664612079408550148977631497043695762539984593792178676620691743749070891078710134778966815246957374554311206673623808875778908391213008531947219720884758611574149066210243069334637467711359761431257646494555602063074749376241978835384796086441913695541501167509560946800223184240523953290388232621567983920443247080767850345271435084032928681620203671415715023360129724570203108520114791164899542235000071329616031243089291241743884758006602241500609418499960318089317258278159294478401169500388484734542494886730463968725082190820802114363359993379174618756664052301404793403815586132136474784435605372831377898745338668802096074241748139814607048905785232199357322219668786492795545072548944337760746057019585238980390261763727455313245563708482338146200002119671019805836406491804386731426148389465613120074820261125126381028078103731171054300703176248235125016142035410054528046445155894806881877916204285305710667522183379440408263042137588259248057958964126994498642720022233511347712238712319282954427020386383430437702006738416127596583292574522151836048880816187429324325255728820816651364941758577403953393459594019075600958267617094538156960405996092269733861103977487386172961288291345249535622788456435332988533943855633678973922787548031559420207492849824996632979931446939567566053039889322159064907145578126919338972324321838143531053275256594889924828536000980120288014848243735628566817693322197488206554540030033310527103859923451869734217417704252547838165011563356592503434512453545466254160821029881912639964852114054513346496305717857810273518729970433738231968713769596333220560200400989926929648643480793595108967076805215893077855258808389711023308642457730605719810038057537453626594570343709130208482365360410987791844695484541663423877226702029439722489271362433301449676981812193208635176993244179917077576789212753858661380754411977661434237100373022401969163727503947078022642725680031239475230779930299135739252344691567509220895077763079399756928175235835157129228360158209655775642769065183768153074570036376279964607412023834281857151854834405423089738226784093451854753320523855815205456139209101034498636498777776506589333235143934958396145382626328219126378281642375895156185057414293680161079501129736149805157368281737580069850197342268203253928599979113637972029518084643227729260426137070646019812362469558314930433746474790019379359607937887485383775784420664801935419771174596213451258871552671010711282813938499734842731704346788415078341332171784104539671760126054058421613278299543559013224948674117736112360874893393657270282551968195340152742355794309262208385917266476087795369953449887779770557287279966872375494257823713419733430575919376337869490485066328898874876308406885251653393604064510816862968525467650565767284084610585119663460845598931763130844035877400015501822384400165687083364786430264681415127079962706656238146401183477883734091197891136197366725868190903009585615139788204708055487660349514461769687708480368297583197258431673273964193051989618712825489044753534662122098256740021824341249480708252735754594675915213285581099951596586858924434208326583638541254953667046949346839204720158663971683679373615645029314643969577966760348392838905095769472222848407277291745766692116014227369966529174355899484800304536750282351507513691640594251718111242419318076489969808294858837924209387861794218953647239859219718298470260860904917654558998682226712028170655603509081976207953429389115874620600006484087560480488755368929601820948132006112955882088666768705904547190298086015750786888887756601156790931767931678587626220229276612111613108986011328290788080190457092853801850547470731291372162895938153005141221717127156870562049401118827408043088244380139998020991579191341157631554839479100876996017401030589340320574165505424995491705690100681899833873222949573160634963719840527168892845703199695503976838649922156879300146265077488272257775083425368701185124227241206174377982923300063272169363385387628951928008115516496830628375197510123826152650562944351990741467894365115574062257701233055540245019842321620095539752579451249739955798455696953671910609685809623191894071685934826202338185721432513858546409733151007679047777307834617060263138726576873020343348762585878756534045806850435509993736211531509087722605801140122253292958178238787891442820550212895895156725819305793530305129734281727512093980292310333067583375171020476767700619209000620418503042991485185886122446132148917426162053058700161143359924450758898417305201049360124693445950418332009752773783074746991128014674666588820128637819664022836494472595605351626450167562565184373588211509172778162329749080974222561341841365829060841860261407363067559175094507161225590973973677878174497139742089696808253668870091016991986330451547874499148065461017466033956005597338854702618706047651157347003073647581299416822504672177844181664449501525679165037748019682060468262838191370994413412560195652374728631855408348583524263181505925674776321989089597376304822174657705068884249693572517874008859078689252651988880312265434505597175558391857960053586448094680861886560433282674754553869749729863631162409977007181951348854183531614136840192369489075184009566216614394730783183463870074948610427154126682479924163491742319155286709245717345761238527253841524180419094044802230806271259672596023240176810081096816909325719406934467160848006309936911567775743971261451362471856004419445919263097767542536574234147054957643230395595807974891616389689529115591273503236338362554009849135904259308854717249466906347602568931855533286478567100497119358534242571108430911133856080111517277649888146633319115763874790809698893220191985940216037638219591865278916794653511961843529936586937410856240264183320402708647197923883372010708450066304793022683496417751757769830902532325161227759106225137571772096952265018151365885303229824926757839682462185247744877329854113604350025859147747513680546979866680381910959256362279540819061189058150512768480416462295180610916875351595589490928032571804914377034866068425807562337049619616739513533995889339021974296081518958395414473681261473002871577747992107823816254446536285833163947211997070522502505279844241150781315716766202915823406100663999162288741035482928429926231116104693231920877667818173461015720233058418202641701641176579155912545617374513308851641150594412987935962274841770614561391910108190508751563127373406389019093388475416078829297024161645512184492195121392351224138680807716461124819041041067025710234826490234862160465707171171077491213219211880257228562763173516162461492944647133239602454758496539333367328364480009242600457893542938078133073233861372899591711131092278574534650151920902839304457469269968124103061164406979922809102376282498751657746064245125117724110920067058528443259980170671856260435963830419456729909728363082605383879538852390571672577702785756067038277151685510087757014225594804907432173678997747350658099808954333653453770108970551450202754596202981139602561169066995524519036337565491626392485395838301507645182457180593934509370282288262869209364950671844100585775391390612451025035354765423176869613195662295553907639512271515548781914235039941405573377507672329332962825702658991446454980098609745626085485865621575795589111863680008581114109220109835631860604360058388649882711653752819845765356284413860242626998307063109780636514511875831567821964115153996592414273676384041784083583970032607175821112849296368822434827077765803172120535320125941278957956578872711505351226805855008438942809314988322852562559363558606999223038251420693778696689626505184779115294381716932185709876157227084829467091429876592461177540661995569458044786623422106162235622112600183803024176663939208066927930579295558793081222984775689341279540406151824979512765850413931677847769547765278374245041470168707062546378429345001571358581289430991995050966918471684163222687868788237451716811638054112493817088290430972374987978178457657689410205340329002619158746287358949612070225932691656614235472443509879778722589701350962421277959046840854709517807977516079093371734169610587711688051242417159173885687632544512468612182478615304805234798620982649539317564531629871878765463108392205330306970182268583161441984317714722770928959665887842176816725976882461991949581470139971384003214111658053827551217001670338525286367682587053789115338543595290617541998198687608160276780567307416385162037989726118790098078074319360340130654860264278854568754366114988786149430225418412993361901648066801957132958355712498325743925189102844801980571272582667330418572860811991777948053397937702025597844347111267075515184698135081142728404328784894823704337785044547472120383935360019511328042402580074216565137002045264687101351773406826787147304569797054439725757176514983430009278374305925376874388563766500201827895481027143069671644171572433765455366075683083216109962295345459466488815759703781789464178945742090733590336442332768182063456866401935875449806056217906257413541687118882962851408920571635094248623841525975080256320135650397939452443916054267376684043387737434302082364016896021947096562730998402706304044043781200665875431620034073483515321287509797105811283304334094392281089814806430999821642386315055399152924958236476525744638304340427278963598342821026639048446338545312748967100600980246802444211751728041670525345961343293438777675457902499066939943558807779701721097752173851288861041183572003333549716157692936765602246970521658751396182460846275560754764190557662632261898368173078979645265465763479539438120901057111106715472851717973601058805801322107586968563400349955877859487022837709412907800471285175805247880604348338569128190575459027195770357156446495928905726747192226391866223557375654823055819102609310800436655596214247404694213536248083241257325624259325760198071578322251683848211616749262294128103820181655669686118278867330939632132394384317787313953095471681316489915241428207730250157270566750028270159303269833285612410185755790654445783101665644989697329716470341252468754942960573761996850542940819018130141173700906072817432919893461935146532699608603018972097025902857321786332908527443367066410729769355505930250009512736249594946102681471363451419400572820525939431928519621259408211201303644090282414324498922254820399484653224092042473170851401594105710184664411122257290199281084106211253136987685527295249741147076323086811648187551292790456411082682289502516459687544188116491159254711294285898700197877673223636157121173615539116047015891830805994139838289605688858491308135709797510164049867786612919242151287111767926572118204200578236938643735759379955755729649087527112544869345163771833133480966855402350300489597362403135399710235411400373840805527168849182662755095444094002027839565239201496624808871758085055292888046646058968306462153820841997428422628804157669550220733114613981642952202999574502424495890974504476299431668858811426216749126463613960617875689290486361750981742662999966411030178087157585050659763571731856061116519274102284561384894938761892904255908363592501033521244844984358797023096133108371258104309310497590672475501387520131547666123305760523177415297795461256249662888562783042035338677797096125218409965702911951009202203530841543881948268286061095079903366330932995702715818011121316062653422785826532969611414897805127295460239910627843261104436993382932378919455933928255076156354779412853116911900337085103150616968813267014380817743203101728624211882166039030994705499485633572141278959102473920853251739370234955620235043755481034868762456676806151197308858217127847722552436834061594606877549070902915047914794766663404572667618081586194669248621769529388720524269614722196116749342523424174369370083686065439066464439245028786926744237159832824946640555110502624508428937914109392493999495408456571046869163554652265319013068702789277344070409871033556910359687551992447399454916890044024213198350011230047960237270561361080658622187638079892803549706650007828678639397677568611701727998727194668664424428537291694941434909949002047833957374262627394828939637725845862731308959300176922494414105065777711100482233514969960942517674886330875455884434739822337696522862000539316480594997085150778092671087317957385807914745642720973335691004321109804318097082414420584629954228391924243075721594138426287768794782100032404007642758085268849800190966621181717472106582572272735852389690319947437591715894510647795553326130865592770672644960072930461650928483717327162981878483994094884662908465618086261559668798406776239995392720644432566259796309586715460168051210522453061778611484310986878791649850147797870610970656913194130356480007336099353181346435055135132470670463971312354409386291457874658205632802538790491352441406867589060115064885942748479315804825220161025471402851842580925660447621079283161957223118162664107693181825291666964754695078926246599460156623035140234973689013561468800492830226220202784375543532276044728624645349401876256789539498498686979741684004125153055514452479298191029456105645917230969760974913486972641343846672699061077574034598403086852862351717438731213397252063409725587084875343087373913842078489345182213377986412883990753276419535559650473082703936017298964514573849654449914648318940388722691454914835259954522887012778841983251842889432383003896250306104425753958593729112344325857535252209990202992101071404630822711603980240964344610037124981345057504146514407867027502608058190946064159868977318746164144055887097120797195658123500297812594097040199348537513321276084139664257175894038812979254265740881806398508020353468330312817910103486103163122325461387636018308186183896756603046236464840627661385381710972689385979431653291552969149016832116683167044724234622042425044162963882077027684016104171521838650725926122262902734914085746919074026017148913731524468612916204430443288286487291910761906341219154044544239074711607530734894609607877037906683345955905303068474799053048344870184335254352071388104314074391030370253454462522103399792026010775911038397825142540256655614789291700607059580622903492313452129904963155847172286542073890994028026201324771215347671347090100791347740888976176084969147596685589039489607210888945363075467748617927342497575076340845380755437829380367299047123825052514503018344241619441610619674291565297184934283656491719620413345100312077842668614062012087890608640760699796686222166560116213289354861834016296752165537355354351159886520209520163345773154129122871533065436462473612310599823537019749535941668393742392693481558579822233784626670239018975460502164405016358227295836259583730472013582176305039200979480174717175440690236857916600103365785360031436895853415646601318138994198066727228085539457073236581355893658084931499760447713654582404197360876126743454092247183761863579823656624637067701622325763294637426811797263188818817650245189701755006564193067622496167927606922585999414840306737271098710328270976929288866130627788661231200092028166733188807573318397564974913052397799932192935992408193547603307727825778454016086155675806418424911949047044015711076699703068156671689167326152979845133828361196664272662570809963585446471281173466116503375779389770461815684678548200265594321293082147180535078541278357629001463780750804684014396888715573069244750690852497316004862182377505609892694989231847422210065002118669038992271765242572920747852547345333371830481648253889330293400532353604195018284727515204847448121688438109280250353875825459774470343269282579875486985200430875483326182004233795709246243670461271846773022773803624811322235350399388947826815013340608123509382887692906039770923537217217303981577357419750337594602875309087374309536364674364222662018101461129797315502057001341096390288682535678313288705911512931277617552327587291667612316427886477430765249884915116993054713361110350497962321308097383312728318641188243534519090446844374772532280362898237251465448076870757586409390352450606237001884766986842645962525822042211413786325234973931659376546755597424744765380380752770580474415491547579962496055634776032290273655157955414373577759413042072286991966626139795503881273112461884181055311492581134133172064913957157429213217838565287552484049537645355336742960839547479714230087168708421159314932468298595143437264730973591767287651555687301567525514109243490130722428780270387473729178775495422162723711302722554297668716500900133485750926208581633382284796492830263013743930270279896450669576664822267739474180569955378988053760660424352440146935570916692221730805509139030781458369468394405462892328051818427330562997231404803383471690668532791962977785586560661988564751293800685820037605409989596754228154864522984892193896889814042489306382411825676191958775051885666352172234608510603821525149406897028487744857226310158866149231359529820784830310731156954308070072752454538593698137236717571237184028049274945329679434073296878368998967693634178050197849888156991364085392568460553169845658602547874361436481027271989883582152351324812533688110354720422964992498427532565202353499758540319456531643925497050356715189764949434106871757157631057905931801462515384314176708511179291535363169420750527703214494564500306293545919981382536341129538806520642121106441054998771983641433539905246387887513051528465627503928806322895419554332060547366785166776186849145077879704114889029457744434972006767254757616608506209605074111369375746332696456441125782633706713249742934937312906703007734135745090291238771343307148330264110687515640812707294684136420718271506980121359529875354525546245769361288106916121025272658317444882117204983544512562255237641865839914400259608784038778725456967097479634261582498795970856872601830923640905021714760226863153623757387970527852190602674017015465067059872983366392680540573810097784892201672390097569240690525808140440216268321355297768671553165945682420638346638132512600508772464354056828799919068828699137755328830276792115255785210183873177540359481076863624368288195798971949440897927514642096759435802262542398278061289692528203727071206845002173366558266973269805228831592594626864229463155334898961635031681263135782461472382008215344527430182117383373488151435698129292664494183598078429131816303216192134001228335456721535276440355507486913026569799001919360104839775711560034222347512625353792481360459732852399861489294755320161469710735665801884420855765888048541528596688832622630043061039117378255945501373156489761257446534610032407742103114225833712134411783238916624117299276893374473831605911117605863932406988941834480451545374547361498561925188494278208115948327212563710103933296342760178289261338448421922687206353230587839005428752297272629864115130815122640024821329016200359683951831632983061843443582290943887260512710750014512025272876839608888861348735139965330140802679293786420699587234168186921448575235828567073734736557708017893508406790777889106092722969942881444369350131624602173372799531758828730469077857869592751339756352342546384201075816710890116658985434287872569253257349075264775229197044861671283083886018266107137933041210759536408928457109281933603049908931110035651885544661638167441941004631787990272558565489305042906125399763939724966523872517227144820290905869171139644700982477952978868414217135015942987407940691009890104166479248165629414313933564976230070866302149032939984899655430176152354486676016713025402591874298225756896822518512117642439018497981759732766788652069365422071608445362086477746506803447133414916285655338445778615276892244269744722801697190083333330305145445733332787816522347167256877004560552173394111719309343955044951814207870642797060492581024424056465102476898457158513068675292329397473593358704247844673893836060502026553568757195838578948512972805757930921191158311808168523704217339939185549004473388913945976190109203085437771808749051397781027290699584829710897950116787411279807591454245950049275410726589745234951412544869200386730167573275198650956805058665062380255514259776690794062580763386202290876743673435636817171149733480208488154546712258632576026196909587141508148720531087197044212997946312929676202157680873093538454589417385582414387981652716630052225801064070194512834190811135477575266721188262040152683401686149554910364887871285524613706120986963038266587844618181881357707087104791134381392443221230367409711822620335755978106237399483382047226648122684263498120823320130371076600627051276740383875823451000028676393166190182143068730390138057508967546433376625157864929397453393855579542735505457195493791127849798718001316783448776917770150161386728498541816038755424762558122285618760051210418744664101513099807376411167722657009609874539155899331412561341066969596076296383526256377615693967944617113532886187521405654407815171001624594578014699192064940250674237483661993932255899958555982420914840136033925244204869275673626343490275271754437135935107119595729470259861232251305940322039359763457372971751807579653694194941165169784512691660465997950812094127825469761408144937918624241207001363478952292252993888518337680954733903910724799503870397898852427820692114268827738245718675122571417330753641734365601363062729584189756898908297679125506580298841889000941264101104793223806752109289123705831090732342166135758740853915469168236410562321201811087914721681265348659461744198962224892030986346738226233824002864580324064023571569463901752548445573748778532287448684316221223225352406565786614863863384518688507317988419953668100876997652244183542110237584016244131892064663201442652379153854364281648689806552070659768380251664151178636068908486745875940525274040140843382622477378457143605094533840575559605475350389361117406525403610676379936952188847118564944921941569018778470490049782451956096638660537377561918134756808558115217526514929999947377764960066172362046856315504261907190703287195013767516305509029191251650826204371977943194693104218374472258965801526516885080174014574689772412661729792433354360918192295557504193102100961136450418580832025943681036364488493436086968173975754944003781903286742062087212428347273307709073309594857691548926231341181246196670867334047686857074893846364654295265531664276619250359643912702360411787086203106403768725248147232892172824622258824417133179723006614776281558546526039786965796321479407575372749390433133571742602732250049285078139051425532333674323492585678401472940644799984149786660134052710050334005206933809835023943069989797405445862859529639248068252016943794589450554445159400048229728430496693127152414561012675995553418517461429772535198484687701235760440274031488594549943518309712771583759481638391252927633996627959669718266046292373347609404587198935663594519266892438753894201921166232649095051097020679740795440644100766230580793744622872529390153005816668635359198076949420070408492667760651833090541308602185289420862396064472204578149275965019108600375343792068657059740790097442907678859192709945926059102236609753708019919712018905998341928022837286094505585820241566571663301761400172307110869900349644728548934838563588676656836621162449074310991437045245172494188055673632863992890984345573611233415140514047177021216399433234935589459967384993447523979436732977792769628113502405767505307081166926078408297778762767288086707103884088074764725614058528746468059518125106616297243188549597217268641094082546847180711529964610998516217183404692680891654846091456894894032502032060563809897442870450692501524079803042419370483811549868810795730630242619464662123246281936165567262671101321473497101906070923253084061813156098694193195160531490058727546846580494746321282077703394946385950196350661764403572369589467326948021271133838292480780758025675390773015740787459959272090621274642689360937854386100459406918693528270429536711162337573660624227671465201625600239848761549075021633764643164507386266393973475263182038841144819084459187253034745526885558349211796288012666369196359974557373046430098693284799151461420961112403056754117798315355741466278213608502313736835606404815577715335400501957810747264125940985420857356890087919021485687570856450951002124058282320288707269073897468032084861580781608863794153284660177739056764902917929193655785844570451356471018690168925819396106228451510868306130797007162585631533523355640403387233978095270582944188244690125521719078143655290713827380033963382414541211278032784206403632991069563598176845134446855561751847131848934155939902567845605312178007860879825860064237536256257803305608750124450390555526971968418392294745369120757070676135512430772952983290800530443777852668619508238585257940203186922633141254928175381118685461475285255975954292197497844599007150667514444395587573690693941950821426465979694943053499001409201273829378932984782813171681876582586479708229193465935152675924940435198414451662753383929770700618326168425132648178605651565253303666278966244484878183942182535254698920780831790610798881908204840851718116899315364293120476642758255626296406320932803624371389598997480644443906791064016218549104382469553603471720117561409035125427660061064265559602450919818196463277336579017500850240399115584003341973080182033382772955024248434036518855672452561929513120918325972599753087660603205384657311721462460112519680854179493706057608249310613076376404970084279394729743529541140371216408480135620269736111214596738637117586267593222469015919236756484652356347469452016188159110236372784313052488464290387389001690342904383183186926118559263131376959566734601079429473205075022364367543743616454897222144183627836429246029699270028304346119507289155299013695732650118604827641334101683423935069048255286327015554300101871396711556955322555578417749963400259459537918173035156766399979123162250878386834400415732808056636079458697251544924988324929004941419268862610742878021344643266100365595393981683135360116235448954807078028097959193685292112707789749339749933378076654287582143638904355437708230415226300196809140348716260768615202399774019421059847081672252642208196415538437075285440032877064643615981452847969445493089829304462283904082768656441231117356317509981754346543035499385264255823932488147723924970335025040118344587878983602174442286954235346545531864383950961108940848662135997656832888337728069200974866844569814177372560140140630225613318804677506011817174750297788021915489129183179224488211347600947016333727006157184552342717330944364765293825188351824256813185401478121685553961151008067808638719145667487968965353240250847209417935550650024550777082568396275563799391447229660288403980665495493192033109178496138793387752287989306678527707837107920026598552835189089177769762994849146767270034054126332304560088039619209006208599059942555222152089438836993356274099396084795072504554294721532231499349249447146151652184656196275778559392580742763953332730247670674606322688220026573911830694322952436970284209044400455122179868208358955410448405101208949152932241816267811205505618449369231811290417494861454842290435798108168965146757717276138207466348377478965259653589742606975408955489129562052230851913923445303628393836215590213961731298074805769809462653260686588480434579795986165201049767574074497000750003064910106140214439975643072545316874783022230631325761452761883097478535045465479955604427223097939031853934151024067129531814638458984099288163557838567102552589546038931239502017630627550182582855028974683742867823057291338766502807800757913105260583938874407864513195610809318605504227232696390721095519917768164925977915554105490475061391397507104622641848088817986401864988825969925844485077338825225360594905191240504905401149093908999825645478699520434111035798434081164267114069864519529364683393584996905291817192516256043749362329919879033396298108182266748436889553822060078449611783929408633097461229767077935823746059674195998327056150003306408339690325039596670500454475385279320637611450194450173622499495370804868265957714192903265177634583368818158259204273260961835147093310854978506759937794229213361022613346960285688782021919891118530392272284854979664462724594284257740105372047545231135197348589424147669382805576885349712821531014868437332183191662500818544673546325128175773490752020395506112801509250471718446190645390064378351531411525469505594533440758440976245430733178324804545694333745427574619153762098647104198431236689048637671955208877350533597402422534621516691281959751584799939640652473393512514040499799293662329234059836345077088031402477784136417660575588679090658092840828190147010296457386451246816316035693215257126807337564718277043091668563111102003498549614689438894871992372160617038406307399316878933220846077887579423503993959406034527533757361255172428979797780229444853719515971280432664515937394806709529931887046468225321746691373708109550281000767378913495361764367518889981244846428355905387718761016326839443995297427134605145564833486756836877527275987688816113552212626720920632155577127444431844865736382811070987943586057242166009624364819243970564976132599126749827632715698613439661055134443891733679567689088031373084451732361919489504367414996238086476907114425815756023240904432712033591865767075980764617093390984012767244513700381359459150745552599402991907630579260762659057566992774359089601389322338221167473841712203032122060861323130156098990555303589459038088772021271175535947881869244161592263338380030884760440617938979242453407183356669085054231367160959573587126071275588165226661441328954804176540522298010894754751208295224370251770867395842889345526925779113737828722412662798073779426666090436468095503255866317224668350229816961568855319879509463739493779364154227001506756151523332610919365725052658025924674507678565686154533940545218945827389748236964056225817998437497712040528906628512416605528116940920906573932769749470781704696428269579399890097377912167518517512658296441604755453390984959787277233097514438605069493147517911311100700943405974955520920823521062098115392397561128042371771662074621939287136006967157878921517739511386574902305109385431637081472786906658898071325125897677162662999604529855804893936727312398161432355266894481388911914206084146192315005965413679994399718939932689911267875506489335688812833170596219623641233998956686185690535417332207282276093310858654591561092146970286417655494112714597968778445387936118576842126871275072690480424464872459252902753341889528238140752391999722676566152086976434276428594476522615132500336941021355267496029337759765047768157436281084709714378237928317319166938376599832616762654357292745653896136185255853109778658859763750261206097673947913022714815768365492144437359089399440788318445280312953800214833815972737356697878804038934991200462224808673716333344638090115555234807546128875871219249227795639320209315774673883752247731443712441828832488442250274248695145984963873169921857875694532262205190358616393255648358985751479770597658612032431056994799567941208825790180151506773341574407114219575435655462203775782479991459005549394813338403251936935339454278878431009948539587484361579986598285731508683948487430255859321287143789180892707829871243712438201207010867050624260255746066462739347042519662892036128883211791081611830820298165665430950026258542162401288955132079640255706032105040863290248690492777110047140144676210979115923092616933902029976189302864836416112920293907691564878526874220747844311792644392456507982635462122588569347337721035203546597565537218118505606181827952153191269798780753387913324325019886951564351854933849213736683813856472952081239485447546294433254126631225338501233908182855070049091805451355214674037412989431858819763698250457281112769574982604987236711532441971108473452480132095972235227275539282653943883869281707456655618233025003202460382653867404686299302388227016036403865841775031910216135626960186026537372690173747907954601248213717925491937959637959777438414398297449389415288689177415881438659539158245341143473551795608207865462232156724214880505572420469829663012956536701505477268804497074967244446102484176101234237166355458008358005219668541180481463384867831359443045185728806470988669105535937760203873062890919529763856978755611822146234360724766941824286216808518380003907969200491164060669031024725801228146613091001953217154610265033514128826005995285585317396517016505976250636298555633192609514449510328234249580793450417299301209589522933257428465169157373815590283102550579128182715407546843113665403192419077953159931404038536442065085996290743582370347062919882870972744006301691361261391836541721235741161208621012353987672270054729017175204110921630203552817152274129897053139284694142020400654289203260186326933246271015059688591519808407506817645441297686850991452040137705620282694928685275425182760424154148305874126869639566187269584878887602440168996662891201934227479166653851818492640284677910008193117599028600622319687397395691214899576036253640811475106704222335399327266526750263928200787043791420660692992682159325622060496502547173062225867416799427837629155667634586378887614088400846638922682863351625762918043923639535456204969947499148310057830293564569554824890677731678303593184143846938621280695604638404547772991140701866833707783923529725184358359125574860027937441096760957952761457655131854511646273849931214308603879824426121736759996964800931549463924240261176451277883272625750778426403949305038053276319014715690127031170405107963537927703144828756906946635545825502649264662646373277836347132649819419495423691680211052005888096965936387512298588601777181142478769860242368286605548918411299231144089904537943370253362052469678982918641524359826347169908728450811847698595213016348927617833208367003328447865688098030060205346666427457200083794950446065034978912664808665686405920292647486500340023887230853569949663199699174355673635871762482518813151604154209988232946029580772840267175957545718019815761750642194396751509565514742775698271517505254805855775517415397880302824612351426767281783043534161051524646136116608660174013706466330865339314974994787040157517083010634984394639640657630524129295757803284052791270748875366538677736155176101127001655653766259718962939629923557267858846207183137772531221534517737622034226766327142888429614478652386639659734471009344081874463062902532548060244174287512974193523144023696607917681932817252931430383567435026608186249762089769598844811764455016062821345845802002856602727833111547571675650832028025532562798657802828632931640510767650733078928996433690577415100553809620485601435110173376238317209129243590723887003043392821280941449139342124515448112898586388919256624759425695922702569765388330986624179284176091038435948662154396854135619657807309627260773598540523942220214107137040725852618654716541130908636728761289790745985561749592854959804279014814151179183402042588258567431509852898319693099869082457084599373624727994410824853668458751953649654765173826976974514569655540860567229916528160593198369174036809694466462371651399767142356650471577275716972937814501229176461240553578890271315091346821403401268506360680233737402037510756779349265779026420696719833226684948204843981866999543774339039873083535404751815282825241148850571958253457666153143891469888761275687650346452700358956782954879762420446013252554780696238330714054690532781915140987653648384565823681289486251678862138446368001305135322031512988725126388189585007630714951296952365866616633072972902025186575445276797608517371007535856342468485687792000930909364778439744082000845156712500044463317781731844878479270299764650110611173888866861925950561597683367522169426688732683594197501038006073533673365111027228756952203480682167337121315444756973604472800332170851725221139241105068670160947926788954303127459289122794002311442902185689604637710034989978929545460889745999111864628910766087368156438204374971634105185502837733544813129270708074646203288969019116609413353868933309353217198955821577740439925241101789837810932107709580929729307290170976036850572839996269488716483105572364346030597378220639000959366551429072913617094929048508202246879277972357341130926081792502991676703233948585577449024794554746457596554809944077434422474878008293317018394608227238835673268049432405073278064714623432788009208749413776548022821789943359985754362802751264201556157834918027236105117055823121460172829349915366698060122143396829898414534301141156440288601503537270360561104542665601207788385536573708987786507477800782394043690364913474634631672776076424546516204804765523216682867542565223120053178205901993626098403461090882475100141023613374878600449300188809192774844369312170982022290366661593760003570731537324602665274125560770878133185708250245970179940645373370173618616043264372548290019308927158025452239103565142920753898408761231802948096124154274733860315132286243060325129018249870663612161871460520160460858401726109537242486338609515081679217226680423309506731560531250955734119393868491179980244666791965190828211799439589632369232842897942368786226793396669388257851944266622501616439696516184642757256017539405254070768684789410057078552183717000957751543651235783577006609731371989793806405578448007998817299762770127559052128598179054067942105030211351359713021282022297602058963645908172168633071722199845961398370991846864654191647976423681022519921529995253182904375357807958334827617868521776136146505789128276149599399345459373025964480613803957312029810658927838859984343503018812488542005544945483319314849143556060904414191398113129625395593465781216876186061129008478601677308844091395099501913467662394931309787139477141533668747756522211388803912972424663548146322433601339655584700258322785592327313335471296141223341882789895929093629395926534722906056710412362748275356298788154950002537760898347023887200103042736862120819626938111605980014658294152875660079963439610037306376835895868381296756286904253882894837717714911141723292031992435185680540205795465534845103442410241439049720191384080525221082222852078611481581586679539139824006166692166567809520995555629778663440304937080732464476902237282926304925859799993623638753196434452678072223556558652236517402541262083158137579475530816795718647160052188968635161168545690018729634249230056435833606584326217993503882395792718928296156922953447031686929916038986421849993561951631303956250380160287818930363050804699148419979605247649106732437966759492602905806818233516238114068693785794625406150523349251351018012230972821748083585425257449982477448802340197439807576329257870672502680657804708697180552129085108342756118110503932493488343069510692175199555098899493361146820296276296303108332344393221958501946828665618025441846279535372400502687084604960273005405180634417457990657801781638621829357156246967183723166520097731127875799996547682004155250784410852469578192393155217466023263034226699796440147388759543529855688312625896293220017239470747129763079816164677313373337927161578905456430579138139282843786586421927004952586516151948118348852614574216931224089794983535617028765050996560668291984876654327808874816811010118616590887810778442796441892201181352448912890925778048449947435907294541094816439063156741358293352237603069566498886677565958640454721885762984422074117582925499072726434307795778520148179773030185259521469136581466338418560802018955074106541714389468341946070412412756870406000369672795318132788149360603165743403645048644618778344345820416170230021393708977151401068826603720760697948111119852987024656023011547423925142957306856989849004526621610996065487600379661189021894689798953215784843849956661262021183650563776832539395047281840616492679379987382348521364766723551891942592966669723374534370865330791069605224168015202048229749498343589474714518117221439804557313037984342912279515102621344286475447554434579840169454114105217563118529114311751877906627224122615695284341986853057329930344407404531157126276985307894759916001106026422384371969881586968811062667132960373190267214474529450666429196275092771136087276810049047373134702138423773275460175892985708437398630910713533820150097040728079116837454777387032705958395147612488410239982898747903774030742397437045336394111662738131245132888553896590526791136933477353294443488119424933884696671760224218966833605177532098401192588113444961469763812129090069594341017192993841275387751651581843891026636273902409569105169514331197797296114411833551508524479948039857908711927151863918141730148517888528202776515815684168871062130126744653605749050821443367040662978042930379903142952259536390054306002755565637885625621395498049657718612307966528957162562521069151159901909719477951957078276868923273535048321995545243996702077710783852335419243361923419949886836492502358186190054448239119794435231304128335397670752589925551601240666775313072464804126797175969419024195026253247255149902382979958020910214719497714769570942641328766686077315499904120337416651538241149008870040883695460932868443036697078946477146333170195806921923338359238941364407435247790261986376979834255619043522745686275417824183619796317089126026233701344951163367274952875455489119318496392491471169355632592464379631664710374797560441261986790019552543983926056443532162152344943903284461969915854581837138562293735879347445617454169152324809308154038539232205750787709140324364057844757757998920322920101974357194364841217079606619299127344183773594470836985409122627995143026136311066310706005016402544067798473045425221088056668578531495969582580497905153452027211800048580801225516800744643484099922557350424996551683856723266574399875686669173156990609630834840126424767590609470718704633072504014854759485608695866178014838883806141014734050340418409716493783961857149681369243772754539731352037661400832164614194820462874705578734512382480665116294559986620183830562634371909407402560049461026727431261145723376503265565259155882237127280230394246774354300715987041280862825005901375751524682933936576608193335871239349785892909468420506973549297844729589978445382483091142693835352960938458522407445385807259872151955772114896568056856633808268127130549465761644600294905283471332478859222633872086452129332086484100736080081936136700790639035503416665498951726499672918095028474563467908789677610852426344847767203692686832111851823852907539748547657439353170252540347023270450142895376250479435985782696513676423429932505032082071783538259706754872044384392284732711282944027600215321896665086743524163888495596022908509953175829655485425510666804237605449868513485996635204897055794553540707857597542338602037909551505065857415263598684511598832112994270225192560456625683142582308627001500434129055920144807543428115289963737704232170918394925890043847749725250832097078891520278888260716811091113530160789418324504407275710222482887716901770788879867320935485857302480067986649037576280100864525047530186061938727362802901226299789676701639656233497403455797070460777730772765578929113536897648395087315039337505651949956750651935949275167485342930471137594507554183053076172808409495867021678634785341727340398128486905461476970318618206502433849019062153834807993024476907857663862110179751892209301450430279930270011968091650653744066926212344717057874451180705698700371764433562417162678018126591785096276236109109013636036771992970053066466888706040073491079487687057668904656263320139510520844366535943500680930502961636808868550432965242719343709572855328836773646135577686032394639783232225364991170790085451916371708816756226353494678147358853643132037909314066773396964501523665287322038712845989132719329056059649948104335488077043110489468433947734554543128225117872039252531178908966682255617310988261345484458421961311135412216384074401270229640153058995322251224348668115515967091434332715554931130500350817633650145531352181196684971645655064083243028811739849207249247865302753316431118811147381197170720370245257828458742847586122077947397539778277624042369141061078425135281937812264233411568006958369811323359629228858714613318272682673356313659925894057031976390997274876831001051827657161874342125332802744246259806645175097753474236303658419983548551455516104908696381003412093598981030314394983649140259004985669804760401572324477813430757927266084103147063290770455396741623902438813702043990950885066060036065538198681618560764954009677073805206448713834721397526610094772492914154752493141402886568957192445468740179865324748719002836494297424913894934025770117979769133928732805387138335306748986847972890830051787700432995140650627133144103559737625524812026422463730961283210652121286992925005502833120603114049691585075998539900464306084598507169203363960721713292591915378900781844260845491632692736168265086113898268720552160565105696892452605411842703078884094004917255601433635959348478814170704000545280539385764964629871665126525648280169450153353897243351860361505579125269293944293042168775991045099262685959184180418873846967026881365256005327834192204663969079124674872673468137467894846600207803030212261364767972284720046077381184395426909027001402830505640323826071538296222990033505530550332369266469157473150377302222291663092203878556882946137311293165536336694448957535291803902013400814048017610947764208634777269957998946090222121231498864579498405916802440488371945925176422423299777689415685853519315989094755829972130233678258126869006568311241914055790299286344824546774306308462182114381756964442711222755572131672048627810984914401874438596130944344130357682645356047037132257383185004152385705385905890266464194391575041991060798370816463155816180944130459640435308275371498771020452001010916257404839822867889219069285803285229042567471616350587588954290332328174940879781237970607946615380968562867009576820440864254638363221556931496245611935439850427585638573278492223672893721277404506290516189097668559335881375690861512458489104593428457375434717168980654647655139318884599926043921367113686263972250164780087559493450125056248591070224454271313578367489748331059070102328669594955626673118639233499215484801950809364811028640681384192905540216550995769989553856227014615832193596482122201878740241543781668746072333898525225614264299500631349091859079277123409299817735101872295525762142259978934534087206902577061148446083577018055164856152079186950781043649548907620274261657217683982595805040971165756072851598006444052891118939872836273149409264415911314050970264897636162778319462265832092814657027270336016399609198291228756815624998355221968474125444290187178566470378783591033913792575519342043208402656152369814207931493082314381784808472411787177046634682775746918113034374733751299304689137015563359391907355564647721345003860569831554446576490269156003408259840861679641034034077166801088588962633550951568717079373548428230926744966285042239413285428623336440377943745137066000449428931365086006063080591505179111053036063389369935392790914985451367514702715756372722823251165113130341307993897661328925775800091293595719876553081749172154148888535139504640473106280887828302392906249081015787311214365708295870059927376373833668942730037887499240394045929749043691241436437960703709276062675668248647309298020394321539495338802852480558578235722868324588094984287634698329882910815242188643356512904912224448889769098545014934226099152408019967742081215186183893733658231078515722606068464758901336853754052623786559924483010609067255484722240496699783094409648162594517374306388518134715277872218297297424906634834146232592606259402179970280211122968052821825254880347016955192096322517824676791917495763363497764330474229779370529185737039339815127222312043904228281639051011701005187836800982438065235672030368767744532402080419417697285768623803426336079548796182696372928494230396351001944325972846620377549622075219627580475255934502020175001316504304493482415240226415670646369026746243936812596603672528413003102563183718401367630488012552835902212278025748722240882618428785247848893499533023959312508417872309002115705622292890684232905599351907752437283311602659666529015508575004370092683869595763764489850975939516941669249224644592536711573514095157545554282022904024454921739439654596172676289846658782171316608405952449613588152297853940771469342539935009559501686135467537509189561954023785998487167531667419844664351474188327560874049901471657387742812041212592873650524422215813661746590476276700432424445857457236850504683966662259636969644954787958967944314433527673640950652033580821027663619264854712682838219821905313389424096075015224284336573014025126933993150970924759145704309241814745586873044784308550855517375039228713336345314429790764132506049499630339167097828826873288575249566135609008026859675093141750760162930692138493021709404593442079915573763818908263168576683983298852581661822016081961767891467503195229135393134798659829565033368925302020906369687177410461551693926736047456312824608184611266443089531572476152073899715359973098008797556073412605576876630532370641687488620741809001724807249024019358346367325963830677157136243709365925941022909788340369903164366021183829300041561931998833804766282782303657571680061605357420818003955218459184322983827511519755307702658083923498979055708006103667438461393422434093450053169183305444167825214369463456285393611938550048158623692223426841195023945105274525946847276111358260564948390569365175635336175338339519916354256573793887130687195835185133273986527618677594184657838915563607077432023267155181451872705784112321754471480739799796594890311447724293954792635728129849546949738204571328594414475394980029495557773598716856624050314497931325734477910157161587581421747053231278816644741021200178272650904971654726922585209665086835461086640329506164648456840551299228277983872635581764652205318095026534566221364742289358207999279254339296785758029200867468003881689137956682586242206062472126293099349037847118526629235240917364489754792493515654513885500021093339999196025493961847621270706104009781518465219652157370866114739255086494709639259331094015142285193864448071551694095916974165550060385409857304884119398243419362877646821996150924699900167831334809703013939770568430870473991413437000760362020918132857141616755218883831791465874112389842234778599252434425338672047183642228614415360478238670917785690346252524899514532147779570229524988370409632880793079583436075951761896098412548962526545973350253968909105661589678776685059479565473046561182283946782508997173687000291615095816812260829563912109349780992884458216468625833129297197717837396168950372571369073782971557274654285534388831962296541024937644200023478980235278968653071358393065820696986499493401147087463555114285213197926819097994014157868512784524010370007686457863317104255956410472721892662656100971228950407596041151963942060572409714929128228987405707039602295557367258444938113834467307246771540567362031453547037888766598762557971854546417941660667174298591092067627778424732481486290622772117938381427249989523991288300553866752957289236781941195196867117538382974093709406414082376625626909524580393750477365659784385256299699602582549624747679499035135427049738828284604562672775580714002297150660638767637973903972226887081758574865456139487332327157338788514209117186365061177241248255179091166967195229757929071876845905922742012340183312435741776033932395024449329982559457443501581668960660586391655400503874519402940467485369511430096888700088495886847513055845915902680870161243545012996599839943718638340436010045571095757129982374053004540620967746458873334225792470281814679514818645097139797060666521221529409451632567719607370639195547944650349376120255754760302762987726241715635579054091642331927865953884602416837956522460107003649399190875222993269822031716166157513376281940891751133033802254245028455453525885438438087418573804380241014220378032601117512886751292459350100161890555200133907946003555159446976577405639682860420361546167354269862461286858821860285842585953015415074005916236513571505498566715106920289963088338008020141736164045621582496238819373146273804036440587081736185578248912723685921636807291961693751105114543893588332755957692077725709440223622184680232343888840214829661915943365774875164116070290036661399055135759119126411386167910428739439411819060113658435154320869261049134119337157037050623639602949620368527874458379202984416361741184246791599641386602129770555186346189592930285344247379118297666416802928835720912048793680414280577513066548442168173221662005809984826377828220674243240243192112792754175719746312507958292616012760244354256005870069691633036702176587454884803815821949568103478377546323756781511680607386677587866678084766834092548928338793599576135081303094564476606408030269870479632373136307143080663345602713422374112056658769520080326330230731399975392919988087952245136328156599547339280349154537181273175820925841821930882551899564575521052783603612874708089132593282661479438807390838042730773504070561603692673215893644245942015878646692558275384618299931898652887584662327699618779039786772813515851188809973705300924906639795695118733816594782698633346717458178055156953456432859808186596516287512828993544098991383610095670333004269551226430844509776082200627756453843602288986909405454663312106412079619876157569013139181134962595007058877758075696847936426851615715835065031804963037399269620220978546050393703362140083407140045790609810994147927158623060090419494258663492177106702922922035777626408266592118835159078287998305491535385231252480013994893928230313564660889322509846106732534634095676613651586321505502884580704269805450601010121679461562457599449785028741258998550598386094004857764976846814642762494578183660279242198773285606753003620853733805315694841166379784570987697729423386816484518591976823636664931691421001422595270651400458580522669254587076985397734186313064666544513197687201042102720206210431481558351541986370273022041426145681044234934163027947905122986506469691598782989140804079550045348620444186263186908394872061530017077310408378057649353351158960008902763293511281952922554120209608969096350881878237321671102810464291371160373758970631881225523427432173100825179772596737945274696226508932959071095797315853553562193884073618307587900228592648731232219185384773718544827351350478260634230494537811927792527325799929402513242551078418235015869851502212524445631092108837477672612532512375273216256238818696702248452993674045040776032801413208710016791162841173201779272940815365285055445822017446063718606961436827670809784078233731114628479345842780901917913930920978744075544853395333625670248548925257222742926787440668233308646513402274818242108895799661132025375462429514710394967722082249942602546665327210480426929273913844068137043844526272778587837322348768688388889633643208230846064176103871772202387177365216611126716121068289934915162610801166898584266641706934701121914650352448723729145320033525751923013536069204970602645023467641982031708772023103296213753340965390774458333020967885603346740600545845640083094757240053813273868344733747214807812885486407413010189593331147600434088896021445440308405801933731834701637786479748226880813711085726360833391923457992170341955821448060113152294223240097991688280959849689397207240989261550715594289544358251542356586016576686270448071957607366206358780209887549405140835569088970560909393910193241805022109719606825782333365696508674168219338020527847252252095815691365081381043966047619670105678233930991572302423308495524853377867901411633861638190511621835229688665570426095782771543783053373021279111767618754513480049347127209234586219421420077465030606647015251391887744057214464639953490078046026873908679752436133727431761692445631859905509189707046039942705305892992404886278683404155290248008223608957025991564267916010560241878415661871811716850814590737852443952055728292647573361691893293315962299661306533750109866526909562281251828205104377063075615909247191832101716951415293806762557775500286380498123011688066958549278340227076000397005178474572932321215514524960857875318829738575232071874531426621025937783978688928829920976825191275329237298323948759710383984275917923941276033784729451911247593698556978213265395891729383255548537030540355905828704085412979563985538418645308314570328225599717910712940620775183523384270859671245802937314522333913719538982238894678547231243295347114582015248766096498911149476339711021861319139080210731556313217570990234661010211443636488575582643283105902841715188230931822184136093650548103589289103113106676507917502964347934642145278033474981872405551176373842818528740890114144233002270041635983442762612573476466132917321253734467671465689563676471237928521419409754654807759197052484234608833899573575307565009944576094207616151057278247747425588631734636778320939535089248674938376084435412485703071362430485699499557189806432468388083757751014047532764944625396268417791925380443104737501238273163863765951041523952682248495201239466838882532393030746479582643483102397628093663785458463435919425454724929284784196401270250997377825613138474283323223008872554778873653213103428772749611415632562237678813137489323073870204913274711231626118980022056722838751919765919591496844428091942689661943052203080936974658901976035522677101162342527852328836295140680743205802460709858028092239627687889860123246392358663842782572060895915562217584696208654936766993985238939251208826953608323551616296728877907916560554986767407990836503052734372494850584367508056077197361475730291308922283655387897384238414556264256219094670327309209096237697710960373265765018523491008074343172006042199331706266120107483726626452554385227612854333577233453180415857019133004610059384826834454954034045779862000224201248228329076582382907850594290795641310543066554417814777455823641297493294877055018641541885471389932184552444027630795717925104786671012546526983839977153111203493267290688463567654290909796774859716133494939783705625529981889753359658008188627080384557019584938461964031168492484649643359548208353801554945234460331161269498423947889009524556365716274998070405428873110630958044850357464836963418943678632091582605905958194672549880729079800591680102782185132084456950043759183281326301803008346449216108736774829811305389781341106436009606715150936891630674041818965977342328028986739639788337077901041051678634802048940403470261540946924348433875459348174836432411415809711825545202616350146528179584722744702820125894430802597757840638825128299503901999910458479963145529009227510463011913890304667937534740646667739932882336126349793971174764628785306717738611600643876100245379634742576327037757015588451403159853461205326046524207262882814765684820354034838898917179099722581049112969404829832974424086168031085658158954890501561496286165883554282404791673767624336969730003618790706618773319851639397931642871272411903243939599833434621294828505716205524884601880036729285216647428201866735901869848526870348997550587498749788691885537474684576884772409092884587208315834346251706813849046081128952268234497545238744079700187234848732923148137914054366050442877407825044421971708114416502304120665557754223536790415604425389530193941616962013750681082881755948380336626608922975129804984996630491355031038140280553122763610154572278072709120461772836952483058439196410074605454469451327124684601941763830869998430354314376734618751677557707131972979474344145484681162282288995452209075078572106245978604015952306481502379426187490944807850187908330441842690032575395221493922819593017017082230547774948650739079417013902650995543288222250786427329528004809114678216785895611089741746365725935450377226060066574468420770591531558424273335407678251680278298275318367710781639646882248800837228103479902746872689081137116196185157133142660638154554855436686135664546095254900101124084129748842693509957944551219660673239334513000377509654212000160089800446944837682425055598937920943554960193576048860293848665682917457308659532439616488334303370672381559310643232141604613817383191859798374747048837713185561464676353417368925090125850177223294076380117961538276698906423443355304082293754930181916446949258742152999820795261177594973545781111393689231254619236325808567851587890562109164380501101676301438080483062112571425452512502949295605777006272450373747514347650554927814756819229873614688860714878256057921940873235158827046204948804145806027437461938514383356842800129097120075809727354647649123559816765757630456505041191922321499989106350074714622096175189564643681134201641628154941796717543332854572580093105695994691777926196064916090779487303380567931462700402480933164081913161335769581679881269243101653791364662734010187119659793673228907011036109598322009379793908011672365705318075859641409621666068557983379271627257983404951630241332486519131538086256175194067651074544490004679982652780094246856849773993598894969039494986882885388107450897607129060209166764416072579069517829832435274974800800416454028549383090382744748815078938999623624925244850301689514513306559543105263579105592977147967028686379460439794774439936301036299016834198311078220160600308277318824909122428416227907778070787176594087921687487720693679817211040908264522299819580429429145409303372521081335470012638935205155642592914521912093028673935234934952507667855680199450651918626994818889908492260670360780698737566474545117371657331243732935355006023711209097924960327252302815866245620495775229136966446731786094350862467593027965480868212763492949503861152076512621975246437453558512780719478230749516529416341004529300821941864410254739240118405190517223961211889524907705866705085284209657715992286341376816096926879710624404082443248258414475265874302513125117365566946147905955181977771833806471486201658087561825638869553650784148059121999047425799414619841913211361696313460340641069768938352788414308111056575980614678913588887175880163909070428127618905265770104167202815253187139817186986098062932821990849597991093102332207100378488751622582823540026202783564767728663887714465246236118231385124785731098020615770013238111321207812396375899932954199853070257841256078975808707435754055074651544686524673553566433156145936769257581608588792092936066763770653763258037199697660667808812140953010413924232509588783962763208154572662491181455822278440037716991956928969768813112981044918058944404212772255394747052139891268460591060298385465834248960453659420392620707924989169468877484921933006289700790313110721100832807526995540544360366043380375481076703012547133255169106958673050730380859823499128547264577801025431723808476647803823276530671011348828282014544376750436601712389923891250228093901794836423012372707528231459327859962966517378968721065369794212540149648142897098317031015301790024184083383708471261716727872157249912049021569761422684480864623044117625267696385878628876055852570918332529125231562911806313342981598606072587173834704613604899179279164239493836493025481102211557481897905447517265042504240714484925574871968404007569988182593197527560038292617508360751828217154612251669929897843774049074762194037385538513300289807982425162138096771503237803976560117915040353347917637493745970320741961576481416830111255740539492141760010815193707596133001038197081469697955650489870530585315821463620705853341287933949409313891194191106778664461394673572569649173462143473582485612005216079446352128400148007441978489560837892725481933290410263234662841449132398202958033076307275305912998070802287705779989070065687648637423996851120179234408427310204907837757480687679991617623705801495857024243023800528494447851542499604711619384754468735136437426245227638177111854526817798420306961725180802801740922324202570878115832024039236055856239388934125780938877933677953824220829144775875136259776522491579710415686216274784103292238537090711761854455720615562939245421770580633563783607091554815337966704022470611868310341448624286733798215937550033722007577991090433624074228712806050230159195168473304125513643887925339684340711644150916139786372088194655224277833327754013743832143145590824517180353340630283698807876852216335402366839130517050224922536766183182325549002368139882642283998918231829917708158775441778016067311565102487386947411969538690300711364723796320271504657900590695909464604969741385196535501404927137990830281214822873762151263639974872438197178857165681874575258933763615271548930800210128966355150212511037113549699529813288991775243264612129472308598502593582998850074612479190698683399743632995889910400288428292378522160246170587624199387462296799804391988048892967534744647123303267686822912907846792895722928730432877809581320045807178775149609297406457527895733455433586648453275583201773714596292143189527385265872408934643122452550384745687290001704424764545145750003702549944902125614697223562605407155896319422973194643954295323898248553358073841091346129266591905064178721142881017197694908477304078092232842800443856049681501317641647376637456228229494689502794400566171500666670950254111126195336631615629260206217851528358775494149784753381980210274908367975372706764232665166968971321383846474891362417888118015841518500136713611106277196046157384809939357777857094009847745025833490547263242790712733508799950185829233936445923155378933423927252981786586876105131079925244857193823385685809345881575794011020695831560127088344506764319968905810114127844410350269188391011347720264565346819031417388318509042040608431712975879345433301466901325206522249453312968418962613705928752084255397335295953809509930745500833342289103170137148978711199608289068053194301441732225024289733672377671521503850644787693058904718572232034920199458734989253052936712855796671068978487182743126258593826222353423960674085801887544121329952298206192918326393592255217678902136260987907963780303556246502862845455541180981546082690314550501952319304151464565923247769016308685816116286136028033570978466673170590951111490229614817780528804429055236497099360086815834411988496342979857725068362480533925045823091013105607774793155728177466973739176709708639990889244949842101560463218523756266752049536753283383766015938357036644797319548003988025460479184934723323541211178699077354859748615429712585434262388144939558652660416106834027833163201389020807623328284049345607205035927434873119965073017318783286602469560085162114841025615576631898673012803178978132969185227175990906215221545785847250537680230643993035710171248602238875478902298281804232677646227351660622064988639129012976586160180596602001690601958049879721010260573871774245195056876794338686828669094112284312573336384603621536822764994904624714034967927359221893053394379776310716825901188314615952910129781592751144515908120870411139035349213102339441354407211577795757998261026276746098273500073112626654437488125045821052894819504867710731584925959322597780629987500834815812556841301991361191309319366049147121595784612954264222812645723251725930742152619148260207890061733830255807850577940049459098590101922276180551892656792336416840723135813458866605292864436571454018555413443791143389608641084463852229357459149785810548598610840168889744824646013883694297458697951244061107781391204455416598240803119159047763186939466825251511869695726127174121769673224639632904166018554859340742476913332630645846616935141028855085454477775998180699524753768264264068142782483585982123955397277387579252802220829032897430907661574933157714578385447231469325240925338008586522611226939397571896586927096631393227365420913194853529499686598931701072542484927036989407864395347884482036020068572552446988738178098649342921433515779965343859665302357612174121479400385188172760101434566683261065012173738678502221577991752146137731483482722131465298340233607481919173340031400273802899789917905534465658683279079830005663708571430552488315486883435600421891468186184902160055877658990359410079495633737366756416342736218313312236218572461132998780915498231504768021400526599167279068777720146203075790984323383224636219005208166039019603980045871539180327758367840348658326589812814429240742356269476355805587157239902815140393324073127331371065114862325403254964500496731667767419447108726957755939933058181985379879979631984479329977443518059816842094630388008901239108430065574451334413330752998873412092758256064486423652182035460630159136913955279230116661815539490124142766963244708408591443545863396043985345551749916034480529956964698584511882628795838998274378844939292462610311084846655350984521612135611221398724797638511469277910227704509219419431038262282832653221278761010024376912060656553140332994399834448032048604798369790569358664043115118191067118428815656339118699076354103598888722794907459737484686507348106681531467348286551014139712889813036473970727214075737363377498697847081285745075367617355688359565707840038712061045829918386283441958510734735791682212867828793487503573367756204915941364042199630535830816260179922539167946216400949607883284821422213794346855186994993090086796055155485255665387968251944500956068890133206096267044330556856548541143847812507080064322122975206222297847299129376957703047127887135054766603799089598061181746023405028716592325619700732209791658242857124056889309419719351744930347768728257983093038352852295139343685963941793110542650048719935031269712529193969734625860856679190125230266226734491332103993836928825459565328249859688347329654661035502663967758715513308113482116342761530477160747407377547719873630387638167175223095591207269715209304693092358305251384812763345169270068197184663194198165015474310119614696529708901169239524684951000870303633105230965497876926536424125515046709360552881504660464322843539530426053138898935777687671675853136102423304167234770951628272822134969764243578109586009235518431391871029858998735416856074595874560139096144026004369729955243561885657260953269900970492453140927506548654350558948533907746045398981721168330097241435581118955228609108632113199947955416570813794145197994265865618374386345827557042952697139079354477743395904727467889639564686050106268729868521386405734721556641592208430756783666762658696010323526644938098580585968221096883929014635982006516452673750866207736625611893192695674006420364970484664803364748008411988245093179183146380217152899455213285467728687215838920561506204746144961301101319371863868928094938484872118403401010260986127287253819941848595490910783373253944774126212797200067848045631048298866487277909081449615426301148465992440877154552393458616666836003859527005415115133654277902623461828096750865929825745648669292213958193789570468117455039303111580853127569233661671179148996901697861492554551296082371051450221839351419858872831786138013621924141446077652378232837978437846465751344845860730916562458468989872046455602154294582459230624206691328491620668423888736322405295926362539241536414474244410903363719563379214322543435395006373961755653551739558051543579465146509098944832562394286893009128729840496498077863348125987493871243607376047548672350357933430457411151875758333425063384959757188990336363286316541888865710206969814520184518365921738231670237035154581045994532706352619996240049939818717067391350588831985684754477666884657854156357306453474325684981291639188275923159000245118235916459735932528126136194478624834001428197960993197420590013343347380693956633632546147267333952011146874823452297173652108254838877914927776006629966681765492219644931505483438766734804169190884790593217308491516531056480745150214813119584504365498129555200250980870678470752794078440438670333682034270776286190501101248036039707652327809000233262047435063632298136411615169927054434165227102385993095704460571998274905782778259176114051172760876519786175522954215360151658312700075110984899199233769946360654437635466308367047976084928847725708120107968496049674180616301130883175767606416184884199279152401016958022047425574052030145863499962280819966233563426766487963000860174910631234052050245977520427844556373022090651677433806314323181273950631560704076664758344872687450915753825767612588521873412344950180594412433591248419174740861324370275631984842669615001726043312089314885275248321848236970597505045911368782189118863526508719311334797046836849574348704311878436731192599112413445488166413527802789220315501683124277419281122425456211320146404592995567794595873930265605354478235585524207839051557191429941777788954282349477808842535805830157922761971356294439731823873007840072719635491210711993625629623449254941088376139649556844613089113909618638060531732918529744276044621215536522475262542225478833252241527463971618158496333772070826314620554140090334619774294096664238867754120694146704394796549009884334751716280159209643922690141987492136098014032224398851125050115962126003183036358466770828819479651236434156736310118075465429431682751712581279420487280185177418589869830537915149220120030648982544338745940215721386065656339112160114650330424570851495359729116766733999621857297995787130459165663568908602928879427408737047049079931896692232025230542905486863175705318134285373164150554838635202821366284968074675091148479110284483679463116700881048924979539805972584936402317102557835371246638529257528458303351308096570897736920696922901761044087333076293266035078430426009317646148366877709346269997451040728363289185068983486185513992820238752963723765280778772433903954967931802285851430606835557456500565974322431923940419371001740135461781227072343118388019900871760696133164462773787136638437871079360246391340474183415449768041120016687845992621940701409622220454708601390232496762841386328224004836570492084792439666621601305311915200175105787502429620743386939842462710979916994357783683722252425193436844529562701514577253687447114802711519229833259759166795324253867114214737952448560390472765729063768985595320217464921262544320011524114393623014134923613664403469338915819573371906796908350743012709314389789961990200035611281473675002252621400830727295002546615251222304976695379276782136458496689507004680826071941420575018974901115102027398361430347658061049676161982456335777240502822598517869205675893192453041582479707001567081395807006273354652181453318076841160341336514569587596572192837802831490649731266512689234285660863589638001869605889234741670272471846507401105393544942029515487757040284289566947281981722334822116478011503122868804977108143263628745782819890089714323319913650376063409503287737996892467747632293850184738737304724951942980835264345994178250781897795174529675752918680537484870860599873970151700961054566156080031500831247607129682433515974190221468060518197780728325757388182738226765363038977552169841635907749057676388714681708504464391901842359053716494753667730038263206840097205151314910395461817903049586490902354443813688718421510800434488970799681242660798628423391113596087547267841620910747766338450754153663462718982437045824605613384760505259649643784364422721394043048679933442080161018683381526393276368414374180812801888097341080759010434247125189816946031446623162109018117096838374754708583328421605557043869007224563013233754502543834080278422631374884236110770874141341159206290119781435278568111539509264504040136547157433205006957647811314180184439834700853102248533511737368556518449606345675090655949462589668219397448771935841342528488622398336246317201257248842117152666258517363022887040570055930732352104722686657122991320972742920260190888640470490285964709211345808575144253405002190717113934328797212345518023627998455742387884288622313865026479158731650788181457151394271061528159900762504071382771391064716293257383416761667830955803572463397265758489251947204856373200584842765914894152095831315260649414952133560196305636240525705450925794348981258521046390377145828627777828505269054132366107550579656684426123869711089658868052850182611650763643481837902121650040797891772385713611783656046023593870207084967792236479559161195119359638788436017402009934862160609682010354199378810482353281884427981713510946909774183196520046240441695062050409440980461973488427382415791381505739461432028340100563606975714287408474614217752746841067299683851735021473862112299471296678587632883790270177587681427955022089462209673662494223277656122543466998014207587594406336653833376132011058399889880916356823308183336973918234016847966834013749410418992417185797943244230864510118979092793453344503128023503554424443220775387739635185095944016049360965329800743658840022750026171336310725726729625847543973760228060965315462398996717576844278029791448289966980985595734523631135931812285433526058071962881619802696371841765796102707023452995669420094489937371452692195545225815788915557082573939689394165864611472258068496101817600321520339270001422577334162715151044253153964989209405571158691767127446254816494471380541449088519777073037202399545868100658965175788763282890106866996426749789454766612046823418935728398229818234766490493476794830482226565019842161292794468219827712159827256874907634892347936205585046899533233822751172013894632251830561254934321777497712736246399747625501259700791932476695587773042631346873321481782906809525782803444484891083974887402814607190377212376180846515932861590764788438362878429407592167652875299155050590321430330949706101773028219414129177502662979487520720470795917995419128151043316797113535295670365047389985292330430467691699815113790941951259372719358063926065456849525114397846911942556335962860918716885127518359950765470050936940555849174722640135721904844482524227011213340855976305038314567514304566686745303293980401724248833254243675120699768697644917058937314048679527054343078643831365566932916326467981565704484447105179751078885799204817476523360235514599242461804122257381441889559840236130469991509531725603319443591412319797638221852863460893084575879977170540581662147742446209621004464908030224502106332348797469058743403518342433036451992821688616745545327205543999112877127209828078082603224101847872390899302798082204638642227801892647149072989247218425937525621375946318210939057842771308655706868410799806602903509865742498784728391321936772248522144490349326637746757516737507417643835963382335106912038664435741366500886916575947212553692947191834842026151433537258615963348281781015870297372795420702321314452259331245190722142784149375698003082768752564116458825170405732163765585094252985253294867679786701896768646379004053734301440435087328153638564857694353965998336060909655299444315198801746405696227940870423632438311647299038903980475904677061153899793289028104579858269779206916636115954884057010404388335204252381913661048911972507265501767564987982101296097916866528116579916034644192454087047386151246233559179636596572186094904671764886368234750759381861529288436720848277741386964560391926833681129111146569636176547507948024192577670984410985036522083739210396313865653561078919179874023554812376635581004799542826876230482758315496612221011732871127479744070478070216846043443762060964328818991338810727592814702954469983189930515671724914094987351472695993875352355967438606165186898539274526406038743906660705399665464615044212913116725916358727880013548349454527497932321936071539726609478265043782028126841023390013897419957513149533785785742034771235696234000965257897925245254383889079453904982282100360380999047359044894764254314526051516629822886102097614562232123740963222735885490098877792587980804174066882032632626965117593517671198167840677316087346076036231960363500126236256469420876996280604417902530932339878219142377376365489943081247655006742339303728360052033803997573608063611114227185885975219252811054217327372376685565948432821290139269329473028872737808365570963541352298778817951388828496965510876072686500692175819584775740908395009806880893956988026180026069968023509821758536588718661221989633390983219452594020760076654194378250597092436161950615781955670434939279414094855265521723139665721721819863489906589934936626617410846604942443518839524013324213172995376049968215327621449350257529266175861972678304275579797660514149595896725693332327484013435095122936889403109903426113513167590070207248178040787278289002651732025575812041530237853353145089689471227158237743543372045064720097386557667631797853766846078306532553689233473182775143806945704102798467947523530140353660725857265008308451205117718806568909419872459198578361905144320009490178932367045794237228393086181784752473431924945820142405445710622066438916083345263470449986964602806229049181515786783773072954830082229664211312617919036565738382302684211050994900665523644018757525288432880218301709226251559141205617197207907664864281670750368766661469976748384150657408271587501001270163663764963322891586942723478130878624950011870727328045365973624605001839224270518448522805072806722117858299275703259926730865606353246872887374470462846133851474131544333140326223022510170674565594720957521181554231138466640177801522503764588159637429389919670950110247916086961495453685890172320161772115855478553734144894780355185462718871403691278233954933614992760000647373034469981861548459533113021066019958941490449245675459088095244588295635040702437184725955388421775634586126583312011946234489170920247963242113826203086692452061190420883403309759468166377426412071644262055698931341603352497031112862954326137308044722329791303242330411225165751867860779334224450134266101527955250508214495482227659536954099910535496963802664737472705821648474596123435829515126874433875206841767381077494445404108308496819479240240386204660329096767675745098397110202084544713955555147142581860969471370612187243211287355087366491961315677597781912111461671956258895685537532937429552709952061606790767495800393777608974636464530937093509186081081003138788177025236740351939879276411812038897608694551583284600083990568693307722873172361307353464901582793261298059130129065535317700739163648677082875620929456006667144059462446415533999386001016682666779005468812755995911137987105448187856766944198082160005875160024458170725425199330496249068938221388986367840037638312474400529245850443691177615782341338117715447495097933810742967430147834582727596532297028831180179222155834719876978014345640936414716936568795492264211856382164904532838621375284821368158958520365218220852084341838171250406034255602668504486198268215351685672528079242068357069311270762042775300781920567440444547373871172062399614183690607243937806431152827129989606445838564831095551627728289679866894492238399141869175925086831771206291398670793948474828827001617765663229091935853021829213258730578340425013800029234501762762830217374724828316074713115052140368475120107997233726232756645140082867596581834259497102788378367551825600610749618865512878212196690256343741877585492842045058110430080129741830183050762495063273445298122261872276001887966890508492391920549886117938875287517610509366841194929004314899229201477493183719510364890265243204625755789233520679540473040738586943404242122329283885476458953453494698762299466842444464061799036443278977746154021103625051571729713793348446011360576199806512471457938115218500440847931299376818299559564306389447864071182208480155521460900100774883382454897827846644772026821222170171008015476992220166817757004850991098359364832735577818069163164960886699148256302584357284994635758446850905922675680218317701600160605578269157893736097607754700418594964194721664918192270501850366380593584318125370163099008138908608972117437773215033134754689260890926042671417327069375211681940215850454027789453661900859883636304681856734207139868777370442029318169559237073292166350078212346111276980385754800112032989717644355519930667637371564128981856726549486801896683297402137890623999423007250290494291768145082535881645462867627179389460227354860134715376532891306499329921150961478879748744009379528953657455186914076692635188707578593477702748021389116750725470001530770045668452001319064106847370282247325854336227611135146792594912495244129389153313537108718288567801110809675766405299658128483835968963980222073643275368592534993054821424680007109716138207571335079755006470125249999083872899000026587652153430422164232543742415090516896762299335475465822095328051409966503322567047219387109961098992413753442038929219900802603130910392675488817529516372943746660438810083624963373981790800449990673352784640441788309763732444451518867814994699273873558716609957282076300036821053578947463677757851541962121070418740060672766803357605949844908264568894154996559470330772928701205191301813696870174590425538706440458155048259808009887468976993028857604627393350204622722334125119864857568667947179132736110268194422195701920552475292817177492357996038584116522545516880408655273415979249890909073353233183517834990547836448029963653119498585329496032410977290632762588149398353263076515352692387986246811299786965827558027197606698532657924132618536543232145345022924987380894604109739236969539759658404138007922625908930242343419069369411519405038135737341613950469029144340928450308619098829413728232171480696871586288252136158034824211196123446424480359746479867064793951929889957608994954098929868774746356910389522967970775936407697232753744369315960247112532867622311101672881310875783529815657310125846106930941289278833224889395211240867458143113709892760632611629973980902383939059313879979889630915621027655465308875132168141243702429191736823403964102141071797505246990469462476237572819901652005484407321787933620456905368365825660741292838073430457634899915438311436825640340564757570044081158682636583958678219519116845712104923075604593096127061495142853288289796648548243658714525814702650084435108555343713270779027396616649082823499434669228072319085103063079977450211448156497250770864125570874642221173352450772353096735463477685341293276981296031329962390460451728865331414185479965285855588373768414768663746702573833255256044572851211434561502477467601627092947036321615874277488250589481840547863915579076538967713154530496179159256576302751362405864683183211625456620371326117388263645363021223386579637148929176265351271155058864524249824270784733456029101716896915706088963096097354539019569247357719490038286056104971575415713198287690957232065438993140740710702698642284246550285191555588623322563951713040745005134726533327002349862013844712347041066089566850409349639627876363036838343585832114926749128960051137864766947299642882003305921174524674745956679460852702045827540271301085737982936144213736401805730087660338888480277774833748774002933263218634280834329122403613154406487759059581349838038324611493544374199174975363485341660489869144854865007520727999670742204887286550497314700191953986403451798754450271652555416732040652673017953874197367107937746942872561340262471617613396967826844576848797695297960649936608875751801128483659861773068048265866986167056248174476702068150548625119776693055108503444242493998863906278709648406384535776954222033873837958208864191437977008548886022527739588583358025280091494733425019089155882680123741685906266137059857192409856668894768265167554316557116887653865013533535110430014679817155343718300916842450868369987073771007321579177268097360180914734696761447027112252736500844636091863420569732995912977103146508940398900908776314249378182055770885181839377678290827185933820241755671733554344033186561471947283536283305706455607000673073546051373187824982230604965751398209718150347635332057979815450010097505763898009334916870652265189024463616587319168979007318972420994881411429831299580391955973582322737042334997289382059681417678195878696251895530964627261170806993839738387891984235884034302440603724632492571629132266249525247342112011313709832742694287513822498234840828882628618243860422391184024958792261856509271135487594339330463815770713001735937107480147664070991981446775671119105974167692250980344681932597307899089949314744125221313900896613569341898114922874963789508773262655178536680331680452501869064171223391657416718025114296111466254123435073554021421719458786623735726443724317547232387152545824117347974368935507838299690771964098243115967428991207500323361280376976612069673559957243236743524689566640950225132174828586757346218412232264085214678468283844878001101722345554004861486944524840323546812133970206018936017662280226005111838071819866055737293919423743347383167751500587603340013988849148276987555705684336999192612704086610026673297120506196414251483315595577164561998751662503889569882126513355575835730386915909850030180912855981240848839031532157521778454766554290145399094160940663835070557419735162477792205376535037416507108411593862300571200869453650313230192747781818940543361362451087800225181683842467960267959054474842188328372355889189321895322936573410038705925806716439268194309335030953934301427643852899628779995894102444345478838422643430476165030261136475320418246882874225913543088838014757345899518899767059095819820047289142750628186593365460276419584431800751073072962742400726123174606833577066779372544171404756706536995612358939128846214957446556100375319857516211648251550539655807397132083857515890410191036061521822243746213203005621550073950963762856036759720362682972029296046569233130185314391452427973810438169527679491650328456270441054360889798016032975786502049771561291120097529895415974188510630676853586185551604352780827662919445003859696174507781613985296059503529614477048194393498001403391021259141237967562768589140102290624142869369553616804079967083253190286711729511705476505792544046411823850711818957819372357927074612147031424662944056555794761340366764423754217430843419699506641051407459685788101619928573514635529868851773257292861043866078322816323140859921859951840960600710398252792553540832542562812104714689910967853350055328130203641197374446219222605251427963744638169298298371127256690401750659815016726255875174314673327879092245598353141019446427087467630881361615751256734978443293732562714591416074178146982900357417968305105408620267169212940191326852825738654627458163725011907461281827905559975648092371548735350091237463994528460738555286907355103577900520106197718677948592258115814769715624505754888478784483949346709201595899104721000235936283836433903259522433832376886184198906413807283781894840090777036312335263109861976320999706340822649444492125197588635015849701499472826249638203400198644655574790945062328382649539128279888530850545088922058563134823406816296050323013723448538496869345923364520047289372097037764629834010310940336245440891726502529108805572936821524609400221515061198015655348696529760818723590974461355721520531146244889363703993671015222559709063964584463366328590408824734283584844531683251711605021730573857503421615815555020289531178445679638986371632772835150094860702852213111901255605151504421771729336567739260539832511441072090172944034271207817968773727739116417463849117829305644527119531410257393799638790757433462840648801517277451065450826589990748089735531743058878459297849760361020914664826245053538092743164076020238475939649056543423778310147205860409467211941753911556468188036029720971559713599412002410316830335147635199710248845043565631453589634014783813701934315403142176164093929004286697881034230321702910994776991520341576268782370853201308945409479816653231327253095181539508041613959965367531032033218906210681492644243970807271589246309368319410771191175546016365971818327536786302689675022364738534742559095054264191191492465458736207490686735627441878408461540389040019149003382755001295250742724901870534437740240707437552346586874583429796125072000749598576740507939495763415282765082610136412629467424871235319065187086402590500770783418406962894759153081930989041547233016435934367988006955933044323779317063623822685898178420115859384530507633276902217202892263901383930894025288309955172291396653510610726311443203058382810794100556842010029518741121485778666866528156798100514425269632949023581236516915965185991617937818971993174772071169234649857094205166470045264125554862394610908160669053196770532628178851053248003032905468316746014386800301761923362509710804065804597629334989562820255102804100106607428930352848958452313089966076831720114600202353296749554859387480407233803376055554332703936201712408544397183528801687897834485235428037521131523287411927281492561399239307763004036702307841734849251082019545642981133568264839349207775352740953008741261072296257516112737890185885760525308184373717010734753567791051880630122878489431458648642860577534005845627349622848531741616269968877768817414137180573159701798848155432258675907369292509902904861778160070030500590674410482906997346647440777261918379186181997700966407779295566597294075328055201519334262541995443900514245084087353943053343217887122844758968985967435822014360628605832564134986532159273598783586974445187599509124053656075112784732882612283026403411198072094706126321155521866591398793095267789011944158072237363109326732988791824789568343701166226263145173813955547409182244115272207314602228019659697636005723175290239291894573876061789241069962974507167066897052727433036657604662468121072995425759158808593547957958139631336485703651610380948778012207257694216137053105004105224512878334748761535790992704180370392420086976401739251829854472189091530624068084921435083084913157549183685081158077246563400942944001850663809799810465445613665725442156720764704498298603125420394349130766646910926755799272436477985002467227876930180043613645614874280411630017614196583116085202691028859777553173987161534501320854897824100874017314516347544515328568179534418405937535695355566044250322422696543223298985712711239645829783967374464820487962370747906078353868017353237203343442006277518024025483827406719755745078649957742319101778573499926889925101755170055105388692411067045253836179012517903836349107342862225123957538400759414703407845889339498909810685508008034079166413528726499200090692447278446175890588669676650631002672727833283960167089201657637972631952501258987568753990058902746055206002480612360680667743381396860155390732415980267352671948753421866464981425641268764199304449433927730604919951107386816176217907613275515267898095464579697951927915340861882007781152341485723949705675235882860122713153881086685683835034406676527686154734137066350036174221676249188913681693900248775002241136649971692492694540274180462658991147332273850737970937295697369825672118290845039813970743145077980092618743535835809828965824060349817725101627595108847958604372059308775393392706689214514284883151104419071013835003504139263633110168604085886706251252133916028478891897745678530811533699095512410303069187515793682703708502952536066224373238921408949513780440854884503386933721533378122531392855006702203555017194969859301346580190541115788799818495564528136844074342783108936662930895685078540456095724638963662869186702806290977750122729074485984299590527938624832266784202581083969883064738602798737815151977467709070387719007333763434387370666299258738516998351924535928655578052196904271461275326672693212517631541171850899346169932701988951931669709705823710817034303413277297892202452927969036081213001479393195883231002178315579022030501959653794362179014060132433903250335633177182505381242731845758897020182681105393334905580963833989119553826733256489509199489977719113402794172652682871075683020845218831196087601198332507576313705703946849182320753094834127472370697533135764849248773144969501581491102115276834853588051221067342047279491940725801918898668760462235416517871852072990081917206594339176275183766087013146469920954799235660709744886431871429481774360273242298240508220183018633425646582655548133357631087259398238551721417410416142023656407565908997708949785287961431691058757670588692427308479790955836827635705923650119359353342846751914687255006253169361578197960368649634355202030621920642724990532116706785227758454676237170814267121948551835431963291479368864223484634291366707896521927738600513616427211046761726425379217624403638150188443740140903627356123093646867206450397920324238542393891811438807433042225869756640407317813464448651818568669263853822040153423460752596387225860732389916495604224896932184386654503669199896017855486554547676481742572905907995963709799443319843247578305015841418988330829023080739679740151707965235542592586536278575411173586882636531083221250152931669192450090503793702617170911098796095096734714537933077525077740625801187329410172205681260270095624480746521893261041309723853476718636195967676992117251899963006302144866569168896128578672544329722123196808743819413475057092058518917213365858960136120270784361397963033360946416468941705518708788326733040450593648487376042321279772618940934945567878260971307735031178580923943302479313104387538452152718503909868438475843941011345299556934956872267749874461633388543539062287620299421484386630949106185648403988954539879692114670474747972188821668696877620446098927204051347574331136981408766404494303012349393022837998809727074025265881713533391347365911761231732455431275240134820874481723132757317014853858525253649309195321665886918916824600906642516005993854682046927263653815796289402058718847214351484234638427502501673618328955772677617035104978178840852269475506403256342009159026719869481583693370229275461346595657496087866983442484520834039771165245259014991612613744759549287918818455031054161074710601199896964302434222929542512096634343484838058858199087062982535878140157856716940515556522781249000383630704030231737327413866584769434690573075379717711625701300080681933363614236019255139507056018393670813547508858066417158643224680621111419875623006747339257124792527487664090402275701408557845862604231851097377522552222776423010080629508431140712841628328476819141808621590282922392469115275154611267828826897501380085849915198392814204158182071855193305456567754622301969848082658690863672003493011563192472289615198477411888540400905069175200418756477213420293007038652868668615858391024849176968440267268215874482879057728890564646621174449211593079913944218467132433318890500012480270222992324285988362903789758407930199460883748293503730740805678303654072574101301954395041255615350292119856108455659614649201169359065896016596523176899157487400135905885923552507033486505575481290904173156619544395983405535661596453677241810388875407614978714228259595194997639645281816610599826289146311413264484648611589259486102156471624786599310941082520074632810753362827204556547966098599372633314045248040805256874115844082932989647849186545160304065152131909102125196442827180972761700654988071845951091948576448977080030455454313401164255731230665205425485894030059380257993942478065581352331533582790132490388012950043101219000998885992541768066277678012516769226395922410468066147092769919105987203248576291303777781566273212957632511027284897556642713310603762855161961582498959863356827906225315635940430012031341897386521439506137889170580722510072155972547294591232594610346126096328550495744436214397351737355770097660077481744931835557867092732999493617278193067453414940065024122426765089930958986413148629816988575704232992615892771522899301083800362128759627500471015194575327599123908788598600600980414767823805501142710392604063936703690015545563733113800392065009129617600846310457161729247246729314541146006590476880101441172608134679572179770386022464378232778843637318782166016447391545026226023981618894105309077039837991002802516479693817664707179719847749703467540500368065129591625870332463036068672092179383805884644389374238287304519136006237505988673018192516474420902449202944540676553493823081570227898466650233774750396562473843663295838264498986983220516459061453906055426815556639477038174207202073923226911517629832331435506055591297693943559787245478348007590394231368758142245972103317470663947087135655343923446688526446728213747115928714541599819922289357032196123932719161969160744494223546406511232077096880182125906815295213142295569731255990553856184548736953402659979471225540429647769262585622211969271063241338399808951162360255068970248531178392565648792690616146537220651317819296495758006662919241117963670075864585969752191226149229550138986824509006071862536944530443388089845599243105662350636737755914159050538896151412386551907809921900433672532911049789917787319275957346921278025582225424118962602915256620797640187419764461070167255733706470730643674871775748308412299494374719358665150220123060904090209279718194886626787011069462130762115422012118757506844400816878341828348907379395863395699807407123910433756195436948555458534874583685427334395664420668423698220576045417139978085715277700666662391589043392140695815271355826663487669199941934445140409073955075162328560487133838091667913409526242917812099620803326247036370253534776841827286244112911519318596556172806816810912123915230323168527642246203048174693560327459371352426088622775555907889341198656337154184306141402429682705957447110505012544184742340248139144852699974247852184257454175443396613570869961604210576711092329535197451082790571320809569217314989700866779385247316705504748340485951076939576591149333719813683310961309400932308172042525795108174523254149581860366466419811967093964144940902149396915012534437226543005871109411578949238027025832524395505703898068479422988659248018668255846110705429544761447161748624241310534117767574672985533566522109997517055198531998529283859638398318884858373729568810041033210924475664105423807902981702735913142265257599378077046243297752968033288959549119737667779379821839681033654919831979279575135782216798441157845352689831147285627012701064837610383375037006199799073305986336840342437943969591324661559093582705129788518210074948755094680583403182711860636259529613298321500959022967942510919740015225383121134610180389868398269945395307609943738307445303817464426296300538641972913082153477212704301314514621031365289855236958322654214048934299927334466469594055912877420327525752624503661392411025022931077955558303230850853111490088333902262880769699598200703821952770284693835378616722355348760792158709362423458688764169953178837430448088529987755942614430660713379279601847711576935816857905182918808973697395995509833683140610803866469031944384580313835333123383071399391685506039803250984540449659535744567585463483097339958489753597251912486854677399719404513805056781616723905393840074966309706244558818440017251313373119464211029462629187017701624257548489022581303821028412528314830340679264248170281842327348632119257541575444219946204316650287922685591696428641807877473962344392537489414102993393360047045129120657082034826637110900003060318534730971157959249185352656633502704977296646976859592181409454969548563495979020672435371405486824710605168535743884875592257566589315496391225507478935498012372832077431023700170380120475299789438689898248231169314958875136450858297230380961226385097634859521283611884846055258578815686714253305562079309317435385797353484556657623763157439972412868262756496323839239871795524969352741959773781909195323913967538096666344263336497689221668602261394448178930881759438837001179084412352694695509171098858171783189238970556106233333233023730092332151937501958351485788247457125432599226792294752755570039273513740296994797035630250830502680901384391248563438217425576639971120986363370618530324024800898261249115583116018690316732437901553972979291119860322562315930177240674444809340543610907561841391455728969128262760493020231304888642248399609741534761513569822598330149634826062788210763108227667069010726313500309812226274254165000552971526118626428092081195703090831394576373802116209005191267693760945463899907375396270437172813795541591255287293755286427452214237838063642205298378442316364093560455354349940011101112535933590021965071888759252654850661145452351646420497980341810169878238839894060997428104554964137115996675270663531297147435226232248764100024032407895956412506982146868226062022307640665991694295994998830210940819204497314288276242780739405050861106143989017010267521662815130353310242995144563273345858272158999048909711730944846485048519314805913651981906422299051507345990020284625805223213048010692926114783413529302982450282756076222278816314459361678206403679839517002404471573862885964251608551345154916005086750123833534697865820082055711366868479821246870127546297818600936667484892051344203964277218812855062749370380025356557819992960556919773226469430833523094693977562147706413452862525992499084559667056766692005392994655137372322113872335092884881187628519271377303212437577711851916877623503378502791651076383895771096285797452543319356831006669775626579410547278070772185301411758884700991917411092980810884815264658002790934970439539358202197980216858073573721524723395202035761829606404102523132179434265578664105021658372545291330088312432670539639132083872857804151745340692203542731037230793362508962567500809564298938498256748462194841180399358046080227610120314596452068301823553251931750785723511980400523286217503628804368362487199145337262484737145139297353204980307002412488629775507748874386483952786593966932498787291464327189768519647342309883632892349052405770516561921809569971047958633608568470815856780169995615580824489353229883967086118299763664017640201161376733359113176778764682835357242923668027865436584677297443707262951605985034549928819524904446600443840604213953336619522883415904225761669735226967365604449507517278923380254140045162073908968777475938756356354550094276625797632232202852053766518397973660561128159507028467130411485457090404663028952411001341362896139011264127811486240742924726266909279831054553854141184036379417630433434890861606322340667120202839062962480369935302722261580882770943363629425064906493123405810305471547598051486479148619320677613985851550938843000928429830132058360403287825161615987172804298772238627322309662533274654322631546927660182427904254581522488956285981750909918825576750222951241352146069591516769027619692692596850940182346724207766198840072589142203927657783886357757327425023201104980728543423354776403394714301983050708264220661214225963784863507085651723351859651149276569214919775483909223651715294432849147533427703587571137607566009843455296018020684122631398073907887459311026131687297859548631048485233440417876421138567796866191340817082967782848105063623907266817705558541986233439776961528813132871673061117388392116209746497352411791362282070344451624672215999124633969052612263245460649754470233319834279438097614057073283840084037264803668844792728983897079645269074600083669306491119277407383736309670988534399437833796102443085317659683033533315248189554007594064489018315232073849651337888399551776074085272271581554977888006721424724215307797754074191181742450759753271874446010113726456859005983349577447350296926867895409566209752816505377909709767325018011075334151712008205650672185725555516732246553015656028485181236468951917967963697309460299053482699894592606689494115729492364839579192617886370805841524947958930592105626086121730312918126722369991388969533592174729314916381628553615789811526918079782115167780478487296498112693757500058331312084802669473292737139256690879186785961555253557444969481751374169946835459339232435916858316033326864957209359255288972897821514724814208589965197056916206949823774262075618170325903181076080888912699848725074810038129703513118256473748884956873139426988099103603134892836456246767735101802671678188403075204434823420997373992464384643324709826198325180008729872329791338549445101473045780976830092749955099859787102691639322619169920251024876210327861710397059725286528038548838338077186377250702499201369066176243201937919299622596791400685012557205972723413588200796995717313748871892322828509129128844482640486155771050145163189363339688493612624948094438008141801347864360717365848850153814283548138932409642683451058975720913677943550162307337747411911755661677661370262973037469249150221371571954031855235373292031276239678233529482122228670518849544478831415199959830721201852726748568311150124743310421724857554373924492564282713981678765160952416083546293697679809301537982172136987315422182654244214913188111661597704911693981386159571136521977009196165060974432964137272413204145479988016014976336555832630078085368607072209613548224931118696435134699845914672850864280573124241083231152623248688116306123104188755196025263296879797018448227661906074483528953880933832137417578665588624395807841136679009710104257728974464524750605940763209966747486626866976508532516670151593131366125994867586628482745544802075206825712015465388613277504436773546797525806746260467500050290385780700965459948820886812962443020900322388526716571293048086255653551127054855316807863397618023175798541521964628203612813741785255132276602750179987989903863318305979015479879685873147705263823315374621474979511390003766766640592301945687293219370697956412093211727307764467776919659814699032291251876088995023020578531529975986555220745626309859249125771668083119979826332720872008069562814244870688910976383446060734882244031432088570214286471646046799302737938095953015222031773209768844335538405228137162523669391482423790450605790739524972981601677111945992560125511784196826481960771980169964437326379314773376354561110328380618094874194956877177603368999663621952174472996211596139553522054152009928502014525159457386446101307903104068723384594904166531956343934967609803191173820852302982535425888097014094467027316546660291847920518107312036535824988247584740991700601703513429565085289366129070698904253712544774428117602644030927889184026912023394755222660519730942160591579146970132476347435018730446045252334212592447652549972035710267557236377141245570370308543354713578557178982237371325193874735341711607919131290895067913768094634240110428236642354466934583051391177061601712049958101076822942009407454475702710228471169963954057652924841716004534740243271545874946935821394302878339054267657953402650874710101650600044956633786556217020177315746864587051666500220158523390294596167044527986240534799120274550059345972060467201327287957074574212545153263818708601756366863693164069769838621573181644088121495831896799506703543314137662797569112961044233315287679625136745114189329182118384403832465821963903909615872739552394069568357897527408529949364992090126465201878596800728664014251244668538233830869976975480151468821021247019296971767545393253084689658051265603431869855597073763282693501220327444352587037378602978795659767184322038104795890457880337896333543529540237847167935219245836975374684440846739557511712472692811977819159229794842590470950561641245543990246428698738624921832453836648703868800801411223965273385858451400652869356296460714643428828541840439560686087707211409266974710015474812343738164732883247863545318774305384691407700898848291590958310830502667215676850350361895282922462417332023945951583875943036098786368819743465399233520994607104636526015945363770341938537574097212479154886377340234845303997573205124222826922704609955398852621315525396945853844870914576283926588860076288441528122117613750453556678048446588970876921470198894894486435358099557524320648422961004450043643239466734709045244289739183115138684144407966023588194078890031949187668257948540978682958601565974906166003007754427827917760776900863874329523128209532791460664178724397179259835083565896567513329626783954621104459002862178581480342304207071535618479273518230929321567583803478604327691803510688307852787396726065519290944502014042975714370641957777616957200528169403447102888391951667692929312023635985926246418420136267386693469706911327873079213796901522937826276834622893202638499302474127195646841303081572269493026123182642703966189848822685553806114935699972732339628723848199899064245267633528917456823723957507499237292518929835290443505176331710875109338127826805325482051114101536483238810724636288403774301884257638902992516963361446609220928449058706981300227833209097905903215044626150075321864884908697809205454436349216753857582853542867826115588261246832066664890952399322694647927706051132658243704816893814286270443922300443743181585002516760672596990138201777027777187805441008995047340812863149124400805698828636192502307296772807263493677618888087699348870703020551652144849297134828793859352501323977496257000995418662470326370875255818760345276619493573259692774926350387960413976253859679625645356420628134787081336946936357156869844920778135342449493898449011151210095906858585657844166262704385985956658564419248884617831582574334886823154518135953762239346312205875971133912824414636753205770073132158595365990108805443711389086777865130962737356787255460024238100909557196910583147497479938746201154638363361342023462734601167795322082689185381490354804372748528761552174676837199906384314385809127728347336885323736826913064539127982411544655261000275106054611742882781439025510588816043176395446866351736175938491873641828310338551062747466756111707576045310603391890018716572401750658461883254527816089935023667825549929885454552412074686346206651745497441812426048777343775866905323832779829336241005316347150166057156712120045620853891368017186355826355282970799284010074951205702343579300983275645010878244768890553633096891865394662835083656074698140030296984563230013065471235353636868453804879202348955886385116050742796077002225762900180621892919083416378351175534871580385621882654862722898861721849999493996991958075466969184969956122034301397587113944135151318967728451187249461079385466557777032641555022070863848095481017895844984097395923101623101348618571430080296889772806169860274696451190010264915629988803873815130359640979273897983243696757408040300362652548953909045976607831648996884200482039251274893056308106328284984889796379686046922756958042392689118237077564304940699735072973953556405618165988296356135017091487944773762171916277931475811948612079123356770486781012402681481289989259851612413737565169273289319460644230887980566302186731402740215578176487647341847238383188833609616377470861058060648714848862104692929252598453629365940915485256034637343087888496906560252307448743295431461451754043704285761684711487546532078925483306507636523611837274781614437072042446482416614457853467999301197772703974415254914805342496605885144503451789394295055407474584371520132297835460893587399777846470606431097973059961229593647287606193009159773579561317706253642522758252797495180510003754968854822542168717711183180846344835450172697020912619088884683531636425666620083742101616453763078777525592465248067593536079589427481792429438669192048655174870271538576079604810450934550631220501270606398445469455212103828000625917080240004709193193059370767094059705952519449359732532845283300500584500596126660375106796888165823926525268400053369203304884161806463542570392037173849278913484253010960851207711845950989658332385768460548593275307455639118975903284570628779438373876994009988250775880198549316722289740911826838897782194480777107566517858825736991989081359089935926856344380474496972515752063241728525447457287851175606154567515903594517498897529328960262408613654563367823999390030733625315960124716422035735233866563579377256858700331463759308450748862647592540923346950513362108953639689895597441565243683280540790923618137645175290326908417430806777842163548492488492870405083941273630449950042203814553857734726389151842021614492744096177704971085853661305888813057434555312423168221934585831615856354007663688092526503040653250866623976832865648505904378549641212246883549429863593477393214050155890067559314458469817498540686030175299111652093573587630785280322763774046364591694142641017412706892244365086120791179501407786699214460308492232002885607491244352857418645619973156082922408653927964999489213372804883959764169539671909080106827922967595195268797889718368522275387418722507665600333348618595874849776255084897547145729918972904409655604724796789757978474324622194845682275962649115319614526796172714309692751161205541470881344725623773124708026274353548841336509015563064256427795921547481414763247037889701434153946269537932440728711681506615468910784108994246262928366159667501534130707275778981541059421123331660558611162518890516666697159220497691767192594049634179940312424372180444330502097256736482070957210413321968266943920771661786175064954559859991610395098714439513054289141211744552963030383643237688836719551302371428965916532843990937180236346392816518937346059205739561284256697002037126418044638306661964249570421350175645688761668394617376614670786931889409472749828735628786797540219481182199085575201125536828266336548769238906836832677251725239965271419200647457626330947162344263677903985375589465939414385232541708568154293761123471077600639583051988431246929577396453079305004695959602736123002527975291787377219643274001363212575452585059667673759203920534249270872264100371051969336830835179467683861633928367459078501979305915487727725288332964949530789511639793162087357093187003499431371482943127050992148162684301586699394338466942287701664754921141682075361230815998190655312374545728183208601775687067401405976807886231873759882274030408775604335397352295068357164152907807785816086367288088790013694839669537759481533887272389761113184922637769206712739342170423008072328081608959259528279190954451929284411248951986007102338720437240799532173530187600288012867842702665074030715284373001915454421527206268752522730198071299051649246955622704613794375855649911861275110665265055217832966512655825355793363930366172041785530562598001208950978472867320843240021737766551363348482482066886936667688396609038116553816025674694684878182655455249138761143895908175206776764311488368094589036910503919789035455525707423730699985719552314028333103546821333217931626986291695757136098368332831943256391167634586816467862175120933484860181648722168810468310900816308338801477412244624041334363685033521660541873003910696199482606659086142670637164321303206141703816456897807497610533634341993196350475004502469485451972577370140862250065440520852529299498339791550526320823039302025531042271195301005227230705299086838635737587028492343244528986183307805922444185157282450427805340051750570660066776108226921699417808227130796991214044649924524452644269216215799030940434707125012565821032902536861576436115167581309553190193241093009942794896619983303859134774794453798679611005147832808218797176271727164769292146787080662080452823378030825441821376155015313239164818143381148536384420444962547285905582053840449443860131685381673943844751173825466100215732011453176712770846517571183428131046705572559663373375370999756670401964745694769342784726731619449818278071220816426221741907660412095685530512146674812574727510404627542300623237871997969571763288844095336265839564246842239978320359703001467573265993958572779809278143993007011645890371323654571263287543235417261814755520011731775531855114034328375177514906489994154714009828423480199311341925991942814877114435155098725929524821542683288341624939201017292461740118253095364007781002685868758425147052404598363212535875810028563748307239614909667476874657975079420800688502962882112791374438724099688953700161975876049282514129302429856265094234047957204502211642692762193591685245277134893095524452175433857815972276574957972323106993058151247199146693743275423579198419228729023263261028919981824504620872395976788296021163767799335944238348680345332784765003998071636989086386309004563556003650642902200657902833394586817667165123922140948158365124366304275963310599852395018862725842540305692598891089904880419035735287307702436595967273171648122695156123421298216276021559855300242250917242263853981619823472444941792060639437189177700225464168646621129057776603716893857705934604053440463010286427107069246635548276096111936728613385490438464318477575850193246351222283055485266714394482625951212069119216035589050148159901377968808873036965475632144436061000525292519764596973840233786767574874958284959750554674780114098130481614703466399209788733628191824283866789217700482624696670390724152491137701501904537105869574748528295229690553876125188287689500285274383953219274810449614436794492961736962400057638905389631933306754791554455279080963064866539006403922162361108035740613507479121098470784834964458236009513759678547552498596899445425914483125368514378293944713659114238186500459983971629158217071301949875949639312662622750110110532193038877810155098489096608871705297170515236118144513444844236482442503752276409689803789261574941421270328793747430495805739250661367969934657915314068860521097651020105744388794753082239944095396848166160572771569512142286147687131745821408833397090150284854678817439037053349661535971188817543153215220624494052532105433612886994505258880062397236342931896188467829424535493445228264608226219073427185674039882399560242630297811297448917925558453457682749777443540381096673186568678357765804208840140817798042986452167948470401297590338795859973273540330676308056387778610787679572670109604038389964141551545255386062212889189644072265265866648048788430480522446531111110440220552809277771310129730980377743482730048155355670267766596653922721040487979456816223867824279845795270722488860512108692945670355743510497496658116531697570150525946480318368888087874934449106652817748258707606688282343383287851239963101292967854922767093183340903067207850940336987387037609721706142451988690339082438948211930930388418936766492767336956012020555746740227837934076062789683192917493078068979012316449648307309178723407173925602328415519404292090457497930816818667243600229209426410443033931320885955710923178190932011861626893964074100429559017245879404083503170650850774610922727153090899307196053862186736117239698191087019373671773039311861293602053580267655272719398567903471669172461807755085923128577880042505063589887287646985061451564240244623126186462755764967024467980356597473222549241997344418000444643714867507288961712794849381059664067307951240400702151192947845615908353955627079931766364467839911367081210808150166446116815470457352356482956296294343393115308837584122360359203746189092214948969906391424134141985169011153059249401941207811705461553098227229991797746324392758773133043129097307122901339623236472174527896355348345320495851186779375793838269180604913563322732582885138645369108997737313986003353694274922428977699896247890538395154311952033364857571694949615503471712839819412672305490392400589932745062479557565082635611924077233651465119012425107406642404446202067292107987136061439464780263105242047013605363593187442232789588476986223125975163927374202095236807765415605088694329436567338167171463689778006131758080992079724258870359383103709728269566102560114135784571199223648341565981319186212595546141769537116392527386360976602728606838982492949254484730882133764547269360551140998790516008367992556600584810822872428356551353295792439362687382308563544916726380839576987246696066337441753898299998464210464361111992932050116502501861689002786499565220185657555651140466693666419164878103608828663022382542455480280298812035658186654897293285467224051476884696306546507408907043904562626699871437590173161295807007976015451639584988270596715130780670835640057578533308110470479988831714940863709257878084166864775026305475071296384826738116791718822090312050195832208744712053538946486575262719596421063491609401340109649884406152794208941520791735858033941950346851891304364943760971089406777150008990984934701831669289663380966580066162792187879435600354000462568711787667252258802146691582333759440017800573021174239967401103317595439292086937895288651711630339042294737034451378872403948569932732939090583301127219110903783942522468436153359252534310200769258782854686659316628967635709352780281912185559208023864067460790942567641937844346111881148118381708747695264403990582409459984007675660414061806862257600810365244189293191440422514015229119134470283046803934585344752660638236679044769986157674679744352416605259910996024683590445686740139943366314757703939118886806361107546492463693946742487649822332429226787357429795463220118589837644923594830281301360177745483230719451698967413819136440133889038468363572402490997005425419653533538857968241189303312294598542760486546979827139649817305445764210668742743882014769121405819380895358320939974162778831502191910439665844218203447208548625872955628584143149864025401550566846520526103297479452903945958217950800253007307454277499964741036399097356444530062862754829462398805502747628474130543445806459947208587048284587662761645573513726323070089256602693206635679433841247053208674294680946830684044236061382582464033301125753499560368960504120925608001210453890390480766866726933470405831071778055786760091589176773956685273524872065845588216980384125316199110151892528625535216589312693024134861978901951375643579505765051570308561575848551023846538132274973224746810120362348483121759403242217952633487166440984293663407165668572031268100563541198188962715514133341521254382272360461291721227811421520099249244364350288406382819089071923502477856391097213618442610592804033671415402552892095455243962779936510647665082904759562005614431279335743206612703925840535792687768062090279733661832156236991159210369327735904035488701661221900438046968268699945240013991510809190745956476547770651022247025778569496604395866498758310333263559192826826375025780065206849349897248660614309906372155769945772556132252782959662899814255621536892361587177132850520301364294174062482994147701437443040990202955787372937881224190538341635143349149170946696171552054944548722078337993149721396915337485231413931657767038021949969412105286908574641168156135881511263834692819005601488354477812368973419328874743762885377513387433228765708389953871081161257481551698333985434740113347993030131434258020960986974175941472165600500481310015528534239173936616711727976534550642764717962355868203885302733800712781530442871168100706702872901600361843781444185201107447124124160899349464212022756131312142362320147751570469533726412100746509166027136235364744917647568231189719636502377628133853015726416596524661580080906829730243254313705184239994223630917035223746779813952126198018713630466484310540608033530896665269383721531867636570495136733692141414223768272096480481020087687797372054110858271751440478790113344628358234540324918183257749821798621896872824190001920518437762598223052874666684785681535988221102374929906031171928856382682994156850534144769978700821432973747882171936977244116867532572205291484568574922335419987751895718992361239110085485037277549840726111606399465087916882613497390606164756849990388642929627260133870095933315156312408206591354942094225023430867466522378966847946377158419467646714888500871504891804477542987972872556864677773673193557350456745160053049166997643818121509865878710212249950618588410256031944763219244095937460483083717098292487937547707128907601519340469794682770141260514695596891549502473652706585527874589294158182816050974813682158407774214949698049587918899456263159741562370178275103544794839109186620687156434279528258024142981842612456059178189856547299895489395628816593431564683605959753510550359903170585710788552591845930943449579145054579375958744637404737295843832771692948806038395836421958684940203098692879911898999674619596584864204830064160023028971198035505031857218525581438408952211398787808024647197806719517117855835348485248086979635527672758339560869850741031810058194671732545553788307171103211205674768841143879362197848736378056797517956636732303168884220032592975143955228202004021644357123663624809980466134701424679630059441037518808889505375126321991301893329074625102359944201293293899168684785648113677525382122430598535793386200758276303962300719678966078877858468317669386883076892849387539822420600659949262852432195870152078567019949860430783137700058426553697005527175568366477885905129798506146884723072618619158895789194622583711717650525978110825304292770261311099180230426123585333899950615823990094048834017379876318488774515333304661232828736425023203252656186877152514335241537666156913507730468207027929208376496675144210139131082806859225664746389309081677773047212073380385367604162585085595219444585238206058344613221216604196169386231423325756921037735546076843677689625538016342521440039271415133200692798288233296206695939483466942593889916027121602223089818381257548590303113981054799078721017364255832299952594216552352655139172084564349223389236253250527718324911094320332132765026641682666654054001556807187054737785166839627775992385965348364950282432202188255236401489136487237486378290709690671149043793934167139794896866584384401429062538383177701531561097892992444843293997359730941019203491930898311149041024723541902082461251981762737365779172372250354710733801141303950994971426830789157314655223538052146331845809299715792066081749801475333648125258396583668077678628978212402537807257828029191984696476552255941571389801728837413817463179557286569393306645295355333434878452402468330176486805965959206383754697761207044095850550073594381541538373252470787468715480218861714604270202816190274571484632539358608065353474439967863569298638209920305542219928041436137700484140559180508312036436622662404596364006520684709316147154821379560324452750164071332695867086406266470887218651617125618929175459576363853941298856797630474522655062732930341535438040068871646276355976733199139415174300468385229790302586475208712436196188411346165678834328684686211661136445783551134717720646588078924836377684875931321788359081084924563086917770359369947381638151888191464144220828700564520826417670193214992124383551747143511226782352773758969654422491650207374934688002159317743433743439292456848432345022971707972385228399842270688893995153843422025207143824072678931344519525478636020375035624683720841965504849295355233746395334120642600560019796896639385657523706414938379899716675173714722216382364247097969504146797231255438147537046780228561467349020318454213520440356261647270674559366897225500812995873619969898023223686652390682996063435893081134202670947010654877629187905489818265534593138393791627128786901468242373849195052315751400448243396727870824778452340894308837924240909515977863200651834821387738531106355892485923035961819405118258475155677800123404173067298462638043740869341477931789111547556023823085258712809788387573545542416444828751992819937817073307662266681369267896740612673746213457653950537080631020524140837954712130171866202774944326756211470766531435695976873803545708088410239045587937022531192453779660832529059421090059096293787114248961105892089430059041703399610978295141167047816370093247463470273524001409372227808114124000609008716471200574046071830850202443998562528284064336890729571576451163042060480692470310834420707824585126878176640712609910882950374835514089808827270167922019261842548417794349647864082432334970385555566169336446755428215267791559504550257933880034945213240820789119639180064950887805661088950178498535620800674793350138326668033866581329969808382973056038831428660338388450969457558390792041074242591208167323665389865205716645520290477351897752400156702907311080694505399167775458475978994340157236962327211109989708131794895944930742690043330386501394676311195069193919563412469831803702436151916816306468589664381573381418587802047684341895259388763189567847989376447077809733011239735404463158366577236142504441810929165432983017261031391890554175925816629533260251449356447160620447244522555369377555656312514898770409542340404757404135107189604320329310336054398583201152255090616796481215124300475013118171172295858979840680578962443803994835599804517224577508636659088684011457712261408542258670726977030475114880267004579851637988124961363397718644068130980537623654825673279273920817664975460063583173267947089237687484560479401822154133819227685952504284542146832039784480295074326019944587705909458956479471453100733378007939201999569612669531966252933808633794412397463248863848535816368553716470445171921316119950411778775661566974934265610853264748288671571331097796620104648487459990748656859153135505162675594343863008440179706700622210098455573272072668080328621409432399385843469765080423519639079773347360078490998720386680044484090296321667773697593520110271486037916225969495589336549582265722176154346648889774321718085205974339838313059746787158259541628473399363731565017399035941746958487348632419624454507319642446286480820291768915709821841288008571078804099116203457577165717799326528034618190082984421078065597885712499230857650605272210258072729730234939184366069855936054809771109837542178121230912723580498121058775641277103492497494996673460434424545752316234814903331181365201091634688406599300653394701510898846202914268427505461104769702467817715636225367582396407873069871984480506519890959060814609830997048639472604990715963107508470236364803230942769558070983818967408136123164318882137457418126585738157538445353827093686847333121530642709613985080177077759944847965732091372092417301472415478983756274473089311137824029752921970695955545079418395191838847881484818399049109774144713729375695420891150936466969559610649869019856132039721029229802732969236744742262738867267765921235241638984373426790711042004412773158347348072997354850645690989632867485455027210352153455840457827846309537238370854777835379194094341775196119056093948658738908094966113436726446909574372304953257780703797682694184046225222641594628916100224518710450103383239395830265510088169780425073634199505145148433689753344687364470779421150937891626424982924426740911303217224658749931435371559685604891018745130428777743699527003073260428856654822376726590962914728185291743051792918053172415540302658706228838976162579123787990009648996317004716737569218015913451493210853012180797130035145271256998160141543988111958571676467261535265450871513891966909375372518930323461115423364552980964374622747615373486541424535000840585724296892751694497215701547323604043164372884857873776843119822169384381928106562392894973397780807362996525855912945092220593934361533370942134958958177973692106035026075524068891898390953725479004717278120196977475841876440742102614901225329059260331086392582402228042705934800428696242688901187113846244479916935429307178736441383831421428576029820269629325252527010440693524582043331466333184635515949364915490058261103066374419669998928770629992050325882716861694855510233694479566355808062781080641210052116548535239344926554698942592529001523784343753033063231375355660106404837221319794782744452912663530052451516423485579299771621288167883401205311247242988889730592053506237927584614746430758389795550293949444775230363384065744799348100667551764677467354305688707955772936557383255145318930097872993294689891454293341017653769042987958178794808097572233522090202783590792907302253104849429616582453623422587343185170135473850841267773215207928346900965790304604836722473260066323111703457381051373422265205683785639350526240478321974810627335642973573683683492217546613864889062412441503889656131525201224484250210991213728197874418113459075724982776823778692631378687303336113339182274229873201990468250211343852186457275570869059931360433981120421030275107631305033819337714566534145578187182903102087223526945158380815700478096780159182697174223954006365082131562789029343906963272643439526557098014535425665748118586332411038796630256286499005338940354087320447038054354710565340251754035090834151217879488371037153042729735601002713705787313557163146057961708485927939020851521902452716536122088418169766191438612957531515940579199677087848843097463388367495999394239752345992742546113410765763721198165314987664300663374058795921034957862086016125585595669953261074117443378372955994996394922399489402949399830449301470417693414306339036558310765734923159266604792978163789672585796732167927780724288951329254571810328931486471553546902817396314259735280572299079409086574783587970932198698097138438765778340727136916426034564762882790780324196471071472035847412181782515992650559808212578048598517359198503530977353463247280197565750879319758936835966916404038058664313673157762250860107220078239342835334341205808914835928413723107690899610066830401876824193305263463523686629986963843750977744228039187679592376633415525910937289942017363478873253087386269948715737753180628516806257636875564502463183667712118270646067795259692600960436410268487115253001421620888741661288301747449348730094732493725737217534072567546396520562905094724494759985510629192126271741747520546719470091276140694781267443302829400181315473906322823934206204997431507449572580883011086969494490613309938542861242619384701821154280670664555320063277735935884776336038886857117980669331669432736581488520463880140626649022358497762533269378552517089550680981392512364862362151646536332518414337579550804010999136105532060087580511881287950492095805928904257171105376230533917158604610287063661880489267915422725526408489460575183578176865907365761336166088189202215045762256593902311537468400433158663204372322285874242815293348987213852052799466645295772957692569679042237606904754661485842986900167251428484523689592883724513528902229760364814633568962158863503921250782951988778498215419662466194311286454860008831217414763811339621609501614303142651196187504949403436137278340941107770356615762489384991291756552629272201628387841080439676967683073110664116992097016243871492658255530593777845181100453766899818032366155976367794263450432757195056525301676378083101007439417567893472054673033958315891178746910502206050932148940550401873099286884609686722595621936933799403947763580833298646710216384537480281140962775485383378286204098652717384922243979241342255150527764140865373363626986830760362414827577285044610462813843783855653097994614379755997555199515755994407045769747394740545666885865341174465355227265466167936240716537884559190522202173355902527206004109963682019678612081223818077323016300579400764495793582862974869544664630506655133553819332512761721681541529667236945220430930225267467594875626688027028735328695667471210018644293361915540010170839025527816014930654089491162535522678071490497829928408477031813709341883673678709417869363449923201790317991432005954041595291958033650272744476680165115792279426549221861953656328442228632730927650524711248936827401335895584074200985066449666642430849141526997005438206466518691903106423669221210996183467036571161188977182893410791316384684586156760371307853121130736505262147520466757039889324836994700561449919861258283454876285087818581312310302948950508104492259259358889374737781135193474072195205757367725335796959005896287760868489354413749855655437548588395637794809759022167334512842509390970238444873367136011463587944949449494637461249209591437323875296408627379377878574935771888482683488353230092245680048755077357884486795658432047591157148164149761577592847069420011869108700260481636661349391515938106403770291635358424777889984058783648187251743717031268957941887824718725305245751401316672606383744077661510111151193134023133001539286151436535764871280860107514943080065674352125120576912820856860440568144214325300623010834203661373105754796360850983941909271243597394893248191861958573820342503826974884483094874627717125864283922769166413160501851535952131099138193846654434603625171441649173517157676062087182637338296904781165265637891673458643701491274279235054140636391902439508851176591180802111257186351552271818089482518517527718880869094065555535768085249103813047204119851345176423134577173218422292065366322121873673873882406197618382243801488119366456817911832682283102430576071888529852248002149913621984816686132509807322539099970339520610475530054356313794088001479674928477873364745841824746940856894393135040669772674242594784116124031954607082683903893151146487459799067005064487648664271095798756199453155024022279759812913053077843988538679174618194648911134442926136651952207514672506132624341866036838329854276891543317266371222615003066939928048017760144458921329162442577467822390022750060140874996177063878225381817339475860094142065579320627889454467089649134860942869303836973754861247084743771133660260164859398793977610084305700771933389192209230712649194073480214583929378007531378563128897844356890300989284909542416867813195411079727379492198559877080087964082464044401744615156752131478828767422858254956471331760196916422262539280860472348657346866080199162194917259805153325867508581327597339556925913597812563775288630270595387551035507130101694767665202685300808384836660588140462160519332345877367610947129840070161354504228301235533781053759271301828068578342468531001641219105915951330310932194728733131108892502834236242422708458339976557071235643792139559626482490181725506764750460460313967029625850104126861255991945119117874384462836528353950259802483216462429317084160998391511926787142912687377697256728210709566917904069577998634462545668600027783362613393040370916391780108419330312922234364402131481055351036836822608316944678562058730744470884563897543417712828862187447759013561722184046751052249702189865518761732253517921413798876719764673657260691441463124515813072584133436776114665098900536238012254773028192161776430091772494657639277616857361145167329985320079916265559610498289356900221387891273220253825608671060539988932797633677215746260356730737906929173377786844247698961607155599606122545796507867136929115610734890972335991036805361570809879895518515299991349112375693909347438267434167892661235416471073224883194564140813173629237238493688228227213608565377486454576499982172629911612136677189428466788304181805303268786650378977728260029559652184519309524075006651732512655684160029876624193920427703904904805143581822295442043876546980353549777719586588116792341690674689616902540396540309608820224886499431879307032927402325171718114587179210864107232790355263394298286762446322344497498349346614379781734590904075539524512501323158938222569066084612754328640770585660161090922115139866463920751571018147498648279080532488129236819736701373693575684220762963236521298203987295174457579439894194025134767651669067681348192365674019999447421476294162763666510228313124979460110282526562004639913263438470330849140218244646484264017083318110350494948776816140253438221018177667348243483025930113816839063107348627721676539661355683711000966260245676592245916915705843507343035310390945769634579627360246603356929147269040375781491608612391803753945753032928564570434029725674499955224294234803416160621589453897135477298989081361083180843902567564724424515915497459819938121425857756934531030562238398136464800740821509553726022768983292702783923789753344660226100313270986979208019410328308591815362980370840639331251868070609965536008509164124690485836978981530798533791369018514116331044643121996492761414671256645807902999214263132610713839549398698353481815944192713174244629815877175714529614642469134167241294254395411816973372859935013299882187150340277936899283407031090939655391205311936565565175252959186161006586984748188912581257899887133859196573612160389479643600624073195323855735041114777766129740362707264761102696328148405925957637948271484743120349312498361209880742495336874707386339471277603244982282609281013829582271400186620879480812713766683226944710745452335126363776021234984831860921149546324211751198661992207377912582122116802060328164155476405294246624119031976792548761160123163114615824948775291498269802527980467408838689530433294952778713695137729419547539634795466083870281966120108604246062634444567965283717532283403996994261401273992445611212509889473503600890583311075919718232766240695924099794003814438314887802385355444840061440043082690262953758826246104342017634313797614729042721578275255203548825578856649863368910332530995199358629164778757705300684121367214135904070639738805178058898956950944987406989663024137850320693715830672548425434281435835017979680635963451169718310853632451481381683106489319718525042911757858118054696793672881884883796693800851236970549282959513647234873786409229638801761226509236613205050068546727644061980879115969415637321491285070744787320059004237296690339727442988584197825927375657428177475620575285965702131489338236089317564550895407696594107042158501492578495232998930519196313745675643615342614268674876614047891478969466269777494920732100045287968787870285093283110202996217907763489820850338951945070503543495533409416704257048866230164373466093902775030332440966075739633942077581010498211770141214494906971213050506874793901294754591792819437571104330888131033488956602581210712208918930245437482775693149971257250712065193483831327459219982307090609256364307745347454010368996267515251985851549736043237560988326559180636483725125661769098770518575503494954989897471331577670904364269778090145175349925254844853154497595335242106536979001098652427737004291991866431738093984372016054128983629118721173868284595439163893259312097888023801126833712229875741141952444908790135110317043627186675452346881714014734293957165718965858458832927518345493857348227717790864677699417780664586760614975884496692391361634938911973139153676337190884239952123343168727977157130423805572725574338290644654868290177195171991495551897049400149418591058212863127783290643446759916858424378941830834870880266660012103720105439725213722664913698879953655532046370831727240637489210159385717304476604990045828194386550292161738236334276939732892441336775946163207304987499170765414243698328894405488648908168649833963716668118014867075057129832824309533314436844754277340941349119844168854816333155399717069156429314980127635584724108156653645303803587985158766858819151348353488778632273028972861453936400625808217859725278198309255934867188501530818284676554582051008128249973619858202996558385364026238364580385790036657648872288195180663665866678775734083627708032017188474635728671632804240350984825645392670732748075015493135072269404255864378456614847971785241299552768191579791113066299785736135157758548911016237390663341588799088366580099351793927549051993581093759076526664459387421128336070566273180730550476901484569717553076704994207646484703059871344411802775492823603056051987226538808380366371206354128350199177463977750667406565316897110111710727764143135377844733078924910010080684847098867365376266613669150707617372305562973874681757329911613088855479572633744787176841841774402644539857978995652377864413608709774329770255420762163354893546958127694543375131754091562562264428971743561842999459765622330911752640420744724624818353255293964032168031791425765489617111949559787842197635784901082425388622269014673969446377558188232412152871265469964752408267200558003022479115724481337846550807358263790827214409389985965788915930012919557764486207434646020539519863105081194680167664400412578952185717605522556956929158883337919487228832964472414470257232337809673910595623945786906788691580682118707650973217141718936347803927430866044691360576245883496082696202034962668883573953762001587088292788796914843023942230491583102335729444828347475186978918477132041131580440853081951437881171637029879198397116195788439012371285475057750649664054882144721737601338262174532257015385426476359159098849697835165142006201878254703631187940136352656737899716357056081608211372330040242420259653831874142213811534046572803926158242107796671410525273563684567756129805020313403840679593251884788959067900843170693935493660883570066786192765134545168821882265907177195348138228079356020981442660178081724119837771592425898624477749927883532114149695267845262689341158326760016382223176141313320213918024482988252685644503463844355737311132000082537331210634345418768410615104321752703925121847627506430306029448908783603519364054367432115276892774265605492318815343789217982572233852587996716544213398275327964947334533293858452313479755399191255457022713054994233155669368830196185170646076908574107210661856682968478933245883598346718363707288228728613804389506574573119943167530641625049845875078614549783072042591589441988132864797750793102215890783054682988064617197352425457860218323908603636730190715813056409392368739281546845113042994277334243392537597987740098231320980162248588843081540077083399812519936396385250874347351183787598860747729785937659460411425615946914273248254356988220845830696090041034502342603457291474893515481808374986605083323662467263642085712396776073141313569316716004853593413094936681531765463851670931459977146922408610189194960058663030703901388484673266743475678854561884751774951445238722268875111905926705312735233832310885622910293606432392560885484328786320434605425509016638504116752223754142862250812484990936616183853584552447584431879295676200665224176296120537891956643074637567717453589965561775660504559689053660876126281267309797702060586199737513612986450484394136127099824999128015206119404968373518241072814683980145991922349316719311403150476086902673546623722888299894708691647788904005747106330350551012087655062241653888702183692217363075120277715500892244188421296595973709256301838724226278894683411756099919913125007003298469152269674270166882948079820175229354638503315316953331637408393567157321609577725817815187105006072602907757947877329491343907957023127328704257659852042937959606619943905729854172812796306203124173833616541341269402378176376560846003128360287365082770486445273918435169395900000952137667858763523834231948966725036235965409158118448451700212731199408046179477379361044735905818488238856714391916655694101425877811296894929404427792263428788405450176966044868499617934259678557272904770442893450594854236222849827779239053035908084373962134352045879461586755997041405561916160252593212636514430156067010141529523079144135501214181747829198021866978418614938247255834593729247045683865286160341743886732884522861483724488289407714244590972905196143126360955936097782596061669090831170679447485685159131274759918787941463426387814713726781171534064710411299831704005251039607259071913690951752031462357748584543378928205475523957575818412140423387843149318459306254836181551432780316102134601765150827074609006917674105004347071725059245343367025256826478756748019921129442058061306037817365924242591162871969583535362267954478071514577459675976889261176356968096211182132546771218224231062363559271107953639532112267333789497648255416739518028050906187587373389750845395497404624882351754658219407816535890144996001763624364387195189201312928690434076325836484345152647066424086544580553556874723606249034371218911184675243736198414754314626349470695955219651734147891544743892208234548915733746974438263858519599373016668180159013075610365440857739879260963446843487453657863853509187578969954676354957831312786692804976313674170178823117407995446531013139304052011754287633180973155353726033411541496180357891864023647170588603338682785885189145124543427012170016591461069730066600405196362533171800718476708653229358928490226630308481350173445307250825571690069385230501890677373638775453610402649734776862775248624296600176686063203738682493856170720161272317534867014632243617875823443842314784437060621538960584662774887121143752762419245644105357005096177156399817548302405213304810442712893344817648073905862079988643160134680650611084748090389262064735731716168793441880510954369927763159419785782029448364715636087020025057468887408636609968189272523406153960903458972187332734798219561571076651254023778838234253093537001916395295646710363191666455935345167257248131000245551550064064912000234181422600497493712522068442209119488889477649369086426683684931607788051110287296567211863981777435240480069984497043121016889558553686422489278792781101115299753688194736916877349846067434751038295311400344198486808031467023166855342809420972885129716952020886328536711911441734337154150346414985753819039812864607203832459387491962257934694751002798352939496606659075822083743725556081552045832725760579876860617714327973441625342172328567165399161671257359119291315024404560295321482291744571514664731791638517040027176384968235604425213579076215251453005117076006856251232231254340680530844423385338772177080420730635456372335951311121201517541375670185850748082577700675396319871960852188280888238726440434545113727471899833163998351180132208887901961046326564470558833020016581271086330525056763054202250928227621283894443157071444578074559398493599210936986787255412778907030585447820199681678410047141804592307123253024652204927966261491949980062680594589129561872744762292927332095619164122734419717602583756858955206073905647762989483439812565879262034826033488133866036500289141915462988503641563933686902805697260019074926653632408851077206703479464891992188985710327762798884120343675763294450538318679815398226983320648672709734708271598859423914540657507834031607052745568515740713539997805033496249079439111457507175486489638103318225841828724090666973485799701803923328605376460240331527164349925404583088197165446365284682894530842000643436847704835791281081021720525477247584574637975424232765681450646567480078155168468072383165742436303669985183260694556408846822496345358755150842407118848966016894760322846053578065114517492160175841927642088887122702778852896053634112706987184871660459377824330722266419660742542164875756000309215599462464461646532788264177134609281565054494391212386908212887428900949362698212750550523595927484058723257580792385297369033659322486651365922381739157627297151138747080618633963851742027969761416152263778210433868914248091141454502101617918391704832425797106850457354679539850951497575982501143466873258625785925496642453815993597636247935330868911589524884202360974354656859982896952570829448791634722450565991164736131871888500573973097192027133203474968050268750598533982677757547659266828306885470882347435374496392838248879051579622393993675442997728073331863880823469108006831272618000463505680504579652548479014591544644981881208116753042617343896167922741302587941033284717069050855272545953651873689496661760161934335405164396313780862274637631817813339255973900335624670440380426197255087133732430744616000298502216226369085108271802524436093461260135388640617828912667430093804629090874427095003455942025163239564498026357198710294773689428709216715250412065240717745759690901909112240948616466827876258843577931221163306119999153491775623858328902837102150808039743680243769946539909893351741860379438489305963696424297074310533238772803537183740334630291209735812808994719148727632174540155516737947511936820933054618965513275712477902770946528542820686589296292344062247029425650770999562745667543486138566993938316752028996198250570872781337921900806715858914817631122352568372039791231269148715148362566457653343338810056242946881177295376963626626761166622232428844985928841310091624556326991983903854631365853444681835968621349282385247646886067705202932691642109108022868655375611996843675877933751117382554802747197926060415237408734136901203261452576483023826786590057401696206379137678753003449612246705290555041636974920955083894853774353301927443070402008424097679192548683204603620719610847374996124291769827264820793712900763935549402658554425310961472135741111625895694815038422259596030746372401234410776181815399574873184214151906295521285671728440769139010333644268179689609524820109805397608350022900126707181079690312010488494538791102335333820646770289023381451577814616786501224069690033368215072283512154528872192232374806989237043514974207864172009350203899760907453072926467414329697884699941386067162174644144301356911985421482839424088295582435549906247924196525475037876720374974515034787905127120263124971788100966916165771576781157048271001274718338037945637013671901469328794820040727359191076054144389331078317354193370791351879317254902950292011233562505521232460041451850352427936259219889625599564832312434628652728387581971129210687665784948974580011789199573363255740592395520279975245108647078773027755513750301306152334077264326452979188123280044754227977570360994666852759150174105086298221817269703701367014425946226322892512799775757690263767511083459900341215988356957371262231396973082697985453063060797158965005573477344242723205969708443302003488402654410934192463212573229470442227578006514389790148715055039927512601854155264984613850792718401253192884041540046679354461955936866995809294387620074510365122156682824893862889107759072755085130216006320469102462464990331186472827383293692706974074878055082250983613176091622369658832182477428595270232538651818043134772407104906165859398731673007801831056643463075487805172659801968385917653807163197618291432451549829391581125437232614446465618800488976901273326115250250084080303683612877926789067104903283792433324068117927322047587245740663612517810620674393127520535316510161657685437938661083363181555969425605497443704241145919327560002817886636973215498975870035746680453810562369882302760182414289355464692959918087102269328739288608661805720481876545616547600853306328672666809385693524951394175030182158204426952254466544166901740423882952950384475843881602762901938452006960960933105626522711396867582857621817990905359807093222499136158993441899959678619327214026157512705757513839694922370880152980643961222531640876986906317323804900543150693227250921474320557772458552681922616308565950495094992969821936377901938364577936169063758781772686903604355638774601339562579327961219457593871663409454144399294007242714269114645438332658723123986603004509232036832882004478967044273931548015258872887059577674547360121942130881098131974845152766137977491708503745255057150975275472441327758049928389603438450843596684977000858397277971074073656725272933593188722926967474331760076772427306542478524325957980074766913160693386701318149538936307400844851046344911044217970891282603416788600187234597212690920417866359812846834381929799602818690434076263049686726290210005197576616927168395347877827400520904295954874014745741200751949640421546194867214870547684975512061912248610315490342378915086894659851537476911867971219882941387445045056371804211884937590137895361854376183903129144137422492845732461048572728507607419537800470553684444519316261351043248837598710619208268230930057032394485216689643002343367339041671772469954253075671919984380135694864342404751990451781647694483650711882035342558517972014533761160388003922095684722876523565712425163026079295041931473210824796159613020893231123655150393337934223745166261110681106658427612438160220827818032821900270459977705332638906637088465668123849219104183092647676662517990797818416014610103735772563570830127384689892461959280439863193788732323438854623659318540060293698199790489052494152621349079652025136464529861420507894798174129717741319159335799821216875507237434326301926575841548337712602826113108205128343969153642786062197076446161270683579547183463905496090932565399061064172994386859527873951786564697696988399017617119447548871201925081783342644512976738234802879550534994170370270854573646646714412632735594867835422552115764884769101413580768964966559623487045472354371519973051089319651113034681880004054966524910721157248489142632690950595923717942978828922238117321552929059677307759079308117384320090498110537612222322433002563876284605600919115910081307748449512325495645031675855032806474723870935375262567738233377588602818223572124908824541103078337649576480650390868479480712858835898905446744526219456020176519531427777202780349082953907960291256385710603925035652562114764496919825784230278248191085164077105040974335238852374939579302437085970626637398247443672883923638100330055277514630093051030749356662209667099784295295337741305823378305317043086767038572752604676673058906880588537816857340846681535965017419398780709982794360256719130474393116720521418253835887449493956957640053307284565831735225532019956147047657574386483552102365501772023620601982722324470165460797752892105740346812363179606755368322958300043293528537715039626016900052785911100326378073090479538998627288067664987958530386912709033622589895843469641915794283109302051417919244388861041780205695354784399665388001227244785580138626692759609062236179701523363397502708299773598152886157206531312196202606944803963033240812292230955017930100873373739683667706896777338889530798980007657681759117436865644459185289704043974266095704760034972622480095901158818635462460405718407033732558679689691684765356321991375244903453748535294418384407965570011812658886492617704305136069164640062139975782480338523818395032858989180102096413514092971654027380895039767953189603516721163651343616416907511701233459397194553519491004064425129084424154460358761538412341674209713933421212170318221060788995874127696661174792867694950255168747081514922613585385275117026315484363770924518131439772722656756704448084939939360360244658806788188551252415735904227018693567988375169806107109579053330842503217250588760715944043617910077571138305491235110595578577848844040115240762180300572501069430685100967452006144186841702282374495565349634564698414932482246263397495995225791974423217834454124208673144065545989184240431008080961408278439788674912497054873726840092210515378842055761521380921099076307718190247475929529586457413196969623955377492833344828834326979308836671086626922205412714765379550789741998356232326830676064302980852604914505951470400100109010433661308709869462658870011734348964016420867225651256627461064835713799164743421367789700320659112279687643134403796091426499793926160429383969271610857939791047498823456942130124752878205719581080021344350438213286117984370934213623038804546119138845414968989145599488588754172824832631508931858247079727761599933187987552513287610029453550938668700807365294011179448311178372430010809678498370608918790991755298990568340666366971784164252269008902603735679256139863087094018767575534485995049572804378447940129716250751100518633528823579824387848400435599388504368507271718597415757235645903064587333513894657933540988451915435204007189995883843644373994352965983269406328763448874134241563920598574236368274797179841869555188456750964344638329657977558222090987029292291972098496789411705292329247990147615830528772285313760523956339192644302592949773124098266924328878398092087605472433994782505524909577039834845790045930316018283263338407367354227035933452474370579085489490921286657063765441402288428109943979354984733927994958345020256119945450978556135810545950548505736230754335060338600451941238608469076265531915710488770523088943270740554101371591798108040060312270733089986459498146658036014854107540461228860822070008128906671987349833938917709138728484072764379556586788497020062690753350688337164873193969404460426777891132843761448000442696614992488125852742983225311976524794247608092385305597999154292471504151183437005068551313705964254769531403123682503330220492034693577511585152622504968882237064351312518270629360965759575872832630110135841806840732091628798048864853539935222693506852709524953258594990922836222357847039948504987225887416229799305007456234006559605251189371459520845520896097319780716456460903849953437489582644629025422281252476378226595771830782276344969038919022036488083016694509552115875469657947582488964616331454774322144135513426290178615692338833804608072239109515030947167875788076261911302880685365069240234016677611537218848838562267386271770607653004306651660335298669647546333380693743616371082180596180676254571971965000252409492659359140221880498260532276273418313801615857501252227034159604017944712742866795063660373154851786065902575133472275415682968161113782405722006064794597592114547404943875597751082524701720264786921076632607398160017886917956171966306907818864826397025717015935201472396434076946901701671109975129710278931436204949892844190509678524189013488549860736325192333316348222195489969987914638974073358129504549581359584264041261957638516383790551904860092762875532765058884824008537402090438406920200671956379865890258265867681056328835404380236087218863018888260835680839428835048160341805150469638713056106222001293882828528704947240983664768486652488999609607645894306877799614870402130344656934799630192332672037672650157337432648980025351283569337811969694304526224581206351904624386698413547274729585979014620449500367417627553699893868030679794335763809304090805776670696491029312458404254172985790374484569663723286061820983962329796427736248601120284899184058439094730290946520439836036414891686349889495689116869775623824264687134405603843749843707802979241909861458307234427025802577777236197043072296220878804218491598700811078089069421610232866010975532587576301628183081808667244528733572916010095713552264021314725941478669017374555220687390202160620951600626373525654930614361796675813231145688705037976816703217672934301970049834250685259842938467265451009717924340766830695923570133752244148068699805805122947587134030848732461506358543250327893438517735549995223600849087698120250790450431091085331937404766978906818869976422254033182380754112225821217163745300647944862917813707546706938142608319103592691381250318334902201290425321413699665328691095975125071395829031484787652877624564377618160709939567080269733353699892172037350856068233466098533962655393281847457742083696793208641057668584703533510549484024785187161897910865995940146830385607141582021020661528528547941444233245681702040629410320073591482271348368315115707694506877311026556159915169875256894186103306001284946110106864011293285506818110326929277800872878307753298613344210025447895921965524582993575523269291159518732669102054805904663177729116042391572654785082045952200489838452898427592555176958214657013282743485581708315599030690691631021109306574212415993914608953758018327544017491550147005884227974705865637140630047076232472246662986265423215654402994701571763314218358956875060163750365588807538193355201075466222264866384372327963346281857740973473369811980740645379105139617735286699194703293595114720466340507385311890546148152506455076220593282806584546374505144269683898717023709452427297952583483730326426732045019610030964881325790512521593366518958505616154186464452724315223354195219636972222413771190298492052734822631535537604287421844234688708596305322359707928142861510083600056510723943241135079866545563714610026933121043796543518701474043298119460543442340238356409402031942761963208292673819122327704360691625751106515016833661942861039421657406702755239366191371932209402687323358989194310728316188810255895142109220766953658737084810905341347163704499044841164463652108069940427133443355148551195854831682198540562702195500673084518153969044938027144211187259527708139845452240743957429783242596557032349373511679595578980605543793297698285690648024392921850808004665037724249566185931584671622505077031309226963254430009443382823091187118971249459841703291099206461442576512324803268521500421087108057047403911791256336324180025410546243102104325020179341179337931480334205599464691628810701792535049078148897396010947615826459736353462002448267854390268473340119952477336722812812667189961225510619081089433984667336919257058298756687720006145554640509559888111661410350084496236216854019383429336983777495445760460685161416891572966426683383921437180863412100186037838752855864042733299259534128692370863708145221183028206722257409461971148407756122204733086798081494904236984422545372191995322596186045179330403690397155829941470638866424827299818451249802701520823013111829215747271636637963391807191629497087201054789774538106707301770336567003317839688680143999256441003107810600863469132743545968438498677706571990187717935307195810672133097907000561303362596596142252869298573094254608236275594485099529701665401475379903304707368358054532841861651421426298591178220086689605636402314691557493256538747499680952151674115312303231464769371911020313694705194992557693271333776512292405128551639341345554718577569971991934762610844250199600566303694629602209879150707897994924158388586878454348062952375620187421391221619503986870109868316803841502265337402475743619811045021014133770546712864944501320891563718797824508754832195560028429767788851167165869951847002520853896304459029159022498417581382332560498185016091376293423629627899336451425423404305671218365057828060415299036185378185338848045721807943510701321105280161989403039878724355594615895301203437675780268202545046355172650550004949795158625302920439038878354361365377121257363987820606482458356309637625970185117936356335091328128621518422450136967070837807371299925176296487250870408943363691913367572650444163532753767749967261919686678082281123781226833904802403437582548683920568078525946673532334309964741105628076101218040748888148520667498774440886847558320807895744477822380206206931907289741414702677288024297039964557994223924236213602959089930962662219769221765263874452397776943696803634912775812093015674890380680056928981325020876224007345014198212025366146719120097544085735303580807935735402385677916659357759233161740518251257132671240141327815368607741723420276818446329881691426389959620983563368090397554824843590298148138360857232725602824604321807403686654903667873449718550698206521768273487872193086526302538675911709172360531099883182943750570421568048497949721486628549640322026309059806387897234886973074599996507294797414279055578642116621602035599317381826137912314873103603619340833913350796593655345205413337904188807452568714873334600550149828131204168793879674265713422248584711414990535172708905841761972070041700778834941569120856619116778874291644736258109710938887428394861977212640495918606748065030763386327984631512467255070649586021967221560056487338888060380531694555539036133631250241495832195136148883435044989688591358346485123326494373565892788400924712474849823352882497989047340361726514865965055019373499684546463366410615233038224439405465394666763589847015285575319176962805244410922290211102257473817117809868894204293434598091180146053444055614015015441783052472144347364990223124604980379775151060937881181651354128098446827634434606317786792330295229598780629414446767521000888949065660346339196364377939451080646573513050898074459690241597770188138432803285941058179072795085624011989822478349184928857422874899080206125965829171811828886173569361922349943748576680986805421701261182479563664122315352514792334472815267184454199693646106111374656283242089464838650080845664067852918183051314798499199930081682876088960021656417509917023646063699486134513424409695749274995339835245268454173368076198392529536947761427428538651441542416895520156081648637318478650313785356216457565575856057512457798982996761925915614814285465361201909928927402528076427985920849134504308392815306605935623358051239742740967501989347010834634794065150093936192559776853522888047898001769303618522628168961974779837426699627757350270273692912487168467264897411150846239944309688698198992205762754710933814507689787986264478432599476159531732046091348359454322426585238393621296714683234085157802039627936717087442151444434263066014111626811899728698771741301600020651005758526057603987339085542575287137198325652464824029777842700875198861229708064403302643648715727943493257030216678269262746583353158172519593983382140207661098301655596663022628845479772390411253521274183585803213901576073925273416451882579785698097838579400319384483439543180420800207809560052010917552580893178634315762332090036863052937855611526342561419738619122764500365889927268925902390178056768313598232761906287612128909948622066762693556797587391409738640790006559380647882669651708532987308925302188942551239342610186115105695784786228001448788904451932118941690588151319578593554331526950081303427060336447334856834893498355266648716675499795034628172332431205058818017327279477046812506472163360701300125811137826785583740521441595151539787418053902900257538341900690475802993051008242265815073096153017288082583846814424937158782317945629882658277809202879453385564250985470896921179136204598218472677716135535574601483988363521080391207912208380721953215636453755440985336673350792188989231756501689879999606637306397219461269618583762669017690733094751753497764624447354669221097813228269245715947924617025691947939008658494288454810609424170054395985273361645716207442197781175396184572607153963241249784086840865419156996519136890679445038570686636666207375820576981977806077069030972454155575875716390350462218894914290200501539420184860799889771638229028378408513138634273458343006017139149203871724168948949156684877638238946596258974688204524330003396269369813189682228563986029180289303036300856149327164059906244543528387132070678495808995239508803535526707359530014102453234924065977820956994752743371135794580595409443200618048624685552105070868052525212970333748395268536573701994397240696032549683476024639626527025446944678541752169864150213357714168980477439715458041213991218821705427811542301997995016252415696753697355503265643155161283947018839641553436302235324645813244921564779532745302206625846465958860291246090800485852873616932985012636246840012415293883650285275364759807912005167690598977128954566315639598728310419262358349493797291313307699944524295248244138746278314611493186255993925669068929443280969451859362203307389998255730784866781031432329399190515689516060973263178874782422880524301278185551630165587216081479927777429782467620181923107579044455015198429420086104218723691413570937061866216307020926417442598190377862319120822390358461678983505321829235882961167138144143428551768929120526516764631400206634228745699196982493800012126542027492156200406415486942934791644931108244194054500755725118810148557356811540476610032937668920108665329041114580664617742738675197225424912155129298237777746431630336567782080536529132438785879911677375590018602168391165915569128836031312790554916087588396762280042002164940874524707511725863966936196248463938935595135388086950626927015415023401817549223221597882852230816236854430730252665515142342689782867825953856446094027774986628864374654098179976859967464853018131718757581187393703386591644896917118304576138077741410058611038273178670506209790795445154834161198085411070836269285779128216256069036057367829269074491312789879245655291299796844223134643122223858116436995885127883088595168413958099276135332169120196918553454097002586364493256851071178955143796635939307763880527134654990692214856873151079375363000294619947585861571578748048673928716016818298304269449595554707312744259991657886803067774918067907234730373596879753069453166209454867369979664984766114179413562462070460470981564548657119293343077013502703397401856216665065338781300567997741467926624224361354836891945637287651482222799809641825849352820706762833305914429591041250659452956720605662036766748758044515263440164268346016324720839750383576426537133350224702822680233585106327406986540563713631067109173070056138566579187360049981993157649999777209216459415501053040825760913228485896537984926281221517169421016429698351392262869503149963754215555235356759822574798187650658470107785543249712856303992641901747376434219891562731028493226914013410930585301409540691982591100000835326768135801328619441015564203328470014692474364350765358640530359419909579127408648126490994988778131972860513117651224927139544184585252244667778886448038864577592489028494812657902774759773901537123090061041888458121090225641059216591864135350764677083969318330700432121118033186843986658534455342515234727524061031242748340553995236442336889959671298897525492262536419980831984102695327233574253472993305315118170597519442258337455172939801535084206108143518198192103554929733575480263288329459066118111569032483845058685754274964750311898696784663890321058262104176149556722759540872816787197939625628319124961604570452390547275689504242814467156696619516046044193615502062573129925392622638786205492797439786277538912343316685200696410454855570894797261459258666203583052520174498466430471132559711991363887494321906841112278359560713838285207704878490611812691303969411663116713145479054199089524705743911742926535376560244166349581068699485432984078947976882776970148182362711090383314357171268880486759254294673855367887324048503304350783305723864768297738172242108890998400128067421434670137250359006219690274230472695016187393226139928132426565413497761824706784191950134723498934111552820797487880735230832284728299016901674252484347571073774311920557143090951575007282902920580032056160586927894244525468910277470059281546351463232620561108007805756885223317239361325044048795088534627755467966939224810999379954060737996271647607391501535168734882831669753007386132203418686973329380124487106743710038530607910977817727709798051471081819297330286101837460156408847256735277055751662550697986476873837905692730703687007097503923029135420879667675542253603060886535871939103222850028046410096785620257373605278168216073115362785559500105073682535758128026663633894438318377831776796411781608722045802835878792942962411161041192837812929516144657614841857400505338766070753377151737434622543265220780793260047197832801622219616802771142131529561604895552981573679762148697215129940119943498262182528369547099685693108907278343722511627244858045218158051234381347037471595713698531790468460094269435998888393313214744230174866860521362706711614781463203308273474320667903151453471516182740563090271638177660838806525281120555758011593412496098905553606071252034355587684695392297891600264892529149050916839929202296147326739208030465929917747637991223666457966596026007264132429351144666590010223836009000245525570045240447878929557920146524759278972552456520472147367110174163025510089709890940504468091966127772405457483239251028214406764784403169456557663675539162568312949391118189849493478231480734967419840931278834740526718156918264204390463792071379126897693453211706714355079786992398637562113530534195072844257115414145190227173839773481119603326334410272596977369071475877204955674511165817895567604530370030006493986975399510702146555215588306331436249861634156678321900229444546698449233749425385676150181826998915444458792469658461293272230165581181855234648100335035728854821345669089259665265674168964954501949064953742663195381786100295973366462892319767995345038736318705060362698941906196129094765634033639951177214508343650052745419209659487496809290450647917391429385959713358814776118047777149598917667268910487170934288221254399674003574591498268697165392014483001911497110404062900256736558775415086543535674020687814518674121921792272408675113956623246969965766630837185476705762735392649725556885417618675108249969793951008542019065391457107226106689393507642432721182838082100380395148565727416765958008781217930266053597427659923787529885035911965551964944757298289823106011413441638969467587682483192108514116255081230669583400418218631152002998127191054004113129724646096886507175371369891988510549702050702426244731059217536623486508818857312068081746818261904511402568956616136395777781159547484149705766921488959441633649425083973920058354524829807275580266787787566103410972728347402128650700126555599715053103513426237294098904180379340832522878452748605490229015074449067801504139803165194312619148085754958026340195169720037670999757826557349092639972270701864758116933048639953049842191410750435735903897337361004326117292090360330266985732681353787684940159298210416470796060870934170495867064784142706908063662177572566069856861471514184911042538527473824854198115637060487722268167190045477997181798244993206980336194877931019543991178596798623648157448613873103519244603383996188425181567998057596300065404184941794937485362081317180562950100881019454243113814995804845464718553641677482083119183773553224448151450932815462890810766875234629540396459132791877263892836465345656306204732684553760017235207832554169871940861388053835134107648668404652448566476961280828416011569191303029629179449598500603339894884967909490308371398792226706913407676535344431868956808481124089220843924538292815013952438041791116940151892325066026477713068072177763370621346723029132374315551433074880521394077637779603310601606307885660767182703883509553027358614478435595652991649972166507922595764180247931232939808508420586827843777170454852827653773367988368398934128160658642923137407374792653238190894590318806566002616936410351191349862256583813200952587104707037364067652832198565416607705097936044106429570812549982808732665333285111176506158748801310277972126722273504064630733091244546606045424149148604985078490884340888909650649556931741358785763357975111177885359689417104225479675482504687499792343894886200106530626569735573271329239823335174297387515085627764059599643529088787311884798360567983290720396075246440142117420643511934706952658398955113486643232072049473825403135684769360169158640172426759227850631260836758770536023660526962778402035770595615730783567059107113591940662061568678152019218468475708208668351532692043249603135414167657437069508723297164487354124668515566202820477860156978995400359310000633160293581827188174457431373424173579202752865232819504627692842909578531472062995939495644770066061112498823108562260736726371354179082785355397149238585626813039814810481813036172692001108548141975808924686082353020947787849967133513113086728935764311353275792885287764302752978606379022793775624279811644745091132360958109093302967958133036062321603604983316479048738006275158022138539546267691796714816709208819563930502214510513054967690626134364613421738497612292079402054460047453245859293794011642061177020745302426720644083640051342780874150168947030367488151817412611305215394064019966088651933411866975314214281830344188841679149330318776751586234054874117291459561088075114916819698224293859524332589196128419775130927748548755898192356050992156183158142915668050297858921948608891883152515608269484132752139659694071941045436876212414575810219492619058941536920267131752887133265783875612320204701419251711288617803400842110097621762644538038824006250152304622976205334468243351404536209054459072089942309752642590407069152050621935103649989008791388224885884143428865534351314962674623275705766288509381128383830187500786372912270550601889767466321400712596445887905273700515650283441554069900889154007141256661360120663038357744461478761429319800149623293416649031869435653235596039347333088975826174668299916321750907390199443763057222787943753275017177679757440385454352598490209048596490811670970262365553083969815562141432750741043877764821038558242041939076199817147943063109305619299716159462252936390249857082771652880015820741640966253343784098236994447001114728115151379323802889575805964270618765264143526486488182140537568593330545598944498331756466124117327342719626251800756087192979901885461721969684310137194003130487471494645728943467898073400760290056927907796167287285450651916600813929950132539523366623126016602911722623767268860771276272193870242787909591180899671700905152876982862940782260786408427093177612551950857627519474558694980268218303682848282298241240554188174590395984196682736013174987137682338981539930345498681363807095256161631078750701996396168250989326047545891030807080399672213567608853547575126249019459456205112843066687508250407095771573457782948469167149468001233717180206109196485511367084102090700930503962635445736494702691615030763055928146355991575618679796407354063181076236874813297879158236045675636737080493719442914942154772618631983655699824000140562473640663209192038427436421725109577601444633408310961179047003547075624307638927446473534569683177750085070228248413959353520542835792846742271884335920540480745351198646582093142586956597185681376104449847103771110068263832076009082576712964083532418326329999954616938834787625949221116808249182280543724599578021513516304430043989563538463539539776941624487212461562206656884083016243298709267312183826350471952275591985979464238286761234286649485039181413782500503345520538139641844212540953748236756520337662040285528798836448397935645345059233128941400993536968997644386996654084588725721734618189797628642428732733446499659310112021937123314170239196375242785265411251894379796255139832454710586469974803503802570060210324378919107932503851457220760695453800600626820567509103229009896981732936403020149567259913069302399373655145702279059473833955280881212702760686447221134366678447296798687473954879829116605601487081591313925885374466944935275388608876497020778272989079898463254701897743187306997801629832381501805830236268202376089808151631025647727409703567511864063135221694981859026560618648955020443362259808821780829003224920118822141539250526768053052244398717405822626890852603727411993799637976856840792807927322649428076275087472998513774258775321962029789570897398835053504421405884434356841029890851892890087659278351822441320846848620826574865025291441362399260344614534863889596104427643512057336099717719465724781090480516138473740071708553763230546722189760252575995538495535832551238413104911386080869479342564247078411493473617039452489297754177941398649824863640607889691146722241786418449716126391957060596182095241961003780816225113808142004486739115309207134181229565023210150565046838182765174430145470201299735233317327508062926684161127926347523209040086503902057644472862413573626447650170499349892980330651266547146911197953207028565451664651401275119893800063330861177358498083076348042357513207437898494147927019811961698415382343091330319688180176591665913553674478643654198812263331427144265607927170746829401583606139249894019685132648040308594166199026148255625192786381318388959567124945018358317280039079397252635900002959327345328289992094143760844757288087630319491448160845663804856009494930915716593706280186258335492161647076766060114629664223705272084010412099662194253911714101814385874968812746415465398230848693776147231277291561347222311918008738140764023260228267929203295603263677470378471331194041935498748061345134622556620505453748197009722778090963636803874044528823091039632416624589931914239532319475723194898064792273615235364669575682580871054792080563475431716175727085715724605637078062249994947868601755854652895423968450007978378864397311732873453230252472985971225333785647704144482059748020019930470892782794645088307319181654189766183255914689529077178969685897035876012723312854381556593074744230083445857279614836056779021570573027650128050948112087064210804480662993513632077597886326400050781650032316156582370194949253904506394698412360719898236028955864583008473977346708356359258507538795713563529455168294889527314374448401171699254867048184796847854758472073342337254113466128346136179203975701389776655300344922307364452301503262761485788068720945337837635920221022749888312548217841391919389048676291661626288651676732280084767162007628829679101769201498843411274947773793377495209492192747219364547056037008750023872505331909543998237425772799159158517630344657464532387478611088248179634494864362729348111739230653875949490943968040213453753688830550856827264209012685524878366985069418327411829225578367449613691596884993729953757318284345846612126009262989876192813575532884001849044210305373889924990880183955654231541765361034689248277487502794910033477495067193429606286539429396824221918197609867536203852376600965038436026816854766874121547976922334566963401475772857839162339294905426358813696935000843674024227727497088846443884285900219063323245266284038463133863664223417649548044566132726697471353360537744167405878770711791226368337844566461828305033214133215108076476900913959096186003162751228122217265458366459540298920783451820167027111254247502969008048081139148751344458245971188188165681402873148579791329946392373095699251322474562473219576786349261779617793015010502244736566420542544044379727922704041148339418329583795435438421720399644282401332288131479913389093545133027201785734312734944563482169130699552042920923572088770305856434344314927138508814307239763669523831525224952737685544212467673527051201687763808784045260665418197754666277333735783303225626420784857294527949723287790801259596801270255272336024545729709613558565802535081845134606296402139683134068108419221520284529869814105499515076923874707419497634645815889035227166773429002569452302979213312160146835235438359235450670119616103040274526671061474564235889243460525178840931912153441599745956791504875011882880463938739003855750320501312690858942833441265506073575649494212006530323922206466055898476325183865135360582509112307107970627698974152142595234974290370672426499416391675114807569662502730429127314048889548931445495284868461950146208457839227638799632643082339552839368032809002093988696895637393169501766089536145395945679424962515910808190699333977533973141326275686587766257170470165815485029995856739625637583404002596947440752543764102588900319483115674747028230142782610360412967901542916860407483850172053024701632162864367986408146118247493361829638046458359780575589524575237331753178128029551852986531757789044492893195346066929633283445928879820727396734962713001705552632335282040747228196113694332272222151030615546921788012172920717187988969870180068322532330930976014711437949043148397737226456542624465683856143125449163521904874680765956082229633481956483710943576426462659886613657644761329247708662429101787860795170596549477439270697367415962296172349337040674220518949256425428314759082486754116207835205222705755285224755250537353052638099307500641793266440461393365407180790830026753425913949426905875589412250209388583494453864273986673003804783335746251088696388806232026513620412897971886206413262854796606067780008940041181405981602230214516522014201196134577379985686581577419916592749334901805479623186069368882140555104132536057078627416987254479416244218718641817672161192780914104988143523276414665470469074841000696622910974680218158539811145333669269397421859960383046087912996517164963419095452761632134265107821838760520005885984553332947027541558503386817123864477510173384674006296199808883551992513050323341250696282039558756091847478204529829292327079581074854873931694815082111217142556605493678789482375243984520369062939683697233818684823695090075130663049804408569339264827522955263474626259679558669825963045855094796713528291402350625875472852594427490304320764820141980778270884544456618034816295319477049340980498628850956569659928623071927946075911399974368017540811890035374242396497065867619101994611656356112677335124837894755607658444320114321020507966490456967563682366490259761223847922395891968541379065632110219718495911467164414691520285067845453406116635109317228510529043089928327739885709318871922962112716641838604088737469887750703948893730804905764068312352005088216772426737400001786059776644292649805961162859007054834090323508504456877537204308379879626592999940588648887738345371303764080102028234014020207994545759191895097840561678057182175855178262264560939124273477161310559048101466573333373295198538157845924714975552351147531019086575144954889120767033366349957352171746226357817792891642541035631440859472986846562084998247485762087853600764699125299629310213438681530520874325284859061373423721600747939918368764104721383180012803303126882775571060465010450182285181274109201309292333691512521223643664012767136392825980225198929071936967096383671522506661821904714204736224834284636966585996746587779879293773812552608542262663952292647859391769398514464322810931901374925058711447328331193025249130925304978807566001805717096475481311667255007684608263552587244656105836283059160748599776159564798661418760046452772833510254101375050174068474951694789696299167839888641887777001414519210723975998286137004896214783759362329442320833685842525786141768426492915105624222543522513992524298624595322174083433145644061828865952372076596777538282983692153300092052278077257797505504359518727848278326675941480354287455996679488840282773942263266391657468400569857639796866350574822849113972602030681582505201286574929794696858037762971838080147759571829175654526665974664173449953497741066908993432427031517092524368468979696468329672212938340862517485984179107040304044525067174515913420588462936287743256344030989716993266894940085585385707662709457944170856229068600434145099443257638957623283297447989588068474838306396452614111344792361826327962729813063060654637125471389105707910877953878331906842537338717690011083385246769684833663152860641298699291850089855391671739086149122283356842237060836686507316810707573630017787803010175327883857453836595270108664621503673567175261201237214220516328308732993269367534163135568789405033867364248633442271377825311097043604907380048508641955202147936171555730971267527872039464535141445493591154303415485078359763844287787715724073259768590081417143109651753490406635712409039187515499301475583693240210619534501592162603186724363705230503012094271092589605393181505232864314598446373509620672796629092167853977424913593556380231907410340941903552886039077300121633508952071667634982225961676399687264776331729200429976122061911270743825789489427087623531891153332660007878892576745550851359437990823912788368406312560735415012370927587159365882915960469211939880260368040473202081906844835073859363542542706684362890764865390334264202031949700929035330257199567531535458802868626134668195391895276182975329003279394023966846011216611072679258545956294356496200922013137435850021315210568975663488211592107945799184453329688971230150644841566651065060680011866916404401559177754908619920834921021540986856174159445523657966617758364044287414131091803364216321838081838479047439823194981260998588654692163191262742999083871663309046170012687323578593554164740899053202867062048316238949837456678584073280080550102882031102137293616352271890742867347969598755204337676427600016590784642237177559990148123486422096959003607537455409658084992964123586556011685551670195473105757207942391247237513877000038503905487216468025598985924019773690595420218453317775665803991774995715311204790685226790469526117965309680696177479016976069847128835497291857270037536591157847351937393446659166450698542579956759943844795338227923505940263475508829085778163312241272121014340641128378743809148698561239644511097397425973615339052503489598803672987546615318292784519985547846892180842522881208097369899686973151856623001304124015090391212244776220129129753341971832129539219911908626362560477414962247515127901832379918357515991492490942785789645096319760165293276654632249466920555952910980796291628221453219399010663750515281789969294225038604146477680509904060539008712333301567750547628295235166753227029596798561228607561167021857732544738348687080157435991953968197930168658944983663785074158870276294983012180628595689684371067158084875819438752960105918367898173891613441083886595238392686302682434077556863035229121441061538692179856141105838972662159216628221193636402268577877635082221572477554778979610465499959329628066833203669790950506872322194768155699038536200612168607888826630640387699437100317646929561118554506933858140812215170424133342717132317323498363721315191981014155514897462708391470267866428992077213212016793453971249425140906206582624937909922617759477248626791076556995365819158088995062508892862066328461245933342671465854830440176160825447288990787728050151189129194786807581458304275901348294824630372891401726759372390985753156979380464773789886583735742507278220547404599051955794331298740684885905706758967159565156445268499192458949151158190736993019204299837760088453123493136997933701257644254495083044464091834339293871590851572591541080223206605899775923522442059250035370197784781271567699712447506698319923889698771496821134009865190973861736157408693675383116246891662650476801895697927325376359227476173812898896095448122397414627496480156284348184633252869825196363056432648448262543169045657726245330601742947275956051135818330122378934092764395837373700030614086122995496665896845314160819186186970615795260199813868642513352947574604850883835929957909432722503477863878228216491259567946708105116440755953390078582315084379929429015913338367275245979909893141218196458479770329093436802994589974544036897960753860708027797323964988794770649209605931498722214593570902947210130029562196831889201330505170315599715441747197341527125089769271210902227911193785969022236428813914226118633551571651274200037410536961978611448091950884518086626351714164182016222506814750309983386887133163663846154297230827453127452532354694813180136078630128827392733596149770358364168719376875906723686012542494288323125060261828413353366742971081832310465564887037740004864609295178710602628702392173000527533465901656744058658896399662638524490492339184821811178828542997471157950818634297121225736269020767849251665445597124068220420920688746580294037691911962989870218201813715385588330453022361216484440007716144463907334563726778614266407764911663528277604193067824826258640131489446858327617080403558430300453286630863742385613982573600813952506113756186074780867750015696917712326392033523822971302751398454508897502091800216333558339779041821484307787184581001628372075042952292699414916738450447296739935424427058800407684321618676362505213071509664622848512774716828981920229888148131331073320457029392304789387945812248449604948104367983109301364789906322710845381808486323019803050237619305311676741138943921436888362455009730928458353132328722212885021896224588535359358620698873600212621547375306203547899352709290175879130022226691546437218862379418510396587960397153752589676790096593632411587119531985671446164449106290619741800227545862847135476461618484581719597449740896608701683218278855357618136548403443721908114470808167032609591196952588968879996139589462113145275871230629231910084874459748526521745849297485741195168671905364251225265650015360354680229384691765488870456975573418669724555868890043482045324000005742615241666522012200998346709894155060577288863596571177539451966353326350794795684691268424632420820638524686724316084096355191500877654710324496658830818174277505093942095976713357191178009497499531269767649741352232789076581409283798215381969352223521775238331209485050676974636381173213287491174620173933642894783594582108385890295737647153368271665424002861735501486268595308622215243540343000569261354281794956969287375087018827923608292717417485638696651257528205698209912397547429585606992306676092612629559145891765179976509251708991955799066248892280902874841143110953188939020877643833397260879673056060803349660968146595884680489852993137571035654725727554828447919178726884972896864144882019804726167683660196909338652776790525658930358737799118989580228949767719483457555203599151440917031313709703193914971945688384275752965394723379504103264494032810443775850896341035508559842237006814730585923694029791751609359543734160402259018660935055162377232003451805544197279921086752308325295828949928092076220450416303170176043222091511853443941540263375858650301130305042069311107446089269985442812411739779048800386523369128225100076401842064673034407947809551701864093307130242435045027738790598845049532537759575999370877363349617240997402101513627094024952569137809255979576453152798092915875337917524986614123158472722926852120132798151785475479645215779146713472722617626105521356484630044365991714878536173962054402618472575571734386565069959192568207969241524494160999908923492365566741452323297038384665161097782181117137554291662740675531711607261515207787044267300557779781062114790633786619439315369015276632679310221490347538594495292379354144925509248712785905718552192215220809448224902351021369882645982814532890247111454317537414167727830866273617885152334606175161336270399463815007799351252661157104107409389195253408544818654717628066560249092435446300798212592092552147933634404692170698373438811813185452414377489019768296011155627528423920234181834600137345651673529127457755011257676108547305181318828778616633684585289665227735261259237085536280157142637238779529357237891611236854998742143473799193209920993107786386290490501128300860625174264579300329019993558058349503197482999089646326675009403621270706496158520008773002340506630466775577585343944145812703249988299827685153148135330871915818480747903688597877350112653451550689916354900719938392724868397960971456306079626708258740515424208856255729203714863772239753394961664257593888580940531309613668428696112213880721117615528675453288504844835619946389330072274376946873325372075339206894838137811304060279497380298779765345122149856923738323298144416252689964720275284238127088649887590759390845897648263265370743696961467320287004164726344644815826123076173322115304673594881833957307515960115460614869938464429506775073964376208000428064765915560684351860112661593158140750969556004481598135785423454527493573021166398693732670965487996989122216396369872507445400198782204790373416779689243876513195041893668269802936738763840861604303839775157964997367857446659810027812401031912431419602347569723340275243326698723072647523368904835681873928764148800135260657536875568813157750192987469062614231854138075296177018452309637113736940299278862433071600689925093926520865890574483210157147048033015497127030522271170432797234285897603970379006185312738734156481326448744924118706569519219546074819286445426382358819070547293591715905535174132871469080854360398068015071536917067877463498067726096018936894975942376635496552153353338838816596744036442615814173577353354893346547613069592355550932982479992270521897559157763461577040270927807020878542282018102095092943892064200864689596291306799314749935813409279296425441783681481136731305026351098317344987678262919973156117840531916285345887797870955640427926191455993073216700466297187616395518390317867052372136293949127647392766681483541851182204954018361589706798001144251678249966273915889507293586315729659488924194435051792430337856981172395116843616731023743491697382463830984927551019857374257774937850999367976507651704459809405425816564668196223765896046898676870237544053376784146607845110353892115078254437450575435425072896203282220945261836290320737917108564961374992136077413136095115246169828087203507266743468050750979094443346084191546692739471561105530343040543813254209188680279301223314118571514287298688341793519471888737416168529613597997244109364997977096008949192609876197055342158065973992588620582027531367410145796160350305960588093118528698090272009958245046379424204039430263555507034556651126590783323180048818847070350450235472249895179213883902476769880235589437659769801054884983426210449631805722849305791151339189857699470728420136276617651637148891662548418311148530505102023778920199917246495883104574351248837323538563189686458920017347820042174296430455596359928214123802573302578242048456029893517650087516181860722040930055816949126661730522156304708907860832476996382379639190327540900787925308408837593488426747994459380267413983473960318287083071687063237227887455063453073611460796512649433705617328404154901972423319504278038488195913450064167404119361454826118494426790053568425762723122837434532800113755597947952903172433857489902588043038274723147253170011730446495640526669239816581237983564973988424497918882870513363324454938990591208268544918283370504830336151553907565829175562232443811575626898299280596289956575004916780793054230919649092699115629116257851317081358182511052366210296819028362855178418134695940880557991717572296546668401176874281539689176973114782955917486335057695197027465241656044584927837671197212379789624589066062646191118043887210824280091601102931991597316296620383223787773146981784363581999692323266959223652708883575898388531429084969057296166495216889786795224106703489563065604962531968648553034171853174138700795252178751140213220724317116658179746864809828120638519940579112003286035755048141199221853542469576677516563990428534220344189234462762245971970227015668650430753352079837313629647156975358252806152657636221010453893747469652827431017466297837842737104567288917172252847887416073404947806381646463360774383911460995231343329322413179065158604308610534618224233664875223068135046687192735315562275121568669472058777797596919007265633368802316497517667517941354793133975993950318441199581086269503578013459003448138331081887656733678165554482268111278218538767810625849613534399615714855854488187076088394335688385587462005041071738365255132801878961147342276500048926143419110768441860846272683984722397229641459326765334547672225994860851281709568651605363964158280124529453671277129758254707749253826488387101356429905073925200119750192797859408381407317982074702965199224155958815918743621182983921038664287257227355778683108702861514283637210011536501619965535708114969485271496999262044718231299135480312370521852082334259413008743829955268741686277433866492239693598941599266256570610754735562293885756325540788433245277045824460809195454227157714961972887691045138188291333786569812799867968461010717955676228656017137982499057508553495030010484597807752064361240221367330685855705409974506922530064743620942280430948404728708267795147040630794252933552020657858145303113601900478229538044730420135114926991436694361828004098096090668016279259030334837704401769195844258253041153320770432526111652069054541445749740456865985417932196025793915466201865236773770398917989183409521348324325969200410678867251106085283301622144408956283165166477377493280789663679922603574174245027235619261574436882967305276786054492038231293040590676760041038388430269216041693005786181480689385917684027419572178205426087844124194285203241942307464650020619133563542318389358297208840453022636745790003649491162680997129192276656774699137242321734350749631779651584082090448269618700604948102120525977825045099740216469275206884392111401156304955648812053293214247304681626642540081087068878621818770695698651481496409470623389790243115425472026561580815236963657014595412002325942081246202349130522630797769426028878199182322480607489422463501891785694365848479737728725710391756010140214150541385485042339903832023648604807784609327117151167117074558620780610351636413833028426691110332277976534837318010653251819990846299662427908753268896633073537073531443296109009602602053624562973074670945003738895340309517653483362508516213204739265490690847515703546721637329035705617774946970106525123473254374596226017487609626050170589477388986873613872070031034969458536939991683733809579138766456354143118490886501976317068564913196730246400533575701957138850605513738378200069453336122797542536122399863397068286839678860103577507804222430215373276147849725383406173981442979401593981504364114851844336629349498315973307358816545366773780769689009072239081730623023241698742052615586902589610109653985983290367337162443109212313662306039820928706099253591235819768571902067972658054194800055674492651625507973590468353057647240815683206967317284105695947198617092097760895073572673748337043362986253912675351142187340869634330887730597177835539356282027140032293450715531182334940050804997761035068302149705449508445730750667027747025439879980682304527415079175362682535936098014376345534440330975675529287502747145239901937608261166286602412906632469265624288526108914537079740611390350596844844145253582026642230800425181588870473411194525237737288566950615699192107281224866753745998388441235365617874884112796028174447427409705430829504287292427166120618881725588532065182854829329189725264952861307397592490135458737100419884392993580644018147244621438755893262896392058480926368581249081343349290661179241383577353466224667526307941664142117896835305960574783744062288971350432580841212088733035953720724823915301490140809364809905056128790161214566898202504939056103873997104028269832411506484595000256140797096251866572020302160448020870555920439005468730217167022553490979710951865446956836447873448878214235032964858062756158631008797522671858626084300390673823046135341279571320693160839879733364017938286324848496525274150870747467016232564428193001706805605901818197495826197661495508275058488507482603832101919264859083845971434737896170879340005404841146672018924967637513462833005532814253726903791204553313372008187337011288468073428122232664710436298208643862684501472325614974585582851324715220345368296349110728687315724912847180994326059237386329852017976736174756706621116616367192116757110451673272913840808523308988614117335624930529189049055153599701128568570237039891706271093502663396662419037146254559165259312693670915257961066109369689860839641064998940529025316623411258769880476196372808966023902672182151815765148836768141833271756834861992884646676151279156068226412573901642740846691569633177967858728809061434114722872018521564785172633957873482077315156728994531382105776365700703984687365985435289214455251845061230160282099877810506850313711532021952137354220130925282488805855929289820298623158023259475686055140132978709184039615237220410491425061925638326317539490166585352459248940240159563248235282171854658074200541354904256397545632435091101593627394493778851755621978445367315846783905096536855245026818363353664523475983720233704738998174196505783669129139444052784383209174200813778815211190356483784157360314685208127891184293496223791450605983349231359008334026737467202131342866750692129530132870226914266230347939735544517149467134955105133667533958968846591295203072733697335523100697957602744397219385169217926406456993328552801309550578093943540838369772105922538700463606723562561695381178414574797765671950825015416854871498892727254021715753522459257590569526919465904624687845908263186063479727259599024142951507751229952104394913853739152010196789234286175241225680379617153756885350951367211540494156681537325196881440193052384572523219599476868791547418680086841723033731703401880550836699183923301373790383507467698992470532624658264180480772828474343025391166243691027562611387127624591680931503943939828616382163597620755495321267432766367518594041770970448810787747386191308660210024492972898513781549182601476204480410738951281509828513132361058047418888085548990966045239769061517817126738768082766387151963286484621409638565546287597197276889966911298688939264866590143068931776895253066991674555893659114330050628406385916263035925184890875285099919453168680020951492486172980849528837860112584434653671337315025399842589512597431503454176291872344293677839181755055886709060543686077775919311443605222455177539559769988919712070999529635369128952835978937686045741705197556393304781702072883843463220049925964012360115993037880620924466779181612911460708724122890155190489141381485264946195755854704102966483920188845724594207320138861061034860739058524651649205768201243189633246525013774730493976405028023450726846664824298031599187021669176005972007390903071218991510804083130775581481751550314699915203438049331222831062616312792095703432125488035595009874632530422326570587506371867607109253609734402452226480620858836156361925266799728304199659822252792688321200614336265050645781899737368046896352655221694381827062856769825810896877239664576342789542611549640899229986820086130052183310933568087992231591580174055622228954819189272726091659094497554223046962874854639923796267801752808173868986795051899437861268519915111763468670571056835982566685379432905911708591553005861280861641527371856680644435130748556403265163488557259712502642136618851970627747070819953752549413116227969548128234202102002353293486968388442082483929762761685913525942369494080500038576939933781142936859921698513328522290715922970750644165118152796887543100970187472840619975926050609368967620488187295722782547833615599915944338355204748764842714961089547485477174802192104279996845905867707544100973570265204782526985188592563220961272511423457589323097187811931042697435609784227086694435838044903959860918351928281928282490218915835776156208035609852213663383745247914054307291748162015681500473127119625209249489929844188028222041006745539092829018159111960777015065226809167328895712447029597024089607703316008398377798048060642568579267774311323803446227782940629359222805995413532006561312599573754248027413614303735198894926575378671261834053665726827352930399929444288488163781197314187550463149075718490299872331080111440046226223329437503637264465146741490819566271151224479303098769887447192932486226045666224152099850792849965342155915408509294711699568237122239277371619361360568837326891838330205929709212709747534784382150386470755998252464616535719748208652932623171233819596112322111595509165324515866963748748679601116317207735235135093245646866878704348797971933522591530742096746148902587982917724036526472874807792257826232616452095623949371316565005233613459047246728193730338189199333553111097712653268629999078757697437552046231290842892409086626696886832770725975221603778185474340256964730823189423961797783906999060483375864086822717041525306056203498842745987375805789147208125338861670783638896314915535206746360124297900473388699200466770822644804264574012250048803009397695605625204120644400984674366877926562047471294043202936974785813727900402155455763063529598155603494433337990364902762376407043462379193797078822211517123074179150387320502628550993244633847266628435100898086776940176100031546010910044550910130269141968535724610946565878016028057695896449926673383350964348305465964373146274774858143461943858735563680153936572970809846977286498037688520347658224608022318919386699470617213275532906726965332372660894764391088279925971714040952619351156385484151589455182131322503133306521291719953478706518533935639951626347878337971193741032510934416685868534448139002697168891688945240656676844432047182059777156465866126146717647530355926547316999663563331357743661367743008569881021526987429721780860083371119903018109323918206443912916962356230026690430269881180232029870597563395990058093181040790002343597928080147583428127032905239264693830576618908960735583614144178136415765753162192918995597543732053589875112398250195704841374782603864553898843715688141239185198989026903872600359014658611567075204055081584178043922166924408221356925634881349732444694509019117413642807859326972279819625452452336002870553604530638091807397579673577316254382753822968410344771737369019204421285205690586803202242506690195326731656545823263735230515002120148112862770006159791236374120652341192816817943949874811096274521167077911072419537336327730478070398326038205008368572620946506139415531634809500018727057678586046418884131523619783801019618309834237383723755391057759265967731748928785410138849254321098622766943225810704106994664787507499460227856284898940880228202511310895168918502517438609807176548693603308229189103700058391213396340069570411578280286576693304307131055190369297222360467604220028260682059022608883437673715465131172291757721652836592069171091974360922476500717807699512172139169162451615083530525030576559915320835561608918213231631681927688710571256575734446350437741350237737919351417260376097433874592548040937559597358710369095319721750530067764217448183846145535006928041831493263353649855697187741523367765605507218619667879639898480482593073213545302581381898812365276182227085584040015635288229374916641615541144208652108130482662379706429322436659208834374727404711722447989709225760947170935239463320328066251329795940341050487070843678850084548461603879374323397123213777756448251612985353827906541931714345901542864849241211196927104617798942184912513652463157254402437465300210451013086327639644414213956493823315077089066484547392999125132507643688831689065956972511036758434664568999558470639734218422809359222975011304585452717318369446806574143288737206563590409094593674749834619908233774987377561444975136573737909257104187548931466793469160493860399429200368940898764783732381734946109259805580500565087697624399753603632247213682640285488119448737110505945663164780198119187800705215473331418972496703007410071503555090149091910475573199025739231270350038416536095278664384990278080949109288066199288123551565420482745506297887343987506189959734508961082917772830208636977039466569415515092277741064975700288400002014097513319470691660411112856471822853012727454577767391142414258470027155902910219952072416105979813750881476350869571195612622180369037970838326485101311471096857878771188807051677665834640713680100304547852669923541410841293976264127191678914692387621972046094179769005976363470561393476253631024200981333283039226584726254565324519611980095088662567705106686272167529557076319675739289872356425500559376543504154309917987186180375537656835427358218018558553025617719423762094256593234630006766186075768561293955457644280260408113700175639941737313441796805094092467244869727600408133584278887979483664244088773957711648878434052801777410428353387473431256699354171232636789328765699003656804323199351352655783168432856664964442936845955109334369385213703713457120813105276214247300325964996818293446288549070155292248515241919117608312038820348816195160703750414811905381579897662463441001855204936448417534450339378620527767340368000375246053300861728810895380062681167562236944862630957792053071293697194566765089280813431675100476359805368365943654590020752654073329340864242018507928087295775542402149365360913818816420828650515077790841258957317473545675017764730381877392590136577762023844127996531611803780768408856248802654730666049508485532140751330123380754854286978350119859324465854504969920486135747673883695588010014720989316504565222060435369997465399277335837351898465176024369141403602520862847998483692818269923881019363391049714985758547101693120142339933826294444975564797397874851826374709951386878896801967880035197149897834084860693075151070011796513676596893892770240735934885798282127802863509783959573237581390650527786230188888412925328652686107312765528136581960746861645285956006815754744974416042768541467590622350815150939399251923880441006796070051220632514803517738832158158649953312707493094866680510782447425634709127497854589839591210151134220630667918378411744818268423849924803151355731829722340718468651492482388665780040238089755598708226954860302138864919494813928213007024848570974771516468902151775367924233813507773650630447469191335743522767190288345010237830580335059180853741124056927797362610095244572613281277251720714368976369540385521133938891266730203568178116848297966162788772841687708819286643868610180566358887465508026576271045919013958704443283599339231146046947849062045553872449721369718847579420943877532949301053733954059025847701676099420949935335145541132312628195949670620252735859700838206693040838672219242518944828877810289234967015508663255651816243847878919675035751039540880898990936021168325443415845296314437823655147488836427683343902075694419199841565460818697593802178591599977282293748105290357163970356972550137037513780826556658518553615095373117578788986449654004193364387436114746800296943925103349293742007895273693265571542399555030602212258363494546233910110698208793749757849859468766745911619096775566120498706270227318324071180567573997239638895771756602871411888911968629879637638617360564426041704956136308719660992000443415696567723329683494921663313208019791493998493379493322917487581306766486923769929702538709301558266181740879144659937233505454919316265040195572886903575948159506646505290021518746953031086078541002686464139391568156691300028482160045182236098826610730463926659176876052761834917244309236543564654371517520298039459474207120120988357708024868281480035828142930155595210675217020298016148047839152192805159161360483327060779971117937871000697614913490485870668546269870242798052275574686508214156912848823285196833643897994505925314720555417865277738785846569831811383938492066634061198220323860728685574434909792921476461464798388958461352244431888778555353810398437625752155934254690622313186467643443042463306755275945613566627444106586391406395631349962287548736393196598363745354382607096227461921268487161289403118723872297957664916726330377367166388593111796730635127596898646701284699106686231194142062334578301982542601523465818610382773233656120975863096578506732668085701817388829307225226812252415700641419444347931592548268065049522271395293256309518946179194216870113667972566150994612512619108863261350176491301895599548666671352178268343375535347507178405144660677055319007914592154740375483247005231548204133609174568656212175854961742177256650157782093696169413450454320487668636636060626967944724288630443681739678421073467536207232253676101908130676667092620494773686636848571404461276642129424285210256415338451651594726694845678378195060818180573246582566510928062691504494840615142034511739013436408579442188520008476620524695413797525183138869325052454026022780307991055577960824754190583133035884806003992783716002691960336070134521371328199170793316971353967415134327740274402895199338982963931030809224000867211868209375384915589959553003589785974325120126659714685365530476298427769796738081346539676101255183201479156659965180983907623121875144999616821092394453339954265606206982759612648147710330910596944091177959490241108282383702813499836365068160973247057514627643627489265877691953372990599420654204656162409042035062953900234891653971228677657908785022188177556184007841743306493519433940376493155068696935966225836286048541434814084465286181411071171083004218200370390458205948586547659716145294271374859943568576643120058408257219017588091844689414097446263405774249265010521903479442311479698241490359230533703704491309715642565792319383645845858050097075957514628782547057207204223084122119692632690171549813159440938928215158436713730219721465097986609027810082210520106443726376903069094429106179451929164731634943420727318370185582535359030711842585173897909004272938538170760331279718374652705798099752178264343017480917828357377457374284649418922347918625028329015073058185091186080179027166276637910093694422919989529688011793736102464765458228345949987164185292615376013023572371767688773033686297433529919198339195149073204347234299852081613250353929001618083163506391097461168365117661482441291664397420400275504744206489206507000755336493323127123036898194078390998666307483144390477980935391065712090724942223962505433443459179550419461688473660755139220660607738574251964956586363379789022078341551868443988060992169710935673427765712747795620925931315216351143352931027767384638235047602774429085566095775644337554352144977297119328637678138419047516655385641377562778681132082957878444304605190379893198289713172422905236769867279687780512418959859001357953624626093394350950103271860478980999218839266877642873359877419595310055658160088434833434727244828074013746351287914086132783787901758774347875190375752716088451670603969350674971877954544549896625763776912008768470865755439699488584754812881381011922778793744408760088671876210908731471821047417638858657404309256355560415669590248897928575168031832160307456633959115066000698734418718186889189975190436207975336588732187295874949649957940913781883259826634574066269677168085665387326452260321256787185626166782117319777269959726670600100559089115760171197571089934141999798654875224787753869218125957411954034788245165092059587456469375364508359018924651862977935511269078479174206376214494374576336000235166005616431761746910001405286259070956047650174066406479264621946728681923176606252677428073764420121874551740490018842771157105612297778533376067752395229942352900981790290817761975749407186516206043239246596964205589509216749996402763511342612413118335687791682485772197926182046098143636267467539580717379334237443032179588864900469677447324908992050058083541742461380881221247462974752709145829242938577802429338390682678340651421713789018579200925507349841474869338322694116331767675290359999995947433702342122275134497339133753372642568553975244856548419889062550151365857442496372355919759834129055790520423088476297631403409878027180817006381036003017204577852806761772285261245865691179410344601398686822056518102320665088570585768249623780901899942721560988470048335812001398876682675869717352566738581450198509930075109105709934553799835058725173148367481180458080397406532621018841878628513767347481135369255408737731115585496838628534262187884151636166798061432298390949312454227568529313970478097144505330337615043122248756991194102646355164679319549632219027247116948428969498150484043923651670426433727646965037381220899590153972039540102806147815964968421422538523766701005284297945095308948543316421033645266531412402653227172436562177659751015486791014046355355689520632656498152019299594003721441469167577989279523546132203953066370033741192178880796034860857812812681719491250995741372163914579307383234775289562881975674829658834016886506293161301431598168950114951616724911640004171296755972830044689493343731427290637354025570276080107604843122116024468363477494711646665691919599486311684498902073343108737263694782794561385171485312467288924315670756067578369603948812049728374181850141947529972692229360506039033813345582398350750316732717146030563299396720179661224797403147736777093438665053425706523328740255853688708640710268319295081564237932408648359195917653263958742165706745639005418522230268386921116307177167728357392727763708397872366263897214616450912198789948751590836847806805881694948013737229981519554698242014097005629073963139713388445060752120299658781747006937066604872275471794041143823930952710980831528239256496364214226656147383817929209399985901807481472316186694497343680185995060887388071795332102833352481593842022616842536148022763248998584548912628081334015813343513741416310093919388904355288050533809917327970948905193535257752886047713116791520043529950849582203218842232103452763327641906475153767253839136971534534801602529477355136487065926723032081732303463237888827299820220876365116334108042964900842155013280135330790521445600089717523647289906296366320928042888151919182491049085751251646139715182783871506003656261321881375158220826591754023310587256669791804886435515037504413897498433980093985103376037054740664837693105738055581807975172534788601689784043505426095300819480203826733749938424592630784650657804330335482406429562401719462284685331381118520649494568427458967739295649441880670594959444397143876829563583585040364472217124238155994163667704259178302918688644851352916504964026858155997120949233843841584338459771702268701123562705977404068180492832580426523949144686968230294608662802199514948216975145848928955601707699919893591448107934704989673070955805581453607710616610872413982663580786750006254310741173546223673685440705349960069428085388569481637263381517893764682119081663642252065288542386443268953237723843471930877885465727725618474053488297969963675671177319740746694638914915968379310046853945513282409794391365020978393230610523278914121603804500204738604560590085433626774500419343602117014848490203977928723062549185434881853756996846722829686290287041675672522281560232670787882253815936684824622647049208647226979993800666224785894127256278362642819100133786268968135171204936935958254642041040599299371110434821100409993113637986414049280183105362909781520891440476080105633882547180081273599842247192151155539487613544989023695808673886237104306269451402591866754184812544031506167925107194220266424873536347563642455969642584747865465906767910660359291313246401058529060404949968189180533015320333545649491922967712063143600393100408566636241971637211339864237256687406345626308872114732726127063893647166468040123926258482360245906025574701241340110243968824551247053877930801784368202669815543879999988942417341156255021918536713223496005704843935139234068690615740000897415087256895920816502914234258716102252652097398342106964501394063633220131579364439168772858186006980548450041278215673468926833029802898036833909900628501451290091539717652925426996774518813046903876965002947158090002598919346995215671803089228433715200749635237264344735669989951409553037900974555693336699459724415387384085577509243204641678713585997120721250687154704074383958671838558118882745749592210531658357016810179139647874112699365177506736559343391042787641458341947627045718409207224598479379908698673485446171708536176425334145221455436576774312222031804595857168759778051580154147884114350859160808367285245001385151262089830075473877779537134119247197044586986118376041483134601444022181765662160493097882086642441842914666752017743641234131739990617139478489043109024230488151038556127751547201769474497631849755679348324558002538581183140598546014347628521970071386151404974871001162078217432864731206447881448674887663439148981652819021353036381641575939962941092770671884481559287700536246405957357526550885477519777980325863866183739969958503310613099332654436888526542286294560716286919103250075148138325365697578083235069041880991016219179669104638999782324706586638728717791305368844275618720271168954619778700784646653716098328869586795995244384962946112406162745715700429548530910001229923729749677481029714154450025188224542695423948406741389876914337506692594169675209087830052914435926286206053753306543610608005984625855627086928844584273912514848014460703973160941623483325780886264646783733356419977831284814875326241667150927822855033526581350624186552894680310490901689941472597683463162248050550344688981959501913582789471290900661139974763570354085598752551751532304414770736928016602461113378484874690491898507090999023707237398070738245556551578221378772215692401487849149997951524888955896913712185758086764662222284563369402681684564495252892999851715177363014800234224863812685161253962635446070117493335758735495457131660905921841428835463358445507820221837325689296609496263438373605092139755307806917145983906341293791198409494690690619812174520652700204884549447810485762522372042418717214222309214612195717244921179125620380000529511893616194838248363256556947166616296934732691185120723791159189390417448464088877039413469031438154558323237737007144110779486676157696946843413056371814986587195435750662531594978338108851184650964576674577380792711941743016812497331871546679680163277258930715209936127463057837126134130821482084015675579164908965425987987878838056118144175912387680987714450090473843306911005866707510970678497862549512276804525911407617624080316955393141507342268484174096670949997970119707137087567519834901017752524100022463260806546318709806763105573118686728637954635917017182673402198261568767491103131825969371719638657659846019773863221591510074358153849170680254948256276087387729176523233363893034583454825061642534745501294417393471124274329180292741745831362237263918190556823569098666354123679588951741471884104911579953905782999487277810743788092456329971633863278133071359189818603490626768391058798681637783396458645888260585543048589115803617601812955721221254144988815051797541103674664086599962135256988375866257646167235028837597269215800486849352181695123938199189393229704179805686189924615544516828284163176490975978367764484192111032939633543575697230609155894837394995359067911894987608304890877990059127986298133186817146864947643484317621834576687690698592691360356993031875351822020982593972938657146138747014076508682553012659788766929025624332072747511995185316280696912095955218766913540280116142243368847756328316021411940055274075499639070101451377097744844942638324213365450784903620407568450755462648452839746709486691090543648034051081235740391851557070779565771855038516784158558039804746547406924550409048689713158291145681183581111358329376880909750309246339354824693590785844235894324602489525076235211156504614472552286868285706591716554922433951807326676982759306864792084269591784033448476855357515048403043393190681763248450605040015707202235706687069526012774480489743162568882116085396716093507700052305356772437746831979509901537535817478360775336722912781306285694994940229764279886268336674704405984748261674590703959228417048356988372356108318493064759608570676823335524956638894427139876556960531022481024369861543509167888257023320800323390163348829267692735256209706777529981398817925339047919930115642019176753801720055461998707254095521324357214964099629206726058677657428535078254906632914705131510059640153778477581844108294179277755261673065271461786341478100859823573851095805267488559900088770881293402899614185454090525427921234663790810338042558704483639437317428195603731305862285283667787019627050854490501504347664651944929532884168012146542413552554473289143986974462552171577820895073532632500997328643084634095025331787125677580425045883815953899829822465818538569664707100898429483319547333778502403826084037755750089923541853782264267667052906500185954152574557118698059447854232901436847603790432579278145889943499236061270833315836434850461502130104292834996271020100256661568184180624332444012887032626776046397958614220537009425430170528786286680304110422755545461051129757161078392451779702671241801342451529796673200181177454429553830035808512102528078437948076638403010739129493835914046075998514904962537399157050005602930882889857101324556174260022513716316650501978187525522638472292381629529741910851065792364250861026906877445670092182414095087762953527963404684835329655804664629987973127483729892028220421784655149550326414489766630904767756754024299720297716389841539854857048876285211064497433646869898827837377199468484370827479088382451200971596939888485620349654641546318940105328812892772244405361633509926981199121307154485704899019672076498022797529970668029127895751219030187233024781715938528622175635720020094433866367848484735421859554697676350872644882629704297652013786481674258691923135096961594640964410193228786642957044201848988255783218509060739068384689833454870412193853565028870266991397076091177701090631532066749043497210826307171280519550766969072019901396932683882677109448026472539455034279025388118314572648585229183204203850331282600171293432931576193262292245297853193069286254432353826939442676196435953350269590153464391507583667152078186764567466885040043457992241568046017461588954871240826566688406593328693148529145108831332302573721488947416343305132784781175471490089986266823645075284272905076698429725276410639025383555191604612054434916725825524044365241748308978502662803569977450107748441295847729457151024737458654572636054888308873474221309567836206243041443264658261415795302083202992606161038366543124586956982181609745597270324526478948153752168734766253377715768531239852053069772334593968929491565851925797637855424683178613052576559468991362790149806435736847540963329962543500130335722464274508494825228215077851424219522469420151065489482107677174877437647454558222936437088302574927628014175145360635537164097135976360591761515790379701061653345591777255216918412591556068566054737714769587737534495220439903933189023162409494438705073566030056932808001762714813335328301047387056850490434826124104362965206143086465019190308492675078772343094526355797394712650003416192790989527156638893024592003224256638367459452323096610809420507828486880071286616341347818543448766720905024316751214138834005250973218562945712587430096883987360463230444932958016983768665889592616712892749063028542809881874566613166962289220539400750167150211947678591079932508706837340542054760704372148028350494312705258136343828099283791177364820951372425691278081794117859959519213710628370843125754960235231556891232099161254943387091277638844042477274683484573259038198875993625354481968701952470883456791944073770380524911707088637254591675344527068473898096557649990308978834855117128419554943542024715821627086532427606151614549380676206114548048170222393530104027773738019025273577566599744642143788160793840625860965165217551411312800264786993320890644019391933130212455278762271609851161673432879186546280459783076060191398259293403599776574995860728731764526011567463239254737057541988644011005189138325597217250137396692395976098587172141038152501800225258728739407618869279125402180726408851750027990558889473992815549296964213592648388957487564169773571608616973121947739500428716838048479403802239391833266812747198900339605336114535997208724892743367455809165315919384284001010097918289056728969667850423752499759579632780589953686477264423011689965462403727254856635660154645226181912458262929812329358665549872456143090859920780933601763516179415706348541270672406159153798664681722494886991803049687252674744278001138859105156275035827728606376674641395555493496698560321479133157746976554861350989654253265467564271444466419033630611377932056999051607179711771602276487763158673430423321703846738275197071358697543346344927309451567222205211916471840630884133574419706403155504776030709716442478552587011972028654931936359606540289049403939081993384861932681756720180998188321644098656248411831870370408566185825194076306099109789902634550096952026277148239891398155706543952298459647476512072557376603705629100670646493423363734813649012153466379831078931211633191029548201804674161720082244134313841835378443301115365345620704653234417131646202655260418453629840331571086892024915740316170687679472305661913148674744084541982688004376692436003028718955370029160756569108755792289341274681039641199094036767473967657046184144183510828709333113951274076857170285922697258111246458138409293273006284271819436388913966238095711692563309561179503236833198297429484445386862660172373649253913109726111742172324947464800089401688606800345014617219750000165843520726110724207320457778236854349424295625585235260208811499417603510446433675219972089957481773048545238539946799900206817872333925961949971299841112917539048752461627595563765446148450783214484148901861966850241869580955130769416522300154764502322141165325792059862492748801526178249506119521075835647165009003502338207533687035940513890221702458296702348793826810128490024448820442888998994339939906756329606776153423648340187225865891486848805581791148607113756338779678541863173000352728779550458300481482752700217085636427031525247602790796515081723203120977857934350378699736622939100072672543624214402529743247907646306412888276854864938364703205870925517146553029344212173546441084103214544734856151510622398518506890819849291384692322602301906484738874736818909992871723388290626885968309828838845632663467805711405352708938742739389514339716746421761532844013350672429730849513390934697780409119024565481532042100468749661327230376895504374914098979877848787678591279114636366203379576281127604685101394991701511021054932702993529319939854688725590736881546588657211766230182913082494237150167867815138464470596241824985865776682052177863259852483611986867864304307725111950773289993210216881779429043995883431015007385125437522418157302590182603094885148152192212711688870837577851758124472555341058824340004227495777261291920118343244212612359480993332677590346840200285639192934024100459908853915382185013063392919520216257775325367299595791548566763981127078086424245709314134017674563643505384408200079908061844789158435117617000383799989073351642789692805093893373475603441709855413017455276627884609150939587511668226197715786117857103508970731696519378681351368462974407484823922584610744353358632795026684203228251648932776605389561905370487991866806244060529478163634585604440784184882622896143036052180747699116054287519967698979778120681769346247239669758212572309753228241276022342653730730465889418975362076938292820584870011119100181635498086487030456990500994673736415553712933435081784900105048974450255587357064920001067354638362686614769734531909636384930408998363592227819490180375833241429580796537830605583995242983445828277004698532120278055351135319883239661743587530640656046667628792851538041887016475874382467052801617556485126991482093713810891056397918235274245406965971964280911095220739942471391702142949066874183271221015237966011048989282631138466499048274846140248289737004380245256513917266429075144938547880006760619246503156193209805152467149709107043588408074611512791601118808669311223796210369547409633680089044710064347116791026024195557370995299736754662427545973428137726720678755622328729596719533463423380414015756483809540581422038448245484485718652126468090699762085489539580786855686788157449321551378517128196140906595849143453757630471789378679990940686923264939143617756125491018495405602307062498895701072899543270138028823768182901735139253373961168086645898904494093464870540929862588472724093692121659862930745487443135361355926999048672105792849491256364763598758955339181199682708173079823684452402096795286155798350242729270732563256910963669949905089559655905128222084338276149642039168573349500272437021677412377854599116489572149949435376505681000215337125766230549523594471936138423790436221425744143271352459818656551199407188144530497754923177519518430430662196865227542920240206880484604521556682804033196669268662577356342625514988048620115181193869617743661893337189281907143732405359660001397404608336718358070137838852713519023719142526099472410655394714783136783559916959529007051065468765602619043412316378678885424892523626151846454450869938039555587579714982428709150401660930214557272661166352879556829605801934557351100982937556101501523365576819901743464756919817147092959137136200260567356235928512249849322099076237177151917237863926281834828240649018102977390597608106886608869521524484081855294623333183822459573486764768593220761511894110430113285501743970492006104064699731443271243127030422756079424304167072606487145364222383298853634931125731303258632384266803533520069557272437086517837043364787341015828467581974350992923724340199584051375169210965046786929553410763085566098144806923053804005857373680809170307833056598926483337591880394640352435787438852452515615840068623389365241582188478682334730976479640018739309268294452346668131842174554385652340659091799857775857590381748219148769782034359509216714046870686698443052365888085650832806372312615717306210420812680483034620837918604522348093104347406042780064133201780654117602622012469906126536383495781760456967351188096570135716678402197051854554072894621880072747548590340538870848258313818547128712591218174999022229780448541169440775883099706495836690583737727243477092315521642376791466988831740769861259712853048265007803024557580091117942780863672201247494186541559635161199827991677703139057898480571571262007737134772653159552719824610162939746742717201921954398627732123180997787896801137865849760227821168838477388554900865057460518884275039015953115864848968245227739592332664360740634204503891121489024029406375596936547166368851842800686312089301288262233553997557327595920997582960676962595233605799187641445238029322443272199844371048390282333804061260352494713323499783238756247237178867339085254008675009440765243710688012184263772707346425908676998101480101903107586091253755157439505488619102224922275501304050613363874184417052159357814502852124418480409624003049599162695037531857481276372510397377756356252491398066783919546544609681234449279865620901361275197384212170456404342097521727380135576334274192255249082115884586487561256146289618459729221458066061843051032471352307059136437863144572815184209074134923284412156963627004208268667829175126849158241178330770659015111568470075723983298397823403148156510919350870725832457675302029957469547056435512143550623423653789889719666736835577755896171370414075406125244001679902930697266252381068269502432544455700433942573930511127011135376895509746049377719268304506591661634428386715768631857644668359141986199636867389069347080638598050624225513293567992181376967911189020538527498738353520276513586168927812021737687494885987660624754541497688830267092493911305600808995159785468712332792967777595589285016668317370094857998451349396792402666598784344507510398127577552753843229707557167898964748563258585044199872439589791977157244219916087058402077724870442754292079014395569685934362987669998001303092778769469451502227079471503230478693837809256258667502875164224042315728355937050137265126646244013786457666126654399448510522433603887791861199349248764639460558736082750814926025217249522063758667463532591373488428645352613950180370061849221633792312535196133621454389423613476547693969541187182308992270813568722054931022528810521941871263546114618475960743709101387322128776857075543354046747986033954399768250998339922752131758991989512839580904645411093253752073489223391507933745097967379578662066059221098668036105798087946506414995543258391778503616509437463599282196156523175032655896785950885333935789668450594809145059401135287950926068420758840397961876068211875661648818481039623560346140519741836643177868732671665671510293304213742504494201448138966945321035868059236710050113582797690540263706467229214395980722010087230805882419234057431162885987003024589193900313383537100638569355548866527660080792223401710820273453789337098622267138974732411263558480813248133338277391120436461004041973430565818781143231687583690872269076505843563805130715943002139377612139010827715004734659981581408996180150710251958135903452649044866404014365375998170344602182738938670648973583357768299842285637039861218495757313377185840819796092595879574823777117836033361178589747971730773444552592927970278448012062418181064959177994649553044659200431689521509303331291000702276865342110191511944628569273765854670448462618604312605531875268794939844630199889223700146463399045256223285838316852298322832953512029254047243438637310460666916887810784913417462559708782379285665560352206067354141914663939408233825676198514188443462885228746005350942201845525924163297067008126074507791919602250651743774400249828326550491551379486380956247570632551102842970167549015295721526674446219713678400515480394875348881116952050496652799810343643154151766329188862825167660806444229859669308145336909185525446912744251332805184504531062248494466383914091843297499386846553808371520197705052827983079549511005003057583147443636231313650624155832403387508227082635927547153592177268091717584282799999571297296598307423193108289841959078904004544314509348978281711239457439199876263673906990434889699587226040994059478399321940203236829052165106294294740500468608060418101948790583494685254341197491221511570116735495800564831634320151720891019801410630560209237984275222551920059971427078723256516657534352796428330439613396210993834406200915350483434394713479101067126562545704400852371617670742793878677264313725513956034791336719167000120150611667636892184379308421957469969054443871958509790067637293505202534703327193475546146385458646695056598463802754317570771538385863992999756050952265432761747852251650678970569135795435561908119505147860836312508951386971460280143677539707910391229422363322977643783703716643072674251625003915984561146641378354818210831000514031101432028089591544847738089878947911354992796482573142748582924301218839445331958346600043927739249054029600696802054572785275334181797777195993858574940366491604857114180224277212438679907705226620059964584205113213420597844681840152596689740479325798378889437682575191633910458496187172743141500359373593108510542552681959830539519753773693550758954182246220797005213895033068073438043410202208558816244894469493290068425822206236613658864677528208965817857235409976581146817934541065034396519155138573845993375712966500845219139566442247629290410432748094707695796275473704363499106285936731664093376011131719960315860852996362410404879608624023469253595366843636121800550065676115144225707451504769938961132280048185781201884135506916387543240236842320276657275077087796551270358291742156483538089616991450205843831878682981475183775358956743466013608749151284432668925231880339735963400323138279085029922393323283927125759289193730939535887063135841438714125140264308425725658002110734437366225413902652329280893380221768994673374296108580111647678499891105884564317612337845373511820368335208761625081173652861483446627337032952323460091597942940253429186248298588513659767745649275500061853792380888192702723487930958042157114115165689525506153297923537912332087641781743368769609391284135440940251276566852859874998034053174668868834089019493694553070978657130656237498115230933242047479920886534967291023908264220158044061441592671895951636577344031468701888400471953514164943503475890372951693980125018226040117070405516760018855272178800945252139271258012834838350937419684747837323431859986167946188436063300767045070671470651329145229379324799791591302462554147660462858832534734568659556684309876602776728787134267642912933907901603904286019102427444835350093379973948495277231509439933319597604406794201258219300809714511611448173103384527155845561985095185684477971636314467515440683992949150234523978163718470243869376201305455374392843659893061233045420378049447113271975648794696102981619302428850468946077367402840904037452564922932083220057692254207869018134917654398237990473211952424221550256842247664920230332647422741053381677123434541764348586786440445629880332168375917194221769591735412703657011764218386240838961995545052971372350642851238706269042571192130369627076775259994457545531711610487670472729651332901080074793177142157901992642487140250088832128565770165206349455652652893347357061990710816624297187390233081324681199224282484714055087361531156479717915271808056996375944913144437583740028607346427841769438816987314718941879524369049039340691860175556641100284065670721588386333400780814678698266275800770967055259054995411760446367971723207918358649094681865103513218201333779559511886973432298756914737730035645602222896513631019937921219989356327823070423289704301376870134708753334841432779886695293806403006824696111253282870726468060492209308542263762706726774610434862520544477124610267503329326197226945869151063876810174876179622544599093540679432395632856339214598925853768296076257090314622658816639750011493997665473734919235456200688108492446744316259839950708920695898567888589168559823881230853269730805625733064152997999338908159385906801313261251068077653163328706628505983291439066289727753090946046098311071347512236876472371392420740998880494774784670093941996402920410548452630933552946911153282638609323122694782319200688467655178008596646781802462770607816444536282193102061606784567380926504306072736680737033916577972961444446766658054201132813009650822620763326416725794203484995567150586384002195191019408913900267750420521704874701329572520395108410200231398053434769666628362867262823863596351689740857921525078233874397350807267375101083080128625524301540063624311599199825383827723119951063986418245403782832298380234257084069473121030465810619077429232098307810825623659784931055424057931632358830297633724424258104795520273881965944233796384621549010122711279642149623164958798800123346706115045928962942519238924077987496779074421814813274592659478214075184099284023134492952025083146331474694805964455022164707821190976065055686903023755224206237473150612673504784436339063941687353298320697980740681926124385143845428906001075287569316216129446040865445838221098420218486428793281621127815698368244601088254053367315643735614366211421138676714942911438177617110675415279880420736471441600957887004513625131029860852125547306761512216550032378173385633626237252589592726626464437755286037727731994142985871809868718926501397898054706895359487771347680153624884902557837018244934266676047633637101906221682597600245295226162891818316173403144730895468966960708920187572210655665923295236447465554610422489073841040002079962226108434308230282102232145287806718084204376538316116975015528866690050307364800552212423827182174523218478243060335209931428314705013792289678022952281979240884274108386808000113908652512739421554161857823126258595290836185006658380542239346497613029019047819147708262775290589416582994415376116807965500064478493884091567721830880961661552545562377027956173979083491081643157993135680946883756156325884680058170274521824148480827731134165938954997363667379406880824284604052792301485618982374199314782056014291841771540908732740057061584123504947367109238095261486656485611478229234225380157313362285824242175539189385313900162226448704062107008713737378118883160300093969313795639976420111758189579305792672667471390946726754216999441827351716741188497840052136436566770038949944279362456769793417615756954739614736330219587808280606186500292457734102163884983692737204021552057217597973073244806291370355350828150192412166205421892086905641721938862211078845264266493852953681158245875952261769184251189924640119926736944864170995365741469824875456359072046553598113107028518296728804958284262725530806626302186207281323302168084981134932794848355258639422071690408399774312525252100960058969456790143531078514781539869773341530096542621628136026609900800883166772763369697991599011898876836958910929519905216900235635149654031724841451403098471952061459730989894639191827516464404203654388061247717095804413659266008420857935256931096131497740472442707166962859191785410642335218760494541290870303254939893250484098795964452115356776259419197818709367294506806151518101608615050980583227428213486402621329249497853972948846307191123385381399179057782937414200684758553728800493542337321602054758836513091047158665940145535621932868868110145836086574897865641039489655491715016231034208604371827076196686886702923895378225047272528640119090208836754815867033777174884440233696708844538518666369381414565630848010525726042574740612382328536044064384191648164712865979276215703318091765092512372626390841577810740903262196440029574397443954042350439701225015656363425205098827771110039717551042986876257672291645579067257444373146467922096350121423680933422786291969863958098510309049181365260902050911595099134881242723504680740230375916168704493877867941398774849586838840142174333315958496724019680512188853062469672167164112301520804322777121290546032891792025139809554339287075058233279370017441018068711449331114955424138300248819905538233694702987996601258590556416790521908829494763735035859127125181390801111726577406474073479123890115925878165798937476256544619669919653551778405363176109160105445334715520271075008605546752720864667402462191536480217166713481433890426066877092292868632088309010250653558527237290037574967732850342483029773767042412159879969258174904227286315510885226059446066535562863849102075628008261459470164192586026395959380114842092110911692647843425525632478476271732473395980203753261244956629180305402811561004247770815577683638542421241527727757681129234449922561423744775355569257767029013920610317391282600057201346094527059828361260170339862879582587220300370995237514813671979548531857276617589744830848174920438998644609032069652330261815513474680023130623150834159012218576773222278943439489763559768603877585714433455335485421509641493842126629655911246607182472329344379325924724307401328557636628619237567454155102827367430976122702241697229177221353469581261963065343669617082360212883423972561919643527999276735970771600192369391095823948262467960096249471085894311005768949796297418191329395838796993502495452513121182009433241747977089890927984249910090922951598176674778126110694774575966990244978792694684929918160967388921649178919774728274171097620432048532937271268536570236884368969369620149658034608689740737310668391039363419858949087605148743627095748583530570026857343078744652103682352070066686192739862665473260050474290674356963736420613684375672104554486461903895497220190875565738445088631958768491724084439556175265719719419124882825783929417066607025392169882454628076679100655208084345128354873490757646477341400149974956128430837915808741795736289065175354655116174778559726943834733299653705160605559511117375104728126686998295745108221557724784003179549227674357409821426651000452340620286833017747556703011269458424864679703193446107219214580847927463740046053859576524916893427481099040311823886704662687036295856424048039410132568571585386278711549146128576678560512514738889777564841826922760962350958353153771033394038937391391925708872484474648016784704037918335390557002883996223075267716764499683345613369669826023296851363335966551212655350569901695518775260737855514914924539659644304642596636752227118232022738491898075968868129957751040459544149042776459683319013413958045434117006699024747220115215677642219128156910453757951322350326956103567895870551299678816343372206858861676640262734167605660513039363759014803765594358645377051286311560312817790645334553489914611794581985466874445395616455639078357541522131317241004640569718726382416373404194380063859156322498577832597120303313410449227910414796929802129496924305688324821061398355398498271075939450902770225237348413472532976620346472586780441971774728212746112584764540746609515493137155435692741684225820259133267912492333959924411117916104662685258059145892913967391556585141014917642559179207328422826911357906051602436220859030624499424127478669345322090389891297284780375895649741237134018943793903384939468719411761654148061959036925533301445474560154085620780264860447602315866814621154016816990587644213147679739552611679149709165953735228781639324547169564330511477270258662275742743418202884404905539684244502226524157889242847472167542402607701935352973234126356175602877849315946837538833283094674060355926966285055156353011681089891606939889614567969512059835959868177852617868266302224573415880430935606491906925579133871566524447708965206753671894881378840331871523987718173197520778853976682908981359986060057106166303355035369063265824107947690859526439609334088626445821132570618209315607670090745069032521836245262025741111260999918364198913604540259123883344085598232746852391110191022400486785835362271391504598365042707309105147831386268649027422396499021403314822477344345181508745617949615379305911152028010166526239289251081305225709299449035081145681300958689926107930626785622559260840019478623461203211921995390504736761076076340239452980611287330961670934056586523046357892274658420244984364013002060309137939830213513327603088269432582720803532928136809754590884383839921796683552424921629671928959989058330359506496784541841884496448645813636672830127915425248556164545990179369464262257881515061329813043013706845918855591684968751253642504958302934942709921843897433625480743506901210528513987400259539633497071706034036947761095475307167919835661007886565890935670091445196009752264559887987350751117813366443803967962115061564496485494790271897205420220543996330303141137260595426284363762581791660766957124962323994643686160200162613224669952308833124156119423942943431301310230528285766172972067108414196487870970184334700047384619690205994566639921176236467055289685840466685527012299453521981165712759657466915551481419730273737083169730954721652685553595271159227436241624373511134957883788096123804938650598502596462154108084804343475182707470070559202732563318767223456496914090502385466984530336926108663000070822892902354934430978395609024817286512736762572123572588201081252666670813943025016670277784971633779976148960108879862536027722771098834278321461287734018306580514079408514928181219733759883715321074733809117042074782481061959124936984535087317316225539081788917854708286083688226481356826254806670485770141361131096827478569279536879990881828938918978797199974801104682689722193031265108892430655474548180511187392968181086164117381486665195805272901340249060224409134283042563257325886659965783286437294920710434987401155507296335306858348281759049321554931215209267930190294048841494214933014338166396329936217372024238198121877559247663358168229892168744829582426691831708397311755782035695684516460702587568146238416805819120810608899584870623741559059032086294087641397852296746124809697559051880305027247954057833958805632943347952807553368303035248504748691994794073805832619615755365020573236570864905066002021990673898059983244850237163326490928987473587957563707263510058895982742891634881330622466803118176504715234946285810716206699577613352550176909832037137502301430699571845878107045848401463696952817742340111875520641069880451600879661165422601844603475822991735754408882976926856190054936196056639036297349154266635048463406907579448875163894831639402286725535123069700251156570493687317851401347337408744069460053330705346536798592233070397982308726614217295884904234627700798540363329229429104827653431159901582389303962597239980560461985671464437157354900666266632383936483186886908124058676654260752872595994957705331241115680782871497278114015801685030785533740475515441168258232914211043431213550189284493632462562978214403819050822818294956469946140832825901809588836022922225141937159825016018542291158047185563072063186755686138854017526897120174420728720940324535374245699101049795387497858159223662746365801290877755630021952387117076466677457855130021415133008939034114381687390985872567562134877318836688957465001726676924336083843396034643494461075651969688287972051661142217842248542772233069164742464062542549501833709121159967674236525736034948985410628495551163551755411819182678332314690901492305201837336974714755852911465343155035720404636534851209653669377341320940640791608989716836270329684975337464111365657895494451095572606677299953810711511113202383273274210628530989752745721404760347702078247481096765202505305174404389070058367234271983104653632935150860933860666791134993236861822753459640977142299915686205267864670872570372520597717404507266894842874872485724459566029782228537328511700084334371268487039784657618490793896731283695838593769352088432124641509813106354371383449129817079341273867311894258627979256706645863054247529140288400002199148740665598458132246414591899235679823192216577948364342571800705169652474401323181744519012158332869312995224353170690985364817303033411397639490690684527502803325813372193398519170223237271447002443844137656607519899080431330167199318053303829092266513295923166540264775274338927364821466376433855638881415990958252150378465099753843233620726374223338250714758450075443401050255273523688001843887089988012391197391419742870035444665409344330176812699633172294178406466201657007606618164537715999208308116844898522476203951467045668904652456038284498514426032465120133098337051368410446833824174007027776982276769721015794506975741418370005233122227496454727548293830475315198026038269562593806776305259183795159675430584014627080455843209808778014144121208833317760496727838272857166440425196821922833771518059896273099886467403907931191856606596594600646170522373764315312673866130128894092153951973300157983226470891972380361413830909937068395479493742950068414357486762042969105321061291502078453935741334055352515284192289935959429470552957034565179615339092290263290034705302111077814861586839758344156107699974485316771763216036445718883019722881890142718193942429400370088863765114817680693184015008853675643932996219611543473803043757832479387205314607125965758557335346238075963491776971502614451305699271322193266738955067532366874432239037623210294563448680070374536072594389531652631367109556194042118679975547983484897520604814008140162158974917230601052230393271112923719901817113725481802954075253821252462354148991239458122453845458323745235700914372341282013896803977845124701610721079937813946572304967405197695592976046144440713452507378451891370969179068690652888086695176078971679128339840664521404103388867903719335598319914365565147284098176318062852205509290941278862025459896346436949861690419117936535647983116991405529856293961517715621455794366888533844142197537786993548474705643733332713940693738273070005493982824946681864757767922764082282078645836831474297912280252806061017114602553963051195234434713413304597458454063995148856683899370916164059827774162866418173888782331031242312607670068990702888906616520356120829566451493779080267971634751098552438156625412865154906591582068891100795311209772562779245228460776941055482720120992664471769146529337026355545265125359022852268025960127858235285626972380953557716035837752725728198157932439302604750851162782018919445992597382532038589413714359970341951760113740536111749479613216789277000951750135746280939236132768325107279567932009266584707830139822088072701492289195780637712676227845414622934209268529915408837261493053108698212049365544192632716455297715384749924077996504223925152523043787663742446390868421414033229571935903463521335100022449042452142471476571636401867429225365877443972040535867574200837051940243779764214960909915810953186556333044856970668639495507191833177428279633939849432758650828202689413259124986443236370252683204345129681298811900343780721953052365367926488065841815067093054846529949532960010788957141818079774733688406708751225677742961843189007907152730478251715951463946629315780584459018582116884237126357804593401090720329379824979065795969552486757954961621042348045280516452245604995607228511908170761795640756821174461994423924589405726130311719140043238043432009144771473639133556303160134921280358133701173669925817529261981474881622729604394344353529034932863977335432423344625558771732101450469279541199208632558348385196466710499876769505074447703597780659145902248286381369701071844885121675734644708791411605200542598981706936995464269335633188190358130060720371746440977855496801487148401136690249675650778556262920627324381714650502438669776810316718353032006558010061059860532479573964394240488049404354116602022955123588494266116742091538079576092709555859711990697867354754122154846055117441868998186009805244648152830997610267963067052449914642411168975045409981171954430479685686745698593071828045707942869465490793452753564906758294596711825160179611762764657602272869373711642901015228840413673387459822721668073389562168121713449652092804202060069248262506072130124431947782050233752630691884166032669640804649165644299379929716012740322794684793669870626118423519289594185371303714954264466720592982845886083179762505864627540290070689390423437058402696747887459128934727388213126250338795782424128307379512683909149590195551407527089415744433951943945219486084548953286451642042059241915025648071580290859818242102474951915076033747987111906894484327418949096255558414429021296043887119322147393296298500137548865256169178384857975881377689248450452172880709175187026067098423104758254022335166397388611533012303022082389567110012636572175355853824170252244733877969078604481165054172293094969653010250211067490285184018711713690524312116934097441637467673286612011140171850224030387911864912727185327607569924870892475675280282086410859317000384702798660680441779415289003007246234138405111440256695423754188067849515719766388976433225018592851365943934154484003378283177974950555611722462878278388967895125007648037699085503109672625285407505099006835610628471509276199427188701009798456061549370031950963887195436633325449419400034895019072584617210366363294550650475840525484353930296758815914711364800025002952279571781806736603010018141057917050058603149942306477279782152186569676245813639873793062780125559397319648238087754451901251844694216440453966944049950854505729480105831537544541035075619421348353677735850218039691866753050502257083068792158988167875806645342465236402514133596531949968093287404347925404267650890074338306348327153068685452823204110532838081922536530647079504583774973395092056650313299895933826382314212045527378685849782408158131852375174641486495572422822900725428988668455264154333805941712130828009317843698064072060415783938997386833620523394483758154207571717649870064276156221980102187338046498706902419913106348294265825353863260032777994189370457567448651314924928167451251844866284042594188050739764037247028187174838720354825258476986343204501637489470100846576583540494790514176442199675939584463698727442173969852995452784991971420953675797542957507929170013309264503305260394195493337085425705964161213680828743010792237490922167250455481106527546125596178751878363551838425622381485209498417057041556065299635069038151682786785945643333446368931409339819686268184111489923826978339214897422177530734347283088450729042654480160556609795216046518788939349103226203449249078210643176869211136476711192489115046505268438721181155916779815549403642123157153090156307906769266248262913543754011492800205458694298482631861648477554950854673350148082353874698552817745696222849346325798377411010137459110254352564036556215916124445975341170062134461076336178522584822717648316065586263598764029769578190257747371372898307880893741202643606641857125543470739231724974553241577335472123448117605290343680739075178959784240076671440545210902263012445716415439264546881525715748204493559162372737445060465094476822516823687037695108189769157747352976171476065178069886693668381579461689904353795177134261953053892252364012682302924500158978821468595321081099008428286997041690140542169704851086363297857288219678520909938461718768113628596255801684948425839711261593347028241523076297895488985158711184015289407357286912697632090845777160496554096182752311690745172474189389579660996221178988466822146900881405473329665893290889602923113159004178953975639129168403882852136906206794223961692126012889734809064355463916014437323699696308682781495043117356939148384091538728344860908592474302494254213105989830576886787897206077527710864087117018359334006499075393626886885378154546145893797268649243360396463076510859248736680092674957900492459264624773996944269567152977997662029437406048560968388912791922719414236617079444253945135909071677534250280852494866689829782261939528534348618821160156950044751032260148845322744989070077062509856211126983237569234201411447057754450000141610852198140165344294705982760255265195950462801506170106657030224221663303514211134525478467385633862535000442863042335913940100777565295520902240209112158333129985792833757555358405321209783087698825610232174732557516112703206301673495840804958576466564554010721005436346846728237138670503906841148619014245169185189784871687601431489598796992696767244286063172715344574766486698229230708005653255949089687897607544645262184083448353150068118584650228570276866696555597044180426548269540780787261539841691720927572172228068337104989370194160329058515488690868790888741298170939032210729325956387602204306489950341455743137361228928096832089731408266667730490266617162516012059357422070627916493693657114972192176815773655624081239269854955921114305857334096968956971709799643259138861297572475360057666813400604950808634179976553420701193592919741389135462330736689410473749502135840830682246399060706434967887864791551164281126009365922261070681658572482428090388144393220115535407368205712098665058075746493550467604181511555219674516313526729911848116479982401635185214378060830577068550240268320919167012600038161825617122006299099778730664939287717019269495476542338305128740407183440730107401292791327481267201384720003007903484018948827202022140739150491614798207922614307865405887391754385571629449103725169455101528719237036199925737840966380731106273271844906034025877555058077074585208849737278245623107727086445297583761374155037184845438045117046408099114655988280949664968505356054255329447064337481497101834318168202375765802009929802682313101160708101888567133624792077571656440144963907426264441386571808844721838323751799055768034358354389585942118463832226563053264451001816317364376604935189704719574797609160911191513164086528377196642525031105815307856755170172509191499643022921367632894324467522905025554301808129939735353928167934024748856687919405320218919410876997148129529899239387759840320556142704902606198476274637331594328195863800364706740301893489415540397137412763896731212602700600172203964886197724385459558859365710717811179937854829853726161196578741211560554773014030089008655351925677153055567734306386260500149670602754019647265731927207170765232543909449609857542813253110117309019381505988637558896231371423418500949582899188082035149629180115318757819952443114471719054251749164341431528198618196887678655543231263332004170242927094479148274181733785089287893211945345980682002330984286785774637918164632282864988352696180832352230012452685365458188615007220361901706168547057939672731105007761659915606801990109237207533569116775365251806038783786652843842387177732193340333977995311477308362435756966039986744634260542839433063888753989546266384086381053267886239280335413155341654803770541684527439662749900333557639469293977686641877462082518429152737746635270169029030006483033326780450236555915655049825993212360224210319647802638784378053707653086529917907416303155875189481978237151457791567996422488970985706629857678474463532310306323957691116464115834968577397385102633656296214936649758473433317619290251894453302268017780564528486035126177761522298170979054980096330111311638273873325694296330957423977165556571757400512323998477570523882618351360484524519705037591144349134031118486298577398942412590391832577090803928439110785572406729054069136301153812867145640122305128487910223922394179273254876920649177141577620264788058081052583977998081756169464482577796387298943249136171538921281286961166573950889151690834998099214883331448278144323908689044386940536192340120253927201906504525470425110784064558832308587592834802559892690880336898561704029163523549194242956180966014555346941096363701074485786561068115143103644238244436845373037825577080324358117582326226751155455792811030395074092112499712390727477146331070378012206548352928918839990027976010538649837151496009709058185999273347751478839882356455253023143413974416533070145564984999840187614903095802548110615922568394713516339724054826979502711752336325696725141180505782527013750995033142430613198804457347241232930431463164945269597326601653054715054171136021957057657079423884878447584609873748352343334036321673998069412588986151219998418883745695359574608964372732157326292681484440360061216262284689520125475609223822035084528334999241317269251538165257909064326227735910431053018375037415274161045982260012900468834710535670671016208956248252157233046833305362833101338537923220497873510141487096946265350605140875226128856732085734061029320291570229721416048487904593104603537396569383847071800848168893813502100948055728260953025995825745187776369305176230019286414485952872301501849016158074547731002659067272394065637719483052753312691160505541543618846818982084612409776951079338505750910319881794094752649414911297865288323753509667395427139535803323984464232421076900403007573281491010752979417092230144081902673632368059113688939628383010373519028775844622541821030133076630097743149784729744581517441815103421991818210817679603141281212886201481375786382047293994357867037803772435116528043930443253980077620418865895154496116182689402539550259121289393715432203848587908003800264792065318054050672826445182816511027483589614053501986936797276113722611225491486293997341496069996296684234980427831007910506814251086775077839083600392744715824809122530961004389350002187730159264276339992334950357024404848952994037636629164592678128436082027910207902366003241571269608588583416323457931264063116041010037870059417063941052368899179800615571692569530229488427965069735753172115838611070737822134500529790911450633654977880317297708239852460612325825437643481087295871964799606323583495124785663600992617732388088402718557455813299265519197130720377798448209000602652938481490101898816962400452074088348404558683542868770684178993601884826845402954398118454202966863317156619938873772572616670557355806782267223901368280344673690215697248486238352828056787241572766889295789331821131371187325160007713576976318418363269209383944258587693269054738636812273440281661500672068373232690032173009120341888680656493431424369811577912106666328739907797949458287745583090692070495473304357402403104431922712144074559386835498948232379606075999443120899254259029690239667509410862889392449851594651108017186528832403975023000526744305782936007292518263814872578882769841724170542011134280750275373478391307257757090041127330184680450765608581298918692219654663170924941200457676937829201912845318303612756200395247362584814234145017468681086070871616235012930411838873947882497073226049277725016207737794324899228054390812849103674113884491112006690041397055360816832672073621751999003323877321406650671669227718575501455514866633935823081876494567029246036483085385523192811529285503120054946345090427218809208494856988942272938047657615794937885557034396014547539335751404212580931315809229600334105257124220540361181891597969971757647568158002650544231845624707375112396911100496994488795639528725514612164420083691956864473317378871563638996390477141432558399802491784425807744965521252760741668873331568838526247606763304767174884833976396631319051437633655865753254035085106072555538322507167096813496901813730446935206525279225716646602490506053783965971851150252609091874377034082554046186902071562054418056955131556548158043170389153086359242979443811795439276477712908789830769162277334847202585265837105430896337352446722366087470085532536106025773607206061860339996093432319025979824192485774013649800088349146473279261484567214945609865841983639967475721176206794400238760038655103704210164385057097150537630043755397624177120356803558952071145396984151564067008576081717461005528867416227784812895145158052452369435793992346698999260150841988838946766151791728685093614581660246108469247619637624109097311243095355483081736319384807308281054436385700683149620972953985179673133947223458612180875010617673958863137002491991394967624215086998958582949356204356089102707810232161002944173657029173468792658436199276957451616380609320028820512825892371008768474961247576832768086082653496989223260997359012898530500813753727577967902140824813962748784467448545509855948093001625493216545140371383971040939239536735621095981008419717928357689916569735880109100916896860382253450289913386008798604199499449797364726462999995565104309624247311375746172033895058772024480959374977168737079882965829686761470856646148373356041762815882696076150638108894269053841040140649898872436920605064789581765615101831268295614812133842426633807666196059216698336814611545017897687185605200284667062655180235418280083075569247393208694456285272431477020304913394233190598378525984583092384587061800157408958884559826377812737575860696689924239074678799118175728950593480358055076111507057820730437783305090299894602352452184899395050374973727529577404409368281830198224676133453339906705918073721453475312791277669921136150580294285415248979844828544600085713379168889729591481603203480860817211037520465152520173944082924844156596122949120221532046540992705098713120408522634825587131179788610617160169306807966218727352026844234804139580025917196228481736992026283605981887611394884162107890639147668015051580255281276944663987391418694255347206489449687893657656720334494780607663990067791274848810096475835736144584163386293380842594268428302137986867306930675531884354475569723351872062405720174899117265966390781092022472179432627048066736153492673572120368345297679592582360844695588342513478757326571173446447833561896096822479779824906608984342775628219971510448700847158897141995858416440508642185787156918574721070685009233224200890006178373771027402358211899608247222459559213058526496753558330168597880448286563012261305833528763929915135085738431615725132704496442638938127717916256528201742337215990413206507760756800221327946151761667071897217418181789501868318585513255271680034810486233073118353487367858743261299598017791140163225913079479886892084028641527963132494247329021144893880598127398687854094534632751194279146315031019395964481782920696068335096372429693052538063167213192378569264083709999980586970497607453602089210847241761084721674222520489464197776112820685623786253683458755956301487677496472597092661115644765128500208648742933788188995966541139724374340628857722899425374948586951403301445752937012198062964760071572779256386508385295973960401294109374093328942866027531683733212506110398921675380746815565381178526532587678295699894846892281096000983066490938399175082249269646761287711119735167096530355290971597424454901616136885143173708036382830195455673858945840206905306843341866866298565590138195669554275078134819980792617370222833394236174624687036943757457461412724464860207368475610405834927800136465072372606831180815644451949740043290117610655410002181609225109900734637449782826336016683030707715570610063516132133068330842874428816047280589098816644985954008843873566626384038193015450660449457466354437860301091968693732647701297545664065401121664146827219490493566450976608284267511514870502883311561352216495516838062851950179104996986460020620463911626016646060358745520275204732093125476290634623493495741894974809318944992740080502856323541149661245854696554284465186034070787773986449464423949273474024631128031465710506149986170773697207812297291223804992101030587941595559442723971141788591904431080074061855465582820272446292116239969973074550608475135180029707270716131059118178275104630211347946045872592113585152925165824050652074039795915509772284268459774437972404608288290916153001758076019477864596448463054534166860142742431306835120273496001105190385521163782452674669364298610549290510069483959570404113642146210165800854811561936005421187106568854275718211638144512816103232813692725438349791420141635566114269937189699641124153142189166898152015414807635188688678128355530499252992920040670005957376250558800976189743280612285589697196142519983644598231300092892584281155766058472377508663651135601381112965593814573406257477789909045433566148280404881261829937873910726859812212312834127936510486530873533679492763747548041362097650378666801896280139394351457915737502011289206049420075752160786453420971545827346224945428895339631614415872876915525702760580741922880114898652304490115725966310085445102523854652127967753071808151295529734276051478348261840481769690298857201459868618146565000269916386951040898495759726658730149996195055552499840633911272724646861762528238894443218605336339566718890267129265907167209894398593772522053010473759587402582868749105576313610076194760989436219512287986248346287050869774531400017861642614632928582377148841587075832733023199135537121996183082125542266810761193765790936654325541212537218453049840991293760215022445256306903650713505996131052074026285499781984084190095669942685553183430266468213917096605210676356359614790298945672777736843814944122595732360153099428929876526448307650413507955242193667212297816852471472497922957939356141599285332929593882482469301257404146858146460657546626339720532906342616912742048652390992489838960096790671036585547741515512407851698207599148883337677365584026968716520770324323341988803496446309691340180010271662284067648547324815733084044659204797767182129036500336604401710228259258219259501164861198806995724177622903388402874312787627430809071675912772123364822700972464273297203555965946813642317711415813985724232171682945611501543110982887691962341967433032745169239663152688202816070702319458223781815919565838151624768323531981679539438829138080552734836121693709735407328344423579627539258562025773588061594012031321901810215339085367646184955671921372745239729773781750195553418160643304585160102619753748337056418835096277081846812426722207664957709786071296139566725902941863171799875243244400681549646595767023730648787087012784499288885561075107597740159102182361665187291924585244511025283224537500405004018687141354266909821441884367906852924131352098057286975533598529256632482400377557059690319227732876166772538513091970299657017206030022813960163029541538568661370083735397662457662770127841116344910310787693378094401264488954327483394360960921454119041020574166919239804272298517708425765848966655678193715526750102182788689754571410048599912216995146259328708627817978233867275328595141819820554769672179249734028037238538230971881067253883270823219366199391264464646611121884808161682106000372828361559760778007726502852918418325049886277825286974779183824026319704749834912738647094262586069975129320614474804370325351635850136498881500984363715020206686750224109236985207990917989171453854546851636010531824973101212063354599704287705689751308941800592211620849442322829218271295760360047644893579420787344439630800627867435280720103449838454597991123438952486207391164000444210698615227910385212658454465023813635404781953544432839223243523419420587403408132713154924052113097066314892028443193435331637081896819329601732385022646010102871194551257603542312742533631365380981631688745453857839934356573785919136258360273346575554026112708286964894890820278378259530533204226605501314024210070778857231898174742822062455037543938682641975723162954189228881209295457320178422956694651999753639969737985077136297229608636807887578751228373957765863016001834690402838724744197538765420581075481863308151857912098476186902913288599859462241349480120153741533167480067529368198868744052159136358140539673673926145366260719541072276911601840303251845944965263638780228167271270598309973336658500876833884999243081164931556133714907489517957829726315156569295429187758396517832487575557256678044777165639557432821429610609705048797453539616293456928288769014944843018806804662315117632535586738143841177278064220160654147780713461040828740431051116100281440728190760037810311091786265962579136970212337191831970426493638053873436148183689538240308256509489763879938334543870594043833871422054589127822793948930378412626737185872386315764679516097634658005870519673487820895027101902683168748762100431851884741707359846758339038470521824565272496838285987740757589736388193162682977185039154776209919924561850423377154421400475540738285604442739512483055298453491662104293403762785720635087334347602177690401824336798568313030836981024707983544017888886905692305186241847210649378954094005977420040496411942408741200709099307976528267373282295360734011234297435535156632056590509797196855005211649232216096565272856633216205396998738652459323170270228031290388567566598127953045951501811902549749049422007456552830503124091570891483616302370555694704859146348573641869856393271763438076141381530908780076221509298937084413194882254021378134756415333062335600352673603047303324328446842456914744735806154853833306015038922275283287461182908011005550064661268803379122283515553710738211953259932512253105838148332534788555388294969445573955633037104383398453095323072927518040942275789182660040789205612127077552778407009773321035187405479252731323603416568397106506330775897134357199469602734736033986509413377749096331998325380142550828151557402223642955637711636123440037256808402459342679391587991314598051062613482363960614507160016906764352716301114883314650590448659972173635767875049111702588459298921466585079684943063796029211754659005725887090701599955032977855955436784394427613442889018697159159130411115283591197752057856735937487043478525504005275234323276815035565600959932517854641642311967248410622643806854101093006824214407430436158667692156191000112562955020553579256064321802299950254838908370611127948263920413514453503179863540809165459697197917847178904007229074705516741822852786909355885679162592413809588647776793021337380638187521452676821402547778026161867531241955344033653342415617641976292534650944623746698471045472540911064873035541465481837607901125568677126217052607926603740895093046107821792109167876152657969920845064169156485200611035516694079551127071101415525756948344281403087654306554913363835427774947372411557538159584897319138209397865583731904260985439974656279799159553186659943104963304709430163592918090485513098153653022205548183585708406717684963062328419204823783985780791840020863814414274858767112766849219905375493624502500641441991151813878817835358040417486112488794695781948809117703767135207818784495076466602996968208670454133240581929725826641043868481929275212268727529166662174903718994626213282871206779868822064333232296214220595784911363385816884945113499718384501931109672617335472102031189862201761943530600900811613253272652252241818513344290774676826282756227282067078778925266599946025095157487442906365623957643770026856954883170847134116499519588764176241626408426013525918515552999443858273232633730924987973588832061372449272597067795957923758920823707775928315775833489274596407883507842547677216075308626239392498526220819560930982379744839232225715716392590893703313138341193207561271248923591968768332755152319086221460535445558991452469512923726850739779597801679147416153508635574703816157448673939000657913873428830085996498067825157354808683145672002838136479649045068960574894579553737024029334074940504377938852647994022287565611254891016774039639971872278491679435235976676206889245345548441293208059400925290238387936872167312377669998425637445463574434370827933147548860844687599563377075474399927923225546746571555023232765803625034383523137318845203610179530554954744588485972229588753294350174787667151304325552503886534299253972531384250163687894584931995884919918479010851864422566896994600826870179642166580463725289718897156601259050315128630171513279666343971940887703403128404402063935590995243839249795026956059808467739630458225191571459231935202226144660898645421885351111457284290438907841425797496746642303980210545422261302870366570754875349167749382866419173660584987854874550740719531588735537616907427342780287607052314826170141231875829705301025883892205413039500112511601487052701645545835299991790876264253881709845653747687345325857048011183882589996839624905330853846913989776017955686107359684507273773000770704108282650507083130578076329504507811871581889554078573931564519022281436001589355936529363724693011492027936321354347616855479950043600430444445267768682551100079909180580534693570983654801190115939929241295639284320160750618889818053646863646750470799421170332967495040467133654968330786229035674656279011947339249343258073188417231559724623073305920322060446174176259522716231347825581094606553899446817537807984980895249892617420685282820272588469632484129798181968459294145360170262729580452053492848043227894563715513619538674749213434851873637417402584481026277294041129994910200721844515336620512450540082208360752392353258584808301894469211887094743945086254000183675108373207995129579959037947502232731155538074323546570859039161303942780809023054155988712550304660059918601736188684075332961530401949572137665153526386806450843844024354774840621882903582616990535216949783053487130083981496923912676285388275788204240833048937143828334001437527000648499052758441437380097588322374815705504458452417185579730771406343024566962388912803428013587153066211058802941829143273342624100014107531081512850402125159833429401875717218531823018208631293842947893319327193704109419983111426831760334365010626236021674058079304465086760658599229048601338633992661057898758451162567758250681384547832351650739685380701893474016036296415643206479414608698193942785686877073613239590911639696983303652860084283229618174604746234758840121380339061019874236299518973603966206330643025273938280555687562266225665292713159583009516710403279769070889397735942362198349426603282190867363364373107571420392424943416031544277467441133793939523099023501119420004065152080450652214202620642479665071317927230441410359171147712501524239044050592111451357053382458119668859528601797395751541479435075461498329062361326376720765090165505298229402760295374181090269336389014848619356701518327562006209361157593594220007518565527120652570352112548171010219879680357324126518006660476591520933450079502222349874788219433159968721095635265978284825601376514422755137065685043287806275987904456074659438590226617375669271242554827498042672869553093999765438080135545541047722344395698736883593416207620185438802389239751861923047457778856121543409274728579536718319746551507853243169873746201827493021682935065470087419204973215126516620475878481151507820344820705592428199675540526615936614601482974391534744585354584606324254118342619153515030119650361061868522785856771045537740516320528476018602754775986130363346784281997338607917722058461568023795974630791493635503147299793741140423705343859217560717634084394514994821182857266051434506201991278544036451308244171019091208322798508861924303342979896271845989429786395489202861784958217092423667736145691977114524817613327067738731203479805967331189299947145994994709370035252625617723900931953762066734228475734237261203199529827213922525099281532551253137835218218913050349507478064998330811085814786307800799569979864385626748556072049337851869469193922770983621180042640035246693719220326691930985140858484798965255697269322832625780770294366955890897193445787426882552397877228763175410980206925942952961472243800311492720285659267171155066270172397270386600640926244298289447831174098043878304186402890602943450772650820024138786651218847174615008201627804838751628426931827652394267449705170740995944718890941477449263295371051400800357205507380149532170656011148777366975345713544113143797847266638405343208741987189494468095643971708191690851995445508314366793637242103065424921292901870944350441486138242317397358857483293544198526697046376227289490686867878574847352359587501719124393224877221825899076344081446602420914390675283802511302811595295693466994261723462947231706103224564588604576290417891738633970500080160891275690586392407797035256162844199553822553634036448221787322194358282434291794794788368106729705789841632011026819197210106759911579625887195689058069387926526800639161940159054500622227220758647913823556443462354400846507411109380779072723844969091524008939573221299192326421379285215330032838307778771342955858501772515342778453695839453253187806957017446687128197549635944653897951765325943007954106487094011209684709860205219210906105935977346790252672815476722194218602711777834753246611279776950182622603638847668598781311694630355559456333645749584924231772508076155931659371048366267896141634357047567229434730032277591375400840339732254604435768855177068951090925218522730174530011096914611010766032130371922260141096301013099825453201704793952305788112827768680391853288003299267824676648013778830017270347823021559026182018418096454591779874829938017661990453462482485492091732830313074962773452032988755839202199463938216085717867957617175188190274585827672777435712832615814944393412613700879676035910108313898250070873569750205913894137756382312055228403203328289083814167200556241653564852533684028419436374536009477113838428381369408419486227968432044997259018483866529977696883853992422590706339098622985440757874663366252013643902694403221647543769013705064407612978319276663612300702878473675427141389512949393505346977472531772712638123052903528880200077085491769350365186765382994211471466471121530085202237983061503839584413140138270128077337365283288712514001333748165745624592096240961097949525572905142466794478983699620002098802360656888709836133040922126999615220218822870800567595371551900669114604968374689286746313889139133049299661174897844286078945739990524343597580452390174693173283120533210982442511837362106855751799671884355117320815463017240896607127817226889589497717527529268036532086105798218592808257818469193988165961794058027114248373249704146929954403201443526463120313215478433326094529689549310830251032531655223142192107186556032251171032845933722493500886031133232271046206949170661320825023317757358849663761378429038372982570825994608666250025940515348780778018087826871921922737637030830754019439014736898492745446646246818179514485781528415509815235777933176451007075486333019538028424660225022265251137196412735028044020217545054814869380731297312971489287254495541378155248996624961035215738613837450191494455769982545745242848794278860408197071036432860048656148898357354343598525983991540664214669222465429247098517732940823094410090531123040756924334774402994589137542450870413092045086754519097880372504255736683220173245589861122163895875793480011520167296258829632201329156052922282537695933787427552409649921275669081070882291737988821034902205132077679653348365928172723931817167817451996241352800263050605082253283377539574842653552221222677913192255577016065995037359296460218516374782820602857308316114668337034807459987474720376733317037555665428408147724975339347021689270100110348582083315728010527988776977750236345321816105559646541551230514173662565468092972733996854064513764357391569015024121716176332122698276399904898370230136374636009694263499394100583990493359868894994589235014037814264702067860713521482763809345753800603753415597626875853063374361439718713201056700672459472686046216105178210188549158972976196057023333945998548825108278577338604097761789866804945622161057398141604914442516534806495513061984498878888926511134455830684525467495361792662504239119526966483347243326702088701188882749815304873196099349889424504559448889020282645887716568016940620003335289446357699886855478742911550630305842079877055353270261798365343179867130734501084341584676873136472596325461839017409757715418699983406348281669939510133673098129092348968087795385546392470203111091137547620168943012565862615811483233856624383068294265782808760339481210660924986170534303570320109894613063344497765752867918057573754304431555310156341958072014216702255544317084110588811046565580777770970881387400388035033196949254874915385990933600472480932891257875031812460938618125502328947260726497030867330560796554825196655672489234429891948138064415310217437590866661498430393409479954403646237191323138117539438825114624506923949399442579061388946580466727900600554875878536533483253020463133394315931795342508361743197730052644422566812056838539099897063196376684597633345862329131010021628152319888357268059946548413100379864085842659459040768675291317206053411714053059021036617792481347962395071214226658179430544425900832844735450926101524362942958873568196129869336351740830623428601317707715616120977523494216866359589681880921125720958813155707332446948633140502122702671621899434153684879436313634098064933606182046843292615042810907700378804836594491925587888569903919357940803656499738969578191233615750876616669587486155589489043767061791307833834353418840414899411728545379286121435282308949978370107863041192145850040792480461190040181004614385239267195584316154957624462771463034520390929600918875548891881383110988562186297870926633856782147802998525101379862931189719865622642420827094121564017220611276070652544653845286131396223266113631774873936541568449461467026062537897876833000367013911132219326590550020116332804380643792315061355538788828284535007948552146264395253220068342859280700289679758082050550364493703910697645059626102747839996374162317486455163137698732827524565294643327125404572646431615560655112914911522528618320236691702899479549127056842661302197430953595093159575978311085963309217204734649994177434689779765873992310803794131246121084519723432167355206249309959689792712321172290913058004278383818585252862150856181826918823054672365613942988958332008923168058777696755711956583333122102437823048616721596187962492805476686014171457883113720223431985925045656124989214305604902511670312940000842021167181542354312310243488906428447178681421376868282546220037102630958241935447103265783955833119883397222285574257718068901368641205444883860703140124269175730263715713561035932657116517573923417574043286959312412824769239150587160162554987206569475944325920401609750024236255420088784359878732607473799516269720598992616569247803568256144867163072858036264285079250594291978924717654340402094116098474857902178045812450321494538693736105754012479138412071994708948623812092012867730919855335341120914989132676576129217155721068999530013247841070063281670625300184525515771421271250860374540244276373206527816250443618718969355088607432660695707823508384189033762776352712563246262663904729314825056300921007079896055233577720173998113368153328261982583899814175308597213613311126655869396976443866394031563249741048525549736597774223360063433334193207669800173553124308117072727201844868712336716919665988660495228153685623189830726067729329037060008192388788273091268240116456752103754833515115008213166285127147262498513601957797144469669483451325529609905596029868710823018193583216982295548156894669727731793523926464713507604590899409791997603003333253496696917983989066101196157505411161172770261602315112425672025567893668246671831515260783104982548331844020633530112755201527602418409606641413329759867663606297917311692394927278667234671032967846537393201530094463133901867482625528903842083305339933085041451932096707619301423988799440131708400475616254140559978750106987865117325383686239220638609578314490330558409946426010694702249244182235274739873768604925221423271674342680354746080983982507838356537625312004754250356038204322010935199999999131923415813845684300253777519916935530159744128929704671168015374906654200831229222377912644936032323565862819142221418422148434454077730130351312923882622920002834088121452258311307798869276968071459252130069471553948843548658166354620152493905548967907174972938122352761050434655776753777741759049522163096251643345461763107254926537885972818721188443236547722761922145430666773690011698112841342952440695508367483799915095893208510029604030257296315880658561118751547403007350781986643106422826418004153041814763011774797266374925531747582270128937962184813257353389735123570699800118379551346244276729551379941245546062761158135334914323882628225186116065283331806851290933082308683372046095019057810038731188287434730880313811556030775963980866724306580469494030334382302133507783164916644223725841569221810557014961675534797724908915203538226461449820604405468514240179666075338343886850269490953628202300659428423391591785681010547086570011726823067414302333035669330468303006444183921882290504756447362077810393750651498127537408897673149344054383988024591601132075863604579735570375187981973989941573565048500805040194007162417381095652106583481055319099915160687203876085551980242925375730993367643933716759744484866597949866225359556618534935446278144352601845484121298100613756685612034529531928134558224019450088178322242776847511330369739310570620812309633089157954210621732050367760978641579421860611795499449953609872668393766773575334088051157354376514424470847088979414079312167224708707103134481561620268242237705665654890080537241545265093676657122414596713894040435790756523930366226537745867382250934044357198494793651197554299837758507742461012828299208502082898091167698159640885645728657597499504586456534526299928623884502762200378167156976484884306935766300520318480981759099511336396052834681329014049092605385630867628946811882135779035788139601326983463923453950018528556247294879847806779019561907096568704698727866163463239019915957091892493960345886815627866232807899155390726683239731516427622902065573457424839213459472235978166171501606639668966385668135909614508371064472654266034477800792444730399669625083520461926543738291649223904973918219281824098174224544387460716401210291662328546896150123283374726940463267594651699312603634594654691452436680887661121098322205262305206343508882431776409765599375617001136402729783952011250190706443526046527137844736269122766323185937867948991742822220307206514874502344243939069610371643769943857846355856800659474291163975840987338497764807214839244372233417877579583486645144734044047642643475456218819563809490985405702246069031225661444422456925572716898197388147974022107282449417663735538442808196786407208429303632903627514024322451124424209136103767457537960604147628245181164653182090862724314553136500592933025349899151428840971563189285529857766438501963154799653778367052353363232881447601707054226174088655408928535867057412066818142226068376058803400648409043614363563217248561928443703565098528972725643066549609408137269970139460509358892687369627246358574058890902799943346534622733723888271658807654409416918512512500208640617585203414294990829853376853086038601960851504530446744345716095926662931127808638663914178432174469870681721326183922567719011660141505592692921144995334801748172888401205980431303854957776003586957449549488496171702037739221383281971322826138095108808892555394901158082154270075749303006688043173237805514601010289738590227566724352595196424134015517460448683639181510424428844022087607624253690143169328303967911675894519763585160595372014445960007634709987179083569609787253441005293326053824974690954303882984825530374124840342374323758280047242800260374154028999925020950130091286445628849633818496902446838851353956453730868507663117235817070848800469102193448473599719211210333159394780249435065027378014489069976533275684123249217751314750363549791121339683215503755278630657322441042129880984196732641648431807234107771678195802087389931014403640194535951095416974904099536964018857347458162697790116431415974143009193579263367247163009221922270094508524603372932388070632837721980733380943099369002824329637379061482543644852318255888871474973889965294711465853973933658620406456704938268972979697849881580582739309549547939195942059163929479694319022215451866691389457899022307284539560990020544582522483222541180968897885477177746082302714710996231438285965332170794177633790414654477257698437862587813175415473416716481664071228454744190374420949494988865415635940859903557028359235332146289611150277983517352345048059319922946116212937414571748438313574736533863369594679454311597031376014276000391774957565236952098307339215056867604931401174139355026388437883792658866048268831186938900546890395548005569469135648395986120541378159097978981329520957610062563227575993089167837919883200276237930077358607583305038052108278128375396186360843340193541211446761780146242277565513523046667191149929762522795765521567844623855848930460491647572119907854618542327538783321090536865499275675368610679737398876380299053951623323503600974642776522073171045020162808456816851233554502030099643573706119769258473313634244156482175946781193112071207013496283533031317862670521406588199555167037904404210748664458924488522683204227058920881110610218707149424239324485508680515794193290078610030596406223543292729530222672512520340377633917388758069684083278269101072687901437127291509317645339929974901886094558927206014542441141697950106486522862052645759447393586008083118856554936306132578734878524574066147653994533013835475250232698677507395973749868568391761131396117960516023176263478027806381203924712253654183354424673520656293256210980789917487551521025615769600151870421516798774802284124951371759961970883884342960916712116009327509750836439964021825837763663932805209104997239898262070133144624227433612824126644167955232128794586700800147457712816398743210247342038842016984643640290517025877613808681600928852827026394701580997363875706837975531272248154443817216599171228150917900343229111824847945366028437221742503348543581477367152434800947679720851694812619012296395373833689947991170984598862684467205260582680723789441497583621117497171592740092032430489324545713431802378876119359703079738589394146050787499187663586559036968782975317446355088725119062679531304381621870589206836092409890588996111457564382341413947703496856329388959020568214604488090845399382755765363735338655230100412605428100671425296563505223092169047412470052409709506323922022458835956184064588790813669867814903853759848607956111734837609976296065876832093435205226674027393422304498041084408286352983745238127829577349356136819053182455776843956469018560383131035881973128585164677535054883928651479238160326177646723305401959826352871094709180498392117657159837325107606536485372610969254302781196681904025182168386317811986728392700427148328846126265623091010823807362831989312091082786055750678386673818575427474711567830786138755518399267644771252377737769636497161185376356653226134438888876769767043424424781774923629332481276104774673563055676611755110309091428159795045809537554837083348757095767708726225642294964593178401343510944866633876039250062925563923521126333557006021841163012567227397370981075783047911906513861871421833720392175663031417932524555525323834172703122921161970292394792803673248696829860396718738051950535468570901266408688513039758909747201940493841964941457677152951052470308055404865928169165105336496210020369303046198444274224041009480083781425811626942609026501316307087630269870426630515675294129334884028693264829813273080481180671039743062839842542048280496952429667867493327154131296949330478046944315825707834237145046487350099351255764306423750744457924897260049538880415684187988983414092855732544371336843500343980313855132878788154686236232806678397125193540736645281884072912549254639625848025920338358007662379121816536082123446938221935989856152514252183778463220992169868905535292389682310764690391112969999666110827825061851426793158534119465827414785778980389068358184543021624048274651445957511670577131075028456070942726408958394882025584192398894863428481040471172855004558330398604280447120628900704777983480109145806193450042629602274160998086999348697934718026031163695979299146021975265493771634086457055462935647907884294858428586034861020587084776763452443185541178492954526007666456821965034917250134751829854416684800145956084317623536420326222817583037697914852516822447676715537415430211973277792013619457004752539656482754459306708653972434595325544565877513369685834425666438458753529776745963522473838865187179552205981578638490827527457257808506636611013305315581073376346743447682443441352324300241143125337395290719586455122754556803085718962586982085846715280226305864921524819176829785893204146865666602236386742033277283644811601939462209812756117074819664198512673327266306611407975605847448705265290993075822744141113289264890071353632564794200147401093058772311537436074107882434283367970750035064337589045433878784097073223485093205261793194065827758828529842451564601931267391429129135427039828689714370135106135273114499020520607661126154418811052640412772876286502836857287566713991739228340304629760205643970627055543072710686144153263973987278089950682104803712032711968643249472784213915429907817867891325346601798534478241904100376788684167644476310000820314502441778055888860971418826478993539582457942453437767144552513929544984670396678198184008256984030740924949538438311320997548147960928710477839777734716657245830034378203550676009328837808276122812609873427760174192731394309959889818616737039923726081654478775128501845582556814111611692303986902386354864219759423244021297215486165816643774636943949871248785594008808665052743386206522507083173661297271212749668321403555015305717763785564497891889881826130899157251791262089311613097496963190009456883417370999277872536428055527169010055835700225361412582823537529221840873795308059606795093498329777007729044007358775255778880872808952923225310516203439733182541781391203049079013235346835627520205345658521451501000109598566446769437546693941589924829573506140324735933324890705595695016079495175997716592677916765324844031117776624837230672186808728606719862428586781801028328508326180883216851653659548622247406608699223439517772069816362082721162590785168950399778851767603693797149569315629382351025516447422819295765305724560180262499866957152630064884562869522577653438531159839481232835081070072085994526358095727487250800917295196121779060525298226589429248502161338770028902852852346446501627496787596496889277081135788960520133537446132317530702774873885168603941774771052294172501818859440184919145162451355836920384791255441246246331598935395851032774493418252612737293185118288246156741384660931100746061992302983104445802869208843739488842355364728756939208762899559051934686223235529471961832141299383625095842683211194131322557330906519558395463681074776910123515001445140147992132987380925733138545524582855844898463970371963429113614655479711725179249318309671974599799270409506203433598399631847415755384496073703803038717932543426704125740091587212380072245265631130531237685117677148977788573737709403658925276628062537986619548755419701597556249377026500963700311607124041138239216760364607429157505614528434665222256558832975150061796642347058138503446021119786683318965998415960917775788305771408376138808260378040971122030050197922678745457309956921858483857416243935380898548678413391218342715263129340420803029052935100801434548260318503132276795384545727512595938835300987963699593117703644362346240325212970439563480081588018554491171179486302560189942107732211713374816494704087598138812553222359767115231340528669608157434131239040251529939693776939489759364675141258557655434396574006351082629383631145357667861750618513825890237754830024267189165050820252968043114677144872938361320750472690909417627716524595467031421767679612057593563446221958319091096482557730580354871540398650303801099752561761229139778573561233504812423804255326287887243783982750967002288940254101519042456867553698876847780463197348301970902680636498304998085843068880686744904724297952702592253779851572307760384297229567174528697151536575621782281268297915301064688365196018967933974358241154364446856393745059847786663965162285117274199224338382993141759699175121629399042405049324881221300950802604447888513595056945903426140019797969796963255288501143093086459020041456606086223166737592055490507418282300070497682493583362740849490958010064352043381467196185286566935805744108397617524888078344530070343891534989217593318325438552855475502135158513667159436886331367360098974170294476091222652580971877652994213491060282051216561134994375469524902474380260256389042987349708068891077174929065783588676553668321325555190717599031623191822537175896525164635152958774405791793154483153775023227445849831403843855952821622866696489754224599731689065340576518645135522401521950170847856241055096191252915944477010768558086087553724976397579859780413626579528303018180918031545011309764215476989141110317318018478076724552893865564620467395729565802021107737137253485318714987306194177695217741156428367623392003475477465600065889791650612223551777488776742757728111536362124386467037999501160236835461063677375400344858938597721870638514488886638679958457495286410642434664464832050813280626545499089165326627099107135741302687964303728788971584042844142832813335671841972492889108127425746553229582374597134081421246300065262607615828626938913763128794055528183013445464599862083532639133525557136632187996486732243386084534590577540835678212909305162901417221981197558900775220335757485421414968395200755021974600606488615567291765656797796386612944107561835130103748682576189505242327470444560192453347953389728400282288279849584523892263314656319851261038751838167411172759478690930672823279850816029876291213955414516574415331528965179290307735954676995234627389642008667771012980804603889604184832338279507699405252796613619029175604239521800873448571487314856821818657143485458588922616591524202879005267118518625247688707994066954309050886281145425828137984983712758372246943520874566191419442773543479336863267625381323182945195736654791884658230368880595498211695531958833350337674559348511875004249660000964685432849748441722033578401755145495108024120657133140527685664839448915216543342130777594249185600386276779615756328866971546533979180028683344876982162548629941912685237631701498652522821316953400797173917617856971379916041668126427206646579819324253358970973296172736025082363232946428206251618171395674995540553318982439551040638995066942558475545385149096154556295550097210570212517798393585323164484552532201320290610681578130615975211834241189203212223764750626415164944062132493210456469297273938283873979246584100614496353491963664623601997774015455426991208780125569145724099942615400342789942806770159972545533757423805524511207321901898499390383411592976887186314187217548979582358865885516267358207192872920480157900639335237242422314474792627677300010658872957080413014310475557018666476140912956285632944979367879002723364556080141552074077080123585828278828394147125422886248176565549471373079022118438969241386894978192827324794085012119493425318254182927736345057771309057515794844700182313961897385255894945861174856711075025165800864506314610903718478451723050967883125282513025959856057575592901961226084965635974558634579116188000640623591420573530414102293273813427364764130336752231470096776749363216684576470494419192167191664313481058055076360239951730728266516082558178238281827164772580259884308805854860830085887506565977445965908689934093286189166417306914388633202116894743998279122024649987164745656012796601398577630025466567341688367492153502098035157425729838685453048124110902841723846457850201609191160338840748659766987631406799826452774363242125456449932235348748253086501049963756839275009685897368074323448188488054440998548022768273363615947522497379016305565161718087928519123215073900530090211008377961214012673554178576025077083481632468912028241837076725690475058568747818912988471262043006693493617132143532398194178419127889054906392356579951464200910775193499128997258046245293102488360390373668660186023032008484252839511934666898254528865201184884547430195236390421417293010662336051456533897069181469223563529458377409334446273161793494585921396480930153621375146236936257794838474857184736037617798086055854721081154268244233697570470126344736937069206383422970123673866601157462229979465568635372631394874103514968985803294776216999198656387880759035249186973841196599308247071036677971232869943497575485534015530311715579398602561700586858350810537504374203723380782742057588282292672336678533868509995732281463213379203887922115417420487374476022350193082805041269423390949257486572644239219242941186749278542013838477545249744827546691686483626769367469102531704153964083364927589410153168040584562963147347522265338960448901685793423628214074976062781488538090608155360397089477730986554556771135970701019247553799860191368952044400135747089698982873756685946375344852750341416868000575430852652282666769232754255305905159040500430120153592124795671299894860372353850975620664981433300131401703393313132503202814210287350738837345102181533393745675971451995406288262322905666618756598263066285729320844555023411970334876182397129763399610992651532414108943553458311670375711560508553203350198323935857892000300461878272857201609537257286494296311155323611193925655986929728629443093110267847567420640551984024306053976921934257143625958036352731637014261348237575403711959705111354802908134055291488052936971970994817642340581000527456858281960806488581255544315261894488033528630831603876775688937266822308959905115875595640585873820894162651823249801749186207022379064201847100352826002187295768942072659184614489949205617555322831436748840320792454952872421893233111919499347718018586559653692141302507575005487204610261501464254353424109329634113002897675552774846088182146888811695160001220247647714219756397501610627530856105167969144182615388721112830418855916607692305702726075084921327544933997927856809628521079872424993179504017816301698109462772752976239825840475666504834674686631110133244338702350223262973069101507815006676855974464483032973203112144414389008150602263289681687131084858872632208485848681592504700402980700385909179069401084767485299363282178966419932503381154457788301357698626869721300028905290175962609367660983930763125154524364450069628668408578179926113452512174992488771873891434146616740046924197851156572976970735142175522892908139852262830266360809698146964081699485112852252647463047605077190514538639798846563980609999163772743193012285050610929631280036014106429219147281608884440613764479351939748295004826455421230840396249179354802912651972387861090825145301772546219342605971445986751188186310786933968618256504396976035161234662973587117348920702356983963698850300386229252186793304389388397584255620191268071092813546253740136797900687340908487496149401610721888532833571467015818907604388616272642839104695954939349297589490320677419775650772641750633599344886143888394814283196050167557749259428547511376510668591906595442488861569787310510123063968050108945856877414001537278732188652267171088510869553098087788707250967526495991470623835905489591259323944287626370012646568387369799655214568949527893416102935722569794678153833981080319398522448758966810903156191648298529660158260543560419947807929321332054241756362975690271882344198036206089191127883953563708973652806704602873104417996976967181023055655747266550121878375446561289821122836837138485973501623263251669443511054892052823514720456928636205630399450403931729237461348331058155740797817441823451212183879548107421361357926492735340325284402607383641336560485842811660242196476096396187440947705042328699237242349695692104359882930408284477072500599148480611644867345525221942391927841116864161289623810269200024954493639156553090165686291992570878265768624946638084938715776863322744969474313557120771512410921172465303008842486180455522711945518531096805743894832107036591193494669056660035467777500593815679985692503397914204732006027572665156971714104077283200002208697807260939879237447058688690714675880114236409650029762198128736905354997352451065338451052217085878887315868352610321880145110517054292948743473276058101791138221521176037125851210816433125595243620262815834402151751549849454860209552104746612268366095210902859444885000862389472761342749168413790126186468855961538284088402879868042311703018417858775424822149029806556241949783515627170516681628130232885906162880771300716495712354893089455879322938133301135047857255416557061324846337804791116036001284253394085365379192557784536536555617759865573105449181150963045782572878813999471024307234782573471667562670259318391013122338977759207595235237981640232075850933007150677346621181224522494962421325068826535110501317386811064299473347799994126423473308175408408113339410466294652343283618482416752548848731606374854622663979552698447191923588954972589063285475886868531297487401510503110761165283784851277389077215856440013474543285695191609335552716201186239936721893646173271823531796147512364689369724489053696589703354101635534889954502010260885265405632421299306321867854265137281520783034772786108409960949673959792943747125388941044876087853828126754655457249035566087579800008092509657166010176064859104170289351011922031815905455092968505549064210855364731543495689982633147420868649029540430161899026939931981853830227005388405985056628325975129997023902654991530386956350685998343007993393299017671564626365921919994451423864859520911223377530892803717116389376427253989047796565043269287644548310840806628741780761897103516925455262955032302054354517147068653283973177429879725677987575291556434828742273007080451894369986464769296764819818344749835580272965563759644466858467822076835876033601173865697896231320955620203492842969325302787079557217167981704736364174240479685618415565042560432224586366126479077452494753521367381426419877906416964198565115785827222294344656289755578611353664120502982835640347578263652132365214826046587923249278817475296737345343320869285776653416118025082485806512574367729828976344972026995177463778705661908064996282064604159326991315043593560028998109544493951398627233966613932454914700414597224169017660883173675190241820705336215609259424180242844020522176535582980405450977351020704093559828023613793492201765123114638379806647747295323730972313877202951823459074884901379141809836801973342034439125213113625247053742577100753383724293738353974003075737302579727930362376158181921365540455176223015674503132501151802475595109624043835317709827702219031036152599498345153355793609056522773848288878205908396744263607242218268765662872695273696951729929972374114557059519527806653293042280408894043771418631318158520533410956042991466420446186379943490929156232029550367431082439548546149004725882593148633211107192556151168946900411792458831912901930644978150782987871356189520419464338316256911130605443011465095528389853970470273208884601271819538797239142601446976441664863735403705650642199306118020352418261349157589287919923412074700607954164881715848032904456074468185238130194856439681679032735636066412456489383280583350899822144633632756123513695184418717732264405732545975027277286611047331930448442616555434892127146106225649970858056996284478413808422919427289461344138535723691697850039423910010038463313354948563356510311836025488686546277378876533993754157783423970399612236579170088421384136535831585060394294144840701710239954229758497621358409937940562760875184299293185065500003579170681916238292503070648607010715567150250494846343850493317767446976250048930651035674220464630819690056927847876502462569348375348207454026950366096856643306411780895728617924084031927553956255763715108548547511916071285136142100720225307954687822188629281274080776939389734455562229764455178205181147349660031752216355065084889793398943382595022810365577166167109638796840122080788973372220338899958217391040048176235565763283042556197377990065524195752897654754469131052591943138952365352766115646366945571521739432750976775456963887553007344476457098563154998131032064986679590134282597890542631518685340485586178212358416576562052573568783057868707112630491129154759599927871590841414027816460197382673017158377790764119555319017027001129196467657543626144340686971011694355025104930478071697118854928786203683408894799989743066358753985161365546442350234936266063535387385968644997189070995191879869120056583423900877276055201987733012223677449968395911748396464471700491740688321011457026904854462139683438641637005315559155684218288543980741995610701629256152484396049608134144458010037388545868860984923473518201969351742278997391202466707862368177617574343307027082006737713029633509889260818845726148165740180662272223855516217091836854855276283350203995676653605045347000031335207143149374730560234966984405681798881544402303569037955163889327638880028441297454266241100840727983935002977120139145102738075669217282549421996155329525295104950211778326997154182876327251409831374194131551737560135700719687572704792730934394020660187150475899936542038961387457560057104046547761028382331446131627703486827835008703505544485774859915543875731564975308524443710543062771477064544687669683910817405407674994197544222655811163105324623974013999807748790307675633091627206768162266289597754251485306265531668048212299758566175135354658334882630784739678058048245395372330268007402114567263983980612310029057018125894007190976301506085956155978757379818483552266625636328391259902305739742412670883519110398673899264850657052773294010204098544613912561154514747463654665499990387325589258887819562907555475504712271518439930074318274775546411739522077965295263116102188478859882850564020805811773457816019371855878877486773530418626773852752183668783443009937480194573339198880065973262703986368633689892729814729289543082817694923234233036587517405612893433812593441450138091522223482343774692104904395744741644399974431995037441422023826438860077237686856602665560021333286994631791631951469824538012650890981493071827733811037602659168623951301443398326967322362339198406318639434180576241435209652537777340813027139506520821134885313289138273422295232909784267153346565417827525462226724007334167956743197290008967951341059819508759849409134029327788917492758138447384597107022814164043467257789887894856064813556359374614685308881206695966544151081190222730107410516024347321839653791724158880414261920552099462372245800165065384783787903474897804636409034148973245694436798018219613073103743069722232539767191607692321638367323054715772704697882907049787248284774385900931211516773038205503579453756773712515849270449853197544296564836810151902116186677942469004409628867613327957571401609307887989015889031946028155098863025456035891130377152934491408772222927692025036335116143150168840735706554497860104935174277071578481734110645914988506033771983040318835549577817058937608806155628053512234015803777174925607412535252891219875464709609770422251463300528784688775752024419875872268241357762360182895863587997069717554585505931990381440956290925484354691506114390891194867946470245755353635732192909375086144554369427998583040151848306493907174924587798598609566488959362268155797379779193547605248127622700269269785783537387285347320129877945263231900657463771681210884993999443859659182309922612902248062865401900388999785388018225979646909752327690590320126713308988556636524061721382624194081413828746818207196127860181077370688608172045210931973765851007094020487652534845307312640124906784263015609236694779817497068956045604891924924836956379250512781238147752094063500516960885949737852779602126307101388909101714757633575709126637516130833582992718410568057370306212863595541973718061946124329296029299540403305959141628870833616690899823553775896777399442986465147446645899703878334278284003169702816087672946789131776319017391483639756858379665731438311172901085238327102327939443854786635717182015541801154592622310389442770669332433145116807807363919624233299460264656051046017666634777068801248082140303826681270763945418915107839328564908912510374515473116138867774572550960514502091291802970276875488062894696766237395731372297928979387865970114510973155981983049674935666064298857506661589511813688358471645213257973958896431737926146355777044063126099906912928059714356541209082771780785385638549151320490930430937791290161946769397565003356535607185007499172772320720933665929457099156242990263742818110360851424914311079526829454610708197886955123789251115757044094390803032175847603625194123244543890453347329987813847627686730362982336674641742262318077640227646557438456036004436592695895077759090636415683031991474736843019417977036100239924946759121563640354807383854191335453496878392374457970770290183674954258366357859086080635428523167005188223230323070708558727159173712021798739848597622997143449597413836591647627604501212838629642183682969188033435978082823110694183689724039835311796931411682811468048216566542333826675428766933182563688795503447220710557596105546976219769175846147208334345588713841522091106797274247547895034020583384894552372401157537073201985132563203168927029249899239947722807088521191210296776454690297952477694805147874037635173676377710007272768810106696813908964574193895749384539080642547316873303978548959820965521136977335979455261024766270735724258188035877865481734389131074004781402089034752540241113044489917153979449177929829128740742525728607532671267850379031999368335765213638768466114929629748939415453431571948834815426062070031206012163197085459686733492121028126023902380269292824298343016388813987195746753145846659917959346272391642743236489150648221535105319177629315078421420191266320230126075929587661606087114507896288050445957588647173308570872866330912180812234723879822123680077508783241199351089947251037694955485544423080277330244727861131688361987688530574771317416856498522551550389406527939193484401090154202660971972198673030937711725771566797528636080592624905493367274152097136075237468771541261059712861488928653344187500609572841018707401147256563707314681744286975341091472505535771312079819820120912875799018296381624723076306356452933799806834741145805967687794664890744573752667822334654738527143700657534913119098246536494897909827766897505654301426527234704978236363038365434650965046687906397420350344259177422413883676497970479871590289737627800756423087493875696730430184476915099099299890494222513967465169943004730125585380510468058810188028356861969332932794717496248003491512499788187809722719453685412184220468853493503508288132280868703804502057251078294530924535928071456855991410950671166009706612218969671636264232426122600143537320131158553063988531271525926556162163500140734754219934728724581976959346654692576579761438859992670342189523394260734739539438251990179296343943722910631492167498640934864013658151450417180751381680795717757173957604376644432738613981393173402870131237908106234406424412012491206216848440296241209894590626808136743429697182370570566263273050118134204123685068391705892090060446412668606917935111525766915429963042678928314813025558029827365296190212976079416773719223942372004535791147285153392509044490749462560825186438448001365269714439128714455673317682557841843202406743582452767447247576203912917627922604990279041125362077959647563294012756107769309334467196804686184737879556173793804063983789864278229216578002436666988668681512086876724378421218944708077349608756557143907544625399349311957284409896332582704431800663941223089924398129563971542153962658332696527685915526926966247673033268830999160817782340000645669397611097689902886713043267197483071491811441227735300940729745026577356196149606983444680990590495971956598510624930715372733694793507783050841761786611776106623829797688546208967817089768978945276428951338544020386112801664217636440763681295623595728328622241487283297847014041754504167284877888373047737757503045227811895360566890560843957485414739891623233215083004507331532270398821298228958072266074650247895534322948620616362034178814755160868254183278390256758268414578000075663240695784610934938353608757067952920180804215697691756436076925399151368182359003630088224914528128558831949307660178564362663726519401255903755942960722597794362518439048711248496525101181030533348395855880171860487560333818352270401441649707047689543806007712576604491715907728143355375553010578747922834085901384341807620804094564582255842108535593031887103688758134600410067595234084964819675614345904671497209409028837238567319779826555742252207326374020544512870383656061711915371956183585200994745804527999443695534863728512928557857806520630375529850646283383835860968823221937609178142115100920614622684199082140958301568118017958286286063467396810389673139409103222818910101422532967697847931326195027798873637504427196199317746936733346688966248075797812329950354689087524456778949354398743067916252130543581929288015332754139191406469340621072591451639870063575194880642117440181822055277770023313262717787074166379965168980661158752740598542707379991505034682958325073293587009016702046068553797009696625810111139778887404061625750200267567166999009446096706006731794385180857947728004559415899387263732914877769076841864480058755104957865674770897106755800580533145004631775395954669045706170237642788978496810093073973509195377765681373496477292839127411300255588479182670736858994019487046884529306293415448491306943354089271914542458464465066435521816029610467945168909192397573324093183128614718977365354350816741816887934729845457537548219210422225871780542182431891929064973557994303571183276702225020559086780113051653985455722082339361530882462773745812237350451867447941785058153626256286040476937223323004501369129486537015240146663798009244182838617992842904272575611213741655505119772126331145464801902112655871165954079938206462037054770174894695975015451944891072505301703169188120351176819183947315095654693410930768712894976431957521255367308365592138262267163292404863069948339221825287839392704819882402031181715389152055771316055629496045900585088091487343742197604472970077862798322477910264628543492771140962300067563805214444517556815981877722847484624329305922446773544214710655474384776648279977986075543998215540204351192213325262027024116148749974115351527664596003181425934387504280437408828095907440304588151227351682520874645109363735738116534190882420246136790158827896792018618979344003210960058067098559961028275064398124929050246898632677893243189269019745458614528837498736671829554176975476830733881188955147288194893438715839398899925712412153984301691822140974400123488670576030662644066748750045493298081140769353816496332249573364820807071437261895175631301910905055612897567912764794370497514099235334085782856763992495980978657331181127726641309245639143880082286419757154838140044246880489499418090868210919947724206319038832538883958208052139634127629493576055659611369775581396828700621227063812462453940305249027699481245767466204744698662675546967497548944310444474826639500287728305224237854794806013238072200789109771194044029667948947258701038719696436820983892036308782615899422691304552466385373638129592375550543194183172238807164654553023003766366701447511169455774484978737449268636243327169649638636445345479746569530901168797736723543157368657951259374430289005647929457638758359779324381736917539574260372889992703857862805619235104791617536140780001991967103435049211168861826041460891343836848340978210907609418831466728324631976491754370395218825358895074484512864436273719374916202969643702986382103410842272058833600535693561448700175540159800315197748375290342358951928159932871989736472474911427081376435282024922544407679984624527295178393321952883074254118815946307130154197029565631914618247103272486884901421154768042634263189108610587970919914776695071244709474767386499565830261055634594217491001714045520127068338458803439161361399401877036731394534381664631220854838795499837953886000569185577737484022705771595320518155134287430927003944142437045403250366599786367742094679128552908931489357187863535520976690048794858236304718127492300074170966760284702811511136779708971769472476337459762179926590298827493133314931186170818787351345875476035714904605622357892069665445780684031388372612563486833146394739031007141323170149924968836380785304919599617869537597599481610541205394387253099604570329610311262025303484795126148461242825880116701347221736767669516081647023902324982916699888972407212227804130843804496358425829721012550576094081065248113359147349196349890814443182524697111841126932726298010892165929475740803911850307601612824630646118203615018801759595471538452858184934659634865609348734061918128533439834007120280674949041720709325622833527559517233964065705477517353852341549717256155699115534150505471431225752254085698410054462468319457768787930503141737120530725036847761599674531147869504554663367278009832704287705855009201603659312366693833378804721186953628823317670630943476859049291086886140904646621622136356437026591769482725565393237716098938943495698047942761504995262140802051139754157441297128407441476139094035008471261619143287855450359494967666296112927639938222791780148805224944472296448457084144443473635678651510915459968750642183087533772262033670345308473187526891816770436212817643211332062120856377479216019394242653603941563037665849166540673415459842174581645320165649353750014078064508282050131566815484774713622958320715139348431564267540770359443193567831715935259300536563571949891396026847696639227975569122602293545123016257579683758049149580895521531047221618135111720469041496137232794001446689456737079344386122115523412835149662126870160166848784609125805253699054333757547399414813553230051351212571574773074106409585918711082161725425351562527173947353056891639823127694299162073473617339645255130237402447408323689120660282948092665207408489174080200285914632799270612416420355113922356133701108977100134004359180552301255671640098810766569058524223151044803042254959918118152676033290404832176888389055875738183882815018394806473196393229761016877089318880023213175857486384169377066188824161516489259264147420251579916001071737600975050098329333195147366224845454685333297859961062288285368674506648731625328458618112473064617748166297315064821500721100166640365287620079982048906711435782826626642625043215501516779318802317753398295628743996109104066065186754883240070520895385065962183947631346725638301956766298874057481828781119315415614065820537761205829573430943593804437642478686891677234588090466280771722400625341916987214101176878231555419274183349918173092996594446618565750639596067499753546812274785436559398100481998653450890080211096176284631946275731499914146478170305201975595474346017914923960604116125441344445582050563025277342657391396079471566560486178396582712937847629944765737345604646327463462488602385774283148741243264566787437580898611267204080619744488776030000360178952253239087680174263449510157068370537300659527165369311884923126576354318062085813899810204490051170474827128890344376723510592198673711812843461239140019776392219258082071198557728687004291809274056439345312678099306081648131069661121499816857442201930928762611056214059877293135249756273731178512012424843646046976815346704358182442512913334992193857926003376367974513816140074016945751296173587405150730099513759271222537755005099525519336949288065350445744111711978767639108363898232937425108269293437797129700871248994664466964730638029963634826261337414248630937468547644758380511383249757970285618185209390765724709908994305903008244010315815656032218031682848558325901401472678888127815125565078362337472966281601494860802153076745755744854926643384290487977756557945149026790971218075532429918175066121284140314080853334798427138398783332682692721866110638096955965013551025953577026103398669953258324686244967013143038219749319827151635503020066477878748480638407265268788128851161608455918336582090261496013376225360338672428353183520320001688423648811844589254826708196080413004988582423652732076103985797942041776866770328548092845598542165715301678743477519581175867387445651588805098923914272318035532077059743319555997347278272002003800959345884090697634601271655071297036856259776149263423375266229907661661235395885732511958040010605887258853855998078067822234918876638435503338602909264359660593506555437351243375208430823904742196430944011634167447439337645360998912588220209092253531638218318032684906540193274418479513618422913528020820215732361542024309614898724479121734617874411082600690068240872096907755658100299040807403662176182000154285047107584307542230594508993126179105542786499815287179692665643347644696785398840669478348332665922024065949905614820729967595836156009673286999686403313859192133701526147930207802812130834664638534009686259974156713883492809527276789301808790787193421676911636288063889999716681049901340533050938659439547285834608713623282836907544456168910384772045109044215483168676442333745598709348657842049937913202289350608957462990955227813922010736471436345709255807745319627814157475328067940978476313672525321105394955374687431545699179960006450357520046442793750652191050174408266226512053708817415096985615769003502818565687619268468049095717508531883273024979840740579053335154877293952409070306409697668617135854679574397946172267510512990242728853228594547684279898045009447628211088648887756754465933845460680542749591671429909308488637027101300416800638722417107828077871699859150464165555330058825347227700679310351003319643791109022075502557955165450150789350832266827008118433630182605378306716990429797754612639372519564256030921930861861887774556288187641087591069656922816761113937683476379026662300506182265156426690898729655947127688394634860649270276314086415517113496229174650736288674853677794458141323952725591022849163036521278720877870966147058027779223802975317487084941734301438010190967252383192027173852970644594108741271083543261872531036508481895302424551671376041191444502537955720619121263797253315242581606426357593763605628093746691398244931501596835219888597267920463825435216580323575666759629920997506039715190081354809577577011903808213834279447821947090756985529786504654598785842863658182350387045759948767267731607151328002569772747976262812336829619514538487445046720324581842910630970854619399150441600273830970791050781696078585829026397197633920362599844326216986251999375664917126691836643591695476988141271344611273608814193175933344931606385929287642516799717487069152066723271039371562546068774794869226423994155692269833646353031390558755431488422456993366287360361962466703706373154997258958189228055623566824462406259789537683878766718442898991278481272160027636942720894691702524824980228031341636314019859365997780953049029868739840311241451210355435368066288644632117029512553224024734699288762478846036102384823226468850988918989886682997786424638348385597941452276634271476641236363754510279420542948427632298808864349849065810683246324595284870135724258871846250283427956333854982997150253037658159329979824279125034907488666397964988919912064175079702540332960487928753242683405768949495463311239617850554476139330241988399272035976016395732410138868564056319584282033476782201615717469345154633221963771019181831891127037942674116355453355144095489254021135238389998517884303872598237867943563589905320184877940676165529002440120141943217902481847699591282931055309219550755785485807143986646528159621591175825136766184609253137525694858829864964204352004287168408890211431387932001746759857739206073124304126361707870432876521112083918500766227326097697626716375242768578077188409715035912016214545959807576446804035212879904625315872616061111902984571706770510422000536746306999155763880437047469611279916618332612482349628635482991234195594402651287849224915441835899637125201330913530504358317095667632958507608669829339827008228865905889133349089251637059176309502468533653069603954250879133394903700276981667400045171164889958454425745364920630038310020552222875019038092278406541688264497209896991324920606547494100788332441446688297793873900759911193889295919098011326753303746678195862883447730974483248452528260645223010170200465389713654226471156072743533658923149645473358617164843297296483487434614227682281312924287192526184728542657425758491505475634275169453310632572720430088808299494269499255809231385672011837203851270148977834174663928662420917967141476410507530929712367713659995597194230764241088841236397576417115279263408017850060750455081341334238793242859644488701631481745337123286960302465058292585707987013368569153051532683108406064111069918438931870393513623682628973216520702777090866645876335166608227482456622975651210384342714504182019354458346504885369231091436144445835901610747854433494383315938433108189664456074575591706927520425043504230996176940651611486040743094301729724183315093149698439875047690583798281176272149513346781167558338468583460957963366140661718489239476305399941075698281389410663564829322079892135351569375055402342452024191764111275466638873237189148268865122731832771872861244479305791527037727205599353070365584647498807092387771473181888687267780337236093273111722710604406894509142582085462658874960647062945016906921306211121848373563598323239618023486523674661690733646295705448958780327757024025807202404051367419222316129565627283205711885836396582021940993051828937295205457184102102011696912910633188984353100114648198461725201390452781847522606058406458121280692062634518028090314190343256051163478886181055549239439840648801587926558662230429457307801187083165840082460751257751899587484060739098546516031467063877865866477541181362946977186613130891684920768553789229462236846205643460605814148670968632237297005156437816247205772970304091837218671233776902445990545682379649243019993396044909959755991076418236986073699588337340045572366189571149603860339775082541820120099867018133824601765072002221942384900934369364233389003056741562501227547845088596204049640756923475029781844477270083533112813412528004633141313711405829821113486668219107072820015703541796821802280442188272094019899322837981323835684082871889892453122568711552894101636946563193373335996689152705203149696656457322409882763747563154398057220934944685776182557142505785370254586555126882046981222991854329998262622390298106204588978472355745806233050420176228816348668938813605780850517541703225938966165533106812593279074342789199200369488761482891402843299317439479917536837675070137046928764070150742218742087496455644942181224198980362417506017679908069229905549936058344115694286989798204419697752131083019281348677776791031423894945731266572803539433995245905250269398645072512335303238338831697074109766657948010807023954285408726638221280405000490170237716151888829184784838075418037765535763066478568031480537931441618071599905123286484644398713502436383497883819489887401679090060762139407670355552323196055814196119183305611515055161839437933553054273058244977920639424577326205739947995242915164808105586704246436038317335719554268313084914685754349081754198435822331159540766737137821257979425777869977999912064628434404837314922160022476646379668081614697047020378756596166448038555154640600062158818042951999388978238186607036311737034930081266477145438591057596358788307091091976115153236122723591476109616583816058286412207890141679578522094792307910858628383754041233759674974845038571088280515848127377725484293826242131509245655315854306401385976987681158603001407680499876158081558646242432916693761230504230796930363621045954779213567625934578253662748252619157724331000061475276060404588153839966935642508004835156736888028272214656782491748938150872960546992369922840843959698355556631113466668160765502813292827799025550143750738691942042213111589559920466758705557496446089664672449292531365065297607864152328458430393053065740588336028561467211026683952611840702162373824191620997425665876390300424404190405794834397147092193950318050423339059011870659029181174740679853125836269819807952940818002344877406987824327290815329464083550510370207128361967796108721221947481635650037879406851050192753377724935094687027666114727363318103635265583245008723490606124323805266398906212839228657136324507172377797247840121771134412927899772187118545992672470457155693395551180768238753504612878986627468800643388750525292072680992763626517929230527930133350662826487211521380332750926241018418582836987889618526788274530284559146518317866894609561324973236954489369179630673089769410958286112247176659157398869668253558408916312354491178994593142572979613190958206048314241142014214329073276124294213472170544836981327932357246678456944973540384602986044252224617291277920647965612655851640897949836504872391710747944376574517115815255349912769448295825622472589832598220366765396471350991859174850851669242924445618389708837953975054042207413990005515140843110412447000004932768248508481852724446131333921741782122478780436252940159333438391691108612117013889955450467679805633720868906513026396741010646571621757641451783495811552666206598274826877524337436130356209099346359101560504800486561090165733850018251474765017714579822732032445635359213340148950798070401092766256186022010069794192740273757256385884658499813181493895685890522540681811863901944886453467778508092286951366881334441260610500953837147620669315249058588599561067128074339431418483276785238204832788597946767104224978826855723297471814033709779483760728181930027497223387750197565800632719669242051066384099292363780561843885914378287813767864964224826492206225797224728005690123663533165331684011319488845757710182275792884742399543263893809761702476334306424495426770149926356471314946664273433571340434386225027626167266034230417199241867030877234297823004849703686076662090341156808325705762253479158748873800747793764117115285018539629886921684476026109351535087180245783317681763213818737664542267867834135925958795450299676431137656021094039224989953918857144543398267019302662761642978548078785648750412179202715968949518816485778238153651551885505506065145767497037923628728111126625785788805542819564629075760782383876854407477816544903459616914456106433413205778991037913411616466149890619393754491754319682821836074091488512086893837309674136164194938033244632649207201524651917508006903295673433830010339388918463693075314556835036120240018741144603881916327696126300940320750782749959731269503581215398819747162569199581493752094243958303918204382426694535707385746471536599731957746592960267011660848694159645925213369288765713492462577368595333903958782523900623034059720825957904784339287923204307729232289683606565349268292342605311589456004045989155264324385744436872176611803043525904536374528968729198075508584510261037563710370656691676468857143394735148327404929643678767331281370432949935578804777821537779558123172342365046909086397901454356082055357565166564022035361507893082887318262786434997628005465532445714830016393331163088147096318387223634795020152262678192619915502531010392918774169288838410301139825156998444219328172740345153794248498430308266190806923498139569114334748142715613935690480974058068705653848243956286519269494451291867413527365502003345151277382024625850329545625218648822739316076135162483884271404359373773167192417309958749155381507857457821364330429882302692394825858317566785479735131731731477215038182597539507725730714893836390970653291309803792696728817051093368895555270046484554855051113822653175376241477242460018464124676956659234424904644476655186784804014826999598982048251585996352479974351662907000506192607082747245625660067678710857000854128258656538211082937866086596533900678436158381906609278245588422416829528893217335120872964104964618639275377062384181769010875282971018442448169071995299382364550555023879028741654907005048061483434424411347877768412842424954717493450026587000187209417452030729803609854669468820443090652538258745048589322952397000099143369897636044127122047032026632600404328962308070558887305423200713772931446706580878634446968322358389953216711040227376227045712356398389832500416559141439772044704776278139971058505968224481759260944208670335685557758191843620295399709583126682738980493809609982733845135766940841519959602208104083816344777908838265874441096419121394301532892286031642183832685511549815894072458361684755365949194998235435675730402535522545467179307982473213938252815294395578926646537055212678296674688792741299406924882205829210712861202069476525671530437748260834750621431686130560653441860271470580962983999397658614877618608827956016601978996025951351176730000449165155993362823206956206011330998669689637147810557692283172981044937379352370694166127681830906376531057920667197221525766222112394817787556304135751443011714890016885984858457160824944738964750393249220562681559367084426866044596286761016616560026923591955350235085390579763086791380307560226159065326241381017567948862787070911473774500879826332045034471762462047234310852927389584301698350474606226668897334191655242090615508007321775546245892708396662470354387631578235742901264654647813278536093900802019656083031347137682950982546144498847082408401153275139896221772031688178204257499562745448370316468647097454321140815828317661776770321858641947221320065020846352781692533964431679079328818899880966574751567688792330370749953972581497508639617168715422064182682259239103643966696425330282636702762607795732220906284310502456958036876814536806812568808731184277844901637344247744094533764046370791245939826243991633925521279687840763333798286019913891591246202660204095676699306997736563726815682109889104793645897643820272160302621779615009921229461364982995433392999156879705095157997483147801718776121808773858227805470625345818611124968199466669634069730613416899983310982681241345283998963076591767885326320042358640966532115317526994625199436814121303519875487681763369573391055591949920400549364697877174220802557596888806565314721617825967215703141844702268137758051147273645936284072369600006358376217858477009890256685518318108477860816984931445575199989062755829951006714063023408977712511093737412443725550994804507552492832343384829198582710104809299941951915512068888481291716869252967382505017479712134526520535375967259516580434115489318108671826844957664514775081296364116792459118948076752811001567313913104912599090251121269364341861883946456373982036564331121376889738840924702228877959706691664829005932567574345162947196275656654060514841332062714785069708237184186187498279658066495341167960260542809567833972933966678047273392527385100745754470022441575076507288514532471061669155352890295742302020239860032740037050298677880544247293709082556122432723748673683144028789798913921025232507284326822302580668083815277730050376596686735596175188310975017561013756423827008396162426600973921672933531571383461275414559096070479552255876009476200595884273577834911143803108568983389028490707405083662635399995679211504501384246291970942646636670501600855243386427665330837247598180347485992110224293522248898704290404335653486987365497150409656940906052337508478494202660785804738863840577218826019506215571602463398399306193075112945197524624303274570072035478742328727154995276407878697019624364361150840942710348183669819047669972532936324446711707485523877258803920075530830307739564319299228508008351256298838320616427146943508515531968246585963821653381755356120467666264007266016896867714112638742061393429798775134598014140636247942178076813906366877337483816780578723644526162035860439068144358361513105954394967143447905277745831171679364113864540077023168714936223066146769926822121874524633197314665729193763087598514695009823369324046004202337758158493749295015881891323951534790060412448696096224854011637700468822919159485435420578040119252071257479172791702782962320840292486703916394822775817518385188198172013912285281259030928295687066205902621269594030333886435645636645169006170567658879578282726823655523690573894161249502899809701696622263281139493311495185152112293332133326234553609828834324443215986339717625244481327682769516829116801918283257861206895316502608021872331165967700484960717429454669477976417030881199873739778688517731860085288246742305878568209673752602041517986893046198997209907105177032683934688358441265924338106817942342712038209214593961046641335047912911561468460924848389251488364658348593680646267357584268583732853251047900642131426593391593263632061462102209308156755887639172814740380668150206888514207690974323757451643511471245757933282331187278403246070416639953564759132505216646365981230608688388637663334017570828002939266747587195850607466009075525623942396692543553826871999028538911705201851040271146263249002938023233508048344721066942602729097563714908749098301195726765168474463360982483940803191230339870129615945722357038284397314446277694053972365239567545559180154397068554972496009128859009862701263486437029847977440421752916206716889387426013721950137931804674378422772052072341644813026384520315406379362434318241372790286718874716626497932746867697199275081609616624170248977467089780158055335159829226475762028003651983503123436216524305364300464062695216519377124799013003945178679425230035466711072677448315018996964334929094105408181579069114518901902961120754449550639696606579024851464467328379150270174657402905166651510816089528072631810877591968787668846498040727166111986270083391712493516582321016462766992603245799781175181725175576138463751203599579432509004068615268632054974559550441833416606582791052533332569444640071948273316349478497569323851574517654962130976973883128830117594366504069461073862064674789211648534807736710491074217635704695208080651235927588740933673552335879020869355109220132690003493339689494401012987663965262542256138176869170167160276663799224163695217643315763582320452542393054162635818329631470077678165214860927177480844140140846940872682681246279623040853610093545292365975648950888788771904883480900756971959760231747953456845399484848149764729171275514461005446434775252267621121967503415234262360528165055961284130082301979094489708269726762838424862685657798714675382710762181871982612194047470292249079576303554963669903991526273874081322715740134992973950679130168188781338679122412538179337680145544953673236928245425701985598557577459144301728846260620501240428739610454685602879667926048170858931157220792057601301871558544499215306322338596049867201504559759111252137776998322291355756634754876190089907349657296727976784998080373328956200020662354766379354444581333371665345953740614499815966977408684304639599295339712450059086144727347111268466985767670114640917854316857922350224145835853099380649650992950248485369736667171769879098847574133914731081389376560412168226127515292592249599767475566214483805515722100836247643248703151219792911560737750744062397794006699514233654192762458954241018133479428721366804872646919521015280757148649513940198717652115887351513886840848311382949500837053583955310504577306270925008190289637309094969994070748290896783214577504837863844919419736402789719230044798289403906170106195366611221907615462356846688532261868599054489900805914787763917942109983507702095613161525854455662490480683998183248119121126941085915783838597413109147837353797131110037650119829780546472881641525097602480061006458670021900306513972192853703024922233819729898825417153191290324222729951855014918576562978680068489286518150529159504352744339668860882800003810539372167918962612319721058748167521297289665741544980770964231795646099149275637434650468778872985950710290420595456745790032094571958081671806192307643526756360844791301081989234567431517188189594660055689920852120333232986086198771524201460757804047483302967356507794172800964238254300486544368440333720244620544182435361854132975893286077212317882865600499305958430760849465927830224364663422194406234519264271989220036617274343164833966136256159547945670869691348603707333128037133878112794381421953493221809074107822430597559616505720890055111597294942005655423863489858452233794523156687789915092818712731759568130290534282468138016058035244571079761506838068768412460375020817816808727159943795461812051305422129520969958910769112040295805889750086636749634826080007524879267798548094714201666567683010618458398549398168460422432050891568259532586159026676905354943678531311274604356644735551568906335504050485148941258862380448243936009283176016007416650200796137492334121277906626113916808738742318682675534410200470912666176583386677722852928117854883751613495797730151044940208413016839399949934208918741392948849841392454700960939132882174990120587261168636245726220803873039003477452862876647337130619364040582169584598418196476298940003900532162468866594240929519800088222360343745008363883648122948609214880678118422291796084847770109353024005852170347747524724482109297231538844122057726889182691932715687957774788983660395793619446570275273531674277851039266802488061478357876385671981068802666212989621731266732560840915061030555915644176338369494860222456380749048201558113849225645067188255917659255897981048181850411420482709637115665324981049271245028192742648972282522947932292647105601731477967804923525129584659198818373775009243159507643408636688440176066151906778641968765754384726924666889961327850819101428791143912817261888874921942708177837741376459689949321821182135427015380046016268486177795178122876066774784481104542376746233593540546806088329832588102725364537093001150861718220384813935811330147924400715275914098691893060394258358715032625353478141569233829987546898550943795196571518209217431437293433638004028795038507550823702970709421415629133241318811021662275308610268772635635814627125877082315059864897154543786193831861691454914503746026733863399342664389670121793453042786679461539245239869787198117627278392033668183746202692923709093301235999420653346982349714869743293283653355669983839647164743355267812217617672430458326755221647081836481074109099007011806714512762923192692425918433493347301855328361260341011139517933106295342067204692043439991785941384385050013525074023559480588941266117786346697183861661304720987908566209650534627101978317941236817438315434233470088048384775621755549576806613476545872585879937807850866112926172712934024733719638407958146220374478221349821250310425736165504632973072646558631637204925681526826853650161923194142528210928345788833485794297702500768605347221002511710012785407060589226726833011031554110950218056833451031352555625545034314702808967102451015981924679773638784459921143879010727348615584895336982408917020698038947398453384735530072608486882495402411340696171342172424976996743008838926663312796424476609617156101879886687135381495985895538492090999215679671443105704519619456973214836671378049948564077992160419328096791535480706162808635527885110009213496962918822222003013873335672684329655867523165470352739131146264248034052619753382104618821789388966874600991869934075805420943361116179008508511382238291300027228629733696551249592384446739756861138125343753710923366239613750484619773289022256671146896715507736788987225512361596926352001197362423747048201071249735954947167752577664921401088192314350671188210498628599731242323970035013938038232075975523709760023070714074211507430970364892411898183821467738573604427490180758696378326491952248481887498965860698942472190449451825009657714267827601894779385313785321535586718602886621591742782712703104637754846071142157753970396868428753883018871150354158719498373336344302060828840333150174377277847752262669603287841203641177741242587478608031320991136259366730347312415062011663736035572448674914983768430868660558271374912036845549783429999593611024204629603258783834672826272213078896536415802004060373831977187306894561549457686801186056536000039934884350982930025447969967592513381467723064053216692643895329619372020753879376862778167798880775227092241356629058321096097279103268740338562498160051870778702100437760111284004029197769519378722963527428844833323585822107924035929878050586856491340807359779428366390297341878184989523068578378372383748438706562287529080307771164449343417443120482076192279949957258047812205461199826328314414542586169606974295702005702781684718605548357545802919991887402475388093386058487203555839001562657840105626988616119201261856581262619396972713464077624149795257148478989444759268639031968969497616476633411498410105451768339542748704526113916661596776077007188828768774529962157747652971379437948000176918179605502606432963510286142265198227397409190237615457231725229070615524695449724256377370358434283750958938790997679067090898777400087639179842371807191751069809129557306077026226495203016393341320787464595183950555503549235547241386497354561355619982493304871766936014068918180164322712149091371800128548707775234979637496937686853319449963349539454812438219459997158692817621301226549544430247624989363418451094909747212498156229948354594894143943965808227539261294802217015685693805091657946315764633787876686172080144716353925934760932702117569309205608985636361752915673133515100402818280760694372594308267863095580453239415287250197651029868043583772716294317889306614260694650311194364045541283751180826884469133774300658755321780200862089926860106982553002142870446387032145168070807723581030797203508535634763467537719780249252175130448558537942308569045653378312650130970956517797819226740026825632515504328023627901118644069746173896721005711318396973660027391993478212231520985710402027030220616074987616635139403190094023649138530109327637503028849499098248078809670508418517899246132797085429811026109011114107813746660844787032191386374171586431925441821026173190861443275552404341057721317592315107882099932622927041944748057186352748399854177427344745115474641793841657826507834233387075570946421809217757330935630386314737340584204582803161424974744150731559614261145200449742950266257739744128239302453436920481600120996216596245358806427883643742343046996580403930818457642037278432265719958833521414348845935208781277127614468466655738835786225598928213044111986262852374100701954347149064993448824688078102375987949505798199890151655354796198587172819697788330189410396897616508965504912422548185337661177514803937135344184932021729499564722677215968212202028552443964359737521194575537800719098390854118823224982652175135743118947698894959324295071689886623424281899453900231853812644613097358941561149916678290305731880816900231756589315967933903828865207354287675375685302991354369796173788079906560952158865085901488120668497385593418136031946907353119567221383552730193752637182918407885669744959581057385845958685965772623989318735025968270317837362432775133815531045755177519108298053210233724799384490847622887381605026573230457598649278013435891388042948658628408697862860484017009499013259350623759188046588429258843287958456296906125125612293663756829625324269533629928142240691960031253498219770431754884930146075189507033482450984819129016122166142578440120873513838717910377703397387078733376247043150060592161313664533370064051547148742304736488688799803838901781529082900701193238453477530843803588813768833834179808439809943253044981538637446849425517969317550440019825712756839684799375198358675490689378316070472405537214081143336451292236681461000508013596256330239236143655691436430723237434446315950819562760715210837633240938209260451839249595699668275824656812268941260940330027513855141375486198760121386970444908905803577366789637448572083996372442413932334155970306103775255984130357575059343681335705199945989740037738127520487557272238000673007478671941922308319385632203102352530275330488782293784544546974540250885346016846008565851381632177582249635010066751052106919143611203454374553941684728989454560882073868276757374024557390036385553994648226555675545303476859755276901039943694878182429899342275082917307765627196552853210249325356551035277654292535355369379902253074661653096835435422381145307149439604255161006153550971759300127414632732432377611557992721130374293735791178675149690280928382020658625372725231558696086869906020055751556942341679314034153810931331180358165874805254370274093716246291411581768447322258185652280174464324293186138940194650893750811258354699328464071583626015030746121558885008106076920612360131060819560229199841802029298644957734605545638876131357098745075732306014653978341436188782126958110175132581597494056537301975757962965744036462257718898237658977606285149609725277499789434034433351533146758841609032065033586582031637643243035984816123720630219404548025819651073114697796807015177519001875234563174883659532643977506174649976670717710602741166797929730185180845564656661185809391750730880474280881121392640209197318176181648407383368436220998612468037969666823029253998160275300697717881386598959150648425825157387765426735995135009090160752379801507344206648196736008913568269407423302748675398697012384481374725670620897210829352856467148233996785282790895110181355360150770844106602389638004108828878143547046555640947026740154714871538272607028085903526691153236524737416915333809729921901509797044431331714132910511882310518685593555360417794570752636445377524360293899446812811605311490903117739354492228056587289151922434094880273509250068749244603449655972887418202413177944303996356284772151963263989745331725527286358906285921266635693673244882302474710646099131022202498076664342366050529610400074532005285209225579800996351976369482780680112986552675674352993410186718772019960157914811166791673498532789049976282145266515887679851765701340788723628727111544015289016492561636938304762996020995419629328363453648513606377353383237119179033721705100669270184912913792292371330233110657087303166313833342679094599212724660065271677022049140857186303809181596074805556400714410116329705579981385779578485952244711565398330558002503136951617432632637155921422166906548100340772642605373731837458449114216379858119127106304720058764030987686015818525276846977237970926986481835938785767504585227924619166416645659083659747716491621273954125284343122104758786335790775178863736795878156209423674600456090229914579638927486906287022565244043973812091953659861821632809663772776635072417494134070269627240411639840404757195881995457551527959640057036794955144742635209883075731983573131786329717386918638107165130893193940841958872482360638171378276136010256501198154673233178897427231618385097410062568683734963588179283338873853428256858751068856807401131515724548231425184273736885486814762684111206405729427284231727414936725551841831120890937095774760509051623076620254798270079024995331539762696302198862198522302978601387387981177574099170426858339066264778001000109151959104848279875470085358358854597439936446034823250889620019945832085679799783456800492669347920376419077830827383904723511813918154257573462016724922520880901362466414054051774116142422140418625647366316953982353537024478551463700876163839699383488607969040995595218102523874673430538392295173937834915362947679040608247616441364268209423971578614004348272619807906071227152651920556909593913766433521028122018078897124611985684622899477732105201120515269475184091726685636151540112084539580312059007078912629269528193421778355271498378090879077257388600087236197355793655688951294872347468416683180528831894657091242880671877083705661261823946503848974832392704240067626789478899144977378305280058320182287067962783680927397657129556650684409455364429821529166115939275910123926352078876049730087481108874200199768908518192143357531435634310001407445996924874338750020279957873785138321867187132220726667940716214016869383281008382423987255501847469681798733196591272448603434351068997943233612798096155241146820718583513124799633568115033675815107915338789533824420751897513126469953320214846323834385082704661934570444722269893267815242810286607969495396104829399908746326345863628727271631163988279247340540437735949369303853176617260684804438994292032898430550703761757097543171097642934268020914245509693462619593604856578621818079695443213672918424076402960129244620297167357536866506179071923167630282474367571593248661515541167895745364213266894986097182634330750315180563556746320354380000120782153806511487999751289898072438222873470413726052464552844426496617068367490831323830118659109036764055074820562776268055936839025536100589713395761842629427623028487637462558446386539114467405395045832394608277393599232348724115164626941113628618334982037350041413260078733898572753418120800321016997679252000199241144751291601470127987893921249750712778979013247631708478010165876993333309760579572604649935704248596679100039579207839742583720024135315151096475034441747881896435852525501241086112527318472950194899268307446776684616426266025704742498263720788888350745498391677854636893780777090058519597306432343039054587387446679839453866731646600454599213599820882447814143661735233404145921926539478421146809263872305953789635542613647358173954866193220787088200711634423395833876940809649968956317902967166376939985539290001000568794336960826296393419166092349784627718096706038105736579109101786325699888851951594169634941634013581819660180549219460137455581959519009736091493172746567854319674386146303484608758618534560555001173170808613741610916353529379999195417833301421128147952014173686900709215334429318904641138867812952773563614843127474652612762023858425830875533388740152054578873600790053916959750690908771429237646481661747461857155516184758936914333363695876600509374474391539392968155180744065387960759598404941241870731220932709838832628576531818641570248634591993617955596737173336719594249601484129987031760881656093546275429031721489666407226184778830438089279554107238250591283690880310741424401770098597900276194684493658003467227553989325758862783155402857916840208619593755483100531578185647229756252493875981471872926641112308426082097375014090115828991150429313203525134665114924199739776455446437479025362329644707014128841110090327019815917821272717981067611844111720915302583603175049568499811264466947632852106934219423349115290040098174543082294082462588192751407317618342878591118485375170151206519938709811897450854974318205911077188665004040613563128660880526331872449313544785479903196840053963265839281543317676503157077769285820032547852902857837084820299722089484793703780160460739961768340240639257623181546891320292655570367764629852185294022411638733910867416092192146367985935725746242195043861898524842602009047130706950601676912270892445857998890693212436143502437557940356399237334790324730336749088589699479138222447687287143774423801846272364094678089850017901602254196457462824699065817013010501929050497218138841917149234211648757135775028146327698751033205782710036741321962880980326109271968635567080356569752115970036588749434441325759510026438027182543532860159046817623366368971012595731305832230401785231618746904550964777245376098210056553589834377464239657270768015852472267550211729246921149649080334929513422564280400591890632022102989377325335861056185387730736561126113943752905397612086662177471830870065742353644238035513328295667512023034788846339058417843743991001013606862547293509597636643738896044391728132312312487380460159963633357452772122742066875012009586458679767306000394917997065708698741726929261511362711106896934273982156944957040327575196216934576432354643012635307547400181410628879667044485422987770639589173983540415737879799651022398188177748898371208749514511263975971470736055045804331193377903507579902154750968647100610243379672919423923803300384541964728359584463934797960122073689103480917642099681705395865301460744962121070551618142389065174621069298088358935547195439497151053326435260515604833365020318169051419673422933027490606179599271178470790144570051727451891746233488475697224921167778616952444500174417747557998953532863613442771402752674344035497486393609338920526593202515912638953087887006820854665565955201138199209752053888246412883015772343756042797282090515718623661060361221240171123838678205869794779526240892039373604498363326165089402683932370662239366048550318353171482825480103879067824488187956729605557882887712239570880654360349182473714485444338395737029946429678101212838786723219146904884952861853302129102550160303919513024480380229144802894415899227254421083785822537525273889391931938090499336276567687901572955319503673630994020618113793460745047546925207006343212170259675063517354779377064142310388134426022812587475484249883066624692750136483959886988080552099587220079850569790245545321381662169684339095001706880429938638863767328778321453949371656636638794758765935660283090019747358837746627142915072640917616161918576114084021533426964533304248769378243748076238452246690174279987364135616899006168073614768556675815986745316983371091580995267905183875773916338760583887497541950491412388467107741011452958843851487034348201245108933578007501079643820480422067416117850524308094491038309567535159617413170111042933477500807297620403312246638537268870832817640186652800984542888565676807704625817129132409420268019864071450899370421502033675336920734700556974624987498088543777119980144847911087904285423200638974214591380156853241227957503935981154508847873125311243557273829814928662749090433769308439598752179334212524080060236108399500288263602437504720981678465729496309110026043013530152128861426071699009532006962118559417641709694899486445468223577489830513950052910306024146926638104178384981012289784543889959938489761109700196350219337198826749284245709844985935317552187249449537129587804923396657481493270044937005648982061189966080977147978285507480990201834698221207742078602786568516254227207529471754015253557658902392291851019243396506007256752260311515271453299327614023564852939747029991611922298127039022894117185088251373394074121591254223103204550339619823977139854461105923907228876192294353531187573018726817341136332182266493039718609392060641963093836562867484577357519223907272706365452638670148012041440546559922341999660769658707511643915037632334896695771723125517616120878250050380766753407525444485038566715957527350721473008278792146359980245764198251452750786143512123728891568957416108472120873237063124489949163138533668845914496443519455326545016581850838430254467047950194194651426059999057737484054117163362450692280658908978605789121461849589749101699209740326522106311499358643023831470380222849943520131781563848802811877025343696802147506199636798571908649486265566966940924425346873129084532540418942932740300820916527562474002619645237783589877280692766222705867318569374713448547163869657324374736084606616807741223077745010330732659419043633486099486636944936926023187575311961197482764418884940207872436936796752491256884396051787585616388167078944811473703270674830996647207531710265933236724862499752766436450921611300843447175018949263254059247574980914409949481046432175502490036380302838925679770165372264551731295290851880348166668848417748165577801101377864429117410121591584268061441315468075058131465382567064334610827466996841092314967527769349828331326238226129398152317087347811888200496651858665262031159607808574422578423114953275295411917981491947577604870541336713940195238574490689160941999107806290126485349256530245995876843225537362393310125532641175620610102525965476347393362440919679894756932961303150106652455994010710213015705635259011227529347462301873054576885665616232988517821176660365053693596891265868167804487005802783481407121290151995092729780567217458919689072866440908085307742095349864180524956960512046182752682312837004901546227666085708047810237515563441021323423211435579333849517504112508156666175891245316481748338702572792128883951093038478378927411260041216531805203314851376016831999546166102450788004041242919346568796163692250484694126910763225293455002891150684428630043294918765179043436535087752454544812466170066052232946443734145572326679887003205033085704583251333965174396842831010947717509496108099342251674792914633749108169454741935568966599860881678819830542582434924609714153441842875828606011120685689039509752829316348213576053031421484252131969645302061676370394938669564083321086591331758118835618105816270254642577079021758572624437815031196521419435424169400995088552236171593518190398192258960179814357230419551375023134046519018372354579015294103562936894681308755124336685969326938657275966691659623293803138869754817585803422953683460053083536344166163035136844366677773439285982397871018622979677960858176343933672783585831927688657680011367569185089804890622277477632914488017710504230217792357567669996470367770044593012647816294950281449804545895190422565970349784547673654564536008159357840029058449929756169206165498671228885666630356997938701385964272648611987268668450220554462204416361661282435938173224139598412839743689955519609991324711871414851290905225421299255695209919715168291259038729126670552869893899845173926094994182751740827793406064096893053633967580842912160224903319504762455018621852379621388435843636526485227144902275498375781700752240259126494316565086518946000817063173086085041810880316459157223350080586166324046937346342745733626119266374865448278239126026320127196808376768071529408070247223631917459902851168678758743530789209568358018302380734072697832354320498380499009795519478861262386974342641787798385023810138945202374031148344034082636553814224184628454598814345618547224742207489128616603320818034220162351581633322273110970379619744365809637131425129726880290645006687453608081091596071609305889703700397434722739440141146371562051602976867691115666104454285209360900399886203180451804850802486345486386428931041441837015783492415455326670963546401101791639707116269488913986932697119017830740794468178393562571933176571498788522064378677021175134492360192408838592803117305454366457761067239902460362574393791304241740390611434517184517875870690663124080729939061599532421462861340827550153284788550172100489027946453185877821070374205093445081127461151866405349715235048629426691276817809624518394006144362223387875225967026904041389620088323160812976380590546882625638387404835415443474273419901486471123624139479743695644104322819030830756770359342072416192073427692057588343769684753157157150343018297753310031661468683327574678700631466886033875351639675778473718200050919140898895013012155810214638215574434890009672495252301507135722141037956503085605732464819507979471243864812333663787546793635809327347376682390340941265575375496176278973064442527525031584735332382813412104524531453103162437137891432248745022585128872001868020496706682702180959814872302694289742603039977412839897058655419320132556212640469561952886662209827217988948734706271124246177155490072935415349015758105024092585292725469794615141514833433291119134707419808972139182558503906176683502825804846118110460983217667726136281829735687393389767213582908307119277614524449187194972850394705192157937173505269094945834139117670100671898947593312415657541664436552322638177689356529774498640778153932992205374542026786415649190040534885284375266936102991970087202833062981459504013270475267737669787501531714331885787458147572689426126890411158233605524091694639996504360046724771680145315842815350883099340230451543505551897804790058797247596404194241179037469174895778903723054020784058130530449111356643822446114548927163854572768340458848792083480909636151175410301221643912919821952278180957518270860344203529795672822627289279746671984492595736590274628924910525298151229988325681773098512897554149580398310808541808650185717200965098826463988434334241283933303471481305485080720459131015167456428921081741188077868205545652312004376611114758844882169103258191626584394196479815670406115990569436738307527124944435774900913283917411357531670776078044003622862252964168449865508983195193132705459352797290232814575236797618516656946375995290286988781849691247425044761490299024581357604517215242058738453946632734612967681765273037954745233698456885413239606061281903585786733550516970208765852221769010150145235692899784084681808884285892064470115822882921355260335572099742286012536734535223861111618267905381148766388479523288561404169904806559042586563895739088780199174886101819389196072943271508573497857928113777525582729888759646734812986943845776851746373300182375346678731648779033387023403618186101892352333689147626381336746431303171070426546261559670103037763936417056128128818152536784967704278590059691062014477819054471065004891271049007283073381799434477801224689955224858656934526362891045217484533063896455227072874129518880990465235536588218779325022124343254748467338647581345181251898513453427084252404933519126424469412634395944160714695970320505513291814915176187319945209537344509029253948468292219770637549863118502204683767975056908340115848855151099119863741537695751799159624221051033013172439341565737770699773925378393255139646100876227530991557390525110997028444851138416590982465106937608915426150739889384786423717236778068383153405970474406517575155843327553708269165898163931249924762187677617918390379845657144630335511436315416403018484569283649186179039255579247092190450251771296898194587176595204371228448001416634266281075495716312820235494941720434618433694967319580733057154467741369268925591753964153056038504844495540368263675432280901215326750954521821790673086957714734293108569558805501603075390010470131486002192782443423571326070619146401022310876918906606634873836637097449717456604077221251069126951794983999792416510698046989969961606772213243227641902131251363330810794512082058937543031941779311821495967868784905404693907605894919848388048722650508588492474165017185248601145926695184010560522638521930120784450372405412053979500682307744957355215932425529387660647360249771913032126667150853145002305111917858410069666540486732433696781719030697263889441189968559846313784135766925303316495940716268265147154671749520605407315359404758002811676518155805869467392023735958917920055257314623901309051796516430221164632752833184459872055894353888853510299298048945944167063187262793050811161726425208129232810038959035648556528933813553731118900195754100459123599083641851652217486661067437323575877687527109740548261175263519185700709989196886250684215412399845636591062041118155517907830734988280560369246548465339084065787127531534425896854937295883388143778969239265575333371843955055390317176026425998806013989585468593220302483155859131550258161194712399473188421199010179160586622782649880951041142727533156001290953148963091591503437894732281644022898191313083674002683509263479513214832965411085433978604017109870295305815332387518438849449014283074096810150414446305662729876239253304745438878073728454694903629298179389412396789116330052653943728062738592425792132865734000175049782003366958281265959955667941538699615269317940949516444444490641073143523844792198957481247268560187876052647626901634941229587577280699612765153514627490102600626153560525753971067704443458044984560011695973557580575563130203322588755209955441587759469461106209266943376486391245858509969013860091969443420540303990324252128212642112028221035208775860133408169412420714253680754516643619401778515904323251517301202177806691200653735641912584797169261148233360221773279119386814051513143131543499628097786921622634593544994986911107193435189426337308666331451167553652763755225857313790600446980793746394539952958210974801055211464878761993980024772946594026996244395141145907946849315814755658956290477389584577798319093482621598495891667218822673370558401157897327656355788604823967952999292224020489952845592938538024257401586199527420349668820829685770022258639128548138926273027146587258137794341921702023700298518590130492023544861816581160363347246739705917220859974054326463544988211605531332661947059628311110746431703331548663381082970129463064567976663034398440410850393053616540243505299266612931302469531792533897390334483006423877033090242449911368263361665104060274749395589515599687655432297329326972077632584925616571265777941445371579790238774851664064828288305864811942785518015255815230762437067447242662701092762882673734970234205838391382450506539429418948441224047107450256225810810202914324609175274033302841912809791598886374986610411559274445203570334595353882230589487950913558651294686093397485002080833936920454736102766350102476883837224228733715644102080401629651009738022023624230987185702103634327461547418466421695941296308120437492337357071181767324266505262674685836482710071353595357005470907868942575715343246322430120344521707271300185748836755033949672834763107647210423381067981954488580818948676261337755407085254473924466424531157322466956330577455531744508857999937457762863705754486007918181774752138102054357893353472808682843063237229105612172369178941177421256676887008097752071624984378709552123047260691896438511576251086184061216237202901111054482602627831324860397880046882866252861740380715906266564078852189779438727312861111026954770731560087938072107475152054359119207387012948568829380835562568883577590492386516542263560500479928339714205759456492275430017497118634058677441623941624489768992508417360425277103345723790152276898119430128559724482370753633644107059653539246456684344793828946118640415163288651355295167502989728340661006534029210306037455887764164932040223022347820288765765304188699158525380245224417623566825045427627859425183471417539727449241521099479660302402643634354666190886786032207712239724058421469324242653849366049980197731453345724546667662116968176743801547315641818485436891790261054856645069923898694770838029712441260743628651516166517011190775464414128552675212342660388455159876456192375893495610946685344141458136803938251786291624592369340040945411697016923070387526791829066667136622010865815063077289462088087703501836453546076557871967750308629862963819872036971005358027193696177980723717516102662181013270259405815372460925556721017018611847250337866949625407768923180733059280254617316044555866079002610893172082735831480380695761358634265470131127810843638675597318347098572308478788035329139693237365721810290955980718839942305579391397801972057227538581465788820257350544067908183751715148592955923666274826188182730174993752739037130452484220589631645947944400570952019345488737186779704334473420621108731539125972443587228702636344985350233280184361064102915721147988543127801095171833989424200973043656582001199603498491124030392111818853973934632527442106440445781398135634712398378850644765946973197975435268060472856634281694521566200308011363456952011310822865480788685372386123254187639703902892624849032209182636693936221822649622571410074745637365037460774288081862595318253637352187331237119573856338524532076385213896787876742223395471328629599089675152725996774630548389472921443262051321891943429720912989729325763785995034211730658908225460273049330523075075183633949112292750193258779745922067714289160924061900055478374325100334057524030157272585784830701043435062965466492386770628610868449330939188859185937410917145766540855496000655589495372085688192554993480702966427711493035253568618991944494214628979041013463258437560324730244353416217777693580274671267846792155248340213014977471809789326340399990640548163367420414300414276992926288753313999508883585606925319367165377210002833088839175721023746995325513216786165452549651455619109322495894595863896327187958247933669056110033161291438369194222021372546559800468624038837876791632256929776613817395911808393350705275390819152737983173244971983816164869901656913807988983809515707971374883835583189933016664960568617462681303781319056638694095877795951853842624380546004380114860390959882950495643772506104106990458744142962730725987841283744105828405039550020455166985514290767896533123094333413645122100571445602764145086632318373496704155755902916501196599185932507444510128562714090795189952664693106893418066114257936580214196341197762923316757219562838601808876544949848090056181462190070894166816972982679036196019124483541978803516774757284817549933642687568702689407680843917805514635620258029186977486575368132074084151647931658384970161224436206019663857693544462428717192229759279134585688494772977583758840745983074415264684950310666180334756651873482509059415349912288068888310874272326484223879454750627290640402898370249593952653277750975562806137500212134206205915873101823291900523135242256790742580046451668932875700416186092788679621920101642279063101439952139506794864536038314894909587021904629191523633285701023969351860917467399803833706714805181237633532305025665787318334542597504334949616673279815579461541583246303231094030765503250744106737976862277100360635620698344602401994155682274125466285910333934663942128332936647110399349261330717165088149453570193226793426347167263002922560378283693469121646767768412522421117881397628198686235983452814926623646609286222650630830928048829020840119421019192050615995039474805575780420277793559215541300911388622778069673331932234053725543097434741314618227543133179202581850006392829353935662738347965268976059958006813744411441221942859107325465767314509304616262831891947420942255703809820000170494194745422795479624673312863656149822859606203052360923873219533439397818473852358583298238296684225300415207559378750258030104459051833884231403611297670169461624559080394179594846946803855854261185224143304554621731329074099641844169601107656690038130586695839132800747256463686000954208855756782011030380481057836380183468993648536503635410316399457047106911738691800450149158078354913818361803074671843166122360104458746168268892725169488534570155035613159936069720950149347508579648137145658860110815999085825951870491124427228011557322223333674116764851704278635062125321553656598623307662732237853511590009466018092188767095252776762666535410224310478940054547340671505457202613653904644555991412421057513547333294238848778317336701423019435447555930860150072880845447877048946002990770070082083174562668294890262954130223403831205495574121622581262908017234213517641403725578155087089560897622127211548033453755890746087667474516655485241230701859311135257221753834809914311468472578951317056747386852184615158131893955774882761144330473456449779588107885994965974631402097634512529608640994032014459623171285366860880659432657169295179743825334309075958336584274515756823957717558178194974030251171438443509121388615747757489861818851747014450835075624828801841831205368537037234378063339903942394498411773665472537941438926796873431059540244074270276335579184912182447155960978587270749178489586844199452090837583448739356533481552332981419465048942839442229785319158756116617795609818459413592585409995042545171993080274699270789040763434531446201644466866928350268107949461706650165489189009073390800964924539705710025800243411609110758043741816263496304767694697314041010919797943123316852600155919478480935559456288181208127596488997195299485590545820879884689454354833788610715456682452798876430991290857839125261639395755982262722085790795316199521924282495814702135398977732258022320844289769779363363793341337465011805667838995595240002993156278856901637925017693487434654075027608475897659825588219763331745432807024552630071957947126289716568717142564100531964756968460395847391681467653970819604499359751980069450789793382048016384688182912222200273624987402752953838311834012386711559923176466073370317190180954094314813168440937502970062499074924437752583387156079348599309743549205642935713092832886260268974713364535112714874866180734761415304676959559482859422441424330966167449742308280343844862931775934784594190459451911399960660507311905390428467211363229808904357927244958245003106666263267469636439024587741898701086545205957962072368561601619184141566201691899922428659804582625749655500387249542848566903192897643899539882549461876992706208628601470454419974621326887593933718444460913091783848527798395739856721549089722211006313726161604167829174489250615477020373617961707525801532671749056544380967738878679685732010137088529366556895554069119459300846134872217169091001602503021807465156978625510424195100483662289597309513963426616634949464546587125699492041656214602616930167505767397972495777745948292373783587752754200787043919800757622778869988790297572130224091659647655208008264551732920033369399575690247390783327755934927925085915250034309999562473894710807670656246595690149308736994925610591168695270402430243636194589165651739345214446785603799616283691663758351570280528048900834846045582605516465640635519180781962707625432927309232093740426181607363593261751937710525806960426955401670203083880185072787724973434056683658576243134595426703021342510018249043716664862013924649188425870548894784650063695350546379497519289977498492448414385044689622497003742268900102916750687564472647482781767965061670649121971306284536777409108089211853055136439230840472208850362354340109981601623364531739547047178331695352534814737926319148700430440698942089794404991863790296203559621470247737065356971715807409324253491998690924315610871086169913170954665149267631088482613690301785075528188873361904323303833419617752095260092835237004405491590253543864600593517448614341933779533568824802378457946497680480786693020132945212648515494700760598781170541092720053617227204594290474125972208220217449559464357771333129117929982545483868634613095912778087047955719061839430100268676389920608064380248898642618332546379682002569323558725088406602739933094174203399721127979098502700612983295264182237626897391735614189349188395837229621195174784782230818255261234699047607251377226186941192776247050430689337130051410944057838809644282816163454172457113530188135799162742283611679684421731167359061346096207108926648490917115771684642152434691537614400313366774249356278745626767018072303986946043891116835633943439429087617489233553015061170687040964086519770439094279923148052759097338424288313815210557165715445786632376233616954210083810436520545460896052028691735081815775490896164755833136981466124401367587483534277408367745100699057832905766661580698466941652558455041825247147830843494296400609738014275654095817739836102972795057759450291328571377569382813715540945269809099255677247727320466955187329454822938484788191875473118721264405433172791010818225028656927355825211574107498210657022403266573270356299821633370935640143815739119410908586941073617726438278449590082167484853955487292344529418418430714641934936355174463493818692264742244523542025753202264834800604729784031130180229756992330712390689168111919802961793500349899037329819021930171229865282344766604644348341012840478234863352316965953859029336918434697980879732314178131407225805158329330244840190136578841050362736386672364767348474701204074665219918467464400145890709163149188397443995675988772055007384520187168326855533190834351402560721085275606309222653716859109892474301650962787311246063535216162933376454403362499192614773177286882244028685663371508238989825756711789461225995763893229804198143738981893346055664561673512355178002544609331213184906652725356242554512993883765898928329536092121720202637682393380664377395486157818244754664187558427553339888384466908147875003559955865348642297580900045894690864977607743465542866372352275967411470637592569334671538999313926079576908161153831308443252735531505675316349459004422567258557587041858810406918646545057528860659864859630374158312097370635068899477076185170845631993581728469312805126163689442586457935436019355269416508409695757300948563297631263748647062818386152791219781759977395563180540829392963785698237759598756641904812109047665254820342279831005779436806219846480652200906368089602889956538659864238437823085888706937733999521092395216055057991772853566120144022717275071218679960762640087816327539336052748163908511433829680211223233203974990575766503844694299740013717130547929002266966168898228162716610968415942903680368516872858395058064407510792997180998641174816012684139391202711576947956125777580677531347033347138534936744659054906007206172725338645285094687981536101425055195993217472239089043632792345622791653196280301091614244200917108247139496091025358513690358585791723349262283449677537239423871181971443635449047298853922361031090927017686592724494330924809350721771373146653947907333532154144959180746480147577461632282955895134162740999477631963560711011971944488045772288744988968717604233144747544178575168432512914754409169094150099546611316675200458826866550188583735205571361240926778924809506462821136229089660238649520591857716262062511633682746923361248587170537282744028247265119053738513521811077175818827575515385150818555740711059910920726015926490386453399276565973620074009274739130296912166559072640878816726741156104304029738814157394012258423667327235546235614911797708423232110876777272325944036656999215922388527277167377521919325245452603011311245721905953025225994228111991551767239536393409086449789680558530373336886423521206623662750421916875876577114778456056689066795368071771213091698171116998459409255395789863589852009617106493594703137989974743201136605011900786875304825265746037268261461184936619617916300562870180811517046642617406814107471396923631799748479518888943229325723716007014995827905976233659226168166762398195880539232033825681798499648278954144000244610012623709422622994465124056507926962774285588409900762081548852780240167012719280958533110533937795533347326982921580215105782167996058085296160342950318310407613146127480815128064404506128563953282299899091268805620123990866382659590678128874119126077295206911110327913041129996719048494299507050395656910777234662594853049318078649452079086800552947079254219765703453824542654492331553540399985703508063279446938375122681341661145034594531995116019889692597673350528546482432402673401632429617792664370876836809231821876920678459138438375449058544780207956910556242859625035607239902296347336520433172671509861709892935997590274425951633565643841194150042147443855679204559286490479005167326246508878036932181735068642024593494440557260902246766598741693828483221992783707885984430159009240473162448854589400608146357227255824598443791332274999579027592559930533262330623337407605618632298689472073633614182244983765078868765224992340820000584484417746623744002268940781637907343960529025166889982956237620526741142564901759058240864295339605812872894153876225951835709807017942659396533948928914396527594573104150971216479882060908043070841383046424255712948930180606426256259581640101895810080569944535880812023861795845636315669084229444878344752112982529704407811327644499746772503037878473216939848811114340462175796948411200308282603481941686949193781098726179600092136986731991732668718301389994439252519470285016799060578647831296321490726936370038583563325352178753302440149610570165156934753193401086254814767987372085649414504192644570251029413134141780977764027054379678939300151101655556339720754250437525015951002760211408303445382129678337228181163301303781082989513590142212211343008393302355198519281257527750716654438789890234608980484832119137506408759505852770933707167601688742302049560236773245733187475880067131503742777191423111361576288838247406844443105438351164997627712871020414165785238555089229234435164179437077327215762260534276062833016344771141730765321848286843809433643978134617353479108701580106883600115672512970364842933602993959510367560068283789675496155466400476884760459411714332645262198153520079508978059616495920811845482922215244015429346374274626629797470081641316973458328671430570419100460216325907847627732570528177104751263295317172312680771009770346658769349937008604754259812511602041370772571776199758798903370089087255673715384082850330981658738501468911160763079306910452426397539742306986412031246463320123115388092956585139310688819472446518504803967675110792990838864510215142020650229884974977423808176503240016855611600829875654643646336401068117498001057676360059440221865161940122985385975875477043821168910791971087259239602174060277470146784702053296383919379493426856306301441171163799479441936712917432960559938144285199724098192068145703142299741075280437930453230981124852870649610240468896506460063315115683750363120815437292091405428506877570260318212558394487373337465358380505149202134123594975866792775295807999546838190344053802615061024229667202713505047577898275815587644160596060360880772016235154942172504527750787328794708470633997511976981367347430200023501298207236891817508895048987672808768834380464380733816625464718407328795372236577620317996271157793164468731323271403914393185140612697415239111390270869309187734470112836953348500610667795608968581891651947123709839383787704101891494506251651895501065077853830507561273519969073330464197889283305647473001648676067281788765499223820180691631008747543626328304935094806899281169822346585594848753317959377596803834405908842152701578854318075815956319886274012324728948320587710482860685259773242544095832454864961419197628845273175719688943108223090884223682378697898145286618803764391992176904976765716586596788100267416338228056548412767065836270799849125688079023143760916782952365814179277962514461518739243507745505530066291886595308658676453030132168717093155180311177867637564995042429492467500008562394392678098854413715649626128894860010131094603795159229432335083321107244053435731088571882101660411942056880576894843135337297477719417317317023939573010664022479110599489650991727113377355830835027074759157744380813473722278238363004507344012233526076227349945243392407006115654522858928479294256145678204347736626879240235716170169033558169629687095560681098287654849801321520183124733611216944750087227394578271763296142618719672269546156757102025296742972608130412783293206065477971674642875153219434732607183185809985513541016832809312556947410584861502876243038207072832225969752085090621403944380584830264058195111541065412649868160592573311520787503545891610916207943027694791089962025590497716689333575323514192373330258398875061938144249326596447526232084292879515212289121441201868799999703775614682114990118054110755365537984809369261331793350501466119703243522456259759562844665420128842756066506625745220756755244333232364502513572177776413985121612455262818097261573667636977422109991839256863783011835749527647663353708746658239892787253774082462264210394173471347149785100690142013150645924375333514005331996335179854135619780595694132825803422763973586554437618674368901729963357307297887176926656753564718309852259627062611345151269988606313157054959061148705008445156723542737276636178224838840465319014421437220245292158878591568621818219582675820290384914158283204170272072505230135935281742460098933897282291810559222226874752392505398246034114892031768811372240151654792521443203532464204886470290127604110172117949102436303318580411353716717036277333564946123422327861707982401159621541334545925184585476089583635688589836468787391621534765908414158309427494841624438823701153590869505311477507446447658153423864728187764002611769670573424290128319412502905082777250245782141606978934831630276891319901688422051916182726496597322112637530245254242851201683640467113253594356432570693038780200362139937720662854184274867250348409386852410087861344695986421929423636211448468999020292591850723941183599519219590704910581598765698651461146779092613103060076674099830306874893395939035150531214287742174460501829768712370602452967940827627426040616368124423398006100709682639049350442585311651288652826777315968649568673835298472820120869883234359576864193731332098942465203976670489185164161835102843806791391747152521192230258175948412488519925696416015935738081775971501143141489752678188130049584612688794029761124620578024335135884476489859845880974655657198861905963980131194170307003813113675650489970680245464463889119702698362784216970763161792704034546801794929184316656791196932910427881509283081027558968956257299802895462121248696427309580350760007761866361293999387498824515312902653778169751302667929567758506172217241383887266722276374324581811476697929949292961521343764156603779017665302852676498678027380174544332012060043456385058048824267904427306349468155076734384693230140931090237394495864729967345829598293843313012509728211747290270178031003673529468244494153958165412060887274709035877069339255455251111125357146412333019203621038013590966033291773761832726875607186953009992475388420055997296383936248017511103588767215655231395878292201072046835346493019894521903137996433656973867973134702398847505786095998251085525653250173504663861591589814358834678837591404561479396230967115452185529668077260837392473187597211923364729405615656904176053458954451304697825038019712187924658749580338694989066009763868723394250124063186265475137605191664226759339953054379038976239518641976420895879947488700559689795010429267808618024313530045292362443369102803993703222661435643442411638840766174404183136057001465385848275723076441783380534767227205826176134063018420089702784304296137357188765048263484553090421454498834273159490884827942596008879875404666641971707894231896421696251224179100054612646925401633896463885415037077819482245309160328840182098637121676037182141526679287407213837288555451754700621616988115397450854240255352691334344728604983246198267502523300716070560747646633342576760878358452907503392693122767019160912236026000683771828378127195041347311963948334090546729161633269250967493640414988842360409113394860165393970864377356411293032051738397374672522212654928229258532960732135375879618014532248461560154994527173964735805140475954922051273909850228970522786588225205110700408089917806107454050928086925041653758234022217822444973415195060226825743105519302546287137954447426874985700739017145367837463934345802730096187346714595724001245481806151247336324890248101157502931128408928926075470178907641722213488285186237329664689715480852373135780440154765581485531588759368573042229754035950572938654344584338825639598403553200127174914777790630056448028266256819857612424902715628561499950857951224126405450575472992465436003722398571037876556684086064088495870715929823133830472484621499236863016110035041970132263954659984909205025052715436194499347751621811462179700658157794892987095560525689790735596559693788714873970652584369234159460002428813339705827224126830851290476586959313690296613115180130483544868149312365013065897856684687243933564114336063361249043096408651861573293831723435242714857828698002235339772169798320545524414373953266223838468775880786445082674392207254812854774731599164094426161111152748273033014989071668185959633066043062810124500650027406601597915696913672628529234938716087035947628862644348992586994460865031179550549567149360604095548481718130398380494182940970400152181270972084763302744805688801764170537123421968842719972683062731123587617139058017266745664644604927890700173477687281100700766139061352337784384664939338103495845823893494350912087424084349787049170856694602988158017304257759771453419803795352233403451871897543396207984630420326643951990302468607090969176093469806258603911242689596909528085104129793178852007160001730349092182777727616815605962659028357785076896990245982346744526024986649361256844621405892929261477652235663795779742221372736801665199415904191264692799612354620374225083088970533712505531212115148352621424038461493438166951851291093721103802431707939150862355473684240403682181487740632392971737410153079617651483764774964941602046240526064521984330141679885396272631486700293105823823870291508684229893288358377684052098019806083853022837328866254734884080392631839908427954368510404016418099664980418268044695220436335267205100011348383325727086429567158798627255711895106360001447767883071465541739005779179933559188678609534539555471258877044443651717694813957338059338817608099314733735963455349297138983972935081600895371522116943141366673199881973576543935242867924644476360316004686683975382634534962023791661294571744153357613328778772177096640587181037204778116288951406167657582595511649281412087861533982692300443176850349222259914440351168379610660479182978860367624613284558772905641668308999991270141491405182572251190023700310010850569021983802759238224008067607299100463438269604954874230026646695104053387563145835110955285167221055343530484081543064370761913981507245509569826424404541192068742019974240324020312133963204037291399048809285595797075106813393884455977510679322219245921754657023711352599874213681169739292815092216856586700647941606741530274960013593543974318655895027963781606940286342922731237333774948703803634731739452651215533953221063988051557946382856996369075670209476753962663483265455155444046257513427199046081916177332142593557966476759447169919313137846259665507549042461654149384028427106128598705456470360506814620126030217644547828022728947098662795509271861838580982871330524991173915619682837683882820526899004784097633235917179113159220861875201481061189281779312341674812959436214785629444759336293259671062788954208792262277267423846395499814780670665412852266983761816542880724097638929363508027408913726810516686411463686371172947570506379533748418591681870323755961923496916970092140617562580448955621229183970849774302026857481025719515729569874948709786537571495181273518362462194778491533645593890507092300508252376833865667671239107547143118386772237647077488360897967971025341654999704341429214169549694225072083423045059603075732284512815740325615799814055692966330089736832509851566817067703741472394346080560059262914941970138241869383815411725868052302582604579199715872165070270549086699334236515413853121440493356258887433036307292490338979847392938075022702968867436802492360974534690760635068985369086693788582064525277580186629845400264928595682711898978523401951232485122654686562667404728610441401757819836794326904176398920039903203030368084465749101834496287796438151397144350972362426858192562924636838616321439434813435665481162034775341081311111231868466229198271138520056259965280118341616679677676900268890645558696327371335891540660892776088011660919793965920381037326981315520835158826250076078752099536258241258413753906770785053878514028743733934853705440896322454971652451637499774337689302020448595609101739735871236717403536051886959635617797566963094068627129293494063809890697007435646723108551432365138272586629848655729907262901933262283054390295640593793654670538375589803623279217186841574987894344731585284363416790034266326584219965922833616883374831782127925603391106215430580239901406974232994806983011127398143830905513020849985702193897706435406284954602119108202703762412873408424533135111229606751185488068411503425073256531469627068831556151921577734522018530559442942390766217777238527280798309362398298981057319584870835837333616838684476346251365667878295031553235386525346186820298372095523194023534099734183655134970248520611742818718568435721331168815689579771631525325857467594870096656866424679854188022382208883822073529767623142776255250270841692108452429090015518230752114824597895406228531899716661030283084904116590452067273895019122383262443156786448911376536197348759647902666088219381128892774064571800110818449204606002607141497463951472405922729483461111353907373189376283892108382939908177219411200627396517193008310194588477808800968218058491440632378759822267709618628812896422665777241519480808980486633578853167130290225049996865418326451416443673511356361094080305137664410831941587295911174373272752029179595932082509599125391911551845240533861827034602328381047745335804580783661735712281261613907525138141043901640050015120646895902725071373375628392396134644150397454578772524654805280587608150339590770847583772520794211482324848932017413789970280643837755259184689065999728715293962701148571742582841614283345178855088361235819642144551613755197766799231806677643978129285677741608590987766597113484345654618656915561763904574485974484763446235292315493341103404307646488076493243984585375849194490473196391597163725907153652853459585441954252466452299121658097732040080809174477485776647748507610527820434282592709399805265195530932697087925211084983220868905980460274951700015052226559075361100705334737290395973664626213977082830843937370584572790338363143803120669360520474428246696200875563754797704815893937039372008928307789509459677281410244889252369508393954925943052362050560939553735819860404026324976368385512988426342933301648039638832991717999384389283455155539067447374181209219030879064920389219517819150671588184191691247128068503020442039208254319174435352177683434478913473501349310864885274840507704054509181585664348680318363121316227623765880456628840863366317325636509951659669399271147050586752009782812067455168235760861863560153352438929860219826516949909054889930031654939359677258328571968078520390126173933927400358302690263392648135321599903091419808026123987841222792937094214776520126933338103964122665529851142250348028145117642120561940198273970223097149211154527048095564572360289622503913497732702139433003690842958183329977600891167070721968929632146229158554056107173280301015936425694058036967974629562052225121874175650523436936478379438213433135012041315398925822232706607494405581961974404684178819773956076231118787045182909021081612674999633189556515404237501727978597667341592286737432405001598517816635396855579011075699475839560264651694106170519707881139994068282433857570646344141291131892289999415193398995361930337903460466062210693434844065129521701365358588690316229735829864683455403844549091406313044577559549408708011674987621101018407873838189797639293613326855277721589370063889291074060971299360708347116395333645556652168928407624799089786039870795751503391178136558726994375804616517597724196703395351410458828077615541090820978908495884696206722376345995743473892079393191434901148411908347882282107783854563238727227733037314611408701401689137808707025321018717801507445809636505621839842932956756979258780051690487503158226943986069237854876471647346341216574568270436267723619588751951922545941522669210648441243091276580993913896985287180989064996229298290481137287575670119782478950283088123344485321381761695255351113181062584568344914377755597218070160852809068023455041261423089775914833478082169569706321806082227771999289621107743716175323555923655068297364465917889436982829577445339873482606115352781470491865623966565011604954698576041857009370621212416972847782700432300167834876565017791608993704888475160157715517464518176654899730991526316315195608346200279977513828323666281648139045982212209079662206430781436722705862959456630328627923893629677396944335986742253090680194721134587756066476721101861150876444819807689235042592958710518285217335141062879704520680406530719549574348655387829868718006393430774697760028184634000598343975252650321282663876098855740705429897063627199280523205500413489147801370169083020438090272162414340008626070071055804538898636880362782533351741207278333565204940266894463432934751610203177582089287118709683799959290261963719007986225480014566467181143333974545843971103083264944294254633785643316125529129872780699564011114081692477061332513379134428782947622828392886495462816762110117279663442046372378472331040879787621460374038102478417973948309355331996641467226860191710298897993851852931952829508408289682684314914730114880155013984927322992071178562906109447490433613743947581446633411962468024591672282439666533390565839824550697335725745868263834421174406946812008977045513625270494472288148696870387667002291697878773031148990642243360276159232826618217869752313154893770752701205329509803643312621467104968461045759349586300918330538000450685706354152520142000880712423597034381387933213472488824323475907858632339839881159671310611481759808617326569902968088200811567199543979424000128234992943682558163035946129617086051913428434241685921708867859701369777731349764038774524524670406326259348067752602714100770151844634262851479085672678316994975996137570219709753861549076982153182887599445653716949200224388702745572467520916542177780930035900270704093729787964701637131249296736847116537074879151246765729239560535221211308193563690997303837277427477337166709504951481376155966421775215304110203244918699228170339731948335453385364282864032334784984685859062350597255697995441869016484356367467281525501398780925117954575676279308822609690672293288363837288282109495237168229124750244478771950737151499353964775015262470090656982872679016367439714984358441002704228188098390528609920823413825186856821775835782558315011593859676414081424242538037794210380404498883542939744507219720960228687580924257982150113407193696860439190069750257058171103595109326410724624312590133366605550681500634963927434176058408894991769348436246402692778585188539347680569150310899363541033507236206533082069023887821018162273735100684165921651393506965193719171514251457663675640181960087528988009337621774703046303951275644364788917525137072493940664126765965033372083847820438795571134084271817990048848684122340900028140939645892612192081255591276819891895145106616192503168460121884548682137379155747451640871349828940868554766688545843547129085100917122758312978178753858790408140893074138502440825847665333821631177158792652184478658238654854611317667559703134310080266277043302147001703508574115630343544413730509144942884802518988697301556417373110636466197033075614801172885823132075677319146255895163649858823109652622451852327449607034255501938889652709495714469382940712723619209721251019761019884429437953604770251119590132928664323678294711669717068295081448670796139127694715781467894410371292893762129643056306202204341843891259886005709946183628853282987737904988276520274951568056605961813652629838477225135717152551114493111201256857366643353061339637137030704154083108558610973742793091835649227063433303889320188992728960390059947912867024388264100835192104076223195779449266386466509191861119511490612869228812425539251099751476810416626209384574218895908734345866075283179627484553109468222815719980849656675402323854599289537199336394331661857433122302427659522677671892366221743800345439539680081616916866401538972093575935254248267726255352653115906030539705889543974719850902803803954721518947337080878062849379376139941143343977857436546640467816601227122799741941470362590696601932449029556694485264469689128117344525510085115939819638053314296173449692898497164850134073991894362392189679137932626553782844682571643872774741474285093670199425777136853303525883191940793691843423492466110804132205526232722134259460012014291329735109954972313523307890598172062049868477764129542502260732819365546203415499944888360552228952807672804575183549218477424244994375604905310679932666277161873801623192625445230628658859128545345239287217421558936516675658000484749402314657398243707471745620392203895522794450348186108117559310705283724460780013664399844591455246389989638054611580902967547210610859337600139284025000076726083826314205966945459976741803571503571721313126277696167540884793697555784523534606956657522950736545707552289662559401028933828552621119990441303918196462521698060320558736516524427501827008613909177966014212193565728632769450689853647966871168043245451254365626582173896433557976119878943440262187108680376982647231416696323920120187545079744280231054126385589797512853394900172080449646017249699350614784881074773213434057907390873459749484932462542226477542369215002264861434682827783453899920546004944712911929346599234737352652220793965035735067364931927506895205524092888514703866037070960095464458068792993272150358681415943497063727774844985592692604981456059871968370215087351341073080483823785365049070551325972375932139372673448473869268873696176390055835829760686627103745288445894731938867875301172270324303454393406791450780891042941056935676465946749147182241789611826622006576383304223847342394127446560010965379269038512117862513001186066985971672145186593004944262068379920228987235064883114881372618489216410079711017838233068252524798241843820959642241253939937704785054300764528933553455940507271741289832270136303860854870308307042448837043192333053546696343495751869716175065131558078788896022426197186621028200099593302928897593766677645527446113102964597494011135756301472151534321150882143956073183502699981304459659648683355712907266406609266561791618761856020359550046825977172799901073757512364195543938605568122657580996304895671967158271077084886838212222055721452720777617927494185536291300908227570249609206391702393326502092920177903012158399052622283771726555989444788575000194831539459384994732155791976126869644064061719932870625667167827856235652576011235504622958416809528945256511490414963990254027099871241116551140036993263645271313605720317473224998766665899207536108317100672293238762499015307563236340357106587875479410337200214289192709032109604431987008468252279561990186993990872534719574610772279967114567575422378013129847482823107377784456687398774590309207091866018166408186848960806574813077578235038090995095802554495685634900816254643020482066223468161424868170805866536200675112102764718294474718548596530738557892077296765511013592724453326618626852979973965535717465022673958459138796194548804544419330578686368166717387138651238669675219858707480402482220859969752140017064519070591763673536043246652207187656083506237844757473723829656797210259759651038811071724622419689327752530085932563924505636990708966723671454867354865030191077091083166940592457922477438669323117711862903942995824932193754738788439861371308833620105532115741813732103911981514066508606677016465516148921694284940433844951758793338389002468311825302165176365978477134304909378433833302641806991033419794204454961195159015731406873827061307746109120979546421244605761976197665555859559572952534800714460629917257572898328282927971779397820243730291863446790590732445884448339090519656984571810038407457989134860128222206423779969996189841221949819538903817031378589004441801758930378620855740020226847012694567521882710150634069575375079111644387658981113439707344099098966708338050451999599484943837178342364452311989269045810908850920180781441267858685774612748001851318886389866220305852385480567191584929067955486049712936438166593379503518924188861100759715853196510973713921490113861496220979600182661498139224368405745154899303568950904952413486733541921745579168971523206151112646963861844120327252441718018324186623913117848933782468799555113858160221161183081682466112002922803159302217860195069322923236080098749066473126003709474472291231022358869478183893456134986522115257177144754158632767635079546166101452059744709142180647929651557010201481981959226303079667531042376150745097792993153503410152059132721235287773310225006572052013536467428997104608414968002208388242305569715328248309926798008420672329223853601116536876717497112069794591178106447949344074827603621690256801296660687644036897938897945208963287370734247655872171782184512590737700161195940576332723198599559053773542376734036176278934894567588488895695788453689123685318448339635985304716412910277570930527647790359812028189974446328289215748802797447673698636499479906734087965805429839837315755311231526433321077994774867967984226467364249521334064050819688314261007177728246173416641969162184424830005543176372541645993459932197329532385571406918326113167040321131278628451140943749117494258244353089573988578990113378739195606728315170119453891138681398893953984271975088731021923439970116924406922471016365460356522955339361440751587843833632428867098484194875570001899184506320749355224797337467288325281349375995991305950133854142376847150365470108811180346229934791810796146681296437342504946443406111632943794792606677710040978835590386372198901118630998935373392237262195385300022229271768690630425807960647412586338788125498606369291533785089802215776821244260988615538007664859006561585480054106697996790049990162283222091428668877898112639574382860508477235986180616583078564811911838917039393855738723802788603206703488592162857992393193139299763582593818571398251934604993246528074789059016691610897328272767662261059386151941171192069085325300835080766584057562456407871675302687993179203017835107314985533984502775582144326217011648427472077236485798829394982500294361884508749275888446585915925725116849134762142776031248196738410866568688814599459154364625736800822661229347860163799059945408271838408005384539138558830590585970524455908623511218502509034586431948048630361282742712312265738630179123307419971304720200536569577586165140004203288559164005508902476315172297031344028998895816929052589988431972062499045707968423668040373642972181773236712981964568881743998539975142986360033152907074625882025034763942958431146715619742883646576636957860231697644165217251367330011423870830213930406427830866194100081964995680455356824703373871259769724502997628828229487444323631789431164971926948770888974391994311356735375239743130581053074398746088965799455996136926739088094629490728023083165888880516739065169760851320512976278483799659770377169031153850067462033547912315793716753011316961661889154644816913598527073889545098192617020079524114349182162775817024619073462866142625250339157480988072349963295731733478471107051639747119584261877362896804530004560497399126698370034695943376396569973416602075975335414276788292236440885959026172810237260037696384217920619085936035353808354293503357280575645153707625693813310505786048277237980796922432872537628763557044519685341391324646460570867668644463439030071438545778796606777802170538434045828930307141737039511234954739336913680541378378431273861133766200442827169336385416847596383503881371343931292124524559510393781739771587450782350895284754552763435222536811797899470519504769511968800554467290956297196672274992694281506974874387686837022842235154778036801403877175478621724079074879851995118099582525180316043198614028599992761858021290933836215887592581274326443170520767172243436446554421695512501384488782033505281047731003663405443311695742886319560557379974113116644358051155121807508110444002297501397235980546251659156323668052021731054016720711058626311740666110801808759267424163454602827909683755093400523426347056023011851224370846648344705467926861451703612468124912737057711907787737930827041264017930527969493207091552104853973454184673567247056335492014492137551479658355939518380203678608547275538044756214859565627463709681053665307379643410432272439179629915120593144641546737884819099863315861609604480906506891188965188666329476997883356356769087315638436251875034977603350446788101800131919054024467738891168735487777770708221808662672257992442716865528851787192630894769005380033927558382205175157184741110166942541424219971511038857158484067269177074842443771331154545884281645890655888717201971318470195631210801775686870843431477170691713554225000805974223476861121826647874392412355465111490987171509499443496192423683777519771791492010435182428255973744024212740577510198298591513282941244423920944480823790028675504942172780686848096533161288762844623061754492598485939306346972451817021969430473549677244253468382222348480106584374270355644660159621065111639512236902709786765447360854903527272952261911958623227591832623474571584673833981190163085947771209705693283762946112591826065985493156417183279825349440803072646472027807339032568839880876233556598390383962080602138508127663416414737256711422003263234185664994186282719544751615664628817750636031817654290894365017462365846484497866431235383619196885354122376156819452958814385645675876466468197252384007013289406590692870098819406308446228744954277190242596819242218177791772701990015449028246982952901700803919388040986657799043821612629842328293315917466462594496270766837278210128046481929776823488791134180757254440491175599995917546653539784637159708774690342831445983517388154304637819854248709148875365105676386556800460337879051676127412947874621223026114989165951274902046278856999313351359079813351966718981966721787757824720450465377607476440311938117263508854749820180793193359081323274396410406721867343816563950826203693165971302962584636773581304942219319880152273596132550140544244222215518018714526836515661268720843253022405099673609930106893515155353761871410260458533651442586132972235520409209561153956547962305425583653145859543982175590129252650666191144011610414585471689614922357235690025552543328193105700112605889136150193875036482253273853515036829085445857035901188240257491985494315692170462480354923742502800715565304703071624536441617005947902567218015981649315567931378400537581508075690085474625480447811760597867891091740972516051316594234975681782093985035488276498123933897576166847479580299367931894286582009949644893200964395699996756984853650802653292161736690590280233160022771991023116224773596819379682765340142499745456606086229913895889493413956169740214069677676158212562648600543125067938416133933209660108647784023842029026449671830389490551286988102896017532859113718578891982591316136940773373233658701839369301939700558817012719009957660233988503150256332985719778566255667384952485725009815100205158146807934458481867974060841584341465523088761009242021826885218261512907201810730323777417761693415778341361210049848496101497639039495918960103744430273709273137639914743212792344479378704785418078374348558577211838150418800675584386018511946563334465959458535385431609957670840097060172773497208941552921008652677275204627845210841162332838541208049150922287844892350237258017879992065516582243457145625591894042499223175826283322050560739111190040331376748402247002964070704931211517743018560862236801043907573768398438440395906848502237657779030620655103525410869793205288086815737743889491661875617984654826637566508034054090614159599061949147992916084005767158304179591643481922655523870855531942610025958272885214301941028126036515051875284982677483476142111817558796802291773578019598991177321248953119962621926694447233135382139119166722904285478605012654822207559077874433227382380599567083569603408557663663868664662879686692890743762341454691964798780646240035062847916418580553949052402693524582187331851788171049445677490768904771039795240237862277249380427139560512680217962848140019079439045245711824631424194929033329664748456798588011765578924915902051107507343619074192134785698741681633620196167555714198821364168910992158256250376586225991881407799776021149361637811383791882660256107546794289639795776717464620726704275519040135722527464866969406674917310307638095990223362242945388577142026161574603378255936007726883367827317134546298590263293821854427963588976835719089348818711068508956927660823268910244580560571331678088096114713154351639799855635990523006671031696886522536142596091570378086433582548476797427284054042034661383486904865771404759058919356457140960588823164126784324178155346231766649903013640765226016966476610872134929933063377186721666612650232378893962415435881422025564524575130215978683588355935603792621704695089358222244565251494909607800702156863961288048965230615081047411953124031972548375984332656291032079777638012034107983666092924106954628941375285919420534049188144671718409143499053173968117859990321720546963880507373402253921411130684958816123402575318584637974325744765555019949269336526229845401374874270401076122400639971622295973088552750025423347703503674024782445402914771229535745166461192356563802733956105080406958843539153646172603754967052216295463010094067014083629698357965868394868686929075869157300552616058408051952582459827993856134830008618660605358570170807136974948008199185668282285061355627294841403203787978609853108450939625427117340552855053890909624424349302795587269754896572670727905247585684048872407215195710978592252382779930514198484414185028804314219875638264383779044662393272133886495325346959192853348685886141170769602214345681090809544248655269879702597626484418146324041418015544441986485188397030805725238012562721330663392001331630918206498487295957102750838582030782086475272020693611915546014051481480355633916489396544968506574753908588215370077175265075033804444507957571081640281110770591218325911116988202165874970925889745744292328916122912145886619108832561593711404931850284217587770307509333815822691924143881388047770975655501104177843175003458992022342536423600059801143093576117931743809671081130849768046976145675921034841745036047056388706901444753503382724542400856891136334868199309280993712808027784405537526758796331984939921852701187421961543497912120230240460986600141164447322104431844300731522303573584988080411062036822281647654388464876764753698470401261814551047185743041110217203345584776677412650327855679482461780997785727114310834678946345563061279622782784769447051205001714358313617995420285285473492952710956230089900550938936577807546243964273189128350010389249741357235234453802355038498752303221249324753817765731210527327306755235893634894029238252919536769090028194101048683537216967081627072631684486342539471121378860983226862426930435276902203677351832005113818705837268107664880538875202076974352960491682859224856213408446271081126474376283747839362135809831104250431310047420579612789426703312880058086096977291971795181976926469726085077511297595241007711192474736606899562580278736149833325906565159081849223175853159928499837555935425061003981503093533528773542042102279635527535498126685269254441284667738425513395690846009375137873217400877528150015821354020480131725799642778362073630185615105908672015771811819213494806653864757307169342096137624154624114499191243978861942421425409959654097239398975838580166419327744108038268663189484163946505376932051838497896795432286783215989819702437102590088511599860951250939103832808045043152787608835559628381373561887048879742738555886188258613559101660107071533609145583273994123189110367161393290554279971083690137596168617929255508585207061445422943058508658191539106167394375451356421996034098149978188253595917073941986116239256453539387560452505738518073927016815829799760457738402285676058353509918641037243094102313571019692427357446643550304388925860301185565757231076462649661905921331208366976657182555920882852910972978586430719685597981404086896146858286452892764054367738071035441898224608320852789208643941164813358152123518332908670125764618898396538382445291225822581631983604162202486109275802240380012979365273906586032671316288631763728460354611452986245105922925241550844232984220458480235345010291824485725474032002670353654662067093916180114657320760719013172679500815214952942870734347568149518869941805619981764063354544385283648513870127358261937786939781811730252129446286946443218838737108739184127130934493507357242979736280855298954291650343848654228704256091965732477485189890359107520667204253710013466490767122144264165742177856753445203136776350093071389360080981303802401679364111155286615346864559879510763669590943952813861577388355725580126032986835691200050718909124521871037245361891198107286177246528927643523451262440575788169048383411039857098906883437973627150196943318919830997737815560260190107724061140477320260067605801349841201555521687139682034554155224517357536759031195617598789612512205151033507886843739347177601000814958559539111578000358032539349112021300393453625139950591379616458266054457446428713270548079134303994261775672097080409221103431566108645814995057159015704632770239955199327034723649095096099950766237255639844998313585946799046134143763512439339610017766974950803139448505157547854560328410962999492881490230791168103033623584603498915201727750118115384530921472081222333451351929693168418873970813983892167038711737033604135562142975122428746495192563465481978227438826358955299154358816918678482657195140548835143889196224521406240233952292853395675084519560300844738005528844876134406247764579984154106142233104612084287462166052508532300874208352362667240179866411923037990398202641431934538374192192979601707317426599250388480327051235997064892332227735153248920178345169418120509464940812502062304713038718123557199873657596685713082273883502704360889882584305899160774800905805070869919676425299110126642575773246959980065826011066094156665033315649556002037751651505866297401468848463878987549391875021388564103259934745392365709832736434669382965980998158504184467838651785448644142949282366624577555962467470734096358232615230422478506344064013860683972951925747565704188276337320866200393328603754645156322931998553113546639272339166242481078279604293543981336034253578024952930897350316328853559098422040823746497228569426754902314879207973896599862804769078742559664488846860321276123905464052463545578060080087781135010922644531410331976574311394571973313647810631378638193804442774065288631704746880967994841790141195442947485815585694332868421558439068048805357341525513345789946713175863329925062713452598112538208270107128889237250173300751979953883082259473103235793102223262946739107589707223668283168794048967338489120266113243779092544170823954076234730565041899095684181246142492855371177242344110373636825006579350923223306249717220817125403008459328232293671043530636817050779250026538931059157860281329038648457480918393143679120994746838171685211454994227210170483020346827412395626346528442606474724143498833454245483858147403818236624679096076536130662085484229519644355137380550401109195139117883840894607632999954269177692786608071966517331534437753323567043521814145362806646588531591875822492776783491888255970566199042751996791316111520437814041835499817557401031650958669134601537286490050541725217948790693202003425751240047660668843357598268545280712673932044357175636928791803580967862106833070716075957738937375408905919771108293394239102978019396825763129423369732779085624555447062623963887850861976839190804107752486770792060918798801986944712920214344461106823446224761742736353693415377932651275380284926219148346142171889113688306627878054881122473279254623406020239958858258309021080250068037503400988811525614511966225295363906182631707816357056463505058887751188663140596188503615280380425688387653045699558410411166370477361618033685024826476843315386334919102187194875409684942493195382063811206086528103358339322345874204655230474373865544692872986581414762518580187433613541491300671794296311905492515707726095624530390992352634581566332527092656983229224557295876277089154654586997614666469256735767573044168027790340696216136702856974837602563265616773874748447480022157113927616860000082691757557149876524823268622660761014024840984521187777648888152951411499957602653926980814045684368846231983542282421223651743625187430596852879671192204933201508598572260098632382779591610506669801590097383165942173919978250635397975659132879844401996340477662906508022255014281041529030008483482064820159665799956783012900803093928673466669534726543710026644160423158890318720459682699336843533499474556627383284825434831123136461970807885735072696384561228920843308929825888916715350809565244262682334098162192322216650873272303052916183492436848763039532724895542605005127692604344566861185959337103009491474148489518070711969448117201356242495771250880879381018405551556315967465681622468201418900611022207789447357953733671913825380306181819175368228015433929643870324489031878044972857066600788920138629572795173110661356982901648858807542470626127693745975607953552114764953450228263056490181705574925541061240238619454878141589369258922281114398207090232489206110343090892112975746044501278416964431197219097493402803923160245408807562358447607027182144251372193344400919372146951167602507804898703985264131888824719393551122442428270252825287622217361953029397391821302642418452746327422760529290954977001614846573042198023972942971896706615592847023397322037723387210881015104845235996824492623876848074643625110957046356352220705539361244943793032347428653338639503855086902285626374074261698957090573943941358774791079046048138395468806002259988168846830353234137442109608423353461515034374838650928372797183595667759746744824280510089502958690465625726881909226231735242358960951121478537873462059527108236922046192533975468685643475951711303280613431495682384253994918308122998758178972067562110166471963390972150053162606453226778605943935336193012917568670749675521841818714774936998351009138844329194290038769394559315597425000240009957989307991565580893245724188419654317111565842203762519958441434643438613110285395526089484235880547627274728373119585362333185649942897114325120551711675645674297768525202386991187172099880733184427764171891488591744193019459790692407205799026163722382499376764816031833328284577961554510045013341083759244331587612442166570631447780302626808327117649110833263132360229733717187920972718801465495711307838907863421167324077954725140772776802382089627205351188136406603069208289153435246372685246495383878609800176809393499807763129889433074037806872154596358874199809355539847001191098217331135986922498112048815091737539958702752855852938303952688131965083363661486261457133525092502022453050613889172724041503581508084417616423588506764101426768963038369539587435936627633122458118140114421890498491390482398961812471036501400859709421045576534429160934433023235807103380383328005397454603511838568155747310968192858225519642579451197931861245504466167737417905704272872152732798091169046229961626844717614818295184420742445848391132478465636501977079826384884645069847411058419509550057503542985566267842319989310803093757199771585071450240240390051763494849717596197927827922636012447096717752931250901476421488557041767920042116516861831240538273051507889782161925945852526880248861527823522954191479649117673097621559997009554419432595036139370932068169429615384385922893783968869690410988131694506052118731871002660790986554368221671543332325157852103774567268332564664843062827015934677700926188057894799928924414129389727896382580571559480819533278642236673135705502517428937761221806083980328209887386383813581824059338325774382647726551729759537283179314909685558021165420445480453217657005348127039231884610266556629591327885451752943061712157696400599065228659130348489765685941261571619600855831575737484612500819244566027975166599153994830962872893190421079918795178072844110456218518629476634311639791549522706743493882035300994851353867307947585462507202467227877412426396307836898433552068510209383614048572786854252920539618090849235284521647161552006969134909167720635777172413469181369046906386875221727786900493104340887317893336276491440602232853079721407072344550998180838958984691110863389979181091847040005533865134392583796895756986136273824697277328041891879741741295797865159133951995890582770310165823165508186018173319434489610052174304221940015982019924542043606795083193873917047969233136719476780971031995235386597210572851692417215634414469734006694357064895288096081167618885917192464102731836203414701094189034838413069378299816837952017284802015372579254716284090957327091979238744849616461901947155185469208133901384278056496940916167028628503306978899271939299778859309384826858604820074725214695579069650393475937724740447095465518557607687243029675538748694109325189832916713450872726472863135842082385988178395455405612158415738927612200330054384752462775131496424582436446875650307233681407174579736329117120223498339791089892769424932734962536446081896756986349650746248448171684115036000241900327934482364338803380528520095998205349699881199685324191753568384441079799129214449468432086378948845042064554465418058411978245592524638600825675261364815011680939583030869845762087256295261381446762962175749988669069328869966490657707000005355476860191993185222953400964055680316722430096229057963219830873836179199649697610689756548638083602364111650284492769951911581731025286721103443927279825372550919860491474679792471845802797378982129882561912949332512441346283656853825141490689208138901570541448152957199893185947362488603683123891222357368852532519158986349988833624943737599920653995118254400571034121663990252485163609676029998473473998809422259330224785402837381699391861592284917068907149455747732207803545372867810147508234517200997315426254926224233413913919189883349438814082861039267748479311944124470397109901548676460050185077250750691686388396171515334400415381461411066722147199808230512972555163684555413730732058483448242275239035933997322237860482632188108382118511147298447840265669109928682152878894702556298742486295204096625110765292807927932077661390628674261165901445538196909325523424535162271862104064756646095893202952733337605536238233769825162535393858417580568895501335105937096767869920268208474469189730434895512035143540952455340231230436253012052187925817757950398723538086807959709616146682895740021868812176576282510102190381549927199954100031463796093728529801634744663728616546542673840087092757758143619681093355846508893581444198743809713330957139479492651178121139635010771115438389282252560497314598245489483681777528126778831850238297338148602324862049261908554121082928772045971517080915659005205916785574700939943439005972207807539681379248758760127049048313049114039408859761020652334993030267973200928411347723303607667157119080515502759783004713786729845693869058622784949769914790760121130439950987834573347106328333288649311798674064970371017008332765759609325443599301222972871739459934756561735473692121615957578712806257583099870101295048399270944965070724250913839937177868309550191998790238606551260273621679986317246702740649429033852308480138957959999645268447893642193205087891122984409382637667147031972036813300243702495391492050195843019149281937199806456376428101411907702368875593818270303911490030538795180625445713376559017527473595377576496056184614124130099297059425890558343930086348228643183451310321293942076411320354472259333725843000105831646072698224243568033456538912586503615747222107525086872423792251242848539003134246863177517359037733976354771728266270995649376862590371243655182112666146536641637494586935756771617731454039517183027194074442676360932507111722142971311282856815176245562739994990374817434434789039926443875914760459085329851645831756014731656103385435760724334981277329246586893126571089626233804836933042272438939386607390046630560292160942097524061801610099195585304523857095819605546909984738358012232683284467087704690262785282037033372997976050357680429413573991744026198073301386475220537405793541486986716803393339565037151473716989749323718437856631126605341951355317412656232129856487330038027086667055874759174707542316845613007863452629239275608443746486989657456934090412482430598407668513977874939747407856178745009971922485790363910791747379553531958905431142347355642786703364885760695219717303003511988016772410670541769608622474075816175849856151013026439985403662811241698516723279750234480035103468990972783331143655670421869151291794785796830319721974887157547558006006430788628106937454376003321771194013038734634053480143963927360200634920653776244852277410083665584231338158065882463929052396401117046112923812113910108513582035169797961355312087716399488118205982459947638138770922182889852098707462176134837604595539171098639551387973527262699378164234573949615635032115333236836593768722855486976573457693211998055690582023799342676308713035946954998893746592172172889211127254144101702295012660431305690674589102939517795554093338791277688006088618028893072023804946889634311750412870521636516501290124031937855409665239222761823062037635963516452465785519225360582630011508151958045526903979754902708965901265032818524536797982863716108175152317265444463857426335755465583129517990027948571321429185277916968041483877055890400640458782142358241225727923418356385728755357895643337549095598752120577667115794929972696889202134765478814809220159678746603932195847279017481882785010766212949467864757519785460102455176104862004377661303865720295930015960368644822848391412726435430439401436498724324928804839426026167191008127183457724736413633581433299433259690139277492672812126761773374285320153802044873774536692221512250499308117985420571038311165018752934426837631345763646688975460328192171200991727034035965679741529826260462576463831356680297480872241590137091173221028229985576424000690288456643118543815487958354678498476018105960298315950193584567901921622491272883549597066118161126654155503848524274096800300049578967768625143199548623498166331869448330005129370882403566510062805926876910729534113317603056261406953549058403047158808975453641099038785278280085517879279036295055321231763167419139992718759891504807976872239812758972627731797226234152015995328520679411274161034884235017835951386890193062564543503326269632966383782415682399305482490494422488342288140704771141568426724733436805964771780028302679418882942365974140392007504782024562988284644817523478019338226176719877416516147694634135754065797664086491583165045418693659396972173419453712173552037846762008995225362311537671378167912329465434708162012476027156300234558771457406319091519871524973149982113153857869833148012906045657721354589722291952083208823389585824705836904776668366620872797304716931329342064700403422641755472312297094155864927494641345244536599138970435390933470274853126133998238028480855101089098514666625804180607022830678054428796052993754058759272173528395733861357292403459043162447491191712792056872128929919111118629610272465836463600632430261192369468064169369263626507814140656451828096768618615696567936690685157652652520847634095142172564780772057279429206631102780423492688925076264944216940176343810286489113023942947606593401867133466653991287333547358212370962897861312041049364637133405086711626435807163017591021784505761464757381955501430814774497685749309989646700394682255505551811255967882726946390245666531898989796827335738169978230073776699654971482062175499160362076843042345169673157644139558860456112731718152695738353117899526679334358246515115502184974216656928029444589406629005800207822466725802527811361286633780061524299609624525476820526725896822659063220006718271717697157278412933146432772907758794139747144354510294423407634859295162095434988048230860543172477304857991869545849323204679674149791066166180103048960839477130088981571767009964375169646693520458873582076801043014605160188015369921789677491495445631926637027390958469061176277865801930581780694994656854655989636839695607238028507818082327287606592529626599269060137157336040190531056281096110245373606517369479299251578990341676007774061731364941057632196489203366575953446404673547798825335954449188300184995337025041529678355066897209807574894042575635818859289871332519136759163031409307250523673851076693725209382498072420996695916530027377874275288394104941316779868238187602684299357731472432068228933973863721792628946775069364493093690938372891823309973888982685166181595459333843738341585653615939793311916305030050349248082452963988970713891284582536591637462931225191486974363918241232917983747209783222801282704305132579332244703866586259616240539170293137505699816657543895870117656388476114356133144709235137041151566081531679738574208894923998326898313424470033561183376351800599617744606542050217745485577655643523228971624233533090874631521387014225672939008049449949429561965476276124980161370188621662298116662688728714655698751273867260694786812024009900992018526364502691455392778108773025042139446373499184494164843546638480913974102904642669955941366441738600963308156343097370908189083143181551360774861243988803535651634893992491459779329817108771581359882890907464616523581934489352347541238622775698661653476126914836211757795809089270885364577134245384058178161970258623678238874757631765389549821022785339957309846812793257448351612283047904391059740805183842481185989625804434957602550220349834859745966620048915014645329532413424760693224818077055496648670321122682299035506475035322905617797766328029708375165984420852638697749483864275216106917541418803391025550980150917030521940302189102706249968158507803062762096715990151382847982614144559190826345084864550632465311314149073677401860207175048789052717089386510981968270554599089169186536463223606147378540338214088696287430240850345473793719941933421560491693361624159752657381686990963155567621767228247418304332166676300704741674929561139671113035411277654052106085941982765319504662517710721841589016219026297607730416416362426549717608673654691936038065256611591008459089575261668663178740996384483045824538429684776104649272481684123596732064126654184970003481246409218298162586376471253420162388050867195790284998154985882162522087819696337695820895418234275311317152398364448286074367413772193592013326343642038237208858583860473015575301074775616888464149260780677742960511818710019389940004494064190526884164431013301687103012032533848420772380871675785718020354084588865042551383457367105095894841412580609823314035274987223840318497150535523114563075256640595743757333537831672416942653213940697710100913814591783602628206908842397722480962193455512546334452689195577607640636083909914646175280809971800489116256093836251075413023322956087683048433609050351005859269057822569376900784948922794130802842504196272283411217678171956490366764272530061047550370510032975725592646754586295502230995507602754417508643201707675990394440511429134370724400763632435655984921005099630239943332931364401735685676938350092393008670866862448119292584424319953934422118629636728170955099899921169360247565229763935221176436329791707216167849427941687676287777303144442872867855971419369239589642662545361047517312166558498031680523505972448920303534217719606600392816969073666729662023497027769757322429587664852056195446365455425299304571541141029939138311116279526258625613730343911940985557640498262532869135690761787907667306962343673464106887509073197896702842819390360674476751421137088859129111651567567765747948662497182373010110857382130846910086015132404946334143280975956205375204968487455431104139284465960382869757830904516561180858048330823563452031269637596493561938303085611040279034538477740337198811904850214161840793159149915269900184512615744894376218523662651222070955239084925570197001296895923986956495723544663158829398186809210059910123829578737015214584381468502872079355643316658753503318597569503041491780985812349176796965345487625343247417366706698189047697490266301712054520226707147472252390885186195001458114642551114328895879817242638656440938422287512079283959150682584149064484424049282722124150420909943474724704596641069458550053920670306152371325488064970149109330114847028548871223811650551831756754322583711204226317279509322634241672391126769039430543729271852334851901827628467999448262023742994382691814386782133900855470108302204092789816323437599432497452208195349429822301152775017317858514157993292707648126420415675085357403346656342393483828452765941885147091086190513856791502505909814429167782783953288140550441414737458626453868725123320848544395735640384841235760490309067497858612302922490006292316236580732613700189711942667533190354077724014647907593802494029301412640106003495153929946924370125326550363095729320459077356126699393375540203447090962031132437664291985668547939037030853353304462549656715432173771571365324138635241056089071274706044529704070483960867280293233333159118469642064742412609478228592983486743448731087456025740154320777628335931440541001491268927277670102790809776320581379229853437743693709488023833639911598866036230625000884703816802680046462276126663229394756509364032399441694761211586704411059027462979969147050947581226754793606275523047358537872238084467214511887102832195455869445108196058638246776370997069798064907351960575064905594971943304389876155587862980123746024534454115816618191214207486969169288727670368098371198877510770775542164584283905956328660161314081837294690289492256670856161566986820074061279502518848855542852577765796428444584285129035792923882367614031541542139992425774571447333867538807752157912670321820432820207482156385686810258312314890408110371280890129840399540453311978789754658417773712067492574525535723366491604418009011930164397030657038796890447355516192175560068012272189974556212856451375397140700785696115490386863340851276892176000605888489774718026396002601484862745927395520249057792437637164492098059765550686223304343458386316903266799341898218084900125290694989289144621394536156575972793748817461257946219724284275065289973193820554611314166062847690854786039593238423873419072285848351821200412746772538974779008420512386136475958557977871443634548627781423462538724113724180312232802756061536360182508423287660603794297890647297683184384957701153136384601421133643964643143834920183031301001752331502319120632664089208924610984312595973242763462489207618798858718199107384867963428432831366001276855267992047547604931304158695478583947599740425895860605491588331913741315001209238926732099907141680790062748911961514916641520137615610684287383644235842475436943273882846138259857754704406088642030731139153489765746310277836768126035070334841705142193615844297802580659405160146364725864648914491889573708333684837615776678361414868362280611020394132887833010792749191584040280581948151072695316521893189381061893032880259737813108468685219812980455554496228054608224864436318607752297389267818261925897441115681996119931655326520912496901325512790892190379837889047684981269114273665980716056293086969918016902610449651931012266315426924511275578467034529735019608886988584518882124291040141927148554659282074076808618156142352060516830299047927245941854949078331322199979034846540128542299471895214890698065296433155302954736071759023084223460878223618262529685124615108267423533697533155675439944333460888476608511660602269539330222884055598747563210821995067758948742017383704548313144293561508095997561288736661956998620802534396916403826137487945765540084772784460665770529168359382524238339809144663934774164342516989326350286236787726664294172199646620354329626086915326691770862471094404130442452617565531118341451137607396823705827418013692236914652215090194841516916209041565686347655334624296212160422066671152356468280696078468530612809858660769101030554459971064658304431564010235983510093751785843456358945930963201802565087886851951315379699014040334709942899548796885479759737713857524613635060267459831881575970442890463393444944060796295930410440240521201619930512758983648590734439996540494476852421812330609247534522860469516840479912006290852882721836335233682434224974206973847910604129713720508485116420607138264973823312554891371904850060485509132313314047662504232165384126844859695565469767878629206356238191258421765124492520545801866469605261840306595500764039974981327536989619616319620748188744747557146835958573803056102654145444448132816051686918686561687423294865099947365456568722006344441876488109255407389260661188477876081759734013398131739473423299111684284929157130041589900843855566781870813313608453435738569623113107776890739574474694511670738861695438481139590296114281432261108024067666238554488748476105213305549480465615898807576380114627158730418873137592142061692410016053844455931767973297447394264661979517392557745979324188123154602344001426045431146709254014169418794972440127128239027197714485519296269927806041827785883126535558572163000643647115325291499265737641900804921358000153521409327719812084144866683822005804664639335315619667199682540011309470875461533999801752814530225187023061239875042831670818812865597550615509406468226103410729311389271091569325696974197509583727976332194636094925933352893370040092156285235052132533918153232860100656434594896889511335342557775983444731362591989846977296769605429587381612369331097582633362729644237247017149104376685636915844390552625911900585525117419798016401066444953970633957078840413645039251081048449419046660558443633490821335400804579241718727993001046882637056839189988410213447025827960937096743108289847804696921928261216199142933472542281542677067219369382367435192015458877968392838155775512791204782041349944770960454551802495874028313115160400042178554107651526089298601396222511435458726078059177028043202000668408703453295588867637179405947075993897579932798489717706814763976559971861855212561091058059953710081911205935423884551308071332512136736924560003963461686607981035009737492338393136180032694748286304908772486449624815762792388143951816150164305800938906661063829222457340910378017223032563907337598363877238146367751114851133819535307978683331624929816326966615660562052581722042766370719435535584137509062119366356230331572062591986445516198519702509308549853293032538686295593024957638930454010088990740833400202811379355057900770046586886358312336037743317408951987955454954887830182043040655813490023063669594758592177987817903874364619107023460754568089009408891409218078898967760792587529641637948146111162143500491894789064972729260428811431422208065781441556363533569191144926905719903267652304710994850534227546283918212761988456739184293645151877110688433193144203058368140900147435598100180338085823778605083922930609274185614075995359638228566890256812252238535209153452264216908007794693739064809263410468198315011317857525373632974974519552463264733019259115578772493006467321758020930800568575180182928519787281273194812164743629388353755047631715826591300236541999191876217576144508985315632229390241703104897270004445381820275788907472508789535104417676671505045612590563358330078839706310541484201574808412535214476970094706685976390336033751215505308917496893195822907622472017493181745954334352975307020433934113183577089449577456221719103095031730329367771709697513949919106456304852458481627208109685688338614507698495551603318216645994208932450439580417340890083254585404903556592335978899222949900207862350037105472660363511891577088624769513817612973969161666660679240280989725013784421704927844370202343045760361208793011638233447602913451289745988644771096185546784625273357773816519162545664042150374007558104469062947809614141053376022521274788040652387369709330326229567281051735640829904030310771992017017695590499059815460636487000151808823648309731354285898266585066073733369855701431386699733381473209094896291221755764791068750822437828964061786168399320560461094916182900368145285476232313979026051665999492973487200767625681201283462001639252591224338924152029360997151257118898773570988361513893663359165422352493625561404727434056604752332705500725054400095360499557145177279403865278678177961534185879141161566949629387835506550312208778016576808604211750143753999158690100893596786234354853861724272276737234510418541347140066686834747745741753275862242627283142210979029125391452145533078101868807293913272436767223243590261444211748548809237798484375500656901085194101441581718452672514625607692634670432179967205917963778792722014920303569840717112733730444650217799257973488376720542539036666585033627432697123018242114214326674373290081830838333143997032439311356743260514777109186004737642845428175739053278599387001004352543784778030020516664820073919700030336450296691163889965354994962698614399515290872616414908993348571157906901048933735712568728115789670917487024024799597318874884335215477319457673976299088713312766073078239816013627751367305537049498173370738470139127676684198721396914708830511314028885251598971566173308421115037848535995514534409123039011527180730784185497201614435080203000905124463869170469896501549526791494288794406684775673696502416620821953217278038042976074104406217002884241688330414089567951097399741698157458761640324358140598111189765199458106089175253325347686851828097575684510132625145682314564222483561100437392877169670656464976655267510855879182275354891394219196161683426405449294893385990875975097934742257234408290783573062243489766008738414689715005254291489734889791229290528344862644308796652600894887911028482032105298000708065897629397412146426794056626968265931827011198953914899843567876603273769818832375761305603039462977661379522238790277647043111126517495639369859191361006430417970032700921121072464677961660378708986076480764468317699245522675666401020607792110518246431461604202393293569490994974674067752783548986012272311624843578522739426788858255529925476595404307386601981460005009080260638164659633939226436360421899568510359625596047264187818496584776998304688527818899057503637649329305300740588132689432417601026723637502547847819083159043428386772511876558347291374773140635603083405339474106039281900244716105560596752982561245798176035661915618218948761798082014166874083760057127393355376829565919925186650605571779941977220007592795827865389141718258174614617915524144167333638872753397789370571829133684866180032058949573308398642025788306225600979455548310848393651508432887978085240203573469131036985309885476906689661039155935377627451419077750930638674147563142951135867402901700934669188845418851885826814142005197684031065719182713402919694998506429853603485154956494979450338113775126586135334864291467025376530225751013462542867524729220637586087136277988195767905478705279319602343545533729056522305041642100628377165255022289807231898949533580346857712282173160659129935892584885059176517814557639718310949326988307848050767897190331740635535329588485832070097204259417010262639563689642528306463315356086704599610196841921052240087904104552238291715208787383957561693876361085202308250488808424544461138392291918218133221848277361441683389629323821760357428347294961866512355804499672174478773648819197751457234892325048525709399518115153107040877363425284894095497534305014543264671340528752364736213996545735005701857653160398040418901323574238521808835576093625339949583789515501640168182807752103188121852985069772156813162236848650754394354365718212008837026279522030680339253042721150351247126995095504746749620007517672286813745490203113617833671704646547177170845913283340818880065366533749471823649998109902504122375290312391548659289571880531040683700558930460065301485439119972254726642874843287806079290240568120502089228745006804801597465479348818333289363839864814807808822976357876071178098308369264535683111569536258667800152254125811850744781054354018352960998167288675578198599628726642230981691034402201430161995746576917592590953915855144742782332905804430494185127267962016032462542332693457794818786771646663754248490835016371824431130670260322128572738055234302959087678114837617566922752313083444675286999625652950332915483236676176968190198201409321966467503671656434706496843767270107684374249742530679670661910541912752544959028821177416266973408663709124730650122138865553110212434527658336482478196574329720136549602732228037002290473433128407615143113870545740291776169305705806646493736507487748045824604044362706764686441069682858125969865355251935418153268085728319953707971234301395808872088001105831438613557780649625558835693688484695142650242639163957614029917253635643187513375072936806271324535241046722043483306266610852898073665469361094528339845776828549281155607489555866289990579208862903243908758609463897725334835303853570995273927727679194609948454561720104202125777508802623945821888825291027592674103861582945036774537227642501938818476903195342724734361684399751804495976494040518665464788995599301862587335826168077607311411987516057926437470154094063462632675314658443307851138501082658237200992422659651743797285301370990642457218477180533032555174282894472223184147545756488344156455165517328922908763327420801420951715998275917398649775404329533169476011069732520158048036715599529159406373783140102235522424461712629969864664855296449713342932999363267077646109270342823342609248335952465770229362172786683569307824518778681036838671893687147106880625950071316228884981393693979915734972268772463904293936550237280853646935101186548592090247761948859521287775556604371927209317956446315678584860038553998050046395135613170871124873635884106633898776436784711141113173256501106749931215409454235183191464602542419547961789081282659486845046385868952047970027093172646917812021479231888000926085288711685466507514763186677373504367296253843536231659504506410521866516170241846856452812894556311580432643073837888656193702091707717958161115813211173810964833925231065884230261125303688579209933132362595031730552402696496301410003834036419550930915849804871656354134853424331177607275102353166802826144335098741998848148801434407272789741271706691271926538881542270426425381511930478497499563908581133057999800667919309232932544259488973823458827891025040081217461768133641740456443915545728158489472943627919477363046760732615822826194059598958429348853351525014087709882020616144020655657215730539741421179633513080291683579490919709773532032876600400237165335331278598971681639606581529178146383835407310857799551494880608544381960586616815960939207530914991586297602250500742936791263649817757885560989531165645163237425178134451264666988729398955904161820889098846259906253037394550957854239873085730277919595642204475662408875148956102959471800195770672937127724939759225260898206334132516566880517107111523960058181263387474126834609551411043513722815074356813669956691856027409130322338324669313245640741003665603922360572053156001961678232493217893962192923281246371925666096964230283338699349785877500906835723388126640591254808675493461040913311305558506640303055148677212376012649638415131926589567823198340178571947682020249219018155635828762505344450539300517395738858212776546348481980981400444974472593009160225242669326953462905326002841857401551683632147646296994728582854689968842130754266827371347207681542515457128344189042257328710719941596874365825975673339234873828676971355068490316323249861820130150859704256300808410438119662533904833508618331623450991878555103192099770880773678351078474871345641896007186773883523674305557051556516832328437421390538442416774745825704320018675878074904096139820074763639749084869596116532158657577431316347519275750026986154757350125703525116016834877335227904266920381793679136791540240574733754084285932230110180160409510967850021671236655547187898856360158208559007949588146178814345026764635330501108199674229771558358140813423845879962903045612433416991296115484162708453345015354686682288816747952726715209598125424093158148014155985151355865550170764233535608400557088115720780253196987040911530930666458175821824863569026958160903951012621033897805272725522653364473140987588758976308194530167318914699656607109185989248740237893243671463955457611379601638931778938831322444209654584771313971183337931719115535889373285393588241117074897053840057281934494221353581669206999678477574821084137041753892471621043833329415138189995329913791360470997399081399683364691446915134495189040844642092788315995019309525509216229390264486157265397088665867224654106927689065139451899273521534836202725353710375950478678762630779994993256668771516925746700141235064972872170442110617361163333380581038699125211423148245428625447887702608220344972102903441423333610846126217085796536914462662642706973150332900229771767610280001866641126352807213489842606080141956583030699563069175788117047842029748074523013611852671489430715218764250738133528975289164234702617160009395647324574999936196271687298637930057599864678926689137253249395012527405766001522448930365012412483966690802205708883108879354491355321920596376901749815087274772914311034760563458747798458220614666096292029207804583872885905543929351032790680893288356987312529023138562883315418114799095510845936284641190494117977467898574880739694189172451611367883807812470716512539307787014577105651775599413134647870821333448298868125413372521715766543970011718537569672522882355313121378164754550578772464765031225864433396617610579209887768453818295102319045021605959760528634789770747835901923033766588948073669471292333932076272694278292465966007390029931016856636145045319440902643767104390402701776998208488234134451444596786137757499265584301891748582156587487725259009833205551127466099277845388938001747991773573722888624865793305359746524913800716674098475291185116988705505523284626896543239737636352329089266435232705436354811073815065880322132812669924637622257510883096893275277700093911701095390430215599283362552809135661975826550667216311803085287644025908178466172608049453596782643507238317534325647719799789532967508800131286357313505669134040876170896481333739225041704050271510717420622658832674215829994509950002546909758642984889530350798207356385989827281853845484904425070535174635415189578954200313604790838422105251226629950017252553827812377281735057039924468422793208371734985312537557408138396347575860679104618702395412684729087067340898047463551325820392093569152019334172177749139143642457925814978113411117473273022117249738958230492187231500019912413878914286081342788321900988753080065804756452444369731771169812190647071338917611560440442802289092236406085517344702721014800192486090311229160342149453029768806195173447893317980432458012280323298991703758996516505328804256454282694329099573983319816551558884888240600737607815903402843306442876970096181807433328657898150131462291429623691727886392293955501259425782720638139882909780906739895126169749998150004698158941038769453535752303792126288788672519815498984182606015971261387062515754031407087228945114396932115266641172486645550376713442297040411301453610921658710052047712367641008630452718671062936509898149638401123145335158954223183139188031529880033392698053337238222718655824811976810551528925276298558145709312095812042613959902151150621280606062441994849706153181758805421621451294160683865331035805084249929802398177085055270152729787064741281094331841651759156363973750748536806571766674003837671657534764943907709437488173497774263783574676432270612972432131520726931057751041190411343476096725206737001536718250419086914065073841741317105676740858553261967999580090810609270072504841905528982522648243499602811108323893726502198438495115238425701178398745342136655811738073313760002133287377198849825421898430702682375905533653333156013418087671004084825613145520268067685759128112093255112989781645462276521376159728501498769131060222742066432848123827267838518310377164103357665496879583105619134851079526204143443311654530161115539030692776592103912641618191666778086945332996609253688426447230138036709693781142847066021558954791135950622017787056015772840347453106609589740480492905503471783981485558893291181598694046249819219846423711892555927123072556774604556279043111712773532711938004462171138569857020603912707091031138567215136527217186520463713649696958697310384186969017228077265761518705530530134932925643500048268298477828997380430427871384587037289998266978744939714738766796959206355850197860754955134984654027518885654718801783644121624867723189159360083172273533813825458539270627300432732044633001822710796687644693875488343108874365095784141265387457226971383359597416559687825536662490026651524652297875841988688011632097970770714545292024387568363928812194203302787813809873407109608989913525813348305511246802525238095637396848860297458768601397280265348251496158941520808495679777648224887546826724087926449743121831021011422725869388243343342349720829335477116607194094664293065879447142786494917166145772547335880386064605421674484149115468232712495986540540341675803299853556036045861197475328302712228854981486781443962751997353109156234172624530025794466876571496682817274318402162497403407904595278084620853500210564392400013409558259585590011015054715495155967540861024609003318646589378211716967189778557436453457938316062603937999898203819140362885783607349168473149512618899941092281058242583796104331864612741024126267260897971107603665050025212859250629126694933571217521905223801179667969807137245018348598081376804047338327540947145165388337034516032590670306151194765123857494429851728942558770680429095563372036230829201723340899477821799122780411625244645175506101190283378962595820856412385176885126578721641358421005310017815861666998197319796654283583314982841908860034393349010604944616154571664650005269808389857858629523008826087820811811140181764722723078911802380890019353443628382044519056507488910438840420356075953316627416172635134630622448948490574510227327744816097204532901056947902543224490617142965310171297812886401613836003188949600649629632167212975017081166774205754928830781077001664761580620326437822394681500412258767410947446586552559479123809527128997285718786664613703810146317835092055723244226048546261831914093047941004894592011249265222122905796693585988866476216181184755389396147084618901701627086319761340941179681306482319157619058035491634626976990997408343411745954717459851964264626501471651360931334251321679656175554424613245155045132828416028338014322322653462263854355936991586081900335774788334147211606048655236187193656685317152305862417592198532255558643523509789132580590499475757088847868915316725203102279836950185894670143472895591736568401180553196533926334423006832509003260182576100629050242446994093975270420482447129267869417493549867032291666804984514247810991075491490556350469194272037494042304907822167379350621828478460424355805067305439957576986689175236635489112817833335082144390720186376211873725245530213303531009883687308282074679654456769315454065983775653508506367647952131395443856302023879385151841787928410461759527765233573964138649636004248885603497828452691579021588218312610459205932171790441772401168581601865656226908453543900977582682903164663179649547362811584902803128426448837146326759294221686695350127626849533987346205097642944350450954719776234800071121996618345499931644931009751206159209610866608090265843426387574391168692865621126144453492560145688205487709824486623713380628094971570914039282054246714680957047596502894536139989192841511928594630491908080175816727028436989466347965864604747539886600090357732416045942012257505194816557495644912599342132285707623821204644291330171355319298925476341814550794461850682808945125620277055806921450575271972642359990949473647165368441679447949976443110591790779876429956353679736653615338983787126845836599673707281584433696042846896469797226723780739430281003194002638557519800914984623794576496897365930208145755349702316109327786234818862127437243147143920139231320531250132675483589591096353655050906208469492484247741535519238710172541950255137240229446268337574443130181910345236944064902568693941958724265227136055714861545453379033131749082057364093964176311112444199437139284719737818162500267895079490190314558960865383496908342570537896655109981732952481628352337506380279444389670792990980816097103899255096332610462450954308130518564179186771685452699642416022866936537852057483533930525226034612226680661241191728174877767602935797794101395941513512868121188541837471770107192913610797389134898867860109210576227791016544211478938399392683637748935234119911251231789673522887494900018497077895076926219331243490059676620306135639638624897569004217398858890387825661542762015920363898949293753752791109242863260028679653705420384927548993475272108116389911767876143203128181209153717392241090235846880361688006078994140920712329023214795434930967597819228453358574487604446124440450878129970915878651636568621399730050965575847964384163775510881648846709750261892731496486132423344645719303510068053175806740185671472602800818940285508184723676650220802299272535434149458066498723563154475821194923200989670434613519667734125129337447489285953235078766641321455166101584667837331220150623528459741664989727512607558172046392900027882543940000697796686861696167523379759995038922869151128541812851454220958543751406324712485263912956077230101200526259323458939892600440694337536041597476946378913092288102282834543155455806085242253355176866476764682247986439559364176077286994126863191396192604817372832192556618156998038105157456047804509028169882738744593838513138228745658782603329183356065978290452241976953681019288227467667647100707259706074963528805119277243540699766300535726158838998917641586653124333108109292988466876194612803432137680273544965300326626022925143122801319587107589768024474547125914737876608907865983072356263246565811165116785185116915056951083284249857805450009704439490069742178478637989522261038302602636123114399941734383312133919127433937323457583204017082008614416957119266101558018899469895263913883909643452662652875519000703212521589856772465402282712194973225256213098631257279458551338967867096392655176962257409758785475770793723909225561355680131074939942004047389853738318581467148010587791983268495632641281446455503380814418557369126258584287591820232540647321963435598337099213084872285812848978199862697047563583105147033686393111699513482414021476370261557373210873696890978545671300451593044360746409924891227048133670789769552411293120555089503486740610223221014885960183179109553353914751529331861957380959624144970042067752832420847932248541710824077801364212553154119723190769246276407623915989336901182288513441520211285064602546660362000124511245994876395661283719229445250019818903925743072414905046706561207569717225541668192764441761262320446245918127713907359004846254663943998498271371955818922853250373873850437452354750849879776178584066276183517762919004314886639822851510138114438240428263462388064660230839194207502786443480120580866807287993822643545490613584188389882695955729653280115302966923684556897557696053197211971911246171185765497022612545333300552125265901227291758179920518650641892697380405388575817799275443741370269555626936727485421495419340389497489646600644568384435107494040001778870322047388002817155561779593855665639197306299875119883073229305302276144368897157696272561378751233610260553226287581045611666647281671048430889674970590585520987816242097016210105524842830713809147081751690788932138581218979467570332229292368068629921321579629928441777606851074242112554520943489922157173413414988388188656193247484633788510029319335772343611787656224985380468909518724483472235689745005160110923200867672838187257106495487339829325453508887101866451311374476138346602947459091486532119487342341859624611198269867483779020268807662584318420974051792001528655734199992778905405750780042276361960713940779454283830978903710336797730528556655072380969537375321097707878075771786071467927765637254360098681403012613440019611224536703191448813686757216824198426243890195876447088978417115824441823024204085059443130306704067190409792193912498456960692027490820863226976942499213400135010685697828149140478370423168793272851863462413532924325378996922378094901952068400917554963881599804809920270404990648000872750769514538578713998531765481177490964789281583994195608650883926098513436963864667290202259142432057684870097281687928468471283281507913403165879475245889509383788666592383650824477847647593784485294616039951548998608254760298796621377452008761166086523047457373110890453179028081540368092537860553075646014138872458948561632356465474794066081742413121378750569343897069969569009358854708509982969046562441264306060512684276136284397562285388614252754684360584389559811883284163189907041964532603217803214621628000133217436137727791415609111897925480419197572134855029902725860884654082550496663564179105955913821740531265342532398295400789603385030894957030495227963664987148221272290834791224422087672218625255789880901782158032251093683018088238905971092899575874479949471212471674572591310368617515575107310871497810954479917613222771342589536810044750247587792616293586859178936150678848361657106184668166901717340148779303417291745841047443412633201894175476893593366465535535925847739784454783690667708580053924806854633445822944453892288174225411570381334348827476254502561966149451124899885881551579877933138721191930023991951997153385835539608020240708543397623325450479818954742269859301993764575028828524543923580234066795461933212487563962117807893111359691489603149942776768339654918923099214214618786577132831019649297805127687271007987204126812846655193072061647443831689980285337980117024372639326433172805088931263214539777735537602891160320956101382039085384241438859434795740519269578731354470933928603518329729603914188368499265751283401879070028026898754361201654613724234635774242868488569166727153028898537909500235962283859103928035646391249326273945533403172984152186066767295952516247988359987327115147733608642249692265798520693887830345595667190091614269156315013033260944089788979706517154632389342310366670670618550626254322159709550035418193776416603561527478088158941674272350449548819249129533670563511642125750540899883352935409811759619787874145004618480360307249685029664357464085631006075037457565545550269004355187750779925708107933742266653521323250218096491017179966669573941316321442746932525230524541486872215419628633846481072702820384926866489781489681142984963207902592576840555813033002706439857158408681157857985286048397972722997290675637563817304289223292794737077534167204389637958163637062860310819440856843473269507088780126465761201210841892127590351943176448747473434256656730850904649774029037068732309255544201027658154931327573190386341781520660686093046314932635270935873073953441568591140556462246038181457820051332661680642742316206787122158279495567984751642973016095195958915092764228416318096451180059878267834411823816441628640713242198095829469241833460347538500002957360788749603621033495214374787170317486381708632541824514730428625184659756542859701066168386989546575123739549151386964277248772359267357990468020382892766739889877102318755173854394353214141661518117206496308006349588552903635614343078848295339331715836894644715024790276961668836113491387136578704398260927015653813317974502895241286487092981036772093178553960205689241171526524293804688645845956847106741591779251413694068327045778875360458360112618190297348839668205246292294550487532123807537024951131011517817326309584821348113912881005305504500389412865978340295195559312347142373458142306570587097269098836456927455075683006954337720217776511492956366123231937543608434588925351014755778070096686148193442300400182425742474578744294727130272160945905251307718102825708045959290078819133027627978565424567666028801540022319234094588913804508072076137712385921089053101761462220412884061428245065210236483406232905064855733198319007945409235643388399363737505384723590811084572257646736547309575381451880693572592428996546090745115887957876545888518060059224743253436712092844259954096593128058112438131564579030163261564416408842195615034262815462515765867173812202657999228241619914318762899374358014649538344813678987491997320372482515691885615922863675995608940165113955751033651815022126592462976746647564743157387015520736818024158113397329324098973284856234875095794987944820790144172556655436198017847332333543593423778520814618090234541572025995486444502452030219342626477450550441035784406437817137413407777738566068821263338145470126406889805321256911703941950457069541362275540970387197641434967128282472605741506808347727331306240700102323878232279917306428485233515104697838060926895449860514098314054906394937799487255092318901253522473458539804059659693636490337457440537833404453561375658363572700009929702471214465152612372106868758498823279685480672069074892012303983402160573668520740842025271812515705099843407799850756083698789509476569206602865008899758715273805582306043240212984709218466926296337104239779389319550944993857222242687643957015386034676162891642362854560817128885341601718001294474557405706786832572975277052691685130138012317671476881454386421192757670637155850905558814221892881970051413193618723294773410985300748687849847047944792644613719818057135699476962951771759639268264653387780866097273042045623953090899222222957173744240391541157310760150462076835322083161048910700114446094265661940821214927237232065599115915179977444277783510172499867264418960518364541589891203695759500661672711404519900168296151331941810082295993307479965782752809852923088283333977638393767188375180647969957340726379421653233945647392403247313068840079854518980493598830735035451647579787510667516524861258951450296878440308653776424739578385018600827051578952121526085057154837664113636190063580668351909729063019059180143392684843385688970783438053097571528726910820368637917102782039544967753789935289328383184532980906404136917553335529135802453404555053401627795144477651697564648712477925696528120036449219366352483851332683573851378728244306727000310357709907616021953600395271407738365971812708643926177010459396397449352161072217380020128410889677081562524723817181260197663246474117048147829302948109040891179359099313404016766221542613867847538398847117443707609289738303479125846861967181938633003357612199714416516521871410329487040243005685714805208627873193991643927530494949991807984723765898428823423304597019729185115627733381978584394155986823856308012267790895103442788910501362921725915755621902755741761834732029562127282461954397182015676027901211704463492535671288355454847335481850957373235039233149388938513938968933543557867550781973781952559628942946457395621082629071119075564300428395395979707892519993122765812411467780278391948584647556603173031524734623327036957974626259716958574859063184952800028569848851220812869566211544163146160252241522873633008701731163766273343220411347379988384449633069041922997237110904478272380688541680282076131388535713577854668554716956528143085521703634814344541920971750435998189035901305004935544914417855005796008942984123742144179227525935209120303932566135131449529232423118618286591613550313178688691760473531070832508526819236266773725290144557955982494853381353647989089506852445360615646686110622987345702666584759485761165205548117531638837307354480831468232748866757625800507333364451713318828393679895594834686767494226793871202612447718067554090084821249152632694384381727635262023891799318106477722352894388987134136087058806200504612230123166432819853742429109588661928660048546197072865749047273057922766000899117111384889150823398924765684986186815969834542911709219439674430473373385093234702999263358480337353290473771448463592407400228161531570422055810546513513274768443059965940166957245529380087358335863817244326879259787663062083670361010034678162876264109713915647563882742955217362973339157904022306310581044074530696449447981272821806914231666265080503408281174813102436737800242681603349800136678161615374696410894191042620958739741661299794637864496738318748298826592221668871028572175242353641524945472677140524178334873796222253349422934901962066296051848660651507980259657172105010909229815828856171049408598240545688091229483744692190138430471423808204846305661550949581217826455011050403839449880893217551481544077558547218921491042663259334524891115166857884725918028117195518043967351343905964407685408455913172768046379503732044788762375759359300400792166768001224624211362286393364799832180623951114075576551194303660395447742793916856780532019742531872253741245982936835206086826871781401579820890955416553447952850604757879000080210622135153854190619554283443031742853518318339331083143840005672388186744464384872627895855301381569208435226500242673346454542802121592121594453960978386625102343034328476428628688785649429299435155128169259029684913184305866004548264119172664550899215443036710154417132995845521086293139413465491343116598677113531795120035376747109427675092435176024488854074111565983437658678697666983061224977222645581940846686812602207796895285804925379293759036665299644119945499860696248252588976857491212343767283354888622696877062593782002374583075965039238980186358932977960357666874833350660070117497503280291885929486240168352353605020887225942693515016956255219574860511880572421491624864152616631744615958183787379034855603467985385611203966665868120807980841747722660297953233970452844159541718999813586931039758086538714462822861421070866134719965132201830545008053841486871251825904506638069372744992226923764716736656856623673799752776098515247348157445571366298201257766534651830846570926008861384246076680480354926132352704851655663185657065041256934536060335972737011561060391408539731200130941250567223527959027389820855866657538857976170668612095172762046543540430330878593321235416365561730746706836174147798291239182932071290820166749616015571064122325597721096700789052387093865976926519850920603879234225312329623003317389006205787793473008612927679861491572571687722847151354428799701824855559650401539593424003804483813209309124239196722918431089890212308212469607333488621329758336436695555583354738204728121951150009535076535469412322059347353306573399850173982216060977481832263994648338746404467689008002254111047786340727268996252141293005551872993129487244950861300926806087523120343974623690922234681492883434121378408247667123416897579777249192054197469813822633569116606707450554867008464313517788982271080974770184962507891200811087509453636932314967365210566528794956318496540857687053385210844096687373541311142299535243050742465310843957672254815373612827922886356825716680333768757275909867244611263286231336317485906154557061506531955261947663208356350998045393078569306400414106441028002953357117242209214009573006609241091597226314378472001952570307537236616702522976889057238595570083528866497501859958753872134382989343465931886344171932783314545875726084042916975263789046839467487801711212988315602088978441306677396789826963947652868929093715592230203280682130117697009698234137704176568785934315760205930170055147856014927056009141075009422717872472119752576188454067466273371856872374122900460792183278571845997815227447710090624918228763207335636414389934490415404550747497905527113975987967539104199562895214563619469296952250954919729156121778297002625353843768462753469473570695934587519805837273065572602082952798887431194155959261734843871891540968657974614665285239516959734978419420733480617160542426533651848307860534250884185792287363026666373247215111649548271744253113530044805008976459962526761810542246137020378917295756317936030581786045041617670948305047451524722873981158018966637308085428295505684223913611406691592037167091578106418053201880039276046847808237256388367163159097972856493525535140005533140610176528110426169972569841403365967472232461826786794865423660866216800680666633485008025983621139634782272310930995502908041869522307725542812954572587557981903763220834528199320493050776452774764320207666832289305376823788788980360328043645643228711164946318979017745859477620149134800774230992413164422785168707047036023909059824477656987193378950488729680157798418914150480235265148113378146121036669169870586366852781618307410490497716699898277204599138979475357209335945260371568109255186357440465861991615540619429416911656516375734817581120173581287301296245198220258858047749005809249429985694272499495846870016843320634421956176721527602047546261756751118425845201523631283089188504468129923273546707742475061826678499159962653589677824931399817452234746447718354816869173246728492363379380822419242462731358965813141698389241814297735273623765273104164547688907187361149128185093382051989174537548636064528557011669234050063297655945765650798705892763070399540652772828593655841795076476635082623428460094852972433354566918061922347360747711219712237725982290233723758098051278103745872273815633248592271050100542893538451056806601734407576751902847617761683084300489173292872459021740641075212641196796706031546389246086904912872425694454328378141795580073093995788923610126945100372987945068226427735762952892775465417778199518397458738765944996914119962110554515877802834265694585403043748962959305948165539996525331490634304975750216697105767570624506595488401040199453289501970204491389107268781894974870934617519218286728373482402244442859457923368375172084013675724451929665576737807027400638598588865505149356169126539573439609287980278297181814484531937428766687454401992180416464709441272843063495916435653703757225273220243337970167427261353091104188469486197146634865429134105216888626581249431274025724546443769003940645540469526651486468627891235177230675016571806350709011837399081917428351697085300247381879788916131302610250848324907400654629681631560246842238935008137776836732908038011916252299686186454708768152167488111914697469533784586406319762401838427893954258091040756069672061114667668462369988624610568954227693908772174236675137784921485455011961411034946861203373359439485252803685698292524999250420103652030793113269821875564345655356077208563749539024525820067878056778879336742341461769408092882752701062236810005007956585655711681379696404249752099233905201342060807717491156767670257135889770929803178293090786530271906471732273877975534422514793782386172541298068924983517527498317257365749131781920135819678128610337132805535312061137128171432120658838177913201322519544997378036450629737462591062334690973457926480650132071278239974487185781781111064953346251342484232639026018043019608467182321098743565968034371995904527548452659916431721710406695052890970548061217078074512828265236882134856190141046352506091202526691630877327385849135610610266163974535829415190585340561064979987992880956154300298654657245159835274112746238201893609877838456965779174051022009055188803327527694900705065466735109264955671150207817664350552876383771181218140988198975118779592179155392168022647226562661415145464725121501666284904171294113373356513352380230701697031714883123063023276023633729563299926240563332485102416097544451414054933585234405414387847082820010679021901136685449945616413224052522834674502511454243894699306613323565332604696140949401148307089205847778483823784939316672899879873898529106867027624827706342241854225901366078825421716666371561194908879701072622741326849399685575819991224674926929418386459726866487633436728533121551308906886544804073979062520703169108637005545908800210510330686307464586910825142096419773938551799204620700154309421595549200706170307827099060875989911830693520657053974883503223416767779351426228391404794438811637388334707854386889448756873795213862511409153365731198333504613902319950985118021365034044190296209255157965989572404797421299436922156857694310826276506098314704026202097964180593769605337773621054571628040880058916502575798138388957488670874352590522739611790866462230307524173772536503975725897351686195823768341018289862941560458231002806716343180621408170181703306129547708488298306737699651206521289133515670545505540268604045693033691698110249645491750687812626716618848541763988672845299523609127699075361412062054489128907782773777164609138486919635428441902528846861745360451088335673238535524761097325132390499731212444557823963311215972513122577558678641622328970944521198129950535314010812594586647284094011188199635265812448647482858021615214765477801584034777911315871365838275275354191951858284431795718357911017931782000942103282070188796557212209869047832872120414459883719251838459620305493642090156709292651938875667462723339951848519756800514623218686471181360384381721209115279695186114673765145093219697926190291597934121936017113948311800163466307474924266739499361483843036945681022628632696736946617305347358082235015812975200262854743774128248888613684978321123453480664800615714039199778601474717572344798980205947919221711524556978240765975837240727402178888412381518217423668199915145668915550339483801424744282078527907447733491915792238736363525128662607751869688000164270680114752611978494638297792704783938406276188556394219811431662674166997789493605084125238989674049678443960778553754770657871086097574931143905202793369133749351111849297781857625748103945863214398580890750949175300711581462316733253183829008596450811991234535588010199375866243896748831367180537489888050906364131887338141434399667255454818996460339622081416865742008233043774877168998635275403604174065721430202103224117174358222505386863263410521396751668275034073194188555308791973716337102966064338526324670151908273551244985005157420326497586438638659014239667386552615755498938917330656739882907806461511195757423533379249448970284302555559238480282043456861619904616240630996457943029147296645929139329510873996401348635073112359642069485908310581886165308530151367225531916883651017646761553245667091079939961723034304500622234904530946211987546535033547024388607808976567959467774658885729017202424800079193965892076151738820767883810335626123704407329791518180051388291778115468413345515567138582480132304267241346457497714067871773864770055065050413142822744365507013175951640400992366449835579343870672018143660523576796578193250697193739453450095741259599733772792584316498619185750379599188323667674686079197122266112828174949186687488719874553509689859652969722851678820136666752103940321303363560164410414562339379640893587826712826206110898416509274737795380173538622327160924861188649800797270941520048358571379837013789027621222568316758740140873190993859684953378616991873467847408926701873155800112667521980318207717483526988436412190573345112554130189427826923219016421340497495048197305825228654530740861094581125745597228614765677401254824896640291459943819908594902125898296554930753725172992204915328598458065148949520614837271610308851606898970576417793806283608881130189906281766399752110542787422141834605024926511978051657141828372855013820062351957669198303491117722756924004122376552705756916008846125828445616817726089875328073608724045928989235320701617019551118025123773091630971846114616113702677477295211879151262656508639363337434448885647439092367772546407458323862933210417588127588406833103754074538667262327901279558809017410051010726360617853003305722735613684475577380681633278387034768195796610312223871728164016483684675814285795556366263215192207407751994300155323252413588270839767273002839107867155435277118020709521795064902304204653439257208466685206100462418888848213296945387481689828990127882114055102535355407018578154708268868883148038538890368193372420213216060825925029884636110530947016063050153721446154328830656441426474460415318510609909867504219423581956064100415715047171830020319899028074778177557976167168250046722936055998515776659297186431659051009545850328624722620718306652318383067550791979381108971593902284143720058209014520512353523011054427794485081337546847460305965732928067914853595980117201383386982547521991970826122142383199076437332347648375922358981094233438265802416193075919820507901031726636577708162483896474207888389381863187888186881622543842222821882744150356903824811748217018754284339276971339932375056486115551808068828597973335362138603217290047613566896828981090900558554191037067497610796264351641324822918488050213866170905758375131678683019099666368939526976237252812365962055800103214061435317712693593463365257921874977215658417305010347929023955719515073526481108102145022198365467441320727548575599005767971313154724228425961956055388957602912358591172765246218314808412137143162389698073707759181330611933081198127947474309961546965684611472160405075950384209634419672531112691291624935199384108934660023099928404745509479469240317869729357679513173293506865757805418281995508718125063082655187145299232326867873968528403087242494426466214967523694689947099350704255292958972319085814373038592590710451520936524534779864050530508989890276593716119238730311722426513243722405411573816995418110004915590884175979131906716558781641353379675433822571796059722043934650362153056246292937887131551386339232818362882685759710411804987712108595408234701154972577335895327188677945354664502991209325022174617995187070520140940321012900387990215858050910976954388692269689030662323452414871403553575528869767334779297042561359381787101951487983766525377256672234423559401580103780799992565533411510939981801581506899825788439987542876271532064877591051999489429705670779662620989733334382565315164476607879286955524245048608752411889413957872025332232875850177147314388424205207603985127979603113298674797101467836696566208003320976959550819084705101023866607922388698030166454374897167118575503523445450222135215764118088634369661059195130508710650275672005734844929703969239494950734582205137138316238637207838836543671485756306338387147962315758694390848539978638751002693329868277358916389281060705899394828605110967399263320868187859180972210574713955614545088164543822133506864774937950848500029918553888716550023559433374848636474213205703175927041726093221664698669441156116938122242875307030565910507823120526384939177914672227567419649893594279302323281756317186865216045022793938149571456678209357303950265641927259584698292851799877444013710531259359203298025145932958337214938928418378527801465624200145402060400799714862666009473958706603797230322965620687939670493844816678315923984034689451051646455677648754343216223731016473363382908458218815842879090910466454618010202954890098024557287330902841658362222510899049653121213741338473303685776040677656364965971077032573704300279259636988300038295617458165891646660954242202358839158081525133119375313184264123916360508925916774962661502181074160257318828462654564366047450228117712472441271609047714068387447390887254781539647161730470303011187768164303928562052255976623875629468093587479565300941254420040953207100793591399311741016955804963141963438610796589514783590526794619789597976976594702205236624536070322356726849778999710634616932854592678705946104648362184605623881098511373293891346563936243705750967409150725200380344638460031305687342775942321417684605266621841306274005936309450261003641924632581428337168929801452036993126842550673808836384873340517312160769670960422837487074667787382411696411329724736664415073662500427587382221328955287560170804279137150508652392927024069275102620869645462931965780638926189308416907706689607005106497028169447139651347215247416725286095034976352244191054495919453614729366630836670661103766004090966812854827733838447359973654783626707530216643144548062771911421218660155624860763026211694807705518743306885321301034887556032603664649496567640199011080660098928180541621260964827269517727214164310465777319245317817014217065443951304783570973997770961614310624451427459313823439966042568494889503956762932595310309515797540551808695956235790851705048913311851870723577503984050470904799799769626610200815505812402372813638522616783722580007826778351436124883621399147431245503697787009982265091280386968789452601986430001498392686829090939968410257538936745991654629966795186459258875436796973783125674356199893824446086012301437037651576605181721388963094799334210673876298706745282633315763510221080102103724422485374482177074154591123613790276285361051381180797410376562537433294701269609324406905752625975273695702577507610591184140788616014958334861196877650741533854854132330091070230621943011328717163977600359482647413521640865541579921522740655037403890270266154002532045726534987005488424081959608521897779311822054651464998005044593757732711587197897670211203832386338625145326443039660251486034590466233808646678269389130130210339451921756224174542595899762947718767718464833119576967844381636984983907753030976440636641267724236563923968063847720418640020248630715568027579029694830134635880113656175512334708523140229733796902940562629224235979346187207935986061427567534364114775276857443080905843702403005784308976153075310679835260266198619460105180187883198567932105397139604236822938042707811141287153564238023119450867860046607071217258266135983680910696762095094356519883190851609727870834733272220625495759742418488416509438187608395174364309332833462813329365165255192525865861512943924423361780876106061277710428992834901645808403163385946079708415570871402410416943024663199027877165078492014219865025692132645627289867559220019119625747532450007882926496625177507611189273994798441365235009982907060088913642813533249196280715083849808841035706789192498321294257184567936743441115682847978233960460049751336592327114894320450552277672427527725716048502136955318448913013648563751962902295657350742400944555983789223070798843889143208287756673633410346450730474980729644511954162147356235805979085106290847926501570899163002424381703352629379884991048390779631750568831070416107911302982648017704727911430032165494817232562604189263509113999985097936219497802924170050662765134321001696968336173550387104061058853437710480566842718212097022375242630011529895637957282286357437902424709646323926453533135287533512691934357737496723834691739267437550683777160458486014209900468331724972219116474106744603362026227379304353189822328862459279010043984556790196727903980353504474444217610075995259639065066919141175567334154198084725259279285879028182554767972871711498697911942092377044883981883263501423186069850411028963935557900995104513789615885761799417203333955837279150235340115775014186440694394810887781176514315079248333682844853132180639355814820215620173476312619628588603100429913456935694059452355267327404027638286259432957996618770954814315901608522930042497699724442329294186252275440301321945133712757392863531483752672148063390875812085001958691380967874127308925452195437297459082458275475984583007266019608814254528670704240591814835719694929930010696800390607449361340207367919704701061759794993101780686780417945272002054202517570299978116571883715165880543836889287016865337755046615129568062739590831376516204453624582300260708627449546616202899401664361733208618972520479509183669066050667245063486951135304115591911898632793299422757534512021575744045217529301017060449700343965620100680724568152219550238381444281911128216739075509196654477996972774191932926243505326602896830626001214525847533247575680748867168792669489756933104451622209882789132435889117552286099321229004308392337895454117611831196349360723809330434101029905035149346314868920847213519694789705098865826869375235847172174075241646676466639250943758743257541075312355100342177032034709559723872328358861231700856230833063024828563824548094931110892483137072840049097845638650762728374637053377916952870272182492729610140414707876168169560178043611569048567676546268366450788972605770274916840793335519199487214863216011538390385822100313470207699112819790023917883919341728874369582246148596240027448096295564044846774193453039376271784129218887683330241743875645758737552024187538826680764228455285832030944420920504995996604093441545215305762507302594441109363281413222928819012312539476464839078083518148738316742806643047674799474223696124758645443779164316966877680269645166315910864179720659993566471976365849340611501722559779336082074225438597626716404574828144856056611064311166771999310847318186564574672234365632149406152430091500995142393565136880947024206044208832005345954068809672734733484555370696925439180849374952464061094982044114062783214399468969269216494297094089549469675062524122134987816808957199530703696597984456428060031405096395969200931721735310157847146322915773313144660771153753983413972811194191853868443374199055381820894717375657966129177037919971994525775136960267339640117899110460886173082175199405999150926641515372013259684699664822582044555028274243558078024626068868260885407131684720746191878185716530563404026830053921985942050182124967320355796240334199486198878751422701494083975306012880745826530356854347190042677927193411769545568395059704942737979666337493355909315189269540206369116480161665752442315895051324698085532819657866949001840497045522152022355200277644741800566269836614246273846184601772441893048957579356565150906062374293456695847726393120574917636107479251289805091114375904345456191622494327979925737304575433090181961629823251120104310401684751705566964282093444253962943952107273256576578209254970141527869474369570360667576631579793339427427646465789872187873397309931129934568051689240840558671456824493896723273739299656176994114880092018068053938314532614484789504330038202156855830561975618710041390422856121197882008837238056327160664611505339400519364933802790026462428120135877388885768006189361873766068937964643802282501708729138672538207124948307526637625774796086358257335999160352811242924347975090498600185679035759323535427481142275076615835568827951814394453483151218910680848985159480617917117393069963325829250372978397806667237696474896832108125754323426973435991156106831154568179579473676604931519994245418264012906213816266727195464367183064122895126754304625226641318773576304998806901008817375692295523922645741174635010497725551223186337694544960699432295960016368251849304146105722736979552422578156249607383523767465957328491995256112891303309021328728973929006061546919396117934755762366443386125321335956745480048298439917659691810484035795289824823803538857831251018668029536115313248631126279918173549782487187658457492477807566456971279194082028187439701545079765467300714855238758253372518909964232342868767554329702581370382123561029183698742335916500809967522100505065697494222990145944994699603507180877360762920611951358179082994151569429036392218646724341755271073398705521044157306869620057223534939584480521155431243342610875932385027776619801535120441597200321146299310738583416020715884437691885641039555324950056138629498369200300608052519882231190991585049004995194360032324007763702268318717101289558323096311734190860540130832564631791933918953113599959012906649175459848248763853077029539812255324800776288093113612441494316533300900254917883115431623388294257826193462396974267302688945295276127332652877593999377281745928370680046215726565802556078094179189274356084529030677867147386500449614985024751125112518274380986482364313044492174580255388100548149554218930954774986034955090384959479844272867540389142348007266674130259617586503650001245603905631828631491161830302346504511134069502095803615882181495578807529054191043386425364495040281182442612636734038099572782959720058038175084514294402585704440745995390984005936086010961736783991279353149485165598122025195440346359972179766492077962788785009371286037840540596170307671927667854857445248896889714693248085242098710150145242138802230621151475894367719053588781907656106442803040725528890885455004171652902800671837788787312999273458131923441705088887820652403100817669472048697568945312013499915481994687184600765229817692045215284002726204299353625498112598234728507310680295384783058461869244064507323872399487166862254653335581529929893630340889820984958111222129474878201083471778241038749801479847068061452765119369583402494990218005538694683195092958374548267204799561986248879822817096761362513227114663963170002429426032953313141262432853827763719075287918933711101260106037343050398027446064543099933503722958120084300229949578736086849284260414993746600636694813702454318244114979637711203106060099535512977608413825790030172366763971417868091218292727837784691571328496407005933652686975892089817303240260386709385322823313746056086461949959712980923806132328013991005342206206306811662906150689984675091890663695302020120759372149294463313255160188759477516931055020185222768321474765611114189403339481399439910714659116177020813710996251086186080811303220260437078371820748676126398535170980122866139460981722557353806645276737714082621559370847919910160515091601174627615846931002131012512649375179704370853396175046799274015253738266358630365847420288984100723938354896408938490050747406490632194090112050962127912653829424768785949042990059114880981512995306581512017220379305140823811813062124742624246234149617604578732056592315239376641490913333515187068569945831139826257248290758573539111264556226462527426405917162816888969743398827717732434912341653945703725628655381588687078423917586258222077667105190404246314227217049022429121656178532860740678998003246949767761363948330183988913858825427785519257571143120763248923946028690864886523096204679054593227620378609388826148922180019523262207115106601436306759838308375640849414367990653387491249979689873108521861140580627906335349789925868084747811395689155174334736642308140290359394167109121851195367829978323170738126322725001546928075301789354647410962275488370674813000898278265237400469837667224591409104732269938579240275625739288775223890670914478557310419295337412092713862913081797242524709025704089542249393276826700149533474302332042937956702578518975426292772618514516670492036459562063999398067636068418048456146654867486371318938641252750560054462561806629584315748897536868351844136939492686237957880044174276809677994312537707111178464143398829444328012081759959550450141980628617751741689593239219356611070231987440575459467909731156914374594993537712431045748784702846341712214996233266290180557509861374103662306944776122123045307883288730940078018557581125235684740047972120359502687487619514756855534482897023207628591823880914664761204294060183987298047369155935912331013623221015206678245179874799407176761402169928786387496421291131284619161239402288700298842725727081927091648200878427721276861469266726306052286938129397563740598215628724802191595286727834598864528625656135870424005207302538512816449383820464317393830293891340302918908859803007387182453307309695057272518419121830600256537977314821937113040860574592700176771154399439175225601634534307349650096475957915647208324713425093541953737147027984409551613742253636977086886055226180577919853278721257501124216915263955599701486917300504286736258139038399319106301560141538516415724642624952862243446060285936106651069855255555378497688452288513899200670017127776189605575450756625360158527214510730122109256514044135408811718149931194385614848992009066580523972867341636330082056592675586624618414469666107135631944345851152104169492959579804235425367773368129767536748542774505994677169949240722870948603326921934134637694384249144224353554231963491442204208495942856677515308805579226300726584088907274080362769604701488139763103076716199073727832039823682906293198448943161614311429437988192982658763702039185310811960259914826858896994163114337340826908528085782888500046427879179820392364564512615936694017325564309383587844701221296647126123808115043546574426498868648965287935488068877011474724965412049191708951512689000019044149223412256417286343511793178841031603907645917816337290086439054636993529860907151473994612719257201389250367608474634450764680356167374442242413414712772625389692070096358694558716553003423028871712661331440873177048211177844395403807125786487650855376133127492296368580566996176444087356140124245240973010955507446454378138825063752105368844724544449226514036698385365246113177603810198745883415157924797661623633612852745854213873054993733310222826019637698336631255875059293774444997440300104502195414856824674111370554936887169386701840755433212887319894081020832988307648845988767951965462265909445976394720656104365876534621353715023693185266122345317277757026558022010318455827712531880804268621547727794031019227787421314716885466908755277223329229230329884853192352220438605168562675919098025926498618123114056353872610056526948076951389984088468892010337451883602637705730439384684209174546638606428632218011005890819475894401947529508279640733910827667822072493581445503624184558479388762618250729571198075843436214731484204466114238413110646658102211317563572100271402932204140911433619493186524213407094829087726360653367461826718172514312554199362975615259749904075076848288958080417867251802037457752227600639514574106420502300801355319091288254879814754845961061395555068977590766679034014773955963328923189674329621323627814328449295146175942396655438495724791523910184608724528462702195908707033947763155739235022838925622428272263917715976091962917826766310760935389359594792503299475160017590872311103650195066332623679362737827222638252530059452408385947344739373475531196216509415355376700225460711833093580457368589196712136651697509210993596077628607389146077010177640887060413128092846177809880593929347659823615470891983604509256758366360356131065129131263404682624519871580286733017439951240049399930938054827894104501919655330432750076983499224029211878840864056727818315011475552995633616483096366785723802421291944712724221005405855789548303427069527683438868492892455669678917452263465326009477164860270809960504677069119563247243402311283645555865994350976292498459610708277428111694485241228155040064977611032055679639458560576933571271298863827269603024334636010611691905803480665822666772888830922987275848519581238469843714137669301431611113734861503259135300241972410482827836184545370327224870804218795023489957364886398097607441683224480597169670931384197844217899716804576952705973716666010103067173259552629621120516082065794125599077264167707740527493231377004312514621450993754821486942907286199859312078335202128583190880123415835470700816675577317442773012076678979704312974734295491589914725692251267612057920593098667120257139179657454736710820161423212333148068430741007270287344316467611569130082284181676409049555669266877178879088855007406629875486891173053077395731781934831528146619905232939120970734546056298345743466846340942428607268067639697206956509667003004910184709159889918679683797318193251484056876981089445781006471288680508733476796303745188627618306502975818012598674484533368026115740649530478575421861579299007062587307313878220718126172942188913266747452173427809618209019367936517901519101048288540783883934766524641322505507933956848180623673355465738212441064576108595592461536080762413888719722189514926402363546526452534717720409226086090079161800380924346803362306721590355039667554550697510504111401026356650518067214836163588138902476961002487662721110227566090382637865088070539111806886216405567911156319715067769042073984738139504400450855036350880451449606142884766125263662649548531534121873029773713379432529189503561755388860419409486768026184034449902969042958374231234365643200326881689480281925142574703855073549077523582679704437384333346169068323202985623615442035435158929685019766950513610184943167968119071798111414313770330598056342951426408966514055338537305793974427550056724673530775646088305246578794179371722503842077815918343012089272907713953068972874269652362907997998091532073959426620679846777700545999352673730924171393347019037722072698248337499351827582777361554296294931967337135586733640882780849945568249535829579114780271057581624235853696880313673860298614585263808720000697084396479732820099066796744067834331988371372626293854338143043864735193891259570245973077378692347831539000042974721205268354872663795409866236096002969730238694431005658091332414561755485335806178406662977708485510160311321632344914754464426800966237969590699360495217230546881107785390291494995667083816426053936380419773268847935522700129530438186837939454335091237388471327792740546315005466608878559609645922371397573450402855572287458125400991484943067034864288104069846950942026769361244275348153422213388563922645840768262720085920851895338126488667349665789199700817356110014659714205029033151892859327606250598251603148655948594047170791792128058241296566522859674095426284551142534726571712218641133391852900482714265168659277669472646673019990099706388233687288767469663030699035877487221199055444358127975419025789921314742204954964838142747265823254873766911694127976315361864499861913398120506736525097505754504707388574714139410976865161580983602912617103004117714077120342144007344760619178522857972460791460506940935376593161841329414219940319773083370136884815513466542258300892421728755384659867349326170318785608058358885518432531906769273463429835045451211928664140101732318643800127888069679787539712321124910843794421072463561541256899562144726783150928842956237137100133853772119676931372199865704451787471598967028263036687529944243964134384803125661758265380975030757862688746662163289221508313078181369038084892040120793766003203897309843447488373616888049267354758465284657581360659310649294947032773575738893076238362597453317518517196675455913788385947684727268168846543340888940351116280066747302288402154682318175640272911661917249609987227200447886800840367890239166111798254403997661339265265930856782243293801472757731888981916754007100657721301509169726684591166865793783973976836739175988477586887147058911442206683519897677890931943224468687234754857441107209437034942809450294535633601717433056253922888267823021772139311898522868196092845196856695564207291560373872890965417306034300930091685955861578743624383950337659832903312816330854123015341465572645451361484303120371041817560603692497639061356185033990743585308219624255775316985723007030822764018023432942685160645766436672648010613259063397909067611564129918444523049823983738093762863203218033198584631205934865214226878272090699448850228303398984587859013739032802491189090250068177706936778315156887149448853441104723982222648690470245219418371699488774625105631285689303969085695444538752772376826339745621339777387792568470646013656461226900747212132081029018989032364402323392406207196518021505471299820547873851031579686561619167427772257270948414918245521901595516889916761111532446729804152539080633228384845176357419981561731765495102481476135118477072939396157165647347811297729103713235769661960195003646446188217670974207652199889075444498051991343791309073703047370578947092123253256692449107710445093383916953771235501940375322633883078539696504577464793061070180475116507302539290563235746698894758114433568407928517394275751122917891053524511697876585937130095934111853992739297043925766653096028263415226521455004368396986901769384777789051467962026797125926780267781865868471768445364907614397460854508463257488514199277143234535418485112030776296856970258194477175527178605198572143218692995795998382170352584475429743794244444229272875462704206110377937989662374237866911657974142664044418806115988463452152544835437689779142493916376272358776681292911197217738365899402755395975268232608143316610513535744297024765141434136229330153287365644267374699146130994021043999653365061412062747646646981862656204811738659957448148763838270432689478875659657020506059866782382096623132340780827794885722092436674791704163832892990804207329900302582505940778606914307228775238633738763693098684223959176402994715090833594855096304525172456809993603259741798340114458743869843974549430346813429173872512961404699437221744331917443176532387116218791960264938382941723600622184497087936623747960192748679888310387785833941385233064753035347063581355195862848648702552265117742076644837401310844166798180948852138139237096092306065341143459077111849832111279971513480999281309785834503923368707548349311311154136011464290826161547734916905473933980040876413979470845002420699400399864230942311328098025319252257279074381215730405429254138898592146075947079438611222752678954963985082968217750858765794536823444505261445800255460612961505304529651843682462325609543548701898082585299974945900636249218588714028979800896693868163360485445948299631217908916589892276865802286905549236401451146328986697657042268560273683309561086192233237477709415538270565192360592068723829562687981317765681851559632593060795649626054096287944575319979103167055449411707168048386763737277241426657018096194707384941649698146811000048561930881124130909815162720706430269345297467083737609107060533873313395180331132589230865136254429115249503601803204410541680169554596320564188052007612383848715204130217972402309035977075219584291262616946206086483731084862213411821820989067096018257766949264721919004307423915825545307539629934452228705432721903626339989427274291566588439755517237881557461153919546655525282540363875261402777037232541916554040132906737201110396689323793658377862285707670694787745840839871389534154780107630114480194915581636758545759549960999673319376960836916815231653684268492445915598838219533959939612499519508240769735499137750471037553576194453122048870455640605787999832553776707209551959492731724555141981622754906064983276766297675684171575482936410980663059885793824783969138695006689022103964387201330136985618774297519495095873818085165212509509573578327801607407873854946113676251887143566349896099102660078249732366440005592450229108564776897096680577926216454312966561766981912835540830098399660446742595079766943266225486931445822049595463514387359121709573634586913796198392715535670958048875462558653262724964957904891029836337154714679296548581611680063533138537603279821890787023475398717657262383267219100620505362376714120127715409596424947140853191768110506024140198134093746983771182829009475755504873634469092136795344564983159885108368766220900498373057362794223727435930621863400079741041213544082842290269963497343485582974997820189685751291736153940361717380376772174359905271172639314242451006092837132968433741932976049423537253503432425347255313273775719784798208328035433043460899622824014866225206905625215915230737311351217886449450423638920072135358825264439010593638776048250991424798562526162257597526292766820555699680075490937409377721286931540688262370246968330695746688618747259083376655507681070518908941762766451064892714789623519694154810973606697029318158332367693711938508071780261938390295007543272514186190426760783832092655967796685614650209494784844892745253386245063810755760941347862646203147268972688176846546811033073335085811367976984100662238328989527621218392770816329268929966524642006472910342762848638099311220899305338764494505104778323864641230287308555716245492144742740923758727081869098812575247238632373574405028373262793525966854901490002662829285008835007864581681568477666994163463116657272249961486170344249272830301339942158145693355419001451139128588017997354493240991195532459967064396727889333765029036467968655520236569158358096508008607292342606718457174769730982803383383249767954325672531776852645418298672930636107994594052030873516410414440951866427152911517871252308441120053188580765488692813528926820522518178632018150745059857805756108827975580388424420200675898344756994416084336210901441379277263696584963414324459317446940849377803683030583922573805663761030900689398004339926958281771048674115053253478881631870099358094424324697498999958034213122058241175876536450754490323902200301448989368971992578477222534360960456274888967821392104955555707215395166023719259506653759908633568900892249901192297986953717552699674420774197155497547763810496861884223903630172953770400632264851085422409781499981757619621708525740495366846098497945836978331092675724719929472232648229990781147734624071438624682915874149252963476458742811322596395050982140919405989777422083327469875164455225189306925998213639026961055863662071356225173892266409249640327038440766575888009296317723856890285351905982942589954609727317230043246287128235522651424286531549436424280799899928113642405182086578271838230459954240786394971646361165288403474048879512101671385591927533099570316323268708699230604410754297645257071854132325577430309946478813700901344879408049990445624689073293384221022472060482044475824329778814018698290910716892042957743598052860419116163947234654456771311427357468490414158828011526815401396674662235729967875757298266338526824744264427785200525098889241731090205742892023245123847682175357949281145941180648123855386442940173560686904801485281922083995987724867159472599452890726489387008015654331246026042242990029943118732084549714138644628692882612325547750137517406306616499241898832660345064927050690535817849076326479400780086732978662081601557891993112448701517039311214671022718599248947761226610635492521614158340388612740497748224344772403136095520742190470963764264282766943054540416220691338043194050750881467075221603896819028168684448339596929615836701794689233339274264223432923209171340633985828515807781420312749457784712800554022472550299336174886405872224972727740288245301895363395131961243833426377531956238806089822092302038546638021579921958211300969986898573943525691797001535027516997093792047198996535840783436918305562654235664340616180031333695653734350215814828223089812583060569840127731633305900405951395534685249265878301446501787049475645370467239741497885896189342176494150435802444192206686123578836728505794953649554834790990727235249509852076535828994613802165789440641454660725745546171921695227467238443354509704934810481840198694447953686202733515588356979033766793337159797923043518791613488302776397521152065919077853981610520418992022582038837608121725945940039278650768088080920338098927843073007991489810765949884363263869899148574345509766006462489133316200002965217178478984085783513142263543891032515340601277048840846957003452094691229624282265026265148463887934155423246142631338174049804342623143016475357231502750078165453977504098963826364199350899915657404707909754979763738763524483652135777072709862801154514778681134991024328138387262797734524269600666696725516006391800314536813149255325641072995410722954474289208503450642546276676027529770981423983203289923794189174003729150334401643435052826069224662719227039044919803897873289888429408234562595399653705227292921334986311235728251276720051276141309033122471771950883397016869966567490287197691875082969349946475007214613392448537876374237161447854966419901172974052426917083517882216614115746965850146177016215968626276387007565642249884007560413917505660644322050023451666455452929031747687951887188148736401287873609140883828518540583057369756435225106915712009562681392852011571487565966451752672152582452265976954071661708965824532832566580901180328476820848311731685971998702895642497795965960254335835736122879173370379766226693405367527434597568696714011306975316871827726695995243436556760696942312419627846483754311958261848260369472936345800989621076415415086201264564386449160315887595065711500034696012048018938137969454754332237771219813180643492607987685624281732725681445902983306840314667934197077629537239463942278873721622490670617517792564018219019331943831300935282994452265261552967809611360269234725693133597774866036408394548169790396762888417254753907136993755179396216619778244404400988458504481859611946384048776966394536158674372783302608943066722485188954696720364439144277436075965077617974839355456336777919661430514943983175997818286604344034336089293923414618253558258984000160927734272316666559559192483817184566430181846395831135103720991924694360057793248076161760720114094548186507658182217023712923887775999987961974079249204446746908382680252774454188580144628793022990672428538381820555625955907089146736145328372538409371566249550200863680236991933830158753774494661736830648467443641477404919192290264901452126446431822611363854698982986028069884977249554765698762769300622923001532098229499134411318960699159264589187045527565521487399848549583747420291819680857936291392511120996788112044756695661097027512392337667772630706850591710898264671513567316828519466591021132710067342614965166906608185888024810572323654362372716778481980982614724511344362036426665093453275433260450107925760505016622500868311902314872518495771793273647200632069877378572845915935986726552041136541871145526868783190933781633263573643777755764379598224563496718271672989619836800931274327638236575593218562620008530865067282573536154434730887563442325784675166949481074635556448564619460016027689605792690441939460184300747129208856064715902783686164878200748100182154094673269068150932445225515587562495768625685305383575368908487372563060374669206371603762750905077719001546584940710585959136559403606786502768447468792791294542831208257256387767332768150957120259266411161878731251209759475297064229494998839083550698108798337836481360400755473489321289983964086422746443189827709280488853595034924758437218759206473819474125212215745867227829830987421233433207092128109474168819432541809847627102368524121499276329105290128757016532728684849988984745853017603848754460319364453250672164808979022391700474417986465459261946499881141670698666493440878633139141160409028608781268872025890937258168811031851729169836755154670180361442844497181327005830025355894559952558707574596934530193968563396421248793078426368335189722395627240406271879387489692427952107762727316825849827650718442147799719062984352414549300038817256237108357562419588709278580913743122725415055519479140779140734206654884890431067610536922729656987956822117416289374293116313871160492081509163915064664678638482955037843947698977750537339875218858916794820321642840330008152070188821195267569763589254341678856085813844732456251749524335255986891976248941065968255402087242156221106186267417901294468089431135242069827229271401812661304388933986626763615115990717450050048478092441008567798942506051528924949564121651730162074354072929767084155617392803936540119237042234208410964917900271036999989094633328624798834766281804736767412529028858584945180696460997229625654244389297736044312941938981477862817801974439026737466702744231631694341189786587275930502480755795988531587420212299068904129619646974901465933748299393473885806457857042993882088645410797950221715678261163027506752968348377632863883473568242279764864767175244903593231146739687584106911407320683846271117396653840523080845530538770831488948126620171110465549005629144115360365062532558399025278027105987014556960350705696858576095286300532856006500915406301846304353012305129670109130312540558962719554152628767119564951183705232385537363309152785256681985039480521255352597665544311989958454479644203878312120795457463714688960174458718981830296001658371059538115961981640938319325685576597564200733249359825413350398929020198056651834700711684998979943642180190696834368521599874098278212328253114145412489489976575697216076310673809592340906792054455325286056447524696132804542304828925010659793988535590184071366353434111464943313415150003877517339998798094708089489401360227736093630839774665041421359344140783182466062572044266985052450219983429766196434595627321101970659473681063994529565244560740340652905168735073051788576896172593315274215292978537627360617670245814956991863523786861579598271399126255118807346622917175196495644896681198363996672496545879961244199667554090072086474915599572929324179359592933059766934651967313191307089480225641066305570723101338901323305265880702555561112692068817113753583018745082778495290980456725896544268322770299480176456629207338148582904576570776996946768241721217062555360421361254579684701843216020362435559597317703758083374112917166097447340516445029382422354207636896120925405156652788860150863161083545505022610576883806460532642203278204839901069794731164992597277985864580465854306828936618033498774039760448405314215299643708213867209376160240723461944312911008714471944632255039841650350845827814191728522403121713105559660496962093786268023578630410220550715823483799193173449937692986856579988548530953477490589322779328170410922539408184600800471819522906521084423019387546594756148920639667166853425498430041796551312283515765315827274795083181933940763086066108684855703431451426055754558782920947317578591794214975429917861224462848472731617678951764837536001998454670703324404664236392967211976901052341085748135980621321144576395351580913273151655668433965523108070796968124333747561421315019519553845818178099588009406338520474278169247089872097463547268151804456800778312808463784691533660899144296827504899631217851991892012176237952928354635457438744927973994645562256278584791162849341348948337019388846239795797880336684862825920919901868547456914695674952791207810021574686636842146597883347503987829187592837955434962171886983296104141780130148789798576116819980389671822462025189925682845507594430381215907483421825436319513325513807255680786016619571319242867480235993607155982829894885755034318533867161481958125976787145301127892262551924313695946080708471570350751195942404046272750919856192844209107000396490038581131408422531821001098588598391437225764161868048422568241365834143676638223383518727525266851241543696204992339247798911301225508373985031027455192371374654065623809966179787545199802038143918264529041037143778406877368689813145146930869617728774900468726844619006670478985642913673587908560205569112319324023987787320809097055021825441601441413459905298683070242751248769898225805421146344973141306900269211628559708679663685201596565502145920316067142765699105366693513972429779650526353319527142049129551440109406971319063155268972387467433801822623853798104287339394204976014236494844562458643841094429928717960043584511166273990956050484344804637838781341864172641046261061292802902787115880183242266750265011138423456811170751368659472871165013006339393489307831103044922465735753290876924394585605882988138354475748086123977017171170586347327981006631751133957518943846704690443094397243117958121449895413532445382358962323351628165033980440423533356197529045798065473653996216252792859063995163390178723414611907602454996947993770139240266087877006833932741313058853878875221373057057848922361809849158701664466148629722708017553476878862672313215842778950111102069382353894831444954760067315534310372593499250013560861355536320035994113321662032318242200161948497713154480177280542303475790293683637885384744212220043013179114756659584633012716317440635239192990517747476449688539310902404671856145623616234270047867117100968082666046807401973239321955206409655822895031030365657209166477675979697049552318392540687736813016063922355638909463101042037077439262982999408077614339827232812690624198385861779189235566967056587196330788622801236076088165333486353493174971123968323220901986837515002751151172285710532198056065642036580974622010810586525682625808060736393962591690101978489541115272466346350200534892032516065857734545332123225605072420816763582003317584423203562570705122462574444640729904561427414684330233950230222027118591552961956789019592867623979376589151511604095453583831591565804292104236189173701676638848214434512280555753761416366517193425779803054273498554644981969782995821157242485163989029227589309235718212065860771772135751231990402768299884596133553205468410306547727330501576115592788663690989445962463087151769456877963508971050796864740627934764476841017976873899607947903008676916398162340572164329986441048557360968328367549197150715804587108340571124182328852750330575691488186651140596524648409945372937832752820003055986328504011205179794352981246873608130670169106426779242729658242786910552646601263313286801507346706291241032973522857880991924667072075901925393063407132573109300218118860349587087009628193483431031211573604549313900936496715200486209266551190794642227694958173001464859140516835605005560003313003112111286915824838617807712804596991080785465225807637889897579715541500589989104803122073575292511739091288347132632764303912867480748771401646488836880878053811300017972579181055391204800961839403564304236679112268429284188835427011855568824362433995330655346340332854598142813327548278191005815892415946950606138772424002901162257699976097157579555382503740479744915681462577473676939528520252183450439278914208431375013594322604890517093225390785621326661103860780614870119136429276880081126720007289704461728343374545371894122685789926523785759110521438873573481832449693617103948757668466069239437798120628749515273597758429463775484628493370724807834805795352224400072043587298105788146147160796992186276772816893126555859211820392163819037891707608548629514322863592358376931481241061545491887964666096050335662627897364186202305250531136825169431625719959860329847385858934596379784438514839362139088980143501058664015322562394503076303221335705954607737028455506314444385221163740334942819589039649419400991613716615435830371427684203382430640542835125326300215735038947606555178852279482576733177274264252342407348640323943760600100517692045162779065196495846321409673899966990291625570956235210712240134728060245622398778266931713818175523149229215019771705677003797690798548653973925132403370032505468892408481198294282161779111155356340647895326414675054022067737364488605801297266623745713509204674421136178921481127935977599992763071326217664907045327136598817709447939289916362285661590818354397131896780438540953873082973839058307055052266991163934230718488993792081738897703397310357570300919289459869443196984278330244433064204498761749710677431511237101341964541314264650750104094191873975486753180593860585789966263356343570022382610103308576050997703697334621052473309438980817845155191947468464970730182818990603099341791260495572053384081560631393248112335581467105237331072581311820385982903956276518958934109924212779789061618657597795271341413969266625616139123590430678787737543070583087132269609497492757037662108708352637355042691168303145924507738630728488283224617085600237349153504486685546213078768957568045361276365643164333073278584546836475104489075006527791913170513921800791382627538302907129787900214072712481458963081360959278449035104282459204015243763305881996026566537417021746155584850347709921686122469312754681041996447474239078028886942441804828629631905615281900536301602428753917738551466695657904972223854672478246756125887994701499797541738091426373634296234707978040432870459217855918629472275906211437638372842183933678190238387954866686517364764851356508518484863664703259131803801078550643821458729061662057153021244686347548085829931614893522384547049609381160650159812938662224846857261760518712396857463492891967513296849012614217999838928383105723150379180153569511239541124339119131895141203411814636796505463926241644058994024911040187806217549949104342526630690591982652787183204611607944026311652237541798439675084585589201895014432860784310568588316602537414781988608157191793668051658722691328489403391188625630190047562801085361124127024670007335321995347702719237284281344755854753484083907873778388649256040664230660309811925892221676281948356534094150872267591623949636854208519541334568675736590091199922747102585405473438528914560316969052870958121083210047751643990894269460449905975694120601763965094556538833770880265603996655654843869176513017978900989570544222500484029572917795870817146239276876636317820372224789305607157106079437430452536785077769465147579611463254382090540598326237128890107972027837221184422250119667861272639503759999913954236577665592216673265594944988022006290756389419043156141798526918528223034313252371154548053259341272403081933122510710533700402623853726026362233988669125904628595903371496359830365887993460128976294943963981162224799282464819077145697764431828169409939286305507899791112341193236483678996699655382575902434473864748316788846865836805317980533691137098946410927191664362285698477362323956599415934047436050731110314775052164108041997719083589129773970252583099564273661129150348583811576160753131628076454639348900957133413930198144354038507678508316378976662496761909712151484236694307991197145458409340810773407100229344030590402506832847545566611398829423282757546967706808994552154736509497484055520063579329127908178468681078569141983071340951225684001743247073907918089016890123775876622678365953459748455411574785321049534073378838223878057297074240216293495111411590080857995498242062378467716909667149814072343558622001966653152037185550199816087695905773974071370348806298019051542803053529838853210741250065270567494702524661360592403221903614177481138250813749162934325939672100374160453549889626029817126970048598441128850531257523744698945519753608154668223246172768906343054632354619072170628432831947720899642584081481123900552574414833341433020402185827804950158323616141464254830395310219682105830889284870110657823984558491787361371869995091205070678431485629963579106601523844943913957011642976870094284366577798269612144113769452246779161634322669269640496080194024782334611645720858639692433591448678830632553456756754888300293069468699648019013251146342323894116292550487235568708739787338551039881316970275657173156553746419990702609489467969222707469064763732753968709292774057912198882960355394722158147284991606122399276154986681859103598670544160940639125409870241269373889908639340015453627886287829186973211756926646309101906846953014829203728203041366844684395454371872776816027786901234421729945748997012005468183519432052774255302990369658006296875248635448684438947323709142531202426485314586002737495225004168066768832669442887576607436599066198139820932988374336836842853847987554593549889779472060371983391277275248661485812889060258100077820982399485981536875559964745494706050460069828622190288761212119143349103939672326298170531007541625508037478550160538079318279552181250871818121991565339899891025787906966847375529976333255736219551415392732619699640081588444556248059560579868131075009591465839392295556631111542051787740317864190320261593282771659177061203258137932477115498334003625363016631559342040003910475238486202675037858215212689411050470310406711338612302272059551671993650927694429889926642806151845403909791812504796488879114866459119862269070110236601299030242858287664606060347610368924291400357070044311779440049133153007161184029956215047750651331857902708809766498146160101151090439426916720908154270560683369750491108389355320021482708158531328409990410002897444896634294256441896471402425687392619089408582955515245002822087333870417201887183015916544906580697684875048201698636357437480283844110017696846252466257339685725276347533487300182130931791281605718962707283057313441005919926859626050034315610766702674870462248422575228575991259957553806584106722260297575139046463011828428716689423165913351217105549983639181514343713865075711879140625936384132815545707059698828979842274580188068412139977312798289112016592336018651838349562162974012887393369455643098944017272124974531568065861811024859459840776161892369033499281905524630330706405009586747358703170988380895464239013263639689413934910933728952015766230928738482930908447761014534387010413078877560471005282914923706667961636357946159410886141748008977538836572360425055866041181966988763435825460796497702274462105651760888386912279577198118206951287868710204692416371876668526277785709398527785941173925956357126201638556171371089691477466954435172947211992747572876118187551445243092203662592781526455540577970570601452021510956145931917690764797485881016774657699387230761007432501819821200779459391066108829852937604434459094477917200096503305374344327334596693381048239050115089726082871046990782262818371487330511448070648761623489691093709822834276471675629645601179258164056750748248245253343697981222028273581623312867493199370041801932384282140008492091690746390748752933478227680484892201409978485704354588678160280440359650856649766645506300359956262704633470131931122906655666814296058406292093320631129113206374984362197748151477123240091980192607119354360430438942769153769939884004717485335866673527903850793453732915942115624214667886114699252058305228669010915013195013828570639161650942122382614183465818776547616908462372678449691423515290633991816534540067247406981995399890736934435549900311878307886946076932715066768776756686185864172623043525374324392453982407495845622166556978210429861651736001967506391878822240063213005490075186643577673654718770212106156594225354216172077248552611039652212697210578982271576290488275771610105696310344702204009045131351401315870008205957254634057163554833813636961656919869164417518154637149530611401984416673040317565019532247906004312135666241236452886291882584768783219034281062442382201271244311862681045032040792270181714186617554672543721392114287960148491999123537070829248822496897788194802530409374251706873136407439491267652518384297284456228639087280331229738624699306576756325037690884823500960228645425091755596196322555717675291110023061037809515701726388122557551452443263305767202020858087338004761773347511073409663126860906853670312635616493359747834630838919207160694835973505621311162810874440505165576153004406847729438075563134321953328047870651067829318915106302995981965410602432531273144022066342688216090474453234673856196613619330502146653528742927970233135352608227833974033953311675823071711532214132460838121956426620848277052451207424257719748707543863355782541959258661089921684446479583449428531473887860149399998604692333388293460751374419776365225381392673875497087333342758499059853751642863582488789416143291340085461017002373803041683635058625883167736137273120073049262038717100656970933038451566663607675445992528756206630011475064671850728552783773498439284511777510002293013204708364467353769556163523838649632671811386086652239521643973132737517781746206112681676372136479517583890145587644253820486990422362070556993731940753468829524805449374316612162154282085134429823361613387882064744925333483308525291281576021750855585751633131371484502324544355420805470344927272649617637325797525552116635350549323890830943337957807777772239008684140107558061172828269625818645733468294353858848986930041146277266471768471941076110330826726138696825159728425760466304239193625418135871728844865289729897869271081839737360963281600306378746738780299055404893002982841925606953662405625437981737720353062817271576335181201256571172185152408471069348028751914615695521504416126104551282481221692716188435865950728944243862179024256501974148013477226453363370110787677696253295107740865791720254933893182346008613832895057352321594144657492159695610380268039814870980593848774655156195522855692267236567698198578657582917249835925942457205692750157650395850364844385522953708056056815591861361020910782351878652821683822138699873436085197434669347759748933874793069264615730211597610466362384514559333868688501655754680406062553335444069194727368692826507549037581539748122578841632158040693107159967576779300375418367565038829147074257279671164283197563708870615842036787535178947344458525476738979506134951274379728724690184240934180409356492157804323386067581683147039654977894001661415003517738680145299609329587676713314570829171878245153601369150500375918538732152018014797326651201704917979659563416229038296331995974515870140728902639774718778324266108113929382541034258990240462685419500808859851184678173609307578054811800875860806144667628638522614549322749993294684988483404933016740133752156258957327578864127719295423280494589619446861396710600821915571625154392976191127593117571185633572837436478118824067219471553281347611102265391173615707209951387872784680675743519853056523644532132628162818977397057200751920504445126238325050453657555321763834510909216653096524815084170059920842105228298873457281744222863785879128714943122780566614575879336731221089782645500099745578448996837240106431958804316094012217066977883076958598409496107260655835622941078687790255210913640502355468075948837443072605492488217195394004703661906453287849084764865664320199370580436302930025855908660982965668605419991034463135648138955103866306929887074544449440546749977370614010361057412472040417845214833816121256294217412739619617777947244121807441519162229388541556697428219153852677104575141900632184874652973835606945897720561104636230766896627849542936866237464074176153363471342446342586203263978957845808361689410345314726667141234508769263366117521508361658890976765168554352141827667510446548983900680332774523849317492472924359422165331388449431877454797994262014199587559547384691329462820485520578113596897607630684302103358128783745413467668454068701313538074437687561877036922872233908014683715777206904415914059037685777490762717909614832672353105889495504516215519995701643206579709924940634866172029364248657870648401800960004983691101355600530696320404354592800562348799135594046996896556224174568177158027772814718732246494520833562112919295639797927264480566845252218344267977493075112235198746297173179706657073579941730868717322770050039149422856601341217751145146914027056614615574381071656661923461385162842781501051308859793670347929600877737708879348422712724421836522192882747930068475061071956880757345373040240047635495017731892786828048977502432193191824337414900318159322232529905979792793088918799158161389817270715247100819044048818235102834161933406023391360063515492515489427848077092052265916414589195162804200432367482412124417030993179710871091923862514833149407361383334599584330348017471861125107144028029585802360931361397091866056812838158846919165467458126426792764396272841505927024383015321553717572308580949014207409920951811776375360859671532396481760733594046528296136347565275436056168250209005262014226791356511788643468665296080163813485202584678616301164270964411313856388503169238331020109792400566644066084772919214221099237886759172447881081035004910575019001156559195404113790776049950535566376804129374637587943086507341957624815359768850941358283103536765737833989381756003033912059360190861704172822405996594279446226504215801914999568346108106166207962219381747083646200820844333459554984298220575572875634793578671439374280823168621005405864095906871276988732507496768062927320480708970920272192750866519186749574024415108283449350115744695335025748750452971588649178981220629208472950508909758429247283599182039831384433003237980256736713508208704476463238150827275875513709378379037981641706368297884662996193015654547230821312830244229113454023392245519898048151250327520910036892936931851098375525481187750195748543010457817109871513942113066458467237490129198745341328906610619485051608034224816158297200059554998140707703427865669633484928404382978931639748011929891119602999850252826809150923552060558556958683349326994048336218916801224180679927163879040278600578444985858757372553612977766257001889283618834547116989753506910126807766844229230367452871477455087761142052578827345596726351159430900418944305126693593936666414792680527470920982161504386906358842046069608473280540783192915577374611586506575123934014841398833355487008292589384827810202287440280814204516387265529514742727689201001926537273198994810925067502257378351488969243275514376625036473877878130650036579643620727381240091582609579553244322824558325149000543280345656370048193949122812714679244210625803653979674457881121650319397026585698538264005772065387118489426938335251645060726670893417349375620792558704573814968319233667192756797429681024031128665700976043202370278156389591711740220759502337692074050309464890883131749826323125483885216904728258584910745646542748442817472628526056882844108397121877385970328952206288767509822086316441694664276735387595574499333556176157150808807710065917349101933311408617045269624316368972112364280357114301384089765434697847445417434280018452396006744742708893142773318745878401481429982137103406253349506460049431820779501846031430208941417827231061249531436642988320158517162100611092600943320816372968013216404234425622398660111955773143575031863353749388443159473993663553059917452594064339934444837973036096175289631130615652658941179203195511895198425732243767690362558975448677206942795227248156230016228120005451832587370839596459234268919133274477335556161874654403216600833225020949877124875268469569983186791285996095372271800409529499666588018816134767465474513898534100014496591439528483001155542157048318093015712291778480877586006674902852847038033846703254777870174398341344168573654733387711942842311083034166782295015498945753043550424024471899560240715621377247315106693316831355081324456036758866682938977247576401140178327272347509821576219871715398740380607494933023875223131429693816190614035863224015656679001078088766338707128013183630869920860320576704910408230819442310047851256458914116093929068942252743552112033297480296621515830678879752676811751821895981354119941564209073446199234904651832317872056042002959700060300661313263284440545450111978390038034543334475611517036176474099750200682287981051935434934684490216248818097198405328263241844097885004464689449945879525015960816617974349092597362508581058703425939910475226195021509104275111085928469627660265157951038220706756180471775313558547659991814167626587244956518122013707642641497378248109028009277238494197070864794416303444397326480014746531344440516123641762757501642520299102723535221408415551235692946273792179445081283679808785477980760352088116971259936665677549330433541407947478030792657303090604752028680921499696753979909329183509349897099893002879248725315277912307361449869200371272248149431041299078250554404822205208105690302022344599333615388396119325974582902589400882409510918561610612798991245668245326643051648702873163616922983828170607777594342058498782978264407933354362275204174835198244017624213302163810489769639502748077921115670041654731211568396923516513137778888068339491982765120501306845292063971646569458840620365407916794933118573479996868002177090376380650279309002864856882100958572184398409758977473141604572536494084630635349414397657286473484566672874872126797079464776047836197074920303547151335069889190288022980329334716683494991225722041373122253379398899990597310361662264907513849733727257968813675050087946263521875196218733063174686357326136157637849946767625552928186594960053779482170152452295623459969381502150786376454137791862811383851198074576186888524970856017211721935090994026046289961309669620961892981065382690983739720504818143857411590439793848826662915671463301670719261480128928744062645391997260628862076298584408319431799883199731879184731592028551943924170584566485952598529935248757343030638217247293243080616588035488026753097596604171569819020995266979299165131979591404282690612067203032681772583407859134162558945820829471563182773608423709375081346589868742756815058807567671906927026200283761604738660618462088345105897995550458706924071097543824137195646590844394142888852581803376074353893117497797707978762661555150304762037509653393439938131279186380592646929487548574143252369783999603562780737849443978418397846468338544864120612693590342558342417568713511166226692391857555424315529781410693930634016363352098065750533258267424898118586412697918799008303103870215441917290313993716567284920510960184952355545336509897971973534926509842911225482316403408664774123553500680416903772405411317428817706345554891968222915785603266634110893139053410782008522157563004727925593103238755147605358361511216265607461491232496953721064939476967103429448827534664223452292630810564334341819743289223333205617919225912030392865036924487467755056901486348375774040469067549412848733210295086584173290804085469819163297583320697034665208968000698790158541823455273430461521788344420483644351618605398575719221294702083665635122348999136561173311939804332323320642469246242111733092234528957582396106171981908282803960573800562877661419274834705949875073870712719639479052595226358489014940682799599807074300063860194790538701920072310324071806158584836912591524362063618335170994637988068329656938309579235764854261260280866083526973534981631553967919385617526671417020433728602359936776940582279066100597402432750972463390883611295739855324208952237560782137056999209630642242033476639221475827593044976994993929827477825189716447381404762987030637097752219486609895562542327948961105400779391301855407222278685465167494107353039975465198669459859069376347342941963155233566361297717775590361077084424786251558810109907483959828101851002947871745425427146080006920213346776685924162941587654975980945851927534399078628552708367924448143658245142266526807856769175403525105235926981831906955337488340448550114466020346080079729969304893246213286452495926091747250831509419388760464269677449855929005528151448603557185302042561258289084297296034539669456117381973462868269442714443665503327995592864679578808845118541078203247341263544247649151983646137702948389498740220114760140119378066967995704160078989965774137902265167574673862931135795612532613669021639930001837421664107742624728303154114997213775928187846039022219845220900444551768897902178103878081311684096970723850552602989655247704904505129859269133539378285279840535921244991776986884221969205168453622488246634265451176972977372620820780143692954499934466139300614489772165396888552540885592566015291258053468610644154479987913402165813922301374283997166417782295449339956947148290515049055464774798846439296846586633439551215570389614822051751304177733468361372853348595118677428699329412917476502000226589136586045866178909165730179803428201051326907519450874428459039933542184885823710571603828478532447262538056101973208462377832325996931082808765756580558190411905267859364584682567028195235923075311583892589409783621855803958850099817562085622277471527768070189794357130803235088801148047508663798995324044340487489537058942872180658573788745958089458458037276376399578743169473047697024060192115920192887732005622390529609533916604423981835089556308116092373438653281373859650114130871559247104578816175490214586766256006606133991523959118726272145235305338474889019701408634904261129972358226201681023845365987226766099801792043724817850055080643833039210974348687860806400933922792867001691396932624189120975049817958518851622887454729005869185723670101555484622546500101936905942594560772040354563086291550330266548607707634090598600665196485384016283877456985890720758485950811796741800617546013896607723677118079354251104829425228333863158636483450758534364230227286778131210448639027602297852655216865118019673226743833387577819941177234375877359180481461115195708529122576376729081282976809257879793555342471822705760311642228763054335063858122477505153863087756842175774196768473631290285412947479737673408818434315695045763131246770632411813043629663417592089584640887774312486183242570339950997845433031888898081094229444403229217391282542497477799655557543901227797001679582228463617190569914671965843980499818610167484928027895217652837906150839872972305439617314994533601287828007220207008592735409082701662494164706773901474962415330036699972861118673811765451310686455866404389564426758645400036057969384515279251744284669087787661028013576741197599215110952578605440113667911924360278687963338665734844223729128468211913410344589959398460468175524184552112827827348452438199349528603707651896741402862013998048065763225287910592057897814650747588703522409520911439556449891501944047136759434900268877253233243061859053759290868366874507281763202193382411292023667351710182031652602891988963491953140223532110415751783845330924130960824532652895300170458323229005073100233695448184148302870603257596699077451387459775367686280451487851967332166292748372421868076787083474558041919308949349746167447329468327471823187668591288649264645804308839403976777685898550466688278526543446725521613942230986277975283792180892873262196087482393412835575811880498564114288918930939873150136365835434629661356278721751508080467826507024632724894020319069968554129810571348694894105533471616888441139009873686460960275514360508088894599856736304278745289825158216889321579141547342066444584541036842739923300097874103436866655413502197050236351397286114485880005853433282345951698441312356896127520636276923232573597658659153884304398085424176346578657545422291597899442235317400151619366138278889833182222611071229275895454487182583010402767783224819595842405837511890172794723678250489438950118076781734722743440592776158225309576824581598550972464173208504697070651291508442890455558008314853704205135851161914804926767572264106852025578127500448535830853819909334881311346484824646462198978400798798319981565356598916810176485517534909536404917477949680298191316277986181500781863201838006885586580466801099694242142287692041162949436317511741121431917212417169517010399656897937182325069298885963821684182783174573034333974186855042396219297080540686905907801208077357486328194098403056647939757951118050452077583056230870665936516954641953680095571504839308302759860306680333511061339635439567324893683657402793162779472130980406549692766079442243439902068169523605129703870174413284949261511136551483294717648842667970437063707591017058119448378618497758846877340247398175304649071489519862070334120369097784176280579848672223984357277197502746785278011996568520406055510834494662268645224028018165919004368634201467857245376788749594087036505959370833443129593588170688531050100285602263465274206682210422161007102346585257382051277216373029614910427270063527366814539957822946867534200648329979675502615993329437931733117297104438068921917844550279618649300830285811948318928862664710167688308822945613838067549829087900342488833931589387497103028307340461611643364316146198314504719629212557784533875206319955748601831741352557492680130210190286892688873579950951223175384129433811177692216247515214287598630740835176858997570073068581499535949188686526973252792001211001739690653280883477423197083357089360049230665111663183968726151101806912787332311507809139595204791929525026873731482616067956381244765272140186814261174977485977038189947592680950707684830970982870906802346940161140736792326726172192766491556126266491300073217815255056732074570021590012880080919109152328860278637225567345476758756162884104204251899692906958821736247936508023314357280122726728939719674412170616294473978080406788776532979206710854647558110027864022556067295628683131200291835774086995932525754905543261231713897989111486935807239115854502078417975247952018812150434533474702133411889850193178935793183674388348187490944421458193681092709868377519430177244131262904757827462208634950673832390774843655153889838185241418326099890483095189268335148712205002798174881513394021998024538288485491388484877720389662177889627638955792626756571223685553916629232313739820592286162705378630555289676239302069132462012885807506540193163612313141196543180703931485060168476817983478167857056662372766550704982400926000513467965483456225042514782786031299771919856099783239525865878147899318769939486106066600663449510240251049767636053810139835455014960041211545343802831414553998876063806407962105333509563367784817699062932285725125051114570097274096806433722236765145008203167194215567835141879960687805953863754564228952239455672237838319769179346889355993334861183102910426799274538150461599335911750708278248852163891808089462906703887579083523097465294707200711353334710034422248553306822598617859038190038384955662315762195250232453119655611495047727844884075935097723555164738826386583160432152662331726636747845375514258320998900402685924236061614128612903408258330056052411120937161624847029517501233541632386248478277338416307948547098569711321934741766655583528610734444522208095322541670397781475530567863618275272016378974580160646785066784877129966982162891977197039555999716661589119394885441945762759678726424164003898520144804095598544698430365990040639389356365439352600957172560017602502233715839578222450384233789428459658412642268098422132027720388493248474763530877521321034208245285742033898376739684358169347331970375503092941586719197099427571462619218618349449690687329716402896020593558173313568610446346210904257298286350356363796792499727422910834237211237766424655409222288251984048977137767017784612640549191545576000634985554349317402055511552971126712234144495348568021712802309795743080888769309336205717324273095994048729555264708464846890195111700844133590755862834731164724043504668861284694459307059000871880182130366415777563789273753789051953080320373469059215241255111631374190637667017120534081029871328224336871310567323460295278813094810426061611399746331932750399639074795535209807198242059756810884652277508116428758647317851619479538453294752733099371011103668572985362208106694020529521841184308123366683623576677534436103587274341871163320407231819582138691532429947885838930042167250403624836692422182176128410302263821812172600392659933391122039657063726783519963517102149367309160111222237105429841359615016548812870098140507708216201061595802882302808817877266548743306007171400198345991064062829663054418159023604239920613429415710899516692476424456756596422367648969127316588658014004909107300272358972726543816217771620263853606497832293430743147072339330881494514976243345550691041291638828481099682088511693969546399923978954205336198114829814006377797864252471630493729427086989961198679393960873706557845776748301622534119291099280440957280569516423954473948531309397595936226354476157794157608892032404913253244174456069270574830963549139276024626315797138133939254366712972382404243178722556248036239582806355976304417068325621584448758316897920284591336107809767750592336315619958245748055408163087499386851944125931957911555202464099500982265545588259698121312480177147428601408259343252051278328589552470823120268824674645601382724079414145870957616604578819689426648227729825689881934815040879711108765209079948827026644775792577555813199743213213674330391461788974799928858383491312915733798339116229035330151600239741565218797380828223015104001774949515405082581670838903237783651031591495415085142166005124659169585586518406734222868997148486118670064707651568205321246384822250552104217239592916084747380452772166571509134844329207824793204511504080642917311793763614149728815912503423980478036647831964007844285235933706765069724194455646427107634388733561101355562003576431073406081552171965997137858008662909139985121858410340952154462350998654688967200016515228054527486244793716696616314230514759762842939552569208899004306495257508474714279962071432915404857515676725517165775797148069860243040792809943735941698180740871055790721863652074958587430826184618507152938513218903014572620604897830446633677796736844542245228655417576004806091184045384686964632521362363410047651048300187510959309610748880623409655912715555508379389548814543881404980869649574012865293550364906502642664249597941080754395939831587762843157258554517928053290870698285050295175055164752916628579482680598320285008050289366529100974334183506085024796624350094475395237860388071437523063699504460430213511401049831179654977394292537531652185440638896005497563831990280181284063141434262173701729226043176399437246094665891380839403031177279393395645074589399839108982800133008541508601892992924014090674757258070745631430851683054690374592555636014233976694516616592203538005844085543646156809956986150538746188077257208295172310083164596044026034296187753664355167701251584089566850216209460309647092540231220294187604527931635016991541433090057321098255947577535303797257144031487353581129006140437887695262583126260353060433500350882156820004592963912554110478222659083202753155336152585838280271708496653610023286865967049889531957889756058038303156912505887113562467312092304965146585724906427244440589976975368250817444278520698561575195426996362885443721482010239046493519988649627907199175431570031367016530912713362718893714595115012703588545589296146425538977151049264904422093655286669758902385792200161034335852276462512657421237837357466415117137979147846198091695157186134280173572331392990302084790090476086297631478290720056223109405418356254134203513500968257966079080244776395130445485782989175112064102361471069350131003929050807930950199256041604218729416260330994478673697611175014318260940732375033127938283008532861141056210715365976376824846405318178007908676227420848795053298778978040056250616066232692661993091977351165220926351621001094853243380106337380183654580469050228023077470338329818083517094916045366553834628011467273792463332828424674212573799253129555060349786206447662925652751212696913198370397440306387939217952823649245389762892875489828364708014952062794559694479393352556434071655810859530771498928116026146934280640263783485094545687100436403408046477445681296116768630778665707430035408396918703944606469148992085166869591907211659356299804514857475122751536147379343912545951172552397822319786694319992974995499501431292425714795764587125255270218071784687816777499930499140781782064691907003723264958953848928721177091861871693559115239468982723891649543251483717148020103232457928469562186861521895161453459552455918711356506461237466963750381129786600805334375562362639954860134547569566490748936411827923795426687867849986213954440507642462739054648023637590164485934155646229367345186065177273442528416931253572632592987481639430687394208059711143083317620827099375418476208836672678448145691403769477275668948273632582572425700328270452519312590395258309149207884369168745869606955871267010363543647873930587497371884948107223634524114465126247227529750855119051760152261879697510393955570361957770190569488479582645271532559732489549975801539925604073849052357228378988834614944638745044042292901160719733412407144728884034441224471080612490607365497174494571541682725689414843385418693363464733353263611814817458009046992731518831446491911781708670663544535126369343395184435649588798868284290455518804427775009388140273739396918091286060644851460105955703896408083692230931422443098671646322506777650588115918498180971090337592438582808314539913536009991656997060648051025861344806434312884903445370010047628444744824620909254632481038253319393547128280271305252777944885304376484561954793727688554518354775852743616222874758906523346195582623677120516469289179241509165764932797161942767952240198547582494083679384683682735892012158080963455346044216359893196182699670421148182472256425833962370805730010965260183307021382946275473795492114851469466236934041834435889858908742862444436530826857447488450345566287447854356463916166276624507102678443555207595158784870651026847313567322657385398523699001775134851364163574066925320695858684913038738133805545964570646114602434838095854380383836144679665950972323070114712864373853336827771045433277960834504111218028816426783139025557788005476876601502230257586448650222854860578937480543347704837211844831278681742891922607400125457115681540847320190778697767987245901451161369697260542233598321475158638204681115905452035924935905715509880992928972233473850168885710891553371140965986946256693814709907840164574235328015852503905072763386371262818524103593858677798768136273230791677305634217042886516773026374292812364627727125417394501394063804586565120783653723159046611666431758277396941869104793253775089054966423924523508130421526720991681948435168361145578667815954493310377253912708792102338249648380610742918383080173051351829828018646768592809668405005576760928492055129496150264445837142153117849654188869182121151566919327585447500822304536436536875775345477940320170706553877860776526637243044287954687636268376743384114914390241671931177863902170761999162256519070827948939315754258558570664335812263834020343552754959883946375475639126393881373583139540174242963172875822320123314942840287983488919593089348709379490786751765697507263311458836008125061131655521320185127317172935093023919298214608311077224640479305147902201300394639368362014628084283269280307243715944077526953459734510394006788016113486717640523927646067912007599145709225570217520463007095184489109883369421204598431452401894734699678986906432356433886069647925832403477727737644631616661383539610254076942233807969080165709767452256106350632615339556817606778682240359875150772190853256655675212320646284489180191652672515682519937470365262331186468906770301361992374677314437360227093618220392491019416252442197306215051317249121048083629137065444636526098875968217701037161126610626832049885228105313377185120882182943505410229355667064991672724816178806256145593341502345206074077378031115584718013515137920969412928405902916815220047620006793896499942394765488161372489560547274174673361238825984286874196378834777500677836235283905567904298551195567176000506243243552245365608874434520216378447239819842567945918108925415720929992185925857912485020544911003154648400155927136031793656096061162989041098958854292514736593965446421777126084346605316319684719717194553714070439402936637844854343278705230179076257124997125300033000029020267343133616617229155771165834820261119798884779518998584807332954525118583181080764375809427680320392429048724456197641971716886706949457407463628050836754104044387603659648883823750431441659797868094351336290154742317148481757266502694425643159991903136095204017885700166312909644722172044022569140706573114781074855682516945517795560213116956992188946216200512380013166336228626818601333450026575972166307401030445054085707302841216664587644849571974161892251393003759732529391939865343683076867125243031690606629203442254153508641914208617110055243968169517549697954655370691679219939349916714367652604364963023956886956197173635412705311693041558659692703856893926904326295056252037041071135956044797214449614903629788452933114265312996870109040194917426801467640260838408548551046200032407824509870318123965699238222573731261745392330192495702200558947873748198127648797291910560363347013394954594851877389213800030403471413094919725602080229056760338869946278765812885879271265354878371131596350845193469914702827691676016262169774521196833679995876437123827177141560000826393102109010072368040812301460555747043491774800272817637743148718547370928637156608385399082871891040975238122936148767422922198636636162044808504616944738917388898485317368873631072815260542631250021129357044102679995866272032837512125658437723233840182308360367478740177079096008201968059465324282008685724783733020313506624532135444321916029281987791590185569641625412721957161885214088112797401899310201145230623410579919043756643068551713500708539356565226350050429994861423560119165164046365552754683392266414734254975423563332682261991656559152979529756426080059877826221932020719974207827302370223688027094024783095442593542340058718472560158667191332375507518226557674544174007721242612843907279071893362119071524299678435620729701512797087674697851892966492072452989402916025308129526835227876994269629186739905125278541720747392775622776699011491084742869774981703854911814012098061693855593717042642628303644620890887945154465847805430330327758406777629986428646958855943495003512546807697406531856536360218469377785465019820926961623365675035377656093043356487878852068933129161299721771543118143708104785852917931993855619036039299249909868472296432885197844936459174874519636117116741117641549115078290261978532216129879952122265874549541697762348251154570053537965463153997012353654034818921031805801521547812475278039281421961247588640294295730610051587776941606783141640023757698558341998225158862140303895520874344747256321350860063263911210275100496375217796197883431254908011506671791433026854610472028482796248596006085084373870479471369015195254283353746837931519548837469282993387435952229912472688493178103626975864259731854145528573696479585997768507178169521747950326692602621760864458880094806564029977140646460528702890214978508081702030130298475389243837864508421052699718549385567510494904191743785262746450111145080466572206305931469107544765881598897975156848784400936281809629289053275736212224681840222613019433422340806358818003086550752777497024813583661526737205568029392531263943006584208380701056805880425118586528112860701263458295931690902706282474443295633604080927218849600482210118590814254149444000811515241079491719482647823462976528212500004590410250256453870439339345050515467142182830853248177861455709780675005365147614376830937956471890727509917957803181177864756583848382547989627428896287542182458100532443177273666940423489759152120877403667536543372790062263710592984111233722796069113274823363739049499363441236741271717050008872893460485438772864912037416216704810304330780433723998081580182194760637908238494189299989994163316312140188560377042084924876276646570724287401564491039405091722935185542307701812382387516213914195815727558447615722044655554617149956658191522408368365573131306859450456197166382295686170813569094121119812000903723524021213508215947773245013428305331898382864207050623111535836208788340812283821388747676390927315622988346853907069103004127952476079990822503890266146551386527315366283549296096638497394686345413006690734702227361117331261152077833434232493311296076814024981684343178889175512893425695858457171266922885592477649550143426781576457608944883580555676826713476703420726416191732422364067364480427685484586486529067176262053241647977924813040941612725207054663990159212262993536781332881497745062785215728975817155803028126935496768843789453979942557851691191563694262590628795118515333737250088370470334108847857359221855715872585636003490737739164867939327932889925090686763908077930536539722998215909774295720010820599664161052785040272881937918870931923809859865108179704332030767885114860775175245777510926133965125302210336897866347155783851914220534102731304034918889368593093454790482562329262633034582115126529583602464794497811122263077753434689389417890187749161152992404842668720482964987308075717237409655929539299865876467313135717258004843267561900435324556683792036377176733142509886458639166998390567442663379434222399306369113368984826601058739772777154234960671177370333989367977832099041969962808102907799844208522195367428260979396239296780040453121057670763426927454034797930187371248779730738319106329037041262397231790020084558557195389170843097103347491507798512885332564781576449244546877949010125606461496301181578016891946585851842317863737367774262888976764438061612349129941784178592096759912135555015728997498446830666530493819622979966219722442177907350505812152508002763385902363661607118188779226096833750853362651299607946694062464997945108597287773756605070174488960544047728304288498470274551700582752283837958857349227061434262842666388238976908542226479999820140260459003816873065898041848116426033678960528752326488790842607747792538915391373525320608571795485532711152931347442988386659076616130744093604666456173330359096613820923114325568454328776283427007275745250053460097501609580677241023960823485466203081987934916656485623880228819822663062354253314544089227926495617905981546033947302544108802812740564502818952754409496593539370902519649439268658848835726379754011843809950178959337399672160096377069441269129475274623262778499181043512955057995980632780364748184699278696868231943082302842502053866844901820376525308514308014643330553981909730259359110015244040894056389590603952665105493649771359028534967911267125180377791795998899739593020203952461984450606937444359343094072824674475776499290335526230712065594700377954745869682694198962969389430503422744740227155006460642032988206045289514226333227650003572148904906134588355088846774351600179128226939624079598297066856688791642056844384481441359686137976745362731761318908161958785047601087824830499300602797346295164876739270668465053602638209184144755830065198232955700791313801430302867967018161525891255945842098349014645942128104741441646580450282768358047899615604614457797735580916716398697100122227239948968595127157162297328724982287058641811516584184288157823102028109021356890056470075904103014708130207482962753905514323361738772899832983435339646212517553796678927646299612319362876774143530720452412331575335268550751011721261330027831716555695920325257540147545660540504407797932957149992248667354668027572420164648670049056566621420186538135592072535461274706510100675415490995038156292217608818433212482556521161016666482804330636036029479447908713342515475135649962199957115984867309383071647180371361536694264152496903981231902847707318678289882266016847107217838107856224093548904539369210336141137408004785292158552298711714191041260697271161716014455218515625507183429595759827645885296942697438986140972154826701117856536945820073430166374262550202608524206771243188229671504021050503383370672560069902370607628291253500838419097820639101085022824009790686514333076795584998877547549596220323402777264893620715175444653988357630969673510305183168723926593116463092414185591758296588959099499458134447713357082296680242469252175107662408847927110895392674463694168498880101837200350575502999958897683587271110481775463874467217296782427918008873979195518383764250915506099209747622458611239770495546317954393337720994292764896048053732745611647006294517810404900127557401739449711822715217901732787013920386816976092510520551569730198199282689033475097626594045276963704674145543998457220802757166340881853022068022630663905247265916444328730037826447172827416294591678557610023371574030426231060307573707511495224692572691969345018267853178712023662113570207187290803006133582753306679369277013950418350964210551173269769307306037065581716495781754933303731886166994024831924084160813234611990788024199786318151886446395294246809924000091547662601737124961131703872471986958800155414958509824971973757009282505942832858251095557814702933530587298042494326135495730378190432464744472322556114184709026902521203227019454714401582786997829874091303490472722648724653410529481794146886030291751450741544951600492096899248265728051486206425679561069445348956142078692282877911863195260836184996030480693557309221024265629551335244849131480369796930857124451931586447069078720453524878738403462844947576296116885951962786518424748488567862951366208941575524865866251532664598927555377465513493586796179851577838945654000380544912810238636531312761714403544842703634453740921666293928845315084344654552295893109141708324600100322385009770615872134607475484472117684073878685452591397942448080625914098594019380174442158400505446231621538517719729234396805274818873530823546493982423942200133310538789582337646347730894026155834919517312846285760511888505966396776715979669148208839857929846470409027053782045412904615255785387337615464617603795191508570657072418983515318666583472930333618465826377377048944060369231633578288396587640551404541653158396253078514325823430719922378515113707403004752515892435041584598204922219950117695863534087586978123108358269538675605322921804193115670123928330963659195347364822978775158866873097422918361634647624737196326540157254287137915270905319347778452053192730604715096034617693765391463973194526906866387346865368688081448259763073761862852618507323655978585537126440678858299037325831059037049710879812124151285112186053519478077175578134605713875931395813492020090807985198218375507119822975402332458753604840221838707440159072721828368517410596106913762379689095494757037354358113017046069114433063844694196441309002196244378678778216305342232248996827458954054726528113035751433859657003310025246092175363910224829551923782029951921170481089479850259376879537813222390200044493937579831704089738145196587543640390705161909491716576715924068650062094391366397940432444630243592146777648553670438996073036591121951968587074560720668821665562698820502458948028184215478760956177147668361989045817740562869454047216522394617992281366027504540996890327670728306502349859661680947554116564437339668752957698939050937597007778559611198872764413319161016503128005959299031182626584630840545458000202552986622760871190420204643242069844181404033013741414779427819607756590614664761506642424952845460300287129935164598034325932367089129204987301293860578744973520032059199360627221909853071740388315286855150487649550906112820795662314282192921694093831188344033837925838402033803365215879292701640297710133973712635856551834541056152750882974786610147010036628231731185009614692583789656576223431404065940745601828148707987425274651211176942716719956655958023170811200866984950255828629481581731314371215373275258948304803276892167275472284565941960573137120147570497560011708131157790529055965568702906057493861372711871975480987311789977001670118819406147418556575382118710859265399009995995237414296459259435755565978747198974679131012852201218401438604872922718441497531908103070743464928940807789660373423910051506148931455480923835493076042576534906512156217073387055572297671371311717011595150160039644746949712021256603606566356360194357942432566958631751889446869967018504019882762531899937927366622302642392588515074458488496183450986790790635859984770554617382683676753214666462053676295485876986006841056574377375404739616617401720356148800448927662071615363583220412098286992669821587330734431522501364100219389776577700720189808872909563229856676021469276174319471240334990158156575833976981672529490860206904082234369004360384039360645033517306799200999446868616698139148805756158116963873099547723153546387411629510495562432790943529667951503484255003516262338322184425542634899403003303654689492905158271891713504671263280701387182311545420878764569580088625489223344096472949133185728699653842552576836595534597691434550445853174182789928507782870800233212192325412118023810841065210627634422791704047250631298949277256508941789955394563782730771200974861231928294727058351343731177135121771855032519852349820640882124682115091544112149710397196122716507445992320917146306910951268979984066212887813286644832352588217084375047864920566876592914659744448854269757215961020665605776031502614648314741655319819132938394732501281819385551068266689115931221359014404195873719529711795553663672395819076055651404001558570905429112808121399728482912019143137134401496551720838232857399410294060653175886517796148017768510784429156915761357780027612926601229563288511055105648620022972272418260822981568988718805377633321334898223611842371328641194654661191871240365053861438246782688702258565266511271938089430161015658262512391003350294679734500278891757828454946588725339892827853037399047966351866324192645595862436710258421913293271910452099583090003688550721393971097307662010682692999322379410476144359806074669610096457011479499150156936548602295717808376550259170473858802770451320490243974531515576665516687596425570185459264655131372785122226105709980220966303388905678747277188065377922531149185762139475198181106058062065085421383875611121312636437981128822298388119116326216813466960323315625141239221204015233995139780693068399566555099400332367231825215193432984439227224653447936853059803808026477147864943542289280863362620043006489170367114825973284340613464087948102849271028406865598909000043923999981119333672499026501111427661080839655206284638829635452491191142703484018024028787477365446078122641650853443757911706491282564034790482452133031324331173612524771336532456822648757454160746077434106028975153793909859303856681221381512175647944753553916201351283533010149186052783462230018989524580917558088741307287659328142557013117714925715816626533963362098445139899822647066225913493196352110690193283718036387319702579832776281877059761817809469234107532177762488483092894263343954204144819558851294017036303413080247829859584709671517780064843648665262866682697368343727371626223491885364902892814827221780338131654792208635140657839650523736252839964571623328555263498361446654702093428978756380947014177042653520314819243205650157082090239591811373876300827566266875525889311756910724341985181810729631033146402044229344732521993942549405218906181903725234498626941556619200909205196612744174180483191357206310275707476118394308717860731580121584839680956348254867362959493668631721446872516490012192070276177203320126999138795377756671292503889139100815270147434773372554274500338853259694340697127410301876861409293301918022975809270249444588145385346697281629959536795196355679501700289950428792086881401789713492170927012673988053722253505307798204758330749420491745525051721795548232534701257588266811618224088435482744467628869052717375843379938750225209729690224471379391622101276783536257865464560119202425792898015536798242033057957144764885548410006237403872108028245332098469362977141559570709905877121136389510194125276239663336852483847228197092675670592299870459836678777848613148286743994499973345882294210847261382311128786584754264669026024441822713621150937651666055551737078723518869579798016431148092841645199767360377757197118702838526083454785436048708544382933681364650234674150004867875230251366589464900308862535160565885406892785987919454911859302162338659764276475540156289995974885944288003570234482015775862940545312617670714896894467461936265557897543274985738345161835697270070618119641055432500093938894526288018389116459423879850123337503638677957862984830251919391816992893332149584955524093188233205091216458311935093540157568041608663886158974457161594163578427790441994095721500137514899460633450920305860280704291613614433593558193711361219952902338915304374157418998108441387316789237859638002615925771157672656308658528118089831873288000227979557495507861229629561793028276418219677165892332052229580957315249553423013981295606632872928974686988196351933263292748563863497000774342204615687624833749388324597281409892407229907234078606152518732449757220863656115715824474124255089212990356817018682326472231373653021916612258397271816186281402813279641460107926540073163046517109073694748800586721946842320363231010228829159048703201004544022029227048094393037195854880250457163274308055592882140661092999794710028165977475671415898024489100182478152689736742898867182274686310118343454110451854543453030275519200180855470897832838758932277294327846675620479475935077632714870494406817947850110562944643364998585839331217715545968683702598189845475017096434603242935195623540301117253660167710229736859144017053694334929314349176523042076029943112338201297025201004207455772101695077478592647842407123857193170772313161686708651766875558815093828134838685951672068395221669661877789309948670260867869268739802725434869495392095180545541777693228890742107286724887268765260330543914945831185618075965914625452376185046607425797199224085581652861599719314607571736921504127460403722634517387204305878565181182250606578372013905599307769961610517936599190725505059028044200322387617437120318829760993552412006002024696460117565648415320235255779726216767166984003462212155848447220575557212981253810094171877072906099713883364859387091920452270585496985148480266926557693048539025238941054251203381585087005028463499150137928003110134039535199933670954997279350253622913717654830484324772552213777741871464532486967842688419248832097238757710026640734169206101147028179847511135384341359512706445164448427941488856223777204687157256940839621649114922667267276832259434127140407738316201215169672194492138558219181233468567775441795841057463903267731071965196681664959806119244093751116685501086654398961279973744356056793332495061361699160661558795246455948643736023277691891242837678872671598937386668605187241459334449101325208748222971911356766067656015136558114008386389030728212605987161148297764134330505604976124820222353375656348825037996096202935466370327403102130611154571482673832895277582305809893920524872393662361536523793037918201273283797317865449223703942148248197624700129912092001765971594448257100084114547253656498809097765663135859732757378385183068217079762349030712510312096835182160585252789852328625859062926235027742863780469332382176776709168085118680631056191694385529726608206004200969044615159135470900547273280038153478106395123544848152256114771226428498373159527158396805177982633342691012659571369921054266373767179733655457818641363662216813541118403633646666480541213858225420455668217095668127862443739097826202772730145497309751665750390081368411090820689438645287962113485591098824727263341149056929149480686626618381681495415756567998000192161468982627865376851826330692112578634517255575535591922640799637278000998196773293487069076903705166042596553352830260644794440113063457026354615571211918789409974588447014411024067233463319806894194935018676422614111387121284928670152815720578857655192736093827606620921090178499552933365498120445781238580374443634450764981141037289445211430401618750916657331592647733235868579012988457986731058481715789793868639679096829540135879656118996133721261667403807790224770057181525382336130880742960164693759020594797930611072447460038563380507923848189023067590185357104712556327816221052118019960778848702842790895497747750321164967853116659604267394713362430104678965214431682243360789174222376020312180750975663786089182232456157238508181764581501647522120376951759213744599350680663179964241918542971170175051972864731346699470504041384746889344292719104870026981745569218640012270460161849982050641273240521883283129922973408273583749447039388356862137000856484598906115259999881419616215818825531551692441897747424885588032148374227139392891105302446925660338794972295411411224666474855220373951295362382283647911827856052171051436816524756501978465731762436962291098525272893876716753676184939792810157700683518711266227083894357902008979642152255132722717240988288150739314266765927950825078330776343251551116424610893574176061308484049684741597285672574841883067640654192034732509264561544364609190427771255658799644266637624602513071619172471095119623439936790808677457617658828320342570992892334544205319651296065688445146545754767253872844328791236125932673764119302274389872812677757122200501602240636815259706924482633624279246075662937981582879888254481795434324008374693407175092564677573822020005252113680775819115934068778137057813923130605874403279928329265612799208653351315657318457457938119971594131387143751753420535749999932329227106020384062928502005002112779074904118923944399802598845239059871957246641439401119825419013670128698099624168094164668740853341631674139473452420977753300211227165070964521932350891539703023324164517074084727263012818641108397602779083194470349202365409358530639425380232133065548121736875674732944445308225339933919444183029526716767092885261172376419476427206534975423445322512590578344857590662817108374388564240739114249924700282790047154008591000195938445423768865473999555282540564526389297158285986093892639085255127484661523767083694524547119138313414885353003043049522356967424615711496973579253834092423525111858441974622444130423107127794064620088083898684118098229519082363077748275431252119343386888115024395065592561028897439764350483586610507425910741779888912265396649613333974797252032822546425607718685453126893011074375422464177745906844465854647975179438102682087720658198946892793970937379116804783548860181792771893489990962126273570615408493357065272112990058643194153739248832791442216062948005272143143441125051029313740710542438139985167706124653563705835880307202131871232749937345589110987753222025555908888929100039342516969401168649063488011130144117791756828873602039321675428180051964727905896486359873346821180036057012725608672431389072518527534315956043592609224048146854444283876514172587701173726132516060561083198387536602975674855999757895721168163399719043017746314011417894021344735190201856903919135039327050455977306163036844699909351792700338439999441285703981079590053937286622313037666292454726187832070468811356351460055401510716541084966506581796129404497750539897307658935030794345493170387933642452287576668409411633344649474480447745109153914072548094533293448460948678643428351069493983137337696521663133545479465822978655984913601721338719143317846165346806167107454808620820521091544254455688052724988733366046808642311037451190155158205271171501108558605472113871734310393618464843390640865391964836164741469242928189625613597025036868683232334457145376778806675379750759201714517292229059586715351384893410941660559939936483865710381171096594060230470984364351796504853540139322728949061009308622613531193466193826324794958689506217375492468995491823241503366746748520490242459561290730044535724240544089233699759741301786832136461082010979240995584994404410516638917915606991812309241646698416980329739493592682493389033543871403557902812134944210037132650618380941968944591870375812462027521466123417327054513687366360717620160086615987219691333122288666670091173238417444696157247161068977655073065060891338523805812810237946453881340955298574456659161283645062707993912154045378149112460390624206445908300564172239903280005743696071254382892249754831693848712573709375015845976661274726721817423773900007790994896694638529516956755083996431519373215143160836284075489568139547688026415487162139272652564530226529546481806339870588911050634958181702652412937189224725619052765263103007296215890992523925022061738080101911504435846423872249479613809849335805338198271240420356385454680406683523606864499378467356065798361022446161755349039576740452683369788302369906115784594707620352515850891112948475492578199194703822126520762398397473241550489237584519983321551509841909707192420793979718134094113637684288985786870776801991207760076697272718448131699998436523013950080871194004879676962660821276213690741269679660306176309232293939711894090498542451064291548379052764578090575750916100942794722045120006402864195158334796145598209804082056673126465075025099716705991475469395908009663970379507129978765719473555181589208426686436177374484037145720653420468553996017380701862800202411554649536122735129594761984433058798937151592584741317698792471445235444307714421165754192221708888817428328414152924961505394358093392081658763954241646337394053460702597853945942227864359664696883414280674824275675477779722072537958564310701128073785167103415513926741856941475479267312090625616285782228346636687936919259869376008537696314586689700881579987061958941835478681744186381346046001926534089833874665757714593849312401938597424437582560958779433398653056572218103686919711078633307237326626545590965653162940034960935023569186392432152119355911756701961897944323709591887280356036833807021785204601924739065747031137954469639215026265101135821430379264203462256552564067685428194616885375619331179094616624543945346871513305209234745425793510148938151043188863667203847995865673133528699508568048849078137680805195651614091085352977999247299368848313316407295455821418904251925214858018501060005017651364590609943496531823996706714040884624909309739069788612956885246405581789053638421738706006957298334882471326055296598127073559605200565980321124423063987760195013197766011937234126208694707222679404240419093644661676167433003602823241482614444990371612979778892326627966770075155511295792722263547922105729372716102417536433590421052617971240020455528127665327588977605738734183467297854167684975759313810943045204944055201546051281739943383031042464429333935945220965883684523926657251609951808119323313708356012579209805668440392851599188785152479423494640012393750236127265135180934994383388562708450923912476983500661329773785987973897068827205018476230465565269894736778141677178541946678625826988625404579738308970007522010576118376362683396246936202626932037404856821157512233792023078839008703927913550208135222523241093090392912588153577952602001960592417826542357315007047539006276553074964812902793016819529018119215553867561344406253595563069937517531412712676738095499937666339768689499356777387833614090766630921950106168563086284360013674228061757832106503382847990593625108993483214592839558032189524524782278633395576099843308329167315946545863184404668444837092203814246752359143721960329513975953279336495930156993955679784423544964456750459337141167838384348931174261923779539852576440744403201290516838406790733575408612115092360418441689701157286365598872432621961576008466400379149497446679818581918084303022688713601471648094826933598447201739239433597811587156547708780160392722718224119522034114933189864275173043333114410660059020915087458691666064262815089060568039557898326124945845486778371418475797116317292125068419674443649096946901121987511432493722742657416479171728409230567954855626423308731098840587404745673082767960703964142877699617238698110716312762122138568632148284435720758703781734592893561395654417162443859223528418251140765733927848693204416838072207030587462769536749612521129468583846489182959919121272947617138776689339205153116463714202499452204895046649417944897899167019562769858461503342363942491902604153297877818488796564363392981605491895994501963798276325315290725375688800588760563351985939048309989348891497963668576025275001091911745224736850064872997293721539333528568138851296815143507640622535621510506764474111889290559310670774243483611293914624033104052378729064798749844264643305397861576592711335101959786543047947137824407579103041773963019027279794385347799532072990455324514937909178817392433401550776539174416084562373396200792619948301763789813758563792193245251368108493825335349019736692080216102977616365151364261344493416750058022195132895104584822496909908916476964092860577941568840935130074694588884556405829795179126850930441309678080298693985411113278142303251976355489640164399173879675232095245437355935369270882438139950292864306791922615390496110226506963231293077209955965742635196023129184386961768491050920619964094424979966414549147899447726835630883088593161974399527120173081362754957768538844603621037281204533916737576605428605476970341829958378070969560026313545109736644637441159949449985389189585077573568036151215552701166070651609876380824520773384884965257935840468032032120067685912291607825470406970068331263851895869723925580567375083622652883026070194510431645363215912202155904191801872784589749567656336481940033606189431543520065756271244719631541388007368107736289006561529697845078848732258200947519211454668406036031172750649028159296577497602497934759450889947330939041724372955935189100398077046139305734249278066388858575775482292435072947594029543052578484868805730303292294984205625864118547968373770184778126282346864387653900803218991901859612091815998383524682897329259017457673976283823997259187995973853164403261570771813628501957229689270946933689129390316241454635247122072114043082171107097195440011979931032958549462504350300248707679824357151157342765556589238694897258856550874019835408708994665959999959413501411795347087871304762230929557478463629171625382768122348936035441865345514185171671442627314734350404735889890063847295246836736262283233799567655170661340290381868572587181554959438176172496832874691099169450384877296090068870259930892542768262357007006962822082218653464375514067647166550274714307316528523680628770271345034445599539091269548063175376527899783925412269431922688584303348708880536860597725675300040333324402965212948402463541415688623525691676363592526449453642215110370595775382371660058180443384549651434561557564414030131540672261855967666415143976912765632439562345156160490881877487576694797123784675410302162992285638116496095327381092088157217928277212918262977979037504952112563296347024691262558826248726844464480719281377676129309810143976494087334046034930452861707777554952945075345456564176102418927642193351987948948167251264575692553217200593555960834686737340397707224804426763347677635683975264211038288850221637216038848854500446391660594366588651864144735817508077754784121258049374673546124603981176146730784694776342475614909874586075656781133014981931855631090147829887554804696923144920950074771156548199161788421116004013482112545018576917081649777966842726227526263096017559608090559284826591583889938908370075837075615816329516859193464572916030739234718033774055053402582014577254482090216902330334367099269888600828221754783463100957040933943196439037276008589318114461821714777165007480584533219247507577626435119615850430373381202761643174516060972864479611777667473809481014292952114980862361322576241092428878828709043754275775428627320558396800910149103304806107898556089685812541686096777989783913884262409569916043406409899272502945043053621624504464567948757792791162207749042597880108904016913970201834154052052981864989001450176461076971524034213848559184381774043331566537840840017787627805598121344657716975715693821769014046405696484058234544575003418578585669468265586627868516839940620711541774260407086171566916377923438324932404669839513057291376292428798312308808719714164715608509012981537501160907081229004504310955558802919161377361728229455152081438219146881576745742609692758306916213808446633440594848697961934446608124061716014879720849142465238419014709414901921855249124052184856286345046019536363669238394983916497335249143618904878098142227532797185221616075073031864784175098679040545798485165767929678917360481914338821426995958875398669322708095780450824406346709120136086540065720591093154047991513595528865596347676930188255928489145698200815484542953316553547814446004235125420947913799992347828039717273895700434245067899633293710931300042581740398259687650366637695104183354898789718795827943020619561155383289491048684502090610869993065900277730877378939488379728372560739847315726541972596400907356975171368357246142393282479866620988203234268596164919849014581641344694355841122106253082688955756484743466497382418499916207193662993546561774425875380726812170850448415316165373979897389981838212038584061379080627076330665900521159007545058931973689958271234545331238625655588202722633489364756285692370547232301544224747698377971761616971183177523330725272267188925034663845907394764624757534057192414998782033687335908316992484858187362151356629422346534573624505180218772724916416831020526780731102061329060804967201000209149991526515685608923571152758581864761852217346314246817727126708766890392774200189048892374185919558771136932865498486594361251458993348492235899768932344769888380953685321035731280787164637777987560731743612926430298180621925526968081775141449861183481512229812654185016261949611601472486607517341844272609587096262965078420153923635199982506164938957631975899254676461981489963336524159248158314935724635631278284915964368607280311585025886137099993704019953259388248013076084729102219701299795074985846432732085459173115780599211751189825211281759116714876980921933699250206630235893107560228533356921579989569380695936502927554167279862348363257390210215657509857810788068689864492656048469805575291962640521915907937709895302270150000250970493877823445723526676146584271059597739922008424195779523174224396341681839443252481578521099017509166860635642174498164352736559616598982308445748122606538931139632499204549461688339716765605543384415495868160301293329313911329987183718051359241363697252003709136246221210568329187135479941393369296267658424899843882745750733812470734041161155996404510679417442604624620583253747650861058436833881789024802874875671153974168189275071767127089022249729857704867589588595898684704543275112829847130726638017972075928776698260267155665529562724238530190663766283938982859417704728001324478822475776095477197153514303270897518083153563463337464096976001921863853494556481568590446169253503775218644267153990434449246347355041530821635689642100274349012651568589536687778033251867827796784258475720865716484810154853026145863730074133672039120946620408032196978349775094179090098682265938722736044851601277688253868609469942246439223900667541252147225792225816745659233718927209308975458609273000982174163103372797658123171738237625390450399265330635551993041980508549717424431003396085588093088402729885191722107136558705688606270343208697700999096949942718155655593028941907593788624576764163286113887151372438646873762406205737399520638937824943725018866649259128435549877223663891846633164903804291473888682136144464835263496352219725174857266485210443027920149208930903892098090722504313080383909788344340550956736089144793574482083189828283689722351473931221574914526258207376484844756678795790166231684498764347854964091571787602789374999857234068215678364326301485272799745545377078966914931080935519774169071707676743679526627234780696023576070315713768823009549112306869941476398450102244024701039414039170456073085134927989891615632399124569161525079973032235604927321339698584745268286201348197431941599076596637764052919995886766219690564397028855702399552890809608402521277827555143246768998317770500267404791875498238182886552720292397734096785775179031966489229321259500248346573192938673570661677810967888824261369757735601760726126848538059139597672327586213707970323542897172382826106422178767931736207392479081966169352704075503369556426774670315419384521495470463710527222542090019739444729857157316148337962115585421757221146749527827618583414358986345818914641403032534904497261764399150167009368178039711966243391616771539078239641312186415155238626919507154978577056393688964169348683917685137269844479214169810742886149724666878537838739995955210565108912450503861078138605352715049135631916856173335414512871550214903342905155979737968119998137184630026452606752812353009897121697104159681208144022889386798341256875829642809357521934298151221753011004364774449717604628841704377377342498303203241349506984860883691574387191236594347389267515641163109583470846821546510964832779829892251181403902997027402620797421548986340699065986493806104247981867460694913148197074909816818043508233631311234370083620764925285169572337259418937978810955114245755691364566152578410030138975923348048097473269084734372908170034991101125917456961494766828676279305290736224015062781980976528604750674226082319648568698989700596663763731976189711202464696618989189184970772103091473322495357909678071351792285275689124700642296661492120243987966446991125334869418171455149294889039884585062736936662411707394250525477979934156710089218613373303149066634617410844766040865595516345871198451069291424386954796373643737423838893345441525984850227876189332565878239288315166973288565118507612861058549686130979120366507148796673286406430599553978858135215820251089817605086306207483480633793040237940639967041237130541483524022620570689804309883699836092957980763360972141024352323733669140087195840201790189403482388176709849918583645385464282893873002755206134583725178063299440325932778193278769563289270686158689673203290229555343701649435429494550895418073456702152974064926631287790577280724111106674731137651734859688339306762150688347911012775733065386091490833022157892187528650068655384660377753383631564733166830963130235917426074369607191942899512192762073749511074152420239110691755888384579237663506529450166434184627952296042151097647999923324995095486223109850460414390309435674585404938408335986221212216422854541049318933087731821966826173477573700086967804544439506651007647686487409669290915737360724074374533290201626343371444643808076535485944673952918288059301041311131010542064426160948624922190143917409087167496578151741674542591086560951347567115773374147833320437288315142172880524731414307139786017775154748648149270730082721614387372445952157895225149064606328550621301529988691411220796475469198376285292130798098224573152437461650245663305685418133580284886130415390002933435880261747000228887111998816893891523024613633069634074427385729451372142088437461288570047163733212962157806173287814946904814449410707132845806497067227834126614321911786958552736566115783658832640229581276748901928147852383269482961350083442470362129181544457734612138418507471514632890651946504469554931828763223552236536222526831747915298709819802360291683564298928376911418621056268112910639140884991724808741750066852307127971683256963916804668597590043082023780204339970310333922516749543328573199415538038786502697184603241872326887043517963269142044497781199862774241839688612416798090682615015809234308882517126736855753094333396273684518582825635607113648840847488791289819610120028970587397131704163188090518480996668240238421027294760354707953267803841609356802433359707482623512006251030383106880307640326473540539894691063562534909977146509177762943540686009835024591812813621825902566112714381203456627376598616952709497124362713947506749593887364576046351668152439626361952779443108075597011214766856227286718786349013233959313558883684512361190791428170275588706307166731910349476332052233370186603706713589399545597691847110677476329480239170579861550001575326128344284117589668938921129591724739503124846988285200494690184951122448759445052732015788996573965635378966986564561576850924213524813366746153253001184114823536245446197272166055462633749310627559938086236546863817824545977851643719326042572280064075356737520934363097299714119389161863036434940361123637245262515482311435871731525943411606614576894858776726677636232750319989742282244437036251144428568946637036293768050667658828073027101496730522823662447532983461377939032092745532566310718282784478617949532337043188822037734965726238743181720021462946547825685434125365785635924845761293480504235140475025840679695868123756099325417605069685878028609227639099422211482531361157434968848247438361629623809910734601723213372529137656747732017763812230697027118862219686165059574475038182402984926038791518066550352428282986113572573977957326378000264728000486445923361186436917894119748215106297359239468975992657276282435345702269558382578628856697799256965004940613400412863153219087008045855190716114909875566074327472284960813312738222391331667692596818937059571717958397730994860551373272926749941942996541052324388551289679444993875812975789202038438905404518168779869287205697390988110431386455418575548458344895150917132779274250351587725012752144488033824953774758803805542591692442914947486381117150078747011876585614025317475971501776336675132488724887514913635863864001742596168977879797290832069847985056330459374735397281665575989259749181280084882861908715742114271569265579260881951627079751518599910576133731038091224276008751359089450379894617205484670596444250276792818179893944532139568787269533521348496468713929902690905653410471887187942217281905355661605400442720303048374474439654296439689224356534374087098741637753258573704605048886233769661543339701284888432205642024945495152622383085756898757477683241612154678516190958968512315469814324194953860841154325151218968967147189872060585381148246694726818521368818391852659893934188150334652098690112616413294567800190800056257089534060321590106575746694835396105406776285741784856449538442304322560216488071797171386592502168953644806162993285794951741184722069748331043150029368762409927197501672017722559786592072140483764053828268352596120556389480720111081907351656747964336990711686496121602647365492028696582830040389085330108968775057246988881477345271807821206822688974936541779975075867686201110292307314961381697389719722467031500129138972692506725108977114149547375511928493966337091274863105724048862332411573957137246442082654518451270558931125591546168877625044781319793547500305883666096220320346231569479077339131533467104053551682017158939025046765130501788962045569488014480033230876275473328279735055433024068258736178901933801959874482504556663702569425475356899187851261461222341030054967971471775641279982363174249921473965613156229445156101420335882230847952034142688050514150805858144003450063955140808924473440738276196767177231862450816492078847035992325908725853592387789141897351899268994735423012621221233508393315523343230036278376763692747566130028145409720946850911593389632629606089902648709715417325439517292834536312521253486727810422117033150624206028545333499714812547951986625090202849871470207821961916702520390700190691355009443123275092558352112147649107996534895699049368178538762002518949999143013028574709519825546442661587950878080897338702989775378780498866307073058533044789745729168820835235972132350929435973718917609928035255401549341342742905420545203514702509720202156612381837846446646327790506945621669045713479573865938851424253314253153620012125034019770077896473560737808546531595841895545905103834480441046862826075892600892898709718949423039172666414895605757115628772581209310290334830762665254172340271656502931607387866584812933633177916551405464520387814644746608660652036477071295514695049107603654637192361142998039989371778744246420726117267993442968774961071821197350303367783699138256181410917066340665472829634733090137758535568317346836285796707549451728222666765645557263945651339615040214485836749553112863744101403719385556193004147949544443802262478659381651200675511980929571265097681259031176760771598087805327348566107194063964953449816362011730163649069838889392013110862922348717287416741533771986865666537706071321901689742403567403948466683350857652198207196347654756839239815665617530959863190401307159228009013138212622619462339017861042201752414062522982431717698430904403981378468242493691017055289062922161107196465183600885855006668432480912959034310045245243652680341410176323351491148068161326842003757481103025454486725688879935283541593399063612586103224690675328622065252485423400742040524742693421412207778158575112282032709735679443910130402386651186124976731346808236499766339064010479828976859285104059845238244700712384102837602222713186057826998596423390281126603565195344716306634585050341502319353135742950798764316745793755111062391586971651465726619863878065234131258648323300802519289868435313775141008771117664732881681676909847462072573911335820630405925716940508493932072047324162004820501418586287690943450847600854856929658203356728563111939745974589062490126511679429547051903589057810741994951755954657689519257025137851368537246037982743016207989326383366143047456895899515255359733547937792083097857126585036787142928413939073018578448056017881956179880496198192909194639340046560468750583582968531303963600071908865943079603781606421884513894137665271187974782144974596208714514796294208140352846869420136519114170421930890707888870305482281578699567552285043664759206955872901902688453711510657327414384065254964869651749315257583249274797636534365138727088465543670156162948023428419784570792029261328707627703495669713937293381643281659294527422591206059729421737633934685197099813005998079553346073006502218810217437244772801046222353084156990884569412685062012705718791702492682693262360690115507693686554113321873606289617374309974707404922358135091936893215770391514620356568715743387438255222430860627990527796081884285355428760887074845939596345067944038538958681653961969620679334269991345106075190582663565122358963422162557336836231307696407533576722421061921816132677555297878011080466879897555882611912010435903297028645717420468590295470085439702701607502677773688807904933449300977536668709708018861834772337633410634142276407383624759572480196370707047151803286923337931693535230134848213874644699742825881288785560724842552445952084521592923736170950513667488775410885412271459285468723984790543880837212661683322223108678309983526374118367396302997727515673321091501534716230573050741330072605463180938774321573614856844143735970281518150377528440081901291269461134993995645649452038224910954576144221997040940847115510588903792910156261294267880488086150039102654526065092586880866832318076480304890565824122184055254046318299853777121009728520181445253704583413268416570111763014210548341343537576617335575829117810099267815696121428887435802130045821222631329184936958947726954134516842067973963327858258231079588557636754171940161918914911549947500380761322733214724859387033859344648085927423525354667417609498089291992399718241187546810572664233014533296244511915954101829446872256150099043086748989331620050220164847382536291180394690709017408035755939278773570381019539719272209796691758832431178890318001208879528323605275774707805393446275330326466073335997876527642010048617596556075266543726052213326056678590881072803625257185879816407712077945929772169362727220149976635908239758061322224916255693057624229159413648603997598214499804479064938934457197684608988006584946890951322434244159165243602343100487626911274633959213765784760726976299930199466270104967730772776711953771751756548007533462035510062212526503513401612131657452818915406019014531894585829312035094424821204983218554379096501270026417115832007404267932343993337394592307574117802895326962762046034789124541171869309869039474676658871568991171997662221911267965156073542706556448202920909514573419634938006510186166123505621502737676031440573002609589484947448013464737715389647316156551766655144900392746782313415492236946026462155920398486125944787207576121831788360383865889992242018164215601964909415106874800382676902307962540590335929807522841868638283193856670768506693193037544334413190389444319457053336583444293968353687017257716239410048534679779929171816165391205985928755942242054187457226487023025543872032068752134990916624915897205564502053314608824742076159133820131922017412792253397006105926665407600512854012188731193130691105754244963862264563876330029793582032894561620896479104568624761429087947866203632762642408287166124286839142681836042266173257103227443151091844874299778193805793236004321356061699508675301398173949615872780597486692375362219849998345515672584285286916676944020242230110428028214883332255112445143480357050044945241166743281206014443278660221292282148149913089277493353976519536948037349932649783636397454989217701519071218145189238389249331001223801047332097359755242964074313434018769592161440216199648537595958536568255581323861787881872651927007854144608675085904141756945761128488482909730489049910799449153103007302251545947819777395868198826771605120764848670442870860220540157363079314512901295052393788994104506518491350866623565226881621385440584775970326467712851657660544761526051734662592488822432044636006833119462756633819361348496767958389203456576523019830468450617394701686899588729419450776118465761471132411305385530954337367032710356950573128825191345719909920609215821316628058598618198346484746974059283057167289687701220247471415958780823520444084324042829628172580309455680670748001335799953809557494471232145738645137354484624203287603889846359350487203203289607557963576486440169798279443320764332917579766484721101314657477652200379341253872381630973146631928148109789157566433465089375093099562154713223223341638100942327820562657151765916962369471832938418344829465179115272439467959036678386871023486881656063124163467590076490632403988531213066361918319395895445930897536126267574053496212508375702730037492833071992364360828682215275766764135391507351371073496033752612001001864646945432019756237288945326320242974662645658556531252885794188897051436817158806844169518998483012733929506828365618076214508301690270732955628425123844466860003909375228799279755863789270208487136915699690231987795385349088014837864155906013787285824035572925376258266623093423965487221228725153899902633470607308929837909966011668629621280832236826990661277314685036716781781257499763639041222424938405146698970810648320754032499063334739644178957358119029544039445996389061961390361863493172930083241674011543119271247553296402133029514740032864173864460688519793094106272409291828668071259884274850305964656226566628938735983932057068410129403203500940178815993659843436517458886497386325080163097886744475430140909098838311684030500465139430688254842917543145793122885857420338957528201415652555768323943303150697213087582527249194291419595711464379766136009424806959315004360557278526776124456891387902808918977331258978680573248956264599182630090886010518978433696250241196482011585724882438969921392333459910228640081395963659816786982108928955874347434050925693331298478557333367916080275141562037239132560387839842507306435978983004275122611555872424670394081387134873455810914650569097537091675672252962048361314663706568922012112926991012756505157732588250453183749320502576862201130245078150876108909297009106211526528590409805027685352225234346854655225668445666479640130377716492652054548698026591937189656479413085568439557992201451301009743524589446296653208553772607165752122711713826428018428774619816050049787990326010465736238412806960086855192229039498226857987960447835554147418283192753301313334399015469097359982293764871923594302191415388567459775669645873224008192869289119899863995610233638557485502688112458125000317606595336555826812205527001991425808650500278795182069614797579698680393126298341944659349568917710848192238508726283588944101013210594819050756327309663215700359338150595765887795985052910892686842310261001437172969104978566447124255116104376345841985037512505728318622063840708186979390611783343939142306233087179680203410382333561566470184994191591452286420311515405527141399221310947694640846548783249906313189226141851682307683135372717139250464904747363542440659519860562891667166888535740765495251752110164438534611381786339955983604070325527300674287285219136828334559108649591584743290794881811926197764201109129100319927392002086392713753595366724678808950969760350607260274934627511470668199346710146240209332721594980612189596124256947485614310918678775925129035798123410926224966583772601010720335598875215919404675393328192645365607540170406588463303266460432323521267112848393029950124671320844178514548368413812060619360574362860833527921365660324846419000278213576882046483341924778140202369213333046819695993444635629125310832172825279789970390550483341875692388764083638850966233817480136792619645349344767935933528156930079166430636653512477184255292781051069699239467766105981609504141779729880618354107713989253200159182025670242319930444516134542986453974428643339193865239339357801390985157709737937174728015995785935573681706469934015911703603007324969996000600553936440471121945878332099829905570080574119268308127278684469253165108522861458292321856289112481823079732590052421562604754176548033593798201270085186036017239041527456813270827352132754420196360193247640051874135798678198601337873891354266071893495872381577696007120194181584067528435408121768676478349180681657170527773542389841375440656871793914139161338323591496646496594799086090399510037991097191957656975687801830494677526749760674994338671441854030006287926760257229487543819302790411062376864540375148440796330213303364363176921919660393952687750467281495252317946792316581474901977417368280363617528990780521334750294889014036322073421084417287539904416708636208333444440699098750136207881021115052871938248303260767213713562495079960832721259639728211902901345763209275552758436481000715334214742192286164745410878990878432007591136495135259253652348619876489519946634986920174294228642379184014712424877706569628247378488891991628850168351409120463667760530032003792115498773657851836808865814481849453695631962971385243291307749741241804521184594775759556862919267142981081648527548019335716750675368640618708860892408858909060923000525156946734608985368316469767439721219871300806708401828875645396832824081394102735086774804604995497301594089802652856683357508284140731307302697109232507684008321198520481832281111664830731824424130612693098444534873866352203877224085725513432412603668128321240244766249321056448950305823392925436750100889773184071314810462439231317273389921547969844443295950932694859752423464022727651352074112808132558641372446159331459599704731650112964850953426737829595978549393720360261599625539008122004052621929426448661086548364475469966931726327769695678498308937136687575632392661065340720887651627016824588084266553744764475199717295154416008445413022124049112727114892245244345146058918010011717124518892435373704975432542157628646601888341326749867623422427344707139705039991053292579489888368461233672758437944195594697137474280804141941946555375363705388243314961698577736525842904600035260406147209276660639688352345620819476049669289998816582065831261644605599590275048861954096548667602373687267238292136527716856863979607475797844353514788449151662398975956968491127490908802486166010452802982716047846132380342633731378197745556281061711693421991785285129297178980727800209297969156665244955408615856359770243324411424183259833595751263492794701108961550036246804532360549765821845604587237387227303700410999590089932463087951562296324446089896591186944158718377071137805808071423614957805242836943450875543148909227457645553992894963427236170636584277644452605911987927485188270968275823135168093455176378137733978521681301165558383756038814476715065340972346244281389510736269055238061753375959161053885944229715882176198151572723676948296456178795570913264316000751507978667030679467867829196285334321789613159262093986280565975436091489380708326802032588746200621539437894574666562821544900651611716532778419359720144793342033946545502686563810093192605068813912777862353417690232184868503802973277218419086370880986015535053190561104805671178485017507064864759779331217023121605861463187924947630421933166812435893028140635509565093792111824392392817402896387173465594449748159667035721364507651386798998048260292427232734065731438316459623634183654345876281758087154384132795102900818237601523763894072365197063639535293201083398670296159164620863641265255919643285302039412987452486995887603774671352945124455905805612363250887466363773045100286095491710908364148484132504849241294013755937613413693817491237795247440622542265801334644463471840107391944930257448106036308688764888592003919260815174651455794719237630310519699267065502401186813595344278627960164667419878222216714837740943594446861172557915044267392390215777763645452337580852349207050685674147051581125009582623643393621371935876458537317930796272977827115885065312626311727257966551343795978060243171080995616063406292855522976427130857377128594200161299523719707911256761030092792080167549803496180816009908447286958958915810755725591213210086741832208956741552139792489281858978959628418018778322565764562316598063817790294816892901164818197539556632345168199790589649921069334764239091319511612565594226065641321989125003330479298787890613249191612829346226631976393173130320327270640223566018714620480549813795182185516739236479086846304191822146688363000425996628585269000559131630421224527715548026314116788504616798273079841823310819099851748040049140914741820697709311620547803026685597938682546110350274831033792187911642819169196585315492285286597780061661678584455960480277433042224658027205331333908462208124225340377041783833917540128867880763944402942232238977734939396001470759832176162964250481928428864784431129403303605962917740415346364717432836467164825547101936360453173620115491191936075348782265568165848546193547720388614610322927851800122304149400206286705751060612102837234233609682595810305400607543797743580493719974842950611265518873104656667515542295005379374076893398859237593572130647531183819964400492917010991160170975702345773761999813693335221005631765543987403589834458465618809238256627215770864918380626269209018490969156058426136985554631848314392125450345414133167975519656200655810895476499265530552299593400565626742795341322523660894007492138345756193065337698394354441243395574735737131531543951068550402493173098303293033274220961919034825823281174191799225745081918291766541498029874428087572804784032847173422171899477515605835903271628758842135460553944517315485091979467117690864237729078543159513226248781328383174691613049513613601041126445350379462559502196091319294995544683872301827743203485675245871698339341783097149141289919664836330545705557918495629661244285875846367632129871262546064406931107094955888172151519747755018333523215081353010133426251963774068699332998990567643521252830976831090076603745418193805163050363910311068823840459348871569404939482168008962589522366980835505037856141395322770476093522177384546996156654684587283149315251088974713729531374831237436660309313587692278695407614370858151756014724317219381168549403494236554767254655454318720474018197730147870502941241379577301826852415799419742234117978053773778285110578947714252848071558938455994604192701707744761913737908130307679235652691281832243448119528684351601669370757847922875818655067039587581937538831760030466562462093295821134943328911220528444857756047340830873478704094279783299500020338017883296591374820067605801952265889938373790534324691419601624240555398847665884038526381639985614631741317881282245043096272684409504251797068119515023045172719719516149237449952726336684008327958564458419290250004155529712587650148685361019001411757191990266736937831469091288353599956248172783768591063642493215787007380722682047303863384066148360575321262714312857322878361002958856462064598967079861230811958454638828566014762794872985322690382485300833261147907415277683427731383058389789428754878195723080792917652012300166494760124751374457553533146414181942925837319679476560535485228281209307963196359214549054580124376761792301433296109313942097439455160442646494385876139665283210693644827288100845484150067725487227613216912034118878347884367651669506374060434118518249102177687674870281118592930070719769607178969471435168295042961457170623072424590421070012260373589703304282656877256225122873146685906038978399333869751324695505491016371317806974242017175231165007876085647967456892768597829098742046516003839048118438564741470807080508703903011864421562324392337243482968259907606969169115580478623026258719772590055709545438228994731733006816781574192818628595813501720810359260327443067052975379057244120933579184459777567208865974327836504110126284564694985087978910568446599612896726400034865780534097916890764100742008807910631370150964547745461709724021233150434515921755133001433369170589353681895835169698177105613322538328727209430515697008042397578675442315769365343660527948931617423079722499816628318399480541338750927507651975734507381379271328363013739086891760558432321531525518059593404599120522381009153918133356445671739488506733070572273207964255585072160996206626221868743189260634241509599371505031545319968229671381601365907928683857369268914289314041025783861768321764737393414791254140526610968649262113235654167411634195778857433004016979201598105983264872762764552933110079439406467273655590332713359804303859267157466078037704695536572369623242112422627173293455944627181945903425753547147816861086713140199739690815628159915918779528988463396998431678873680204820011864173592724325340575378663303099121437456964083285305810835291294044183923812637363855344676093871581587582339784806154289462551926333400462328186226391000755295113841634884635529821737797851680756159306143047100189817612699213696156132352374391742731893034967320648676141968795626036492984766495400956117391292641491954274034270746760964728604878153502258397502344703206069020677372587940529098836555721453979351929200446835592760026389741998147203644141618721659389128565933834581983362444055546451910741959849457253937895840608580385630546648867450271284288385429955695251968213748151571756206836495279057915854649304481097886658396084994358227681908225424674182415425667535829642835758421113447040229758702372265826741671722373723605706882998161913614072832706118442328304918359232403035052324332767698013180491915650052503073680365776394286931651359655212299476133873795215327852728763144064475419582745016208719837010339174793496678695926002080315996616815289708578013357213229824283372455683326377948253949593762305832425826991749387538889467177539541915558314627583478427008720066101753097924414133317544459709790603383406943551712026983860532140215438932204999520574116322621972046590531974581675491241516771234422677768810511476231266967501924486415237912438120210706691419483751912214527085043211398196605132097781841343849029747490980591130366548848716538431335372668254138973696225897324758733624110032419804931907513369174164935936635282804243182328821673416609937922373587269945340906175088534844754302954727126537592377710940461419690890034859130994621917876768067084671415966187212519798434239995821991840022061771751653332080657299205232320687548524557053195356303831642170128745690540248003127550968551041494202035782281474807656077618006143180419431592370260158953192775090684119588735704577225410539010524557295765475711012204759251901068056628831603946437162692586037979594423650985384778028153228743172467989571427389796870112472025204450363723250573302124891706279731528333003249515617093454426191294830098409770962271523035849308180915120831402449738645092112273159935720662982368338858112931247869711214392320849616281889558269794996419653758601380218655701832470947790049850990918242550215455619540942365100575759609185218349199157288525628460810226612484075296294202034036731561893283657131901971035648909374790241481230009038793007337875378305608129814634751520518580646698113504960472962375922972881159237422736860093251517242955575096210144167401360642556153784195134290796334295824724336005810284046762643634788363837754447192661123439368624153154716022991488956803087573414527113387900632852107654799040702454067824428892041587681970508024125961541961959783979937821577417938546146928610359859685117106424777412910103737426452969987429105641834264973846835432178606148857427698334517859519486491635681300910278239848211962330792188952097992759475083439664360749336440442780619673373106772693942457388577809352888788801613707343154668595081185553622506943792577627933252988124490183498592966131852959532915829703781681697786709814952946598854307179563154222655132583247848057788456708149336588327663557898568712548571726111258462185996405177745917899623973005338140416714912479023074724477496371592971203143499468499660236426819184870750774530600166275163503911341615644807430184491171459878511608266054965522959141068997728536761254205133097369834490484862685909095024181348954035446016824644922048083267743467994433505417996110724020534037526605705299823603377807918828978347239271887070910242737140543408346111407739798119515776489168649271176228904335682397274176318898628547698448383975150009641067070631821404112057718352865546699910241655511700607075931541173933769676031886132420479621273469572206279856332803729944769768799616707112320705998065920601731117893960998023295497974693301410578700124953033956183810789721895697091919314418089201491381273310881391767273231531315489372267165214734944623472720117495077109061652221225332513899496681171341736888134105643241183666207387611454084015561807772656529615685645814544794719154486496076084097968649383073531298030790994399652970006301948642690180982286568361480173934818984321434477822660980973377315439532898773250545241548767633413953480768529911654700418880953097916354724796852809317030468620261208205599828060972640908645621257235768694024988024704779675982457075109603412477448066359458652554214578379719317433059026249715196612779817283990824377466298305612792035951912890941355407859299889018580805523861187825642480947232300118293257891321147736939473312903568070990601698950495454136149655398568687139027077189507109150046680604121091407088029677186275248354003339349923490622993271252632699284239334300958133577970245719682560899324012843145668046036216877880012918698629069695062747246656586746528337112339477327787597894303122972157664983379847726437562280348763361640653413858728435726358593110899518047120326512030549383241416613423569413847768030457358053970929771942333317083885764990403431342848407515219456202295914325057852329453387249924790259586755279357192335884497896991368806670560453049797755457822380884361856048169062292953757970586546610814213292672740355985622492213949771362973716435360361169902605175935061863615755660645809358428585364239196965454237967208948640743070377528139300444117007495420155491019442325939766826647561173441361934070697150973507499680580111868177167625059257418458115469586817756659390087121353500159621684693036244224888920421250578301627835037830915754337275400509574648178257272578741721033198097843090516877811126604726317838325354869327278577677483102914323597691979654304633007020542173965215056694908868791483633171762268543567801787538414530941384763657886792638667841390355089509015127968273026357273975595453825081896136601903678363915192336814786034950991289100071985690275692288280336563887079450468170050038526638735648221962941271410918931202965981418824922372357547591673432633971177912341247267189018073898092995049855470908458455685378195751301302323429902758093030783895065328148525309379508227277339184276018648810709287249318022309942892516230319699203596313535666097492330708319591187967008189322655307899913919034462661802599890307444645468448795967723597840712412904523311831238702333341704430977368527897707032356400646793866467420635725899162014247524101672064594982686806476057372579968101266743988946309742483745596157824041246914980821490265434816522782933297124635239133780239693722702021018097762926173792037168384420500985552062346476869689845173223283660078029796004365742503084882199456456186349804896886754554358394313330308729211704041391580337837024461479212979391050203067569872631300244841165937451015966813108672859279488085690834217941196231877687021600636568626419989681047876457276772125242448277252058696689822690586181150868466338189463139375583907729800267649618966924370456348525758607007176158788087292815306744504959315752771048247118462635524119434273022836171035444460990557616725578346552200123845039264381898096496874780172989191749612350885296093797242742273628739729470805053545482863580004545397056984207020308679831395628904675326679340660122476834670837010854758094148795368681795803829782091411467350499420616076973555089087260638288272109666696815161890508855688941323700105344351267037332357900706860204705584309558183022037463874290194953536125523208093381167259387263038348985601429065704343172447067648374302550116392155325362494604047174545361709499132595085682893635431948805979314521199557984414577899419366113570734700060038221908986503233872405813111184538919328010199396105898037566369171271321418077160724386987091393474659796163871402805422188014618392066013112169801048689637903485259436527525294354340275187081778260694590460672608004259320673264453221564452562466749029346093306915358693031413276563253690014396890388910259877106333061336432101533169911621844511552594476174532606132320514578825876645266229607145402429948676653426004643663139015320335845591385415466482758098157431663328496525100780079623497978199565425165086418232072319868912377150371889156843374258638583690394293743334287183726684338740829690256881719702712332215042931327401650918343717933995941275276758451141732948275897236159828830067891950415620971291755851622109648315747028053822853994702828009007997582713217985597643985488819674665497292575669171667265426743600746758214334079895151835322614238976598350231191108931574942885650082895163353642347328416405852623809326106788218341679302443362102252270568341796266213110634167818868512589925818786989330329971335658108513238893633610135085337707679927552039576446251624042455370306202732300751966187557808641553382825833831900014843900877433636967679496018796829749654539166962742786859926806837323230123192795314384489204961769642265215326616189708450295482648610692027040674273073206935326108745014271421806235013220982271483845207353087408931633103016712309434796593685096554507056302222512057517935966639331873029321560916806759524628999715836546854397847492115252255333194259659117556416569773043513400713439889769281900354991007062801808616309571377007155489154645309190781589703533419374935219849239494600957745797904286412591820925568860832601583934702249891604650392721262442573046176297682481667641215202594592521888008904315874558578564880593471479526687052987067899411291777654319562935130769376568212006550754060964766300632329662740506461045743599462567479088196670551159499269992380955738004263333230325031136299686622675521771331045113577299046169695327689534998480945902431788352683284108890108195778716865936216840530084157858948240800097640806023777970826202662221958017508616546860643139402343172770588085219084932913004082961674386318716409672426899336533712336348818535185439921920429206455651023596096548807797204816193194602702639626946885668484397347850010237506445162093075939845492374699975584157520528728750340215369749952529700049392074748424828810804113022797492632361022608492103002691421824224440089264225969569597454190249754049888521629788284759001396397140317568076397425439947285486267559304958514993551601764283584318577569202255080446998321796522381971122934685157334760265536337570154503403551606346646798100090857844815126784795170757685318442684165054238451688244178631317303637952671509567836720032328095323160799667377139497781533544489291302821125733099891876747573314751912073295904772103138838517898898753247660338429384010319787123527186169970922566028413291997068824606888072144586334017293343698346844943290461422479118741738537278593682872073326230359244170639641153903418487554806634997169230018896286605407474658802101254935911632755672791112047282626942869547528279748138237559395292331968347343395690107309961973852342033532280314431768904853880733561626261831266593237780137100941044989433070614303229786236800461607134897938220445842242172206995635031012406220843378387971609781298743078329938672362562528579114053080385803407187537314971519811459473634393698524352534807178206211854393205695619157263659006963640291235202245359009811911321184616848361341133532571648949592583234858178451549347647809134309251659916992938614072200268851736334835151685913198741176099650534069337631221686597032058409796089651429449357469604056041231456172380999280772068400611938299094341688002613411536800289496730067114477194958386436284908097482970170860709986108118188618661039897199019896968384608326517622903105890691842150635399722283558992541602127952079950469380262913714599489398751817803012909892353491231750903164984900414185876482853327524603577177187428950634572571471710070875086895063768410874372807060865732581857049488078643321164828808947294672333143472879728682372504152856194076263568809135478500836576996808843093540810292828337894776520439902838986813043830411619034006714546565922269584405422550761116369637568668561817121768675334064706722345430959663822357684946751932851553738042447988295432082343384063760050935662971327279156421000598096847785759717007824367620083305125313088617632234270597051112805160462499989916168797514587078814468086832170184859106307202300637102956088062815108889304187729196956559166134876365149171436388137480972612517385951143970702499985991896571049259266416465525487468245869132993282379745349079744372387745676509096117862573625014006779590259919338930360188963160106817016459225266760969102959980772515928115982346063948648547352504934311999065422111915049043499499627692725368304049382435927125886204817911193654643059687829679717519584381809503289836102917526515395230589697164434845074756901700609835354692562452089311422679346325129738982159618198302150588931791848760096509029920095400231262137777381344461132882872537959694391014250188651964460251778103533583960102385958870611040565435547263754035626715423325897776462148403289013704049164305943005489686142528745630324139331815867558129554562127806630664471656096466838434090456356612673922987319339893986566490376839321883592941694596881410949370654875366693600533609622847219342087792958715558471216639469334200785975122364886308093845098513161595345330828941865054108852289578949159496031732612596707519124915203269790774406434965211824484454655247089231466455865536956269806036784147776678377558605240821489928799767398554318232319050678114396472988310764790558725508760597426888689552871578244034088584901556986582474925116548220596060845851205645716681700761131457165463332329915774441022641282487335739612438381153093682128131603255046818023607134543710289962834529938142338231792609870157538338212679328972315746551641172475121474395407274565934727054162970635595084764623835011274346491890237809446840746598510369069428276123011083983527100234170994120811572708909224876761465920389884534428760925541094336287179907208941513930082582085266374283319900678297690734453530655534639294267774661585698538342910479889344755964196514926388843213215454464822066243613640897382930028390874213020925404159422175593973966721859202147180923743033717457537039965799815289798353046731098845832798796712891027988247584325418180398253161879390422446956951140274444010031940291173323034508821152037839505702081610235733153780066124735056947402559885721820900775427752267591521580958026500106898324628320696274078648176571249565068760309327831677058488309755340000053498509442602776014369220065682144766001346088573352041452870148253081452175703417083135469472178894392136210796711008801527055654825701905064295213887799810600532178697197616137075649565575659554233044235826280893724249626299034914603161345805711288944665227061072603332958544749975482743306186931640569496614744700672524848289154345125068458227166305724417302531807380073337000850461283403316556943540643734545947790759434884806810280291396796921516518646053134363886646420614979855995428032613440139429655493580316585378408678654778055007612732117366970050016895889036844815357919644078908301895832100739780788097060306650997562062353897822376029844091793587179771656904301187224825121629554403633672321660855581834799754778447221914708552219067638381406532640102697656158432008950061438824985024117584627199094703509543739216846380369662978242525699727614645105772562623027151037543769063617917452178115739868731715430333473556689290051538300070852800256656021568675145004416851329731597258994942442719871784120841765955255699981219943172339750376228688734321927026704191100154818275225129593557888716132954659744239669766914687655277486676767880472026931453725247989993167867054665885258787290225324006992505923439842141453710146558639375105422962924215626627827614887906116479424005104868685892073342636369217170943795918390127264530872317432084397523027238538808965519244359448401188743992792426304523934996928769204062748211452889731984482207827723110199915858758676177789962448550397233668981937972687759288332983836141711902414492128942945415617737411871161992073883677928059933327937965851897393683905851121260151054533042142654177746810250993851362435985036545018688265013040816912605550872061681710848865846770374543700105241970672505426599094042492090270519684049947657326033134751654526732367712230340085292144521623825124175355693055723521632749590030136417464525148981575330217707630787613243003481221517934122116195736331370518680748272527314398858095822207812961665770218406060429695012579637183744453538156814588345689857747216247112408926336483862180176359036668230419560610696880958399483520834707382195573650260059683576580571419859326751834951281652712468262366652719665636567631588169336103086762724049698934997243117298376262202543437022621422609942907245944017426923719218110317095181754893934735281387216543928015466411782966870914446065292044576160365492668777289003038648425159047379075239121949159477729263206955019032534936135571571879967324511426185025157663773027653017981592632096692101094141927419823654243608566531845419781113905180178189958677279027016418139263409489160149900459916898839325459920154532427579729334540335007126490661664700804443294169194013009265229976607577641393752309990446230312596714154091720308662977204685893274365320173219009116137523256436142506735231051200938574569266599075032806425338421010433969365116873488427253480495670449060847482836526112008360409895653720699627747714355779262835259094206262128873207653159382865398401673519699302749616161972945903702788269440024617256124037653802648579427609411397948958827096615892803262840840029526913141922041923355249514659708411462340212201590735607038403827603710078726314668848820738154578289098670487480043404922776025202597419932375925999657247559754014249806649651204461602224832471663186309013639139057406769169619894612672171767681463963490819173976167499131202785098046818825723745104543285587372636136544628440904327272524236985831384088039358737793968512953069773028179857051853794411394769259158672601996907118706805638076883359465605626435105115202503724529605877441195883214304337971451656413817893145852972311645615656056565023244703799221050076288714070671010699369842003281004792975511496179189424936169071565644512291718280815491247597153638467299383349917007434199548246908447673637727799471351494768829250272902672088454442014254698961546731025534168306379525313379323617945708123620343112443524091556553964376690358042194485213526357631006910447330547009607329935285608125661772180808805985968809692529167907434838370147883388654401406461630435549285141421470582433889203790468725003113991181655087009906619265886460561549636216331033891808879612321122797594530911090590300490956459533459906648733518118411370021797214729191172353624364412565594059164800781253136914060378504137002754684901161411713069641797399974584336358179383774883100308046358452036606831431901133757843951510107902615699629026020545651967897371268829636241307787569911732701073701007574951114170154301689076559893471500456170002815979965202993647824411198538594191175303312437101870654831197887175978806981175944036198750122837617414051434947049351652977546835256129820712213729915828643126129017801046204164568361450054094006248153748599106552867720151300389604124953746240965840219573345590091175563513601262587845129786110863950171083862467398157911995848763418927770356232112849275106650585685941812368117783966855751857758344783732608518360114475380147409755695691848623508453038456202915567148055752733191454854220492409611434095757900921908742651232595079975446948850504520659098439291488150750804361617035782226194371925467933157050620084719811168145119602089106767635248086546812537336772252374406131981250352095129910447221810905604335393112694168466470405574175436903230053151681508103342412145958847278432256210843148716961683142187701320080440174552666713145922604471022560963135217343533543444720307488657500449479884815705934386938606259748856811836832603628098868921129328195488278202019691814594080168599835695485119712516500058649124117028865700996010154179098870886737014953385651376239704405593995062521904465407563859140485507555011295284283767988607855646994632130109561609200549406033366485572133407197308101774122324390630633139191408230536805602739124695848110589301453853453264575892025361719160193538456923137941347877611344083010525401876148854859496832801823292525092110879681918456743185248000189425405228933966708454618514097879845382498781350773412583305824396027981217982958266378322670678647698994836834614605084933408285551912287179479954425862646546703464468690058538612405781193204777775311447371459793533017401507641718767295432833590923177303297468519738990529980617800082117092089506097869057102785871250256622456167107336264151263835404188866742638966764609421440917405293301987000887171257093205956820017711185519761218062407605055873559370097047502923950998084182333782857246921656681736945755618346733434587678924407519146067856128817717845496596308748943564956439908528813746582667181937800576018302686209684007062554875857167054476652235151183485530131715157370013821762433339611886159616733457339887413334917378364262260234205188736616218979753859401871093766820903977902841101616938635768056014370300621146514472640663308810430832813705248761459597984427826206420166183568217105856225036289648651369072163855992035172283918218864721739073010433312930965031206467717526899706683375094353995817331762432971654885641312459437779137289224806240993722123277693836811012450356260021520861892463292854748723150624397383812364735125307676331778045264145895429690292648242725839548053681005114746299856886415301049628807729167997536196529790060106662472391792065682214043253428859407339044475441221539857936367836360140545962796260129375943720355493352232700213764151455627787171575073626957644099717376355149260724677747285523038637585427058974060558567645268806724371759123169161812526098778237373291102328225558387950954700060477037031110585666265537230986691221251997279078699048340658758308082903762434344294881722589812000819103675655847633231346954669615399389066229076973884096078286972775569604210325752856763306353156654327149232562004066375239981708945945646448450516630473441080562693040946741333682928178259498079658834435795578145650043940299329815010338568174314094552933412099568092296111441308548519047110528626076074358613307830664403404711788678104861356373594490204113115532009650562919526152466906317231868245864477232596921933932779306657685531555848061832111224525963827771962577549674326616138326878856052239019235647003989127066837906070556200612566362410884294481450240078298566812972758701083391913708834138884475829346175868351920110735496329860412414663137135613468647326090526914398907362000847562102541643806903680561284447822390670125855857243759498106985957914491657701474135939378835887360473848517216532135865580146830760494872626287444856984742972921731789810247374153336278606033257245241184032695407730744609327706664111382954671625594245755109820725711762067188157644437601800586763564385827570549248966277666536049504058310097054499487038843512299688112851098125926731369341950548328843729881549309100056626395489189992080977010902864874305262142598227956531221354714303302603123518875231372720746149804685887030584547202655138221293336720719337466371329584872800759286207249181965872675787256988855035491147116737240962082969021121685774297491614201039942956167442710626484999708651772875430094428016342152381998910916088102242689487316540649626871178821377947684288223832415553061422378076742487379771331718536531508077403986586167281678003250071893584419355129434219845453964962009105452484644375801882256788035360932281787589763823749631126917516120256843378393020620961407593059244063067249530825859259389644525899754212949387454907492732141513509348458361517073290829342815343792886749387210938630547218156676238430593252284148194766419123510123943221063394082058375457852019078157159568682274682748485809237685654038250534515281861627597525591144559196075170812396942400693619676757129502970110664196858082427548265413535074493951222021495770192208666728199992808156265672527116995917731194998976234552605348577358229312717342279426029446229294909178769092161689042018559660341959404314917532431386181013117031442916013266427664299160448333989380135870554825958752859732649911162657297098268372046327191855313751756232725411016575939955116849316812687880523256226270320327364236837351275405282038318117107784112229230441163665087423241562528525284160870479319910972398574262190004290999260196613580725159290442585927714383739615593076993797207341541071155504279442783960804665928549247954137031877626846680390374905194607878743883394547668846761741300323361887622717431350870523802840250145254402948436519580996110900532102530954135060821676914708544177664116936365379608645645739748462808032217124084871515497336297130658314072799600887185215225062531302571135988474904474831934068063422489866277737951790574167873457126874814549101138656411492968686218443944072204309386502181261091671582904287036467257083672872634905015367768776747928117799854549755010432107515986642854856998975824288272554477289087658534729982337633544518210996837302331972689797347427513820673821028634916083116177024254301737347054551293291206406756686347664099248591125450514904848453750845226007313800516545486188081416286621964562973409002758658124724494171095560922814523584379796946188079001636533175362834217883670341310487289445570905327953321221673695358167874829901965445411790582771644379119149236011060284755525228092105269155549913472111563255929742730999730947556968643720305990693528312619060701946178244719893232228718273017364826727620696087061281166494032111763653210457709755113925891616381702495389472194437958021071376539144443549058827783711925192086365903606075923562792274699221112566690223416035967342978711532087946302944862465813191615556779279005820159810666555241127910879871328233509018689570735929811025352469299558169565052966702267248852624856011328382711204367227551069903985686239657800785882877588921434248628075010545690022087081374053893765251478814543644846774386034064064183105081252406702472735648108948619498407609721688303021070399285819443252429629857990398365614841667709102360529975025805885596706226530483967546242435189983948656464673981450035569863037639478424273790076361074660445747807995160138090459723247817991405853172020141481973702779464304961126276135370624860794068009181790497077910194933482893113921657361655378560014843077465343845512494116563159193436585615528837615026464938880414520722131881784995811378882014524112460590198232311861254083538559704784655855725833502338021676140961438788739272540785385832213177085353883476394680468186692531416392918641339619119778336939608984999410191491498298431678624867340443189512350541721937735120863890661836057021497734379727105741216150744007736039833737470898350832758255538208297221407069300753457761708448177633927018751859476769732653308128927495249001640980633402191889648670180893054612278958833487684922104181313815622830640790787308160489571552255669329856636652945167886672124261416829231962048887924768344992414099761404997314410537739533044332292891974785873954204145080717578613145329196181975389453964558980670928360675795362528245714169256836282785344910659684279456004076241538375249215735428760215958494755833074257889023056709629872579464658028038758032222918805899846239839465061380463320654194345455270679052360757134914850492595263177901776158678555966224137161627267748428945232504269416151490781849406700141339934238510323723224027867545818939315629016317830786672019760212281448709357258222955261715377556050510052282070860183640327754129512278812318456183100970372413545390038450835851398067165270381130510476229975803327983815549977342694738077114168837016075265440237310252510737561680644797449196717066922156445762976272571277576423506220251307210868123182990531153121282511274453600692428275638975824971155807486158412568966229525642628505146332539324750565248535992771566003906913972651491724709607833501490419112763459256647871637396624158717257854471450230577581676016589956558818233733050429399531897431552603122695923284722004445286224030758743110938916090390657492312166548102672758799345395657940004997101158349791577496501548470001071688224334291909321869688450029357793308489968877073948875509661135342486127568545110005343146335385286740229098874310847142832974662852456010205150217956304255867805846635857125197574065166595573746065983698728147928099755702997560916114958032791193454774794287178735487007678800025546378423110392391024834570623838415296146449384138721830599633719399704746391141792680144944201990496084441525542004097376004569066725403427999600320109348471943416245950374913997525506349314607487027694773347792523942367320065373359398940853487975469315043308807560666724621354076682963566110715946540706770965708033528080922900400460707114479232653348635550167819601170101005157698671047768060349768333705401181924108474877555217997462041678213547982808124034416928990091548515065118556401266854476352541484517592478059811260315522396033038881622022412431643472856823926237817973913587500935032688149793949205284468744266482961391228313480156730484929202891563687763265366496829178555930760396903999338203602365917868221366112766873652804471890744902720259498147616775620317288851727566818464869747186695776039391965769127155657929619371648958586218124706346268657238682053463153261804853543394450974558369404995945736709594381857579117228591705127957581051164031227941004838659821452729081959078495787492056181608562414752493894675881663302406177031490636369345406277268171763277571986037194863894840411478475359597770370696610425841007300138405463012257020298906170300571121590534412762604634542171894317416401709767228884455338568161189938739431901628493263783453478504365688849115424612053435228883866213148699061081987313722287707691726359747939913405402318198201730839599031265397163351682295867793263705973550509526309229132785989337990313881124856531862084309022124334422000305231886502293430764200259638894642328303388839888084833277586388379888361773407675845797936090671048671588993270792266642746448150113433729492882155898636170435283585936633528428587031219233913515745237962130835423719209009181187613573283440933689185860518752541015947259922606521780711670427885423741584822892717610344377993928213454597192897925746118276664748991756752658496155773090209422984426061032796380291010815234625874893517996766657455948749045203896304494210173242134371846634520900236277796045108291904186035165311964117633055477389832889953473253718165772195980539450851611078157150182418267144624043876345517712752314655452951671299289428955549116432766133265272445794624094269683616839198470947952540878661772994834190333460727411653134815522341965848563349671748230198622987657257461254446193040964970933941328393867018700305515116149262754317177839864117666736044400571576300972593891809614140460534437030844793529225244712309031498597771087455707201895722226340078578162918140142159607500977967520548055107404996464815405893531344328065381659321296640551073938053671746436016626839760403383904045907269472553494867474579340077057101351520811825994543263680799592658123175623673080577768919732931644245341906141593779231479858521696101810308388179576552578308246649986717169616662605559684912012821751415761032203216434967410127531762771164277375632291361889678419036224028628975466856774546261874446277180311367798257932651110334868040617091952144028755904310128363665047078042817210766780779751999912758338095663933062122953728810716848718351194643239550867195363481149136857370942855258926647566500393517504281827567030859650573597886506175651881341559133269593119750569094435733349640808215714933383372579678643612579198895523812366657215788503192568150499600666258142081653667118491759710218187382782922293928526847553947098273297203126929165997574556218114345012136879520392028612385044999478793278407707096148769292296624973975065652824168124182020696860349547818228951443188957773972057047760220342017103752070339168878343378473708740746794997277768732636112895133236172781230270786949401337447625334090581580443093253828410203521076285155131276383778672947648002680707387958530569973255175031752695414913620329882740589505134869289095934237238327385988767959110822628719553845876957959485988518777507979103497853625860863993870317729637625546911207702442064121161904196981521881944466301773891884824589785645400104056984519091334453291443504742224871120928535155999440140640527610223581645621663605920859219859950903854347398114641101129047353371295813509224613476500336363413363285821761130585088847108556010108342987762114689369336993037441509903414101082648352991673368868155980792870089213851969751775362968515423565193151526828464659515136543044565395379976954819609735331668550012295681892711610492754255044026003559343547285794964434486771079218936490999690827118825324154663165126016590521660691082822185506949996260227672336994945955502605516635643693115422965530211223265257013193238188409630576776578070688524508485261713200699550661863352651901289213756312318537027898223972022959184941687881616438896129126759208935243749026318734970885195489029378449978364677867725054011129594687979615648895494924914717901771810530135655087437019592054669259928897355197666761813681302741879028237014366624043819308209630770049419508410945816233154421023513700172899928715858762353627202843459455684201053674330578447782672251049738152395645483076097928004742800887863757551488993615731338856889021247388481477828841517727409905149511562413411453764375350825085154779123098404069097904124213709699972452098636620042129621365030580408024493635856333271822076746512152305993322505091376400789712668152066719291676382014346613472632218212057030731916776537670201147581354035517436168855149958487857567828918121299874976588930724908599651402730150699121925963954876715752249209626748917440067565574314433605068169839888215466374040404791021380630407905290324361687163452511944496700528855698025740940623649621443616470463581055311238256626788198708976027970125531855873148359664744462559430930530448533522419403065590444800311465353070261923116084172421079916251290316507281784227206385339717698900380700029714658456847131595552073703886329484795101538163000860897754134078477337449373193323074518954054966471791259724009135996599281912055203216643006726704318731445641758018557321246797518650062303206327846051947817108758016692580327441014141212348728596375005450390314140009801033047904119858643687294725307531016022093879314179494985283807104658282796223793164934413909761772950439029412470546561866085671256766100512712853222426273342238524603532838180526681244792390919133898541881283267154296959439307545040561338059888593927911837675963367236307850636610283772605014247994990204334121321011666793056193997111984705086497991428356134615434041689299699259305036394739249826852916707549841712404136348001452643249726067959658727506372342702757572198430226100648021859127297900618688153930008302342929985692946095851711848443440694593587564386013531576017841015599683383129696493269218778719220684874714941604380408398993301816851872678946181559688631092959591187704595862467229542910913185406385094883488016519768858866814336705745435064732147885677257368967915257644156431660714710490362833696352299340717630242704179439642266737091092665971530894340699326279455395913826065736217731468199051819851606058581477337446696356435491734162051052009171914877331407448011798488377770838890435669931152762401937744796433864745207375109285741688194515053420714887291171707522570762096111596347720496303265124434476266147466501681084840527906423845042913439146223706390380553836551274932672228214305208833892369877695709543980640137012152861884042245562614061907363677682110492236430932544439246135955389258055547718718641916370588673687707626566514003953030098007848149860604846200413803775047758082786631082907179679108713579929872379759864990540215457219367751833946119167376980737428579703577504805842014658694680114119411673273732291126057193115076563755279966760896501565109923984486886032486149357519356859761853708800375569438358011282185225501851494176278119477489877749098020766878992263808970063956565220723512107258188646020413606015315791936640702708231602011320204484515061296664758959390722676780470685202251882500318764701173114863659901620548993360379693005957092557267639700039056020370829483859445810622274481277637211457478181111955876720829530363164514422727797179052598480398585900694994873704485269134396754558704952640704052095820291998032133974181742889811001161741200711367588841821213209047149240669053049266232429344864276996658639913901614488807379252732873478091008935453593048710134025147350415998795308398124902657640005807703034280224302971062227696389569720823171432710622352385578125235632588683119231694351172832256187982783200068526002247233962624857869163053199570022793538905732288932160119805924614622441074460430667840314276195068036453461434288341850646555884497970468048753038282806148665096955697624937531682004377228098460816908041516965572715291942661927988336164232047917166279335225699016763682137799904796613180970026581557034462462409987140254993511050392124896166483898245928571366014011933259590098454246021224788525983345755353746842026526437746711672882657823971708693754292462878609723599997532444114086075200128548625154654867162778682739389493035829324331990021356257616104861070626536423306668360705694709361363507551200195806424658954142529542150201373119572058993210534747191585373692895193426589115659964521627660134817469225704469516783216421338277361063400948025740907128214849546296077476571952906361014323279891298218749873378968106282555381151430209804473382689264864687064252748506542535278306292241340655889164511767928454218094651521911229433901218878136541235891658383818646251000540942318555967735142003805103470537599435178868004600311486228081209587433472204446243181782913101288742709466704084415742687133877865063439125106519911452359639891078589717009164552276700863939833944680876454849477899233194347127040027980027877521050256159190116627332923193704046406473513827233995745697039175855853542880233239625909481817147258046585386541172477197889989358898091804034581615031737853648047779341248493542055360120343530531693290602497950753505460567255886938386791883331347043482330749559018394621129168222619447742143546754612204520487505546934184326088074328476618979150132971068905882214106652676071028921541050315771035411503119035349632154794958331591262459522449994116546742125665204782794656277250122867022052008701337309705492249452137274930605925319495242992520950969957668514759734654271261550774375254795230673188262104483846014489249264349942821224577561297732285901303040374081971570479975167344771333387565088045135120244174754020566331241921007319133454757561726417280474235078055469789847939841455413498999373689599898650166858069557248272844135932461919672491293750806044965833946129507015437938162366168851832173039612790212051048177553353393464214840113904428084634758042597029159399836926255488847981565961044215342720841201427001600965458367050460809049132676323317054318480005266425521841383228841826622129254154019973376780502910884233831186526618929303479728479855872553702271950717515667252174023109707297260903941050090235177943179595627276435759820832335304462347760336402369193401700651302383438348051758449012677837144556690784050699265752106892168425097336871419613842194083165022328065702643523176577005270549719107550938377005096743781041562308479442138084177915983296500276667113371452161735320235059781120787558041939328869752392969047966169772192402179057916821284303921198412452517567413938895428172520158393775652421994075539422743748016236095068956154161511696285771332007933003939355319081172825802686842813693716293339812927910935930921287310759557164933739094489597360894834631933030563118668640947948561231022352843156858555158462434878531414015815767531041422767107707231439857762911753402779452181412903837760146913151369720767572207210938164709140798077052063372034012658908289218428323683022015478014901167241461520924379527014441144712370484207915990271430637884239721109538652169275618836409935490345844780421617911012007086851207580589552425711711913310431404582559282862456509045844034758011506161242025654865048821801516656979056526782416087732438462591267240138644498825488246842998425179790349761865991259689839546651174972543413699652412620558655740433920967568066356179761929597731749402609871779428168067211813418355829325659861799660736474058825886813602827879365240619041348980071922816988002924182469370915287268862031417660467078279268556734924121280667743689204706342644618277302041123732625828663107315159019184048062506153501260506028805961291865713703057751843702503490369602381003344578167707938785757309487378660712358655183968465343151954700223332266522902564359090913057270668906825850919932164668314195854432242495167819711958004782589241513101625366719863415503244282623427048743675136611414885611793730313586697169094562195382374954547842832795228554703277698119582288946265967473461616700527269693884532900211854046291412927303936326538107939622375559360407579696299832739775242053059158533519309581027318749214471016211054575188055134834015530447447803181472552806530685039594050757714557184568685430920099521707614097982580709642022449651441138326539866940539033404761997061345778606528838052434179669917709684692537415406287333720796674191212638787772978480397752012726486630662141050272522485055010377358076159585889585712983169437604956903468830121301812796794821828801938480157650141727588006494450769603054982889320866733594706159253272023576987094807711826448372153927676565330525075494469967023311250312140736485252842230940588711693394511886125259148538248861478063614648749039016661500333850741597323947030670239506959023538565163939591538759062261319290423825211335913040139608715076952618544238784065716236766693288479644773998481021968602264594566880732204488740471862449239214795434238724008919733540266888642604646364649033190373510814077096930137842526676995523978889317073716012687784608568365375594641429141394468115440658040998100124692416038672288524132646464753262246828139747406547940118325285061023568104690671564148944090322204163989480535854735221282007831188305924689877635060002955705799551396185143640561875199142914292402080628806534034095695983132964890406054927314468411377840659115107643933586321790175249877467644159643661027720691144790832507842950525909477225981580422750267290553608418937517072251645423296317020325591975421035711720169947849523619250253642409022050594078001369002316491001171697103316056891403634783159977875563015724455060482679648048231215238456996960250155947931891514793025648741323431155250672261311104698002044661173001852272803720877554480800970749235578729506081532877679411182455974254361963963029997398985444704480772557216591120592035044473809549975123934473423810279155359739234601378869158233921435881785640061887884706027559301144726783786739717397576728661025619143368805341169534528453883801271736134875708251392977527340310226113905133881137480183978318531605192273362831668182574520202127969300135371604982504358529491979848286962571158845995146691477585009219333227943365194587515521961377317471495012303863148906405186837273700611384525487736766028938527790233723336005301950382115307595156766646571285425532141569162861056899924250466990683353492756840854496312205215959625754892656707333322739669325475263563925647373418210032350583599822072287534078680341333119254229638933664428577550875002134134629804694768239402450999886184557392446578914899688963601842906892165287051083233355724243657051893583519365242292227743763301010805056865379337237394012155212321109169953169684874412582432381499128994186765063206500112449946385211250651453299261604934670797181941104989719587909097699110582876683660761615509415790197894900070862150929855007826874692960142140660885737668962011373354731890486874796968030855354385951239405030380227197552310957567858895157650199129051460715059711320846758358783165345109160317185388879910237015801675419450558135169840723303076440359140145359025724475086772543016975468219188945372187806916281889004602396301135932794390209039212654080443515993697055319236196575275960895977142093765194478159751231995091056427618691940175142514570009685866215738637684000338196206241667657001672951870874163258596932057472062445634152181589387144770559347200878295694931537910735236940996713592553055022703143564860746781689976272234779313719741831688253354504595032971997796266011684545373356331111113997948415751214184208296984118122610714651376220465281051219696092951483401797144617598775609480340801306418085409685972157286777239510556006272498530102748314125180338470924045804352198565851463789752586993891317897375308653825336936935060239102789791403286167430658669225507983811452464321829056813944082209047909445042114459436184501190295834944029410122902080668494576957161793686571770154557998117085990954765161606219536749885101446181286690556450857894099626841649642538956503589066576842690213641546667801776042691142237218321016990211967135628400362848557872903495152862643585385264222744180387666330787348241014504913245208191346675236683338472105495850809676961347338797469760969463359236486687506607585889153065848302249668161889232608788746935428756050975365889006291762417643981855042268965685989955415210465932610304014059142909967141551337576174843975386495014673424651040802004431846951043881563055441999510026129559940668453536507262458140359399250109730059091233826737136284490276447402524381938971584869461168183972807408040975071928966076105472307552742182772478639065822319588027944866430266393679701002869572903940147369899628120931013455283984258629954432472291866555266204446925680241909857361863531186884737072932188542428177797893502149586945519225180891938569601360221538814127884854279253417239432995203082755568842447312026619835589660648098353712613802302499223946779563030210787283284337154252017195486131099168419094193643918455050239339541036334344581769668036558009832709879887177578856832348579410088404411900859988497436775645240818069100816232472747223985679097241299418205850658478131907855337219872366981098564792649538848245891571125153650329244454439933305860368215080820543734113515321494020940956585827003284696656788389059327173835370066194978485747261106962011519949174970356568087243265051672028714711958609921331303108365811164454424743179679142796996126801767413757896657190639865549362866052346709514724775371601966755937107478819286918818347292973199417897811065362848711966437529026484913997413441950989383479792407583275571921565253901519732199231300788177844211423254075740434715447113119441918564049633904283683026616200170400169419090701793792980484320741879997691484654799335809154215604739854786067795209733182632156375736285955633470264548962344096537668924021174943509600711814036326448864376101371321516019272201632508689994829723684944853815594300163711241782855129442216591032714047509422240235100868287536211537679930115783691578135706603047135105376689647982654539564953617836812049600332024142089388112604210033903406572068284233739426120317719357205438822859030147973391787946490007178065156680384022760103258203609477924316554210164348077013806022093363840733326780006676818244190811301058231939878082360685811833582565477264174313549748117771894256592637527871455697066707261712341601760619778760815694679727890435515908812241110910109879638361815268696973696657679415363251367550427830833711769769590382439980715628084864930480407705111084342258109473762579794614491793233921403946322486627663750486148448809478708822524233112439937367668696820007433277227940824557298166472694895853823664881456833372266140724092553250123571021720097718529485015602648083411218971134287070621725045377331710259983542916037928461542160388242041470242057784403174850819884640854841546032343332033958923092524925501597419299043225984294628324865221786246678322131451604021039002126915336814283568478216739152767125960793146932407929182043965719329540036689960685527610612674326492737669054751269970381877008938350219113763240467744381087906663890433664811564150105732989315931043108163191680256970513402396955004341550064731245909787979937208596005239127921306613379763666477727019710737506246290250348418655379355122848606148619189962534136288053004467014373144468129347145278041791103038349160958693466882996680044898698559752335502509521847690404342656599057704679637556051690147703232162082284866931263314062649577807481960370555535028942987145424288842608937027727284624899342427011053921173537770431465297041627494670181726323770119641631854495793813547343248828068097565383633425036054299678594178237921798378212682407750101810002449937115696653137180895348274830411348833636912904789195950170482424255103493818186571758168874533491805078259861873880763328646989363919300307205683526043677682237159185693583935302964685227539055587330750098548392941377374850391193912257385607436386323172070341272134617308563014945053554803206720649274622215101236202970814103230042948624370456749924319501695572450773853077375691857847319296340154784920673524259435637116888758992030062016374493850452686568799753822280839540615428402579095205234059650395336756309771156578605274208718436748714417104788380595018935492118208778511719632891699727453111574881902587818581412531457464892531605665398737555816720329972782039062548756377035127793659389120520988427272961477832639016335916756863114088480422877587272472938986464475860744168381970604088992660154813723111200924688079395247917534395082900179220138100193794116947710936549951169990365746338219845442768183153657808975011953159492349120568195365405714588104788872583359973040070843723509702414810672820906684445273726241096888683043873352393957884437091986319889232375978615558787365115031786313558066888413082816384813804644555595700723622028822627334552693995536373140237676261487642517947490988822441518201637880140464638323862752467380431685499954281785269865607108718408020229825796995236516229362428468251444027990953816016345684191458648060013080065688808363095379228817121501956748524009027547463841551887406870834706216442591669666375017159196036481900703605843970882778423988906434853357480324957929921397336408952527345048552401741487150781591343971869502302118443132032948746982926982073347001852224065728286302224749497052132888922803823427315625632743523509953528189681616034875849837000204150850448087359899003841956189560459027789477817120009714434627483644753198241171174717534143181940807459800031220746555263502013533203382003360824533311038583471410368455899591704442918495211750530072083416423674248305245075117445790455194210610489319650583851139828039260604281128586187529797889734673417370317537828225133542804252168756218683816587746973543436952858072333113388552668079317064234305238722816339617626891599811240217905722110151932659287659856304216468542409992319133541724316938268273630204423437139086292827836075806269692856475934135317120279499183869718485259720120960119693946278507658921205440062639646884974691892869008524293544312476058560029958994542462902978748638603973807511107124491232024498239895495681617879910716249470044504909717234661538086337870644417466374333010802583471445543791370289189825210953201340361982127023402465575345668471161691556006849337645596418466455169360752268633652944150017755508826569316788036537951413734308344390065889953993273994612554715255577595465228269474618208667971207711609987272706660973043573701682725123445694274686606014763220457485959341668503767142176161317154668523466178137567725355462613639450796447234441842312747422594339364633941007985425878488364601195171282980831383887136090572944590235326908710425018921064755278396382642984530053665390052684100692470597804571653500516590428139087552730200525944950678840647829162931524076216458453950475595355775193176964840155974756375168277238658077442010193566341177195339076085816059467632106799182022376034719314866894745489507920754201360089314834353571606573241416666114226036265327979872495522089548839504984701216779488213987365734969074145369299271635860653395137540199482463299272413574017483887908471167283026602779299428105393142641533589403977070323436846363454409066805092331396998364815848712650509550243657712445024538669117847880508839888015682358612317255358265231298048488905003583434364513469775959446850138173511478709181396518756441584986717648943402556172240679911642676009050412312435935039012793168423716828510460420558017668024432131944393092651123304396169478566743947394449041470242020365652162820231718320805002449116328961019560059635273246873200603558094201057765520770471524962788574903377751873856099644572192450079873976836897813769883559753460193967656153862328645896710900478033470797681263577108923691687847492568188947084771984910318476805296568324351647066783462884822692927600975514266775738114120665006855213244952735320454339194641503418789825698636766082215639082456353650984765625382685537688616905276825645253812861835578387620621250020304143314313988844286805946999435264349749782043800361936248702288784936213023200550853080205109539782954919997682823664655053010095655581985702325264311361576387699614855143432778870429855262000170955312438845335738610047161336506557615358756065899985026845058285580736798458478726224564962710957525600763149156088298050417268624953601403052591394701146978337795557300657636845076307982157021248692267449323914935406229069509822596049053796254749528372360665882244118795860785250048326788729907853423083159988666521509315060488161914321590927442073619512128911040021828522808618587146348305090327538008014924788207298560377971682178769484224029500183094804559534831998186472763754925735876347358295354607536713281428875339286612306396473726068468767270329053624268779210876284606992840154425380622155987533092453759634089154627328859249105279263959867055945272335455273774655204893514305991489845649514607417661788689384222995888297571273353035264276551855855225596992607637849296487836221364707928705700177719838558605639612073959660590610301597226019439732832882580860985565636131650378901324406109113864387919330452826505466593420062732941750163399845550377538247066809716381895562820032850297232555667947466346572155466546322325900967777363791760895450476129103238556055215177932256495691535313886507033936989253956384440612961593110892491727317180738640436460698454907313410319711674786891152254538284166874001528956188941014729125242045505657493131803593620817968404770178408977731124678427263666375276270712378605014346243617092671131560234658107130414077697424145758538608049549308718130275336581739887924416667593183826604033627277818019003646370177564031492335251110694213995071471229415537858880032592407568284742737641932573964855422869639726411226754371266788795330496559185939689113416683252704686662180498200638877514805010219837089009567094538627638702894682687050945534823503762594581105037032635978528980066904294795282700287884523027337105924089819094425849963127640234101015328628929387970571530681430785822005637721905237434196090895249554751969063786026644893674741489397081950706172248575343004926543264249471395253200457422136579514879387665990606559220902966582866473977921487872308771632386199940152616877958509329283693570328258825671068741194256088838543378402772605919878526564567337236787514051013281977775086267505000973014431559406820521105534660509199410524706418794050835691203022596102697082010445066578644937462678695298865879488580350389809023314481941233270531281914413494457101746056704763806399999603717781995325110974518801263143823176246381145259389964082568614581679047986282521625462865222984634846324976407275897136467232216519772801700254554149789835116823062878256506874362325632692855840506714059340557606311344901775007096347708763084502507783501348332072578851554049585589326827003745963046653827225936841193612844541265232369548680036840513320544480930660990517591132003853072217877787519391915239694392892350905749376568909530388298931477017049921991598381671964088655997649687857298122908148906558688720777037594021118934424917830103063456618488778179092665443222894740205070450570884942040900054760787163019654638067352502722833420508980540200940788083719507470230198020865119283704981531017901979707276652875595336212249555009794023165292990290444900283154908198347161361464813579418356732165808343830583674507005263879461051897692592414378352577268399231711769037111508644133921817156079933472889554601409618537918059005284133972106204307879103606976470808822423959788854276084009205499299938133419011142367550035172356791830668503452703054436713166025673072369682114176136926298402159995797648874718394766765729723277833597973248003392337596954047901382283050032424246436731891409134054342221766974277203284388680608794329440770435273990570529911626912856602980707448729533012749818795788549298392210917280588872898474316400321543386601281582512676198697194330732648153175953691112778882321464402378135527562848633029444567209538115967220898199020729686972253881040562084961062646568627189085503804935411134533370528929138039185894974912949309397020655933409526540037883180622229707271591685818428004596374729582538145164962788909191544945620590581184387880691231624861108879894166647616813413105339870474366242466386542832344476364575819290038073035327581801662761844378687203895548276170404067488505293980293389656061577913067918905087293623162018846107450255150911180213435887390350281486757650302801291683477434210190105325659373183822471422401266855497074454741631470834597186521905704974724146192781105347687313390382226261264301698383530571714455063888184615542790316379680819904517467303027093078124967128345973439038761267000629889575619879152032441962861843844481534156581836319780127173934696326467327480468466231794314164168412089567611525595251277637719018740235649478526234681908497088595235239625732714516162250920281356993467715215551034652972560767600704385883519143361949777527164714640869711363883513596680559388677869824673677847748989417987786281770004586497742386760054275562846456534607899528548063680803942678803493996452781776747798637379080509902119125909566148340657621923457288642415963002428652561464169600597860089587681335240078020614905671857707222609343313154454851016221122432224823654948898001410212841599097988133519605313108059088390326646623690428871396655727719452981507552092275646646181428517901585043254892638026394527697520138424197092999402770621396823978497332357119755822765843100408183193540705206374800405654000356833906269764745010981249757934788599084150734236259700521614795500148306291555862380549710004389786120437858797770109378706268246474820483935014545751944041222279266488848991523006300429165735560403713277902010038885760030620216940418970690934155486782413546679693664369286414914716770256114609380718867045974551631553527430402431936627306647033479861148091797811612687729250907648082110523204756526282324871672443800054463165091474356399217365706157347799273081287460837994649446382861214287847690338418850376235108202911850645967975516369939672356426975411771861507685294285920896452357041063540693043264615012232841282990933715318648939030896995893284097404211994319098163416868827466741793638013524712257784587041747751840286155481747968922045738895431632136071888594698093132712828132022250338213790866948659047744189828703231701028605047201132595291464629123825033999884683536935369550744832040703255033239763707783067286356928959653131112449354258334903224579323665064527468199986302627584167417680664450953821173619593767822076817701659559345938490001634634178238830378597488467153293697120385881809844394986584384359747053250685812346748488503449880719637915093962172595446883028098138960528013974232267197783108046369161436663085388478588478913926329790958546365963108427973136370591398371699588588414525031329967471404793519088531234890773363120749616582151978358074678703566804138513726632956550742630093967718082036721755100682395137925744106695995378617505766290081096643381949924011092101625782758669032276465057801350262536219818248288380608481569380527832628114010624579016062666983087975467665704021633322066228854830574698113176284831048729294077436881195270605987753262208896547733182346627970051500073325572191004081238670144534190449527542113402149090751378702057133816974219688392658309447241321973047655332015637746131028660488146625426291473352083419069594895794944848131526201242649307343492952522807186010381016376624198619531509431245368954475522334487724034178041969686870248116892976342110184182426656014349479567677863701978118341837514471888737139470618686720853578744228909811379460583399378870047799407322676536751406825517393145514134812309007869403292701425661342182827631359739169371420308366193852324731429337720448346224360335660963315032272456095088626974161817595383285602174445467216370646641500138856779746452393143873914489677915313415245215948229283424502274901332963804743588684973464813387450841285489392302464493562726638729404844642788753773975988546067977556296959196041119181668025568722039403619516213879515114304629684392472953828070336419813130357550053451152727456292784944016267075797408158026595749620668579406626290324278735538560317433588548080169327771812541158447320303067909965028254061510011935099321444105606999416545238583505029020770263347906984389651633927170722929857423532875207297030602658215179671088439914333978985664489448380507691913774103336222480803525289873201909388981029301182071018506019347667542264462751866718938843435479399409964427723095317122048859001448150560931061413770424173268212728002832939188705862349488701445604589169790440960837468797231891679722058318407836627330376484796310140577659718857521153451916785195686299075561247471139811211071547795291869584924582440665735269206814052457548486156443442294987953165738214620682158058177504153976374683116207251624782779710787162454211769219094795981610992202138169538924390647584805522317493466668187226087679677263456143728523668491348018907562786240608887636925150047433935764293861154439335334044187240018707181785234461564163307693111791831210440659559864569882840279327198074647422404382327353661273582813625539037954813803588223359191513883501753076827249587265808123176009530676254249015677922063198865552709925577045348980615598116531384675659081462222762669905476800126357249716845241328346265367691190330928736714589777624040400635821254376834528116590486984602980293480062716283342827207007880428823345666451460427543962731400850456492892349432229732725729042708506594132890472076110227985649742205516779524167814451875825567220855188809849676148177977970025993963542344477545929130467313497382035235630750380318451039820142630770436450041450429966553762510716600080351862843383508213634589549226466230431293180100182199828449069119561297688979872968046577049745801328920077964685293355034670313110593114527604893538518766396857367993578617306025215042573774702506101825996963945525534458241311121187349497573694841591187514711390448331464598991443847471948820193166098764740376516516380713633830388718065717306298572690836075638934784578381186056322239900059855895451677475280928516029048723919068768106688903789859917664566768253420356349619153258989262754177267387827118994753930265730724167015528964928112499868343921683622898338943634265811540571771869648879244520741823914243072917502062024015592124153312077812275062426911598912727370337089960127106889537407285536800124896826862567698573255639299868772047118375262701235165535510816727378017104708143194175891420044771684554943473245189441100114178426819388231901436100196993000039927564713709499691538403475652363014997210442198565317048409554834035405481536329660703766130254364966440930081455583490832029716455845243142820603234870666161989668553800839017179224285705974185845055353593745456122942463553868858137979966543434988669475830603648751943228225022107519706687235085117772635925330702315293280451636199446663547289266415379817576373191826161323936845904453147964534195990143199340108452926131333032512306586246441354840301434870323585204377691593943382581106288123941274936324763801484364118800231473806908513578155683979100398039130668466399263000804751087247422416022278531190985301859990553027699084507082293737934336139560921482972877480603476323106519076037770005213876609335079502761515547334740165069040734426167311395402760838016041057932453265215815994367705096372227508426133818265458994567792842396164572498415705501077648791697594019525366065732534798569759628656577993102089290998092483230536004832117124030190929476877618870179552885907316238106165671367444917974177217022935672198946272825580774051663349422660409634777300674451077133078519642291093755505038437079384796417255554322804507306364176535741707589475108437609486348444868917638115639658499593142360669085345578120940335893537897690356498738677121937873733827904012053603682599856882969909539770173105340798239170151648483736554634774917791985745656662366375557161996432401891352239126503701290769898806889773602656111867164144406427236797138408721837040813144016348503567623975056288030332615749317631120173654325159848723602036270164935613353167680277868770394639747217852757348068032608286284586313777671472795497237659774284227721126526340891719487582117109203303442300343863370107148477521116214085155277225196480035223945252953017307530943308777694114704895948822394013096109796426236546299611453221730122036458805094172158817017525316786453016035357373341830465135644178086126510397337194000550637920191405652161843508708635150814123667958967205968566678700550587572332860289524587911106678366221882148985375335049889299245966144900354073685904185604163719674136011633205718122520691366456422538327594035392452446625756908587642875748927175944396771548021161194473710493927824009135654383181456661375245777159593383596789011050605951873461616661576153225778867158009688990385313278623528979873436123298689061336670841396611551052500661444926552521609873784547202195179177638613003468294589904584491830772727351673853626608504822579499602253618511966150451070406231752939544537763867545476153495648809074348671010151283816525833564982466792464604260200826071946609784169994878646376444420887051720758997419363669732365875130599504350886089029073343232077722487990719616280795614847641634404070762083315913879278982011517298348210662374765066154886192045695619517494579349022181712964679660337406940431978330673051838287930056012170852826877135055949853765876715285136777269822927954123129075071578895981224015171959741864707307333916868431595880748902743325215818396465774229587318117792829242307590877823802915233848437181471935878714954091548685557831253271729532879619426852733102108517684360264790568946491715761664483709105962814304352303948823658451811558087196626492703148103963191328492620336843530992189672879260273972282275751271874451310312723777350036096297072979957626922277558657543445319536336592652076073470303267899617687555758880733390265017461862106789880525331412909022123477690832213570504992900551981308507683141481411090158364025919002881121889842798924187659214021828399745498399150240969036541537029651355771242804650728560290950526664994489459314742150892434753289506903359425360745680385703288263343013760334392706144180141592737858085727740628458886186699534045941903227672978682657196006431703467331156252560546502876042677898113763371821582171165580384898313290204391234344421212382891223485837786107238050464976605178265263037061584223974748402781462708766006423134351469592206440034837460032696120825370450572502488189966524629645044410621125629628221846492523380971492071323399968182274962256047576781010783167693286890942337410893218412006609707630322048036093881637464269031358226587849200124067308372188266442910600943067554622705555283646259751846621156948243342530151365524571476719986856911756727905665582910907633468074477748913406678657380057055982765773924709224683685208264852276973487770879609817668192418240293948722690168612720809292763342823141422643873609885974368318911751893500760696011730648726926163714575899739405998412125867553728425836535816758070629865219479001548903337050709769461673903104715040145121147623885429368798008159730878867111603710890950886418348931813155372894586310626582244530015878647546538996205694146912666680675259286509052945951371854017469326367382851491884974015468538092479666844020834883373255300879308155526331987871792826358080044416141697964249553697085903856402093086440816461219057501022881482341152228466950899152294896539600899606291616262805795989013633346447782540519360540362413922071968153820398861898536971735759906357243016909134193263638497545958792226173739623198185240153427248811458557992674450364390806050054686275188168105909401597954355936036174455784700690017812991728103109475269720927877909354687987474257338809918754068660396436860415310264765150899428779731265023879888650745889518957772205919992961377013971545451201628445561910889651171288009027328191147482795679130243604830950167033705067434077000942531985410797711086736328139400220057609830075190299360132162048978035018215996905790560099725849445700871533914511146004985703691686126343543854101848183900683014238990178078555771511274523009674371000235143471069983905304861260902342990601313542351236730573231153477896919943955787359565672315625835462131036224808530931194478026701905573391150574491969444670478338928269145865169285342189493980313368898669162610391407989829445715252878666673966949425318375351039630080724971783263951758827621623476965318747102717192228026030888624546772855236118394859214203891375970365266586803798737597931406909315959502981334616698501188392103556734303021061581841725034530620670146788418513413989272822766192887149224721566886374323813563888705984043156626717246173849655549711196659049268696175554527140590767629369223847095604317324561202222215697714451911689189385908836474586071113047406303735183138367737009882251188956543994681416579792360025635219988979836069411559589540935980339919630417641878985160028992045504984290770816828170317488034271916725638976859258998137187027226779829691973957779219503795467255207815410947678048903880188444540858393199492682720968342188780022998739404537007433669979186626478366550445528326146197174232216288566236114399391564226180408852111212507707079830715157501065255136519498257246956228247627012326228052048339029618862339627721352945047740609726299995830427074877953423120729051393035362468367195697906908030424538789998545635167734911172032958842541492474031365719936365130418081250916493164705584221881632658500383101802755890095268134604093524542983997192722026840659995931000601380559422331552284480616200929841436321588316367049913832173790646422660330814164284800296395111101058056774076791576467998288505939889583672374538475899747427123849750112355877666291992090563448985561197378363130264877390316674432636492071374544671926795833081084027010480105560623510036601348166425441487126611492741136452537432414715498778062339619974163656956102968328078212011661636480403882456648350281138872915891541523028081387721878068872024840639215618557069904689187089927633368839298543849689030662583390761570516020523240077653185436598932920818710869131000457424327443892673261147537171135080612103685581772268681975950763280523569123611518320820165414958794600798343484081970300689590860881039129675102590256827387523836191505900946588886834500089361974752767551822910853089135260317255578541660766516170083709372213210569072494243977738414741841119883981730604372533440181532006151013850919473268428363050651009236433084111962135819157646598289909966582534520492909706875475613835333230537050851274824038768002285288529395887076231899193531010357740349096867488390865651486710974221918978170916178899459895376193383209821395742197922165751413577905925404934085666983477458818245081778583100161662570600320235963539979838951561461254726229523478058782106048074875980798840645321780720863584646052412519502967987865555401655781159927242199609604199270186359841411529387925135497253208823816135008593582850205036879771151609770684691073233437851883438364717166189783862334763375767448446238246157057574219716306014244413568712865847314034420585668552016533710809008796719010194001381306616797236131735869291865321715560658842185292453099399351505254487357161465835757103775068174526551352749730558825415816835087578876139710549503616509918166836250594378836876264204477787127581483818803493374789060406731768068970529769784099615451713846839448911616300736628534921829244661900002321406883737006992107313388139411335247330064360981988871069912804775381470190182321553251359339031740089312021361923031504921970661405780117572039692906143930062503005505719338370438962752077663071874293571729977858221071475541501036673837914920030467273383890985839239746298938262062150957329343085406000940095731253336222052486722811976491055247878153036707830185243788721470816502950963718824123495471075973244388737168823152467664350101000235972960788093801241551692980046137601536156705100033486933350299152329443183523393095972754957346944343473070476489434335113712622167322703293480355132153153567369351973290217849287069665895549912885211754112549480399444530682128921326744006034288646137005370952695919891787383079442241589299272651755559732687323794248467236231821068251684142785322757658213763774520630803510835619773404749599278646688154509225085067114620944030784992826489976239171767931248048117191796490263732409588952102718830513209567001247105510227048622729903930556983249119428237142096468529869865989352124918575075414484596712548138814228795532017731949435829101971961410982598308577600268918970952117707536291750210269828248605945612839416221579239758419910362593388240897577242751141432659012802365681743437598740216493883765777368209833974818119039572285854011590987060596892921926384803168121572348421376780028158179554955860870385146083787161381193121323429843897875741338651849224976140976891989034899323776206321370781634578885208095481274973319618594778479328358767600156886605971540950052253204164765329691782183911291734210308266607879252504884287866336955055881428606283415030226923511512995411760085326953920050613272307699387422003525090042771270850237245293260274204200886690781729800212118238071483502073387664363073631372287274263941924999674525596976060501919227447453081186782253184588535785050327287887450725247608697637176983071742913440953998393873243610076036654936000513696605931998833236792507738085204043857530591249710551127443471943929447629126327135306572146607990042103694750554707520593877039428607552365643309074644341908332835951504641918038202948301616582351900918553167394884985781307908534536516904626539225387000330928412933777878062324621606213692760781237581318255877382541375664514206553150576860950643020320202694001117087179593283817079161577463426211417479553170014739667720149662473084051577813837650255648695961682856315961975560535637737037646170718127567328074813738289556627578255483741047955606832945854480225459880036512387253553946960410823385988285886319213816426821514868283241388429035780497537226448411145132868903830731566280075953571826682010054179541436483926272383526425130935988098633529732061872574262146677721028672145881588891424390832297659173537517656718265914782886275701986043364325070627408752860685238380999482330901302494267262991252362149397977928558687901337372267583303069211146604458764369235556172327303909425996089979329226890917093776709593931351990500597831600438808349184646796687991214166755921394375423216770974523807317300258891868620591903909016889123775137636529373912461945239556616212653162531012541445933646637430293876597595113713170537789194046444041048752757439508474219540356780089127256560784427881289613875681702216763013383837863101179773431917160060672274506174102671427953334679569698768216473859898240135843352847732130942566526581373842381092873519752942612463973056592396139032351135255591864554634843915057152671497155890809247859141214510229435029305388511786880394019915249535502336017617163733554104633981171115844300911393643829622512531626714475882157429121598285069434292885037189994241684712246237125561878787698066089191055601205444191648037055615754268451750983067462159274136689779819742158661645168794503922090080937028877019445262771103274459945114926187312377093850702367401027290504216353913117360546000076008433702431783425834162593700480405773361327895067913632071466671806205175827863235886300488494618230283263664319337856228725510848983385433735034007111724885299198035567583660353612651407909622233806484723724401170393015971401465498682198435707129568884070001001379492686784152071844298185946433390096114654029005589820794883299863846844662204734241277200807200781451738745266103790383559030809936643960932212860095240607380262850669744316894413998190507153874479958672834312242255678567379056620405371595396610953950336282651662432224902156576851776528008260261188786016274670533244387939781139833100597760106466794806642172592254413068820634455682739549233254058674686372356335764425034439335168590004933897675764749266008175085350711398748240409783119450328810690049978088668050873871609891061451713274008336872633309200529312533149558648891500084546252859294139803953405124966759342666547356879126680465055755829190843909972065153069878722097856954592615801093602456517852569818597627887836281126548907040283683461091301453614003229421794493771983122324164531796248957393782961398964928076214417655623651807751070864391384233511518647047819211304023619356292019985632347594222616972231920996300056758297643963593908171555847041617807020761122927988965513969166150016452489411067811142327685967063207277802531890100398552092773062643240364620529421402382539438212918938715973073564514583877423432970217390796874801715516427829422403930619353787563589435144060199009390809165799244526463780955245893130041625037055671021255056594505985681101123369441618272638775619547217892034763202119386019737490290249602006445300120906240079496102840372854611407976237912026139282056617848536415172788132461771225636755746311718454800141027471430598581170222729461238574762749766691708553461986225578052439272192243292581336038696871768046667341372109570534020629041672127953963218394448547684742346660574822942813727567776744873450854920435492720861472942463610272524370559416411244792441643458348878836699837688921812547108154245814685889565032195796036333834090680217041966125290065572634883268965874139729981005764976310190590908154972790316939256193478616729112290564690728811098938973359229676432184046681850564617556536892002698370682963386116954177703314194424897776584492194231786961975298423163989563035835172079039217298074237226016404145295081446564347815256317628574903031275872877811809132939054101945212194677637913596093330063210023294256009634560996541254224099729586286326747737033084881029920943364763558546635051942682014075797380868452946164306073828172430358425077625626141514095318859966432363927747256458946833508693135509089285094725732814038764138751484428379402480123498736318457549336773032720305125409584563942246660275589751832900251149839821971170418889677676011641712629087553007125260732682115579516821589664955336105522061321653160322755212033319574341080344587843162971990241282628572651762158033485957881359178402666264300553156896594508406353721033072930859428247113824035600620758508850906891284463113984340386583299404844012206180530440575119531309167437016408357745232625323138724952427121689070547546485391130618107147377061412170329984191721633250546182398487041859095102610238774231704204114091337370841181247181002249167225553708700457397582570173401731394634931800067586305080711127608180269932010205672108895968383384764590881430208561516569527574423008489046773851670911763352412031168908449598506269690760263698543539456940604045325377301302417020975263549640023718272701807770907188661493796693794913323862552527496796006560873702829366160572428106262229422621068185944776733965113712476741004040640651448426291680441361753749167521710246921059805482817179572337992116511135907833850641194231544765582558669575599017771666550576431145228355569612043889229581489388008368113211602329221683737452024526745112097960771941385788585803521253403633162716588482046493645057875958689248992017341778668627385867282296682319466378890917085851825480791938533848166037816103434701429697850528340602592072526918885969028071896703339391912290033875052264075728562978998336154801117305981781518839804246219596802743863103182765526890470541873302891770479094642471048078840625761828076412887736385110029630723075869903149837324972908156370840705606149990110939076295328001808137690569463397942067806532594450601378660662771291978255867502687336683425149482386267528850200285057153907411472442503833744981781926235865916529723052587290358517897862229446204114566553598656591366185574995968351184624390702817133794037901874078176645396957992655754017795502447578933374793043582944037983791204820767047958427119288780037801469493433199878824890142731049569797473680403036565037599358042942587402768927989653126566051140372714093384680351755189063989338165213522995354116064220872109658373301110020016254900235733209717916348306243319355141263790166527860167563048874103469938865720677918608174131482634505691796210329788028236771114395052976504289630946470882457822526666959090747876917176803269092769992985437062711809801425103795040112597138105713340663165991507504046538909353637778025362775286686882853088403126318363148664217154184321107004699518241544942516631713221817394064453924584358000968286245296069343649595490931391091541062903565373065115919984131283789399729670238674953697114486703825908708373400243663443488135148632469645486293211657975901302859878581366703179275143023447687450711530406327374111614822238070400854357808519163691398213946535780662226336809873026394656499161860347855257134908739437290706699269138139449878695700359683374677688023588356070886674112443102485236470378569161336991650881705245069914306751115081438817704518851940192634353339511136877947158528551902594578609253329316819613246252482700566557522673483505053886573629521537706597691346738368555217500842305560630564765854109701428054768831722206186241609943533360650431862151100720108202648412100923925888550032213985874927064478654102857986800994393390996005688475159162508956426600576635666764614496457047153664444856614609439655858547457310347451134760816677161712012083556117805823784019179557143491538698391459237005457428652145604645495648514131431189616532174862183523608337116366224998456563703945986099023099580426984005629771249946715668553590627915582251920953606199464680268354607709951578388455046770583527978499779685590976371812747183156060232714192478031808590376331135184505813069400145334912386236555192232945758115269193762891849927911611060052580356562396527810078940446125165718459929731816958819854793068036777385725424668971849003309556575115415798855852054685494270581995012329018804007538276589888052932068379236849439422558357857553158732098799160470516514651317447130825590313075228640331891570174736250462914369553366023865053373102509155893297006796660981212258673102641076126714268714926839868675764766248391267289517223009928554561845584731913644721162713132244186998420447892156762927204228977847024334603374035390336898482519609559981215774046617004276610641860473565309366526448947238001894116565260128343721437955268925922633922584918054457148396356949434443042734786976149446231534763794050742469520925022300572279911208664454859151162203777100290739264485254907691275792173819170495493813736680697881357999311909647877544160966413037165326500076248060608646959017392344033114675145641161530581665895743975736627000085389988271165639625382178340954960457611164424373045984492422484333268239023841684946028061117289335136091409228108296266191706919504404261163973799063928274541838701215464907477309814332792543155271447008941153353998142356998650123628067640655953199960310224178938752166247275470695856353229985359577071831331197137468660861678117283153983087709309541809093855894315254832052627777697113903596812996550283894602479690332920460760641501933780775797257627860452752269566013972874916185322693309611379642981097533050357225226394871463702709012015750067493884831531783843951808589570269526124227264496094175920343442486842639609103937688666535532194072607445476109076614952507574650597700582064181010664995306268408159327822652829297359089486578891560454122908050270048587104763494384311799904011775781770205242858963710113511249902828476637730476517406178449471702766418063403082668394585452503520127774403070122980625499111315328772798732119876254007643865617135163518747928900393473708936464178447122815475787649033833491424531710362444310889991443485618998766138374472303711665079231316770589590750703296051969253108679028924190985980232038902755230218678007407066513541332859168877194716428489846253239364681763078642708460046099306283551888759427594110107201852499361799441513004978995236916040819874690047714924143538005532544518117418129296608379627999422221499915827595285879580731316981229804020187296972821464465886201813613003039513934586653267488841726715553857736659299251552536322517246767143748081197963606029921690122820261414841499421871378044616964130714911407753087493975368269848737442521524180400978397753674998899352620136384178527413633248631793158475659220579635952674102644891232343508221961440493227819303068622544495060364010099964331560373233648370528140337031475931071532351195965749555135936069162873400636834746933792782722818522073752282348220115030981984403005888984104820511254022391350990475656770300222009486760347666526203353485681878378225568498912569867802826371345186047017635454820062104889828375229439125253702655683196664875878989746154549687353619743762261401831256693522178017673401053196175119502737314107250181783871945805048088430648965139941019062772516691685316430720243696862583399471536522688617208281524065642826311966401799805590749805307604683183216062255585880843745310125711157917387337374902276692421894015036419814131733066575351546949896298790312220609589881840744134767465686203332039198460629789345293906359072607925795157562648040653178148536325085063098762322441461448878771697752455604582435049342497056396299476991049486041966436811478349724390642882820118413055495883316918838194192805453237523434287066669941941343465412723509803637555669589842438807257302767534819141933070731776506162109074091070188215404165843296930135737224358542109030207291256077152285132416962231234617670867628779648676670047743663717976544641568221042731012088708377003572211235532989892002979071714895533003406540209222707365831966811982499524823290928374080699742927681279951567588287861306762279510250917784178170931167283740313992601335104515119715336611484606885577459065943381909811853867490713707974998375613554795351389847128285492424155629818096761955997987893712904051064787402641261118940429501318584251120103462834419342880890256479248998073303914927736284779389011515604446129318672110164907980872325668253948766582263624938915403648743397691961772236051512197837272459555225117616576625363419195488037400614804151981546779654433726565465628405825639435830507979132740163336960743391574533799456395663669203623863489391673215928406354205634156609463466173316804503284815136260386411413320240626865873315152721023343265755885900856841074206653641502816301062363813048691320852190218144607098489755894392276790826548462482188455984364373147597856978763934763924512874577090784399176515061218419613852622925439434571825335624688470160900030653271930883877662140784590637410274626781816871843356148544101887030554390268359646996072319618518203348631685785288877240140543871838078681413081347746222913254798091289215607123432022646140653839022518376430630016726355239734480023110344002533580094125844813390649017731653006896267563191399778081394635570786418626534805430772268602603951053049551876976379385690712611631918871417968608988124614737512522679890984716475559939523138642203066989215450930307781702878501166175124601869294423632757480571787806981052061770519548270225568482422069307471713395163443451837335475222680255757917610257198600920856137320199384192924157261114412432668666905774169602859706625009311093615524482745907857269544433906522266050629845353976405017894467258720758780056376293563046671087715743672521260424875677370881859386216362755966042349161629895517674179305440226084789736238042318980182833366188772974008021875812624543270275837796967442829689810681727420317103139465561299819092169562819998927333611451143627833618931183370453989059385051246242507951385832320295066303477703483082580810176491920617474958832905977762516622508113531866608432443583417933539402775822790723977241933625471423309370475481208783101650289834257933500467481463814997323950069489607843979189692811391350966911468595413124531487660946347725220417943438966800284631164282140563894366931147286781638211182788387893690435987690651166484999221108941897607396835240307936253149777027822435426236635665396591701384021905595423219207397893244127614783288391559261773262185493066786490627152379701472173684326296902545981092260760991111611650193282997638127679403593022258968391368995695921067436387698486793112951288434298128585758348000334325408806404563451613614476750012964160522435814357228207094291481622521154474324504531283683279982734356541670472130532531672883021196411036080098689119785389144432709096294052270026970447788722113704784302803020050469833942286761179400265915419271451862369768235364966521823232534207524883366792809213461998722182618342687504159917259381731063992270447509963289578329727955594396411027731859826570026602009517958646028249728479776182673817862930541601074227316539695729401958805837974281907279656232588064007763526571625526298076446557121512385709722876464162682720078075815823355349898974263213700909471581239888486867210294419703824815416157651395241526675609018881208705505467418444528602481849563521310139685861120166121733508593639775878203611620125617888686128392341051400645347028051294598791671193020735551608001662175435435648287058173752431664203064935935632711752181584485025278807358491191799377969906741632015333292562696859524287617260396870475919254930789514241719848702779819459758778092647881145695434561871776560168374030155772765183434890414681327816919990057240597589552933582623685564781806068676575264515579463548567986329159053422417453732847829863920943172885778074305944034967368561144630464707917891471247412283523284659021749778318935064785331520254830330755199845887724798736861798209416222663842134934356809578804178559850840847004798281641535984877201986772570724088982940205424562459979740335543894725940980369254562406685846854570290353175740804357752075381337588973250855432130509304008556018465563532662183588021220654529955853736661128134196650086044466654896160388581319274558717751773225688560941066810168119595990414351534472990466069461781154754956367301195862027772027962111052178212145099018395241411196989299218629317072522533507815971346240500379978788536820418528599965674317425527263758590008762418514628593996100677805331385881355925938518038116136802060430284353116378733891026908903183904439189347042715492376896930943618547297756364313574866540914772021593935559487582197533663270988888144738841167014496856699675546918175115840233725436157186191603818216795848284822633138851742450511864392417060994161272432660097578604382566581890768415430943600291318568208738844947913748981230158491289278752111133180422199576688056480416472551078438777365877563192552640477817379928369921067678413207271110766357726693658734785897524205251973061357552154614084465874693589675622288480921205568433519666203827003119454146337295742326502673318393427034480602873145742157067664440630649340430381760045173414273459184844629897531695674585402849356223517800463257806745795090725679460600826007644454501836687080688540150727864469246558777339444703408615974084106793622301597773388872920621480650427422416452787407247489974628618611354051621483328556072869518118233898696627576997615202473916415581578672542009781406824308221099836460260712743416543662822523062931255587575955906044802181982110111306209183081384948600273997262226250833610371382563982947216812662008052883155172396783889711102227468028861659848156312491925625093416861405897624837069990786103031756012351894119547786896139110554438519835401412789013105959601644553340908730337154751728526496168741977093480202560046581819449797364676364141401173424945721985493850218157174817985556507023292478981116382923209064818858632738922197021251483949573894711473506980504968204694995576058732934492619915951989305459663589210528360829229696139442164346168549357156333688467498233613713878527083853708627864906759638948318247674415395474795163890332970823433145793692084026404477940624646248843056206814194978845160832072116927778466505091553654653140098520149288065890867495127836119911465410750466373071147060869341225361692309736544572741732792266477189262201367916229526604318243142135495630267763766008556898179823300913378962258922748392190643500922064348275265286657525460637762390890295632463863145257032749703906975628377103300010374778672873685244679380669871150483605316347876292793933022204716202407908783019911356240242465436104941289205552534146768845050589326681458598125490616599093466831915126026759443971052568630044965132803337178569935435224066283331114496693637298185822861297448328180427935008545773975925863294000029904947147366484345565247450243526168229244492841978524826198282631002226934288550836070225872993356075063747755299698799488341988976265449992294615112956176004071717131810770294382160896499365245962415293120061654669476415724018191536514324624324772609827496970408514657217139824357312114947979808698611201483618157958146159640386713965870837755917163887945371588367441604384455807773125386084732571462984520649783515782471760421456400500455423030768602807546398424722363029805131386251207852984317417286702009829874149315145502471926792235467521623272383090013725135218055928782488967460576700523581099051414505974932287848787789612626310331438673003408411580402832245257528085858256370254497654260552538059674899497414235824682525969108332983980703592751264414819997981746407871434603821253515845807342528266551030190460463768128242821418874991857381710933002899050740890614347687004615362725091451217947264437614241861256799380306876208829835679459025836841218420247011457119526008301852402562094104195303824430218422178783629031997590495545447961553161670202710498394225053014952539091010568490632568034580655662947971665594450828146555412894008096305329145770633756975095301093738090747426793429392779697960210994128329880892997200237550541375867534097622102561945734643608099022492292341460021177432559668635465069926364055672297080039519135474559328564631371721521715684599837030337188903759352523640406097067411687817932514264025324751664755696080631583302691110532406516652493545666842540921592748382643340464841823764845844009760281370653372189421144723448693054846276866478775539715772377392064290462735659318134278695121152950477582280884739387192877189532686861877321235171574459899741966579413426072987464471078681325899985703015665895255495756966264213690305664304296660967068300682567702480950451729628115681406152166989766388463014828228147689721144981595487978167594220850286004101758482675656137986784992837379563754587922692972169547141964663788226862949910895231813010769418732895654776215171695937939876496318916039746566531379754311793412052849021942473310943110514127684238057451101394249289840541100885320934078527891082652277688711382152990135702620495245882677815978248168292543917697684126218045058822471494233356433572645865332759381616710187598726789333404790475205340365076989675570762103045532330257525174263132635492292343988490768817232502429102020826748838110255446529628848545847054735208991567690581432445042504007962419962854685510632758856665495752282038491112995305748627204168350915779159729373056991202598081683026903753702325101506837706134961565151376487270988249895372799793987248173802635287219873172623290150623969443608426458586504947622266753669293122681008144628875714436126103959761138198527666810076634958286456757964424755536472595646096061962822489454833990108955707470701463787030525369075209426459266166018385176898183871179699920668320647470260374425310352866437666437215911502027735767747003676209025163602377336332120573503063497510517526340301413744134891657622915121382079805893293985771197708902030250075820128153897686127014868890110748199777395380200271986543459263448108947339350723879141607488583446385961181227244944983839654560868783829047438681383700608971056795356256691850131749910844880046680314593051583361977532365058405066791375859319524330639425710113617847581542642215847312461213105922473394251680566247394103015155645101803200720405506507262873078682717100601730992597730846614350191948570640907709592157722748590840456138527585487733909402327487535274197337341252473069982718511782736296961731111027351624628497264610805785598379496830868861419205466246632969786682551119685724553109209068710180192410357134470986701915139095206644749996354041960743298919792518007700502981361517183037925741692390134607158928748942047354490357497556081110897299202668177124965483344761021880206364299683040811518184050895147731267985086720458998280448909040343188150075112561356111214626162247227404425313157682224088149503091937258674288573844659106438065424733206910625595319241662901298896878517090923900168979157987507392105729627965465092819179488480493771400448076694019280196622733086540799504430232708527467359055541012281220377038267293434907700674019181162764331011696623026625002969245152627524355037477209413376008485496503391078004049321677960389124602831158689385235316474777816796350859239158236723977598836477186515835461104458066507639209739662245562542596177168491998025878182607643319233792274892247285153818484825093294060337513774783290306318108510396707364967496490802823548486357949564093120665744800040548687303246992063810739019621310581125102753261161317001390776446391858699790366802676632250513925559288678812336163032126995008597315707429732040913711128877743992193996570776909846386730132060170986234850886326914780703068918608383416248383328850435001828838876221075716259011542411230479207353834662592082389430024729449219627713081698531457485442421759030493055380208653333348806883414378245644500385846670329770202396872578212278174116117269325850760035388200971828597304705661426333307715234912791221980283852132897637037827411556531492858417051799315919302476948736002438256846837431548372389172964424499743080243278022081727983895018435350261029432373492309067096356760965843450179216018896413081750775686000468294890568542036882722159445575954074497781834900088430311439830391178839942722421719503840266493518021813558130826655874134801082430490663828133405465333714893372294348639636755613382394837566339926284798256437535830584092447485674460232180916301208865752239638018227962356410373587832861876859499094886370288671397158889260854968083004989179675853891141778098887522577770414494319069585829089862222973279545751237625407907171652038898840203891589701286880349856606354413132087507888430115210591421841815873505483609290711441034684848239147286462896119504606250578927379162179259138338134220883059170040834948085437859575909227996377546844693553240577534305483560361401639878369874543772346855925904856548431597476771613296596067680808893926716246405538634791104743497961869044107777140074082171209028862770341023904942946960665970770055513943348641456132912468950088052497255892566610647965237563453846104743685086343430123412731953885180872801081809218305932298388120688805568939108503184564388329247536613517131397601396226570523459240622066692526658642117200146289784527399023476774053368381293189309943734473972416757281940842273633888549825545381177486526309106683895936091580159628755793053199977088826256827013371877556162811465561569387679298155931149005289223761697020811780526733646010173142393041285651617390621830315164769819096921639841114248230962099822919838752176358907464091339766465628005717576695246726992550417336003604967639550712313572718306584319419046409506401635165080564709721618755867606773027579547361726720838678885838990398202889903284146206458420515585902253806383527766094613735692029291376824350113910535453301524014098377273280859415233247511118013194981417924752930271478755774540492841124275584618553826968068567301564920990361792941487990762070065766905135020748959625832288989631135298953206559037177970367483215870596811588969283077263324855994322568551927096745289799196692326077030021966098845386436761477046262492129724234678899905190842614445005305576127550105766295237482793796953390017353184296673804914397404020576947045669738159388151355624139181347106681370397369957517988411995967165991485840627674643299328970519328244100953430745790689018546283822960947545521839141592175771929432415250864597039379329652260736868495141070756049018235337953265526707301058399588450233856979238345658087204765487839844663002527293678814944348335737326667726322859511460107974952820647040836876444715729997453225792288010993178372333046286227892012768885622412177346571542603381986519163176221460524768255241002850932651373566917663874734459711948242540547156416697695560568801252580314301166938654517047410918514502219814285304675633912277712882948755423628333865482321319512497910308962821889314754963154022880883620149024409831715352392850812027365435024685619573232199415454753611784237470455422531075774061431100175684238238727860066847061949902713331267307933139690641490212694947282736235586555795298959603889367348312848959024137156134036207170672943008586765813197378216916956472378827722263539300461422970269204221622505407902883678292221979918420073107518706353768439439721438557992394137383507312437113516971937555005010760179174364476266902545050468079671961346935071372953812865540946161593499401534628700046698644873612441554943622796057638215104593971556297922941163065390201322652062942021120132795430365029019283887017735414191652288828406176191389475799596617216711014556173766873602012858084039554379646595587086032526764833556121850749512492812526990236534041616558480255795511372414455733899187277147634746293729450626202642525563991572559218376321609802098816540716666494760603569071680706146232329763414082520944060442700733468255206785389987217621091406404677088688907422893031931770752658294419036406016765459244379852166952001656580295639956593498466322338876631921234092870175198477456403778053905834044327283738643419214973640243749437469841238218480139363554654082648578741642827611647879100996559992676470918375782691706192402289866181395457118127301500861419299863902509557601068547372711086034962151653296840309446823853517996498942113205643055000024916097143259371917263182916890684340866746743732682661935637503742695218164579649628890280710322912537780893227445270096671434205069737118589935978435258832515306831594555253113176444875542689736548567391563671484296733974076659382439457669908332488883013217556988205313789800578145837511149549219221385750827447091135757527003299844993338592826660458899160147609505741341064696650101851887548110544327247962666589603446400316296539934502177889864305637648742149808461951514597600501553260728966458198006765204586024902260976220843224127420103003596940586469053749973575212381470884061150785381577528825708140063958572372177545811119728121007518178857692785653125391052647932110903618168318297426000519165841989946405893938501162775872968662207579552484908985127431233634779197315169684288939973216946903974719611223423710290107896638832786253391094086071764575100943309218793846126876739569060015651146910131021261266834036150380991166915524351553589078847177754101703898638780422291900588534933194972478195184176092421414294323378348071364545063361595310020666850360287792991762247991951804815109634707979520658453069837450937820725824566763833530632835642664513698310931085606468277568256429314375370154353633501599479279518297940001031624261297754208009727647054318917410244538712551830912314261195804785881185506079903002493283325246593865332518320553304294150324057553653284697215128270256528258286823675891375927179159746578076675817862886466723155353410738266172947255768435839569614598620801508998099516265850699513241191206722975609341552422089516510910203064736431328773107241124379261940422561762807513163865036915148175136087684884992491123662228535129829131388604671690153214715518772287079232526096906211849286611396236923609543864431095439939005700176616561871199023254508165291168645318250253304755893122617830064367819425374332767193098578608551199417993246303975050173300012188220078888620864529423456803746748116936717863729604627139173806143436011159031469098470409567988196529919025341484157585226375120416109473787299929492229159752668111636220641722148111248115365743809635946973282785621703988086849730194822417577116101195827052355991604886955042582714433010018833283470104601882112187484423723921409644358445776241949435898283411775945910511032889109699262652739784970237263903581313962041609146523278539572243898101319838972799411240196627033680137078134073354386567398181866466001720435012272518405343127192434514939899137225327725860738592836079620725612597379239295937983062369750773755966806151672017673115680060204473931744752474228975024509475939653359853340033598355789541287767767595187073236150254854153150101397780916749103408353596827512091254763823290834857572275556324389088257117445440522013017773788640214496907622900838170298446607285944559325981995001280457654828262458433513078926483958752274976507490080241997514784114753932652535442142343629396164369443569477127378666612531619549506816784948124097429301626466899822271126705426222916576279001770328399931783519387891691656997056318133934922328804185754806804411803955582392984887472423612295005952763928132776411111652527196189292429063288883638194576180050030035552884524723705950304186131995356325423685247858109320350889277410636325158721453169002438933453692702991728278746375038453038570567439862981176510609805713029954637651793987234433346903400144933793906418125049806767324931729892752216796094391042635668515638542531125993847813358981659432573944196777278479265567035093085350827833179072025507240236177948214224970317489217204761883355073379847155221745477689940136708734720618757051185642654035022990033016962258247207853157911717426600033155455835345070007969793433990582477405880975347354646370094894320831606465645405667449842812832961583626238438129443774100181306302536706957782154578754164168052373225199530984071583642510922946337797190144826537742062677699227847339920568340019761397259588924076990440802973874340896772655657576265679038706304334752654784442486732569367285986204039476529662331651171161275557855715888200754311222759980487761505293393679045547408584651524939196110503416466941553541510063295181141454440947957512761368495012447108554053130148708968966148158002519991934085674137197125724500024161414788840211822529463881053664831700047177836545209180244255995970160160354135747744022194493944139954786148978285224706883305963585843841589885557792728561407534295876736250173085957613741016282244105201933991564215341248997640231057830570823029941236804822508062195078296901751055857504528713328091681867170921507182294997445526464658413166609458490723710079650616615689521827390917977078183430680218911253943171035671799050605577722281486330897676559715084498448870504378829298127426726529947828876979741003944919072801457776021456750723916618101072882198131724725979222774029817871753338726568912061361828375255786299189302196741798133067823079435911399189909696322599599213695027093972563152106907572537658231227037726162915438446256793543522480033751675649607988250060404073665123485980702118864431014184093301499544556306419591220076182611695486795371142665562237078270533834267848449925898250214997358184466052082464818145250860361199591179146053720556131140991612645107025140007759004580146796566377269823141533798956916111879727359922269380397101730265804718184621478198989114739682082761847458807845095739488808047016311094101848091604115868996145678456483878854251086866725444713100637721725282581274529589205676184377169736782023925036312580282433206065648362174960861814519753994511370205630667146250019416704211733368970008690510043690562610291866440967102446129788412641626652226740010616184047985734885405805469590850316344320718916083361166094145352239263171833380423674921990291070812181428379346092965812423816527206498419392904009596362484359716324813315855417964069981165096956376540775801450391561472848083850802721061489639722948059387745267073232841734369622796250161861072774033387684181937291446204005697630500230911628042206362410539901863012239211007857771183217400924939512062065349302164153631568100731265612857772029849482986266816801541724413596660800261797250829780919493351034619843367192583019823698308096692680508315238816532087033658702420155035870136942114717931696157176626182804355024720887260218766538214019514623031152788321656848618796906439797503212283141231431992330305571651022722809833109815134487989415461100663801930308276068348138880634279791454019014547790247093950354159382831155624804843815370258892210109215857370835662443241409762899078743670035478545048818406950289309637290069328311939196449640065844056922092295358087994526117157796118101428813123355509916893535798375685597112514225101326572948976006337261595913842300249328189711818242246698404669866830337353904928886568088494397428711561384175407661987492697568626862020998504513301520245410283703304788836608223637414945578226986550565110247432826346830146310224001913737766785878791330522430501304587817893458267961667117528106528667243796307581604817465049485551561801293952516182088693856712418697105027323270285259806352015317681760612906019725199715366188508152589632219354554499190799991319019774748454783039487552885607144628239937104823833594724032020743473709919579713470190157712755464792518460166689970627554515064504663024417033537564812158325822547288897339858732238374269417920279612050873317222332830161595538703480152222476719846585403096384200793502669025227860738374363872633197187992110373082992073304078129060230140249501066142615610558543315087009187487998112496255819879540472435311065191039866911035391567509631264457918507202351131382749670795630975085219117496659839956498100220158986467299372244379955800300531600033153140366811731776076807319484572314697541349620082503092430344523855500687461188961814752125265743969027760325831126290719498707518808022925117789057195962688331361582157449626724918309806275359558824277225356135546983904421182649412903036373632602858876022717904692726430739735465257914848084355097921567833774826685192901929840626652641663678758728168553839334132764612219236936169172004560985422229462884006392120789700081103026314572035160717035627878033907326004255560225070952907625128267365096698481930573313619442664584034666764433431441977386629039072925422314329295870662053063538697976172988766846095025350135437520029347027871942081436282207819902371714104688861983485028095210652743818297196265264929357769317441966608951655404591095058436353883737317435681911170956366126006146161329955261651028568608036103831103919661034573206675365250059441844797561600043092010000940447600942033613776313224693775447413824345795440984654859641954557415370414290796242216767308796673561775905405022401952579430806175642537482544294448543617438998406531181032799455297046619840897491409134541765408428468953659339982630253448830143711441519169937338342905803332885754682594358299958583933161753328485128086426429740387509614576495968442685738603940873470685831941930290802969921360956449614675648990619077065834116182985254131838371763239326709515145031793622362204564295807702790586457231941361722952522587164614563611056248396218025162777816639596570156901895372403887338394672587606244370215959077222644307133341756693783885759813986777350171978647662189122039819936851444923209722701179803995030905678199046891641708311616623217300096580157597647727800292147065099575250039998330959221134517760552044172892657204786125872046883875607232538347490183484759357334208110391746787780818520931624154660543444724063710978567563254826371929372306669671696790159047211572206381283933236642385126594901384293712903040419080168365485853241792291371202546243424793289454687625775568312595050489542998212783176925792678132137584694280232520224616944178092527814856823912447753337929362735585274575383119695485682272379512258885109166840627953564500938256368581826854006571918100823876705263108914221409266891471389937662225554638714080499275136332379057191574635963084799789240900821620103189015185949922626814214326903414517827013785565957921692888992087365651554102383107769752296430404356121272830152313444103838367303743497637844086487240684329727696260941408214315147011124997655176604553429458259813292132246673285009515958592986804224591310019271931424212612941664151303645061142402448222676584592440043299813475350737305445491995880500333755055206682956746383276201872221772321446115724390714503420014559431254500106203065372969545637462520855036438810985208422756167609776075588200474080392753433513008232775759833866118763414901236808548413360845878995674234032253909479470180060791012097726615597121008667390243020643520762536012137871605359195293980108811856642276133532534648254067275759677925077065558300445701212727314561406762569394235830976338050198751887868611171726749708760909151187896869983113456310375207151243065877342480868744358920019935234619849911164125080868602993101186195480659151129856623114125632714192900776561162143316389923345371862048111010555111002657122166516943924945628282840195027400843330700849425528226464004054422071289322359888096348964539542602973263341166962016605628544490216914737424190507336254715835831520491159183084111050923605050196249738374571659582072668506314735140462742816567157119350418377620473640276143522876498493299898824881434643514926557859433868047948021589326924330958935715381316030006351147086253590753105416057112629278434812303885596884594760738071897883733009438624414093348309653529422666302389693709304715449670477002277486470525653588192351832617921661540819929026436345805566548385663126989690857276702008385694382870696907395027255773871998852135068559334555367673325310450638661496713792013486412898472914561302050394848675999527334148093203946705663149211588044173476438723016425430026690140959537727601266876125036758588467321144686731138963422415696924322865659477099296592272692695156343961259814897481720952502735762284580577061320202667592484738893588834420337398583152367153990373249932597943138087198472695302464838454287636323664316804282179447291841471369731965847124458136558718132433405105745847600067749854013051283388565718844249721191429951765407753741195159515551472430344054989791860737370608807298620574852989619020789221601931486007600212589836075661670371408530651369593484212608983382060380380840851500265682345856984687596598974604892068220972124556086235044348791013862613923070652491276700514951052385128691926032683916526641339903834089171599527548359526881795833660197838800024756800473829829193626519678657865300806484392057794280233714654518702089204365527166311738855379224270079648280156355876866137409577513033182085244978455772484226680532267609787745651526258715607117505382242618202160809675538842903413508750414898546065474764639950422204466498926419127559864670723655507881174272337036604659033698539433514936668414633759019522236931867675452673085225661010158096284332970604940048530448632710571720958382477881731367918463859254979604632833441448582237336124689041023159793357216225479923990067497257379825408088683552267850581357236257577107542208533799566384368240835361957368499718877442620310933837363078259143404834744357313769303251751442295403899359107638624918637647043675309284921400881382483303226517794533875638756908710763022120599806867090649410678821058256278382095113989636731252755629359354884774491577741033484429387997687436225715339355384147586083234760640391805295355002747497705648221028899430530642401052613226453906535372586933567629247892880536154129653959309401178103818939852925645994532429702736862696535080459276339147961500125854328803539163527511132442469144994224365458015236513460084893558152633768114963922764894782857204603224973885524831299234543990333701734218986263040109813228023990994569348829202015223374032066388645411083506526125060891945728217198203067505150948175498447008875412654587966715628143792538532580747424222144878830136851629000757430933699818076867410140055243342819081494377058955606360375940010740718082621589824182183940629415156265910097606242058718778725093458402965736826199729887205241915151743677895300921088316047863146718896111829784799169854428116327046819999540813325724742335969905289284929269247937664467926718572173261156464930522416591937463939527142163004538803314648607987311027607460861818057383269373542304880358562382884104702200518133487955780140426292915321804950462317745449545747711205959508028137113228634620347681997279052533534191592261387325450152883439673950819187544056162744764826550180894203147619027277778703600367482638831037928791542045698622722592228714075596392414207528219116415709285813941822062400086166778316713587149265885936355614080902509569522417670437197721382320254216507665030881679701952838923438418797782599092112497759648156882518299309379099503722129396229753358910572455974472803021640347851077474554917298230932563421896648953531527879850770649598565142659825001488248897675616831761123252219694822303382893188600116137468417035051317292829294517959606767276634914175795699637406945315596996583793602730904553368619759452741398067644761664169882567884200705658766796919094355812446730366079080441928486773520564190780429835554428156962160412450344556263190155069637310748199415591262331873486325448719131404746500143627457999252279930149777395658033122333432771592843415961899791754161220417159139940503848291975561562184734328521754994232681707809134629105488015119465297374090173222908174582060204347694459428104830480882177999636297204704328164734011218500263654281747793036440201837779179952499232388457611927040490012737303982123533384378295120545536733173953755792816987287030694352958721124222163304061625115686444387799076109750955513108388805760775834600507698566736056153214537885328596601166526483690631748655006820943544195758568016561800352274940909290472850652285512783877935782207175174449187640724982264832117220815963697287839756958838522387999796929447453715769609666329144355655406150255551966324686294391281637252222063567028318939991172365468366423083188665431379806137964963992416371969964153042997382009469017576054992922731759594363605375420536275266292647455665926268872996322920067456937289775158049626281726919762983701526143884775512426856007334590651144825233953590451771607577421312332661824853776161528696278767617449891581762784105794136998647354818439288573309611422790389579909985314346238068933581001798413072494906805916610609896397168131702579616239645552292008079650260652051206871434178506176724262181479959569907768532004624971725768230726179440376665158147135516543273083386496857631239654707249304838144458128648546757836702579933074724081487792271384921402733416339084478122036172571885352051809076479464917785207954825553672970454723719903799190283404138921004378810363044999914563769184397381545412891428209604089247634431903385458352449575204815706913672007171145545275134484435767271210623302737339578795728050691646506965781894649324102316812023961420196956576221605622630570919652234062387218952792045139975919071050976434743954736291149686262229337452961156363555360344556227778812290938828161018897575509845638421343373324112533205019821818149450135246156937603009810624777304776865258069845762451931401351075657707228015312348312768966288202124077137338770435106367828664565144106842784082933001609896689273962700449838623592697774375175389766577578303852360972937607107820757446538111317425432588653024533314167900056524085582216891425905592714271781315107303244060857732712209055224616168710360777683211198616926412217421863352456771103354399199812477693600472027490542364315269944423016405527983904160342460095906825200295244258738284728610275596396310042118539406601126319014304721076642359346056780993641431199146211192960683653103994873897660256666301228278051661375743066602832858162505229149298890074265117457780735399706534508284836568498398750002328156108781162008914008761368266658566220489178733932345219116800577977155244565030521603717489240547333586320714686701500597354441889738007313014770262180678264567344220265399286691721545488983508283870513526275981898432739636670369307219335820641826393416223463604435139136520233788452888531016723813978259051979721431101882177486858595940129656554453329716020580443498434049780698754415811908535682769779036526617655658972191163839282320340679554983236493428130230211412750934972025002537610717608898596346457474708920700956392055848976460288983489329025605212106109819393990186302636543766573623366167120299620444618883367363873962755017872482376199409524017847459699741656577033181554297718828603347999212477130176461145301064446913000491456225705096444393396510539120739321068215452004787070936436288303535028091929468499535602661344831321082387549910313269006977192966505119976356423056885209715721835899940752578813355548377224814195356878527839466595932439506079450576182439709956248675718896717640481239611098362716840812120211044661644714119572751589357972799757836033244026178351512759359798136646042620460111757756405547201975920302274483358227317200682120003783961424231596661703534937389432350481046123765058806417452586843857330468767483598288563637536829338391972571861968056905532181890489983328625450586507911751815233282730888034896761158292147744522649425556107077033552269592247402021314043250518312333588627467672458494519461487963241983983627523453634379787634857460565108104025699579767543451049142269118915721224656603889275852181144896389131204552850053044718238751499376708972796424960484262009253309219647807783509308028380141985657984079706886030351613610021772335887168578578553625769588800719654368797661290477643814020681123178085499809205077556015811204469416355255634332417574317211961850162057692773128907048569151450897755468814736046515185532979459053044713843424430753799495868432959146594084302782565911004057163518519202695910812985115188334039769770652898338961215655281559024337777031556391785765837489862595823989691207750686044168218480941873633894817058977530106936214579834100843348884984883306987923357905242737025583056629789366923827271628825485683247375598363612385001289959183661308434920988917219458376138620729455541110367917057071149990376408409825425043836532581454574901077164303727854165819232172843714434032387634494334665812577483340384145815672404088115624614222874565609530642907508766951862943045176857198168950373001944024936030959872818603997548625936891508999333022339430679790036531030051017946584671992073961086147826051310485536243298074604644590036114400558870884566780278111754693718270084979979847095846764944320681868534204415352134098796968296099661651115338791684207640841659403285022173859691366356804895981084941603485932014679685425844034812259152462639579592057854402392401679831512429506480061142751276525135285556322898133731387058887603670675577177796029020069824917602478610733849399533171876689189511467556938188438977564075776361260203549783403605231304989628706920812428796988696777952771912848498480901997856055256206022455428366533283195743298666074605889278717418724057058958157326606485067796539870300241700954158172854044312263723388942719047405795367440831192602822371391828401210407269890354271098811361414121474440423776654801259150278252309171631771709643973222921896982462161293072795651261837509164594034422375660510203171438240754545143005758967031393546515132895460895245759292799167451529097731654594394212901599771817822897392502342937074242259395585179949887828870371088947915944018799866547101650822754346485138965269452590664044833330629646953606759304199300899664701339824843930266651207956619611908002569255649798480049698798981216111184785560162061186749755689787505949103325645427668493021612187512100616831509255828678443983500658149892017275427011589854920001076794301058716207512832598055403787561374064401958817897028096137920812906973995466030566905855656759377170850893514785040501846107602216405956312617018082944731444844313135681748401738998977469405305027523132949332202177044347151458064308666512514892426708586806461310625852620888484805697220001495483369177077331154904595292067981115737412494209816288083742912400674923175621643022159932633813503771179241758607422509070605174199648097059687578259092801675174560668573185653556830774607441657490605981143894134349729763796800160412549122039160047149557381656697285944640377311263398988579668455450796496583160505679835258260503928490189790028335129957737121990551756866521121717312894113408124297357790357217748656726966950753753178557574898014179701998433574191089365531680585595172558692093028690734703443831869424615539494087415969409251975836369811068590500160257415417070975951422304491001354708994927404962594160930946937988813124338184358061594775438438282574846494634501947103313013333682293143926751063946919207819526067562414135275789263275701683103231609835176170979723234173376830595591186499039330197959199282000023637904174385414691872775013292530106927455255748279681782194811158552376855010646621382544487782435447772117059863841388277329340640308721375312966171282897034566455248652220990104216787539715668382919258343113309897934497096454665918625392502894876076501363401854909827846219158366920080037604119883850023605672769487672555400656036923823776533231578689383973477607715907858876705737457943567817928475365264291221590653414303463515340897837865021919489133265401526929423896675730829885710777146092035912626829656167605707340053078375005581726003787701891748398062867494794275199795527348659360380203288318083622755790316697838144868687682891843307116582163948282808814661889459947047085955381872785964073451892625870620115236725864350024042038901300133955312045089524745796298386502317803939029101140691567015875059306955794787036111749863389482744636006682373367657779254875425094351041120458376712669910082626934543300991022125930040623621398301464031419812440317727203177321415330635893306181911434294704533938597555961361511229767521128480184331931813576278001030231995793438379726107006102756742536603576764456929498239803369982608541492751880284638527732028160428537100671184216403179517567451418533274128317351586533527787987380761146096887081708101116084382073098237684472118644956946336086476768358588624957920930737107168222461823767341431087474363921500993325550826141532084668771435730454742079215413956751738266383335759288728090672784916423553105982167126132500892227158625213017426325077241568304972164813090595045143240862318464892610834094323529424084879185502476186109394438117710803428404855574916671596548197336094739972181585342734551915654563625205594281094216598371164297975511903665802787336550716064165049139252080674665041506401688676469276587686296223017896981406815236259922860291610771994288004026586599270171073195714924799628523901814431923375349533139066794094405571431625578302762767367085561305629710640664141344373923317594359220489886831349468432984592937211050279507349591591950115590280908276979267863146854994284532244939231364349607619442136997711386916623113479921891821040356715386708819482163923811475527952105310957087742198767204932291396916841054167671151314137401209527422828475357212601170423267817449787275266770157969450323796351293478009633710164661832834264670005550228234178163553931933374720908979551371958464570512790834022548450538930545578825434724880855293750419550190001157148831240751358808991425065456128212240050252136667025247269224394735977527248848250615421479575659280785540410575622389677423785281463990766344434050641189091467524192694357691112501513052043196047768272882443706459990916850524651235168183485875595612404287461481054674244032110192364833782637663866821148742916250146612767361868788383171520687946639852015617286148435772815140578311633260240106680018055412976364961589531732869794687735669694587508511879818447389534842271158541085415529017478892593729489565437285120893316573807020056858787163958276472233706125830579614088824033052161506911144651515120775984601299522973946127325160049852245836236166286447808577946466739040287294214500519590783706301870067149600768776272604283986230169573057384931114891533714399324765697262022409281227746598853261156832013290508681940015530596111389202707982209919164612911501356112280693811438239174986939596917424785173581834954140041015644940270674774450384520599373850944675271850880376867428071863110432668641762001328639564598913187839815790609948127187672216591073544401046122154732038188968204779288619336465907767547060262528383077866966005131435498779570375508999650474409729820589597537347607444466800941038058068046758249838159102201095369777024342751631991718563525421302336407249332836988193645661410805076055378202654033881589648901336942887564261697939615734532690133297440523107864501471118985237204991963652623483864390608274141610625833099044011989523470810524846292021077804778051192395525731108890187370070034226905425943865700531428153950137939130538986067260136056588449339853218068016116975288054865830784958924966595562893575063015123839175846431783910528896954366386572623186748137592210596180197460406762421492996409339779628731560330567925441117824370946806344884840301953424489782075253924805612763134672583876961091348972694561851830757205588874187455064986619206922569778244224553759298593562186315599222936899205023316465323146958902195648949147820809214822220036098758854984544127902655289092746838397118714484105425418770555717010281165253541576482810671741593893060156500161169110394102963211083776134319201832802129810737407486567700506913559027662017615796039839118978865738839997315511773465273330618667105487846681377574724377405129706933824665680964360005731242811033408921132430215810790438316402015086395502168087328751189032353890044666705774549120887749653068174985796214544403596018516053036338570611031330257315919859249454659896072059744106797589158339156998783156518573696181657563017255701723459311027554226096442268093055431124343205503132213025360211201748970634674966744280916072669846078162356270064859337644183168375858212929281642206343629894279968888550953693052385119953202154607360991795776284652951473389227024176793329403687336975936205218639235172447521920100405685139993884641584337706746421614157423668337124644047508483108761494870872223557283421045843522496213341214506826816734587692335352356411214091053080728845231499186903590651968743810347237790526241723856558209982598140287379298777840038171373870585566233703702956680047198755425135932629545078579524362434283896337631765676330852648058048077349740929405730919750694824689277921853954801700947921279680932570603120114076791659807922397739633711773689261068814039309118660203726978441646968068465606503694194723178949001169441824974375742999322888609216287798141417029513951559383371442168401271339286441973048747649992168591743501441673281315864762272660645053653832299898351890673236493907378099434429874864102223363769948555863526941814525044292047534036119428504655527934204583660585135702814271155601035663494196401544794505293521842876782914068809546759516951216438060152768529683668514066051838647245176525499302796727224691262313709623473266154834644173983727231572623118035925738532732238444684870413442847330134680881846588807597936351548788016729892286687092181161883492114738218105214849280513481647815190660579721344908468741465697601409549994393508373598120093389395961390236856939217684661714511416265281400446672435175042315861706772963127859371011601617786537595818805095805721483429048817502197330195526318006134812365583798701669561922683382154266709439692937860990356846878396582237554674893978810230692232300844180684175234455110532265786025304537255497076852139289291483311352969226765846091147351615562367317835298368968239501624796664843139402792209153581072972476959424963241679696667301650026531639287543935112007420199192066575447871184187058934887952888158942738618146821900887644097169241549361628718123670655064030677794634642038537826947680694729753105899150832455146583359441812604657728045140184201704419102051223611947288616984150442137895744624156154168030948510633231484728503760869762826283162626269891975817627609728878477961523996345312101793474791333654951705571155456975745492279273151270677856831066357765489354828845671832759561022953308012867858690078309868051820140373298466017229027084996339638900818732787789425093939267055683161984122465606599888105611803018319845613262523735933287334138152912001461877391541593553039202835055982046918835446512474495923762048997786608504316907541205434122144953583425990390623745623450606410875317800142329302656692739037825522889329605145244862953141876297248574145572644208795380229901784890200738928430002925985089518108064783314475785487710956962408340078694398935175320902475705117438316647027231996287938086542420047875646693586442019459467564164927804598445456993723140279282329907131355705700490055324413519965253018380745116131008635587192849976137573534193709189798285453902260578701791649705288178010123999798661793354490987658365598424449047615620356065407509679080179702936784729608420337133326480825980626668159572034594328109745132275917256190521435612718429227071897574727093553421160411296636973211267736199102733212244961632737433327658674449059093570875075884474467185095932322152317389706714258052488829205681652596356043022082195875090675110338073347365602145012672607445494176698866910097576967407482302698434008306965476579489284688824983419267537373810582513942758963016556712361443300747819306794456043012285342350508902579258859618799983446634667816217866131144947686427871608132969207012910754998456493240013738033544382501590265417722558443084878170464260504814552724096687382163841792924357082901667094643730749982987633266081928527931461498633814601911041780479376241534223844854552655988173333200654030210991596585600568215720309146691047542397411316046290550305730811741060499203978459202219909763678853237148993887583011293018234444258008066159094989846873541321808678970337803034251682884680966010869281995773962344492513005407219467925195841422111896004437266755486840958622275335209224565789457737612193369294975726904941457291608976079027454982236684789937124678255684019906015007281830591203223233174433305905097329327007582337679288299509590380816276618445527345447287822857824692920377693607374170101370562182035671178616848253796102502643192628784614834561656450903518029544186072463622631558658737398809051097360976183586760487501216388712989424109811154470761307255799009881505405153451970121375606210298136988219918735484464404998465995929257054869625599569433738951183044064012661840962688463070320991331575219983401551748702692714015236813398971736722177015874153423240603577138110549957141087660972816014686284750415619462162758391974707115451474857184635253702365381816552422563662186504530965120709299375617859523576879818950652195272277527587663055213124554652632001808645506058428638385124049669251663758480279295729162058273653266298835852408322195423721295691027291697532428913201828672275860692924690194893650004486286873959415999189985415548176860855310295968467078611061991000075553572346674197481300169677910659160775198991091103054894421358664525773583148429780033227853444699979831190311953349164898229901269939088199097574672163672021325013173640002590111403468424103462754689084442177883689500903867616113052205195926069447669736483627644610845480632642179432263908849244699577539534690998556307472600687987555074857707000734084505203713924912377631641668563251246943377370250859039492204719066412442413555877690020311644498840245514956219112542863281280340299928036470749363216698126828782109002561863405358239754353214864005881794842462885358203171593704659461117562002027755986498799802937392407014045425896441767057446103011092811018999539579145642890386943728368199781880274730395242663644618134077068966763821558798936288461682516089385756303025156561754109240484643376279832580653278849561454170894723360185497830046467590645520471541890305024988508442219395720335992028845426533892473778279250433407079706217944802643465950266854991457766850532894489978748429751515927978387869314669938583055740871641076120345610592344615312650541049934521019405715560575487143835151284168536154752278476472339003753968302692757735181757762015815855196874361743769573764482958340101173638698273314758220520466509854891647592628912134582934469315238086236880615241658716365271349165196268315991587086039686799756268796557881101267499304545224405026707910365792900796890159627116270747711321151361044836470029100618058642829233515244884877965016265030536064260806135789899679500992235057617399100242064355232782253119074233127682249600570214475907920837059003328799561282155056626827583399820681814149405294694862984378772380138361932446224844805330634609684155420079286605804410644072463858624491026412645045226375808208143752737060866961047270944680202310989609920286642606564385831163644735613274853726842291725291837719459849800232088178149732835206653308824832565521294087963089125027611436240163537810750702375739761137909728672935246405004950683986140880732867360623883099722825986928262462032126201894910698240937204479245094725213309189081525918722436090570396941596849677352044750026547598217441653762768181174597439361162368650789377731387081577946059842438970863743539504166920490651566390879476071300464507904518556026117428144216159346138323979917476355294303562286531929885343795006060174091277073808952483332801816631707016676389264030061174039916115686231568708307005831202197196054823455318603505777720784931504178351211742854871846829901488098812838700315542631978949789116310005066141005998298256075652932752959472655070017741756738194713378681565957705533849254631901193759004241431076423757877714150214389956210939919090342958772221109177995295585173150176690949066375312761654129545810408475993067848240483401940857076850332085743772174003542263519621637928911165899083543399360454349799700178553036373796588032988054767399801411044994904403831308664539586939769477651715141396766811106522719266693607419338576873623292127651994998184666289587082742301251604753892510568077435668917513818200665631490349388084782138510194351722252037903552654467500484759046598005111659770590486008676385565435233397933203365798270353032661586205233904394678182093961765988370328561720162956159396083208726688248085590558006604521797738778425087881998649060891231774015186771290549077703560542425639802479447410165846032268310598572383022886334615853907823871918093128592592823254697123103095264034248715362508151069978772010798884432326669959746971619794995733964201034243234042731795426626537294110863965666674963487423459470104989630009049672836812341121513227436706454382608056583937305052931124282503975794264177619166548728019381167071088276193920128283942857923309841976682133241763302129682549019960084937709833187358952767224209901336660579651861321983288067185467476875723041152069480970165619662538941027204375411751755406129023067111760813333124015354302071070109472783573153995877417042924298059758003694587642976708782924742652009934114780814245745601525381582569320701415715393369880847873027837044456500732035592450844241132349597579081459814951889241532993921123618206409828369672136663307298756648726076878957601997972264122484189300211891741329690237013544268460775173046583894151276252372902365431996771985085874270181044968951020542588048536066059022914523140149685079453351074939392207161853824841221044828006151224543163799989467633459513069992426269742011556465861724525349417118248212169953774374233399660456284517633144070567633992025957495331007476052530287517431285341194116918528129166749978733853339070184636380134503022683337563171394590186233459682259220167204543386442854782618077921481073077392864617342651247483756216636075888205279458523139902008384293747830268169451251314535451802579867337122397940734698439504079294749625376592774360089830198445658667449095830378499321025434425990097392708896291394609289289627396765185312427734583954183661146442598944394603864957052292615457936459244755925216642494334804779458800119817426019346486150031111049413158111311967814913162118380334349791459521722150939922997100214676572732226464149441998245042437093027043165651396328354255774139216919755035144883870055820770610429052675615726887058727099763143604363255455858401467384645093804083817899700358403573427595401708531265407642343677873934972168553952550446871628145260272992969434393304543966870103190279902691629801934953748043893260474799037076223278392514380691935737468664723440243745111201244188538897418144648802660245834283430202849967565093266050744271999579344734110698373725112563296307820076216064745250696983433408126209128641892667374866766074883290814062469573986439684423487768770921033410592404550367574733267889649569453174343837098427460674120931339563614416562711481311228096935034630380477316929824092933362051026776033777095994481140201899304698063762113174904983297345096572227953246825285496904404206408771082815771597115705681547951025578486483292240675958909890864085566690276710097331245197912150963972012111620438578882014453671841028102576454390687091256638257360014804924557901546841373177397851927921388269862933994515186216976216874530359944834325993172634129537196808535211537400074191155385092878807146143458231505725101089047226712548264439183840270292104881565879805175715920506609613744367086903035773177024323378134654860173690187301141464380324973915946764906681667335399601702185554612525266426514912451398031829860547457476596619569235706812094836259011397761166296117431827895461377787935264575224624371801504301180033340581092595508985429869990112996239002316365930617931280214367251595079066574170595324804824811755421801820345713703998913195219055405816795791822076873395945688380518403653167804403214781595861462080538324140218579131740603186850945103173889837104412416316367205805764802292996143425600962667603390694783621466709985199132930774912632046661938777440003787675237588399958745762999594788354993266867430659562523084710511666107486848036189610889490553249051018821333329767208777157126015444686669176170064025628645990498203399889307198849161638034250884855288938424022828280364372743092467492310268901600350614671858924123687338856537594217346349914164864116233898989595472257661618860435568159668886334646470129942490071286642465227880569027017512821768872662836183582878152044341869197907701894230826496919413346574591972511735462087005287246105547587109632784993232498668606965415870945957406132158210945256859504530006153190360359013514218107209029252186553817563374448546120165787902188908346641248711092783010101383528386904621015288732559978186460108684502783791570116173452198625297184319223589784032615446317670406828569198084470276460277413668137691125623927570148395748032618109274866827195908546636699252691173041747170815569129070995466259536200580037090574848905368489002290321791256464372101992328111011821438556621542087081453500242064500591142194320930098028812037382234390393776272286992281900999065855764165855069990345688751338912927224897404103001246564450507319123944796102876453703602464138970247060612980433728028896421725282128281737799240577889577638018783788025164666084998380163510524560864019807738382193782590912403227683567185130964109773292852142545292551730315626339173438374372604434617260994958963780803061457991691160930779081327422568864592463127695406786084009709704536073306414688817561579523549025625241788714164092490896825042239426313528448518548253620049734736063524800202717311907888942644854455537432922009545784826515724696556705062637706895681120656229584626044398894536876580672849861182724345247339296906030148663163666783977365607058309223445405855441267491782467779341317969323180265905876712683915353197344793223320418679247519842969313342140875626116253245319898248262436278908243677802678723308966032420558253565847639073818730983119044498007186221080289115188995608594212380902605760249124431806847547527918597100883405525467222848260691249145015307459620605517971536734233546824504544853494968201378642172784743187980310787415611428905211984288255085019194021242117473849911628000276251380169871469464301956915087818566502733612974258957709171078353736184373945771275456569764096783161105926466178149856514993527872112769077047531998198309073358758451948986884945617961924611519458707335173129528816398624767935904159505072985939210613916368183144625454849478338988320295550853466661793626625899504213837406013044555878978985149003777332497375938439136315092756371974066083114686447569411782414014616022178561140463647532677524175380253464209407191308960085002809986251289948155859396860878862305889186340462142664827356067517815599152347286642744069880862668844237621286405169897437201951497086236715022075176892576707329539105845281390318897836318157276521385320404472391736567286706319922687743454303026731127444415042064665348922431754373951629021353733001752361129461176820286881512420502854667525442623025581487502583098438302704841018255557011821497437285983957802772007665979056815329086218057651544552066719863048512714361120796019439496975513913431805686187191341090940216129567017874547130195924927256512736920527235592113997620210737937692623793199769463198601909196922412185008169628875956373195409903357458722988818483099691052957904160331218197074498981368108232451634511381259024319076885031213918766229893764692909773042696419399443959813533659797048194998039873289325588830032420542248341993983826834917452104190475554444599870114250077056018833468489021852321322498333528343177333358722945621069189111716373543724078568778365854915930721322162654421033291748022358586780077541210141934004904113655267029633678579029770223326443988330857114908530696363488546885252525780694149194431393895374733185012605173518952784644042112205681636226476057516405220922808222249611451148255826255525172181575772120025459476662667968761308121810190045646750544407560979977600853192007073015156711987321384181342097506720123067694210703703801906685051177595774236608833959012821618047500838945391430803183421516303274734963445451093649186270625593287206018941728035537612376658305408207470393090570149442408999407401477000834520753808892105883902139207082446265136495834847265476885237717549049174375114855304142353106434355498798399733959490221697291287532378001942021641365475948359637388018288045496514658116960904093931722217071492404892552664285188092194339852877943079477305649026564861632757513685755210225898528721293185059296135797754493820056794642185754743488314943496712758494409152518718017839283234185877907094560218082534682194516838424285759412553654596874781628946424611796150465087007362375539469941183030016828035713789678097252523365745049779208269211583684028112344663144049038400193035049986087192924164367834186163617251896123047328883896911650943682247334130011946216141191282613959697178182224832007325232070011156198104704477590535010824357935446089652663161589298946986276085118661322451390989527852197850774102218112556146637114744038136052432051749657908094495489260310420915363318148922583349262267340194083227348446346506874415284995076567099309605044803170216368644163265176314949943471210865360545974797448363294678952102711667569914309065876974502094152029117483955735371495427712510131348680309386056293697770047904742814481915003637139871821082694758175150644688863309416073432242563661062569879634489714126433191871157041285791370067298909457440803277470405369595224331267064297048663295116584290368028843694577905333572325490770305735315776437211983790472186544414189753037170667461459579241772861705418567597654792349361543443792149012616187041208388390721961562110468674734335102573085182743581638711784899328787918545064952570349965435530119359785794206422950943841407441918507916913770889523223925707232234522385349230414402026540325660702287137822073717882114486591411184000433840242041279389138868967783080393603223940024105008374313742874561365041134671932709678847868245486811535686681505721910432084130406356779802661751523459926359532203391846284603973766354523307443009249160540912808472232028636877521962942178918290150413822442286153031077219246631136891938005135715356981590537225891902162228596374354218371380578571764697484818338387995703300268835799008050505855388814422440137328828116723574659020213670854384804157397270378172773458151794551523155046758365870583401969748855735943787669866640776904848590960814074294909391784681669421784611940862407608600896946789417888138884649954166358783135571061303419392334834348256876016173784915244962025736812315041698763916200906151546507292136820081683848497196391283485563434993260969152024177056685850322617577430090604060091431330420047771067985201910940355289713291901040905731561138821779955292225172223317753693534090672183821273661493262544138693715243172383432260338853145214054633172685730603053789839000354791246524249434452101748898304292813854228302169034601633495025804911577500767238808988750690728355325997374886116102599784868254800945610180645094427736737622977970526116981076139230291849701812841520065517608303352795894419502358322404375964958705291998582199086954391217638729034952377182546932989832353239574333327334239300994734804934881897483422892615540885751454327486459522266769596918200589571292664397068251341631906602262974107405117151388603954518672447513474113832653107176219132586133498080098829427874189264727870547258388551445834554799152632417306619558264600180773394037704844787814593446335772540641311706142434949091190086941814938327732450388050075904219421788326375205785694322263886816001624073016491252300371165631509866939127786697363401158058728285755046850738690436696514643208459458596279107163434843245528019696537625007871095772070116662689118392118266508219629503245576149901673404273638021738518360072227965820943691829151137946852473256931922523034043598733644830126338961491466007631179171320523543991470982926018798019930336436624913885351583686684466033818844447105200321046118036322905997786887165985180129919879493722268819778220216943431990667051119676861386718909706533296610611145812722043874650690225575234881202362444720740372873069615827905198896518013717308471948989428499174731046587840035027276066736832831517872207180603085147630359582045896574741935540720701705399993080009929234516773299979941797018140121615269045487118666930544693055886766655704940294517210315764842505524289112299095268523040374873869556458282372971000732656609421149302646307290721677291265576268130336816425530766697846599122816114774479701595580302078164085578200762927532049519941505150434452905467290517721624785951515853818829488108426909233270572429879184791901181593874509966372178262529099392891659353124127573020584139989594227181913443743243130392754250468609668647490611560117407927219859796655886323026788964170708241498919932823259209996777743382906465577249237102022699491398234159570862630407429797971264459290164484474605061997669157698749806796221464127500672779729971664906976632598783840784845334896156337281617536911098647406601694953781885046052881445172312600679704877749942732598154968062699513039950080737789421904289411877288216106166909894963054191014511289611181393144344532409444556967577447180045710616160238159132255696482828799236437729666978242553963370165761441735988227263920409428040852792335701725818780630121776341291630153701656038369021488061316729943954665906169205390595610920953858437508559109049031207771202312824556916472123171579645311089184576989476680007624880879740227424113515005824646983849858531054835412084098109470161311504322057333724000315140449252008398085335559233072567583323040834260173319204850685728227410538012891397192530877659417378655003051891090745453614061017473976372413334712839991873576746231557230911936050900584246755000863766985739732696470693087416750002078140735273405493741108022048305920984700440491688127206091684585432798095021070366460995903998197207011087545254357844506240481031573630123333153000924868035127400357117775599089561935411700691177188624767427860982267190085667204462269633642060209673309479578955296093077841103266059936783201890511123274001196047489193203770297799935621448546479300322297133625522661469759799541411182918958103069774054352282939166998239990182235269567066677541210383219686399015087556472347540304066533194927237959359950099071776310927592594520549248477220235851147443096351008458361154583497987356817551396703614986985161231792738156246232316666177621361917734570649156782687319752212257646012755554407439266880205482912093093578487815454748669629024578668001206654773780502890307330895948041122320320343898875445821126186565863324935575668152936060410940523798057324144032823074919975327799374402522692466396043969178404455995617460946387065232229643973766124711793070273211183562590231741361060385134693779453676644923181950477390796869207587960956113516386559615044135972533020021750145364424296389840720136219881625938749662876893543083999571023459677210135404421537292072262567289535446674649720331721356579437756242179165719814810223938605967038348985537553792632694455397104031659907775791098959798145549039389017229510617603935038828842319341996837133032457043849869253531984129536841245452317627883431876161776096078424464205852785937358472900465843173579025417741657389915522781800439492927366805778533175047680132485348118255917273548838190542367205844763545536295009795279028083116966105401891692013019651090196623629033263893908754084793438127831271341140511740512204484307785692520804667824622785556970205155529823313041696936318598435416962206283777373757713225538635948428247195369273950902213910628990808885081983688187654273834313327359217692589892562242561409231689582227116306589985841477058076098905400472629285291838193840068511845757827313002148570786658385301716692088815334747766088893286751181809501420630451809853932068390013770596719128229578502521134290559601847008034224312523942123088695254033644835541207399040936352887828959406818311351473092787227186741802708919876817739447437665530097644514636066919971213626204438751841669662341627461992536517753537062096209428182318249411069007420951128250913805516249923292040851440741010735508675263541965233489087354567172470553518053792850288816808743585078002968752816292002990200242101411445884160915064570362844996618322336314979652361094558688077324460101475623806632175820999464693880989727177649175108884788377570377174435877650382190310010536467568403850907432053690746548544918170914724623647425209130910107553071436035320197735985144493053132812672181030483923039682397549097910470623734884760886672913303155933691286507391386895949328480986596716479053835917715298807985549271537212493120307679717329315997471359490440631173257918649456262772206009195289534462702509064276976573315007491095372717279130636971629903087057360937831753039362542531428788275574636443899716691086395615786804488575276537056060753773487631411966541870207661661147843114610496898416561272578412300229854211970939943211055954933906544607680059821142825731405150854637944419916425272292742845103535053841165222224962857675550626398946513172824512901685498730993139928317058058559459683691337822822922289127962842853036473116097074745048425839650734860755376591489083590068042412009387752804071494986904800854055922674490672077287367979694563460014692022326489838118518598023712684159737070808514102870747070733525726378478448438495827506463799264361946633607676135883514585769280752524087352543201483122423310314007313717139075139269154934482378778814323381771987015395490052084174484922384467426433163942291317415361377679793412182969270471441224421830825659977717373533676990877695639340543128978383699933318358847976778139370113166647567136842495925973460202568897126245948209650769623317737662750585372107235571309500020539914094198703608542064350848266006620071619716710029258312131117814125584453709419117568190162831668636789380985519400593429185365972700088907082033240090342269218494517031330090647828763291275347741462730893769885262381178953038731646912780594070159358288626348827937848678897179859012346715173580118008984854840024303835547471654195976431747943506698883051281824223315870232206958560851155552379747934795622656267166543282903782371112215568124879930110567089116163896562449926210635526719622026679665472640524946363953043358901658133537147931082348397164031593244920368498262689723100474254079035456501066939805909180442106671601633541986003461804699608207963776033933921994602196372847670725658537758331367204289524590191280883912224397995805720776256876801756232394121165821922156358356246837588670040127064878828134975270416857813864911424602287445663666131142462172939950990013019363865389862245631074314472629094185240930253007288659065921844412329357898134149823317580421012820250865151620423582345434372497717961046180096687959884063840388732837151398487691726666867759229068970948254243875982130840218289204117517692120860650745031205561620699767697050689206590174176886648594719479304609134673101468041995826425462709816543387508003035178672415976988587181053083911628399070674914818612874599717746253713199542385716550186666662430566154583158478345587822763387204453430666852606257766488891816847684572460849955945436458977907936096910486118482102297476910044776746160980364538438627398328576477251264243087323274133395790141385396148596845584771583956434891938815826395377278167484341402883908439545441348220609318711797022923598544557145751364453261799273955954985973177462085078159301475041522507492021387928852335263023879602715516523527195698763869712359822284506576773263835874898384634940729388473437777416721675575264490457744442989481774011673455640705853006859862731597771120631393597733012188443803957920187670225527716189928842585272239360832330075841755693336897840137409777912941820174966803884676577777237424507747587960656516346202229499332045440274501557481048860760210061780868486111517511821029499084819947893831121506508820157960308638786690127848853554511550150046044075423643835435780565309394784019540359392407072916901204992469263976097629475718498681707056634085679349986640798736352256657786737936751082774499829675556185473994879069216087234569096644560345118924034071754943124671257768215661751621158496354698062260297287645702282297475630891857205524593707471726744602870720308592043922393328082947948209307684053761813995514588654874502682383727144274854315872007737730164112805696758296070239280479766635292677871005205769729834254086684807305180706097752468908227610225412558530580843918888193344924652384312323980746082452343498857859276745230762423407308901635111852738776562004142342461071339863907094553267655807501491665098286715773454094284827407885211167535628967020732106401350012133791374774467969161912469766994477635616032196332201721134480240900212649135240078640195319974191892459921988949891907995804533115560691292783028713145235404838102910515981523232043145397410247666562082305521356925838938417616205921887625956384106244104146709136063593361951781665871916787983692110361485191789442127301016640948462284922373981843003856621059421339450921860440199777677431602300733838156608858289673796040836957925340032854250282579907354729841621572727505128173058704071423660081100570102450939579187633786625264218788610524748246040655075900646088134691545985899283892433330985103040138960371648928026853660753612750340673085740792324638362953935780219017580560095054167165522125343971369163397521184612117451961079088597096217981610190001774662521855904795473094556746367146803373500945168581353308575235752034115594855895549973458168960533112752594783027411544692862575510186844443015686154858431508824050965112867579507423383131307756470674421096921152627519103459156583620076780539904516244929355384286217513162053735155485521293716872174450454495096648708700288294689417651063617336601112970609258457693588228623738547585648589161943866268663983543790955339301898447744113576113648799584556114252132615608974198803130177816520826922873757224613960563305750529084867787542069479310524614492869907436420376689933566322808191234182160577129731519304753866435098184530509115943486106594830442228472602657253112616048515220408427639462365452604084325323947916913185127496313459158780370271224159786436083904778209602033951600214492332171209748825481872891716421503357914575582751175569123644653277414783682733416874412975425228980978708261252981899950725437727573711581553396806332514614640492358778592029458423420314010915752448019107805773589619373426542060798452612798500095460319479776374573249248998975412081309400302257241378191436754584435259489313810373440077767770643404160079038895309020229416576276904712739360707158709310040970959452204957779467629066036474971326604952375905905637556165239858770163841795177926035668855267698283633599740876376847055621462056079927357338157661374491731490506467040401745849258056714536510492432660216185433790901642702276116943401312968204996674351359724118390519574585212687581592335221916611976397847313202033017904415157386977668932343539498993072614444080464568997444277244002602352706278236332308905954896026929586562511806780061308868178494272744938474493863556539678535021483041718927080064120133866689888769221490864811971276227389727315430819119026552772968279567564193777952646533948586897940942889805036240147166618407870070873565628379430890469358210178565388353171120701151195620401685680537302583195548039472448692083915992868551543968324140811525021939047107286171673064901765053279304249805414431193010381308917229756987152571180208927918225524965888852963390021181663750328329321496451410774556454654360452677133228812922593581450624054998987378708250421519689887885807073680656862271087919021146359422317178119889260207412113914269636880855522174223218729087641817150830140199069015370812997210215748615314155409896411462268372840749796244753288327796533071567910486084830986081111105262509695630912105300031588770587099953309395014931209781530871380439476893209257802233981653596369167556722864878861447090084684492004703521882546619195243842436534008590029622717804814921972061001968443565747639689043701044269178773747809198816736499659590954856042142094131613252167413949006618027087392018164450459418700854876941516612504590370303543840820191888363270839415405260081460478096941709386661709446271029147618992828241866833584038601993979767117640144000399430138843698447620492345489698485468364997392641329246136356172819070632254303348899604801709331310688323667804264501320231348585844172445287992376936034846085299198376248336849786132663905186221831994941659305043441039695997776685068805073577507108411665133996078294725874139028520051281183888895903239788722961198243744712437293111472318593778294300676750812953226187090478964722578661999351691047089554055167540453257639898362337157246158792681361941356985336940956585170233990950386293103999111537677638141234617787833260049102673238335646569113453932293327550610921808304990856139966377035380707238515263803847665462435047419523880756944045219179126396797185032984638454028246806310125561558595769367735881524409825922676597341700002390896970929336652960161534543930053959118870024795741682389875670834571520511426394275007308054000087903838658604259104558679269165710585165519626403493504679006010305501598126803069937758681900004075483542427102334573313081368943613851808109214005100889942500951336457878282943752495400389182509841537843107046465435551881798492016545498010082507592745786899729618691701324680834793756827704773045606637230981299624750705368102645398967808517968550422872228591382889567210216245105501721039981097639738876395029259099810397085042346791837668404849119074437663920713681234815744993203016586979333326296230896118281607339432644040573798360754547802410777804976241358197450866307945754226343232359331483956479524716487738235477615737813127843149643822160474264814520200195247207922380496890842144170550087069393183030090594001911812264266596061575786562002353331962353165147423005771229024140669414440033337089936613936366889804137882113537313013013476646056558375815026905231711667520243197032771961514576262459375723012388741559243315317790628282362246389397148589510825404194680425113676022575973450735403198339441057516126097230654938798761483256945424078591156769039873254559568454958332710984923538737847429127191861725670440806145586991120715586834213052192861599619339961055961880321969406529449797542256217107323142385909076474139103744101325443866964888390756003536313330814294851438159154754615628590931550531863887954125656089165987131238226232024189051317889262989179990342343469571998140163374872299753866081750410527399824754609315221378212606858765896866925255395557977326999138166425042479692532067859496552766771360182203361149641844822831788378669497509430293300547159657602773879301776079953478357501087726662089317792655610765299030166612145624658593159824753480756996845792095055614993174808354625764164942490399296678556653372243031172858135682744735995549090639702419382241706070437163808968905689683441042732335328415552910862944399366576510988320838769163938038884668115696421824107341132873681531999872721335345241864054853437323885889773332875465626174238749653489999637993075234726974554401260346303642103841182457459845373882068159758000275100736172896546522244002050126412762706928704228244927573581041568624450313592791360237814763497482647586121846596669408955451177541187031426798304262512511307702298691897864542013504599253778966363272659996277617029698448591145780764078541138377022659329907134726412643764368380831514716040938721352933761235507164175492498592631838083421834194134050612183678656346939463203470676446239386182719407412224261525764496672376148249390340777362271245871027433888651195786207235161218879027441251403708519406914579853587571254008092290641431002105451515243105514163486229424753596518084869155888265287088682565288476017295364581313730971686517582865005940088118812168248316317475036806045085741689030935030448612008148150266178468798811723884902351703255469030514892616914943620687224011860685738748465118203190904365299739552364544898835140018072425811332151350821044934264102733852761056874994738773064376626015610108299065407807259341307447627524114031547489039997090268839766992469499979316722024843971627746229286953747402371140573666191010232573654438731520567578325699589965652383003206973480869466337195263350787940826320546504997695557616866457967295109488718085515164050639975863069344211424412740738050909327099658877349376789768993258324744673662981757439321779886729182993174535651424764287325151569908855747839850920136500028406349271940692077309851829491327824335257839198482822428510514385821200305776926506946102960055051816026227311484315463319488278333838106331865596384323409856601115285868721234322156459481574211828701062718857837968869189799989249648275404341716283903808152605023991646317807538487688347182875810710470063866595372845296779635349601697488481130028622399603442261567233342941290443230516646980509514012482289159059852064685746799785640748343703007222048231393195895565618667964335380355362200069214731877465242973969284396329107983768933890805556813248449756417620633514948885840595431589916073767322740056480670328216415450087002316369043602840306360798736207773140667850758985571376021706241152568545653614553387445492687451309049496058138875208968537071136199921975210540723096484224295554364886817139956430960061235119992042104790052297018588507166420225990226609894897143775167210002949736630844597525874050952830434677761405042966918022404437350864177966370763178451144917269128041397953188819971638083322890427727180366713069809432179840762501720351623570081085678194158025169358805750955020411809197323338760773232569634632989151439977558444526256744035290693735598651036781794779638666429249217700937774358418812244824462328244473282276015327613711294837593848018197633377723090626083767795398756718997850497707561653250414492619102198881903033333320639411597498822926473877677286553358956724764813386406717076454617079996618681151220705150981728300785945525845914212871918550489620218344231496741508382555118941073318357687211225329786397498014484943825138583047127014943162868349114062510384443955108050253054268716331031462360499070456783044557547455409892445827468654735481460977430480563116427871417049647796096460468157080310680304890446738960332149258799710014603306434493482875867349681614184490895133143011785592984654898405450588889124864909156781458991968775208629530409421726369052427854882775579377453970077786741942417467296864735510228085456656051672448345845750014387980955911746015105800839456832085305366359033098753465918546157094944482394926392036092927870211339171262881822899926497613417071624429177325314089223350496818653375376489443777705274609092605347650767661617609533649776218670899151249000746830921534599582104085998155710701538390376055716087187429034660097116613866479266552674235760215613218848547187456657408529856433622608327959403315378245469373140045075475219918900458572328258127849900704539499503317691289151676665326134362338481550304771832560186041226454366557556189451775572243875931099500058359209492169954376043988595573600801078896237248701874829171865104630008841842073007643303908761345216119665595710748790643876501145496159383340915534429108154836910866293114848727286818115313049740351016509617655179542233696509580776168216710546303092745698126831377878080865989016882108055634092140956229410471356648117542345387805044604417228483113050949732606299594028038740890224751265443045595559745035864008448986645902838336124966959753486293689343109280928065109848828271854109832509452742148461869612939161415641048302066115679612219300888614854767841641888632921325682052510053185196562565718757853861383216761401783877233523653818480335248636771473305103137893595060997555934883602144921202093820105568520320781773247405938480364804045710594888647116650901465884545104858241670955388492075873848919353323951120465852042601602047696823145212972954204021780883038056349087773075333834678641271176569531798068264331236337230152916885964446914263098484143201052384902003674621633721315239595376158961354879208286419100083455312929029995084344777830234485665400867396215692874255106805066439707643610808825306448623072527344575452999755460626374794282592529590483661809549641890377187730900748214689914456097430150257464727310441955961356303499948348296390577033786762576770445452805318974687459626830463837740897541684873989281704074621939940388163817671905897926275572729917505533998870481007944652117954379282534654423014677529816758702841458269073960700415070130069520652482161405327362296702688088062855564255765930696261189864550776158111985704859664019732418688091643043993575831454225218455355576006951413313588073276429691657505430426545728161012111129218117157291095771988847906952644360666481170705296679798954738698739514315287391234266229369803016271513109090669334836578140168303661593668729024124274504094062901097393258840060266571210765931406329286844755102347280219165391040046358019374592304640328541702849951572339449199311012671410480496086355540323336448091440420675630545186983245490926067057454277107150342435680638281728292508959293255515830555872504273440028123382948434745970976780656226482044233785126716368505818547480447854865397325488473325210331467672978290757709347240022459054836498857672165936850490889790441171804221592329061819797657304105098866941159878218295474919293215523765739135386321422819268062788887828365441708213434104762773058792845786939456317624296630691661770917067452332396358265520017661999618676094856933528719707063458526014751447496830218913436441613330496988939171654677792843406420704347485655422113449301914613001848829492733743697142019269918950814944099529127525222373829681987257409940265335082551706640734366965243635792237474788650634101145335849446528521030110603812308755553768317821953124917525763811668887853411532829191910961985210135484868105211346754291354961059989545936907113241501354209269137335036393774577183951460748518449927926244947092140144746019188001676655551298254536206501975291822971117332963652301772032583277577150845977525247946254818844836248316892808721475403919428354457246632516739848059534896676631664077771371239662134702848427946961100866502340471342889490251875175862914866357538558969020658036043826575604536818775834372341190583224330102765862657787585210382650291242426501917212365153315937697809302986383280407005825700963302569505477602080168591477685832753188228527820584644042870892315649041662977082621086059347946098162640535526655217116933929191322020140608812978463111636527863085880830029777022856783402191065270309758576103521008185108223565059437827110212346696387060213478381469204657195936324903292340030359629942596058436452957565331032583291328770690037942994923480812263445836621268256911953514214935098550711309837814137632314497779337604098820492851221750687330774691911734837223820179099758905595096395819869697549482573708318607070705987475516021994159958487713496763401699436673280968650409057020260924277917369118424770806121151089078382498983274018100072158617384312009178627798148271517764526232093938231660778515524506032659181134547310937759071720240601413689158414892182979101641810644286577250264109133855508994879662288447059681469400266792764783659131502482972025515021075454572680548048839987915241321178917897103767563751029409221275008228071324555246722977228776070165273671876474854389219332257683983038334094037910498664775623449105605601735198211993733240016058017327897516076224542957297791219860949949445411478503516418502527467016134702098931440160483591869701421384936583310984859840810994873342284309608944884190898085429260308216513303603906454216310479123071819182551003284283245925232276526154502986032259921898256591110557944222573857583061238238564459432794239686461912424159241647222136769882521215837548596312892861346083347493771584394892769033415598434827471392548747831922485057036029580328557619111626493903897536104880180278671028681122792455403930228394499668268908244943319652017022854622389654007810699919488055489531381677974478602201300246194742080316824734062816870070612212178808725381903068306348237996071716585667694552785608210719280022550020631077168635405834585708282719820207875068327617149695020643733635397270979573917795381963520180551424742001168160051732880852875464379315921281927608984621654729533338692423332119217299536969640768790047853435610496519294669472786832833560089734901976963203991543884632978080392121102440355903514111615559694854915249874336423962619706464729280405876366441262941426492830631341997324431945701750937430375672749411001260661351028228544951423869673761142098999823981067128912907583813730936180359412004080653642340689391899005970167361215921864358139270897923674462511748895120802994419198076961548471032119584346281767623205955966790438563981450978964472346644866097568683383304636600649733800904163992522318684063937740954692985946875251809031436180729381759508717686024939149127369061678124586019244152993723727691193131470164483245299961677196430781441338196624275561353239667644871400772575425011904279801470520856773077879991854697222187653761375238060089833999826836433717831093025739670581563763661780364080288180224144144970923995956880925104337267778514036408373959076661250276125945673386499260478411895425759730905534594061640452001764899343874535826787060485098756240232923680867985119912435149166011242780580360763756121273212372333318890229492531457612153468014466186977936594237469295379473068430176573212640301310408195839446266286202787274996909822860240573107971057549347741632974793208270387650739744746547998441949781975382173428696915488533511749217276034165704516030992433176565460230861417811618398479729118540787008272497755557058927801779385520918348985679661630135851285224303099952649157932182751802589607231637046741234184726944779296577921349043249260961419406450297129327642797744770051771787670960032761680979452947338634813051480046214354844067614000227799755644398668448710952854490212368360013066931403384962238566766728113227799613249456395159346709797586596918294167260475641970398271315783003653796663618030426536098350584565742196229273078280444573060478445387683387516667962628834951671296279244980297653941508355958604025407839356040624588076070959864509283392433051561424033579209446217978502986619804305355409886431478440622449159367715186183968854771930704811076683967037464583399009767558224980470419126100483391843242661701846157414622454118596901474660463752174608915332895849042222279037531002610427298186648875392799427902288009561813328295648200632271669176777982755152926814433778462847716788166207510488526602012770902424503838561876813486321590482308939413736318886945588939266600010852580841503574067974332806797102327661029188977156349491224973641123324850271523562403584665531375325203481611048198171145134177038451227500528013387532141375635215097659933501188136772047353771415233182483031921394237598704057155810900897709293338264232907637152065394521386255223521479859969877083700586426798274666202384553503521685709003571453087019795793150996070944964262507366298355975255945208868444281359954389957624129930474893532185070171278470899920994437577839561567006400676567655374403558456523270171881125621389486669790046868910920246352989821401736553054985775233335800022028414552810016736585388465446703199148338250942247998493904517793591000229390221883956273060331618567096517280483325899993578285248818409395072983604393437209675060661546494546194813287545279396304188905184482034624291422815243457146585559830552305547159145680324946334673951582284819256514617783492225120568248702752584796867602789373697771233637244949180389645532500310286814381346572175388286125166243390091629263248986367965269677208131489770523302444061521163578084049990733960814082839862143569015228006787995853871124724795077522458281107137293336921306193451000206586606639494320266554503325132423986609271675021110696790300145619194477066687854358186410542245492240202658802516272432177043545611826087747871157913267449946489040299067931429447076276240938027436442581163375052826497293421518356508952219107494556164287514815781840575084412977127549853039156504814886906984811727076067984345723132722486106484447575591934672112274456256892015880814998171071810216331987208735910080544808520798198040607005608515045476626498144764162866955574757095491433151995287901648447610183346581156449168648990258469858659420817445525392799621625827883514407592310487397032877341196683706771931032132444481563068242361654900407942369251448578679247838121260068559254164015796402755850316963226712615668413549499583457679640648902671734494454170677254837099455509448247323800125232603325146319196512746328382896157102827660849655825841124448089737081316296554683460909804839079329821499610258170631442561918847049206936465470974168107365287423023385955525379273138979228225116039907119933391371156920386616869905385131373901379159631231879674687356438241160974888439704212896226694152076771636436608590008653446206581958347263421370201382749746126149432716758368910126247079085489354947208689806566712356963968001051379250467890711520244637099171480331814068044403579889877164159163728311101342527512773232786506153326100666146907289841787379886834641221159013564407069117660199829737301497357139389789000769244689466194462338062765126052144012113169972481804000591650503121236540058131608461871081124664538027514780780364884531591859361919287203558969784162682060077288664056451490130501399525293733008998373555993440248507130101712355755048462928878643810999347474905498541000838147981449341117823031472761439913439100711664857787818386787446668217418787407822179296127188187541419450743768098021443995911803707548133919227766214814167899962490914181735258793467850284166178260113081955673913288085076558800148787370951337651786112181636384629440239322873519373112115076360505545552960567466437533090360130866910870150232697695827361810856705476803783266131214180706416066138812150341785555120361322541435674545119567352438520181284914234537961040456226828349709323160118873749050145127745427905104821427549840905271332765315847491699591097539513492067105786938209405821108514316896275602284357466426994919086358148500860934361661108599842486827464892380585982348318791599236965084160424562752732386839465385699476299518268956664477477574305641862044345179917396120261865869458189802796070556117467810694801208877027140331446116456022150316654164134076960226045826671396260115529483056439364089662097854966675970839506057353448351836379186794199070443142204363552459219961731840228056363072518402890822215769213896859269411993819385066106295729378774998507729319152826135551551945859881877917653890656357817016321717697642816646409992188406313821608662513310692193556770920010409947190084730457987577998824689227980490736810316144946171258621496642617238141152547041207422871417771201223978415751329679159481813850929933400180692973366109568050398898317370372309957886133225685333259707448471065273930055292816957082601292058826594136400006585314082168187754306313338436866961574402843574134945014610857468920855869539062587159362226066805341211488313193335807788233268213333872587406295699257088830827935524534033154995434254100687233727998223419073952699392046785449118503935825216157807494274323669514972773706006524940009769326668252808061131939951833001875189807715036597973267884961924105730145713853537883483341103034485955390950103120356795706416662358164733265957785833608429998258493547191705728170526495533044552701289343884443211352404838885180242228406837205280115293459842058634327142582936940976822682331517905324266570275572787303689257980116637639425192689347931089484573394989320994067131258741535418980871993233924405264871067892278971133946701696683186566964238010354966343072710447339968491610518409725030829371361915021567315019910753412098294847833071372034678894602161880135619517493883515132283105331967156977162086467701053038237019101939866504460875420919763578993479403711486609415572625976860004297738496530060645518101687015847106942572116410711125301531969301621839078390271197914919469217445281832878351061043192385506461861483399531387299023518649490989170561940965597395550797375913118403093672503420849371050210208854975308155838432553114657051394008211584868212730066713292303212342302562140556656606853298713555902621270578665547359003111045660880259893859006257810249021200481156801871652119307549639828972135950364946828657633706466886531938704401298513949322223974126834265530628256213361650543966296321056160141934988381252986687670305907174765544621765419187972440730529689995210441825315006299859824449589401627722620154282092062183727892321730536723676659393619710913687739569408734441482585568441204681486535204855984776598474576948422051298871360547083297424837711776770428652338699074550100756500802665352756692486552371875757122024432350777917754463441793963489134061223252393557097448842811814306996293445457865041735179412333040465379347117479013191706527378747568698964955370924141607033179108740489180790772444244527592505155761104350429400193720008726199374708458303199765059401028317253996821871090288547626885857595799785006220830889969523200033283048199311912609213527015588826257000610522856919765362480006650751944445119239584626653029447195758939231152772431195206399698450428016472066988198754338248804459242549910645594606949033717676277824382339038982478487045637449088378290862173786987147490945943076914904367030947540152033174659064000739391495606343843749876466135234038687158766547399236430045003803720566385517405639701903445012206155182764258778532520840820047937846132652999656012442276794632219364584600398776510786828216458122170804224725894040188716827692326632142095488585499808680412366240882343618536046701068228448424058680559619137150929171744167688019143907871355263793447312878399975926105800290593180819004602871251736057498031132934703813386851587212079938904620253828010294103627363954023199537175378341138841391457922125473446995413271962766468875177793124056191857907774485037915739064151004544750281950026915554898695584652205514873034347610038478856925089247354592098689486141802413663330505903245176805691157863034918045571318996726776924129064397501445417108793945017089274673940733404068500155911362840337054786466728910133790741651202928535951211923144292040211688710692944371093513492587260962783121153378549954872250718673330392773829886096878975893180632418123077647016054391553521294623997759244702882697841421610759901181754886064144629113027328730395308629785891515610620135280806616612154044730189055676275211939087561268542115827227484665798166158873166314496716655985829060456993901543417286187450464700072736791946756073804919999278645950076336300504231610910879979455401009556204138323331464922685400997770908390883252715808873155633294521486687644981190857808665898370903700952066176350776585032631277609081362811858035229494797883611487317720029429856159828426553086673114611295770492454128281798852127338834735962289037429629094645662921721942462184193158927983706701068610110344554567720442826188446887405429101816032195542728761547227773254727044966745031248810185587256070125063009113448416309026173494946957219132369459251390397168435712065733127360042548235416344002922381856504104545847015796393357544134678439442668768254474872664895438041502397384897947352662193397134294258006529471654914760665573455175939788642371432443358011370209817924114390832962118086634157766918558907860406932841232318129037215048636524600272110306131709347555552041250692409009234836532977001803055387709276536796628548184237199116199481491232257259153482259904084455771960942107667462390853177226617136100743565727489601816265094909778852731529108527390641224115105915703508355315221990728121301126303087211073938919151214662579411300138600404959553121703420113940437633548685805929776070133635451929088338344612296138451030723996314022134813333269581755133955770571670021736843967923189274651983045283850579919526587363531664540787270063836183709893513721950321372223512931820800937520976362403508515334250162135390321646381771440202525926664580178523378897614761293722266405828419835514712875738078057873620187989705739156377311171396771840315910065522134448325288164549373525517364307339961285290843523958319425439120697361338228463514943897639458202077037830497877574518510240028288154171174967891435234987719784606082893404512381316312101026258313744444540367071979465846202570729809094446381345225454164552063343338962686792471130764298417680852158456463090356849299171391819377320391031335194321186541265084517139657217452273279761069099544344806567445594425278552738811294723482627392340958177257729313679511712588189838832307148718285905005401921894764176116481814425130695125515517853753211218144122825396984963510323468187342449351213829842553262013655019396187455540591082059512407045057342126436593341979594237206231245318381148025686322687114492895001152893398394162653651367389886361715033306047976621121007680209064714099804853843564010387300383079474628666125038391645684157415958099026750597662803243692598312244638968778165221802823400387817947332650003807802035691158695111640757827933604268412217068633226699624935141647268163583603267202622531342493163402912996952503685730092816291561485758992150534404817279674174974203790279392821277147284852143995428068225336924752544586800707272441230489967838225084223300592438156212736392158944648379663031178554170109371728216094418693716392498755813032817770047848325792076584534749769060318032228425407618530801605150280761080918578524928207290983577436808575064694663348007585421436152903231583389469670919031123027523614679232058026510536624664928519557437822720783383214697991591091598677335036489019377822062383017064687250103018032834454092960546024760163052468560467678394093537024308311739273476046401467708403779486382934461167764893853840456738762705965283073529540478455885737762637799046162910447010741609530680793218615974658454239189846247912989098104451730622229047206480412943146301647384279613110224649310340059763809384362443407640834556061729951113226231450046602863559376641054409669438786673152314941726302463904788409790831460034727392519009003194087153282529790959037796539282895259938642781517425461854645821268768883287453321578721413422152703648525603332511635297975683870960524155161674468346782089970011901825943921130855682835428452993923833027396093089880857517982766618199824546187047108422878227056184457435677370837628932546107093708632886979287036749202102809092583919086136823101083671862912628160035256255819220222995494613307625642190328102007626286273002328443679585967625566868364932973226567176772420560624245923891581536808267706746552898630605195638313341226585121826677010909174572943811542968430631362624631494496646771770353437028175632752469161591438988568460054372065363459885576990959495595183997691630364351901830809048349583930400866457689249943793620694289416291781528312399410637207905404251381038326990733049998299396653053608981816120468619366761116511744658484806197548352033177782333409853821430284644474052913884061063876229615531254870720544034615073961204053673216486479323282763054620645485788527257252415517037242016559761151611811305901278401525795523975945111916514701781259964815888314548397308578063754693226432236026521744612128772169321502780078386904971998932008399775093928207181159963379949992912060449968886386353058330569028688821667884207566802824729441536091733177471256483130170899549300865228612513980425786467786570978170409852228552724997530836441931206238648895222789742956681721253567639606426761943901487041043516641093736866366721750772698845538888637547108504230520611686330630676827535470295193437258267090886776150195780054299222649753534984141549548110352327328054289873121413521112339156098950266412969249067927312332480364895383678176643303627011013729902300094845796191516430638687574119210814289964068215473898715360779969774455537210806481485220980369920106487846760785578880532804334716473161257373765856589764706582878385625469591876995189878381938578848611201358968108851946859763683783660840458571163359831224152620437875730863891354520330304553089869691618177077544482720089666212836774444087521278639237547158264795309456583589700358471100071829503510117451287102288803214704286101580092306908819355382134114169722650072894295041714249649707376682903571013442269188669457227710203162094228728274579803928925485450163825464360407920673395894086618678318426005349324941943936424092256706860969665648351212703389265385260898479970688623685218381736272320716234445542846746469145146858855656160895012950976223163064585753974578404743666025758208720858700865783041965134932168503497335975741305368632564440302955577843322624936972752004261683283393294526949011717535871939833213031293366664082318912276826479174735256001424964019279236565475972853345440046199280954006439167155609020615546513388378525897916981977689846279415082853937737920849805014330337120792261024190320799987109789648475752671511318814880686153016496963585914081137732850534371746140323487366600973946004842807746709897098770560527665728234861712494382605673518969536883769069654262340078982575297071842160125326249308496031492974685366286560727039420258733413554622901411422460595514793147362340383118991644340276668162342439583792970882293198187292294917827643225039863920071154844572499705652474783722930910868443767207958226150603595817475041115283411884981276669179071334250814245390602061729780982724482527049093061309167120235195456720902222321616623199168287276941511626210358570156007222996034369169426332498196848852133324422439726041634635857267904202325910271441373372827441085722231417578401149117903377439736195998405907482890520205932329301846861400860755510612447417921136520160106644520317664282877449347918139076918047178018026874336391869996276430480804367977222123485466461969752516743582788593532026565249341765040817966009429477306102142671867754861971857072983316968617179492006403684324224348915188166304863153218803283816675089030473640531586846344667541808856611288869700334566607216373935511196945207120514172195598627590382381409966222986172023819495570284559890455471877818065182681889661681005313089243023369006436034262980280482477502172781059992294196404567364088486927370716212905095654807276231014071173499904673447809192393697098965931768253196918449555103017133233149942491140284988830426065267983097333322699715417729756810365485801865308010590055070270926481893629486400382871801330812992571701827506457409689567341046406232697458333518050731188975413268807059701392357988856826274271094137391337817257435863081096408838328455398623949719571997013824012932327184105355566546515771917979467842483865245958139296819859176345224339613519520443607581148758124189289529780506244438021993193132650556402537597090794202338011964736384185027879265737171106955621624494416066163568537165104326625229898349866211670400924412605573411726733979731448719851344001042036525536465586879041422938118521101107737829213826469808698056362695152742273321560888121307781470069848479236768834515541778069510168623806311850434333031173984559723902800602287768009002785885836682671055357495540378871246552186919762088259163650922061971449636409509565298355113625209251043101368056230039773921935490748801796696413476687260157981907363466010384944805412511906270009569448522331514480296621508577876496978178396815725524673495084841567859768446443049053802770032492860676184277324384434600289847124333334959620914330461637473966372286739031497392465882668366326575165663781005997354667797867848426199310832386754893911962512695788373587483950436439968114339667871751306547852722765539698754055772029796869548658613439674581408581275107181690977220593255808295369382615144045492286096042786349157622671069364637642867837089561996173698839373871289901401603070410274231318444194274420488955704969333856883594849001533109513631402825237392594084960211398717406204052785080641667773887441562221740585558527859712012614353331597579819629828337262413130740900637557589472863731276615046153052181943813243762450629621202461914776803771345626689800313226237344363722851560818139677961685025478647968326731247200869127544181947738493940560088274032405213900050968765014894084760904581766772230142047771191708045609085746589370549123826278629372080324148333768833859890208131834992007174824430824721435641843408499117014047496207638957783624666639357798810772250635724479106924715329652750753912314880865474524556436451713070109526438870045794293563171458013125358801584364273487560859421586056628719592268807667810352661451498757281246494052112288779178399186499901813538611202638863964063326118798245107430793543121062822536564333203694463004093855450255889553014516705515516416248159860400504303096512186455501310301349615962659917084835471027564047697629842972854269533799107824723927953261524926719412730215774546570199002656422608450084913220386980922246409728454554596387649127855959848609480297534147314991911657979222168204170789325046334525031780401415392036931606537904450436230866203233929949910884833664319347208063243948493540954772114299145639430419950903402712357688576989005556306079317627410970167483378449206405220670502850193767189186595535266473642302809258148480697321330664488010819026210590212681531607661411251582750095359204159568652130375109227557696463331604579714193007820644851016058314509268253842087715646289281641434073720248824599082046679729304780446655942595540202163530398158409887475337921258860923711937322063394984583432858902720353221639398202487061485113718517245553238997857115683428362250152761045079308643394618996881474418645120388380927355183227321824678469051808023512129574984959304103110172746030674277212731614605551443483940736694463584503350688987743590825079457673432933280888601591288551643731399224981079573580439641117733470837464031815839482023204221341925279187458418159393830193198837840353485904824578397046771791248379404901742770730636841764867921913898148842445768248201418198515506470175976082492954241640638929721640389784888922528980963574605107727011372018299704995982124759904036217178553266509422943920358503226750662583124093884707019898282759279749256165959396152059338050467742619526265528730974668516137761858414725392104912975436647395196681443691121876900725570102824411981556198248629170063310827780127107100751800470812097641825992590057843097966322807858664756806576535663625117815916381727635696943046027584815212618231537275848716205785231076309224521355639517300140129454097885587915453674419428525502178598839296470677945430322965113611817093600663587473624981568016494846754238467735688280829355313754368567617008939168648807961751511631407989541143772128910696251256713585571492621618718384373490110360502893224612162121457698608159066069638523407739423748026669257273456932530605897368991059867701667154564526810648561377541332866591368636508713087163964414721967537812160403229972488644804100977021953084010624260748035846311106217719288128729958626244142800266316237700357927220305169945557165649513162942193188937592393926363461978506910323247305656532388804498135413856404457448612979538852646361899583494467207411977027658543575850978796191358160656005046750408616847616471987823969440565857345827603528350873274006883228534239249396952791108347949026088609829727648623255127416257595719687466651027729550376305948083236042281278475104641397931847892362388215294822699666685422811208426222670661942141270830814574289520693654440020539696952969183690492544320009494785390004704260444337242407375212450788368748807625539313032357375906614411076370546244778657496450338285581751181111166136622872658151774274445030727607458490575048242917393575593039493903583552417034766772142034684435562054237926480833894822537049677348412697894866297150152624142538007026375376956375118119519369486588035526655541767136605677116528980578118793043542929069799946296250763626524440848273910047203212678554977050454095995047121597791571477570384746570047078423594843902743125506318532917270565752921004469873391816652325124424217983503499738245368193252936975660580243110497357971789462318963482125631787519491518694867170228060773994239900479216414020245593119666772888012536183998767466146596664386465034504627012517234693562682540552110312186676024666754356604849331709141726671947688108088551765232219534417234530079778371881490726803139668725572482868805320893535488522230825721837442594911387133309963071265683641304933366918027648855496820423479957675123684383693007695639241631620107018989992484376214385078309796610071224585829106650200188884906731225837301157838485260471195452926998118443114409408799504703254555893733442643035981608205034515990724289214475031242641408185379111444897399332086028322624354202649010128010613369773748316944617111063701008125393289298851944075487297458416176840237820508621407176244219550305066460001898553633329458131170384495786885680257908311410817127906429606370156850476170219158034287820404593492030388334717270854112389733711710523724443167007272206829293409096515906831151197209871271697877156063693892541615967984572676131803418895352524964811408112458938210393366703952411325262832209422528998451585155839322143991898775884249588824907653545397112243710492387437103373170316811272230102450199127449797609086337362133716084952543999632262071335035839797335037718461292229188513647164071214187400916770615827477986423151766537199822648504797260459875962614960588325973987909243563194464096967739639340389069349581361105419195044430974488229774301773738626620379489189589653067289560133584371664924723742065704069875960336999786050090514686746987950666543586653058098688819911018739246862269896025131182541772309307759636920163886677278886334557480548969272219223796423249301731602667983319979454236148343248297209545869950772899702521134531445788725244273936705903006232554276673136751794812600589976370375118211858528464619407357416530284309584585016393774976327104851131856882425540955132290581046229229288083317609066148728600980961665429910198217589731211291686795839443776932005074626495910147238424814317965339936529197887794542412444602295359398910214913250175812714539149648163282375258539478628645688706068631957935133495955446807513220974423948708092557184080999863439324400159761388807623624483994468652608741679169691119027320642106878036023071184773757128050526985066162061508344043247544721195932078887412671470443574848513510739068444368308363043867704162553466233342246783527714863131361229741978775424013300076214834042448469389346597100106212799314276062328229588821007371183842288543422948297227108000253424941268710718346653554100080612654998180636923177643710408627120099868657794349974285542629303518081867372730957063638427325173072969262582485004286269175686456512017990073372060159271153787285829260095858889368477356103946744132367847025819696499773487837263816109625977174239003662816171100968915031671634334764938596713293272814277503119059143355997187483458941703600414731625213041738210475366372270953344976962464295628803322983463043544041071125276563946632447894509600071524464131808974743575421884573028111017231629646361309869750455039427418342885991763558001489572456799875064426773648142222170183531586921567906734693763950517610366545091266103779012955219348172795586212620993532623783598919338225245381388618159304614221292622704769985463333553082816334287856855001268286567922915912749723958608702126607565884475444540106336043463020738916602621395565027267141895952391308036998855529316214922760241702530943041389360964412541195753024558169872505669996003331296928561735175685138504110087065293269598404520088038957294716641646092063336558116182192136214559387536767577573464747034796995723047037926180798863210816842389264691501996046077425979680723239659611106219555543210312832471892246798401695196853382431643118702158965723617842985958724993863722889604179211297288878569343128705915695712667749462235449495301545354289315743193288387348442004700131354454385164354477843848011064231436788217242994323952902461323039266878167328678538804867641323093712403143967257619929543600822024015109461971785002295873815574550189888463916656830716473899137512580956461286856744215485028138789189283477796836633630412480549992987304635316406445274505870923338310988076473402982134292221777903821922971388927536382453540062914668639843395201495240259629171929794652835526637839003315155757112179831476517329596426287053491715069398131889702302853386555940216535149106436312078805014151812371209478432452279336015388992832028934192077597372010429260727091548458101123179890072483935521396387834499143875687627594608883229396309999391724309274267189215648769583447933642218878589990537343644837201223772372666740637740313107548869947060983700210102256908243735059022882096216586691060291910116919883438482466638445796403388064696311277106459488382343610946827203772810467945467823638293273235216986310280602202765706743017202608570003244157824349711893519345895021918421500605131831295343275921387678149605820614980430309286349849505506286231522827378092588241239701813736734963060958141456785162096891320103144415524423164849475484493603405653308636863361293382201222373353258354128361395933217585346729669897757654629991985343002673914493956660134250898967018777846775359792363039646767140433566398371954601822867805381044670740284690264162243562911978914921998809065667060577863751950193759013468658827216546566651938230469034793481378476983556889984825258897501144363226328417527121532829777767838711930234055346630356864318663803414083733404083219484434520456307361248282451178895761518461252909835101103797682107766474939838073468160572315312737724543983861189861666788945849595722356510434474009958077778758814736009273644843858322096828769101214613672943901007883577784677948716856885775378609902842705671873852230923846136302889531385748523869835791621786978968412717894786688697290309546139531261510374581356325166016020752293676823651937701924582990850251687349437667201836148303497481532093009244699679326429914354158098000638904558259969567896077006239144738243752249478740458305948542096292768562286257299686629283134543868859806651824236165922832086373158501514010077295283045004832971001886125097778555637588380455623089398540463239762736618499737912404127377902963134486205000468479958652704550505976212050672929090693108031486211774116826799381049346485493536526396512294854489688363544084587890700046324803140535446644439016436973876333737398374758583441194494315702863216711402537994771343652899857085496327115608741333657774406805518022330306333702651055034274448113960257683790542354839073237409695585105413193685534252637676776613332455505837110507423210018936954500279557381789724770380174309756581221576110148239904929718700687550288190063298416625107202265892661380522043544944839733339598030200419218945062922214260212925983072053720099367292701645577374387893555686059733391035521665694525716816066448725632551258531655585721412895125225805732592687057202260243269992333652112668315894250355042159836424268506467489681183705469664220673388738001498413584404018525137104976619990745868689947748167524021680549212359517814815267990716943007984843544098725209215487191582705421410030793365133975881805900408864390033967253719703961794912848888689166437083080411112310946458527849826869029731545536572046550995390786819645092123748208937830140183162800019630694028964659737725318342350058311252953094738012704104471532987189718248116634623955188547588506407609274386974991811925545777636072957647621493612678505784408669530187630845353677462724491633086384351614891313166024388040154107662224856276543092419312600387598079739715036304038076213514801103724276158787253780505771107421556093480751546568351192348357079546184900850302031068145397502190942689599640957783652012197951088509054362577210195206864304854388230312089057160664736030284137465744097142782818766734452367234658315422476472379808821025401022511193964767754340448950891184443444814545931850158783677470329825936741368647082297605408805228981614110817053465456321819584974630900813312342853609834188064906180508024753936284897024345870713072566252334861560780587856531724256326937140903414882779365413922373714015985980745297897180295147325656137993475037125025882705116462479250072967266780451201504938849748053209999432754680938297547538339136949077772197226488288658822912444282191560252819502881700935935768836016372229941002709277970477252233952278837344052898506083862926605961672246733866572780347389394844974829627480749450476270871052160364066947515919573519421305250122357228801625069461524131879556369654318561056880923377442719286169133946555553852357393920510405124501097465699946769225360837348966146912470690897282180554655973343531017462573653036313963246780741320958104655108459745906454048687484036374568709723124672830634847544572615776967988908869221339498778552188292829739939549555925179576040270162820233110507989582095433529578852240130807900927924983187416467761330318792494526050013680356363685328625748801842688489862798798714653469203497272843987033922815519172366412775045696755413733357337566829068147679596663601711808922447096203272645121243485601200359249337011426579729732786558724282469640769007749050953464711152607840031417202819924159171796948525832963829819831597909054805006113561346027205239405083508992558154648479460644803529473910680419119718383450093051981605381787641682359282854916786530519541822048498819648953897359952004053056723603213415677418529799849015123189034654419571067054861642937887409984159876058394487314905440180070564687269546767222969079254897592722929202377863309735007419214309376796225723127597095240483039890751422788997127476588842727972173904933506473034167798493773131141401101993907418076539990948144908513536489548070197060274812047659202277899393087221837953058615683686195579925354426852483340969281655326098224752677097393562874235275556955654872591704460408968961225232133313092525620421701158258330663206597505202680816396090935447888751645289758688573131028287624334121952265967870675887148044807745194667894062044451982727672014106866421168137285538374267746354974601989314156356527404209895497739634127651984254172675808137598322762195943730611160315462824558345657326997976188289433188429854778068518497277339435031478861068036283666145780181077510619002072006245347186359941221312088861994762300754420243216116976609229485920461700505229124548705484399220211533593828727414368382012183890379333004628844016544970314083964135395812525650694824976195605173754357359798099210738900561994525595964421168975561612771764610258373279041251887600085146914681262470787395782269214458104596548371659986868973408857849474535155984135959123672678189424504530789288136986846530147816333867004826100300870024632806376897933902366764012727747092357926921737822028727880387171391499355210737275834923693689201063877918932980064725530875178095599226735163186761200302795512012599597087804838524277500445621565143424408983711593719574624329982264804189241485258398440971714223816573772249766853230529573139371109202977691106197778884087486704655967748278300353997302131159897824902715663790680043746397272239874694059095178391107129502462796950828991345592298964345961423731929095032724048482112859066819111221355318277717530835654499478892361568792800795437284172977749175888758811708488507956584743598296924966999185681605573923620593548987525517287672205686446960487296652334424838069626438173020561146498894991229763009027720441239390738216890471143463030629478936246256712560585089296216832877992355474607650033850107634863675137752742842405201944640144661153770868528615259075188936596598215222067856540425136741445365506317305069577117801983226399288473791662848143214175438099887564555829017622080350059817797677605494531700149718567726963139919761401824270008857109195463018115917514109350642163523219146150943570761173010095872955654613526524039195501677741308910601605354774853778718264236645327526364707005059134805775012849512342560332991909512765944187853406557808441235689796179534206760440723585026485897717211207993270417068601135152526790376127946719213246067113285688699076612076216615966189836256105765628820966741222367143384290411022483298184203246551818311656125290750505514950673783201829344588486852184810978729548934238461591546404349095981642515344240785209325946661276524976057887541077425812203074274792620316661077700540223797180239153023464229543526652108956873609298161481429255594656178216080845116344876350583447773594630353230340745909907808031598413437926748235494139447979529194278736787402169656643509664729475437137122200676387466385025684393943867717942224855411981923314565113565164269071119503293238633315266252256975451530024435320659713385849312762072944469998815527782989903054105984202603273610972931692010206789885134705769800296588383614284677722998289401662545344022660624347950500255020177834021700703592215571089730026910801082310277336822067803347979172765285785750718268087681943745811852188370016744572490198187693868846246047041945798711213224396909362422770471940170024377056510569192833315677843767472590368877955735553054597964125749484139222702303643288035885006284127511564495248201934012803011938890479427799914485777363204402386329057196416930805601083637106546148852389479513302406806748693715720028036054662035187971124562261585558950382460032635617328076999449601300373069392111909298820900182433488686041221398135721384098506825721360396268994425108113310988107063147993019625493964688781258311455305348687117590160818326881351723486364398942592412681475627734896356161058449519342063536659763512212007847006927072768299610591351591990707016786423570999096096455802944291128082930467883733487409616641291157412221351018503459173208152859585479820722805157415456588384549833462744178526215488758269205241202198374409646638044683263418298138331600013010202871280662581629616144258059731162232112771111457786855619881549897283349341714133998012701164460843625240837100225318661907938790779271729878769474400586108915215675164877467199554000452913982552497078291210200119378511368405180508435297306984835328008263640360337157724538229081218584260377355429219390660194767358192984474385262181234198194721044187142610348319662473380551173485610802129408050317368563891907965555076288696797929668698587821213582249005443868558789523253990569295147701029932456639865505479641521007002389735655242076436413128962143617330023604577795159102020611822995860291429675028643353985828784441666904919184805613499959758925773980595591901525772910254603332556335014907815276174644507954628921026435562594997445805031455707182347258283192943326008221086307062084001941249285473360972954796837303492216694274447438546109254722089383068344790542506947325938701969831846649422500742508383072855593846642377215144786040779188599382029942630693266293628017519147025275021446751498737758599834593843063902295370350708938862330416560417109703010678166463696886422279837319609619688216569623369304972572126976222749807667860078329405247132664998307903350565705350098626166566084457607674182087011160130790480797065332480534711240127601961313989638559289504192202797232470148220481678450241299372132431760648019129048188479665266550402124397377092490459237774822329045108548777793997949735955180104093683875182955261386017143660399759106265981597425068553263838824140110192642519413817371276222324824352477507750189847262827814091919017847513226052955554707264864301114200321094294867899809942681452190917919267805813308081290110922896894164214773359770239242119528514284730026179561670396547625482521991105483281705050078352771640197171771189612758831794434926066772382275229166810185267575207503682651703668185737100841028869539701509470619042923827750385111128948645629774764984786137376409107498059978347280622231270419712831707566956312725613948063839897823062093131063773238978545194605188410165311472434313010385884111619250640776796475363591439372853400924001721732288371013241752052658463959524749202061343927724278541261345088807256067937694022989703574694671568881626087354202223191231570059728942421341459259956634151549509043323684361622941100569265150871606982032783338149015563980899567257198590140646418165778894059882877684763324951566449738633594785515915266359257410622188721894335695768656625511342269634504759620344166424635312196888186368778072650317557662886865647300837295416382411947329683825978598722532528778722845003314735859295178570131631108105300695425719908204197934990296437836407275531556335409082188687393249517840480952481175925912049201943732499019162367004139147419011499616904898681053816775150748685502331813952389281596737548841698409385389599049411234548165468693212477289374254800961558008160319293377393983636738850887159287624021226012927455799099499145891689005791670644762808214152964686631475399574128326505083624541784439237035612787346753600953398320056108479287963267184764780377163021653085590980162918626494232477354216158007088154774999311270547490935506618105528874445028883453744782107243805341827070841182222469247623250868547529012150736701170469150652717021414695084833654603293383621926711655888994141902217760689172230159685969111120205586146294452060606030107804160968391851718532793270971968152318050158504515912349803202627001484936711712988696899069009025497364336144794050605614112442934604618346281267022959537023118996897788480057944209023978209172734132497616347099068957948492858052601601433554060665704449223253751263040214323783680924552568781597443869137447621741117881821735119163267355440177970835281415543285918903415002542846603901325280560862285225261361378067144545313604642875005942880799978151580849555030131173506530659520758418516216388910118152003720657383151113506559832762650474285673626270114728069847952180772488315956848962541349208289037204715385633977792896637548387627231416337526286208881144538587358541362417219612073500815097021441555695571676103326943987112472596130385251274257633829545324570569785551744763360376244181854804594552051010367828115924083016385836797964310345535194821760573118192267821147511734812627324971276879715260130409755373505329967882090139849417793398997424103044387244433425631188762901136357279935631320495133582174421957000429793429739322789984405006853060565113033600089700475461823369439716647740715939465730055019591458377104404347579009129671520446331155165361700872813943870218343681837261056411772375417950171377208688725455762491212492239366093407243316169184952755879761056494908950780546324977513667350973608324457686909416585467687336454048445025845930451509893474394385724474531489959296141937673190634556484384366727495812657625198817391449168859507293956746705511551701771869848689555224035354830178185880660361043630482029427258098919912201844488647311849663455906706873682165676404193201852811347232706074304588050564098361214087468416324709085552255968757776086609023747834526850912382881429249711767425407108932708327818337382137355099983106056800835384722572305222375490772214764089813523244045678084899051297249697931083538786797033988125956767539585786604328616266400772996558844716263446870631507297456992018836344018090926188197864334725997140037012995643931585472757689473456697248012623903452394842293601589825652067523956483510801796981384145166902015915951437124680126665280262792045317604544481894320947303334925941047339094748033184404257236043410025116576786565109522472010150708355651597861504938307535111533288313988508483986289595693691758361910613690358866080007302813849226046291131439084686786136581259177444656166202346595959736249220405399029971178197351664738524534580702121162433121335757156194664433999035859949634086095307546218130042668734059094013381046067894857990450157648850403566058451221714027816515463564350397448032247380183668550474682506297537210754719790608338096397379024915547348972948765874819827736493680986214613626523559775432454844871829879846246466331642501725191059406698871773658987875256817842683072338431616382496470283790805099131340273303777909311430096126891033887736015139406885062404000317700567954302923141493191856855929900591636127221128308606268068715985979282630962528804222962765058656935490597990828004221903097827427927067116583625968767674877951613678117864812988253940514800712181681785662818078118712071429879562335841280083979402121859792414825297467654379625553514006167847862488824029280526637556193489783103998519875631836226254425346207756552678393591488989078495855622256482060447552993417330083467392928712454564538671798111093379652225803749528815686986109622213388464930244438078435888423431143129481675878558430044701809493120052154141173219187181814675702388803137924389802916061446950169155241120040978817928086076554567922805618014704607859641822076859091776146855137766171079857575019218336740461631505510760313674931450033414068620827495263449117030163654272356342651129543387160655972047712179300042580119732772838393682696132176148789589603459221825356361978561326772026326116966838246969899377618185976195095682887027732328299857826939078054516004989459752926675001286542447718605760851081089775180803076073486292316461651845675690460643096722882857039269702597979882679503518915134080284996941835780723069561842638572532385656451112386609794255756784314586056064816408107775408560357343088244558554621349166642835678917427629514790213182916498096407158341825009428261664475873907723856815633958554610801450399295848153492095316003559417238996929826791402640812591203906459934028681652385337206307833834519211460981937415942821458947472610356967317463245194155134354221852570464970988628372996698491561564199042132211794876963152446187006348337327250954120791768717925620604297091201576613759148635197649483102155142065635674040094340806062030720449691463128383748954879004219792455816716371979235214327013522782332343959307843387459901432109662683379857632981918810862720914563614692364663519702774808926833497992979663659405742002214985363350139565387546991576250098500892619698406426206365710567762008801128855510218455778220320433798316690844341609286648219785929507219918405939732543768477607073463205678820563729921173472894254988669826611164704881591484994576706019519823049988604591359146803027461545429027446124190744445819611354838335208519222719427224923992495383158735111200902743441562900351131449510076386700901050956296172343889487434866073629626402729281596025464696512166944505029226347127499584797365632593311903041046614260600645793713755567873766524244598196946952235550204810723020542127564456466121014975917642923368822794348598364671324964973043142579955128974980906178938470404225066938041514748876484355108434889599044937674780831404473535451173732142115167850998294256603364481361228937654234296600118412087712225138082094622353966299457070628016019317916721553905780276124310825676147448427632612926320803508492474663720125310854294501967127397066811721520424266620470338432773535650993209310581589881841230823588912771689556551925996236635382379284063975370371652155306889342745316518656865482010317866934994508279526220909607054526523882328567840104735713819791595956597311198057276829906966955943598779873154421843201570517372051773942933511383482875034837418579940876636630665750024914025070006529717352598838765550583050654621046038114879611645803598094489127247407671669707788992365624736154729510291292725616731229256554278651656256285713140471683986795073679403129796632993056744904340272150941279794294290466426269836008333299434348991476326961555247059645426528941833579083396097163261382987836346443227103643262453172672887781466051446416534604428166470704504677418447272726148708062508504042915503545457938262246768333556375347729860546409449598601840423501971382764057323675522929926925762808211541672194101647247809027346299026370202610744753211010166694712905658166173863329435627905562205391738587979422649564733408917870196761055673936886690869567872201566991416065415025389386417046312442039183972340821924603207073277195666495808360318002782151599821977286987908821486027323047446663677613906354572949189857036352782479277171417276924911487759452072518482025570435794616424307771763068899055696088332596483174963428234261779264028868817653978292568682064724126554756461946420956937637924134838612152072744629539077888982111699137216087063047940047362420812515721799943227327907533345015586003912418115747410893019523584576536744214365915286087681757556320189200656011111003862359016884383517132335709058825450384225641319097298526633307604563062216279137335912450300421504405216211450210669637116629191309529347690245395535158315645692544977000723306508109916559345342872190545668774908278597788387350677477278719239270264294024972472252122090341238040768896950099905721954895241371667157056131875406593124410617503421336035074759486550619572858516743630062018103588057380408320930041175208630179981658610867832766841725355790560573792157311364494760523653651112619537216637699146378538122661530855531572844934678885698281180838293940215408475171459935823820439965784638257475402193450852971784548435300711867623275091188384605985558994866572781627972577485653877017996122206965204463753312670991808780069096446671779850578144973489726574032365369394985860041588688469501749524342416842393328829157636640497350576727129628046150366344973627325415921788139832577391608595388869073392182157091196652760356204489526939937855263732172458531995588448909253332519357091661227169153425773556469539081000350169155588478708517641427396081809515749052175903906864737262194322845841854851383178821658351721396899652395630326855022023951399461224428284019248685937556062398915855671245110585458162112423391476196934647161648173912866522502444748441673816333639776071849808214218881389639793695383377737576487050419343567076268835842392626252318119294848882151690208536004252084369215417577456734698436387361856040087664622738767896015977897924796003476707203612419853278015940695728632190560798125942869730146934817914781555927388084071705680436013459942670479782755842095577905133580976699267066526521553894956003751921632398594510338759346232848303881210891193897477710885364528826696193617170274609455245737032879917764727499948914642630192517050230412417991692161688913510487464431922538886002934188507621493695896470462047869700061633436321549366561726721687970783924623947581896682266691617450460242355927738063840349014712594812130228741789878306734731777223119967537276803080728335421419961073221056705124486437785329001417256269001913804579595060582114761686042379836097509477143334920370666181124478024042772944185435535102403999461232928918650681748404922608353630997214946177061569328703535405830326155130059323380485222724017468728904562208833915376810619895996995991738191863473443440759901377442351164902738642750018978352426147350826105704118735555039246280785649717061292250944557614094609963356018953755641923513523000426980104392560644079290315056269547559401841015616947839536250374135388368148402160658720642070981784892201852251616914938361718709643866567526706883403602624932208682149503588620924334835097540885184840974558232395532106881945578813037147438183500624915801516836250466355287046675085683499782789081208462201926882850043714854245183937983879638062644503554135748649968260525538324940185518299315167152558283862952150813179667738944754513756139262629449887863099017412262924194089309923298653761502908149944014549740650947875138675844539893935649049309595629689919941862811681244545746596024988733423680541311734029290205924043200401784356416623513333059840064022315139206918073009065496223033115267388621448718857179885864329071156851129981096431573464892223985351216684291025490292309612656203396552176129488628918200594010608597267988768191722214482272263845789643822190004500677413170256150554022672917247505708558138513469541422428162638702676845416798320868309362378416055508685997893281273676215209581602843465987122296445851046442929203573508210678312676113272628853585853313570055878808007861086349408824041054673904597886544855919953807256664065644659923087528595707612561111349684692054992505528163270732927228618359965051169980298709372183024139673209098148414571044335861157701847994596606785915099446763634907736779454320183598876150430587849360319611742139989659013696162010395352852936326576747125555567893880535177617408097891838049441943010522009136026252598200483719509146660863285738967875333154605729029477711817855921415940091861076667009478982852784400872975512206478490025619160395841185756465411763343781250876856328259069025950562508120824755234438339548578707431782250289928314023607604605022565230258383105931772986958717460595507871995343362246756193605066977106274629543323746815565863604255418038831980872640058807900039565331962883945117150890745416774174083796103726310095958860856749135907534900569043324839256099083826372239107245223941205054830593035465590901963857507429352720403601683121178163215707427351529213617081458852678137296199937797883018313097425834707210393328190725249050810164185524097323158299442508614041466724323009572230481373590824914575922182717716214702536367528658352222047933857985529538085321941456309341559493973171655463562882738865489520761232158215185671993401294220622060490212515431877853174803460730183492970620558067522469441381493945856605381989715414027266019753871683318069290577800964777754293297058516738766719193267597376170793602893280624938052810670259492036089841087306255203153020618011666022525886025401670091168919387860014637562059496468185100951518590488659657652886158347965286537923518216825381869042894911732354321128013366285115694905483267673943331614105195451403792415326587750807413402631383796204250492740216393244568336566082413137486135941077502888377606883389735453989469138480090582486748948298829080376188577779249526235074960916518437497647712526251450095018342493263399866664451254698555584542476076500061543086384750733338602490222606312944325936263288591504367816603415183049772430399305239341814756672608218802689749239855087564313500050510187788520744923008956503070699191205955229087845029766084954794044840341307501598355018274099489164002404801286161430763089924125322830750482493668635240520962611340472741506902895228870100962914669052276469333904820008766127820807741052666665156284915894858861546356257082593421189004030393708081599524298575821363942044187911440187114440662121930701810395298387587885907498178145049455038080485016627653393622561699956980710936276468397014869298863676454451210707634335260923828800587414097331791402877355671129140206745380166096640856683187109430807953658758024677183722306687385631947855915554397309896492778657310881598580850051767925351624457872154364989650575233911682955692770564261886251018471092104085676607369922782777378017978617089844651515489114646925795394999396603694961875177764278235311335341032576639759317365051981709517386991815934639586312304282804129989109449974742180530607000105047981792203778216841170128974119823008262147106215748401702668257924949577989979808934414368803713670846489962635851448398133877430211963608957171986083498250806752553169993228691850120413899811760905500282863251267387447573512493415678539922518617354285045280254244557429325674273038928053405703122746972986274909402248011546258367912789595775726174682386098472599361782204429866838404029296330867921055509374987738895380359180968428911038855888544101692253888551816483762961339040186095013810416171499087466640292763236422327869836400585175024649350809019198637353681943251291686618156990464824025123892488154879389872703462687413107790656634858078525943703696869182953643951586761866305024323295766333508211991073448166009286510114947281819739499577570330828278490032881602646867540929407778602066228963657398579449865306231674116530016993245961418496801534882130847695625571474234134497345579437797166040996417570537079865380602913908012153115745751558810496628382396163587428083568570626966547740702004078091252346957267432203952929565425706314679270812598248728086909999306629311519925732769075522582950734258931642459557853948282164701115998634608463239727427650047291401557204265599045589493386515236697293877097077846221475343447796195889233968942078341114747577071989534436312577164376832523831105644353501901677855111313799645096725206839067907305612670315935019208278863144403910614069756492822396561791962205464568566812226850481632963901241774987837584032577477957680888186351225058917226682828027089752918401922479247144702199737005211363610818555586593170062242014056477315895603277633600809060947390278130018621096071156817297546382025296159414954686641272347460947527516335441093472051539488277274228810172161813214462937605009183963308059814609858270916363355242420334387044684018170177715148593518053146446119474875765386473036901578778546843460955108206472142369473873151054390197754305735560946982446185699303867546871536289750636941095979014156698119878573151401855459583543500349577898262087617082752341200858806911464239471312494069911607831209554713325445830007044144435753151363230892200817183261788498381872683972592897328952518356563978183050497496754341177053622895452560551051133097631230854928066973166109506450243053632031382544266808782609011476061383566562113202577904409723074438196967872213204963100489697439713421886202918298948777643865621353245760649507412423329882966397011006279769237538239156343237954358028399107158118852796677263451949091650455063617035176426005012104941110042489467767221111151600804355121051752801136635697775641902362985794088246173530901990381548847091543851127382046248098991084493695370438418454798289137011913280101477484963530546065093548432467940407467995299868140109330319588716106958491283482148907748155762736721615105232301007838382691119433838689270854613626115929543761289071956748249884247290841186923065834541755709228343338459416252359933964644712375450157688338372495844222251844042395272535525777693187384653706144887271710118929172455990569377212287849571572207719994359082139755599655678111999086685522819586455667314957139689230926741141902328453477740054723030333737121809765226614792124379808378916534621025664321896789778044181014738337586999901242564854609606211996636862745145305669427126614928703404936318273046077793968334405808587693271265293040045000843751890402327327567630040816070726048849877854863715993922333077102959513852116590323244866356486245780525619285549609178602728884820967121328651608972612805090775050930058676731372199377076160839167684384198029975365902743104914407472237893226253564516325393816118062036342979968392344588201745224883817041093775789261052028139125350733742710346422148693851457082032310958421184371724816721649141439409867566176268798825834136690691111267820447241262452167039689752780333765938640598693731960325678821188868114338441851801750853017998236406417362702879720964274611429269465263803774889242032145377568059121911390333950310329258604368341365887612443086824040525397413896583422412084253939987697632239752632584965448906267380653084663149954546550511718721130732997176134904628466075871612403654653251139030662744306173579991151231783704609281699338005436578914617812268957011260866680368964162520048670056194622164606103792550572751739577829242051828429331037755039381150492341372423243015704690963907461287637894985501128278307152910674879530792842531505910777524320526358098974447677957869861556618212768974045468417959546488554173544625542052495914098701667515052131856649299580503456484180009053470618442123321927388742982286384435781225744300947168604709874551165793528024552623422231921048848072562219197597974713813535544093005766928855562936582208677239658374461391169666675928245238912606346406126715129870305017078433813192708509557531417167885859017362413292004786576955050781200429380942183147746295232900405163782221391004304658458939384181767304506272981407338300810195122929273758903856834708951913140799815711373370267654338108708558296323347624278870928254994176079352550037286522575309410245537131226118607885946691933489808995871717380809191114986696962811254316165624142208551741439306837999416195371876514100127942699798296122705053413982322571755040562110478316891811282667858805853593047885968575895328152586103666490942454832565965056683079325318386797563148355706512501192068117821727078324350920082285699889631495267576028638428417694922863651006563124274669700749461878178784302805108629480565140547839154768326970472212680651880379070355279442901273681447890839476635941955256309127965625897465521973185943528518561434006545636227359970768951564039574653693218683900999901376933262379826204082438868544257042724631448504028381313281190102293923389899994937731304242123784635612666253600589622627299974098988523157045851522607198704576491283985069135311520956808914956673584947125357763176501120936798543532158041326110275770530311572786929922797821400886738111673791306282240281354463286607645634247196301201723103246033239967364380209664562617661198160425695772353058947231497161399301789280070242956559665049261055187627754743818551274125209802848262898227554692845797717547636030763094582000231371376484357044657544598520137005775939472099351727076346922096392979201208482064192648172440374967726164747320977409409619554655455345031357671281193223438722673379340496993493428715567323268381220896596716138264788580760656724331715222726539949252543562860577517155464003810321081784464440529360158090821801130599454523193350845959931047922268509282892741647432840282865532040132187144045068810833628552850194115066359090065855072068042448519748087345764880760124919083686749882524909354146642943303228199628272007792373706878396326041393847336165367560546352400824327893726027221363788819569847964762352827964008632986944095072674188305034300111133164899411268837893335342743839237316042538157227131706019992595936595463627212538585919657158464997791255975479797706120710239871625771097563535766258031449479142679948328045759827725843083425793986016013183755892844449631967722805376199809467901012500663799473640448118555391560741657761689358557207135039344567782103542160425610815295202068565813666853832191427064208329306134496921174122399428476543350907788618549657424043177431830686524727197008702510173533668477787770262983851953712543057272603914751378727260723382315403262498280735844961874292374923534558273975871052995524166490244851561315169221306009802827659816832337704342595729702123119653989198431724672314126675106479778562663188416074270331193139275041530351607238181391243022723982632788458099221930684728056875325392578794262434812239665285116446351920909462474879142974621333830568170743774122789708866783982623046650652276564335138242959315430761248191796831484030846434665730220589547762158924195386417587541811194868030410705929073549435367717462784713469659395269556267889396845986243678894920444623885294950299379096575100141362440936859335221262732139446338738067692215333676684283055064473620864186046488628929091597454735622347505339203451020972805750709250682184775509318794883331248961244123255939521339508991001570160986488619387050375030471199874465803446905775167796520191948915641869946185092733472422256501360897580825985945276604610111412164537599025198006790618596177263970321589560236838294720987635025278167858471648895738293267210627443608727353619837723767539993191920232097150433828334990416914977623173044829143616944887578621655112350363091317282365081109770138242475163600048526580474756758807638970641523413242660825479436726375707154375060658851679052499356394425526301658025236302128799517254971256030602190288053657090806089399272074199583811796251902100403042930267732272711463444007431407602796000120501871676966860160438227540807439605237350563865694758613834329652612648067289535023084861429271466350252772972790062140585780482902469398468498477634626941055349339837407763418933485520641655562919563329893377093573983956670520940611366817422533774379623657768314078557145820926715228602032250232666813468247613613471076961034971570688074234768573712207272342691445145626479820296057181383039217782526894995696671387381737570499902793432108108230235309709644097315581917800401126290534291637640316390828445852849520677369557547004432517709641349264120453303132456156646677081566482398587748760314620300106200457918057506766866934374519216813519951854005222741278030712883079512208731382983464630595548606859205413529327376251015573159793605830425237783164546939363343673267393387592768230613959364628637283378836140083079056724429295957054974467344496825986065941981125555930279086126882579399145255831225451454365637335213552338557050468631136765744627168092449815199720588839256565362583628611006610924156272981470251017594710030009804365770407701261867071044236313741538957602597204753044360936612446324917009743057520071384980297291949275584603037350915376797944212554056427096481410790929619626378314568707471609050114704158292364277628603314238659220365058430262140516790783655132748304964546812510446441481207128046632353633834412128222387087120086029774978530504436604865233385635505617598184090576621783483076809303813158723452805963798326824712091704534509325161202149648219265585887977195464571838555233466591751282962506849178926743778812293993811464014250803628550570893559830419265178024523857825125085654676973166682785639532774654462940308697309170615103732780749497655114247262071730145864417517874593215706587907365084836655215596844251929352811600061010987701522093350183826204973521275360862184480344989737150343665039891332985864114700343576018984575443809931706371176896513029115115763647667322434539035453024014457492748767293053727791283495883420155789795089313776089648873074073568849628967193941564991317572207826742394097719647095984322769008023634924451446881481516149030529842940754794347006671012285804080071810089448613918557863956366567425791321521558429193142641219230269799209392870912511829524680960833815125293076269231532795465059950833570570168094585181323533928486939639338188635342188893826396870114960277477790594465142516654387617366489667223665496872139460356368775622327065346289358449481963137933659757662502165149256024253258910131367927426684976490061689052972397744181919625249177426288782078905006206746930739963305654600317318091183353116002038450332046270863655992516527209642242339322041841090400233088168497502114020086468190671705938589254585898062183199703594245654302558254618827776454698961438685024597725310250299935169201830602228228500240337342686249630718546925739726062867551664783573170591031308194689426824689189934357399152615543632376938650410647403641939833494781743318574306397595561074580611908958252678802134742933252145274365513180889467544892249332870596393905274165891862139015858388845391442963941278711208298085974678861415472413785192982191846715645347936962230354144618091236175769873309243769908255221381095655668116893995904470363370900864792939792752887482797489748899377497538641327567952256027932331566098386525845348993506579173746700161251529741537413787886625192557254454872113025364538012100414643937204507867902248576647567428904610929868379969262202654197749439300418596300881328450763399184704959287832690989592382655558240580623051108079529333666486551772886824234280904850037240392297067387621183755469323587531960486140140691036803175481301604276039763468418455682059622751352086402933973955684270074683626683528976834339296333687787636478376835769244962418734090859634310569394739475064455269723043486670117361581390158707279070634735513863467194948541158351104957313535591321736205427801267250555536390388782283763705439722570245344568010379736062469199843365807971591865922118810917111302110166776518179057075300959744709818574740440583046169022682922441303982806329831378609249617981844991576330021126031418442354821481009913559785269131781166718585282866157534949903467859492304668373059745138479986019750427669042128128908808259259361893657348683225340386057083918617373956602417115970636289437002071009034865425571165191792801346052469191165123365823635347288626759628884979554233764587593443690042405422272045311448475312466097660652335645310480753485859896265825269845900122348581971844866547797453230411407148330645659483466165197217408529477901488407090750083084515832881714955926307787490554264769767329990744954888195717524653929143372182815154415582312144644269527007350154693651750654590905163564532113847559611068529462676516576992862846563050801033054352724645867294464998235557078144531215503350197738055614599034779567680498836273999452267980397700772154961759833447719829712936151065845139749854454408855283783233577160972461262264255865508849954331766287026317269702249938222919597221441494263883000578740009135262053917196270988475903029191293048564811083513945973521068677765168712342161194411165262508974409696845350353866051002174524740607258471099304170395815584359812414683378019876166909823916613371016388891916276241568208720015243412150345174551657646098748799573425703833383740358882891717064709252471145052827464735585428217798522608055579421772093430338113098068742330693933059838392818811355320936504539319983632576101967191774548872914192788924586109367269622887641847481853634084220664247991069023921822477565258209138860889977249703807893420275360000124287300829385959655532568707826229650771106263215415215964208686297600530816407107167846174755075640607422689005008912176129370488807132664500055717449249542993718598190851144641164597737639939714016512084012552385574372287368915786886518246490970152469679688822090497330153696666069357644744796298857838878938378027782748489076865166366941406487533680656902423499913421243738926392695289431873348846342861466329134897779580029472938422281578314619576250827777175801525480550606585705675094799287355940653980285850134205427504627240600009815127932474434830494227976532832949043735685264916909899210629257704420102926761657558049719091080006739480436246599434644389834856943525568106804122137417169459513871553376051972143336549186440253856168452916257834670444235893087319560556122581397165603613432258090722704938297688558115961727442967437698528338906524633957110523443173179935867004811648520341224068354208931022624194551215510460909075556006071553715276722014903681146836662074229211952401575760537801759645238256116140167282629368781525870448506135641136902703766814797985154959876019374135688425558830897364127274104410538495128766195573109917956967416345973511713123350008545156565270248717168129419021530507555382940758618474509650650971090205043381567353255667194714754372096426111762299450204731129622096075703139526061791111136016715671761932946935877930612890180303152680201699317044865158228544340912647118026254682866487704567506072816293363647780646465311986669814390894283071221789318869158219621351117380556109959833203196530937014601102388682363378442122130805012994169873240833332690452229536752261695093931805049711727757596204092249726804341232083343047422816390555114935729184523364942517010735883689498438293538088227197125604156628635137804904005246482423743726332390340124579114118527138909353439623492514816894347944020992019979083554037435016733990152267061303562965159888690032719742229716315779223036062814562739536440186632374332577568343341885829591807301328625556215886484663845014076664257866662709233756161612617224773526723558562883663809818641813646464706666338262321673925024442129899397556246327997108693561495871071911818375507151473820850057124053242102508366676352866021748451174494191493802438045687790014979368864393693947745059055114645300706034987131735701096248049001412213016572171124493825774078925331236185798215562462522334351351071397573114341609938841130336503847386599425031473195773858351900796267397531412168472006207237999072678004733524089407837928528909030455150390781859772406431338988881653740638588644551230384106043336464260551584587637919072335482278473747271340003047209047771630205859870423492030541121628898451566920213127872822621929710988721906270321524235062033573889827298817256181092399565198044318544299450922558655441848618232681543649722330993428211229407546972388255572344687078428130255263538834091611752860289486015187469201760878949519300396122931247348040812632424652355715799795223994823687990505057941182383223151192041047286689622982468806420656386774788466779698514888392737430032514890586255614853702878675943693486735945460689191574926872349327213197295047858516376063030979105823096450462999863375312120269667988316414047112463157142853573790561231250683697911741235638257637594830201366868822407775895215488983667922630480938040723502740565278112492901751529657394055730752047283581017882685613583751562958377644612352953772637065386555333455772906161102307510942410346988825156121926241741907004536810895004692070917193470088453083521817181611669486578778227748717292036975681324333798713447991921693003284839658143490678385344354487076184714721794123982886400094801676796427411272863929320006035767615390785345797758472380746932266356200700612459593808963085155849845374661117864573992203204399215937561904991409718279328187796331228019691757442187537446734321442089833222307600620331306089104992011025038560669616587030766127123642689903651868871351061745135833214792545368762388302312608122716593124911766741117508683436913431783390221953209699693868240291786683265335907936191781245796873912770416758950436757948675699424132726061634072154373774209533628686918844457251378525231683731726973477265911149986611326776837039611419839128307802933304460292430940440822294134301838230982815585735618292562580126660775017477106698988940102391733709647560110416434953741661528368619962146096096359752918733572824429512943535976119129838804089633321755599985784044344414493272493014130350148625121314055004626549646681912791241453421163991540774519016313157636998358776945048568482303259269261444431866772075775440788484775136437856760236185811092761083685823227790420157608763303265212509766791321001156779394092757636181521457922762140674868735602270436593872196790697473382146970437376982593029669838826422430946360916995512953279205283775315560298373292405314274972079035960783765046180484270847807393814592673517273701358941405623515322890570466775424842965123488746199789676913218021020226813038359194439129200607687495287435370655367163347567796581918342147198300613153801436669856236617457742031947341009233249939893955880193659257902290582613833046271079212673723945965700175029413876460596394680467835151354442233157455320097220845800074544657836537295370059925775365886902750452601200899171661054630029167710733568145193791113422566089686185145627902187578455538191815649668451650851742492778036503086847567969306450749172675902822926050566838693721192417738658402849372783761415017513423180918695498596216067463052992006122760248446879557257232380137387997479984563709733832159344295143861460496066441788760014704035454877811369563096872104050967023826815430657507326245197004043247173138512017703475605810304897759101875297681019796900177002301148433770526658887572528088825145432066355083012223109657634665163660554902090948487074081709130365328766547342479757166310230915749394275466719168430840337442822565389826676622629734989547420284783855845292646660723260894472046418245231142880687502121048887163551722803791960411967042860783902989821575358890009105564111863464587473020778083852895578551917134027057941988542222073049802420337946274736268047076348567833859510951632681016009644042241562271287231339814974655814390041285479378964262088050926951036632369069540363982064852950608809181461508060120906475576817751954298144431514952104556842500788449833804386236967151586761919100692316329143802184684165714625387399488841705181189429360240402068161970689684940077351512547691367498162333116601014064168736955810532353293874663925057340232494993459044544221527697402707357990526262551045449931932337732929848624329661654576927331783667438144866897376924374902702549441496434548269626098764980540650946265583277311310786816096385645209899847315391752778255528329782187158685673488372370105830137891049710478289186837814681334750245218654691837722826054995880961503079808996882273248510122170089887370032412748130425845467994536850789005273398533607189500666544892673889573877061629329489095990245154830070676322145456569802280657089445763635889611509962622816339317163176673636383033227448794604697211825267930298011877494243562829643920930678822743299759086980257225241416569378760904611948129060406057042569806309684448739809985668420383504266634413777153318909024977500861346331585016902432196971483560513048092485156096297917597901276729606511752389221132275928373141600421254588807280712966599550953053648939131726942569854914766712690448293435264388822966003700032790507113581939642945515964341396000521702380764045867481188043258518704403816767867230188634600224301177320442042335118744858181087618052531184434198012928916748792925113538523794614707140906135552956746372137732054473015348371402112270480696634743618432858791913113496953959819476350605138883789016349087309148541015349943450708567348115579919976119332366777349864853109093862264208417331798206673601429067085635602123632028199193046809212194648027160339069610211562493345104165371548050421148789069010410747325193715584072842180225810524970738274169212835082590284701528041721266762795070342916327508963186540075235027987151733535256511261360563435380768533379340785659820047468242008782631577506076630572016555782396225301274759452848301605615628223944433842026818179733028465803652290916056841254357740109919608754004615126094847085042116411462089668055456498690770150126526644604522884855225461142419929531226501549918384303922963332545513843638668299636126442784162024735083729088496434720310825269377210071390993397795375194804341701640630772693183487197668272216869397088309419355820633007587640734183825251055711352238452243343414826038496648352334031532872565043018363232327564707157314803789075467106369999154300370581778047978756662708211344601943355358102106265016877854813811258017925770050808530400411312222501848583343158299927261155502086285114188414242801958063135844773839728962911283534834735353423678865754364209324427772488205982954303306711717640717116315929536467014137860557851789424593166501175138372991530610891528991413795189401895567224334441868656661022898570888901041772994244479320767936601413974944785826325412351979937159734755823124832168892057479162390381780436529068703018492152970494184045027409200185398666761739610114634261877413106898390482004111790855211709225202326408614881904980976628616206469162284984788637536911381393350973014862472499723931519527368571489067605290672179955407154241816826053314862332328989958316255701769147881998737070267451236587251152671810465721575048209651079645635448329297026658773831147126356556207802555317310250113599063717184624068571425497846116704102264225298818134781599040766035174348752887351204535620609703482137409370683413097385119615520287215534729108819353562103315689332131876559531397909873280933829300935615312650720127722584577579800820052684708289138189884686587465451869951968825124780705043082788123335839444612498825641735776018665614300499194913032716632346734592065594188701115251506544024186385882411811295413318543693819655665923700125711537876286738058171763884241223464404157639604273821623667957015957473721092495594798375980422256876991360967265587711460602298730005838694154605154804822054461007318689928603339095202193494896045747222959962337619866720814931331832971078525469592386472395327083101947972395033466437188443035067443270677643637221678230912514629664459659668119472429024804518211349856879511312192627071415222057980948895557393063393725168354697010857143809873590150504579136741796551869801041219356425804543454055618226796004206164640786266606007981598929198818902006082384278345058026019223449555137749234445668822884166878344433622391959569191957043550620086097953401503911490764086355046141305850832729579965608179126527163023380766735290862987669072144933709590719042712467419674481828120063092096168980241840230188516662505948964030879222729714308174643060157058820949013346636939880409419983532277641606416778418992810869765197676371947757901062408680620011310817384588328844191005368306706532259696727953875017021611131769349147355512032317083258890288186223329629921181170098371430572796519339328866119720347317327879938489013057068490832445206151029080567876281753494402216658225545499536706536311807986405459463560967573447893297946202896700278961147417116041876218744320817734544557528098961275894381336877347419985871388487098758860971425129818724274359431722603805247648569684213802454096312427433813375101380146379361449358285583973258533713557093301867546771300320084668898744783480704997090563836191774151839553210435656227275130612291283279852441052981796259725930140112012367054109244405326331763073779546160632265548991719378497886479496360530714374763281225016610737035464200296478934100383489870656689955571534007411305156970064941505245024250421454964745478866924734682286166759194238694003310672276632089685360901533678739802632905753863302237875479548858386522340835364720242365265003754584099092823280389311666438042961149458909039737244851705042936238174031482831100818005055363977193868141706273339845936250037946342463731280712440723125326395658443078262515572697723699239390267261523750552387216528747890841776374279324819233012336571267260072867527955469941873778624379919436035453884384377701395346546573530346657807272773199221613433219391326093624746466053515084420220513523818603787423348772322730971614048834455753229785664947009301335038638594709566117182581484416858880357767509572771199593120604435955999668606720700175174596317008539860898324979363813149228575432069242581131880342383896683184685320123493415271616415099455159772882837898161302988955531871275078731543888573678296730642042374272033122982423070311699624451007204605573327999428340609208184990180238612807468670410490443976148423293095212720867620773137130210228028057531416409777346090150177434263186857611246756322571954395986525227892873532863455224354958332942261164589296953822420398201659136956342316211393091799471622045016618476336905517688678715720956356299212083939319578853856304740054185119201632088411502059459985082615897320422375514211546782414339208447662361650795211687444774463682114864610511681857739396729792915300745939318979405884295479882657364800546994089356843570796558516558159012572289741678965107659456217662994508756683090061744104191966122487106275599256141597891484516786842485349953313706682138422895584694878398042673557684722512438919824667168484200512722582912386521617262601657482196231714643641877038679479499215766854356703355509764944115369935944772045281133516648157866692279784742032667133656036847099572506503367011592054040743892228114525778621876359547469353817505938322351050367921323873054406050111083061522235738031217008113022223823472179300707661294533119792244496992984573784214439204627074988570540972655848915657948285796698011546519793461941506308540543994223348500900390031528462546948270374162462637209369093644053847399791635239060526190665410873905566671880087765252621842891284987319903235585150931694928335597601377445523088728914740935700430527809661463193668436900033612195335589894253298470339207526713017121440012579272937732372313809924643057395985124100672320401396401414666853048107187780363610007511803375227271275936223030449675838099153942175276792199713791010728263503447021113871000397787990990003462035129552140146009611012748957312000089125833926958193756466332415581626574814585425319805103531300848254327698386458750121038966104414650170416343953698143017676731570647026417057061965235833066956726598561726532038613850500198138386308244282286353340645888899938008295440334544660138604776826404730276123680407125109813000188346082608512392118932261460482851038437447071046093239104906437731770569747389766147702995122555262873454523743699696854114848937378403546440652488720724428738246987670369520976635833026448250583236770997733848404066683011944583600494956621869488688720847672887725748493845620452680649036682181668050602992060526189623973063715374993554622428634136751452572883612683418807375199032913758152776343610242524303894877909012649958129559557113902492845247162799514479687740551506974145876784275858462180117141033943818578304822396328884485446051692725902256665451281807310011338311530204398801589733413708675846412346084378828416292149134261075955352577772759020620606916900009024301086642238731198488509254156714217263737970563521873174809567885091012995943034422005074632503170704624071617596716963925215986585935243835804784407908116382343320938933960549905917464710867732562805700879590020071970020408422194340205189197557279543091959015369900252110706674502980317272341938004241729511613374116811759192737813604436864000161509084041431406257008441345605386736844040391462040845067500042953651210535503778875435946472522015920759542804147468993422958123723008889892950703350644598493552076684884905836309069790391135793223760641218242355276464736186389502279684133496715340186974550672506931210548891776501483876718078743367282572474390077593584725958767437561384763763144862515891305707619226169706577362594687076898106879396650494372869560960657502007502954956282329952848560883497836200289496488081059743036512162367408301036937166492924023968783051211185480154405575475266704435214229963392392553571229892211621281980970367500011768998558221866691314029845206109953808553770002588460155200498849568743479672331367158648140975636766816986511155535375300383447554808634779927925775446004833450862734743834959098060314051189035084075278557570133607523027073891711218471638066605992685578120640184297444008300997749106683337421080910485017999001464127005948811653392547108704416369769630310779068510790511750524029177519565126108606498210865104495849385680338781470156043093469702275920215160479150789614136187442952776156246824053096699964720806074123276878426772374015503342937532867912325890348367741258683399955080907246664073955604975602147826899360633883682709179982644068670985960153113869938423530380266155359033345830325109210042557468960616465300589599709329294233023954239297177998590549362939233708873054054797077210874460239481143493295010996690592195949817053276294128075112339354948807526133056467011057956626129925932533884285829908719248481433545941453306770533316897641240714020662771006233360959743798392556157044128122327198671468406889044988720469504825411250542054688228115023184315656372474643138601226548941184979029076407947700759858171151547228342959888483828127114908074613454649720694015267088072866706685882935676368373461806693633393740666819640892273073870347935367328350345624760041017376065097810236500763581368785845556019233300985943641510495423400915680986457568625840853519903638843421939220691320509154922839601886563673948011321502701431244669348062714175664251308251721848257756139570527467747661558085980102042510773424955329668200221376817048752168677516136030765592777607262269129376280505634500959217720460648261407448279818749053465965751954887752106610180935707784065856012765503906640554295178577585269582125655704347567538904114186561887569422900346932718801863071088062574283728456179929512541931444387582753691177981084387518112628253320862693388979120242971058843378707822657875708376299004943094534380436615037409569620234125933683624412377796178968324570755526739076679647382494892545475819087925165574480636073487791407508580779287140659672766128043752180880068561879569525307938454811403094090035210079586555259925674302073521898997836211320945126217727539583205448116626337540854342896651490291355818664511425374730428420998136978232593914997031155630373785344676547060131754240433884475319395025376482276940081822271573491391902400231703510168287940951062508126908529030340617535414175475169401695326447433458070303131239633497439369113758437894884496057615366457529284202751738353214532866213941898767690208274450083094958703056326620388748257132310846524899911259801985463948479778861294054420380092988087086617282331312164150202948488958364381965103664409700468785810163717442970698880283836596017294134326928496445421183080276270818145500769405715846555293662549337317183402505979737299860550087962341622388793200667149454947967527809934345617540329780994774336683484337600592797026830314712282949614680804493065389343107918195503823205739478387520836629093546676627274040214283811392593726553460391810294461873796732263610925425301366704415388242305526882467457458808552251761766335569331371867946430919761388453084682409944964188041943868110728399565628480691979680975769855401360281930851132415284336823562088222805690789004085967738042612036282105948120839439807849423930274890028179795655057419302774632293935320539477238072643209752463720607038625661785862011859970613889354737942727161783835727006573124393157093626744313057412699503329795998574696652049335115159201172711771126927215211437008353817396622750955928677954398523015344115107948452044383629401694580320438337159407861711981101523413567984319623602958333961245119203344948346998436928750973213406961460970254599200718762255134236226931718664904492512502026120111509461172499320703109708590210887532653566219671033543395573955979078184931464310817157703450378899654026422832510018464276235865049362850885601920524530319709457740354487746799055451074811747825101261202564105219436746595367433870284457862132525074139621031020614592440258171621861299242554805776525820792964109156926758209405414136394312839087547856162039553778360589817906670378247600105286829025776657517545505005994685283769691800442000519567791787690896805545977195804397606953356433592760897179104985227603932206016708323586796918034678761583135392654186831967889068586750061721599219687236087450455973807022846364513117238461957191845687468188719446508882608678764047577705275876425266457432967035193215250061568332210034377436051339103399509095871062081242890602768380709213992314324176979188964713695900478670833392976032595919220936894859783420410407878294363242322912904462370880922112847228969042723239911961820731931844990749137251917379859332465793140135837207763679476001842510607383787860613566876000556120693440339016831207680705226869783428165596803924018246404342810170724650224196633576373849673856310692737331026268351076591572556683748297831097387784464555381029741272900418057828051207878748806621672363708340940544440919174986745586943216569831062400183894877870436301914215515275863361268181544946863813927764738198330444268832466525856915665875976996217325224553157169618474569018889497444776291911295342197010019689815879828405238771417349929984652774907161903979692590581573729241352314486992732213826397698336682601897494346495748089439794268081040226081737554282482749187281430839420906124529936706119634972261469093007306017983450407147670088097171815907712403398896694589660337583893277762533212818509337091503726650674062707544382183212598691161071796729429711865840867665305700603930591953436233680666531995076771202160051270610322883844803267524016332085137467469993293562509135830717187714897496928937138274154265815736568612094919330965357183853858032569458303032697309470776150411017259707117226961283437818532157373839005331328451023975337848133838247729863019232315601452888203434158186341311635992672444208890180759024963225205491789754640181627180774673171326748161582831475248566561415209686243252724376653938003324820595954955172072887373570137218340210785952040864589242810684805780927921413027471692875320692538360039430420543015017063999224972580023533480090821216896989155800757909092780533249375921809809672472896148278109489752727671598265524978345407901700165430991408373829791707018968883391052442539772870397507174802833146590389402707873382933976837331524751436347146023653804969457350318930935113439439652998515064124518849317922127486073124975371680595937856782415516868070283681491326367340732290952755287148111951110095188638658639828058810498118567239566547801066055962026842814026779502604931252473082276367165363370462195530559972989074541542648897204608033065834924941900826222327925739971589028922331124716453690125175167057530041055945817393349557556194362953231894593661469396667292583659070647389426413614715388762931245219340029826568761218671764359256697466219217549466216125598651948237189462808725749163511893761584769158123111220904446481772343511239818582814057246427557190495976301426038222682629179563265930360718559694195895831024164245609103193519384753648228209007418167339899086819988624449858778730001302794222839111838094140769314802448287930583646188129695344263975342912518770411877154088067210617629941035784004863304723572574697564868617398618995999440680143806937846333740832626355569195232916993460712464877013377663585026209111376217212822298559195857329384644541263559223054153901755796078549222144785648271155722071299415826956390757101764353731314796436864212132928331004003278428901951107123821888877824460368725596379443074228812938038772851786975212386559520140876599577856134550086683259128927849159445584126036636744962761878213904603969716308497032802552940485299171497083546547926688387155445044363316943387416294399600258362232054998393754080567646237874632524830282772773598866259257896653860902012333346974609955201862891528420130649385308949557015661032308250098014692677346259716314294362808270731643785395661772352450642645003830847759208017367536913877966886363126250874232541833594457038218887484157918640190866683686030404807374883470850910896036121740731869568749235570734930731541780035177964288192654448274288542597209299969526074339277074033989243133006115673293679466277499672751447838540129736332965509131846281486222461156077697921071629572419884829522193408205893426470235522567926560459972937281696273836297604847175359467941166894198794669670937499868126484648102179367933437253397235100922364483095370908140357575442677007179388849452891580284866618890582512997533325080448616074536921296813091250000249598649817085116800684632826406159465299359179230233264402063760116012498644555460984698672153746556409261110069057492537425205029771117262979042700061991160871418127386297623643053883684701745423612344706595494944792916488953041883570941553068458101547564888879066338170973889852894179368835455101279411670285378342912886980731779767287648612225207617639537213892373715237790642020001994237291892079487888029208145017613374455316171358766579323811924579198128317389303404604630798721899735201282776643847941839842658088221898090317952258511624699679791957010627426290276780897568182893178687540733349201922389271079717063472104023571607078953896402785457550844809271180282021265786773426026239631569351417713048145727477377669389583467792295613953773192945335846751944085719610391789975927120036798826179718564782396834267701350939865698394872736477918172642682826027503210649614141142615128312436124109452025198292083070973487469011403277980722714613993092060001220499455077286825645249927108781843765137592118401787868223458011905191960321728669133151705590413259117308287216450394250448628420745045278055843768692352965714696246738378440451597328732595668582898810351949972867297675637236434473802717597838516099686790037658160222884504283057667653819013804163338629620017678743160084525956174046254676354310790056066537066473704063371056643184382636992932568582835795379413906314200803455203188996208928389602287131875390813773150298566904327222794288502407015281669550513612838082454531890319414155480229555520492420017999119719885950462800849953141382800467726125250018157698537654327907621376968807425095034310878625097511746382651047090097822349266582929765518833769555014001396662410590991403221203707827830055627033252220915929139614622763198261784637122726182312655619572225089772976777194912913902691159776362461377695179451380183574205495961352704475888932701014108573463281472871792268525200167395595263501163587485732044672016846560903438086772033365284480534766396064072608387857026150831608650050878917109068262162945779838896046394367652800124795124057700743781672610514341198431654332008144524523414481029716190116080156808060792321060848835824474231246407411998322597718623416279079012932377823777396501601681003206057149849157134715831646229459521126425378728737976629403940353117085737648099300607414239778253211166482484293366712508715314617989891170865680316114060791159797197384173029835254318714016203273716115796557842830559877926747926345764182408812017777287469299091335684525123019612736017795071233049065475235205433413530324276319400511270646238629530043107780361858163130835583342819604298196322593252693874614635858498747149540851017825894545872350780272784632191624443891347099896497799954458278872461229754828757414474280109061597584392671537433619768904623142024019847803473451730836102710134631938293783055375174322803110185257447568774091637628730206555099329788718969266073653192993758494400179642541575715089829681947775195438874282403996198077947445334658302641933093798533876345447702325138628972653657134020305627634256474871493156947616917615383203586972179720814427735816877721992951060426434419706083615899932156217928469502695946304455553083436282579563771311163185400769344704861306658144037400091123393360588442313035722146742826451195196346875266112344488690877636498426569734807132311228119873897849225927890053601582459437629163752645073575383860536655088937783619313516830075688605116273045350914794642550078789445480615455858402241566241285531027539014935742373768919071714719709937382627170693340875962914274898806053264336201939803449676341509992291360887068533362203282473500538637006511042586739945950173459748689048498368362907270184347080706240378894483718333232811917613459853252316558495253879665044276762322255304812720571730935442848896100135316073948741538593911708096206155318503365387414380507053421128887547356695099110454648655581750158578933558473378011398345908013597414613125470293223411116374306156611787998737749360229857797378233254886467938501162263257385711569658140443245676500777879666120111279950447832713243002359577038887038906281284187921064842050677085047747096796260698585566635128098518600581150130458439691226955864888233225925887911288599747637305127732684707410233967525523308295177284526652332924582876488750665875034117506316709276374452209977947209997474265636951518687238673838269852144825922768682710560965607592223366852577944862066734171398670951855150905044544809481857851641358435169520542890713734143050477692711353876144801935081437117006600491279599278005175908747853565788975568221813127863174643922054576434118316036419336840626790147264850965503652498288504984874694537547660915221488372116603147787409869210263717072811556381276227658620570430711307764360982836276879345546532137986206137867189815967764260565748750924522756323801730005091298463265112581150296208484444815798326333697541031630837174191926234245106621944994676162038041726399010335038076747781539427990546904932602688575732766830202397611093920366746293884084584576453553714929016064117319914079134431876595763483057949259777815619039984046199069809612603156890963975787875844085729257688954532922952416459187882950177962365763997014029639254834793697904905210437120514195548667014329261476583637175180546065057872468652688569159437013509779614998742428630779177563789813822623895987343085091610222138250620790735746380840896270567630898849466014002450383518805575870729272207397327092279365036375305439952061256476888467038346532437055700682341123533320036954539622011913739229415851566393752700916252374288918575530693546820087404391993596478657676841913922441134656839657916820802487656733076274231523130621222879549568065643513079915841458143180946492937082910303480843727310336923495422802618204759811671272136889267822201533612180961447360256917642731616833669016718806634882435029255650099242804571534102685945139324421105707825322083411722581481703288283072488860767391912745435989406441976275713469734235276066405440554927676237136775609945198102584140572177056255743102563266674368355071310545768518909809838215476309293808996502614928409942261955530741871460402043278390404897576831664622375654955285613039998564166608225232142063288364831088190256804273331547892541869140247245523978643547155253469961585044400612546123212029702540000916919089673573353945970296323110082366847540442780591029295953667108363224665673669893422214598414506778718842284414768457226370670301021714918789049859822795312557054847344136705028152053895619292238165191768164191979729298103199100103344237816410121434307059440371727577579366306504140872868274518564637023919921305896165569682061303290291926130736315313211980219184654185008876493323672005533017985221163923750579396773315666096663024910969019454410539311354060571826675590163883787836362818129811969113475423998082231024407197558645489492440809789136257062041197519796420553107456761717617422740473852016197533724419559397098619034520687360937578370699909732703168627615335299739391826147501239935035151192427662040988421395753962792184611357587182981008669967308496522810703732200427024906961099810094849780189923638059193404477211823016835086129175678369726467127887881767708054461720291991253734654766532200562996396325900412863260345382424335052764191839167310310851630130433898417527831181619415928307264192036785340251179739227418420051593071721398667385803384665308070935075899250767826850386188382216555382778725189855968607443861945483774893882114128880529974443763482046441386930686488561819138361226441138931893472882433900133411712097903597873195235701074865438522977134628280337687199134341043331965997723891512543092572041221013989619127154174479780667591854668787513157706702827036750753332198705711751422287983525121822337739954335429235723438592534965490290530710663395577398789595743434285103727659634445243156645481586235583810132092064606267692596601517957962926608767014263738356903847711401896612864440689290924802348195127041058499835964700723252145850645772273352456417086605202777908908307897973066234591771052741660597029515900947371205149337158903187971114753434803181275844346058998387487866303764705251866998660883906092837709825111514375187324537348776115980783194159311086624453063569035379155601805644441442952185574691594237693825743820426645110323790213674483614941859492862665550607082772134378507791086365883013945277328236951283129157597671910841069076391372388037985203728947274202140095151347035738998534092207366336653056616797764127703228719174351908280474141793184330551899521553591520389180176752612927733590289897993388701267158934392762584738580050491357694781869119907385185870782971112808571521409218150878166951240757166749021636731997010379845130785880659001428416754672178673804754868647548144572570930444095853567784926891842487201100827992782710842230440307922438053871109372069732975938246699949499324821568032781237599724023077639067367144150508018144354611075814611024261642841674076433931849829850073948905826701591880229197234405404448430111875422726185835523702276951303508840301070359537186148424671829680995172802681534571349939201659398814365725603462787866304638747871496735607722443147042953590858588970582249790710728425495540614042098519659219264054722676274562025442352668937311106208046851361192714225291925096547496003697509324628407463836525967392055009650092745540538532254754517523679233945892949666563900867848733135762825236409483412690189131424043514479016862510946930867389064230075691994725065685903045619318344336916759183747978137659601462097079694496520267523307836246157145731566540119066159558592183684379072172053287707235341373313794851192415338012502474579090287986449064198010182460401176693244598223207198429448859264114728101615547375140543345318885725843090830764506067095570220953682917170775975952687752595309913605607158471712057159960329563813253666592075882153583528467544658128457299263650897299197535116711904069956985888391113995681165821844226650456257036829124957148525701961432331770733319064355672052742607191782713890879555566492105975746782565193828359482579884784998149682773593779280254293108233754907636507311097733233452119650533769018124034537644387301023575741975234676634769145632125167845258314602073485384811634144135138990875036664590507677320848124671566109931065548588460879927409797260003757372577039488405747277256088511240568979290174274355656971531294291978511513933308856235057336543993838662443238898940271247616846616280821017463682306558579313948125560280360372043951147223541463244909408235700131590430429994052244573926419962061059448180531165791090700464398727808809648967241656105212559523588174952007916065817315014382767583315454372072684883883410416812761092150103353106556506742990961700620124319376996249422079578705706346730441520444026397105968488872530643873520532599796139812306990746271333442625035994336625490097924547393258949269224657339673958696906882908440498228047163740376955584614278237299693429213691496468163604836256677558789259978869561024141410749311221765453339529297036998905256568411187933664480290393235567210316217616154894402912755642586840851625202748767001676855521186785709812320884661938151202882488027432426536251410373934235045512585909215102523213413412918125634856439277414301186011691351706123206622044184542958524656827678837765676758472809030342533475754013903391447135860571722664011738250394864505892097812618336944084869750007415449134051400732588097534176311356418749318576068571631288704051121310983686376959280483873388726748730693317345010099358188166099396600585197984951079676181208505788290736220121286705749174101190728778047990537210696278665555327895990526919714822711314297439008282475316082057967667714252162141814806618892873458696513181492572626058075462850134125766294246748599895859766875444154483435190184031721966505438094400740008356565773729489380548044363274859554990953848562260175364942928565592752813775211958895396220951745376399920349223139830905941597593815678300427979305359471116951026085170562832393555112268239820811901641809273318767958153268440810995390402162803165446264187801847435848367883733678489430100329104869886332418160544231428906326715857536317685211736109536987991914186520994278769986010077327136254774750652211114433796092026704203055780918286406257759396590034711852358300312291867825863322408440903217929586483772444327163835748175150056414902394903694812173293361174642011063169023311347440414809696669102728802481969260057537125448644421580238723151917773469583891001768400506101315253431035672248150170283862532097838546104524154405295098346063560883900353233752317323774818094268999385233238070866923395325529641913679229408235142398706151276499488191081849186360924951433123784139887206486984969199376921114640478248968498179273776137068226178304011074764867245502061840173180960222758157812726956322262458135491671475285781422190804184646390686637497875380181588556571412660804449170041853033735613158285057442577010911223973850252147257902424124282335742769267207494843908728289064964655339257877630548166601129057520838309785514952848212210692535197724323750968009835707215362723077375812341847734921095310637233270550935623716420621021128384760052905162148993632347563660329883918854613174007371579015486861900920163045838760597509525263585276872752398055060534689610698478668600560506880747671234799359219177581183612911175477695389697299668011114865628625636941422204276714432887005116780929153937834999067091522756025181973743997027666738451667206602965988111669355414796066328765028439840988918421440107102366305437543888049486839075412288167273214755546084077932928389246547271913172939266296580272215234621110835649890563441320645502190582246743526324384864384042066927274905382884604071046146996632926135101438182439916999227523796859704922811236860960716825887664255207840484820763022482135953320099848979756267966998550409615426258517105172951511910866319307710946504732497170104062489700156595738279187398782800225173818052935419628662713249820584288747831205684869319639678933504902762450013520265298562831446074719597875227429182148811178218149315189349602578945618258103530876510450642068376382236398927970054539478685612867928142688000473872636776664995519326066040617471692610315178117641865171839096851266050440719935317598184765321171160707864945262869563768518673203371384971463257339693817435236814023765256571476408002584583531639919399041088057249582422082396180843177664947433304497211735140233495198242975834668600192983825416949885651116122363238400201673960016098638311472091637269521005832533621532001868722795434321846972727929591295082802989916167717606262128386108033093004154502140368566163024438256395504542611393123445600701847043848740735202156420071935212468769078758568328438249915775181993908283947860049927089432583820483397128581397073599433206110976642159552945468270986122192957906016913974779497753370185945371425158850672064770762552202361472018416325041081512454102172068480129196647302926539508602064479268801192921179780325799195968700140858311033380663111873399836939061262599342662217049118245928231269746981668162082484261986245982220586771708322640489346413922908541742934395958684833671199666022078543222473485462937553864184145571719433190490027713617849045278319184313504079029455616741661709590989650856591454113088017925750139115249567632654561129942236584707680669078911374886002284747088652354144819766040401360300942938897794091603936964262666002067291323294447505268644475710358817296658469159709737202205673645452094108535182187100777926218483420891762434391224668554968560014997174929699693882276531667485329853263060511687398999461945117816946866828720509867680578449327349125121563827264822701138626053896358149886455162448865599561364116680663592170017266758707128286613132556565824870433710846057044319095145102355712241963076944504027758489236738639574654809853981536255535175009290075893236996893591379588520714420551716906932452282871312016381595137258068315815233867874097058825659892866463386118713545462770397586811068574655984535566362371161717843904870562970067702595699353665856650758901685031028647965059875026471396032309440838743480244178268368283996636450103614111780004264762666881054627939989460620456702472208348469483098259392473920455053993379068490038198493328996328117560103497992861771490139255016167207124473548881052271482706338213444053945685180920197379322769595593593667257944344086430435160670878369039254833692669919107524848930023950291733963727260107258225138315589574322834636349196559022191049921221887571787297199790468742463011608864373602774221745626286968411560947507859391957599638018338073539804019766171871925100788651188232453646103383115726530476414636098595869849638685586094565356950415873542318206722572405103755573981847712353784823219512434244094914685782700700137762220272030878123528984477377125131361388144042626575441411844755082268753525447217752312656102492869184387591561152686757507855029932927382160637864395839997353305823713463039882252356916206964522278046948761231758942401169336163267310759256174061651705127845708921693069849366623944150136496960511122397143195644553439672835414220453499023575137187258153459539777336301231848481234684040227324774070784960640833994713840926805989009589356699754195104937592302714222722653034835911395359403701355637690244023210400711308551700684232222210401045561089450209812564721908945727220219554043113663748962795516672176841708365197644247639756110814320202606504409070069583611065884768598901099661561604761779958407554956003221445232968751815102826505185183230309399619777117145152568876050384790528344520286260042672278084722126606606041777209729500213219210952542895793452613036089328211391579187620837622915107749069670368895994166959042782792261017451760462142823160571681621923992453614922154084798126876419042911521667759129280576655495601502416962148494688084903745139831299726901021466187000472016045395481676831612025822941318826050366604155832113464234394260686196142986630371774799708006996242440756342159806368414565142033331707117452763050311145694378862350144665412543610184007610986976441662295666623387948316953972643694339385339648832112403457149026764316420175735526020059183907881047749552940383975838506253561567313295671044718960780080534274733765006082101762829751910807380708456242679693364240453460964606401806834604549885401331096849820740835060518130120402421259115165422714452669989956284557224134514850773700393142981288547304303853546583679242346414999477168854858013462825369055136583878291170175253489226692301814448596751579310582637176608916934767878909178366895427150093914339427929868684907292934893888692965058812663764396394831481476567594811377556700575695762999690639304561461774141902702860430230391692807551672047559299092233681599211782502556547380575566080360387980933885538253893846296546118153185897792213873509123698736992598738679618396892619368224006577962300730744281226185695052141303571551291583163813305737948886827440137193791366512890929978534719496602550020098438216141985524762443424324336676556010707840937038262613691283513080368548201955509588643543150082922871040480393590532582892652099943247868265933013455971439700541159435182339707815971364696231408442398424791558397607105241463230802059422318528375746511938626774085892256522832171437393953260394370621817599708071069223147150820065191148333403740172203222085843887041508741328073552792047593892505434251757093074267107753155494740863640671006912368988339146802661569813112264279935717584413018537392299282416759988850055788580860713806912942230765948545891691110920027807425786509452230740212253828774950912272004859293766769223041002896653051879286011342555864958473516685020980461088114965077941073892283265543332361506565995572119011644176193660609436802640918145004895054882814058195010709645101619691708436855316233414869798425881533029278081334197023196084648619487336785795309298947326165957885183409605530554497921876145948149083953295361164933020593325311808552291052496818047819494747092538488127404706424577369462058447530493520634662336190798721005018033909337647453457619913201091045727066492536986019385015400106894299875108421566567531817671860407822736822811848598138080811379310218221189379740446912311611878774576275705370705912484435000132155319701914921872148122211316210107819956182564859033240110875880618928202351307391418930266173816744884319449589028426940540591265487205686086865829879098250178004688661675597112323899017385291724614535711203005015227726719451242527057157331526215209750205102212353080992830128290172262307987940945203897540601351535976175239360339560887513790866513923387024251214327059159524441082847467508426032214636742485109859827594692430098527435776958116387270595293887526294661925477928900154503311999461867484314528041863949262291703385197696722251497922509537960278556996378919822585131453757107406175218484380786166880738496599579499005876575842658495159870105937486492808150326160381815640827826842552873087336141424865109257784862431226276260360503647362852504476233642057788551396473242116554833670595766178215807632994014238855042153036841817034625579830081576913207163396717615497922668279185469675772577500651656109038540936638925070160392962413291095871262464934326598439222253268344631163631334291513228489531047263841799334718823545168285828223191164915430714081631155309388240776939998085111606093700905483871074955655586780832153840877981760100984807459173480502778172158661162990569808435353852525286089041066789213562268578283003034144545634649453836404686449841084476292790026849880241568416208965571276407532508277914841514837647272354615500443990394745204695735874212369512481337185452635369731773632467699205270465893031875385154508543082784491827248319120856575638455782783899902845802536848711430406528726964097266668248334551116258429402249386249536717062678608924231458078272435447642336280204083817018511595919389670869775782601930152677858541945635304821169538258981302312560572236118243253794871004390317106604787676049689375475073322352040439945291654658149794522450205383128073207169946918007321779472934755626394137361046319137040501634981006190625106454875803126979047436914024535362652722985625043251562557738681403893203342837984189865068716391750007775801735662673852050150580249279582189210383916446044057410557244704435990931111291767839775643061942809493922520655358797529065242430406135975420030851260541263144383646320175850808316603470493195756763837641634618842947019360538874088711744118238020911931914068951920028603436784958032482146471860768758171227644000203481538252056798484945020369611804779901220433165630486342014820468336702970721910857853005543167492011431938158852359332099270932281567295329526536276462430219676750493510206260562003662016077059286095908045644120937565249699250598747157575729093864163274834102541018896946790077897468442624128418872488762136630971359878266494966202633508619216121543909188491007566571615128513058240821916210543155561852783208403891707494577329132222721657042277977434317177125658288887365053817420046406945691271713546773817815061839997970427881517894917773451591056586679681892586199289238103763442870618096722886033074263019934654978970851637157259066009822004697764616894528397591630434603711241347249336120474852825344186071104812189528614142367940376364934411499093814855259034438555157398743518740631658260372237191112651310758760826252365799675277453368421589112390210151740593451690553283278734368197863733994802077053002031501200795182569558597820915025070236174383790234416214698397255946792025888859435914025178875203094672036762759288515216523737276359607177282914173228116668101631054537229701777166412768583959255246673068873735394684454146318342568948491115362251117034052485938624574015645588049548075465854320420672845525882793455700096165069738044148613261587048108696832309906501278626672753188647347244472200931984645844953229317542191879597497039818986606548104983017007901037979874324945361047574374367509771704364275351282638689947389313094124956717612612613466768600370272477932453459608193303911792905126111977449977756719780687882222313447081577345153914170173806210774095156331836896148628239139637020997136858136412452763737682811875147948083288992409848630958904075233740805303451471525995512731267917688191581712467671229263050325240137570671667354523504159025635449531284103807312410022794591298997881376907403160272254217059613740180110734399597041421820044458501202068125982742383441100863879863114994229357075922768993374544168644466716959004992830025345858718867083245607333390720426168111178116985882353470079761812109694690111626109906336403469545197177410246623759701214600653460094144123441095014484131486562114977397460316713387213524488071253426852850663068481401528785492174302950861280026689414971304667702958929992219317992193336687999786225888691054138627754953776052777429775402559139664987401982904148439346360636491985214153925585280974597574708426945035330636572683800365115657520997916255726867475633640483333574771203720721842378377591270670970725982912876839138753739826607455584397046696693977185176207524890210705054644784080362741044276612859089676560402664740206014285161119607317254382270668583539592974231742880610875564135013496532165249279678441214854127463629287097514347967236868145469702231724218115569975230535798085277777406336481686639399067700155870140072624257642685306464914446034805755836900647673834641161713337899230413601715991511604318455757055142827256136976806808800800507888828736627283061524363151104045904951481933050202826886996768237349770029941239227728313739222362444708100225620254491149832655420300462997942288744480554184748570172000077226803161518856669574310395891209475753681722935700418873125802252230068037885993392858525170362701610478287298362103346228186196430601132083432891124766252728483395272887109521642740424655754299088557021868733672208870675173514906020640207598934499997083514181096695710785001054775985459635232778148675000855078956099256836299516312823911000300808630850044803117053520789882065442962190484980471901543495334417493522865943253616543517079323708309034734972256823333769328241936944449301451242067741871468094965152302902705579047204155530850287726257481687958789981677180854603493961238857364205341490774700643397978003123402228889643779242764271935988951305086473701926434617908802665815828886504752548028035400583936043131768558202472694468472583449077062265886610147133367378243958437259993238186349905720639300586069173233247365047104220021063591360833336597679173983139609402305874947525065669211963781037378507896121424967311794117879948933818875285526036078947471818300341720129304909504712614021727844300877018226801511855032290465938616748331039466659932276875519917422751720442678648480038766914883454965590428038526724512768570259212510150547194192466953982729188580707432763451050481981535877234539584285906247691454246348121730254694495971624573265311633017720432437141359724279430753801283250229137234767209262653871848026315838662151475101652172757817980769195728284927677072458137152981349760788566090748055279653757715245539849079210716455658981158719415333804258882633246370025076666843688794744891332004158632264231591733982541118689751363987775565264590716263354754698385549146140648201470930621527154388750802089022414842961339456858429666544394277247194543239480265354096810651068601936708339731850652800581004628379274410353640658794634736578755790325156132878574786539327585310147666956587400550016400934243095157684780578122381532259604104232569376833314497185149453233061952013913911453553378559734549881644758856340518778181485784488311014177690066652323437141069002042914929895820286870183307361639013334153242429609786237356974285618260742529131642088498659887083727963384352109684517712451612861087348209802797382358765430985213310517810965514629112729191590866626229919297699273920471589038047534836034395457742661709604154419282223053397779861938931748305397609909513899482988718475701474729613746473623395329945688676097138746275658367633914653558181534552966721321455820308234453223163507079538219713576072606339404442468373826071111824495620415446166409243705752256484291839119171349813158976925685451909119170394830743548685894584502188352588114108487951276492025412801239026038802141488036079262369642304761029630573695963250344166983561277750380105896888467595221436197043322140253402987760386203734609131295786302625589069488580031478427307038906738487600823825810086202141312111195225794436757910757150149665661227639978484221308433227359977559004622276430141036083013566305643722485687923901842193496412733927367667009920202163939297527406878201772036627275763709628481334859224682623360683376160196233633195456250489941710416635039774888468112001202191543261858620400898007145640021970865523044537395739902137456967740171159818628846208282389162291498535410905110984973659199418832113758743349897152904824092516293884521367443912088556735892865923736857907635853045065867446107703847023338571562088683519509943651271576745257223383665589850647642065882307157106403998754664211238771593041875310676380190441952604250919160939784194089050976961751032706677863699758804032931603867407520730420898469848005708337799396399917749668223154821245153314737313356462119996291255825288245616561600521296931066350845369359410002080861846946793609442431613729090966219051947688983110246825939105652765363339024542762623797003369399989974600560518910145757403118874367322439944851204897732421180336374621529417661888323477223411644853980858818511237813917667109154768664359313959868166632918996612490039095973006690676483556349245678464948329260906544463254375094538318810734468010321195163075932029315660281124810505031831099777852397200689215384256307618879394390405084638785979258758164969675983855924644366224717364330738099077287276123575222042277727021799078714189619514067635151588708462160501642663901350831653120665209829210024983303853266066087061098083842199025278807575650059272842625386892913844796615021940541333120356552049266187965856139366718258790161122178771017296724628337659985157150105507993401592538608276121190076177641666059825778487784260062470280462350098408464774888344469221142283999553148780631272036718790464938162578807525729667239596564194357322955934362488455683096935826689407746713884012310711528125012668721978749901538525231141428404768443913490881141998581429101162881595816244972599369587155470597436865124499653869339996829973640154762827007943895469007556347873468378328597292957028310668034084804350389413596181848588716258308654664081601802400790746836770035940065706916429551556107850398414805208230635344118151570356941490898218427950819866294576497958321911230455741042137097356485862946425327396491330219176352275222520970617674697576542820945397411815953963923716875880097175800491137169286310648989836158534848148632915045671918462655479117347482029643720808393893910114303426624848825558524799948783993541730360383351398377774310078459296661652157688030798448698967922067591941545578948087915677000908923663092819287527257064725768825677361470374267618540072615999343225171192873957770652631577030752543700741365586452561186677876206070003341959216112023145965283604006631092400998171292442096101899179387175242473491221187765329003834729761169177278988455190022021290966555326089546073430280943687749164588469704719166900791381593569096553826990840819464581519504794647695571205447963136126425315790824197886626982065931939017574176970303425861594073570985452377555310529849746307177660792776971645499095527042506758664281810481103848591339040141250960770843904165092951507084546362377247321163718403349454571134906178830254379375056350593081041276137119406850180406698699679980103033290082147225952214673786441119691173924264206578165437049253974829966244372410338868689099995369019105458472824629866529372957249674622826819258620440581075291342840821141973484825645833630704753697544049754205132656692806627944651519679649802004002261884358358598809178221916957221436807437584879041792607268470608230042585565627470005535410722151924087306324821206925544085383712764071068535201667201527762458050350846669679597032693605973398330792041816431685013553879632105485316759723106696960507855181968521419274433862457557667364747510348543991338295985300902091981554111514865441920071409116283638582310386617936318212281309460433862287142765265059200563369585255089335642483795630100844213652317533113715311609380926361071842272170867423135307260576413800425516120923344206823721882479710729812041885382016202139161179586720641133745565876441112183279038900380029773858572897888383120712431502012083694673910338499694823890210390838256599073604273493974450411538405415605760608980891009383974897872159983736357462223213184994995689018130098714475772394796859826209860385592369220737916382793392522852186822831694780102985620084219624694343569824297117442968068044383889775493669637343865021843100091620285270976444719944082091009786929696984823455449318206223763522214564085656861463224496648254604948523481646076260364746990108940787987201204781804482354341227257474528135024504082481974005636727481923381515288543177967733885613237349437682996732621180239114701526947704642712187170822469774367121520026213050392176407301730784946158268744454832060414142124490267281329734099539740283548275019166603506165065176979775466552076231672560889801506987984737302418944741080331549512853581648497193414159355297376939679390067887886690457419959850660932278834757212497810046314834060360163257383580141464946327704671138646396395959243498011971290223870426316921089044605351332364288326628409963592789693267175558222504469481441288087104481962991812883914599387195012101261714416278556051094195511017095701179076048746042567844331136747043170432095175770000521931454502711089911503376815612202137124850113115430886522795744708113613449593236296946417203236491149576653116018310097326629534691752489109144110451558505588544195243675964505662118424675061547622975192657631684243702253263897976219741635533338015167461587157524447595950799800931005855295606164775171463915778199950351474649239474890576734877197640663128747210180202909348678707985573306110912229702261765002965447467941488695014017537126275159508599499226445828845305532118068432145222754161391603374136262751041175034753910297638148047155993142258327663125597883329974999335351756109244244151997847875828699002630482062776453779384536184413378188985726099792246598885269596552412303243280839950214577516365976297723793241577743845949161682198981128286565863109329694159760170288794413076742142678498018529065241926155924544916015556526207647299971406406848575822338944980486119939151221277491583669224787977746418902274211948726073949068727435227700270228371941767059795893782865960435018820493288757332867227300974086625418681770326946347537551446521000607522485478780084783734201006144746521928430434380036445039972115125551103558387829274292527212556314034718444254798758178208312742880841683912230869289083491678855424189431864135191267483073545597967148538048426834734841227103615241974730252351911889484660979352827753922050453235840082793305160338705313056006084157007007415857293924468430936379491035660592624137859634766315182922731308984845708392868197350333993520555455696304086965596563710790488156979687677653048155461514540803450935076128699149191805579705845979307785315058030811164054786973782723965811032550181746530237106688312799490224370027002610635336926194863095641844873523148245127402519142297291531793079423164345296408435041587057107491872888418768091000807399224460096055719757876759540272343682135850889021140793684768602393832536629368412846383184993457950954968277812441939509725960122762407101185652162884395789182958033793475452818055026732418579265076406371226448824693929249316701718789369354489626296692031158590926037374205909987567041710195069453575005919718620838646067923696527651335689256614951415049277372064151808643269255854626236266791024099767028869737533965241863576210102722224310194344352026567041905444121974881191596352667321504335034001589996356606092978841582400386238793851597592481364817825179913377549882850501946399911093161499383742412305805208522202934231068392373210972242193092521432214981900442287253377577158080818017524940010609367086816811870332180111091607105445578454746981984227223381994793277208735475277049875725808801369216699518287600958272648573884432187988524508909471301067813989817069168446044952294793006448180317984505428388513291456259115824468155676307757524115563118346178181656014423327413007328696067616808463697121679517268145444258206227909949785989911078757106723732923715445009774081976999465742552870610718091507476756966904539221566441126562522040657712259357195175804615881025864636975995906933126277916193777182846334139049105695667135504719434939708766363639517021540858945357762155110021755889467850596897687704829519737988141900413800071093450481885061870665430257085652222618779952929890036723978809625201766717487446746887459655728647030015262360056171005713630657008102444490489101215900317684065126597468195509152450726263756409283524924226831167889186346826338901446310366964531629098384429365326127464864505121102899995207959996366435954058898389792981413284431436734642547901039802491402311718908401286491283160136059126379233943292826970565967740527071782016460625405072433219024812521317264989046866501182817991963804459726024580571417117969009869205910344992436315392995323687665011111357096500012224465366510553394383519051890528171003713894537636195819042765659588715146758133195417650183376073305377500590245770542310018392470957215764754781024113988956427724172511966516978056971623236582942581664145185351117534454193988846087582747942032455866571512279037947542514347485157826685914349807496532596339438013028905449635784199617073099403967400169590511637511753130081038907586108842817337657231591973082584087784960474455633809188863832645197695897600170181233897409497535959943033627648360665714629888157011536896850640137164835649314527131389864124174184928243330596042213108485603988262559219204103651995385350839795260300069488706346066477263494938412791623012586581088776091367947856954375637271609058793999303400073720971752795716841925335659616074100402687574718783964855761964495786932793511969907592132175792869705983907031210302616096458152497755353725118635418911444541306221561759348530613696330016154045298311274836945074818456413625609245918133262864853262467321160853373596270309971369420714141201479872589935062175046217216839205516178730835111718269692580098932092414731520140376806380839207197546264226022718715325567918556931861769355118707482352618050838701020995819310450950264779798296681745874881682182046955977425710327521947433587389169704082624245575243777192060445019675113678000002330694763024357048654313592836980103759311686552261605481824064457334434869653572302614689989245354417298556543417687447984855237993762588124226960658350456384612764828128582321867453124684902143331579021299677072904221654068888771092156616801884614674017135260854019152265292938979539486865194907725471682550154564496938100817765025519809667601822175279513485067978187344241558134665910499970148471081555319511072016561666663150669040100523196290501965403176153646938078128591104375887860435988054764229630702215804062284284957809576753048368457075562049056727779568087843002900591470970799756425381154714339472547386470805666756510743689705203012491790456225601276854456711085038415250280739215635118471836081583650081143710709916463679822531432923615471650641838485030594050869166875052218442227286893890071776023636176123070678198193713539864245131570214940467147976366263676859750100842883744981450093698666235815632481067661328591698106821775375004740167185617232242944979543542783403404173332476567623716282859747896963379138401531511986114692076261321796596908686242492864652180272976647288494302740884180052951550989018359034318838649246761783444331475890235862519103623814614994009538526866348803809449189467462180314150006769136284321820590866024156886253825889713220281834030119520453632221989487375990933109373995640446337897465560575494309071965837690547340267097766970258131382313402755824614463900064827494544051298239822202413309432832487255494139283520847653426848663931935233765630855015143263466952526502694795803728484449946385018542723883976700375826502107327691333590187535266331436707289834321868821724938305415580085427859392920366501898180263532103148204755267556957224171568693949290271833559613956581002276010047147764869329536555456309605497292809507132550210079830461576001531237515750082881828165961072625311067089704286837660798252145443437772646430992783339140151577062212008985519379325035349877528670423000202646429298459157357204650141151553736229059414398903705873683663267359290770835246032627029534008140970303017865985601732167957010539338860671191908377755859570001850649498381063976323779830608843013683270927607482032704401495110242746657829819662095332523511117039614157791267314546885684476426838047623716628843764667835164946713033812275521467237415617721697564004980657533540131312702419584561739537702137259369983030914750078849272467132246088182313599083946687575277791848678935893113192256135051351377597358849455763757065273968423277681532617671146659315673473811586662967690601736200904662868204866198854532060162403849675225125767436816609114300011196619973135185632705734664286873666074040338303362432410390076004703242636907574823471824218586642404116466090433524444614221410733145131307869368280835660890902669258383578924862655165714383398510502756711615848699062308223456154813852748031597386872640046144843464759945117831679596245386944133210855911467310474820612054726245024245379952173390422660423383654819157916938981559895953813528263014364655698433976104499329313039341771134935301358636112270227184948621503280183198364898205307606434178711772720994135352806120042167341946625668818771323939164795925564522754822134130647315766366390538382095561797592517180988164700595229884311402417257011538493536110362152516950862181176929418338828401575918394930257118825699057765953914671393235339703819003168812065617627570049493545066059710452848116342189069544121809975010616263335115413688327188993768706537420067238229266571174254550262242506049250077086526755802122179014006877459449084737663358792657161196570218085366998775662165596097664041746566781653320730800921779068589104220270273575520501799485147486527434569946516243713236323051731485639652049709532998418545557604518669200138028918031047148631232358156032471007789785140497259275405493392782818812791945251242855668397466441309194440098027627574945785894603587325354323505227693939578501529027324495608777443457081946913102900253469430507192166020052267897221291234336600785940518373685877011288136111550280423052136366778510687380276873989974889474862831150967515857848657485678748649064073521735226069992603479784251462867850440618116384554473717120486826872348274531104204449796107547754543482792300853615636565391560480485801869209212405208803100774337596324388571750683067472606124907263472000125707678272889016972363642970143421199469610359871920916585218831058114215435705048862187658317188250633783714495443652401090150331505057443534305832598458161800657547703765279573770447074694389063551971790912873342682890796563727068957649803992052419857574008314865618060155971006266298100412436323672317846942103702321695442569336869744198519285526501490403150315903507264731539392010848854463302270317413888953456027075954957804305795738438241804353648684092383268347313740829887080172956915490828405486904435298776933162325128469959286016723801370055908288024040851205239575114022685063813600457131395361418799749176210881846769041179493180763388451591531045949068164014744410061229868994465086561339097618777996867695148183813750208620114020197176665061706078475029106394659450518768499666529313801664042114516235134123347228869434879796882897857232164771918758321430281821918236811148931885119232662914071511582385830491704869768707440489774687320179846606889138459798338703002290905983587436172617187068941789740339313065584400848185699864427658563765020646114068240619965650762461346551458430112532914931563580202204711261513234410354131824817276099043740102108317327510651547174257523079886882411541157353692455906915994595452066040675235134236455376372082902763384442251751464170506917609911887437627802947729290254593674903589975064753115537048169358552716426159956896375377158096803954326070532402468480854155468062709193066399235082525932767822268002428528919903292372615985928783649700868461719189613151968926629726341286275659610007725530794355404938275129895540894375170395207442197506444136318351925402271258897414714900704869100924471383742792813693282576829134871844247654833395162302302538278140991926696806259674161561554104628949816052619974098801551053703238525408693690573148791797050802481415352618725984383310014839102031371207042004566721431896325798535320983475333237238865605708888254682416207232888719857932256238741144957695195533943845297794912119291273724298133464636602128946071790362397898406865230504288737526500812844813493724555722457919726078630752809799675133686087291877083525198314439155805456699780327538155025419362628984800835324521884413501886371896077384107784445714774862252818415163514090027810289468307963992294284072528035890229037722734630953951307112717832562893997766578770307348437390643934851272332658456515617177043271486713409826534449258636247518887066579907880533422102699989231139105499478366829016531568500281915017339995290599601686263932537358274279373012745953675502989486805122105760657200188720245015062802245733771268968151428069868221779015451599576730519069235508824923482708863093991275496261606686289875206622555194318888533141280750163495249046771800167479606831277260045248180387140968011599729161166309278451159312659801752512623037883294973726422105403810230100475739319592514909897970590579586419271562344699518185996125938755383052458633924709272386590810366399923234824470883561157333110183957169633410034205120666627532524944896840927633060344265130779868912841394527017944835563304680243701781227719652027760313306941126439002070587344681444482099843467112995008085612286856528503609641500650039876563920601968181463351772640803334378511936212137582392058585379905044175248856693191138560315456043346419512041948773935554083214271639946453336632535588832372493105141875627103445107441141022780920430137848714528863847816002817515662377446488537055014432349640294248491608252427041044654029853333963012045371891654758563007433440348109726799690669722397861897985375838621128828253774127621134221488404317462931194571366383292203741045556277160604782508721990676045398834279885073505005659091974463282730827150773464187976438694371052885067567303624679245337219404343527413375438456455577763954424747955689732867069380080735609662975816604332832481961422133081349658657928992534332444756753609953737516802084080739038935088212417640771245873896622580960142216930533818624800223691285782574152051663771935500352867982221746163932921206397407530285744982316930658590507370367897125320367966431552384176143258648689415688686406910413622959301153770102762490272551260941397906879581973323287142247415917332769359124553279056305796739428719957553190478524386498936870639945330257932672870440696482479110668030189828714436799760540064769780084511959689975809965153434510233673567263248188022315053136507396736260073929253288887654568274059140179613925621259584140367230281610139376253767409824265038559367178564580479176458306303007858131959665922334582374687423824313508135219528788677303062685373121232318765484422022048437631695958738345474005849073332203757807702842670503663719807400370193953455404509193351468750504997780272218251197652902437779253497597403568187334377820358725461646762997222170079942446068975336749795296113058315041022614094212739151646610484611388532214799751477072548161385305596364266253313912958156299149672046000081144214798057553105072920325223985612900962703220597237927192507298772220101147260721200627251820083796926410796698194608739453073273824147031328841925046700426785430086045316565207193315124366708113707966468067175433226501378107721265453965798281272943193601689491401416443646762096431133740340963201942669440474105108894843434608645767439223939452266157653813108687061257360386065138925261681072857044577722957126714185727099145842342165133726088780257610337007324227498433583220683458845048748480741715495428615052185962620770041013898200513209192526469585582573616088570274993863459187152063734931034784825883402516217313587486158305829809878229200944336222516247507863947007698937409514371864884499874180507672527083456560849544677647966629338772707661692157934576517364116328570465808226572426688528084985270760595722630798630850258437693490126788081772397320323649213921747548942195465771745528404398073559136157717162247874713335179338157010864120356395460365196368674318971636650124263218684597974304527524011567301998825957909130022496465237652109792285988670842981243011730122812500076673756335633422535231800225265488874810770564252501729479729071858315746482443103525630562027251677998485163291855171400557795130925706586970662996093469817475733415327039614155780943992411066385496397955048703341239995847750444856949413214310461484163055016708025264066263854247790219396330220354457910930978378483631716520279030088507919006359160941461768173651791575160296957910533953446280953522589052722224005870230349275022508220418350621148551598460917844383223489327212325348204128452121602808212162955836204375022400159401822712401557738129074270385377374565526195732919659414752912893264012938303365648268538782152618909957249660683941884495696287494310278505720397149212843052217075592995184334676896929757421924015329416401247087533790577988094650002466750116514856677311312268591333760948321490835548206325260680530578418925580489836899633618353982414215784537648181149223659994244617531359791476010020860064722400235736228183688443682319680002903560898306706342089249519158744726565596268008945162066730589120606792839038914529509753349659701968528469329331408567091609922027198650593304596282342384031625700233616437596875261393974430369070764162769136650641267074294135849440303472912882579113779678006740455144993160345218598366631601662789997645385062722411485728780071015356309996408492936561730669095764715814187146746252480849315626460128434355416681010582568165656265450302652678180462400926201074015623554957517902679549478393198276825145637987302021228742033803752146654218959046621413905112671359169292268574541101353210222383660697107485674177888663822561314499425742001704149648050587599574541543384605862161249665712677296892319994575700641260740376833621581838408119260773188815065094975618532604061145646218080162864640588789095587077092153579119094991556060297258968763777618756855419747164508141590202174512916560943364597874034154342986699095905423039227713368469296439911083912900566584651135255788798635984464955078568856869301458891435801781441748083337555664570847340096289822480042686897174990493088413282055646109243613159792374233459119879503276754586606822432242082614651330855619598898765217511672904807742422559536269941391166640853367945547746018419183431425512958625422596926896542428688808349374283969792892680008212393514377563198429250332240586938314130325179829699901322653269601062982731347201705829813130699807227464213970422894258407450242512712892563872186735245065227260321000583500508816711295295185457760313887887212343381527667705048950886905990545691947008988400517877398464002462273488293231260569882831897262228513433928227180257806877860642217975651738771371351852348805101456784887650144607581573784977081609846809238296500345800924189477799704250468557353006600901983359557605945735229649247981341350779522422253906239353736341366812396561237721080621567011507550861980930264692849340997516799139075267129638880277130500472742962625803945962539422634544617660251841204903668039675611308382292951546026792670069199244160017372635284354850487794792144524124021630272290578188155175326731207019227257343728494881451111962405453979509546588270132242842084656419245890296632974487244199043901796554140404976764830124633458429688593674050299628303335947135535732407636758025131649043184839348572227646278529135075109031196948879453136157129949151206001550677645297462069179617738718202678044715830025425407038748221712736783533133048738937512563705980674680545280040078295834899000387018941228095696896474643965264288365450774169156472778376546459625982680889778713958639531814935739510398930080867138120692175686963223166005165642116381650372909841092519559257687239075078077441442552656836526325267830575439729472950187734612919954009126087311353336568844703745623326266070689987888845867114500061989219668529630945964629513579227061053711621751819691261345328631733064237532097229038523484879756509199144305295308821833790167207066261361666198825145868771221830015245592258618899457204488834152302555494221882915690895670970057468392267919483665505584816164481388686907096145808575641480688421755575229674461571152417296462676153340666683991376566521109599290403641749247038803480274072438689045431551648989312672110416764062883555116403218180742228183294634223024923517013169096911249846514793950141593975558464523805877624883009144477773747774521677245385913437590919410357174242860889567402907241558859693552726724808309038449321938644919642731260011598664583695433514070201909589637347662955918869537703503646100970526205551217061346862749525735757467883051922798090713311175567089925671216770115228020956538988411730078521775858601457931694322174516798534275820264725395615133404464409553429102469161304855595064858264723139893016501659008960149776370929681749205980241608155159586843365570809215571751362203150317021575705752318415779233020701564779376610043225525439956339747814767479798268224857479072197022225131368848480717252932373805015751348604943180181788329218559123125095100733224694104471808922071985501955141638520266518750809884341127234563954316766370326076299150718046291854237874002133722026786049858005262452723332550834570143242686630475373619787834894766519032556591594733897732705481131223808973310929450516935111546860030052117321180754360543348050760384043659345284632054500917088107433856759496060286986223880543656560792384736482963522961574392927641799373709651810237318063451162022292008482149253449284059785763249174987302799240078680355714121937347679545365982604617991247891139143060625648435564436925493803153163686510644443345066721751538236421550653571755542832548911310630752044945869211511900270268813848417256036200683810682541816982569728015996994025480746806409645331897556772204979435190674553003440640673226712724149373630313577414855814862444207778223691954999808267006290100520419849833289811660316081550157790874253258512857707624173605579276558648333782724757933749411368723516346667900497966300768614933837827454486932664739601903717818997909529790775890573824791897934460867184044958476191536877160147445531262884366678349275761745182105632637587541088346745416376155751605435113911246850495635718527276981495449661957761379333210232346865937775437570268173039782936280063466542585554095824563698243246527538807471842281039227612976018985239876843822089565658331362315309700066738174208793003508136605301966369156799850041517595143042169348744604156611924400971912015917508589815958762607270224909481442778939975179954272359879502143254122351053026926532727672491139190414540832533920387327483912902116741388328037218132283492255977342680001251300950698457523598090087937695395385674728668896814948228213516634126837094217314172390248941925247782037609590747630789092103801939370228997883106793198409759488958348646814459180041932216953171042783727814484829383597973445952509067804729482498263460282935476373905459118158217933297392807208501797565045109158412196405610786098141464491316526400757156212534337275957639284120542002579643766793163258426335234312509109364455150445306973096548563348345940863847920365671159148385623149819410248258488019448820574521691195235149638480855279907127341713372903040368902593915690875312706506360672811572027024041693811912920267077840667017289230600044005403829074000368737140562662215428513969496182138640525300327564142716460569164669789875654041877917186940891395584663875903811423056811158985966966977255757938806237142074913964498286469533861194095944725697532697575745815352787429377301988673308934586541634887342828680009920291398741317787817546713612715125522692721406222400884455141736705117246740508066532602546816234010675769454900628419649304195357473220697087613798217041965755065147702865874854548681772722688798852747981561186169650400294742365063673595434492958229094497669592885506212095533967311334710892110908126587240771678814621951854420486648484412408847803248380470144231768831696600870395017436686986699978919973711951890710739174244252208606148253417303338715637079012772190568318844729820502293913695420666502321161047282811420537999949464609798220007466123350692841009841496467682088385046995926434051637615875905849963968998051368397653174143196356766780021453139146580322689674272074613353080511795308009221975421026101900232917071654321604089464588289264806712548964657569366929952166190732945491607000527784069528385030062297602395046922687237526241095232290469551840149467639983343431077030148640473599292947589091786511374506683884518352110546286586378255542522177884522395819452241860695396348837701385586482391473612113141558980994705578919586529760387303164816378254901593282987343388218753652872765553033327011189883398776164823385754530798702724186176767448131993386220774282905804407209563659078731368815595932284225052164021809483148607951861861452277742341034836160178628551829819413815098083465298228119939885174018225398545396094804340122049011423193136751836744518953903702855204937766950968138856543294866554283824927676268692335693061974463432705010269500624494782188275379255584075988065467485147707568615198466932676790274563010163620399006728294328727171400647307914726421657065502759124210523603615765155707763268139008594710728082589990400916597299062473821697939236190643691987080188878115315364267945178014301203045933133095962409458047671618010989867790537073421025461314796631852503156262712010908899947416327015405106006364397765383870610385009637854632902517346240692628637912564173422945483249754712682820268099580538080857771794412849091329339134370473190561304869166059918313627080903409391036794521401412206752165678060134074598986214038610294329017967391168573417336984402460702516762736447738024664625535473225325044748729582328629246298478403980484596290221763294849335184336077693075343487651861917799712138463532027156928660190096131301591819395752637419782273986672220821934652876220168888117723404160172440550541911748072437605647760698982999669152129177064710078996783947005176629810189538650333913335183506760181003942517525106873310064360844706941971242746031047230536446983573241210680526350582893490301809159707621531374047098797254244012591459445629901006827928038288664904316791410397101002485958149473796413191897155653493730577454267305404366125666893617462720977140419671560676907204327773559104045435817917575340472488491694116077438754815558687127934114017251416410704249416290419775710922252820349132144279974759455111978598147887547875917723492516653400806977707802921683993424420487337921633462218090067171750486687301121072843599795168063986711975152415713243739764496856433786312585038838919660952764725429747494682192744431442578500070698702591310155414461191399927552571938166022678222452461429669124799716759038707922889194172636533809603828838473854541192392865740419503520408709192599758582477759831619142742489063602065523793525094705846445123102450471462937445979666290087657556245645148650279696415116662877185260208802741166712181600588736093591943434462954437211927818747571371141829433636594352895782556014861342393468716368058899848343344968736672051730534954687239495375903224703899050439805392857115512568506729045392117376760039519810301122973086687348164863866246206320937709644295948290437498314313456458016942333755037676047440803437566578415285975823856618516085122378205832182996518123454301201644665381897123377480840585888457373687296454847714360501363388842368724212559974021543532334142132218238456805508960464838023892458971910481697258328187284530774969458715644606050926651293929300081664368902911709259243616189875209910090156628248915683586456019599478966838243185918456295089546719379686557085878927869251069240305457265954909276090727860068394500602311074167104890898731547874533530959118984073864419615186359784459302421308731063196838930957251985141345967622376409368671260470345957312136967872916990080501796910425799094248143853899712222616427257461983818065603122508927335785021793514578799259192857077692392096135378080819879691209773396957247917183025035324566325335444031573136153712439204567461538693765406273411596034690126229838906068719586186461790237466045474423171885127747821965098380678238319655867740665610043490814703098812808299826736788200537649883032980374095955596075068158206018847349180222657155852105990044226597647129577107685965052028189666443312477149479882470629604001005952454285864119625339743134204388371723978404574681596188172131597006079310365086267124730396578968100283587664205093246772742303768536615772908167857914694613229348502693143620685022609661487345991887023321014878004034935460918534152792219899031933104831656844542273353419663754782279815466274428644823141777768411439259187300218947561090818746204700754867723721448740840825357491000166543736677878027952089956541052964270508139472934567097533567582488820517418423372293030446494189963312297917032363290586627974450005183246093516634207810950750374132947810988834261426983831181716586036634232936663920829989796553568331075054701546161611897124440694500845277072753591791595776851247871796450957211027510832046461389024488851271941472382187791882250412744570345654691435337344730611367493994680347292441847276396950160369183120597975770512294069201454839546690324357450009812122920873118092983549677175743017792235995927410918979737774780482484054735096148007710703486095026293778019465389991159938255003923417016351658202584291269244185914135716879613694923798489777443757090300819518409569780656247653136080846922128228664277268795812850004871431169680408673672138275595536132287043452963049333723924256167252931793806297324884002606759490440372379849714156379825672079844285577979601922470421527649835722888166124002285039946607471357475813492280078260908488698598877854522318910941473307930080224098137971700977729055450038934663797350460908187111846535107079823653425226615229075120329494769479902240216231974647951859950888008836527612050052280687173718455855233305552327257436524437324203515602084390789675466299062621025549932496106298117350873574291418390513650772467301318891987262642079843059244193794392274637404131805881383155406080479939544313549755897660899200412075035245125895629778263182597502835603233003339163219379748883635929812264757142463498379491942425002650961600154243559257054449754629097898031632687537250337146924055118005182760237476859180764213432806990587742255171503533691321100420244222818482626708036668183679982955102514614517097933001234639864433953098928092204633253353504207898559777236766978962565862954990040761153937014842082073775072625991880387062528046305889509498164089878959047733832726569851608963698522177423389421418711596951540598146435168028954021405993578609346442133404746565541646230474154756374042064561700431878764370203665447636915660448940282459252538980999908871299006807404414356840112899506734418610997101135243519651371876411606126061211994575945163684577911903960194100998275384110896435232680637381888042491189767872417761998726439038135163009986553747088731910499416105536370316638285973536946122334810341383026767472570348082233762664023328657014558700994056046188426549610078755936442822799131141084957033871011072210375133667960244751478103353282682269605178828699118946607006926554170146582991144775504634667401539290314058153257252481786749681819560329335412703786706755214632043846475039701459151500255023573792646947070596131579478179907812254907361038466906133605831751295634062748638492091348050604119361453043271639791553012474743924394990001642307352810418261632960370609473912163068195489910596764859267469535655848245290031505504539279941645383405362773079678575118543339381705461184740209921463922726848430420480106450826421069237863656156621427798989935480987696948789292624522752432776950664994972580471597240684530887234265553435875146689395965364110824692044167719704684551008153231924095400341630145669316656924072012247433869860350083300378428551836325140249173981655466654598580021690637284745016438765161124171463235667188031641930285450827852162660057468678987962406123220927300923497301378113342666151640509980747268748641449196915808712131060614630845332852001630762945131420582885753914046776918119473446144261463291731126116998259858762272109049507107788244879035432376763526639169671430720248716047643937438184542441273105393524768761278593496287019408998728494526117069198120336861987573145113154754732034504119475797102851995744062832267117119716253629103202127582301775659378769073322418678307480752840560807094442839539853568377255482756682159084628370024991810498033496050755116577503957906610433969909994804615929446646945120158479425429231510276487513549191336739054161228151971279606130685147635631575241865418602756152219465997931822248357139051556166928076260674679428291115781978162236311423346811226338807231915809121024990736945710654211980007528434147631384213123478647802064481757191705298290004748171447156771140434532901300599676167576283131092539241067228856168421674105271000861115934861289073474630754883677126287646173347186583837082070970943877327950162636131435237708093762642424635119659352139586961990306338174283778310590795511450261630752425260152969922845062897044502874952701681794662741616003435677818254667034473458696859817095040547772856832746267840660572638669139962426005946934285346712077989981851358893511729755070365861982081196431233561051809125072340690696979747005191914612978443622410711660455151170167734950204151004445978768652081222783254486661308737186614755714464086730817699750459769328066003939142657960309606433834129687025007710937482117707581148464065535782736256203864488313765912906803263639679082545422333634494189891491710061958381644757936871111998908268420165158775738623101555598637357882561973426647048659263613194682170512542418639944236325755668326138019812793489867065103472372350647848633173259593937692072582788264046293374179273717131494949744951992792458173318319062221977601655187643224980600913069576225905249894342922948660312267984938398448318003365244053461266058324700609740185899946198233076967633287244951041759770448018298520566522981644343797735445032807574824017992907484810027194008349457260314468390219865238897834652755351977459504212350032488661535434228429973240680648045838065235481242423602726578288539638519090629302958123871611089520356802262840199006531718822668777367594541778291150825541887630832133798229592993326124861564223137603035005869926495326687942290488174997065378247399471838799887190598436670548299845459685155775279725335406240685992771827289220989684685858361301198746610000145466173785768456773289227151244614023942343304750183186298692668625131344710292134070999711858518908971255463874160868733609236545447601567821146880981814416697667545648455784543005948595673090884824307995589568339410907142671894034335728796552361792909349432504620776124797386265318906005225153549742507508228802694223504446343347404292103793412382457844360791458902775962603613895047875655634772293736128366715165385779794969176200405864737446049726404713162923356854041864128599575697397166200181336385903524106147938612266058676636803876969863036750758657708119945775652359891943983296981339145142401875671746342217198343460731116755196251793034570751691912936738327733918178515596520338350117539296687867181346640211416524168053239421594796733982340382560640985521793133914316986403793489789551586924594586103708699953330275648595886453820215147377204837019299672187562594146685693926577576275531943305957539844443138087646664278335396133065269006715896816160041573989420894541892013733318029140883208148833513754067160405215287928276542111415006387492342380801045042488938807753820426390998578570603618239700735959582142100164340516740973127463598542791203530391998999988355947262566092075831254929413845624380169631888091044732653751176251715190248516717366149168586537671616204053665283797874715016839047433336424853160618694103192431221049249822543606249693696222617947995121408870605171284423265821669416605631030800698993633341341121223266928197072665632698997287795045687263625311489674927414014139306887646472315954265615950469731046345759589812353104475607851685846170541279539998756979043335259424604833734968328735654290768723746055006190627071384871408761721003852542246173263799414238162523001924602379854398673663758650415289152677818363424926252432487152827504244672318205438504741648669675995682018582390249803401994870904357224350449593449792824548386647325903869830056291652906943999761936828885653672802861197648463205586801285039257748762919856554792432226672699232656057991937887229735363587507009631997242319229129748342616097787780038539152956043449080115053046611427339975369132256535212046124787009077017822783058880900668169575034422990954492700768500601950153757979126429720256959913386060395346124822413637173406667941830729644144040276999903726049649279731171307438735068564047665553125960124278474712536658615210326044760135191152867037683760617388183155604431716688327739061403824351347785239950848831053666361298254426577620807765361454006255188667728625313917969666034336043015144321570547062000905681176325730840366819121136891423727786238059956407691674865107976572878242797590621004136497949070398091826800780867216464434818872420741349630117400450408784114670358544364533524773391772380184922992500328564953267962298581432991856611498505607400288242884318830399118035059855679051367940952546978202434126327802435660807333478186545704995864757494711078408498340357138703784366750940393516086105851335685783684982691575418947646840966369934948728848849577184941376213716348695431518725051330910073397730018160003995297035422945492731760921353762495249662545456140446862947443733876777148849080501547942788758113305871434159454252536188284923665374701783565739840656068127357354864652182552473708648329707971954592863799941815332482274719383055053768343855230270798871196180589291433631265745011592689137459785726536676628973702899006094003733933934080758394288758982243396128029861400301387385153553132464853927616165460574639766528441109122188947123457154244253864592388712721305099356089215739193390505098613807123566306356449435447657381005886562126954467698352127000058635712551423746385347781118691965173810309294466551631426756387305991399579618930724911081967699512122871474799696570653616616028779972590502086933446828972172814182881359089467363119807487148628786326271324886779303814859461749387614088640642284150965369694316980050593712160811078667902570191774066012434876041110016842165060225420949933207887528387356491179291697411112653951245434139537577897356764129090966918771013782465672836553728186411513098375133291308888709011333763085078250141730550542880277624860060714731807830390620806490497652664249831906091604429603739883617480707851672664691541295785539629688584148058754225711089299465669445033510965839125560345611994541879485435923766240945575102814686851980186357410281456144876466168127035775886538173175089816579262610484289880790472821579877686746816110591091614404548910786031918660198809753643213262567465198479643574124175273820095635680113225048436004964535953332330027235758045578668615603102757230876148101687544276353100295931023191337852482532753183542189800676293782167469865378864497754401894608366992864302553414669055106242653942301991951181713387527478724318947593164524999533618937600409527891276935431777299871577426203755557739782903439410417113433051265318617081012638376230621781672552977361999695494367825732320124185488516777877346999435594165946524136645745111216166373945425573023003470212667424869050878802656605311337471096552231936219799185512361721375616754202696102639412452523343415255726750923783795538426160781817245425460228923641527077608140927741892979863562512359778866412925007398271523677449767389916825328504467142666829172001808937432380259702052922251818631253383962126513926546560096340544443962011164311209275651102387859139817066585582994853399137564465653964455672458387535038566946905201809901996329696377011913271389144171279580111944184188248463837268800017089576403772533634501724800945744096517371931673528751747426350685439774338854904505310189219348260397408179269913761263618065756820145236436261800866088474918593932607339537255286249981118345160520314104042329410120053258417880595785760194115430244716210054631835687810083110314178524838347364703680688185633740364266484839543730030300213386853782269369416037029681243629776080994375085236024270906450532432804447708179583426984358784123936241032514080302170397328114591173844675725021088033165622891202193655827791332484041517688074288637771871525061257017850509546882510157867991760301116168756629255362772320309365191593467116949480516001451519912375460330850938856507886449310776362544763194346645828505513795238203345097513550228049607096880504603568189639195788221192999952883317882530929852282263655719631033714584914807170228860504453108005797928614962241048992092398407776578231439105350635370541831353596053113943091764412484903685584303877523126546738537965571594614502509329871293032388157330174987626860749241916786604267441440278857653547723471415146826141873810181882484021150815889731865937298679890284739358009921641831672822821020058538719163570653530091972753935866377205757704710169611185114615892529383574032642652850105915038148357957012970038211988260770889754633336846752798793159954290694556043848473097981797478125204358713210939711593873185505366841154533704539412702249054451741689148338392595033020745611948001198236928121100207820446347924312095246708020052466419845562104904159767252484908178162375938106446006609969928121663559122830591288960727146731848542965657365736486012258777104167706883715370920063621821786481549391751267274360366460038895030167764107506177876441394211786595132767933988428282507037543472605440763160976412255752262076022125425971497146638650739672096561851277632406484684404756779789699183142156585466120207303164330817621863082552666969358431658965433188640298128413070060337219878143593394935239036359365374019073369389959042593942904278674491833076350208250729254083372260612239169317022831314044840778438453538259190371160478053627509806138887354999982697136016916907517684159774319659885716927872009837651893943995450499651692165838324919563139853067418648575276813553460631729589769305587340030314381362292413961764655541015744404270523844362507022981319316631280359395917140651145455044895845422916225408750822827242019859821521094645438302608884691557304883278853074627691941061196393819979115105893071277968694924355192250875381933326482460794978260386937789477748421130093729555571028406004085906900730745602478905949799984222024732308897196106806878058603346821788644766580033697682209038502354100813508428271136048226079851748412839903518944054488117160314452748068755367095948340277396341950590541123996199219806682143703392170185340609579374398590915412813587706571079205062196196418427139636100442462855811054607300379128229743231428340818764546624891905359522428096079637461534112833783133164030273642280819152172084751678124765032176831563312213255007162108431418468633575072759236556460574677923068633762082429447234430682491141700639979561539279782905793426690988504726832532869159267936608387223480369863704348699092055557361902405385234516353805389727014183218629967707862323219435035358437549166281236889289340012785534278775560960995699974879833242187554813878263805839790235054993697192090724234069553589869880878479565272968264921121288674129732316326358569328882355436768185332178591606734823159130869912406693344104668549816641698367530875753841867099447803747748326242012203244736653569042888407598187888225680351334405656991519795728021502362420504589643274919458817228348628762845454712012319729556420140955575703864187932045824291177367720012575293562511413185673223759173286995171095453792619668606564963109206893010820073107348189945574529018100758030512258789866705066758431431514188925138043566548438344385918537046716527186429217658710900062306591435350178224259849594780825368121829287390385505541221368193833351103454670225426584335439770223848135697360414277526045360727569378760055934069700680426801524281419012300905145999194241203475018061227177546222664093454397599070224057557152719623736351708195198531113745334265214560121365997104724941584223787910921392430435539606221887411114650576224356757364501421548283633526385178128792613058883513423912550262400464914363836050165067473248630962838806215877663062253950445880671439557330490649813385133582488839920025341543679588857284405811171394178373421113422898300558577579678172270836250976952242348579478341039755632272051832765429900256834292014704414330225553000597098141078955126650303489171863309350190860806392092721249298163844186271014670445327637063194561138019700377189060033697325400253663130454291648842224490379275685181036578576904372468750843397179382668800029603770116539389240714677685031837965295052775789557864297564513987215180489563970466301173290962431710522603016024869004306067290631648260050611952088518813791364686261944633362425302103143484131996428978850299238921294779726713821943678295720684319427303284744883748144071085015147731572697846676107075244454156676934831260219909033288933304400519121392861276353735843579135866097990159288037242983948006943778270350029714790850547927787054702798841042545516282090063856027371576189261190584246271645096695244743491763809186302235062319105716773637970897786849474825239604928431553988792139838352811142489225396277923725408254988593373984223661926593600224708662397851982803768522631035832698458788504913168183872715002285725669379158895242958371524240175829506354666980525887276532125697919746733775700932530302888855194156655689969620642629052060424231247454400194331972860027435019794037051367742078873350306274555093534941200202497942046116716090637118191031401664096154400923872355317284881684230357079916636604682866578226385006893141416348351367060249480876143155231988758573047876491096775309240640012622325101175959123117612802317579601665198861793140199235422772377234943930562422242214755318802225793401052332217254720618175343670574397542010483615929526577247335399915187243404541013351037562236509270228519827889607182721328812014985665176849982161915997781943536007011130358845557420522780223138027461808984395090594164841035466104330914821170406322090220657391023866538026569703710283178544360769097547932120264408829322195292933271974196988709017499948598450685000710849135023553296707421629849517138147805943124193140589808339082145671536279544029728309812551750103110879605780307213252858955617202834889352091056905620711649084675789248410195010001078416860251269566069200224793024102468921705412308262235220331854654257615431940001138817427082581190641732814251158889665478396526065519019609774973545481410209863615820122595383289388560516582163356805635172299625404532150278027434932402914430369357206156971300275401132501526942707477762728232081743391950999060085197052744102114254023692759362141448027792294198267388420104017002966187814307962045967799046036069579500207896565487005803040501334675868852274545648012191460245256735160647693539757089307995505325976611058143514527047054419550744359130070899646056061230425046219164071668073305435593781916499888496341793265477990301960694982156267537423950743497855480456734365761722716332704587668347101844454221114184521401632841684237166936950613028294548797448894485543731962823710281153389307571753731024652668539162888980250208533260570151753850890407632684273323774702703780939851075310307106785482402679215772270814737848985297168547426424367133233250898855311193368778707761797043432343320995903905708099179351707348904749173083999820637433801302662907570665352809224153276521493865638909905305704577692642488276386624297906019060737118964324731506033503867632945296728295057171701974016342705295074965331603437017866953038554639192765988657593966831737459909855662188482390912894556528433818529853293032818155698806089414909391181959723164546604688080059694999845124233197586623364803381338265515987360044916545126625047439255783043574313577847458364356532059988551706394828701467389291513767048888577677121454416702906565764187686961941213785445370535218511302814988704410489404580826125879381181114421075617826897099770046230195546976460633418264772137115321131241691530124758976085056484782667411485115889606062148923509031727297132385614377632976658822215052559298866500963136717881361584553290812695175558919692003540295937313151378119418375276762963583672509265061318523463253446269926599461300696773028582561677852386783218886995147322713961847663253775853767525205267634188995694754278604827479508125608202393349075522905127624443352723595388447677894085754659118317113067885195766425669668084299883438303729324336014846276718171205653378223692132907842113395095859531703819786851160135327091001106643300698579153768040157664168909529092911338131423560973210570038575727221579464098452572229549823230527382516256685610676323483687068252817751512682267962153720854600229485878311795392367722968416134053887105644808420062107936655901289049325497996546769480846681307804676166390425155463612024830733033477205744115952825840841088736874746938407378934546561897155174377434355393352112777452978138715750223949573026344126512307549651022427791089231717147093386257946015820124864956864794412125255600163369418876123363616104118670791322812552406651249535682699969984863566903245420273903266907465588000720872026230535329338884689167718177767625478938655420086752638242171464004537026108673308848783062495800236537089846609596976706476774471070005176878476294822693075759495814816872970112019795616522768168112434767907209375441657151010590726524189361823340513154440229257262179526857058891895369820524391004662229773904622327368028206799614897129469527036697021207568605407419187366594725043509499609361128064464616929109403023998036690297646758819640697163822657583422372555043338828991684425554266534336995917784751962510545358735782868003804101830106363127586057611742931240959010585706335583276810974537973887289905674552046804125638547745891794272983966006666626779753559032316097067929898419302405267764742669671690634532196790503938210510025380195824000901943605453446735417984322005166058918903018072675961310790805513318509483849983712344595520962616401945641186543455990998522930435174460227233986040621211787092631267431242375330432189921756513711108747995780106988718258156499250813225987719279069828423544540184519075030269617069897425434018751166807190818503071290951842219069739152865033067538303956867610395707850278325493977051949492084595507995009568212581957151436488668936483362228430046577282874136593741509917216522714616689992797627550696957197065409788492558441614184974459549621688654929733340459160734703488054433419888325363291249995352307863112398598415264825061720290659850474397985444109812391252618362122226198053875475586985240377283317009658653958152223897231240618873259144217562816459781578584894201597417535569483363386982457928606678135211072995256103116625021642220451145038478541614432727736625207183604281123574404987990509961086972905907168756827249253362411471151207661939990397122006095323470562722392161842929164975334255833594653328149544883046363980771360164631306858299131885485022610534370031300705154281137321672059036152290021084234869484997536669398099247832815346023217772562123497899583394907703475732101892595335536522503325856495966307154774560427871456822746001828138978197841897350371270545925504404895736257461862725841716067153691141749435781764907788423824999315859340528583412190567593601774286536488057146978398753029772835648026863639918717769562304503831131158617444544806560355117041105297342165877920840578306174359360176370179030067615529277442416323609005471186783598661290648662755369995892885807225868246763044524863558051158091793425650948859319769816157630939626282388244024210064239090396884003452003894343506549479076440236972033266018244692301281108128197782001236974651269658359072181257386965035096555881674062721936665544077086896859760558167669412383372025186512445037040009498864376103907876570107440884626365177813592039212506293539590351835451931014799177032369306266509921201006477891508478245209378919384270275638964237963097746198519190818745564334891676908560759709927456778470787724353534631629840311340515459679077534004651372651892128489827569338821235614116373216036184055666336783689194443577760818836969384437800975059954564172890809634892875412846596398863867145253781961660458818076520779744541560252451309616370302464303527721404150169630226439022443571425084172494100094951586040399038465356753052735505924651276550285002830138011861317330775383602132880624166794090995040359283152204006611075418481727144505557946598082479041487285702328561159390365772853073676363209678995519437389785266176253688430252882245823005723189818299018412717042690974727442589661928071750106656740320971218287931036593031909125762668266272103602590947342559968500769586588516656285878889923914198522131065577284830567273661972660231230377597856795455946046473021191081280820233584322317030455692856222869500082022725623469401054362338789246274548926706173407086243332808558257027878874312935155072390410592443601344059017631842448239718871695126117430008107570624641065154214310204311684167372535624459984101491779362075048185313189571393293472430907649906271453918271491542362025619921211156205759496260025212611195325661110119337355541740144313538044309958064699335325370257852284637648693025990569593156835996173126514224108917689350186509582314382189385767644620992213244116232922019494276934351308300563346122573226189724002907484062498540780498441673237311661554592966545994700132790984213056045323216659701016373331834823202600629017456444566494497321650390779965311953596180347949776170018674819363426250335858799135748299000630268024631553983861283956199921887511975080385507140556906775323093569383026663263834874655283936899411178026240774580164585409500112969313257990024928481813312856034485834122532842069252834244570714046744442722721643205935543263659952799698212378065119707769049485335205420083503433250895168426511794058393616525769669587961196442733550089299488501611259615788558801407777523224503582047986001165836167410147609645220542887373911592375652997960948259640257964837590084075363020563876527418346343885775907368390326430185788154582842450097445642410717918475536616554089722473109102940089892932858090116292587397976593442781744231573814606506693180926855669160019492699875940977960371941719566259612495374495883486825935972927365856826136479062513537730534242387742186799060923287750175502583953496866030999862949215909564666817375037243186276091778640409295642091157989846187194451309941581138358762900281351086091612085342388378551746696672581889510304929644366494124699068601316099791789148747022860965492085570446605977163855683147540167086699135704970159705198192130889273161258491959913455481134164197815230795145407394530115354360161942651544506016682650237061215700229277457616841577112006701296836346767143846328232169914159917708908655297459594265245088324536637901915966879526660557060841882792212479062703015018950898794295946411115243918643161855099915401769226476086137526630104618995244009536944762852186548540054859474416786656827691160266342330424890008676373132557294712097574088987896709384409119747254713132062281367864654362252285872571059671017664084355163197762209516835326859733500254128740727786638871748779328474795902730877260590020249720118302333321286097711484097741295868239845752045605413179014280633937550890610112602576229925479183059015045067385003736124585745404570516165305585363616040086630600023858453631045107506238956802766965803716764695600291075608694357079796109756150832150920080454906694280308380329488579735123034079035426851476995447373748833813126947462103028794229388194654377465177013757061908135520246068404345556412742133905035649034389010259676676279624243368135141547832592070692594999068815919980179329938957284307039861306139911280265437409743426397374503890624486046940852994402052502915626265026800345829637557210751760627065405436925667470926212483166990190958281298720721484456585005428407919137258809032925567892653146373580607673266970183651765751974986392636678084538093625944167872833944427895445102176453110292506306224752682730296543562906918285302416751126800303924736949417395574328839398939916899911240651776777276221606242557367620350188022595023120079296017105944249508542364952311964651280872997015495804271403720973072045977122013749630065292214609033676372127520423417214972110661290023266273054617233897258436895170486991684260865017516758430397298612186566016235169721125874386128981543340321113338827134510455589486954800853776421835189798797115265117534509292546784349767891672858082231251540380188156852702509808769234412157037085047143036806905342142975642128431769400707172061999012206652385365369134494014159783578076737996587058609052844246011050798552600014889569194196199124093745911774152891661562040669894612113708666418027607391665474351992581494571258106288771924355791593709513070973136514990270596874762835525539959759216557304593362305746297659335590807655771276523078521718329016241708950280608713543779891556132582638448994692372750293539631300189051784358385309216574311261069550802372602144285789147322947188655346594861073303850715626534826570611231443327295962021198447739908076961202032951195103441085830095127633835912748481983815068353636501492082875857101996920354798599931739718871469972243162877466077772421525149903641268260158299416542634196125678064032514685876367244986931846223176846940326532838087820008338661011492916800704244112975907840408433965853175014062579556926734038180532572454859489185391452863014177858540979333027534714903160605961143747821514089634027330773502036039635497281394313524462994350996874382735323707939350963515180671501633875065844725077189681130122675893621903431884734406682275663789183462277768709126101117490109719742425928782569553030630142667514633984766569265567693248870252604324973607451854118001047996144463511689266966416770312822290184883380437366469676908838830464793723220610755958470220712791852310875179369701695262737929944857932913552721275531015054673669044274311495583010041542810061867458131870337643167056588922748505574153700544588970625179700594107191070331475300863935610174192779793132716449261117304525483710128577668731300560615422553102386964974374633612055805138306219037753699280924909532676633959660753500152073019653979243964261529985193159390307934432440183187575288268209021226351430779294967045860275068796604306555562304788316925081809945567882604119222168958818617434150740729278039790303378747226529818238595475423677948797692323974334439893538337792499185662481400793201520564490204550718430525954957472185937938247290040048946086030945390535381785510253551599556812821087348572179113177033113351641916598103976426269273911937189977397839164073605798659167677161250175606537737570083028055505583133361415409025224479701811218063342873567993903670867655101610038122119716951453389037550617889647814495393150856946317923779709694242354531731849127461122643005144350785814276397947325179533322946584611560299968676211375618354559067908523770290853356486064567222903003263015655629456495574077639198746717683019806330746937139181914642854864807490124809519988142523562621885841533968296039424043934623615711089549058260421503275798113603851371018498469483191617286932826716206707894919660987187632406442400523427965120033716630270865115219656159881583774124400181740415169038335874718643430270056365170470055084506383296431179779995777194727236009663909659991272251889634827463145118773475095945941035771298774313410902733224263734336049075955763619785470897943685011792441689184517923924089076981112233253658511863632058568099035857113466076124897447838189526462487788906424144999612288907672830217940654738615300884039349294600821191963879235463545565269280048816979120017054958377487084063815203696632822058533370524663159643075623920092292863155052811465061923021225560902953337019554056096722726963189582679034747382824287565111880331387988564007321089898624542582229767295417986871970835826271390047688569594789929548143840223568875721411397235974105806937199839669415018090478076845312320927178574520511796238320012986044907918994446231292811004654082033293282878173547482514112537432153104447584067559858748774853618738429648447072702205554390114024402282127521591758354581377410480258974489820588971293085317378634549082582784305742544021963239222712513746036997172801402510688935450220231153026005389314325351930783302269611693169519586092613158359585579840419575307000221146850404129056280755375674234469926855488833803771108049463795603963754232094729473041749993690767012475313040583991363931820388016481631823917641747011212730562026704917405226422139837157281234770152133358845629337199793212064669299806271538286720600441938860048381518835486382066290357836912523957452892461622866578698997100249014806934068520307853847126742579200223680367482370721495736688158163050319721404700397169042416542922745563821474537066925902266615073422814774459697145589455973682982012635371080052348758411563936630780979758079611156970409653476001680401809356599246747734727202730654053734588009416522296631518065255888864276737102325915531451919451464353393717774667359334556120544873016821129676853575305896988516199224038404765814450597174495872125382689339616800314834699559745756084914045937827605736224177602799758949375037701272766893961989559979295769283739773696907485132882450949462151330306262431597112194086440906685629703232079973458456248256304736258744855548536732184772938324071771678255391322046289302104258218270088967296317224572858159656100828053477828823554644292454761259181227886413987037460962442782696179411345183978394790334195105937840479772810621385444474491534159181320257780754158609885616786960134885514910276046682382889387081724045930786725097564134271849313978707037831445060643806656384897108305817519472271895058333233562183055847453133193892337278786381126439987394931444746153007609396664805005149053970712119429668258956526242051093477848169024352388807652576154194400283965394021439461288188428624157614649659485581934516690845452469471917417252369276358850609915696785249111948720089790756316322565995629986365644493865587534635088949105008557569270055097185952509632960000113225772370035716478044021585620912284971164698287858412382388237666174098930640243578711624679880203502937310562078947015543741640986012717369757153606219179216938892368605108765889833414943241489162784615914549553668436645201702602852035293668719453632460642360225772224168071143126189795597912510849782067743270707382417574799582032516965357269896280431742399252733636857918100574051860128267792094155328138655603955262631287871379933482347450679341894720806193855772559503752780690416326770717657742756299988498542128509972706472011141075145745615451654906949983395405658549396816238607406582473115395322289057746568391839614780576952009450921177590353220400855808678379070644355715429273263503176394597030895584253072122147346586801234210022007479177635287187430223727809251711146842781989371138029934902803899910415249852243959434470969179167065857368300674166637306063558336781169009070033406750293690753746476277368184747406541796044714781099703502163033802315771700772673702792661999646390123249811345836819860013061233797033212644096909466616977069839513120746516508934111914206162023594037554293711078791279225010581208250623323744008013590898931982816011612171623581561919812032371046353418462804336861838992451629713962091990767832579238837830654796255347676873090547895563272766943118398105637217942730189538294167631320034348571926023932582494236285650458820501003647786668142739390404026906195370129762927278910020520123694206428543090907713943266224488717832175976660305586341127628567491961196248424795356835796190416115563204582690436001806543555908898385642796655279765857210935948593435104463129637563336460614102170070438315281125603761038415842428207759393325341287309063598859140415596585495757182383292668410272611231776131434866984558477752611597171108732747652916123526190273810140836795192322206547627145142617955032152332515399580382688418601993387690585381989953852131916202006828305461118960018636845535482736523920787386811298493228617212645972260176913860370651230026085414846525524671797862205844351046318448375287620170841954026207082026966221895505029075205289714691021061426757693817393190375928914048270773701467471097223110006369910913666952344872464525337690546676159525732346537198873139025230402146954012830360430658756619648424536562724675412464391356934314490453964961520862461711137355430916622299732176024048520185164530805040844738660222047919792145823278301545983880593410284155791492981247480912076430272350908528379057388473532226300841496526456195974991138148603289806247874962533974308298009352710065119089085385810005871970268969433986358806886226118584122687083607334608792415718653574770925204740790400910298790433901856227858343731294934550995355331379066163404700291698816041535933255673365397783294966606242029746159828516720485578890861824037001862969952355439621689008635975395011213677340474482092466299051104617095113974478352112276462255072034309813956469505642384341110867222740790282814253305425937210727780814832725018748732085369707418060813003679884932038784897932458215256665474799699730130165535643774302777130535889560107254344477536798986925982611332280382516305845306672788161491819565031148093115379341562426939869621739063908617768842330632989349753334165142335829304308841334586127626979941877239955921766744595994820652658094754236740797933298832780200133546147947370427383223234205823688221897801473221826851617672682533700814119686983017473699287314265706173615081942067791099876358071844200131542823376661120435469193828929175784709556298558475778032183755242245060839845769014521703709297775042307870544525972553017088325395422386996159393864229034278333616115453853717468179387058849771066614973198766958654119545188583485535244994692417440911120525491146606222079330871724613570503498425567082247842859395342575030871855882944346620162795239177487042259699745981407976491993634482484339023272672720639409069531376239978485893989749774495699775982109540093071100318037037109830401928315645337130851721960800380788068949661237251939688182143830511346761069561159704237254505434380340150246967222242635874390621593281518748510288290517631747153733295906074908022143805424328079916713830233540783867285987139767047257789845161469917161635944251477695360137977305404995075433766170603690374904970772276226701706761563532732643919221424571221424134378075309376124015622191713009328564593965610317466283548609229954472562356018432295450115720237595169313674833305690453579708460439750367149269603355194496337349769153492927433507512688912705046671875548723636089107935078305040598619765267261349089728405592193619816470726382136933825942590453646073853820543819533431600029582477679867007748019582607082207521204990983632997686912243287444903245389771471834369573353396705841660731197331859219552639755137596310257652475492101090845554429713726417302624245386580782867118382215777708304582421689193027100782970297491209463025372236784670659564456559814966069269952583487399061887198632149118295791827834628698849230993977532603442743353311572928515373922704410477667605862054770120721214864650541388959349785002448611931717028728657449046103341148149615011296457021207539303607205908088883970976722822252085206111438471317297737780754717195908686923024833830819312577468074473337587302927361060371791422736606013773646828380339493650796326638091484423706982425641628963152507713457935034840439489241802286488710799961706478085602964679874001716612323103364892246050533452160339008522418476997572578365274786663246841688476261334852901805642976270624019547766696457402851200325834475662606447966736178156873979517768338814184661387515139635182120012950461603456422689871603685412098183435785472853376209591803532655386120437753904187170663548054904619022596229690431881433665572907323680593335206216022882222600770709798703143702814806626699429168759190339803061580311286726007667919022608028764834719613994473439098499592939447285968504784258544876360055325858412325388674853219153286123730580526699587909683890597738181884085288936405334818295488757844450911681776348557917565537719268481091062132388795425879548663401473678184715674386892689554665804323594721883957820324804267010913492759948183088282778980091890261045161613246404127040463136065344627134130513760044702259847123524062434420688633214206188127413085053599602208159228512644941573987591035511186415631713447391468777561082182338490930704977797662634066744838274622996552415275750644523871030797162803999729728158600975058673702607553080739862510985729466526196758595542649474687118695842013455814829956109131718152874575937023181002957087547432811581404724949207925449731248275757620168026143587040999099242154862229001176411704350073052291162306097382252705836772568866753369587651589457648158106607632182504087579679782124242338161617370250347162061160212631626168687327587682554689767070435671584114771149922240367699898054422577261842336898947372387626781850234010380198412348542803750897696875981123710552200632755290561885710663433109138562505606590549325821631862066947667820135550456820404958528220008673436237839634550849973572214871399866133345687369892062140658377631640706219753262373724716585259011716622094880679123344092162065861932850469701686519496928570161743580421718312563905786202320611264777301703273289416207081306819636380219651643932759648052716748034267299150308571279413759760165507614929566825677046382204865054104424518074992886851794864136791639846425680170602250110735879715456813382311949438126648873598430510032874737152824479504479225204494558146510562618180949705175568741943828649329684272724899747193449278078652692255808331604210412599061315080524430402590263629659197106789675790844761171784842121442320398586005417248155309164122671759562018985838551735365481155488433807853412088526154657311000933674774981966341233246487453192607116575582154522589758056122692554482599026557965373680318720212293029271171464453164864433906409189445384744307274198958560495104726408188840205138231273734197515194821369667617443695342037875209685783904591255773281271047951508715027326790055435943708563752851642783913841622990684961823820816575951609437332107569993952220650915097849832160857814050495085860131168981192915802170190690804089682560106614930780862442367303470475421560778027374121832023519970458274177566698286701629890400375840511896036570997725020159585438835374403376609935529681915401284266725883446395545014838207338441895913853701358590046210819700627411969729623999956848810613454480902429696914839119643604453067919820374931765846843317833486276881519578149913720447467744191746941642178759112512725301315524177482345433773260147954044374789993878778922575367257653376153108498583904044078487005125631979657697142734023820167589492498641568031208668732267699797838698913664803756227816291217994166906484354968300193476656362066176110880443516632784907339823237430044004722738579613987119106173083180333870866367414465228220518178501415749158320624289593942294656449076615587934417297656675287924289775925962420558236086030035641116827510824693348777953843412296022549357558728516429685199190501371818237619159255605010283745165691092382715332619055530012962145779165230603456935202017514490750858319555587321757424824641523568914258165060403326714970678914579597289044662422029352397605859022901919633099453233625558789621386533645174519112818694963947410964847157802289368428968444249966462610145658046993312553473193308166993303536146503080932526495610939263266869902204834722709599842510837837920336765376986548474313090078921491275550208248920505051352313113481138720547433123776876949350732807159865910238213296326971896646767402702986509380442912215376797805870400253379375021740802682086657788966416870963729390166711061573011933647637302229202942192716373148572895703312185315728482295471178892199508372847547572682701900433289824520394465322623329893501510049697422325808273127979252696227387492681492272687809877798962252824395683315174383368983713081655923391884677385514955525924289533466013139564163746033416287856028716063672604813371703405817627363261223535887236773652669076505668750099360885532586674699794968199867733633738220022722083491300958692290703220840032258828265835474118635148710956783138484275491583661464939657598032891726596492216286281347214596311350347926045096538371175099403121955032176510534136635002386447519121443772141754286428528532386049808924332892826277484187896015902353131470846620387238170398237524429711990336475756470260324640296136597109200277059440609241068134767155210726102505132585838591101485320451702152242412316713590684552911006142943591862250162226005838811718571717527987813435993024385957234231922182233091187404671208068700391640701572814266422701388758441923691425944748441362428238145006033034181488538386684819203942486380207752955688447970197118695424353113044090739842713171712322973589255339739238296726402445712190129724616579297180989195574839376861218331334592331644319351774361192883819157234200458314711671316489025022135861346793467129541455829385664072940607852447690042873973697567374038328769297042291806267500325329727587666016833692394386479378552757324713296107850430331047742485750648181159102649043206071886134299182973418020732864417858062312660741320618212210241125299099508799258260979294980622321400302319198585818018945343191888470079594657327504701818735401174799887005469207062433575675483404536741724638035679932531509410212758591771146370143017535709797685150140909267399335580347622573054713018375458013426523679325172505180079601371846929480764107155438705133556893095565292285814335651517497614058226008722774905231916075598836568565007675448504603290900042585374017713767247524007711543741934976292383585667415329133587510926121817711400614040150433362946013528331399019581693417910961399191302937085793976636625638187717973791834850949813941761102692751993610853863992669656111545156370575439101916838569180529602131051114651384388749742870850235730591451022230287238055189640101599985389569710359600760443940467997979756675732375861908697230625875323845893548664378558949690819092415085559453787019386467241802272333195773301064220901365369585482476589435671560686641604168297923022926090428047321560269875757053701810953260459917272076969525388099394386548004157565897841740336519717916137932170567435623406689273362692580452473536506216259806413922069662994001737651621026973044151917771385447161124377107039803015711617385932181394472014382467650602100047106216864770103204383754036627609580650247307559008724990934285834904746870649599134466450056718966531689554321947612650697749545886704799373408677322057711667388200019354847264192595751612485461435891336101580084541854278231840516673373695585148479658659556857850240532586803501018330503924423227394690281618832710751331777353792437914360191512612929199254078235077348018890635546974838383158634240352368862471903284418361675905737701482912792141036245122717539344975828479245301743275367698574466305656046395540649288957923702139719582358317514721998450058698123390675618479805706960774126011429116631423846405616498384870048151024019854565521000316245665448553371273461190984678243051876449775334696009127743092546052135091713949445854117902173201875639880750997569016280646537288788334363767690215347276498012661424636479575136770351333291683015517980829090323196464271267271267986356847970834468859036725813303786253264528716809452516182269156845803913052232661938068784699861624087466996438986215231625686740978823755986174939538886827639253286496469064781632967623678530268610904303569516438262023440826592443889239138337448573403579172960693562643631814806903206196525068139765388158253973878158344734941652769031462310531669756514348027240975853301156163426048664290744975063750707043075505532344357467797123326042714073091768244471736260466311784269905154056976423259326111349216843578030393351691920117543490294122451032447577415401878763674949986318988967114319490992318609504311771144826141261080349116933113394335420617333169141927758620234780556475677061357215373977341941943530041569342418011255533058364171705308480585545276171483744818840790510772194854085579665334187875113999985068180756318538951490141819893824751802063094174114532624050995267207797681203899456689645797091882301113456341481462855722887632233786896161584569056085218409081421083190499090218632959408798286226207645370595550648352056592649772465024667131114468524483007574607302976147121828017175416196045694679716656858924155747517293533862807496602513145214499733788654776760146742013970494890102582992656294616727550248844611359151899128607483137177184975944845999338277788239459182281392900515396035407545566371583527007807750322286413180228859168492523744544762209039323452673763291778293653340858076645960654636725394642664818845878235869738449765962764862089195339674801813510763036041459615368337086821445752305282218075747652687840104373941260561123915422946888052587644288195645346431427223693255706747267321372214250009803554236503491087109950761917748084515603113360214463680687503287437056535323127172747245326430090417091951964786086195394823907140747323192711388339506825026166725397798305836314190040401423212656372443295599020900988785468609396583896602717630079001603848250850886882110303041112566068092446374033102671133008908087728220848695231087342751695808867643155050790806509835863410982976116679105538525408553681034710210053033289866850278589485192246247513058333107773217658342265739287309953510852454356488972198869319551035422577891362476890012628402761031944166731037189539491293568293536403707857293615482836222094543068302847693972006085947078739740448180656886108755435007988782044650430827619212866150027646195194203678856400630982713833799480481299532750520076626381206224373912769056272875434814142731182955949191126282194965354346020979849351224206752625438822039315512957884104879417185549785112636690006375823883026435109299266909546024184450994600758812886739673507864277681181014152303254830362421011122161937557651189163474593128708037701375960161241773537311014164425990305028721006629464228550886200126889414341537227276751823936533396097013159798369798501492861178573453762857682106798773022479143212646181437872198037039297568134929763144410903886790698986791711800726297517864622491949703866805360657053626294452104045903302304279321527710374338193247166773691233881532912148427899156404657971869212345792282598190349125539102999067918885263619389969872339729603479346364775959741738011571367253529801774197500074644607452690785971542528739383179476010753855557684255894509046588192372179067197935474698011578397844182387467979759079030155115028166147337556636332383188618175089800089060744119090405914177179306331960592320402780819074990641135226550604366334351212998760918110984932595532666612545629199484480039539696609646377022196408241586130015231066146691089769133621590042018502731465296731769892121599574853655730192736169112672002367734690159990705626058536629982162211521391930572911506233863423056358672439265517263707432894810361278977253431865578666014105735389111913313476061877314490513297827597352316672406459408928835354203329603505412943700285880606859437038582311399897601140482967847202396908259589722859104266497927168150121903034102392011342896133933291786593783834262807421897596283673985277074430055072272832726192821894739659440029316497728485086170845134260759060382301306453566007980216451557867651642245635482405754210825730416368914970002353352380469497981307320684777286181631272436935584443201001845277084722959375225946514929432759257541826118089189149553770201517080333799330377117291901163908983010994314071549710925433905684280551649079074719868647042944737456133855321468830756243110262465132136138513499707838689176815136226838578750937505606476036164045873832475464652081146535739422682858645577438116826372556281002898570488871309151539708403141282623420043830895736390787222418154097403262388389138743835749488681509904940632747537411791573642094595445927292178554145282858669252388053045149611535123234403277788108239031478525102383929449932289885348486717448234475826765098621557361566763302318748354888614471128838913064041043407568187561831601327543389966610396870671998852140131205029393112172215033748535548446226664440556081069548329668353649602255016812065968312482070240486138123813933256642975306084298428933693153466286693363337639532872926451497818976297972382111762675820337950264673281243549718191222233329065343120438210846225869971047192238612227595588202901690191930848771614425789114092349430334814540017236214740860541068589838089098462923347512121509810698318641743199213600707598974979769107629136903157094789138259687584812471509296855054769669528035791542423949448731440010416351496255479010218068045436747052796967765145531489557074604830827554897795412649390399103674357141988822919302331081807829870611015247339804989941547966853948567299432045651273694869317808627398250965861907575749507872324136563276946977039320096819858935688054192830102855692309794662288204006567618029922034738085834361921233928145061469322260103517558436606745908778532114187696345796172192010786869705825427325538957000840437689762119564158234745193969835116048891843869592416283917089879162931827516328995431134160811067108144194782917436493251435236964479095016635942931358945633484030260730290460173140686974019136959588500442167052420965579590717785898745029120268321006999756831406194315839497691832650857098406753932259129379874725592113789586715539068825336497500216666159861446414711346446337655241092279505281945607580924346063971014553118149864836758783956743479040969455613840099993078287042441578116501304543337364839553741505308652961029484378096587914944305027659245449021100750323616990644606046116326166959794130247629510088773577575356962647679711795817960841780212577459276612856196727393053893108099292294419970693001205817802320218885008868567616088202681788455717910062707719438218731154080400337268366689736557029785459086561635461228768602987854000585811738174719478225296791062385790305654769426955587592333100958048530782076882965502234978828356098233724967901589072247226224178565485474373470476871079785914000794697189897205077608589195913919191904795468503433866461855911794870312810039469165482068557129182004103600144745985758403204162504953756056509787033190960642214603665797373140894761368909981823020500326736350405364622392763679581327722223194776035136653282194519351092675470177942792512775890995789388995053755913042495808815862253930326291829958518281423442783983269498675634351472343976327075744171967118780773685586532695753587821434085531127332350244824018727158521151318558160208544657766069432413085728516820027065650264098206613375233501453054073237937075003040177215769959971729882676448517590964940911124929042583016137921033196145513599778849903693406517329210273346077392438028560815698550337035880887039260019998620246500594028245659824639141761790710105962021976057456573585287843059748875328720698852133907953308422635193389656376143830759203285206015378049862698098391494083340770726178144169919807092197130227718606963519125027956298547203510626261587671191608682720863813564357986198050555407338391287699814568968226733982003134311198413063877624466170923503605336570029735862988082292467240329375520157349890825321981350946026075504820376008623430942537668089876498406176426703900992102729952063533733835803735289876984836564170791043270469761800689133664133022448549517557431262843300717434410988547705288971037273420564993011256692373111230811170702323306662800484474401464019158212627887620371677825318528914811453072962477485627073254305841278064313660894541467044592389919429473856808633402007334631276740062725320712059666614486427395083075330023800116075824889676440110640967880974645656347481818337870750320300624592529901036306527159404889768685427543623274427163540371402852345613043279335196714969841247583871826652971245504549476428922178996333119551552890229453084153084934257449826375699045766203078745349387089216314582792346496062800015695501170233835598785811952946714192611954180771509691681217210151197622042634421656320851266419461505002937702952604753000804472410050314001668245058095924558069917973486468800042451746758939458773527339428970800423360590409109955850584930918012307993890011688370511602010516506397713549732670946215786223854546542536339855234261013115301814042214360719512773581497096077042730715456862945915793439909767458878366790232598738205008330760608158047285832437024738239289533484427317916161683586529765539143331588282641823338651357044428719414028182830616430083485241021927565338577149958627717608625882802704243176988652384914024068237053957607388291739199885828134849694378296830931464132110161922048921161818387435226793121098802387866927234778215118618832894694154264887971266423001215299596901688329645046305657172311516990274376199883130686533795202467366938231883008623701273034552359827013658367149809722441975957409277030700408215192541926215909139045146490116678528148650818423091927659206019332839265513538120184229842541310915548629170826706287362206188691450105824927101391011081917239009248666471941500180915268588867830907544583359647174994331392596067978807278784317409454439744501126174601623059203340594540663718917030154175936778308467899340301031198130416950425423369572792046330118938229044420580852003867199912254227068972595996082884041258925192870398293192520302115402524847705719519119266659932231439872583602288864624567182393174621110924752481502187647432471624363587450156601792774455618460332387657024899795085169853890664440601509285479361751183071968809288310708036877750982898757307074728452865014414470190209952387662680973698522747266222725637520990981471742186884829043432917063024829877710213174303852994970456263197061410136841188764736804372116264689253344495936257090520538976363351512440794982634686031119598329983256446680940796967782133066065763946541378125320031220598392802678479098615960416226951542553691955158901453710445312846406518489618994118835640642169545441459266413946944400579798564398125735919764699736020708939790293593424876735479545775869844634810650646527042465177132143694971223512656872254358503615082103420406787196807261275313874729365699725784890349770165789257238368591631947195270600874391576250201387929046510165834436372366932250617409315067532222622787227604878894449567583518376788275062631294442976951556622190394490315146181895126957429894835242837321098149398938073015855231862710299627098638471871034025018840454545233736605841915287091546516823577785878049429125243855829289281821515234766400821274790459449149059468231607179662265299813227870721194420908527117933000449831984009357357541163200307290285897697283747138230891194547418886043038657757307778448406725324554360849470477819986519395124438694814400470287748610013594013875269783345400886899333401632635655530912452202768122978909893630665592345732778289766455531597923740567434435518571878804763764694656194326686554802432897257065960519192358383335285217440501536619008731668333545851603039498284317111790714678397908940425150182225294423021446001805300601199763279750493798295301597077460496444218253327006148919005081726884888463012387955159220343389227776408511418657824369004674962741513881282322817615098536837111155758077542028462072132484313438633675377022417910698830325065853873471247609228591510667785382735343921488171246878204762625721784299035722053265675148395672237192615640547673089129024835764678156510249648943317813737666708453840347051219090511596961742775297359072169720770543346942105741762305193391740386175106818141262907678724534181502835748354328842126146240641195328819065864215170009006375539058198006356629580685395201755011594260397335952231956363042021308256737801271152419360827541370732350150078596719631311983441682508619381245758945699929241989927165057429474086952399189572305864461437934936254928984612074530840347242074409651965570237257942274574085108357779573023418027676197302858668929539230612277449190073814288144344287751979240949429656747701725634206295762273721496508176998997244501605628279237113816451147333022092153998808408496050610507975767372263558469017682012973183477943412397118736936071180789803788558841852041461807268496339246112873812823056083225028012818765527531137905502083144757495265731184450665962955425371174922775150395378062422037362794025760811053880105920853538023355251703209757936170041598701991884600343819298294170491370246535060799506553922062993580697258301498921661497577590934331111174782194700790904961622747355701731318677835657742451251635335982295406608742474233951839416754383585231689459144577466892171374260659991495818486984983293979563558053189893991502917965149333263267836610322735483321706108251361848679209395879396981235886303636225758928178091304239250648852223213911630230086792628660800027378343209958396329469410409791452042043105909631001700581812881517806430908226519187742345547816409841291486611831416789246585418524526131203735038999222103497269984716153057730100512450284773319761316938061178167460197224486737280762417314668956265342177984127553115733723973944957314018380430260029853571617310806331518945065832089868299253652739443549607308514655754690525330993843083833345964621935662681432706426204109133425569010789908414048282659270947087661998004152765855154410201084396696023619794497267890922455475105932696295396220556230732424111724278137908676218872867556309006219380060764706714924993343733515621025071137710374564663489609468602837245444101692767710397201569703499241394087116726971823811905225814699477980028539836318255752587273091130891922036138176692698030642562796140710232733799418539374733159343629251784320708648556052818043843616805303909100995697531014633962641973960426216100771617945295920336733253047632202616885203226273295081782263904852936085318115695763059115867837837295493996450747391955797317556773985728154023231825670141874883603942077152921080806318652041513119153583924988939257447386508961535328439470367196743044446790152110714037996681929297570562390475848780382818285941276978161273903332395100780424773238792227381763033067185823267901688737355197866818484837035477967713195508389260456116845780444569831250293044900621403529619671026747067552490517054864373168785808387850963959447257037759415723162251509389516530656813614857032897272460412943723990053208348817339314086623469085195537188686005385660537643640028377432739726281346478336149216690835601803842627250345796014383932428778173139460589837532338949701922735126179797307428548904559571093298807087764434619293312083266946492603828978794383053246467396355023291693711562715763365129010056657910887442670603786852326972074514187434074407815678776346992807460480660429652357916357587892684078434724529902009104218397931946442747516028308399422437760143284595977457550523061698854272367105708860978185934776925411010110124649641562574712501499580463735574436518872190677182698035773651756214750024179866795044793100664900790246310420600080565383967865935929847129270141653839230527188426707512688087764122106976194581201016073692294224199636269207666905558667653080343283549342136965699725699473135041446367888418058743607035232838828273691669761300812340666381396967022617699674193231286314957863391397390693998998856572954024737516872670341287475311611973899584083229873991319974869729700517793998964881819287363659017955122047855879691743162228722132257114864467916813037913824934136606894322851184438345716248429763644183284124001791665990365947939179743472412618149760740238775417623371249061553828103772752156372618839943575491492538733607885706275553866308145645740898359547439283569377629978177351103759862920345678760075631724905682911533425813714840159913761203608667965419027787427465867824144915032480368203996624211353845595070083006547182819734325609204421087799013108430749335467806963513540601698267771606230739033431220046593565226661839065228694742920876594600188447085454044490554351963618003570403791277527407629326231205917963943297045912677123517760424883195493784046117160408128264742662299324092498051930443599713228470455114196880408907526812692001441922502942390456897037615967295527303547291851450242777795389070019088863502916407707583477803233424033123702921977511494257455242434664889495871626234756255177791109345152626370109851722562264289302721488086564517632555733675506016926264687648730961339453818234990005238487162706693356621683308097708614170257929572049877548864366606821343340819340164368602040781144502533481989427725119491289486787624938753343570766009342545353451252395262451173873433934684521558116498796882449994529916951635039898004535649649899261548920363997677248438661164093851845231807947607669491739033720184091449818220362466173379976976404151752040090200057205066894113535885535424930678498015197193981725836640766675490154450435390848772501151712659794853236213560429242373397055983130745147445785934772570250494557181127634152541581409064164464609015189017940019770762102385094627710563526360195733599036967328476696843905649655508895165219617220265845311237299651449440037947618752029128142226974594054977461945652550315620898998312740589015996126030407906673647945095973987832530053792384497055788814951074515244991717127901787992245338453157448164138557819173374285045672147309986180153133536617213053186056210503383009189059940363800328261371502320647844629109165045935953321248311655715802614943562367785939376626721691668324695800953497851247707170518905793653980626181409612120018275573376933238433981342187666411940832359085325241180413911225565319632530704916289404435382991757349171468115091931458180250309168909567460301442086337482377059301154892966568295851400814107553872203325790595335398076717056040222766650414702126546418781546583699859510531991913322400229099654578488660901304101006609582872175048322755065676357350672950870904157753502017119558325379668723711573196305092024398736294130345064353490544791997769625071155990256100843694185922681833408143147109543756891915174873820698459601888009313665109913212892980270615353341321013800317132874109647388927895134669764644796265970627911378192251436513282788870348401586473348153191288018029579600908771691899931494596756175676538490157759104984000279250093576035753957105207074359081307207336022036824583181689511327574694102698417875315193367022313301622910753861308845708756757368573495195915979159072663965469617196081975283953564856364357623045777470342631178487135919236972315735129306321306584824121441465213185735501780295693155916305465251542542342325609355783216692036208021998222130456069589304728442113886126137900595407362683318153505889538740246637054992110291360857557707162193078597629881134974078492283592980114041212789982255696921081491829454134815705975103678532367994177935930140929492635594371245465095430920229555824366551868140902894868026673767191559487478135033652620135381183605723811780106009250298134565899769679263975167514232295255891683386312730845381702756978097655356936846349227763790060385382104550396511179215178789381142307129596082365653078354813249253101619871384807590041026728587724002391960557392665725715754437433892966992132823507775152544828313703986983320542585246246667457783077173053632346959575873139722185229589467921034399217510389555926056917839814684195400053552324392896473785782381181588798063898038881898597525188870728309495693788421418075035751981839585900642970358256006336300858427655195087579536053638887393496937056458873317602740507486942675064990848008866897723734602144533586838228836652928481413949454633036368459005053164761617485101717374735188166368150151621572755775812025819642207999229011487135609932031450663967118167802681345200383796210289106214358604496239423414229759319387777116691855015034805060417814778085867491523996243793772040677680421248314061476437366614280710225918895256995807840832926866052969358414926110577379412274670020902253539032654840318135549736465464813787125716787914780602813780820508219564388591372081585642266726957199715430214507775001625733416164676749105584196975071045671663921170611805474557902201700754347313869894413370664035473214358616857240165884997555157303686645727036549835489212472470875968527299442123760646068085463202595561359751113706063753933484956377188441240053451114148362159211512014194635260533966864776210658871753680734780737101276295773031740919504594210438445550076036843708617441587788358165255951657012394705380407514360803966179608160471914267095402312191303794006188146185222142869665216321777142423735761593533269954465556508412450530205147285099341321032642757179859995967478655130514700434486498431575666001816660287654223836169679013957690337534734187563578663665353176645272413081320413069769650449435266410156454407015113662080669858542755286693669363298056349600324172137525249374502190086805426008857987113853169646642774351856533782479601029252755076962348809136151294425514879383293667051753826459567538148530865088703912355653379288187186276460427575506871314741466380517195757999869053616981786586589507889408483181904405927584088042700739315005048947491456702206118212189764332645796179442199267144692365429512805863004932120405261878095630680618597049722228293077186404538924355025591608508466998609723206204154678976662323296449261568426584998667870324119708377364248648947660399294912159545082093009645910996325056617431265961267071376862780902221393090908379448551065394975793158426209253862486591512701986978206292510926482813736110880287085703829887855417018874441393676171551404794613280828823619518568960328148045331202402244944641490977317420918772943314568641014036916945943241514672654873785903275138972484885523165926191643535976863740613925870170948282615783632944008727121445031058655198448399904705646923813761811779531258172251394531678744319359298844658873056420497638905102816922541672059503866210904744799467264914381378625379798918586704758427020048557984208232675674237071115339166319781959058388789926366651564052756569701720249883819128055303528766818639330490548759686540260947208485240952656403185324289755654841172950888647903112751019344419880428611435822667849021886478931242172724308387146302502275567864039436833374741031406805499682569896844791803625826349721442509622056516379171571961693259180398419061421676677498034109821498625408982874237579196937724442720190509157898575257673580688277002765515287274777626151517357787865706735839224550089120541055699388595761083611555810945905783312735946976988035836560866311344720385679974076620440643796341593527690495186632530070424816973318308513593786039796415768450987123974016040544951840709134441096753856236889051710580866745587889507641966720025208306567751292701797996834730636368503251762216646735559582337069479928509137571126963105885529637449450921223276153296118901508210088105154009266323549868230129159246660931071765178296415405485795187522175545960550487870210119422432994863888791123500497021921200103610650841436697580185304733068404851470642003554365184223724323114856389938288072919834127158750175178325413672699110494324509918554209679748017694862224038639644623048303359855279235315230638020356888522244158234085649628228424962654249507100156609422163864818522177396294756829327563231730478464013176602045084343671365553374406148161183982777908826278311021844436267128246793461033622932675867566853311186240495837678561651883120921477957881798436140686685985097977377770494654423334642291130327728206589847171912523802264468769638739435580676726070453334770754486430433978621378162185146727047463045494897954830105509531025704578836965401720622865446841167180416543936311303614046076782507283047527792285980763753750903423328218682280248657133379780877941024943615003155334743829102271376397116029450502238083137672737531528715132204108315076826275337616458325475160420865430930725323927475899127479293487879283573041405394604351140821514872368265857874480839615474395416998481373886975041032112584131116747787998424255348599393681443094799257627936974618448177457805656295592297634442389928914621666715434688245891383090500801525742083011728195568952780695763311540708554261631061145699865940382208574689275385654192183292142617092621945744270809458768723798431601419753476111569276709608875549724493590962986579466245191895251564758376221193736901523682307527850865618788586238802862516650824741783960230687270380241523930805345372017975454732377220165870282677710971566485580458240444995481843436345334592092006980483586217223225366284805480235896304616955697131897566333136601483216419171026495986172960534945913713599356812924290873718628052135592486644147897481524355907331147491284972396416542465758952705452264697315887243701513146469296610845756998217697462987971820887048117869744596038160225302044113696510289261885184518443574237046153180713343790946022604359544414627704369650350043784260781963071549368266814465400255888511743791515294060835874872022677090220545483664904154300698055431588040414373014789912132246921057626815855584655899749146825944479964103644885661520551563567256718496482096185691248421254368917326297873207904794279021140962400950510693391751066213836781559003247334335766521215905513306444130281443924104969406341999545422823620964073153493015365466056184287402187458651577594551547646783216721101539760213346715423787106356005938615942410981654859964400676411315967258130955789671205703105325276639791564923796158976529668380406521825979433816957384407161173346306042204645906522226343415156224875102114918352052490012105276938293013416380515513269315319169870887959654438752180300172515732237610381015133722528350306801098607913992982565667068168811479401808495349014787336897035602985148306307313787648381027828210434392195300086280574784167674797064222534847180241413506577177887641727812788577457214383576492440349041529032406447553073813447803439824771812700035247406201249979574877541970537479408307302298209254132017023163886298150590242811435978799510764642546792091127384106297580489218832401151361571387978452401860030300633586637196522913116897832171431720902232986788832800359925974924198956466336963714541631338101758544364647786932420046234652076197555496031683118587283937558990301721640653704966668281049836921285864576964580696311897150305174672308686557027458441162458257392924185234771824796289942705938770258324256989758339290421181323106503472240089476970046835921060154081756399821633225417619724520231953129535309921400335836025046329976356399182318675300158001294655177257978798707612555815120083897064297128212108636441138436598324291153771433120130017604006031335134944465244520980014082984314841767454748893551324073048165268246786561172184575452086547258243165392497971112148299938675753370649625913851617845538862162481187068783800174896497803227011932977795000663529220642827792408991092633841391330636312770920743731454382807847474230462509006621671512585858113461080900609758702494160287722082406723069126036866131717927079787140500041558662158382257952427498774862177066134293486394893900927156923773254645471772337750145854475416382275451347139055429373271637224686915987434717912622403778654307986594251661251158596158575049424167047213307493009516542084575105861142126388566984151593723692646078399921674688308349023742598049841875209216831434381450554436390500476318455942443688767263209574397790375620727559473845216754807875157586935865808978237285763841881515282896440552526596691205389489339000437834102696894350132311842483399258847096859987240381939938413268232632703054900491152357871398846896974041459872952125434808107335030693508316958603111895198900156268679197368456984075284575619968578493186638120103143684162158222984438426982168244275203360559970503270840841336823914585235388874811074049653403469122143151406635252844365049277963875491492735112547066859999699168371013760759764178051115172350909241400447946812804254973314104902700405017534907293852389053656642836012782619274890151183544867548581432785442609629055949860140683770976586707738881039997675578035107606562170410462255403233166243316002227967504479453610980229978003701993603935387381417124526254164349413266141619149131884518613092812387668738839416990755899769284391746478622107240317600152674365366480477083667261930800022628345090884764831200064815363888200338872943377612038824750488096920866995689010287310205498329298072282562229013040175590081558661421847035074539070204904181077359372429350124169964959088640976752117008158807049351711527566393288959551804022747758778833783099415528253430863383493251671841934824303746713633546642247600678697045421497748815303946736401678521012427889680526919128891085494108092551287254634154237213801956882522982632798316807149010971072349575172639818907520056446910125845148850329896112718978033172574233448208201333438162782958968375791639748748219920756399070266592678782449677489545458553065965558084610294455277232295496895494852094336394212350057710697013381983438643820383280115743706769634357659831094564486179678294629761748076281307471479450260102354141823632044051077370028465724121478819053889265105965981390794094407231300413440632545318544160509059339944608975700555569417413499180703427468155839750177067216587916099386409575025821367807292653180151951638957974917413989910871816461085005574748855250534443601448992784871230861274901314683376850755449456359790559065022583469388389842993376299694461262990085683109958755696334458258534573643581995966410021707048992398972583614192522337506454234063704010819460666346020634271655640959073319429681895742040336819865305647838607552270983183250238322008779512323250478833906048875725183547159300464880409653029830421131127315217810308996314318405624465862080625818614996892573673323410349451875754406511269687354557168881359880716877228238777267872420453643395165325626155189422922561715478843493303537681248025359661846762792058377935597233869205465306150815117136148004540611963612690001750077279231587636805236945454890579939204235367158690511851997928755762361500302442343448312044904132390428732940167111033753282846080845194295042129810445902802786948732262735104487440728242153508443382052463296853667065405051376629379410846241738880290026520205569743618072745076022584114438529414039090858377248060094120958120770875080285708623712770611556463348872284024982749364048771256949337506366183908802657179227097383235417055109434045274231001627798746082268487818448453218162204823273381376943265429235112280805081542105276348313030843186769280950184752720500406253704905509819921541030955305686325913998040356655677625466520592966058829633836055679274600872270662380973786551499628050205134849980794028930969283506118646146337696500519271175341908106438956047316600104425113559147391880957725460461348072514695601847967049803726240950765430589981577864313574508717478153515357696717104323184700675306110633335163577089189445545986559224706447022325056962938530738230970640498554578922418684776079393143371045944982456038654967607377951951470823799094669252570542171526097199260589575813674888711520779214151626056106628961488560404908755583902111290640401059979919629873290221910790119609597212011737579123456487096293654793323590243334123022053240019203628243006282766413211511904771603560537917932267984755740014869921580630120405504057637361509147783300044439183044958129571684303345850284678629278911777002974811132250990965209748923551823163952353414128714007974333968964429798908546304688247169736669433764654771492057451561750012164800817038457405932930617950150943403879386316795964449536547301920726144029091099932669707514666160837430674897840881226808517423411783311312899093762396128744510692629082286327930944883913518898297267765687454933590132784567578471661951067390925046976397072417408721023244895045893154804113522660812289138744228731791228391496996871788537072037349026844679520939950481617006116431080444641506333057504948131639707655293503015527735106995388352369917800379156913942831225904685360067742663065909532156223843917548695361895413981808432991693382861562471742688469225868020439079944191835886403766829804756378864729991600198010113955994294351105936346191787802157723890292185533190295138874686735413612955896682968982755598578637098049627691289103027607285372163005693484864552599099459356845080784597296279912259020323382937631766505672590687354775547426825287468692308942549141618659944671429610029394814488843981349626425200484127815408103242765095491303471786732960837415806244563730662608990562397646103837318786723756563603241966544935764630994233482208950172662839579493295560416364257765165715662494941964206412851402850784045172126328955037179558115195130025319885229528410429666811738634020113169031821214518913841391923334624068403957290368489713272782825615935825098511461008107744699563361884194358962713352509903422867234841500994620469164219690471384226143532080115645872616967574615404413436523175058433176217644320517430949573345821768039909217920250010012217888480264455288456587558877925241552078562455151426991136692051046065404886149507958328508056628133344299771263690784456600504926316737373039773826303216742846262081277307216598095963955228005941312113709724558462716689422910030529354737231539628640476166181096677870926398178276926152755159480640616491071437568575702417797649676051524260917437173681134491309857020898703740070125466533103045341982941614624839722643852964966408489115089930682098620637465148366165850058779428065563402320907247610328340992136333300506029381753162389291239967041062518941604486975307195458435993010249087237798354715515099394926775061584010239584553084137424664849993659374377589611863590998185165766614060237107370342102430776486847774790268977694684670596558574499208917511205861531328835849063643373432030697872137556898187962000780312829698615927029894015961797002324784156419504872355357869540988974419822639019685639709912749223873476506161137524375048933896248202240365970525378434122811000243413345009659597654129749444673772713250956264485548159949022425855973900138889901107734851371368110834129764563793092231595789540348710783676568465253158576037661504134229018779777926362293547818940502631475042528952515254095993846508966355223801350800184551851641079523654480254349157794234258585642847543301642560442063890252732561618763193329935629381507817591184918955159312064432337957655118941063147169735317657908315731199652866957507840147509837533901992433826605628005263952349430749024864146562493410158982998126090357695740233137327068861434398193745641494159770032004605802472764498840900317723558209634526750097306817345672946676746180128775908689464434269031274045939905976801231232702112765799600954740745621848621501121834568084458717659493875340283754164096258133285628612361862454315053521184754851637528851195262652190307970689962772708515052588243770190926260753448517724687243950089084334731302768299983161151365745546886093188761190088661814409814669500561616380127322835453715156162348879789152216138121246168301811581689357312162295888162584501296027448484868016667596598471328838582661739845824001498573612319976650730221851072126830881278150383314275955337232904617608929626056926538840553152335435762954893025027370656020179340574678253143845284024265521128236945160416657274649480404039450006132069974289941631333113157196649073269079915950741840616630922048652442468194657305000837791644849647826598449200914934511617256862593260562618373482359653050749336932069696552917125412926019811801007044441477530942538521428032693804221414283426177135703761973725836031531530551747074000670037884000059847383685947712451905110720823871033985647514165698184214532987917684097781924385778551177471755459253653227944262667126729837991290612113014006663494565405564252853570028151412009731386185053125125638470933577795072164879434945730029901806613624634583063973883812721626870802599654850463675844459324800239131207669804267061101876149591934051167227472600976330077262877851903348455276292339130764741807251178019861286565240735112012883385754223830175812274150520050874592676119961687709691219132750431308943015053128786091278956256185309363729990523228774639035002028797236545765787568311983590564902592336207156927818799226749916375675710280232893258894846710035824464051685102651687854560444042643988443701464631105971653008449528936863564410380839024241928834905614127274119730878449307684064690745575491249523013809177043046996296371989553968408145452726947333924255056954566224269156355166802184067831094404295095556230533236308686647621419755776984449810543536726645927415534461657428364186502508210278372246265377852498479535088730385685152662935633793249086763988069791791371169295018809666110097307301492247431175328236642830740732165551110881588550397616838283860619782514613670333258783196450262240438968626388372597766285744871170515262842384493786106938769656537285310984657256330574398473290716249100190082816977418050676986537008214543307149572529089242094036299408383019098905459810327166566545462877617515841210437817710264152413199911348169782405265065397375977624658722549978130818578257276484589786911675203254277243852140821575222073755672504476247788096923182403649797480816588607810876862269610864019631475712798429297102979530742682043666628549173815915442952228843061026059055478597381298401157543850003449960352804992151325975855286980065497381161162630521255120787392039881168936268767466863840570174617888244686043687034145807598807178442925182003420872847036337873620635204496623228661882478839538258584911793448641797581748737225516412943744434768607198663518872045517209050806407063166306662125702201740282947586740804841029569112558285238680782309661549239405835704795389783819214729810156078784454887489488099249656341443688890703658969457525594123435411590861153183554289549468925163446727541416429400394596919665880547700435207616970803898182656582151223017895139667198742862353349054234742492795471500660570419028504766785899527342711205196782387739073303797568913928829791419269092822846631755769436933262496984018687515008391361300416737680632265137623149302932544854100377162770462529758753095398844293611784527977536220588612203396114915929982640315578254243652169931563224683428586798291133721156166740909957970253583537605322556150070018884000054867368143108345957836383863596784099636079422716327662437966032443243748869473607160280805280401671214262767374872503950039452067505107048338361698698406806847674265987693113969154451136010833886282582584858291066328444249312579722218857772665093332649453362322950879206782409482511835557267818326978376311001492190166683744025568199937283928720221062143623017938613932221675938156987322023887810763686669622288500285669822290415587886020620263638427245047620063110064879037121527104257480722065936656193119578033158063924527400857892388687365838940277374026939789296148214072346222158554731999935000148796695044163309941882181894749811869206798907934176041538836090551739923700627090210077804301806000432078717971775455880833918503932946893572294337801331413871101761978181461018452491675465655736030429257877365990912094677901670174227830582598246644310044333189561651299333796114751926855461932288358490709115563751839761633419699359542713837010076221843919574719532290573666732416060103438116391569748247588058972878939287878538489758221916282430618972601226837028849103730262885745567785010942739549043259077111483433231699181943331660846459060333755928529711450524896667563466807389116213465311469557070027873951081670473638273274762432526835581825216322048305050623319466397172056449115385294001260208899923222383555967408058024151791993799030725509440291791125106627882399086580732250556446801126641304032047047994802289673187387124476969952620562968717309630188222614108739775327371058837017055071446270243524075422323677294205319161616632353237602135420643891386597612468150846050763328847913133693576911308653889642290896222366331452758701182041943643834918433693473119087294792599282399616234722134752492732516476666955574612445284033784113591811408235985980572818634060054453379047015711105275315172638212852878955930855166119359981018911313711811046213723973760942583852956076141862965906448929618455293035581268912238088841017102510390349174945764408485185336197314116352407340305732080416331411913387861826725683582256596988509174391178130812898793683008579166630105918019455456655063637085177098188353952430483535576769640819132949238447734194357370270213978603362449353398535929480867119748710353294633960036483357429175290603965857685416572176265193156703053691403199023615582339417423828037371285377845770690898809380936959271615698254807995727152894795636792445856803287308896292748471996870418234646207963901325258237800087460564602134046020162743642282898797851373139181043698344475251505205404724264623091394096319545379439444264623934558585047619186987019400915941659671737170523108819183068259659667799257429359861474894086241418141800681311121857940944045168649086828680594973546718071446934606612651359939904785513462878658196712914396675774352476407034963481160439426033056414915916821275867306949566639245929096251851499349271923299309061874697030161063067167995143660563283833668026025157633023264954894927997245541520509022255165770716421664064103323198542827469890522371916326443621955503166424799297919959156477508264818421685068703439895386814904272761622157084822335775861242608024025132680638659982901561125775050185472128414094385450382479736362227983198264381017080042436165488261643544579113475799918492107834283501492338974951299015023163732693957103798043816863085823788904414515275117209860197885669579446807637115100096020014758666983554137014369077746274742579388091560751839258159085171349240595857215950268035317741809854804105582017739174750827697892637445123026310585804462487501354793271990951653125491089937142783700734286275460510986584423023908055202517539142546778298246243264686172315763386985376792817250764416776619087689845415612877174813912601846125887195889674564980379213668171041865737557864598384454514638147216074610894113597999129828312049752848491081605502181659808928373287307890746129259999958312082531295278073709676816227941331024603041563755799624415402667746874413828582377226766837445619737980786118839320387046157090977584728404720531665103648685146984177100016475274650686378502780257882071162279560558692495855959929057994989740232185504457419522324407855686180006879118266996373918183510096052726872962126250801221820974282284941165552699346342210526370010710843066387515321436445813427299715553583594981598706761806863467162351078447301070976149276917654808104976544886464944966645232384538230742024441885786190337646966076574206544379332237123334342284143258147651003215209907399798804632172873713307715107744679377518062469501347730881151094582186377886712887453573218802856286830159290914613566089643147153550157229664743257059007213995280045472763472342452427720648985838753949625960707272361064041230264001190511729284812207865247936930874125378242175703817789765027331641565308834159676014486713962950297620313652573428844241774851116132420929569212327562674750701195987130408770802095897997459702306524951730180008498780217882550128859100682031044454502313677902142348987902192040143204937967288092887610257732468454809568283005775296931128975798160217459684879873696356375026630329980833674329391953030010613781698011038480549391048794276310794970858539675938116598871837348275780113090401038203520468365566678044379906887709100311548929713069980731469826594593913883183806872338296472547355826763926602167826344163520604077680469410209088392629115908753475067205013700408291592248717089929585848346519875653386809260146430094191946633787047308642305093693127750329063230511231901790683561259834633422496408416868727745076394793238858178702216512783353557023892879105892630720245635539203311734334666763561764811806953583770431342803730444507402412417142796014621119551117485380292629985515267956420532449979610590673772589690439693445205594185549519817350546772166639170701331620452027272528076023671748324669496255316924479257721208112586127856959153691555410597097398365705017078184637230242476321446215501414968000666001188567357541410369282978643304037293811040272178528376978044001944953699714176757505976335604018325126830434560613741621040827645091523744221988570199332300986930426513838163127145308839966562808935197039732118400822063213608828522452663427720584813236030342208755436436251215887227087202718425492497608558118021263898513452373130338156733397338305359145109698261656672978439433935853723405138316511551887115870855795952399539011280744635234384795321717822950044802713707568530655241245262331774348777190934760346038737582182515491651227550726183255074371278176214594096959948083670454450845625106048372764545830988506430068976107717402187710546300158373306815737822907032258654114852089629890028438623269766140136511262636084070237877597299502266984515836383960178037482309042258902031264027104572554508945391328578213157736324576338996685858005289831111201241322214532613500658216048321710478576501538745152513217320284790561597662997876899796986107448315067492394252410420649964157977743472355806636691575995801994890001473836094579167510871322176028891177749644340527505387216391229886584018501853867152681408720541371894363279631331184624882104570705905348385309951535669732657860131873166398715201435770032786814176376532418680947325799499289962252026216138005655676203273729165413570530478456348338947024360583520229825394315208098705596331760750373555327688568894803882610860692986515361846520487486496791510968345534487890218241807986047300802826866378318402730964919262538433219090722472778382021019703617791138198326334324671310752982482804038589187190447394597712161020799792098552169957338798179080465613545465378025757604883094360284089320808428996007692371090278401745038981315203480196648170031901223484956289900655527553719340575042315561148923943297289877534962259885068938802081646188673193237884819337801053310772223133948019673612813766084976277438616446336875837703024389687788355585993836383843036568136003305059841195273565418981461091884615883107763490918622341995110381764626302290752604905333990811604992722216742736839264224327491358507071809839678667654288828519431398054144797752815781188024111947467981480009972681224705838846443713250122126800466752371774490201126880776330686111449581630801028338453627786997978435680777485629536815459942621819539679710873593892113470569658044956203144482358622460911422241693901924480285136841452249402219247151788425957892928711145277045080780317877747150438623812208419647868441074682898439651135804858606148315991250713296621899619806270676451527254015567281115615397922779893027897905925266353505325318133323897519483440690658231463826504309262147282653701648124773841319140405113077559305172537264917885366865327198711092076139533520373163998974009194635709866827502001512939956970441686069813185432963890283293380025858627254709552776244183174935362754328897058294857011461967418518410645116918514075223034084960963719247849685301619072377940098396110213876919574711448726552209299337809947347541458793356342009723269252764641591295196129563487174754873721679171777680234154669435205792881181410496026823394740381008403292361818713246750200667263220388457743114201763728707726616615264074924436863821169340743117706581795463790826117423831754951066048331268953936079351601105618657411044924296677356663118963588476461372002548862155876647761925045185727297541091554256700994691751777428025147420039878214042660036156730131479129560861201326421978138464744949476757800420668956035211787415863588870536319382618979225916176364885080791039875589881972077291207586641085211314241324088409889311586836025185980200668688833639635922314034854265587749868468314474016252014314841797659801114781781678941845200737310148082774417751385169232408365148508851150982129091996455051340189985701558771817228850854662925723086131197116701412276657294294578551392052227244117261299254461643951711538075379974239429678751884759578121562487054266908702069357124310077012870023076120732027248729196250402107020476054467610299251829116914941818785379715431447280413433846819866321653881922214884600323513893160000383210374169418837058669144812784245212629806248015232925846974263021093601087742257066500009301422602241676062113564332562306705771866712500109059348615711656752830458860939346859744315542788543512306369599491701359194074582176546329588788040332801125183458519032306640844559091375573585034007745114002444332915862605024644595031573284982542271234697109675182705888076913537668154849686969493491653046897291210012666289792581907130679371878841826792574004411523185523018115932275096698489423206680082213660823619589644654592538192020950892522836498526074303287673080078532712313160973980165527191620004602796777551814125708665482896978559848345724244580738573000240639285128108611734216950536765594872062720662975478878671644860656615110321354243710233088146313254147600972820341923578817837004151505199312325741828745034961405532189578264004718533407216663671503558973725476058152270645766443200133245493197329054782714053541767964345495606230325893813290474230415878872010803400018358152416607646886909034191852900874670044363721141281496042470956566238151252778225033159079710802446427676935175536343725712240550391970163023034339959295398558982776057952942322196449850156208432491119322389614601331774277097108305154518487676906547509271992898636711389822255826468767736254354830727958978763526105759760260726130280363400230685381635701653485233734338052578543385747999528017975501883637821149753675188267527163777422765391797348132820878603377858751542988163136033267667096574789855023365890475668730780446524863501258089388260946600539595478039920248166707179419995912468798641207799087098154257349428810846577137998730300548152224335611917409227004130403651663380870010381193760778530272930540295414426069091108383912383959723836583783383222123116211370672040473832807462692805639746324046803295114097359494365040534798089403798565954118452360233655269992783164343765754672211028105868758756872109832011163698747269041609615423378180604976270865514161036044592197462063604773146544107340084449745086258588131413200070030390528369146111020069042928906932042153368357956350950128362818886033322673326221679498694161677291072978102007767775695561993835997172208314265898317921059533352994039921175714503201675516202721110360813626263466188737646927699801668194216753493668683540836052944623330461716605239711526786548061885396134798730339864587640696948879229144466051766498211560171161864179014062163503520766424290535048696916792048366111431413713951050798394720124402844128500716075835834110159613483150750741903671772731009731567205856848248181254885519446845160350547515081935949499709902538416805257893219794206991457230997887882330114353428042656459654617882485298361009081210241390706788256843133761956755138335777646956668788410187673348431847641895591587488639769644299782840024313837776648685847833110990082707653926901365130346222774658586830726652462466647405748302089155312584558396249335808840327975410372377918085998444756297766787379137379361989919929534836648628669061164549170715754683042582664289202351290892696688876520346147653792298644021506041060669614942351429484191588982061045679089030227476597348598837824002046936727426888540422373473332191269147499169181226436619581117703502950987556627714036058773860720827092709320108669774018277810056001139549813160662209661007004540309947298661463742593567721287736741675755599012440553563896251165774986472182825878842610325612657655334455988969718224448973427563413254975030287729089797841278014800060311571151702296041845224112561449569301631961366160509877094516226464281773113288309520888143486183816766995204324935722969617672641573748464498327998827081731093717395323251379593454431727419689981746103731385063993108259243891607744389166790224036787107897011445584316699020639953328049533031193635385336759650776421957636313528091198817621649473573367541318464660051434950418184470615339225545868743395587390841589514715647898432680946416743117897270479082066463886169924807941025249610175763635770061634479910849979052574878404286129205973939254359838184325456461673424607472885212783433565134018531888443733028189110644237667252046166108074460932758612721514366658895460881766797967189888070786663737325847898802379940811245557983737361085806130012636595685485729278717468661757239260409251440785265792387688807573139357234739749842764517383658352020627787953425085984799409922797710633027078367221772890644215374830551696464895524626393602422570175169773363630697990923697886231740401157200053532964044854454998082012153745146451265802961430570592202440269729486837221197599819322959703934850528143447438156471828440138684766427961322072090479121799296198662264029342019810247946683240705798017524761066555526954244570795600124089615232787702172308030212714482730341116309367166624828776873226903295668617765571812799600396387390901787319204751152651724530637035033536588286038913537181915658602502502121636596934934039425765311595818994959498205730169875307640237115563251776276447775156807257374762014833300476737409863890629205931030765702365467064837558389462634665228682067325352238032889627324234366378707824330147621608700273569277978549131504188518865027095737494256774098900274788353389189305797816557976283483762821341938980053339213376651578780454593289794490400778965384018153350574748469672618907971270630634294745518889934613310679357497283589402060413623361971448242345062251208217653149167260063029405292595491281958451608395615602286911243860160135822655560326756922760637445275927482446369182792144371398248333175602633991125183244535995764509740401383702266169701252325153945315194167157587692772599180775223407496093469058177754175047292752802080863931539371568515814176674296879471074594901499065319811954456962039835914508126364212938551905402108872018481469339452996713145779228647306308772806681459605834667700736626905122271839561597983135093689865059765159974567447057563265012699804745509104943421899054782196522699724732339638378824940020086975125759549057409806270174626495922451329500372603075274418250164850284798082960854719784936334550082633971501768411886507120810011929964658592142130334710943119962158211158334009189713947744522116184466893528662439556119834123800067698153750177585823428817700757504865539618435743199412898177791434835364206508697896489939739569442481504899195228046146243813219726045094873295949600976816840326556792404640206563211490798410213014349795143023398794430832988026438303010961281100780329371166679594569976119349234103322152929731999223291052612776760405789831727604978976576973567259223939329005618225330917904316613781692026155818024190422967730870778154111352538775973223214710921138065879149230736041756913811711922550856192383959519286065243455407238321957435992959277914794453909053921588510143195151902007048383129086774926377981213013896328693570713124414487547052798544975701263705124697068095496288200057094013904685441659922376936690063583732708299585912223652982361988008810471393129783205888242478083813570690212688663346447849317215851488770999796984130975011050969494991007814115490087728640323268001246606096572360367942711072446321141303155294528280521042289238613109912753841226495914631599117897167618360029640684109837372050001094470794115886283099526454398003429362923799329259997571509281399903079237222620043538371016531210614418742328859970299591415766641801933024433413510544264903727077725734738639771332665056434987690622300467976158088416647673497841800055138350696467498874035068811832727723650649933230258115972892664818047906568477257868179009190363617847185264141175867438169414999331618259645518951915101173530675361936470097613923835539811711303419277979674103556941384371779858092223935822341050543323843380844849019044143605194408937602462651328020336221331820218146328484358196919389393696380905318099127660517825076235968198879446146703737166324523023650847103278856823966635022858690312240608268213159181522781264977702848189789551635360596554520815972493071427595450223434694618315286996059609383622766865623468635233628661439829099651788581105219225842908506071133028017720891110876356500782834552118080970431670574170739875746918308066130522886648978227733794024906435938739755534263541461029018600557044142474902903546174516036296063087506548210531640001285616778882705866543949799251060130013433696551929829195807622187404162560172982158180541535462669498985034322011658182085291342423293386476352844682247943428366300246245164299337170776162451225504968829588117435035991211119857264981184207215682736433408366568663116708418696808083460960535523378420861471897686439637039529172835002435649814409893035660302755285931592435580823396350448034773202177484140221214962287104490557681442507195891711169974947888842543814793506704650914673716260132434050976386461865885315609686920941291754460119663414882244900881442631351254185926246680531487743499677492304708903408259370595597148478040003317975907700919097030002655661117481599907949497380558655260431600060850663314717809143026654188349702956074386285778663208435507345766890065136000835297997685007668660446793413553708272697288173689113130649963854062200856240746654476119816788947955831984457017419206282282752122898536781892357838350717029412423002218447718526892184378762869382968160601041033056780282253208061894769667790976232591628670499924586127750960115762593476454490632395621335488901391713348503682350632493292869106671025422375926709325013441002208963033222653072087056777675376214780854091159016567007877519850189443375517290265737029753164665875724269229169141399313173753089181277711569282911651422810744200206160022733265002760420383672192416174297915893863619258423811857882212576420377927038066697935098554320593717808544463556580587131538681742536260697903201167501193846263003849760236370670204818970043571380833948188726881935797683314339743700065373357459932036702869811901793645530971115547097813366007430724912756892485716047600825659168919709295252768617705018985171650698399189701452371002594800384010656197745118704662831148318494030964219835541699053619242930501495642744530528180738839355899671183168684631202401210430364196869381069443216854499999386393155575529137751162917891554860563289094550416657080507075250587535900764550009695578525492374478014472857510194615103018088606934036667481331177747769666633342006901097717780932153910914804030350998987015409459908335562111070430144240970361351461505377820394580664347771185413816135697994584912192289594499936512243317828174675341721682385511924706291677642629739899009163142658634314904818814337103607968823630922640584899499978942123371649845457455641509230870291497173397285096436017746706726387824126247674498502628873380280332338293056751358136719257415724712428213844785273038696535588656399195437097159064993174629768189865365848292354184204765033466567740437466581413336367317881951476739257055084641159753663404358315123324836010425256071457706510035918596715767402842742510170130042913152484396666878403433127446273439946810033625478485327977177452891692238400211860472598306490175690084796992861647680714768760789142997264156007873061832635995567836797474274898756045716569765779267500452625189857753130328392436082987784131180229844763154043546354908260965180636180751689353687886264091709936096409006914891288446918817162459279402417277445309349391563253053439439375425345137924679580567878076156012983963206750556629342394626860406451512380901030106944904846707421260098966286489547086654617684846747111147775457478004175628955840893843763025986623325304015574393456769174316188594482035486621154194206627327820704244194853234705283473032929234754638352846069794600575727069804184787123494680469320125977760034262686923193061706230969160553430743918056330476853311717261658858546529155610564048424513493849862381627442440029697666462518773530512468351430711044772655647777168270220440121694100664028448239296268774620045575080078661534796858374334107084877571220954843958709329753967541216272490589152050226754420234581660829974299609935931618452100241815549817118028221808320917059679193634828242883911808813221156220343101511380882327430541707014368524070046577109894235657489189524543577829071377822256230078576087763726213711155770123106510311708226837910153389946332072370843553884712057160273952786888952197425755176077344043714304073692339669836960741114315746461317391744250450373442699787873295546137280997623843539622693163203775675043452264776185076655991984169315834572137432724728302506054986585118710805440447736330947727002478970085294513521609249126299188354016869434103214364972605082621779400006542429581632346379973229808240103100677148213028650339190557354856015514694560373402140101199899662491216854050113365099650924984708497862757471483579950660999537381671687367601053999846600509737523773601271091665953077103761927664423835683376767303858602084250800921533892195292272951807320481616229989765799650639863998367306572913826121337584613520544936868401541598412817396263706632137204972278441057329182454156821633837594357848271627039041208281755576634590885252689313145075621279151173574302866907359581492335738266241658848090577880079766676501163964805088413378304121984300729491624384713619868343018568027415291221379715996579172358833964360513774224548147405145513653250168880428669271320305094554141484764491267783747543457375892481639159989521403697246200655929839401549618028130933144028820767676986458836219422286253322201362613161588571711660907640855469143946010543221675741401565088778948233533502439937626959906698675439625007050323961542501589169021918761892721620297076061509508911787160294420322758869621440133474388893004632389120488759491040395494447859467374743619403365627993670082701551525884907495039242251280188022019836270796791948793272867563013640034143847918523138679291710134945671606106437568379760991950892552847355832084707021177273372371732314202633568210313192574250654989291422586521792230067717170013575835973796937520288252561738376008309743380675507899958176307320541442702781555868606094157054609263016080260216423063149794758090831241706963677887100387132535095263791109624147900832163765206825682939153841438899366771379988356968282680154637686047167013835393240889440898267674168978043253757479945705252231449847635383171066219446923971514778005012525245774381302951252030503886624352213023936401581927390397907832843469762776938586608584086817944467489150009652225600830801689675657740613065336027324367631075474741551470438064818837456080869505100966162603050480945373378844039996226137834596755405547445680923487120040367237265193777247385502942538926659706320707718509769963389715349915583818075256281380894075617300041889442496506468204402718448631260820571386692286287869641751301991207353333181088060572439755414348453177310416919785223310336558883008790659836884408625037799332621424295897023734955648000435248119406099783525695503594941829749406171378404766963997692565112470659189841174844613471566697119345162162951165979610513245650092040765484764669061653714635254997787676377193727522312613846383047269151892195564237609248354371882895027170175934313008659296613346133762160168607913816751522173157171100343860965762447540414153764442182718482525916854664420059354089058485924653076449007132064954009989854545306657599845204217172951860078440789879503791812454603706967313963980355417330613983792651875131922026851614990395025051529879570564924513154425666712166177839707223438176703965519913500043111912419417113571387534008328806139162614780391776800594474391227735903659483143001248285225345935249979549833934747073626162020504312009142972046757653007167859816528231056103658904706408421465340114304953574979416559808643135147337867776801049275519182124264699751055703278044173596374823868440751756211951978245850411356438078879467242814201963902262767200648316908150511169116393419983469321425724530069511149054456948944537578242509065004962693969062407079648726068864553262052458154965368956579378743338178030861338393189038677359026569746469358741119819560921892876166663516639462565860257705311827060524485790991487536697203349244417147993403707403481013572251907744614617047707846916517999926767047314308618812882028161194614358581633767366387415758928300030857466400375265549966095801398974092310634638084471866958210956967867692184348446227076573247761308006659090987779549302447948256556887821606613064738229157486000946576535301119708349037129829597026336350121959129816373465263435202365413015311376764027913222604369739515549770407138552484118955878456963423921021702625821093552463224527062621967094978359657529949072302395014578861506684736835573776407198334477238397783370209464798319686655259148902680683212348378586700842396423202085484924652631558686107576133984627655663506186192646349527602547220099063047538324563484694740595281942173210901818302476716641224560953155523612090735849477017819811031002817777016196537809832833668080289687841299157395076657426774682738530502915568407498766367575601443968085369796198313845710468200111010425846680449517868287664854862970542294320671396458179856401610983290663858822785284679343221342690399167267682402380250557537856094494005337532752284051907724487817571951964293501143676719725319415855333457318957576893992670101050985705664545188920179705096322756307620206735020193136780037283582395741429378448572909045328985886847808557034232143873970089127223415110690215319049721138285064707504518864109086823300432928504081691006146702199902315180181334797978528737205273784981124860723589563603543883491678348818045973529766625005275006745080098319886091175033552704568529047347827237873918525103849263246097292065823846207751289274270901287503596898922469256791786681012786461161070963118406482818794985758871703395033659711609862434229101551796243367823882611717430402698010626385694382811645809544997539142056150441737907817567929456361527664490481183564252301820679185344153355026169601180439268615975768125697118125701808879293097664555145639345025082599533808031257188780491146105715030659760166453856839386553139202855719301021056047326048076503979114407274720905492932015665338243380654334744447848160934616738660982974687604024173101031032451535744550734358366515698695109241329056286609760136646570885666114994723002349694251546107223056560180464165665801144125385983522600027469216189751022468280724212385226363317229922185184056082196244130782545808764830095198226752141192024028736145314481852181340480044247291809400315689180094249525694639677544183447655609226103588873709488459497146745176667379840819485145349765264557163490524602502694355961555399041899400582397364416563199785930624465422971961096196405355302760198974988295358199368664730270211406783671749195742471795710831267191521701635152411456745625970951690085442490905515623934107273992834710887871971379674793853634079871727380523100547147251785300739579994450896066062930978904351087906810787872848509023402518610973018316191099486924488089911289705894419050705928576031702787634363339248117969095582669233764622720176084203426833088556554521841028317016703781547090557410311089853207770969077439875939290086111491024122731450234577798813663888211889054321368229879752380647815855594766532234757379496809917917819114579379357206448362237412536795340965602283396042069323023776243030636128231242559456147525669475354032748337845746806095849422182290651557178875360748078082195277218907768912327299908680304759521981545871251858449702210264254169041288857478479871238387342355150312163042601489065514010798316482006632974412434124762585252501104841395213776705522159446646655290672018136947058628256778036354430887012082426060659247023872070279285327961210886024687785573983408399446530080161218540975913316341803051306506488170834249993913610614786815548462722346968460877360199934267875066592102340820888164139829501763242394197801260576965482272530209571634687785696889803389429029965496618160615254093788281413214149372228257966841043413158113733099854938221016500528505406385250563224546932550076328117676606151087457584590510559988223723277638383993625911657810452734446946827553247867846598658068808573005225018813895556457249694496699450386386894322798907772795205531566968588689421134627409260564913138920834145885452164077386831039256099926870714056054975458229779664229146418548358628377576006179466079830791749525274045629203909281920281321028778144401414558083072081480193798434727897566160119907416946430638994888519926478735776097732346719138638894855980788595956055720067917929797278731302930697665526705859692209288766322889429219640950615388399572819938736420618366403563699626623983301570726536642771497342882871715695550737907662090621868525211846956813511368718188989631063550885490230836243481779691630479428697428341255630818032157629218635035209311217944807545996669380810670265340207160854717987047410850357228844003655619279083454012008200182563845299733561218429967176268144682657829771775388630298569585243323381574983382434255616045084304409288324417277461127280489021081727366407224100840479258697060647337041992466576655845967298340067389565245065732874495098001545741809151331582118787242953931750225212973309597170770535548227736625569230648596347155562046646131639341419087222775701044501258616963121751696437861638748831914261219466868093496823859041082327762807348557222587470956438589593245230798548064682097141056824947461864982614271969591607762629277740598439322185392959663183216588307560322772231982855749966736892619013833094593862984253013519359602681926822339136431246366673715670649617787787751385660176279089331074895021444347651609886821031518792746753885449046199732621664427497680225406608021412084809803216754437848846174699153491248137939671715315516335342603319371822627670164779400553057603882287093545949987831314678978985188459386158241306354943849425254796756153725135384804079980583513257114382213865598236612788248074614339142998376467352373438938758387609531111517815536761311849032345036164390477114542079569630297600012963917950182340586361790456126905368014712654387649028043150304657175238745743477132579001800552141853620343377488941292313183596148996257726128244507913647745536818539544013065799437270645707089981622769108265927878726771357750880899946354137359293805955982703380682227357021298704751081971748654630731542516637829107782641668391367399269502728211404755366570603195585572210485674808299698598319599627796030674592731418148493338535449951053153243761329882736206982600993785937263157307195095798633757032947821640622288673676621205471000782459456393151243460041542205555650157698584350958229464413533120501797792136819311253029042472552547326528438063693474329196002942825395260367044370197699244437296791730911258599270790557868527551605511746619257458637387258826425427342412594429216934590432721218966644766154457193426434832318205577506170303955603315147782563628162957361215386363988739944324573474792140659309883268956806451159543608552796267724629705552901023341782780388577339891841656969656304865367615865007653159355088833577336403395880341197634754371069448815706884422145106306145158146539280876113331262838511221217084398855895546113414550974271638221119212187179157745876574701751246122520974508061723295737883538339884591570363053999641514668568355771692346755912399267522837280838724423976547150117922124603111550338543403111957359014877235836570884048412325912845356394328954976725030006617137790561332673638785853467748970173063222456002229163472873283116614499110701658805819023234115333530891933106645966271505576569558289268550630356966071858719649962535264234904620122335951698212885216846788335216456433464590027543502003486845720920309806652625250126937611967547891071218330094752186096341760271546280794941913539402116675567615087200424882160310084733326510901433777928954350054147176981619738435692620302546548130074150944786850509264114617856147572365533645521855151141371709612862772966489524420351560773151883316223514724509938099829304874063617559135216184424702290528760397337454242020924739599370894971859983926561694290488294402135700954832953619282173969671778619108434692461100941084558494855210185202543019071855283731881525018279990512097556938004068850313516589555966115998240890683783175226824122108518069906265731114692907533643909266707903445818619269210029294168179204725021634978819541854689329288002561122613008640795540719871950121596577866290799489235433855715909553764048239224234528809918614351009204962150539676749148883831268795567517117632529427510839906175291007024121430918253254334034909347061894963252317059700473312330264722608712669401203632227833464809175410612893575245039558542950571488482192975739099171456216382142276327049903216138027473040294181231002709428864997618543629118176330055011247710992535810972556869374435914104113602372271511576662280431525943105322734897697451133343864263396618430301057557233917487367567728090717858047170452120343940430372153183015352471450790791785520132469222774626945249841382402363741213135206971360367306174682641369848792631077678444149361250167664997293778757654307809031644674990285699806292161018976705729083864958906329409322646928409840363635673240192849312991634386718365980012465875531068353894057844849982499129399801392476746577437541966561353394897266187346244935118395530077922937227358201951317433334431044114433119672063778168681281637406630566923540790890536531442586846642210222815702842511925388456583478108588592590104707217908412640858485363206954386535876898305462687901014699211888521335152107765078653944035954069184784492293781994301868452501136280494775088702763602155786467228278124458532139089202067786219501035379242701616344857208579411632482083683006409135487856689253958584688247175414375652314504650734903052963219348538390368871060083655180198540666052061727944797589309447647267736467966315205786131475969981329051182854480983489976234358587928907402943035027540989091234414672877125773680794199938108257570540131266115384857352550778553412543373697944781234056124422418821507248409316730220841150866814811016279504880826373484361408652419493436358187909766740917743306432022075610925592968970511177301232754453466726581719042329230023220407940221115702247263909965664609602348501048003655342727121379697462485973212507049817945202342946021723953391473646125463933771116700703519352420433435933416170729484398307264889104533871400829534989403405193180875127829351947615176090171113364047794029867929999414967669040706147417946512312794603013517377456211580553013506069167309283174358964796726887294201426970593915414854822256028342953949202655267203110843635194040305669431701661672507657678608633886974124282965288286091825292954822694165448707898700611046234521872625346472769533778470341344271336551924508694359446238750769619097822727294516287903700609236007590900660451162251299066440846263698175621706693698128569535531443460893247475775265369665807400019821790773447851490873076266877512821279028600789675813040111990450288974182167756046171454981521085709101861286517205804293084323271036368477258948646898055338166673079717794658251034863417677369341357057814836220021953791571418484775916532422938701695261361057435184843619001326383679552611229141311480875977625411470522352449842587029078510012915073115456399466674524357798649004239972797428102909011617424843304803838448421898942784541955469091762450775705733080877881467741912528909930947501590234521627207206040262889162166785795881113627397948712713046259573908244154261244053931620075935734107005221617179500076729684441044190023023061033962434244554032389197133336460624025717591849072954656759419803129641261221885560304405895437125646841282786578274736821195563520155522925565612427761706507696723191691778410542056155793843573117048654712575768086373067778268136017426363819036356114148197793758972333166622736940420039018631511481044612055424289262226784324148280586774592932081029939368832727404997505195070026331863565698347555332673840084616817325590112627947566249670390382303609766662570153082290414900572739356952593832543257134111721012878031486703915771564878305177757655853441330423699654009230487361566249466265374816303633984976456389059503112079876686691300833757281866584485153791152294899831550782871805903700806175943251234864812566701090744099708603962226500929124053228162973930981432015446091963030939795445809243659973451272133188202971746613979312150151407540604943027747642962936740670269683636959430135076223494390356128358186432822308890344905906027829338342691074035930839171554558482898265678248769257089657266727954582333190891147879530696387874545533771550854233461011274528593438422958657742250863658727686871843188717442148676018710898322848743285596275194107357640097370365431569114727799645101390543771852962011178709752861424567598548820805725722789273747609535535054368704859592875361041910111984446878242222831246330220221084652738116009022236508709119500994459394410752034946147130316677138399815584519514472659832740553888301008394936562144112703946799657084688293930613392305391576538402452953988631198993249767664268616166623488389760040270874442019659519727159426136864212197891283410741397621965325390297132103599239234167408943290800368233868971439788546166946506265755553804343221237290444041270480253761122454581903615311978728626249923831100403926823356157836311758812685079522866002442211637232640679998998830983954468443871762027339182543804042142215185073061443888800225882829995290380513658641943476547121029221976134658131444704473922490110435840864862597278688693415338155439919462888543588633664055409547423064431658837050805154145123308940072592078496270089264388298629269800825277970179319063217700582736642110109974358229800722294058062262072877715077566046314794134400306022709088116715391509124223799389779332107232045107478771910927254303106139979195679853359464684563206817295994608834281589527153032875120820127624007453517563034836443746635041295389982823046359241895403451501779074562415699468190716930525262652154046634729671359398135868329949768476745364392143010611995373533054678203913798019794323044608412875316676113566509883934838496323806410138527848366850564858868135579156090888455345158379693893436443877626594695849542816563777579726398655251690199648011099793004452772974109272222151641512484525832003984546967435326914211303191862903513538391397380439816995272096831585540349991959793395740613103595616645023837381149087822911864733756671126992160329583875336107525501901000448637505544131631915896342345083735822033637973801158756688219208705124619322375671294354277238160470492762777456284772475020121214645844844714087190264829303356490697667691324582499312809560767768530577964225869212900816319433368188203319006965346138063961665529462884144456212029440747399748108726644030084486157385929772066315711113845411955897932182141687630408526827573897591913386375570704188985287802394701428582950563539423104619062863074958855176534548937473722762697152895534271600809290889209706584211526362604457281851737166189374593165622142627057136030984763867668379880721655480677259177289843608434161035490592961259439398471695310454344151898896571782144863072007742965748888018621362107687880258528173946668081296438730405746046814922084790623669675424123482498784373665950769475513772071375367834990113428260632610425874417656860235531970931060260224862980944266564571575853940625856025418556271878358509022617750136525051240206160951564183239433201962216326168449800040679822015252123651499855651397287721233050207716033228247639055026249301030848517366929586117332502378775975743072555349039560323294008577901389012967748760750200755139675317582923787822456975770550482632780345972254170497576179152256729884849638421096815245549421475783143435766748384208497274122542267001759958095426187674137897882238400626353666854439679147880391041541087399825918929866035694958822784475516304880498149382990430029938496372675055244305450686239232458777573614319222555606891148016554730133439368254480731216425437806604082427531806146303277622097503189649477470737927573137796765808574920402928443620631311388137783853359797648091418872986521529461028188895460130029955458029321383114689349140915461289148700462066780510578892944315172479618821636496703369458911855898232577285878719419689208263134385247219253978001262256307785542423692093316116644977665462471303326116831124609161863120227394555217295971238511649523875859094347804333316549893883335634003689922711197912168319756909334769277047478825744034704018407191426061439517975712795865398447665942006708141218289824325927152825955320776580133783293245509619621474782065107403297272870235589352061576616284176885946035540847344744835060204328787960242054341275766998934134470925765006973246628047446941493156977867202728898346418157611107037874712071753253514384922794844927830205921888205228859783812388219218009073682857447323469058630395738907204567142517003299675708534782377885564273854055533743100340601696707086957491871665525370916467776857806512025812989506210456044978549857226422829169940040763722102531395482469336553132717570283999690565376675754486884047718498092977985200135521423067115167226144176196812442342855713252952887739478449616735227310987240068111894362323429712471188723409588326094526221138379778767066519846687422713223361483699643849740975873307133980734990925258262837157500295665187273225542731497108682902500859650889725388094418533644006516130122640662519422147343810754204526980435448313672322322573791383589041948780502877124868779508806751686767426713386011372025733436166297312609415578506005091336931971270713510599601790834233451474082043838742353885893358115880603640942093574051757560284698313355287498945454852405937683989747617808139558611809262113317151480806293029881538420828707466595669409403795793231125258184904711173122016513564561133611708408626361041418218358322951561920674814633453832351802999461614373225818723595396168781437665670575861758347195576210982335144867233912911368664325825561007793641925623659963021741586073942758631790507349312185712360652485287936060952189690093130948122772087254199556452292886731530569252569795299757562357707962187499354752974313238632868226983973859306883393062719834545088525568803027948067218600640957197579470883717278248972551326702725567436035800092901395423606856464250413086097039510854208860069850624515728619019519377974177836724379065504837363427938683913941209506981153471306617420979544058302503622285491109333482884063952888481932935151023913768497585166740247612012264280898663072963455973404284467631380007394506057159970565710240283376012581572135253112121036031038635636835764914029517360961275668835138515703649370261806265578116641805620610549065221728615203502565753860761143081846256878513676257996310164937634386313593376619859202434082518973449351953194584940135808291166646852594842936074852706402222347317036993416770783831034261307670591526103411321922671417354721690582213090966169474839438415503381756490358362133899621818619496217722168313977575513482939053081207792885820467029496444382445029776902451378610362294612718785300355693360284022587238185973760903116408700904840442835858209319033376435730065329588341925844487152575043350294919032941261188517610065364445684056625564299329511352968536731602754153224110194363004680421367842038986767413059239487980434685853090833173744104020075667160899502324015603123195306507525682848513233743032125475445667755485420364274055172722382618689633534201045353481562622687701392713516935845726981637916064266349747188405411673340943047949111402494770520870734934360556576843420909359409087545155772530291552096984164928436831580240408630864721218414333745588592067833713281904712204248322405818882914862506453016289533796605368681643778756602679696052651209640260849901085517120503423296026920958654892170549630997297095541129939273613521275162508860321568009078397973133747310700354895295668131784046835305644620300402460892108405273746731676365498909474895727415942607317575011548990081916651517483086405441324699411425336343816257778869507944318963685271759937150955031818127947436504177147837213987493171473971140399266765083271795285495822920198527572683073763798963304784331859453125935605947793592914744392390604561239830534410382278671260186924250596271409045973172917151873363526937368119828473181507885619015841893208656617817173217610388475324953769397286245867714780764518713537011876351106566814811856548811431256119591595910544845234016639607350157180357480260785817034770768149446063508717477828288177980438079679216753979638022273138029111184190888745900201917497035759539204623185892543097867864851581485009090980982450415893139309664160027262753105437329478479654633703892040954467324959722238905074705271269486290333054092713056562982702239179498023377010639870736909283626779850649278411985669082482570836500502987340398061288350319070391642271919156036206325368973743157966148147041333430505752388837064564139432591489330675751412594577106011401634422112041564955922515581890746393186152956379958036855628190899170287079875463980250684040129564977817778741904013489905827575995692383668415686761510070391547688997090567958134096195720123153409426506201415126970779700854516285816442288545648089082807475257912223541727636041551151989027026112231100636973494042988307989222258672603153906237526671221783988137060382139776430409427992522406458102125132022055515751406226504123634356097494111463946273149437543338653226980873838725057120289691743907211021917276214513504436657522659484787023914845681045890452089399826960357786747466957238077205324176241226256042057648909400711738834278262741239822116611728193232913327563037086520232241350244849943653153154181794971991238728614859378452463222736301125768315730383579455154371560387552645637705032494641729230121690946893147408091953116276717221730946058780937062023544503783299417167438818150749637379995007903419560655695092920543152354422961308507214634698314466946757472875102795709248696939011777917354395293516066872141914817421476317333178600053040754697338264839105978511554180519440304943285621330279882482859374052207764799007703222752465847292439283772964309221753524491789195341303650434988317451235332932552680938279657613499852692027936053396439114097617909304130506210878536424228188765597889474447700872936720599601719880699812301372247104932147675803593772387376562192602459503680382166798466042423874527113334491264406330834949903775101184131094278811177337494301247212284332216146403116313951606212999721955468536831768908968667201451124353985922812440135607977679758681164739461233228426368544411353856636734337144544063175063368708539665775894398597215344208219819380101434367485123041776437547437887303369828528113484738210354938532055261656373949733419736626172703808996944244782297430104615533272078517894791877018908391432524250503614763421448457696597961748570351763694373582902929516208495351288181375111179173276788001326250595066212917769275746486116319811708791719247397044295787077639618466966474828581686634408288177093254497054090144934758603574169720014629739204054739249645575088781245707056683675667226327742471022713934415005372052371858436410888864023434494833460734418112784665824400416169480558421540252192359273871544191221819042210302170013541571014750371160020389459805682495354464867755390412441475988051393618818547868569789042358302167032117592878614799181267650486800423739010021874033760951016664706162234611971146985570262565090559689543050177806120535723389640391572046466202109252302211946962021304678855652221346637681512028018946712815791096686688853266403021603957891425079493233124632378420441094143722551648318831498275768426941012706145521389033726771416653707628489078600245213637307239601917413327103082056441621330508271989924334182020078364637918291031780983473748504821180169498498243926829572846721546821870499556199645771427871761002417668231215240406251004975768815726420135506816697506021516966281867765690039520849205218768218407870169375887008888619987096752952826337398174573404188623936941565003385259274356643604415804208780912900849314394652395412109717227628441142529793952550700864700457796069305807106104202215192109408351267818235909675377262107487991908465655800956598300340614100470640894770754526539641757782226390291875324066774682942891374426626817990070636388795779089687778667471036684899634336809647919028480106551859984043814949300072951728456833128397709470588678425057809629244764850364106008827955233672980475734455658225339756518714146517969407014952918723708450181355211798066647634046672076612679394930173575794149841995886951385962025917570656705249011439930228389744264993912258589963598957305481993372430700884725163487611324192211191248511227827330901205949414783425984090269810595582240186036637024681708421377513049264363991993958461531825748355775706789318214676497859665167509313427402323767251083856070087300667505569106883175340517279904180100471653265079137068908003025127132220772292633849170026327692404668537365353239290876044145715217007275889918809606997553312203151071018633717920143799576388094639237893056074529252034110614327533469969348059439050254033812743002731958902669201985329023128556439169841438149011212603026049747901413138777129567823742868437341739157189462520529414206008671558220917801423341731746877148727472685189710846145112513786921122752626320728445451967503342206206698851948531077294528995475264806177206533934580959860255270756396332716573356553072639914213432562388373153841075099306532118443317330084683430563312733045720012321034966436753494378039457268791866934704650880163612948628107374861591993578629173521820542554640267867491774523440531475840182097279638618759687697101160712808949500473745804725388506561010588923602843988682892914645009565455729912737157447419630964281447979583264995230916849879746938612069848637840929370510486579942016022812976090579353460543892302402592789321569452755527387348404139970098020014682876744351174398289136058597816490798530545731313581545855384615523016641875771991395423608359167194205481788901740086856399330214511327886329698323015030159772796159834607831006962675342397085870054052627028060767710159178918039380507392170794788770130697036766005607732053627371677410861671309373671801718263678168600257904301369542177216697572023583049704221133675045881691592910743589290353755369327072068333301683103068046912866855420208302450756594448382901908211827843574844078552793557304661620953037549287801299736781510843043069994381824321880446404331206921766391625804758473857814451049034473845097705759351707948789178139298365646265180848956957746390007965378131376687293301977226963313623924453243747409542711337132626856324940996234977178379324978158398791474013963356793323296247710669920061787376863216806339430969707182700722265389333923890640787189884646759066215811419067535379120030672817013246889484374001648926728085310791407883129944446998257862873916206093508711093715061078707088065669825845146896693714346458907703954725601834523933144915681874443975973925306947208295941535443786619369311168403353636486933499696302185969630148809740201058173314416670219473511708163380327021012131213767432266913313619860819619523026645990014406798676242076783299440575784836466551088134133033258219768413649461789745987539152177068238479228123218164236440112422573492347185976722248167427681198860342929682742137243581011056092027935782165202560247258871805748216315668076816125134580972110386193901322147351720725376950386684467176391451618115845581666858403314134740808662863320847818646701457629417379091248736799024731661652303275773135427311740932663743767096185414926502018766841329157373349580305909613477504047707765372315100056618598264151900195703415292112505234412161700971181095770557702661997484418462046927390813201662155898003817768834225569358879149704374436676969351661655373447737552833789095132399545180844024602141971906200999230644947662675434758577646607441540207484726700588451978066802606442133174430150924951757160405701997674098629071800808348591310780490271163336246335316162542986255527277088460622077002948430045122058465793001994165706289245206792300096107301608205779696380811165042139096528101855576827036695795693000958303394718360975845115849374468803371341580965313868843511091392325864924965514453328128872065597385535804609540857565901874071404283514955339043172690305250641436164343774854524172470047686006852834065087919989123426855511758493767911500045406496864265539840198414336316060027832150725377601186743772497460050865241533276561778997564061042525338351060823855748742105602925210263371036636955392041323176332607204101685599421146532181962785200510030033057806301978608736335319346522994884888408634638521922364525744599147660560139692327524968943965226581597004142815997011715334833879735382171340783685041719632407299232262625599319438275331689282753268952379110595378864396653072820446947113738281638940476467242987576939563809785404921049169473412895653584993945713224327579521321023517608727672143573977253749861580647238584944865154199598799184142704679329122569076495508187541846410627747951297622267673834575429504112854294138227202359517974660373875199010271897389357404130423379454983622593024870129541009634652428048149834213704979447509603336514397529185144763713872893263961083355742786698223838435997707241498014367739772624747173962969573306124992355225619315603927070763055762664866868555852613708718562516914552350251482575854371422051722960123522682389921062957119741613925171087756126672845144888205514621769066476617797005167423525871206478612903035221871303219938000970392976678398785122682218172693875797763636783785549486747069612028676309848788293630894764018946754161435008149675398251384092597323399285891688343187655597319169874229612484488591410305038680166047398740915288169560966680764117641825476177123864167608761980737824669543051617960460828942471210079854694032920384242482475130705643813500148549329714143090792812707837575690687823382930899596130071376477546055072548823297544734761136899318351892552465106032897709382815626343634568056246977806008095155500557177840470879960297731264069319410224550817602846063545629851759821179287978544059502470101171368711872563206223726964933408838484482673108506743911019124804388341635628038316383400894863046282233229408635829288213978275063712506350077175690820325892444976470002414782955807423939742536174142945722253365028448431255611223468214382804112086501627898003880778391710327839173484241512741031203156642019404840401487093592967512243472116700948137206512112662465802859191772300893181440180415132540852395355727519304944051493388084913901023159407752044238626191095588820368523658564961878085815826678474371108945958714240343399221166838656733503607029924198881652960785815140753198144467813881238717907106318176172760708874275604023053016545302198789989619902534845384455068757363071555611909340816480671903385647095520285874402597163184970551184650658168469205807714864600416432945240331476126719605277598162005556426287536865909878051945409656268902680529319067261889842343695663617544169896875343386073684975613372879028216910434038205266317496636941695897816798761262670628556799758766739648485876796116506507962031566484027689296183678207369315654157362074798695492847340011433432124220288353581404628199516554796754037419569041595780623302796335997017545717213309649423871562324532901312756191297593221776901372143665230506633984187230301676751555973791022335116971124989973463884846609063446182905321898407200035232967279262348007584496528712248146007984033522153414116810534861268574972119112859055816629390485852893906905832081117582918205092745862003100521782484714562257759991599483375136764972272424707320309604928648310846641727623774389390406789029964430227203189659242439443899127676292063089019239538685433447356445898824966502066416363613345346446032523960130640909599125320289175393995910826039438063721587312479770129865419625924737938962736121159821720207875794461727268889409710002006981432589921572096667847664273466735975642142965123058410598133264450366640929704542045097553507557915268748890507286837917934777007970416612236722774852430036393838826109945550710469142067793579470582611640371149663403326297676231901629044812406002110493585129969140614054486251999632349329314727054581331281171004423811758390840113234426627444477235223000153683881083243429596337422794059900816812853649918079962558411322931905720981821813150154795421657407155107288677196057204028863912195941083758498016746628410905879060294028674149892766892516068277547810863806291044399173388570280340084815278829967614702132004096191644069622406942866480568741706511923805317101294441472080867070610026648568628363873317954217532694482052824911916299841177397929766220485220495415636380302861462115873497491839173382197589086487783135815510134684124815666516897030419449237994272683529118908986727628351670701648562749670404593307176743509966014426443804847237972203815486048087491821464856498049694466697551341908105625839150814801606792542283291770443424249530232696128323217761640312517050460825024202791247546919106370066372511210734135704613221774929817893276628512559377580196753199592688638219138325129430217798980721246141428344509757219479647673450108254955352378369695962561465398522753267966899952409286598674439966302742870979959656787904091899127182251077224079436271918414008305309575524381305988662969531496104446365516199708106581365393920774694179445378884258579332230827063684822040122383512393320587039251826384247671309995969950787765729850950205742354484386486054306883960428515675219015367759478759308358514367712487268531600380069825878612590133838918169222589306085069279719169123466995677564452198514899639940324250905382992450512277779331159105122215210180943081269759243829373625803811042488135131287121341332318070576645724933989804762557136263354078360721077750924282840277507364647055953591219535455038671996151548609225179096445051392347849111245495477454435100905287251727656770830569018213247349086149694511290724779790323220000516487064757063706780051057884634331925471195889073779379236380206912681356010620377311437916747617545365944239956253492069631209024892766484307375726046560373979467450569949658177946122928508816792371486446202828423140707885578616483567231813110849521796436550650380950108470526075271307382230327451424496385977877357060210469901402608849950905589076125982045866523409293523215174603818549149683360041051688095116332562192278871429676733926009807439626968303011777134371041477925207836309720106785948876588545956308736472127177723051191796989882184282112747889327524718081477230254680920081336363684764313479900013313235320076413657466055128450889742107461577551819147058828898033979083376918451999899065499880299845381337740647672629644717990521297279064176940244643713350421355220633150813879648484506634348350683821896549246258945540437706977759710391593500623890845044148829056930517860688123136178319014429079573413650939030676728392516795876779604042367192506587919989822177912846698830388616814059938053163252644760382063853914302925657505000067442556846175749369216126605480203296267194491094957814052083038214922941248085991161360983818339395792555404579903276454790536188083342191418930963123918157450054868831777270788395824184324503642609480963849787458703040665755610409237284574112743995163956490449144473768956322123074870141696191845781696761045610890292777550574314667458684933564348399965768309744882689527657525173852180735023043969016985951268739467621773422678620527997983542643384810331797673882489924902992403900667221776247522331212959906839203122666938207255544616437389190303408961639720792237181727638972178113303837067293176087056222880020948976240715521500252177284596822010684064116507718883040113589111452402725121518488669572422455338248632471129171543589260219513325005614948396865460165281964164410678901807249004848021197708798006480135560166287772594702652568588982637257284136545859751420351800766440864505132285101191240672224826353949142950639330823145798540410401027575401438304566448277915363194747868777839974777738963107335492408169362835628009570562093942957727246448568886701594742700873234011525751862239734575871978091534113866604068846005571843251302739001519546878495174587211552239319277354304628586263783106218409801903697197113534827913437121748853833224394911065955790258449965639565455412013300124857174453631541569739987569752502731089457644436289262421132513696249872549797896426809429337993901186032011036012135098395437504577133300823739987405687074488868120326119226860170059656641694738461611035043479780177119053209613052957369163954828182756869492229421739390701714268766347256167638272300151200028138439763617092157163951313923255550752767939939578311262678985790036245761085979883908521845890680121898515430802295312903082855867104751035082151308257470884562176378695324442881440383604312866727453629614171488006768847801684767460497899473927269463463525321553861679435133287992689473424968203302689078953781676487600780091455511429482109247725588316245388729295457569244986278645941615339647792897665198188013858271429155276848601469010073114849616792420296017795191446240317926723037945554219666698983337133192256947240500460939785023105882426342743462557214126012456342121808402211741954658782854467731739536827400727433215445221366147417592870531396769276610347383719847979362476674697107420373118836028968728717236486437600430724400782511943733779991632748560784187446609685740266353357930139748621177704676686811797179698785384726559312441825864558575426012117955766713086206855408424921280273733265570809718916807775180868700146326594821738414345626255407450456439039646565592481642047687262211808503082239752761226422214624330861555199935856657780490168383269077601155134260854570259818757863772202111254010973058622436858395404365397743687500148971454993681494766664981564158234720671736437866937275922078899619254694508982859777436840965696311308417426677011803954758429180483958293732249183557722765681381484722201995851694283533341132924282260916832760284718863730607751032064455123596211341062493937612135669925495705287881516931873918374046411487842121504135778808741092999014392151494521159309656628517269484423711905815969392663375822328260815883825667266800911995657177229518424114407966237745941174374149249881373534159633305135817317156289628906660533546427395357942183804819210245300864567546299000047758488301517486753292072186018230663776624491090572730046121103398555239116094392828419850066452506138805302985268116432400703436256801503368118925399580664354413272935151389626414591905796309390870234801405802412780200460776188264042873203981911438188647422197158574263239115411487717045312816842800462010515216468211764991868073226039914290933528639007525900426638214889878027079481465003531146861585597588365906249252949774556871981802214520601102492412980134145566937313422929991434901621684274041189040041871810209847850007544268164966448792502268250156785473753469055241034349818256193874461348378091019012407928399313721185204499624862737686767361283865628032306452911708567110932358960748126407876851996064646540202159141115305742223379008996995280131713968628322394938641860385485750713808758524692453487527613743397281161558861843921096647793686923149434419062625646004236205717439065609065704552731414778291428059197455966280409476418574341830676411825631435414594528666199084762715204875927965920017686552546867555884292541408014734394596120491920277198344373469510177814222872772751024562586851634396162146975076934893558548163761150158663553984946426366815291710288730620206844228852427180017897900800267123973930165864980305540967621945643934040402361738078193821036366928912709661618753079158610146596434671400822903064005978902375997725725100481098742438089393592062736468758773148182205800087951741348570151735400690417544551526855397021298543262867228797916035538860078610635513863807825203625073946673634719317934192394352718373783105765177551703943627408417034648193133419919165800355088153770049655546592383259726331682930479484478559931818748176797779056943670243149796666663061909046878789301601907557143825857732366344228645248343272412530351675892825566516799963912276399253263909326823084299990072127075715304890309246449727842870346964480965356551896855611082460255552814055547888993709135532220093568640303659365093826827852326029263810418214907850482001502962958768998508386227250792837073999787481719977891588129100910136081381726410256981748679159329747716344333588293821313075667429266310222107347247741338599739853882167636411065780168110253743018594999202111780684991577215938514540158861963212463621906515352292258046831237193378602733530637783111354992022284609587929744105403789027521973638070274769708814186132345948197358437929649958461639417588375900653255998345042579772089087250085845854246830905805697655013330628580819488237174372712220815944870377083534489429340974311519174433552599843702054340515471039775554146756666113669980273654317275882632108171281801244189977150639692568072691429898141513569945232952131279929401300192967434754463489836446350332375483792537110822450413040682792739643647448679698569274942645947252788796797899177678052915339360006196727946608853884791734399316082896786808581595913664895530559801237795240989598261294803860748616591182147296031128416217375724400547240554404796748510333374068971479639006284697600132387262629547324090727781120292877141750304183157423592834088639003095864306625843963582489653319995437845045749771576113627545252373810197707926003744196171564337812665550259229004754177082646499732562612122295611665219601095989915984594508086122384659763058536039805408303904622557063836419346487959812525508556319950278373250663553859810685673077888271196966341835152315119118501264061229825765524330955380692021281097231308096069576272620878436379692203466991196784726893772980999796012304765442414729918004077429840624543526553111217979083585256309086686360240228146299631549642643723486985421532128385482185748599091310506957030584680849426360092182520603939040177977814196714739349398635857677614848750450553753672477890239882805653028706472675347740368397192123481507795491545530290522644132367808675116994453323256420901596441005425416262851839401264658418132427307506314426892229479332481774559279247724718308963802834239419737430000066458703397560928412909440112921624630353488260865693013508832706791824971228094080623851314595679720305759418451758533216169498581466823976361679930026046170541178162797564471199628906195210511054097760660565157401720549918622883402830224845220877624612353809700403588732729719254706688452353377838870472736386253170830744149343847238760363065062735066589233122939703941290276460894457751179686264008094793853944029411191897866310471958292586445419704482990510655526218427803494200251580327694621559117180788463089025201611062551475061758339203037705438854315155400464085161649662145860808467198512983140292473273123784439471510229331865244567822928703914330691070709785453272854700002250597939423150414701526646815647642754752773416773501247315939578164981206632713705262816031974722602450567154276203878200718509851487568675888731388499806114382046721472268426381042631496755235569164460944152653676162361386017487854884454723202176700515742704575985584105546657132459624668325213614975880198664392659288722038270522578799340068977420606454192533665706224474110436488258238821207940694610855798032227484306571983840273238296853124018642202402262657038086739521108324859305408821630428248252116418068951985300533923561501839074784548662879551162153892737132769185807332947121881522295275457554434740694498581211044815092899036971371391279490413109150049986744052940216592596435991841462037533391427524402153258477489400001146617284529581637055018087719335832411893706228770843570940218729192643479518958133692966454172553989073535203025159135489615521365213684068599382049660659571916052061560802130218033924430943304377341237854068075864637588679913325603094615520290783567722327231883835768693572491191711114707606212506550119546894331007764428422292120175543602233688817331955187477585056645690799694524528718492507672875427297671130685340425121843880836124309823148491429213464120184647121969507723235970958416746922066227674158876232538822511821545571105543797715743868535916853751264787835410452847427758554666333803168531266854039371459587308226805172836827099508062268280982030822120970352806857217907636253145909498216480519246650477681854582121978521745500488141838134929569134020314028467745844329978396998770246816998041000638869204864534112745556412296491178699495590020782081335397001935776205847592788928351131844974218609278996168216809838736450903024539689762109686257648423452965516920232747655456330006043943723712640413805712021260054874553025839978935089314138128440485347348979464519177042115299090786096232803549125152829056928027558703230722909990103020259880594090194891153515215498205672385237916873691758694028395566429393920683881794278565255129752938484648820355952551066802752686551516527013009362666027451026769268288689341116016321137965229360316440522625311481353444296735998548238260512445757445676054802887649944497394849394092727836324634470002921308298851425127752520473274070261061773210550291345060693471989627056811381410597582514340696387546411123059029810108559768411674570116059701298802270215302885755938963173817161907121731439274495639841841067152210621930671112814642832977603931968451498709898829318723119461350427448018659959497206883904281714277259403995368802648159781522138064481159408500674839294564830729192445018772987863172427537562117574257719798834350794038541174387098398771398358194367282368468831170146953942434733189975922690385045012388914997988234336717504202418105044675397508518778822113469557192680978614295220561677857441962608764560854725361696261866247443055904418236173328147586784751817982727142749423254746885142755832285618260578301334447445055281106232609234799690260215913024056831989666556938022470099861514386030823701162075527150606418516691277613042785710350645519286738860398062129240136250517090892362221046142532122593258340287907793258094148280942351586983625615003548852354839674972529577137349179086476305981130121487779709002577193448958454393310160397398008474874896950180289316564375204887041854397827574366664007905058269602838024391445205954474883490913875482997957323136327170934364838087469377927175909221074139429494099582995375960132770452789646238598457550953598423887959273829131038304377475596351597755234407868704552061147979208651881838516177207196068382881840226302022535900184829634561513815890561123121074703744219272132212039019999294001121417910364234924996165015409215251986040681413566020958714856694180704256815626619716405071554763087379221761317971966420494933974927731513016588512850448775149761450197250997306745733031126345503434197952530200067009198480650307505245506846822819863014898897111082281614610698154291430644162331694982150541929059763770079792535709890150374939799315835748441738414662333942667600304433083075602326586432038947011262383556820644493303915045230166531835820093706240777122824185326007496041197282773961002407066604547883116498477438819633828511508983861606473598729772766989778080266143174308963329368177733273835625987295263343839319012155444561025372396408451262166453909803782977209455671773666153453400501110328555995962776521243364681037742001311846267598115800393771419336810082264181494067873854823693956843777906953057507205959089676289076878105844454453406218756731135136566675572992379569280446345301053564979939526436505583401721785279701731825579575735578092370804619552864094491916226021399485907497136023797823380098848442384980613554103552992710226754603656914025220568975922723115227506335723053279507885936704479288953329232097881308576839707021294976871965911783400911953509564243486801607006259419621680027877478043223871738941990264361019251561634562471525411626678751043258397501789562738608702556218855314522533722985184257786734046966855368152429909653568589493295755621425219981232224570877908128123294456110367983519110971228834819646425978376079305176012009384217295252856499807406849721029936061346544765177785671210313408278138699081047512745912976208662452255910885141834361176182511902600214029605995349751585838806707368764528368426178967298928112812158193278807295200044431662162433645991995365931160005068465695659245249439588800401516732809049057661588780650056997604235031214028899592456167051387449374854434252534262367867245213889854231102153157611506011704838385912416247432538661593361038957404486518555298001158194170151043462301487943668816434579622911739685782818534590136133909980588608905782018855048768914317336128217135409380990927716849378173783685351947517554068945666865385269089870119825878335116756243041389221442206238566057571238507775391758919881094186318415808879622681798326474829985011890224858303274482755333961636243218821530630794062386553893676661639124379307088606901166171927764551765012905598941541241052012559421608100539404051015117092286335184705445141621965504383150233618683518031468478024140612746761147248947836153983553981137609352135486441617765942557272066490028669106540498970558209428334758837068278091235696097083748097960272929609812452762232488955255945352869911338092294900862305801701980847511574412950485405983308760322679694412140199811445367952929600562462764367881366741269277373054631513829872425461261128244156757691171507344623437095226890812003691301395561480666229382189488341547982489393315134660419105862727863879082644573120795411830077718602117250584813322140823089729905392775542512390613987292754756030823803406377739324597260279830750976331229849750347489097172234541813065978549552332753290394816747326305544487584095172209546181238245474482035629572177280020832839055802271052791428854699492188062627140418756964055701495068654913763670952740693395468612854617736848850702510363850939201839988606969773261281226857591476162607408789367022087072919821969705416864302973401784413390093713463715253960451946302782591301093170624891569354799698572355560513395737663499724301886524908536792009384211396897258969572825063906284942744494188472322565755993923557992176153421318377371787980345368330510324786535593461483382605382730059145122537861244078612340311990111936184205481968415551985813770009778986159435913094121143362872428627280356712469415506194656338438547330218754064639934338723344040695491272603704830920268767570008634214790997330626122458091004814503067767259329513933110843047628534993425536953762170146227061997350092553394289705872186565817452770060695438627259096761057033849498369485101776448874888412969800728720417614415413393222776655637774950405318343045859466946929149666422730626157340936273771291346370266988602947798360964175617682845152829640114157758800923559963405340840709121826266486572254844216475226197933509288412117893103516664791615726109003690071392212140827495854083439593982794302549319886179532883200271003873021155204874144707413851536070496721950116061502055234188069120243392858028698500749973651533120522488527284031441639675522350265142393307072433495416685589286826742725772381553246107956599036433273546898877013501429761180043127835604698185772877272698801615016396466349272681716353934826900311072608220942868537855775549778684727665176260925553715391146706826439959815292588008733515302572701834176560417002624577356402149706027044734210564034080647089337482844570004110190290132288091400491995168477772661728542093647904408238413605418854941049580374916949682119099569863470139760570961008742291128856269223952931723009578922267573062924631111013937557856496578477463413292828644355179990116722055871057567365529583705291419499038188791975748095290547092747971678333688220944747825544160616116457745936151485755785604117126169129425130872846647692755573798563421782604483123334704760925980145101141008672731559074030185558792507645428357702384645918683772467375251240709341931013967388768364796535827144086969109011569699792257264340661387305770121196441526246519520732111001379720094531736221082916113282509699593984284869538906859232055416786443321939547462028113534106063501519807969956551363211609094655740526669371630884310710096059603562229836640427243482431579749274895059921031155984011253580789853078799652890655073818727664468705132010549609990971052085840287124154634979066856497797130266830303576207685722967900269649847389915557154721603675926424889233027039996464362434739270147866720941700279288222145619844997925086203911049342131207036616536664579736270363011443584498275478804582785034685440508100467601438341905820427378894065726948014447385513837212836997406326579308866595838431175101230403950247737259526957218843183811789681781772636120402620990253441475046111760965376795241663156111917364243105488963445253765662365620528775973573632631071759654779941845879324307181292080260746911410912077523281407944397185715277309092403759962922754872158130573573054847479750040309482700336370814299925565592368332444678190725953594810517222143140285418535126393328067561749523080624032939499429613655436489768676338208592310974782819879031252423930449370397736306727896524486811533429082146938733726672182905520001313753289906222609563636897572663749121903499466845704187586548926062067615968048529855503984918016905290512209982529619328213055270546551565255947063795452204466932378620340969875816107971750005857515687095359985885530993829217025912317687046831650318168523303985300433604004482778042695159366038314533041473229028105480866867273380772872313614414620447312195152997691258192531666379812186237173287079356626280775100373863358837398744088490167904341369789306357310827234770272763140058429557083583575740075603510159438914709238553434540519418242849792812918567733856238337175777320435675079390991670417860132527629027096428939149056124264387660523328475408425784775769809041894225748805176584850686793472338942583463903540970704613765783133635353529056515875464314840598059536292908251963544760064552387473271746259905586061913919147965352409122290769590479742888013427004431026680306206541114232761104261420720312329611526999057304131722340882053668031780739028408128820118471656409436088077257069394417632393047939912973678208420622227352427363788138457009090360656241714054671456956381986482286858500672297913803480379015236622579741492335423422302021783981085128591377346746703060262271834890677683134206206274832809782955895701908579345400068834150751677194570660434419359298042011970127374636208748129780396175131345588629186850632695183965809770757002147030947193319138384887494825059584172775778427750778634661501963389788720048811107040092685054652943749969040111882530784496533107720840130935829464592777122210990018817028735495331078610456312798933400621841714261830569533040937674314330672052477549321617975290564399061547275758061259860469740711059125218675719155796511923719709715040788982185069909223157331461015162200194818877448142833595133374563636285064145970274631106002895143343078655807119336680733039208396484310633349901997014305525579360941440664360547362964714355560587291662203214848260151115618203744223719347558644657794939178742273320947346914459852311036270297782727402229678657356343069810332663351234122727600481128389240763358996959403437666665519261854377274995306032841176121510535805618654445845084565282234201403818790965019190311406265007109770200720004392397460073588401400020242153031078934085967245589859744032383819729488400498775169776231689465014691964936384686855708245066297927475313750330937329487825419707113489596023584610731022243100949316605183820059328455411734676306065556639931094788707269385064043282185684772057925797988244303499257069179224358849137325372537312595119571777542109137154226363126740639943458015160005678384642640046552460623884350437455096025135003378077269234927503129213638806591986824327302754893727739186952013837806492789408093008533024946738955405134590884656942320431247673950203125679587151608055322097709887750474058641894400624160852456079045933129062424980158790253190818983916155910622612247724957491514221616602707703345358978636588916953142516874527919803375759168747082146409630692619244699150198216385013870178724971149389950964746882130261569487737104148654731041513997828627287611887557603596626340901306169126943883691341311987231429814198126632125687749151842975666243864971258032772225297779862370327549840859494473076059259782387357082951928434326514682431133074897584406200458791526677917560083113619722044623751022451626070059146004482746070431668269044415034434937742585405777081427388299051155421239755085285065234971965696055007555950183586024342843572961203508180405935392621640344535459063140127964260526786460030352240073808640808014381649687048427049696727921021727100828394066925985355977863469315586524425963005813525276413953346938327550881998629319462852753805932831933576509195436670210168997961057347361041958172349886029508834677399283342298546184242687545581315402360080421602622054834626573976962029125009029427919256680002800031758192486989165574600274839814996563664793439087520996674994159824017589646027820194519826717451778849367508537963668835034993792463494094512635037766582719528807193683785768813495316774366979271809965281490856446869381894442771859937871696366912505164112571446458050251903037349935659058717654159112219783380224420035617167034691014917767940799406558232604206601603471471415491594997189852963249072692840179994264830227364306742074854002810199627909097550657113094207540042889753457424622039348418972543043283009379625514888733697190755584726223231937095714865167253210381358148834398720810248145930479074408958178748283111824721881000038335359226153312286223279093357800224868674417388399279763635285672697309964723577881819273175097452225637712993982297956413854497458767127794397976287280508445608215805668831816347010956769885491495191852076918077880605882768225321905397277974472556497558920145422298673409942340116335055761834184588210640822656695703046902893525520955216559571020262673227690804013745186232289282036146875760585150984640787523778791065417023071369050996681523111041532449038819494593440553314873561450038049260255499874058907283867791452207826965656373674619193368457283708344698076747485661955177942520025550145137832062823214778000517490003878032599856215147500756659376568154117598959713411457499573231680138639777800351805488563382284487691049568305498252598944447179952903274845210433745507267351371171942444303588371056697720650494604423456512092016028495345696775768622066572642550201846695564264334887469606835569661586579318048002929559640895148305017172671466365734806044425131603408591910100425361767003807261784985463999720549898821868587747234819558119148143088956319629793838834447746509756486425194576949624450059117460567733006917586784290396295875729717048961215857428480442284286252812955900090559927679515301426521929176623499875612359253247705281263578230486037174635829899486612136287321795170837859059104588930637249707416647552486342571547306872223465025372241305925035196291892783673016429221243154270820762851467850527966675161317540104546216901109240645821672263796295557327450582549950754370923837126171982096049473302979210413863406095197301142765008733468256783679376426346067816481304158853615851306568525990887399964536858994090006561386788156670095788935430555014382228482481943419263345256932236958309455273067598101938932796030138105024944497575791788886584007125376296670157737467829251617791398794344279664138223952184065623686354176670440074755653178633237207730187848377775227873756059868269985582705018044179404007680815564711842850242315206282503320785167411189173826719166622564341789900463763733926053474395880574699147398359301515063152766224874167527901515244883056699472082264701579839892712684103743446418434114882085631655572214631837610904356119031322723965618599391560553781190335931007997292947284792580093422498211948913406700177235979650020787872084553433945857267162754003413752766310483327676873093563663614309918435741428762870145321008418516572832093496706934321352813669549816637666788248172218759162019012362138490642248566591560752068985154534152309991261783252658439501355615055154941699974910090298487858411795261980393706538844518376476885005725138775202651795271192131835100175304405074393933977740447924995945573932509624591390742572353999477960489031184277976964480226688103450640234869996252718180118631664304560740913528128781575418910029526907828400093982035630143859482779360291619592017578637410355198132058642031525725123658371309158841279377313378402102854732037078472555765597393560771760175268412541743241044692755892415907263293248152992534694138433836081025242700145990060279344653688746635418621192119846971778528969255656036849680965954539700478955619451781482989156804904328949502758854367466654596449273763548623452522506638448788553611057027571387613227365929123756191836782131316987595842424447236559376222350533901000026072398138383487151077592207258250235452912248303230782585713520077009984186528454866931473255082607803555638089835405596534642628922932941971766184615009045163040148865642136378468626107540917489429057375798042136775218541549489783256583476300833861554691437419005485296292308313538481430065447630105998897291846808760684578649572586450348589047135265833124070566320729253352032196315767734354651046624376075030734999146641635541189153147517325524576016129269879193379423872443663319422159520897321135105814208779862448774608880379510866940284267190189957764770514942248742222172139950640808388949010155425816892520118323210504240351166128108900776628902809325427187974695645483265007391258283026275660522879047912367762801111625180961035570470873572654118731093864223854947138439862831143998239215452947733104859193024312333774841270385467575558204106702823519557755198729325765735359850547230541344384703105426232928435583140279322772478998377942887613188504899669155173685819261834206741528858035092061397651014493459756671952706690582041652349676708366478814894554305156344592518604925981788369634501787031751195422515248276088585864833413950422886513626405144640496077244956024065984893068644553721723527038290201642014111274980214041693803146182726665954282366587586983932787948596915382359204948172198084164185353298676014632138952206433483183308665648068138915541403444614894895260246556941890147302208669690002616669305658215193520048533150662328809982718181145059717936704887423036400523949157278292780714015459761838477673650304589250058140515472824595813963750975967412959730372808355570787397460348597025082997903254399927071569441545389747756444132903960336452698497332548502910799347088217681585289232711554239984073617066336276147276706725727927860979709737790601647336256008712722222726807622742342323219420906819332516171136133910341473111511265683014948048368294174380134101468467148476476628849626486917329417985708272425247255578083733250324729802018818796313276703776966199523604896656708899929911910344373487872932490517739784146574312444907961907719139617140725663140141389350558917359584694646494069957405803729361920645804126051670215164795679810402758916217609743977316813574806337426747248966658128208141465852814081953484754776184009469312776238945507538977306038309214056204256579196892638670140320034658172311547658494648569486996121988095845367111290729340606113582998222807701903138380472895533664241205300899896775683579732206830622561995027819774281131468580756036628905422847387307459533189455642737597219547384845410364187108195797212163468979330459556836559921866462537424512060330042808615700519904784858173444645268966067969359331400203159485104730635484922433062859857310223320938945616505633691318785328509853642646954752761923159529082083380145559913276342269288341801319461730399795643533195189097275221817285244375274671541654961053097694467079509448259427451124368985964966425475537928396738784104742485615432927729861813539935968964080077560607046295888771546377381003471973866722372041649062056856009736048878775768151863544210233347295546317856534645874412955670593691977258817356135284130499894185924512353932141759434700544268245140872721102229872089722036106986975409917268172935515881797978904954330297410350431245537053947478555271319769911518270436435538933839999529413375783421623778138693689026233165330452923777838187784756659757513543766941644655199311960328724271999214101434904660788868520821011287290419341375647225519402554056140810391551008267842447446946003745960928229597880244852177912549386810664337215163465434217292336046655683249735317899823507872110439575117341605550947741855147137059763978039261441107229270334597344490090828336450853135952609779577066445902580136143872016746008893576693557195143328261143537236815631703891409068074755560406995002501588387756193696449295446743065169443237127238866535301008592207793956795653169439868830704847509834719782914393363291887572480276042451510322338240945617256944363656265390328640761786618764098814091582137521422516819461762907109139042241916425041007603748595336364279380913181735475700286916962170889910384341875022153122638911738301667083580427472457747008439195527543420891570803125823853682901426515520523181567004860431996536929494552105789571737465352374261229365494636639343198169279612111297957642842794353225710937378107728700625695477843287818954402951755560294501845508426683426503632209197694314757086645442762289878976823314028101171730966078958683856296643680571299501199066597901636782024032497320460336013667274453312639771695735873571014697303799427030422527137510540081683251431564258937857510083613335600787180389033203806009585643244708729089354809988237668618307442340915406734347025871063271478328338401607179754973489376928643964135994559966778372695895980157796644175933151521062681171260059534389599654317241635571084387247629908697752769336419211757137476061944244956505133017990250596162116340183827604810733476439809759454205962747601718142152762645417298481749609422319820276942307497468717989571806445231483712158938467896950789725257095705876943377818683245870780300428002703460652224927021800413034649221443242452223049575817637596071730815296396384284284097254252791336885659583935567162599489367784634620908910429679723180787646964028628543171337858418804412616621066296600472392502347452847146764773712475445936662571605737953302314043295066163666443947674721500621996911133138882900439504146961143282514595719575212152398627702852875616020490461736901186118309095503392440216543300186908225582679274726012087065152717250933077152900860775058622752593283264463619403109658290903025732090580725622981505414905023291757476635336927924324869184306080404521140426266298623027556340810252082329426430425771778154162243986583873612155079354620210198507778152669155937418680002010201337287918497882949532365270934274735511135460692778024370565568145109275044839297087647209985143373306255397915193416873833849807979079134544889159735691417643903332572927867618376727970038211837597994563859708608314253029810147820557214144323798912164550643347097651598126776182448941053135483211336327051112253603017091762512452883830115623571662867525975741102972762744534385103698459059090380117602998241600338005608541620146857654109585988590671249732734274326716006820846600771895900305166022232430446965427054835682861772393178245564067830337282947307739328187117651268590837321170159453476744676962876053049600671437146071397179067278133226779812204098506815527836077653311089197179972524462551492630264793347180420558772192004889151674820463445627406134349189967460531045594898951407659121035038276685703166404928277916083591058932833782943251400803036935418066986104563456328343306171521933523386006945765813956169248929025840060885966699957194879859632054506543164047534188017851844102779768260239717769397190834255853633917307955469500410664904262187146774326696057261570732661678094702559553889512650509133797527658281881768785065189155014198783593900009500150846709811250228792943650388433790492536397569977176674122307195922868446332021299782360295318630872022564234634981818067075123226264582801571760974053927646072095748722242213584576435773824747539632029423729840521029347883950834639950455604111496750418526252245218454187645879461726128499140202535070286780823578583828810191066645775608794094073219714937787386825554775085745022360049337494905299764225030469145699799773542150163412890061555359857801579010872597523919398884169678796442931693813427647526942504037212333683970060212522286744459913826345202312635615520414788921474312217480835257914633188103021701612405763996895092611566120961682912441765375426377148965898572214496553845278438192374981326129333039893809811946157825525588911016645870822856029095554214253744426908027286926064775029432111335052160357652698714722669553796844399794953480589299074088511836979366670614555094243118743735370604205583357021757593181420306624890243621628074292037362013669588218255238741936034861936816486662550507275536231440703163590157380950286930918399408262712169842904992604834941419290181233348624583388567047527943831061177706617242765676076777109367985429911689751548310442279951548466150919733459665199911706759599049387454299873719203215290238313846308224019304595895720139731457777405063780960585760384469033235205135972489826316543881701140026232496233447431135056056334862608428098085748258878177932044957340907485100028999271577074945540547291809134917680894725810482173603319672334556761166253828884198844388850065379907093682177473802250679416535341088824443354446379677548751116871371032133986524430699688558420809342526689710266004082199460502781399804282467840989275903355018995705895483081921528179619373194243295216705725360090279075984607872212841562856561577650276958450980702160104907598112124586676751280413304975624716966929245752324064461758183866554472300109226425803214558600343411050604547417056047477585738210206342223294369824870526718944877877520933283482745264793493068222954198739719680419498430065292898617747570842669990416031083809860025982856443965688638895224085558251841571643386117488252701119482460399720579720330423364979630344545658118235298553973163027819168513644157268739610907130323937164472571043757791930278214919462569758700311432578755964161426224637518218204386897560527991854493392055231084544807851726039020784303962957923854848273894010819365780266759536248991343844727234781275905406036864950744850567313589753346362650259569227336047607328755340109257289985757926480039768889163796207190166260456191996328081975405741427815321058046169181720955173576095994938496729524840863113147193902291731244416913468057399272126756384554624464404510711125226345894838671724113362799403773009280438059505819322091155384727776796601296338900184554672639589936685946146895025739327309746504001920628355314815611386903338550059952791756391248365139945369383932646255610852400008443087991400887601269654429324913173534749267467680986174378600006681057222896168591463613115593864366949486209573318218333209820664893273300735586953219468849192440519598484654164486476925209377362635228314924439464144212737924178199475581487524921698789917167896392882766128911326167598799415905944585140500902371694052053549532857109447481873742605803275322487432684316539426972009245563040260114476797857752874238786519994927727142646410701624340251620548746897252874733984979001938820928349429019081932487975916835761946543730558662739847623690801666681353102284112416418626741272574830505820628459991575827802820827399284632521347213884222127446564054279495741917617160395463772566322416996146575742849588821496876296844577159113882943330388906958749406915083219907294610264770085633688932429421901843848293589717069687626355209241828994113221257797374058317372289355819314314758965811176219197250744343167621791621829843468825433206516602619312681230933417314590710601117170998784708788514842705946488475623017743479166727763737484199766749107694751258476772251004031937948476276522511510295268605652274863299043727227938931875129840544344017502429723154576450551121708270540957414724949736858294348529957249202636639492159134659059713906011404622531928363018703292723966250241619355149022215648759881672544278212145588634286708365736651305677442504671663208515325495009081800414893991031608136470687280374350717014035270483255273315515201373890923943606318626916376770296152095427968375453644701149874442329662373104435392053952405086630023255798128577526140836579047259734643410536602035568475449834060596548273477474159291370255322873557700095546365196606859244555468116310173580675507691919596457156889502863248532319644668493234815627525495921024295657611125081222432711950357682309370366989317339784527863472978550762083390543651827864615973982620871841787577252116856253283542513079038776045594260186851016983675655091976244177648682434112022321226298332645724830838481297449696183052601706990723423413904149114551496889019422238616308509993057354557979117195484754788576815017672047225100398744459894405671321931672302524357465958126531931796747304816326357591266640282561487186002056113670140385816409801807258135199879847292767216771403909441636154704125138522512843712027050031990908403177452259608006175321023163878189885731680610358737707353584736709232283312637523220856811614622602253473904900278037191483843468560547741882552105083873924275936261594815102707691138059874290193091028136129392710860801976873713783511464413853655548038114333483174013950970033183753843450065760617096299852684485694307620974282584268324917569086644253026882817554261688051679271616726084508478010846719591287282671514449959297192899610837903581764992844702401874529045996234057120389314710555552482399298139734836281836240927399312306152456103794598316774570099262318489541682888421974149833257252642108800630475857453757118546265521708843553688389850204279036161513750707929999795622676492576147953090752944630990910629912861279670920758009634363126495114257130938580517393459260926173722691909138469573210748459561074925806252846208182100150832787350393814693651626789621162151424480543792919988244660293335743638607343429952709534639430597726334756387006421644317864367100806828214001072584980600242690577544285559553684449764102261419592945340749374051977376733613771431296684434701856970199029700786789001173361488149337756374917586172375306548049142428152651924425594718907889473745127186686215007368337521671874951262573491765779065960549071436580339049780983806105424274013309947279746976743449836777543074714834601213405549141930464397464450286833023618418241301956431710855506415322481446572772819635373276109984909546374096651171169632508636518055549269669874019210152338686658634445850413842974435124098476965095887559241770096838145245790827492959504721501655523680220481307271793465948729121482487581593597180366887151238301209225888505670501086542672535542378100695899440223277210251657054108388600387848142894705623008549322246794297442394620558200645943814213084644074916385282329857287006654665296981907355506752047754621694066953545839832417997330331636469286858867419199534043320019262878359194863469034753707152784032011702732422503962248882037080821354341285027102202194128222316433864900654124949435377740310944899780921074488587575025853676911630555470450046987173544232454475804120501330238249760148182307591706922093105904897391416756604941382211524978770903901657308341620889346404108521501144049619831200490577230150453993723588832730296297385780346801261761042056168997036124591701620250640962055386225953445703311631094262656189315009587137892444523142846530111139692557283785111739479740100819913248265585053262733046418885911968460346313749763736779998454316446094389576479172156394889300383509466588602204039980094640993193242172040509709602716435879548255901816142502519072141647615526148383534429171442674781692934700779964201566193884165529732956898768533562968627029534584200766038524728668997017102060465405872295620708147985854844029240431501320304300541436742149853014098648145665192087908202645532253645909940823915969974652731730062562586558793193223216343482595468671194493362644455358067976588023327236864602917053266365374596545982660560779723636193614306636257657357765144082716646122079612612624165554356560751465473363885798336701562078906431978193772459376705355940193004150578990708012622120674834350955579153221872720815190391139048045504833630670764782622745889263446816163049149634078762215518301749536773734931940213536526735328943887343510072325464651032818947893619683735210633502224977381732005963836120506216634078593377444396753646687436894961426837796488417849945049124721239013574442554571396214849831912211982988390238960118083715386949602399103297184391937332207718182723419213541042007053885912451650461726913661002327025222646985874545985772754779365727895504447368377124528164491080197334678718742126187432316638876199078648674250063975208693757683982484201868243076547270018827864580253109105957268149972233472639149680270255472560469088696622877989848654657415535460916779165422664010086403615009252194127754773503921261768960069373649233699528146906752081456249580389507268682486331711242018218368278327453151206362076909066647700321291358188965015805626684183032444097826637669998867869774410553015187285813350086363785418770913975304584856570247763499308299032231322162532375870316122492059788743918331691183728204695958702745592527486172911303739833086074343129334387042248017760737074491069984380512164727360696762146401826222110597256637128660777861237197953433873087816692464020144848573213158726214583797398371971379482561012620013354158012236442120848387497158899314968452271465330797326439554636406706555611903871632430674583289550958716105388388029164712940050930433779758886484821370809198157784122338427961800948902879530940609944454936595988080701784956317597680161477943135337878559910771269631520548416786850586299464623816552578188624268506532536972874461882811543834906016973537257339308996441214192941941240209699117872293060889596748546575699562213430519353213468728636732537187612905995500059473538216977865368217406924971576992152751043590927185397330819019535937691221678397498561070714794969414431596710006071761995557409343089311808133115396496320039931299801312662987042032164051769213212325519352260375046894692502759777099977042269080909831071019537710494873966414395627129132791350213467633509724665248881841185451371713504162936753371627570080006250969189839335181349837107803597160440991717800798534031312613618999097530173603644993126426153102434208821375665212336039184521574908521698472216238437813638810798617556324040879724644978043220727299328491765413106964945851467416438169987059264073669724071307109127849659128029759806485428833606089711326018404074316501169650693662714259108109940286836972594215925491013697403018723938902897427128375647542606994376975743250152473490987767162105765553277766317349636456368289005718982701870336287652322664934213057358356228016090690537796021555128969565648104875394534349083821071933829820998145736822015741280688662472485522357275450315653657252438412742756188898290079743243882264245305804475728976121245810209023626288895159024795087543276046032180382565123166618674602248076755975519028311735715154799021568979811082049163014379725027279534917098434316127703256042543482427640160050527276419705510736213698610742121466856994754473917976375591681647971749589806044086990427320313353986850182817639029111450647687255631543105632145547303962915150713409114864386865507346324486946287662151623062286861628799208152987230388337314764878699821363672424243372401983173769796278044919434934191538230777770512169377279100132108530044090380909350281542702298411472611903684437795443780451229554123761034593415804383470539259875803188744871046086034698255932872898616086780244558477698787800662583384190324149539648336711725816009857873899784797300891547984414196336827702684585165953634337707380456475977856779527553914348022632915003883941408585809431722263365863033281838690641168612274405983459729324049583045608552916362022262184288432972757158259373202394324115960365741057561460375904619865288459482610764634576598143246451082171879240559981685572139416163045995208476817921348998865206279791442754737018303350451076058749021576329344969078113683235489539561058635969086228655868329433772647169294111610946964694282411961699359637274216843282040328965438957909015992231579663097029797628877023523085826027183068559407897921481787763709970073107796211440283077979228407654717792130270199429978415221373018207291243339635158672355016371603150525254973277461192742865580662663130270561909095566417384698747778751377059306841246989022220306793132027850723514447943805287686149488226175413816722158955337864998789916233072759708511577992865680811283922039089901320816189024676838391670103599113595380979653321051093700270826058705085523395983584233791665384162574928935767325197595015435441233500664123088794309209721179096823452115333734573054943260918308695971372363917820971077913247268888355560816196249411397384350529383733677737060697798617309774359024521830066008875232188685884353788289755225161955012503009221257650158135566198361240398419735721714963427939623487195515658678704244102340528386265380066756880870338147995451635442519194279942776031052775211826872194228477224559731661157378723984569555693129812126333433243846665338619638516260758918066362101643092524430022319846388621611403389575311596757870885539189753710413010245243102240875166370720060191462596898846972700197414073144888787120362248731779338546085867179863508177961451648391675629529199061075979629676354889968032879555894447477858112478497229559509177356934925360394321995417494127982873419320250741039519346054404666830536462587755528672024790981702725082120500755117399736024451806180471583977773128429863314714967075188044980815222598152706103226119693906671437498291898241939643482582331862423550104852732203868245440651231715732921741747350671237143123097991977398943603718211410626721185144877963791318893404387730687177389826500788920886481485798437362755766046892469211586008246089977094364934166612712981498956823515759034346032982650280372765289635475067475146019685066263377388390642909365582335718792687381404901847789224915755863733851935921324970259834286389586555134325286112905461528494502693940100021829232268230962852669285596036675559045913016251380413124761213159102739250491488098957697658419382270081061000723426499247817789036537667337400409628984599427999081803828919192373069121451290414479058005081168730358662948841286188985726451385216226059322846375438481230608054684478472117552172406342209278382553673149526758806969047634953044094411532465986246955625782139318641711768298797163858562406241181402726273756836073983772016366135997370182846696683105345735283358645739468968174424610500187042755910479370652744729162857321414493016543938092672743467532314948329534323378307316305868478163276580620871489023538544324680104101011011477625598279188339499002477045961792352651435204294343977298140652824139473204214254835388603398283278821627011331205418556769613033604898225875833869053127985025138611528055110300867452051734384633989002485309595110184090427313821085020983074441524938708768750312437850559392624284346627494200074995220299915442314413914091082241167465044862189613214566988961127331731959161397257775535169531859124769863966360632931345941141961308625007164541753280045142669285155005677516021665909167547206014468903908293285401439250420663560225449043071724559763371180109539709252342357106653565737975536726122486199320601754316616036325415394010557154014890258959611026630633624525648642973533722669539395131324615648189137542608194978453904070661014894176484040107835399367391469822857157520328280224647849148030064362959823257515399109210010947699407909139568539450647676237912711172896946510073447147816210285290023901572226455098318661153461079706133161434700179391394716344877919453581609457797993068664045579932606886491265469941768122338376556307548765314117269895082044669443088094076506689943957095426460376012488725961320124102627238298289380552712034144142582118039341811210524812400469084388859767589938233389373511768410008084464248905028863037704524722888918278348688752808044569495999559861498378451808481423551405368634669734536531560915146637512419789730298139985475718433297100744193322979485942985257595300999802189864969083263492291575928571169143532058998066776212969584719678990616481178198391721421271224574443638521484401598715520821311268823789661648249790617542362407106069314422679345631776618364022950076649142529468550179692373377414201448229369102000449598060098201627943584583333439173690506223936311941975612880618617129270475361688279906228557273356249680351087546664907529456861144196367550044360241927720164390281711250421673735657770800610419783713532656537768784219390904473812281402049477119061418229378741768446991574157214747464705035956845774010954862259070470286116827750436477990432910665109100968503199252964927651446402287120568260559264391254769351259428113945674552533831998216460714886173160827524959990802207221363768282470953543968352359054977193043472032788974442358124315849809758510689603653070651940203821977763305721948604287238057959440236024817494531510341876201854203860674448960182725911526941523322690001984986306131328622343133380907852825445481955448207591245095850923381953283117410148950880169367513374531627953343154317839128220328070876637991246520121433814135089727976616796098316724100169556838934480083768746143845171836358349809977848009609347098209925229637692511169958924550631826314637770393767659324503565636927381899301010287525842214548991286091642501868312122846178205342833519890976925058206351819209518810855877862220785648693610640478142444066660581364715792659683461198366783815170954245078944666747994501319252055704872984158996710333226833389343972222706496320508963841870254701984212270636298829082657082739653794298336442721366512680357038767122597428133454187886163729037646804171909008369112825552481571992223641411232670166724503106691266443925806524016131798121150098046333810903698110696868437224916016553916256202016145434564550611581666072083595870113348723512701558200637301539704426649138094177450333388620586969790650333079751368487384198739833367564824934002930244653820907020946112397293165137624507682319735148739675494971337857706565672744482307184628456886326659798510351991527293965513085141748319329809742141986100460565262054449282686144657588608325692826394967713046540143580689598296738488732788830515445614155144160387027174918732619861501299209600675290150965810827221037934075444310972534392637471281206500783354058320231842787584856521667894176809753512970509729125833045554780089911688129229160472046618037493847572802670127459834824500467188066381956442085369022373286385569787026492814431926605749373831943270393039691901811935356047752144724490124605362334101103837889640655648969665893598288642785551294404732311757869619445104807291208025395001607828526185493233199766608821886943947186485056973795482269554480933570532620185286862045264617933746594183739995995224743343083734820966845392520334903405481108536055028439680088695923093967315789748188164538593587773269697587124577696378260211900882662601075404825850095156272483353540581402514200871923269207209059512955161686596084884315046956210262224720174703276109224370865171829936393660592513735591966221386011599572997965471537118113219524523941495482867869119083035594255977149733408927084671772292693619338320839059395136773208693451931773005634965754502829016361827112427863837559186188596376803296553493798446671994423633182101070661094938880279425939157493453805950865681764495729363686555936553966874802550553745857040735094121365766329329566860282400157786143394590258254725020907937433904127442999208279502551684236547068372718971552630671202561972307174767833445378851996639568004627313507631683789327069215663358518840346134477483038715401706830710572755098611903249593854517013595858534385604748369976396641255034896061781614793295209742293909567681637699623272729927245532727051327137394012680424167282311883980420791327169879321541234430560726442458920046786515758027736403498776961073098771865557829752770196301442756866513319525174598181311549390816505903304824631346164419358368317217883146386189111858232403715681442664481232452262232241965203788977645694342271425028644118823906920827651247729681957732170104334764553921205884644025392777245227841286482781835540246689734431537330823310813597305618639234018253996812287165690717077405066862094483208498938306820265729100547578695813109975393969801284616968716260060051530803085881183231706213971376537841211483540613081081644365749636528301461373902908769098524061020106867011492540690553117856432923690371453170679779363403238580211010748847322762143037574808819355393828308409263043204501915891441659021038169937510421684099053318080892570404999702051494474427139190114226510521380012339632150739007984088049904423065633980724748596047499019489645610291909418722570036490330957660978091821158673322773601191328042536271910443180432129842826374373290155569251977252559685848168881829135218016737144874225225863549194620313973680507687680737812405634287165632365857241039185992144749964878107922893809604493201227333414507568283092586609553180553840951634544423430534171837866565528475618210741185848418335009871307838325347436142211528278746956466648790748851823571110971132449930322208145803347797792355719092046214102732042723455813571416754863415940535770347519105398252176697187519886857482396472582614208287601565148799064986639643824429013843549303070784838641143595931438887883788013132557658261750421440581048401772374205197770901937101365430468015014792356565416438193720272203683164219815688218805057348152403351557791789885400434499760930412796834127275011164510751375317563729804614590801224218547930885637443013503201702996282635678085533099600873552306940525386548305785938674606809246722245425015309634208137688016068368872650961888177001214475199070524426748562532939614051030469358379468529126898995669777268761862563431700268808390559834983548020576027279229539164141631312943600078635168753109735539131145285520113774920154793085063853383486839357978272023413350797741058632631070746718197183019918621256403302859398916933800481712252771988182978750727667210198355423201604987937248520683854271540814517130827525050502589530170499718732232536707297499774720550493186256382558460385586453306915678344389546514246987111382516730002243962257875497914620007013389062407240897777708164850272602031810882903866782005923009925113753406752662664140716257958023166749748563059574558848254627656679886920790426324792453545025731420417584377868729671658268958491562082366897038144608485891976821144450541118988047774960184857770328625655350713808558042849501916328895934480966450121776509305626248542478238246231507825728557430005649198768750063038938394799780448073777880329754797073635271358866115372503714497552652801669652492179143668119030486811843935261784957806860547004113896657964559237796609283105224129338688143003685995649399981098360393056686326167843249054827108851499355327333785910987748166151314803043013032066344327133752505334977840687789187320414436041590633309084642382220041274175494675347991405486225134757219664794704990269900672643783463372548216439923367538917240893333003633021410423763496132675496076600640723662717866741757637903086768484611284255020710975103719169481387942940166139299656079383265428732488677712338115926422401846407745840141876997191058559776280743599794370120750075819403119483738792138394629067553390136605936386804603229611423244221533211635906554008210820761630369083060412160528987445929766001241559327866310460106791062687814463915535528845790042140677909434635738168126228410041245341159710767427671394054529009928689276436230259132917428358782110044792759986625311186246416386083793065797282525406643868080189898570110869890145029537313863494275536436954249125078788969383661230530511115197591614283408460180070562605210850768805248436660239529066983555206469418012021090715022351859617037243005167273320630311945970376490088747235817692872031410175816738025062072088413508912540763104461807826945767292107566309606948074682493831298892728127209124682932939174232789880383781885857173224000395878942088773430435291046864714980620831804547311811545566413219606359482932836466888025094409745971207487019825030276646630744060910218115522582151612254088242987195704852436708394908409910777671411324366242597358089918682646234487211978354095894965217505167329660621011351143488378828851238839311562041751496744409253994749717564152008705551619548387726032915488143058703326335463707367159007375242606992859775613257726355263947408433342906349527984799287397118923948513274902844108689283839170429376464075602579215528601460062482924992126113280520039694113540095723265391799482840359213083323925956845511567180919218160382859235146294835452885778720736006335369571763822936776268281439827159834583931350563483144267833521313257237282970020893339805224179146284225868190028894027045863363795540338497915312463593338649392477281607418758888850975674806389974682546838864167582887871658757996947331200584366757790793978221195818202579380284510618884482321999326353236849403683595087683442753826793175220816315726275648789035268008247927718303224849042432034374232629714485456047276090785281352309922528266400450804638020579562291037369165904668927627048955697817208357843739885415426516312912697182938980431645598953298254202439037387234705091086218950730479384259306622365996735835677391954602237164913341693955119077977428412830512098209358591785325293846842698767308806181486555698655382521701784821514180767206283755322983446302736066295026269767773057049206545572775839551372460441500427583655566465740587607933501618748485509058475247249166334207051446399138487232292780403612544638383634562575908538052845948984016374301858644104468381240318715641780979546428337211897607443206781081960405558278936981440560186832964739534687205802435086161547619297413289729160476932136767440792761817910312294745466914567465250354132940705602325492633320538280360022798659832155129023868599571218065794971912682611692321586993364318639897534333188657832890388987247831038391439786499899237000835460244435785319919154107370326738209670871049051421928723910132336138470912092666172675696496121681864752603301918300459640280290434741000637663930662489127615748872187917100347451502125780795649135805732346310523882007471084209235643286653792747712704047419804315716425122099747400534567963270439584480358143270279005257581369988123834426190547150589628081320214655601475317584739712558879399817303800137247963485349886955066158463887894905359914680362297621102936337847203582821300289975632959556012237030405376701515947527300979653615461086089748867876610557728742888992150124979450949526491693421868470375600323744092741061021944195483381709767339006382142543222058725952954631268283922377514006402634589079361576927690254919077596542185356296040053217049101738537192535416898118486734912092966155399867405016653560355480259312758358974200258658351299179850632040134808103239158201962928947488644329207945465441505934545219689691688484817141897712259867454545095303025889420217951759854618672359842796735405107060333411231772721780473274705958810385045440891775401367891703024125739003251466522057337733390913349391691247612404000618056035388211746670469428609043612486518758206205234869607637926398226789937497250220441675560077863505940789772601584039095220726488336159502447512863139818987605193601353406047683131067405422066370556423721138225025965800241918221338531114480103268787585507429451807251642841317955595172440952530077599918531661353677695137267228298906488496939683682914889332970038755549339994622116069020888916797027024362811545245113746092534595513615211404705896572906467314592593264964001059733814974783628329329136568787989539976253798628963290467569636869096524084734680059335448827012178223637130668728752923318745625221245525535200415236996752797346796058797227964134436638371878439901036695683669983983407334831753756013997221877854404023596322924767864355981862492100369664690662176030874102145298298593929208450537266204051655293133197919775994055571276673536770740485493814295655512165020400277529150611165999992580445637471716118329825552761941349430007882248219986228481690537593532597661338239230701383539329199401407583408450922734169690960099266719906720756627027927880872036222379569622832726871169165761241495020675219349303127656337492115709202646440255142715645717665449848929361994297176900434274041099717566064172031216068585481586299791808240872762335553081952349790314446545055198585529230766603138781732094505169250455639357332529734545252234203906691786151954906647250676455442866468870069553701873287156372995326659008561192107460857606044715326034335706539384399036946349273775325567193226593897909019476419517068388019678598465648194626795744049521531803721466225440732723894669453908252892233752878468722470680676667674134154144055051215554020354269406675319313496175964656147914598330008214564103765793760915765209326461823573270096432473677087232774120672160287187453127371450244065784070968357113216317038013170348408812484420903337444259346785108140160784144129433854556690118732570785757741003915030173497752965729471112926437336799738879005675548535550677004127116643268394387994603538326601305310778145417659921501065136341654823128785654397448529662455610376493957704251378744924574486929155894274429819994064746852721847938454799971052397354772063811437349192276570029638619250631766901132342755151669004011283171797006557034964764021329625793448647393078817002235122448382065135661382464638923144045102392774740812279717231895682470223000125207051765542114251899611727270825507855346638871056064335343058166296261355530418750100088986271149984198993980941962636262448943595224236290134824570733156655127122886177085760768013767693108192489240301851231764737356226975125137184795992129142154732370213503200562046301586029907644715466543379121667151948916554862358553268515956218110670909421928794995218136823041172946504608814562793689280320781136978217816630600400327789268366482239500832927406539302002951076396444561347832953823654871979521753129643268632664941477111539687290194928457043205299730400188848588230725335418387165131227585594277006960124917291317430267408577581795399897990624275771175300559597736273061656170521647255237276648388421755652999471668456838559316467943545935182204254662181745605215942932139328187129260323023279397093230215193977887598148901056952127752780405460948266465816827052414142779569839657353290958828829799286334097513523141198091771377961624964274800420606430112434234864439413732249480191232321860735230696837037822599139730397073694200764937264368928013159027919963209011701720471879330982262562135189402117663589189747354429516838356075548217461429117142114422909320787055659003136193075657509549581524175572878705479606084738180641736714747132359968210704368075823499221058148064750878479718193924201306749323792587206775086572929859315042175699457043548430018874575960750848541148917643612965297154095685743718433170905117515313055322291529738930128149045153092585381490318410558149296479718085723635748939035218173946781040355791429616676291139654042423911527867475447830255378032741921864771532147453309447360890276866492130718667659879862602010528654208561783455011951713215581326474795347698644664891907317387102818730828156672364127494858125457095686248493810662854496510492032981302130335161702635004405192016960218039910418596939318841839298116564569837224228652352861806810724776728126681758564610391523245044546702377956494103550133825312911833818284198667993539476066290973420685217650660756828228055696234626715374229167794190247440034728435906403961238896622901970212663179264793646846132447797091611773501798319434308020393143478855310858798010363399731753295449476713858902358585475763423537607278807775378055462545466619160180531992451223626376266663291977373895374022311637898967762417364951561154566387804366296746384723289729260494113385404838560853944846561937413114260767299441415431532490782812158655709769201201987526209515843196764936208484113585603067129408355035128867225138169946338675559989068944195013709247880394365548228946674609805490395632428462029162206296783072442188714283275812325574247420581812702424574112219775524482534254733878494171367632776094873605058525378663659104972145908387690570146365189125800511634381706232299902580635891739470519080268510160814754590771587632829346315899940316054187551477557278124013176873940761558414507880176834121092619065426585230687727879138145683058162879559080283985570063935652116812413119152114749303393814491279353834144462041305313210331634051308532852486923848635964287263592210451524785344434023671392475536709227886238660540541968765194711843245629985022432909946027184844089180824111914839149064375526313217135127240307190636095669550960395186831846230895059394370254728696607627994990653733306768211027732069608034612493549221564059575758627837135109057762125596690133408870462101173135755215277863918055724054062626757227604357487592768797382171578556725806828548049025733811980998877025763434886899600914270214696236115207010698268286742589102354664048804938094464209064041603612795065441308448507428284723008938369221199259033241044175348197293656930413440457899457222438067699418731538369094577999154404174145509767513751619290634708219447068381837190239794271364116905440430668419095921160272614891894544964246719578701164064040411590152215430981459257271489691613552514319644187183590714833148739134966431097851968064773617523459630310310473696219441249672284633072437633351174813033025484877756492038063745513226372041391767741584322220818025870762717426120409953032482042120743574294454443938675529423734191986317348085624510636701799736715277072361514376348601289874669365727620294318940142784146946822305167796954568431926247479684814711069866007866914698615491827058402402158746419971773884921786876465576491315090441553732920632325253366503585657020608716046824507459664293177070122006530915521989776663366081671775128432274250055801939804732003717597012326917481503303715471706893749613004070361767875022442865963936557482837444782459919671155636715775651524138339241082862781167211569277966463655991347391264396118283186415423854595348734438760342620962192566315117363364808706451727054418499461251509394935813428511824952696739023777178127222963336813071347403187942589831436683295415634333314132348192552362311584962891065952032571169403487425514236318916328642023973925811453807604228355909000026161455677320416663533001569654984543949780343657940099545886751724493478093081865354760969195126192954120862884771922614959207774391167679836236586426617677208713266855147673953468619770608841583365396586776240625149941588473293929142785988693437616880204884949374180813478593030813250630249645670604986449098596417956279417682618317000207985515466630550072887710874516048492519072959339454076170504098482949268271043896564524694372114472551130228249919609159464011408672385661589289435122514660040121822531369466521858424116928385461733954793732134722052058620253122845965628590349247013892585060336697683951940873617500845628544848787289068509886835104560753077550010429759749331651333706639887292025733638158330549281920975811366268791949390039262944831596169814760565334757328830427562581787329048077431692508430629789241325244636868922990527878059051412255691101428002675528028081573232142693222906352377663297675128030822237455792645435068406895506801494470769012879048724776366051278883335831753469628988764172158209843259427281048751334032137992961347343617027846685748518836512856024049929199208745318493897205179633586942326259535446611789761703063508255344557604646721453616481625777274411525337229976321296522931347778932406660833226843086576324763376658549061078976139675210391718598833789757107434671744491390545772162052248097663244330358242151096842300880593914683422031429887986229030065943822072977892612785653602009948215593923315800986984521315092435476644148121783628037431205940659934834879066990569332173660981703656260052894603569702045579425180843585222441861074771473239376212641538764108166419998619796198884573198570386238341939746371749845231436380779344071128910233050902985675698578782360176054592923322125773694463879391623276762866091446949205263130785589470005579587674744466666366524979474375295087883472050428718414062841129858205239473125937295226314500750162151539157313651808020323348298795948650688511777286631516086377352833779367521883280887311853201413312523212160857564396904911586744174702642607601825230509612526520130754839495026502864971839058033753104990723105110418735666901109911717181814634328996425564702202974492175161599664880751385066968748729859408073840469670506516532555867501155936168931850702624210160758530888900087920407931726889900522255901938332479562398928707236096331688494949460515336671368343539662020979954551304722110707883684639654327922396816400463540016128105351646961444775565812629546319959254627148055910960834231506192743492084941633578695458959732371525718235316885051746895578309968886300107188695178996458603378613957228394883004982587032650420701530738784624201907207909589093668717510505643563560356175359018144947610911487449075084264027678358818748214054999440021951069553910512717984319618708693153291503816986110086987208759744374938183143594912085921562136794889803394778991173630588270265399862192119322304162738160018605145180084828519192791263718677255462216475524358857414951877067357072333854615865242281764137065090394744639499673547571230217175571347610054152991646938402252225354219622571731490485386780138840455593123268644652846549555239134697585856639992081805035203230213841378569629010580454161332223532490919328037072659493403081901262072198506471168453642472096007604115491393189266967883097628246998390745229224052011659224307726810551849368083289540744381111150804240010834712845694463785012785941145806283142822621561806289306778055849421373755484685475200274304173371023396609430137048743333055151193023185006202455160598049065310651762322874104262442007680996662712507953571188474856850966288481464514701502456382994124396859310044829855195706839693818931786342896371163865957721754465614044267956149838198778483553712856569076689232817660271419326681582840659843561657531650784539083395252636438657981948764271023595922648563628386747443612536718962674127066563866739030555295874040051801023253453857868301240498412134315834312872682350320951260667117644471389623991547096883959547466525882292583109237702722981628664750672659440257200307795011222037046862852236004681538422613771250676584665118515278096086812826555720495455367797453660506843430654103028019926112856132698876201840600846501767605245725815223333452282602967055819392886782733390764836461167744558316793694955985057993812960981290916001594840495803282576416933149129951897338114011307134722461465975601481107148201372836919350880359771465895994596446428621179228212283119890476128078981266924453866276938419010438886013312705889269832360246181487799396812325874378242735184065537945341887005001589084086982003310484041095133710233639822268271019886742417225232456780935978258165606623762931193998228953835352837410321450535399811143318457637318825558320891197906383336721985035870629453993790132340484139243333998738080993624321247484996657327399770379253943800970728438023567922664977034400311896714223416830576246890074741844786783705929547310913316588482690871337186520542399378435927731722041147162061379648400904047880602762158439582749236201619623168930660413431750811301925778113501732105946208593237521018394049090074653802749389645255401088574173725311489800780717449721087291633434250738841340956501181421508469189075708284667715718052159915240347963990097728744625368992355833765025877083165629973771695466074559112568786396175861312155018278812351037547871690583118028719728135895586077519428015360643758468306018760841065418977100112084059896676975251902889996607851384900109122287548024301968646587774328935470831428232977415192118319866032787838626335020565605807072274966804107582816718138164354376236591221986897568218479124584704329453051929671214305039753945862461190135162460469100113883617966850222981757326752692711964824666395013615249131243738370965704808750117709573231602974091832563161523312776399726424487163816150390075658217050561866012200809631244155415909711660227881191619102208172356183967940428703912383316109258674922129596116125324157636589227042534091861467402225909123887223893058284955120632086512114596083187588775627574022446879606407490639211071708223459588441910565163592988875114662177843118657533575903739672438110533006546835204908420291437779675633929826298167447953660858218290272123623491567689238650837857848160980310633671427870323125961296856416331941551265952799425970626238000545678485867586273994548200941768503321517411723826008756438612548664148723453044299874405781701702434996361202631145571902678865208304649736235896922897538308110613624990634189847311689370189653169194228481114373141342872173530759530393554155359608956681759004281913772647467861073365454127824762957244651295102343122925077952075252096546321605215600339373692907137838973020367843488790398932103140748800368055556375424549428971208763777953860332857686934555099783195961610095923410479874606933546814772460433694830248673147997110837074991287357927380596559129303181624675286919467707398441188262699337188809346064029906342688454309638182504668574308262778199433292930898590433985038471848745701459890763695632996614452878048711401767815475022496020689565596305058832806855819434578117648896885655386329864339384912647317738239396537741660149374020421506253568256567572452903255574037230738280346943028999029887551736844173207633913306797584601531612877120606451492345973050220536171870102620382602379380122676951719955522634452682363799709778624364202401300825489511638536338667235424126365149041589769702111644819088172812260144958031388681764250798348096486633174857180059083172857492936082540796212744330503823146348751659168278144782648833926736607040955117942688986952441961059274259235935471814330235366206549695615647092984301596422646045314209743464493542709330939743204874261161699941660690624580930570166844557141494933433409468306945257055505973178606969080356432000535988538249854514140354275576648561905995925427758097772254280407866614041459616006872597383308013958776723533855685865081355657381145769868025474692520758449649894575951314572240889670580214600841951036204023041841236204969184328813948740885461447817032073550756275470012678174421449097731286503923283681319393985915403362354259519774441980002495776625752311797245317821839569683653473082454420504699418544337286250187529661241406913639268979497775675404776799799370637565522417198420336713478105522244473043910807961400491059991245295805290754382279429936459837741208658685307302513918697679218301618534816878421574648548330821053877124835126263183212051567036251602581832363921474098336806833453000699715041055490780741484165092200442762522335090865173372384772412543150267993238229348044196610051395130335640781673385715835889689815479711264288148848397854693473479111956306405871206313297035873461057368904332669229823409572819621155916226304620508392861306823066157133899392392359533862178921897445352198670041293299315635496175922211745013066858249931512351400367445260611137160945111040515375492983160439965736781518952494315373458911617715235988671806257888079424705625224508984408716270303097719851180114385926152792840849692689736901234099083448665661827412490920388323608874871392706528490157688399029071679097266004589756223272561695584022969685318345269803885287967765274648860332341127185783677963300725257752704289654638881566757460784569804068422482540541849437560516454142103163803056662972904304060859748688390975741496127582281235154794617967781168673584430607159788739703816085975318649226692727038020129330254017019799490921009777079012667875696877158484866588561288118373987948152178792019272773276775148959558854441354830123649677822688309232724967399345698471736834816541150486057440590928705351388078154554636477552933618606329850209714168626100563286057686505043274598739643643565515290061845518855446644378179110002682491576731627015809808591213816971592772696512366370171817649423780188242514642932478967366960009663882990255346380878033143398570423348759292102776316990569374750664240667226918328992797795828935152238030517451487033843077350438547930581882117159350453912038684317039718074962242294889769851737948350886686340539159365123788351973967049644231277225212148047616769265689036735336251346709560965436211891907659538821122408552321613956960239185155428032468588810095916192881828406855870699216786812873376814673703770246506196661920571467244248824428663763877795425697396551680450147744658567113077104429191208996348517093164353437803055847516908036041075464577673113097631589331509989794245240196717449899972815586790351803065897855975860713897245526138597494408724188499708705121859227938580687926326586687600853149728275758805284434182999861523297727762335791554430457328441716782236587332021717070901679972700804064594920447654956314380873994900902081649602512404622126295785620971020874246959866646897842615232680579896636539695783840917268104068747023554125975943569730547710812644043476908981387949298650302565845596284168375581102010489450939964890988096234830392636769956437031052515628767086104415869405659522380224347025604122886524492673408798544739293764204840537110799516103669809269100601438774362531039791848056576806599180517379822904129385758661344711304784264401883068105953555261369363143262155137188241567901536763881705312201190493840927791097438391716489409011717779639097492800039815073027543839327138676732832224992800973631599259620452403559845399798902687550921585860386040602172340038360610158215027993672110384289723959033234315620539732781635568185148660917495689772638852861493772166711991681057949272039686404189802123641004181649281076271375116287252830437115556848297257625921583328966602393952352127282733657916397674142978899082645955774097044410673380601861421811859236857916923388490137402628300299741742454938090951662655277176469255170985033154233560124596080318098073683116767266679704349974389203670275222129293312520248738791912599592655551517754548347378016609161656871565832261235243974847374570692455389731018489657613580887055537997835959180410475585736919177590635475015738473103989207983914127994418409482253990830895635002623900173257421247424492818093750026653419204722775604581446345916791991758627537081936462668721571873611632195310034162331891716318062840831363195799824137492189567074533643671404614481864422869216735805545795893789088078807931918336169367239488109794324287466771681455481096900492927972757162108958470231938508399387616517184003405676857372899754711646572344823143286159228974920733874588216555505111338618547822188936063636646006289314263139092054996674578208775250175334531715303806049009004468549899061469582952542035374089224007414331959125544502964982111886873989335141961048432809880416297750996251981183553447924944182177429667933223861394943479177787904959345411290490780532893489386676272989747054747305441577727675624153157125896001093632776674924440591516492991796457746383458143391148952556548637761632161175223487835862572387444527682079176175960125980118280983951221198641622965130233282317055065471564045579408628421312776585490064924544294842466475561345316435198932253774587096354129256324339698189703866592794562008354155350567708354358574830632335083857198828489684575485280073420742849438571303707967176841336818951324029241343320692119077060472455205307782155936963854277802823790091396576300663810008920519814943512932289668066659159725729403218822517242860337698926456467816632746020870647542983384359149781983565905711403104741997957194444823084401372183567076838107245007280635145533008267375437561506496607828032333224721798742790354794645341841489094657852211017500277949426884019702336645653206620895744468660955259747458457927044347605168751982912971212301362792266866021748272525812650304910845411491036775045161827900190912665791392210601938299017873301318082744226015352296527023943916906401327923827492346761182273818858738119402943014825642316752466319096983947680627904636705491519061927493420748344451020540929751870500260727971132001908987309522000261566216284672007043756699112470075341694978775229031159993662574658685866519778949006572653049901592684444351202317155235946853441580191900507129584291139509441008507240506348867628372509151515532018544417416551914572901512522107972711209935684939544453908748172975515823290457161345736329326163498677699463127037807183378067384940658189236002137753082289113817721375121755182730941471860376997080365206695576139364877887518749431485338133929810682483917925970611127276347802140293934438766786152066674129135572894579998961279336734808983862511772281658422675654274996126876196183807924311225539170612025896761157301319834904453197776091318134150170840473030794478619579410825440724949729801336064786040082751966024621984054845552537171554489356194448984337268633238373942044593119749690028855990035441385715642266364469509601811068328978415498692500775751562782423247942759487963034094818148671308995480852299330791588919305059324713861878806639241300693917843508147780320749284444281519020288151393678082547545592428294490644137009628617398878814960850027835519603138880543843261966317975634163275556338026062284891034481510898624233371740038399078047640636457445653906349358574037281876135621765753572107677447324764604355058863194794208692160870991066895026733876636629894438229941857385565881516970202733743189058705234862697797671216500667476544429955571900422460567392463404992306781105379852287654223587808873395720201031271882355835669497010704035199447562183694654373221302175634165800588507859339781688326537057050060689501020570740769586640507336744923030946374050838739556033374082765250027712331833701490998645756902261903259856030053036665436224646858123263592525985223577523293323419376203429500532764526057933979500969026489538379451827895134178459521629861129083666483247679766772407309292366377451828584721634077163494199458834826304447596410317587140200562327111048501172106622470888718184070483647236408014748893806014650380363188805363365484743789242566866976850263137876744658066405734701502102921641289177585633372028672709071660730436711617013714692301003583320394770009233868114656464545823772256671019039683440044420586591760114627203969357807970792809154616395656774044400386363249980122487413575697372099381657071842301319746589249668041017415098879350317938241889412045359142447264044331657730951342095431475933083680722098776404776505948782972795621121422683357833025815811937898773497597891760465288280460004952232716431820581815382174065618503290152373795012844663371307706844161445972725181660130042445923338309995943453728866619701643914700338198668847018575899914837714220346308181550946686403189347422286573515078226848551114738707946114484894894677401188417648006052543201305218765317059425953673931834404075472141158460056880583261024158780502650478127920965783521007575629712528689794215871752651291872412644259857248423341214632643776882639671614107263090626656394526991561999634802579672806306030984493342778759482289469994747563813799402074106787058413198491284495083938967011508658483582269508625791334333672136984663713456232875207775072127739910147007884917656886910416353784496582955530162577399253536376250384241895370752779531319522820790771206316163207287297821523850665446011446869241542235846622609855779283572004445718447829798378693758449233336082734651466152960569365043407808552907475248630887559051719126546470847844039962501883239011956889817623874035493313218908759853869028726092655483680059022280810894982984974564198604903409691842200006599198375487931538996630017756207105621984814509032608292002632422416592355971706389038754033569172364212049289290223842083010069413842004447325212933979024901011796926466835905607560168388238131403607612588710412247706205018645763535387673521957532116647827748356876531839911239464059459348576694503575372468877031449781111860198375849137699658202409153832056376274622957127018166838704202510778850086384348027296935297898696261436729133319056870877359712288562552274455104720437488664342058353138541456000178020653847394541529495982378807345566696601584829219923855606308791513636508287876273545340290908143331946175012721170588001708714952496575516656459533189155528295504914440331311356982727031732384279971517724298478514688125943522486961416887321244123986425158963949076610074830530022425861538450942868779569502787737039492141827038876069668397830684661877693604482687711935675811505837587886244618409929650079516221754162399151357631256608378000196350187394482489734845977549895678103653606021144247297131722741787145710309645092179697577902530658622377066362976883457788721408115969086245288505903398276379345411670094200832789188252382838815685675707916261144215197777583682647808751090723935200553309246188211512419633804790948224729309004282253983551651155822670478491160497255959117701228774963619901830731299412082589109412623551985775335579716621223495562447209587078851485647058476479073368150166559692611420805674186026665835909599058197393648406563538609352217044319960662513207683858865889262107161852285231206468613229745894933571957983056876719957803968109328866494105958605660326571500112286590817431092545442322913916066213069311731072640847097430717330999264115843138012327436419002898006422001485482458695357788185539650441311788903989115678477578773940773093514144736557562526759886418872451305220922432087059212262350673955218410531527277667471304446087252936721930978272831843529065174841150808694811564148600163129848983913589027566154871676536145382384320516980585941381958344369240611400461452447382670989241716441948153217549222483721130632025625788545681703852275252836535869233102422401438313791419385955146474605086704299826242839434923571717941696419679739431179581500448804260914064487022920176398788650128324921812291203505488106436406237567141440077889566918942674168729705646853088837948599227996201270505011104311580672682893910315386770241188792765250910682233344558926479609724739360015574134994297490294144874461943644227145726180843473837406723335205302652244141331868546955681125281328567201262684903056526575403387988451548947381963954890865111147960577275568476800374520968864804645960939659973522603460918104938450658214745615886506297379449399903494630273612802452321030100064337615016056932405494704826629859541729993921594284380614104212840095099829778261723426213258925061354187631436504033240311799128447770932194962486796535046695219818705870860200951550904700733569216670994093960162932570831141100244526736336342891622484134089950584694283935588862507411329682460082545323481602739686940832030099018690762775990773124355294481721493378017663623032394509745018502325530715358342464167625622928733594119896388806207502384492130977411114170477914925249912646250671630478142638109338850101740051056853454584208215588380826908407263008679863068639687060875627810307198396803000205699230641410237408832330367329142638987170518552080548620901150309054640775107740262328111259725025777027548965899692254165544272472546856681551927871596742406007457266605291169812564915933126502340600984702358211101373886384437757739212643719389503016577849867282519430759833405095540833452851465505249207179156571110805232979000510566078736095636856961073521999423865374887327852392718865902778326219842052510425945097554681224706262913283950993096765905875340929434330390349376762415694502083580782454440120579017489577028470660260681370939134388461374798901362632237153857703425047815201997560550138742160846861390397291806078843378558330469989159047632554228254621607122149214639593467062461261342503486296371575072979154646172486327485407358410698555132873936627689718309346246217710931304931926460611772405576004824987977100901116442865182524554083037947875837364541189318921177461821751986354725088968181392010471973655144012946987349844991706235253388335920639817285230907097655114966841741935480077385958825095721475104236187023078796791813048763917813872453547425271339434358371380841333930623701592544254501269224981941432336868032534127542965357535995773657525280194899922347263351831642084663685730759708887891379499224545319327046686748111640118431435233742372812113342561683603443543209240975755164593959843177148427335598449920212215330726938951627884476196820055616600227408536293957012686902309125112802678421879145662668314591986137916635546078734700159462544427852459804600404167405167885116470254287303603947304907731167447906331767486383435271756671387517526780160991146088891604089047267945845536528768252955362211873334304494177152932723071263170140738233016790917795401916248056103073437301456119379662079039133486591792555216082459099637444889756115302173365845949816024811366033290181880137528057657204282343041745310766677844348788111280588237771078612898759438484283884030743289702006457928337204469597786149232063740586377894951234151926122305122137307430227724195392188530115329366552136180994497448787360186408774685209110129194060435316905484690202329978542166435592328319959557552637521470967832371383853464519408836419626897728990259627462253826714151649976042458455813905215360756477459715564520680165389771717661372610542819465561477075867605183193331185143070139088364127871446360492861219566803858165861313982763299970032678534789992301363031565391926266931042331359428788188137291382237552607566982552967543542243890986424140579508574151718881533381894905928116311708775342432539811708596961446091161352209335670566905568591592612500615029619229185401449721343494618858320280666551703407862129023563208193336966904819932764334314055471326095036777795259770278611838417422602350325187855194191407268310158534922965072434650399621208950836709775818964449420105897276652971860655085331119809473838329612900529789637448706861859236881864657063403041195183866410311455476950520852682430211312721174461373342009840922269061533661008395872569194614965258830697805862428365879867605721909057071519723927439634473205723613284369495142277534973120583482841881971374661436423675497522245871032784016341883300874212943890770014572850578451477292156344176168190187819863646123100293047922794482870263651859814718115281701743608057823048128037952274176789026832354399915779803089115665215594170579956748598994617495198972255674522229150080656256820931612413331726741818926233623161823071488622786047113609677697154573356110659322720684173433848785721439707510958942384099035260687012945068443886097935899830787899588301518448839818074295805805132333031935999391079981702196343172295732943911558486607732214541231287484878425307469063535394136005501814165569489741195036623225825117749113955882238260447066267431524731955508244326274116867056464789071073713236427752662967045959185275453652177797492265475789452133787144907679024417466955270032332799572865756364902730014202002621921422290872220080588878169374797098821388732668103601733495457559930437460026469127243576525862382541449465740701032980231354892287824008937767072672222851340537677501416933975937315364076533564439311025272923153661330098125929534286661904924218961200862044875371447206296524723960950362509164674261578989559238028477427543393480111072759878713447800703658025907952222606121401036787977698338206617320165949577888861819009328679083240200534289536878186306395090300883848938525441473680265966482619631748784333792907653091587491369150679161465148189376790521043669226438570266919572473886915936233583608112049497456651053106153241281466716887759067198398764476288996902805536968083987896869929013263086295977808438361306898228721854839480370925394683557311239276149871790023966458516446835086701229555189983450866949722069378059810936997737800327663772246209738095928492407701868037162718829985534188286910053509593666783295910342520646875229604184054141588368965976957222857987706656318405434773457739983250788644580241087421752237894354651226714023059092974661931881857944788460032236418262552337823615122220246865451660998182518306273372140264234723084652759919758081834944758321855445438251210967989616166896413891105615111797930599584557349962200496847003449076408292752479235777179419476683799739415510663630364959083243903449282741376400705768336429554851699850947786256681517055256836656044954267942968355808093189016262872759624254932649533842689338977378652031280711784027658125853422206385303100121043316866671573797009437406646036333635151410566401300713104158834783215513252602364255919253892909581292415934106489510381777635203020237713408111321289767890145267793518034714747139074600356528413433866519955862290422808041493731368898091808388982899129964762690709880176030593004837397365739089559432000409965953564796144198386299326839460613177163736527808805814370486568458176342357433209515282232093601918801611952326134339295962559333034505660731806368055966479446080910007434603032756330958482191506805826490512351833212789959859963888231400741463588494321259097842443574386053267984512852862073377678455790721901752926238169795679524367668835706687952842981083854274399755558134412629518794161185822055617227208612572925480453722346549970880048452028744957846698945042668497558962004536844196656659523368505881525165498169790350925593427019789360895370006318843115956270089756707919987302848511594550902416346701628558995720034755973559439856573499929221007053611987150442788099439551085117895081786648375463249663499803772737058855888395515861848841651335459741045515688640139122186467037615347385907370987028729564980979089335937157983499045953453124667329482171032732677776896484378438200917611264079745163639280626367368503453341768309887294212269515494354100596445956317874407672492995920218744469628963551945172709784360246361516015967355048297190188775703369807614592586766914288089272959530396293639749846743465988178126929436928036269080681623418522265357412579263045070240804620523877687805327113173133832707602841043669019868438828922681730686234714507724289885018906168093592825080131610201954281442000446375148971645747874800559194970117401708348776648282787742276101112277483808350767558522935105242630628963853581785387529475276059001465003170739082432925160099328638827993452248961686315398607787494727585704661542089968478127060781503170650079483443749007553870740835658909917981993997246012685887910080059303897078253394234305323660675378233978516442622693028994811540333139044709935857581889993281457073303134375499766598942125917602367994395078224501561056203781241795920337635749014444135163180906264734454369413853626659156723654976570483690353551644695267800163888952253515352277049761034441599897251303768105764184303520549251217998231934229980775823245192608823918098623905900467536146837307228948443840847907201569347083353032038900226790592844270869478871825755050243282934069947623464004682130650169051918236075965455723936077299794066809770427758376211080388623884271847459952465936175666593179453839435094612186400884778141582120557951236911131567962245415647937143561442082505814833938964892477887299258880767730026340711010297437309166741193613265665449667332665901552702565023372990583002384401194429707729941457324721384690197376327319517932213930063234627730300084924729167672787125770727499485185709144163813756401831714253783517763128528893377663786775858695739650859678289074681397200113004742725791436199171662356588764973763918888088885488325016476929346663193953802198483554873695169229010328228561303846532317668330366438699259686628824158324981279143379757732692402614109987259342150065095044766454047899179913353546863147403842350456062656445062824562177208491218534551062282635494997847837864981691944582382372061336572434019998410515689025353331467986916703744402854347390388769557312729189008872806620286720243191068876859458295098497135627535176844012865091515536119793758554136961841116907315303614828697691402801511236754371163221001431707547642995919125958774110412707358219462841420777686421128518335996064043627904999962806910945013012476132765543319674482315633361847690077952486477335328147224975149347059189034827078532260303987812021199725699398469299367112618262870939994478332452795110198620550729737249094301969795921533469556973535422206668380884357139807853641461616167488189516035417255339712750510306730919330815409942722126079734918903697821234120306411057541931919020245226655418971303571542262450257548157412271954942586872897166322583776999205941278242049491993256067588280700097316929267580858912434547466489141870159349459775402693840520695560885455445205699562484280078642122219599397619946121441244063328025590565734436243078103893479288465971932508652643652219251367891334624560203932553137988449335546705182314192948844675533219839953133181427379625231765153750349022683214117777979532605192125470924766529439115870223070827005956443234048050424615227603350711761638907921644121279428359561363936306002754947444246840822159665668555370255386004502472172620063069584581768510924289273532382433076438366309814295601102017535257798281347647402752359339320680643697932803790071672451505793145848904896677441286833448378222673145108353774277804540169062039478780789603388901144161228813902370006900442323798588932223385672422196250591420307229466465626820581847689642706874154651876581802326874547612632701797438857810764367260038046882784835538001147340086619381548841634601063699723249848969613629372658352933497556458054896114501257368841261299552864035536958254863394719902725254996764441531335613058351410050890417704384654163690129628791217189999809252272314852905208309814649237391536439682152286377815303183575658127096396535302211046621878972957509816857772038932465998523155839720898982347959823063455677714842936253358101658367666460409336979727348075911660664597429129888343252929860781947294790287949168166262793971896578857539973333550292210988788266451434822087432994545641570310675426367186284192304498910528798881795107517688893453492429181126669483446951223504328287048089097933222098597623611101115087952050781903433671250960401468943311638236442871869214622926690617265212364029900229481969740581504274006586818638100808043092583604649302135899068525830818120259615129014394837444376348787648939170368085149029868945444856553941751519730547337085800065351791143435582687900651688315926889053171340765679545816242686710016554417627859878869040562960932165288903983345286150369617517078309322761529911590381332937181583396529678059737634561533899458564493387381861154565211254351185176030178827317230737816141414900536696753045271538949050330711092880393751193853331891044475120465805402068700078232987628404160447102073836087735332346911594028775624370750428179556084639329241861514234631658061575741015712326673305561930796526063809868267695522543006832173581550713675134754360879889202196448424339231719073792032119845403088456369706239498493141756539992692729976455133237504704145410257047642578547371494184451768746913768547225545109023960391930356601132481439662973393144660692963259310558063482848848659326690434639759237201001793262692430386002712438860516717894210734515034873892574922574963799755785880360013293787483728208873771260189587299215809552912710419013114330823340237205026047620815635284079291625415832204938994902998876358221413572452403442819142346036349930166605854073584930373629100302685825127931634525094322638335542998516666640136667499840029563815797768576798661722954271036344537424176010452588479462102211901501930066572184177704087690729253891379766353793422239245076897779056852922126039999136268721427625329157502226037081948201393256292192293598965438361933734469507419865129986204703974163453473451340622200507637972907581835820682818628782922831267888889797914101359066099575008639615730262239603654221164308550522859067445841696028476302734694052002747986142696317000977814540756371642525525062200049315973730116937780374156036004882418592623205345725144074943349290195593893390529763758386079646770762909300828776158275974344006552789846071843180181402936124900884835530720559186481759139897733975637216659927585566632891647752677035066745137932631596215820741489133037008885978949122994536056227537611253641675697315001189043045554005327421110289852028045562333847240241658160323621316719741723443048196961918306713662630812620626636794614803509925017448364947760944969276059294049966732051314794023792108834058414057144014468412277813009677546197361365500114728079101574410687329456673622178481563914769632443650410989762378900021465034039992921424672485534898619995928948114359900428183522660412053677386682051020736524194488399485635284233465100424103406177428118108895100589545523437863829630095200394815383606014789051851888500868149440355316083099025958864445990465495833753182322133907552420965617138939445656300193809865005949773836766931589745168566227868479537836054168005672711499995275281618610239127501211212764984556300590742325983805249340074221848507316068980891071980670593122802346912982408559722142845300693653599228790529878372693128002717901703806870391112156591110842115338743555867246005252259929015879845577197212688477412025821049806983643882603913341480989749496369981494674595214638771411556964970294975678280340944313809137716434376720646922943514740451272193584934090555799701882360473460664489308252127871139805788955250348794474411140321259926379503843770986228945459638964842487308833402144434755387513400722079104718278308891765014854118694217670821471802364758226355633792474483581304731871768779992765024488562859524202705412768989307905290108671485124829698445887829941003248307140282981531899253636888965191566268841122665270614595819803411965515861951385979346366991437026144370745099851941078774104309172320448071138304591318289024611532239324353848534400939321634061920099587591345254744950975514286161582227588325137953961594667948239178687399675019606498625750300259755867851919337178599098285765161370352586651167194920790622345941091873211891742433411717436695574572295809459314636227148391595141246497753526638250684842715549180019235002046815103465999961566422556994154684295635768611463401040424182137295300684660032017858560403229353861092093851914522211742231283519950939648069633358594955199906554100511608119886029784238434031224080446230952697528972032356882380549322651178679322138230276873648672434753660045279907104042379086483487895094667529677932597885687026366238650313903193092430296652287461714371983549086027494812030522735408123472679467330574153692759707603134326113192413475711582070679358658193606988571800094187595718152455828523759887604217619852553182652680567217271487063117496894653635452601624157983321584356636223652702699718134572058480089430380197423972090303523924164612391315151875143460809781835438696793009662730725049646034836701306068059985915201580889632120196465586834821060812920684058093287522344325892852634628010914167017830397639143261780636139633921082723211275090176408571025535588138759667796058793339208396512453918388367136541036445441619415943168541628246916704915789353013639106988212413966548530140346397721906909797854299470532879511858707022554823479544107947606997546806810741214480695027441720964042069093817044208249335110522956006695636298830846056160655003082433811033283846212135282026173586668353497418667592565580788924799018377112306504117802848498846603330605944412899714885301725408443145043597588071427536225346071845001264520043338926623660380738390634038983823130810674045994744369556092060213352609908528586452644825785563236195439271806931477816064728240584932805531168175588760452228532655838965240164469311193388947533413350452473333421542287352461034090637296534842179390195638554760042068913864462622784661877121103303514255310560756422305873887235626025268822847576304673540920177410558963346104030318359597042329236884882478001888705123269190351291854562784333487200524319322453498043409861376960455025282523995000978715229213867042303213528602926852395642697474351576103942980493739907936359623130316241420459132962459230582386081277679572686696235070757444685772540992443070574126510027092158906115445480150166957030444214543744365139476923784398151770271803472249029515557236816677948428818297854050856700287902615649564255268797943261207683502736264911921892573124618358045191169657453298068142744235160763445542960359143331597273054366113914204200446777909649255341305620067124678354663114954357878966866781549787512725642606647216331418557186819923005221651924647232797154594206123619690951735609340664976632278845730401186068657210140214808315391952245992379555207734574599472317555253072578841857893033579150944659354191377963425180968317026136649761244423895796758853954977512037639081139408987258241420989329434991517064008951265223104212435736871969313722975688703355866862763247466491712411357745781830782290343448146934582630277891248550043853309084934212504490967203150588333224833502562602751618973677187856995261657401763364648672114327680416997295333108147721258655841233272320120222013800672158249044255014298188635159864566554294800591141387625536422809200907336823510034245141401099542871217933586095251949237143338563308189135635882387597386152482565489033123210486859063656920041178264183648256512093461802969117036885813202957166076970299112540458940870966176621996509648187316608574981457049978212402938110718223411470122748914345731417120973165471739651739802086816179806702650191692069358663731724845437422648671253973593297533088266076593707745654685972732816272459309715960198964561211785517126048313677499533334474305508920356357233688304540935189690225627902956147713715453689987183355522815276647198162370504146355870749528269422439947413391937299010366742070993774495129421151647590649748998295570677675830498858929969838798943083746473594127702777115356116538100359621507188207982629380039643341296095096503012323186941117235281673372405860185055398386930114825894674689166297300968110144262978946438953532062817777708569119378630217027429164315192175079203291632263496978264166891314540000955824661255556214411341495964464867499978776039076234632610589817909582108015120306233067195257847465714820189518150900599741881193005303381271620633708108485773024330514690225364338325624107603283486920233570719785453546749840793098438632625130860063105568464099407242019694310299678248627360305651003557884607347039676569115691846442859010243759882497507642408825822343660783557325564373346256869226401919559690541129333473438204168157689767280250419815676731868206371094135240744748677472562496859675080497317691504125862077955132285883659250641654882303527871893501293087596738375981369953898004445737326711190785479055386348257314326332905502246251054658612898595080307889028066391571745329800458933743839650035730912771038064546764939096754177624007230034849328819827502229625587062034591944501410236677527404401270029506042191997862019542444005519483776529960496803840592049894708337372221600086345819056024615525025512989012895568948873439903372878687918624825872655649084073468221689349098384650679551063289073802288314744404649706004276640002733710797223861532791665062020044218002062477874276854091940493185841785384784606537722815332468041152622552782743247728675158071222520379538056947966051977794402640185597411890583250385741810176692659904226965208661551475858561362451286885786443661200928556486866083385763528109501421349893281853478538595278087918613458811332740843011409334374180986136198005159847916271484183246069819165386224650795827729002117811860159714896608437355185859777843701030104368169944749731006672507401633150987360166853448137875605872872611252574777124540758975135914809556159631780443366904304969014974859806990319730989323643707328514875872134763285223436266856651932392861387834233644445176832434213932535601854155213515442449460348282092675344210967001684003426969057438385889231011969482804720076165870832083732836150301635730754726463204251414150863245747275515396147157890953536690420371790898517519114761714809188655662601641011509001004147316426274564422784294688444140413346762556561041742079765710118157625631931763334203375796556396292423162827353563400755258499781643368802115879579711117759258928259697199456816387410965565444058916642418319193600910732346049593431059973382897357221047537593440056679625493624756941574820302404787885816857601036520797861074472739343517101751594977588905343783100032997680835617882618696336098388521785757942170333209483578136275874696492993659839580958848306647487185025511422349702965890626427418019715978680652748455293613173979192309713321063881969911011955427814287319946782343005490912806512810112682763335933112631850802712438075268258596130444354008495481551848575978270119800827473029382874062307839586224278685949943480867259691186916369674760243378085609863412831077125958087494545297574599352794451376301300995801694858528607453894010030829635910070499242050899496310145258364031777174747213885195205144926697584325147711850667862558594238072938250955428282509046063355551880628113088180304887965271446810583946670786816748427395076655900363452139953321477311039021632768685320292944532251098474495603175320883659128211134160132603596847191395434356423796258674762745169339682285082291064350338453295535239095052520898534929923373877742380685491754350384872197818773314765546930374018749049364465810953801439018969464656898407254496486560646880670962488282135261648907857179850582239025587690176223323006194462898042623373985208926230838299711224539889343997636318020445287984004793301557388802912910216690033626408594510419036365717286237687368649320826281739247884609619829520261679598858317013551601608416750734762717733414497272248171022746559088377101515305226459469209744688700359048831361200013272650169258680575920180285262123639684251870318705542343694152711183364195202689565210725050880028312952103860924822052420218406355553150526978656310233108980623998203700208038691156482772112791253106823452031042057038155120690098463043116945941736790335501841921651122675010525583182022010902657883550853075949075808908072276186024341609026775406443426262629111075200798868458587657514063690202979484605836290801766510597682439448342658227047386012175456055682837433216453745087838389810451947852046246147505716310882393306730866173496673235310597636369600423283736619801792381076270105278460595159049449194887171144589065297363981719572562533904273594999955377188925226892972329423954014222557923443268235594868853510548294828441710180379077612185649234545655545085098027163972754688420894669350710685215372160779416587716772260247968691317233185552792770108234361381526427048715932239406326858037489716925399438294901435815084124503349481156449835019773006565443362164888103179196881466821509958822618024927223860878845115888206962837208268855134226835662252956977403986558527614488977951975735711558925054195513670280320039611776982956647180770167932918114125548269355270328292072403242716514887850677315093943646511324849777588192630254735959245185403802733222104008296075134177532184952317759973961991477534962480069161122933788116139780914498525110639026975116574976238331344549732404848121249393628816196201947033041544752743170821134129468723518444472621024060043743711807914469424595263368337483965565399516447281434014681850959835425725087489049554114268031137954678563261286423741359962948649918976090510208473835699235950131269191892642047370894557399502755583132514308359069352896358651561227326044073349254459476366014718577824297678571366655857551954530857493172955020321745119453961622210272897230919853038367283569401121607506115196682934792404290647169365651347800561179182519674658850985569909265531594044140630792163077932112848194092798503900662485468982140236816053401294619775005883334151847899625113555437388951169677663956300193091824167655160281609079011377223594576631631793546070453849755277853235101420965494754368088809918211342789198545630888451758760474042357690384919932127761650524398966870067948523574868833192702926164793946820355222123189306223113153870779897546241644283720781643969227226510543140242797140490029937389219547827242449580004086587616502280835058179275928652293882285158114506786186198968026356673968292406041988563002848213272730944076619458559663060029929913233529723697960159396232118828124948519755232700922669496239997854335716676790314000141993422623193098407339063106563656913443164330012457046544508325409331369798796937613333525310788594882119321230774490489202295464061855738220358157706049338885105004316365890432907534415317877302807384558112866477044708365911279007386072495973354864291695068686158863735071553130130935005820464777485949733674147560015573993667970946772733266686698111003077471262563500475642059747227640123558887313211190619770919754420718036856990420559562440639422281010010555057534347319287817094680114630377918436766649408012425956427340450609708388923694563782119615969835890197278901724301485044492931639435139497976553195069126862762699080013386875245455593495896277586046033808087009650357766902808540589466689529490834004074807326244100012521074179114936565287867593921198912011483564297807741749972315678826125125427481059394651754344051268813649655991616416909589783878328895651352638414234773997620919931370460819296869011363264842462770684175744167322729550621892307749114776051322097159582255907624644817872546641472541711531220474674777694298481963427828121199252552936105183113535254258080355786833018359386290323123378683573947487934299146831732954241455367663391104055821846739347488518712189731195257521982258408979647045747840183452321040128596706284169787340795644421915678452404921388564507543877200538922249911213213851204689806639942112606776748588340252751618951047281913331332650498766472151964497241983412957540160747881017598551646469337066617267881495230936333976041082759692198979503131234121600562919185152148000364183607330072368897954265747811129896497749075013584192036467225268512910537215851951253440474130388137522019809772184455611464828847161089558901247774997163402370766686390881272701535718593227320795069059886664433324099048815515216533971677511645040323549501775231685824425104199855433191225373976600446730450658729934059693217275697155330113929142708110147697868019751878118674805643717353576519875051960477541983759181076086618778378092407943379945846265468904943383399352149520197012856084658341267668793114009618820722179241057981937716239661633217932689070040999695128559143787155746976218460889598166958241352106307561660894273986479336195563154977349094644248345349730759474556018921294493535038821672393402732104806451764764189979171850837710737579586842792224912518740788718529536413210202279531797069198253342940603598128862117413266682437287447800155160338621927407354570985446284684364058085007654430123302315336442915203865392770488946504165878598733849444876744850755666503919793796223734051530370394224581717748346756655033904346980515987926257818138580969658049200547714562880787938265487749451272667307698026141839695379774877670710376497461566799156126121894512797859611325427226816323969565006807780190481037449583935148506891370836813050407971128300216894112522793749425467306009359825010456773406530357653725618476555425136812103254764347631000299623762864792380069077645104089857938303267586072390641127450099593743207244924076942928410696999495739394470546567452348585248098401781437130604778078256575244889739666368767270572832144543656928629793154219153308408611384630396021630056183432361982782919819453010873398113267808838622293512924080191296516834067897749015650728008522860927696244640096705920527026098577377789895887964236159355899347126527569265347464444630888075335045373405396529583042776131455460910990583664433670433412427048047343574358655694858426028351190590007566827462502755975038492168541889701156715130870056788353681693363759407348108105667181813653313458027484586874474209026855999790256862107675048738175245971078772840138026600620466212020711471000184743272348860370979507876379305077857053638914546155006422190710869026713814482840279453765042760426307693484524690762595726530328369844936613654616014046447312921415803201639224124127366141264911225428039783982681706672065979866044452305341842775100413804864242392008458651158351519333670991759889434055865458152255036277752913292386578825589853258793722731506385879565607996527610751470396802946231261944120867113637259659992899604703100697285080589268942496981903288518283132329295517253234471021748512742424170813266345358045274687539415349410082825481003146747611265166785454391802712334197307159627168548412605955531400829297380881950389250829197767990762360305424756734222038958341421866762681019163027942333791304127052748505083152030532430472967881742418966606883634596805788363981417715342515615961680100239719889531990600827479608466993234025906770207309689237979482661688689799871105936321214849432696640115749478346837171336201477040715377115181763834611233938556640816481912920027893597068719465488246756856391223071360221540941062038782342514090426226323808728665504126161465905578385387953553232485230850766983780055753460319398096520290785746335917490461277494180740251072785727711090448426273106772006286233366808725109985231234401875289325648373663261910314051504506472985401582922097622541693270933592891772614985567448956102995177098208428972922750926963299663923118404559429374050056798580716295938608642723833828269475912856974980715168034427514165700469554633690146417325217542563971921293158200084594341498629542612032171021179087118191999039728002775795159481567351736936210986932109590967157689043906868637998520274644761764084535386297817876157969547504159424923181866345845899218458005461702685284491903418246292572397495592664407852303164613324111688735197996545353371260243643753676717514395664676539217668889189753085109524445957968013528977311338576826758103465109197375998375194932002483974789474107317425021187533974660222277692535993666544232629162332824111764055537952042767255545002908743811468704861958322565152919455175790864607069337729327038319284320264695653562824809414304400203580448052071106039045157511665517827432035828346011395409272781151763287468579715114429563492697568430492812682603516644523713087714591406855745200425305331457436924458660568050339586333753296462044212211460269466516482006136651286647498790943756427704954278644416783161342550178670448535584316260553293974857319772495899655758155164378719455631964503785890888805337043574461632561205256437124281711415312300423237499880388461976510005774585525332080077397006064020021467651559287028071123569941510878239080203279384260573227138540369697110485159280192787111390967253673242203219953368706057177192492508123004519803729726200509208290636757144292697876717112323135321699403014045797217072212385945865605365255950162716236223933290468106055017322567909034131365136332303536328568729658920803825381693338779435340232197905164955744456435571502108079352472827610981716041650489358952593569829302953879329652359705783251233900616442435793804423772515274834412112765598480248392213656360066011639420722163215133763201538349875942349690017323941519663627689900826994595233323985670943999001195834685353206121749427508636171875827991672893799878258268110803067167914446964997542374348984344624696900219582389278515493408097735411373347853801622787538655585044693621973431147776591296533071318072247817936830131514119603196845311373774182484031500573356186747801773287319757750779213327180036545377107254731444718065902053044976323477270181771509573138296133416055769487161146098809118447864798078589070869741866132929496935908369641384176341581422828172062844071523524297940436440370490867653448162831326537248316637729247853225598720070420972108007060422828310981959258022343641399542924489307235003915745222530834802955884596691848996774935642192759983444667391947824540064845787915033293647980613555037581351204515559625349673681831993903136206994131890421610161854343390419531028249690104610593682451460349995183169552704801234252613033990020312909798194472706133384722981575529130466071444933741172265754628715133891335891871233857586641577181763673644798583756487447328308742042441683518721808447984862713152441856019253441096221148125426088992714099045112816890215073889963791520198054949332688228321774428882462365420024173676986876204566943060217538850963529180409691881221169203639196951081484716676930718379816308597779745952212209288842371963791970089181380176508933614102436773813370688008562715399158212505472466657711459932748830613233042008926456785176680109635582043158207500173324303359231989071344962109231859580693988244888269276931910402582661706643298461901998865518572304260282946457623626509930213956784987883206903109522543475982890926208107157566623480627195745025167981435354576863303621950975008053675744483198365374305734380004657898098440717489637371003723464390866071470869742725259206446308158143211717805116777480539991877193596634649166792042320618307598982800487933919629461505362607831088593628912864737068368688523280393758725778518079997689977009039736214764182554724381631162611523301005344867112753871682385154100220900099981274652659457303990020224192449804520263658394548788621609091202246594459822655822094483443368804220552276294036571158929922264124008504283905242798003429993155648206370713599933597607321319137996110425128490238916187368437972500286324993652453841160257752239445569811189939567199294161387029767019130860734859146668772172391511263589438104454031835715049726654032786076320972710753304665593681535032590289247162202955998241020552423330183764415519412215490628062206888693403824734812127764424721473494090540650218308628686737317056383968108554881248522253720094897484250130169129667943041997222647121858001872046823025405996587526324315876954013621491350721936736931770938211133534958296879544230574687957740456710878754152943527026673615345565322522903305791120738376436668017382626567334256036705460440814823204070903744678812900533245447713453523070484466440965652130242554310537951799286370863615226807462180048517686236550332664272158440166305951513545257877875074736625093381769316803707843310991983731356997934720794538184586643781196358560482369553480693710601590599143174273417021631707425174005947294651286377258653859395638521675895675012466072505625388616055589568674789067159751845115990550738652217824395742490558452258736057600348701714987179017717800045549833263951258245773479502115844429532546377598106424616047694939975716328282769219492082547268277419119192415432760224477157068789245352964310020309398087440917075319775373206831992956381840127671081943335539059586626316269482433255093720310896068376862257571424148415678012421994295736196303419776575457596943421508429952000220009285076522806443252219211752233201495457685044062904155083413148676822709648046372521124176470504776929917938788354513621560843541187818702028586510136082642578152930677581144666374187808026055528643155095835546551393605229059039217613843516867883052457612753249255702269512017659197994571929799291503620336129871750140920754121322816442636460967740849182817128452766518710176120494777100112384208107363934615276904326908182196626899726025703617541319201880409682613546565411347857779870295765571530771334176215857729504518540891076893814529477125018604705300662575386035639167352312294413318320699398550806833754148265281509387200856149817266875425306342533791506860920543227822379248569629805506180519983334590746238302236813962607837194365466082675658399440336568969985521476938911986073487853672324034054291339702896178981793300226581392302737429637252515971567882994280803673555336537933972138006110160182185683205281751474686357093899504583693069073733321805359475098072700391770168740539065063745714936653163040638333055943871435349204670256852672512805926833275206262112702316487783684884359688413800212988110347017962827347585589750434599973015980700344378675512591031036525584767361492839283615134956464173955083552897174364371451380167534346693358619192486075771453886043446983978950773645921136111853581188166060599124513362171415466097398279412265795327672197191200214671421722240896795416551433958023364487059391624231965521420442554037597330177100348559614346819094832057084668620729544513001821625147015280617367061962508914268700702981959339845604068480195425726597877969007591045086627413451494667287186596927753994094220208341921542902397492213369708609764848911852154553660748062807003703636854140196048915076124721657260648479957239159583455146058088356537745953212460545644932782292468640925318276195552188429045664173234415583822084842305230945531595241150579170866540420166795403377643528267225880700518876506706362300057532959665125986486726555263967325394333813488452027313420792950806110885889522347349401615526362379564516830279911180634727737530773433112332472908124749239440997016125826467364333614713852654011587419280529812051394767744505598755713165297962054816789084898710802506112350158690604766074156310556227658909145067231677120889443204501739278336979116405532207745919058430409529579329595494580703343541956177549053059266818756365932406332045814386158025026166570197320246595915772078696949200960494497568818762162992470652115675722211357622536858517000450187485866601534796074807422454415521135329001879895785988918108296938544800098741064994418851143065652345824362582612892515406712578979190396309177005309786509801094297769359744587419057225599350692005819734813183800752497449683290755078604624374990764794163011012603767672228467309356907480917811179387324282790191932285997096635531524713816919624744569515510759886608000820036496850854891554542385695500991021174354075746977658721451917815575767255513653633026850414125984353612109418449540440601428805994747757116847111937737325931206368346206028124927931335141257329697096853362849326733968876460726456469308830255292902366271338909000007518504732812007861500784500217658741747044067515696901433685743921457236034563959585683302331149543085599217579867090010924455398445699472536311074654513477504183083982669759615751212347762168253717090057407494540052075649059668247430962048033439213665706425033311726044773311596198697676506574686001546755905489221890297348398796587043707701703059161794252644482335805647953672904089431032275838854896350537034254573935775421548302596811236694794318273710300637259956446235332764144559481369324122419284904604440284182252358579306748344432782532110991744113227574648909862831424929723349008470764260645914911786718865545080770540673982839051272797755287715850212244397851656353000613566201821248972411201530883506886099033531717145644557883797689223120542435191515351016954439433903209952843861833285736753760119804727135736715207670841177519472857215827111543968841673582877527446128852690595304535981418478924046312506272115302141946196584665642530552820948599413667983771567278475093364680159326957388629201648911891699281365989017461962845439595038776752428865122633466319772702284969404545497130810581714757159308512842676931838296243834283766520622100867114839131129656026464169140922860572262479053546239280356737893516828361367232452338360663852736495190703976617522913426637888587756986197659595923477936063573677869000684859797673069878168696177003871760152281314760403545094432002336845392819983051906537514654854239706888038908946274091634370851708038062611408062892135984462837517860763077390645125649526650779974271100895056390325402737885022467820763964812648207556693360340480782945548237932759943125454325637079269108270304115932609633935049236785574994819835150385908592687929494727741887286576344262800686920948604664812357634782698370068685724503898752188142692680590924591886830323798808945037075991494603144483264741594215777093758623876821306724081461638043950667298228312129104066782260433104894039874183719436590609980917941738238272386987026124523625913604341673122065596730195189411149590092827436559024079763870484290300117928812404142577818308620360228280342571529520662105587359682184786384904214793510362299259864835693872884603334811984513296859453461888873967096861630558455682730776207721964041394801610221705425159411405684528635710544291650827397161821335995217510827211109376935590209343861223678492930913386105311019268760802309146219085959553498699801482900866394994288228170495707684106560406872209925911907243159553309645271893247532402830026431306567043265505210017288301353614188711969379196364692568460325901065717152140746075803525403196159964718530135882070449897607273969330215512344336318339775514406407578301196584109394104140023578170309390345851107571910119830784369723582829195158671628453332296248887453592764533623556412199680752765199002942725113104152204233173808357894113192810081527097124880663819894803382193984804303134795318911714049289239841292652700592829241322009755105863246540402836568952947960603692854198785710450351307545931575184406987831183549652115067720636532191611135608875584533600793583944923848045961131051982468321720179325194733632690857628424269898416166812727528973982707459556552052155561483740395034749523335056741445586320562203472623318409281722779165210090710046254827912470016984549592472445297779397800404188448839652287630087689721497564819108177050351185995380894630564014022280968681876480537901311011166326722304711226767521254163180805917419658032534430064636819563702308629532889128647081295169717474190410359461595799174972131692909854002522948868537450675810222084687858461529878450304508045786560661489860205858598167109948857055845988030936212765627454899851466578940218786544015098262842617745827616658170622715278422605664983854626166533845317607205853808239778015271285645678466784921514613061601926204032754561196306124061417271851094016831879615984818954485977236671231050950407625587221067321680771603054852105404680310630682328508166118176031396747927147332364222281476452946895561214005511528885397571792737840544067149980299436212550850988609509752934639896559487970202859420342853299623314717834341185458190777926000488330526327472385309510051709561831911010687251256898195536642953820634511893570039931838575376635908791582757838370952835247480700522688687792223374614502845313956558563131228709548846858003151515361511262493370374664062417046743715512388062084791550983589934434560499088076026203996525168739639154407452843473559320026197967280774379606095610416001130791773248063034123672103777564024082599263861916287350569212210556687479777773803728425451374132909798620321879197402752443062986694273213929795404917940946889646200455341892192894035098255551437987020894490278959719060796013407833268783540130361381241732223798755009953433851096094388453546961397998600439177736415137945296400047627749825037404694889297458004187299397894242614860043919227074770497798012884888657027411763591460996245939128729129920394915480310668941500540965402423289058341032963970167938031122892239550839562911794011119635074009588167145470655702775285783358377414113461263720971236984188583227461632372821585867799156349609657508477499393176343718700113780321611111676058517778533242474459635531814517771866247249277644107711215338469074925253245652134226886378220536158783056548859879639955433064004277968355969228390964674222820692202222471450603445830422546621278997355560263314908554679668296824443440340552067333204571992361840102745389574887799749617577142150048390389561018279207062231347298795102035854075942172277715126336170337310097420901398918330553466693559733429148603437472987487090331412590860347662757374010894980037940563236305989041001759846229362375389164156720680204571288296522816565496081063726444400356795506344150939892802457523965458691511902295111997999335746205652188702480916726639389644265107164421527440220610465876499996567227937345236662016274048122375178266746369581649417792064481437110887800567339181178233207023472465664619292753113201018363806481824831500727606205974413730958260886497997182377679821040440868918578336069021061824183217248366915487922876502261721731145688277204427281638856094894876914538236391966563304406697765724795605092065314156667702970479014324454507640371379660538782683374061935539950316510209514451528419114302101378293173594381155756864536361760224985796507697606579879275429152495187217965201372662923797534368656800823108666523719285192357688033517927164937112723785445282842815003331235817524296402670400747213667620918154214099801725267261105289767127764861417386547385879788719427461921786189789449170988332571842554701783556195196546862251882124429760249075154471187083653505026057070187951242346872751734711070877929679375202589864823564904247997414191959522098921229634098949635392221728642705955910927783885974000747206829104731315190624957588388788926135417670376411992721385550203769090089651417001673503276227263719557062139431097606084976125206138285046621555747580465017609676887510856728802125651172766241666803642442000572688704939779083659246799106501199336568219261291015807439424981245015262807376086362329962436454051063078805810513102089024028829216047843413260158904907487808442424978692015978928542474515631441208219548122042226062657864564898138010640707849834341053774265703738518922955631717792417760102825161484110245927544372510845901734718826068981903257752819274955113251081991299047960254876852031672482328264862454286035979923841607421065847985466539283051320582055414951727446271208184523816157169817905516509162385148278469309480093642379367697595745434753530312636393430729425843893224768258488712717260929958118283023738468582379950672350810577895153112487544836959035715320808498990292450229427821878567701260928367903255268863955113222906612043828215764314273673459398769376250248324222371098777958684887646207958185412982273670340103742061486923636778146071768852949716636175113139782537546653761324336268773143535905599579401927773018314276483639281179609166447075649449207625015999026311735316404525396302934605875878165246657763471453174365510957273817264495215978589009376514982794203442760091485158564008419934389781710172666220989076833925895943334131899780624015212498589366285556390585994612132327020921568010602239474604297365777036130294118716960878922732205076734973204507828798063590662514409369467073709218003903235613345427022619168425229300108432692309467514187632148137991197700923911680478892918939965227835118821654876128387133298919110682747099507299233388166890589150172053915864011443647952972691225231897292975351316176864261542313223836204073306102961073340229570226679121378871541019421176497411623372403846690902481208941763218209703288891486039690026334149107707240668697196051475571908579650857542650601625834898323081582435548587125780808223713370611535791971594792357622293845790350037822012951790280212228726515171771843017875756129918954559902091664666980718114848214385986729631103159674088905876901545378930006341061521067917446458179243619416237318502286267790246996934133152671919043763643326941356772136681052687776136804235172457448508665796522956375296050675113527733689302469605775507403740583728451219155788132396202404368755050379973270121923518353201460665043975064120801245342452377234365944200845982143089130457774930633624842394511920402050690548602887106083405877815112720463080830720796672685544257621652638184145995989270909299581400358741590776931898722551038787157802665975955222157250107386702675236444651382419453037771651013515409611224381022559573068748005017202505868208736001563313142138072936977965255521521475948473764107090203627827540068247301456951109786877661253555891287600533325432697312743980876547101247751161833065898193674732504384632062948267279605682004914355879012601624501214253955954010908113494559812304284277889616116559497813985934587816451503936749762990217083105125457232091090019281040495030558957593565087558468982344732968653445470155341828823590569150854748493999005162255439507736545781020969375089778017583839978248726950599258885431640505352147738667938256799220669402784301074858967796194077903274528877217287634655413740889142110401568922230432300504736777958253488583984430425008856649392346740410777829697208630945610741243215795544786175659096583946487977106196178435555913473650144020257926898541562384660021725901738074020258356306194791719799592705993093291597270352467937112502987405660258897915907594974292139239285001551889337659990639423557267269443869515102365860375610686657272389520488929622926560306494808583941407098026765341554822752560104146956943296744472252273144387170302287527190435459365088274022444616783914599650192343299163934376879725778515825808878544050406153278649178259473929162784883652756290555015967625173997839733223585139882290003858717799960967448189518064887262268512977071886639209489066912678297945194846855167080419449154348135120319894803690591093920652674133398310637103341570924483104973908065553851154931008636078228114498316151977673178319941305929857769463085558847935812815720409383324993116878204372656208842191560903260316572935786572542863707564929480262171071069219143679444706908599833741879406571757971023647877731560655257682853058218487482636894923277739290301216324355332931069865242785540967053922388666127140238878846651676929803849189638957428746704336145999293915201116108056410216950347187036554601657742113949999028513071279058845935553303587160005175155311023942950107133951440414844730343030990287401532453439937030864317940312312427169648862213253386223997050667909164858898550644484007191123715246629148395546190515952965841504906175238125993110519366736760451963945101573458574691577282204253655319984341472058289500362413650849768436860403051077773960489085596075338034787444799326253965904863148184325295767567179411374936037105053603627872590682931396660283499742145327815283216213275601086783320571174954310829041962522823060532451379843882949309356739544062080602556960834217542933897047035136427962111383256616433100390911390405808680207444412855872975624011824740073431311621784397442300198827310364130681058231652501142378419846575812943901070653288545745183664833605129902490280416037216209946850908897984874893958012442216802128702460250095424786452261984878105203118962832484854452450829581280539094939229747619731162718945693551739455177501710856224017520250256473923467194377676599857322402277915422147698120607684601136627731603026830407620399315684697999574981736838529196556531176224701356707275393699876054203807221151763243182668471389320860103962064038530033372198015713586471525752858740221941524202655978667379809408904434488034984731191241643234112571755053542731572737060869791613541578293448160861329216154625814926678330026945682249685481631137174860691142468182169950456296021341215380326632094431122416041845790339505116895605879265105071278772045914320211811288628173630575187589101188447272641977961985227741276988478287764337901714427826945632520225309898186162461075178393950166131811968823586382573051961955897635921555450145702837319059024934076161566608715626446368511776313422847615227449074953870261611785240777795792779692458029259458931056253052354993336320775303601788306369475010253575952560039747099071059589160483449732827427626769628358419344127271768115200052839543592671070398563387379876735155443428881857503877425481654308016541603083606656923018780666526965110379943131115162401159443787196181452238497170290573325764796848658561333388127450232076034463048823838837893942891588887491451121791524895623556765646700524571905356147893816758498016202783400156605519502707576789881964845923405284029959280215836820815965999060724547853109644811783307626632973450837662582140718673043486683889121118825901158769812051557912308226628039466659593300235417910107350858580580436721707292639876187026252167820964394703110150255203290231600102483806389456253196444799232712568969213147468104332341314260421929555308330781726214726499673261913972138074568113809256176340476007817643943235856360496769389395466997156167363464894607903935886910431480135912774341363488694672774618016873635467508789837871452123906787582452076786096710721406488530327040899874104127600752642500997474711357141918064111135912194141459549141858599870236378910858868547246840330324622933432868644589236301705321504612229901015643279273122243367190711915729568148754283433669859953730078247627629090895290329895667970705138796473193335741384969494128063957583793983264066021800337919418060701443128092621059700315308845755144118424687046653648277341921818791489690749521466786131329179205373736312711750524767898636188612027949956680768652455542636566607688077036414604662935329215634305240554849798159936058855202947615048857354663156644781348587881372373893287462895594257969163676103183219242422646710653481217937699636917286999961357562519968743401365351774598747942255017328464608455342855987310916048821187732020545045702745884689493733445187455721843886411706587305282224368918216149174809790499047438799901186513977654678303355903961295448510741451327367089710151964173912612353438155070608484160867302696205846387833868920473768995435415463361434288571109588389365628335592869165096213593864165583975448156119636473359875338293035984930705171041164605329906681638318135904240072433406438070153771790838819572389448641442705965322332380603452010665456999577282999460412730281570304832761774747223295789512196477915658020269250587797700387898644732113008129127827410611622823100378149731984291730972442410828874957214263345259834581854755008831129648982480777644944306840488262386759267676955107963317401065708428467545613806931859939219410300462634481079106537209462839070400608669205901503436620721982218154146896384175177514340061681423980419580966156918821470091047415692685261693559905468183347114713073035344213610288248439185417373859373016823242612202319862149872178434424023718690270608582708991598942453433324223928120553641244532276731544335363116583269986476408441457688957077176880698498820167784556952912697573628574984458097874125317351815133482951232115353149611686490839544372984468508121204891729208802749868033169449081862632234170528121492613564342196280352909107714307404483248433465124571265977375986516877664623519923643245354922934143292470522873499932646628746730265905019000034186303467253616366914389933065113672557150742010928202898301916029620763983616309391051981641022305646406207193281760940893170048813995886946475822205142986120457273968991496397763820485870368960948924786475588233249747688868579538450886990886572046398553349176872433397786403654750226458742192023258830320279171467139062533915560187154657946860573723590191392203510055643734984951005570203755890671122557306673241175145891995275430177785137784040644309317582550564994102158231624113350893106052107273138962402142527072871547969914369254817960185447790147918653213206279401496093360738961360943069333637043618891599185461176469844949751917760996887263451001784575388598990327886351348893229608354125602552893914784969898841065484128620686663995232293172330777302042359706960483687806763012746081729006809070905783081579735263095246787106677993046126639056337526491308915347251612947769320583593437567347807314736581296284043372038120910605440736690478296554617255105885137290126349565135315926737945326319262723307843480850830492229945739142907486514596415219755365722707821502034313097484392652797308131734977355493367024095282326154489015274681985881472357055358128711679296207819887762987203927791035074593942085601279579172011735525400329906950835357676261221598337541276405728108151242815084598574912290806997637504493820079446371254167160825573868382755021784484456052380050307953760069915711926088589088976696740407070869868386853249596473024913067919360941354606868495671308615009629369074061208925027053643969244071347366629095017271320337107616937583585549249461705338436627355546440977301733007683674105006958927345031309887258956398075661945443052401908129326597999753698023334257894584161040574995163086337956877903108819660938107116166783374852978607909189438819487499975047535938445068064287569204248098879664622382103857944587936018078491436728315278034849430117635811443490407712083918700794785340868468351812071718881878040749153146714443184317781973174873391279400480916140421157673486340130815851374474392837978527958772171073264721449738319566881480038079687433098637271028077102423832617939289194483216756298549958072612851992697449800242258000411304598636877852941652934994475927701909900189310393177134475969932978049110268034994763437496678551805572036124188673786534442091628506866159169172516261785965773476969717519924982222991527973200643981199206814626877350880358507565391745629747658975090350031886084526251456675047717532017702608873032707951836101138393541283016193418106059544070850959322127928848027758956997585805228251485318077896072529143826493762775218412388150545546493974787562433542275925267058561998442794867871226633695094379626067999077781215396632042111292781929131266075488444642905477196497391699061698021788075191140909142728715369786379757982391029132269671195315030663297906721963180187450726052278831154507293320027443164356994830898256850868087429984616420987522625668000932184930453271679219763729072003055158387716874213240924895926892011874653226063648457270274715188946273138599734617771403288279811856851578024094997805340630672265721281838957097985159923108850301179507778173682230489943619369677152001031452281738926898990562304163109735818561908896577197201832971687844506237149482331043432909427361268996408862072283792554357418016026513480926689431950341520566505204681324751519067726642403707741200023232855601428407001487934916567199722903667132381864120433807160867636127408315118871465503890322006853641473400625287481274958604399830159351193059993598099326677711605395840268614911742233588170081201389636372454885867044881980056238494725160162524724912243946071692911535683278767912553108676721548839153461320153090258298854439188842840616735513181333175017722154341049902604291292834583707347009420343324429019609986697589652827094590421950668985722446733790604748288969678463502484371809163501597653640948391777846289911197956006957947936185125079343228553019436165402263013001955321413114409925902822770042617402119150663007558617552441666373424949041139862561722220463028399314516189362175618667701122708049015854786396716419596076510032723426215985049599312534441847734746339126259331960859741441464345606241149936194800473304630905957069990575551864543831511531736637362866224532512382152714441547350559204397147863852204816149280599871383652480073015294400736707903400583869617336565964400155122998490139270507469010634768306024708734107202049433360939964418203602317032334115881836600061181962248396187970459114282133535839187876215682121304216417841769161375871349616013963209718716539826879483697982909777442925193060825836290669345720575776774677086978387661242419521336599220815747167868422344533697650024570637518035107344536825496221078778976798440560108076624408408987608199526308114101702436866398289651602901357313158154593687863150020082444150842131213192949774300939507909251588564507900125127056297680103714551662498236517789401873199200141544381653503271524185817883510102218255025262261007281814683055946047488319305956902664114977387250466653867515260547835538667199948471019503601780821944958345253216339559560092907603146586459503300566010059750740113104343914505237304397380368082668470595565569189163675113011627614696758970256503943963911399566346877642897358439226071279472660520912646823074191319093769948820339249129251844921387670704085867031016094789796232778806152929618993579511840427049473030973692237478086914304252405144870581588251065548018594544538831272916698387218476049686135896904202152714017285642972910362639355055813689027279692449470507904325656866516582041920999851931149693931251898216205713737624301129318167861076909684049238409039703317292599665693306932577424035638620520980204143716523479562141470396963048042137245294737791722009511864763748062293691818916663338729535011950777259893515815247054084425408437927296578066669647262375973550028591176574960140131688508552408799914168610333000072507363006782266876117857237004381062757952628827267831188084446921441854475185364227826301059654651936593585028359901370854012382755562050885265809256954556112775317335404835944661278816485641176774198333738774971116797242051302120189128505416843060333320748864087017471810416720309104063303832862475064139789939007673051499156678090419604768745091690766574576045263384325053894080480971373444351424294434150828700257910043315757281502869188125185203381316273264866221382977832007186229431702168041898743294417930324549438535164870211198884548790764686618305433344961072477507425477513129219046268052490811959287808044978803580727607303662752865919886633802537412268227062785680093632168414292306067489320875918987837796492659009363986366900033022205350440421448380189520679560804900528852852620529800876449347878712338018544617404853686092909574022347124329043512403259250410559206222551836888247034474475985386090759010195315732738030387323251841598967699791393288866113400254194663210970382989043365720052420722751517670332978299798131946938430567376805418103135779425691352688298778621511285783679756159498873288930965884888655328228908922917660532419577221779686337991072802517562360327974895663858859239178152633073038270903122445204277219077832755285451522965270989271197114752214766162182303111595781272594835841353688539554290255576439146184161809189805456788732703426296525485244659096427359941762794819348602660674548755810830368531768451526796171300456916357961648004297142922409375766067208249016278793026906602010478535901869716885451304635559846500921090655282775289677826157523103515304124961524861484374692293817058222291309895355315663335388281563777524319305503856968913440984894339600741195949672871259764402832483128795396473019049145027637961598395726704421696829476303663811261984049886236288366954751998146516075092276288131221511011042856944448802229022891432102692676609273981945950595160434566120862534502175925297605705276831263573982193539702300619059485143304810978195974384748471918546760733517101392489034649066035363427807830049577409319192308196085601859003237605371632574210279201577066833047661329087160036787612961053184579974667109297586173170181170797939936419151293879479392867088821586219950994391843872417331791460193263421829308708252136957594282995099394577819504542531021378866314561464859094230593891932349341519787121534945090024163287492890216889867007922844181053451495774172261981360913496436569676576232270418996870297805686326838282580501278233810314415186562262276131971522294176857096864069373955682222817249246574571824412776582616972752969080466219125675075113011834896319952547078202547059454693318749576182888795143481566660548695197053230343210880891398487980834704134710556564398146942804428819790391726358285593590512349499832107145624960923064102026521103967489033827880926955329706988241694246193111211199093894207970108250520159782018101287174473628924641306340815492830407910472047000350021409495963820960128554277505466996157575151740463317549460762536323425756527444934740908451089787112945579600017292866735412274821074871865350765527033974013876874788362282371429380126188686783257466591071358655130515544085766143979976402972538002365624465261656340481722864582270569533459867909121662870841310489035623409657011778543271480276434704907198288551131386987721411675942969397974203503698967696864098469032243885305568244034687617503144676815266748932599061384526877128992243448972165695365234762809949763541981200503774816531599659727280743658207466888512407921651993420005945305899642300113547721845647612851814489159520507169316388127946742023951285805970572531587680455698748531029271251186363470416311074151352215384114528751515916432915115055274601140787498866432323897635354507690991695059493536992197842482727158119662354091664068452378820032786669384546892105684952613385544640616894265433085369726061849696381677846313678184268584218775475769243473328403849856865928588882020080970982580643601447822528588150436151942270578892814589590476441416969124054387141853090858005721592970330474684770359134748647064220467986850146429514621717612541911406337313564608431167814726867911108900058966713145492122809077677706885485959869646239970872045518552504507747494986699763663796416391545947661794512585420538829758022390083358318658251742096992800587646534348569285625439758500921930944605889907031093853774476050077526333427727211871762722957548951412019916756782639735990100505636028526750148671773839565721459382607528553178392836266351901506998614682090992686051110996887634276184904459800974897883724212421087493129638698350918719080498997356921643070344952210028823232880224446849095773982016352994080537525959667417539033274378958594631376291757392699060241487956892560703074888998237523551486050041551789125803617092928189402557718058906078469755991779170015389290216662797735721684888847528022116029525008074779833763064425567370265767066933477009298884279785244973538808159401349721370938388098403115162491988728289657685247455143982912372384875889847865834381936526253698009740725887878477452059390399600822096829105077158240717364561343080163474155484156386208369893585821472193397414997880771017696130057285371280674990507484253863635541110920306018999748165510206934219450906293680697072385640588281332402857728823737892349133482112504666228338023125738067825351344106366176351681291473085789667377010847750644948339527172067243104681437879491714038786862604983865527777904725344061590559737261148570328982338704841004854509036218627506303808248625014250681467743751459047297221149989842322820072978156305462189984461566269512982035129037387500405100846329706298620363415422651541343114990470566923632969332224053606126468291255022475277823405276881509960768327603321282428070796236685568851813621319969054334972056939044575370918067914498973706549932548453140278517661199181159387635398740593488150459297592537292477982111612789963538908204147971142879805311951377904142136773448336898437476686667990780089619781216040222589221296659722060457990657475232203414868809437107561888757027492243929911131501757502523978029548148902688032485788473250958918538912871046522547336111573976018488388672396310032869797238954829071991946598500858292259511292055782260488992661798120088404881326557172032714842643482774332888209807805862909187169074770561967045094572078755398931684663389157924172867065383897887566698030075403583242047604337346122766205579676020463557881710566578173853897081339159715798450001735809155093934724573501263314978055387171424464050165160422374612513117793677824181750649709934753398140405730160806711337729519526277157559369045462934501126817553960994439072859753032836794206498282108170331495103709298294895022765177194785118193803403161331754655465027838122539298153796620006696693022177884797878017133947793343381460125133753300238080495331510469843442346505636955238074953670660717531519513182034548449562424612990355848333539409384059815454543296598994814019407585726127553087126743524057548596811862402511192483714446550302550487482808607501445079083005093939257158906792155231740503579274868850456131517786274387359131431074618506403436694732237514003753181639131095776005307469099771892077224284837565847530333719585630420240398035241486606329675463800592802055072928833142532681690682174676314185341721989808896380199765401691084628045283343150931129742481075464708129100887667084219513522945113541119712606769388425126991999507659146637677351647433935653647005035205095047070483125381249321787254095795253107420649938248623916312315457250847076395662194980862750505106915192915422581532864827528728522853896419679595092027207540161000920576296866008539541765039177444663239043644200075025815967174168768843536320869991096880348472735221717053458410782497860033274147300837254398640762782647352963842434891111811624019654880868201381650383727254871063456478509775396297505800975533499035418727010925012472057664102165572241476118355902831187623972077259305557383713537699464799896685164510631514280329014734358055701890101200742457294727829407310598953129627714707246798028387258386122661780427799864797809423066140005317584046164776280906106002555079536216928129491033280370608007034803364657311124184138437560676201767745483742691109212686822694518276685349965077353329450729303732708775833059422961724658946312489520210087384068044758834940086845366168219641782496796191258085093569546182482722239361604362477387032324863315881721216490502397623856740825156119960391494365465697959706786959058712612553787431515026531809451048453328725751050454626991791408324045150046967238452730401967034363436471981748504632228595380915041690576782537072832781100492723185338131328582961157394426401734142296616471135468398565714170038137514845587073273367088256702281255372789008399198209405190194922796445443639302491258307115903031942197939748434731847679934414638968285842928376987982797571923519467955191283413985734101950045370051279856949646838997809124200908903195634173354199385281432125932696511878710103624193102465145425392140276058507895351380206513420787028862200570592354845359339398928569519708573365997545947947717579145626897579013970007595082338257188745576387512803241801303062879914168851603229857234591423462317574329472752000703252269001452570090468997102093043268911830821558323811056554580685423100101506028731420967652274696062626348704904035553473731076719662232536060016876072952653341204115542086206955824683673025440421847489751587238912622995771450800897120817920084766869275054751926814778271522682754781812251174347803092548905606587349810649122466633824890254621932372037804875119284758554751485278322232459244876652961065578554214585544816152143670318243291799406819552571162657698044552177672217137589824684426331610726565617491537655577282190155063859290389332015934705810627922205962129635670520178810314314685911524212024625896134549310416708143125559327919276597248681543586069007107453913349565280817454281687474074542416905885395473548388253314935163381277553037762111819129046573690571777186868714916988995283149971538552038462232341378576684151396009390722992284350259397806458468280661322616498936174378454384906479222008171359218182262282581670546776682985753458933724401881057452132115159882174792956567136962900003707562905579439721566791749355153045960450428211708451832793348294105296066279488886422882304690323331741076784217199692437517955181722341918427442517577676953303874337174576063326519203412914301355440814948537815342880094497116440031711810642748176617433932716313905636745292760868970376523801735535627962620876897329653210870656352298359520950066916058591577264321740461998957442092598115066082838842499704973265021784926646210339160274261988115406689459839230657826976543234146312129704409096840429867170866017648421981698939205227646048764626618420744635923185111157739278741725519908144657096012966378429232533187786353395952102710960830980375730083715196057821047141195753460422576650579034802249641611601745940367112317259180752735338333107173439979728190969878395916692237023341911599578243466503427408451512625047774422019776228025002830160039379233007538552655577625448038531490565709532455942240516085351829537374151980507607409895728411303309732698175169037833423441436122159287723772507598501668567669180769460631036875517450247824279779811293057115648668833161462656422694653569324089661458333450396196017351353497674006224792636624151373250885597317739014654056730246367359053322075075760079111393877318418258379411249770581611687371503402405218856338225062508578243066829733162648958474033474046303063773722991742854655523561415852435345086174391749328320904274606842988994796786879785223081971784106454210644791871795565451990255874292845630538920855538156566196289748158705044834141379042853716616880376353887007628936103765069990303791731763046893671569686909641544975408677953891813662350405394029831607014259025333457992588991710805581439211186282215599351725702437195042634814777600239919782788631597212893380469089825874305086035910843930913968497123373001179496631957439954371296608930655987081394842183834868335710772400694200663541843056461290821218931651676961097206962291173438710378514880427856223714803140800029817093392648597229855767163342806119873340276355122928267742338869086952233974657802252894210451946627857917873439858338766108717181347645984737215112194502259049312014883232192722352293118324132917246677071844321646772971627129327711508130184177982166141001316836725426972162174120833730318014404078100907961936981986337126021882296096800397784131067197142149457987857193145034455692110906689029756916109112066972180233745483104054223915365761887201944547513982713269786969613101984343071108657832606769009035907794127841848719971061002155440897895055402982066211569931876930244932758750881543312887583568076145352831939149560386756585515348325891777409254718465827972590549478419384092021214106035769234129329641860893164033300287508046022953246811490659919719976329703658558549373946525507598291256637049711040709098096707904981607509176177471715069495186187890485408519355156339959659040653679629318497680728392192714862553570387412096025035739208637864620698114390852218807486071138235416826743724950984519981316413967852287949919526578560911747108510997213821645723638364616067732116783407266916228230636425556107799074657686915099615680740316447267846174672186147024133895970227745252622391509596248548303734344076156860298766540495658198754093841805847582587800314649623708549823433712588360990453658187767687984874173770920720499942216240584612754322413631899715855896453308832413411371161342032309930957491836573616846478232580098559858550956895665015980527748894441169384364895526877552189852911475694467844578822944386022761793182402191953213586393353461439077271093122123763593256692228759341625992867790451779638629990235309547904268588173185542624339516139271441506951849987747819355971335940882192824553546768368478207046284384304003442798143550978537622846510857403525440949309629385911473125827487105783179848487488403798818742567854626430388429293652587861842162944252041493328401946650934346890344188626460150426870735971214079008773526044980424834322228986321037152011815934325424103658100685719593429543723843381537680183703973174744601335088945877470415083344216367256606594557167523491231281136576425775100372605259698984259125860193689370073519407690553801366427607777450490997362435903243717202980715156837807191411394902982727290283165214531059074488345605123989658075868889216797429851971932947625379609010583166482794911263145490347510268832877484199044673483618572493861367839686027447990006176541397557474914475229448896877490568309725116552033556539783724935863909707264763346972493591181276295989988840499006538896427021479688519681245921708329605621959138505363293109661056601581413616215807159822712660818544851020677960536505577228713344813833916911966335815782657409617949296904063962073473126855489271391135551082737584178268783544061749486689897410410804545873327790061285736740559724129442199630319720081675543601264047835198885542087202324307897016663776943043094785945387327880149919393902829450275555131572689595411290354749391342852694132269042292761498687792534616931431587457621460292154632688285689180828304612405275744867029290497288057840428280130313650011232733567206395480420311187285164515433001439600141928742750836719152109693398715129172865417712231575827176407928809881792223186596356465126785332888421257650648490039526097661194984672496631021981238800867008021327257567040128442874046897788606575482334920811222376243063841055281304122169543120153573381459298831805873994778555898787304318487939443702386274386133288941775619616042799716690178951119749875161090101442354775868240522723086974340469158359285553189348616088946375542285900937279426253774559563787284216138043762679844330161034975047035316358718049372297953628112128651264775334610779785194627069594425291848290125485458508048473561785353140188407720904192947442059985516466773081097795930589518095529267068786295005620003401116639454712441218356876237780981782794745678519867134806245902315690571142554693033599554514602849162327094066827558964527789533404970261437793857450962606708978916101190610552042303916865915262275925618099335561036894878562056055907018452537720774553141267803979403601575980212907142696483391815836237996383783833606169144790522645553346123458455647205234085838828826248149020783941445700428589245160363514224978297712197635044219698863071699418543871315813479360587530348614091094968457553741986725314035399431515556701970972445463589383621418953236606986048939969108518853014047207647909240349287955747434925890224709508952831387276622527475160752921642259916588221587576261725677474903905153775618385414574617691509188188185091566679064917016600359709474004726154652987251906918332607844670503912191140390438790443107007987034218618633210464028201045196325054690563418596806534520084347054998105037263526266631172284261612478836827965221946064456475676056150253524351416264779944931701674553008050735035011217214060288272653039660888742787743573984028560753850670281433343652159406932275716336982759862090697590503553843175688837858351099065277822663449207002174778431454770584677694062571273939399810945079482313464727158068304148920068077518157202674808721905015283919224952422276712160527144536379075161718085387828599829391718337589730518524832668721380867891427589510741979915380895122468231761675752121177331103438142961778110185838933912218520749763975522051093849482705696855161603593222763418606762356614704023426926968160318872918120387291360256156659202787428048659241535750487465339082504725632132754656718036292601641441980140550087635469238068747858673795416284073413206280884116892156867891019353440753798671905118318845294299183431380372780749631880681218026036630895624298273383028649262378700679867205384755056054863462475592848838514846595178156565891941088748173293751044093790630490997173470630818644248624397552619073443558087685021608920480021368012164691948435762531941636815900747621125260242562448814553169432085575902684017060408315428176869596968289156232223299328637938969996432958125720787318188574962966863888362739760508778625884822620204230427721309261808451010236226627280542361632986085400189740473571305427320982950236801823813927474034895680135905790346471054153081645979635816263671142507282391638238443547849894322216553280540844406731808062438822373504456390924991853683769326627661820780524861662251939499650286815881447495484845295922401646039234972348915008446544275087714369613521128762671963989035757501859290102277064110392640135560812298991745672670758990491181579949230445903782639164376970737873262778755874394581342844598734773321005114615776503324467640783780185913228515465033173261383734076178235542984962730755289995078237741205866564156991381185931094713148581899125887524941418462260242719516439244687157928635267698991403407292331354570157132997390892559664397216190572835365007006551301214964120434390380964409978652113681124295731015097803737291773552869950811241095291205841402602170556218314625381931591692602422236192982820340205255443574106641002469356976095666702474753128781835299337935214677375914528059613773456785702004703295886046890474541726032819138757474097320832986439985876188344434097597433667538104117353726442254692453852903311833418144120710277056066999990662401407845455324076777101910318662255096649972053208618892116591487873604204653293785610717764717101332978308596238513535407386351652431732569436358128850152444539757477714656118254171655570508144590792932198889164365897373562257707130683414231216193181672260421136529169573884731802038187213069286940944345816578420798342832062079860520134149937857843293500005432807968602633625107763881202081790912013894727504790710071320057551287419728367726429107119035313222027959951372341595846749141537056067863753136215137866160949255199157208688381668420050850047520334689381879933322648507752903409827229528703676429525445975201958726209135752431050720991293439150137018024354383923805909127211461251791138823335109250395269273085004259692408730839705919681324903338359649481871160037596716767917295738993781615843966751050545886430414499704443878683266518694916541804453897796897442865890805731985204735563955302602296615376589179716147680253629429042386626671473448013372466454344806881134198154672946600924357710307663229299331251768992722650852588301897800977335130283950895939478956146740683629870148893433656375894931086405676440739107467594899112028388304366049859140833325427658995921252507325559432719134889503074858343468826936679353556523137597687768191544328356218965509655703488100576077474367122390804035683857750894702638776487826824035658390017353509646035193842334515110214231666623262427519246268393789831107714300527889309023248406080622887763743353287177431611330681713092180688821355458425056617361641658488546118426415495616426458479179086847609519733468047109110497713553881712079622183319359314905287273595940131955440940262930798990889956751552006581682953154630225362858254872947662845782900740131721364376706694111679977980780950678060096276131164441198751887577844659008426561345479137826502593545788568492902449947500189318435762223086951445092722543247825185867992492126242196817311347188957467931583309923910960431348455698441280969858345733240313413001757934542006297196154468345453741043346744252007295246112156190805305536444834867193153966197648003261026521146218103503172883817207170876658325645093724214163348069552790352325722269217932370169228696356669638535816764228706115352054403954115047917775759583183689424220638454341158555597169013224989493555819698690035644116586159792406618108951065782535545749027647200888960930253323535552294875377941189332229855973723292095735867528412087072202658412506530528883538482212497339039825861095921772488563300345014501877286006177656134927991035936081102900476664870225887106703573983278508966005455053709797174059384459407533808759269399370856309781502826354168772776231653296037256592734158059386595783430194957268928912075143844158773772501298868678302923230285036969812857007457026488946154379483536589753623319325200506250026468404122876773549849357066296446600271065851249891135018308492637042667025343004208094763518966691722408345427309987860751567040661188736098256517706982580213138752483706581895003452800725399217945989087287511421075118362651917072573696093125622740166642372755515975537691639568447093477204827136689901850702530610628279018719431005893898662630606708059125894056472042165381091554929085315216433544204538161218009809453291631623629152652448859277185413074318327282245911068214166037718908075894053164370371691388399828713971892028686712967374708848205951612939052210171023053677251945368195995416171212806202632864221671347922630136184173332946561039516612742319626906155900525100867448834842295231680410064919000805230706670626087564091420834991704604482747925696148751117067546084200861900625911953492843791031650191684758948687890782390790713256433934755007815326761817483118213335379096635505384637202676625673146142353546917634134061539915229569986805211715935783296849925313775778465961969598342171421717418978931047934977671465651162253262861888023586368218570335945840083239969282358244760500856401580748957823944119722802221716667567114149339906858355221018304295835369097081962889293253341486511268542011386198645798686665441368234106790623860181663469295002091994644218784511096253258676551174961246580644426398863173038168961821798149525676039992168677344132413501721704446698878804088606725072764607226791130070741242724650625332722196242729150982432438695224183717370432048166196905820469783138171715519322003921589985100319486578041595046957467110822068015701157714028886735820126294340031788584769865381892573235415289980630398814154905367650092435878129900669580118056372485407846543118065277683571781251470267436244445723639912799699351895279547006834873804330869271272998088107287218157086935061554751852056635178024290229361273103038562391458335068988815333125385468534172824527846943483118663780257648001552010232790615583655482494397707805623803819826342899332125534482177940232886887397393567719613312101774650340136497226140198482360321391109538695839194078750507995604553945143088810833792334963815053140131296050738552433205931429826954692916670859568122263418456526615072765479708902567841514105636080201493444878409209271914131385106323724390273768548895651098585890863268629124162982917032091582397753821050301832018973525473108925637929945398880399169573709482205119197941498279751264697477570079740195649704895762150810133210891237711882373298148273431094725200209446135347889320636441818057711339401839478311950809891463995119331821834116744254840043017354826236694851112439293302704123112319792378164935699391414520468782692549913880725217441574537772989464997383232677088336607527046310893607321913935813946615100312686407348149657388717050669133233577058503407394818050372032667060264803792878061143984925931977176478083750630772730985730291155387887271085113964580638502468305177176468075605950831971305677912228262083586238871740667862567787458216422387856977405040358800583943622558991138311882905510316870940828697849971701030058711415535048362807021855789059660184519697700821248690342894080386621331607874860201804029276309613852306304213578301526066835645679463542322816025225622565675252695847333165370391231317748125803944832270646449405671844578013510312246382626894977675172510689772751317928148005718775268016099358129882439896077534629436097137876147283577929315627181125896911619189131877655545035980749186847477483018234396493957621184068304232043836039671018392787882292213095980239065424899446617961997890413837181892608923355171970644510942252342595198417891163281134557324787270597034981300550691348385914699495671922759461104835672147358877829759342869178294778642930786212890078988884620215847351604194369684922965095271277898506171848376503260325788330979632360092214651976939461126863843534568227787952502225011664023433762761067419443403607990536906831013209553802551655902443650294629759411725977319035871109409738117747848071437562858130274945948454349448805619408141945784083367139421154025707607837611108433563190309645499812314711574679239414823742718297873064426333270748218434642839297015402880885115208822104596878990528994085980413344662234115272106208777776329490930542291298644859723829998299269596368640767772107878093264194242522290049443428892698198286952870338624977507916894852756935386212377275881259491003607083831782002377386360424803557821433352727588976686538202612073285720071482326131247586317057544946251389323395334896511913185626883392734786606515909405922432737385438845550294017745269097487330551667388823885760680586107018026608878491190518976568678115421515013137553824293297494103854414723983597710653181919165689901260178641022540578829913315997246743128371852492103143819270339533825611204167467036002636501212732267540564191611448362619065661043010480562419580235246499404080731635586332232464481478737335426900861012581085479595929505245965079527878629521404761253364776946246493707730633318901346672947952292957256872062201090781753663872860118316350182730931980606683094964961404775277030870292990293532298638594937068195605188958353432446572675843136558617456145185435819290310470721613559384380005539714539372952371306226850309350369716800919996340403338928008361607552658467969965335556880642213329654336396386508041651080055595300313242172357179207454658934207570036208740201684330227189196091763262735094751886670625677871280538663104584493205669856992957156770347490892331246346516817173483685778038788422036318872472803487890320751878218308738251565668772505926225209918729198884231070763097499187871793682600329908117870754009127171781486993060392294705456780730110483550906130415908418219802239423123027290256350936546047006472813161963087934610392971964304003627661809999314456682677229836587451747922753269427235051301189085320675450016949522760197232373991317643731294353544619663946219172056720735162907024290542629885918356809332466650637029987898899191143266432768173774794179446995798036058232053932591287577254207199109564699254179184231464873554501222741112618955202756745041045142510899042650053790216431461248073594361631709417126305399265527006506955512420119252689824479906321265166192726914493880815790311271933432791755934564627939928115218391920506456525375008291394373262896256544666751484013346172644062413770756067430399195451049200362019614867503567375609414120663941146243772744249098967506088454155993155501584774864496157527516586708968967104386852849770957704494119057090150292246535148550135958203857661237581344364733998268634731047062399228947836019246542496073578817891457126788003961369960282740726243418651740617577640513728159483457986403187812595797290065836049741102162102073933054570929044890831642967686802196060242108239526875923490559155574140722685136567240513277262517009559508372177706582625513450045730324858952640497181213247458652900125946561788421290130795899335241591972307752756564836748105040278093452335637424764140354881820751737925978134786873799094868594932641966404438414470763260356709033871480018538822053375991282433232276321494180466545088120427609962849513363842969882430778070605980691768220150776926492089319627876984112933561632698083115564350711925380775405764838640967258424700391318420378728137843446853443893331400231946866351505115536040666481327963477979202553441790883941723388661141075212108844587716575135234712966263445554812082524154668198319765688167096192921697999892543664904867073365427105452610410047036456564406077679007694275047013641990656178195475711034719338690663060587458488762373127998063115484755765599065903258328475476876577375048286476110927003652733969017822739083650156844190330867270991132164300068638303471791621581450859870963452095531605572361954759060204476493240905047169595322471207916465089746900374377945997391111003915904899367793089291158719889682332495075813744901720063617283942205039914362977720793229871805435073449202126251929198279892591326215951617192594420779623356985153199611326578228069083507561410245806254522614833517670649944434884834527149870492008249884144499183507701350553622452683096183724399013702271867902877246669096483967937511861958451899977793561618753656103677813164784326435219225439920753799355463159920270456661234959740377378137255457723606173013524938265100538714877866976544847374193592617664834296238297289202191523926434243571185660775750402309012044358666501868408196926956085183246688314149452400693183694520808508264319795473493375654056539800962222800417979294215875494299930095901805007540224873291624935127092955791505271378081791323123409464881936849388073119401103713508551351113140889466082746940605551294335140378858613577737112833251301422686634092277728727174536514487537594458842939445258874349780339800494612643235655867797583174430599451519909522024295625203398071349090286334327069992672969997892924766855295828504128641638290894685906925922309784994937391836985436527703379978364785867566552847305926675630527631858419229147837056112284613189554698524434306303965450888548007418746862875840885627044645104324022958287208368403015266923720587794241879448243072138921313045432891068827346179992916950519201730009945147368744325743591346508385278271134728242963517454563359248360069116670776439649178775972518864261638081556360287563485830437108595212546153282295533665588396960200447180966592161537129081688014727281307013413313409053282315568401515265338765221752335897475884931056339904145490526724288782466949397146549446563303358977445475815941281593694364671124259806671257777238783667157766794870090033735107911598843246051702085392727161471339926896872242994340859108388877441186277900370205412903785071545876014365285287039259691763273846590313983861423385807205749213330746526336125809392677415751471838744605703642250052416194798210630101662135800224823589716010260308022627870406970274173937691722819452328329722158074394142708244120007493865129581993468610289446381162397372800998254011391890563270714930492136656778429883926092182779175353900990273977690069738141499812516096505381065495340092517518281505394488641673302191341953279544771005187817651066468774024042291097877786495758028088589241696595153462474578854706802849013592019689727565808694975440931022637589339170251443724448121573612348044117032884815299399404973067344834077402008139320308500505125415340066671050463587464622247293829681751164099998313273332031255778050678590757249765372682522876947868533787799948008803399981668978819298233952896149562744908587105410445850520339998898067072054726820528267352943364616385926533568429784012354985792603684619079413297285682308875754647413686720915345103671602993629365365420953641923212489268383256289755131816505086555611970352395750363515577917340214869092112735225859170725839486649837000218855280646611187749603439042224419734785283567205226839435381743035890319383978808953059555964433450767595799037863428009983284823790432662711458277994896339238041927790171466844122763498168415049617774334056781751419701892681464829712810614306129625892300039272617112057087776817565872996036371259447437198246604651902511022347524548508839018551757943783793695378088439409180042470462355216903973017648032793912412092526799549104705105693951949822980022474924158393006007874819410547611941113584174149746182693698536448358361206553761121673730888194848904167387699779793434927500366589545237345363085847969325321294318053964456678569138169380837675383283810429947140542925097380346642742509352914076334370210045026213162670256449386947871201670059805441624985061812449944422445887203417057916827278397511688250050235335130520165516108332209017671106694965072719391115984752895360691228914816587262559310047014150197566847492925931444570512967413434338398459484708416918571910182170587621779382473085091878862009845179948292958511770485688447946149705275672075918828184556077807534965788939655854222384146262137740908309307426544897830107225566534279221666060032951623627209919470034326524054722002512235752820205767465098602996590665114152532291768726626934165207137511886415953136787242517584068618178516611300375696701504072441640417128954724870725074479369863431222183192069905465325402621430985391123147933615971999701136350723409625105701663736813421259445815008771662865156948816938291573948047245082636740290911986053936515347370607128963511390314366253332098901996779994397613251944176210222081914341120958318037577222784147872446360233368180390043401963510859607126818294190564045045786634000644368053942915169068115345785609992212277442927273535863673484968324874631304331415532448746577484057624608860808842542447558412621298554400571578667294877988038953742774048573482281414380200738026481172814679964449815478725126793146125956455288368829822012017920279324700413321235882029149702798972691309608499237999360951081130274984910745772259591145707011542959931197934056328737480969226648494509031596330370550154084170701755879440062440959290050842627502408000192177627034764592293053522208387561739272537139234757435050983451030050025515059874182042647111809559034908358824087556146532248712943836159373572744314538667719362855283303685528402466271174498532465426811416564086099379568412655537440291616683266692035059579567834294564752017946563597611059669884274284425198799539924770317937441483711298696131082946074972481569110789526877352480827463424025908953881396692036908069719305544142368223687388898786885091618185419250809027926748570242299372158064302258379377607722030328120248326207880992477683012962217173667826749980692055700672173241324928746722678358601966686715871957520259097409581743375479506624590558536320748869872663226611856885425117058761582562126458617990717674633683436341426006392744194158732041818681311284002958693076752729930175763351853923461489197718701665173511404347582674472157879511469224685307204801295941804037016547740654469128408391355112831273917646721946850598284821416199305328745888352241446153359830363697145341026688734438283449030176054919934667000171453677904871483834627537126202587858919216719354996174764356115987269449221552883041965791264970760551472611560365284462228244160751357771807327488677651352030399424069811664789357065274271596479440841268744025185934995482395757440375953601278687410364447073796709058878462413221241475826870205993064275401733854664846267852381175501626549225405714801304969141766860211156102419119521365923167413163005932153728934170123529938052893272540491809008913667276526747488678411151704762609907873459645642258986379581859965677628503006994538187762807376148364215778171616530894170708332921317487772995914548836446210235304933727717809302840567486417556515628181130018136075642179102024893901568693661581430383145794062389334536386678397516882192602061165771068487970083764454160595303329524721724035874420713763846638857840749832302332461163198439871714593646503617641037485532948255422038621874573575916600892833150989251058908076932512755333746498532462820746677517603151269710148723419064742096984244644041370483299378170944898209379017377915005188741561482040459717675187651719069492288414969944195621698279871928509925340188712842419092879118773432962048865010093827923193372834877314101090439191443666555713788981201536862949291967112594976311292609876705483442281964244027392241241568591349095347871044341747167256314445830715619374835924697008411908015009419580144049031591355794532186939863882836583303733292444992088695355726839777832717112529380756921463134865526240825318589769422612769066108053984736741202332399898411418723254566729471542511963382763848219617199093414373154057607490982082442462422631242866137660930384317014118618090645156228580145990180613922482642019191918712465437609704576253686295396484687861399991760142672234866597816448890261146891097754042045380107259762794400808156330495579765796570946482401482858190802348212528336570678861711868429442799413411805574149852351831079229590380982991662876444583013911641737037938059186361606057392417728118920868839003537677065891956081818011380862337738918961928535153687800792150249294087376020573486311042328343388297375139871780532166881361855309473096268543348766906437139914401832866234498093377861207098711037859726376288806976227122384633387802597511285985526602735459008643177841981962319430306703920974363273856014574956810879193252049312699583125410466110699629602071320766968665278466123440256010876273303854190625302935024315610841876360382979954810305937040681774216758402527018536602589074430250435280785434358885440252029452110963545710883866633444312818652446599174810285782062513354723311824685073950268407898671883299873053490308681904328149463362833442302331437780308289103314192931680963606359635688906066157123001844951632810127848799318933541460117398359938163604628770613016599999785180634253323332301621708699581159108351789029555005086750291970426362887063019791802627248269384725492943782921696357801797294078424688667319290137194092046209898596778168792252769597898868651051121146937533134984548602515226210255272924587070275821443120368120847648682010940773706859756535378314208145318229977221238888788558410567729786046724133999127030338699097243924336436284610110876162728449858320269766423503129223023348280087888906937862127548846691677672702592294730415988370420711138849448415579804153377035597565638323944678157674859802969157051322823845861757501278967686858869062989459672609423073383764202568884060604841918826514970148833302273177522924974079570818848276357578064233692065503217543948807292794498651499694678785808686783494136802197904216824200501540550365003817835329583586669195997007318916982734341912861991972047956565069483524272681226517336119223618781735426632112334949126968209975843450777526347117487265062362051810733038527918472140535593035608359763069699875258059210537739391510299745429631773227870546929453145420940193878857742190527433866241594663059038802431961243195478438629716987752095462984829362241988937180079459506649042444471383961883531149087020842066964876843176450415585728076986902421300625676191027871389637316751011682803625427481435612744342490385235712612323998826459741752070070526377068702966842758274928521954166442116957848390939370479655232503671741397827607479813862029407982363785134451673798593222153868228016235655633950981628694505897977568865552529980676377970865044203477018425070161037730535929490024916273224496106422474048687198404665184651012166868735856577707050327196691178264033626693607746864691133276385181209365976819783890500306870244965191690817685054454755021174749397613498709592884151052335422295679854966135568981749528735867183195096012980425117387725001966989530161576708246880467629354101197656245006321523578962175432398497767609485612455297199671626944166884670720674532536082134800245905369049035686305386976138980766889614110450907159584116467151160342907299111938089174545261425652245222984259824256387776043136802929845468693742289416810791249264448629532232688906203500154350194419683978663168398403582802539219415088997989860434328962812088626505043684139849558176975735218406034688415836269776278687383202344269865820915462509188826010595167750083329955735968555669350149313807932617989594177929762235257636670195587747915848123696202909994753113721533959519652786426402006701582280531323337840462203408090138900301089356635334322224791897202514897574281110242976503595350029476528086775022871334616512546614779455094437362870007414719070190561514641118917554607887717497966492130406646347790126429087114365385809523087931050318567899511496499238567716957726563434480721903409053215958897300483679378908474819267390916483188092368896347381118161646975986652815327013347002692113151833046465062046239748300201883969482720018981510492850077950938439415295887100127801427157949898940273287548825026581422885531201546413478853424934823763785882546463714634719522198627861453366667711671755267148595341977709525757245783298038501734200360403845790071189113623502368714022185814777941762860628690169539640106650102339657615975644394698093019114700556964634146020888992364365062206241607449421559958072161224551772104658510207792644619545052563516342461378575750963161812976609059622727912568991386250134733531462182543539342970428883536904034498110556722039962419870835439514919240896675017097108975284998663467231573144302176405165632311175704015382479574703486986647319785383919115422018816683477678116571271829679192144918601000073873327712561573284571033807170033097281465518806223468612168620401834626595090665343294177747708272557580096415011955112080314760367528307372628250680168772549579799791704750656353441960421604783556237334413017558205064412772651242643794160818862283800867576199381851868061807466813015899794574444366635624761137201728158903373641223276404672289620063343306172449887787567523369389685156354684559290496595393118240915666418764146932331731523220440031482856064174276111390499648453447421720566947622219147134822937812471446111735747607182837588802241573631656225703940731261997848850775863593832709746482918420508471178886814566638726791163862554818982128089627383889387101556742088130071819686537448743949441605274747748320771476052562698983629091817600768071952582954248323016401571559296492747901235186462003538433075511054204194020310396846001704898135731354618922650518587357902289200069585858140608619201104276255203107119732985949749802376652367523354886544766715389766954054665460817456955006781890127687560353678903216054113716740444601177808379365846370199962445106754873740745949838862766942143602711385420853453126467618524397277472298734683227784610024238376054279176684287933480696880601398814058562331396937778767953981133531540980505798830770837628326804198975476805997282800897582378985694114666284516868694857403278497340167240917286058254775097679477910309939013213142852776681380325831200293789557368682265642556381092452064480277688221684233538256777250372666490246097126470683244364826752532300755576479001732128956775150009965482553512201386727137068491511737012928384729531250357656306266104496384820098914373342589803277880110410448777284193407786713847213783144517857346632876147501254349557205304492899776271334934228465793801003877480652940821523669837011036036254172500878316501275364556369668057141521730208065960876336119322885719303671583849209539435440524935604523460887625844899590983633305082089894287847811978491143115680885162507803819365764740432238402788692259813858308047233880196568435627903113467910454475714273763237525189324773902789934356491994354098530924369065015003451138967394889260689695180414594078488858850185885410951179533979941787870882034702405291693984873430738113272108959395131103993375800745925048750729015637247191064890340073753885312153250410700568338363333991256263630121355735905318076390833217711444102720369440998216845232488342246709072362008543184315764139907101417040796861716626776224569228285715389465864174622093006314055965401253224190729205666988586371456784057076155117081457215209333555725359864274306294565480424933420897138354113860816657829797263988387069083762867312080810335424693319476347137664119304800787124786393492847623398463015334515677050341222208580464762753598133102070010791628570667764342644573246883590294346925735230326832785432665561172078001041066979783833073737757902470790746969361663638668387919682144765303541911097699249321965383820505509826213708447731455391373029056243518707423976807000233355562075814296394175524626101194491804129888880243392139571490919998098570293813012432621383073919041478053187328923160971496576363842230782044322241586253721194600173764253331310909906497900385179286553231747662320284926545859115387178997695014423791894513863470297438036590000066063561738331342540420242440033028167185170012156720335370688023237100137146469240319741875449597512891954379095090040417506664947110015306988327740320164464976847760285665028033705485478704381433076839452942190441357352336944374974714300909225939304160020970107823642727351470888895466917429000966310210566665822998238564436104173383663559842364428951974295221394521276204936155562735282093209713727532809181455602535533219484856396706509838450027507104260865148017875640276708466639150906812302322172742067825107922412907641316928194104681916765271596576255414580811410719685167491672247925440315392713996147979380647715183540170060262313078901339240292003711564057555720470072565282443816974253522630727585364774858782601958803528926051670467150446830089360844447334989533262510054662604523288874592090908583046041942817555374054355138046326255053227520110150423432088207424256577439364316248950408953615444960014073934865657185142703089523026972202716428327839691655527702125155013994006330385237580320716037297053613670688087669470413000644839114878404799433356518728952601969303465919877590033472151713147929339901647183189383760225169463563737187937520723923944853161484258665056294519955806776123226212717047595274080432762487841640070311223098794142862959641233747048914867560904389536259222199610393247481278175537635456231681265048200908072312348414851483813221597952884996348252282163935019633789676657911983602261911068462663994852021081326420575672652349518326510273635987523969163581517643368218496196565668885817333276134613691969142182156650963975682241022136746789063949814825855522721306363234465621492806890564835303279989725431377052548940236174961506634085476744851921623571398019245494046860639545229212224705066686324894255613761086513674237836100502240654412572782567511017916401270196018184898961630126842726201846025686755773217450785859034287222588035138023868137204652520209811418529867568383000153485068939630134913308857897114198963371768875603830927496765774402022644073385188884305320038162809005979717109423633354477994055450333936699768042604396239272402895877359798004251172476141581924553256098456026739088083352106695274400447464129420981836556421312269894783194506001528456211516433781606025117031850364332593588906420521930931471358441932644848595037942332537907085360383474529377835080058368596585201601463434639105205508816550603323765362673114780522279390236686505043741218042870175186906473160717272423297141609354668792493233763747460014777614931008311265781944897292112031639358464184799423381623481125600032558334679037071849963962576144549702955090013633525713317208297259061578585503876230011194163067140957134036859566842936995230619128100836682966986791144398799781762613955781841479056244831039993342570860371836987345720989001535148444408054351698655015186077727184650124357782512065451943309567258630854507803810668838387089423135164030502062216573192209054888139439678644792522226071270330187232690436519880188766024775046505302982514291998227893999499420439732451422855116149434373397271194139090043681410708014489177001597190293036571143140446665622062341851930342812749105242504466582293831337633558761121775993638469335354687541025170877966697341376272390564224427613537782261745880850184369920892952607773979538304753691498634220784556008032251982479316667404330519748175189462985075148733429675600071617428054291365253540103027299199885577229497611894241194368099340141693960115009902509702132368496519631758624387640036102703692577262052426983020953058888795249037519570064314563946873904215501713652895390772921013466776948949100179589187130437285935066307058745193706550975437025118638457582649325133533366238038674710528108361535528543760144638542536946429661428653864549481249352881759674081029351397136639019729864871552858803784900506580124969392951984086867543910591630757400830035130763923894458232173355430839066259764784673208621953856659252180542772514803929567747696501537374046422833834915988651687812847119200338867087090767313433683582690617510282606224107710648791287026127996671720864296197460182193849693136749028970532201907355545970141881090800799651566899711551009451708303209991029667337813963826871332207860351172811137841940158055341257035195525918698742027053262032964785563241220593144782764265899921239890951693944812032512075449036441554460819664065881644800879190307779509221786770765435906299716007952218113778300802898761566993856439983157299860551846685721951866112620794691594601536192288555505724199319213676557382160792530921926245249851701770230341048181735082306761308496647208858226210733488050000066186998912216192488659187281256038269074939551709466671434957712459975868275915317669257794630990219373983208793850755906217632495855359713542479460516421780087919098030353801905736879113347095015147178467924136537574060555487987572353207309023110507507052943028231515299807213617729622730564442356647927075052037809622164268288524126402690974006042497023186772064969997086549470185498650981221279379869864581142896334909232040397513668473256257389930362627509514149057338553308048527399430137031154003659211710775490875237019052810259815414275263522920931431086347847037820954888449667675889330816590408319563624808984102747034719262976678629269060382227842696656740173744175974808564096263197101050951095811216749922760321284647626451491783301994196531781036900229329115206334859150649754843374769191137396649250239942549025851347436215074210690998064688210773148160073112804617755362863515962623521244038377707094985028543527137764402530503889949342838022161116057088309365822926670618279095012635957537864895177553606032985128431248753569850213897436102786868430526260827819330312912924049859817434021606063600542819641330168894590705307416245820279191344026398658276261135518969907384474508919705066203748981431948356677174505441579777253362143352386043738831281824260385116883610857904236030523471282338662917128069144372855128974936970701299178150833520536718171131759164592244704047722299692912654932341638463520125501691838668821659281066892781167297087616879633133364041176736039827213048614413823621924612243649170798873429886110366400316347116849350464304850123216728405303494897694435853748452050160190259804398552103538198691447696451655427739709054562917322587226476844621363867668251513110268816731930178711885159629079372679140127733521064883327558591782066338104276015515545965105388148207935408373221037225098007229412584602648538476703474817402868624304453455684661307462380873563619394935366888997173187112612953952627762263196804306665248272960824587386237230150846218522161566631081875803640538875842262464779306540732017939589197579213777982195571280590797875070715404150881016338575495811834086402823312828201398692515200555624218039044476389003739205471426777793321651211183759190016888542421638635015734311729525923821985189341836144129532625273345933343769912293510002527305710430561502777877742770065239360237289918444055963946100058469319186473300314935677740270863299961052258476404210208138882827591386677522024935629375715995389524457357296639623838801778254327602318317224923607091515349758878636171673667667753465837906107434813073064524655897581493567161194992442749228659294548504651557539873103397104776173724582647332786860161205610111384090799685199178780296159344958155704883818786078891644378733134008174617845272601267759513686337967095330810239664886666460272720602313321519055237861204631011120751393274561847262640041540193189903128446975761132849293950639425860290529078234394039665608985361464400168727721819859194720536115028178778687606396489724351143733008820894046581510060497663059268244342255254734518395710332835083452486045493883942793571064527919778039559765524270065696285323680789728662137054754802326028546607263232346612818484928938208017671443135102800816599153382071801704824627427622860687757383095689445387505326999564735887554826450290541554083350055267008510043339493694671049414278606775735509946148227327610464797619723901054691791122726951326514227492513053548394793064335003442953197957741409193541275980938369901095153260833050863474912016819320688231604895976231546984495113610030836908168811682075297127824030612142529482818019966088860658171813997973124842482527379577638781152903646586382980232161807790450200987018401410981052820255828917685212703700904086852913054714824406345773302682932647476389077826972739608355860376762571983046945638606345332891940978758271654430929078772898606173723791294574351159577884153050592385694458332501638439724187510096059267333346878082968915643928383313547097932409750288117580751845380050619803037328507570654389916937259260442569199390979322588580311329532196638232514254494373966288800449904491397328592293109580287519858542699713144535732332396772021443158886289880931277593555179189247551403769035937914871260982693029371831592923405700229707200933759427160226201485782055289423726761847708740488212070701937797733236728113962842852401337475889439984734586163509442752289964587719316890301825371414702735459346073961985507798902538674327285511082653638183140425407195171575062600144417722190967363024863406577986942663906039084376717318691865732023345914535200960575981516247973668736692208425644959388340622335250462817918152847851268609208069247951974298261399532159430432622942220011475701211566657214954422320852016252745290412083043245915564280646927978658912903995418917141225916603313553530577473323360550475614156841778628668727387099024320228887821867079554719820739720847013323410756557398692279615311790401081179664083332353528608019969885522145299218726937786101483993250592466874564664478056407948887930567540249641360190067957631027600213003265369419682009169224096221839394443478923778716766309845097592752073428408679808410366311515498176441133996006962154228052044958810619334219289730409659995271529540447023430085796337070283904006573911127842373904021640226001037956889009074162058016960805375464401542269562167267456878396824310051665874573215400527579180757010109623929109864772899286803387440504947389656215474662710508865461208095586857885906100969569291132083070825943097713952590735810402213975289118012434347100197301639250023667899534386759753455277709040240327601540718834134492561329071303666024843592805387038865770806683051007598888925503270112945011954794413030967058111762787450505528616271931287266339020152280759656021885390013008030889417252004977672199017137308746040284490231619561882855450628583559946289500097583505334465523036058200502921059303447862020795155747770303428642353736092225489550102374141437156044478364202178636761124500616523371587582049763715165919699179993501588356288400304368444405805288059569010528497745237885313025523758257377335636765454266132163913431358899065598841975905804914441839190701234077490724114273072265808520021218673112286443805719976936261711272641207645415461727804964161579616289579002636421999388840146928107237523362118334409646349097284017441341291689884144381390008585136704063703522046583837608711883821392458812345587902562127706138350671740664481988194555976517234029278482530192306494171338905214793976567745913174747549632605087105128839202630923072199604188106802205462757662322441841811720443486578517491044190949401247219937656491507257319316180657850196745931134831848311435522357979813066609995182937423404017027788775370788425570412239668545285603746771956935052572792845546150238465548028082841859597726887060717049756815660330346149589710378852429664139828585006090395794648270881412292058146062514411477518562040372688363829843121003441918609881794231635249572565095082711491906552353436299424768616395321218760687401900683570372792893074387287300986880266817871143795943146031772408004222991116688711380262522455712046408120217724797400216809724044723925075067202218209546944611533160010066405041557097203787132908413778054769017612451354776549449283828943557995720282783817579419240219346684578780977093797730766760802426670637328836334787252613931447699748042885726921677758319789208632521320795304582473569690378906894301121772515315585215078870957297783152618077204896112598110456549128901493076167111484092241977172495385960618264121241441918959661837837964098984802424312780596697936251856980138517905350178278202376352691032825349974713167266722979821066564984603575752223168141437303321457186459838749063281378871654375343312767793804597246122447498465628415668260628806318316325807264121104001316687831083551948378336675252911034051172973471727350164820753280350709386114827740810427635795292027654967376809553035860544109466159698982102050305448769760178584969928834008840716664111084537895313070540725717264803966979959327318084877913509018702427624422458210754686813105722200485947008052434324738918045625970755571973893949244102189195845488194682092350915785526348899952402912890338430941902248342253854161289529904036325189520080865792627277270181116702284702700171579020587317894740735868266088406927195712864983301744566647300532892959235567356728318383381843724748495479302876378307228168082866147251024701412164915504755869012947856526656854349096070033588739423499434460919068060937156400946103901841524278141589237024943726149730632474257260661034229817961949978653011948948663479835634548075495289551453567182621604055137174717962707117452842517978499785379627043650493823096346802660623397519623828843408970008746651260192321543414254654851722058248485699598896416238013845991012603787082430965155578615960024932556716496328701363509856381048796630002866693836504405519070155344697723104281918662454541009737250683939352123159212037968370125270204705086179377521798169350791162242136625602848320131028101573778546761285542629195006452563559197282069133771292371588445264920820589283865105729627357121093644588671800247417053156842108527840653664270453732742310956533157390546686240081716677004205749191118320855694679162700466203203898655847195170235674737516748608943570083894146448526305262211248653110732913029041762564609241826014756116077421736484297495821075443782661384759858031760958582801477954133036611885411270397126633732877038145242825026270304622574252895371527386993996978960719615526200537377036255075204986382693657695936947605006804632966038926372629157357704575376795723751589157763444811947737630702871712533558453298516500853371568049900009148076833651265882207776406486746503362357674427721696735462619563002271063511208184683993896470040989480132003480251251434614469657647601613335629253179703520033172995313359671125928067529076692970474537231040956744535878248875429138347962813238559996535255894181728891409604625080027314892761139255365546073390523146338644860889329190744520161134477151804017341655833719398755265807236079319194139976230770366568201787408399450270277261034699672436286978375274902703861014707683410957568338401310465507983937282672405285681768728739050660301166058899332569052525336521559709260019418804700586501354297140882548234094535026026020704087328627635427915113446493851733041371853458741977449176927540741493804441758664205571303369521911288616224378131782058533762067831613013090060504235319160182474663215972837416052653539877299563042456963197038249536040518142153463806744317744789762012571310987337422430709496147888114929224711148549225999913803258782155059690384670596325516907962978908981415782327111578257133793552031741645704628683360907044892618958306504176102339985869089330769987859865434730253113254968434332107226206306387445203629900194194489436378130016731203037227114586444298106349581396835908296976544596775730253055725473213711712109922922077545285376156791136684615053651499023201174928968856959479629864944949721222273816010654635698728628923299483061089703607422210581065379872322820386280439619274803837072430439655752109898130811161760873353553251542684278372341759792163079168405747747034724022262372676619352725625669731844584819798622997980203145739831742841467908743187564394689919065787154835048059005208825612675355673804525465379709771425963682735596829436898722291654062917314576480416884572020123265436270975018109039968307340968457847833226373512821846230397082488950709798429078073446306894152961405630731719999300921043753781989437632876872537816403473933617997728528282957190489460654309609984049104035562251094808221096300456499884703817296410814204600218906099062361388632679639966862914434579708750965090103019159097279837054095886729331256544049123140732578260166667437333545703700160216400660885523545589620430330430096534513467253517776113700603187504702170997696937250753674671964193614870719416783971361980646777715504580554337987122140889549260997923648349479215160181914021978871778526340743866776711580317491328148798287354765239181914453209028363610541716108859092036369790934067675502773716179019315160499891730411958285570984360107910303475385347524415489820133685214778604551815167230389887326172807590858999047203785375911652326147795887972992353404908784373224200854200913870982305022563536074474767584811134068134136645252038215063031304554584480358584787169523576376427661471048481521015167716345228733316668390359501761168425403878997433912401303812648678723052880476459768888507377171703743123816651760405610922121464047982955570382632159141756214928141419070807196513864498726456027144257664616759353086832126617075361496323227693772691053538644209220722739145582239950907563667306745584380434013167390928249067925847746801264376905291209353709419854160180357783267706249208128194289487404587345028251571670725787230015769178024549018948630355730050560574206389455509744645944254004864882527806803151153416045137415152621883536522535934872516397230424110626575914991208574900926122981228091009722378982450340093042089522224118718183108559015814261976659837953513821733062369986274440468011731464094537318210800747121411802899744256219272596484175453816398360819628787347898901432195881011665075698452047805508173061328561236185914417556479640317108103537094667185326313767068313141467458346780679666385865913659579817353724482224035232231244381332809592788917562612436866996202330393159590298941766597994178678581807864019330093104110885963448991897423804174072451283383334786038361655176331630309073197682046008035350138792315331944949436396731705698410352902752511916427022276073292100251252487588421415458877830126206223532459628686036183676130854051424902256748323122764414356156151222130058253877491078080967218599932065667054739921808171745443998938349828114726126819680095778546334513337743360732955002664308243250653652845600295639449311718452503858195485843701272565121885953911880417882667194991187449712447501530291603501909081117007696898232472093860523547945219742387024060226882098528367674057698961107466033833519671633241024355006678994438398859172912836815652774635939140357571478352915457521528972990310178800381414785927858919017380237946064445931093863063573974009877246331495641582945549790464732558434310084716730182527826699281330163387128537399144393556225711363468853076049688501625103988818151693874770143492624888075418040028825293391805648590988759637957153925739256243400690856223929649782451869854128153372421684512471972745142723401059662558004786653060316221731328753671780719196056979802823216607087063824336886445518368507804607956971014817313392090090267443039594024794188620247273977201966931921966294126780843990590964162401469144229438588608413682458540984162667188143132988052774394569727728870779977582033495744063779065191664795908719560332639452810918682046709011059584770449555179408592174114090690460169762782343764405800793802459716857968719970121124177199743585317773044672942996691623316580074885878632719981589642896428909748882026617567511170539343115199100287646192721525147166514827153743713064032695291724097269240394579599761749462981474179424647834924206786938766376192253060566421764741464483065987496543234355217225830126417953923210027473283368450257481776345445765581687605315441053420925907744243354085595779899545250181406603313705039067676497670801522879490500460660168982239936215237600764941093039758624354939008976431220643864231722666396602037353524558341521110528847875247550949064704579956436498633919339330266075324252271588350365268876880864355559295011253006367483367791546731108304474182765253548136749610960919040240020786086619477014844617645245564724612276012249903406087729786754092885544805342994775351506374159905006350017618469173923486447712754405156911225340118984279634017037919025923875580136401459599912895080762715814483853393109761052973791341411153492201439854055242370912467807469907294939174671507477813907059264805225092432748825397740530992281261762370356951543041437415104467472709764083116024654003796003934323575450894210847312224659952377322391436738699696159855511014111041993577111644132783567932496058606076877943364081817989073629185477711496713429329556511895965754407946810807000928582828611532653647750146148488325436438693260511691511265104689406342221833522713915193001851403169797135685289159382886316441551730450100903541027830264669295572490046380039971185671736205670456306336026382632478500673858699676648675881814706809152836846784977368899159614690756723088532798387213306849756687484843043130695932417125349379011526336202065153462503816471627648060767506856753502982051224312632981619072313769394044701405647867370200320725318545315187491400646729323515258339904494761982344645577003467609621186252505488922091597055158924810936536810110987092142034807207472954517058821565945666493566879772137890418774269961243103375855077176818806421914383093238965726611648801025522206162577954599266111886145180208363786855148584372359630352397222773020842938619578438797768153749936105294565819996741211377788118858042894729868248837365519616465761600070807009080709286273180303441255219111275780561285141157510503399174311426037613013203361753842917743200356044743533628938973157714230967766211503867638637782427222079925770003122808864467740818554995706743419749457936513666474958072403669292199573390227020155723256498168503760462793041393097384551304886095996585487336474724130833081433304593954770300864060656339399202293942857617607884750406703822948101685026766480905523104199930204732041888779853758344442472825126470453742696221718227640807272988486223211611919450079998793392115411606075013246166305768518795407752145834043388528527515546125435282462844060105444577470696275649817484595761482795908323673573698274511118222371024079362474577445018149440159927369744561711674222259302219962372933243556815708044192152378231293549115325094579769438283726663704544361755733785810263583031914022520445689681003964589497278710014922863132949611901190857425074841232872102618251212310156118772031097239038978078039347833842166287729299474997098862401898185800348896559609178182595396027232251162542223970105997727980591725750478417084362488903617805188444505167263732841703009226815900949835501145206005259440578767352455146531020001774017617747553127465366191744471329377379188104251254936890452141365581973231435519972714107621179535036111181726726159689365221146938672269133925312963866526248993423423611936806899512659245092314496604154491834676019213747086841696569883423806730166373035243369631119018915479275618196528250215601894398293931230367878269103893715064701446380440522311942565393077608615324234076711954076855484637326339056585746393832426590533227129333304336908802240847653917168893019285641597478351557955921787506352033714342544145569293757699927089444451938842727157055870798058913259744732624310713930040893485744744989942748298931401644799319662180213357209314576918033907260966990130845344066216448002228268859099089073636386838173575801345019590390656584943090610454395021555763182075091153650875107310266891069494783953511155239970857387698711997218996258164727827413917676366208426138694049865422149117974759553359145002534442127906002158673911439657704712981608413429021377881442667952451625290903418836740678995631894157507655149416693610310257685407161624767468856824959244969955410015830948204101785915089885246541579902397226830126762768410432324253533028112479914173371565781812157347949237451285893624817089723327352206335621464857344374767111801622697359376411717174569039967815717644721556345410508342101535909327787114426079203089396981607636626818516271656055483444725623485325842086706109117366019746836330667096708190240689607640145383132204698702691301771120301386503180438862571749872646588334236424755112909511847852724207171668863110310136222542822598368038420278486491271710340388976439787364255206785091708806842269331444203556534019698667430713423779398915958928712350713931073774225235574658589301672333807210104510033491818989174637537627880218268330338998712198560871733727273996198883077758567890806056300800718151080741589915940589345848971664795898960295646950580500884950285943504014545478901770848500324715602074280138812987107104777914974859126680340577433260873357718797583393343162822307758649028588507094138154257240412703575101324974556711469453042766979777142254090969002882020807206697216490451066813152242817334956011695794236953414987133510130668170846981627946898777350755530056094929971786791459677123177464459885671240932259446502154236423621214019592002221531154429467683917677030689905988349441570612601021579364024504315497043337636422311417892111753309323976666098134427583674528096183519964266769250702962539022020536504776584664320137242390532255818339651779321975906141314871243522703805996857812503271414495223242084189206627385966943025259616399577247722141815449423101496694494207898766672122926146293883797224086436390735467955482011568726959517456534849688648954657639341958259326027761118109148684718949806471191491337147632322209630952036268846321253074329370941725621530798203216850263015507028107465907791624487298344387712129127244870418848376347623118241388601958927659685630858244929112581063988439658009402919764394458554633072760715184282477705474442049065136436159363067819699966312110037844407238374446946351266751050714788446598601067141963047067143643240556008175747432749462133419168532751187515216884010149861168490566156338981147427058545794122966329639840060041640428484582065588620702948112515020990200553901602495221355684241010548407173780932152716612948255923328014070323373339524396315548196553297494001424128813211080825811143045153486442449740926275836910575016866014169861184385668430821119349785207118856693440728903689283763290260925501011655502425394222995917624740134310673833975799689447639490032362079622677847704864253616454049319559305094105476439512413902670931196946004400689926700911872653154122165197056089035771398106330055226806766875722241337620417384780920578801123577878455999667893826782296789830141738829044111177542812746311079243958387566415813717949042908398656485512705529155556846350339247942102630270369755732331841748480815595212633075142349062044658034238751457749339125783685444782718580167719832316783861891861928615820084751059503470998553748080108072571805924699226373282834284076760824878948072464203677783444452861113859204109765601655378212512368071362296750205431125506826346903987549757352493375308936140611075718057089299504597722472864534263710203346988416029925953286728450618205933040990529523662684106285161391352027588506795100198393244139006944857178873045341225788258075662879442586961350639753962913261421147583302827057065828543677985719098451877918075686521934774995751360404734769894843100775089493015091363297967126566095193251455563487355944882595125048988790731792172943346687676792870753155031106203561830610625589261021134775028450442358995962854581463551058613952879655184067680665270394013653275281162728609362946386138872457183694715773387636062672929573699048994695070446331083800608694570552032841058132014334889905045989378109471527674778967883732239460660434487585545519109811365474533656937694672208827237723102937830117992395007825055181239457442511216214419907246295016873227866202655278170848983248938518238582421566554418803990351808177795257272549162289576843591938425641965615999406496285478468389760557309965258122564566642511347709622980772490277662206450803500748782457017897107854148858126440043845523714999703086178413864621368219706106134003521141461409143047885381213540277037230017381720524876789072894455614164076515570976169112915490062756179459176984998533110071461936725840285563550209073693289106843314185423933173995742742712187391948661285015182155897471632787930832507337397920865198623319901517468254161043532578558974303154462027532637414967778171289693461449214456189452442934279339455305804845107612714066600627523620867980490864679221351483322989838230534409833700423538336357160180279385951642896750435657484348225995253053767711386675501555033426233482732698580699276575765601730715208652761936092866143864794292302836368228462373120535989469931925215152128131061912930410680305303094213647414486067619086202065974359682132854832418992690541427753484619654924526410521487307792724013618177387701555767507816404772708687049737366896388582638266076849490423663283914503537747990687032252404280637495663885441749439600359328293934172862749271746650344638825068151704568734979997101730127215896454271618383002565997124441657678548399055143611061795788901386742087521611264868158404675320150070051472261424032255065819966914244065513702443353785704371229659031143005414746980914440712639351512496809816757229732441463539704375650771382907155762005983020888762194890108232132609825762746662776535395388647667346113576001038353896452033803164209798062236388497731718117908048563614481709379724657119094596324011139228017635826997598697347149415667617954489418106277768550228947665046758891823376455534652807455730235360851090267743678337135592177918882415166467475810327225521320383981850693597159915366981960623125939324408402628434579231321942685061886386700289639034009692433695051020787611095868452665523964323562860377756965722144995317803293152821455601038335919205533529201035290465523770459327529422046515366293584305963265956326721350517704850235084713580722929699053807796640947799722410410870904329665323326616419282340220198360442334391886075660225905849447647494556828236017590496874255669290817745572895785026377843980649484732457821003060947328000971257440947071196813517401666595166668939877176859165869607114172835087745791689467701308552306733771445073178762884784780948755861095893010962227256521345825040926259485586361382756634865631175790213185074025158419664901744641786665300854473411284743432574692158712315506298059181074611911086892127228242343510046068733886585907660581999446576831429128956016351836080060349828130520898716184502411597329388948320565573254590747566179527611140897014238092155623139048351383055641055503920499858704949991894647060191322586348049874366068325754158853135443335112284414358026774013642168245072156621274185659752475497048678189666337313630086493262656501546866914752035076136572355289780235386911802568152526888160803646485817966352182801603538198612275163138248413657493153965064253447124106133726897523511154966640013534602894583690630500103556953825540625818959466061476037025194073440513429044739627191130148684862820948535538984212746733096357007383630980554877767866605583788774047842096353127664943489171143747404696579675299911773565930804222259117779793219273244385094235731099997702013973889799458717956277871533039290148523133020939548139942306210616654891141664457330059082607539176247387173936903456053406157627604673542907715043976768581775521201552948123605821085692964301433839112792531834448794754768900103091393531622821172654824507090227460696612401045601129614073475098128503276119516603783396270541921738772987200343871642670007600185558836287083336803505180861820496296093591740503352160644252804223632186209971305718097250862955216270372437642183676505001708918349227285366855290084630716411008265446538148432432978075906414770114665486517653012672014736801966662889652891520207285345830879879562010215687614170504643658051562258437670581305994437373397913991413167769768732730058478923486780888708244422366146992291112561916974342943545572257493228834578599049840179820729910200657655499686818581727571566223069159024101554565584060972421808131512231564042490641033566768226429946013212867508014972731656820511582328475714396464216390163395282703227801706040346458621800161280902657330347274314644532521968343290236200854273284257085557556022780322255032097581795892946014823257595215618172227801455577407124273865865266295368170273644441678935602566730929335668969689555537643764563684007386214525009167838577678486472548609268046692706398165817326095113865674777782881986303631309116273278328125427858092855324450087989060151751777443069200417447767337900887754783721700367144582789315200458736452213721261307067261208659589775686152394607278758377276316450772751465401682831185049257363854547231964430500868015595397286001162956792613028767378502423125924520714873988514611929425593680044555035293824243581402342740871511045362288996095453251763432805411362026699563998488653719489625047609118715419639163739788209945710587769472372782062677046080543842448433997617197563560927450534886294203990378612340397773144307552474249195068261321072028407832864146689074972153947108342215587689657881699994503929183508035422411167755641549823978583414617008014161891438840278395772181556240032921040407268384741840613783847443874190479858851134319254194793725923412312811416463529743460955444827813875817317319716115190641768646506714948238173547726377386807367603458526324767982468860311550017111682753903674337992314809872372550624250602701484711035043079582858750565160295341147681838348257770457414973150558158223335651859593393349148785258128300359066936419080182058802518382347322022687893852200998300755873224722163024757318316883674755130198745459893461009402948223445127094663318592678239033097409244053594617150745355208900493063120048466809590314501415304682088056281190570619781182274953145022076747852208073300323711513208991636016216484806528126304533159956145869167319600120123955297955842950831260979029374835931770944072200897931447951363356470828808430824804527190321961758686144007542275463914237506036865048909821936021198857258363409627225935696275171718915916846691096036154345596228457869832166693905651877822202089345642622236294559879723510353204888819823188532556068131925491932450200061680971478094156888413242319673285459273855325893771646235315721683019306687229740462194466436123163618073008101332421058870058662733483492166955716208601335486804258475814306507493649123969919398313363807474678201967970404837094871099281471356865769423945638787325197001997404820228671704875474280136913093106967286563175499731753641604030236205839173025486764540167040172393009789319457243005289761356429669954098491194296289450326587050084986617916122709507348331309758760223743488813657064084272704113948373900675695552584133618086825205861535833958499503051941560319234741961047054550852613344995342067066442869067424197199530087502927970858745909665317059878243839850423089657454216420191451750799698082688398045005011809443680972996959229059384607657105488068443272824132682636334752586782376888056539743916238595118896031291361319437661269307861913705372131375771763359687794198619232506907923788796643466696139603919609441904869454470537519387302836150690900930212723468613278236942067567748252770399332598439018703128457896817343342298181556664597166988684199666531223300969783541368148808443429367785852697768425408733022569717944566029588888377766496674793319471093930463786276853254976162581689676982668324682604035656858813681210123143982200845913752355336408181953247882076607472613301344638369534029133680510767122730518267534681799568011286860538578992956864619001679850776338008054978420511098356317443823916062777143922858627362981969916814340797900390914119507313849559930840604834960269499923837691654956455094368966313644075434391306623739237192337709333343594935375823475153964655232552231967406168852337184847839501031988036637934888709112533351289616348975450493531571005703601956959100790576418670283688452942550517345684012302755341172441886428204143854018489398338005139185455632347759506381200558866256597519271066672670461897194517569209484386552777602807104157875231284030345383598291945299209064724265666825981506610478130846273110659147577305257632502298838717359393329779733790584044523988089311083650669932255917663982567761780802191696346135714456107508418276508492955258546803158320189717288814561810630986973403128560615675384468528799805208475316046884223174083339581384181788556547139565322809635248421739566620731922859182603340207437124746035070070812712620055053941896368811324544690447363845433133674652716007421675095370795541891575849942452343983032403771605199081460795607636251286712205683015490574774602632031964767667692426231997727708371642646600755697769157599941499162016624041990554100918966561023424824515763958907998588529096291228223387708053053268327998352438603443752481914645484502512202869314500640168408682940333569730565082270733969091047832980284340586830607909470584885675846802860350023720993467548558809529576644891716184326561241750501964205955179612733875643732382130378708717109749613029630080552377990020630006766758644076468736196202624192409339552632821108579756127450479154317429416154258741179867598408679536791160655707845877361879168486683528536414207235042307252546411808504570999426456398292295686602785036754428055918179960135598261836744775991684578718768887931398120233533070522526508304067418999505367596374898763308609563301320394952251260741488451268703151638677854555893144066314382479903257828362810147353184960011880217520940561278957219172938196828766107118493850578584049900586246000475146586975168430023930613733748966771553784796930159796624154413223187292969404878591051683722816216223246521142339749585092672979214303369309846954740034796996580158939199464033747876725027135491529999261388772178892695056628950385453574120241938604804136876596213359545900778895254669502309503652252199866035207047644006149248543320589351535868563506349455501757190731790401376563912994898289963687958184775981098687235793574336021793749790964041961120744617746945752925847698415835828458148097268690665950841777214962053026655624436267953521847739576437961644091157715508740734010068844750916765818009150486160495892492346557437151427018207079182681661234488190499692144243721159196166582661675892527687426240116196720184123157908691132260443095227756075390825107142681902079708575129573267369788644192261651922979977774962332762025745159730306218604773001115292598189559376819269818165392586382973919488568839498498173104380581067144051125901960112650738569202062496406854654492267970472026266169431651088590365018718008186440661866964128664928465443667001930799258461266227303330288006417142303972263792733600139177336747400603972718192212112212045273980748169152035151329354072933710792075073771489035444701277453860670752534347328773664023818627992352023298687601704736240927494362848913546554380681684848709715198251915795028263903237784098639283954213076549897589446204095306134221275766388474498361568630600829122748797440919385791423793543675074365327132666382696512329222744844758113632557574037431661397953078729434551279130538710901560527312551507343060679534646304150897570621599152361346323771012208014616379738707180917339978157181234028106112446156347049834675767181009866418939335788702922125409152917357148705713292873340363174296356991877802585354011026486244579173125310357497013533457451152718458092635370427968540902145003660212650575675923912970719317203078208476633529254268965728557826723642155511155423162922551098998434611407471327137199200357710747442675561696587921607273107046038140113496373996386329232654948779778403328338303684083583993392849606167104669031650834693037307028910260179272280748553219978096585041338414550985157676292341844383556747593919820674379917138363663577310915480955348750058642468394364820243444214635390222717428706593974084052745411533536847979543529667296362409595233928898330293579674652612850801621318706910154337198685881320748790742937786598025495959275293610251528873692619112833576538116728623868718883728175858692266798463319594080850881913575772396583396272366246282491152187610283598126736549135156375937997594572116940899879834124916713324138508529418491313395724498571169373308942225132964358259265871131153717932624439185638008968376111044807313116956779237037534603551611613490269481877563030413754548462722787727466662660840173789369676526248462452528738617615896624890565380270260017522101364295481863286790322725326759904197175830456386029860988113306349206252565741742172110254468034909693456430746636570604157543669894704790202442276581101037832182410417017099691622618802842764151006831711248007322202638792017436660471897388728230795602418464920756984783335895702767634404150197882852730248126126557485988259213610127797949366247820737642008225924989569517901612093657123822963403476578850360779891181854978129699511872555869557464782488482615656077385681863093004913535794209842558966383636155859015218401329714509857932493052406691959737748601432016895995318461375151392756448458967854789204570535846967999306252242686515415320918938108619876348539715220951446276937402198477568735834264774610965086550701376974943222561299090912485579840944066633193522924447996019375289422693016097307745514196616652334370395137504343554062143450723363060744524906955525537054280377191972629628021109268537704602067420955264755602943061768495513135998793242802130809815357813136652474446949310157150005026979918129166522277541454388463704969442756573152515775294813078819335390823472802128113475993540236998175303206233173221999870064519726502950919010501569552347585423503959915130145825057846491059762382734358331597082410065483612237136739244813492240176236870896153839912582128606385047725707098658962433948692432614964391557087487080805691216074724545591113868553309723914986220330761938836818269935245319201353862535077748364826650378118904810869533978964672939899824498092174066652475959488886317048284679831377923363511469387572172134096371620933598595628234141672730247833602045769002750578900934250075069267272044970688621365835655862612452925681599058328311704777240593653570713140747734020097604805030388530038944017274498491956325659882314107632612566275127338407669849423862323939887235678579114734845757039469552595189854225120845332536343533344142818332339559187122743291811299156218409079118977687370102376167068638166839515113788671087371235215425596881564013830135852530686492064296094958579284087103987057713388146103444276205938772471411939378028142850626859600760608535429906819955856549236313881305851751998007752239825812710750078367475256516312984792795298638162568618366132222628859633278108102152645455784239480756656700403870647595878176240481139170890503620279993523974754832676709028790502827248332705809669335342695436711129972969837053264083778071243733405286825226206356531371905845391720743591843372777169605524796019410727787601018683272175954632338421325692299053583826298510256916890997828789294045518340509225409522594088339161538914726236031240529843854957370484712046736228196505687118454941274010364646933830223022544833120956011675846002410999671131398307737687799469853132601877071966380605825207263087831423534163258421704349939029330821457218392658773601731801136344598694469542128519175411842001625589785270624067964887786138530069394151802960422179773871469273164023499873997559433094043160695247168754645512437229296378004559283717801630199818371040163927372156611219784635690305713330345025949333314247886148911512624958689184694098922018416442943142082481879933266663847413261088852867974092279289979910455450499762025864500493915784910968630881717480783159242207431602242080996720476869550501200389506059518184343299043948791703430786763139552867969999538015256631066153348181736202466073062610735440232457326918387873350772993510507335116318640351715068417849464525233733816944523189272845745590658154053760840654585826920670147184670566097336133924083502678282099017329707039955475212534497026533445909297103176103948060529003431900484108947660518806053246905731609345623777788856069616799528201134776857764137007044414931063702244451512833165690394040838848466705240628799242029690488701535481493134145054935808291967901443024125807279737178529051042227847673160068978066094175859661578657760248322416032599141728322253550654688812714358667133268156779682397527510762024317482176628937604931818093570583780298951142381251422299703682183647674954918522950564731602681648518656523687463409461171452408419952924336462400778034826837810171467470090384920440237718967547337152606656755742355526931499771489099821381329786199277291639348606306037534155675259060581534061023068610704773232364982529450229228708876973869324579096308167329410321788815458352639235351733353072808065944542878569159305174586009151460826310586439994848867573278474896733605648311466555532048033897683719143153241243109952881551519409561169072593677689890166904858266937141419439795856427601394254128402808368934059087346893273286398577012672698448146246840744702488622569442072149264645037464488479762101320855877162723547906399693013887605077087267802313456550303318605313550102915575711424343172471931390190414671351816884320436115509757496052673197189604056253266589089932586458332914394427131444296101845460805380592915828855786527490886301617723866966974578840150942088991149485730286983980031473117950108536277981731934354449625616594087190625438812483941166086518983564386916157245185703328280939881742270127966898125404479613060155301264039145568902714618479356595030394911597635032613952381908484999596306606051153497247334849415983496436683218875630159755018574951723714442828168637777237676483071558992778497712133457060088530186135346910012547748390526109790477642211619789943530026126591016374473907868617788014635153466686707868015315427933554889185480797980709514299755720055718793474440378015111617166158214844153559883612114245989949021759260717770449560973370946579111055794937535870627473325901847680552618548786486649779013838582933330800957505215519298752895234413703196491325247241523563882082399090985375807013405933536658177466105607916571775212133030541564302306551136036579190695783900411054822797754816547940990505914158006988616980873025866631480602327232093719705460784065878573284626975922873049527758651353229018787833711920892379300135796689202200807882351354901036740515258793877997403927009641597399605840195619559550376209514586897818615718389914172812045599696033638163402746589470704833105136358703946345814690459451289564121599474126952957408603163294392096099446372094863941848487097378417321338122166435234192697375728620883073697768743710999441965902585082099074497355155097028039075818948337598232347475214574553378395436818420438859519477958467656022403441253710510121767956056535274494859815068053106448195277285891716268968620241001533344458520411801123821760646041246507694869871592876881753782133897662947391832366072596915274809593740905952326089822142489878550041381875519303892968374772553714629222725407433140185575509642972283318651483830230447290842886531764165009327644519509073034104288313249462320958057540119708520376772105897549707600702248356109823211018164017104647335051548517899413243535189584824704378736642113657820422771059505530810491572189569885063337435969276254993834428452385517611508644243113361149323309221721818450004572225094943765295422593673402904754738288805377544879570162501465880886706306060177159201231840875254563229688562753082767182229572179966100595537535246583590274120558893346501976633593596496433493306190946298111649422400561233056081069310381130243232649058150984385994127146899075221246812530867644331410678142667203236377020072778918413002948301334244705774869218155806319859406830745568348857884981158661012068122750436029526268722823775169843156238120462376457187003556242516844933878948733981738067664933255320973802201031998293375218775593924178794169824140713430110670392707557385490250478944379964171849650532409068692806235259724651904426691250482067215380970636795450906696432917910637925231827146073067379569895254436588702496827445530714007282593526359392832292724686252873668544440822438641497957280781336069106740511804589310273774604103432398030861005798353884712559587096578006033212621259462789567295212320560144390609169881756203697985967582755954507461382868469064646365803441081833093372364156668587806118066970355884852792050403190381670261475079752365156877648417920163845337440963748616756855524565463475962063865069284335591295670064725309558503980627013124575355404069578966861508748067725079272624568127579162220639174937874443428257122374834243420948564310839371224085165937148542276496736605791500904049709406331452276877957341844551957565518872264492634143446725799717038009604715958920784365465127068085677017637093885169025433893166114297174510072243381662470143945463430113692902397225635736172180161108517401609462420604000592101037211282849114519955433805628130207434796293337840089924084867334399822862289515854182332740867891476218495061628980391392406984731528927614378028019943579691036004522281872115095476492617088437278968327031121295919037453749576535815104268923726096254386214539729218407105031159898781059400073160781575727300093582261971310427639748955874837953512848223059206082624392463933105357062004220901159489573553033733705978673475719758006153971799890289960165053683830873292914801458150257396890337167780452298960287294665376093604860530550480267916584992072101215945469143081174395488362838076093109880021557581644813245728156635759231401089861174191066316545231219487314617211053120098056385666510328620701832000254215610944987281051515645922948106070568212148241265822913495834943533394248415360108072608938308152160532038096188647616734275865962626244969406237369534626841448751647653816392351208813492689269665796394115717588498093941203685630348510855138414633235573193631247345747584321317054126995641691842051440432203919978663109976984187748952578159586659248483277023617301930880311651836148646355193085036708872923168394963424310490267624694673135077688308854983915851810355039512315382323938549814483548246999395037555210540805812148837653339377849227810487449389044472241004680220899091864264603185576635358544245697362316635933153428266715881234028984976255063920864986111569708639505903670135507557032373753652927752657841481205521029925661056719715068361263879123896590262297410319065258809033114443655214233492052993433184935025971446793231609723356312109326753405122492341337337137086547694816361488011738204871842069984191960735971115428282217974610224639543889761705204487849358636420007597414771808569984592897327777566144847583652948933795214503208631394525401373632056535244190729000777309464507534674197667771881316359063174188397706693816720949338209966514292221505575255707691791827785440854112134655995299625426455766799029461716352067602636742675565158593965688588765590532450754964381028469531599995255929293535422414607718239582092045465181598548845888790223729084613825891312198317229705278035020396534703296503266044236432995691299120502007229963739175114894874006368202069640040832603207663511595482002081327897184596047290715521194064361816618973273816716011097832770533434602630100737726522156999237652178640864860275634544123110810751885021670437888824557979251874132516938107699264664086913130115393067183964910933780222036528468970868683763991767847644351289518731984996064531390940011289005604259491545851836648442154466767394104016905882516104423328761050626576294101075615688055080303587411618727455955923245792048706296543889471459888173795839858611820464423985821410012138891902227686255652957053372145942507883623473330648131614005549515444400720496877336925301069605023648582621895030478140882570268458685161376723077616464128411625193432218074780250209182161446469096834530286775951416340006737131268787719811336481125824754113673234371707333249441620031920284034316748458487099863035382938763785285125634522152648276744171220597163353271497742352235566466710097158437339445368403372369148452993360226433609010904266702003925366812101896682381639236845655522326963682499343691931573683433261028450219880646205989553315583991615477179575365900067023407546014010265724105411622825009721800424601053113754154549261428690036342473397664326698835292772724410127249443766423855284161417355912424058972275319723417271439032490940261209788299037231165879582900870780968052905112166195553998640969460174959138778110518701026007411595653122891978933270337217106835049930528545969834025892458140159139144640695331453056575637778066160068202855195134220539181654421416515956538565460813065689288039492479432722699268878856438828773002656190821150990580584771413672184731484479702672559648685451384023462303224285015313494528798829422197579634964984527016683621681560603504515239638536045378215432802643072838001542205184053152013966412501815639093620965782654753540955031279926246497942463447986379170090050565660659311345160326879207715164642442027058581696482345918493632301629606565577483801117200045804383349356383283316631633413307700930236828110417760331284358025606710667936341732568748510671596706651963368415938858823103413073648018799868230073151343660132506962589194922117587935316144196903968346428642559597636852464587208933437921433742701654752300229374791180283744858638049443572704702798067283752396953690175845486639139411612490930531212906876440026573423697553992464347592896847319448534328845890403307438574142933211871625568015847122458979971980740907249041075230251025607493371219896137906721301335865042025110505999830892225606812244532907592490139534605950011936150259552359529353619249100374697898959756620477849817042078872359468142831926090570032663166702450557329936492246323212336753391211906006796218768204496711067817859710127256423713135615179774665106128257139610676530847601389138487927015114880719000198060851839973125587771088173022752260785738313438740202641823761526306943191947130038685441200546852678084699680641095144734397691393378615413467189347906877713708942462807753325972901699054375849548843986599039643282972934926242756258216606024831279368383755171376879091418441554091868316246759058325795625102324570324093592693446174427078478429370893318327945983321360296207029089317567112873427843458366640336475203863814226067504339961950415196781522966300452207567746604958033559688607517375070655658825188433283312723184300617560202223047128237514515937068124631309079301228542308081615011295384368616704585587431225411079424477973902803369641893425586002295556774293407803355692576429167966928908244896839784787770227271883535941664539325253817964095824297409546494312338478716025711131645019565419254143484384489144570480818516149616906036519089115960006826483554625946419384322693247930591898712738638799006416419290521334468190373999865721483044807026214370346380029054858379706489643543254551954665781942016064404914851382096388855451953095873098884805648194990224679574707274563701771095615673967238526154449463395348136519058410089276434475392187260863164421847931161236548799388680454524124683575453945729429680183156889694498121202331640486754596149689235620368477365786629447935982137793119600102502769820348763914532427876996539284744205044592675461267237430837064892095819924721788467716651655509397526996192146526675120290725389298629017580777637566432636927435293335020174454858907533408336853831543269533792582614112427531395657498654430104584821212460196795258517850567550522621610502816764474581300037554671624215018028194883602036524316123909526403995531484727956208065208025193509381759279434352709424370688129071385101117341829007516437412863973122718061991764869872205046534860370674237721204723756678841183546780832439897640652163471696760472919140898472579389406433927903765429472886577088577837939518614485623876891518689180131370941254276421448512232378745487905309697080289660230723489137715394123117339518996199067872735163907067335415194224338865474781726844734053303513223570678268811650329267583085332191949056154357428478799320949864369470598081928508791261839742415349723853424776466702124313899871632628545190220356304857334506654157579275995378011596696938262833266508945091880372980051508447187393263002435670124761494117425618228172263227279967148580586879043585519606332238610288510288419353817460617152398195082615732975172058550413180647906073565760367207817582858384812192562840588327381161579284292626802266804190484637494079563256371076482244000885574302817055100734156683511080432888478833485749847658126169453565130120827447820121108989073515282763359714811638154336592737823922574385908707188276113353378844366004046307108737501801192647380157976975828269609961486077891955235068319517445050107244474237422098051795859463864727232854724747074603162157219620144196653570849593868727454811174792157960440444015522302303155955428417086080088839593969958660875333884932699589477162159192137734011596128306749186855066566060046881569950756952924083303887352763275305912846939311436153391609450815751594500029608757679249341049663478650993762609501814011101285339738255633368733095835365148133117797206564264516845950188940446876853449626363937884938055592945821658409353157397077422174958602538983389119114384736170679899331503444458517943293250203723481676109068223725495573403803696462307329747200570813251491050777813671438252959791146938564004637977134632510031218430020926307002710907861644871294379869094170610063371232803992904564185181189798471725461417521134973108023152027317995777050875952043815831736404180531071748181120328511618603499285074551225796225070221497513936501172790557049314528246299580703486138811912784214124073516455737268729154853223659071874755089131259114948466667948967348751632056392946171572460136121939520981883752510836418233260136473545938288580896830943007527203644922382400785785237312948257963086044650460446627836777087675460935305838779637427329234943252776706152214878195141708925405693476661301498987921177575684451435367843486549947436177592076090690827383770549135760775756696904101262369715182700281828922879774245638422996053206556564028206465241244988676783626359177276977522251416590282908348299048560380771631699913470361113267985504911692911391974840750441446219903379880846416828103594646450239797988629960443737111953577299714386132221342857655352430822386662342146440673108653201612982810152406467922850172496064248890648520379590422261362363965230765245966894950494749906681142022981373022475206659832436671230498912217237943804876246705468892959212101939872936401499843281680681319674502674029060011157824348843899264666279667793478065398948406264975192812263987446573987005635752170285137971997488258851279548206321109814765023456974702455717845792998251365488156153788930088428610528088784366863347193987265350092250953321098059559184446223910677270036583980763755953211707319869203182960081820600492302815074500419368009083733458048802582927452195877017418010733519329894222836889332694707779210978733665176468842998951944975701953536310504691852366575069909831926381140696360135706700061167100779340390703651463643359152545877958479122859320440748689157763906194273044430301234308773844475266483065816531614701792891092500039635554393946847287706817986448154471677075504261885144728563760173600968366955840857582881446666643526358483726429265664811771044100839806091424000751030246968324674263150389339743275900797777960134883546781644544184393800683631268977776797218011131765520793822344674472594511689990327276001809194794707261058482809344158814586338965637828372219492233591116076287288840578986936786428204223954733574950890897628774694395257071079370137398512306150629223242398057040174888137219405256420476711111591015880192747423794577231278311668933546642480272450284550671331805765276363924054655042017266521613075752098393848107689721126815003998377149508501257754200065549419346654327443918000739341690859992596073068145024143204575354530742986273169909702902105950482875650444132791548125154446434573861195105275827826449712297003440084949806112949791818995217787719008563494510692997111883537059926936586394931338289820966718844409064304727588605246456318918421762877948130336747232946066561411788219068035114117560195667020554400517592327341605524989290609197225968958644352998390074144720801859107127938586344622651143469793065403942061660080605041944958781343296078116291325285098330173275567042838928197108737749589945764952287436598102874089813297165851942498815976278664980532581226551387655821329649781008209428978990662094689105231945985022807120705779011176108693458906780829279282662530354971144516144578613112931924778050714026529597329370716521636165902615460259030296837565198849026596650044546647363289930952652655124507953177895835382711060136765155121945106707233301420437663459195995344192060575897671855380072437938472574685477724699151581934723577969710193974318360526163515451008841167223756328581002955207189961974128627007338505536035758869413289913091488877340821978944199014504718868715369172810385753568439498727650841681119982585944849683151977786326671636972194639115928323664827982959548193259868854400357525474595873354090815991598888566500252030974740179064534090298141262423568340353096960889626370762691223157246588366936709897940778845097787135648823388925296802920052230465181930102560679216240806599445919820216985070547499730035921136892297179350924617880308326633138338471764130066658243711906686039875561657857711566773244608278463124085701394723175665143107520496686981198874262566827794326358553160006796311713356445822741913816918490363135960043391187480016803322373672265303686317696014206548507320805241002678123795054027460339474604128273610723994867688615068625026525900790245283500434221175035527187217305819510108210264166163171403605712902286260963571356294330427677502620986956748705721967947387114336701124383400327617436795378543272336397268631574558371866239854694783132794500025596053131699087332411153153030124851316999229053420572517097740617719077951665685289518718433262801478121429263130670716152257941909041564121135189849728801581490117925368885945835960289355915394582684555290279144461701835163327484019999022754736257923901107479492619472198588285650639063002669938418887432503052824129836965773177024333951188231998137770787664069078295724357008848936551869912359196324083346345923336084190217640050234681526732243025046291201771427018551195206815219043487085812005741775855644784248392481648785506881859601797075919598717771239098622962521036080551112392658002419728455338591689348077563197098895737428903111808122662548955496458862544737017999237036202568371112613975663852282566120427245562480369941091243305863292394860142328086577369207875845876621323682364968665007663974527824947020248448312487339138292381562039259668838547742733908192975366812119175752228909428977951511221314476656021888971385705771784400349907040276263494484572163302956932792579746081073538521832065358651084560856724330756669903992609037306119926443864293980052464253718444371425041243342205128810161070056378715817083497277693171266132521441328572692329572281206152135840819454688731275955482658956055995593298367273859735229235148895065038636297097706982807090440075965166318818597331229589637085228695197119295018829629241846624731184177637982635535830083395361582386163843988558784016759582469887211763307879823307234920238940474539982946157068170769344022335927694667910989319277324617511467333788635528936217658620477003235290948782041326191067536719648438529568039766047200429366449397762136719174550307152410359224033168451185218404685911828868330616294962543156288712231358845879856293068081689863843778549682239014926530618480217602505738464550448132967312260303177128047694262018119177132710329097240021288148587038017123585369887344269868211496664422911381124484554491277821028589524559724343815857592716981729212471378222873446775818031330530266319348629717648834526429622988773685755163625600256051658194241233167508425765092032984289370356935040164673342290521225899099271605597933240052514165379375518583802585995608626944336914084201602857399124350630484034837877477083739817686775354135646147948563122672248735196738217964854834689518118733028678739121986883694367532107651907592807835618953213079547271544849071317001025141246028498239170822986663864604047177002765738171522081809330915318822980672412663882917737380345533964983799718240723779950518164703552961500331995060304301595377920468485026499073319372935866945335581533221626642628603254043848749508513076720427429969369814868474873518977524388549870725649639099331641636921112998033135961109307238216718006243425483815707781759897110843292762789397377136429452313889942538695126060967622228463692946242579392146628544424705457047518178227340758122760155225479941871512583072258318634827935966845399593217711509368312391856943216494023204222376738121342343435039284005689766602601607076156105647543746807455867592493149817991721525814947942500892447074238703953192191985006381869438116298875484939098406056529351307013906513848543512648942819386175906023969817269977869981804274114152884844727399882004922634214113297451659667470232502014980543144886207900769459032655789168526372609594112513784567246788582945553006029267178526023909203840583326404572744907079808723691106431271359646117947862935156913112506363934214165654586205410845465044495814472026742103122911001969079901555581358348509960407434023374302614620336313597623491502690059501942525803445985185005313965615372527623284659833155476164256389188902744086703909831630466292456076835179344709209845013339107767058264101592598492295877800591751510101610391931391921617845578010827063949027643235070094359060656231628300771908288041158123431284379470692848398671611466529001552092496799101448540986170645520338446961086765171363416013765740461249336240994318375155593526910764297675214232905975656431218119597856921682489707065624854822631088885247736522268230725392023385178734206546569626345685020364144187692718199791655915851081303745256978430339338401825106159475347384943259382481138808029519049304577163032098316511481909538767676657283147183972236342367648666611744594207715280846453944127352521797734901790899659454925837654129279153465969264555676894135373243429435503160834142037046545108420724883516481180594817077256532975455542339288538523144938513686929846409866081456340306790716431772318211475737044584034040985777816178766919964057464740311511946992950397529540443273426579118514385548777786593794247536011077181989315857174550523421233682247703221713154736202737749238211812668541858059950093057864960241607331743122786529256312824711233204477659273168079298264552037916778609802653993366682751305665995181308412879048352955792343749688839003994655328098614865238115985118504332088832193962571077598207157527825223724313259917699030992203371347837646395210816318719021666174489377614936772484169708185142444344053778366361420132784662318728489404838645168767235082642868651784943719801688620073495109703508054842004841363518519153308881759619858746152960053947207084859852213177689800210853726499405093196902164961724917428794666542744223883096159947845131001650537897746539236122367918080184061795678191543021289443896840648460410327036461487418930097535314496004618646410648795873792703980525112311888210158480586689661716812227734772955174178712034096227935261339451947862753160566585663320314666966964870808921010993716820244819875887695380157091731259970251930298524044570712450771475525307960337872359289072200710987986625220796303879407418915954735423070361825244491898354029472956645054780799079931703174776565773486400003024730535402047369888860786843882585963704157613975674986286875109219200268044686750265727533372929080201441916700444224838829380159510410528524224416125221755968680261054927266778407114889313627641207945323648048588267318480320893404617279871188623148138300835770181559366729095341587999166335940975006490161194544305935634250045253044820470009113951817210276062821523041741044750212161289939787576209963853291453777092769951032015318001903566144033391053819972855237999854958919247894882032250562578139507833504888774053870786114764788264865322158103495299613537482306654439331526520369964417602453540409801543257230772921552896591148888684919379534475746071108961129090963053621567592726820865824815181587409827640694833307534733588285431731660145937275957672892102462193132333713769003154065420487336031990185992769507883964867778313473855912247876516036202352103319082072826592095650200738914233879290287051099206732373221941889648622021323959732833799349228183538907081056840401451113066909585804997052644456800957901889676579846614280405650390829602469075639873917126839730902434860757989011206269826997232455472523792054600473297957735293752405208826117848491859603632769715844803674464744905420977472519542733649221338617258660269022423008429929833469729565833923617342450709404817425594559219889843414164168034718363931816942159862229528856766788497339860425594973038222403114347527774456195593607623596661667146263885080224785834411196714602267518228661908443113663245512042978181817063933171078209592083990942950156529041700912012375663432553122483586817787205196460334154652760472426863683873307000387208264802645300257955740818662021786460075594646171232077855457683997077692485603465295725355155690602968073147137310562626147674066904557943945701371576876182012062784274516294992297771236595489184825875309334510618171165089465956153055550741987172355676045109159297362768527833630544357254128150907530465273131322061447125368593376714660704270779197566455105021461112731842425613488721253566766855977216259427760754925015120857817265461327456101034007324205465592800512593171393218997430506185138673112620997488219049923786398467657972867924566260183658884329700061560892901271737770385241020865712798585396062848044052600910979589271807795014267646390327073513538789847524442706441180746637020293464176471463727874630524426037207590312539877090146035775599189433261287291660418838976806314629114537266180760765867323112337644791683588235911653747575991525906293555885411055961737739236467912541248184428477952481633012726389993179810965960450312300277121639007319266432787412282163380634934137266519370095686773178379686045274164966178477812545803393016329042682175228102664946036153666106789270454639009969689044500506390119244146177703478749276793435844497188468801388271751869178297848882118343578850867259241868212580022480420517601010498312960201999196121185236422399201395687508691215299973621521041830456909384074709985267832269105702572078083788501611136261888715445252407247406651340207483466475242298272617600623056942010608568867449423462121087468677326470676573931709662994032483301626532232664349798332738967324000597304812466365083165676346322952076015349450409257981401136293241943589857668803344529991965214383143586676243396613682401543538675060986498064645642110257708212766716384063861205758805856728968660339853924080383339141182958984127827772483864494989464168511088760539123354009000982638838390087698660528526157245158709578754947460288027286800621925450241887093046492440251569161964611384359683382020174182840093809461306333892159014361449887488602293270424490490100679215536982324883165325624655677636230152363067148314528126505374473023312174869848939936665971804691340832183454263359206363519799237623917495015089254903522544032100712132336056550237450809074236471608250230532328411093868933468807420970115307968911821530403270718517174620452014454410402817533083832400458896609954809602017338342789116219212188103470048303935044865942549168763226075546197836668453000716640838371697416080657405159379728602498239119529716116503340777094837423427815367481911645296505329349141000120057030445456244419257170182827371467064854898949453667948671551063736263311889038295585210510931584959915804012607870340117456751723044485654774872517194308724459118120093621682286127346915713467796352426946844505977402530355208232560051945263544579602049292832498978358080332676832676629654697135340910909663732052966431278259639701024884937144144652965491432746235211410853674063721267374679592195917943639781782443481303224404559988108065739731003066474686247380793079228198891113030285824421073627107173117215912379681807513601026336643933872545380128481890932276570178245778300675444039021403461631041282819891209664120317504552403396913181907871060842231779489505638023910174595755833130807234203059823835610983884390530742788242684398329137874612528318474967453857008757863478758337691848907577443720052075353396777679597354560043537396997490353557265368095062536219972595577675869956360737158765608524228828046566371148287978841761447759103044006545451450258600203340419702659054534298717641457071944856489323875691980455489465284698037924755997896095679835304051218689299864660474049571295635108685503367372905053671499238523298888826782234177150924130473909675517390273181029643304858800326427683490187392528448258315282348779975344344633002951529471429060147448827236458406649277306623735841240266772157283488042727236953791616771900610717163154708076540961068863266238665648589836398839654879867117444205060271053713978305435516656473640559926694517554385183821376726041938563291771163396498585191924976527783934930535763890044230894790585782992976419633881988194558736132823669325673212865671362349206918962065358629189830656906061289408358568080152969644687364375003574900565708706271301723844954152924890445076696149780446932631591349992983996902288447524404931282496830420708363601647314246961214768298832362906189732943926636721632475053991717470214834011913402136766630766507438839066569312551902629683181305276534384387413448431002105638324665852851322416160949057338119557273054833860280594883885729768191288521086155276889716774574032876675064836645010105372341013943969219178038308896786165847197767552924307940718169918932868990202520382291618314210442955519951633707355577937686783442174964201205153233827267457967031586344714132283548351431759956733733866077729405147774177674482747277892234263744649921085287541372821138162587796952015078553679125142284436373631158173579049501409296369760806831728698001286621591132395781756140090832330491341815556456581352449479007737324539415647213159104009945296910660923415010560879068287886923600463545615701462015441378108690300868844185889825485077336711130248833238991003502735079333510594304215053878188175999849821498209192728283008538470826427220484060489996484994537062162497544435574522553127449959958498130837586273582957473689678091048192634770947369881186526187594845649656054724585586114215763262395657388616749617996330989269302192758340542467641760050936311649325947675371006968431991813993757092024625446474744074311637978020058331977039783435010064208674232634811482464562461716170685478337935398876991048011627328662135961890346478476582264531294873228650602157240339229797539909722983611783666070550244782169842749263195700025047280907595267465481556228899945912999717106674206712147617222947859793269774312343840828366171457076517442524553830934143886774160136133333229362418757874260662110780435949225573508259839615880656043724795966581169522726245811618647437902075934391011330179958934577957928066385156528006622016562745317821750885104077545961471164968803226824675807811575994529594653534610833250778475280053327672898339763994000424865135683441287648316493893406838920997178682927322477961350604588125207917877215838413124636253396319371482536544593483791696308799136031359385535074966032839974242016519339270237732789954363931877738656511460789678017313932933463897347619220350767500221081240230533864857424470253105556263535131182658108831944454959732325024670859286924576886264551798559493563602442571814735474947864853442388870674605568053796308336457188261224273539729894083059480941118119188201610182100419611758856451951459992218033336121270941740239569177571006301097596166478184021116035463914716487574765715898010664349829834376839536222921101838538215456889385403023972396112425720828007523763630202073414421898314302561395776079827459337978281878017020715190808705859608866641019973003926219462966583243033761545983528738290791697001373567358114701170289139307100114114835043719134213903605618506018763205368296338353102792895356336083818782427903361438010198318963896000003716621439658470297994089130479903456893204422878033694085347665976653741504449835508764760969208371932581855987227443073573341930109310061636730850230720299658835112241232205803090992595131171816877529457181008187983133279354933087372079765676015373022978907766020155733179328506453591160868442535984100358582752292153291972096529491682633752681044657812458411031715720274220462710402490589063993672649979243651672514404492895362528028352319992356242826458057050044555993886148715944401626662797256193172180378754047500344399564245273109261564539194014772331113064577077329749533353911066956599544986337433023858468589065469112063837247271958043477102915062998478340380275297452161501346951168024415984678734117526258426716902318044351085786776164739072377939091441750045876993937167405149188912274700790194504335397553780735799254508893878605904763194902302499001185457499290167341231125801964221621361896206004538412225929551004001547124620595929554774759665468061879339658546599649488068156024420902490973711740763229136765666281623327851455047869341262193139685095005900161771809439010959904046355208572347174891694946036729567969601371785862613503471969252305405803956405649319257037634617232488465785754007365761265324482616920670889288029714537347292297731961033183164279925509164698840174244221681961991483395481526753262977063517734567113471773676159050897886775635581544420265090924870009209140297109526899815967697580168559089719900324338008655553386247510611063705955015424492172252875863087365564753720290351819754494603545253008755673179607296981676295000317491691013500140004516662206936162810499952862732752015000431539534620877126581800826349714806200120924896912115037468058241990848367180702119157609851934059883227353039902767177388959088332781776246925509056224983772107905951535944375127920460747015152036845633629917926861525938344570335720112239337988954693787885802394008574652321891868490665546946657823911310047008812674824330459044714920957856121048971064379041923030149582448033764114243755350668285670877223764699231788114752726295867221031820841406670441220938238759767105536489466165138627236827813473936746040888054942789063370777351142774090326786226776636441876838290741559214002194525960724016312031844772713913973399688409897483377184625050281421816565862648143292734425646845036983028559408319729457537050130174886553570316995490131496778409908649485898682865078067342256950479680613242453582839806589260219704574738812287878750642680257682624884205767861151821381467183031490982764385283780912636036917331012346304973124040201590081202132721452792429273179221854177061429250637434273186619494916920740569125651273708159374671286559109432808546379463044371773946022578604020635255979879009338249162091662316492706346513003433638666923806132556546947045466500009069347701978107552724288758076583146685899364719611750570317790320656794332882382781119940914818809362201213952847549108460440377904593350949983985083636068128593457320763061553935573065320746541837899726217932386697993173378707126239452245573668532123484878480161365476292479229116197095590438541828806380343560025897809244625297644354977838521226614449899911945713527245900219007415167566749981392914201911533075743697750433646385187594207442137068942960917617364159330931302389023833971212497679489076647176397007886090104503128748072406365898697637193864375888621619023043968351083697799492148148103058682149020245943255455054955281709585906097447437962098634216778069382115296612107201566227066167102343745501245984163996152988198783741798370284644266176783462529796247809660319174719682906637363913571491212877649903656379297698053482053669374512729774558526791439408457432572477082978570607319851702845888977838931609001420794300200888462132369727314158407615471432035298754142773405948297041382831255664311762763598033633360856723305925291462861490005327840668176277364894133204604729375428704250952992476124519580238352080652325170630435993391362102139331224329598646192473751687029830485518159630048599200132691659695910519185322094598793507120360463504061727546768608910702976365823632534655931641901479719006406436061976849865550198943716270088825082287665848429370021053753808891912760954854040660139709842180790915506506767236576406110909475694868962398426163213405722440817090016753377109139359153828728479872981701320531617296946084254792097564120830145078756922520170511073649472410389119966184464327026008746253349115282656163199105385657702465984941006665907567498941437550703890985121437003479293651898521862651083724722611441741098425376162187490439838911452923250560266206696137036861884279874408862579457877459425199253259334622999869182290328540273130774829561526038895356557660496884375481345908744954453472608796087160624047641585376984375252228661933210883512725519313840085695328441430196378263387724367949156925537307152897146999397731734216328137988922957942608976637302096863314599877035562314338145629403612219287521145716871490551368403901701458751654819574156087043627675947042043786906996852368829618904709204767517817379195759728508330664178838370757489661295721894728790273559985403177453426506256033547495410762824790898865712347787946152526442952162864888207204767000735791543872708704631131919090013822546602432642985178163761927597949205165119738710649723637145131112795161054400152098419813410092712621123693122455113119950341354210747734153532338509770899396364227224406169663171757596289498861295037170666788679884821772624137453599794395079880269088451836360502588442162572376702809980432006050982904096735607041830882458770980456618832448829441707192154213871081247200795781428159401620472096581486165183649815112363926234654228013647140696507571716451400699217022885031275466254776586942227730635575467648370764711762988290589067986047943613718598850166239227625117797169231018606028102323212032676162066621033148506442653435814538560209080734619865027670404147158831638689701602078049971201063900853514249611749713116576415077392524282062704293280056255833648965072694476555617382544883466236558778755570997207145503716033439844972586954783159248494758793089312738969215447990760786711158220817431535727414146742950310630920975434952197640031068168906597148791188368357822488893277698793707084178521281883534840635421597296622981078059870446471601298332414029454201441812007907485444682379720139803807839521015278850374009667959614919021644075596214561210415263592400452314414109459626311608883739872834824723284296738096301357852655648600629745295063306634974905397443072797906558775621772901908915293044313581839886294573111556694865177661481168351692255240325042599190517975038048379514310922179549987922002747090670400081830880858738274135153400765634790567734586696055791349070316271064101283349231648842985472880113548934240451358354955672427269060100787523579189406637375244366660328441241170472857182406686919544067121358422727752288137747918806663992721819754472877357693154360328999835597552902707785677612744730142301682884406053831997962005339861775353915105079774725678968786001959340922514407136914562011752795251312383003098491774380623944284705844442922957974217372899060532709341808619111713816066346792079494501821760659339679702888764604551995788925851936413366502439604169790303763467741155832294678937224395209551117776376152169111477477565782743716322314345732726856348340966803301601938271637190413743403642758736299339331996130336856551337152341156780776871946853195709283508668677754522270833210796865977554165035084857410179171965839614765212616012176871205690821216413371051473177725313121238951928037357992254657240925649912781315123456937701999136246455927372564064272569113052840875742602678448064903603458646477825663198254732692567633941606860162264308208821967456920479469828076561231846756248854405166517780974825771145949437466629163472792792344472309026678859788098105029119439280240120698032642708057791856166897760848410522655158708106729408648948828570563715843435651524819982723762290178640705958798777148096033620029208037465482973109019176733435373905489534530938373810820726354173000674213739609868006727167556408546296584157450768252004969019536608220818537264523855245670105854975040604609138922708765575540034157660568546379689303322104681704191332467048320394950076041742920440330430894273071909664171612450296268652566244900936824742677017260900398519358723022847280592637122659679756777146553193192035191826999318286160009747774588962600670815077608703818989421232052348081761032023096637988180760170832145038113980271505659665651697182846139299575816030086839550636286879593637983916695362086012210063437349359805893692648549404482651585471716403917892418678303060679845203705040436461890646824725317845783307447458029583873050061758745060845780385776558593641253444235742036364707438417632982836922814132870536452569386741020109469159494298980206920831910488521744458716999022940241878812843117538269785176611855672396882198530745718776429366548524444184090887273564178086865532925732917949356721513306011053498524003972009438740962979274229358651864020858567455736420609789256315317452680531040371780215971601131402863379563922945175567592200205264248795455007405793714028110168549494993238646622142140803644051298663044504548064570430980093366817748393996560991702230295655916810594890052681401863669678237037917918265535796512826940475512973582731626781086404601629790287557333321558735139977384341539750247415199796366910096312442772350358630792303773788020100819528225590621683381131970962610320231842361047705747204492830628304373442288172599216689909947175638908686596608189597587619168519392964326157411016339043196697972768451256733847547614718836938682668034096566698085764056225608137261112785865117782458719248138514980181207060110538561805713988978998677266754205392086137281366874673963355417672127631334660855797938859716435461808082542760051869078840503891972781710278259805816846254010699649921324334330424005352233081223836604119015604794290226879368489636890738730254598940562418833727237763039712598051458093412400412305692524736684428537904749355707706104301060663613650997077391040441494545070237272280666140301179021020394466822901312302072501099685449218084839743010743445885199957828529280093594089276741371991734386242508671290818268691159112359737925828070448916846016139182756092384995483908944691738980698701684511696389946984606065537523987115023826003417881181813961664475832428021947830604709669696795098888369132260932457310183269216052471382742317143559887407047414233483471416823753525530928917365909412149519975698910387874979819734581496266216899295366191058653787843221658356612442032759974344176516625431300261700573186793403772294042575959273131658242515404175077152358078669373211315582123907712361744362315417411674442998134443856608046553224146890252419712910704613945032891920469136135773818356438434525232400099709475153606496495846203459773926499557433499285908253731349092818645529441583973737707053509170959420434325324152438770246783701369439146944542232259492803546198387409289874678083513509465758400730226300723776798946208424450405967987827259553406932064564334535914566632744069031608895523744146527152337763452673847582975803605905737559787244298645937408033675128623975417744872938480990534617327495389418880006779235762285266265091751163099490915569925890189055293661033171236821867678492733062995718681252812137907876508062670641733907446619786808280009606755622607107041768035483433706659431199920305533877534861705928358569138462295650926601947272704681273928889861195419422896460376143603642017356361515176697789022002264809419143302023094599302107288149777944166699586454516183359927460896187418356293426569282242350051838343767393894714819876424356087090704621344555319043892645208262916347348592766504145941550109459374846904609346145882179677615941403525908789562164185195546626004838712629990458194806728278445894647880574553182099924866446373666494689915367422680706272779455907616259002980384403463826476260086786553343062146046057015948561997714932697026640713917874880977590308947769815830456204347500977657235968901377715785561216644514437553656939008616558439233552259769212342746109811659479821447455414158049606665225881254101923963686183643229132456185864895609875418230188811627648671221200505452905307128934884268544798376983274549673875337985179832824851366738203181880670319686446155505687706427578705696276143662598930532381757502734082989574750567051264853834555162941580011495853003897291472737493811743350135263048483983438284399226320399437188927356164101960656226111170377499861460685473679523867659072828890441245555977937466287096628368731285897104260180979219007249128105892687213687136807375720364215552815965149803211440923129976245911800697632274882283001679761199093640963924691451166697766340300879892673353094216322161906765607723520928203758088669076742555910106563738619874217300102966990762370572608198864059770008020230286802492253749306648902575307873912572256418318376583762531831423780116640789480547750037294266309605611847702671312698385364523624179188748028416086242905175378687378151249067407806459009830955730142982468251631466390607616132084954654760585331299037504426370806426896309041978872084266018002381567778321961620764365464657454019465434223165765930441165196365741093110991645678516022957846565729183308617313978579802006286601445146725459049184393969058169181638889702355408839426837801485840857097512949969116509192691031669187569277258311927627222048681459095358829716014397716924313205069368911053184068598413204858329216195845828846180814148059348614505761891620842487373641201756937146623121218586996240662853767821060996912817861232383115480764626855786560439478557134281019758969759063241119728712044864899432477258924637500668410806343796914149162393226122605494197092184101086899692946443228760675041751608497868947054921748574016153070352902509171158638889148520487750096864086247264670390669615766516448533001407795910167896208346450405741481389949325616521364074566533132800426246845539679558887883415383591156428339183899653362227909999785475733604080420188048476122913612583236608123574776497459863001105419657083666154455378575265320733239713231982480842812581797578117908899041000204026705723073967594299746266411534968546471550473913120816280374778792391791521175695618518269644701602836404814388027547935901289154884715341359077183454706827714330478301759151398149777183176198461259991366676105935846290349438991695169576841641603547003579332892551575757773355642347026212652950932288146380490100853131985107132579225513678890132082253980674358511914431710015033817664626187175822841618028772100613327429899714849165530533327831595563928757419090729836545504640290662179790810670368259117635069820936252774889016125576893578358530811227581709917258373157525866894859621541685681911531978103231081204238599454814408370775934063785422582974197729832436455495136273962581822305441577153652170510485067393040268041631309618893693215155782245224305418393614742879993271560239956739999146450129179360294363880857734188717430361807674922067631786163054484835755270857067979008806974798827565276272123152876986049917047431111179208133050819334123640745987846097161195081886332226099802647278109057334400001266204883536445071821685834512264335831135708061157736672583291833611952425255085399293653573224073868575804971741121431992909052678985367218367225671268726986908447279089491026684993735469109276033939589963922688148800298941694544227113117013271419244278904088987470195974057495154959086878817431269684797721774205436198628104088409320319206380674592469037766525037294001696615968121868464367977923525101332826156936652581480546525270738515013764574653784422955899503629450540304048314154381832165644807495475404314844753249557217476178545670598877061918788063712120562809654124587354497795855788177429746606334225496395251192263282547337429424974279119625446882456946195893904317142437929712907493401643998345953135866302882448371614889654776822264656217287766961448383845633033188965799566203840495429957654474754745633398072561216887283336331133846022056884650628321453570417371191034433590570827669758948198044310805647232706172032245781680129873723582113850789551108176016261037387217817298670455955384463240172546415218307885042806233571336305086709833845490921291332030765226224871267803442175013721826178238630690037287600330300725351517677789039411872434687917068868723130175604404686814603769081606145983859420094157425473634944813974794381382911170589748210189724922099502974515512125474906981144546017132376043598539184630240557041170668830598239870492207140044228143701498428440732764834475975780979510612491440622224418693760954890511126726672392527779040848371029011508822827161941154939860310140263309108954756802919514732252629324945176549212813208447351018268871234448147340158323047967525078354661690287258887011942872578494304230339707184164312254624732197205199362042580605207112440222839827562610439730506094610726920721199334786187530506237856912054655246313517021569765645081967673210248655817443665987366024068848351497141116266036414504410703886740997238577990265049905073922806595544967922660569853874837718395010003571486011747478932704724752286034237184261035384361188307094145666641878665072687521127764184190722076375054885854980045277889532618716837642023072684603214145137317626348634473101415817508998532424855939111220986553358902271958938551883969489974409687021424133444324930471558400263560819316976270293434181378611038989177106423430728584631812908696391089486193863968676806071889619264015753464031651290280025507719335017897071324748102827882331094869251485900038406815394126735893846578659634911103906309299228783330291787898903517067224732020798834261462308070689637261421344526540869342533717824470409831260539988968098938276838746947189482384831021765407766266285847994590393208012579167523724796121600781490371463170259053514657174794484079879225256358431560518905943041311436757815219380695078363315457840806041163839310041279715653809451455561609405686702339975206487501337387078659495635333321752401290441648603273692022516524297968027552108306290334938435173471192960599612248075844344060322941929250456526853062235902049070119555292224880792739172606208234754704095976285393282303105450706915923800673046552265851528461917343424453945102576517718577313123866923927806369145128519837132156779964227684991760476029240278029216138249682615703947699764594249998685533377213724443444848212717555150504899239694624969852151232813043110931328955644161723691091187922037834035634187655528028501700503592176597348336255369749114198021240876651546297968125321824102379680969292844021966116714883672022566131435692145297411502926031050959905481219289952407569380487157310105612962932999973369732370707725096217251142657872826721079546106360839704753279346888612433004264674966115487183965921041154986360863462682450546802813610824580258498083312428685747773122577367394163222419108984292406046155089472461731372726139015465896091984331802684694050899045701992219269009124201166591479138831865580511962038327580921513705150904963108778783423712037789951435635294017208124179320569988647721420077356966175023464657291456168761980503298263276687975201038340974931944218597808562142507650909501706169921755130893541201135757880258781276503111962047594437295872140856540048805029306051412486927156063363667888104934909958222294396862257677853873064791581449610184935064368675924119728698715909914521891904984061662416270887545565651558575112217390714374807302066221632323158995195260201150968020508911752422650996057086721426936895107021065483365959017427229172614029807001990435102235722264989515515972339925676285919176150072496132251554299255750419847194792922383958781193289530432171062376728816484785207856922468118325081791983684038554341669846903630992372936229601539690305406372041043662942029883093091929514485601179895576600317147860531643403962622233449791245577498673147514966344673030041357644174080399336086466571741787691592973730063505299690845412131232841507207338946220801788993858247217122739147201537400844015093806094150459702288704126573138359595131047861849678322993936967696231430662635196208121088691643960598145341928744440490944907267141276844594929473030942907946019057422233949502767908236785344972746850290162749254563492750798638085351471166440798185108740454248319823774402248730161479106200496094256628925950760195185296978596188613122305249509036644705064888387502659339938582269580816832916913693644392932144406173794489205430757163868149286471247757292514340100600711607275495183409797183391806251020224518517354083393341546322048844518066006245143833017143638641554500388378652595798990101753171978740805790754349780903318889183297586451107437145506815788246237569029498887004966697768774700133750382004590263055137338105167724906673952519240608144365397631126856523743658152315606196550360562351726419123833453731490274275888714235502674240090185832276454291707744730978180525752530543373945105928979470515436034143603129093872105306764964433509276468376299483947021657538449722943179795514248919254571857224064819769760655073630766177043610524407259957639780379738150270361081110746483452808095248481077349331298511854786463019492719268364212305252922867060666862755627704097910863686419826606684634747416657301908211874753123540694299016984801309415093459990824247444170330116832093870898076555196211640742728103448037335588434865640886672220376181440336526838323056977953886272827759705201951047975730430037409024461018704953876527201871287698330545340080141425616306824224455028661727026825688902369571808504308385147341704028418388402391376073730389544026194317068317777460753227251921741717278730504120074823941625900836698269128011651190162059373093516125455128007769478234135195269277922622201718739888663814821774307931780962918311581631228723702597577988168663684876693361354211242416064848158071712504974497263426253280820797698607519050454156526588182564376611886220520659788302872992825723421225191848078663075882408304044763879705014098306214364573266596344389717491162807788444223149839682996875257071278953565092951595606366358720016923678271895527400173238639950167267604723741763161007141687118250868528460595047010090702530797090336023324192538422426737892352217250380173153759874687010756692000502930035890694677662926307606075559527558887813179730156629613622766973964104815515723664554597702278244047042393717076107222589548058621322269942214832271661684939214738971007843752840295488392480343300558567956206704403131651586052334109368497206341720722031780823112011173981067361540371020105270176134448037582763883754908322241067537103928526404168253781850343730955539151284233101680191058921687017868707522014214565937516639232396040444863055135070913579599408176076939328854097071021471291649212686284638752677974206671396874345357607371728322074107172191967316680512494456898528003617390901412349837202219997124308855346610642494769495844335780299843835062572976917079407930578485659978374410691712418456630214338551097373482201756323058281465047988465237509474621500597899628486080490486902844659776173242081444414378679455277239611834820821246876416919782897156966267434365606186126080421066137350518984007826051212046598224543290465331499307684956622794713408570713540744304644434775039581048318702645881359630998659632459043935715673519015242579826747546641395204359279961082618381781743950756182549249102478513492813455764844711394688873765293507930654456799948943055338642830844770167524741974059909721847186636581437345833361081751995157876380668492340303985843960997949344270210436948152876866318912623204503574414361105952215084631658826061236547770546255900193317227823384880549252726799828589931533100569814198966329722521055921228220760196984694289008439752946898572712023462397570143936951782618050322289994039891915770529146087535000396503458575171426749335394859731026168614432038652604401277828114442080120398705424007235194570189327336377662891868053499554116423701635517650169334568083123704243339417619664500247724397612439183780315546447744084820903720682543209823329629868481051929024926672990514897145935006413865421870194060762696016906349321809701430354311041026041252571556789915040714679880058872848838604812218491914483942299570978428879056130344402182381820414944679246004634181962333819809437585590572328375891870801263024176403674137272592296660440148658943775682931251281287043778828381703797226920981271340079428911073989520145028342551259988258166983958068946495429290411475617357199870628560022158295005132520316461972523673154609175920401560835339356501892959760876839062353975210005595228245864422348039404956610692579585350042392997481454647169734295615180772678975884861318128406625091448368237890388815147177191684047624965699903109142437355507832703270312595797453361329254057695106110551573320517812156420313773186112380136372137394363590330890036169134881940838113972586192302038228300700453462303354617250909973589308580372274623673326098302972746189570744242220822786369051948822813806710939678450351850650660679652876991484137523424242462161507474482672387131884850811697592868517100063775535445174987369253183346239165917651620298146776205439011439069001893080846946439295371925028673121183123974390015252248810002825487157517513814264148499863084350752853856054831685412327246480436720856907103897774933519545255895411010726482066927680087476978924457236060390776486220980404305182396560456904725066749852458009722601166810314954601859042360618792367787508485828424659220266764050370077824748320536473560086518460259959454114792015771231682417882889228478130441162728414493824054450904909653418951581815961411273036627424072702637845926689980156832278132816245851786885622740998644543246387962125337971971234269872659120631574231419743765881609621465781127568886150345257792041550365912701917267069757456739165893230258944317739822486248336511061041731407088798886304591342497213819717294566911488950600611531805534131612950762716134802778062890913329635091465101077477616162580163746335711670581781135355373306015174436771275599815948993218863950160837402861299581866935249160659047966519166157795021593314161514320337341168873388566596115181176498183649923619001056241692656170802841734981356105460332221586089560258308448208662886609158081843745867758067098860716187729850891314290229615064443619343708588162310194446266567919993940596806981664401762490828665564375958153902380630418002901362377588636642942498422508239698959875368211764657196924732489049024611027702236452352448564914278762279921417062934100009159457891776503932032934821610896255801301795807889366430951073622626186041387779760352152139499303607703193651880189324060423272360435359481651503898556496508247515877796686861088404801627327151580116981213113562729742256863111359351912696683523208034099700177033744663640615727871300213537054622008022105281971693112087544440291649510328387948203519861619559637380945809911155962419790639113749273857558751512418795387378944888575779839156590571801715655015103732647843447289623646153503871575408139737553267850156458743963305705802023857546628486816658367681720071408249967897610294579118130403877331480806237928988933264684109058549419611477880851078611606327215989408942503160756225935895679155636365060376078551172455337580879779382630807977855565922965750615723137125011730744236588905035243155504717801696866046929306692801230313383020109313088942436042793698203243046341942082858795457176256380577255471932031631289823189487856510231989940469078660752605489293207396386529750782530113296169914917859301369177806466348076044212153545005117289965623305130682048838164574228347750567904123069648194016204377931260890479533916122936150007330619208074059808413630757037076049016109586215145057161160913003339029191716774079886357758152687145613716916034711040368281832356142710653225837820385876153132334965540360969681514352312964173247542278211996089742403357011061663879506897700223306691104747081815690705760637065493339335616984462999946071001204240983419084933699197019146754122458138990766068828860591986826953116745872359959889546513175550246747111164903802465368192464384903292765877234880358207852981889921492282283850553849573089756859939628752440031253445317313618141314926901014538819759704992644299494051680250954200030327859221649640224088089363758475068243252170571502495074630469085622276937302902463613892153066904587256755222980778509257608029482924587849555538093603888257982786437543792558743254801659378156035000706256523701538827485203908868637629793524416137297154849211284575768787828044401236331872703892662587860284797738746268431840896399938628033784170058163471380313803252844470075641489709918327491966734335285214780517425973526768896296059823263417098934499081817037917832408281632173048298967282999701719967116832616929741203795498874345230370938029289221041916494285708520257330808387585211004899349446266785025155124164445689476761315480957402865916601770135065082897653659857991456306730764812334772334238166713135569525945925940402270830950986700618398628984660981951595691245573458938258866702288005603172225325973467955246483937652078956171393610584128180710395648274755381043377246532706171040959591931935088755644048701155993503573740259532556568600474246048924038381204965114374967744748762310637228211615768479090504422072380043517681040383049793204979277404254734039398342439483780010796613769242438035007148860483958449240685351402744410235535580037219882022258547587593853807692609508020289031363352338344054839435262065559206213965117216310508233605705413998484746378253014360035127097556582111644659748251795592450889209807555046406110924889068730139930128190622631724858296327220111835345231635955282198421271314380636145553197839073424604202723906472363238850629700106352922981167842658233077960017209580389535174851198638732318829980585387679137003217480726864728252853845996051491800388714514305863755774232852386295628701833666469215901053385740690164723070674200047791798184907969262355061171659787195747982000431019779397326004343972904702564547565947768685750904007976978429733734196252348704690593360164976235969740854686250407579091998733955661963577685316661333815385631566911532967598703486083148132364298782220366317049373327202825937401430167808589984988719421247152482279454483284169121369166700006660020740937508229845743609390483157475318061612654794922097982662777234139752611183466690806280302162523090185955389038641246316809320223131242319050602465218178461697773175692514369805774714089511290205966253952853152770770767021756237938623900299941557299669125819161874015528114502654298252578250053333417626848255083496966019388539878533523659124706860711483611674603183176634087164563695402181973743808064004632976701072206402080497564734728008711826146950237193781828343046352452215816231744030684243136255273336443230745784172757805816754170195764992416509839278076699452698900588482305491110043459787088675816298658485165400717204702303998549826762457607488448806536877353226464451305965764937329887784478190472139628303816302005883769222082792292243540871907543478573709466452427949565375311459945766734657906576748567259409373653478525724829792298082873609246396719679327787322950228119750814133509326869255926652013233509142921344532486055020481096021875858543133840057363830428593088494298848228794225747917496113803475745362748132076075703305861908317575162076751481142616515591741510819293629565172201962560168598151651550275595258854907740781332950556685550618882472777606755711843022886881489521892088837700502491983057530814003474710936387410341575015196068696967882017692834804330181667244253984332520853994533960222386126974692914017302573394249845098998159398625098715685343894139035160397909731334694202526223134187784164637472147552520001639624887872051668959439062816385245345545700227811014058349751552085189771822494606197967606810058607537842993215132237378341746923305017280773372125739702523570664651787672621191330823019865521552378898299823755836947490631871901514937359616219446823384515980258158424372015692115595243955284498050034520960523510067993261202875897543974004693154096942380014533013345883501737914293931560586062281971949479032643615009043618917312930062470036582534710664925161011666551485561401187525384576899580141897324285393741485020068696930221433078912120116549479517144486965999886096244110005194914822432165627306272294541671807478165431867054660308131771561609034431460204200030555157953548136447402543572355582251934016242332772798946949821920531851325242460284269111159883170695883522883754250433439551033214867618797019219791519574363550087672569909894712170084064013697682804500523163679628953054598398305136799558909516978888298398513700994871691394944765636830275428687572440717875810069546793692107928209204232325636767149605211384116708058460180512629020340114753440643650074268258801603531394650925842495767251056245669317952029363629913267475037399726303817407222832807228628699237467510382382292008633607015118415056065307071590283027358084191306300592540042047303411279302568287344098941495634568564101527605629237302146574893127863190723177197956601358941961239151486599224703409440324667206571923404083036751146217686035701858795003358641374328654323272074171785622669885773672740908347240048931284261273163950921252450888611660662914230940265763412373058708032626343368267922762711453176792949043683656193061867067463229350669972216371663894964411866234496984474145049375606928647482278341294917878016530284991842495461161120194407664391553661936824197684679088223633955333709339959168953098237160347658787633567694801631470248616253845428593848295048495011512199529025361956824209580656794960127722197114479394277638451690077037751596868116958245254721669334430122453136743625327515882387843093809153452691715632517548022102149783202444850784145047950298146930874655306839165756565842359661131543491298587807269625971235853184385654767842884201912574563316380824157573800021252383796963425492593264705987565382122910178485679134996146556386185959033945369860486073971508742372863071805766429714458143469934688920629545094565927988807835794306216769099845776706153452950097442474352466487307254227380596013202201410135098416628646878563436374581157721000026141941945925269336699711963468469648507469975393119212865754170794690477725579884310080117603682919125457515479573766774576246256814074660495495013418330152652260178747461731588706313549870126766971306655233408394500125633283247585417520959747781574193432436519046543660574673634443455874748870364659732989257899666824635036405749908780705166268591639209732114706505259223583713378744058877460631180577069075170484326784801538120644436204080352948262166024514086145119818774774232315568731731181036173658923538847604433405615264219936669745559136498860024042965105334020998908075251894141320731332740768077227657898094096312578833777616138967494468957572746679098881141440468860683931641105062047775533655100106409513743262718764766440216879192453280447891711228771043742773497681368025876321830314530407495079283925792911842623718386680552614451446536498871712909457532800438859102824940865571945726583874079505850724412039820861521606737999052703265315665443887109419617580632952886224816773059988432100475733132194651974999945002804588254675284635301296704081237817863707515162611967456078794932603696157299873798298585834471109185536987121871004660884251703139052303272241734972178660165071508249318471016099111997952035548343009736067079181509836690288940946180563005974260130470491291643284166073403116116128209388776058133054613706957833720778780722765701140310446273668234093810922821924732846606495136335297525023907449710587438794745210711548005970755136184518552242389124549808679119934314881406633929733145710376718635050741166641873214511382279890576283042795019867187097423546322547362822223125371671709545945273473028530639978430803623242333576405660848784090482684576870323383956688353836885350047965627629458069170445138846856194754396849551654108881510377710237012551985342555094292356012512254679676296916373132202259946850156838956439977726047122506216096633338256032996716102986135335947356563027529534862786705043644414216339247322364846516850211964761989843583032775782522566686481261384916292121451130271979285121862975492281657847696241743891022958470548063135282473797815181556313608064767534616928877785880074873034870143745989887933791336176744834400002045204787081810615156399308379173463641265118365427258457448866110924264402571285016863497342713029883406565133674691909307888760953621430786055361551216434293102971231227975185597946015562811466446356979990436531916241786306721688601970625321917575673957854788908779927853205663101275185792361492968520447969242554850891736054952647991826956528929414100574554684207912096662013318455516064231331008678430369347271061992605382110963720378955446543805600216635282318419437727726585791478723795389078403277246497943345279952191224128296521351444291151428468844072360225368605503692953977283071483421098816411466869217541621526039077810056812045481361404082108928776761082928289900031971126261264974185002582893716944134697794268380493717379449377191882176132225299014837796962006041981938844765133043628156736273726448814461887899703553073734276124857538107610560582069435578782268161926244529140984463017695847268420750825977796790400702444727302495849779248117438647889922151936362670699204295782950194061136047595152438128701695371505950934195530101701426480799152732333450493915890412116567847765431863446372053124565312761826990681973016240610874775282688237905612304055488187997927895496961972519781520409474962326580466097456719413369191321102079820481111642112680463609895155786406452308729698114719817169754550087697199978964692856108223451635788919722077679653515093166864710532781838727365468640874246839496992486639506993040429862034387314248193683695952053888076168866124723468250521287403429984137590827098065758304813060339125626395794821002549950784094022937174768023503738675305258164609190845539903794681755928817379380996999156435409562350076654884155401390086282785457759701290353465476748699232553889916674607092941108508180588846067267950959210837472630102598716435703225808086848328555330866962802013041032564857800107683340701380699247028022583936591731585280758539747141475898675806573513245741661372500868439526455654808297554881244235990426136970164731341777979279353134709974628427200757055191052212822455127142119262302634785617816915174182497571901691664590395958335377222503510942058439292127394852023140086829531864230768605054425732224643451875189295707971157207682043071954840985518968400534371627315321769430127814968096046294690739918330846178077914602102850756584964918752236023642911561225958696420162879728636809752667837295193353390608390346538127319175517347319334098678398023340798817900069375809766974125220482502827585464024777022668469782866793227746739652458252289794874573188636835507325943298962257272452912089229287174065335344739063142020322185485674385886985229090132092381944449111912808778536269377142160566624504639014982563102110141910281116165709471814015218862069729579942004107166719570894024475724717128213864705207143543573269878073616022516680508212036823775325665464644873137145161191108772709172189681691772181059329871489835827672992436174501402273495758127775276896440641860872969209687715351144460918228306347021782925913229643065838195422515146740890031864686589624828332452809564755952369788427218329056439006707171661029852700422773939597166946562163462954704378664679083410562560597994891014403109127194291517650318320712914572591992600534818268356761946659489216306451579460838898201676731972203867358205656744620579006926485099170971717295964455909435171203991748209504980040751947366178264718673635275460252781744371055052717093827185296067639774924475038440164473316830278179890244039956168056517167976053934363923441803482661589065826184097017108423949924042247120302057279936222053136485544761668194840190475280029211456002936504379039567177126586664933336549718067860134694308584618337930202047300430850622479737983113928537571260064598674834357943259891722599811131629306711337143138854137281001898480167282557269637844515223737465165906139677015338960216510983211292810358509313516145606747910536858681051561351533587547230120475362155766896796737380027262601893066350029838281745988120535502958311663511439751241658877607295080637494695897724453145613408420750788704134332916215540183998975679312475649314976456566857373955337372486277479320544273121931603824973680073575760013529481093914013813746928071636522366412306292688536008552443117797677057737274816955786601486394288377238514760802063177698649631849152829214748076870254388833706701697232780948910465350905499578552598793596037542114233580785867394968402933844694600900159934564100820223089279353018849368532876008466585593935757474789608428205516009765881342149473282420622946673281417885653267208369795797822177478503799652496884347593917752460737448272911079962562210936202291576341784680417778754683216666595160747485080238924852715300778136126683319208216469667521756952023768581293474577852962323317527146424591094111966210623731039861763606553364738399946681249727487375066194382955323731627414292746915605108263955345185399307059009365639863948273737236730868281843369473391949184617250013349822418802580091456465516919598374740969664598345047211511647086974767532274565049807029516637027041357720578472073869397939277074056424956076794060434658478880289142418338191163231274434932522738767422020826428394721418957658678815380214633492789554358986518342066905219253624523114047413529086159871514737503061815471884338298138573135429145354181279877164603178267213734182390142959548644337255610020764053321539008587854426387623329374637179977748724933229210205768609715663232131671160072112710313765444593155772687527634073651963933242515036398358947479377599721470682499830143712591046403326368916588051041658886454010145316909680734493446815251184440301221482720738613675111513718928275118268837539514034751222354598483945881564174232579847389990026669279574987367159757113665541660174368838387261853204770139622037309992082297799518093725726976939390751810140847845322365626714499167610043980033969787134763118983745494705167555113992608449159289286284070370840003753343658897850457854185306319305445201567802025256306704579418879477314277017716899412538741369208715307982008873813796257017810108206619041888860058795257285621461305156768905785287470215078366471151858847068507106961188155547457929288509242960435187709248991473462489269890695110279395247340727559458403282437734234781297332279126679043811508450605413883418938152925938483212429124058071070306480064904012614860897335422038457245059320914205300054363605557025734220072918451013903363142084269079626210153107520922171925539635629224619670055148599194023253611086459280810907365083157033706711444938419231323641581937271676084007641263206240344993309907985711363050385024844372770091863851660684626931216266482001359536515642065052986386629822160148743948475242680754753751244763124482456750070303768918540226202641420744541459171510650654048319326118555600273580847292814779561522356256513858629857208341580378773412520190620012994539723873830731362320431414924597583687667157768750292622813040635742967352305842143789470940707599272554880956873147140627090349922942372451803394822142781585629183824212053066218565629118431996603882317506557712115870924442501700708931151842788064681367801437388131869450259974511467804737398051856734711878108195218793704663977322781868246320956614100530733778941529277732852647118738241223903715632506892091107949150752914363868118335961647728813636452748174907675103917557096441725341030176066147936945624559585896548653787059033683329235951676168929937308233800899116268842914600749507113248627655388362834317492343825051699821885313603051092036971581010515722866915738213134163308259613031514137349876720184906071214751269199070267697725176569956696763872949708614969786474396985611809206803654876323247282462161519340223285226062590006604791633936273929540909099341908846604570064433105631612023748213100645047239824048347393905578041426612068670672580401930621452726899372340196059808195385096846838966909766116262857639369955517812663504398922238185020438371251196188065099462961776183719973906595720276362273453843969455409156729971509872033124907955887078728602723062227770780004215285005133401832940331047592564931469500937811564649441999856997578253347028289355897360160971483707750650068842684574565461582652744019793769741197169715631625405755244007424282429578346192689678086033333424930666872693157812235777164051069269523813681669399811965171442382093572866360345731967612277400324796971104445121959478803162648979293574214863987826483441493824202144316043249659732675469709016332591283266695109636460877409296328513526290004772384181895387981279985226684019830971496874971175180616458518405049100186183894665622985929908771081166289893165389279238720414805418969142766867695469769534923788949530746484170082529172897383331124734520238257621666627877210898503751329011305772527436370578118858774317334124098064550870809258227882735389930476666797104768708646619105436262680262783224205118783876969651420299307368539066766574896908846899316711900909260631608637788618732104852721332085506125851082234267779783917969731274246782965642374351478297141360135643474366950761139324543009264009099067567197484122045620180005656465488006862779813691626345309040638269456503121637838279702955409786870194582124279463003591227170246123869492589641869673634315257090408336596602119058283584540183820683059054767663018470963943456037591568507104602226466703523533175567987698539855886606505351195517201248976180722598501595966635305986310901929947746916308880522343482799762654175111440228905914255355847736315260301307029517059372931688310453938092464122627119125546032450767206563052445383425961123802200406766275935910582124069329282564393709206742761886814786130618457258527144643275811082227889264175168529823827213938263265468223368843844369848357120015862079934592914800363878078610245355878487216269945823262956105012863891192191143995210557403165653316261456676862211685789433243060026844671511481424365164832149162087509040415659760938341585830967786508829953592809159634721049194624142430422915538103294835063511224376936542316564978059577783976689821906766732551801937370609345528203145207061636636667933953453688826109063372958628086987397490429963511126502290079039891053943688372483649917051673151191461951191236445958165229530766300777977409582568257756811797514950016464707762310587095243575960571169653115731199071710630367759171014604919094821434380784074003563036409413173005499787802897773876836873527758406420275665656564723081578736755399972633006908681426778122580824182839958674179615444841829889257270775859405052737561295312580040614885124842009896254922715875827093244969672377002532623676552553091740770305250845267249601706829942372925759170746087536265683358110341579939815340803602221568727307309483396582300803814768594177076901813677786505424084638216034403195173566532180154375733563298749559912624818184623345264828853446655161709902779959462387773410948322092029695870155751469798434773641906993433150413743379303461656651760533303312881093953955881443690106694650471321820916253418279817183426845516954268626263410505830043293035822077465580689787945407521275839036832247404783167956312565434124411510135466720238633403043538803951621962158219803719680052092470043068753836020477122029296139756716986107796774542286455413795713394676296703263907993549558013295029045873227460012519279709867170568921511609967733066893321272454228447298489230663761031092540418398657859351276513841614504492617042702901380171943606736945013006615499808257601871664513131702386200758526605111658601171014397981923002736669231549149172431460062677167472882000972034423042553623590432901233066333541602719500062125176089975473888476521121103939906343171658091045778686896479845843160681841513823533788373208655073539970960095580656511796676321436395922556851655718251908445078558524547486786373701600816868256505886754551937085840844741104120088800684729176697012836117591274469689703605851329347606660970364592320383545926737548343453032393836143018243549895982355632834039616517427038627834647514835621549808285866939947630589916264827993839225255964447323739869301727652142888476989534293405194851132223506049007393986164669970213411914736708599926460934672517105992888109395835744712090210705077042304515982074234214902081165756916394218657364622611036950850317842467534524640551508567498476527799135012498106960800986339305627568143832228998274720399357900881160869574298200526673644359978275911420529340290281337172983642805750442733971874907388585024233131246993248449348447798063638964621866179021143081095085025503659184311484572904868929573394271943810161040917720705364194698851572979557423104099810990520891943144897468951141158465615898801586510234232941108933750993675971108906058266946153946426793714409250665498084548800940229119123689165673435510998081851832138672016758475003330303244753560713104642061062532965552420200379097251762173057143611351330779078561300675936250264528557887705708216277765564447034719882384704578059590271871446723845845876095551343433734993641850139972093514157227384644321359492228034872110754717725505990041419968320982184009736047404664698545574676722845642469377579684577463387643576523866567651545872494849210430738292085566009473701636844236561631720497505670616126126228288128567959245472715055909322025623443157945557588433774423259962027665568679014928417440098884686472835003635064203675190245591536664116716013780683423375830452148581620422283406903231627673829581117218429614345097319919509665095800832164399433598198303005355210168483209665645890615227335615885733698161326675965176342818126788879949831219522393736832196233034273912237894703947119893361610431801741859182619413026380814904149411395715424845526751749897367939471922413411104344954817278567203697228440895548412194049190096740600754759414099485560679201737239893412159805524935228393189501628177580806605123516881584669316559572243326444952526614390161869670194679370746578783520777964534430826003474492327065848703010839941933702792843636947597169624487479633490716297919278283924336051171125173390514340211485986771341317695662609385981001064330685156360217128009508795064420734725085276835764072254526636085265420171850532231153074398723449247469297383237823645016024016698275306517828570298457529271060213515915849613543284230182539603084709748189748715015893796186599526973302590583111635600308152876363552342835542395702365473812881849660189438808102268730760561982136899793568333279070050467332459331492217292901616811329886944154030174618492870801696798012401504837004300151080262185593536556926032321716218944045496528059560680469968503806884654221696579462887884549094354744697147860510525554722908215025757709591601006553764470802295063423959378597291859486776568414662780029414968616716405574225318789582113775452562268549791218816380075442144759075270031038733413570258043096103204189221258291539994027556557932757385570099015865988136568192292993277666442472476004966052756552262376584218250107173630519520127708632197113259307108002116260848768009897519326819086741509262079505830440185120340345476665476876015963195968564146970000840050279174684107249996424646846709263909500984038989266519086629584201165011313821746080798217271613466045831430573379720754983252772735701517415644107009190021756901413255452083851172689243239787441893296877687607188160045889103064450220112032660322860009513219915089923442465457852247830126362950634758428094500090559349053450554978641359288334746176085116622207486143576136532971423572971474824948315717101146369344594506167817037047367952919670126051074844879122756888036514496122915163158739358696429391279787631667231982157332183875352744322658390067923068783142418180413367923887994916475133497840379888979136238489492549754104200603241282998641522265180183969349390773798751231179252940582472662534452156976389497896163776562334969571820374963231730155637000859084792616159388111458682331542062524126463270927096567033967646806345997651714030206938043017866422598720379650255267103135181029725522824173667223005005956622084476046594724801331127690862931955072620609768122609492200016274997302547686133530731771026783069456504417892875990811438415388912281533923208836503528158376974305589248207003011542860148056500699256690047242689604682570042507131060916122071004295770833332550550959646376217385462728527471519426327144981584895242354067942147684419130453271846733847016800140716164684902762656060017479534766857090075333130785399514007823189292280420054428058335418892111598198323725195089256894194423271463581040565330458863358780594733672031207935169663973461417397456682108438613856009658231883519421311541331062392982065172954157740972777875279076235989133537090616264205041735119315256591048489397451582803117540244901041596011572252016410093813043311763957125360530189523086414520775117897803017359759755918761120661964229951391272022844568115709681010745699558092244182636149941968550752510963777541855526039566904223492184742442415108150573429295112121074558691071459803621527462158459281205796136763133237206618070179162400572097968222225579693520434804001078129834263311190983105341647193880845032001036013906831910417425537060421917037776831499690028484487608892550215277052843713925097141066580934832291144772699896592318187881397487618628407464404726371958746889801006967058434712452513654998489247997396519590839973844836590229719312662016107034716131742051264777923786071422946642248955209502237042797408520992379100653043947574890109691734811150262370605855352802990622107420363251753841123358488739814461131931509309503250272819087943592482548941002072322742592113229458989155414576882945472137072117131107348943503052628926550578603378135546164969562738794855191070603649886957101047205125545365097446173802077312819264499260921980261712381438276783023718961505870913782181678968556981119114761061749603487789021234351480554240916995500925085581799257390140430887956302975039232537684606421697721245327503151815045317133575345267772997705621611092322316584008854609900059525786127491445164077298480022067516740584170640958560282173346171421021240476864316020869991303849777949507635494823535148073567948776013259944863789071250274094781172017611183488949467638990764561835543339770115598852127864747927593425278701478983339292143808037580338854953825140569848738465442422296297115844031147657933720923348259850343270981447957725281283251575210884379277396544853091588066147500767394216277574528388154367487496202675365211545927535679826338300762203999805865078922881117614075508639970105210362529078131235053935776277799777156124039982663292957107777014315664531082935567590594438038644948684878047369175335850190728034423415567437026596649903631759650229608853476218063200954723793729552136860989699202180927040314128844242897146780208989300468971829120480258889727086474852984131805198017960267316201275455304447545159127325926367622712210031410440592904247334315006277354997903012191843556958589400746991699928565868982916963644515782856936486555213445315671326070586965952979315144440051162476506919405175707845765948841065732312630247879975271696693975576789371034954597229859547169016878494198291864804662266568037769530806682510959866252480411655358661376404239747629718262338831723608211323813186177349327264047097081902297375107408483831761613403585437694932715898478651750593813607284045818671093097791028783891753957399569290451845094422371027613791049553155352400465898104492683429848472647014999038189863866652242535061533608104582265565619740313070303434942260190595266872634125382539955961906519047648737405347889231867680719895726577036971894168352302439513119156297330112530863437561170731339823189396030483940604295866867661881925872811904426565575974108023854030307995399803504919954309199205620643678797875341105616420578778549137279303556647774747904386289069918586610199067680397318290027446136452853887411063149531017063016487664766894562995114426536665257384600652612339105531771763604942796979994081749451051564462053902548475329508420567614010257385194255752404852990626668503882702321081552833334189064940411236162177415542646306657879701638225846819641559331503869570478300728359550722247633657266186527378418988058125877851675873065404877947068884954524435266443677363806128187598478284781162400192815684789194130928225342061189667678436955592314029532523443564312864395180797205194443182582296990089849210256281742789599816564405498708505809068232599269796983166289645067775680676349785508079366370377508867952023639132277184078760102624143999409864366259676080178479440762650812820996808250706011270458271110401216081033468433599756810052300680090533031869137755487147412418363695236497660154240781117127535472690364274121187395812174748316106972095711043200660217033907473298527931811850040671699897468023940727284236895417544041542634282789615295609315498820257863586537876807347301866172728148779618036246513906610120509645798403438807057983822794764967845996104732602471687131680875835739944545292913109017954851729008049320612659794179273304451936203430062558623488991230613484731842047748031930046206214293701934733289315660941877825674623013044976656984493079447365514851655996715562127288212548512199061121171326327035793823136001058904347384600132467055020233324397965303562507574959449857090583956089411083697941685200333171508174974120473882704105460836438825336779121435085776141108595389269773498914941282349163578654365201184156850905061524960696316686572151238321944050222102834720526201005306854724341182324845324339380417115340247016551262116561466841952897414833669360230402406207593536304459905447770884261364919070244049347822176085258518605862552031537188311194272793811520062197530096506273511957422216393018548551133485705105478304589893533449983372456537217862339860236987786182991940472896158588818771715696618318532821912437563318895472722125300159988382408313053583142001754904806289161893270369758432219497069331057204407938627577317976795084259645948197185460588308794601663973130918842558635092875710510803899408427929955354251729821624075708377209567319009644231185356157860937608707949318693685523529964809390421477524012818925572051849549404948065397179344867327873820924776313683412969942445871841750197998956944583988172952527384758531006881147612235760061489063785843200077045532533693133682766877587153967126533245055083184580088478038880964101855860787928526427810924269078354590253438193267125112249640395225413759599410095537393315096880634214962092223476484512239761350274595906183490077649121640340577543049872219893672997189070273025444587086892024617546293009745852871054344864999714180460503598984656636080305448033011204616462415328258734475740944613186847330405866924155476536643555268308985677675189204251872285530553753270588079951702692821490061796350585440884897273136296748079237281061201730263446785918208163559022277099928034269353191432979878767583205519578578680142424977518887502279865432150138408601041590674070852161715838287314845004475193505009097139495441144964491520419812112943347762021314479944629803410315448503637015232201424162102172042353368991604388529302835643894807900403939099496779138975828200692831270900125286504983198981131850428426626388634306628147715348484799412520220502127650144281414291110849366251236137909477191671879443819324792103522578578981589861191470374632075623042638510892631043978973791117562028822988603373404528549110399008901330900001639663140766891978973866545859267163283968804243082677746407486690333382357852803029205316250786372027352401279917325356049760329691815287465515861432475445134315760488599151359612194531659226780890922478869476704373970142201799471796171069469155460303939157480546902482914904809637287812628823350943055340626524537705605860607123543514147627402892974971474695124929224587316143282813078134259715755874166226886639761241958303216758081756343151059034465727808158237727083477250172131723175913969363345613184772347391972758616359321472961615251054097478331803283943119271236906931838600517738023614963506180448816429303731408813472728194616377915562513839596315245665839035384013107602508855462982845024007564804244808183787719501977665104575564955855452380623917958286934013635399635386799139738885744026208643555733192550233018617519796373900218160253715079497536945970081448511486552954880235684149292637095479805657793526641836942953556030448938100566135488777816053399679812236298414080466484111553048909925405564221080693430677323692416701403136490296618462219914180165853979529120989108732127447919015660119791764944055093720432182443660567023243953442717917734434745887524330228883096195428589482113612401933744871948775253073256175695065948491196623275609248486218928930630720014458659656620372174533034674851914017293851299853356761421774207157753763062108734095761527731504816182230698263329718044172352940960401848786856446704147473341617582550766381805280035534365537101649909480324084538465935652556592343133304531310960762706582880810890164872235738277858018208100585017192591940107365694147850021144074960151750977922277475054231280238071380132922630031388810003058618341857988563600696352032768373772207174019338037150010172135316332822485572928625900867084895176424334923295472983631189081040608867808103342979361817271509076162962425764649423773053361337000795043300057821136975708033349971780757462612817451936476985313101065941174120223846138802833479053548050168994701398932878410935893930263591364220001350792578627890518190974194915922929471222724056987360347576127028063851430685070191554824889204787497075255715114756068348043312951423336226573427546320770687478216690059941843039654925833872394284706193840166245911065231312982554307382133809424606201114368311775989016166176735515013137458590457430175297927725380889477662676672922768291290210623533667380787938440444492066387820543789425778759722985012905006275414217229771257192448231075191133569050516005974828492850799335010442380702933995894428545954823907382108078908201372443027680524180955718632634456095058232643177929272302457779608249668242249563949011193062759659193539268246602035337315855377807079570775032932324856426603886713144724926733597410857964414834486074834339408968171015718249253329218676176632363499282803018754729458642932964977082001814250715552768029507296384539692170940500896499077836100163156671350483300634950835996519804994903453395386917239109313131073237251682613183102522688163562503544350192833173407511428998836673915322924453952905659935253419223310012827360616431298787733735941602616401070278650918887859660578819381268636174113371434690509389518570740904855277948980735752578383998565965134018417809998020136621470459649714960371334441675720405626047521448316311472097507086440601466310237278881924982396899177127825759357766525907897023477244397233952327190876074647812541335550793399892436305574076377201205885154146528842668611794207703169503325137756954516864020375356404048901996106570649840068138040523929174860894629277262911390777621216900175939077636283754496472021819475600424698972068704633158165401236074744941233328430091613693799208537806749238691988881474333634450510282857532836596462936584714877105377464819423736548949620857398072945789849597371355085013875575279223597123959366095935895198076370696448682663366019180421596720953094494798392463307968005713436107696934395179963962103801972563986304850440903184517322237905449602576126286580935371387114734455517866068027292211872642726409183470816400864348403758227701371489149179385323944090341421920843901370935836974420376506117926829834856673910606835606154023738534313720737284719694259806390496418616948949884736757201735299960915030432402031110429888021441133381421850972489264756200224859636849901768220035576851478587520036752005265408107240152936949006997002136007395625518242763120260905472472022512360099468493176440040485770793351933294155208018215192006050293479604905863089505495857282920208907863065522579360262171112864263621490786195782688311686810507388818148124473947833735698016838761669674752368269529657713329277714856012395451233291544329810792251848051696429926847661517407944271465118617243378101364179049283305170021949743768377833074532034837795202449469778577130972322061849405376175414029167825469625154286120568053479842518432329969213706845237694937510603780689936399012229375952960825898851199306484085427221482367174885407727408860538866989264114947295074375916545576264550120221203936367255273980918765402896972103379214895370052674201698424764692677110244274711149241051984631536420738687620083780244633635381845991241268435044929744584173071252683076766972010543306307632438728585414854116492123589264380726549226991706721090000073484883084330075140583316332636792105795165817403156974368160764102264990175844717252929754174197978424024863486823842985320692776834084429523490041551729642235157392574890994233050503628642596671005222266870484184760598719752794068860854543743352615575498480067113450753870768884696755299782793840489791772685038138534668481864715278382621773156723193264710546358496155360204014683563138003375017586332190592722926954985333354005688810554414115838341437037598980690019763960387458352219570461306969682634474115439668397752292482102270276956442469596435745361070971082925754649699909551029136914878190097112008063951169281992884199201469868075168121217837825609143126688242305376347466595648225576358783812905019716887684575401502278096325256942891037828634681193229556325002595322097203215523905037237714950868207199723083190095867187654235443936099724808321745369733692455369638189070673606548813199654329426630307901213781929588838548308807311142098061401269036348110993120073970672425419001596565390962890051969423761620565639306415377108294196211600777699855500187375790651891836738597382301553707909439078897598904146164826542676349623310381112595913223774358843689004522298900865929572463268015136175903563655744962611287177118766521087741152955875146232625923185161165313775456384200305019019584563499776999534871605945831974648639904092218915648978878734504212633828389595304845303475531368162284996283243379269302480873990431529871034222833922369648003564394391705495646435666454448237960016406934580576930237672009842322911070547443132341549983618071496303293803569067055159878406452576046182055635070999806499306749205462707349803564734058265439081160997567770328608093288105482724841116852575031540871240318137468708536529286033028515205634054365020679369054684483448450271310422406166750522105201725696967622088280498766097458097278813480086751149465347895657369894661357262669072286186504870520113629678234296326733947773556556656194071192990892150171878719296051447007546639557824520795048414912547556063668057234043895195068450775645333090113083301116297344221449678038929932476385443500672138963088858326718889879207159757006083154085539214385164425382988849757072518283480855887709635733875189126545706749827914739418784796751453779890704026594464388694396624327726125103923298847979149120766652525623497396570286025996918315873706505874347945330122167613844737700567120498173558530809094277466856625005943692559906088515132301136880500940301121289562923192092047417952456233021410936874219542516200313982969741882449626734379470782387364741899307675867590999814039736963184985892761652414050679595436476620274442609646855036340061434697468235973719102546970906601682135732112411750872366148183522864263320436872023567228414178607894313501057900469303323663954825426684941383942298007207338963499343070972344456796709360885037475770271688025507186317067571319248940972359772887952942830556518058889345390372088711054222203275950623541161328481466472895966237587759034278501663304979276629900595557813786030721681950714849262579459961064665390249169863715274855276562497908035079055310400243502190781384845460712968410423579803923182590076273133583016571487515670524868906496763033268975886905432833376504728693498865370810040273487119924168664260920529509012196400665206715515576871958503738147278038533952026175224890520648612992723468534108610440499366828364119395881468939078262363791812185533145300697289903204052681370833163260872138225870813548003333440616532490022357781894348621532677848279438351449459104567489823579617836522878161809220131043186190981949196723160714396561125596893994052543845272062587566437833803124240425286161324228081517845165956335893633304602232041943130398809489853155227002885409182013270877159867060643538711362027493923533831782738164278049186976310325591253306921418436954180387016926563874515217563935212665711181494010728973687021318923277936824693929067457440417411175022723812292276572589491930947602163308850823849265633489207259755816997065486686593024365410668572627174867053775664511308750511677426889284207099456248850221361630766253721274006629696179084164711517160983537811462056436566699174540184158998799914953870234254005733925879287704796121318400051705609126786843198386880873438277084901369733571500521306285689796559674439120420414000756837451991643912336842618646066864384364439323117114044155374420616817900138113298279465706120168396780491919074253136507827673648820382111646889207473464307741224691710455951116066370598953895897821788807132083788189975712075972814990132778292688707471949780290712618178704432792754497638061292931139176055889153000321306732043584459651365073627573271383655959465476676176962013035250861705900532472685468078021592809935972348645165067314305034882141088318954985113050752091529914091969494260631176467789981106538740447104351462544779839653996892549376377699795821107861747973470928059372872336284991158765812938197624676713612228774052750006153168586536835706869197243360817327972689982830132095201418621687060825093382963607813588711748381978923149855482398649490883336156892949243964577493671699053979734857366306893964295642393738864468486023153264221644837305714393731318187688634047257013018044566516800497640989311899662620587318127269706789415626035075774383118927960493562282246877190647142419927835519091269908651154012086691808894058746166798091894371677999112424647801870542625620330983362075164322339759904304690868918712855612527540666014553235846927431046941943960942239677646567764554419368381970428151027697471682969066792955080818969320760864373436080588301164620030158022439060121129101891344707253789155062388814439619307210222993527135350583731309100708240928430508139736836461588910175721967644248696507296505307529767476159970701537635862433173788932854251748277144448298152377710280951393480953102211890654642911102224692243447451853995613437910280171507064805727019699640226658270754705536361906468607861948434303091566867757690188930862013258506884010626196102172004971049169693243215591192620203440590912249334734315962558087343923228724937461976625127644272451668324521268469897564691595840823799191364371486831425687648652255915076450520550507856628305416132953998593357236027343558984320663465826027243581319986036782694821623371425075168613562112564854073668783746788463404246062898413314768159024890338404184449042425624160680668955057328189367462271659422685764505936911211078685519314161641686080240577667543163235379397400558315113165212198577210051437189861271742709893199979006829521883242379648886809216566960341157563951520466662497629222653979538401844513590296714169753193364492388846779386338834107206345457288208398667643206312030674561662848045475841905983539307502307854586295855956395333013769759510693289373907451921107117354400054543881067666708238402110739927477190464691531806922324156140619728833501796426420870680859140861789624744519444577587847067256417082186538108595191771822529383661055003138448661187429767910839307526795732661604571359090161263091405722108608950295409285731647927174497390495627455622179624189401164416737972079785211929541124035945645642246521260153810381918774213182029083845231179958052795588914274411944946403368323151080598434037428282147411287265977384531502625160833920091146875747197142009833630981623771135044200178676335634502554785290690624503719591406521004288605701766425913651888011227728162760298756659467058122332330578063821614698486272065698889976798689664761269075536620538270294901418301528786393770647631177511609800172404548923105729184054444297176855625779562925813026126691397824981827847676965654188738939165976470034312632966083681486033761570692569956436435549520955247156043692689152136119618837561726418739366526881525448727241037510577795634904698403137816444932808680982786258150881802958243919809137314279462034637247620638095386717537297219536268899423466480492249885405143853385252441798121251409856834569683062824707645252841710929518129746298968408523653130470304736294702321960496092563674898368232245603977786217924177929529681085868425397568685477557603070976760959959643608520355762302605415128594967340544817100152444910535632368166398390536564953982522364086052706936786232773350593386637753605237654057905260494874929714546426121203793949075947872486636542820549150780103374240149745452480418146992875283634829259136650589752914252909298109178251131140946889916949704035971697860718194946410726831435029827722187702852852736911375716231772187483862830040392573126336283760263263107781754605340014857210124444908020821613587515464561534900018394499189755142380885884364617994476242279740595589688812875291732806627673396024467622959761964302688992133375787588084180376781154449235823207571827088435191590680532768314562204391352319108983833245611694692634450106449133231658478178121429574759913689603090942073660973674773302615794387924385513687641047860173333825780263512740051429644514502439191203004024643776249200001774489065320286337704355800159900767670541154983142886776914824844792652358360430423322747951514975875491149344852186389270351048050324993627019807499582049345726228526877065412408370825598045319179846455569808420046241458979430770021825831992654358200490287337849712788774068044372501027329752976593317754518149830002574624550199248068915555673131190492208862408641294050594400244320037809006299230632155273980650974443924950729675760852284204352101022599857806746155760109833092086731677602530119472226905293411943200693346133457121734876290102040790576559838121195191798022694557296808720459504536997775366146539570475070704008570992309815392040823451763716360128467248514621362138627554584823912647654489947788687890110397959085351922848968301544414157691251191398908596764018866833370271528939405839759838471431690020275741910500393779704188335384517204379275863963204590906949937137174343971955706828273330353232091965653977739167565347682432427074071076994221029763997641617314597115314987008936971314472398732271402903238064374278746677019644431204303097150391238268679623883388135169308963346231055779030159100016462101212453928639078127000408820718413186070794392450888756377507046948711327167296691540929652130700726950334437234489580571445324974469504418070312258342660740198515455160193698855490472255112124492282465195032870608549038859580069171943683494382495907049692952520015784901636877934631982230525535133280687817627260200501348047995719312413434756704705176481671945320893323105466207196198858207710657559992900530506241477749917224550640584601836568081659079230091827576928705876245184891007295984673130908140738249988755460162822380514660234564857339760760328589919794738372350547334420256141558953645757391446040086510743169114166647216357150640507484354016517873490727202348971432828332222565261394983672404071658035581304879582361509282304673393571817592934801046065788839636222730427780883777747900215080452268613991905867157280400628895920630406303570304713940386232336537709782087562344282573500757023781174090106496956667635522457282547373010790503656756572623477389979316436241631968306851212741514730768340071659382199316622375077536813658916529288901143704042858381484369855037750976948266891310647389524503034108297906674726564190345151099792111909018233385274088582522694097956231732252125058348399951721676007984752879481912754349696059145754511498736810809947361310833524842142483374150355009904297491447270298182713154001347923866951608118982609977458760987038578050610460081263505418659159841540096803872846283808607244915754777909209918431488813970590243964404615629261525513937915982449921640575779243236568015539486556633823394777278151657713313738876856716430147794398289888647768654686120146309530297740474329318685710101261563395474738694167367180680455197800773412081488464980427394260036064803227679533474904959010167247751142597851320709874588389564665015482314831535860467488390138010723773416313900320665985576239716759389426504210323570269489995749571056940888782514310307279372813016197864222511093858262578020355645733489020631682859540609353928377478290612135899828702266252303713511593427721629927660130225596361581257001734676854307948430038740496224092381130502469653268897165533373474897975612474605340301314257144006838159363237897211243340845213502474316783750755984775483693993314402662803399367233353994239708210659622772335598137725886724497336898775571835057708239854946896234636789333642998596063371448497260059030723031723878879483959574808544172579995608939832457395685078868330265696795729282884245489740716424167542355774796516231826160443972776338025295857315038584336560883150673035385713751828441013934792905813213143401289841123811791741508513747153681505230758979850545143281171055707892455409376093997538216310498966575186127358057354168868075908821238976858749529080456283556060320544408573848802929742326731799217921585099433688067220114236035920383591318528837992229364468458136921948954285997585550924548297460994261465840116040713144181251844835549824347861258773683176263606829606743346712240821274069238251704986741310999432457812426185859382072153441080949672939365435992992166925680157736628382090551854335074177430644002009368585655405820608315145095994231182737201483056606997450583425317697852171563733605171455328065573268376940117371596105953133673289476677056600743352728841562308993716169349484345137744338182129647207135413466162426165684180136918679566193746497964011316706781301306740785851458336369786295344922669724297387359600230513839089382167573534288831115343886077115841012608402793260350030497986936071611930063035531686176695408762745841958024893845592747426662901151399585427432228418567528852682476997383005152366301429707356407966340934307205444592944166043017091667726634651001040629497681859331138722493725766997458047486321978778675070749346832428132320028563990243103753862857859031430814316635965660636724445887841196300475219609896114665670461661965857958608230236237265456196232351333987100281922460558000617021185663603908376708774199419179757587803874258223542507260768423131777365747166184532102864361887631039058862777538358105261570798159532465421219333848697171713443003569279805979806584819478444186895207623257123891848557082653686484596261941025534411724315850675828969578664755282654745520170561694731619091378424528555083749986974628462441851746925113185783800942383099592730014379631788106640752656413285527599937815659998299057789338940709890272316174263915802806271258132244676965478826130154597256436580597522266815905177099544941674800252508655123292736853840220541076878243124221734650743648489885811309469961660768138084832100760298059647486651091479181040797451929474963827631404150893141913527711114092797963735878418469311508022161488947895382975813905488416509506198888175250049346309235172163451072940061397561015767357833581439641348586669793255467552743981625317117051783846127876677915909435852290185594414097360382473526414101420125844346539279549380771613130049354045822991196599048231968942971113400662261338707901121777192800902053481770200784922180008962071904027616066250977719146519955065207269825262961692389857383725276678803119804157372049115040419550034540751214772548913023171527256836393423970955185962240844422859680370683873599390956821163109016263499722107996920959591872168774092576023813746064019004439088205376152540830843433717251532444841044959172286006939400196508713953680808663031773226793267230556666137873625472540711944241549825133623079262264250215556361950748145602973171499016178509686829392809155307775871996856492598448000972756230062491203319102209436743150941528360497604249124007433867054842967173100788318249828754963931667025027746788532642118881181265363574426579320961141632379639337080507149962844678350924476089886299103237017446603066852083753411107618926357413228510212466521623559726417784006551543989647685179904276278737094559839763621783748065058224846829525718280193943285818323838509638260577607219095571804965562400363618196133266540291480466578993911884315236976126547207249468384771866863764707951501679888523647256561614994500430461361175875873212192074870916565854086150590501448285220061948019716477217370897801360748261037097132233419539663732229831769148679130156018017282266859584821119026703128759822038793865107614648223488595431499867196457239944436793120036353376390265921040853370558115920204856153623606185455085601092003326379118909740168679770964970728144121984373847161273179508597512923549070504044485952839908691989543010548159265169425174024410654705651241481394223512246515245184278725505549979575890148046940786331570695653370448013322853755173109339013149073778068082941703008387251704087161300241426515670382584778486655646205035500397124541220748160090830548708914876453027362772286355160596348667541043615460456502804182760339783892370320074501297835069809820720686809978584796418189571346900827203697841067626694580153859941438272493802604590916922499681549468857922086037959330020510077759708128867343877054154839981877357036911464357431334918778149237116889066444150575298357377615725005072735285417668076020171087209175318817569502004120639996527914895684904096985416871810466870806825921121211581877726017665343393140365412821872777595352699650878065500718298660025681949496936158558053647708412557572686365856879955037132748308213682516514847218146206908079826501166916508902799610377867824250661922935863218585867529297071887723353650310759541958379998591060310970138697276956154148512828512018592823462931436419089035135391172253458071537577210767335781087481000688264874185373057865794625442432028956031690569582438499107189857646755737057683282669709226684081224127315587420003402831676225254211622245262811155377763710772041266478734492110553742943246443477861599574335808724673659958297826820796864573389313485512679181671412598512233963240974050677475350857957935415456275880076622586855454916033712719299949258377767164982213780858568278666930063356687942073435673249182399873167231046973355750090445922630735145317561763635160977586178615713390541816141830737088475288453035731152380304883887396587879843099626779335278814357107839573043592788200943799657651192275520661194419020137537644243550072590983364183922886611576575040723064720092801036889088253119369310010054994109430667710449945467023536445195822786134649856883898313237946069540134810517966675482834172144646239310070713710971934528338670339899886521355478504372675313182726860661554375253478638025589591569449921827300840913702853371790948635577956286442621959686276722867748748220931922052974586574197402431919471056347364249517777802088288237415836217035905810591892645674878399810208718168785623222164857896641074027719908166405255827092863871497267222541748887118363757456660630736343737961230058313288688121870542815818630129946345685509018654393149824790858490673760280532530128715545130056433231023327276932924475996702722341143585640853806938848991184889178769601868172956585876337069086948764391434559420864164504860111381593950209655461300245993584960499004553046445053468764170702315209735485304331163695533339553257483777017498726602935316603947498662394595848510309052135991562347002484335835753927047421556954142369684868794787802555843620671276687314915366479990419228813080699471993268022760614467428699948521466964672889779642256654250930354511617020252258100906412126216656122664439929104493884229272815523399724585942469293855763190681513394361808270067947133911339936788145629264331400783775795085122500920621338261858159239273443463801844595834229709714426680599831389002157995799636770121153282350373383535120040544775549911425991313851440355589691001147904326815122587056063671940861202381174469306905376049543054283028260171318671566627685230943040514448325890740695264644658554736102963089980492075368432587921024426928744797249434561196608782867121704985585015605393221779643590210967437948169260876274822771456681528514390402109564692101007377004191798704794954463714368096583730407368586507129490510697077012831079203498448387400646859841564246888206062042367493283337802156682946870298262679137185746661689948735159449220991327398757498934289757115917740357182765969278231237302579127913692283460539378873734585658802546379257837085367139143979098233217266665997914049574309597689651130605514642605520860246565170425223669750647220729254458389031953880993715901923311372006369367722468567541760389567119053119609165752156433619162787545716757766539172541546583210313929586477803629771973461801625622389557827773860015406052509560247595775663717177539042992787791819883512811082269165987528734527591662674764536933744350555569214454225497091795899916866079903638783364280016722293873941225970436500826305454709883822949528707251128959199127562211209324145948953689361746195974365245327489405740178473343090324587126791943772809406494892295966353133185938084396320050484650832355969240559438302877362037136084307660626859789655731125356929247692143751718241055414325141820666057430802545694567260918039469747566788602275578927243395687863441514188500069199372443969712184010221495079515529816886161807326992814515594228589328012594195348610011867822945061715832746181729108042665529795126368480880885117926528473709988615102237282585835273437855847167514277212705680800911256923644421750610772361531104639686196895471015870994215983578391854715603783267569783790002274737928806524911846836726245700531341961469023899597766198915230829268745142984155280923285763190752152032165503172884896584795891439104174318356027967671615508680070316897201950927062913933616820216923780750907122992552203476350725882008087858454525769183297939334881942301201909336940019720890424150511413145824889251835143064684975260719332250593302084097319121246491991333105582678721032456349682028432378404288925053066342734761417322664783768627801010699877134918354315274974401962934891134246999970378431670444310240546195006257599777113597761004902115441595890169138992051835306152511666052506274943961026066883540335550670234737581527973875384095802648618477392389841291424756841156976429681882756011663943448162639012637954473031457239300997590030223111522083990911603549131354165481431604505058276055858695793346917196121871900500479256989850678340807258629202829678722554954770713597256668933661790265674643933655357427747653349409364673338637254108284321254356191030395981630429812436062401172631751369714245209611338484630672788813607003743492828115423979575719985517731197304492428026447001658806746926268409610956383260400492739149694350750735405038178836662599745590830570335950367918308179204423246659551188701880881050186061058820726049778125353862825356977898481536407787983828347996675524443281684006184717335228674566768099006391294287873140127553574020535103286614436933890220852683202381476502486902244078668248793342025668063773381973576747754118124234914050126148872257546462770116815126894518063328250543502062038263971999100502816101009282499524085258168977671029340969731853718960116793650160142499636370305438135406093852581834765156486664523219943483747547866737954544566748758319797875739447627365487080817960452328470581737934592717062473317773088085827299988177786305326330171273216528284806118037937132964128902754074136595550475637087007055016120115032513005089870488020678513755605638632491981181000243066443958224881544741248293935521182647449286771268826602409099186131030076078488094768086228223698421190651087700298092321895319716384643916475822157607745557155509046943239805988333550902081168302316092606944165618782528523974504584394651634117071485402546578537690298925248661938075119716514644038114524197126603695795739977061989803404024479412743364298663091681548913389242082322518848087404074135269017283728622837041936742215075229670317672881228072080616735469441101932739998515987529197146120470138560669269552879018543943325717695235282578162118622166212654974682011208110560753037768350596713965507210604140537331836972613382844307966826890049845304769634982510843998005598672532358391643822815939818289711470752835661071944766100246503190867778830892431000702203621226508891138869315361352290475018071014986479337105405060620396074217174651210358546938679753923381965593662205678850155972014748769664761809596014170561548083828589610802894365467715464686707135260326501531687507850974949122754638479800673115975431352203877682452824301362670819803875498218453688114145371229245897486291102736272538876807808337941946142491897656937220303748431936880716880334167934250675860057045440691184327662536025248592210958939575915967033034686801462299259035288589128409155674143540005453085439584707969296233556426998856487639939248005931911685924743230217698718298886303135445277706721923177093051829382536792485820425545173225301332426246349682199930073945037717957684896476539628747425105729723220916286687140945755886014276463415759758517184109460846933661849505541282521936385441233547688699430423970886947255187020457571696174825116079273930090701998068926455335115989255524465729462961071673596573046282404437865776357568192136937791303028476182560226334015934865157698573082300763290206298828168663982302646516046606172018088327782492091745965053734055252541253215505021649511406073481585755850617120273938670070780679611340661634914035059625703649441127916598104932959399622563330293990742605710274395715304186799833756268659227455490696484475362191352079212991540741551339211998960949857424021234344764942968102927587043508162142620779036363797403370943854031104085144299075446294119799015855591581861499776714512593131843182426612721830714917311565235734999969699778434951694349373241315882388172980117960663202023052341231861439665393145365390184567599978983238205245810360535966152409147865318016977263973264096945098041731946054039359921253774910463724007726832579094034449666549411771005417024229090726857321655265152987230928156459090172740737197029949635378968586651723614103191864504532136542665635484696531148417879082057723357230158705579168817558309023990467733085408581777059067543139994843040756501060550166921952148440145577907834926403924997811566407212942247808830913441704556583689004165166440657616381421044383719166586691618671000629174261902885560516813159997020781030473868418083292731008971013349990627960626278925903091508637426522525120828613125457182239755841349144329401891165746853978601686674886274981907131433461382248507045055732084931758537726994287214983787617682365622423532938928755190783582236419297391741226677478128507540206791596892210790175812359983949186334390200835024012268457054860712067194087556737472384129435560522772380010786083246690681433221726141739368740075581426389324282036309230845221432725660642375113894387232091929172928784382986913043027817407971375238167123643122841381239989733241274803447737618408773899776919533722278176323409867138983565985579929182158478210711955970640490121525810888734686745844608658384524039472280329885615619729115111362186321452311978700420085350540895970421831159841645525546693992264849509794962732606609751854068226383509211928853130049119836970715021009057278663053087581815596532440045019654987854400778761885824598318984689056804308656979633132715595192512771533260266242657781939308568028739091357238326810102336173916781847876474241506530876544191996079205915187363172185480723886380236298883992171085784234400292324917848375225470071147067170635870083239276105250393366918019776859787817359795125343333010670435988148744456689432728966415474514800091131074759594189121328567300234291957582254781886176641861485623814394223263170736864128052824378162328790483560576777352985794744804043845132899136252189110932902966292879653266210191660354502783737223896629229027262785894592536284270569132568293651975831560170233129328319158075961602290010651632690456960856605061446997876121599685162082647692119807937734856671354308761799855097648213390792172730579692286343779308980138482341051343649333170861294925646943054403041113447744750166332177623147783616144952593578799613346623685094639848929990311058363318426660982690638075647165813209474815636703195612861483684962048293326982250143531973946751123617254529307483744379977846459377487331898537182692672942995728773444901327950399541099376609542422786903460189084444427786110932474354309006335913582264539117509735116449552931466477464756154178516906156470990833496342761238881410751882981381202879073385217312217525539149120960710875597485050838124082362366642655346058927389014533198941878658390048419181529374170446243409336583489098726692144196100173553839522434967732581522834717761068480773181926841906319013707140781943901268105530352318441277228212860585514183622262559525948179991743425582652362058868737707732067319566534123256159091270643291018206188926512270535799548440142697933742030777742429949339962877581688557244044054504582031671034343963452735905957768303350893502082148148616896145822325137064927945618897730498139041456911595753924247644415245213758842583828045679869681266291207127125223705635567658513555091704073232486509167062256762808869440031952247521182695515997114386597316750533392810370670549325805834425438042312274938542220027922575997779587232140731629255380036214481034472563078081135625872320193627627603377165285045624907695031111666654956718974625228047989013751264309755540695990803380011741980113560972716960347689579616545657209136373491368141381394706997252131522772098909444990764647121070832643849513172983364212289041150431869685278149077149536771242025875734578343561478427406748119725566388257850526674497626426464567329983981305600032339940705893272607357982158093450779462194361028583332787516794235599157177999640232475112859476451102181779553219820513155443748811430305120479708214632080497419268386471174473356145904429410370425801549303113738245078518288901140502719890939165358466168979328939503758809855017346888572476501182459227275486174080863261572159935721148010474549929265336373231836848915656424935648218573683967252307418295197937258763156024172881267839493985597494730018559949934302486827501248113517053932278846432978770091855206420515621219599951608124565237103955896417206029032148385474357328973793335227700397986801243207071162005913596791281116878627780869819690778029507167639526458406881665269248801456674080054698886892531423952557791703017684314355924528856525768979930863356148600560338619942364348697943260349658983249695103834574420717812389178586288363636627566776992520289658252853749567677919010640661367526747209650924631205242389453235352423900080566485591988267759961799672898280571560543135310492052118346899828915370459685194284220669291790246467434625109934830798028689898429868436694659009907229343861355135703795410102983340225948922557602935077857686937755998626462412883809343250402095641290852982992882233760464454233990048145617916226180671444861559736867848157431412791991216055503150230646842962413193963434878562975556131542775432845652830513578012481253068604062438779137033579999481130770010955521222246013028989808899252652184856816502544617790613813050672489607235008798441412480371143722791244459804771746977247135841924149265536759027866550048201892526745603091220026371194108481870931638648187414510041915007802512298607158854288930897320566931969940405384339380868902047788023302416664820247601322498183610538405749110975025368839786173162023692190544549329512038168096922887900226854229988687414232977796540862207175708082967194217651122737854917895274126290542366034177441072095332217836993165073810624311677024675516038027198390610553908768482087252607281435085832849189308217977894135997694453451082979317387574637618861121536664007468603668018164772042239033745144549396680942524378016181393903271169292614998793326371107053913694264870301514304163901563113653239691706202039469681751508377298028553799617494291508323007067747089958279987816619351569378476244657794292049350590770292318867181961315952141201427366578097016629176426481380230324041740345547411959476943289980427106176471929532726420016799142674712717087048294141878174483749656516622191695792381334610873297027893112450884060155740741390553165831589035375980283640704220505542088141624785444495605566675209210468241598765646389443403049042372798157909568878533270735495599117948263124064582627817509793180758052481376854891777539143748239799956493723163052142286988358323747593221039623941298651280658726737512255414982651089417932784099168901871170719221091906510494869860118478048176002372189026746924425899738042109323635007724497574391114168397126943352626524915808424568041032314035793798454614744462236470822862548407477460667987789059414782221487391393751859298103684375595187967408134615589782829659589971648347838866789244513283532349612404624840108633630134440038365370916270331107239123367557757675415172500919284010065944671545937994792228122333810285915022433739592934803322432363582062447479527485289318298967425106763373417307865829696509441783701377650428388989123680178006677660883247215909911138342720857756320302624686064203732680633497593790862213150788247208870218231802467495107549493738278398208095375142999326891243755090548800712715656955007159417228569162525627452719587075057594888106353247663182253555617831775128661638189376225650107654632530718575772955478830949407331283439111356764221518019643156436186330788065574394621190391191213602107776865261854716885429874999163007759308701922314954746667058457075928607267705224580048469230188146319931996743042083207006730169528267939261359299177208095924165460865774021136424094728029866138483453987561762723563425721368752281085708426928509838850255358627980781229724182146524939233381145803142098049077214648753173920109096913298592900148562890495767521404487604153388396642724681149583038576045860580857395059561272636174006282804807145650244676563323325635185925174718771970820334961725326310400829318692550572734355863457815319343504836924307392268819047953332549376128620936453417492753145323448095569811829068682990880023434849443502033135856073585084577495221339848183876844165194988928680572652856019938862317292164889481799487012985619138472065707678794702764705508337718184511225970190466312114534839579991697396740285481999461146922536035489183669199250384255844470450249872580295332480261548264991810763044352575040050312661312133192767992172771098100885319142702469656744032976848458089779233236593612171656451851710577631280743909410956108721661504072835860420809264318194285641180961588785722788009813921292748850085970551959400332706055463731714967630753841500173211390432532602020487019833414751831012668696738398299184811866749184799441744715326818426407940444873339266322279932765117091938295919512125785968335637106157662053287176935760067394888756547554333453984853027842336673585242102238715493690408016445351819866728756016413284666426370009343228775378236097000319378723365808338604663522217279368284230774876892442407291293214221149529889758015219165850638419682764600971961447803020225659492325500659641989599549402781383469710482191655448927522073293374425819581757610485706994923666517359005742021165599971870528607737306093535840823306368590043555133188980572130350527969853154258705665262957428492104585590435982798787090546371901426436745945828902874517615507899718161730550662755660472395474546970206087839652545944012516169175399884314257406288505326302373842836988010010820050207303523903683897933676401614130000031587883790154258587916521943243454929433036593553263091736287068136394817369262486074500090423810985364165886534783105439619122498052758643569319383414447012778838908572511545981827068147616818979662685226198768763010576711005326749948798834408385179747903852674598854210329702872770764022704799481910056895778479375753092608841829375111527969184384526722452990888160000971238911429976095323082788531373675068611303699707004125777407943463952200243870212700683262271800678252171701707711115180284433953343149089280716936446939130141101599789502848976537439379438086895577390430047152587129960714635935782753814496208370903342524237660437124117429158010185152323049209945335010036317239781264015161518660315619293525174907481028833322675759959689985910833814945661029130886915365255695093686347092351552750772882723405812580076634361864935734985295714119387565994373187730284612185493985391507175416600028198195272212446979865798376981187099914827228853583397199664343723344782821680462999495185466595053246313816991650810977475264679568385923702923675758564967331179390298562045584480520709861782066923221536274961942417557861670854957138056629481089611885247325934647142670193226600199169543827559500424973660485514903205310959034145859804791496648178153775576370094943982755731498647828840251002921021976929309406324355123925794635736104537260890978722385468729130930265257295244529832595008793710204160166367402144583247168358736381809315256797944659049502656475159120178812519156198715863391090165289264008086746378396771926568423888805084785656287113369493457893032488466771191626584784656282378949047943881150495030925063014570953424898715734900076073484626445004639519716776406049248023089757205715534719000443148569183614769179350685246261445553286519340084778749585298927108016745043579489523931542654039985152581209073047102762602710630828941530266711845375505608225177175810863906906943142717590639065340451190386267121159839743467038595228064831837321472657729320985640925423306435306747430531418802255266103905050035196229218298125441184367991728791553563568748257397606228391797118294236965237200962384699171655716600576740679902730895410055898543403468043860729536654495722152278038869039716159523595163687610688497939556531250387562448698184969921865763046975731296368423059654325874753840090306828743007008257704056122836340101774315020857067945210810390047056184792672505941175758685540023175866403418938013727682171998714113012929997006205489179648422961414225196078859689838977003291228552524581986083745318016042306120895451860038209573145080195421934536506881483852927489095644955976366568103344248231844518428274768725579232643310948637369783804629250508802401974759307563500424344616860178239023491669300436389684531543523509760738448659692964528527216013261948396687288677167980593088912305035205962843655989188018394573848084515332029976155858176457143637682827746471045253214757860818184674189473637845333605333203756316694798480307818145789195709409039133520339555758951081496080366357083228253000023614132239878243311057003238896477743171313160496633335700537823139269803834599834010282034869460145405280214757460427374768495913690357868360971003506608870798334449073429942984970534105864073315332008556669000481997021782327846840936464068683545199658046231373902600119974974974273777459865957067130776968100026583159938969079963940644930653636544997168418240349815166899880564476956935745753535537832440699818561674022501366787780560718095116423245231318784062228975875692761878297610358346257854644811378832465357167216038971261224571499461450806397684946887990003486867968039498458266876922522672806729819047872082502719871904076579690573672353442960262599520605007663382010906857690222641054562401673449866905278510231570819992615918575834994277385586200700572319492357740763286881338615917932679371399831921296896680417996778999936460719783549630728172324811139927395775341088232960300487029758900606061389170488390024546622537040673670915101031308081920786214141978906944397874810157832646281106784160015886691450222394046009691512427087873816775378553909962714147769258837268840022872371938895962678687551073613982227487280981431873485334229481368338859134790338487426754005053080668423349984642807914768084013951614918834722251773371193856689663141966462977524569034867866841722645252362485400772825284009023644311701713057600390478209692406939368164576387246830318864924011422792090359294958577242705755759487580303436190764104197209665381938110356697858159356591927985316662622865580620440203899383752023635117862129670122465839527810864597081711350318035747187118453815148705327295581658586415523361059434265249832608337073071392817228949800217866819479193755948879512852469163596446604932869302861238044965725455252316898135039651709430740626707844990594255996525785431111697484348823452916608371117569510683795753105639364070589352418286856876474282887473372010238631038077610563137478224487931197588996610433206567369624727163644713074039150756046642320123795269546363384636510491435076726189758589607832949459252560230746977220363754300184265168300854400955419391839170168430681200470119432076786881033350367196093056363334584983751103719530541575877714095138289718684439470473702600616533130138583054428332278238116680885392260878234117670001476035914268089263470608647933032216123473782815172352351039280165465114763699076540732443909640623846326171381599249638874369681175232934008108376118313636279025519976602145235753890547285944918810077700179223901811454598782917488792692940548805649699326812812543328527991592541451429077446442713301040825898511888854370914952263508816836337898897194134470908722609878146016838698272004114442930596661393151788682076235023631663981101815319846607855104407046566499497392362675266415740126322409187836280353623275109867849729945044464330724902748436450529468264253380572744260232718855488539408409885394870402100853302748367235137587595958504700261385085101794070970764755589731842681855798585191645043604441754091682793404789984264053084918981026766859447054125387329548099437722448769050473617656815670004265411265487887514644159764535892911658515538189921934944836661982776150240453196537907125238123292179473931917147224902794919707387896410131833860703401329401732935940913810196528402316521609247104882119192895293721683088796257380785427547930634100661955848068642246818516632467698032352408689685180628624074648795470806721935643876595237896666817675848371632246662939292825347355038058532095768274766119294242963697061818647565516110379204338000031344435922233782375427256598089602834110635301232542348285636243966223891729850715656511151405533275961420602263863004328993638472793497188516282509797191900079024018394981253294635287453912042065961618960986658010005377130414177999988638712782720014595675286277419450471855043634936687381019992146993277725570341833938233999050940595044293986355008080631859954400670183095557665307133845681943546298906352027838381035712212826742102963134719961966350282238437978374541658234809440362904064239395886663170568907517611931408552272490822149956814465443218365660601402214926314266073790498330646169587059563451214895991530261045787914065850036653049376170571581758741603532893873646803832121217733429398305620136255250922567409164441222083432763754457542812293387176884491942124911019417703283535203150145545248270222229366571916516326613054822220961168848136312584004860230621222682584332983350365356189871312655346905923505839261558002123163556867211008651217109372287058077667729129715226003809392253381958436967964349972721816627912798704027622958154805450765018627803023069297524267841568336427812955773679707842767722947022388802938155474444662252067861003777518040542915490403069303433343910898696528234187443439541690267018656597919564256033078353619730325685264725761091833923275617856677548677835913253151709932991188485919080273609625753148090536136914689341065200093581093246819436747579290765107236511829203067977238765096832051908010896452379845195678103041259953749437568456470466755752336920856128990389626876384969552913098908903715497063955356684901211859293937748701114158091664719688665877750546594410441084448665378505230115659804940558484686536312996619317824198531196321588636753207270288879525790385436370085394646325772628622263712945265253187715698909012200503822980693848243640470158947056530509081044514833312083861525058362008393650259755582842854782527565304596697821288711018906314786071186983748188707107579181864238179709739172511861726141896859351229079226567910415695710533333363748677142202387757506558749112833921896268345532895164463189233278381517159170079393879455950318043376898894381893427685298307168144722743414170085592833395937346056636658261685172099956433410405686177557427439292664534159054861382569380254750785564955105774046668742678258011788729134028699542440616530939072962077746279231238347228274869162326435402962843336643347509821682904609732135486216821052517428311008185614261340998869287389520162109615408820680212179521224605877393806793177868893756054845341935787001952721897943895512053331831440557740024315393767434091547818896446127197635328475216287991442983610313578395933314552593038179913861408253375373528043011758711238778665870615774280654588704796382634233657239221219558296610672892130842519691885469831289286062450851884074173109325729180498725176067853283811538771282360042667592663271191133098217516175343523819545431753537579662593080491347247381235860302639038715694877260437629806949585133675390046434603018613916138474746902108982510212552809306798026164942215113906468894493659468493496471847716289815561554139755306215398419159798697844268922369807753535246220105138587371254328501237743738299573323816100628114495818922837399794786937304388517337526950482548303577354601435645500093131028247970329412155583274154859136027771407113098873741798052804520735480447169411395535637325830529940073546410860661627915355985451773469971122874337452562270719116299414429164891227382227229753918114351624685235806635970980085510422796211843796066045124199415387673911054665204691877966008806497282331952967485356951211299372344753742283295852402818094154848044485281083773650212914060593343345799923919612194228260032569668732973567309877310377426692757136750873635134881738093224285872876695374167340892090206809174166839175564097041257363386546735412689170445788073676915443021337456896692388991287234809351937495329892616407066432725667264471834213836546853302348235014550092918154056289999538688006506360895633042328505593108730255180034715994431230976789273018376510578689462214079360233428381033165104953877491711386394199118121045364505418123726922631315781384344951501436062972565159292802885836175244464836990934443310866780672804417426065925182053335412693651729160086957205212283693329654963317566941771482778780056275857068459076855976799637081991316697886598120695572529434633426446889253423864971167185064216465813195274908621621389975627478777287073819479086296214797023593039615187699602495873775217938665590981746283896010480972713489467609227954287486182448539423018628761626705034744917043510335911193236736207270231391592553411358419260253055866831377131023096050394249066927206985392565038019465630296732365632216953910599030418263497164012812720808193211916108600447921065328530859848547025573817959331813766164862174988287748819183855015430421988850701743099879391468249230718042973882858900195257256609756567372994360997081832206666133128838249056367188620432032064484812499374434872683268608683934666108057983243829632908901276580150108530892545999716131276260724445206387568383822251858387690433879318576502937908545609350610130192726466429839178476143229081919807176972356301162151367886485167324290715897707404204630387081558666172790710266896885339309244276524713506018872741868889918115492466266575159535732750356005297468952122989599194593840833696562103966287838258102544077820946691163895169895646379342037076519889902816951634298140144656699370067745656134458820827992649810693657903568185332762940533331648100177982561620810932690681340267013885353102513797875632512199002473810967215386828551342225071106202724882230875866568555637110291541076088176155956077580760876614593034004854870747786345702732212792144703434713494929885363504218598832621460604387810379922496202341414162275780070207748958023811451374328315019441276677960492871798660437782315130214732826048490402554939360855333516752001175113004547640098869866902725340767531186539233445190108075455240399816211733281951720737165969266395856380869173704898123160096289608262974137967092525112605109072484248928905823155336981504765940758874867219325859816679814288668545331556549618824618516042386203229096832781700483697748740334326610642111697068932408222448051304443733885463161000262921574923428260151876886903256153481886779296726138081088631613810144296674007428505402104058984984564101844894318626654987999556406598893094314364794614989687064568632865529007977997400129912805364423592272623960246095370523892244363440079765219437168042294297961696402834806513667235341314849099154104817960072460997866641872516827753325810100300146312990360640421792340089474731030117470232500991297708360553596358263328140005596001520223700263675230053197345834303177883212567093687108047570339112797365720928393469671510678199691922571578990184280894828409530020438004201740945327653378744607618698303084485756006872910034597138599659850164425322890363039485966753302313581316768003245304246563016646254865583993222923279680094536497862013843576611283700709576014204481730984155339333058665496048347651947784197188111816042704620494710413835871923375524982690035758664038968161276337820508175468523422778463630299392579914979198437635392542113984720194040792502176615486939734883067086434727486538756273441078638834967012549196755290216395820319003823662693696595884557407300814757735044902590905171593710039791920081359315497490482723227913454348245224185910861142225380975847455893697558682279102359062775183537741535589933883725082623692454008434205060354297258791836067052214094007578155730942663221485225629654203661987973824026920178079467327927061392996390505008014699867519849841098175737615035619512546271588356962388086555541548511265412734021718983134895797893024181961117476969388455942909801994719480369400672199425596723765137986823560439931431288872427753699038833247614212654510783350736868942675486780225619761025420883772911328043992561913268735693789347522522194179817495295454962438616653494354326346919674681914592078137648512034877750023695160594600820500406800929671874255307393545948343847313744651139916969312269998601801641285994380748917308455534597513956570351076153487281824959707140329020982051673919058070671732503708814095478884110162909844214404348779972350593604991887055726044578260327921048890264489992328073020237899553095031052046197336546965602914710330779094940085862622384826744796906929361315768718920403727224538489026876878680811515863288076992252790397377984764164436233952034289795770424348664895943810040461900088893502824561338744923581959670276693690054993797041329007683782365122593470666247683450751545816758512001838674026413045676968081202359973091465101773017875858473960916030664702555302411961796193679892246869409505858558522425518826965649027176654861688011633179702503075143938797165695054482807691724394808360669030336949181901806215467632984860215678570489466185485252160468684782470744242072747642000068873028161146701408086758948753772315211590521221860640817579523600418926622355915584629476620553046485334935112841741621229056462995452654977574331591387932485288461025935608405769736685120069658640735810128004295098505222575507735620147255179307216944346801633824940207933614918020384207094023721375353353874791757748283073618065476955572151991404959488972026674220546410312257978661597241342091232123531158800863664542357985614647817031345038073975378497196634244396247902715613480589651795795700511343502131195624584797115542684644678068500518977760535288218129362230968214908083092650082151207063378269721747923556519528277245070912428116566265908820780348096851872153430180569819874840826062882397893666033200561728962609864276712018811940296342084609657461813558028629705752251757230468585286233608083077068375444922729355750156850712854877546977461235503087958958107636746109452611992091481651974952783063172515531681871055977265917964066037053197273849874448298536298637496509964466519802500772740917853551480560297748540214112009855446831901642180951851315636019587961226417005512653286327461790328581493987904113525149535879980818613678580269749653581957018234219004799751012778682178444369484180992042313990756573943681662777684707335107826170965502127890951026827335811403901605160929294475525730784614865145120026010843289585028487443776936055188672561633802364251936839869435009662974613738300326911215856144861853233789039668819250729577595424930474143683993797325981716072688987590727718571181375429992492494500184178421077231930606988026104505208427147659761035119501867024845377158756513483424635409845526725871285549208257172394843998023996141907798878557974273684834424681919231386271240146232321012827984748014044374911260002882359389422998777447130768288432930156890773564397047934426152317423917930960283903720763362125035639626774920477652806189862892591188451156038640097372757212383311136690123461901990839696403990258569247007346064563086585132797743472962845788298083487832802259243290071246951248236772123342948881589778157256988359075644634977230706060300518939299152212104553246299598472403648093981281177036094277012145934382077272408895251575685605094625855051685174899481061326633148797063552175418570694055351238814709133223817636166562512480244384362753192181081345089081898360661704933601512306105127472886335119104023574255544998131226916075781306668427843145796775670507908498437941152887658518927410689646786912625151762855178977518724151757768181665882127855015269389385586950942426097400274847787940425909470463510994879877699278818050072883213072244773900014328348825605968210469790576086653687280617127941052048988983519891388391529982449853265633921344669037089676131538026305428657302849311270109242196742049769936497458687121830181280417424106700235557388557307904456190442236037939996068148459656380763180253096984519793987932461416359992353770818914346135374861946353815822187118512778947550748823520373880867791707407573253247214282336719180770209797111383236678355077900878140829672007822431354994711980217525970443508989108680692184660630354331758511689044816355318890027261065406182620062586756802420773446352112933593919688104447214719424732080516338178025124095427842226036176927516690258585435882400589724071569096148053351203684256003800197281585557831019284122009275633259758113099257961977339363561687486509250989275276408629695034651584227820164224574369239170573931161966480587868728326705512076827250568319258981624375797732832153213610804430994481134455787059910663747527356226344271584053537953920628726759705441216979157129201378222980533799451819322036456836205445039191174377671431830317472762511969051297681510574142282954203258390097648225852531181096782078379367615875405795885468434245190224768374306596805449789996918145261677211301227389720855722989551428755311144543177892319252953673553680943708678519785250966641868044691972756196280878149091906504588156613207804631392794477500621831025861432243532391629168536664163298633356358119394715818315395767888719554193315531726807903232969342929302669420062898763312165706858688207502094849110968872780472049900171983744596690680911069212642233030472080572746783371224234320244646837939177945537590387527154089819827086458987445175878927698973316843524532419490006396504013674084462842847859518626672423815424094282115030930405045249877137836968746394761462298082489841509012831174052160022401652812325351493659316038793307648384597538404331308181403694623574072258589781553640645453205557700819117248030967239423561865962731000225795209949217124917607704254481670766887398624266750230323534131119942880424519549652955341229524381495066670468998151607905303958491046985121371961815424991359105048831596383942275194686115415237690982085723442634747831511296762108316581152428271925596878640497921204770163282320534730636727949411465640729816249877478477111018594443645201364830399790910368568430536682952115143306346716128935710348986553993291609409892988763511551329900588709027925470684740284725031693125716247855522192992533492004571636288978545757095872552228373754044577123291094549187311932758286695486690220962083368096376532779121313039584726518658349040740521652216919631072239791838344860685536945616318328433260443836546891205012138091162195645111629761917781645924328463373597294365563833440874635876024720985847824134316410703635135041950937375144248713704331830102298773773706914882915160690538149219804069918372945444244493699842969023589394185948042216721411915362911128652289958970209616505076300105102618931026081217893933463399833538875009100729962375934711841234073573399982475866401562663790485450171254935631317875786903485088645052686764444090153303302697339265052520527445941055152301695276389992861309831208556354522962200520088438019087765741906171705382349649423260894879837910243420554016468958764125922576651358429367456778090951589881203554180960537538423988775730993346813603730316593287486490598334519513614815057022777850672061407160716834212330722876951762876204649966876197779935272357544632931705767192472197909387759257275219845160200276510155253293473322636269829452801175290013237567815067795486392125376708923081310851326626790943040587919750288524413405810074704580438447975781540516328263870884327270290425987352163006900328452048796935045096626067612000972276667774682079752371523728156607414367840286034942836175942656411761190457768409437810097230538598958461309418289702897462541620499993456046113603209235442164586883154408601576735235296329685393074206659730607866344837868987268818009854667320926077347796617108092731644155724673988340471335164513787143569517735349885468784387071217651732407304282125975347370763532699095506221542794708319733720234469831414245045097891697189093001090205330904614440199389867538317103269652941235560262507625585924251686397949091035940077032661935595847964306376965536970651572036085549461599876134243463579679309687252660843472421098084622013105196192049478945837423405980699983873475800977166509721293491968884564539559098751359794067251797733774364705356182452313060283863842883414055084502606981730448523042224770134305094165139616651838061091032279371397626105909915542784350082602599670280222879380765037829909440583686673820290600584945986268461138159109959125340211756116437372735052547606433415349097031208224774528193117325166920607376894429085561401190476164578165360875136528082154602714417959896712383198859250244065912541781053380322574666724943675307801052310735077331790101425783608489446422906155834665292400611113948828161254482170754436251675132306091520281942513985962400769433458574897903136094463720933316595809204927375892036800937578635873647460920283766518450488415605629216739464170813313539995431195938793379831784026780280440911670231186450798776259550571510155705705094760545172363497847751531085818235197133847297759270617118025901595311775568929618978401407047474587176606625048628332863629487367759618202725714465022936974023678875269189652428354513131475458690571131530483551366110698902339294481074688481757235494759575311176359119016885530229548745891326505739427242337695204637025413886690331804763125843262678600664283764633105168030162334495617693436858083670689857148914014415455495327899616398081447847078666154855471548505415620027187716200323355594163626055717470866417838665959364248736514723633513379360876387920382971388429514067972521636703758018752577106554088516150048189410835551873585076002522675998245124535168344776428987778430484238690002017532293970170428946392084515074461011872208197065174429843124223228864561656779158052262869981329929680544989024048335173379701014615832491595335293032235692145689708493044532528293285828465198184918198990601951253005153743284328029670217887899344978287362150991580698491604809548713024150185438010930123971854421550316130993460218886509321404064606463866916187998942122018012899581690603828941243319690784943652122553618024736632871168366426308696642027117224646139146355584753050140130971535196550412453093860579960632362177876556098771402066973598631780000703668012667638302414057124382547793207799636116244084492351266318305153241284683225154976915116798246634360578682883602711374967836805156165824343492245437410241686450259640813531603876749982566799179048062682507516675776706909735646349100227537190459931175671735388158775874886916144570072317643697596065937921707657327109329264621484363686305267722203016858004047309370354736419692299567424732034503694268704807145585280762217478432714481728847342015968694752858276935733523381526890194277502924603047406145492912697222805703364097983822181870646123017113722524923549372599188091295402142101539985543076607914483671095127176879478228973729561793402078606096018759481508119310406243101166946937757094371019371724505876134883434782015135546419221444198288919285159781547513997517988165077746508417609819023471288634724351634082609139981075597733043137361688414775832019451260605664785313748598778391181724393381918042771783340622881380370061492478171085129206523641624188124194378156475356653788093608365244516890050271351048835573747170251733213523981788444431812485135349569227450611969030955340834560207655755123987700554893519207063779016466835781459736904157611621376936535529372387879370468933777780199746558784135614857861145838075819951997590615822683194632007231048130094357293708291587460033930208847893294201400599611464532988274664235273611453510622977428642781001533799882304090887376140675179747890096361656140427357853289877092992569831600154770701599681264789292975898546544407785833212825173974985655883503893346171294605912734049850579999945670019796377068650943133660485827396922084362929153257934974829429609546342813998828595197184883370098506514512383214249013294086343366763080480234829742496079567229081694021920927516704121345134428711834441619109754401809408598329961540386386079679667468475374289492226398778192909824593387117399582001679626584442753618608441127716815976157920878627631644238935741768318424042920812317820116505673990358657177615377893212261540717886240412058271232595854874364636631738521067172276975697025577400126065637140899773255167402883916452957773319504970334657024968983923249623619732022260869093196076995692097183882118646160265424004195286988802906441352524192021335700748018120836912643513272243913662914333482074501934397463837994693684279633275150204354541996106495661905285329779673598403459072285393443655481145990596514628213536563620436888460674128231942926327646892128040503543932751056026055079260380356850159124103689992147328545931571925947098518103632539523400969280457608145631100250944674019032403327119058890644038742155107655077872022705895320883861269324009241968526959904161591111886947034410673606228034689705772870448926274856928470184017024296648951729882583497980004339755698098026010298970543421700953940499310013066982316893268714373735011667851622024272000228937672836386227588938941469711338718017331746718944057686735511996073796492284521501419085537043387114607310763399792880475488940753191146478544934855331428897693399399557567479829063243000020192628984202560622635067113061750148939348530441231719005165351502758208460778576637127104340603625719595316043839029236613319155915202319576757316159439770122786980374079380005669023330682404255177366030291918563530766260297439032110144406044432467771662532806078618816378674126811215989722838960891740488553834827164587241903817612241468143964167681734070289480676948624008990513593561158517199077651000061725318474719146507575752879324330162900997198403974006097396828173045974894661100243440158724148525937582006811462729747959250047091687197103736282362003518675520334625348970702781291234187175408998905138250349600424275257960761051937862576060270543553028541218302917593750580969312397764933706809859745651049754888809885533753819122445622014445298162935834226454331672957462200802923097539918082667692404644099794855258577214152317191863792786918675032655033859475220754558521117559780375007587946363121898807857355492203309845223218622836515372320081458205247950176976584808165312864987350784519037488273010574260018402620125623077946625375451161984851673383153653924128851933778611124648683817936289790023995561497556067213262747016773890738638200106679560774410737625569705911597972528438271372382151681107615514834554945860023056080824358635350897147460140393403844949629980889819382835714167655295830337884878825712956534649358714284910522019393029662822822916594402047131846776132537022184084242480298757572698549171905644598813957362850604567324055545634718152594712193141597774068824633031798155956685990810827653362286712809378436694091346880431382532644488672496868717680314297926823007338368159621325164041128139138549082326979290304004800132276276775871576011370765648443880210211603598406930427414850421364810279570556452621381518516572952228735819916914082346593967892356640713553306469989169836715040958968338909956653314572239648784887306411036459767422152833603688203365832819147158210964531118437556160039543626677743169679401028095619827027824831857931575447198896557543865594121887241086933164474185332402458529397927377821860750077867905388398581916822234447213141567701250424971634628755171470204814881048671870998028861737308819078333989922865557577291785220167625563372159890032245789048038187525236676503650417557620818040280882891036737537841074492651778570483373626184170561089657140944076443890071474916413487546345248231076216445025764594202380631495229567848026620019546148931095228652146707693640091356190141789666616087922876587223506747405706898180019031187722083777794244179598029738356552000852520394591066627992251787795347770314794886068790901976892257051662885447814666220702298363123242401148676687849140308892900480999502173106178538382990786542152095441975096268865043951072232116630677103255348621691078367808998864618679187067865619813502529872521263327277305544145920427254261546400521253830449131268884710378222072289347578994004382961643763737966117090101619100147494599840331213365896796494686546048252817185388255305008023542212836757535741183012352530257313305613040652906058914467909836140778152706650259583826240027325041016412954143705418294015675329636448977245893644078633899139739723974823792592304395699197807169570212063961791957831817993183717867615132506871227781202148741310471311024427443589187047965108096050843929092970849063141116418278327318678349547196078714744865849971054072436607309627338920395232202310436175621205022667723363896485733554625236866614330143506138314407664409377287405022889069998306116442132035776408353998547863800155763030942992333979764036057707435316266567818682741452824825354898780872567604356328269973279667607550796405092746339645113461170038588177705745942827183182493974747938987908235934302055597698750855627034483601737917775423945223272130041203559811445675622676573432629693618274009118001842770528957578515697027546913552055504631579138581939587409206437807415989936447322489050280694218524122167640969211293039800409764109747737980244787568898825798252736052294634063174740681667148603931267856292583662949918156031433598091506305066125634830233384839989045201586639981182375111369642045480113615985153184908911960276971187792027195260664876458829427528294853509196721562299844735861867085126260447189029836908628083857696703602084764091260625393458666079789777330678867503370416394319232516911369449486352683495188621668102528182275637455192869704136327301738953363764782768755234180977419277111415536558045666583854717269240128573863884906756573994307966676550177167406744618695806566940947193265715784028535698600424436831386466669338389208201103999939825996855109247720518733374512207944591420332085021036247516839721294018761124955486348619612130548175604818928234982037512283896166478850024825634108206047996954776090740649881273928094430339462773497091047022438876882063194206377674056560354575142388733540641529640431658058009024523147992703372462011073835044061675557867526729960671788003582921497362689846739107066237754866699395539949667159448630707791094140334462456971737110744022486737329523577669811898652279759541912221099172796113768898658230553564373054713449478369042690526259668624446231384681855503605453603169286810452566398871738111141616323021954469927339414155252415328591695907639219220228891022279117719797974562358067742542437294297316045728210824017956356629912166005182124827034777924849713637445104180420860385796263398303629700855495807919466127659241120449157461025950268444963598674888333362591652180042275868710432788853297135201032092362798959354592330880046165071262692370327131650451466732652024539430082398106307495257754715867671557197714013815647963043520300419788674842574649381083411590560044687680579639478762369968623525112971421218652710996039586638807545401113109337398987016691545100283976151039087757361911360445308160855357379313608213892811503667666866545890916948677124849095444530008485281557944183209995130037113400338204537137329265136634735108561022602164970665290067972124460080094107048036861482844516582719366288402928055970323451662598332045974129793264486981390026318778106101273966316953947379836361221098052591528100900191107825506860682323410594729026446246544639231182531657136019765924035474717592113442244820430000026886546653678825179043506322028323926436544485886378228505577005174345428700332755762466371984676972883101471231173553077505122157669647467519064003729869310310656853971616151921938034626549860206535669359797618577754869745340896203958213204568488304525955043008203192722027019402497678236537545248696164384652526736014652390229021493667113853287861694346979570991344797539682529812284637343348492472121603080392068818671281362449613911460167475495121754719193281330687310098247317180123523600196200071931844251395129505086205957629020937188640115554943640539274591889246763282512294265052338484611107843283277327389591212137529181520631272336326349478316696855680696682764573162157094159306769853328531183858692134949646655262318007385898310062433504924233310177565810344122876952606314405834430791618242221529482995710401796515276193488369407309868577138714453836361513851506953454296053426428057672739850472343268481831426195933896923266043770254178473790456313493618842855332611318672912178215307690510375358798539717617420194446098035379866393829624249478441437034406374847627530588038834300282558723389722312230194334987644180851131143505436885399555758767741850403437165265473872213033504530021912757680765231148120503616223946098957135766187409302065919865014058274127306372206639777510819482535591047081490392364131222984731412867610436780808314747905145773780985254258436487101402841043282978521879374395197257674338070192206796781561131568791899172456100708826148685891263262382270614604886510770195539116231676513503035817165069554344198738070667479643406457740352118316945941283496451424965152744715187318332350663735442317627716771606729040215844206116854156281568290972540790313117156802400507068786021637336085772022853223523524474519050051098817568348958821503094236600591231825489468699778162386122184763191819673682886871663530671191624948051891971951118382184740497455856905893839803264967609963996831370596484663907034591654122035754277273881636514997810731726848270965067569001350389532559254939514791538272873563604040461162922704271662129279067650263825775673078994160306471455284016181160989187125087584537249568934786311957859188817763664792826372900754107738240508116872110987137326779991064639595684055122052273161424477882511794853238218268679907795091714387217542163149131925271337482676105888382407021624657115266635467533542252806245762169967626819641938281736861043668701711657612759226920437977995199683018274461886974733412373592107030392935161241070184624792817620507727729560842975381722181191460155931436878518932340365263029797877708119580168452352705419076349165837884625020813991932036841871732357825292879595182361339221755124469774757245737033178686420099245108785600393418404618348389394928521600934211691657265382630992671639604559348448604363305451964814873928665766036729782355884632672008417122828405004094142768146214306576788181489920862405117525445465255739730169908005554437112306235337857666384152237962968595886283946830767543022967756687951216588212649886963523055551693561724596565988311451635136461591229316867878583291996356112583119231299809625267022356855647416045454015437602613122512736300815598252624229097984601619940000552681989867197416001147536821099770770805764755667723097747759404785154713187646285784729734214284848986178374172839871888906776403380145509233432956977416098811388469921763015541544491196130247312109021512821956361304403766141412183113832848501896607164252233051441852341635768555841922987300917348556271510470460167910906558114708741766571559182698313035446049690031634120076348904685653402417953902413798208212960365066682096682309672585648243780350431039832943810040392915171349346420698522527747439750741240530952165986599559004064276354094848598464013327563601585237323775283744371668600001409913857748714590309008586475573670783603070236786631606153999631361676870767293006855052041225742319153772967716772567950544453337960159998456466368308803381263209879699687504799810613657392053415087719420471166844986963666113695664426032584387447766164918223289963267180634458217874936092396234382644728941982176659525678953511815419656640534001991425043796544698471042313351653601881777888175023490912619787648368077781786121461901100144998375062653816606127032389138190924501703199537922059485941947972331884651132551808614771564076849364750237005386298048095823731112373190452766937660585648269852508214385247924351283302341690225632118144272159219883310359678393347877059335101369441076555866895481866918723440687275368055987143461342402295410017319907078949724932859412913345998385011894246320307114304752720096734375443775550242175029963122268036458013843265096278566832370469740641408348305873270583525117379665723779779744516943979029289918613844647002055037132762759856963232042902087248222712954268599959332742271216448971119543724263380054698863553603131151862618694130860524250310264124505820436323796457846805349959778547745425739955344521823180725238750510491455593944783572210958757070669611215775580090462238551410342569342824612770225901907877004675268124750603263793861384976660968101548213772797979331403463758724135273023452605173407188734298077417310531413678519845473287949619792814118836583104213385032174367440828767551890125860968136719732299292744132591875846967448637247800738041152566115535924903969796891200765682607287294951148071313945041042374778703353269761630307903512765335514827104489260504464467149258705937490325060963948164211801158408507510579775900238576293129349423549288865433399255723757524680862028946795045981880400412206858319913101014366617340921378553777016945302762737777129599086010269884096350602267764015232676467951932865818639790118158448925464466965218303111423524002779965349559991323087113212741700940293577413087537446938504486340688667017012592203748142785299889283337141688133242993196655869574895476368263958467544972087020641731221056163671373009326340761030391948731942344129859588426130450106677982468546169840578632088790472051523870260579048822645460127379740085603614097207168627779576040009169395741551247021168405017666028342481978670067787480340940716935441284744416433341702326611081273216703610074257376502684556003923624555407586634005709245342889308812065859273754182175099340124365470269557249286758386587206837740501090066172350682422433345588574427018963918473509391817477356802177235961438691113698891423317885314939702897291634586030592623176051424904617891332261310651412243570232565576176219487655001134513474385542419536848158961533895457784854364842945845376333928960683616497093467471081184453470394160671168698542164508684260728859590448892146744240684338356651714882167746885202124743724067196625849824949161928459907928989958643716046030910113412222976554690302494064265121295229016406348018765629278346083696451656502097238860963520186941709673364673895183868613267684103320515219915796418470459603692895946097246703854606285025668756977535124039001907168099049679131966133133104426799348326872620588120813068059604695583555044630483734699744442947524334151043185305101739539694755429941778499535321899824661356391001828865728648668766293814884010847126598107560348041121432462537792037825050514528496929415864988442164610206511414046282605912558743050371949217605373759419723832491760792558488096596964620095771351349682360362684555740797163603480683554039387117737490468690880003868554717608618430035605471824191769205920630889478674841375591666033921349995251857513681090300243059124716485560452392152651201365191015221451357836735511658454187407378731641407516568864439083138611240215190517734550445860407387239843798757037259618301354773745724542130845305015794660667350776001178023998875009342502496342308208135054494776407144065107445995979656649443814073403527801441326092343040693124713137668187849094487750345863730142883695990070319188169316812930540307884667923489317570519440329638315571997696571536560025474977587743639650003868217430725472771341156752282884004491815269396451867389248586785736130306187733997118310436898710735984428601662595983866958289308403983861711349929388688513223966980336317057153105638855751502605136975254290199979360180826015536754633501656496776766410252885004424348761523367372728255916519624837315958416431208393375478994615959780953438121254414692403227567627647149240188826982007533385639123277217173452649043219194961517183180971997094146711103902325031555034918282049154190767629694000018098617607062347418811075396934373906421011435616642768342358858169044651452079471665746064199645849558175289828967041149326455002595502825671513255693275293303828556071780637188232846385976331252986074268890786441146376291309181855124427465188788586107936894485685275801490768587746135148669800479396989056656881229086333686647569326362966806974383222409685778634530744922327717392552775347427401988476813627459331819722898524474045167185917721026652895965479642050516913657323835057045461559107102574665807273337111723719960538524480221901574618743077122440353494878500973117951600584924515068312531993040770844001684967627327398063323331845604691011900418347666040815796538261673056875804889674179341816917780834052273922590224469755852813882946411771756386581046932115745791043020920233698340660873493598085895594091726983288316676848908434077181648925466168713409422718162457629872910134406921112458402103341925225322269573024960307829828691198501752359765208716747356866817449854917020129333770447135237830047324192893064400596092215254146476117004244107721546568908019024795344713244594903615995768888347628258869605963987720988358924222469305235417244832465332718180209014617262373318157536635458912174976488001068662964872602269710913140558038381523211637643095577296686285728720718686081153593076643831077591369872131229703390130526964654158034710010133767557000019138401502067204611944807066592476258910671378873128791725892019332816191079292566906164870008626651026123869035595165529065435771535921579790331844912549850875080112037888163265786944416941740988952965530726433041003957269294827563389259013409361727829063022063829527727608438153334651275717283181444156907845286294994136797123831018038051823691777798293248713179289030923611710446613191080606491002728766043796481069030846579110200833323956181106353641514988894308212941151126629007854410312413751884489190187612875497308118807532594246087411935139590061470419694722658167615476414757837989994709870281613579915925593430092064771400386934443125662618867344380350898639561713588106151831171961324637699315371273102051805532147569818917815053574241608201350706826052151416041583975534498720832058905931635495255949151904865848433826220942518778929810515528243273302819538060025983127266047430080635368449321092969799015311581742609711103922495566847764788112649402451105064659619242181901204259001631634729293317978124926949434109776552145859477153932566990785569245543695662144995039185507091091766891380829122671586242299951827155632672384150793771768715825965658153536413175524917741803924249876112778218319875699147675129623230562540411600454226377072022308361422403085422540752571436374374262301618337540923627600875004735081545005956923059807648729879845486127567131668914578252689098972590003633414939188082007952229323227970059574629809379746011896228580989625125125470346629211735492962406118410932314988757148940510700236033163262590943562051255068221509025883870745733143991673203669276245924462222235775012120437352643266514698002820699958762977257492930120286825182975187860763169964781295629971145560280823383936625578336467521766981731048423273175493873211717869545752328350588670423496461324401501297296933020750435584855370152139828516601863037643568099940469748912428066894730248205756717295387759866428806065008072814651623296558293264687402786586208559308628220791586337026351441099046206112907361160839886233349735924755001996333692889811955809442834696856810274914889514062988241898177982324142881287478022121655997679246617360380188948732230226361861130410168718436032428998428589677942325608611690908114628391520730378456942452550928432109831518281357393542648102662228532534336526801727051054214951810514749240602264722315097772782528033263362616310921429304476730045996039068317302442057713511511986996001224848797528520169641410238458568389887997732876417380245428599029235383396021127535015997185642601975564377145551673323452388685082857153023437903731926789150730994792915830407232923289125936232553982039156726086761216642240444225512177295166940124512520070799711261791694892774348263915023656683164432344867523602302315733611070671948788215626978317936995563279809754654098277538187020011317737841258622545592725815149140605003532797203479686943751845947609078071671522955998865946791768332156755459638415876252338591449417713159460602412344188245550115028911944302291438751173097959711086891540937560544818564315769545123454914393118796480031598218964031453423523207172462172585479764448851417958850507036916968169414604861815996731494867634855595114278929160493189724546050998492570073334806318550138629105707436338032915871037669179073137366903344295374818570553006556750795149486740520798070969526362935456233734007381670503621604975768512677032553353132701880819114935432194732336872853279805174034204845387720016983989094414560605869353968683135650030239713758046755812854751839897440238777047288930262107043968627600815654738213419620031781885957607112249745758227403402046041641805141187855139971198672511592784635409898521775868647741782527038846870289476903147106707446445959639409360881048592282509489302879700518330560797194340651991613511536391060285251320242263416813779742962233119292736929028436636849922283959262158067595985054695644463616496446980965381277019926777304524680096513576903080744713540085567968003064222006630671090982503355622848179291547009570442782107484284684341165749712784968194226628167739817311784872832077750269875611723375087181822332606528194217924410038107173949508603031531943521145582308372898241939614274452918745558310566271738185968375755684755886423907597389153157542640602629821299002041206544170185521746190419175140847546752613174142547308867134010647051294687341057793449544992621392527910433433006306598539936131000344785699117557993003072585958248176308465212601573309599082023271298428435814385597913677419555362327467780995688123141211698705266989808948266573504385681101417372974915441481527285811938416752415354610357161711327861381595490974979002357941863778473743112757557107430753102958190670629712364781980819702997781350506028747874211639956983675374178502996985661661602341660870956743024322989284881645768499430608923909399691912448025784194573483222123801557174108282895306969363021297227360172849424334042783519156915454578029424349704016267535919909105410790201176505639356393220293758360453574281499702295703063149258040171584975155905170552477056712054695845200130344262851244128658725819278034175530231037318938018530455666732018161424177316877661276833225672791231152090733494728598747237227177561781000453887024885192833219532550397954034128047803597229379889181510642836475344789208782530594997789655676466279465896123196264803700067624732177948568841745153013471127441459234270836132881394200841826208697798977912988843958171548118960264743419945360915750444180740878947111237595664218715130052172119678351021414351400038966306118701406107226401251305086879054599591289448621514019449582945626344433974493927030261376903161641233481077124296564115225976337725694100841511420868674906067853181822564358316233379736420283092385584792818565566957199020888434805809163618509905881426007372284983000641422302553804571326745460103550087268361101739098870602570550647927049492806083384917177362226164275697248026324889949767311796735624296528946501317458136767931856942716441744530309494741064193828296376035544894851735579164205903846493165841320612686762658164506874666655952238803474863305814290489189804827599903480439027089484063895047990206046749124974809717669207400474691841606839433603059695127505094287678862568981389414723705967816309845196055058299403895073764766163604822885027464957019744012210926769885006310919213756049227204894926293986114803876663385667196510446336525897258354063419481714360567998415531163924622523870054341523589568578142761017721186081772581478267364930516399114280403567316237135566713076356253739913821915757737096916180433394573046298629956979888159929340862928153267013494896366670692821896332244328967802784903191381994768523413984675800627971705510341729692290153792337439145274508695633715873101547919865723486641556754204243663774217451959898230919157526840699967157702453911172352321730305361458186405375663812374620141593376025844350081974093391536009320940200715193775933777627223980199776491827493599612304390111184604293469895501400605207937032573534288711203828075357127138758215460059955355621604505336091352128390843755304665973426880643363776811588964406518559649789313464074654335710075688598550970630186371776450688706645232834153367510673513468468297321574690734462976407288436734250908657701244427959729817008709711104977628402576159454361388184652080846515736286614767957987111025184211111804437390787716917328924432265160766466204470412479764784354769554759739854663703404468967120842947972217177158096253345756903528333135116903795302849544765114257419765720880274206940444531152215776866406141757700897221212560602510512779195674701501286717477377224477420828428214679417202568081129038105764808578332723366295642522493382513773770938186576174523590730248086972472440552836567613902138823777288288244370015753405914172742208431675110180136953815555018229072128080970239450323367378101952552344677373113587813167906023920194672225724457767886704951473099681806657681200389032252966206096663628116251704962306373660995610478974573096299332991202207823333233279479988696791455729802151613548752111118983580119998463444025596701424309219965487239639327494728096193973341119812773630315060487579564037942933326107169025750839828070825491804192292711241421382545049664253205768712316927208234224374075227575520063078639253020698616340492662094950703952930877910146638210840387717767349527862617973762294771252584641410608615286405426186198024508164884402484918410107554443380969823753473928621875215575249701210361188520219781025896882331208588828923675238180448671750985338881254171803540375478634369236681925575497781043006640385283126800063068936247772702561427332301495112253092545056059387941031342064567581680842718295530642904783536630668005032244697297070052372209010307549564681217061745655719999128851830539159879866689872797608304506688084014190177691711153929671131372214679948375591657767110831515557832426947904976988020103219439077615049201057729469097410320102998455090208520368621166380967859345328145269540305378660618176588837199329378174193118029117919615955236149830806319084078537946006041956757227092018503533466897363630742108963718643805924104163320573979624293625921141399584112272390531035586551564703215036498439033539846455702702482944425168635091605825600108522360166282327177099916358524114509129941816777464985730147714137606569724031299495101348858793887092893951477188605500381802896835071203882946302526218998255883869489675458069731782444294407382703407828677312548092772848298534048869476743190955061915717244945861030733926038273918907500183143794904257181919415660404760143165640941894141064412193158953981824152301142117668538905212626955028243333579397458581942408820531612496609819338216784290882964112812798614861559723464167136543040750865846403832234241166738038168943516153368597923583746487916122013667765043352797275392850013281607636791010603579597224587046157639550085593125527297854351200340441644556043496407961359276837311148789984194249458025356783209334694363844647702659011265475412628894399413011318671025492539505950738151187604938116915683158818259455195280170567385034689999314141924125566565762189818090145144260839351992629089172077750230715751340655370654765946424216786709377054752582561479827292173877299746202856079378750842887896966884262147287255243012383399934070721475486421025623310027008565579543262166393054056593564903529476028511830103217670742552303285865672042976027366264614176750511139266259435272055101596057964377462287633906982779256096987343690825878045596773925894256236633147324302350458333248307479097530348711812958099393482484575192217378407349683906470828319731912755903104766957097124983271731202993244079037131260368892698390245101948738435818832809093414231333598588703527967544382911159299907350142853022306538375061945099521624170537445509423785873444410145521510662317934622019700658454130744244178712964215915565984906258931048406451024758720142728192775597605472501111248185648775602492479633283473801291607714404763606585334311200882289435142073444548947126966548508573778463247920866426327026593853109830645530603824713676620407216948666094244234647706444075899934407435602868875708559490520324977903573948821537268718169979933533882484401261106759798500244634406465800526283827507100736821259761246582613564860008516335143628737067723826099050131233713394023885153180062012870768179262212930702777975845776719170941377110754581905415089955144226309647457669859299149591289906834379832285718993676172098165194135383306054468171652973172566547578821208419747137370653590846383247727427692940901088153184486331438134636487020476704772536601297615301311291663395032427392538917026932828054836232601400181123686167206749664636204276610069550299416615282269263396190160738225414049208633844844049707849150117802486683335933408724301983241823742723319366602518793376521036033946464017038619080110446809500635864453537368141632948874218486116004713897762301078193046708898232727400930788701259577098484261408732161822825215030709604371722284261088400945274713971884934412945624443695629242895676474564359403917851466555572709887942336057006111069283230682118844594497873237248564545015575435749278765983929605914662088003357165911566044342287442581737568671834125587856464777832850505774783413941855276155323547545404791352222718453306650280016859910093746996529511476241406538210674355644827202988261146631392444664625011292673569350388848197086465866345380039397702873649824873032020314827775745938108519611115283361136712546945589460132248159507131701009338129557203392738701196688364068529424241003365796039133208134055183565498941787577239198301502164057555397471611802409720733635030683933556550372153806912193430787116388750404771047265141871966658531216965953804590371772912638777305560408353478451834227486145334168971360535439726761219239392098330679664379687958534084018937609359362039546592073774180977679900968351120425009814869702830037968181007449116331231173085623402533581803378468315159022925149685052189066646619381284654807397735298970333259733474438847865773937246951883903839673635098522949580571985629162366467198399182476085552711269854087340603254864084037247664409554125722933115600656102723434067920716871346508637337886977205475310599054898159924754347871513844979981432767964424340741496256911249574019462183569150617277860423885123506969831125354762630613464594065367123456270417997990731882921230063277338332662925552093166391479783111408702567270702400389523518884032890758396973437881114235097450225736874027750268267990363111332715374339486633713086167483375258475772611500667773022576445463005782406128385203553053150692640681075811707422579776202332483958019778989221757476733410293680280549619930125834348746208483701720423348596352632683011456119346247606950788261883900729177896935736026713908182882054099885942358173472951139324828415593465927184878032357834401253250000468366675786408397497929700017933181100913008943032169683830776915421990851183624401632765773794950219586273936782120846931494239138699016111292628403089210392813295453567634508719549015990384985499263226188057744938029151832945171722136547400602550558043884795484390441434254578000558872984066386851625440790923973667649409884003177435432195956500471750268396474598826887198190151022019902324879224317686186321210854228429570613344754562197169436063183155384695564556331926735833997130703830596927395241721877067670714429019821971261302601199201752602569132350249824406025302457769853652590084794577579686782859617294487288528760250668083669692248958332853404340452023532127229847380552334648442614562940035556622963212012207732338538192899405526193182268083458876890584554087968948819637550006389795663504762034733913909751844434567893772079105376575647518388290691253080797890304167890626845955263446842087758169583779799841003310400048972882465169298888165379346985104632951445564978709005522005121837223936105456310687793811913185763168011105635429860629963030211196369699683500416735188344207968660189504979532856215104257479186255810438664693272463382940439193451260699957176368920407311545953955586054250325877871866141409985358016502371422188104768817917202590914798770571296943597805321436131750973523000492924734132773867042367039095021568748439096134928108880014221206401145310249071434239968636325731363565315628832681383150757751076960813572331958841654284342862403805576799849758852687115818160188963946768853195540873260172378096473771539360687815232090333492153851740889579569388292527014075482482661216756957340359412526189068397362859822485502843806523299287225547884125576242507091873169940209948929669253744757154016849576608352009174902568297402047954359708662225692330583622691647288522418125381640309120239946816485501426790027035280288999635915763026187380022294032087635061295881559455749897502312206728519805757457911411811689783346329171447506505318588461000469555460800694354572929085141506619826171573334434697638878265559764136851067479454040357402082296654040641672254515137483837694456862058235415415765136026244543009028401742814936264954489393148807235018207528249282423493876636130164835148769140463784981645287111432810421620708705985493127567475829301472344060021335367318862142492104147391868138340183041429571649787551315807141721354110904386257497898574249326614515034948759093874400322952546637553524622698810038890493365593353623640115793466942067623905981197885489018551693456310557413664810300812763930560490089461874015633571964429215902128515731564880695788714014360777911813391643375389545498954810444543678450861092516978087390870781169240745362578411926712690839771302779061013090549850072568632148026754238810050585988153902734592655417645542754984379566732585973479428617362754481586785767889293289388067798385330569189254826649929543722607978062157289694954025191838958448421591091071302580361307362243744778855821332282089195110748058307779084540731989079982866351587335100828637522610114293409002465106045859374049544244006555253120834192202352043697865777863885615863953696646805009781524573717254110677366364061564218788119403934507064584994852731078339253229276165452828235444081377076213323410836022605297564125012405503028931249263766664646763654233309753678653937443511914994995134519127841904209937015355207047144134566679955392047320973358491347359334824764547592790537666029175393141297032153910824034397327196345319237989792708762107908154402517756258000477190596136086580326825033379706565287331643848403815760761438019890443780258926533432237973856814602641232003511565313965751610637329890715155287355618692189801938422956158631261397443316720347868403549732446399319051032839243011036790508938564177638907668182960064620644181844967824980113530755525926499925761397026126287518242344470137736453251881585450284088586419137412771882284199631725064459376906336645306748752789824383672091145684611581855690934277734697309064000567575327488927174614183705688496084339030909454324860038558068302449461583517864613594791034031716172258967863872830867268936569719740426983722776692123974745014192420909527477088255713503239470473398109536188977167852478449606096847303504174751337506175686572874774567017769630458679017519345610939204192542569494150935817443915146322164674286338488612791786342927817566455841868862803420864098273478535654355826000624351385268582270528176724281575620770592977915924406141405771355385597779479525176751548157950409963220038074605716163257448100771645363569301841283862741031074296767250844253859738277329083026837474692554161001653441677718428741564055075461229268950410596502019435571789250070768651818420570990073234698261434319813452386419456870104173236670681527714388609379955560221302800420538032410941444339740353576721662665294321782580875089799869477988598855341438316550421661391960719619015864314724446331506670107484507285063447467025612142580774107202635626257070222305212407407715320475146167055713703536767716688044489574599569282550012095985470599734297855067688037679892522902299713625401208733756640049920700070707931684659394051907816181791696271857174210558185758350100919893427247778518238237210807846015769402142552032855578049315854777359080956350172021209959726989101779221189522642596776362164843349073120154540739309930939339371386530105213594684921786116899806698740846567131422912689766494481837193903403985707434658562009565795542952629904568305527745946672595602907298079825599141607614303391990125326267493691103620909600355155110573366685622880911460066137895027002936694882456284379564989887605369303270399994478214166309003143750621446545064770535947228944833303554115898153779465699980574335364543460179508356605176520405180928793032801249833151910947850861889152139071282607041662158770331176191068954698092526927469808163466304920430689190789456289339291805680718175115178499164932519940314560286109039274005524642254476882172324440352449504909125446167120239528294668580717974368371475650364989953748241746757726774637984723559408129713137886332925338738573920995082795518645450802717514499782884555412875932425407253687023385853912328396674880104740248437364126668233734307095810599903798831663927071583713391453498963338383555875750808980628450686220039238312327103059318846034841639022140711229277084256939121349547013374574379056676060638763716404509797406542228549981062406892673779863165511797364021464869205574258141830482296817316909478669594078340708770792821519902572340950248905700460736405390705412242829092840045834616567835223222415293355379440206241276611708343155416566846534004332012250907216645123530359538658883603603511895749175918160067832676218771489939745604887542471158589262763316985167498113333613529801062116985690145214217739123964283582446660914485796395415025938504302361174123106227577955066330640281269199008768916992709763898890113070984176269479704448464486864196964435712401487166207418869151825177825219154486230634660515377303448142184915515943465975060480943541623705714181339757426428251234659051883628930708378569883678578166765624491505404678801401349552587982389843636292481909398953550291523084866921372822967406474725204964718363939075123883349544487666937590730765463496165205587943198516273444313165077131022479578818616328350719222095903147552533013122184260854828718227886800460014825866509057303004764019356221802566935414771848865221384729190013823960946225037409803518996151096520282619323418738804037519431902902845143678294467267434433493229541705423291882987740470651274705317493677216105531343524078658555598300445893808455536893061237506842200601744001973886998921973944877973398197962373187127824217686807107175630615154274289019385549681909778228341758431157271904980133958678180417042299160643733397179208085143792060976928851904663415467297765479937746497274127782955019356191592622691668426826836603608706355417379567546349567767552553707292482221593363642779444611690062765266136130855864616853809023712950886500108474059866639869639797604759505770499870554222038879313275414738509154806169161453535246755595529542220809638270043576205711063018518553042606524252717091438145606551029255106599380587909657843495922676510853530660796459980671882593040453472822127473900421079720314994736338028007234749423055835145214885277282963047845379472873055619976084103652266353755222958404137683389556804201075398021733075152742133990694598015322520732741252841744232636140287208728273821245762012046050652064098269013292557851228441122785867065194102198520034612930278321508429169315543211374619258389262459794451264545787166361579317269762625919486664433606349358926448974721900101079263432790767126396042344482969762542849028212352862960112663942073313917607538993860057310604623754539787192660485660716883970343287615067572875324875335687749640188213112150716420088680269688515189132383048234744205905061969982846416932863881828608312300264816431844968257723414629137652211203561188013107391592206896950562130787474251761001448392564562542521586179685718736210662889932234748253939082402917674539257024642051282659670543449392241087557498207328861561170422926846239923866764205976442081078497278297837155075825637291793240611558046565975842995428437563115088850241926069012693445586818746634790553883551667530793034794705087791441305414090665420094795930676218188490383606756117428943393972442669543644321510192486060418708266799722245920991988892907427541194076157946848220893307473692737346212450797645447558366685907968390528480267262506184521764573216687087748258910407411660324337213906607449320750500654344192496588598607879712493872180759173233577448983466084436838269248854590363769759306988815677088027261581055333356864934846503054007647093247449384742952150879043333787460654581341572729099645624891373219420353779102203066530007829721183927317821217533527491131816427884931092500260094907106580296830318190677271052123453686309612640512178688025932549639113731374797695502442329478167122284744396921879545636721918720454975233182379755870260029688861077187567697911890656189973807456939092705190195796329609075684039189856609566135469659134449680889164389194208240687667472254816793525121655407702423422211238599678348898632375954879327860413220840532476502679658950485652097781836421366571073032019555323212817986594427956690363897133963631811261004438134614021025861344180705983374992940846003251064561017599342646804191798197230575348671011483734924071370954790544579075838078137382568014644614189326989433316860333677253132297974158559314257157998644506797919427097040718289047012497339402384470326664597190481447790555163393389042228887075781478776735041246180388175273011363935182838262924896047162296052013605244327490042822658910914198936255272207680907670968836707696769156056635674237435150702585984574922642034545850695757161934911620524312579537650501383919998875102952638243948115074286605243280824196051918792271404353545952284852024303117148329943482525010761380310548062960265758932152756348457162566571533800875002613144722127257773372401132532274187979015865960988938491244996652970177352126305148552819109619642779045795643861407418663396675291622836286880217753680785705936442864801360056388134465977902433223437381092957091764962697816120171106244544125736816820885218777928419818657413144693511139946565946290241809922954976599411566050671800107323620477485416023570643309409333983843880182350250551176476556941629638841099590113518304369555503162783744255557329248930812878960991086196640856973680518945750219784360215577677452642496846391710999884480569899043141366190138374613693990965836129671129206402446982312912925519451491692342625590320718157796649250263175716616659325484199573191986113474924164590638010751590114660574202785491755830258428078128185251761452472145830287215704018175951252615171455749995263568845202423262909131100900890211710329033950407446049225049835865463253435244441936041865111152316673802920747574020789353761847462649978868319131433913944294597208911556015291435689507844198213821408273375866485439894839425416211901481430611236964914577608485447455241001093034375419759090640083854778434603011940039415430993376925284007954237100232309199156452054214814917023074298550355533101709807085883698871903580021810824974984261712648119350443750972911862729569811774020682791712261093547099620500074553217340954911093738224294907913368325094317697224258331304508269296845076852057151261473737889113411460513666075618094406901106230445798001075986296254840192219370574248598253891200225475975119719123183859851759584751304653992902014937505887846802579696175348087038036753244504631512308574527570867026434934924138895476510948857404298966146238837316007665135339882216736238609142483232862225518138417310506144175312848141727934593159549239817691460013858701815463595061156359143014914409112611141700612381318051995881425033145974463003509051703296112416110284209321341096919579712622564467294745943917488415654879354884885431259550093755333016654503836329176142583709967244834441359679784893356729218908092544265269047040631598684705593370634429194166593835633953660940300870895242201393775626030098714676348273304633181255727148802991646068258193064198615380743816968884811122910141509013357833771855531297186014683931394469500923902101255795944605042507421991813031904619907413073535682322854375043317971596580630888698657242642346011609041253123385618083027927744543563695710312699487770458008774220709321210421814635125992615453381806540822616476048979873431726684878383763272257214478234432404201625066425827900948568460147911938090533096121142474749863699564302920936815343714338833571530398758317170042682876153431392671562535332423336754123552842456082510180747659774989690536066941851411799225082441429364223330127044998943650106517443657778555530624215139979538173169028273070657739740408704378934741202093477388041941634668595336048977136463907894439773625339992900141095962517032460714600594960857074773433330380616321139586208617852031502241858012406308530034994238636107714822782529447824024752086723431153287935655777409299996820294656273726547038856239526128541789375220471580148249227024368313006075455339798748227735027519269804133821692664519089274034902053465019962695464309498618985957724305816538287389072784840064319173715851590888650352613647423612886727500156159059573935727241396229177836568579299117950397129073801758880959381961617421138642935403041228848271211267308136962098901285407102635881226356001039181959706820574672091644790953531067018818211652701628746136278492736800774527941153479170853814157487725972668616279556841388996264349676628032210827209236180433439811193015609780023797621980687054807651926660525024452565847404354064765259871217550443683858348917364441201527134162474357875542635902253890573401980689059329535355201417956872432994694541072212409129249790326433296943058692510468412445556991761181280829194442230316428792508069451937730879952959783821327713886166518965258931042841862279794754260907559954872498526488502554779209872033518724743739629517083686021449216347500052006321756910825469390810543530528636072015215889577860801169061305178535741009589852228163728433227956390352071150949207589946502576295048427648987151033171715243089492142646319393457070643604592104149704137475444705912682456682708082622497428993862684125307606942613867358146414510995079595097009099665849974489517146788107187712950586447693813927105720875763062958759335853245839444933285386326280531456592690771114944919462299478073099834961209218658883554539345790323931735181060240439150601949637647871881090796896277789756535356093437930217668253782167971367739372223983977781514411987640693650176701008872942750774844384144828418431834994224694001323192341663313738238258183242799613554355864712732017652106383836295920890983184734348660167620866452614885741843355009923429866238347445667811930560766865402877967284249668164032006232742521111016573767438789361534539045805925953596226573932192145908221947240507915344435302733024477197446623180110103693401165171366510355256111963433142177710151754910281833155664082057128659480004079858938294799539776144433488337941908737193128430474817396757508631790901110388734352460772712226180452047154082658541519192431558854878655643904750660609257969106176458224930459150332907579333696277835742244349330404065085146000893524216202364655671670894344602296090642541008972075155491351453459782578817557320668270127658289379348873848954693892084101684976151536090421626900215960322321680869008437455672498757449904559402846797904999614715348200714461028724598957676084347337407493801000544926227976845612687346335878452124036773423447144313304932368082693320163452429262112408688767623793417611430026165136108565635446325284649967634151926133916514296148693336734295519472337896970079647457182880003397197819729992734726427395185849680888931797423679938454015248112647030106582954580507920090520671693373221390132454392591017657403912555999331977429315077159882102598765912278081842414122133023001566210295009430287177795638575839498526981104683713502888516287716320280378122600284903300411620924455616599598909113890928314086915257330998399038615176972659936379425319612526864862059574871372503888437595363705728019627595559792338528695363555768082370426644172282938669460756816255123068415472103988627471863980383868210645430235139888114779340327762954533055976968780402111765938154208727567315702358640025443640052250897820941810613814550574048218139633811139510237578744751138885811728722313251741139524276352814758542213033342994990679622395435029365028765109237440340736920562985073092921984167856063725396521424002114995135364415919648377874697877234068952546739227000476263678366584817509186115787125775269664475315487729445717018247484407719107045325731471213426593911535896722503526325707396590621358290395323237261199391520985636409047536282319494389426167536645222743354202822767450446723697836726748691023471736988686780602683004960011038244182315532778219103620485025589436640961622147752063855286266603646869095110921134718907471006085876935286744093254906335669727989287042049967761198183902667427622905901404540855791418790850531900893668692854636684635984654060304191055424031463803249931441711103169163081602998731199056477052018621062239520707112620513357875180229443414379510437425295373083804540436106858328653461577263192885352560522104411099866501273539974513154790043396994419249236960839542237977157258683427072561501506771315856133160582287198712314851772175260505703954925456313718982432568731172853551337875086854458366088897340940838490247181842690793139661952506836972589906086935300813537841854377086884705730939724028286557228863965560572010037539768316616888610566542760315139045287625495666192556907166032567109251099878794344089837417067585999482469645684192674606337032067836374922133211964349081924403920664651569678775610022532481308663425041521889153169935535867060076396851589637560825099993728542814931144187418597208859839760415714578907158311453033336835099686915408008536191563972069389946200427276201447358243733896054392408022851104035462049330471473941205018648626388104196004036379815550674472369045657509838612118421115842693640308900993739250509863124481005571927097161499380550731353294383110783017973904702918187815116829298813480573458023435070973022382768779267646010348507733521612007308048981016156593801932004530918620260876634413517186976620092846956995270907523910203165267563540780903833401025777170431051853591104913975365976708467966177958108246340149324172321916986494576812865157049143337964683730423481962482302821528742625124727564448472141064296078775451424106609531860357290785451720146542993348497775976808068153921820325867142971940176544170822732558934072980596171977849755642199417883888206483754590321189147488485490582908388568784890970667618699362020796702669607949862215296681582483159942692361304572786728627471832565675719290888804700424154722908642249510512032233094072008594545335858604668380997175956858546280056299491976730332364640048539307267992117694157211506357046116925877893071766496354559793789496755712462585354747842352772821194743115143065422962801890386967522718651384965895336480407196448309367051566748117027344080821889598521354739060319447160326974561714297785013859850660978745900843654003441023616592383356677146802047572998089879603538898671765833438415333164213030033858429828782175816876269677554177512483729968310826971850570827666749239972932666712130533634057210461336226348260292915869956799433374018080124963247843331845862898803010441727163181702925730184343461962247151031925506951911882519560616991728227586187180935808864114403886819272580652653492339781299897468147711795902449310156215683404899993187169121865470188520309044055016450770133182597062325368815084575210937267856440484123895909043833641705360459689220796684169617537692033486880216325211244671332435397464143303503303760543630532582821260867934622164085403389716166157746934505148900352197801300640064134491747166901085760717285922946447157672167460412195686100749056861929487609001098454534959467916923616965544133874556834177332954744979075795115212596695735733138320036793570824055130366331311166474348373607460542875207500175743406817299228237448050441274474841470034735948867511589377379356334806470438471108069484446066703557736438236170048240440816488396064375124938454438153159737625899009080030902163786232760247225404014781662766283569775321814523625431439065448816554383146809448848581926900771638407797526451915285522893701331289526470516723355271480617142109115652256362020898992504872755436913593902195834854692776943080259136494065901354302818179478826135960970903032572085299725191374600653857365926055453402275383936928680951992061867375559502209792986238538824828091260960360588525522231844084344229354938324387927861349240233695026978380962220617133118755001499996240282330684065641865192708824438428423931294746205293299917249383242935460601662227803959583328815323686739259368984804904833884587666552497281411608539738141254783903108900054298881978341285279681156291298457011186771754735135976882768461760366638047887376495109078428127842873602022821960555579813245033646505707907424115423607386532832773949431440588324907016410585769564685204982504063317092448908197046373752046087215386793692241285301942638234933934487015746200636510417658942597977024597840808996375896112949748921489720421518216635717499212314670303347830439689244432484095381252875230842782391516157125828962001856857362225557669392137638924120267207216905464514072423211687488624684878058245278278041276289304374352634302508201040122418258856765769312611759063857999569806892857756179738908564120900694256176324590815724796969702491147859972695130368254599355860299396469795713648554155276817588881812032448516279280992511648794347507748647701362871100303039219119827816113034965119605020996121907942821636560621812842908885171006758774472390782794120837671308964917782619535762584248279789633040666311670355659381478783449498491701615710786896130355255519486559281754799993242967972178215419040915433583921549689615709212260586645834755665758399948175558470295312761121518651269426515861470070144335025889271492581748624951415909587987031351269672416184470057060093590875710604297483916685105324510186593736155428438827121704750919960206365830485606436846205827823503430246883680799716564709994908084045372322175995280570035429436151605925857418156947180499411099165332377247588317001673953031974435669707337040135488970384578325256718888993562433361952642994408676516766067743947620184974763101284327417759088990627611060859849902788972209291453422691156082160712815947975764177485755548900868991499077624348047540311758660748568107450783226045842527014559679205886509339919713829384667915426334010306144786650016238227825127227149169889301592870701590546413830068939592072870540950985227356022837119568368916373329843668851215830069507052244740207938691477519182905022703903370778723480214944394671322334765495338423277801846190452147636359660805389438880114516414912443493016563135773724727307524103748052666714647401280983836491656198012495781673697166474519355535263971765112128447703097344286068767869920515952121327401296800841010076140845158905824826988103467683941298223289653624627081450152846657874719773682287646272923284221185521863458128477111331477616493585442366548452212708210970875495884801344027538939755788129778687361730302208933136370316139007980432271453763221417811979494285020239693070890795380570820826329690698561844299232324316458759177375653846383509731153524325642908544345949104910654145182379706282472622454131203524063871037120760331843565172884156858281519124318831498139492317877044765682819905184924230432668440533033205613107812014587678762147042180428309205925610822805640990902206372961604615503633342481258134096464885393616810933533311717855796303081068462532049358259451073305378865180115197381181585273953971584208311355565286132582878937849649562947253689190472940835640202499108076929793313500068750101078550691083822410693533714651475433345246449378363855121397256367860191930738232287766087904694068791320172485259379082579894139951606346937243740738722366508077835573115355065442316716815809599558634123653046682201339043433307971427788114833836552887013107797442415960828462741796172192573166894705324738535274743167493687710394586112344965751571296405794523685915209176909454967650776176812077334133742318131318309471085406984528556200765669961888645877034791791497355494195191448221407509369499579853361240187197784683812750008603438655201462623388238328518890900096240835896737537960883533504242254654278201787884390452239071259721506965709006008868699021319052248639404351513068723228418364069436233332209792838858052461158247237938477620036770755318717360449871178857565951212660388499105540365996288496727902581841047398969929500696497204564227823704912833562407904756045013753461661195803899305354283567803808439172144655424659619491634837131142326018346872197636726700273166486121434456732443763652164969162461266034140324281298989994909415930590141399829523807495235656382160026234384425752653898286525613717922652267123434366833005465695396050965104885234623932405823837376534631530782268922494591655559098865638171344233359808723616333411178385448734570603549369231505880288572265297752968506894090051896800553935660423799401319744384140183116242675282625366423204075472795217714516290154618847541059001407748481042741437972939360855198388311312081906595930758808215756459566622438687251387096168633548896437985955875320540136057131878992623513755761660791064980307140318857025220797570918752469085532541642136588163057162027285956801840691090776981142251812445605552117824828220705789304102785714211443990110549511689808506059678476160790882166568095186795977377494690972449064980791200170370775997104644759905042418626782449433099529505734464151921144177090989360720071783496221057580108440216685582039086187602421785634338890158499188476952100248485563227472199921280574816432857227628414301187422078568785114943323061260121007407453660139998300021574301192935455190547137043636162104058020686009338891288088132676174875476924197283223241019070742730345442001411660236884844053488380395450196400008754258153340978169426151268373169967860667904258242685542597811480788991822832349068299935188981872017266354166206209736653978939252055390768741732546873647609352889563647171861598362641575039647329470557639652213471944919816312781320477397585754157702048426274048452886370772987308523574091448248932985789983805438457639067531025755887450998072789064565400705458965387304833479130312136505830557722716358967023447271080725328844834944031339085123869914705584760080300739325406702128080887143110474960672777261147793367423023232795800897385622118607858313363292603766301092663884593594042109800935413624596608860181180695234493672114297639410071281535124295239031214964609288101680831615530956695956373334627130475316730756838518217154042542018768612775821478702933982220771796062594120508530370831660818332432474188989448065703678827253892550450588920396944612509923727265386787245435369575138356181816520140859036554987970222098002882907978513990137671740865401502691398445124905629787886027360694805576846577494366446177040788554757900082834371943099951531920675100268305759730044261029843892716128123211808075022859642893008701257568565504797530027527481317158199585024036823686255318156453080680169864010257231695029482759977953285320004784932314791784995411608648450948057354982714341083007888062609848884972666655207685185357101821359713171839140764224207184184383640879015553817130266022632720210509983527275379780937880474584989950722672975878240371764041892295716428908208641019265935794385824537810471440899708844636567150546480707364346457668544933558909324596616248430153627315461810395969674929223907061064934027500398723722258940991187507802619997538298075254277078085685296719650787383041501782908865107740017869655456183332067837266885107338890190052589723437352465918536385880700837769913206623401394948829488276581129660736362827698841068049885568287191490957136471477541728426925940249281144329145056591768717373567082516036484203589989123714139653901792970095359399873046357403408648309993259657619670736430989822704763840116056806746614216139615369750378847133256803283973035947552346675597027304913545725820247967644505256468630563289857039666482363656723563712772002025185138188192143049150419326810414533501362204863111929541992792836714606275336396895825435931743445247444219115859774249215337699323738648138890063895282074870463993592796644541020457764059136032166727302195517830653968716823639593893827169042617317168136114058790028888937571804146215392761141975384806961510775633762154401667437943374735340550298127841070576221148796027089970969061868904592481774859598423344575757130267597811025258062424991088098007969691963002550717082640835809708417565596137731405541559138650314199496936976890406162484452555909134955953431942772868614075866475451814880191635066706215228947676545155354547884118224084906296958785020329640815353539546716913665958849393654564137930321882288626127913714456713241734288767717768005117514544009356889956072759556826003262736012385423141995939238272893972808208899232244036756801897113123321296873597519756713992562238531055713798534777111279991991988310394044607295443513816486637524958366895238745279665927044441636786573426148723172545216934130287561801775833674821191483514389759169276349677316690152460246716116677616285057579914503130660832244821189711412195266599764891236755575704477743592660044816565240536464635450601109023578910831915864165886770413319358040339998450572524092946574462298148192677493813480060577993206060576247148559821742556293062670816173575440993881777853865126278356167498635058654585317236910661367493553294023720124184045959814904781374566158368454468758415213062291379715578327902250240271003917956513953600332447602309094997874907297999855752048846841843505078920708052883408454193345206599170151670273268436415159683554329232073678409481845200370630532090902807923802576094301637114964590807983817716566772114571798532064677386320115234356989550505704461154087565406343653189963832156569374165461748117522748484513561517098273014989378636114051313161462128454729440255441130674241602318950676113020968688563730570721787215344810067728528192339398290166815080333634700661047486612477582081141722484081688930178546256125074230271179861426199327195149943312738894035271766489496563510525266513874175523550529626614194030059143473315275774903460201158145860707118372144066426052750144879572889885372551418254999708623488858012076979831436951395312907372027370395421932581014841870825173243095452803119277764327423463647319302731474567695827831723531242620794587163074519115590307568693343238493487967393575946842029158327349217580714427760505705288819028041256544927428473319700637111018986487824560314492123119610966706986610229698605802135668339506184245933277081693564655304930102147842449572388575014837056412812966305115085406143265033891727778741627552355960303702308202486742852227467082403774201290423418322205886351497845316132784390216555501904345737219341879671491012371744826305713846402466431805048010469964671293875314970517011738891769022700829141925015214241069344026501114706128727054334370952406972858080459796011270529045517546311493703271679157045088585230727599505932932328890232374807881299679347042787812538876150380240754170152227624045370445899899086285651916175427757520484870137203153118540266021314227959018360779204186820561701512191355251908963178172398659424616750846500870360852606111953753705123288828185904163332504215336020646889537614064556076361568200030822962296621497449608011686985847013399448259402648913317180851628980636462090172445240406669470515189206517096419709604703763598741948837723660248901820806078573076030106918407085382207299135115923378516918032867837674136143021452903868611371545062250164502008172614410936309869129816693490405514045975263394942252030284576231733496591087233755877202134850837657965000778888168168263515719432137705169554733216659181661834047400687101113115781639397622821408495937198877133742850388437394495888292161556203087491214257627600314660740704705620271289704631817035052225780762831826875936295932352047179646828922383984050196198982580373373435005908904365447347216620379920067818406267087666876636093598229828293141134337289656884509047893087616990400042061126877359669034842830800761949734553963199482281199343663816778027891230094692665879520694169392554804992717425120823316542861172381260124029564232388071770086799431569488697923965604715305630333565370475369649283020432666934893569253652358331665445769785872229667032389444352272489976415957184505323979847218781020989620688056606486305153055828456339450988708267455668100658207634055369341673939938051068561554765392699511421875465574783230162834230434642648926210577486523043405255231511742356358824488050966104404098936076152144700386450739988502934380023184607836167103481693998282537671759684791442571298880036817423044672369516198144753184356403672858101268485385990681033227577432937025361974235837013818765713593049835300918185854290100356110896411084231528978434709326136915223222381396836042462540471930008483136758038035916103671664260519876157370961779422998741901384825160539745480564706291889270773785314335020194227037592086919376889183811664567340697502214197835166145740640626131004030797905624882038914589477786919776752171370950965004755688760704495071042950061953986882629611349060487822497091132215012551796233653454965133362137134675177430232585833916731908081338842797064913867347508706503156409351288432387682796303838080112019891084807965911935674504215300879602090990360023237154902390698057741976534424353279905888774813109404998003707211108126517480859090043292610431913127359777504958706048534168265151731900520151806626787247238456467624358847217206828636978546808456212227211395655835815947895616961379973421851843080586122996365270211584319885854275542770485090888264793619331349808163235649484642338588470663892159959091782752970197349403806010604459061387077184078726872285142172376156155840300715088757016734953283158061847137761055752891449760323927148021318951825518633578876546975028099075689312346663389726947436659262009700800969370847988641110375569596799705156191737308368718757975941956831255361701043355162595623877807791335176967269585764015876847341108658429097609828132961652691744295319018674045848500598108914003722801081550248737806836438545742769461322007800282832842962256018195256319005681192285112113582497683912489094215357913300720786978956713383953390385958594348685876485340858412115556708725226389664389567774290030494463374217913821948845107939513116823277337163335667404881667751861979090828388216938762543456187102385786735444214796052459334990389932676995347581760097024609636205806957264277906559039474689726039369811205512476578335934334103274860672265257364272196181862638236448004241701962165351432879859027636467241410512407520560609422929640219417362835785837599057103861112486916507664336711504582885318335723657919384925442566702964929807549377315706147819967799046528450204201147100990962833481936657224610314378896501256102253369271684201203115843776281587688118440133335584651717877577480434921265408260313543132175414956509265321119588656892350162710402905776733190074248487626189784204699249036410667432583811298681334092217451855156026988894971702731534076192774214128457351814681685168570918167795491383420254387686227608471553950345986237564566381812960675350120238000998881321571943863677286191830328002619232182705837032489118911264556072830519598658991895028549235585094942110904391525976246901466900530553139970703930712009431264619203565140738146120021933213549898115794335950778619158100382618755463119047211807753735653918265040288580122779308590925684706795801534198667872815537220627829857333231344496193063978354812227081059522320568728053229013313652822754074238078379524745297238448733588410830859111212895043234593998602581829895611463276091779529996072161065893483479987147411857871257525697710501051913248613713944741192599536882201598228889278757131811122120108432414554505445330307277207289907717933267869026569802697788561657258262282897181126546933328073187575895951687762679036044809496970638305358916678947396570937422742416518916881150407191477933015004014739743913425799446403469439660360677953074660123342934945232108724842079885275056900166970883915878566238598609690539720030796219356299790274450185817246859908446752174954139934574185031822132578767951198296229502108185654722721020383149391291212069184663491414147365731455509000101577483091467781873365817826533067658023584008392386469615063069102050300514457463511370931501909094387607008199160405944431278781272039893118410294949739370318008332621588405747752214088983548333897466947165715645872958828906015872931911528647689017235211899252071548410878685582768562763679665490645210004047680567904509361584880871642358221081795459580173708335907794005786459014226096198051874929197701532399528093777040432250226245483679158674183809728454501457186502330881770518741147089865944692123653003679434624937032318331032121780000935468852591211842575633090265315700811732061822899172107160187022137205870355550191133082475734970833776720345133080413457776034894520501867907766722353803828284228218810957557264014555685038139648555296254080137858307067804540112557671582537597689725942200939628794648709197487351687067994551975538139772796375126432661178980117816957180442650293660271887216855739273468445606101371618935728194263971204137584212671874717054405220563944095198601566393856786504285631183294913754709344256698309137265930898815694270782396481865210907282829320438943549371073990713882975531666309555712584855121426017722499907673115076845566658238849534950486751895605822586353247057524826515405022919449279887890448343904443752049630855017253687935430800280626319995446253310821775208191688888105925361568797897040788351133579113609165072485241224045298103233517759000157698014811357747319746319785550187924553274844968946414566427621244064097125101790667580966768341998860646340242964598890100619340920973847287733631753650113906785394318868828384628209796366000494568552342737370708978358333041707429823412789300365577334762569636839798328663115449916781741153449122201525442259901314715792041479526317654853604453677254236504392981335338681793700052801306330348150392240569349503279820398175023943949659787523675708180743492357492615011943864541028636264371424632829715348853291315691527572454532392959278636203004314690072666858325934926637228228888312039605644278532911422111526344958418736949730383064256213702128654172508730199241427830193155398443799127907762473082311324460319968042684865204968009190067318474815717295913807141809162841132487620877122569300991422907351648994998258466785729767479408537713056699310344437820081166402170339902925156636323389310200844798705744552636568587440794801550920114668141922846051609089603534253078369858174654797620260676336457013739180142909560993446205894127023881508629186177035326254069331120207002196576521853330388498352736825914406877489298659161469228408291421594475093006290868544911001604119088148060622354388033131672167836606926529605746003140448776418644059971556769875657765648238045851576744551365852208517996445631449345199451626048651541389825602952034402022568508176700614201292749989020940721982557052276684879303949672981644093887607330562110258565591033939263925210977915817000448686578150839306624148034301101377749615292427177870070632072507634341938636581017733012118232932704092190889161152594242852752041157724436764600740759283215760865700729705209050977076445816157801346717068368940935874443809112670169022363813157642693477352286100164189043051434500725876476638485801873842096826725946902085683230532808863774677444399665565279970419162039815213733379851746982060614897528048716382049188558336987094777023573342627373540386441492972715547319908919911648767015581828854803932752802097192438957082618069594926904017111560527081487346151429793611760859502233949380213052648869853443310348620678171749804428566059492103988646606955764685929414580728116363356364687925452130522371605163379869170517204481534905837517794198748530661045115837613731812028508906717961904152086164159290213379132621624220994584158399497735151425229762340169536276129364236629096752502671162471273671726241007113845675384515878107651779445236138455389100358281598530965610903151613584194737120808766787383165752354275178684039013471581517258217118599909088178292611025955875395551945176079294899174113463818827205099337651158809314172383110759811089744668802640593060178146705725756901213151832756560096214689480428111650982073812466595577837932439100583757164196857414296052934898501125183485666327206642777183769054209323956756869401241350933122022563426279916067786967522566050344847450724504239909509792658478325399175998577014866240922414335011229749865614013866133634217884697943412713374374736382434192483319215522172293404411621123297114040666866280493958215056345897332935318392412849853866123901370351453301234377650472506843121099681247254136814321713734443589098638836641769094104352309881845376692785728688899292079530910317246772901526262846973684069159132391293366973275547849740184358157399751022213957406772935351130880984285025973157492401236042753291302997489129700935505954159845887112694230777005625043597319431639447388580015855906505574482350831582176550447562094905447559663996501783770453419783714022091951645256118513635374820365248102334394549988310656251758388811067299347678294446885093562894713127591104596528893134062365467227298125484461838802472666897710187732153164891548757268857635623369290739296593006445494724638603151007046474566181369583430689118845678274040456278987481212774932600579388735935824950857520050636597746934214225494344634592345724353585447686053062304861275899648017476471347698763798915241168406428573150330779968444785852610284602158607238534253043766717773518583884490747577111045751515566360082495771032841193790816417629668018155255386842484269425885542398478945857485913585347660858831419665865943397142804590110778716631058896543432948266390845867750649055344550126616247146087918757575417912696665751590763699473863234493493223052641646357764549230696393517392303535978136827835692583173888929629557069481224019422157413989950579205925600888716270282168145741317621836644072332692241142391194964891308665340143679134727632876674433453811711155331607000256049029369360447817950979651504689163926076695189184021267057467534085385411797204569722663360820992813999660154655705474214645373116427588969250691995983288209332767426973008061791753446801148232833710897306667941032407314065345228636875814016862612935016029875477834285367518090253460891866967314210366733179517605559006256103407372929882854571683635887499260610967647640822806500925406875005867913220172434615623277656778201565302152414556648600478633101762616874200492493883726323071394104775801198900977505325993570164797821832771000489775894110902987185574821791020381409303982447028545065061393408034267152660008808490208642872447897850309714405886923996179752143737305198950876974720677019605261240450364743987272188915248889784849450005078596438821953759909692332313892724421458182499793471539903952709341168534863872507060898433773006048341191241267561124972052581932149927276330636245181420180871890203888750399303123684845086812008962863320674776299463259598131261659311647493777940163555554158874550167940796008471347384558718861119296570257784932936737433960272901886068769092357307062489013755093921380162556286100125705181677700784683911475164421603891960062367596821664127063761150417838946477445229421025297808884031988511704183659120411942276197444195353025297561338941161374323905575163066052341079476120001331041692596915967484272746496815000804082572658227845504042162167225274490751142977522237931801239122219680859369999132748591247798468165537154212272092417141021928476037144139683631947629829792714400301730641350797983410896853583441465518732137300298520660999229730116418848470512930528976577083122114357487886118748734469491125953971251877705239999687641456557987951853672281628221461598504659072739686181353258085113742789342111630465047288921034384031426677472927666067053129202903928725545754943639261240690028258900026738764663900982160761149816561576466237289476921799646889975551164306188050890034363542953994145343507759190168657839050969727751861240356398613389831330011821111048750838975958557830715010019666627710276437746221429211635093421061147477501753108159606377448932636076720028818380245494163517769104912996697077533550190249377584620868180047311876179096608195044847456750779513229894112821484522777561004618379930786717110554109376094523302930209704802286654052842208083648510794674927537197131702031298966213135345815613304647557122085952817669429161145545140600263661379555907738248768061017843656506148411004295137355958091903272579461348282982250118948179716631521581437265474486304209198847691138619515133346744324030157131881860355676182886286603648701081450234519609330278711844237061767461229367358632012982000625913864812322641143342082345835605014243206583097947308832042153662528901472436171382919807087075351521629521829910010885984982309228813481453537557935525456071549315533577486303006462858763658541826586107370043138068168224227966619919872680228250674405091454353234932707508328396294288818508057859818841437162279711594855068438975625646935406443133888881133052999996677561333855819973536187179772771358658222554708121226689504952385519337307265063274944909740484897452381064288486714898247221355851930363549430018579798263364639188706171041606376883466496129323704419996540695838072254311495886597343747570563143870107260297307630300472635133161964571701158815521696204143883944748967918403234640736125726720299063031282525504712284155050067197194937803749436750256957298666313208829889703407094903463561159456387061916746949847009778087514121296186872474239104234944964086136657922560904542643179744249766193313487369338591629206373342314008335457091085652738902939049323127040937742719293460128063090254044640357572884139438470325850562509272619634901638690388545746354977083956314522001526804777640478559769086733270142619855553628641524319272162379864220288068933265035997425034933050311189377539840402591746783452179004545946402252247956507893188088333896668220778347605484055860496588876401091107407554285832813154804614512595275650666372845002877205590713375426975439370677067798835276769153623801044186660124713108045304696794678073228992955285317246466097314857230893690763574398450496913785679925343919040039443693120465198334729435759951057303747611073403820801876251372588623041115338335540019055165605402501815439026092271257819843997602982431006981757142264368793045592480759963082379177185706457279200754789209236914233353452678344664504723563653970252676278836629883591400714639542111590872588590773694008258160493047591393650748296378708932916341193136946424055741349128738938971584170026980564651059007799607266182188934646706305483640283246405627902723511711136099783475688397882287128769798439545025366418412526407993783146399262925239651098445446678378372548764197666665082831735600184718536944862502290559757650488199555877762642410773853529829127471874685118456947990623033523033097660211238456233919454204677535892652303833738904346135599155876841491493330375128557211415327253268588364327641613931157770807641268224122859068491670630413965053533958249921327090499103340151731663684199411566557857734389313657636447532966206208573964081431167970187220559973900879139369927932313368718277391099147780932965985552770367134022254891820374950873858181160722578360762095718973680115194664249875944070376510195333326087219896386304510403500845906707587568008468434805977614970551237614227109004756686399761282743939454554365467762467100054432194914006453710594662102918309902689645369075707349514860240313485818901490436407364885212227390995506356549638044405237343500974966248043426431008051088407686305045611669079238757759939288863628657943015297252007053941747532038233951500473782139253561002585776075788640730604430963255675425295834131513254241082590642713365002850589270663676355545489458321164830998799277092037263543656507673604765491075207301247329191953418277285457932863332724570090007318160100629443354920240600260649016929239227422959107852188856691560507616006424691943556221935679499703536374743406867672607956244054272366221189338291960698790789464311963841080147644193430173680672914499026997532256542454035948487040368082662509516740495483073032988748491120898903769287614151315955102968519857946235811893688110829465939009493558321106505157909017736778244071447043557066311431533303023109035418212895310591302562081718155544137237951840847292705261662040600289838593230147988277161329959898407694187835311576507841787384515961531548509062848043486055940355024300586294983406822713696534686283483911548173224670108323762318191170328801695658280445788198707813043230136946447581018351941976855163536070401609084780685379542583998895270957214973493634853088197238873659086423774236403896088588730309741799307719579350696805429671932434174831997822986016659170029330371703930597348227544371938396945188165721736900761204553839469791367779108854200645973684271979878354013164038013423885347833842170911914502515495537911900786112921920970726259513822010615186524600802298169832145352520301571966572361958242823839616314339967984641476104496774867037096633477966374294256274062480412566759200019886275896933278456798135668131633684410090101264754285122633042824517355541098799250514347586252194663666881673845326534499700072230566202804292500328014047544841344280266474098098762780142417238714204324998730927583335224481190047036454650822466563318562232875397781621159027032748776691356300590209496074591407147815969068930120669562797254638342593232466288500937449506782037879504953767506908018492980783439747941155574535074894447909356046683865565000568194487443284525525081731987463905094214993286956985268773914385116867411305027598715303123272206163792144980559415690414270208443812627363463929532190027436219172749703845454106923620275098435537567339175721437931211046102201503767873505091667533328491945608286057847221910518375195624354919617111667166547657778033113220141455593625417642281833259946247902012250207069133223899957224079157643048908766145836784285480546110215416283799265007596956222074945319467883794637292516531608415606150819790034251451168461017279424655826108024852566804498317661538920885633175159419633054576302817670158335072349686413760338083480971350679822790292473028072029537433949921506636762140538353467284638252049605555418358814883154693360818343260107753292362388675019598702522073595752403999205424435744260856711568684161190967071002201435215765432401860880144777436454338066667584971491406144759998728232930203072208993187485166147239961586034946039983030748329402197057807534725068174873908068718594429729479721588647134753325415862427793610000462145206723803121859183390244665439767535388669122888400467034706745354465031552276694011860275270405936951994695666216035842838166309154814556673869512529015615248633655188480828694812359402801167441450192907744494353480311409018736996129084022076189374502484712383152568094118827042646979608670514355719023001197892926650866433807329461220882102749326818233796481770023187204842815531982801602789738186714750211887666085868708276244739560444193739464524282954933464476141250949569170574637433629353267099543806356516450397462804224826865453845978117413016977471339706538541991119618387151919181396614130507306519907480468996235950748158954632667426854361512797217629395455487256570804784846190908457266403179220585706693675166795279912195320887955174279936941812249036509598512496414752092889019847530832073242721330782293713638533490497333805392060665606580589174665155828126051802435354836903153889297117383721463105179737086863826387282650339371030014124979139193458081206137137784410273497609358823916799968915683460281530925262124769332811545916321254747500150563020187532710914795704763387798793536388184175897167988244915951983947095425701751533214717593090610607809489880173759526883245963010470012882600379582314690268945732203278270141750997120151177275690204714199284334526566350458575836986890832704764416137613928528868122708306763067592626422561283753495351131987808378441024306011524624407194029020886309834043580358979012948695475514034812332638550864446666060956751488768315080860959620234395651809739312477888488971244106254229195497625254408481939835818629163992261555352959830906517739551231476045806188591012763544529064929940718943681538388084305250724163695918026683460100615734056576214869170545096910170396678008463219133965860630446605373311730151256420873141739515272087529621224937547466838107334672729170366555451403794052084930524521862181791005232556847289007791527326453947813800041280903372040873175499730039565329165536861083144325141306867730632571470361970935346709729235972229586019595905612177442326651230136774504821964124150433144271927923235120980755023238704488112929094894100284601223050608289828979986193376410364943242699405065436404136978214698501301120563029564418528682356002690048222568069704225687635852622821210010615365619059606828395045660968958168053342642883500550407117182449740797865385457082630796340736487938232083289162687404415370857049671108381105280823632946217641024048238387458559632187624386555845622180672403591972378056129353819153692604601692423112845668485487345658079056931629206825223844293706755057247693325378365296742735407034375490726691067362748329117997333696629237520892377773089351570641715014107707481557566670761044953655804301942480208095833853968785679526924943809370542551384256499854827686739344005058470566848446446925844879026430830237693839661505699228975006326804123932556782891334371093934332419735616303468022167947726175245827776621145665381175934991346934583033064011279438717040429258805917732789711961410072665557638652499816444851167557181874441078652730705368493087991916820511811044716763931051914096956801850744764737263708299800912995631469715625133817156327055118790247318827605474094877570181887766244868608667490029303801424937413831376340114933108078133008922355033230360628429697142808375439099841676009816389594129558810229539358107253972984106810072334868100885298854622457058503577089570449217430571028973859788239198726342150485811526172558735824279899858899905568164384270886741138852845485988547400395049753701597378312340692938095912546362897982610388806017403862088377151583165249323695759869029984972109847734227807994104036299390625751407442797690563478119250099412645956624127725788690359063247252732499885052962651641804607072864812608688526103448723872706091628287742014312012159534027827747172095178851217734804965735555012343495423492325459253288370617715776710710964904908023276234605302171829624583368244928044617053001832439643067290687428740504930551836304312312871225497398391131115419421616863159542249104178113411458278986721986534039725334557397764224185709805982677773705789371906427824034384340126341701634123007931064686416055475376314312836959039068184065683716162296399159289944966070235926127669981410149940331755992175257824131017389435021961639332964464911149892734572004626130330897537428384759370141604335580363265791514739883344667585347833485967396876854814845525118072529404430613291285529707704060418732576149739389436917184342399745872193432070404649157220784338554460578538208163967774260533296523667570981516817065594021137263517330120158921026937921781093078318116491932690153232831033640849936756281382417393091966040732420799887462680701138776344065974628439418678875691865913588750142192406419215808715902970525576643979680263258736869525077452322840621401661718163518534409886187620534597299686329749318601629434722553352368894754495519914486729113259435525111752416200301230758568148574359147179354749420943844942590777753193439049583343338118945799330828698118112737281798604329124752127246711819817638089801634134348443764101312344827479260482029133375803845408616246624988450342321518002050815126706212248321228440088159478663250359470997344845763065025244471049675945123689368971451461148276184104545367583404687109673544929126611396634580208052027333598789513634855316295321151721519605005631068349859129929968557540542389409921182303527654232377338413269606716586503349479524651436075821902159305901902938400857914026669155611898734449443533139204621336540094869584127551663030313954813972468494753894834094342730871587218337115615341918441098907728700539646210195997097350035170674183132530238293678490626674383761614948979028561345129209101640518221069005774455294728337138039484505972920590092713134512287705046109859357411303129207588449891523613002487632761081299397864895330116081298577924340181128565099950955585515785471762385792632815853108243824557434314706974639502406503042482824944292539189369397207450448587611989234563979067311363560120892865310692354063672233960681518269284654970176234645408744141109692315274653152244847530949816183197752617815459427258170861626297837969126604634586199164582666249744762613115436502415832237754171334647370029371699375317548934773373108621735536333881257645225275842710416651574586419519005939218048435165186745678029896884528049738329630650753105646486160842846870477006184154789343082307872341162791074372923982442496805308036494219436304958997464649580621807575229485715753609717695471571718615656795265852551259556819347101496988082424139842566289505009894209394391332811323042445715365862647955323734936657603941346778201152884798859545742820552165185206030729747335269606115171221792954759999116330486534143293245720867659065799629948636324332580389882122696480652601845608781275906853899398949298952540761702487069940587858831818193010535833682934161201784421443683063982415746990609849284267685352156096319893944246329266995644696010047050569030864214260044389548635044712679397547545169646389876099988756619245458448950056629869540488588782823008065849825804134434679587270520250896908254679011908640875984257711501721087040939159820121594742758208246175410808364946669901624705951750395544102003011338933160717881700084956572446737307751499802228760121745244056237079365382625415840863609196533322518434988315615654267187168072509000097457521522183887344055424633975186305045488055413594386712708835281609688870179306327693319007734282430905973653495445220149139659656330270589733710199967886851432135386359453194201024162861884608061167132651646939146739846842100660976165044180806344536238929692424572535929918942927673867033519646919241525556588507115908554582949169718517225232934299596430226759945573385750345373305059717531035507431314447895521564540214511133142815567528353008828271629765537250657052469457591472489659915775849484241451224316194469497465421966100435770106962565294601181508709877814171422258462403403771797778409063499961348592134650499504450894616257895406004763331451514330949060579087101601501112064251170837970730450282078525359460140736205200743369598416579574000599853122183265641518970807024060916265171009829752431506829476616565222910904503608496905567763351893490913116397061513223805931758723398597262310770620222368878274834226852846951974251924600531047989533802194268797527751088600221142764238004283680119681606710957799809965446136116507431076002039034762433972397721164646805106812193982735971292009834114548742765982454105580299647609961559337056410334411165440549673326522913141621773811628656872312991545051121140484529087518314086794464663912469955616408048180993331685145806248015937980913710741645174334365662212499067189920426514343227981740152499227083864788935422470043323600040664389896308232929473848457261054922354250933568476970376884675446854903773217830854162858899586207048587983458855536994052283820709453169801949328502504480569183461183295367654791653715538213661096093274158892099559083591918506901262056780717478663193546404445607810338843203830416965796354045104739703823855016234358006740740887308060948521056091121723056895714291882273328242987889271285929594265325781538006286802782509341285068904858469529554984770995985139734112041951887540603775347542874560056351783532193642083090613249022463594343860994795749993926072677041811372508031528822909371423219509632102832872264194918702291088636828040905956012736441405473014202864228321969684729249581955009329607380533681001524748722140043588723070469442519316517797179361204456822042770493699524763135340183022653329947431918077530859948319566498342603799001650246410331304890816769269080678903088092367436129645404481570979822968550832708927293229912182849766218735814984154772683675135573647047902661908958099420585162614161596484782039868840767633741907936470059814373133370540569800362227543359768749123921986996585049562063263258899696980690184217385294950045389593700684042535113191493033796303669268583813689237423118441571353251724583702203887580696802730088697745129514211314092011192341517044076998935368138700837943087501972228540099025358774695794935381221087097611531200655056890466655560742935006616221843946588648337656791447334599659561502734482626807761916460693541418007684023572627828684082468375144717421021658017979595816549181865312367472616615892412956077401589339657515171050748364308068216228025874214010716575920313205978496902141678361356760247690508398515090544484605444011363597765091348139119567605961739850354245089876035681743298846308055803124357115055403141275218452396490262692429759327185577714733402102529340827076434436724975211278032167870572775687791045607618393491285575886656500164970203965227322311932742000339653475506509882815929000725775235545746535467071391552970952991657928595081547497722818670385488259088027976965055000284155673733376977193891824481512552198464679595965595825245597813513832656403381440889734002380307216438111497218410758343807972719561604780458615179415121368387845283856115144022925182789170048847762300220301552191463687252530838660019855682006375854217928781194687604946260245481402671997197498839821906319357253228694845682100755452259878852760885917504992320363767143176602676331304322059540429603941665591303802767338768712400507423911991162830213845071100905815046026402119311854730054728517651739137313721432267675832903830579175257575011160489308768440740167195055628282457722902445675531859362440204899716568647995974072326803424087676681566455460068234125138461901334766247158255842864044922427215429081939930109373621700990631536637668606252305642534606268438192852845251506490399654695958507623093921501209094885359917631909135733233979790403320832796458513289231915788527922024844976088004295361641280124227756942339656297023735459403198954805632494056321179937411754563370080316651216889175250913002026054441448116029475974041722571552967174163524544165838264910143555690734674644310560749023121754103563295874953796417453329130861338135062925727174923819923583578477287199669615386468380673793831787348978156238223410301480699915809286386386874825287534507516849130351880366233755636192457768903980668263449982188929952028124626003350016051063000006301536904897716653779830796818957633810587610971822125327731846296325550696357532846325036206409315467319121036925038729125011030634707096189058594388139668141455873291263705698741208590630840859911674120583537927741808886366058335207180836542191872369343913454080856680761472692817035513924663219760065301706024724589477488564945567129261884049852586029004049594263306825734016823212666503267367253102582077502312535936141328293200554183466987315723646901036734018674792562465666642599806728055299231038601551629289356133987270180328354985602216374170057867017746622952927842664072776480201383833982969426104724000392488319382357204729592249605068254811993556217557120704629040152179574374006574065741576196045878569392440596900295259378632482753671158791958510340052688238481067990748893834072907296354285902105944237649447744433534817896739846699041200403333746994395136626406124313885380628518248257868451056714978119827733785606757591973733444004151133681001841153398644779637287349945127255201338512439617921115185239918150419488542590724171250219798093051231738090221783266989173665950063646742688193094298581266358680234159855820375647937054880071959115608599525629779281924634407563771186411644041178338205445366667546190194457768839895674778605130785423755112564873186470823352738846093865835510056472256605200526786930720756321067127018006374655327579504429377050056009553316498811879600299102337837119240475682398974097642193147693719981351323685884618443850801808417192954519978541547011289444498137908058705420230317264751465874056493487529464049252620752446504599528133229469425574372464354450258326930279059279973581528100765332527955716716325201159154019351066357371409285726200366770971382655566172752652217779661542413956042065828061374122839875975564184526104385456894951946682757987680738446915746443289577555790715359459878687182379517393577484716519957730485664025713939947939787843928179636989353663322458981255589359633526404321337544183202818710424599008605614491299475856534278326037984413457513707287075304842830887845858548034261960716207070446856573626547094091500984706866675180424084490716788695036175173509468749496557275284091404978646827595576499633220007259293914634912982963615981990337202628882682115985807861702266675219506804453168189344842565310132487629789873313340904379784492143057481234621581847174035816999023564239500854815632570763214936631865441579770574076042931146222051843269143972509774930993390570385422000171591316794247478793130163110242345788023245758585575479974241544056387036545755940897068475825617991631475198620632277496760993865574262792108824927844564815545357511879061622440015588269861567839107909988528307304711026388193956111827215939286992343680629324038170747301571363700416470157282100474997947588119959662660224550705301561021960905926963364002939430326913663085335555483352867813004414495333915089213091561858934245846383189517458596052681544089474076466218518412968466338860900428321103676412064859536123116646297132361641087115802055289361508452581130573888574820064991028005574501870674726765011864341048784612371186448446283504112828542692967554328913897794689948578119098503055299912346782821996585984197992692786562275989531281089829780216474772959283612984337340445669044133347988424612006775261124088908525465794991486257677579801586455392210530911801529836444751762491918297985324113590591552547794472544880329538912020256925795089802096222590127492236507761142061098041315477429343899062971557276300175153638200219583082849481457614687323801947335483704428077039844319495834619370927248625875398132333954741827362841449713105963397455742348967123262566983767023242428578895109620032084293203309956873014820474585277622280613960660155225301161112698049890159032094753586917897829346405769543895384774012566013534285013876858479383155669880901431094081407155852661669003185058891692679454042090450105503630790757023439486009551025754525368764882782505167490465303047365392137190944025478157444741005136386387372879401292657667775883222230601362529352554383575729935788367514348489064099350627075787609278626887806984725119641575627312684347126539317900981333216449064115381331506356144993858685235637017502594301721126441799023311502249319357537302783221804962058992556293982021300733701005284243612937765695206289256296395757480887590196603952016850749583965621374969050816828862950889973969547389328631061175792513460335550363522923744926610049528770222743797028239226559678005673467779999839177115918521017314852316033728963862026389010574538874440754075022034613149178914306035083761680153372859425068235140910949695924548896896418286406799966245404578846115917178785981041331958468193730748611232984268267418179633430855636633840413002592533590566761511048002703939489584955734297558599109140244910250377493278573640854526786019634949832122771358750012679094949098095147210078381428368590857455328764430021175525687137534453141009166640890737113088652305555427050291570829570802406440150677791894786560875874846551107564502137526648018505539650365200542772816397011945623468269198542175166915606017991385926170804750012461774213054416013034706846288430571899911411825416893540588797202913343927716072795766845984330045844068693834214145790888573990537559146445348320738837042611612439684226299702237005964690020162333135859449345396776807338058735136333503135142739189730042762332253825196045925861859388291879188054669584055351708433238143051552889320012718318535940620064574391791986401231745349777593141211956479678567273014853797630798821498863807391526952312670532437177848228440215354378297138843471191609254503914597486046876012837179001568659539481541703798713784984375899808252637540194326447942047606116636958995397296899734455301522061420391682256394362590174933892901860380335182295854872783798038551845582652624501556812215638443554806222657411093983331656638867067589964202377427670241526132692090166601690944372842461184527654656182475421200243485618843512379672949464695350421987890697280490283426527575391206958062786248295193213753054716475344013264151703964339029834004282483202584347612408710803673729728160666326691551247291525737083942378382296277887652465874118833348748917823511959645051418245301256907307283118589418647827778919585941454031336468697272568682617673515842436148815380980168249375409204404347554332045364152916396122269423463195181620801896687368207763222943241605248221826392514599576794067014031386675875415116371679472765461908329252206706595360279409382951293779580077370851969668661445469390207685428639748741603590235583698990779193924302822011734219523252972934539393604759050733165691677303444325628625983798851335911401351892483881195291361940794556781179083166770897360589314066374443711953801167101842535185136574259295054646344584967041730629517537108121958600442200451653700737289650379570008338466710673769743076330648792547667912607611468565244377876663982639680275533503512887474383903666476976100080855445462733922127468854757927855070644651175826481892604310963298937725882299402655182184491896856653468586306612318629721778925182666339392552961963304156710751137456295646029713441586950284297551843449217497670260856711786987143550537823972816433386875683415441947661016495614165903947158823107437602724306423784569752017648661688713430319930443915080764887261949884877179321317143577811024463392638074229179037311697783719820298196333336587270991237020311863521266168284679828626129463967643432227736423155208155128885058941275528812481756235924620411543623681127058527145956754754379286568130764090359063508530724427086747402397337746000522044372740040499248468323467812923233944987948098289621233364539914632238372186178799795715038378381382718962789909252886101412116849618517330269867377524197046424445588447515918113941879004880293620852110929476019476656685452192706186023674991905678270094842744974347099672289270745658536052276025366609005607830893167485947274824406832421484338421320245101652543962135712436671593663810912454839186622759424574555750570073313779011923271933548620372218280110541385435582418563200906847701801287573361638902917611287424272488118633816534453490462032031379572569053404126469458530991028087746954756845876353294422803277322693595409541370870622204940565799045164924650268656147754337287212106736051780494237861727575348922363701694196307775402603520299695490037654326147486170003538541726318770342308244426411251354558034425171528891230984150070855287832264850454197363285927298801849497965498763507049313094837127673670644416881651627066345865910861244171435834882177854241636144661166675477624256378603642528269148398193129418327810590192904828493773189114719396988857220303908302599333545265996977960907840855445389659681506275635323712620063885396498102529150249919303608996148912891426442555968921766882882261668400550157985777101093649180918943990462417954817379723597880488397467427172074460500825595711599024212905988068377531933156844977721687285967884672762449853539665118471368779250982563606626055744903305305746919781615173558112562689259737314547033710403623766870268780764146110668507313641038401985474468728134328458537473707044322226620026142450266132559239614950395551734060918379001836693136654039308778780987571179562459039399020835545344501485792116110740748971841685381122285961389675172332320296648107940356071471780598755436917185798615144595577860894672523606179375907090093013252336245526698595517279496164587002575682848495318156898249293444009073668004752367674101915290297116819629699976303048081839785139898195092350248322083032259589544505779398763827360357951850992205216263991156222450527522239938571812420667313127463992104508023655130991650746675818359751537471941616553236762330246918936162117151389650583298600100246292251171345863485093553590727462828678865453292342282070533662021156088698819532728565779775658537692565837581512472153382138827018000058728481968454682281669537559024747303679673261331666344899086567718470450471059737620784430573287710777114428160555354839768885379164434026057610210309774782482484830463237014044851704223518448372697859775697113796532896328737936019017777855910199651486046273608138546134325947357630439141248394098886964014238785085682248384452293030028826461548182051590913972304016294221426722583404559643357978481512415147876901666654660371118611902193449276660094084371619191349456950280183277664701332097346774496944325497525855802209930107307057909716455337009501362127736923207265313795413866304916559854443397201000894386674495169324797106568195672107278177992073638235791737159773680988875878075935075734797918403874504655043764319398076313282995064857451923037492643891225654809480587355342594957384489220753002305768484462617860414416822973676141316969363722615401391296838844307577914683864873125866932331707625783102673529528720846130306801114031335224762906733200298189068864017851425028379592546910123887395941712042459750548258366866883384597216405603726434131142999810888111230114167936164704066327442703755624429713859694543182114717169677898276369396931208105414077531682668369194498457041497096476716945745671340969184979079248083593751316834647001145646632430032321026946414833892287158352061591786357317501002747487169670804103566673960463138992563446080511263489331298437845107368959342652282079121064576909807644645685793465656745700709563603335519957472726120680305600509926237438127776701655551825286389042798969826250493543770595695134896375609389625542007539467884497756820434312301839753915458733133925081194853229761391390482890826660346816303922695682430952697182157313920450465496100805861256178987844251712958897273441208440414468430561039726392426865393937539621432849692772384552583624064458109028128139687163177927482052575007259396150670908376072360332643700919749502389867494599137261804461927556594927347071292913474809676325597654078179365714088765216720483869464495619273393707077666982770683031992915597479909562740721828411644169096989037763446175153227487123642837139428332460517989859551424060184544958860902198922555008311771577868019404758634886379681136772598049710485755331584081228037981841435723927261851092477802118925123887681364865582284487965893257398923700190585306965147356460448737604828274900345713874284626270858189143363794116019542733209695574877381425061693109668492517895405143835796689290875801403470945159126992434699530539185220025343133466500442929797899257052896083865825986910280820632635106174638714633617462142403908063813595824348624555264176685313395425568985266312746898905761545524395997568947393342142410915882729227910176677927304755928968107685592237177642327994088738901263202006875234913695160200011995437419918772347969261394687117119687531680879847233853389239008266949566173449818688054903612091298939123308027508781414365780152152432019590722695105705483267846608203887743388059404559956757679966396210094678436929007563522261899162560387907083175773167851304470626312329962180962470348940302657271384579432831091008439675526991488641622631198908496847948171478632346237806428992016847998490488863227839113082567592639513005687047017447348030487388497617942689293532255556412023411251671481463461150044875834993713901085007050489498103419011184179252038931597077525158067149490054863002274735183174226946392091602582009548913980620244748991963309245872188261652740185577077750787074492200712346351622433718747661993196754994308930208532167772698910529167207009179698550204457491347473254783930443503224963922761344839685579003121539832492522767984589412039886778661244753591507815816851168701925556775451708671297837236737899822069701717552407929204882389533668695392551476874126856128622135463438600466536495257716978463664720373012352561497633343534512648443046142808213669197626779877572158056253533356437705141839042615702803370763291778202913825473565651558498001991806777498838224637818188720349759461731753295324487239107412460567060658785948442092084480690642729677843635521705170483475872890981186766750173574181054914293336228136625497274252282317490468832548213544691797683799379003320076237171271306825762966341314993847663524859720309543283803117577681799424468165773331006985803665265276349341349464085378389965410431866981659584811133741694416893069275883091900822810013332095750834217219493783693096343308192817293610086788897580712003173057938990894915857584752344518132446841984529228685971910561710841253128557850096584227938333076509072306457080277953337994832727509113737882130012607032212578524818335513170339316991254969936399263447171647907433286213905172676536807965466791618688080448793204118012217582791587316854390048738186141463285294937543264272561750814191990959795446886540681940523274933499135494062851949783656669731158004380928352186731147359244020000223190361803439295982324643828445136147106738475821395571308080672791553466042802457758285810877451962736829896330001910627806091309405956416684989148401036107535002318245577594302737795782447684979671290102276395973990656152633485025657359018471763337366815696845514240581856353539656668864942278584461881853584864962296995791142567004152699887889805787316496119639476575630493894999293300691972906629993799619661160191889811986105168309327564785142348640207766918708075930607582538965858731730508534139144426687459188917056737314016318636382634058992479156970802111130082907998400096750823488650192623363954890613175287120511869167011202757937301138249472030222974062779317652718282832754245041808197148996284196302407489224280643432251457221210248732209392583718862090656360623544151949978004489685819884582178711379620046228326271676320648035013525889898994730993087622131077867634040618060482352339698986485302065645529221627915833875731086695671420680736474650350357507239674102434140405712762612994750366614254820793483131414285223046562888337386576488749746845235081421813539557733348801217834881008297806400625677120493058256704023518477271424414615641677856268937679657311258973994743555611008078841289559301407443591459786044297753634143125192158497001331968294125382330827579655584737999845368443753885838674937580578230743562937167602727666979516838569362404557313779143802965052720603623968397280950858610832329701819439700075398431994182198644498144961496489272341968435788768254061434652323066209297145652841941538573049899861108051890873089916147920451011679870847493032523572461384893171984929301208582560804017898986435414162214759699297944869992702327444325850475619805257584947687095880992183337870662354903116693092691215617000573267750949864931441352109985131795626181924801733129164442617167244395773930510859475749528825597099858122678772478191494925982090719735913646410948042461162345250773415426327610831286515068614480713912052026599868676710085181517055322879261972858941279644108980312922135528393577458899955924382289779995975588093527474377738906029641206272985987379234443471384177216305121759349406640287604234234458800397252750604238005011196995542042158496860922312849380044364891949563974144718535163419346490610283658733689313564622912470182718610331718812733052204987924329026625155788820028751098099374697789792435327765168113317799085042896799214807989396257996872073916261343386551535441672462901615789114072173986780757196785612135338458002562561260875933455882306090629971029540886163991587727147686197467071039287348278119555505782962329560165497964254614370103344035977623627615714737727147203023424804590684030501415398950721112612716149590000211331919705732015432171603962283755401111572308189355090225227067607660620754981199447700380939551932046874217869485504357032868778119934289696714530062639494401817492914399261687008165476660599962873776578201751257162386573237060644629599511576743569226946646022889600243942275868831535687423456530254086331716834172432467464730568532504737559132621293515394978640092595303381932809185090519308796701807054682399369507760081613978616930614725730176375747883578733965561581256770527576370123836481023942364202122612184799087819686590049164163432057510520858410096688440671596697267407204147859629198349514593998389644460163083752526932145629149374635471296896319391435610334658710002053347810057774538258627627743816301566352651830881054160051423242763201767120346183073380503871281971520668120666568626504639452573526638534334435834112053014931770909149850386638798563263757298483953622954716432019686738421187466879707603672279332270760990449587354935846465438831013523561104690155634742664345992538277209758490199101020795533813920515488459313866432704636551278462454965480751693823124978944416187136895918992017464905690593475538837595593018923177116944533569166245811926366452336409880570078456143772389893578438732388956103652621819938864320912136608897927682378365954034159529550640576094351469244767234999917463070267561114549959121464270385103224338119866870359673115773636837636215177753528661755997429740956028375196311416636495772704910275372865989838190077992525084677408438439114307975804864045390791739304708959988160582359464424176533903439216874786921200695918435773953033889743060827997996897628606227690140042679611933275158623252877721950878438053134665098341517293241317960921154263009105156012625928388325422747673308596897611335721941545734722634264702209399355371966271875509613361116989340854322438891479309484910833071805707962740901786803922717176229768858135989053533153263186306712083131163537093939456053655451659232080651412431988739102231375041544029472211217387069999644244632859594872756257587737955807563957156440038362989097617740093382468446797204411971754069436366540605341498698826804087784031692361376078258573923601582598036020139150933540647346746006666220447539913622033831238787552731492519548148070901723585761719030456577702281614314201569583789688288973021404513966904812065345633978969170503030331325052703180958717591528588403233087295639072954504089664773601946258394259844986875538031440482948009272156492534128474087719837740883922547210936123952961159909704599647404398637131061468761349502876703177072916575650954159571225543048906917277723387771043501485285801382001365239538961771406505228151234388503319366261092267221460365252476138818926252274299809105591874574968763149089445224083131989792725984261294860344111338971282973878159545552930128757347174748490390303234009594281368373475513195881253735537542937903041071862729360616149346471660447535253983930527948780781409001234773883747486566955343069878083916882922118961710656336474449244050309294777054494364671601201180441455553831467064058798251129597240450037043461812514383201385725531538487981656142591007157513909296011781245801828148323307349962410863540034644386617202837787098897835072265233994501648505549023010914981316060954501611987424266447317856426474855819351618709743307467360990588827204316036452111581230986512880577677514714125918467382878493637877119413858860037485796846536985428460278837477108809444134778221347053394256217264039443510205798797169428980906944157168913691842636827032331483108344516914473318578159158468553647083940488123137372221582532563901224343481094071399300699229836002255639319548585862058306087427612061643034089089305381790436237158069285742798086953101766808456651149576586743546757727838780639386737002690599307852007281675467478881269620818107245242843359179286175635778062627904762563087392590950036925640361362621171457903367293920091065454161358904804117378557014136882305031778644848684841100674962238809380375687749542509952081196994037278506619207676694613361412138049127223363418034330094666105170786379909963340976124632509143871764172708068687454740128404767417737064719195140917324811380963289191471168999984144751659996089631664881546031737928281359275976980886265666157300968811889400871074923755715983448281646780096189071972917180782480186182565777573620863508233918901462797902713948577643573830954508058926299815125267456620185783858399886828155052093712148952368092607700152246867208478797940990682566522597765985367752756270068768038285983628002102284529816949353410876789852432412948585915352035967422103997655736376627561076640231097500655635238803311678677534328619816213936756892553347300672749484166327155038076699256633282483445984640328490777526655339395371144824957626709373908299998148826601450480982892020394473625403847292703037615513046634791519082500450771092484184076502007519522428244369657798453653535664881861608306687718616497469029657757040579155722365055367676311219241905500720209005195217986424590841765163527041282759528371072792279263341035604875535873562897996836361992989256783826786458937117526093139549651430371777827855516235721713554226309326254416301311258622841658638392181169772666921725630917786493587826898150505955751228184391567526345878243682478796295943636600857679264949545136421548158983121283642185419880883858387505372436012695593211900946675253955401180658684943799211588923413477163114593367392514088273178434991725585930712612889179509491436748228349376423761550495154371467911512200293818886562133748335052383096534133598167854074288491997106535581410295088953434532315405270114645106847785365598016381026527885809300506464854534353633728097406868901975958906633899825073736538734106172390224625088338738247479378013092438966292478396016721091805829956533095878377551407367752642152057101798819737887689434732592246910809761683057965512255051412944665207114293288578169558054513905460214422346847230113075279979648088204532711688090934436915712667847204410573817524658301289998342967995431114596767080351572287090441909791490297354890759267637849586583566193725458442789175882358027894070227195645648937898302535898528507262232166607412449265781589684785253030134585334485550004662080217282634450331391251898250843184947659670744618205520853275999915372155346978511426262542615245465235457926584405692757795583434682914249821352458293936103576764595860549919482023042686972099787022383395475722707044376030227606185206701679429143980267380014876235167633127062626760325791988588176881820509498195213668656045446952074110014018580446261951454842975942050325031882022815177742713942822836776668041890563976101981330137094476695204946209634051756550779444030078368137608617775752926892983543708003938403159020489611621743503342375873471372336471121186914914988544643549071999828975763142882869025967030106791718078773721407075108169179047094401583202897202207100941358455354220451855210031203869107278591444312705860006084746581888002727843317513707049608033601938123640267026135520782164370966392845813501193737328359547658488190152198480164110659705594761917906677876563150206224239698445063640735892915743949611070380599636481484084674647794893739358867955031670338326626592576888818307245788970360963819215387089123533396361442893413189561871470363446838111990204179825649826401449301589617648973166332116746354259490768865976495398661633668564724024340070414263876671647225363166106801992885450657324198875591378728652531737035909530054494813074642614215472157562195704038996164035491332730104078590226076993925744259167623743288463812061499580702295891921647029132824241763615162816655373869366622311725279936145133520294672292471423744669817199465371881985995931251507505918306006306112480412585518466120152144490861437001545029392007059592113367263881685670661022850613541711112397431092515735553825767762503328909679680444612012784854378288132291451504799158951763486711662249606897736261547055479788661657522545936937128533671855412826594797660846229469501549087602333240710515529878330922185538220057582729005552962077165422084728157952615034001707328854274442053167999218121658151427887478481132209617306706458648463617849752353088829546632480238072654867914982293355894478718203636205560410799743207986482174817469383985696538437136807921708917288205573013977335374172956673526985394321578765664641506114631569285472321772366408431526303746194172185354648503704228288986694511253005533815232252894367130460174705749879542498180459034700576882273717851286908407822519757154204938586512250630800422137324263333071287128302605554854316403454799513563069917695523627695671263865533358934380948322190795502756350830596639780384243575445688884660387662752643804638179992188364810712452890867061094961817954059705629687536728635686505693118807245356893417393885720474465797130545459287258417387588712988727494070806718033163655715575160333871086269017084862692929422331080255643726023764868407519284878261110353575278214276278743619070602887288829964013401477768680716620461870119991362086670430483828753526000094594032387423821161341677327005520210098772647354378191627995523597396549690266942225133548043137492113412495200878715910697056353208796014136886429170439358795327687593266488207499606732730372842987411964143539493334450530569960037768407586598598632397638286023699888925971721214450270460989004521995813809294684246452965559012682804452640205561402940385902165500513131065935132768117009530505497811822470724010722781537635588799465959719115267790763586535498875852604198836186059099840005757661024297949675570651535764655848581230384385812839886454586656237818686976372235547417449464258905804895362641513116319092982618973321824833153230396326603419692149866763304903013064713972733996590436959902177402293223322283927081921287562117732894906422585453516089822316647255027457215171079935414989844438828237920752601550768359876352704967773732754329671608877360228436149913704796780216318701689174244378802759599459052606231737379171655409528238249083136459692141377748512128652139253394650137072892575399344103228090163007540705816263219893606303200441699447971076573242590655994134299698674481973048443423955838496925896329343763978133204722611527825193697044812375956283093244506882566646989684118512932919094849595731726580991120485970477644468355330362158509339446584016207563155861838243069373264082292933507774804932123087794246844750235108091431102855630510840762238662487667079675073448329779961271106805419652000768121905126641280879569475576170648078665110073087136910582441294039680846630682035519172543267541671673231280998912633084546791856547779176799486705997138629558234228354214739976521981086603598516529861186771464359774607581130819992094408637191225945896086657380740663691620481092758824907847392229742045572678568979322202116129272375892034049297513635284618559535678696306590212035175084912132727041404654088908457314411448210820185637390990225368282313789035271433845513064573684552831899705459696541001902609392548938497458584579343431862652194171315024465023695768285353004437435835759563877030369072823184355094852480482474403016929930127764709024886263142581359672631704296030355076187771283080073547213885142736081225168869275631345937694802069308198462638002085442516938197340211319241697326330645728709601284237479154284906843723141245027478959716216273900921103977023623823242418065645995018398831415244290000978893358609223636726773284337867166913969421235899262182809155613904600974437793070273539952856622601824985671682561843406132784342395915758581622928149987158377905394069543512183403034573022649206398826664584113290397236774417770326786671866374172937824897552961752876631821929477117777982646885441778478881346789370789396340609759717961122233498468915867120215294673060576475401976474441955692623176626108233285274702945896418774865270076656497361895784499875250501159725669952856294595117637334876943891459000863610030394966974391211616935473083722727093584319184272159024354332890499095533840027888095974983200949855774835655095056447025370413626202170992458463474757244004701272184781462059068543372462250279982053801663643205997102050493763715824390234574858501672445990919991795797860083995909958792163903664686857618476218784614442230754064587420704038391124029672654087728158475553124119100498141675706366957556505322575753111378396572098172077144065808084762297192027234272279036864554854104471191652364843002142928935552490896865502492174754626889279211947994511201516722551566080087235425415707650683389455524455846672854622797044208937215609467102684174504326766950758622120133938881930447385560545316788172709901004920146603012790763742127596694911489204636189187973201319768633893855054848268796991057894714280111855406484873902144178398788974731793401998188665469325745350157295506545142680369125148382968903810076542157543747921854177075666629578169511302450159066357458524210032254361467634350694144586713049346133217225396493672768555237566452085397761130647520915774325021467780030235327147926579520969235107867761891803614864222350991049487825652369322794641362985741940629075855109926629008458355150681460035197757504445975934001866167420412069735579412873238408144120817779348238931136851720434723625706166815031750096733083115576036361879437163226041255610284743601625128941579816636090308327986065005243871550909344211045224111485620077645194727091458821340187182203184415291979047525327929651429293599881665252503136178740399165643430836661586671417646972475508266838294743621979706817986264597931223971369582272236309873128237786268572911741838010249763676420850831262647501484983872203317445102620039753706864006853042349285049441945534089186718937126673516228594524507386113223109869714888294222726357866443580371680171747099548954209995749495482120529917614417600180813313375218534093936226907950456007098656209783315439472875783592443198633013824484797755588270346527506400493115848296777312820341700608780597857605283469510037474035725036416596004018441237992388851364556756203592603912191722886262554230651809606678578642847061598098887397430786237031023901637966893974184068249561204447339595130130972651160711002630794893152154537470663051431955706385398816447680911818349449668040478222414974862167489024669173035269744568814664109160003832689544036794981546864722873055678541068360248467123274603247036884768977812311318735462921516432303137730596639839907537559510605348744067284373467736268204833118211524332636135452636096240210978413138561743502720648746255024768918779142851195922057277058868083263069001441576932127503933078941786269863443090666592239967319150571156722977129852111504204219753320279409782691958715175760941913853521306135117933519793328031113262859810223118632992064194811787499146171929983724000662132236670372321733403028190736912820531380483383101261689593151868068125819541213248231888814500334882414605946002789148695078723180720416087229539333618474660913808211350666386998312269410907417890234889453999948283530312906110826956871549948502562673805232619665829162712206250112498296474370928277545159250205967121952212853867460487200278243578397973045531729022024122538920529393137246010477067110791076641137778074694640922008398468304952179586505814857909331611044410117188199303363872179813297384819745024892994680996207528528605601313336366608915477426926439813949704705955875044570407327629422562212184052266788775079598656486459010368648248003192433043888287280265939542026682832293847232301769680638068387408111595026237273312737396063515934161357080034311601897409301736142928249598975195239109472372245139484418838239086576320315966547290486156872050144407412434627642467769112237668241471572583799201318006714350787671142042989992041475257541256334052753026180052080632157067385786661891171226900679837615860899699416271366289500302872811637654060067768312334799056457329473770304088876368992886410582155008541408103640782870664186940476913751888257868798262438276275313410625891184995133681426680149695088598899051960028977119409581514071793283283483635177207617535113945940196202855438006353141038929933527694077400463006941569312738810915309452088514365564050152398374373553764825107773161700293187112291777688784865555307385596946478139286142913875478413008098982314134507746354553845987792292359117471632211769108926281686895107182247267934501230256617091885624363111399240632862970206770769050453632174792777886606744147932591188241510664281364577921904106641831838681383461206320275201801439702702456520045959407532635054884767685608430401885729976478985602058423083769218361554348616442009540791818539761699714436637053972946062594378265007272579112493651792606286866776877825316033987509601219075632034553743995456689472464835578931569785419239207105022752562708343419469206986332175960527093504378085672942292181171398901871889769524148113989788383376948521151501244612587479878149398489200358714080722078152230569411158781262114450468565285351231709734248803958552305426470485072542554905913695086738016212999481943573016536264207275141164076255356973072094884440851492283167267737354834994277167491832999229553321662085332672898677606455325405071009568708433624761798029965573228373276153867508635790601337496405255078725168643668750599323706735129826838172048031974138020438897680121717517619806299240911391801906065527411079141734706050673605629425491332601716047877880328078838983221570938971221930326401277221098404095151186653335629461592303608962392115009290712074905209353563642471774398062029372501561618940841755364442817036963406009952219627269040150822918288155637913698733272280486208303348858456155113960392812248961651913795590737514526240423525905949892816890656263355104709619976363285965072902403617576584498244693534256736601283505467289228412295850591741549083971960812280156957960039586868749774286323652078718789050111591987277555502147305476539807071236346475181736999462011643622364987607714334559339475356249929216478700269885470198072911968726237668839193155235682856566478034533465470219148601142857070040825714137952273304120627041847330598033098637786712109037946390280071519832900947875966279301544482579434611416427261430291709884452936636974399156315147571544332497966691917257661819203453090073137694256008531158189924553066548736445611693122275540546061502970029815230876536238226170930372120389505124093747851566243240014113169476962523687794591945331821933107482551242875363186868810558924022525867258021475443129115343491442952565222758406411232908445531253730482165651442480177692828853963785745420965181422970051262377010509956879953515344764548944688503239003982085711309382375883579517720754968872719722131860861692741898154804422123755579843410012951486501074174643103372666894325593774110956494343813345654718393995086208840767652440539371340754063856667421469226837465109301551616827003310603747366759695233724367591246065580515078721091482501714167955642050028899524712700343386778010719875421213520111078503642588036135233431448702470515165479623146456580816843652405467936530703030016911377662592823349623881083685857349929169217530365207527933645396763517559092328496374754352921121789982364751133392582131951454676450861972586544718145819599825863105498602077896782107261302375518174235967131127569368146332204330478547131987869680849609859131971371592333896355265472446049866911625134839087900826000028120305396207308322161033254531818631631521080272131401768216385495399782680201468065325491040899899683501226118001448523551287720270730501824131662829156426435261790451267571837845955764461409031354872376891727131778931632046812796395889315605508163863595826045211177203238498329597762419743264360805346841499498294918414498520580979646810727834654784814778303996113115437579429246515340713994980484431395816422866331262230988907848522034591134745089197425063838692686977497951838303795819700603935705217845920748726712195831436482740556369214655800236169404755608263742168988874014694691001795743650408597541021754743491320574678457298840818136572906134590507903459626515682663046908610820375148159036766574855280693872091562765219966677220518088012523400666543663025958183435872275704083496183788919272105174437003962850686420510613722774906428622505972148461822407602792408997603114194122187586003460056234048041070733604552843833977112589936332927291814953407436958452528630363877236667195330886781492243518575300653372544121792238402672012574616888331364120832996965678455082797169219278864193891679030220026004196286398416963796867464737765599432489459935128195164865151951473006975546235525598266338802653461642442894838416204688647089025357425513778343776042281968102982496384661421551315841559086453228112968260737427167301296855259024338328369135935018614221962652652772249326801275813541855244681008126366480530625150855423211590646033766316520118378219379185599204195507327329565117417981989334632646679692034900986370743708879462021477624843057648941398146950294116337213571974143169688493530008010263460157008773435293541068181095987611352913537458274801301658015574262094844962723502895355073784819251249464241977140814863028075754873955328846491007750392105260242425254208077882197832845557174907160611071898267318075393322257043142137627377315684727471530303159139269214917258920267844290515401896178722276104091997102647507312314063761329924676831031700526502924973956127575632791249967679103476457715655416391692959347674879392381001516807934042009894483741062874575373825704163432596647889245201646105434861938658935376092802804622021534935293800018138246228334016877602306765783291562790158917990685210864451045668094320915031074575971184406953053324852010179832465477760751820501287193271595541684095092228530622784587902390356836520097373549064304550808963566620371910872995436840295128972154474184829155731590242280440240989015256608919229244609447044053377499727494255006403761289868540685916416686238396848474081524909168728586409142018617288078394697200473479435623575826838617588016425099027602482539786436706502526549805807029053783574957984855390462607615615454127988897132837858982130735600460724065132663231133432160627972281235408903956454824176855591644506091082896683845072537576908662822337029218591771998428922991199972928607560117251249436723245008267497033280983465067147271443199899430600252316300593580495883347582376077962475654644848362268789458722297420918650304473122239740819778473302309309864733395612680472189627153873583112946301244725186863126017516750894630021122360870233037052209684214723980652687383310746705030839864931146904149721018165611642763003572933021455933310836689629726829974528390026988354038680069050704300388933210848622361829166623556318910590172062128279205014266973690925307191190048643986635516692566568825343186054191365887953865534462840927164524549267485930878352324099438507701974794097771609093225892482162022305334859275873575958076654433225046869157407273432308119333686077937582302179505131532038829010857632076590472344361793344678603734519338723309477224140699371590676989446202481532548184035008635622376449518449927766178960756959820675535423948861488118078473396422614190036372041371165789846631604813424989416642026954186881209159846039451263061038103860239759426650739130830236013978730095536726221849633066278148561350142357619221939647076889620229834960631178491064259051509396436184056402990797747795414840974791747260256977677608284538645524887945892620422134790596948474287754138431204319782678978803941337190701376347542645065461362938858884137407923559171230018683118119306134410675216716719038807453146110079785419634432461373881284880445613002612542405618930289282114864584785745404615394036463568371216787432009998569608936650239803289334025298524454588191019151815975962937416772472797652154696687790268441048122094082523510470768581437971051642172201264553635107245135766233270174328295698440029258446856535042936145470846662892717986619391666264978593260641013565743859444073200234961496880183090194226738719221183490680881617307786047692863986072969918925683496382418743778810448937425910485705621493170305506232870925915808459772606158125949451308094164044380423340157536594906705772850966163853998603360975013104029746156761826855501130735365759145048949721944243548334636135968449002683262662394799316837376739571095214026290733254566440592965828911532722943880905024771752693095551696585599264285012975666935575873314362176360210097632787208583614733358855374689726951697473663854204412751745538192513662464858284848691601197837476368305033956472915942615779253427571037768251301501446440694804862670403667425844178692186528008271699952467195700810779266101162031589315125687575027212493794797497947120148140948743567421220245080405319613502430054042993945033367937133963485480703904594017811020564171499624054123390268832908415457017053806499562484235482456249897082676431293784034327738144308454520131227613277342551846774389078727522957583957812290009282555109486419799751050972747684746896242009578783221401811932830335125398969428846635503070023643576625717961716345195761033778072555378756734754138553399870612998874620706720949207929193348155144477128688159568531858475598254540523104325221493567004564997239155829228404111323317428516328566115407963591619222467911010464937914847779530037059824981277222727972128592902879325348013264509860537096949296728622340873641453247994752370973144766308664607613738802186785468180276590268649615833469484206813687553895758374891089791520490429613220058416874877870975693902309085052239434133902994588584863609732207161918943818733214102767258222409093293810221070782094262373122888311538153296381967925501622776283133718320085895547567589317793879583351217064612466446462028864975026835127159850316518196923697954052054782002172345995273350354407236190009975271847049211512876299088439757035888745648666985430425269370072642762123229183943939194231090560029639408153719417961301408785665012759569675441991411244521087618002265598659301506321913284336349585301572692126183291566340402427962893395184662756955170914743791853664393024849763199435672152783013016602324052690033143389844748017147552067735200307952481389109157987016537577112600753058398043703336996127531005629219740028796480610581247072876324919342625268604399468817983077335408690231613110769995067123173208524667100404342593723178867381885255302809353103058597225144807441308829696213798800284145102290182934376006691638243297102436384389775588546088894855221538616366610985591447946410868170771537848626078986188289666992219209298406971212835766928529863394619924658384485434747313889653312178482868078501003179247878411076293112379321399815462610243655901930425850378463250280960708201046110107935382958535346465435482966997169836922496524582324205348948317381073854758959803886120371467807808260433187877784418180922900401529615053546261369406315260823646316959897645193723872629535411815222686652113525098149994791991610147962496740453705631284817946328505321589650456903999882540537194185353243584489499824462097129086825679093313607865790486608911095664741988460320345291228599794475968985873798929829498639923964724107655289791200987062235775732975364323007435348347903922467429683879963399838682876375166062813455921819678565025640808501336304198155625107697500915294206199450531597508945357416369301743350781418439218267555350607925228442404817380641091347461647484916803813606431811835333923257839449146207474957649363949949946321515053501150133106776916421249647435130123374167182993371299950658111518138565552361957363686884781610382665672051502682675156593722767266083098281743108776666271708567187285546987222251556287157946196240237046211073400215130219721299477207420976780557944670460616605181118940956972371360933945727201250771727470306513146074688452016493122981130127502447023779294721996354447056784351948486774555575846938657919883004618065642798762498854329396336091313093998972230786505160042728696141153344363305242977022013056298281761645155266931682919543471754130369402718755567423800890633968454506076374350839469662763921914235809940988111852960445088983491402489280277491234072436508943974963374388209839208006964513314948415394304176129738736771193928962559241659924841254384569094804413510957860312752411316476183494447904618462104881739045079010016747403116470571498467556416691501069679743548882659761121035759597051141679967285752497242298666746978208826257688322028070730702997552354596719180972606929953061509764261821815713928821242548632045165324290827154540767346039713623261390047367697119811080736689888067214076839304089603355113387175291992218801782913587763742623391514331929441383290239675255070283846411965671746095905406611583610006889783982780804970802336083122635270165347044206751324624344558029718279523651421592913562701496117807883412004192541366424794975610019185022924405595415493604305841443977646451836793120771919527715177970118295584917246685190732599891369432938118482399123891240626120691801368192162937629568949469045083192594450269904249259845190706875236388119120054664767397479021236809699929063131078297018210344659713036149090177247128305436357430144696639518716187399445148735843217071171155749514233662235805116230631935125012897405624174978609751538740229340220932364986067891505347584587676417623023216395137841394605684565338582476059987685320390255830248813634446138105011183581554773442163093143241203811422432587047067256136713366641526071527677702611003427444345896246863377279876007002372769465880651035572089259264891096107424452497553718941780205746638523802180880678421399474176521704662711218725740822858148983487800646936912368644340965464626666845249871875293879519978267531400713480938608411831124461448868448373121321894925562347792949101411375794559683307199279601700708670221415307175485155858553595919530796660928771851873577564835767519462877393481959335669096032855161837846359807474556734224846887171030555673036999933458141225792038848562365716418929179194978397079612953921501134860281280278511913802349088782116780340332043596153047572701282390444662739815582252929710874082496149246028002246640027203295417364935844251822331737417289327556401766495145182528683173779804978349494689581498398469511964586871005018752242539128102222195306697835068759997709554275291130537456057128033241031578830551682562142766819724853141342152321379662538859165465191710645390883569019087712639148235423508859225211274464044002731282308289745064339933273727260356337519354216080248303762565520432045232193656323104821856511502419519433776518137534332661529655654303678995180453269665592391632988821909326082866917974234582681751598252041360595183924508844349830853493451656850548572869212306979992039824389928098838236002561756473272630053630371628683867786970317686844693089848247549069132469832717498955372690476340764976598162660744169851176014704386969494380709855840124165320277274684363030924498331869179527508291743274792137558003026467835078767765196945280187412738841748554714074320893453821559654369909004158868274508046473818475814786258958431042893038679493873384839303959430995015753253373629497617294436254132021845976683534873624360581384613596273952146565401818115715848155895952004867072576002473633380855243517030070101769638332802215130790215417488980664236334263621687966972317010502197707228657893872448717783235525432988856702940759561936570375929362582386322867884485076276336080280279963377193016889156230676580543366932241306889444460581536931565440219308063717119385419366254879439385602105282686952727229360139243087884241408513481897391968240912488349458906583296384122088735491077690681015035339510882299879996368857704017762878937752251272214836224461312922730554013998600422453314115520209219281892865022486108213661253770786780088729445485573157668937164034561746207426058366556969149615494105907137496578589905491508616989745695474669327034918004757936396765853366485077495425936148417805957801707606413865641095143649417101160107149163028808581304999636220437938389926001649773122076055027101594620426761590737742937476471188907635640618909763054259907716503509352859474975442275789309205565201484952500139645589193162996452313528498748931548737830858967519377644592409373650948850842144671779312279375237936200753481584058965706888261577441095360294885566080066443677434720705091185326194730638310228189941006339180024563373413294376146090792620338822813999400788051797619341230089327974289787554597378799484214449055947252528933853995264872380289729199421256686778751216455168042885218002447405984229921744599304361023748089780855728538314161077938252293953468895834918996170551167553806313247192837542642209330261049772807995500756414579745273819559402987656878899301035652473567662792443017976816106381910243483812514817712002413808510713840549595369296505059143098166425242208527635269810056975661538575940966541872189660480692344168939938988595852127565275446985823001098939784644551935390226962998607310173509608585610579045826921602410612812781512802531052513768576192346274358435834561876050818823051861774601027489805731515458273028925563800796799387976667109097477985497041544175432493151222453734200683015013651568481389274890026305517217562640036044412219678111449408245579377082490321531449099079353741283721620520479036296934977536094567757688785730745794793579204219513779643175614195507699967898459301840458762955589300358497046252117146301321795268116096658989349629939556269035088461574633280949329970904040870493110814647283645916851805096526681255950421487528682863195073462838255690986279327146731035524964564972401293479285423952329493845440139433415046424481854140572368942460072895429733219897020931207474191270983737883365184016770628772579366484701969357243905592100597654215432181443363232533955020266373564909559733922865066415385410427140444342132756002709659833407330702003820919675835957119826421929225565628975566352481572227410572322745320831846327155250673858560829421152652119885905200523661644568687898075953791042970708832967698589436189883646772733413787739768010031606902303057538306188550189006633718365322381157667502948765954170732280313201594194109666715691374488558713700958325206749515235046015267303152128969120539402381806190831183999224476114615506783818794529475437161328288821543467098680338288974224314987076496294521403343403558759142104689147286729941446589878759434558881712372904711466324046298709286888945900590421991628529406794983979197607903020296326007598343935885512407570616624026271868331037281347013068637428764539998971105120373501150467216139387699102323713132979586827175764189906167698717123750023605968414299169900168007615165309293348059948513424905223606500800492002584621791183617784371704807149814709266975363303073972593216496824690119799765030124548653472475233632368954729703846489816251381388605202980728459372558507024739435273434857064891256895517928014050401456361993781318789110076448965917093822987379328740710926786395947934801162348364801073469584613804528379317495072920031164975499627522471122212278955949384776669671653009947978379256336767464309463406094444397775948902406821149921622016930039810909637059579454107326892438400314197612927038614046496334222547806824068208544997329635217500447798471834168235992130003171710760972919013716797448085414240782761033090585752800392152323771686218511114278062300691389462245094994550581455003585249475346220431151609341817907864832652664303276695175317638628386776053188386291248544441078726836126140162213227549228004765499693846198023299471054754134596898913271023337966174897709292640660708942970717163347465121897098534624742994550561177973939588855236370551846608764485449539046091330926909424205296523546228118947872522179711623440127645427653206101965925483862986535201187182003529515187545153088490908903657778655980545699092008753646304417394197028221020464494533822419231486777297523169986920424737610802868185988757955813327888456128422038221058235372056776555296292184487331469885986041234620183776309990491886311931875891964583012890234757752803945618105776312520790738860684828265666541705484211525048775136321286746023342494492081536710036898342115538875252859145160566552951263375708282694720953055121482653955240988765645898002976014004209849120059578017979228596181147961365913820215164523279248253942751580582070617016025107030935398888457803490204908030304590308435317392462209668326809299696289921072605009275537171966521640535679333412975406233478076401659579941050722315852376271595074446756091640035357162864355424563955992062019489076507454040316535433191630589524519126968776328378123210083751172160154567108735848792811837966343734199621660925797414765740725336546602776587059310685592961728768684320683373327026143457279316004566655335233646317943488841871033803475444145367968139511924002412660372122963822133699840290604457428237021865793723918465919900149634694162024608793134296256247530541909128024484539918048140639637703818202296250864540130771205203253983610180311394298810607436134005562975522595491269604540175156464073090072878915379226775651246006703812262162995019807296015275289189612858647879562467382373568754700917808183017882021131322194099377738743226305040262718439899543202418678022067646751961931667153152707356630963038851139695640169328264399787010942488122370531991719378046995472466415538591067701370871951874016914681907802639479642660416973047537535323243254646567525813527326560488729111656826131830166943188908422361627603119251540147763706810040013429103281157110099224605663951757063829995227854211855399969915748392837038415010027001460288351895251728773522682731875104510860886850591516573166887268739809174910960868517874048395099574966808722055032456494668443766139736459518945746965767418763951965802232641851091869454026356962929965143911441882441245104823626327554279140008727791746807249465679044068217458595967303159693113780328447706385608421693236455458725870866381220495015696772183876113217286853038974728123259826090401039849593746302799775847521584852129211471303863925912214035822432300731592827516080279133345918643888877596208146242724509038316886724580464496758596865150944354414915918836674409517207096005296722418362468442639085543737796117124920718446610630494323302403394080821540885711061009339842748443064740117953519913004526605284407788203063855397040559235183192618537765762107730232479289269681542309056637078926140048904749624648614895961657937180023334714308639194692140507310940276895803589133666310619322420862658025304348571851591834594628216844022619156836252780191017097076725804938272143972502736659151563286081015940728399615731068632388104618711400778481823968399934623634488679362470061960887115764897796674026706888192141140718159961231909187032127340628028218172429945321895345432683713833201523283009820712044585840831847193941485932252444008180455734980941468392965379490840913608986288548135999104023738762398495342201627225238876105071234347712038414690582509504598116721116261138589927402479284149571227327065488014206253772022836127901773209626879940024181658706819578713244680089842110336727431276302212451279272067704782572289385197607053712382849113497095512757496124882116559964752401085228366925781486146142289062831292460259602161965580276256696111520163663152567299365207108904780527361174200046082865091770848732999348640907345891343452968306309175979406198710450387570964970393629917608246594057845147096659823434439933795985627033474958840376315012722731816828878025979643981268322936337855766292114140553409387929972749420285333111853626304182224731421663832810854323403331657189633959430352141534578053298726818644304428944663699773653498930348444579954393386382993766147355523079995247138945892310359885128774632935675862148853312250957017262139188838162708553381374021954913945385116421084675926500628535639932927218597181717977434918374820575751104963235671897426025847888398861722092332886262133029016004325451620562115840727424619730327093784230378352955965360345367791049432145563892796596706378631284238560213342877940230945097887015080659203486176854291344668964942894127001697387547326694954163191416605122650877356407267244179173663669423873585691563539548468651693356911144866416075660713110641888524295525426904526075904998301847314953581608870103949366132381889327284804654519713776635168972441525010341505429791139670056705416446049985583911705747180512921920913610547191334718758772986406268022963882047087295446111360547271872274988955966306482269158492170758846513381171535333289550273138029166919104322595560874429197785248137546399320370614233460051049208649544150048669839376095600891732859860013043445114073044033095793424392924400583318697134213644990385416612675634108155356694715110877727943794281441689713785136879890699312657669614164875101125964042257767599071858663759138218299160810787085341679521377385449854914838490409940666805434565083213945592457912528667836682899145739638255277103909085227547005987846824932403683167458192208006730255397548472858658314785038435264198327719225366925216093515360217187486577359901036691816906676246120109536818607163297386779345236231173850209388013002659552161808915088941494911752815624527063259087338614321374233602586978402108000029727969072202776837689213256725430739751803915105001939424646050885585914132599449368125720021345205308423717007339010150663602010163965726568466957407520534035952693067009478583165919431000480197594725689054944324651910359209981472454534126209096115697520801300025183573901608069796611184234913096900871674862927283397961963866600993475687537448412150238304514833253443812809665038401837830174128114724772257169056923701303057415052685677096814349552113213115194258968351551418615471335722349516646740358112921146932901008916156670931681958957888925779152874198754959964788213367941790723571520935568721155158307154766482901301429613692555753474396884562611115698690982237519025201748578213542141222320729729590926699327741244867274069722591005105854866862201247280334088005222201242648520866838374065614300979027153229084687786490449185994273891146329707727814656937787354949940261615020803797795618175143617862961762356174619934261804072884067717589116963993509609206166907884667543215448480460781345788171319664575367143866815280963378329723595804230657334600130223090424971316966253403279592963478035979994292872102250524884295433769768496428840243243903761495804745012468210525329508308292743947968784341333668109157901960972650510375761168392865506575585590169833459431423206700959323269832800795427011886290197178364953120481968076692525073919439401305836859872295272862109701995548189086840147238327085150329334165204471186400673465235483347782605198970059323811863769098310346381758014075943764403055511200880867168219090817330374813058299571269491976908436909229786372244563861411195114733241714393576111623684964595957012178410962222296737458248499056343116498490455510447459860633031620376119250141543844564946994425351678949428638256196651080333403263740553041895451323746621490631834559752001200956441686131945417315242584945269466530055154870758539435340134318743843323558838735458699310735843869280599045014079637417377897086111911196936758026124499436152321279781915616567642208772983689156972706190780979392483776392126488991231964457353126817257284905848455859412727825430093587836945351235522923790475239513052004274506966839650660184982756398639267980088029575801002701107507577404676695766493917910624131317855339853694812109288997056178994101314135134451005254494427159362647922534802657214174139064454474805170414913075303456693066002568562781698910342882876209457986135442544012655362352318137875222716928145672183347878148198552896487056200569598583937015130288878518743742572041259530784746680874722959337894384291007175602549082311175520607757579874067851605687114299367115193576116435877244004669034725131703731806353303062808729299340770332786005667175593744811908556932844281517414835213866231728342103300892515937068996961222510313218796940436789334763182087664246912948664815950668341563153000858200219911176340161386096111499377123910127488703469593956962424781296388491370850720254234294017836414543695818653623307193432952150470044823124476670586332640213996376920398096061266772503578992541701533324392495840621154543214369911901614834558292139569434343849616680374280603525412293349580311192998132174200952714325340568966682454985999722355337745759275870825367736812916396463085799701588488442122231537974813417805371188444453258150494434138592291150088045275862133166347049208208765579965927244674882230828363596864962968570628463391937435171607930987793521187910126515661346723058530387396349072421293845021435576608477655479155128518189452828583909520336525214749792567552680949586293006156704686403722824334273390829786696756449346356483217816405306515905910699288612352078101205517048261518453558365217198831719152393494679728820912331051226330790130475533261489437835261602424598742569224035469975259578909028093221963231100686502476851648092722933753210207883087274013377119242174146988304183016257693819173021773358914612643205997497521909631826653411771072454215725721079289560787284516887348588040529518498256914062987258237311579947400928950064533341593064080509029934157336947009516280209859179640240203914608417895615885526071480169762168047768684833316736909827624160407037460651582667773205802012079100813092252948013970161217751158916539476798173265543627642832873857835127243013552306407475021364797046327806187733631528904089782544276537029813430265750204616248241443414535391213845420432258790797368953778402561815954617596929775248722639379012554811348431936787511741868397075956741704544798054838847129151957939642838564489649607719244013249772097529624906196135430337280860728742685799877792432542587936427799784090590191840961311405043486550860113836956858895186443622301806517570734601576891776527785226673422319997208199619547537241532027326142782133497992251718446970738854401063391184125711789795139500903802514548127198749264972121080884732680459304687459658445110692809348241494489994882557377569688816998202432548284511049813709173425035368380522801444276632011554348096631189494559917839497237884246505393495812487929778583549817053814593952630323573066233225570296737579162483550947210465650471797250021720065308646636080599723059291902774544102803520048983582109220064892851488523944704908979376357734845309588454037266593682486821094467649192657176741860903686483219867291829258639627953755642827265251501058318117406494092891083815382588229453173178084714587192452221749358149995341125451574230551838470584559286981237047756064208431698123761204007967403333890642354818735210738228048383347201239424789997108076894134084512082480542796536241970860427395936779838311854517650047164821269887765388185579530692635299131997069703832389420524762151071446347732006947248661004562894229756981616533181491837129500253012112251695769117134025419179236349988749549178045560899308033454042829399555113364369808016630581735021441466319182502145916359415348318604017316401929262862436537587942656361434233712838905572587295619649398399160138232968910750375669366301289145625913683687113928711755468453513139608902873295738326890191983919569692614651502726781567488074857974800295883079029744251580889864178985841091815005343782392038280392035384963412786466119449136086959394456271666278343722138120781169680326308234459144906778596068752598335820328410845555939831112396863593986453020778561956353572546665016403501405247464971457176716776066947686023730422617945857304366527620712958014753112286145589583211911499140846942576057388232225092649717744226345421443058116088094043768575793341103228207098936374092825171844200516134721125272751519192276320089284354107301207889283325627279312097696786461861281223778349834513731078381697751729236613766583425505201231155192687170948442220072907883923930085950561550821562015872439255905625246693509683258185121268509429678845473376940187791508494724418939059460751064747883630091876881582330666253193897551933354897172022053704637497080491254695588403707727403596458292506514274998583026685975520970200624186441335373708728560605593193442550464087224463546478564190141718628965716168597205914342596118231041352864519398793351579457925044364368252676822624691928567411262181259809397131219238635547997915624677851440654043740326193727009946378420474300938873131144649819122949359077160198674740688828229670054441911502430683805194780033431145756007025567226093613968335054124658433538717928059054552672533207472821907726458507724680246150890909301433154916343082740227347131017212332207067555190135313324745866384929171610554830050199756165607379690098363629508128831471354092738951862675959024313133821749099456706091848450739159089540456438524544028170923950412335745837334465994487920150371925261635727850901087071059496012797187298473777334327869480818898280578467235067734509941809454854579805249338420317462453249127532327015546405622726965489848292365583804451257107374014596825707530324943856220945425977819475605640720708800542755845074616973103035466193250228351049323227850586225501313328676109702323494987470252834462900460080908248751620826274150679261245778765815528887499523362809532401791909469668491406378143986239750677464456635619894069441751925421225544518343152749066974494549342684529235681299246282095748192351198284289369569540575471759976256928714520241459243909452161693064308944730345263414829959161297249481313960918257173560567697897948570674010332127194092943966609351147067531954966100144728061239044403951519278561264509691853412281495352280937925450821350575834921271346684677184549134695132043198773362184155713935845622485289516161933205845647991019663269179352336371675722587832965882653708346003938641337761400642546413055660879734824776186371855487093806496038310539395224869776964413422651735294517836111248907624316663770331209111590637303165533219470059269509197261600804845730782214319964149703516213260768181605801247456982641774048721700780011607833857633122499860104700883873554740918958430069289811802149733709876615649397829925875583553986044758648539024445675295438219696587963058278334349023443519448964317301672023841323863903845278093383467620504681932865538971350547902075965378305034662637770198589984478257218428166928194273269997321115896588186239124883595219310331445027220352431005963541270087163205915496541354961442005953813814968254884658660249125841340465364809681193456578606990649725701622213982531076411801321463707390847945003684666503373298679938293402865782798644875076901480327379332935029965661428049799779280193461237192000583519367250181499329177314929255657973207299181913885981463033301614865467683744918462089918425628624737880820850794152862053872933176573538387510170947210872974441371391580455277294417023715558642107551117911809216877019996814605016750851295637081035404107524128159856255633732193056875816238364375802661617285349888809766089266964010955155881022786917806575743899059193769741996910505737779575460197898873416421420180653545306069609949960135331984195151513073183889700908964879503208504317670561878621261133502485492849563650249684506463724256688593066479388172722182075797733179094984976075465112900652655777285513212350237011515835025552807447884313006158503991711662006768697123043485473785541531405924047805136751269879494685284015679900024831648824071184894940399573975098207444377719363876555769384783109845692845148566485444382113938319662975803015839181781010395178409238891798637907413033649957501824300680448944305541300636163171584908476401340486255137219642827406344116106819201616136676591578943507436083107486346569504220330884680032163378743204028955186794756665157085548612261500726867633294628397652844811951658972730648685254849152702756241798525842750770973633650144707015163701683911948974380054179857096620100273600003458297325180887049488819764616927128368035642861538653846959807614362102353885332255913794463795040407698686643592039657048494371089142394692300226719490915932441681617954502800293285015443053068550427745287213102907790975649746387655962043777142285697995226297847601562743559461840298525299753944953736398723977887561316184051229251294420866320511858554627256401707649203934914153264429222171951164749700987362866215205420511044626916278898754866098909734053132501362690094797493382038454689412579293765694962003347623510458125081953596070599177893851116457657473135062807595299104146722700691023636795207643175792162217005080577298008270066076849692863263823667335123206796842739557464100726112452715127367228562756503306385328891783368369913856547849339433459940475995738391217142040806664512898332236702569014748356881114893177720070952718899727944698302114083057982114851668668752668587852787699124255524290617185547594778550877379280338026583068143809296331327989613625127310484373996591904925630834257290029734039732495064610131941601966040946447579752250864300232556554704595016305426067798600094078343309370390251703280437194361477424961373592533571409375077371661158891168467402845591632856168525234247396636291404346620301523208900277475573914081459633841044907205429062028748689427681907388082321517877013042573858842870550369543905027290482948447867442943756093720893847420311073333091200455191720406459875313125218681240011123434295970191030105782728942030669668614961856233748095316301021705484054381526918316794715002563998568341263061435971277843704609258569981443639638384204392947801399124704138564272348603751513825429184851832463619492153287356057300396410929795929019506519867293286983429414375825043405194308725588394417651936535030301684226398371197133729766130260783491898868459182156954486491376464677751611245631801844595509192379020933790584463931254813647357906731084297121856065039121541904006062964221858203808632943020050370674673059812010146138987499030498913906480096648287326317693910893191575685638776863334915612201271710413955398409910262526637792069259729321578825713139228821652831325869369895744577862986353575468052061169970773127996666768520723825192119711688921281036304554130183965131078117562654967701232952539157858816623267078848362738229379104668913637175554710741255299455353543409830489688698642831686596012162396501664216360878308711678784540578316108690032745001888140912584615612256644306422422986112071427834268355095401668666271656228877847324160875692817288413006118514886298920751316178991822204260900627982184244284500518635948254499255885572799137472065307103087736585662243581482351701212021751230788649811842285700328600591589556540467829006251464677626375778047986269898169030294532498619163958446081569996476285853348094951293027150439343778722257483678547658983628998972426419301238515570639832349848259725667183369575746830153278422841860851543759065804508679156172071990520005125042158927671776571389316540479847508377259518541525272611806503827622756563795672029956192322880231522871720964694089855524129965912367296257832490576938561749402606442857933020670430982537947992232110318677341993783838518101832382256280995439883271826292467090014519746543741458549368637851197815629377622915466550401885108063874106814435151004477584548196207161727380485973765635041493109444204233940172744284941547319472156589816367429762302433522635755112209620827038710395301774212776616661275502074006802647657287983872810490751143660641772748136106315226046093589876627833782622184068924820613460496097612456865454095916480638923761450413849413649275191675387448159436072828974176906765983295152347621821334726978338379741947735406571493152563692951331572826428816021691707507484953345187505467273695853689900100321541550620827002664249650856020437469166986019222268685751254464411597718875301053887035399970175283818546510497713620436642033899339402819976869962216532443857135054309346406559898046521177950691848441927467837065162984242910430824488185406542475166236988230347105714910686351486600441439304161833848083195874284723610421128148249260908632455913882767296888646853269112185819626505973414496985063455918902542716436584904829171726602208734229804020320034922919456722306533019661643693378972238998404238538860867984457776854816471417560453175213687448117820590226825336946265229780312151343512596384106190609512700605324856908129450192294007774042210239660252435544182851266597814822691766086174500656096320106594796349838738566335184951190279278372749902168110357070465348949979708359377785372403717829508692842707295202798132524525613964420811419071986010812869969588275707891817322172820257451507507672758361497350766657812140433262306151361323892785820351362146086403200207287309041184452723894362308515925146405359281003801803420548568917909478734449635430612178614596784300304783608401682779435713980020951920180967516256144840423790510065692809191338573591488572583414987420541958527717043576254829543216263389073214736698773407661036373185024321446831472728495959643884095487467585320261315358282266715784135082745145476240662354439879951705082971909795995853687607319483307552179705025144867991525809489063864323014600752517227817629763825999058556835874596145043014692307765441564716708231700544924145201268153905090377938172713234735698966367777101624335565241117654949778554956547827514497451497590959653234949708780216306564833085942323478053750039409676286528595446637295500690567491210598329048380699430936178459832530010625078454554159821559328825293009270718119135529563505063132715873289181487651376982428076493442440753159527482258468126426903086222645306777698736350148914997725787176234227314465766928540266823278384444766630745933515992991195543607968260109778613073650696578676012756772909353664496529090223861163383843473573971861157783136706000916803068612434762486421376856975456130018640793296713057647273134072117791120037811973038877947311972595435149678316630331492354666891268218740715987071461381888454917760661783267649055060355992734460910380900154511491096254684382771947405323422585940556665535443597846482132173729016717104547181931426888028248913122132169377944264166300205297035539068435323514565948299707020195182963940632974238279323578815540992064037144354727458936325404025310766953247667957546307366320042172554854768903266677779977835864123661885248790886728389009370684913830670671978821808766167517548822637403340614841016589246733490029651139861724250174915287273851281340075891394302453411467078442802514015087850550989988258864230248512904758319570100740409686782319805703958084552357146557123226925346391851553710098495172651750515077578779502942909972033249505302201814738328842020609060275230029747005534310806625216387081118561632151422311670614033370608392241430453942239626977589510094485328987783156848938693009801050100160397907234093767079010852062897808918505856586852002711853950868803558999844208748432548329902972165794410933001043066722425591612603451271670746468054946520469329102106996069531493184738953146113394529533480042797704373300951623529708322839702631422207902966529269988405699173901072861118330061164518365949898775472969717139824691267501374693047423472358348974164836887298277617115724588033319974866679481377304219528951850043179885424804493426520878890303430024027739915818038151584860225225633682317764775673845062154935515846144449592419595545115111396953381515213613334531532720062459228846057583493427262740667656464207757650945944003906837674523014728356062578541526715246529069010436020900041833599375808106488152798378643177990837097022031972106206674697403352158527876264943982840944255713794368983110190283593162241435457671828419671695835945442065261894313265689175767713950756048617089230032129836723329092831866751436761897005146552791859615687098341846804004239103127823662559836488654840122381206726557770959314568355385789791821785831741970332938496263650671975702054194250014010662020232451181472305102781268899037738343283734383979176615769995733489604251814083166673915143632040482717394205546148556377759857049923028483731219234800893481596735128204171268931755489006261881513193867461350521220708362459099118355400749882705400950284265618770125479064578745935842905226158974111707202629940813655209694317132583820367209514796934606166663646556384207416071159988082006084641107122652479966501976696718586300972124143710964137332354489159240155742055037397835758133163381100680327206006857027242716280310087816527109916606491663034801843925112537036927295636350577232380507497233203280386851926555901021793136034886523320597426441226660945100498982453021282659674897434816480561244613722336761291813174575200483641027642033787012884138154262060875301231612531279908825969146643041642091357593445281595101314542091801557860906772498868298912227327091022976209182826398446146550219758911291818918237942443817453427999566090994312561135297166704416103494534961545438499836940244677954017820715253121545314565308735817772899463934967298677707373049123813737144396836361846797861725728147699663612317252988074156250479701934887054266555064074540643372959251912138051034167124521264928941102515006720143801434325672533331645581056196866417031679989787813637058067929464854530524220728694692507100868552354203593661774312984031596549560650179433232767603089053151423578330115739067055233100067013985246602785010700949253625562822435929230598517332429949768981860806613345185492530620435207070129707001762496303507130073505984036811053318799136569024151107645087057219215727527363899559372574699818047921281369851219751518306352631362372641694941797355358415100809637785183129717996020586305693784130232244256088427478572545317097204577860414733543160841240949838031564839143426607473949103441294473249466254051691476269038789678024787699492750770931045023324369621506954305043009681247002496121590433374165816366146962172564469259320121690247803773879100369154963343970766176608356992951869093964807835487946120195330530417104697700313199995397449682586978279037361158860360033507970539936141684982321011615534432332186857349613521111117015337404606270006644353340966494436923422830474599512261706620284509310327685154963242036486690258832837364481171635405850263275506880827069953160365974682395643354300962804608814838742665871167600144706382590572635251028278232979128099036061286596865174765450278409765926812784853078995993254088955949435594321131311355173017763325594153890855364413522265301984830221882380543209374044351749061036396032005486427859135125494048038628990817166765958441595059149357753768723427750433571777470783086032668460411658107805654076260134911677880877723843608412128768714322968295437878690720248078790531159412188247817410782096758175695262873833744547550099870505147526258246480115086505110037938974827506138117219163693376125220933722334404629597217129944182299888952233342436176672533318663177651725238594041156908575198195036822365460233750519801446264717393424532782989072838061318300728516988500305119332752842734053300006142952798513505590980618091447297553936459228717881019439259601272844522258767254604237511879491120540358435456073327474685569520750682731243631292337757508899452613103847934911983706924239166255547479311971670992000498918577388357057103353495101340157740142055516979090785028532627062616076528959711125530068800903278844055333235107080638826194627289864392869138706424608795377488019800550491210778002124545487928186544571148276773780856953575607860491978152857388969726374245453009145030673806751130939606269299686786564404522245033426815482553832374315429853040915731980235807583570897053444552330847848038057217270132814359066119366684561332536383282176767879650647731040156743065622591910725056259400505184157601646139688856873152318449809199118468469567582234073728997863068891635086989947526823913984755555436194107148993729446719954141989523803448732931733017092690526026796209067557990857300814680356211929549096175001526102212665534985200380674837902081416899201636849050160258991361358047377306719842403375975894320624762439534827552185829193754550488865573715060985303430288642143241467081412525952042011698117628750968028494589064634624022162213066899466951327309303049135886989424398484363829899849422138106173255724364766379074315272888927241641732898266545185431191681145445891889916760916000407506177345395760796425378953020834581876217153890775724431868773870590378503766399572612792858648005738337955338359308852397481582476616943342548896467739125684719258728303918259106816279208399524117873469133849770170422321199264275542417726570664853164897460872437865005714505394425439859295943466796792889609687056283623430361362135158347408965800791717899924504689817243868009247856767237840266802897871584965941075259131776816265835943682253632530414219474399746292768064220658617204949979017079120270539869572613073066720536157636482173454207748598086421386029292945352317520120771865902150719408890458259603736201084329679875325153141879796858072099761221547045358373356481552916137133576277048881822195689491195026921147679281070057697584358590718944742957871622120552107160229787421693279259589071195628795012142273801685114837668979452303391430807874699400242774709843865352989947008037595712382761364551966153163058345378374544363511648808772311134547415249195852755179850119266484448116455567099853518579511958121305775372799130026969956943373855126573882788160504122382301119714793125432529211169240678909525341890405569549818361733803331084594752290329563229466675804771945489366674257347958976848282303023683712346248598164882620303707012089593572644612597448940592806943389440466109052483770408282623411015041212930454687556959660791876202590847602713704823970853004742774090476617846102025519427143157585942786184334442214049925877396433667645939364937345919385266033473391246364495484474753252704978842958706555611993317239208659216380853189930748402144943389924382012346965803072857676992635393871457501725120583280383378031741011182781056443451666076814748312507281718922192277459667690991623049024175996729908108430766598027841448283123755982964973719138143869367321000534948199073513489004619339887841502019397249905028644776604310976712722205600903524467403234964016445718966073801009606239062087301657334493534882494515338728954649717655344862584435810362879877022224624567036693769225837447626383097685438927877599556829926974059928961833649842621133527761602110192587843985483915891271167918546225451737787736123309126050154000512532533284847862515721454736750386108780648439345381704709542824965309474528522083674768352499395750293812262629978800658396101772432067420366686256568510051970463726915093809387396090186397165892281695540760297974945966221112843252186814899142114865278224033004324922760034522959454257811438044477959470723383942623802016462177030674297901039398437304214458205664667441231166762453651868173229003556869214257080277177331596750324021059181598225522050257302763805852968553347023649416243069166127303738647284384713972851973999124764723857483676199179274044494740630941051146559085279635298480935353689342573880867807699383334422188669296808943180236574675818286142023255869918634918687964944073115177440973901480273324158080151539190113828370389932990296740150224883468409564175221008717154425875037278430891545354420345635509572480062190525226751868776215715617341821975093187259627723657169467438630928451549649598630649104793968821687239672536547166338902419288626880299997767380033550419107048511191133998068168196276462446254891979727022885632807896279066616218574924874606353726307769644700585240099134971812649789275239151375719991365043111434076920446658113611053603974633294966247535089001687430211447770247061177145224715474284598754411624987069179658321102023129956296436799228767736747765962204779915057440879144917143860336918839214120950572789075516815687570964197274924002602394679286212911222598929691508460748922536814343172524152534268155966005387649410360883327457361560479845125297462947692810568445084508534146219163399261530688566050336416896070861619634429305192353534776009111491350600177185696831777812014263707972055070493513764855200994940665740724765258470545785157445809556532481056474133649746277422093698835102498848399511969666980228461041377695979279557357220239983217111412163342951864003288104860687754490777902784931664200679497664498974116320662773587306993839418665403639099714347232644300752703610709993432092716869537533139934102236986308913949318116670145125667882800887519459299836911059128302756180461650851111924414517465335825721242106171017228686728028715770495778649636100323998677476486150245974799052331987729122754365866620537710353597266120529801577345879458113829460615060329941576321363535534370863095832717988671741986811500378598216115791767645185850078197034215757467503920547407834082320361264702124268280915749881953672366866052931373333280772182234137169422725934793654216633516078935870253134390013622690432013980280088519758099954448569269875158985039253172681891704400780927019515113531025402449306999280129888618885261997223196510109504970368889534138297229833869265976636840070601849741961300530441060069527684622345836264227946094024547110984723182852293750516503854463002424283365882461003957041990797885359009452479682982039095506244386205114853592871479022988844621975907302440424597276359734026457671327737396258556217401830623642414023122551429854085160506545156130861556350616523973338626744687644518719190567138098208240744955208129310543314463891881512262070035062700765227373488551802095590417104135591887553866457739906553922006834949875541683403596023419540041609813806492728749650076094107433101856002592071053890102443692703729485752624860311666268139802879172521967352902326368442615314265042724431219781084413772866128032475092458911151565862109716430920014363738334677719634734036650495733584500568339348529015216285769814781197439652326820689809007308570526315544657704132479839338259816739075404693010647150403070745109909312720105528458571776404020787824572924823639910516078784038908739489701573592420528249961863974141786750055982381561266636641608114098817713335906369847670345491167180835622177872446634647803623893201818211299724022991633003705289351106167751771821782539650322905335777359421043626820449644651345744933783270080149124884612918193794461458430126513197053733877383577539478540602364325729466064124849566607362019188980212908533663858136968099338846504988978581927812176675082547245505506458013903686413602496285831624975157730503692331992251841887474789354317227156507158616090636287298714726562039443622378669419440199971545047053330714360918761348108502498951405361275646783417311929373066774266790964059406060880422007346944938527237025869840188304275822839505381159196039913504508070456617837137239169043991642043834905664550293312405368742658614066355701131881084834143332272874629590063991232528515109936834678624680669345850808287742751686791703747535361874284451054711797187647047480024831993269075552322326704845568529532852546174190982786644808444609045428736011489637438413028333622667453198701882608008515416163616422888322246823092067207197255264624408153422170034353707918134163912258442895900184889564363409404146472366894503711498354034259335966328891565842768775256035026494722534284324127147430591802617236536570256214021870877953339600481362484639791332257403372860494130749154607634470157599263846560993737495933714485266985272100453260225316427304219490821895878274108752907532322201325059302822229793092062002239117979599605452162434564190136968989540309026278549422411615941568326041948932064740943851679621292373592662692872715546427363119295136143608560948384553150401413589545610890529392056615960487215480093858227014125965726046669091138909549405303498578113742376972444725725063144615752459402889215156793415595024150532282445334859237633550577951026615964799710527844217594964345129550559613117721440837914776374279375318476660071955912290709694801191804430539920730769801796774522034351850066817508083409447800254839135585428732971074152314931846727963777218933203930479706532617477574982961058927740080783256821193205093809230202528222387018446679903186910925974620175857958894404061896054049635360005786173717931418762867663438073846325953259433162474588499306679418117664560683295257508064739012491751853954580391957344983452929723912157435907069155996913503032346856272548307057710146268186949273654142023164645372339804549011815485238288516709502246174927368829160125641478839749319432984234982443395444045749446310965601631068194021647413157565242412066269760090869229430963975336207177185439677535881772465082172883734087020078088677778676307088538691974481111843133023844632676864651269733393156891463422311815285936473112756813882453082307516555902864481978189164977464265661793453656522144089868626557865528455282449712453907834846546098182407806155571934058819585787411745687577497300716848107739255136425166796742873899300311713984805405878703843806132294182843299427462287607084790851465840126825474539546538757093180748923980720726306804373756877117436276131816658268583573405338231281260679885591310237453996662644422135050144529270845768437021721884704669682076989841218012966886263321796154800519902955509921509729503603637351796133137109250178469100645095647409705192792821949816817249251538474522252122997517895395349139285873094961480993806266809790578388922193604402492164606920609028413043227465566241434000251817253656582554377487389696131677952772635986296474476517768482602221780378498751670324119336999584943570381659798106118962159785502577130221404686247265864520202438466609107106379210579947337321659352666116992643762109853751860325121896613402614388857486617344585819957889497608549553143996265960739455304242810444105433654246443238768408810338664694628801598623680419524799675768709152275760932776811768590025147171983485672417402355097426377357637311818761865265995433107360104006539190012283643849400419278621457560796413523875855863776549101402027968202036688734653325363137130073783965665936333579151964067943603858522680804754692348554725362449930759764950801924528053017029089941891048199522241315495668649304573880357253544137255522717304155451354503135482794907287943681972561871477453961574632730967339653527408888190106356982208263223498848140762028099017635673944913472762437649546028492197876352227215374263738463561883436977094274472378693869211160471749668210785804483898620740742230357339358780459446039089617901987406173018074571819162240834204027974155950166759045328856165360338068824644147977657021453102091448942080236924867187111235057271820067677422733626112069269640294027878574456955069625794871200676298336192911289132538143617851451502508052474387804360676692528912745343809099151353277671878191048721291602476419943642869416487151368005752222659698002240569682370822097704015877631391557319599266553410509205086848157410701581562857102982667684027783364838862558710161688514757809722790136852670685903865404264647841729450082078365101944423667107599962637932108644988692306990868294367225261931667765963486256460968932956436142218856559718688248174611105553496860512883679792103259188794537977949573188359839966441472598634258758698464679757189820990681560605747958129607823044506568020688729167368269000037591577385100425519171510593071505683254676696444536884035638708944874820443429221117570564436224531898939644013346886911273253947886567533649817716897538585291354808380472802109308192250975172996037801097378357196728508106645249675011604861536071825747387662987737725674572088694514592281264324800254731577825561883820033026026532261444849103325954997094924692426274299584143033098466913840793421738353225061971781289352300863035395879592622979725258310927934870874502397276813175934926748350256897718128986590622319488352300251251634775907362019046970823618589867443442863579092406153291407327462372254369037694162519588558539377356545136960861846800759340269426607328356530661480200945459669702663462562246624408775687254715018556016383613957702448317233572980103162126459203689989694761447449172334897967674260149208116876546606332369299768473089817625377661449553579538710663539288316512888278388123735791127976072025656219114116133536168493608611657750856252034587517426052138074297687123627283965678811581654795546716043782766843203467296083576517843589445722618294844982008129483962061502879014690185481042623231949135797948360153606894271859959844776296077789316381404272136479506522355169363793667569198778486696547114090789937963090398113488306298935076744727851786743302309723133898832164405418220646497776391537863961704470843610470561214206032845900831521298486862892423966639289399522925285201748008409527592842299324230857928449811136915420010503296304593948822206714503997223861741438133399802221877816957430204114864254935511037173961332667338984147249090041344360937656621376655091409965397994724070844661032353159141996460658771631062681647374841479583342885529254038444386773839477599820423853218618066974648369329448822891768547127847901776861698020056155787652368525653246846425145006710641149055934062757283156936232685664264298188340875954870031149623689173718939722977119182584209182555514838099816736824895327929278218580199639569186674082244143083715201613829899099055908660028158039417832726812992919789936482525784536785329596726970629822778456757909798986787395795030148374893340209079576356053727425009511322440345959463151675586824115834770095837659254144477604877755361802690023794860428965992019310425046575279921317610410387695068872073228905655516846183174010491736792633013944454148472140518988920589066076002222872327344158625638088824651075237811353749912598282467021425440785009795315243483947335435223448801411351811652388906490688158184668649158344365914615678810961179967107439893721910494606957938066163357543744800567594450235535156597673360160219304127834583892727310336533047520607039891125607555963286604179492066840235532794601563142786425451149679324245240650004397432768203761225051376012871361765150712388581468195604624412719811415207815382174171051765544136825270774404245532246492885343402088467765751975765225222929824615145565583322785013440366348836870775095470037281271746026094119135174179622476029535755734503010125460323248290931122713961206844606266187996285659934425521153140444975226739714330546304721645187341363867719106595693022444387162928103432622819710742880157235436404464493050747122849160058691881446345640056745720856987958853761211463222624974106028948490566879687046181081951268134758364323694227467610480958434150558313057614872674022946995226803163876481817368548679903656175753886104111927806896005047146894576228109321554509466110302488230771479191850074400609866057035267367074685038652589797344907602594416084852064558063378313634586724082704838244125772007395389715103098927127388580373032213772307196653590548409360183668969841932851148624761977881276001448585327570398688339265185678526107562751958979250685955904655474671750915247821079754221949027855084739504637438122773434490232107326829547635424412160915397478400693119048307411707207592218658587247732663070664992217466175106165508107762925546611676143756082409863229212452843028786424428749440848733894538842723434967612631148117791884703474432757255353626179178886960942062557269472864228739656682550225493468210556991871295858755306939143973535150225750201460132447140203443950079131478464203439611518830224954508525656680860365610524059143088400533570161771056407491362331732916723784951762387363494688823393667567846886957544611596487460306743926046236916142052453313720081922605436508091543970949276921409923587156414744996298613284504880247973344079842562016396844038990433475396446256319022256162608573561453471032230409687339056885264087752435239489745365208114079777113282859731498004362941544187688009751776820843764835072428615065532969813790868409845147813696307554023390329428580945897573306698338238368940844605315252452966156373251010595888288953416003144394700063640906708002653192387800796516461143504176450995572817099662577944202891030130171609428572300432252793313454437517168444445912043499115995925827178310349189280537931340855486143426551790627291758595046622814766761004516660496144578009962415237035385555813870884833671440704344640720049596376786143009920940009506989594760010871454353704660981802853996498466343764932748124127098466853483855919571212929265659073623778953527186470630868873731968482121484207853748750428455157736232429792274302692231698886394489912052546085114464804140395691466081829116186039185670963778446939374661859171026299236923418703701735224679503921591264314392231716196098062711643959921461159249707100184046248767908701086196950616594396826973559866677055345675498447546114174966603424174544261327640522736211321645677891451212196669023148412141707358833996865521596022743173275581239872049862601168574869848481394138956078070015470022236948540548274807816920254288564921624724616155460371233267411216603662614921889737408814859516933485610933742666093321706145886073830658797204227013107080323494729223871665312823597802330765287733288271196212053528298017494027874610338772165065754742368400419634829814331666304119181914298066727564228173636305769027360154224893315726533481049832193385482971006023736158106833568877026412981504645452188242853808941800976912546831226337158843663830133980601378882851865948296778431655599471558763415965738240798860712702232578322979487734384491022880433916628104805309472635364729350597824411257509037480292325121778586772893654163995138323198652295152774216797744501273364643886576772104068781768700593639958636809338956873692217716173066150063103096135944486770980243963360790406164114649054857573387591296777648935221580132053533060576869374476699747288321223445798186120997229018979566235178519078829995530780236141644326466492363679570275136834602154112503259781406681600706388908564317157054171360907102262985347846108263482042369576005247983572493852432153270196492651041312552555607017501443170690725434850985988136331719436247628448711803731933530125171702738863979557007794164577201261004812442091318888186320129133198914275068117049355846533332072943721145372211753138777606081013407108149493248100698439220048472930639214435903856780160428429064043831153039050003200961722809803779197567065223168923789328205371655505344379175808798302184046993003349055766879780042556092967074711848482734442284991099273640245965086194057645581608633357104471747858839716280128196430308234346341995252628098438735824262859766552983881860717989055522515138466950178531926081790580946040988959439149789848988593926866098368335072751365904636824593598677249644038626897953007036302317168571963337019073835873179382809042141675388131592868103716430256307157065112222177684664985842927521737747455209566276117218022180851249732881104216659527831326100340309883957029117938850591359090835942755738769468480156635351565046846235564145219275975295036082131499659105996025705877075753707483581392513056969501622968300163405051200482377314688330586405755253115744173949297191579356011946309891848594257018209577450145825053225702312488803323926350223776809309854761105201305108930205381306142680732984781796412411097999021365391111975804550490015306356088793176005529253034443799327242093825565834706852589250826424627402714350867093345358193463914173622954631284751093325734308038369213143399914783128204116838717771456630554494821075869451012346441148978877751947092908846633221185601387521128189344101560578004400810551772294511679391008326584473385034011605938609714611382511066176043876039310243742582506547572726466307665814693919654919999936783420641357483451626765292173076817634169848303345374240475804223564381278586700279600499398789469967633231119079213602401601586383032840562338915645268476604884784003455819782458517970798769425132680672375491109734636980743399483904255366349795718428450125522437355541188869531454291138523316468957058495376216940796394648388675985861978381918180138431433215690348191715692889302549340796625592344447690894076743116614438187153993848916129663109137272370112837153398528145876253561325592430975380170364528451158478036767404027082245670068639985212124434963781878233574824060465673846954138269543918276567767765302060064317890378992841714410709012501966761975898648034691395101641369756150724591646406259212030398542005792681877762760258284387840426180108833041091419332668349890876769907960343546046281145362494022568560278418012528397650207357649744878183355605920848602385493230036892815384771585867368385895256588752019236247101846796402523656297209807036796484024135084892647543519495382615632539504393889509056782323565105608709973536872613212764982171045677205092875886470689673019401565097785151759918435151312103918427800890053808661519631756235934263356035114263079554622508173317305358834840920584492468843113805009171547612656080294193263650313535927149153588395286588957017579353399220949461930704301012341643218671883875830393078703997532561631592731109343857826875580691241389130294842036250440485707455261516916408614148479674640245364542216581450619644878563642764613785134079366944218725691145970776601875431252268659836142322907220693964517500744286237065635519049218029094163006840203612892297774466255569329008428693196107418728766733443830006723401065240609654960532999322565859808154175059775913971978841089688529392569714288334015527239649348776301395822546192764976733594151061693779004807820934833824225574120118956279260485152729055242975873067466269717427723987875655257693858411955842153081385890820266401947796088048620931346098276165851753404684358328996957723777393419099843352808412093514416693435476123171291524841837736962515478887266260696288093773471178219114137738556708377826563557518013725090901568065405004150500971572246118252555578658687011613478352975859064640370378285156932896748922835496970427982767574310729858599401697740315383026216007443063620727606486049304014491023026569777830057166923495735298732334812900533124892169938958058252165757527043348404264713934990185882351527320366709505271135571576905214061539265772460206778323045800444916471101508363651911799295006199549975660862325504964666375141414482569253513309291624104240016269244396541168897552697157392401588961095299982132219240928103775333051009645117184688801921403281040953302719121231255440839894254640259560894168455964622335509184492032754759081306228418686358677804699951175024945616542927176324509137561670110154386251904442666942306005283493107247864716512306929494707771856532662485111220511635616676934066312608217210774394730636682328198843945493772511268005065054344338476228267525091598974104908040238121553019908858000318273853653333502585908222704315234347285335292459557146151322447261877550728853324608457407333205003183133924059616998488493874292495004047552584138253973043434615511356087174002011330474656219653439536188100619037127436266661475250413015722589348991962836184191311858522370129407392015787566034719466782970244956948180150991811302060238161845738716719931526696399166550288934186485082002525090290040399376703274644006670678177029121801347542874753496758458155153607154071440645849753081098892708311710755185676849949483020649231273581374149959476648504304023573190749845562576217065546107539414525335115730170861581960326545068710706654155515969383757043575241696250805319968494560990815637217739663941226451834169455270013887989258212186662679581275782805538135047318347531491876843886264853371860986886819779969737481342221718125933546627266042304135348632044841376324026169787651666186800155683562458218189398045785950604675603509522355603793021737618757767561240007324783975231631498019682946575495528816885076877011162050792906286086056310324059334288154169403794048383783074523782055511781184650309450693656638313663300754566399716813269885165900228091428795969807971803282297249577237224847794187391849373737840132392565961590290003988737374131455855784562424724515191791182231028255515786169401993237947981946669586262120877355567895558089681653707617424772680142427692459872106846245908803896108410379827984053277486336594145090606114910492081985200887612813129362596919094503798169926789072411538572129845951505164396775904221442240626868917451118757431479451913028077192564314536982891278249881076394162522231371875369377396310213162470813998753100673588175168476018753222379612198243192896258729271124594928932175268007824738005338695656136705238964058417348221656206894488585014395973030046820410560818339485396288887149761241479615788340626469242768133972376353848751084932990631114734838496420754369715560683136151114861227014775226555063059793096664917759709555964760645202782697392558591146807378334486943514745695837648333124488240346683438810684721224431245478760915233564453371485922767890104190624260754766043263028999212130491264044432604412162382601752404386963962992874180181848367713883293690679965584273414795913829984322073297070915811572464959287379968104388638889013312950343698759548587735985382472829855030827784092816975286995104993285982694904009695523790065153408761654575679865401809197123995054242704097613703283253925172344787379512525456330659712745225114990667510702401163969596553139891227275634151374015625453168301661601224160708593283317400259911768727476326671648713828696613665491231532280444643600790392782109448438967835323658430670979898755210615154091044446291174824889233163855817405274591263342036960690614365974386173544675751336039213167546690860782493533718017816159953875933128136143471525447958440529333949690053311833583888435031438227626374219750126781179364599534685914325209055192463957971596685835621008176831521769310893153861111556529610735133401534894463760070685729237306197976936285109014929385516017128148391107222158703037660798263517833235964959995104092893079713071532793037226546803834539480454175714727211278468866136241813548465057668287074620532740244007165443513772692385982763591883122498306120022835536032770911285025552445572557220390476415113797487785453354031081143593548276714802724478194024902529176334697396660778247305063810066374184490201780136496935252055297238838706852672353223127721971099541027857286844009237409289558608699264646854998505403910230744675602540736891325633985761572405415937075183979660285794361727535052581290350241585104481954990268468288053124195742131224316210556325611014942279318850710746804015301786679002509111240073835646611280531253374587207913617624532753491539277864218668838540200295561071665867778119676716862197412021229868456052427502010389130637937595992153924723493573089613721707791656124013317445188614734784354922492455098376405377907472777296394111181093923243551758054798287052621049781537240628437737704727961810963102793881979109983322391399232655340078098562877006049131647473953449246185310520089082436330031173315560298205258561804661916788944784360792101118425709541596937143427009964982950122978848517128400305037859651647501111368653486072302402501368853268187541583998531746218254695688547731543965295746262611096642366658526150822767361647941097595193231002770686454514871012231228899001504658249904615711712271289230335246958139480456536960901111394517658540768329561587990016388297578184304781628909159829763191364421766712032279387299626051249812946897986005622328351421657345535173829728774185284353132295807720218875185914193782491014780412031544970634442252964524619890039374436746924178508790327703716289014167139322920113859728038750996804057922366615988614201834967898186761189084435987100048633380460728236579206509796269698439513229903201463106371632541734672546719291357447900753210203223935422691667078798519702099428502138406113536479089316744103600880713182591375368251511567887286551207335499088178823102470698270763898667006137645722333724328427979176144467816734379085661312505756987572458426533579605948563253400873919303782189680781457280739205307686458436577580532193130635670279003157844925009131748688081802030123183419831424882989412533988425816695910034555534752639663595788229956688442079310619331739730211379256425053604617232670119456353268270577315291319686931168198981775359657597295053116040199243952451161470146342508751217906445495788667650970961248805665655455182007154435123848934669157881041028287812488249992906651727322134228008330435316166929831543846365588348943657457240497583816898015765512749053289074364466455381518572631503937561439263026174877299235669885254221021982497757284629344437563048734694840166502757146473797238029986244044382241114206794281318496935241793250061197625586808509016025624534823180074281984016173895991635112011312171234351342433779581582749711132184853388308958541658084509269044392951761937214661057028601608404680639530966510471655483584033416959910046773826290680853853913153238550462786229881782441302664594501860702393602215281579309727890667894325362352853561864267846409489702488708444960875313040295269229233333426162240987642535105257709118462039116898713348850595243846772573239625268517753160685458021511523855662761835286419035922124242408570047273436937795342767850427593072822791876307213561332396002994649950688684383738739208575000751821930794078436414475731081256642676191805881654763183124550311111804869054015984124062671230878170979965769967469340814267601559548167428628788517084691878972369818811099411627176913925965702788743282250843063025755887320343300135938306157232604032070837139418994405812889774699587864333910617704169294535924514884127949200840399339189377478976478256904764886068639387112849721231635250231321449343349932544313838576202849851715618813640977773345040645003494756086918208857501329062435671160105817743178141496608217826962269135939554485620349282759936302210628326133093195962398987784586288365428949997258619779370845823560734490483608540860553062501919251065349254401648884617389542417068214534877717235228106861832406398366192478470541026607041935332164891699575034114619172687868190861687910701396856614835052022894799027843560493761443433710753145767662070139423918330625234833346778910597823587387021321846400639122440974960438332590673700201735380588625668256630614389587282149455226140400398612097102277924803268979786393497031067704905488914454140713779140548448118265262245707349487773229013369507978534272391827763755142023487078286329109459862879927254426123846474327764486298773966405709036734351039806057522648211279573979243522283814771275268941180577044554815451841012846163240246101192832289406551577263496346626006182978951059841329611113450207981363490407574326764191634370478213256796077150007703090726493727571720538377499235630514278701956503952491344971569438777963122067012838913688647871439920451598312141112267867262070988448779258504186715807242207105990859712600062936235027948794551114390276640685058352669540059804925644760848914541700974593397948167281766620532571962249646238719461358544615899683093169200097632621067766700986273350516900269303511977196868488743691081160665498253666677898458851040904486679911105329186899554966721840446558163811786122529927460712460722216901095332134348360412283417827297746744852049338706942208004783600317263669606137209982404779149851804519746244825216593145312913523723191097397652181193017361362875280671073378541498223876642238487776929228743950469093312997217852550342760429472090249013548250103757587744384830218835919909074734590547008476708601715690751012340767670751034949064039498101520071994519911761886079659146360591987509167930779880623906440321769653678635660268693848377564626687393892656899348970937523338333824973092129555954041182857745766969666708866056520509641856048116784385166874882879446441250867667977903198522296339537059721979307529051523661201532095018493986862557550572024929022471290387672805725539040398160012835541922218948437234220873707955274491123352695363247131351945207418026475621251514138778002725659513686255080952884795073773814216296808205399658508638799363907662074772602211490990000830204328456836839388474477932486544121513652453871279295079449481567938932685114071344155079527334273189181181790634021573184383612018342307164319116521861509325657964705335957426647041685289283277239340992012656800310254335646820223517822357594267602903340336608471079336093673871481616115887392631613175050846186492250414459243811242451450399682074912635187102613439236358941089966587729175494627092727347117469261523934249430175716738596231992937665114035755296567782237941980683868618367479073008379426109013073440607046473467726657659647916867490088704584047711541601933578752769031076389122513069371457272989960681380698860941937240430304716380846658010195103375803959653224554368368365621123821405053172237291747328819845520869494973530373303008570530847724013774819452297637289130046776857314098825205553073391773540857961802341370846935006948005097564464016443321259540182133730521120407418697952618463628263898262683745424848420616312875844457504232324463454230665988591470535869430749677202071755204949967271484591615162531642914152430023867290036022307050978464796795501824595783300804391917189288387072861720426635052106448135326496949080422436946167787025632728487215306562691553332342948609512057226906207048691063353787870783667041567534935798931594743758434415551292838001198250586851458853525989146514597833882456255520903146807112392166702809170190282553703154412054701602454426741796051063407453289965563764990552380263767926987759899288760207540986730609665108163741495802130634338408940761577623029109859592282275315145756062324145055774373627380719315134892490700067206370299594536500101751542865673037185615111854815372666963919930466181873567182677006318436921396288698412747272012499748608182334853147439098899719031022761321695789906291585769152710862358123296056613567020216246707288091561229747496166155998421544350967243670033567047710977913049146620784983905836625309605586544037581528965508990885782595248730555124424113337519146377526105968411502625335655218047849987256819370908904162512786334518162564705698034846616315230745509565284434499681090114506111588136137311311817086864031567220518318077080704059176705583818613772475709056548371397343651158475602229485049861042675825145755787330422813810290271583946134402601683164126813638182223579525606828359184220637875280239328564213152149811065176888640473969712365455443182514069243668221723764423792304728425822160955551645659184778137158439414696988030676437347327693288894415624191163959466727728195447316727773966595238568564611451707498769888926702560577427235025496809245965138972180731779022737198965305565337051377143401193209725856585261427691565710523260591217756404419316631208922343219315619183255255381936028918313034650451904378739438114923952233246608476414164318061072075442141602648737628351139386741266945232434516303546700625240918299140635725466740330738803630138365782326263195813408392041271410201199929672618058595473997919704077390475102224651659852113812190388228605093123001517829018375985483920993429452019846880603908711742281708471998467583815536453470047443161840290211194698272821209866597707509953395637742467365981254431831763975011039300707044584201619554307715068185738992714963179347214340586219171257573437678500737068553025479675074252798212344654870532829046472812255496026923709463668962761403350720362194641434008720820686418150914026783379662731738219916449108296458758346297833258304295247212245859181903902344698626352655542152629324835059285493144144687437066992805292287237031906512440342504447588782707157732137525642458273581303290531494851151262888338290173534013317770884693734519714113364715574431619774297699997166412436959010750874164787644234327343608236782070623321274118582708365157264835361883196986851338836007638763908893538735038057624525437210691657972347884730575022400763202097263533368530626336438732815099752347417358143159955365017887368832313342488662886261067194390585555020074026767441101258672425684997261958195102069912469626510547001974059490851850987802519639986676989156984488423593549867920349227710632026583238288099341120731841438651833617266019597182951819440473460284552773135996444212847090962321437618119104549248427380322294948441692098029499942210715751320068627120721569566884710069014659081738564626908303638123393688843664246119528812466160296512460401192260192259645142470947716428798615013097711780347875067018455729210698664644436840187928480031810176877175502190177380728010087517996405509243879424895345327664010255655860221282527066639168618354594980935972947673461760196974653199588730292423839032607777229501858292714603144487833021997045340385385249283229666687326489944606113508142465660827246451034459338561233464562093298846780355310877190430656735783081092281867375845711655241219353829425029630484220015471546395696858182592190820300747621306562904709341456592892049607171916812193121834426940895415209121350837313008458018741641938592729031140361780678138336143325046538084747561036787236448538882288927936093749151687694172285297978230998644934452171554316166217364681103618944110197205731878366862637357616052343141775859925623117249380033317297058761379767383015177842432374490566659505828304772005472057425844481524999634448695838602401511086085334327394274395326800489747967773295585009881034428570081014807380761464570000748907338186807023160982244154903149377591986143422143420781098509366695994593495842708166090206660837140085505100473020179107073220270366621798486071576409729777930908968225616339075000981980473490723380903665659737854193807807424341320734500402897367167797905187347644941622972048617857927460485761141947288782206431283846973148222195129592092841289798131001955937748977322949499875884604033076030759808283480367445882998259273877981795812453552511929930728811052819484367772835704966905328237393174650488561331483587011909888920930823781648695093803649101172839285419068763255919991752001215125680285818907177801651501668945138472691835560984114123799117990327187983702496143550301849385197189050416363260061379944780105256950916921210959675705876617210007325792911068466280859809889534279425339178902257821639500582157554414463455618646525060237216569292316083374355520351906676123467381222216494924826851217150396992377313512957755319745172537476721158016286978291622045713524342997748753507253742578621776324340485771720705153674971678076481964026004836703330481462555639362520937764576194567670218344805301443211377409694123487360974961207836272543576286540844126055861036518032131147876667892473380582740272665389596840337011705133521225660763612111817604253234247802586992191706271900017621367759900351221699242272181465620891075414307878131305710259679348286444891894544663157837173628482798414145102862297599129413256418415916061792305407451519137081017390178943304355102950620284621370995854947626123394892121581745525219349328113548140482491794275567958347311289541544847600590456035549438320234700224923396914642605084854767839174582281582094450860660363375139628997361938293348304189728511671153497865520641408531271637686969249326936919485665751930413367492032671925995087010089479894194740046423312410944910708005434884520455037793202140134602273353389443641839961475419721363152096306153118214306405324611091777704161898495974921879117423561067878330186632763245180629193035703666189881137757341245869868838591914718021709740331681989679585582889131128337788309295630376002635997622414541562530606673891825471582327497190129973726940310935540374283583247055158590617585906608738135897138122148009214173108792292152704675864059148896208099787179227853100092897649964662982645310119164913136073511629465591974006428830025357661261862528607150950323728203151440550999488211474879636992166913567522444989113241979178801256480539353796694746075199418845090514008050330824269927499425457042823764974952327705927939108757704328599973340087268620136442672688369041847601915137209476905077759700364001877392426585563814550976265072242918135324377813668800160489391658657069724737136095244807049509531462583510529960762096778218512183914906163254311000825184392615411401185495760134666697086853737842440768712946014304049983464924105248640838563935273214329361163557124626306731560574275569234128584126912612854802456281944694947165158538247837620089243412406645945799306011056974433285162872671819053224713573375575768602143770605593282326041696836193466195381205224456613235895347272939249836283796990259330842775745542429872852943682658640688188375160205593728537278461554582711420520887613122969014084623564892127197720795480273054336581311083613785528206378531024176039788475774760995652879099746330282225005881052723682275976380719862532253175418690010989856209137022303364948360491551920094351351290556276915069990799655224582835306416255684971586876481303471297701301216169983500123791927970463881880751561579024186069583321202829096801444738674585388149154240011683084185368143546882834925116731692503882540163627358147417594528634633759232965205251245318530303741462342348518178221560626308357011228506739943767777877916779482316248770302651537080071272730291886815989260225332208537866789476887952689503713074449366867582652467406966397844880218423178254347671501284207685484355843590677801084254326758366369970280665995445011575840056709639165854924543071403292648242673071236362070123492219239760219228010124731213450010526012162544433097553316447304031094844365661811862893643627155976744621712548785967293461923902637237036297078587454783102261805872127788605288317189419920049524321370659949675376795742071264069227524867989610535742979682778929458807992022697856393731905526488081812000733458716612307344496206128865507387920437748136132405188736284314737440361801829329877487700807678328906210173151272277191281891754417211455210671774331437642942873433100231994934258551508716801172274618080288540399844229274510950531511123498226766284596511351046185732759952508355835842083615318500533031103676198905678288608679101192372253075270355285406663547205727302927612845175465673207953301842878772254661588172760771271416837530981444793457362416080088529085914864916313764307219168120806912305976715320571014403289858047638374254529059930946933899879621916599729768240666440394337813688112370835014967286876587593789190998026321537093813275868371362676999589744004008233817620353362880256096946322358189010411811120810346737362552995531433341772529388813613190116133509691617229025524695151995272913288831990627922149140826903603013490337505392207628520746034254718318751769184551690860162049599364542810550375728664243433491072303609304085699474576433088863757141086716717316352368877667990293186326209291713645147902479048734202883944925076887086932446662263354108048327896624190562687899932509036322059582435348364216695183817802387042004169429546188743781775078529065472366182147278540625884385616912047843879213551814759615371247231026498627962004836962282063308341839128348132931102022157570672753094802323855919512209460189841010960587726111471160768069900143351760219614918314155704626963112358179932993034225011331313202260566019183257476451541339722720787834173452008469217361926426636125709142044451371023618252787964937811335834362887377093430409098947596638119790389566280811758730781517981203932741369385959070260754695277667923524019646510529053387455624615437142055400023939579296994680822836069427728348030465732719812147478471770665366205938018506554827783122318436694216031930567971349824869638785550200023853689814534104735070629545630764431485164283700940656374090112986117007053600545653383927229062782755267811479450396090362004587173288863005033143448178745387441691846848523390329532923896212997592851880079649326238779648041993418904800948206607615068694403416975933323247665586568920584995858705846684757216990823442544093936280497307519164945116376833846692094315615714780336120909457835767450319717879059439008401772450918667847926485941480070632986337788418666440368220689244916511491767705273290585217236606818861242488905682295309254185050657626531439753080156140493442544336472184389506493209219738118130617781345492623878416837677721295429038195791715463266408217513953437948196002443070185550327074234544702860430890597044771531920206781106062581518866878791130175952346773972025813897226877341511052405489416272106556664956662740855344693493516344987270914236745862616832596781902878692082367167945150372533106437969985570815612806929153552660971788841781161388967116148164393892463535844275973153379149992146757736408640386142367617275972660163978635498805801684559613752169166960738466418308401837016220639805669972808462925856266508349657969712486948848406373309212270588411119531727811060058709347708547305938333745901192274731561485381831537392240919277569649647460047698950962785824895330830145094687345954830847605926664576177262898624558213433400760030793515686474508229573969940764398448337659206530104220733550452430943314282332814140322663688332433081982289127796744024784577660891128974306019527251801587518579580712891006949749777888768861920793836470199773413135925151619518047769123973367868814233415010686161723153086865202135777844274427173621561857621523955567755934842762686655591640368963547689763646098027944592626908685488269686672433496291732298082751856215932152957114345317182688930124268745618541842721694526803571985389107622587708661914476491219003493009978880692759976567002483343043085849019746626911816754239419390099469308484524704965232753424981830796465049166611104434802902090002062280438995091366844890673302894499319469794122565850106390457852047743653792080334529425568906620033097709586818414305896064864424565063744232719682183629678047516759748198642735435635553019191817805788800581941045593309077065051982664820904207972283585441159537076056164748877667864919995318125731706520216665052678156703095611570599142735396565535261242153247233139773822936554562045008586795532600030880576846661216888463817807777164180625477603894477020264641210256118089241589252839868805301113286729548314176001158281240768193575724342739010731608534974602619335167955741903265098311648158417870582280541741829214721529720259952149682520548292279710061830409266111857775773117448301330330059361638025091319529663875783049507102172320653534845928554488866984071627058516935194710086937399364504880543920015187347005468843024948091787356770857985760632414110044492361842338612162173474468096580337474062064730931113376991552686546203601050398447996573523155519272959354101969315624363636793918307397930019763092584506228146962623201049751828743440033767375163268908938497698713906525741688911524833035825322250465424312395223371950158956834927530207773132434863916438752672102371868102030457142816370473520559602148678253294808301099513705303610079248416949221580299141044345636783253924137997794660892040230007703865004870165572871878751100527090109272730723834622039912607123847410038825136330348444920341101361669680347679436284408503832060740634103626671903090335093762401041216878203346690351016030679403420164421886067117553697413474216750226407625246305705250442669610113076543813994625446247815981698820321627827343582351874120145579154576403429121277403843041440857989953441407728110100626234681016303559624518868888554121846866381566717390564352415912708398697699993471260408156841661317666035968988263801374270947879019706678466033206768851163850320348601089440809481877945749578167916338485107017112081414368847592638660313892758182619777155058905179127711572369737789753612012529183454915545127495074350515206782472544718016559004270349953215943036624642579590340298601076605874731853821647240303603537257946389734220884194660085897694400281571463489757278370482556037154209467372476019428393147201405601784281849494303781869318992806285368456701392269973428393094168367161664974641338719706184602442143412690596674866240130666866378968951395715101092282732119015288517524707665271199408807384723408493724752090219781080105047916413616814692912349855592614055415181263658719369399504023892012796274090540716959991699626632986803177695987919129011938789713991121075856385571203151406292713225335278629495366900776519155854851738259497260087329950136344654114373548006391360196129838466977222461536513887331878418910012662819623838980520377134976118165179632358185935385987444332199717346344787402715450431618595860794544854917951442250416020612707014293663577653590065553454569051622508236492964466027075084985932137544388050299398007721795460054060811306291908186482349721842583014906100662047120591876828072012634853511561273393137817905762064398283214230700648647221532266862499424162062541384939439413034306364234846439118754601496202849811024157648644711048928635601105886324235140710844751568909091066785144622826085055452099904948816996791872945837490932055922288563394829315793247472186749788840284053400974369190169769254820831466793244420389701988794238235123379246086456346559218500242543323326420162700621012003903649614987088255355631995661533535103527594923287401741567044206726691516696720335237490083838962221490199304266032002554663268758389833943990804080052577418102816636854732648370149790293858596103102971033352469630563699110121283385722650203347023087997844122925369048184426354289451600395887730022779507741760132831403605953309223038170336673118446829702344705792347722549479704654836899936644548481281859439356672106229779318416218827980473149427152685203461732236286286593682259758435132223464184648467257298353129119034634542901189279777580721738105909045544297134865886973349256711676453998609971968943915405675873907663399751122635523152126860953993853185212802342376401472841561023481945420129703003480887104171736265137836821135066768270601038134577993107344827175135422608746315675013379095328025319930851148826629780470227777300056703151075648812884164441544741907826095997785804839151250266307524516318031398354496414555114953311745628052288778563258629586375467708325077716170712224621964725091388627933033306667816394201383729651831364165331675969209013057404408641724242072348584926024074290346200028693040863886335466115714013003653371567644503406232710209466394937854333278792043753728128331605317311046254862399207402862539062963836256968289389522361913673354905932585440051319553539211620573502092796736284352057030124358250133601967335121619457337706248689435996545195056831183898153335386221329225058708334652304449499326964933127194066459499312161283826948414699973570193394597978923316003910677988373530635268850811821319627261440447344286072109413090158592616652553368016391053806109315264705264222720436518508908023966475086059009465102660049420074997581091579997675332671410714684333165914824171088783998823663266981776364753766185409650374018324301272501056261385618063884186479161314088657793515957404873704305725928019816996171893985875278325797418366050107479980437480287945197478865172611036176073288258924506982856539425152625316463870856613951703969965756887163129513259310273050470056589414221539225656603882026811914147826719263786222687572963789523065302503713797410334267354328756972993111659969193571719082162096334031348607956020017579368303223194551095148937411552905853674023821057765474920413803737430527251520839240004093760500411961835390970558284614743834750315410023339282707427243820169138451904550551347120352976924560832058390117454385685531611377159011318748689979200315109040655582236458525429432852455836006547566899812271720118602420059735768349612283440104833770519957678756840629825750961685860435370894550432454956526423242911360610821903553846488688173221394732647545622909887230559974237297868749045952718592666360707076329433238835244125594274858481918632726475621521198837403285522894784231463565931069885004925006941733834612588400571619638114328545836922403324515956489805285656769165040488890969744557757176223438447904981647601046171978331343008509189189563047140291026237873038933336622685610234110677571040431006423882058371384518375759221204665908659639046059350165996035087801633004320327885848503364696749944253588296949091147881801942357095663968428985047575545131186154734599976384678175949335727112886660798972442801288553077598115456991020204202152963213885095714345765651633423341421059993270763072345247105264381200881841452620226866408666033865384285312001868891534527969425518146044257975801009837464793417531918359886891598253436743542868244474363534746155578804942274748792829990361084250720223155733055344594502658992830163142455613330482053112647540097199532620862619228000911005296316850076507966617490291249286330474504152401710823103588504217556914827872078305026090454841285713849517144601169361068289018565748146397124152253094095544121854814693781992701889836499300588108644355324395381353465324098008445829434169051387736544265539277842380478744612227241245754495017648248812697580153217441010175232053638825654590308655455436916933065640418012364999674116561189015312008931636657490013970578180966227923592283194623866420717276653871591853916033311343993994924965813994569249277684515397180164567547712551390718454238311286618101649026288618157417609001937828022526522354936766429604290350304155295907397349030237725629026269544538391396821789015561218437169868295051238575858156106978049328416140576356126550319473407921614600231831679829450666395289543157972433016799135038477256620741336624409156319518686240421855661556836537322257408995754376481825788993911646944312555629234748022772307930179894724595876787372376088741848996287297322112291763549243593141803521570517449098142612332525461969448605411494899545383738009373496593099145932925670202545627671513545745263549808664280808696836855236100469318398037060621374100425603108988968171514941462273480882455423023727308015834337361868671696494250556952762513167072638503277722049355628355737886439951927013970975615634829229432799814297161852608818944439415023031219359937629552749340694589174417603428894149666625154044455888397718955952345777451399253623526323966544235407365567279440567509817573701048466448424646282288506726031441253056547453539754993900012957205168696228059278586757299025747340301307873995073102349636395493188746195067559998151068253998113548107276811573268504799579611084818347599964524011778091598568382236670843654138922866737206226277337097762807047044035231636570896329501565601578931942534531375159420814980743143237683621114797266090411162600275470509911075410578846695637715866809461943453988338182102245300036837917890588070985061521793725522171538281981990355431038452691559182345679883817204309591095248779100189120662174547699015178652019339722285230465358722434205242664669622446484042994879745855761008318206512150663662934303675640705928073505188392617120424921568862245217110983319673656735257302050380598784218317393850538151408447305327684217912585040743456408083387510513420523024710810496723626371433904416612102826790785099812683005930844700083173772152267916701804550554780798713638990966139863286672715174622086791194412087079280100700485166769098038459454541900646914522898262562234081341591984478024224066639078794101249404412254118750854640643601336910095841636322506132062692028513690510372171081771171429814118550021987102757067136805692105859762610564524113896028156044140879612007637179110058546328134080022011868816867643998721618200951522170950119596367306183052723385697823790863307127164356497294164212788844847899416915430906441025867673191958377949098351621627720350832429407982607396317733554133037538352150610015519777887676130093842745519634579027967011491779491747351732874395515564902082898880107494139271699807287012970660967904566303857042909124229424297364921034136985224704049820791467557692706303239889281090487454088854988419262478987100171512819717501706613837597096825650612131865116251874870992824227146664954171945711911629061364234449992725671657819326867271120490994715155951571919164372112009270709557790775061235612825972488771286381668249601095877654728772133860204158432079680752702143070582505017645470599062499646063328122285399871697324015377146205190221756514886516759830632576187226622678348285043577744264202473897417173306507864102556325517049029833730151720218730075484583933320544703396336263867579156824268259579133297306103704370343704461320736855900308256383325015849786482925697479777790485831415919129604305408247777167922458371854785854770677223205843831812529448984203063004412115040648482388912337883453185965148238942484212513890743818538205039858274926957774274076395928168846606846653924411037565412704113425116192361331771182587418854638930648680515310644860330421100485881006997471794999027468256050919585358069106252969711430101907554246721849314604685941754411487050706031482474739694585532938913955731615240510063200505978801115359936722225102946852023901704038301092551169146325415244162780236719683824354734498301457227213687993830482960416430263799233185276102126962480917795859447247584868480924657168896146252875135187396601389610564267996562760064135290932686971492912233468841305453849415552241073269582456245817571156744453282266010133971697818882052836378314770455502358795105183514270668070153946308499932028816473656762746684459942627898265650813965537282218924918803284054608128579244935485260342542095735070901995253098966454124510995945573274864053549224254012507281433277250311784364870906357995818708962146973780158319546274541491270177914907490630022956350384949857131102060512648451810614017277355000297097707274647273427915670640567061892862126986200462419650621417821710314179781044699098563694515402224073151034852099156384850204257112525173645207897700303274941067371232801110230913902941548678400797952608493712985731061168009409364561756653772015083038886528102468535641901338308691859372347259138066354871928080021529860531868998432991847474934812084068363469065678937033978682029439796521485632098785650685113929765997648869725262546287777025038991020500986489959822344666029813438343022772954698200807153315048813298547610930828906982595668240441173875925157973104531982055706183516049907762441871090899626746670068308791981567520474142448204234208722079541672408878743728169162488429972294923989633348225711937569057389782258148817534660447326877271155157930669808843293692139899555945665288512734395479612444296359341910480949189071051251850428231479980965743381428084332462728159545429554805924594829499896213655768101017310337202455386908389490287591191778344477060404062195847885543515320172284934030756568623252244214863364460070261420454259909600423449094401852201633690433593026358734808712504222148849471897404131782590835669658337071079784458340754442359415699412737420522510837398842815506221340522851226375868082852253818147823580078243954227079479047413494685474303639970396285207962855357345090085127036199287892187853600836645854461266118097168487151415279970236354409811507453951277916825330405874670380728134974042017222426085870734677906444716819426703913050718105690070043712361014503437920302847093586588020495363481493366726017972054701878496888795768573103421787507817381362035936487864249762391589177179210179049212205614547173869191623195976854450709475980573504855583964514082106009502177570222728387767287674081890170418761660290603192779908263092004987283662833725262039932520894859674478044609085442044337445951424419454885334102535472122878532826659146090521002340203946941455035504443441717662441312734177316747992608958111317262537577999350665353306703982807544145084945982940396070640265709839100549898138774002211691210822015585130345233933756745618199183333613023347182892959846495430860256263544948535662154633985149277011053736880032112762192650760646769918759766107352765086083716782606283409852404463933965496137368875487273132495000435333028743100558581124902211282655886133363455629491798427180461114940664821746392209109041960470531945944096248712785410002761580337449768321216563879594821117022404789650307594558724935848403915274090991498820787023006262666443262725921989915563560897976046594689817510132766793463807244513132057121522537794801032219264834110417007417776357610709461065731872673695145690723237157880634037485847975647633481332014563407702889171253012195186804655757851046832712936143427555193357429072380899975069154517621617527969362825897262122243776525644443409459201200578939205208373622699804915263980232160528725203769406407436534201315659190717789769559511870961413964841391507424560266175571418489658755334436293882434687761160784672653531532260095318411631471435410238632657024090642063110765288989408040187793120545537545075664557826811467757245990751675567758398553830079941741436343991708311203581440036875132210052875059417895083148110393482133736828209062166890313971179401368656842730158748584101166337350141500448083969395748110230396203768470143303985496584440765610206452273697555709378116502146559079667891737956895673414020542758460233000484031917970763805518426402946868984885931928879785837410945658676546472217121169435725449071378485400528430899576636853776378681584607684298803932457739119231972446001816431025801720316333434348591656107382535266081997351672082459416061582859816382692048525510321919930576890951329070697580825552039431846792960015121338514135167013419307941738182507397277441159791983946431691967606836040879895186493214401551675393842150010824193034739303605056103399296208702310803910209729741424103927844687349578716135311077572254379377919762076129920341229602275809658068353031734640591773367020596886023241118951571981127072428465827045103301589968617569115322923060531132228030821231590990931601687160101805688817640975280588473812121983412400991447371457016893971043718152205493250021787575390360945270038589579720322942810571544546342878860034325110327503261952981663649196659814383167012461963138323491459562855126274543001614997711325848244836077514913192042349974123622313783341675534457205863215071667188318439403560255806270616418319698140385626088902489248434223294741669626840353444829741921000788512414785601835102723229078501363463527944205241072988793352633682624243036329848786528259699633735274983175215132843785927528797476509463871314704119053741124950974491970576009643695050729246059939756801457611958057958748369458953236375584776321898806387473659494354149987282437183362423951280199838138779350079007611872185676925764122644202463912379282553557975571007071147060209985565805624666847913303739081370512245195129554172085107190031236915116031344756778457973030804843325002099691443606697011020638796826191340944624408335363817162775462264114918085338884999707815026730937950748151877446984342923407037976133868113583357509314972656049754322995233607243940270475863508064395761932048845361579166443134001064995810301630018241394973633057387386376253591535646847798066021355804916094325797138158986857613701286262033300644361498610549196721028008750041868639244504757993486367044118697480333574463722585152257177721813408780031447733441526532805847104343043023968384039326766129649312092615251635299519952982984024466271366322177626427091589491500771052319576966768925365603090536448406533136975337337620495264335681434054753272331242426175580881497569428472813193904483452706453103530362239964353304138299083329794561810211138978559197128385847987883634917388656119283819347337344041360080934749382433118746574128158936381300985756031087529610133172752565240095148676413563821960765921227788814770581729769306656400509859209758462182136000525834113545879929534901476158584153871570589752611539835388562982834479220807802937981490917429633636615854689156210168562033950702552504810539809404194208966602037127549465488945940318753309090150279486171258185951488303165862830854665731571297006099392283925187847091008573549776809159114534898270497340258595502144168500299241183201306541401311042614454514381401241736961654722471590784875802180859674692410786317051487739988039884574473076848442058816424304180667624399022608376564416618782100288593460298747195250327867803606030065046576390660047718746782318441686223542491100257793982907125704647862390439822739318241296104365698718932423722655307548870909782624974910217708903284795209755338416166886494037676830555231335803159709136279813796577445253191771309028041216242189227551015823704820542962141568008116730902968791536595708951031079913973773292862416324789161546019949169390184515681373976755510072341204363566509496398264211515115181651075538872938579606902990620645703875015990192874502718533911437283205559196207901622526909188371764509757058316232838594200761279048117223044388240161543327901252884516239836838343655604451905232415454153860524182285454105054616931986652612937711836583451188567429282025064810940348566483055916495842674003886807785449445499790491677601273961741216157490994122027464687628699793207249394152498878225934793676804518001521897556441963837089424867951157019041667765751676251568078673507478697956303156271445431595270281789640379447516192329742112690614644358512009496123755875900798628952597836366056467800858429617139642091805345414422839010501272629192506966847224103767040868092532183541868433621372370740849554942125231814253904624893816644602913187519815851359540168643762720254881502389734172275690217331302630028872481809094751510135534412701518298401937380054901414349285790955861554174354649424757487632867230103207962645294748083730148311495008609819575869160864166491958962537089668625169059662419729746129665555567302675065414625451734141215962106550421170680460525297459967490960294218391060141205850961340733425687095645166909408964680400743201416745701892112348744270495435745935102648419017512886669795946076764430525247840681100746390042981191526681448183596464397159134151048923275240643910613324106524207807296304484235572274749753880634000468634591103574770335426639225514247669434424150822227854714612121712532907988814428312962111805273993986452657268727903929238414773844010199410696147918262658320637284796924447449997877085267276922402610962374385397341296457859804382323146637300710306028606925886686374051571752285363010833292557460862700546217356387696548727124540980045859940128896050297406703004297068581418834323273209141960482616148666187767215599067709832024296941045015191148315284574017721611293414367041622105040096394655203150873223042644989385258937759024885712568829876469882111675230971487044919993900949401670007988152214552285119967341738022722634845399909951576579273281646094812609273322665120260579955886563553594840205760241613751561124630323417760292917878667523079904111244307639581493120303843310915791826057075344982252365395019801203011095693652681067598800436952407012779914302361490505750207779559282845079012568277965613174342163113554868028827586844430432961390870512077466631619183555457529485115340814710836703784821738429547087663473938850132106068198944530234756205960477796355435337719628525749694892499783405646067459408985839513172148023092127119945240802606312838689306980315318247297113990858501024671751784990294050445846900610841502609431819890036533600267212512068433703273859656699263234057784616207990112361062006524933877987185737374326194723336017760585407586168160306436810871129005707229971894564315213923518650421669344360026579653516759478839236059571254803306250920351358705486609547045516691572795391352687435381618621058230926344652947165432511925204732829249994988058461677874604661393846224006864169204125853823060205819728793821630265038277587205029226642278773354421044487735067649451044056924266329847357284282112482699526105657846625470725387666026321073599243403159493929275354035701779086488188481286142401958276565179149556841959780133201038743479013989124800144945803759210875161209605235276199408484781330950073120607424479467058538915726924591260993610442839585661766115221217131438751958251917939692516602898404293361820474952004431747541839624629079150547510991878763517423942077467647226096642065625028493812355498633131618243193734277138530807728298885331256447507732690764943004480482451338819329028217951333627595112132776814621809228048793490815439659735652749920400233667502185846594941377571368227089470526893584934544910963668290989931814510057166178576272128521757434930425357193081706328064444841626578835018704820385300322115704178787638015100704615769565411313079031573358099541644974545911492029525192659094747595806605168969838872257013333295627398240867816725599367176514172356511307376923264259666654889671996533903085305317333386043628136440241014374285187391850715169546502273901564047853062093895671922831202722493772483560030389803690628530767919400306563450270661509507908289057561161651279265176196294314439354638657941286610964249431740701719374619618152821188274185834545467769690822807363162870597357187595935280014113497549575284348099469850199850156352977874742164853127261254050079877309813165324179436233377628453875847749176256075806998903912819440545984824574849696619259861480384749722842591025605881443445952786421347309821202346351823211312447734363046421301508818296203141873631221529799495976337565073292663968753838985775245986638153467662727972725233180820735413609463168499905012532605101116739937059350668780433647777421055686656901506632281049604518236019597359368524494663199728806085426692928946251018613931221158180740061626460984375262816861210774102888787488010281529547814960057905881625665247734739655950524847139562133672099182977853525687755915391839051328155079120309401214143254876934427757986405907455926361212059360517777593993498623011837529102138233054521129114467944578004925510035878270722436416707155567148891948715713220195929817001316674855582189995439790783906175592196811127450979064211024142538634837042231338355060024174426898535905923324679457791099778086847075232658280897640454185792992545806920040821879805940783393213915324798406531175464303572351455355272537848262809332263529491623156672751088326265109290315844474563820763583552997104671123099336186883192141277783572129666431241966570354857234032790450493192375095639169020038217679163318424303628825413618211076096705548088361164262722907429275144160461243774926923454550686798504002374652113501274958398411083384119514902530083530881951356911843076324931265791640028446481751336592779645091876976198026773154399656706218177939577229872070447957864680881758286105770708515696699671028621551854004081312548907165052721820771852278578260987910490687565099152276433511151783612672186841803921265963887984599413880363839997051019055595340365739759120422479468775321016547313941215957874176636736578643420060720710420443741768235014776253413631157128374999526408399100496031124956213941507151635590508728033507917280605851088626702292829286957224231273713470362990678540630630377454686177085633778616236576789494735205144391930256188701269123368665218957021315851890905253213081670733570648557789019843234087367436403720253483556163602693632852603727146956067786624680067746831644077207377431721199579669163649564170764560234919649187905075589123715588476960839506196819952376824645732617968788984215146223105275871087434595695255317491262751954679791153178266270055528818781405867139936788222262386660791220281639620605563779940757363334559363113984065412503119317282374836232608175388018718802891444816054707747659081958995767210537347611946239498778460527485945120815625901552466278824534210531533219142924905243698309183717971599033531474590719613167061399553633062882389683963760916923336114933006865154859525298220024649647884624259365854704818164973292524673405344043888393574952022533347726730911328904512250390953553213026546169147387918725677243710732009938959703360640554300752548642493925154198949279688434188920540288124190002426389032360637665417842289098741532027143848147036992050509487696227985166900837762215959257715179882682076573793550039762734531643868328595140694030373017223840672816751030637708016989990531540895163980499686915640782893304161148988943118576032202738526522701606591362155391665405657024722176990687093480365998415772621253900270582962971378954570724688917089118532658889044199940937492403031284759592724961097288974420583163289243086646284004921893383839021424301407363692413147242028752623535208143459020564005062587542829237850590012289927243087091202919101406137689753465160084305196118660670971948662292078748289009497394137251930544748807788662284425451098967317932118404533162910069041756592660134626462825093489065754563267218122137789708623412619446709538018452402563018718686216197591690376892648392237369544375289193290017961019536568001971494547807260434896806351195717566873329880355365061013348410851783079541291515434346272991590154197441568467042951060817792150129242828060069742756775749052396165951974033436279500427323308857732966431411791938771485130736873389296247705709351064126009228250821981074356007918834686599270721008324266392897471760559213169963260231600677864566400108375478348418853957735173892949140016422685606393500300904673104679597454457580505447390860477643322905349362504712082078503366135223187181643084073176529449208958470018250095520155653288931496496090688763571224847194714585610024059780631678762985692572852672098810811114751907472317293813532777779603397716185918182446295550235771606303263508308591764688018967392427777854512037494476364476931269992603363967028010427271917380159891442082541784311179866673662790489111624839686644134252530317836352031683374125456948557399424807665526721412258096128243308429661895239611094103067434785530359542321082376900299174445040598167938275000104066375513753571044337371054835373919064504491138298167202036452926500388980017557007540309647615459946087272044680026447535513677939879313426059428094266602560991932372795148885074031738814486227167119195112728586044917300632279490411434013624710988917330319706686779840736377099252258354023760733191550923392474867844339642370732271399267267618166390539705684968255634398422207454590849536351326473776866433945566877959822993508411658389094701446391435773092139518477107857555659984863940755392494660520513654523882598462550768741234911087202996693018750499067030873980229607864109182467049597172072615158788077043947333247970597877989145461049137720798370031236760879002006695803341199848618246230839255481575752603335609343176394149037436902440268582329868501993197584941985945498862809404744998951827094895929723493978320994531712077644739240401453022887573706360107609319961524245975254493847492863211653367891600315677794309235545287356644411449743871482021407001848241748819993818016338987770011502306449818376706961630172066576064146859493327066135788977983098012283556870098168179796377517448433144760748689726024260851165640010626414403599803718556990639619939139913711238817429220044302949380473373977183361099277345985957246991683839869170239783066973720840616665763711163977171932013237726399252896562700447860000979348921485199845902630937900686595679195703841281581862920574763090310344098738564726803773540488482564617710757653512886142213329038361951862964196890970794549350260676872290042842604609551241550348836095326246087735519793128453906750038652394589774363859498126646495216927948726732890085860998410995080914467183922560006615357053514856292073304402543183770649658360934246847745573958380531826989485130506871401686991888153091786317695694492294906244815569790506859400295342711988064968630373274904278631193888996153849036122746672698362648160842271311907483944978583765083696960145659087146613449243879057913898030726166536952726469265218231415018103216714149240369413020834751568246884877142372993667160082379708877961182514566196642201253296053170338892633471458421014830651878020507139235186290546610277457825795554837355654494267293693452188756919090847464694491645442847717509599015500516974373221506731374710953031501022946686489155788793644013376286795751907853000218255011577997405899614636847129697729991810526027391649184162122054145403008986572020165048192595437495883430324819876836814439249808980444271835164892479369945427713115387371132803162528311596526397674148758361120032024633286762634115578640898335268231113950127486246126608857818684086789180580325362194160602612805926248026239016475656277147375476969958129415106921122260284309384728899410250827608416526746809308524393685319327553951792263547728346918771231357063588149442402953643967034241916525214222844406259601388366592163046595655997306088211592088073887307493617118764873668210973998650077637943753748707562837954807755517981383981473191452451591384649874805744689696560595496783253628122413023599458323962606454524187875941981650832289808993730956787055994036745997328695079154563932739786311209899909917302059996356526817733406715846480449043867299217487089710659563065552273365261153383188866091188970900268144274483427390056317258068436919945142577513983613169311278563392512135055875993719569692938571856301357845018259759144095344708380439853430997348343190130147256285222739012791653426761350632640669811922606181147662188439573714645053430980794972142937144682818179534306580978863708046497193789949202694071969962620387896164672656099735429828048257639409235480963098241615797216751154798029860464527459039849821705835625479523754043325134697635748025718194829255596439961050467708438799886827301067407466818152515728646801661779113304368230996049897842876773053181306868552446507289284554543174141047618224417880514937431726881329390216800027965066540680430356103569978126569584554250301002646507611202026417510539705395104519163251667755916696243097332216310265098217312703610938636748674447822604280673151591273118904584821248834534043213153603514708469637098764386468330007649151843818715489101462483761602247096674269980020028829357234851014052736129839530618039707722601474666716772830649649291218310422952459805112113854727975515011356489519962886979065585880920644803367669317985098141817438075775766158899503010036377118909083185127520366046983305331002914912762658866280121695278511066686144545611170518679311516721101765655599178963869488236680554966439268605789413559881538620891790547402528275372943382640852993448603471977816909357780789022413366915826101732120727590514240639445946554179988773158953526413532980759271657948298529249848444207741236141082814032128920844898386598419075462762380871591695185802483958808413716369623586790093959042006156383972567866331520543603747768465551598885553617673200670567880075055215875384329418211286890784734879093657827900265965171225501240523278187842074088771190518612609904097979811218616661537721971450625111128342985534875395341901497630102401931010216919200918937975650799607547983371888081915845652408285610531567021271227354373154585693481961706430447250451394926864058003529614608442799362096867634452340065637439471592667223866951273493197814245690734035145349528422749690701990443677451261413332251351454966761997375155834757419469600771287977225761041762699443414315667323516550229108083199715407545098435505539957964612960860366889443141601836472371818515189640357321691381285383624572255244287278474612606191482454301171557847602540630910781486822726617112460688249904919876193975742955235413492019895251063111236342508821712917096984484117252035438143907088936027948904615143162835166779204654447002837121927278565447916039965972371210555214437527862476518132228803109812037047845802108042939473063513312118220392828324225280584122221019793201419629981270465233738293900912924809953015590768217425152290676919360002541488450844951082261217769093659757638592433164463942890919537378144170964350817249691631301058841083972010505503935791217508980042055762228588669563434491655978939987160572396940828285445918618807450523060077639304311365849432775206737539492814086577440609556909224282547695500090447829117520588542011129314255086293603889878806145149396382565176448188924512106390040403035562671614897456189057583686930344532231526935420438034246643296618233350884226904034344489190951653099569237240820839076238779281482664273479096182959667871755599604852737211759263918931137991836088785753510157498052518743981524964346035322642794003818221090752666987695635345719891318151392160130526763500058018018900284030317211999469164444768314350344025096567017633268925256469780111469103242530953626353074916610724172942908335611809900438202340890313479217148458727244831395210122395429997876106608615041800897344990077449932893110289676089177281707751633295755513783227846090774879791338890788925350752431028959124991009162557274068269918477698244072153625406079022658619484762931790378181149483892540674072599499655420694962909507956789874476581900158337741130173348763431403415248066300828959374989271255012841461143997376417713818864794232244650419769948794197226860222612321520991381478150154635764934382389437721732439605102910094688702407044918970098137010874484664225575806788084100879536989352861840137033962622082520818343248042413089480999134608059602275795405313394359212329983831235911049080749906431700353945355464206497049279880123025457201575160282037084999782626473818997771076823786730803891359254540836369468936075527562661213712301993516578245396557167214849250321997028910054022033397040978742902467220563098231268754459718863661305934578046162297797879430509622004170507134528615263119436301589026812563476855332377402540485565044935201943961773647745714190130424800498659069572659768006213827512164194431114375737172129565564448525897151045236156146767819050273011368722066484025172740981559552432613550803464662216149332654349823078056448076624924143113158609228200427750735615900059012516939521277286232732579487741446069162233546225719358528898857401516861881497013468449286020603817891647254432306287393476482878221874624383283120469189974297747371100514235159383435261663189350061870782841017642791283612196411053590888475519016020033395969072226240808022673492099064860054603598535154438929553312901613651116773971217761618556540845104229618008816992818115593461008322105841180913520899209306211759145512653616197888675239509559273520985632453316476451679442561478664182127861718176203473519584132208090855204529244942633502827073110657910835625373495817609857721396507384317290219327127108271288492782785400228152285187566714164978339711569774252577449590582296842468510228163270180991319812565588960828928796887498259250400374501718436753174301150285090241567932452146133438855800868695693276514260121915117809086719441512849815965612294526689315849730968628823634418777494583492668768542525719153786404722979321021082710882255530838540617710303657699031476309722057746480927892003456521970343944079631860126853827943966309050212174831449082575323275511799085321327397193228234938439819645033970698253612925931175001985723956281247063642416450241818358890405404370057728520615769718670319902873120763334979896883753341568207057841469241520381929776450545757418232490931983893630183115058547759092072107115238412223962761341608315126246381026732671062269793556662802115306770884408770382972486346463633964016766606505729816858057000161321406918887939548601706936345118547231901136123691703264374859932245224480336825699750647203439390939419387008407059855776625286457379272702457996544689167735302088537524787095892022317525290309277318249152194901694144852263737194221525684039986192143125606764167920972492075851837176978597697552191682117840680286237784729289017553180613662564596728058677930551848278130491598013669658691079755314526488519090407239177095808834397823335885263037493773321965326267727300729875891983300906297181043614345456482462765296931532681521701497766141937165518066512894765745934765591030530505293615210830598675318765783883341373311379717766234716713732613717041099039837467465091037405700999658763853767301884401860583005960398924964763998753110531719576452225087782872831630360941052331475876976957607181953658620136347039917319092584103279109624331490052568285564293765655821331138750219480054769478680948864131751351744805587067519552739727614587905539449915606878916119136592278619731140483307008273436290000023216595163257434746422485782751703238178303295174429177351667258635648811625383005832365680920577168388693453489642714676709352782763396343499387969964792998917241083284767173386817515637111286204681640390620668533715309578956215767621872473641792969185982964625723113871098360271059049153517346280674323239918316285999708082992149670470806524862221935518494606027707968895744610128183246054412750382764105341263329275046197963172635864061771771095862781140960304782924967092929690934756583966509320966362244466249774711373544062264788187401729585148441461723300498288549650443150753820944378697348371632638766206319742589155515288346567840226762309960376435340487811251476408900128562790651033777233076656309925563466875129695270771286957359100514308568642586246720446328708242756483792026177539951253561467002959531507010791186733141121368493035722554000874643740998823512220167675112025263473464225730574056945725096623813478124732078098021412119070926176623367911260981256266444360944421937290102637767490536953021592236662423615155718811554550450979805399053147544491344026004520809983701218355482127863744521761427803257615387695365139335775159318230883523248209181827012657258108382478205818850676404244971084367286704696191778596769353728658738385681344537073216710983194303689801091919265547380244549490234095736157073074272256394030408681848952807121781761859532332729865164906308304041384878787545833557397901087181874372888831009462495792009420897935701298633892687543088147095992144147498540329619408881937273385254424331878820437753771086610172003248476203557535319148696310941526384674114519472243820790595883829695677497785543278894946360731881855693910764274580867382360906364455484419002210812776658982609098982178981879039282390849847941298947022796128678991038119485502388304548663427804195150742957607125701963956139672615961755762167723351625381633959411744053839601055704599088503784479318359457395826371363614203353336234560133212375303719524282112873508618712709007319167878302397397968219499192081780294512566850372811658104021590196104692304646256990601474830835730588930720749354677432438231252478131309055298347971604321583545883364015746815147201123392247955551480984989550353091104585865109341114636760890889160348936697755692744930698770090506983968214341549398608879479922314887059901462748196778019238381808036446152530418042648782433607375586087667387139387674391819317605055020136840288543908950623517207514329326628434366886216885108875701267494470734013774429473253274422979207473828087633700388132374909971303619096839012227627240919815800434958065117619044512052171231498503655453948638190543114916740328611062660701574435313601041398197312994835164994649049046826214521294893145055632084243643290558917558676195600795676872403983397102886949783787166725140493900528857280769273966746734044259751808289519721992120029881709304576708740445920976672396669408437681877907901908002761939009312431460687177454797840686740255591081586554974810178863368918107660448433357191487126184753198828958716179577786251179155431730833574271305016082431237183007767365136326674495295853824672593390798189562781415820653697528412439125076707186374307561731816024063992390508433633033286949240274513626789069741670045749005523802669616256341383096740111443047765727959536851261738146387604161488397255383848020953204425527986819625606734431458268198301835324488104327195905130746408281650635546950263396206942979464119793274711214661189976181435381509524098683648023204812500432446006174027358092588593876817184860245699935026245950757330811037453076124514180668819246563008343740990485523957683553219767058638022555948535513854406270048065378540204967748640353956162928160737262754453355378584549796760118603075517382314662453015456640393531187223215888939300633685635633696511740487967115743403261873470944735377618802954219460176208473885520968490727239799908747959920606524225141020734264448699701264643148822710841957538236411982590376108806592625111645088587952494751426204277926813702070080307249355694080643411604005449043737361001796268044445113223631018535229752542576938027032079943793850594518446134414414120397156975864445782206162139455150077979846987364431819720051989723074271220341622631985960466080714038193535028628181700906865215020830232841865810773156738508665968800302283123700247945240505888202715248524536938030167430410553014043201144847230383480747123507084287327230287089415390932116417765892644934609263044688764712604114380132302960492515648787759728392782645253606780300216179627263318067039116810026358231288734497132113181148926125194112702703121768743585542354799719647287577375882555376534567421066963663903888856162332088598729195265608278866693865887097013100942043600858194059993125975126591352852541095983765525813856112867254362051523713993124515681229849445791844778261206302963504666242740663077094241204510286695591837338835775921276739864317516345337384569559482113154480174567334985095278736746765520524672649946045989644530186047599012288950263577432592645514990821241060773911020848915200234555340327137508664596846196437253185648849852195682594790679175825730012038725482485960543163629743552010401483104691736314510895007639123812160181583080572981943075820556628528168701627895279700930447338641235184931096494871449675208146126661321115421451652748397043310469042870602774607513205929530575862497126208705428875450196354384234341403577274486514314996211886525791138746666467580735029988300316369665291019013724014102065381839647911568426601911433796992003211215217008694973012766937862538446741124129564747503309426501841960601437780466540838738080682937758303230347508370467820754233678956191654959424368565560301548483441056069514712351130772161834283987792664094362404761950964640077147682084970906852713764534661002060264602969395587461362899552185519906024683221696795694350012204962735365981389174800110772221425333003511213214256943554192646628375873667838087334316138814358086452501746944064680105830597276925508605012327502561189882994285425895288926660271045928862391890117815184936572481476236512954585304014664641552134681690524362936384041167834520215865680065233963139821191498483539261535730723612005319994549218790013553741544702475150087926201675955577391189817935483252782542700394127317030889953306867786160567002498830752686413443913542697715243259565919571853535817383579802693714454420631792495175902131628822853244896082728839540123806466769278233864660849758052602493590103927139689819334605616165659849292040050449118149314277366866050359001404054954887055427804642787923136210415632308753211494418439221628588108241018670854492301149789650255528768008081593988590115226137802975635034749302661199027304819301474352760831988858912193217619910101930910068958472699595864173209416711977301092738582398819410896888487004490185297925939898507489723994998208900627801895977276447677841361943852297787656252251208452155146363440168550810886230989032102106132109735986969457313589169511482632661316599139535900241169210230023220167499495177048515746084205191493243919252743890821929902406853127532788054296245099990913139767649071275006295483344058643916858605431694909077772272506106295149746001225825068933765997659363083631118087297191244878706446445588744718542475113680205024493473238889719628314498242424743586163665210389356273996876359224278804500487687527378035171060523741182567132413627080050677849557653036406796507875178180091288892929823799117259144478979833162853371071427612556943082611566112049478334280772980957816855290165691175705396358625172939684992300876757276679370550850427683029071170651712154667676024299995434564047182034101706109061125070832641853528124817769935586922819279452685398655875344997914903332650295926339002906019560773918508785379128094968879763719875371762020304991804970374184698085938658802870308029661612307196811587320832054297614900896211587298618152573550069762899133084108801557880977871531530257188715881721216678736488085739247403698108484788500340039235424998472012737154526351426915103911679291098546659558217370130515841736113609962540298514026481889355806588672898963245194561693526162171704808744887918414426822694583263798148539424492725213380688938303930800524535459819044593698152315647900550322993023005875273159877458574314148820632923825802914318618431675439058793690010924260587550556454933230868513120066681358542081055664973442181589108525978323033672785585563431438994112793942428483318252353728885824825660636496425689515480447822879915064079858345389586272512127358450889201542393166394982617853605341599167851693697182454160817340186721041892648769503958281930595107566899300971278088169465389606786434169438092570685293253343491324821822935546853472311138912945736411007244272110638671137294644226350846465874211588682032198142745709432552025228189347212542338948432939219090295797502209080172177440423463954570859553226838759295523651110070785050843724440901827850788212683746615741012182381709305572567126305654036522768330862767090851143677336996641926147810453919165868682444160504371654586511377819933456327572019265479917344410880974935312959674587084154218846517557169494651612550822329158184618087320286508149181883400447829781468590265780125741386688129173027342020069105957883494422758464703548511610779736541648063721718101145584811596604025557557841403155016417780157087039616444646152877281603678040163808567175657132175644105543472261419369973163214179191362131682823957397216599808835072307300523704915751584983710802283147692460991060887642180228453390213298847987684329538590012509953140829687061740499278463763322202450121111296137339961260751041916906595175892129036116858418135476830458874795334752488765786682568004633599475546633182007687797971586854702332057959440491343327921238498173817271892253303332696943535860885295301035446599745182689534122022808027995819818810757196987320091515529891102007919255250641760690639546863901899333199263531474495238674603855432810833938509510334748882188770425319835435966652587573805655137707217905116422116764113396181782397267794982750240623067199230999667970403044156896064210852559153490914520077556873902462045822946865037557446699789018487137321853975585897833029331661399001693897696471277822637009572773506265208133583497149724782540607588764481297950762846873105176563559938846086881168564513756235192506022700891628994027619110836989463032924214943442102792660064245628766914041993571488366519060518241641176114135533791163133301862873428607100792857162180390673245320863676254359223997654580924369703496548555346593502699614184077637966707993412226895057250932552496439484863597930894252093017503113002187977746897514906794170677182686138516336802534370880336548577589321127877870933388578888393752557766691866002302017238445063749670894381892648717205998172208723587814072460141965731877457340484054347106550596998587006207251908257288109273520746540931446638451225829684126098981214576099543207497941107864856757754922191830563211975159348610849708897351861506028753811793666378697076384372511280043603846621905623614447288003384555306100849531243059421650685401835251529576488099919599863076738294452510365312863765459461335354266961916931306055455250813187940242420524332090210376136410687756392214044770577996148384794394629476140457804979071925798063450503438583437076124779963328812827309972301416953308620221899438761551671834669057916246446432926737510415163802249641102818185574724176048433613671281374058318094452803492255413928838080855178782080473048058275438506184158213835992314239741208952947289524202203584807687589766439779414103218853563441157633140648505471845745966446721057316508642533018751347977109294762587277473811455838393830078678314447420151491046753472067906265620529962868985607561771207054938908642919664560193114103928001575755612158463986724814683376818942277694874795571662684111384775655230523419842947646093703120599701375625016639334304634626826772098889993257405842143102965424224928978899768809196972328357250106516087033342898692611709215532485271256092399886452287943605661228974414725749343059349148210254011511816818210118744950461388732341873743409571481473122463474383456798618781181283384580874968337218391873975647370148499188535233262484511574841680472792894573895524967721656402719554417421035319986655182582349976104909121600093837966654270436172045150143777911773527161654849578860013239421090539457878465844710975668258349702221952500262293584373585171707096044251503810680908212190232579757864608138888631502505947316701078133559120670412697810629434412404883755199733046526992375487919128993032552102241939393527837758925252590798949298737631067420992890536061125434362994271090269373169920035869420412914296371875199234424327889436981179628205729501968906823172659345317450841499010632964991170559770317695458574963234955955370951245069517639499584226920364234023237281789009057271920369924903480922812204936400301190764716208926390891119541726233196731957745902083194748618397817179150492405227189877945559573704822647087050019533504536391360031855659669202998895311885447717452389100695439052098611641269443878146427178550516542873883436659171082372205127987337261965538283523376433160662314100211509831335473383370228066832481415722419509484206917348978257546788311641084983803875704197958542294227437593667405713584143901515207266269138533152969132835067123008650656140850669915292473152808115461423108775899741745854897469422672500368680306486699456688601428111466749219726889522524182762314050859621989837080678428766270445906997460506268111080953079314969238723250923502328319611444253019251475799929910864686507908174714483559404231565580168495689785859335280615577099785197039753421036237390837404440699401474030734407595883549580935943821262984695782448907225352837971707611933546358398193133410663174299322037651971138415490998504043458808052822717237685613037693599052554639039103850335589641224555435152785191378106137481973736498488103106507619144286996800623092787510240194031824609167723437517507860221646471087562565272556289686394651867143655391690751916686247092866427673922102438568926267702301386014826830938817572844660854439945111078854251742102660897104262493851497487512849850783034798927417130900494953734656566528492137941608871665660950117290878478502426296649322516387164704824607518457604482516539793988468240637508783005379727909420170369112887994393690506095265163379796649250753186716256804457344132678706100358872859331955738651926982515169012779318253047996590655294387792252742086048888453667589895726420062229065194132968707021564518773542393614866872949706656608057624730656728455833656137195444844528074135601869368811612746674301654797564243459554812229465270412226644664222003829245047697308003553983055286062979231982017720863947390984378654516810340658097598411543781212300717195177533674893849785843872950961310163981574536053623639521037830122785654387490883542850567744833600761305626737223482593347837713493535744846955105118462199534759252234386683780273559277141457759040258903110362608596339963464471482674327742723163051667132979813684293067268636796973412555261819762838724562943328807033781665903559382742922106256721407358997771764647393856345444489827966704198028655285307167677847595454175445155822929373482957254715746728703463956561103685369862536872654117081056215172862173401494644415631663478930662917785087566213275882054693610902574600906469477102313635904524620503821239755605384937042174544125499024150706706330738318419545643830579513871979379114180838216918786660985829099528457701007213606851806178618083409124004022715480993697124174932201115493460647840621980784716113604835819521858253877488065972338076761323991554601913149873292262903789529403498650708361051684134501231639082529585221026627732091251485103024401447693714852287668016114367776475479170105917571166781891138134475920513242040696198070334787066871692410525818230635363577679818511801673243378014766227433843145871250999115511544470581841794448963510429810823854723609113342827883418043642427740183589265347869829659628961442316896855175687079239194028092274246789656229918551257500597190880945776277211205466336827728640932164625213672179051397625037628047172138555858631053427722149337036994977189906946480310448833661829612905031138490144859567383860175601248717226905096949859638460501545316984813930463880395181271866751656075890276867793106651356116054020175481944817151605686731809054641990955972898105725969075859151612504861686562745554949491641085664213054892991420033716001814427933953488037857263425996826092130466721267245291785468032038912320501511216190680819837268362686966414095128841751129696735281374250080051885044445058158348787377589668937336522724507880562600987714932172900668977649051216261676040920854767422296061439783416868271914939090506956863803837839497374851194149413848801446642655482839792607504561644393291860547880636606487519583005762055812159450237871291992998164433740436659217079559374458355434518490989388494206837614783014752218320971161847422855828301472306467094764235640060779891447615464954952464776526987725340921463102956510170679756066744743013154638441361440582678728307289591452303985887885104191022179028333879718678398888517015699526877981332162371332499875566136646514545647679610216871246718759054854759976910502116266100585594367339606805550763222927235103592395032023598249348799521006910657554203175206689183226838494003653195833186736370072887465663266379046898551327392583001377841696640452626380315411810485629684546614272732423587325762081704625748747277797013336445526761238849223305654368164682170910146955386337532771222830002398562636664424093336150446779442732181782223502862240743708324847960679497433309174610187972947819646607250169020204331577725797823657627320000743958783702042168988124657764039524834610001294768497794281826802593921904451299292193033588409042366287854295240241736684527913137007922037481032561013018289835754468313021196543128195643928156750434898505994769858433277544094581623807118701305983570673604697653976027381732799409090865612391688219659260474030842555545549683020543914484842470581062299079231606457219078304225806427864432011777377031721490155142887114418044706654661246127739864418303556195663875366536553999506385828880090607479670678116541418697960023322307098258651826287743825707572714041866942050913937307001148976803487417109408691201778062718557852237624112767169759335700498642036589015535921083245606464052088232991947699222261458104750316101358775195220459898804206747399837641105500048720943753057234152302604253410765719842567769676412574183351087110254975634191785026027244922310239340523480228455550784997542022948059923494355621981171992658284217980275096493108854745189104123842326891125838539240263126551842510506152990946858200957912187323416583911871958241338550583232426492202901717665625662510446174590310543185910640984911083898191944260363595187731587401186411952886292512637049081540405954551303810176202614312467272672843363520549270676039658967097694011096676085033300448603268886037589910825845256687854077800888340205849489868883701824602928624408673326152940293283263686193158272016776656463351146533728460656583606271866774704590980013886534947510291021375081144956493272972721316421730144203350540616879511463598931931359161879225963191251782655909964788956493243291749106763014759694615128791075194539506247425398689355345953702776892212890900497358965852652321684612534027471306180524493425937997343675649406499671718774821784752730626072636136711968205122506671938059582148981791586278948281497892464961549465602470360265694540528095336624163128016815218319362232984228302669067414060643082645320579900184795632598902351658787717167699022175771890575459034409351226909614938892703794140240075076751829863562073429997813421748481872864916104899687189138844578189569870039883156592918446450747167061582321839491141434578379334322932466373182354992874608635047160410329563326758604400973084079207880267170389783314498924095132402798475796484871579363128854551939782719167238289916339651638267969782710241111895039838775796559980322753556259267800356396838571595234784986231190584080316600457577561878454502423016608172499498203268098843113386447164525200499689965480657960382105063582769106696743746088470606207512111198042499653371765774840916653914484600845760915637393788199768943897863982834457069567392229252568844494001168648795533804231921889561188922771067049769279192215026751512504072520938561605434493983226401363189836318722506102495372575434572200199595811078127876218378711881573128585923121613757204355638617571519834713334557460927144870546676721484530369272015328249424548704877572884136941159530832361990576578829904157522181782540995146435409438725724966380647277595504696144723674293731488778134507555857361260438377904194493888128182896234037741094248607795583402288289711999896059914142188069304531145719681492666658932228309395915967448529232416564759482925854636675375575458615271388240795486613632277815779570984286870239296687654259853631696238016942189040622369131140780197799943352798364443003067436810494530756790534661181460239036295974189528634365719465598336913477936286552596176475232371608016198335341980457449841505928663870343184403536779435987222173221092127958056335502515797418967733381726328557911008184055783273203891550380845820407069750432768357243927810288226033029054975643338252831223001895422428551915817932177810582715197300139084521018521930860495337199192016336203073996274985648151558655239383072068130878986099661341160578134272089976235064761671638704015615129466040820359389238670009505240971659639961402588614764555520770091756837050105668752658259228651777201005759510219638988156134315861628989815124981839948297460696166655581698977931867380972415255005778556593657325567643305315745037878485297267059730970804235795274783850650512432992584530693899652067868931975609496529324835465778586224497914452039654677384273429124023504271039406090144000039603915775620935392078427043960767549314329259280893772169772824220022709434038559172487039918600991756047772759673417951358945574826908983213270323003694591860348660948391949149697667404256526539762461161393610364085778796339846722323851918400973468593776996109546738800707671678032854069923307340715395479772450338218204558294317887379686405866350334378106139718717047783609758451366336663714591765315684159780612191810783159308504705554328682196282651815950382697360689661249598319841169880330410928124529109556656906430881661866354223427216682733722042382139513894776645505593197192492273969137413737665461411114162808681057997561481113039148899563750914203599746218879716831237660753730560360548361890789832034648240716346583735900343603852724857433852666609718928530479609189770791838417050829585615461824960445535146654334096514314079561404372601791255724965444460532573244488633157026264779817245329407129044992294648970182754633573933927150250250445149875185660452205744251706139817156994176321290883727351952991213109775992882460607632397417015506653055905302948688485487491842765011934804905952991293392261347529558725056044109616538321379600142944747217251319423430519923164342139443077417548760227441596280715061072421049826616639789132481111090714940555524800887841386484430588289047785270970009961764422423095539235894108372348855459629254471373428191898345326973196567469278601100424806773221207792609637123406136575728976776603283152984175746777794941374533757156554053372329334304244280486816422171983139004256817630200746682393452541637081754197332583854317501839975174052838657508653820194931112116727008455281494050380526194928795889827193256356667021258376859729702816850292101446103992447187819995879289363192304859908177745054236392766786244443272536245076522855526948499109637094063289806888074760312178940963060094176720442209938245407078670131287996719005698482197673177079531311037885701496418108643016871159440598724404671736186659750883921697421795809904720771508486831503197335294036363368786559610902382035505433424628203844531812107266806952669742112378060228593083818600588102799584441744523678762793076530746054714370836528853598331506996907714007899994363068147586474700716101616278674940270660208974470388358538052108787326459533688495553122569947172302196137412784397311547246130807244337207417620400051967934968331709363707316544924261038800397244982202627790875888622250590251500905037141307158420187861298664524124875958618176644160285332100537907204772902156100078059113108789529473301337116974341350557851377076269327861890324190196602673103811657909659651952983668506700840070446390606682274838966903130206941894554149144025755579593067082932782820613879138473345531870533606179705843807712653615475697379312539783466287297666602939255248867282816344868593694965022165710227927582925497702101157642254701766226167702864951098956700684774469635625581376582924968923347194059003999800900386022553628066554437788340409774584809418464717532468886443873279253510525870389948039542426656265332114020116087316659452086816570453183942326320491934233626429760509189165034652533691244719504796291453412429301653383053925437239915774530804350439206640215280010143915425966195200606390757196647214291978237915386897052035799171705595540516186644702206354100033019521033794520351288946482011510032534326957093242209759646928682948094668199186495486126647408010523237457096991439865585104079474193019928008377200928725629599198227053994615925487673476100150176386882810390701219770100437653228699114812347766939355087161448510519957806679707862807099704790362942990019734418192821980349050409143054331725099256555884414765130530652233580602177861904442385632215565660012592905839431584395609482696371130558144181152116928136100077851494929509672451027005053384548274039799375297177292325429635723275399419551910510730421345876433826924523497314530897893125930655291491754615336282771033473880155934869116664169622250230481465693260065987981735886553331052554768833716647060449802794171627558793830917381760990790040110522300467896489612912401256023463040001225401171612256837446014619917973313537798840921023354012134321380472945086667583191200580357066771418562113134160272346700387592826937766035074759503988962854384533513111417621707231899976401938875216367046577468930569423554019014461355063877932032299150562634195999637109143533829263902265014431804914126922682864950414912174134103129641071417580143531742880321086720669361750202204125192635354556253658223505677854847309924619179273318597692511604709115688058874617790321036997864831800720064867090071860368895660454871905533623687268851444412633868065742886712398390741445784247761343359400573043906592427910859648499901555872870904981952525368435490972109302406717809980768870947254525453436695727342516937041585987552411589882584479390199876326480271578642638478057519292408241461809988224796849174710256131310801170384212492159794270579405360726146683464300438940270273076223003937824104278901698418862463904531195372329798953732191739341436628701186031834820873791525833920446863118699739000668814191526652292821430147103565630184295906743602542921959711692580217343342506907448672051840654028707302239793842488161099586894297508781305228112539813243614208813854273453108589117465401051257069612305612936217927899398843116831826471348404707070161948160961312759197906506379153788877895537341758968454018417844643225861237004355641682240499970048579539935332936982236799686457189794709795835487108379037184870431329116115517879114440873234853684613846421576247701004813486791414810459749177711933780777758827960682562173443163410810202656437344509475331954469169945829347424529783700845989102835324692543951352824956206928643840829785233457056781217461095947399790697406571691375491755494162821241741433621144229836008469180802005855016542696369646931239448157847507180401513527560637524228544049832134506861272144941863579162639069211026183475481363070730446563888787563887132479360841927368534987708693206456316154902888130120432621216181114412584305053166160728748053360723513490735146577342199109825795263904740601981052489696954358957401893721653214944180331649732788137925802621221627488617227846682384016905405908819382128695562120247800733685354111973016804053885723009188645082624319560777652045470591795502070473887211673288106568038915830304312488768295819489186486116796215462286842138726704815494036049104123716796809943902984566962807008684773905894111420186358873284039815321113142235633945316388395987449073644032295175655691238719079531948590556035835106745729564247826187440843852757342768283572162727839824440293022383005974965363459300295344129840694203716135624733619177133653485680304751732069665515938076115311930127522140920267283780130760616533101861588415389622549582905834570094384514076387974668123507692481626451788827865111280430453966049758640180938756715855721078070412555501869944924684620251102081936227379115065046370478946956717683385375416323889088543712027085980111347250435098715855166914401104410777941334192352673960836181692713461906383765785489566743076988708996158849810697215267843774656518585388502302828398850715855723230498089308540918065890155317976768109110321123060521420849033500684297073119090236739729716756188180215516364552923734926637129787416595039959689987455766916576930783702294522920519854374314557022201898388815043345532061663262889699578914089606161808242453822742847445727897428103034502770688661151117916625703770284411019474053966597260369643810663507914672938943033998793723646365161012027162880317802464292815718974409453764103361249570616336235674620629159751981460605853450646004810687976723976522393256083450572266123376650593624881840979156139220972134414621521266312410364644989265303038211811979754648082427447876581632517330097398533559623726103722529458805320447965715085904695125842433507721003991654740359150445690083357313296650764281905372270304349669499222874359607123766912116317412108929495005719268068940998425463145412031082289306320587562026867853858464029091738565573175628134247439500502228293130730519676892629529478531218959592099240145509365395785438117849721517488615463626583673223816906441890627403902577511157434853037711574019068227375683478539113289245535746805699578947565495605961723610895320955067819898799200303757469987972517458261027049426336644586076207295448057590667745895217297512719091910097863874930781032006405445860952120259589575378461382155108676821456424995332221948611461884991235528841551367014048029829329319478740506505432991246673238450574440872626348280295827223414513757618662058955124222867573136638080844642798497133453653673544205767020987369492545858054250809701991431781726035332871022835603063255165430086582039170498748495447702716076627010779458702921158596579799483133715296784445425353196512336660565030748723933482593232041116707922167643735577029562821240079383868839177668923326156292508185623110941711338699610435398153615847600408003803542164166813043188387920477923335990850450984613911867146271310100664704423053765521091087244263167024784837434112081567646697816497583252796177716835876132148550031971475183929997241848179346161714295699310440268243734870103180797601379832686283629740105813941612906772092707453011871124946606913732247118542417922021810689029902121046318106947715209091684909392826000903724821818560997336242492550866625484020847438669624287715819155544730775130226558057277915376046056284771331349234244272768733157729311759264213146454788669716226331845869253705511753081864444298963569099422075951294418026332059561811844159530526000815922431293185449862008086073331528351944122008214422171158363547258629790748983424314240002203850841803705454175968865456266291506865451176050449359643194084622892863225535939127538283404737231364649977231303388798707513227503359121196222644468903084477510722409968755210024601392582656224492989944418509149933833952522397467263307616002774538164869469283736342096936323378722770129069763081679958269386734002043875422597682553367473808637086470980240132512074945571219482899113303845639547280261076908471864141220740962525507235363212354435239163459824764191315954726318008029219755688919554930811994380771070950189101996191229087798372097845003959815167350541518577495890976302696036380651337097503471007748250128419063414265812413297027128746066548742608490131543623009323986635694589409170510764643933325546187602731757681689653138560137922186832354719842178055423197358815401762615486872184487820813664817507962703316160283493590908809705289115872456980711044095253914505884202343042586856563377793016721548490305377252181692244207051023506717368057591995586546093072370614329866584198911133011303413795863672056889181618121096685430915799142212744740651660556213495815644648042053329977948907525791504762542356085008736379435002934864986312256992432730851090270773995969185135164003261135733626810464408495455121571424165056400588790716093718379634153134718912573852985931645537616883242013729338737392443027097210550692105396361479598337726366076701164642623119285455344790673511363350148703748243650560930107457952646712391602786988040298715095539091328559345239307838451448425331170310256071090259114029196279274260747913254678605084390102547409093754715449827618936576417240674545420106021587637862207280281321650307278405538820897523881837690348494437177791400901964374605740152413130054107857745924492037960354446298081461790470552182442449580460434333873984141016569326748854128014400584234352781904200516574528460406399255633147995030326014307321971216226429898501779449088700233357471250453496326517113584198990016882189065705146177831794843880644449368122501327616671342174873192599993234408307234447939855500807908740108524644931571762461129870535484748827868604409509844493633992364341828883857677235436501638970403166715478310065966770209116480798487458170783129181715314278326380542370134089077804092068341643908469876621343463702693532132428145639836345689799819179579765614943649309276650063753156705140867169580535088124274924313621051268120616550626670343963486689250404959231803964809984448036576021537856073962430734297137416461077057129776453181248689311329293041503686514440978200770215294938677309829773039835050797801452118209358782006306495822748763100158010686850587042313880471949996035287576198068302064626263157409348968895640335177899222938536751705190910084575915184668668716404802130809434765136242202988730796268512968792991415345092731283645255466472791751582927456714238054286057133646318072263722809760143644065919283858079136643533886892039269886306845115656083632034997480687817412207423114794588558637259552306597793430410132199880615170392842505485637125412342798237159247861774567515432359731696561318408611428906614224786672334470425930477621783439132803252189361663467944793358712142982967786086679535017887117948110914097029262241691394856320166203683984931409733482455415913101294372954905486413146172788462527195007671081320972495674208842083930139895453776620057358638809543850653970440148494350825515412838602549778653150039919442964776779594966403122737758443069947968050626766999096800332616833146091993271682017311351646132046290515002126592298877263869245038380884195546604344035334602371759561803995828882111201335887625313834719992393635803973012687454187874683871173924182567482697221746302710857370049247602635736351975855372759936390991974975853116801646202786614360102068965882389173012294411643445365628535706739264334123869147484925659864785587966629370059605095272039652977480534537090746632138774681905490756695344903883364293889557377996819058451756739711774442078776213414576354731978785742128186170099271048641410533557305203279119844644751698291758337066227956254740029163325631448909110165461219814416238778795853146102595512347272994623476622855179867031999388303212888895116697495027475165508899325323260139393230348272682772513631317275412398144386194147179433794103344576958461632841389769918605426011064906363690196604043767476166568089637289208922400565368906477954058521168948138851625321430572023719125903741595125917950703533003044174757816983637511770773790234216755663886691319284540050756869117318723203009437295757310574889588849039842909388865180338085243822351493448319333734273809700902651891224602289827991642518635789249709295707594702592635608358228684068914028035541617587660229399793923419892665383909680091571486396226035369503662346210312614653264403728029522386296346557467328855182937461165444924603701794309370388138875148168091366662794083805241140586358993694265128679711612376572327683323005567384651773535613943453140980006070653823076793792798090681670614016325046296347771285900098458175477783191454127381728032318172814603066656214599297773443199757746241843198802969702309170637510740617408573053005282310171807740606641667914040397847825097837694453045707121283397304707036566502447410922706136942627350385256992754145646982554054038110196724755026598393678310792277721352534700603643522148176109262297957131152394860995329377744485763140245928093941483763930491762661192018762874683836482622319132113948259261659032154643748137737069545708076302007148631084885394024922136041463036872497337776160446028117975226329493819911988586146974891885486350627852071172209741179251961512621284084328574385325022933569831877575676690366708418103310795367633620852780119955805790686274822607272197019571867782043147755267584731746702520944864966311865770325324603741042203678643935828307174232068062869538158327657494577124961971837397472771622263257661598675925654330392987202442989327090344170024594337868526436705101513510571014182630914875371612981003548264514211866641189300235253437089154968669567973837575542909163283129844510837118776949674120106198267297904622020743981322842327317578608190545417906642028727920774954959538718204655738736995934845555321217543211702635901053675143749551369667141604943942258944396797674004918279760323819162870868186526781214564767143997308774413574021340135222054458990199918202911372574071430325654299818602801222653851592833325243436045057097389714987684531112057143405552650216487674138947613315509320585376402320777451241848951690922879792204261561383528768247786916871694616803164164618044242944513656475040610816310681283290245123387014486176511122902847929357192754680107645691080123182404807616539747030696105751459174458036813045484260609061735868752464449554437831253142558242499173030073929188412669925705272138065749601041109958451793749582639691084311776454756143378643768662214573300252761834360553842632333233052433130034268881647225721973827632486984716423374373833897154151255693519720828229680516802182401025105003923588231126039649899635099934707730530724205772957451445843492759523854317456042799565451622767138212867058367713154567258557923331885522461871214543880996233170486916051362325796676081123728710796924939230222370743061913564068704775575537859300492900169716702869910884029669427302693580794070611478406842562919804190090614733898265968311512676256120398024821190226733222631151277587231921669553608399652319163088477919367991114140691648837861908508327312313421411702836709159670026951452678350613641630941585918624552606893036286088302726563278184647663692386419225186241689230090520403164180832177615771134844822495459898042052427947628796482354378002605968128004897187439587048349343191112961874674026889789832833141390930862218905669262663586211828823865865581463617211009614492584138270175820890239329115887914872268784706129604194622857348271767660800278368855755481033076084549569495252002759495221969668507554204765930655922730324334576320429099827404551757631398722537983207005339925808584514758204112545438865478124442746561003775804459565778309176667821217956544519747401573814250769767849141971036140658757477320778447283451926565595291095773715015821508959936701610367817503370658371841821441257991605695110979055134760013449609705977820624472968056127505574751383291547429564585106421975388189742478410915391869461026219737622649581103479690527465071444688540982993594182559411472776015277325942151314644025102120605235821010779815564083565566858898127849953874453176481316693065254712645208974577580715621579186719673486570942196784228222544503956981850560958228471963817162044535758077279429734835742128851647961248183265400533984836935803889566166936495654751230421953591959582490221563401441589122854365796260638710785101861793957601023516608474929027851122745659974404704467847832077490891745666028775793325417654042769553802182175184310755785865986848551601087175728564822488944135968600666359864088184766658212118295079338138304200397274184577927872128291857023953748097614508960319907914837693686714083277302224597911745994791175665930280428927915872289076385166770603852450841260075779738478608210196991434822204099323573409638535951283387637852103544859897061327113651176524882972501986648940643167917888218472954977857156313407281815265071655952846198262039254078630674803112145374630856341990464865504205218359045097529843821376970155813881615355905702035969363875291376225865206392248283548519828017111549406239182014144210243441533287758784243648385781333052607819550817778861052516252572565326561943590437242720381891547159196437277702162532934759333408152206578103444040846386592621867417564464643551179649036673738297914765931736719251470324102591504836104962164933281783941727139037420006229529575092771944315335102685361133253504733331775444081652680766385385012970420007994228204848049230975388514180588975194709849550269253800384509464105633663945017467406565550212980631613066659593074380945890055877886527924609399354250181900895426090877223329589413254491839731203876028456083413555244243544780063180140321156664453211997700845082333054361227276164722758869234756222476494434949614399817883778615890251558287580057017578450463932430041860261448488106562751342924827710615585626246769448682291409743437489283190013114810539243105873353160449884674060882421336959549965624976037697519794875904823500877592568237909759012113215050511657438422334780044342239506431052364409499407114365482781908422011497598086154436627417195579623638867876425213673549955902272578126714724696544845603000496338919585037494282282766654177129572037760731146384065987952948237533325522637967805977627003342807672440625931220007342187269890483069233139606517902710402443222857023062926349642524708229613385985382399174270008428161724829872213531559633955068317874994683973647173973805878728080058960820283200272558635712198547727789324560792142371943269160954484759022236301196073978280898232135718070296564460384023919589002411011926805323845497961894793078990258668131475497657454968688350280687173869501870113303575950034361042609224551461773879365274398431932446486520455474692516543445350570658848770269758252206875510513182023565595876778162790845827670372868405264478378704343630772252383205278680336348428197285363367507122258946157423109465264624192366251972873503964533813254855425495808156182680735925923420849649232391673749336422831094715257296902166523569507572718901922366087074367442786634066996104783826924487765882178011889221597733719890242368508048594829553849248758169674923505422723428502645574334470432923784151186453033887227565889369490832612682317545119206481524150583228040171129738591784262677469014834814143833364207542502881313908974442657041301479358851248601760402461242536583725148876862712107258297775710041021601745102946241604467469653069136913732156727410380291181069339000718720274222595061620707598570511314134729090221766485727991814259640946784422247170827849636663232249753097241189261973075403587881598304524370885654916861716594645379592360092382697282665420948145028180496180550459849535209281066904253653181428816107854146008023372864453529240521647288227186334363541482944248375345036277328284012029989103527649353441213298937782659291958796028550754662582772513696003902251348760222958485238872308098066634125398842995216297161041075785921052804053039574346150968719005373417524590813510264612152106928641254310744236939392466629127639523218059813770317176961752807119530688840462269759690443648640867061512933671908118315013214848626397229403991288695492619525795274406464967601414979789156143061479949449138828026154055773012139679848358350853779945527209908598014873400831126343882260051940051655787180188677719924667314408422637280418620456151190457093635171312248942835596585484286004036158639657561532399372205818562020099162854596334271823823040242305906645979590199912249695554756600197367716168206545731454356068068300328047468175934020160700833062803423500944503233273013188642847741940767071253506994231110145674843974517227484389267255738577561887998392315404655239451194648623691018439483133054786392487804167212326047973326713703800753786628084902532092134374666337803924600423198054915273044916565123689747245065786670651373980601651984057693930927839101842119326887805891718360741509613203980327264744585339261533493319520122635234962972456845368898175570370454572392092776756328644333000274105095767284162628519472592167990810687624502885950533122584777805433329296740832856028955922980466541843312283692620061243959088141117517794010430529119362185971980109169419886669068337639359351654468303748964541099371969338781742666853588192259747752439514958633704702233898121606426090870485688752295408183965250763022064230743086892524714406472319506136183930682550695297149775590121037956092453502138272884576592120148583619671915464395835233605107459379245599668719246346714262620589879446359612734964105653564528374897879948892365314724823435285400770930589733673922257907409641916965076736716495211048635037668459768024653759721596208186110553331759384761569607535187839396128420884196147194757945281695461350487577129223324609363115115598261294366893042448532176409989496161491050475031316001388664671627536294954099671491594406203621569898544028537209382605202446645414745876173204117161376213951788292055968461863865702737826145872682283729319855514184331011380819797699284949262437679830393680715507506466549607181843665912121167117341678833032496960998885041843430915501091210208916738821483936088293669782437838239110343038066550204966527994893463993578544806094327584670979175765231322487980289395047877022617582113951654791340626750966539738176468267007762808146799607432985830132321525075649972379305209344054835496712544769041446589670127746613078536451469584353519876971804499124266131397067918336782851106811725517984785014839958995292810765347717644386475180657397158847748287908654492179180618641316316667727443795072246474096835609887388239745509289238771877109583616965574684633645437417624569194752262453261741499412912251079177750130159451627734406966865703160086990899351951696136902462551968814065466817242340461754591088204156788117850099980082396498178875179431670173150715205434229608807380757657189512670720343535023093918189824330453118615833054654313515340554191087309866595106781237154825312506807479678469473335161910604625301492678147465081980123180922251764740323810414754588783694466773852583082657273236676466280980221964095553891455345225056986964741853471342660921317559585843411670192475023786244247919412378017930990415715257171027667465064007832574250454336304494863065563417749119126764867728063420023941267658737329415981356441775699107555823084159550230282975531946633189351032866753339523182222517545850741361505089799212837394460627013115840601687657714930944740446397012738364379795016158156314633796888986680084950748578887636358818203792620838302993026620032981083891614721907662076796439234985267761469163790717844959180839721275545870106183932583078917850530639350022347213503153509125698079281829506856410415530826044973399823164967882561784446857459389547729394970628519059354974217896288511211213501758533987837686289713663945425208620978125214551965220704531424788317302071191767872975757360223480817261173627774197375237170047264268978108210833880735008623644267789161289321382290607231136626056580255944395329013668054355317839997029936317520118799790468061231645672470669495008288130101500015976206546045015962370873400337022483720075421741165604596917320429672408354022871245811982714534255874033486443578249643387078049715172857578431185456537801988194878724472701399284076576194210962757568387607730806893032048143564893536544095831140434767264062808708892905210077420356265363775060847177267827260705799689058173526199973776404155278558970130318686448260785707706716160496270607793764584437826954947980290268925575954145912105531054715841737735121514174304838778831813664111334380774545589255886696112766928539716379040183706473146481883686988082154593326092945944112367645433498545404424798128456021669556318029225817778194593170672712864894555744550131405021854347881211334917679289286497456276532870263821432982522418728398544540051115485565238406385660452681431764207841701977793774927944917157782048512116978467478045158643289616004148935792682332011682299765268511016653410665425743266947272768255482392993284292300174891458483882097338146798212161066937635426403175954412891178604000737967289447124117669768725842475516683864489659357300346303992109100326654689176422467271698752115118381593329596838358447446883607511252849608876151534323063193476335418514048811355047199034890342033364727236573240394775708482964782915720069425891874205947702904553649508218004224618280196010348335540016153428923228618881207422260887494681207053733912503097133019252022443593869463487471857905276089437516663679966030670884919448469473996990134148140882920942136307998590516708042352424180400985349604195044707308705366933638172180275160948725688806631668663240441667965122094833213235616895010599852118241323357304489266288315859490635673759069725959657273029429148358506843023134419501149676558591434414907428402178613389083571290583925204245098765406652612733502097342982288223628360930249835744390390654385959749473699185860916134700363006237645129788342136336494530150094600560697604650494938019293757396019130285395963888053206639729296641809314587640251140719571648574979329404172158358724053510969046996028186691391210612574781908239679420994721116978699353187660253896985509755487330179089137114279782065224909575220895335688151908925165361777351744366692691880904171209395674686698235895141920334553860406246247855296876945301796724155274296109042855039311948617402281767005503866188394740034772996097743808188155993114826125175194841880306905559934174332682874256638036352965330944624836523992930702385434683467730806595451945168787561060120244976585426896754501493089279876202536289650597359962197343202539936107417675248092865095646833012957368246099249142566543753068874606360525006088627466164398341205755051746396993818763966812244267137368118644174199542029533439667643098590427818017430873546816523791205407252716271085722274510056977925866291463253491513466761392366746171137826544838105106205275857520684095351610133583925055876490324710187866085313601500686214178415067606061693023526352603212869505630733355593366008007891084821889047521017465703173188093871962390503978585835287874755671360435396600877111038358039745528891319342913061851016997505105751766351284949141572934225889930837894051950297659577527745004629770484438272213598917493634062853217024565620194837380584710839330838213871898031869344784427603022367962749860526362480151734713479072711489269213893818982224489012274729063736199982459670920303210565424961095317468080888552767433337329037705280910790429842034625009254199112517756947121329069383995845211169941945223023515833874668902615088093642893252162952932216467643395866892574767446029980269582618600133989126372360641481555108961125913314999582661086331883549338614469505503330122654184799906931689848012744121021726728462989542908754576842358384326633911750206708471336848641174738065349732259462754267584800335991660048225835183405238715738020692257340488466845398957595743511174663949889625117191232358664625466125438238998671815262845215834380975747288340094072060686587431473613255330255659906642515729949566950161696985452013261154711851034141636806001663963679607799441463711754948148159679307609536886610468728038216989520167995814593509978708006046657820944301745515405234106910081240041182070799446767139362221204302912731052596057122178537827533651830194628237826215087242581267749117341236865033045586144669093345037796776692202674988498290172028022089653981581817708301714706546185075445601110958313754305470503031303812584355582395419478929547948321330338607019665006243423061314457798437240713086674765801104236783488712632460585336876262795787098603356823685385444029473487547758753662312629027210877351950606754793946531332014432152580733238673917075211314438069325297326972262973268658623235832533765496401602814921235617328959925451848031431944006620861428283340918212764035019269848744920273532338487086136339981099225259660114508151099723606192363162835423550143678892692773027188289218756886406742270262688896903198377972266489366331610336964254861238468028469020870467001386936404910803388508567675030309967294306852493046176515580494147572765319550609838534478179973123901030200122726559801694151234021492670662559729554134226325322634896911216469494478069210172053278311401534489582577006909557444334535168571440708459487148882470702265851797799668623965057707564180009444838847562274581468583776223018870348692341046380139638014923536787171065121224751551418395794663407062649749085774585038744987488126378409708988171551881009096017459551332117918077334529274620057174930102101312641051068630047012036542696108669676057855637759233652593269529271480201451504662086142370582098751632198996426072129302443962859022078691598824243298072035437347119102663264731838669477202901332916471376164866179760246254368281252606233912724083981406188388862340036903626291322636100320380002800817723007826234549365551887632718217006771685018019113968316868284554157441853052175079497054943734190623278828024648985503914101981377184772381225953104796098729140092069883904483901978944221004210329511443488921105357167526264122167356178476578249982189376509180861287079307607355154849781895667811014445249380747204019076473294874081528966158931888255671060548062721307390649230546808853350964141505447447256569073014511718002638398801339070950747970712148038819275438450933657334221464089144193911564491290695408177765515010628839549788323486927312263895861084260938914058776580591756535964806898568295648600701611527486284213865955953546843132683929228393641711741911562710503395835333624424212547665580174784969027758679781027691413953036624743684340505832176423835485439333277491704642870453561722545554754104020282037590502111459427696481154946145024295383804362265648921918730739725652948241176740084274848681262530637256517548951753902060852881075948713466250862537397919070843703567238000860461599342006707015710187428450175363102237492023171427115912144177797309989700577628494111001202415165308735467881892956819146749988874687225178416450162573388495438669708670173489115253214301861637897321099629138878026702388758477935479141847849322118615186995021936340909745046063353494211818313512500687097413063700647918568485187168280360423236324557584850569523626631304082619148727822122555707587162395320405221613218261768698775230081684900382597802298810597478620641736259459984611616900094158131540001213597594829325366948261912805024336592498165876984085058225590948094228845830417672769283442351891895454643067723174499463390049627731772264566971144414237636803816910925276068502943965509545924447562567610920416340116870781449282081139378653287139812704733320901871959775564878032973500272774801622955883586485225093393230135971447277648562464969707202301585357765132002887182140267435302746673473016907744828828144435158425714234450624200695573974732459308464825519044170837231463747306020216332948880961122258997648198290485133420004184772496614637823274683986649111624475715989173730094632726202475573456596377631199270506833852915935481754074209989733562400813375513966319844347802555597640587419094978874571287342363590588332730665673344346989955704303345632784179198850227185583619159785873872523217265076186625436832716092225986921054190617109292146572028144595497786635336564004909104595043347663048570875143627891504995912401965743548510993957844162644765481699432824666379465094201494514509726849297960445794665349388841838600219085151348282549624682425778900193270803206161407036109226032210526061411124184323390676016854442214603285825915015806184966541453857139197609128723755612636952104825445697685978074664150527999418655120420607038377136304968830007789556641575168366942896546865378104360803857114233267691918811034108539450927148519748132230868506321246420110728537930838224555765475367966267908179049331342809854076772830774066727483095132087682513324625315910953325537346815522785774247158217973297499026302655904146966793684092969400774766802516426322693280749193861708332417381690374685896241165541929182735897668267216291905620922424301379108030055314822267427850494738230654489624924726570786335179696513015062231965152100548192949821992498038107196023391581015374247249428171372744249382387159322810879145771353952901558153683866535638846376393651664151882256419529924626260513665476677484869801830332853091846552841446459864546969553883420790258015907147152292690279657843070864198098782225463020359373627236652814291343793502779318419682022894110453492540201931731958012660095876906723228801168885972349449374022802986467745898323465767279681313279424166874927579304516234568994114436911811807085818399576274334011107899552355502781374591468666587756083254861070127277884527087840259622143980647908072396707152381643839336558892459528390408197433480557047673464536894791678082606000029216768599339659421900183266087789607868155996730409340077682666318891844759308195270713173665675492516070699456340553694935718202761538308993571341384852679311859840587395144275858315215637067819664695484271194553858940396644412151026301827661382834501705752990602196966336848841208232818496599277251187071045869840978712965802510562393751351891894801632507517622515852821851159162785637825903795063922412372107712098687735928106202330690715747164556435352954453031476469736568948955446505307776849059809581976433852877075295251464804736793951517169940704643727768632762466374706512777849636553949568316591444194841444552683772719170403841809119246452535599346854952468794405927560814749299208519682779755634812872822770209056322186875249291621379117176954994160988730372820266704671450407342047643903745627002756851754046108113462453256863365524116519413015398577904434275682237314743661442470924920393348529540913623917351680181724821987489058798538854950205454921851805371719017199440765645141383162481946263627400170642801877259176613244201589560984282506641892441478444141957105226264713408910698571137923438610760505602862819495008447348449270681648135164337537173213369565791299959558345543568323955868716496098621192491063207833266287311451867835220405355406098768699187293725382673363514554184937563451073851343106513856174477201162351555435659341799517190905782236139100645304749499939752214493920145558279672603734236032128524020265538098197485656802355077662016238139660290170480737877917710742266843815740361617115809111196933792790441882767717702461524517099040551105269985142990880850889166228500232211951850569785697145877077170758898036200717338021241065560606413338198469020698044653227779872035149597004090092524780882719336641275344200294757325245854746656262509681016581111632272964980650334602484564928909414865523590714036734113893519233295621418723154855434409367761335658830417115920638477030402018697162972895606249143790243466345449659701181873908315458650051881352787077258882134837278474337831778042564312880383300554588921948942792148825777602600373052051975551875340118311431477868813698292140725269737830965564477625179780464081633383331863115545442522353444448115731446046086046512389886016501697219720657750636003676897630000926452410552866974484487131330735832623720178817916504635835059579498466691996922058862177079992637497885532019404283651546943302540279722263203739444964118420408399149127063629314682162375359467060027780232377240229194632277281317361741781881261801075624292207147049287894601676029498338360955126008400830297856590992530064287109276710266908335751407192381330691784681330866704056397587738681806043378707441461947912320400451173589097907576354856681976459444956000655634733749983900644790694925488569804669246693298549973800616418130147752950257189414191936609504974136378160548140703080245719671222761716852217174479142120209842830903923814912823801529312501590967230579083209706818532477111732401969941950671198342711793036765677528888080212196183618696515949599095227217316940720572379888045541092733227209541944729385574090159663591080503500902492145298195195349328993768284055453199146051216411422512298926257074010448172452584799131494320716982682010824969531726557961484875964884461708476665373518957833473772629855325849279674586381131224853696930293261785530825694728818165675213669575994934717279074868517561624662953076033353362634990147574891944022065648525657774565493825376109962293096268359039818388502096393334963041499039188091408699634682147786400557989073358987025337801614616571128142390535993864681359909361835178705612354022683191236180840088285739804689760223039524561032783903830434595901672039938648082965056756508608791249092122203771823443946033648120263432522738716197868090108836497400571467684308072250517741695260508511568841122877657042699159790139878255466390441126492466501695238895417255867609533198568776216244869711699019454194478451439499962537096396925190338138387893703730922478335830134019757508781293596249489415579132615209643587212096695338171248411580861193701712659652726226783753957527826299115508939049069573375520314804967636056283149236227777866473034047202857727247351551633916458785346238011945642839706434746876938881005828420175099524813934981032640702260214709944231037780870210562892756139807558263913244934275630184772067052644539859172905748328042052526827800825907110350438040137043088534505619609730539922671379920787827935930059810310106187744519058604656890521265451880094569776953035244069485450942037398589913280918165331444280508596251535705554506985372813331505144822285945299481598071042087791571938507591213792079445540096701015275614309428236179883031474691466019046202317830915999674518872039302209596950403167161629325549737985015056999886163799270778454795892946892287848823021083457221006540806951979511886037653668556619773585798151500814937804727089990749938173145577741006636903062866933308062685584613044105853964993234950189632433829282489457704016617998165278320886884775832879618468652227606221555393800365178951980868671384757218743884705831280489879010470971456438956785313499683269476785427191057620657811667202255322060345683602540774271508018032175069631065325839819286377176150727485260963257021200881060593899322746258565195520345590931116402012961457093468989716879061114784760999212784363812862072269518321557811981024833834620539579899184584356593116449104533438572046425364161084258235231445416824017700652633053378115219330227916746885987741523621802696730919121442416710784086780223058814678003846472696384876564073722039770169918101808630314374319991431128482957402930969468885934098852715538922824086340203631805528248448107017949020677084510713978633008910456129840271963882075548295981835175278081311282816843794668536248733618122686920142183511577671149745953977327355283319595284094549782317320899409537770393636969870171366308411106547618616642454853795479755337472601140123137829514373112283494483248769542399006570882804619595479032241127131040220924516385268434216909748653339698133898031942293976482834688595070528040579602122511684847774902734458596941375515175460406389167641317916469204593681698256965376875267608554014185623469913191909365085950625562940008263958050167126511402245829799399790348435397001139238560717918396087538216041587245535362893452954694857018402245916448870547387864352373170972116583760055036381527349194990067657628533421200787669879364118421099581666917346393463704578554437618300601552870635854744534978433097486519838619684082823656970058844133033324018186404061022869508920752010149873450522034794772569151364427258567595867993476239358047399825842826030530822025765581116458180872686869128376153663639513776163038530593267057968582072351359756257906396569308431081063986308178896201658122382344358668684115690501893830186914519948009698486773860042965771293494267779185089638030339244378098373868415879165214714027234559521415169848925758145368046914925063945070429819196192884992400703104679912520448022367880895555406274056940254762382039906603665743993903207611725158777215330816615193467420653371693895082842144383767694123537126596747649493363047192539210127696559274401464126770933447307177956661993617807499038698491778655662348725337134872022236503096526043476568222164326273256038861563405566488237635607609357863960836046858908110338416766834423536035829461010858032995041138276658675397343860123511109236888384728508901493193236359018096559962781042297632428819751327101806133741402734079395625461082357390400728077111800063004015080339259405322243713463946063631328566403041338576126080789667096352513535954078947445957053377574788061564127376992826643612583169789197061414745993983969084452591487888259370153152468640130227052607985326971515055888471258771298309641175619492128370527283029740801708544912465770250212563694810518081708274521464335882792907862771172260581986636476838378222280856385564759167029550182755023361944240298430828072862662344744462889432580819116862579780939523186673569317207704091853716881095887141269726960584868855321410084582187037981380649143661262254724421468731820352216078903577222533336895213783866057635718471434180836683539998461099695231245173269584346257165553389515135347077846819401241900293354027770150145804058386827451738254316445966767979122079957770684954968555766502741971710507778931640382552891743720900625480498743504511047582722844529208852550548422525905342758878339601228308031000590660138069281222458704839830046924172401629271963288798948747355818390360674865688824549501696459900529642578430699657284846086611614179184358459124663686790059044599556735525273775514646697162914381105930490624486449291081093861897465861858518027120478138701934158450079861522147594757667445094520336567780990511508204162154439000814888584442700700401471348192334305397601607931202456944869620928816090011732010198709082409059369266504976191947927010676734988194431809054728186188255364327141976986370093513302562893716474273018994101083253908037856755667575374273737918128970199207657693553950705630004187369125035735276385018014619043330549448959892461056142289816349734024530138207010827161059639057980845579441440885792050182880875202707582992755845531958387201267513387170217924309044709789769746752206072508655380704583869345588724707735784444596758589313760463219815419220663498235295526087962454328506940456265082392731768851743416768691019302378207082213182958044630796127531950611129150767532149329266666764707796770584461663625623811617696928874345974083209777920344416910319752267475345277813183498197801598836715939495136816701249044952773805062621389049554928656319981270744259292780839206749163950223316602592291557888815049833993634753629222436073154892962469684354794140905589838023350965327130124894825259189712775248696589595547576307926160018344004130609049404317407131181061202278033434675836398460545190010552876370560431733470321264347204058774879347871594257030024034381002668238851446692856591657426903514083053433280870876511702620284223207085621518539010037529410469939606669647933272854380718190726614258726626184594165206581357867028732662524767771207972076201569533582329424304787345787311879123002961713155670460014721975849157990500315122511024310524293247733570331588477131689309758111108260394770437185693666325702312914300195175567141917322416036562774784948607210816661627026134391373293166953898871807210672500707397613797145895165838589654148895757472211386647578412444749849582429529272316622365580554886269481874667176272721073767790027622016048079064143189566566356971420929052969215266710160818177515408137091679333239623854030058675404770359210647968391818316125504494378885967304944724725831476766683292502030947620069071022849415285188340295412225841261345506134883868324100696305869666678535262733428827220083244134490490129459917783579260212826398916486202740405434452282054908004659935465853569368757222344489997269985937413297103144912685013543347282238114209457708685531985089600121382337196121260845493633606773477500960492252722215692741632074847546822568668129035209818810254157574328800909767451331885702541843650641403180551877010378539749576022582999938799140394528706702119697383418199729231891322034065672462626257157072607759813398982213359389678212002874777646122219644256871859239425097189154587460514946781662878769572618726110204992660324697835420902482640714913553974092385760722822849648497101656809381863364959573809750481944184223477129761312332314954420295271853185734110219555598988281424857419237048030048417433957549150847505741826697597981878678715691253162663327806249358588373354599710025669027166632059351642225266564408163810777413548812402127821348605416792691576892841838318744625586568448053344419459161991081817305250880354241590632914321350606592322569678149246530628156446001809061261282345122475129565586742363273204582970888221557335642112593152959462750989927872107229438620151177985879275839255460862779583311695012730396426545923208225279935272471813314863569223808228449234828158598817402788239504658593360879226517153333747192689321229780674518598545594841799751445744127625680013367310310481620551847325192701170528959013614423172442532266768950354523494841307172122457941076756333450934387384484336406387307096837788771509525896953247437195768501780796128523271679753935996188041478373111413978421973660108641575086632805154150502875220674315268576124423075235206127551566134230615265855859109858093407171451447886269504740396624887220346011056895481130247765297973732030921066660616944788486745393886105277909325901019125472186399081223274185476741184517042104772065082761231297543333125161141495427934787322502362490869150509606064492871529456162070383568333791548771625685500209036921876761826033883905815941614910918815240976595428218507848852413971542631746702283983889023348973383845410555279701880824063964005540340240425003205248569041769851731117642529017280907180567910894191072802765454132398321217659851777292659995087670056557761133544436798212715873975972498431932181743064185003363530484358403694184863095053516819170238415550969454999149050310238241551158705389201580756838754450922160423333145312300886174922076684967405457436968426355778972886756950159922715782599168669144969808824139082037344769702125628062154396337112675912996590220712487833427772930835546938590198204017171520361056729522097138284073541287951584000973785650964754575640978694311199796488074736652197627727361668439712752800759384820468409117178792185500393076725329354337991541350654589080449917152690821320022766883453410700791619236092418041050843367393736421248135150089937244838185709632129039578077997627409012129895306797581485970362769365208750217045908698416004513024861817095568194363514051982585573916268606129668622956476700367533581021410692138804612130145470677866400863352128299316327399952425558288097128998821557678167572399153703499596083429511333508037498962545128263109396760758252571068831198386365728068203207806059949242813361032825879030969070686831719147307065171694072663156820596184771929209571855881172212636367554170640846930023607384828518429866220512759326643304795934160085333915389097763910496649654623453592541943275868477323562864834491949771171266785152411531113069464417182333051130637245417918442806599571752173342915743267161064564490936377054431523675161717987093600518203860934236166446306337956330156789013021391083085504090465300112298217930910253034729351243565694543087697316116987058172257449723584151913468466696700297706131940533392873692712179730591991566956260743696756967852633933186362840400811729511149785017029719053105863120407273137045359976574451194655575602819720572429660210773085585319298590329488459813536979137713506545618390217257500577255666435208323240602438325593463390402993512616940724864112891599473594409248314306243244459667948936412120435758209296952865511672408919885839411779899782043530954948338677005325806822266732152517725261000392566252149143448494244192363338148602642822067247903095580529421648443391888669853777131584531297564400381638195995859697115094600127402832557322105500465175309466886947970198979654439531325006043514480861873010542363557016532891743845624037859157280546272809086334147916137452415449491679389341547294470174027741590162735589865152772596169868404548777327252546427062212784879302149700224598530648320338231942912838021231672266587261229977372826281365788701019019457376056795640966710875683189434393604496112055239007062247209303468635552593666403162390606967255813945071404351386298041487167316029688784806896296880622210492936541690113768708063278786806492644274354040363203632488914458581819152033805575966754981331182427036990776868251564563651930582448925640939188582078352995003669716374191592291216576549357205394692300639807481054747505462495807742798156652242207588947867405768891814236428400638826790132048806800712189438702849540086074117878985993187851055099310764544130181314360538912317000444623125299548299199950828860072905391691114750325100188076268694299249701514579760691270548192319824891646389917131291112800188935527908896013489511017364558526214487246688301332680753368371519705134282240693503033055110516753066764271491640809080532769412220804714595586733438305449544724789255419942627290880819579851012648928140619570449255695886252097970599417473526580746758972474899295573578253904943199789131497143308178036211692367028451512700784855312090258313918457443639606422566571346511658401243349510646118756728366837817625353388058507616331370419500538558307149293468885103385761242790714810957490641191793016587918445310331718543644179509642064138789587269053855758189423553066843576205562247252321939193639192133119641519419878863326121138861052609151033834585956657151082699025163010428758066122545965590083180737287668251318057469813372021620092553475102799522667986891022603219949033709841687377308126560645734113695086155291076975329037252420057095792554694353921610693832833770169345733044726506085546492796575814340123387606058737802711804965852393785766567202641079710742481886984467476422943697488305134806505477785347915057281559077782977571097588276793696705566335520282785044255577457867060221807345161899741275706144821436778125676229489821287650548285233395008660812334703940290026672716862272409696605403059367682250801347053211205905534792668013986372244778335139880328828638405303427112819942268430403787570382004017404379371373956197087728906518209188598929142328672500413133551875414602207558158303516649396655295459957646337551357412537564034305043978049593705215335945862709949937480203742900267595485914859349009801437603185242910281307299517304234787989372351335935653580871380427501324011360432243448494161204047966577035906208750703048507467677087796616342155575674641607989207096360744716593427240914812749465082107718511055837563066039366053911290553929979947775370389216970553936286271747700514715136810118876870127887913968676688518655736164516193449652404624466218739793065587953448884638366307387077594395251359240734704850072083096427864332528621905441962797521336513965624889671733088615274810329574711507428960339126830144537502752880163393611415655492358785787873563680199528994763580158672277144057351466382510718877516694301816058241060237206831564208752451955700620279646929797356414264653653177731662807676146577258981357143191135233838025708469315792538321196152960979576349691331219077202822893682162877873034149505441820353178486439439989246493660316674172862902150406041717458247238450937928628433348966843615397441804067106439508834493693945520699872048821950425006632105404995519780749635100203610082397959836426158617261444771192551293284902236602246785613928212115775344301395607879168679603001627603000552816743150296827968593177194341343712079948580803082961205277120133326910590657121291723520847443109307917901867750019287876911960534377792272633528263650911520179582471572011796086872357586196160247206986516650335228391091311703095289709116517734530772631806356404147893039446656080671344823898930420929511545293948091927316929708865914207956475255839460560765342930042600091848104872410218633167211809273749379016257582972110860516888719421111303056367658396063986644340255502561432388284956798638124323088360884024180570127323449788284273745908073712032603148356199142956464522101825241810223664978972448458068940515741374311642896369968310056721042216201418736334398447709856493108241093192092806663164831362462046585667357675960619738879671682060385025654783039367144808704955142248016959468576719029444882950057131656516397459157162654026382261233279206518638798823190130138981227736311734188832439172763443005512228926548268459357712535942580134525198441471367808453691570286558573007741467269071179989448198868951247934480982321565259870293119754689978106741677964635720695028888792162377352098664961654927176273381254975585286183625200598442214644720269262580321342073259581370214893229405308195633188228980137484345382984461146762854690364857402204432307821631620771358852924397939422059352994818370610558971382539668780485366230305826473797390590720667066840100595642095899235148529568595359663454946339421506723901974817544895029299275134982179285027853827357931101402843248240723068895421201340358040725791427155084549678464159275742598051185490917667902033008142169584387395209702262128133114161263187851094381752159041555311280493860140792866224815075933242706286066310687967853319152276269906166519740633110851459222957140601841469026089813217385572313812534804293712065979791810531596545667582877491944918569555215226807276093457487685383473728072995059387214051402038896848990954090591200094831430828428793392982514230472224046878645034886078838337845651997671758938491847910604651027594049116762021177874893534397191129952624639161552497403900290633306446878877843833767229382670975659921065813240645154029797429593433032042345603704887156096613212583111978933932922177864851335279914278163804832232546354771801392508415581601649161610838419819976879610445790188815084412272600105406088349302781161570489684937671810371183061170904347113916119382961938573421532578508058342392366126118729837471224002742528706414126247023572480102966485599858185654901348934236149310904347857908307726599691367776131033156359533010818057089342652582577854766272865856904388343388637317017622757636834641504268664179579515622832376440771817101349566364744442689972154203053500965997935838797172645503187897252195036074364600933032544376439653997814939324678633747306655422410378446208122066892648954275184048895661542671083912556144502136997805168654347346123219086952778940034886605732434396167089520351212317386644330126299737144333714047529136441422831500239045873825026687310716550052436626957259330638251604055197849656982357097150720350199751219522134910145739100873799675124689549695506380596913389374342000415085325225946222246325460722239535380287055508106507434089180396391510847332982607631912644877911558150343473736887480528114368668802853178727684633050106081067356134048746965288336021709140103706007978583045611063266883462775512440356645826829685318849011823258751591746084789254652207782773112146782030130764448363105918254574073224532694281768607413553942250317817536521363213280393667755049128315332206738357661908215204286719020778716425591294756170287637351443949664660746086878277050813588764531827514967130391958762357780645565988431792735482676055313711462072709862109743423245920133298288261195372270191561207986286531980738125836355456642314345937718370209947906680914163616930096532982984228555894038501652253358672432645645907268998111078943522906978231026585208473579484837671868750600222277287821943150312373334918624011445800492956807839828433015736893943469013843795308166911191602967173525793563284514334608420516687353411748513280115537486649163961416218536694826239632043318822843064726928642224409542098488518981162682521015425416166477203957278436395138407298916733692440978013692824507492522964643185453400851842754169435642437671058671998502038918485475320337852380146780451456554364136045311306687390051232564088656725584403646899019750772509202545945871491420915149196022942508549757187380256858761900008231574997697535928105477551587091310842382868805670674344099172555063153073918109882838358266905855811161082998196410273372684164682550921091646237032539528711241963561208537280238532903593697750245871489609038198750257575982439931922223420502427485398629711918615282646002230733532360447901411509935271585833958048134025889994416262951802261693352989329650149272027352983504380053828470676931551752336659098263017389103545832966694769489173326698009505643877748533282370860485433860256216846778588896583860273501144440170451357476075929079669300192377443792764951356660678250967714902233362543559068696028431796357317740059682382176858608267222314219056492468577212436008444387541765332299373010895287223768450770283033732073287496510703630082707621726323691836982501472028748749747558231950095748467191464345421649165776477390756444776966753350450718127032143471760113579565455234016436707439721022585056313171688026178419314311861651799640040301567666581986054761108490503328711743904302125632866745772359290030024822759259325141286965696668103025797818151820527558729833330829457098696829135520439222323843731810803163511381207326111502679234958050546794874282858941934797564895021860170752251934028939629256426018158410452599645231845506932513262762326422254983580367082422364620863494334758148569774634164423782559785616513423004886847684429347493329274331905143743068789173988036817567988315141381463989289578939289084057334699885689654681635711988618959696536551511604676759619526843595878209036263113532070840984974236815566598787578255762947351408802064957341805127100067683869911851114773275489699036334830079626497686213803588235243163076146531854752560891933523857501659454817568159729212208970242851681010436434780830663379595062660158737588048167160147404944331036966944602382619064239501218702086092826842582801747844417226661341535048961315508617281396118588088251171925928792822594851728140764616137086135885676796872578983787186009855427305071811028904929827888136537737193838132976660711880004748565876732908297541066163129817770020235148819611243346848163870078122814354109649803754398954446664196763509925947039228144292912181584952358924546314917716664651801626438989066817233441404384982956829689111135571606596997191431526785365925604294387538207965878870377177180065967071350951164760637304262362131256563946640830392000256135042759637197133508381219897507363920697594223575554937603993913267966906958795192692722723617323439211503327758751964239213025728322782199072133842763132807759745291652331821375242998298544854928114691501782782322131819358040749993320544972563994274357576329429623710045318093086213660555565131992121201743580377144517880333816442290929540261542212127804866576884294484756137732324071705519401363913887300359479258530096654842646721522675346322599240950688050696578817390498655953221095458135279125123826952881140122778134815620925686762486512921672752508585368706690058801438323445287232433028024324905138320132899541032653113742607060432747941067478386553401324621511792115723908204531740215768957544311732516834400163169906536635134293848888495521685040157399117464944285519185812698228171494586471855836014136719422599082405712021939848866916378227321484059142365725723618673034512387856002241497544598249268814211859036253932408376189920651898264899109632832849295034705574889164077741701117396901770886908831372833734820841855712707419212300900592188846821971760663245984386687124149159593303446176565231007938218720422802867299384359663570064886095526429550668838326302491968461586869426469817031518747316413739709840686392412524247775190096649261307765274164500198707794856183852430283114960183427779950048668343846149848683302417413220408949490933172681662238212141670889272300737875166045931807584964698272979174588878199342776313838239061503585330575905016797157602121273325236123802707381464055964618032582705484237440909693507175359647767863236199733767650573039206399573323713228355704240336801741193576927134309920749627449566968407475201628397428002667579235348341735741213087336380300780913028928737594444386150612385057149939846918123692396266843510686995078631200712953397446411186245980310027240849431487885708183755442254895590879443898993135149249385146614474140749099863758607651077729714563834586062515295868133291537557484773343259320106035277905685731023499745921566355719183980055151625837558368023755860153507207549647901792651064024341430881144038089401986025252828402442033166993437649774448420906346284020667447426284527192098200174687964860679288040511713461569874206081409757982182961714870164909206157441044320783030111692388066808434123438910525942196366637875636968394428426406903615972093742633989166658801140554478093497834098724313243677557197247843968405990911640976483207739228735254346673585793534925947961412073203089609164116978859697252488648511426631976496243609191834762433628352923783862357067055262222016883777493030876038139624647535389192856371384990058780561114811054534710215181836466830206715950477368958873219310795455130133713381577731366218166383837514733367581347372363932273431080435110603345823348121469784195196802795157727465060471015548118018688242284193891151829451379786865435076912372598266082950334377580088814393451168257872589186056982794899947380510599614728487216347228110641161251211123854127840110547443710128443218942668497217636258326670607538847705095836700112597196283876830800519635515084554495821408999108991231628091545741467831968094822066005533494274507735997620468547412572960586227093085643109191147898474958826338834444697717170363671260613352265746750934582756396721100828312870911753157419777961300808878347804140743983658879421544785041259052429594817028747878261340324781411383246898557106847239200672922777219966656533486892174799657508622502130610063531476775289253579650662446202021263819719007406386165580425774080267476512146358826676780567386953229332472269048870579077040124118688907894842750063729592468245967771323633803447271055382480846824975490775619107597218473146200290220170249250348016046835098080485908993503578211178565311307235447702123947313464141728506190057151899410535866939298600115484367972927250930646291481474862719194251132531980724667602606380417030226784158735166661592402540666500556653605999446003642501959587591266988273431158411057616589505395808937455008202641229486377420228964638917828456562710584966983823288176732672424895783381280605756639675620768347262526910269436548139452791058250980614499782705869282588442095798686819020723458862113428477195365866784489380302869617486369504774805184917110787719761655110897475202532048897931099376199949932170054994879311952281008572571190645186549286142013713919539290320344559709308913753153194824907199630720136839206549129362796902713733194370025617939104128809134328476564485714797034054112129599721834710989672015704613820498761294160832382461644160092641185337847189584940779461687521567292716375027038876404501947160728713364572109825671927178642172616384859883214820163466684741535162514767818105637957867517178416833326821772462612761833462107242459998776482054304572233173218469446348866769558090287535703361849304038264036830232965919113632294473516432478570839646267746673314745638588944247533929673015490633489752383564309296412401398709306001391315897957459140805374765628906990594656134016327689615864574280428186878882597922976885142784798148909399581301131161814947323366741321694712962341049218798601285602725159233344055175609294362704686711851715375089821476002414919951393367422819991624522149150948684529149638456089862553774182293966257819063662104007534087205406743619768680187093356202439485014761444711620846338517773043506864825564820214358933304766064338436092241907585106674025897839448494281042181031856394890157994544300225131538192884377261645094567863746162084235537549236368645845375399277549279546641111508333789646181354648630772230030817506628180863415496860483264630234919034309777335348502123919556842273123712661622142680775177416998872238908181034018327283980555957371348290331459599254659847205524054525003819261676021149424720941391610280833162750624408791955538735590216206433224414249205422775592191339108301862328386172668451001166706535069167480962963070985435039569183234235997525306602542431757520292950519578437392063954633733084850618089451612234186966611098427627720565000221321611463952933976807796884647112678924624279515341425377766005907391461520855995747128975874025803749373544890280629041389032816992676150342745006461071091862051229349782421301352549842520324869409444989259514580021440568196660796663517348141641954301850718717247300742797540000200688410315943504217694755559654508569911268314835447438190887049712467310199242455752915890501989824642578177194610749416548549661523865839303316334135367829909466048763211479630815150514028121214337637822234783481718840563631023455516419733724674029135214616324265398898356663786417639667808219427202181267009839781113624662790055725859748901510346649122421653602300688318952309399889068397559705174516440222899153199225132549246325442347965805903313470020273280586722697488771972005096346464007684256083785659269958225001527816129824652277053681025920667884856158998178085807633305676582319707051908135241719434071359966175378423745265341531415445795839319172139819920998644063670553337046147391346271001960410106210836913019186061981231173022838788270001868903159516471291844079897905441044190044216449686940071812069912259446231366692411670848998660039528215856502962899988555679830191414930203658722535032265191026590986270630112421897779504659914644325250155957717506816536511904937460078028471501892971388808008198439350395703524801016811864787909406551129022089320952489881119454126404567964992708140056124125185725515650259601118156484354412707973893010603501169319251531723896232899612234969287963909462783027812612040749051914013611140564115974143249767190060530615858484893396474747579575417762128817675135885480070071545776404543068067762666667175712644099685468190602084007698526559836026983333345049078150006131802041203023229533979206279155705365250976515260776233718977117134191707195291126538061174969643392883064606457546825302096835109693324048500048889009897952599145691267941362602332952815926956933115418610737701249239321551153096242269309126784774099614650521842870102667212890058076308281259322340904076048273685102968027888738112172628375958791503260891225872989311005880527104710890802988602915377477185592253814170388150956848601145163541136199226015836791892490610196549248875761369644084867195331670134566254770376006602790459472338347258919212923142302483076412315676656596364679701798351220742245373859080449409026745019936595485453193542924832458424038504062122510087183355935505196125373106709647224767492040682457464564887599698109489899810050618740815592812057223569376073463965404343399928803764810552647773990127109238329681577334963840899666604035517217255299551954843456993041938740174779201445015076304358350633100271850326100548087760463760615316442186340439582083712202273821471287537782350518371037464662821477013782314637660570814924937311904846106517385658511820179711431608358416607623493070345689546141391587110186363002215869647462244456103539678605568570572908076155935772798426433650342648978048883208361110586188472469500908964983855505974177158167248992854155226700956882742173065513309137737045060811117137957194788817589843103128704766200941351091472565094037377748140064274832033594665818223773706806940444870768340743092987891476215322473877165560094981104655450363028846503056380699774002129760271089247750547758142291084112670935209658543682755341818031232550288878150189536577664568183704926266260562970849978912951543453038380359795192929088892429298273982416635009943864157302267681770786826224077192981856071260606330545396435024403336482615512861095529991926811316627520644196678953784320380552502521276831497633718157345570642335348209052532854182340886455841854325278998724043013983422854805378116774918342420359046399272317289594694756579961492350920806723894072139243842817959410739271553397558180909096996072262558026337707704224325506289176247322276661045726013580199394080638376168561281826146307235483314655852936010082097360159728515506982046851368626476914453263434526281298838867787389082179396284892555135360088346071239823746040253068073419656732563014986649205244279964077494705324484572970369542119154782010477049866797881314015769532007749772202138877206152612865277250811629170217779936597058018596137197128637298462743631373066122952885996625645142332007614217980157420792028289979790967925463800422658699856300763672512895819450149534290908565317025083781069157298875014405219663398776938758471284683238048185071789349926550596225054957204171310788357490475131421966647947921838633946467743256011725641481959289892863806048292267792624251997293647953388168480618248578401447351798041593876213657382974332345534806320112220453776686571346972005932690024413456710011219909991811754467696229285726658740189027455018930778550977434499152047693525916272111793306628653046255180775975425016156856579156251065930454536619585461344747876086700976659424590695674900917810395730433394533954006015159600476644186846449868736842202040942096676046485474085591478916036232839751858563919123315873511784360927741129766919198663069693384404960414370753655661085007372568843782296804290430237925849474145240126582732454255202060659843980506629265160349837218966387831001695152811037683278424907453719579303305333284848307685528716351454216889471039391137700302496126979302406580687236801023693823436846042106527548434006863099056852657388065949096141565388781100447494152774975808379226625529947099773684552089288890110700419919375987243912177450020202951475254048929498506673337376173728995415020814252336224505099890041969753762251510853735531749690744799715362686212137788864380574726130576205467625919610223851304606943676474509850584832986173331702723312101463811859909417090993824496455123149920502114285541213558918845992678506475554492708916035092961572472894543177318710281310220370145815808440284376836108866250986551812258454532688764094263425867901850116111207505074812244571451438426849643410083507122113996793383374552711963448221348613964298670353837108473666700681344597018646526083898244539309950964701575748079506565175189159200838001496330557626793898948334017491066469541132547014058116558656642672050559199861784649950557876453965555824451219723001160329009434080662460493969225544061777333159150405155860663387724184134246106497981817215869940576489145993581119067137810342505135123426710430363538686092566410928413188330722157421171721418910963011223160789742574506886230873073563188222297406526319852039731486123129908118179170821280558651973332737791184992792047667684718673951835960481234498474876532151943661911075539715823144704968678734200035017813640208499107025625221807035494695721284398345397956796787055137223448923599611173408808927728443540151043305813807495118765415511245025993221877826070947652135021107176546519745999588913948386718413166085052276828601574659276731552633414678729370824190604361236355177437635611933611257198138961497772172061905970611242866929216686868270272231315170553301163552736241157933162120855131318900785712610186935669909061747697545068009957307167142356990587710202601552575797572438945550003158509967083825468829149205212489691609544992850046118266778567263945239840714107961787003529808315673944116377538465367843206238932822631151657918194033040915195263244153499087696044865120558655222548341711362686344480932394635131435192824255834619364883233016919453570497324051104619312448396276113873857553443201206381453794589309142297257493427853933977275432070773721508840032668475471918577396325336454294278113984322746658793622376182901024740533816548177929271619093374061265556599008460715560347198157140433039359304712299616666742925327177149610610087403842311764113360775682960085375952093468318235189208000336812704817391265101283091102287631997540822050864328563551406956282724523370019450098867049941429929739709898358421215493749492279921763301650141176587598886829678092618338517661253382929866181628675384282210870256042324090260171512582953086387397857235990601553733499909301382317481997744512738399619219739223418227551628331259840453505178247547438946101842515801841287856832089898694945007468860491695232218688068200090184629027629328335008538877790806986600278106431519125838408316787463923791708446266543214436296702424193093896413309098705516543837786192906532956982682134783045755356897281009433577609593586214671977906091240081861656687177613353541770293449203324314129151947987627188267362924243191769469755825510495327850657103393518140996785325386926723399870554821849075192138150262563455325271564775854705375461904657754751215043530573774477974809446796447116878802454775182269626835266230303973629887250512209807398621014125899135241679643992602207991750046536341655223181391227797964211222598979638433223101283152055296203629390238013369689824300240758931935887999599050560619331171456693916325045530601626370345064568851523078840569187594599124923263028845657179952830916346004111734694931560156076886096971634811650687815132746671256012892817286173752142307863176355676134300920273520914042579686873951730674567707237087825036367151833460053564839267122506766751045647486566692283478749856910634871964780427220403778790840532435403130935855226585164720016636262305909963529208510266437503197488163886627570728284892484006770261607845232838178259619364386413834480381978986651256510157599674040829659180895528035306269744432735831100550297132178774563083741349017982237774050329769743283553713490266142865430161528504692135908257832242963535642831821599943877282926107937529414846609989050035540044218229642008184908453765671275128801497318901376315197207392955532108058529394971870160344002223048623435844503364328599343975267919513784181951763826468286835461108508890347026171734781967734097139548583044300273584779353715024021724660713978550935454688475654208389131270541999265305807153270508006269970607357700287371787417662335691107005356062149377130828166499622733236325841919961855800430200608957139065539831601324448157047626778938358869845556551200246922317669668048789358393415001438855227543209958975857192275436312925050831839666390205755323118810357345493439440482547790290283508622029843890481271973025736574697619332730068251281656809776145423859921686582469657906936067306424979254131733604071245320456515905969498264279671770694150657926717491475814652431531621746565607230571722787543673174401587838562125328915328741754030210126405078562155355893312372520413838497049962426623361574546080057138271508400365958593313398538175751200898612461063901334689694108919716465824202691469467207694278545286881070400653050493799027374392651187614668802844788127330560219419815403837020266617784801488356874534072259526022861675940691692995087689105525482935591593227281078377588741410108482989877235472182372430029624251804653088287937905069775636381444214919298917369634715858318903166086234430066254773719384628518744567870367764088609256038540726510328244818246687298770308090369586490206646997908470948275502801528597764852684900558722747733022662256224709043012756320876901634413272055377108015844039640172180568790915933568002258539729790981315167265596828191645339403118193040153298178814402956434421078309443518087164979125217973375347185991845560912105433235654340250041100100843179200107152302154005838637660447089838637226599203535617781995973372874838827169904706279398761031130906980404880536005421308562176501990840734936778631864661080950369701369320806534084696258290824255516566652257557550618062025445382826109686289747948907994588432827640689287586990502498480991037515185910600293414703737208512365112331699885954378272798662675605437560774963753334711979937395939261446533813201361645037833778539899527074242769554499131244042127943632555642116576090737624390678432297767924014724985081820101254747807917323347988978055331735472601968359655024291552566617923011705487765062750257802082672523444038272571588316683920916413569007652627974939994852727563244073338942724618604874265788115593819540492404599593697189855763901006684776931952349962303073500583846273408326025604777086696980898107745804732837043538134084880495076266749254990380800588830597885895043301554454832054082953205982150911698736809349517709508622675620897610231549655144243892589296011513874790785296418969707170527802116401305051849401387517225559961963220064865804052431775714848163786021429597523677620033637850380656295436135117250990261883605675499062080922424242080112695470796719071038319017087866473899261251455860167463577628324544288645772980160450062544171849057886002186499380320413400248379055606434621674945574087020726455498698326982925911405394859974433450323382767589092532317257912136115103213068199368596215355049459804652458199905534590514913760635570352139552047135853498638543588742367622912552024548351551379381035036900955232339796348079974576733502667839217866853100716767643369687030713392059855366447062543213017307506013858363945783216915751184040697738085043463166254428767343639109180813806022757571809811593883744677922706380960900633373224305488536079568173976390871089934206406778439168195772429953155698703211552228749597352050160201653462950574724880239075151654205574826428660680111316398014415079051801597073375907592092386464587659523988570740037036126054973194572127215296829460448556791982129651205872767314616084163447653245760158895656879323893930841819905133752530950180537561429015659531473407586302045640789383420925215835969464128143008064190827661560938810044626719146002063633229184433100679587687168264216802011552901724574029030981010348276502437525625864647057701648394799725387528604183170850156886018088726792207740741849602731981453260406880749498885529350423733373770542004403356970872522716045824077521427057146989224642674070242698743085154599460053302277346532110998521765550748622082222006313386745682747645471267532135122953605724706972828589491435938268963973085625277212578519787276421023015142783779133471577835187134405979152317724155943602232484917911924944423547279597519449421570054812913623984156538974642552883849185850014635682149963078296822898470776614403208931553695361748317841165465732416199675124088193193572738658978924182065542339812573748263809865544801869050091611267737233739778640980076518115212312925360447741668743970607601256887731791861182287025390019387840397476299943082305124855036751244325681091896662101591363666914273109717594538087340101895845811165462399442409127896932793972809271879736289171887815081824435601351991289426572569210166058649856024967897327264921580357392742585578979215625286167595800187474104140116732229112120950724742478094330527085017984371837635950903721243513814292126993667276659535054326283091311433177920949160992180495939447588960493232866584307013554093280682085247626787853628146241991816257338768466416073567315518572500064475374760201612636832757884842820760116128294336824835900494245498100551309089741314715132620968606210167220739060461756865907606903473737075695259758528258176506629001333357262928161664238350329470409398845517985360062781260532889858929539370871856543973829442894446122825575054229124536476177149130887414450992776099561484549444284663302929812689239744554746631032566867523118077502812140747976749202029369817854472701177542805379401569097067855184181657919340680919622204190880389866266392469017167204056952776501281822380224598310189029535368276000501965231093201884689520815032859821727623126096785018576863740106430361339524101072875175195457630387167891260816811678377319350679621959928635537618195745995211278802559934271555707840206283906573459262346213639488095469547863391579909510315976714541774423551941895025361347046598911199719511089645960248748416106666052804387952100371020485443893791165857054740977820106180065105023157068388007593396021970948723681354649392476227161739506526135691650826365608113081425114847462623212507426678417249613204569819256088153229079187935858766128652125673476721428070354572142126636796685863821882857125059333994192113965569695852684914796594525530200649038985162565245860920492827440420070809589095753056172129216490073500769796809751714400519550462985597720756570096178378375599677528460025424322033446770328864011121527337129410773602246167911624777090523806063660333692137632303315941701211115268288945905329251593234743849303180204420596078036015422449426736769791497429983175052684762671016332772990054648548363530716461280471282162487406012656672309718875495765556546718773840980356840092336280656469887034732155326003086533596086957292338365574828505154538814364457565549624697131857141606805422574416379108752376199721439783318957993225410091946977547823896674159920199197809306512786648668921314558511292949869117771947124934081830359321626745618675973266642230943575140672396178394566257504685455376620188169867292373192708946983693605990555782113872613716865389352587386965266410797585522010234221172874192387748475209116779421756743570684933522595488802567027788166940139092966889712609856740510648074528291815463306390808654410543882582297645051203179659374717724284600616355045160925602422646110543764176015215162147863284109469272734334397895970444370076069321975169646239921634952514244332348676061497594809287829917683985180960351229103329929560411085179239535220892811857795465307610158354353746417373968980333307377051408944399487844145421924194726201413740048033490701611887308447515536237359046944247578124678449732584898496749631825538450338274430775005903974191700079203889590758187409803605334725942589374951719644477393503365777934920086477856345531563400551629147586320526900611535230757874403261760192242476071401419652467022588161516517684619690330397572772894840862787707171511268647825463518094053899599514915197878743121910934568814891933145676196561541893840016735722195654134590718693457080921178033845978753204430418868778278291347420811695336766361589044412863093750381413506214834584146239526900247224177000406029737698072238075977445408826386648715987901783622711135130787395288870526638664988610568410431484751815622244612905892776795959267500465988981592527475386014866527533845864715307849927438231394261792626465766424746404754780249820028862040912256635687887766912125851991222963245052078230237433967725579563375759163783750189425093611682655104016880370093707243829346875559803470745736597041939066500534834375469761038136298657859117599001352256614648765283018765486683974274847115737694971862485445012136178689612764234575422732420210978104973017187166699460770339351921233537610321454098321491426293418534121998172290924833022130535909439222410695742861811099201367523095534711504750364906686325083285723524139169633404492271425076203470948263020885271956876668455682477398082585113344399789483617823080157000937302552831392067427862697984191073973084992764277445404860039776963173159215488765493991788188762748289553575174135291654170490941374885186989916760671318232161903889872112861590948442076637281283052992847319194288224973884230559445451989607870522952170176758804777173757812524693181274084290115345341775183449992819999182644228011341523188021261951758206791382775017255842815619533408286404874457440262690297745537961750883395872831665583519120502362551402789531990290462780459198937853929658756918801559894945973249509844494554757299524574654382890286436821493696119064462711859855632706365344553425811112666070145842735933196572588490721633599566725005597224196669136027384393532486228604061175279717272274307571176290182661473028616965811415805907116431879966720438742908350429050836744778616098799767197795717939808462522066456344551626761315631490050150764951883190346200616530837866921410265790048152442945895600484704818041288882337461513060381673331130127639417719965709017025662163992460427015428477137320006810269456600855436081267258540234418054934842638627354820702755881251804009632828548794998080929998450314358284875398407738296857027878971268743143582055586491164323708222934438933142201146029686857065544161486767193496193302815902981742636256787719337816440494162905392009855650185330275907986173814596842626762764455754843813191365843530198632726690336835522989234963999122874470937499885014494473166726945474536003913031588948378407733578766904500872866414418245672983547258283785418545331071548811413758980326419060537331283229122433544909031284278200642580258320957779979112820691014011316190284591451340746571603062034348189116807148862354473961902329262050125854999381566954031472584257689887151064471050399349355536754648884318310295038892103808779332711502380972497914832943898405703444874046571619827901773594685386974366445130036544557687567397182498748051701756409699035701279699343483765612623164706804533847926050865038243550553369462927869573085886209674879362315814229950493808226980858987146684113772228886643394037157426132692796719543987498128818426267537989592867982878728242491827452609523437655258928569006958309472317393200490132289807059769041860540683935113500927073874080175613338815259328995566977183301282505364289648992765319245916105011051516242913173976522106999862798846649745703117415391490792115824890206176876129150898276176655286868258668931329719410496918090654460116327774974617050506640825454620044693302518219023670463927888769258913686539595842017516880036466834178086468959836310264212532171824085445747165496769383437615023465484298612242878192159313041063972378121575201847577841113065344521041315486247160475260077017250700983597384276948129708772936428335313837773495433637702982709560765658512494503945932737072478492761760714972658935107681232277523242489324198894570852992496927990645224015525933784827949055571286408521305755910300955276056648919717847768214700001144688752285030704112899111354881431432960522064644082016282333015974465477024352044816390439493712142819366871190975172837799846384702058052953485286720776734160862369777648431885408943402199183898408303284525121123366463361184855642528778201542660318367237906730902086095000025246131800563181327604969926402658359630689576420137310576617607421140914602609412912011836607403565027722776629074799920705779359049259766140141294363371794847677470537204142947018098992230032345213767808625513644319549560452114918890228375836361670451134504932492813844673732359593373151573384500236189187332218115102269384636255242466076783716843496397930544372516166897600676342968311095703487917765394213498892708383951858391652682511555765839178852807769556958816666899647972576775197504387311243504408042007792971077271462074950838768969787052539333568190163174929773593670450153137502785627316206178962040053740667076837979548279172109674964131372301478228859497402097836681712466254210505175132664969999502322127533411514794930501973376613734807539793820308247697806760367371521996515624026456111219189484227217864631563018857131463553110171876209847296250864932421221040238418875977260776699848514643018825798066803658293201253896305612232128819933697504056998678806760075432000833886484170677104618189503510862553278408097218617535531340654506359177109161472406182528546335322795132567699084301510492810934650734614926292480092946550110406920378661483816050819750538492795851438930419422242637996243890853330322231194953972307806074101044592905178018005581366082183738205374964737166774818251479653851659003024544340592854858532294978378627918966425571768469408172112093337612044100814865024846287968581800061773745805547180605236071808195559641657028752284460802261886385273249652469393814717622987410685120629791180859509446710566015335937079662007352835283845506090395701210958489152423119954317932608492084872885044899396114857572067689260984843758654783952267045389871817473233123319512733869622196911698661891673921791425214019695660319553549615904128079498030066290541056176994931135653228370333593944464947846447638104180554209179289307219231782884752724182369190248120328165611871022833243018636710157420737931858997833936173201251275987410665327669388162870781925546612659365466642042379847851830175271890838645853052418707102559370754265322911118451734169590781253633040685315416643293273037681733416452218819249212956104928398073275440696348232489822766727729024895895789094797183021987711214678151978518968313471848756975195254306175328409065020424727467541294727293835833245615871200299548138168513635539103997262579830872837173301951668780822155910570116816037049278063351388849711399001860005736836651582699762531633371185881470618579258276492177880558093255366046421138838344951661397400145393825552452745914979563722803445069122795938552469910457682027022130951887698587974500017743286630246393813032656530287684234945396018746464240109211781137977905671337635263192862919647244062313287650662074950697610710212229725423339373824084613177218489789681256092854024809808162501742603069791597292575332633596624663505469594189397791643788306300540867294236713523860548758262513309833539647741347614626120519914708016402751779286048117614248066499547702897047218350154395003549042089640013931455974423379794813754906157019558371739557232805365921344278305261111727470591262139361034245680939414328053440369740866630174758509775075857991525643759078888394051668111506176876385628142005325495196437888221067800757038502371863242384267002050519939238938176234134546820655783333215911496878302566595051105071450964538190660471147801818887444623128356225170259677679086941070363149128014009840953112779994042633154993448814285564131754943628729632023319042348598809464104799445579152805056518173143570684389161969655878754785176108148468667727012489817682300365020573577034428174835110708451024652538914038527202211754055954580076924956611595754190128104110617771225519825677621940908898362386114573411843642792090213870483864003083406194420118668266234319615098866231100378800418739484160735368919319525635231642671304022881493770505424762053560161153130862807069000346755455710159605785493032825484852267333683370629626341762071033119294790663308273048421614404953296984957001690561713954976773968669034667062929644930922559882973765549646677889408629081970068195890283731240437350952305188062106234100920924430470317189537566055525897555820314282269113152248660759324944038222601039135901448207222753137828295442060914161099884181183095240099143480153296090069610432934040181341273916460178254720489667937128342005429364394022982292096411486821661956790367222615780268540564793916174101180509235585016010138840524359062173442318057935917748818125586602872322174193787236518659720345777999302573986828742692151411172280792680667120774722323775628421770531807594272563286572046998804360307235865394160471352183524325779569114388942451644832322753970950017534813957132234946998550304330067409143541130465548814227590917590326341672070941591162589804851818654257384295340907076365880254547391647879057428805527920134894269726706878092917111085051796490874060232598869404598731104707331270641746815197280735222626180880920650697309282445305725041403629971927329235739483913879651793439096272633935286775746396516860952584461337524275242874189674667899164581951092183206128659507174161752226290662568300134830562308954112886094885509725968511605218347702299816430352187792551121143841011207943068007708873676890150371418690403100158964914168039913126555539358616600960729221888175172865621861202077454470074393016287567560065383080525331513708200495897846902281967996929988663585972236510421014881235605915055542917594019396947305622215293479407883093179915245086062698159143825536004152548680077283970607818705370131903193496949442641524226054174051422996774007410014211183967333230198581820554553850775278105052317781873963536257965730156847525778785024506389456823956720538663798337102643908033925320925505857190167299612684582017327552859533320911549346287787057201789765779694979561567075152190344451484288808441934191088732901164668043512274445704286538274708218304231044918183123117987503159150818139405956384657302281158584861895920330196491923786518438877595166474987204546319311674522070095030389256185055660497653358485438816607597155940405841537911789295316218700453909392593694670392643659568862732718762733105011275412599520366141621426159416931989553689992229528369098160208202087628585436100289225313002509460017434644504229825359459360811915736273324587374802290678093947927324222383469269783871612694871918838966499720956112876266697340739596104664764293094560462521986811428470549788068851942891618510504026591287513124089732609042350271215719971972130280150434993000491408686856418107429449476076194977313361102661986721513832911875240874215588093806324267425662380318324995710863376389415896232412706561741044026539263126018910598842858726161813187025622331204695711551469573908732554340794331514034671384030851576447752873180525063649896948388573915690514037412801619611378791653579684426489322101801288695348426971703175811462405917007161784120301594471165839129986851301931457306823955461157613717995939798076501705427942563133156742895144469559298639381211242081525534383054066808795938480977206027946463940574078659181369630101814613429022614795816015017071653509583687566758736586975422889196437069929264229755216334024283229124758233493996902584841085739459760405189867202491425442773263847496453809703661785226764129307187410335417159784229321543950949746361287151677788705037692250420934112734806553747207962152871261966055048336924716201958270237577000786021893591014902196265424201509046489525352874533464157765371065474465348759439925580231136607883430493605319818048235421223296358686278318254712570818571043772811034727626366480837133028132040506124281832760695003948542038549138806682796547459922540303891760549269538588294090025536106585050906068859115229864078095526292872839274343117016444040824526018801452385458893767323195195354906333923719140084364719428011593865211852711358249187802222567904996213940550639288396030754582787862478850859000543055976798824867954286542603838900014093713589658979036469059067607116194892707035968819559590977250950958454328035307843247314979827095119424313000495382470798327999771959488619819127479050327827819292928471382236096560105846618303806954169264108942590063562036896279421924220695201798397410152059989540470748036777196604533997828185183868619068371819051618756467140092740386114298320434483590143432276381137304837573253555594384767437590393115378908998161107498596798433106542026482129472311778322924199262513841665060495526705200394765634306693112114734007792676722465269419493212246540582028507539817617130110596817357896053273059201173546795223888417899635065353878782638881135269708619939428275434498094593972206610658709005548969458136152916251361425311332170059738415013097179551171810041843298626505143559463174088939788033975364314232625541701692991934729827350873222773491862943448420422287111789526656928044954564824756215173364764214980811116924762281107820776697971883983581865060841015327479420144837329290561701118325498817659936149876887574717920231192559441650198688398473961634199787936707175565623635364456525347874986842031009150735227186733152001953633636723308519116376783346389304709541037461492303473224604795981193740707664604392894742890376626073154256669520169923710123417212600787645776665970504740547978487021241720873196947404565460575032945136993033297101158144319039917853856309573555248422385404845330585240580785233690649656657836720938845998235884377141788708807370538105014225686533810746857973772879926528836932197850659970356897542365284792276546293341666274208250593604896891871325402645074780670506225819280421282019901119582124302029808327091317583627357139724912383384616230289018339135064489674574780882065923864187821138261222317113537192201082131580269021790374830877506887077755719949431454569396537401127900999143928518023625110007929189434583522745456738840406524623449513924388161832551979996493328456540999825191315135405693220890910095477391861360317956690487240047484159271667629743068249536101013558073402886919793213527309677631594870516447020005207670077868854673362829679163159413911920961335836936348964003534409464021855076570318424897964456765043251646772148617755454423676765548597130609845548052337586240168043397050476354021373866697542260911458989353775414545156847740785776790171446045234974703921613121494495198652563797217999384315948057605845238025335377511622499955075163344518101411032826245721228195873429473828332252884229504686349182959393821426106129361477521830899978844961756166541912215345925091494733018462447342338405315895887002498566434688717577350315814290466326293325584129745694541677318581151363806042588440785357827804700980622564363952489621617745500477660642366575312043083333218729037412413249174270097518712429402517277644707012390509600595516393034702307077761158914819608689050310936192298257444997724379625057683023316189466251470261951411132248287239162803902572740394580453795603435798065447145685694086632035561477650412393716473028059139312769863691311214853357026563675242690086636198072399970507759007056791287586015529230946721796363651982803742534665989588015979797700470972165044280844852903642249289473344287539473760156387531608195752933919914886665252362095560567564312997743245839732298722675851693662488981792818425915471006316573688164579535997667798193520911486260466694335774508251443402390041949638686531118998034377022146877123981499683857519416223731850118279482157250577012806130294987769524452409145193031541060246162411210191743389448521358799418668894601955391929445425845512381853608131235652064252809248069630309814412515510528924527756477401988607338580626205872158772026290167121395951105161951705827874917340861333593717572175442541458437286885722897249540234366098324258093137500261871291142992776024043103069433100443890017229194361520066560995438067249613471708065097120376893137556356620160356019776938640737335041925551297624759996775728469896544219799795067903461404661813034367321315049356678138329459887937546664812915809207433994748510683867144635500643710172593860067461492218846138054178932244140962255630476323357565186701725153377635053684316189397236812610048839464251265542365520069261058113422959666950026640200223583507583585919469594430452020668711961438918297246508716644327282027422986076895514741741530184527921159121285093584110818951391417154417285280607206001997227905191886814238222571689196520311361571884838127724251064724713083774626987528835678264784934078960711564285859915438945328762136428723585537810901843505148474816878911496845754591893361309048749791152370086302227040768560423811305504779943379321785111660916983330300897813297284325945123913903250666091133073630864721595661833165949397608004211238866336429761587010306367823575529179679278504333358230504309647869949783300550204635009512422296344484863501894806517584371331598787542026065515887652099817764241332788079291588903737108299167039450998141554562674503671127582858921874937059469958898127657252217709436673092509991934025431642749827925912721723935387002023583535419276975479287904020518582646022945089206707815887333556051548342102635671045885428024353237170208183135577829262951055155275238534175553452812699743459120463485936606949709360546812828096035929947269121813107022587118525995197142716708582506389630470572326544638585678246572044590970497133406110668512433791814985850743419691678515629449556229563552060239941414075704183675442910472705615007588821439388511193783497177538953183762240980976395753684069601027672619079573423979777055996397438304370181865276223577582309623941664047407347309970283583163879654995716454314825501961817342502266258853837675961725273282298679073256392391236187441276888860396859132517632957733975414157293704012917089542838609266761002639467774858845061025027604387914144025754817541370463213593861995985543075572158038309380331422231046787760540166436116371925711671538065894078098305869439350288984799700092077477240621996500367019258112268551346802749482851836546660623343242607136630905088984226097507154279949107879029312620779276466694688094406160716053012864931267164831634074173777751393672145813113169577329578263637944566154475891814693731092965420795240197255887785049279383665029986249414522172772547959188952360527851556263238395300463554721086796170079732851668016816590840947867084357477486793968411421831537275904535123241065372353740392452959098720794674197532252077805006300735342873933686029607089930659025624729780113959882031946981238606841253194948898756542674250484370673780403906807857398955545282718255748765513271670634141834296443838408461120277979916428314080502628097981966203435733196407743356828442815361597686550218740611053201028818419371273905492090570316171617748386351007721446995361463160207470341542042193993931574843678338371686979974491414651729849360968718631663630451968518191754552757771370657061808609439159337409180131369073306231614910161157266748976065771268557580055818578973723092269512978678214112033361979979878135384439425170137656094802656980074576696359320277971011040983432876946390882330467179289075263299814722743215348978375579513484719403157494861271100943058989904605611392437419939327573902600242097493909124939287043990593259409446690109734985749056501713915165807520138475763068618714022795081502737051115482093660983076601635966873854729076867386603962835043584621691985412466704550216225287238080761782957516310631345271920836808650572452744992128121438285103109288283727800232904669342650695676185345000201774414662224837256241402663157928000567124377672098959253721228633873217262896126521565123060814714601949428324495179962210417407566622320953930425076943679508310294283181229315061089793790594169369884215516370803139832649033844253503556197609698052034454552533376818483604716930072464234899013767282124657681898927517115200190493753226371528635598581557218512048447313259332380659990675229391278493943576872887573820838657488612204317401194102714579069248167306911652520239622812165367959101946156221819270685662775481230859158563064168016453524852446462846545420019264574499588679122335293232285956530849862487315041033076428789710209150656166884236357521825480456575597561411034694845953853315943184004878551989167012585774217156696851739959688769250984139979867909007074769611383781291680732567438071828147937621338310751381001659009506797041039268394024629116674378365037842897613072142881625979213581327495648179271059918462581120376805617304309570193372902129685078676327112624604688883900266944266766063453157189682148273329263945604612523393535666161161940109423331410966618155393199065159528490996383747519643281881920002128127749821624447414856843536983363412578590257049261219407179588030423189594881616015156821859091197651133608199825206526240298438717309538031021647581909789772774409532420911578071656933876160604445267531368162586348682244163738562953739663369530784811281345998839044380386605944470990777544384398734479268870910091142988677554753252720685792459171683801088145868503218596635440211304964416613332785609457342360959317646065566671921310073614434918408251179956121614154412887992181455951055638620918697821800541047058574249216206737025739906089443277039321415137583614054978396642757947964410205086594968047531475285674689979030037037360603823817413789208596104934043247527175820276092253364416829478183940567172388143015027685219069137549886701000482867974207851583465484822857697993048813958851231395826386131732505477120738370490582569636073249209905679919366340722577862069512888713236335608420943645957663906173682442334650463053475355292625540819580723079042798996815674303514978302486531820471499177257295162810886930705094839876324247662978678686017008764416223398779831552661826972225870272625779900182411023589883819208581146809409210200364825340435742631436722019766553874154962814099763224023643975593612012631598577890811390367145162148737696637909236920685436231815100419591564035312799669978904449983780539003819289575449468278727700623162293565285124814586639439716751587496070067463998735554738027790623248240917768481712494394534394716064402815685376065961638482606992952145612320928309272541164379326653565572511113924412482123795831702528128091700124645959970313131419316319510899825991432943320443885933251479939518218268707795072017061278019469353627250959772154881246410937676364863775763797003771533644009050645162276438695328673996019598877340678047367253296542453850220187238073984037977710159919860103297829925489538855346894185263963573674838286053143166782313365462642641694747376164790624814864673887279774330141402650100874172990800344533270943292976684986562208985640422461754728450102009008154216972373780131753334549617632541060564164638981423113042690627933149587152422857829361677329424921062051925492590187773515935300754415507485290671405700050360771030586620931510042738469041718280612412319042368353487453381208682823427857735965403097054724547812262793677253110515612049352989324214333392156188300303174990642270302497259757842647582871551682386065929556003431114337810756403224927557809637715855780144400603795178212055344931774248878872580410556964341078016179798317714624211621419537460513963070298569934938123348749862039555755974771987081273672081767325995349100771232053125385909662312584746501275321093182504842839584418102550178188953092463136045911339726609777976985555620479918603419223883772319077854672598552335216251043864399773167561854576660943228104156717935839380911751033358203218410764620248784225140104797766813690752137380238663267315193843157576142956462717429118266642067536585585144429841978710828969621765082005117844073910314941107759745041892520667095613805511074902165273435609153665645712443073739981470307662291502247852884321603072887777046831595524201891989139780684573719308464265369889367889699830515833517560163601376432566843738590188008872211925482204235744716665964406994811311807962695605706940607559438228278297137688266890841074809179548034753004043701679879794762587101896598757042658920286676849772928188671589300661773747343890937389056546592865606560446221299075099983933446436120651499913222604010374777797124069537821800572599422635431109596114327406101943217586845359377916185572706687555265163863907727940099687461724769584555879432594865820405605636932699241411954921476736594154769906024804393924879530132280491678519045322718616455676008012219770775193375632419563218002788424159701127295494948159260709663938370888388263738661374366055614258545242258392991490360839848429575034900646376225566907184864463950556773142984007406135897733766351184115427604693161556107462405211321010511799345997952534772565348278043969771298911149779578697484330539147113722018654974120664601828826365711715678911176589550228088419256796286408431016163545478819604708979703931743760258860989980123409017019259502372652962661367809149458495668809518833478212669167372402625795209770668452631968087287410705482329454748939656007223711287476378692769719546508622602015867657292766872966125627394665937697269486339032951705511789256240564492700734924296435479564746516144973919873941569301513374054738185292575694344058631815827136284725456676282535880476657363912287907076463782688558287438296157402596100102131393910451812000347392009916086978433773552453680715600032739366102755571693993017879251237310054402132276811835645216814464585243608804167645088279707824623294742217896938793735435656058480911821299334594611636077354808045535660038903766476886990192367270275853242483246719884101544827983968526580337278767839479492619229117391454963803021159159880372148688682256160231048516530799551273981913504663267758949823323151817979584540346838479697796574141862340157419410526692431505668676034605316369728455815988396104061803565322593505565604474480830598123501155933236210937155463547400389180461239517378279043769967673391881836315106427915359304953113942588220759924362150760051825151811014321010591520103891481812203135309010120363089779820639011468910917662182104015659134918256308177063044301962410273596182754718088407064855440790586259310958486476340153419170179307706917503140560459722912383537767483571398375177003334663857966455590764114662670509335510166887285748025840838362566677290645616090442947952318561196727942459164939994848866856147156231579022206786118073023120317165891366734296798702782623318258622586202762075116080504707158264751010452226623115109160952050283227812670516706539896014083397907263192419784966994346920338483831664573682511900935576088770527803345208274972884069933792989431878239194285946000509766866652634731936809352538166303003919323316103791627910955921334630260347027105774523844662430158024148866222980159803137613485097110595547081187712954990952660839922088521971355452677208211505997672425940660988180851279146171605092376138485609050458049405910444418603387625884247795437125840310312173025405401470398633016673233617857200769968139890643289948126064161130920256253397299921581975776898905036866354407023209794185721261705836163452634857143476852845507541576730133086190981506318054054641936982950647623229283141122269696762965271136344023483985660301260973632117982249676418945047408734327018275650084958990340882131338451654435724697151258233261541009292830907865362807649478073449925775081068887703964137368903426189615641038727908919974185281321139898891993543356974696229165910537503370155047620873296516685618321927993745042572803206571252236157969410575967190039359827382165890980728077747058381124314003688488531085126366295623691752692407948773339330990793792440782999876839542411213280409222106146407116219439683122273674533207003374326449629720733271926095950539636146523242849053221708650309452660194661509420574916100894555445752033367627737215592424780191597372911842030032827440310457248870621656901438922828291870571003682744029962925913168992220361888456440093074472058742776575537426203541500085366801656555788379844742183375612197701920782126654592065477127513088731736457271273494640013375595842655847985233943351225994864125416396256302768407104527852388984975713821923113432003082899160328337858533535325236972738125479297423581083949637898835896519035024105140607273395746005340244357228136458493720610317192105968983911412070035352175188454252006618293883756192474105848627895597687793807727185266342637239651846422872929641112791044227637176469667516092819549485218852527938187109303490453946864399438525220500727670768070039125755301661531871260758591917753945763054510510299410926159356971944628332628523833424633203979991573748309477492636264832340285128588239475442289023649339225882691468647740795426196939961228947612578452701190658022033232342651318584782496397193912539026321176412239857001524197871941727896351237583883382712804417557674193812250735688680082845558232616202052114456096822385241225017747128143432116019055029556473114249178145206574573195324536705066905231162008838934822735863701447233903174828905761508441062309847563043722490163993698170229494081819924596777202091950660843083909084511980999841329868858528293496005817926073104755364474878034053399601793860513217263454788864795509138133431343223092715303462662574482462989414354776399736552104035009789866500136838301276733256906984366303676315230687663858774330089536849662965579306994026203780988578817194090026570561498915649487308515310358397535722391983066858359999731648060068117692842155732892205629759833846939160517462422707168730058049624876135360461520965192760489525884770410999889765426318123404503310782035611163152268868683709444970422597164824154922968315486570713594130188721251624191243065050088883693446864701196893396130641383381195770541869896962555418036684340579491313152177024384760315725989072567335246469604410017746880639652078409036518775872446082233477810124261279681177113843307277126755268051301635176450702952278914946684693938536540796092714494970597521057667316824926586779384282694228523996493173833708101358558867049806156264373550955479918174540668028376840549889092435119309926508276046516482357714917874192803131613360474575963627685713915495673732087347226837998735045134778658869448200369446962929315437292263178547587258668526211338387329781739038176927984970095615908866631257149449630067727360277239827177618576024283867071360025272255850387638805919150319651176374170580954576936157915236687612934343309732411955552184729752587063095183366212212956491482506394578190500640054247572766695179221900999487542626336591351271636547070608554401936389941386028709856128956761999456382299672138857624583918377472797320257479110111312600697452324063314853846030744853169521358143920990217552936008977236325713025225330467747085105168488601033133225494335037252906966821120885559627020026093452458482880444861009398834999004938080347081771121808159796243398932521148158797589167214597055518433701761784707453172249561861437251631461972222647927247230359183745114445419263539833164483040695079840879413425699442658106068942913743471033383893236974882147537563578187632846132965785160042324764573617488316476686075504261511280494776235253637322299365744301995166807725476051644190082055239271197542753343684097921266273462008119817454448820859321654813644643150248560531476047150313322722403885876718025823004574775230737544613486951261903124682491414883584551031631655115138102503993964273425674571924489182632963464592487111841277884861846571270541551355074825099190309799716525920314217695219688464045575107154571105968629310340073276150201333999146524522820724026808511308402534145099881997594998267377625451324816939031953435605881840517281033322186322436486773099957161099509935389470733281013058138187490597714079581584139554005400432468239915110151182316886829435877671562266161843284505083526318149770020240467034398236557794963548016618455254980449478127345770616652955499029238773897867915213730788163225490530482277292452415220122846848668592428649951257738516271529023688691615470562989619525572180473159647413033460451093839648936043477468266284292644856661024990780280483023134294840986568085201602126976599071934050827312346220055181684428100677919180562537848611648917926241412514070229303844238411175935955084234556332693332383054714897275984372610842944974788599261091268987657097597685173544968492439973618795572392314658891384284369073743404683782628524256135150521175506942816503318361977953881999372489204848746156510888691725193044333156835207443327289328394117148686197658990059685328729467700424833707814783087116411031172109738677930082761004565597354031693403572196652101192535792708553298781380047266617812684591725708558489481662909791916937021881585911554845763576776518495936401955736352569426892114975780950854332152069720723316805100700485213260258225198954316666661166280772898454843571686268891696253569960924555791390410849883361781958258977593267133774709383188199874174354773262635372504847511213412957499816826743376817160229372694372391769850315362160796820537952908592810776479170366183963496831769029144574288188331972684754884523630708376119512843182503260203440319507321961653628346730550006520318405805489802280740846970977383920346824961416929094956655818608310054392068926808539304866796091827427051934168071766668340562811932818680018323857076038246999748881063148760463748543728131827853646304677540149921475456746981515097512364083990713882072340508001950326310748491135304919714309321415244182389966229805546595215845224474349801152362942512279912923403769087763832148578197537049032708331715701128616142797230523095916603413627420765563859084664085443324942080440645916824467594306932754109572986178332255352112522443692335794236175980652484487771501327773639777356470130413248566891746758273382071850379227605864873678290219191808964430348670536554704772133896050851044925324494680283798034991827928255792955876713574157930035998145966667597471326264760599278408242360508886512560878056603304067110686345558431501733927884831857663148381248266025853341756394155874179393831217237345804203481004183667127493045346714887215742159695253453537950366936250677325263991733186078952650315342396879176480689382868459273324489421694114586839168861205955122932298599356566687711927289467583259170185068742944023020832366954789304914765802403320222279436407022956411753969803120861857193646042235956625503481527301525743727117000861664087541216462811401305596087463599715966716787578747357866519899305525915145148690440719632118390193645107729547926255216875466631806898083931960708265800661734023784351971494744799820291668648262208938003451495464014696579563464186438413669728223036358327105965258187933428637084775318057282099597185035800670210593315054514644233851860714151217233017344867934969553346869948719293197068128916237124685711094965539901348682135062865067865279385337171150216333859271426237291667444021929990933991013288153816399027171533870099574810219288706128099660653920521756898740132510594121826497933668487507543722494926370017355418431221336295225353251525151491861429628238908586290945841168281536570579020201389471478006170724416321911329287150243350347422145818318253768319339761054245649911845605938637555908548609046890985722281337095385687788194950344556985510966443783179578190141018445631953064821618224569704624652876040834738342365551878999785121780037318144800756751664992844749176045841255095539195643468899035049127706342367495518834703081772124176508836210754517914484433352510912772567817681597859581715208736895699505902301450179754047799155692299842361229714981359975262228877623287341408228058551169822382681225429184590437015617382787694688171748467058258516599177594355608899715632351190968110969774582856126972399922979274935394654317451666664540985926591059350252344409583666895992468116356032795408251040658744348940187216505531480775353483504084740580329254057874122977425024816974913307708283487447643454458002466051121037481045174932475202626120464035255607940682066365829459501650957562132927297981021956302140473574959376228376205297631128430432262039390224007807972889503625669722247565266737117677851748932370645576102084150875831441290633257441938870448570548387498972632505029285872525904032063826875223711591946945404458556747571375727749263247972942631039637454369499230704137523517725652700745624892595725836541442189113609706895838303765980829456567782416178009437630295905272613327886487849582514258445427645802750552442828785433971967370425659642531233714344521661231508706067193957112434082370994289627179209858528829352188139481096130581571229331954808937646309440618500349863944082169336115441504175707337821244006495807743551718219446043520605390802204408627418319297367042962093543932815979445548443340986505018801405070389840246695013284859573571770842506939291753167897859529419981406410879887929286707594868082215687471592834105634386752827949908363903725361183337671779518765082053108802103997449967801449333626675355121406623473247884596973886105749319954573318472629640125924795052777187892231535127993130612381750290652330134061643734327972970630036371983962747130744428065227002554020385943650746629095572215339938835506346474312664231066556807488763782631717692570597760546853931751535148702076950217127520985958714507229456490563698210730273024599993546366037675254288791911111787640745610849552712686126929028464981363731902538472256654370674179694857513216612279624598246274207140827376774414351227113185411820749630199093182265090663327647498341088641162440170548500976164887408160215225821971524895661863860888366530104041694120359084364351642855004883928422675474179733579882356041147017438583665317603778109577739810799804564226697984044315879061294586819279331690633290729648165450823556425373336143583215505537927165663884910845199159126028037803206640692488548924280770335648811449609768723508787444893932260981788636084678432228229326128333549818763371410571681420287113562727250615082201455915807737583055263806114600371302948442806882063459743208165836671981769384533091938992039101866695967268455253042108721216599429178533779153819154809310378858966872787816261303900643538825710730934898065305606473685543171610231706530696310569374317991689249509217949555298512947706917070909494460584637717611627697895220249429483990539735814971254567677118838883788813898654149623469965393666102505895670848485093035125282254894873790273011550984360292988156411194235844024238497784768340634709803083028621961714585750373411607527615949365197085771892188957902134863055674534805931184270017675233988643346637433178237167828224094117206532195864452248486576524157431549875969744827283388039833180729402835931962425117366594467702752356709359177528249960744863901189525000824557204957136557644049217948447257497910404047835009234069591746674930270544099750092683375530715883533015466744269221308344081495072100789358335922195914955541172767170769047655651782526382117206509615522912407331654242139324135018448520157600010643647152323197221634685564754012988100043525700552429302776095421221502117331844401566820995256769342237006917672202920216117475135954667878111100434835171019493168818487035923248902028879293435519322111659406450936707485859915627561078544212243960026580223330896314565726849029902253960815180256681344314330009134329479288391196553985967651452381951803370560458717689560702553334033912172140808175356865023084923095401296949479205327424850966574816223792865155598456471385247164446854164766004605279727203954005323477522391779599950574301941805148760876629055905206276129682848856615345269629365806409884670728953475743223224109710065789643890267520505274284512888894451797344927044609636488950893367485390392184122215085507209241811582249443166721536599697907969756796567884309114576747207627304095777495786026373945746427941857975802831557637323887289500147592173173067454910244556306838171829838012981006633681046531243278032407482228147163229763499115499842379433993654758186290445822888783876305552451717666472397981536944245126686801611598757778082408025297534158284821905189169702380250110108388294185465250963841589549196192222543845721413291359864113243840271230576732610730473109669475360615764374998016109554606111582400697968113661802197421537065940247567614966558750418857201060616978021546619456748356196725442286458914396215026841387046283834728130044357816057167309657665222444528840473337515215313984593925362583742249794505660137938041884023168026807651703004489633158190533755678668645343808149778366354561357156748749210545517339191422848338321549657028279683650904748474677585116070933835954135180649118393287612033285219505280094863224240330501611334203207918458731768552059085657332495006676499528141746057903562610952524364912934777637030745327167282092902415066412686609796375481812581638911880857061559513782348803093847518497824098149923628677372530264196335504210216971289850695654370173787175713796455198518190186730978297396871874283327673320168845973259605009822133641356942775602287105204818971142958144246043105986380078332552274292941765594789910448230378028694991208830539591984866237231983689420814462118219155275684503394032610258340375932445039247061954306787412757186267158227022803029637617188022303874096555199486756598400401093437293008274487822337782916331345560161659400373350465025875639056239140014966490900714861533360837823255565087990607265148361813120264706168625364268714279422729673912047957209632900742575047411139609360413781568350058329793009051657335132678955676642411277873395472168906087447099425019519114164128836661413790272677831753432027569539166057374910016837242448757707055674828038869500558722965045823136004048062479064042082701323508868139644898506643216708886459655257531260600043295206560462671307573625461503495085963833630924770738600627692298599564760265026485085831129043300185249002349721624043163334849835367897931232447231471815364293512377116104956058551136683062404442150192989914886594939170080124869211814105906986285458582768288009074630179087181843841599468964780850938324054669369455744323368315431250652981085620406509289797962816195796680919689581975587604753222288134187183164412567544127037817838892101794282568984264065230666343744803584689675845248064746926301266129152467917763219580425657918276641384825488334898211305341675012754106599713345363189316391598990277929509120743550690668180334215384468541779969654152199614994376778838811350288364067770416134668211921342336084467047816609737827278775767989900127299652534561875733242275699687966444383712046095922077563924563980687378364626475761109498087375658902254010329110188653213129027099633106940917074902117379897803228656035449474752303752370912429550440653842326395271225878585429153556512383770512711714030586208425055898135888894178301461690410940103148197870497311797324914052917585021039626097435413539881461329746324261951378853281106786469136542468820831117727843921634578153565898744189012814889846344544684185429931101064380235209277044199029382288964912800717267579181611693775546315686595410154917907134263377565892571640793606416756073276667229019127975783541033603699014853448023323762356307442343133625840635826978077367613539627079600845034177623376094170201702609761094364582591788814305178428987833472774704087426476675191090248512767969021081100705606011422920736682298606803820650207935798530873468967754404770527752242893302055071100919366079904248131176138796739007570276859675000721974191148049551889690256905636761971150946853206220550118905491517148942208934757100944180283577428532499288048370757496310332707674895104429568834519413028647896460852128013486706220786752860936619598519989872187283793723170894712306726111152006320268322717613904209921868819630938212789684340784782070660327026097193921320304630977777681355368262630034108746492905669797465842509279616346637122266250731777785968447254370210446422588854235134203299538127934787002952389595902602435995337954320581968147717083293404318338038521457983664522020861982795617151445420785987774715632428166796569251084565856596657333714973298899695322321193743238044490947101724452512534463588359073790632570081872399067766539511378062094114228473388529236787087649995082422627524879545015080505429895198592962878626535319920941628516871452019026322188693765648208173187638776549122710623411617849336328751048013000354380350334566288065502685553103950959785771032626405152248931160208365539215804794326098379954654606033057018897538136541055160735204562216740622760241188099385149803784096972358723695384244175186204427558538362572080790895036453996369088837357718200878031048853551368931175159307759008888414026617913089837107150306875418202905039310230311363127896612496627116426044198456767546252206873382179815355214640149431837710757113582681153676186459388195527249174470217206167141961439463931902016182646591547668672944010336078202036023107500362963038834803268640770050308102593535455319616700292719385276181479346738831419575255432247026247201728334092690948137006177513011532999756576943742724611638743403948101824203612859220129097153297149138604884681681978719450656023685225674334879743174629532531890511877775443511125898238269686572332372422328177465499782504944015235439732115003541302323871646863890720800422601013088398909438779549825628206120144350005361116164902110353531035314650149836505637509268900225856768628607098913826394502539588535832677719584280263066057491809621446584183066632131217982424903910756276887027173044779472802022241425305004479124854524250087269528122184766681238741103856736709101565372062065003121853740546567821911831836645696899148764177396610129404182493828162125822730487828308144524925182345776802897684779070470745463342817671691103641542698013721937670177026813026225089715085072038106777249054664147502089915064231428561227676104375225615523084718683323786622795176862098767107909073895400021543869393234215899913054754553134872316151554209632084457851859593208169460337038842285923169498408792683227579295710463328154461437029891939095709382982111817126102042416347628147693814747057945452471769236882582153311260428003458807047023916281839543378226822209069547212645424963746182276977280302673720982661570561766836498819633914017937765733874766306878110828511161664116798120657704539094968831772265517184606310219556819081933435216289485773298402146249788030134495891343174851195358096330519585237643017386848661685248351311351555362394697615757354865883263479752958533650704033739931587989485777759276038577278552173135476178554182255194320758535850064286994768526339095486110596944779084547703424019113420430825438753725128208638345896621776447456932381782864099024188843808345766254720169442310023245549063654314446103429174728773377294273621538452437990877581799956602375230035585154976294097419098763352211037498160428805133515260705202511508681080509588912663853084390379583635149947146306538303100284152433303551317480348290240574732794752395304620730023892525377441738738111960153785203987951926500420378791374862744286049956655101201096574413601795510866881500939551871208944526846665713260578980508670019420451968692414379173686692335294267561002799756382191622185038255348289837573614146875594030375517611271554911072167584618573030757401030050521111916023703426937432035922823278673900579275891386815552322210204971606573426723703361609603260003944678982006134580442053187656688007061690054998066512164073755603074712401373492384495188682256656981508752723212226093008997749204012211927270506772055684914638013106995822969570513564859040326949666950060436195476492654630615200950021835428022078537806112110160244350445921394588749633562048456684089219403181829882910971628615939387046190404530344394157289814585763544271063154310105912036264809981697433592426786416467131371164656635629704234616279988805162363381879865899408682005101423805076803222278906494012648086064744036058417326288986260167386222608114585019492899060566544685057261837283231050214721361715033019022122367181302080402322123450149375642932715865058898163513794768511735390134579362437863795312881187562183801564864758258776151253507252145254200253393254714889339970210580555198790882925462927117212387192895291089360840946273640756798757508654891849518841720274498689820660320697092385346991832573121940380248510814958716792172399020467123328935519781980574706333075392795171428239927795421075706760712794221328242711125346685823316928517047735903607021497836723342330518880619110038410643736041007734664632292767513205484018775217247169918974007537171396998343525533421117046957457202632038358747108619684028123449444378906515538673355544435801496169251232740477440820475948496123387203788129439502698029284340719841100332908921658991606514235727509392457968322062871587772103548243705192542908218755828049763803501489839434591199114058067532259694253979327259664624212776848019944595289607829307362529272289476356430066727164945660619874613742287529478118849963566303688984099991363054669563442722056500607154490276814664181935996814671142746550618959557866248389588744150888888936583690817849921041804255311052524754740349119086659461279567305760572619087460610758271026821901459364773802203899710409898133920995510054226987849276141767922387337956882107507256237768518861771454976778260124234355660907243578222506215190349801444559967722928697612312128662452453983360125274548802475315274562848258514490714169564074577966024736748320082392010255632933228574591181377341016544165671461379516574803303594057433782022009789756152237863402946337499694094789129965650735247571823314413473857012561402979542985036244453395705013063300065038465803135276649062951646997173130174792478863245693071808659376910675331673677614724465593184835936642909639730005078540912644025974077363906554053694639039191181779081425430199378482888537074191890253281886472152698144491461114444986585784363311085921399192000618042944336623707708578720227054218476533251656894432078935606298637437122236143764074614197796184296793126051344635639189992113631095871847995469437082574099874317608968627780118890356331360992755033275709812443531241002494943631000787032569853096040490628166926673035021611475805181661112390754612185680180287987773936741714340613536688689066871746874719992131570198766311778118807833372226231231363633117470520815312914096550658353205393424337564728679067620197841486070808991325758415011687808934062762068394316839432846878785265276355227188424657405357362646087273811736247432234916362682969455829884819334208678646578324051734517868754348231017252807550021259741699453292141236100864246954531005412686528072700753748551646464052584237972861501102628585366697703025369212838626227251350628808152487302962800700480237395053954087686471019038943769467001365030010160662825130712173211660310014903395810275160458558261888586577185943726685985906853103939229508195747630112271458779648680601669371349531557563858202947145361876503917807598938757844361350424392670988396215849909929315636726437023972079866811575570710159184380072490470211045163509115669135414247649155078652226313428232863908358291545608148495643637797168283758092092317809476309477122527700248495958301366689094703596191997925115840832323872959059230818059325761026532906244316863932071151705027687868828433028865361864355318496684585254593434747390234303820595514117906419050660568000743620083257272105018508949622628114526383629212084454618750187520997470866537798235766365363802606049467571347577443279345004790945598885226971152824688842736140511109443890751219237205360090074412513905287406333016143225801471096807907330324970004006411004545976883566187138808895040562826050608264442389716268316110646133894435535704872111060575754725983372359342814508619456872578379678379660531827688836524869384636010461370354472274787521923258060348932180528369842133828114743375834586812464677571300593585484663659941241397590725427076037313047398564749956191050970271242471289281373318073801911048633353954875630032687446401363631476273927225484398143662517462080437000008093840198241580810323287946026489958832204320473500142644948778074517907237776553907908759759569366782146472097955720386796457808398520905739531531302378375635875952457055048264878869504345688009852108029870077360939385084281720491019479913208361273014705996857161088793391995543934357229411408281486029916753337762602588995656371070589609986601998231470413612009110915815983498472303714227275042960882387632394616683440897642474043362100832623095212214058549303692832497897444713551987764015640039818789849115872877641937859598613800611670609023796105928022569017841329795927858992208038799502170943019409865225105655733678277198301573212284397521285880747940694750229250880752533202882695471582788007241267749681081729224121731928605377857064230706668197356497545663244381309511003304600862994623055130288780195419642112972942328285490730815255088600552527909447445847407495346123366547500891134721371074165273788482790541992611044285928078372615101737449937260139861789646058131760201112616792083549797002619541064225785524042838067444686762014457232049559605404382913434789223611524046146672431592278301491953902808376417682390242184661246140213285281338304363510064870884868825329927369656249712703520688371163120065622394583774218006511432384507950930615185160415581330709429649589359572234387360227190426937054082011885015886297669659670752868571438736360514114133921841224094948790859451651494462863442064546663498709921686223882711326230088459737637453042958743629861388482545170635574878226873801794135074895201503757782970860874901467636571439094812249248787296076489954165024250249789837300862781537520391404162887264728690290532905100803161317611409048805062223235506325854358073380780253002315447424749905148037079011490334966639259447050188107281777687457934573923036171466372408017427356015972409001001499175623952437115626857232787434654694261595969845178041568922594741667312027645058307733110655969783276296263984031002531365262241321117900958189030229510561172036440077133204023738831651822500821967205701461616757435683153506303539953069710592458822979358986299163129361120657892517823381412912631326337232037620448793550375698681299410621061902008153499492779590710322393765925503710166096228475387564789209805391702990166707313280781921308910447506359193801996795548666624966356729676784018072619125142094367702172230540847403712432055864632739110720820550426602091686221799676789706529296940654157247503745114808317099034075713485204246321459769847587949168827638104851273379876602330155210756843401643145474290107183692227791621632600269698008321592672685904054643226587968989410921403905693910125249492840117765473869435082815512249333265099198964341628939361004157613319104902646522895158156587848132512007402078207880818011119559941563362366410663265189051650830635272816096319269795937970638343260600625252421757005345363142156273114164249132995092506690710389176704225090042112455159566645199857818598313082856738562313008898180534369037018114262921108067867034010774050452592937236836513179833158640638655274217991993126447941986171926382671382306492474448867129045051610949111839903638819975239328640881470899116718807876959793372456941990295346728895665551246221115043501095895860476934251622557286225355240575730051750862306250416433909574730002966455399869886071758974604262158625255570726168135540939072550985345963101234092616882415752654041116918515628281148559398544982156530829468594170792795527080695495523660016342793915510701985332057802087051379694499153149790239403012040148664106547322439633015396340129922676686767694193748262588583972120011006847418226835662672897278435346527172312246553123318713662927576928826971248116575313129732044768288161257291901002405201302768394359088829396841451409221491732596966121524577925967813715322035457744693403240314679249257151729860928547692111424279055613399181507946964224685839310253971196675790521747327384571800280233959368922972253375802449755784163746943081636307242317058456014978730880596198151463452894062871170680642347839937308356561779278768774889804736681824799102574938804899065850018585557074245918023166448268326469516455060326473559109972207396803314545045504959485956211746410488197560447998385104897558848984638649883313654869965107529807402428761930427593939300233557730764881981622356797628182466058082042925163969060795005108819003952556055244532349830158620727844219623653608394745498361437336367892997796530489982588550823893040128880085676347182921313276415787782676940112941834946213436638633229792617551548708240503421215856302786266006667563288725747052822519738787428318476563305828487105897581145685738253059840400546698309921649764413478546815697796316924781532469828285925667169723832231240413125361867261252534826802786055698231002356853471170996413571557004251078217807785184445119158053686199134373015368367656556492004756259805874631539914327761865035187729419724389322003513336131475581994601475064873671970943528841462557818386856614228268699329725667880628840536880286366449660832199968073061716424628320102166097491588842469507438777272344929954075285233851313334361827826035967057441699032902565077635692538358873871338359966576724214145882173629856770201107113640025995402252590406039331131108143711646959850494599071450870109922371757758513330639898674607910350948244104116199967162628710182083273281462228115418597541346394064172834314149415960872520040982798254949086402694637924557284064356235558956985049758986318892498526905476341031285144830433089509375300057174031746924415917270132880625163727502334125420669818749046025519679246028709373302826042168258691647114242354557194326894184580334132300130800512205756151697082766265890800435868842490514006075215369262463391759443933926088742556505785389092970699240621093573930196563818523843089118351363394889591976325539689995222422389257288438460998795619891149098077141682457320919788863510489579473227400899151520397285807925393826559486460187837031457743179707327322045931130882990552467526028896692678800324509858094681223590161947083786524037855433201934415788273055409111897135502809079302125145172098803592262596464326885790578644265001457538182313909806092351186718757948614680431069479639709147767379324386648759941223433653625028127006074708804301313005142253031460987010478224018352144055237459678278451916214954349171971348595243515368411548704027187279593465087841376025924829496481788180144687911428203681266117700440334467141170756869540432114030384992709811165464943124071916865795245740941340038581622448595816192026143659111263000015240640681776542063397291348244354133234621447482918633498475544648608831023044061779322096856679329322033135378884745182232746174978394485345372057269319958500926485216284417676765311595635223366551343513491499178106241337669636536406801623994756846786781729544318696610920963679003680306739765504625068186422384574066201651146536202831531996948773022267540484774740268074733051018074846179730882266965636106422531292904779135072339205606780339049491239530068115788737978388459852962698866169342426085978071814204105970771716600144247121811606238306954042350240146985981003401003407476852191733114307842755093420627877556410875597127198224108211717565773483158835808996469612190920075344774503668645698846601049543155877272790350383215718974545725353404009981655744467672186733706782649487757858943524180980182861536068966607815448371831643724010090314431108101121764847640693793468293744473403692282892540420810444574480866779542241160934258169587601655842801690906912954629012688264648129027109755204837949627677429049634558899614542679586868700335566397284332195715895021825654265819540233838836107111018672340679488831472010497509743163636520899388287847253739977496875267383023198841656692473031749319510991163012189890257228375660719014839822509923136061978091571873670475472574942026962501153672769975339788466247985932012293117607961717230077855419904282827597153919904149439375363978304821559123116548508944826787539533549612021775799686157651749499539944365621864478988187383298039923939747176830513073309469250773595791682151360162834326544124170848559742608168756431671350171117609023326829740788001860584348409523249516885076383431156497097981582265611323967910641001493402715817376888502267179046656056795774483310780864328519794606677704260855320617084387976375059931896105799307528519000020669997851070333740565401752359498511132842479285508478542203114934821980830712843791811202530231852375208953106829151648740400392143332313786944164685666197882064160623590591236115543935323867347751519608263861768453079281124924398760817963991461124410489500613363600062713488384018343860966399260545760202104294348045641636643661311108270945826970389347679860886411527321592088768933986559188936879340188393826196130555214145883805458026886942736456500090103217281317500177206438963208202588935926626939077993554472886123044695576064733655833522298373755556811493320790155019626631297661168187244844491117794797665742707335550642683246176243588268928742969009090995057661741997970452713800979339836497985623295055488676460418423473559537477743602480350864501384685342148950043906391714327003802517188391179299078526795241565363111125847137994565858160772086310204536484809632767156876379463852666427216476991121238466352776484940205486992910022040585593396357469589089405558350899787687310348646163188854725817561309579813250944979240490926284712366226824062828928354570355158136751710693632676967474319515871388417566192593517740247619836826003593321471477201855440715517596535096331713465198722460727113666395677944492896726366305087289783135348650851069638420591188581279757995535392641766861627805860920809953662389357244971813673230643921184234812684345322205137913197918540561984913295454369190293720727650918133576879059152674729013463873863094846313743683496660283476480003371098218123149167704468288555138950197429717042377235732169289016251683832773752088590008925390800922501924146778588146949644364201421385665380790561101847834051731944259608570664820755678243130798799022452426412722074851801797937956143439767951913724435606883548725343388328023549010180100729549734870737921075157119524223636498142472535740813169015691716843807659077640106731905813476462590871105296255936406682475416543556731628289997720987466860484165256576670116847633222155734678826026136181297728329090087279646743023412273642763839948278370227982655750925353634948762934180826242057190596167997603741633251748206694757237647568560083770455087775421834398293743939850870855107411319893583671954559913664864351850261227896755549956747884154843151678539961822294093167318328541068075602925493173906784996213706105925411316310970881712740494668894606345216815862904263455764397238488875982138170788260251720271353966381767080943131953467328365822422130463363760807285359521391462099248189889351630999300952363748831015985623777367837474059984778035686072362394276890757349640929025754435858796547821795731591743672183105404389327673987493034552032280751058341226210399008350832760606697041857018768890807898077519741494354146126883945583082106507065456297608791901144685063489321762866975231560038910621581601696208908094110957120841484766661771040794834027372253175447439855345723306098202744395217273590449956221212061567405517336716659912715420399204223576300044509081456470720680038192841876251971107345193136627650443196788179028634337132680236353679631631195678405738858078937568872969932243311888438705276043910017556439429396791993268423398834614559608707319660319480738154889077252849646313853703230622169146596177942417051092647735874083582045082974834134298749834095184702122696359398340029228366206446766575883418676716209365682015128353160006720752339634636980706850427888359349000757045186190293240909182814515967241251090440378226255936326113537185048624271474031623190365956766443089486140427236807614975355308561264754556725344241548697571695975224069912899940116784336848926020476223736193811380031749596666764090657119883019222337993489385994155761856193913300294952200584193590926172495117638681780541451684241009037946494147131416293925905776324752176514731994906245789762069354064662017726518270559606326228809386868019540472517884393662106669280307288268209410872657551510579561393237934487605898059030817249797887214323410068628861483376852989958311896852173253125067869489426888214001741664723771473895505607324576141698561459653462921351515981369140232634960632543255897417008952144471637347658978742595458279088370120008546399728329622696381875498678702327423885953119142547911376408777397167666309261572239137511061409106727504622174850651689038954753128335832884404960794803018307563077058129719193648560050743251801772332147712759133164194545235825464272482821971442841356358048972900506174060294190195215024879517301295232255923997530438154116990372915304672534293015693599032648413358483184826712603813476956391484296118760257556723942940504228072031831687596356579133065905141425491409962544570224772461588109437079155285852464830988709537102795818433356824683056711917903352408282815988550707142254457315342417046174716910325414870313131023483374396130347757710457003191663778496383787940685048332125854703370360359759153524402472451071979770153861193531312454060144696012772991526569705055078609194857068836652079507209898247350561274846500420206898745269476441847875629454628094326440672462540402819307974554173481892078221066633678922665874322862283097943493085028337894637694154927708957764162127795467579617822766094896587450446457675442687746610836288746920203202164457372080950564098195680835288744852745828738420748076588022921176444274829531324764916991128063222369318543534199424569991962424290968819093714651414288967777296540684452325426871306290126202225485225918838615982907835214965226967634775085291895662941580123724520898646781511896269956897647680514908789808754274229321916746107664693739106279742105619134594222979621181195930210814835361045285386438875827660713849110098713015613626473503919153580465390796028770670957625046951591700825249336678925149236407346675341691430042479181626955925111114037993985500509024708096315556859500751378913498916809685640627928701939753906384002237109924014889464480316287632616578505430402816053904656100971294016482404028839753879904542913299912271008747185538352631576456438040815580251294716534313055891201577493114130908221630095851043034201229751008092487282643383997334625339011675667824018087483110574952262425710878040616839145910415850484975534125855056387815752734339107507412749807566375806065283831107454985637968252406298555897916395238011115756319331019475547057113878254791843289557806461330689412176250204556189465362122390515432111983812104570997123939104330355225629116959044247412446662859379768982091520813877455013205410519178574574559640809793189412718887934417987005919685676020012208461306801725601587121633893931931954235947533587987514602207225903757852814355954810756341185926026590719615729915707583888691195587755874409597975157937630258899080263218934166729835055351607299141979495468782413385830729369284638613198428381279944566735233735529618498300647156460985431637002499640415776594638369574613164826647843634561705456240406867498830154824680383447285636376442655113890059186676196138581771641175856567179764781086137771948845702112396033393109641596982206132393355687919207000464648191908256543489445805807617767316590680034799294298098561604813405714876336084252825588603617738799606315291167246172178371565466485254104148663115136213446568087343619447004400187513340584980551332984879802170452583705280947987168547912816008510724910557534492947988520085937746456543160560873463923969916158346552766159484421752925175386758400447998808828580618513478199828265478892197137601659352895306022396327023055561940517214551384304179412717698371944003546409418956825198725351450653063471359239146960965604808649890657895154332858202309427251978795215166654812787014572872567219448736161509533616971549188908578589948362665195365713954904789423304867073242646939928457627646025061317231419876139723732561866346829993429007242386351619080550600775654156029982282619147121572205487775063889742820859458170667146181711523910352850006381798873581630679243324390750383166847213819914204955656600418692404849979503262065409622758755675726887089463892864106183974173234366518332383615184639239926572163307911854295908367940066924082298758448407233918668830965313544627801967921585334813558601315861076323849268481315766477277545621718855847500436387186109108458521042764522889452012058161326017285209971027904564077995769761050290771465324191712744567598234648631669206046604617728206020500584832616920385023791694762809023638167348600952801898303224292732803425829616643516741280628673217043242909752214226650398279817977572828416111986105460582539825017356911257541983133302410428949679465271777760378381548305600173143712890519986643865945401167235110161452800684346238754308481978261538779749520805113896300045847046803799969582733872350566610926463115118915302585694293292055563217997957519751208356409313469643872128259964517830782866025438243893319839596388157289863531872915872651143443764012303712322847842825349650165175358277942938384478683355299386802721970477515066299580842497169472826366369144609216072131851134740978237420104167028062927782089273819519237777879181363439480994978626139485626984323286004975256343297031665391669679299829789892140420148048718688401810348308752413067352879305032406445327661285224218570338974895881861162502530037092367388160896173793317476016635940302662819850084976677213497942094109162613652304609583887284864609847605013769485911261798237181669865584535306898293724327426134851994228476591598357976860553911491849405306012795303727263509106553509141694657036732333798399021782310938324818349651672688504166225299286805932474849683606581984639941954783163704438999520410229308150656794052550295447883320782177328724116865443399945913312013104255021180541283420571515300834482980380160616966372045443181261164011169178657249406892782847207425969619056345218213424479955980664607916575654388757789995271982974334549214594969209317707515192118080930444171724872138122327461523922936924752647657658801101015826865161318205904627422418039098302878668104817578280640643211625229569681666706316040612031197717264278049532558629233303289577360403885410536369002021508533156682421410927794365999017844012624204962562864436326329137518237220934750469295791043737427965127166551330806642875211981073379239242887309525814424234702112784289983060740510474161356315035421705086508012659247484581020320197278439596741730582510311443123699751666094122970550869753181913055083104272084651594443789327735440068564434514899475526654679541746459006286077190871396557797567312604777487855718033877388467380123592146159163663065261331107435748856697782402895990991302042448458049341875661646352772053628136010224254274059217812104360613700449404841281419145032730196167226223430165771027493814585154803426842896137450355580409444186648989838799249080620639081054812826542525974396825006418805791027857966071690311190196697793363986282403671233966524609228513346430585621532137278153918867189236117970534814412964033347736028730454541546894879225747020106756323404737101102778059047995785941575978762487873085937106042461178980199663553228194951200710200912110060487591219924794589879637627380257225878280383991041746017393762780922314848963409331265328954664966118061431495475952620148041234874357471582841162385508497998106447897305729532965032041643041243457520272567290387498862210541012578264259074477876752959094006307592521597565368873473938021423815172520595408196483243905231487145661130034000039562566137179053709567813324101011043168929615545324443472101480722317733642434242189728378362618586614716200812132962542766698382906396770663559875443867543456814973090361463317236241606994466655500619904208688313955138429931557883190796366637454593765068448576159097946071532304859601885491839712083560990760959853913957537524465090536757037294734816436472892703732499870676957961020164267369426266182934397750291061905267455867787805445612729690645371931035735742934238724071804683304753091116559494294877007795643911524512508541134871808981810206802937487003476959907616814255886883296648576674124607630715568733867675537630885676083872205297826585628806016274829627588539662548517455680464901723917638882831092984029141694228658043801065117043086538033087414112049260564575646811039893757642072134972453444162951679299306388825546030082628001369675970357708356832888749623803386983935086780065545228113344097216892102110839220340313389095681776954794449535834135120620833258060668052637887209924142349477439244723353002959790195892058512174801878129863528987128859785622368248787612447264006283394923298352064692683178198270024608414448300198877384319757824919773030562076564382676020670807616572523307893264865304352324695365451047641527752783396851585998185582556814057972133379404424245443284469686121680112356137610546355670004732644350701977339508320538242581883827929316842799374264355645550163901518646028505070849861636427192372336446732734837280944670914220193905894449632021382139814469181503719631778274698160742760584349374616814996402819252587666303876521902721449314086870518211630833789419946167073135074992555927824029014696114070208648462687936244285764844328398897462579423527923813234345744973985125398230572212212137415711042954086507154696909577107766652665697831113992355157520331774778987883049000531136612388432391662249872378101493729627696571181473314154112548530282791828539569683007317951615813264046140488730796631177267784602359738156034735659444075068264795421693493103652734873603693108297388153617329890470796930045570091369737450964652271560581742005947989334201476155617924859754462838901233248430030839270353514063505408820211913653284062599354622228692582835609402202081867221136712079636610714383146833511071356821519542413457534117582640750242979782987200904620978742029731286868488671867725523424085173507604163014782923300886773558724967371080951373734463450363600857660565284473648856740153608707666595959243289998555536705796024356521643676876509904153429706849580887129646695253965112509035635078477539870449287966324191360364937614489036001330392353157191840107695334306788976006918664207045525856785931824268966263171498949147516523669387729680396661698647190679435998687756457983273026333274009838124189317244909358250436525107172269302451890606661261495763825820591355755795251956715345265990067821947490113226437034939782841791411048078420357312923804784803025343140391350841812868465901940812829167968866975388162265323567331207613367645174441884108230716732409017470633588052019668884174167979317779790039726697469756272676241975142588944452852469820421095675933401177766064039199740860690285303207022652140125068965688670242121141784483153304487600270690162323081104485742052302540293726835109377146851233502450029364362473562191890048601419907095609000049342586478157365816225185941154111679315721793460308811447177028379056680122123951646537272791722318102866180968414840306082376635742552690428075068330729222496193665603942790355639848446375112458229807086468488115070738746307921055109996190695526180414522808199529721841219494503616718913992599440927263877277447296385577242617207239640268902326687658808019615719305442844719589963039364346804233022508597033840437553603626383322209470963174957030377269487737098351386518422858211882530226275393269850563553458050916274542032540171335797030362768405821763528652936237622704992650987320198295222243327798808252601027148253420704621237917935132303603248855668355589492236666832985773156570800250709618456250059139421934277842963948087405981476098126751072293290836738275906153514656837752265710059249770448003772614796880354932848366776020343180260649000652428892364449674857559160436867471669981031243731536568910603343852943996078476473223911738290251866108508267544045985139944388026605427885376451358323022820822654984241771883109486366826852709076504042197021764302596945252219645101649263317858679191520653259740810581133491772328000581700239075872916238985601802853401136552975305793367576722070577600762683217513705325254236585912261428111130621712334825952473843481294989749297671358471293240892179679941036649698481082402311840840658422126796957722843664826860633298073547611169616150374473014812951170230587130903120268011111876168579535881660740161042159243268589033166862428060098534639633592804077120478443787039325932221447185250074401203846075878777196805371266447235544675246208577861975887964686546924888127601763983743273968497893716570934916881666399119802635761715808525880955006684667180359279847789136648835868058973225606173146210220367129387434366783579608685744619247395916256015345696990669854911846330608717997654113548758173623988266661912842502012470161766772436373711026249666626682117460127552516847986379078468728644739708288336530927290560215364812022245323778488491805063612490976464695935320061402354831635038439782413003732727543731145047209521501686481556273362897924407850131674807985056725825147469222651678666501477085619029151639287823854131434788261872444803778068923080113331837850300791094403181859306785745087366369390145577233598144686246283948287447912884195174515458359732252886582009783910797896505632387415994593012688678872845634115052640539638108907504791794833827987961380539751592134489175189512505413211866151138861802701621250969761837511902862323231688986857300340414812150734599984353278215396696597539191117933104576164524574709050844716198019103935243708674245348669743509007108496542614977534079657458463355497028006607326145393805746455246608437284043451623615980406729771854786401170915896764158482393681473151449191111200642663757933368396906247282978044092900759497115850790091687152845528297497753504481124437453012680926910067943829789927730321018256025301308898354990656901536015112074373336576894567786181109607763531963143117350444596543214170436132503773997261559114229913291419627214049405070340743799139490856130909595400041485443750381236758143041878063440915220322967206568721932185603465230643763207593041750133462013468632886635668663227531239428909568213089310852060098465498647375939588853692886913295391869544445961019719489162247856722024253711422613992201316094383011970645107543597093151313654073994646607144448902847642854771046523544123227267796520732948716464947707245239717810101988684145506224629415870245147298561253608018748927970233904612781286185022769770186512524399188815016279466901500940969368394702281816583825014447147456740754721870712608500488925914021325181249800707753410444502949521173331394180212406126023495024642748256996304998611359490167796031928682646985212998660549553444682477124378757148683119275823007446515491791184098105406066901688329672633840364804240265333867756123614142963823010773962513220237024421048634574231913098877193265364086377074971259554433460175468642358785240858904010748616805277710647018250863998484188347029719520945161436805880979454004384932538146693320959738184789960547814620856509424547530775307639229015908663615402231745335309475921397909976515633584630760514905173735487625291592705346758679819748957487501009013242065942765255212518621893142876468467712217100489951305091393389078138781883521848270730829765400530955657115937128053064512945917069272803300090316994066223251632294261973042896406439112204157558533076894978954931403332100133366750466739268160699283447519618687263870105897391651542139294166151371275408012188703364534220289918965763031372575782660787789780524307063928078323847409503542623052033563579637084913711972120334245986813197712396805549905705197071477846643868238277465199231259542052107513183373515081176085429445904157469081526687152882874861845401668440484822402123151967123041425072688169508059246324364112061554474735669736889427872438036555569040258323134010082252035428670007088169144272735421738985109053361784372614953358407161639323962328329411412991371786804321685725791592201147461494980493116372916010049550118520664129835045153752262940631865206088787817232661741587221868059998114261086160774283020668342107996662082397022764556361793282221108371444166072628941343762185370636195607997935200501292678744799143823406646072238808477485693282029370721149346750541807481206706107293550393354264738596523690036548096143723096182245130722052211012823630327266996068691432828484009746466363589402123916996435873703664502226956419195457547276214709947505284198330760301667604156890958476871607261474649268699144972401734638792269873465484620203643073870960288377026092430232429330076920456942232006871638674249022384498366795979456029088594446715633007275765411103988857752180268377184670298253186897918631894714505705799954457835049847157684312388780528987868956559606940226326199231722178796556029988087922013938595003523545403067054471140109475317003119588440265667309438922486822951592930746208953333945627350369398831758111946980079924847527285079942731324129067204628191694182355413885696597641723131255596771239281210971724227301926869919876430305350219690062517657834552548706213038517621954437490541002879457898081306933317713372145038730180949695823550444125857919972104092085024913414285880534521931483533645338009738677385971427009650373670444969922538904281461403902823567414444359743216009961832807115063055554210387077411440373377927515045653477777869753239829377503541997408515537767122444194162843534963290413273204483105740741865413140465121058696732552973056533731312469530247375583119255319009763372224977175116696930508125968062144726598996144385246019029536924070057075207299688775474203317059916459612178683333110616022506307115674472892290961382610838460433856656165967193195694987462668237849776356489824853092151215069784735457869495288200447398730133461099327273479321989724140980681104180284508313514167627538695113997930491160253780684776912852440728551509607168952365038226891726828601647923432361652168790573845418521319235334870998299736066135448580585734164494016122959124683425474472473634240809196441838281075434459270837476110009072861459747427900923849666839234989198375197910587670483379764326981517722510663472356948752619234469739183310548532750459126814984228577663589034073958337645053549540982717066283059176884116771517842809122218485654143676769025439020423525142193383437707582628908702496684060225881554250229093973114801944413005111814497842769543935967390891925822964799405894020464173514435351241192239648489749296213777224277494234937436186412630994034977036470145978595639842624085742313788077220526751597047400524655258209180276169826952290016010949750020963920444008025268313079943315655358324927270450299943974685723285335007710180240848483939718831943581137735264363218288959983705254141703104460692881844104978074945096215490324675870015206583365894303111789926566058537938799509121824821512152710515224407045088993778185714148888775345163775459944834226703380887213165928599020927119821541047700849646549401480384103700792627434900119895340286297825652932848196304099701551815064383648915202927989378290946516247141305301873712228482312707850675530010059150067527818298769942047467731576783386500788154681542026492107819465522229921934197498737303173765898494658088670439979785230287263538250718484003284588419690801921452694102108018093720331032377763693160144544671338802583136738762141601098285160167633252636889338900949275460551177635785706253726035661041817573881298378201993106009496524259727374494847800275169189795820232019946004671074837623445922439324167409793139487758548667602300398307565810917360900732738179251264887540272786745844524013481856858957115834387078921145557152482206800725442899029159370280812871984928159686865900981652334484796401901338558269587231203256612748822768199898912349427973362011667243453217896336558869485371366756313380105107429213679743933396823891573005616193592498180851022312907658881459469122202131753843300379436514236888765120621721013400872233962908025086533971189329169585936190717298874149050133674624126362391400655651239250878189552847466068671499726426985526025441837938442475664471445688914553385989665863538963339638148043029528107720283309196402711240828184608005054993485025994518310295419991832925059164180422092769982077248034883487424422668142334156054541099603035771749098600384750955122399187166160209046553931076433136761899680521932479091786030119926697130397159379364007016105405391567415954877974902746876616559095966022385259370797321648093553516005809932473466951779609747359426200893099662578329604333652881130725369242372986772832764681039002356580514738446665876717235550023140085003162532036644120528649142053370448709484404730342883160953900950699859226280552685725994596521900891609586539308198342523980041754695593214317464286120629005349432438599692024104432374644319028454510975249990718922982938613014807038856111066258188156747057647318778159087132061785149070682492904225895833491592308718258032728991568015214302486741233971850102362273282606455820942044716454541290395356397274060663467362386106198566902605055144344700000077243949190326902774959312000238644135856787395134695553184029786337937214168006473900398961875054850247453159908499774429360939218939332410428113162276779623785858173139338765564708018391010093905657409657226263999231155278179399245204756197193585115545691321278530096731835974219772592319979853565655631817737599591109242694540131939744989442732825825662519384836447690838891982718533859980142013944510797424352396016458922593610582779633614167913475537018218350801856550171319488817177008791998382175689205811196932370410381042520046005773321953157579016588366113651289565255088859562852766199563535713758475017076888851450543852318840220727988877940835639483068177149025717481797047238010577840280791949743561164903018958567818609027728939662854902745520274724282284149306202990679394635001037103363323343468938154850726820930256043913121607824637610845995192796093850670418662872923852826477897915271201039121085714027435262737972112751821652978416597323784131354063171147013819394519531502906390512558977974581263280300710545413801461311661668117230821804802845137099528283311158447891785254412683241315090909797638699179148859723912665504073388764117826003113721926575003869134014683021795230900910304335309798823704462147219937797325872175486001064702770497063903581866380772335669256871934195606993796269643760427025251599916010575775180859865959652737449781445817829358615212937952665192558825377657431449653112468100079214011217251770980886884164934085641684578462953529405785328346954943222290693198022616908211821930570136693186586958958921810638435519328484056916059424821551594795260871460711276873490240650397541901180386871321317053338422336143682486084230170645350466643467875393510027838986872817007751725487485413920816627470527412698476188457517984812574793543657083828264957993775596399715044038315616214639864650199391208250857301876707670097841443843093718284929466270505261602453996186257294824370304512098737642094160570952842978169507422790218539881916436906786265122791102906884308259206152069053899316914161869075006737873473711207300062380749052898738751391114178274545037879931932757113133227442533321644425785449336316663334689507304450671161871485669804295887162094383266596722327452632627720270645727581013611826921683899234938712841162916217794183660650209762589822820657807518231598384252730683698656141743933213568338480054337133564847857329720603645934868239498161455140993080287607628795175966042847282443295662395266568977152687793232105763672486509694819663098135486983510718498212091094603837232750672232012968591525846844674301350218492365934247188179702907368089323806466888715955725256284457420982076391835361287286850074964148614901588954671771013927021228444952498137356084589880487618098154235810423438585807548813300046531196131654670565745219577176851743796391762836084545712779197968430584167206790962187448390460089366421748826085132091920624345196157436454929290270068571227065381300007542279141837777807272827883153432908600242333973566842077470804115236207841941445227961410901477663761844149569017860397195719349872848248621922608904813057990452209765001338541845998106650492852969037358273674224944943889424449127771266228523072421382972597587559057910804184508364902809788062765479681911643218768472791431599823423676261871584769773238658394932043752400755792873914486185649391859407686834610203018691225556048258202964856184752125196654395574576439448115348729986001871401397359797068996548324175120975020728325164168332304473526817303871862886554230522666820665412099754052915882178636637418428984256408852603804395236734053821288816983034174258418067994384542563996202811719914393560459292171422239891196447633795854806251046986516402920868017687335585016407995516387595373557182238599089425004905646855672997558734538118653358344204558263360469857868467673846675904975886212600108050659222604681844549598280026159480325527007221681316566647397298086938085100573780830182085333354768428972389334459108746382309526914489482282820825672459275162548698502449222265971366987777286621261525517324482186298077501784213790206843237416486762303511624536296009514822967462590504945448866525751012892355200491156808733258878032972055503072793075397763967935475879919215189204263518931709188956623992677183797722391477730265032640601622610784891803835695586137807607393457585516406099177915807726373999595981561266889522945737939712945672191562068587626284812329584266493415747289869841331117902737727658422290143779875607181351555575822765943513381889419103306330722535948068533423249885223657162561535299007906045055807736805107763757718454946950212431044645131554168673865549646255402875899679442802226511750112775028231780375315450002538518500903412269209624255699537707676733519285318810663079119769590088692496965220820020144424328406051586923079926396214093626097848949095787010202727772502807486608243900901669634406490359547122300780183591562627429906782773389849482660084839024019301199496934887830682600747461580562123971583753687566926580031947037321118094694236729555736989331126808411462329830161699073740356627534161569991104485290688685831022208804917684783722281900830533816041607828565241049640068339734434137742241669366116245621043322845527439271559450544071779054087714965537133226306918258315424297639205174764348748772504787200499703716327026617274364807890506924081317237301712481824692651375954721404820831989681213812012008121288099436787080165413828041869490813022296229178347706084580678215719556252119862040114325444101829819361398670470767841011331288943591503300963820459302262524939802236826958889763102621369977790337138381842610865239789038460472154155951542385071582696094341023538139570022797932702479434820349241259202974229862181473288424637566288127181450448212101412801094557131027981005399304679675752798696898713298856839034396747537887100168867221305794022409044772759627523486153775587589723906448018850115894629016623248425177256375094106080013457612741706188524462629032184171569127105691084637603057566272832237521987772934740898257500073173802634221315654903073227208733708975511776250064289810001635567513631532811874058503851213535614314273337715536292373620059973272695862287316786948819728372892372943280864011308348206457885380531349720255897158334158825351207554237786997436967973698455951723248593924367464363215231913182267520775373541526866500576250103197801873734779462490456610383386507899306327722411198530749961395234615997201801155574366464950694208332997954927986020779132668255081136516416482829783674641435172250827641214613032989227797766776273710703578443103465103730747196671566646693767481445735336892428086546846066655681352722398489916667950404807911309599501187167299527315853303541465254336479195720422800385984447033880505161288914747070508514347033753914716878018702067065182334984652172708785537185722125339915669485838410332147657122873288420940469445805098273215081737389309555687209332115998258636754161059367996916794911613713609748926250852402878041792835411667119300734073961150762776729079231067133170841212707741085196891318647537719538825562013537532953201758182379385922131710187606626512578940374293578340331309300258971424965043511643011326461803570022188050504714849750769351823157563122441616805868010291174120017083893839363924173437798895626724212459449449978955869459040208771159040005747776542235220812055344638176661216431853006030541169172415952514697821563395081898180752249123955926611418466105858575787864937710831070218610730612277652176020936681025776141719141763444767101609894070397263808830086939210511654179882700109420330987776306105200594145441810266497186971978207011205367628418048754374267171353164339253286960109310207692017743008463465514792243495520122006520379151483063097434440706499891014898099929127416264231010051516977664185698902050625233956500757329676366577152383572080561549737679005426114868274291505934000466271795074548323569187072190820814249178137213599512729881727657394455910473406267687767805289907826752418351913353391739225717883653144561616397501770921984768171416967794147511167258662823089841480459445247454394099486553746889130217993551879769035261580493432032609069439357007515437579268935636663645034934082308434983395294917907774401884350399231912872949904432426844065661406238434310963745861204649055153786723472087917789994830829840281886817282381712318455939830393579245320169203229836426760624355596534846272303265340252607479639344284080266919233514308239106559190168985756065566211903437701622097924578184348568220306862632588767633137806816405689537516581255773202107031805814177020775867778819990961186524613189187481852756131175127856305704063206994261383405184070367512617636182891227208890011448261905211285741346695596778347776466900026713620825167106199455383642543507946327855681942513039123506142794797660076801646646734057109423140857170903161793975300302386969368566153516794289605955745387116829356058488353627443645061179889395055296353853246304057172480201475419604205341796274910532541217855428037229555314350510520303009304245431196336388664710882490117850535098363934264853353554740081780848839087639939387958324876827976175867024889674177534710121939542033921853955310246719466723140470912716917311057059325139104479155712387273056895056680194503867171272112144625348052941780665716886404327569710653433059958070456505563087329877812180719394379027349051948067628340379449562862108036516371316482488212058347348251343596587341429509691675604949243526310492911339124952156770524952157534228793526814982288179746795880408964531407499619325842042896141356020883844439878068660440835787125534554060015216211428376148695561897713525018633610459432020800494027092830642309773427501497917991712116369470231892243713334605701490171593689129537686606705531919543714685482891619452476941673635550969922803311671286625308913790426529504394996373704348563575259097051407793168655903252088221978359136254509099405302786248877148033158702165640280470581704499278256345301848294949129960485189012079299347566200957338642939965466922984378735665647171735580630010278996352318942626900131641988769765635750531304620632875821591609847322438406075225998032560247594394149736195611594933966184803613582271340304851128659683203069028828491620279055840503386481882467677524259813454760301732926476973323039391583854967958405577783644328262714355828495743910072526633883835846872947207211318123995330186300124877850744691566529626697516961142867704743621560240025076698172537393865659485459628591922711432102718537035800766661655671755022480820601446247223886141432463422463838216442260654947318673132593418659958449389479522460431668128469215008403035463582749970133482681518906375857891500512844667265024950684769479091063147082212334813447307473053986473273181781956144262412058912755157219372893245072243005837905357037849249269026552503571851763269734779645132535378078723478341823739297030016466827494067134279682883167664283313534327031549538327635707785298755937551398276864452239724919336140219729865932749148059870047379777842645917796912016599063306234718815334663291166566851719785624726932228932784587893776721887363755570306347745595947681433631759187323265465180722511674156409492965065160390679382778513793302459557766989556418424298915635309164760457601598988441223147610710153838783250622422726244546271403286295428720013269462652451473910752692588065735321489084745230944346285226951173583308836974461470796476529254394443939759051921211388850133460291006272965554576098058364434079875618732500460552529557737394164372495547546305991578504982786669600224303900450607182416635239093798442006300750031671037891258099139145000593059982239182187067815257527096623654362554813525039663999749359611502337752792698204005572112030110597589657464173051110976686877677286459422618104161714506198450591307544156711103415978792838022709903601703658274585241811063093909002618567771896128345094193152775150235912008436649732416825938364800289933583393035578183844673777607824807073657464603373376501218046113875009155535442146993831827877544134451803317930588388279511827260708784779873991180786591494047164605208594074365410431001515822433347841709792316368612296428722817862506248270336039874096868343357067299468253814839660267862859154249843355112164817953764393499331329020094094475275042051891439261084723012533337582355581860204749962513866027587385478713326297900330749967214639441690903535155076356760295876513444429495630951906511655324745919022435972852347928463568018253516860106593591228522011843760935118705362938033826947762690830902382445355004840507620522639946350258786558519961455515474842025884210431497963088150437528104728908557111705629313669020188854600745210322467092015785976433230131482753130210869606697073615609184238883382550018360870542408416446573480971316437218938849400656062722199290054596299402968818226298339663551723007684320791948418781409823867643451751809969057576584090387568799479054054123916290608721002997532469740150717223989232321716140643882016546659297002661453928374685160704343403777130771637198689834730982113425225878227224691002530920534035726225413499599477708163622324796683463218559060496796520380082848086244373841850336037284361275773739142758864954262528679003771117527389126571077198378502346768530137620473313748722203993639743375145710081514257310204229814460689041923656371031023887205273148661100755907659946043040478262932661405347500260393935527859547063883518442313544411969932603217751479508056403376448427630196255440795101029836990373556047666977685003174810779957199972806547237080412407375916770187499566119966423112623969725426711423471200776284613827730420973066858924368658188424104443142951817650476339009199654056785592687965686609543073981022514110033865424816304512721716207802915502829819696617981139295670078426752331487532688344472681943158227819958820362810286856922971058642028777736236255321071515593353996427506092234220213517946725513744669421299391616137562607148323677686632871730884551083342490882917981631790809567439801995914446371651654624296492566312981676049269888350321444012347162587626208857260452367395501711454416416646683141339736297019573684164022671705088500568993937215451072312052144683314684150325008410749211478576203510341285886632876507964548317589823362603249955288562835615000509744768962140282521589048795454092169463348895960016025201430728203427931352547785057862176120219337728645387634246102278681932433541530875440504539902509263823064565032836536529730756304502618872198780894676739851763337738212835569710178370769426856664497669525500815246979890244873141802427180319299096335846299601345913056188680067607803990502477163537841776360170714168091989925814643722342485645436785325451206689067637977388520734367924839309118290778233892222157761580680975484590059877124039498420877596201064552056405257317224107659211670598690568636032592331638040327630500635731607887811189325964208226688154554401918888420405380959585817881277822138598475189425184869284193820272620000350321956126943102498297224134068717634481358479569781155818084377960991945908132812398583152900215920042161663903221021219634156423904513868228368189881205649095444394542462694125617530960089544683607455097045736427146850416026200078219252808855370819314664255885884348968594834079438499330748314155435795326393150665643376866337208176603997342078763019461265411820956668471901542701206197892690824323214569697379589354761814716260704333857680272882034758248590947606343096404000204760098003541129188849378176309941037825437550884484642966560039362144593624533755255587117972445424966674329234876799184455144849019416712871321682164146875430575611925147457125975844632262641115582831953537253369887554963799794215762513077142000288773632927322839669392901679891400784356479633666429637103836301309822330353947241742692464819106081575070389245873188818024158923555376172638131929613909022770344718868055148884609874699545630690374231468486942289217790964464778005937305445506123915234380479680965844073647528910300368581512959643657069144508128619628958712329418374074992132560749483372166606883408782134188246994549588976625425028775261829892263760013312003137056976854335836547853006822031419494231415004687961739302416282048138367639177918870025354248975558712159182875054223567115740657027948092918197862428841039409795383246843827263733513236500498000319511668778028466889126240149868835774125664645742736366231601340491104637440951182324801564898528298758608001221183100854672586510906282919767173686547825678434813926597473191908159560073588047655871971192954505434454697131708779596975536158273344597565157374453566554616346335390363196418785364444265672087564448142045600066648446418583799257898173296978821931934905476162314366787201387898001597532165953543036403479998395767399017987403629422562709394681558527859931417948816886130526332010024677699859335719635520679912203033696530044494227983203002351790311814918514733426019072535999603792284558740354215311359327507164468953470027048036004325521358901774480085235002666435365599143504017377617880679027082788328237607695419098624173796839083918683101346564289137765489767284231715422337804773507938207564794805217943062934635487835376725953586384299615970803911024623294726983497526730208575106355619278580493105309365095115287772886623514995646390150273033320862103529416319885134256746720506875508784746620785033430122951934143294768114327484990975296362745163535711281094008268633866581588781110437111041511602146249078344494843171476971623618799012319367172698884623483721720881632818780067997695061862524302077108660865884369145446146944872466688895092946881560329088134681715566450172721124293617727249245022168114488625423539482381072134824338976633210118808837014972131650054397272879658964183637672428718227713688547711357472699785512545555393349131551862135588120515425871427316635962010731474090129970007587100242669593995458077918377251040182656699884531379338557086332569360452883810346002049527520988779638558784854667242684618482884004444803244856953876224535092344703506374277050407745551781520144080195263198099966479032834786780728731477639617461025929534111731942411032401346105682843157607163526056646171525450237719795104662374297857901908052544671313680269335271386938021822862040638582260156714353941575051374048861051275917943816007436451460748194829465697112269251555766680094731489815869847077380896319001272937264476810278095169453923808560905454679724144448850129791217128956086578010739337018375164473767420710656196113862734248980954973446622838851256697501018504797356384900988941744294012248378017863100848288690973763083488125970610253565235376340515636959070663069177775046555860906191807905341344128504318323244725370159804981553874689799194797247751203081038012126588091732333107153477986417451359631195921924701523346013158359933716686545877003400826943337773367313758576833921448539163850712541475735592852365218255550132154677925607108394152001233640230040434437912812329210231094386611812984380034602902166218003408112288591858770816407053885084817832144218939613497503541200198142265141069198563429368057833976744923484580730024908865951430539928251991916842921746563475813330686001461255540748725915327641741303890850414476825396734781737339487739976692170346950946860776820874860706204247949396564362373109675907947933087930481382160944977944237672288477950025278033562019427964231229141810536744553149227789038248612850477604237155394988766580677545145810727067375559331689643878225378642897427725888637378368727188861170251461505107138481116894860890635438706539416829003035331764524736884723428782583022134560140134938086196052232045965696667422229856833363879631981516323119901871471372284614446354610314533113207329397547537739655128351120112065478317180294699119176550984286592886597158369387773733148753703854706364849103215642499358249805135526590043936924380207244094002069084880342062422350069876678473053647063893525567062622613176565823395077984504227665372766579357374539188677987103192306421148100717568947126657174216055155467484903427621946220205225925725806172736720240679028445185925085789090217998194710288516730851031612829560350221533107886901273768758469540317784101973821552215019695128587419642412683034545248255086029604473957149426859877738586637163661930535741275050556060333794673066453479716629862414701452033310062946329791797508411329572618907049620515376878088648114879664641496869011334830531417787148331588787424748513969622124065359467443699283972477946425442001598978134452005114227634025529288912867177575299714429445383894198665743339052098197860515575455805125459062231331619157322147238968776724666671111146881817089483734033273803663450749402648336983388054121530429762048964555280493267164222424807011775342568385921491399713027155143217907569833793728982173531722751302766399145348603300596603229480718798845910039940815049724216513771582803988145581159489678136622446384707030189945872598390171427713844413009877614176461727127431344491927621948659340767729398437820615646803167385121951091415053992387568296634554935330749813972717837003217405870422976717850247470707241092944517291593207005143699942474935977116022027403666270651101012259088570284670631928310743770337321992580792603558910239572206213574759329765454050031460010821679914593656530665538481926831078341044584235935925797457604328951955550924855464713150929343801450782718030799231620107243197830784203117605817826333472799264752359139523041098052577643914913814383111660787361213480657744009831497245006654132476646087673355991594662336241388480691316561656464080071255112817751167756359607054361507009134374770990513000848055663090394640307644433411403662160140567931587279266974569966131930353851341689547457455067694686206918558730167558009721234246464338286970947559584298786805229528579398761035226512762826492479848047952701719746645720718367030553226850217507012421694242532521295952686352878317004969788206794655491706543574659924141061254897616922929599051437121534665663771066047427933239238899806404251881489870496629720895376596546535051665373904788877922673900383173363782997624283592175572428801937749068579903180888050481581601962377082862136440441097757577030399999183392388633588264947437818040326564272605814154712696898298075162623817779152393297261911634864491417418383661356560664981188561182829838909417672312290083597070175533319799770016956924925832795189036692314085754417854019246578840213048697544167168042610196294986719875256940187093164715554024353035499669628378551209686616861216822041229167414283616329382582569673124603144967090616164943326255116839621360731917311351405694296257022780139621912040445825060066896048131432937177466285322322542228328790291042657976775409581120756697080079034216350515197975730176796983974043065030687108551285739757937214309427771316398894944281450142292494363419334521605696973432457362948122440911415177631695971217438773515149930232969200573019740275861932308442195692002067981932145138323166222366785061201923223857770454764565770085459541388206749094251317114130617760655109463962952220230566726207817695837034798071241301244434878142572915714989886502533380632088527009988444259459609523939088939027387585717143378084319611510823360046355804503491821288964190531454356164574677694534412468432608764643971157761748024481568373828721071115025717223713833823689419019352955336277908331334138881083761931682757384867930844086562600749706735821297891483319766675394534357825371747803504518969867751533362256444233799390457839840305958297090183865286534202727408568582890916260155060997047540248329245103125123400358414193266381484746986436021318556327858965717991804880931177229766761500829291983148238605075732154695163466983497206551958189112844688261398802557186634426466167071618055790493737362563203689778162550825487194873451505739505369235590248326508016968359987733783850709651321757283531706485564434310481182226919500653887816082631493343581347491906041416865597566134523041548859885069853409347021666123543533114208197065679923509632735444827766003817695134690744819283905666867335567207547317446180519113230611254237976979998159776291373469629463317857958680679416778718395508836287080859444592190902569782781541509415773993011445522530871815284138745483110666914824648101386876127136000271070601682183510672129108957138687236042484614767715450460093696408733148686187062150348159271040148094284936221158658266057232158666514823258582774436870238695863383341164730001740081553414475041321458236274927667211104396700080423190972954368128278808003869969682486057439743197414736941329496148754405837643848285030528668322774216383188393698871393564252339031937958542611825419388524687880907454938904881296862188452357598899687220422038084938348111796923347973714107604292536627236517091784291696575836563954820864755971892404912904012265044945352118479180022815455364181720327634332028881820511187740412496872190396102825843838357934717671175664597052470849418754570769923248236060321764660928632975585300124506845123520893103723368579286943139910890818781486827126301967381231019874813014734917964800164060025855731735354799369002603822640961964685744309244994624426387557842669495100571885296941108753767550556072613907703390091418691362053891055647615071596509596562664522730147320978088776298997360092946295432461590157810642343261995232949006729172273743630558448776521725829126472289005054315348331189341766294996705890741728277775578788027795116540378057641234522813477863871999903491142738740425264397787026644811818602399643025441155572401921817454859146234372622777379589741715172048997981206386031113770404118265850025920132194020525420103271166657549458152493937847454773543149851430719680678931949475327617573042312106571792895786457690804491162645572241518433932120508793135188843578654554267800796787386675597126368316495873362616507730922323296021697182108075346926942748500321295416791207774876908030424255541865112742740686315859970070894751282463622671010625252725317514965369654089076522182626074790807762705643629001590657064893328998703523660499905112422675484908056610418699977706133941867697295121408389429617988836546527637660369234833818221906768040979915073255572673060847785282531835889799393648603498931264779878903637696861655318102621840291914515401184820714276195902031845936728254079569092219806883519025594713460798700103825160019259184016097914797786015593348889562653831528923790506233128748604752114291325285723164688168237324370392589639940018057382206645005057043656699582348555594634141413387406532134113312274766837639073046921837057818594452879612991166588329013376441463916920737838959197080421880351544854415463052759105946670605755123315956952140693761092014102643286497505809469229215694977182308037851033531730460636649771405550324490553751266745017805081184773739266588285198057073569907377462506738973175426764867427537121129557679402130727807890446996340326325678695104395296718143778331882354908265436068870217256372115394735495316640016553888927259569033337682876298686429072179705301361886519476548095128374068130562305650997483839999727185862014613875152712118668745300672149261058895323310361914919454095772157236585618262052857705799501691478761971125417156212167009123699800066751419007172810307509959876458290484633344337449906598482278431276142012930217796868135178857448711831374187168138602225843028174363341536203290417776470653041772912028619562586535594403556443554758728654023766885992022205488003628462157034314780337549424803335121487578532008726023183035446231726447674215796948303054793172597917058795746281467206824504631669254617537803849285448454304131858166695564494595767124500472340927632221875285813731456732175686527906239592662168996398745045211792168766187487654794904739658308274019581362555501229209355929658182239378496674492756492907851563842544764781787449702650218696921482760079017847723297108276220319036622737940839891438383921868055077025684430494807437441463529862258331362364711297973904326172491377400498434813983672430682581067764649889879072035737900810176728055437840760950432091114412610585567918268934929604616482510180413226920960034482822030140537156371229385945181538583996398260173027884586800585070165063457801858383828525405708645849119670107639420986659856173042225294875830313681996255567362508651748727644387277550622480704045552415891768508795237476614747229339238680001890273073098062552565344081392375761226896667250744232893604892888813751830275721961036606099567181084975258027259827055481213197304187492434146447815845760117820041923632523709224861814965568718622834262482594393321910255210351272628524885017326443269702680247877529219048562719926142971341067846885163036270948593425061874599148339334456449921910739892906185356544421883174455599540793793589887166798267013330740305318903782006355049933958243602665660243583424973407826307147234996029067005182508340203094096609055266721413397845595510964114303107431822930979960243194783993000100041732620396673138569110584984684901177713723487635240489800373609009355553706514836209186182163875715802435893853410327720700301153514900573822856215163448312689698562467734523363179160415118457623713318166224939609099668072100919767743211240742474513131846247591511083207308280076337326966878508939560900949382205994576365791104384354778946056592198413021946743339454044892722863494989638451887858953694312183840112285094170788766500154424407907578507820677438985613799527149309083978294112767878641402641217094567210049371624273771538475853649936235700984274124132967147580934966601150064944109512891573996183413769690367187572164943466334440101024682894847871932379476356416078089755717059055375244035940531700550269414158645707369981463902005798460596284236834773292397666311544827158704196570351439213202495442613150890115138669591048375727732022534026687416945258881940606588519743271883598515933963469388882403992548969130785326933879709019448682690550365419562729531739184335789280532260981361472036237966577034463603913318084585285941721373460011998421811138612362572205563879885360344917449746723853721230473258802457971217872230072183897254988956215775724154483454199003481032051475917760567323032192202031250851741554749726005049499982928216803329094958749762535737632127770438171310850042260919288614527715731882693771458851114358539324556885238681764556526608058557916864375635512606820667435495487790110222978924588450542235481624025830460497653950617565222945519572288308066764251976309457847067280963973069420720918111029629218032902379845996447737451824107139910292303691933066490445933103279534249830641336905508124588306561905191433671368967732766315120885436444103310403291295168713830177356593246702040336228511907370820377686762908799807741848525518386066902193753053465831690041453043040725737435369620678831933616684816981628809254692801835254437089764463403750878672617736272025502411964496270262121531718651796167530946016237123101690698987022685941713093943887408314564183923182664354895328673559272245863404611543642220818937319891393999745493761493137962185628235903736034888857926338226459882965281917713542607295391139112044020424875155403617141966924127397219236471094337511042481768840100764268643091949567334977536008101858107403284455451423272169798733939902601864313579922547098055151426556001466505472648939046487338036571100395684364328995719355226850723414969858187636383302988899722899157731118288186166251914095802319622024997343529967818352589326885296950764417798237276381068250847185743082193377695639871318518484971325500089397898775043344742466276773539868550739082281704660209250378982682570248579452063287799147651762174947347537980063971209916664315390890909156658924237312052679741520379014791436129757644353566191777257483429819108503703528364508467783347201067751539882865556480665535901537083007632083336617541914492149585393430819714905362732979519458720568378085513391258843455515965760464085390492921742676355061257462601426832798300176459716289812786984800185693786818804383054444451163219266232160192218273255543499913962536653540678882850398093783182547396411193428487218746387851337049153111187418602711963023507408934293125914875984814321288228803094087230451805886131134044141604746738062280829788304015018953366544923905082196991578934340327427786113648234032213320397417039050079677419278374547472908073089715475007475412553786137127461757540222526137026138004490254970229603761224042541038277571142215549395427167092209915672947367260619429213329667903094407627159208725966749803289402236897191110508536648231283635264691430620724629807268680272118365050101823486857205429578458350720137808554093183415101171884096571015980511747620529262832127425259858464991861728620688634851955763114180434374229436194188207725482618996941020857135341394929797486723246314964350490574889803282746457018172593441247822595221783355822546120458713919657665683393782148198294364720495422730801939322891190565939939949510424531122210843580550167598715342620959367241961311377389241616837959034012455248677175513718109521894587873765705672101583733469741417051669912625449324807462760467890194741489778721653631524338703467824647933348891092613646364747034664179068252421676029217644418717625103432495842192949080708630092962656113022472001413318551284066280901017160939534032095981439685256933179137307113771074048977182955140798943591792389410486917839436783860810120261198267237173366399529256913391660757334006995318587813325778118023753235655135137579700294248994280308855015699271514054174025247360605750084530814650232984198263991315121373795314535705233004754770204308883800410975531965002968839407648261310158177639076881183928323056320813020061668625942377834687376366884851527915410319448901822657688169238541705934740153248848638993904700727046075111681670124893227300895109196390494281728363932022007782974303309893141435260636232637267518200773756702529588583506616422034810547000759333926214598934410787087452059117455707217275950661820365196281139927762699996083704279321545432993510685151952760287284183098546164037013032865103320483366765296022289577144004974956670404172387889310985122668789944293737905416918821929259904791942647610501138353545121023010727782472242757321302206126213008879977307176888909766471649899536398702909605468276563467787736367264478684259093276078078210458544274415231466731097162417274829270372865866844414028858093787618471731309168864080403606124587334343009850339545329095616902070470200849017917942616129973010564231381069202890032072918249446613047001534276780239875118397741416160527702641120921890598752851890299418593330529718841068468774536245176609982910000939753264306690216391253287351978317693058237706329837886505409639850519840202743212482150687242795017623035527203576888866300679998840545206063679665503191213441053091168881053574982566238997988532118298286421560317498425529646117799490665407805176797036143596055784377484883349295271169580807079733957903823481648442711966651460596432753964456429251569391724946288406163327080884855187876100056331023403887107684747242880038939857551005346858606320468668804058904267519906618739452367692944326211123569507194426471585085384242490843830366761000415466884150644441985818608326215175130972150612349812682589632694400155614177473863738152155707924120612605192795395150122805148689361919068460889064863204027539844576199965967701404347899641299504200362679097881473218965105673518258996177491364145983078995875753117048070680812619633923510731457342270317841105109288465809550530037918211961684483661990339181956178318705196532215399898742415715072488014503191863921035711698405928044460348512866878654859118449066974483201229662071356733658478878235851656728810550022961398349375781920842476395548504152754977854115293279522069463452940618714268880919761403143237738939608794653243026399838236527893126571449046863916831023640534479172785205329133318316685232188731580791676052167157562843945424489967550177446212587262272282842982390820922906885282166883370422199602258703709556208102842869172059196415891390665765194143951345415330901349215956499940617954497697543390586952178477282102293335557059546681388598305312526799947703156381584237308546064781244099457252825349949803301331162424626042446980389268155157558974703355427525187530814078954240026835993587531203940930240790370330312669346038751057967936741644855873138017688837668752243410138613780742396076568486665632472162208497487240525372221676349998203347044132791833163652015984630752137491826299066465322076977379796297497495496167099757568817897716308964878424127030475472420885951722570391517648187681337229522113661041238820274160955165080285422750186127675509262662147817084401200767401899251904294834032851341726245271192456183902570773308459119103781127513026878500249781448246352003280283892141851680710343128076941870210016176175193314803032387055849419432397345372759510915174333978785944294412334587754479036761481231264346017531216265832152141902970846496540586967562282481108174971036172003450476995106339212613509882142433287114952124853573998487234731162004070276535249448117692183770733833910790313645341028305009142658825972630366286385088106161248728646783324130003910554121319329993775580111001293511431469738822606251381651056489589631634573396846723756863614331889498190089475766575774310109798908647257792043013643288992495417312750915699227089320027489615938603669639385537063576562957526283652055655919430771524531061329784790666292745627583463461445988494230370883783421256106013775594731361152724982555110509307972763589881686390403968029286214238718852037056518264359566388672762966054913315398554596068214239875485225874286058958139892106537316139477174435557681107134579358193210420048466967844119825575254553597688665396892906813051382565671460990830337446331806806154786032238683206397102683788026525634736336820161145114017337307625748345353895845609815760638457754671998131205327065622819739802042778572451277737182590379932989803208086860759634319127421244053306718449938577444249874173493843187678271266198305825704087135218426342365313718755215579850037858683818678195356132957196551881583084752841123728149418222822589385143357053371534089900325138099791331699551127638045802688595607127473619368089351860736952799101641938720062669864030280532160639873361454873337477172115453256395275796958706371439530072277954416241880340505425495652425889550069855613862411422743701322142972868954198525306397046988653360387509481046266184877644772331484154092557333907581466157991620014481773145391333237319786230124636329160398876357323040400121075345119971428342406178679677086113568246995587862572759826251658892679737142080648766538629613105855084255047728764299947435014569305133261574427486299778572004493185001852156907848234992093428238766535356639235097135585476809135614217468958703746493486931855879475864139029188997111878543067530350672849531125191575996728916833227623595207536855705410705841456532917130964703136647844910795664582166694186411867158350211083217136274526118209494243490165329928987308995155131935060483356223695033664987108618808436396599398835655706128589285664496250137950996816861442764514011880075417501053908640144766670798298069104489014998248582543601346830938722641675464357167146545455716793924914069722859747532989743482613749696266185450510484444436578213015177395744948821503534958968816501647785514593293470290936995763602737980029569605484378384857434879921158657163533930823696293317154100527748313075530717760917579028188538488440540189857421593758861201567709604565412122297701511493908528337041460074148844683402295775375725834498269265779418588954457490306143458063130480025081067446266239308580752000816630228420346267927886172187283047253055074609026171536212750792694678585102532116613229100038463476003722893503434157728451436336346606044992027200622711738417433612320890936756905494321574383566356389963539903262135884917856472809071837148398280508854163529953248240005135722882781082750158062176674416679477825231991696040337552931304743810867255639316379702946631235800715777433553335874766466696946136952261862027600568428632736584250444063673867531150960129574604905551821268905891297556087459113368568977775595903082228330204502864438282402251940669457502290465933946270800133269287233271804480557879242781191432750773449026090076350052868767265918542717455473045299104341452930684622171503792570883255389177636671447446167077235767217045895647638151629336331624389843625997291827960995604343434261926468195876415060868999571049576445910909075675162027116633472495450952607904428330909768411248773311784815723911237331484584920804791991210852646223020905854784520132107927609950130073633389617643998933564705347970319476119452084243174177479032720911575727832144456084487536606342288636064150403128351583895919787830687569084349153949059240937874853359074732522610894750547208713875278401048157716511067245776951172687985351597209660542702453405405558696161679784372262194729406495500499277489344027090326460983775257221775958274328443589034574630477825939898088680524812619015728209179057688621488858105481706570734947180290039670248972918479578085703376021790786347191023412921974466519800480783301902786730037143411598481821454078445396708810101748530004750411757308895771463409639576644460386151063082476297639594806939196337572512873528827763090343794407248085611437414726007331373374948957464176602274188060089361851620656002994764466340778772580045376707157273516206600727562904919485534082545619938424134432286780509382064640655237376323660931915779981896134870905383337704923162201725839823545550680995318007096826455647205507464461170887717798376879796499709141729614045855119762067426585393779191746839433390985677310321744901035449168925578949236201663116800192584460119263432503567958148809836910443097664887719132420586722708488653590316069544394304680510242041496987566404366345233711422774935319113371814667076355526609698199318768393436031068033548199973202570800416668173923997638521926437313484232548192232785864830335433850563870760395031252842350103869262898339385502749260454742907508152501778625073498540468932130108381529791428361940750068606803522761494799871956486602531842552387794853691079640106020629315061449409896568002971035975800667728005177373452001668098788562521580611512453854881681654769467253755337227952706555528702957970889831571815902796461723523327862390999553158297841242689404493503915458295741302791644147336037685602232245419422546605332267347813446193667832599870832402363735852861200323404618242361453519638699604004100607745843393480926679560694580211124448788422914428835778468991055086165370685191263264194232508997288867779901745272713515591005401003265784774256546989859071747275074271410399888502992372335475469463591638075035427384865565215489387369417135967900222692073970225117332142689678509375581106977471471108876051063157496806086486800214036328338178447768475187643843257745534359930551546903596804326051134416773768092948749172064316120319272855206981471205370150010375434814252781720854139103875809423009304473814978848829210325039097529534671045013858605981317650354272592417904395564455589669810278500928773508649963521863897068761564394527284940615232495308708004712286766497427274443626657784295461990393469797140890068202692674736787061526376800765371002290429514260651900482900082742739710704971919067186211409907719889535676117843073083691370721452650251210952304557598200799431068569347836678670436424438670451803653248446661763941387544752061372177451775608318364425941232140512832312763065557157828558902217391762546606429579852327413921870546163345163721435256332297796706020438272996938944726842641026471955163838386852972912624479392021328376080373555939538815972850733689032341608655427044024891542229543692194090139253634535713998601742030702097478850587737164513037571955946995962826534667093161276946365145701595420874354900096532830175143547206855159224506022190592807136952234061879581121145937924965613550665727540500388080854707304188038627815675533271704932416967443892321752320130604725526549555518614159224740244592200361158307535713987905842001025991001267294753713705578371771174828736976477840127728386768334864441449053382083530799393460233330422164176440063706408747586746174340184393216163818345081058782740533109654090710832648664674724910817967687468500893369537645950121024640441942077242470115060213680629077201693477151671348391390526312648389007850794353082629258873747154281052019270795150323756120422741799251636312308855722098590248005908896848745333935465687201385865195586839085537854528127998043965408096798352316929359173548716870801991289982911712350077524333438711330774289813260529963770036483267643089797568170954186441169961910041551286062264253307085069098149000368721127315110744397627126143971993629854509996663222123785576003005600770793131175600154617667568922118472998328495583508107579957536280542740757654812974756008805622804334339845455929726275667105033534700694547077698233521382738940945594303598284680860179740117795166185787915098350429104737077676390176760860766798312936557438268600665333812125402906744834761804344279418097465809761778976411410471515884417816990565199805714742286839003128917064354068961563067855640200405862714177453718879877418095784596285822531985801552093971787022714749102715485537087925739719465897209132461016017611426593604897692680237384041029001661925316993202846233271302826089518977311001858177387433947829298035484504172604515863345242874037938262339871354304736785209220321416227199087164098943473205956405239758692928841843614887647949092555540873080537823201881521714856489970363390836696461938428360889694470917616092836367991700979899530005137598570605777264814080458242626971402690290417022456681248810566591038870899426918409679982118081939182422435812791370252774056931051246753011013475550941855393773251510240397624130988635934609963603175861194367188177649923592214514483513210196147189008781921182671095544828283613711297224204436490293889627328010100288023386889165628133283143484152762457867311064118628969828718816058041157115810652496089166396179432702214335677726459847196260061431120791877996634129132145207871112052323097218453024073524182778406261282064423464976368785453004484863079852714604957993020658067357511545390142098378625122441706839266347871212158259048203366835791871027697407463485404054280654209918686693714702140573182118660688738196184536559561640835999751939543026841599018637046554572027197286857299746753018473884175122779367199850314357375478679517346445429649629514797877746202942085802994457900946563867155013092611818543576566312753210150506539213852823810403353201701354835492413415993723205421801762448210572111896512694741837218434296299356434190214897593773982698670852612550133395513914476380618117284158277668625699337179767196772998463340268254167150131404038619776230635060073864991106257284285519663194043743598156808234611141606606146236209223233893745983058365784743137815295910453033691169185599678080489633902142505257453767038860581430808463477144266546208823527093619509021705804702525428289856746945411440948674705776043320738578433565681596064573181897469934582088356313198288879919568772843528263669403270812176893217314134953468861767529176032166290950920133674909509872025800666926652880984957519434048038976714097503615919276221078209788048339134404684582414731004438312648291243824561022774479059449856754783647715882785235234000084612783941936614669228730897627072130784129355067938013391028353893987021658943408916302433179544352913078337512740969363262424717377858660251786369361911173213507299752015998679184682679917977608078690106327855374151226202323194912763316475070540986593944580312794906124238610196028843099340877354277655115046900010485294206797761055814868784494130172381078513368478600738688553847605245745147492475144527421347290189930202825368574053175634394775573162711710257019165562635781536892430038841874504595763640264634933657412285117403484873644781861574713690314227513062064862071903926006318641063793104556680095640713504926185818540008607749468780304261324183119293485388757022296430901826877685029951509549003922091629352795874349329453390637162456135864094430571822266878705606901015588050974542497018887296362834782139482428879635142348261466810134499749465910851044230098900371938481669912076152561013984281620697578463923423010179658097658658536356037466300501167858076377803865556295016608623297948370905297167415388349747374380074915252174791838400332887178318528518820359275844361161114726619881988428631118278283944072849784533811292140953882497245738195434890073867724145593863274980016428006943837284049470240003134266161644474427815245833181061651310911406476468971181778381526284432795469995750587298707497801095714849929877951378787918103658230249409672389175270168071534983762700218898185824266806795348001788227575759851524310676528007984406056046163335627567759479150226354701033459235408305005394822559764853147436741025705885428379115397452907173152400494790148387478766651938338987580967849745897391272584263742984256955411943126609170581736566098964842183465143269935904899805916479236936522773683125521217894713160584611671594538328030780179914333515439261559234366977683732621064929253102369030829321886440880355773665339704436137294429301020057189589935034475096824771355591281894909570425974292104215968520292952262963793377843305570005434872782760913306556299390552595974440713673149723888002246762890858248734310593194939380242146985033715684182969698075575545571557603499415400882927581162205752783466990443152878829865191783960514209833460436293450937572748983339478283855725343796618685895270739691477775371412107610910859092178474497877837493146746483909365239436406022511035761176208334665239831747043118281730907128948628152962346071731490265999579053558174136020534661098641121172926031401661955259093626483567758851602003317110505931206429270947068715842653715838355317156927094501003423455583365854817232261614775119996089856639538822698467559431729088323247963024115441694366860529721735158753718565047432663610115720481226875447567155394297362537429466939199833452467156478107678955912141683127917090472043148613071674187875027783458792991408605536479494082538936615296178163547231295341844919888038278790368292054293006653558408163837495698942705918456336144245415952544100538074490238309936551489399082427476167778472000418700991111767975144992916306533550884611472349051262188874089865926436696702516877819212822154248956908148459124924489392650497248846275040042004708852283389181374063724920992031438958876145658257120451015311935121254931465509541907319730020325894400734152470596569491306365235990874987645594757200604669274135263151254051189207076934023371129535803275385196910345650600398327003967937839696490995941003225120919318381693501467953889101260213607041299562697173891066484293866622134109039170916169397214197301143463458305145399105360451378368660437757231480666238750503968922789956804357479239618019376505589883416842807396288578592445369404448630896253326503242774564037388260125436482255882246435980735078742797320537096738539120876762134862217417423166888389151492997010752615510948580584114534006877406090783682269349481249913559022344733493860215779092362644109460344929144596125916991998547679379630269468136354692252603290037189040869714598245265103022177699824666330350156024399210210943496756781348945638484632904022316805776129008952354139362334159923753548435033718331351433513794800668375305809638291887125192783191044217603420899642774227163778129496653267234668218330886061700495558180941755230448743929674396458659380339548685568279755851179654300818163955423347163257172660245534714322366325574127581989792411622696949158346316052532730562453966066633267254883574751190050527509924384548258352446560389670802794953320197064339182515903931559053672721449591358942063957708369972886653204165579436248004753914774529756729962389455982771585235519944563112893970569754448853293054468060103075895140090169420965295789743930370585963187753498777641552333015260047022419086004044268255768985356178413226212442665641758366962318733423945824064153145534315404080614126229135629808223477366615309115076189576964994094845518969890990460144864505224685640841332930830670651951523408928749461210851570446711434436547618769286238700295908696506727150315045336117982562419721271027081323756309592965819845209367035999629932180709665002021497763483431001202773946089166853120485009927322825285296134001737333186451601283022396008368265072942532953812803694756123355506139458359524465497953792585477133437545577904338129726350009154879867183856635542191124610230531833922170775371030098934096109268202561126485569061497523301669597577584358698784079081073720138311693841654450094634999084543622015367155810399117547359317499219090944269541273796368980933401941680065816090403429469638986935050449371790980327012257118055459323283846527480892349984634485528233361949141967755253633081088842115849023116461374603954587905922014361690747349579065890794225976507676784751926965833006430173171309201653355768545292053934825335770986288886186740124027117547887987355736187528823951891544656730569318917571723148315928344615918799039898950793765910632293419433849600309720759930442132867648045511704966109249304987706723126751260463383660001171972568064839440997378718624891525184682259481919062069688808593030144897519744900131169440346084411878564369327936283916306366615072131222978395885554519321564409362611533387618088849494679341903522876716162304999302635595921990916623165296032763241905657299087263749430940065372855287691009177153151296647215065681160569473536763584524324518937184862420096917563711005314605014602657463147864776566647457302426557319112763715047065899143515357834696473863880796998884784679395459364201929298304615709070870846746575934653380127655151166020244574680036660482424704076516205044102021311735740303297474781750470893497615656250187922722116706177804180244563258910434610700623030567909861309327234770160971008188060170390349256762345006131968515986603594390259641003878633141637660243053445189750770121700186750988033081425960762992051812606758704184296751214865305042165171901642265568071241810925694976035529229271495867424413915450110568677538563640575080624843180636123929459600261212659915012320841793526934846112609391877974477068298935261847308745062744266642975594336921780725183562263166286473627592214449981987832672752099248258039200376084318375952175440989676365762428466008145810988635049692116930717752788762205572070920504033972460572207226471463186629655358930063442743736548193156248487303973701853102759804520617810224428280080995921216321573255376324110048714514355901910674348860335192749420703947185260033253762172037791162147962888073273611650024275450712215739744269040741516740103134265542065616109202672447234594425611446117540659026667609245499933411266874333863811368136515502898866106401497675178502733343529155810243178296217797257027989625467812565146540874024626132597792698467076338143566842804684178298976109040317597292173994472257032682200558874760420744674103399470006797192800989396373869890707657533076647630111267362337775487875651190152549047708932912808335168393252705657156994434879602037776192327756826160379355473605934737075962696945460912604780505242839201257354304991850002988765365774226442464638032547346996821534582647354244400491643673088918506662786756099931691121443917834185740249635678460209679152801404687138665038911690669358876085365887244349201127087872567827417995286645786591714322555474863578156149249997072552315675725836694766305069281320057596169044777142016382978182273416353568931708683269287888345028695892630524834113550269666723789986502764237183809063719084941726539156200321425770929546005769607826389363855831476553836237615471979275175017696813919551870543964777498895722286926460355860920802406670143051014365095351644172223091956299888836936361509558675726096352866062619206455875154875656459372310003494331513775404291830413831975362203728312722892102310586660262304109073658153086028504436940800630991693537960294371157644958704051661983091203999080477041835031845832928039890540376282078648052114460170907598285365611656652466865927308286582038307071041657961703876384132284691604501645168197336269602611383926999087929529848167913061144763659147762474132028901743009268727027708604299453714799763857557753751443448143286365595646046857148484456589220252070432423548075778605085388387303461116592991677585010290253797250070009772544514785788578200968307680021882649392031660751271721021000402529554214175605278469677125797128735717869107779000156957960729353001399630560052959851697715193688744216220304934555440989504122751273380883348400908706652414876026252980359643826737533007811992406073486495963091439897350252182015892074483973532758600997422015342780313351056265885221934208510366475157954260002605413183241903837198332644512087504063230072708317191316788028829955669151666502951778133838462612805748513506449030100557416256603756241468349722484039926566654695286735448299234734901806947473341612314751534307937152292524384312353800328675091943116962721626614826924190722361137158032557851379202460328795954750427857052614849629717727480930198511703394891264128304078645294025918108749559821891636599187180842966717684731072961011221073195556633139872197362564115054423390930691397586103045737757219968056269016473339498257351524894568006147396559548390521845875462538609281022642288374246891630008825798010918181715513098685619949764206052557666466644092677975454726468018538103379857746734596901619582356606837434407837576328570549281518175760151430409508763355457562529162402192709712068996645045410769325580250241672038465365141731990068555812338469360665458863351326949203909728864898174143551182279502346869620498276415377483576882329265428755757741497842245166682993074803249740500449051749433584857605222768688776658428251305887497636135267074159506316811874879512369646898090093563701774856710635095851187776664970989010746039943113032280950460498964144047862046498602045288059003964393073283474465326671715185940945983901230077124968111468053053635565966767793492899193845396058516415056718449055308679886237781361831562193779019683287010864080100472932652532537117842255037794254602506772387290773792357190128918989726419589368570768213934063767663526759314023450573731487605495461254495585948049538591134032050990345275228349491060842066092123780425792402251510722520958827216540120839631310146747822341052576837046972527153238927202796740156039842210449043530714005690859379926207638558815890917301258721752926921113022094265469957911990999454674141085430007960181375409441378297588601093368268897464933120999795754358518843707042732333335892247109647868434066690923422331819757393240357445246377416802215355405650464823203391652954959416569430491044609612018246191280029701675268332868783423690723585388344979297479145020994772828862437400450700585170412949493565197079204608588317862889978234737507381374272005890075225141650837332563854052293339207245806678274342245006226076951573067573725854242362226649317772856869167417251673401714948390854165047087398535022498838344955802268103939049617722894161012474229595801762465114688520323435847515174589453104749594798423599929126661634581991772819637490702796197232668070632974431074769354171105642438682005327367533836739940207891629380083772442754266152702651493237979025507749329595681278464640022989663603774903559661804637125280270634424419352963210221008190809184602434982682757709124257555527625415323604237673904112131354047455902254614712592323937784128528337218457986156364950942621290919360044018474030341829071095380419829204599059410981070413424789235222148837179834210813762713635057964764989508219408781185825242802694571812773389859037285308594540137146652872222567923323454221028595591160352547075738181709671232185359845548974889155665348793876667595192561888411892411343873414234799253404886754940834615042087558052603148663746107922377613633715571877800320892306867084911303431738990353436668409138821160479978219353232036283041374745048431150056648685149011498026334508883954439015345923679903155457866335693478770074050140577243011982449768681128119549974269373308734458057420778585404504397728957172681149980518904834887631450400267152073871212295992278060660437433351244918223288554919168903591822185411936575964479059204778626517814389066338373923778849739459605743854655427057548096465749696353986409246623255803038870803672912418762798063035759387769857306054574954239403115400391127336325825008076302209657828579855334898206263489432368027319093418602051263937037660986161106231144664258827019147605254706167989830129059719433358753614689179697807760095811828521305599206310502801914751053881710575165330364822594275475295950758853908680051424120751057516920794232244500945247400987865919345563260106829842982690537977569631141611074897527158595099027892397209907473906379693115478251129392886113965743154776980070960843285302169643767209150233351721300644297173824970460135904550922165463128677441420214444604586714563816844495453768435780542978738533168978772301715871548729658871773281546346189592530653879183819939925608702733006253783483323089476769243639904593379968616141216596939302547393106911697158877876046673379562498397867825988617760712168990632801140442946686615375040999361823234447722089789202481928163855296918175976299195152898290163032283603819993235629099205044793974870772772850897443176465590254633760102637581253917912728510876677410496573871768051151254188971406978176947862899555395338185182091600076748954241659163956394434962248812037609570245205505546665652168536054674802225698262852602746534780525940953090101206834226686394555305305566925049200925676490028500137645109115265371549384499586445711408746138963569793616743081168833495348096831874012917038470862094881292336302774803851038409915808422466658656817593107852464671078781270742224582841591442565218463231476720601816915782085268940951455982102857053827883110389662339087706805895388927559560010324924154081753547919739851330659635017876144856162283989205560735606793732556318340281288658801418649867703342419319429537299526241568966603487046171081453466992491589018630817331236127156975554568188718727217311112319872864248728817116743666961079412200119445521436733431820350689478153895080443972984474078562929999161020136444604903126698772476868217365027298046943000100384372754069801212629238794636320569614417851915528720692546857579812977887334688123999858438171620478357111921712301754727643676511676606050199508707145381815664490385860316518643623534672817862545560457046786487866656645466785195983528196472510286337807070810433109765302348648222079244978366596875934725450546208714862621923894258441554072196565117175492023167719098265883400481193459807259555688467784470590723159552408332221763420286137056353097694469888396584248668941850135913964836581530126487297674570434374445355239515715925377995366649600849858288129961082097893478357160829363461450237242757651286506982207799556418990605716697759212044444951279186243636325952421865835671492549603689620194050742022532331117969810432067269483334372930348704536226303953054278380178374257922501309963858020183671494454855589054465485637169167813981083255156520035518254874244436369459433028537606907226853462583911061339684072624789184576553000953901714457458387819516292351961598746603041884959063179142535918701594701209645066913642069298314176055001222925259927733292486457033657976486364783893311447850323074824583502925342925528476455355060451530051813193775122155666166419114711017738123551922561801534219697548962738936707898577509909167186939176592240872285194721384669371462747193690795289260179596887118898916101110244857045935091732020451092819063751283536310908811987826006837832100815585673847818006489431255277345720633096139913417308699125085162953620359049918835438417562384477347380934271246658291962040782565588316446695365213816764195889248055013856525145856597627632135211269956805149382273527140262967494883675554398990540444452516173440353572189931227220053638977408132434832430652115925590711075099560680364320537701855157092658932291428574539174279171496793069541159282793928343182299044776831315532145743519487117276535769819950325034446655956442650859769994483219236683981847759146756083331086526469933740035415985147622989437036083310420592245259706580990144283011031017202485820370127467712260268283968429508288691371590807727133408991363090922889090360833072027318314583781509038391135772025638899297615480622357705432540844470367826205023529973721084711380503869441605984913639918210761432313636699664423111120590448781397788340062648112906644998728186606046563214922129366648741785280071540060380058815194267869879183076742746127568924384369949641511437289621256023476602494954671858981084413949906689729259518414944028916450541165268811126629133141766296945108388758985271412265748360563301061499941038083284066198774953838218883927669996736013737932409927108694609313658187239769233557155422177849733738316961672577177347026758512564969377215276734196558293776614098500303965295041457202402906228849526143664671843044232173704459798672048857893713018066775909458901555050086350984481143626330054072811199967932741911629763544851234910962617448777146244078411392064708332180733040935922539185150113403597491016688261261874935507118304424917718282422671852328032210655515779497651148070597551533817054617779028448146437196088354062524897496098121902855034771262516051583746348438237689788872309176765073646604764898876056847477017402798094464604819090872352665586628805696482488716656647701324187339696095020167400598015737281783235506648202326045471938889939881742805237171004979877360306049397098144729592429891130250887824560844190045247208147256825240313515850464947584934402027025066727442727368178022893620679593387975079047061591840708095510859417862778372290498993316973428514092833730761806434866673979965827586830790027673011148837701231255425627312599191134186956441040827196654187120980069201927482881871804885748928723858557382042571674410988382988822525561281367725507950642782330655265498068208368448412308322911521849884052051818032263376201882173520099242177511056074051277069723523049041790860426870256468726065514893944001030125198927222193475677394352132758155060444896881143404953606713303998580636098959909057309590445873729019427488420406003263492215329045574441982616778328341070043701050362103626835004632668087189492173512098808787092727711781834915822311353845534043504654649939615419401120088349948769396208813104841300398357548128037675355213856286472549607718503725441429669829870070877529934463031809731309903874226796788898720073389184475397820713082304664657310579892396459311232011275859500520720011396453003177292178667646326706063467680593232519993197208507744662788519321273263257210070250814201206364207705385534511288961392206562571315599263984924452781145188419199807606169651714007910261677165558032672559438666946528403933743420444625222526499984096756438060006259262369471048668321335127134295340134651558786487044547944054034114736516617813083318914336106160985785139196148755802158517769116770063681724168302231176570382159336279915134776777023555766313819369016288100616488147686394774222847985494073309769648476579667725822544304308640301523315001008424618061793611106776914189473123964666261203584312855567036640538614500788564691521093709668440307645587846789108635966434752030004778694483799823803279372776147107954179300194385934983423726849750923042849705601051448050010491400146064356205177334125746403134157082374038722703046396989672304554212044982512281843878998894297895930976014020820265177388852697724022162322286304782081157384325943941213716795644665261660642969101148378838755045588235398011645067165062727430314846268274625029324581103078250638804130067003011971260972284684703788827713381300735140600713758518732056968360827632717229367205073759547944546002940374716441028813093521401752021367449057288247365598828628410103472982410930975836076202363637967792367389468128062813554782013702841421132372227687205744975094039251951039353755895745229439559803730613132436821377732676022082972639043697240808339453370670403031982021091348216615787704804181870228303266423755931129373794961585601049354907352660257040433137634002100328930163943840777827641723539852756066919387636778263293918387707347717299964661093023322190283149069745244330023012728286213313103720040225336854997724127872156617589734936537609608599540818685172472708425527375736825142754739631040636719792168931761098355738093034458118212864133722357174571913441104143061509416529963715145138963709921701791144293797669959458777922156557873396988477183580079902124163914617215910678236216880388468027974195292688802533649493050969187012813496485017713194056462879485946886915546386852197246837814537718835922612576047808404220924282061603848805699459589639064295872326572619032760125975071049207223826384020101359510053621068993915139826946650529903381760121046009696462431019390362718697976429956334317636294120445423963062438823519206803578360126189356241948182874351260509515886043267692286886230274863872072745643339680890798135980868138278466460005576677600977059419160341075661623044625114564364187393511044863249350559987250053222213675878286163900424732314378723099329123995148829646410972801532054087922069585123269221774713386967008275376433138808179176010439431974761202088585688881128941211120657740677916033172959362815141993693054149734813554033675565549605815760051718251424610868599034853223725633774919436998124268287880291993138600383355410328772982748277427558342905202874051615993288884364933928842350037958145482382686154201963044885525576071900276057740299373533128762755981502013918085630140578009052749254008067450174495454129492469788735708418945432914813694344566861558903542184683209474290118164526099112676899922863206693667667846217494538634160605434605785423191640169096782095850729166441437327406052087104083943547760666086536156499386371454238259652212341738682767388757894610672274831429427991969510766915573469460675269827686301565792177514838100829515225574410386020713558162390571212639915191068057752109892362535286262136511637778915668891381322695061401999543516895947955080189319427614605087987667161926796219127898446091829720281315187113464320679323184591424363721697860085216143545269717002646072440899719637394484372625518421653552421290218077984997627321620823832670512202978520137982787251270441675461851585817769429819963189069622449328769566107212230186104900442176698850428987098398959930305976728250071646436485590517124338775255455548370987467386210578150582361945748004352844369366152054923069270732030446729478565018541493784042886983662030513803555046181323863668344200737843586628897964306832956074713698341534954684635726111801101210134388795753621705192816600230336503338944791632805963058154520363368849060689187832139063620759652515084434219228098476259738443790199128969251428530594549243978555409143093980205695317945717854929307991862631869621068554586058134101049243161532490505555861889328419768743663404701168887435173744429343913669480477045810335916751147290227660090661744326838041036449407339924570030186246758321471696905361788011105476488733347154860847886026829903187434820785304502274114208287068224735175680912764373845139240889852655770663597337585632269926198116342678942239871318668439606645690397468513553473540062707648764763499991550531769426160136290395995658326173796169105878066192271942372582193133605608371644264664778725531183965155491152655428350852151876429454541727418663955465983537924694409940398244590529614401276406701056569448403694750833680549761668624810254165371973070209158879270961034363127966802853894441585280115187626972966531088943396684149356152164736435558329767267550072697686958164701666393891764377510219446586621362125274886782411460600740207665776298862750869540856241953461881655079856879043459341420855579680597583453787728068687356729062310190927110023442701432346274585765552791053306062380608870944959898873078233507879746454971814916355729783132414225076485786898770367344611315268014088436156099547243969899677848181417478586846035927113454146744293681743031518677485636112879828166703284433726855590473178627890349251812385752514629945763057367157111206898450560088056309014710445544910123680893938343076422031187103826126148561215286217956803441917736201453150569325284955544539406410784827449428578063245604022915693782302435350599074597372816890187110387342397120872025594252873775260502413234538805248936262871817780356929004198626410618567707035208835594080543478539935261701037486328659336546529974152658103830401781321267612587809678358461074908096484509016764223424235890721123418679957333669642555803925782808919410619903498269756771963954589375826718820490344001429709974501772134474077163866501678089487703220515522079796003628899570099636740347752196930228250063306747223315630481312782207413809144603832450195560423121065887547048324109097728319953864606735846233432261864443640379090706592188934932187032685422024361562438479613107043962131857194204026061825017823339689078993202567022536613155824673146873781060037071153604191934799262231672441775372037389552371747862559680553975219551313884769003077147419722910784193277124244070222918220753841138508479659702842750165386361252221988949231276924485724738488903823338343967720007210824193717023333368514031974870164146997751589264745024388862082535581203275596961823297610589918223803679771231386468415116862509653085487746483685762848584818623243203434028493034598396757005764707577711459664972074982049665130236222014241277459987117112012006973117994730883913266171566709110219789157841694084348942283579586894802687552664665969425527010146438298925656609431526898081144677636360106599707869889716333942892299674851595530623947012152884079847678090601728414871555402511298826064011648797555383045886969699429562648836589356728981723473431399549056411860219605737442363019284951423332669602687223163714981936249282854606344050584324563257548323159945567316199576638011144074574639294797340561885873547635887283892186528419737106258147753785440410397209909530505271717458891180823633820809171822252236985237443653226741602274554904461286543201226333200767770305518547642352644524495801587164937257400395998380852889287713772012603908807537838020556717510267340834215198581977740991931449203609949987181789318359743074988086926710901236977667832018897027183793966525519427169526769096157586043948550723909626190249229840659797417993005259324376340103637042030511485344357452736539850385834091870575513009962728270206697088043227105754723127038687028279385665964137094598643074775100672400449978296833837636239250113102292030913361016894111070434664750028707690016715306411062524361656559230302062031667962963366272309629039050401814168541810948185840736863399712174542183031470841546592855674154811771964984346157265107691250354503038445477052860653829083574109679965788522437945389023331863021766733820974164544667663655142287213667831606599333161004472775208712440574287036947939237173135754922175517102949438583991777074047286160347476414732031563458116444297431188303527416543540812440141925819400827924049069829338797206237024409261205683514453099808675974740299428697072633595048798549172927001437942557323844907899820736635047659544902763654037374936248287037677802950530619214356235960344407062813286398021927376232113196700373408951055241262084552007401724725779637190563745105515896742135654699446830550264546339959712973470389308085900704045071781104689579519089325611638683885735766463831550208499467609671216287105695589440071311409186217596982361581698491514615927925927584636574174071717823810785667822929511552613281517716947703079495468321164058962461113518567242966599919716019895892611784954184320817450411553697930020327695983392883007235263993185522789978684706226966036295076445111389818177817504917627327190007456704155400149488263002543739871409852507440444942677205840921733244992440983242391347801966446680289546645057639004896551305185105221054028302359844835941410618289289546433369767639007277808799743919055270729377442381149512798006619572039342300980679997680880113458430814529958050602028549015235082583406613988158609410420663522921469600484415490453589990609210397365651384162153185514974658596554142590221949000993933692775593085951967192598925909720780744953946962078201976763154755034442834090325309726802077568948835901085055773133523133247034362382549407605252366382288440211192105896456580078594197003475771214834344847468427549186495074478864132734769770139810067188402079600803608498548698291656897914668292303218130760357835395341964104177614133473924484131843630600467625734436879185139722387079232310079326835741623938401218665617120861704982112326683135799362997004972237341286337508649353531381211593667323632992977218544284457704215376479941664449109422971035516016501347130108310994490966057887107208195372823629221378405536220660567066871966039419500954042396251976641596532500835845470472823708875938032100680997160767835013795504245806678195633596066294360663697487873664215084102411709560858131271898124888974565644198584538840379029413778865719126114472538440973871718054717310318380080164147338857968676571714433088233775288642608499301203737293385247314143742935356027681008395876832898991925270809572514469031445431760374106417052181700748336592399935243993436501896983393922225158457011512620587470787295094221138258426288851573846429174802351599559117263257977486721972484183339964395970084864226896221460462382655715119380100719754186838188520341585551713466624329850200086019652045348331307394837976334409852323272880651577174106486186063557999682401853131344069807202313297952725112094260270979979824396900615736027849880386158673162849399476722451498043902300535520815006634575630745012751878532051619538859312985626818229608237977609651504127708289358487076833322454533671189436142541270771385697344426133924643507556795177118842651720555948799761452279042456326970083557645528779430164987745092673783334794082364264687652863640409187279951027774315244973849066191968958053426883588590942849502163026059376723685914018956082438471993328974625298098664895872478180669357113713170118467572168316456477946005589896201288130840593684316516371915441858343548068437063541032489391325935530505501513447304838737263196001701706980219114529216202222067075976748722936253340431311572702868763043514942871776701284168664081862237365588093558006209316074836545816292466989599819207647486443343182835127765061801513152323208462235631795107644489072425515715611309545752112759685991481949426841073508879974673779723737411388350472522899425407249938028794992643701820827147838071397445807980961007824024222606555860697262700148270875919348120994997086793835805708529683831224403777481708299999909694629927340623436213674262128664977568547887885079562980806101986420406177619471537761003826478131048082440309720911768261750352940570070381745902138333714256714242386257630407912294683687631540315667431723155640348148323698945305184778514277750056068782608775091978249531998571678419069635073433652736929684353287703419238401250911340127030307991756392217562295971525857273595506982551265072456389728884872311271413161601894962620611974584849479473383571609793930188152444176031416873354574096526660852540912533810561805162453378538037076349925558972265404169511468207520452720557893163487894758155834459904464628445189571423329892273433989779989170688975740905229457293490752842848859433455066602411036054407290281611744484453542382676165043119848856495050668181105519605904197148275100536698974226790511868427773450781480146074806323468578985385192463445851840018064775975885156881753943597579293846867268746523135832053449139316479427227666389092937834588772246881820761594883299041229729921374229066071688436639364878366032159094337614360228612300906612721924191295815065093627257325853791413616843291131145857848929150745861993395510861158283034628063889033161459456406633523098823369226983302591434567156922501784560116815403125289687026262028588261047362011117230319696229614329580496329765909583329505361418431530546722075807749861179948526377157214023365882263137026635795483307350284484564862368292765791019437589848525959220481868876243930139087208540271186312352281433786329360462316373064923849442044638199845658990674649762340445832006568846882787208554346433909418895641083500710149952179678975262870706823345088173483892248242613928593118148837050165495185761143960742964817153517098920021456399702989614193800353953075338703078194620849169155366690021205293013956374580002007316471369241895517189379933492458886814438649254647837898064874627511610762755318515645416582932496781739168304718938379153348229751526918819792034407613101732166716700472375686789982649263388685019147417422921830395172120253039207265357208977574743527676462608331093220983451001956580392524578174202432616230376960338065709981842836449785900325478519312006488324581026630068818105450141832529643766042642099337854323845967642177407578456579223035826419923393691619350178071350933357676563522010817409271467470133979302892600536618131181778936964122438323210808231549703942788742775877475654301134202416842445895815908154410244025914678377406223843718792011555056101964772308107110028437549314117943511053410987863760668625903554922055868756285212363298936806414025011747734817337968286494055474636732938472762912110571772249932328002885911568118935966956601718861801935688964043088823125019880688335091999699955836670459594528282735871898891982017920487348124169408982486809630439801163903694675593780035870591979775440296620584229530259522356937606960412712965557613663134706780365647795975862865867424106890997951279759791330405388566158296182266769008250526398096585854789427920276910489112124124045081394711865521504620358237739863806852567568036481759786442346410091285239643945864181492490487158815336061429985139495520285184860947602558486199662748042010646027324109040291315567364739195339275681929800231666715628874812054585475032004134820405902771389818693214666250573208324923665753986086781628638165901169973881481754953673256044783962646184400023993226726102959664005488658222282636528921175957443936338160974324671717587609013098485165058330526851463681045691511446525822437478958226160362118307443670610859511040965398497075070015196226457731899250512774072072052180695268760464552094624044045446559744156822087918320846130887954820768740504291832994097966690375392391103310617102810603559337319408805537053407269292156648812957570426119507494323438264147004096652096204371930636147543890523076504265476296042788328799579804156167811154808521641856688703933837067104191811441549852743906979081981924605819243728044290181941879939392109489484501101148054892055663222113001901827797536169021204542806833464956415390679486094195019564725975562549316120714206566657846202003050283512361970415285027995513825407712405917532103818634436169017174050188969155774742698860698547083925547180658331904507841232981597175981234083136743269726499886930832794091548254222954517498519225285647702379674232604972088110539548386966892799832876733073628073585863999328041376726852311346949658262357458940327201944519858349798068941797696030817804426168638147992115004810503937179718192112021818884184604578896816765286395328113001520441953688559424297014487192091936356886841552930127482975648650928943733383888981377120187529944305244831045297255462453774091634113486507164002784921222337209918773986492546410277629309781980350072489012297533994705244883851817751694076038852851468378006012618090560907415437094770292058494935328477157781405330896611409287359461118138910638234985328553333887209251507689871367023867802915372803487835316517651618173154384002279267322091560330356173197476918419111955529778577307643996530188917567470771933739168573141913211537437890333062401040186516820785857105291413487786776269192899835673706184718770068701329147959712193711536705814195999016967996580681774126161485016046209726512805432043782538204819862998428881080762748041655070883979576479002997126824065506759570978341345968422979515899884360936967740676502769340788438866723532922868060942351800640384083013810253585688689708729526166475549824170350347937101397244574691521510971340522646330614812975373549463801271327156295187064459834125089117400988007890869707485148921008678854540900471061025975396896203050030455107122572788479086560967359506988366587013333522894649800216334033354498081158390614221041722649735515209084233758322652140320009174757418014584004055658473326059331047462970248149576995300216683241978466651842702942929202717309288019682496730218671838255321732713728505168494538975080586225411980551261596349825326564937337513929039106207302506158636601775531103581021319988572832573513833179591470328741471686845607515408376572288524916756289969208826408879091211351424551232537657483712337192169545458624339472320365335041836485731316245736797252189299288426975034473941431751768664449710116540965238644012149538758213816856435855077676333057163890253516340753811814899494506687410670651451698835010418708628791549923601108605060369532390070391616669123756659722099289966144015019149832428511018289014004820696690188741193464731103762353185409415531270714059814703639807733043716677031297430605052452452030086815767946936308177184418981989614223405493867172198073088182837219051224845296165488338943687673024427091200043408820471432057429072782647668275619738287844389885013915215050459583049529139351068450515976036832323398256078313743792387878718437739094219738201534313563904082494534421653024178509709323297249013799387171653804440729825273323988729198108472727569381429310241865354575022243496193603296042494440851819352789719487057328614436978787122441612766039823884518389053389724626275319240639510660420032577020403261302999083734544757422906225700503180800255690069690275852672682017217197450442925413414459307064564796848082279988087352230918159889397893879074574594386899749274451137300913431295353383274528816430419214095280709389898956829312547397103035651443662279271440659982384080118654324296307244327555830332839610647609351017118019177377996541159307430138921023334898593818550764673764798900916629454988806784384828201463993771498607150573897544806491303047851203150070990089002155948639027970745581575017636964724636763784213762748050137070356969743472010125069555860951149160832516493588245932580168492852094317138735488125176766420933182846609806778185294735873252787940954753046569678900911611934072186568545708809572814112124275569729624281268742730821882411600208227846148919969205528603639973240685469548709111507406592569208765840873084904612946941232607800498319889174642277384614923877721734109714560666643460424616982313837004941277959898880880624508258140988793380982755407547888929884963817002353023681077422003702717073769826327717335409929653781432888467926156430619826878428623218156302012916151943171534471249726746105281047492290917103209593900989357090088142148140505608187994674632913778620303808898744884355661249948461542457729504492781752583791140053562501088452548693107855714587414987302747431999356041226507974495881169907869319498718853314569184401178730925899507468051047946899447695127919467364530489729996108218963129130721867766814140196424573114347524988586612727207250556927999697375881090927338111594995534241245819589777433561875467801604897487632833896697423789274243037142958133367657152587609019049341339581101573723227539168272403961617191705902293892191977057547443077131620423583861184089326126540406243190827098533331172905139916933299655555496741883265193489962469933099306588900725958917393994388834501186904390765275991652645689678740232241214614225390056082598134971166979588614713671044742620659861801308360954093012919586478027647674749168365910417689681657236879525583768528404885805328709906951155209694005697960892909131915556959325411662746674111341340929536996965538159358741631130664274980048543376561932493732279934927346752953447561487610070274007728881160935303212665816537395069923327030263865248417496824604509302186281920263342075258543021813183649212507315341581418891794167913921508669179740163712272844356313054865680486692375216073094896934952112323387028122845505089435133654593943229113102110860917341796046757327102284027765589065461581707416705371028584058123030885787343359129839833053036530465308096015933464753734446300572289121103599359234567354405426774060648452379715282789119765517154030693731913569295452344891525898730205279659092092435864407373611089925631602198614496891293431584413651578707065065497454464957007478144320402959293636732184320116569131302416053885460601334296359351770324693094609964942620330890736085401143137110629110788951377705477808764463223151590763173848468697986445049793099164008198875744075779046302766676038181857923681573485112293145553147329140916967992547400282098305782062475025917261690578218188919176976467757081203498802426979690076341362956459737774577287412087286114250111969781815303718760744694305153994784294190562106706507715816564674544519908820128331107441224844006971611390385384691690616858920613786464603851884721056271984594773795110049446497466783169664567026751643948930439177506815606896080156262423655145509531335008679328407259355370211441974076115456299386251387534231934397186107295527127018377602470688104241852023742084015798328922577339123729686127310286037246179984281798045137372555504664762983426184959547726332540838185522540410620177092742581884161181373068437797967364884563594639352870367524128866567553542542347555532570085499402992132768036143365212306463263169284652333322272479799747528460929647012413815082221077569419886312467694692846773569204516278393338509435716154165248794388618617706436506585563243457891420222662655144647428242950370691746020033679304598693697120388235718680475786122172377263490416388237540010670966681686747949106466320643323652304542310802459371455538454619653627186723949016225861874472375780202501824598079692014328964022977195807933458016432032179945875630887889976341513468723758921382693004657635015230419294955399679390774532109923172225472998634271738063884510355126092568633246983110669690797287637242726790334587557947530797255003510242006536890769545800641893128674309141198331830299225638883055950078931338782385593935989744918036384558191274307166817167549937732625661842770478482128218154606515193912789971702107458298952860226562560613788441377343772078509271555498020950800875200093510433539031044616701815551054039801317236811081773863446436307333782548884138196586389077141786712191003262844451724161605178229410225793684626072204398842062258456607471599898364667700089001062977709783771408012213140648443331982400416059891761241962140992480344099731390715922549938613902393092632709331256219302943422850852204436321236254178019354516627028632906802344768541050908830502647639554610753726468659393212690346298600961569988974609792987528069413095216603355279172530153373137213261496361529351528995241237057319017182759299425861960470461357922778691055152825003942063766568723788435694272970722557978824816300615052178446160531590805343404484259074939928342242042011945292816783384666238887737243636507255500004985349364771738185396502783762342410490387564153776035794403713956899460499206757499605821118583265250306150852039228416545834210608915877466751824876918428272094368184372828389157800129951062174551239900036174185564725162706615968591496362603567211879507904380748888247210642404045466989617695108697836957420184253310076900874895761965406766090056885307468849541410956760081767035808391913388199424867802960550155512283837311288308754504042695339702847814621499982259107073266013561131286489492020935563762556418883864545662132123514351771232964366140845025533467701273314767899929196958214178475724812221303470523429720371391383243181160741321562282086978518307664069968933492486659246895624663412506834383049938927124099281457164435794990394439238005379738916328592600033439668409320953720947829874082530663197515002370665736368564236389589872028971614125050280579062870169444141046364850329091636844250301833135245231433590781279783194679127443167188641745550402822859341025065800160478162573547610449589798696048045889328721029010952168383065570174966288389495983476878695110993333524185686401641448081243652343899224671210142589918016258840809580075445220111953033590635108240372473551705071774712058603267272056714050643939467958955720564057805684151943944408464155039941440821252316111954175127230940849195142678976551324691301724240190623311376870608173438707524755372308684972388636852324051479396745809474932784265877061791701249275793546430921255594040158933686223367752236410541346471090203489483730694738305418235614412963674301106024822688324666703509205775959683843456096914485818033558168098804500772564721236609715979343461281541539980231734526956205530519282802439022817386980079435038775967712509505178338747808723670394772827108702992060942042231831228902489313321498525795491694382764088440237015303264510277267780498121969023933855296062718979451087451394971313490437544761335089344888146834419693129643857518435996168767331226153163853726487892678229357211146704519285136304886701794529151361680875222929167700154255029150942472979322469817217083414175529159229937638311540859848979737748552165707899922757828391263154563796921924651875350586871011050986605870079125837534547742128334708531860910255915810100501705693982255784525160918180510203020875739680459699289223837038514890792444556777874532412577967016484544304174234573890713310794375310022724639235077550746803905793751547679956631842502907273099695692488027653420057641788403538391194448822904009676374676447257604888124647759390813874233308061462933492281171032137789428267633306749225427490384743782842552477621803766576233823636085686590238690007792555320422135506138928949047754956857835993507665778126134314026982799106797244149352809455685894350250590401219527208631571448343564012195855988669222233741436546487026906366161154343874808021625261369313663485285484131326915343327735022660781751916608559174499523595342100410279508110014077757379362534348110235487585459287248641063037924997568450313023631714154800653386778459532787701390901508600231087720579597866383224216352323921020398550398578987396294915602751656688853255841971349814403504548162258504080404936361435535031733478178725200823168685591039364383491584204797040466952846046250306245275276119337695634370805219043621766896390554367931458839046079270056746533503559193803578888683902788402009434911762253201068912858807349641422490253907591981786789544636880606352206692073690336921754197255491817763446126818978178343826234023373815981497469391876508617689436258532477385757164648407656597228807459277158740911068122394796721241441099548114553552051387449011784316052537326152619399005665623930293842952690928876814780108727926715143736301011041179534039097306772768321231162903957792835364807650628694775012280942621360166958576557630224784813717432753325098739800641412084555711574973124489541115748245879342294337751228434879495730412734043835087663137763350917884277422481452232078389225246661263447167425898691705827881632480363155746213002877056211031706318913688540326440184543617449330839317216684793708866349440731621652421543126000224437252019385978217948949055228303232754609128993945425606302516869921323726511447031657563543576319409337462981031465578023786852313080303644626854630544711839686880650137226111307262965389600808533250089427397678639782114515733435151843069632047991269361967770747399739125333291599780154890848097859661346282070179913185421475191610200851164968435923837149842638463999766471775535832515020229286546179389414317680530281400410929297115262882304642830674752041622807679764955875090864492206141429157561305644075158272122159618932341226352194185509860712395786764992968636488997121928326699309445993342292143066599289161801429362238140859919972167247201742391587655470722419952531295629000297216777826684266988228275757803047450915488329498203407088109890341089849546125534572943610261915986023132807170349880656388252948771881910183013552498975816619201340528785342986650854912847651403041409626691536690495932784740533243388731263929484236913253514438250862300025187263159064953793259948448718174493685470860460600697209911689967941118655398755362182535150859536118324552086275276469415179606885706988300965523803053240754424417742523963616608998104276172323653829962423273763285927478818329872874878608520407851441522950702231926684677222204124955714857678805853204711360972358075921627373508573660026988093597242396145580544523914925789971518660835205910985127338483194262230557788041322223125035246563021067775466525424999887256776656519611994564746581998296608813127870694895360474112586634657140860149815438227887098710422881924801495881090788150754859951412666638974865938855148449672186252840088955337554583186602730283088307816475956898406034167865048121219940387332053113176273866371811365647234320099658747550251869767867512267724657328560022134400421289818033547301296002445335302148949710290172908054803416716038631741330924715307401305374380773806069850850687736002547613531548658750929065393890450690889844900889167746049946120693204994332972915942869339599805850366548102654715046326063033442653563529168970862685089496930434234953258046341322207119932743976821260014279468545824926241716662087696315168059005302581166648627994197436210351918172560300056398088732564288119560557819537571583632285090548296110685700973084177039123372044519562666961921708302224924332167977981967835271732190398586422666524232335055491420016849435688964650363765498981424691894530501770167392511731228156734901606303757864979926794373998551361356939405619860622399275092247100376659161981627893679776427116760152962936376528090276033762817281925727850826246572305212211247105468240094716293068568726156335559096854146082907703035351578936967621071751224928278120214712273096008815760060156475910914777236935581366825677184593535219835033050232132000402730799451856907452087337555779500159043722248192641125567476191944537837887430927493046790002731095386173669056117768141848178701330334300164984632814508995592761230486471425795166097187139334860324914002679733651107323342847944238515340932969453201432755140789362505867987509375334908767991422807055925564917746843213521065744476333529692530128852364797502430053291095522141780121263987942593931981427068889818016163604303509151660947753291608802415653183545230806717578856220251301256637230913862538567062257921790970901804523412063485217640764226666780999374525117963567583509788218035235101464539656666888604862094678516821847622489698055808503499596861268392813014960532190303671825153445925500619312854560411496464172684922823360904934925829386153463528860323082914599988674585755297731105729881482388975285715660752063408570289086997800828573853758346534944430068253154680971482953878951167564621907702088999853847127802011339563999847699067423760707767870945538807282345280940385999688881185405747959838649262243868539330603868018888966657159616740766483910418816088791673584790235015448588967079020948603247268759520383461682863483920213046505742518146375352999508799968296699505116807145369797946820429053053650007064744223682072118773250186262895053486619430350456240239733223218377803282094235777586803894839300887562494794219420736732222490942956104938272143624508627213187701381410133521301230776715577507734137150992731695770057288887827762341073859524833310241486558871137335205510705919983394278249681999568937822930997562685726187322029450714288986775170507879402079994011613182624069760266320294541251013349738086519703808722936824910735813986860295797668953365905860982478083036934421880617249784325562025712645178076579974184090191595923428840426806386920130496986614262400780711159974788300467204540128318611093521917754408870233056863036463902917589602851375500694328320873108385361971255685746499580732441185525485449049089204346963168573770118995851561706478478999683255841350641694872557987588580796624627682592630713651397564893387448739081054671683642459890909185611800268409002856232762433543906485275582070834976150631723992984878270267920481523273375356174319590949018670349290649234185821278232463976526233848849987251730658891547217733441137370373593640310237366914120817248268248290944067272338069694409276508138011647494522234139864814166291054711020422775494938972781920116297325681449130602496958758630742116272535966599056530530000865700681104667870897260436353640827714469166007203024444225181352001314462427098238506093695864737190246641008076686709617043443992921212208059488939713274295466169752831811014015861352404312441387158022444794524956339802452612879153155349265606164903364545942394770192992992423972348814618126643097299243292175319325772638749074342629902378778452013674686676407698780898612554050738151650051946473353670321003239395793917679985697250689969202687260531023434266547952611270608971998856677470803759796367141974713002669134596812234648341362967240469441141364467630564688848816652398648708318883147290281097928171488238642435674963513788434124687630543045319376265411627488634973905428486174084570717556354126943116004553594072696124210550758376487405452505004438746905033332360868350357741344753569151059884314009597104034421648696922514998782015149721512508080032313689347880313700601922749678948344157970434146461447539465100464070017898719038482388008592214703257738463720010085188933149196397974781732092826255282909764051412784496770427161148656713846737880949693545071130657416963450322966830205510880481141375734535017262104762089956255599187952595149286250861284269825410213010534250239117413098308399952816332672581487378640584285254482009423758901564653071551216531691068269142396315788451649613395437607880128826935633149926079321113305563448300477806115884845031245437933027849026342383566866788044856348846255012362643929653967277121716172311990937796486676595803767671834192511180392911840567780190146336042238132609752055902317567810606024453838318707809041479048161720839154298854586730011092050210799885687657079639432633387305850087554378920024351022130015301606226922604700313985941486102763851294787269389552640143537493562485124011512190016518761138901170724556292961351586161726424558886803549239565697430326786538096257898019915874771456413426668210757405900844091654275652973928067848755332004776385580451110250866836074076382618186247448697742414085768035100948910178678907848484344229128463163021700444366798161238459186985014264985089067465031627491843981176766534428188677229199321802171569233591636664430451083787027624086920030365724270316810530656274655886529832710815386875285887581155981049795403663292196345193079505523434168108533366521083759993873714328082115599054401321838288339195886152693653358823439580688824359450001232106157341096167870168890727355496451100983952735278510899433007410169991597553198353697802188408267828926295236586288353113882161036145584236532258670675084208528397172182381285007986965588090797240050564622907487476179192917968540233701044049620605195914268331080578237743843470973126297243400223226102032634171728999128541613563941652394540035197213817654184618218056531872640689658150903736804211732314785010903681458486102724101515975297127757204541023489806866388755680679454178753634412694178751005612211987763097048901388186627377889934457534671745172335438045885745117545868621896677128539807297233616500544092862077039432554552646442021444068554385662572958632861374466490859158937202373603782995291804043493727882463767737262930195975175132765061409843408241339180535077333334045049278736087542072010416318172246101859443475773525474154926609683411869378936982747261536040240756143053155112500755023823377941040500343068016732508281728896806429306422497040525742979103284457239276383244930416418927379936027604545361777401085293232646690579085442837188247656803951701327640832738153133948112584934600959088883366622141806973912213151393190051629797943268118885959618882355855652781580413059700269773435693964756387603594829478348337244004550383524915983205618081588981951755936381625680887542903062363604333059151614653289466190804702649706370889908774423066448686063248376257596244912371325665262349500431353100678718386733875068839386904221514126935344469269465343490994052412472920336929667851192201929491322812184710298396323485314536151264970143776225800290724829119521465588078242029501455043799583319126628951216666938166747696976255536464126208411873894007777617517583746468549100597747698034517807153596789912470207525422571673332516927627750427074634194143084836966773273817273027050133852974242537572113188142794818703466462268731946570335792156633978196334853536481590276579913404109601833908607252442186630171718421291883367865019416656144174150672293472233442878661070621391077765760134090018948646899160676518470909684072955784023433721277228987670454316741182300325393317955222062512482158252720941497165502848199069419688911488339963018944708354859429345546014863313859292184856523844550609716458968615743256312672885966388451942504418037604533444733801708952835668378982337190455802042147172125686160924455794856300387353403287730376565033602502976201383588045244959466866768208608734968321888576376653716781078293158202091025303054140290409166110317516631415123400239831063587344160966863347103533766983754292743548223689448543089887328410251619089318300928641254884420026662244377890541693246981458646442608698475649447431658470697047971691298597878471222775005969210386088737394085934619790665247907899171121883432166247141840496695481207119922689394224065789424686358624507142533669237832983965217320066114972011749506855664241958193397955354581678523237489032042248398466276888223504175624210384725655451906868837944096533676200458688880978149163056786641632371767028753607110617836024433213028644159263440513621938755643240995776922574402191572676966547372711528386248848497061091658838979225983375715599616169157816406233934453365160124000574465334735790061375167810447046550687992018964413967002775157103605251772277586381120553206871813646384586803147316452706929353553393161012731494932631534977454071111359609922313970482404437355295297749119981181884267843799938747449448908581318902238726506327642265061209900671361140747627509293563723485108280230480515394530134113344176835825676235994336037307208546566495459147516500801717905564952299421337587233398479027418440679880989825481843553606107349806596503072996420443026798814118819288519910164062284028732046905707147816993548588816193183027553766543816937682312081960451151713211395667075592093173502378945965262991336794395232972718182554281115827659089199308058716720043374466222409036602101564234092286023265198254064913021936638376582652452696444242545633136460993250891406753863081154658919200364932353721987514237651260884608655928776900439305081926082214878942021030948096203138421023094823808838349662106683443237312742350722131395463140534683003723041932963136138813457875713944376412584633401158177411603165097511446129452390911149244926602518366410326367821508248893536416355446618013376940223828160179390052342681657169103117636459824296836469366443044359110013272914462773281227411701084285393226918019350836891449660694021594078911968566212744154723204343615559798842782123779859597147205759339570132442956497034388027630101450568867234702282294409681080758612204920675886601522295431358612510799392703548931015783761105087151891355795262386446973917412783169719696698204165169777181309421705723777316672328665423866624154335912022547284341974851055825226803462991387167486371496710939969293328762618636408989744613890597746712943128429823280507952551654777413084493214276057481350790867429747880964671931878997987789639416308132587549956565498853952652375757744518521047142522787891244578748330632748119960245591417860612275905291304100696448743739133986561896214348447396659420829214981086336993753940615717725565997377262833549596212885543525058114334690732569364444019068612449022841865548278938435625342734678815147849495309448595791039149397764477466023035530077385461046526213018090260415324367454913663185860854326342094545712432486946743007026700211402484508985659981891191202740933770540132493498828373469778219066360444600915211172993083264953411413380757101139163741931863340858915774159674738437527605425665372964838519329553795507773201994490813115150933859439136061303984851699949358466618361754200170222690608528972921066165726726322191027909998993336643473066160387528047735637784647396690778665379022744990145528910796249252086220190931489146789707768420891116690811737494499765618307572769935509552477361137989529789905532060485306671598894132106716071596818040351969948473359089125779345221441098543404976686994782408347551486383148987617178276084736012098785387779846103086224092461717001296390504549968728544833427962793965002595432604420357814291411976825506894984131645190940246729604960663502304155855801677221568247366486702411479132737618372758097596446446589806197198149641604488375807023925882017233838955212213279295366447237517563648771578680832568730656871959513021206748136283065909945753125700705944417606845106203263224995623558731272088325662657594599301742622126059133615710647857679149824647912996127972607409530508542586531159046223463467006400855049108178049704662969209773364234113994748767488352916116216305996955419241729806730996091072934400133907149549513383245966904066237735685098147082677104711038605455371417358336745970088213637058331509493976238857819812590115001038873124649959274643032916322338292718501619418702943165312000323802057902853202442722743464191742004391685669781164038447294810356100141135681114481837139730632727670324310364681388689125882854889377947596631098826980162505641747109862522827565037129385567296026726311284521714968759751798924369644353701192324546907200873274264722823785800783731592906774013566996816351258469424373810863656290738688436215372871396341352191948424739406696265852311340412703197570119604153354444834875866089988754189557433972171924230524253872965812261014552237501626873972382327957045599336116904784460317795192752155298860724046669586577764224120842070823289962700572405285058479180774677922223868374366386239626906791570203358144493836907020387936970073586227696030869876712909469554156756439404710034860687077652686532552477901856726357390817985824726991506624344040655169963558479691155654879103703236177873848650656855347115342838920472250821798384025463357044710060800731176318738675993444800094757533009488110934291048574564254114028505013348621332406561323633911601736674760718749888296373546692038753352365044247459181234439243241896968237147448721078477322790276454600498084108475937595110977785547985159154516255154309011197623465012583278874132083324998685834854071465462160643453506945850637921719086145748022978894199985273503660647254430221853418356484962249593594728150782744395243575027496482971276465465701641822763471997008537966718926717658048420827223359573074762793930262695086481896387161498616565387714752592759394955132720598973001123845282027884142019047638879561122223432914011550416759866403217637639699824238869758597686927239315586920282067870689658862865121780398434134985841683311427124203476680586318474167066766644833761579587833172569621341386134942547102346345860410213188388021190466627557926421063921153085127877784750194788015760399257234970640973940439862953517147956109880737932576896180857070988650721646235704363515292796145210106769248301719219836485980872383587225638874701430604968523377144787075805047813932812206954287894577668190849010901209455003937633244490366947199208546500928764096230660692712865734808723869467097596254540154269401475727163099351251035783232737617151372731607766430515814278355718151603802145832152151056289940916985924821383793471097700165032875166084364296745524571893064158455484667370528689369680079815434579099796764425678997552757920187376277157802076270719354118213965719482458991212773755584330759893527836731216456020398984830644018001463161043060970430122434908290301948255967495673614373162364009663090591277154583333950075984584233751646238011896090246568073076483995498085525501541348238123108368030594797554362266454881566526142185842616685391240576902444354617484529925922931751222574281295720453277114131626301230110516578035316454685206796465745794628349683055555748358921605762196182849709178457624255956661170715960614839794456305210378044159867771216701361113276031973387823009398151848743332323578232277523434414382001791180778718894550558007819973565782221320769752487751642338877117090094966433554857348551877024104065456163731866857952702251831008210332721363826621315427692496205534072172423292235308153541831647203370024123348531018487750557654531037925900426389217997862536079181418323441689432654836628107596866479708186173511827384401958792661517644522100673453266266348267002715039607869351400330807603909822005971212351952933449594240006092143845212159996453011355681738991264215083683017934335109570723582794660404377778049325068668945182040370102101617706531108676694850080947630022931921663497511765363570691473231750840196079573395393549666252557558182778422107581687203419405850673034195968489327241078406199340124034621710636176508612074164334615113742758437092923372333217759890932120900267473686588035547293258477915251194909483448793040235172588646025215687567722979310710622084917307473937542134763131487471864585613327501892997946036575960333003125341120320240846614839104275921925197066075128006801415107189184388220955773749084383390405665331017080235727976898127798338756238624392858826304607389367994356620759045058103946532577931962473252159595405951985770603229495826362541328546727096234099391770122648441683151458267849999335534645351249737844422844619080270848040998450924829362703718851077131368097859582734007428813590027849097502139819835350938934851242122820271855205269033226011715522411219437564210491020551973193259582814169926119284247641110306128659101595650968609662456623072889526501682584797501287221887060911932772500803891338547079097411622711426568242586420830614352552407337329721276170036953178419376232692170447027390844204648784231377344071928867533541819185999246600342722205111462560736943266715830635281162536212996799811803739853168871255692895884966136193481130667820200112432117458588807807437428707168256409235081618111302363366106869313407851601919959111794645638118232888929613122534512514251164400289789437613610340155501851496504957531821789145695534323997043211588369155442329021911266006249715064167775607749932137003385871199652479553979683865833865918150226105542459554603826856910982470029562690817242942490302829153806458874851522881423397591076335567878675677655430202272008049058129438252536790916337380517112198908591064228724117237462568672538683995008592611596089272688261833003248532653408089089340006047109922983019169975224294067417549542289029942628566138083762662502103211504941311630449305439085124851891352522056587630716162387674499125737443585990428374571554810188983324189636543447155894716648760840380635618520869314421542063152571245109880678143298674141842891253878726248219141053816652179675939800563106376505909639702172881922119868769824651278157361814839021200367002252378051391235369168019576847375618403976804668029248446332905529327998638718015793473869902354881447785648080209836993723742005814743445207348613215209903822494549036658637245489069261567200516994369404873156155988161930708233097557583867287936346636703991228491358301718738811507707025587659596370830263970447506793977175204836859515379324960285512691648824111001676985428321495011158016237520630830877330628997055542076089525769588366817456536640131022991944125794056238136681067370662156516341607517597117128093031095021230758510060204852602896441301041076473527109873702717340432739610247727060465286588810331665785081182927151771292836099476483415892061781852682872666439959604087491056664134717582437631555571606888398941180230310036386185974035944052086144133254685601723928915214375256755142785377986547961414324088904100012306665051677394140648282559647853775558774141334784047300439944971463131507066243354428923951836173764992979253519857799109028093499750622034810380046986383819503378307487388913553569883268864472976872685481261715664551099592852619500006485415907151358719417227407855923403406970345450622629459038341328251472938456414980270583628153524527857421467616153288762780914146603447678152836573855371646037555975042043106799149074838798537916747700967308262344437415313474228393320523141223670446191435569879801340089894662563184081192663460999975305144969729600917496411780198363657033488050054692521582669744637712391730234472157227459988504156465656750558460823857728228748586013977805699878523412262981309498472905838350101084956373182142320100414190219742248239558419361396282658476812267907096289959722911735349355615251679667449957978476933141830719449632098825820100759017529599620151872538642282846205160230047600246455881283846894854787662306509753155306977341075231312685900613965338270687838127361934336956450324986621501644790701814412086683588746811544595755284375647861518259536667719343463471474420165286065489834224395649667744184239142733091777527895958992231785677531913932601339324651762748787699634969787973790701095875007468761286525469348045383671038335069618002042446035227667432227117978660871958947565419261210472607746499756269270600685795062696317190121594118881591656334693294086166585539506611686929018572800388368094246220351549872471238167174318798814202847988216022061025147233303676387461418839269055570556162261652654631242689597612470959839808255983538707009800249628425927610982451012164661012146036886532509264696760691809093707434375105151404316425572475710888707815546261734554831212120478033776567449843984201940557219891768095738428770757933491340972785774292202833093167070905735713532652866572138574845605434555970488032002104298776166589266163805969604322448701088247099475737956812885026283710841072143217870509124568068009622394234701292543758941532534642078540792821675038190225871335572409647497865017916676030600165424498043624372156467875880859869369566437531142181295267103768349315125123490252135634099219103867169921142699408420780222644275577034391649156866110051872870888729412678612640627758088077272252097348812750327937874725360300842966193319917153454727407336317511603119916136974299732484965148496975582383698381180746319185382677886423948096303226131403544666092131343864149551592847728364045477168617341885642743246910778279662654170679603215385111495588817403333338255987493700456264020242875113226031235044722098868177390446762109094129594055934172739745365881187875061044009420688951399633693051778614821201091486993252021105098993515244678459959321079533856023499848688613242828074438936829993479689911073619427165819661631615870808578892017283629894466924669724797644862342099568667004492129537042621782521250310938679500666459553231567087076039089445153958449162352745150114617513224529607212996676494751449665679120403205037565179181497403889240693633065116867783650620706138828282047234150498462695203218748796035522394393325144662716315249358304771492313092225988723082107713912219744109883228974511650656401591006122097197858385257360009966074819410375784122781381782653331499885382534742420543664995615465775926629781737726234327479461052816987806946693816124418139051230962607216388790054256235758140686516761132012472874668893544160049656080035755894736164946955107151089652148143634277543994838434307648337866299053236618523894347573094645238165807545643844210673558718511324900092102052161260352799954446778744295702531754165303723522709302995437602695304669197132407700456107323777622874289162875410097488913995695908100934020182273978823364588573551686192977869470665917501688709972482696702165400386278630825234170134055830730852739521398864360169431444166725003612325875108071643508095671565018760593375945154977074033664284032184107846145108150345940361064281256915189118103282520434861860567196758448462077328272857354294246972021025440198204074433741863368434692136246046842534617951781476441076954668454331930377689272426638946687557252874666301169957601317065144845275679749337655253307811451462686894701806782730338837463220851250648800573844792800183216078514890001752229005828116198418513225863309542840541074700298578594481989228326792738794405687118543002033744656858029457413225233065888215405889816717999369749924334867513679903975979957068642152465820564028741693250144395152681442112202314002651064074445702087057970305843976099439603952115126005163561842233297289788819542030854851708161616812670199661440786283501621611009359034820724376861026155874361932796466142124909156848229054068914235076970105116741322804340405991598866120872312140205706767757786067941087561927018993275928400000418489652672028110419450565211599165321961638842437224697995575139319844433229865550917255786078865330839524183982453957199808042775515477550272102380084773922010608543368415491949116186715900783729201844260984043133883292599798301607955322835110296574787990106103010092131498267307875685571886315619860423012941489756629987354948846735902431343974084136962298590732605539240041883695328973521882704297754572699958361624459726983487276839363160311516885802049138667583809454655049919215269933644687773245367860106318483701716681109523959100916154959900806157148255998515877873891098315563615085200044575993000113727977335992880232597244347034875354924694625849930220107302837226678775415908756263530519781621647004129596886710539785752167499909042438215082229707326934620807300695639231564205553681086457361837163588462214114970817265533333944817926128273387885881497526710503528344698974241280400397201781960103952991140588448059647639890969699876015032204904354658445625856186774864293296791971207013793790511329518037374638544877545255100136194971939892654659882648082846824715814812068516920947846081171335101662592402258043403351470115423744242958436592505497695499310208149714963945873404271020307133498599951811744924228357583926045920231047712371299160899299144181961983107229107015943094657170251694557258296304355749633044728970738670908303660189042194043717179746652811447789219360136653648904969539244201445612426739829108516083494383030350559777983027762987932169313566590662420730355507452442176743661314549646606143494546202644946529945406217579154180719126455717213642331139522690970223668682568900222953248583781997854375478904885693513480536520181732266886192582546700764029807699246066548374357331024853895549730158787860721930816532761090416454626400096173048500141531021425053765225952080875945097503404905100557176738014891292633132526317234967526954793706355550743279836914455321324963449437545931557296000928169429666902100891015217088830849562226310275043424592052675076390994735253122368770637849554817295886650812655761969376986307889359012394922506327874601844365075044880194508116137259643113515974618566006565903652866622488249492712125256355217738405519618043885279508188055276471853781907737248822381596448347190670487729259289547879504291512409506794358336812965917591198870718993591342244539448997974596087536871827871517534367978622492577189457819302355360470310914006178507005541824823426471591149326184886400112926218526996987336522519103169798149759800080829567548900416476879221982526789482924577835707971183746085726910523870594178028600564359014767895749383971133236647879307315522098061327985690865993119857528806500572781779732055113740554350514552889091206141946734323287373090044967033273543614335064702106969945487324957329766186405684906047806814008274843040335693796805518649561648535186242214169943063011937512877589050068480967517155588815498477860495193077705814939582055786698113998865302881322440967400383246307690586465371203126039098939168539868478469986189357871905906790887445169729884873423678646897341814245969817921433122319433819151089173936528730382788395948487179282872413904361904944268377057560179855747800293177581194424778926587668963101667785693231273153898599231705612540747281751500472462506051109177837856803056407828009374789712622526448086266668655407094856138590582849520819772179056401502191001615079980494528056400661653674763356295567642088564094055409897312593328946594999416199980329515473510156431510610859138330224170685977181060235718250189513523104601066948784309409847302154500564102188297766845895791986574573192767871890560056513363770926750693525392156215256355405577527473088682530597475667924777201898344122464204169507791652487519117030898609570251861510313390017926747664046752195275786460814489634533117705405234893563176300346882411838061264973856060622924383859349338572993269071263835512690285861138168645116114408463411491550226100817302917559797581940979641528596889478649536600631671539535115288120584727024688350516011784895468605358225118206761104690562218286787500483631123958448302041665867139765986949502525259744711237772312102254688460930111321690006456060235180751467509596467024165358314288582076112091021151845458930216181514104643478394563082427230736075793756134904169351992562615929889914117138867851773882859829365744776299473357226363708992408289257036129705317902874782613817875278392480962849910894809737480727783542944144436073683350493290981749183537651667173352356807080225286555914284234022473651871024861688929511099855856445561822711100312545952580053128877341366660362865277458896331443300137707214789620457795876828723503330684043918433784546971361188267535699463285044517375889620586491658550463693673439637053323232799198518860547900057891564833171135922243534955440380049539190058715912565030289309484276491690157965304244649817817937508221780976479813709836516796011169067377254004979355597388435833975955526969539716112404392317387290780000296828413134083281564700122387649592261317233731865474471197216991633668767987020979429553598813062072274620875952925577229008257568572281930226177977845490139176673830340698411103063647953312058732993791945366603408300259310010734676903466917836918751884142550043055146269024666921678905243778233805898448743703052600521563099164768241055545340026399140309771073773124090093104007824527912010461040042103883182971171023460960182766950968209876602975329672313715593253794626274339056070345302854566478043991915878565412172936657149173206282373140015119792498791945016878821403397272064806598222350343466490089787713816853866915998536583572621603530488268026246143400131791847055418237573797743231731076692482087461186928867757678015125066835499384240565872870476876503090138982578489240798981129471624548492120871014776802188951520514210751602114544960847681368248898565326347824114323223615872280166287307028931940246333667355209741529265421533437565424962528879833073028189988048585468029090719639808669714247105748414915360889702693698266531244406796120057197522805014184808449224788862501191942079782205533155568092623902187944317391290684854201924372585078318423565000209310199346594600604720202516098023934336295307204043552756555910788702323190064656398895629407260775785205918920441526414797948769737947436505689948774314782784312114608208640476767876882104006732237934371699770740983160759757190275212303679042969215743676531027868841543749779516049840520897685442842575901686945531415016575331517425517032616930102283100833438445299319735128585222810213423021657031038761278166039413420900387179815144951589622795071449386793004601145003575836911649288481473730390772719047175726163490394975645616365180945667825803164442875418591291361713136901556662651824760103220207070837196556950729815020634709225755046635664593473390564871429562186227149915126683259085515456853893086870182022393685072915401578332828858637122370663797507382179519965868675570567479850727986118101455773762895193443114679861505321114451729612098008288823565514427085102815755854785237172554107293685874170289756933781668654541128205886287097598791644761678792241127669285501653412629340635299845062334748222514458732461873393555443967215717294216210597992114022150831469733600966909171517336234685608426918936350786280307957698478938747430729508462360919935675068196179958800904287563636993532176003318939647066344452044323398368567317937766860298590707596125211435544620642698705744347585264474811388359354359596640427899291200577353426079553540386526318312900689381395078857320428448500203901031911863630430628991530376061704731315416784028992146935199651833268233640537355289877560406961465746568825663174194268284936991814210051833060687209183880424509820601142009414500842502325500175209691335428817073280700093784358490226984550173160190381519311421080233679622566859998354015633630096451227618213624467171942381833475267232225198788443922604713487409907097118267902068473731387684353340033141600184641706108381508422605229750085858150566816809173768653496574577408540554671632694258464046366086949257124244006173355538782862462282501388630612592917041498541052554589299070662724019729094083524303392302791619305059900693952829001909448936019274963937086638869377984796010602280999853026320819889272772841797346499246980170148478056738554054705017945773199751487570874860722281265932530444536766779486320329713648495054880299126291434735931996134863446302992247212438051026455696122537121966227665638018495446928064851759233703904936760236546020821218087579172065217472728596092679183798386404413684989918724526794492056921172599687535918769131028766516117702075147158584222123859794597760952170227060735457860776061009174146741888762168207016519232732520298627988625089765575461127408090534623176930302557035571152929038471057152392566825737683803513191412275336707565312335389181086527528726002773653682465504119594824042769716593860363939199846319644868344693240653337352263439280356241265635487508752616994732118243966670363383000509755004244537454235114519234340421511590588899500339048608737319913040664377928652209869437482471149592161871082672737401184317646820852158893323527938761022462864044165915609682402324307877903367060727209754653566715675232900476727218946460184831752975316471028424534439025315600820722358116526260030920516613624397521078234889156615051492196983487406000619208453632907285868652132245625530853611262950916884900660694306832198823761394528603923840462022060743900088301561014112668455373770148363338252581159305274283961761561573253847192006869192715170418257033219121923466357952864524356363297084079945129732709345681905452167638374551261910535613005979140940181777244473794745760914450292449566408780146953623504091372440936528502419271695802135285154896760838803283303236629844660246528314262402311825472915700381133075462011167398920772212360458716455153351067247923105222274045458813683117637671930412229627504176823885449501388782606527737285685742813791392659281029024439248209287627878942132948417170276769140965761764740878766962250284286127576444758267927771799241957626944079212583235468066716750528367115690675177603483389890906289213712456944735531106455410740704997396859232569002363497585105505732001793239886672048518088627021553629047261078531558000890110550099901280349933017036759420329285195891245453425453772950234311054792985604490169725195176774177791210414245624954798255381294292549547321580858195995625047088183936955121608386168173478269030885305139687720763543798875535304573108210687740331821289522036850598099782130234785865099383806194473429692947264137561870747376307622947189515470596077443827456246892758916434507583622208782789135999990420483167219882732148962259675423094126870528609352547231841611652780537625319966256632930632382146597340658846969989670441622311636779036958201566766039368501373091096700915680521826049608448388212710651119397581155728991514061931229386892731790709534739003841353501348774022919229982902847360763074589654252440712762529959565989434366049405786871617858903543746219043160521235065371385332054557849319468218799951989930087897083896923169154180999128724646677368359874930430409909426350197196609929283202230458761872695844775859795128071046002941371830029577140184088246196452554752167925117274132708038460184803657852817487105186175486529042764292660529400853774124730487795743363103729721846024411946680687537541403802427765724100788863716231560536397486954337072414228485630267017351247041118839794449495017214606624254543612187287834505559362575899526628761370685752342964398045662633069626545710418831715762634061269025294093770042411637926407833812332315667458693584686165617928154275084687840270829143210126886708007586507447350291637323949737533002213482469616146622520071625458863074218848030262987378715061774503681693712103065751264144286045611334310999813989876905709810296637900682839092598143711116660425531880573704959885277884762920746542666922270259202746523715933665235305799356653042182329078783332770714221858353297723760961828509223311088042267101329498823223051573976739903938209362940174066726852731654369401062709126932585427054782225099738933803628173102367331777919637147102651095119800104128752819446861929712255292322515432039861976383030967179799777660628199319597183038044663620001725093106214146756161678020710705119124106686441289886603984541912852932670962484641918374200893037762115277080793193520528754105850924745189867838194726903354985951461055315762065346272746087425267602645456037360787228577037374365280467106859205485385759217832848115512790107589108557465628479083408129719279046532512951700719689544153070108558826833540902304576690117665652670118806406401372010764642034633322705900109954760909797233005155988526421151578434102840190980927474806003697713103497931095951196983107534544925449113691155684302262568140475665886468224856471558038519410905893974454222938584776335613234158415391975943588052038730491858756093488410925901457944406173090470898309826090981886497430009467129535726645466438533894393632650832935369810932381605195709293310881088704623152287906661019437771607609482934796843284436304910846282830986993409040378355349019248451349835101721060120661778160343243467389935555871706389239413824004533998586022174075436462781818724693618191948415515342673423144674158123758377999601928472334910077193169592799012431924239770955690526211626874946719277041081289275376144546243740717133237006850468252640119812577419679067750414530835493098312016916466043425508697155398089061712517943297346472913733827684005446952032210625123150146525185409096043771963401877585352001205334759300735192223666680132632333866693053254100693127271482866852871922669306311347488488287468832188288791445469766824080353767498279293672121446437544968936871679283347193092435553069654390352394637968086560282281774326086300575442263515684203199250538698636559591389924299158986678831407681216978137151323489535015090686806272475750209642693582521907165289309492622056188823587508634312351045174711631474239866376345776367673077647743800400479733853354832353259237276983030583804750189058037837482132122570900344676893531012724446200065828307735223374783659550172645671520367785668865312272133463048068656309326287062653776208250800705975986027113376788066260398451299729626098310131778778709449849419467291470699738560302504143842388320342256193796217532358124949122825955309312113729916143398872447196955696305239647929232245728214177162965781137016100737112069418964781304672658607097007808158417908148408158084794417880187362573322347320169738572693964650741334798687033182091241264191141148869044923815742367211388185834819717919993343725305185133734862110534159275559476406725408213575005043435778086412979361055690970796498857902932014276969788513810910902964787356763870737300905207093382903144862349831427370094507336535190117271294276301378933038311764191714504364642295884869362024158797042231109995121510616338358977729505884770341203024383391455429220597983100304195987722728109861564838070288168282693397277976849000018566553710711179742042919453421063257994348770461071614082071277211347813242522921576508371441042135106628355175796301397200321196956951471958089084230943305529548654407109174463921432217323953860875171780877838753920439534082701453859650485686219903979724110156163812129481775737358374532615257591369587786246179292453529762054239514117379019421789560906049880712488940932603586865317624959789288919304233301003663751130366102345190993308313723640335548309232695974680132030409296634019657412277564168278309999995805003093035301407440542648471176577048772252040145893205810439802319078542670334241505247171132457581982470951953242698779927742645696358755319273867820062288189383940761549106247514296341490480608189595871858226822270465149320894974991377334519164000296825647782297198510839518928441936917796146761272007480211459114764359596473391806160059247976375640433330533348322911818614644342054105762973763691026688831071594015821886241903885377617038384499083559366737869193261688192018116296963517295547963233008671869678318208885289075892233134867296737171610690042952415337332721349614821616348935012903853906843731253317068804622871916061112858517296926084948365366836011723197267565770814356965617364826761600638797420231342788230896846119660683731804867960382634909632962894806219033945436631851156642952661878703270199082452522165735241962419682838546746760650048480374329736751024528945085420932336669798679074117679788101728677266733744697499174427965183989059547404990563010728697100529341620281554150534756926716109927907896009089512274685027061143181545798615836514604798583536428506103842663359145397215404021737187031992404849581863873105564501500585768982223675077720668390137792817492078624558164430542071694696101402355945088084156830936523811137181591909944782859096474957992255459689563594673334019063863167721527724912856013535733758789193691516840928713858663713302520735673810628349740529449275722650230107878094908732167553026296635011875701048250660266144273770082910829968153104847626013387278388900364194748538373014564154683113551481630519225940657106099974854751785217075068723829738344040661353454281598818431522907453757621301457128250065021163703638234696933767095786136353598237169493698486288529376958972012647930690503291563641559538751718832262127788536380215671060501981410061156632268544016505027851138753510178575155915900680126720413666740178301935633922442375490730412926732442482912583311000707330168477176263047408854682362952820500797014489192117416351717498507021174717615061162426437576087163320528147493191845831511589452331595472236822070946181673709642937005620847909252571096935068167763752549657622456266755742372407989210959038497243910363800279539021497639228900248324779489289592707373490263700668842361168279122509129796666954367008045235982064411601705116299543323128923284714727601593648431979638563687352533703351053697760125788666065722735103051222108708570842291900101288498635610782892999788424961594169733937991684059204538191830090739726899870142401770949993523459540652259501340664593856357654137589847868282583650431369638306611222362137301229523130681801084900482390694266174267553141950412662287291753462179202545545094581159538507055818886289360802865959518983866755273983195758800836363816353465732066215964803515469005191861353891885305064597050527904451610941253576374676450044045787894823901505687179794202497107967051300994535795921499316421630872200663825985709905756262982878445175364004215743368808016123142357269067813536584915093813893778507094771117556670929486544220724332373501504433254349779793531451121642919097604273895712166892889836944928673624747121636678280422064445569236350365089081034171406409002086786671132406210303510977018676024753286047112416970818971010761084197440942615857492047235718542597430999018076394834115540881796712214062409649975978600379643571344821723699205803835416986495917038640439287478446468803831448767571723378218237773169487720427905479487638443070374282298537983387918523959437978325511590285445680270765752885588850497482682489351305240953358344903124092888062049265366924539280536189314534764250180605599143021381836354492053521770225498325508073467315144528857963086372737737529484389653766793220970262693317569050908515615784093051239264234855782573765682561042740277472266709914788808297099101638276812545236055340738711081794820406454183003324327209701052151266712129650320442915007945032196839465921333030564384827749026406986631766819478564374015449315421638539478172230631296382933895028628183520595573630910519641746787597940288059166661316917695203976393500258369566040310633372155034789717822325436761244821030689076856696175794046584511737164265764290867503093518683178345170154032086637971018646592569065407156062323634239568847052423875174449968028802358362705268977202963685192595622428646908642026998740357411508581631818220931756690329046574928027032717281856861791892131017034450627952437937292222057519545912269798862660727068505568783618619299248514558712478138774749652936686803206969281235988477207292455438954780237019949751690278051939863115917046873145827225573380791615307170740379805683890276348645797364696006706499813621968774559462911724346655951345248357625712398583306595722108707063631018739944158368892179787453525616986869526640609497938768491549834163289868825644086352183066483056633146891810153587990057876784401517047045192512947667861953083379208243415371782258253625098931478002903855971110506338461436903056346667667471657981903842955145356241977107907986409995976662114072315871553738064160780661803433111517544946154305915920886613926317687526148572037572041079876006081472107878567291486909286327900430678978393204802222484776979290455904098231282185088085949111668118575666580871345835319484957082084062852826029279917169391330454466354389775252624507234317668497904826702294124403019064908401321127720558234715523227916569701107171198725399321322547051278703340051756732898058333335850014484276657078613748060145818161042153044039526341818846959669229927969306587963547954647414889800429871320211036292056836558400152918637128591411455913901797936750840257812464797386093156120040124342059813032107952429329172163493312742010322527952296125515678129478476324655738091463467981083299006210197190932942843025963653689414352856741245070876263664022458432926944727092702014269928076669807368045117272227700649574225707771980427123215264691284814528978745909353344735087679947641345549037663560302488446273775728996242826920580951694957804941939595069029513408281285797504653084206182954330122363476401594827179876289911812898041255656326562556417422282522851569937393181188411910178417585636007586692482177497212790967551716745103261399257687654375770645680139290474843602726354966203009015205660686845303725730132359238635634022940265218340995112338714921122619230745821844758763712579934509031692806507941939322660113751414171216589325762139503987570705076347818336195730426928182827763303478526103463379038262151191251668502946049289717404385207350424720647060239810480127769245493766614192934545072782981278480238554215238985503686633155116135680426199175510223551997532102718896510736526694036383378948317661993407020611206722112020859036403212353883913253211390936447193439021601852669806562995432711201581975234336225053961178543531754808443848315151801257732763783670753452226062598578637704639529883096389619148644274835144328179001763324904467079396534067568202243862363262175040703533215047742776823023998635337540733590995439866956474854670182279691556707529598050744918106307533668448846584333268476700644789579363054281494073998113452839352891909049882721084422445032021255451564088658054199178775478774993129209339058257917735018920462221388193020919302393739152358485446485255603953548534902847301509919496470099313283397246849443536819213499266954135401181627377744048520594799665078096214050713805363425390126126595626864360743229601489077267997281837350449493783540431910356748372200214884945811739262340519284888908420316881003760519208610372482805374453249459981838594170054015853586283965877481858285248241130415039226624479952369300729210684884487283130819552969802643186329203673865535954906548191538646077248837212929128552384393924722770256541301417373422031697355066399089735505851241501062282624560794360614108336553279889778222611812730678705630186784202663779878538474440121449900070500761482638933732787451274215553828064485010577906184391684143324022111653511106129008803215844986424297236723145329907001044846618341402056509170671343914752759195722533850913143582454945681967865667722482862654605433563833215093247568402930913689414178514492226723896198045252874821331472960944916364984010839915966624637340730084946692710416511757777668819789574066582907535679600988884112565287612422362233101584839296297531810293155512956508923602595298643052720544058724972175074126622457223000891972639921754877271170163700838772698356772036998998915726527354754647741523790960575862512110762125110206611979885246735733161864476113119670378949095121700203936886663073344196204008666820644833665872995213940194733444483841129694372928845180082231414568500749328963499386012368151453117481320049222080288717471202047815994486080314776988350422048667289243665632507764204773039248185691959475716279612375475712706975686612680621802634256184514877381400044729529973951533457845893412738077598166294723896942440977424138255238601553404515850645494641571927388185491836069503140394029211822186664835739313745130696616456333572965653306374239684547009139138915114200418335179758206845048580683603215171227501439767736344198150088389895838927341605503941478355437084280015344639471090176360644560577527281116053107311376045990778505291549246669716328254551873158006874979744075762987509778061360848438630113013464885733282476412742359647256601128649183039634921011700892727899807461774229067238543016491378821939476572820159593876907277379869411320250547771347025632693927536346949958847395177723900065676644166959797209009755499100211707118413326432694926774902907162119269650898659077966108109228785010812673916063871904859883042308271741005953504146474424266116710305759097981045056031711827385635780789836543231423460265354791993979297460799026406804332633213116176525328234652543340221335141966637975640041415492706436162476442132822253213693064323708173184704465795314494733251480932860668376179778138184124986371338757858652696000864022308058966061749421076942864554287431706006045912079270460446100458787837606487216273605418144826535491764635457661718318254565233164041190686089210794711479217272389359940684270056499537668074560842638802663427307106885734202707893441359233675222714530601361836032100497625126791825633012016124119415738034989234704114581102726197330489388691289789669872305558221596742766325259358491868805987980560562933358539852963078263470187694874783310253433391579157011473366404551246147319440299668968605080420966473625773984603218009382852535828351085961037148649555704526372215898109013500036427899431704146857419225066484084444517641986556433000345290355446799354956962968411006508918756498182896840394192572278863543670654888039135258553880899200293023518098287289084383220533450003188085724993866971325449727816947256983547780281436194864540743366777484502749057358075202052445249431308615319940225301020647770800483916984624447471137584880211033296808120993369886451377951691027808458677998466480608344115773717580246590423077534153773274073052893737969851621619544197429854439683804755002310932720081789039589128309703139525197995919191335939581264175611088681214686847365061237194746445952190455253527609579727933055262441729759003819774646019513820416620196301669830064263213226838320164666538369409763451065918364842141016507162224853481510268153649774684292284378362139819779471327170030988178468610608822340912513516644073151967680222533672947697095738507292523768425779361685468509449571501675990802264097903143838429662459844238005092136967799090556651496448431412267574709147569569790032112753511161404852973009873603014481094751579755601942671855672912965376027108108910687601580710594528588506394593071909556938242445966262993276954612866415313773010091016809574744520145328506963416251283317074097121919242623885831646419152476680003693674734609417760263804889455428830363622497761723384631381448147508299623227292114482874910537884860907553395390398629178175797726918088829371928126049005420466238286916445889334251106009983836009918941599364559773236575697487100760203441749006800932732987214499534238074580790584912581862534550678215574462462553264384283514301970184913765945080275605279233658001028380592198042677290055845964407065917546404433715687707873096128165111232053631276635457892483753226190092727881337017840360912982988463839280275235269019504798309687966597910426095634557520075599660235069187277147013022631658874553046428136768561860518862024394874561095801454615308043591495810268522648369682121765655617838193765671531529573749082274258949998807545464993398612705448904701384596636300730965833652528318932755554836913303125930560565414865623245443227997173277775866542283036699487761035669888350837539090085032369244987469404591193229662439199962004328591111855770835139051042652744807589102809604669412148621706258019943881777818943675264258314397345053278030615518243829963951817992377249114720921393718451194987579534540488900637212195694934236727186551302627318518800301916979263909275592345528010667137929231082894188990391121925053187225954010686914126285319833571349307187090310988359388831750019740055746850139122995145605776474578394623140136676086229337540308123226078663059147268066829528677750017598906464212528441371020579375458152227867451865373815767583567361393541746515322260230040312428501732405091932200068102842930474119957390521901326190377384444710456678905526155279707004371943517744159216857263446083608994515227648311699340730773717767100795182648755383164851885465816273904519031328831443521854395793675336162452626067640790112649391596078748248789849346152987965192889314644507885032071734627496589006484536026706879916340539930871643192131868964367259352949351594325329793777351725037102145714341517688240521821573302241224676449053136493971523796439882905938445260709719963161516664540803026626779622241307340760746385477332882153845837721503938422044514320649477542692892211415713641868735556454734728549044789422948778501084101923303709949419410210128993261794048696785587205305157164047511525942613751974650808959512949377218954889044983153173098331330161474564609807399068708113234948731392221503719370464688843576577687228618179495937045971946088405900124837710769733551508212526978908756131682222768582635250695817458508725316227511498072394076914608253747068996828495851589261539499057773982186415597152975300294620642475997513208438977548694173917834242780390322313381049406854859896817184714439124941593060632935765588186114635914893913296370812798911772617744068858462352065240571257354704870832829801388407381231338344796130588594323647481850121703843922851230682378623421515924234292589815739195464449441960840548209246825797825484016650774176124933399685396377841021944591003043830294055582496374492110830880477652011104467982152786280229437590640368941577119602676345789533074979143383087083169385852570920109396059327519763444224709486418726097630504585540875751798937820167801037512660096078890474774073604848507527521167285254423347938206486909410252502956411806720662106794488176566506170745447590597234550165947623639355837621005185917246485559890751576311123419195046372731231063001925818185695364843899008340981722449102046517769628434476109705832903394962321344874780828310133132392882645177763529481404631413780773086634009223372416182741185002997848564013574911019671549412111834239725630657648602339039061974200687110882081976176130264809594255217311424776049322210756524974728124947506836710112468473491247638834020894542183091101927822989470086780872094262552969482769215363279359483298828311478910214654034210162952624139285071312547439265356108403810645920600988314951141788528693915314909937799798435247380220614917629204376418754088661546366599381473827728182272193042922560968277586583041258210815155913542656651204895004412612760865958724272020331543769062231441124332769127019156462937597184900138872183352388224117993360077870168165306480686770046908554753925889573358497595867448478897475320728673067921535070407529938677128247357874671897503879041046197049240498483160515490859477686135385982924536827123823816327717262879851820958653543697560757923719832026699461197631888694197768613466451439539023214830446480291335553219511227877160089185827967317741889074786683851522480182651028455630234170685633445979867195292656265978555907596271741743072830360714806759212867600818165848895385516905342126241933883922283838436341737985583763347802141312908599002541778464581345613009963630482773989347919157482154966682263392875931734438857364105979341235821365433738041887894742412000455017538285738983442380401396616161786549961745727743904720145421711340047215539161498167342361774248493311760329686681033575974852523818756779295628739919242865668390983377733482041250050419942523522336177019029645286421855639197982534897301915019568641141671175553211721645331757635575331169117269711590515299048774572662141434772078123364059244610080840686955172247772242104617111553532045791993783452869092452021171677764479329132764509780593233940842782985279118268597519744625161386214221094083902061743187148297297462676807560074612361931829363871814958853348868225442709271241697459846442100558230196498878416736415553476120416722800907326742606239500569523522251175664725637048677370722158934892373966677315830372361176765415222230995199088286507480233050102680735526861838225536539205535006160463474254204597637476666539920209835707899369819240172753185191231039603334387777383873099834069892274191781571135754767602817618553792845252120980864704477963682337728221274158434671457479887215594669048510452375145618167779416827829154911772979621168495159253713062927959594297519075598596194432781051437159572311974493912672914544272950023495822703663263078968440221524588260391143522589975818688776527131136044177028806195455208718634860947669431790832520773243855528590666453087898317968810000101975853861559892019271385929146700858720073729481088903883425735998792036447589650250611067079906436241027536613762011477013461873614685686857204523340658258171560649011593721077215159315382081335242955498368431346199354684922364851745450242305630841389998481719059963706916471472819870232235549527286776150599123041296971932127733319550788598262831655587310769045977857415793147598111246132177108509512658039502747577308963252961820962533575304695032490002048095642026393134547014207154028971682527592371858199613659338436737194484243023960783722067280276790205805496359883642852676907270928254499551830793235626571929118361365816848778100318164453177297653902462984239023954322211929813421724860546502989410171392664172487468472836601208042269304648411319840493744452338762074051765192652422955603435525641690298864744522150598316261925152178615596392447156594406424709020691844254503167238504184434588489473636045655215629947327159694409646850204481323126527084405518952382038310187539984264249718634311650828794244589747895631522168446374634976207116508457772813954646581604262119021351288514449541726155022411913098916349374434176432786830905801672512187997072751394419147905485695445314057966772813242193195554959727885574591543698806383520827934465024151352800131959221012991932247962332356251686183517619482721690648403055192998311312154862483492874194682182631027341396475026087515412317209133478597995695920821808893980693990876992870702319548711554103307662090286577540295199409297873899908442507279132248553074373933011891052912358844065920498282485023578394333526590108667989312931893591962573983697493402007457219624212565954653841595425996071504763168381391675441920805758590074354205877353420550324286367040441280920098181164060258090175303242147994220431347390673038519187274183956916195274980073831523699171163450284234118023288886388917402668057749075566731055796720095779548584210689998027081768821469719323076334523193700883373889163433345839361405853553345287756152558150897022864172835639756066935308944427027275988787165778728146679763704495455323730136270440801535002794842659286190791881765705546363501188919381257509309094493904471427189121764320247083184482439712692271490136213109558740204066303180854414040887832545908952918141624746988018310802703286693828338000177396865188310773710077096193102450788920388106032672566692995209994869191791067010359894038168836619136035316926431468832985273853929105590182026097189656369996829716525395102309986708226857029984252453352679866345621140022904484564919248495586441674252381821966582909596967928009099287050098472672998758006234696845283632344821862558865303183575056466687493070952954856394099495247742278901651703990531395735655854156020238770861683178783344352811409630020958691021118492213864698677603968323421964513824261940610301354926640934247475495789857233758635528201791911173270602315922922579200450082954186211601835451876868037222475327027672278466345355230226612639161923563186315519140570759581314912441243172266520862717903234629246001287917414564202475210661169621740898582692476016773201293507427369303903407137259158102793006100251909036749800678352205544553601704236811137334263641514910826222877509340352100603944210754723513817684812228288398527775606365032017029693210252406718764304851631808981141859501442972986069998145669769940470854631552825283462425851383147814776265100654981430537500761335854552128566863764492717218242891147215820831135215492937504659785629997403972668298343704836606972373497886031199090369739950014816951553057993443814869888134943744076746247525715319151954047560783101137591648071259476339300017579434143446016710620661207066981022619850891599611248917105899790482705169469580062806899071367023579908192283923742946737897871162766353377143721042000242483980066579111897602610372920485697752396871923495558717008428999868949099969587704630477648493250442146582630827413473942984063462660963460028155078107296716486738936772610726218253502321871257159332046872426426569804945113335003483347816803475039143635823064104878887670011566534847035677044106852974011192373637477986705383880733818150836947263703989548073067239611466136742529438628920906523527120363575227151841157140301135107807806349373618790426654028923032367882917428002529121914088275007045919065784979713832189727371311685519263100637524755200453870402233801961923900471452839711910131796990868650591008861855392902347939339162718329849510868473611815315439619974301987858718807207612515876435813097071343972335835538607753069452356128533900846470964972784088733242874117364098905996415957288781362833787415763302043023348726369388300760312046532175206357436639443125257359739691391522852464065275235543983283253031955125586327659962057273589411405675276571092028783769943413375390669903570230478743953491662956135350061670465805663935597783656647983853685619954707155135601886183710583753229345783677814647600216517922301687706721856652631501925439824993496784561119476124105360334932547908228406111419441375478245885926310914678215013775788137608293270341110190926159929042171019445958646598072866581099625746733009610194933473419734900954767274074948783931303207496488840524123593697603868991288230939988872785523553851004244242815811780052837355292425285380488727075859984385109088114525511405678992410199311747089697262254267970370423809633575488796883620776395680059445504174817946633264159913445395522978329509393063177200939552490395125096193665382062293438687049840852499839255727434196343891877990967943102318361542805917043605891294287151775091344134993190457952057236590347362167240984529257491227998114465387060010717201072083917650417648157800649609378103826472805281731965073845916751994480277254412477172685566869558209219359988654043819618959551986438481783304420573975849267892339649042906059094709789722678750860955491825364829551973006627833016827185698534249907159714152694581178827496223242291307024674453816103457414828403174647283354890559653167433720176043893456147804268196101980756320828749729891239892568233815334271818819661922333917103403173495746725256599234125982581750108843772197197312402929709972018204932348317785724794603054734108486460854973256035364534371743289509753729198907248110788431690568937762372870865883089668791214513365484449334707612682580508697989823265967428149247602343505880709789906064088699998126933350820581310803753135424403777182375791536681927822108494380923568521455656595544353118314851014255553535510053601026911125648394983126925564647045311354499526041767839399863041465562187340684204797029859720513962597725077173700049703221235076124447634242556792272900726773723070878774835796139363399087761308035694223239356624763516829330436627826521995994394779226499842458736833923957622611803194308906245665571340470600220370172375171750348765869482198680080055965577146775737566024084252810579587101009466889395978054637170402359743078179396495098455939912988556588607576914700810631166505628979199615410625408363703237482023884428371107146523001671321970516099383988276638475857731250493832687552940205243597681514176370989049820922427282147778063638379952499693356633537087686448972452490119437167949836534303894333831993822423232175569669638071543366550094393156342542512320248815113437045841211204853076384150162956214018276848846523877036567738967759422033351188183736192635274487221568231463699014046892851732389663599694938885666660948117822442055258244671966912785959872580308244647109684455562580534029528799785219896751796140033772734250999653061498407668138482555259407096068110440643825350207046299475066280181872112808443904709826439566585018042460324901987919266477730827988319239968150392191292064689643374043636444656258742176084544463095331700868725734113453638936515806292978726398464951949895563048318629127519297321415313867616632905047647556396040391084689977772378585065363059925740675140691540049891420517867254704682141425854659983574858827395423610005472932334838769580205704566576091963571621983976688284186150663566601131038580661872927633683527885855901404671066348526183423766162299454098365906171349763830973608647659267362251633920705098135663297805383561613215003398358389744297285966324917099299428163918728222106879580632733677437525396800367880994579718758318421557425217000880691236335562472585387181865907931992107940480350146989476380922121475504571915552951647731499639323067523540984622728852055394752240175617478263536600473192027819803072723365080856638194833644810961044393187060309852227823304608404480451256444990335403210815614653438528459216191913607713783076386672381788725687826860412311428104882858875864496608805110823517601158731607347392385578133541132085579187089097476126880221296816861011701169147366645331930465021660997372675063265649379045677100124206420257493497665747892475788658529069931889457400008672320913768957454558522227538364069621573671714348215455501733516537091261553707036509519160228247683003753716972955391675599554541111376430855314947841752200411407830791398491928766920658979562543155501685485345094286014691411931850757991214881806149235802687068362893849529253244054719688364970482374462133096913156769238797172977140867564718231557609130414472075203174773519420349258811114305624746225973810543788244046262847680974195031415399656384312708762463068281824639086005176956766232059405305381247112879660617010207417391068381608984952082363365881200286825566156466887408530406934121430351290679711157449272191780278569997645253020489392261938291466431782558288018370496603919640783764055268105492646248573006470601018446880964187823667341908168344857199852755151054619500224158338244930893776194715168075191958343274659831136825215103540211110657776757109170560227084294857940125686818046142058274817832901251399369223471489691955597559925559125971357155815354297397229783577696481825750902227081281820839323902333928571959573074893344054576624228660812865177804984787788264869810043190255744458554765936298699854302525713269838685482207837771961054420307848475424104102160002979386303297943902519355258048795478616667684365424655329892210296919904171904555083166464751835850310819583471703874786361861680684785378216525235068110984529885560549453418551491532564477701706484703839212052847144084440210931387455605332526051561867130642528617260426007253607030809547763825973547145289680127518522633548208305268805282644847645816756701059698143901245037587084907536704608071402510893500679392827548929505804847462113218335423703276304180297149007147434433800775866225624639320906510523630337298663395990934233804804425301594823319719454322966645299059193383202389832819345863630967056423563530055521712536333585085680092376143955259467354455488456351957085271507062804253448988632180529523834286853744555638449316409168447891348283076967116778423116757964798144217198501216367463175919699608118115675927388256545200869656829097634381311149709416629547036651286070259189705917386407169604915091071382737594364077836909254063987529294055263854016821369579861648979320319172346975995367227322848258432095962171230157587383602360748374302102820125768396526794774092289107600713353280534865773968216446842657991246808107619572830063287839563537422211989337762964699884370469960241678458372672027403443536197536294436404985090534619199066128274806956740315902896335276852449308930227564131726413679383344411527264856883719806156965632334848575568410558639621438035118666600850011804237240681675830457769603742569625415416742691084891114070154142904668716161102072763105154157415630070982223298805942389655860595426076545122864664696178391445260932055661213994977622134921080876034992369041649739553540708239210593083289056537266524886175019948370248100377324867617978052777932105147490971551748139224914982407562122652951785749289209295567176467037823974493515231197093715655407847837977163830285823507776776453181780790175783010635827028793589516715187303929005935336823142644283730722799345041405158099274464705668304657372224303152969263504078090620653473617611452187817776296036287501438397356746923632829943174695983762965231001515546312830957364574879346396590755133281844726115786719511265275539094202237111742641745165861058267072223646433258164820787262001959463725567351633300418273808749508026216153094886354348794380967803938489885482311135637119545467312285823715472038005033838386460921042809023081934992115918010088446019514842796136441646062449987804972625864689033948800134226234440688663936412028646697091031097946402836690160233758325282880350362802746541240601737410562668040777572555831402222826982886461455585900629623116097504297763179374668632366293635576101725289299695747881745839308955512462901075393607832388235212418670468220563121739890125077847256221162206503117837368572037907690464371856233015780263837253214458209986794111032767724018774636318075776809419018650171942758040208551152599002147087504589631386455677323343001786215972194346694769079027232455095870272934343489311175714426262481182183261333294179453985613570446268184089444054314642645085005685738947117809455844494111043013006054872201267970925905215727556612221320371509734547636315901703054356141226370716370040975302991396174236471409397023267239669505931647366738928489230676650862633830557799640051677861373584806688332303690059734096480037288986831679433353142830216219356727225324515321126170864359378125026335906744574638014799851026249626824522716914255029733446481545110376788244374845519954139809577578148255169332940143639989392793900446886578878551001403295482101936094781727372728180297512502266363146843419985097199730258016410183565405079091259623711443242844245915864079813490354065393400559444670943713519567118821527227749935253471959844218727758853905559198061720667187737473302878114681115908809439401019247343427467113260058013390175295073605298972951585086635460664671829258349905449068035687393531900904363303772753790088324675055715916099485871876480083639301099815679443802445069513221938234405732903635393918115470639061078084201622130560423272096573530952283779667836931461870504269347268920600630478118704151168380684710916779314790778297455648496894840061229499634894217972695892576963732262771252409769410486176132955372288526797979432973176075125754002981416552019843475173283700013563615488799054494973479074356606850097566711212222259246393767804959261679035363821024643608591846164628061469320915113735745523436596276515864706054652713024718480339240195764465761870196048720557915164844666018266472356595912864731654829065223644289231410997505149104921396656147708786417804851810592153372562742826004612810378884568147804078195833907196479720221332443311376901484653201547800405393794008711596162783956381277786266730553844334516657389985078472043479685717634853052418054251086010275146341255769251511856841051849716774892991820019047203853413929660741355006485257464597532195808397312763048231922381172353466029672013651063231511932894706116167337821129582092699270623610045000221347120294407201724413726186222224753817347819181705467915810527958554857839496382786214385056224451164566299072699301566639044602622364158546907599291756884551713935629437256474842876017656780365959544954538861709264030087460680696538385159035025499909782008698634765001090065659063128643159960092995710301784748772070728720655261541418115450481380312442638821106602634725331115673800400056456328602923498995517806150755723930068816016909509400629472025984751539732566067594235878986462544958793850630411322962460536924082454476303742658139119789608122017173285817892289214060108579372700407103400761167197740111529035066847472951701326683542615740988365346721846356225265268149551151327342762752331813632749272550003579778938554130135779405698802918510812185149636459384765410789895960103658880585943448402563740149248455173905769606306061574135836004092563557730762821549517094462295813125766827532447811228319142919330017823466889297426581950042426685802796628330457244425506584053860115755583354704962641405893175218586760148967593768034757480859203249690753164719999157989014098708668643927745352178732223043222051063213923664309846440463089029482240811913508253841190840181463770926898493294311925999362254429004717023708952471393596012355575577864530035101696153813470639062327247031713985523063760349275450110256671851752335849766867550168473421104711768885639357579673174420733168976027630989088944077503725764415917016068647330717542820234038463895290665974325388830981109874224648112126402415243933304110736974389827794164575583866905393826264131955059331151814199704554316775599866492532070692381559034834193112356064751552879002091469269270842729761855315453561516854816014642960069198107427986943435694030732425854303588407769517882583108144765240002052942468947286398875118294499005164025982981997389133185771696172276411805301970542808838183080286698579629518178591914586747431466234816423363365606027286061039840087058571888366292000089596968033114840702008088827886741547328823801466203025497087185785481124399277185809667836421485281689274956935468995140044356966233750828953105935536287803022514904909897330906084633692642501841293891084082984261383307510705275654622110488703063915683869596453487313707536326109547543862775118848289304363531502632658934505167264552406259966367801514978536443506237075799784921619136908781381855981402172503271474077719858774872068615488940513472306575810859261419407730882061023222632975366344174608193490980122120790831823485200569925926258889137257075266568652616763110565440447154115738115154370961819827184369268250346371774138520019745949146022086011264401769248802918383540808548168521646633054057109508377270741135102720848190419800089343120736437861651385614819278648207007295757526288965510280235048676577438674501653923883831528479971718783315491211135413841576954861449517638526218464281835351248276932515845165113828055435089199391350866421830317266729847948406777321169692711573468341197095623904495099841599603144941302636118913678048042172181492713158351019771037907709932788282777222432218627967823208967465249723993382219236010194037990684691423991600801562015365773604283952875785006658308222007567492121120148810873150185369894220993535498752696031140801728414829370509297719664788278057558512359695624923730754530972041967471262575604127251321669332671018762391944302139378944097203244367756595470483637297514116812584126093575881184434393008910809709243519037361467887735821171939411942562185672039933023978799598176062854950178209188044679349457952813803845542118183534534471343906574016592304430660702373398754574336972377147176391262741056037905669970739309279800626676309583131646499094786554318383795236872314870650614146122395552569442750850867867342361323075896428201937248178032377405091597426457289409126518121175069566043601225387010772799225803622133556255915544907493471516496703398519731281567292647394146780247915081914996627414545606190327585473980204470088674223482504532699013229340502378580349964106163280371610455660255161695304009083986099483489599471303821325485144864334776473596929381506656329074777843562301246597915962808396538010566753701443784044798238080054051709205005660890239121649411295380508362449424760174958294738466276642650489490277685339215732474651818515057332831562745861591296944454632186182294367822082425993493705498689090368070354702139779197539330130511316407237706357387685994551830688941113856094123966373641589456872800217738396240624300775381051318187514095922986244661185333835689478866208933392959194848169664231973462483390547374948262850730474207986944482208469619302784589453498488642642563232083036323719708202443864029718389412581553202886925940643128776008573130323908846576956599530795420701597523847579199146291389822954386321821330242703144768938886083771800140464298212828016676956907008058147017505292709363427315188844240306145565789241157824674964033258116432727839354332565227460527491774991206176365381107519766128064247944468869909707131703179143083110494067015593758924440276427547145024050819870437415587562461940757850014552755697186962206724175527964307538270758200700590018601281276820178230261222969904640585440924583566006302995679231093720061359390036194671875492451859903366927990465753906331170181364270002827629423008180685253922853299762037992983783816708369060963154590374470447945509582144254738341378539509394521873995514304352721865520639069286370030006460905723826005508591866011340340556876467624881526811593442522439874028086512167037904269477267133491991082122456533639511408236765484576941264343054362289890480193301802091282078302719245927573355592339246132768115914983639555023980810388124328865630927487969921436918919377656951102337018746365349525128218698245074568414127171551087109397857981205852596523845595254939642114763864926412669001568740551261267368828763264590340146423111649796009323027503991032590810120284150717575422364597145611276353713228076724443440111926350576279264103635398430343494297362692795380271991376035068384945793274353890139044386078903552926548321528342377174068104648471857107898826001627249569704199788385235609050721418307066958154832600002321277618087235381963054117923321075504218436468594910294585343005007844652959740941542403333430476732170342399881256603356469940128335821011049546996359632246586010625243243100798987543536862868374371319823314775515407232011403850082312204243261368885511597864326619407040615357480991088953512848501585252015431823885427325068794427831130393054387043043022137813574438586474725360610298178653401840185923224457175693193716345415087683535211919045151692404660061115061772364550892211082636841989129986859761227875733339046817891382396373966241298075631656485838687573903588092113478419977086760873723623267846347017847367372269461121071106134220362098163554736575208056150853756586682121531595719598938029007887606803870782833618747221631898596143869976355947898948583565622950062637697706729928730437454082601958829126774235166113792880003791885309364850909864208345499700466870304518142417570819113446351895452253884912154657079884242917546519133360675247884106467308516633917290534946085724224504184682316348174623526655025293973942238310356440919653040904620745621951286263940833391218144185205071975118231703832147938240636869457563909692816010554089219258744497936203085445719081970333519192303026105902163397674892209850084125666907268042957964232312720159634526820910580347503314824282405568874751031189606585287489013318128729475568382310799654105884081824903299762098580518543689318281586560436201655468377541527941166997065555922067738414136151336590032522437790131363553537994128995848920616632115186723265949974954660917662195302380738486808415013171470557432820489722506888968472069393304736893396183822131781103033388736308952713256760795275888910683281346931968663761946163645851912797400221921908313848312922870293709625015584874178123615164482539768637465369905015709037862521070890733308651068312574020006395341291303416999974517393575959568480208913399979592756609385725142409374983111948181798663649398603226424459420991498535982307834822881906335991549637782307895196699131363570972846747382559852498044323715775130363485677574272455056002116646441210857821529648063069717602480431772463630260904018747210583305824123691973290168778970574133094477006338619517518470573673856779341004211385929329727955687792272952443354333915612344167080046560182137187131590880345186316456010863994934160223158581681511626025914205661843327830300105992700529918997186472954966107760382143046957370598277537099377574943737395923942458224476751451834750465099171778855512547640066504399665524268889171274199866357678199538719317764325294859778938142911147865344878142104578193097109152921065446903411874487566728738879471359225724031996139197088941367800546980266451135494148207000834879154109882801676757632511421045004434151974056104847991257975079318969661774122211739101709365662295918232220356164989197888895524384995432010175116084405942153020126455078481345134122174771602787368623239003799239961041907066146428789691067545552856747936051148168914496153206697091517721762937170282589093895391015175391846988313671204640256994623912379044682237996355430917124231796128849889358643717241629200123581934559823683617941816857628875523116936915758173647212594194434675677116585155878059773727858869120910522360727524361746918214679757295566791815766851084937427727182775496799520745781817689791036647706845390421285968145507429330190530935395126299547166546289731702712101610321062433366591694139099473096799380527941819272452959551336057052230720880210719056892803336692082237177652524269557548512253730591716088910747337303293149068633155014968564204687562166828376341059171466644048456035618135065050175055516062992617828943336728583463425296050384344522281062047698556472429118898081358413412222464402760160321015202505705069176700982619116575591632965767708353926522380254507857990621949589420277308322951688398411189616440777210646709222594544909991369995233264982604381480990419232655491102540072042691552808025023659154873104448003032865905153440714070126870994124995443095585560604787228205255486880423942199620614876793711683048711517478653955578492171235650279679171077613995034006647931923683008737793154914579682590678222884698939187781284362923389007642518036872552854215746988076549373411779433446165387477872591619272576474336261354257998741477445409298737472474957924739512769105329337333108020046944822232785312294991474754974271870043508911774293685115668561720913010138925432315881424146475360692724195230042449190258874501524027480121540374425717400919836871121748984877265655318792193661770904324148354076152738612546157773097425747209303289583163721247764210749580195429862111311304420785271096118000434716804320341138852018208376308165159101900269523229802781608355729072100639700580227131731371133065535237562884748975944206427653558695610479409427743172597427853848655096228901566029172453924675308649382468337203352174387799404173910903238078135309659837907339169151689342554018084104257387944363843044400678346624386615076179587523054674919977017172801568198008885172906279812631048008427481944467043130883999675639458699378796393175940023620371776699636043157967760252632449764045298887455423749412620936553073906214772007827726349186110573344680165088272011975949844282812493131965396167126391995192452082075461084243626802711034696779512790211842089599168187432262377062780847193241148732996625760387890477191558669191978080856547969558702864818496024773567879681341777575152333500478854008836055113787138947941709785112095480607045080528783847703805267773863904350918566716925335107303888106128451250103100494852293584588792901956159863572253857004337961705187772856208528700247261958499009729185116992943120088933850754179467967496367858370068666346302040195594418013904441514408675399243660230022886762434420030610066212355963284449640182301965758304794042498565915764627117878060721233107214000699732671399368518139599567311212584728343304249758792995623057353621415422356089585675328092684246738561619208286191078418214884638737565176954311142673277923229872882811762168784075196399723824873359529277660882987633488312746778194264539532997628471586256369361564068216893110072165409317645952723757403297708770523062281112479049538678936209380263195447996583650532156988227466774540920704539048427472624562824940061499654970691044526426694735269609585086708238105576022028940987304111511291419188658430065747873291202856397078073950854923972618885603170666478616256080606478530573348771394759929850461813083711253538489318750169144559913522976779799834526960981275150583709473883890189865625607249175333996990043704176831998104044005466535558599971996741977138835529511336098561303909897170507613009817298494626169746788177277570683288598478772251008891240280784015002035205511114464673701646284099964185032226450423901847570380351539153373208042007625844706990241455079143421506471839103812727470534381482636916011567032636822680094309345643450471189594249618947633006108017453253503813344522444860569243197001629103885255246510383735472070591294283667826505167619717076294853455091696134065835194842918360793374222990497699508421618686566666355254752733691204637385539930029581537280698510039913889994386476074786885715242275872614306797670203767386387168913055019917728216927710590945523511680907896418658174472491942475006590079473425251537439356695551108694004913750257204293597924840876698262429856555911414721053989339625903105890858241609325270692646007702080176140044861419550717093139602534958742055317805378957746074890004874888813507921631877125272327834621141926818705728042431745441240521461519196700224667825449924411118431426677662009556590333582479677499504478711596426835446596333406907490651009016526845378101218331011026688021787297028644939479653490283746258593505353134616493105422321170927557698170532229097277621696015297550895332378852336986914265662209957790299610748783390494552097130484450873691211359701563790695726748666337794159770227420541092939375281036620921975159712237543987891823280702741593708872279840597235006298590516868701936545855140380773687600166581701988115138115311303485597594665953639205363207916882402776254059994006376765842178938142433536248436065140830433509705175829617048175408826881672577285963363999593770040918278248859573797053012804431459585181186239592843558353344048937519549044273253225612335074124432207284484054306667389413464677503837408581415511105143821596262856090656427341467734063304860650222149888365437152878212170563036530840801276020480616228959145397387589096481876025772558412270384476216809407768360535345898605940567411421774213667119554299791921285631463352059597831362533444815808991385697941570790567925124796744551115394698471849322363192326254250481261705079764588017581568790991294538822925935616641278739124216070370587197004723963060851556348695304896806832155975556459688287251262395770168318198997599369557844284554367432916886311630858895210984690012899507185395798144923251120158759103017585134193467623647257522803235643278377747226668874152486989208237901328375633313152851939459367911218688959169618483373096854741165905858867946782984842944255075308936272744377536628994055998553509041516135316896434762352137606047451253957306396401188473050315644800437716032451602415834036379997045535402017652172566100231563043613702671320404844102979330838045863827970840356503550275753495869575253994454337299902299488939534359796237160094794740198219211206109429488882006562519808115215054306391746726280786603092095707119901997346717161876438301926187309586670098398042530848649179448629044303337252363137708381995222874040909133466136796737049065976194314065637716835812782210873658848810724157266058201710371740959435170887927576471187671218582283001188056262099491299199569725844845093800818067114418788234245957016868023294670000263917309144363170992455671757088700024493026207965539220829896883352776946967560481371651307594549528886365401342687984915215334429680038410187347765097013212150417976234257038162848611577441218843663917473918384987784275514014907333135135319437724361069739951438664004684289079883835170565329883837013123421589701257055827289686699392846189903454527131814980737352245189021923001176962611291485286017429156617343630410689104376489554550358132445282025968131724869868996054181913995520433261252045518637623344996636971730659281145256196922166172988778780010266610685238187941220929799287197011043431221510881553239933921944939859937794144633456840892192483184369809092303790491858029530525030481980331213695924512521494300427371934237682561507470091251945301169700882117593776202749372921685059635092284015749702185732777292341392586797449194086969440971281899571343485999285780207284480021945052872850805922814528972921986416974678895680025920020370376016085541126974085926481173116646641864550798272534100583445416685758830732834798495508244799548754238709195252045007662650878387101545653696581388155017286742067739503294929029818466024915377424269778332259952166078051443191050908341630262588943988143534928131310860149889468819277239335864873110913426757050555957034757516833207806604930115705514663978355578025957661727810066328946096834566116347576056226398914150339182775600668775337992532842086783576283865784942017449590691700921914265916767555881087550026853804572955676987103414187608003096375880466325609140665559488363985100577178768113402448759899161540258543605899978174254610118699660391058989093389130171291237788716836144589110327340523968537589147756119512019721047094389520954655031108534987811802044553053536738696118531190602213905759247651577626866402840405955937119129862776633797075680232770631576130479063686259491705281066482177610730838962316801268921559113799045105906466906965128862574499316712169399373997135404729362545025603595248323818903834857658086753798914670581479894202126399319141692448471548605841420180831618297296813803038189329514458090175261294996634702932106558477448323271641005621299757249417526449961658040441576388211155990198270915719045787129806567489743898676662784380036876299437118515406072643970194846038237394075422027083810795907613204368791845892051712894169715905631663801886628694944038280070856956248032757665597436243017332426585136437985412054614631876092416133904291601986322201842028137514347497650170985749124358266413375947281429388452556246352252153608444825377691343208854621098616729252824786305245106773284646843801459266806136337696269162488632116132526469394654022287633997189217989919906838300619119398312848182285293648880895484982869824558244731739825649870905390620797426062584602037060764132779182610022480545763480267855145784082941329601753540441094237997032475537079005307313079750739963797644266502499963078584794087399682391563804831290362613935779511362477842187304601055318104530529948447893979893163556425275799697321877310503431165859721145492950227845680498524957805660006749001387686386332143796747455213461011797926197696182911898697968820579792342687238166804251148867507208593684557657744670896066068662009649069159359099931199829272399599429592289157997333038907606998581825369993356811715581302366466882052849771587245763189831774551204168952560319175709847381969268060934272072775781767227855546408004150489428631912430993566979168376470548793698109413505995739587826448336385119167594294361732803626063802137540358943629263897835005329625102550106570965740820397050172031047535740640427144769812091449981771574013135435016667368692124582199281323333839333515147656053529442101527800452667964665021219483730648715094062438463515584523539014978175014202893708730227002537109235667775489622038889329971249364905498391336342347530731823313646069968870631639517529490260508105774838184348921968312220148646400623177350909617360547264349714537305806603849856680998505679331809699464384503548917586360924359297380615420262685610097161529554611063489614464536099342750355639531945990402279380543810858076594909702138648690417890765287592059974871645633970842596535898822096727540876688859073089330135518387545235708887619695269409507919660721208519922356546484902511144515512166273065042612808128792207573573995865657813007735814123152197120976152137071678249123134750372921110306214374434286807065017674467325719672147573436382104754674615541847748304143222501160567382560739486611032048303494402766826298626894250975198759211272634716504133371262470612829373640019979970845982249980560749442523537866238246223849922342995035381448693809055029917766697005497778909118453544070802660490236319569674489349443279914445748090545442569113599945287461413705885547442787623017865627218465464546992670406926063756236965305893620286420342608012094702192788028592719460353611199186173376302789082051683651703677871072161866186585696477261839792480992837035537258185242776408297372808556223263147434583023046627717688421091449934206667120219178805698375627745271563044372494413945647076620327971074626270706751530953434602143456508063925434629288894519702891186452153571493588603053719650181694291779733039908162210077976637366627206838895509781227468700466092931337520674634780670363746188036310317827096301169743501909175038677387061883479571552715924326365041538647061708156653974980313458069650317241356392951272568153287823023413755747898882441629493735859179700607994328098449869830031097975194463895966629347635004863767553080725320106412945057925743142538487924762748587023309436860095864568519581501035834236165555571915586114497973960639150547889951961149564942529280874936449930629974904064522905744320986753747456471654830482324996410829321967335629280107512227718562732723900260921811609797565652230749240127647256011536060301590861465383220903601361192016773157576325978299373154276743310979266673226619335109016429233844193759705815793247072341316396047134389369810683282778904796566979304769510129642604503654086857080669600732150033752367498186392130626906669952632178354449891457088244389128900225271640571834885533543126786875958660248282642145304989230198531055025703579599165021945732412707444888937339205917822622552186227345457572261528189062812168768691726257710403919662272729050981287583286360665057176667034235694695131100390137239310278174212567068429216019634896458900283619465151077967939529506774967189618794943199188394320730099676998004886301171493121582216757521932256811200029827371683155085493658377423764887579237187610978434192780885132271949725260834778529693377397041300417163581475532639525069323826328990468155484074526822263822001847388822297892625055949195698399117285027860118168236328862190695162251943443084915201619204919533491446212421334341554686967449100055404203419875060936359422870487216707762839506131814500754388034382666612580821252153140510679226494213665503001636064169796309794497752559453183684904945527627450523983131413596839822713394820664996224133023650883041705851299043067541797058041076839571674543025042262634351725162617434854795282976911960444414692735393088336703982503364818941087784961431187683789169189336906626733934784942607977458385915833523479549816166108190273486372920346740509042755796634975964230879175280638653040501960506745359682731655113989021107572248453034781646438100147070706353309200820102258883972692848763758352629844745940098417182254624093488242405218983096935104593646196744120157428089095244572422935986258585537146748985160749396213359873546214997453631587449984707674686011951138872690444286993301066943504562269944245641658052735040792238053535235681977371179593271723217217676425462151768965695684886722305199349899175492195638684621191504910240488477105360439182586175190071486675258475405599113106971406657446185034656735455358544408701896916041065259715883756987522207814968364194476625435474667013574939337981292219648343579677560750095935455515384352801359848879389253615648219518015755069756086208877586951966557748952570346984825725891275482436192591417107569827287152736031731770866089590512436337949614319138125299925803030481398193113944046527710857859222692083937360808893861367937316648443212925106070120625534340033695306436224136202348482776228498829606604713988093146674915101446081003386881461630871206534948327800655525807063146397664494270627722576649676570620362082250764875085168095424623460291647770007784819515615733877690991147725702753974378324003561043877768294442967307664593125740030148929987947902935845316540115331045718989172187641888871972541427093992520797353060951203126116160598729643653908717080170786159188691889820622001627311211895752594603846514783047458878180155833830745717434696720288855339063665644241415839256248454144193964767169182996554449322156714374437830778588417429192357409596022508474738796963917344356606829700849228964693051081658578766735461688132070509070402826179577814597421685758753753439872357168119380806342397074170984290898842563235646915895603231035354220209756508855283497868006240782560203395894592948322002010768153445075983591705736163548585053431348088674633762996708067738524100095016739807786097560664145026358176075623360053412021054456315631619718691184235874723585424310524085142404800177004486786612564336030535715819512288702361636845928586930612101497211934141307885150969347896649202265642527477676342861864192828197917007191096601520877792117216859163822111341645112935183585283187398443908709572803833306513688924621717871137170399881628619389421874035332943201775157340306189724897563186903608194219368189829158246361300559294787790726653139607251397621680035052388202440882960572503279096631221190987339766954988785248423845042846244965067100401114085270304504441366875095777362429043897490743238017091362442885738163599327409142791545956797825689167425651918737356185320991485816687215581602237963701053454796544696327519986851437287054922646301297727895523868984444373348808552358275597943075671092134289149932170133429086076181472830498712221701891509334987702714518061290184163072606027731194353248281669017271004342122356802849364877795703337298215900873993595379363377561423227981116906919862339281271793618852732868261731877008040184781821646941780592192042656310981054552162452032231577255225969476853091212504469267133908035420073395487366138513452646563452151223534456554106191437425644838532752597493264651676098967557286532569792957228650091432933464057749392846024419262226818488072949242350775471964661550855237836951275282399373015015062265173366857600421038107920145277641830054079469871350429535581023435695664113446943697316375932026057179717728153051916188242879943847207970991249389823709600528011429796661894913559996941655689979721904235269570733244646305247810796413525635205142321830030371375513983069672312446216082308346745300018698939701400259671637952364839510154623369203795622642149390829768135509889338383541767689949007891917321968311506497339209202674135916462857092772741903425737844603955425514291238607607630132732681415004556917928484898987143396671483097183913678185552259084772261232097538951935842963997018210707346408319619699100222605844965115289444664119554689291620269181279590069396369612575822674023176225144758970063892511386165504251403369245131600225201640433453385677851420916500564603628938804505055935610793197468759042053450819848905043252208073864252908211559572102596241091205830050522463013335254474608561725398372069247575266153647853854714496823972017610637516333387162824914406762590861767297413686528665226129107127199413506673666363565836014690867665041585594454615467059149663971720352799581278540238417928576209805543930294678459134136526841729017517929493552856731852340377744085986164617748284340042464673407086122837007635389329713764073287246020236380265195101839605166265390160355548667545779831644225023728878391167452106105419179679368691235939561098495281073116828885396921244100788447594980623696300411480851613454002209620175600743594124545544524670581705390190802887758053315699523539401343707431804255899760756471756037185898831915909049112915051794247554586900673309371633509906122078836403603565682952305656367512770518889500492878730964800414794803873414457265981629561884517719899569015177775671411549033195322543892766339591966740818265426043740537494420431734796103534271284522459216662611739951984595243062808567789891147254504462019285361044135477246085924706069474053982957819449961138433127876207833666705665404882592866551424384388101538242474273427904519241940387116047578523847615287181007372997939447444517280643149655708196016209682707095042276047006756576817141445811841602416224656563208364592537763616796482941029748680082024142709364933175754323865475549655321631417310588797833067375655442780022543299042033201576177548700321138777024985928838370039562596338725828134930102019303869304124419177473386864443359628960416407194983699757612731341256951549082314711366855270632249908263347229823196394918343623905638490082345105934494157532795226434317446015072052179025052498814010455705864292092603148101419120013489085650803714066954316764787006950164948882360934811864572377980585034953069502983294648479611957610988676104203571345257006670372897870922398898527115211293391581155466364223270683538840054049539074678710192547213149064313449646052491821938997659428176688984692250372784782765457571869143659373601723883259217289849226989428022577161083160871314246360037326652650809067938087328017434730291385261234634153073590645925062437261980244206903689715488141655138771024165548043794809794879282458822164615135906226079988666758137260204120254212997461367014952228212207075237183699260406548402317205309341959212314775277021183209691635542282174935187659540903644090717996415156672177473030386522879753478058005317913222858417017108723928902553215564538709891639342216032829650680809768728875040897991565972124822475869239693806420496625538881624859190623710630512188316414643377613726185121116774539096963846461615034464249171146551556561313776330102816325206063523782800894426975037041412627680343814053490457274915559791801116739654232251474501006416783841985409883976543405783836630752592443527352977268732055383478984876552077662186660342151680691185100382640791300446105007953478423536617079769957033086960267760561445096082050224311438852894859386591026939185755921512594776514286712038255540094773098100871244284360587634938430342130057802289666863423640176353656752673883284497792666612770694462356488048094806905913478566554772247697012364155754541973228014036862848118448290506506216676370027653734341346037235640397139716913229785311141222786484347940388649784777085347767386948706243459291034920259644928814609456492650911102725835196147950479767090752577463500713405691883882756388937869823228323489151915945895527540482957252539951444001391295474813120776290243812118086776968370732693464750631619861694132394313065702937089486910839441465709321833864193389681566927377403150059099794486135711717547546265857420648883613819770369206332266570187867575291363071016908058999973468565928109853940747949825057424890587884877923124634178531295258949042849891221229839187479680415329792485201593607747305091975388410753112241527133754123484449309626533512055705225638913019354663620879973448448427354481332525885207088107885260010017043383318434136566902386714613199258136526850445004091371229041615073955768281241610358964666546995135779954896529052024162149940115778283006272564005503101223003389033543481257209620940378037895547211384332303951029341920662540230818610175130875921198270002605273710474274101351630382509035579772400819167824567363454756559623743790213718810680077350479914353242008606028978838874006399411040719254376899830969870593774265096017651682194356892468064195945352263268813546427020108449442418224232859445594569395441684505526575452298653827952217807009651026893204153964815645000794590713472880245045038909411249577060401693327214794239024978656017984939758215230348118877098019789078613438544160309200470481413070649410446292810125860582692602845852121097502108330094509215047957324926869001389524618825306793483290642329641222666452072624652358025443205625329372815554722468974690802439834900172403085638045390865484928008201160241388354677541857549878650737259482614211225313787577191367145921055261671107351652571338326274531440970039506074433959723119590313482749674274848012749362214536751220601649925635198165776770550755946559816425961637334281838033082144235005944835917526467025152004795121498936679522314565560006797746061383487045233212964946151368165385885194433808209938061432461699045318604188183476690667428810916502003250855967496945092988582443698720404066838878604834810892447209406448780923436296208191938610544851502781074724201935445465333005269595288340113268803611244194104736936270360425481946002116440338322794936029086851711930176011292694393189512199870583771533797852997661276697120973942526221395278765963489732191592175433786982698325322287563431259779971511716333724490850909351819323551831745236255887096452562275529282211686416041963095111341107726377535576276853743521283227789642200352092273696784816058302150448081200120993535769850901494098769071787307971853747857616059976990397923267582358150501445191819237272763490536900235444185540848488360431915067181563297928132825231312996933587568479230058719878255331268447218197624897842368565060902366943380466141759625658922808633286152379920693058236318023987618551937719957134200462238413285054523127080518485991434920869952368682942351421506413331085238929267704343585194489109641149255697181225167999665328138179439117930040935396483052586197805199822123697522486074932792981629020366262589126117593605406072147449945433901020277235972982698541199028164134169267536396330527766163345403929074777295095501463692791861773323576198340810417746553746129804674595331160580885558460573397829278097832295480936094600441717156139440248345087201476578601899593772203622871424830628292232310281955444809756726499202923229541022264088688520965410734873948859540478668523579277327080773624818663923439836989328632582407140959578968313823679852342389508089938768718271722071316231908548634367480279698763609169143770937599364131959721860634149621146288254220524667931312760735997569497558034061142379839068934580898618632800162792253068509986555610746755705672521936371932490258040947747469980342114723553961375022268435944267244744396192647182775488689344423856522315373598334369522213521072454144501633696379117287927520130067512007913801710275905219764350856107829202440455140230463665819392432821385779049077599008730338840713635309257806211187466227607365524870234810934990520827203834856567336573448372742248444701410783845817387910857711774813433638496800428625291562322379989612765100511035505499896263351621454280128881390213591288775817687521438434716516932393216897922699662487242337533910201725564005219077393673672455033078639358798893552260307762476786684926638395100470179887992157398634345227219647994166992073651028510772317913610980866798503111563639726924813945091234560351944598405654786443726814762590029169642290791595714383552320329332992291143422737195443626118294654435297906535091940051450081742327363536601122317578415395831640393339017863611034964214032050605920165811429997400428934507101192658062074368783128118349205797968538606054346083977361623836805585550302899748653559485552987304432601770810540362316145858790839049885329011344269198246461129973904409078546711102664074431290075489680490335119710919912117730158865881016968665650000355983902989106461506712435866928827877420467612617938406217193777590776010604378693466540439742271802433003490299628718707105080084816673631130210969707171840072981620957900373377167871263127528193398968539893719165548147912043417032779044411282625069809984951973291550324938126802220009058814159843047924751915254824989499215854763735359671328022244697628105733877974315769945582226409946776543353446001385307999616683027943659094469553594834411559413453221740669447501075833499182290591576407846410028259479729198328963449317550725214891186166997086729250314801951695151265108209527861890007846239083430443011081183864472235643032317074561066699536556359930918175727068820400465492489730880269996157841454697080824443901033817472035752950354288617673958140958995153279971977355784527843437805061845400950252442837738388261928669501011570091049393185943310096185924168689876325152632853141096401653818375115419828759842906448505511849734428318339189960684642186962287373772583689616178728937063740831164725045021192530854909315524418411577179521626730940351392644082016939593392825032852368525939496221423623885772783511343503868424649400531330783244561177178703929769771429669712128071932527437446753577201038061651490262383465818801339518144402135679508294753601165773686564348594296560572110971143369103321863371323741720523919583707277768074675103255158360875169309462960316722412876244291994336497413755117281464906139322836079652721920681326212698354178354121068420140694027514005216884552515138586496152314280381983297264120473972407670952536974312263109086005540009704956544348408526368070592386849101405305632472597882030363985850146577587862896138273582316829866661815680029050221536155197156178756100289424971194574084055946276612547216033951373271963971520373836752729585742898248979271492267898693172219499425166553774410377254526382763002690303629544918380424587678704882734259453711967801865769326964911556093293512205222365858534465450627813505769614259101003144122152984970686685322008071314896671246319585745045346993379714866281751862408732414904171409175523943061795417658171538781430761407212020479008202720383477886061390488217092081188852807476034887072079657732169096549800643032432393374771492799573498184796542217620614740841059305189973230218916986838543834398915735203094793066274914520264858777498077434366405172205553474494064385321269701222118770549573150256511216463647854973338997777004459359084947777788033443955194092088423967988846837602780854324173700136502837054083686591679285619012300539307772042054023636927311704031230656648900307829641902873492782781138924194364597783756648583198566684486093290065038296157179488124800490762276662153781402494510436111489553412584435283040792577543549865820614164626249493658482570322646653726558115491975514233545858680742810027194016728697468615958076029141368362027342947503017138984964382753738906141177305709884215214887365535462111433441702436627745338692673060661450544406802804997450587264200711565717405884755677807351493102165146009642412156447120678655027674941444209095911379889766137987521007864844827571283555272624178524128929463112408032337429501028227545469432946605150443161847793090906183448249413021679784935613831116694313243461564958646119387498803583305767084675969859560263925110259299296686198293601370408321599488325366658431626728226170347720813474732202912413893077867575940349911726626889654132374784292957002690975714824841528727174605676828680467564847807750156688433148591576225214516172160702863900395097666524644888812088164349115753227224463171761241990852437730162491682188753117707758723577304305356572780261575082428758842246122112000920797685758977841133612530882052515041874073280234708847752771375804643554007275706144660721727299490537879109470948492250933903459256456570736066141819098610310990363775091583526631586964806918405661375493751202135663900394115063689200478591385764011344890560367868078313636848244387921507695317966110111002153969667866006833694824190705242054869215705933234141714248868490272347545519966442477144349595134533238364907365254614645178762615156212612050760679523977648475624179903960584786222896072035016392635405577129831289215361673673262338066399578607395471765561085663040175438680958961405850650155465092581314152354682531392894722641794235187599358887321232755239921319521333425223623610904824155693567900801982922913124109737321835014692477577378014375113780278192082946601978776189785105018446422620307959269889143425189486769411999683427486168835635056654409318182152163441804457360884462824970512661581288764139596505092855291325741370396049947845339881367380309103853872388650938764674848690787187119657414911796632898477168774375233112084152970831592660985291820421414491294902209254767459550980787906947848376381069153235601007463761949514620788618996755952484684338475227784896151194155035338430674562806528979349204297107586952720174099146941103176304271390651469587046145575840890306500084379644836040187934347597999975169122607025754887257969332112091165840901298650454697619560664080568093558944267784907176458361203917995117358927470324476215605662278831448976483678544628807576159706611956107470375761278611996409654469972352028029673978287296630530164626168417442782731453156652243331635734334597413699336620906567600107526779602729336761474271991494352697346361299600265592634449717776496990963904233218968579674689609924623786572158193796327029448747601754940340658540427216887307995331115763502412634225500548132631676929251141125633289885506798334042337726907842294195469568936720594956894463166378060538164456968472234355370855809115030770367912263263422052063068938500560079701954420999704594311173520468635596642572444559514353072643622580792604856009581395996807681507878088509991147083158891654419103739313683676363245885305108589744720996366779549558760337504375454916433761443389719738749019252336545960391434266779551630331693579853346346471037968379940376732664416412529479779294084476824796225172578084421098978865122955691379500326947954005775794451507625211912146899733313408104845284726787742314749058942872969443388497456476924216781642434055456849147980547698155071803326279407429568135619694777867998891087178855658630149767071915086435756400194516124956672299402877247705358515343039420123979679131478641290657624789352545954499513055136074192876769195257455647328645317165656744805654360235205989936640551541315211895172668590473270410137215106712662851190222371014885936891887252090665667588837724185709536777070269079602102499120400533516145161298681293201124934691273858705908903963623631938238843570222444503704993062471843829798857028358026598795781312133069167551165129072511946772054651687168105408663470305467218461613261883921238749738726531739221364317586252814442865948223819010422916840757484887365299192186530005239327911645886133869123714552721603956290229616992042762603236777521996255372978964758602934217373149242128959868106014437426397597056112273022003235276006172656391969645305443046102486298871335815429518203366164886869617111805536368782749394371424952482950268866940316073590536508771135696995590873251026200191519817699698671499450938979995688428900090095219090314569549552165188474765803126521131645821612063341362904446974526611201885643771999855759037968688175346290175491924761557911959567014761418809004956620537796283763322268942090026348490058322993065523187694715938197321949460278398352524591145285519713470836162529534964639064734913022480283163689305721754856189836561981024174379320250026183042354809038717661423566899562291778440577107483385453397942758357392988993616808418895876573086703280732723100288213662218564663455166173934485283333516526333281080034039163441878308382990501136698151399044166525631166382390646212314494887913857910868512147767176130126046034452701527914199220862104157255589480441849135234823626927657701814740697732594755624634049269838930916320479167669766576466141366565328376513108614114493592244091298334463526802760148698972770931509619147402663483490693854410796614764136323294796032352961836811721242448433240087659240836111738620333056749011933679527482042512277770877776401816471979884800121918404608607097002993157452354427198386854239804414650354973659490302756159237356122190921678142247066189774893197615502763403667223031622807818184917688275982446281849969618316640187032410594887870086986243478408172890952990706856652758666057592329915615577108920549411618106661879499968957725274302598693789397129525347965418114427774199024501599645559144331698730465801513542734811549069864753337120929772722758251107806039753482466302314347313145251275273960919810115517604912484724466907016786895666197439145665220664953163110229608103273529983781265930605251465437367991227205566718769857670773498875127790992146017693600571190027767889659516748037911333997944337766370652432014586621375109132977963431230303347018456678783498343259259076421695324131118019537598538675832634343738310648761727184900806286277388572141017913901906402443553813020283637014454725366082758260774786403607397650465518582318713862465576915038370969125730062993407874118286295234153750254626613062953342527407070823991551372755841496374730456713211974516419886888345577539886779247222841632652401784818355469772619613395077703955198828233261564291578099973028996550373718802389967132275780314047634287107436137627568322764479570676290500451615362767528872933746051801648912077162356885563459009892979831509504318041363627019362126993026269367156807224803227573160219062650569916034159248022232986416230237353490966414394515989291539114974281895079638048862582044148115780986552702311053686658960446125172850680079646682854985458120771310807931641789793430778578413137483101976392549495183346903202119934641436455032027743605814287212488747083883776062676608108921356457069805432734449244362643352104798596010020653283365335954096435595639148984376489359111475834769071902358921111134950162951285764698636392401391029760934385192864536195376578435143532742460651274919624147161107696468237193241718500623673994090423908961273738542150222691333690313889409612086384203192436040211893180421198820666560912919181342547334645612801998905451795486895962432471309189437357765027016742932447739177894166377419131273846771825694326442947578027998970062213180159366597911054322530870524520746016413658571393740488455167598575197414907359391912548916242580635259356865859488186608705527066105703440811318882170263146217513531557008087061919270081995559753032520835694091303634425385171134258233669180124398936866383554470664098186549349967406371304205847870605712445279290058695903571819820372099140159193200098550788524006742240881721868474288775699340336246913709138032742445284963373846581009150078470516382018772385830213725976983491208076338971208594905676661096317428387632937080264946082714394025003784608130980058256722071906661657028746213952413038687235871649570860785285474892333097428727427235928416995968580485140641956642325203707986705885686328679460766424767075994224000042067537252626257989432493072990694547848754573620130415681157038795870764080103017326902368231238846092305434931480489836856522560349370717808917097932707904098078949176034373850664826672903192092570301928025586038954360371677490802574905067423690871722474763988338210882187656280398575712022630468409620310378246417615446336308723402151935608206069190009361486161271038316745820104581493548362055891924977159985667538871932860314542895620872007538593899506088458662629019936981972216890187634942317127514646367267738769588433450738750832585104434577178850924680134110326125210000583402965158803549123691840236082232956891394164028003411393847657809225089493897325041041509361116679096463390969838088428753975623523047230120181724215120006599104567811793956951326866555114312005119784454744163570466633757606308105394208350817701255203843460185513653645866238297321573466249860090935295297652188033621890590041703814734027063272639514746610421615259605398232299627437938775795875163326002216429259258845316492654642090276567616856834803316198116706835223945438296616755828985028642869394182874713335949801316604293088432267088365147488747548036330869663830299047403909782102254924138993706678016117573667961354814081292200965811523461218181158004713089565216329980937447273522003782786567607528178925189809151329376986687471295408300328121805940102379428708718204910433848449346579050243737457697495942575776881044652189843151765098291529768718523924524339631549318942874182626454472084186020406256662239990416491376449983353351707732070367596470402633307189851040390977330100325787796910501833759112739610968238867434438451541922812786604546985828296570402931705082746698440690997017237370136140027297176891822911319006741050051653292505711472368758955981023053568297723148083188338733277429140519245764309353177412158600079799934099693487329353637129294087090999064446763264387435616094688539354042610105683560671449870582750576092913048409650154869768294933387130547557882428353410000514754674412196786986078648450083977123434914472572624153513572941152831511166934982871005124162514183644651573129589009269087441081110265852677851251663170673163562482537427965024292225794883264336622986602433411980977408064720284636275754653421676902329585670270937154716231065787588302547077978761190955902963361362262647012013703053615718067947067282802203294192585674354574035918007934688208145323718293776959640987809342704518122201588409601816932115232410690666131590956400553102364649140256651387248709775033503473389412440284378287754665282760472747043774315503203383644236974248792875772442119722160124054454031118467740370123750419819181190766476532076958968917579864521428448612936616154047988532439845188959372058615910165624878979332489421514548589633629903870784674989569083191577922580350353095624593471206344125662603408821633461807603540232418731236376088665182449145713354538323598972573350747294374719669574178865328931661320970194404731919543822028846007663304593705719156604787117927519602238452237343302848513477432121120151346095402801147535632604377798866534873362679590329660752347322080377945861091166149051260000933459340627301818797240057503507671803434865872479927753516197719753566626640442158442895690817205579769708470919899625327136247405470862692021943578962287248591228328729232109106278918409470572693205684619496402744417778218518737540449314166171403186055599075856034184308949856920929469875881937898143449776611362792294983169142462792256007232117584027479959967453684754009954071716732731591526445632644876711432643590366812594518783282083286570016534119973433396427933769198868713814740841278916190038662545104079134646809185096599340887135674244158664841969001130628433126991230985487728346298884297841478082977881912226041300494558447186150344392352427497304237268482817360905465865583989167351933499544848633053850063531874310095445144580294956572876681868991933044434292475425454400590928123691216306522904960492724474154048021207458820859042526448245823958260622979875329859771678506880328780517065536425551640333926426575263838262741590459184681837771802662799450940745623823541526304656014399658809292658581352797781919509073489659281559491446034793317906485880894490801413020433980244367812752609618427808971913756617669528395873264522654409929241653732228927200202469131299494448089572842773431534738101446535652072139302928291627569788856033589972410972212999431128770806202741640124681805647616156274371250391696055400007926132814738605674121770520508157819199701159798010150837441411076451608069054494885128197506914751110961053793784870379359247563038768425660575235390188615995501994619656456649581016999866542038452891202085855743727677642875773041015645180161642123088910544995067520493835249098313128170721180436790520049160890927771636973384731283720707092873751217373298681838556738699814037827876608621365978556589673548460039415591566440899921981905827809065297430179868778490049333985321056818254643162762952662849804487980403423668225239577880036767834489633402727401908838226940986680478770465629466626770846135426322870045391864465384030929609159209032262617591042332192342928007629876226726087054918241385565137081320836430234290270513315715677123226100507349748224771680938566515567234703185256753063041347222805582312763381756354637779994622745969159761408867597102613354464259587666520239588291371860603309815072686710907378046068411051515101794111245227203482598188370323469312042758626470566091238764289320802163582936740583022071614631872874795368394095181469292705491710603368139886934372544194290751167090578753179294926874825030962987783172880657329804808603052130707061932289280229699019759674883367429670900333015715471081691494573857335563580769595648407058696830239255096682628246516083716333692252830076602029068594942221322104893349901764781335061687589403437379449459386040798596695180358798451028378412185066809630111212460480537609727036382644381093183127191542926636663621220687927126427566152756521718446238814332425514019204279378491760762134951973782384570834957353671029851958839470459687967650766816848259096520273927776188638496102821786118369259598141333845423190078995085020959672453604202790888534720305654343361950141277951206055833916720124259185506046944123711385919168919415593356809883051640715683515241555663159141776638081972544350414288202774898645192650589887086966393922157790201640165425133817797365653083882825620464456766188224946911834597593883903230886897080932973156269752188471514040112099326290722381275340077544681129243309293034866301567143602390880281581338995392919001545641372914257346423565178531808979566187793035410974397013990151786816875240323797785698029879449406149139317376798078794966422761711521827493794170392330476469205994288004181414113174012951407998964051578473174237529204374893941544968299997540375686098043735315187134417629254894302563643225379375443908306337456960686690513692810169742860099973101723645114018625059630830078389979139134791379691016383834663636574582446108647667766328169372883503861568718667776994325562162828700145068563861840433781344513038101283600067025423168208082323699360233338316013266228224737688492440554676927002983112616410350411475766286299903516794517084889381881483638280586322376990939526298261032121865981705525130758530662643902319242226041248037064293469585423864897975944857853589357438563652316820531338716030133815214763094835791815446403187914291513770096711031039452818237393616748746597252705768160562987937599272536212033390163431706566529974257867806958465061509764199897632884110624813386241329169702390401030579051854657535282212516487641416054100862640851225325404113552184099073284585584891146207252707043068202362430452710173982308971231980359567771211590785791003251008698446977324952238601886476269142721249436503012010915404854718650256855878652147687170089734790319771838970584051445493014880334079085415127525515022843068957027058533123745313208026130446290381553904661153235032159431156647889381781786344208318994738257807098756097365598271173117223224360593423886075706173378501037843965039360205582527197691710748845167244381959799826945406168589054043041029798812910109665837092668806583047863379691729888524522197147828033748269090677081967748091556101817474219604328814061898997963008412873277418196936621124066146300429268770247200529030572971435272290886117634528282906161625003997832433940047738050981053802199406879446816606468580279361849881090497692361487140024406401321228980262039522646214563853416960432437167013841284880519807574395233491529325487898338376058477294486931489975593301079664179059187381238842776797540848937334505125855728856732296695566808445992890694327075687633433734429094010468234543909069218307186168334728907271683103190471015444951680779059673592627831339952471168467413361838486542578340700652872417216756540230511040503014674640154987020156277813998540429328806247450906814067650473098412232538377615041023506824308850760479279788481123005280617952578133381926712309145100114747606415928077583756870485222969895263608558169429241730274691622686424675970773402372203233389790610561348098325595356832027073292509819460892701261248465082270128591880575869858285294827372873494659722455162997975171473740175751711845044799972826740440286639212937829659183075049604925703122552534024735317663625392261991038279020279897467508086788425829322827432199019000563913661752653250724643386902790393089671192572886390176514852120644658928880411979386234409506350224445417108423733192662145019259024620192595645465103465194141384803675115247189716792744135448864608439385255218252939756552739084422067619783338980051633512602014108485225001158341125859654818903722072676331639257090257227813909111162399262840320030186216638685787235094485302999459159915531823136786411717634607166070172614451277816876746071949879379336716819629991393476895406058294253224508486310807030990364636573883868915784035082822319795021216970884173332832654139700995576783017354605626520276449788370650318020138408026655210701292648272846937479575687013455873769298336622748897545109841907650144962723084051039751400890230454371132539685119809114535409542774162774757677962152752624647534765026458835932238750443297471278168747107570144463360138656757367682774424729822256733263684611358246909204387636837577824739890480411191945119737992626470405713748604387040360305950099146923977032176697932220788663710354503267149490007247526987586017900392870083810055637291869774000142249011722553717403982651023366787020941853354832383542355598734617757703654116754905904359759174054611731942930742765378668651935418821100736775302096851195423584859902423232976659327460932666734611647116384828269107662135654481990232359760875915944150126009437048641132870346627317873881758710112345666657264537171929863711409601011278844394060741136416262449646638250785544460211029407048821304456061750626897761414539730917496873302352799407419112337160140261707554716619100525780883090929165716133415740982089823839789082385635954012583316700673735160254642003492698396721385429283421822612208844580108818321805227259142737878275443543175388628726223075119762352921748186164982734356912162904267246537074406604706113119271276862796071997932480625873470812782681264866593572620687972399174897526442185911154362058425909931330163415618917380543461644769587002023920603660685949958900231846488649394682749283834733686697707938949436135489453283823819413494749073904533801131454016961364932552884233824902370555889109733283087737102281582187799626544590388436169254952191745489230915260455956880553689042523837888998076689435961743367698655007080959857489518237078485532585246862083637787791746884399112991502714967954178649760725043469160665457460038629920463585312985018931097906644031004903546507107144724674854127335261119088124204404259887166500889586806077427169853016523070258739787155594798402017136612626306964479768230117328661370458624702570485368093020118921331820158981560538599368587221223346980758661760022468244749183882885834217478679571937364968089000578598222967267167550869457439435379139056011825555877840746991447917514068911411001659989340693376445425439242969525604170956136802852886102744741567037170238081133039635235837657051453183227739237053729857962440537946175514452327093704107995363024399119112905084031260652920032761149381730619027384815223863101152961556901916440574210447103485479241751743309591838388302254174051709463231650333114053029608583482751699533888265865374249955896023440854432218828066942626831301535922463719960644719510849945150101041270258675543092681767063633340722554510322027297149423006404917580624299745431039272983008389160291417693083181025078318982311712975340182496501660416440604164746427154226719757402509178858480365368657029416269739531600942178413536610020428589936995448005541911761564243371508666739829334818009763171187162761849385100680814006116757883510399821066294524220198174352028071363571086008788466456581391278087758400302493651949625147491036958181168128258620237464857643850100614275601120548955380590368299385475543020053894061614792563483267433938854836405952994394007373290814689309133676088219642889111466424502598430561695818451827257583394672756701991395696214731570041425907477823647904378066952993279090919212402078352354466566853491797282258651801160163594676251867127178076421343202836937600331870319175160486158750241774738548879560063473795035547513433991875498499331741280231697081172809760721242279931098871266964539926775923209821172831040252888101235120177174745937276479524228140208376582718387236023147090184214798471942677856338746531377417460548677466161957025176745665575792193233936184125152927309592951836564542416457953898203117572666379634768038970103479328794420368731368334482358505309647680241161689828512717878416385737952338650001819821259232374210220020238643451900530597809810916865385045434468436789269406706963012798046609034952276641550262647691222532219970958558908747311070666190293520886263879404007440372950070878909035016442518911525433327064159999093033237822528733741125093964249053355741119181264612256817457554074772378373398754566898633226562537441962889569163985394687266788958702569772858615866603916887080887399777535773365815735834042097644511593367291623656656076069928556437476708304308185171010405092724885046710216146795140451054789636496460255604683782552857117135290692160145023742720825021641521448290551984449383130308838883398164892013187339045379297938603693355183236682443537112517105943838729353841816383768212150412646955898169572920527498479267856762420480571594941958620386747168001647674243366288024091313441501999854998752774179755382421611536828678036973791438665328835598651299642011932965152416602812996384099253208561289574303639772063911055450836254103341491090009243050074873155207900422567008955566183010402214788121393505706490939717745235497594240362768068321346782160597067068303138049511593735430825094806533675466490970494352501434907546615197768128992578987938563145245763066681050557616836256179985417885925242300186017430418029303722803854854505057256047779472449756600889114019937112611968881639391585955165150982072979817693705754063932130968034460827253789082371243631791832705775136152042635209441905674555271899729136350504501589705168655999058145938208119595725393913114619979476361578357175524355232331441480590884441570251057903543055341872809203054253804999443485271222800210026245012131652878855029427790084977649210793031493347962748399436849779725811229937883594717691008762719290246915550221831595419830329759356899969654825106849920141999199086237664741247741319400083899601130603828091650868120298177485745679100946397229167076525719355693352994759395439282037199826581353650046110614052886770469668531282676878712495204264774709783416771912297113340104797253748033615795494295853980986459355349480060418326280827421535433723900625413335830279410294918245685715625679480075156240435378569549974228512203603118375829469161104996099103928089626774247734659051140654632307293555070509775583594914956000524823458956755389066597272932570455484694061948308054560860788021309017217533050848472780175136299931571430107255079643941449984697339630611694143152735500316223610968931425069327454574171119274956140370159776976812123933601606723588259263448276715601201824237774790169671718494490680871482601826827988211585591839893317414280522923381418488543628000331617785886700451187085900686009640385125478272942091739108110759113772990605111138556708291127365756203567046999615542630393707977082864246014056934311795469583688171441971657389899159213380467489333283257080209648404918964443623691126994472640405631554724867910681539228140188617584016029296564268057532955512786870050728492886186970412555416095826600916892494950312458854560504456319434143232784778416575468739683016968159909862501789168842107094469301987164488013082348916013341304412323861901095509106414729806294888120999794742551322729526243089130936816645615388580240989038917262000404268434360058741411875314628013012938191015863903541063460099420587685447075762942884297324941653295436896837767681524392020832921309939718446388315266242872906323531948111522211568750314423333755064284029974016887916074928461144330915546017242916051449762589494103311843973905056971413479295898390658465973706960795153651888038698392503071293899124260153128524232517674507687815841680031611493243697540508423000058669512182397013952426074667007127050284247321102152519829080061319970053877095766569555861661685224957671299211791511084725584608293933115867576940574186352192025091730946363109792574399251399589754399064493684536240025943241913048923283349421770406450590334775571977432476518273172962804239040841668084127129884499624681906484219785404475739073803059875565058348669651843043942428531947638585681967217807352539573070822029528569299471671284387349206941416571044263322857832528534447261915227241015770345249374737396841648216139478330660531752040796311218420725051774880092994244454581991961671687520737928753573732031615398205631366161595166561822892872340052236300716553895967020736976307688995192096469655906484305052253303275882870150806889261348273811434976698729305514063921094339223490294897054223327670932784095750379886517667735221666601951486248345470798855996529207002945580976984775942426529890962052977678928518806349061599163686368737056574412807589863912002144771150900